@juspay/svelte-ui-components 4.31.2 → 4.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/Accordion/Accordion.svelte +6 -1
  2. package/dist/Animations/ModalAnimation.svelte +71 -8
  3. package/dist/Animations/OverlayAnimation.svelte +29 -4
  4. package/dist/Animations/tokenizedFly.d.ts +17 -0
  5. package/dist/Animations/tokenizedFly.js +153 -0
  6. package/dist/AreaChart/AreaChart.svelte +7 -5
  7. package/dist/BarChart/BarChart.svelte +2 -1
  8. package/dist/Book/Book.svelte +6 -3
  9. package/dist/ChatBubble/ChatBubble.svelte +18 -3
  10. package/dist/Checkbox/Checkbox.svelte +15 -3
  11. package/dist/Choicebox/Choicebox.svelte +24 -2
  12. package/dist/Combobox/Combobox.svelte +15 -1
  13. package/dist/CommandMenu/CommandMenu.svelte +72 -2
  14. package/dist/ContextMenu/ContextMenu.svelte +41 -1
  15. package/dist/DualAxisBarChart/DualAxisBarChart.svelte +4 -3
  16. package/dist/FunnelChart/FunnelChart.svelte +5 -4
  17. package/dist/Gallery/Gallery.svelte +53 -1
  18. package/dist/Gallery/properties.d.ts +5 -3
  19. package/dist/Gauge/Gauge.svelte +2 -1
  20. package/dist/LineChart/LineChart.svelte +7 -5
  21. package/dist/MediaPlayer/MediaPlayer.svelte +9 -1
  22. package/dist/MediaPlayer/MediaPlayer.svelte.d.ts +1 -1
  23. package/dist/MediaUpload/MediaUpload.svelte +1 -1
  24. package/dist/Menu/Menu.svelte +38 -1
  25. package/dist/Modal/Modal.svelte +18 -4
  26. package/dist/Pagination/Pagination.svelte +9 -1
  27. package/dist/PieChart/PieChart.svelte +2 -2
  28. package/dist/Radio/Radio.svelte +14 -2
  29. package/dist/RatingGroup/RatingGroup.svelte +9 -0
  30. package/dist/SankeyChart/SankeyChart.svelte +6 -3
  31. package/dist/Select/Select.svelte +26 -4
  32. package/dist/Sheet/Sheet.svelte +34 -2
  33. package/dist/Slider/Slider.svelte +26 -5
  34. package/dist/Table/Table.svelte +9 -2
  35. package/dist/Tabs/Tabs.svelte +27 -4
  36. package/dist/TaskList/TaskList.svelte +10 -2
  37. package/dist/ThemeSwitcher/ThemeSwitcher.svelte +13 -6
  38. package/dist/ThinkingIndicator/ThinkingIndicator.svelte +5 -3
  39. package/dist/Toast/Toast.svelte +216 -116
  40. package/dist/Toggle/Toggle.svelte +8 -4
  41. package/dist/ToolCallLog/ToolCallLog.svelte +10 -2
  42. package/dist/Tooltip/Tooltip.svelte +4 -2
  43. package/dist-wc/index.d.ts +1 -1
  44. package/dist-wc/index.js +611 -410
  45. package/package.json +2 -2
package/dist-wc/index.js CHANGED
@@ -140,6 +140,9 @@ function hydration_html_changed(e) {
140
140
  function hydration_mismatch(e) {
141
141
  console.warn("https://svelte.dev/e/hydration_mismatch");
142
142
  }
143
+ function invalid_raw_snippet_render() {
144
+ console.warn("https://svelte.dev/e/invalid_raw_snippet_render");
145
+ }
143
146
  function lifecycle_double_unmount() {
144
147
  console.warn("https://svelte.dev/e/lifecycle_double_unmount");
145
148
  }
@@ -2297,6 +2300,14 @@ function snippet(e, t, ...n) {
2297
2300
  i.ensure(e, e && ((t) => e(t, ...n)));
2298
2301
  }, EFFECT_TRANSPARENT);
2299
2302
  }
2303
+ function createRawSnippet(e) {
2304
+ return (t, ...n) => {
2305
+ var i = e(...n), a;
2306
+ hydrating ? (a = hydrate_node, hydrate_next()) : (a = /* @__PURE__ */ get_first_child(create_fragment_from_html(i.render().trim())), t.before(a));
2307
+ let o = i.setup?.(a);
2308
+ assign_nodes(a, a), typeof o == "function" && teardown(o);
2309
+ };
2310
+ }
2300
2311
  function onMount(e) {
2301
2312
  component_context === null && lifecycle_outside_component("onMount"), legacy_mode_flag && component_context.l !== null ? init_update_callbacks(component_context).m.push(e) : user_effect(() => {
2302
2313
  let t = untrack(e);
@@ -2682,7 +2693,7 @@ function css_to_keyframe(e) {
2682
2693
  }
2683
2694
  return t;
2684
2695
  }
2685
- var linear$1 = (e) => e, animation_effect_override = null;
2696
+ var linear$2 = (e) => e, animation_effect_override = null;
2686
2697
  function set_animation_effect_override(e) {}
2687
2698
  function transition(e, t, n, i) {
2688
2699
  var a = (e & 1) != 0, o = (e & 2) != 0, s = a && o, c = (e & 4) != 0, l = s ? "both" : a ? "in" : "out", u, f = t.inert, p = t.style.overflow, h, S;
@@ -2749,7 +2760,7 @@ function animate(e, t, n, i, a, o) {
2749
2760
  reset: noop,
2750
2761
  t: () => i
2751
2762
  };
2752
- let { delay: u = 0, css: f, tick: p, easing: h = linear$1 } = t;
2763
+ let { delay: u = 0, css: f, tick: p, easing: h = linear$2 } = t;
2753
2764
  var S = [];
2754
2765
  if (s && n === void 0 && (p && p(0, 1), f)) {
2755
2766
  var C = css_to_keyframe(f(0, 1));
@@ -5027,7 +5038,7 @@ create_custom_element(Button, {
5027
5038
  //#region src/lib/Book/Book.svelte
5028
5039
  var root$104 = /* @__PURE__ */ from_html("<div><!></div>"), root_1$93 = /* @__PURE__ */ from_html("<div class=\"page svelte-1qrpci6\"><!></div>"), root_2$71 = /* @__PURE__ */ from_html("<div class=\"page page-slide svelte-1qrpci6\"><!></div>"), root_3$62 = /* @__PURE__ */ from_html("<button></button>"), root_4$50 = /* @__PURE__ */ from_html("<div class=\"page-indicator svelte-1qrpci6\"></div>"), root_5$40 = /* @__PURE__ */ from_html("<div role=\"region\" tabindex=\"0\"><div class=\"book-viewport svelte-1qrpci6\"><!> <div class=\"pages-container svelte-1qrpci6\"></div> <!></div> <!></div>"), $$css$192 = {
5029
5040
  hash: "svelte-1qrpci6",
5030
- code: ".book.svelte-1qrpci6 {width:var(--book-width, 100%);background-color:var(--book-background, #ffffff);border-radius:var(--book-border-radius, var(--radius, 4px));border:var(--book-border, 1px solid #e0e0e0);outline:none;}\n\n /* role=\"region\" tabindex=\"0\" above makes this a real Tab stop (arrow keys\n then page it via handleKeyDown), so removing its outline unconditionally\n left a keyboard user with no visible sign it was focused. :focus-visible\n so tapping/clicking into the book to swipe doesn't show a ring. */.book.svelte-1qrpci6:focus-visible {outline:var(--book-focus-outline, 2px solid #2563eb);outline-offset:var(--book-focus-outline-offset, 2px);}.book-viewport.svelte-1qrpci6 {position:relative;display:flex;align-items:center;}.pages-container.svelte-1qrpci6 {position:relative;width:100%;height:var(--book-height, 400px);overflow:var(--book-overflow, hidden);}.page.svelte-1qrpci6 {width:100%;height:100%;}.page-slide.svelte-1qrpci6 {position:absolute;top:0;left:0;transition:transform var(--book-transition-duration, 0.3s) ease;}.page-fade.svelte-1qrpci6 {position:absolute;top:0;left:0;opacity:0;transition:opacity var(--book-transition-duration, 0.3s) ease;pointer-events:none;}.page-fade.page-active.svelte-1qrpci6 {opacity:1;pointer-events:auto;}.nav-button.svelte-1qrpci6 {display:flex;align-items:center;justify-content:center;--button-width: var(--book-nav-size, 36px);--button-height: var(--book-nav-size, 36px);--button-min-width: var(--book-nav-size, 36px);--button-background: var(--book-nav-background, rgba(0, 0, 0, 0.05));--button-border: none;--button-border-radius: var(--book-nav-border-radius, 50%);--button-padding: 0;--button-color: var(--book-nav-color, #333333);--button-hover-background: var(--book-nav-hover-background, rgba(0, 0, 0, 0.1));}.nav-disabled.svelte-1qrpci6 {opacity:var(--book-nav-disabled-opacity, 0.3);}.nav-button.svelte-1qrpci6 svg {width:18px;height:18px;}.nav-prev.svelte-1qrpci6 {margin-right:4px;}.nav-next.svelte-1qrpci6 {margin-left:4px;}.page-indicator.svelte-1qrpci6 {display:flex;justify-content:center;align-items:center;gap:var(--book-dot-gap, 8px);padding:var(--book-indicator-padding, 12px 0);}.dot.svelte-1qrpci6 {width:var(--book-dot-size, 8px);height:var(--book-dot-size, 8px);border-radius:var(--book-dot-border-radius, 50%);background-color:var(--book-dot-color, #cccccc);border:none;padding:0;cursor:pointer;transition:background-color var(--book-dot-transition-duration, var(--motion-duration, 0.2s))\n var(--book-dot-transition-easing, var(--motion-easing, ease));}.dot-active.svelte-1qrpci6 {background-color:var(--book-dot-active-color, #333333);}\n\n /* The page turn is a transform, which is the movement prefers-reduced-motion\n exists for. Both ends of the transition are meaningful on their own -- a page\n is either turned or not -- so removing it leaves no misleading frame, unlike\n the timed loaders in Button and ListItem. This block lives in the component's\n own <style> because that is the only stylesheet reaching inside the shadow\n root a custom-element consumer gets. */\n @media (prefers-reduced-motion: reduce) {.page.svelte-1qrpci6 {transition:none;}\n }"
5041
+ code: ".book.svelte-1qrpci6 {width:var(--book-width, 100%);background-color:var(--book-background, #ffffff);border-radius:var(--book-border-radius, var(--radius, 4px));border:var(--book-border, 1px solid #e0e0e0);outline:none;}\n\n /* role=\"region\" tabindex=\"0\" above makes this a real Tab stop (arrow keys\n then page it via handleKeyDown), so removing its outline unconditionally\n left a keyboard user with no visible sign it was focused. :focus-visible\n so tapping/clicking into the book to swipe doesn't show a ring. */.book.svelte-1qrpci6:focus-visible {outline:var(--book-focus-outline, 2px solid #2563eb);outline-offset:var(--book-focus-outline-offset, 2px);}.book-viewport.svelte-1qrpci6 {position:relative;display:flex;align-items:center;}.pages-container.svelte-1qrpci6 {position:relative;width:100%;height:var(--book-height, 400px);overflow:var(--book-overflow, hidden);}.page.svelte-1qrpci6 {width:100%;height:100%;}.page-slide.svelte-1qrpci6 {position:absolute;top:0;left:0;transition:transform var(--book-transition-duration, var(--motion-duration, 0.3s))\n var(--book-transition-easing, var(--motion-easing, ease));}.page-fade.svelte-1qrpci6 {position:absolute;top:0;left:0;opacity:0;transition:opacity var(--book-transition-duration, var(--motion-duration, 0.3s))\n var(--book-transition-easing, var(--motion-easing, ease));pointer-events:none;}.page-fade.page-active.svelte-1qrpci6 {opacity:1;pointer-events:auto;}.nav-button.svelte-1qrpci6 {display:flex;align-items:center;justify-content:center;--button-width: var(--book-nav-size, 36px);--button-height: var(--book-nav-size, 36px);--button-min-width: var(--book-nav-size, 36px);--button-background: var(--book-nav-background, rgba(0, 0, 0, 0.05));--button-border: none;--button-border-radius: var(--book-nav-border-radius, 50%);--button-padding: 0;--button-color: var(--book-nav-color, #333333);--button-hover-background: var(--book-nav-hover-background, rgba(0, 0, 0, 0.1));}.nav-disabled.svelte-1qrpci6 {opacity:var(--book-nav-disabled-opacity, 0.3);}.nav-button.svelte-1qrpci6 svg {width:18px;height:18px;}.nav-prev.svelte-1qrpci6 {margin-right:4px;}.nav-next.svelte-1qrpci6 {margin-left:4px;}.page-indicator.svelte-1qrpci6 {display:flex;justify-content:center;align-items:center;gap:var(--book-dot-gap, 8px);padding:var(--book-indicator-padding, 12px 0);}.dot.svelte-1qrpci6 {width:var(--book-dot-size, 8px);height:var(--book-dot-size, 8px);border-radius:var(--book-dot-border-radius, 50%);background-color:var(--book-dot-color, #cccccc);border:none;padding:0;cursor:pointer;transition:background-color\n var(--book-dot-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--book-dot-transition-easing, var(--motion-easing, ease));}.dot-active.svelte-1qrpci6 {background-color:var(--book-dot-active-color, #333333);}\n\n /* The page turn is a transform, which is the movement prefers-reduced-motion\n exists for. Both ends of the transition are meaningful on their own -- a page\n is either turned or not -- so removing it leaves no misleading frame, unlike\n the timed loaders in Button and ListItem. This block lives in the component's\n own <style> because that is the only stylesheet reaching inside the shadow\n root a custom-element consumer gets. */\n @media (prefers-reduced-motion: reduce) {.page.svelte-1qrpci6 {transition:none;}\n }"
5031
5042
  };
5032
5043
  function Book(e, t) {
5033
5044
  push(t, !0), append_styles$1(e, $$css$192);
@@ -6362,7 +6373,7 @@ function describeField(e, t) {
6362
6373
  //#region src/lib/assets/checkmark.svg?raw
6363
6374
  var checkmark_default = "<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http://www.w3.org/2000/svg\">\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n</svg>\n", minus_default = "<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" xmlns=\"http://www.w3.org/2000/svg\">\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"></line>\n</svg>\n", root$100 = /* @__PURE__ */ from_html("<span class=\"icon svelte-f1in4m\"></span>"), root_1$89 = /* @__PURE__ */ from_html("<span class=\"icon dash svelte-f1in4m\"></span>"), root_2$68 = /* @__PURE__ */ from_html("<div role=\"alert\" class=\"field-error svelte-f1in4m\"> </div>"), root_3$59 = /* @__PURE__ */ from_html("<div class=\"field-info svelte-f1in4m\"> </div>"), root_4$48 = /* @__PURE__ */ from_html("<label><input type=\"checkbox\" class=\"native-checkbox svelte-f1in4m\" aria-hidden=\"true\"/> <span><!> <!></span> <span class=\"label svelte-f1in4m\"> </span></label> <!> <!>", 1), $$css$184 = {
6364
6375
  hash: "svelte-f1in4m",
6365
- code: ".container.svelte-f1in4m {display:var(--checkbox-container-display, inline-flex);align-items:var(--checkbox-container-align-items, center);gap:var(--checkbox-container-gap, 8px);cursor:var(--checkbox-container-cursor, pointer);}.container.disabled.svelte-f1in4m {opacity:var(--checkbox-disabled-opacity, 0.4);cursor:var(--checkbox-disabled-cursor, not-allowed);}.native-checkbox.svelte-f1in4m {position:absolute;opacity:0;width:0;height:0;pointer-events:none;}.box.svelte-f1in4m {display:inline-flex;align-items:center;justify-content:center;width:var(--checkbox-size, 20px);height:var(--checkbox-size, 20px);border:var(--checkbox-border, 2px solid #757575);border-radius:var(--checkbox-border-radius, var(--radius, 4px));background-color:var(--checkbox-background, transparent);transition:background-color var(--checkbox-transition, 0.2s),\n border var(--checkbox-transition, 0.2s);flex-shrink:0;}.box.svelte-f1in4m:focus-visible {outline:none;box-shadow:var(--checkbox-focus-ring, 0 0 0 3px rgba(33, 150, 243, 0.3));}.container.svelte-f1in4m:not(.disabled) .box:where(.svelte-f1in4m):hover {border-color:var(--checkbox-hover-border-color, #212121);}.box.checked.svelte-f1in4m {background-color:var(--checkbox-checked-background, #2196f3);border:var(--checkbox-checked-border, 2px solid #2196f3);}.box.indeterminate.svelte-f1in4m {background-color:var(--checkbox-indeterminate-background, #2196f3);border:var(--checkbox-indeterminate-border, 2px solid #2196f3);}.icon.svelte-f1in4m {display:inline-flex;align-items:center;justify-content:center;width:var(--checkbox-icon-size, 14px);height:var(--checkbox-icon-size, 14px);color:var(--checkbox-checkmark-color, white);}.icon.svelte-f1in4m svg {width:100%;height:100%;}.icon.dash.svelte-f1in4m {color:var(--checkbox-dash-color, white);}.label.svelte-f1in4m {font-size:var(--checkbox-label-font-size, 14px);font-weight:var(--checkbox-label-font-weight, 400);color:var(--checkbox-label-color, #212121);}.field-error.svelte-f1in4m {color:var(--field-error-color, #c5120a);font-size:var(--field-error-font-size, 12px);margin:var(--field-error-margin, 4px 0 0 0);}.field-info.svelte-f1in4m {color:var(--field-info-color, #6b7280);font-size:var(--field-info-font-size, 12px);margin:var(--field-info-margin, 4px 0 0 0);}"
6376
+ code: ".container.svelte-f1in4m {display:var(--checkbox-container-display, inline-flex);align-items:var(--checkbox-container-align-items, center);gap:var(--checkbox-container-gap, 8px);cursor:var(--checkbox-container-cursor, pointer);}.container.disabled.svelte-f1in4m {opacity:var(--checkbox-disabled-opacity, 0.4);cursor:var(--checkbox-disabled-cursor, not-allowed);}.native-checkbox.svelte-f1in4m {position:absolute;opacity:0;width:0;height:0;pointer-events:none;}.box.svelte-f1in4m {display:inline-flex;align-items:center;justify-content:center;width:var(--checkbox-size, 20px);height:var(--checkbox-size, 20px);border:var(--checkbox-border, 2px solid #757575);border-radius:var(--checkbox-border-radius, var(--radius, 4px));background-color:var(--checkbox-background, transparent);\n /* --checkbox-transition wraps the WHOLE value (matching Choicebox/Toggle's\n own \"-transition\" tokens), not just the duration -- a consumer filling it\n with e.g. \"0.3s ease-in-out\" replaces the entire expression cleanly. Putting\n it in only the duration slot with a separate -easing term appended after\n would make that same override produce an invalid transition (two\n timing-function components), dropping the whole declaration to its\n initial value instead of just using a different timing. */transition:var(\n --checkbox-transition,\n background-color\n var(--checkbox-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--checkbox-transition-easing, var(--motion-easing, ease)),\n border var(--checkbox-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--checkbox-transition-easing, var(--motion-easing, ease))\n );flex-shrink:0;}.box.svelte-f1in4m:focus-visible {outline:none;box-shadow:var(--checkbox-focus-ring, 0 0 0 3px rgba(33, 150, 243, 0.3));}.container.svelte-f1in4m:not(.disabled) .box:where(.svelte-f1in4m):hover {border-color:var(--checkbox-hover-border-color, #212121);}.box.checked.svelte-f1in4m {background-color:var(--checkbox-checked-background, #2196f3);border:var(--checkbox-checked-border, 2px solid #2196f3);}.box.indeterminate.svelte-f1in4m {background-color:var(--checkbox-indeterminate-background, #2196f3);border:var(--checkbox-indeterminate-border, 2px solid #2196f3);}.icon.svelte-f1in4m {display:inline-flex;align-items:center;justify-content:center;width:var(--checkbox-icon-size, 14px);height:var(--checkbox-icon-size, 14px);color:var(--checkbox-checkmark-color, white);}.icon.svelte-f1in4m svg {width:100%;height:100%;}.icon.dash.svelte-f1in4m {color:var(--checkbox-dash-color, white);}.label.svelte-f1in4m {font-size:var(--checkbox-label-font-size, 14px);font-weight:var(--checkbox-label-font-weight, 400);color:var(--checkbox-label-color, #212121);}.field-error.svelte-f1in4m {color:var(--field-error-color, #c5120a);font-size:var(--field-error-font-size, 12px);margin:var(--field-error-margin, 4px 0 0 0);}.field-info.svelte-f1in4m {color:var(--field-info-color, #6b7280);font-size:var(--field-info-font-size, 12px);margin:var(--field-info-margin, 4px 0 0 0);}"
6366
6377
  };
6367
6378
  function Checkbox(e, t) {
6368
6379
  let n = props_id();
@@ -8151,7 +8162,7 @@ function closestInEventPath(e, t) {
8151
8162
  //#region src/lib/Slider/Slider.svelte
8152
8163
  var root$95 = /* @__PURE__ */ from_html("<span class=\"slider-value svelte-17e64va\"> </span>"), root_1$84 = /* @__PURE__ */ from_html("<div role=\"alert\" class=\"field-error svelte-17e64va\"> </div>"), root_2$64 = /* @__PURE__ */ from_html("<div class=\"field-info svelte-17e64va\"> </div>"), root_3$56 = /* @__PURE__ */ from_html("<div><input type=\"range\" class=\"slider-input svelte-17e64va\"/> <!></div> <!> <!>", 1), $$css$178 = {
8153
8164
  hash: "svelte-17e64va",
8154
- code: ".slider-container.svelte-17e64va {display:flex;align-items:center;gap:12px;width:var(--slider-container-width, 100%);padding:var(--slider-container-padding, 4px 0);}.slider-container.disabled.svelte-17e64va {opacity:var(--slider-disabled-opacity, 0.5);cursor:var(--slider-disabled-cursor, not-allowed);}.slider-input.svelte-17e64va {-webkit-appearance:none;appearance:none;width:100%;height:var(--slider-track-height, 6px);border-radius:var(--slider-track-border-radius, var(--radius, 4px));background:var(\n --slider-track,\n linear-gradient(\n to right,\n var(--slider-track-active-color, #2196f3) 0%,\n var(--slider-track-active-color, #2196f3) var(--slider-fill-percent, 0%),\n var(--slider-track-background, #e0e0e0) var(--slider-fill-percent, 0%),\n var(--slider-track-background, #e0e0e0) 100%\n )\n );outline:none;transition:var(--slider-transition, background 0.2s ease);cursor:pointer;}.slider-container.disabled.svelte-17e64va .slider-input:where(.svelte-17e64va) {cursor:var(--slider-disabled-cursor, not-allowed);pointer-events:none;}.slider-input.svelte-17e64va::-webkit-slider-thumb {-webkit-appearance:none;appearance:none;width:var(--slider-thumb-size, 20px);height:var(--slider-thumb-size, 20px);border-radius:var(--slider-thumb-border-radius, 50%);background:var(--slider-thumb-background, #ffffff);border:var(--slider-thumb-border, 2px solid #2196f3);box-shadow:var(--slider-thumb-shadow, 0 1px 3px rgba(0, 0, 0, 0.2));opacity:var(--slider-thumb-opacity, 1);cursor:pointer;transition:transform var(--slider-thumb-transition-duration, var(--motion-duration, 0.15s))\n var(--slider-thumb-transition-easing, var(--motion-easing, ease)),\n opacity var(--slider-thumb-transition-duration, var(--motion-duration, 0.15s))\n var(--slider-thumb-transition-easing, var(--motion-easing, ease));}.slider-input.svelte-17e64va::-moz-range-thumb {width:var(--slider-thumb-size, 20px);height:var(--slider-thumb-size, 20px);border-radius:var(--slider-thumb-border-radius, 50%);background:var(--slider-thumb-background, #ffffff);border:var(--slider-thumb-border, 2px solid #2196f3);box-shadow:var(--slider-thumb-shadow, 0 1px 3px rgba(0, 0, 0, 0.2));opacity:var(--slider-thumb-opacity, 1);cursor:pointer;transition:transform var(--slider-thumb-transition-duration, var(--motion-duration, 0.15s))\n var(--slider-thumb-transition-easing, var(--motion-easing, ease)),\n opacity var(--slider-thumb-transition-duration, var(--motion-duration, 0.15s))\n var(--slider-thumb-transition-easing, var(--motion-easing, ease));}.slider-input.svelte-17e64va:hover::-webkit-slider-thumb {transform:scale(var(--slider-thumb-hover-scale, 1.15));opacity:var(--slider-thumb-hover-opacity, var(--slider-thumb-opacity, 1));}.slider-input.svelte-17e64va:hover::-moz-range-thumb {transform:scale(var(--slider-thumb-hover-scale, 1.15));opacity:var(--slider-thumb-hover-opacity, var(--slider-thumb-opacity, 1));}.slider-input.svelte-17e64va:focus-visible::-webkit-slider-thumb {outline:var(--slider-focus-ring, 2px solid #2196f3);outline-offset:2px;}.slider-input.svelte-17e64va:focus-visible::-moz-range-thumb {outline:var(--slider-focus-ring, 2px solid #2196f3);outline-offset:2px;}.slider-input.svelte-17e64va::-moz-range-track {height:var(--slider-track-height, 6px);border-radius:var(--slider-track-border-radius, var(--radius, 4px));background:transparent;}.slider-value.svelte-17e64va {font-size:var(--slider-value-font-size, 14px);font-weight:var(--slider-value-font-weight, 500);color:var(--slider-value-color, #333333);white-space:nowrap;}.field-error.svelte-17e64va {color:var(--field-error-color, #c5120a);font-size:var(--field-error-font-size, 12px);margin:var(--field-error-margin, 4px 0 0 0);}.field-info.svelte-17e64va {color:var(--field-info-color, #6b7280);font-size:var(--field-info-font-size, 12px);margin:var(--field-info-margin, 4px 0 0 0);}"
8165
+ code: ".slider-container.svelte-17e64va {display:flex;align-items:center;gap:12px;width:var(--slider-container-width, 100%);padding:var(--slider-container-padding, 4px 0);}.slider-container.disabled.svelte-17e64va {opacity:var(--slider-disabled-opacity, 0.5);cursor:var(--slider-disabled-cursor, not-allowed);}.slider-input.svelte-17e64va {-webkit-appearance:none;appearance:none;width:100%;height:var(--slider-track-height, 6px);border-radius:var(--slider-track-border-radius, var(--radius, 4px));background:var(\n --slider-track,\n linear-gradient(\n to right,\n var(--slider-track-active-color, #2196f3) 0%,\n var(--slider-track-active-color, #2196f3) var(--slider-fill-percent, 0%),\n var(--slider-track-background, #e0e0e0) var(--slider-fill-percent, 0%),\n var(--slider-track-background, #e0e0e0) 100%\n )\n );outline:none;transition:var(\n --slider-transition,\n background\n var(--slider-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--slider-transition-easing, var(--motion-easing, ease))\n );cursor:pointer;}.slider-container.disabled.svelte-17e64va .slider-input:where(.svelte-17e64va) {cursor:var(--slider-disabled-cursor, not-allowed);pointer-events:none;}.slider-input.svelte-17e64va::-webkit-slider-thumb {-webkit-appearance:none;appearance:none;width:var(--slider-thumb-size, 20px);height:var(--slider-thumb-size, 20px);border-radius:var(--slider-thumb-border-radius, 50%);background:var(--slider-thumb-background, #ffffff);border:var(--slider-thumb-border, 2px solid #2196f3);box-shadow:var(--slider-thumb-shadow, 0 1px 3px rgba(0, 0, 0, 0.2));opacity:var(--slider-thumb-opacity, 1);cursor:pointer;transition:transform\n var(\n --slider-thumb-transition-duration,\n var(--duration-quick, var(--motion-duration, 0.15s))\n )\n var(--slider-thumb-transition-easing, var(--motion-easing, ease)),\n opacity\n var(\n --slider-thumb-transition-duration,\n var(--duration-quick, var(--motion-duration, 0.15s))\n )\n var(--slider-thumb-transition-easing, var(--motion-easing, ease));}.slider-input.svelte-17e64va::-moz-range-thumb {width:var(--slider-thumb-size, 20px);height:var(--slider-thumb-size, 20px);border-radius:var(--slider-thumb-border-radius, 50%);background:var(--slider-thumb-background, #ffffff);border:var(--slider-thumb-border, 2px solid #2196f3);box-shadow:var(--slider-thumb-shadow, 0 1px 3px rgba(0, 0, 0, 0.2));opacity:var(--slider-thumb-opacity, 1);cursor:pointer;transition:transform\n var(\n --slider-thumb-transition-duration,\n var(--duration-quick, var(--motion-duration, 0.15s))\n )\n var(--slider-thumb-transition-easing, var(--motion-easing, ease)),\n opacity\n var(\n --slider-thumb-transition-duration,\n var(--duration-quick, var(--motion-duration, 0.15s))\n )\n var(--slider-thumb-transition-easing, var(--motion-easing, ease));}.slider-input.svelte-17e64va:hover::-webkit-slider-thumb {transform:scale(var(--slider-thumb-hover-scale, 1.15));opacity:var(--slider-thumb-hover-opacity, var(--slider-thumb-opacity, 1));}.slider-input.svelte-17e64va:hover::-moz-range-thumb {transform:scale(var(--slider-thumb-hover-scale, 1.15));opacity:var(--slider-thumb-hover-opacity, var(--slider-thumb-opacity, 1));}.slider-input.svelte-17e64va:focus-visible::-webkit-slider-thumb {outline:var(--slider-focus-ring, 2px solid #2196f3);outline-offset:2px;}.slider-input.svelte-17e64va:focus-visible::-moz-range-thumb {outline:var(--slider-focus-ring, 2px solid #2196f3);outline-offset:2px;}.slider-input.svelte-17e64va::-moz-range-track {height:var(--slider-track-height, 6px);border-radius:var(--slider-track-border-radius, var(--radius, 4px));background:transparent;}.slider-value.svelte-17e64va {font-size:var(--slider-value-font-size, 14px);font-weight:var(--slider-value-font-weight, 500);color:var(--slider-value-color, #333333);white-space:nowrap;}.field-error.svelte-17e64va {color:var(--field-error-color, #c5120a);font-size:var(--field-error-font-size, 12px);margin:var(--field-error-margin, 4px 0 0 0);}.field-info.svelte-17e64va {color:var(--field-info-color, #6b7280);font-size:var(--field-info-font-size, 12px);margin:var(--field-info-margin, 4px 0 0 0);}"
8155
8166
  };
8156
8167
  function Slider(e, t) {
8157
8168
  let n = props_id();
@@ -9091,7 +9102,7 @@ customElements.define("sui-color-picker", create_custom_element(ColorPicker_wc,
9091
9102
  //#region src/lib/Combobox/Combobox.svelte
9092
9103
  var root$92 = /* @__PURE__ */ from_html("<div class=\"combobox-input-prefix svelte-178p70i\"><!></div>"), root_1$81 = /* @__PURE__ */ from_html("<div class=\"combobox-input-suffix svelte-178p70i\"><!></div>"), root_2$61 = /* @__PURE__ */ from_html("<div class=\"combobox-dropdown-header svelte-178p70i\"><!></div>"), root_3$53 = /* @__PURE__ */ from_html("<div class=\"combobox-limit svelte-178p70i\" role=\"alert\"> </div>"), root_4$44 = /* @__PURE__ */ from_html("<div class=\"combobox-empty svelte-178p70i\"> </div>"), root_5$36 = /* @__PURE__ */ from_html("<div role=\"option\" tabindex=\"-1\"><!></div>"), root_6$31 = /* @__PURE__ */ from_html("<div role=\"option\" aria-selected=\"false\" tabindex=\"-1\"><span class=\"combobox-create-icon svelte-178p70i\" aria-hidden=\"true\"><svg viewBox=\"0 0 20 20\" width=\"14\" height=\"14\" fill=\"none\"><path d=\"M10 4v12M4 10h12\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\"></path></svg></span> </div>"), root_7$28 = /* @__PURE__ */ from_html("<span class=\"combobox-action-icon svelte-178p70i\" aria-hidden=\"true\"><!></span>"), root_8$23 = /* @__PURE__ */ from_html("<div role=\"option\" aria-selected=\"false\" tabindex=\"-1\"><!> </div>"), root_9$19 = /* @__PURE__ */ from_html("<div class=\"combobox-dropdown-footer svelte-178p70i\"><!></div>"), root_10$16 = /* @__PURE__ */ from_html("<div class=\"combobox-dropdown svelte-178p70i\" role=\"listbox\"><!> <!> <!> <!> <!></div>"), root_11$14 = /* @__PURE__ */ from_html("<div role=\"alert\" class=\"field-error svelte-178p70i\"> </div>"), root_12$13 = /* @__PURE__ */ from_html("<div class=\"field-info svelte-178p70i\"> </div>"), root_13$11 = /* @__PURE__ */ from_html("<div><div><!> <!> <div class=\"combobox-input svelte-178p70i\"><!></div> <!></div> <!></div> <!> <!>", 1), $$css$174 = {
9093
9104
  hash: "svelte-178p70i",
9094
- code: ".field-error.svelte-178p70i {color:var(--field-error-color, #c5120a);font-size:var(--field-error-font-size, 12px);margin:var(--field-error-margin, 4px 0 0 0);}.field-info.svelte-178p70i {color:var(--field-info-color, #6b7280);font-size:var(--field-info-font-size, 12px);margin:var(--field-info-margin, 4px 0 0 0);}.combobox.svelte-178p70i {position:relative;width:var(--combobox-width, 100%);font-family:var(--combobox-font-family, inherit);font-size:var(--combobox-font-size, 14px);color:var(--combobox-color, #333333);}.combobox.disabled.svelte-178p70i {opacity:var(--combobox-disabled-opacity, 0.5);cursor:var(--combobox-disabled-cursor, not-allowed);pointer-events:none;}.combobox-input-wrapper.svelte-178p70i {display:flex;align-items:center;background:var(--combobox-input-background, #ffffff);border:var(--combobox-input-border, 1px solid #cccccc);border-radius:var(--combobox-input-border-radius, var(--radius, 4px));transition:var(--combobox-input-transition, border-color 0.15s, box-shadow 0.15s);}\n\n /* Multi-select control: pills wrap above the typeahead input. */.combobox-input-wrapper.multiple.svelte-178p70i {flex-wrap:wrap;gap:var(--combobox-pill-gap, 4px);padding:var(--combobox-multiple-padding, 4px 6px);cursor:text;}.combobox-input-wrapper.svelte-178p70i:hover {border-color:var(--combobox-input-hover-border-color, #999999);}.combobox-input-wrapper.svelte-178p70i:focus-within {border-color:var(--combobox-input-focus-border-color, #2563eb);box-shadow:var(--combobox-input-focus-shadow, 0 0 0 2px rgba(37, 99, 235, 0.2));}.combobox-input-prefix.svelte-178p70i {display:flex;align-items:center;padding-left:var(--combobox-input-prefix-padding, 8px);flex-shrink:0;}.combobox-input-suffix.svelte-178p70i {display:flex;align-items:center;padding-right:var(--combobox-input-suffix-padding, 8px);flex-shrink:0;}.combobox-input.svelte-178p70i {flex:1;min-width:0;--input-border: none;--input-focus-border: none;--input-box-shadow: none;--input-margin: 0;--input-width: 100%;--input-padding: var(--combobox-input-padding, 8px 12px);--input-background: transparent;--input-font-size: inherit;--input-font-family: inherit;--input-font-weight: inherit;--input-text-color: inherit;--input-radius: 0;}.combobox-input-wrapper.multiple.svelte-178p70i .combobox-input:where(.svelte-178p70i) {flex:1 1 60px;min-width:60px;--input-padding: var(--combobox-multiple-input-padding, 2px 4px);}.combobox-input.svelte-178p70i::placeholder {color:var(--combobox-placeholder-color, #999999);}.combobox-dropdown.svelte-178p70i {position:absolute;top:var(--combobox-dropdown-top, 100%);left:var(--combobox-dropdown-left, 0);right:var(--combobox-dropdown-right, 0);margin-top:var(--combobox-dropdown-gap, 4px);background:var(--combobox-dropdown-background, #ffffff);border:var(--combobox-dropdown-border, 1px solid #cccccc);border-radius:var(--combobox-dropdown-border-radius, var(--radius, 4px));box-shadow:var(--combobox-dropdown-shadow, 0 4px 12px rgba(0, 0, 0, 0.1));max-height:var(--combobox-dropdown-max-height, 200px);overflow-y:auto;z-index:var(--combobox-dropdown-z-index, 10);padding:var(--combobox-dropdown-padding, 0);}.combobox-option.svelte-178p70i {display:flex;align-items:center;gap:var(--combobox-option-gap, 8px);padding:var(--combobox-option-padding, 8px 12px);color:var(--combobox-option-color, #333333);font-size:var(--combobox-option-font-size, inherit);font-weight:var(--combobox-option-font-weight, inherit);cursor:pointer;transition:background var(--combobox-option-transition-duration, var(--motion-duration, 0.1s))\n var(--combobox-option-transition-easing, var(--motion-easing, ease));}.combobox-option.svelte-178p70i:hover,\n .combobox-option.highlighted.svelte-178p70i {background:var(--combobox-option-hover-background, #f0f0f0);color:var(--combobox-option-hover-color, var(--combobox-option-color, #333333));}.combobox-option.selected.svelte-178p70i {background:var(--combobox-option-selected-background, #e8f0fe);color:var(--combobox-option-selected-color, var(--combobox-option-color, #333333));font-weight:var(\n --combobox-option-selected-font-weight,\n var(--combobox-option-font-weight, inherit)\n );}.combobox-option.selected.highlighted.svelte-178p70i {background:var(\n --combobox-option-selected-hover-background,\n var(--combobox-option-selected-background, #e8f0fe)\n );}.combobox-option-disabled.svelte-178p70i {opacity:var(--combobox-option-disabled-opacity, 0.4);cursor:var(--combobox-option-disabled-cursor, not-allowed);pointer-events:none;}.combobox-create.svelte-178p70i {color:var(--combobox-create-color, #2563eb);}.combobox-action.svelte-178p70i {color:var(--combobox-action-color, #374151);}.combobox-option.with-divider.svelte-178p70i {border-top:var(--combobox-divider, 1px solid #e5e7eb);}.combobox-create-icon.svelte-178p70i,\n .combobox-action-icon.svelte-178p70i {display:inline-flex;align-items:center;flex-shrink:0;}.combobox-action-icon.svelte-178p70i svg {width:14px;height:14px;}.combobox-limit.svelte-178p70i {display:flex;align-items:center;gap:6px;padding:var(--combobox-limit-padding, 8px 12px);font-size:var(--combobox-limit-font-size, 13px);font-weight:500;color:var(--combobox-limit-color, #b45309);background:var(--combobox-limit-background, #fffbeb);}.combobox-dropdown-header.svelte-178p70i {border-bottom:var(--combobox-dropdown-header-border, none);padding:var(--combobox-dropdown-header-padding, 0);}.combobox-dropdown-footer.svelte-178p70i {border-top:var(--combobox-dropdown-footer-border, none);padding:var(--combobox-dropdown-footer-padding, 0);}.combobox-empty.svelte-178p70i {padding:var(--combobox-empty-padding, 8px 12px);color:var(--combobox-empty-color, #999999);font-style:var(--combobox-empty-font-style, italic);}"
9105
+ code: ".field-error.svelte-178p70i {color:var(--field-error-color, #c5120a);font-size:var(--field-error-font-size, 12px);margin:var(--field-error-margin, 4px 0 0 0);}.field-info.svelte-178p70i {color:var(--field-info-color, #6b7280);font-size:var(--field-info-font-size, 12px);margin:var(--field-info-margin, 4px 0 0 0);}.combobox.svelte-178p70i {position:relative;width:var(--combobox-width, 100%);font-family:var(--combobox-font-family, inherit);font-size:var(--combobox-font-size, 14px);color:var(--combobox-color, #333333);}.combobox.disabled.svelte-178p70i {opacity:var(--combobox-disabled-opacity, 0.5);cursor:var(--combobox-disabled-cursor, not-allowed);pointer-events:none;}.combobox-input-wrapper.svelte-178p70i {display:flex;align-items:center;background:var(--combobox-input-background, #ffffff);border:var(--combobox-input-border, 1px solid #cccccc);border-radius:var(--combobox-input-border-radius, var(--radius, 4px));transition:var(\n --combobox-input-transition,\n border-color\n var(\n --combobox-input-transition-duration,\n var(--duration-quick, var(--motion-duration, 0.15s))\n )\n var(--combobox-input-transition-easing, var(--motion-easing, ease)),\n box-shadow\n var(\n --combobox-input-transition-duration,\n var(--duration-quick, var(--motion-duration, 0.15s))\n )\n var(--combobox-input-transition-easing, var(--motion-easing, ease))\n );}\n\n /* Multi-select control: pills wrap above the typeahead input. */.combobox-input-wrapper.multiple.svelte-178p70i {flex-wrap:wrap;gap:var(--combobox-pill-gap, 4px);padding:var(--combobox-multiple-padding, 4px 6px);cursor:text;}.combobox-input-wrapper.svelte-178p70i:hover {border-color:var(--combobox-input-hover-border-color, #999999);}.combobox-input-wrapper.svelte-178p70i:focus-within {border-color:var(--combobox-input-focus-border-color, #2563eb);box-shadow:var(--combobox-input-focus-shadow, 0 0 0 2px rgba(37, 99, 235, 0.2));}.combobox-input-prefix.svelte-178p70i {display:flex;align-items:center;padding-left:var(--combobox-input-prefix-padding, 8px);flex-shrink:0;}.combobox-input-suffix.svelte-178p70i {display:flex;align-items:center;padding-right:var(--combobox-input-suffix-padding, 8px);flex-shrink:0;}.combobox-input.svelte-178p70i {flex:1;min-width:0;--input-border: none;--input-focus-border: none;--input-box-shadow: none;--input-margin: 0;--input-width: 100%;--input-padding: var(--combobox-input-padding, 8px 12px);--input-background: transparent;--input-font-size: inherit;--input-font-family: inherit;--input-font-weight: inherit;--input-text-color: inherit;--input-radius: 0;}.combobox-input-wrapper.multiple.svelte-178p70i .combobox-input:where(.svelte-178p70i) {flex:1 1 60px;min-width:60px;--input-padding: var(--combobox-multiple-input-padding, 2px 4px);}.combobox-input.svelte-178p70i::placeholder {color:var(--combobox-placeholder-color, #999999);}.combobox-dropdown.svelte-178p70i {position:absolute;top:var(--combobox-dropdown-top, 100%);left:var(--combobox-dropdown-left, 0);right:var(--combobox-dropdown-right, 0);margin-top:var(--combobox-dropdown-gap, 4px);background:var(--combobox-dropdown-background, #ffffff);border:var(--combobox-dropdown-border, 1px solid #cccccc);border-radius:var(--combobox-dropdown-border-radius, var(--radius, 4px));box-shadow:var(--combobox-dropdown-shadow, 0 4px 12px rgba(0, 0, 0, 0.1));max-height:var(--combobox-dropdown-max-height, 200px);overflow-y:auto;z-index:var(--combobox-dropdown-z-index, 10);padding:var(--combobox-dropdown-padding, 0);}.combobox-option.svelte-178p70i {display:flex;align-items:center;gap:var(--combobox-option-gap, 8px);padding:var(--combobox-option-padding, 8px 12px);color:var(--combobox-option-color, #333333);font-size:var(--combobox-option-font-size, inherit);font-weight:var(--combobox-option-font-weight, inherit);cursor:pointer;transition:background var(--combobox-option-transition-duration, var(--motion-duration, 0.1s))\n var(--combobox-option-transition-easing, var(--motion-easing, ease));}.combobox-option.svelte-178p70i:hover,\n .combobox-option.highlighted.svelte-178p70i {background:var(--combobox-option-hover-background, #f0f0f0);color:var(--combobox-option-hover-color, var(--combobox-option-color, #333333));}.combobox-option.selected.svelte-178p70i {background:var(--combobox-option-selected-background, #e8f0fe);color:var(--combobox-option-selected-color, var(--combobox-option-color, #333333));font-weight:var(\n --combobox-option-selected-font-weight,\n var(--combobox-option-font-weight, inherit)\n );}.combobox-option.selected.highlighted.svelte-178p70i {background:var(\n --combobox-option-selected-hover-background,\n var(--combobox-option-selected-background, #e8f0fe)\n );}.combobox-option-disabled.svelte-178p70i {opacity:var(--combobox-option-disabled-opacity, 0.4);cursor:var(--combobox-option-disabled-cursor, not-allowed);pointer-events:none;}.combobox-create.svelte-178p70i {color:var(--combobox-create-color, #2563eb);}.combobox-action.svelte-178p70i {color:var(--combobox-action-color, #374151);}.combobox-option.with-divider.svelte-178p70i {border-top:var(--combobox-divider, 1px solid #e5e7eb);}.combobox-create-icon.svelte-178p70i,\n .combobox-action-icon.svelte-178p70i {display:inline-flex;align-items:center;flex-shrink:0;}.combobox-action-icon.svelte-178p70i svg {width:14px;height:14px;}.combobox-limit.svelte-178p70i {display:flex;align-items:center;gap:6px;padding:var(--combobox-limit-padding, 8px 12px);font-size:var(--combobox-limit-font-size, 13px);font-weight:500;color:var(--combobox-limit-color, #b45309);background:var(--combobox-limit-background, #fffbeb);}.combobox-dropdown-header.svelte-178p70i {border-bottom:var(--combobox-dropdown-header-border, none);padding:var(--combobox-dropdown-header-padding, 0);}.combobox-dropdown-footer.svelte-178p70i {border-top:var(--combobox-dropdown-footer-border, none);padding:var(--combobox-dropdown-footer-padding, 0);}.combobox-empty.svelte-178p70i {padding:var(--combobox-empty-padding, 8px 12px);color:var(--combobox-empty-color, #999999);font-style:var(--combobox-empty-font-style, italic);}"
9095
9106
  };
9096
9107
  function Combobox(e, t) {
9097
9108
  let n = props_id();
@@ -10239,6 +10250,114 @@ customElements.define("sui-combobox", create_custom_element(Combobox_wc, {
10239
10250
  innerControlIsNotTheValue: !0
10240
10251
  })));
10241
10252
  //#endregion
10253
+ //#region node_modules/.pnpm/svelte@5.56.3_@typescript-eslint+types@8.60.1/node_modules/svelte/src/easing/index.js
10254
+ function linear$1(e) {
10255
+ return e;
10256
+ }
10257
+ function cubicOut(e) {
10258
+ let t = e - 1;
10259
+ return t * t * t + 1;
10260
+ }
10261
+ //#endregion
10262
+ //#region src/lib/reduced-motion.svelte.ts
10263
+ var query = typeof window < "u" && typeof window.matchMedia == "function" ? window.matchMedia("(prefers-reduced-motion: reduce)") : null, current = /* @__PURE__ */ state(proxy(query?.matches ?? !1));
10264
+ query?.addEventListener("change", (e) => {
10265
+ set(current, e.matches, !0);
10266
+ });
10267
+ var reducedMotion = { get current() {
10268
+ return get(current);
10269
+ } }, parseCssTime = (e) => {
10270
+ let t = e.trim();
10271
+ if (t.endsWith("ms")) {
10272
+ let e = Number.parseFloat(t);
10273
+ return Number.isFinite(e) ? e : null;
10274
+ }
10275
+ if (t.endsWith("s")) {
10276
+ let e = Number.parseFloat(t);
10277
+ return Number.isFinite(e) ? e * 1e3 : null;
10278
+ }
10279
+ return null;
10280
+ }, parseCssLength = (e) => {
10281
+ let t = e.trim();
10282
+ if (!t.endsWith("px")) return null;
10283
+ let n = Number.parseFloat(t);
10284
+ return Number.isFinite(n) ? n : null;
10285
+ }, CSS_KEYWORD_EASINGS = {
10286
+ ease: [
10287
+ .25,
10288
+ .1,
10289
+ .25,
10290
+ 1
10291
+ ],
10292
+ "ease-in": [
10293
+ .42,
10294
+ 0,
10295
+ 1,
10296
+ 1
10297
+ ],
10298
+ "ease-out": [
10299
+ 0,
10300
+ 0,
10301
+ .58,
10302
+ 1
10303
+ ],
10304
+ "ease-in-out": [
10305
+ .42,
10306
+ 0,
10307
+ .58,
10308
+ 1
10309
+ ]
10310
+ };
10311
+ function cubicBezierEasing(e, t, n, i) {
10312
+ let a = (e, t) => 1 - 3 * t + 3 * e, o = (e, t) => 3 * t - 6 * e, s = (e) => 3 * e, c = (e, t, n) => ((a(t, n) * e + o(t, n)) * e + s(t)) * e, l = (e, t, n) => 3 * a(t, n) * e * e + 2 * o(t, n) * e + s(t), u = (t) => {
10313
+ let i = t;
10314
+ for (let a = 0; a < 8; a += 1) {
10315
+ let a = l(i, e, n);
10316
+ if (Math.abs(a) < 1e-6) break;
10317
+ i -= (c(i, e, n) - t) / a;
10318
+ }
10319
+ return i;
10320
+ };
10321
+ return (e) => e <= 0 ? 0 : e >= 1 ? 1 : c(u(e), t, i);
10322
+ }
10323
+ var BEZIER_PATTERN = /^cubic-bezier\(\s*(-?[\d.]+)\s*,\s*(-?[\d.]+)\s*,\s*(-?[\d.]+)\s*,\s*(-?[\d.]+)\s*\)$/;
10324
+ function parseCssEasing(e) {
10325
+ let t = e.trim();
10326
+ if (t === "") return null;
10327
+ if (t === "linear") return (e) => e;
10328
+ let n = CSS_KEYWORD_EASINGS[t];
10329
+ if (n) return cubicBezierEasing(...n);
10330
+ let i = BEZIER_PATTERN.exec(t);
10331
+ if (!i) return null;
10332
+ let [a, o, s, c] = i.slice(1).map(Number.parseFloat);
10333
+ return a < 0 || a > 1 || s < 0 || s > 1 ? null : cubicBezierEasing(a, o, s, c);
10334
+ }
10335
+ var resolveToken = (e, t) => {
10336
+ for (let n of t) {
10337
+ let t = e.getPropertyValue(n).trim();
10338
+ if (t !== "") return t;
10339
+ }
10340
+ return null;
10341
+ };
10342
+ function tokenizedFly(e, t) {
10343
+ let n = getComputedStyle(e), i = resolveToken(n, t.durationTokens), a = (i === null ? null : parseCssTime(i)) ?? t.fallbackDuration, o = t.x ?? 0, s = t.y ?? 0;
10344
+ if (t.distanceTokens) {
10345
+ let e = resolveToken(n, t.distanceTokens), i = (e === null ? null : parseCssLength(e)) ?? t.fallbackDistance ?? Math.max(Math.abs(o), Math.abs(s)), a = Math.abs(i);
10346
+ o = o === 0 ? 0 : Math.sign(o) * a, s = s === 0 ? 0 : Math.sign(s) * a;
10347
+ }
10348
+ let c = t.easingTokens ? resolveToken(n, t.easingTokens) : null, l = (c === null ? null : parseCssEasing(c)) ?? t.easing ?? cubicOut;
10349
+ reducedMotion.current && (a = .001);
10350
+ let u = +n.opacity, f = n.transform === "none" ? "" : n.transform;
10351
+ return {
10352
+ duration: a,
10353
+ easing: l,
10354
+ css: (e) => `
10355
+ transform: ${f} translate(${(1 - e) * o}px, ${(1 - e) * s}px);
10356
+ opacity: ${u * e};
10357
+ `
10358
+ };
10359
+ }
10360
+ //#endregion
10242
10361
  //#region src/lib/assets/search.svg?raw
10243
10362
  var search_default = "<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"11\" cy=\"11\" r=\"8\"></circle>\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"></line>\n</svg>\n", root$90 = /* @__PURE__ */ from_html("<span class=\"command-menu-search-icon svelte-rk55q\"></span>"), root_1$80 = /* @__PURE__ */ from_html("<div class=\"command-menu-empty svelte-rk55q\"> </div>"), root_2$60 = /* @__PURE__ */ from_html("<div class=\"command-menu-group-heading svelte-rk55q\"> </div>"), root_3$52 = /* @__PURE__ */ from_html("<span class=\"command-menu-item-icon svelte-rk55q\"><!></span>"), root_4$43 = /* @__PURE__ */ from_html("<div class=\"command-menu-item-icon-img-wrapper svelte-rk55q\"><!></div>"), root_5$35 = /* @__PURE__ */ from_html("<kbd class=\"command-menu-kbd svelte-rk55q\"> </kbd>"), root_6$30 = /* @__PURE__ */ from_html("<span class=\"command-menu-item-shortcut svelte-rk55q\"></span>"), root_7$27 = /* @__PURE__ */ from_html("<button type=\"button\" role=\"option\" tabindex=\"-1\"><!> <span class=\"command-menu-item-label svelte-rk55q\"> </span> <!></button>"), root_8$22 = /* @__PURE__ */ from_html("<!> <!>", 1), root_9$18 = /* @__PURE__ */ from_html("<div role=\"dialog\" aria-modal=\"true\" aria-label=\"Command menu\" tabindex=\"-1\"><div class=\"command-menu-dialog svelte-rk55q\"><div class=\"command-menu-input-wrapper svelte-rk55q\"><!> <input type=\"text\" class=\"command-menu-input svelte-rk55q\" autocomplete=\"off\" spellcheck=\"false\" role=\"combobox\" aria-autocomplete=\"list\"/></div> <div class=\"command-menu-separator svelte-rk55q\"></div> <div class=\"command-menu-list svelte-rk55q\" role=\"listbox\"><!></div></div></div>"), $$css$172 = {
10244
10363
  hash: "svelte-rk55q",
@@ -10247,68 +10366,83 @@ var search_default = "<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentC
10247
10366
  function CommandMenu(e, t) {
10248
10367
  let n = props_id();
10249
10368
  push(t, !0), append_styles$1(e, $$css$172);
10250
- let i = prop(t, "items", 7), a = prop(t, "open", 15, !1), o = prop(t, "placeholder", 7, "Search commands..."), s = prop(t, "emptyText", 7, "No results found."), c = prop(t, "testId", 7), l = prop(t, "itemIcon", 7), u = prop(t, "searchIcon", 7), f = prop(t, "onselect", 7), p = prop(t, "onclose", 7), h = prop(t, "classes", 7), S = `command-menu-listbox-${n}`, C = /* @__PURE__ */ state(""), k = /* @__PURE__ */ state(0), R = /* @__PURE__ */ state(null), te = /* @__PURE__ */ state(null), ne = /* @__PURE__ */ state(null), re = null, G = /* @__PURE__ */ user_derived(() => {
10251
- if (get(C).trim() === "") return i();
10252
- let e = get(C).toLowerCase();
10369
+ let i = prop(t, "items", 7), a = prop(t, "open", 15, !1), o = prop(t, "placeholder", 7, "Search commands..."), s = prop(t, "emptyText", 7, "No results found."), c = prop(t, "testId", 7), l = prop(t, "itemIcon", 7), u = prop(t, "searchIcon", 7), f = prop(t, "onselect", 7), p = prop(t, "onclose", 7), h = prop(t, "classes", 7), S = `command-menu-listbox-${n}`, C = {
10370
+ y: 30,
10371
+ durationTokens: [
10372
+ "--command-menu-panel-transition-duration",
10373
+ "--duration-base",
10374
+ "--motion-duration"
10375
+ ],
10376
+ fallbackDuration: 200,
10377
+ distanceTokens: ["--command-menu-panel-transition-distance", "--distance-large"],
10378
+ fallbackDistance: 30,
10379
+ easingTokens: [
10380
+ "--command-menu-panel-transition-easing",
10381
+ "--ease-smooth-out",
10382
+ "--motion-easing"
10383
+ ]
10384
+ }, k = /* @__PURE__ */ state(""), R = /* @__PURE__ */ state(0), te = /* @__PURE__ */ state(null), ne = /* @__PURE__ */ state(null), re = /* @__PURE__ */ state(null), G = null, be = /* @__PURE__ */ user_derived(() => {
10385
+ if (get(k).trim() === "") return i();
10386
+ let e = get(k).toLowerCase();
10253
10387
  return i().filter((t) => t.label.toLowerCase().includes(e));
10254
- }), be = /* @__PURE__ */ user_derived(() => {
10388
+ }), Me = /* @__PURE__ */ user_derived(() => {
10255
10389
  let e = new SvelteMap();
10256
- for (let t of get(G)) {
10390
+ for (let t of get(be)) {
10257
10391
  let n = t.group ?? "";
10258
10392
  e.has(n) || e.set(n, []);
10259
10393
  let i = e.get(n);
10260
10394
  Array.isArray(i) && i.push(t);
10261
10395
  }
10262
10396
  return e;
10263
- }), Me = /* @__PURE__ */ user_derived(() => {
10397
+ }), Re = /* @__PURE__ */ user_derived(() => {
10264
10398
  let e = [];
10265
- for (let [, t] of get(be)) for (let n of t) e.push(n);
10399
+ for (let [, t] of get(Me)) for (let n of t) e.push(n);
10266
10400
  return e;
10267
- }), Re = /* @__PURE__ */ user_derived(() => {
10401
+ }), Ue = /* @__PURE__ */ user_derived(() => {
10268
10402
  let e = new SvelteMap();
10269
- for (let t = 0; t < get(Me).length; t++) {
10270
- let n = get(Me).at(t);
10403
+ for (let t = 0; t < get(Re).length; t++) {
10404
+ let n = get(Re).at(t);
10271
10405
  typeof n == "object" && e.set(n.value, t);
10272
10406
  }
10273
10407
  return e;
10274
- }), Ue = /* @__PURE__ */ user_derived(() => get(Me).length > 0 ? `command-menu-option-${n}-${get(k)}` : null);
10275
- function it() {
10276
- a(!1), set(C, ""), set(k, 0), p()?.();
10408
+ }), it = /* @__PURE__ */ user_derived(() => get(Re).length > 0 ? `command-menu-option-${n}-${get(R)}` : null);
10409
+ function at() {
10410
+ a() && (a(!1), set(k, ""), set(R, 0), p()?.());
10277
10411
  }
10278
- function at(e) {
10279
- e.disabled || (f()?.(e), it());
10412
+ function ot(e) {
10413
+ !a() || e.disabled || (f()?.(e), at());
10280
10414
  }
10281
- function ot(e, t) {
10415
+ function ct(e, t) {
10282
10416
  let n = e + t;
10283
- for (; n >= 0 && n < get(Me).length;) {
10284
- let e = get(Me).at(n);
10417
+ for (; n >= 0 && n < get(Re).length;) {
10418
+ let e = get(Re).at(n);
10285
10419
  if (typeof e == "object" && !e.disabled) return n;
10286
10420
  n += t;
10287
10421
  }
10288
10422
  return -1;
10289
10423
  }
10290
- function ct(e) {
10424
+ function lt(e) {
10291
10425
  if (a()) switch (e.key) {
10292
10426
  case "ArrowDown": {
10293
10427
  e.preventDefault();
10294
- let t = ot(get(k), 1);
10295
- t >= 0 && (set(k, t, !0), ut());
10428
+ let t = ct(get(R), 1);
10429
+ t >= 0 && (set(R, t, !0), dt());
10296
10430
  break;
10297
10431
  }
10298
10432
  case "ArrowUp": {
10299
10433
  e.preventDefault();
10300
- let t = ot(get(k), -1);
10301
- t >= 0 && (set(k, t, !0), ut());
10434
+ let t = ct(get(R), -1);
10435
+ t >= 0 && (set(R, t, !0), dt());
10302
10436
  break;
10303
10437
  }
10304
10438
  case "Enter": {
10305
10439
  e.preventDefault();
10306
- let t = get(Me).at(get(k));
10307
- typeof t == "object" && !t.disabled && at(t);
10440
+ let t = get(Re).at(get(R));
10441
+ typeof t == "object" && !t.disabled && ot(t);
10308
10442
  break;
10309
10443
  }
10310
10444
  case "Tab": {
10311
- let t = lt();
10445
+ let t = ut();
10312
10446
  if (t.length === 0) break;
10313
10447
  e.preventDefault();
10314
10448
  let n = getActiveElement(t[0] ?? null), i = ((n instanceof HTMLElement ? t.indexOf(n) : -1) + (e.shiftKey ? -1 : 1) + t.length) % t.length;
@@ -10317,40 +10451,40 @@ function CommandMenu(e, t) {
10317
10451
  }
10318
10452
  }
10319
10453
  }
10320
- function lt() {
10321
- return get(ne) === null ? [] : [...get(ne).querySelectorAll("a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]")].filter((e) => e.getAttribute("tabindex") !== "-1" && (e.offsetParent !== null || e === getActiveElement(e)));
10454
+ function ut() {
10455
+ return get(re) === null ? [] : [...get(re).querySelectorAll("a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]")].filter((e) => e.getAttribute("tabindex") !== "-1" && (e.offsetParent !== null || e === getActiveElement(e)));
10322
10456
  }
10323
- async function ut() {
10324
- if (await tick(), get(te) !== null) {
10325
- let e = get(te).querySelector("[data-active=\"true\"]");
10457
+ async function dt() {
10458
+ if (await tick(), get(ne) !== null) {
10459
+ let e = get(ne).querySelector("[data-active=\"true\"]");
10326
10460
  e !== null && e.scrollIntoView({ block: "nearest" });
10327
10461
  }
10328
10462
  }
10329
- function dt(e) {
10330
- e.target === e.currentTarget && it();
10331
- }
10332
10463
  function ft(e) {
10333
- (e.metaKey || e.ctrlKey) && e.key === "k" && (e.preventDefault(), a() ? it() : a(!0));
10464
+ e.target === e.currentTarget && at();
10334
10465
  }
10335
10466
  function pt(e) {
10467
+ (e.metaKey || e.ctrlKey) && e.key === "k" && (e.preventDefault(), a() ? at() : a(!0));
10468
+ }
10469
+ function mt(e) {
10336
10470
  let t = getActiveElement(e);
10337
- re === null && t instanceof HTMLElement && (re = t), lockBodyScroll();
10471
+ G === null && t instanceof HTMLElement && (G = t), lockBodyScroll();
10338
10472
  let n = registerDismissible({
10339
- element: () => get(ne),
10340
- onEscape: it
10473
+ element: () => get(re),
10474
+ onEscape: at
10341
10475
  });
10342
10476
  return tick().then(() => {
10343
- get(R) !== null && get(R).focus();
10477
+ get(te) !== null && get(te).focus();
10344
10478
  }), { destroy() {
10345
- n(), unlockBodyScroll(), re !== null && (re.focus(), re = null);
10479
+ n(), unlockBodyScroll(), G !== null && (G.focus(), G = null);
10346
10480
  } };
10347
10481
  }
10348
10482
  onMount(() => {
10349
- window.addEventListener("keydown", ft);
10483
+ window.addEventListener("keydown", pt);
10350
10484
  }), onDestroy(() => {
10351
- typeof window < "u" && window.removeEventListener("keydown", ft);
10485
+ typeof window < "u" && window.removeEventListener("keydown", pt);
10352
10486
  });
10353
- var mt = {
10487
+ var ht = {
10354
10488
  get items() {
10355
10489
  return i();
10356
10490
  },
@@ -10411,25 +10545,25 @@ function CommandMenu(e, t) {
10411
10545
  set classes(e) {
10412
10546
  h(e), flushSync();
10413
10547
  }
10414
- }, ht = comment(), gt = first_child(ht), _t = (e) => {
10415
- var t = root_9$18(), i = child(t), a = child(i), f = child(a), p = (e) => {
10548
+ }, gt = comment(), _t = first_child(gt), vt = (e) => {
10549
+ var t = root_9$18(), i = child(t), f = child(i), p = child(f), G = (e) => {
10416
10550
  var t = comment();
10417
10551
  snippet(first_child(t), u), append(e, t);
10418
- }, re = (e) => {
10552
+ }, be = (e) => {
10419
10553
  var t = root$90();
10420
10554
  html(t, () => search_default, !0), reset(t), append(e, t);
10421
10555
  };
10422
- if_block(f, (e) => {
10423
- typeof u() == "function" ? e(p) : e(re, -1);
10556
+ if_block(p, (e) => {
10557
+ typeof u() == "function" ? e(G) : e(be, -1);
10424
10558
  });
10425
- var G = sibling(f, 2);
10426
- remove_input_defaults(G), bind_this(G, (e) => set(R, e), () => get(R)), reset(a);
10427
- var it = sibling(a, 4), ot = child(it), lt = (e) => {
10559
+ var at = sibling(p, 2);
10560
+ remove_input_defaults(at), bind_this(at, (e) => set(te, e), () => get(te)), reset(f);
10561
+ var ct = sibling(f, 4), ut = child(ct), dt = (e) => {
10428
10562
  var t = root_1$80(), n = child(t, !0);
10429
10563
  reset(t), template_effect(() => set_text(n, s())), append(e, t);
10430
- }, ut = (e) => {
10564
+ }, pt = (e) => {
10431
10565
  var t = comment();
10432
- each(first_child(t), 17, () => get(be), ([e, t]) => e, (e, t) => {
10566
+ each(first_child(t), 17, () => get(Me), ([e, t]) => e, (e, t) => {
10433
10567
  var i = /* @__PURE__ */ user_derived(() => to_array(get(t), 2));
10434
10568
  let a = () => get(i)[0], o = () => get(i)[1];
10435
10569
  var s = root_8$22(), u = first_child(s), f = (e) => {
@@ -10439,7 +10573,7 @@ function CommandMenu(e, t) {
10439
10573
  if_block(u, (e) => {
10440
10574
  a() !== "" && e(f);
10441
10575
  }), each(sibling(u, 2), 17, o, (e) => e.value, (e, t) => {
10442
- let i = /* @__PURE__ */ user_derived(() => get(Re).get(get(t).value) ?? -1);
10576
+ let i = /* @__PURE__ */ user_derived(() => get(Ue).get(get(t).value) ?? -1);
10443
10577
  var a = root_7$27();
10444
10578
  let o;
10445
10579
  var s = child(a), u = (e) => {
@@ -10471,26 +10605,26 @@ function CommandMenu(e, t) {
10471
10605
  typeof get(t).shortcut == "string" && get(t).shortcut.length > 0 && e(C);
10472
10606
  }), reset(a), template_effect(() => {
10473
10607
  set_attribute(a, "id", `command-menu-option-${n}-${get(i)}`), o = set_class(a, 1, "command-menu-item svelte-rk55q", null, o, {
10474
- active: get(i) === get(k),
10608
+ active: get(i) === get(R),
10475
10609
  disabled: get(t).disabled
10476
- }), set_attribute(a, "data-active", get(i) === get(k)), set_attribute(a, "aria-selected", get(i) === get(k)), set_attribute(a, "aria-disabled", get(t).disabled), set_attribute(a, "data-pw", typeof c() == "string" ? `${c()}-item-${get(t).value}` : null), set_attribute(a, "testid", typeof c() == "string" ? `${c()}-item-${get(t).value}` : null), set_text(h, get(t).label);
10477
- }), delegated("click", a, () => at(get(t))), event("mouseenter", a, () => {
10478
- get(t).disabled || set(k, get(i), !0);
10610
+ }), set_attribute(a, "data-active", get(i) === get(R)), set_attribute(a, "aria-selected", get(i) === get(R)), set_attribute(a, "aria-disabled", get(t).disabled), set_attribute(a, "data-pw", typeof c() == "string" ? `${c()}-item-${get(t).value}` : null), set_attribute(a, "testid", typeof c() == "string" ? `${c()}-item-${get(t).value}` : null), set_text(h, get(t).label);
10611
+ }), delegated("click", a, () => ot(get(t))), event("mouseenter", a, () => {
10612
+ get(t).disabled || set(R, get(i), !0);
10479
10613
  }), append(e, a);
10480
10614
  }), append(e, s);
10481
10615
  }), append(e, t);
10482
10616
  };
10483
- if_block(ot, (e) => {
10484
- get(Me).length === 0 ? e(lt) : e(ut, -1);
10485
- }), reset(it), bind_this(it, (e) => set(te, e), () => get(te)), reset(i), bind_this(i, (e) => set(ne, e), () => get(ne)), reset(t), action(t, (e) => pt?.(e)), template_effect(() => {
10486
- set_class(t, 1, `command-menu-overlay ${h() ?? "" ?? ""}`, "svelte-rk55q"), set_attribute(t, "data-pw", typeof c() == "string" ? c() : null), set_attribute(t, "testid", typeof c() == "string" ? c() : null), set_attribute(G, "placeholder", o()), set_attribute(G, "aria-expanded", get(Me).length > 0), set_attribute(G, "aria-controls", S), set_attribute(G, "aria-activedescendant", get(Ue)), set_attribute(G, "data-pw", typeof c() == "string" ? `${c()}-input` : null), set_attribute(G, "testid", typeof c() == "string" ? `${c()}-input` : null), set_attribute(it, "id", S);
10487
- }), delegated("click", t, dt), delegated("keydown", t, ct), delegated("input", G, () => {
10488
- set(k, 0);
10489
- }), bind_value(G, () => get(C), (e) => set(C, e)), append(e, t);
10617
+ if_block(ut, (e) => {
10618
+ get(Re).length === 0 ? e(dt) : e(pt, -1);
10619
+ }), reset(ct), bind_this(ct, (e) => set(ne, e), () => get(ne)), reset(i), bind_this(i, (e) => set(re, e), () => get(re)), reset(t), action(t, (e) => mt?.(e)), template_effect(() => {
10620
+ set_class(t, 1, `command-menu-overlay ${h() ?? "" ?? ""}`, "svelte-rk55q"), t.inert = !a(), set_attribute(t, "data-pw", typeof c() == "string" ? c() : null), set_attribute(t, "testid", typeof c() == "string" ? c() : null), i.inert = !a(), set_attribute(at, "placeholder", o()), set_attribute(at, "aria-expanded", get(Re).length > 0), set_attribute(at, "aria-controls", S), set_attribute(at, "aria-activedescendant", get(it)), set_attribute(at, "data-pw", typeof c() == "string" ? `${c()}-input` : null), set_attribute(at, "testid", typeof c() == "string" ? `${c()}-input` : null), set_attribute(ct, "id", S);
10621
+ }), delegated("click", t, ft), delegated("keydown", t, lt), delegated("input", at, () => {
10622
+ set(R, 0);
10623
+ }), bind_value(at, () => get(k), (e) => set(k, e)), transition(1, i, () => tokenizedFly, () => C), transition(2, i, () => tokenizedFly, () => C), append(e, t);
10490
10624
  };
10491
- return if_block(gt, (e) => {
10492
- a() && e(_t);
10493
- }), append(e, ht), pop(mt);
10625
+ return if_block(_t, (e) => {
10626
+ a() && e(vt);
10627
+ }), append(e, gt), pop(ht);
10494
10628
  }
10495
10629
  delegate([
10496
10630
  "click",
@@ -10562,7 +10696,7 @@ customElements.define("sui-command-menu", create_custom_element(CommandMenu_wc,
10562
10696
  //#region src/lib/Gauge/Gauge.svelte
10563
10697
  var root$88 = /* @__PURE__ */ from_html("<div class=\"label svelte-ms0oc6\"><!></div>"), root_1$79 = /* @__PURE__ */ from_html("<div role=\"progressbar\"><svg class=\"svelte-ms0oc6\"><circle class=\"track svelte-ms0oc6\" fill=\"none\"></circle><circle class=\"bar svelte-ms0oc6\" fill=\"none\" stroke-linecap=\"round\"></circle></svg> <!></div>"), $$css$170 = {
10564
10698
  hash: "svelte-ms0oc6",
10565
- code: ".gauge.svelte-ms0oc6 {position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--gauge-size, 120px);height:var(--gauge-size, 120px);}svg.svelte-ms0oc6 {display:block;width:100%;height:100%;}.track.svelte-ms0oc6 {stroke:var(--gauge-track-color, #e0e0e0);stroke-width:var(--gauge-stroke-width, 8);}.bar.svelte-ms0oc6 {stroke:var(--gauge-bar-color, #2196f3);stroke-width:var(--gauge-stroke-width, 8);transition:stroke-dashoffset var(--gauge-transition-duration, 0.3s) ease;}.label.svelte-ms0oc6 {position:absolute;font-size:var(--gauge-label-font-size, 24px);font-weight:var(--gauge-label-font-weight, 600);font-family:var(--gauge-label-font-family, inherit);color:var(--gauge-label-color, #333);}"
10699
+ code: ".gauge.svelte-ms0oc6 {position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--gauge-size, 120px);height:var(--gauge-size, 120px);}svg.svelte-ms0oc6 {display:block;width:100%;height:100%;}.track.svelte-ms0oc6 {stroke:var(--gauge-track-color, #e0e0e0);stroke-width:var(--gauge-stroke-width, 8);}.bar.svelte-ms0oc6 {stroke:var(--gauge-bar-color, #2196f3);stroke-width:var(--gauge-stroke-width, 8);transition:stroke-dashoffset var(--gauge-transition-duration, var(--motion-duration, 0.3s))\n var(--gauge-transition-easing, var(--motion-easing, ease));}.label.svelte-ms0oc6 {position:absolute;font-size:var(--gauge-label-font-size, 24px);font-weight:var(--gauge-label-font-weight, 600);font-family:var(--gauge-label-font-family, inherit);color:var(--gauge-label-color, #333);}"
10566
10700
  };
10567
10701
  function Gauge(e, t) {
10568
10702
  push(t, !0), append_styles$1(e, $$css$170);
@@ -11798,7 +11932,7 @@ customElements.define("sui-loading-dots", create_custom_element(LoadingDots_wc,
11798
11932
  //#region src/lib/Pagination/Pagination.svelte
11799
11933
  var root$81 = /* @__PURE__ */ from_html("<span class=\"ellipsis svelte-1sajc2w\">&#8230;</span>"), root_1$73 = /* @__PURE__ */ from_html("<button> </button>"), root_2$56 = /* @__PURE__ */ from_html("<button class=\"page-button load-more-button svelte-1sajc2w\" aria-label=\"Load more\">&#8250;</button>"), root_3$50 = /* @__PURE__ */ from_html("<button class=\"page-button next-button svelte-1sajc2w\" aria-label=\"Next page\">&#8250;</button>"), root_4$42 = /* @__PURE__ */ from_html("<nav><button class=\"page-button prev-button svelte-1sajc2w\" aria-label=\"Previous page\">&#8249;</button> <!> <!></nav>"), $$css$153 = {
11800
11934
  hash: "svelte-1sajc2w",
11801
- code: ".pagination.svelte-1sajc2w {display:var(--pagination-display, flex);gap:var(--pagination-gap, 4px);align-items:var(--pagination-align-items, center);}.pagination.disabled.svelte-1sajc2w {opacity:var(--pagination-disabled-opacity, 0.5);cursor:var(--pagination-disabled-cursor, not-allowed);}.page-button.svelte-1sajc2w {padding:var(--pagination-button-padding, 6px 10px);font-size:var(--pagination-button-font-size, 14px);font-weight:var(--pagination-button-font-weight, 400);font-family:var(--pagination-button-font-family, inherit);\n /* Base state (and .load-more-button below) pairs its text with a\n transparent background, not one of its own -- same shape as the table\n title bug. A hardcoded literal here doesn't track a dark ambient\n surface, so prev/next/page buttons went unreadable on a themed dark\n page even though .active and :hover are safe (each pairs its colour\n with its own opaque background). Inheriting keeps it tied to whatever\n text colour the surrounding surface already resolved to. */color:var(--pagination-button-color, inherit);background:var(--pagination-button-background, transparent);border:var(--pagination-button-border, 1px solid #d1d5db);border-radius:var(--pagination-button-border-radius, var(--radius, 4px));cursor:var(--pagination-button-cursor, pointer);min-width:var(--pagination-button-min-width, 36px);height:var(--pagination-button-height, 36px);display:flex;align-items:center;justify-content:center;transition:var(--pagination-transition, background 0.15s ease, color 0.15s ease);}.page-button.svelte-1sajc2w:hover:not(:disabled):not(.active) {color:var(--pagination-button-hover-color, #111827);background:var(--pagination-button-hover-background, #f3f4f6);}.page-button.active.svelte-1sajc2w {color:var(--pagination-active-color, #ffffff);background:var(--pagination-active-background, #3a4550);border:var(--pagination-active-border, 1px solid #3a4550);font-weight:var(--pagination-active-font-weight, 600);}.load-more-button.svelte-1sajc2w {width:var(--pagination-load-more-width, auto);padding:var(--pagination-load-more-padding, 6px 14px);color:var(--pagination-load-more-color, inherit);background:var(--pagination-load-more-background, transparent);border-color:var(--pagination-load-more-border-color, #d1d5db);}.load-more-button.svelte-1sajc2w:hover:not(:disabled) {color:var(--pagination-load-more-hover-color, #111827);background:var(--pagination-load-more-hover-background, #f3f4f6);}.page-button.svelte-1sajc2w:disabled {opacity:var(--pagination-disabled-opacity, 0.5);cursor:var(--pagination-disabled-cursor, not-allowed);}.pagination.disabled.svelte-1sajc2w .page-button:where(.svelte-1sajc2w) {opacity:1;}.ellipsis.svelte-1sajc2w {color:var(--pagination-ellipsis-color, #6b7280);font-size:var(--pagination-ellipsis-font-size, 14px);min-width:var(--pagination-button-min-width, 36px);height:var(--pagination-button-height, 36px);display:flex;align-items:center;justify-content:center;}"
11935
+ code: ".pagination.svelte-1sajc2w {display:var(--pagination-display, flex);gap:var(--pagination-gap, 4px);align-items:var(--pagination-align-items, center);}.pagination.disabled.svelte-1sajc2w {opacity:var(--pagination-disabled-opacity, 0.5);cursor:var(--pagination-disabled-cursor, not-allowed);}.page-button.svelte-1sajc2w {padding:var(--pagination-button-padding, 6px 10px);font-size:var(--pagination-button-font-size, 14px);font-weight:var(--pagination-button-font-weight, 400);font-family:var(--pagination-button-font-family, inherit);\n /* Base state (and .load-more-button below) pairs its text with a\n transparent background, not one of its own -- same shape as the table\n title bug. A hardcoded literal here doesn't track a dark ambient\n surface, so prev/next/page buttons went unreadable on a themed dark\n page even though .active and :hover are safe (each pairs its colour\n with its own opaque background). Inheriting keeps it tied to whatever\n text colour the surrounding surface already resolved to. */color:var(--pagination-button-color, inherit);background:var(--pagination-button-background, transparent);border:var(--pagination-button-border, 1px solid #d1d5db);border-radius:var(--pagination-button-border-radius, var(--radius, 4px));cursor:var(--pagination-button-cursor, pointer);min-width:var(--pagination-button-min-width, 36px);height:var(--pagination-button-height, 36px);display:flex;align-items:center;justify-content:center;transition:var(\n --pagination-transition,\n background\n var(--pagination-transition-duration, var(--duration-quick, var(--motion-duration, 0.15s)))\n var(--pagination-transition-easing, var(--motion-easing, ease)),\n color\n var(--pagination-transition-duration, var(--duration-quick, var(--motion-duration, 0.15s)))\n var(--pagination-transition-easing, var(--motion-easing, ease))\n );}.page-button.svelte-1sajc2w:hover:not(:disabled):not(.active) {color:var(--pagination-button-hover-color, #111827);background:var(--pagination-button-hover-background, #f3f4f6);}.page-button.active.svelte-1sajc2w {color:var(--pagination-active-color, #ffffff);background:var(--pagination-active-background, #3a4550);border:var(--pagination-active-border, 1px solid #3a4550);font-weight:var(--pagination-active-font-weight, 600);}.load-more-button.svelte-1sajc2w {width:var(--pagination-load-more-width, auto);padding:var(--pagination-load-more-padding, 6px 14px);color:var(--pagination-load-more-color, inherit);background:var(--pagination-load-more-background, transparent);border-color:var(--pagination-load-more-border-color, #d1d5db);}.load-more-button.svelte-1sajc2w:hover:not(:disabled) {color:var(--pagination-load-more-hover-color, #111827);background:var(--pagination-load-more-hover-background, #f3f4f6);}.page-button.svelte-1sajc2w:disabled {opacity:var(--pagination-disabled-opacity, 0.5);cursor:var(--pagination-disabled-cursor, not-allowed);}.pagination.disabled.svelte-1sajc2w .page-button:where(.svelte-1sajc2w) {opacity:1;}.ellipsis.svelte-1sajc2w {color:var(--pagination-ellipsis-color, #6b7280);font-size:var(--pagination-ellipsis-font-size, 14px);min-width:var(--pagination-button-min-width, 36px);height:var(--pagination-button-height, 36px);display:flex;align-items:center;justify-content:center;}"
11802
11936
  };
11803
11937
  function Pagination(e, t) {
11804
11938
  push(t, !0), append_styles$1(e, $$css$153);
@@ -12238,7 +12372,7 @@ customElements.define("sui-progress", create_custom_element(Progress_wc, {
12238
12372
  //#region src/lib/Radio/Radio.svelte
12239
12373
  var root$79 = /* @__PURE__ */ from_html("<span> </span>"), root_1$71 = /* @__PURE__ */ from_html("<div role=\"alert\" class=\"field-error svelte-14bh706\"> </div>"), root_2$55 = /* @__PURE__ */ from_html("<div class=\"field-info svelte-14bh706\"> </div>"), root_3$49 = /* @__PURE__ */ from_html("<label><input type=\"radio\" class=\"radio-input svelte-14bh706\"/> <span><span></span></span> <!></label> <!> <!>", 1), $$css$148 = {
12240
12374
  hash: "svelte-14bh706",
12241
- code: ".radio-container.svelte-14bh706 {display:var(--radio-container-display, inline-flex);align-items:var(--radio-container-align-items, center);gap:var(--radio-container-gap, 8px);cursor:var(--radio-container-cursor, pointer);opacity:var(--radio-container-opacity, 1);}.radio-container.disabled.svelte-14bh706 {cursor:not-allowed;}.radio-input.svelte-14bh706 {position:absolute;opacity:0;width:0;height:0;margin:0;pointer-events:none;}.radio-indicator.svelte-14bh706 {display:inline-flex;align-items:center;justify-content:center;width:var(--radio-size, 20px);height:var(--radio-size, 20px);border:var(--radio-border, 2px solid #9e9e9e);border-radius:var(--radio-border-radius, 50%);background-color:var(--radio-background, #ffffff);transition:var(--radio-transition, 0.2s);box-sizing:border-box;flex-shrink:0;}.radio-indicator.checked.svelte-14bh706 {border:var(--radio-selected-border, 2px solid #2196f3);background-color:var(--radio-selected-background, #ffffff);}.radio-indicator.disabled.svelte-14bh706 {border:var(--radio-disabled-border, 2px solid #cccccc);background-color:var(--radio-disabled-background, #f5f5f5);}.radio-container.svelte-14bh706:not(.disabled):hover .radio-indicator:where(.svelte-14bh706):not(.checked) {border:var(--radio-hover-border, 2px solid #2196f3);}.radio-input.svelte-14bh706:focus-visible + .radio-indicator:where(.svelte-14bh706) {box-shadow:var(--radio-focus-shadow, 0 0 0 3px rgba(33, 150, 243, 0.3));}.radio-dot.svelte-14bh706 {width:0;height:0;border-radius:var(--radio-dot-border-radius, 50%);background-color:var(--radio-dot-color, #2196f3);transition:var(--radio-transition, 0.2s);}.radio-dot.checked.svelte-14bh706 {width:var(--radio-dot-size, 10px);height:var(--radio-dot-size, 10px);}.radio-dot.checked.disabled.svelte-14bh706 {background-color:var(--radio-disabled-dot-color, #cccccc);}.radio-text.svelte-14bh706 {font-size:var(--radio-text-font-size, 14px);font-weight:var(--radio-text-font-weight, 400);color:var(--radio-text-color, #333333);}.radio-text.disabled.svelte-14bh706 {color:var(--radio-disabled-text-color, #999999);}.field-error.svelte-14bh706 {color:var(--field-error-color, #c5120a);font-size:var(--field-error-font-size, 12px);margin:var(--field-error-margin, 4px 0 0 0);}.field-info.svelte-14bh706 {color:var(--field-info-color, #6b7280);font-size:var(--field-info-font-size, 12px);margin:var(--field-info-margin, 4px 0 0 0);}"
12375
+ code: ".radio-container.svelte-14bh706 {display:var(--radio-container-display, inline-flex);align-items:var(--radio-container-align-items, center);gap:var(--radio-container-gap, 8px);cursor:var(--radio-container-cursor, pointer);opacity:var(--radio-container-opacity, 1);}.radio-container.disabled.svelte-14bh706 {cursor:not-allowed;}.radio-input.svelte-14bh706 {position:absolute;opacity:0;width:0;height:0;margin:0;pointer-events:none;}.radio-indicator.svelte-14bh706 {display:inline-flex;align-items:center;justify-content:center;width:var(--radio-size, 20px);height:var(--radio-size, 20px);border:var(--radio-border, 2px solid #9e9e9e);border-radius:var(--radio-border-radius, 50%);background-color:var(--radio-background, #ffffff);\n /* --radio-transition wraps the WHOLE value, not just the duration -- see the\n matching comment on Checkbox's .box rule for why appending a separate\n easing term after it (the prior shape here) breaks a consumer override\n that already includes its own timing function. */transition:var(\n --radio-transition,\n var(--radio-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--radio-transition-easing, var(--motion-easing, ease))\n );box-sizing:border-box;flex-shrink:0;}.radio-indicator.checked.svelte-14bh706 {border:var(--radio-selected-border, 2px solid #2196f3);background-color:var(--radio-selected-background, #ffffff);}.radio-indicator.disabled.svelte-14bh706 {border:var(--radio-disabled-border, 2px solid #cccccc);background-color:var(--radio-disabled-background, #f5f5f5);}.radio-container.svelte-14bh706:not(.disabled):hover .radio-indicator:where(.svelte-14bh706):not(.checked) {border:var(--radio-hover-border, 2px solid #2196f3);}.radio-input.svelte-14bh706:focus-visible + .radio-indicator:where(.svelte-14bh706) {box-shadow:var(--radio-focus-shadow, 0 0 0 3px rgba(33, 150, 243, 0.3));}.radio-dot.svelte-14bh706 {width:0;height:0;border-radius:var(--radio-dot-border-radius, 50%);background-color:var(--radio-dot-color, #2196f3);transition:var(\n --radio-transition,\n var(--radio-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--radio-transition-easing, var(--motion-easing, ease))\n );}.radio-dot.checked.svelte-14bh706 {width:var(--radio-dot-size, 10px);height:var(--radio-dot-size, 10px);}.radio-dot.checked.disabled.svelte-14bh706 {background-color:var(--radio-disabled-dot-color, #cccccc);}.radio-text.svelte-14bh706 {font-size:var(--radio-text-font-size, 14px);font-weight:var(--radio-text-font-weight, 400);color:var(--radio-text-color, #333333);}.radio-text.disabled.svelte-14bh706 {color:var(--radio-disabled-text-color, #999999);}.field-error.svelte-14bh706 {color:var(--field-error-color, #c5120a);font-size:var(--field-error-font-size, 12px);margin:var(--field-error-margin, 4px 0 0 0);}.field-info.svelte-14bh706 {color:var(--field-info-color, #6b7280);font-size:var(--field-info-font-size, 12px);margin:var(--field-info-margin, 4px 0 0 0);}"
12242
12376
  };
12243
12377
  function Radio(e, t) {
12244
12378
  let n = props_id();
@@ -12537,7 +12671,7 @@ create_custom_element(PortalContentRenderer, { snippet: {} }, [], [], { mode: "o
12537
12671
  //#region src/lib/Tooltip/Tooltip.svelte
12538
12672
  var root_1$70 = /* @__PURE__ */ from_html("<span class=\"tooltip-icon svelte-1xxu8em\" aria-hidden=\"true\"><!></span>"), root_2$54 = /* @__PURE__ */ from_html("<span class=\"tooltip-text svelte-1xxu8em\"> </span>"), root_3$48 = /* @__PURE__ */ from_html("<div role=\"tooltip\"><div class=\"tooltip-arrow svelte-1xxu8em\"></div> <!></div>"), root_4$41 = /* @__PURE__ */ from_html("<div role=\"none\"><!> <!> <!> <!></div>"), $$css$146 = {
12539
12673
  hash: "svelte-1xxu8em",
12540
- code: ".tooltip-container.svelte-1xxu8em {position:relative;display:var(--tooltip-container-display, inline-flex);}.tooltip-icon.svelte-1xxu8em {display:contents;color:var(--tooltip-icon-color, currentColor);}.tooltip-bubble.svelte-1xxu8em {position:absolute;z-index:var(--tooltip-z-index, 1000);max-width:var(--tooltip-max-width, 200px);background:var(--tooltip-background, #333333);color:var(--tooltip-color, #ffffff);font-size:var(--tooltip-font-size, 12px);font-weight:var(--tooltip-font-weight, 400);font-family:var(--tooltip-font-family, inherit);padding:var(--tooltip-padding, 6px 10px);border-radius:var(--tooltip-border-radius, var(--radius, 4px));border:var(--tooltip-border, none);box-shadow:var(--tooltip-box-shadow, 0 2px 6px rgba(0, 0, 0, 0.15));white-space:normal;word-wrap:break-word;pointer-events:none;opacity:1;transition:opacity var(--tooltip-opacity-duration, 0.15s) ease-in-out;}.tooltip-arrow.svelte-1xxu8em {position:absolute;width:0;height:0;border-style:solid;}\n\n /* Top position. --tooltip-shift is the viewport-edge clamp: the bubble slides\n along its cross axis to stay on screen while the arrow compensates the other\n way so it keeps pointing at the trigger. */.top.svelte-1xxu8em {bottom:calc(100% + var(--tooltip-offset, 8px));left:50%;transform:translateX(calc(-50% + var(--tooltip-shift, 0px)));}.top.svelte-1xxu8em .tooltip-arrow:where(.svelte-1xxu8em) {top:100%;left:calc(50% - var(--tooltip-shift, 0px));transform:translateX(-50%);border-width:var(--tooltip-arrow-size, 5px) var(--tooltip-arrow-size, 5px) 0\n var(--tooltip-arrow-size, 5px);border-color:var(--tooltip-arrow-color, var(--tooltip-background, #333333)) transparent\n transparent transparent;}\n\n /* Bottom position */.bottom.svelte-1xxu8em {top:calc(100% + var(--tooltip-offset, 8px));left:50%;transform:translateX(calc(-50% + var(--tooltip-shift, 0px)));}.bottom.svelte-1xxu8em .tooltip-arrow:where(.svelte-1xxu8em) {bottom:100%;left:calc(50% - var(--tooltip-shift, 0px));transform:translateX(-50%);border-width:0 var(--tooltip-arrow-size, 5px) var(--tooltip-arrow-size, 5px)\n var(--tooltip-arrow-size, 5px);border-color:transparent transparent\n var(--tooltip-arrow-color, var(--tooltip-background, #333333)) transparent;}\n\n /* Left position */.left.svelte-1xxu8em {right:calc(100% + var(--tooltip-offset, 8px));top:50%;transform:translateY(calc(-50% + var(--tooltip-shift, 0px)));}.left.svelte-1xxu8em .tooltip-arrow:where(.svelte-1xxu8em) {left:100%;top:calc(50% - var(--tooltip-shift, 0px));transform:translateY(-50%);border-width:var(--tooltip-arrow-size, 5px) 0 var(--tooltip-arrow-size, 5px)\n var(--tooltip-arrow-size, 5px);border-color:transparent transparent transparent\n var(--tooltip-arrow-color, var(--tooltip-background, #333333));}\n\n /* Right position */.right.svelte-1xxu8em {left:calc(100% + var(--tooltip-offset, 8px));top:50%;transform:translateY(calc(-50% + var(--tooltip-shift, 0px)));}.right.svelte-1xxu8em .tooltip-arrow:where(.svelte-1xxu8em) {right:100%;top:calc(50% - var(--tooltip-shift, 0px));transform:translateY(-50%);border-width:var(--tooltip-arrow-size, 5px) var(--tooltip-arrow-size, 5px)\n var(--tooltip-arrow-size, 5px) 0;border-color:transparent var(--tooltip-arrow-color, var(--tooltip-background, #333333))\n transparent transparent;}.tooltip-text.svelte-1xxu8em {color:var(--tooltip-color, #ffffff);}"
12674
+ code: ".tooltip-container.svelte-1xxu8em {position:relative;display:var(--tooltip-container-display, inline-flex);}.tooltip-icon.svelte-1xxu8em {display:contents;color:var(--tooltip-icon-color, currentColor);}.tooltip-bubble.svelte-1xxu8em {position:absolute;z-index:var(--tooltip-z-index, 1000);max-width:var(--tooltip-max-width, 200px);background:var(--tooltip-background, #333333);color:var(--tooltip-color, #ffffff);font-size:var(--tooltip-font-size, 12px);font-weight:var(--tooltip-font-weight, 400);font-family:var(--tooltip-font-family, inherit);padding:var(--tooltip-padding, 6px 10px);border-radius:var(--tooltip-border-radius, var(--radius, 4px));border:var(--tooltip-border, none);box-shadow:var(--tooltip-box-shadow, 0 2px 6px rgba(0, 0, 0, 0.15));white-space:normal;word-wrap:break-word;pointer-events:none;opacity:1;transition:opacity\n var(--tooltip-opacity-duration, var(--duration-quick, var(--motion-duration, 0.15s)))\n var(--tooltip-opacity-easing, var(--ease-in-out, var(--motion-easing, ease-in-out)));}.tooltip-arrow.svelte-1xxu8em {position:absolute;width:0;height:0;border-style:solid;}\n\n /* Top position. --tooltip-shift is the viewport-edge clamp: the bubble slides\n along its cross axis to stay on screen while the arrow compensates the other\n way so it keeps pointing at the trigger. */.top.svelte-1xxu8em {bottom:calc(100% + var(--tooltip-offset, 8px));left:50%;transform:translateX(calc(-50% + var(--tooltip-shift, 0px)));}.top.svelte-1xxu8em .tooltip-arrow:where(.svelte-1xxu8em) {top:100%;left:calc(50% - var(--tooltip-shift, 0px));transform:translateX(-50%);border-width:var(--tooltip-arrow-size, 5px) var(--tooltip-arrow-size, 5px) 0\n var(--tooltip-arrow-size, 5px);border-color:var(--tooltip-arrow-color, var(--tooltip-background, #333333)) transparent\n transparent transparent;}\n\n /* Bottom position */.bottom.svelte-1xxu8em {top:calc(100% + var(--tooltip-offset, 8px));left:50%;transform:translateX(calc(-50% + var(--tooltip-shift, 0px)));}.bottom.svelte-1xxu8em .tooltip-arrow:where(.svelte-1xxu8em) {bottom:100%;left:calc(50% - var(--tooltip-shift, 0px));transform:translateX(-50%);border-width:0 var(--tooltip-arrow-size, 5px) var(--tooltip-arrow-size, 5px)\n var(--tooltip-arrow-size, 5px);border-color:transparent transparent\n var(--tooltip-arrow-color, var(--tooltip-background, #333333)) transparent;}\n\n /* Left position */.left.svelte-1xxu8em {right:calc(100% + var(--tooltip-offset, 8px));top:50%;transform:translateY(calc(-50% + var(--tooltip-shift, 0px)));}.left.svelte-1xxu8em .tooltip-arrow:where(.svelte-1xxu8em) {left:100%;top:calc(50% - var(--tooltip-shift, 0px));transform:translateY(-50%);border-width:var(--tooltip-arrow-size, 5px) 0 var(--tooltip-arrow-size, 5px)\n var(--tooltip-arrow-size, 5px);border-color:transparent transparent transparent\n var(--tooltip-arrow-color, var(--tooltip-background, #333333));}\n\n /* Right position */.right.svelte-1xxu8em {left:calc(100% + var(--tooltip-offset, 8px));top:50%;transform:translateY(calc(-50% + var(--tooltip-shift, 0px)));}.right.svelte-1xxu8em .tooltip-arrow:where(.svelte-1xxu8em) {right:100%;top:calc(50% - var(--tooltip-shift, 0px));transform:translateY(-50%);border-width:var(--tooltip-arrow-size, 5px) var(--tooltip-arrow-size, 5px)\n var(--tooltip-arrow-size, 5px) 0;border-color:transparent var(--tooltip-arrow-color, var(--tooltip-background, #333333))\n transparent transparent;}.tooltip-text.svelte-1xxu8em {color:var(--tooltip-color, #ffffff);}"
12541
12675
  };
12542
12676
  function Tooltip(e, t) {
12543
12677
  push(t, !0), append_styles$1(e, $$css$146);
@@ -12624,7 +12758,7 @@ function Tooltip(e, t) {
12624
12758
  "white-space:normal",
12625
12759
  "word-wrap:break-word",
12626
12760
  "pointer-events:none",
12627
- "transition:opacity var(--tooltip-opacity-duration,0.15s) ease-in-out"
12761
+ "transition:opacity var(--tooltip-opacity-duration,var(--duration-quick,var(--motion-duration,0.15s))) var(--tooltip-opacity-easing,var(--ease-in-out,var(--motion-easing,ease-in-out)))"
12628
12762
  ].join(";");
12629
12763
  let c = document.createElement("div");
12630
12764
  if (c.style.cssText = at(t), i.appendChild(c), typeof f() == "function") {
@@ -14100,7 +14234,7 @@ customElements.define("sui-stepper", create_custom_element(Stepper_wc, {
14100
14234
  //#region src/lib/assets/chevron-up.svg?raw
14101
14235
  var chevron_up_default = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <polyline points=\"18 15 12 9 6 15\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n", chevron_down_default = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <polyline points=\"6 9 12 15 18 9\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n", root$72 = /* @__PURE__ */ from_html("<button class=\"tabs-arrow tabs-arrow-start svelte-18eaq6o\"><!></button>"), root_1$66 = /* @__PURE__ */ from_html("<div class=\"tabs-section-label svelte-18eaq6o\" aria-hidden=\"true\"> </div>"), root_2$52 = /* @__PURE__ */ from_html("<span aria-hidden=\"true\"></span>"), root_3$46 = /* @__PURE__ */ from_html("<!> <span class=\"tabs-item-label svelte-18eaq6o\"> </span> <!>", 1), root_4$39 = /* @__PURE__ */ from_html("<!> <div role=\"tab\"><!></div>", 1), root_5$34 = /* @__PURE__ */ from_html("<span class=\"tabs-indicator svelte-18eaq6o\" aria-hidden=\"true\"></span>"), root_6$29 = /* @__PURE__ */ from_html("<button class=\"tabs-arrow tabs-arrow-end svelte-18eaq6o\"><!></button>"), root_7$26 = /* @__PURE__ */ from_html("<div><!> <div role=\"tablist\"><!> <!></div> <!></div>"), $$css$132 = {
14102
14236
  hash: "svelte-18eaq6o",
14103
- code: ".tabs-wrapper.svelte-18eaq6o {display:flex;align-items:stretch;position:relative;max-width:100%;background:var(--tabs-bar-background, #ffffff);border-bottom:var(--tabs-bar-border-bottom, 1px solid #e0e0e0);border-radius:var(--tabs-bar-border-radius, 0);}.tabs-wrapper.disabled.svelte-18eaq6o {opacity:var(--tabs-disabled-opacity, 0.5);pointer-events:none;}.tabs-bar.svelte-18eaq6o {display:flex;flex:1;min-width:0;padding:var(--tabs-bar-padding, 0px);gap:var(--tabs-bar-gap, 0px);overflow-x:auto;scrollbar-width:none;position:relative;}.tabs-bar.svelte-18eaq6o::-webkit-scrollbar {display:none;}\n\n /* Each fade holds FULLY transparent for the first --tabs-fade-solid px before\n ramping to opaque: a plain 0→fade-size ramp still renders the clipped tab\n label at ~20% opacity a few px from the edge, which reads as a stray glyph\n fragment beside the scroll arrow. The solid zone guarantees nothing is\n perceptible there. */.tabs-bar.fade-left.svelte-18eaq6o {mask-image:linear-gradient(\n to right,\n transparent var(--tabs-fade-solid, 8px),\n black var(--tabs-fade-size, 32px)\n );-webkit-mask-image:linear-gradient(\n to right,\n transparent var(--tabs-fade-solid, 8px),\n black var(--tabs-fade-size, 32px)\n );}.tabs-bar.fade-right.svelte-18eaq6o {mask-image:linear-gradient(\n to left,\n transparent var(--tabs-fade-solid, 8px),\n black var(--tabs-fade-size, 32px)\n );-webkit-mask-image:linear-gradient(\n to left,\n transparent var(--tabs-fade-solid, 8px),\n black var(--tabs-fade-size, 32px)\n );}.tabs-bar.fade-left.fade-right.svelte-18eaq6o {mask-image:linear-gradient(\n to right,\n transparent var(--tabs-fade-solid, 8px),\n black var(--tabs-fade-size, 32px),\n black calc(100% - var(--tabs-fade-size, 32px)),\n transparent calc(100% - var(--tabs-fade-solid, 8px))\n );-webkit-mask-image:linear-gradient(\n to right,\n transparent var(--tabs-fade-solid, 8px),\n black var(--tabs-fade-size, 32px),\n black calc(100% - var(--tabs-fade-size, 32px)),\n transparent calc(100% - var(--tabs-fade-solid, 8px))\n );}.tabs-arrow.svelte-18eaq6o {display:flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--tabs-arrow-size, 28px);padding:var(--tabs-arrow-padding, 0);border:var(--tabs-arrow-border, none);background:var(--tabs-arrow-background, var(--tabs-bar-background, #ffffff));color:var(--tabs-arrow-color, var(--tabs-item-color, #666666));cursor:pointer;z-index:1;transition:var(--tabs-arrow-transition, color 0.2s ease);font-family:inherit;}.tabs-arrow.svelte-18eaq6o:hover {color:var(--tabs-arrow-hover-color, var(--tabs-active-color, #0b57d0));background:var(\n --tabs-arrow-hover-background,\n var(--tabs-arrow-background, var(--tabs-bar-background, #ffffff))\n );}.tabs-item.svelte-18eaq6o {display:flex;align-items:center;gap:var(--tabs-item-gap, 8px);position:relative;padding:var(--tabs-item-padding, 12px 16px);font-size:var(--tabs-item-font-size, 14px);font-weight:var(--tabs-item-font-weight, 400);font-family:var(--tabs-item-font-family, inherit);color:var(--tabs-item-color, #666666);cursor:var(--tabs-item-cursor, pointer);background:var(--tabs-item-background, transparent);border:var(--tabs-item-border, none);border-radius:var(--tabs-item-border-radius, 0);outline:none;white-space:nowrap;flex-shrink:0;user-select:none;transition:var(--tabs-transition, color 0.2s ease, background 0.2s ease);}\n\n /* Roving focus really does move (see focusedKey/focusTabAt above) -- this\n just replaces the INDICATOR that outline:none above strips, which is what\n was actually missing (WCAG 2.4.7). :focus-visible only, so a mouse click\n that activates a tab still shows nothing new, matching the rest of this\n file's pattern (Sheet's .sheet-panel, Select's .select-clear, ...).\n currentColor tracks --tabs-item-color / --tabs-active-color, which are\n already themed per-mode and per-state, so the ring stays visible against\n --tabs-bar-background in both themes with no extra token needed here. The\n offset is inset, not the usual outward one: .tabs-bar is a same-axis\n overflow:auto scroller with 0px padding/gap by default, so an outward ring\n on an edge tab would be clipped by the scroll container's own edge. */.tabs-item.svelte-18eaq6o:focus-visible {outline:var(--tabs-item-focus-outline, 2px solid currentColor);outline-offset:var(--tabs-item-focus-outline-offset, -2px);}.tabs-item.svelte-18eaq6o .tabs-item-icon {--image-width: var(--tabs-item-icon-size, 16px);--image-height: var(--tabs-item-icon-size, 16px);--image-object-fit: contain;color:var(--tabs-item-icon-color, inherit);flex-shrink:0;}\n\n /* Reserves the active-state (bolder) width of the label so selecting a tab\n never reflows the tab bar: without this, .tabs-item.active's font-weight\n jump makes the tab (and every tab after it) physically resize, which\n visibly shifts sibling tabs and defeats the indicator's slide animation\n with a jump. The ::after ghost renders data-text at the active weight\n with height:0/visibility:hidden -- invisible, but its width still sets\n the shrink-to-fit width of the inline-block label, so the box is already\n as wide as the active state needs even while showing the lighter weight. */.tabs-item-label.svelte-18eaq6o {position:relative;display:inline-block;}.tabs-item-label.svelte-18eaq6o::after {content:attr(data-text);display:block;height:0;overflow:hidden;visibility:hidden;font-weight:var(--tabs-active-font-weight, 600);}\n\n /* Trailing status dot for nav/menu tabs. margin-left:auto pushes it to the row's\n end (e.g. a settings menu); harmless on a normal tab bar where the item shrinks\n to content. */.tabs-item-status.svelte-18eaq6o {width:var(--tabs-item-status-size, 8px);height:var(--tabs-item-status-size, 8px);margin-left:auto;border-radius:50%;flex-shrink:0;background:transparent;}\n\n /* Neutral \"has activity / configured\" dot — blue by default, matching the app's\n --text-color-focus. Maps from a settings menu's Default circle type. */.tabs-item-status.status-default.svelte-18eaq6o {background:var(--tabs-item-status-default-color, #1a73e8);}.tabs-item-status.status-pending.svelte-18eaq6o {background:var(--tabs-item-status-pending-color, #f59e0b);}.tabs-item-status.status-error.svelte-18eaq6o {background:var(--tabs-item-status-error-color, #e7000b);}.tabs-item-status.status-success.svelte-18eaq6o {background:var(--tabs-item-status-success-color, #16a34a);}.tabs-item.svelte-18eaq6o:hover:not(.active):not([aria-disabled]) {color:var(--tabs-hover-color, #333333);background:var(--tabs-hover-background, #f5f5f5);}.tabs-item.active.svelte-18eaq6o {color:var(--tabs-active-color, #0b57d0);font-weight:var(--tabs-active-font-weight, 600);background:var(--tabs-active-background, transparent);}.tabs-item[aria-disabled].svelte-18eaq6o {cursor:var(--tabs-disabled-cursor, not-allowed);}.tabs-indicator.svelte-18eaq6o {position:absolute;bottom:0;height:var(--tabs-indicator-height, 2px);background-color:var(--tabs-indicator-color, #1a73e8);border-radius:var(--tabs-indicator-border-radius, 2px 2px 0 0);transition:var(--tabs-indicator-transition, left 0.3s ease, width 0.3s ease);pointer-events:none;}\n\n /* ---------- Vertical orientation (nav / menu rail) ---------- */.tabs-wrapper.vertical.svelte-18eaq6o {flex-direction:column;align-items:stretch;max-width:none;border-bottom:none;}.tabs-wrapper.vertical.svelte-18eaq6o .tabs-bar:where(.svelte-18eaq6o) {flex-direction:column;overflow-x:hidden;overflow-y:auto;}.tabs-wrapper.vertical.svelte-18eaq6o .tabs-item:where(.svelte-18eaq6o) {\n /* Full-width rows: label sits at the leading edge, the status dot's margin-left:auto\n pushes it to the trailing edge (the settings-menu look). */width:100%;box-sizing:border-box;justify-content:flex-start;}.tabs-bar.fade-top.svelte-18eaq6o {mask-image:linear-gradient(\n to bottom,\n transparent var(--tabs-fade-solid, 8px),\n black var(--tabs-fade-size, 32px)\n );-webkit-mask-image:linear-gradient(\n to bottom,\n transparent var(--tabs-fade-solid, 8px),\n black var(--tabs-fade-size, 32px)\n );}.tabs-bar.fade-bottom.svelte-18eaq6o {mask-image:linear-gradient(\n to top,\n transparent var(--tabs-fade-solid, 8px),\n black var(--tabs-fade-size, 32px)\n );-webkit-mask-image:linear-gradient(\n to top,\n transparent var(--tabs-fade-solid, 8px),\n black var(--tabs-fade-size, 32px)\n );}.tabs-bar.fade-top.fade-bottom.svelte-18eaq6o {mask-image:linear-gradient(\n to bottom,\n transparent var(--tabs-fade-solid, 8px),\n black var(--tabs-fade-size, 32px),\n black calc(100% - var(--tabs-fade-size, 32px)),\n transparent calc(100% - var(--tabs-fade-solid, 8px))\n );-webkit-mask-image:linear-gradient(\n to bottom,\n transparent var(--tabs-fade-solid, 8px),\n black var(--tabs-fade-size, 32px),\n black calc(100% - var(--tabs-fade-size, 32px)),\n transparent calc(100% - var(--tabs-fade-solid, 8px))\n );}.tabs-wrapper.vertical.svelte-18eaq6o .tabs-indicator:where(.svelte-18eaq6o) {top:0;bottom:auto;left:0;width:var(--tabs-indicator-height, 2px);height:var(--tabs-indicator-height, 2px);border-radius:var(--tabs-indicator-border-radius-vertical, 0 2px 2px 0);transition:var(--tabs-indicator-transition-vertical, top 0.3s ease, height 0.3s ease);}\n\n /* Section header rendered above a group of vertical nav items. */.tabs-section-label.svelte-18eaq6o {padding:var(--tabs-section-label-padding, 12px 16px 4px);font-size:var(--tabs-section-label-font-size, 11px);font-weight:var(--tabs-section-label-font-weight, 700);letter-spacing:var(--tabs-section-label-letter-spacing, 0.04em);text-transform:var(--tabs-section-label-text-transform, uppercase);color:var(--tabs-section-label-color, var(--tabs-item-color, #666666));white-space:nowrap;user-select:none;}\n\n @media (prefers-reduced-motion: reduce) {.tabs-indicator.svelte-18eaq6o,\n .tabs-wrapper.vertical.svelte-18eaq6o .tabs-indicator:where(.svelte-18eaq6o) {transition:none;}\n }"
14237
+ code: ".tabs-wrapper.svelte-18eaq6o {display:flex;align-items:stretch;position:relative;max-width:100%;background:var(--tabs-bar-background, #ffffff);border-bottom:var(--tabs-bar-border-bottom, 1px solid #e0e0e0);border-radius:var(--tabs-bar-border-radius, 0);}.tabs-wrapper.disabled.svelte-18eaq6o {opacity:var(--tabs-disabled-opacity, 0.5);pointer-events:none;}.tabs-bar.svelte-18eaq6o {display:flex;flex:1;min-width:0;padding:var(--tabs-bar-padding, 0px);gap:var(--tabs-bar-gap, 0px);overflow-x:auto;scrollbar-width:none;position:relative;}.tabs-bar.svelte-18eaq6o::-webkit-scrollbar {display:none;}\n\n /* Each fade holds FULLY transparent for the first --tabs-fade-solid px before\n ramping to opaque: a plain 0→fade-size ramp still renders the clipped tab\n label at ~20% opacity a few px from the edge, which reads as a stray glyph\n fragment beside the scroll arrow. The solid zone guarantees nothing is\n perceptible there. */.tabs-bar.fade-left.svelte-18eaq6o {mask-image:linear-gradient(\n to right,\n transparent var(--tabs-fade-solid, 8px),\n black var(--tabs-fade-size, 32px)\n );-webkit-mask-image:linear-gradient(\n to right,\n transparent var(--tabs-fade-solid, 8px),\n black var(--tabs-fade-size, 32px)\n );}.tabs-bar.fade-right.svelte-18eaq6o {mask-image:linear-gradient(\n to left,\n transparent var(--tabs-fade-solid, 8px),\n black var(--tabs-fade-size, 32px)\n );-webkit-mask-image:linear-gradient(\n to left,\n transparent var(--tabs-fade-solid, 8px),\n black var(--tabs-fade-size, 32px)\n );}.tabs-bar.fade-left.fade-right.svelte-18eaq6o {mask-image:linear-gradient(\n to right,\n transparent var(--tabs-fade-solid, 8px),\n black var(--tabs-fade-size, 32px),\n black calc(100% - var(--tabs-fade-size, 32px)),\n transparent calc(100% - var(--tabs-fade-solid, 8px))\n );-webkit-mask-image:linear-gradient(\n to right,\n transparent var(--tabs-fade-solid, 8px),\n black var(--tabs-fade-size, 32px),\n black calc(100% - var(--tabs-fade-size, 32px)),\n transparent calc(100% - var(--tabs-fade-solid, 8px))\n );}.tabs-arrow.svelte-18eaq6o {display:flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--tabs-arrow-size, 28px);padding:var(--tabs-arrow-padding, 0);border:var(--tabs-arrow-border, none);background:var(--tabs-arrow-background, var(--tabs-bar-background, #ffffff));color:var(--tabs-arrow-color, var(--tabs-item-color, #666666));cursor:pointer;z-index:1;transition:var(\n --tabs-arrow-transition,\n color\n var(--tabs-arrow-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--tabs-arrow-transition-easing, var(--motion-easing, ease))\n );font-family:inherit;}.tabs-arrow.svelte-18eaq6o:hover {color:var(--tabs-arrow-hover-color, var(--tabs-active-color, #0b57d0));background:var(\n --tabs-arrow-hover-background,\n var(--tabs-arrow-background, var(--tabs-bar-background, #ffffff))\n );}.tabs-item.svelte-18eaq6o {display:flex;align-items:center;gap:var(--tabs-item-gap, 8px);position:relative;padding:var(--tabs-item-padding, 12px 16px);font-size:var(--tabs-item-font-size, 14px);font-weight:var(--tabs-item-font-weight, 400);font-family:var(--tabs-item-font-family, inherit);color:var(--tabs-item-color, #666666);cursor:var(--tabs-item-cursor, pointer);background:var(--tabs-item-background, transparent);border:var(--tabs-item-border, none);border-radius:var(--tabs-item-border-radius, 0);outline:none;white-space:nowrap;flex-shrink:0;user-select:none;transition:var(\n --tabs-transition,\n color var(--tabs-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--tabs-transition-easing, var(--motion-easing, ease)),\n background var(--tabs-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--tabs-transition-easing, var(--motion-easing, ease))\n );}\n\n /* Roving focus really does move (see focusedKey/focusTabAt above) -- this\n just replaces the INDICATOR that outline:none above strips, which is what\n was actually missing (WCAG 2.4.7). :focus-visible only, so a mouse click\n that activates a tab still shows nothing new, matching the rest of this\n file's pattern (Sheet's .sheet-panel, Select's .select-clear, ...).\n currentColor tracks --tabs-item-color / --tabs-active-color, which are\n already themed per-mode and per-state, so the ring stays visible against\n --tabs-bar-background in both themes with no extra token needed here. The\n offset is inset, not the usual outward one: .tabs-bar is a same-axis\n overflow:auto scroller with 0px padding/gap by default, so an outward ring\n on an edge tab would be clipped by the scroll container's own edge. */.tabs-item.svelte-18eaq6o:focus-visible {outline:var(--tabs-item-focus-outline, 2px solid currentColor);outline-offset:var(--tabs-item-focus-outline-offset, -2px);}.tabs-item.svelte-18eaq6o .tabs-item-icon {--image-width: var(--tabs-item-icon-size, 16px);--image-height: var(--tabs-item-icon-size, 16px);--image-object-fit: contain;color:var(--tabs-item-icon-color, inherit);flex-shrink:0;}\n\n /* Reserves the active-state (bolder) width of the label so selecting a tab\n never reflows the tab bar: without this, .tabs-item.active's font-weight\n jump makes the tab (and every tab after it) physically resize, which\n visibly shifts sibling tabs and defeats the indicator's slide animation\n with a jump. The ::after ghost renders data-text at the active weight\n with height:0/visibility:hidden -- invisible, but its width still sets\n the shrink-to-fit width of the inline-block label, so the box is already\n as wide as the active state needs even while showing the lighter weight. */.tabs-item-label.svelte-18eaq6o {position:relative;display:inline-block;}.tabs-item-label.svelte-18eaq6o::after {content:attr(data-text);display:block;height:0;overflow:hidden;visibility:hidden;font-weight:var(--tabs-active-font-weight, 600);}\n\n /* Trailing status dot for nav/menu tabs. margin-left:auto pushes it to the row's\n end (e.g. a settings menu); harmless on a normal tab bar where the item shrinks\n to content. */.tabs-item-status.svelte-18eaq6o {width:var(--tabs-item-status-size, 8px);height:var(--tabs-item-status-size, 8px);margin-left:auto;border-radius:50%;flex-shrink:0;background:transparent;}\n\n /* Neutral \"has activity / configured\" dot — blue by default, matching the app's\n --text-color-focus. Maps from a settings menu's Default circle type. */.tabs-item-status.status-default.svelte-18eaq6o {background:var(--tabs-item-status-default-color, #1a73e8);}.tabs-item-status.status-pending.svelte-18eaq6o {background:var(--tabs-item-status-pending-color, #f59e0b);}.tabs-item-status.status-error.svelte-18eaq6o {background:var(--tabs-item-status-error-color, #e7000b);}.tabs-item-status.status-success.svelte-18eaq6o {background:var(--tabs-item-status-success-color, #16a34a);}.tabs-item.svelte-18eaq6o:hover:not(.active):not([aria-disabled]) {color:var(--tabs-hover-color, #333333);background:var(--tabs-hover-background, #f5f5f5);}.tabs-item.active.svelte-18eaq6o {color:var(--tabs-active-color, #0b57d0);font-weight:var(--tabs-active-font-weight, 600);background:var(--tabs-active-background, transparent);}.tabs-item[aria-disabled].svelte-18eaq6o {cursor:var(--tabs-disabled-cursor, not-allowed);}.tabs-indicator.svelte-18eaq6o {position:absolute;bottom:0;height:var(--tabs-indicator-height, 2px);background-color:var(--tabs-indicator-color, #1a73e8);border-radius:var(--tabs-indicator-border-radius, 2px 2px 0 0);transition:var(\n --tabs-indicator-transition,\n left var(--tabs-indicator-transition-duration, var(--motion-duration, 0.3s))\n var(--tabs-indicator-transition-easing, var(--motion-easing, ease)),\n width var(--tabs-indicator-transition-duration, var(--motion-duration, 0.3s))\n var(--tabs-indicator-transition-easing, var(--motion-easing, ease))\n );pointer-events:none;}\n\n /* ---------- Vertical orientation (nav / menu rail) ---------- */.tabs-wrapper.vertical.svelte-18eaq6o {flex-direction:column;align-items:stretch;max-width:none;border-bottom:none;}.tabs-wrapper.vertical.svelte-18eaq6o .tabs-bar:where(.svelte-18eaq6o) {flex-direction:column;overflow-x:hidden;overflow-y:auto;}.tabs-wrapper.vertical.svelte-18eaq6o .tabs-item:where(.svelte-18eaq6o) {\n /* Full-width rows: label sits at the leading edge, the status dot's margin-left:auto\n pushes it to the trailing edge (the settings-menu look). */width:100%;box-sizing:border-box;justify-content:flex-start;}.tabs-bar.fade-top.svelte-18eaq6o {mask-image:linear-gradient(\n to bottom,\n transparent var(--tabs-fade-solid, 8px),\n black var(--tabs-fade-size, 32px)\n );-webkit-mask-image:linear-gradient(\n to bottom,\n transparent var(--tabs-fade-solid, 8px),\n black var(--tabs-fade-size, 32px)\n );}.tabs-bar.fade-bottom.svelte-18eaq6o {mask-image:linear-gradient(\n to top,\n transparent var(--tabs-fade-solid, 8px),\n black var(--tabs-fade-size, 32px)\n );-webkit-mask-image:linear-gradient(\n to top,\n transparent var(--tabs-fade-solid, 8px),\n black var(--tabs-fade-size, 32px)\n );}.tabs-bar.fade-top.fade-bottom.svelte-18eaq6o {mask-image:linear-gradient(\n to bottom,\n transparent var(--tabs-fade-solid, 8px),\n black var(--tabs-fade-size, 32px),\n black calc(100% - var(--tabs-fade-size, 32px)),\n transparent calc(100% - var(--tabs-fade-solid, 8px))\n );-webkit-mask-image:linear-gradient(\n to bottom,\n transparent var(--tabs-fade-solid, 8px),\n black var(--tabs-fade-size, 32px),\n black calc(100% - var(--tabs-fade-size, 32px)),\n transparent calc(100% - var(--tabs-fade-solid, 8px))\n );}.tabs-wrapper.vertical.svelte-18eaq6o .tabs-indicator:where(.svelte-18eaq6o) {top:0;bottom:auto;left:0;width:var(--tabs-indicator-height, 2px);height:var(--tabs-indicator-height, 2px);border-radius:var(--tabs-indicator-border-radius-vertical, 0 2px 2px 0);transition:var(\n --tabs-indicator-transition-vertical,\n top var(--tabs-indicator-transition-vertical-duration, var(--motion-duration, 0.3s))\n var(--tabs-indicator-transition-vertical-easing, var(--motion-easing, ease)),\n height var(--tabs-indicator-transition-vertical-duration, var(--motion-duration, 0.3s))\n var(--tabs-indicator-transition-vertical-easing, var(--motion-easing, ease))\n );}\n\n /* Section header rendered above a group of vertical nav items. */.tabs-section-label.svelte-18eaq6o {padding:var(--tabs-section-label-padding, 12px 16px 4px);font-size:var(--tabs-section-label-font-size, 11px);font-weight:var(--tabs-section-label-font-weight, 700);letter-spacing:var(--tabs-section-label-letter-spacing, 0.04em);text-transform:var(--tabs-section-label-text-transform, uppercase);color:var(--tabs-section-label-color, var(--tabs-item-color, #666666));white-space:nowrap;user-select:none;}\n\n @media (prefers-reduced-motion: reduce) {.tabs-indicator.svelte-18eaq6o,\n .tabs-wrapper.vertical.svelte-18eaq6o .tabs-indicator:where(.svelte-18eaq6o) {transition:none;}\n }"
14104
14238
  };
14105
14239
  function Tabs(e, t) {
14106
14240
  push(t, !0), append_styles$1(e, $$css$132);
@@ -14641,7 +14775,7 @@ customElements.define("sui-tabs", create_custom_element(Tabs_wc, {
14641
14775
  //#region src/lib/assets/sun.svg?raw
14642
14776
  var sun_default = "<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"12\" cy=\"12\" r=\"5\"></circle>\n <line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"3\"></line>\n <line x1=\"12\" y1=\"21\" x2=\"12\" y2=\"23\"></line>\n <line x1=\"4.22\" y1=\"4.22\" x2=\"5.64\" y2=\"5.64\"></line>\n <line x1=\"18.36\" y1=\"18.36\" x2=\"19.78\" y2=\"19.78\"></line>\n <line x1=\"1\" y1=\"12\" x2=\"3\" y2=\"12\"></line>\n <line x1=\"21\" y1=\"12\" x2=\"23\" y2=\"12\"></line>\n <line x1=\"4.22\" y1=\"19.78\" x2=\"5.64\" y2=\"18.36\"></line>\n <line x1=\"18.36\" y1=\"5.64\" x2=\"19.78\" y2=\"4.22\"></line>\n</svg>\n", moon_default = "<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z\"></path>\n</svg>\n", monitor_default = "<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"></rect>\n <line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\"></line>\n <line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\"></line>\n</svg>\n", palette_default = "<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"13.5\" cy=\"6.5\" r=\"0.5\" fill=\"currentColor\"></circle>\n <circle cx=\"17.5\" cy=\"10.5\" r=\"0.5\" fill=\"currentColor\"></circle>\n <circle cx=\"8.5\" cy=\"7.5\" r=\"0.5\" fill=\"currentColor\"></circle>\n <circle cx=\"6.5\" cy=\"12.5\" r=\"0.5\" fill=\"currentColor\"></circle>\n <path d=\"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z\"></path>\n</svg>\n", root$70 = /* @__PURE__ */ from_html("<span><!></span>"), root_1$64 = /* @__PURE__ */ from_html("<button aria-label=\"Switch theme\"></button>"), root_2$51 = /* @__PURE__ */ from_html("<button><span class=\"icon svelte-yg7rya\"><!></span></button>"), root_3$45 = /* @__PURE__ */ from_html("<div><div class=\"segment-indicator svelte-yg7rya\"></div> <!></div>"), $$css$130 = {
14643
14777
  hash: "svelte-yg7rya",
14644
- code: ".toggle-button.svelte-yg7rya {position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--theme-switcher-size, 36px);height:var(--theme-switcher-size, 36px);padding:0;border:none;border-radius:var(--theme-switcher-border-radius, var(--radius, 4px));background-color:var(--theme-switcher-bg, transparent);cursor:pointer;color:var(--theme-switcher-icon-color, #374151);transition:background-color var(--theme-switcher-transition-duration, 0.3s);font-family:inherit;}.toggle-button.svelte-yg7rya:hover {background-color:var(--theme-switcher-bg-hover, #f3f4f6);}.toggle-button.svelte-yg7rya:active {background-color:var(--theme-switcher-bg-pressed, #e5e7eb);}.icon.svelte-yg7rya {display:inline-flex;align-items:center;justify-content:center;width:var(--theme-switcher-icon-size, 18px);height:var(--theme-switcher-icon-size, 18px);transition:opacity var(--theme-switcher-transition-duration, 0.3s),\n transform var(--theme-switcher-transition-duration, 0.3s);}.icon.svelte-yg7rya svg {width:100%;height:100%;}.toggle-button.svelte-yg7rya .icon:where(.svelte-yg7rya) {position:absolute;}.toggle-button.svelte-yg7rya .icon:where(.svelte-yg7rya):not(.active) {opacity:0;transform:scale(0.5) rotate(90deg);}.toggle-button.svelte-yg7rya .icon.active:where(.svelte-yg7rya) {opacity:1;transform:scale(1) rotate(0deg);}.segment-control.svelte-yg7rya {position:relative;display:inline-flex;align-items:center;gap:var(--theme-switcher-segment-gap, 2px);padding:var(--theme-switcher-segment-padding, 4px);background-color:var(--theme-switcher-segment-bg, #f3f4f6);border-radius:var(--theme-switcher-border-radius, var(--radius, 4px));}.segment-indicator.svelte-yg7rya {position:absolute;top:var(--theme-switcher-segment-padding, 4px);bottom:var(--theme-switcher-segment-padding, 4px);border-radius:var(--theme-switcher-segment-border-radius, var(--radius, 4px));background-color:var(--theme-switcher-segment-active-bg, #ffffff);box-shadow:var(--theme-switcher-segment-shadow, 0 1px 2px rgba(0, 0, 0, 0.1));transition:left var(--theme-switcher-transition-duration, 0.3s),\n width var(--theme-switcher-transition-duration, 0.3s);z-index:0;}.segment-button.svelte-yg7rya {position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;padding:var(--theme-switcher-segment-button-padding, 6px 10px);border:none;border-radius:var(--theme-switcher-segment-border-radius, var(--radius, 4px));background:transparent;cursor:pointer;color:var(--theme-switcher-icon-color, #374151);transition:color var(--theme-switcher-transition-duration, 0.3s);font-family:inherit;}.segment-button.selected.svelte-yg7rya {color:var(--theme-switcher-icon-color-active, #1f2937);}\n\n /* Unlike the two progress-bar loaders elsewhere in this library, every\n transition here moves between two states that are each fully meaningful\n on their own (a background tint, an icon's shown/hidden pose, the\n indicator's resting position, a label's active color) -- there is no\n in-between frame that could be misread as a different state. Dropping the\n transition just makes the swap instant instead of animated; nothing is\n stranded mid-motion the way a freeze mid-fill would be. Four separate\n rules declare `transition` in this file (toggle background, icon\n opacity/transform, segment indicator left/width, segment label color) --\n all four are covered here, not just the two the icon/indicator case calls\n out, so no motion in this component is left unguarded. Lives in the\n component's own <style> because that is the only stylesheet that reaches\n inside the shadow root a custom-element consumer gets. */\n @media (prefers-reduced-motion: reduce) {.toggle-button.svelte-yg7rya,\n .icon.svelte-yg7rya,\n .segment-indicator.svelte-yg7rya,\n .segment-button.svelte-yg7rya {transition:none;}\n }"
14778
+ code: ".toggle-button.svelte-yg7rya {position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--theme-switcher-size, 36px);height:var(--theme-switcher-size, 36px);padding:0;border:none;border-radius:var(--theme-switcher-border-radius, var(--radius, 4px));background-color:var(--theme-switcher-bg, transparent);cursor:pointer;color:var(--theme-switcher-icon-color, #374151);transition:background-color\n var(--theme-switcher-transition-duration, var(--motion-duration, 0.3s))\n var(--theme-switcher-transition-easing, var(--motion-easing, ease));font-family:inherit;}.toggle-button.svelte-yg7rya:hover {background-color:var(--theme-switcher-bg-hover, #f3f4f6);}.toggle-button.svelte-yg7rya:active {background-color:var(--theme-switcher-bg-pressed, #e5e7eb);}.icon.svelte-yg7rya {display:inline-flex;align-items:center;justify-content:center;width:var(--theme-switcher-icon-size, 18px);height:var(--theme-switcher-icon-size, 18px);transition:opacity var(--theme-switcher-transition-duration, var(--motion-duration, 0.3s))\n var(--theme-switcher-transition-easing, var(--motion-easing, ease)),\n transform var(--theme-switcher-transition-duration, var(--motion-duration, 0.3s))\n var(--theme-switcher-transition-easing, var(--motion-easing, ease));}.icon.svelte-yg7rya svg {width:100%;height:100%;}.toggle-button.svelte-yg7rya .icon:where(.svelte-yg7rya) {position:absolute;}.toggle-button.svelte-yg7rya .icon:where(.svelte-yg7rya):not(.active) {opacity:0;transform:scale(0.5) rotate(90deg);}.toggle-button.svelte-yg7rya .icon.active:where(.svelte-yg7rya) {opacity:1;transform:scale(1) rotate(0deg);}.segment-control.svelte-yg7rya {position:relative;display:inline-flex;align-items:center;gap:var(--theme-switcher-segment-gap, 2px);padding:var(--theme-switcher-segment-padding, 4px);background-color:var(--theme-switcher-segment-bg, #f3f4f6);border-radius:var(--theme-switcher-border-radius, var(--radius, 4px));}.segment-indicator.svelte-yg7rya {position:absolute;top:var(--theme-switcher-segment-padding, 4px);bottom:var(--theme-switcher-segment-padding, 4px);border-radius:var(--theme-switcher-segment-border-radius, var(--radius, 4px));background-color:var(--theme-switcher-segment-active-bg, #ffffff);box-shadow:var(--theme-switcher-segment-shadow, 0 1px 2px rgba(0, 0, 0, 0.1));transition:left var(--theme-switcher-transition-duration, var(--motion-duration, 0.3s))\n var(--theme-switcher-transition-easing, var(--motion-easing, ease)),\n width var(--theme-switcher-transition-duration, var(--motion-duration, 0.3s))\n var(--theme-switcher-transition-easing, var(--motion-easing, ease));z-index:0;}.segment-button.svelte-yg7rya {position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;padding:var(--theme-switcher-segment-button-padding, 6px 10px);border:none;border-radius:var(--theme-switcher-segment-border-radius, var(--radius, 4px));background:transparent;cursor:pointer;color:var(--theme-switcher-icon-color, #374151);transition:color var(--theme-switcher-transition-duration, var(--motion-duration, 0.3s))\n var(--theme-switcher-transition-easing, var(--motion-easing, ease));font-family:inherit;}.segment-button.selected.svelte-yg7rya {color:var(--theme-switcher-icon-color-active, #1f2937);}\n\n /* Unlike the two progress-bar loaders elsewhere in this library, every\n transition here moves between two states that are each fully meaningful\n on their own (a background tint, an icon's shown/hidden pose, the\n indicator's resting position, a label's active color) -- there is no\n in-between frame that could be misread as a different state. Dropping the\n transition just makes the swap instant instead of animated; nothing is\n stranded mid-motion the way a freeze mid-fill would be. Four separate\n rules declare `transition` in this file (toggle background, icon\n opacity/transform, segment indicator left/width, segment label color) --\n all four are covered here, not just the two the icon/indicator case calls\n out, so no motion in this component is left unguarded. Lives in the\n component's own <style> because that is the only stylesheet that reaches\n inside the shadow root a custom-element consumer gets. */\n @media (prefers-reduced-motion: reduce) {.toggle-button.svelte-yg7rya,\n .icon.svelte-yg7rya,\n .segment-indicator.svelte-yg7rya,\n .segment-button.svelte-yg7rya {transition:none;}\n }"
14645
14779
  };
14646
14780
  function ThemeSwitcher(e, t) {
14647
14781
  push(t, !0), append_styles$1(e, $$css$130);
@@ -14831,7 +14965,7 @@ customElements.define("sui-theme-switcher", create_custom_element(ThemeSwitcher_
14831
14965
  //#region src/lib/Toggle/Toggle.svelte
14832
14966
  var root$69 = /* @__PURE__ */ from_html("<div role=\"alert\" class=\"field-error svelte-1kpnf4s\"> </div>"), root_1$63 = /* @__PURE__ */ from_html("<div class=\"field-info svelte-1kpnf4s\"> </div>"), root_2$50 = /* @__PURE__ */ from_html("<div><label class=\"text svelte-1kpnf4s\"> </label> <label class=\"switch svelte-1kpnf4s\"><input class=\"input-checkbox svelte-1kpnf4s\" type=\"checkbox\"/> <span class=\"slider round svelte-1kpnf4s\"></span></label></div> <!> <!>", 1), $$css$128 = {
14833
14967
  hash: "svelte-1kpnf4s",
14834
- code: ".container.svelte-1kpnf4s {display:var(--toggle-container-display, flex);align-items:var(--toggle-container-align-items, center);gap:var(--toggle-container-gap, 8px);}.container.disabled.svelte-1kpnf4s {opacity:var(--toggle-disabled-opacity, 0.4);cursor:not-allowed;pointer-events:none;}.text.svelte-1kpnf4s {font-size:var(--toggle-text-font-size, 14px);font-weight:var(--toggle-text-font-weight, 400);color:var(--toggle-text-color, #4a4a4a);margin:var(--toggle-text-margin, 0px 8px 0px 0px);order:var(--toggle-text-order, 0);}.switch.svelte-1kpnf4s {position:relative;display:inline-block;width:var(--toggle-switch-width, 46px);height:var(--toggle-switch-height, 25px);}.switch.svelte-1kpnf4s .input-checkbox:where(.svelte-1kpnf4s) {opacity:0;width:0;height:0;}.slider.svelte-1kpnf4s {position:absolute;cursor:pointer;top:var(--toggle-slider-top, 0);left:var(--toggle-slider-left, 0);right:var(--toggle-slider-right, 0);bottom:var(--toggle-slider-bottom, 0);background-color:var(--slider-unchecked-color, #ccc);-webkit-transition:var(\n --toggle-slider-transition,\n all var(--toggle-slider-transition-duration, var(--motion-duration, 0.4s))\n var(--toggle-slider-transition-easing, var(--motion-easing, ease))\n );transition:var(\n --toggle-slider-transition,\n all var(--toggle-slider-transition-duration, var(--motion-duration, 0.4s))\n var(--toggle-slider-transition-easing, var(--motion-easing, ease))\n );}.slider.svelte-1kpnf4s:before {position:absolute;content:'';height:var(--toggle-ball-height, 23px);width:var(--toggle-ball-width, 23px);left:var(--toggle-slider-before-left, 2px);bottom:var(--toggle-slider-before-bottom, 1px);top:var(--toggle-slider-before-top, 1px);background-color:var(--toggle-slider-before-background-color, white);-webkit-transition:var(\n --toggle-slider-transition,\n all var(--toggle-slider-transition-duration, var(--motion-duration, 0.4s))\n var(--toggle-slider-transition-easing, var(--motion-easing, ease))\n );transition:var(\n --toggle-slider-transition,\n all var(--toggle-slider-transition-duration, var(--motion-duration, 0.4s))\n var(--toggle-slider-transition-easing, var(--motion-easing, ease))\n );}.input-checkbox.svelte-1kpnf4s:checked + .slider:where(.svelte-1kpnf4s) {background-color:var(--slider-checked-color, #2196f3);}.input-checkbox.svelte-1kpnf4s:focus + .slider:where(.svelte-1kpnf4s) {box-shadow:var(--toggle-focus-ring, 0 0 0 3px rgba(33, 150, 243, 0.3));}.input-checkbox.svelte-1kpnf4s:checked + .slider:where(.svelte-1kpnf4s):before {-webkit-transform:translateX(19px);-ms-transform:translateX(19px);transform:translateX(19px);}.slider.round.svelte-1kpnf4s {border-radius:var(--slider-border-radius, 23px);}.slider.round.svelte-1kpnf4s:before {border-radius:var(--slider-border-radius-before, 50%);}.field-error.svelte-1kpnf4s {color:var(--field-error-color, #c5120a);font-size:var(--field-error-font-size, 12px);margin:var(--field-error-margin, 4px 0 0 0);}.field-info.svelte-1kpnf4s {color:var(--field-info-color, #6b7280);font-size:var(--field-info-font-size, 12px);margin:var(--field-info-margin, 4px 0 0 0);}"
14968
+ code: ".container.svelte-1kpnf4s {display:var(--toggle-container-display, flex);align-items:var(--toggle-container-align-items, center);gap:var(--toggle-container-gap, 8px);}.container.disabled.svelte-1kpnf4s {opacity:var(--toggle-disabled-opacity, 0.4);cursor:not-allowed;pointer-events:none;}.text.svelte-1kpnf4s {font-size:var(--toggle-text-font-size, 14px);font-weight:var(--toggle-text-font-weight, 400);color:var(--toggle-text-color, #4a4a4a);margin:var(--toggle-text-margin, 0px 8px 0px 0px);order:var(--toggle-text-order, 0);}.switch.svelte-1kpnf4s {position:relative;display:inline-block;width:var(--toggle-switch-width, 46px);height:var(--toggle-switch-height, 25px);}.switch.svelte-1kpnf4s .input-checkbox:where(.svelte-1kpnf4s) {opacity:0;width:0;height:0;}.slider.svelte-1kpnf4s {position:absolute;cursor:pointer;top:var(--toggle-slider-top, 0);left:var(--toggle-slider-left, 0);right:var(--toggle-slider-right, 0);bottom:var(--toggle-slider-bottom, 0);background-color:var(--slider-unchecked-color, #ccc);-webkit-transition:var(\n --toggle-slider-transition,\n all\n var(--toggle-slider-transition-duration, var(--duration-slow, var(--motion-duration, 0.4s)))\n var(--toggle-slider-transition-easing, var(--motion-easing, ease))\n );transition:var(\n --toggle-slider-transition,\n all\n var(--toggle-slider-transition-duration, var(--duration-slow, var(--motion-duration, 0.4s)))\n var(--toggle-slider-transition-easing, var(--motion-easing, ease))\n );}.slider.svelte-1kpnf4s:before {position:absolute;content:'';height:var(--toggle-ball-height, 23px);width:var(--toggle-ball-width, 23px);left:var(--toggle-slider-before-left, 2px);bottom:var(--toggle-slider-before-bottom, 1px);top:var(--toggle-slider-before-top, 1px);background-color:var(--toggle-slider-before-background-color, white);-webkit-transition:var(\n --toggle-slider-transition,\n all\n var(--toggle-slider-transition-duration, var(--duration-slow, var(--motion-duration, 0.4s)))\n var(--toggle-slider-transition-easing, var(--motion-easing, ease))\n );transition:var(\n --toggle-slider-transition,\n all\n var(--toggle-slider-transition-duration, var(--duration-slow, var(--motion-duration, 0.4s)))\n var(--toggle-slider-transition-easing, var(--motion-easing, ease))\n );}.input-checkbox.svelte-1kpnf4s:checked + .slider:where(.svelte-1kpnf4s) {background-color:var(--slider-checked-color, #2196f3);}.input-checkbox.svelte-1kpnf4s:focus + .slider:where(.svelte-1kpnf4s) {box-shadow:var(--toggle-focus-ring, 0 0 0 3px rgba(33, 150, 243, 0.3));}.input-checkbox.svelte-1kpnf4s:checked + .slider:where(.svelte-1kpnf4s):before {-webkit-transform:translateX(19px);-ms-transform:translateX(19px);transform:translateX(19px);}.slider.round.svelte-1kpnf4s {border-radius:var(--slider-border-radius, 23px);}.slider.round.svelte-1kpnf4s:before {border-radius:var(--slider-border-radius-before, 50%);}.field-error.svelte-1kpnf4s {color:var(--field-error-color, #c5120a);font-size:var(--field-error-font-size, 12px);margin:var(--field-error-margin, 4px 0 0 0);}.field-info.svelte-1kpnf4s {color:var(--field-info-color, #6b7280);font-size:var(--field-info-font-size, 12px);margin:var(--field-info-margin, 4px 0 0 0);}"
14835
14969
  };
14836
14970
  function Toggle(e, t) {
14837
14971
  let n = props_id();
@@ -15097,7 +15231,7 @@ customElements.define("sui-toggle", create_custom_element(Toggle_wc, {
15097
15231
  //#region src/lib/Accordion/Accordion.svelte
15098
15232
  var root$68 = /* @__PURE__ */ from_html("<div role=\"button\"><!></div>"), root_1$62 = /* @__PURE__ */ from_html("<!> <div><div class=\"accordion-content svelte-1p9ezsm\"><!></div></div>", 1), $$css$126 = {
15099
15233
  hash: "svelte-1p9ezsm",
15100
- code: ".accordion-trigger.svelte-1p9ezsm {cursor:var(--accordion-trigger-cursor, pointer);}.accordion-trigger.disabled.svelte-1p9ezsm {cursor:var(--accordion-trigger-disabled-cursor, not-allowed);}.accordion.svelte-1p9ezsm {display:grid;grid-template-rows:0fr;overflow:hidden;\n /* overflow: hidden drops this element's automatic minimum size to zero, so\n when it is placed as an item of a consumer's own grid or flex container\n it is otherwise free to be stretched down to whatever size that\n container hands it -- as small as 0px -- independent of how tall its\n own children actually are (issue #550). align-self: start opts the\n panel out of that stretch so it always sizes from its own expanded\n content instead. It is inert when the panel is not a grid or flex item,\n and does not change the collapse animation: collapsed still resolves\n to 0px either way.\n\n Exposed as --accordion-align-self rather than hardcoded: Svelte's\n scoped class raises .accordion's specificity above a plain utility\n class passed through `classes`, so a consumer who legitimately wants\n the panel stretched (or centered, etc.) could not otherwise override\n this one declaration without reaching for :global() or !important. */align-self:var(--accordion-align-self, start);transition:grid-template-rows var(--accordion-transition, 0.2s ease-out);}.accordion.expanded.svelte-1p9ezsm {grid-template-rows:1fr;}\n\n /* The expand/collapse is a real size change, which is what the preference is\n about, and nothing was stopping it: DESIGN_PRINCIPLES.md section 1 reasons a\n finite transition needs no guard because --motion-duration handles it, but\n this rule reads --accordion-transition, and no stylesheet in this library\n assigns either token -- both exist purely as fallback rungs for a consumer to\n reach. Safe to drop outright because the transition is finite: the panel\n lands open or closed rather than stranded part-way, unlike an indefinite\n animation collapsed onto its 0% keyframe.\n\n Declared on `.accordion` to match the base rule's specificity and placed\n after it, so it wins; `.accordion.expanded` sets only grid-template-rows and\n never re-declares the transition, so it cannot silently override this. */\n @media (prefers-reduced-motion: reduce) {.accordion.svelte-1p9ezsm {transition:none;}\n }.accordion-content.svelte-1p9ezsm {min-height:0;}"
15234
+ code: ".accordion-trigger.svelte-1p9ezsm {cursor:var(--accordion-trigger-cursor, pointer);}.accordion-trigger.disabled.svelte-1p9ezsm {cursor:var(--accordion-trigger-disabled-cursor, not-allowed);}.accordion.svelte-1p9ezsm {display:grid;grid-template-rows:0fr;overflow:hidden;\n /* overflow: hidden drops this element's automatic minimum size to zero, so\n when it is placed as an item of a consumer's own grid or flex container\n it is otherwise free to be stretched down to whatever size that\n container hands it -- as small as 0px -- independent of how tall its\n own children actually are (issue #550). align-self: start opts the\n panel out of that stretch so it always sizes from its own expanded\n content instead. It is inert when the panel is not a grid or flex item,\n and does not change the collapse animation: collapsed still resolves\n to 0px either way.\n\n Exposed as --accordion-align-self rather than hardcoded: Svelte's\n scoped class raises .accordion's specificity above a plain utility\n class passed through `classes`, so a consumer who legitimately wants\n the panel stretched (or centered, etc.) could not otherwise override\n this one declaration without reaching for :global() or !important. */align-self:var(--accordion-align-self, start);transition:grid-template-rows\n var(\n --accordion-transition,\n var(--accordion-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--accordion-transition-easing, var(--ease-out, var(--motion-easing, ease-out)))\n );}.accordion.expanded.svelte-1p9ezsm {grid-template-rows:1fr;}\n\n /* The expand/collapse is a real size change, which is what the preference is\n about, and nothing was stopping it: DESIGN_PRINCIPLES.md section 1 reasons a\n finite transition needs no guard because --motion-duration handles it, but\n this rule reads --accordion-transition, and no stylesheet in this library\n assigns either token -- both exist purely as fallback rungs for a consumer to\n reach. Safe to drop outright because the transition is finite: the panel\n lands open or closed rather than stranded part-way, unlike an indefinite\n animation collapsed onto its 0% keyframe.\n\n Declared on `.accordion` to match the base rule's specificity and placed\n after it, so it wins; `.accordion.expanded` sets only grid-template-rows and\n never re-declares the transition, so it cannot silently override this. */\n @media (prefers-reduced-motion: reduce) {.accordion.svelte-1p9ezsm {transition:none;}\n }.accordion-content.svelte-1p9ezsm {min-height:0;}"
15101
15235
  };
15102
15236
  function Accordion(e, t) {
15103
15237
  let n = props_id();
@@ -15246,10 +15380,6 @@ function cubic_out(e) {
15246
15380
  let t = e - 1;
15247
15381
  return t * t * t + 1;
15248
15382
  }
15249
- function split_css_unit(e) {
15250
- let t = typeof e == "string" && e.match(/^\s*(-?[\d.]+)([^\s]*)\s*$/);
15251
- return t ? [parseFloat(t[1]), t[2] || "px"] : [e, "px"];
15252
- }
15253
15383
  function fade(e, { delay: t = 0, duration: n = 400, easing: i = linear } = {}) {
15254
15384
  let a = +getComputedStyle(e).opacity;
15255
15385
  return {
@@ -15259,17 +15389,6 @@ function fade(e, { delay: t = 0, duration: n = 400, easing: i = linear } = {}) {
15259
15389
  css: (e) => `opacity: ${e * a}`
15260
15390
  };
15261
15391
  }
15262
- function fly(e, { delay: t = 0, duration: n = 400, easing: i = cubic_out, x: a = 0, y: o = 0, opacity: s = 0 } = {}) {
15263
- let c = getComputedStyle(e), l = +c.opacity, u = c.transform === "none" ? "" : c.transform, f = l * (1 - s), [p, h] = split_css_unit(a), [S, C] = split_css_unit(o);
15264
- return {
15265
- delay: t,
15266
- duration: n,
15267
- easing: i,
15268
- css: (e, t) => `
15269
- transform: ${u} translate(${(1 - e) * p}${h}, ${(1 - e) * S}${C});
15270
- opacity: ${l - f * t}`
15271
- };
15272
- }
15273
15392
  var slide_warning = !1;
15274
15393
  function slide(e, { delay: t = 0, duration: n = 400, easing: i = cubic_out, axis: a = "y" } = {}) {
15275
15394
  let o = getComputedStyle(e), s = +o.opacity, c = a === "y" ? "height" : "width", l = parseFloat(o[c]), u = a === "y" ? ["top", "bottom"] : ["left", "right"], f = u.map((e) => `${e[0].toUpperCase()}${e.slice(1)}`), p = parseFloat(o[`padding${f[0]}`]), h = parseFloat(o[`padding${f[1]}`]), S = parseFloat(o[`margin${f[0]}`]), C = parseFloat(o[`margin${f[1]}`]), k = parseFloat(o[`border${f[0]}Width`]), R = parseFloat(o[`border${f[1]}Width`]);
@@ -16144,7 +16263,7 @@ function moveWithinChoiceboxGroup(e, t) {
16144
16263
  //#region src/lib/Choicebox/Choicebox.svelte
16145
16264
  var root$62 = /* @__PURE__ */ from_html("<span class=\"indicator-icon svelte-1s9or1q\"></span>"), root_1$58 = /* @__PURE__ */ from_html("<span aria-hidden=\"true\"><!></span>"), root_2$47 = /* @__PURE__ */ from_html("<div role=\"alert\" class=\"field-error svelte-1s9or1q\"> </div>"), root_3$42 = /* @__PURE__ */ from_html("<div class=\"field-info svelte-1s9or1q\"> </div>"), root_4$37 = /* @__PURE__ */ from_html("<div><input class=\"native-control svelte-1s9or1q\" aria-hidden=\"true\"/> <!> <!></div> <!> <!>", 1), $$css$117 = {
16146
16265
  hash: "svelte-1s9or1q",
16147
- code: ".native-control.svelte-1s9or1q {position:absolute;opacity:0;width:0;height:0;margin:0;pointer-events:none;}.field-error.svelte-1s9or1q {color:var(--field-error-color, #c5120a);font-size:var(--field-error-font-size, 12px);margin:var(--field-error-margin, 4px 0 0 0);}.field-info.svelte-1s9or1q {color:var(--field-info-color, #6b7280);font-size:var(--field-info-font-size, 12px);margin:var(--field-info-margin, 4px 0 0 0);}.choicebox.svelte-1s9or1q {display:var(--choicebox-display, flex);align-items:var(--choicebox-align-items, center);padding:var(--choicebox-padding, 16px);border:var(--choicebox-border, 2px solid #d0d0d0);border-radius:var(--choicebox-border-radius, var(--radius, 4px));background:var(--choicebox-background, #ffffff);gap:var(--choicebox-gap, 12px);cursor:var(--choicebox-cursor, pointer);font-family:var(--choicebox-font-family, inherit);transition:var(--choicebox-transition, border-color 0.2s, background 0.2s);-webkit-tap-highlight-color:transparent;}.choicebox.svelte-1s9or1q:focus-visible {outline:none;box-shadow:var(--choicebox-focus-ring, 0 0 0 3px rgba(33, 150, 243, 0.3));}\n\n /* Exclude the selected state from hover: without :not(.selected) this rule\n (specificity 0,3,0) outranks .choicebox.selected (0,2,0), so hovering a\n selected card repaints it with the neutral hover border/fill until the\n cursor leaves. Excluding selected lets .choicebox.selected show through. */.choicebox.svelte-1s9or1q:not(.disabled):not(.selected):hover {border-color:var(--choicebox-hover-border-color, #9e9e9e);background:var(--choicebox-hover-background, var(--choicebox-background, #ffffff));}.choicebox.selected.svelte-1s9or1q {border-color:var(--choicebox-selected-border-color, #2196f3);background:var(--choicebox-selected-background, var(--choicebox-background, #ffffff));}.choicebox.disabled.svelte-1s9or1q {opacity:var(--choicebox-disabled-opacity, 0.4);cursor:var(--choicebox-disabled-cursor, not-allowed);}.indicator.svelte-1s9or1q {flex:0 0 auto;order:var(--choicebox-indicator-order, 1);margin-inline-start:var(--choicebox-indicator-margin-inline-start, auto);display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--choicebox-indicator-size, 20px);height:var(--choicebox-indicator-size, 20px);border:var(--choicebox-indicator-border, 2px solid #757575);background:var(--choicebox-indicator-background, transparent);transition:var(--choicebox-indicator-transition, background 0.2s, border-color 0.2s);}.indicator.radio.svelte-1s9or1q {border-radius:50%;}.indicator.checkbox.svelte-1s9or1q {border-radius:var(--choicebox-indicator-border-radius, var(--radius, 4px));}.indicator.selected.svelte-1s9or1q {border:var(--choicebox-indicator-selected-border, 2px solid #2196f3);background:var(--choicebox-indicator-selected-background, #2196f3);}.indicator.radio.selected.svelte-1s9or1q {box-shadow:inset 0 0 0 var(--choicebox-indicator-dot-inset, 4px)\n var(--choicebox-background, #ffffff);}.indicator-icon.svelte-1s9or1q {display:flex;width:var(--choicebox-indicator-icon-size, 14px);height:var(--choicebox-indicator-icon-size, 14px);color:var(--choicebox-indicator-icon-color, #ffffff);}.indicator-icon.svelte-1s9or1q svg {width:100%;height:100%;}"
16266
+ code: ".native-control.svelte-1s9or1q {position:absolute;opacity:0;width:0;height:0;margin:0;pointer-events:none;}.field-error.svelte-1s9or1q {color:var(--field-error-color, #c5120a);font-size:var(--field-error-font-size, 12px);margin:var(--field-error-margin, 4px 0 0 0);}.field-info.svelte-1s9or1q {color:var(--field-info-color, #6b7280);font-size:var(--field-info-font-size, 12px);margin:var(--field-info-margin, 4px 0 0 0);}.choicebox.svelte-1s9or1q {display:var(--choicebox-display, flex);align-items:var(--choicebox-align-items, center);padding:var(--choicebox-padding, 16px);border:var(--choicebox-border, 2px solid #d0d0d0);border-radius:var(--choicebox-border-radius, var(--radius, 4px));background:var(--choicebox-background, #ffffff);gap:var(--choicebox-gap, 12px);cursor:var(--choicebox-cursor, pointer);font-family:var(--choicebox-font-family, inherit);transition:var(\n --choicebox-transition,\n border-color\n var(--choicebox-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--choicebox-transition-easing, var(--motion-easing, ease)),\n background\n var(--choicebox-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--choicebox-transition-easing, var(--motion-easing, ease))\n );-webkit-tap-highlight-color:transparent;}.choicebox.svelte-1s9or1q:focus-visible {outline:none;box-shadow:var(--choicebox-focus-ring, 0 0 0 3px rgba(33, 150, 243, 0.3));}\n\n /* Exclude the selected state from hover: without :not(.selected) this rule\n (specificity 0,3,0) outranks .choicebox.selected (0,2,0), so hovering a\n selected card repaints it with the neutral hover border/fill until the\n cursor leaves. Excluding selected lets .choicebox.selected show through. */.choicebox.svelte-1s9or1q:not(.disabled):not(.selected):hover {border-color:var(--choicebox-hover-border-color, #9e9e9e);background:var(--choicebox-hover-background, var(--choicebox-background, #ffffff));}.choicebox.selected.svelte-1s9or1q {border-color:var(--choicebox-selected-border-color, #2196f3);background:var(--choicebox-selected-background, var(--choicebox-background, #ffffff));}.choicebox.disabled.svelte-1s9or1q {opacity:var(--choicebox-disabled-opacity, 0.4);cursor:var(--choicebox-disabled-cursor, not-allowed);}.indicator.svelte-1s9or1q {flex:0 0 auto;order:var(--choicebox-indicator-order, 1);margin-inline-start:var(--choicebox-indicator-margin-inline-start, auto);display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--choicebox-indicator-size, 20px);height:var(--choicebox-indicator-size, 20px);border:var(--choicebox-indicator-border, 2px solid #757575);background:var(--choicebox-indicator-background, transparent);transition:var(\n --choicebox-indicator-transition,\n background\n var(\n --choicebox-indicator-transition-duration,\n var(--duration-base, var(--motion-duration, 0.2s))\n )\n var(--choicebox-indicator-transition-easing, var(--motion-easing, ease)),\n border-color\n var(\n --choicebox-indicator-transition-duration,\n var(--duration-base, var(--motion-duration, 0.2s))\n )\n var(--choicebox-indicator-transition-easing, var(--motion-easing, ease))\n );}.indicator.radio.svelte-1s9or1q {border-radius:50%;}.indicator.checkbox.svelte-1s9or1q {border-radius:var(--choicebox-indicator-border-radius, var(--radius, 4px));}.indicator.selected.svelte-1s9or1q {border:var(--choicebox-indicator-selected-border, 2px solid #2196f3);background:var(--choicebox-indicator-selected-background, #2196f3);}.indicator.radio.selected.svelte-1s9or1q {box-shadow:inset 0 0 0 var(--choicebox-indicator-dot-inset, 4px)\n var(--choicebox-background, #ffffff);}.indicator-icon.svelte-1s9or1q {display:flex;width:var(--choicebox-indicator-icon-size, 14px);height:var(--choicebox-indicator-icon-size, 14px);color:var(--choicebox-indicator-icon-color, #ffffff);}.indicator-icon.svelte-1s9or1q svg {width:100%;height:100%;}"
16148
16267
  };
16149
16268
  function Choicebox(e, t) {
16150
16269
  let n = props_id();
@@ -17251,80 +17370,96 @@ var root$57 = /* @__PURE__ */ from_html("<div class=\"context-menu-separator sve
17251
17370
  };
17252
17371
  function ContextMenu(e, t) {
17253
17372
  push(t, !0), append_styles$1(e, $$css$109);
17254
- let n = prop(t, "items", 7), i = prop(t, "open", 15, !1), a = prop(t, "maxHeight", 7, "240px"), o = prop(t, "testId", 7), s = prop(t, "children", 7), c = prop(t, "onselect", 7), l = prop(t, "onopen", 7), u = prop(t, "onclose", 7), f = prop(t, "classes", 7), p = /* @__PURE__ */ state(null), h = /* @__PURE__ */ state(null), S = /* @__PURE__ */ state(-1), C = /* @__PURE__ */ state(0), k = /* @__PURE__ */ state(0), R = /* @__PURE__ */ state(null), te = /* @__PURE__ */ user_derived(() => n().filter((e) => !e.separator && !e.disabled)), ne = null;
17255
- function re() {
17256
- ne !== null && (cancelAnimationFrame(ne), ne = null);
17373
+ let n = prop(t, "items", 7), i = prop(t, "open", 15, !1), a = prop(t, "maxHeight", 7, "240px"), o = prop(t, "testId", 7), s = prop(t, "children", 7), c = prop(t, "onselect", 7), l = prop(t, "onopen", 7), u = prop(t, "onclose", 7), f = prop(t, "classes", 7), p = /* @__PURE__ */ state(null), h = /* @__PURE__ */ state(null), S = /* @__PURE__ */ state(-1), C = /* @__PURE__ */ state(0), k = /* @__PURE__ */ state(0), R = /* @__PURE__ */ state(null), te = {
17374
+ y: 12,
17375
+ durationTokens: [
17376
+ "--context-menu-panel-transition-duration",
17377
+ "--duration-quick",
17378
+ "--motion-duration"
17379
+ ],
17380
+ fallbackDuration: 150,
17381
+ distanceTokens: ["--context-menu-panel-transition-distance", "--distance-medium"],
17382
+ fallbackDistance: 12,
17383
+ easingTokens: [
17384
+ "--context-menu-panel-transition-easing",
17385
+ "--ease-smooth-out",
17386
+ "--motion-easing"
17387
+ ]
17388
+ }, ne = /* @__PURE__ */ user_derived(() => n().filter((e) => !e.separator && !e.disabled)), re = null;
17389
+ function G() {
17390
+ re !== null && (cancelAnimationFrame(re), re = null);
17257
17391
  }
17258
- function G(e, t) {
17259
- set(C, e, !0), set(k, t, !0), i(!0), set(S, 0), l()?.(), re(), ne = requestAnimationFrame(() => {
17260
- ne = null, Re(), Ue(0);
17392
+ function be(e, t) {
17393
+ set(C, e, !0), set(k, t, !0), i(!0), set(S, 0), l()?.(), G(), re = requestAnimationFrame(() => {
17394
+ re = null, Ue(), it(0);
17261
17395
  });
17262
17396
  }
17263
- function be() {
17264
- re(), i(!1), set(S, -1), u()?.();
17397
+ function Me() {
17398
+ if (!i()) return;
17399
+ G(), i(!1), set(S, -1), u()?.();
17265
17400
  let e = get(R);
17266
17401
  if (set(R, null), e === null) return;
17267
17402
  let t = getActiveElement(e);
17268
17403
  (t === null || t === document.body || (get(p)?.contains(t) ?? !1)) && e.focus();
17269
17404
  }
17270
- function Me(e) {
17271
- e.disabled || (c()?.(e), be());
17405
+ function Re(e) {
17406
+ !i() || e.disabled || (c()?.(e), Me());
17272
17407
  }
17273
- function Re() {
17408
+ function Ue() {
17274
17409
  if (get(p) === null) return;
17275
17410
  let e = get(p).getBoundingClientRect(), t = window.innerWidth, n = window.innerHeight;
17276
17411
  get(C) + e.width > t && set(C, t - e.width - 4), get(k) + e.height > n && set(k, n - e.height - 4), get(C) < 0 && set(C, 4), get(k) < 0 && set(k, 4);
17277
17412
  }
17278
- function Ue(e) {
17413
+ function it(e) {
17279
17414
  if (get(p) === null) return;
17280
17415
  let t = get(p).querySelectorAll("[role=\"menuitem\"]:not([aria-disabled=\"true\"])");
17281
17416
  e >= 0 && e < t.length && t[e].focus();
17282
17417
  }
17283
- function it(e) {
17284
- return get(te).indexOf(e);
17285
- }
17286
17418
  function at(e) {
17419
+ return get(ne).indexOf(e);
17420
+ }
17421
+ function ot(e) {
17287
17422
  e.preventDefault();
17288
17423
  let t = e.target instanceof Node ? getActiveElement(e.target) : null;
17289
- set(R, t instanceof HTMLElement && t !== document.body ? t : null, !0), G(e.clientX, e.clientY);
17424
+ set(R, t instanceof HTMLElement && t !== document.body ? t : null, !0), be(e.clientX, e.clientY);
17290
17425
  }
17291
- function ot(e) {
17426
+ function ct(e) {
17292
17427
  switch (e.key) {
17293
17428
  case "ArrowDown": {
17294
17429
  e.preventDefault();
17295
17430
  let t = get(S) + 1;
17296
- set(S, t >= get(te).length ? 0 : t, !0), Ue(get(S));
17431
+ set(S, t >= get(ne).length ? 0 : t, !0), it(get(S));
17297
17432
  break;
17298
17433
  }
17299
17434
  case "ArrowUp": {
17300
17435
  e.preventDefault();
17301
17436
  let t = get(S) - 1;
17302
- set(S, t < 0 ? get(te).length - 1 : t, !0), Ue(get(S));
17437
+ set(S, t < 0 ? get(ne).length - 1 : t, !0), it(get(S));
17303
17438
  break;
17304
17439
  }
17305
17440
  case "Home":
17306
- e.preventDefault(), set(S, 0), Ue(get(S));
17441
+ e.preventDefault(), set(S, 0), it(get(S));
17307
17442
  break;
17308
17443
  case "End":
17309
- e.preventDefault(), set(S, get(te).length - 1), Ue(get(S));
17444
+ e.preventDefault(), set(S, get(ne).length - 1), it(get(S));
17310
17445
  break;
17311
17446
  case "Enter":
17312
17447
  case " ":
17313
- e.preventDefault(), get(S) >= 0 && get(S) < get(te).length && Me(get(te)[get(S)]);
17448
+ e.preventDefault(), get(S) >= 0 && get(S) < get(ne).length && Re(get(ne)[get(S)]);
17314
17449
  break;
17315
17450
  case "Tab":
17316
- be();
17451
+ Me();
17317
17452
  break;
17318
17453
  }
17319
17454
  }
17320
- function ct(e) {
17455
+ function lt(e) {
17321
17456
  return { destroy: registerDismissible({
17322
17457
  element: () => get(p),
17323
- onEscape: be,
17324
- onOutside: be
17458
+ onEscape: Me,
17459
+ onOutside: Me
17325
17460
  }) };
17326
17461
  }
17327
- var lt = {
17462
+ var ut = {
17328
17463
  get items() {
17329
17464
  return n();
17330
17465
  },
@@ -17379,22 +17514,22 @@ function ContextMenu(e, t) {
17379
17514
  set classes(e) {
17380
17515
  f(e), flushSync();
17381
17516
  }
17382
- }, ut = root_5$31(), dt = first_child(ut);
17383
- attribute_effect(dt, () => ({
17517
+ }, dt = root_5$31(), ft = first_child(dt);
17518
+ attribute_effect(ft, () => ({
17384
17519
  class: `context-menu-container ${f() ?? "" ?? ""}`,
17385
- oncontextmenu: at,
17520
+ oncontextmenu: ot,
17386
17521
  ...i() ? { role: "application" } : {},
17387
17522
  "data-pw": o(),
17388
17523
  testID: o()
17389
17524
  }), void 0, void 0, void 0, "svelte-1hf60pq");
17390
- var ft = child(dt), pt = (e) => {
17525
+ var pt = child(ft), mt = (e) => {
17391
17526
  var t = comment();
17392
17527
  snippet(first_child(t), s), append(e, t);
17393
17528
  };
17394
- if_block(ft, (e) => {
17395
- typeof s() == "function" && e(pt);
17396
- }), reset(dt), bind_this(dt, (e) => set(h, e), () => get(h));
17397
- var mt = sibling(dt, 2), ht = (e) => {
17529
+ if_block(pt, (e) => {
17530
+ typeof s() == "function" && e(mt);
17531
+ }), reset(ft), bind_this(ft, (e) => set(h, e), () => get(h));
17532
+ var ht = sibling(ft, 2), gt = (e) => {
17398
17533
  var t = root_4$34();
17399
17534
  each(t, 21, n, (e) => e.value, (e, t) => {
17400
17535
  var n = comment(), i = first_child(n), a = (e) => {
@@ -17422,20 +17557,22 @@ function ContextMenu(e, t) {
17422
17557
  "context-menu-item-danger": get(t).danger,
17423
17558
  "context-menu-item-disabled": get(t).disabled
17424
17559
  }), set_attribute(n, "tabindex", get(t).disabled ? -1 : 0), set_attribute(n, "aria-disabled", get(t).disabled ? "true" : null), set_attribute(n, "data-pw", o() ? `${o()}-item-${get(t).value}` : null), set_attribute(n, "testid", o() ? `${o()}-item-${get(t).value}` : null), set_text(l, get(t).label);
17425
- }), delegated("click", n, () => Me(get(t))), delegated("keydown", n, (e) => {
17426
- (e.key === "Enter" || e.key === " ") && (e.preventDefault(), Me(get(t)));
17560
+ }), delegated("click", n, () => Re(get(t))), delegated("keydown", n, (e) => {
17561
+ (e.key === "Enter" || e.key === " ") && (e.preventDefault(), Re(get(t)));
17427
17562
  }), event("focus", n, () => {
17428
- get(t).disabled || set(S, it(get(t)), !0);
17563
+ get(t).disabled || set(S, at(get(t)), !0);
17429
17564
  }), append(e, n);
17430
17565
  };
17431
17566
  if_block(i, (e) => {
17432
17567
  get(t).separator ? e(a) : e(s, -1);
17433
17568
  }), append(e, n);
17434
- }), reset(t), bind_this(t, (e) => set(p, e), () => get(p)), action(t, (e) => ct?.(e)), template_effect(() => set_style(t, `left: ${get(C) ?? ""}px; top: ${get(k) ?? ""}px; --context-menu-max-height: ${a() ?? ""};`)), delegated("keydown", t, ot), append(e, t);
17569
+ }), reset(t), bind_this(t, (e) => set(p, e), () => get(p)), action(t, (e) => lt?.(e)), template_effect(() => {
17570
+ set_style(t, `left: ${get(C) ?? ""}px; top: ${get(k) ?? ""}px; --context-menu-max-height: ${a() ?? ""};`), t.inert = !i();
17571
+ }), delegated("keydown", t, ct), transition(1, t, () => tokenizedFly, () => te), transition(2, t, () => tokenizedFly, () => te), append(e, t);
17435
17572
  };
17436
- return if_block(mt, (e) => {
17437
- i() && e(ht);
17438
- }), append(e, ut), pop(lt);
17573
+ return if_block(ht, (e) => {
17574
+ i() && e(gt);
17575
+ }), append(e, dt), pop(ut);
17439
17576
  }
17440
17577
  delegate(["keydown", "click"]), create_custom_element(ContextMenu, {
17441
17578
  items: {},
@@ -18377,7 +18514,22 @@ function Menu(e, t) {
18377
18514
  let e = get(G).getBoundingClientRect(), t = get(be).getBoundingClientRect(), n = window.innerWidth, i = window.innerHeight, a = e.left + t.width > n - 8, o = e.right - t.width >= 8, s = a && o ? "right" : "left", c = e.bottom + t.height > i - 8, l = e.top - t.height >= 8;
18378
18515
  return `${c && l ? "top" : "bottom"}-${s}`;
18379
18516
  }
18380
- let pt = 4;
18517
+ let pt = 4, mt = {
18518
+ y: 12,
18519
+ durationTokens: [
18520
+ "--menu-panel-transition-duration",
18521
+ "--duration-quick",
18522
+ "--motion-duration"
18523
+ ],
18524
+ fallbackDuration: 150,
18525
+ distanceTokens: ["--menu-panel-transition-distance", "--distance-medium"],
18526
+ fallbackDistance: 12,
18527
+ easingTokens: [
18528
+ "--menu-panel-transition-easing",
18529
+ "--ease-smooth-out",
18530
+ "--motion-easing"
18531
+ ]
18532
+ };
18381
18533
  user_effect(() => {
18382
18534
  if (!ne() || !i() || typeof window > "u") return;
18383
18535
  let e = null, t = () => {
@@ -18392,12 +18544,12 @@ function Menu(e, t) {
18392
18544
  window.removeEventListener("scroll", t, { capture: !0 }), window.removeEventListener("resize", t), e !== null && cancelAnimationFrame(e);
18393
18545
  };
18394
18546
  });
18395
- let mt = (e) => {
18547
+ let ht = (e) => {
18396
18548
  let t = e.getRootNode();
18397
18549
  return t instanceof ShadowRoot ? t : document.body;
18398
- }, ht = (e) => {
18399
- if (ne()) return mt(e).appendChild(e), { destroy: () => e.remove() };
18400
- }, gt = /* @__PURE__ */ user_derived(() => {
18550
+ }, gt = (e) => {
18551
+ if (ne()) return ht(e).appendChild(e), { destroy: () => e.remove() };
18552
+ }, _t = /* @__PURE__ */ user_derived(() => {
18401
18553
  if (!ne() || !i() || get(G) === null) return "";
18402
18554
  get(it);
18403
18555
  let e = get(G).getBoundingClientRect(), t = typeof window > "u" ? {
@@ -18422,21 +18574,21 @@ function Menu(e, t) {
18422
18574
  viewport: t
18423
18575
  });
18424
18576
  return `position:fixed;left:${n}px;top:${a}px;right:auto;bottom:auto;margin:0;z-index:var(--menu-z-index,1000);`;
18425
- }), _t = /* @__PURE__ */ user_derived(() => n().filter((e) => e.separator !== !0 && e.disabled !== !0)), vt = /* @__PURE__ */ user_derived(() => new SvelteMap(get(_t).map((e, t) => [e, t])));
18426
- function yt() {
18427
- i() ? xt() : bt();
18577
+ }), vt = /* @__PURE__ */ user_derived(() => n().filter((e) => e.separator !== !0 && e.disabled !== !0)), yt = /* @__PURE__ */ user_derived(() => new SvelteMap(get(vt).map((e, t) => [e, t])));
18578
+ function bt() {
18579
+ i() ? St() : xt();
18428
18580
  }
18429
- function bt(e = null) {
18581
+ function xt(e = null) {
18430
18582
  i(!0), te() === "auto" ? (set(lt, "bottom-left"), set(ut, !0)) : (set(lt, te()), set(ut, !1));
18431
- let t = h() == null ? null : n().find((e) => e.value === h() && e.disabled !== !0) ?? null, a = e ?? (t === null ? 0 : Tt(t));
18583
+ let t = h() == null ? null : n().find((e) => e.value === h() && e.disabled !== !0) ?? null, a = e ?? (t === null ? 0 : Et(t));
18432
18584
  set(at, a, !0), l()?.(), tick().then(() => {
18433
- te() === "auto" && (set(lt, ft(), !0), set(ut, !1)), wt(a);
18585
+ te() === "auto" && (set(lt, ft(), !0), set(ut, !1)), Tt(a);
18434
18586
  });
18435
18587
  }
18436
- function xt() {
18437
- i(!1), set(at, -1), set(ot, ""), u()?.(), St();
18438
- }
18439
18588
  function St() {
18589
+ i() && (i(!1), set(at, -1), set(ot, ""), u()?.(), Ct());
18590
+ }
18591
+ function Ct() {
18440
18592
  if (get(Me) !== null) {
18441
18593
  if (s()) {
18442
18594
  let e = get(Me).querySelector("button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])");
@@ -18448,79 +18600,79 @@ function Menu(e, t) {
18448
18600
  get(Me).focus({ preventScroll: !0 });
18449
18601
  }
18450
18602
  }
18451
- function Ct(e) {
18452
- e.disabled !== !0 && (c()?.(e), xt());
18453
- }
18454
18603
  function wt(e) {
18604
+ !i() || e.disabled === !0 || (c()?.(e), St());
18605
+ }
18606
+ function Tt(e) {
18455
18607
  if (get(be) === null) return;
18456
18608
  let t = get(be).querySelectorAll(`[role="${get(re)}"]:not([aria-disabled="true"])`), n = t.item(e);
18457
18609
  e >= 0 && e < t.length && n instanceof HTMLElement && n.focus();
18458
18610
  }
18459
- function Tt(e) {
18460
- return get(vt).get(e) ?? -1;
18461
- }
18462
18611
  function Et(e) {
18463
- e.key === "Enter" || e.key === " " || e.key === "ArrowDown" ? (e.preventDefault(), bt()) : e.key === "ArrowUp" && (e.preventDefault(), bt(get(_t).length - 1));
18612
+ return get(yt).get(e) ?? -1;
18464
18613
  }
18465
18614
  function Dt(e) {
18466
- e.key === "ArrowDown" ? (e.preventDefault(), bt()) : e.key === "ArrowUp" && (e.preventDefault(), bt(get(_t).length - 1));
18615
+ e.key === "Enter" || e.key === " " || e.key === "ArrowDown" ? (e.preventDefault(), xt()) : e.key === "ArrowUp" && (e.preventDefault(), xt(get(vt).length - 1));
18467
18616
  }
18468
18617
  function Ot(e) {
18618
+ e.key === "ArrowDown" ? (e.preventDefault(), xt()) : e.key === "ArrowUp" && (e.preventDefault(), xt(get(vt).length - 1));
18619
+ }
18620
+ function kt(e) {
18469
18621
  switch (e.key) {
18470
18622
  case "ArrowDown": {
18471
18623
  e.preventDefault();
18472
18624
  let t = get(at) + 1;
18473
- set(at, t >= get(_t).length ? 0 : t, !0), wt(get(at));
18625
+ set(at, t >= get(vt).length ? 0 : t, !0), Tt(get(at));
18474
18626
  break;
18475
18627
  }
18476
18628
  case "ArrowUp": {
18477
18629
  e.preventDefault();
18478
18630
  let t = get(at) - 1;
18479
- set(at, t < 0 ? get(_t).length - 1 : t, !0), wt(get(at));
18631
+ set(at, t < 0 ? get(vt).length - 1 : t, !0), Tt(get(at));
18480
18632
  break;
18481
18633
  }
18482
18634
  case "Home":
18483
- e.preventDefault(), set(at, 0), wt(get(at));
18635
+ e.preventDefault(), set(at, 0), Tt(get(at));
18484
18636
  break;
18485
18637
  case "End":
18486
- e.preventDefault(), set(at, get(_t).length - 1), wt(get(at));
18638
+ e.preventDefault(), set(at, get(vt).length - 1), Tt(get(at));
18487
18639
  break;
18488
18640
  case "Enter":
18489
18641
  case " ": {
18490
18642
  e.preventDefault();
18491
- let t = get(_t).at(get(at));
18492
- get(at) >= 0 && t !== void 0 && Ct(t);
18643
+ let t = get(vt).at(get(at));
18644
+ get(at) >= 0 && t !== void 0 && wt(t);
18493
18645
  break;
18494
18646
  }
18495
18647
  case "Tab":
18496
- xt();
18648
+ St();
18497
18649
  break;
18498
18650
  default:
18499
- e.key.length === 1 && !e.ctrlKey && !e.metaKey && (e.preventDefault(), kt(e.key));
18651
+ e.key.length === 1 && !e.ctrlKey && !e.metaKey && (e.preventDefault(), At(e.key));
18500
18652
  break;
18501
18653
  }
18502
18654
  }
18503
- function kt(e) {
18655
+ function At(e) {
18504
18656
  get(ct) !== null && clearTimeout(get(ct)), set(ot, get(ot) + e.toLowerCase()), set(ct, setTimeout(() => {
18505
18657
  set(ot, "");
18506
18658
  }, 500), !0);
18507
- let t = get(_t).findIndex((e) => e.label.toLowerCase().startsWith(get(ot)));
18508
- t >= 0 && (set(at, t, !0), wt(get(at)));
18509
- }
18510
- function At(e) {
18511
- eventHitsInside(get(be), e) || xt();
18659
+ let t = get(vt).findIndex((e) => e.label.toLowerCase().startsWith(get(ot)));
18660
+ t >= 0 && (set(at, t, !0), Tt(get(at)));
18512
18661
  }
18513
18662
  function jt(e) {
18663
+ eventHitsInside(get(be), e) || St();
18664
+ }
18665
+ function Mt(e) {
18514
18666
  return { destroy: registerDismissible({
18515
18667
  element: () => get(G),
18516
- onEscape: xt,
18517
- onOutside: At
18668
+ onEscape: St,
18669
+ onOutside: jt
18518
18670
  }) };
18519
18671
  }
18520
18672
  onDestroy(() => {
18521
18673
  get(ct) !== null && clearTimeout(get(ct));
18522
18674
  });
18523
- var Mt = {
18675
+ var Nt = {
18524
18676
  get items() {
18525
18677
  return n();
18526
18678
  },
@@ -18623,12 +18775,12 @@ function Menu(e, t) {
18623
18775
  set usePortal(e = !1) {
18624
18776
  ne(e), flushSync();
18625
18777
  }
18626
- }, Nt = root_7$23(), Pt = child(Nt), It = (e) => {
18778
+ }, Pt = root_7$23(), It = child(Pt), Lt = (e) => {
18627
18779
  var t = root_1$51(), n = child(t), a = (e) => {
18628
18780
  var t = comment();
18629
18781
  snippet(first_child(t), o, () => ({
18630
- onclick: yt,
18631
- onkeydown: Dt,
18782
+ onclick: bt,
18783
+ onkeydown: Ot,
18632
18784
  ariaHaspopup: "menu",
18633
18785
  ariaExpanded: i()
18634
18786
  })), append(e, t);
@@ -18636,12 +18788,12 @@ function Menu(e, t) {
18636
18788
  if_block(n, (e) => {
18637
18789
  typeof o() == "function" && e(a);
18638
18790
  }), reset(t), bind_this(t, (e) => set(Me, e), () => get(Me)), append(e, t);
18639
- }, Lt = (e) => {
18791
+ }, Rt = (e) => {
18640
18792
  var t = root_2$40(), n = child(t), a = (e) => {
18641
18793
  var t = comment();
18642
18794
  snippet(first_child(t), o, () => ({
18643
- onclick: yt,
18644
- onkeydown: Et,
18795
+ onclick: bt,
18796
+ onkeydown: Dt,
18645
18797
  ariaHaspopup: "menu",
18646
18798
  ariaExpanded: i()
18647
18799
  })), append(e, t);
@@ -18650,14 +18802,14 @@ function Menu(e, t) {
18650
18802
  typeof o() == "function" && e(a);
18651
18803
  }), reset(t), bind_this(t, (e) => set(Me, e), () => get(Me)), template_effect(() => {
18652
18804
  set_attribute(t, "aria-expanded", i()), set_attribute(t, "aria-label", k() ?? null);
18653
- }), delegated("click", t, yt), delegated("keydown", t, Et), append(e, t);
18805
+ }), delegated("click", t, bt), delegated("keydown", t, Dt), append(e, t);
18654
18806
  };
18655
- if_block(Pt, (e) => {
18656
- s() ? e(It) : e(Lt, -1);
18807
+ if_block(It, (e) => {
18808
+ s() ? e(Lt) : e(Rt, -1);
18657
18809
  });
18658
- var Rt = sibling(Pt, 2), zt = (e) => {
18810
+ var zt = sibling(It, 2), Bt = (e) => {
18659
18811
  var t = root_6$25();
18660
- let i;
18812
+ let o;
18661
18813
  each(t, 21, n, (e) => e.value, (e, t) => {
18662
18814
  var n = comment(), i = first_child(n), o = (e) => {
18663
18815
  append(e, root_3$36());
@@ -18688,22 +18840,22 @@ function Menu(e, t) {
18688
18840
  "menu-item-disabled": get(t).disabled === !0,
18689
18841
  "menu-item-selected": h() != null && get(t).value === h()
18690
18842
  }), set_attribute(n, "role", get(re)), set_attribute(n, "id", get(t).id), set_attribute(n, "tabindex", get(t).disabled === !0 || S() === "listbox" ? -1 : 0), set_attribute(n, "aria-disabled", get(t).disabled === !0 ? "true" : null), set_attribute(n, "aria-selected", e), set_attribute(n, "data-pw", typeof a() == "string" ? `${a()}-item-${get(t).value}` : null), set_attribute(n, "testid", typeof a() == "string" ? `${a()}-item-${get(t).value}` : null), set_text(l, get(t).label);
18691
- }, [() => S() === "listbox" ? h() == null ? get(at) === Tt(get(t)) ? !0 : null : get(t).value === h() : null]), delegated("click", n, () => Ct(get(t))), event("focus", n, () => {
18692
- get(t).disabled !== !0 && set(at, Tt(get(t)), !0);
18843
+ }, [() => S() === "listbox" ? h() == null ? get(at) === Et(get(t)) ? !0 : null : get(t).value === h() : null]), delegated("click", n, () => wt(get(t))), event("focus", n, () => {
18844
+ get(t).disabled !== !0 && set(at, Et(get(t)), !0);
18693
18845
  }), append(e, n);
18694
18846
  };
18695
18847
  if_block(i, (e) => {
18696
18848
  get(t).separator === !0 ? e(o) : e(s, -1);
18697
18849
  }), append(e, n);
18698
- }), reset(t), bind_this(t, (e) => set(be, e), () => get(be)), effect(() => bind_element_size(t, "clientWidth", (e) => set(Re, e))), effect(() => bind_element_size(t, "clientHeight", (e) => set(Ue, e))), action(t, (e) => ht?.(e)), action(t, (e) => jt?.(e)), template_effect(() => {
18699
- i = set_class(t, 1, `menu-dropdown menu-dropdown-${(te() === "auto" ? get(lt) : te()) ?? ""}`, "svelte-ahcnny", i, { "menu-dropdown-measuring": get(ut) }), set_attribute(t, "role", S()), set_attribute(t, "id", R()), set_attribute(t, "aria-label", C()), set_style(t, get(gt));
18700
- }), delegated("keydown", t, Ot), append(e, t);
18850
+ }), reset(t), bind_this(t, (e) => set(be, e), () => get(be)), effect(() => bind_element_size(t, "clientWidth", (e) => set(Re, e))), effect(() => bind_element_size(t, "clientHeight", (e) => set(Ue, e))), action(t, (e) => gt?.(e)), action(t, (e) => Mt?.(e)), template_effect(() => {
18851
+ o = set_class(t, 1, `menu-dropdown menu-dropdown-${(te() === "auto" ? get(lt) : te()) ?? ""}`, "svelte-ahcnny", o, { "menu-dropdown-measuring": get(ut) }), set_attribute(t, "role", S()), set_attribute(t, "id", R()), set_attribute(t, "aria-label", C()), t.inert = !i(), set_style(t, get(_t));
18852
+ }), delegated("keydown", t, kt), transition(1, t, () => tokenizedFly, () => mt), transition(2, t, () => tokenizedFly, () => mt), append(e, t);
18701
18853
  };
18702
- return if_block(Rt, (e) => {
18703
- i() && e(zt);
18704
- }), reset(Nt), bind_this(Nt, (e) => set(G, e), () => get(G)), template_effect(() => {
18705
- set_class(Nt, 1, `menu-container ${f() ?? "" ?? ""}`, "svelte-ahcnny"), set_attribute(Nt, "data-pw", typeof a() == "string" ? a() : null), set_attribute(Nt, "testid", typeof a() == "string" ? a() : null);
18706
- }), append(e, Nt), pop(Mt);
18854
+ return if_block(zt, (e) => {
18855
+ i() && e(Bt);
18856
+ }), reset(Pt), bind_this(Pt, (e) => set(G, e), () => get(G)), template_effect(() => {
18857
+ set_class(Pt, 1, `menu-container ${f() ?? "" ?? ""}`, "svelte-ahcnny"), set_attribute(Pt, "data-pw", typeof a() == "string" ? a() : null), set_attribute(Pt, "testid", typeof a() == "string" ? a() : null);
18858
+ }), append(e, Pt), pop(Nt);
18707
18859
  }
18708
18860
  delegate(["click", "keydown"]), create_custom_element(Menu, {
18709
18861
  items: {},
@@ -18840,8 +18992,50 @@ function ModalAnimation(e, t) {
18840
18992
  };
18841
18993
  default: return e;
18842
18994
  }
18843
- }), u = /* @__PURE__ */ user_derived(() => ({ duration: prefersReducedMotion() ? 0 : 300 })), f = /* @__PURE__ */ user_derived(() => o() == null ? i() === "top" || i() === "bottom" : o() !== "fade"), p = /* @__PURE__ */ user_derived(() => a() === "ALL");
18844
- var h = {
18995
+ }), u = /* @__PURE__ */ user_derived(() => ({ duration: prefersReducedMotion() ? 0 : 300 })), f = /* @__PURE__ */ user_derived(() => ({
18996
+ x: get(l).x,
18997
+ y: get(l).y,
18998
+ durationTokens: ["--modal-content-open-transition-duration", "--motion-duration"],
18999
+ fallbackDuration: get(l).duration,
19000
+ distanceTokens: ["--modal-content-open-transition-distance", "--distance-overlay"],
19001
+ fallbackDistance: 60,
19002
+ easingTokens: [
19003
+ "--modal-content-open-transition-easing",
19004
+ "--ease-smooth-out",
19005
+ "--motion-easing"
19006
+ ]
19007
+ })), p = /* @__PURE__ */ user_derived(() => ({
19008
+ x: get(l).x,
19009
+ y: get(l).y,
19010
+ durationTokens: ["--modal-content-close-transition-duration", "--motion-duration"],
19011
+ fallbackDuration: get(l).duration,
19012
+ distanceTokens: ["--modal-content-close-transition-distance", "--distance-overlay"],
19013
+ fallbackDistance: 60,
19014
+ easingTokens: [
19015
+ "--modal-content-close-transition-easing",
19016
+ "--ease-smooth-out",
19017
+ "--motion-easing"
19018
+ ]
19019
+ })), h = /* @__PURE__ */ user_derived(() => ({
19020
+ durationTokens: ["--modal-content-open-transition-duration", "--motion-duration"],
19021
+ fallbackDuration: get(u).duration,
19022
+ easingTokens: [
19023
+ "--modal-content-open-transition-easing",
19024
+ "--ease-smooth-out",
19025
+ "--motion-easing"
19026
+ ],
19027
+ easing: linear$1
19028
+ })), S = /* @__PURE__ */ user_derived(() => ({
19029
+ durationTokens: ["--modal-content-close-transition-duration", "--motion-duration"],
19030
+ fallbackDuration: get(u).duration,
19031
+ easingTokens: [
19032
+ "--modal-content-close-transition-easing",
19033
+ "--ease-smooth-out",
19034
+ "--motion-easing"
19035
+ ],
19036
+ easing: linear$1
19037
+ })), C = /* @__PURE__ */ user_derived(() => o() == null ? i() === "top" || i() === "bottom" : o() !== "fade"), k = /* @__PURE__ */ user_derived(() => a() === "ALL");
19038
+ var R = {
18845
19039
  get enable() {
18846
19040
  return n();
18847
19041
  },
@@ -18878,38 +19072,38 @@ function ModalAnimation(e, t) {
18878
19072
  set testId(e) {
18879
19073
  c(e), flushSync();
18880
19074
  }
18881
- }, S = comment(), C = first_child(S), k = (e) => {
19075
+ }, te = comment(), ne = first_child(te), re = (e) => {
18882
19076
  var t = comment(), n = first_child(t), i = (e) => {
18883
19077
  var t = root$54();
18884
19078
  snippet(child(t), () => s() ?? noop), reset(t), template_effect(() => {
18885
19079
  set_attribute(t, "data-pw", typeof c() == "string" ? c() : null), set_attribute(t, "testid", typeof c() == "string" ? c() : null);
18886
- }), transition(5, t, () => fly, () => get(l)), transition(6, t, () => fly, () => get(l)), append(e, t);
19080
+ }), transition(5, t, () => tokenizedFly, () => get(f)), transition(6, t, () => tokenizedFly, () => get(p)), append(e, t);
18887
19081
  }, a = (e) => {
18888
19082
  var t = root$54();
18889
19083
  snippet(child(t), () => s() ?? noop), reset(t), template_effect(() => {
18890
19084
  set_attribute(t, "data-pw", typeof c() == "string" ? c() : null), set_attribute(t, "testid", typeof c() == "string" ? c() : null);
18891
- }), transition(5, t, () => fly, () => get(l)), append(e, t);
19085
+ }), transition(5, t, () => tokenizedFly, () => get(f)), append(e, t);
18892
19086
  }, o = (e) => {
18893
19087
  var t = root$54();
18894
19088
  snippet(child(t), () => s() ?? noop), reset(t), template_effect(() => {
18895
19089
  set_attribute(t, "data-pw", typeof c() == "string" ? c() : null), set_attribute(t, "testid", typeof c() == "string" ? c() : null);
18896
- }), transition(5, t, () => fade, () => get(u)), transition(6, t, () => fade, () => get(u)), append(e, t);
18897
- }, h = (e) => {
19090
+ }), transition(5, t, () => tokenizedFly, () => get(h)), transition(6, t, () => tokenizedFly, () => get(S)), append(e, t);
19091
+ }, l = (e) => {
18898
19092
  var t = root$54();
18899
19093
  snippet(child(t), () => s() ?? noop), reset(t), template_effect(() => {
18900
19094
  set_attribute(t, "data-pw", typeof c() == "string" ? c() : null), set_attribute(t, "testid", typeof c() == "string" ? c() : null);
18901
- }), transition(5, t, () => fade, () => get(u)), append(e, t);
19095
+ }), transition(5, t, () => tokenizedFly, () => get(h)), append(e, t);
18902
19096
  };
18903
19097
  if_block(n, (e) => {
18904
- get(f) && get(p) ? e(i) : get(f) ? e(a, 1) : get(p) ? e(o, 2) : e(h, -1);
19098
+ get(C) && get(k) ? e(i) : get(C) ? e(a, 1) : get(k) ? e(o, 2) : e(l, -1);
18905
19099
  }), append(e, t);
18906
- }, R = (e) => {
19100
+ }, G = (e) => {
18907
19101
  var t = comment();
18908
19102
  snippet(first_child(t), () => s() ?? noop), append(e, t);
18909
19103
  };
18910
- return if_block(C, (e) => {
18911
- n() ? e(k) : e(R, -1);
18912
- }), append(e, S), pop(h);
19104
+ return if_block(ne, (e) => {
19105
+ n() ? e(re) : e(G, -1);
19106
+ }), append(e, te), pop(R);
18913
19107
  }
18914
19108
  create_custom_element(ModalAnimation, {
18915
19109
  enable: {},
@@ -18924,8 +19118,16 @@ create_custom_element(ModalAnimation, {
18924
19118
  var root$53 = /* @__PURE__ */ from_html("<div><!></div>");
18925
19119
  function OverlayAnimation(e, t) {
18926
19120
  push(t, !0);
18927
- let n = prop(t, "children", 7), i = prop(t, "testId", 7), a = prop(t, "fadeIn", 7, !1);
18928
- var o = {
19121
+ let n = prop(t, "children", 7), i = prop(t, "testId", 7), a = prop(t, "fadeIn", 7, !1), o = {
19122
+ durationTokens: ["--modal-overlay-open-transition-duration", "--motion-duration"],
19123
+ fallbackDuration: 350,
19124
+ easing: linear$1
19125
+ }, s = {
19126
+ durationTokens: ["--modal-overlay-close-transition-duration", "--motion-duration"],
19127
+ fallbackDuration: 350,
19128
+ easing: linear$1
19129
+ };
19130
+ var c = {
18929
19131
  get children() {
18930
19132
  return n();
18931
19133
  },
@@ -18944,20 +19146,20 @@ function OverlayAnimation(e, t) {
18944
19146
  set fadeIn(e = !1) {
18945
19147
  a(e), flushSync();
18946
19148
  }
18947
- }, s = comment(), c = first_child(s), l = (e) => {
19149
+ }, l = comment(), u = first_child(l), f = (e) => {
18948
19150
  var t = root$53();
18949
19151
  snippet(child(t), () => n() ?? noop), reset(t), template_effect(() => {
18950
19152
  set_attribute(t, "data-pw", typeof i() == "string" ? i() : null), set_attribute(t, "testid", typeof i() == "string" ? i() : null);
18951
- }), transition(5, t, () => fade, () => ({ duration: 350 })), transition(2, t, () => fade, () => ({ duration: 350 })), append(e, t);
18952
- }, u = (e) => {
19153
+ }), transition(5, t, () => tokenizedFly, () => o), transition(2, t, () => tokenizedFly, () => s), append(e, t);
19154
+ }, p = (e) => {
18953
19155
  var t = root$53();
18954
19156
  snippet(child(t), () => n() ?? noop), reset(t), template_effect(() => {
18955
19157
  set_attribute(t, "data-pw", typeof i() == "string" ? i() : null), set_attribute(t, "testid", typeof i() == "string" ? i() : null);
18956
- }), transition(2, t, () => fade, () => ({ duration: 350 })), append(e, t);
19158
+ }), transition(2, t, () => tokenizedFly, () => s), append(e, t);
18957
19159
  };
18958
- return if_block(c, (e) => {
18959
- a() ? e(l) : e(u, -1);
18960
- }), append(e, s), pop(o);
19160
+ return if_block(u, (e) => {
19161
+ a() ? e(f) : e(p, -1);
19162
+ }), append(e, l), pop(c);
18961
19163
  }
18962
19164
  create_custom_element(OverlayAnimation, {
18963
19165
  children: {},
@@ -18987,7 +19189,9 @@ function Modal(e, t) {
18987
19189
  }
18988
19190
  };
18989
19191
  }, Ct = () => {
18990
- set(a, !0), be()?.(), ct()?.();
19192
+ set(a, !0), bt(() => {
19193
+ be()?.(), ct()?.();
19194
+ });
18991
19195
  }, wt = (e) => {
18992
19196
  Me()?.(e);
18993
19197
  }, Tt = (e) => {
@@ -19010,7 +19214,9 @@ function Modal(e, t) {
19010
19214
  t !== null && (e.preventDefault(), t.focus());
19011
19215
  }
19012
19216
  }, At = () => {
19013
- at()?.(), ct()?.();
19217
+ bt(() => {
19218
+ at()?.(), ct()?.();
19219
+ });
19014
19220
  }, jt = (e) => {
19015
19221
  (e.key === "Enter" || e.key === " ") && get(vt) && e.target === get(n) && (e.preventDefault(), bt(() => {
19016
19222
  at()?.(), ct()?.();
@@ -20073,7 +20279,7 @@ function computeSelectDropdownPosition(e) {
20073
20279
  //#region src/lib/Select/Select.svelte
20074
20280
  var root_1$46 = /* @__PURE__ */ from_html("<div class=\"select-empty svelte-52lifo\">No results</div>"), root_2$35 = /* @__PURE__ */ from_html("<span class=\"select-option-check svelte-52lifo\"></span>"), root_3$32 = /* @__PURE__ */ from_html("<span class=\"select-option-dash svelte-52lifo\"></span>"), root_4$27 = /* @__PURE__ */ from_html("<span aria-hidden=\"true\"><!></span>"), root_5$25 = /* @__PURE__ */ from_html("<div><!> </div>"), root_6$23 = /* @__PURE__ */ from_html("<span class=\"select-option-tick svelte-52lifo\" aria-hidden=\"true\"></span>"), root_7$21 = /* @__PURE__ */ from_html("<div><!> <!> <span class=\"select-option-label svelte-52lifo\"> </span> <!></div>"), root_8$19 = /* @__PURE__ */ from_html("<div class=\"select-bottom-content svelte-52lifo\"><!></div>"), root_9$16 = /* @__PURE__ */ from_html("<!> <!>", 1), root_10$15 = /* @__PURE__ */ from_html("<input type=\"hidden\"/>"), root_11$13 = /* @__PURE__ */ from_html("<input class=\"select-search svelte-52lifo\" type=\"text\" autocomplete=\"off\"/>"), root_12$12 = /* @__PURE__ */ from_html("<span class=\"select-placeholder svelte-52lifo\"> </span>"), root_13$10 = /* @__PURE__ */ from_html("<span> </span>"), root_14$9 = /* @__PURE__ */ from_html("<button type=\"button\" class=\"select-clear svelte-52lifo\" aria-label=\"Clear selection\"><span aria-hidden=\"true\">×</span></button>"), root_15$7 = /* @__PURE__ */ from_html("<div role=\"alert\" class=\"select-error-message svelte-52lifo\"> </div>"), root_16$6 = /* @__PURE__ */ from_html("<div><input class=\"select-menu-search svelte-52lifo\" type=\"search\" aria-label=\"Search options\" autocomplete=\"off\"/> <div class=\"select-menu-list svelte-52lifo\" role=\"listbox\" tabindex=\"-1\"><!></div> <!></div>"), root_17$6 = /* @__PURE__ */ from_html("<div role=\"listbox\"><!></div>"), root_18$5 = /* @__PURE__ */ from_html("<div><!> <div><div><!> <!> <span class=\"select-arrow svelte-52lifo\"></span></div> <!></div> <!> <!></div>"), $$css$95 = {
20075
20281
  hash: "svelte-52lifo",
20076
- code: ".select.svelte-52lifo {position:relative;width:var(--select-width, 100%);font-family:var(--select-font-family, inherit);font-size:var(--select-font-size, 14px);color:var(--select-color, #333333);}.select.disabled.svelte-52lifo {opacity:var(--select-disabled-opacity, 0.5);cursor:var(--select-disabled-cursor, not-allowed);pointer-events:none;}.select-trigger.svelte-52lifo {display:flex;flex-wrap:wrap;align-items:center;gap:var(--select-trigger-gap, 4px);min-height:var(--select-trigger-min-height, 40px);padding:var(--select-trigger-padding, 8px 12px);background:var(--select-trigger-background, #ffffff);border:var(--select-trigger-border, 1px solid #cccccc);border-radius:var(--select-trigger-border-radius, var(--radius, 4px));cursor:pointer;outline:none;-webkit-tap-highlight-color:transparent;transition:var(--select-trigger-transition, border-color 0.15s, box-shadow 0.15s);}.select-trigger.svelte-52lifo .select-left-icon {--image-width: var(--select-left-icon-size, 16px);--image-height: var(--select-left-icon-size, 16px);--image-object-fit: contain;\n\n /* The icon inlines, so a currentColor asset resolves against this. Defaults to\n `inherit` — the trigger's text colour, which is what it already did — so this is\n a hook, not a change. Without it a consumer cannot tint the icon independently\n of the label, and an icon migrated to currentColor is forced to match its label\n exactly, flattening any deliberate muted-icon/strong-label hierarchy. */color:var(--select-left-icon-color, inherit);flex:none;}.select-trigger.svelte-52lifo:hover:not(.disabled:where(.svelte-52lifo) .select-trigger:where(.svelte-52lifo)) {border-color:var(--select-trigger-hover-border-color, #999999);}.select-trigger.svelte-52lifo:focus-within,\n .select.open.svelte-52lifo .select-trigger:where(.svelte-52lifo) {border-color:var(--select-trigger-focus-border-color, #2563eb);box-shadow:var(--select-trigger-focus-shadow, 0 0 0 2px rgba(37, 99, 235, 0.2));}\n\n /* Pressed feedback on the trigger. `:active` only, so it lasts exactly as\n long as the pointer is down and never lingers as a stuck state the way a\n class-driven one can. */.select.svelte-52lifo:not(.disabled) .select-trigger:where(.svelte-52lifo):active {background:var(--select-trigger-pressed-background, #ededed);}\n\n /* The error border has to outrank BOTH hover and focus/open, or the field\n stops reading as invalid the moment the user enters it -- which is the one\n moment they most need to see it. Listed after them, at equal or higher\n specificity, rather than reached for with !important. */.select.error.svelte-52lifo .select-trigger:where(.svelte-52lifo),\n .select.error.svelte-52lifo .select-trigger:where(.svelte-52lifo):hover,\n .select.error.svelte-52lifo .select-trigger:where(.svelte-52lifo):focus-within,\n .select.error.open.svelte-52lifo .select-trigger:where(.svelte-52lifo) {border-color:var(--select-trigger-error-border-color, #dc2626);}.select.error.svelte-52lifo .select-trigger:where(.svelte-52lifo):focus-within,\n .select.error.open.svelte-52lifo .select-trigger:where(.svelte-52lifo) {box-shadow:var(--select-trigger-error-shadow, 0 0 0 2px rgba(220, 38, 38, 0.2));}.select-error-message.svelte-52lifo {margin-top:var(--select-error-message-margin-top, 4px);font-size:var(--select-error-message-font-size, 12px);color:var(--select-error-message-color, #dc2626);}.select-control.svelte-52lifo {position:relative;}.select-control.has-clear.svelte-52lifo .select-trigger:where(.svelte-52lifo) {padding-inline-end:calc(var(--select-clear-size, 18px) + 36px);}.select-control.has-clear.svelte-52lifo .select-arrow:where(.svelte-52lifo) {position:absolute;right:12px;}.select-clear.svelte-52lifo {position:absolute;right:32px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;flex:none;width:var(--select-clear-size, 18px);height:var(--select-clear-size, 18px);margin:0;padding:0;border:none;border-radius:var(--select-clear-border-radius, var(--radius, 4px));background:var(--select-clear-background, transparent);color:var(--select-clear-color, #666666);font-size:var(--select-clear-font-size, 16px);line-height:1;cursor:pointer;}.select-clear.svelte-52lifo:focus-visible {outline:var(--select-clear-focus-outline, 2px solid currentColor);outline-offset:2px;}.select-clear.svelte-52lifo:hover {background:var(--select-clear-hover-background, #ededed);color:var(--select-clear-hover-color, #111111);}.select-clear.svelte-52lifo:active {background:var(--select-clear-pressed-background, #e0e0e0);}.select-value.svelte-52lifo {flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:var(--select-value-align, left);}.select-placeholder.svelte-52lifo {flex:1;color:var(--select-placeholder-color, #666666);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:var(--select-value-align, left);}.select-search.svelte-52lifo {flex:1;min-width:60px;border:none;outline:none;background:transparent;font-family:inherit;font-size:inherit;color:inherit;padding:0;cursor:text;}.select-search.svelte-52lifo::placeholder {color:var(--select-placeholder-color, #6b7280);}.select-arrow.svelte-52lifo {display:inline-flex;align-items:center;justify-content:center;width:var(--select-arrow-size, 16px);height:var(--select-arrow-size, 16px);color:var(--select-arrow-color, #666666);flex-shrink:0;transition:transform var(--select-arrow-transition-duration, var(--motion-duration, 0.15s))\n var(--select-arrow-transition-easing, var(--motion-easing, ease));}.select.open.svelte-52lifo .select-arrow:where(.svelte-52lifo) {transform:rotate(180deg);}.select-arrow.svelte-52lifo svg {width:100%;height:100%;}\n\n /* Anchors the in-flow panel above the trigger. `margin-top` is what the\n downward panel uses for the gap, so it has to be unset here or the panel\n sits a gap's width too high. */.select-dropdown.select-dropdown-up.svelte-52lifo {top:auto;bottom:100%;margin-top:0;margin-bottom:var(--select-dropdown-gap, 4px);}\n\n /* One-tick measuring pass for placement=\"auto\": the panel needs rendered\n dimensions before the corner is chosen, without a visible flash at the\n wrong corner. */.select-dropdown.select-dropdown-measuring.svelte-52lifo {visibility:hidden;}.select-dropdown.svelte-52lifo {position:absolute;top:100%;left:var(--select-dropdown-left, 0);right:var(--select-dropdown-right, 0);min-width:var(--select-dropdown-min-width, auto);max-width:var(--select-dropdown-max-width, none);width:var(--select-dropdown-width, auto);margin-top:var(--select-dropdown-gap, 4px);background:var(--select-dropdown-background, #ffffff);border:var(--select-dropdown-border, 1px solid #cccccc);border-radius:var(--select-dropdown-border-radius, var(--radius, 4px));box-shadow:var(--select-dropdown-shadow, 0 4px 12px rgba(0, 0, 0, 0.1));max-height:var(--select-dropdown-max-height, 200px);overflow-y:auto;z-index:var(--select-dropdown-z-index, 10);}\n\n /* With the search box inside the panel, the PANEL must stop scrolling and\n the list scroll instead -- otherwise the search box scrolls away as soon\n as the user moves down the results, which is the one control they still\n need. The max-height moves down with the scrolling, so the panel keeps\n growing to fit the search box plus a list of the same height as before. */.select-dropdown.svelte-52lifo:has(> .select-menu-list:where(.svelte-52lifo)) {max-height:none;overflow-y:visible;display:flex;flex-direction:column;}.select-menu-list.svelte-52lifo {max-height:var(--select-dropdown-max-height, 200px);overflow-y:auto;}.select-menu-search.svelte-52lifo {flex:none;margin:var(--select-menu-search-margin, 6px);padding:var(--select-menu-search-padding, 6px 8px);border:var(--select-menu-search-border, 1px solid #cccccc);border-radius:var(--select-menu-search-border-radius, var(--radius, 4px));background:var(--select-menu-search-background, #ffffff);color:var(--select-menu-search-color, inherit);font-family:inherit;font-size:var(--select-menu-search-font-size, inherit);outline:none;}.select-menu-search.svelte-52lifo:focus-visible {border-color:var(--select-menu-search-focus-border-color, #2563eb);box-shadow:var(--select-menu-search-focus-shadow, 0 0 0 2px rgba(37, 99, 235, 0.2));}.select-dropdown-right.svelte-52lifo {left:auto;right:var(--select-dropdown-right, 0);min-width:var(--select-dropdown-min-width, 100%);max-width:var(--select-dropdown-max-width, none);width:var(--select-dropdown-width, max-content);}.select-dropdown.select-dropdown-portal.svelte-52lifo {\n /* Portaled to <body>: fixed positioning escapes overflow/scroll ancestors\n (e.g. a table cell). Placement (top/left/width/min-width) is set inline\n from the trigger rect, so neutralise the in-flow anchoring here. */position:fixed;right:auto;margin-top:0;\n /* In the root stacking context the panel competes with modals/sheets rather\n than painting above same-container siblings, so default it into the\n top-layer band (consumers still override via --select-dropdown-z-index). */z-index:var(--select-dropdown-z-index, 1000);}.select-option.svelte-52lifo {padding:var(--select-option-padding, 8px 12px);color:var(--select-option-color, #333333);font-size:var(--select-option-font-size, inherit);cursor:pointer;transition:background var(--select-option-transition-duration, var(--motion-duration, 0.1s))\n var(--select-option-transition-easing, var(--motion-easing, ease));}\n\n /* Per-option leading icon (SelectItem.icon). Kept inline + vertically centred so\n it needs no change to the option's display and can't regress icon-less lists. */.select-option.svelte-52lifo .select-option-icon {--image-width: var(--select-option-icon-size, 16px);--image-height: var(--select-option-icon-size, 16px);--image-object-fit: contain;color:var(--select-option-icon-color, inherit);vertical-align:middle;margin-right:var(--select-option-icon-gap, 8px);}.select-option.multi.svelte-52lifo {display:flex;align-items:center;gap:var(--select-option-gap, 0);}.select-option.svelte-52lifo:hover,\n .select-option.highlighted.svelte-52lifo {background:var(--select-option-hover-background, #f0f0f0);color:var(--select-option-hover-color, var(--select-option-color, #333333));}.select-option.selected.svelte-52lifo {background:var(--select-option-selected-background, #e8f0fe);color:var(--select-option-selected-color, var(--select-option-color, #333333));}.select-option-disabled.svelte-52lifo {opacity:var(--select-option-disabled-opacity, 0.4);cursor:var(--select-option-disabled-cursor, not-allowed);pointer-events:none;}.select-option.selected.highlighted.svelte-52lifo {background:var(\n --select-option-selected-hover-background,\n var(--select-option-selected-background, #e8f0fe)\n );}\n\n /* Pressed feedback comes last, and each selector carries enough specificity\n to outrank its non-active counterpart above. An option is always hovered\n when pressed and is often selected too, so a single low-specificity rule\n earlier in the sheet would be correct in isolation and invisible in\n practice -- which is how a pressed state ends up shipping as dead CSS.\n A press on an already-selected row still has to confirm the tap landed. */.select-option.svelte-52lifo:active,\n .select-option.selected.svelte-52lifo:active,\n .select-option.selected.highlighted.svelte-52lifo:active {background:var(--select-option-pressed-background, #ededed);}.select-option-indicator.svelte-52lifo {display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;box-sizing:border-box;width:var(--select-option-indicator-size, 18px);height:var(--select-option-indicator-size, 18px);border:var(--select-option-indicator-border, 2px solid #757575);border-radius:var(--select-option-indicator-border-radius, var(--radius, 4px));background-color:var(--select-option-indicator-background, transparent);color:var(--select-option-indicator-color, currentColor);transition:background-color\n var(--select-option-indicator-transition-duration, var(--motion-duration, 0.15s))\n var(--select-option-indicator-transition-easing, var(--motion-easing, ease)),\n border-color var(--select-option-indicator-transition-duration, var(--motion-duration, 0.15s))\n var(--select-option-indicator-transition-easing, var(--motion-easing, ease));}.select-option-indicator.checked.svelte-52lifo {background-color:var(--select-option-indicator-checked-background, #2196f3);border-color:var(--select-option-indicator-checked-border-color, #2196f3);}.select-option-check.svelte-52lifo {display:inline-flex;align-items:center;justify-content:center;width:var(--select-option-indicator-check-size, 12px);height:var(--select-option-indicator-check-size, 12px);color:var(--select-option-indicator-check-color, #ffffff);}.select-option-check.svelte-52lifo svg {width:100%;height:100%;}.select-option-indicator.indeterminate.svelte-52lifo {background-color:var(--select-option-indicator-checked-background, #2196f3);border-color:var(--select-option-indicator-checked-border-color, #2196f3);}.select-option-dash.svelte-52lifo {width:var(--select-option-indicator-dash-size, 10px);height:var(--select-option-indicator-dash-thickness, 2px);border-radius:1px;background-color:var(--select-option-indicator-dash-color, #ffffff);}.select-option.select-all.svelte-52lifo {border-bottom:var(--select-all-border, none);font-weight:var(--select-all-font-weight, inherit);}.select-empty.svelte-52lifo {padding:var(--select-empty-padding, 8px 12px);color:var(--select-empty-color, #999999);font-style:var(--select-empty-font-style, italic);font-size:var(--select-empty-font-size, inherit);}.select-bottom-content.svelte-52lifo {border-top:var(--select-bottom-content-border, none);padding:var(--select-bottom-content-padding, 8px 12px);}.select-trigger.svelte-52lifo .pill {--pill-background: var(--select-pill-background, #e0e0e0);--pill-color: var(--select-pill-color, #333333);--pill-border-radius: var(--select-pill-border-radius, 999px);--pill-padding: var(--select-pill-padding, 2px 8px);--pill-font-size: var(--select-pill-font-size, 13px);}\n\n /* Ghost hierarchy: transparent, borderless trigger */.select.ghost.svelte-52lifo .select-trigger:where(.svelte-52lifo) {background:var(--select-ghost-trigger-background, transparent);border-color:var(--select-ghost-trigger-border-color, transparent);box-shadow:none;}.select.ghost.svelte-52lifo .select-trigger:where(.svelte-52lifo):hover:not(.disabled:where(.svelte-52lifo) .select-trigger:where(.svelte-52lifo)) {border-color:var(--select-ghost-trigger-hover-border-color, transparent);background:var(--select-ghost-trigger-hover-background, rgba(0, 0, 0, 0.04));}.select.ghost.open.svelte-52lifo .select-trigger:where(.svelte-52lifo) {border-color:var(--select-ghost-trigger-open-border-color, transparent);background:var(--select-ghost-trigger-open-background, rgba(0, 0, 0, 0.06));box-shadow:none;}\n\n /* Single-select right-edge tick (showSelectedTick) */.select-option.tickable.svelte-52lifo {display:flex;align-items:center;gap:8px;}.select-option.tickable.svelte-52lifo .select-option-label:where(.svelte-52lifo) {flex:1 1 auto;min-width:0;}.select-option-tick.svelte-52lifo {display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--select-option-tick-size, 16px);height:var(--select-option-tick-size, 16px);color:var(--select-option-tick-color, #2563eb);}.select-option-tick.svelte-52lifo svg {width:100%;height:100%;}\n\n /* The chevron rotates between closed and open. Small, but it is a transform,\n and the two end states are each meaningful, so dropping the tween just makes\n the flip instant. */\n @media (prefers-reduced-motion: reduce) {.select-arrow.svelte-52lifo {transition:none;}\n }"
20282
+ code: ".select.svelte-52lifo {position:relative;width:var(--select-width, 100%);font-family:var(--select-font-family, inherit);font-size:var(--select-font-size, 14px);color:var(--select-color, #333333);}.select.disabled.svelte-52lifo {opacity:var(--select-disabled-opacity, 0.5);cursor:var(--select-disabled-cursor, not-allowed);pointer-events:none;}.select-trigger.svelte-52lifo {display:flex;flex-wrap:wrap;align-items:center;gap:var(--select-trigger-gap, 4px);min-height:var(--select-trigger-min-height, 40px);padding:var(--select-trigger-padding, 8px 12px);background:var(--select-trigger-background, #ffffff);border:var(--select-trigger-border, 1px solid #cccccc);border-radius:var(--select-trigger-border-radius, var(--radius, 4px));cursor:pointer;outline:none;-webkit-tap-highlight-color:transparent;transition:var(\n --select-trigger-transition,\n border-color\n var(\n --select-trigger-transition-duration,\n var(--duration-quick, var(--motion-duration, 0.15s))\n )\n var(--select-trigger-transition-easing, var(--motion-easing, ease)),\n box-shadow\n var(\n --select-trigger-transition-duration,\n var(--duration-quick, var(--motion-duration, 0.15s))\n )\n var(--select-trigger-transition-easing, var(--motion-easing, ease))\n );}.select-trigger.svelte-52lifo .select-left-icon {--image-width: var(--select-left-icon-size, 16px);--image-height: var(--select-left-icon-size, 16px);--image-object-fit: contain;\n\n /* The icon inlines, so a currentColor asset resolves against this. Defaults to\n `inherit` — the trigger's text colour, which is what it already did — so this is\n a hook, not a change. Without it a consumer cannot tint the icon independently\n of the label, and an icon migrated to currentColor is forced to match its label\n exactly, flattening any deliberate muted-icon/strong-label hierarchy. */color:var(--select-left-icon-color, inherit);flex:none;}.select-trigger.svelte-52lifo:hover:not(.disabled:where(.svelte-52lifo) .select-trigger:where(.svelte-52lifo)) {border-color:var(--select-trigger-hover-border-color, #999999);}.select-trigger.svelte-52lifo:focus-within,\n .select.open.svelte-52lifo .select-trigger:where(.svelte-52lifo) {border-color:var(--select-trigger-focus-border-color, #2563eb);box-shadow:var(--select-trigger-focus-shadow, 0 0 0 2px rgba(37, 99, 235, 0.2));}\n\n /* Pressed feedback on the trigger. `:active` only, so it lasts exactly as\n long as the pointer is down and never lingers as a stuck state the way a\n class-driven one can. */.select.svelte-52lifo:not(.disabled) .select-trigger:where(.svelte-52lifo):active {background:var(--select-trigger-pressed-background, #ededed);}\n\n /* The error border has to outrank BOTH hover and focus/open, or the field\n stops reading as invalid the moment the user enters it -- which is the one\n moment they most need to see it. Listed after them, at equal or higher\n specificity, rather than reached for with !important. */.select.error.svelte-52lifo .select-trigger:where(.svelte-52lifo),\n .select.error.svelte-52lifo .select-trigger:where(.svelte-52lifo):hover,\n .select.error.svelte-52lifo .select-trigger:where(.svelte-52lifo):focus-within,\n .select.error.open.svelte-52lifo .select-trigger:where(.svelte-52lifo) {border-color:var(--select-trigger-error-border-color, #dc2626);}.select.error.svelte-52lifo .select-trigger:where(.svelte-52lifo):focus-within,\n .select.error.open.svelte-52lifo .select-trigger:where(.svelte-52lifo) {box-shadow:var(--select-trigger-error-shadow, 0 0 0 2px rgba(220, 38, 38, 0.2));}.select-error-message.svelte-52lifo {margin-top:var(--select-error-message-margin-top, 4px);font-size:var(--select-error-message-font-size, 12px);color:var(--select-error-message-color, #dc2626);}.select-control.svelte-52lifo {position:relative;}.select-control.has-clear.svelte-52lifo .select-trigger:where(.svelte-52lifo) {padding-inline-end:calc(var(--select-clear-size, 18px) + 36px);}.select-control.has-clear.svelte-52lifo .select-arrow:where(.svelte-52lifo) {position:absolute;right:12px;}.select-clear.svelte-52lifo {position:absolute;right:32px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;flex:none;width:var(--select-clear-size, 18px);height:var(--select-clear-size, 18px);margin:0;padding:0;border:none;border-radius:var(--select-clear-border-radius, var(--radius, 4px));background:var(--select-clear-background, transparent);color:var(--select-clear-color, #666666);font-size:var(--select-clear-font-size, 16px);line-height:1;cursor:pointer;}.select-clear.svelte-52lifo:focus-visible {outline:var(--select-clear-focus-outline, 2px solid currentColor);outline-offset:2px;}.select-clear.svelte-52lifo:hover {background:var(--select-clear-hover-background, #ededed);color:var(--select-clear-hover-color, #111111);}.select-clear.svelte-52lifo:active {background:var(--select-clear-pressed-background, #e0e0e0);}.select-value.svelte-52lifo {flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:var(--select-value-align, left);}.select-placeholder.svelte-52lifo {flex:1;color:var(--select-placeholder-color, #666666);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:var(--select-value-align, left);}.select-search.svelte-52lifo {flex:1;min-width:60px;border:none;outline:none;background:transparent;font-family:inherit;font-size:inherit;color:inherit;padding:0;cursor:text;}.select-search.svelte-52lifo::placeholder {color:var(--select-placeholder-color, #6b7280);}.select-arrow.svelte-52lifo {display:inline-flex;align-items:center;justify-content:center;width:var(--select-arrow-size, 16px);height:var(--select-arrow-size, 16px);color:var(--select-arrow-color, #666666);flex-shrink:0;transition:transform\n var(--select-arrow-transition-duration, var(--duration-quick, var(--motion-duration, 0.15s)))\n var(--select-arrow-transition-easing, var(--motion-easing, ease));}.select.open.svelte-52lifo .select-arrow:where(.svelte-52lifo) {transform:rotate(180deg);}.select-arrow.svelte-52lifo svg {width:100%;height:100%;}\n\n /* Anchors the in-flow panel above the trigger. `margin-top` is what the\n downward panel uses for the gap, so it has to be unset here or the panel\n sits a gap's width too high. */.select-dropdown.select-dropdown-up.svelte-52lifo {top:auto;bottom:100%;margin-top:0;margin-bottom:var(--select-dropdown-gap, 4px);}\n\n /* One-tick measuring pass for placement=\"auto\": the panel needs rendered\n dimensions before the corner is chosen, without a visible flash at the\n wrong corner. */.select-dropdown.select-dropdown-measuring.svelte-52lifo {visibility:hidden;}.select-dropdown.svelte-52lifo {position:absolute;top:100%;left:var(--select-dropdown-left, 0);right:var(--select-dropdown-right, 0);min-width:var(--select-dropdown-min-width, auto);max-width:var(--select-dropdown-max-width, none);width:var(--select-dropdown-width, auto);margin-top:var(--select-dropdown-gap, 4px);background:var(--select-dropdown-background, #ffffff);border:var(--select-dropdown-border, 1px solid #cccccc);border-radius:var(--select-dropdown-border-radius, var(--radius, 4px));box-shadow:var(--select-dropdown-shadow, 0 4px 12px rgba(0, 0, 0, 0.1));max-height:var(--select-dropdown-max-height, 200px);overflow-y:auto;z-index:var(--select-dropdown-z-index, 10);}\n\n /* With the search box inside the panel, the PANEL must stop scrolling and\n the list scroll instead -- otherwise the search box scrolls away as soon\n as the user moves down the results, which is the one control they still\n need. The max-height moves down with the scrolling, so the panel keeps\n growing to fit the search box plus a list of the same height as before. */.select-dropdown.svelte-52lifo:has(> .select-menu-list:where(.svelte-52lifo)) {max-height:none;overflow-y:visible;display:flex;flex-direction:column;}.select-menu-list.svelte-52lifo {max-height:var(--select-dropdown-max-height, 200px);overflow-y:auto;}.select-menu-search.svelte-52lifo {flex:none;margin:var(--select-menu-search-margin, 6px);padding:var(--select-menu-search-padding, 6px 8px);border:var(--select-menu-search-border, 1px solid #cccccc);border-radius:var(--select-menu-search-border-radius, var(--radius, 4px));background:var(--select-menu-search-background, #ffffff);color:var(--select-menu-search-color, inherit);font-family:inherit;font-size:var(--select-menu-search-font-size, inherit);outline:none;}.select-menu-search.svelte-52lifo:focus-visible {border-color:var(--select-menu-search-focus-border-color, #2563eb);box-shadow:var(--select-menu-search-focus-shadow, 0 0 0 2px rgba(37, 99, 235, 0.2));}.select-dropdown-right.svelte-52lifo {left:auto;right:var(--select-dropdown-right, 0);min-width:var(--select-dropdown-min-width, 100%);max-width:var(--select-dropdown-max-width, none);width:var(--select-dropdown-width, max-content);}.select-dropdown.select-dropdown-portal.svelte-52lifo {\n /* Portaled to <body>: fixed positioning escapes overflow/scroll ancestors\n (e.g. a table cell). Placement (top/left/width/min-width) is set inline\n from the trigger rect, so neutralise the in-flow anchoring here. */position:fixed;right:auto;margin-top:0;\n /* In the root stacking context the panel competes with modals/sheets rather\n than painting above same-container siblings, so default it into the\n top-layer band (consumers still override via --select-dropdown-z-index). */z-index:var(--select-dropdown-z-index, 1000);}.select-option.svelte-52lifo {padding:var(--select-option-padding, 8px 12px);color:var(--select-option-color, #333333);font-size:var(--select-option-font-size, inherit);cursor:pointer;transition:background var(--select-option-transition-duration, var(--motion-duration, 0.1s))\n var(--select-option-transition-easing, var(--motion-easing, ease));}\n\n /* Per-option leading icon (SelectItem.icon). Kept inline + vertically centred so\n it needs no change to the option's display and can't regress icon-less lists. */.select-option.svelte-52lifo .select-option-icon {--image-width: var(--select-option-icon-size, 16px);--image-height: var(--select-option-icon-size, 16px);--image-object-fit: contain;color:var(--select-option-icon-color, inherit);vertical-align:middle;margin-right:var(--select-option-icon-gap, 8px);}.select-option.multi.svelte-52lifo {display:flex;align-items:center;gap:var(--select-option-gap, 0);}.select-option.svelte-52lifo:hover,\n .select-option.highlighted.svelte-52lifo {background:var(--select-option-hover-background, #f0f0f0);color:var(--select-option-hover-color, var(--select-option-color, #333333));}.select-option.selected.svelte-52lifo {background:var(--select-option-selected-background, #e8f0fe);color:var(--select-option-selected-color, var(--select-option-color, #333333));}.select-option-disabled.svelte-52lifo {opacity:var(--select-option-disabled-opacity, 0.4);cursor:var(--select-option-disabled-cursor, not-allowed);pointer-events:none;}.select-option.selected.highlighted.svelte-52lifo {background:var(\n --select-option-selected-hover-background,\n var(--select-option-selected-background, #e8f0fe)\n );}\n\n /* Pressed feedback comes last, and each selector carries enough specificity\n to outrank its non-active counterpart above. An option is always hovered\n when pressed and is often selected too, so a single low-specificity rule\n earlier in the sheet would be correct in isolation and invisible in\n practice -- which is how a pressed state ends up shipping as dead CSS.\n A press on an already-selected row still has to confirm the tap landed. */.select-option.svelte-52lifo:active,\n .select-option.selected.svelte-52lifo:active,\n .select-option.selected.highlighted.svelte-52lifo:active {background:var(--select-option-pressed-background, #ededed);}.select-option-indicator.svelte-52lifo {display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;box-sizing:border-box;width:var(--select-option-indicator-size, 18px);height:var(--select-option-indicator-size, 18px);border:var(--select-option-indicator-border, 2px solid #757575);border-radius:var(--select-option-indicator-border-radius, var(--radius, 4px));background-color:var(--select-option-indicator-background, transparent);color:var(--select-option-indicator-color, currentColor);transition:background-color\n var(\n --select-option-indicator-transition-duration,\n var(--duration-quick, var(--motion-duration, 0.15s))\n )\n var(--select-option-indicator-transition-easing, var(--motion-easing, ease)),\n border-color\n var(\n --select-option-indicator-transition-duration,\n var(--duration-quick, var(--motion-duration, 0.15s))\n )\n var(--select-option-indicator-transition-easing, var(--motion-easing, ease));}.select-option-indicator.checked.svelte-52lifo {background-color:var(--select-option-indicator-checked-background, #2196f3);border-color:var(--select-option-indicator-checked-border-color, #2196f3);}.select-option-check.svelte-52lifo {display:inline-flex;align-items:center;justify-content:center;width:var(--select-option-indicator-check-size, 12px);height:var(--select-option-indicator-check-size, 12px);color:var(--select-option-indicator-check-color, #ffffff);}.select-option-check.svelte-52lifo svg {width:100%;height:100%;}.select-option-indicator.indeterminate.svelte-52lifo {background-color:var(--select-option-indicator-checked-background, #2196f3);border-color:var(--select-option-indicator-checked-border-color, #2196f3);}.select-option-dash.svelte-52lifo {width:var(--select-option-indicator-dash-size, 10px);height:var(--select-option-indicator-dash-thickness, 2px);border-radius:1px;background-color:var(--select-option-indicator-dash-color, #ffffff);}.select-option.select-all.svelte-52lifo {border-bottom:var(--select-all-border, none);font-weight:var(--select-all-font-weight, inherit);}.select-empty.svelte-52lifo {padding:var(--select-empty-padding, 8px 12px);color:var(--select-empty-color, #999999);font-style:var(--select-empty-font-style, italic);font-size:var(--select-empty-font-size, inherit);}.select-bottom-content.svelte-52lifo {border-top:var(--select-bottom-content-border, none);padding:var(--select-bottom-content-padding, 8px 12px);}.select-trigger.svelte-52lifo .pill {--pill-background: var(--select-pill-background, #e0e0e0);--pill-color: var(--select-pill-color, #333333);--pill-border-radius: var(--select-pill-border-radius, 999px);--pill-padding: var(--select-pill-padding, 2px 8px);--pill-font-size: var(--select-pill-font-size, 13px);}\n\n /* Ghost hierarchy: transparent, borderless trigger */.select.ghost.svelte-52lifo .select-trigger:where(.svelte-52lifo) {background:var(--select-ghost-trigger-background, transparent);border-color:var(--select-ghost-trigger-border-color, transparent);box-shadow:none;}.select.ghost.svelte-52lifo .select-trigger:where(.svelte-52lifo):hover:not(.disabled:where(.svelte-52lifo) .select-trigger:where(.svelte-52lifo)) {border-color:var(--select-ghost-trigger-hover-border-color, transparent);background:var(--select-ghost-trigger-hover-background, rgba(0, 0, 0, 0.04));}.select.ghost.open.svelte-52lifo .select-trigger:where(.svelte-52lifo) {border-color:var(--select-ghost-trigger-open-border-color, transparent);background:var(--select-ghost-trigger-open-background, rgba(0, 0, 0, 0.06));box-shadow:none;}\n\n /* Single-select right-edge tick (showSelectedTick) */.select-option.tickable.svelte-52lifo {display:flex;align-items:center;gap:8px;}.select-option.tickable.svelte-52lifo .select-option-label:where(.svelte-52lifo) {flex:1 1 auto;min-width:0;}.select-option-tick.svelte-52lifo {display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--select-option-tick-size, 16px);height:var(--select-option-tick-size, 16px);color:var(--select-option-tick-color, #2563eb);}.select-option-tick.svelte-52lifo svg {width:100%;height:100%;}\n\n /* The chevron rotates between closed and open. Small, but it is a transform,\n and the two end states are each meaningful, so dropping the tween just makes\n the flip instant. */\n @media (prefers-reduced-motion: reduce) {.select-arrow.svelte-52lifo {transition:none;}\n }"
20077
20283
  };
20078
20284
  function Select(e, t) {
20079
20285
  let n = props_id();
@@ -20995,14 +21201,8 @@ customElements.define("sui-select", create_custom_element(Select_wc, {
20995
21201
  innerControlIsNotTheValue: !0
20996
21202
  })));
20997
21203
  //#endregion
20998
- //#region src/lib/reduced-motion.svelte.ts
20999
- var query = typeof window < "u" && typeof window.matchMedia == "function" ? window.matchMedia("(prefers-reduced-motion: reduce)") : null, current = /* @__PURE__ */ state(proxy(query?.matches ?? !1));
21000
- query?.addEventListener("change", (e) => {
21001
- set(current, e.matches, !0);
21002
- });
21003
- var reducedMotion = { get current() {
21004
- return get(current);
21005
- } }, root$48 = /* @__PURE__ */ from_html("<span class=\"sheet-title svelte-1dln6bq\"> </span>"), root_1$45 = /* @__PURE__ */ from_html("<div class=\"sheet-close-button svelte-1dln6bq\"><!></div>"), root_2$34 = /* @__PURE__ */ from_html("<div class=\"sheet-header svelte-1dln6bq\"><!> <!></div>"), root_3$31 = /* @__PURE__ */ from_html("<div class=\"sheet-footer svelte-1dln6bq\"><!></div>"), root_4$26 = /* @__PURE__ */ from_html("<div tabindex=\"-1\"><div role=\"dialog\" aria-modal=\"true\" tabindex=\"-1\"><!> <div class=\"sheet-content svelte-1dln6bq\"><!></div> <!></div></div>"), $$css$93 = {
21204
+ //#region src/lib/Sheet/Sheet.svelte
21205
+ var root$48 = /* @__PURE__ */ from_html("<span class=\"sheet-title svelte-1dln6bq\"> </span>"), root_1$45 = /* @__PURE__ */ from_html("<div class=\"sheet-close-button svelte-1dln6bq\"><!></div>"), root_2$34 = /* @__PURE__ */ from_html("<div class=\"sheet-header svelte-1dln6bq\"><!> <!></div>"), root_3$31 = /* @__PURE__ */ from_html("<div class=\"sheet-footer svelte-1dln6bq\"><!></div>"), root_4$26 = /* @__PURE__ */ from_html("<div tabindex=\"-1\"><div role=\"dialog\" aria-modal=\"true\" tabindex=\"-1\"><!> <div class=\"sheet-content svelte-1dln6bq\"><!></div> <!></div></div>"), $$css$93 = {
21006
21206
  hash: "svelte-1dln6bq",
21007
21207
  code: ".sheet-overlay.svelte-1dln6bq {position:fixed;top:0;left:0;right:0;bottom:0;z-index:var(--sheet-overlay-z-index, 15);-webkit-tap-highlight-color:transparent;}.overlay-visible.svelte-1dln6bq {background-color:var(--sheet-overlay-background, #00000066);}.overlay-invisible.svelte-1dln6bq {background-color:transparent;}.overlay-interactive.svelte-1dln6bq {pointer-events:auto;}.overlay-noninteractive.svelte-1dln6bq {pointer-events:none;}.sheet-panel.svelte-1dln6bq {position:fixed;display:flex;flex-direction:column;background-color:var(--sheet-background, #ffffff);box-shadow:var(--sheet-box-shadow, -2px 0 8px rgba(0, 0, 0, 0.15));z-index:var(--sheet-z-index, 16);pointer-events:auto;outline:none;}\n\n /* The panel itself is the initial focus target on open (scrollLockAction\n focuses it directly, and it's the Tab-trap's own boundary), so removing\n its outline unconditionally left a keyboard user with no visible sign\n focus had moved into the sheet at all -- particularly visible on the\n \"Raw\" variant, which has no focusable child for focus to land on\n instead. :focus-visible restores a ring precisely when the browser\n judges it's from keyboard/programmatic focus rather than a mouse click,\n so clicking the trigger still shows nothing new. outline-offset is\n negative (inset) rather than the usual positive offset other components\n in this library use, because left/right/top/bottom panels sit flush\n against a viewport edge -- a positive offset would clip there. */.sheet-panel.svelte-1dln6bq:focus-visible {outline:var(--sheet-panel-focus-outline, 2px solid #2563eb);outline-offset:var(--sheet-panel-focus-outline-offset, -2px);}\n\n /* --sheet-top/-right/-bottom/-left all default to the previous hardcoded\n edge-to-edge values below, so an unconfigured Sheet renders unchanged.\n Overriding one (e.g. --sheet-top to clear a fixed header, or --sheet-bottom:\n auto to size to content) turns the panel from an edge-to-edge slide-in into\n an anchored floating panel, without needing a different component. */.sheet-panel.left.svelte-1dln6bq,\n .sheet-panel.right.svelte-1dln6bq {top:var(--sheet-top, 0);bottom:var(--sheet-bottom, 0);width:var(--sheet-width, 400px);max-width:var(--sheet-max-width, 100vw);}.sheet-panel.left.svelte-1dln6bq {left:var(--sheet-left, 0);border-right:var(--sheet-border, none);}.sheet-panel.right.svelte-1dln6bq {right:var(--sheet-right, 0);border-left:var(--sheet-border, none);}\n\n /* Top/bottom stretch edge to edge by default, exactly as before: --sheet-\n band-width is `auto`, so `margin-inline: auto` has nothing to distribute\n and the panel still spans --sheet-left to --sheet-right.\n\n Setting --sheet-band-width (or --sheet-band-max-width) caps it, and the\n auto margins then centre it between those same two insets -- which is the\n shape a bottom \"launch\" sheet wants above phone widths, and previously\n had to be faked with hand-computed calc() offsets.\n\n Deliberately NOT --sheet-width/--sheet-max-width, even though the issue\n proposed those names. Those already mean \"the width of a left/right\n panel\", so a consumer who themes them for their side sheets would find\n their bottom sheets silently reshaped by an upgrade. side=\"center\" avoids\n the same collision the same way, with its own --sheet-center-* tokens. */.sheet-panel.top.svelte-1dln6bq,\n .sheet-panel.bottom.svelte-1dln6bq {left:var(--sheet-left, 0);right:var(--sheet-right, 0);height:var(--sheet-height, 300px);max-height:var(--sheet-max-height, 100vh);width:var(--sheet-band-width, auto);max-width:var(--sheet-band-max-width, none);box-sizing:var(--sheet-band-box-sizing, content-box);margin-inline:auto;border:var(--sheet-band-border, none);}\n\n /* A capped panel is a floating card and needs all four edges; an\n edge-to-edge one deliberately draws only the edge it enters from. The\n entering edge falls back through --sheet-border so an existing theme that\n sets only that keeps rendering exactly as it did. */.sheet-panel.top.svelte-1dln6bq {top:var(--sheet-top, 0);border-bottom:var(--sheet-band-border, var(--sheet-border, none));}.sheet-panel.bottom.svelte-1dln6bq {bottom:var(--sheet-bottom, 0);border-top:var(--sheet-band-border, var(--sheet-border, none));}\n\n /* `side=\"center\"` is a fixed-size floating dialog, not an edge-anchored\n panel: no top/bottom/left/right offset, sized by its own tokens rather\n than --sheet-width/--sheet-height (so an existing left/right/top/bottom\n theme is untouched by adding this variant), and centered with a\n transform instead of stretching to an edge. */.sheet-panel.center.svelte-1dln6bq {top:50%;left:50%;transform:translate(-50%, -50%);width:var(--sheet-center-width, 480px);max-width:var(--sheet-center-max-width, calc(100vw - 32px));max-height:var(--sheet-center-max-height, 90vh);}.sheet-header.svelte-1dln6bq {display:flex;align-items:center;padding:var(--sheet-header-padding, 16px 20px);background-color:var(--sheet-header-background, inherit);border-bottom:var(--sheet-header-border-bottom, 1px solid #e0e0e0);flex-shrink:0;}.sheet-title.svelte-1dln6bq {flex:1;font-size:var(--sheet-title-font-size, 18px);font-weight:var(--sheet-title-font-weight, 600);font-family:var(--sheet-title-font-family, inherit);color:var(--sheet-title-color, #1a1a1a);line-height:var(--sheet-title-line-height, 1.4);}.sheet-close-button.svelte-1dln6bq {--button-width: var(--sheet-close-button-size, 32px);--button-height: var(--sheet-close-button-size, 32px);--button-border: none;--button-border-radius: var(--sheet-close-button-border-radius, var(--radius, 4px));--button-color: var(--sheet-close-button-background, transparent);--button-text-color: var(--sheet-close-button-color, #666666);--button-font-size: var(--sheet-close-button-font-size, 16px);--button-padding: 0;--button-hover-color: var(--sheet-close-button-hover-background, #f0f0f0);flex-shrink:0;display:flex;align-items:center;justify-content:center;}.sheet-content.svelte-1dln6bq {flex:1;overflow-y:var(--sheet-content-overflow-y, auto);padding:var(--sheet-content-padding, 20px);scrollbar-width:var(--sheet-scrollbar-width, none);}.sheet-content.svelte-1dln6bq::-webkit-scrollbar {display:none;}.sheet-footer.svelte-1dln6bq {padding:var(--sheet-footer-padding, 16px 20px);background-color:var(--sheet-footer-background, inherit);border-top:var(--sheet-footer-border-top, 1px solid #e0e0e0);flex-shrink:0;}"
21008
21208
  };
@@ -21041,16 +21241,28 @@ function Sheet(e, t) {
21041
21241
  duration: 300
21042
21242
  };
21043
21243
  }
21044
- });
21045
- function G() {
21046
- n(!1), S()?.();
21047
- }
21048
- function be(e) {
21049
- e.target === get(te) && s() && G();
21244
+ }), G = /* @__PURE__ */ user_derived(() => ({
21245
+ x: get(re).x,
21246
+ y: get(re).y,
21247
+ durationTokens: ["--sheet-panel-transition-duration", "--motion-duration"],
21248
+ fallbackDuration: get(re).duration,
21249
+ distanceTokens: ["--sheet-panel-transition-distance", "--distance-overlay"],
21250
+ fallbackDistance: 60,
21251
+ easingTokens: [
21252
+ "--sheet-panel-transition-easing",
21253
+ "--ease-smooth-out",
21254
+ "--motion-easing"
21255
+ ]
21256
+ }));
21257
+ function be() {
21258
+ n() && (n(!1), S()?.());
21050
21259
  }
21051
21260
  function Me(e) {
21261
+ e.target === get(te) && s() && be();
21262
+ }
21263
+ function Re(e) {
21052
21264
  if ((e.key === "Enter" || e.key === " ") && s() && e.target === get(te)) {
21053
- e.preventDefault(), G();
21265
+ e.preventDefault(), be();
21054
21266
  return;
21055
21267
  }
21056
21268
  if (e.key === "Tab") {
@@ -21062,12 +21274,12 @@ function Sheet(e, t) {
21062
21274
  t !== null && (e.preventDefault(), t.focus());
21063
21275
  }
21064
21276
  }
21065
- function Re(e) {
21277
+ function Ue(e) {
21066
21278
  let t = getActiveElement(e), n = !0;
21067
21279
  lockBodyScroll();
21068
21280
  let i = registerDismissible({
21069
21281
  element: () => get(ne),
21070
- onEscape: G
21282
+ onEscape: be
21071
21283
  });
21072
21284
  return tick().then(() => {
21073
21285
  n && get(ne) !== null && get(ne).focus();
@@ -21077,14 +21289,14 @@ function Sheet(e, t) {
21077
21289
  t instanceof HTMLElement && t.isConnected && (a === null || a === document.body || e.contains(a)) && t.focus();
21078
21290
  } };
21079
21291
  }
21080
- function Ue() {
21292
+ function it() {
21081
21293
  typeof C() == "function" && C()();
21082
21294
  }
21083
- function it() {
21295
+ function at() {
21084
21296
  typeof k() == "function" && k()();
21085
21297
  }
21086
- let at = /* @__PURE__ */ user_derived(() => typeof u() == "number" && Number.isInteger(u()) && u() >= 1 && u() <= 6 ? `h${u()}` : null);
21087
- var ot = {
21298
+ let ot = /* @__PURE__ */ user_derived(() => typeof u() == "number" && Number.isInteger(u()) && u() >= 1 && u() <= 6 ? `h${u()}` : null);
21299
+ var ct = {
21088
21300
  get open() {
21089
21301
  return n();
21090
21302
  },
@@ -21175,12 +21387,12 @@ function Sheet(e, t) {
21175
21387
  set classes(e) {
21176
21388
  R(e), flushSync();
21177
21389
  }
21178
- }, ct = comment(), lt = first_child(ct), ut = (e) => {
21390
+ }, lt = comment(), ut = first_child(lt), dt = (e) => {
21179
21391
  var t = root_4$26(), n = child(t), u = child(n), S = (e) => {
21180
21392
  var t = root_2$34(), n = child(t), i = (e) => {
21181
21393
  var t = comment(), n = first_child(t), i = (e) => {
21182
21394
  var t = comment();
21183
- element(first_child(t), () => get(at), !1, (e, t) => {
21395
+ element(first_child(t), () => get(ot), !1, (e, t) => {
21184
21396
  set_class(e, 0, "sheet-title svelte-1dln6bq");
21185
21397
  var n = text();
21186
21398
  template_effect(() => set_text(n, a())), append(t, n);
@@ -21190,7 +21402,7 @@ function Sheet(e, t) {
21190
21402
  reset(t), template_effect(() => set_text(n, a())), append(e, t);
21191
21403
  };
21192
21404
  if_block(n, (e) => {
21193
- get(at) === null ? e(o, -1) : e(i);
21405
+ get(ot) === null ? e(o, -1) : e(i);
21194
21406
  }), append(e, t);
21195
21407
  };
21196
21408
  if_block(n, (e) => {
@@ -21199,7 +21411,7 @@ function Sheet(e, t) {
21199
21411
  var o = sibling(n, 2), s = (e) => {
21200
21412
  var t = root_1$45();
21201
21413
  Button(child(t), spread_props({
21202
- onclick: G,
21414
+ onclick: be,
21203
21415
  ariaLabel: "Close"
21204
21416
  }, () => typeof f() == "string" ? { testId: `${f()}-close` } : {}, {
21205
21417
  children: (e, t) => {
@@ -21217,19 +21429,19 @@ function Sheet(e, t) {
21217
21429
  });
21218
21430
  var C = sibling(u, 2);
21219
21431
  snippet(child(C), p), reset(C);
21220
- var k = sibling(C, 2), ot = (e) => {
21432
+ var k = sibling(C, 2), re = (e) => {
21221
21433
  var t = root_3$31();
21222
21434
  snippet(child(t), h), reset(t), append(e, t);
21223
21435
  };
21224
21436
  if_block(k, (e) => {
21225
- typeof h() == "function" && e(ot);
21226
- }), reset(n), bind_this(n, (e) => set(ne, e), () => get(ne)), reset(t), bind_this(t, (e) => set(te, e), () => get(te)), action(t, (e) => Re?.(e)), template_effect((e) => {
21437
+ typeof h() == "function" && e(re);
21438
+ }), reset(n), bind_this(n, (e) => set(ne, e), () => get(ne)), reset(t), bind_this(t, (e) => set(te, e), () => get(te)), action(t, (e) => Ue?.(e)), template_effect((e) => {
21227
21439
  set_class(t, 1, `sheet-overlay ${o() ? "overlay-visible" : "overlay-invisible"} ${o() || s() ? "overlay-interactive" : "overlay-noninteractive"} ${R() ?? "" ?? ""}`, "svelte-1dln6bq"), set_attribute(t, "role", s() ? "button" : null), set_attribute(t, "aria-label", e), set_attribute(t, "data-pw", typeof f() == "string" ? f() : null), set_attribute(t, "testid", typeof f() == "string" ? f() : null), set_class(n, 1, `sheet-panel ${i() ?? ""}`, "svelte-1dln6bq"), set_attribute(n, "aria-label", a() ?? "Sheet"), set_attribute(n, "data-pw", typeof f() == "string" ? `${f()}-panel` : null), set_attribute(n, "testid", typeof f() == "string" ? `${f()}-panel` : null);
21228
- }, [() => s() ? c()?.trim() || "Close sheet" : null]), delegated("click", t, be), delegated("keydown", t, Me), event("introend", n, Ue), event("outroend", n, it), transition(7, n, () => fly, () => get(re)), transition(3, t, () => fade, () => ({ duration: 200 })), append(e, t);
21440
+ }, [() => s() ? c()?.trim() || "Close sheet" : null]), delegated("click", t, Me), delegated("keydown", t, Re), event("introend", n, it), event("outroend", n, at), transition(7, n, () => tokenizedFly, () => get(G)), transition(3, t, () => fade, () => ({ duration: 200 })), append(e, t);
21229
21441
  };
21230
- return if_block(lt, (e) => {
21231
- n() && e(ut);
21232
- }), append(e, ct), pop(ot);
21442
+ return if_block(ut, (e) => {
21443
+ n() && e(dt);
21444
+ }), append(e, lt), pop(ct);
21233
21445
  }
21234
21446
  delegate(["click", "keydown"]), create_custom_element(Sheet, {
21235
21447
  open: {},
@@ -22624,7 +22836,7 @@ delegate(["click", "keydown"]), create_custom_element(BuiltinCell, {
22624
22836
  //#region src/lib/assets/sort-default.svg?raw
22625
22837
  var sort_default_default = "<svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.64645 1.64645C5.84171 1.45118 6.15829 1.45118 6.35355 1.64645L8.85355 4.14645C9.04882 4.34171 9.04882 4.65829 8.85355 4.85355C8.65829 5.04882 8.34171 5.04882 8.14645 4.85355L6 2.70711L3.85355 4.85355C3.65829 5.04882 3.34171 5.04882 3.14645 4.85355C2.95118 4.65829 2.95118 4.34171 3.14645 4.14645L5.64645 1.64645Z\" fill=\"currentColor\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3.14645 7.14645C3.34171 6.95118 3.65829 6.95118 3.85355 7.14645L6 9.29289L8.14645 7.14645C8.34171 6.95118 8.65829 6.95118 8.85355 7.14645C9.04882 7.34171 9.04882 7.65829 8.85355 7.85355L6.35355 10.3536C6.15829 10.5488 5.84171 10.5488 5.64645 10.3536L3.14645 7.85355C2.95118 7.65829 2.95118 7.34171 3.14645 7.14645Z\" fill=\"currentColor\"/>\n</svg>\n", root$44 = /* @__PURE__ */ from_html("<div class=\"table-title svelte-171ci2i\"> </div>"), root_1$41 = /* @__PURE__ */ from_html("<button class=\"table-search-clear svelte-171ci2i\" type=\"button\"></button>"), root_2$31 = /* @__PURE__ */ from_html("<div class=\"table-search svelte-171ci2i\"><span class=\"table-search-icon svelte-171ci2i\"></span> <input class=\"table-search-input svelte-171ci2i\" type=\"search\" autocomplete=\"off\"/> <!></div>"), root_3$28 = /* @__PURE__ */ from_html("<div class=\"table-toolbar svelte-171ci2i\"><!></div>"), root_4$24 = /* @__PURE__ */ from_html("<caption class=\"sr-only svelte-171ci2i\"> </caption>"), root_5$23 = /* @__PURE__ */ from_html("<th><!></th>"), root_6$21 = /* @__PURE__ */ from_html("<th></th>"), root_7$19 = /* @__PURE__ */ from_html("<th> </th>"), root_8$17 = /* @__PURE__ */ from_html("<span> </span>"), root_9$14 = /* @__PURE__ */ from_html("<span class=\"table-header-filter-icon svelte-171ci2i\"></span>"), root_10$13 = /* @__PURE__ */ from_html("<span><!></span>"), root_11$11 = /* @__PURE__ */ from_html("<span class=\"table-header-filter svelte-171ci2i\"><!></span>"), root_12$10 = /* @__PURE__ */ from_html("<span class=\"sort-icon sort-icon-asc\"></span>"), root_13$8 = /* @__PURE__ */ from_html("<span class=\"sort-icon sort-icon-desc\"></span>"), root_14$7 = /* @__PURE__ */ from_html("<span class=\"sort-icon sort-icon-idle\"></span>"), root_15$5 = /* @__PURE__ */ from_html("<div class=\"sort-button svelte-171ci2i\"><!></div>"), root_16$4 = /* @__PURE__ */ from_html("<!> <span class=\"table-inline-search-clear svelte-171ci2i\"><!></span>", 1), root_17$4 = /* @__PURE__ */ from_html("<span class=\"table-inline-search-trigger svelte-171ci2i\"><!></span>"), root_18$3 = /* @__PURE__ */ from_html("<span class=\"table-header-inline-search svelte-171ci2i\"><!></span>"), root_19$3 = /* @__PURE__ */ from_html("<th><span class=\"table-header-content svelte-171ci2i\"><!> <!> <!> <!></span></th>"), root_20$3 = /* @__PURE__ */ from_html("<tr class=\"svelte-171ci2i\"><td class=\"table-empty svelte-171ci2i\"><!></td></tr>"), root_21$2 = /* @__PURE__ */ from_html("<span class=\"table-mobile-label svelte-171ci2i\" aria-hidden=\"true\">Select</span>"), root_22$2 = /* @__PURE__ */ from_html("<td class=\"table-content table-checkbox-col svelte-171ci2i\"><!><!></td>"), root_23$2 = /* @__PURE__ */ from_html("<span class=\"table-mobile-label svelte-171ci2i\" aria-hidden=\"true\"> </span>"), root_24$2 = /* @__PURE__ */ from_html("<td class=\"table-content table-row-number-col svelte-171ci2i\"><!><span class=\"table-mobile-value svelte-171ci2i\"> </span></td>"), root_25$1 = /* @__PURE__ */ from_html("<div><!></div>"), root_26$1 = /* @__PURE__ */ from_html("<td><!><!></td>"), root_27 = /* @__PURE__ */ from_html("<tr><!><!><!></tr>"), root_28 = /* @__PURE__ */ from_html("<div class=\"table-footer svelte-171ci2i\"><!></div>"), root_29 = /* @__PURE__ */ from_html("<span class=\"table-paginator-size svelte-171ci2i\"><!></span>"), root_30 = /* @__PURE__ */ from_html("<span class=\"table-paginator-controls svelte-171ci2i\"><!> <!></span>"), root_31 = /* @__PURE__ */ from_html("<div class=\"table-footer table-paginator svelte-171ci2i\"><span class=\"table-paginator-range svelte-171ci2i\"> </span> <!></div>"), root_32 = /* @__PURE__ */ from_html("<div><div><div class=\"table-scroll svelte-171ci2i\"><table class=\"svelte-171ci2i\"><!><thead class=\"svelte-171ci2i\"><tr class=\"svelte-171ci2i\"><!><!><!></tr></thead><tbody class=\"svelte-171ci2i\"><!></tbody></table></div></div> <!></div>"), root_33 = /* @__PURE__ */ from_html("<!> <!> <!> <!>", 1), $$css$86 = {
22626
22838
  hash: "svelte-171ci2i",
22627
- code: "\n /* ── Title ─────────────────────────────────────────────────────────────── */.table-title.svelte-171ci2i {margin:var(--table-title-margin, 0px 0px 12px 0px);font-size:var(--table-title-font-size, var(--table-tile-font-size, 18px));font-weight:var(--table-title-font-weight, 600);\n /* Unlike .table-content, a heading legitimately has no background of its\n own -- it sits directly on whatever surface the consumer places it on.\n The old #111827 literal ignored that surface entirely: on a dark page\n it measured a contrast of 1.03 against #1a1a26, i.e. invisible. `color`\n already inherits by default, so `inherit` states that explicitly and\n lets the title track its container's text colour; `currentColor` would\n resolve to the same value here (the spec special-cases it to mean\n exactly `inherit` for the `color` property) but reads as if it were\n referencing a colour set elsewhere on this rule, which it isn't. */color:var(--table-title-color, inherit);font-family:var(--table-title-font-family, inherit);padding:var(--table-title-padding);}\n\n /* ── C2-3 Search bar ────────────────────────────────────────────────────── */.table-search.svelte-171ci2i {display:flex;align-items:center;gap:var(--table-search-gap, 8px);padding:var(--table-search-padding, 8px 12px);border:var(--table-search-border, 1px solid #e5e7eb);border-radius:var(--table-search-border-radius, var(--radius, 4px));background-color:var(--table-search-background, #ffffff);margin-bottom:var(--table-search-margin-bottom, 8px);}.table-search-icon.svelte-171ci2i {display:inline-flex;align-items:center;color:var(--table-search-icon-color, #9ca3af);flex-shrink:0;}.table-search-icon.svelte-171ci2i svg {width:var(--table-search-icon-size, 16px);height:var(--table-search-icon-size, 16px);}.table-search-input.svelte-171ci2i {flex:1;border:none;outline:none;background:transparent;font-size:var(--table-search-font-size, 14px);color:var(--table-search-color, #111827);min-width:0;}.table-search-input.svelte-171ci2i:focus-visible {outline:2px solid var(--table-focus-outline-color, #3b82f6);outline-offset:2px;border-radius:var(--table-search-focus-border-radius, var(--radius, 4px));}.table-search-input.svelte-171ci2i::placeholder {color:var(--table-search-placeholder-color, #4b5563);}\n\n /* Hide browser-default clear button on search inputs */.table-search-input.svelte-171ci2i::-webkit-search-cancel-button {display:none;}.table-search-clear.svelte-171ci2i {display:inline-flex;align-items:center;padding:2px;border:none;background:transparent;color:var(--table-search-clear-color, #6b7280);cursor:pointer;border-radius:4px;flex-shrink:0;}.table-search-clear.svelte-171ci2i:hover {color:var(--table-search-clear-hover-color, #111827);background-color:var(--table-search-clear-hover-background, rgba(0, 0, 0, 0.05));}.table-search-clear.svelte-171ci2i svg {width:var(--table-search-clear-icon-size, 14px);height:var(--table-search-clear-icon-size, 14px);}.table-header-inline-search.svelte-171ci2i {display:inline-flex;align-items:center;gap:var(--table-inline-search-gap, 6px);margin-left:auto;}.table-inline-search-trigger.svelte-171ci2i {--button-color: transparent;--button-border: none;--button-padding: var(--table-inline-search-trigger-padding, 4px);--button-text-color: var(--table-inline-search-icon-color, #9ca3af);}.table-inline-search-trigger.svelte-171ci2i svg {width:var(--table-inline-search-icon-size, 16px);height:var(--table-inline-search-icon-size, 16px);display:block;}.table-inline-search-input.svelte-171ci2i {--input-margin: 0;width:var(--table-inline-search-input-width, 160px);}.table-inline-search-clear.svelte-171ci2i {--button-color: transparent;--button-border: none;--button-padding: var(--table-inline-search-clear-padding, 2px);--button-text-color: var(--table-inline-search-clear-color, #6b7280);}.table-inline-search-clear.svelte-171ci2i svg {width:var(--table-inline-search-clear-icon-size, 14px);height:var(--table-inline-search-clear-icon-size, 14px);}\n\n /* ── Container ──────────────────────────────────────────────────────────── */\n /* `hidden` is the default because it is what clips the table's corners to\n this element's border-radius; without it the first and last cells square\n off over the rounded border. A consumer who needs the container itself to\n scroll sideways sets this to `auto` and accepts that trade. Note the\n scrollable variant below sets `overflow-y`, and per the CSS overflow spec\n a `visible` on one axis computes to `auto` when the other is not visible,\n so `visible` here does not survive on a scrollable table. */.table-container.svelte-171ci2i {border:var(--table-border, 1px solid #e5e7eb);border-radius:var(--table-border-radius, var(--radius, 4px));width:var(--table-container-width, 100%);overflow:var(--table-container-overflow, hidden);}.scrollable-table.svelte-171ci2i {height:var(--table-container-height, 143px);overflow-y:auto;}.table-scroll-shell.svelte-171ci2i {position:relative;min-width:0;}\n\n /* Edge scrims: fade the clipped side of the table into its background so\n hidden columns read as \"more content this way\". Class-driven from live\n scroll state — never shown when the table fits. pointer-events: none\n keeps cells under the fade clickable; z-index 2 paints above sticky\n headers (z-index 1). */.table-scroll-shell.svelte-171ci2i::before,\n .table-scroll-shell.svelte-171ci2i::after {content:'';position:absolute;top:0;bottom:0;width:var(--table-scroll-scrim-width, 32px);opacity:0;pointer-events:none;transition:opacity var(--table-scroll-scrim-transition-duration, var(--motion-duration, 0.2s))\n var(--table-scroll-scrim-transition-easing, var(--motion-easing, ease));z-index:2;}.table-scroll-shell.svelte-171ci2i::before {left:0;border-radius:var(--table-border-radius, var(--radius, 4px)) 0 0\n var(--table-border-radius, var(--radius, 4px));background:linear-gradient(to right, var(--table-scroll-scrim-color, #ffffff), transparent);}.table-scroll-shell.svelte-171ci2i::after {right:0;border-radius:0 var(--table-border-radius, var(--radius, 4px))\n var(--table-border-radius, var(--radius, 4px)) 0;background:linear-gradient(to left, var(--table-scroll-scrim-color, #ffffff), transparent);}.table-scroll-shell.scrollable-left.svelte-171ci2i::before {opacity:1;}.table-scroll-shell.scrollable-right.svelte-171ci2i::after {opacity:1;}.table-scroll.svelte-171ci2i {overflow-x:auto;min-width:0;scrollbar-width:thin;}table.svelte-171ci2i {width:var(--table-width, 100%);border-collapse:var(--table-border-collapse, collapse);}.table-header.svelte-171ci2i,\n .table-content.svelte-171ci2i {border:var(--table-inner-border, none);padding:var(--table-padding, 12px 16px);text-align:var(--table-text-align, left);width:var(--table-column-width);\n /* Wrap at word boundaries; only a single word wider than the column may\n split as a last resort. break-word (not anywhere) keeps each column's\n min-content width at its longest word, so ordinary labels never split\n mid-word — the old break-all default did. Opt back in per consumer via\n --table-word-break / --table-overflow-wrap. */word-break:var(--table-word-break, normal);overflow-wrap:var(--table-overflow-wrap, break-word);}.scrollable-content.svelte-171ci2i {overflow-y:auto;height:var(--scrollable-column-height, 20px);}.table-header.svelte-171ci2i {background-color:var(--table-header-background, var(--table-header-border-bgcolor, #f9fafb));font-size:var(--table-header-font-size, 13px);font-family:var(--table-header-font-family, inherit);font-weight:var(--table-header-font-weight, 600);letter-spacing:var(--table-header-letter-spacing, 0.02em);text-transform:var(--table-header-text-transform, inherit);color:var(--table-header-color, var(--table-header-font-color, #6b7280));border-bottom:var(--table-header-border, var(--table-inner-border, none));}.table-header-content.svelte-171ci2i {display:flex;align-items:center;gap:4px;justify-content:var(--table-header-justify, flex-start);}.table-header-label.svelte-171ci2i {text-decoration:var(--table-header-tooltip-underline, underline dotted);text-underline-offset:2px;cursor:help;}.table-header-label-plain.svelte-171ci2i {text-decoration:none;}.table-header-filter.svelte-171ci2i {display:inline-flex;align-items:center;}.table-header-filter-trigger.svelte-171ci2i {--button-color: transparent;--button-border: none;--button-padding: 2px;--button-margin: 0;--button-width: fit-content;--button-height: fit-content;--button-text-color: var(--table-sort-button-color, inherit);--button-border-radius: 4px;--button-hover-color: var(--table-sort-button-hover-background, rgba(0, 0, 0, 0.05));display:inline-flex;align-items:center;opacity:var(--table-sort-idle-opacity, 0.5);}.table-header-filter-trigger.svelte-171ci2i:hover {opacity:var(--table-sort-idle-hover-opacity, 0.85);}.table-header-filter-active.svelte-171ci2i {opacity:1;color:var(--table-filter-active-color, #2563eb);}.table-header-filter-icon.svelte-171ci2i svg {width:var(--table-sort-icon-size, 14px);height:var(--table-sort-icon-size, 14px);display:block;}.table-cell-clamp.svelte-171ci2i {overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.table-header-sticky.svelte-171ci2i {position:sticky;top:var(--table-header-sticky-top, 0);z-index:1;}.table-content.svelte-171ci2i {\n /* The terminal #ffffff matters as much as the colour beside it. Without it\n the whole declaration is invalid at computed-value time when neither\n variable is set, so the cell falls back to `transparent` and inherits\n whatever surface it lands on -- while `color` still resolves to a\n hardcoded near-black. On a dark page that is #111827 on #1a1a26: a\n measured contrast of 1.03, i.e. invisible. The header row never had the\n bug because it pairs its colour with a background of its own. */background-color:var(--table-content-background, var(--table-content-border-bgcolor, #ffffff));font-size:var(--table-content-font-size, 14px);font-family:var(--table-content-font-family, inherit);color:var(--table-content-color, var(--table-content-font-color, #111827));}\n\n /* Column highlight (TableColumn.highlighted). Row hover keeps higher\n specificity and row selection is declared later at equal specificity, so\n both row states paint over the column wash. */.table-header.table-col-highlighted.svelte-171ci2i {background-color:var(\n --table-col-highlight-header-background,\n var(--table-col-highlight-background, #f3f9ff)\n );}.table-content.table-col-highlighted.svelte-171ci2i {background-color:var(--table-col-highlight-background, #f3f9ff);}.table-row.svelte-171ci2i {border-bottom:var(--table-row-border, 1px solid #f3f4f6);background-color:var(--table-row-background);}.table-row.svelte-171ci2i:last-child {border-bottom:var(--table-row-last-border, none);}.table-row.svelte-171ci2i:nth-child(even) {background-color:var(--table-row-alt-background, var(--table-row-background));}.table-row.svelte-171ci2i:hover {background-color:var(--table-row-hover-background);}.table-row.svelte-171ci2i:hover > .table-content:where(.svelte-171ci2i) {background-color:var(\n --table-row-hover-background,\n var(--table-content-background, var(--table-content-border-bgcolor))\n );}.table-row-clickable.svelte-171ci2i {cursor:pointer;}.table-row-clickable.svelte-171ci2i:focus-visible {outline:2px solid var(--table-focus-outline-color, #3b82f6);outline-offset:-2px;}\n\n /* C2-1: Selected row highlight */.table-row-selected.svelte-171ci2i {background-color:var(--table-row-selected-background, #eff6ff);}.table-row-selected.svelte-171ci2i > .table-content:where(.svelte-171ci2i) {background-color:var(--table-row-selected-background, #eff6ff);}\n\n /* Summary/period-total row (summaryRowIndex): both the row and its cells,\n since a themed --table-content-background would otherwise paint over a\n row-level background. Falls back to the regular cell background. */.table-summary-row.svelte-171ci2i {background-color:var(--table-summary-row-background, var(--table-content-background));}.table-summary-row.svelte-171ci2i > .table-content:where(.svelte-171ci2i) {background-color:var(--table-summary-row-background, var(--table-content-background));}\n\n /* ── C2-1 Checkbox column ───────────────────────────────────────────────── */\n /* The column renders the library Checkbox. The table's own --table-checkbox-*\n tokens stay the public API and are bridged onto Checkbox's --checkbox-*\n variables here, so a consumer theming the table keeps working and a\n consumer theming Checkbox app-wide is overridden only inside the table. */.table-checkbox-col.svelte-171ci2i {width:var(--table-checkbox-col-width, 44px);padding:var(--table-checkbox-col-padding, 12px 12px);--checkbox-container-gap: 0;--checkbox-size: var(--table-checkbox-size, 18px);--checkbox-border: var(--table-checkbox-border, 2px solid #9ca3af);--checkbox-border-radius: var(--table-checkbox-border-radius, var(--radius, 4px));--checkbox-background: var(--table-checkbox-background, transparent);--checkbox-hover-border-color: var(--table-checkbox-hover-border-color, #6b7280);--checkbox-checked-background: var(--table-checkbox-checked-background, #2563eb);--checkbox-checked-border: var(\n --table-checkbox-checked-border,\n 2px solid var(--table-checkbox-checked-border-color, #2563eb)\n );--checkbox-indeterminate-background: var(--table-checkbox-indeterminate-background, #2563eb);--checkbox-indeterminate-border: var(\n --table-checkbox-indeterminate-border,\n 2px solid var(--table-checkbox-indeterminate-border-color, #2563eb)\n );--checkbox-disabled-opacity: var(--table-checkbox-disabled-opacity, 0.4);--checkbox-focus-ring: var(--table-checkbox-focus-ring, 0 0 0 3px rgba(59, 130, 246, 0.3));--checkbox-icon-size: var(--table-checkbox-icon-size, 12px);--checkbox-checkmark-color: var(--table-checkbox-icon-color, #ffffff);--checkbox-dash-color: var(--table-checkbox-icon-color, #ffffff);\n /* Named so a consumer can reach it. Table sets the Checkbox child's token\n directly, and a rule on the element beats anything declared at :root, so\n through <sui-table> the selection checkboxes' transition could not be\n slowed or stopped by any means -- custom properties are the only route\n across a shadow boundary and this one was already spoken for. */--checkbox-transition: var(--table-checkbox-transition, 0.15s);}\n\n /* ── Sort button ────────────────────────────────────────────────────────── */.sort-button.svelte-171ci2i {--button-color: transparent;--button-border: none;--button-padding: 2px;--button-margin: 0;--button-text-color: var(--table-sort-button-color, inherit);--button-border-radius: 4px;--button-width: fit-content;--button-height: fit-content;--button-hover-color: var(--table-sort-button-hover-background, rgba(0, 0, 0, 0.05));--button-hover-text-color: var(\n --table-sort-button-hover-color,\n var(--table-sort-button-color, inherit)\n );display:inline-flex;align-items:center;line-height:1;}.sort-button.svelte-171ci2i .sort-icon {display:inline-flex;align-items:center;}\n\n /* The sorted-direction half paints via currentColor; without an explicit\n color it inherits the Button's text color (white on the default button\n theme), which disappears on light headers. Default to the design\n system's active blue. */.sort-button.svelte-171ci2i .sort-icon:not(.sort-icon-idle) {color:var(--table-sort-active-color, #1b85ff);}.sort-button.svelte-171ci2i .sort-icon svg {width:var(--table-sort-icon-size, 14px);height:var(--table-sort-icon-size, 14px);display:block;}\n\n /* Two-tone state painting. The shared sort-default.svg asset stays\n color-agnostic (fill=\"currentColor\", like every other icon asset); the\n state colors live here. All halves default to the inactive fill, then\n the sorted direction's half is released back to currentColor (the\n active color above). Path order in the asset is up-chevron first,\n down-chevron second. */.sort-button.svelte-171ci2i .sort-icon svg path {fill:var(--table-sort-inactive-color, #c7c7c7);}.sort-button.svelte-171ci2i .sort-icon-asc svg path:first-child,\n .sort-button.svelte-171ci2i .sort-icon-desc svg path:last-child {fill:currentColor;}\n\n /* The design system draws every sort state fully opaque — faintness comes\n from the glyph fills (inactive halves #C7C7C7, active direction\n currentColor), never from transparency. The opacity vars remain for\n consumers that prefer a fade but now default to solid; hover steps the\n inactive halves to the design system's hover gray. */.sort-button.svelte-171ci2i .sort-icon-idle {opacity:var(--table-sort-idle-opacity, 1);}.sort-button.svelte-171ci2i:hover .sort-icon-idle {opacity:var(--table-sort-idle-hover-opacity, 1);--table-sort-inactive-color: var(--table-sort-hover-color, #797979);}\n\n /* ── Empty ──────────────────────────────────────────────────────────────── */.table-empty.svelte-171ci2i {padding:var(--table-empty-padding, 32px 24px);text-align:center;color:var(--table-empty-color, #9ca3af);}\n\n /* ── Footer ─────────────────────────────────────────────────────────────── */.table-footer.svelte-171ci2i {border-top:var(--table-footer-border, 1px solid #e5e7eb);padding:var(--table-footer-padding, 8px 16px);background-color:var(--table-footer-background, transparent);}.table-paginator.svelte-171ci2i {display:flex;align-items:center;justify-content:space-between;gap:var(--table-paginator-gap, 12px);flex-wrap:wrap;}.table-paginator-range.svelte-171ci2i {font-size:var(--table-paginator-range-font-size, 13px);color:var(--table-paginator-range-color, #6b7280);font-variant-numeric:tabular-nums;}.table-paginator-controls.svelte-171ci2i {display:flex;align-items:center;gap:var(--table-paginator-gap, 12px);}.table-paginator-size.svelte-171ci2i {display:inline-flex;min-width:var(--table-paginator-size-width, 72px);\n /* Select's standalone defaults (40px min-height, 8px 12px padding) render\n 58px tall next to the 36px pagination buttons sharing this row. Match the\n steppers instead of towering over them. */--select-trigger-min-height: var(--table-paginator-size-height, 36px);--select-trigger-padding: var(--table-paginator-size-padding, 0 8px);}\n\n /* ── Toolbar (bulk actions) ─────────────────────────────────────────────── */.table-toolbar.svelte-171ci2i {display:flex;align-items:center;gap:var(--table-toolbar-gap, 12px);padding:var(--table-toolbar-padding, 8px 12px);border:var(--table-toolbar-border, 1px solid #e5e7eb);border-radius:var(--table-toolbar-border-radius, var(--radius, 4px));background-color:var(--table-toolbar-background, #f9fafb);margin-bottom:var(--table-toolbar-margin-bottom, 8px);}\n\n /* ── Row-number column ──────────────────────────────────────────────────── */.table-row-number-col.svelte-171ci2i {width:var(--table-row-number-col-width, 48px);color:var(--table-row-number-color, #6b7280);font-variant-numeric:tabular-nums;text-align:var(--table-row-number-align, var(--table-text-align, left));}\n\n /* ── Accessibility ──────────────────────────────────────────────────────── */.sr-only.svelte-171ci2i {position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;border-width:0;}\n\n /* ── Mobile record cards (opt-in via `mobileCardLayout`) ──────────────────\n The label span is always in the DOM -- rendering it only under the media\n query below would mean an AT that queries computed style rather than\n layout (or a print stylesheet, or a future breakpoint change) sees no\n label at all until the exact 640px condition is re-evaluated. Keeping the\n element and toggling `display` is what lets `aria-hidden` on it (see the\n template) stay meaningful at every width: hidden today, but never a\n generated-content trick that could not carry that attribute in the first\n place. */.table-mobile-label.svelte-171ci2i {display:none;}\n\n /* The breakpoint is a literal, not `var(--table-mobile-breakpoint)`: a\n custom property can't be read inside an `@media` condition (only inside\n a declaration value), so a themable breakpoint was never on the table --\n documented in docs/Table.md rather than silently unsupported. */\n @media (max-width: 640px) {\n /* `display: table` (and its `-row`/`-cell`/etc. companions) is what gives\n a table its IMPLICIT header/cell ARIA semantics -- switching every one\n of these to `block` for the stacked-card look throws that away, which\n is exactly why `mobileRole()` in the script restates it explicitly as\n `table`/`rowgroup`/`row`/`columnheader`/`cell` on the elements below.\n Without both halves this rule would silently turn every consumer's\n table into an AX-tree list the moment their viewport narrowed. */.table-mobile-cards.svelte-171ci2i table:where(.svelte-171ci2i),\n .table-mobile-cards.svelte-171ci2i thead:where(.svelte-171ci2i),\n .table-mobile-cards.svelte-171ci2i tbody:where(.svelte-171ci2i),\n .table-mobile-cards.svelte-171ci2i tr:where(.svelte-171ci2i),\n .table-mobile-cards.svelte-171ci2i th:where(.svelte-171ci2i),\n .table-mobile-cards.svelte-171ci2i td:where(.svelte-171ci2i) {display:block;width:100%;}\n\n /* Headers are not shown as a row anymore -- their text now repeats per\n card as the `.table-mobile-label` beside each value -- but they stay\n in the DOM (not `display: none`) so `role=\"columnheader\"` continues\n naming its `role=\"cell\"` for any reading that still associates the\n two by DOM structure rather than only by the label span's text. */.table-mobile-cards.svelte-171ci2i thead:where(.svelte-171ci2i) {position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;border-width:0;}\n\n /* The horizontal-scroll affordance this table uses at desktop width (see\n .table-scroll / .table-scroll-shell above) has nothing to scroll once\n every cell is a full-width block, and a lingering scrim would fade a\n card edge that no longer clips anything. */.table-mobile-cards.svelte-171ci2i .table-scroll:where(.svelte-171ci2i) {overflow-x:visible;}.table-mobile-cards.svelte-171ci2i .table-scroll-shell:where(.svelte-171ci2i)::before,\n .table-mobile-cards.svelte-171ci2i .table-scroll-shell:where(.svelte-171ci2i)::after {display:none;}.table-mobile-cards.svelte-171ci2i tbody:where(.svelte-171ci2i) tr.table-row:where(.svelte-171ci2i) {border:var(--table-mobile-card-border, 1px solid #e5e7eb);border-radius:var(\n --table-mobile-card-radius,\n var(--table-border-radius, var(--radius, 4px))\n );padding:var(--table-mobile-card-padding, 12px);margin-block-end:var(--table-mobile-card-gap, 12px);}.table-mobile-cards.svelte-171ci2i tbody:where(.svelte-171ci2i) tr.table-row:where(.svelte-171ci2i):last-child {margin-block-end:0;}\n\n /* Each cell becomes a label/value pair instead of a table column; the\n label span (hidden above) is the only thing `display: inline` turns\n back on inside this query. */.table-mobile-cards.svelte-171ci2i td.table-content:where(.svelte-171ci2i) {display:flex;align-items:baseline;gap:var(--table-mobile-label-gap, 8px);border:none;}.table-mobile-cards.svelte-171ci2i .table-mobile-label:where(.svelte-171ci2i) {display:inline;flex:0 0 var(--table-mobile-label-width, 40%);font-weight:var(--table-mobile-label-font-weight, 600);color:var(--table-mobile-label-color, #6b7280);}.table-mobile-cards.svelte-171ci2i .table-mobile-value:where(.svelte-171ci2i),\n .table-mobile-cards.svelte-171ci2i td.table-content:where(.svelte-171ci2i) > div:where(.svelte-171ci2i) {flex:1 1 auto;min-width:0;}\n }"
22839
+ code: "\n /* ── Title ─────────────────────────────────────────────────────────────── */.table-title.svelte-171ci2i {margin:var(--table-title-margin, 0px 0px 12px 0px);font-size:var(--table-title-font-size, var(--table-tile-font-size, 18px));font-weight:var(--table-title-font-weight, 600);\n /* Unlike .table-content, a heading legitimately has no background of its\n own -- it sits directly on whatever surface the consumer places it on.\n The old #111827 literal ignored that surface entirely: on a dark page\n it measured a contrast of 1.03 against #1a1a26, i.e. invisible. `color`\n already inherits by default, so `inherit` states that explicitly and\n lets the title track its container's text colour; `currentColor` would\n resolve to the same value here (the spec special-cases it to mean\n exactly `inherit` for the `color` property) but reads as if it were\n referencing a colour set elsewhere on this rule, which it isn't. */color:var(--table-title-color, inherit);font-family:var(--table-title-font-family, inherit);padding:var(--table-title-padding);}\n\n /* ── C2-3 Search bar ────────────────────────────────────────────────────── */.table-search.svelte-171ci2i {display:flex;align-items:center;gap:var(--table-search-gap, 8px);padding:var(--table-search-padding, 8px 12px);border:var(--table-search-border, 1px solid #e5e7eb);border-radius:var(--table-search-border-radius, var(--radius, 4px));background-color:var(--table-search-background, #ffffff);margin-bottom:var(--table-search-margin-bottom, 8px);}.table-search-icon.svelte-171ci2i {display:inline-flex;align-items:center;color:var(--table-search-icon-color, #9ca3af);flex-shrink:0;}.table-search-icon.svelte-171ci2i svg {width:var(--table-search-icon-size, 16px);height:var(--table-search-icon-size, 16px);}.table-search-input.svelte-171ci2i {flex:1;border:none;outline:none;background:transparent;font-size:var(--table-search-font-size, 14px);color:var(--table-search-color, #111827);min-width:0;}.table-search-input.svelte-171ci2i:focus-visible {outline:2px solid var(--table-focus-outline-color, #3b82f6);outline-offset:2px;border-radius:var(--table-search-focus-border-radius, var(--radius, 4px));}.table-search-input.svelte-171ci2i::placeholder {color:var(--table-search-placeholder-color, #4b5563);}\n\n /* Hide browser-default clear button on search inputs */.table-search-input.svelte-171ci2i::-webkit-search-cancel-button {display:none;}.table-search-clear.svelte-171ci2i {display:inline-flex;align-items:center;padding:2px;border:none;background:transparent;color:var(--table-search-clear-color, #6b7280);cursor:pointer;border-radius:4px;flex-shrink:0;}.table-search-clear.svelte-171ci2i:hover {color:var(--table-search-clear-hover-color, #111827);background-color:var(--table-search-clear-hover-background, rgba(0, 0, 0, 0.05));}.table-search-clear.svelte-171ci2i svg {width:var(--table-search-clear-icon-size, 14px);height:var(--table-search-clear-icon-size, 14px);}.table-header-inline-search.svelte-171ci2i {display:inline-flex;align-items:center;gap:var(--table-inline-search-gap, 6px);margin-left:auto;}.table-inline-search-trigger.svelte-171ci2i {--button-color: transparent;--button-border: none;--button-padding: var(--table-inline-search-trigger-padding, 4px);--button-text-color: var(--table-inline-search-icon-color, #9ca3af);}.table-inline-search-trigger.svelte-171ci2i svg {width:var(--table-inline-search-icon-size, 16px);height:var(--table-inline-search-icon-size, 16px);display:block;}.table-inline-search-input.svelte-171ci2i {--input-margin: 0;width:var(--table-inline-search-input-width, 160px);}.table-inline-search-clear.svelte-171ci2i {--button-color: transparent;--button-border: none;--button-padding: var(--table-inline-search-clear-padding, 2px);--button-text-color: var(--table-inline-search-clear-color, #6b7280);}.table-inline-search-clear.svelte-171ci2i svg {width:var(--table-inline-search-clear-icon-size, 14px);height:var(--table-inline-search-clear-icon-size, 14px);}\n\n /* ── Container ──────────────────────────────────────────────────────────── */\n /* `hidden` is the default because it is what clips the table's corners to\n this element's border-radius; without it the first and last cells square\n off over the rounded border. A consumer who needs the container itself to\n scroll sideways sets this to `auto` and accepts that trade. Note the\n scrollable variant below sets `overflow-y`, and per the CSS overflow spec\n a `visible` on one axis computes to `auto` when the other is not visible,\n so `visible` here does not survive on a scrollable table. */.table-container.svelte-171ci2i {border:var(--table-border, 1px solid #e5e7eb);border-radius:var(--table-border-radius, var(--radius, 4px));width:var(--table-container-width, 100%);overflow:var(--table-container-overflow, hidden);}.scrollable-table.svelte-171ci2i {height:var(--table-container-height, 143px);overflow-y:auto;}.table-scroll-shell.svelte-171ci2i {position:relative;min-width:0;}\n\n /* Edge scrims: fade the clipped side of the table into its background so\n hidden columns read as \"more content this way\". Class-driven from live\n scroll state — never shown when the table fits. pointer-events: none\n keeps cells under the fade clickable; z-index 2 paints above sticky\n headers (z-index 1). */.table-scroll-shell.svelte-171ci2i::before,\n .table-scroll-shell.svelte-171ci2i::after {content:'';position:absolute;top:0;bottom:0;width:var(--table-scroll-scrim-width, 32px);opacity:0;pointer-events:none;transition:opacity\n var(\n --table-scroll-scrim-transition-duration,\n var(--duration-base, var(--motion-duration, 0.2s))\n )\n var(--table-scroll-scrim-transition-easing, var(--motion-easing, ease));z-index:2;}.table-scroll-shell.svelte-171ci2i::before {left:0;border-radius:var(--table-border-radius, var(--radius, 4px)) 0 0\n var(--table-border-radius, var(--radius, 4px));background:linear-gradient(to right, var(--table-scroll-scrim-color, #ffffff), transparent);}.table-scroll-shell.svelte-171ci2i::after {right:0;border-radius:0 var(--table-border-radius, var(--radius, 4px))\n var(--table-border-radius, var(--radius, 4px)) 0;background:linear-gradient(to left, var(--table-scroll-scrim-color, #ffffff), transparent);}.table-scroll-shell.scrollable-left.svelte-171ci2i::before {opacity:1;}.table-scroll-shell.scrollable-right.svelte-171ci2i::after {opacity:1;}.table-scroll.svelte-171ci2i {overflow-x:auto;min-width:0;scrollbar-width:thin;}table.svelte-171ci2i {width:var(--table-width, 100%);border-collapse:var(--table-border-collapse, collapse);}.table-header.svelte-171ci2i,\n .table-content.svelte-171ci2i {border:var(--table-inner-border, none);padding:var(--table-padding, 12px 16px);text-align:var(--table-text-align, left);width:var(--table-column-width);\n /* Wrap at word boundaries; only a single word wider than the column may\n split as a last resort. break-word (not anywhere) keeps each column's\n min-content width at its longest word, so ordinary labels never split\n mid-word — the old break-all default did. Opt back in per consumer via\n --table-word-break / --table-overflow-wrap. */word-break:var(--table-word-break, normal);overflow-wrap:var(--table-overflow-wrap, break-word);}.scrollable-content.svelte-171ci2i {overflow-y:auto;height:var(--scrollable-column-height, 20px);}.table-header.svelte-171ci2i {background-color:var(--table-header-background, var(--table-header-border-bgcolor, #f9fafb));font-size:var(--table-header-font-size, 13px);font-family:var(--table-header-font-family, inherit);font-weight:var(--table-header-font-weight, 600);letter-spacing:var(--table-header-letter-spacing, 0.02em);text-transform:var(--table-header-text-transform, inherit);color:var(--table-header-color, var(--table-header-font-color, #6b7280));border-bottom:var(--table-header-border, var(--table-inner-border, none));}.table-header-content.svelte-171ci2i {display:flex;align-items:center;gap:4px;justify-content:var(--table-header-justify, flex-start);}.table-header-label.svelte-171ci2i {text-decoration:var(--table-header-tooltip-underline, underline dotted);text-underline-offset:2px;cursor:help;}.table-header-label-plain.svelte-171ci2i {text-decoration:none;}.table-header-filter.svelte-171ci2i {display:inline-flex;align-items:center;}.table-header-filter-trigger.svelte-171ci2i {--button-color: transparent;--button-border: none;--button-padding: 2px;--button-margin: 0;--button-width: fit-content;--button-height: fit-content;--button-text-color: var(--table-sort-button-color, inherit);--button-border-radius: 4px;--button-hover-color: var(--table-sort-button-hover-background, rgba(0, 0, 0, 0.05));display:inline-flex;align-items:center;opacity:var(--table-sort-idle-opacity, 0.5);}.table-header-filter-trigger.svelte-171ci2i:hover {opacity:var(--table-sort-idle-hover-opacity, 0.85);}.table-header-filter-active.svelte-171ci2i {opacity:1;color:var(--table-filter-active-color, #2563eb);}.table-header-filter-icon.svelte-171ci2i svg {width:var(--table-sort-icon-size, 14px);height:var(--table-sort-icon-size, 14px);display:block;}.table-cell-clamp.svelte-171ci2i {overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.table-header-sticky.svelte-171ci2i {position:sticky;top:var(--table-header-sticky-top, 0);z-index:1;}.table-content.svelte-171ci2i {\n /* The terminal #ffffff matters as much as the colour beside it. Without it\n the whole declaration is invalid at computed-value time when neither\n variable is set, so the cell falls back to `transparent` and inherits\n whatever surface it lands on -- while `color` still resolves to a\n hardcoded near-black. On a dark page that is #111827 on #1a1a26: a\n measured contrast of 1.03, i.e. invisible. The header row never had the\n bug because it pairs its colour with a background of its own. */background-color:var(--table-content-background, var(--table-content-border-bgcolor, #ffffff));font-size:var(--table-content-font-size, 14px);font-family:var(--table-content-font-family, inherit);color:var(--table-content-color, var(--table-content-font-color, #111827));}\n\n /* Column highlight (TableColumn.highlighted). Row hover keeps higher\n specificity and row selection is declared later at equal specificity, so\n both row states paint over the column wash. */.table-header.table-col-highlighted.svelte-171ci2i {background-color:var(\n --table-col-highlight-header-background,\n var(--table-col-highlight-background, #f3f9ff)\n );}.table-content.table-col-highlighted.svelte-171ci2i {background-color:var(--table-col-highlight-background, #f3f9ff);}.table-row.svelte-171ci2i {border-bottom:var(--table-row-border, 1px solid #f3f4f6);background-color:var(--table-row-background);}.table-row.svelte-171ci2i:last-child {border-bottom:var(--table-row-last-border, none);}.table-row.svelte-171ci2i:nth-child(even) {background-color:var(--table-row-alt-background, var(--table-row-background));}.table-row.svelte-171ci2i:hover {background-color:var(--table-row-hover-background);}.table-row.svelte-171ci2i:hover > .table-content:where(.svelte-171ci2i) {background-color:var(\n --table-row-hover-background,\n var(--table-content-background, var(--table-content-border-bgcolor))\n );}.table-row-clickable.svelte-171ci2i {cursor:pointer;}.table-row-clickable.svelte-171ci2i:focus-visible {outline:2px solid var(--table-focus-outline-color, #3b82f6);outline-offset:-2px;}\n\n /* C2-1: Selected row highlight */.table-row-selected.svelte-171ci2i {background-color:var(--table-row-selected-background, #eff6ff);}.table-row-selected.svelte-171ci2i > .table-content:where(.svelte-171ci2i) {background-color:var(--table-row-selected-background, #eff6ff);}\n\n /* Summary/period-total row (summaryRowIndex): both the row and its cells,\n since a themed --table-content-background would otherwise paint over a\n row-level background. Falls back to the regular cell background. */.table-summary-row.svelte-171ci2i {background-color:var(--table-summary-row-background, var(--table-content-background));}.table-summary-row.svelte-171ci2i > .table-content:where(.svelte-171ci2i) {background-color:var(--table-summary-row-background, var(--table-content-background));}\n\n /* ── C2-1 Checkbox column ───────────────────────────────────────────────── */\n /* The column renders the library Checkbox. The table's own --table-checkbox-*\n tokens stay the public API and are bridged onto Checkbox's --checkbox-*\n variables here, so a consumer theming the table keeps working and a\n consumer theming Checkbox app-wide is overridden only inside the table. */.table-checkbox-col.svelte-171ci2i {width:var(--table-checkbox-col-width, 44px);padding:var(--table-checkbox-col-padding, 12px 12px);--checkbox-container-gap: 0;--checkbox-size: var(--table-checkbox-size, 18px);--checkbox-border: var(--table-checkbox-border, 2px solid #9ca3af);--checkbox-border-radius: var(--table-checkbox-border-radius, var(--radius, 4px));--checkbox-background: var(--table-checkbox-background, transparent);--checkbox-hover-border-color: var(--table-checkbox-hover-border-color, #6b7280);--checkbox-checked-background: var(--table-checkbox-checked-background, #2563eb);--checkbox-checked-border: var(\n --table-checkbox-checked-border,\n 2px solid var(--table-checkbox-checked-border-color, #2563eb)\n );--checkbox-indeterminate-background: var(--table-checkbox-indeterminate-background, #2563eb);--checkbox-indeterminate-border: var(\n --table-checkbox-indeterminate-border,\n 2px solid var(--table-checkbox-indeterminate-border-color, #2563eb)\n );--checkbox-disabled-opacity: var(--table-checkbox-disabled-opacity, 0.4);--checkbox-focus-ring: var(--table-checkbox-focus-ring, 0 0 0 3px rgba(59, 130, 246, 0.3));--checkbox-icon-size: var(--table-checkbox-icon-size, 12px);--checkbox-checkmark-color: var(--table-checkbox-icon-color, #ffffff);--checkbox-dash-color: var(--table-checkbox-icon-color, #ffffff);\n /* Named so a consumer can reach it. Table sets the Checkbox child's token\n directly, and a rule on the element beats anything declared at :root, so\n through <sui-table> the selection checkboxes' transition could not be\n slowed or stopped by any means -- custom properties are the only route\n across a shadow boundary and this one was already spoken for. */--checkbox-transition: var(\n --table-checkbox-transition,\n var(--duration-quick, var(--motion-duration, 0.15s))\n );}\n\n /* ── Sort button ────────────────────────────────────────────────────────── */.sort-button.svelte-171ci2i {--button-color: transparent;--button-border: none;--button-padding: 2px;--button-margin: 0;--button-text-color: var(--table-sort-button-color, inherit);--button-border-radius: 4px;--button-width: fit-content;--button-height: fit-content;--button-hover-color: var(--table-sort-button-hover-background, rgba(0, 0, 0, 0.05));--button-hover-text-color: var(\n --table-sort-button-hover-color,\n var(--table-sort-button-color, inherit)\n );display:inline-flex;align-items:center;line-height:1;}.sort-button.svelte-171ci2i .sort-icon {display:inline-flex;align-items:center;}\n\n /* The sorted-direction half paints via currentColor; without an explicit\n color it inherits the Button's text color (white on the default button\n theme), which disappears on light headers. Default to the design\n system's active blue. */.sort-button.svelte-171ci2i .sort-icon:not(.sort-icon-idle) {color:var(--table-sort-active-color, #1b85ff);}.sort-button.svelte-171ci2i .sort-icon svg {width:var(--table-sort-icon-size, 14px);height:var(--table-sort-icon-size, 14px);display:block;}\n\n /* Two-tone state painting. The shared sort-default.svg asset stays\n color-agnostic (fill=\"currentColor\", like every other icon asset); the\n state colors live here. All halves default to the inactive fill, then\n the sorted direction's half is released back to currentColor (the\n active color above). Path order in the asset is up-chevron first,\n down-chevron second. */.sort-button.svelte-171ci2i .sort-icon svg path {fill:var(--table-sort-inactive-color, #c7c7c7);}.sort-button.svelte-171ci2i .sort-icon-asc svg path:first-child,\n .sort-button.svelte-171ci2i .sort-icon-desc svg path:last-child {fill:currentColor;}\n\n /* The design system draws every sort state fully opaque — faintness comes\n from the glyph fills (inactive halves #C7C7C7, active direction\n currentColor), never from transparency. The opacity vars remain for\n consumers that prefer a fade but now default to solid; hover steps the\n inactive halves to the design system's hover gray. */.sort-button.svelte-171ci2i .sort-icon-idle {opacity:var(--table-sort-idle-opacity, 1);}.sort-button.svelte-171ci2i:hover .sort-icon-idle {opacity:var(--table-sort-idle-hover-opacity, 1);--table-sort-inactive-color: var(--table-sort-hover-color, #797979);}\n\n /* ── Empty ──────────────────────────────────────────────────────────────── */.table-empty.svelte-171ci2i {padding:var(--table-empty-padding, 32px 24px);text-align:center;color:var(--table-empty-color, #9ca3af);}\n\n /* ── Footer ─────────────────────────────────────────────────────────────── */.table-footer.svelte-171ci2i {border-top:var(--table-footer-border, 1px solid #e5e7eb);padding:var(--table-footer-padding, 8px 16px);background-color:var(--table-footer-background, transparent);}.table-paginator.svelte-171ci2i {display:flex;align-items:center;justify-content:space-between;gap:var(--table-paginator-gap, 12px);flex-wrap:wrap;}.table-paginator-range.svelte-171ci2i {font-size:var(--table-paginator-range-font-size, 13px);color:var(--table-paginator-range-color, #6b7280);font-variant-numeric:tabular-nums;}.table-paginator-controls.svelte-171ci2i {display:flex;align-items:center;gap:var(--table-paginator-gap, 12px);}.table-paginator-size.svelte-171ci2i {display:inline-flex;min-width:var(--table-paginator-size-width, 72px);\n /* Select's standalone defaults (40px min-height, 8px 12px padding) render\n 58px tall next to the 36px pagination buttons sharing this row. Match the\n steppers instead of towering over them. */--select-trigger-min-height: var(--table-paginator-size-height, 36px);--select-trigger-padding: var(--table-paginator-size-padding, 0 8px);}\n\n /* ── Toolbar (bulk actions) ─────────────────────────────────────────────── */.table-toolbar.svelte-171ci2i {display:flex;align-items:center;gap:var(--table-toolbar-gap, 12px);padding:var(--table-toolbar-padding, 8px 12px);border:var(--table-toolbar-border, 1px solid #e5e7eb);border-radius:var(--table-toolbar-border-radius, var(--radius, 4px));background-color:var(--table-toolbar-background, #f9fafb);margin-bottom:var(--table-toolbar-margin-bottom, 8px);}\n\n /* ── Row-number column ──────────────────────────────────────────────────── */.table-row-number-col.svelte-171ci2i {width:var(--table-row-number-col-width, 48px);color:var(--table-row-number-color, #6b7280);font-variant-numeric:tabular-nums;text-align:var(--table-row-number-align, var(--table-text-align, left));}\n\n /* ── Accessibility ──────────────────────────────────────────────────────── */.sr-only.svelte-171ci2i {position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;border-width:0;}\n\n /* ── Mobile record cards (opt-in via `mobileCardLayout`) ──────────────────\n The label span is always in the DOM -- rendering it only under the media\n query below would mean an AT that queries computed style rather than\n layout (or a print stylesheet, or a future breakpoint change) sees no\n label at all until the exact 640px condition is re-evaluated. Keeping the\n element and toggling `display` is what lets `aria-hidden` on it (see the\n template) stay meaningful at every width: hidden today, but never a\n generated-content trick that could not carry that attribute in the first\n place. */.table-mobile-label.svelte-171ci2i {display:none;}\n\n /* The breakpoint is a literal, not `var(--table-mobile-breakpoint)`: a\n custom property can't be read inside an `@media` condition (only inside\n a declaration value), so a themable breakpoint was never on the table --\n documented in docs/Table.md rather than silently unsupported. */\n @media (max-width: 640px) {\n /* `display: table` (and its `-row`/`-cell`/etc. companions) is what gives\n a table its IMPLICIT header/cell ARIA semantics -- switching every one\n of these to `block` for the stacked-card look throws that away, which\n is exactly why `mobileRole()` in the script restates it explicitly as\n `table`/`rowgroup`/`row`/`columnheader`/`cell` on the elements below.\n Without both halves this rule would silently turn every consumer's\n table into an AX-tree list the moment their viewport narrowed. */.table-mobile-cards.svelte-171ci2i table:where(.svelte-171ci2i),\n .table-mobile-cards.svelte-171ci2i thead:where(.svelte-171ci2i),\n .table-mobile-cards.svelte-171ci2i tbody:where(.svelte-171ci2i),\n .table-mobile-cards.svelte-171ci2i tr:where(.svelte-171ci2i),\n .table-mobile-cards.svelte-171ci2i th:where(.svelte-171ci2i),\n .table-mobile-cards.svelte-171ci2i td:where(.svelte-171ci2i) {display:block;width:100%;}\n\n /* Headers are not shown as a row anymore -- their text now repeats per\n card as the `.table-mobile-label` beside each value -- but they stay\n in the DOM (not `display: none`) so `role=\"columnheader\"` continues\n naming its `role=\"cell\"` for any reading that still associates the\n two by DOM structure rather than only by the label span's text. */.table-mobile-cards.svelte-171ci2i thead:where(.svelte-171ci2i) {position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;border-width:0;}\n\n /* The horizontal-scroll affordance this table uses at desktop width (see\n .table-scroll / .table-scroll-shell above) has nothing to scroll once\n every cell is a full-width block, and a lingering scrim would fade a\n card edge that no longer clips anything. */.table-mobile-cards.svelte-171ci2i .table-scroll:where(.svelte-171ci2i) {overflow-x:visible;}.table-mobile-cards.svelte-171ci2i .table-scroll-shell:where(.svelte-171ci2i)::before,\n .table-mobile-cards.svelte-171ci2i .table-scroll-shell:where(.svelte-171ci2i)::after {display:none;}.table-mobile-cards.svelte-171ci2i tbody:where(.svelte-171ci2i) tr.table-row:where(.svelte-171ci2i) {border:var(--table-mobile-card-border, 1px solid #e5e7eb);border-radius:var(\n --table-mobile-card-radius,\n var(--table-border-radius, var(--radius, 4px))\n );padding:var(--table-mobile-card-padding, 12px);margin-block-end:var(--table-mobile-card-gap, 12px);}.table-mobile-cards.svelte-171ci2i tbody:where(.svelte-171ci2i) tr.table-row:where(.svelte-171ci2i):last-child {margin-block-end:0;}\n\n /* Each cell becomes a label/value pair instead of a table column; the\n label span (hidden above) is the only thing `display: inline` turns\n back on inside this query. */.table-mobile-cards.svelte-171ci2i td.table-content:where(.svelte-171ci2i) {display:flex;align-items:baseline;gap:var(--table-mobile-label-gap, 8px);border:none;}.table-mobile-cards.svelte-171ci2i .table-mobile-label:where(.svelte-171ci2i) {display:inline;flex:0 0 var(--table-mobile-label-width, 40%);font-weight:var(--table-mobile-label-font-weight, 600);color:var(--table-mobile-label-color, #6b7280);}.table-mobile-cards.svelte-171ci2i .table-mobile-value:where(.svelte-171ci2i),\n .table-mobile-cards.svelte-171ci2i td.table-content:where(.svelte-171ci2i) > div:where(.svelte-171ci2i) {flex:1 1 auto;min-width:0;}\n }"
22628
22840
  };
22629
22841
  function Table(e, t) {
22630
22842
  push(t, !0), append_styles$1(e, $$css$86);
@@ -23757,71 +23969,47 @@ customElements.define("sui-table", create_custom_element(Table_wc, {
23757
23969
  //#region src/lib/Toast/Toast.svelte
23758
23970
  var root$42 = /* @__PURE__ */ from_html("<div class=\"toast-icon-wrapper svelte-37crwe\"><!></div>"), root_1$39 = /* @__PURE__ */ from_html("<div class=\"toast-subtext svelte-37crwe\"> </div>"), root_2$30 = /* @__PURE__ */ from_html("<div class=\"close-button svelte-37crwe\" tabindex=\"0\" role=\"button\"><!></div>"), root_3$27 = /* @__PURE__ */ from_html("<div role=\"alert\" aria-live=\"assertive\"><!> <div class=\"toast-message svelte-37crwe\"> <!> <!></div> <!></div>"), $$css$84 = {
23759
23971
  hash: "svelte-37crwe",
23760
- code: ".toast.svelte-37crwe {padding:var(--toast-padding, 10px);font-size:var(--toast-font-size, 14px);font-family:var(--toast-font-family, inherit);font-weight:var(--toast-font-weight, inherit);height:var(--toast-height, fit-content);border-radius:var(--toast-border-radius, var(--radius, 4px));border:var(--toast-border, none);border-style:var(--toast-border-style);width:var(--toast-width, fit-content);align-items:var(--toast-align-items, center);margin:var(--toast-margin, 0px 10px 10px 10px);justify-content:var(--toast-justify-content, space-between);z-index:var(--toast-z-index, 1000);display:var(--toast-display, flex);position:var(--toast-position, absolute);top:var(--toast-top, 10px);left:var(--toast-left, 0);right:var(--toast-right, 0);bottom:var(--toast-bottom, auto);background-color:var(--toast-background-color, #87ceeb);opacity:var(--toast-opacity, 1);box-sizing:var(--toast-box-sizing);\n\n /* A toast is a transient status overlay, not a click target: it floats\n above page content (often over drawer/footer CTAs) and used to swallow\n clicks meant for the controls beneath it for its whole duration.\n Click-through by default; the close button re-enables its own hit\n area below, and consumers with actionable bottomContent can opt the\n whole toast back in via --toast-pointer-events: auto. */pointer-events:var(--toast-pointer-events, none);}.no-page-overlap.svelte-37crwe {position:var(--toast-position, relative);}.toast-icon-wrapper.svelte-37crwe {display:flex;width:var(--toast-icon-wrapper-width, 20px);height:var(--toast-icon-wrapper-height, 20px);margin:var(--toast-icon-margin, 0px 6px 0px 0px);padding:var(--toast-icon-wrapper-padding, 1px);align-items:center;--image-height: var(--toast-icon-height, 100%);--image-width: fit-content;--image-filter: var(--toast-icon-filter, none);--image-border-radius: var(--toast-icon-border-radius, 50%);}.toast-message.svelte-37crwe {display:var(--toast-message-display, flex);flex:var(--toast-message-flex, 1);padding:var(--toast-message-padding, 1px);flex-direction:column;}.toast-subtext.svelte-37crwe {color:var(--toast-subtext-color, #c7c7c7);font-size:var(--toast-subtext-font-size, 10px);font-weight:var(--toast-subtext-font-weight, 400);margin:var(--toast-subtext-margin, 10px 0px 0px 0px);}.close-button.svelte-37crwe {pointer-events:auto;width:var(--toast-close-button-width, 20px);height:var(--toast-close-button-height, 20px);cursor:var(--toast-close-button-cursor, pointer);gap:var(--toast-close-button-gap, 6px);margin:var(--toast-close-button-margin, 0px 0px 0px 10px);display:var(--toast-close-button-display, flex);align-items:var(--toast-close-button-align-items, center);justify-content:var(--toast-close-button-justify-content, center);padding:var(--toast-close-button-padding, 1px);--image-height: var(--toast-icon-height, 100%);--image-width: fit-content;--image-filter: var(--toast-icon-filter, none);--image-border-radius: var(--toast-icon-border-radius, 50%);}.success.svelte-37crwe {color:var(--toast-success-text, #fff);background-color:var(--toast-success-background-color, var(--toast-background-color, #24aa5a));--toast-border: var(--toast-success-border);}.info.svelte-37crwe {color:var(--toast-info-text, #fff);background-color:var(--toast-info-background-color, var(--toast-background-color, #87ceeb));--toast-border: var(--toast-info-border);}.warn.svelte-37crwe {color:var(--toast-warn-text, #fff);background-color:var(--toast-warn-background-color, var(--toast-background-color, #f3a42d));--toast-border: var(--toast-warn-border);}.error.svelte-37crwe {color:var(--toast-error-text, #fff);background-color:var(--toast-error-background-color, var(--toast-background-color, #f04438));--toast-border: var(--toast-error-border);}"
23972
+ code: ".toast.svelte-37crwe {padding:var(--toast-padding, 10px);font-size:var(--toast-font-size, 14px);font-family:var(--toast-font-family, inherit);font-weight:var(--toast-font-weight, inherit);height:var(--toast-height, fit-content);border-radius:var(--toast-border-radius, var(--radius, 4px));border:var(--toast-border, none);border-style:var(--toast-border-style);width:var(--toast-width, fit-content);align-items:var(--toast-align-items, center);margin:var(--toast-margin, 0px 10px 10px 10px);justify-content:var(--toast-justify-content, space-between);z-index:var(--toast-z-index, 1000);position:var(--toast-position, absolute);top:var(--toast-top, 10px);left:var(--toast-left, 0);right:var(--toast-right, 0);bottom:var(--toast-bottom, auto);background-color:var(--toast-background-color, #87ceeb);box-sizing:var(--toast-box-sizing);\n\n /* A toast is a transient status overlay, not a click target: it floats\n above page content (often over drawer/footer CTAs) and used to swallow\n clicks meant for the controls beneath it for its whole duration.\n Click-through by default; the close button re-enables its own hit\n area below, and consumers with actionable bottomContent can opt the\n whole toast back in via --toast-pointer-events: auto. */pointer-events:var(--toast-pointer-events, none);\n\n /* Closed / pre-enter state. `@starting-style` below reuses these same\n values for the entrance's \"before\" frame, and removing `.is-visible`\n transitions back to these same values for the exit -- one shared\n \"hidden\" declaration, not independent in/out targets the way\n `in:fly`/`out:fly` configs could be. */display:none;opacity:0;transform:translate(var(--toast-enter-x, 0px), var(--toast-enter-y, 0px));\n\n /* max(50ms, …) rather than trusting the JS-side floor alone (toDurationStyle,\n in the script block): that only clamps the inAnimationDuration/\n outAnimationDuration PROP path. A consumer overriding --toast-close-duration\n directly via CSS -- the whole point of exposing it as a token -- bypasses\n the prop entirely, and a 0s/1ms transition never starts, so it never fires\n transitionend, so ontoasthide never runs. The floor has to live wherever\n the duration is actually consumed, not just where the props feed it. */transition:opacity max(50ms, var(--toast-close-duration, var(--motion-duration, 0.8s)))\n var(--toast-close-easing, var(--motion-easing, ease-in)),\n transform max(50ms, var(--toast-close-duration, var(--motion-duration, 0.8s)))\n var(--toast-close-easing, var(--motion-easing, ease-in)),\n display max(50ms, var(--toast-close-duration, var(--motion-duration, 0.8s))) allow-discrete;}.toast.is-visible.svelte-37crwe {display:var(--toast-display, flex);opacity:var(--toast-opacity, 1);transform:translate(0, 0);\n\n /* 400ms matches --duration-slow exactly (DESIGN_PRINCIPLES.md #1's scale),\n so it sits in this chain as the named tier; 800ms (the close side above)\n matches no named tier and skips straight to the root token. */\n /* Same max(50ms, …) floor as the closed-state block below, and for the same\n reason -- a consumer-set --toast-open-duration can bypass the JS-side\n floor on the inAnimationDuration prop just as easily as the close side. */transition:opacity\n max(50ms, var(--toast-open-duration, var(--duration-slow, var(--motion-duration, 0.4s))))\n var(--toast-open-easing, var(--ease-out, var(--motion-easing, ease-out))),\n transform\n max(50ms, var(--toast-open-duration, var(--duration-slow, var(--motion-duration, 0.4s))))\n var(--toast-open-easing, var(--ease-out, var(--motion-easing, ease-out))),\n display\n max(50ms, var(--toast-open-duration, var(--duration-slow, var(--motion-duration, 0.4s))))\n allow-discrete;\n\n @starting-style {opacity:0;transform:translate(var(--toast-enter-x, 0px), var(--toast-enter-y, 0px));\n }}.no-page-overlap.svelte-37crwe {position:var(--toast-position, relative);}.toast[data-direction='left-to-right'].svelte-37crwe {--toast-enter-x: calc(-1 * var(--distance-overlay, 60px));}.toast[data-direction='right-to-left'].svelte-37crwe {--toast-enter-x: var(--distance-overlay, 60px);}.toast[data-direction='bottom-to-top'].svelte-37crwe {--toast-enter-y: var(--distance-overlay, 60px);}.toast[data-direction='top-to-bottom'].svelte-37crwe {--toast-enter-y: calc(-1 * var(--distance-overlay, 60px));}\n\n /* Vertical directions travel a shorter, fixed distance in non-overlap mode --\n today's own literal (20px), kept as its own value rather than forced onto\n `--distance-overlay`: that token replaces the old 500px \"flying\" default,\n and 20px was already reasonable (DESIGN_PRINCIPLES.md #1). Horizontal\n directions never varied with `overlapPage` before this migration (see the\n pre-migration `getAnimationConfig` switch), so they get no non-overlap\n override here either. */.toast.no-page-overlap[data-direction='bottom-to-top'].svelte-37crwe {--toast-enter-y: 20px;}.toast.no-page-overlap[data-direction='top-to-bottom'].svelte-37crwe {--toast-enter-y: -20px;}\n\n /* Accessibility guard, not a style preference -- `!important` is deliberate.\n It has to outrank both the direction rules above and any per-instance\n inline `--toast-enter-x`/`-y` the component sets from `inAnimationOffset`/\n `outAnimationOffset` above (an inline style otherwise beats any selector in\n this sheet). Duration floors at 0.05s rather than 0s so the\n `transitionend` listener that fires `ontoasthide` still runs -- a `0s`\n transition never starts, so it never ends, and (empirically, under heavy\n main-thread jank) even a 1ms duration can get coalesced across a single\n style recalc with no observable \"before\" frame, which drops\n `transitionend` the same way. 50ms clears a normal frame budget with\n margin while staying well under perceptible motion. See\n DESIGN_PRINCIPLES.md #1 on matching a guard's specificity to what it has\n to override. */\n @media (prefers-reduced-motion: reduce) {.toast.svelte-37crwe,\n .toast.is-visible.svelte-37crwe {--toast-enter-x: 0px !important;--toast-enter-y: 0px !important;transition-duration:0.05s !important;}\n }.toast-icon-wrapper.svelte-37crwe {display:flex;width:var(--toast-icon-wrapper-width, 20px);height:var(--toast-icon-wrapper-height, 20px);margin:var(--toast-icon-margin, 0px 6px 0px 0px);padding:var(--toast-icon-wrapper-padding, 1px);align-items:center;--image-height: var(--toast-icon-height, 100%);--image-width: fit-content;--image-filter: var(--toast-icon-filter, none);--image-border-radius: var(--toast-icon-border-radius, 50%);}.toast-message.svelte-37crwe {display:var(--toast-message-display, flex);flex:var(--toast-message-flex, 1);padding:var(--toast-message-padding, 1px);flex-direction:column;}.toast-subtext.svelte-37crwe {color:var(--toast-subtext-color, #c7c7c7);font-size:var(--toast-subtext-font-size, 10px);font-weight:var(--toast-subtext-font-weight, 400);margin:var(--toast-subtext-margin, 10px 0px 0px 0px);}.close-button.svelte-37crwe {pointer-events:auto;width:var(--toast-close-button-width, 20px);height:var(--toast-close-button-height, 20px);cursor:var(--toast-close-button-cursor, pointer);gap:var(--toast-close-button-gap, 6px);margin:var(--toast-close-button-margin, 0px 0px 0px 10px);display:var(--toast-close-button-display, flex);align-items:var(--toast-close-button-align-items, center);justify-content:var(--toast-close-button-justify-content, center);padding:var(--toast-close-button-padding, 1px);--image-height: var(--toast-icon-height, 100%);--image-width: fit-content;--image-filter: var(--toast-icon-filter, none);--image-border-radius: var(--toast-icon-border-radius, 50%);}.success.svelte-37crwe {color:var(--toast-success-text, #fff);background-color:var(--toast-success-background-color, var(--toast-background-color, #24aa5a));--toast-border: var(--toast-success-border);}.info.svelte-37crwe {color:var(--toast-info-text, #fff);background-color:var(--toast-info-background-color, var(--toast-background-color, #87ceeb));--toast-border: var(--toast-info-border);}.warn.svelte-37crwe {color:var(--toast-warn-text, #fff);background-color:var(--toast-warn-background-color, var(--toast-background-color, #f3a42d));--toast-border: var(--toast-warn-border);}.error.svelte-37crwe {color:var(--toast-error-text, #fff);background-color:var(--toast-error-background-color, var(--toast-background-color, #f04438));--toast-border: var(--toast-error-border);}"
23761
23973
  };
23762
23974
  function Toast(e, t) {
23763
23975
  push(t, !0), append_styles$1(e, $$css$84);
23764
- let n = prop(t, "duration", 7, 2e3), i = prop(t, "leftIcon", 7), a = prop(t, "message", 7, ""), o = prop(t, "subtext", 7), s = prop(t, "rightIcon", 7), c = prop(t, "type", 7), l = prop(t, "direction", 7), u = prop(t, "overlapPage", 7, !0), f = prop(t, "inAnimationOffset", 7), p = prop(t, "inAnimationDuration", 7), h = prop(t, "outAnimationOffset", 7), S = prop(t, "outAnimationDuration", 7), C = prop(t, "testId", 7), k = prop(t, "messageTestId", 7), R = prop(t, "subTextTestId", 7), te = prop(t, "closeIconTestId", 7), ne = prop(t, "ontoasthide", 7), re = prop(t, "bottomContent", 7), G = prop(t, "classes", 7), be = /* @__PURE__ */ user_derived(() => at(u(), l())), Me = /* @__PURE__ */ state(!0), Re = /* @__PURE__ */ user_derived(() => [
23976
+ let n = prop(t, "duration", 7, 2e3), i = prop(t, "leftIcon", 7), a = prop(t, "message", 7, ""), o = prop(t, "subtext", 7), s = prop(t, "rightIcon", 7), c = prop(t, "type", 7), l = prop(t, "direction", 7), u = prop(t, "overlapPage", 7, !0), f = prop(t, "inAnimationOffset", 7), p = prop(t, "inAnimationDuration", 7), h = prop(t, "outAnimationOffset", 7), S = prop(t, "outAnimationDuration", 7), C = prop(t, "testId", 7), k = prop(t, "messageTestId", 7), R = prop(t, "subTextTestId", 7), te = prop(t, "closeIconTestId", 7), ne = prop(t, "ontoasthide", 7), re = prop(t, "bottomContent", 7), G = prop(t, "classes", 7), be = /* @__PURE__ */ state(!0), Me = /* @__PURE__ */ user_derived(() => [
23765
23977
  "toast",
23766
23978
  c() ?? "",
23767
23979
  G() ?? ""
23768
- ].filter((e) => e.length > 0).join(" "));
23769
- function Ue() {
23770
- set(Me, !1);
23980
+ ].filter((e) => e.length > 0).join(" ")), Re = /* @__PURE__ */ user_derived(() => l() ?? "top-to-bottom");
23981
+ function Ue(e, t) {
23982
+ switch (e) {
23983
+ case "left-to-right": return { x: -t };
23984
+ case "right-to-left": return { x: t };
23985
+ case "bottom-to-top": return { y: t };
23986
+ default: return { y: -t };
23987
+ }
23988
+ }
23989
+ let it = /* @__PURE__ */ user_derived(() => {
23990
+ let e = f() ?? h();
23991
+ return e == null ? {} : Ue(get(Re), e);
23992
+ });
23993
+ function at(e) {
23994
+ return typeof e == "number" ? `${Math.max(e, 50)}ms` : null;
23771
23995
  }
23772
- function it() {
23773
- ne()?.();
23996
+ let ot = /* @__PURE__ */ user_derived(() => at(p())), ct = /* @__PURE__ */ user_derived(() => at(S()));
23997
+ function lt() {
23998
+ set(be, !1);
23774
23999
  }
23775
- function at(e, t) {
23776
- let n = 0, i = 0, a = 0, o = 0;
23777
- switch (t) {
23778
- case "left-to-right":
23779
- n = -1 * (f() ?? 500), a = -1 * (h() ?? 500);
23780
- break;
23781
- case "right-to-left":
23782
- n = f() ?? 500, a = h() ?? 500;
23783
- break;
23784
- case "bottom-to-top":
23785
- i = f() ?? (e ? 500 : 20), o = h() ?? (e ? 500 : 20);
23786
- break;
23787
- default:
23788
- i = -1 * (f() ?? (e ? 500 : 20)), o = -1 * (h() ?? (e ? 100 : 20));
23789
- break;
23790
- }
23791
- return prefersReducedMotion() ? {
23792
- in: {
23793
- x: 0,
23794
- y: 0,
23795
- duration: 0
23796
- },
23797
- out: {
23798
- x: 0,
23799
- y: 0,
23800
- duration: 0
23801
- }
23802
- } : {
23803
- in: {
23804
- x: n,
23805
- y: i,
23806
- duration: p() ?? 400
23807
- },
23808
- out: {
23809
- x: a,
23810
- y: o,
23811
- duration: S() ?? 800
23812
- }
23813
- };
24000
+ function ut(e) {
24001
+ e.target === e.currentTarget && e.propertyName === "opacity" && !get(be) && ne()?.();
23814
24002
  }
23815
24003
  user_effect(() => {
23816
24004
  a(), n(), untrack(() => {
23817
- set(Me, !0);
24005
+ set(be, !0);
23818
24006
  });
23819
- let e = setTimeout(Ue, n());
24007
+ let e = setTimeout(lt, n());
23820
24008
  return () => {
23821
24009
  clearTimeout(e);
23822
24010
  };
23823
24011
  });
23824
- var ot = {
24012
+ var dt = {
23825
24013
  get duration() {
23826
24014
  return n();
23827
24015
  },
@@ -23936,63 +24124,66 @@ function Toast(e, t) {
23936
24124
  set classes(e) {
23937
24125
  G(e), flushSync();
23938
24126
  }
23939
- }, ct = comment(), lt = first_child(ct), ut = (e) => {
23940
- var t = root_3$27();
23941
- let n;
23942
- var c = child(t), l = (e) => {
23943
- var t = root$42();
23944
- Img(child(t), {
23945
- inlineSvg: !0,
23946
- get src() {
23947
- return i();
23948
- },
23949
- alt: "",
23950
- fallback: ""
23951
- }), reset(t), append(e, t);
23952
- };
23953
- if_block(c, (e) => {
23954
- typeof i() == "string" && i().length > 0 && e(l);
23955
- });
23956
- var f = sibling(c, 2), p = child(f), h = sibling(p), S = (e) => {
23957
- var t = root_1$39(), n = child(t, !0);
23958
- reset(t), template_effect(() => {
23959
- set_attribute(t, "data-pw", R()), set_attribute(t, "testid", R()), set_text(n, o());
23960
- }), append(e, t);
23961
- };
23962
- if_block(h, (e) => {
23963
- typeof o() == "string" && o().length > 0 && e(S);
23964
- });
23965
- var ne = sibling(h, 2), G = (e) => {
23966
- var t = comment();
23967
- snippet(first_child(t), re), append(e, t);
23968
- };
23969
- if_block(ne, (e) => {
23970
- typeof re() == "function" && e(G);
23971
- }), reset(f);
23972
- var Me = sibling(f, 2), at = (e) => {
23973
- var t = root_2$30();
23974
- Img(child(t), {
23975
- inlineSvg: !0,
23976
- get src() {
23977
- return s();
23978
- },
23979
- alt: "Close",
23980
- fallback: ""
23981
- }), reset(t), template_effect(() => {
23982
- set_attribute(t, "data-pw", te()), set_attribute(t, "testid", te());
23983
- }), delegated("click", t, Ue), delegated("keydown", t, (e) => {
23984
- (e.key === "Enter" || e.key === " ") && (e.preventDefault(), Ue());
23985
- }), append(e, t);
23986
- };
23987
- if_block(Me, (e) => {
23988
- typeof s() == "string" && s().length > 0 && e(at);
24127
+ }, ft = root_3$27();
24128
+ let pt, mt;
24129
+ var ht = child(ft), gt = (e) => {
24130
+ var t = root$42();
24131
+ Img(child(t), {
24132
+ inlineSvg: !0,
24133
+ get src() {
24134
+ return i();
24135
+ },
24136
+ alt: "",
24137
+ fallback: ""
24138
+ }), reset(t), append(e, t);
24139
+ };
24140
+ if_block(ht, (e) => {
24141
+ typeof i() == "string" && i().length > 0 && e(gt);
24142
+ });
24143
+ var _t = sibling(ht, 2), vt = child(_t), yt = sibling(vt), bt = (e) => {
24144
+ var t = root_1$39(), n = child(t, !0);
24145
+ reset(t), template_effect(() => {
24146
+ set_attribute(t, "data-pw", R()), set_attribute(t, "testid", R()), set_text(n, o());
24147
+ }), append(e, t);
24148
+ };
24149
+ if_block(yt, (e) => {
24150
+ typeof o() == "string" && o().length > 0 && e(bt);
24151
+ });
24152
+ var xt = sibling(yt, 2), St = (e) => {
24153
+ var t = comment();
24154
+ snippet(first_child(t), re), append(e, t);
24155
+ };
24156
+ if_block(xt, (e) => {
24157
+ typeof re() == "function" && e(St);
24158
+ }), reset(_t);
24159
+ var Ct = sibling(_t, 2), wt = (e) => {
24160
+ var t = root_2$30();
24161
+ Img(child(t), {
24162
+ inlineSvg: !0,
24163
+ get src() {
24164
+ return s();
24165
+ },
24166
+ alt: "Close",
24167
+ fallback: ""
23989
24168
  }), reset(t), template_effect(() => {
23990
- n = set_class(t, 1, clsx(get(Re)), "svelte-37crwe", n, { "no-page-overlap": !u() }), set_attribute(t, "data-pw", C()), set_attribute(t, "testid", C()), set_attribute(f, "data-pw", k()), set_attribute(f, "testid", k()), set_text(p, `${a() ?? ""} `);
23991
- }), event("outroend", t, it), transition(5, t, () => fly, () => get(be).in), transition(2, t, () => fly, () => get(be).out), append(e, t);
24169
+ set_attribute(t, "data-pw", te()), set_attribute(t, "testid", te());
24170
+ }), delegated("click", t, lt), delegated("keydown", t, (e) => {
24171
+ (e.key === "Enter" || e.key === " ") && (e.preventDefault(), lt());
24172
+ }), append(e, t);
23992
24173
  };
23993
- return if_block(lt, (e) => {
23994
- get(Me) && e(ut);
23995
- }), append(e, ct), pop(ot);
24174
+ return if_block(Ct, (e) => {
24175
+ typeof s() == "string" && s().length > 0 && e(wt);
24176
+ }), reset(ft), template_effect(() => {
24177
+ pt = set_class(ft, 1, clsx(get(Me)), "svelte-37crwe", pt, {
24178
+ "is-visible": get(be),
24179
+ "no-page-overlap": !u()
24180
+ }), set_attribute(ft, "data-direction", get(Re)), set_attribute(ft, "data-pw", C()), set_attribute(ft, "testid", C()), mt = set_style(ft, "", mt, {
24181
+ "--toast-open-duration": get(ot),
24182
+ "--toast-close-duration": get(ct),
24183
+ "--toast-enter-x": get(it).x,
24184
+ "--toast-enter-y": get(it).y
24185
+ }), set_attribute(_t, "data-pw", k()), set_attribute(_t, "testid", k()), set_text(vt, `${a() ?? ""} `);
24186
+ }), event("transitionend", ft, ut), append(e, ft), pop(dt);
23996
24187
  }
23997
24188
  delegate(["click", "keydown"]), create_custom_element(Toast, {
23998
24189
  duration: {},
@@ -34838,7 +35029,7 @@ function dismissOnOutsidePointerDown(e, t) {
34838
35029
  //#region src/lib/PieChart/PieChart.svelte
34839
35030
  var root$31 = /* @__PURE__ */ from_html("<div class=\"chart-empty svelte-1478ug\"><!></div>"), root_1$29 = /* @__PURE__ */ from_html("<button type=\"button\"><span class=\"legend-swatch svelte-1478ug\"></span> <span class=\"legend-label svelte-1478ug\"> </span></button>"), root_2$21 = /* @__PURE__ */ from_html("<div class=\"pie-legend-sync svelte-1478ug\"></div>"), root_3$20 = /* @__PURE__ */ from_svg("<text text-anchor=\"middle\" dominant-baseline=\"middle\"> </text>"), root_4$19 = /* @__PURE__ */ from_svg("<path tabindex=\"0\" role=\"button\"></path><!>", 1), root_5$18 = /* @__PURE__ */ from_svg("<foreignObject><div class=\"pie-center-content svelte-1478ug\" xmlns=\"http://www.w3.org/1999/xhtml\"><!></div></foreignObject>"), root_6$18 = /* @__PURE__ */ from_svg("<g><!><!></g>"), root_7$16 = /* @__PURE__ */ from_html("<div class=\"pie-delta-badge svelte-1478ug\"><!></div>"), root_8$14 = /* @__PURE__ */ from_html("<li class=\"pie-legend-row svelte-1478ug\"><span class=\"pie-legend-swatch svelte-1478ug\"></span> <span class=\"pie-legend-label svelte-1478ug\"> </span> <span class=\"pie-legend-value svelte-1478ug\"><!></span></li>"), root_9$11 = /* @__PURE__ */ from_html("<button> </button>"), root_10$10 = /* @__PURE__ */ from_html("<div class=\"pie-legend-column svelte-1478ug\"><ul class=\"pie-legend-values svelte-1478ug\"></ul> <!></div>"), root_11$8 = /* @__PURE__ */ from_html("<div class=\"sr-only svelte-1478ug\" role=\"status\" aria-live=\"polite\" data-pw=\"pie-status\"> </div> <!> <!> <!> <!> <!>", 1), root_12$7 = /* @__PURE__ */ from_html("<div><!></div>"), $$css$66 = {
34840
35031
  hash: "svelte-1478ug",
34841
- code: ".pie-chart.svelte-1478ug {width:100%;position:relative;}.slice.svelte-1478ug {stroke:var(--piechart-stroke-color, #fff);stroke-width:var(--piechart-stroke-width, 2);transition:transform var(--chart-transition-duration, var(--motion-duration, 0.2s))\n var(--chart-transition-easing, var(--motion-easing, ease)),\n opacity var(--chart-transition-duration, var(--motion-duration, 0.2s))\n var(--chart-transition-easing, var(--motion-easing, ease));transform-origin:0 0;cursor:pointer;}.slice.hovered.svelte-1478ug {transform:scale(var(--piechart-hover-scale, 1.05));opacity:1;}.slice.dimmed.svelte-1478ug {opacity:var(--piechart-dimmed-opacity, 0.3);}.slice.svelte-1478ug:focus-visible {outline:var(--piechart-slice-focus-outline, 2px solid currentColor);outline-offset:var(--piechart-slice-focus-outline-offset, 2px);}.slice-label.svelte-1478ug {fill:var(--piechart-label-color, #333);font-size:var(--piechart-label-font-size, 12px);font-family:var(--chart-font-family, inherit);pointer-events:none;}.slice-label.label-outside.svelte-1478ug {fill:var(--piechart-label-color, #555);}.pie-center-content.svelte-1478ug {width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;}.pie-delta-badge.svelte-1478ug {position:absolute;top:var(--piechart-delta-top, 8px);right:var(--piechart-delta-right, 8px);z-index:2;pointer-events:none;}.chart-empty.svelte-1478ug {padding:var(--chart-empty-padding, 32px 24px);color:var(--chart-empty-color, #9ca3af);text-align:center;}\n /* Standard visually-hidden recipe (matches ChatComposer's .sr-only): present\n for assistive tech, removed from layout and the visual canvas. */.sr-only.svelte-1478ug {position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;border-width:0;}.pie-legend-sync.svelte-1478ug {display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--chart-legend-gap, 16px);font-family:var(--chart-font-family, inherit);padding:8px 0;}.pie-legend-sync-item.svelte-1478ug {display:flex;align-items:center;gap:6px;background:none;border:none;margin:0;padding:var(--piechart-legend-sync-padding, 2px 4px);font:inherit;cursor:var(--cursor, pointer);border-radius:var(--piechart-legend-sync-radius, var(--radius, 4px));}.pie-legend-sync-item.svelte-1478ug .legend-swatch:where(.svelte-1478ug) {display:inline-block;width:var(--chart-legend-swatch-size, 12px);height:var(--chart-legend-swatch-size, 12px);border-radius:var(--chart-swatch-radius, 2px);flex-shrink:0;}.pie-legend-sync-item.svelte-1478ug .legend-label:where(.svelte-1478ug) {font-size:var(--chart-legend-font-size, 12px);color:var(--chart-legend-color, light-dark(#333, #e5e7eb));}.pie-legend-sync-item.legend-sync-active.svelte-1478ug {background:var(\n --piechart-legend-sync-active-background,\n light-dark(rgba(0, 0, 0, 0.06), rgba(255, 255, 255, 0.1))\n );}.pie-legend-sync-item.svelte-1478ug:focus-visible {outline:var(--piechart-legend-sync-focus-outline, 2px solid currentColor);outline-offset:2px;}.pie-legend-values.svelte-1478ug {display:flex;flex-direction:column;gap:var(--piechart-legend-gap, 8px);padding:var(--piechart-legend-padding, 12px 0 0 0);font-family:var(--chart-font-family, inherit);list-style:none;margin:0;}.pie-legend-row.svelte-1478ug {display:flex;align-items:center;gap:var(--piechart-legend-row-gap, 6px);}.pie-legend-swatch.svelte-1478ug {display:inline-block;width:var(--chart-legend-swatch-size, 12px);height:var(--chart-legend-swatch-size, 12px);border-radius:var(--piechart-legend-swatch-radius, var(--radius, 4px));flex-shrink:0;}.pie-legend-label.svelte-1478ug {font-size:var(--chart-legend-font-size, 12px);color:var(--chart-legend-color, #333);min-width:var(--piechart-legend-label-min-width, 120px);}.pie-legend-value.svelte-1478ug {margin-left:auto;font-size:var(--piechart-legend-value-font-size, 12px);color:var(--piechart-legend-value-color, #333);min-width:var(--piechart-legend-value-min-width, 60px);text-align:right;}\n\n /* The column wrapper is present in both placements so the markup does not\n fork; as a plain block it changes nothing about the default below-chart\n rendering. */.pie-legend-column.svelte-1478ug {display:flex;flex-direction:column;}\n\n /* Only the values legend moves beside the chart -- the plain top legend is\n mutually exclusive with it, and the delta badge and tooltip are both\n absolutely positioned, so they stay out of this flex row entirely. */.pie-chart.legend-right.svelte-1478ug {display:flex;flex-direction:row;align-items:center;gap:var(--piechart-legend-column-gap, 16px);}.pie-chart.legend-right.svelte-1478ug .chart-container {\n /* flex-basis 0 rather than auto: the container carries width:100%, which\n as a flex item would otherwise claim the whole row and squeeze the\n legend to nothing. */flex:1 1 0;min-width:0;}.pie-chart.legend-right.svelte-1478ug .pie-legend-column:where(.svelte-1478ug) {flex:0 0 auto;max-width:var(--piechart-legend-column-max-width, 50%);}.pie-chart.legend-right.svelte-1478ug .pie-legend-values:where(.svelte-1478ug) {padding:var(--piechart-legend-column-padding, 0);}.pie-legend-more.svelte-1478ug {align-self:flex-start;margin-top:var(--piechart-legend-more-margin-top, 8px);padding:var(--piechart-legend-more-padding, 2px 4px);border:none;background:none;cursor:var(--cursor, pointer);font-size:var(--piechart-legend-more-font-size, 12px);font-family:inherit;color:var(--piechart-legend-more-color, #2563eb);}.pie-legend-more.svelte-1478ug:hover {text-decoration:underline;}.pie-legend-more.svelte-1478ug:focus-visible {outline:var(--piechart-legend-more-focus-outline, 2px solid currentColor);outline-offset:2px;}"
35032
+ code: ".pie-chart.svelte-1478ug {width:100%;position:relative;}.slice.svelte-1478ug {stroke:var(--piechart-stroke-color, #fff);stroke-width:var(--piechart-stroke-width, 2);transition:transform var(--chart-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--chart-transition-easing, var(--motion-easing, ease)),\n opacity var(--chart-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--chart-transition-easing, var(--motion-easing, ease));transform-origin:0 0;cursor:pointer;}.slice.hovered.svelte-1478ug {transform:scale(var(--piechart-hover-scale, 1.05));opacity:1;}.slice.dimmed.svelte-1478ug {opacity:var(--piechart-dimmed-opacity, 0.3);}.slice.svelte-1478ug:focus-visible {outline:var(--piechart-slice-focus-outline, 2px solid currentColor);outline-offset:var(--piechart-slice-focus-outline-offset, 2px);}.slice-label.svelte-1478ug {fill:var(--piechart-label-color, #333);font-size:var(--piechart-label-font-size, 12px);font-family:var(--chart-font-family, inherit);pointer-events:none;}.slice-label.label-outside.svelte-1478ug {fill:var(--piechart-label-color, #555);}.pie-center-content.svelte-1478ug {width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;}.pie-delta-badge.svelte-1478ug {position:absolute;top:var(--piechart-delta-top, 8px);right:var(--piechart-delta-right, 8px);z-index:2;pointer-events:none;}.chart-empty.svelte-1478ug {padding:var(--chart-empty-padding, 32px 24px);color:var(--chart-empty-color, #9ca3af);text-align:center;}\n /* Standard visually-hidden recipe (matches ChatComposer's .sr-only): present\n for assistive tech, removed from layout and the visual canvas. */.sr-only.svelte-1478ug {position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;border-width:0;}.pie-legend-sync.svelte-1478ug {display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--chart-legend-gap, 16px);font-family:var(--chart-font-family, inherit);padding:8px 0;}.pie-legend-sync-item.svelte-1478ug {display:flex;align-items:center;gap:6px;background:none;border:none;margin:0;padding:var(--piechart-legend-sync-padding, 2px 4px);font:inherit;cursor:var(--cursor, pointer);border-radius:var(--piechart-legend-sync-radius, var(--radius, 4px));}.pie-legend-sync-item.svelte-1478ug .legend-swatch:where(.svelte-1478ug) {display:inline-block;width:var(--chart-legend-swatch-size, 12px);height:var(--chart-legend-swatch-size, 12px);border-radius:var(--chart-swatch-radius, 2px);flex-shrink:0;}.pie-legend-sync-item.svelte-1478ug .legend-label:where(.svelte-1478ug) {font-size:var(--chart-legend-font-size, 12px);color:var(--chart-legend-color, light-dark(#333, #e5e7eb));}.pie-legend-sync-item.legend-sync-active.svelte-1478ug {background:var(\n --piechart-legend-sync-active-background,\n light-dark(rgba(0, 0, 0, 0.06), rgba(255, 255, 255, 0.1))\n );}.pie-legend-sync-item.svelte-1478ug:focus-visible {outline:var(--piechart-legend-sync-focus-outline, 2px solid currentColor);outline-offset:2px;}.pie-legend-values.svelte-1478ug {display:flex;flex-direction:column;gap:var(--piechart-legend-gap, 8px);padding:var(--piechart-legend-padding, 12px 0 0 0);font-family:var(--chart-font-family, inherit);list-style:none;margin:0;}.pie-legend-row.svelte-1478ug {display:flex;align-items:center;gap:var(--piechart-legend-row-gap, 6px);}.pie-legend-swatch.svelte-1478ug {display:inline-block;width:var(--chart-legend-swatch-size, 12px);height:var(--chart-legend-swatch-size, 12px);border-radius:var(--piechart-legend-swatch-radius, var(--radius, 4px));flex-shrink:0;}.pie-legend-label.svelte-1478ug {font-size:var(--chart-legend-font-size, 12px);color:var(--chart-legend-color, #333);min-width:var(--piechart-legend-label-min-width, 120px);}.pie-legend-value.svelte-1478ug {margin-left:auto;font-size:var(--piechart-legend-value-font-size, 12px);color:var(--piechart-legend-value-color, #333);min-width:var(--piechart-legend-value-min-width, 60px);text-align:right;}\n\n /* The column wrapper is present in both placements so the markup does not\n fork; as a plain block it changes nothing about the default below-chart\n rendering. */.pie-legend-column.svelte-1478ug {display:flex;flex-direction:column;}\n\n /* Only the values legend moves beside the chart -- the plain top legend is\n mutually exclusive with it, and the delta badge and tooltip are both\n absolutely positioned, so they stay out of this flex row entirely. */.pie-chart.legend-right.svelte-1478ug {display:flex;flex-direction:row;align-items:center;gap:var(--piechart-legend-column-gap, 16px);}.pie-chart.legend-right.svelte-1478ug .chart-container {\n /* flex-basis 0 rather than auto: the container carries width:100%, which\n as a flex item would otherwise claim the whole row and squeeze the\n legend to nothing. */flex:1 1 0;min-width:0;}.pie-chart.legend-right.svelte-1478ug .pie-legend-column:where(.svelte-1478ug) {flex:0 0 auto;max-width:var(--piechart-legend-column-max-width, 50%);}.pie-chart.legend-right.svelte-1478ug .pie-legend-values:where(.svelte-1478ug) {padding:var(--piechart-legend-column-padding, 0);}.pie-legend-more.svelte-1478ug {align-self:flex-start;margin-top:var(--piechart-legend-more-margin-top, 8px);padding:var(--piechart-legend-more-padding, 2px 4px);border:none;background:none;cursor:var(--cursor, pointer);font-size:var(--piechart-legend-more-font-size, 12px);font-family:inherit;color:var(--piechart-legend-more-color, #2563eb);}.pie-legend-more.svelte-1478ug:hover {text-decoration:underline;}.pie-legend-more.svelte-1478ug:focus-visible {outline:var(--piechart-legend-more-focus-outline, 2px solid currentColor);outline-offset:2px;}"
34842
35033
  };
34843
35034
  function PieChart(e, t) {
34844
35035
  let n = props_id();
@@ -35579,7 +35770,7 @@ customElements.define("sui-pie-chart", create_custom_element(PieChart_wc, {
35579
35770
  //#region src/lib/SankeyChart/SankeyChart.svelte
35580
35771
  var root$30 = /* @__PURE__ */ from_html("<div class=\"chart-empty svelte-1rqxby\"><!></div>"), root_1$28 = /* @__PURE__ */ from_svg("<text class=\"sankey-col-label svelte-1rqxby\" text-anchor=\"middle\" dominant-baseline=\"auto\"> <title> </title></text>"), root_2$20 = /* @__PURE__ */ from_svg("<path class=\"sankey-link svelte-1rqxby\" fill=\"none\" tabindex=\"0\" role=\"button\"></path>"), root_3$19 = /* @__PURE__ */ from_svg("<rect tabindex=\"0\" role=\"button\"></rect>"), root_4$18 = /* @__PURE__ */ from_svg("<text dominant-baseline=\"middle\"> <title> </title></text>"), root_5$17 = /* @__PURE__ */ from_svg("<g><rect class=\"sankey-plot-bg svelte-1rqxby\"></rect><!><!><!><!></g>"), root_6$17 = /* @__PURE__ */ from_html("<!> <!>", 1), root_7$15 = /* @__PURE__ */ from_html("<div><!></div>"), $$css$64 = {
35581
35772
  hash: "svelte-1rqxby",
35582
- code: ".sankey-chart.svelte-1rqxby {width:100%;position:relative;}.sankey-plot-bg.svelte-1rqxby {fill:var(--sankey-plot-background, transparent);pointer-events:none;}.sankey-link.svelte-1rqxby {transition:stroke-opacity var(--chart-transition-duration, var(--motion-duration, 0.2s))\n var(--chart-transition-easing, var(--motion-easing, ease));cursor:pointer;}.sankey-link.svelte-1rqxby:focus-visible {outline:var(--sankey-focus-outline, 2px solid currentColor);outline-offset:var(--sankey-focus-outline-offset, 2px);}.sankey-node.svelte-1rqxby {transition:opacity var(--chart-transition-duration, var(--motion-duration, 0.2s))\n var(--chart-transition-easing, var(--motion-easing, ease));cursor:pointer;}.sankey-node.svelte-1rqxby:focus-visible {outline:var(--sankey-focus-outline, 2px solid currentColor);outline-offset:var(--sankey-focus-outline-offset, 2px);}.sankey-node.node-dimmed.svelte-1rqxby {opacity:var(--sankey-dimmed-opacity, 0.15);}.sankey-label.svelte-1rqxby {fill:var(--sankey-label-color, #333);font-size:var(--sankey-label-font-size, 12px);font-weight:var(--sankey-label-font-weight, 400);font-family:var(--chart-font-family, inherit);\n /* Highcharts-style text outline: node labels render over link ribbons, so\n a halo in the chart's background colour keeps them legible at any flow\n density. Off (transparent / 0) by default. */paint-order:stroke;stroke:var(--sankey-label-halo-color, transparent);stroke-width:var(--sankey-label-halo-width, 0);stroke-linejoin:round;pointer-events:none;transition:opacity var(--chart-transition-duration, var(--motion-duration, 0.2s))\n var(--chart-transition-easing, var(--motion-easing, ease));}.sankey-col-label.svelte-1rqxby {fill:var(--sankey-col-label-color, #666);font-size:var(--sankey-col-label-font-size, 11px);font-weight:var(--sankey-col-label-font-weight, 400);font-family:var(--chart-font-family, inherit);pointer-events:none;}.sankey-label.node-dimmed.svelte-1rqxby {opacity:var(--sankey-dimmed-opacity, 0.15);}.chart-empty.svelte-1rqxby {padding:var(--chart-empty-padding, 32px 24px);color:var(--chart-empty-color, #9ca3af);text-align:center;}"
35773
+ code: ".sankey-chart.svelte-1rqxby {width:100%;position:relative;}.sankey-plot-bg.svelte-1rqxby {fill:var(--sankey-plot-background, transparent);pointer-events:none;}.sankey-link.svelte-1rqxby {transition:stroke-opacity\n var(--chart-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--chart-transition-easing, var(--motion-easing, ease));cursor:pointer;}.sankey-link.svelte-1rqxby:focus-visible {outline:var(--sankey-focus-outline, 2px solid currentColor);outline-offset:var(--sankey-focus-outline-offset, 2px);}.sankey-node.svelte-1rqxby {transition:opacity\n var(--chart-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--chart-transition-easing, var(--motion-easing, ease));cursor:pointer;}.sankey-node.svelte-1rqxby:focus-visible {outline:var(--sankey-focus-outline, 2px solid currentColor);outline-offset:var(--sankey-focus-outline-offset, 2px);}.sankey-node.node-dimmed.svelte-1rqxby {opacity:var(--sankey-dimmed-opacity, 0.15);}.sankey-label.svelte-1rqxby {fill:var(--sankey-label-color, #333);font-size:var(--sankey-label-font-size, 12px);font-weight:var(--sankey-label-font-weight, 400);font-family:var(--chart-font-family, inherit);\n /* Highcharts-style text outline: node labels render over link ribbons, so\n a halo in the chart's background colour keeps them legible at any flow\n density. Off (transparent / 0) by default. */paint-order:stroke;stroke:var(--sankey-label-halo-color, transparent);stroke-width:var(--sankey-label-halo-width, 0);stroke-linejoin:round;pointer-events:none;transition:opacity\n var(--chart-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--chart-transition-easing, var(--motion-easing, ease));}.sankey-col-label.svelte-1rqxby {fill:var(--sankey-col-label-color, #666);font-size:var(--sankey-col-label-font-size, 11px);font-weight:var(--sankey-col-label-font-weight, 400);font-family:var(--chart-font-family, inherit);pointer-events:none;}.sankey-label.node-dimmed.svelte-1rqxby {opacity:var(--sankey-dimmed-opacity, 0.15);}.chart-empty.svelte-1rqxby {padding:var(--chart-empty-padding, 32px 24px);color:var(--chart-empty-color, #9ca3af);text-align:center;}"
35583
35774
  };
35584
35775
  function SankeyChart(e, t) {
35585
35776
  push(t, !0), append_styles$1(e, $$css$64);
@@ -36532,7 +36723,7 @@ function formatSeriesAggregate(e, t, n) {
36532
36723
  //#region src/lib/AreaChart/AreaChart.svelte
36533
36724
  var root$28 = /* @__PURE__ */ from_html("<div class=\"chart-empty svelte-63gwba\"><!></div>"), root_1$26 = /* @__PURE__ */ from_svg("<linearGradient x1=\"0\" y1=\"0\" x2=\"0\" gradientUnits=\"userSpaceOnUse\"><stop offset=\"0%\"></stop><stop offset=\"100%\"></stop></linearGradient>"), root_2$18 = /* @__PURE__ */ from_svg("<defs></defs>"), root_3$17 = /* @__PURE__ */ from_svg("<g><!></g>"), root_4$16 = /* @__PURE__ */ from_svg("<path fill=\"none\"></path>"), root_5$15 = /* @__PURE__ */ from_svg("<circle></circle>"), root_6$15 = /* @__PURE__ */ from_svg("<circle class=\"dot svelte-63gwba\"></circle>"), root_7$13 = /* @__PURE__ */ from_svg("<text class=\"point-value svelte-63gwba\" text-anchor=\"middle\"> </text>"), root_8$12 = /* @__PURE__ */ from_svg("<circle class=\"focus-target svelte-63gwba\" tabindex=\"0\" role=\"button\"></circle>"), root_9$10 = /* @__PURE__ */ from_svg("<path></path><!><!><!><!><!>", 1), root_10$9 = /* @__PURE__ */ from_svg("<line class=\"hover-line svelte-63gwba\"></line>"), root_11$7 = /* @__PURE__ */ from_svg("<!><g><!><!><!><!><rect class=\"hover-overlay svelte-63gwba\" fill=\"transparent\"></rect></g>", 1), root_12$6 = /* @__PURE__ */ from_html("<!> <div class=\"chart-plot svelte-63gwba\"><!> <!></div>", 1), root_13$5 = /* @__PURE__ */ from_html("<div><!></div>"), $$css$61 = {
36534
36725
  hash: "svelte-63gwba",
36535
- code: ".area-chart.svelte-63gwba {width:100%;position:relative;}.chart-plot.svelte-63gwba {position:relative;}.area-fill.svelte-63gwba {transition:fill-opacity var(--chart-transition-duration, var(--motion-duration, 0.2s))\n var(--chart-transition-easing, var(--motion-easing, ease)),\n opacity var(--chart-transition-duration, var(--motion-duration, 0.2s))\n var(--chart-transition-easing, var(--motion-easing, ease));pointer-events:none;}.area-fill.dimmed.svelte-63gwba {opacity:var(--areachart-dimmed-opacity, 0.1);}.area-line.svelte-63gwba {transition:opacity var(--chart-transition-duration, var(--motion-duration, 0.2s))\n var(--chart-transition-easing, var(--motion-easing, ease));stroke-linecap:round;stroke-linejoin:round;pointer-events:none;}.area-line.dimmed.svelte-63gwba {opacity:var(--areachart-dimmed-opacity, 0.1);}.single-point.svelte-63gwba {pointer-events:none;}.single-point.dimmed.svelte-63gwba {opacity:var(--areachart-dimmed-opacity, 0.1);}.dot.svelte-63gwba {transition:r var(--chart-transition-duration, var(--motion-duration, 0.2s))\n var(--chart-transition-easing, var(--motion-easing, ease)),\n opacity var(--chart-transition-duration, var(--motion-duration, 0.2s))\n var(--chart-transition-easing, var(--motion-easing, ease));stroke:var(--chart-dot-stroke, light-dark(#fff, #111827));stroke-width:2;pointer-events:none;}.focus-target.svelte-63gwba {fill:transparent;pointer-events:none;}.focus-target.svelte-63gwba:focus-visible {outline:2px solid var(--chart-axis-label-color, light-dark(#333, #e5e7eb));outline-offset:1px;}.point-value.svelte-63gwba {fill:var(--areachart-value-color, light-dark(#333, #e5e7eb));font-size:var(--areachart-value-font-size, 11px);font-family:var(--chart-font-family, inherit);pointer-events:none;}.hover-line.svelte-63gwba {stroke:var(\n --areachart-hover-line-color,\n var(--linechart-hover-line-color, light-dark(#ccc, #4b5563))\n );stroke-width:1;stroke-dasharray:var(--areachart-hover-line-dash, var(--linechart-hover-line-dash, 4 4));pointer-events:none;}.hover-overlay.svelte-63gwba {cursor:crosshair;}.chart-empty.svelte-63gwba {padding:var(--chart-empty-padding, 32px 24px);color:var(--chart-empty-color, light-dark(#9ca3af, #6b7280));text-align:center;}"
36726
+ code: ".area-chart.svelte-63gwba {width:100%;position:relative;}.chart-plot.svelte-63gwba {position:relative;}.area-fill.svelte-63gwba {transition:fill-opacity\n var(--chart-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--chart-transition-easing, var(--motion-easing, ease)),\n opacity var(--chart-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--chart-transition-easing, var(--motion-easing, ease));pointer-events:none;}.area-fill.dimmed.svelte-63gwba {opacity:var(--areachart-dimmed-opacity, 0.1);}.area-line.svelte-63gwba {transition:opacity\n var(--chart-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--chart-transition-easing, var(--motion-easing, ease));stroke-linecap:round;stroke-linejoin:round;pointer-events:none;}.area-line.dimmed.svelte-63gwba {opacity:var(--areachart-dimmed-opacity, 0.1);}.single-point.svelte-63gwba {pointer-events:none;}.single-point.dimmed.svelte-63gwba {opacity:var(--areachart-dimmed-opacity, 0.1);}.dot.svelte-63gwba {transition:r var(--chart-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--chart-transition-easing, var(--motion-easing, ease)),\n opacity var(--chart-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--chart-transition-easing, var(--motion-easing, ease));stroke:var(--chart-dot-stroke, light-dark(#fff, #111827));stroke-width:2;pointer-events:none;}.focus-target.svelte-63gwba {fill:transparent;pointer-events:none;}.focus-target.svelte-63gwba:focus-visible {outline:2px solid var(--chart-axis-label-color, light-dark(#333, #e5e7eb));outline-offset:1px;}.point-value.svelte-63gwba {fill:var(--areachart-value-color, light-dark(#333, #e5e7eb));font-size:var(--areachart-value-font-size, 11px);font-family:var(--chart-font-family, inherit);pointer-events:none;}.hover-line.svelte-63gwba {stroke:var(\n --areachart-hover-line-color,\n var(--linechart-hover-line-color, light-dark(#ccc, #4b5563))\n );stroke-width:1;stroke-dasharray:var(--areachart-hover-line-dash, var(--linechart-hover-line-dash, 4 4));pointer-events:none;}.hover-overlay.svelte-63gwba {cursor:crosshair;}.chart-empty.svelte-63gwba {padding:var(--chart-empty-padding, 32px 24px);color:var(--chart-empty-color, light-dark(#9ca3af, #6b7280));text-align:center;}"
36536
36727
  };
36537
36728
  function AreaChart(e, t) {
36538
36729
  push(t, !0), append_styles$1(e, $$css$61);
@@ -37381,7 +37572,7 @@ customElements.define("sui-area-chart", create_custom_element(AreaChart_wc, {
37381
37572
  //#region src/lib/BarChart/BarChart.svelte
37382
37573
  var root$27 = /* @__PURE__ */ from_html("<div class=\"chart-empty svelte-1mivkru\"><!></div>"), root_1$25 = /* @__PURE__ */ from_svg("<line x1=\"0\" y2=\"0\"></line>"), root_2$17 = /* @__PURE__ */ from_svg("<line x1=\"0\" y2=\"0\"></line><line x1=\"0\" y1=\"0\"></line>", 1), root_3$16 = /* @__PURE__ */ from_svg("<circle></circle>"), root_4$15 = /* @__PURE__ */ from_svg("<pattern patternUnits=\"userSpaceOnUse\"><rect></rect><!></pattern>"), root_5$14 = /* @__PURE__ */ from_svg("<stop></stop>"), root_6$14 = /* @__PURE__ */ from_svg("<linearGradient gradientUnits=\"userSpaceOnUse\"></linearGradient>"), root_7$12 = /* @__PURE__ */ from_svg("<defs></defs>"), root_8$11 = /* @__PURE__ */ from_svg("<g><!></g>"), root_9$9 = /* @__PURE__ */ from_svg("<path tabindex=\"0\" role=\"button\"></path>"), root_10$8 = /* @__PURE__ */ from_svg("<text> </text>"), root_11$6 = /* @__PURE__ */ from_svg("<!><!>", 1), root_12$5 = /* @__PURE__ */ from_svg("<!><g><!><!><!><!></g>", 1), root_13$4 = /* @__PURE__ */ from_html("<!> <div class=\"chart-plot svelte-1mivkru\"><div class=\"chart-scroll-area svelte-1mivkru\" role=\"region\"><div><!></div></div> <!></div>", 1), root_14$4 = /* @__PURE__ */ from_html("<div><!></div>"), $$css$59 = {
37383
37574
  hash: "svelte-1mivkru",
37384
- code: ".bar-chart.svelte-1mivkru {width:100%;position:relative;}.chart-scroll-area.svelte-1mivkru {width:100%;}.chart-plot.svelte-1mivkru {position:relative;}.bar.svelte-1mivkru {transition:opacity var(--chart-transition-duration, var(--motion-duration, 0.2s))\n var(--chart-transition-easing, var(--motion-easing, ease));cursor:pointer;}.bar.hovered.svelte-1mivkru {opacity:var(--barchart-bar-hover-opacity, 1);}.bar.highlighted.svelte-1mivkru {opacity:var(--barchart-bar-highlighted-opacity, 1);}.bar.dimmed.svelte-1mivkru {opacity:var(--barchart-bar-dimmed-opacity, 0.3);}.bar.svelte-1mivkru:focus-visible {outline:2px solid var(--chart-axis-label-color, light-dark(#333, #e5e7eb));outline-offset:1px;}.bar-value.svelte-1mivkru {fill:var(--barchart-value-color, light-dark(#333, #e5e7eb));font-size:var(--barchart-value-font-size, 14px);font-weight:var(--barchart-value-font-weight, 600);font-family:var(--chart-font-family, inherit);pointer-events:none;}.bar-value-inside.svelte-1mivkru {paint-order:stroke;stroke-width:2px;stroke-opacity:0.35;stroke-linejoin:round;}.chart-empty.svelte-1mivkru {padding:var(--chart-empty-padding, 32px 24px);color:var(--chart-empty-color, light-dark(#9ca3af, #6b7280));text-align:center;}"
37575
+ code: ".bar-chart.svelte-1mivkru {width:100%;position:relative;}.chart-scroll-area.svelte-1mivkru {width:100%;}.chart-plot.svelte-1mivkru {position:relative;}.bar.svelte-1mivkru {transition:opacity\n var(--chart-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--chart-transition-easing, var(--motion-easing, ease));cursor:pointer;}.bar.hovered.svelte-1mivkru {opacity:var(--barchart-bar-hover-opacity, 1);}.bar.highlighted.svelte-1mivkru {opacity:var(--barchart-bar-highlighted-opacity, 1);}.bar.dimmed.svelte-1mivkru {opacity:var(--barchart-bar-dimmed-opacity, 0.3);}.bar.svelte-1mivkru:focus-visible {outline:2px solid var(--chart-axis-label-color, light-dark(#333, #e5e7eb));outline-offset:1px;}.bar-value.svelte-1mivkru {fill:var(--barchart-value-color, light-dark(#333, #e5e7eb));font-size:var(--barchart-value-font-size, 14px);font-weight:var(--barchart-value-font-weight, 600);font-family:var(--chart-font-family, inherit);pointer-events:none;}.bar-value-inside.svelte-1mivkru {paint-order:stroke;stroke-width:2px;stroke-opacity:0.35;stroke-linejoin:round;}.chart-empty.svelte-1mivkru {padding:var(--chart-empty-padding, 32px 24px);color:var(--chart-empty-color, light-dark(#9ca3af, #6b7280));text-align:center;}"
37385
37576
  };
37386
37577
  function BarChart(e, t) {
37387
37578
  push(t, !0), append_styles$1(e, $$css$59);
@@ -38514,7 +38705,7 @@ customElements.define("sui-bar-chart", create_custom_element(BarChart_wc, {
38514
38705
  //#region src/lib/DualAxisBarChart/DualAxisBarChart.svelte
38515
38706
  var root$26 = /* @__PURE__ */ from_svg("<text class=\"axis-title axis-title-left svelte-1rqgr0s\" text-anchor=\"middle\"> </text>"), root_1$24 = /* @__PURE__ */ from_svg("<text class=\"axis-title axis-title-right svelte-1rqgr0s\" text-anchor=\"middle\"> </text>"), root_2$16 = /* @__PURE__ */ from_svg("<path role=\"img\"></path>"), root_3$15 = /* @__PURE__ */ from_svg("<path class=\"line-series svelte-1rqgr0s\" fill=\"none\"></path>"), root_4$14 = /* @__PURE__ */ from_svg("<circle style=\"stroke: var(--dual-axis-dot-stroke, light-dark(#fff, #111827)); stroke-width: var(--dual-axis-dot-stroke-width, 1.5);\" role=\"img\"></circle>"), root_5$13 = /* @__PURE__ */ from_svg("<!><!>", 1), root_6$13 = /* @__PURE__ */ from_svg("<rect class=\"hover-target svelte-1rqgr0s\" fill=\"transparent\" tabindex=\"0\" role=\"button\"></rect>"), root_7$11 = /* @__PURE__ */ from_svg("<line class=\"hover-guideline svelte-1rqgr0s\"></line>"), root_8$10 = /* @__PURE__ */ from_svg("<g><!><g><!></g><g><!></g><!><!><!><!><!><!></g><defs><marker></marker></defs>", 1), root_9$8 = /* @__PURE__ */ from_html("<!> <div class=\"chart-plot svelte-1rqgr0s\"><!> <!></div>", 1), root_10$7 = /* @__PURE__ */ from_html("<div class=\"chart-empty svelte-1rqgr0s\">No data available.</div>"), root_11$5 = /* @__PURE__ */ from_html("<div><!></div>"), $$css$57 = {
38516
38707
  hash: "svelte-1rqgr0s",
38517
- code: ".dual-axis-bar-chart.svelte-1rqgr0s {width:100%;position:relative;}.chart-plot.svelte-1rqgr0s {position:relative;}.bar-shape.svelte-1rqgr0s {transition:opacity var(--chart-transition-duration, var(--motion-duration, 0.2s))\n var(--chart-transition-easing, var(--motion-easing, ease));cursor:pointer;}.bar-hovered.svelte-1rqgr0s {opacity:var(--dual-axis-bar-hover-opacity, 1);}.bar-dimmed.svelte-1rqgr0s {opacity:var(--dual-axis-bar-dimmed-opacity, 0.3);}.line-series.svelte-1rqgr0s {stroke-width:var(--dual-axis-line-stroke-width, 2);stroke-linecap:round;stroke-linejoin:round;pointer-events:none;}.line-dot.svelte-1rqgr0s {transition:r var(--chart-transition-duration, var(--motion-duration, 0.2s))\n var(--chart-transition-easing, var(--motion-easing, ease)),\n opacity var(--chart-transition-duration, var(--motion-duration, 0.2s))\n var(--chart-transition-easing, var(--motion-easing, ease));cursor:pointer;}.dot-dimmed.svelte-1rqgr0s {opacity:var(--dual-axis-bar-dimmed-opacity, 0.3);}.hover-target.svelte-1rqgr0s {cursor:pointer;}.hover-target.svelte-1rqgr0s:focus-visible {outline:2px solid var(--chart-axis-label-color, light-dark(#333, #e5e7eb));outline-offset:-2px;}.hover-guideline.svelte-1rqgr0s {stroke:var(--dual-axis-guideline-color, light-dark(#aaa, #4b5563));stroke-width:var(--dual-axis-guideline-width, 1);stroke-dasharray:var(--dual-axis-guideline-dash, 4 3);pointer-events:none;opacity:0.6;}.axis-title.svelte-1rqgr0s {fill:var(--chart-axis-label-color, light-dark(#333, #e5e7eb));font-size:var(--chart-axis-label-font-size, 11px);font-family:var(--chart-font-family, inherit);font-weight:500;}.chart-empty.svelte-1rqgr0s {padding:var(--chart-empty-padding, 32px 24px);color:var(--chart-empty-color, light-dark(#9ca3af, #6b7280));text-align:center;}"
38708
+ code: ".dual-axis-bar-chart.svelte-1rqgr0s {width:100%;position:relative;}.chart-plot.svelte-1rqgr0s {position:relative;}.bar-shape.svelte-1rqgr0s {transition:opacity\n var(--chart-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--chart-transition-easing, var(--motion-easing, ease));cursor:pointer;}.bar-hovered.svelte-1rqgr0s {opacity:var(--dual-axis-bar-hover-opacity, 1);}.bar-dimmed.svelte-1rqgr0s {opacity:var(--dual-axis-bar-dimmed-opacity, 0.3);}.line-series.svelte-1rqgr0s {stroke-width:var(--dual-axis-line-stroke-width, 2);stroke-linecap:round;stroke-linejoin:round;pointer-events:none;}.line-dot.svelte-1rqgr0s {transition:r var(--chart-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--chart-transition-easing, var(--motion-easing, ease)),\n opacity var(--chart-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--chart-transition-easing, var(--motion-easing, ease));cursor:pointer;}.dot-dimmed.svelte-1rqgr0s {opacity:var(--dual-axis-bar-dimmed-opacity, 0.3);}.hover-target.svelte-1rqgr0s {cursor:pointer;}.hover-target.svelte-1rqgr0s:focus-visible {outline:2px solid var(--chart-axis-label-color, light-dark(#333, #e5e7eb));outline-offset:-2px;}.hover-guideline.svelte-1rqgr0s {stroke:var(--dual-axis-guideline-color, light-dark(#aaa, #4b5563));stroke-width:var(--dual-axis-guideline-width, 1);stroke-dasharray:var(--dual-axis-guideline-dash, 4 3);pointer-events:none;opacity:0.6;}.axis-title.svelte-1rqgr0s {fill:var(--chart-axis-label-color, light-dark(#333, #e5e7eb));font-size:var(--chart-axis-label-font-size, 11px);font-family:var(--chart-font-family, inherit);font-weight:500;}.chart-empty.svelte-1rqgr0s {padding:var(--chart-empty-padding, 32px 24px);color:var(--chart-empty-color, light-dark(#9ca3af, #6b7280));text-align:center;}"
38518
38709
  };
38519
38710
  function DualAxisBarChart(e, t) {
38520
38711
  push(t, !0), append_styles$1(e, $$css$57);
@@ -39142,7 +39333,7 @@ customElements.define("sui-dual-axis-bar-chart", create_custom_element(DualAxisB
39142
39333
  //#region src/lib/FunnelChart/FunnelChart.svelte
39143
39334
  var root$25 = /* @__PURE__ */ from_html("<div class=\"chart-empty svelte-1ork53m\"><!></div>"), root_1$23 = /* @__PURE__ */ from_svg("<text class=\"funnel-value-label svelte-1ork53m\" text-anchor=\"middle\" dominant-baseline=\"middle\" pointer-events=\"none\"> </text>"), root_2$15 = /* @__PURE__ */ from_svg("<text class=\"funnel-category-label svelte-1ork53m\" text-anchor=\"middle\" dominant-baseline=\"auto\"> </text><rect tabindex=\"0\" role=\"button\"></rect><!>", 1), root_3$14 = /* @__PURE__ */ from_svg("<polygon class=\"funnel-connector svelte-1ork53m\" pointer-events=\"none\"></polygon>"), root_4$13 = /* @__PURE__ */ from_svg("<g><!><!></g>"), root_5$12 = /* @__PURE__ */ from_html("<div class=\"chart-plot svelte-1ork53m\"><!> <!></div>"), root_6$12 = /* @__PURE__ */ from_html("<div><!></div>"), $$css$55 = {
39144
39335
  hash: "svelte-1ork53m",
39145
- code: ".funnel-chart.svelte-1ork53m {width:100%;}.chart-plot.svelte-1ork53m {position:relative;}.funnel-category-label.svelte-1ork53m {fill:var(--funnel-chart-label-color, light-dark(#666, #9ca3af));font-size:var(--funnel-chart-label-font-size, 11px);font-family:var(--chart-font-family, inherit);pointer-events:none;}.funnel-bar.svelte-1ork53m {transition:opacity var(--chart-transition-duration, var(--motion-duration, 0.2s))\n var(--chart-transition-easing, var(--motion-easing, ease)),\n y var(--chart-transition-duration, var(--motion-duration, 0.2s))\n var(--chart-transition-easing, var(--motion-easing, ease)),\n height var(--chart-transition-duration, var(--motion-duration, 0.2s))\n var(--chart-transition-easing, var(--motion-easing, ease));cursor:pointer;}.funnel-bar-hovered.svelte-1ork53m {opacity:var(--funnel-chart-bar-hover-opacity, 1);}.funnel-bar-dimmed.svelte-1ork53m {opacity:var(--funnel-chart-bar-dimmed-opacity, 0.35);}.funnel-bar.svelte-1ork53m:focus-visible {outline:2px solid var(--chart-axis-label-color, light-dark(#333, #e5e7eb));outline-offset:1px;}.funnel-value-label.svelte-1ork53m {font-size:var(--funnel-chart-value-font-size, 11px);font-family:var(--chart-font-family, inherit);paint-order:stroke;stroke-width:2px;stroke-opacity:0.35;stroke-linejoin:round;}.funnel-connector.svelte-1ork53m {transition:d var(--chart-transition-duration, var(--motion-duration, 0.2s))\n var(--chart-transition-easing, var(--motion-easing, ease));}.chart-empty.svelte-1ork53m {padding:var(--chart-empty-padding, 32px 24px);color:var(--chart-empty-color, light-dark(#6b7280, #9ca3af));text-align:center;}"
39336
+ code: ".funnel-chart.svelte-1ork53m {width:100%;}.chart-plot.svelte-1ork53m {position:relative;}.funnel-category-label.svelte-1ork53m {fill:var(--funnel-chart-label-color, light-dark(#666, #9ca3af));font-size:var(--funnel-chart-label-font-size, 11px);font-family:var(--chart-font-family, inherit);pointer-events:none;}.funnel-bar.svelte-1ork53m {transition:opacity var(--chart-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--chart-transition-easing, var(--motion-easing, ease)),\n y var(--chart-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--chart-transition-easing, var(--motion-easing, ease)),\n height var(--chart-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--chart-transition-easing, var(--motion-easing, ease));cursor:pointer;}.funnel-bar-hovered.svelte-1ork53m {opacity:var(--funnel-chart-bar-hover-opacity, 1);}.funnel-bar-dimmed.svelte-1ork53m {opacity:var(--funnel-chart-bar-dimmed-opacity, 0.35);}.funnel-bar.svelte-1ork53m:focus-visible {outline:2px solid var(--chart-axis-label-color, light-dark(#333, #e5e7eb));outline-offset:1px;}.funnel-value-label.svelte-1ork53m {font-size:var(--funnel-chart-value-font-size, 11px);font-family:var(--chart-font-family, inherit);paint-order:stroke;stroke-width:2px;stroke-opacity:0.35;stroke-linejoin:round;}.funnel-connector.svelte-1ork53m {transition:d\n var(--chart-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--chart-transition-easing, var(--motion-easing, ease));}.chart-empty.svelte-1ork53m {padding:var(--chart-empty-padding, 32px 24px);color:var(--chart-empty-color, light-dark(#6b7280, #9ca3af));text-align:center;}"
39146
39337
  };
39147
39338
  function FunnelChart(e, t) {
39148
39339
  push(t, !0), append_styles$1(e, $$css$55);
@@ -39552,7 +39743,7 @@ customElements.define("sui-funnel-chart", create_custom_element(FunnelChart_wc,
39552
39743
  //#region src/lib/LineChart/LineChart.svelte
39553
39744
  var root$24 = /* @__PURE__ */ from_html("<div class=\"chart-empty svelte-1iyxwjy\"><!></div>"), root_1$22 = /* @__PURE__ */ from_svg("<linearGradient x1=\"0\" y1=\"0\" x2=\"0\" gradientUnits=\"userSpaceOnUse\"><stop offset=\"0%\"></stop><stop offset=\"100%\"></stop></linearGradient>"), root_2$14 = /* @__PURE__ */ from_svg("<!><!>", 1), root_3$13 = /* @__PURE__ */ from_svg("<defs></defs>"), root_4$12 = /* @__PURE__ */ from_svg("<g><!></g>"), root_5$11 = /* @__PURE__ */ from_svg("<circle class=\"dot-halo svelte-1iyxwjy\"></circle>"), root_6$11 = /* @__PURE__ */ from_svg("<path></path>"), root_7$10 = /* @__PURE__ */ from_svg("<text class=\"point-value svelte-1iyxwjy\" text-anchor=\"middle\"> </text>"), root_8$9 = /* @__PURE__ */ from_svg("<!><path fill=\"none\"></path><!>", 1), root_9$7 = /* @__PURE__ */ from_svg("<circle></circle>"), root_10$6 = /* @__PURE__ */ from_svg("<circle class=\"focus-target svelte-1iyxwjy\" tabindex=\"0\" role=\"button\"></circle>"), root_11$4 = /* @__PURE__ */ from_svg("<line class=\"hover-line svelte-1iyxwjy\"></line>"), root_12$4 = /* @__PURE__ */ from_svg("<!><g><!><!><!><!><!><!><!><rect class=\"hover-overlay svelte-1iyxwjy\" fill=\"transparent\" data-pw=\"hover-overlay\" testID=\"hover-overlay\"></rect></g>", 1), root_13$3 = /* @__PURE__ */ from_html("<div class=\"sr-only svelte-1iyxwjy\" role=\"status\" aria-live=\"polite\" data-pw=\"line-status\"> </div> <!> <div class=\"chart-plot svelte-1iyxwjy\"><!> <!></div>", 1), root_14$3 = /* @__PURE__ */ from_html("<div><!></div>"), $$css$53 = {
39554
39745
  hash: "svelte-1iyxwjy",
39555
- code: ".line-chart.svelte-1iyxwjy {width:100%;position:relative;}.chart-plot.svelte-1iyxwjy {position:relative;}.line-area-fill.svelte-1iyxwjy {transition:fill-opacity var(--chart-transition-duration, var(--motion-duration, 0.2s))\n var(--chart-transition-easing, var(--motion-easing, ease)),\n opacity var(--chart-transition-duration, var(--motion-duration, 0.2s))\n var(--chart-transition-easing, var(--motion-easing, ease));pointer-events:none;}.line-area-fill.dimmed.svelte-1iyxwjy {opacity:var(--linechart-dimmed-opacity, 0.2);}.line-path.svelte-1iyxwjy {transition:opacity var(--chart-transition-duration, var(--motion-duration, 0.2s))\n var(--chart-transition-easing, var(--motion-easing, ease));stroke-linecap:round;stroke-linejoin:round;pointer-events:none;}.line-path.dimmed.svelte-1iyxwjy {opacity:var(--linechart-dimmed-opacity, 0.2);}.single-point.svelte-1iyxwjy {pointer-events:none;}.single-point.dimmed.svelte-1iyxwjy {opacity:var(--linechart-dimmed-opacity, 0.2);}.dot.svelte-1iyxwjy {transition:r var(--chart-transition-duration, var(--motion-duration, 0.2s))\n var(--chart-transition-easing, var(--motion-easing, ease)),\n opacity var(--chart-transition-duration, var(--motion-duration, 0.2s))\n var(--chart-transition-easing, var(--motion-easing, ease));stroke:var(--chart-dot-stroke, light-dark(#fff, #111827));stroke-width:2;pointer-events:none;}.dot.dimmed.svelte-1iyxwjy {opacity:var(--linechart-dimmed-opacity, 0.2);}.dot.highlighted.svelte-1iyxwjy {stroke:var(--linechart-highlight-ring-color, light-dark(#fff, #111827));stroke-width:var(--linechart-highlight-ring-width, 2.5);}.dot-halo.svelte-1iyxwjy {opacity:0.25;pointer-events:none;}.focus-target.svelte-1iyxwjy {fill:transparent;pointer-events:none;}.focus-target.svelte-1iyxwjy:focus-visible {outline:2px solid var(--chart-axis-label-color, light-dark(#333, #e5e7eb));outline-offset:1px;}\n /* Standard visually-hidden recipe (matches PieChart's own .sr-only): present\n for assistive tech, removed from layout and the visual canvas. */.sr-only.svelte-1iyxwjy {position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;border-width:0;}.point-value.svelte-1iyxwjy {fill:var(--linechart-value-color, light-dark(#333, #e5e7eb));font-size:var(--linechart-value-font-size, 11px);font-family:var(--chart-font-family, inherit);pointer-events:none;}.hover-line.svelte-1iyxwjy {stroke:var(--linechart-hover-line-color, light-dark(#ccc, #4b5563));stroke-width:1;stroke-dasharray:var(--linechart-hover-line-dash, 4 4);pointer-events:none;}.hover-overlay.svelte-1iyxwjy {cursor:crosshair;}.chart-empty.svelte-1iyxwjy {padding:var(--chart-empty-padding, 32px 24px);color:var(--chart-empty-color, light-dark(#9ca3af, #6b7280));text-align:center;}"
39746
+ code: ".line-chart.svelte-1iyxwjy {width:100%;position:relative;}.chart-plot.svelte-1iyxwjy {position:relative;}.line-area-fill.svelte-1iyxwjy {transition:fill-opacity\n var(--chart-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--chart-transition-easing, var(--motion-easing, ease)),\n opacity var(--chart-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--chart-transition-easing, var(--motion-easing, ease));pointer-events:none;}.line-area-fill.dimmed.svelte-1iyxwjy {opacity:var(--linechart-dimmed-opacity, 0.2);}.line-path.svelte-1iyxwjy {transition:opacity\n var(--chart-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--chart-transition-easing, var(--motion-easing, ease));stroke-linecap:round;stroke-linejoin:round;pointer-events:none;}.line-path.dimmed.svelte-1iyxwjy {opacity:var(--linechart-dimmed-opacity, 0.2);}.single-point.svelte-1iyxwjy {pointer-events:none;}.single-point.dimmed.svelte-1iyxwjy {opacity:var(--linechart-dimmed-opacity, 0.2);}.dot.svelte-1iyxwjy {transition:r var(--chart-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--chart-transition-easing, var(--motion-easing, ease)),\n opacity var(--chart-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))\n var(--chart-transition-easing, var(--motion-easing, ease));stroke:var(--chart-dot-stroke, light-dark(#fff, #111827));stroke-width:2;pointer-events:none;}.dot.dimmed.svelte-1iyxwjy {opacity:var(--linechart-dimmed-opacity, 0.2);}.dot.highlighted.svelte-1iyxwjy {stroke:var(--linechart-highlight-ring-color, light-dark(#fff, #111827));stroke-width:var(--linechart-highlight-ring-width, 2.5);}.dot-halo.svelte-1iyxwjy {opacity:0.25;pointer-events:none;}.focus-target.svelte-1iyxwjy {fill:transparent;pointer-events:none;}.focus-target.svelte-1iyxwjy:focus-visible {outline:2px solid var(--chart-axis-label-color, light-dark(#333, #e5e7eb));outline-offset:1px;}\n /* Standard visually-hidden recipe (matches PieChart's own .sr-only): present\n for assistive tech, removed from layout and the visual canvas. */.sr-only.svelte-1iyxwjy {position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;border-width:0;}.point-value.svelte-1iyxwjy {fill:var(--linechart-value-color, light-dark(#333, #e5e7eb));font-size:var(--linechart-value-font-size, 11px);font-family:var(--chart-font-family, inherit);pointer-events:none;}.hover-line.svelte-1iyxwjy {stroke:var(--linechart-hover-line-color, light-dark(#ccc, #4b5563));stroke-width:1;stroke-dasharray:var(--linechart-hover-line-dash, 4 4);pointer-events:none;}.hover-overlay.svelte-1iyxwjy {cursor:crosshair;}.chart-empty.svelte-1iyxwjy {padding:var(--chart-empty-padding, 32px 24px);color:var(--chart-empty-color, light-dark(#9ca3af, #6b7280));text-align:center;}"
39556
39747
  };
39557
39748
  function LineChart(e, t) {
39558
39749
  let n = props_id();
@@ -41126,7 +41317,7 @@ customElements.define("sui-draggable", create_custom_element(Draggable_wc, {
41126
41317
  //#region src/lib/assets/play.svg?raw
41127
41318
  var play_default = "<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8 5v14l11-7z\" />\n</svg>\n", pause_default = "<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"6\" y=\"5\" width=\"4\" height=\"14\" rx=\"1\" />\n <rect x=\"14\" y=\"5\" width=\"4\" height=\"14\" rx=\"1\" />\n</svg>\n", volume_default = "<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M4 9v6h4l5 5V4L8 9H4z\" fill=\"currentColor\" stroke=\"none\" />\n <path d=\"M16 8.5a4 4 0 0 1 0 7\" />\n <path d=\"M18.5 6a7 7 0 0 1 0 12\" />\n</svg>\n", mute_default = "<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M4 9v6h4l5 5V4L8 9H4z\" fill=\"currentColor\" stroke=\"none\" />\n <line x1=\"16\" y1=\"9\" x2=\"21\" y2=\"14\" />\n <line x1=\"21\" y1=\"9\" x2=\"16\" y2=\"14\" />\n</svg>\n", fullscreen_default = "<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M4 9V5.5A1.5 1.5 0 0 1 5.5 4H9\" />\n <path d=\"M15 4h3.5A1.5 1.5 0 0 1 20 5.5V9\" />\n <path d=\"M20 15v3.5a1.5 1.5 0 0 1-1.5 1.5H15\" />\n <path d=\"M9 20H5.5A1.5 1.5 0 0 1 4 18.5V15\" />\n</svg>\n", exit_fullscreen_default = "<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 4v3.5A1.5 1.5 0 0 1 7.5 9H4\" />\n <path d=\"M20 9h-3.5A1.5 1.5 0 0 1 15 7.5V4\" />\n <path d=\"M15 20v-3.5a1.5 1.5 0 0 1 1.5-1.5H20\" />\n <path d=\"M4 15h3.5A1.5 1.5 0 0 1 9 16.5V20\" />\n</svg>\n", root_1$20 = /* @__PURE__ */ from_html("<span class=\"media-image svelte-16jqa96\"><!></span>"), root_2$13 = /* @__PURE__ */ from_html("<track kind=\"captions\"/>"), root_3$12 = /* @__PURE__ */ from_html("<div class=\"seek svelte-16jqa96\"><!></div>"), root_4$11 = /* @__PURE__ */ from_html("<span class=\"time svelte-16jqa96\"> </span>"), root_5$10 = /* @__PURE__ */ from_html("<div class=\"control bottom-control svelte-16jqa96\"><!></div>"), root_6$10 = /* @__PURE__ */ from_html("<div class=\"overlay svelte-16jqa96\"><div class=\"center-controls svelte-16jqa96\"><div class=\"control center-control svelte-16jqa96\"><!></div></div> <div><!> <!> <div class=\"control bottom-control svelte-16jqa96\"><!></div> <!></div></div>"), root_7$9 = /* @__PURE__ */ from_html("<video class=\"media svelte-16jqa96\" playsinline=\"\"><!></video> <!>", 3), root_8$8 = /* @__PURE__ */ from_html("<div><!></div>"), $$css$47 = {
41128
41319
  hash: "svelte-16jqa96",
41129
- code: ".media-player.svelte-16jqa96 {box-sizing:border-box;display:flex;position:relative;height:var(--media-player-height, 400px);width:var(--media-player-width, fit-content);border-radius:var(--media-player-border-radius, 14px);overflow:var(--media-player-overflow, hidden);background:var(--media-player-background, transparent);}.media.svelte-16jqa96 {height:var(--media-player-media-height, 100%);width:var(--media-player-media-width, fit-content);object-fit:var(--media-player-media-object-fit, contain);border-radius:var(--media-player-media-border-radius, inherit);display:block;}video.media.svelte-16jqa96 {cursor:var(--media-player-media-cursor, pointer);}.media-image.svelte-16jqa96 {display:contents;--image-height: var(--media-player-media-height, 100%);--image-width: var(--media-player-media-width, fit-content);--image-object-fit: var(--media-player-media-object-fit, contain);--image-border-radius: var(--media-player-media-border-radius, 0px);--image-padding: 0px;--image-margin: 0px;}.overlay.svelte-16jqa96 {position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;box-sizing:border-box;z-index:var(--media-player-overlay-z-index, 20);border-radius:inherit;background-color:var(--media-player-overlay-color, transparent);transition:var(--media-player-overlay-transition, background-color 0.2s ease);--center-controls-visibility: var(--media-player-center-controls-visibility, hidden);--bottom-controls-visibility: var(--media-player-bottom-controls-visibility, hidden);}\n\n /* :focus-within alongside :hover so the overlay controls (play/pause, mute) are\n reachable for keyboard users too -- :hover alone left them visibility:hidden (and\n so out of the tab order) for anyone not using a mouse. */.overlay.svelte-16jqa96:hover,\n .overlay.svelte-16jqa96:focus-within {background-color:var(--media-player-overlay-hover-color, #0000004d);--center-controls-visibility: visible;--bottom-controls-visibility: visible;}.center-controls.svelte-16jqa96 {display:flex;flex:1;justify-content:center;align-items:center;visibility:var(--center-controls-visibility);}.bottom-controls.svelte-16jqa96 {display:flex;width:100%;height:fit-content;justify-content:var(--media-player-bottom-controls-justify, flex-end);box-sizing:border-box;padding:var(--media-player-bottom-controls-padding, 12px);visibility:var(--bottom-controls-visibility);}\n\n /* With a seek bar, time or fullscreen present the row becomes a transport bar: the\n seek bar takes the free space and the rest sit beside it, centred on each other. */.bottom-controls.transport.svelte-16jqa96 {justify-content:var(--media-player-transport-justify, flex-start);align-items:center;gap:var(--media-player-transport-gap, 12px);}.seek.svelte-16jqa96 {flex:1;min-width:0;--slider-track-color: var(--media-player-seek-track-color, #ffffff59);--slider-fill-color: var(--media-player-seek-fill-color, #ffffff);--slider-thumb-color: var(--media-player-seek-thumb-color, #ffffff);}.time.svelte-16jqa96 {flex-shrink:0;font-family:var(--media-player-time-font-family, inherit);font-size:var(--media-player-time-font-size, 12px);font-variant-numeric:tabular-nums;color:var(--media-player-time-color, #ffffff);white-space:nowrap;}\n\n /* In fullscreen the container is the fullscreen element, so it must fill the screen\n rather than keep the fixed height a page layout gave it. */.media-player.fullscreen.svelte-16jqa96 {height:100%;width:100%;background:var(--media-player-fullscreen-background, #000000);}.media-player.fullscreen.svelte-16jqa96 .media:where(.svelte-16jqa96) {height:100%;width:100%;}.control.svelte-16jqa96 {--button-padding: var(--media-player-control-padding, 0px);--button-border: var(--media-player-control-border, none);--button-border-radius: var(--media-player-control-border-radius, 50%);--button-color: var(--media-player-control-background-color, transparent);--button-text-color: var(--media-player-control-color, #ffffff);--button-content-gap: 0px;--button-hover-color: var(\n --media-player-control-hover-background-color,\n var(--media-player-control-background-color, transparent)\n );--button-hover-text-color: var(\n --media-player-control-hover-color,\n var(--media-player-control-color, #ffffff)\n );}.center-control.svelte-16jqa96 {--button-width: var(--media-player-center-control-size, 64px);--button-height: var(--media-player-center-control-size, 64px);}.bottom-control.svelte-16jqa96 {--button-width: var(--media-player-bottom-control-size, 24px);--button-height: var(--media-player-bottom-control-size, 24px);}.control.svelte-16jqa96 svg,\n .control.svelte-16jqa96 img {height:var(--media-player-control-icon-size, 100%);width:var(--media-player-control-icon-size, 100%);object-fit:contain;}"
41320
+ code: ".media-player.svelte-16jqa96 {box-sizing:border-box;display:flex;position:relative;height:var(--media-player-height, 400px);width:var(--media-player-width, fit-content);border-radius:var(--media-player-border-radius, 14px);overflow:var(--media-player-overflow, hidden);background:var(--media-player-background, transparent);}.media.svelte-16jqa96 {height:var(--media-player-media-height, 100%);width:var(--media-player-media-width, fit-content);object-fit:var(--media-player-media-object-fit, contain);border-radius:var(--media-player-media-border-radius, inherit);display:block;}video.media.svelte-16jqa96 {cursor:var(--media-player-media-cursor, pointer);}.media-image.svelte-16jqa96 {display:contents;--image-height: var(--media-player-media-height, 100%);--image-width: var(--media-player-media-width, fit-content);--image-object-fit: var(--media-player-media-object-fit, contain);--image-border-radius: var(--media-player-media-border-radius, 0px);--image-padding: 0px;--image-margin: 0px;}.overlay.svelte-16jqa96 {position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;box-sizing:border-box;z-index:var(--media-player-overlay-z-index, 20);border-radius:inherit;background-color:var(--media-player-overlay-color, transparent);transition:var(\n --media-player-overlay-transition,\n background-color\n var(\n --media-player-overlay-transition-duration,\n var(--duration-base, var(--motion-duration, 0.2s))\n )\n var(--media-player-overlay-transition-easing, var(--motion-easing, ease))\n );--center-controls-visibility: var(--media-player-center-controls-visibility, hidden);--bottom-controls-visibility: var(--media-player-bottom-controls-visibility, hidden);}\n\n /* :focus-within alongside :hover so the overlay controls (play/pause, mute) are\n reachable for keyboard users too -- :hover alone left them visibility:hidden (and\n so out of the tab order) for anyone not using a mouse. */.overlay.svelte-16jqa96:hover,\n .overlay.svelte-16jqa96:focus-within {background-color:var(--media-player-overlay-hover-color, #0000004d);--center-controls-visibility: visible;--bottom-controls-visibility: visible;}.center-controls.svelte-16jqa96 {display:flex;flex:1;justify-content:center;align-items:center;visibility:var(--center-controls-visibility);}.bottom-controls.svelte-16jqa96 {display:flex;width:100%;height:fit-content;justify-content:var(--media-player-bottom-controls-justify, flex-end);box-sizing:border-box;padding:var(--media-player-bottom-controls-padding, 12px);visibility:var(--bottom-controls-visibility);}\n\n /* With a seek bar, time or fullscreen present the row becomes a transport bar: the\n seek bar takes the free space and the rest sit beside it, centred on each other. */.bottom-controls.transport.svelte-16jqa96 {justify-content:var(--media-player-transport-justify, flex-start);align-items:center;gap:var(--media-player-transport-gap, 12px);}.seek.svelte-16jqa96 {flex:1;min-width:0;--slider-track-color: var(--media-player-seek-track-color, #ffffff59);--slider-fill-color: var(--media-player-seek-fill-color, #ffffff);--slider-thumb-color: var(--media-player-seek-thumb-color, #ffffff);}.time.svelte-16jqa96 {flex-shrink:0;font-family:var(--media-player-time-font-family, inherit);font-size:var(--media-player-time-font-size, 12px);font-variant-numeric:tabular-nums;color:var(--media-player-time-color, #ffffff);white-space:nowrap;}\n\n /* In fullscreen the container is the fullscreen element, so it must fill the screen\n rather than keep the fixed height a page layout gave it. */.media-player.fullscreen.svelte-16jqa96 {height:100%;width:100%;background:var(--media-player-fullscreen-background, #000000);}.media-player.fullscreen.svelte-16jqa96 .media:where(.svelte-16jqa96) {height:100%;width:100%;}.control.svelte-16jqa96 {--button-padding: var(--media-player-control-padding, 0px);--button-border: var(--media-player-control-border, none);--button-border-radius: var(--media-player-control-border-radius, 50%);--button-color: var(--media-player-control-background-color, transparent);--button-text-color: var(--media-player-control-color, #ffffff);--button-content-gap: 0px;--button-hover-color: var(\n --media-player-control-hover-background-color,\n var(--media-player-control-background-color, transparent)\n );--button-hover-text-color: var(\n --media-player-control-hover-color,\n var(--media-player-control-color, #ffffff)\n );}.center-control.svelte-16jqa96 {--button-width: var(--media-player-center-control-size, 64px);--button-height: var(--media-player-center-control-size, 64px);}.bottom-control.svelte-16jqa96 {--button-width: var(--media-player-bottom-control-size, 24px);--button-height: var(--media-player-bottom-control-size, 24px);}.control.svelte-16jqa96 svg,\n .control.svelte-16jqa96 img {height:var(--media-player-control-icon-size, 100%);width:var(--media-player-control-icon-size, 100%);object-fit:contain;}"
41130
41321
  };
41131
41322
  function MediaPlayer(e, t) {
41132
41323
  push(t, !0), append_styles$1(e, $$css$47);
@@ -41795,7 +41986,7 @@ customElements.define("sui-media-player", create_custom_element(MediaPlayer_wc,
41795
41986
  //#region src/lib/assets/add.svg?raw
41796
41987
  var add_default = "<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" xmlns=\"http://www.w3.org/2000/svg\">\n <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\" />\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\" />\n</svg>\n", file_default = "<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M14 3v5h5\" />\n <path d=\"M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8l-5-5z\" />\n</svg>\n", root$21 = /* @__PURE__ */ from_html("<div class=\"label svelte-nabf7u\"> </div>"), root_1$19 = /* @__PURE__ */ from_html("<div class=\"counter svelte-nabf7u\"><!></div>"), root_2$12 = /* @__PURE__ */ from_html("<div class=\"counter svelte-nabf7u\"> </div>"), root_3$11 = /* @__PURE__ */ from_html("<div class=\"header svelte-nabf7u\"><!> <!></div>"), root_4$10 = /* @__PURE__ */ from_html("<div class=\"description svelte-nabf7u\"> </div>"), root_5$9 = /* @__PURE__ */ from_html("<span class=\"thumb svelte-nabf7u\"><!></span>"), root_6$9 = /* @__PURE__ */ from_html("<span class=\"thumb-loading svelte-nabf7u\"><!></span>"), root_7$8 = /* @__PURE__ */ from_html("<div class=\"file-icon svelte-nabf7u\"><!></div>"), root_8$7 = /* @__PURE__ */ from_html("<span class=\"meta-name svelte-nabf7u\"> </span>"), root_9$6 = /* @__PURE__ */ from_html("<span class=\"meta-size svelte-nabf7u\"> </span>"), root_10$5 = /* @__PURE__ */ from_html("<div class=\"meta svelte-nabf7u\"><!> <!></div>"), root_11$3 = /* @__PURE__ */ from_html("<div class=\"remove svelte-nabf7u\"><!></div>"), root_12$3 = /* @__PURE__ */ from_html("<div><!> <!> <!></div>"), root_13$2 = /* @__PURE__ */ from_html("<span class=\"drop-text svelte-nabf7u\"> </span>"), root_14$2 = /* @__PURE__ */ from_html("<span class=\"drop-hint svelte-nabf7u\"> </span>"), root_15$2 = /* @__PURE__ */ from_html("<label><span class=\"drop-icon svelte-nabf7u\"><!></span> <!> <!> <input type=\"file\" class=\"file-input\" hidden=\"\"/></label>"), root_16$1 = /* @__PURE__ */ from_html("<div class=\"error svelte-nabf7u\" role=\"alert\"> </div>"), root_17$1 = /* @__PURE__ */ from_html("<div><!> <!> <div class=\"grid svelte-nabf7u\"><!> <!></div> <!></div>"), $$css$45 = {
41797
41988
  hash: "svelte-nabf7u",
41798
- code: ".media-upload.svelte-nabf7u {box-sizing:border-box;display:flex;flex-direction:column;width:var(--media-upload-width, fit-content);font-family:var(--media-upload-font-family, inherit);color:var(--media-upload-color, inherit);}.media-upload.disabled.svelte-nabf7u {opacity:var(--media-upload-disabled-opacity, 0.55);}.header.svelte-nabf7u {display:flex;align-items:baseline;justify-content:space-between;gap:var(--media-upload-header-gap, 12px);margin:var(--media-upload-label-margin, 0 0 4px 0);}.label.svelte-nabf7u {font-size:var(--media-upload-label-font-size, 14px);font-weight:var(--media-upload-label-font-weight, 600);color:var(--media-upload-label-color, #242833);}.counter.svelte-nabf7u {font-size:var(--media-upload-counter-font-size, 12px);font-weight:var(--media-upload-counter-font-weight, 500);color:var(--media-upload-counter-color, #5a5a5a);font-variant-numeric:tabular-nums;}.description.svelte-nabf7u {font-size:var(--media-upload-description-font-size, 12px);color:var(--media-upload-description-color, #656565);margin:var(--media-upload-description-margin, 0);}.grid.svelte-nabf7u {display:flex;flex-wrap:wrap;align-items:stretch;gap:var(--media-upload-gap, 12px);margin:var(--media-upload-content-margin, 12px 0 0 0);}.card.svelte-nabf7u,\n .drop-tile.svelte-nabf7u {box-sizing:border-box;height:var(--media-upload-item-height, 110px);width:var(--media-upload-item-width, 110px);border-radius:var(--media-upload-item-border-radius, 14px);}.card.svelte-nabf7u {position:relative;overflow:hidden;border:var(--media-upload-item-border, 1px solid #e4e4e7);background-color:var(--media-upload-item-background-color, #fafafa);box-shadow:var(--media-upload-item-box-shadow, 0 1px 2px rgba(0, 0, 0, 0.06));transition:var(--media-upload-item-transition, box-shadow 0.2s ease, transform 0.2s ease);}.card.svelte-nabf7u:hover {box-shadow:var(--media-upload-item-hover-box-shadow, 0 6px 18px rgba(0, 0, 0, 0.14));transform:var(--media-upload-item-hover-transform, translateY(-2px));}.thumb.svelte-nabf7u {display:contents;--image-width: 100%;--image-height: 100%;--image-object-fit: var(--media-upload-item-object-fit, cover);--image-border-radius: 0px;--image-padding: 0px;--image-margin: 0px;}.thumb-loading.svelte-nabf7u {display:contents;--shimmer-width: 100%;--shimmer-height: 100%;--shimmer-border-radius: 0px;}.file-icon.svelte-nabf7u {display:flex;height:100%;width:100%;justify-content:center;align-items:center;color:var(--media-upload-file-icon-color, #8a8f98);}.file-icon.svelte-nabf7u svg,\n .file-icon.svelte-nabf7u img {height:var(--media-upload-file-icon-size, 36px);width:var(--media-upload-file-icon-size, 36px);object-fit:contain;}.meta.svelte-nabf7u {position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;gap:2px;box-sizing:border-box;padding:var(--media-upload-meta-padding, 6px 8px);background:var(\n --media-upload-meta-background,\n linear-gradient(to top, rgba(0, 0, 0, 0.72), rgba(0, 0, 0, 0))\n );color:var(--media-upload-meta-color, #ffffff);}.is-file.svelte-nabf7u .meta:where(.svelte-nabf7u) {background:var(--media-upload-file-meta-background, transparent);color:var(--media-upload-file-meta-color, #52525b);}.meta-name.svelte-nabf7u {font-size:var(--media-upload-meta-name-font-size, 11px);font-weight:var(--media-upload-meta-name-font-weight, 500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.meta-size.svelte-nabf7u {font-size:var(--media-upload-meta-size-font-size, 10px);opacity:var(--media-upload-meta-size-opacity, 0.85);font-variant-numeric:tabular-nums;}.remove.svelte-nabf7u {position:absolute;top:var(--media-upload-remove-inset, 6px);right:var(--media-upload-remove-inset, 6px);opacity:var(--media-upload-remove-opacity, 0);transition:var(--media-upload-remove-transition, opacity 0.18s ease);--button-width: var(--media-upload-remove-size, 24px);--button-height: var(--media-upload-remove-size, 24px);--button-padding: var(--media-upload-remove-padding, 4px);--button-border: var(--media-upload-remove-border, none);--button-border-radius: var(--media-upload-remove-border-radius, 50%);--button-color: var(--media-upload-remove-background-color, rgba(0, 0, 0, 0.55));--button-text-color: var(--media-upload-remove-color, #ffffff);--button-content-gap: 0px;--button-hover-color: var(--media-upload-remove-hover-background-color, rgba(0, 0, 0, 0.78));--button-hover-text-color: var(\n --media-upload-remove-hover-color,\n var(--media-upload-remove-color, #ffffff)\n );}.card.svelte-nabf7u:hover .remove:where(.svelte-nabf7u),\n .remove.svelte-nabf7u:focus-within {opacity:1;}.remove.svelte-nabf7u svg,\n .remove.svelte-nabf7u img {height:var(--media-upload-remove-icon-size, 100%);width:var(--media-upload-remove-icon-size, 100%);object-fit:contain;}.drop-tile.svelte-nabf7u {display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--media-upload-add-gap, 6px);box-sizing:border-box;padding:var(--media-upload-add-padding, 12px);text-align:center;background-color:var(--media-upload-add-background-color, #fafafa);border:var(--media-upload-add-border, 1.5px dashed #c8ccd2);color:var(--media-upload-add-color, #4b5563);cursor:pointer;transition:var(\n --media-upload-add-transition,\n border-color 0.18s ease,\n background-color 0.18s ease,\n color 0.18s ease\n );}.drop-tile.svelte-nabf7u:hover {background-color:var(--media-upload-add-hover-background-color, #f1f5ff);border:var(--media-upload-add-hover-border, 1.5px dashed #6d8eff);color:var(--media-upload-add-hover-color, #3b5bdb);}.drop-tile.dragging.svelte-nabf7u {background-color:var(--media-upload-add-dragging-background-color, #e7efff);border:var(--media-upload-add-dragging-border, 1.5px solid #3b5bdb);color:var(--media-upload-add-dragging-color, #3b5bdb);}.drop-icon.svelte-nabf7u {display:flex;justify-content:center;align-items:center;}.drop-icon.svelte-nabf7u svg,\n .drop-icon.svelte-nabf7u img {height:var(--media-upload-add-icon-size, 22px);width:var(--media-upload-add-icon-size, 22px);object-fit:contain;}.drop-text.svelte-nabf7u {font-size:var(--media-upload-add-text-font-size, 11px);line-height:var(--media-upload-add-text-line-height, 1.3);}.drop-hint.svelte-nabf7u {font-size:var(--media-upload-add-hint-font-size, 10px);color:var(--media-upload-add-hint-color, #4b5563);}.error.svelte-nabf7u {font-size:var(--media-upload-error-font-size, 12px);color:var(--media-upload-error-color, #e0334b);margin:var(--media-upload-error-margin, 8px 0 0 0);}\n\n /* `--media-upload-item-transition` defaults to a box-shadow AND transform lift\n on hover. The shadow alone would be fine; the transform is movement, and a\n consumer overriding the token is most likely adding more of it. Dropping the\n whole declaration is right here because every end state is a resting state. */\n @media (prefers-reduced-motion: reduce) {.media-item.svelte-nabf7u {transition:none;}\n }"
41989
+ code: ".media-upload.svelte-nabf7u {box-sizing:border-box;display:flex;flex-direction:column;width:var(--media-upload-width, fit-content);font-family:var(--media-upload-font-family, inherit);color:var(--media-upload-color, inherit);}.media-upload.disabled.svelte-nabf7u {opacity:var(--media-upload-disabled-opacity, 0.55);}.header.svelte-nabf7u {display:flex;align-items:baseline;justify-content:space-between;gap:var(--media-upload-header-gap, 12px);margin:var(--media-upload-label-margin, 0 0 4px 0);}.label.svelte-nabf7u {font-size:var(--media-upload-label-font-size, 14px);font-weight:var(--media-upload-label-font-weight, 600);color:var(--media-upload-label-color, #242833);}.counter.svelte-nabf7u {font-size:var(--media-upload-counter-font-size, 12px);font-weight:var(--media-upload-counter-font-weight, 500);color:var(--media-upload-counter-color, #5a5a5a);font-variant-numeric:tabular-nums;}.description.svelte-nabf7u {font-size:var(--media-upload-description-font-size, 12px);color:var(--media-upload-description-color, #656565);margin:var(--media-upload-description-margin, 0);}.grid.svelte-nabf7u {display:flex;flex-wrap:wrap;align-items:stretch;gap:var(--media-upload-gap, 12px);margin:var(--media-upload-content-margin, 12px 0 0 0);}.card.svelte-nabf7u,\n .drop-tile.svelte-nabf7u {box-sizing:border-box;height:var(--media-upload-item-height, 110px);width:var(--media-upload-item-width, 110px);border-radius:var(--media-upload-item-border-radius, 14px);}.card.svelte-nabf7u {position:relative;overflow:hidden;border:var(--media-upload-item-border, 1px solid #e4e4e7);background-color:var(--media-upload-item-background-color, #fafafa);box-shadow:var(--media-upload-item-box-shadow, 0 1px 2px rgba(0, 0, 0, 0.06));transition:var(--media-upload-item-transition, box-shadow 0.2s ease, transform 0.2s ease);}.card.svelte-nabf7u:hover {box-shadow:var(--media-upload-item-hover-box-shadow, 0 6px 18px rgba(0, 0, 0, 0.14));transform:var(--media-upload-item-hover-transform, translateY(-2px));}.thumb.svelte-nabf7u {display:contents;--image-width: 100%;--image-height: 100%;--image-object-fit: var(--media-upload-item-object-fit, cover);--image-border-radius: 0px;--image-padding: 0px;--image-margin: 0px;}.thumb-loading.svelte-nabf7u {display:contents;--shimmer-width: 100%;--shimmer-height: 100%;--shimmer-border-radius: 0px;}.file-icon.svelte-nabf7u {display:flex;height:100%;width:100%;justify-content:center;align-items:center;color:var(--media-upload-file-icon-color, #8a8f98);}.file-icon.svelte-nabf7u svg,\n .file-icon.svelte-nabf7u img {height:var(--media-upload-file-icon-size, 36px);width:var(--media-upload-file-icon-size, 36px);object-fit:contain;}.meta.svelte-nabf7u {position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;gap:2px;box-sizing:border-box;padding:var(--media-upload-meta-padding, 6px 8px);background:var(\n --media-upload-meta-background,\n linear-gradient(to top, rgba(0, 0, 0, 0.72), rgba(0, 0, 0, 0))\n );color:var(--media-upload-meta-color, #ffffff);}.is-file.svelte-nabf7u .meta:where(.svelte-nabf7u) {background:var(--media-upload-file-meta-background, transparent);color:var(--media-upload-file-meta-color, #52525b);}.meta-name.svelte-nabf7u {font-size:var(--media-upload-meta-name-font-size, 11px);font-weight:var(--media-upload-meta-name-font-weight, 500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.meta-size.svelte-nabf7u {font-size:var(--media-upload-meta-size-font-size, 10px);opacity:var(--media-upload-meta-size-opacity, 0.85);font-variant-numeric:tabular-nums;}.remove.svelte-nabf7u {position:absolute;top:var(--media-upload-remove-inset, 6px);right:var(--media-upload-remove-inset, 6px);opacity:var(--media-upload-remove-opacity, 0);transition:var(--media-upload-remove-transition, opacity 0.18s ease);--button-width: var(--media-upload-remove-size, 24px);--button-height: var(--media-upload-remove-size, 24px);--button-padding: var(--media-upload-remove-padding, 4px);--button-border: var(--media-upload-remove-border, none);--button-border-radius: var(--media-upload-remove-border-radius, 50%);--button-color: var(--media-upload-remove-background-color, rgba(0, 0, 0, 0.55));--button-text-color: var(--media-upload-remove-color, #ffffff);--button-content-gap: 0px;--button-hover-color: var(--media-upload-remove-hover-background-color, rgba(0, 0, 0, 0.78));--button-hover-text-color: var(\n --media-upload-remove-hover-color,\n var(--media-upload-remove-color, #ffffff)\n );}.card.svelte-nabf7u:hover .remove:where(.svelte-nabf7u),\n .remove.svelte-nabf7u:focus-within {opacity:1;}.remove.svelte-nabf7u svg,\n .remove.svelte-nabf7u img {height:var(--media-upload-remove-icon-size, 100%);width:var(--media-upload-remove-icon-size, 100%);object-fit:contain;}.drop-tile.svelte-nabf7u {display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--media-upload-add-gap, 6px);box-sizing:border-box;padding:var(--media-upload-add-padding, 12px);text-align:center;background-color:var(--media-upload-add-background-color, #fafafa);border:var(--media-upload-add-border, 1.5px dashed #c8ccd2);color:var(--media-upload-add-color, #4b5563);cursor:pointer;transition:var(\n --media-upload-add-transition,\n border-color 0.18s ease,\n background-color 0.18s ease,\n color 0.18s ease\n );}.drop-tile.svelte-nabf7u:hover {background-color:var(--media-upload-add-hover-background-color, #f1f5ff);border:var(--media-upload-add-hover-border, 1.5px dashed #6d8eff);color:var(--media-upload-add-hover-color, #3b5bdb);}.drop-tile.dragging.svelte-nabf7u {background-color:var(--media-upload-add-dragging-background-color, #e7efff);border:var(--media-upload-add-dragging-border, 1.5px solid #3b5bdb);color:var(--media-upload-add-dragging-color, #3b5bdb);}.drop-icon.svelte-nabf7u {display:flex;justify-content:center;align-items:center;}.drop-icon.svelte-nabf7u svg,\n .drop-icon.svelte-nabf7u img {height:var(--media-upload-add-icon-size, 22px);width:var(--media-upload-add-icon-size, 22px);object-fit:contain;}.drop-text.svelte-nabf7u {font-size:var(--media-upload-add-text-font-size, 11px);line-height:var(--media-upload-add-text-line-height, 1.3);}.drop-hint.svelte-nabf7u {font-size:var(--media-upload-add-hint-font-size, 10px);color:var(--media-upload-add-hint-color, #4b5563);}.error.svelte-nabf7u {font-size:var(--media-upload-error-font-size, 12px);color:var(--media-upload-error-color, #e0334b);margin:var(--media-upload-error-margin, 8px 0 0 0);}\n\n /* `--media-upload-item-transition` defaults to a box-shadow AND transform lift\n on hover. The shadow alone would be fine; the transform is movement, and a\n consumer overriding the token is most likely adding more of it. Dropping the\n whole declaration is right here because every end state is a resting state. */\n @media (prefers-reduced-motion: reduce) {.card.svelte-nabf7u {transition:none;}\n }"
41799
41990
  };
41800
41991
  function MediaUpload(e, t) {
41801
41992
  let n = props_id();
@@ -42633,7 +42824,7 @@ var edit_default = "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.
42633
42824
  }), append(e, i);
42634
42825
  }, root$18 = /* @__PURE__ */ from_html("<span class=\"grid-image-wrap svelte-14wkit2\"><!></span> <!>", 1), root_1$16 = /* @__PURE__ */ from_html("<span class=\"list-caption svelte-14wkit2\"> </span>"), root_2$10 = /* @__PURE__ */ from_html("<span class=\"list-text svelte-14wkit2\"><span class=\"list-title svelte-14wkit2\"> </span> <!></span>"), root_3$10 = /* @__PURE__ */ from_html("<!> <!>", 1), root_4$9 = /* @__PURE__ */ from_html("<button class=\"gallery-item-content svelte-14wkit2\"><!></button>"), root_5$8 = /* @__PURE__ */ from_html("<div class=\"gallery-item-content svelte-14wkit2\"><!></div>"), root_6$8 = /* @__PURE__ */ from_html("<div class=\"gallery-item-action svelte-14wkit2\"><!></div>"), root_7$7 = /* @__PURE__ */ from_html("<div class=\"gallery-item-actions svelte-14wkit2\"><!> <!></div>"), root_8$6 = /* @__PURE__ */ from_html("<div class=\"gallery-item svelte-14wkit2\" role=\"listitem\"><!> <!></div>"), root_9$5 = /* @__PURE__ */ from_html("<div class=\"lightbox-previous svelte-14wkit2\"><!></div>"), root_10$4 = /* @__PURE__ */ from_html("<figcaption class=\"lightbox-caption svelte-14wkit2\"> </figcaption>"), root_11$2 = /* @__PURE__ */ from_html("<figure class=\"lightbox-figure svelte-14wkit2\"><!> <!></figure>"), root_12$2 = /* @__PURE__ */ from_html("<div class=\"lightbox-next svelte-14wkit2\"><!></div>"), root_13$1 = /* @__PURE__ */ from_html("<div class=\"lightbox-counter svelte-14wkit2\" aria-live=\"polite\"> </div>"), root_14$1 = /* @__PURE__ */ from_html("<div role=\"dialog\" aria-modal=\"true\" tabindex=\"-1\"><div class=\"lightbox-close svelte-14wkit2\"><!></div> <!> <!> <!> <!></div>"), root_15$1 = /* @__PURE__ */ from_html("<div role=\"list\"></div> <!>", 1), $$css$39 = {
42635
42826
  hash: "svelte-14wkit2",
42636
- code: ".gallery.svelte-14wkit2 {width:var(--gallery-width, 100%);padding:var(--gallery-padding, 0px);margin:var(--gallery-margin, 0px);background:var(--gallery-background, transparent);}.gallery.grid.svelte-14wkit2 {display:grid;grid-template-columns:var(\n --gallery-grid-template-columns,\n repeat(var(--gallery-columns, 3), 1fr)\n );gap:var(--gallery-gap, 8px);}.gallery.list.svelte-14wkit2 {display:flex;flex-direction:column;gap:var(--gallery-gap, 8px);}.gallery-item.svelte-14wkit2 {position:relative;}.grid.svelte-14wkit2 .gallery-item:where(.svelte-14wkit2) {aspect-ratio:var(--gallery-item-aspect-ratio, 1);border-radius:var(--gallery-item-border-radius, 0px);overflow:hidden;--image-width: 100%;--image-height: 100%;--image-object-fit: var(--gallery-item-image-fit, cover);--image-border-radius: var(--gallery-item-border-radius, 0px);--image-transition: var(--gallery-item-image-transition);}.grid.has-item-footer.svelte-14wkit2 .gallery-item:where(.svelte-14wkit2) {aspect-ratio:auto;overflow:visible;border-radius:0px;}.list.svelte-14wkit2 .gallery-item:where(.svelte-14wkit2) {display:flex;align-items:center;border-radius:var(--gallery-list-item-border-radius, 0px);background:var(--gallery-list-item-background, transparent);--image-width: var(--gallery-list-thumbnail-width, 56px);--image-height: var(--gallery-list-thumbnail-height, 56px);--image-object-fit: var(--gallery-list-thumbnail-fit, cover);--image-border-radius: var(--gallery-list-thumbnail-border-radius, 0px);--image-transition: var(--gallery-item-image-transition);--image-flex-shrink: 0;}.gallery-item-content.svelte-14wkit2 {font:inherit;color:inherit;border:var(--gallery-item-border, none);background:transparent;}button.gallery-item-content.svelte-14wkit2 {cursor:var(--gallery-item-cursor, pointer);transition:var(--gallery-item-transition);}.grid.svelte-14wkit2 .gallery-item-content:where(.svelte-14wkit2) {display:block;width:100%;height:100%;padding:0;border-radius:var(--gallery-item-border-radius, 0px);}.grid.has-item-footer.svelte-14wkit2 .gallery-item-content:where(.svelte-14wkit2) {display:flex;flex-direction:column;height:auto;border-radius:var(--gallery-item-border-radius, 0px);overflow:hidden;}.grid-image-wrap.svelte-14wkit2 {display:block;aspect-ratio:var(--gallery-item-aspect-ratio, 1);overflow:hidden;--image-width: 100%;--image-height: 100%;--image-object-fit: var(--gallery-item-image-fit, cover);--image-border-radius: 0px;--image-transition: var(--gallery-item-image-transition);}.list.svelte-14wkit2 .gallery-item-content:where(.svelte-14wkit2) {display:flex;align-items:center;text-align:left;flex:1;min-width:0;gap:var(--gallery-list-item-gap, 12px);padding:var(--gallery-list-item-padding, 8px);}.grid.svelte-14wkit2 button.gallery-item-content:where(.svelte-14wkit2):hover {opacity:var(--gallery-item-hover-opacity, 1);transform:var(--gallery-item-hover-transform);}.grid.svelte-14wkit2 button.gallery-item-content:where(.svelte-14wkit2):focus-visible {outline:var(--gallery-item-focus-outline, 2px solid currentColor);outline-offset:var(--gallery-item-focus-outline-offset, 2px);}.list.svelte-14wkit2 button.gallery-item-content:where(.svelte-14wkit2):focus-visible {outline:none;}.list.svelte-14wkit2 .gallery-item:where(.svelte-14wkit2):has(button.gallery-item-content:where(.svelte-14wkit2)):hover {background:var(--gallery-list-item-hover-background, transparent);}.list.svelte-14wkit2 .gallery-item:where(.svelte-14wkit2):has(button.gallery-item-content:where(.svelte-14wkit2):focus-visible) {outline:var(--gallery-item-focus-outline, 2px solid currentColor);outline-offset:var(--gallery-item-focus-outline-offset, 2px);}.list-text.svelte-14wkit2 {display:flex;flex-direction:column;gap:var(--gallery-list-text-gap, 2px);min-width:0;}.list-title.svelte-14wkit2,\n .list-caption.svelte-14wkit2 {overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.list-title.svelte-14wkit2 {color:var(--gallery-list-title-color, inherit);font-size:var(--gallery-list-title-font-size, 14px);font-weight:var(--gallery-list-title-font-weight, 500);font-family:var(--gallery-list-title-font-family, inherit);}.list-caption.svelte-14wkit2 {color:var(--gallery-list-caption-color, inherit);font-size:var(--gallery-list-caption-font-size, 12px);font-family:var(--gallery-list-caption-font-family, inherit);}.gallery-item-actions.svelte-14wkit2 {display:flex;align-items:center;gap:var(--gallery-item-actions-gap, 4px);}.grid.svelte-14wkit2 .gallery-item-actions:where(.svelte-14wkit2) {position:absolute;top:var(--gallery-item-actions-top, 8px);right:var(--gallery-item-actions-right, 8px);}.list.svelte-14wkit2 .gallery-item-actions:where(.svelte-14wkit2) {flex-shrink:0;padding-right:var(--gallery-item-actions-right, 8px);}.gallery-item-action.svelte-14wkit2 {border-radius:var(--gallery-item-action-border-radius, 8px);--button-color: transparent;--button-hover-color: transparent;--button-padding: var(--gallery-item-action-padding, 6px);--button-border-radius: var(--gallery-item-action-border-radius, 8px);--icon-container-padding: 0px;--icon-padding: 0px;--icon-width: var(--gallery-item-action-icon-size, 16px);--icon-height: var(--gallery-item-action-icon-size, 16px);}.grid.svelte-14wkit2 .gallery-item-action:where(.svelte-14wkit2) {background:var(--gallery-item-action-background, #00000066);-webkit-backdrop-filter:var(--gallery-item-action-backdrop-filter, blur(8px));backdrop-filter:var(--gallery-item-action-backdrop-filter, blur(8px));--button-text-color: var(--gallery-item-action-color, #ffffff);}.grid.svelte-14wkit2 .gallery-item-action:where(.svelte-14wkit2):hover {background:var(--gallery-item-action-hover-background, #00000099);}.list.svelte-14wkit2 .gallery-item-action:where(.svelte-14wkit2) {background:var(--gallery-item-action-background, transparent);--button-text-color: var(--gallery-item-action-color, currentColor);}.list.svelte-14wkit2 .gallery-item-action:where(.svelte-14wkit2):hover {background:var(--gallery-item-action-hover-background, #80808026);}.lightbox.svelte-14wkit2 {position:fixed;top:0;bottom:0;left:0;right:0;z-index:var(--gallery-lightbox-z-index, 15);display:flex;justify-content:center;align-items:center;background:var(--gallery-lightbox-background, #000000e6);-webkit-tap-highlight-color:transparent;}.lightbox.svelte-14wkit2:focus {outline:none;}\n\n /* lightboxAction focuses this element directly on open (and goToIndex\n re-focuses it whenever focus isn't already inside), and it's the\n Tab-trap's own boundary, so the unconditional :focus suppression above\n left a keyboard user with no visible sign focus had moved into the\n lightbox at all. :focus-visible wins the cascade over the plain :focus\n rule above (equal specificity, later in source, and a strict subset) only\n when the browser judges this came from keyboard/programmatic focus, so\n the thumbnail click that opens the lightbox still shows nothing new.\n outline-offset is negative (inset), matching Sheet's sheet-panel: the\n lightbox sits flush against all four viewport edges, so a positive offset\n would clip. */.lightbox.svelte-14wkit2:focus-visible {outline:var(--gallery-lightbox-focus-outline, 2px solid #2563eb);outline-offset:var(--gallery-lightbox-focus-outline-offset, -2px);}.lightbox-figure.svelte-14wkit2 {display:flex;flex-direction:column;align-items:center;gap:var(--gallery-lightbox-caption-gap, 12px);margin:0;pointer-events:none;--image-width: var(--gallery-lightbox-image-width, 85vw);--image-height: var(--gallery-lightbox-image-height, 75vh);--image-object-fit: var(--gallery-lightbox-image-fit, contain);--image-border-radius: var(--gallery-lightbox-image-border-radius, 0px);}.lightbox-caption.svelte-14wkit2 {color:var(--gallery-lightbox-caption-color, #ffffff);font-size:var(--gallery-lightbox-caption-font-size, 14px);font-family:var(--gallery-lightbox-caption-font-family, inherit);text-align:center;max-width:var(--gallery-lightbox-image-width, 85vw);}.lightbox-counter.svelte-14wkit2 {position:absolute;bottom:var(--gallery-lightbox-counter-bottom, 16px);left:50%;transform:translateX(-50%);color:var(--gallery-lightbox-counter-color, #ffffff);font-size:var(--gallery-lightbox-counter-font-size, 13px);font-family:var(--gallery-lightbox-counter-font-family, inherit);}.lightbox-close.svelte-14wkit2,\n .lightbox-previous.svelte-14wkit2,\n .lightbox-next.svelte-14wkit2 {position:absolute;--button-color: var(--gallery-lightbox-control-background, transparent);--button-text-color: var(--gallery-lightbox-control-color, #ffffff);--button-hover-color: var(--gallery-lightbox-control-hover-background, #ffffff1f);--button-padding: var(--gallery-lightbox-control-padding, 8px);--button-border-radius: var(--gallery-lightbox-control-border-radius, 50%);--icon-container-padding: 0px;--icon-padding: 0px;--icon-width: var(--gallery-lightbox-control-icon-size, 24px);--icon-height: var(--gallery-lightbox-control-icon-size, 24px);}.lightbox-close.svelte-14wkit2 {top:var(--gallery-lightbox-close-top, 16px);right:var(--gallery-lightbox-close-right, 16px);}.lightbox-previous.svelte-14wkit2,\n .lightbox-next.svelte-14wkit2 {top:50%;transform:translateY(-50%);}.lightbox-previous.svelte-14wkit2 {left:var(--gallery-lightbox-nav-inset, 16px);}.lightbox-next.svelte-14wkit2 {right:var(--gallery-lightbox-nav-inset, 16px);}"
42827
+ code: ".gallery.svelte-14wkit2 {width:var(--gallery-width, 100%);padding:var(--gallery-padding, 0px);margin:var(--gallery-margin, 0px);background:var(--gallery-background, transparent);}.gallery.grid.svelte-14wkit2 {display:grid;grid-template-columns:var(\n --gallery-grid-template-columns,\n repeat(var(--gallery-columns, 3), 1fr)\n );gap:var(--gallery-gap, 8px);}.gallery.list.svelte-14wkit2 {display:flex;flex-direction:column;gap:var(--gallery-gap, 8px);}.gallery-item.svelte-14wkit2 {position:relative;}.grid.svelte-14wkit2 .gallery-item:where(.svelte-14wkit2) {aspect-ratio:var(--gallery-item-aspect-ratio, 1);border-radius:var(--gallery-item-border-radius, 0px);overflow:hidden;--image-width: 100%;--image-height: 100%;--image-object-fit: var(--gallery-item-image-fit, cover);--image-border-radius: var(--gallery-item-border-radius, 0px);--image-transition: var(--gallery-item-image-transition);}.grid.has-item-footer.svelte-14wkit2 .gallery-item:where(.svelte-14wkit2) {aspect-ratio:auto;overflow:visible;border-radius:0px;}.list.svelte-14wkit2 .gallery-item:where(.svelte-14wkit2) {display:flex;align-items:center;border-radius:var(--gallery-list-item-border-radius, 0px);background:var(--gallery-list-item-background, transparent);--image-width: var(--gallery-list-thumbnail-width, 56px);--image-height: var(--gallery-list-thumbnail-height, 56px);--image-object-fit: var(--gallery-list-thumbnail-fit, cover);--image-border-radius: var(--gallery-list-thumbnail-border-radius, 0px);--image-transition: var(--gallery-item-image-transition);--image-flex-shrink: 0;}.gallery-item-content.svelte-14wkit2 {font:inherit;color:inherit;border:var(--gallery-item-border, none);background:transparent;}button.gallery-item-content.svelte-14wkit2 {cursor:var(--gallery-item-cursor, pointer);transition:var(--gallery-item-transition);}.grid.svelte-14wkit2 .gallery-item-content:where(.svelte-14wkit2) {display:block;width:100%;height:100%;padding:0;border-radius:var(--gallery-item-border-radius, 0px);}.grid.has-item-footer.svelte-14wkit2 .gallery-item-content:where(.svelte-14wkit2) {display:flex;flex-direction:column;height:auto;border-radius:var(--gallery-item-border-radius, 0px);overflow:hidden;}.grid-image-wrap.svelte-14wkit2 {display:block;aspect-ratio:var(--gallery-item-aspect-ratio, 1);overflow:hidden;--image-width: 100%;--image-height: 100%;--image-object-fit: var(--gallery-item-image-fit, cover);--image-border-radius: 0px;--image-transition: var(--gallery-item-image-transition);}.list.svelte-14wkit2 .gallery-item-content:where(.svelte-14wkit2) {display:flex;align-items:center;text-align:left;flex:1;min-width:0;gap:var(--gallery-list-item-gap, 12px);padding:var(--gallery-list-item-padding, 8px);}.grid.svelte-14wkit2 button.gallery-item-content:where(.svelte-14wkit2):hover {opacity:var(--gallery-item-hover-opacity, 1);transform:var(--gallery-item-hover-transform);}.grid.svelte-14wkit2 button.gallery-item-content:where(.svelte-14wkit2):focus-visible {outline:var(--gallery-item-focus-outline, 2px solid currentColor);outline-offset:var(--gallery-item-focus-outline-offset, 2px);}.list.svelte-14wkit2 button.gallery-item-content:where(.svelte-14wkit2):focus-visible {outline:none;}.list.svelte-14wkit2 .gallery-item:where(.svelte-14wkit2):has(button.gallery-item-content:where(.svelte-14wkit2)):hover {background:var(--gallery-list-item-hover-background, transparent);}.list.svelte-14wkit2 .gallery-item:where(.svelte-14wkit2):has(button.gallery-item-content:where(.svelte-14wkit2):focus-visible) {outline:var(--gallery-item-focus-outline, 2px solid currentColor);outline-offset:var(--gallery-item-focus-outline-offset, 2px);}.list-text.svelte-14wkit2 {display:flex;flex-direction:column;gap:var(--gallery-list-text-gap, 2px);min-width:0;}.list-title.svelte-14wkit2,\n .list-caption.svelte-14wkit2 {overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.list-title.svelte-14wkit2 {color:var(--gallery-list-title-color, inherit);font-size:var(--gallery-list-title-font-size, 14px);font-weight:var(--gallery-list-title-font-weight, 500);font-family:var(--gallery-list-title-font-family, inherit);}.list-caption.svelte-14wkit2 {color:var(--gallery-list-caption-color, inherit);font-size:var(--gallery-list-caption-font-size, 12px);font-family:var(--gallery-list-caption-font-family, inherit);}.gallery-item-actions.svelte-14wkit2 {display:flex;align-items:center;gap:var(--gallery-item-actions-gap, 4px);}.grid.svelte-14wkit2 .gallery-item-actions:where(.svelte-14wkit2) {position:absolute;top:var(--gallery-item-actions-top, 8px);right:var(--gallery-item-actions-right, 8px);}.list.svelte-14wkit2 .gallery-item-actions:where(.svelte-14wkit2) {flex-shrink:0;padding-right:var(--gallery-item-actions-right, 8px);}.gallery-item-action.svelte-14wkit2 {border-radius:var(--gallery-item-action-border-radius, 8px);--button-color: transparent;--button-hover-color: transparent;--button-padding: var(--gallery-item-action-padding, 6px);--button-border-radius: var(--gallery-item-action-border-radius, 8px);--icon-container-padding: 0px;--icon-padding: 0px;--icon-width: var(--gallery-item-action-icon-size, 16px);--icon-height: var(--gallery-item-action-icon-size, 16px);}.grid.svelte-14wkit2 .gallery-item-action:where(.svelte-14wkit2) {background:var(--gallery-item-action-background, #00000066);-webkit-backdrop-filter:var(--gallery-item-action-backdrop-filter, blur(8px));backdrop-filter:var(--gallery-item-action-backdrop-filter, blur(8px));--button-text-color: var(--gallery-item-action-color, #ffffff);}.grid.svelte-14wkit2 .gallery-item-action:where(.svelte-14wkit2):hover {background:var(--gallery-item-action-hover-background, #00000099);}.list.svelte-14wkit2 .gallery-item-action:where(.svelte-14wkit2) {background:var(--gallery-item-action-background, transparent);--button-text-color: var(--gallery-item-action-color, currentColor);}.list.svelte-14wkit2 .gallery-item-action:where(.svelte-14wkit2):hover {background:var(--gallery-item-action-hover-background, #80808026);}.lightbox.svelte-14wkit2 {position:fixed;top:0;bottom:0;left:0;right:0;z-index:var(--gallery-lightbox-z-index, 15);display:flex;justify-content:center;align-items:center;background:var(--gallery-lightbox-background, #000000e6);-webkit-tap-highlight-color:transparent;--_gallery-lightbox-transition-duration: var(\n --gallery-lightbox-transition-duration,\n var(--duration-base, var(--motion-duration))\n );}.lightbox.svelte-14wkit2:focus {outline:none;}\n\n /* lightboxAction focuses this element directly on open (and goToIndex\n re-focuses it whenever focus isn't already inside), and it's the\n Tab-trap's own boundary, so the unconditional :focus suppression above\n left a keyboard user with no visible sign focus had moved into the\n lightbox at all. :focus-visible wins the cascade over the plain :focus\n rule above (equal specificity, later in source, and a strict subset) only\n when the browser judges this came from keyboard/programmatic focus, so\n the thumbnail click that opens the lightbox still shows nothing new.\n outline-offset is negative (inset), matching Sheet's sheet-panel: the\n lightbox sits flush against all four viewport edges, so a positive offset\n would clip. */.lightbox.svelte-14wkit2:focus-visible {outline:var(--gallery-lightbox-focus-outline, 2px solid #2563eb);outline-offset:var(--gallery-lightbox-focus-outline-offset, -2px);}.lightbox-figure.svelte-14wkit2 {display:flex;flex-direction:column;align-items:center;gap:var(--gallery-lightbox-caption-gap, 12px);margin:0;pointer-events:none;--image-width: var(--gallery-lightbox-image-width, 85vw);--image-height: var(--gallery-lightbox-image-height, 75vh);--image-object-fit: var(--gallery-lightbox-image-fit, contain);--image-border-radius: var(--gallery-lightbox-image-border-radius, 0px);}.lightbox-caption.svelte-14wkit2 {color:var(--gallery-lightbox-caption-color, #ffffff);font-size:var(--gallery-lightbox-caption-font-size, 14px);font-family:var(--gallery-lightbox-caption-font-family, inherit);text-align:center;max-width:var(--gallery-lightbox-image-width, 85vw);}.lightbox-counter.svelte-14wkit2 {position:absolute;bottom:var(--gallery-lightbox-counter-bottom, 16px);left:50%;transform:translateX(-50%);color:var(--gallery-lightbox-counter-color, #ffffff);font-size:var(--gallery-lightbox-counter-font-size, 13px);font-family:var(--gallery-lightbox-counter-font-family, inherit);}.lightbox-close.svelte-14wkit2,\n .lightbox-previous.svelte-14wkit2,\n .lightbox-next.svelte-14wkit2 {position:absolute;--button-color: var(--gallery-lightbox-control-background, transparent);--button-text-color: var(--gallery-lightbox-control-color, #ffffff);--button-hover-color: var(--gallery-lightbox-control-hover-background, #ffffff1f);--button-padding: var(--gallery-lightbox-control-padding, 8px);--button-border-radius: var(--gallery-lightbox-control-border-radius, 50%);--icon-container-padding: 0px;--icon-padding: 0px;--icon-width: var(--gallery-lightbox-control-icon-size, 24px);--icon-height: var(--gallery-lightbox-control-icon-size, 24px);}.lightbox-close.svelte-14wkit2 {top:var(--gallery-lightbox-close-top, 16px);right:var(--gallery-lightbox-close-right, 16px);}.lightbox-previous.svelte-14wkit2,\n .lightbox-next.svelte-14wkit2 {top:50%;transform:translateY(-50%);}.lightbox-previous.svelte-14wkit2 {left:var(--gallery-lightbox-nav-inset, 16px);}.lightbox-next.svelte-14wkit2 {right:var(--gallery-lightbox-nav-inset, 16px);}"
42637
42828
  };
42638
42829
  function Gallery(e, t) {
42639
42830
  push(t, !0), append_styles$1(e, $$css$39);
@@ -42705,41 +42896,50 @@ function Gallery(e, t) {
42705
42896
  unlockBodyScroll(), dt !== null && (dt.focus(), dt = null);
42706
42897
  } };
42707
42898
  }
42708
- function xt(e, t) {
42899
+ function xt(e) {
42900
+ let t = e.trim();
42901
+ if (t.length === 0) return null;
42902
+ let n = Number.parseFloat(t);
42903
+ return Number.isFinite(n) ? t.endsWith("ms") ? n : t.endsWith("s") ? n * 1e3 : null : null;
42904
+ }
42905
+ function St(e) {
42906
+ return typeof at() == "number" ? fade(e, { duration: at() }) : fade(e, { duration: xt(getComputedStyle(e).getPropertyValue("--_gallery-lightbox-transition-duration")) ?? 200 });
42907
+ }
42908
+ function Ct(e, t) {
42709
42909
  t instanceof HTMLElement && (dt = t), s(e), o(!0), be()?.(e);
42710
42910
  }
42711
- function St() {
42911
+ function wt() {
42712
42912
  o(!1), Me()?.();
42713
42913
  }
42714
- async function Ct(e) {
42914
+ async function Tt(e) {
42715
42915
  e < 0 || e >= i().length || (s(e), Re()?.(s()), await tick(), get(ot) !== null && !get(ot).contains(getActiveElement(get(ot))) && get(ot).focus());
42716
42916
  }
42717
- function wt() {
42718
- s() > 0 ? Ct(s() - 1) : l() && i().length > 1 && Ct(i().length - 1);
42917
+ function Et() {
42918
+ s() > 0 ? Tt(s() - 1) : l() && i().length > 1 && Tt(i().length - 1);
42719
42919
  }
42720
- function Tt() {
42721
- s() < i().length - 1 ? Ct(s() + 1) : l() && i().length > 1 && Ct(0);
42920
+ function Dt() {
42921
+ s() < i().length - 1 ? Tt(s() + 1) : l() && i().length > 1 && Tt(0);
42722
42922
  }
42723
- function Et(e, t) {
42724
- ne()?.(e, t), c() && xt(e, t.currentTarget);
42923
+ function Ot(e, t) {
42924
+ ne()?.(e, t), c() && Ct(e, t.currentTarget);
42725
42925
  }
42726
- function Dt(e, t) {
42926
+ function kt(e, t) {
42727
42927
  re()?.(e, t);
42728
42928
  }
42729
- function Ot(e, t) {
42929
+ function At(e, t) {
42730
42930
  G()?.(e, t);
42731
42931
  }
42732
- function kt(e) {
42932
+ function jt(e) {
42733
42933
  let t = get(ct)?.querySelector("button") ?? null, n = (get(ut) ?? get(lt) ?? get(ct))?.querySelector("button") ?? null;
42734
42934
  t === null || n === null || (e.shiftKey && (getActiveElement(get(ot)) === t || getActiveElement(get(ot)) === get(ot)) ? (e.preventDefault(), n.focus()) : !e.shiftKey && getActiveElement(get(ot)) === n && (e.preventDefault(), t.focus()));
42735
42935
  }
42736
- function At(e) {
42737
- Ue()?.(e), e.key === "Escape" ? St() : e.key === "ArrowLeft" ? (e.preventDefault(), wt()) : e.key === "ArrowRight" ? (e.preventDefault(), Tt()) : e.key === "Home" ? (e.preventDefault(), Ct(0)) : e.key === "End" ? (e.preventDefault(), Ct(i().length - 1)) : e.key === "Tab" && kt(e);
42936
+ function Mt(e) {
42937
+ Ue()?.(e), e.key === "Escape" ? wt() : e.key === "ArrowLeft" ? (e.preventDefault(), Et()) : e.key === "ArrowRight" ? (e.preventDefault(), Dt()) : e.key === "Home" ? (e.preventDefault(), Tt(0)) : e.key === "End" ? (e.preventDefault(), Tt(i().length - 1)) : e.key === "Tab" && jt(e);
42738
42938
  }
42739
- function jt(e) {
42740
- e.target === get(ot) && St();
42939
+ function Nt(e) {
42940
+ e.target === get(ot) && wt();
42741
42941
  }
42742
- var Mt = {
42942
+ var Pt = {
42743
42943
  get images() {
42744
42944
  return i();
42745
42945
  },
@@ -42884,11 +43084,11 @@ function Gallery(e, t) {
42884
43084
  set lightboxTransitionDuration(e) {
42885
43085
  at(e), flushSync();
42886
43086
  }
42887
- }, Nt = root_15$1(), Pt = first_child(Nt);
42888
- each(Pt, 21, i, index, (e, t, a) => {
43087
+ }, It = root_15$1(), Lt = first_child(It);
43088
+ each(Lt, 21, i, index, (e, t, a) => {
42889
43089
  var o = root_8$6(), s = child(o), l = (e) => {
42890
43090
  var o = root_4$9();
42891
- n(child(o), () => get(t), () => a), reset(o), template_effect(() => set_attribute(o, "aria-label", c() ? `View image ${a + 1} of ${i().length}: ${get(t).alt}` : get(t).alt)), delegated("click", o, (e) => Et(a, e)), append(e, o);
43091
+ n(child(o), () => get(t), () => a), reset(o), template_effect(() => set_attribute(o, "aria-label", c() ? `View image ${a + 1} of ${i().length}: ${get(t).alt}` : get(t).alt)), delegated("click", o, (e) => Ot(a, e)), append(e, o);
42892
43092
  }, u = (e) => {
42893
43093
  var i = root_5$8();
42894
43094
  n(child(i), () => get(t), () => a), reset(i), append(e, i);
@@ -42905,7 +43105,7 @@ function Gallery(e, t) {
42905
43105
  get ariaLabel() {
42906
43106
  return get(e);
42907
43107
  },
42908
- onclick: (e) => Dt(a, e),
43108
+ onclick: (e) => kt(a, e),
42909
43109
  children: (e, t) => {
42910
43110
  controlIcon(e, () => edit_default, C);
42911
43111
  },
@@ -42925,7 +43125,7 @@ function Gallery(e, t) {
42925
43125
  get ariaLabel() {
42926
43126
  return get(e);
42927
43127
  },
42928
- onclick: (e) => Ot(a, e),
43128
+ onclick: (e) => At(a, e),
42929
43129
  children: (e, t) => {
42930
43130
  controlIcon(e, () => delete_default, k);
42931
43131
  },
@@ -42941,12 +43141,12 @@ function Gallery(e, t) {
42941
43141
  if_block(f, (e) => {
42942
43142
  get(yt) && e(p);
42943
43143
  }), reset(o), append(e, o);
42944
- }), reset(Pt);
42945
- var It = sibling(Pt, 2), Lt = (e) => {
43144
+ }), reset(Lt);
43145
+ var Rt = sibling(Lt, 2), zt = (e) => {
42946
43146
  var t = root_14$1(), n = child(t);
42947
43147
  Button(child(n), {
42948
43148
  ariaLabel: "Close gallery",
42949
- onclick: St,
43149
+ onclick: wt,
42950
43150
  children: (e, t) => {
42951
43151
  controlIcon(e, () => close_default, S);
42952
43152
  },
@@ -42956,7 +43156,7 @@ function Gallery(e, t) {
42956
43156
  var t = root_9$5();
42957
43157
  Button(child(t), {
42958
43158
  ariaLabel: "Previous image",
42959
- onclick: wt,
43159
+ onclick: Et,
42960
43160
  children: (e, t) => {
42961
43161
  controlIcon(e, () => chevron_left_lg_default, p);
42962
43162
  },
@@ -42994,7 +43194,7 @@ function Gallery(e, t) {
42994
43194
  var t = root_12$2();
42995
43195
  Button(child(t), {
42996
43196
  ariaLabel: "Next image",
42997
- onclick: Tt,
43197
+ onclick: Dt,
42998
43198
  children: (e, t) => {
42999
43199
  controlIcon(e, () => chevron_right_lg_default, h);
43000
43200
  },
@@ -43012,13 +43212,13 @@ function Gallery(e, t) {
43012
43212
  u() && typeof get(ft) == "object" && e(te);
43013
43213
  }), reset(t), bind_this(t, (e) => set(ot, e), () => get(ot)), action(t, (e) => bt?.(e)), template_effect(() => {
43014
43214
  set_class(t, 1, `lightbox ${it() ?? "" ?? ""}`, "svelte-14wkit2"), set_attribute(t, "aria-label", typeof get(ft) == "object" ? get(ft).alt : "Image gallery");
43015
- }), delegated("click", t, jt), delegated("keydown", t, At), transition(3, t, () => fade, () => ({ duration: at() ?? 200 })), append(e, t);
43215
+ }), delegated("click", t, Nt), delegated("keydown", t, Mt), transition(3, t, () => St), append(e, t);
43016
43216
  };
43017
- return if_block(It, (e) => {
43018
- o() && e(Lt);
43217
+ return if_block(Rt, (e) => {
43218
+ o() && e(zt);
43019
43219
  }), template_effect(() => {
43020
- set_class(Pt, 1, `gallery ${a() ?? ""} ${get(gt) ? "has-item-footer" : ""} ${it() ?? "" ?? ""}`, "svelte-14wkit2"), set_attribute(Pt, "data-pw", typeof te() == "string" ? te() : null);
43021
- }), append(e, Nt), pop(Mt);
43220
+ set_class(Lt, 1, `gallery ${a() ?? ""} ${get(gt) ? "has-item-footer" : ""} ${it() ?? "" ?? ""}`, "svelte-14wkit2"), set_attribute(Lt, "data-pw", typeof te() == "string" ? te() : null);
43221
+ }), append(e, It), pop(Pt);
43022
43222
  }
43023
43223
  delegate(["click", "keydown"]), create_custom_element(Gallery, {
43024
43224
  images: {},
@@ -51845,7 +52045,7 @@ delegate(["click"]), create_custom_element(ChatSuggestions, {
51845
52045
  //#region src/lib/ThinkingIndicator/ThinkingIndicator.svelte
51846
52046
  var root$10 = /* @__PURE__ */ from_html("<span class=\"avatar svelte-uzfrw6\"><!></span>"), root_1$9 = /* @__PURE__ */ from_svg("<svg viewBox=\"0 0 16 16\" fill=\"none\" class=\"svelte-uzfrw6\"><path d=\"M4 6l4 4 4-4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"svelte-uzfrw6\"></path></svg>"), root_2$5 = /* @__PURE__ */ from_html("<span class=\"elapsed svelte-uzfrw6\"> </span>"), root_3$5 = /* @__PURE__ */ from_html("<span class=\"status-row svelte-uzfrw6\"><!> <span class=\"label-cluster svelte-uzfrw6\"><span> </span> <span aria-hidden=\"true\"><!></span></span></span> <!>", 1), root_4$4 = /* @__PURE__ */ from_svg("<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\" class=\"svelte-uzfrw6\"><circle cx=\"11\" cy=\"11\" r=\"7\" class=\"svelte-uzfrw6\"></circle><path d=\"m21 21-4.3-4.3\" stroke-linecap=\"round\" class=\"svelte-uzfrw6\"></path></svg>"), root_5$3 = /* @__PURE__ */ from_html("<span class=\"trace-query-wrap svelte-uzfrw6\"><!></span>"), root_6$3 = /* @__PURE__ */ from_html("<span> </span>"), root_7$3 = /* @__PURE__ */ from_html("<span class=\"added svelte-uzfrw6\"> </span>"), root_8$3 = /* @__PURE__ */ from_html("<span class=\"removed svelte-uzfrw6\"> </span>"), root_9$2 = /* @__PURE__ */ from_html("<span class=\"row-diffstat svelte-uzfrw6\"><!> <!></span>"), root_10$2 = /* @__PURE__ */ from_html("<button type=\"button\"><b class=\"row-primary svelte-uzfrw6\"> </b> <!> <!></button>"), root_11 = /* @__PURE__ */ from_html("<span class=\"row-secondary svelte-uzfrw6\"> </span>"), root_12 = /* @__PURE__ */ from_html("<a class=\"trace-row linked svelte-uzfrw6\" target=\"_blank\" rel=\"noopener noreferrer\"><span class=\"row-badge svelte-uzfrw6\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"svelte-uzfrw6\"><path d=\"M20 6 9 17l-5-5\" class=\"svelte-uzfrw6\"></path></svg></span> <b class=\"row-primary svelte-uzfrw6\"> </b> <!></a>"), root_13 = /* @__PURE__ */ from_svg("<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"svelte-uzfrw6\"><path d=\"M20 6 9 17l-5-5\" class=\"svelte-uzfrw6\"></path></svg>"), root_14 = /* @__PURE__ */ from_html("<span class=\"row-icon svelte-uzfrw6\" aria-hidden=\"true\"><!></span>"), root_15 = /* @__PURE__ */ from_html("<span class=\"row-badge svelte-uzfrw6\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"svelte-uzfrw6\"><path d=\"M20 6 9 17l-5-5\" class=\"svelte-uzfrw6\"></path></svg></span>"), root_16 = /* @__PURE__ */ from_html("<b class=\"row-primary svelte-uzfrw6\"> </b>"), root_17 = /* @__PURE__ */ from_html("<div><!> <!> <!> <!></div>"), root_18 = /* @__PURE__ */ from_html("<div class=\"trace-more svelte-uzfrw6\"> </div>"), root_19 = /* @__PURE__ */ from_html("<!> <div class=\"trace-body svelte-uzfrw6\"><span class=\"trace-connector svelte-uzfrw6\" aria-hidden=\"true\"></span> <div class=\"trace-rows svelte-uzfrw6\"></div></div> <!>", 1), root_20 = /* @__PURE__ */ from_html("<p class=\"detail svelte-uzfrw6\"> </p>"), root_21 = /* @__PURE__ */ from_html("<div class=\"thinking-indicator-body svelte-uzfrw6\"><!></div>"), root_22 = /* @__PURE__ */ from_html("<div><div class=\"toggle svelte-uzfrw6\"><!></div> <!></div>"), root_23 = /* @__PURE__ */ from_html("<span class=\"svelte-uzfrw6\"> </span>"), root_24 = /* @__PURE__ */ from_html("<span><!></span>"), root_25 = /* @__PURE__ */ from_html("<div aria-live=\"polite\" aria-atomic=\"true\"><span class=\"chip-icon svelte-uzfrw6\"><!></span> <span> </span></div>"), root_26 = /* @__PURE__ */ from_html("<div><span class=\"status-row svelte-uzfrw6\"><span class=\"avatar svelte-uzfrw6\"><!></span> <span> </span></span> <!></div>"), $$css$30 = {
51847
52047
  hash: "svelte-uzfrw6",
51848
- code: "\n @keyframes svelte-uzfrw6-thinking-indicator-shimmer {\n 0% {\n background-position: 200% 0;\n }\n\n 100% {\n background-position: -200% 0;\n }\n }\n\n @keyframes svelte-uzfrw6-thinking-indicator-fade-up {\n from {\n opacity: 0;\n transform: translateY(9px);\n }\n to {\n opacity: 1;\n transform: none;\n }\n }\n\n @keyframes svelte-uzfrw6-thinking-indicator-fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }.thinking-indicator.svelte-uzfrw6 {box-sizing:border-box;width:100%;}.expandable.svelte-uzfrw6 {border-bottom:var(--thinking-indicator-border-bottom, 1px solid #e4e4e7);padding-block:var(--thinking-indicator-padding-block, 0.5rem);margin-bottom:var(--thinking-indicator-margin-bottom, 1rem);min-height:0;transition:min-height 400ms\n var(--thinking-indicator-trace-ease, cubic-bezier(0.23, 1, 0.32, 1));}.expandable.busy.svelte-uzfrw6 {min-height:var(--thinking-indicator-trace-busy-min-height, 0px);}.toggle.svelte-uzfrw6 {width:100%;--button-color: transparent;--button-border: none;--button-box-shadow: none;--button-hover-box-shadow: none;--button-active-box-shadow: none;--button-width: 100%;--button-padding: 0;--button-justify-content: flex-start;--button-text-color: inherit;--button-content-gap: var(--thinking-indicator-header-gap, 0.375rem);}\n\n /* A flex ROW host makes the inner status-row hug its content, so the shimmer\n gradient maps to the text's own width rather than the full container. Neither\n form stretches to fill the width — a trailing gap after a short label is real\n empty space, not a reserved box, so nothing pushes the elapsed counter away. */.status-host.svelte-uzfrw6 {display:flex;align-items:center;gap:var(--thinking-indicator-header-gap, 0.375rem);}.status-row.svelte-uzfrw6 {display:flex;align-items:center;gap:var(--thinking-indicator-gap, 0.25rem);min-width:0;}.avatar.svelte-uzfrw6 {display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--thinking-indicator-avatar-size, 1.5rem);height:var(--thinking-indicator-avatar-size, 1.5rem);--loader-width: var(--thinking-indicator-avatar-loader-size, 1rem);--loader-height: var(--thinking-indicator-avatar-loader-size, 1rem);}\n\n /* The chevron lives in the same flex cluster as the label so it hugs the text\n immediately, instead of drifting to the far edge of the toggle button. */.label-cluster.svelte-uzfrw6 {display:flex;align-items:center;gap:var(--thinking-indicator-arrow-gap, 0.125rem);min-width:0;}.status-label.svelte-uzfrw6 {flex:0 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:left;font-size:var(--thinking-indicator-font-size, 0.75rem);line-height:var(--thinking-indicator-line-height, 1.25rem);color:var(--thinking-indicator-label-color, #858585);background:var(\n --thinking-indicator-shimmer-gradient,\n linear-gradient(90deg, #858585 0%, #bebebe 50%, #858585 100%)\n );background-size:200% 100%;background-clip:text;-webkit-text-fill-color:transparent;\n animation: svelte-uzfrw6-thinking-indicator-shimmer var(--thinking-indicator-shimmer-duration, 2s) linear\n infinite;}\n\n /* A settled label (no live busy phase) holds still instead of shimmering. */.static-label.svelte-uzfrw6 {\n animation: none;-webkit-text-fill-color:var(--thinking-indicator-label-color, #858585);}\n\n /* ---- chip variant: a self-contained floating pill (no ancestor supplies\n background/layout, unlike bare) — deliberately not `width: 100%`/box-sizing\n from `.thinking-indicator`, since a pill hugs its content. */.thinking-indicator-chip.svelte-uzfrw6 {box-sizing:border-box;display:inline-flex;align-items:center;gap:var(--thinking-indicator-chip-gap, 8px);width:fit-content;padding:var(--thinking-indicator-chip-padding, 8px 14px);background:var(--thinking-indicator-chip-background, #ffffff);border:var(--thinking-indicator-chip-border, 1px solid #e4e4e7);border-radius:var(--thinking-indicator-chip-border-radius, 999px);box-shadow:var(--thinking-indicator-chip-box-shadow, 0 6px 20px rgba(0, 0, 0, 0.08));max-width:var(--thinking-indicator-chip-max-width, 100%);}.chip-icon.svelte-uzfrw6 {display:inline-flex;align-items:center;flex-shrink:0;color:var(--thinking-indicator-chip-icon-color, currentColor);--loader-foreground: var(--thinking-indicator-chip-spinner-color, currentColor);--loader-foreground-end: var(--thinking-indicator-chip-spinner-color-end, transparent);--loader-width: var(--thinking-indicator-chip-spinner-size, 14px);--loader-height: var(--thinking-indicator-chip-spinner-size, 14px);--loader-before-width: 7px;--loader-before-height: 7px;--loader-after-width: 11px;--loader-after-height: 11px;--loader-background: var(--thinking-indicator-chip-background, #ffffff);}.chip-label.svelte-uzfrw6 {flex:0 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--thinking-indicator-chip-font-size, 0.85rem);font-weight:var(--thinking-indicator-chip-font-weight, 500);color:var(--thinking-indicator-chip-color, #52525b);background:var(\n --thinking-indicator-chip-shimmer-gradient,\n linear-gradient(90deg, #52525b 0%, #a0a0a0 50%, #52525b 100%)\n );background-size:200% 100%;background-clip:text;-webkit-text-fill-color:transparent;\n animation: svelte-uzfrw6-thinking-indicator-shimmer var(--thinking-indicator-chip-shimmer-duration, 2s) linear\n infinite;}\n\n /* Chip defaults to a static label (unlike the default/bare variants) since it\n mirrors ChatToolStatus, which never shimmered — pass `busy` explicitly to\n opt in. Higher specificity than the generic `.static-label` rule above, so\n it correctly overrides with the chip's own color token, not the default\n variant's. */.chip-label.static-label.svelte-uzfrw6 {\n animation: none;-webkit-text-fill-color:var(--thinking-indicator-chip-color, #52525b);}.arrow.svelte-uzfrw6 {display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--thinking-indicator-arrow-size, 1rem);height:var(--thinking-indicator-arrow-size, 1rem);color:var(--thinking-indicator-arrow-color, #7a7a7a);transform:rotate(-90deg);transition:var(--thinking-indicator-arrow-transition, transform 0.2s ease-in-out);}.arrow.svelte-uzfrw6 svg:where(.svelte-uzfrw6) {width:100%;height:100%;}.arrow.expanded.svelte-uzfrw6 {transform:rotate(0deg);}.detail.svelte-uzfrw6 {margin:0;padding-top:var(--thinking-indicator-detail-padding-top, 0.5rem);font-size:var(--thinking-indicator-detail-font-size, 0.875rem);line-height:var(--thinking-indicator-detail-line-height, 1.5);\n /* Resting text, not the shimmer highlight — needs its own readable default\n rather than reusing the shimmer's light sweep color. Matches\n --thinking-indicator-trace-prose-color, the same prose-at-rest ink used\n for the reasoning trace's paragraph rows. */color:var(--thinking-indicator-detail-color, #6b6b6b);text-align:left;}.elapsed.svelte-uzfrw6 {flex-shrink:0;font-variant-numeric:tabular-nums;color:var(--thinking-indicator-elapsed-color, #4b5563);font-size:var(--thinking-indicator-elapsed-font-size, 0.75rem);}\n\n /* ---- Trace body (rows?: ThinkingIndicatorTraceRow[]) ---- */\n\n /* Wrapper exists only to carry `inert` while the Accordion has it collapsed —\n no box of its own, so it can't disturb the detail/trace layout it wraps. */.thinking-indicator-body.svelte-uzfrw6 {display:contents;}.trace-query-wrap.svelte-uzfrw6 {display:inline-flex;margin:var(--thinking-indicator-trace-query-margin, 10px 0 0);--pill-width: auto;--pill-justify-content: flex-start;--pill-cursor: default;--pill-gap: 6px;--pill-background: var(--thinking-indicator-trace-query-background, #f1f1f1);--pill-color: var(--thinking-indicator-trace-query-color, #6b6b6b);--pill-border-radius: var(--thinking-indicator-trace-query-radius, 999px);--pill-padding: var(--thinking-indicator-trace-query-padding, 3px 11px);--pill-font-size: var(--thinking-indicator-trace-query-font-size, 0.8125rem);--pill-font-weight: 400;}.trace-query-wrap.svelte-uzfrw6 svg {width:11px;height:11px;}.trace-body.svelte-uzfrw6 {display:flex;gap:var(--thinking-indicator-trace-body-gap, 12px);padding-top:var(--thinking-indicator-trace-body-padding-top, 10px);}.trace-connector.svelte-uzfrw6 {width:2px;border-radius:999px;background:var(--thinking-indicator-trace-connector-color, #dcdcdc);margin-left:6px;flex-shrink:0;transition:height 500ms var(--thinking-indicator-trace-ease, cubic-bezier(0.23, 1, 0.32, 1));}.trace-rows.svelte-uzfrw6 {flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--thinking-indicator-trace-row-gap, 7px);align-self:flex-start;}.trace-row.svelte-uzfrw6 {display:flex;align-items:baseline;gap:8px;font-size:var(--thinking-indicator-trace-row-font-size, 0.8125rem);color:var(--thinking-indicator-trace-row-color, #2b2b2b);\n animation: svelte-uzfrw6-thinking-indicator-fade-up 320ms\n var(--thinking-indicator-trace-ease, cubic-bezier(0.23, 1, 0.32, 1)) both;text-decoration:none;}.trace-row.prose.svelte-uzfrw6 {color:var(--thinking-indicator-trace-prose-color, #6b6b6b);}.trace-row.selectable.svelte-uzfrw6 {border:none;background:none;font:inherit;text-align:left;padding:3px 6px;margin:-3px -6px;border-radius:var(--thinking-indicator-trace-row-radius, 6px);cursor:pointer;transition:background\n var(--thinking-indicator-trace-row-transition-duration, var(--motion-duration, 150ms))\n var(--thinking-indicator-trace-row-transition-easing, var(--motion-easing, ease));width:calc(100% + 12px);}.trace-row.selectable.svelte-uzfrw6:hover {background:var(--thinking-indicator-trace-row-hover-background, #f4f4f4);}.trace-row.selectable.selected.svelte-uzfrw6 {background:var(--thinking-indicator-trace-row-selected-background, #ececec);}.trace-row.linked.svelte-uzfrw6:hover .row-primary:where(.svelte-uzfrw6) {text-decoration:underline;}.row-primary.svelte-uzfrw6 {font-weight:var(--thinking-indicator-trace-row-weight, 500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.row-secondary.svelte-uzfrw6 {color:var(--thinking-indicator-trace-secondary-color, #4b5563);font-size:var(--thinking-indicator-trace-secondary-font-size, 0.75rem);white-space:nowrap;}.row-secondary.mono.svelte-uzfrw6 {font-family:var(--thinking-indicator-trace-mono-font, ui-monospace, Menlo, monospace);}\n\n /* Steps kind: a static check icon, or — on the frontier row while busy — the\n library Loader, recoloured/resized to match the row's small icon footprint. */.row-icon.svelte-uzfrw6 {display:inline-flex;align-self:center;width:14px;flex-shrink:0;color:var(--thinking-indicator-trace-icon-color, #9a9a9a);--loader-width: var(--thinking-indicator-trace-spinner-size, 11px);--loader-height: var(--thinking-indicator-trace-spinner-size, 11px);--loader-before-width: 5px;--loader-before-height: 5px;--loader-after-width: 8px;--loader-after-height: 8px;--loader-foreground: var(--thinking-indicator-trace-spinner-color, #6b6b6b);--loader-foreground-end: var(--thinking-indicator-trace-spinner-color-end, transparent);--loader-background: var(--thinking-indicator-trace-spinner-track-color, #dcdcdc);}.row-icon.svelte-uzfrw6 svg:where(.svelte-uzfrw6) {width:12px;height:12px;}.row-badge.svelte-uzfrw6 {width:15px;height:15px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;color:var(--thinking-indicator-trace-badge-check-color, #fff);flex-shrink:0;align-self:center;}.row-badge[data-tone='1'].svelte-uzfrw6 {background:var(--thinking-indicator-trace-tone-1, #2f6fec);}.row-badge[data-tone='2'].svelte-uzfrw6 {background:var(--thinking-indicator-trace-tone-2, #e56d24);}.row-badge[data-tone='3'].svelte-uzfrw6 {background:var(--thinking-indicator-trace-tone-3, #1f7a5f);}.row-badge.svelte-uzfrw6 svg:where(.svelte-uzfrw6) {width:9px;height:9px;}.row-diffstat.svelte-uzfrw6 {margin-left:auto;font-family:var(--thinking-indicator-trace-mono-font, ui-monospace, Menlo, monospace);font-size:0.75rem;font-variant-numeric:tabular-nums;white-space:nowrap;display:inline-flex;gap:5px;}.row-diffstat.svelte-uzfrw6 .added:where(.svelte-uzfrw6) {color:var(--thinking-indicator-trace-added-color, #1f7a5f);}.row-diffstat.svelte-uzfrw6 .removed:where(.svelte-uzfrw6) {color:var(--thinking-indicator-trace-removed-color, #c93f38);}.trace-more.svelte-uzfrw6 {font-size:var(--thinking-indicator-trace-more-font-size, 0.75rem);color:var(--thinking-indicator-trace-more-color, #9a9a9a);padding:6px 0 0 22px;\n animation: svelte-uzfrw6-thinking-indicator-fade-in\n var(--thinking-indicator-trace-more-animation-duration, var(--motion-duration, 300ms))\n var(--thinking-indicator-trace-more-animation-easing, var(--motion-easing, ease)) both;}\n\n @media (prefers-reduced-motion: reduce) {.status-label.svelte-uzfrw6,\n .chip-label.svelte-uzfrw6,\n .trace-row.svelte-uzfrw6,\n .trace-more.svelte-uzfrw6 {animation-duration:0.001s;}.expandable.svelte-uzfrw6,\n .trace-connector.svelte-uzfrw6,\n .arrow.svelte-uzfrw6 {transition-duration:0.001s;}.status-label.svelte-uzfrw6 {\n animation: none;-webkit-text-fill-color:var(--thinking-indicator-label-color, #858585);}.chip-label.svelte-uzfrw6 {\n animation: none;-webkit-text-fill-color:var(--thinking-indicator-chip-color, #52525b);}\n }"
52048
+ code: "\n @keyframes svelte-uzfrw6-thinking-indicator-shimmer {\n 0% {\n background-position: 200% 0;\n }\n\n 100% {\n background-position: -200% 0;\n }\n }\n\n @keyframes svelte-uzfrw6-thinking-indicator-fade-up {\n from {\n opacity: 0;\n transform: translateY(9px);\n }\n to {\n opacity: 1;\n transform: none;\n }\n }\n\n @keyframes svelte-uzfrw6-thinking-indicator-fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }.thinking-indicator.svelte-uzfrw6 {box-sizing:border-box;width:100%;}.expandable.svelte-uzfrw6 {border-bottom:var(--thinking-indicator-border-bottom, 1px solid #e4e4e7);padding-block:var(--thinking-indicator-padding-block, 0.5rem);margin-bottom:var(--thinking-indicator-margin-bottom, 1rem);min-height:0;transition:min-height 400ms\n var(--thinking-indicator-trace-ease, var(--ease-smooth-out, cubic-bezier(0.23, 1, 0.32, 1)));}.expandable.busy.svelte-uzfrw6 {min-height:var(--thinking-indicator-trace-busy-min-height, 0px);}.toggle.svelte-uzfrw6 {width:100%;--button-color: transparent;--button-border: none;--button-box-shadow: none;--button-hover-box-shadow: none;--button-active-box-shadow: none;--button-width: 100%;--button-padding: 0;--button-justify-content: flex-start;--button-text-color: inherit;--button-content-gap: var(--thinking-indicator-header-gap, 0.375rem);}\n\n /* A flex ROW host makes the inner status-row hug its content, so the shimmer\n gradient maps to the text's own width rather than the full container. Neither\n form stretches to fill the width — a trailing gap after a short label is real\n empty space, not a reserved box, so nothing pushes the elapsed counter away. */.status-host.svelte-uzfrw6 {display:flex;align-items:center;gap:var(--thinking-indicator-header-gap, 0.375rem);}.status-row.svelte-uzfrw6 {display:flex;align-items:center;gap:var(--thinking-indicator-gap, 0.25rem);min-width:0;}.avatar.svelte-uzfrw6 {display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--thinking-indicator-avatar-size, 1.5rem);height:var(--thinking-indicator-avatar-size, 1.5rem);--loader-width: var(--thinking-indicator-avatar-loader-size, 1rem);--loader-height: var(--thinking-indicator-avatar-loader-size, 1rem);}\n\n /* The chevron lives in the same flex cluster as the label so it hugs the text\n immediately, instead of drifting to the far edge of the toggle button. */.label-cluster.svelte-uzfrw6 {display:flex;align-items:center;gap:var(--thinking-indicator-arrow-gap, 0.125rem);min-width:0;}.status-label.svelte-uzfrw6 {flex:0 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:left;font-size:var(--thinking-indicator-font-size, 0.75rem);line-height:var(--thinking-indicator-line-height, 1.25rem);color:var(--thinking-indicator-label-color, #858585);background:var(\n --thinking-indicator-shimmer-gradient,\n linear-gradient(90deg, #858585 0%, #bebebe 50%, #858585 100%)\n );background-size:200% 100%;background-clip:text;-webkit-text-fill-color:transparent;\n animation: svelte-uzfrw6-thinking-indicator-shimmer var(--thinking-indicator-shimmer-duration, 2s) linear\n infinite;}\n\n /* A settled label (no live busy phase) holds still instead of shimmering. */.static-label.svelte-uzfrw6 {\n animation: none;-webkit-text-fill-color:var(--thinking-indicator-label-color, #858585);}\n\n /* ---- chip variant: a self-contained floating pill (no ancestor supplies\n background/layout, unlike bare) — deliberately not `width: 100%`/box-sizing\n from `.thinking-indicator`, since a pill hugs its content. */.thinking-indicator-chip.svelte-uzfrw6 {box-sizing:border-box;display:inline-flex;align-items:center;gap:var(--thinking-indicator-chip-gap, 8px);width:fit-content;padding:var(--thinking-indicator-chip-padding, 8px 14px);background:var(--thinking-indicator-chip-background, #ffffff);border:var(--thinking-indicator-chip-border, 1px solid #e4e4e7);border-radius:var(--thinking-indicator-chip-border-radius, 999px);box-shadow:var(--thinking-indicator-chip-box-shadow, 0 6px 20px rgba(0, 0, 0, 0.08));max-width:var(--thinking-indicator-chip-max-width, 100%);}.chip-icon.svelte-uzfrw6 {display:inline-flex;align-items:center;flex-shrink:0;color:var(--thinking-indicator-chip-icon-color, currentColor);--loader-foreground: var(--thinking-indicator-chip-spinner-color, currentColor);--loader-foreground-end: var(--thinking-indicator-chip-spinner-color-end, transparent);--loader-width: var(--thinking-indicator-chip-spinner-size, 14px);--loader-height: var(--thinking-indicator-chip-spinner-size, 14px);--loader-before-width: 7px;--loader-before-height: 7px;--loader-after-width: 11px;--loader-after-height: 11px;--loader-background: var(--thinking-indicator-chip-background, #ffffff);}.chip-label.svelte-uzfrw6 {flex:0 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--thinking-indicator-chip-font-size, 0.85rem);font-weight:var(--thinking-indicator-chip-font-weight, 500);color:var(--thinking-indicator-chip-color, #52525b);background:var(\n --thinking-indicator-chip-shimmer-gradient,\n linear-gradient(90deg, #52525b 0%, #a0a0a0 50%, #52525b 100%)\n );background-size:200% 100%;background-clip:text;-webkit-text-fill-color:transparent;\n animation: svelte-uzfrw6-thinking-indicator-shimmer var(--thinking-indicator-chip-shimmer-duration, 2s) linear\n infinite;}\n\n /* Chip defaults to a static label (unlike the default/bare variants) since it\n mirrors ChatToolStatus, which never shimmered — pass `busy` explicitly to\n opt in. Higher specificity than the generic `.static-label` rule above, so\n it correctly overrides with the chip's own color token, not the default\n variant's. */.chip-label.static-label.svelte-uzfrw6 {\n animation: none;-webkit-text-fill-color:var(--thinking-indicator-chip-color, #52525b);}.arrow.svelte-uzfrw6 {display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--thinking-indicator-arrow-size, 1rem);height:var(--thinking-indicator-arrow-size, 1rem);color:var(--thinking-indicator-arrow-color, #7a7a7a);transform:rotate(-90deg);transition:var(--thinking-indicator-arrow-transition, transform 0.2s ease-in-out);}.arrow.svelte-uzfrw6 svg:where(.svelte-uzfrw6) {width:100%;height:100%;}.arrow.expanded.svelte-uzfrw6 {transform:rotate(0deg);}.detail.svelte-uzfrw6 {margin:0;padding-top:var(--thinking-indicator-detail-padding-top, 0.5rem);font-size:var(--thinking-indicator-detail-font-size, 0.875rem);line-height:var(--thinking-indicator-detail-line-height, 1.5);\n /* Resting text, not the shimmer highlight — needs its own readable default\n rather than reusing the shimmer's light sweep color. Matches\n --thinking-indicator-trace-prose-color, the same prose-at-rest ink used\n for the reasoning trace's paragraph rows. */color:var(--thinking-indicator-detail-color, #6b6b6b);text-align:left;}.elapsed.svelte-uzfrw6 {flex-shrink:0;font-variant-numeric:tabular-nums;color:var(--thinking-indicator-elapsed-color, #4b5563);font-size:var(--thinking-indicator-elapsed-font-size, 0.75rem);}\n\n /* ---- Trace body (rows?: ThinkingIndicatorTraceRow[]) ---- */\n\n /* Wrapper exists only to carry `inert` while the Accordion has it collapsed —\n no box of its own, so it can't disturb the detail/trace layout it wraps. */.thinking-indicator-body.svelte-uzfrw6 {display:contents;}.trace-query-wrap.svelte-uzfrw6 {display:inline-flex;margin:var(--thinking-indicator-trace-query-margin, 10px 0 0);--pill-width: auto;--pill-justify-content: flex-start;--pill-cursor: default;--pill-gap: 6px;--pill-background: var(--thinking-indicator-trace-query-background, #f1f1f1);--pill-color: var(--thinking-indicator-trace-query-color, #6b6b6b);--pill-border-radius: var(--thinking-indicator-trace-query-radius, 999px);--pill-padding: var(--thinking-indicator-trace-query-padding, 3px 11px);--pill-font-size: var(--thinking-indicator-trace-query-font-size, 0.8125rem);--pill-font-weight: 400;}.trace-query-wrap.svelte-uzfrw6 svg {width:11px;height:11px;}.trace-body.svelte-uzfrw6 {display:flex;gap:var(--thinking-indicator-trace-body-gap, 12px);padding-top:var(--thinking-indicator-trace-body-padding-top, 10px);}.trace-connector.svelte-uzfrw6 {width:2px;border-radius:999px;background:var(--thinking-indicator-trace-connector-color, #dcdcdc);margin-left:6px;flex-shrink:0;transition:height 500ms\n var(--thinking-indicator-trace-ease, var(--ease-smooth-out, cubic-bezier(0.23, 1, 0.32, 1)));}.trace-rows.svelte-uzfrw6 {flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--thinking-indicator-trace-row-gap, 7px);align-self:flex-start;}.trace-row.svelte-uzfrw6 {display:flex;align-items:baseline;gap:8px;font-size:var(--thinking-indicator-trace-row-font-size, 0.8125rem);color:var(--thinking-indicator-trace-row-color, #2b2b2b);\n animation: svelte-uzfrw6-thinking-indicator-fade-up 320ms\n var(--thinking-indicator-trace-ease, var(--ease-smooth-out, cubic-bezier(0.23, 1, 0.32, 1)))\n both;text-decoration:none;}.trace-row.prose.svelte-uzfrw6 {color:var(--thinking-indicator-trace-prose-color, #6b6b6b);}.trace-row.selectable.svelte-uzfrw6 {border:none;background:none;font:inherit;text-align:left;padding:3px 6px;margin:-3px -6px;border-radius:var(--thinking-indicator-trace-row-radius, 6px);cursor:pointer;transition:background\n var(--thinking-indicator-trace-row-transition-duration, var(--motion-duration, 150ms))\n var(--thinking-indicator-trace-row-transition-easing, var(--motion-easing, ease));width:calc(100% + 12px);}.trace-row.selectable.svelte-uzfrw6:hover {background:var(--thinking-indicator-trace-row-hover-background, #f4f4f4);}.trace-row.selectable.selected.svelte-uzfrw6 {background:var(--thinking-indicator-trace-row-selected-background, #ececec);}.trace-row.linked.svelte-uzfrw6:hover .row-primary:where(.svelte-uzfrw6) {text-decoration:underline;}.row-primary.svelte-uzfrw6 {font-weight:var(--thinking-indicator-trace-row-weight, 500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.row-secondary.svelte-uzfrw6 {color:var(--thinking-indicator-trace-secondary-color, #4b5563);font-size:var(--thinking-indicator-trace-secondary-font-size, 0.75rem);white-space:nowrap;}.row-secondary.mono.svelte-uzfrw6 {font-family:var(--thinking-indicator-trace-mono-font, ui-monospace, Menlo, monospace);}\n\n /* Steps kind: a static check icon, or — on the frontier row while busy — the\n library Loader, recoloured/resized to match the row's small icon footprint. */.row-icon.svelte-uzfrw6 {display:inline-flex;align-self:center;width:14px;flex-shrink:0;color:var(--thinking-indicator-trace-icon-color, #9a9a9a);--loader-width: var(--thinking-indicator-trace-spinner-size, 11px);--loader-height: var(--thinking-indicator-trace-spinner-size, 11px);--loader-before-width: 5px;--loader-before-height: 5px;--loader-after-width: 8px;--loader-after-height: 8px;--loader-foreground: var(--thinking-indicator-trace-spinner-color, #6b6b6b);--loader-foreground-end: var(--thinking-indicator-trace-spinner-color-end, transparent);--loader-background: var(--thinking-indicator-trace-spinner-track-color, #dcdcdc);}.row-icon.svelte-uzfrw6 svg:where(.svelte-uzfrw6) {width:12px;height:12px;}.row-badge.svelte-uzfrw6 {width:15px;height:15px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;color:var(--thinking-indicator-trace-badge-check-color, #fff);flex-shrink:0;align-self:center;}.row-badge[data-tone='1'].svelte-uzfrw6 {background:var(--thinking-indicator-trace-tone-1, #2f6fec);}.row-badge[data-tone='2'].svelte-uzfrw6 {background:var(--thinking-indicator-trace-tone-2, #e56d24);}.row-badge[data-tone='3'].svelte-uzfrw6 {background:var(--thinking-indicator-trace-tone-3, #1f7a5f);}.row-badge.svelte-uzfrw6 svg:where(.svelte-uzfrw6) {width:9px;height:9px;}.row-diffstat.svelte-uzfrw6 {margin-left:auto;font-family:var(--thinking-indicator-trace-mono-font, ui-monospace, Menlo, monospace);font-size:0.75rem;font-variant-numeric:tabular-nums;white-space:nowrap;display:inline-flex;gap:5px;}.row-diffstat.svelte-uzfrw6 .added:where(.svelte-uzfrw6) {color:var(--thinking-indicator-trace-added-color, #1f7a5f);}.row-diffstat.svelte-uzfrw6 .removed:where(.svelte-uzfrw6) {color:var(--thinking-indicator-trace-removed-color, #c93f38);}.trace-more.svelte-uzfrw6 {font-size:var(--thinking-indicator-trace-more-font-size, 0.75rem);color:var(--thinking-indicator-trace-more-color, #9a9a9a);padding:6px 0 0 22px;\n animation: svelte-uzfrw6-thinking-indicator-fade-in\n var(--thinking-indicator-trace-more-animation-duration, var(--motion-duration, 300ms))\n var(--thinking-indicator-trace-more-animation-easing, var(--motion-easing, ease)) both;}\n\n @media (prefers-reduced-motion: reduce) {.status-label.svelte-uzfrw6,\n .chip-label.svelte-uzfrw6,\n .trace-row.svelte-uzfrw6,\n .trace-more.svelte-uzfrw6 {animation-duration:0.001s;}.expandable.svelte-uzfrw6,\n .trace-connector.svelte-uzfrw6,\n .arrow.svelte-uzfrw6 {transition-duration:0.001s;}.status-label.svelte-uzfrw6 {\n animation: none;-webkit-text-fill-color:var(--thinking-indicator-label-color, #858585);}.chip-label.svelte-uzfrw6 {\n animation: none;-webkit-text-fill-color:var(--thinking-indicator-chip-color, #52525b);}\n }"
51849
52049
  };
51850
52050
  function ThinkingIndicator(e, t) {
51851
52051
  push(t, !0), append_styles$1(e, $$css$30);
@@ -54164,7 +54364,7 @@ customElements.define("sui-chat-tool-status", create_custom_element(ChatToolStat
54164
54364
  //#region src/lib/assets/chat.svg?raw
54165
54365
  var chat_default = "<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z\" />\n</svg>\n", root_1$6 = /* @__PURE__ */ from_html("<div class=\"panel svelte-15b7gm8\" role=\"dialog\" tabindex=\"-1\"><!></div>"), root_2$4 = /* @__PURE__ */ from_html("<div class=\"panel-anchor svelte-15b7gm8\"><!></div>"), root_3$4 = /* @__PURE__ */ from_html("<div><!> <div class=\"launcher svelte-15b7gm8\"><!></div></div>"), $$css$18 = {
54166
54366
  hash: "svelte-15b7gm8",
54167
- code: ".chat-bubble.svelte-15b7gm8 {position:fixed;z-index:var(--chat-bubble-z-index, 1000);transition:var(--chat-bubble-snap-transition, transform 0.28s cubic-bezier(0.22, 1, 0.36, 1));}.chat-bubble.dragging.svelte-15b7gm8 {transition:none;}.chat-bubble[data-position='bottom-right'].svelte-15b7gm8 {right:var(--chat-bubble-offset-x, 24px);bottom:var(--chat-bubble-offset-y, 24px);}.chat-bubble[data-position='bottom-left'].svelte-15b7gm8 {left:var(--chat-bubble-offset-x, 24px);bottom:var(--chat-bubble-offset-y, 24px);}.chat-bubble[data-position='top-right'].svelte-15b7gm8 {right:var(--chat-bubble-offset-x, 24px);top:var(--chat-bubble-offset-y, 24px);}.chat-bubble[data-position='top-left'].svelte-15b7gm8 {left:var(--chat-bubble-offset-x, 24px);top:var(--chat-bubble-offset-y, 24px);}.panel-anchor.svelte-15b7gm8 {position:absolute;--resizable-handle-color: var(--chat-bubble-resize-handle-color, transparent);--resizable-transition: var(\n --chat-bubble-expand-transition,\n width 0.32s cubic-bezier(0.22, 1, 0.36, 1),\n height 0.32s cubic-bezier(0.22, 1, 0.36, 1)\n );}.chat-bubble[data-effective-vertical='bottom'].svelte-15b7gm8 .panel-anchor:where(.svelte-15b7gm8) {bottom:calc(100% + var(--chat-bubble-panel-gap, 16px));}.chat-bubble[data-effective-vertical='top'].svelte-15b7gm8 .panel-anchor:where(.svelte-15b7gm8) {top:calc(100% + var(--chat-bubble-panel-gap, 16px));}.chat-bubble[data-effective-side='right'].svelte-15b7gm8 .panel-anchor:where(.svelte-15b7gm8) {right:0;}.chat-bubble[data-effective-side='left'].svelte-15b7gm8 .panel-anchor:where(.svelte-15b7gm8) {left:0;}.panel.svelte-15b7gm8 {box-sizing:border-box;width:100%;height:100%;max-width:var(--chat-bubble-panel-max-width, calc(100vw - 32px));max-height:var(--chat-bubble-panel-max-height, calc(100dvh - 120px));border-radius:var(--chat-bubble-panel-border-radius, 16px);overflow:hidden;background:var(--chat-bubble-panel-background, #ffffff);box-shadow:var(--chat-bubble-panel-box-shadow, 0 16px 48px rgba(0, 0, 0, 0.22));outline:none;}\n\n /* setOpen() (see script) calls panel.focus() directly on open, and the panel\n -- not a child -- is the Tab-trap's own boundary, so removing its outline\n unconditionally left a keyboard user with no visible sign focus had moved\n into the launcher's panel at all. :focus-visible restores a ring only for\n keyboard/programmatic focus, so the launcher click that opens the panel\n shows nothing new. Matches Sheet's sheet-panel fix for the identical\n shape of problem. */.panel.svelte-15b7gm8:focus-visible {outline:var(--chat-bubble-panel-focus-outline, 2px solid #2563eb);outline-offset:var(--chat-bubble-panel-focus-outline-offset, -2px);}.launcher.svelte-15b7gm8 {--button-width: var(--chat-bubble-width, var(--chat-bubble-size, 56px));--button-height: var(--chat-bubble-height, var(--chat-bubble-size, 56px));--button-padding: var(--chat-bubble-padding, 16px);--button-border-radius: var(--chat-bubble-border-radius, 50%);--button-color: var(--chat-bubble-background-color, #18181b);--button-text-color: var(--chat-bubble-color, #ffffff);\n /* Button spaces its icon from its label with this gap. The launcher renders an\n icon alone inside a circle, so that gap would push the glyph off-centre --\n reset to 0 here rather than in Button, whose default is right for a labelled\n button. docs/ChatBubble.md records this as a pill-launcher caveat. */--button-content-gap: 0px;--button-box-shadow: var(--chat-bubble-box-shadow, 0 8px 24px rgba(0, 0, 0, 0.25));--button-hover-color: var(--chat-bubble-hover-background-color, #27272a);}.chat-bubble.is-draggable.svelte-15b7gm8 .launcher:where(.svelte-15b7gm8) {--cursor: grab;touch-action:none;}.chat-bubble.is-draggable.dragging.svelte-15b7gm8 .launcher:where(.svelte-15b7gm8) {--cursor: grabbing;}.launcher.svelte-15b7gm8 svg {height:100%;width:100%;}\n\n @media (prefers-reduced-motion: reduce) {.chat-bubble.svelte-15b7gm8 {transition:none;}\n }"
54367
+ code: ".chat-bubble.svelte-15b7gm8 {position:fixed;z-index:var(--chat-bubble-z-index, 1000);transition:var(\n --chat-bubble-snap-transition,\n transform 0.28s\n var(\n --chat-bubble-snap-transition-easing,\n var(--ease-smooth-out, cubic-bezier(0.23, 1, 0.32, 1))\n )\n );}.chat-bubble.dragging.svelte-15b7gm8 {transition:none;}.chat-bubble[data-position='bottom-right'].svelte-15b7gm8 {right:var(--chat-bubble-offset-x, 24px);bottom:var(--chat-bubble-offset-y, 24px);}.chat-bubble[data-position='bottom-left'].svelte-15b7gm8 {left:var(--chat-bubble-offset-x, 24px);bottom:var(--chat-bubble-offset-y, 24px);}.chat-bubble[data-position='top-right'].svelte-15b7gm8 {right:var(--chat-bubble-offset-x, 24px);top:var(--chat-bubble-offset-y, 24px);}.chat-bubble[data-position='top-left'].svelte-15b7gm8 {left:var(--chat-bubble-offset-x, 24px);top:var(--chat-bubble-offset-y, 24px);}.panel-anchor.svelte-15b7gm8 {position:absolute;--resizable-handle-color: var(--chat-bubble-resize-handle-color, transparent);--resizable-transition: var(\n --chat-bubble-expand-transition,\n width 0.32s\n var(\n --chat-bubble-expand-transition-easing,\n var(--ease-smooth-out, cubic-bezier(0.23, 1, 0.32, 1))\n ),\n height 0.32s\n var(\n --chat-bubble-expand-transition-easing,\n var(--ease-smooth-out, cubic-bezier(0.23, 1, 0.32, 1))\n )\n );}.chat-bubble[data-effective-vertical='bottom'].svelte-15b7gm8 .panel-anchor:where(.svelte-15b7gm8) {bottom:calc(100% + var(--chat-bubble-panel-gap, 16px));}.chat-bubble[data-effective-vertical='top'].svelte-15b7gm8 .panel-anchor:where(.svelte-15b7gm8) {top:calc(100% + var(--chat-bubble-panel-gap, 16px));}.chat-bubble[data-effective-side='right'].svelte-15b7gm8 .panel-anchor:where(.svelte-15b7gm8) {right:0;}.chat-bubble[data-effective-side='left'].svelte-15b7gm8 .panel-anchor:where(.svelte-15b7gm8) {left:0;}.panel.svelte-15b7gm8 {box-sizing:border-box;width:100%;height:100%;max-width:var(--chat-bubble-panel-max-width, calc(100vw - 32px));max-height:var(--chat-bubble-panel-max-height, calc(100dvh - 120px));border-radius:var(--chat-bubble-panel-border-radius, 16px);overflow:hidden;background:var(--chat-bubble-panel-background, #ffffff);box-shadow:var(--chat-bubble-panel-box-shadow, 0 16px 48px rgba(0, 0, 0, 0.22));outline:none;}\n\n /* setOpen() (see script) calls panel.focus() directly on open, and the panel\n -- not a child -- is the Tab-trap's own boundary, so removing its outline\n unconditionally left a keyboard user with no visible sign focus had moved\n into the launcher's panel at all. :focus-visible restores a ring only for\n keyboard/programmatic focus, so the launcher click that opens the panel\n shows nothing new. Matches Sheet's sheet-panel fix for the identical\n shape of problem. */.panel.svelte-15b7gm8:focus-visible {outline:var(--chat-bubble-panel-focus-outline, 2px solid #2563eb);outline-offset:var(--chat-bubble-panel-focus-outline-offset, -2px);}.launcher.svelte-15b7gm8 {--button-width: var(--chat-bubble-width, var(--chat-bubble-size, 56px));--button-height: var(--chat-bubble-height, var(--chat-bubble-size, 56px));--button-padding: var(--chat-bubble-padding, 16px);--button-border-radius: var(--chat-bubble-border-radius, 50%);--button-color: var(--chat-bubble-background-color, #18181b);--button-text-color: var(--chat-bubble-color, #ffffff);\n /* Button spaces its icon from its label with this gap. The launcher renders an\n icon alone inside a circle, so that gap would push the glyph off-centre --\n reset to 0 here rather than in Button, whose default is right for a labelled\n button. docs/ChatBubble.md records this as a pill-launcher caveat. */--button-content-gap: 0px;--button-box-shadow: var(--chat-bubble-box-shadow, 0 8px 24px rgba(0, 0, 0, 0.25));--button-hover-color: var(--chat-bubble-hover-background-color, #27272a);}.chat-bubble.is-draggable.svelte-15b7gm8 .launcher:where(.svelte-15b7gm8) {--cursor: grab;touch-action:none;}.chat-bubble.is-draggable.dragging.svelte-15b7gm8 .launcher:where(.svelte-15b7gm8) {--cursor: grabbing;}.launcher.svelte-15b7gm8 svg {height:100%;width:100%;}\n\n @media (prefers-reduced-motion: reduce) {.chat-bubble.svelte-15b7gm8 {transition:none;}\n }"
54168
54368
  };
54169
54369
  function ChatBubble(e, t) {
54170
54370
  push(t, !0), append_styles$1(e, $$css$18);
@@ -54703,7 +54903,7 @@ var diffstatBadges = (e, t = noop) => {
54703
54903
  }), append(e, n);
54704
54904
  }, root_1$5 = /* @__PURE__ */ from_html("<span class=\"diffstat-pill diffstat-added svelte-1vnfzde\"><!></span>"), root_2$3 = /* @__PURE__ */ from_html("<span class=\"diffstat-pill diffstat-removed svelte-1vnfzde\"><!></span>"), root_3$3 = /* @__PURE__ */ from_html("<!> <!>", 1), root_4$3 = /* @__PURE__ */ from_html("<span class=\"chip-spinner svelte-1vnfzde\" aria-hidden=\"true\"><!></span>"), root_5$2 = /* @__PURE__ */ from_html("<span> </span>"), root_6$2 = /* @__PURE__ */ from_html("<span class=\"diffstat chip-diffstat svelte-1vnfzde\"><!></span>"), root_7$2 = /* @__PURE__ */ from_html("<span class=\"diffstat popover-diffstat svelte-1vnfzde\"><!></span>"), root_8$2 = /* @__PURE__ */ from_html("<div class=\"chip-popover svelte-1vnfzde\" role=\"dialog\" tabindex=\"-1\"><p> </p> <!></div>"), root_9$1 = /* @__PURE__ */ from_html("<div class=\"chip-wrap\"><button type=\"button\"><!> <b class=\"chip-label svelte-1vnfzde\"> </b> <!> <!></button> <!></div>"), root_10$1 = /* @__PURE__ */ from_html("<div></div>"), $$css$16 = {
54705
54905
  hash: "svelte-1vnfzde",
54706
- code: "\n @keyframes svelte-1vnfzde-tool-call-log-fade-up {\n from {\n opacity: 0;\n transform: translateY(9px);\n }\n to {\n opacity: 1;\n transform: none;\n }\n }.tool-call-log.svelte-1vnfzde {display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--tool-call-log-gap, 8px);}\n\n /* Bespoke <button> markup (Pill's root is a non-interactive <div> and can't carry\n aria-expanded/button semantics — see docs), but its sizing recipe is deliberately\n pulled from Pill's own tokens (line-height, cursor) so it reads as the same family\n of control as the diffstat Pill badges nested inside it. */.chip.svelte-1vnfzde {display:inline-flex;align-items:center;gap:var(--tool-call-log-chip-gap, 6px);padding:var(--tool-call-log-chip-padding, 6px 10px);background:var(--tool-call-log-chip-background, #fafafa);border:var(--tool-call-log-chip-border, 1px solid #e4e4e7);border-radius:var(--tool-call-log-chip-radius, 6px);font:inherit;font-size:var(--tool-call-log-font-size, 0.8125rem);line-height:var(--tool-call-log-chip-line-height, 1);color:var(--tool-call-log-label-color, #2b2b2b);cursor:var(--tool-call-log-chip-cursor, pointer);max-width:100%;\n animation: svelte-1vnfzde-tool-call-log-fade-up\n var(--tool-call-log-chip-animation-duration, var(--motion-duration, 320ms))\n var(--tool-call-log-ease, var(--motion-easing, cubic-bezier(0.23, 1, 0.32, 1))) both;transition:background var(--tool-call-log-chip-transition-duration, var(--motion-duration, 150ms))\n var(--tool-call-log-chip-transition-easing, var(--motion-easing, ease)),\n border-color var(--tool-call-log-chip-transition-duration, var(--motion-duration, 150ms))\n var(--tool-call-log-chip-transition-easing, var(--motion-easing, ease));}.chip.svelte-1vnfzde:hover {background:var(--tool-call-log-chip-hover-background, #f1f1f1);}.chip[aria-expanded='true'].svelte-1vnfzde {border-color:var(--tool-call-log-chip-open-border-color, #c7c7cc);}.chip.error.svelte-1vnfzde {color:var(--tool-call-log-error-color, #9f2d27);border-color:var(--tool-call-log-error-border-color, #f2b8b5);background:var(--tool-call-log-error-background, #fdf1f0);}.chip.error.svelte-1vnfzde:hover {background:var(--tool-call-log-error-hover-background, #fbe6e5);}.chip-label.svelte-1vnfzde {font-weight:var(--tool-call-log-label-weight, 500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.chip-meta.svelte-1vnfzde {color:var(--tool-call-log-meta-color, #666666);font-size:var(--tool-call-log-meta-font-size, 0.75rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.chip-meta.mono.svelte-1vnfzde {font-family:var(--tool-call-log-mono-font, ui-monospace, Menlo, monospace);}\n\n /* Sizes and colors the nested library Loader via CSS custom-property\n inheritance (no :global() needed — Loader is a plain DOM descendant of\n this span, same pattern as ThinkingIndicator's `.avatar`). Loader itself\n ships no literal fallback for --loader-foreground/-foreground-end/\n -background, so all three are set explicitly here rather than left to\n chance. */.chip-spinner.svelte-1vnfzde {display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;--loader-width: var(--tool-call-log-spinner-size, 11px);--loader-height: var(--tool-call-log-spinner-size, 11px);--loader-before-width: 5px;--loader-before-height: 5px;--loader-after-width: 8px;--loader-after-height: 8px;--loader-foreground: var(--tool-call-log-spinner-color, #6b6b6b);--loader-foreground-end: var(--tool-call-log-spinner-track-color, #dcdcdc);--loader-background: var(--tool-call-log-chip-background, #fafafa);}.diffstat.svelte-1vnfzde {display:inline-flex;align-items:center;gap:4px;font-variant-numeric:tabular-nums;flex-shrink:0;}.chip-diffstat.svelte-1vnfzde {margin-left:var(--tool-call-log-diffstat-margin, 2px);}\n\n /* Pill customized into the small diffstat badge via its own --pill-* tokens\n (inherited the same way — Pill is a plain descendant of this span). Pill\n defaults `cursor` to `pointer` even when non-interactive, so it is pinned\n back to `default` here: these badges carry no onclick. */.diffstat-pill.svelte-1vnfzde {display:inline-flex;--pill-padding: var(--tool-call-log-diffstat-padding, 0 4px);--pill-border-radius: var(--tool-call-log-diffstat-radius, 4px);--pill-font-size: var(--tool-call-log-diffstat-font-size, 0.6875rem);--pill-font-family: var(--tool-call-log-mono-font, ui-monospace, Menlo, monospace);--pill-line-height: 1;--pill-cursor: default;}.diffstat-added.svelte-1vnfzde {--pill-background: var(--tool-call-log-added-background, #e4f5ee);--pill-color: var(--tool-call-log-added-color, #1f7a5f);}.diffstat-removed.svelte-1vnfzde {--pill-background: var(--tool-call-log-removed-background, #fbeceb);--pill-color: var(--tool-call-log-removed-color, #a8302a);}\n\n /* `position: fixed` is the baseline rather than a portal-only override —\n left/top/z-index come from the inline `popoverStyle`, computed against the\n live anchor rect, and that is viewport-relative in both portal modes. So\n `usePortal={false}` (see `popoverPortal`) changes only which ancestors can\n clip the popover, never how it is placed. */.chip-popover.svelte-1vnfzde {position:fixed;z-index:var(--tool-call-log-popover-z-index, 1000);display:flex;flex-direction:column;gap:var(--tool-call-log-popover-gap, 6px);min-width:var(--tool-call-log-popover-min-width, 220px);max-width:var(--tool-call-log-popover-max-width, 340px);padding:var(--tool-call-log-popover-padding, 10px 12px);background:var(--tool-call-log-popover-background, #ffffff);border:var(--tool-call-log-popover-border, 1px solid #e4e4e7);border-radius:var(--tool-call-log-popover-radius, 10px);box-shadow:var(--tool-call-log-popover-shadow, 0 10px 30px rgba(0, 0, 0, 0.12));\n animation: svelte-1vnfzde-tool-call-log-fade-up\n var(--tool-call-log-popover-animation-duration, var(--motion-duration, 200ms))\n var(--tool-call-log-ease, var(--motion-easing, cubic-bezier(0.23, 1, 0.32, 1))) both;}.popover-detail.svelte-1vnfzde {margin:0;color:var(--tool-call-log-popover-color, #2b2b2b);font-size:var(--tool-call-log-popover-font-size, 0.8125rem);white-space:pre-wrap;overflow-wrap:anywhere;}.popover-detail.mono.svelte-1vnfzde {font-family:var(--tool-call-log-mono-font, ui-monospace, Menlo, monospace);}\n\n @media (prefers-reduced-motion: reduce) {.chip.svelte-1vnfzde,\n .chip-popover.svelte-1vnfzde {animation-duration:0.001s;}\n /* Loader's own spin keyframe lives on its internally-scoped `.loader`\n class, which this file cannot reach with a plain scoped selector —\n :global() is required to disable it, same pattern as `.pill-dismiss\n :global(svg)` elsewhere in the library. Loader ships no\n reduced-motion guard of its own. */.chip-spinner.svelte-1vnfzde .loader {\n animation: none;}\n }"
54906
+ code: "\n @keyframes svelte-1vnfzde-tool-call-log-fade-up {\n from {\n opacity: 0;\n transform: translateY(9px);\n }\n to {\n opacity: 1;\n transform: none;\n }\n }.tool-call-log.svelte-1vnfzde {display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--tool-call-log-gap, 8px);}\n\n /* Bespoke <button> markup (Pill's root is a non-interactive <div> and can't carry\n aria-expanded/button semantics — see docs), but its sizing recipe is deliberately\n pulled from Pill's own tokens (line-height, cursor) so it reads as the same family\n of control as the diffstat Pill badges nested inside it. */.chip.svelte-1vnfzde {display:inline-flex;align-items:center;gap:var(--tool-call-log-chip-gap, 6px);padding:var(--tool-call-log-chip-padding, 6px 10px);background:var(--tool-call-log-chip-background, #fafafa);border:var(--tool-call-log-chip-border, 1px solid #e4e4e7);border-radius:var(--tool-call-log-chip-radius, 6px);font:inherit;font-size:var(--tool-call-log-font-size, 0.8125rem);line-height:var(--tool-call-log-chip-line-height, 1);color:var(--tool-call-log-label-color, #2b2b2b);cursor:var(--tool-call-log-chip-cursor, pointer);max-width:100%;\n animation: svelte-1vnfzde-tool-call-log-fade-up\n var(--tool-call-log-chip-animation-duration, var(--motion-duration, 320ms))\n var(\n --tool-call-log-ease,\n var(--ease-smooth-out, var(--motion-easing, cubic-bezier(0.23, 1, 0.32, 1)))\n )\n both;transition:background var(--tool-call-log-chip-transition-duration, var(--motion-duration, 150ms))\n var(--tool-call-log-chip-transition-easing, var(--motion-easing, ease)),\n border-color var(--tool-call-log-chip-transition-duration, var(--motion-duration, 150ms))\n var(--tool-call-log-chip-transition-easing, var(--motion-easing, ease));}.chip.svelte-1vnfzde:hover {background:var(--tool-call-log-chip-hover-background, #f1f1f1);}.chip[aria-expanded='true'].svelte-1vnfzde {border-color:var(--tool-call-log-chip-open-border-color, #c7c7cc);}.chip.error.svelte-1vnfzde {color:var(--tool-call-log-error-color, #9f2d27);border-color:var(--tool-call-log-error-border-color, #f2b8b5);background:var(--tool-call-log-error-background, #fdf1f0);}.chip.error.svelte-1vnfzde:hover {background:var(--tool-call-log-error-hover-background, #fbe6e5);}.chip-label.svelte-1vnfzde {font-weight:var(--tool-call-log-label-weight, 500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.chip-meta.svelte-1vnfzde {color:var(--tool-call-log-meta-color, #666666);font-size:var(--tool-call-log-meta-font-size, 0.75rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.chip-meta.mono.svelte-1vnfzde {font-family:var(--tool-call-log-mono-font, ui-monospace, Menlo, monospace);}\n\n /* Sizes and colors the nested library Loader via CSS custom-property\n inheritance (no :global() needed — Loader is a plain DOM descendant of\n this span, same pattern as ThinkingIndicator's `.avatar`). Loader itself\n ships no literal fallback for --loader-foreground/-foreground-end/\n -background, so all three are set explicitly here rather than left to\n chance. */.chip-spinner.svelte-1vnfzde {display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;--loader-width: var(--tool-call-log-spinner-size, 11px);--loader-height: var(--tool-call-log-spinner-size, 11px);--loader-before-width: 5px;--loader-before-height: 5px;--loader-after-width: 8px;--loader-after-height: 8px;--loader-foreground: var(--tool-call-log-spinner-color, #6b6b6b);--loader-foreground-end: var(--tool-call-log-spinner-track-color, #dcdcdc);--loader-background: var(--tool-call-log-chip-background, #fafafa);}.diffstat.svelte-1vnfzde {display:inline-flex;align-items:center;gap:4px;font-variant-numeric:tabular-nums;flex-shrink:0;}.chip-diffstat.svelte-1vnfzde {margin-left:var(--tool-call-log-diffstat-margin, 2px);}\n\n /* Pill customized into the small diffstat badge via its own --pill-* tokens\n (inherited the same way — Pill is a plain descendant of this span). Pill\n defaults `cursor` to `pointer` even when non-interactive, so it is pinned\n back to `default` here: these badges carry no onclick. */.diffstat-pill.svelte-1vnfzde {display:inline-flex;--pill-padding: var(--tool-call-log-diffstat-padding, 0 4px);--pill-border-radius: var(--tool-call-log-diffstat-radius, 4px);--pill-font-size: var(--tool-call-log-diffstat-font-size, 0.6875rem);--pill-font-family: var(--tool-call-log-mono-font, ui-monospace, Menlo, monospace);--pill-line-height: 1;--pill-cursor: default;}.diffstat-added.svelte-1vnfzde {--pill-background: var(--tool-call-log-added-background, #e4f5ee);--pill-color: var(--tool-call-log-added-color, #1f7a5f);}.diffstat-removed.svelte-1vnfzde {--pill-background: var(--tool-call-log-removed-background, #fbeceb);--pill-color: var(--tool-call-log-removed-color, #a8302a);}\n\n /* `position: fixed` is the baseline rather than a portal-only override —\n left/top/z-index come from the inline `popoverStyle`, computed against the\n live anchor rect, and that is viewport-relative in both portal modes. So\n `usePortal={false}` (see `popoverPortal`) changes only which ancestors can\n clip the popover, never how it is placed. */.chip-popover.svelte-1vnfzde {position:fixed;z-index:var(--tool-call-log-popover-z-index, 1000);display:flex;flex-direction:column;gap:var(--tool-call-log-popover-gap, 6px);min-width:var(--tool-call-log-popover-min-width, 220px);max-width:var(--tool-call-log-popover-max-width, 340px);padding:var(--tool-call-log-popover-padding, 10px 12px);background:var(--tool-call-log-popover-background, #ffffff);border:var(--tool-call-log-popover-border, 1px solid #e4e4e7);border-radius:var(--tool-call-log-popover-radius, 10px);box-shadow:var(--tool-call-log-popover-shadow, 0 10px 30px rgba(0, 0, 0, 0.12));\n animation: svelte-1vnfzde-tool-call-log-fade-up\n var(--tool-call-log-popover-animation-duration, var(--motion-duration, 200ms))\n var(\n --tool-call-log-ease,\n var(--ease-smooth-out, var(--motion-easing, cubic-bezier(0.23, 1, 0.32, 1)))\n )\n both;}.popover-detail.svelte-1vnfzde {margin:0;color:var(--tool-call-log-popover-color, #2b2b2b);font-size:var(--tool-call-log-popover-font-size, 0.8125rem);white-space:pre-wrap;overflow-wrap:anywhere;}.popover-detail.mono.svelte-1vnfzde {font-family:var(--tool-call-log-mono-font, ui-monospace, Menlo, monospace);}\n\n @media (prefers-reduced-motion: reduce) {.chip.svelte-1vnfzde,\n .chip-popover.svelte-1vnfzde {animation-duration:0.001s;}\n /* Loader's own spin keyframe lives on its internally-scoped `.loader`\n class, which this file cannot reach with a plain scoped selector —\n :global() is required to disable it, same pattern as `.pill-dismiss\n :global(svg)` elsewhere in the library. Loader ships no\n reduced-motion guard of its own. */.chip-spinner.svelte-1vnfzde .loader {\n animation: none;}\n }"
54707
54907
  };
54708
54908
  function ToolCallLog(e, t) {
54709
54909
  push(t, !0), append_styles$1(e, $$css$16);
@@ -54895,7 +55095,7 @@ customElements.define("sui-tool-call-log", create_custom_element(ToolCallLog_wc,
54895
55095
  //#region src/lib/TaskList/TaskList.svelte
54896
55096
  var root$5 = /* @__PURE__ */ from_html("<span class=\"glyph-dot svelte-1te9fae\"></span>"), root_1$4 = /* @__PURE__ */ from_html("<span class=\"glyph-spinner svelte-1te9fae\"><!></span>"), root_2$2 = /* @__PURE__ */ from_html("<span class=\"glyph-check svelte-1te9fae\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"svelte-1te9fae\"><path d=\"M20 6 9 17l-5-5\"></path></svg></span>"), root_3$2 = /* @__PURE__ */ from_html("<span class=\"glyph-x svelte-1te9fae\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"svelte-1te9fae\"><path d=\"M6 6l12 12M18 6 6 18\"></path></svg></span>"), root_4$2 = /* @__PURE__ */ from_html("<span class=\"glyph-inner svelte-1te9fae\" aria-hidden=\"true\"><!></span>"), root_5$1 = /* @__PURE__ */ from_html("<span> </span>"), root_6$1 = /* @__PURE__ */ from_html("<div class=\"row-retry svelte-1te9fae\"><!></div>"), root_7$1 = /* @__PURE__ */ from_html("<div><span class=\"row-glyph svelte-1te9fae\"><!></span> <span class=\"row-text svelte-1te9fae\"><span class=\"row-label svelte-1te9fae\"> </span> <!></span> <!></div>"), root_8$1 = /* @__PURE__ */ from_html("<div></div>"), $$css$14 = {
54897
55097
  hash: "svelte-1te9fae",
54898
- code: "\n @keyframes svelte-1te9fae-task-list-fade-up {\n from {\n opacity: 0;\n transform: translateY(9px);\n }\n to {\n opacity: 1;\n transform: none;\n }\n }\n @keyframes svelte-1te9fae-task-list-glyph-fade {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n @keyframes svelte-1te9fae-task-list-check-pop {\n from {\n opacity: 0;\n transform: scale(0.5);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n }.task-list.svelte-1te9fae {display:flex;flex-direction:column;gap:var(--task-list-row-gap, 10px);}.task-row.svelte-1te9fae {display:flex;align-items:baseline;gap:var(--task-list-row-inline-gap, 10px);\n /* --task-list-ease was an easing-only token (DESIGN_PRINCIPLES.md motion\n convention) — kept working unchanged, now paired with a duration token\n and both fall back through the library-wide --motion-* tokens. */\n animation: svelte-1te9fae-task-list-fade-up\n var(--task-list-row-animation-duration, var(--motion-duration, 320ms))\n var(--task-list-ease, var(--motion-easing, cubic-bezier(0.23, 1, 0.32, 1))) both;}.row-glyph.svelte-1te9fae {display:inline-flex;align-self:center;align-items:center;justify-content:center;width:var(--task-list-glyph-size, 16px);height:var(--task-list-glyph-size, 16px);flex-shrink:0;}.glyph-inner.svelte-1te9fae {display:inline-flex;align-items:center;justify-content:center;\n animation: svelte-1te9fae-task-list-glyph-fade\n var(--task-list-glyph-animation-duration, var(--motion-duration, 150ms))\n var(--task-list-glyph-animation-easing, var(--motion-easing, ease)) both;}.glyph-dot.svelte-1te9fae {width:6px;height:6px;border-radius:50%;background:var(--task-list-dot-color, #9a9a9a);}\n\n /* Loader draws its own ring via a rotating gradient rather than a bordered arc, so the old\n track/spinner two-tone maps onto the gradient's start/end stops: --loader-foreground is the\n bright leading edge, --loader-foreground-end the dimmer trailing one. The size vars are\n calc()'d off a single token so before/after stay proportional if a consumer overrides it. */.glyph-spinner.svelte-1te9fae {display:inline-flex;--loader-foreground: var(--task-list-spinner-color, #6b6b6b);--loader-foreground-end: var(--task-list-spinner-track-color, #dcdcdc);--loader-width: var(--task-list-spinner-size, 11px);--loader-height: var(--task-list-spinner-size, 11px);--loader-before-width: calc(var(--task-list-spinner-size, 11px) * 0.5);--loader-before-height: calc(var(--task-list-spinner-size, 11px) * 0.5);--loader-after-width: calc(var(--task-list-spinner-size, 11px) * 0.75);--loader-after-height: calc(var(--task-list-spinner-size, 11px) * 0.75);}.glyph-check.svelte-1te9fae,\n .glyph-x.svelte-1te9fae {display:inline-flex;}.glyph-check.svelte-1te9fae svg:where(.svelte-1te9fae),\n .glyph-x.svelte-1te9fae svg:where(.svelte-1te9fae) {width:12px;height:12px;}.glyph-check.svelte-1te9fae {color:var(--task-list-done-color, #6b6b6b);\n animation: svelte-1te9fae-task-list-check-pop\n var(--task-list-check-pop-animation-duration, var(--motion-duration, 200ms))\n var(--task-list-ease, var(--motion-easing, cubic-bezier(0.23, 1, 0.32, 1))) both;}.glyph-x.svelte-1te9fae {color:var(--task-list-error-color, #c93f38);}.row-text.svelte-1te9fae {flex:1;min-width:0;display:flex;align-items:baseline;gap:var(--task-list-text-gap, 8px);}.task-row.pending.svelte-1te9fae .row-text:where(.svelte-1te9fae) {opacity:var(--task-list-pending-opacity, 0.85);}.row-label.svelte-1te9fae {font-size:var(--task-list-row-font-size, 0.875rem);font-weight:var(--task-list-row-weight, 500);color:var(--task-list-row-color, #2b2b2b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.row-secondary.svelte-1te9fae {font-size:var(--task-list-secondary-font-size, 0.75rem);color:var(--task-list-secondary-color, #555b65);white-space:nowrap;}.row-secondary.mono.svelte-1te9fae {font-family:var(--task-list-mono-font, ui-monospace, Menlo, monospace);}\n\n /* Themes the embedded Button into the compact error-tinted pill via its own custom\n properties — these inherit down into Button's internal rules regardless of the\n component boundary, the same wrapper-div pattern Banner uses for its dismiss button. */.row-retry.svelte-1te9fae {margin-left:auto;flex-shrink:0;align-self:center;--button-color: var(--task-list-retry-background, rgba(201, 63, 56, 0.12));--button-text-color: var(--task-list-retry-color, #c93f38);--button-hover-color: var(--task-list-retry-hover-background, rgba(201, 63, 56, 0.2));--button-hover-text-color: var(--task-list-retry-color, #c93f38);--button-border: none;--button-padding: var(--task-list-retry-padding, 3px 10px);--button-border-radius: var(--task-list-retry-radius, 999px);--button-font-size: var(--task-list-retry-font-size, 0.75rem);--button-font-weight: var(--task-list-retry-weight, 600);--button-transition: background 150ms ease;}\n\n @media (prefers-reduced-motion: reduce) {.task-row.svelte-1te9fae,\n .glyph-inner.svelte-1te9fae,\n .glyph-check.svelte-1te9fae {animation-duration:0.001s;}\n /* Loader's spin lives on its own internally-scoped element, reached here via :global()\n scoped to a descendant of our local .glyph-spinner wrapper — the 3-class specificity\n that produces reliably beats Loader's own 2-class rule regardless of stylesheet order. */.glyph-spinner.svelte-1te9fae .loader {\n animation: none;\n -webkit-animation: none;}\n }"
55098
+ code: "\n @keyframes svelte-1te9fae-task-list-fade-up {\n from {\n opacity: 0;\n transform: translateY(9px);\n }\n to {\n opacity: 1;\n transform: none;\n }\n }\n @keyframes svelte-1te9fae-task-list-glyph-fade {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n @keyframes svelte-1te9fae-task-list-check-pop {\n from {\n opacity: 0;\n transform: scale(0.5);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n }.task-list.svelte-1te9fae {display:flex;flex-direction:column;gap:var(--task-list-row-gap, 10px);}.task-row.svelte-1te9fae {display:flex;align-items:baseline;gap:var(--task-list-row-inline-gap, 10px);\n /* --task-list-ease was an easing-only token (DESIGN_PRINCIPLES.md motion\n convention) — kept working unchanged, now paired with a duration token\n and both fall back through the library-wide --motion-* tokens. */\n animation: svelte-1te9fae-task-list-fade-up\n var(--task-list-row-animation-duration, var(--motion-duration, 320ms))\n var(\n --task-list-ease,\n var(--ease-smooth-out, var(--motion-easing, cubic-bezier(0.23, 1, 0.32, 1)))\n )\n both;}.row-glyph.svelte-1te9fae {display:inline-flex;align-self:center;align-items:center;justify-content:center;width:var(--task-list-glyph-size, 16px);height:var(--task-list-glyph-size, 16px);flex-shrink:0;}.glyph-inner.svelte-1te9fae {display:inline-flex;align-items:center;justify-content:center;\n animation: svelte-1te9fae-task-list-glyph-fade\n var(--task-list-glyph-animation-duration, var(--motion-duration, 150ms))\n var(--task-list-glyph-animation-easing, var(--motion-easing, ease)) both;}.glyph-dot.svelte-1te9fae {width:6px;height:6px;border-radius:50%;background:var(--task-list-dot-color, #9a9a9a);}\n\n /* Loader draws its own ring via a rotating gradient rather than a bordered arc, so the old\n track/spinner two-tone maps onto the gradient's start/end stops: --loader-foreground is the\n bright leading edge, --loader-foreground-end the dimmer trailing one. The size vars are\n calc()'d off a single token so before/after stay proportional if a consumer overrides it. */.glyph-spinner.svelte-1te9fae {display:inline-flex;--loader-foreground: var(--task-list-spinner-color, #6b6b6b);--loader-foreground-end: var(--task-list-spinner-track-color, #dcdcdc);--loader-width: var(--task-list-spinner-size, 11px);--loader-height: var(--task-list-spinner-size, 11px);--loader-before-width: calc(var(--task-list-spinner-size, 11px) * 0.5);--loader-before-height: calc(var(--task-list-spinner-size, 11px) * 0.5);--loader-after-width: calc(var(--task-list-spinner-size, 11px) * 0.75);--loader-after-height: calc(var(--task-list-spinner-size, 11px) * 0.75);}.glyph-check.svelte-1te9fae,\n .glyph-x.svelte-1te9fae {display:inline-flex;}.glyph-check.svelte-1te9fae svg:where(.svelte-1te9fae),\n .glyph-x.svelte-1te9fae svg:where(.svelte-1te9fae) {width:12px;height:12px;}.glyph-check.svelte-1te9fae {color:var(--task-list-done-color, #6b6b6b);\n animation: svelte-1te9fae-task-list-check-pop\n var(--task-list-check-pop-animation-duration, var(--motion-duration, 200ms))\n var(\n --task-list-ease,\n var(--ease-smooth-out, var(--motion-easing, cubic-bezier(0.23, 1, 0.32, 1)))\n )\n both;}.glyph-x.svelte-1te9fae {color:var(--task-list-error-color, #c93f38);}.row-text.svelte-1te9fae {flex:1;min-width:0;display:flex;align-items:baseline;gap:var(--task-list-text-gap, 8px);}.task-row.pending.svelte-1te9fae .row-text:where(.svelte-1te9fae) {opacity:var(--task-list-pending-opacity, 0.85);}.row-label.svelte-1te9fae {font-size:var(--task-list-row-font-size, 0.875rem);font-weight:var(--task-list-row-weight, 500);color:var(--task-list-row-color, #2b2b2b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.row-secondary.svelte-1te9fae {font-size:var(--task-list-secondary-font-size, 0.75rem);color:var(--task-list-secondary-color, #555b65);white-space:nowrap;}.row-secondary.mono.svelte-1te9fae {font-family:var(--task-list-mono-font, ui-monospace, Menlo, monospace);}\n\n /* Themes the embedded Button into the compact error-tinted pill via its own custom\n properties — these inherit down into Button's internal rules regardless of the\n component boundary, the same wrapper-div pattern Banner uses for its dismiss button. */.row-retry.svelte-1te9fae {margin-left:auto;flex-shrink:0;align-self:center;--button-color: var(--task-list-retry-background, rgba(201, 63, 56, 0.12));--button-text-color: var(--task-list-retry-color, #c93f38);--button-hover-color: var(--task-list-retry-hover-background, rgba(201, 63, 56, 0.2));--button-hover-text-color: var(--task-list-retry-color, #c93f38);--button-border: none;--button-padding: var(--task-list-retry-padding, 3px 10px);--button-border-radius: var(--task-list-retry-radius, 999px);--button-font-size: var(--task-list-retry-font-size, 0.75rem);--button-font-weight: var(--task-list-retry-weight, 600);--button-transition: background 150ms ease;}\n\n @media (prefers-reduced-motion: reduce) {.task-row.svelte-1te9fae,\n .glyph-inner.svelte-1te9fae,\n .glyph-check.svelte-1te9fae {animation-duration:0.001s;}\n /* Loader's spin lives on its own internally-scoped element, reached here via :global()\n scoped to a descendant of our local .glyph-spinner wrapper — the 3-class specificity\n that produces reliably beats Loader's own 2-class rule regardless of stylesheet order. */.glyph-spinner.svelte-1te9fae .loader {\n animation: none;\n -webkit-animation: none;}\n }"
54899
55099
  };
54900
55100
  function TaskList(e, t) {
54901
55101
  push(t, !0), append_styles$1(e, $$css$14);
@@ -56087,7 +56287,7 @@ customElements.define("sui-aspect-ratio", create_custom_element(AspectRatio_wc,
56087
56287
  //#region src/lib/assets/star.svg?raw
56088
56288
  var star_default = "<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"\n ></path>\n</svg>\n", root_1 = /* @__PURE__ */ from_html("<span class=\"star-fill svelte-1c91y9i\"></span>"), root_2 = /* @__PURE__ */ from_html("<span class=\"star-empty svelte-1c91y9i\"></span> <!>", 1), root_3 = /* @__PURE__ */ from_html("<span class=\"star svelte-1c91y9i\" aria-hidden=\"true\"><!></span>"), root_4 = /* @__PURE__ */ from_html("<div role=\"slider\"><!> <input type=\"number\" class=\"native-input svelte-1c91y9i\" aria-hidden=\"true\"/></div>"), $$css$1 = {
56089
56289
  hash: "svelte-1c91y9i",
56090
- code: ".rating-group.svelte-1c91y9i {display:var(--rating-group-display, inline-flex);align-items:center;gap:var(--rating-group-gap, 2px);cursor:var(--rating-group-cursor, pointer);outline:none;border-radius:var(--rating-group-border-radius, var(--radius, 4px));width:fit-content;}.rating-group.svelte-1c91y9i:focus-visible {box-shadow:var(--rating-group-focus-ring, 0 0 0 3px rgba(33, 150, 243, 0.3));}.rating-group.disabled.svelte-1c91y9i {opacity:var(--rating-group-disabled-opacity, 0.4);cursor:var(--rating-group-disabled-cursor, not-allowed);}.rating-group.readonly.svelte-1c91y9i {cursor:var(--rating-group-readonly-cursor, default);}.star.svelte-1c91y9i {position:relative;display:inline-flex;width:var(--rating-group-star-size, 24px);height:var(--rating-group-star-size, 24px);flex-shrink:0;}.rating-group.svelte-1c91y9i:not(.disabled):not(.readonly) .star:where(.svelte-1c91y9i):hover {transform:var(--rating-group-star-hover-transform, scale(1.1));}.star-empty.svelte-1c91y9i,\n .star-fill.svelte-1c91y9i {position:absolute;inset:0;display:flex;}.star-empty.svelte-1c91y9i {color:var(--rating-group-star-empty-color, #d1d5db);}.star-empty.svelte-1c91y9i svg {width:100%;height:100%;}.star-fill.svelte-1c91y9i {color:var(--rating-group-star-filled-color, #f5a623);overflow:hidden;}.star-fill.svelte-1c91y9i svg {width:var(--rating-group-star-size, 24px);height:var(--rating-group-star-size, 24px);flex-shrink:0;}.native-input.svelte-1c91y9i {position:absolute;opacity:0;width:0;height:0;pointer-events:none;}"
56290
+ code: ".rating-group.svelte-1c91y9i {display:var(--rating-group-display, inline-flex);align-items:center;gap:var(--rating-group-gap, 2px);cursor:var(--rating-group-cursor, pointer);outline:none;border-radius:var(--rating-group-border-radius, var(--radius, 4px));width:fit-content;}.rating-group.svelte-1c91y9i:focus-visible {box-shadow:var(--rating-group-focus-ring, 0 0 0 3px rgba(33, 150, 243, 0.3));}.rating-group.disabled.svelte-1c91y9i {opacity:var(--rating-group-disabled-opacity, 0.4);cursor:var(--rating-group-disabled-cursor, not-allowed);}.rating-group.readonly.svelte-1c91y9i {cursor:var(--rating-group-readonly-cursor, default);}.star.svelte-1c91y9i {position:relative;display:inline-flex;width:var(--rating-group-star-size, 24px);height:var(--rating-group-star-size, 24px);flex-shrink:0;transition:transform\n var(--rating-group-star-transition-duration, var(--motion-duration, 0.15s))\n var(--rating-group-star-transition-easing, var(--motion-easing, ease));}.rating-group.svelte-1c91y9i:not(.disabled):not(.readonly) .star:where(.svelte-1c91y9i):hover {transform:var(--rating-group-star-hover-transform, scale(1.1));}\n\n @media (prefers-reduced-motion: reduce) {.star.svelte-1c91y9i {transition:none;}\n }.star-empty.svelte-1c91y9i,\n .star-fill.svelte-1c91y9i {position:absolute;inset:0;display:flex;}.star-empty.svelte-1c91y9i {color:var(--rating-group-star-empty-color, #d1d5db);}.star-empty.svelte-1c91y9i svg {width:100%;height:100%;}.star-fill.svelte-1c91y9i {color:var(--rating-group-star-filled-color, #f5a623);overflow:hidden;}.star-fill.svelte-1c91y9i svg {width:var(--rating-group-star-size, 24px);height:var(--rating-group-star-size, 24px);flex-shrink:0;}.native-input.svelte-1c91y9i {position:absolute;opacity:0;width:0;height:0;pointer-events:none;}"
56091
56291
  };
56092
56292
  function RatingGroup(e, t) {
56093
56293
  push(t, !0), append_styles$1(e, $$css$1);
@@ -56338,3 +56538,4 @@ customElements.define("sui-rating-group", create_custom_element(RatingGroup_wc,
56338
56538
  onchange: { type: "Object" }
56339
56539
  }, [], [], { mode: "open" }, formAssociated({})));
56340
56540
  //#endregion
56541
+ export { createRawSnippet };