on master help sign in
Merge branch 'master' into thelifeandtimes-link-apps-to-grants
8d8b6bfMatilde Park
components/DocsSidebar.js+1−1
@@ -1,6 +1,6 @@
1import Link from "next/link";
1import Link from "next/link";
2import { useState } from "react";
2import { useState } from "react";
3−import MenuTray from "./MenuTray";
3+import { MenuTray } from '@urbit/foundation-design-system'
4
4
5export default function Sidebar(props) {
5export default function Sidebar(props) {
6 const [isOpen, setTray] = useState(false);
6 const [isOpen, setTray] = useState(false);
components/EventPreview.js+3−4
@@ -41,11 +41,10 @@ export default function EventPreview({ event, className, big }) {
41 )}
41 )}
42 >
42 >
43 <div
43 <div
44− className={`grow-1 flex ${
44+ className={`grow-1 flex ${big ? "justify-center" : ""
45− big ? "justify-center" : ""
46− } flex-col h-full`}
45+ } flex-col h-full`}
47 >
46 >
48− <h3 className={`${blackText} mb-2`}>{event.title}</h3>
47+ <h3 className={`${blackText} mb-2`} id={event.title}>{event.title}</h3>
49 <p className={blackText + " truncate text-sm"}>
48 <p className={blackText + " truncate text-sm"}>
50 {event.description}
49 {event.description}
51 </p>
50 </p>
components/Header.js+5−3
@@ -2,8 +2,7 @@ import Link from "next/link";
2import { useRouter } from "next/router";
2import { useRouter } from "next/router";
3import { useState } from "react";
3import { useState } from "react";
4import classnames from "classnames";
4import classnames from "classnames";
5−import MenuTray from "../components/MenuTray";
6−import { capitalize } from "@urbit/foundation-design-system";
5+import { capitalize, MenuTray } from "@urbit/foundation-design-system";
7
6
8function ActiveLink({ children, href, className, currentPath }) {
7function ActiveLink({ children, href, className, currentPath }) {
9 const firstCrumb = currentPath.split("/")[1];
8 const firstCrumb = currentPath.split("/")[1];
@@ -110,7 +109,10 @@ export default function Header(props) {
110 <a className="mt-2">Operators</a>
109 <a className="mt-2">Operators</a>
111 </Link>
110 </Link>
112 <Link href="https://developers.urbit.org" passHref>
111 <Link href="https://developers.urbit.org" passHref>
113− <a className="mt-2 mb-4">Developers</a>
112+ <a className="mt-2">Developers</a>
113+ </Link>
114+ <Link href="https://roadmap.urbit.org" passHref>
115+ <a className="mt-2 mb-4">Roadmap</a>
114 </Link>
116 </Link>
115 <hr className="border-wall-200" />
117 <hr className="border-wall-200" />
116
118
components/MenuTray.jsdeleted−108
@@ -1,108 +0,0 @@
1−import classnames from "classnames";
2−import { useSwipeable } from "react-swipeable";
3−
4−export default function MenuTray({ isOpen, setTray, search, children }) {
5− // Locks document scrolling when menu is open
6− if (typeof document !== "undefined") {
7− if (isOpen) {
8− document.body.style.overflow = "hidden";
9− } else {
10− document.body.style.overflow = "visible";
11− }
12− }
13−
14− const handlers = useSwipeable({
15− onSwipedLeft: (e) => setTray(false),
16− });
17−
18− // Slides the tray in or out from the left
19− const trayClasses = classnames({
20− "tray-menu-open": isOpen,
21− "tray-menu-closed": !isOpen,
22− });
23−
24− // Fades the background overlay in or out
25− const overlayClasses = classnames({
26− "tray-overlay-open": isOpen,
27− "tray-overlay-closed": !isOpen,
28− });
29−
30− // Hides or shows the menu
31− const menuClasses = classnames({
32− "menu-open": isOpen,
33− "menu-closed": !isOpen,
34− });
35−
36− return (
37− <>
38− <nav
39− {...handlers}
40− className={`z-20 w-screen h-screen top-0 left-0 fixed block md:hidden ${menuClasses}`}
41− >
42− <div
43− onClick={() => setTray(!isOpen)}
44− className={`bg-washedWhite w-screen h-screen ${overlayClasses}`}
45− />
46− <div
47− className={`absolute bg-wall-100 h-screen top-0 left-0 tray-menu-width overflow-y-scroll mb-24 ${trayClasses}`}
48− >
49− <div
50− {...handlers}
51− className="flex flex-col px-4 md:px-8 pt-8 md:pt-10 lg:pt-12"
52− >
53− {children}
54− </div>
55− </div>
56−
57− <button
58− onClick={(e) => {
59− e.stopPropagation();
60− search.toggleSearch(e);
61− }}
62− className={`z-20 fixed px-4 items-center justify-center type-ui rounded-xl h-16 bg-white text-wall-500 left-4 right-4 bottom-4 mobile-search-button-width ${
63− isOpen ? "flex" : "hidden"
64− }`}
65− >
66− Search
67− </button>
68− </nav>
69− <button
70− onClick={() => setTray(!isOpen)}
71− className="z-20 fixed bottom-4 right-4 w-16 h-16 bg-wall-600 flex items-center justify-center rounded-full md:hidden"
72− >
73− {isOpen ? (
74− <svg
75− width="16"
76− height="16"
77− viewBox="0 0 16 16"
78− xmlns="http://www.w3.org/2000/svg"
79− >
80− <path
81− fillRule="evenodd"
82− clipRule="evenodd"
83− d="M0.39382 13.7045C-0.131273 14.2296 -0.131274 15.081 0.39382 15.6061C0.918913 16.1312 1.77026 16.1312 2.29535 15.6061L7.99999 9.90142L13.7047 15.6061C14.2297 16.1312 15.0811 16.1312 15.6062 15.6061C16.1313 15.081 16.1313 14.2296 15.6062 13.7046L9.90152 7.99989L15.6061 2.29535C16.1312 1.77026 16.1312 0.918913 15.6061 0.39382C15.081 -0.131273 14.2296 -0.131273 13.7045 0.39382L7.99999 6.09836L2.29548 0.393844C1.77038 -0.131249 0.919038 -0.13125 0.393945 0.393844C-0.131148 0.918937 -0.131148 1.77028 0.393945 2.29537L6.09846 7.99989L0.39382 13.7045Z"
84− className="fill-white"
85− />
86− </svg>
87− ) : (
88− <svg
89− width="16"
90− height="16"
91− viewBox="0 0 16 17"
92− xmlns="http://www.w3.org/2000/svg"
93− >
94− <rect width="16" height="3" rx="1.5" className="fill-white" />
95− <rect y="7" width="16" height="3" rx="1.5" className="fill-white" />
96− <rect
97− y="14"
98− width="16"
99− height="3"
100− rx="1.5"
101− className="fill-white"
102− />
103− </svg>
104− )}
105− </button>
106− </>
107− );
108−}
components/Sidebar.js+1−1
@@ -1,5 +1,5 @@
1import { useState } from "react";
1import { useState } from "react";
2−import MenuTray from "./MenuTray";
2+import { MenuTray } from '@urbit/foundation-design-system';
3
3
4export default function Sidebar(props) {
4export default function Sidebar(props) {
5 const [isOpen, setTray] = useState(false);
5 const [isOpen, setTray] = useState(false);
content/bitcoin.mdnew file+125
@@ -0,0 +1,125 @@
1++++
2+title = "Bitcoin Development on Urbit"
3++++
4+
5+### Overview
6+
7+Urbit OS currently ships with our Bitcoin wallet, %btc-wallet, released in 2021,
8+and our Lightning implementation, %volt, is almost ready for live use on the network. Several integrations with the app ecosystem are planned immediately following its release, including subscription publishing, social payments, and more.
9+
10+**The Urbit Advantage**
11+
12+- Composability: Modular userspace applications expose a consistent API format to each other locally and over the network, making seamless integration of Lightning payments, Taro assets, and other protocols easy
13+- Networking and identity: Exactly-once message delivery, NAT traversal, and E2E encryption come built into Urbit's P2P protocol, and Urbit identities are sybil-resistant, human-readable network addresses bound to BIP32 extended public keys
14+- Efficient, secure development: Urbit OS is strictly typed and purely functional, and apps have reproducible builds on all client machines, removing much of the complexity, risk, and pain points from development
15+
16+**Getting Involved**
17+
18+Interested in contributing to or supporting Bitcoin development on Urbit? GitHub repos for individual projects and information on the Urbit Foundation grant program are linked below, and dedicated Urbit groups and Bitcoin node operators on Urbit are listed in the Community section. You can also reach out to current contributors ~tondes-sitrym and ~pindet-timmut on Urbit or at urbitcoin@protonmail.com.
19+
20+### Wallet
21+
22+Urbit's Bitcoin wallet consists of two agents: %btc-provider, which communicates with an external full node; and %btc-wallet, which handles transaction generation and signing, and uses a %btc-provider instance (on the same ship or elsewhere on the Urbit network) to broadcast transactions and receive data from the Bitcoin network.
23+
24+Wallet users can receive payments using the xpub associated with their Urbit ID, allowing Bitcoin payments to be sent between ships with a persistent, human-readable network address without compromising on-chain privacy.
25+
26+**Resources**
27+
28+GitHub
29+
30+- Agents: [https://github.com/urbit/urbit/tree/master/pkg/bitcoin](https://github.com/urbit/urbit/tree/master/pkg/bitcoin)
31+- UI: [https://github.com/urbit/urbit/tree/master/pkg/btc-wallet](https://github.com/urbit/urbit/tree/master/pkg/btc-wallet)
32+- Provider utilities: [https://github.com/urbit/urbit-bitcoin-rpc](https://github.com/urbit/urbit-bitcoin-rpc)
33+
34+Writeups
35+
36+- Grant proposal: [https://urbit.org/grants/bitcoin-full-node-provider-and-wallet](https://urbit.org/grants/bitcoin-full-node-provider-and-wallet)
37+- Architecture document: [https://gist.github.com/jalehman/e0c91071427ca4c349c0673f376945cb](https://gist.github.com/jalehman/e0c91071427ca4c349c0673f376945cb)
38+- Provider setup guide: [https://subject.network/posts/pi-fullnode-urbit/#bitcoind](https://subject.network/posts/pi-fullnode-urbit/#bitcoind)
39+
40+
41+**Continuing Work**
42+
43+The current %btc-wallet implementation is not a modern BIP-157/158 light client. While users who depend on another ship's %btc-provider/full node for communication with the Bitcoin network do not risk loss of on-chain funds, their lack of visibility on the network will be more problematic for those also using it with Lightning. Funding is available for developers interested in contributing: reach out to the Urbit Foundation, ~tondes-sitrym on Urbit, or urbitcoin@protonmail.com.
44+
45+### Lightning
46+
47+Volt, Urbit's Lightning implementation, like our Bitcoin wallet consists of two agents: %volt, the primary agent that manages channels, payments, invoices, and chain monitoring; and %volt-provider, which connects to an external LND node for handling payments with endpoints outside the Urbit network.
48+
49+All Volt nodes will run %volt, and be able to operate channels with Urbit peers without maintaining an LND instance or depending on another ship that does. To transact with non-Urbit Lightning peers, and in the short term (see below) to perform multi-hop payments inside Urbit, they will need to open a channel with a node that uses %volt-provider to connect with LND. Chain monitoring likewise requires connecting to a local or remote %btc-provider agent (see Wallet above). For more details on the network architecture, see the grant proposal linked below.
50+
51+Volt implements BOLTs 2, 3, 5, and 11, and in the near future will add onion routing (variants on BOLTs 4 and 7). Because %ames, Urbit's networking module, already handles transport, guarantees required message delivery properties, and furnishes persistent, unique 'domain names', implementation of BOLTs 1, 8, and 9 is unnecessary for Volt nodes.
52+
53+Beta release of Volt is planned for the end of 2022, and additional features including multi-hop/onion routing implementation are proposed for completion by mid-2023.
54+
55+**Resources**
56+
57+GitHub: [https://github.com/dasrun-fadben/volt/tree/on-chain](https://github.com/dasrun-fadben/volt/tree/on-chain)
58+
59+Initial grant proposal and spec: [https://urbit.org/grants/volt-lightning-on-urbit](https://urbit.org/grants/volt-lightning-on-urbit)
60+
61+Proposal for further work: [https://urbit.org/grants/lightning-development](https://urbit.org/grants/lightning-development)
62+
63+**Continuing Work**
64+
65+The primary element currently missing from Volt is onion routing of multi-hop payments for full privacy and efficiency of payments to and from nodes that don't also operate LND. This has been partially specified in the second proposal linked above: funding and collaborators are available for this as well as work described there on application integrations, submarine swaps, and more, so interested developers should take a look and get in touch.
66+
67+### Roadmap
68+
69+**2022**
70+
71+- *Volt Beta Release*
72+Final work on channel sweeps, remaining safety checks, and UI development is currently ongoing and expected to be complete by EOY 2022.
73+
74+**2023**
75+
76+- *Initial Ecosystem Integrations*
77+ - Submarine swaps: Implementation of the PeerSwap protocol, fallback use of the Loop API, and UI targeted at merchant use-cases. Funded, expected completion in spring 2023.
78+ - Apps: Integration of Lightning subscription and one-time paygates into Groups, social payments and %volt-provider discovery with %pals, and app tipjar module. Specified and proposed for grant funding.
79+- *Lightning Routing*
80+Payments with multiple intra-Urbit hops and via multiple %volt-provider channels are the last remaining component for full-featured and private payments with Volt. Specified and proposed for grant funding.
81+- *Wallet Improvements*
82+Work on feature, security, and UI upgrades for the Bitcoin wallet and node provider, aimed at making the application a full-featured and BIP157/158-compliant light client, should begin before EOY 2023.
83+
84+**Future**
85+
86+- *Taro Implementation*
87+Implementation of Taproot Asset Representation Overlay, with an initial focus on using nonfungible Taro assets to represent credentials, permissions, and reputation of Urbit identities.
88+- *Atomic Streaming Payments*
89+ - Integration of Volt payments with streaming apps like %radio and the Holium WebRTC client via HTLC-DASH or similar implementation.
90+ - Generic protocol for non-media pay-to-stream data
91+
92+### Grants
93+
94+The Urbit Foundation operates a grant program aimed at new Urbit developers, network public goods, and community development. Work on the Bitcoin wallet, Lightning implementation, and submarine swaps for Volt (Urbit Lightning) users all has received funding from UF, and interesting non-technical proposals with social value to the network are also considered.
95+
96+Grants homepage: [https://urbit.org/grants](https://urbit.org/grants)
97+
98+Past Bitcoin-related grants
99+
100+- [https://urbit.org/grants/bitcoin-full-node-provider-and-wallet](https://urbit.org/grants/bitcoin-full-node-provider-and-wallet)
101+- [https://urbit.org/grants/volt-lightning-on-urbit](https://urbit.org/grants/volt-lightning-on-urbit)
102+- [https://urbit.org/grants/lightning-development](https://urbit.org/grants/lightning-development)
103+
104+## Bitcoiners on Urbit
105+
106+### Groups
107+
108+Urbitcoiners: ~pindet-timmut/urbitcoiners
109+
110+### Providers
111+
112+**Bitcoin Full Nodes**
113+
114+~tirrel
115+~zod
116+
117+**Lightning Nodes**
118+
119+~tondes-sitrym
120+~bosdys
121+
122+### Guides
123+
124+Running %btc-provider with a full node on Raspberry Pi: [https://subject.network/posts/pi-fullnode-urbit/](https://subject.network/posts/pi-fullnode-urbit/)
125+
content/blog/agency-daos.mdnew file+110
@@ -0,0 +1,110 @@
1++++
2+title = "The Dream of the Agency DAO"
3+date = "2022-11-04"
4+description = "As creative studios and agencies struggle for more creative freedom, DAOs and tokenization will surely take a more central role in the marketing and branding industries. Decentralization offers such entities benefits that could fundamentally reshape creatives’ relationships with clients—reducing layers of inefficiency and anti-creative incentives."
5+
6+[extra]
7+author = "Isaac Simpson"
8+ship = "~mogmet-tadnem"
9+image = "https://storage.googleapis.com/media.urbit.org/blog/skybanner.jpg"
10++++
11+
12+![Image](https://storage.googleapis.com/media.urbit.org/blog/skybanner.jpg)
13+
14+
15+Chris Callahan runs an independent brand strategy agency called [Visitor](https://visitor.agency/). Visitor wrote the line that [emblazoned](https://astra-mag.com/articles/my-weekend-with-the-martians/) the sky over the parking lot that housed Urbit Assembly. Its work focuses on Web3 blue chips and up-and-comers: dev marketing, notoriously one of the toughest niches in the branding world.
16+
17+“Devs are very sensitive to puffery and cringe,” says Callahan. “Traditional tactics like headlines and manifestos fall flat. Clarity and vision are much more important because they showcase the benefit as well as a long term potential for use.”
18+
19+Why? Because developers eschew sales. If something is good, it will rise to the top without the help of annoying salespeople. The thing is, marketing-world creatives usually agree—we’re just bogged down by salespeople of our own. So we, like devs, yearn for the day when decentralization will save us from the social climbers and “connectors” that suck up all the oxygen.
20+
21+Enter the Agency DAO. The idea—a creative agency that solicits work, receives clients, hires creatives, and makes decisions all on the blockchain—is oft-discussed because it appeals to the crunchy, anti-establishment vibe at the core of every major ad agency. A trustless, leaderless creative community where everyone has equal voice and the best creative rises naturally to the top? The dream of the ‘90s come true!
22+
23+Unfortunately, decentralization in the ad world currently occupies much more podcast time than reality.
24+
25+## Creative by Committee
26+
27+But there are some actual attempts at making the Agency DAO a reality. Koto, a top creative agency known for creating the AirBNB brand, tried it with Web3 brand Polkadot. [It pit two pitches against each other to determine the future direction of the Polkadot brand by vote](https://vote.polkadot.network/). It used a quadratic voting via Snapshot to deliver the will of the Polkadot network to four “multisig curators” who executed the vote on chain.
28+
29+While the experiment worked, it also revealed the shortcomings of the blockchain’s ability to guide creative decisionmaking.
30+
31+“To organize Polkadot token holders who wanted to participate and create the voting parameters took very long,” says Callahan. “To have the wisdom of crowds decide on two design elements was an exemplary concept for Polkadot to own. The question is, did it push the work? Or was its value in consensus alone?”
32+
33+Quadratic voting is cool, but the creative process is long and complicated. Stakeholders chose between option A and option B. At the end of the day, that doesn’t feel like a significant innovation, especially if the vote isn’t even actually happening on chain. Rebranding sprints typically take around 3 months. This process took 11. Sure, it was a good way for Koto to play ball, but it wasn’t much more than that.
34+
35+Agency DAOs face the same central problem as ordinary DAOs, which can be summed up thusly: every decentralizing force is too costly, and every cost compromise moves the system back towards traditional hierarchies. The nature of creative work even further stymies the theoretical Agency DAO. Creative products almost always suffer when anti-hierarchical principles are put in place. As David Ogivly famously said,
36+
37+_“Some agencies pander to the craze for doing everything in committee. They boast about ‘team-work’ and decry the role of the individual. But no team can write an advertisement, and I doubt whether there is a single agency of any consequence which is not the lengthened shadow of one man.”_
38+
39+So this leaves us with the question of how exactly the DAO model can help creative agencies, and what such an organization might look like, and how Urbit can help. There are roughly three paths: 1) Project Bountification 2) Talent Retention 3) Idea Valuation.
40+
41+## Project Bountification
42+
43+In the Mad Men era, a few Agencies of Record (AORs) dominated the advertising world. These massive whales took every cent of a given big brand’s yearly advertising budget and charged a simple 15% premium on all media (e.g. radio time, TV time) purchased. A very simple and very profitable system, [now long gone](https://www.genedelibero.com/the-agency-of-record-the-shift-is-on-to-specialized-agencies/).
44+
45+Today, big brands typically have many agencies—sometimes hundreds—each with a different specialty, and each fighting for their own share of the budget. I’ve been in rooms with representatives from no less than 10 agencies—digital, DEI, experiential, CSR, influencer, etc—all pitching ideas for the same holiday campaign, and all surely billing upwards of $100/hour per person to do so.
46+
47+This sounds nice for agencies, but actually it isn’t—instead of focusing on the creative work, they must dedicate their energy towards constantly re-pitching themselves to the client and fighting with procurement people on rates. The managerial class types who control the budgets care a lot less about the quality of the creative than whether you remembered their dog’s birthday.
48+
49+Crypto could provide a solution to modern agencies’ woes by creating a flatter system for project acquisition; adopting the sort of decentralized bounty system some devs already use for Web3 projects.
50+
51+“Bounties are great,” says Callahan. “Big agency players should popularize them. I feel like if there's a way to do an on-chain bounty with select members who either hold a special token that allows participation on key briefs, that would help a lot.”
52+
53+How would such a system work? First, a brand issues a bounty for a project for work it needs done. Luckily, this basically already happens in advertising, it’s called a request for proposal, or RFP. The only difference here is instead of RFP acquisition and response being 90% schmooze-fest and 10% creativity/pitching prowess, it’s a lot more like what you’ve seen on Mad Men: the client’s RFP passes trustlessly to the bold creatives who spend many drunk, sleepless nights coming up with genius ways to knock their socks off.
54+
55+“A brand issues a bounty for a stunt activation that, for example, educates the world on the psychological benefits of calm computing,” Callahan explains. “The members of Agency DAO approve it, and create their own bounty for creatives inside the DAO. Bounties burn after 10 days. Ideas submitted and sent to client in the manner set by DAO.”
56+
57+Once the job is awarded, the chosen agency will continue this pattern, effectively removing the “account guy” layer—the sales-y middle people abhorred by both creatives and devs alike—and returning more focus to creativity.
58+
59+## Talent Retention
60+
61+“Professional creative” industries, e.g. marketing, branding, etc, suffer from turnover rates orders of magnitude higher than the industries they serve. Being a creative is both kind of awesome, because a new gig is never too far away, and also scary, your current gig reliant on the slightest whims of the client.
62+
63+This means that the market for creative talent in the form of copywriters, designers, art directors, animators, producers, editors, etc, is always choppy and competitive. Staffing sucks—it’s difficult to evaluate the quality of someone’s work until you’re actually working with them, because creatives stuff their portfolios with successful projects they’ve barely touched. Beyond that, now bloated Web2 lowballers like Fiverr and Upwork bottom out the market with garbage time labor that even the biggest brands still somehow fall for. Another great opportunity for Web3 disruption.
64+
65+The Agency DAO model provides permanence. Currently, some independent agencies offer equity packages that take a long time to vest, and are only ever worth anything if the agency sells. Owning fungible tokens from day one is a much better way to incentivize both work quality and retention.
66+
67+DAOs also offer flatter and more collaborative atmospheres, which creatives at least ostensibly want.
68+
69+“There’s total transparency of who works on what. Better collaboration between members, meaning happier, more fulfilled workers. Awards will be more meaningful and accurate,” says Callahan. “Plus, the value of your tokens naturally increases or decreases based on your performance. Just by getting hired at a successful DAO you can already be doing well.”
70+
71+Finally, a system that allows democratized voting on creative products, as opposed to traditional [Hype Dad aristocracies](https://thecarousel.substack.com/p/vibe-shift-to-destroy-marketing-world), could actually foster more Darwinistic environments where the best creative has a higher chance of rising to the top.
72+
73+“Eventually group preference will select one creative over others; causing repeat elections of the same member,” says Callahan. This could occur on both the agency level—removing the Hype Dad problem, e.g. lazy incumbents making lame decisions. “There's a sort of Darwinism that is created that can determine benefits or even redundancies for those not pulling their weight or who simply aren't as talented as others.”
74+
75+## Idea Valuation
76+
77+The creative industries are perhaps the only example of a field in which the artists retain no intellectual property right for their ideas. This is why advertising creatives make so much money—an advertiser can milk a good idea for decades and we’ll never see a dime.
78+
79+The tokenization inherent to the DAO model opens up several possibilities for valuing ideas in new ways that behave more like copyright.
80+
81+“The basic thought now is starting something I’m calling General Idea; pre-created, white label ideas based on research of real creative problems that need fixing,” says Callahan. “We NFT the ideas, sell them to clients. They make them or they resell that idea to other clients or agencies. That monetary markup value on the idea trickles down the original creator. More democratic way to share ideas and defend their ownership when they’ve been recorded on the blockchain.”
82+
83+This sort of blockchain-based soft copyright is one way to value an agency’s DAOs. Another, simpler way, is to sell NFTs or NFT-related independent creations of the agency itself. Art collective/creative agency [MSCHF](https://mschf.xyz/), for example, makes its money both via brand deals and also a la carte meme-to-merch drops. Agencies with a certain amount of clout could easily tokenize the clever side projects of its creatives—making it far less reliant on client deals and more able to capitalize on its creative prowess.
84+
85+“Pool Suite [another creative studio] does a great job of being a creative company that happens to make NFTs of music and general drops and stuff,” says Callahan. “They're a studio first and then a blockchain player after. I'd still consider them a ‘diet-DAO.’”
86+
87+[Édouard Urcades](https://fabled-faster.tlon.network/writing/stars) has designed interfaces for Tumblr and IBM, and currently serves as a design lead at Tlon. His project Structure is a “cork board” for creative projects on Urbit—sort of a “mercenary guild,” for UX/UI designers looking for work. Structure is run by a gnosis safe wallet operated by its 12 members. Beyond serving as a “soft on-ramp for Urbit-related design labor,” Ed plans to monetize Structure by selling Urbit merch designed in-house, both NFT and IRL.
88+
89+## How Urbit Can Help
90+
91+The three categories discussed above—project bountification, talent retention, idea valuation—present theoretical frameworks for the Agency DAO. However, the shortcomings of current DAO infrastructure and governance make them largely impossible. Enter Urbit.
92+
93+The creative industries rely almost entirely on reputation—so any Agency DAO without permanent pseudonymous ID is dead in the water.
94+
95+“Goodby Silverstein and Partners, for example, is widely regarded as one of the best ad agencies out there,” says Callahan. “When a big name in the creative industry goes to work there, the reputation of Goodby Silverstein increases.”
96+
97+Urbit IDs let you maintain your creative and working reputations while operating within a self-owned ecosystem that can’t be deleted. Beyond that, Urbit’s design-forward OS selects for self-expression in a way that no corporate-owned platform could.
98+
99+
100+“The sigil itself is its own design feature,” says Callahan.
101+
102+Simply put, running an Agency DAO on Discord and Google Docs would be fundamentally unserious. It’s one thing for a traditional agency to use Web2 products as _tools_ for its creatives. It’s quite another for Web2 products to be the only connection the agency has with its creatives outside of the blockchain.
103+
104+Recruitment, ideation, project sharing, and even simple chat aren’t possible on Web3 without something like Urbit to tie it all together. Sure, you could get a bunch of anonymous creatives together on a shared Figma, but there will be zero accountability and likely low participation. Whereas Urbit—particularly Holium’s forthcoming Realm—brings Urbit ID into a decentralized, permanent environment that connects members P2P, and allows on-chain transactions without leaving Urbit. All while maintaining permanent IDs.
105+
106+As creative studios and agencies struggle for more creative freedom, DAOs and tokenization will surely take a more central role in the marketing and branding industries. Decentralization offers such entities benefits that could fundamentally reshape creatives’ relationships with clients—reducing layers of inefficiency and anti-creative incentives. However, a decentralized ID layer like Urbit is needed before the Agency DAO can be practically attempted.
107+
108+–
109+
110+*Isaac Simpson is a Los Angeles based writer and the founder of the marketing agency [WILL](https://willtheagency.com/). You can read his work on his substack [The Carousel](https://thecarousel.substack.com/).*
content/blog/interplanetary_commerce.md+2−1
@@ -2,6 +2,7 @@
2title = "Interplanetary Commerce"
2title = "Interplanetary Commerce"
3date = "2021-04-08"
3date = "2021-04-08"
4description = "OS-level commercial primitives."
4description = "OS-level commercial primitives."
5+tags = ["bitcoin"]
5
6
6[extra]
7[extra]
7author = "Christian Langalis"
8author = "Christian Langalis"
@@ -33,4 +34,4 @@ The Urbit Foundation is soliciting contributors to this project through Urbit Gr
33
34
34## An Ocean
35## An Ocean
35
36
36−After honing our commercial tools on these use-cases, we’ll sail into a blue ocean. On the horizon: beautiful products, deployable at scale, built with the robust primitives of Urbit OS. Extensibility is Urbit’s promise to middle-men: every Web2.0 service they use to scalp us will find its P2P analog on Urbit. We invite developers and entrepreneurs of all stripes to join in the feeding frenzy. Ideas are constantly nucleating in [Urbitcoiners](web+urbitgraph://group/~pindet-timmut/urbitcoin-cash) and [Urbit Community](web+urbitgraph://group/~bitbet-bolbel/urbit-community/graph/~darrux-landes/business-building-on-urbit).
37+After honing our commercial tools on these use-cases, we’ll sail into a blue ocean. On the horizon: beautiful products, deployable at scale, built with the robust primitives of Urbit OS. Extensibility is Urbit’s promise to middle-men: every Web2.0 service they use to scalp us will find its P2P analog on Urbit. We invite developers and entrepreneurs of all stripes to join in the feeding frenzy. Ideas are constantly nucleating in [Urbitcoiners](web+urbitgraph://group/~pindet-timmut/urbitcoiners) and [Urbit Community](web+urbitgraph://group/~bitbet-bolbel/urbit-community/graph/~darrux-landes/business-building-on-urbit).
content/blog/urbit-and-bitcoin.md+1−1
@@ -2,7 +2,7 @@
2title = "Urbit and Bitcoin"
2title = "Urbit and Bitcoin"
3description = "A sound money deserves a sound computer."
3description = "A sound money deserves a sound computer."
4date = "2019-10-16"
4date = "2019-10-16"
5−
5+tags = ["bitcoin"]
6[extra]
6[extra]
7author = "Christian Langalis"
7author = "Christian Langalis"
8ship = "~pindet-timmut"
8ship = "~pindet-timmut"
content/events/2021-04-27-bitcoin-launch.md+2−1
@@ -9,6 +9,7 @@ description = "Bitcoin is coming to Urbit! With the upcoming release of the Bitc
9timezone = "America/Los_Angeles"
9timezone = "America/Los_Angeles"
10starts = "2021-04-27T20:00:00.000-07:00"
10starts = "2021-04-27T20:00:00.000-07:00"
11dark = true
11dark = true
12+tags = ["bitcoin"]
12
13
13[[hosts]]
14[[hosts]]
14name = "Urbit Foundation"
15name = "Urbit Foundation"
@@ -23,4 +24,4 @@ We’d like to take a moment to show it off, and discuss the future of commerce
23
24
24The event will have a live stream on Youtube, and a live-chat on Urbit, links to come.
25The event will have a live stream on Youtube, and a live-chat on Urbit, links to come.
25
26
26−Join the Bitcoin dev conversation in the Urbitcoiners group: [~pindet-timmut/urbitcoin-cash](web+urbitgraph://group/~pindet-timmut/urbitcoin-cash)
27+Join the Bitcoin dev conversation in the Urbitcoiners group: [~pindet-timmut/urbitcoin-cash](web+urbitgraph://group/~pindet-timmut/urbitcoiners)
content/events/2022-11-01-developer-week.md+3−2
@@ -22,11 +22,12 @@ From the 14th through the 18th of November the Urbit Foundation is organizing a
22| 11/15 – 13:00 | Volcano Summit | [here](https://www.meetup.com/urbit-sf/events/289629419/) | [here](https://www.youtube.com/watch?v=ckFsPr-DXNE) |
22| 11/15 – 13:00 | Volcano Summit | [here](https://www.meetup.com/urbit-sf/events/289629419/) | [here](https://www.youtube.com/watch?v=ckFsPr-DXNE) |
23| 11/16 – 08:00 | Encode Club x Urbit Hackathon | [here](https://www.meetup.com/urbit-sf/events/289646836) | [here](https://www.youtube.com/watch?v=Mn_kGE9Ndbw) |
23| 11/16 – 08:00 | Encode Club x Urbit Hackathon | [here](https://www.meetup.com/urbit-sf/events/289646836) | [here](https://www.youtube.com/watch?v=Mn_kGE9Ndbw) |
24| 11/16 – 10:00 | Speed Hooning | [here](https://www.meetup.com/urbit-sf/events/289629435/) | [here](https://www.youtube.com/watch?v=eRz3s9dQZe8) |
24| 11/16 – 10:00 | Speed Hooning | [here](https://www.meetup.com/urbit-sf/events/289629435/) | [here](https://www.youtube.com/watch?v=eRz3s9dQZe8) |
25+| 11/17 – 12:00 | Core Roadmap | [here](https://www.meetup.com/urbit-sf/events/289629450/) | [here](https://www.youtube.com/watch?v=BJaRloyA02Y) |
25| 11/17 – 13:00 | Core Dev AMA | [here](https://www.meetup.com/urbit-sf/events/289629467/) | [here](https://www.youtube.com/watch?v=SI_B7H8tSRE) |
26| 11/17 – 13:00 | Core Dev AMA | [here](https://www.meetup.com/urbit-sf/events/289629467/) | [here](https://www.youtube.com/watch?v=SI_B7H8tSRE) |
26| 11/18 – 10:00 | So you want to work on Urbit? | [here](https://www.meetup.com/urbit-sf/events/289629483/) | [here](https://www.youtube.com/watch?v=j96Gb6dXaNs) |
27| 11/18 – 10:00 | So you want to work on Urbit? | [here](https://www.meetup.com/urbit-sf/events/289629483/) | [here](https://www.youtube.com/watch?v=j96Gb6dXaNs) |
27| 11/18 – 12:00 | Engine Pattern | [here](https://www.meetup.com/urbit-sf/events/289629506/) | [here](https://www.youtube.com/watch?v=T4VyW72zX0w) |
28| 11/18 – 12:00 | Engine Pattern | [here](https://www.meetup.com/urbit-sf/events/289629506/) | [here](https://www.youtube.com/watch?v=T4VyW72zX0w) |
28
29
29−**times are in Pacific Time**
30+**times are in Pacific Time*
30
31
31### Developer Week: Urbit Foundation
32### Developer Week: Urbit Foundation
32Want to know what’s new at the Urbit Foundation? On Monday Josh Lehman and Ted Blackman will kick-off Urbit Developer Week with a look back at the first year of the Urbit Foundation’s existence and share some exciting news with you. Make sure to tune in and ask your questions.
33Want to know what’s new at the Urbit Foundation? On Monday Josh Lehman and Ted Blackman will kick-off Urbit Developer Week with a look back at the first year of the Urbit Foundation’s existence and share some exciting news with you. Make sure to tune in and ask your questions.
@@ -59,7 +60,7 @@ Urbit Core Development is opening up to the world. Want to see where it is going
59[Meetup](https://www.meetup.com/urbit-sf/events/289629450/) | [Youtube](https://www.youtube.com/watch?v=BJaRloyA02Y)
60[Meetup](https://www.meetup.com/urbit-sf/events/289629450/) | [Youtube](https://www.youtube.com/watch?v=BJaRloyA02Y)
60
61
61### Developer Week: Core Dev AMA
62### Developer Week: Core Dev AMA
62−Have a burning question for the core developers of Urbit about what's going on or where things are going? Urbit’s core developers will be available to answer any questions you have. Join ~rovnys-ricfer, ~wicdev-wisryt, ~palfun-foslup & ~master-morzod on Friday right after the Roadmap presentation.
63+Have a burning question for the core developers of Urbit about what's going on or where things are going? Urbit’s core developers will be available to answer any questions you have. Join ~rovnys-ricfer, ~wicdev-wisryt, ~palfun-foslup & ~master-morzod on Thursday right after the Roadmap presentation.
63
64
64[Meetup](https://www.meetup.com/urbit-sf/events/289629467/) | [Youtube](https://www.youtube.com/watch?v=SI_B7H8tSRE)
65[Meetup](https://www.meetup.com/urbit-sf/events/289629467/) | [Youtube](https://www.youtube.com/watch?v=SI_B7H8tSRE)
65
66
content/events/2022-11-19-urbit-irl.mdnew file+18
@@ -0,0 +1,18 @@
1++++
2+title = "Urbit SF Meetup ~2022.11"
3+starts = "2022-11-19T13:00:00"
4+ends = "2022-11-19T17:00:00"
5+location = "Alamo Square Park"
6+registration_url = "https://www.meetup.com/urbit-sf/events/289653432/"
7+description = "Please join us for a park meetup (picnic optional!) at Alamo Square Park in San Francisco, on Saturday, 11/19."
8+guests = ""
9+timezone = "America/Los_Angeles"
10+
11+[[hosts]]
12+name = "Tlon"
13++++
14+
15+Please join us for a park meetup (picnic optional!) at Alamo Square Park in San Francisco, on Saturday, 11/19. We'll meet at 1:00PM and stay as long as people want to chat. Bring a jacket and your choice of food/drink.
16+Interested friends and the Urbit-curious are always welcome!
17+
18+We'll meet in the SW corner of the park, on Hayes St near the dog area.
content/getting-started/cli.md+18
@@ -50,6 +50,24 @@ curl -L https://urbit.org/install/linux64/latest | tar xzk --strip=1 && ./urbit
50
50
51{% /tab %}
51{% /tab %}
52
52
53+{% tab label="Linux ARM64" %}
54+
55+Note this is for the AArch64 architecture.
56+
57+```shell
58+curl -L https://urbit.org/install/linux-aarch64/latest | tar xzk --strip=1 && ./urbit
59+```
60+
61+> Linux users may need to run this command in another terminal window to access
62+> your urbit on port 80:
63+>
64+> ```shell
65+> sudo apt-get install libcap2-bin
66+> sudo setcap 'cap_net_bind_service=+ep' ./urbit
67+> ```
68+
69+{% /tab %}
70+
53{% tab label="Windows" %}
71{% tab label="Windows" %}
54
72
55```winbatch
73```winbatch
content/grants/2022/trove.md+9−5
@@ -1,6 +1,6 @@
1+++
1+++
2title = "Trove: group file drive"
2title = "Trove: group file drive"
3−date = "2022-07-18"
3+date = "2022-11-08"
4
4
5[taxonomies]
5[taxonomies]
6grant_type = [ "Bounty" ]
6grant_type = [ "Bounty" ]
@@ -9,8 +9,8 @@ grant_category = [ "App Dev" ]
9[extra]
9[extra]
10image = ""
10image = ""
11description = "A shared file drive allowing the upload of files to an S3 bucket or IPFS and the ability to organize the file links in folders."
11description = "A shared file drive allowing the upload of files to an S3 bucket or IPFS and the ability to organize the file links in folders."
12−reward = "2 stars ($4k bonus if done by Assembly)"
12+reward = "4 stars ($8k bonus if done by December 12, 2022)"
13−assignee = [""]
13+assignee = ["Quartus"]
14grant_id = "B0164"
14grant_id = "B0164"
15champion = ["Holium"]
15champion = ["Holium"]
16completed = false
16completed = false
@@ -69,9 +69,13 @@ A set of roles will be mapped to each action as below:
69
69
70Holium will work with the developer(s) to provide frontend support, but the team working on this bounty will be responsible for frontend implementation.
70Holium will work with the developer(s) to provide frontend support, but the team working on this bounty will be responsible for frontend implementation.
71
71
72−## Milestone 1: 2 stars ($4k bonus if done by Assembly)
72+## Milestone 1: 4 stars ($4k bonus if done by December 12, 2022)
73
73
74−Have a working file eHave a working file explorer app that can find files, transfer files, and drag and drop.
74+- Have a working file explorer app that can find files, transfer files, and drag and drop.
75+
76+- Have recursive, per-folder, forced-nesting, permission sets for the operations described in **Permissions** above.
77+
78+- Produce material contributions towards a frontend library to assist developers in integrating with Holium Spaces. **(Additional $4k bonus)**
75
79
76For the milestone to be completed, the app must be approved by Holium and it must be hosted for distribution on Holium's app star (as well as your own if desired).
80For the milestone to be completed, the app must be approved by Holium and it must be hosted for distribution on Holium's app star (as well as your own if desired).
77
81
content/groups/~dister-dozzod-lapdeg/battery-payload.mdnew file+9
@@ -0,0 +1,9 @@
1++++
2+title = "[battery payload]"
3+shortcode = "~dister-dozzod-lapdeg/battery-payload"
4+type = "Public"
5+tile = "#FFCDE0"
6+participant_range = ""
7++++
8+
9+The official developer community group of `[battery payload]`.
content/groups/~halbex-palheb/uf-public.mdnew file+10
@@ -0,0 +1,10 @@
1++++
2+title = "UF Public"
3+shortcode = "~halbex-palheb/uf-public"
4+description = "Public group for the Urbit Foundation"
5+type = "Public"
6+tile = "https://interstellar.nyc3.digitaloceanspaces.com/battus-datsun/2022.11.07..19.39.22-Sig.png"
7+participant_range = "100+"
8++++
9+
10+The best place to get the latest updates from the team at the Urbit Foundation.
lib/constants.js+1
@@ -24,6 +24,7 @@ export const eventKeys = [
24 "dark",
24 "dark",
25 "timezone",
25 "timezone",
26 "darken_image",
26 "darken_image",
27+ "tags"
27];
28];
28
29
29export const postKeys = [
30export const postKeys = [
package-lock.json+335−325
@@ -12,7 +12,7 @@
12 "@socialgouv/matomo-next": "^1.3.0",
12 "@socialgouv/matomo-next": "^1.3.0",
13 "@tailwindcss/aspect-ratio": "^0.4.0",
13 "@tailwindcss/aspect-ratio": "^0.4.0",
14 "@tlon/sigil-js": "^1.4.5",
14 "@tlon/sigil-js": "^1.4.5",
15− "@urbit/foundation-design-system": "^0.4.1",
15+ "@urbit/foundation-design-system": "0.6.4",
16 "@urbit/markdoc": "^0.1.4",
16 "@urbit/markdoc": "^0.1.4",
17 "axios": "^0.26.1",
17 "axios": "^0.26.1",
18 "buffer": "^6.0.3",
18 "buffer": "^6.0.3",
@@ -48,11 +48,11 @@
48 }
48 }
49 },
49 },
50 "node_modules/@babel/runtime": {
50 "node_modules/@babel/runtime": {
51− "version": "7.18.9",
51+ "version": "7.20.1",
52− "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz",
52+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz",
53− "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
53+ "integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==",
54 "dependencies": {
54 "dependencies": {
55− "regenerator-runtime": "^0.13.4"
55+ "regenerator-runtime": "^0.13.10"
56 },
56 },
57 "engines": {
57 "engines": {
58 "node": ">=6.9.0"
58 "node": ">=6.9.0"
@@ -64,9 +64,9 @@
64 "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg=="
64 "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg=="
65 },
65 },
66 "node_modules/@mapbox/node-pre-gyp": {
66 "node_modules/@mapbox/node-pre-gyp": {
67− "version": "1.0.9",
67+ "version": "1.0.10",
68− "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz",
68+ "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz",
69− "integrity": "sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw==",
69+ "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==",
70 "dependencies": {
70 "dependencies": {
71 "detect-libc": "^2.0.0",
71 "detect-libc": "^2.0.0",
72 "https-proxy-agent": "^5.0.0",
72 "https-proxy-agent": "^5.0.0",
@@ -83,14 +83,14 @@
83 }
83 }
84 },
84 },
85 "node_modules/@next/env": {
85 "node_modules/@next/env": {
86− "version": "12.2.5",
86+ "version": "12.3.3",
87− "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.5.tgz",
87+ "resolved": "https://registry.npmjs.org/@next/env/-/env-12.3.3.tgz",
88− "integrity": "sha512-vLPLV3cpPGjUPT3PjgRj7e3nio9t6USkuew3JE/jMeon/9Mvp1WyR18v3iwnCuX7eUAm1HmAbJHHLAbcu/EJcw=="
88+ "integrity": "sha512-H2pKuOasV9RgvVaWosB2rGSNeQShQpiDaF4EEjLyagIc3HwqdOw2/VAG/8Lq+adOwPv2P73O1hulTNad3k5MDw=="
89 },
89 },
90 "node_modules/@next/swc-android-arm-eabi": {
90 "node_modules/@next/swc-android-arm-eabi": {
91− "version": "12.2.5",
91+ "version": "12.3.3",
92− "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.5.tgz",
92+ "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.3.3.tgz",
93− "integrity": "sha512-cPWClKxGhgn2dLWnspW+7psl3MoLQUcNqJqOHk2BhNcou9ARDtC0IjQkKe5qcn9qg7I7U83Gp1yh2aesZfZJMA==",
93+ "integrity": "sha512-5O/ZIX6hlIRGMy1R2f/8WiCZ4Hp4WTC0FcTuz8ycQ28j/mzDnmzjVoayVVr+ZmfEKQayFrRu+vxHjFyY0JGQlQ==",
94 "cpu": [
94 "cpu": [
95 "arm"
95 "arm"
96 ],
96 ],
@@ -103,9 +103,9 @@
103 }
103 }
104 },
104 },
105 "node_modules/@next/swc-android-arm64": {
105 "node_modules/@next/swc-android-arm64": {
106− "version": "12.2.5",
106+ "version": "12.3.3",
107− "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.5.tgz",
107+ "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.3.3.tgz",
108− "integrity": "sha512-vMj0efliXmC5b7p+wfcQCX0AfU8IypjkzT64GiKJD9PgiA3IILNiGJr1fw2lyUDHkjeWx/5HMlMEpLnTsQslwg==",
108+ "integrity": "sha512-2QWreRmlxYRDtnLYn+BI8oukHwcP7W0zGIY5R2mEXRjI4ARqCLdu8RmcT9Vemw7RfeAVKA/4cv/9PY0pCcQpNA==",
109 "cpu": [
109 "cpu": [
110 "arm64"
110 "arm64"
111 ],
111 ],
@@ -118,9 +118,9 @@
118 }
118 }
119 },
119 },
120 "node_modules/@next/swc-darwin-arm64": {
120 "node_modules/@next/swc-darwin-arm64": {
121− "version": "12.2.5",
121+ "version": "12.3.3",
122− "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.5.tgz",
122+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.3.3.tgz",
123− "integrity": "sha512-VOPWbO5EFr6snla/WcxUKtvzGVShfs302TEMOtzYyWni6f9zuOetijJvVh9CCTzInnXAZMtHyNhefijA4HMYLg==",
123+ "integrity": "sha512-GtZdDLerM+VToCMFp+W+WhnT6sxHePQH4xZZiYD/Y8KFiwHbDRcJr2FPG0bAJnGNiSvv/QQnBq74wjZ9+7vhcQ==",
124 "cpu": [
124 "cpu": [
125 "arm64"
125 "arm64"
126 ],
126 ],
@@ -133,9 +133,9 @@
133 }
133 }
134 },
134 },
135 "node_modules/@next/swc-darwin-x64": {
135 "node_modules/@next/swc-darwin-x64": {
136− "version": "12.2.5",
136+ "version": "12.3.3",
137− "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.5.tgz",
137+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.3.3.tgz",
138− "integrity": "sha512-5o8bTCgAmtYOgauO/Xd27vW52G2/m3i5PX7MUYePquxXAnX73AAtqA3WgPXBRitEB60plSKZgOTkcpqrsh546A==",
138+ "integrity": "sha512-gRYvTKrRYynjFQUDJ+upHMcBiNz0ii0m7zGgmUTlTSmrBWqVSzx79EHYT7Nn4GWHM+a/W+2VXfu+lqHcJeQ9gQ==",
139 "cpu": [
139 "cpu": [
140 "x64"
140 "x64"
141 ],
141 ],
@@ -148,9 +148,9 @@
148 }
148 }
149 },
149 },
150 "node_modules/@next/swc-freebsd-x64": {
150 "node_modules/@next/swc-freebsd-x64": {
151− "version": "12.2.5",
151+ "version": "12.3.3",
152− "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.5.tgz",
152+ "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.3.3.tgz",
153− "integrity": "sha512-yYUbyup1JnznMtEBRkK4LT56N0lfK5qNTzr6/DEyDw5TbFVwnuy2hhLBzwCBkScFVjpFdfiC6SQAX3FrAZzuuw==",
153+ "integrity": "sha512-r+GLATzCjjQI82bgrIPXWEYBwZonSO64OThk5wU6HduZlDYTEDxZsFNoNoesCDWCgRrgg+OXj7WLNy1WlvfX7w==",
154 "cpu": [
154 "cpu": [
155 "x64"
155 "x64"
156 ],
156 ],
@@ -163,9 +163,9 @@
163 }
163 }
164 },
164 },
165 "node_modules/@next/swc-linux-arm-gnueabihf": {
165 "node_modules/@next/swc-linux-arm-gnueabihf": {
166− "version": "12.2.5",
166+ "version": "12.3.3",
167− "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.5.tgz",
167+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.3.3.tgz",
168− "integrity": "sha512-2ZE2/G921Acks7UopJZVMgKLdm4vN4U0yuzvAMJ6KBavPzqESA2yHJlm85TV/K9gIjKhSk5BVtauIUntFRP8cg==",
168+ "integrity": "sha512-juvRj1QX9jmQScL4nV0rROtYUFgWP76zfdn1fdfZ2BhvwUugIAq8x+jLVGlnXKUhDrP9+RrAufqXjjVkK+uBxA==",
169 "cpu": [
169 "cpu": [
170 "arm"
170 "arm"
171 ],
171 ],
@@ -178,9 +178,9 @@
178 }
178 }
179 },
179 },
180 "node_modules/@next/swc-linux-arm64-gnu": {
180 "node_modules/@next/swc-linux-arm64-gnu": {
181− "version": "12.2.5",
181+ "version": "12.3.3",
182− "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.5.tgz",
182+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.3.3.tgz",
183− "integrity": "sha512-/I6+PWVlz2wkTdWqhlSYYJ1pWWgUVva6SgX353oqTh8njNQp1SdFQuWDqk8LnM6ulheVfSsgkDzxrDaAQZnzjQ==",
183+ "integrity": "sha512-hzinybStPB+SzS68hR5rzOngOH7Yd/jFuWGeg9qS5WifYXHpqwGH2BQeKpjVV0iJuyO9r309JKrRWMrbfhnuBA==",
184 "cpu": [
184 "cpu": [
185 "arm64"
185 "arm64"
186 ],
186 ],
@@ -193,9 +193,9 @@
193 }
193 }
194 },
194 },
195 "node_modules/@next/swc-linux-arm64-musl": {
195 "node_modules/@next/swc-linux-arm64-musl": {
196− "version": "12.2.5",
196+ "version": "12.3.3",
197− "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.5.tgz",
197+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.3.3.tgz",
198− "integrity": "sha512-LPQRelfX6asXyVr59p5sTpx5l+0yh2Vjp/R8Wi4X9pnqcayqT4CUJLiHqCvZuLin3IsFdisJL0rKHMoaZLRfmg==",
198+ "integrity": "sha512-oyfQYljCwf+9zUu1YkTZbRbyxmcHzvJPMGOxC3kJOReh3kCUoGcmvAxUPMtFD6FSYjJ+eaog4+2IFHtYuAw/bQ==",
199 "cpu": [
199 "cpu": [
200 "arm64"
200 "arm64"
201 ],
201 ],
@@ -208,9 +208,9 @@
208 }
208 }
209 },
209 },
210 "node_modules/@next/swc-linux-x64-gnu": {
210 "node_modules/@next/swc-linux-x64-gnu": {
211− "version": "12.2.5",
211+ "version": "12.3.3",
212− "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.5.tgz",
212+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.3.3.tgz",
213− "integrity": "sha512-0szyAo8jMCClkjNK0hknjhmAngUppoRekW6OAezbEYwHXN/VNtsXbfzgYOqjKWxEx3OoAzrT3jLwAF0HdX2MEw==",
213+ "integrity": "sha512-epv4FMazj/XG70KTTnrZ0H1VtL6DeWOvyHLHYy7f5PdgDpBXpDTFjVqhP8NFNH8HmaDDdeL1NvQD07AXhyvUKA==",
214 "cpu": [
214 "cpu": [
215 "x64"
215 "x64"
216 ],
216 ],
@@ -223,9 +223,9 @@
223 }
223 }
224 },
224 },
225 "node_modules/@next/swc-linux-x64-musl": {
225 "node_modules/@next/swc-linux-x64-musl": {
226− "version": "12.2.5",
226+ "version": "12.3.3",
227− "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.5.tgz",
227+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.3.3.tgz",
228− "integrity": "sha512-zg/Y6oBar1yVnW6Il1I/08/2ukWtOG6s3acdJdEyIdsCzyQi4RLxbbhkD/EGQyhqBvd3QrC6ZXQEXighQUAZ0g==",
228+ "integrity": "sha512-bG5QODFy59XnSFTiPyIAt+rbPdphtvQMibtOVvyjwIwsBUw7swJ6k+6PSPVYEYpi6SHzi3qYBsro39ayGJKQJg==",
229 "cpu": [
229 "cpu": [
230 "x64"
230 "x64"
231 ],
231 ],
@@ -238,9 +238,9 @@
238 }
238 }
239 },
239 },
240 "node_modules/@next/swc-win32-arm64-msvc": {
240 "node_modules/@next/swc-win32-arm64-msvc": {
241− "version": "12.2.5",
241+ "version": "12.3.3",
242− "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.5.tgz",
242+ "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.3.3.tgz",
243− "integrity": "sha512-3/90DRNSqeeSRMMEhj4gHHQlLhhKg5SCCoYfE3kBjGpE63EfnblYUqsszGGZ9ekpKL/R4/SGB40iCQr8tR5Jiw==",
243+ "integrity": "sha512-FbnT3reJ3MbTJ5W0hvlCCGGVDSpburzT5XGC9ljBJ4kr+85iNTLjv7+vrPeDdwHEqtGmdZgnabkLVCI4yFyCag==",
244 "cpu": [
244 "cpu": [
245 "arm64"
245 "arm64"
246 ],
246 ],
@@ -253,9 +253,9 @@
253 }
253 }
254 },
254 },
255 "node_modules/@next/swc-win32-ia32-msvc": {
255 "node_modules/@next/swc-win32-ia32-msvc": {
256− "version": "12.2.5",
256+ "version": "12.3.3",
257− "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.5.tgz",
257+ "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.3.3.tgz",
258− "integrity": "sha512-hGLc0ZRAwnaPL4ulwpp4D2RxmkHQLuI8CFOEEHdzZpS63/hMVzv81g8jzYA0UXbb9pus/iTc3VRbVbAM03SRrw==",
258+ "integrity": "sha512-M/fKZC2tMGWA6eTsIniNEBpx2prdR8lIxvSO3gv5P6ymZOGVWCvEMksnTkPAjHnU6d8r8eCiuGKm3UNo7zCTpQ==",
259 "cpu": [
259 "cpu": [
260 "ia32"
260 "ia32"
261 ],
261 ],
@@ -268,9 +268,9 @@
268 }
268 }
269 },
269 },
270 "node_modules/@next/swc-win32-x64-msvc": {
270 "node_modules/@next/swc-win32-x64-msvc": {
271− "version": "12.2.5",
271+ "version": "12.3.3",
272− "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.5.tgz",
272+ "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.3.3.tgz",
273− "integrity": "sha512-7h5/ahY7NeaO2xygqVrSG/Y8Vs4cdjxIjowTZ5W6CKoTKn7tmnuxlUc2h74x06FKmbhAd9agOjr/AOKyxYYm9Q==",
273+ "integrity": "sha512-Ku9mfGwmNtk44o4B/jEWUxBAT4tJ3S7QbBMLJdL1GmtRZ05LGL36OqWjLvBPr8dFiHOQQbYoAmYfQw7zeGypYA==",
274 "cpu": [
274 "cpu": [
275 "x64"
275 "x64"
276 ],
276 ],
@@ -323,17 +323,17 @@
323 }
323 }
324 },
324 },
325 "node_modules/@swc/helpers": {
325 "node_modules/@swc/helpers": {
326− "version": "0.4.3",
326+ "version": "0.4.11",
327− "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.3.tgz",
327+ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.11.tgz",
328− "integrity": "sha512-6JrF+fdUK2zbGpJIlN7G3v966PQjyx/dPt1T9km2wj+EUBqgrxCk3uX4Kct16MIm9gGxfKRcfax2hVf5jvlTzA==",
328+ "integrity": "sha512-rEUrBSGIoSFuYxwBYtlUFMlE2CwGhmW+w9355/5oduSw8e5h2+Tj4UrAGNNgP9915++wj5vkQo0UuOBqOAq4nw==",
329 "dependencies": {
329 "dependencies": {
330 "tslib": "^2.4.0"
330 "tslib": "^2.4.0"
331 }
331 }
332 },
332 },
333 "node_modules/@tailwindcss/aspect-ratio": {
333 "node_modules/@tailwindcss/aspect-ratio": {
334− "version": "0.4.0",
334+ "version": "0.4.2",
335− "resolved": "https://registry.npmjs.org/@tailwindcss/aspect-ratio/-/aspect-ratio-0.4.0.tgz",
335+ "resolved": "https://registry.npmjs.org/@tailwindcss/aspect-ratio/-/aspect-ratio-0.4.2.tgz",
336− "integrity": "sha512-WJu0I4PpqNPuutpaA9zDUq2JXR+lorZ7PbLcKNLmb6GL9/HLfC7w3CRsMhJF4BbYd/lkY6CfXOvkYpuGnZfkpQ==",
336+ "integrity": "sha512-8QPrypskfBa7QIMuKHg2TA7BqES6vhBrDLOv8Unb6FcFyd3TjKbc6lcmb9UPQHxfl24sXoJ41ux/H7qQQvfaSQ==",
337 "peerDependencies": {
337 "peerDependencies": {
338 "tailwindcss": ">=2.0.0 || >=3.0.0 || >=3.0.0-alpha.1"
338 "tailwindcss": ">=2.0.0 || >=3.0.0 || >=3.0.0-alpha.1"
339 }
339 }
@@ -358,16 +358,17 @@
358 "dev": true
358 "dev": true
359 },
359 },
360 "node_modules/@urbit/foundation-design-system": {
360 "node_modules/@urbit/foundation-design-system": {
361− "version": "0.4.1",
361+ "version": "0.6.4",
362− "resolved": "https://registry.npmjs.org/@urbit/foundation-design-system/-/foundation-design-system-0.4.1.tgz",
362+ "resolved": "https://registry.npmjs.org/@urbit/foundation-design-system/-/foundation-design-system-0.6.4.tgz",
363− "integrity": "sha512-EFGtqABqIlJYQhaCJ7p/GlS0Wq2MrtF1H0vXC5p1l+na+aV5CGT0oXIR5dDt4hUgCD1gh9rX0QI9qnu2YKpAeA==",
363+ "integrity": "sha512-gg2Vx9BHwoV7Z3JheUB8D+HEMMdJGtOwD7YZSGZeIe2Scy3HL9MO5sT774gfhA6J6aI3pRgyxv2R209ShgUChg==",
364 "dependencies": {
364 "dependencies": {
365 "@iarna/toml": "^2.2.5",
365 "@iarna/toml": "^2.2.5",
366 "core-js": "^3.23.1",
366 "core-js": "^3.23.1",
367 "gray-matter": "^4.0.3",
367 "gray-matter": "^4.0.3",
368 "html-react-parser": "^1.4.14",
368 "html-react-parser": "^1.4.14",
369 "luxon": "^3.0.1",
369 "luxon": "^3.0.1",
370− "prism-react-renderer": "^1.3.3"
370+ "prism-react-renderer": "^1.3.3",
371+ "react-swipeable": "^6.2.1"
371 },
372 },
372 "peerDependencies": {
373 "peerDependencies": {
373 "@tailwindcss/aspect-ratio": "^0.4.0",
374 "@tailwindcss/aspect-ratio": "^0.4.0",
@@ -376,7 +377,7 @@
376 "classnames": "^2.3.1",
377 "classnames": "^2.3.1",
377 "next": "^12.1.6",
378 "next": "^12.1.6",
378 "postcss": "^8.4.14",
379 "postcss": "^8.4.14",
379− "prismjs": "^1.28.0",
380+ "prismjs": "^1.29.0",
380 "react": "^17.0.2",
381 "react": "^17.0.2",
381 "react-dom": "^17.0.2",
382 "react-dom": "^17.0.2",
382 "tailwindcss": "^3.1.3",
383 "tailwindcss": "^3.1.3",
@@ -384,9 +385,9 @@
384 }
385 }
385 },
386 },
386 "node_modules/@urbit/foundation-design-system/node_modules/luxon": {
387 "node_modules/@urbit/foundation-design-system/node_modules/luxon": {
387− "version": "3.0.1",
388+ "version": "3.1.0",
388− "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.0.1.tgz",
389+ "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.1.0.tgz",
389− "integrity": "sha512-hF3kv0e5gwHQZKz4wtm4c+inDtyc7elkanAsBq+fundaCdUBNJB1dHEGUZIM6SfSBUlbVFduPwEtNjFK8wLtcw==",
390+ "integrity": "sha512-7w6hmKC0/aoWnEsmPCu5Br54BmbmUp5GfcqBxQngRcXJ+q5fdfjEzn7dxmJh2YdDhgW8PccYtlWKSv4tQkrTQg==",
390 "engines": {
391 "engines": {
391 "node": ">=12"
392 "node": ">=12"
392 }
393 }
@@ -537,9 +538,9 @@
537 }
538 }
538 },
539 },
539 "node_modules/autoprefixer": {
540 "node_modules/autoprefixer": {
540− "version": "10.4.8",
541+ "version": "10.4.13",
541− "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.8.tgz",
542+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz",
542− "integrity": "sha512-75Jr6Q/XpTqEf6D2ltS5uMewJIx5irCU1oBYJrWjFenq/m12WRRrz6g15L1EIoYvPLXTbEry7rDOwrcYNj77xw==",
543+ "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==",
543 "funding": [
544 "funding": [
544 {
545 {
545 "type": "opencollective",
546 "type": "opencollective",
@@ -551,8 +552,8 @@
551 }
552 }
552 ],
553 ],
553 "dependencies": {
554 "dependencies": {
554− "browserslist": "^4.21.3",
555+ "browserslist": "^4.21.4",
555− "caniuse-lite": "^1.0.30001373",
556+ "caniuse-lite": "^1.0.30001426",
556 "fraction.js": "^4.2.0",
557 "fraction.js": "^4.2.0",
557 "normalize-range": "^0.1.2",
558 "normalize-range": "^0.1.2",
558 "picocolors": "^1.0.0",
559 "picocolors": "^1.0.0",
@@ -634,9 +635,9 @@
634 }
635 }
635 },
636 },
636 "node_modules/browserslist": {
637 "node_modules/browserslist": {
637− "version": "4.21.3",
638+ "version": "4.21.4",
638− "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz",
639+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
639− "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==",
640+ "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
640 "funding": [
641 "funding": [
641 {
642 {
642 "type": "opencollective",
643 "type": "opencollective",
@@ -648,10 +649,10 @@
648 }
649 }
649 ],
650 ],
650 "dependencies": {
651 "dependencies": {
651− "caniuse-lite": "^1.0.30001370",
652+ "caniuse-lite": "^1.0.30001400",
652− "electron-to-chromium": "^1.4.202",
653+ "electron-to-chromium": "^1.4.251",
653 "node-releases": "^2.0.6",
654 "node-releases": "^2.0.6",
654− "update-browserslist-db": "^1.0.5"
655+ "update-browserslist-db": "^1.0.9"
655 },
656 },
656 "bin": {
657 "bin": {
657 "browserslist": "cli.js"
658 "browserslist": "cli.js"
@@ -692,9 +693,9 @@
692 }
693 }
693 },
694 },
694 "node_modules/caniuse-lite": {
695 "node_modules/caniuse-lite": {
695− "version": "1.0.30001382",
696+ "version": "1.0.30001431",
696− "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001382.tgz",
697+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz",
697− "integrity": "sha512-2rtJwDmSZ716Pxm1wCtbPvHtbDWAreTPxXbkc5RkKglow3Ig/4GNGazDI9/BVnXbG/wnv6r3B5FEbkfg9OcTGg==",
698+ "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==",
698 "funding": [
699 "funding": [
699 {
700 {
700 "type": "opencollective",
701 "type": "opencollective",
@@ -707,13 +708,13 @@
707 ]
708 ]
708 },
709 },
709 "node_modules/canvas": {
710 "node_modules/canvas": {
710− "version": "2.9.3",
711+ "version": "2.10.2",
711− "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.9.3.tgz",
712+ "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.10.2.tgz",
712− "integrity": "sha512-WOUM7ghii5TV2rbhaZkh1youv/vW1/Canev6Yx6BG2W+1S07w8jKZqKkPnbiPpQEDsnJdN8ouDd7OvQEGXDcUw==",
713+ "integrity": "sha512-FSmlsip0nZ0U4Zcfht0qBJqDhlfGuevTZKE8h+dBOYrJjGvY3iqMGSzzbvkaFhvMXiVxfcMaPHS/kge++T5SKg==",
713 "hasInstallScript": true,
714 "hasInstallScript": true,
714 "dependencies": {
715 "dependencies": {
715 "@mapbox/node-pre-gyp": "^1.0.0",
716 "@mapbox/node-pre-gyp": "^1.0.0",
716− "nan": "^2.15.0",
717+ "nan": "^2.17.0",
717 "simple-get": "^3.0.3"
718 "simple-get": "^3.0.3"
718 },
719 },
719 "engines": {
720 "engines": {
@@ -779,9 +780,9 @@
779 }
780 }
780 },
781 },
781 "node_modules/classnames": {
782 "node_modules/classnames": {
782− "version": "2.3.1",
783+ "version": "2.3.2",
783− "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz",
784+ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz",
784− "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA=="
785+ "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw=="
785 },
786 },
786 "node_modules/color": {
787 "node_modules/color": {
787 "version": "4.2.3",
788 "version": "4.2.3",
@@ -844,9 +845,9 @@
844 "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="
845 "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="
845 },
846 },
846 "node_modules/core-js": {
847 "node_modules/core-js": {
847− "version": "3.24.1",
848+ "version": "3.26.1",
848− "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.24.1.tgz",
849+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.26.1.tgz",
849− "integrity": "sha512-0QTBSYSUZ6Gq21utGzkfITDylE8jWC9Ne1D2MrhvlsZBI1x39OdDIVbzSqtgMndIy6BlHxBXpMGqzZmnztg2rg==",
850+ "integrity": "sha512-21491RRQVzUn0GGM9Z1Jrpr6PNPxPi+Za8OM9q4tksTSnlbXXGKK1nXNg/QvwFYettXvSX6zWKCtHHfjN4puyA==",
850 "hasInstallScript": true,
851 "hasInstallScript": true,
851 "funding": {
852 "funding": {
852 "type": "opencollective",
853 "type": "opencollective",
@@ -937,9 +938,12 @@
937 }
938 }
938 },
939 },
939 "node_modules/defined": {
940 "node_modules/defined": {
940− "version": "1.0.0",
941+ "version": "1.0.1",
941− "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
942+ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz",
942− "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ=="
943+ "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==",
944+ "funding": {
945+ "url": "https://github.com/sponsors/ljharb"
946+ }
943 },
947 },
944 "node_modules/delegates": {
948 "node_modules/delegates": {
945 "version": "1.0.0",
949 "version": "1.0.0",
@@ -1040,9 +1044,9 @@
1040 }
1044 }
1041 },
1045 },
1042 "node_modules/downshift": {
1046 "node_modules/downshift": {
1043− "version": "6.1.9",
1047+ "version": "6.1.12",
1044− "resolved": "https://registry.npmjs.org/downshift/-/downshift-6.1.9.tgz",
1048+ "resolved": "https://registry.npmjs.org/downshift/-/downshift-6.1.12.tgz",
1045− "integrity": "sha512-mzvk61WOX4MEsYHMKCXEVwuz/zM84x/WrCbaCQw71hyNN0fmWXvV673uOQy2idgIA+yqDsjtkV5KPfAFWuQylg==",
1049+ "integrity": "sha512-7XB/iaSJVS4T8wGFT3WRXmSF1UlBHAA40DshZtkrIscIN+VC+Lh363skLxFTvJwtNgHxAMDGEHT4xsyQFWL+UA==",
1046 "dependencies": {
1050 "dependencies": {
1047 "@babel/runtime": "^7.14.8",
1051 "@babel/runtime": "^7.14.8",
1048 "compute-scroll-into-view": "^1.0.17",
1052 "compute-scroll-into-view": "^1.0.17",
@@ -1055,9 +1059,9 @@
1055 }
1059 }
1056 },
1060 },
1057 "node_modules/electron-to-chromium": {
1061 "node_modules/electron-to-chromium": {
1058− "version": "1.4.228",
1062+ "version": "1.4.284",
1059− "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.228.tgz",
1063+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
1060− "integrity": "sha512-XfDHCvou7CsDMlFwb0WZ1tWmW48e7Sn7VBRyPfZsZZila9esRsJl1trO+OqDNV97GggFSt0ISbWslKXfQkG//g=="
1064+ "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA=="
1061 },
1065 },
1062 "node_modules/emoji-regex": {
1066 "node_modules/emoji-regex": {
1063 "version": "8.0.0",
1067 "version": "8.0.0",
@@ -1144,9 +1148,9 @@
1144 }
1148 }
1145 },
1149 },
1146 "node_modules/fast-glob": {
1150 "node_modules/fast-glob": {
1147− "version": "3.2.11",
1151+ "version": "3.2.12",
1148− "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz",
1152+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
1149− "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==",
1153+ "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
1150 "dependencies": {
1154 "dependencies": {
1151 "@nodelib/fs.stat": "^2.0.2",
1155 "@nodelib/fs.stat": "^2.0.2",
1152 "@nodelib/fs.walk": "^1.2.3",
1156 "@nodelib/fs.walk": "^1.2.3",
@@ -1213,9 +1217,9 @@
1213 }
1217 }
1214 },
1218 },
1215 "node_modules/follow-redirects": {
1219 "node_modules/follow-redirects": {
1216− "version": "1.15.1",
1220+ "version": "1.15.2",
1217− "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz",
1221+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
1218− "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==",
1222+ "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
1219 "funding": [
1223 "funding": [
1220 {
1224 {
1221 "type": "individual",
1225 "type": "individual",
@@ -1559,9 +1563,9 @@
1559 "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
1563 "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
1560 },
1564 },
1561 "node_modules/is-core-module": {
1565 "node_modules/is-core-module": {
1562− "version": "2.10.0",
1566+ "version": "2.11.0",
1563− "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz",
1567+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
1564− "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==",
1568+ "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
1565 "dependencies": {
1569 "dependencies": {
1566 "has": "^1.0.3"
1570 "has": "^1.0.3"
1567 },
1571 },
@@ -1845,9 +1849,12 @@
1845 }
1849 }
1846 },
1850 },
1847 "node_modules/minimist": {
1851 "node_modules/minimist": {
1848− "version": "1.2.6",
1852+ "version": "1.2.7",
1849− "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
1853+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
1850− "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
1854+ "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
1855+ "funding": {
1856+ "url": "https://github.com/sponsors/ljharb"
1857+ }
1851 },
1858 },
1852 "node_modules/minipass": {
1859 "node_modules/minipass": {
1853 "version": "3.3.4",
1860 "version": "3.3.4",
@@ -1914,9 +1921,9 @@
1914 }
1921 }
1915 },
1922 },
1916 "node_modules/nan": {
1923 "node_modules/nan": {
1917− "version": "2.16.0",
1924+ "version": "2.17.0",
1918− "resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz",
1925+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz",
1919− "integrity": "sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA=="
1926+ "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ=="
1920 },
1927 },
1921 "node_modules/nanoid": {
1928 "node_modules/nanoid": {
1922 "version": "3.3.4",
1929 "version": "3.3.4",
@@ -1930,15 +1937,15 @@
1930 }
1937 }
1931 },
1938 },
1932 "node_modules/next": {
1939 "node_modules/next": {
1933− "version": "12.2.5",
1940+ "version": "12.3.3",
1934− "resolved": "https://registry.npmjs.org/next/-/next-12.2.5.tgz",
1941+ "resolved": "https://registry.npmjs.org/next/-/next-12.3.3.tgz",
1935− "integrity": "sha512-tBdjqX5XC/oFs/6gxrZhjmiq90YWizUYU6qOWAfat7zJwrwapJ+BYgX2PmiacunXMaRpeVT4vz5MSPSLgNkrpA==",
1942+ "integrity": "sha512-Rx2Y6Wl5R8E77NOfBupp/B9OPCklqfqD0yN2+rDivhMjd6hjVFH5n0WTDI4PWwDmZsdNcYt6NV85kJ3PLR+eNQ==",
1936 "dependencies": {
1943 "dependencies": {
1937− "@next/env": "12.2.5",
1944+ "@next/env": "12.3.3",
1938− "@swc/helpers": "0.4.3",
1945+ "@swc/helpers": "0.4.11",
1939− "caniuse-lite": "^1.0.30001332",
1946+ "caniuse-lite": "^1.0.30001406",
1940 "postcss": "8.4.14",
1947 "postcss": "8.4.14",
1941− "styled-jsx": "5.0.4",
1948+ "styled-jsx": "5.0.7",
1942 "use-sync-external-store": "1.2.0"
1949 "use-sync-external-store": "1.2.0"
1943 },
1950 },
1944 "bin": {
1951 "bin": {
@@ -1948,19 +1955,19 @@
1948 "node": ">=12.22.0"
1955 "node": ">=12.22.0"
1949 },
1956 },
1950 "optionalDependencies": {
1957 "optionalDependencies": {
1951− "@next/swc-android-arm-eabi": "12.2.5",
1958+ "@next/swc-android-arm-eabi": "12.3.3",
1952− "@next/swc-android-arm64": "12.2.5",
1959+ "@next/swc-android-arm64": "12.3.3",
1953− "@next/swc-darwin-arm64": "12.2.5",
1960+ "@next/swc-darwin-arm64": "12.3.3",
1954− "@next/swc-darwin-x64": "12.2.5",
1961+ "@next/swc-darwin-x64": "12.3.3",
1955− "@next/swc-freebsd-x64": "12.2.5",
1962+ "@next/swc-freebsd-x64": "12.3.3",
1956− "@next/swc-linux-arm-gnueabihf": "12.2.5",
1963+ "@next/swc-linux-arm-gnueabihf": "12.3.3",
1957− "@next/swc-linux-arm64-gnu": "12.2.5",
1964+ "@next/swc-linux-arm64-gnu": "12.3.3",
1958− "@next/swc-linux-arm64-musl": "12.2.5",
1965+ "@next/swc-linux-arm64-musl": "12.3.3",
1959− "@next/swc-linux-x64-gnu": "12.2.5",
1966+ "@next/swc-linux-x64-gnu": "12.3.3",
1960− "@next/swc-linux-x64-musl": "12.2.5",
1967+ "@next/swc-linux-x64-musl": "12.3.3",
1961− "@next/swc-win32-arm64-msvc": "12.2.5",
1968+ "@next/swc-win32-arm64-msvc": "12.3.3",
1962− "@next/swc-win32-ia32-msvc": "12.2.5",
1969+ "@next/swc-win32-ia32-msvc": "12.3.3",
1963− "@next/swc-win32-x64-msvc": "12.2.5"
1970+ "@next/swc-win32-x64-msvc": "12.3.3"
1964 },
1971 },
1965 "peerDependencies": {
1972 "peerDependencies": {
1966 "fibers": ">= 3.1.0",
1973 "fibers": ">= 3.1.0",
@@ -2229,9 +2236,9 @@
2229 }
2236 }
2230 },
2237 },
2231 "node_modules/postcss": {
2238 "node_modules/postcss": {
2232− "version": "8.4.16",
2239+ "version": "8.4.19",
2233− "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz",
2240+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz",
2234− "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==",
2241+ "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==",
2235 "funding": [
2242 "funding": [
2236 {
2243 {
2237 "type": "opencollective",
2244 "type": "opencollective",
@@ -2314,11 +2321,11 @@
2314 }
2321 }
2315 },
2322 },
2316 "node_modules/postcss-nested": {
2323 "node_modules/postcss-nested": {
2317− "version": "5.0.6",
2324+ "version": "6.0.0",
2318− "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz",
2325+ "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz",
2319− "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==",
2326+ "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==",
2320 "dependencies": {
2327 "dependencies": {
2321− "postcss-selector-parser": "^6.0.6"
2328+ "postcss-selector-parser": "^6.0.10"
2322 },
2329 },
2323 "engines": {
2330 "engines": {
2324 "node": ">=12.0"
2331 "node": ">=12.0"
@@ -2560,9 +2567,9 @@
2560 }
2567 }
2561 },
2568 },
2562 "node_modules/regenerator-runtime": {
2569 "node_modules/regenerator-runtime": {
2563− "version": "0.13.9",
2570+ "version": "0.13.10",
2564− "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
2571+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz",
2565− "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
2572+ "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw=="
2566 },
2573 },
2567 "node_modules/rename-keys": {
2574 "node_modules/rename-keys": {
2568 "version": "1.2.0",
2575 "version": "1.2.0",
@@ -2679,9 +2686,9 @@
2679 }
2686 }
2680 },
2687 },
2681 "node_modules/semver": {
2688 "node_modules/semver": {
2682− "version": "7.3.7",
2689+ "version": "7.3.8",
2683− "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
2690+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
2684− "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
2691+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
2685 "dependencies": {
2692 "dependencies": {
2686 "lru-cache": "^6.0.0"
2693 "lru-cache": "^6.0.0"
2687 },
2694 },
@@ -2848,9 +2855,9 @@
2848 }
2855 }
2849 },
2856 },
2850 "node_modules/styled-jsx": {
2857 "node_modules/styled-jsx": {
2851− "version": "5.0.4",
2858+ "version": "5.0.7",
2852− "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.4.tgz",
2859+ "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.7.tgz",
2853− "integrity": "sha512-sDFWLbg4zR+UkNzfk5lPilyIgtpddfxXEULxhujorr5jtePTUqiPDc5BC0v1NRqTr/WaFBGQQUoYToGlF4B2KQ==",
2860+ "integrity": "sha512-b3sUzamS086YLRuvnaDigdAewz1/EFYlHpYBP5mZovKEdQQOIIYq8lApylub3HHZ6xFjV051kkGU7cudJmrXEA==",
2854 "engines": {
2861 "engines": {
2855 "node": ">= 12.0.0"
2862 "node": ">= 12.0.0"
2856 },
2863 },
@@ -2900,9 +2907,9 @@
2900 }
2907 }
2901 },
2908 },
2902 "node_modules/tailwindcss": {
2909 "node_modules/tailwindcss": {
2903− "version": "3.1.8",
2910+ "version": "3.2.4",
2904− "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.1.8.tgz",
2911+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.4.tgz",
2905− "integrity": "sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g==",
2912+ "integrity": "sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ==",
2906 "dependencies": {
2913 "dependencies": {
2907 "arg": "^5.0.2",
2914 "arg": "^5.0.2",
2908 "chokidar": "^3.5.3",
2915 "chokidar": "^3.5.3",
@@ -2910,18 +2917,19 @@
2910 "detective": "^5.2.1",
2917 "detective": "^5.2.1",
2911 "didyoumean": "^1.2.2",
2918 "didyoumean": "^1.2.2",
2912 "dlv": "^1.1.3",
2919 "dlv": "^1.1.3",
2913− "fast-glob": "^3.2.11",
2920+ "fast-glob": "^3.2.12",
2914 "glob-parent": "^6.0.2",
2921 "glob-parent": "^6.0.2",
2915 "is-glob": "^4.0.3",
2922 "is-glob": "^4.0.3",
2916 "lilconfig": "^2.0.6",
2923 "lilconfig": "^2.0.6",
2924+ "micromatch": "^4.0.5",
2917 "normalize-path": "^3.0.0",
2925 "normalize-path": "^3.0.0",
2918 "object-hash": "^3.0.0",
2926 "object-hash": "^3.0.0",
2919 "picocolors": "^1.0.0",
2927 "picocolors": "^1.0.0",
2920− "postcss": "^8.4.14",
2928+ "postcss": "^8.4.18",
2921 "postcss-import": "^14.1.0",
2929 "postcss-import": "^14.1.0",
2922 "postcss-js": "^4.0.0",
2930 "postcss-js": "^4.0.0",
2923 "postcss-load-config": "^3.1.4",
2931 "postcss-load-config": "^3.1.4",
2924− "postcss-nested": "5.0.6",
2932+ "postcss-nested": "6.0.0",
2925 "postcss-selector-parser": "^6.0.10",
2933 "postcss-selector-parser": "^6.0.10",
2926 "postcss-value-parser": "^4.2.0",
2934 "postcss-value-parser": "^4.2.0",
2927 "quick-lru": "^5.1.1",
2935 "quick-lru": "^5.1.1",
@@ -2949,9 +2957,9 @@
2949 }
2957 }
2950 },
2958 },
2951 "node_modules/tar": {
2959 "node_modules/tar": {
2952− "version": "6.1.11",
2960+ "version": "6.1.12",
2953− "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz",
2961+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.12.tgz",
2954− "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==",
2962+ "integrity": "sha512-jU4TdemS31uABHd+Lt5WEYJuzn+TJTCBLljvIAHZOz6M9Os5pJ4dD+vRFLxPa/n3T0iEFzpi+0x1UfuDZYbRMw==",
2955 "dependencies": {
2963 "dependencies": {
2956 "chownr": "^2.0.0",
2964 "chownr": "^2.0.0",
2957 "fs-minipass": "^2.0.0",
2965 "fs-minipass": "^2.0.0",
@@ -2961,7 +2969,7 @@
2961 "yallist": "^4.0.0"
2969 "yallist": "^4.0.0"
2962 },
2970 },
2963 "engines": {
2971 "engines": {
2964− "node": ">= 10"
2972+ "node": ">=10"
2965 }
2973 }
2966 },
2974 },
2967 "node_modules/to-regex-range": {
2975 "node_modules/to-regex-range": {
@@ -2986,9 +2994,9 @@
2986 "integrity": "sha512-74MoNHhwLVuzwaPDcAecFjSkOA9vwWqyOdkeB0Be8Jc/IWSS5SNZKapFllqzkTliqZptkvqX5CZnVeDvfhN8cw=="
2994 "integrity": "sha512-74MoNHhwLVuzwaPDcAecFjSkOA9vwWqyOdkeB0Be8Jc/IWSS5SNZKapFllqzkTliqZptkvqX5CZnVeDvfhN8cw=="
2987 },
2995 },
2988 "node_modules/tslib": {
2996 "node_modules/tslib": {
2989− "version": "2.4.0",
2997+ "version": "2.4.1",
2990− "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
2998+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
2991− "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
2999+ "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
2992 },
3000 },
2993 "node_modules/unset-value": {
3001 "node_modules/unset-value": {
2994 "version": "0.1.2",
3002 "version": "0.1.2",
@@ -3003,9 +3011,9 @@
3003 }
3011 }
3004 },
3012 },
3005 "node_modules/update-browserslist-db": {
3013 "node_modules/update-browserslist-db": {
3006− "version": "1.0.5",
3014+ "version": "1.0.10",
3007− "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz",
3015+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
3008− "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==",
3016+ "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
3009 "funding": [
3017 "funding": [
3010 {
3018 {
3011 "type": "opencollective",
3019 "type": "opencollective",
@@ -3144,11 +3152,11 @@
3144 },
3152 },
3145 "dependencies": {
3153 "dependencies": {
3146 "@babel/runtime": {
3154 "@babel/runtime": {
3147− "version": "7.18.9",
3155+ "version": "7.20.1",
3148− "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz",
3156+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz",
3149− "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
3157+ "integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==",
3150 "requires": {
3158 "requires": {
3151− "regenerator-runtime": "^0.13.4"
3159+ "regenerator-runtime": "^0.13.10"
3152 }
3160 }
3153 },
3161 },
3154 "@iarna/toml": {
3162 "@iarna/toml": {
@@ -3157,9 +3165,9 @@
3157 "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg=="
3165 "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg=="
3158 },
3166 },
3159 "@mapbox/node-pre-gyp": {
3167 "@mapbox/node-pre-gyp": {
3160− "version": "1.0.9",
3168+ "version": "1.0.10",
3161− "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz",
3169+ "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz",
3162− "integrity": "sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw==",
3170+ "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==",
3163 "requires": {
3171 "requires": {
3164 "detect-libc": "^2.0.0",
3172 "detect-libc": "^2.0.0",
3165 "https-proxy-agent": "^5.0.0",
3173 "https-proxy-agent": "^5.0.0",
@@ -3173,86 +3181,86 @@
3173 }
3181 }
3174 },
3182 },
3175 "@next/env": {
3183 "@next/env": {
3176− "version": "12.2.5",
3184+ "version": "12.3.3",
3177− "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.5.tgz",
3185+ "resolved": "https://registry.npmjs.org/@next/env/-/env-12.3.3.tgz",
3178− "integrity": "sha512-vLPLV3cpPGjUPT3PjgRj7e3nio9t6USkuew3JE/jMeon/9Mvp1WyR18v3iwnCuX7eUAm1HmAbJHHLAbcu/EJcw=="
3186+ "integrity": "sha512-H2pKuOasV9RgvVaWosB2rGSNeQShQpiDaF4EEjLyagIc3HwqdOw2/VAG/8Lq+adOwPv2P73O1hulTNad3k5MDw=="
3179 },
3187 },
3180 "@next/swc-android-arm-eabi": {
3188 "@next/swc-android-arm-eabi": {
3181− "version": "12.2.5",
3189+ "version": "12.3.3",
3182− "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.5.tgz",
3190+ "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.3.3.tgz",
3183− "integrity": "sha512-cPWClKxGhgn2dLWnspW+7psl3MoLQUcNqJqOHk2BhNcou9ARDtC0IjQkKe5qcn9qg7I7U83Gp1yh2aesZfZJMA==",
3191+ "integrity": "sha512-5O/ZIX6hlIRGMy1R2f/8WiCZ4Hp4WTC0FcTuz8ycQ28j/mzDnmzjVoayVVr+ZmfEKQayFrRu+vxHjFyY0JGQlQ==",
3184 "optional": true
3192 "optional": true
3185 },
3193 },
3186 "@next/swc-android-arm64": {
3194 "@next/swc-android-arm64": {
3187− "version": "12.2.5",
3195+ "version": "12.3.3",
3188− "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.5.tgz",
3196+ "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.3.3.tgz",
3189− "integrity": "sha512-vMj0efliXmC5b7p+wfcQCX0AfU8IypjkzT64GiKJD9PgiA3IILNiGJr1fw2lyUDHkjeWx/5HMlMEpLnTsQslwg==",
3197+ "integrity": "sha512-2QWreRmlxYRDtnLYn+BI8oukHwcP7W0zGIY5R2mEXRjI4ARqCLdu8RmcT9Vemw7RfeAVKA/4cv/9PY0pCcQpNA==",
3190 "optional": true
3198 "optional": true
3191 },
3199 },
3192 "@next/swc-darwin-arm64": {
3200 "@next/swc-darwin-arm64": {
3193− "version": "12.2.5",
3201+ "version": "12.3.3",
3194− "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.5.tgz",
3202+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.3.3.tgz",
3195− "integrity": "sha512-VOPWbO5EFr6snla/WcxUKtvzGVShfs302TEMOtzYyWni6f9zuOetijJvVh9CCTzInnXAZMtHyNhefijA4HMYLg==",
3203+ "integrity": "sha512-GtZdDLerM+VToCMFp+W+WhnT6sxHePQH4xZZiYD/Y8KFiwHbDRcJr2FPG0bAJnGNiSvv/QQnBq74wjZ9+7vhcQ==",
3196 "optional": true
3204 "optional": true
3197 },
3205 },
3198 "@next/swc-darwin-x64": {
3206 "@next/swc-darwin-x64": {
3199− "version": "12.2.5",
3207+ "version": "12.3.3",
3200− "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.5.tgz",
3208+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.3.3.tgz",
3201− "integrity": "sha512-5o8bTCgAmtYOgauO/Xd27vW52G2/m3i5PX7MUYePquxXAnX73AAtqA3WgPXBRitEB60plSKZgOTkcpqrsh546A==",
3209+ "integrity": "sha512-gRYvTKrRYynjFQUDJ+upHMcBiNz0ii0m7zGgmUTlTSmrBWqVSzx79EHYT7Nn4GWHM+a/W+2VXfu+lqHcJeQ9gQ==",
3202 "optional": true
3210 "optional": true
3203 },
3211 },
3204 "@next/swc-freebsd-x64": {
3212 "@next/swc-freebsd-x64": {
3205− "version": "12.2.5",
3213+ "version": "12.3.3",
3206− "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.5.tgz",
3214+ "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.3.3.tgz",
3207− "integrity": "sha512-yYUbyup1JnznMtEBRkK4LT56N0lfK5qNTzr6/DEyDw5TbFVwnuy2hhLBzwCBkScFVjpFdfiC6SQAX3FrAZzuuw==",
3215+ "integrity": "sha512-r+GLATzCjjQI82bgrIPXWEYBwZonSO64OThk5wU6HduZlDYTEDxZsFNoNoesCDWCgRrgg+OXj7WLNy1WlvfX7w==",
3208 "optional": true
3216 "optional": true
3209 },
3217 },
3210 "@next/swc-linux-arm-gnueabihf": {
3218 "@next/swc-linux-arm-gnueabihf": {
3211− "version": "12.2.5",
3219+ "version": "12.3.3",
3212− "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.5.tgz",
3220+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.3.3.tgz",
3213− "integrity": "sha512-2ZE2/G921Acks7UopJZVMgKLdm4vN4U0yuzvAMJ6KBavPzqESA2yHJlm85TV/K9gIjKhSk5BVtauIUntFRP8cg==",
3221+ "integrity": "sha512-juvRj1QX9jmQScL4nV0rROtYUFgWP76zfdn1fdfZ2BhvwUugIAq8x+jLVGlnXKUhDrP9+RrAufqXjjVkK+uBxA==",
3214 "optional": true
3222 "optional": true
3215 },
3223 },
3216 "@next/swc-linux-arm64-gnu": {
3224 "@next/swc-linux-arm64-gnu": {
3217− "version": "12.2.5",
3225+ "version": "12.3.3",
3218− "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.5.tgz",
3226+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.3.3.tgz",
3219− "integrity": "sha512-/I6+PWVlz2wkTdWqhlSYYJ1pWWgUVva6SgX353oqTh8njNQp1SdFQuWDqk8LnM6ulheVfSsgkDzxrDaAQZnzjQ==",
3227+ "integrity": "sha512-hzinybStPB+SzS68hR5rzOngOH7Yd/jFuWGeg9qS5WifYXHpqwGH2BQeKpjVV0iJuyO9r309JKrRWMrbfhnuBA==",
3220 "optional": true
3228 "optional": true
3221 },
3229 },
3222 "@next/swc-linux-arm64-musl": {
3230 "@next/swc-linux-arm64-musl": {
3223− "version": "12.2.5",
3231+ "version": "12.3.3",
3224− "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.5.tgz",
3232+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.3.3.tgz",
3225− "integrity": "sha512-LPQRelfX6asXyVr59p5sTpx5l+0yh2Vjp/R8Wi4X9pnqcayqT4CUJLiHqCvZuLin3IsFdisJL0rKHMoaZLRfmg==",
3233+ "integrity": "sha512-oyfQYljCwf+9zUu1YkTZbRbyxmcHzvJPMGOxC3kJOReh3kCUoGcmvAxUPMtFD6FSYjJ+eaog4+2IFHtYuAw/bQ==",
3226 "optional": true
3234 "optional": true
3227 },
3235 },
3228 "@next/swc-linux-x64-gnu": {
3236 "@next/swc-linux-x64-gnu": {
3229− "version": "12.2.5",
3237+ "version": "12.3.3",
3230− "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.5.tgz",
3238+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.3.3.tgz",
3231− "integrity": "sha512-0szyAo8jMCClkjNK0hknjhmAngUppoRekW6OAezbEYwHXN/VNtsXbfzgYOqjKWxEx3OoAzrT3jLwAF0HdX2MEw==",
3239+ "integrity": "sha512-epv4FMazj/XG70KTTnrZ0H1VtL6DeWOvyHLHYy7f5PdgDpBXpDTFjVqhP8NFNH8HmaDDdeL1NvQD07AXhyvUKA==",
3232 "optional": true
3240 "optional": true
3233 },
3241 },
3234 "@next/swc-linux-x64-musl": {
3242 "@next/swc-linux-x64-musl": {
3235− "version": "12.2.5",
3243+ "version": "12.3.3",
3236− "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.5.tgz",
3244+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.3.3.tgz",
3237− "integrity": "sha512-zg/Y6oBar1yVnW6Il1I/08/2ukWtOG6s3acdJdEyIdsCzyQi4RLxbbhkD/EGQyhqBvd3QrC6ZXQEXighQUAZ0g==",
3245+ "integrity": "sha512-bG5QODFy59XnSFTiPyIAt+rbPdphtvQMibtOVvyjwIwsBUw7swJ6k+6PSPVYEYpi6SHzi3qYBsro39ayGJKQJg==",
3238 "optional": true
3246 "optional": true
3239 },
3247 },
3240 "@next/swc-win32-arm64-msvc": {
3248 "@next/swc-win32-arm64-msvc": {
3241− "version": "12.2.5",
3249+ "version": "12.3.3",
3242− "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.5.tgz",
3250+ "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.3.3.tgz",
3243− "integrity": "sha512-3/90DRNSqeeSRMMEhj4gHHQlLhhKg5SCCoYfE3kBjGpE63EfnblYUqsszGGZ9ekpKL/R4/SGB40iCQr8tR5Jiw==",
3251+ "integrity": "sha512-FbnT3reJ3MbTJ5W0hvlCCGGVDSpburzT5XGC9ljBJ4kr+85iNTLjv7+vrPeDdwHEqtGmdZgnabkLVCI4yFyCag==",
3244 "optional": true
3252 "optional": true
3245 },
3253 },
3246 "@next/swc-win32-ia32-msvc": {
3254 "@next/swc-win32-ia32-msvc": {
3247− "version": "12.2.5",
3255+ "version": "12.3.3",
3248− "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.5.tgz",
3256+ "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.3.3.tgz",
3249− "integrity": "sha512-hGLc0ZRAwnaPL4ulwpp4D2RxmkHQLuI8CFOEEHdzZpS63/hMVzv81g8jzYA0UXbb9pus/iTc3VRbVbAM03SRrw==",
3257+ "integrity": "sha512-M/fKZC2tMGWA6eTsIniNEBpx2prdR8lIxvSO3gv5P6ymZOGVWCvEMksnTkPAjHnU6d8r8eCiuGKm3UNo7zCTpQ==",
3250 "optional": true
3258 "optional": true
3251 },
3259 },
3252 "@next/swc-win32-x64-msvc": {
3260 "@next/swc-win32-x64-msvc": {
3253− "version": "12.2.5",
3261+ "version": "12.3.3",
3254− "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.5.tgz",
3262+ "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.3.3.tgz",
3255− "integrity": "sha512-7h5/ahY7NeaO2xygqVrSG/Y8Vs4cdjxIjowTZ5W6CKoTKn7tmnuxlUc2h74x06FKmbhAd9agOjr/AOKyxYYm9Q==",
3263+ "integrity": "sha512-Ku9mfGwmNtk44o4B/jEWUxBAT4tJ3S7QbBMLJdL1GmtRZ05LGL36OqWjLvBPr8dFiHOQQbYoAmYfQw7zeGypYA==",
3256 "optional": true
3264 "optional": true
3257 },
3265 },
3258 "@nodelib/fs.scandir": {
3266 "@nodelib/fs.scandir": {
@@ -3285,17 +3293,17 @@
3285 "requires": {}
3293 "requires": {}
3286 },
3294 },
3287 "@swc/helpers": {
3295 "@swc/helpers": {
3288− "version": "0.4.3",
3296+ "version": "0.4.11",
3289− "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.3.tgz",
3297+ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.11.tgz",
3290− "integrity": "sha512-6JrF+fdUK2zbGpJIlN7G3v966PQjyx/dPt1T9km2wj+EUBqgrxCk3uX4Kct16MIm9gGxfKRcfax2hVf5jvlTzA==",
3298+ "integrity": "sha512-rEUrBSGIoSFuYxwBYtlUFMlE2CwGhmW+w9355/5oduSw8e5h2+Tj4UrAGNNgP9915++wj5vkQo0UuOBqOAq4nw==",
3291 "requires": {
3299 "requires": {
3292 "tslib": "^2.4.0"
3300 "tslib": "^2.4.0"
3293 }
3301 }
3294 },
3302 },
3295 "@tailwindcss/aspect-ratio": {
3303 "@tailwindcss/aspect-ratio": {
3296− "version": "0.4.0",
3304+ "version": "0.4.2",
3297− "resolved": "https://registry.npmjs.org/@tailwindcss/aspect-ratio/-/aspect-ratio-0.4.0.tgz",
3305+ "resolved": "https://registry.npmjs.org/@tailwindcss/aspect-ratio/-/aspect-ratio-0.4.2.tgz",
3298− "integrity": "sha512-WJu0I4PpqNPuutpaA9zDUq2JXR+lorZ7PbLcKNLmb6GL9/HLfC7w3CRsMhJF4BbYd/lkY6CfXOvkYpuGnZfkpQ==",
3306+ "integrity": "sha512-8QPrypskfBa7QIMuKHg2TA7BqES6vhBrDLOv8Unb6FcFyd3TjKbc6lcmb9UPQHxfl24sXoJ41ux/H7qQQvfaSQ==",
3299 "requires": {}
3307 "requires": {}
3300 },
3308 },
3301 "@tlon/sigil-js": {
3309 "@tlon/sigil-js": {
@@ -3315,22 +3323,23 @@
3315 "dev": true
3323 "dev": true
3316 },
3324 },
3317 "@urbit/foundation-design-system": {
3325 "@urbit/foundation-design-system": {
3318− "version": "0.4.1",
3326+ "version": "0.6.4",
3319− "resolved": "https://registry.npmjs.org/@urbit/foundation-design-system/-/foundation-design-system-0.4.1.tgz",
3327+ "resolved": "https://registry.npmjs.org/@urbit/foundation-design-system/-/foundation-design-system-0.6.4.tgz",
3320− "integrity": "sha512-EFGtqABqIlJYQhaCJ7p/GlS0Wq2MrtF1H0vXC5p1l+na+aV5CGT0oXIR5dDt4hUgCD1gh9rX0QI9qnu2YKpAeA==",
3328+ "integrity": "sha512-gg2Vx9BHwoV7Z3JheUB8D+HEMMdJGtOwD7YZSGZeIe2Scy3HL9MO5sT774gfhA6J6aI3pRgyxv2R209ShgUChg==",
3321 "requires": {
3329 "requires": {
3322 "@iarna/toml": "^2.2.5",
3330 "@iarna/toml": "^2.2.5",
3323 "core-js": "^3.23.1",
3331 "core-js": "^3.23.1",
3324 "gray-matter": "^4.0.3",
3332 "gray-matter": "^4.0.3",
3325 "html-react-parser": "^1.4.14",
3333 "html-react-parser": "^1.4.14",
3326 "luxon": "^3.0.1",
3334 "luxon": "^3.0.1",
3327− "prism-react-renderer": "^1.3.3"
3335+ "prism-react-renderer": "^1.3.3",
3336+ "react-swipeable": "^6.2.1"
3328 },
3337 },
3329 "dependencies": {
3338 "dependencies": {
3330 "luxon": {
3339 "luxon": {
3331− "version": "3.0.1",
3340+ "version": "3.1.0",
3332− "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.0.1.tgz",
3341+ "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.1.0.tgz",
3333− "integrity": "sha512-hF3kv0e5gwHQZKz4wtm4c+inDtyc7elkanAsBq+fundaCdUBNJB1dHEGUZIM6SfSBUlbVFduPwEtNjFK8wLtcw=="
3342+ "integrity": "sha512-7w6hmKC0/aoWnEsmPCu5Br54BmbmUp5GfcqBxQngRcXJ+q5fdfjEzn7dxmJh2YdDhgW8PccYtlWKSv4tQkrTQg=="
3334 }
3343 }
3335 }
3344 }
3336 },
3345 },
@@ -3441,12 +3450,12 @@
3441 "dev": true
3450 "dev": true
3442 },
3451 },
3443 "autoprefixer": {
3452 "autoprefixer": {
3444− "version": "10.4.8",
3453+ "version": "10.4.13",
3445− "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.8.tgz",
3454+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz",
3446− "integrity": "sha512-75Jr6Q/XpTqEf6D2ltS5uMewJIx5irCU1oBYJrWjFenq/m12WRRrz6g15L1EIoYvPLXTbEry7rDOwrcYNj77xw==",
3455+ "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==",
3447 "requires": {
3456 "requires": {
3448− "browserslist": "^4.21.3",
3457+ "browserslist": "^4.21.4",
3449− "caniuse-lite": "^1.0.30001373",
3458+ "caniuse-lite": "^1.0.30001426",
3450 "fraction.js": "^4.2.0",
3459 "fraction.js": "^4.2.0",
3451 "normalize-range": "^0.1.2",
3460 "normalize-range": "^0.1.2",
3452 "picocolors": "^1.0.0",
3461 "picocolors": "^1.0.0",
@@ -3499,14 +3508,14 @@
3499 }
3508 }
3500 },
3509 },
3501 "browserslist": {
3510 "browserslist": {
3502− "version": "4.21.3",
3511+ "version": "4.21.4",
3503− "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz",
3512+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
3504− "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==",
3513+ "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
3505 "requires": {
3514 "requires": {
3506− "caniuse-lite": "^1.0.30001370",
3515+ "caniuse-lite": "^1.0.30001400",
3507− "electron-to-chromium": "^1.4.202",
3516+ "electron-to-chromium": "^1.4.251",
3508 "node-releases": "^2.0.6",
3517 "node-releases": "^2.0.6",
3509− "update-browserslist-db": "^1.0.5"
3518+ "update-browserslist-db": "^1.0.9"
3510 }
3519 }
3511 },
3520 },
3512 "buffer": {
3521 "buffer": {
@@ -3524,17 +3533,17 @@
3524 "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA=="
3533 "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA=="
3525 },
3534 },
3526 "caniuse-lite": {
3535 "caniuse-lite": {
3527− "version": "1.0.30001382",
3536+ "version": "1.0.30001431",
3528− "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001382.tgz",
3537+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz",
3529− "integrity": "sha512-2rtJwDmSZ716Pxm1wCtbPvHtbDWAreTPxXbkc5RkKglow3Ig/4GNGazDI9/BVnXbG/wnv6r3B5FEbkfg9OcTGg=="
3538+ "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ=="
3530 },
3539 },
3531 "canvas": {
3540 "canvas": {
3532− "version": "2.9.3",
3541+ "version": "2.10.2",
3533− "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.9.3.tgz",
3542+ "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.10.2.tgz",
3534− "integrity": "sha512-WOUM7ghii5TV2rbhaZkh1youv/vW1/Canev6Yx6BG2W+1S07w8jKZqKkPnbiPpQEDsnJdN8ouDd7OvQEGXDcUw==",
3543+ "integrity": "sha512-FSmlsip0nZ0U4Zcfht0qBJqDhlfGuevTZKE8h+dBOYrJjGvY3iqMGSzzbvkaFhvMXiVxfcMaPHS/kge++T5SKg==",
3535 "requires": {
3544 "requires": {
3536 "@mapbox/node-pre-gyp": "^1.0.0",
3545 "@mapbox/node-pre-gyp": "^1.0.0",
3537− "nan": "^2.15.0",
3546+ "nan": "^2.17.0",
3538 "simple-get": "^3.0.3"
3547 "simple-get": "^3.0.3"
3539 }
3548 }
3540 },
3549 },
@@ -3579,9 +3588,9 @@
3579 "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="
3588 "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="
3580 },
3589 },
3581 "classnames": {
3590 "classnames": {
3582− "version": "2.3.1",
3591+ "version": "2.3.2",
3583− "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz",
3592+ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz",
3584− "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA=="
3593+ "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw=="
3585 },
3594 },
3586 "color": {
3595 "color": {
3587 "version": "4.2.3",
3596 "version": "4.2.3",
@@ -3635,9 +3644,9 @@
3635 "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="
3644 "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="
3636 },
3645 },
3637 "core-js": {
3646 "core-js": {
3638− "version": "3.24.1",
3647+ "version": "3.26.1",
3639− "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.24.1.tgz",
3648+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.26.1.tgz",
3640− "integrity": "sha512-0QTBSYSUZ6Gq21utGzkfITDylE8jWC9Ne1D2MrhvlsZBI1x39OdDIVbzSqtgMndIy6BlHxBXpMGqzZmnztg2rg=="
3649+ "integrity": "sha512-21491RRQVzUn0GGM9Z1Jrpr6PNPxPi+Za8OM9q4tksTSnlbXXGKK1nXNg/QvwFYettXvSX6zWKCtHHfjN4puyA=="
3641 },
3650 },
3642 "cross-spawn": {
3651 "cross-spawn": {
3643 "version": "7.0.3",
3652 "version": "7.0.3",
@@ -3696,9 +3705,9 @@
3696 "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg=="
3705 "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg=="
3697 },
3706 },
3698 "defined": {
3707 "defined": {
3699− "version": "1.0.0",
3708+ "version": "1.0.1",
3700− "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
3709+ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz",
3701− "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ=="
3710+ "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q=="
3702 },
3711 },
3703 "delegates": {
3712 "delegates": {
3704 "version": "1.0.0",
3713 "version": "1.0.0",
@@ -3771,9 +3780,9 @@
3771 }
3780 }
3772 },
3781 },
3773 "downshift": {
3782 "downshift": {
3774− "version": "6.1.9",
3783+ "version": "6.1.12",
3775− "resolved": "https://registry.npmjs.org/downshift/-/downshift-6.1.9.tgz",
3784+ "resolved": "https://registry.npmjs.org/downshift/-/downshift-6.1.12.tgz",
3776− "integrity": "sha512-mzvk61WOX4MEsYHMKCXEVwuz/zM84x/WrCbaCQw71hyNN0fmWXvV673uOQy2idgIA+yqDsjtkV5KPfAFWuQylg==",
3785+ "integrity": "sha512-7XB/iaSJVS4T8wGFT3WRXmSF1UlBHAA40DshZtkrIscIN+VC+Lh363skLxFTvJwtNgHxAMDGEHT4xsyQFWL+UA==",
3777 "requires": {
3786 "requires": {
3778 "@babel/runtime": "^7.14.8",
3787 "@babel/runtime": "^7.14.8",
3779 "compute-scroll-into-view": "^1.0.17",
3788 "compute-scroll-into-view": "^1.0.17",
@@ -3783,9 +3792,9 @@
3783 }
3792 }
3784 },
3793 },
3785 "electron-to-chromium": {
3794 "electron-to-chromium": {
3786− "version": "1.4.228",
3795+ "version": "1.4.284",
3787− "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.228.tgz",
3796+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
3788− "integrity": "sha512-XfDHCvou7CsDMlFwb0WZ1tWmW48e7Sn7VBRyPfZsZZila9esRsJl1trO+OqDNV97GggFSt0ISbWslKXfQkG//g=="
3797+ "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA=="
3789 },
3798 },
3790 "emoji-regex": {
3799 "emoji-regex": {
3791 "version": "8.0.0",
3800 "version": "8.0.0",
@@ -3847,9 +3856,9 @@
3847 }
3856 }
3848 },
3857 },
3849 "fast-glob": {
3858 "fast-glob": {
3850− "version": "3.2.11",
3859+ "version": "3.2.12",
3851− "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz",
3860+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
3852− "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==",
3861+ "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
3853 "requires": {
3862 "requires": {
3854 "@nodelib/fs.stat": "^2.0.2",
3863 "@nodelib/fs.stat": "^2.0.2",
3855 "@nodelib/fs.walk": "^1.2.3",
3864 "@nodelib/fs.walk": "^1.2.3",
@@ -3903,9 +3912,9 @@
3903 }
3912 }
3904 },
3913 },
3905 "follow-redirects": {
3914 "follow-redirects": {
3906− "version": "1.15.1",
3915+ "version": "1.15.2",
3907− "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz",
3916+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
3908− "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA=="
3917+ "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA=="
3909 },
3918 },
3910 "fraction.js": {
3919 "fraction.js": {
3911 "version": "4.2.0",
3920 "version": "4.2.0",
@@ -4145,9 +4154,9 @@
4145 "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
4154 "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
4146 },
4155 },
4147 "is-core-module": {
4156 "is-core-module": {
4148− "version": "2.10.0",
4157+ "version": "2.11.0",
4149− "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz",
4158+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
4150− "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==",
4159+ "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
4151 "requires": {
4160 "requires": {
4152 "has": "^1.0.3"
4161 "has": "^1.0.3"
4153 }
4162 }
@@ -4352,9 +4361,9 @@
4352 }
4361 }
4353 },
4362 },
4354 "minimist": {
4363 "minimist": {
4355− "version": "1.2.6",
4364+ "version": "1.2.7",
4356− "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
4365+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
4357− "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
4366+ "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g=="
4358 },
4367 },
4359 "minipass": {
4368 "minipass": {
4360 "version": "3.3.4",
4369 "version": "3.3.4",
@@ -4403,9 +4412,9 @@
4403 }
4412 }
4404 },
4413 },
4405 "nan": {
4414 "nan": {
4406− "version": "2.16.0",
4415+ "version": "2.17.0",
4407− "resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz",
4416+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz",
4408− "integrity": "sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA=="
4417+ "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ=="
4409 },
4418 },
4410 "nanoid": {
4419 "nanoid": {
4411 "version": "3.3.4",
4420 "version": "3.3.4",
@@ -4413,28 +4422,28 @@
4413 "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
4422 "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
4414 },
4423 },
4415 "next": {
4424 "next": {
4416− "version": "12.2.5",
4425+ "version": "12.3.3",
4417− "resolved": "https://registry.npmjs.org/next/-/next-12.2.5.tgz",
4426+ "resolved": "https://registry.npmjs.org/next/-/next-12.3.3.tgz",
4418− "integrity": "sha512-tBdjqX5XC/oFs/6gxrZhjmiq90YWizUYU6qOWAfat7zJwrwapJ+BYgX2PmiacunXMaRpeVT4vz5MSPSLgNkrpA==",
4427+ "integrity": "sha512-Rx2Y6Wl5R8E77NOfBupp/B9OPCklqfqD0yN2+rDivhMjd6hjVFH5n0WTDI4PWwDmZsdNcYt6NV85kJ3PLR+eNQ==",
4419 "requires": {
4428 "requires": {
4420− "@next/env": "12.2.5",
4429+ "@next/env": "12.3.3",
4421− "@next/swc-android-arm-eabi": "12.2.5",
4430+ "@next/swc-android-arm-eabi": "12.3.3",
4422− "@next/swc-android-arm64": "12.2.5",
4431+ "@next/swc-android-arm64": "12.3.3",
4423− "@next/swc-darwin-arm64": "12.2.5",
4432+ "@next/swc-darwin-arm64": "12.3.3",
4424− "@next/swc-darwin-x64": "12.2.5",
4433+ "@next/swc-darwin-x64": "12.3.3",
4425− "@next/swc-freebsd-x64": "12.2.5",
4434+ "@next/swc-freebsd-x64": "12.3.3",
4426− "@next/swc-linux-arm-gnueabihf": "12.2.5",
4435+ "@next/swc-linux-arm-gnueabihf": "12.3.3",
4427− "@next/swc-linux-arm64-gnu": "12.2.5",
4436+ "@next/swc-linux-arm64-gnu": "12.3.3",
4428− "@next/swc-linux-arm64-musl": "12.2.5",
4437+ "@next/swc-linux-arm64-musl": "12.3.3",
4429− "@next/swc-linux-x64-gnu": "12.2.5",
4438+ "@next/swc-linux-x64-gnu": "12.3.3",
4430− "@next/swc-linux-x64-musl": "12.2.5",
4439+ "@next/swc-linux-x64-musl": "12.3.3",
4431− "@next/swc-win32-arm64-msvc": "12.2.5",
4440+ "@next/swc-win32-arm64-msvc": "12.3.3",
4432− "@next/swc-win32-ia32-msvc": "12.2.5",
4441+ "@next/swc-win32-ia32-msvc": "12.3.3",
4433− "@next/swc-win32-x64-msvc": "12.2.5",
4442+ "@next/swc-win32-x64-msvc": "12.3.3",
4434− "@swc/helpers": "0.4.3",
4443+ "@swc/helpers": "0.4.11",
4435− "caniuse-lite": "^1.0.30001332",
4444+ "caniuse-lite": "^1.0.30001406",
4436 "postcss": "8.4.14",
4445 "postcss": "8.4.14",
4437− "styled-jsx": "5.0.4",
4446+ "styled-jsx": "5.0.7",
4438 "use-sync-external-store": "1.2.0"
4447 "use-sync-external-store": "1.2.0"
4439 },
4448 },
4440 "dependencies": {
4449 "dependencies": {
@@ -4604,9 +4613,9 @@
4604 "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="
4613 "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="
4605 },
4614 },
4606 "postcss": {
4615 "postcss": {
4607− "version": "8.4.16",
4616+ "version": "8.4.19",
4608− "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz",
4617+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz",
4609− "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==",
4618+ "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==",
4610 "requires": {
4619 "requires": {
4611 "nanoid": "^3.3.4",
4620 "nanoid": "^3.3.4",
4612 "picocolors": "^1.0.0",
4621 "picocolors": "^1.0.0",
@@ -4641,11 +4650,11 @@
4641 }
4650 }
4642 },
4651 },
4643 "postcss-nested": {
4652 "postcss-nested": {
4644− "version": "5.0.6",
4653+ "version": "6.0.0",
4645− "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz",
4654+ "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz",
4646− "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==",
4655+ "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==",
4647 "requires": {
4656 "requires": {
4648− "postcss-selector-parser": "^6.0.6"
4657+ "postcss-selector-parser": "^6.0.10"
4649 }
4658 }
4650 },
4659 },
4651 "postcss-selector-parser": {
4660 "postcss-selector-parser": {
@@ -4811,9 +4820,9 @@
4811 }
4820 }
4812 },
4821 },
4813 "regenerator-runtime": {
4822 "regenerator-runtime": {
4814− "version": "0.13.9",
4823+ "version": "0.13.10",
4815− "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
4824+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz",
4816− "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
4825+ "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw=="
4817 },
4826 },
4818 "rename-keys": {
4827 "rename-keys": {
4819 "version": "1.2.0",
4828 "version": "1.2.0",
@@ -4880,9 +4889,9 @@
4880 }
4889 }
4881 },
4890 },
4882 "semver": {
4891 "semver": {
4883− "version": "7.3.7",
4892+ "version": "7.3.8",
4884− "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
4893+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
4885− "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
4894+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
4886 "requires": {
4895 "requires": {
4887 "lru-cache": "^6.0.0"
4896 "lru-cache": "^6.0.0"
4888 }
4897 }
@@ -5008,9 +5017,9 @@
5008 }
5017 }
5009 },
5018 },
5010 "styled-jsx": {
5019 "styled-jsx": {
5011− "version": "5.0.4",
5020+ "version": "5.0.7",
5012− "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.4.tgz",
5021+ "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.7.tgz",
5013− "integrity": "sha512-sDFWLbg4zR+UkNzfk5lPilyIgtpddfxXEULxhujorr5jtePTUqiPDc5BC0v1NRqTr/WaFBGQQUoYToGlF4B2KQ==",
5022+ "integrity": "sha512-b3sUzamS086YLRuvnaDigdAewz1/EFYlHpYBP5mZovKEdQQOIIYq8lApylub3HHZ6xFjV051kkGU7cudJmrXEA==",
5014 "requires": {}
5023 "requires": {}
5015 },
5024 },
5016 "supports-color": {
5025 "supports-color": {
@@ -5038,9 +5047,9 @@
5038 }
5047 }
5039 },
5048 },
5040 "tailwindcss": {
5049 "tailwindcss": {
5041− "version": "3.1.8",
5050+ "version": "3.2.4",
5042− "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.1.8.tgz",
5051+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.4.tgz",
5043− "integrity": "sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g==",
5052+ "integrity": "sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ==",
5044 "requires": {
5053 "requires": {
5045 "arg": "^5.0.2",
5054 "arg": "^5.0.2",
5046 "chokidar": "^3.5.3",
5055 "chokidar": "^3.5.3",
@@ -5048,18 +5057,19 @@
5048 "detective": "^5.2.1",
5057 "detective": "^5.2.1",
5049 "didyoumean": "^1.2.2",
5058 "didyoumean": "^1.2.2",
5050 "dlv": "^1.1.3",
5059 "dlv": "^1.1.3",
5051− "fast-glob": "^3.2.11",
5060+ "fast-glob": "^3.2.12",
5052 "glob-parent": "^6.0.2",
5061 "glob-parent": "^6.0.2",
5053 "is-glob": "^4.0.3",
5062 "is-glob": "^4.0.3",
5054 "lilconfig": "^2.0.6",
5063 "lilconfig": "^2.0.6",
5064+ "micromatch": "^4.0.5",
5055 "normalize-path": "^3.0.0",
5065 "normalize-path": "^3.0.0",
5056 "object-hash": "^3.0.0",
5066 "object-hash": "^3.0.0",
5057 "picocolors": "^1.0.0",
5067 "picocolors": "^1.0.0",
5058− "postcss": "^8.4.14",
5068+ "postcss": "^8.4.18",
5059 "postcss-import": "^14.1.0",
5069 "postcss-import": "^14.1.0",
5060 "postcss-js": "^4.0.0",
5070 "postcss-js": "^4.0.0",
5061 "postcss-load-config": "^3.1.4",
5071 "postcss-load-config": "^3.1.4",
5062− "postcss-nested": "5.0.6",
5072+ "postcss-nested": "6.0.0",
5063 "postcss-selector-parser": "^6.0.10",
5073 "postcss-selector-parser": "^6.0.10",
5064 "postcss-value-parser": "^4.2.0",
5074 "postcss-value-parser": "^4.2.0",
5065 "quick-lru": "^5.1.1",
5075 "quick-lru": "^5.1.1",
@@ -5077,9 +5087,9 @@
5077 }
5087 }
5078 },
5088 },
5079 "tar": {
5089 "tar": {
5080− "version": "6.1.11",
5090+ "version": "6.1.12",
5081− "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz",
5091+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.12.tgz",
5082− "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==",
5092+ "integrity": "sha512-jU4TdemS31uABHd+Lt5WEYJuzn+TJTCBLljvIAHZOz6M9Os5pJ4dD+vRFLxPa/n3T0iEFzpi+0x1UfuDZYbRMw==",
5083 "requires": {
5093 "requires": {
5084 "chownr": "^2.0.0",
5094 "chownr": "^2.0.0",
5085 "fs-minipass": "^2.0.0",
5095 "fs-minipass": "^2.0.0",
@@ -5108,9 +5118,9 @@
5108 "integrity": "sha512-74MoNHhwLVuzwaPDcAecFjSkOA9vwWqyOdkeB0Be8Jc/IWSS5SNZKapFllqzkTliqZptkvqX5CZnVeDvfhN8cw=="
5118 "integrity": "sha512-74MoNHhwLVuzwaPDcAecFjSkOA9vwWqyOdkeB0Be8Jc/IWSS5SNZKapFllqzkTliqZptkvqX5CZnVeDvfhN8cw=="
5109 },
5119 },
5110 "tslib": {
5120 "tslib": {
5111− "version": "2.4.0",
5121+ "version": "2.4.1",
5112− "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
5122+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
5113− "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
5123+ "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
5114 },
5124 },
5115 "unset-value": {
5125 "unset-value": {
5116 "version": "0.1.2",
5126 "version": "0.1.2",
@@ -5122,9 +5132,9 @@
5122 }
5132 }
5123 },
5133 },
5124 "update-browserslist-db": {
5134 "update-browserslist-db": {
5125− "version": "1.0.5",
5135+ "version": "1.0.10",
5126− "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz",
5136+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
5127− "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==",
5137+ "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
5128 "requires": {
5138 "requires": {
5129 "escalade": "^3.1.1",
5139 "escalade": "^3.1.1",
5130 "picocolors": "^1.0.0"
5140 "picocolors": "^1.0.0"
package.json+1−1
@@ -21,7 +21,7 @@
21 "@socialgouv/matomo-next": "^1.3.0",
21 "@socialgouv/matomo-next": "^1.3.0",
22 "@tailwindcss/aspect-ratio": "^0.4.0",
22 "@tailwindcss/aspect-ratio": "^0.4.0",
23 "@tlon/sigil-js": "^1.4.5",
23 "@tlon/sigil-js": "^1.4.5",
24− "@urbit/foundation-design-system": "^0.4.1",
24+ "@urbit/foundation-design-system": "0.6.4",
25 "@urbit/markdoc": "^0.1.4",
25 "@urbit/markdoc": "^0.1.4",
26 "axios": "^0.26.1",
26 "axios": "^0.26.1",
27 "buffer": "^6.0.3",
27 "buffer": "^6.0.3",
pages/[slug].js+1−1
@@ -31,7 +31,7 @@ export async function getStaticProps({ params }) {
31}
31}
32
32
33export async function getStaticPaths() {
33export async function getStaticPaths() {
34− const posts = getPostSlugs("/");
34+ const posts = getPostSlugs("/").filter((e) => e !== 'bitcoin.md');
35
35
36 const slugs = posts.map((e) => e.slice(0, -3));
36 const slugs = posts.map((e) => e.slice(0, -3));
37
37
pages/applications/[[...application]].js+1−1
@@ -111,7 +111,7 @@ const ApplicationPage = ({ data, markdown, organisation, matchedGrants, search,
111 markdown={markdown}
111 markdown={markdown}
112 />
112 />
113 <hr className="text-wall-200" />
113 <hr className="text-wall-200" />
114− {matchedGrants && <div className="basis-full flex flex-col space-y-2">
114+ {matchedGrants.length > 0 && <div className="basis-full flex flex-col space-y-2">
115 <p className="font-semibold text-wall-400">Related Grants</p>
115 <p className="font-semibold text-wall-400">Related Grants</p>
116 {matchedGrants.map((grant) => {
116 {matchedGrants.map((grant) => {
117 return <GrantPreview grant={grant} />
117 return <GrantPreview grant={grant} />
pages/bitcoin.jsnew file+98
@@ -0,0 +1,98 @@
1+import { Container, SingleColumn, Section, IntraNav, TableOfContents, getAllPosts, getPage, TwoUp, Markdown } from "@urbit/foundation-design-system";
2+import Head from "next/head";
3+import Link from "next/link";
4+import Meta from "../components/Meta";
5+import Header from "../components/Header";
6+import Footer from "../components/Footer";
7+import PostPreview from "../components/PostPreview"
8+import { join } from 'path';
9+import EventPreview from "../components/EventPreview";
10+import { getAllEvents } from "../lib/lib";
11+
12+import { eventKeys } from "../lib/constants";
13+
14+
15+export default function Bitcoin({ search, posts, data, markdown, events }) {
16+ const post = {
17+ title: "Bitcoin on Urbit: The Sovereign Stack",
18+ description: "Sound digital money and sound computing need each other to achieve a free and prosperous future, and Urbit and Bitcoin's common paradigm of long-termism and self-sovereignty will get us there."
19+ }
20+
21+ return (
22+ <Container>
23+ <Head>
24+ <title>Bitcoin on Urbit: The Sovereign Stack • urbit.org</title>
25+ {Meta(post)}
26+ </Head>
27+ <IntraNav ourSite="https://urbit.org" search={search} />
28+ <SingleColumn>
29+ <Header search={search} />
30+ <Section>
31+ <h1>{post.title}</h1>
32+ </Section>
33+ <Section className="flex space-x-12">
34+ <div className="min-w-0">
35+ <div>
36+ <p>Sound digital money and sound computing need each other to achieve a free and prosperous future, and Urbit and Bitcoin's common paradigm of long-termism and self-sovereignty will get us there. Check out the resources on this page to learn about current Lightning Network development on Urbit and join the Urbitcoiner community.</p>
37+ </div>
38+ <div className="mt-32">
39+ <h2 className="mb-8" id="blog">Blog Posts</h2>
40+ <TwoUp>
41+ <PostPreview post={posts[0]} key={posts[0].slug} />
42+ {posts[1] ? <PostPreview post={posts[1]} key={posts[1].slug} /> : <div />}
43+ </TwoUp>
44+ <Link href="/blog?tag=bitcoin">
45+ <a className="bg-green-400 text-white button-lg w-fit">
46+ View All
47+ </a>
48+ </Link>
49+ </div>
50+ <div className="mt-32">
51+ <h2 className="mb-8" id="events">Events</h2>
52+ <TwoUp>
53+ <EventPreview event={events[0]} className="mb-8" />
54+ {events[1] ? <EventPreview event={events[1]} className="mb-8" /> : <div />}
55+ </TwoUp>
56+ <Link href="/events?tag=bitcoin">
57+ <a className="bg-wall-600 text-white button-lg w-fit">
58+ View All
59+ </a>
60+ </Link>
61+ </div>
62+ <div className="mt-32">
63+ <h2 className="mb-8" id="title">{data.title}</h2>
64+ <div className="markdown">
65+ <Markdown.render content={JSON.parse(markdown)} />
66+ </div>
67+ </div>
68+ </div>
69+ <TableOfContents markdown={false} />
70+ </Section>
71+ </SingleColumn>
72+ <Footer />
73+ </Container>
74+ )
75+}
76+
77+export async function getStaticProps() {
78+ // Latest blog posts
79+ const posts = getAllPosts(
80+ ["title", "slug", "date", "description", "tags", "extra"],
81+ "blog",
82+ "date"
83+ ).filter((e) => e.tags?.includes("bitcoin"));
84+
85+ const events = getAllEvents(eventKeys, "events").filter((e) => e?.tags?.includes("bitcoin"));
86+
87+ const { data, content } = getPage(join(process.cwd(), 'content', 'bitcoin'));
88+
89+ const markdown = JSON.stringify(Markdown.parse({ post: { content } }));
90+ return {
91+ props: {
92+ posts,
93+ data,
94+ markdown,
95+ events
96+ }
97+ }
98+}
pages/blog.js+26−13
@@ -14,8 +14,14 @@ import Footer from "../components/Footer";
14import Header from "../components/Header";
14import Header from "../components/Header";
15import BackgroundImage from "../components/BackgroundImage";
15import BackgroundImage from "../components/BackgroundImage";
16import { contact } from "../lib/constants";
16import { contact } from "../lib/constants";
17+import { useRouter } from "next/router";
17
18
18export default function Blog({ posts, search }) {
19export default function Blog({ posts, search }) {
20+ const router = useRouter();
21+ const { tag } = router.query;
22+
23+ const filteredPosts = tag ? posts.filter((e) => e?.tags?.includes(tag)) : posts;
24+
19 const post = {
25 const post = {
20 title: "Blog",
26 title: "Blog",
21 description:
27 description:
@@ -31,20 +37,27 @@ export default function Blog({ posts, search }) {
31 <SingleColumn>
37 <SingleColumn>
32 <Header search={search} />
38 <Header search={search} />
33 <Section>
39 <Section>
40+ {tag ?
41+ <><h1 className="pb-16">{filteredPosts.length} posts tagged "{tag}"</h1>
42+ <p>
43+ For more posts, return to the <Link href="/blog">blog index</Link>.
44+ </p>
45+ </>
34− <h1 className="pb-16">Blog</h1>
46+ : <><h1 className="pb-16">Blog</h1>
35− <div className="md:columns-2 gap-x-8">
47+ <div className="md:columns-2 gap-x-8">
36− <p className="pb-6 md:pb-0">
48+ <p className="pb-6 md:pb-0">
37− Stories from the broader Urbit community, the Urbit Foundation,
49+ Stories from the broader Urbit community, the Urbit Foundation,
38− and the many people contributing to Urbit.
50+ and the many people contributing to Urbit.
39− </p>
51+ </p>
40− <p>
52+ <p>
41− <a href={contact.newsletter}>Subscribe</a> to the Urbit Newsletter
53+ <a href={contact.newsletter}>Subscribe</a> to the Urbit Newsletter
42− for regular updates, including new blog posts and events.
54+ for regular updates, including new blog posts and events.
43− </p>
55+ </p>
44− </div>
56+ </div>
57+ </>}
45 </Section>
58 </Section>
46 <Section>
59 <Section>
47− {posts.map((post) => {
60+ {filteredPosts.map((post) => {
48 const date = generateDisplayDate(post.date);
61 const date = generateDisplayDate(post.date);
49 return (
62 return (
50 <div key={post.slug} className="mb-20 cursor-pointer">
63 <div key={post.slug} className="mb-20 cursor-pointer">
@@ -107,7 +120,7 @@ export default function Blog({ posts, search }) {
107
120
108export async function getStaticProps() {
121export async function getStaticProps() {
109 const posts = getAllPosts(
122 const posts = getAllPosts(
110− ["title", "slug", "date", "description", "extra"],
123+ ["title", "slug", "date", "description", "tags", "extra"],
111 "blog",
124 "blog",
112 "date"
125 "date"
113 );
126 );
pages/events.js+17−3
@@ -15,11 +15,15 @@ import Footer from "../components/Footer";
15import Header from "../components/Header";
15import Header from "../components/Header";
16import EventPreview from "../components/EventPreview";
16import EventPreview from "../components/EventPreview";
17import { getAllEvents, pair } from "../lib/lib";
17import { getAllEvents, pair } from "../lib/lib";
18+import { useRouter } from "next/router";
18
19
19import { eventKeys } from "../lib/constants";
20import { eventKeys } from "../lib/constants";
20
21
21export default function Events({ events, search }) {
22export default function Events({ events, search }) {
22 const [selected, setSelected] = useState("All");
23 const [selected, setSelected] = useState("All");
24+ const router = useRouter();
25+ const { tag } = router.query;
26+
23 const post = {
27 const post = {
24 title: "Events",
28 title: "Events",
25 description: "In-person, remote, and recorded events about Urbit.",
29 description: "In-person, remote, and recorded events about Urbit.",
@@ -27,6 +31,13 @@ export default function Events({ events, search }) {
27
31
28 const now = DateTime.now();
32 const now = DateTime.now();
29
33
34+ const tagFilter = (event) => {
35+ if (tag) {
36+ return event?.tags?.includes(tag)
37+ } else {
38+ return true;
39+ }
40+ }
30 const selectionFilter = (event) => {
41 const selectionFilter = (event) => {
31 if (selected === "All") {
42 if (selected === "All") {
32 return true;
43 return true;
@@ -38,7 +49,7 @@ export default function Events({ events, search }) {
38 };
49 };
39
50
40 const pastEvents = pair(
51 const pastEvents = pair(
41− events.filter(selectionFilter).filter((event) => {
52+ events.filter(selectionFilter).filter(tagFilter).filter((event) => {
42 const ends = generateRealtimeDate(event.ends);
53 const ends = generateRealtimeDate(event.ends);
43 return ends < now;
54 return ends < now;
44 })
55 })
@@ -47,6 +58,7 @@ export default function Events({ events, search }) {
47 const futureEvents = pair(
58 const futureEvents = pair(
48 events
59 events
49 .filter(selectionFilter)
60 .filter(selectionFilter)
61+ .filter(tagFilter)
50 .filter((event) => {
62 .filter((event) => {
51 const starts = generateRealtimeDate(event.starts);
63 const starts = generateRealtimeDate(event.starts);
52 return starts > now;
64 return starts > now;
@@ -64,7 +76,7 @@ export default function Events({ events, search }) {
64 );
76 );
65
77
66 const happeningNow = pair(
78 const happeningNow = pair(
67− events.filter(selectionFilter).filter((event) => {
79+ events.filter(selectionFilter).filter(tagFilter).filter((event) => {
68 const starts = generateRealtimeDate(event.starts);
80 const starts = generateRealtimeDate(event.starts);
69 const ends = generateRealtimeDate(event.ends);
81 const ends = generateRealtimeDate(event.ends);
70 return starts < DateTime.now() && ends > now;
82 return starts < DateTime.now() && ends > now;
@@ -96,7 +108,9 @@ export default function Events({ events, search }) {
96 <Header search={search} />
108 <Header search={search} />
97 <Section>
109 <Section>
98 <div className="measure">
110 <div className="measure">
111+ {tag
112+ ? <h1 className="pb-16">{events.filter(tagFilter).length} events tagged "{tag}"</h1>
99− <h1 className="pb-16">Events</h1>
113+ : <h1 className="pb-16">Events</h1>}
100 <div className="flex space-x-2">
114 <div className="flex space-x-2">
101 <SelectedButton selection="All" text="All Events" />
115 <SelectedButton selection="All" text="All Events" />
102 <SelectedButton selection="In-person" text="In-person" />
116 <SelectedButton selection="In-person" text="In-person" />
vercel.json+5
@@ -97,6 +97,11 @@
97 "destination": "https://github.com/urbit/urbit/releases/latest/download/linux64.tgz",
97 "destination": "https://github.com/urbit/urbit/releases/latest/download/linux64.tgz",
98 "permanent": true
98 "permanent": true
99 },
99 },
100+ {
101+ "source": "/install/linux-aarch64/latest",
102+ "destination": "https://github.com/urbit/urbit/releases/latest/download/linux-aarch64.tgz",
103+ "permanent": true
104+ },
100 {
105 {
101 "source": "/install/windows/latest",
106 "source": "/install/windows/latest",
102 "destination": "http://github.com/urbit/urbit/releases/latest/download/windows.tgz",
107 "destination": "http://github.com/urbit/urbit/releases/latest/download/windows.tgz",