@danxbot/ui 7.6.0 → 7.7.1

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/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-650:oklch(64.5% .124 78);--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-650:oklch(62.5% .11 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,[data-theme=dark]{--confidence-1:var(--rose-600);--confidence-2:var(--rose-300);--confidence-3:var(--amber-400);--confidence-4:var(--mint-300);--confidence-5:var(--mint-600);--confidence-none:var(--slate-500)}[data-theme=light],html:has(>body>script[src$="_ds_bundle.js"]){--confidence-1:var(--rose-800);--confidence-2:var(--rose-500);--confidence-3:var(--amber-650);--confidence-4:var(--mint-650);--confidence-5:var(--mint-800);--confidence-none:var(--slate-500)}@media(prefers-color-scheme:light){:root:not([data-theme=dark]):not([data-theme=light]){--confidence-1:var(--rose-800);--confidence-2:var(--rose-500);--confidence-3:var(--amber-650);--confidence-4:var(--mint-650);--confidence-5:var(--mint-800);--confidence-none:var(--slate-500)}}: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-650:oklch(64.5% .124 78);--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-650:oklch(62.5% .11 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,[data-theme=dark]{--confidence-1:var(--rose-600);--confidence-2:var(--rose-300);--confidence-3:var(--amber-400);--confidence-4:var(--mint-300);--confidence-5:var(--mint-600);--confidence-none:var(--slate-500)}[data-theme=light],html:has(>body>script[src$="_ds_bundle.js"]){--confidence-1:var(--rose-800);--confidence-2:var(--rose-500);--confidence-3:var(--amber-650);--confidence-4:var(--mint-650);--confidence-5:var(--mint-800);--confidence-none:var(--slate-500)}@media(prefers-color-scheme:light){:root:not([data-theme=dark]):not([data-theme=light]){--confidence-1:var(--rose-800);--confidence-2:var(--rose-500);--confidence-3:var(--amber-650);--confidence-4:var(--mint-650);--confidence-5:var(--mint-800);--confidence-none:var(--slate-500)}}: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;justify-content:center;align-items:center;max-width:100%;display:inline-flex;position:relative}.dx-markdown-surface [data-md-decoration] img{border-radius:inherit;max-width:100%;max-height:20rem;display:block}.dx-markdown-surface :where([data-md-decoration] svg){width:100%;height:100%;display:block}.dx-markdown-surface [data-md-image-state=uploading] img{opacity:.55}.dx-markdown-surface [data-md-image-overlay]{border-radius:inherit;flex-direction:column;justify-content:center;align-items:center;gap:.375rem;display:flex;position:absolute;inset:0}.dx-markdown-surface [data-md-image-state=uploading] [data-md-image-overlay]{background:var(--surface)}@supports (color:color-mix(in lab,red,red)){.dx-markdown-surface [data-md-image-state=uploading] [data-md-image-overlay]{background:color-mix(in oklab,var(--surface) 30%,transparent)}}.dx-markdown-surface [data-md-image-state=uploading] [data-md-image-overlay]{color:var(--accent)}.dx-markdown-surface [data-md-image-spinner]{background:var(--surface);width:1.75rem;height:1.75rem;box-shadow:var(--shadow-sm);animation:var(--animate-spin);border-radius:9999px;padding:.25rem}.dx-markdown-surface [data-md-image-state=failed]{min-width:calc(var(--control-sm) * 2 + 1.25rem);min-height:calc(var(--control-sm) + 2.5rem);outline:2px solid var(--danger-border);outline-offset:-2px}.dx-markdown-surface [data-md-image-state=failed] img{opacity:.35;filter:grayscale()}.dx-markdown-surface [data-md-image-state=failed] [data-md-image-overlay]{background:var(--danger-subtle)}@supports (color:color-mix(in lab,red,red)){.dx-markdown-surface [data-md-image-state=failed] [data-md-image-overlay]{background:color-mix(in oklab,var(--danger-subtle) 75%,transparent)}}.dx-markdown-surface [data-md-image-state=failed] [data-md-image-overlay]{color:var(--danger)}.dx-markdown-surface [data-md-image-alert]{width:1.5rem;height:1.5rem}.dx-markdown-surface [data-md-image-actions]{gap:.375rem;display:flex}.dx-markdown-surface [data-md-image-action]{width:var(--control-sm);height:var(--control-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-primary);box-shadow:var(--shadow-sm);cursor:pointer;border-radius:.375rem;justify-content:center;align-items:center;padding:.5rem;display:inline-flex}.dx-markdown-surface [data-md-image-action]:hover{background:var(--surface-hover)}.dx-markdown-surface [data-md-image-action=remove]:hover{color:var(--danger-text)}.dx-markdown-surface [data-md-image-action]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.dx-markdown-surface [data-md-image-state=local]{outline:2px dashed var(--warning-border);outline-offset:2px}.dx-markdown-surface [data-md-image-badge]{border:1px solid var(--warning-border);background:var(--warning-subtle);width:1.75rem;height:1.75rem;color:var(--warning-text);box-shadow:var(--shadow-sm);border-radius:9999px;padding:.3rem;position:absolute;top:.375rem;right:.375rem}.dx-markdown-surface [data-md-image-broken]{border:1px dashed var(--border-strong);background:var(--surface-inset);width:4.5rem;height:3.25rem;color:var(--text-tertiary);border-radius:.25rem;padding:.75rem 1.25rem;display:inline-flex}.dx-markdown-surface[data-md-drop-target]{outline:2px dashed var(--accent);outline-offset:-4px;background:var(--accent-subtle)}@supports (color:color-mix(in lab,red,red)){.dx-markdown-surface[data-md-drop-target]{background:color-mix(in oklab,var(--accent-subtle) 60%,transparent)}}.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.
@@ -1,4 +1,5 @@
1
1
  import { type ReactNode, type Ref } from "react";
2
+ import { type ImageUploadState, type ImageUploader } from "../lib/markdown/image-pipeline";
2
3
  /**
3
4
  * The imperative half of the DX-2930 / DX-2907-problem-137 contract: a
4
5
  * consumer that needs to move focus into the surface from code (a "Edit"
@@ -38,7 +39,33 @@ export interface MarkdownEditorProps {
38
39
  * focus into.
39
40
  */
40
41
  autoFocus?: boolean;
42
+ /**
43
+ * Stores a pasted, dropped or picked image and resolves with its URL
44
+ * (DX-3134). Overrides the nearest `MarkdownImageUploadProvider`. With
45
+ * neither, images are shown but stay local to this tab, and the editor warns
46
+ * that they will not be saved.
47
+ */
48
+ uploadImage?: ImageUploader;
49
+ /**
50
+ * Fires with the image counts every time they change, and once on mount.
51
+ *
52
+ * THE SAVE GATE (PLN-10 R-1): while `unstored > 0` the value holds a
53
+ * `blob:` image that no reader outside this tab can load, so a consumer must
54
+ * not save it — and should re-check the exact value it is about to persist
55
+ * with `findUnstoredImages`, the same function this count comes from. Fired
56
+ * BEFORE the `onChange` that carries the new value, so a consumer reacting
57
+ * to the value already knows whether it may save it.
58
+ *
59
+ * UNMOUNTING ABANDONS AN UNSTORED IMAGE. The editor's object URLs and its
60
+ * uploads die with it (they point into this editor's own page memory), so a
61
+ * value still holding a `blob:` image, remounted later, shows that image as
62
+ * broken for good. The editor guards leaving the PAGE itself
63
+ * (`beforeunload`); leaving the editor inside the app — a route change, a
64
+ * closed panel, a switched tab — is the consumer's to block while
65
+ * `unstored > 0` (PLN-10, "Consumer obligations").
66
+ */
67
+ onImageUploadStateChange?: (state: ImageUploadState) => void;
41
68
  /** Imperative focus handle — see `MarkdownEditorHandle`. */
42
69
  ref?: Ref<MarkdownEditorHandle>;
43
70
  }
