@betterinternship/components 1.3.3 → 1.3.5

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.
package/dist/index.esm.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import React__default, { useState, useRef } from 'react';
4
+ import { useQuery } from '@tanstack/react-query';
4
5
 
5
6
  function styleInject(css, ref) {
6
7
  if ( ref === void 0 ) ref = {};
@@ -29,7 +30,7 @@ function styleInject(css, ref) {
29
30
  }
30
31
  }
31
32
 
32
- var css_248z = "/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer theme, base, components, utilities;@layer theme{:host,:root{--font-sans:var(--font-geist-sans);--font-mono:var(--font-geist-mono);--color-red-50:oklch(97.1% 0.013 17.38);--color-green-50:oklch(98.2% 0.018 155.826);--color-blue-50:oklch(97% 0.014 254.604);--color-slate-800:oklch(27.9% 0.041 260.031);--color-gray-50:oklch(98.5% 0.002 247.839);--color-gray-300:oklch(87.2% 0.01 258.338);--color-gray-700:oklch(37.3% 0.034 259.733);--color-white:#fff;--spacing:0.25rem;--text-xs:0.75rem;--text-xs--line-height:1.33333;--text-sm:0.875rem;--text-sm--line-height:1.42857;--text-2xl:1.5rem;--text-2xl--line-height:1.33333;--font-weight-medium:500;--radius-sm:calc(var(--radius) - 4px);--radius-lg:var(--radius);--default-transition-duration:150ms;--default-transition-timing-function:cubic-bezier(0.4,0,0.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-background:var(--background);--color-foreground:var(--foreground);--color-ring:var(--ring);--color-border:var(--border);--color-destructive:var(--destructive);--color-destructive-foreground:var(--destructive-foreground);--color-supportive:var(--supportive);--color-supportive-foreground:var(--supportive-foreground);--color-accent-foreground:var(--accent-foreground);--color-accent:var(--accent);--color-secondary-foreground:var(--secondary-foreground);--color-secondary:var(--secondary);--color-primary-foreground:var(--primary-foreground);--color-primary:var(--primary)}}@layer base{*,::backdrop,::file-selector-button,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:var(--default-font-feature-settings,normal);-webkit-tap-highlight-color:transparent;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-variation-settings:var(--default-font-variation-settings,normal);line-height:1.5;tab-size:4}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:var(--default-mono-font-feature-settings,normal);font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-size:1em;font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}::file-selector-button,button,input,optgroup,select,textarea{font-feature-settings:inherit;background-color:transparent;border-radius:0;color:inherit;font:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::placeholder{color:currentcolor;@supports (color:color-mix(in lab,red,red)){color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}::file-selector-button,button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{border-width:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.not-sr-only{clip-path:none;height:auto;margin:0;overflow:visible;padding:0;position:static;white-space:normal;width:auto}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.-inset-1{inset:calc(var(--spacing)*-1)}.isolate{isolation:isolate}.isolation-auto{isolation:auto}.container{width:100%;@media (width >= 40rem){max-width:40rem}@media (width >= 48rem){max-width:48rem}@media (width >= 64rem){max-width:64rem}@media (width >= 80rem){max-width:80rem}@media (width >= 96rem){max-width:96rem}}.mb-4{margin-bottom:calc(var(--spacing)*4)}.block{display:block}.contents{display:contents}.flex{display:flex}.flow-root{display:flow-root}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.inline-table{display:inline-table}.list-item{display:list-item}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-column{display:table-column}.table-column-group{display:table-column-group}.table-footer-group{display:table-footer-group}.table-header-group{display:table-header-group}.table-row{display:table-row}.table-row-group{display:table-row-group}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-10{height:calc(var(--spacing)*10)}.h-11{height:calc(var(--spacing)*11)}.w-10{width:calc(var(--spacing)*10)}.shrink{flex-shrink:1}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.translate-none{translate:none}.scale-3d{scale:var(--tw-scale-x) var(--tw-scale-y) var(--tw-scale-z)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.touch-pinch-zoom{--tw-pinch-zoom:pinch-zoom;touch-action:var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing)*2)}.space-y-reverse{:where(&>:not(:last-child)){--tw-space-y-reverse:1}}.space-x-reverse{:where(&>:not(:last-child)){--tw-space-x-reverse:1}}.divide-x{:where(&>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-end-width:calc(1px*(1 - var(--tw-divide-x-reverse)));border-inline-start-width:calc(1px*var(--tw-divide-x-reverse));border-inline-style:var(--tw-border-style)}}.divide-y{:where(&>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-bottom-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse))}}.divide-y-reverse{:where(&>:not(:last-child)){--tw-divide-y-reverse:1}}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.rounded-\\[0\\.33em\\]{border-radius:.33em}.rounded-s{border-end-start-radius:.25rem}.rounded-s,.rounded-ss{border-start-start-radius:.25rem}.rounded-e{border-end-end-radius:.25rem}.rounded-e,.rounded-se{border-start-end-radius:.25rem}.rounded-ee{border-end-end-radius:.25rem}.rounded-es{border-end-start-radius:.25rem}.rounded-t{border-top-right-radius:.25rem}.rounded-l,.rounded-t{border-top-left-radius:.25rem}.rounded-l{border-bottom-left-radius:.25rem}.rounded-tl{border-top-left-radius:.25rem}.rounded-r{border-bottom-right-radius:.25rem}.rounded-r,.rounded-tr{border-top-right-radius:.25rem}.rounded-b{border-bottom-left-radius:.25rem}.rounded-b,.rounded-br{border-bottom-right-radius:.25rem}.rounded-bl{border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-destructive{border-color:var(--color-destructive)}.border-gray-300{border-color:var(--color-gray-300)}.border-primary{border-color:var(--color-primary)}.border-supportive{border-color:var(--color-supportive)}.bg-background{background-color:var(--color-background)}.bg-destructive{background-color:var(--color-destructive)}.bg-primary{background-color:var(--color-primary)}.bg-secondary{background-color:var(--color-secondary)}.bg-supportive{background-color:var(--color-supportive)}.bg-repeat{background-repeat:repeat}.mask-no-clip{mask-clip:no-clip}.mask-repeat{mask-repeat:repeat}.p-10{padding:calc(var(--spacing)*10)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.px-\\[1em\\]{padding-inline:1em}.py-\\[0\\.33em\\]{padding-block:.33em}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-wrap{text-wrap:wrap}.text-clip{text-overflow:clip}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.text-destructive{color:var(--color-destructive)}.text-destructive-foreground{color:var(--color-destructive-foreground)}.text-gray-700{color:var(--color-gray-700)}.text-primary{color:var(--color-primary)}.text-primary-foreground{color:var(--color-primary-foreground)}.text-secondary-foreground{color:var(--color-secondary-foreground)}.text-supportive{color:var(--color-supportive)}.text-supportive-foreground{color:var(--color-supportive-foreground)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.diagonal-fractions{--tw-numeric-fraction:diagonal-fractions}.diagonal-fractions,.lining-nums{font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.lining-nums{--tw-numeric-figure:lining-nums}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums}.oldstyle-nums,.ordinal{font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.ordinal{--tw-ordinal:ordinal}.proportional-nums{--tw-numeric-spacing:proportional-nums}.proportional-nums,.slashed-zero{font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.slashed-zero{--tw-slashed-zero:slashed-zero}.stacked-fractions{--tw-numeric-fraction:stacked-fractions}.stacked-fractions,.tabular-nums{font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums}.normal-nums{font-variant-numeric:normal}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,rgba(0,0,0,.1)),0 1px 2px -1px var(--tw-shadow-color,rgba(0,0,0,.1))}.ring,.shadow{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor)}.inset-ring{--tw-inset-ring-shadow:inset 0 0 0 1px var(--tw-inset-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px)}.blur,.drop-shadow{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,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,rgba(0,0,0,.1))) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,rgba(0,0,0,.06)));--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06))}.grayscale{--tw-grayscale:grayscale(100%)}.grayscale,.invert{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,)}.invert{--tw-invert:invert(100%)}.sepia{--tw-sepia:sepia(100%)}.filter,.sepia{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,)}.backdrop-blur{--tw-backdrop-blur:blur(8px)}.backdrop-blur,.backdrop-grayscale{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-grayscale{--tw-backdrop-grayscale:grayscale(100%)}.backdrop-invert{--tw-backdrop-invert:invert(100%)}.backdrop-invert,.backdrop-sepia{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-sepia{--tw-backdrop-sepia:sepia(100%)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-colors{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.divide-x-reverse{:where(&>:not(:last-child)){--tw-divide-x-reverse:1}}.paused{animation-play-state:paused}.ring-inset{--tw-ring-inset:inset}.running{animation-play-state:running}.zoom-in{--tw-enter-scale:0}.zoom-out{--tw-exit-scale:0}.hover\\:bg-accent{&:hover{@media (hover:hover){background-color:var(--color-accent)}}}.hover\\:bg-blue-50{&:hover{@media (hover:hover){background-color:var(--color-blue-50)}}}.hover\\:bg-destructive\\/90{&:hover{@media (hover:hover){background-color:var(--color-destructive);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-destructive) 90%,transparent)}}}}.hover\\:bg-green-50{&:hover{@media (hover:hover){background-color:var(--color-green-50)}}}.hover\\:bg-primary\\/90{&:hover{@media (hover:hover){background-color:var(--color-primary);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-primary) 90%,transparent)}}}}.hover\\:bg-red-50{&:hover{@media (hover:hover){background-color:var(--color-red-50)}}}.hover\\:bg-secondary\\/80{&:hover{@media (hover:hover){background-color:var(--color-secondary);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-secondary) 80%,transparent)}}}}.hover\\:bg-supportive\\/90{&:hover{@media (hover:hover){background-color:var(--color-supportive);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-supportive) 90%,transparent)}}}}.hover\\:text-accent-foreground{&:hover{@media (hover:hover){color:var(--color-accent-foreground)}}}.hover\\:underline{&:hover{@media (hover:hover){text-decoration-line:underline}}}.focus\\:ring-transparent{&:focus{--tw-ring-color:transparent}}.focus\\:outline-none{&:focus{--tw-outline-style:none;outline-style:none}}.disabled\\:pointer-events-none{&:disabled{pointer-events:none}}.disabled\\:opacity-50{&:disabled{opacity:50%}}.\\[\\&_svg\\]\\:pointer-events-none{& svg{pointer-events:none}}.\\[\\&_svg\\]\\:size-4{& svg{height:calc(var(--spacing)*4);width:calc(var(--spacing)*4)}}.\\[\\&_svg\\]\\:shrink-0{& svg{flex-shrink:0}}}@property --tw-animation-delay{syntax:\"*\";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:\"*\";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:\"*\";inherits:false}@property --tw-animation-fill-mode{syntax:\"*\";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:\"*\";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:\"*\";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:\"*\";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:\"*\";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:\"*\";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:\"*\";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:\"*\";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:\"*\";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:\"*\";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:\"*\";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:\"*\";inherits:false;initial-value:0}:root{--radius:0.625rem;--background:oklch(1 0 0);--foreground:oklch(0.145 0 0);--card:oklch(1 0 0);--card-foreground:oklch(0.145 0 0);--popover:oklch(1 0 0);--popover-foreground:oklch(0.145 0 0);--primary:oklch(0.441 0.122 251);--primary-foreground:oklch(0.984 0.003 210);--supportive:oklch(0.663 0.137 137);--supportive-foreground:oklch(0.984 0.003 210);--secondary:oklch(0.208 0.04 266);--secondary-foreground:oklch(0.968 0.007 210);--muted:oklch(0.968 0.007 210);--muted-foreground:oklch(0.554 0.041 257);--warning:oklch(0.731 0.144 64);--warning-foreground:oklch(0.968 0.007 210);--accent:oklch(0.97 0 0);--accent-foreground:oklch(0.205 0 0);--destructive:oklch(0.64 0.218 29);--destructive-foreground:oklch(0.984 0.003 210);--border:oklch(0.922 0 0);--input:oklch(0.922 0 0);--ring:oklch(0.708 0 0);--chart-1:oklch(0.646 0.222 41.116);--chart-2:oklch(0.6 0.118 184.704);--chart-3:oklch(0.398 0.07 227.392);--chart-4:oklch(0.828 0.189 84.429);--chart-5:oklch(0.769 0.188 70.08);--sidebar:oklch(0.985 0 0);--sidebar-foreground:oklch(0.145 0 0);--sidebar-primary:oklch(0.205 0 0);--sidebar-primary-foreground:oklch(0.985 0 0);--sidebar-accent:oklch(0.97 0 0);--sidebar-accent-foreground:oklch(0.205 0 0);--sidebar-border:oklch(0.922 0 0);--sidebar-ring:oklch(0.708 0 0)}/*! add in missing dark mode styles from above OR no dark mode at all (who tf over 30 needs it)*/.dark{--background:oklch(0.145 0 0);--foreground:oklch(0.985 0 0);--card:oklch(0.205 0 0);--card-foreground:oklch(0.985 0 0);--popover:oklch(0.205 0 0);--popover-foreground:oklch(0.985 0 0);--primary:oklch(0.922 0 0);--primary-foreground:oklch(0.205 0 0);--secondary:oklch(0.269 0 0);--secondary-foreground:oklch(0.985 0 0);--muted:oklch(0.269 0 0);--muted-foreground:oklch(0.708 0 0);--accent:oklch(0.269 0 0);--accent-foreground:oklch(0.985 0 0);--destructive:oklch(0.704 0.191 22.216);--border:oklch(1 0 0/10%);--input:oklch(1 0 0/15%);--ring:oklch(0.556 0 0);--chart-1:oklch(0.488 0.243 264.376);--chart-2:oklch(0.696 0.17 162.48);--chart-3:oklch(0.769 0.188 70.08);--chart-4:oklch(0.627 0.265 303.9);--chart-5:oklch(0.645 0.246 16.439);--sidebar:oklch(0.205 0 0);--sidebar-foreground:oklch(0.985 0 0);--sidebar-primary:oklch(0.488 0.243 264.376);--sidebar-primary-foreground:oklch(0.985 0 0);--sidebar-accent:oklch(0.269 0 0);--sidebar-accent-foreground:oklch(0.985 0 0);--sidebar-border:oklch(1 0 0/10%);--sidebar-ring:oklch(0.556 0 0)}@layer base{*{border-color:var(--color-border);outline-color:var(--color-ring);@supports (color:color-mix(in lab,red,red)){outline-color:color-mix(in oklab,var(--color-ring) 50%,transparent)}}body{background-color:var(--color-background);color:var(--color-foreground)}a{--tw-duration:200ms;border-radius:var(--radius-sm);color:var(--color-primary);transition-duration:var(--tw-duration,var(--default-transition-duration));transition-duration:.2s;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));&:hover{@media (hover:hover){color:var(--color-primary);@supports (color:color-mix(in lab,red,red)){color:color-mix(in oklab,var(--color-primary) 80%,transparent)}}}&:focus{--tw-outline-style:none;outline-style:none}}}@layer components{.bi-card{background-color:var(--color-white);border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;padding:calc(var(--spacing)*6);&:is(.dark *){border-color:var(--color-slate-800)}&:is(.dark *){background-color:var(--color-red-50)}}.bi-card-interactive{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));&:hover{@media (hover:hover){background-color:var(--color-gray-50)}}&:is(.dark *){&:hover{@media (hover:hover){background-color:color-mix(in srgb,oklch(27.9% .041 260.031) 60%,transparent);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-slate-800) 60%,transparent)}}}}}}body{height:100vh;margin:0;padding:0;width:100vw}html{overflow:hidden}*{box-sizing:border-box}@layer utilities{.pb-safe{padding-bottom:env(safe-area-inset-bottom)}.pt-safe{padding-top:env(safe-area-inset-top)}.pl-safe{padding-left:env(safe-area-inset-left)}.pr-safe{padding-right:env(safe-area-inset-right)}.webkit-overflow-scrolling-touch{-webkit-overflow-scrolling:touch}}.input-wrap{align-items:center;display:flex;height:40px}.input-wrap input{font-size:14px}.input-wrap input:focus{font-size:16px}@layer base{@media (max-width:639.98px){input:focus,select:focus,textarea:focus{font-size:1rem}}}@property --tw-scale-x{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-y{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-z{syntax:\"*\";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:\"*\";inherits:false}@property --tw-rotate-y{syntax:\"*\";inherits:false}@property --tw-rotate-z{syntax:\"*\";inherits:false}@property --tw-skew-x{syntax:\"*\";inherits:false}@property --tw-skew-y{syntax:\"*\";inherits:false}@property --tw-pan-x{syntax:\"*\";inherits:false}@property --tw-pan-y{syntax:\"*\";inherits:false}@property --tw-pinch-zoom{syntax:\"*\";inherits:false}@property --tw-space-y-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-divide-y-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-ordinal{syntax:\"*\";inherits:false}@property --tw-slashed-zero{syntax:\"*\";inherits:false}@property --tw-numeric-figure{syntax:\"*\";inherits:false}@property --tw-numeric-spacing{syntax:\"*\";inherits:false}@property --tw-numeric-fraction{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-blur{syntax:\"*\";inherits:false}@property --tw-brightness{syntax:\"*\";inherits:false}@property --tw-contrast{syntax:\"*\";inherits:false}@property --tw-grayscale{syntax:\"*\";inherits:false}@property --tw-hue-rotate{syntax:\"*\";inherits:false}@property --tw-invert{syntax:\"*\";inherits:false}@property --tw-opacity{syntax:\"*\";inherits:false}@property --tw-saturate{syntax:\"*\";inherits:false}@property --tw-sepia{syntax:\"*\";inherits:false}@property --tw-drop-shadow{syntax:\"*\";inherits:false}@property --tw-drop-shadow-color{syntax:\"*\";inherits:false}@property --tw-drop-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:\"*\";inherits:false}@property --tw-backdrop-blur{syntax:\"*\";inherits:false}@property --tw-backdrop-brightness{syntax:\"*\";inherits:false}@property --tw-backdrop-contrast{syntax:\"*\";inherits:false}@property --tw-backdrop-grayscale{syntax:\"*\";inherits:false}@property --tw-backdrop-hue-rotate{syntax:\"*\";inherits:false}@property --tw-backdrop-invert{syntax:\"*\";inherits:false}@property --tw-backdrop-opacity{syntax:\"*\";inherits:false}@property --tw-backdrop-saturate{syntax:\"*\";inherits:false}@property --tw-backdrop-sepia{syntax:\"*\";inherits:false}@property --tw-duration{syntax:\"*\";inherits:false}@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-pan-x:initial;--tw-pan-y:initial;--tw-pinch-zoom:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-divide-y-reverse:0;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0;--tw-duration:initial}}}";
33
+ var css_248z = "/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer theme, base, components, utilities;@layer theme{:host,:root{--font-sans:var(--font-geist-sans);--font-mono:var(--font-geist-mono);--color-red-50:oklch(97.1% 0.013 17.38);--color-green-50:oklch(98.2% 0.018 155.826);--color-blue-50:oklch(97% 0.014 254.604);--color-slate-800:oklch(27.9% 0.041 260.031);--color-gray-50:oklch(98.5% 0.002 247.839);--color-gray-300:oklch(87.2% 0.01 258.338);--color-gray-700:oklch(37.3% 0.034 259.733);--color-white:#fff;--spacing:0.25rem;--text-xs:0.75rem;--text-xs--line-height:1.33333;--text-sm:0.875rem;--text-sm--line-height:1.42857;--text-2xl:1.5rem;--text-2xl--line-height:1.33333;--font-weight-medium:500;--radius-sm:calc(var(--radius) - 4px);--radius-lg:var(--radius);--default-transition-duration:150ms;--default-transition-timing-function:cubic-bezier(0.4,0,0.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-background:var(--background);--color-foreground:var(--foreground);--color-ring:var(--ring);--color-border:var(--border);--color-destructive:var(--destructive);--color-destructive-foreground:var(--destructive-foreground);--color-supportive:var(--supportive);--color-supportive-foreground:var(--supportive-foreground);--color-accent-foreground:var(--accent-foreground);--color-accent:var(--accent);--color-secondary-foreground:var(--secondary-foreground);--color-secondary:var(--secondary);--color-primary-foreground:var(--primary-foreground);--color-primary:var(--primary)}}@layer base{*,::backdrop,::file-selector-button,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:var(--default-font-feature-settings,normal);-webkit-tap-highlight-color:transparent;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-variation-settings:var(--default-font-variation-settings,normal);line-height:1.5;tab-size:4}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:var(--default-mono-font-feature-settings,normal);font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-size:1em;font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}::file-selector-button,button,input,optgroup,select,textarea{font-feature-settings:inherit;background-color:transparent;border-radius:0;color:inherit;font:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::placeholder{color:currentcolor;@supports (color:color-mix(in lab,red,red)){color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}::file-selector-button,button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{border-width:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.not-sr-only{clip-path:none;height:auto;margin:0;overflow:visible;padding:0;position:static;white-space:normal;width:auto}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.-inset-1{inset:calc(var(--spacing)*-1)}.isolate{isolation:isolate}.isolation-auto{isolation:auto}.container{width:100%;@media (width >= 40rem){max-width:40rem}@media (width >= 48rem){max-width:48rem}@media (width >= 64rem){max-width:64rem}@media (width >= 80rem){max-width:80rem}@media (width >= 96rem){max-width:96rem}}.mb-4{margin-bottom:calc(var(--spacing)*4)}.block{display:block}.contents{display:contents}.flex{display:flex}.flow-root{display:flow-root}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.inline-table{display:inline-table}.list-item{display:list-item}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-column{display:table-column}.table-column-group{display:table-column-group}.table-footer-group{display:table-footer-group}.table-header-group{display:table-header-group}.table-row{display:table-row}.table-row-group{display:table-row-group}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-10{height:calc(var(--spacing)*10)}.h-11{height:calc(var(--spacing)*11)}.w-10{width:calc(var(--spacing)*10)}.shrink{flex-shrink:1}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.translate-none{translate:none}.scale-3d{scale:var(--tw-scale-x) var(--tw-scale-y) var(--tw-scale-z)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.touch-pinch-zoom{--tw-pinch-zoom:pinch-zoom;touch-action:var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing)*2)}.space-y-reverse{:where(&>:not(:last-child)){--tw-space-y-reverse:1}}.space-x-reverse{:where(&>:not(:last-child)){--tw-space-x-reverse:1}}.divide-x{:where(&>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-end-width:calc(1px*(1 - var(--tw-divide-x-reverse)));border-inline-start-width:calc(1px*var(--tw-divide-x-reverse));border-inline-style:var(--tw-border-style)}}.divide-y{:where(&>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-bottom-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse))}}.divide-y-reverse{:where(&>:not(:last-child)){--tw-divide-y-reverse:1}}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.rounded-\\[0\\.33em\\]{border-radius:.33em}.rounded-s{border-end-start-radius:.25rem}.rounded-s,.rounded-ss{border-start-start-radius:.25rem}.rounded-e{border-end-end-radius:.25rem}.rounded-e,.rounded-se{border-start-end-radius:.25rem}.rounded-ee{border-end-end-radius:.25rem}.rounded-es{border-end-start-radius:.25rem}.rounded-t{border-top-right-radius:.25rem}.rounded-l,.rounded-t{border-top-left-radius:.25rem}.rounded-l{border-bottom-left-radius:.25rem}.rounded-tl{border-top-left-radius:.25rem}.rounded-r{border-bottom-right-radius:.25rem}.rounded-r,.rounded-tr{border-top-right-radius:.25rem}.rounded-b{border-bottom-left-radius:.25rem}.rounded-b,.rounded-br{border-bottom-right-radius:.25rem}.rounded-bl{border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-destructive{border-color:var(--color-destructive)}.border-gray-300{border-color:var(--color-gray-300)}.border-primary{border-color:var(--color-primary)}.border-supportive{border-color:var(--color-supportive)}.bg-background{background-color:var(--color-background)}.bg-destructive{background-color:var(--color-destructive)}.bg-primary{background-color:var(--color-primary)}.bg-secondary{background-color:var(--color-secondary)}.bg-supportive{background-color:var(--color-supportive)}.bg-repeat{background-repeat:repeat}.mask-no-clip{mask-clip:no-clip}.mask-repeat{mask-repeat:repeat}.p-10{padding:calc(var(--spacing)*10)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.px-\\[1em\\]{padding-inline:1em}.py-\\[0\\.33em\\]{padding-block:.33em}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-wrap{text-wrap:wrap}.text-clip{text-overflow:clip}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.text-destructive{color:var(--color-destructive)}.text-destructive-foreground{color:var(--color-destructive-foreground)}.text-gray-700{color:var(--color-gray-700)}.text-primary{color:var(--color-primary)}.text-primary-foreground{color:var(--color-primary-foreground)}.text-secondary-foreground{color:var(--color-secondary-foreground)}.text-supportive{color:var(--color-supportive)}.text-supportive-foreground{color:var(--color-supportive-foreground)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.diagonal-fractions{--tw-numeric-fraction:diagonal-fractions}.diagonal-fractions,.lining-nums{font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.lining-nums{--tw-numeric-figure:lining-nums}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums}.oldstyle-nums,.ordinal{font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.ordinal{--tw-ordinal:ordinal}.proportional-nums{--tw-numeric-spacing:proportional-nums}.proportional-nums,.slashed-zero{font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.slashed-zero{--tw-slashed-zero:slashed-zero}.stacked-fractions{--tw-numeric-fraction:stacked-fractions}.stacked-fractions,.tabular-nums{font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums}.normal-nums{font-variant-numeric:normal}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,rgba(0,0,0,.1)),0 1px 2px -1px var(--tw-shadow-color,rgba(0,0,0,.1))}.ring,.shadow{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor)}.inset-ring{--tw-inset-ring-shadow:inset 0 0 0 1px var(--tw-inset-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px)}.blur,.drop-shadow{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,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,rgba(0,0,0,.1))) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,rgba(0,0,0,.06)));--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06))}.grayscale{--tw-grayscale:grayscale(100%)}.grayscale,.invert{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,)}.invert{--tw-invert:invert(100%)}.sepia{--tw-sepia:sepia(100%)}.filter,.sepia{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,)}.backdrop-blur{--tw-backdrop-blur:blur(8px)}.backdrop-blur,.backdrop-grayscale{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-grayscale{--tw-backdrop-grayscale:grayscale(100%)}.backdrop-invert{--tw-backdrop-invert:invert(100%)}.backdrop-invert,.backdrop-sepia{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-sepia{--tw-backdrop-sepia:sepia(100%)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-colors{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.divide-x-reverse{:where(&>:not(:last-child)){--tw-divide-x-reverse:1}}.ring-inset{--tw-ring-inset:inset}.zoom-in{--tw-enter-scale:0}.zoom-out{--tw-exit-scale:0}.hover\\:bg-accent{&:hover{@media (hover:hover){background-color:var(--color-accent)}}}.hover\\:bg-blue-50{&:hover{@media (hover:hover){background-color:var(--color-blue-50)}}}.hover\\:bg-destructive\\/90{&:hover{@media (hover:hover){background-color:var(--color-destructive);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-destructive) 90%,transparent)}}}}.hover\\:bg-green-50{&:hover{@media (hover:hover){background-color:var(--color-green-50)}}}.hover\\:bg-primary\\/90{&:hover{@media (hover:hover){background-color:var(--color-primary);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-primary) 90%,transparent)}}}}.hover\\:bg-red-50{&:hover{@media (hover:hover){background-color:var(--color-red-50)}}}.hover\\:bg-secondary\\/80{&:hover{@media (hover:hover){background-color:var(--color-secondary);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-secondary) 80%,transparent)}}}}.hover\\:bg-supportive\\/90{&:hover{@media (hover:hover){background-color:var(--color-supportive);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-supportive) 90%,transparent)}}}}.hover\\:text-accent-foreground{&:hover{@media (hover:hover){color:var(--color-accent-foreground)}}}.hover\\:underline{&:hover{@media (hover:hover){text-decoration-line:underline}}}.focus\\:ring-transparent{&:focus{--tw-ring-color:transparent}}.focus\\:outline-none{&:focus{--tw-outline-style:none;outline-style:none}}.disabled\\:pointer-events-none{&:disabled{pointer-events:none}}.disabled\\:opacity-50{&:disabled{opacity:50%}}.\\[\\&_svg\\]\\:pointer-events-none{& svg{pointer-events:none}}.\\[\\&_svg\\]\\:size-4{& svg{height:calc(var(--spacing)*4);width:calc(var(--spacing)*4)}}.\\[\\&_svg\\]\\:shrink-0{& svg{flex-shrink:0}}}@property --tw-animation-delay{syntax:\"*\";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:\"*\";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:\"*\";inherits:false}@property --tw-animation-fill-mode{syntax:\"*\";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:\"*\";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:\"*\";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:\"*\";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:\"*\";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:\"*\";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:\"*\";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:\"*\";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:\"*\";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:\"*\";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:\"*\";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:\"*\";inherits:false;initial-value:0}:root{--radius:0.625rem;--background:oklch(1 0 0);--foreground:oklch(0.145 0 0);--card:oklch(1 0 0);--card-foreground:oklch(0.145 0 0);--popover:oklch(1 0 0);--popover-foreground:oklch(0.145 0 0);--primary:oklch(0.441 0.122 251);--primary-foreground:oklch(0.984 0.003 210);--supportive:oklch(0.663 0.137 137);--supportive-foreground:oklch(0.984 0.003 210);--secondary:oklch(0.208 0.04 266);--secondary-foreground:oklch(0.968 0.007 210);--muted:oklch(0.968 0.007 210);--muted-foreground:oklch(0.554 0.041 257);--warning:oklch(0.731 0.144 64);--warning-foreground:oklch(0.968 0.007 210);--accent:oklch(0.97 0 0);--accent-foreground:oklch(0.205 0 0);--destructive:oklch(0.64 0.218 29);--destructive-foreground:oklch(0.984 0.003 210);--border:oklch(0.922 0 0);--input:oklch(0.922 0 0);--ring:oklch(0.708 0 0);--chart-1:oklch(0.646 0.222 41.116);--chart-2:oklch(0.6 0.118 184.704);--chart-3:oklch(0.398 0.07 227.392);--chart-4:oklch(0.828 0.189 84.429);--chart-5:oklch(0.769 0.188 70.08);--sidebar:oklch(0.985 0 0);--sidebar-foreground:oklch(0.145 0 0);--sidebar-primary:oklch(0.205 0 0);--sidebar-primary-foreground:oklch(0.985 0 0);--sidebar-accent:oklch(0.97 0 0);--sidebar-accent-foreground:oklch(0.205 0 0);--sidebar-border:oklch(0.922 0 0);--sidebar-ring:oklch(0.708 0 0)}/*! add in missing dark mode styles from above OR no dark mode at all (who tf over 30 needs it)*/.dark{--background:oklch(0.145 0 0);--foreground:oklch(0.985 0 0);--card:oklch(0.205 0 0);--card-foreground:oklch(0.985 0 0);--popover:oklch(0.205 0 0);--popover-foreground:oklch(0.985 0 0);--primary:oklch(0.922 0 0);--primary-foreground:oklch(0.205 0 0);--secondary:oklch(0.269 0 0);--secondary-foreground:oklch(0.985 0 0);--muted:oklch(0.269 0 0);--muted-foreground:oklch(0.708 0 0);--accent:oklch(0.269 0 0);--accent-foreground:oklch(0.985 0 0);--destructive:oklch(0.704 0.191 22.216);--border:oklch(1 0 0/10%);--input:oklch(1 0 0/15%);--ring:oklch(0.556 0 0);--chart-1:oklch(0.488 0.243 264.376);--chart-2:oklch(0.696 0.17 162.48);--chart-3:oklch(0.769 0.188 70.08);--chart-4:oklch(0.627 0.265 303.9);--chart-5:oklch(0.645 0.246 16.439);--sidebar:oklch(0.205 0 0);--sidebar-foreground:oklch(0.985 0 0);--sidebar-primary:oklch(0.488 0.243 264.376);--sidebar-primary-foreground:oklch(0.985 0 0);--sidebar-accent:oklch(0.269 0 0);--sidebar-accent-foreground:oklch(0.985 0 0);--sidebar-border:oklch(1 0 0/10%);--sidebar-ring:oklch(0.556 0 0)}@layer base{*{border-color:var(--color-border);outline-color:var(--color-ring);@supports (color:color-mix(in lab,red,red)){outline-color:color-mix(in oklab,var(--color-ring) 50%,transparent)}}body{background-color:var(--color-background);color:var(--color-foreground)}a{--tw-duration:200ms;border-radius:var(--radius-sm);color:var(--color-primary);transition-duration:var(--tw-duration,var(--default-transition-duration));transition-duration:.2s;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));&:hover{@media (hover:hover){color:var(--color-primary);@supports (color:color-mix(in lab,red,red)){color:color-mix(in oklab,var(--color-primary) 80%,transparent)}}}&:focus{--tw-outline-style:none;outline-style:none}}}@layer components{.bi-card{background-color:var(--color-white);border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;padding:calc(var(--spacing)*6);&:is(.dark *){border-color:var(--color-slate-800)}&:is(.dark *){background-color:var(--color-red-50)}}.bi-card-interactive{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));&:hover{@media (hover:hover){background-color:var(--color-gray-50)}}&:is(.dark *){&:hover{@media (hover:hover){background-color:color-mix(in srgb,oklch(27.9% .041 260.031) 60%,transparent);@supports (color:color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-slate-800) 60%,transparent)}}}}}}body{height:100vh;margin:0;padding:0;width:100vw}html{overflow:hidden}*{box-sizing:border-box}@layer utilities{.pb-safe{padding-bottom:env(safe-area-inset-bottom)}.pt-safe{padding-top:env(safe-area-inset-top)}.pl-safe{padding-left:env(safe-area-inset-left)}.pr-safe{padding-right:env(safe-area-inset-right)}.webkit-overflow-scrolling-touch{-webkit-overflow-scrolling:touch}}.input-wrap{align-items:center;display:flex;height:40px}.input-wrap input{font-size:14px}.input-wrap input:focus{font-size:16px}@layer base{@media (max-width:639.98px){input:focus,select:focus,textarea:focus{font-size:1rem}}}@property --tw-scale-x{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-y{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-z{syntax:\"*\";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:\"*\";inherits:false}@property --tw-rotate-y{syntax:\"*\";inherits:false}@property --tw-rotate-z{syntax:\"*\";inherits:false}@property --tw-skew-x{syntax:\"*\";inherits:false}@property --tw-skew-y{syntax:\"*\";inherits:false}@property --tw-pan-x{syntax:\"*\";inherits:false}@property --tw-pan-y{syntax:\"*\";inherits:false}@property --tw-pinch-zoom{syntax:\"*\";inherits:false}@property --tw-space-y-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-divide-y-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-ordinal{syntax:\"*\";inherits:false}@property --tw-slashed-zero{syntax:\"*\";inherits:false}@property --tw-numeric-figure{syntax:\"*\";inherits:false}@property --tw-numeric-spacing{syntax:\"*\";inherits:false}@property --tw-numeric-fraction{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-blur{syntax:\"*\";inherits:false}@property --tw-brightness{syntax:\"*\";inherits:false}@property --tw-contrast{syntax:\"*\";inherits:false}@property --tw-grayscale{syntax:\"*\";inherits:false}@property --tw-hue-rotate{syntax:\"*\";inherits:false}@property --tw-invert{syntax:\"*\";inherits:false}@property --tw-opacity{syntax:\"*\";inherits:false}@property --tw-saturate{syntax:\"*\";inherits:false}@property --tw-sepia{syntax:\"*\";inherits:false}@property --tw-drop-shadow{syntax:\"*\";inherits:false}@property --tw-drop-shadow-color{syntax:\"*\";inherits:false}@property --tw-drop-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:\"*\";inherits:false}@property --tw-backdrop-blur{syntax:\"*\";inherits:false}@property --tw-backdrop-brightness{syntax:\"*\";inherits:false}@property --tw-backdrop-contrast{syntax:\"*\";inherits:false}@property --tw-backdrop-grayscale{syntax:\"*\";inherits:false}@property --tw-backdrop-hue-rotate{syntax:\"*\";inherits:false}@property --tw-backdrop-invert{syntax:\"*\";inherits:false}@property --tw-backdrop-opacity{syntax:\"*\";inherits:false}@property --tw-backdrop-saturate{syntax:\"*\";inherits:false}@property --tw-backdrop-sepia{syntax:\"*\";inherits:false}@property --tw-duration{syntax:\"*\";inherits:false}@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-pan-x:initial;--tw-pan-y:initial;--tw-pinch-zoom:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-divide-y-reverse:0;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0;--tw-duration:initial}}}";
33
34
  styleInject(css_248z,{"insertAt":"top"});
