@betterinternship/components 1.3.3 → 1.3.4
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/components/Button.d.ts +0 -1
- package/dist/config.d.ts +0 -1
- package/dist/hooks/ClientProcess.d.ts +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.esm.js +2 -1059
- package/dist/index.esm.js.map +1 -1
- package/dist/utils.d.ts +0 -1
- package/package.json +1 -1
- package/dist/components/Button.d.ts.map +0 -1
- package/dist/config.d.ts.map +0 -1
- package/dist/hooks/ClientProcess.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/utils.d.ts.map +0 -1
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
|
*
|