44
- export declare function MarkdownEditor({ value, onChange, readOnly, label, hideLabel, placeholder, toolbar, className, minHeight, autoFocus, ref, }: MarkdownEditorProps): import("react").JSX.Element;
71
+ export declare function MarkdownEditor({ value, onChange, readOnly, label, hideLabel, placeholder, toolbar, className, minHeight, autoFocus, uploadImage, onImageUploadStateChange, ref, }: MarkdownEditorProps): import("react").JSX.Element;
@@ -0,0 +1,38 @@
1
+ import { type ReactNode } from "react";
2
+ import type { ImagePipelineSnapshot, ImageUploader } from "../../lib/markdown/image-pipeline";
3
+ export interface MarkdownImageUploadProviderProps {
4
+ /**
5
+ * Stores one image and resolves with the URL it can be loaded from. Every
6
+ * `MarkdownEditor` below this provider uses it unless it passes its own
7
+ * `uploadImage`. It should honour `signal`, which aborts when the editor
8
+ * unmounts.
9
+ */
10
+ uploadImage: ImageUploader;
11
+ children?: ReactNode;
12
+ }
13
+ /** Makes one image uploader available to every `MarkdownEditor` beneath it. */
14
+ export declare function MarkdownImageUploadProvider({ uploadImage, children }: MarkdownImageUploadProviderProps): import("react").JSX.Element;
15
+ /**
16
+ * The uploader an editor uses: its own prop when given, otherwise the nearest
17
+ * provider's, otherwise none — in which case pasted images are local-only and
18
+ * the editor says so.
19
+ */
20
+ export declare function useMarkdownImageUploader(own: ImageUploader | undefined): ImageUploader | null;
21
+ export interface ImageUploadStripProps {
22
+ state: ImagePipelineSnapshot;
23
+ /** Retries every failed upload the editor still has the file for. */
24
+ onRetry: () => void;
25
+ }
26
+ /**
27
+ * The editor-chrome warning, visible whenever the document holds an image
28
+ * that is not stored (PLN-10 R-1).
29
+ *
30
+ * ONE ROW PER KIND OF PROBLEM, not one merged sentence: an upload in flight
31
+ * and an upload that failed ask different things of the author (wait, versus
32
+ * act), and a document can hold both at once.
33
+ *
34
+ * `aria-live="polite"` on the container, never `role="alert"` on the rows: an
35
+ * upload starting or finishing is news the author should hear about without
36
+ * being interrupted mid-sentence, and the rows change several times per paste.
37
+ */
38
+ export declare function ImageUploadStrip({ state, onRetry }: ImageUploadStripProps): import("react").JSX.Element;
@@ -336,6 +336,13 @@ export declare const coreIcons: {
336
336
  }], readonly ["path", {
337
337
  readonly d: "m9 9 6 6";
338
338
  }]];
