@latticexyz/entrykit 2.2.22-8c4b624756007fd02b1c3c3494e34128a5f1c044 → 2.2.22-91837e36ade680787d224691c848540fea793a5a

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