@latticexyz/entrykit 2.2.22-8c4b624756007fd02b1c3c3494e34128a5f1c044 → 2.2.22-91837e36ade680787d224691c848540fea793a5a
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";
|
|
@@ -139,8 +139,11 @@ var debug2 = debug.extend("quarry");
|
|
|
139
139
|
|
|
140
140
|
// src/quarry/transports/userOpExecutor.ts
|
|
141
141
|
import { setBalance } from "viem/actions";
|
|
142
|
-
function userOpExecutor({
|
|
143
|
-
|
|
142
|
+
function userOpExecutor({
|
|
143
|
+
executor,
|
|
144
|
+
fallbackDefaultTransport
|
|
145
|
+
}) {
|
|
146
|
+
return (opts) => {
|
|
144
147
|
debug2("using a local user op executor", executor.account.address);
|
|
145
148
|
if (executor.chain.id === 31337) {
|
|
146
149
|
debug2("setting executor balance");
|
|
@@ -175,7 +178,9 @@ function userOpExecutor({ executor }) {
|
|
|
175
178
|
if (method === "eth_estimateUserOperationGas") {
|
|
176
179
|
return await estimateUserOperationGas(params);
|
|
177
180
|
}
|
|
178
|
-
|
|
181
|
+
debug2(`userOpExecutor: method "${method}" not overridden, falling back to fallback transport`);
|
|
182
|
+
const { request: fallbackRequest } = fallbackDefaultTransport(opts);
|
|
183
|
+
return fallbackRequest({ method, params });
|
|
179
184
|
};
|
|
180
185
|
return createTransport({
|
|
181
186
|
key: "userOpExecutor",
|
|
@@ -187,20 +192,27 @@ function userOpExecutor({ executor }) {
|
|
|
187
192
|
}
|
|
188
193
|
|
|
189
194
|
// src/getBundlerTransport.ts
|
|
195
|
+
import { wiresaw } from "@latticexyz/common/internal";
|
|
190
196
|
function getBundlerTransport(chain) {
|
|
197
|
+
if ("wiresaw" in chain.rpcUrls) {
|
|
198
|
+
return wiresaw();
|
|
199
|
+
}
|
|
191
200
|
const bundlerHttpUrl = chain.rpcUrls.bundler?.http[0];
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
201
|
+
if (bundlerHttpUrl) {
|
|
202
|
+
return http(bundlerHttpUrl);
|
|
203
|
+
}
|
|
204
|
+
if (chain.id === 31337) {
|
|
205
|
+
return userOpExecutor({
|
|
206
|
+
executor: createClient({
|
|
207
|
+
chain,
|
|
208
|
+
transport: fallback([webSocket(), http()]),
|
|
209
|
+
account: privateKeyToAccount(keccak256(stringToHex("local user op executor"))),
|
|
210
|
+
pollingInterval: 10
|
|
211
|
+
}).extend(transactionQueue()),
|
|
212
|
+
fallbackDefaultTransport: http()
|
|
213
|
+
});
|
|
202
214
|
}
|
|
203
|
-
|
|
215
|
+
throw new Error(`Chain ${chain.id} config did not include a bundler RPC URL.`);
|
|
204
216
|
}
|
|
205
217
|
|
|
206
218
|
// src/EntryKitConfigProvider.tsx
|
|
@@ -1167,8 +1179,12 @@ function EthIcon({ className, ...props }) {
|
|
|
1167
1179
|
import { formatEther } from "viem";
|
|
1168
1180
|
function formatBalance(wei) {
|
|
1169
1181
|
const formatted = formatEther(wei);
|
|
1170
|
-
const
|
|
1171
|
-
|
|
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) });
|
|
1172
1188
|
}
|
|
1173
1189
|
|
|
1174
1190
|
// src/ui/Balance.tsx
|
|
@@ -2084,17 +2100,17 @@ import { useChains as useChains4, useChainId } from "wagmi";
|
|
|
2084
2100
|
// src/onboarding/deposit/DepositViaTransferForm.tsx
|
|
2085
2101
|
import { useAccount as useAccount4, useWriteContract, usePrepareTransactionRequest, usePublicClient } from "wagmi";
|
|
2086
2102
|
import { encodeFunctionData as encodeFunctionData2 } from "viem";
|
|
2087
|
-
import { useMutation as useMutation4, useQuery as
|
|
2103
|
+
import { useMutation as useMutation4, useQuery as useQuery12 } from "@tanstack/react-query";
|
|
2088
2104
|
|
|
2089
2105
|
// src/onboarding/deposit/DepositForm.tsx
|
|
2090
2106
|
import { useEffect as useEffect11, useRef as useRef4 } from "react";
|
|
2091
|
-
import { useAccount as useAccount3, useBalance as
|
|
2107
|
+
import { useAccount as useAccount3, useBalance as useBalance4, useWatchBlockNumber as useWatchBlockNumber2 } from "wagmi";
|
|
2092
2108
|
import { useIsMounted } from "usehooks-ts";
|
|
2093
2109
|
import { twMerge as twMerge15 } from "tailwind-merge";
|
|
2094
2110
|
|
|
2095
2111
|
// src/onboarding/deposit/ChainSelect.tsx
|
|
2096
2112
|
import { useEffect as useEffect10, useMemo as useMemo2 } from "react";
|
|
2097
|
-
import {
|
|
2113
|
+
import { useSwitchChain } from "wagmi";
|
|
2098
2114
|
import { twMerge as twMerge12 } from "tailwind-merge";
|
|
2099
2115
|
import * as Select from "@radix-ui/react-select";
|
|
2100
2116
|
|
|
@@ -2167,37 +2183,29 @@ function Input({ asChild, className, ...props }) {
|
|
|
2167
2183
|
);
|
|
2168
2184
|
}
|
|
2169
2185
|
|
|
2170
|
-
// src/onboarding/deposit/ChainBalance.tsx
|
|
2171
|
-
import { useBalance as useBalance3 } from "wagmi";
|
|
2172
|
-
import { Fragment as Fragment2, jsx as jsx23 } from "react/jsx-runtime";
|
|
2173
|
-
function ChainBalance({ chainId, address }) {
|
|
2174
|
-
const balance = useBalance3({ chainId, address });
|
|
2175
|
-
return /* @__PURE__ */ jsx23(Fragment2, { children: balance.data ? /* @__PURE__ */ jsx23(Balance, { wei: balance.data.value }) : /* @__PURE__ */ jsx23(PendingIcon, {}) });
|
|
2176
|
-
}
|
|
2177
|
-
|
|
2178
2186
|
// src/onboarding/deposit/ChainIcon.tsx
|
|
2179
2187
|
import { twMerge as twMerge11 } from "tailwind-merge";
|
|
2180
2188
|
|
|
2181
2189
|
// src/onboarding/deposit/PreloadedImage.tsx
|
|
2182
2190
|
import { twMerge as twMerge10 } from "tailwind-merge";
|
|
2183
|
-
import { jsx as
|
|
2191
|
+
import { jsx as jsx23 } from "react/jsx-runtime";
|
|
2184
2192
|
function PreloadedImage({ url, fallback: fallback2, className }) {
|
|
2185
2193
|
const { isSuccess, isLoading } = usePreloadImage(url);
|
|
2186
|
-
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 });
|
|
2187
2195
|
}
|
|
2188
2196
|
|
|
2189
2197
|
// src/onboarding/deposit/ChainIcon.tsx
|
|
2190
2198
|
import { forwardRef as forwardRef2 } from "react";
|
|
2191
|
-
import { jsx as
|
|
2199
|
+
import { jsx as jsx24 } from "react/jsx-runtime";
|
|
2192
2200
|
var ChainIcon = forwardRef2(function ChainIcon2({ name, url, className }, forwardedRef) {
|
|
2193
|
-
return /* @__PURE__ */
|
|
2201
|
+
return /* @__PURE__ */ jsx24(
|
|
2194
2202
|
"span",
|
|
2195
2203
|
{
|
|
2196
2204
|
ref: forwardedRef,
|
|
2197
2205
|
className: twMerge11("flex-shrink-0 inline-flex w-6 aspect-square rounded-full overflow-clip", className),
|
|
2198
|
-
children: url ? /* @__PURE__ */
|
|
2206
|
+
children: url ? /* @__PURE__ */ jsx24(PreloadedImage, { url }) : (
|
|
2199
2207
|
// TODO: better placeholder
|
|
2200
|
-
/* @__PURE__ */
|
|
2208
|
+
/* @__PURE__ */ jsx24(
|
|
2201
2209
|
"span",
|
|
2202
2210
|
{
|
|
2203
2211
|
className: twMerge11(
|
|
@@ -2246,12 +2254,36 @@ function useRelay() {
|
|
|
2246
2254
|
});
|
|
2247
2255
|
}
|
|
2248
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
|
+
|
|
2249
2282
|
// src/onboarding/deposit/ChainSelect.tsx
|
|
2250
|
-
import { Fragment as
|
|
2283
|
+
import { Fragment as Fragment2, jsx as jsx25, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
2251
2284
|
function ChainSelect({ value, onChange }) {
|
|
2252
2285
|
const theme = useTheme();
|
|
2253
2286
|
const { frame } = useFrame();
|
|
2254
|
-
const userAccount = useAccount();
|
|
2255
2287
|
const { chains, switchChain } = useSwitchChain();
|
|
2256
2288
|
const relay = useRelay();
|
|
2257
2289
|
const relayChains = relay.data?.chains;
|
|
@@ -2265,27 +2297,33 @@ function ChainSelect({ value, onChange }) {
|
|
|
2265
2297
|
}).filter((c) => c.relayChain);
|
|
2266
2298
|
}, [chains, relayChains]);
|
|
2267
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]);
|
|
2268
2306
|
useEffect10(() => {
|
|
2269
|
-
if (
|
|
2270
|
-
const defaultChain =
|
|
2307
|
+
if (renderedChains.length > 0 && (!selectedChain || !renderedChains.find((c) => c.chain.id === selectedChain?.id))) {
|
|
2308
|
+
const defaultChain = renderedChains[0].chain;
|
|
2271
2309
|
onChange(defaultChain.id);
|
|
2272
2310
|
switchChain({ chainId: defaultChain.id });
|
|
2273
2311
|
}
|
|
2274
|
-
}, [value, selectedChain,
|
|
2312
|
+
}, [value, selectedChain, renderedChains, onChange, switchChain]);
|
|
2275
2313
|
return /* @__PURE__ */ jsxs15(
|
|
2276
2314
|
Select.Root,
|
|
2277
2315
|
{
|
|
2278
2316
|
value: value.toString(),
|
|
2279
2317
|
onValueChange: (value2) => {
|
|
2280
2318
|
if (value2) {
|
|
2281
|
-
const chain =
|
|
2319
|
+
const chain = renderedChains.find((item) => item.chain.id.toString() === value2)?.chain;
|
|
2282
2320
|
if (!chain) throw new Error(`Unknown chain selected: ${value2}`);
|
|
2283
2321
|
onChange(chain.id);
|
|
2284
2322
|
}
|
|
2285
2323
|
},
|
|
2286
2324
|
children: [
|
|
2287
|
-
/* @__PURE__ */
|
|
2288
|
-
/* @__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(
|
|
2289
2327
|
ChainIcon,
|
|
2290
2328
|
{
|
|
2291
2329
|
id: selectedChain?.id,
|
|
@@ -2294,40 +2332,45 @@ function ChainSelect({ value, onChange }) {
|
|
|
2294
2332
|
className: "w-8"
|
|
2295
2333
|
}
|
|
2296
2334
|
) }),
|
|
2297
|
-
/* @__PURE__ */
|
|
2298
|
-
/* @__PURE__ */
|
|
2299
|
-
/* @__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" })
|
|
2300
2338
|
] }) })
|
|
2301
2339
|
] }) }),
|
|
2302
|
-
frame.contentDocument ? /* @__PURE__ */
|
|
2303
|
-
Select.
|
|
2340
|
+
frame.contentDocument ? /* @__PURE__ */ jsx25(Select.Portal, { container: frame.contentDocument.body, children: /* @__PURE__ */ jsx25(
|
|
2341
|
+
Select.Content,
|
|
2304
2342
|
{
|
|
2305
|
-
|
|
2306
|
-
|
|
2307
|
-
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
|
|
2312
|
-
|
|
2313
|
-
|
|
2314
|
-
|
|
2315
|
-
|
|
2316
|
-
|
|
2317
|
-
|
|
2318
|
-
|
|
2319
|
-
|
|
2320
|
-
|
|
2321
|
-
|
|
2322
|
-
|
|
2323
|
-
|
|
2324
|
-
|
|
2325
|
-
|
|
2326
|
-
|
|
2327
|
-
|
|
2328
|
-
|
|
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
|
+
) })
|
|
2329
2372
|
}
|
|
2330
|
-
) })
|
|
2373
|
+
) }) : null
|
|
2331
2374
|
]
|
|
2332
2375
|
}
|
|
2333
2376
|
);
|
|
@@ -2337,10 +2380,10 @@ function ChainSelect({ value, onChange }) {
|
|
|
2337
2380
|
import { formatEther as formatEther3, parseEther as parseEther5 } from "viem";
|
|
2338
2381
|
import { twMerge as twMerge13 } from "tailwind-merge";
|
|
2339
2382
|
import { forwardRef as forwardRef3 } from "react";
|
|
2340
|
-
import { jsx as
|
|
2383
|
+
import { jsx as jsx26, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
2341
2384
|
var AmountInput = forwardRef3(function AmountInput2({ initialAmount, onChange }, forwardedRef) {
|
|
2342
|
-
return /* @__PURE__ */
|
|
2343
|
-
/* @__PURE__ */
|
|
2385
|
+
return /* @__PURE__ */ jsx26(Input, { asChild: true, className: "w-full cursor-text flex items-center", children: /* @__PURE__ */ jsxs16("label", { children: [
|
|
2386
|
+
/* @__PURE__ */ jsx26(
|
|
2344
2387
|
"input",
|
|
2345
2388
|
{
|
|
2346
2389
|
ref: forwardedRef,
|
|
@@ -2365,23 +2408,23 @@ var AmountInput = forwardRef3(function AmountInput2({ initialAmount, onChange },
|
|
|
2365
2408
|
}
|
|
2366
2409
|
}
|
|
2367
2410
|
),
|
|
2368
|
-
/* @__PURE__ */
|
|
2411
|
+
/* @__PURE__ */ jsx26("span", { className: twMerge13("flex-shrink-0 text-2xl", "peer-placeholder-shown:text-neutral-500"), children: /* @__PURE__ */ jsx26(EthIcon, {}) })
|
|
2369
2412
|
] }) });
|
|
2370
2413
|
});
|
|
2371
2414
|
|
|
2372
2415
|
// src/onboarding/deposit/SubmitButton.tsx
|
|
2373
|
-
import { useAccount as useAccount2, useBalance as
|
|
2416
|
+
import { useAccount as useAccount2, useBalance as useBalance3, useSwitchChain as useSwitchChain2 } from "wagmi";
|
|
2374
2417
|
import { twMerge as twMerge14 } from "tailwind-merge";
|
|
2375
2418
|
import { parseEther as parseEther6 } from "viem";
|
|
2376
|
-
import { jsx as
|
|
2419
|
+
import { jsx as jsx27, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
2377
2420
|
var MAX_DEPOSIT_AMOUNT = "0.1";
|
|
2378
2421
|
function SubmitButton({ amount, chainId, className, ...buttonProps }) {
|
|
2379
2422
|
const { chainId: userChainId, address: userAddress } = useAccount2();
|
|
2380
|
-
const { data: userBalance } =
|
|
2423
|
+
const { data: userBalance } = useBalance3({ address: userAddress });
|
|
2381
2424
|
const shouldSwitchChain = chainId != null && chainId !== userChainId;
|
|
2382
2425
|
const switchChain = useSwitchChain2();
|
|
2383
2426
|
if (shouldSwitchChain) {
|
|
2384
|
-
return /* @__PURE__ */
|
|
2427
|
+
return /* @__PURE__ */ jsx27(
|
|
2385
2428
|
Button,
|
|
2386
2429
|
{
|
|
2387
2430
|
type: "button",
|
|
@@ -2400,16 +2443,16 @@ function SubmitButton({ amount, chainId, className, ...buttonProps }) {
|
|
|
2400
2443
|
" ETH"
|
|
2401
2444
|
] });
|
|
2402
2445
|
} else if (amount > (userBalance?.value ?? 0n)) {
|
|
2403
|
-
return /* @__PURE__ */
|
|
2446
|
+
return /* @__PURE__ */ jsx27(Button, { type: "button", className: twMerge14("w-full", className), disabled: true, children: "Insufficient balance" });
|
|
2404
2447
|
}
|
|
2405
2448
|
}
|
|
2406
|
-
return /* @__PURE__ */
|
|
2449
|
+
return /* @__PURE__ */ jsx27(Button, { type: "submit", className: twMerge14("w-full", className), ...buttonProps });
|
|
2407
2450
|
}
|
|
2408
2451
|
|
|
2409
2452
|
// src/icons/WarningIcon.tsx
|
|
2410
|
-
import { jsx as
|
|
2453
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
2411
2454
|
function WarningIcon(props) {
|
|
2412
|
-
return /* @__PURE__ */
|
|
2455
|
+
return /* @__PURE__ */ jsx28(IconSVG, { fill: "none", ...props, children: /* @__PURE__ */ jsx28(
|
|
2413
2456
|
"path",
|
|
2414
2457
|
{
|
|
2415
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",
|
|
@@ -2430,7 +2473,7 @@ function formatGas(wei) {
|
|
|
2430
2473
|
}
|
|
2431
2474
|
|
|
2432
2475
|
// src/onboarding/deposit/DepositForm.tsx
|
|
2433
|
-
import { Fragment as
|
|
2476
|
+
import { Fragment as Fragment3, jsx as jsx29, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
2434
2477
|
function DepositForm({
|
|
2435
2478
|
sourceChain,
|
|
2436
2479
|
setSourceChainId,
|
|
@@ -2444,7 +2487,7 @@ function DepositForm({
|
|
|
2444
2487
|
const amountInputRef = useRef4(null);
|
|
2445
2488
|
const isMounted = useIsMounted();
|
|
2446
2489
|
const { address: userAddress, chainId: userChainId } = useAccount3();
|
|
2447
|
-
const balance = useShowQueryError(
|
|
2490
|
+
const balance = useShowQueryError(useBalance4({ chainId: sourceChain.id, address: userAddress }));
|
|
2448
2491
|
const quarryBalance = useShowQueryError(useBalance(userAddress));
|
|
2449
2492
|
useWatchBlockNumber2({
|
|
2450
2493
|
onBlockNumber: () => {
|
|
@@ -2479,8 +2522,8 @@ function DepositForm({
|
|
|
2479
2522
|
},
|
|
2480
2523
|
children: [
|
|
2481
2524
|
/* @__PURE__ */ jsxs18("div", { className: "flex gap-2", children: [
|
|
2482
|
-
/* @__PURE__ */
|
|
2483
|
-
/* @__PURE__ */
|
|
2525
|
+
/* @__PURE__ */ jsx29(ChainSelect, { value: sourceChain.id, onChange: setSourceChainId }),
|
|
2526
|
+
/* @__PURE__ */ jsx29(AmountInput, { ref: amountInputRef, initialAmount: amount, onChange: setAmount })
|
|
2484
2527
|
] }),
|
|
2485
2528
|
/* @__PURE__ */ jsxs18(
|
|
2486
2529
|
"dl",
|
|
@@ -2490,21 +2533,21 @@ function DepositForm({
|
|
|
2490
2533
|
"divide-neutral-700 text-neutral-400"
|
|
2491
2534
|
),
|
|
2492
2535
|
children: [
|
|
2493
|
-
/* @__PURE__ */
|
|
2494
|
-
/* @__PURE__ */
|
|
2495
|
-
/* @__PURE__ */
|
|
2496
|
-
/* @__PURE__ */
|
|
2497
|
-
/* @__PURE__ */
|
|
2498
|
-
/* @__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: [
|
|
2499
2542
|
formatGas(estimatedFee.fee),
|
|
2500
2543
|
" gwei"
|
|
2501
|
-
] }) : estimatedFee.error ? /* @__PURE__ */
|
|
2502
|
-
/* @__PURE__ */
|
|
2503
|
-
/* @__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 })
|
|
2504
2547
|
]
|
|
2505
2548
|
}
|
|
2506
2549
|
),
|
|
2507
|
-
hasMinimumBalance ? submitButton : /* @__PURE__ */
|
|
2550
|
+
hasMinimumBalance ? submitButton : /* @__PURE__ */ jsx29(SubmitButton, { disabled: true, children: "Not enough funds" })
|
|
2508
2551
|
]
|
|
2509
2552
|
}
|
|
2510
2553
|
);
|
|
@@ -2558,7 +2601,7 @@ function useDeposits() {
|
|
|
2558
2601
|
}
|
|
2559
2602
|
|
|
2560
2603
|
// src/onboarding/deposit/DepositViaTransferForm.tsx
|
|
2561
|
-
import { jsx as
|
|
2604
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
2562
2605
|
function DepositViaTransferForm({ amount, setAmount, sourceChain, setSourceChainId }) {
|
|
2563
2606
|
const { chain } = useEntryKitConfig();
|
|
2564
2607
|
const paymaster = getPaymaster(chain);
|
|
@@ -2569,7 +2612,7 @@ function DepositViaTransferForm({ amount, setAmount, sourceChain, setSourceChain
|
|
|
2569
2612
|
if (!userAddress) {
|
|
2570
2613
|
throw new Error("User address not found");
|
|
2571
2614
|
}
|
|
2572
|
-
const { data: gasPrice } =
|
|
2615
|
+
const { data: gasPrice } = useQuery12({
|
|
2573
2616
|
queryKey: ["gasPrice", sourceChain.id],
|
|
2574
2617
|
queryFn: async () => {
|
|
2575
2618
|
if (!publicClient) throw new Error("Public client not available");
|
|
@@ -2626,7 +2669,7 @@ function DepositViaTransferForm({ amount, setAmount, sourceChain, setSourceChain
|
|
|
2626
2669
|
}
|
|
2627
2670
|
});
|
|
2628
2671
|
const estimatedFee = prepareData?.gas && gasPrice ? prepareData.gas * gasPrice : void 0;
|
|
2629
|
-
return /* @__PURE__ */
|
|
2672
|
+
return /* @__PURE__ */ jsx30(
|
|
2630
2673
|
DepositForm,
|
|
2631
2674
|
{
|
|
2632
2675
|
sourceChain,
|
|
@@ -2642,7 +2685,7 @@ function DepositViaTransferForm({ amount, setAmount, sourceChain, setSourceChain
|
|
|
2642
2685
|
onSubmit: async () => {
|
|
2643
2686
|
await deposit.mutateAsync();
|
|
2644
2687
|
},
|
|
2645
|
-
submitButton: /* @__PURE__ */
|
|
2688
|
+
submitButton: /* @__PURE__ */ jsx30(
|
|
2646
2689
|
SubmitButton,
|
|
2647
2690
|
{
|
|
2648
2691
|
variant: "primary",
|
|
@@ -2660,8 +2703,8 @@ function DepositViaTransferForm({ amount, setAmount, sourceChain, setSourceChain
|
|
|
2660
2703
|
// src/onboarding/deposit/DepositViaRelayForm.tsx
|
|
2661
2704
|
import { encodeFunctionData as encodeFunctionData3 } from "viem";
|
|
2662
2705
|
import { useAccount as useAccount5, useWalletClient } from "wagmi";
|
|
2663
|
-
import { useMutation as useMutation5, useQuery as
|
|
2664
|
-
import { jsx as
|
|
2706
|
+
import { useMutation as useMutation5, useQuery as useQuery13 } from "@tanstack/react-query";
|
|
2707
|
+
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
2665
2708
|
var ETH_ADDRESS = "0x0000000000000000000000000000000000000000";
|
|
2666
2709
|
function DepositViaRelayForm({ amount, setAmount, sourceChain, setSourceChainId }) {
|
|
2667
2710
|
const { chain, chainId: destinationChainId } = useEntryKitConfig();
|
|
@@ -2671,7 +2714,7 @@ function DepositViaRelayForm({ amount, setAmount, sourceChain, setSourceChainId
|
|
|
2671
2714
|
const { addDeposit } = useDeposits();
|
|
2672
2715
|
const { data: relay } = useRelay();
|
|
2673
2716
|
const relayClient = relay?.client;
|
|
2674
|
-
const quote =
|
|
2717
|
+
const quote = useQuery13({
|
|
2675
2718
|
queryKey: ["relayBridgeQuote", sourceChain.id, amount?.toString()],
|
|
2676
2719
|
queryFn: async () => {
|
|
2677
2720
|
if (!relayClient) throw new Error("No Relay client found.");
|
|
@@ -2747,7 +2790,7 @@ function DepositViaRelayForm({ amount, setAmount, sourceChain, setSourceChainId
|
|
|
2747
2790
|
const gasFee = BigInt(fees?.gas?.amount ?? 0);
|
|
2748
2791
|
const relayerFee = BigInt(fees?.relayer?.amount ?? 0);
|
|
2749
2792
|
const fee = gasFee + relayerFee;
|
|
2750
|
-
return /* @__PURE__ */
|
|
2793
|
+
return /* @__PURE__ */ jsx31(
|
|
2751
2794
|
DepositForm,
|
|
2752
2795
|
{
|
|
2753
2796
|
sourceChain,
|
|
@@ -2764,7 +2807,7 @@ function DepositViaRelayForm({ amount, setAmount, sourceChain, setSourceChainId
|
|
|
2764
2807
|
if (!quote.data || !amount) return;
|
|
2765
2808
|
await deposit.mutateAsync({ quote: quote.data, amount });
|
|
2766
2809
|
},
|
|
2767
|
-
submitButton: /* @__PURE__ */
|
|
2810
|
+
submitButton: /* @__PURE__ */ jsx31(
|
|
2768
2811
|
SubmitButton,
|
|
2769
2812
|
{
|
|
2770
2813
|
variant: "primary",
|
|
@@ -2781,19 +2824,19 @@ function DepositViaRelayForm({ amount, setAmount, sourceChain, setSourceChainId
|
|
|
2781
2824
|
|
|
2782
2825
|
// src/onboarding/deposit/Deposits.tsx
|
|
2783
2826
|
import { useEffect as useEffect13 } from "react";
|
|
2784
|
-
import { useQuery as
|
|
2827
|
+
import { useQuery as useQuery16, useQueryClient as useQueryClient7 } from "@tanstack/react-query";
|
|
2785
2828
|
|
|
2786
2829
|
// src/onboarding/deposit/TransferDepositStatus.tsx
|
|
2787
|
-
import { useQuery as
|
|
2830
|
+
import { useQuery as useQuery14 } from "@tanstack/react-query";
|
|
2788
2831
|
|
|
2789
2832
|
// src/onboarding/deposit/DepositStatus.tsx
|
|
2790
2833
|
import { useEffect as useEffect12, useState as useState3 } from "react";
|
|
2791
2834
|
import { twMerge as twMerge16 } from "tailwind-merge";
|
|
2792
2835
|
|
|
2793
2836
|
// src/icons/CloseIcon.tsx
|
|
2794
|
-
import { jsx as
|
|
2837
|
+
import { jsx as jsx32 } from "react/jsx-runtime";
|
|
2795
2838
|
function CloseIcon(props) {
|
|
2796
|
-
return /* @__PURE__ */
|
|
2839
|
+
return /* @__PURE__ */ jsx32(IconSVG, { strokeWidth: "2", stroke: "currentColor", ...props, children: /* @__PURE__ */ jsx32(
|
|
2797
2840
|
"path",
|
|
2798
2841
|
{
|
|
2799
2842
|
d: "M6 18L18 6M6 6L18 18",
|
|
@@ -2807,7 +2850,7 @@ function CloseIcon(props) {
|
|
|
2807
2850
|
}
|
|
2808
2851
|
|
|
2809
2852
|
// src/onboarding/deposit/DepositStatus.tsx
|
|
2810
|
-
import { jsx as
|
|
2853
|
+
import { jsx as jsx33, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
2811
2854
|
function DepositStatus({ status, progress, children, onDismiss }) {
|
|
2812
2855
|
const [appear, setAppear] = useState3(false);
|
|
2813
2856
|
useEffect12(() => {
|
|
@@ -2815,10 +2858,10 @@ function DepositStatus({ status, progress, children, onDismiss }) {
|
|
|
2815
2858
|
}, []);
|
|
2816
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: [
|
|
2817
2860
|
/* @__PURE__ */ jsxs19("div", { className: "py-1 text-sm flex items-center gap-2", children: [
|
|
2818
|
-
/* @__PURE__ */
|
|
2861
|
+
/* @__PURE__ */ jsx33("div", { className: "flex-grow", children }),
|
|
2819
2862
|
/* @__PURE__ */ jsxs19("div", { className: "flex-shrink-0 grid", children: [
|
|
2820
|
-
/* @__PURE__ */
|
|
2821
|
-
/* @__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(
|
|
2822
2865
|
"button",
|
|
2823
2866
|
{
|
|
2824
2867
|
type: "button",
|
|
@@ -2830,12 +2873,12 @@ function DepositStatus({ status, progress, children, onDismiss }) {
|
|
|
2830
2873
|
),
|
|
2831
2874
|
title: "Dismiss",
|
|
2832
2875
|
onClick: onDismiss,
|
|
2833
|
-
children: /* @__PURE__ */
|
|
2876
|
+
children: /* @__PURE__ */ jsx33(CloseIcon, {})
|
|
2834
2877
|
}
|
|
2835
2878
|
)
|
|
2836
2879
|
] })
|
|
2837
2880
|
] }),
|
|
2838
|
-
/* @__PURE__ */
|
|
2881
|
+
/* @__PURE__ */ jsx33("div", { className: "w-full h-[2px] -mt-full overflow-clip", children: /* @__PURE__ */ jsx33(
|
|
2839
2882
|
"div",
|
|
2840
2883
|
{
|
|
2841
2884
|
className: twMerge16(
|
|
@@ -2855,7 +2898,7 @@ function DepositStatus({ status, progress, children, onDismiss }) {
|
|
|
2855
2898
|
|
|
2856
2899
|
// src/onboarding/deposit/TransferDepositStatus.tsx
|
|
2857
2900
|
import { useChains as useChains2 } from "wagmi";
|
|
2858
|
-
import { Fragment as
|
|
2901
|
+
import { Fragment as Fragment4, jsx as jsx34, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
2859
2902
|
function TransferDepositStatus({
|
|
2860
2903
|
amount,
|
|
2861
2904
|
chainL1Id,
|
|
@@ -2867,11 +2910,11 @@ function TransferDepositStatus({
|
|
|
2867
2910
|
}) {
|
|
2868
2911
|
const chains = useChains2();
|
|
2869
2912
|
const chain = chains.find((chain2) => chain2.id === chainL1Id);
|
|
2870
|
-
const receipt =
|
|
2913
|
+
const receipt = useQuery14({
|
|
2871
2914
|
queryKey: ["transferDepositStatus", hash],
|
|
2872
2915
|
queryFn: () => receiptPromise
|
|
2873
2916
|
});
|
|
2874
|
-
return /* @__PURE__ */
|
|
2917
|
+
return /* @__PURE__ */ jsx34(
|
|
2875
2918
|
DepositStatus,
|
|
2876
2919
|
{
|
|
2877
2920
|
status: receipt.status,
|
|
@@ -2883,10 +2926,10 @@ function TransferDepositStatus({
|
|
|
2883
2926
|
children: (() => {
|
|
2884
2927
|
const blockExplorer = chain.blockExplorers?.default.url;
|
|
2885
2928
|
if (receipt.status === "pending") {
|
|
2886
|
-
return /* @__PURE__ */ jsxs20(
|
|
2929
|
+
return /* @__PURE__ */ jsxs20(Fragment4, { children: [
|
|
2887
2930
|
"Confirming deposit on",
|
|
2888
2931
|
" ",
|
|
2889
|
-
/* @__PURE__ */
|
|
2932
|
+
/* @__PURE__ */ jsx34(
|
|
2890
2933
|
"a",
|
|
2891
2934
|
{
|
|
2892
2935
|
href: blockExplorer ? `${blockExplorer}/tx/${hash}` : void 0,
|
|
@@ -2899,10 +2942,10 @@ function TransferDepositStatus({
|
|
|
2899
2942
|
] });
|
|
2900
2943
|
}
|
|
2901
2944
|
if (receipt.status === "error") {
|
|
2902
|
-
return /* @__PURE__ */ jsxs20(
|
|
2945
|
+
return /* @__PURE__ */ jsxs20(Fragment4, { children: [
|
|
2903
2946
|
"Could not find deposit on",
|
|
2904
2947
|
" ",
|
|
2905
|
-
/* @__PURE__ */
|
|
2948
|
+
/* @__PURE__ */ jsx34(
|
|
2906
2949
|
"a",
|
|
2907
2950
|
{
|
|
2908
2951
|
href: blockExplorer ? `${blockExplorer}/tx/${hash}` : void 0,
|
|
@@ -2914,10 +2957,10 @@ function TransferDepositStatus({
|
|
|
2914
2957
|
"."
|
|
2915
2958
|
] });
|
|
2916
2959
|
}
|
|
2917
|
-
return /* @__PURE__ */ jsxs20(
|
|
2960
|
+
return /* @__PURE__ */ jsxs20(Fragment4, { children: [
|
|
2918
2961
|
"Successfully",
|
|
2919
2962
|
" ",
|
|
2920
|
-
/* @__PURE__ */
|
|
2963
|
+
/* @__PURE__ */ jsx34(
|
|
2921
2964
|
"a",
|
|
2922
2965
|
{
|
|
2923
2966
|
href: blockExplorer ? `${blockExplorer}/tx/${receipt.data.transactionHash}` : void 0,
|
|
@@ -2927,7 +2970,7 @@ function TransferDepositStatus({
|
|
|
2927
2970
|
}
|
|
2928
2971
|
),
|
|
2929
2972
|
" ",
|
|
2930
|
-
/* @__PURE__ */
|
|
2973
|
+
/* @__PURE__ */ jsx34(Balance, { wei: amount })
|
|
2931
2974
|
] });
|
|
2932
2975
|
})()
|
|
2933
2976
|
}
|
|
@@ -2935,9 +2978,9 @@ function TransferDepositStatus({
|
|
|
2935
2978
|
}
|
|
2936
2979
|
|
|
2937
2980
|
// src/onboarding/deposit/RelayDepositStatus.tsx
|
|
2938
|
-
import { useQuery as
|
|
2981
|
+
import { useQuery as useQuery15 } from "@tanstack/react-query";
|
|
2939
2982
|
import { useChains as useChains3 } from "wagmi";
|
|
2940
|
-
import { Fragment as
|
|
2983
|
+
import { Fragment as Fragment5, jsx as jsx35, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
2941
2984
|
function RelayDepositStatus({
|
|
2942
2985
|
amount,
|
|
2943
2986
|
chainL1Id,
|
|
@@ -2950,11 +2993,11 @@ function RelayDepositStatus({
|
|
|
2950
2993
|
const chains = useChains3();
|
|
2951
2994
|
const chainL1 = chains.find((chain) => chain.id === chainL1Id);
|
|
2952
2995
|
const chainL2 = chains.find((chain) => chain.id === chainL2Id);
|
|
2953
|
-
const deposit =
|
|
2996
|
+
const deposit = useQuery15({
|
|
2954
2997
|
queryKey: ["relayDepositPromise", chainL1Id, chainL2Id, amount.toString(), start.toISOString()],
|
|
2955
2998
|
queryFn: () => depositPromise
|
|
2956
2999
|
});
|
|
2957
|
-
return /* @__PURE__ */
|
|
3000
|
+
return /* @__PURE__ */ jsx35(
|
|
2958
3001
|
DepositStatus,
|
|
2959
3002
|
{
|
|
2960
3003
|
status: deposit.status,
|
|
@@ -2965,22 +3008,22 @@ function RelayDepositStatus({
|
|
|
2965
3008
|
onDismiss,
|
|
2966
3009
|
children: (() => {
|
|
2967
3010
|
if (deposit.status === "pending") {
|
|
2968
|
-
return /* @__PURE__ */ jsxs21(
|
|
3011
|
+
return /* @__PURE__ */ jsxs21(Fragment5, { children: [
|
|
2969
3012
|
"Relay bridge deposit pending on ",
|
|
2970
3013
|
chainL1.name,
|
|
2971
3014
|
"\u2026"
|
|
2972
3015
|
] });
|
|
2973
3016
|
}
|
|
2974
3017
|
if (deposit.status === "error") {
|
|
2975
|
-
return /* @__PURE__ */ jsxs21(
|
|
3018
|
+
return /* @__PURE__ */ jsxs21(Fragment5, { children: [
|
|
2976
3019
|
"Relay bridge deposit to ",
|
|
2977
3020
|
chainL2.name,
|
|
2978
3021
|
" failed."
|
|
2979
3022
|
] });
|
|
2980
3023
|
}
|
|
2981
|
-
return /* @__PURE__ */ jsxs21(
|
|
3024
|
+
return /* @__PURE__ */ jsxs21(Fragment5, { children: [
|
|
2982
3025
|
"Successfully bridged ",
|
|
2983
|
-
/* @__PURE__ */
|
|
3026
|
+
/* @__PURE__ */ jsx35(Balance, { wei: amount }),
|
|
2984
3027
|
" to ",
|
|
2985
3028
|
chainL2.name,
|
|
2986
3029
|
"!"
|
|
@@ -2992,14 +3035,14 @@ function RelayDepositStatus({
|
|
|
2992
3035
|
|
|
2993
3036
|
// src/onboarding/deposit/Deposits.tsx
|
|
2994
3037
|
import { useAccount as useAccount6, useClient as useClient11 } from "wagmi";
|
|
2995
|
-
import { jsx as
|
|
3038
|
+
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
2996
3039
|
function Deposits() {
|
|
2997
3040
|
const queryClient = useQueryClient7();
|
|
2998
3041
|
const { chainId } = useEntryKitConfig();
|
|
2999
3042
|
const client = useClient11({ chainId });
|
|
3000
3043
|
const { address: userAddress } = useAccount6();
|
|
3001
3044
|
const { deposits, removeDeposit } = useDeposits();
|
|
3002
|
-
const { data: isComplete } =
|
|
3045
|
+
const { data: isComplete } = useQuery16({
|
|
3003
3046
|
queryKey: ["depositsComplete", deposits.map((deposit) => deposit.uid)],
|
|
3004
3047
|
queryFn: async () => {
|
|
3005
3048
|
if (!deposits.length) return false;
|
|
@@ -3014,17 +3057,17 @@ function Deposits() {
|
|
|
3014
3057
|
}
|
|
3015
3058
|
}, [client?.uid, isComplete, queryClient, userAddress]);
|
|
3016
3059
|
if (!deposits.length) return null;
|
|
3017
|
-
return /* @__PURE__ */
|
|
3060
|
+
return /* @__PURE__ */ jsx36("div", { className: "flex flex-col gap-1 mt-4", children: deposits.map((deposit) => {
|
|
3018
3061
|
if (deposit.type === "transfer") {
|
|
3019
|
-
return /* @__PURE__ */
|
|
3062
|
+
return /* @__PURE__ */ jsx36(TransferDepositStatus, { ...deposit, onDismiss: () => removeDeposit(deposit.uid) }, deposit.uid);
|
|
3020
3063
|
} else if (deposit.type === "relay") {
|
|
3021
|
-
return /* @__PURE__ */
|
|
3064
|
+
return /* @__PURE__ */ jsx36(RelayDepositStatus, { ...deposit, onDismiss: () => removeDeposit(deposit.uid) }, deposit.uid);
|
|
3022
3065
|
}
|
|
3023
3066
|
}) });
|
|
3024
3067
|
}
|
|
3025
3068
|
|
|
3026
3069
|
// src/onboarding/deposit/DepositFormContainer.tsx
|
|
3027
|
-
import { jsx as
|
|
3070
|
+
import { jsx as jsx37, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
3028
3071
|
function DepositFormContainer() {
|
|
3029
3072
|
const { chainId: destinationChainId } = useEntryKitConfig();
|
|
3030
3073
|
const chainId = useChainId();
|
|
@@ -3033,7 +3076,7 @@ function DepositFormContainer() {
|
|
|
3033
3076
|
const [sourceChainId, setSourceChainId] = useState4(chainId);
|
|
3034
3077
|
const sourceChain = chains.find(({ id }) => id === sourceChainId);
|
|
3035
3078
|
return /* @__PURE__ */ jsxs22("div", { className: "pt-10 pb-2", children: [
|
|
3036
|
-
destinationChainId === sourceChainId ? /* @__PURE__ */
|
|
3079
|
+
destinationChainId === sourceChainId ? /* @__PURE__ */ jsx37(
|
|
3037
3080
|
DepositViaTransferForm,
|
|
3038
3081
|
{
|
|
3039
3082
|
amount,
|
|
@@ -3041,7 +3084,7 @@ function DepositFormContainer() {
|
|
|
3041
3084
|
sourceChain,
|
|
3042
3085
|
setSourceChainId
|
|
3043
3086
|
}
|
|
3044
|
-
) : /* @__PURE__ */
|
|
3087
|
+
) : /* @__PURE__ */ jsx37(
|
|
3045
3088
|
DepositViaRelayForm,
|
|
3046
3089
|
{
|
|
3047
3090
|
amount,
|
|
@@ -3050,14 +3093,14 @@ function DepositFormContainer() {
|
|
|
3050
3093
|
setSourceChainId
|
|
3051
3094
|
}
|
|
3052
3095
|
),
|
|
3053
|
-
/* @__PURE__ */
|
|
3096
|
+
/* @__PURE__ */ jsx37(Deposits, {})
|
|
3054
3097
|
] });
|
|
3055
3098
|
}
|
|
3056
3099
|
|
|
3057
3100
|
// src/icons/ArrowLeftIcon.tsx
|
|
3058
|
-
import { jsx as
|
|
3101
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
3059
3102
|
function ArrowLeftIcon(props) {
|
|
3060
|
-
return /* @__PURE__ */
|
|
3103
|
+
return /* @__PURE__ */ jsx38(IconSVG, { ...props, children: /* @__PURE__ */ jsx38(
|
|
3061
3104
|
"path",
|
|
3062
3105
|
{
|
|
3063
3106
|
d: "M19 12H5M12 19l-7-7 7-7",
|
|
@@ -3077,7 +3120,7 @@ import { useAccount as useAccount7, useClient as useClient12, useSwitchChain as
|
|
|
3077
3120
|
import { twMerge as twMerge17 } from "tailwind-merge";
|
|
3078
3121
|
import { useMutation as useMutation6 } from "@tanstack/react-query";
|
|
3079
3122
|
import { useQueryClient as useQueryClient8 } from "@tanstack/react-query";
|
|
3080
|
-
import { jsx as
|
|
3123
|
+
import { jsx as jsx39, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
3081
3124
|
function WithdrawGasBalanceButton({ userAddress }) {
|
|
3082
3125
|
const { writeContractAsync } = useWriteContract2();
|
|
3083
3126
|
const { switchChain } = useSwitchChain3();
|
|
@@ -3116,7 +3159,7 @@ function WithdrawGasBalanceButton({ userAddress }) {
|
|
|
3116
3159
|
if (balance.data == null || balance.data === 0n) {
|
|
3117
3160
|
return null;
|
|
3118
3161
|
}
|
|
3119
|
-
return /* @__PURE__ */
|
|
3162
|
+
return /* @__PURE__ */ jsx39(
|
|
3120
3163
|
"button",
|
|
3121
3164
|
{
|
|
3122
3165
|
onClick: () => {
|
|
@@ -3140,19 +3183,19 @@ function WithdrawGasBalanceButton({ userAddress }) {
|
|
|
3140
3183
|
shouldSwitchChain && "group-hover:hidden"
|
|
3141
3184
|
),
|
|
3142
3185
|
children: [
|
|
3143
|
-
withdraw.isPending && /* @__PURE__ */
|
|
3186
|
+
withdraw.isPending && /* @__PURE__ */ jsx39(PendingIcon, { className: "w-3 h-3" }),
|
|
3144
3187
|
"Withdraw"
|
|
3145
3188
|
]
|
|
3146
3189
|
}
|
|
3147
3190
|
),
|
|
3148
|
-
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" })
|
|
3149
3192
|
] })
|
|
3150
3193
|
}
|
|
3151
3194
|
);
|
|
3152
3195
|
}
|
|
3153
3196
|
|
|
3154
3197
|
// src/onboarding/quarry/GasBalance.tsx
|
|
3155
|
-
import { jsx as
|
|
3198
|
+
import { jsx as jsx40, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
3156
3199
|
function GasBalance2({ isActive, isExpanded, isFocused, setFocused, userAddress }) {
|
|
3157
3200
|
const queryClient = useQueryClient9();
|
|
3158
3201
|
const balance = useShowQueryError(useBalance(userAddress));
|
|
@@ -3165,25 +3208,25 @@ function GasBalance2({ isActive, isExpanded, isFocused, setFocused, userAddress
|
|
|
3165
3208
|
}, [balance.data, prevBalance, setFocused, queryClient, userAddress]);
|
|
3166
3209
|
if (isFocused) {
|
|
3167
3210
|
return /* @__PURE__ */ jsxs24("div", { children: [
|
|
3168
|
-
isFocused && /* @__PURE__ */
|
|
3211
|
+
isFocused && /* @__PURE__ */ jsx40("div", { className: "absolute top-0 left-0", children: /* @__PURE__ */ jsx40(
|
|
3169
3212
|
"div",
|
|
3170
3213
|
{
|
|
3171
3214
|
className: "flex items-center justify-center w-10 h-10 text-white/20 hover:text-white/40 cursor-pointer",
|
|
3172
3215
|
onClick: () => setFocused(false),
|
|
3173
|
-
children: /* @__PURE__ */
|
|
3216
|
+
children: /* @__PURE__ */ jsx40(ArrowLeftIcon, { className: "m-0" })
|
|
3174
3217
|
}
|
|
3175
3218
|
) }),
|
|
3176
|
-
/* @__PURE__ */
|
|
3219
|
+
/* @__PURE__ */ jsx40(DepositFormContainer, {})
|
|
3177
3220
|
] });
|
|
3178
3221
|
}
|
|
3179
3222
|
return /* @__PURE__ */ jsxs24("div", { className: "flex flex-col gap-4", children: [
|
|
3180
3223
|
/* @__PURE__ */ jsxs24("div", { className: "flex justify-between gap-4", children: [
|
|
3181
3224
|
/* @__PURE__ */ jsxs24("div", { children: [
|
|
3182
|
-
/* @__PURE__ */
|
|
3183
|
-
/* @__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" }) })
|
|
3184
3227
|
] }),
|
|
3185
3228
|
/* @__PURE__ */ jsxs24("div", { className: "flex flex-col gap-1 justify-center items-center", children: [
|
|
3186
|
-
/* @__PURE__ */
|
|
3229
|
+
/* @__PURE__ */ jsx40(
|
|
3187
3230
|
Button,
|
|
3188
3231
|
{
|
|
3189
3232
|
variant: isActive ? "primary" : "tertiary",
|
|
@@ -3194,15 +3237,15 @@ function GasBalance2({ isActive, isExpanded, isFocused, setFocused, userAddress
|
|
|
3194
3237
|
children: "Top up"
|
|
3195
3238
|
}
|
|
3196
3239
|
),
|
|
3197
|
-
/* @__PURE__ */
|
|
3240
|
+
/* @__PURE__ */ jsx40(WithdrawGasBalanceButton, { userAddress })
|
|
3198
3241
|
] })
|
|
3199
3242
|
] }),
|
|
3200
|
-
isExpanded ? /* @__PURE__ */
|
|
3243
|
+
isExpanded ? /* @__PURE__ */ jsx40("p", { className: "text-sm", children: "Your gas balance is used to pay for onchain computation." }) : null
|
|
3201
3244
|
] });
|
|
3202
3245
|
}
|
|
3203
3246
|
|
|
3204
3247
|
// src/onboarding/ConnectedSteps.tsx
|
|
3205
|
-
import { jsx as
|
|
3248
|
+
import { jsx as jsx41 } from "react/jsx-runtime";
|
|
3206
3249
|
function ConnectedSteps({ userClient, initialUserAddress }) {
|
|
3207
3250
|
const { chain } = useEntryKitConfig();
|
|
3208
3251
|
const paymaster = getPaymaster(chain);
|
|
@@ -3243,7 +3286,7 @@ function ConnectedSteps({ userClient, initialUserAddress }) {
|
|
|
3243
3286
|
{
|
|
3244
3287
|
id: "wallet",
|
|
3245
3288
|
isComplete: true,
|
|
3246
|
-
content: (props) => /* @__PURE__ */
|
|
3289
|
+
content: (props) => /* @__PURE__ */ jsx41(Wallet, { ...props, userAddress })
|
|
3247
3290
|
}
|
|
3248
3291
|
];
|
|
3249
3292
|
if (!paymaster) {
|
|
@@ -3251,7 +3294,7 @@ function ConnectedSteps({ userClient, initialUserAddress }) {
|
|
|
3251
3294
|
steps2.push({
|
|
3252
3295
|
id: "gasBalance",
|
|
3253
3296
|
isComplete: !!hasGasBalance,
|
|
3254
|
-
content: (props) => /* @__PURE__ */
|
|
3297
|
+
content: (props) => /* @__PURE__ */ jsx41(GasBalance, { ...props, sessionAddress })
|
|
3255
3298
|
});
|
|
3256
3299
|
}
|
|
3257
3300
|
} else if (paymaster.type === "quarry") {
|
|
@@ -3259,20 +3302,20 @@ function ConnectedSteps({ userClient, initialUserAddress }) {
|
|
|
3259
3302
|
steps2.push({
|
|
3260
3303
|
id: "allowance",
|
|
3261
3304
|
isComplete: !!hasAllowance,
|
|
3262
|
-
content: (props) => /* @__PURE__ */
|
|
3305
|
+
content: (props) => /* @__PURE__ */ jsx41(Allowance, { ...props, userAddress })
|
|
3263
3306
|
});
|
|
3264
3307
|
} else {
|
|
3265
3308
|
steps2.push({
|
|
3266
3309
|
id: "gasBalanceQuarry",
|
|
3267
3310
|
isComplete: !!hasQuarryGasBalance,
|
|
3268
|
-
content: (props) => /* @__PURE__ */
|
|
3311
|
+
content: (props) => /* @__PURE__ */ jsx41(GasBalance2, { ...props, userAddress })
|
|
3269
3312
|
});
|
|
3270
3313
|
}
|
|
3271
3314
|
}
|
|
3272
3315
|
steps2.push({
|
|
3273
3316
|
id: "session",
|
|
3274
3317
|
isComplete: !!isSpender && !!hasDelegation,
|
|
3275
|
-
content: (props) => /* @__PURE__ */
|
|
3318
|
+
content: (props) => /* @__PURE__ */ jsx41(Session, { ...props, userClient, registerSpender: !isSpender, registerDelegation: !hasDelegation })
|
|
3276
3319
|
});
|
|
3277
3320
|
return steps2;
|
|
3278
3321
|
}, [
|
|
@@ -3291,7 +3334,7 @@ function ConnectedSteps({ userClient, initialUserAddress }) {
|
|
|
3291
3334
|
const completedSteps = steps.filter((step) => step.isComplete);
|
|
3292
3335
|
const activeStep = (selectedStepId != null ? steps.find((step) => step.id === selectedStepId) : null) ?? nextStep ?? (completedSteps.length < steps.length ? completedSteps.at(-1) : null);
|
|
3293
3336
|
const activeStepIndex = activeStep ? steps.indexOf(activeStep) : -1;
|
|
3294
|
-
return /* @__PURE__ */
|
|
3337
|
+
return /* @__PURE__ */ jsx41(
|
|
3295
3338
|
"div",
|
|
3296
3339
|
{
|
|
3297
3340
|
className: twMerge18(
|
|
@@ -3316,7 +3359,7 @@ function ConnectedSteps({ userClient, initialUserAddress }) {
|
|
|
3316
3359
|
}
|
|
3317
3360
|
return null;
|
|
3318
3361
|
}
|
|
3319
|
-
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);
|
|
3320
3363
|
})
|
|
3321
3364
|
}
|
|
3322
3365
|
);
|
|
@@ -3324,16 +3367,16 @@ function ConnectedSteps({ userClient, initialUserAddress }) {
|
|
|
3324
3367
|
|
|
3325
3368
|
// src/AccountModalContent.tsx
|
|
3326
3369
|
import { useRef as useRef6 } from "react";
|
|
3327
|
-
import { jsx as
|
|
3370
|
+
import { jsx as jsx42 } from "react/jsx-runtime";
|
|
3328
3371
|
function AccountModalContent() {
|
|
3329
3372
|
const { chainId } = useEntryKitConfig();
|
|
3330
3373
|
const userClient = useConnectorClient({ chainId });
|
|
3331
3374
|
const { address: userAddress } = useAccount8();
|
|
3332
3375
|
const initialUserAddress = useRef6(userAddress);
|
|
3333
3376
|
if (userClient.status !== "success") {
|
|
3334
|
-
return /* @__PURE__ */
|
|
3377
|
+
return /* @__PURE__ */ jsx42(ConnectWallet, {});
|
|
3335
3378
|
}
|
|
3336
|
-
return /* @__PURE__ */
|
|
3379
|
+
return /* @__PURE__ */ jsx42(ConnectedSteps, { userClient: userClient.data, initialUserAddress: initialUserAddress.current });
|
|
3337
3380
|
}
|
|
3338
3381
|
|
|
3339
3382
|
// src/AccountModal.tsx
|
|
@@ -3344,7 +3387,7 @@ import { ErrorBoundary } from "react-error-boundary";
|
|
|
3344
3387
|
import { wait } from "@latticexyz/common/utils";
|
|
3345
3388
|
import { useEffect as useEffect16 } from "react";
|
|
3346
3389
|
import { twMerge as twMerge19 } from "tailwind-merge";
|
|
3347
|
-
import { Fragment as
|
|
3390
|
+
import { Fragment as Fragment6, jsx as jsx43, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
3348
3391
|
function ErrorOverlay({ error: error2, retry, dismiss }) {
|
|
3349
3392
|
useEffect16(() => {
|
|
3350
3393
|
if (error2) {
|
|
@@ -3352,7 +3395,7 @@ function ErrorOverlay({ error: error2, retry, dismiss }) {
|
|
|
3352
3395
|
}
|
|
3353
3396
|
}, [error2]);
|
|
3354
3397
|
return /* @__PURE__ */ jsxs25("div", { className: "pointer-events-none absolute inset-0 overflow-clip", children: [
|
|
3355
|
-
/* @__PURE__ */
|
|
3398
|
+
/* @__PURE__ */ jsx43(
|
|
3356
3399
|
"div",
|
|
3357
3400
|
{
|
|
3358
3401
|
className: twMerge19(
|
|
@@ -3362,7 +3405,7 @@ function ErrorOverlay({ error: error2, retry, dismiss }) {
|
|
|
3362
3405
|
)
|
|
3363
3406
|
}
|
|
3364
3407
|
),
|
|
3365
|
-
/* @__PURE__ */
|
|
3408
|
+
/* @__PURE__ */ jsx43(
|
|
3366
3409
|
"div",
|
|
3367
3410
|
{
|
|
3368
3411
|
className: twMerge19(
|
|
@@ -3370,15 +3413,15 @@ function ErrorOverlay({ error: error2, retry, dismiss }) {
|
|
|
3370
3413
|
"transition duration-300",
|
|
3371
3414
|
error2 ? "translate-y-0 opacity-100 pointer-events-auto" : "-translate-y-4 opacity-0"
|
|
3372
3415
|
),
|
|
3373
|
-
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: [
|
|
3374
3417
|
/* @__PURE__ */ jsxs25("div", { className: "space-y-6 px-8 pt-8", children: [
|
|
3375
|
-
/* @__PURE__ */
|
|
3376
|
-
/* @__PURE__ */
|
|
3377
|
-
/* @__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." })
|
|
3378
3421
|
] }),
|
|
3379
3422
|
/* @__PURE__ */ jsxs25("div", { className: "pointer-events-none sticky bottom-0 left-0 -mt-2", children: [
|
|
3380
|
-
/* @__PURE__ */
|
|
3381
|
-
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(
|
|
3382
3425
|
"button",
|
|
3383
3426
|
{
|
|
3384
3427
|
type: "button",
|
|
@@ -3397,11 +3440,11 @@ function ErrorOverlay({ error: error2, retry, dismiss }) {
|
|
|
3397
3440
|
}
|
|
3398
3441
|
},
|
|
3399
3442
|
children: [
|
|
3400
|
-
/* @__PURE__ */
|
|
3401
|
-
/* @__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" })
|
|
3402
3445
|
]
|
|
3403
3446
|
}
|
|
3404
|
-
) }) : dismiss ? /* @__PURE__ */
|
|
3447
|
+
) }) : dismiss ? /* @__PURE__ */ jsx43("div", { className: "bg-blue-700 text-center", children: /* @__PURE__ */ jsx43(
|
|
3405
3448
|
"button",
|
|
3406
3449
|
{
|
|
3407
3450
|
type: "button",
|
|
@@ -3423,24 +3466,24 @@ function ErrorOverlay({ error: error2, retry, dismiss }) {
|
|
|
3423
3466
|
}
|
|
3424
3467
|
|
|
3425
3468
|
// src/errors/ErrorFallback.tsx
|
|
3426
|
-
import { jsx as
|
|
3469
|
+
import { jsx as jsx44 } from "react/jsx-runtime";
|
|
3427
3470
|
function ErrorFallback({ error: error2, resetErrorBoundary }) {
|
|
3428
|
-
return /* @__PURE__ */
|
|
3471
|
+
return /* @__PURE__ */ jsx44("div", { className: "h-64", children: /* @__PURE__ */ jsx44(ErrorOverlay, { error: error2, retry: resetErrorBoundary }) });
|
|
3429
3472
|
}
|
|
3430
3473
|
|
|
3431
3474
|
// src/errors/ErrorsOverlay.tsx
|
|
3432
3475
|
import { useStore as useStore3 } from "zustand";
|
|
3433
|
-
import { jsx as
|
|
3476
|
+
import { jsx as jsx45 } from "react/jsx-runtime";
|
|
3434
3477
|
function ErrorsOverlay() {
|
|
3435
3478
|
const error2 = useStore3(store3, (state) => state.errors.at(0));
|
|
3436
|
-
return /* @__PURE__ */
|
|
3479
|
+
return /* @__PURE__ */ jsx45(ErrorOverlay, { error: error2?.error, retry: error2?.retry, dismiss: error2?.dismiss });
|
|
3437
3480
|
}
|
|
3438
3481
|
|
|
3439
3482
|
// src/AccountModal.tsx
|
|
3440
|
-
import { jsx as
|
|
3483
|
+
import { jsx as jsx46, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
3441
3484
|
function AccountModal() {
|
|
3442
3485
|
const { accountModalOpen, toggleAccountModal } = useAccountModal();
|
|
3443
|
-
return /* @__PURE__ */
|
|
3486
|
+
return /* @__PURE__ */ jsx46(Modal, { open: accountModalOpen, onOpenChange: toggleAccountModal, children: accountModalOpen ? /* @__PURE__ */ jsxs26(
|
|
3444
3487
|
"div",
|
|
3445
3488
|
{
|
|
3446
3489
|
className: twMerge20(
|
|
@@ -3452,8 +3495,8 @@ function AccountModal() {
|
|
|
3452
3495
|
),
|
|
3453
3496
|
children: [
|
|
3454
3497
|
/* @__PURE__ */ jsxs26(ErrorBoundary, { FallbackComponent: ErrorFallback, children: [
|
|
3455
|
-
/* @__PURE__ */
|
|
3456
|
-
/* @__PURE__ */
|
|
3498
|
+
/* @__PURE__ */ jsx46(AccountModalContent, {}),
|
|
3499
|
+
/* @__PURE__ */ jsx46(ErrorsOverlay, {})
|
|
3457
3500
|
] }),
|
|
3458
3501
|
/* @__PURE__ */ jsxs26(
|
|
3459
3502
|
"a",
|
|
@@ -3463,12 +3506,12 @@ function AccountModal() {
|
|
|
3463
3506
|
rel: "noreferrer noopener",
|
|
3464
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",
|
|
3465
3508
|
children: [
|
|
3466
|
-
/* @__PURE__ */
|
|
3467
|
-
/* @__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" })
|
|
3468
3511
|
]
|
|
3469
3512
|
}
|
|
3470
3513
|
),
|
|
3471
|
-
/* @__PURE__ */
|
|
3514
|
+
/* @__PURE__ */ jsx46("div", { className: "absolute top-0 right-0", children: /* @__PURE__ */ jsx46(
|
|
3472
3515
|
DialogClose,
|
|
3473
3516
|
{
|
|
3474
3517
|
className: twMerge20(
|
|
@@ -3476,7 +3519,7 @@ function AccountModal() {
|
|
|
3476
3519
|
"text-white/20 hover:text-white/40"
|
|
3477
3520
|
),
|
|
3478
3521
|
title: "Close",
|
|
3479
|
-
children: /* @__PURE__ */
|
|
3522
|
+
children: /* @__PURE__ */ jsx46(CloseIcon, { className: "m-0" })
|
|
3480
3523
|
}
|
|
3481
3524
|
) })
|
|
3482
3525
|
]
|
|
@@ -3485,11 +3528,11 @@ function AccountModal() {
|
|
|
3485
3528
|
}
|
|
3486
3529
|
|
|
3487
3530
|
// src/EntryKitProvider.tsx
|
|
3488
|
-
import { jsx as
|
|
3531
|
+
import { jsx as jsx47, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
3489
3532
|
function EntryKitProvider({ config, children }) {
|
|
3490
3533
|
return /* @__PURE__ */ jsxs27(EntryKitConfigProvider, { config, children: [
|
|
3491
3534
|
children,
|
|
3492
|
-
/* @__PURE__ */
|
|
3535
|
+
/* @__PURE__ */ jsx47(AccountModal, {})
|
|
3493
3536
|
] });
|
|
3494
3537
|
}
|
|
3495
3538
|
|
|
@@ -3499,13 +3542,13 @@ import { twMerge as twMerge22 } from "tailwind-merge";
|
|
|
3499
3542
|
|
|
3500
3543
|
// src/AccountName.tsx
|
|
3501
3544
|
import { twMerge as twMerge21 } from "tailwind-merge";
|
|
3502
|
-
import { Fragment as
|
|
3545
|
+
import { Fragment as Fragment7, jsx as jsx48, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
3503
3546
|
function AccountName({ address }) {
|
|
3504
3547
|
const { data: ens } = useENS(address);
|
|
3505
3548
|
const avatar = usePreloadImage(ens?.avatar);
|
|
3506
|
-
return /* @__PURE__ */ jsxs28(
|
|
3549
|
+
return /* @__PURE__ */ jsxs28(Fragment7, { children: [
|
|
3507
3550
|
/* @__PURE__ */ jsxs28("span", { className: "flex-shrink-0 w-6 h-6 -my-1 -mx-0.5 grid place-items-center", children: [
|
|
3508
|
-
/* @__PURE__ */
|
|
3551
|
+
/* @__PURE__ */ jsx48(
|
|
3509
3552
|
"img",
|
|
3510
3553
|
{
|
|
3511
3554
|
src: ens?.avatar && avatar.isSuccess ? ens.avatar : void 0,
|
|
@@ -3517,7 +3560,7 @@ function AccountName({ address }) {
|
|
|
3517
3560
|
)
|
|
3518
3561
|
}
|
|
3519
3562
|
),
|
|
3520
|
-
/* @__PURE__ */
|
|
3563
|
+
/* @__PURE__ */ jsx48(
|
|
3521
3564
|
Logo,
|
|
3522
3565
|
{
|
|
3523
3566
|
className: twMerge21(
|
|
@@ -3528,13 +3571,13 @@ function AccountName({ address }) {
|
|
|
3528
3571
|
}
|
|
3529
3572
|
)
|
|
3530
3573
|
] }),
|
|
3531
|
-
/* @__PURE__ */
|
|
3574
|
+
/* @__PURE__ */ jsx48("span", { className: "flex-grow", children: ens?.name ?? /* @__PURE__ */ jsx48(TruncatedHex, { hex: address }) })
|
|
3532
3575
|
] });
|
|
3533
3576
|
}
|
|
3534
3577
|
|
|
3535
3578
|
// src/AccountButton.tsx
|
|
3536
3579
|
import { useRef as useRef7 } from "react";
|
|
3537
|
-
import { jsx as
|
|
3580
|
+
import { jsx as jsx49, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
3538
3581
|
var containerClassNames = twMerge22(
|
|
3539
3582
|
"w-48 p-3 inline-flex outline-none transition",
|
|
3540
3583
|
"border border-transparent",
|
|
@@ -3562,13 +3605,13 @@ function AccountButton() {
|
|
|
3562
3605
|
}
|
|
3563
3606
|
return "Sign in";
|
|
3564
3607
|
})();
|
|
3565
|
-
return /* @__PURE__ */
|
|
3608
|
+
return /* @__PURE__ */ jsx49(Shadow, { mode: "child", children: isSignedIn ? /* @__PURE__ */ jsx49(
|
|
3566
3609
|
"button",
|
|
3567
3610
|
{
|
|
3568
3611
|
type: "button",
|
|
3569
3612
|
className: twMerge22(containerClassNames, secondaryClassNames, secondaryInteractiveClassNames),
|
|
3570
3613
|
onClick: openAccountModal,
|
|
3571
|
-
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 })
|
|
3572
3615
|
},
|
|
3573
3616
|
"connected"
|
|
3574
3617
|
) : /* @__PURE__ */ jsxs29(
|
|
@@ -3587,7 +3630,7 @@ function AccountButton() {
|
|
|
3587
3630
|
onClick: openAccountModal,
|
|
3588
3631
|
children: [
|
|
3589
3632
|
/* @__PURE__ */ jsxs29("span", { className: "pointer-events-none inline-grid place-items-center -ml-3", children: [
|
|
3590
|
-
/* @__PURE__ */
|
|
3633
|
+
/* @__PURE__ */ jsx49(
|
|
3591
3634
|
"span",
|
|
3592
3635
|
{
|
|
3593
3636
|
className: twMerge22(
|
|
@@ -3595,10 +3638,10 @@ function AccountButton() {
|
|
|
3595
3638
|
"scale-100 opacity-100 transition duration-300",
|
|
3596
3639
|
"group-aria-busy:scale-125 group-aria-busy:opacity-0"
|
|
3597
3640
|
),
|
|
3598
|
-
children: /* @__PURE__ */
|
|
3641
|
+
children: /* @__PURE__ */ jsx49(Logo, {})
|
|
3599
3642
|
}
|
|
3600
3643
|
),
|
|
3601
|
-
/* @__PURE__ */
|
|
3644
|
+
/* @__PURE__ */ jsx49(
|
|
3602
3645
|
"span",
|
|
3603
3646
|
{
|
|
3604
3647
|
"aria-hidden": true,
|
|
@@ -3607,11 +3650,11 @@ function AccountButton() {
|
|
|
3607
3650
|
"scale-50 opacity-0 transition duration-300 delay-50",
|
|
3608
3651
|
"group-aria-busy:scale-100 group-aria-busy:opacity-100"
|
|
3609
3652
|
),
|
|
3610
|
-
children: /* @__PURE__ */
|
|
3653
|
+
children: /* @__PURE__ */ jsx49(PendingIcon, {})
|
|
3611
3654
|
}
|
|
3612
3655
|
)
|
|
3613
3656
|
] }),
|
|
3614
|
-
/* @__PURE__ */
|
|
3657
|
+
/* @__PURE__ */ jsx49("span", { className: "font-medium", children: buttonLabel })
|
|
3615
3658
|
]
|
|
3616
3659
|
},
|
|
3617
3660
|
"sign in"
|