@latticexyz/entrykit 2.2.22-6dc6a0a5c33aadacb3b2fcffeb488fc852db6054 → 2.2.22-7367a813d9b394415ba70678c4295cc90562c304

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