34
35
 
35
36
  let config = {
@@ -3321,1064 +3322,6 @@ const Button = React__default.forwardRef(({ className, variant, scheme, size, as
3321
3322
  });
3322
3323
  Button.displayName = "Button";
3323
3324
 
3324
- // src/subscribable.ts
3325
- var Subscribable = class {
3326
- constructor() {
3327
- this.listeners = /* @__PURE__ */ new Set();
3328
- this.subscribe = this.subscribe.bind(this);
3329
- }
3330
- subscribe(listener) {
3331
- this.listeners.add(listener);
3332
- this.onSubscribe();
3333
- return () => {
3334
- this.listeners.delete(listener);
3335
- this.onUnsubscribe();
3336
- };
3337
- }
3338
- hasListeners() {
3339
- return this.listeners.size > 0;
3340
- }
3341
- onSubscribe() {
3342
- }
3343
- onUnsubscribe() {
3344
- }
3345
- };
3346
-
3347
- // src/timeoutManager.ts
3348
- var defaultTimeoutProvider = {
3349
- // We need the wrapper function syntax below instead of direct references to
3350
- // global setTimeout etc.
3351
- //
3352
- // BAD: `setTimeout: setTimeout`
3353
- // GOOD: `setTimeout: (cb, delay) => setTimeout(cb, delay)`
3354
- //
3355
- // If we use direct references here, then anything that wants to spy on or
3356
- // replace the global setTimeout (like tests) won't work since we'll already
3357
- // have a hard reference to the original implementation at the time when this
3358
- // file was imported.
3359
- setTimeout: (callback, delay) => setTimeout(callback, delay),
3360
- clearTimeout: (timeoutId) => clearTimeout(timeoutId),
3361
- setInterval: (callback, delay) => setInterval(callback, delay),
3362
- clearInterval: (intervalId) => clearInterval(intervalId)
3363
- };
3364
- var TimeoutManager = class {
3365
- // We cannot have TimeoutManager<T> as we must instantiate it with a concrete
3366
- // type at app boot; and if we leave that type, then any new timer provider
3367
- // would need to support ReturnType<typeof setTimeout>, which is infeasible.
3368
- //
3369
- // We settle for type safety for the TimeoutProvider type, and accept that
3370
- // this class is unsafe internally to allow for extension.
3371
- #provider = defaultTimeoutProvider;
3372
- #providerCalled = false;
3373
- setTimeoutProvider(provider) {
3374
- if (process.env.NODE_ENV !== "production") {
3375
- if (this.#providerCalled && provider !== this.#provider) {
3376
- console.error(
3377
- `[timeoutManager]: Switching provider after calls to previous provider might result in unexpected behavior.`,
3378
- { previous: this.#provider, provider }
3379
- );
3380
- }
3381
- }
3382
- this.#provider = provider;
3383
- if (process.env.NODE_ENV !== "production") {
3384
- this.#providerCalled = false;
3385
- }
3386
- }
3387
- setTimeout(callback, delay) {
3388
- if (process.env.NODE_ENV !== "production") {
3389
- this.#providerCalled = true;
3390
- }
3391
- return this.#provider.setTimeout(callback, delay);
3392
- }
3393
- clearTimeout(timeoutId) {
3394
- this.#provider.clearTimeout(timeoutId);
3395
- }
3396
- setInterval(callback, delay) {
3397
- if (process.env.NODE_ENV !== "production") {
3398
- this.#providerCalled = true;
3399
- }
3400
- return this.#provider.setInterval(callback, delay);
3401
- }
3402
- clearInterval(intervalId) {
3403
- this.#provider.clearInterval(intervalId);
3404
- }
3405
- };
3406
- var timeoutManager = new TimeoutManager();
3407
- function systemSetTimeoutZero(callback) {
3408
- setTimeout(callback, 0);
3409
- }
3410
-
3411
- // src/utils.ts
3412
- var isServer = typeof window === "undefined" || "Deno" in globalThis;
3413
- function noop() {
3414
- }
3415
- function isValidTimeout(value) {
3416
- return typeof value === "number" && value >= 0 && value !== Infinity;
3417
- }
3418
- function timeUntilStale(updatedAt, staleTime) {
3419
- return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);
3420
- }
3421
- function resolveStaleTime(staleTime, query) {
3422
- return typeof staleTime === "function" ? staleTime(query) : staleTime;
3423
- }
3424
- function resolveEnabled(enabled, query) {
3425
- return typeof enabled === "function" ? enabled(query) : enabled;
3426
- }
3427
- var hasOwn = Object.prototype.hasOwnProperty;
3428
- function replaceEqualDeep(a, b, depth = 0) {
3429
- if (a === b) {
3430
- return a;
3431
- }
3432
- if (depth > 500) return b;
3433
- const array = isPlainArray(a) && isPlainArray(b);
3434
- if (!array && !(isPlainObject(a) && isPlainObject(b))) return b;
3435
- const aItems = array ? a : Object.keys(a);
3436
- const aSize = aItems.length;
3437
- const bItems = array ? b : Object.keys(b);
3438
- const bSize = bItems.length;
3439
- const copy = array ? new Array(bSize) : {};
3440
- let equalItems = 0;
3441
- for (let i = 0; i < bSize; i++) {
3442
- const key = array ? i : bItems[i];
3443
- const aItem = a[key];
3444
- const bItem = b[key];
3445
- if (aItem === bItem) {
3446
- copy[key] = aItem;
3447
- if (array ? i < aSize : hasOwn.call(a, key)) equalItems++;
3448
- continue;
3449
- }
3450
- if (aItem === null || bItem === null || typeof aItem !== "object" || typeof bItem !== "object") {
3451
- copy[key] = bItem;
3452
- continue;
3453
- }
3454
- const v = replaceEqualDeep(aItem, bItem, depth + 1);
3455
- copy[key] = v;
3456
- if (v === aItem) equalItems++;
3457
- }
3458
- return aSize === bSize && equalItems === aSize ? a : copy;
3459
- }
3460
- function shallowEqualObjects(a, b) {
3461
- if (!b || Object.keys(a).length !== Object.keys(b).length) {
3462
- return false;
3463
- }
3464
- for (const key in a) {
3465
- if (a[key] !== b[key]) {
3466
- return false;
3467
- }
3468
- }
3469
- return true;
3470
- }
3471
- function isPlainArray(value) {
3472
- return Array.isArray(value) && value.length === Object.keys(value).length;
3473
- }
3474
- function isPlainObject(o) {
3475
- if (!hasObjectPrototype(o)) {
3476
- return false;
3477
- }
3478
- const ctor = o.constructor;
3479
- if (ctor === void 0) {
3480
- return true;
3481
- }
3482
- const prot = ctor.prototype;
3483
- if (!hasObjectPrototype(prot)) {
3484
- return false;
3485
- }
3486
- if (!prot.hasOwnProperty("isPrototypeOf")) {
3487
- return false;
3488
- }
3489
- if (Object.getPrototypeOf(o) !== Object.prototype) {
3490
- return false;
3491
- }
3492
- return true;
3493
- }
3494
- function hasObjectPrototype(o) {
3495
- return Object.prototype.toString.call(o) === "[object Object]";
3496
- }
3497
- function replaceData(prevData, data, options) {
3498
- if (typeof options.structuralSharing === "function") {
3499
- return options.structuralSharing(prevData, data);
3500
- } else if (options.structuralSharing !== false) {
3501
- if (process.env.NODE_ENV !== "production") {
3502
- try {
3503
- return replaceEqualDeep(prevData, data);
3504
- } catch (error) {
3505
- console.error(
3506
- `Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${options.queryHash}]: ${error}`
3507
- );
3508
- throw error;
3509
- }
3510
- }
3511
- return replaceEqualDeep(prevData, data);
3512
- }
3513
- return data;
3514
- }
3515
- function shouldThrowError(throwOnError, params) {
3516
- if (typeof throwOnError === "function") {
3517
- return throwOnError(...params);
3518
- }
3519
- return !!throwOnError;
3520
- }
3521
-
3522
- // src/focusManager.ts
3523
- var FocusManager = class extends Subscribable {
3524
- #focused;
3525
- #cleanup;
3526
- #setup;
3527
- constructor() {
3528
- super();
3529
- this.#setup = (onFocus) => {
3530
- if (!isServer && window.addEventListener) {
3531
- const listener = () => onFocus();
3532
- window.addEventListener("visibilitychange", listener, false);
3533
- return () => {
3534
- window.removeEventListener("visibilitychange", listener);
3535
- };
3536
- }
3537
- return;
3538
- };
3539
- }
3540
- onSubscribe() {
3541
- if (!this.#cleanup) {
3542
- this.setEventListener(this.#setup);
3543
- }
3544
- }
3545
- onUnsubscribe() {
3546
- if (!this.hasListeners()) {
3547
- this.#cleanup?.();
3548
- this.#cleanup = void 0;
3549
- }
3550
- }
3551
- setEventListener(setup) {
3552
- this.#setup = setup;
3553
- this.#cleanup?.();
3554
- this.#cleanup = setup((focused) => {
3555
- if (typeof focused === "boolean") {
3556
- this.setFocused(focused);
3557
- } else {
3558
- this.onFocus();
3559
- }
3560
- });
3561
- }
3562
- setFocused(focused) {
3563
- const changed = this.#focused !== focused;
3564
- if (changed) {
3565
- this.#focused = focused;
3566
- this.onFocus();
3567
- }
3568
- }
3569
- onFocus() {
3570
- const isFocused = this.isFocused();
3571
- this.listeners.forEach((listener) => {
3572
- listener(isFocused);
3573
- });
3574
- }
3575
- isFocused() {
3576
- if (typeof this.#focused === "boolean") {
3577
- return this.#focused;
3578
- }
3579
- return globalThis.document?.visibilityState !== "hidden";
3580
- }
3581
- };
3582
- var focusManager = new FocusManager();
3583
-
3584
- // src/thenable.ts
3585
- function pendingThenable() {
3586
- let resolve;
3587
- let reject;
3588
- const thenable = new Promise((_resolve, _reject) => {
3589
- resolve = _resolve;
3590
- reject = _reject;
3591
- });
3592
- thenable.status = "pending";
3593
- thenable.catch(() => {
3594
- });
3595
- function finalize(data) {
3596
- Object.assign(thenable, data);
3597
- delete thenable.resolve;
3598
- delete thenable.reject;
3599
- }
3600
- thenable.resolve = (value) => {
3601
- finalize({
3602
- status: "fulfilled",
3603
- value
3604
- });
3605
- resolve(value);
3606
- };
3607
- thenable.reject = (reason) => {
3608
- finalize({
3609
- status: "rejected",
3610
- reason
3611
- });
3612
- reject(reason);
3613
- };
3614
- return thenable;
3615
- }
3616
-
3617
- // src/notifyManager.ts
3618
- var defaultScheduler = systemSetTimeoutZero;
3619
- function createNotifyManager() {
3620
- let queue = [];
3621
- let transactions = 0;
3622
- let notifyFn = (callback) => {
3623
- callback();
3624
- };
3625
- let batchNotifyFn = (callback) => {
3626
- callback();
3627
- };
3628
- let scheduleFn = defaultScheduler;
3629
- const schedule = (callback) => {
3630
- if (transactions) {
3631
- queue.push(callback);
3632
- } else {
3633
- scheduleFn(() => {
3634
- notifyFn(callback);
3635
- });
3636
- }
3637
- };
3638
- const flush = () => {
3639
- const originalQueue = queue;
3640
- queue = [];
3641
- if (originalQueue.length) {
3642
- scheduleFn(() => {
3643
- batchNotifyFn(() => {
3644
- originalQueue.forEach((callback) => {
3645
- notifyFn(callback);
3646
- });
3647
- });
3648
- });
3649
- }
3650
- };
3651
- return {
3652
- batch: (callback) => {
3653
- let result;
3654
- transactions++;
3655
- try {
3656
- result = callback();
3657
- } finally {
3658
- transactions--;
3659
- if (!transactions) {
3660
- flush();
3661
- }
3662
- }
3663
- return result;
3664
- },
3665
- /**
3666
- * All calls to the wrapped function will be batched.
3667
- */
3668
- batchCalls: (callback) => {
3669
- return (...args) => {
3670
- schedule(() => {
3671
- callback(...args);
3672
- });
3673
- };
3674
- },
3675
- schedule,
3676
- /**
3677
- * Use this method to set a custom notify function.
3678
- * This can be used to for example wrap notifications with `React.act` while running tests.
3679
- */
3680
- setNotifyFunction: (fn) => {
3681
- notifyFn = fn;
3682
- },
3683
- /**
3684
- * Use this method to set a custom function to batch notifications together into a single tick.
3685
- * By default React Query will use the batch function provided by ReactDOM or React Native.
3686
- */
3687
- setBatchNotifyFunction: (fn) => {
3688
- batchNotifyFn = fn;
3689
- },
3690
- setScheduler: (fn) => {
3691
- scheduleFn = fn;
3692
- }
3693
- };
3694
- }
3695
- var notifyManager = createNotifyManager();
3696
-
3697
- // src/onlineManager.ts
3698
- var OnlineManager = class extends Subscribable {
3699
- #online = true;
3700
- #cleanup;
3701
- #setup;
3702
- constructor() {
3703
- super();
3704
- this.#setup = (onOnline) => {
3705
- if (!isServer && window.addEventListener) {
3706
- const onlineListener = () => onOnline(true);
3707
- const offlineListener = () => onOnline(false);
3708
- window.addEventListener("online", onlineListener, false);
3709
- window.addEventListener("offline", offlineListener, false);
3710
- return () => {
3711
- window.removeEventListener("online", onlineListener);
3712
- window.removeEventListener("offline", offlineListener);
3713
- };
3714
- }
3715
- return;
3716
- };
3717
- }
3718
- onSubscribe() {
3719
- if (!this.#cleanup) {
3720
- this.setEventListener(this.#setup);
3721
- }
3722
- }
3723
- onUnsubscribe() {
3724
- if (!this.hasListeners()) {
3725
- this.#cleanup?.();
3726
- this.#cleanup = void 0;
3727
- }
3728
- }
3729
- setEventListener(setup) {
3730
- this.#setup = setup;
3731
- this.#cleanup?.();
3732
- this.#cleanup = setup(this.setOnline.bind(this));
3733
- }
3734
- setOnline(online) {
3735
- const changed = this.#online !== online;
3736
- if (changed) {
3737
- this.#online = online;
3738
- this.listeners.forEach((listener) => {
3739
- listener(online);
3740
- });
3741
- }
3742
- }
3743
- isOnline() {
3744
- return this.#online;
3745
- }
3746
- };
3747
- var onlineManager = new OnlineManager();
3748
-
3749
- // src/retryer.ts
3750
- function canFetch(networkMode) {
3751
- return (networkMode ?? "online") === "online" ? onlineManager.isOnline() : true;
3752
- }
3753
-
3754
- // src/query.ts
3755
- function fetchState(data, options) {
3756
- return {
3757
- fetchFailureCount: 0,
3758
- fetchFailureReason: null,
3759
- fetchStatus: canFetch(options.networkMode) ? "fetching" : "paused",
3760
- ...data === void 0 && {
3761
- error: null,
3762
- status: "pending"
3763
- }
3764
- };
3765
- }
3766
-
3767
- // src/queryObserver.ts
3768
- var QueryObserver = class extends Subscribable {
3769
- constructor(client, options) {
3770
- super();
3771
- this.options = options;
3772
- this.#client = client;
3773
- this.#selectError = null;
3774
- this.#currentThenable = pendingThenable();
3775
- this.bindMethods();
3776
- this.setOptions(options);
3777
- }
3778
- #client;
3779
- #currentQuery = void 0;
3780
- #currentQueryInitialState = void 0;
3781
- #currentResult = void 0;
3782
- #currentResultState;
3783
- #currentResultOptions;
3784
- #currentThenable;
3785
- #selectError;
3786
- #selectFn;
3787
- #selectResult;
3788
- // This property keeps track of the last query with defined data.
3789
- // It will be used to pass the previous data and query to the placeholder function between renders.
3790
- #lastQueryWithDefinedData;
3791
- #staleTimeoutId;
3792
- #refetchIntervalId;
3793
- #currentRefetchInterval;
3794
- #trackedProps = /* @__PURE__ */ new Set();
3795
- bindMethods() {
3796
- this.refetch = this.refetch.bind(this);
3797
- }
3798
- onSubscribe() {
3799
- if (this.listeners.size === 1) {
3800
- this.#currentQuery.addObserver(this);
3801
- if (shouldFetchOnMount(this.#currentQuery, this.options)) {
3802
- this.#executeFetch();
3803
- } else {
3804
- this.updateResult();
3805
- }
3806
- this.#updateTimers();
3807
- }
3808
- }
3809
- onUnsubscribe() {
3810
- if (!this.hasListeners()) {
3811
- this.destroy();
3812
- }
3813
- }
3814
- shouldFetchOnReconnect() {
3815
- return shouldFetchOn(
3816
- this.#currentQuery,
3817
- this.options,
3818
- this.options.refetchOnReconnect
3819
- );
3820
- }
3821
- shouldFetchOnWindowFocus() {
3822
- return shouldFetchOn(
3823
- this.#currentQuery,
3824
- this.options,
3825
- this.options.refetchOnWindowFocus
3826
- );
3827
- }
3828
- destroy() {
3829
- this.listeners = /* @__PURE__ */ new Set();
3830
- this.#clearStaleTimeout();
3831
- this.#clearRefetchInterval();
3832
- this.#currentQuery.removeObserver(this);
3833
- }
3834
- setOptions(options) {
3835
- const prevOptions = this.options;
3836
- const prevQuery = this.#currentQuery;
3837
- this.options = this.#client.defaultQueryOptions(options);
3838
- if (this.options.enabled !== void 0 && typeof this.options.enabled !== "boolean" && typeof this.options.enabled !== "function" && typeof resolveEnabled(this.options.enabled, this.#currentQuery) !== "boolean") {
3839
- throw new Error(
3840
- "Expected enabled to be a boolean or a callback that returns a boolean"
3841
- );
3842
- }
3843
- this.#updateQuery();
3844
- this.#currentQuery.setOptions(this.options);
3845
- if (prevOptions._defaulted && !shallowEqualObjects(this.options, prevOptions)) {
3846
- this.#client.getQueryCache().notify({
3847
- type: "observerOptionsUpdated",
3848
- query: this.#currentQuery,
3849
- observer: this
3850
- });
3851
- }
3852
- const mounted = this.hasListeners();
3853
- if (mounted && shouldFetchOptionally(
3854
- this.#currentQuery,
3855
- prevQuery,
3856
- this.options,
3857
- prevOptions
3858
- )) {
3859
- this.#executeFetch();
3860
- }
3861
- this.updateResult();
3862
- if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || resolveStaleTime(this.options.staleTime, this.#currentQuery) !== resolveStaleTime(prevOptions.staleTime, this.#currentQuery))) {
3863
- this.#updateStaleTimeout();
3864
- }
3865
- const nextRefetchInterval = this.#computeRefetchInterval();
3866
- if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || nextRefetchInterval !== this.#currentRefetchInterval)) {
3867
- this.#updateRefetchInterval(nextRefetchInterval);
3868
- }
3869
- }
3870
- getOptimisticResult(options) {
3871
- const query = this.#client.getQueryCache().build(this.#client, options);
3872
- const result = this.createResult(query, options);
3873
- if (shouldAssignObserverCurrentProperties(this, result)) {
3874
- this.#currentResult = result;
3875
- this.#currentResultOptions = this.options;
3876
- this.#currentResultState = this.#currentQuery.state;
3877
- }
3878
- return result;
3879
- }
3880
- getCurrentResult() {
3881
- return this.#currentResult;
3882
- }
3883
- trackResult(result, onPropTracked) {
3884
- return new Proxy(result, {
3885
- get: (target, key) => {
3886
- this.trackProp(key);
3887
- onPropTracked?.(key);
3888
- if (key === "promise") {
3889
- this.trackProp("data");
3890
- if (!this.options.experimental_prefetchInRender && this.#currentThenable.status === "pending") {
3891
- this.#currentThenable.reject(
3892
- new Error(
3893
- "experimental_prefetchInRender feature flag is not enabled"
3894
- )
3895
- );
3896
- }
3897
- }
3898
- return Reflect.get(target, key);
3899
- }
3900
- });
3901
- }
3902
- trackProp(key) {
3903
- this.#trackedProps.add(key);
3904
- }
3905
- getCurrentQuery() {
3906
- return this.#currentQuery;
3907
- }
3908
- refetch({ ...options } = {}) {
3909
- return this.fetch({
3910
- ...options
3911
- });
3912
- }
3913
- fetchOptimistic(options) {
3914
- const defaultedOptions = this.#client.defaultQueryOptions(options);
3915
- const query = this.#client.getQueryCache().build(this.#client, defaultedOptions);
3916
- return query.fetch().then(() => this.createResult(query, defaultedOptions));
3917
- }
3918
- fetch(fetchOptions) {
3919
- return this.#executeFetch({
3920
- ...fetchOptions,
3921
- cancelRefetch: fetchOptions.cancelRefetch ?? true
3922
- }).then(() => {
3923
- this.updateResult();
3924
- return this.#currentResult;
3925
- });
3926
- }
3927
- #executeFetch(fetchOptions) {
3928
- this.#updateQuery();
3929
- let promise = this.#currentQuery.fetch(
3930
- this.options,
3931
- fetchOptions
3932
- );
3933
- if (!fetchOptions?.throwOnError) {
3934
- promise = promise.catch(noop);
3935
- }
3936
- return promise;
3937
- }
3938
- #updateStaleTimeout() {
3939
- this.#clearStaleTimeout();
3940
- const staleTime = resolveStaleTime(
3941
- this.options.staleTime,
3942
- this.#currentQuery
3943
- );
3944
- if (isServer || this.#currentResult.isStale || !isValidTimeout(staleTime)) {
3945
- return;
3946
- }
3947
- const time = timeUntilStale(this.#currentResult.dataUpdatedAt, staleTime);
3948
- const timeout = time + 1;
3949
- this.#staleTimeoutId = timeoutManager.setTimeout(() => {
3950
- if (!this.#currentResult.isStale) {
3951
- this.updateResult();
3952
- }
3953
- }, timeout);
3954
- }
3955
- #computeRefetchInterval() {
3956
- return (typeof this.options.refetchInterval === "function" ? this.options.refetchInterval(this.#currentQuery) : this.options.refetchInterval) ?? false;
3957
- }
3958
- #updateRefetchInterval(nextInterval) {
3959
- this.#clearRefetchInterval();
3960
- this.#currentRefetchInterval = nextInterval;
3961
- if (isServer || resolveEnabled(this.options.enabled, this.#currentQuery) === false || !isValidTimeout(this.#currentRefetchInterval) || this.#currentRefetchInterval === 0) {
3962
- return;
3963
- }
3964
- this.#refetchIntervalId = timeoutManager.setInterval(() => {
3965
- if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {
3966
- this.#executeFetch();
3967
- }
3968
- }, this.#currentRefetchInterval);
3969
- }
3970
- #updateTimers() {
3971
- this.#updateStaleTimeout();
3972
- this.#updateRefetchInterval(this.#computeRefetchInterval());
3973
- }
3974
- #clearStaleTimeout() {
3975
- if (this.#staleTimeoutId) {
3976
- timeoutManager.clearTimeout(this.#staleTimeoutId);
3977
- this.#staleTimeoutId = void 0;
3978
- }
3979
- }
3980
- #clearRefetchInterval() {
3981
- if (this.#refetchIntervalId) {
3982
- timeoutManager.clearInterval(this.#refetchIntervalId);
3983
- this.#refetchIntervalId = void 0;
3984
- }
3985
- }
3986
- createResult(query, options) {
3987
- const prevQuery = this.#currentQuery;
3988
- const prevOptions = this.options;
3989
- const prevResult = this.#currentResult;
3990
- const prevResultState = this.#currentResultState;
3991
- const prevResultOptions = this.#currentResultOptions;
3992
- const queryChange = query !== prevQuery;
3993
- const queryInitialState = queryChange ? query.state : this.#currentQueryInitialState;
3994
- const { state } = query;
3995
- let newState = { ...state };
3996
- let isPlaceholderData = false;
3997
- let data;
3998
- if (options._optimisticResults) {
3999
- const mounted = this.hasListeners();
4000
- const fetchOnMount = !mounted && shouldFetchOnMount(query, options);
4001
- const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);
4002
- if (fetchOnMount || fetchOptionally) {
4003
- newState = {
4004
- ...newState,
4005
- ...fetchState(state.data, query.options)
4006
- };
4007
- }
4008
- if (options._optimisticResults === "isRestoring") {
4009
- newState.fetchStatus = "idle";
4010
- }
4011
- }
4012
- let { error, errorUpdatedAt, status } = newState;
4013
- data = newState.data;
4014
- let skipSelect = false;
4015
- if (options.placeholderData !== void 0 && data === void 0 && status === "pending") {
4016
- let placeholderData;
4017
- if (prevResult?.isPlaceholderData && options.placeholderData === prevResultOptions?.placeholderData) {
4018
- placeholderData = prevResult.data;
4019
- skipSelect = true;
4020
- } else {
4021
- placeholderData = typeof options.placeholderData === "function" ? options.placeholderData(
4022
- this.#lastQueryWithDefinedData?.state.data,
4023
- this.#lastQueryWithDefinedData
4024
- ) : options.placeholderData;
4025
- }
4026
- if (placeholderData !== void 0) {
4027
- status = "success";
4028
- data = replaceData(
4029
- prevResult?.data,
4030
- placeholderData,
4031
- options
4032
- );
4033
- isPlaceholderData = true;
4034
- }
4035
- }
4036
- if (options.select && data !== void 0 && !skipSelect) {
4037
- if (prevResult && data === prevResultState?.data && options.select === this.#selectFn) {
4038
- data = this.#selectResult;
4039
- } else {
4040
- try {
4041
- this.#selectFn = options.select;
4042
- data = options.select(data);
4043
- data = replaceData(prevResult?.data, data, options);
4044
- this.#selectResult = data;
4045
- this.#selectError = null;
4046
- } catch (selectError) {
4047
- this.#selectError = selectError;
4048
- }
4049
- }
4050
- }
4051
- if (this.#selectError) {
4052
- error = this.#selectError;
4053
- data = this.#selectResult;
4054
- errorUpdatedAt = Date.now();
4055
- status = "error";
4056
- }
4057
- const isFetching = newState.fetchStatus === "fetching";
4058
- const isPending = status === "pending";
4059
- const isError = status === "error";
4060
- const isLoading = isPending && isFetching;
4061
- const hasData = data !== void 0;
4062
- const result = {
4063
- status,
4064
- fetchStatus: newState.fetchStatus,
4065
- isPending,
4066
- isSuccess: status === "success",
4067
- isError,
4068
- isInitialLoading: isLoading,
4069
- isLoading,
4070
- data,
4071
- dataUpdatedAt: newState.dataUpdatedAt,
4072
- error,
4073
- errorUpdatedAt,
4074
- failureCount: newState.fetchFailureCount,
4075
- failureReason: newState.fetchFailureReason,
4076
- errorUpdateCount: newState.errorUpdateCount,
4077
- isFetched: newState.dataUpdateCount > 0 || newState.errorUpdateCount > 0,
4078
- isFetchedAfterMount: newState.dataUpdateCount > queryInitialState.dataUpdateCount || newState.errorUpdateCount > queryInitialState.errorUpdateCount,
4079
- isFetching,
4080
- isRefetching: isFetching && !isPending,
4081
- isLoadingError: isError && !hasData,
4082
- isPaused: newState.fetchStatus === "paused",
4083
- isPlaceholderData,
4084
- isRefetchError: isError && hasData,
4085
- isStale: isStale(query, options),
4086
- refetch: this.refetch,
4087
- promise: this.#currentThenable,
4088
- isEnabled: resolveEnabled(options.enabled, query) !== false
4089
- };
4090
- const nextResult = result;
4091
- if (this.options.experimental_prefetchInRender) {
4092
- const hasResultData = nextResult.data !== void 0;
4093
- const isErrorWithoutData = nextResult.status === "error" && !hasResultData;
4094
- const finalizeThenableIfPossible = (thenable) => {
4095
- if (isErrorWithoutData) {
4096
- thenable.reject(nextResult.error);
4097
- } else if (hasResultData) {
4098
- thenable.resolve(nextResult.data);
4099
- }
4100
- };
4101
- const recreateThenable = () => {
4102
- const pending = this.#currentThenable = nextResult.promise = pendingThenable();
4103
- finalizeThenableIfPossible(pending);
4104
- };
4105
- const prevThenable = this.#currentThenable;
4106
- switch (prevThenable.status) {
4107
- case "pending":
4108
- if (query.queryHash === prevQuery.queryHash) {
4109
- finalizeThenableIfPossible(prevThenable);
4110
- }
4111
- break;
4112
- case "fulfilled":
4113
- if (isErrorWithoutData || nextResult.data !== prevThenable.value) {
4114
- recreateThenable();
4115
- }
4116
- break;
4117
- case "rejected":
4118
- if (!isErrorWithoutData || nextResult.error !== prevThenable.reason) {
4119
- recreateThenable();
4120
- }
4121
- break;
4122
- }
4123
- }
4124
- return nextResult;
4125
- }
4126
- updateResult() {
4127
- const prevResult = this.#currentResult;
4128
- const nextResult = this.createResult(this.#currentQuery, this.options);
4129
- this.#currentResultState = this.#currentQuery.state;
4130
- this.#currentResultOptions = this.options;
4131
- if (this.#currentResultState.data !== void 0) {
4132
- this.#lastQueryWithDefinedData = this.#currentQuery;
4133
- }
4134
- if (shallowEqualObjects(nextResult, prevResult)) {
4135
- return;
4136
- }
4137
- this.#currentResult = nextResult;
4138
- const shouldNotifyListeners = () => {
4139
- if (!prevResult) {
4140
- return true;
4141
- }
4142
- const { notifyOnChangeProps } = this.options;
4143
- const notifyOnChangePropsValue = typeof notifyOnChangeProps === "function" ? notifyOnChangeProps() : notifyOnChangeProps;
4144
- if (notifyOnChangePropsValue === "all" || !notifyOnChangePropsValue && !this.#trackedProps.size) {
4145
- return true;
4146
- }
4147
- const includedProps = new Set(
4148
- notifyOnChangePropsValue ?? this.#trackedProps
4149
- );
4150
- if (this.options.throwOnError) {
4151
- includedProps.add("error");
4152
- }
4153
- return Object.keys(this.#currentResult).some((key) => {
4154
- const typedKey = key;
4155
- const changed = this.#currentResult[typedKey] !== prevResult[typedKey];
4156
- return changed && includedProps.has(typedKey);
4157
- });
4158
- };
4159
- this.#notify({ listeners: shouldNotifyListeners() });
4160
- }
4161
- #updateQuery() {
4162
- const query = this.#client.getQueryCache().build(this.#client, this.options);
4163
- if (query === this.#currentQuery) {
4164
- return;
4165
- }
4166
- const prevQuery = this.#currentQuery;
4167
- this.#currentQuery = query;
4168
- this.#currentQueryInitialState = query.state;
4169
- if (this.hasListeners()) {
4170
- prevQuery?.removeObserver(this);
4171
- query.addObserver(this);
4172
- }
4173
- }
4174
- onQueryUpdate() {
4175
- this.updateResult();
4176
- if (this.hasListeners()) {
4177
- this.#updateTimers();
4178
- }
4179
- }
4180
- #notify(notifyOptions) {
4181
- notifyManager.batch(() => {
4182
- if (notifyOptions.listeners) {
4183
- this.listeners.forEach((listener) => {
4184
- listener(this.#currentResult);
4185
- });
4186
- }
4187
- this.#client.getQueryCache().notify({
4188
- query: this.#currentQuery,
4189
- type: "observerResultsUpdated"
4190
- });
4191
- });
4192
- }
4193
- };
4194
- function shouldLoadOnMount(query, options) {
4195
- return resolveEnabled(options.enabled, query) !== false && query.state.data === void 0 && !(query.state.status === "error" && options.retryOnMount === false);
4196
- }
4197
- function shouldFetchOnMount(query, options) {
4198
- return shouldLoadOnMount(query, options) || query.state.data !== void 0 && shouldFetchOn(query, options, options.refetchOnMount);
4199
- }
4200
- function shouldFetchOn(query, options, field) {
4201
- if (resolveEnabled(options.enabled, query) !== false && resolveStaleTime(options.staleTime, query) !== "static") {
4202
- const value = typeof field === "function" ? field(query) : field;
4203
- return value === "always" || value !== false && isStale(query, options);
4204
- }
4205
- return false;
4206
- }
4207
- function shouldFetchOptionally(query, prevQuery, options, prevOptions) {
4208
- return (query !== prevQuery || resolveEnabled(prevOptions.enabled, query) === false) && (!options.suspense || query.state.status !== "error") && isStale(query, options);
4209
- }
4210
- function isStale(query, options) {
4211
- return resolveEnabled(options.enabled, query) !== false && query.isStaleByTime(resolveStaleTime(options.staleTime, query));
4212
- }
4213
- function shouldAssignObserverCurrentProperties(observer, optimisticResult) {
4214
- if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {
4215
- return true;
4216
- }
4217
- return false;
4218
- }
4219
-
4220
- var QueryClientContext = React.createContext(
4221
- void 0
4222
- );
4223
- var useQueryClient = (queryClient) => {
4224
- const client = React.useContext(QueryClientContext);
4225
- if (!client) {
4226
- throw new Error("No QueryClient set, use QueryClientProvider to set one");
4227
- }
4228
- return client;
4229
- };
4230
-
4231
- var IsRestoringContext = React.createContext(false);
4232
- var useIsRestoring = () => React.useContext(IsRestoringContext);
4233
- IsRestoringContext.Provider;
4234
-
4235
- function createValue() {
4236
- let isReset = false;
4237
- return {
4238
- clearReset: () => {
4239
- isReset = false;
4240
- },
4241
- reset: () => {
4242
- isReset = true;
4243
- },
4244
- isReset: () => {
4245
- return isReset;
4246
- }
4247
- };
4248
- }
4249
- var QueryErrorResetBoundaryContext = React.createContext(createValue());
4250
- var useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext);
4251
-
4252
- var ensurePreventErrorBoundaryRetry = (options, errorResetBoundary, query) => {
4253
- const throwOnError = query?.state.error && typeof options.throwOnError === "function" ? shouldThrowError(options.throwOnError, [query.state.error, query]) : options.throwOnError;
4254
- if (options.suspense || options.experimental_prefetchInRender || throwOnError) {
4255
- if (!errorResetBoundary.isReset()) {
4256
- options.retryOnMount = false;
4257
- }
4258
- }
4259
- };
4260
- var useClearResetErrorBoundary = (errorResetBoundary) => {
4261
- React.useEffect(() => {
4262
- errorResetBoundary.clearReset();
4263
- }, [errorResetBoundary]);
4264
- };
4265
- var getHasError = ({
4266
- result,
4267
- errorResetBoundary,
4268
- throwOnError,
4269
- query,
4270
- suspense
4271
- }) => {
4272
- return result.isError && !errorResetBoundary.isReset() && !result.isFetching && query && (suspense && result.data === void 0 || shouldThrowError(throwOnError, [result.error, query]));
4273
- };
4274
-
4275
- // src/suspense.ts
4276
- var ensureSuspenseTimers = (defaultedOptions) => {
4277
- if (defaultedOptions.suspense) {
4278
- const MIN_SUSPENSE_TIME_MS = 1e3;
4279
- const clamp = (value) => value === "static" ? value : Math.max(value ?? MIN_SUSPENSE_TIME_MS, MIN_SUSPENSE_TIME_MS);
4280
- const originalStaleTime = defaultedOptions.staleTime;
4281
- defaultedOptions.staleTime = typeof originalStaleTime === "function" ? (...args) => clamp(originalStaleTime(...args)) : clamp(originalStaleTime);
4282
- if (typeof defaultedOptions.gcTime === "number") {
4283
- defaultedOptions.gcTime = Math.max(
4284
- defaultedOptions.gcTime,
4285
- MIN_SUSPENSE_TIME_MS
4286
- );
4287
- }
4288
- }
4289
- };
4290
- var willFetch = (result, isRestoring) => result.isLoading && result.isFetching && !isRestoring;
4291
- var shouldSuspend = (defaultedOptions, result) => defaultedOptions?.suspense && result.isPending;
4292
- var fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).catch(() => {
4293
- errorResetBoundary.clearReset();
4294
- });
4295
-
4296
- function useBaseQuery(options, Observer, queryClient) {
4297
- if (process.env.NODE_ENV !== "production") {
4298
- if (typeof options !== "object" || Array.isArray(options)) {
4299
- throw new Error(
4300
- 'Bad argument type. Starting with v5, only the "Object" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object'
4301
- );
4302
- }
4303
- }
4304
- const isRestoring = useIsRestoring();
4305
- const errorResetBoundary = useQueryErrorResetBoundary();
4306
- const client = useQueryClient();
4307
- const defaultedOptions = client.defaultQueryOptions(options);
4308
- client.getDefaultOptions().queries?._experimental_beforeQuery?.(
4309
- defaultedOptions
4310
- );
4311
- const query = client.getQueryCache().get(defaultedOptions.queryHash);
4312
- if (process.env.NODE_ENV !== "production") {
4313
- if (!defaultedOptions.queryFn) {
4314
- console.error(
4315
- `[${defaultedOptions.queryHash}]: No queryFn was passed as an option, and no default queryFn was found. The queryFn parameter is only optional when using a default queryFn. More info here: https://tanstack.com/query/latest/docs/framework/react/guides/default-query-function`
4316
- );
4317
- }
4318
- }
4319
- defaultedOptions._optimisticResults = isRestoring ? "isRestoring" : "optimistic";
4320
- ensureSuspenseTimers(defaultedOptions);
4321
- ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary, query);
4322
- useClearResetErrorBoundary(errorResetBoundary);
4323
- const isNewCacheEntry = !client.getQueryCache().get(defaultedOptions.queryHash);
4324
- const [observer] = React.useState(
4325
- () => new Observer(
4326
- client,
4327
- defaultedOptions
4328
- )
4329
- );
4330
- const result = observer.getOptimisticResult(defaultedOptions);
4331
- const shouldSubscribe = !isRestoring && options.subscribed !== false;
4332
- React.useSyncExternalStore(
4333
- React.useCallback(
4334
- (onStoreChange) => {
4335
- const unsubscribe = shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop;
4336
- observer.updateResult();
4337
- return unsubscribe;
4338
- },
4339
- [observer, shouldSubscribe]
4340
- ),
4341
- () => observer.getCurrentResult(),
4342
- () => observer.getCurrentResult()
4343
- );
4344
- React.useEffect(() => {
4345
- observer.setOptions(defaultedOptions);
4346
- }, [defaultedOptions, observer]);
4347
- if (shouldSuspend(defaultedOptions, result)) {
4348
- throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);
4349
- }
4350
- if (getHasError({
4351
- result,
4352
- errorResetBoundary,
4353
- throwOnError: defaultedOptions.throwOnError,
4354
- query,
4355
- suspense: defaultedOptions.suspense
4356
- })) {
4357
- throw result.error;
4358
- }
4359
- client.getDefaultOptions().queries?._experimental_afterQuery?.(
4360
- defaultedOptions,
4361
- result
4362
- );
4363
- if (defaultedOptions.experimental_prefetchInRender && !isServer && willFetch(result, isRestoring)) {
4364
- const promise = isNewCacheEntry ? (
4365
- // Fetch immediately on render in order to ensure `.promise` is resolved even if the component is unmounted
4366
- fetchOptimistic(defaultedOptions, observer, errorResetBoundary)
4367
- ) : (
4368
- // subscribe to the "cache promise" so that we can finalize the currentThenable once data comes in
4369
- query?.promise
4370
- );
4371
- promise?.catch(noop).finally(() => {
4372
- observer.updateResult();
4373
- });
4374
- }
4375
- return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;
4376
- }
4377
-
4378
- function useQuery(options, queryClient) {
4379
- return useBaseQuery(options, QueryObserver);
4380
- }
4381
-
4382
3325
  /**
4383
3326
  * The orchestrator service to get the process from.
4384
3327
  *