@latticexyz/entrykit 2.2.22-6dc6a0a5c33aadacb3b2fcffeb488fc852db6054 → 2.2.22-7367a813d9b394415ba70678c4295cc90562c304
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -22,7 +22,7 @@ import { forwardRef, useEffect, useRef, useState } from "react";
|
|
|
22
22
|
import ReactDOM from "react-dom";
|
|
23
23
|
|
|
24
24
|
// ../../node_modules/.pnpm/tailwindcss@3.4.13/node_modules/tailwindcss/tailwind.css?inline
|
|
25
|
-
var tailwind_default = '*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}/*\n! tailwindcss v3.4.13 | MIT License | https://tailwindcss.com\n*//*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n::before,\n::after {\n --tw-content: \'\';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user\'s configured `sans` font-family by default.\n5. Use the user\'s configured `sans` font-feature-settings by default.\n6. Use the user\'s configured `sans` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\n\nhtml,\n:host {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */ /* 3 */\n tab-size: 4; /* 3 */\n font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */\n font-feature-settings: normal; /* 5 */\n font-variation-settings: normal; /* 6 */\n -webkit-tap-highlight-color: transparent; /* 7 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user\'s configured `mono` font-family by default.\n2. Use the user\'s configured `mono` font-feature-settings by default.\n3. Use the user\'s configured `mono` font-variation-settings by default.\n4. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */\n font-feature-settings: normal; /* 2 */\n font-variation-settings: normal; /* 3 */\n font-size: 1em; /* 4 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-feature-settings: inherit; /* 1 */\n font-variation-settings: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n letter-spacing: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\ninput:where([type=\'button\']),\ninput:where([type=\'reset\']),\ninput:where([type=\'submit\']) {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type=\'search\'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nReset default styling for dialogs.\n*/\ndialog {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user\'s configured gray 400 color.\n*/\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role="button"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don\'t get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden] {\n display: none;\n}\n\n.container {\n width: 100%;\n}\n\n@media (min-width: 640px) {\n\n .container {\n max-width: 640px;\n }\n}\n\n@media (min-width: 768px) {\n\n .container {\n max-width: 768px;\n }\n}\n\n@media (min-width: 1024px) {\n\n .container {\n max-width: 1024px;\n }\n}\n\n@media (min-width: 1280px) {\n\n .container {\n max-width: 1280px;\n }\n}\n\n@media (min-width: 1536px) {\n\n .container {\n max-width: 1536px;\n }\n}\n\n.grid-cols-2.divide-y > :not([hidden]) ~ :not([hidden]):nth-child(-n + 2) {\n border-top-width: 0;\n border-bottom-width: 0;\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.pointer-events-none {\n pointer-events: none;\n}\n\n.pointer-events-auto {\n pointer-events: auto;\n}\n\n.fixed {\n position: fixed;\n}\n\n.absolute {\n position: absolute;\n}\n\n.relative {\n position: relative;\n}\n\n.sticky {\n position: sticky;\n}\n\n.inset-0 {\n inset: 0px;\n}\n\n.bottom-0 {\n bottom: 0px;\n}\n\n.left-0 {\n left: 0px;\n}\n\n.right-0 {\n right: 0px;\n}\n\n.top-0 {\n top: 0px;\n}\n\n.col-start-1 {\n grid-column-start: 1;\n}\n\n.row-start-1 {\n grid-row-start: 1;\n}\n\n.m-0 {\n margin: 0px;\n}\n\n.m-2 {\n margin: 0.5rem;\n}\n\n.-mx-0\\.5 {\n margin-left: -0.125rem;\n margin-right: -0.125rem;\n}\n\n.-my-1 {\n margin-top: -0.25rem;\n margin-bottom: -0.25rem;\n}\n\n.-my-\\[0\\.125em\\] {\n margin-top: -0.125em;\n margin-bottom: -0.125em;\n}\n\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n\n.-ml-3 {\n margin-left: -0.75rem;\n}\n\n.-mr-1 {\n margin-right: -0.25rem;\n}\n\n.-mt-2 {\n margin-top: -0.5rem;\n}\n\n.mt-1 {\n margin-top: 0.25rem;\n}\n\n.mt-4 {\n margin-top: 1rem;\n}\n\n.block {\n display: block;\n}\n\n.inline-block {\n display: inline-block;\n}\n\n.flex {\n display: flex;\n}\n\n.inline-flex {\n display: inline-flex;\n}\n\n.table {\n display: table;\n}\n\n.grid {\n display: grid;\n}\n\n.inline-grid {\n display: inline-grid;\n}\n\n.contents {\n display: contents;\n}\n\n.hidden {\n display: none;\n}\n\n.aspect-square {\n aspect-ratio: 1 / 1;\n}\n\n.h-10 {\n height: 2.5rem;\n}\n\n.h-12 {\n height: 3rem;\n}\n\n.h-16 {\n height: 4rem;\n}\n\n.h-3 {\n height: 0.75rem;\n}\n\n.h-3\\.5 {\n height: 0.875rem;\n}\n\n.h-4 {\n height: 1rem;\n}\n\n.h-6 {\n height: 1.5rem;\n}\n\n.h-64 {\n height: 16rem;\n}\n\n.h-\\[1\\.25em\\] {\n height: 1.25em;\n}\n\n.h-\\[1em\\] {\n height: 1em;\n}\n\n.h-\\[2px\\] {\n height: 2px;\n}\n\n.h-full {\n height: 100%;\n}\n\n.max-h-full {\n max-height: 100%;\n}\n\n.w-10 {\n width: 2.5rem;\n}\n\n.w-16 {\n width: 4rem;\n}\n\n.w-24 {\n width: 6rem;\n}\n\n.w-28 {\n width: 7rem;\n}\n\n.w-3 {\n width: 0.75rem;\n}\n\n.w-3\\.5 {\n width: 0.875rem;\n}\n\n.w-4 {\n width: 1rem;\n}\n\n.w-48 {\n width: 12rem;\n}\n\n.w-6 {\n width: 1.5rem;\n}\n\n.w-60 {\n width: 15rem;\n}\n\n.w-8 {\n width: 2rem;\n}\n\n.w-\\[0\\.6em\\] {\n width: 0.6em;\n}\n\n.w-\\[1\\.25em\\] {\n width: 1.25em;\n}\n\n.w-\\[352px\\] {\n width: 352px;\n}\n\n.w-full {\n width: 100%;\n}\n\n.max-w-\\[26rem\\] {\n max-width: 26rem;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0;\n}\n\n.flex-grow {\n flex-grow: 1;\n}\n\n.-translate-y-2 {\n --tw-translate-y: -0.5rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.-translate-y-4 {\n --tw-translate-y: -1rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.translate-x-2 {\n --tw-translate-x: 0.5rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.translate-y-0 {\n --tw-translate-y: 0px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.scale-100 {\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.scale-50 {\n --tw-scale-x: .5;\n --tw-scale-y: .5;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n@keyframes spin {\n\n to {\n transform: rotate(360deg);\n }\n}\n\n.animate-spin {\n animation: spin 1s linear infinite;\n}\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n.cursor-text {\n cursor: text;\n}\n\n.grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n\n.grid-cols-\\[1fr_auto_1fr\\] {\n grid-template-columns: 1fr auto 1fr;\n}\n\n.flex-col {\n flex-direction: column;\n}\n\n.place-items-center {\n place-items: center;\n}\n\n.items-end {\n align-items: flex-end;\n}\n\n.items-center {\n align-items: center;\n}\n\n.justify-end {\n justify-content: flex-end;\n}\n\n.justify-center {\n justify-content: center;\n}\n\n.justify-between {\n justify-content: space-between;\n}\n\n.gap-1 {\n gap: 0.25rem;\n}\n\n.gap-2 {\n gap: 0.5rem;\n}\n\n.gap-2\\.5 {\n gap: 0.625rem;\n}\n\n.gap-4 {\n gap: 1rem;\n}\n\n.gap-5 {\n gap: 1.25rem;\n}\n\n.gap-6 {\n gap: 1.5rem;\n}\n\n.space-y-6 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));\n}\n\n.divide-y > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-y-reverse: 0;\n border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n border-bottom-width: calc(1px * var(--tw-divide-y-reverse));\n}\n\n.divide-neutral-700 > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-opacity: 1;\n border-color: rgb(64 64 64 / var(--tw-divide-opacity));\n}\n\n.divide-neutral-800 > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-opacity: 1;\n border-color: rgb(38 38 38 / var(--tw-divide-opacity));\n}\n\n.self-auto {\n align-self: auto;\n}\n\n.self-center {\n align-self: center;\n}\n\n.overflow-auto {\n overflow: auto;\n}\n\n.overflow-clip {\n overflow: clip;\n}\n\n.whitespace-nowrap {\n white-space: nowrap;\n}\n\n.whitespace-pre-wrap {\n white-space: pre-wrap;\n}\n\n.rounded-full {\n border-radius: 9999px;\n}\n\n.border {\n border-width: 1px;\n}\n\n.border-2 {\n border-width: 2px;\n}\n\n.border-4 {\n border-width: 4px;\n}\n\n.border-dashed {\n border-style: dashed;\n}\n\n.border-neutral-300 {\n --tw-border-opacity: 1;\n border-color: rgb(212 212 212 / var(--tw-border-opacity));\n}\n\n.border-neutral-700 {\n --tw-border-opacity: 1;\n border-color: rgb(64 64 64 / var(--tw-border-opacity));\n}\n\n.border-transparent {\n border-color: transparent;\n}\n\n.border-white\\/50 {\n border-color: rgb(255 255 255 / 0.5);\n}\n\n.bg-black\\/10 {\n background-color: rgb(0 0 0 / 0.1);\n}\n\n.bg-blue-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(37 99 235 / var(--tw-bg-opacity));\n}\n\n.bg-blue-700 {\n --tw-bg-opacity: 1;\n background-color: rgb(29 78 216 / var(--tw-bg-opacity));\n}\n\n.bg-blue-700\\/60 {\n background-color: rgb(29 78 216 / 0.6);\n}\n\n.bg-green-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(22 163 74 / var(--tw-bg-opacity));\n}\n\n.bg-neutral-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(245 245 245 / var(--tw-bg-opacity));\n}\n\n.bg-neutral-700 {\n --tw-bg-opacity: 1;\n background-color: rgb(64 64 64 / var(--tw-bg-opacity));\n}\n\n.bg-neutral-800 {\n --tw-bg-opacity: 1;\n background-color: rgb(38 38 38 / var(--tw-bg-opacity));\n}\n\n.bg-neutral-800\\/85 {\n background-color: rgb(38 38 38 / 0.85);\n}\n\n.bg-neutral-900 {\n --tw-bg-opacity: 1;\n background-color: rgb(23 23 23 / var(--tw-bg-opacity));\n}\n\n.bg-orange-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(249 115 22 / var(--tw-bg-opacity));\n}\n\n.bg-orange-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(234 88 12 / var(--tw-bg-opacity));\n}\n\n.bg-red-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(220 38 38 / var(--tw-bg-opacity));\n}\n\n.bg-transparent {\n background-color: transparent;\n}\n\n.bg-gradient-to-b {\n background-image: linear-gradient(to bottom, var(--tw-gradient-stops));\n}\n\n.from-transparent {\n --tw-gradient-from: transparent var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n\n.to-blue-700 {\n --tw-gradient-to: #1d4ed8 var(--tw-gradient-to-position);\n}\n\n.bg-cover {\n background-size: cover;\n}\n\n.bg-center {\n background-position: center;\n}\n\n.bg-no-repeat {\n background-repeat: no-repeat;\n}\n\n.object-cover {\n object-fit: cover;\n}\n\n.p-1 {\n padding: 0.25rem;\n}\n\n.p-2 {\n padding: 0.5rem;\n}\n\n.p-2\\.5 {\n padding: 0.625rem;\n}\n\n.p-3 {\n padding: 0.75rem;\n}\n\n.p-4 {\n padding: 1rem;\n}\n\n.p-6 {\n padding: 1.5rem;\n}\n\n.p-\\[\\.75em\\] {\n padding: .75em;\n}\n\n.px-8 {\n padding-left: 2rem;\n padding-right: 2rem;\n}\n\n.py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.py-8 {\n padding-top: 2rem;\n padding-bottom: 2rem;\n}\n\n.pb-2 {\n padding-bottom: 0.5rem;\n}\n\n.pb-8 {\n padding-bottom: 2rem;\n}\n\n.pt-10 {\n padding-top: 2.5rem;\n}\n\n.pt-8 {\n padding-top: 2rem;\n}\n\n.text-left {\n text-align: left;\n}\n\n.text-center {\n text-align: center;\n}\n\n.font-mono {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;\n}\n\n.text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n\n.text-\\[\\.75em\\] {\n font-size: .75em;\n}\n\n.text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n\n.font-bold {\n font-weight: 700;\n}\n\n.font-medium {\n font-weight: 500;\n}\n\n.leading-loose {\n line-height: 2;\n}\n\n.leading-none {\n line-height: 1;\n}\n\n.tracking-\\[-1ch\\] {\n letter-spacing: -1ch;\n}\n\n.text-amber-500 {\n --tw-text-opacity: 1;\n color: rgb(245 158 11 / var(--tw-text-opacity));\n}\n\n.text-black {\n --tw-text-opacity: 1;\n color: rgb(0 0 0 / var(--tw-text-opacity));\n}\n\n.text-green-600 {\n --tw-text-opacity: 1;\n color: rgb(22 163 74 / var(--tw-text-opacity));\n}\n\n.text-neutral-300 {\n --tw-text-opacity: 1;\n color: rgb(212 212 212 / var(--tw-text-opacity));\n}\n\n.text-neutral-400 {\n --tw-text-opacity: 1;\n color: rgb(163 163 163 / var(--tw-text-opacity));\n}\n\n.text-neutral-500 {\n --tw-text-opacity: 1;\n color: rgb(115 115 115 / var(--tw-text-opacity));\n}\n\n.text-orange-500 {\n --tw-text-opacity: 1;\n color: rgb(249 115 22 / var(--tw-text-opacity));\n}\n\n.text-transparent {\n color: transparent;\n}\n\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n\n.text-white\\/20 {\n color: rgb(255 255 255 / 0.2);\n}\n\n.text-white\\/50 {\n color: rgb(255 255 255 / 0.5);\n}\n\n.text-white\\/80 {\n color: rgb(255 255 255 / 0.8);\n}\n\n.underline {\n text-decoration-line: underline;\n}\n\n.decoration-neutral-500 {\n text-decoration-color: #737373;\n}\n\n.underline-offset-4 {\n text-underline-offset: 4px;\n}\n\n.opacity-0 {\n opacity: 0;\n}\n\n.opacity-100 {\n opacity: 1;\n}\n\n.opacity-25 {\n opacity: 0.25;\n}\n\n.opacity-30 {\n opacity: 0.3;\n}\n\n.opacity-50 {\n opacity: 0.5;\n}\n\n.opacity-75 {\n opacity: 0.75;\n}\n\n.outline-none {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n.ring-1 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n.ring-2 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n.ring-neutral-700\\/50 {\n --tw-ring-color: rgb(64 64 64 / 0.5);\n}\n\n.ring-transparent {\n --tw-ring-color: transparent;\n}\n\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.duration-100 {\n transition-duration: 100ms;\n}\n\n.duration-300 {\n transition-duration: 300ms;\n}\n\n.ease-linear {\n transition-timing-function: linear;\n}\n\n@keyframes enter {\n\n from {\n opacity: var(--tw-enter-opacity, 1);\n transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\n }\n}\n\n@keyframes exit {\n\n to {\n opacity: var(--tw-exit-opacity, 1);\n transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\n }\n}\n\n.animate-in {\n animation-name: enter;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n}\n\n.animate-out {\n animation-name: exit;\n animation-duration: 150ms;\n --tw-exit-opacity: initial;\n --tw-exit-scale: initial;\n --tw-exit-rotate: initial;\n --tw-exit-translate-x: initial;\n --tw-exit-translate-y: initial;\n}\n\n.fade-in {\n --tw-enter-opacity: 0;\n}\n\n.fade-out {\n --tw-exit-opacity: 0;\n}\n\n.slide-in-from-bottom-16 {\n --tw-enter-translate-y: 4rem;\n}\n\n.slide-in-from-bottom-2 {\n --tw-enter-translate-y: 0.5rem;\n}\n\n.slide-in-from-bottom-8 {\n --tw-enter-translate-y: 2rem;\n}\n\n.slide-in-from-top-2 {\n --tw-enter-translate-y: -0.5rem;\n}\n\n.animate-duration-300 {\n animation-duration: 300ms;\n}\n\n.ease-linear {\n animation-timing-function: linear;\n}\n\n@property --tw-border-gradient-angle {\n syntax: \'<angle>\';\n inherits: true;\n initial-value: 0deg;\n}\n\n@property --tw-conic-gradient-angle {\n syntax: \'<angle>\';\n inherits: true;\n initial-value: 0deg;\n}\n\n@keyframes border-gradient {\n\n to {\n --tw-border-gradient-angle: 360deg;\n }\n}\n\n.placeholder\\:text-neutral-500::placeholder {\n --tw-text-opacity: 1;\n color: rgb(115 115 115 / var(--tw-text-opacity));\n}\n\n.after\\:select-none::after {\n content: var(--tw-content);\n -webkit-user-select: none;\n user-select: none;\n}\n\n.after\\:content-\\[\\\'\\2026\\\'\\]::after {\n --tw-content: \'\u2026\';\n content: var(--tw-content);\n}\n\n.focus-within\\:border-transparent:focus-within {\n border-color: transparent;\n}\n\n.focus-within\\:ring-orange-500:focus-within {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(249 115 22 / var(--tw-ring-opacity));\n}\n\n.hover\\:bg-blue-500:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(59 130 246 / var(--tw-bg-opacity));\n}\n\n.hover\\:bg-neutral-200:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(229 229 229 / var(--tw-bg-opacity));\n}\n\n.hover\\:bg-orange-400:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(251 146 60 / var(--tw-bg-opacity));\n}\n\n.hover\\:text-white:hover {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n\n.hover\\:text-white\\/40:hover {\n color: rgb(255 255 255 / 0.4);\n}\n\n.hover\\:text-white\\/80:hover {\n color: rgb(255 255 255 / 0.8);\n}\n\n.hover\\:decoration-orange-500:hover {\n text-decoration-color: #f97316;\n}\n\n.hover\\:brightness-125:hover {\n --tw-brightness: brightness(1.25);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.focus\\:border-orange-500:focus {\n --tw-border-opacity: 1;\n border-color: rgb(249 115 22 / var(--tw-border-opacity));\n}\n\n.focus\\:border-yellow-400:focus {\n --tw-border-opacity: 1;\n border-color: rgb(250 204 21 / var(--tw-border-opacity));\n}\n\n.focus\\:bg-neutral-700:focus {\n --tw-bg-opacity: 1;\n background-color: rgb(64 64 64 / var(--tw-bg-opacity));\n}\n\n.active\\:bg-orange-600:active {\n --tw-bg-opacity: 1;\n background-color: rgb(234 88 12 / var(--tw-bg-opacity));\n}\n\n.active\\:brightness-150:active {\n --tw-brightness: brightness(1.5);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.group:hover .group-hover\\:pointer-events-none {\n pointer-events: none;\n}\n\n.group:hover .group-hover\\:pointer-events-auto {\n pointer-events: auto;\n}\n\n.group:hover .group-hover\\:inline-block {\n display: inline-block;\n}\n\n.group:hover .group-hover\\:hidden {\n display: none;\n}\n\n.group:hover .group-hover\\:rotate-90 {\n --tw-rotate: 90deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.group:hover .group-hover\\:opacity-0 {\n opacity: 0;\n}\n\n.group:hover .group-hover\\:opacity-100 {\n opacity: 1;\n}\n\n.peer:placeholder-shown ~ .peer-placeholder-shown\\:text-neutral-500 {\n --tw-text-opacity: 1;\n color: rgb(115 115 115 / var(--tw-text-opacity));\n}\n\n.aria-busy\\:pointer-events-none[aria-busy="true"] {\n pointer-events: none;\n}\n\n.aria-busy\\:bg-blue-500[aria-busy="true"] {\n --tw-bg-opacity: 1;\n background-color: rgb(59 130 246 / var(--tw-bg-opacity));\n}\n\n.aria-disabled\\:pointer-events-none[aria-disabled="true"] {\n pointer-events: none;\n}\n\n.aria-disabled\\:opacity-50[aria-disabled="true"] {\n opacity: 0.5;\n}\n\n.group[aria-busy="true"] .group-aria-busy\\:inline {\n display: inline;\n}\n\n.group[aria-busy="true"] .group-aria-busy\\:hidden {\n display: none;\n}\n\n.group\\/button[aria-busy="true"] .group-aria-busy\\/button\\:translate-x-0 {\n --tw-translate-x: 0px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.group[aria-busy="true"] .group-aria-busy\\:scale-100 {\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.group[aria-busy="true"] .group-aria-busy\\:scale-125 {\n --tw-scale-x: 1.25;\n --tw-scale-y: 1.25;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.group\\/button[aria-busy="true"] .group-aria-busy\\/button\\:opacity-100 {\n opacity: 1;\n}\n\n.group[aria-busy="true"] .group-aria-busy\\:opacity-0 {\n opacity: 0;\n}\n\n.group[aria-busy="true"] .group-aria-busy\\:opacity-100 {\n opacity: 1;\n}\n\n.group\\/button[aria-busy="true"] .group-aria-busy\\/button\\:duration-300 {\n transition-duration: 300ms;\n}\n\n.group[aria-expanded="true"] .group-aria-expanded\\:inline {\n display: inline;\n}\n\n.group[aria-expanded="true"] .group-aria-expanded\\:hidden {\n display: none;\n}\n\n.data-\\[highlighted\\]\\:bg-neutral-200[data-highlighted] {\n --tw-bg-opacity: 1;\n background-color: rgb(229 229 229 / var(--tw-bg-opacity));\n}\n\n.data-\\[state\\=checked\\]\\:bg-neutral-900[data-state="checked"] {\n --tw-bg-opacity: 1;\n background-color: rgb(23 23 23 / var(--tw-bg-opacity));\n}\n\n.links\\:font-medium a[href]:not(.links-unset) {\n font-weight: 500;\n}\n\n.links\\:text-white a[href]:not(.links-unset) {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n\n.links\\:underline a[href]:not(.links-unset) {\n text-decoration-line: underline;\n}\n\n.links\\:decoration-neutral-500 a[href]:not(.links-unset) {\n text-decoration-color: #737373;\n}\n\n.links\\:underline-offset-4 a[href]:not(.links-unset) {\n text-underline-offset: 4px;\n}\n\n.hover\\:links\\:decoration-orange-500 a[href]:not(.links-unset):hover {\n text-decoration-color: #f97316;\n}\n\n@media (min-width: 640px) {\n\n .sm\\:items-center {\n align-items: center;\n }\n}\n\n.dark\\:border-neutral-700:where([data-theme="dark"], [data-theme="dark"] *) {\n --tw-border-opacity: 1;\n border-color: rgb(64 64 64 / var(--tw-border-opacity));\n}\n\n.dark\\:bg-neutral-800:where([data-theme="dark"], [data-theme="dark"] *) {\n --tw-bg-opacity: 1;\n background-color: rgb(38 38 38 / var(--tw-bg-opacity));\n}\n\n.dark\\:bg-white\\/10:where([data-theme="dark"], [data-theme="dark"] *) {\n background-color: rgb(255 255 255 / 0.1);\n}\n\n.dark\\:text-white:where([data-theme="dark"], [data-theme="dark"] *) {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n\n.dark\\:hover\\:bg-neutral-700:hover:where([data-theme="dark"], [data-theme="dark"] *) {\n --tw-bg-opacity: 1;\n background-color: rgb(64 64 64 / var(--tw-bg-opacity));\n}\n\n.\\[\\&_\\>_\\:is\\(dt\\2c dd\\)\\]\\:px-1 > :is(dt,dd) {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n\n.\\[\\&_\\>_dd\\]\\:text-right > dd {\n text-align: right;\n}\n';
|
|
25
|
+
var tailwind_default = '*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}/*\n! tailwindcss v3.4.13 | MIT License | https://tailwindcss.com\n*//*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n::before,\n::after {\n --tw-content: \'\';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user\'s configured `sans` font-family by default.\n5. Use the user\'s configured `sans` font-feature-settings by default.\n6. Use the user\'s configured `sans` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\n\nhtml,\n:host {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */ /* 3 */\n tab-size: 4; /* 3 */\n font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */\n font-feature-settings: normal; /* 5 */\n font-variation-settings: normal; /* 6 */\n -webkit-tap-highlight-color: transparent; /* 7 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user\'s configured `mono` font-family by default.\n2. Use the user\'s configured `mono` font-feature-settings by default.\n3. Use the user\'s configured `mono` font-variation-settings by default.\n4. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */\n font-feature-settings: normal; /* 2 */\n font-variation-settings: normal; /* 3 */\n font-size: 1em; /* 4 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-feature-settings: inherit; /* 1 */\n font-variation-settings: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n letter-spacing: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\ninput:where([type=\'button\']),\ninput:where([type=\'reset\']),\ninput:where([type=\'submit\']) {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type=\'search\'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nReset default styling for dialogs.\n*/\ndialog {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user\'s configured gray 400 color.\n*/\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role="button"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don\'t get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden] {\n display: none;\n}\n\n.container {\n width: 100%;\n}\n\n@media (min-width: 640px) {\n\n .container {\n max-width: 640px;\n }\n}\n\n@media (min-width: 768px) {\n\n .container {\n max-width: 768px;\n }\n}\n\n@media (min-width: 1024px) {\n\n .container {\n max-width: 1024px;\n }\n}\n\n@media (min-width: 1280px) {\n\n .container {\n max-width: 1280px;\n }\n}\n\n@media (min-width: 1536px) {\n\n .container {\n max-width: 1536px;\n }\n}\n\n.grid-cols-2.divide-y > :not([hidden]) ~ :not([hidden]):nth-child(-n + 2) {\n border-top-width: 0;\n border-bottom-width: 0;\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.pointer-events-none {\n pointer-events: none;\n}\n\n.pointer-events-auto {\n pointer-events: auto;\n}\n\n.fixed {\n position: fixed;\n}\n\n.absolute {\n position: absolute;\n}\n\n.relative {\n position: relative;\n}\n\n.sticky {\n position: sticky;\n}\n\n.inset-0 {\n inset: 0px;\n}\n\n.bottom-0 {\n bottom: 0px;\n}\n\n.left-0 {\n left: 0px;\n}\n\n.right-0 {\n right: 0px;\n}\n\n.top-0 {\n top: 0px;\n}\n\n.col-start-1 {\n grid-column-start: 1;\n}\n\n.row-start-1 {\n grid-row-start: 1;\n}\n\n.m-0 {\n margin: 0px;\n}\n\n.m-2 {\n margin: 0.5rem;\n}\n\n.-mx-0\\.5 {\n margin-left: -0.125rem;\n margin-right: -0.125rem;\n}\n\n.-my-1 {\n margin-top: -0.25rem;\n margin-bottom: -0.25rem;\n}\n\n.-my-\\[0\\.125em\\] {\n margin-top: -0.125em;\n margin-bottom: -0.125em;\n}\n\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n\n.-ml-3 {\n margin-left: -0.75rem;\n}\n\n.-mr-1 {\n margin-right: -0.25rem;\n}\n\n.-mt-2 {\n margin-top: -0.5rem;\n}\n\n.mt-1 {\n margin-top: 0.25rem;\n}\n\n.mt-4 {\n margin-top: 1rem;\n}\n\n.block {\n display: block;\n}\n\n.inline-block {\n display: inline-block;\n}\n\n.flex {\n display: flex;\n}\n\n.inline-flex {\n display: inline-flex;\n}\n\n.table {\n display: table;\n}\n\n.grid {\n display: grid;\n}\n\n.inline-grid {\n display: inline-grid;\n}\n\n.contents {\n display: contents;\n}\n\n.hidden {\n display: none;\n}\n\n.aspect-square {\n aspect-ratio: 1 / 1;\n}\n\n.h-10 {\n height: 2.5rem;\n}\n\n.h-12 {\n height: 3rem;\n}\n\n.h-16 {\n height: 4rem;\n}\n\n.h-3 {\n height: 0.75rem;\n}\n\n.h-3\\.5 {\n height: 0.875rem;\n}\n\n.h-4 {\n height: 1rem;\n}\n\n.h-6 {\n height: 1.5rem;\n}\n\n.h-64 {\n height: 16rem;\n}\n\n.h-\\[1\\.25em\\] {\n height: 1.25em;\n}\n\n.h-\\[1em\\] {\n height: 1em;\n}\n\n.h-\\[2px\\] {\n height: 2px;\n}\n\n.h-full {\n height: 100%;\n}\n\n.max-h-\\[230px\\] {\n max-height: 230px;\n}\n\n.max-h-full {\n max-height: 100%;\n}\n\n.w-10 {\n width: 2.5rem;\n}\n\n.w-16 {\n width: 4rem;\n}\n\n.w-24 {\n width: 6rem;\n}\n\n.w-28 {\n width: 7rem;\n}\n\n.w-3 {\n width: 0.75rem;\n}\n\n.w-3\\.5 {\n width: 0.875rem;\n}\n\n.w-4 {\n width: 1rem;\n}\n\n.w-48 {\n width: 12rem;\n}\n\n.w-6 {\n width: 1.5rem;\n}\n\n.w-60 {\n width: 15rem;\n}\n\n.w-8 {\n width: 2rem;\n}\n\n.w-\\[0\\.6em\\] {\n width: 0.6em;\n}\n\n.w-\\[1\\.25em\\] {\n width: 1.25em;\n}\n\n.w-\\[352px\\] {\n width: 352px;\n}\n\n.w-full {\n width: 100%;\n}\n\n.max-w-\\[26rem\\] {\n max-width: 26rem;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0;\n}\n\n.flex-grow {\n flex-grow: 1;\n}\n\n.-translate-y-2 {\n --tw-translate-y: -0.5rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.-translate-y-4 {\n --tw-translate-y: -1rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.translate-x-2 {\n --tw-translate-x: 0.5rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.translate-y-0 {\n --tw-translate-y: 0px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.scale-100 {\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.scale-50 {\n --tw-scale-x: .5;\n --tw-scale-y: .5;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n@keyframes spin {\n\n to {\n transform: rotate(360deg);\n }\n}\n\n.animate-spin {\n animation: spin 1s linear infinite;\n}\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n.cursor-text {\n cursor: text;\n}\n\n.grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n\n.grid-cols-\\[1fr_auto_1fr\\] {\n grid-template-columns: 1fr auto 1fr;\n}\n\n.flex-col {\n flex-direction: column;\n}\n\n.place-items-center {\n place-items: center;\n}\n\n.items-end {\n align-items: flex-end;\n}\n\n.items-center {\n align-items: center;\n}\n\n.justify-end {\n justify-content: flex-end;\n}\n\n.justify-center {\n justify-content: center;\n}\n\n.justify-between {\n justify-content: space-between;\n}\n\n.gap-1 {\n gap: 0.25rem;\n}\n\n.gap-2 {\n gap: 0.5rem;\n}\n\n.gap-2\\.5 {\n gap: 0.625rem;\n}\n\n.gap-4 {\n gap: 1rem;\n}\n\n.gap-5 {\n gap: 1.25rem;\n}\n\n.gap-6 {\n gap: 1.5rem;\n}\n\n.space-y-6 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));\n}\n\n.divide-y > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-y-reverse: 0;\n border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n border-bottom-width: calc(1px * var(--tw-divide-y-reverse));\n}\n\n.divide-neutral-700 > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-opacity: 1;\n border-color: rgb(64 64 64 / var(--tw-divide-opacity));\n}\n\n.divide-neutral-800 > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-opacity: 1;\n border-color: rgb(38 38 38 / var(--tw-divide-opacity));\n}\n\n.self-auto {\n align-self: auto;\n}\n\n.self-center {\n align-self: center;\n}\n\n.overflow-auto {\n overflow: auto;\n}\n\n.overflow-clip {\n overflow: clip;\n}\n\n.overflow-y-auto {\n overflow-y: auto;\n}\n\n.whitespace-nowrap {\n white-space: nowrap;\n}\n\n.whitespace-pre-wrap {\n white-space: pre-wrap;\n}\n\n.rounded-full {\n border-radius: 9999px;\n}\n\n.border {\n border-width: 1px;\n}\n\n.border-2 {\n border-width: 2px;\n}\n\n.border-4 {\n border-width: 4px;\n}\n\n.border-dashed {\n border-style: dashed;\n}\n\n.border-neutral-300 {\n --tw-border-opacity: 1;\n border-color: rgb(212 212 212 / var(--tw-border-opacity));\n}\n\n.border-neutral-700 {\n --tw-border-opacity: 1;\n border-color: rgb(64 64 64 / var(--tw-border-opacity));\n}\n\n.border-transparent {\n border-color: transparent;\n}\n\n.border-white\\/50 {\n border-color: rgb(255 255 255 / 0.5);\n}\n\n.bg-black\\/10 {\n background-color: rgb(0 0 0 / 0.1);\n}\n\n.bg-blue-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(37 99 235 / var(--tw-bg-opacity));\n}\n\n.bg-blue-700 {\n --tw-bg-opacity: 1;\n background-color: rgb(29 78 216 / var(--tw-bg-opacity));\n}\n\n.bg-blue-700\\/60 {\n background-color: rgb(29 78 216 / 0.6);\n}\n\n.bg-green-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(22 163 74 / var(--tw-bg-opacity));\n}\n\n.bg-neutral-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(245 245 245 / var(--tw-bg-opacity));\n}\n\n.bg-neutral-700 {\n --tw-bg-opacity: 1;\n background-color: rgb(64 64 64 / var(--tw-bg-opacity));\n}\n\n.bg-neutral-800 {\n --tw-bg-opacity: 1;\n background-color: rgb(38 38 38 / var(--tw-bg-opacity));\n}\n\n.bg-neutral-800\\/85 {\n background-color: rgb(38 38 38 / 0.85);\n}\n\n.bg-neutral-900 {\n --tw-bg-opacity: 1;\n background-color: rgb(23 23 23 / var(--tw-bg-opacity));\n}\n\n.bg-orange-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(249 115 22 / var(--tw-bg-opacity));\n}\n\n.bg-orange-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(234 88 12 / var(--tw-bg-opacity));\n}\n\n.bg-red-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(220 38 38 / var(--tw-bg-opacity));\n}\n\n.bg-transparent {\n background-color: transparent;\n}\n\n.bg-gradient-to-b {\n background-image: linear-gradient(to bottom, var(--tw-gradient-stops));\n}\n\n.from-transparent {\n --tw-gradient-from: transparent var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n\n.to-blue-700 {\n --tw-gradient-to: #1d4ed8 var(--tw-gradient-to-position);\n}\n\n.bg-cover {\n background-size: cover;\n}\n\n.bg-center {\n background-position: center;\n}\n\n.bg-no-repeat {\n background-repeat: no-repeat;\n}\n\n.object-cover {\n object-fit: cover;\n}\n\n.p-1 {\n padding: 0.25rem;\n}\n\n.p-2 {\n padding: 0.5rem;\n}\n\n.p-2\\.5 {\n padding: 0.625rem;\n}\n\n.p-3 {\n padding: 0.75rem;\n}\n\n.p-4 {\n padding: 1rem;\n}\n\n.p-6 {\n padding: 1.5rem;\n}\n\n.p-\\[\\.75em\\] {\n padding: .75em;\n}\n\n.px-8 {\n padding-left: 2rem;\n padding-right: 2rem;\n}\n\n.py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.py-8 {\n padding-top: 2rem;\n padding-bottom: 2rem;\n}\n\n.pb-2 {\n padding-bottom: 0.5rem;\n}\n\n.pb-8 {\n padding-bottom: 2rem;\n}\n\n.pt-10 {\n padding-top: 2.5rem;\n}\n\n.pt-8 {\n padding-top: 2rem;\n}\n\n.text-left {\n text-align: left;\n}\n\n.text-center {\n text-align: center;\n}\n\n.font-mono {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;\n}\n\n.text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n\n.text-\\[\\.75em\\] {\n font-size: .75em;\n}\n\n.text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n\n.font-bold {\n font-weight: 700;\n}\n\n.font-medium {\n font-weight: 500;\n}\n\n.leading-loose {\n line-height: 2;\n}\n\n.leading-none {\n line-height: 1;\n}\n\n.tracking-\\[-1ch\\] {\n letter-spacing: -1ch;\n}\n\n.text-amber-500 {\n --tw-text-opacity: 1;\n color: rgb(245 158 11 / var(--tw-text-opacity));\n}\n\n.text-black {\n --tw-text-opacity: 1;\n color: rgb(0 0 0 / var(--tw-text-opacity));\n}\n\n.text-gray-400 {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity));\n}\n\n.text-green-600 {\n --tw-text-opacity: 1;\n color: rgb(22 163 74 / var(--tw-text-opacity));\n}\n\n.text-neutral-300 {\n --tw-text-opacity: 1;\n color: rgb(212 212 212 / var(--tw-text-opacity));\n}\n\n.text-neutral-400 {\n --tw-text-opacity: 1;\n color: rgb(163 163 163 / var(--tw-text-opacity));\n}\n\n.text-neutral-500 {\n --tw-text-opacity: 1;\n color: rgb(115 115 115 / var(--tw-text-opacity));\n}\n\n.text-orange-500 {\n --tw-text-opacity: 1;\n color: rgb(249 115 22 / var(--tw-text-opacity));\n}\n\n.text-transparent {\n color: transparent;\n}\n\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n\n.text-white\\/20 {\n color: rgb(255 255 255 / 0.2);\n}\n\n.text-white\\/50 {\n color: rgb(255 255 255 / 0.5);\n}\n\n.text-white\\/80 {\n color: rgb(255 255 255 / 0.8);\n}\n\n.underline {\n text-decoration-line: underline;\n}\n\n.decoration-neutral-500 {\n text-decoration-color: #737373;\n}\n\n.underline-offset-4 {\n text-underline-offset: 4px;\n}\n\n.opacity-0 {\n opacity: 0;\n}\n\n.opacity-100 {\n opacity: 1;\n}\n\n.opacity-25 {\n opacity: 0.25;\n}\n\n.opacity-30 {\n opacity: 0.3;\n}\n\n.opacity-50 {\n opacity: 0.5;\n}\n\n.opacity-75 {\n opacity: 0.75;\n}\n\n.outline-none {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n.ring-1 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n.ring-2 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n.ring-neutral-700\\/50 {\n --tw-ring-color: rgb(64 64 64 / 0.5);\n}\n\n.ring-transparent {\n --tw-ring-color: transparent;\n}\n\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.duration-100 {\n transition-duration: 100ms;\n}\n\n.duration-300 {\n transition-duration: 300ms;\n}\n\n.ease-linear {\n transition-timing-function: linear;\n}\n\n@keyframes enter {\n\n from {\n opacity: var(--tw-enter-opacity, 1);\n transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\n }\n}\n\n@keyframes exit {\n\n to {\n opacity: var(--tw-exit-opacity, 1);\n transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\n }\n}\n\n.animate-in {\n animation-name: enter;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n}\n\n.animate-out {\n animation-name: exit;\n animation-duration: 150ms;\n --tw-exit-opacity: initial;\n --tw-exit-scale: initial;\n --tw-exit-rotate: initial;\n --tw-exit-translate-x: initial;\n --tw-exit-translate-y: initial;\n}\n\n.fade-in {\n --tw-enter-opacity: 0;\n}\n\n.fade-out {\n --tw-exit-opacity: 0;\n}\n\n.slide-in-from-bottom-16 {\n --tw-enter-translate-y: 4rem;\n}\n\n.slide-in-from-bottom-2 {\n --tw-enter-translate-y: 0.5rem;\n}\n\n.slide-in-from-bottom-8 {\n --tw-enter-translate-y: 2rem;\n}\n\n.slide-in-from-top-2 {\n --tw-enter-translate-y: -0.5rem;\n}\n\n.animate-duration-300 {\n animation-duration: 300ms;\n}\n\n.ease-linear {\n animation-timing-function: linear;\n}\n\n@property --tw-border-gradient-angle {\n syntax: \'<angle>\';\n inherits: true;\n initial-value: 0deg;\n}\n\n@property --tw-conic-gradient-angle {\n syntax: \'<angle>\';\n inherits: true;\n initial-value: 0deg;\n}\n\n@keyframes border-gradient {\n\n to {\n --tw-border-gradient-angle: 360deg;\n }\n}\n\n.placeholder\\:text-neutral-500::placeholder {\n --tw-text-opacity: 1;\n color: rgb(115 115 115 / var(--tw-text-opacity));\n}\n\n.after\\:select-none::after {\n content: var(--tw-content);\n -webkit-user-select: none;\n user-select: none;\n}\n\n.after\\:content-\\[\\\'\\2026\\\'\\]::after {\n --tw-content: \'\u2026\';\n content: var(--tw-content);\n}\n\n.focus-within\\:border-transparent:focus-within {\n border-color: transparent;\n}\n\n.focus-within\\:ring-orange-500:focus-within {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(249 115 22 / var(--tw-ring-opacity));\n}\n\n.hover\\:bg-blue-500:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(59 130 246 / var(--tw-bg-opacity));\n}\n\n.hover\\:bg-neutral-200:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(229 229 229 / var(--tw-bg-opacity));\n}\n\n.hover\\:bg-orange-400:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(251 146 60 / var(--tw-bg-opacity));\n}\n\n.hover\\:text-white:hover {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n\n.hover\\:text-white\\/40:hover {\n color: rgb(255 255 255 / 0.4);\n}\n\n.hover\\:text-white\\/80:hover {\n color: rgb(255 255 255 / 0.8);\n}\n\n.hover\\:decoration-orange-500:hover {\n text-decoration-color: #f97316;\n}\n\n.hover\\:brightness-125:hover {\n --tw-brightness: brightness(1.25);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.focus\\:border-orange-500:focus {\n --tw-border-opacity: 1;\n border-color: rgb(249 115 22 / var(--tw-border-opacity));\n}\n\n.focus\\:border-yellow-400:focus {\n --tw-border-opacity: 1;\n border-color: rgb(250 204 21 / var(--tw-border-opacity));\n}\n\n.focus\\:bg-neutral-700:focus {\n --tw-bg-opacity: 1;\n background-color: rgb(64 64 64 / var(--tw-bg-opacity));\n}\n\n.active\\:bg-orange-600:active {\n --tw-bg-opacity: 1;\n background-color: rgb(234 88 12 / var(--tw-bg-opacity));\n}\n\n.active\\:brightness-150:active {\n --tw-brightness: brightness(1.5);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.group:hover .group-hover\\:pointer-events-none {\n pointer-events: none;\n}\n\n.group:hover .group-hover\\:pointer-events-auto {\n pointer-events: auto;\n}\n\n.group:hover .group-hover\\:inline-block {\n display: inline-block;\n}\n\n.group:hover .group-hover\\:hidden {\n display: none;\n}\n\n.group:hover .group-hover\\:rotate-90 {\n --tw-rotate: 90deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.group:hover .group-hover\\:opacity-0 {\n opacity: 0;\n}\n\n.group:hover .group-hover\\:opacity-100 {\n opacity: 1;\n}\n\n.peer:placeholder-shown ~ .peer-placeholder-shown\\:text-neutral-500 {\n --tw-text-opacity: 1;\n color: rgb(115 115 115 / var(--tw-text-opacity));\n}\n\n.aria-busy\\:pointer-events-none[aria-busy="true"] {\n pointer-events: none;\n}\n\n.aria-busy\\:bg-blue-500[aria-busy="true"] {\n --tw-bg-opacity: 1;\n background-color: rgb(59 130 246 / var(--tw-bg-opacity));\n}\n\n.aria-disabled\\:pointer-events-none[aria-disabled="true"] {\n pointer-events: none;\n}\n\n.aria-disabled\\:opacity-50[aria-disabled="true"] {\n opacity: 0.5;\n}\n\n.group[aria-busy="true"] .group-aria-busy\\:inline {\n display: inline;\n}\n\n.group[aria-busy="true"] .group-aria-busy\\:hidden {\n display: none;\n}\n\n.group\\/button[aria-busy="true"] .group-aria-busy\\/button\\:translate-x-0 {\n --tw-translate-x: 0px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.group[aria-busy="true"] .group-aria-busy\\:scale-100 {\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.group[aria-busy="true"] .group-aria-busy\\:scale-125 {\n --tw-scale-x: 1.25;\n --tw-scale-y: 1.25;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.group\\/button[aria-busy="true"] .group-aria-busy\\/button\\:opacity-100 {\n opacity: 1;\n}\n\n.group[aria-busy="true"] .group-aria-busy\\:opacity-0 {\n opacity: 0;\n}\n\n.group[aria-busy="true"] .group-aria-busy\\:opacity-100 {\n opacity: 1;\n}\n\n.group\\/button[aria-busy="true"] .group-aria-busy\\/button\\:duration-300 {\n transition-duration: 300ms;\n}\n\n.group[aria-expanded="true"] .group-aria-expanded\\:inline {\n display: inline;\n}\n\n.group[aria-expanded="true"] .group-aria-expanded\\:hidden {\n display: none;\n}\n\n.data-\\[highlighted\\]\\:bg-neutral-200[data-highlighted] {\n --tw-bg-opacity: 1;\n background-color: rgb(229 229 229 / var(--tw-bg-opacity));\n}\n\n.data-\\[state\\=checked\\]\\:bg-neutral-900[data-state="checked"] {\n --tw-bg-opacity: 1;\n background-color: rgb(23 23 23 / var(--tw-bg-opacity));\n}\n\n.links\\:font-medium a[href]:not(.links-unset) {\n font-weight: 500;\n}\n\n.links\\:text-white a[href]:not(.links-unset) {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n\n.links\\:underline a[href]:not(.links-unset) {\n text-decoration-line: underline;\n}\n\n.links\\:decoration-neutral-500 a[href]:not(.links-unset) {\n text-decoration-color: #737373;\n}\n\n.links\\:underline-offset-4 a[href]:not(.links-unset) {\n text-underline-offset: 4px;\n}\n\n.hover\\:links\\:decoration-orange-500 a[href]:not(.links-unset):hover {\n text-decoration-color: #f97316;\n}\n\n@media (min-width: 640px) {\n\n .sm\\:items-center {\n align-items: center;\n }\n}\n\n.dark\\:border-neutral-700:where([data-theme="dark"], [data-theme="dark"] *) {\n --tw-border-opacity: 1;\n border-color: rgb(64 64 64 / var(--tw-border-opacity));\n}\n\n.dark\\:bg-neutral-800:where([data-theme="dark"], [data-theme="dark"] *) {\n --tw-bg-opacity: 1;\n background-color: rgb(38 38 38 / var(--tw-bg-opacity));\n}\n\n.dark\\:bg-white\\/10:where([data-theme="dark"], [data-theme="dark"] *) {\n background-color: rgb(255 255 255 / 0.1);\n}\n\n.dark\\:text-white:where([data-theme="dark"], [data-theme="dark"] *) {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n\n.dark\\:hover\\:bg-neutral-700:hover:where([data-theme="dark"], [data-theme="dark"] *) {\n --tw-bg-opacity: 1;\n background-color: rgb(64 64 64 / var(--tw-bg-opacity));\n}\n\n.\\[\\&_\\>_\\:is\\(dt\\2c dd\\)\\]\\:px-1 > :is(dt,dd) {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n\n.\\[\\&_\\>_dd\\]\\:text-right > dd {\n text-align: right;\n}\n';
|
|
26
26
|
|
|
27
27
|
// src/ui/Shadow.tsx
|
|
28
28
|
import { useResizeObserver } from "usehooks-ts";
|
|
@@ -141,7 +141,7 @@ var debug2 = debug.extend("quarry");
|
|
|
141
141
|
import { setBalance } from "viem/actions";
|
|
142
142
|
function userOpExecutor({
|
|
143
143
|
executor,
|
|
144
|
-
|
|
144
|
+
fallbackDefaultTransport
|
|
145
145
|
}) {
|
|
146
146
|
return (opts) => {
|
|
147
147
|
debug2("using a local user op executor", executor.account.address);
|
|
@@ -179,7 +179,7 @@ function userOpExecutor({
|
|
|
179
179
|
return await estimateUserOperationGas(params);
|
|
180
180
|
}
|
|
181
181
|
debug2(`userOpExecutor: method "${method}" not overridden, falling back to fallback transport`);
|
|
182
|
-
const { request: fallbackRequest } =
|
|
182
|
+
const { request: fallbackRequest } = fallbackDefaultTransport(opts);
|
|
183
183
|
return fallbackRequest({ method, params });
|
|
184
184
|
};
|
|
185
185
|
return createTransport({
|
|
@@ -194,24 +194,10 @@ function userOpExecutor({
|
|
|
194
194
|
// src/getBundlerTransport.ts
|
|
195
195
|
import { wiresaw } from "@latticexyz/common/internal";
|
|
196
196
|
function getBundlerTransport(chain) {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
const wiresawWebSocketUrl = chain.rpcUrls.wiresaw?.webSocket?.[0];
|
|
200
|
-
if (wiresawWebSocketUrl) {
|
|
201
|
-
return wiresaw({
|
|
202
|
-
wiresaw: webSocket(wiresawWebSocketUrl),
|
|
203
|
-
fallbackBundler: http(bundlerHttpUrl),
|
|
204
|
-
fallbackEth: http(ethRpcUrl)
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
const wiresawHttpUrl = chain.rpcUrls.wiresaw?.http[0];
|
|
208
|
-
if (wiresawHttpUrl) {
|
|
209
|
-
return wiresaw({
|
|
210
|
-
wiresaw: http(wiresawHttpUrl),
|
|
211
|
-
fallbackBundler: http(bundlerHttpUrl),
|
|
212
|
-
fallbackEth: http(ethRpcUrl)
|
|
213
|
-
});
|
|
197
|
+
if ("wiresaw" in chain.rpcUrls) {
|
|
198
|
+
return wiresaw();
|
|
214
199
|
}
|
|
200
|
+
const bundlerHttpUrl = chain.rpcUrls.bundler?.http[0];
|
|
215
201
|
if (bundlerHttpUrl) {
|
|
216
202
|
return http(bundlerHttpUrl);
|
|
217
203
|
}
|
|
@@ -223,7 +209,7 @@ function getBundlerTransport(chain) {
|
|
|
223
209
|
account: privateKeyToAccount(keccak256(stringToHex("local user op executor"))),
|
|
224
210
|
pollingInterval: 10
|
|
225
211
|
}).extend(transactionQueue()),
|
|
226
|
-
|
|
212
|
+
fallbackDefaultTransport: http()
|
|
227
213
|
});
|
|
228
214
|
}
|
|
229
215
|
throw new Error(`Chain ${chain.id} config did not include a bundler RPC URL.`);
|
|
@@ -1193,8 +1179,12 @@ function EthIcon({ className, ...props }) {
|
|
|
1193
1179
|
import { formatEther } from "viem";
|
|
1194
1180
|
function formatBalance(wei) {
|
|
1195
1181
|
const formatted = formatEther(wei);
|
|
1196
|
-
const
|
|
1197
|
-
|
|
1182
|
+
const parsed = parseFloat(formatted);
|
|
1183
|
+
if (parsed > 0 && parsed < 1e-5) {
|
|
1184
|
+
return "<0.00001";
|
|
1185
|
+
}
|
|
1186
|
+
const magnitude = Math.floor(parsed).toString().length;
|
|
1187
|
+
return parsed.toLocaleString("en-US", { maximumFractionDigits: Math.max(0, 6 - magnitude) });
|
|
1198
1188
|
}
|
|
1199
1189
|
|
|
1200
1190
|
// src/ui/Balance.tsx
|
|
@@ -2110,17 +2100,17 @@ import { useChains as useChains4, useChainId } from "wagmi";
|
|
|
2110
2100
|
// src/onboarding/deposit/DepositViaTransferForm.tsx
|
|
2111
2101
|
import { useAccount as useAccount4, useWriteContract, usePrepareTransactionRequest, usePublicClient } from "wagmi";
|
|
2112
2102
|
import { encodeFunctionData as encodeFunctionData2 } from "viem";
|
|
2113
|
-
import { useMutation as useMutation4, useQuery as
|
|
2103
|
+
import { useMutation as useMutation4, useQuery as useQuery12 } from "@tanstack/react-query";
|
|
2114
2104
|
|
|
2115
2105
|
// src/onboarding/deposit/DepositForm.tsx
|
|
2116
2106
|
import { useEffect as useEffect11, useRef as useRef4 } from "react";
|
|
2117
|
-
import { useAccount as useAccount3, useBalance as
|
|
2107
|
+
import { useAccount as useAccount3, useBalance as useBalance4, useWatchBlockNumber as useWatchBlockNumber2 } from "wagmi";
|
|
2118
2108
|
import { useIsMounted } from "usehooks-ts";
|
|
2119
2109
|
import { twMerge as twMerge15 } from "tailwind-merge";
|
|
2120
2110
|
|
|
2121
2111
|
// src/onboarding/deposit/ChainSelect.tsx
|
|
2122
2112
|
import { useEffect as useEffect10, useMemo as useMemo2 } from "react";
|
|
2123
|
-
import {
|
|
2113
|
+
import { useSwitchChain } from "wagmi";
|
|
2124
2114
|
import { twMerge as twMerge12 } from "tailwind-merge";
|
|
2125
2115
|
import * as Select from "@radix-ui/react-select";
|
|
2126
2116
|
|
|
@@ -2193,37 +2183,29 @@ function Input({ asChild, className, ...props }) {
|
|
|
2193
2183
|
);
|
|
2194
2184
|
}
|
|
2195
2185
|
|
|
2196
|
-
// src/onboarding/deposit/ChainBalance.tsx
|
|
2197
|
-
import { useBalance as useBalance3 } from "wagmi";
|
|
2198
|
-
import { Fragment as Fragment2, jsx as jsx23 } from "react/jsx-runtime";
|
|
2199
|
-
function ChainBalance({ chainId, address }) {
|
|
2200
|
-
const balance = useBalance3({ chainId, address });
|
|
2201
|
-
return /* @__PURE__ */ jsx23(Fragment2, { children: balance.data ? /* @__PURE__ */ jsx23(Balance, { wei: balance.data.value }) : /* @__PURE__ */ jsx23(PendingIcon, {}) });
|
|
2202
|
-
}
|
|
2203
|
-
|
|
2204
2186
|
// src/onboarding/deposit/ChainIcon.tsx
|
|
2205
2187
|
import { twMerge as twMerge11 } from "tailwind-merge";
|
|
2206
2188
|
|
|
2207
2189
|
// src/onboarding/deposit/PreloadedImage.tsx
|
|
2208
2190
|
import { twMerge as twMerge10 } from "tailwind-merge";
|
|
2209
|
-
import { jsx as
|
|
2191
|
+
import { jsx as jsx23 } from "react/jsx-runtime";
|
|
2210
2192
|
function PreloadedImage({ url, fallback: fallback2, className }) {
|
|
2211
2193
|
const { isSuccess, isLoading } = usePreloadImage(url);
|
|
2212
|
-
return /* @__PURE__ */
|
|
2194
|
+
return /* @__PURE__ */ jsx23("span", { className: twMerge10("inline-flex w-full h-full items-center justify-center overflow-clip", className), children: !isLoading ? isSuccess ? /* @__PURE__ */ jsx23("img", { src: url, className: "w-full h-full object-cover" }) : fallback2 : null });
|
|
2213
2195
|
}
|
|
2214
2196
|
|
|
2215
2197
|
// src/onboarding/deposit/ChainIcon.tsx
|
|
2216
2198
|
import { forwardRef as forwardRef2 } from "react";
|
|
2217
|
-
import { jsx as
|
|
2199
|
+
import { jsx as jsx24 } from "react/jsx-runtime";
|
|
2218
2200
|
var ChainIcon = forwardRef2(function ChainIcon2({ name, url, className }, forwardedRef) {
|
|
2219
|
-
return /* @__PURE__ */
|
|
2201
|
+
return /* @__PURE__ */ jsx24(
|
|
2220
2202
|
"span",
|
|
2221
2203
|
{
|
|
2222
2204
|
ref: forwardedRef,
|
|
2223
2205
|
className: twMerge11("flex-shrink-0 inline-flex w-6 aspect-square rounded-full overflow-clip", className),
|
|
2224
|
-
children: url ? /* @__PURE__ */
|
|
2206
|
+
children: url ? /* @__PURE__ */ jsx24(PreloadedImage, { url }) : (
|
|
2225
2207
|
// TODO: better placeholder
|
|
2226
|
-
/* @__PURE__ */
|
|
2208
|
+
/* @__PURE__ */ jsx24(
|
|
2227
2209
|
"span",
|
|
2228
2210
|
{
|
|
2229
2211
|
className: twMerge11(
|
|
@@ -2272,12 +2254,36 @@ function useRelay() {
|
|
|
2272
2254
|
});
|
|
2273
2255
|
}
|
|
2274
2256
|
|
|
2257
|
+
// src/onboarding/deposit/useChainBalances.ts
|
|
2258
|
+
import { useAccount, useConfig as useWagmiConfig } from "wagmi";
|
|
2259
|
+
import { getBalance as getBalance2 } from "wagmi/actions";
|
|
2260
|
+
import { useQuery as useQuery11, skipToken as skipToken8 } from "@tanstack/react-query";
|
|
2261
|
+
import { isNotNull } from "@latticexyz/common/utils";
|
|
2262
|
+
function useChainBalances({ chains }) {
|
|
2263
|
+
const { address: userAddress } = useAccount();
|
|
2264
|
+
const wagmiConfig = useWagmiConfig();
|
|
2265
|
+
const chainIds = chains.map((chain) => chain.id);
|
|
2266
|
+
return useQuery11({
|
|
2267
|
+
queryKey: ["chainBalances", chainIds, userAddress],
|
|
2268
|
+
queryFn: userAddress ? async () => {
|
|
2269
|
+
const chainBalances = await Promise.allSettled(
|
|
2270
|
+
chains.map(async (chain) => {
|
|
2271
|
+
const balance = await getBalance2(wagmiConfig, { chainId: chain.id, address: userAddress });
|
|
2272
|
+
return { chain, balance };
|
|
2273
|
+
})
|
|
2274
|
+
);
|
|
2275
|
+
return chainBalances.map((result) => result.status === "fulfilled" ? result.value : null).filter(isNotNull);
|
|
2276
|
+
} : skipToken8,
|
|
2277
|
+
refetchInterval: 1e3 * 60,
|
|
2278
|
+
retry: 1
|
|
2279
|
+
});
|
|
2280
|
+
}
|
|
2281
|
+
|
|
2275
2282
|
// src/onboarding/deposit/ChainSelect.tsx
|
|
2276
|
-
import { Fragment as
|
|
2283
|
+
import { Fragment as Fragment2, jsx as jsx25, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
2277
2284
|
function ChainSelect({ value, onChange }) {
|
|
2278
2285
|
const theme = useTheme();
|
|
2279
2286
|
const { frame } = useFrame();
|
|
2280
|
-
const userAccount = useAccount();
|
|
2281
2287
|
const { chains, switchChain } = useSwitchChain();
|
|
2282
2288
|
const relay = useRelay();
|
|
2283
2289
|
const relayChains = relay.data?.chains;
|
|
@@ -2291,27 +2297,33 @@ function ChainSelect({ value, onChange }) {
|
|
|
2291
2297
|
}).filter((c) => c.relayChain);
|
|
2292
2298
|
}, [chains, relayChains]);
|
|
2293
2299
|
const selectedChain = sourceChains.find((c) => c.id === value);
|
|
2300
|
+
const { data: chainsBalances, isLoading } = useShowQueryError(useChainBalances({ chains: sourceChains }));
|
|
2301
|
+
const renderedChains = useMemo2(() => {
|
|
2302
|
+
if (!chainsBalances) return [];
|
|
2303
|
+
const chainsWithBalance = chainsBalances.filter(({ balance }) => balance.value > 0n).map(({ chain, balance }) => ({ chain, balance: balance.value }));
|
|
2304
|
+
return chainsWithBalance.length > 0 ? chainsWithBalance : sourceChains.map((chain) => ({ chain, balance: 0n }));
|
|
2305
|
+
}, [chainsBalances, sourceChains]);
|
|
2294
2306
|
useEffect10(() => {
|
|
2295
|
-
if (
|
|
2296
|
-
const defaultChain =
|
|
2307
|
+
if (renderedChains.length > 0 && (!selectedChain || !renderedChains.find((c) => c.chain.id === selectedChain?.id))) {
|
|
2308
|
+
const defaultChain = renderedChains[0].chain;
|
|
2297
2309
|
onChange(defaultChain.id);
|
|
2298
2310
|
switchChain({ chainId: defaultChain.id });
|
|
2299
2311
|
}
|
|
2300
|
-
}, [value, selectedChain,
|
|
2312
|
+
}, [value, selectedChain, renderedChains, onChange, switchChain]);
|
|
2301
2313
|
return /* @__PURE__ */ jsxs15(
|
|
2302
2314
|
Select.Root,
|
|
2303
2315
|
{
|
|
2304
2316
|
value: value.toString(),
|
|
2305
2317
|
onValueChange: (value2) => {
|
|
2306
2318
|
if (value2) {
|
|
2307
|
-
const chain =
|
|
2319
|
+
const chain = renderedChains.find((item) => item.chain.id.toString() === value2)?.chain;
|
|
2308
2320
|
if (!chain) throw new Error(`Unknown chain selected: ${value2}`);
|
|
2309
2321
|
onChange(chain.id);
|
|
2310
2322
|
}
|
|
2311
2323
|
},
|
|
2312
2324
|
children: [
|
|
2313
|
-
/* @__PURE__ */
|
|
2314
|
-
/* @__PURE__ */
|
|
2325
|
+
/* @__PURE__ */ jsx25(Input, { asChild: true, children: /* @__PURE__ */ jsxs15(Select.Trigger, { className: "group inline-flex items-center justify-center", children: [
|
|
2326
|
+
/* @__PURE__ */ jsx25(Select.Value, { asChild: true, children: /* @__PURE__ */ jsx25(
|
|
2315
2327
|
ChainIcon,
|
|
2316
2328
|
{
|
|
2317
2329
|
id: selectedChain?.id,
|
|
@@ -2320,40 +2332,45 @@ function ChainSelect({ value, onChange }) {
|
|
|
2320
2332
|
className: "w-8"
|
|
2321
2333
|
}
|
|
2322
2334
|
) }),
|
|
2323
|
-
/* @__PURE__ */
|
|
2324
|
-
/* @__PURE__ */
|
|
2325
|
-
/* @__PURE__ */
|
|
2335
|
+
/* @__PURE__ */ jsx25(Select.Icon, { asChild: true, children: /* @__PURE__ */ jsxs15(Fragment2, { children: [
|
|
2336
|
+
/* @__PURE__ */ jsx25(ChevronDownIcon, { className: "text-sm -mr-1 group-aria-expanded:hidden" }),
|
|
2337
|
+
/* @__PURE__ */ jsx25(ChevronUpIcon, { className: "text-sm -mr-1 hidden group-aria-expanded:inline" })
|
|
2326
2338
|
] }) })
|
|
2327
2339
|
] }) }),
|
|
2328
|
-
frame.contentDocument ? /* @__PURE__ */
|
|
2329
|
-
Select.
|
|
2340
|
+
frame.contentDocument ? /* @__PURE__ */ jsx25(Select.Portal, { container: frame.contentDocument.body, children: /* @__PURE__ */ jsx25(
|
|
2341
|
+
Select.Content,
|
|
2330
2342
|
{
|
|
2331
|
-
|
|
2332
|
-
|
|
2333
|
-
|
|
2334
|
-
|
|
2335
|
-
|
|
2336
|
-
|
|
2337
|
-
|
|
2338
|
-
|
|
2339
|
-
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
|
|
2343
|
-
|
|
2344
|
-
|
|
2345
|
-
|
|
2346
|
-
|
|
2347
|
-
|
|
2348
|
-
|
|
2349
|
-
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
|
|
2353
|
-
|
|
2354
|
-
|
|
2343
|
+
position: "popper",
|
|
2344
|
+
className: "w-[352px] max-h-[230px] overflow-y-auto mt-1 animate-in fade-in slide-in-from-top-2",
|
|
2345
|
+
children: /* @__PURE__ */ jsx25(Select.Viewport, { children: /* @__PURE__ */ jsx25(
|
|
2346
|
+
Select.Group,
|
|
2347
|
+
{
|
|
2348
|
+
className: twMerge12(
|
|
2349
|
+
"flex flex-col border divide-y",
|
|
2350
|
+
"bg-neutral-800 text-neutral-300 border-neutral-700 divide-neutral-700"
|
|
2351
|
+
),
|
|
2352
|
+
children: isLoading ? /* @__PURE__ */ jsx25("div", { className: "flex items-center justify-center p-4", children: /* @__PURE__ */ jsx25(PendingIcon, { className: "h-6 w-6 animate-spin text-gray-400" }) }) : renderedChains.map(({ chain, balance }) => {
|
|
2353
|
+
return /* @__PURE__ */ jsxs15(
|
|
2354
|
+
Select.Item,
|
|
2355
|
+
{
|
|
2356
|
+
value: chain.id.toString(),
|
|
2357
|
+
className: twMerge12(
|
|
2358
|
+
"group flex p-2.5 gap-2.5 items-center cursor-pointer outline-none",
|
|
2359
|
+
"text-white focus:bg-neutral-700 data-[state=checked]:bg-neutral-900"
|
|
2360
|
+
),
|
|
2361
|
+
children: [
|
|
2362
|
+
/* @__PURE__ */ jsx25(ChainIcon, { id: chain.id, name: chain.name, url: chain.relayChain?.icon?.[theme] }),
|
|
2363
|
+
/* @__PURE__ */ jsx25("span", { className: "flex-grow flex-shrink-0", children: chain.name }),
|
|
2364
|
+
/* @__PURE__ */ jsx25("span", { className: "flex-shrink-0 font-mono text-sm text-neutral-400", children: /* @__PURE__ */ jsx25(Balance, { wei: balance }) })
|
|
2365
|
+
]
|
|
2366
|
+
},
|
|
2367
|
+
chain.id
|
|
2368
|
+
);
|
|
2369
|
+
})
|
|
2370
|
+
}
|
|
2371
|
+
) })
|
|
2355
2372
|
}
|
|
2356
|
-
) })
|
|
2373
|
+
) }) : null
|
|
2357
2374
|
]
|
|
2358
2375
|
}
|
|
2359
2376
|
);
|
|
@@ -2363,10 +2380,10 @@ function ChainSelect({ value, onChange }) {
|
|
|
2363
2380
|
import { formatEther as formatEther3, parseEther as parseEther5 } from "viem";
|
|
2364
2381
|
import { twMerge as twMerge13 } from "tailwind-merge";
|
|
2365
2382
|
import { forwardRef as forwardRef3 } from "react";
|
|
2366
|
-
import { jsx as
|
|
2383
|
+
import { jsx as jsx26, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
2367
2384
|
var AmountInput = forwardRef3(function AmountInput2({ initialAmount, onChange }, forwardedRef) {
|
|
2368
|
-
return /* @__PURE__ */
|
|
2369
|
-
/* @__PURE__ */
|
|
2385
|
+
return /* @__PURE__ */ jsx26(Input, { asChild: true, className: "w-full cursor-text flex items-center", children: /* @__PURE__ */ jsxs16("label", { children: [
|
|
2386
|
+
/* @__PURE__ */ jsx26(
|
|
2370
2387
|
"input",
|
|
2371
2388
|
{
|
|
2372
2389
|
ref: forwardedRef,
|
|
@@ -2391,23 +2408,23 @@ var AmountInput = forwardRef3(function AmountInput2({ initialAmount, onChange },
|
|
|
2391
2408
|
}
|
|
2392
2409
|
}
|
|
2393
2410
|
),
|
|
2394
|
-
/* @__PURE__ */
|
|
2411
|
+
/* @__PURE__ */ jsx26("span", { className: twMerge13("flex-shrink-0 text-2xl", "peer-placeholder-shown:text-neutral-500"), children: /* @__PURE__ */ jsx26(EthIcon, {}) })
|
|
2395
2412
|
] }) });
|
|
2396
2413
|
});
|
|
2397
2414
|
|
|
2398
2415
|
// src/onboarding/deposit/SubmitButton.tsx
|
|
2399
|
-
import { useAccount as useAccount2, useBalance as
|
|
2416
|
+
import { useAccount as useAccount2, useBalance as useBalance3, useSwitchChain as useSwitchChain2 } from "wagmi";
|
|
2400
2417
|
import { twMerge as twMerge14 } from "tailwind-merge";
|
|
2401
2418
|
import { parseEther as parseEther6 } from "viem";
|
|
2402
|
-
import { jsx as
|
|
2419
|
+
import { jsx as jsx27, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
2403
2420
|
var MAX_DEPOSIT_AMOUNT = "0.1";
|
|
2404
2421
|
function SubmitButton({ amount, chainId, className, ...buttonProps }) {
|
|
2405
2422
|
const { chainId: userChainId, address: userAddress } = useAccount2();
|
|
2406
|
-
const { data: userBalance } =
|
|
2423
|
+
const { data: userBalance } = useBalance3({ address: userAddress });
|
|
2407
2424
|
const shouldSwitchChain = chainId != null && chainId !== userChainId;
|
|
2408
2425
|
const switchChain = useSwitchChain2();
|
|
2409
2426
|
if (shouldSwitchChain) {
|
|
2410
|
-
return /* @__PURE__ */
|
|
2427
|
+
return /* @__PURE__ */ jsx27(
|
|
2411
2428
|
Button,
|
|
2412
2429
|
{
|
|
2413
2430
|
type: "button",
|
|
@@ -2426,16 +2443,16 @@ function SubmitButton({ amount, chainId, className, ...buttonProps }) {
|
|
|
2426
2443
|
" ETH"
|
|
2427
2444
|
] });
|
|
2428
2445
|
} else if (amount > (userBalance?.value ?? 0n)) {
|
|
2429
|
-
return /* @__PURE__ */
|
|
2446
|
+
return /* @__PURE__ */ jsx27(Button, { type: "button", className: twMerge14("w-full", className), disabled: true, children: "Insufficient balance" });
|
|
2430
2447
|
}
|
|
2431
2448
|
}
|
|
2432
|
-
return /* @__PURE__ */
|
|
2449
|
+
return /* @__PURE__ */ jsx27(Button, { type: "submit", className: twMerge14("w-full", className), ...buttonProps });
|
|
2433
2450
|
}
|
|
2434
2451
|
|
|
2435
2452
|
// src/icons/WarningIcon.tsx
|
|
2436
|
-
import { jsx as
|
|
2453
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
2437
2454
|
function WarningIcon(props) {
|
|
2438
|
-
return /* @__PURE__ */
|
|
2455
|
+
return /* @__PURE__ */ jsx28(IconSVG, { fill: "none", ...props, children: /* @__PURE__ */ jsx28(
|
|
2439
2456
|
"path",
|
|
2440
2457
|
{
|
|
2441
2458
|
d: "M12 9V11M12 15H12.01M5.07183 19H18.9282C20.4678 19 21.4301 17.3333 20.6603 16L13.7321 4C12.9623 2.66667 11.0378 2.66667 10.268 4L3.33978 16C2.56998 17.3333 3.53223 19 5.07183 19Z",
|
|
@@ -2456,7 +2473,7 @@ function formatGas(wei) {
|
|
|
2456
2473
|
}
|
|
2457
2474
|
|
|
2458
2475
|
// src/onboarding/deposit/DepositForm.tsx
|
|
2459
|
-
import { Fragment as
|
|
2476
|
+
import { Fragment as Fragment3, jsx as jsx29, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
2460
2477
|
function DepositForm({
|
|
2461
2478
|
sourceChain,
|
|
2462
2479
|
setSourceChainId,
|
|
@@ -2470,7 +2487,7 @@ function DepositForm({
|
|
|
2470
2487
|
const amountInputRef = useRef4(null);
|
|
2471
2488
|
const isMounted = useIsMounted();
|
|
2472
2489
|
const { address: userAddress, chainId: userChainId } = useAccount3();
|
|
2473
|
-
const balance = useShowQueryError(
|
|
2490
|
+
const balance = useShowQueryError(useBalance4({ chainId: sourceChain.id, address: userAddress }));
|
|
2474
2491
|
const quarryBalance = useShowQueryError(useBalance(userAddress));
|
|
2475
2492
|
useWatchBlockNumber2({
|
|
2476
2493
|
onBlockNumber: () => {
|
|
@@ -2505,8 +2522,8 @@ function DepositForm({
|
|
|
2505
2522
|
},
|
|
2506
2523
|
children: [
|
|
2507
2524
|
/* @__PURE__ */ jsxs18("div", { className: "flex gap-2", children: [
|
|
2508
|
-
/* @__PURE__ */
|
|
2509
|
-
/* @__PURE__ */
|
|
2525
|
+
/* @__PURE__ */ jsx29(ChainSelect, { value: sourceChain.id, onChange: setSourceChainId }),
|
|
2526
|
+
/* @__PURE__ */ jsx29(AmountInput, { ref: amountInputRef, initialAmount: amount, onChange: setAmount })
|
|
2510
2527
|
] }),
|
|
2511
2528
|
/* @__PURE__ */ jsxs18(
|
|
2512
2529
|
"dl",
|
|
@@ -2516,21 +2533,21 @@ function DepositForm({
|
|
|
2516
2533
|
"divide-neutral-700 text-neutral-400"
|
|
2517
2534
|
),
|
|
2518
2535
|
children: [
|
|
2519
|
-
/* @__PURE__ */
|
|
2520
|
-
/* @__PURE__ */
|
|
2521
|
-
/* @__PURE__ */
|
|
2522
|
-
/* @__PURE__ */
|
|
2523
|
-
/* @__PURE__ */
|
|
2524
|
-
/* @__PURE__ */
|
|
2536
|
+
/* @__PURE__ */ jsx29("dt", { children: "Available to deposit" }),
|
|
2537
|
+
/* @__PURE__ */ jsx29("dd", { children: balance.isSuccess ? /* @__PURE__ */ jsx29(Balance, { wei: balance.data.value }) : balance.isError ? /* @__PURE__ */ jsx29("span", { title: String(balance.error), children: /* @__PURE__ */ jsx29(WarningIcon, { className: "inline-block text-amber-500" }) }) : balance.isLoading ? /* @__PURE__ */ jsx29(PendingIcon, { className: "inline-block text-xs" }) : null }),
|
|
2538
|
+
/* @__PURE__ */ jsx29("dt", { children: "Gas balance after deposit" }),
|
|
2539
|
+
/* @__PURE__ */ jsx29("dd", { children: /* @__PURE__ */ jsx29(Balance, { wei: (quarryBalance.data ?? 0n) + (amount ?? 0n) }) }),
|
|
2540
|
+
/* @__PURE__ */ jsx29("dt", { children: "Estimated fee" }),
|
|
2541
|
+
/* @__PURE__ */ jsx29("dd", { children: estimatedFee.fee ? /* @__PURE__ */ jsxs18(Fragment3, { children: [
|
|
2525
2542
|
formatGas(estimatedFee.fee),
|
|
2526
2543
|
" gwei"
|
|
2527
|
-
] }) : estimatedFee.error ? /* @__PURE__ */
|
|
2528
|
-
/* @__PURE__ */
|
|
2529
|
-
/* @__PURE__ */
|
|
2544
|
+
] }) : estimatedFee.error ? /* @__PURE__ */ jsx29("span", { title: String(estimatedFee.error), children: /* @__PURE__ */ jsx29(WarningIcon, { className: "inline-block text-amber-500" }) }) : estimatedFee.isLoading ? /* @__PURE__ */ jsx29(PendingIcon, { className: "inline-block text-xs" }) : null }),
|
|
2545
|
+
/* @__PURE__ */ jsx29("dt", { children: "Time to deposit" }),
|
|
2546
|
+
/* @__PURE__ */ jsx29("dd", { children: estimatedTime })
|
|
2530
2547
|
]
|
|
2531
2548
|
}
|
|
2532
2549
|
),
|
|
2533
|
-
hasMinimumBalance ? submitButton : /* @__PURE__ */
|
|
2550
|
+
hasMinimumBalance ? submitButton : /* @__PURE__ */ jsx29(SubmitButton, { disabled: true, children: "Not enough funds" })
|
|
2534
2551
|
]
|
|
2535
2552
|
}
|
|
2536
2553
|
);
|
|
@@ -2584,7 +2601,7 @@ function useDeposits() {
|
|
|
2584
2601
|
}
|
|
2585
2602
|
|
|
2586
2603
|
// src/onboarding/deposit/DepositViaTransferForm.tsx
|
|
2587
|
-
import { jsx as
|
|
2604
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
2588
2605
|
function DepositViaTransferForm({ amount, setAmount, sourceChain, setSourceChainId }) {
|
|
2589
2606
|
const { chain } = useEntryKitConfig();
|
|
2590
2607
|
const paymaster = getPaymaster(chain);
|
|
@@ -2595,7 +2612,7 @@ function DepositViaTransferForm({ amount, setAmount, sourceChain, setSourceChain
|
|
|
2595
2612
|
if (!userAddress) {
|
|
2596
2613
|
throw new Error("User address not found");
|
|
2597
2614
|
}
|
|
2598
|
-
const { data: gasPrice } =
|
|
2615
|
+
const { data: gasPrice } = useQuery12({
|
|
2599
2616
|
queryKey: ["gasPrice", sourceChain.id],
|
|
2600
2617
|
queryFn: async () => {
|
|
2601
2618
|
if (!publicClient) throw new Error("Public client not available");
|
|
@@ -2652,7 +2669,7 @@ function DepositViaTransferForm({ amount, setAmount, sourceChain, setSourceChain
|
|
|
2652
2669
|
}
|
|
2653
2670
|
});
|
|
2654
2671
|
const estimatedFee = prepareData?.gas && gasPrice ? prepareData.gas * gasPrice : void 0;
|
|
2655
|
-
return /* @__PURE__ */
|
|
2672
|
+
return /* @__PURE__ */ jsx30(
|
|
2656
2673
|
DepositForm,
|
|
2657
2674
|
{
|
|
2658
2675
|
sourceChain,
|
|
@@ -2668,7 +2685,7 @@ function DepositViaTransferForm({ amount, setAmount, sourceChain, setSourceChain
|
|
|
2668
2685
|
onSubmit: async () => {
|
|
2669
2686
|
await deposit.mutateAsync();
|
|
2670
2687
|
},
|
|
2671
|
-
submitButton: /* @__PURE__ */
|
|
2688
|
+
submitButton: /* @__PURE__ */ jsx30(
|
|
2672
2689
|
SubmitButton,
|
|
2673
2690
|
{
|
|
2674
2691
|
variant: "primary",
|
|
@@ -2686,8 +2703,8 @@ function DepositViaTransferForm({ amount, setAmount, sourceChain, setSourceChain
|
|
|
2686
2703
|
// src/onboarding/deposit/DepositViaRelayForm.tsx
|
|
2687
2704
|
import { encodeFunctionData as encodeFunctionData3 } from "viem";
|
|
2688
2705
|
import { useAccount as useAccount5, useWalletClient } from "wagmi";
|
|
2689
|
-
import { useMutation as useMutation5, useQuery as
|
|
2690
|
-
import { jsx as
|
|
2706
|
+
import { useMutation as useMutation5, useQuery as useQuery13 } from "@tanstack/react-query";
|
|
2707
|
+
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
2691
2708
|
var ETH_ADDRESS = "0x0000000000000000000000000000000000000000";
|
|
2692
2709
|
function DepositViaRelayForm({ amount, setAmount, sourceChain, setSourceChainId }) {
|
|
2693
2710
|
const { chain, chainId: destinationChainId } = useEntryKitConfig();
|
|
@@ -2697,7 +2714,7 @@ function DepositViaRelayForm({ amount, setAmount, sourceChain, setSourceChainId
|
|
|
2697
2714
|
const { addDeposit } = useDeposits();
|
|
2698
2715
|
const { data: relay } = useRelay();
|
|
2699
2716
|
const relayClient = relay?.client;
|
|
2700
|
-
const quote =
|
|
2717
|
+
const quote = useQuery13({
|
|
2701
2718
|
queryKey: ["relayBridgeQuote", sourceChain.id, amount?.toString()],
|
|
2702
2719
|
queryFn: async () => {
|
|
2703
2720
|
if (!relayClient) throw new Error("No Relay client found.");
|
|
@@ -2773,7 +2790,7 @@ function DepositViaRelayForm({ amount, setAmount, sourceChain, setSourceChainId
|
|
|
2773
2790
|
const gasFee = BigInt(fees?.gas?.amount ?? 0);
|
|
2774
2791
|
const relayerFee = BigInt(fees?.relayer?.amount ?? 0);
|
|
2775
2792
|
const fee = gasFee + relayerFee;
|
|
2776
|
-
return /* @__PURE__ */
|
|
2793
|
+
return /* @__PURE__ */ jsx31(
|
|
2777
2794
|
DepositForm,
|
|
2778
2795
|
{
|
|
2779
2796
|
sourceChain,
|
|
@@ -2790,7 +2807,7 @@ function DepositViaRelayForm({ amount, setAmount, sourceChain, setSourceChainId
|
|
|
2790
2807
|
if (!quote.data || !amount) return;
|
|
2791
2808
|
await deposit.mutateAsync({ quote: quote.data, amount });
|
|
2792
2809
|
},
|
|
2793
|
-
submitButton: /* @__PURE__ */
|
|
2810
|
+
submitButton: /* @__PURE__ */ jsx31(
|
|
2794
2811
|
SubmitButton,
|
|
2795
2812
|
{
|
|
2796
2813
|
variant: "primary",
|
|
@@ -2807,19 +2824,19 @@ function DepositViaRelayForm({ amount, setAmount, sourceChain, setSourceChainId
|
|
|
2807
2824
|
|
|
2808
2825
|
// src/onboarding/deposit/Deposits.tsx
|
|
2809
2826
|
import { useEffect as useEffect13 } from "react";
|
|
2810
|
-
import { useQuery as
|
|
2827
|
+
import { useQuery as useQuery16, useQueryClient as useQueryClient7 } from "@tanstack/react-query";
|
|
2811
2828
|
|
|
2812
2829
|
// src/onboarding/deposit/TransferDepositStatus.tsx
|
|
2813
|
-
import { useQuery as
|
|
2830
|
+
import { useQuery as useQuery14 } from "@tanstack/react-query";
|
|
2814
2831
|
|
|
2815
2832
|
// src/onboarding/deposit/DepositStatus.tsx
|
|
2816
2833
|
import { useEffect as useEffect12, useState as useState3 } from "react";
|
|
2817
2834
|
import { twMerge as twMerge16 } from "tailwind-merge";
|
|
2818
2835
|
|
|
2819
2836
|
// src/icons/CloseIcon.tsx
|
|
2820
|
-
import { jsx as
|
|
2837
|
+
import { jsx as jsx32 } from "react/jsx-runtime";
|
|
2821
2838
|
function CloseIcon(props) {
|
|
2822
|
-
return /* @__PURE__ */
|
|
2839
|
+
return /* @__PURE__ */ jsx32(IconSVG, { strokeWidth: "2", stroke: "currentColor", ...props, children: /* @__PURE__ */ jsx32(
|
|
2823
2840
|
"path",
|
|
2824
2841
|
{
|
|
2825
2842
|
d: "M6 18L18 6M6 6L18 18",
|
|
@@ -2833,7 +2850,7 @@ function CloseIcon(props) {
|
|
|
2833
2850
|
}
|
|
2834
2851
|
|
|
2835
2852
|
// src/onboarding/deposit/DepositStatus.tsx
|
|
2836
|
-
import { jsx as
|
|
2853
|
+
import { jsx as jsx33, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
2837
2854
|
function DepositStatus({ status, progress, children, onDismiss }) {
|
|
2838
2855
|
const [appear, setAppear] = useState3(false);
|
|
2839
2856
|
useEffect12(() => {
|
|
@@ -2841,10 +2858,10 @@ function DepositStatus({ status, progress, children, onDismiss }) {
|
|
|
2841
2858
|
}, []);
|
|
2842
2859
|
return /* @__PURE__ */ jsxs19("div", { className: "group bg-neutral-900 flex flex-col animate-in fade-in slide-in-from-bottom-2 animate-out fade-out", children: [
|
|
2843
2860
|
/* @__PURE__ */ jsxs19("div", { className: "py-1 text-sm flex items-center gap-2", children: [
|
|
2844
|
-
/* @__PURE__ */
|
|
2861
|
+
/* @__PURE__ */ jsx33("div", { className: "flex-grow", children }),
|
|
2845
2862
|
/* @__PURE__ */ jsxs19("div", { className: "flex-shrink-0 grid", children: [
|
|
2846
|
-
/* @__PURE__ */
|
|
2847
|
-
/* @__PURE__ */
|
|
2863
|
+
/* @__PURE__ */ jsx33("span", { className: "col-start-1 row-start-1 transition opacity-100 group-hover:opacity-0 group-hover:pointer-events-none", children: status === "success" ? /* @__PURE__ */ jsx33(CheckIcon, { className: "text-green-600" }) : status === "error" ? /* @__PURE__ */ jsx33(WarningIcon, { className: "text-amber-500" }) : /* @__PURE__ */ jsx33(PendingIcon, { className: "text-neutral-500 transition" }) }),
|
|
2864
|
+
/* @__PURE__ */ jsx33(
|
|
2848
2865
|
"button",
|
|
2849
2866
|
{
|
|
2850
2867
|
type: "button",
|
|
@@ -2856,12 +2873,12 @@ function DepositStatus({ status, progress, children, onDismiss }) {
|
|
|
2856
2873
|
),
|
|
2857
2874
|
title: "Dismiss",
|
|
2858
2875
|
onClick: onDismiss,
|
|
2859
|
-
children: /* @__PURE__ */
|
|
2876
|
+
children: /* @__PURE__ */ jsx33(CloseIcon, {})
|
|
2860
2877
|
}
|
|
2861
2878
|
)
|
|
2862
2879
|
] })
|
|
2863
2880
|
] }),
|
|
2864
|
-
/* @__PURE__ */
|
|
2881
|
+
/* @__PURE__ */ jsx33("div", { className: "w-full h-[2px] -mt-full overflow-clip", children: /* @__PURE__ */ jsx33(
|
|
2865
2882
|
"div",
|
|
2866
2883
|
{
|
|
2867
2884
|
className: twMerge16(
|
|
@@ -2881,7 +2898,7 @@ function DepositStatus({ status, progress, children, onDismiss }) {
|
|
|
2881
2898
|
|
|
2882
2899
|
// src/onboarding/deposit/TransferDepositStatus.tsx
|
|
2883
2900
|
import { useChains as useChains2 } from "wagmi";
|
|
2884
|
-
import { Fragment as
|
|
2901
|
+
import { Fragment as Fragment4, jsx as jsx34, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
2885
2902
|
function TransferDepositStatus({
|
|
2886
2903
|
amount,
|
|
2887
2904
|
chainL1Id,
|
|
@@ -2893,11 +2910,11 @@ function TransferDepositStatus({
|
|
|
2893
2910
|
}) {
|
|
2894
2911
|
const chains = useChains2();
|
|
2895
2912
|
const chain = chains.find((chain2) => chain2.id === chainL1Id);
|
|
2896
|
-
const receipt =
|
|
2913
|
+
const receipt = useQuery14({
|
|
2897
2914
|
queryKey: ["transferDepositStatus", hash],
|
|
2898
2915
|
queryFn: () => receiptPromise
|
|
2899
2916
|
});
|
|
2900
|
-
return /* @__PURE__ */
|
|
2917
|
+
return /* @__PURE__ */ jsx34(
|
|
2901
2918
|
DepositStatus,
|
|
2902
2919
|
{
|
|
2903
2920
|
status: receipt.status,
|
|
@@ -2909,10 +2926,10 @@ function TransferDepositStatus({
|
|
|
2909
2926
|
children: (() => {
|
|
2910
2927
|
const blockExplorer = chain.blockExplorers?.default.url;
|
|
2911
2928
|
if (receipt.status === "pending") {
|
|
2912
|
-
return /* @__PURE__ */ jsxs20(
|
|
2929
|
+
return /* @__PURE__ */ jsxs20(Fragment4, { children: [
|
|
2913
2930
|
"Confirming deposit on",
|
|
2914
2931
|
" ",
|
|
2915
|
-
/* @__PURE__ */
|
|
2932
|
+
/* @__PURE__ */ jsx34(
|
|
2916
2933
|
"a",
|
|
2917
2934
|
{
|
|
2918
2935
|
href: blockExplorer ? `${blockExplorer}/tx/${hash}` : void 0,
|
|
@@ -2925,10 +2942,10 @@ function TransferDepositStatus({
|
|
|
2925
2942
|
] });
|
|
2926
2943
|
}
|
|
2927
2944
|
if (receipt.status === "error") {
|
|
2928
|
-
return /* @__PURE__ */ jsxs20(
|
|
2945
|
+
return /* @__PURE__ */ jsxs20(Fragment4, { children: [
|
|
2929
2946
|
"Could not find deposit on",
|
|
2930
2947
|
" ",
|
|
2931
|
-
/* @__PURE__ */
|
|
2948
|
+
/* @__PURE__ */ jsx34(
|
|
2932
2949
|
"a",
|
|
2933
2950
|
{
|
|
2934
2951
|
href: blockExplorer ? `${blockExplorer}/tx/${hash}` : void 0,
|
|
@@ -2940,10 +2957,10 @@ function TransferDepositStatus({
|
|
|
2940
2957
|
"."
|
|
2941
2958
|
] });
|
|
2942
2959
|
}
|
|
2943
|
-
return /* @__PURE__ */ jsxs20(
|
|
2960
|
+
return /* @__PURE__ */ jsxs20(Fragment4, { children: [
|
|
2944
2961
|
"Successfully",
|
|
2945
2962
|
" ",
|
|
2946
|
-
/* @__PURE__ */
|
|
2963
|
+
/* @__PURE__ */ jsx34(
|
|
2947
2964
|
"a",
|
|
2948
2965
|
{
|
|
2949
2966
|
href: blockExplorer ? `${blockExplorer}/tx/${receipt.data.transactionHash}` : void 0,
|
|
@@ -2953,7 +2970,7 @@ function TransferDepositStatus({
|
|
|
2953
2970
|
}
|
|
2954
2971
|
),
|
|
2955
2972
|
" ",
|
|
2956
|
-
/* @__PURE__ */
|
|
2973
|
+
/* @__PURE__ */ jsx34(Balance, { wei: amount })
|
|
2957
2974
|
] });
|
|
2958
2975
|
})()
|
|
2959
2976
|
}
|
|
@@ -2961,9 +2978,9 @@ function TransferDepositStatus({
|
|
|
2961
2978
|
}
|
|
2962
2979
|
|
|
2963
2980
|
// src/onboarding/deposit/RelayDepositStatus.tsx
|
|
2964
|
-
import { useQuery as
|
|
2981
|
+
import { useQuery as useQuery15 } from "@tanstack/react-query";
|
|
2965
2982
|
import { useChains as useChains3 } from "wagmi";
|
|
2966
|
-
import { Fragment as
|
|
2983
|
+
import { Fragment as Fragment5, jsx as jsx35, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
2967
2984
|
function RelayDepositStatus({
|
|
2968
2985
|
amount,
|
|
2969
2986
|
chainL1Id,
|
|
@@ -2976,11 +2993,11 @@ function RelayDepositStatus({
|
|
|
2976
2993
|
const chains = useChains3();
|
|
2977
2994
|
const chainL1 = chains.find((chain) => chain.id === chainL1Id);
|
|
2978
2995
|
const chainL2 = chains.find((chain) => chain.id === chainL2Id);
|
|
2979
|
-
const deposit =
|
|
2996
|
+
const deposit = useQuery15({
|
|
2980
2997
|
queryKey: ["relayDepositPromise", chainL1Id, chainL2Id, amount.toString(), start.toISOString()],
|
|
2981
2998
|
queryFn: () => depositPromise
|
|
2982
2999
|
});
|
|
2983
|
-
return /* @__PURE__ */
|
|
3000
|
+
return /* @__PURE__ */ jsx35(
|
|
2984
3001
|
DepositStatus,
|
|
2985
3002
|
{
|
|
2986
3003
|
status: deposit.status,
|
|
@@ -2991,22 +3008,22 @@ function RelayDepositStatus({
|
|
|
2991
3008
|
onDismiss,
|
|
2992
3009
|
children: (() => {
|
|
2993
3010
|
if (deposit.status === "pending") {
|
|
2994
|
-
return /* @__PURE__ */ jsxs21(
|
|
3011
|
+
return /* @__PURE__ */ jsxs21(Fragment5, { children: [
|
|
2995
3012
|
"Relay bridge deposit pending on ",
|
|
2996
3013
|
chainL1.name,
|
|
2997
3014
|
"\u2026"
|
|
2998
3015
|
] });
|
|
2999
3016
|
}
|
|
3000
3017
|
if (deposit.status === "error") {
|
|
3001
|
-
return /* @__PURE__ */ jsxs21(
|
|
3018
|
+
return /* @__PURE__ */ jsxs21(Fragment5, { children: [
|
|
3002
3019
|
"Relay bridge deposit to ",
|
|
3003
3020
|
chainL2.name,
|
|
3004
3021
|
" failed."
|
|
3005
3022
|
] });
|
|
3006
3023
|
}
|
|
3007
|
-
return /* @__PURE__ */ jsxs21(
|
|
3024
|
+
return /* @__PURE__ */ jsxs21(Fragment5, { children: [
|
|
3008
3025
|
"Successfully bridged ",
|
|
3009
|
-
/* @__PURE__ */
|
|
3026
|
+
/* @__PURE__ */ jsx35(Balance, { wei: amount }),
|
|
3010
3027
|
" to ",
|
|
3011
3028
|
chainL2.name,
|
|
3012
3029
|
"!"
|
|
@@ -3018,14 +3035,14 @@ function RelayDepositStatus({
|
|
|
3018
3035
|
|
|
3019
3036
|
// src/onboarding/deposit/Deposits.tsx
|
|
3020
3037
|
import { useAccount as useAccount6, useClient as useClient11 } from "wagmi";
|
|
3021
|
-
import { jsx as
|
|
3038
|
+
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
3022
3039
|
function Deposits() {
|
|
3023
3040
|
const queryClient = useQueryClient7();
|
|
3024
3041
|
const { chainId } = useEntryKitConfig();
|
|
3025
3042
|
const client = useClient11({ chainId });
|
|
3026
3043
|
const { address: userAddress } = useAccount6();
|
|
3027
3044
|
const { deposits, removeDeposit } = useDeposits();
|
|
3028
|
-
const { data: isComplete } =
|
|
3045
|
+
const { data: isComplete } = useQuery16({
|
|
3029
3046
|
queryKey: ["depositsComplete", deposits.map((deposit) => deposit.uid)],
|
|
3030
3047
|
queryFn: async () => {
|
|
3031
3048
|
if (!deposits.length) return false;
|
|
@@ -3040,17 +3057,17 @@ function Deposits() {
|
|
|
3040
3057
|
}
|
|
3041
3058
|
}, [client?.uid, isComplete, queryClient, userAddress]);
|
|
3042
3059
|
if (!deposits.length) return null;
|
|
3043
|
-
return /* @__PURE__ */
|
|
3060
|
+
return /* @__PURE__ */ jsx36("div", { className: "flex flex-col gap-1 mt-4", children: deposits.map((deposit) => {
|
|
3044
3061
|
if (deposit.type === "transfer") {
|
|
3045
|
-
return /* @__PURE__ */
|
|
3062
|
+
return /* @__PURE__ */ jsx36(TransferDepositStatus, { ...deposit, onDismiss: () => removeDeposit(deposit.uid) }, deposit.uid);
|
|
3046
3063
|
} else if (deposit.type === "relay") {
|
|
3047
|
-
return /* @__PURE__ */
|
|
3064
|
+
return /* @__PURE__ */ jsx36(RelayDepositStatus, { ...deposit, onDismiss: () => removeDeposit(deposit.uid) }, deposit.uid);
|
|
3048
3065
|
}
|
|
3049
3066
|
}) });
|
|
3050
3067
|
}
|
|
3051
3068
|
|
|
3052
3069
|
// src/onboarding/deposit/DepositFormContainer.tsx
|
|
3053
|
-
import { jsx as
|
|
3070
|
+
import { jsx as jsx37, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
3054
3071
|
function DepositFormContainer() {
|
|
3055
3072
|
const { chainId: destinationChainId } = useEntryKitConfig();
|
|
3056
3073
|
const chainId = useChainId();
|
|
@@ -3059,7 +3076,7 @@ function DepositFormContainer() {
|
|
|
3059
3076
|
const [sourceChainId, setSourceChainId] = useState4(chainId);
|
|
3060
3077
|
const sourceChain = chains.find(({ id }) => id === sourceChainId);
|
|
3061
3078
|
return /* @__PURE__ */ jsxs22("div", { className: "pt-10 pb-2", children: [
|
|
3062
|
-
destinationChainId === sourceChainId ? /* @__PURE__ */
|
|
3079
|
+
destinationChainId === sourceChainId ? /* @__PURE__ */ jsx37(
|
|
3063
3080
|
DepositViaTransferForm,
|
|
3064
3081
|
{
|
|
3065
3082
|
amount,
|
|
@@ -3067,7 +3084,7 @@ function DepositFormContainer() {
|
|
|
3067
3084
|
sourceChain,
|
|
3068
3085
|
setSourceChainId
|
|
3069
3086
|
}
|
|
3070
|
-
) : /* @__PURE__ */
|
|
3087
|
+
) : /* @__PURE__ */ jsx37(
|
|
3071
3088
|
DepositViaRelayForm,
|
|
3072
3089
|
{
|
|
3073
3090
|
amount,
|
|
@@ -3076,14 +3093,14 @@ function DepositFormContainer() {
|
|
|
3076
3093
|
setSourceChainId
|
|
3077
3094
|
}
|
|
3078
3095
|
),
|
|
3079
|
-
/* @__PURE__ */
|
|
3096
|
+
/* @__PURE__ */ jsx37(Deposits, {})
|
|
3080
3097
|
] });
|
|
3081
3098
|
}
|
|
3082
3099
|
|
|
3083
3100
|
// src/icons/ArrowLeftIcon.tsx
|
|
3084
|
-
import { jsx as
|
|
3101
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
3085
3102
|
function ArrowLeftIcon(props) {
|
|
3086
|
-
return /* @__PURE__ */
|
|
3103
|
+
return /* @__PURE__ */ jsx38(IconSVG, { ...props, children: /* @__PURE__ */ jsx38(
|
|
3087
3104
|
"path",
|
|
3088
3105
|
{
|
|
3089
3106
|
d: "M19 12H5M12 19l-7-7 7-7",
|
|
@@ -3103,7 +3120,7 @@ import { useAccount as useAccount7, useClient as useClient12, useSwitchChain as
|
|
|
3103
3120
|
import { twMerge as twMerge17 } from "tailwind-merge";
|
|
3104
3121
|
import { useMutation as useMutation6 } from "@tanstack/react-query";
|
|
3105
3122
|
import { useQueryClient as useQueryClient8 } from "@tanstack/react-query";
|
|
3106
|
-
import { jsx as
|
|
3123
|
+
import { jsx as jsx39, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
3107
3124
|
function WithdrawGasBalanceButton({ userAddress }) {
|
|
3108
3125
|
const { writeContractAsync } = useWriteContract2();
|
|
3109
3126
|
const { switchChain } = useSwitchChain3();
|
|
@@ -3142,7 +3159,7 @@ function WithdrawGasBalanceButton({ userAddress }) {
|
|
|
3142
3159
|
if (balance.data == null || balance.data === 0n) {
|
|
3143
3160
|
return null;
|
|
3144
3161
|
}
|
|
3145
|
-
return /* @__PURE__ */
|
|
3162
|
+
return /* @__PURE__ */ jsx39(
|
|
3146
3163
|
"button",
|
|
3147
3164
|
{
|
|
3148
3165
|
onClick: () => {
|
|
@@ -3166,19 +3183,19 @@ function WithdrawGasBalanceButton({ userAddress }) {
|
|
|
3166
3183
|
shouldSwitchChain && "group-hover:hidden"
|
|
3167
3184
|
),
|
|
3168
3185
|
children: [
|
|
3169
|
-
withdraw.isPending && /* @__PURE__ */
|
|
3186
|
+
withdraw.isPending && /* @__PURE__ */ jsx39(PendingIcon, { className: "w-3 h-3" }),
|
|
3170
3187
|
"Withdraw"
|
|
3171
3188
|
]
|
|
3172
3189
|
}
|
|
3173
3190
|
),
|
|
3174
|
-
shouldSwitchChain && /* @__PURE__ */
|
|
3191
|
+
shouldSwitchChain && /* @__PURE__ */ jsx39("span", { className: "hidden group-hover:inline-block underline decoration-neutral-500 underline-offset-4 hover:decoration-orange-500", children: "Switch chain" })
|
|
3175
3192
|
] })
|
|
3176
3193
|
}
|
|
3177
3194
|
);
|
|
3178
3195
|
}
|
|
3179
3196
|
|
|
3180
3197
|
// src/onboarding/quarry/GasBalance.tsx
|
|
3181
|
-
import { jsx as
|
|
3198
|
+
import { jsx as jsx40, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
3182
3199
|
function GasBalance2({ isActive, isExpanded, isFocused, setFocused, userAddress }) {
|
|
3183
3200
|
const queryClient = useQueryClient9();
|
|
3184
3201
|
const balance = useShowQueryError(useBalance(userAddress));
|
|
@@ -3191,25 +3208,25 @@ function GasBalance2({ isActive, isExpanded, isFocused, setFocused, userAddress
|
|
|
3191
3208
|
}, [balance.data, prevBalance, setFocused, queryClient, userAddress]);
|
|
3192
3209
|
if (isFocused) {
|
|
3193
3210
|
return /* @__PURE__ */ jsxs24("div", { children: [
|
|
3194
|
-
isFocused && /* @__PURE__ */
|
|
3211
|
+
isFocused && /* @__PURE__ */ jsx40("div", { className: "absolute top-0 left-0", children: /* @__PURE__ */ jsx40(
|
|
3195
3212
|
"div",
|
|
3196
3213
|
{
|
|
3197
3214
|
className: "flex items-center justify-center w-10 h-10 text-white/20 hover:text-white/40 cursor-pointer",
|
|
3198
3215
|
onClick: () => setFocused(false),
|
|
3199
|
-
children: /* @__PURE__ */
|
|
3216
|
+
children: /* @__PURE__ */ jsx40(ArrowLeftIcon, { className: "m-0" })
|
|
3200
3217
|
}
|
|
3201
3218
|
) }),
|
|
3202
|
-
/* @__PURE__ */
|
|
3219
|
+
/* @__PURE__ */ jsx40(DepositFormContainer, {})
|
|
3203
3220
|
] });
|
|
3204
3221
|
}
|
|
3205
3222
|
return /* @__PURE__ */ jsxs24("div", { className: "flex flex-col gap-4", children: [
|
|
3206
3223
|
/* @__PURE__ */ jsxs24("div", { className: "flex justify-between gap-4", children: [
|
|
3207
3224
|
/* @__PURE__ */ jsxs24("div", { children: [
|
|
3208
|
-
/* @__PURE__ */
|
|
3209
|
-
/* @__PURE__ */
|
|
3225
|
+
/* @__PURE__ */ jsx40("div", { children: "Gas balance" }),
|
|
3226
|
+
/* @__PURE__ */ jsx40("div", { className: "font-mono text-white", children: balance.data != null ? /* @__PURE__ */ jsx40(Balance, { wei: balance.data }) : /* @__PURE__ */ jsx40(PendingIcon, { className: "text-sm" }) })
|
|
3210
3227
|
] }),
|
|
3211
3228
|
/* @__PURE__ */ jsxs24("div", { className: "flex flex-col gap-1 justify-center items-center", children: [
|
|
3212
|
-
/* @__PURE__ */
|
|
3229
|
+
/* @__PURE__ */ jsx40(
|
|
3213
3230
|
Button,
|
|
3214
3231
|
{
|
|
3215
3232
|
variant: isActive ? "primary" : "tertiary",
|
|
@@ -3220,15 +3237,15 @@ function GasBalance2({ isActive, isExpanded, isFocused, setFocused, userAddress
|
|
|
3220
3237
|
children: "Top up"
|
|
3221
3238
|
}
|
|
3222
3239
|
),
|
|
3223
|
-
/* @__PURE__ */
|
|
3240
|
+
/* @__PURE__ */ jsx40(WithdrawGasBalanceButton, { userAddress })
|
|
3224
3241
|
] })
|
|
3225
3242
|
] }),
|
|
3226
|
-
isExpanded ? /* @__PURE__ */
|
|
3243
|
+
isExpanded ? /* @__PURE__ */ jsx40("p", { className: "text-sm", children: "Your gas balance is used to pay for onchain computation." }) : null
|
|
3227
3244
|
] });
|
|
3228
3245
|
}
|
|
3229
3246
|
|
|
3230
3247
|
// src/onboarding/ConnectedSteps.tsx
|
|
3231
|
-
import { jsx as
|
|
3248
|
+
import { jsx as jsx41 } from "react/jsx-runtime";
|
|
3232
3249
|
function ConnectedSteps({ userClient, initialUserAddress }) {
|
|
3233
3250
|
const { chain } = useEntryKitConfig();
|
|
3234
3251
|
const paymaster = getPaymaster(chain);
|
|
@@ -3269,7 +3286,7 @@ function ConnectedSteps({ userClient, initialUserAddress }) {
|
|
|
3269
3286
|
{
|
|
3270
3287
|
id: "wallet",
|
|
3271
3288
|
isComplete: true,
|
|
3272
|
-
content: (props) => /* @__PURE__ */
|
|
3289
|
+
content: (props) => /* @__PURE__ */ jsx41(Wallet, { ...props, userAddress })
|
|
3273
3290
|
}
|
|
3274
3291
|
];
|
|
3275
3292
|
if (!paymaster) {
|
|
@@ -3277,7 +3294,7 @@ function ConnectedSteps({ userClient, initialUserAddress }) {
|
|
|
3277
3294
|
steps2.push({
|
|
3278
3295
|
id: "gasBalance",
|
|
3279
3296
|
isComplete: !!hasGasBalance,
|
|
3280
|
-
content: (props) => /* @__PURE__ */
|
|
3297
|
+
content: (props) => /* @__PURE__ */ jsx41(GasBalance, { ...props, sessionAddress })
|
|
3281
3298
|
});
|
|
3282
3299
|
}
|
|
3283
3300
|
} else if (paymaster.type === "quarry") {
|
|
@@ -3285,20 +3302,20 @@ function ConnectedSteps({ userClient, initialUserAddress }) {
|
|
|
3285
3302
|
steps2.push({
|
|
3286
3303
|
id: "allowance",
|
|
3287
3304
|
isComplete: !!hasAllowance,
|
|
3288
|
-
content: (props) => /* @__PURE__ */
|
|
3305
|
+
content: (props) => /* @__PURE__ */ jsx41(Allowance, { ...props, userAddress })
|
|
3289
3306
|
});
|
|
3290
3307
|
} else {
|
|
3291
3308
|
steps2.push({
|
|
3292
3309
|
id: "gasBalanceQuarry",
|
|
3293
3310
|
isComplete: !!hasQuarryGasBalance,
|
|
3294
|
-
content: (props) => /* @__PURE__ */
|
|
3311
|
+
content: (props) => /* @__PURE__ */ jsx41(GasBalance2, { ...props, userAddress })
|
|
3295
3312
|
});
|
|
3296
3313
|
}
|
|
3297
3314
|
}
|
|
3298
3315
|
steps2.push({
|
|
3299
3316
|
id: "session",
|
|
3300
3317
|
isComplete: !!isSpender && !!hasDelegation,
|
|
3301
|
-
content: (props) => /* @__PURE__ */
|
|
3318
|
+
content: (props) => /* @__PURE__ */ jsx41(Session, { ...props, userClient, registerSpender: !isSpender, registerDelegation: !hasDelegation })
|
|
3302
3319
|
});
|
|
3303
3320
|
return steps2;
|
|
3304
3321
|
}, [
|
|
@@ -3317,7 +3334,7 @@ function ConnectedSteps({ userClient, initialUserAddress }) {
|
|
|
3317
3334
|
const completedSteps = steps.filter((step) => step.isComplete);
|
|
3318
3335
|
const activeStep = (selectedStepId != null ? steps.find((step) => step.id === selectedStepId) : null) ?? nextStep ?? (completedSteps.length < steps.length ? completedSteps.at(-1) : null);
|
|
3319
3336
|
const activeStepIndex = activeStep ? steps.indexOf(activeStep) : -1;
|
|
3320
|
-
return /* @__PURE__ */
|
|
3337
|
+
return /* @__PURE__ */ jsx41(
|
|
3321
3338
|
"div",
|
|
3322
3339
|
{
|
|
3323
3340
|
className: twMerge18(
|
|
@@ -3342,7 +3359,7 @@ function ConnectedSteps({ userClient, initialUserAddress }) {
|
|
|
3342
3359
|
}
|
|
3343
3360
|
return null;
|
|
3344
3361
|
}
|
|
3345
|
-
return /* @__PURE__ */
|
|
3362
|
+
return /* @__PURE__ */ jsx41("div", { className: twMerge18("py-8 flex flex-col justify-center", isActive ? "flex-grow" : null), children: /* @__PURE__ */ jsx41("div", { className: twMerge18("flex flex-col", isDisabled ? "opacity-30 pointer-events-none" : null), children: content }) }, step.id);
|
|
3346
3363
|
})
|
|
3347
3364
|
}
|
|
3348
3365
|
);
|
|
@@ -3350,16 +3367,16 @@ function ConnectedSteps({ userClient, initialUserAddress }) {
|
|
|
3350
3367
|
|
|
3351
3368
|
// src/AccountModalContent.tsx
|
|
3352
3369
|
import { useRef as useRef6 } from "react";
|
|
3353
|
-
import { jsx as
|
|
3370
|
+
import { jsx as jsx42 } from "react/jsx-runtime";
|
|
3354
3371
|
function AccountModalContent() {
|
|
3355
3372
|
const { chainId } = useEntryKitConfig();
|
|
3356
3373
|
const userClient = useConnectorClient({ chainId });
|
|
3357
3374
|
const { address: userAddress } = useAccount8();
|
|
3358
3375
|
const initialUserAddress = useRef6(userAddress);
|
|
3359
3376
|
if (userClient.status !== "success") {
|
|
3360
|
-
return /* @__PURE__ */
|
|
3377
|
+
return /* @__PURE__ */ jsx42(ConnectWallet, {});
|
|
3361
3378
|
}
|
|
3362
|
-
return /* @__PURE__ */
|
|
3379
|
+
return /* @__PURE__ */ jsx42(ConnectedSteps, { userClient: userClient.data, initialUserAddress: initialUserAddress.current });
|
|
3363
3380
|
}
|
|
3364
3381
|
|
|
3365
3382
|
// src/AccountModal.tsx
|
|
@@ -3370,7 +3387,7 @@ import { ErrorBoundary } from "react-error-boundary";
|
|
|
3370
3387
|
import { wait } from "@latticexyz/common/utils";
|
|
3371
3388
|
import { useEffect as useEffect16 } from "react";
|
|
3372
3389
|
import { twMerge as twMerge19 } from "tailwind-merge";
|
|
3373
|
-
import { Fragment as
|
|
3390
|
+
import { Fragment as Fragment6, jsx as jsx43, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
3374
3391
|
function ErrorOverlay({ error: error2, retry, dismiss }) {
|
|
3375
3392
|
useEffect16(() => {
|
|
3376
3393
|
if (error2) {
|
|
@@ -3378,7 +3395,7 @@ function ErrorOverlay({ error: error2, retry, dismiss }) {
|
|
|
3378
3395
|
}
|
|
3379
3396
|
}, [error2]);
|
|
3380
3397
|
return /* @__PURE__ */ jsxs25("div", { className: "pointer-events-none absolute inset-0 overflow-clip", children: [
|
|
3381
|
-
/* @__PURE__ */
|
|
3398
|
+
/* @__PURE__ */ jsx43(
|
|
3382
3399
|
"div",
|
|
3383
3400
|
{
|
|
3384
3401
|
className: twMerge19(
|
|
@@ -3388,7 +3405,7 @@ function ErrorOverlay({ error: error2, retry, dismiss }) {
|
|
|
3388
3405
|
)
|
|
3389
3406
|
}
|
|
3390
3407
|
),
|
|
3391
|
-
/* @__PURE__ */
|
|
3408
|
+
/* @__PURE__ */ jsx43(
|
|
3392
3409
|
"div",
|
|
3393
3410
|
{
|
|
3394
3411
|
className: twMerge19(
|
|
@@ -3396,15 +3413,15 @@ function ErrorOverlay({ error: error2, retry, dismiss }) {
|
|
|
3396
3413
|
"transition duration-300",
|
|
3397
3414
|
error2 ? "translate-y-0 opacity-100 pointer-events-auto" : "-translate-y-4 opacity-0"
|
|
3398
3415
|
),
|
|
3399
|
-
children: error2 ? /* @__PURE__ */
|
|
3416
|
+
children: error2 ? /* @__PURE__ */ jsx43(Fragment6, { children: /* @__PURE__ */ jsxs25("div", { className: "w-full max-h-full bg-blue-700 text-white/80 overflow-auto", children: [
|
|
3400
3417
|
/* @__PURE__ */ jsxs25("div", { className: "space-y-6 px-8 pt-8", children: [
|
|
3401
|
-
/* @__PURE__ */
|
|
3402
|
-
/* @__PURE__ */
|
|
3403
|
-
/* @__PURE__ */
|
|
3418
|
+
/* @__PURE__ */ jsx43("div", { className: "text-white text-lg font-bold", children: "Oops! It broke :(" }),
|
|
3419
|
+
/* @__PURE__ */ jsx43("div", { className: "font-mono text-xs whitespace-pre-wrap", children: error2.message.trim() }),
|
|
3420
|
+
/* @__PURE__ */ jsx43("div", { className: "text-sm", children: "See the console for more info." })
|
|
3404
3421
|
] }),
|
|
3405
3422
|
/* @__PURE__ */ jsxs25("div", { className: "pointer-events-none sticky bottom-0 left-0 -mt-2", children: [
|
|
3406
|
-
/* @__PURE__ */
|
|
3407
|
-
retry ? /* @__PURE__ */
|
|
3423
|
+
/* @__PURE__ */ jsx43("div", { className: "w-full h-12 bg-gradient-to-b from-transparent to-blue-700" }),
|
|
3424
|
+
retry ? /* @__PURE__ */ jsx43("div", { className: "bg-blue-700 text-center", children: /* @__PURE__ */ jsxs25(
|
|
3408
3425
|
"button",
|
|
3409
3426
|
{
|
|
3410
3427
|
type: "button",
|
|
@@ -3423,11 +3440,11 @@ function ErrorOverlay({ error: error2, retry, dismiss }) {
|
|
|
3423
3440
|
}
|
|
3424
3441
|
},
|
|
3425
3442
|
children: [
|
|
3426
|
-
/* @__PURE__ */
|
|
3427
|
-
/* @__PURE__ */
|
|
3443
|
+
/* @__PURE__ */ jsx43("span", { className: "group-aria-busy:hidden", children: "Retry" }),
|
|
3444
|
+
/* @__PURE__ */ jsx43("span", { className: "hidden group-aria-busy:inline", children: "Retrying\u2026" })
|
|
3428
3445
|
]
|
|
3429
3446
|
}
|
|
3430
|
-
) }) : dismiss ? /* @__PURE__ */
|
|
3447
|
+
) }) : dismiss ? /* @__PURE__ */ jsx43("div", { className: "bg-blue-700 text-center", children: /* @__PURE__ */ jsx43(
|
|
3431
3448
|
"button",
|
|
3432
3449
|
{
|
|
3433
3450
|
type: "button",
|
|
@@ -3449,24 +3466,24 @@ function ErrorOverlay({ error: error2, retry, dismiss }) {
|
|
|
3449
3466
|
}
|
|
3450
3467
|
|
|
3451
3468
|
// src/errors/ErrorFallback.tsx
|
|
3452
|
-
import { jsx as
|
|
3469
|
+
import { jsx as jsx44 } from "react/jsx-runtime";
|
|
3453
3470
|
function ErrorFallback({ error: error2, resetErrorBoundary }) {
|
|
3454
|
-
return /* @__PURE__ */
|
|
3471
|
+
return /* @__PURE__ */ jsx44("div", { className: "h-64", children: /* @__PURE__ */ jsx44(ErrorOverlay, { error: error2, retry: resetErrorBoundary }) });
|
|
3455
3472
|
}
|
|
3456
3473
|
|
|
3457
3474
|
// src/errors/ErrorsOverlay.tsx
|
|
3458
3475
|
import { useStore as useStore3 } from "zustand";
|
|
3459
|
-
import { jsx as
|
|
3476
|
+
import { jsx as jsx45 } from "react/jsx-runtime";
|
|
3460
3477
|
function ErrorsOverlay() {
|
|
3461
3478
|
const error2 = useStore3(store3, (state) => state.errors.at(0));
|
|
3462
|
-
return /* @__PURE__ */
|
|
3479
|
+
return /* @__PURE__ */ jsx45(ErrorOverlay, { error: error2?.error, retry: error2?.retry, dismiss: error2?.dismiss });
|
|
3463
3480
|
}
|
|
3464
3481
|
|
|
3465
3482
|
// src/AccountModal.tsx
|
|
3466
|
-
import { jsx as
|
|
3483
|
+
import { jsx as jsx46, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
3467
3484
|
function AccountModal() {
|
|
3468
3485
|
const { accountModalOpen, toggleAccountModal } = useAccountModal();
|
|
3469
|
-
return /* @__PURE__ */
|
|
3486
|
+
return /* @__PURE__ */ jsx46(Modal, { open: accountModalOpen, onOpenChange: toggleAccountModal, children: accountModalOpen ? /* @__PURE__ */ jsxs26(
|
|
3470
3487
|
"div",
|
|
3471
3488
|
{
|
|
3472
3489
|
className: twMerge20(
|
|
@@ -3478,8 +3495,8 @@ function AccountModal() {
|
|
|
3478
3495
|
),
|
|
3479
3496
|
children: [
|
|
3480
3497
|
/* @__PURE__ */ jsxs26(ErrorBoundary, { FallbackComponent: ErrorFallback, children: [
|
|
3481
|
-
/* @__PURE__ */
|
|
3482
|
-
/* @__PURE__ */
|
|
3498
|
+
/* @__PURE__ */ jsx46(AccountModalContent, {}),
|
|
3499
|
+
/* @__PURE__ */ jsx46(ErrorsOverlay, {})
|
|
3483
3500
|
] }),
|
|
3484
3501
|
/* @__PURE__ */ jsxs26(
|
|
3485
3502
|
"a",
|
|
@@ -3489,12 +3506,12 @@ function AccountModal() {
|
|
|
3489
3506
|
rel: "noreferrer noopener",
|
|
3490
3507
|
className: "group self-center p-3 flex items-center justify-center gap-2 links-unset text-sm font-mono transition text-neutral-400 hover:text-white",
|
|
3491
3508
|
children: [
|
|
3492
|
-
/* @__PURE__ */
|
|
3493
|
-
/* @__PURE__ */
|
|
3509
|
+
/* @__PURE__ */ jsx46("span", { className: "block w-4 h-4", children: /* @__PURE__ */ jsx46(Logo, { className: "w-full h-full text-orange-500 group-hover:rotate-90 transition duration-300" }) }),
|
|
3510
|
+
/* @__PURE__ */ jsx46("span", { children: "Powered by MUD" })
|
|
3494
3511
|
]
|
|
3495
3512
|
}
|
|
3496
3513
|
),
|
|
3497
|
-
/* @__PURE__ */
|
|
3514
|
+
/* @__PURE__ */ jsx46("div", { className: "absolute top-0 right-0", children: /* @__PURE__ */ jsx46(
|
|
3498
3515
|
DialogClose,
|
|
3499
3516
|
{
|
|
3500
3517
|
className: twMerge20(
|
|
@@ -3502,7 +3519,7 @@ function AccountModal() {
|
|
|
3502
3519
|
"text-white/20 hover:text-white/40"
|
|
3503
3520
|
),
|
|
3504
3521
|
title: "Close",
|
|
3505
|
-
children: /* @__PURE__ */
|
|
3522
|
+
children: /* @__PURE__ */ jsx46(CloseIcon, { className: "m-0" })
|
|
3506
3523
|
}
|
|
3507
3524
|
) })
|
|
3508
3525
|
]
|
|
@@ -3511,11 +3528,11 @@ function AccountModal() {
|
|
|
3511
3528
|
}
|
|
3512
3529
|
|
|
3513
3530
|
// src/EntryKitProvider.tsx
|
|
3514
|
-
import { jsx as
|
|
3531
|
+
import { jsx as jsx47, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
3515
3532
|
function EntryKitProvider({ config, children }) {
|
|
3516
3533
|
return /* @__PURE__ */ jsxs27(EntryKitConfigProvider, { config, children: [
|
|
3517
3534
|
children,
|
|
3518
|
-
/* @__PURE__ */
|
|
3535
|
+
/* @__PURE__ */ jsx47(AccountModal, {})
|
|
3519
3536
|
] });
|
|
3520
3537
|
}
|
|
3521
3538
|
|
|
@@ -3525,13 +3542,13 @@ import { twMerge as twMerge22 } from "tailwind-merge";
|
|
|
3525
3542
|
|
|
3526
3543
|
// src/AccountName.tsx
|
|
3527
3544
|
import { twMerge as twMerge21 } from "tailwind-merge";
|
|
3528
|
-
import { Fragment as
|
|
3545
|
+
import { Fragment as Fragment7, jsx as jsx48, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
3529
3546
|
function AccountName({ address }) {
|
|
3530
3547
|
const { data: ens } = useENS(address);
|
|
3531
3548
|
const avatar = usePreloadImage(ens?.avatar);
|
|
3532
|
-
return /* @__PURE__ */ jsxs28(
|
|
3549
|
+
return /* @__PURE__ */ jsxs28(Fragment7, { children: [
|
|
3533
3550
|
/* @__PURE__ */ jsxs28("span", { className: "flex-shrink-0 w-6 h-6 -my-1 -mx-0.5 grid place-items-center", children: [
|
|
3534
|
-
/* @__PURE__ */
|
|
3551
|
+
/* @__PURE__ */ jsx48(
|
|
3535
3552
|
"img",
|
|
3536
3553
|
{
|
|
3537
3554
|
src: ens?.avatar && avatar.isSuccess ? ens.avatar : void 0,
|
|
@@ -3543,7 +3560,7 @@ function AccountName({ address }) {
|
|
|
3543
3560
|
)
|
|
3544
3561
|
}
|
|
3545
3562
|
),
|
|
3546
|
-
/* @__PURE__ */
|
|
3563
|
+
/* @__PURE__ */ jsx48(
|
|
3547
3564
|
Logo,
|
|
3548
3565
|
{
|
|
3549
3566
|
className: twMerge21(
|
|
@@ -3554,13 +3571,13 @@ function AccountName({ address }) {
|
|
|
3554
3571
|
}
|
|
3555
3572
|
)
|
|
3556
3573
|
] }),
|
|
3557
|
-
/* @__PURE__ */
|
|
3574
|
+
/* @__PURE__ */ jsx48("span", { className: "flex-grow", children: ens?.name ?? /* @__PURE__ */ jsx48(TruncatedHex, { hex: address }) })
|
|
3558
3575
|
] });
|
|
3559
3576
|
}
|
|
3560
3577
|
|
|
3561
3578
|
// src/AccountButton.tsx
|
|
3562
3579
|
import { useRef as useRef7 } from "react";
|
|
3563
|
-
import { jsx as
|
|
3580
|
+
import { jsx as jsx49, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
3564
3581
|
var containerClassNames = twMerge22(
|
|
3565
3582
|
"w-48 p-3 inline-flex outline-none transition",
|
|
3566
3583
|
"border border-transparent",
|
|
@@ -3588,13 +3605,13 @@ function AccountButton() {
|
|
|
3588
3605
|
}
|
|
3589
3606
|
return "Sign in";
|
|
3590
3607
|
})();
|
|
3591
|
-
return /* @__PURE__ */
|
|
3608
|
+
return /* @__PURE__ */ jsx49(Shadow, { mode: "child", children: isSignedIn ? /* @__PURE__ */ jsx49(
|
|
3592
3609
|
"button",
|
|
3593
3610
|
{
|
|
3594
3611
|
type: "button",
|
|
3595
3612
|
className: twMerge22(containerClassNames, secondaryClassNames, secondaryInteractiveClassNames),
|
|
3596
3613
|
onClick: openAccountModal,
|
|
3597
|
-
children: /* @__PURE__ */
|
|
3614
|
+
children: /* @__PURE__ */ jsx49("span", { className: "flex-grow inline-flex gap-2.5 items-center text-left font-medium", children: userAddress ? /* @__PURE__ */ jsx49(AccountName, { address: userAddress }) : null })
|
|
3598
3615
|
},
|
|
3599
3616
|
"connected"
|
|
3600
3617
|
) : /* @__PURE__ */ jsxs29(
|
|
@@ -3613,7 +3630,7 @@ function AccountButton() {
|
|
|
3613
3630
|
onClick: openAccountModal,
|
|
3614
3631
|
children: [
|
|
3615
3632
|
/* @__PURE__ */ jsxs29("span", { className: "pointer-events-none inline-grid place-items-center -ml-3", children: [
|
|
3616
|
-
/* @__PURE__ */
|
|
3633
|
+
/* @__PURE__ */ jsx49(
|
|
3617
3634
|
"span",
|
|
3618
3635
|
{
|
|
3619
3636
|
className: twMerge22(
|
|
@@ -3621,10 +3638,10 @@ function AccountButton() {
|
|
|
3621
3638
|
"scale-100 opacity-100 transition duration-300",
|
|
3622
3639
|
"group-aria-busy:scale-125 group-aria-busy:opacity-0"
|
|
3623
3640
|
),
|
|
3624
|
-
children: /* @__PURE__ */
|
|
3641
|
+
children: /* @__PURE__ */ jsx49(Logo, {})
|
|
3625
3642
|
}
|
|
3626
3643
|
),
|
|
3627
|
-
/* @__PURE__ */
|
|
3644
|
+
/* @__PURE__ */ jsx49(
|
|
3628
3645
|
"span",
|
|
3629
3646
|
{
|
|
3630
3647
|
"aria-hidden": true,
|
|
@@ -3633,11 +3650,11 @@ function AccountButton() {
|
|
|
3633
3650
|
"scale-50 opacity-0 transition duration-300 delay-50",
|
|
3634
3651
|
"group-aria-busy:scale-100 group-aria-busy:opacity-100"
|
|
3635
3652
|
),
|
|
3636
|
-
children: /* @__PURE__ */
|
|
3653
|
+
children: /* @__PURE__ */ jsx49(PendingIcon, {})
|
|
3637
3654
|
}
|
|
3638
3655
|
)
|
|
3639
3656
|
] }),
|
|
3640
|
-
/* @__PURE__ */
|
|
3657
|
+
/* @__PURE__ */ jsx49("span", { className: "font-medium", children: buttonLabel })
|
|
3641
3658
|
]
|
|
3642
3659
|
},
|
|
3643
3660
|
"sign in"
|