@danxbot/ui 6.4.5 → 6.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +4544 -4438
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/theme.css +1 -0
- package/dist/types/components/Button.d.ts +24 -1
- package/dist/types/components/DescriptionList.d.ts +40 -0
- package/dist/types/components/ErrorBoundary.d.ts +23 -3
- package/dist/types/components/Loading.d.ts +20 -1
- package/dist/types/components/Table.d.ts +10 -7
- package/dist/types/index.d.ts +3 -1
- package/dist/types/lib/markdown/caret-map.d.ts +21 -0
- package/dist/types/lib/markdown/surface.d.ts +12 -0
- package/dist/types/lib/use-debounced-value.d.ts +22 -0
- package/package.json +1 -1
package/dist/styles.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
@layer theme{:root,:host{--font-sans:var(--font-sans);--font-mono:var(--font-mono);--text-xs:var(--text-xs);--text-sm:var(--text-sm);--text-base:var(--text-base);--text-lg:var(--text-lg);--text-xl:var(--text-xl);--text-2xl:var(--text-2xl);--text-3xl:var(--text-3xl);--text-4xl:var(--text-4xl);--text-5xl:var(--text-5xl);--tracking-tighter:var(--tracking-tighter);--tracking-tight:var(--tracking-tight);--tracking-normal:var(--tracking-normal);--tracking-wide:var(--tracking-wide);--tracking-widest:var(--tracking-widest);--leading-tight:var(--leading-tight);--leading-snug:var(--leading-snug);--leading-normal:var(--leading-normal);--leading-relaxed:var(--leading-relaxed);--radius-xs:var(--radius-xs);--radius-sm:var(--radius-sm);--radius-md:var(--radius-md);--radius-lg:var(--radius-lg);--radius-xl:var(--radius-xl);--radius-2xl:var(--radius-2xl);--radius-3xl:var(--radius-3xl);--shadow-xs:var(--shadow-xs);--shadow-sm:var(--shadow-sm);--shadow-md:var(--shadow-md);--shadow-lg:var(--shadow-lg);--shadow-xl:var(--shadow-xl);--animate-spin:dx-spin 1.4s linear infinite;--animate-pulse:dx-pulse 1.8s var(--ease-standard) .5s infinite;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--ease-standard:cubic-bezier(.2, 0, 0, 1);--ease-entrance:cubic-bezier(0, 0, .2, 1);--ease-exit:cubic-bezier(.4, 0, 1, 1);--ease-emphasis:cubic-bezier(.05, .7, .1, 1);--ease-hover:cubic-bezier(.4, 1, .6, 1);--ease-out-strong:cubic-bezier(.23, 1, .32, 1);--ease-in-strong:cubic-bezier(.32, 0, .67, 0);--ease-snappy:linear(0, .0118, .0436, .0903, .1478, .2123, .281, .3513, .4214, .4896, .5549, .6164, .6734, .7257, .773, .8154, .853, .8858, .9143, .9386, .9591, .9762, .9901, 1.0013, 1.0101, 1.0168, 1.0216, 1.025, 1.027, 1.028, 1.0282, 1.0276, 1.0266, 1.0252, 1.0235, 1.0216, 1.0197, 1.0177, 1.0157, 1.0138, 1.012, 1.0103, 1.0087, 1.0073, 1.006, 1.0049, 1.0038, 1.003, 1.0022, 1.0015, 1);--ease-smooth:linear(0, .0151, .0535, .107, .1694, .2361, .304, .3707, .4346, .4949, .551, .6025, .6494, .6918, .7299, .7638, .7941, .8208, .8444, .8651, .8832, .8991, .913, .925, .9354, .9445, .9524, .9591, .965, .97, .9743, .9781, .9813, .984, .9864, .9884, .9901, .9916, .9928, .9939, .9948, .9956, .9963, .9968, .9973, .9977, .9981, .9984, .9986, .9988, 1);--ease-bouncy:linear(0, .0552, .1966, .3883, .5977, .7985, .9716, 1.1054, 1.1955, 1.243, 1.2533, 1.2343, 1.1953, 1.1451, 1.0919, 1.042, .9998, .968, .9472, .9371, .9361, .9421, .9527, .9658, .9792, .9916, 1.0018, 1.0094, 1.0141, 1.0162, 1.016, 1.0142, 1.0114, 1.008, 1.0046, 1.0016, .9991, .9973, .9963, .9959, .996, .9965, .9973, .9981, .999, .9997, 1.0003, 1.0007, 1.001, 1.0011, 1);--ease-gentle:linear(0, .0128, .0462, .0941, .1516, .2146, .2804, .3465, .4112, .4734, .5321, .5869, .6375, .6837, .7255, .7631, .7966, .8264, .8526, .8756, .8955, .9129, .9278, .9406, .9515, .9607, .9685, .975, .9804, .9849, .9886, .9916, .994, .996, .9975, .9987, .9996, 1.0003, 1.0008, 1.0011, 1.0014, 1.0015, 1.0016, 1.0016, 1.0015, 1.0015, 1.0014, 1.0013, 1.0012, 1.0011, 1);--ease-pen:linear(0, .0426, .085, .1271, .1683, .2077, .2443, .2766, .3043, .3282, .3507, .3743, .4012, .4319, .4657, .5012, .5374, .5735, .609, .6438, .6776, .7106, .7427, .7737, .8037, .8325, .8602, .8868, .9121, .9361, .9588, .9801, 1);--animate-fade-in:dx-fade-in var(--dur-base) var(--ease-entrance) both;--animate-rise-in:dx-rise-in var(--dur-base) var(--ease-entrance) both;--animate-scale-in:dx-scale-in var(--dur-fast) var(--ease-snappy) both;--animate-fade-out:dx-fade-in var(--dur-exit) var(--ease-exit) reverse both;--animate-sweep:dx-sweep 1.6s var(--ease-standard) infinite;--animate-spinner-dash:dx-spinner-dash 2.2s var(--ease-standard) infinite;--animate-shimmer:dx-shimmer 2.4s var(--ease-standard) infinite;--font-display:var(--font-display);--text-2xs:var(--text-2xs);--text-md:var(--text-md);--shadow-knob:var(--shadow-knob);--shadow-tooltip:var(--shadow-tooltip);--shadow-glow-accent:var(--shadow-glow-accent)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}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,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}: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)){::placeholder{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{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:before,:after{border-color:var(--border);transition-property:var(--tx-colors);transition-duration:var(--dur-fast);transition-timing-function:var(--ease-standard)}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:var(--space-20)}body{background-color:var(--canvas);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;min-height:100dvh}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--weight-semibold);font-optical-sizing:auto;letter-spacing:var(--tracking-tight);line-height:var(--leading-tight);text-wrap:balance}strong,b{font-weight:var(--weight-bold)}p{text-wrap:pretty}.tabular,table{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}pre,code,kbd,samp{font-variant-ligatures:none;font-feature-settings:"liga" 0,"calt" 0}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-xs)}:focus:not(:focus-visible){outline:none}::selection{background-color:var(--accent-subtle);color:var(--text-primary)}::placeholder{color:var(--field-placeholder)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:var(--border-strong);border-radius:var(--radius-full);background-clip:content-box;border:2px solid #0000}::-webkit-scrollbar-thumb:hover{background-color:var(--border-interactive)}[disabled],[aria-disabled=true]{cursor:not-allowed}}@layer components{.dx-icon{width:var(--dx-icon-size);height:var(--dx-icon-size)}.dx-tap{min-width:var(--tap-target);min-height:var(--tap-target)}.dx-inline-type{font:inherit;letter-spacing:inherit}.dx-field::-webkit-search-cancel-button{appearance:none}.dx-field::-webkit-search-decoration{appearance:none}.dx-sweep{isolation:isolate;position:relative;overflow:hidden}.dx-sweep:after{content:"";z-index:1;pointer-events:none;background:linear-gradient(90deg,transparent 0%,var(--surface-raised) 50%,transparent 100%);position:absolute;inset:0}@supports (color:color-mix(in lab,red,red)){.dx-sweep:after{background:linear-gradient(90deg,transparent 0%,color-mix(in oklab,var(--surface-raised) 65%,transparent) 50%,transparent 100%)}}.dx-sweep:after{animation:var(--animate-sweep)}@media(prefers-reduced-motion:reduce){.dx-sweep:after{display:none}.dx-sweep{animation:var(--animate-pulse)}}}@layer utilities{.page{width:100%;max-width:var(--page-max);padding-inline:var(--page-gutter);margin-inline:auto}.page-prose{max-width:var(--prose-max)}.elevate-sm{box-shadow:var(--shadow-sm);border:1px solid var(--border-subtle)}.elevate-md{box-shadow:var(--shadow-md);border:1px solid var(--border-subtle)}.elevate-lg{box-shadow:var(--shadow-lg);border:1px solid var(--border)}.surface-grain{isolation:isolate;position:relative}.surface-grain:after{content:"";z-index:-1;pointer-events:none;opacity:.4;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 240 240' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");position:absolute;inset:0}.text-gradient-brand{background-image:linear-gradient(100deg,var(--brand) 0%,var(--accent) 62%,var(--accent) 100%);color:#0000;-webkit-background-clip:text;background-clip:text}.sr-only-focusable:not(:focus):not(:focus-within){clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}:root{--slate-25:oklch(98.6% .003 267);--slate-50:oklch(97% .005 267);--slate-100:oklch(93.8% .009 267);--slate-200:oklch(88.2% .013 267);--slate-300:oklch(80.2% .017 267);--slate-400:oklch(69.4% .02 267);--slate-450:oklch(62% .022 267);--slate-500:oklch(58.8% .022 267);--slate-550:oklch(54.5% .022 267);--slate-600:oklch(49.2% .023 267);--slate-700:oklch(40.2% .023 268);--slate-750:oklch(34.8% .023 268);--slate-800:oklch(30.2% .022 268);--slate-850:oklch(26.4% .021 268);--slate-900:oklch(24.2% .02 269);--slate-950:oklch(21.2% .019 269);--slate-975:oklch(18.6% .018 269);--aqua-50:oklch(97.4% .022 196);--aqua-100:oklch(94.4% .046 196);--aqua-200:oklch(89.6% .078 196);--aqua-300:oklch(84.6% .1 197);--aqua-400:oklch(80.2% .116 198);--aqua-500:oklch(74.8% .126 199);--aqua-600:oklch(66.4% .118 201);--aqua-700:oklch(55.4% .098 203);--aqua-800:oklch(44.8% .078 205);--aqua-900:oklch(35.2% .058 207);--aqua-950:oklch(26.2% .042 209);--iris-50:oklch(97% .024 302);--iris-100:oklch(93.8% .05 302);--iris-200:oklch(88.8% .086 302);--iris-300:oklch(82.4% .12 302);--iris-400:oklch(76% .148 303);--iris-500:oklch(70% .166 303);--iris-600:oklch(62% .174 304);--iris-650:oklch(57.5% .165 304);--iris-700:oklch(51.8% .148 305);--iris-800:oklch(42.2% .118 306);--iris-900:oklch(33.6% .09 307);--iris-950:oklch(25% .066 308);--rose-50:oklch(96.8% .02 18);--rose-100:oklch(93.2% .042 18);--rose-200:oklch(87.6% .08 18);--rose-300:oklch(79.4% .13 20);--rose-400:oklch(71.4% .17 22);--rose-500:oklch(64.6% .2 24);--rose-600:oklch(57.4% .2 25);--rose-700:oklch(48% .17 26);--rose-800:oklch(39% .134 26);--rose-900:oklch(31% .1 26);--rose-950:oklch(23% .072 26);--amber-50:oklch(98% .024 92);--amber-100:oklch(95.4% .054 92);--amber-200:oklch(91% .1 90);--amber-300:oklch(86.2% .134 88);--amber-400:oklch(81.4% .15 86);--amber-500:oklch(76.2% .146 84);--amber-600:oklch(67% .13 80);--amber-700:oklch(55.4% .108 76);--amber-800:oklch(45% .086 74);--amber-900:oklch(35.8% .066 72);--amber-950:oklch(26.4% .05 70);--mint-50:oklch(97.2% .026 158);--mint-100:oklch(94.2% .052 158);--mint-200:oklch(89.2% .084 158);--mint-300:oklch(83.6% .108 158);--mint-400:oklch(78% .122 159);--mint-500:oklch(72.2% .126 160);--mint-600:oklch(63.6% .114 161);--mint-700:oklch(52.8% .094 162);--mint-800:oklch(42.8% .074 163);--mint-900:oklch(33.8% .056 164);--mint-950:oklch(25% .04 165);--azure-50:oklch(97% .02 252);--azure-100:oklch(93.8% .04 252);--azure-200:oklch(88.4% .072 252);--azure-300:oklch(81% .104 252);--azure-400:oklch(73% .13 253);--azure-500:oklch(65.6% .146 254);--azure-600:oklch(57.6% .154 255);--azure-700:oklch(48.2% .13 256);--azure-800:oklch(39.4% .102 257);--azure-900:oklch(31.4% .076 258);--azure-950:oklch(23.4% .054 259);--font-display:"Bricolage Grotesque", "Figtree", ui-sans-serif, system-ui, sans-serif;--font-sans:"Figtree", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", "Cascadia Code", monospace;--text-2xs:calc(clamp(.6875rem, .66rem + .14vw, .75rem) * var(--ui-scale));--text-xs:calc(clamp(.75rem, .72rem + .15vw, .8125rem) * var(--ui-scale));--text-sm:calc(clamp(.8125rem, .78rem + .17vw, .875rem) * var(--ui-scale));--text-base:calc(clamp(.9375rem, .9rem + .19vw, 1rem) * var(--ui-scale));--text-md:calc(clamp(1rem, .96rem + .21vw, 1.0625rem) * var(--ui-scale));--text-lg:calc(clamp(1.125rem, 1.07rem + .28vw, 1.25rem) * var(--ui-scale));--text-xl:calc(clamp(1.3125rem, 1.22rem + .45vw, 1.5rem) * var(--ui-scale));--text-2xl:calc(clamp(1.5625rem, 1.42rem + .72vw, 1.875rem) * var(--ui-scale));--text-3xl:calc(clamp(1.875rem, 1.64rem + 1.17vw, 2.375rem) * var(--ui-scale));--text-4xl:calc(clamp(2.25rem, 1.88rem + 1.85vw, 3rem) * var(--ui-scale));--text-5xl:calc(clamp(2.75rem, 2.15rem + 3vw, 4rem) * var(--ui-scale));--weight-normal:400;--weight-medium:510;--weight-semibold:590;--weight-bold:680;--leading-tight:1.12;--leading-snug:1.28;--leading-normal:1.5;--leading-relaxed:1.68;--tracking-tighter:-.025em;--tracking-tight:-.015em;--tracking-normal:0em;--tracking-wide:.02em;--tracking-widest:.08em;--space-0:0rem;--space-px:.0625rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:1.75rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;--radius-xs:.25rem;--radius-sm:.375rem;--radius-md:.625rem;--radius-lg:.875rem;--radius-xl:1.125rem;--radius-2xl:1.5rem;--radius-3xl:2rem;--radius-full:9999px;--radius-outer:var(--radius-xl);--radius-pad:var(--space-4);--radius-inner:max(0px, calc(var(--radius-outer) - var(--radius-pad)));--page-max:none;--page-gutter:clamp(1rem, .6rem + 2vw, 2.5rem);--prose-max:72ch;--z-base:0;--z-sticky:100;--z-overlay:200;--z-drawer:300;--z-modal:400;--z-drag:450;--z-popover:500;--z-toast:600;--z-tooltip:700}:root,[data-theme=dark]{color-scheme:dark;--canvas:var(--slate-975);--canvas-subtle:var(--slate-950);--surface-sunken:oklch(16.6% .017 269);--surface:var(--slate-950);--surface-raised:var(--slate-900);--surface-overlay:var(--slate-850);--surface-inset:oklch(17% .017 269);--ground:var(--surface);--state-lift:oklch(100% 0 0);--state-select:var(--accent);--mix-hover:8%;--mix-active:14%;--mix-selected:24%;--mix-selected-hover:36%;--surface-hover:var(--ground)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--surface-hover:color-mix(in oklab, var(--ground), var(--state-lift) var(--mix-hover))}}:root,[data-theme=dark]{--surface-active:var(--ground)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--surface-active:color-mix(in oklab, var(--ground), var(--state-lift) var(--mix-active))}}:root,[data-theme=dark]{--surface-selected:var(--ground)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--surface-selected:color-mix(in oklab, var(--ground), var(--state-select) var(--mix-selected))}}:root,[data-theme=dark]{--surface-selected-hover:var(--ground)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--surface-selected-hover:color-mix(in oklab, var(--ground), var(--state-select) var(--mix-selected-hover))}}:root,[data-theme=dark]{--border-subtle:oklch(26.8% .019 268);--border:oklch(31.8% .021 268);--border-strong:oklch(40.2% .023 268);--border-interactive:oklch(47.8% .024 267);--text-primary:oklch(94.5% .008 267);--text-secondary:var(--slate-300);--text-tertiary:var(--slate-400);--text-disabled:var(--slate-600);--text-inverse:var(--slate-975);--accent:oklch(78.8% .092 198);--accent-hover:oklch(83.8% .08 197);--accent-active:oklch(72.6% .098 199);--accent-subtle:oklch(29.6% .04 202);--accent-subtle-hover:oklch(34.2% .048 202);--accent-border:oklch(43.2% .06 201);--accent-text:oklch(84.4% .078 197);--accent-contrast:oklch(17.2% .026 208);--brand:oklch(75.2% .116 303);--brand-hover:oklch(81.2% .098 302);--brand-subtle:oklch(30% .052 303);--brand-text:oklch(82.2% .096 302);--brand-contrast:oklch(17.4% .026 307);--success:oklch(77.4% .096 159);--success-subtle:oklch(29.2% .04 160);--success-text:oklch(83% .086 158);--success-border:oklch(42.8% .058 160);--warning:oklch(80.8% .118 86);--warning-subtle:oklch(30% .042 78);--warning-text:oklch(85.8% .106 88);--warning-border:oklch(44.2% .064 78);--danger:oklch(72.2% .136 22);--danger-hover:oklch(78.8% .108 20);--danger-subtle:oklch(29.8% .058 24);--danger-subtle-hover:oklch(35.2% .07 24);--danger-text:oklch(79.6% .104 20);--danger-border:oklch(44.2% .086 25);--danger-contrast:oklch(17.8% .03 24);--info:oklch(73% .104 253);--info-subtle:oklch(29.8% .044 253);--info-text:oklch(81.2% .086 252);--info-border:oklch(44% .066 253);--focus-ring:var(--aqua-400);--focus-ring-offset:var(--canvas);--focus-halo:oklch(80.2% .116 198/.3);--control-knob:var(--slate-200);--control-knob-on:var(--slate-800);--switch-track-off:var(--surface-inset);--field-bg:oklch(21.2% .019 269);--field-bg-hover:oklch(23.6% .02 269);--field-border:oklch(33% .021 268);--field-border-hover:oklch(42.4% .023 268);--field-placeholder:var(--slate-500);--highlight-top:oklch(100% 0 0/.06);--ring-hairline:oklch(10% .016 269/.48);--shade:.11 .018 269;--shadow-xs:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 1px 2px 0 oklch(var(--shade) / .3);--shadow-sm:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 1px 3px 0 oklch(var(--shade) / .36), 0 1px 2px -1px oklch(var(--shade) / .32);--shadow-knob:0 0 0 1px var(--ring-hairline), 0 1px 3px 0 oklch(var(--shade) / .36), 0 1px 2px -1px oklch(var(--shade) / .32);--shadow-md:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 4px 8px -2px oklch(var(--shade) / .4), 0 2px 4px -2px oklch(var(--shade) / .34);--shadow-lg:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 12px 20px -4px oklch(var(--shade) / .46), 0 4px 8px -4px oklch(var(--shade) / .36);--shadow-tooltip:0 0 0 1px oklch(100% 0 0/.16), 0 0 14px -2px oklch(100% 0 0/.1), 0 10px 22px -6px oklch(var(--shade) / .72), 0 3px 8px -3px oklch(var(--shade) / .62);--shadow-xl:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 4px 40px oklch(var(--shade) / .3), 0 3px 20px oklch(var(--shade) / .32), 0 3px 12px oklch(var(--shade) / .32), 0 2px 8px oklch(var(--shade) / .3);--shadow-glow-accent:0 0 0 1px oklch(80.2% .116 198/.3), 0 6px 22px -6px oklch(80.2% .116 198/.32);--scrim:oklch(12% .018 269/.7);--veil:oklch(18.6% .018 269/.58);--event-iris-fill:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--event-iris-fill:color-mix(in oklab, var(--surface-raised), var(--iris-500) 26%)}}:root,[data-theme=dark]{--event-iris-fill-hover:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--event-iris-fill-hover:color-mix(in oklab, var(--surface-raised), var(--iris-500) 38%)}}:root,[data-theme=dark]{--event-iris-text:var(--iris-100);--event-iris-edge:var(--iris-400);--event-aqua-fill:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--event-aqua-fill:color-mix(in oklab, var(--surface-raised), var(--aqua-500) 26%)}}:root,[data-theme=dark]{--event-aqua-fill-hover:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--event-aqua-fill-hover:color-mix(in oklab, var(--surface-raised), var(--aqua-500) 38%)}}:root,[data-theme=dark]{--event-aqua-text:var(--aqua-100);--event-aqua-edge:var(--aqua-400);--event-mint-fill:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--event-mint-fill:color-mix(in oklab, var(--surface-raised), var(--mint-500) 26%)}}:root,[data-theme=dark]{--event-mint-fill-hover:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--event-mint-fill-hover:color-mix(in oklab, var(--surface-raised), var(--mint-500) 38%)}}:root,[data-theme=dark]{--event-mint-text:var(--mint-100);--event-mint-edge:var(--mint-400);--event-amber-fill:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--event-amber-fill:color-mix(in oklab, var(--surface-raised), var(--amber-500) 26%)}}:root,[data-theme=dark]{--event-amber-fill-hover:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--event-amber-fill-hover:color-mix(in oklab, var(--surface-raised), var(--amber-500) 38%)}}:root,[data-theme=dark]{--event-amber-text:var(--amber-100);--event-amber-edge:var(--amber-400);--event-rose-fill:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--event-rose-fill:color-mix(in oklab, var(--surface-raised), var(--rose-500) 26%)}}:root,[data-theme=dark]{--event-rose-fill-hover:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--event-rose-fill-hover:color-mix(in oklab, var(--surface-raised), var(--rose-500) 38%)}}:root,[data-theme=dark]{--event-rose-text:var(--rose-100);--event-rose-edge:var(--rose-400);--event-azure-fill:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--event-azure-fill:color-mix(in oklab, var(--surface-raised), var(--azure-500) 26%)}}:root,[data-theme=dark]{--event-azure-fill-hover:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--event-azure-fill-hover:color-mix(in oklab, var(--surface-raised), var(--azure-500) 38%)}}:root,[data-theme=dark]{--event-azure-text:var(--azure-100);--event-azure-edge:var(--azure-400);--event-slate-fill:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--event-slate-fill:color-mix(in oklab, var(--surface-raised), var(--slate-500) 26%)}}:root,[data-theme=dark]{--event-slate-fill-hover:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--event-slate-fill-hover:color-mix(in oklab, var(--surface-raised), var(--slate-500) 38%)}}:root,[data-theme=dark]{--event-slate-text:var(--slate-100);--event-slate-edge:var(--slate-400)}[data-theme=light],html:has(>body>script[src$="_ds_bundle.js"]){color-scheme:light;--canvas:var(--slate-50);--canvas-subtle:var(--slate-100);--surface-sunken:var(--slate-100);--surface:oklch(100% 0 0);--surface-raised:oklch(100% 0 0);--surface-overlay:oklch(100% 0 0);--surface-inset:var(--slate-50);--ground:var(--surface);--state-lift:var(--slate-950);--state-select:var(--aqua-600);--mix-hover:8%;--mix-active:14%;--mix-selected:30%;--mix-selected-hover:44%;--surface-hover:var(--ground)}@supports (color:color-mix(in lab,red,red)){[data-theme=light],html:has(>body>script[src$="_ds_bundle.js"]){--surface-hover:color-mix(in oklab, var(--ground), var(--state-lift) var(--mix-hover))}}[data-theme=light],html:has(>body>script[src$="_ds_bundle.js"]){--surface-active:var(--ground)}@supports (color:color-mix(in lab,red,red)){[data-theme=light],html:has(>body>script[src$="_ds_bundle.js"]){--surface-active:color-mix(in oklab, var(--ground), var(--state-lift) var(--mix-active))}}[data-theme=light],html:has(>body>script[src$="_ds_bundle.js"]){--surface-selected:var(--ground)}@supports (color:color-mix(in lab,red,red)){[data-theme=light],html:has(>body>script[src$="_ds_bundle.js"]){--surface-selected:color-mix(in oklab, var(--ground), var(--state-select) var(--mix-selected))}}[data-theme=light],html:has(>body>script[src$="_ds_bundle.js"]){--surface-selected-hover:var(--ground)}@supports (color:color-mix(in lab,red,red)){[data-theme=light],html:has(>body>script[src$="_ds_bundle.js"]){--surface-selected-hover:color-mix(in oklab, var(--ground), var(--state-select) var(--mix-selected-hover))}}[data-theme=light],html:has(>body>script[src$="_ds_bundle.js"]){--border-subtle:var(--slate-100);--border:var(--slate-200);--border-strong:var(--slate-300);--border-interactive:var(--slate-400);--text-primary:var(--slate-950);--text-secondary:var(--slate-600);--text-tertiary:var(--slate-500);--text-disabled:var(--slate-400);--text-inverse:var(--slate-25);--accent:var(--aqua-700);--accent-hover:var(--aqua-800);--accent-active:var(--aqua-900);--accent-subtle:var(--aqua-50);--accent-subtle-hover:oklch(92.6% .06 196);--accent-border:var(--aqua-200);--accent-text:var(--aqua-800);--accent-contrast:oklch(100% 0 0);--brand:var(--iris-600);--brand-hover:var(--iris-700);--brand-subtle:var(--iris-50);--brand-text:var(--iris-700);--brand-contrast:oklch(100% 0 0);--success:var(--mint-700);--success-subtle:var(--mint-50);--success-text:var(--mint-800);--success-border:var(--mint-200);--warning:var(--amber-700);--warning-subtle:var(--amber-50);--warning-text:var(--amber-800);--warning-border:var(--amber-200);--danger:var(--rose-600);--danger-hover:var(--rose-700);--danger-subtle:var(--rose-50);--danger-subtle-hover:oklch(92% .058 18);--danger-text:var(--rose-700);--danger-border:var(--rose-200);--danger-contrast:oklch(100% 0 0);--info:var(--azure-600);--info-subtle:var(--azure-50);--info-text:var(--azure-700);--info-border:var(--azure-200);--focus-ring:var(--aqua-600);--focus-ring-offset:oklch(100% 0 0);--focus-halo:oklch(55.4% .098 203/.24);--control-knob:var(--slate-600);--control-knob-on:oklch(100% 0 0);--switch-track-off:var(--surface-inset);--field-bg:oklch(100% 0 0);--field-bg-hover:var(--slate-25);--field-border:var(--slate-300);--field-border-hover:var(--slate-400);--field-placeholder:var(--slate-400);--highlight-top:oklch(100% 0 0/.9);--ring-hairline:oklch(30% .02 267/.1);--shade:.3 .02 267;--shadow-xs:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 1px 2px 0 oklch(var(--shade) / .06);--shadow-sm:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 1px 3px 0 oklch(var(--shade) / .09), 0 1px 2px -1px oklch(var(--shade) / .07);--shadow-knob:0 0 0 1px var(--ring-hairline), 0 1px 3px 0 oklch(var(--shade) / .09), 0 1px 2px -1px oklch(var(--shade) / .07);--shadow-md:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 4px 10px -2px oklch(var(--shade) / .1), 0 2px 5px -2px oklch(var(--shade) / .07);--shadow-lg:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 14px 26px -6px oklch(var(--shade) / .13), 0 5px 10px -5px oklch(var(--shade) / .08);--shadow-tooltip:0 0 0 1px oklch(var(--shade) / .16), 0 10px 22px -6px oklch(var(--shade) / .2), 0 3px 8px -3px oklch(var(--shade) / .14);--shadow-xl:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 26px 46px -10px oklch(var(--shade) / .16), 0 10px 18px -10px oklch(var(--shade) / .1);--shadow-glow-accent:0 0 0 1px oklch(55.4% .098 203/.24), 0 8px 24px -8px oklch(55.4% .098 203/.26);--scrim:oklch(24% .018 267/.4);--veil:oklch(98.5% .004 267/.68);--event-iris-fill:var(--iris-100);--event-iris-fill-hover:var(--iris-200);--event-iris-text:var(--iris-900);--event-iris-edge:var(--iris-700);--event-aqua-fill:var(--aqua-100);--event-aqua-fill-hover:var(--aqua-200);--event-aqua-text:var(--aqua-900);--event-aqua-edge:var(--aqua-700);--event-mint-fill:var(--mint-100);--event-mint-fill-hover:var(--mint-200);--event-mint-text:var(--mint-900);--event-mint-edge:var(--mint-700);--event-amber-fill:var(--amber-100);--event-amber-fill-hover:var(--amber-200);--event-amber-text:var(--amber-900);--event-amber-edge:var(--amber-700);--event-rose-fill:var(--rose-100);--event-rose-fill-hover:var(--rose-200);--event-rose-text:var(--rose-900);--event-rose-edge:var(--rose-700);--event-azure-fill:var(--azure-100);--event-azure-fill-hover:var(--azure-200);--event-azure-text:var(--azure-900);--event-azure-edge:var(--azure-700);--event-slate-fill:var(--slate-100);--event-slate-fill-hover:var(--slate-200);--event-slate-text:var(--slate-900);--event-slate-edge:var(--slate-700)}@media(prefers-color-scheme:light){:root:not([data-theme=dark]):not([data-theme=light]){color-scheme:light;--canvas:var(--slate-50);--canvas-subtle:var(--slate-100);--surface-sunken:var(--slate-100);--surface:oklch(100% 0 0);--surface-raised:oklch(100% 0 0);--surface-overlay:oklch(100% 0 0);--surface-inset:var(--slate-50);--ground:var(--surface);--state-lift:var(--slate-950);--state-select:var(--aqua-600);--mix-hover:8%;--mix-active:14%;--mix-selected:30%;--mix-selected-hover:44%;--surface-hover:var(--ground)}@supports (color:color-mix(in lab,red,red)){:root:not([data-theme=dark]):not([data-theme=light]){--surface-hover:color-mix(in oklab, var(--ground), var(--state-lift) var(--mix-hover))}}:root:not([data-theme=dark]):not([data-theme=light]){--surface-active:var(--ground)}@supports (color:color-mix(in lab,red,red)){:root:not([data-theme=dark]):not([data-theme=light]){--surface-active:color-mix(in oklab, var(--ground), var(--state-lift) var(--mix-active))}}:root:not([data-theme=dark]):not([data-theme=light]){--surface-selected:var(--ground)}@supports (color:color-mix(in lab,red,red)){:root:not([data-theme=dark]):not([data-theme=light]){--surface-selected:color-mix(in oklab, var(--ground), var(--state-select) var(--mix-selected))}}:root:not([data-theme=dark]):not([data-theme=light]){--surface-selected-hover:var(--ground)}@supports (color:color-mix(in lab,red,red)){:root:not([data-theme=dark]):not([data-theme=light]){--surface-selected-hover:color-mix(in oklab, var(--ground), var(--state-select) var(--mix-selected-hover))}}:root:not([data-theme=dark]):not([data-theme=light]){--border-subtle:var(--slate-100);--border:var(--slate-200);--border-strong:var(--slate-300);--border-interactive:var(--slate-400);--text-primary:var(--slate-950);--text-secondary:var(--slate-600);--text-tertiary:var(--slate-500);--text-disabled:var(--slate-400);--text-inverse:var(--slate-25);--accent:var(--aqua-700);--accent-hover:var(--aqua-800);--accent-active:var(--aqua-900);--accent-subtle:var(--aqua-50);--accent-subtle-hover:oklch(92.6% .06 196);--accent-border:var(--aqua-200);--accent-text:var(--aqua-800);--accent-contrast:oklch(100% 0 0);--brand:var(--iris-600);--brand-hover:var(--iris-700);--brand-subtle:var(--iris-50);--brand-text:var(--iris-700);--brand-contrast:oklch(100% 0 0);--success:var(--mint-700);--success-subtle:var(--mint-50);--success-text:var(--mint-800);--success-border:var(--mint-200);--warning:var(--amber-700);--warning-subtle:var(--amber-50);--warning-text:var(--amber-800);--warning-border:var(--amber-200);--danger:var(--rose-600);--danger-hover:var(--rose-700);--danger-subtle:var(--rose-50);--danger-subtle-hover:oklch(92% .058 18);--danger-text:var(--rose-700);--danger-border:var(--rose-200);--danger-contrast:oklch(100% 0 0);--info:var(--azure-600);--info-subtle:var(--azure-50);--info-text:var(--azure-700);--info-border:var(--azure-200);--focus-ring:var(--aqua-600);--focus-ring-offset:oklch(100% 0 0);--focus-halo:oklch(55.4% .098 203/.24);--control-knob:var(--slate-600);--control-knob-on:oklch(100% 0 0);--switch-track-off:var(--surface-inset);--field-bg:oklch(100% 0 0);--field-bg-hover:var(--slate-25);--field-border:var(--slate-300);--field-border-hover:var(--slate-400);--field-placeholder:var(--slate-550);--highlight-top:oklch(100% 0 0/.9);--ring-hairline:oklch(30% .02 267/.1);--shade:.3 .02 267;--shadow-xs:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 1px 2px 0 oklch(var(--shade) / .06);--shadow-sm:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 1px 3px 0 oklch(var(--shade) / .09), 0 1px 2px -1px oklch(var(--shade) / .07);--shadow-knob:0 0 0 1px var(--ring-hairline), 0 1px 3px 0 oklch(var(--shade) / .09), 0 1px 2px -1px oklch(var(--shade) / .07);--shadow-md:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 4px 10px -2px oklch(var(--shade) / .1), 0 2px 5px -2px oklch(var(--shade) / .07);--shadow-lg:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 14px 26px -6px oklch(var(--shade) / .13), 0 5px 10px -5px oklch(var(--shade) / .08);--shadow-tooltip:0 0 0 1px oklch(var(--shade) / .16), 0 10px 22px -6px oklch(var(--shade) / .2), 0 3px 8px -3px oklch(var(--shade) / .14);--shadow-xl:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 26px 46px -10px oklch(var(--shade) / .16), 0 10px 18px -10px oklch(var(--shade) / .1);--shadow-glow-accent:0 0 0 1px oklch(55.4% .098 203/.24), 0 8px 24px -8px oklch(55.4% .098 203/.26);--scrim:oklch(24% .018 267/.4);--veil:oklch(98.5% .004 267/.68);--event-iris-fill:var(--iris-100);--event-iris-fill-hover:var(--iris-200);--event-iris-text:var(--iris-900);--event-iris-edge:var(--iris-700);--event-aqua-fill:var(--aqua-100);--event-aqua-fill-hover:var(--aqua-200);--event-aqua-text:var(--aqua-900);--event-aqua-edge:var(--aqua-700);--event-mint-fill:var(--mint-100);--event-mint-fill-hover:var(--mint-200);--event-mint-text:var(--mint-900);--event-mint-edge:var(--mint-700);--event-amber-fill:var(--amber-100);--event-amber-fill-hover:var(--amber-200);--event-amber-text:var(--amber-900);--event-amber-edge:var(--amber-700);--event-rose-fill:var(--rose-100);--event-rose-fill-hover:var(--rose-200);--event-rose-text:var(--rose-900);--event-rose-edge:var(--rose-700);--event-azure-fill:var(--azure-100);--event-azure-fill-hover:var(--azure-200);--event-azure-text:var(--azure-900);--event-azure-edge:var(--azure-700);--event-slate-fill:var(--slate-100);--event-slate-fill-hover:var(--slate-200);--event-slate-text:var(--slate-900);--event-slate-edge:var(--slate-700)}}.dx-ground-overlay,.dx-ground-raised,.dx-ground-sunken,.dx-ground-canvas{--surface-hover:var(--ground)}@supports (color:color-mix(in lab,red,red)){.dx-ground-overlay,.dx-ground-raised,.dx-ground-sunken,.dx-ground-canvas{--surface-hover:color-mix(in oklab, var(--ground), var(--state-lift) var(--mix-hover))}}.dx-ground-overlay,.dx-ground-raised,.dx-ground-sunken,.dx-ground-canvas{--surface-active:var(--ground)}@supports (color:color-mix(in lab,red,red)){.dx-ground-overlay,.dx-ground-raised,.dx-ground-sunken,.dx-ground-canvas{--surface-active:color-mix(in oklab, var(--ground), var(--state-lift) var(--mix-active))}}.dx-ground-overlay,.dx-ground-raised,.dx-ground-sunken,.dx-ground-canvas{--surface-selected:var(--ground)}@supports (color:color-mix(in lab,red,red)){.dx-ground-overlay,.dx-ground-raised,.dx-ground-sunken,.dx-ground-canvas{--surface-selected:color-mix(in oklab, var(--ground), var(--state-select) var(--mix-selected))}}.dx-ground-overlay,.dx-ground-raised,.dx-ground-sunken,.dx-ground-canvas{--surface-selected-hover:var(--ground)}@supports (color:color-mix(in lab,red,red)){.dx-ground-overlay,.dx-ground-raised,.dx-ground-sunken,.dx-ground-canvas{--surface-selected-hover:color-mix(in oklab, var(--ground), var(--state-select) var(--mix-selected-hover))}}.dx-ground-overlay{--ground:var(--surface-overlay)}.dx-ground-raised{--ground:var(--surface-raised)}.dx-ground-sunken{--ground:var(--surface-sunken)}.dx-ground-canvas{--ground:var(--canvas)}:root{--ui-scale:1}:root[data-ui-scale=sm]{--ui-scale:.9}:root[data-ui-scale=md]{--ui-scale:1}:root[data-ui-scale=lg]{--ui-scale:1.1}:root{--tap-floor:24px;--tap-target:auto;--control-xs:max(var(--tap-floor), calc(1.75rem * var(--ui-scale)));--control-sm:max(var(--tap-floor), calc(2.25rem * var(--ui-scale)));--control-md:max(var(--tap-floor), calc(2.75rem * var(--ui-scale)));--control-lg:max(var(--tap-floor), calc(3.25rem * var(--ui-scale)));--control-xl:max(var(--tap-floor), calc(3.75rem * var(--ui-scale)))}@media(pointer:coarse){:root{--tap-floor:44px;--tap-target:44px}}:root{--icon-xs:calc(.875rem * var(--ui-scale));--icon-sm:calc(1rem * var(--ui-scale));--icon-md:calc(1.25rem * var(--ui-scale));--icon-lg:calc(1.5rem * var(--ui-scale));--icon-xl:calc(2rem * var(--ui-scale));--icon-stroke-xs:2.25;--icon-stroke-sm:2.1;--icon-stroke-md:2;--icon-stroke-lg:1.9;--icon-stroke-xl:1.75;--motion-scale:1;--motion-travel:1;--tx-colors:color, background-color, border-color, outline-color, text-decoration-color, fill, stroke;--dur-instant:calc(70ms * var(--motion-scale));--dur-fast:calc(.11s * var(--motion-scale));--dur-base:calc(.16s * var(--motion-scale));--dur-slow:calc(.24s * var(--motion-scale));--dur-slower:calc(.32s * var(--motion-scale));--dur-slowest:calc(.45s * var(--motion-scale));--dur-exit:calc(.105s * var(--motion-scale));--dur-exit-slow:calc(.16s * var(--motion-scale))}@media(prefers-reduced-motion:reduce){:root{--motion-scale:.5;--motion-travel:0}}:root[data-motion=reduced]{--motion-scale:.5;--motion-travel:0}:root[data-motion=full]{--motion-scale:1;--motion-travel:1}:root[data-motion-suspend]{--motion-scale:0;--motion-travel:0}@keyframes dx-fade-in{0%{opacity:0}to{opacity:1}}@keyframes dx-rise-in{0%{opacity:0;transform:translateY(calc(6px * var(--motion-travel)))}to{opacity:1;transform:none}}@keyframes dx-scale-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}@keyframes dx-pulse{50%{opacity:.55}}@keyframes dx-sweep{0%{transform:translate(-100%)}50%,to{transform:translate(100%)}}@keyframes dx-spin{to{rotate:360deg}}@keyframes dx-shimmer{0%{background-position:180% 0}to{background-position:-80% 0}}@keyframes dx-progress-sweep{0%{transform:translate(-100%)}to{transform:translate(300%)}}@keyframes dx-ping{0%{opacity:.7;transform:scale(1)}75%,to{opacity:0;transform:scale(2.4)}}@keyframes dx-ripple{0%{opacity:.22;transform:scale(.28)}40%{opacity:.16}to{opacity:0;transform:scale(1)}}@keyframes dx-spinner-dash{0%{stroke-dasharray:1 150;stroke-dashoffset:0}50%{stroke-dasharray:90 150;stroke-dashoffset:-35px}to{stroke-dasharray:90 150;stroke-dashoffset:-124px}}:root[data-contrast=aa]{--field-placeholder:var(--slate-450);--text-tertiary:var(--slate-300)}:root[data-theme=light][data-contrast=aa]{--text-tertiary:var(--slate-600);--field-placeholder:var(--slate-550);--brand:var(--iris-650)}@media(prefers-color-scheme:light){:root:not([data-theme=dark])[data-contrast=aa]{--text-tertiary:var(--slate-600);--field-placeholder:var(--slate-550);--brand:var(--iris-650)}}:root{--code-font-size:var(--text-xs);--code-line-height:1.7;--code-tab-size:2;--code-pad-x:var(--space-3);--code-pad-y:calc(var(--space-1) * 2.5);--code-gutter-gap:var(--space-3)}.dx-code-metrics{font-family:var(--font-mono);font-size:var(--code-font-size);line-height:var(--code-line-height);letter-spacing:0;word-spacing:0;font-weight:var(--weight-normal);font-variant-ligatures:none;font-feature-settings:"liga" 0,"calt" 0;font-kerning:none;text-indent:0;text-transform:none;tab-size:var(--code-tab-size);-moz-tab-size:var(--code-tab-size);font-style:normal}.dx-code-pad{padding:var(--code-pad-y) var(--code-pad-x);border:0;margin:0}.dx-code-layers{--code-gutter-w:0px}.dx-code-layers[data-gutter]{--code-gutter-w:calc(var(--code-digits) * 1ch + var(--code-pad-x) + var(--code-gutter-gap))}.dx-code-gutter{width:var(--code-gutter-w);padding:var(--code-pad-y) var(--code-gutter-gap) var(--code-pad-y) var(--code-pad-x);border:0;margin:0}.dx-code-nowrap{white-space:pre;overflow-wrap:normal;word-break:normal}.dx-code-wrap{white-space:pre-wrap;overflow-wrap:break-word;word-break:normal}:root,[data-theme=dark]{--syntax-text:var(--text-primary);--syntax-comment:oklch(67.2% .024 267);--syntax-punctuation:oklch(70% .02 267);--syntax-operator:oklch(82.2% .03 267);--syntax-string:oklch(81.2% .084 160);--syntax-escape:oklch(86.4% .104 88);--syntax-number:oklch(84.6% .082 70);--syntax-boolean:oklch(80% .086 303);--syntax-null:oklch(76.6% .074 303);--syntax-regex:oklch(80.8% .082 22);--syntax-keyword:oklch(80.6% .108 303);--syntax-property:oklch(83.6% .076 197);--syntax-variable:oklch(90.6% .018 267);--syntax-function:oklch(82.2% .084 253);--syntax-type:oklch(85.6% .064 190);--syntax-constant:oklch(82.8% .088 60);--syntax-tag:oklch(80.6% .088 20);--syntax-attribute:oklch(85.6% .084 92);--syntax-selector:oklch(82.8% .082 150);--syntax-atrule:oklch(80.8% .1 303);--syntax-heading:oklch(86.8% .084 197);--syntax-emphasis:var(--text-secondary);--syntax-strong:var(--text-primary);--syntax-strike:oklch(70% .02 267);--syntax-link:oklch(82.8% .078 253);--syntax-url:oklch(80.6% .058 200);--syntax-marker:oklch(76% .058 303);--syntax-quote:var(--text-secondary);--syntax-invalid:var(--danger-text);--syntax-invalid-bg:var(--danger-subtle)}[data-theme=light],html:has(>body>script[src$="_ds_bundle.js"]){--syntax-text:var(--text-primary);--syntax-comment:oklch(49.2% .023 268);--syntax-punctuation:oklch(49.2% .023 268);--syntax-operator:oklch(40.2% .023 268);--syntax-string:oklch(47% .092 162);--syntax-escape:oklch(48% .104 62);--syntax-number:oklch(47.8% .112 58);--syntax-boolean:oklch(46.2% .14 305);--syntax-null:oklch(47.8% .116 305);--syntax-regex:oklch(47.8% .152 24);--syntax-keyword:oklch(44.6% .158 305);--syntax-property:oklch(45.2% .09 203);--syntax-variable:oklch(34.8% .023 268);--syntax-function:oklch(45.4% .128 256);--syntax-type:oklch(43.6% .08 190);--syntax-constant:oklch(47% .108 54);--syntax-tag:oklch(46.4% .148 26);--syntax-attribute:oklch(47.2% .098 76);--syntax-selector:oklch(45.2% .09 150);--syntax-atrule:oklch(44.6% .15 305);--syntax-heading:oklch(42.4% .088 200);--syntax-emphasis:oklch(40.2% .023 268);--syntax-strong:var(--text-primary);--syntax-strike:oklch(49.2% .023 268);--syntax-link:oklch(45.4% .128 256);--syntax-url:oklch(45.2% .08 200);--syntax-marker:oklch(47.8% .106 305);--syntax-quote:oklch(40.2% .023 268);--syntax-invalid:var(--danger-text);--syntax-invalid-bg:var(--danger-subtle)}@media(prefers-color-scheme:light){:root:not([data-theme=dark]):not([data-theme=light]){--syntax-text:var(--text-primary);--syntax-comment:oklch(49.2% .023 268);--syntax-punctuation:oklch(49.2% .023 268);--syntax-operator:oklch(40.2% .023 268);--syntax-string:oklch(47% .092 162);--syntax-escape:oklch(48% .104 62);--syntax-number:oklch(47.8% .112 58);--syntax-boolean:oklch(46.2% .14 305);--syntax-null:oklch(47.8% .116 305);--syntax-regex:oklch(47.8% .152 24);--syntax-keyword:oklch(44.6% .158 305);--syntax-property:oklch(45.2% .09 203);--syntax-variable:oklch(34.8% .023 268);--syntax-function:oklch(45.4% .128 256);--syntax-type:oklch(43.6% .08 190);--syntax-constant:oklch(47% .108 54);--syntax-tag:oklch(46.4% .148 26);--syntax-attribute:oklch(47.2% .098 76);--syntax-selector:oklch(45.2% .09 150);--syntax-atrule:oklch(44.6% .15 305);--syntax-heading:oklch(42.4% .088 200);--syntax-emphasis:oklch(40.2% .023 268);--syntax-strong:var(--text-primary);--syntax-strike:oklch(49.2% .023 268);--syntax-link:oklch(45.4% .128 256);--syntax-url:oklch(45.2% .08 200);--syntax-marker:oklch(47.8% .106 305);--syntax-quote:oklch(40.2% .023 268);--syntax-invalid:var(--danger-text);--syntax-invalid-bg:var(--danger-subtle)}}:is(.dx-code-pre,.dx-markdown-surface) [data-t=text]{color:var(--syntax-text)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=comment]{color:var(--syntax-comment);font-style:italic}:is(.dx-code-pre,.dx-markdown-surface) [data-t=punctuation]{color:var(--syntax-punctuation)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=operator]{color:var(--syntax-operator)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=string]{color:var(--syntax-string)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=escape]{color:var(--syntax-escape)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=number]{color:var(--syntax-number)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=boolean]{color:var(--syntax-boolean)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=null]{color:var(--syntax-null)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=regex]{color:var(--syntax-regex)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=keyword]{color:var(--syntax-keyword)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=property]{color:var(--syntax-property)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=variable]{color:var(--syntax-variable)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=function]{color:var(--syntax-function)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=type]{color:var(--syntax-type)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=constant]{color:var(--syntax-constant)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=tag]{color:var(--syntax-tag)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=attribute]{color:var(--syntax-attribute)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=selector]{color:var(--syntax-selector)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=atrule]{color:var(--syntax-atrule)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=heading]{color:var(--syntax-heading);font-weight:var(--weight-semibold)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=emphasis]{color:var(--syntax-emphasis);font-style:italic}:is(.dx-code-pre,.dx-markdown-surface) [data-t=strong]{color:var(--syntax-strong);font-weight:var(--weight-bold)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=strike]{color:var(--syntax-strike);text-decoration:line-through}:is(.dx-code-pre,.dx-markdown-surface) [data-t=link]{color:var(--syntax-link);text-underline-offset:2px;text-decoration:underline}:is(.dx-code-pre,.dx-markdown-surface) [data-t=url]{color:var(--syntax-url)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=marker]{color:var(--syntax-marker)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=quote]{color:var(--syntax-quote);font-style:italic}:is(.dx-code-pre,.dx-markdown-surface) [data-t=invalid]{color:var(--syntax-invalid);background-color:var(--syntax-invalid-bg);border-radius:var(--radius-xs)}.dx-md{color:var(--text-secondary);font-size:var(--text-sm);line-height:var(--leading-relaxed);min-width:0}.dx-md>:first-child{margin-top:0}.dx-md>:last-child{margin-bottom:0}.dx-md h1,.dx-md h2,.dx-md h3,.dx-md h4,.dx-md h5,.dx-md h6{color:var(--text-primary);font-family:var(--font-display);margin:var(--space-5) 0 var(--space-2);text-wrap:balance}.dx-md h1{font-size:var(--text-xl)}.dx-md h2{font-size:var(--text-lg)}.dx-md h3{font-size:var(--text-md)}.dx-md h4,.dx-md h5,.dx-md h6{font-size:var(--text-base)}.dx-md p{margin:var(--space-2) 0;text-wrap:pretty}.dx-md ul,.dx-md ol{margin:var(--space-2) 0;gap:var(--space-1);flex-direction:column;padding-inline-start:var(--space-5);display:flex}.dx-md ul{list-style:outside}.dx-md ol{list-style:decimal}.dx-md li::marker{color:var(--text-tertiary)}.dx-md li:has(>input[type=checkbox]){margin-inline-start:calc(var(--space-5) * -1);list-style:none}.dx-md li>input[type=checkbox]{accent-color:var(--accent);margin-inline-end:var(--space-2)}.dx-md blockquote{margin:var(--space-3) 0;border-inline-start:2px solid var(--accent-border);color:var(--text-secondary);padding-inline-start:var(--space-3);font-style:italic}.dx-md hr{margin:var(--space-4) 0;border:0;border-top:1px solid var(--border-subtle)}.dx-md a{color:var(--accent-text);text-decoration:underline;-webkit-text-decoration-color:var(--accent-border);text-decoration-color:var(--accent-border);text-underline-offset:2px}.dx-md a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.dx-md :not(pre)>code{font-family:var(--font-mono);color:var(--text-primary);background-color:var(--surface-inset);border:1px solid var(--border-subtle);border-radius:var(--radius-xs);padding:.0625rem var(--space-1);font-size:.88em}.dx-md img{border-radius:var(--radius-md);max-width:100%;height:auto}.dx-md .dx-md-table,.dx-md table{border-collapse:collapse;max-width:100%;font-size:var(--text-xs);margin:var(--space-3) 0;display:block;overflow-x:auto}.dx-md th,.dx-md td{border-bottom:1px solid var(--border-subtle);padding:calc(var(--space-1) * 1.5) var(--space-2);text-align:start;white-space:nowrap}.dx-md th{color:var(--text-primary);font-weight:var(--weight-semibold)}.dx-md sup a{text-decoration:none}.dx-markdown-surface{white-space:pre-wrap;overflow-wrap:anywhere;tab-size:2;color:var(--text-primary)}.dx-markdown-surface [data-md=paragraph],.dx-markdown-surface [data-md=heading],.dx-markdown-surface [data-md=quote],.dx-markdown-surface [data-md=list],.dx-markdown-surface [data-md=listItem],.dx-markdown-surface [data-md=code],.dx-markdown-surface [data-md=frontmatter],.dx-markdown-surface [data-md=rule],.dx-markdown-surface [data-md=footnoteDef],.dx-markdown-surface [data-md=linkDef]{margin:0;padding:0;display:inline}.dx-markdown-surface h1,.dx-markdown-surface h2,.dx-markdown-surface h3,.dx-markdown-surface h4,.dx-markdown-surface h5,.dx-markdown-surface h6{color:var(--text-primary);font-weight:650;line-height:inherit}.dx-markdown-surface h1{font-size:1.6em}.dx-markdown-surface h2{font-size:1.35em}.dx-markdown-surface h3{font-size:1.18em}.dx-markdown-surface h4{font-size:1.06em}.dx-markdown-surface [data-md=quote]{color:var(--text-secondary)}.dx-markdown-surface [data-md=quote] [data-md=inline]{-webkit-box-decoration-break:clone;box-decoration-break:clone;border-left:2px solid var(--border-strong);padding-left:.75em}.dx-markdown-surface [data-md=list] [data-md=list]>[data-md=listItem]{padding-left:1.5em}.dx-markdown-surface [data-md=list] [data-md=list] [data-md=list]>[data-md=listItem]{padding-left:3em}.dx-markdown-surface [data-md=list] [data-md=list] [data-md=list] [data-md=list]>[data-md=listItem]{padding-left:4.5em}.dx-markdown-surface [data-md=list] [data-md=list] [data-md=list] [data-md=list] [data-md=list]>[data-md=listItem]{padding-left:6em}.dx-markdown-surface [data-md=listItem]:before{content:"•";color:var(--text-tertiary);margin-right:.45em}.dx-markdown-surface [data-md=list] [data-md=list]>[data-md=listItem]:before{content:"◦"}.dx-markdown-surface [data-md=list] [data-md=list] [data-md=list]>[data-md=listItem]:before{content:"▪"}.dx-markdown-surface ol>[data-md=listItem]:before{content:attr(data-md-marker);font-variant-numeric:tabular-nums;margin-right:.4em}.dx-markdown-surface [data-md=listItem][data-md-checked=false]:before{content:"☐";color:var(--text-tertiary)}.dx-markdown-surface [data-md=listItem][data-md-checked=true]:before{content:"☑";color:var(--accent)}.dx-markdown-surface [data-md=listItem][data-md-checked=true]{color:var(--text-tertiary);text-decoration:line-through}.dx-markdown-surface [data-md=listItem][data-md-checked=true]:before{text-decoration:none;display:inline-block}.dx-markdown-surface code,.dx-markdown-surface [data-md=code]{font-family:var(--font-mono);font-size:.925em}.dx-markdown-surface [data-md=codeSpan]{background:var(--surface-inset);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:.25rem;padding:.05em .25em}.dx-markdown-surface [data-md=codeBody]{background:var(--surface-inset);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:.25rem;padding:.31em .5em;font-size:1em}.dx-markdown-surface [data-md-href]{color:var(--accent);text-underline-offset:.15em;text-decoration:underline}.dx-markdown-surface [data-md=code] [data-t]{font-family:var(--font-mono)}.dx-markdown-surface [data-md-decoration]{vertical-align:middle;-webkit-user-select:none;user-select:none;border-radius:.25rem;max-width:100%;max-height:20rem;display:inline-block}.dx-markdown-surface [data-md=footnoteRef]{color:var(--accent);vertical-align:super;font-size:.75em}.dx-markdown-surface [data-md=rule]{color:#0000}.dx-markdown-surface [data-md=rule]:after{content:"";vertical-align:middle;border-top:1px solid var(--border-subtle);width:100%;display:inline-block}.dx-markdown-surface [data-md=table]{border-collapse:collapse;margin:.25em 0;display:inline-table}.dx-markdown-surface [data-md=tableCell]{border:1px solid var(--border-subtle);text-align:left;white-space:pre-wrap;padding:.15em .5em}.dx-markdown-surface th[data-md=tableCell]{font-weight:600}.dx-markdown-surface [data-md-align=center]{text-align:center}.dx-markdown-surface [data-md-align=right]{text-align:right}.dx-markdown-surface [data-md=tableGutter]{border:0;width:0;padding:0}.dx-markdown-surface [data-md=tableDelimiter]{font-size:0;line-height:0}.dx-markdown-surface [data-md-syntax]{opacity:0;vertical-align:baseline;width:0;height:0;line-height:0;display:inline-block;overflow:hidden}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
|
|
1
|
+
@layer theme{:root,:host{--font-sans:var(--font-sans);--font-mono:var(--font-mono);--text-xs:var(--text-xs);--text-sm:var(--text-sm);--text-base:var(--text-base);--text-lg:var(--text-lg);--text-xl:var(--text-xl);--text-2xl:var(--text-2xl);--text-3xl:var(--text-3xl);--text-4xl:var(--text-4xl);--text-5xl:var(--text-5xl);--tracking-tighter:var(--tracking-tighter);--tracking-tight:var(--tracking-tight);--tracking-normal:var(--tracking-normal);--tracking-wide:var(--tracking-wide);--tracking-widest:var(--tracking-widest);--leading-tight:var(--leading-tight);--leading-snug:var(--leading-snug);--leading-normal:var(--leading-normal);--leading-relaxed:var(--leading-relaxed);--radius-xs:var(--radius-xs);--radius-sm:var(--radius-sm);--radius-md:var(--radius-md);--radius-lg:var(--radius-lg);--radius-xl:var(--radius-xl);--radius-2xl:var(--radius-2xl);--radius-3xl:var(--radius-3xl);--shadow-xs:var(--shadow-xs);--shadow-sm:var(--shadow-sm);--shadow-md:var(--shadow-md);--shadow-lg:var(--shadow-lg);--shadow-xl:var(--shadow-xl);--animate-spin:dx-spin 1.4s linear infinite;--animate-pulse:dx-pulse 1.8s var(--ease-standard) .5s infinite;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--ease-standard:cubic-bezier(.2, 0, 0, 1);--ease-entrance:cubic-bezier(0, 0, .2, 1);--ease-exit:cubic-bezier(.4, 0, 1, 1);--ease-emphasis:cubic-bezier(.05, .7, .1, 1);--ease-hover:cubic-bezier(.4, 1, .6, 1);--ease-out-strong:cubic-bezier(.23, 1, .32, 1);--ease-in-strong:cubic-bezier(.32, 0, .67, 0);--ease-snappy:linear(0, .0118, .0436, .0903, .1478, .2123, .281, .3513, .4214, .4896, .5549, .6164, .6734, .7257, .773, .8154, .853, .8858, .9143, .9386, .9591, .9762, .9901, 1.0013, 1.0101, 1.0168, 1.0216, 1.025, 1.027, 1.028, 1.0282, 1.0276, 1.0266, 1.0252, 1.0235, 1.0216, 1.0197, 1.0177, 1.0157, 1.0138, 1.012, 1.0103, 1.0087, 1.0073, 1.006, 1.0049, 1.0038, 1.003, 1.0022, 1.0015, 1);--ease-smooth:linear(0, .0151, .0535, .107, .1694, .2361, .304, .3707, .4346, .4949, .551, .6025, .6494, .6918, .7299, .7638, .7941, .8208, .8444, .8651, .8832, .8991, .913, .925, .9354, .9445, .9524, .9591, .965, .97, .9743, .9781, .9813, .984, .9864, .9884, .9901, .9916, .9928, .9939, .9948, .9956, .9963, .9968, .9973, .9977, .9981, .9984, .9986, .9988, 1);--ease-bouncy:linear(0, .0552, .1966, .3883, .5977, .7985, .9716, 1.1054, 1.1955, 1.243, 1.2533, 1.2343, 1.1953, 1.1451, 1.0919, 1.042, .9998, .968, .9472, .9371, .9361, .9421, .9527, .9658, .9792, .9916, 1.0018, 1.0094, 1.0141, 1.0162, 1.016, 1.0142, 1.0114, 1.008, 1.0046, 1.0016, .9991, .9973, .9963, .9959, .996, .9965, .9973, .9981, .999, .9997, 1.0003, 1.0007, 1.001, 1.0011, 1);--ease-gentle:linear(0, .0128, .0462, .0941, .1516, .2146, .2804, .3465, .4112, .4734, .5321, .5869, .6375, .6837, .7255, .7631, .7966, .8264, .8526, .8756, .8955, .9129, .9278, .9406, .9515, .9607, .9685, .975, .9804, .9849, .9886, .9916, .994, .996, .9975, .9987, .9996, 1.0003, 1.0008, 1.0011, 1.0014, 1.0015, 1.0016, 1.0016, 1.0015, 1.0015, 1.0014, 1.0013, 1.0012, 1.0011, 1);--ease-pen:linear(0, .0426, .085, .1271, .1683, .2077, .2443, .2766, .3043, .3282, .3507, .3743, .4012, .4319, .4657, .5012, .5374, .5735, .609, .6438, .6776, .7106, .7427, .7737, .8037, .8325, .8602, .8868, .9121, .9361, .9588, .9801, 1);--animate-fade-in:dx-fade-in var(--dur-base) var(--ease-entrance) both;--animate-rise-in:dx-rise-in var(--dur-base) var(--ease-entrance) both;--animate-scale-in:dx-scale-in var(--dur-fast) var(--ease-snappy) both;--animate-fade-out:dx-fade-in var(--dur-exit) var(--ease-exit) reverse both;--animate-sweep:dx-sweep 1.6s var(--ease-standard) infinite;--animate-spinner-dash:dx-spinner-dash 2.2s var(--ease-standard) infinite;--animate-shimmer:dx-shimmer 2.4s var(--ease-standard) infinite;--font-display:var(--font-display);--text-2xs:var(--text-2xs);--text-md:var(--text-md);--shadow-knob:var(--shadow-knob);--shadow-tooltip:var(--shadow-tooltip);--shadow-glow-accent:var(--shadow-glow-accent)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}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,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}: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)){::placeholder{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{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:before,:after{border-color:var(--border);transition-property:var(--tx-colors);transition-duration:var(--dur-fast);transition-timing-function:var(--ease-standard)}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:var(--space-20)}body{background-color:var(--canvas);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;min-height:100dvh}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--weight-semibold);font-optical-sizing:auto;letter-spacing:var(--tracking-tight);line-height:var(--leading-tight);text-wrap:balance}strong,b{font-weight:var(--weight-bold)}p{text-wrap:pretty}.tabular,table{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}pre,code,kbd,samp{font-variant-ligatures:none;font-feature-settings:"liga" 0,"calt" 0}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-xs)}:focus:not(:focus-visible){outline:none}::selection{background-color:var(--accent-subtle);color:var(--text-primary)}::placeholder{color:var(--field-placeholder)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:var(--border-strong);border-radius:var(--radius-full);background-clip:content-box;border:2px solid #0000}::-webkit-scrollbar-thumb:hover{background-color:var(--border-interactive)}[disabled],[aria-disabled=true]{cursor:not-allowed}}@layer components{.dx-icon{width:var(--dx-icon-size);height:var(--dx-icon-size)}.dx-tap{min-width:var(--tap-target);min-height:var(--tap-target)}.dx-inline-type{font:inherit;letter-spacing:inherit}.dx-field::-webkit-search-cancel-button{appearance:none}.dx-field::-webkit-search-decoration{appearance:none}.dx-sweep{isolation:isolate;position:relative;overflow:hidden}.dx-sweep:after{content:"";z-index:1;pointer-events:none;background:linear-gradient(90deg,transparent 0%,var(--surface-raised) 50%,transparent 100%);position:absolute;inset:0}@supports (color:color-mix(in lab,red,red)){.dx-sweep:after{background:linear-gradient(90deg,transparent 0%,color-mix(in oklab,var(--surface-raised) 65%,transparent) 50%,transparent 100%)}}.dx-sweep:after{animation:var(--animate-sweep)}@media(prefers-reduced-motion:reduce){.dx-sweep:after{display:none}.dx-sweep{animation:var(--animate-pulse)}}}@layer utilities{.page{width:100%;max-width:var(--page-max);padding-inline:var(--page-gutter);margin-inline:auto}.page-prose{max-width:var(--prose-max)}.elevate-sm{box-shadow:var(--shadow-sm);border:1px solid var(--border-subtle)}.elevate-md{box-shadow:var(--shadow-md);border:1px solid var(--border-subtle)}.elevate-lg{box-shadow:var(--shadow-lg);border:1px solid var(--border)}.surface-grain{isolation:isolate;position:relative}.surface-grain:after{content:"";z-index:-1;pointer-events:none;opacity:.4;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 240 240' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");position:absolute;inset:0}.text-gradient-brand{background-image:linear-gradient(100deg,var(--brand) 0%,var(--accent) 62%,var(--accent) 100%);color:#0000;-webkit-background-clip:text;background-clip:text}.sr-only-focusable:not(:focus):not(:focus-within){clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}:root{--slate-25:oklch(98.6% .003 267);--slate-50:oklch(97% .005 267);--slate-100:oklch(93.8% .009 267);--slate-200:oklch(88.2% .013 267);--slate-300:oklch(80.2% .017 267);--slate-400:oklch(69.4% .02 267);--slate-450:oklch(62% .022 267);--slate-500:oklch(58.8% .022 267);--slate-550:oklch(54.5% .022 267);--slate-600:oklch(49.2% .023 267);--slate-700:oklch(40.2% .023 268);--slate-750:oklch(34.8% .023 268);--slate-800:oklch(30.2% .022 268);--slate-850:oklch(26.4% .021 268);--slate-900:oklch(24.2% .02 269);--slate-950:oklch(21.2% .019 269);--slate-975:oklch(18.6% .018 269);--aqua-50:oklch(97.4% .022 196);--aqua-100:oklch(94.4% .046 196);--aqua-200:oklch(89.6% .078 196);--aqua-300:oklch(84.6% .1 197);--aqua-400:oklch(80.2% .116 198);--aqua-500:oklch(74.8% .126 199);--aqua-600:oklch(66.4% .118 201);--aqua-700:oklch(55.4% .098 203);--aqua-800:oklch(44.8% .078 205);--aqua-900:oklch(35.2% .058 207);--aqua-950:oklch(26.2% .042 209);--iris-50:oklch(97% .024 302);--iris-100:oklch(93.8% .05 302);--iris-200:oklch(88.8% .086 302);--iris-300:oklch(82.4% .12 302);--iris-400:oklch(76% .148 303);--iris-500:oklch(70% .166 303);--iris-600:oklch(62% .174 304);--iris-650:oklch(57.5% .165 304);--iris-700:oklch(51.8% .148 305);--iris-800:oklch(42.2% .118 306);--iris-900:oklch(33.6% .09 307);--iris-950:oklch(25% .066 308);--rose-50:oklch(96.8% .02 18);--rose-100:oklch(93.2% .042 18);--rose-200:oklch(87.6% .08 18);--rose-300:oklch(79.4% .13 20);--rose-400:oklch(71.4% .17 22);--rose-500:oklch(64.6% .2 24);--rose-600:oklch(57.4% .2 25);--rose-700:oklch(48% .17 26);--rose-800:oklch(39% .134 26);--rose-900:oklch(31% .1 26);--rose-950:oklch(23% .072 26);--amber-50:oklch(98% .024 92);--amber-100:oklch(95.4% .054 92);--amber-200:oklch(91% .1 90);--amber-300:oklch(86.2% .134 88);--amber-400:oklch(81.4% .15 86);--amber-500:oklch(76.2% .146 84);--amber-600:oklch(67% .13 80);--amber-700:oklch(55.4% .108 76);--amber-800:oklch(45% .086 74);--amber-900:oklch(35.8% .066 72);--amber-950:oklch(26.4% .05 70);--mint-50:oklch(97.2% .026 158);--mint-100:oklch(94.2% .052 158);--mint-200:oklch(89.2% .084 158);--mint-300:oklch(83.6% .108 158);--mint-400:oklch(78% .122 159);--mint-500:oklch(72.2% .126 160);--mint-600:oklch(63.6% .114 161);--mint-700:oklch(52.8% .094 162);--mint-800:oklch(42.8% .074 163);--mint-900:oklch(33.8% .056 164);--mint-950:oklch(25% .04 165);--azure-50:oklch(97% .02 252);--azure-100:oklch(93.8% .04 252);--azure-200:oklch(88.4% .072 252);--azure-300:oklch(81% .104 252);--azure-400:oklch(73% .13 253);--azure-500:oklch(65.6% .146 254);--azure-600:oklch(57.6% .154 255);--azure-700:oklch(48.2% .13 256);--azure-800:oklch(39.4% .102 257);--azure-900:oklch(31.4% .076 258);--azure-950:oklch(23.4% .054 259);--font-display:"Bricolage Grotesque", "Figtree", ui-sans-serif, system-ui, sans-serif;--font-sans:"Figtree", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", "Cascadia Code", monospace;--text-2xs:calc(clamp(.6875rem, .66rem + .14vw, .75rem) * var(--ui-scale));--text-xs:calc(clamp(.75rem, .72rem + .15vw, .8125rem) * var(--ui-scale));--text-sm:calc(clamp(.8125rem, .78rem + .17vw, .875rem) * var(--ui-scale));--text-base:calc(clamp(.9375rem, .9rem + .19vw, 1rem) * var(--ui-scale));--text-md:calc(clamp(1rem, .96rem + .21vw, 1.0625rem) * var(--ui-scale));--text-lg:calc(clamp(1.125rem, 1.07rem + .28vw, 1.25rem) * var(--ui-scale));--text-xl:calc(clamp(1.3125rem, 1.22rem + .45vw, 1.5rem) * var(--ui-scale));--text-2xl:calc(clamp(1.5625rem, 1.42rem + .72vw, 1.875rem) * var(--ui-scale));--text-3xl:calc(clamp(1.875rem, 1.64rem + 1.17vw, 2.375rem) * var(--ui-scale));--text-4xl:calc(clamp(2.25rem, 1.88rem + 1.85vw, 3rem) * var(--ui-scale));--text-5xl:calc(clamp(2.75rem, 2.15rem + 3vw, 4rem) * var(--ui-scale));--weight-normal:400;--weight-medium:510;--weight-semibold:590;--weight-bold:680;--leading-tight:1.12;--leading-snug:1.28;--leading-normal:1.5;--leading-relaxed:1.68;--tracking-tighter:-.025em;--tracking-tight:-.015em;--tracking-normal:0em;--tracking-wide:.02em;--tracking-widest:.08em;--space-0:0rem;--space-px:.0625rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:1.75rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;--radius-xs:.25rem;--radius-sm:.375rem;--radius-md:.625rem;--radius-lg:.875rem;--radius-xl:1.125rem;--radius-2xl:1.5rem;--radius-3xl:2rem;--radius-full:9999px;--radius-outer:var(--radius-xl);--radius-pad:var(--space-4);--radius-inner:max(0px, calc(var(--radius-outer) - var(--radius-pad)));--page-max:none;--page-gutter:clamp(1rem, .6rem + 2vw, 2.5rem);--prose-max:72ch;--z-base:0;--z-sticky:100;--z-overlay:200;--z-drawer:300;--z-modal:400;--z-drag:450;--z-popover:500;--z-toast:600;--z-tooltip:700}:root,[data-theme=dark]{color-scheme:dark;--canvas:var(--slate-975);--canvas-subtle:var(--slate-950);--surface-sunken:oklch(16.6% .017 269);--surface:var(--slate-950);--surface-raised:var(--slate-900);--surface-overlay:var(--slate-850);--surface-inset:oklch(17% .017 269);--ground:var(--surface);--state-lift:oklch(100% 0 0);--state-select:var(--accent);--mix-hover:8%;--mix-active:14%;--mix-selected:24%;--mix-selected-hover:36%;--surface-hover:var(--ground)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--surface-hover:color-mix(in oklab, var(--ground), var(--state-lift) var(--mix-hover))}}:root,[data-theme=dark]{--surface-active:var(--ground)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--surface-active:color-mix(in oklab, var(--ground), var(--state-lift) var(--mix-active))}}:root,[data-theme=dark]{--surface-selected:var(--ground)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--surface-selected:color-mix(in oklab, var(--ground), var(--state-select) var(--mix-selected))}}:root,[data-theme=dark]{--surface-selected-hover:var(--ground)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--surface-selected-hover:color-mix(in oklab, var(--ground), var(--state-select) var(--mix-selected-hover))}}:root,[data-theme=dark]{--border-subtle:oklch(26.8% .019 268);--border:oklch(31.8% .021 268);--border-strong:oklch(40.2% .023 268);--border-interactive:oklch(47.8% .024 267);--text-primary:oklch(94.5% .008 267);--text-secondary:var(--slate-300);--text-tertiary:var(--slate-400);--text-disabled:var(--slate-600);--text-inverse:var(--slate-975);--accent:oklch(78.8% .092 198);--accent-hover:oklch(83.8% .08 197);--accent-active:oklch(72.6% .098 199);--accent-subtle:oklch(29.6% .04 202);--accent-subtle-hover:oklch(34.2% .048 202);--accent-border:oklch(43.2% .06 201);--accent-text:oklch(84.4% .078 197);--accent-contrast:oklch(17.2% .026 208);--brand:oklch(75.2% .116 303);--brand-hover:oklch(81.2% .098 302);--brand-subtle:oklch(30% .052 303);--brand-text:oklch(82.2% .096 302);--brand-contrast:oklch(17.4% .026 307);--success:oklch(77.4% .096 159);--success-subtle:oklch(29.2% .04 160);--success-text:oklch(83% .086 158);--success-border:oklch(42.8% .058 160);--warning:oklch(80.8% .118 86);--warning-subtle:oklch(30% .042 78);--warning-subtle-hover:oklch(35.4% .054 78);--warning-text:oklch(85.8% .106 88);--warning-border:oklch(44.2% .064 78);--danger:oklch(72.2% .136 22);--danger-hover:oklch(78.8% .108 20);--danger-subtle:oklch(29.8% .058 24);--danger-subtle-hover:oklch(35.2% .07 24);--danger-text:oklch(79.6% .104 20);--danger-border:oklch(44.2% .086 25);--danger-contrast:oklch(17.8% .03 24);--info:oklch(73% .104 253);--info-subtle:oklch(29.8% .044 253);--info-text:oklch(81.2% .086 252);--info-border:oklch(44% .066 253);--focus-ring:var(--aqua-400);--focus-ring-offset:var(--canvas);--focus-halo:oklch(80.2% .116 198/.3);--control-knob:var(--slate-200);--control-knob-on:var(--slate-800);--switch-track-off:var(--surface-inset);--field-bg:oklch(21.2% .019 269);--field-bg-hover:oklch(23.6% .02 269);--field-border:oklch(33% .021 268);--field-border-hover:oklch(42.4% .023 268);--field-placeholder:var(--slate-500);--highlight-top:oklch(100% 0 0/.06);--ring-hairline:oklch(10% .016 269/.48);--shade:.11 .018 269;--shadow-xs:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 1px 2px 0 oklch(var(--shade) / .3);--shadow-sm:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 1px 3px 0 oklch(var(--shade) / .36), 0 1px 2px -1px oklch(var(--shade) / .32);--shadow-knob:0 0 0 1px var(--ring-hairline), 0 1px 3px 0 oklch(var(--shade) / .36), 0 1px 2px -1px oklch(var(--shade) / .32);--shadow-md:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 4px 8px -2px oklch(var(--shade) / .4), 0 2px 4px -2px oklch(var(--shade) / .34);--shadow-lg:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 12px 20px -4px oklch(var(--shade) / .46), 0 4px 8px -4px oklch(var(--shade) / .36);--shadow-tooltip:0 0 0 1px oklch(100% 0 0/.16), 0 0 14px -2px oklch(100% 0 0/.1), 0 10px 22px -6px oklch(var(--shade) / .72), 0 3px 8px -3px oklch(var(--shade) / .62);--shadow-xl:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 4px 40px oklch(var(--shade) / .3), 0 3px 20px oklch(var(--shade) / .32), 0 3px 12px oklch(var(--shade) / .32), 0 2px 8px oklch(var(--shade) / .3);--shadow-glow-accent:0 0 0 1px oklch(80.2% .116 198/.3), 0 6px 22px -6px oklch(80.2% .116 198/.32);--scrim:oklch(12% .018 269/.7);--veil:oklch(18.6% .018 269/.58);--event-iris-fill:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--event-iris-fill:color-mix(in oklab, var(--surface-raised), var(--iris-500) 26%)}}:root,[data-theme=dark]{--event-iris-fill-hover:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--event-iris-fill-hover:color-mix(in oklab, var(--surface-raised), var(--iris-500) 38%)}}:root,[data-theme=dark]{--event-iris-text:var(--iris-100);--event-iris-edge:var(--iris-400);--event-aqua-fill:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--event-aqua-fill:color-mix(in oklab, var(--surface-raised), var(--aqua-500) 26%)}}:root,[data-theme=dark]{--event-aqua-fill-hover:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--event-aqua-fill-hover:color-mix(in oklab, var(--surface-raised), var(--aqua-500) 38%)}}:root,[data-theme=dark]{--event-aqua-text:var(--aqua-100);--event-aqua-edge:var(--aqua-400);--event-mint-fill:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--event-mint-fill:color-mix(in oklab, var(--surface-raised), var(--mint-500) 26%)}}:root,[data-theme=dark]{--event-mint-fill-hover:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--event-mint-fill-hover:color-mix(in oklab, var(--surface-raised), var(--mint-500) 38%)}}:root,[data-theme=dark]{--event-mint-text:var(--mint-100);--event-mint-edge:var(--mint-400);--event-amber-fill:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--event-amber-fill:color-mix(in oklab, var(--surface-raised), var(--amber-500) 26%)}}:root,[data-theme=dark]{--event-amber-fill-hover:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--event-amber-fill-hover:color-mix(in oklab, var(--surface-raised), var(--amber-500) 38%)}}:root,[data-theme=dark]{--event-amber-text:var(--amber-100);--event-amber-edge:var(--amber-400);--event-rose-fill:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--event-rose-fill:color-mix(in oklab, var(--surface-raised), var(--rose-500) 26%)}}:root,[data-theme=dark]{--event-rose-fill-hover:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--event-rose-fill-hover:color-mix(in oklab, var(--surface-raised), var(--rose-500) 38%)}}:root,[data-theme=dark]{--event-rose-text:var(--rose-100);--event-rose-edge:var(--rose-400);--event-azure-fill:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--event-azure-fill:color-mix(in oklab, var(--surface-raised), var(--azure-500) 26%)}}:root,[data-theme=dark]{--event-azure-fill-hover:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--event-azure-fill-hover:color-mix(in oklab, var(--surface-raised), var(--azure-500) 38%)}}:root,[data-theme=dark]{--event-azure-text:var(--azure-100);--event-azure-edge:var(--azure-400);--event-slate-fill:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--event-slate-fill:color-mix(in oklab, var(--surface-raised), var(--slate-500) 26%)}}:root,[data-theme=dark]{--event-slate-fill-hover:var(--surface-raised)}@supports (color:color-mix(in lab,red,red)){:root,[data-theme=dark]{--event-slate-fill-hover:color-mix(in oklab, var(--surface-raised), var(--slate-500) 38%)}}:root,[data-theme=dark]{--event-slate-text:var(--slate-100);--event-slate-edge:var(--slate-400)}[data-theme=light],html:has(>body>script[src$="_ds_bundle.js"]){color-scheme:light;--canvas:var(--slate-50);--canvas-subtle:var(--slate-100);--surface-sunken:var(--slate-100);--surface:oklch(100% 0 0);--surface-raised:oklch(100% 0 0);--surface-overlay:oklch(100% 0 0);--surface-inset:var(--slate-50);--ground:var(--surface);--state-lift:var(--slate-950);--state-select:var(--aqua-600);--mix-hover:8%;--mix-active:14%;--mix-selected:30%;--mix-selected-hover:44%;--surface-hover:var(--ground)}@supports (color:color-mix(in lab,red,red)){[data-theme=light],html:has(>body>script[src$="_ds_bundle.js"]){--surface-hover:color-mix(in oklab, var(--ground), var(--state-lift) var(--mix-hover))}}[data-theme=light],html:has(>body>script[src$="_ds_bundle.js"]){--surface-active:var(--ground)}@supports (color:color-mix(in lab,red,red)){[data-theme=light],html:has(>body>script[src$="_ds_bundle.js"]){--surface-active:color-mix(in oklab, var(--ground), var(--state-lift) var(--mix-active))}}[data-theme=light],html:has(>body>script[src$="_ds_bundle.js"]){--surface-selected:var(--ground)}@supports (color:color-mix(in lab,red,red)){[data-theme=light],html:has(>body>script[src$="_ds_bundle.js"]){--surface-selected:color-mix(in oklab, var(--ground), var(--state-select) var(--mix-selected))}}[data-theme=light],html:has(>body>script[src$="_ds_bundle.js"]){--surface-selected-hover:var(--ground)}@supports (color:color-mix(in lab,red,red)){[data-theme=light],html:has(>body>script[src$="_ds_bundle.js"]){--surface-selected-hover:color-mix(in oklab, var(--ground), var(--state-select) var(--mix-selected-hover))}}[data-theme=light],html:has(>body>script[src$="_ds_bundle.js"]){--border-subtle:var(--slate-100);--border:var(--slate-200);--border-strong:var(--slate-300);--border-interactive:var(--slate-400);--text-primary:var(--slate-950);--text-secondary:var(--slate-600);--text-tertiary:var(--slate-500);--text-disabled:var(--slate-400);--text-inverse:var(--slate-25);--accent:var(--aqua-700);--accent-hover:var(--aqua-800);--accent-active:var(--aqua-900);--accent-subtle:var(--aqua-50);--accent-subtle-hover:oklch(92.6% .06 196);--accent-border:var(--aqua-200);--accent-text:var(--aqua-800);--accent-contrast:oklch(100% 0 0);--brand:var(--iris-600);--brand-hover:var(--iris-700);--brand-subtle:var(--iris-50);--brand-text:var(--iris-700);--brand-contrast:oklch(100% 0 0);--success:var(--mint-700);--success-subtle:var(--mint-50);--success-text:var(--mint-800);--success-border:var(--mint-200);--warning:var(--amber-700);--warning-subtle:var(--amber-50);--warning-subtle-hover:oklch(93.2% .062 92);--warning-text:var(--amber-800);--warning-border:var(--amber-200);--danger:var(--rose-600);--danger-hover:var(--rose-700);--danger-subtle:var(--rose-50);--danger-subtle-hover:oklch(92% .058 18);--danger-text:var(--rose-700);--danger-border:var(--rose-200);--danger-contrast:oklch(100% 0 0);--info:var(--azure-600);--info-subtle:var(--azure-50);--info-text:var(--azure-700);--info-border:var(--azure-200);--focus-ring:var(--aqua-600);--focus-ring-offset:oklch(100% 0 0);--focus-halo:oklch(55.4% .098 203/.24);--control-knob:var(--slate-600);--control-knob-on:oklch(100% 0 0);--switch-track-off:var(--surface-inset);--field-bg:oklch(100% 0 0);--field-bg-hover:var(--slate-25);--field-border:var(--slate-300);--field-border-hover:var(--slate-400);--field-placeholder:var(--slate-400);--highlight-top:oklch(100% 0 0/.9);--ring-hairline:oklch(30% .02 267/.1);--shade:.3 .02 267;--shadow-xs:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 1px 2px 0 oklch(var(--shade) / .06);--shadow-sm:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 1px 3px 0 oklch(var(--shade) / .09), 0 1px 2px -1px oklch(var(--shade) / .07);--shadow-knob:0 0 0 1px var(--ring-hairline), 0 1px 3px 0 oklch(var(--shade) / .09), 0 1px 2px -1px oklch(var(--shade) / .07);--shadow-md:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 4px 10px -2px oklch(var(--shade) / .1), 0 2px 5px -2px oklch(var(--shade) / .07);--shadow-lg:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 14px 26px -6px oklch(var(--shade) / .13), 0 5px 10px -5px oklch(var(--shade) / .08);--shadow-tooltip:0 0 0 1px oklch(var(--shade) / .16), 0 10px 22px -6px oklch(var(--shade) / .2), 0 3px 8px -3px oklch(var(--shade) / .14);--shadow-xl:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 26px 46px -10px oklch(var(--shade) / .16), 0 10px 18px -10px oklch(var(--shade) / .1);--shadow-glow-accent:0 0 0 1px oklch(55.4% .098 203/.24), 0 8px 24px -8px oklch(55.4% .098 203/.26);--scrim:oklch(24% .018 267/.4);--veil:oklch(98.5% .004 267/.68);--event-iris-fill:var(--iris-100);--event-iris-fill-hover:var(--iris-200);--event-iris-text:var(--iris-900);--event-iris-edge:var(--iris-700);--event-aqua-fill:var(--aqua-100);--event-aqua-fill-hover:var(--aqua-200);--event-aqua-text:var(--aqua-900);--event-aqua-edge:var(--aqua-700);--event-mint-fill:var(--mint-100);--event-mint-fill-hover:var(--mint-200);--event-mint-text:var(--mint-900);--event-mint-edge:var(--mint-700);--event-amber-fill:var(--amber-100);--event-amber-fill-hover:var(--amber-200);--event-amber-text:var(--amber-900);--event-amber-edge:var(--amber-700);--event-rose-fill:var(--rose-100);--event-rose-fill-hover:var(--rose-200);--event-rose-text:var(--rose-900);--event-rose-edge:var(--rose-700);--event-azure-fill:var(--azure-100);--event-azure-fill-hover:var(--azure-200);--event-azure-text:var(--azure-900);--event-azure-edge:var(--azure-700);--event-slate-fill:var(--slate-100);--event-slate-fill-hover:var(--slate-200);--event-slate-text:var(--slate-900);--event-slate-edge:var(--slate-700)}@media(prefers-color-scheme:light){:root:not([data-theme=dark]):not([data-theme=light]){color-scheme:light;--canvas:var(--slate-50);--canvas-subtle:var(--slate-100);--surface-sunken:var(--slate-100);--surface:oklch(100% 0 0);--surface-raised:oklch(100% 0 0);--surface-overlay:oklch(100% 0 0);--surface-inset:var(--slate-50);--ground:var(--surface);--state-lift:var(--slate-950);--state-select:var(--aqua-600);--mix-hover:8%;--mix-active:14%;--mix-selected:30%;--mix-selected-hover:44%;--surface-hover:var(--ground)}@supports (color:color-mix(in lab,red,red)){:root:not([data-theme=dark]):not([data-theme=light]){--surface-hover:color-mix(in oklab, var(--ground), var(--state-lift) var(--mix-hover))}}:root:not([data-theme=dark]):not([data-theme=light]){--surface-active:var(--ground)}@supports (color:color-mix(in lab,red,red)){:root:not([data-theme=dark]):not([data-theme=light]){--surface-active:color-mix(in oklab, var(--ground), var(--state-lift) var(--mix-active))}}:root:not([data-theme=dark]):not([data-theme=light]){--surface-selected:var(--ground)}@supports (color:color-mix(in lab,red,red)){:root:not([data-theme=dark]):not([data-theme=light]){--surface-selected:color-mix(in oklab, var(--ground), var(--state-select) var(--mix-selected))}}:root:not([data-theme=dark]):not([data-theme=light]){--surface-selected-hover:var(--ground)}@supports (color:color-mix(in lab,red,red)){:root:not([data-theme=dark]):not([data-theme=light]){--surface-selected-hover:color-mix(in oklab, var(--ground), var(--state-select) var(--mix-selected-hover))}}:root:not([data-theme=dark]):not([data-theme=light]){--border-subtle:var(--slate-100);--border:var(--slate-200);--border-strong:var(--slate-300);--border-interactive:var(--slate-400);--text-primary:var(--slate-950);--text-secondary:var(--slate-600);--text-tertiary:var(--slate-500);--text-disabled:var(--slate-400);--text-inverse:var(--slate-25);--accent:var(--aqua-700);--accent-hover:var(--aqua-800);--accent-active:var(--aqua-900);--accent-subtle:var(--aqua-50);--accent-subtle-hover:oklch(92.6% .06 196);--accent-border:var(--aqua-200);--accent-text:var(--aqua-800);--accent-contrast:oklch(100% 0 0);--brand:var(--iris-600);--brand-hover:var(--iris-700);--brand-subtle:var(--iris-50);--brand-text:var(--iris-700);--brand-contrast:oklch(100% 0 0);--success:var(--mint-700);--success-subtle:var(--mint-50);--success-text:var(--mint-800);--success-border:var(--mint-200);--warning:var(--amber-700);--warning-subtle:var(--amber-50);--warning-subtle-hover:oklch(93.2% .062 92);--warning-text:var(--amber-800);--warning-border:var(--amber-200);--danger:var(--rose-600);--danger-hover:var(--rose-700);--danger-subtle:var(--rose-50);--danger-subtle-hover:oklch(92% .058 18);--danger-text:var(--rose-700);--danger-border:var(--rose-200);--danger-contrast:oklch(100% 0 0);--info:var(--azure-600);--info-subtle:var(--azure-50);--info-text:var(--azure-700);--info-border:var(--azure-200);--focus-ring:var(--aqua-600);--focus-ring-offset:oklch(100% 0 0);--focus-halo:oklch(55.4% .098 203/.24);--control-knob:var(--slate-600);--control-knob-on:oklch(100% 0 0);--switch-track-off:var(--surface-inset);--field-bg:oklch(100% 0 0);--field-bg-hover:var(--slate-25);--field-border:var(--slate-300);--field-border-hover:var(--slate-400);--field-placeholder:var(--slate-550);--highlight-top:oklch(100% 0 0/.9);--ring-hairline:oklch(30% .02 267/.1);--shade:.3 .02 267;--shadow-xs:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 1px 2px 0 oklch(var(--shade) / .06);--shadow-sm:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 1px 3px 0 oklch(var(--shade) / .09), 0 1px 2px -1px oklch(var(--shade) / .07);--shadow-knob:0 0 0 1px var(--ring-hairline), 0 1px 3px 0 oklch(var(--shade) / .09), 0 1px 2px -1px oklch(var(--shade) / .07);--shadow-md:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 4px 10px -2px oklch(var(--shade) / .1), 0 2px 5px -2px oklch(var(--shade) / .07);--shadow-lg:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 14px 26px -6px oklch(var(--shade) / .13), 0 5px 10px -5px oklch(var(--shade) / .08);--shadow-tooltip:0 0 0 1px oklch(var(--shade) / .16), 0 10px 22px -6px oklch(var(--shade) / .2), 0 3px 8px -3px oklch(var(--shade) / .14);--shadow-xl:inset 0 1px 0 0 var(--highlight-top), 0 0 0 1px var(--ring-hairline), 0 26px 46px -10px oklch(var(--shade) / .16), 0 10px 18px -10px oklch(var(--shade) / .1);--shadow-glow-accent:0 0 0 1px oklch(55.4% .098 203/.24), 0 8px 24px -8px oklch(55.4% .098 203/.26);--scrim:oklch(24% .018 267/.4);--veil:oklch(98.5% .004 267/.68);--event-iris-fill:var(--iris-100);--event-iris-fill-hover:var(--iris-200);--event-iris-text:var(--iris-900);--event-iris-edge:var(--iris-700);--event-aqua-fill:var(--aqua-100);--event-aqua-fill-hover:var(--aqua-200);--event-aqua-text:var(--aqua-900);--event-aqua-edge:var(--aqua-700);--event-mint-fill:var(--mint-100);--event-mint-fill-hover:var(--mint-200);--event-mint-text:var(--mint-900);--event-mint-edge:var(--mint-700);--event-amber-fill:var(--amber-100);--event-amber-fill-hover:var(--amber-200);--event-amber-text:var(--amber-900);--event-amber-edge:var(--amber-700);--event-rose-fill:var(--rose-100);--event-rose-fill-hover:var(--rose-200);--event-rose-text:var(--rose-900);--event-rose-edge:var(--rose-700);--event-azure-fill:var(--azure-100);--event-azure-fill-hover:var(--azure-200);--event-azure-text:var(--azure-900);--event-azure-edge:var(--azure-700);--event-slate-fill:var(--slate-100);--event-slate-fill-hover:var(--slate-200);--event-slate-text:var(--slate-900);--event-slate-edge:var(--slate-700)}}.dx-ground-overlay,.dx-ground-raised,.dx-ground-sunken,.dx-ground-canvas{--surface-hover:var(--ground)}@supports (color:color-mix(in lab,red,red)){.dx-ground-overlay,.dx-ground-raised,.dx-ground-sunken,.dx-ground-canvas{--surface-hover:color-mix(in oklab, var(--ground), var(--state-lift) var(--mix-hover))}}.dx-ground-overlay,.dx-ground-raised,.dx-ground-sunken,.dx-ground-canvas{--surface-active:var(--ground)}@supports (color:color-mix(in lab,red,red)){.dx-ground-overlay,.dx-ground-raised,.dx-ground-sunken,.dx-ground-canvas{--surface-active:color-mix(in oklab, var(--ground), var(--state-lift) var(--mix-active))}}.dx-ground-overlay,.dx-ground-raised,.dx-ground-sunken,.dx-ground-canvas{--surface-selected:var(--ground)}@supports (color:color-mix(in lab,red,red)){.dx-ground-overlay,.dx-ground-raised,.dx-ground-sunken,.dx-ground-canvas{--surface-selected:color-mix(in oklab, var(--ground), var(--state-select) var(--mix-selected))}}.dx-ground-overlay,.dx-ground-raised,.dx-ground-sunken,.dx-ground-canvas{--surface-selected-hover:var(--ground)}@supports (color:color-mix(in lab,red,red)){.dx-ground-overlay,.dx-ground-raised,.dx-ground-sunken,.dx-ground-canvas{--surface-selected-hover:color-mix(in oklab, var(--ground), var(--state-select) var(--mix-selected-hover))}}.dx-ground-overlay{--ground:var(--surface-overlay)}.dx-ground-raised{--ground:var(--surface-raised)}.dx-ground-sunken{--ground:var(--surface-sunken)}.dx-ground-canvas{--ground:var(--canvas)}:root{--ui-scale:1}:root[data-ui-scale=sm]{--ui-scale:.9}:root[data-ui-scale=md]{--ui-scale:1}:root[data-ui-scale=lg]{--ui-scale:1.1}:root{--tap-floor:24px;--tap-target:auto;--control-xs:max(var(--tap-floor), calc(1.75rem * var(--ui-scale)));--control-sm:max(var(--tap-floor), calc(2.25rem * var(--ui-scale)));--control-md:max(var(--tap-floor), calc(2.75rem * var(--ui-scale)));--control-lg:max(var(--tap-floor), calc(3.25rem * var(--ui-scale)));--control-xl:max(var(--tap-floor), calc(3.75rem * var(--ui-scale)))}@media(pointer:coarse){:root{--tap-floor:44px;--tap-target:44px}}:root{--icon-xs:calc(.875rem * var(--ui-scale));--icon-sm:calc(1rem * var(--ui-scale));--icon-md:calc(1.25rem * var(--ui-scale));--icon-lg:calc(1.5rem * var(--ui-scale));--icon-xl:calc(2rem * var(--ui-scale));--icon-stroke-xs:2.25;--icon-stroke-sm:2.1;--icon-stroke-md:2;--icon-stroke-lg:1.9;--icon-stroke-xl:1.75;--motion-scale:1;--motion-travel:1;--tx-colors:color, background-color, border-color, outline-color, text-decoration-color, fill, stroke;--dur-instant:calc(70ms * var(--motion-scale));--dur-fast:calc(.11s * var(--motion-scale));--dur-base:calc(.16s * var(--motion-scale));--dur-slow:calc(.24s * var(--motion-scale));--dur-slower:calc(.32s * var(--motion-scale));--dur-slowest:calc(.45s * var(--motion-scale));--dur-exit:calc(.105s * var(--motion-scale));--dur-exit-slow:calc(.16s * var(--motion-scale))}@media(prefers-reduced-motion:reduce){:root{--motion-scale:.5;--motion-travel:0}}:root[data-motion=reduced]{--motion-scale:.5;--motion-travel:0}:root[data-motion=full]{--motion-scale:1;--motion-travel:1}:root[data-motion-suspend]{--motion-scale:0;--motion-travel:0}@keyframes dx-fade-in{0%{opacity:0}to{opacity:1}}@keyframes dx-rise-in{0%{opacity:0;transform:translateY(calc(6px * var(--motion-travel)))}to{opacity:1;transform:none}}@keyframes dx-scale-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}@keyframes dx-pulse{50%{opacity:.55}}@keyframes dx-sweep{0%{transform:translate(-100%)}50%,to{transform:translate(100%)}}@keyframes dx-spin{to{rotate:360deg}}@keyframes dx-shimmer{0%{background-position:180% 0}to{background-position:-80% 0}}@keyframes dx-progress-sweep{0%{transform:translate(-100%)}to{transform:translate(300%)}}@keyframes dx-ping{0%{opacity:.7;transform:scale(1)}75%,to{opacity:0;transform:scale(2.4)}}@keyframes dx-ripple{0%{opacity:.22;transform:scale(.28)}40%{opacity:.16}to{opacity:0;transform:scale(1)}}@keyframes dx-spinner-dash{0%{stroke-dasharray:1 150;stroke-dashoffset:0}50%{stroke-dasharray:90 150;stroke-dashoffset:-35px}to{stroke-dasharray:90 150;stroke-dashoffset:-124px}}:root[data-contrast=aa]{--field-placeholder:var(--slate-450);--text-tertiary:var(--slate-300)}:root[data-theme=light][data-contrast=aa]{--text-tertiary:var(--slate-600);--field-placeholder:var(--slate-550);--brand:var(--iris-650)}@media(prefers-color-scheme:light){:root:not([data-theme=dark])[data-contrast=aa]{--text-tertiary:var(--slate-600);--field-placeholder:var(--slate-550);--brand:var(--iris-650)}}:root{--code-font-size:var(--text-xs);--code-line-height:1.7;--code-tab-size:2;--code-pad-x:var(--space-3);--code-pad-y:calc(var(--space-1) * 2.5);--code-gutter-gap:var(--space-3)}.dx-code-metrics{font-family:var(--font-mono);font-size:var(--code-font-size);line-height:var(--code-line-height);letter-spacing:0;word-spacing:0;font-weight:var(--weight-normal);font-variant-ligatures:none;font-feature-settings:"liga" 0,"calt" 0;font-kerning:none;text-indent:0;text-transform:none;tab-size:var(--code-tab-size);-moz-tab-size:var(--code-tab-size);font-style:normal}.dx-code-pad{padding:var(--code-pad-y) var(--code-pad-x);border:0;margin:0}.dx-code-layers{--code-gutter-w:0px}.dx-code-layers[data-gutter]{--code-gutter-w:calc(var(--code-digits) * 1ch + var(--code-pad-x) + var(--code-gutter-gap))}.dx-code-gutter{width:var(--code-gutter-w);padding:var(--code-pad-y) var(--code-gutter-gap) var(--code-pad-y) var(--code-pad-x);border:0;margin:0}.dx-code-nowrap{white-space:pre;overflow-wrap:normal;word-break:normal}.dx-code-wrap{white-space:pre-wrap;overflow-wrap:break-word;word-break:normal}:root,[data-theme=dark]{--syntax-text:var(--text-primary);--syntax-comment:oklch(67.2% .024 267);--syntax-punctuation:oklch(70% .02 267);--syntax-operator:oklch(82.2% .03 267);--syntax-string:oklch(81.2% .084 160);--syntax-escape:oklch(86.4% .104 88);--syntax-number:oklch(84.6% .082 70);--syntax-boolean:oklch(80% .086 303);--syntax-null:oklch(76.6% .074 303);--syntax-regex:oklch(80.8% .082 22);--syntax-keyword:oklch(80.6% .108 303);--syntax-property:oklch(83.6% .076 197);--syntax-variable:oklch(90.6% .018 267);--syntax-function:oklch(82.2% .084 253);--syntax-type:oklch(85.6% .064 190);--syntax-constant:oklch(82.8% .088 60);--syntax-tag:oklch(80.6% .088 20);--syntax-attribute:oklch(85.6% .084 92);--syntax-selector:oklch(82.8% .082 150);--syntax-atrule:oklch(80.8% .1 303);--syntax-heading:oklch(86.8% .084 197);--syntax-emphasis:var(--text-secondary);--syntax-strong:var(--text-primary);--syntax-strike:oklch(70% .02 267);--syntax-link:oklch(82.8% .078 253);--syntax-url:oklch(80.6% .058 200);--syntax-marker:oklch(76% .058 303);--syntax-quote:var(--text-secondary);--syntax-invalid:var(--danger-text);--syntax-invalid-bg:var(--danger-subtle)}[data-theme=light],html:has(>body>script[src$="_ds_bundle.js"]){--syntax-text:var(--text-primary);--syntax-comment:oklch(49.2% .023 268);--syntax-punctuation:oklch(49.2% .023 268);--syntax-operator:oklch(40.2% .023 268);--syntax-string:oklch(47% .092 162);--syntax-escape:oklch(48% .104 62);--syntax-number:oklch(47.8% .112 58);--syntax-boolean:oklch(46.2% .14 305);--syntax-null:oklch(47.8% .116 305);--syntax-regex:oklch(47.8% .152 24);--syntax-keyword:oklch(44.6% .158 305);--syntax-property:oklch(45.2% .09 203);--syntax-variable:oklch(34.8% .023 268);--syntax-function:oklch(45.4% .128 256);--syntax-type:oklch(43.6% .08 190);--syntax-constant:oklch(47% .108 54);--syntax-tag:oklch(46.4% .148 26);--syntax-attribute:oklch(47.2% .098 76);--syntax-selector:oklch(45.2% .09 150);--syntax-atrule:oklch(44.6% .15 305);--syntax-heading:oklch(42.4% .088 200);--syntax-emphasis:oklch(40.2% .023 268);--syntax-strong:var(--text-primary);--syntax-strike:oklch(49.2% .023 268);--syntax-link:oklch(45.4% .128 256);--syntax-url:oklch(45.2% .08 200);--syntax-marker:oklch(47.8% .106 305);--syntax-quote:oklch(40.2% .023 268);--syntax-invalid:var(--danger-text);--syntax-invalid-bg:var(--danger-subtle)}@media(prefers-color-scheme:light){:root:not([data-theme=dark]):not([data-theme=light]){--syntax-text:var(--text-primary);--syntax-comment:oklch(49.2% .023 268);--syntax-punctuation:oklch(49.2% .023 268);--syntax-operator:oklch(40.2% .023 268);--syntax-string:oklch(47% .092 162);--syntax-escape:oklch(48% .104 62);--syntax-number:oklch(47.8% .112 58);--syntax-boolean:oklch(46.2% .14 305);--syntax-null:oklch(47.8% .116 305);--syntax-regex:oklch(47.8% .152 24);--syntax-keyword:oklch(44.6% .158 305);--syntax-property:oklch(45.2% .09 203);--syntax-variable:oklch(34.8% .023 268);--syntax-function:oklch(45.4% .128 256);--syntax-type:oklch(43.6% .08 190);--syntax-constant:oklch(47% .108 54);--syntax-tag:oklch(46.4% .148 26);--syntax-attribute:oklch(47.2% .098 76);--syntax-selector:oklch(45.2% .09 150);--syntax-atrule:oklch(44.6% .15 305);--syntax-heading:oklch(42.4% .088 200);--syntax-emphasis:oklch(40.2% .023 268);--syntax-strong:var(--text-primary);--syntax-strike:oklch(49.2% .023 268);--syntax-link:oklch(45.4% .128 256);--syntax-url:oklch(45.2% .08 200);--syntax-marker:oklch(47.8% .106 305);--syntax-quote:oklch(40.2% .023 268);--syntax-invalid:var(--danger-text);--syntax-invalid-bg:var(--danger-subtle)}}:is(.dx-code-pre,.dx-markdown-surface) [data-t=text]{color:var(--syntax-text)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=comment]{color:var(--syntax-comment);font-style:italic}:is(.dx-code-pre,.dx-markdown-surface) [data-t=punctuation]{color:var(--syntax-punctuation)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=operator]{color:var(--syntax-operator)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=string]{color:var(--syntax-string)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=escape]{color:var(--syntax-escape)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=number]{color:var(--syntax-number)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=boolean]{color:var(--syntax-boolean)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=null]{color:var(--syntax-null)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=regex]{color:var(--syntax-regex)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=keyword]{color:var(--syntax-keyword)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=property]{color:var(--syntax-property)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=variable]{color:var(--syntax-variable)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=function]{color:var(--syntax-function)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=type]{color:var(--syntax-type)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=constant]{color:var(--syntax-constant)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=tag]{color:var(--syntax-tag)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=attribute]{color:var(--syntax-attribute)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=selector]{color:var(--syntax-selector)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=atrule]{color:var(--syntax-atrule)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=heading]{color:var(--syntax-heading);font-weight:var(--weight-semibold)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=emphasis]{color:var(--syntax-emphasis);font-style:italic}:is(.dx-code-pre,.dx-markdown-surface) [data-t=strong]{color:var(--syntax-strong);font-weight:var(--weight-bold)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=strike]{color:var(--syntax-strike);text-decoration:line-through}:is(.dx-code-pre,.dx-markdown-surface) [data-t=link]{color:var(--syntax-link);text-underline-offset:2px;text-decoration:underline}:is(.dx-code-pre,.dx-markdown-surface) [data-t=url]{color:var(--syntax-url)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=marker]{color:var(--syntax-marker)}:is(.dx-code-pre,.dx-markdown-surface) [data-t=quote]{color:var(--syntax-quote);font-style:italic}:is(.dx-code-pre,.dx-markdown-surface) [data-t=invalid]{color:var(--syntax-invalid);background-color:var(--syntax-invalid-bg);border-radius:var(--radius-xs)}.dx-md{color:var(--text-secondary);font-size:var(--text-sm);line-height:var(--leading-relaxed);min-width:0}.dx-md>:first-child{margin-top:0}.dx-md>:last-child{margin-bottom:0}.dx-md h1,.dx-md h2,.dx-md h3,.dx-md h4,.dx-md h5,.dx-md h6{color:var(--text-primary);font-family:var(--font-display);margin:var(--space-5) 0 var(--space-2);text-wrap:balance}.dx-md h1{font-size:var(--text-xl)}.dx-md h2{font-size:var(--text-lg)}.dx-md h3{font-size:var(--text-md)}.dx-md h4,.dx-md h5,.dx-md h6{font-size:var(--text-base)}.dx-md p{margin:var(--space-2) 0;text-wrap:pretty}.dx-md ul,.dx-md ol{margin:var(--space-2) 0;gap:var(--space-1);flex-direction:column;padding-inline-start:var(--space-5);display:flex}.dx-md ul{list-style:outside}.dx-md ol{list-style:decimal}.dx-md li::marker{color:var(--text-tertiary)}.dx-md li:has(>input[type=checkbox]){margin-inline-start:calc(var(--space-5) * -1);list-style:none}.dx-md li>input[type=checkbox]{accent-color:var(--accent);margin-inline-end:var(--space-2)}.dx-md blockquote{margin:var(--space-3) 0;border-inline-start:2px solid var(--accent-border);color:var(--text-secondary);padding-inline-start:var(--space-3);font-style:italic}.dx-md hr{margin:var(--space-4) 0;border:0;border-top:1px solid var(--border-subtle)}.dx-md a{color:var(--accent-text);text-decoration:underline;-webkit-text-decoration-color:var(--accent-border);text-decoration-color:var(--accent-border);text-underline-offset:2px}.dx-md a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.dx-md :not(pre)>code{font-family:var(--font-mono);color:var(--text-primary);background-color:var(--surface-inset);border:1px solid var(--border-subtle);border-radius:var(--radius-xs);padding:.0625rem var(--space-1);font-size:.88em}.dx-md img{border-radius:var(--radius-md);max-width:100%;height:auto}.dx-md .dx-md-table,.dx-md table{border-collapse:collapse;max-width:100%;font-size:var(--text-xs);margin:var(--space-3) 0;display:block;overflow-x:auto}.dx-md th,.dx-md td{border-bottom:1px solid var(--border-subtle);padding:calc(var(--space-1) * 1.5) var(--space-2);text-align:start;white-space:nowrap}.dx-md th{color:var(--text-primary);font-weight:var(--weight-semibold)}.dx-md sup a{text-decoration:none}.dx-markdown-surface{white-space:pre-wrap;overflow-wrap:anywhere;tab-size:2;color:var(--text-primary)}.dx-markdown-surface [data-md=paragraph],.dx-markdown-surface [data-md=heading],.dx-markdown-surface [data-md=quote],.dx-markdown-surface [data-md=list],.dx-markdown-surface [data-md=listItem],.dx-markdown-surface [data-md=code],.dx-markdown-surface [data-md=frontmatter],.dx-markdown-surface [data-md=rule],.dx-markdown-surface [data-md=footnoteDef],.dx-markdown-surface [data-md=linkDef]{margin:0;padding:0;display:inline}.dx-markdown-surface h1,.dx-markdown-surface h2,.dx-markdown-surface h3,.dx-markdown-surface h4,.dx-markdown-surface h5,.dx-markdown-surface h6{color:var(--text-primary);font-weight:650;line-height:inherit}.dx-markdown-surface h1{font-size:1.6em}.dx-markdown-surface h2{font-size:1.35em}.dx-markdown-surface h3{font-size:1.18em}.dx-markdown-surface h4{font-size:1.06em}.dx-markdown-surface [data-md=quote]{color:var(--text-secondary)}.dx-markdown-surface [data-md=quote] [data-md=inline]{-webkit-box-decoration-break:clone;box-decoration-break:clone;border-left:2px solid var(--border-strong);padding-left:.75em}.dx-markdown-surface [data-md=list] [data-md=list]>[data-md=listItem]{padding-left:1.5em}.dx-markdown-surface [data-md=list] [data-md=list] [data-md=list]>[data-md=listItem]{padding-left:3em}.dx-markdown-surface [data-md=list] [data-md=list] [data-md=list] [data-md=list]>[data-md=listItem]{padding-left:4.5em}.dx-markdown-surface [data-md=list] [data-md=list] [data-md=list] [data-md=list] [data-md=list]>[data-md=listItem]{padding-left:6em}.dx-markdown-surface [data-md=listItem]:before{content:"•";color:var(--text-tertiary);margin-right:.45em}.dx-markdown-surface [data-md=list] [data-md=list]>[data-md=listItem]:before{content:"◦"}.dx-markdown-surface [data-md=list] [data-md=list] [data-md=list]>[data-md=listItem]:before{content:"▪"}.dx-markdown-surface ol>[data-md=listItem]:before{content:attr(data-md-marker);font-variant-numeric:tabular-nums;margin-right:.4em}.dx-markdown-surface [data-md=listItem][data-md-checked=false]:before{content:"☐";color:var(--text-tertiary)}.dx-markdown-surface [data-md=listItem][data-md-checked=true]:before{content:"☑";color:var(--accent)}.dx-markdown-surface [data-md=listItem][data-md-checked=true]{color:var(--text-tertiary);text-decoration:line-through}.dx-markdown-surface [data-md=listItem][data-md-checked=true]:before{text-decoration:none;display:inline-block}.dx-markdown-surface code,.dx-markdown-surface [data-md=code]{font-family:var(--font-mono);font-size:.925em}.dx-markdown-surface [data-md=codeSpan]{background:var(--surface-inset);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:.25rem;padding:.05em .25em}.dx-markdown-surface [data-md=codeBody]{background:var(--surface-inset);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:.25rem;padding:.31em .5em;font-size:1em}.dx-markdown-surface [data-md-href]{color:var(--accent);text-underline-offset:.15em;text-decoration:underline}.dx-markdown-surface [data-md=code] [data-t]{font-family:var(--font-mono)}.dx-markdown-surface [data-md-decoration]{vertical-align:middle;-webkit-user-select:none;user-select:none;border-radius:.25rem;max-width:100%;max-height:20rem;display:inline-block}.dx-markdown-surface [data-md=footnoteRef]{color:var(--accent);vertical-align:super;font-size:.75em}.dx-markdown-surface [data-md=rule]{color:#0000}.dx-markdown-surface [data-md=rule]:after{content:"";vertical-align:middle;border-top:1px solid var(--border-subtle);width:100%;display:inline-block}.dx-markdown-surface [data-md=table]{border-collapse:collapse;margin:.25em 0;display:inline-table}.dx-markdown-surface [data-md=tableCell]{border:1px solid var(--border-subtle);text-align:left;white-space:pre-wrap;padding:.15em .5em}.dx-markdown-surface th[data-md=tableCell]{font-weight:600}.dx-markdown-surface [data-md-align=center]{text-align:center}.dx-markdown-surface [data-md-align=right]{text-align:right}.dx-markdown-surface [data-md=tableGutter]{border:0;width:0;padding:0}.dx-markdown-surface [data-md=tableDelimiter]{font-size:0;line-height:0}.dx-markdown-surface [data-md-syntax]{opacity:0;vertical-align:baseline;width:0;height:0;line-height:0;display:inline-block;overflow:hidden}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
|
|
2
2
|
|
|
3
3
|
/* @font-face rules, concatenated by scripts/postbuild-css.mjs */
|
|
4
4
|
/* GENERATED by scripts/fetch-fonts.mjs — do not edit by hand.
|
package/dist/theme.css
CHANGED
|
@@ -12,6 +12,7 @@ declare const button: import("tailwind-variants").TVReturnType<{
|
|
|
12
12
|
"outline-danger": string[];
|
|
13
13
|
danger: string[];
|
|
14
14
|
"danger-subtle": string[];
|
|
15
|
+
warning: string[];
|
|
15
16
|
link: string[];
|
|
16
17
|
};
|
|
17
18
|
size: {
|
|
@@ -40,6 +41,7 @@ declare const button: import("tailwind-variants").TVReturnType<{
|
|
|
40
41
|
"outline-danger": string[];
|
|
41
42
|
danger: string[];
|
|
42
43
|
"danger-subtle": string[];
|
|
44
|
+
warning: string[];
|
|
43
45
|
link: string[];
|
|
44
46
|
};
|
|
45
47
|
size: {
|
|
@@ -68,6 +70,7 @@ declare const button: import("tailwind-variants").TVReturnType<{
|
|
|
68
70
|
"outline-danger": string[];
|
|
69
71
|
danger: string[];
|
|
70
72
|
"danger-subtle": string[];
|
|
73
|
+
warning: string[];
|
|
71
74
|
link: string[];
|
|
72
75
|
};
|
|
73
76
|
size: {
|
|
@@ -103,7 +106,27 @@ export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement>, Va
|
|
|
103
106
|
leadingIcon?: ReactNode;
|
|
104
107
|
/** Element rendered after the label. */
|
|
105
108
|
trailingIcon?: ReactNode;
|
|
109
|
+
/**
|
|
110
|
+
* Unavailable, AND WHY — the labelled twin of `IconButton.disabledReason`
|
|
111
|
+
* (SG-833 slice 7), added here because a labelled `Button` refuses in
|
|
112
|
+
* silence exactly as an icon-only one used to: `ConfirmAction.tsx` in
|
|
113
|
+
* gpt-manager's Demand Desk was disabling its trigger with a bare
|
|
114
|
+
* `disabled` boolean and a SEPARATE hand-rolled `Tooltip` wrapper to explain
|
|
115
|
+
* why, because `Button` itself had no way to carry the reason.
|
|
116
|
+
*
|
|
117
|
+
* Setting this REPLACES `disabled`/`aria-disabled` for the purpose of this
|
|
118
|
+
* render: the button becomes soft-disabled (`aria-disabled`, not the native
|
|
119
|
+
* attribute), so it stays focusable and hoverable and the reason stays
|
|
120
|
+
* reachable — a natively `disabled` control drops out of hit-testing and
|
|
121
|
+
* the tab order, which is exactly what makes a mute refusal unrepresentable
|
|
122
|
+
* disguised as a keyboard-accessible one. The reason is announced as the
|
|
123
|
+
* control's accessible description (`aria-describedby`, wired to a visually
|
|
124
|
+
* hidden span) and shown as a tooltip on hover and on focus — see
|
|
125
|
+
* `IconButton`'s own header for why Base UI's tooltip alone is not enough
|
|
126
|
+
* for the announcement.
|
|
127
|
+
*/
|
|
128
|
+
disabledReason?: string;
|
|
106
129
|
ref?: Ref<HTMLButtonElement>;
|
|
107
130
|
}
|
|
108
|
-
export declare function Button({ className, variant, size, iconOnly, fullWidth, render, loading, leadingIcon, trailingIcon, disabled, children, onPointerDown, ref, "aria-disabled": ariaDisabled, ...props }: ButtonProps): import("react").
|
|
131
|
+
export declare function Button({ className, variant, size, iconOnly, fullWidth, render, loading, leadingIcon, trailingIcon, disabled, children, onPointerDown, onClick, disabledReason, ref, "aria-disabled": ariaDisabled, ...props }: ButtonProps): import("react").JSX.Element;
|
|
109
132
|
export { button as buttonVariants };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode, Ref } from "react";
|
|
2
|
+
export interface DescriptionListItemProps {
|
|
3
|
+
/** The label. Kept short — it truncates rather than wrapping. */
|
|
4
|
+
term: ReactNode;
|
|
5
|
+
/** The value. */
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
/** Machine text (a raw key, a stored id) rather than prose written for a reader. */
|
|
8
|
+
mono?: boolean;
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
/** One term/description pair. Renders as a `<div>` — mount it inside a `DescriptionList` (or any `<dl>`) for real list semantics. */
|
|
12
|
+
export declare function DescriptionListItem({ term, children, mono, className }: DescriptionListItemProps): import("react").JSX.Element;
|
|
13
|
+
/** One entry of the data-driven form — see `DescriptionList`'s `entries` prop. */
|
|
14
|
+
export interface DescriptionListEntry {
|
|
15
|
+
key: string;
|
|
16
|
+
term: ReactNode;
|
|
17
|
+
/** Rendered as-is. Pass a formatted string for a raw value — this does not stringify for you. */
|
|
18
|
+
value: ReactNode;
|
|
19
|
+
mono?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface DescriptionListProps extends Omit<HTMLAttributes<HTMLDListElement>, "children"> {
|
|
22
|
+
/**
|
|
23
|
+
* Data-driven form — one `DescriptionListItem` per entry, in order. Use
|
|
24
|
+
* this for a bag of keys the caller does not know ahead of time (a
|
|
25
|
+
* diagnostic's context, an error payload) — the shape `FreeFormDetails`
|
|
26
|
+
* covered in the app. Omit `entries` and pass `children` instead to compose
|
|
27
|
+
* `DescriptionListItem`s directly, for a fixed, known set of fields.
|
|
28
|
+
*/
|
|
29
|
+
entries?: readonly DescriptionListEntry[];
|
|
30
|
+
children?: ReactNode;
|
|
31
|
+
ref?: Ref<HTMLDListElement>;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* The list itself — a `<dl>` wrapper, empty of layout beyond stacking its
|
|
35
|
+
* rows. `Card`'s own padding/`divide-y` and any other framing stay the
|
|
36
|
+
* caller's choice via `className`, the same way the app's own usage put
|
|
37
|
+
* `DefinitionRow`s inside a `Card` rendering as `<dl>` rather than folding
|
|
38
|
+
* that framing in here.
|
|
39
|
+
*/
|
|
40
|
+
export declare function DescriptionList({ entries, children, className, ref, ...props }: DescriptionListProps): import("react").JSX.Element;
|
|
@@ -1,15 +1,35 @@
|
|
|
1
1
|
import { Component, type ErrorInfo, type ReactNode } from "react";
|
|
2
|
-
interface
|
|
2
|
+
export interface ErrorBoundaryProps {
|
|
3
3
|
children: ReactNode;
|
|
4
4
|
/** Shown in the fallback so the failing region is identifiable at a glance. */
|
|
5
5
|
label?: string;
|
|
6
|
+
/**
|
|
7
|
+
* Changing this clears a previously-caught error (SG-833 slice 7).
|
|
8
|
+
*
|
|
9
|
+
* A class component's error state is sticky by design — once caught,
|
|
10
|
+
* `render()` keeps returning the fallback forever, even once whatever
|
|
11
|
+
* crashed it is no longer what is being shown. That is correct for a
|
|
12
|
+
* boundary wrapping a fixed region, and wrong for one wrapping a slot whose
|
|
13
|
+
* CONTENT changes identity underneath it — a list row that starts showing a
|
|
14
|
+
* different record after a filter or a re-fetch reorders things, for
|
|
15
|
+
* instance. Passing something that identifies the current content (a
|
|
16
|
+
* record id, a list key) un-catches the boundary the moment that identity
|
|
17
|
+
* changes, rather than leaving it permanently wearing a previous item's
|
|
18
|
+
* crash.
|
|
19
|
+
*
|
|
20
|
+
* Omit it for a boundary around a genuinely fixed region — the default
|
|
21
|
+
* behaviour (sticky until unmount) is unchanged when this is left out.
|
|
22
|
+
*/
|
|
23
|
+
resetKey?: unknown;
|
|
6
24
|
}
|
|
7
25
|
interface State {
|
|
8
26
|
error: Error | null;
|
|
27
|
+
resetKey?: unknown;
|
|
9
28
|
}
|
|
10
|
-
export declare class ErrorBoundary extends Component<
|
|
29
|
+
export declare class ErrorBoundary extends Component<ErrorBoundaryProps, State> {
|
|
11
30
|
state: State;
|
|
12
|
-
static getDerivedStateFromError(error: Error): State
|
|
31
|
+
static getDerivedStateFromError(error: Error): Partial<State>;
|
|
32
|
+
static getDerivedStateFromProps(props: ErrorBoundaryProps, state: State): Partial<State> | null;
|
|
13
33
|
componentDidCatch(error: Error, info: ErrorInfo): void;
|
|
14
34
|
render(): string | number | bigint | boolean | import("react").JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | null | undefined;
|
|
15
35
|
}
|
|
@@ -40,8 +40,27 @@ export interface SkeletonProps extends VariantProps<typeof skeleton> {
|
|
|
40
40
|
height?: string | number;
|
|
41
41
|
style?: CSSProperties;
|
|
42
42
|
ref?: Ref<HTMLSpanElement>;
|
|
43
|
+
/**
|
|
44
|
+
* Stack this many bars in a column instead of rendering one (SG-833
|
|
45
|
+
* slice 7) — for a loading LIST (a table's rows, a feed's cards), where the
|
|
46
|
+
* shape being previewed is "several of these", not one field.
|
|
47
|
+
*
|
|
48
|
+
* Extracted because every consumer needing this had written the same three
|
|
49
|
+
* lines by hand: `Array.from({ length: n }, (_, i) => <Skeleton key={i}
|
|
50
|
+
* .../>)` inside a `flex flex-col gap-3` wrapper carrying `aria-busy`/
|
|
51
|
+
* `aria-label="Loading"` — gpt-manager's Demand Desk had exactly this as its
|
|
52
|
+
* own `LoadingRows` component. `shape`/`sweep`/`className`/`width`/`height`
|
|
53
|
+
* apply to EACH bar; `repeat` only changes how many render and how they are
|
|
54
|
+
* laid out.
|
|
55
|
+
*
|
|
56
|
+
* 1 or omitted renders the plain single bar, unchanged from before this
|
|
57
|
+
* prop existed — including staying `aria-hidden` rather than gaining the
|
|
58
|
+
* wrapper's live-region treatment, so a lone field's skeleton doesn't start
|
|
59
|
+
* announcing itself.
|
|
60
|
+
*/
|
|
61
|
+
repeat?: number;
|
|
43
62
|
}
|
|
44
|
-
export declare function Skeleton({ shape, sweep, className, width, height, style, ref }: SkeletonProps): import("react").JSX.Element;
|
|
63
|
+
export declare function Skeleton({ shape, sweep, className, width, height, style, ref, repeat, }: SkeletonProps): import("react").JSX.Element;
|
|
45
64
|
export interface SkeletonTextProps {
|
|
46
65
|
/** How many lines to draw. */
|
|
47
66
|
lines?: number;
|
|
@@ -73,13 +73,16 @@ export interface DataTableProps<TData> {
|
|
|
73
73
|
* row's hover fill, so pass the hover with it (`bg-danger-subtle
|
|
74
74
|
* hover:bg-danger-subtle-hover`) if the row should still respond.
|
|
75
75
|
*
|
|
76
|
-
* THAT EXAMPLE USED TO NAME `warning`, WHICH
|
|
77
|
-
* exists for every semantic family; `-subtle-hover` exists for
|
|
78
|
-
* `danger
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
76
|
+
* THAT EXAMPLE USED TO NAME `warning`, WHICH HAD NO HOVER STEP AT THE TIME.
|
|
77
|
+
* `-subtle` exists for every semantic family; `-subtle-hover` exists for
|
|
78
|
+
* `accent`, `danger`, and (since SG-833 slice 7, which needed it for
|
|
79
|
+
* `Button`'s new `warning` variant) `warning` too. A consumer following the
|
|
80
|
+
* old wording got a hover class that compiled to nothing — no rule, no
|
|
81
|
+
* fill, no error anywhere, which is the same silent-nothing failure the
|
|
82
|
+
* theme bridge in `postbuild-css.mjs` exists to prevent one level up.
|
|
83
|
+
* Naming `warning` here would work today; pick whichever family actually
|
|
84
|
+
* fits your row, or supply the hover colour yourself. `token-parity.test.ts`
|
|
85
|
+
* now sweeps this docblock.
|
|
83
86
|
*
|
|
84
87
|
* `index` is the row's position in `data`, not on the current page — the same
|
|
85
88
|
* number `getRowId` receives, so the two never disagree about which row is
|
package/dist/types/index.d.ts
CHANGED
|
@@ -18,12 +18,13 @@ export { Badge, badgeVariants, type BadgeProps, type BadgeDismiss, } from "./com
|
|
|
18
18
|
export { Callout, calloutVariants, type CalloutProps } from "./components/Callout";
|
|
19
19
|
export { Spinner, type SpinnerProps } from "./components/Spinner";
|
|
20
20
|
export { Skeleton, SkeletonText, LoadingOverlay, type SkeletonProps, type SkeletonTextProps, type LoadingOverlayProps, } from "./components/Loading";
|
|
21
|
-
export { ErrorBoundary } from "./components/ErrorBoundary";
|
|
21
|
+
export { ErrorBoundary, type ErrorBoundaryProps } from "./components/ErrorBoundary";
|
|
22
22
|
export { Field, FieldSet, type FieldProps, type FieldSetProps } from "./components/Field";
|
|
23
23
|
export { Input, Textarea, type InputProps, type TextareaProps } from "./components/Input";
|
|
24
24
|
export { InlineEdit, type InlineEditProps, type InlineEditRefusal, type InlineEditOutcome, } from "./components/InlineEdit";
|
|
25
25
|
export { SecretField, type SecretFieldProps, type SecretValue } from "./components/SecretField";
|
|
26
26
|
export { SettingRow, SettingGroup, type SettingRowProps, type SettingGroupProps, type SettingRowControlRenderProps, } from "./components/SettingRow";
|
|
27
|
+
export { DescriptionList, DescriptionListItem, type DescriptionListProps, type DescriptionListItemProps, type DescriptionListEntry, } from "./components/DescriptionList";
|
|
27
28
|
export { ConnectionCard, type ConnectionCardProps, type ConnectionHealth, } from "./components/ConnectionCard";
|
|
28
29
|
export { Checkbox, Switch, Radio, RadioGroup, CheckboxField, SwitchField, RadioField, RadioCard, type CheckboxProps, type SwitchProps, type RadioProps, type RadioGroupProps, type CheckboxFieldProps, type SwitchFieldProps, type RadioFieldProps, type RadioCardProps, } from "./components/Choice";
|
|
29
30
|
export { Dialog, DialogClose, AlertDialog, type DialogProps, type AlertDialogProps, } from "./components/Dialog";
|
|
@@ -97,6 +98,7 @@ export { cn } from "./lib/cn";
|
|
|
97
98
|
export { formatBytes, formatTokens, formatCompactNumber } from "./lib/format";
|
|
98
99
|
export { formatDate, parseDate, formatDateTime, parseDateTime, type FormatDateTimeOptions, type ParseDateTimeOptions, formatCurrency, parseCurrency, formatPhone, parsePhone, formatNumber, parseNumber, type FormatNumberOptions, formatBoolean, parseBoolean, type FormatBooleanOptions, } from "./lib/values";
|
|
99
100
|
export { useFillHeight } from "./lib/use-fill-height";
|
|
101
|
+
export { useDebouncedValue } from "./lib/use-debounced-value";
|
|
100
102
|
export { useTheme, useUiScale, useContrast, useMotionPreference, type Theme, type UiScale, type ContrastPreference, type MotionPreference, } from "./lib/preferences";
|
|
101
103
|
export { usePersistedState, readStored, writeStored, clearStored, storageKey, type PersistedStateOptions, } from "./lib/persist";
|
|
102
104
|
export { CalendarMonth, type CalendarMonthProps } from "./components/calendar/CalendarMonth";
|
|
@@ -46,3 +46,24 @@ export declare function graphemeBefore(map: CaretMap, offset: number): Span | nu
|
|
|
46
46
|
export declare function graphemeAfter(map: CaretMap, offset: number): Span | null;
|
|
47
47
|
/** The first legal offset on the line holding `offset` — where Home goes. */
|
|
48
48
|
export declare function lineStartStop(map: CaretMap, offset: number): number;
|
|
49
|
+
/**
|
|
50
|
+
* The last legal offset on the line holding `offset` — where End goes.
|
|
51
|
+
*
|
|
52
|
+
* SG-799 — NOT SAFE TO LEAVE TO THE BROWSER, the way `input.ts` leaves
|
|
53
|
+
* vertical movement and word-wise movement to it. A block's own leading
|
|
54
|
+
* markup (`# `, `- `, `> `) renders as `display: inline-block; width: 0`
|
|
55
|
+
* (`styles/markdown.css`'s "markup is collapsed at all times" rule) so it can
|
|
56
|
+
* be reached at all without ever having visible geometry — but a zero-size
|
|
57
|
+
* `inline-block` is an ATOMIC box for Chromium's own line-navigation, and a
|
|
58
|
+
* real Chromium probe caught it landing End's selection INSIDE that leading
|
|
59
|
+
* box (`("# ", offset 2)`, the same on-screen point as where the caret
|
|
60
|
+
* already stood) instead of at the true end of the visible text — every time,
|
|
61
|
+
* on every block with a leading marker, regardless of heading level and
|
|
62
|
+
* regardless of whether the line was the document's last one. Home already
|
|
63
|
+
* had the model-side half of this fix (`lineStartStop`, above) sitting
|
|
64
|
+
* unused — nothing in `input.ts` ever called it, so Home had the identical
|
|
65
|
+
* exposure and simply hadn't been caught yet. Both are now computed here and
|
|
66
|
+
* written directly, the same way `moveCaret` already computes ArrowLeft/Right
|
|
67
|
+
* instead of trusting the browser.
|
|
68
|
+
*/
|
|
69
|
+
export declare function lineEndStop(map: CaretMap, offset: number): number;
|
|
@@ -130,6 +130,18 @@ export declare class MarkdownSurface {
|
|
|
130
130
|
* source characters makes the caret appear to stall.
|
|
131
131
|
*/
|
|
132
132
|
moveCaret(direction: 1 | -1, extend: boolean): boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Moves the caret to the start or end of its current line, in the model,
|
|
135
|
+
* and writes the result. Home and End both have to be computed here rather
|
|
136
|
+
* than left to the browser — SG-799 — because a block's leading markup
|
|
137
|
+
* renders as a zero-size `inline-block` (`styles/markdown.css`), which
|
|
138
|
+
* Chromium treats as an atomic box for its own native line navigation, and
|
|
139
|
+
* a real Chromium probe caught End landing the browser's OWN selection
|
|
140
|
+
* inside that leading box instead of at the true end of the line.
|
|
141
|
+
*
|
|
142
|
+
* Returns false when there is no selection to move, matching `moveCaret`.
|
|
143
|
+
*/
|
|
144
|
+
moveToLineEdge(edge: "start" | "end", extend: boolean): boolean;
|
|
133
145
|
/**
|
|
134
146
|
* Detects the third caret rule's failure: our own write left the browser's
|
|
135
147
|
* selection somewhere that is no longer a position in this document.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A value that lags the input by a fixed delay, settling once the input stops
|
|
3
|
+
* changing (SG-833 slice 7).
|
|
4
|
+
*
|
|
5
|
+
* WHY THIS SHAPE, RATHER THAN A DEBOUNCED CALLBACK. gpt-manager's Demand Desk
|
|
6
|
+
* had written `DebouncedSearchField` — a search box holding its own local
|
|
7
|
+
* text state, syncing it back to a controlled `value` after a timeout — as
|
|
8
|
+
* the shared shape behind both of its search boxes. That component still
|
|
9
|
+
* belongs in the app (it also owns the box's markup, its clear button, its
|
|
10
|
+
* re-sync-on-external-change effect), but the debounce INSIDE it is the
|
|
11
|
+
* general-purpose half: take a value that changes on every keystroke, return
|
|
12
|
+
* one that only changes after the keystrokes stop. This hook is that half,
|
|
13
|
+
* usable anywhere a rapidly-changing value needs to drive something
|
|
14
|
+
* expensive (a filter, a server round trip, a live validation) without
|
|
15
|
+
* firing on every change.
|
|
16
|
+
*
|
|
17
|
+
* `delayMs <= 0` updates synchronously on every render rather than arming a
|
|
18
|
+
* zero-length timer — a real `setTimeout(fn, 0)` still yields to the event
|
|
19
|
+
* loop once, which would mean the very first render shows the PREVIOUS value
|
|
20
|
+
* for one paint even when the caller asked for no delay at all.
|
|
21
|
+
*/
|
|
22
|
+
export declare function useDebouncedValue<T>(value: T, delayMs?: number): T;
|