339
+ readonly "cloud-off": readonly [readonly ["path", {
340
+ readonly d: "m2 2 20 20";
341
+ }], readonly ["path", {
342
+ readonly d: "M5.782 5.782A7 7 0 0 0 9 19h8.5a4.5 4.5 0 0 0 1.307-.193";
343
+ }], readonly ["path", {
344
+ readonly d: "M21.532 16.5A4.5 4.5 0 0 0 17.5 10h-1.79A7.008 7.008 0 0 0 10 5.07";
345
+ }]];
339
346
  readonly info: readonly [readonly ["circle", {
340
347
  readonly cx: "12";
341
348
  readonly cy: "12";
@@ -433,6 +440,28 @@ export declare const coreIcons: {
433
440
  }], readonly ["path", {
434
441
  readonly d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21";
435
442
  }]];
443
+ readonly "image-off": readonly [readonly ["line", {
444
+ readonly x1: "2";
445
+ readonly x2: "22";
446
+ readonly y1: "2";
447
+ readonly y2: "22";
448
+ }], readonly ["path", {
449
+ readonly d: "M10.41 10.41a2 2 0 1 1-2.83-2.83";
450
+ }], readonly ["line", {
451
+ readonly x1: "13.5";
452
+ readonly x2: "6";
453
+ readonly y1: "13.5";
454
+ readonly y2: "21";
455
+ }], readonly ["line", {
456
+ readonly x1: "18";
457
+ readonly x2: "21";
458
+ readonly y1: "12";
459
+ readonly y2: "15";
460
+ }], readonly ["path", {
461
+ readonly d: "M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59";
462
+ }], readonly ["path", {
463
+ readonly d: "M21 15V5a2 2 0 0 0-2-2H9";
464
+ }]];
436
465
  readonly link: readonly [readonly ["path", {
437
466
  readonly d: "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71";
438
467
  }], readonly ["path", {
@@ -70,7 +70,11 @@ export { MarkdownSurface, type SurfaceOptions, type Splice } from "./lib/markdow
70
70
  export { project, projectedText, ProjectionError } from "./lib/markdown/project";
71
71
  export type { Projection, PNode, PText, PElement } from "./lib/markdown/project";
72
72
  export { attachInput, type InputOptions } from "./lib/markdown/input";
73
- export { HOTKEYS, hotkeyFor, chordsOf, type Hotkey, type HotkeyGroup } from "./lib/markdown/hotkeys";
73
+ export { HOTKEYS, hotkeyFor, chordsOf, type Hotkey, type HotkeyGroup, type EditorRequest } from "./lib/markdown/hotkeys";
74
+ export { MarkdownImageUploadProvider, type MarkdownImageUploadProviderProps, } from "./components/markdown/ImageUpload";
75
+ export type { ImageUploader, ImageUploadState } from "./lib/markdown/image-pipeline";
76
+ export { findUnstoredImages, isUnstoredImageSrc, type UnstoredImage } from "./lib/markdown/images";
77
+ export type { ImageResolver, LocalImageState } from "./lib/markdown/image-decoration";
74
78
  export { htmlFragmentToMarkdown } from "./lib/markdown/paste";
75
79
  export { lineAt, stepOffset } from "./lib/markdown/caret";
76
80
  export { caretMap, nearestStop, stepStop, graphemeBefore, graphemeAfter, lineStartStop, type CaretMap, } from "./lib/markdown/caret-map";
@@ -74,15 +74,21 @@ export declare const insertRule: Command;
74
74
  */
75
75
  export declare function insertLink(href?: string, title?: string): Command;
76
76
  /**
77
- * Inserts an image, using the selection as its alt text.
77
+ * Inserts an image of `src`, using the selection as its alt text.
78
78
  *
79
79
  * ALT TEXT IS NOT OPTIONAL AND NOT AN AFTERTHOUGHT, which is why the selection
80
80
  * becomes it rather than the source: an image whose alt is the filename is
81
81
  * exactly as useless to a screen reader as one with none, and the person
82
- * inserting it is the only one who knows what it shows. With nothing selected
83
- * the caret lands between the brackets, on the alt, before the URL.
82
+ * inserting it is the only one who knows what it shows.
83
+ *
84
+ * `src` IS REQUIRED AND MAY NOT BE EMPTY (DX-3134). The old default of `""`
85
+ * inserted `![]()`: an image with nothing to show, which the surface drew as
86
+ * nothing and the caret could not find — the toolbar's Image button appeared
87
+ * to do nothing at all. Choosing a picture is the editor's job (its file
88
+ * picker), so a command is only ever asked to write one that exists. The caret
89
+ * lands after the image, where the next keystroke belongs.
84
90
  */
85
- export declare function insertImage(src?: string, alt?: string): Command;
91
+ export declare function insertImage(src: string, alt?: string): Command;
86
92
  export interface TableSpan {
87
93
  start: number;
88
94
  end: number;
@@ -1,4 +1,5 @@
1
1
  import type { Frame } from "../syntax/markdown/frames";
2
+ import { type DecorationSpec, type ImageResolver } from "./image-decoration";
2
3
  /** Marks the wrapper around a run of markup, for the collapse rule. */
3
4
  export declare const SYNTAX_ATTR = "data-md-syntax";
4
5
  /** Names the frame an element came from, for styling and for the reconciler. */
@@ -20,31 +21,15 @@ export interface TagSpec {
20
21
  * diffing children and put it back after, the same way the trailing-line
21
22
  * filler is handled. Without that it would occupy a child index and shift
22
23
  * every sibling the positional diff is counting.
24
+ *
25
+ * A TREE, not one element (DX-3134): an image being uploaded draws its state
26
+ * on top of the picture, so the decoration is a wrapper with children. Every
27
+ * node in it is still text-free — see ./image-decoration.ts.
23
28
  */
24
- decoration?: {
25
- tag: string;
26
- attrs: Record<string, string>;
27
- };
29
+ decoration?: DecorationSpec;
28
30
  }
29
31
  /** Marks a rendered decoration, which carries no text and no source range. */
30
32
  export declare const DECORATION_ATTR = "data-md-decoration";
31
- /**
32
- * What an image's `src` may be — a DIFFERENT policy from a link's `href`, and
33
- * deliberately so.
34
- *
35
- * `sanitizeHref` allows only `http(s)`, `mailto`, `tel` and `ftp`, because a
36
- * link is something a person clicks and `data:text/html` is a working attack.
37
- * That rule is right for links and it is NOT loosened here.
38
- *
39
- * An image is not clicked, and `data:image/*` is how an inline avatar, an icon
40
- * or a pasted screenshot is written — refusing it would make the editor unable
41
- * to show a very ordinary document. The narrow addition is safe for one
42
- * specific reason worth stating: an SVG loaded through `<img>` has scripting
43
- * DISABLED by specification, which is not true of the same SVG in an `<object>`
44
- * or an `<iframe>`. So `data:image/*` is allowed only because the decoration is
45
- * an `<img>` and nothing else.
46
- */
47
- export declare function sanitizeImageSrc(src: string): string | null;
48
33
  /**
49
34
  * The element a frame becomes.
50
35
  *
@@ -54,7 +39,7 @@ export declare function sanitizeImageSrc(src: string): string | null;
54
39
  * being edited. The link's appearance is a class; its behaviour belongs to the
55
40
  * editor, which knows whether a modifier key was held.
56
41
  */
57
- export declare function tagFor(frame: Frame): TagSpec;
42
+ export declare function tagFor(frame: Frame, images?: ImageResolver): TagSpec;
58
43
  /**
59
44
  * Whether two frames describe the same element, for reuse during a patch.
60
45
  *
@@ -42,6 +42,18 @@ export declare class History {
42
42
  private shouldMerge;
43
43
  /** Forces the next edit to open a new group — a selection change, a blur. */
44
44
  break(): void;
45
+ /**
46
+ * Replaces every occurrence of `from` with `to` in EVERY entry, carrying
47
+ * each entry's selection through the change.
48
+ *
49
+ * The upload swap (DX-3134, see `MarkdownSurface.substitute`): a stored
50
+ * image's object URL must not survive anywhere Ctrl+Z or Ctrl+Y could reach.
51
+ * The entries are rewritten in place rather than a new one recorded, so the
52
+ * swap is not itself an undo step and the undo depth is unchanged.
53
+ */
54
+ substitute(from: string, to: string): void;
55
+ /** Whether any entry, reachable by undo or redo, still holds `text`. */
56
+ includes(text: string): boolean;
45
57
  undo(): HistoryEntry | null;
46
58
  redo(): HistoryEntry | null;
47
59
  }
@@ -1,6 +1,17 @@
1
1
  import { type Command } from "./commands";
2
2
  export type HotkeyGroup = "formatting" | "headings" | "lists" | "blocks" | "tables";
3
- export interface Hotkey {
3
+ /**
4
+ * Something only the editor itself can do, because it is not a function of the
5
+ * source (DX-3134).
6
+ *
7
+ * Inserting an image means choosing a FILE first, which needs a file picker —
8
+ * a browser dialog, not a splice. The row that used to insert an empty `![]()`
9
+ * (a construct with nothing to show, which rendered as nothing) now asks the
10
+ * editor for the picker instead, and the chosen files go through the same
11
+ * pipeline as a paste or a drop.
12
+ */
13
+ export type EditorRequest = "pickImages";
14
+ interface HotkeyBase {
4
15
  /**
5
16
  * The chord this matches: lower-case, modifiers first, in the order ctrl,
6
17
  * alt, shift.
@@ -16,8 +27,15 @@ export interface Hotkey {
16
27
  label: string;
17
28
  description: string;
18
29
  group: HotkeyGroup;
19
- command: Command;
20
30
  }
31
+ /** A chord, and EITHER the pure edit it makes OR the editor request it raises. */
32
+ export type Hotkey = HotkeyBase & ({
33
+ command: Command;
34
+ request?: never;
35
+ } | {
36
+ request: EditorRequest;
37
+ command?: never;
38
+ });
21
39
  export declare const HOTKEYS: readonly Hotkey[];
22
40
  /**
23
41
  * The chords a key event could be, most specific first.
@@ -37,3 +55,4 @@ export declare const HOTKEYS: readonly Hotkey[];
37
55
  */
38
56
  export declare function chordsOf(event: KeyboardEvent): string[];
39
57
  export declare function hotkeyFor(event: KeyboardEvent): Hotkey | null;
58
+ export {};
@@ -0,0 +1,60 @@
1
+ import type { Frame } from "../syntax/markdown/frames";
2
+ /**
3
+ * What an image's `src` may be — a DIFFERENT policy from a link's `href`, and
4
+ * deliberately so.
5
+ *
6
+ * `sanitizeHref` allows only `http(s)`, `mailto`, `tel` and `ftp`, because a
7
+ * link is something a person clicks and `data:text/html` is a working attack.
8
+ * That rule is right for links and it is NOT loosened here — only narrowed, to
9
+ * `http(s)` and relative URLs, since the other three name nothing to load.
10
+ *
11
+ * An image is not clicked, and `data:image/*` is how an inline avatar, an icon
12
+ * or a pasted screenshot is written — refusing it would make the editor unable
13
+ * to show a very ordinary document. The narrow addition is safe for one
14
+ * specific reason worth stating: an SVG loaded through `<img>` has scripting
15
+ * DISABLED by specification, which is not true of the same SVG in an `<object>`
16
+ * or an `<iframe>`. So `data:image/*` is allowed only because the decoration is
17
+ * an `<img>` and nothing else.
18
+ *
19
+ * `blob:` IS REFUSED HERE AND STAYS REFUSED (DX-3134). An object URL is only
20
+ * rendered when the editor that minted it vouches for it through its
21
+ * `ImageResolver` — see `imageDecoration` below — never by this policy.
22
+ */
23
+ export declare function sanitizeImageSrc(src: string): string | null;
24
+ /** One element of a decoration: a tag, its attributes, and its children. */
25
+ export interface DecorationSpec {
26
+ tag: string;
27
+ attrs: Record<string, string>;
28
+ children?: readonly DecorationSpec[];
29
+ }
30
+ /**
31
+ * The state of an image this editor put into the document itself.
32
+ *
33
+ * - `uploading` — the consumer's uploader is storing it now.
34
+ * - `failed` — the upload rejected; the original file is kept for a retry.
35
+ * - `local` — there is no uploader, so it cannot be stored at all.
36
+ */
37
+ export type LocalImageState = "uploading" | "failed" | "local";
38
+ /**
39
+ * Answers "did this editor mint this src, and what is its state".
40
+ *
41
+ * Returning null means "not one of mine", and the src then goes through the
42
+ * ordinary `sanitizeImageSrc` policy — under which every `blob:` URL is
43
+ * refused. That is what makes "only the object URLs this editor minted
44
+ * render" true by construction rather than by a second allow-list (DX-3134).
45
+ */
46
+ export type ImageResolver = (src: string) => LocalImageState | null;
47
+ /** Every state a decoration can draw, including the two that are not local. */
48
+ export type ImageDecorationState = LocalImageState | "stored" | "broken";
49
+ /** The attribute the pipeline's click listener looks for. */
50
+ export declare const IMAGE_ACTION_ATTR = "data-md-image-action";
51
+ export type ImageAction = "retry" | "remove";
52
+ /**
53
+ * The decoration for one image frame.
54
+ *
55
+ * `local` is the resolver's answer for this frame's src — non-null only for an
56
+ * object URL this editor minted.
57
+ */
58
+ export declare function imageDecoration(frame: Extract<Frame, {
59
+ kind: "image";
60
+ }>, local: LocalImageState | null): DecorationSpec;