@juspay/svelte-ui-components 4.31.3 → 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 (44) 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.js +599 -410
  44. package/package.json +1 -1
package/dist-wc/index.js CHANGED
@@ -2693,7 +2693,7 @@ function css_to_keyframe(e) {
2693
2693
  }
2694
2694
  return t;
2695
2695
  }
2696
- var linear$1 = (e) => e, animation_effect_override = null;
2696
+ var linear$2 = (e) => e, animation_effect_override = null;
2697
2697
  function set_animation_effect_override(e) {}
2698
2698
  function transition(e, t, n, i) {
2699
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;
@@ -2760,7 +2760,7 @@ function animate(e, t, n, i, a, o) {
2760
2760
  reset: noop,
2761
2761
  t: () => i
2762
2762
  };
2763
- 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;
2764
2764
  var S = [];
2765
2765
  if (s && n === void 0 && (p && p(0, 1), f)) {
2766
2766
  var C = css_to_keyframe(f(0, 1));
@@ -5038,7 +5038,7 @@ create_custom_element(Button, {
5038
5038
  //#region src/lib/Book/Book.svelte
5039
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 = {
5040
5040
  hash: "svelte-1qrpci6",
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, 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 }"
5042
5042
  };
5043
5043
  function Book(e, t) {
5044
5044
  push(t, !0), append_styles$1(e, $$css$192);
@@ -6373,7 +6373,7 @@ function describeField(e, t) {
6373
6373
  //#region src/lib/assets/checkmark.svg?raw
6374
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 = {
6375
6375
  hash: "svelte-f1in4m",
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);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);}"
6377
6377
  };
6378
6378
  function Checkbox(e, t) {
6379
6379
  let n = props_id();
@@ -8162,7 +8162,7 @@ function closestInEventPath(e, t) {
8162
8162
  //#region src/lib/Slider/Slider.svelte
8163
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 = {
8164
8164
  hash: "svelte-17e64va",
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(--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);}"
8166
8166
  };
8167
8167
  function Slider(e, t) {
8168
8168
  let n = props_id();
@@ -9102,7 +9102,7 @@ customElements.define("sui-color-picker", create_custom_element(ColorPicker_wc,
9102
9102
  //#region src/lib/Combobox/Combobox.svelte
9103
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 = {
9104
9104
  hash: "svelte-178p70i",
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(--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);}"
9106
9106
  };
9107
9107
  function Combobox(e, t) {
9108
9108
  let n = props_id();
@@ -10250,6 +10250,114 @@ customElements.define("sui-combobox", create_custom_element(Combobox_wc, {
10250
10250
  innerControlIsNotTheValue: !0
10251
10251
  })));
10252
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
10253
10361
  //#region src/lib/assets/search.svg?raw
10254
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 = {
10255
10363
  hash: "svelte-rk55q",
@@ -10258,68 +10366,83 @@ var search_default = "<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentC
10258
10366
  function CommandMenu(e, t) {
10259
10367
  let n = props_id();
10260
10368
  push(t, !0), append_styles$1(e, $$css$172);
10261
- 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(() => {
10262
- if (get(C).trim() === "") return i();
10263
- 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();
10264
10387
  return i().filter((t) => t.label.toLowerCase().includes(e));
10265
- }), be = /* @__PURE__ */ user_derived(() => {
10388
+ }), Me = /* @__PURE__ */ user_derived(() => {
10266
10389
  let e = new SvelteMap();
10267
- for (let t of get(G)) {
10390
+ for (let t of get(be)) {
10268
10391
  let n = t.group ?? "";
10269
10392
  e.has(n) || e.set(n, []);
10270
10393
  let i = e.get(n);
10271
10394
  Array.isArray(i) && i.push(t);
10272
10395
  }
10273
10396
  return e;
10274
- }), Me = /* @__PURE__ */ user_derived(() => {
10397
+ }), Re = /* @__PURE__ */ user_derived(() => {
10275
10398
  let e = [];
10276
- 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);
10277
10400
  return e;
10278
- }), Re = /* @__PURE__ */ user_derived(() => {
10401
+ }), Ue = /* @__PURE__ */ user_derived(() => {
10279
10402
  let e = new SvelteMap();
10280
- for (let t = 0; t < get(Me).length; t++) {
10281
- let n = get(Me).at(t);
10403
+ for (let t = 0; t < get(Re).length; t++) {
10404
+ let n = get(Re).at(t);
10282
10405
  typeof n == "object" && e.set(n.value, t);
10283
10406
  }
10284
10407
  return e;
10285
- }), Ue = /* @__PURE__ */ user_derived(() => get(Me).length > 0 ? `command-menu-option-${n}-${get(k)}` : null);
10286
- function it() {
10287
- 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()?.());
10288
10411
  }
10289
- function at(e) {
10290
- e.disabled || (f()?.(e), it());
10412
+ function ot(e) {
10413
+ !a() || e.disabled || (f()?.(e), at());
10291
10414
  }
10292
- function ot(e, t) {
10415
+ function ct(e, t) {
10293
10416
  let n = e + t;
10294
- for (; n >= 0 && n < get(Me).length;) {
10295
- let e = get(Me).at(n);
10417
+ for (; n >= 0 && n < get(Re).length;) {
10418
+ let e = get(Re).at(n);
10296
10419
  if (typeof e == "object" && !e.disabled) return n;
10297
10420
  n += t;
10298
10421
  }
10299
10422
  return -1;
10300
10423
  }
10301
- function ct(e) {
10424
+ function lt(e) {
10302
10425
  if (a()) switch (e.key) {
10303
10426
  case "ArrowDown": {
10304
10427
  e.preventDefault();
10305
- let t = ot(get(k), 1);
10306
- t >= 0 && (set(k, t, !0), ut());
10428
+ let t = ct(get(R), 1);
10429
+ t >= 0 && (set(R, t, !0), dt());
10307
10430
  break;
10308
10431
  }
10309
10432
  case "ArrowUp": {
10310
10433
  e.preventDefault();
10311
- let t = ot(get(k), -1);
10312
- t >= 0 && (set(k, t, !0), ut());
10434
+ let t = ct(get(R), -1);
10435
+ t >= 0 && (set(R, t, !0), dt());
10313
10436
  break;
10314
10437
  }
10315
10438
  case "Enter": {
10316
10439
  e.preventDefault();
10317
- let t = get(Me).at(get(k));
10318
- typeof t == "object" && !t.disabled && at(t);
10440
+ let t = get(Re).at(get(R));
10441
+ typeof t == "object" && !t.disabled && ot(t);
10319
10442
  break;
10320
10443
  }
10321
10444
  case "Tab": {
10322
- let t = lt();
10445
+ let t = ut();
10323
10446
  if (t.length === 0) break;
10324
10447
  e.preventDefault();
10325
10448
  let n = getActiveElement(t[0] ?? null), i = ((n instanceof HTMLElement ? t.indexOf(n) : -1) + (e.shiftKey ? -1 : 1) + t.length) % t.length;
@@ -10328,40 +10451,40 @@ function CommandMenu(e, t) {
10328
10451
  }
10329
10452
  }
10330
10453
  }
10331
- function lt() {
10332
- 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)));
10333
10456
  }
10334
- async function ut() {
10335
- if (await tick(), get(te) !== null) {
10336
- 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\"]");
10337
10460
  e !== null && e.scrollIntoView({ block: "nearest" });
10338
10461
  }
10339
10462
  }
10340
- function dt(e) {
10341
- e.target === e.currentTarget && it();
10342
- }
10343
10463
  function ft(e) {
10344
- (e.metaKey || e.ctrlKey) && e.key === "k" && (e.preventDefault(), a() ? it() : a(!0));
10464
+ e.target === e.currentTarget && at();
10345
10465
  }
10346
10466
  function pt(e) {
10467
+ (e.metaKey || e.ctrlKey) && e.key === "k" && (e.preventDefault(), a() ? at() : a(!0));
10468
+ }
10469
+ function mt(e) {
10347
10470
  let t = getActiveElement(e);
10348
- re === null && t instanceof HTMLElement && (re = t), lockBodyScroll();
10471
+ G === null && t instanceof HTMLElement && (G = t), lockBodyScroll();
10349
10472
  let n = registerDismissible({
10350
- element: () => get(ne),
10351
- onEscape: it
10473
+ element: () => get(re),
10474
+ onEscape: at
10352
10475
  });
10353
10476
  return tick().then(() => {
10354
- get(R) !== null && get(R).focus();
10477
+ get(te) !== null && get(te).focus();
10355
10478
  }), { destroy() {
10356
- n(), unlockBodyScroll(), re !== null && (re.focus(), re = null);
10479
+ n(), unlockBodyScroll(), G !== null && (G.focus(), G = null);
10357
10480
  } };
10358
10481
  }
10359
10482
  onMount(() => {
10360
- window.addEventListener("keydown", ft);
10483
+ window.addEventListener("keydown", pt);
10361
10484
  }), onDestroy(() => {
10362
- typeof window < "u" && window.removeEventListener("keydown", ft);
10485
+ typeof window < "u" && window.removeEventListener("keydown", pt);
10363
10486
  });
10364
- var mt = {
10487
+ var ht = {
10365
10488
  get items() {
10366
10489
  return i();
10367
10490
  },
@@ -10422,25 +10545,25 @@ function CommandMenu(e, t) {
10422
10545
  set classes(e) {
10423
10546
  h(e), flushSync();
10424
10547
  }
10425
- }, ht = comment(), gt = first_child(ht), _t = (e) => {
10426
- 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) => {
10427
10550
  var t = comment();
10428
10551
  snippet(first_child(t), u), append(e, t);
10429
- }, re = (e) => {
10552
+ }, be = (e) => {
10430
10553
  var t = root$90();
10431
10554
  html(t, () => search_default, !0), reset(t), append(e, t);
10432
10555
  };
10433
- if_block(f, (e) => {
10434
- typeof u() == "function" ? e(p) : e(re, -1);
10556
+ if_block(p, (e) => {
10557
+ typeof u() == "function" ? e(G) : e(be, -1);
10435
10558
  });
10436
- var G = sibling(f, 2);
10437
- remove_input_defaults(G), bind_this(G, (e) => set(R, e), () => get(R)), reset(a);
10438
- 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) => {
10439
10562
  var t = root_1$80(), n = child(t, !0);
10440
10563
  reset(t), template_effect(() => set_text(n, s())), append(e, t);
10441
- }, ut = (e) => {
10564
+ }, pt = (e) => {
10442
10565
  var t = comment();
10443
- 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) => {
10444
10567
  var i = /* @__PURE__ */ user_derived(() => to_array(get(t), 2));
10445
10568
  let a = () => get(i)[0], o = () => get(i)[1];
10446
10569
  var s = root_8$22(), u = first_child(s), f = (e) => {
@@ -10450,7 +10573,7 @@ function CommandMenu(e, t) {
10450
10573
  if_block(u, (e) => {
10451
10574
  a() !== "" && e(f);
10452
10575
  }), each(sibling(u, 2), 17, o, (e) => e.value, (e, t) => {
10453
- 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);
10454
10577
  var a = root_7$27();
10455
10578
  let o;
10456
10579
  var s = child(a), u = (e) => {
@@ -10482,26 +10605,26 @@ function CommandMenu(e, t) {
10482
10605
  typeof get(t).shortcut == "string" && get(t).shortcut.length > 0 && e(C);
10483
10606
  }), reset(a), template_effect(() => {
10484
10607
  set_attribute(a, "id", `command-menu-option-${n}-${get(i)}`), o = set_class(a, 1, "command-menu-item svelte-rk55q", null, o, {
10485
- active: get(i) === get(k),
10608
+ active: get(i) === get(R),
10486
10609
  disabled: get(t).disabled
10487
- }), 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);
10488
- }), delegated("click", a, () => at(get(t))), event("mouseenter", a, () => {
10489
- 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);
10490
10613
  }), append(e, a);
10491
10614
  }), append(e, s);
10492
10615
  }), append(e, t);
10493
10616
  };
10494
- if_block(ot, (e) => {
10495
- get(Me).length === 0 ? e(lt) : e(ut, -1);
10496
- }), 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(() => {
10497
- 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);
10498
- }), delegated("click", t, dt), delegated("keydown", t, ct), delegated("input", G, () => {
10499
- set(k, 0);
10500
- }), 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);
10501
10624
  };
10502
- return if_block(gt, (e) => {
10503
- a() && e(_t);
10504
- }), append(e, ht), pop(mt);
10625
+ return if_block(_t, (e) => {
10626
+ a() && e(vt);
10627
+ }), append(e, gt), pop(ht);
10505
10628
  }
10506
10629
  delegate([
10507
10630
  "click",
@@ -10573,7 +10696,7 @@ customElements.define("sui-command-menu", create_custom_element(CommandMenu_wc,
10573
10696
  //#region src/lib/Gauge/Gauge.svelte
10574
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 = {
10575
10698
  hash: "svelte-ms0oc6",
10576
- 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);}"
10577
10700
  };
10578
10701
  function Gauge(e, t) {
10579
10702
  push(t, !0), append_styles$1(e, $$css$170);
@@ -11809,7 +11932,7 @@ customElements.define("sui-loading-dots", create_custom_element(LoadingDots_wc,
11809
11932
  //#region src/lib/Pagination/Pagination.svelte
11810
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 = {
11811
11934
  hash: "svelte-1sajc2w",
11812
- 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;}"
11813
11936
  };
11814
11937
  function Pagination(e, t) {
11815
11938
  push(t, !0), append_styles$1(e, $$css$153);
@@ -12249,7 +12372,7 @@ customElements.define("sui-progress", create_custom_element(Progress_wc, {
12249
12372
  //#region src/lib/Radio/Radio.svelte
12250
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 = {
12251
12374
  hash: "svelte-14bh706",
12252
- 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);}"
12253
12376
  };
12254
12377
  function Radio(e, t) {
12255
12378
  let n = props_id();
@@ -12548,7 +12671,7 @@ create_custom_element(PortalContentRenderer, { snippet: {} }, [], [], { mode: "o
12548
12671
  //#region src/lib/Tooltip/Tooltip.svelte
12549
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 = {
12550
12673
  hash: "svelte-1xxu8em",
12551
- 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);}"
12552
12675
  };
12553
12676
  function Tooltip(e, t) {
12554
12677
  push(t, !0), append_styles$1(e, $$css$146);
@@ -12635,7 +12758,7 @@ function Tooltip(e, t) {
12635
12758
  "white-space:normal",
12636
12759
  "word-wrap:break-word",
12637
12760
  "pointer-events:none",
12638
- "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)))"
12639
12762
  ].join(";");
12640
12763
  let c = document.createElement("div");
12641
12764
  if (c.style.cssText = at(t), i.appendChild(c), typeof f() == "function") {
@@ -14111,7 +14234,7 @@ customElements.define("sui-stepper", create_custom_element(Stepper_wc, {
14111
14234
  //#region src/lib/assets/chevron-up.svg?raw
14112
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 = {
14113
14236
  hash: "svelte-18eaq6o",
14114
- 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 }"
14115
14238
  };
14116
14239
  function Tabs(e, t) {
14117
14240
  push(t, !0), append_styles$1(e, $$css$132);
@@ -14652,7 +14775,7 @@ customElements.define("sui-tabs", create_custom_element(Tabs_wc, {
14652
14775
  //#region src/lib/assets/sun.svg?raw
14653
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 = {
14654
14777
  hash: "svelte-yg7rya",
14655
- 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 }"
14656
14779
  };
14657
14780
  function ThemeSwitcher(e, t) {
14658
14781
  push(t, !0), append_styles$1(e, $$css$130);
@@ -14842,7 +14965,7 @@ customElements.define("sui-theme-switcher", create_custom_element(ThemeSwitcher_
14842
14965
  //#region src/lib/Toggle/Toggle.svelte
14843
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 = {
14844
14967
  hash: "svelte-1kpnf4s",
14845
- 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);}"
14846
14969
  };
14847
14970
  function Toggle(e, t) {
14848
14971
  let n = props_id();
@@ -15108,7 +15231,7 @@ customElements.define("sui-toggle", create_custom_element(Toggle_wc, {
15108
15231
  //#region src/lib/Accordion/Accordion.svelte
15109
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 = {
15110
15233
  hash: "svelte-1p9ezsm",
15111
- 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;}"
15112
15235
  };
15113
15236
  function Accordion(e, t) {
15114
15237
  let n = props_id();
@@ -15257,10 +15380,6 @@ function cubic_out(e) {
15257
15380
  let t = e - 1;
15258
15381
  return t * t * t + 1;
15259
15382
  }
15260
- function split_css_unit(e) {
15261
- let t = typeof e == "string" && e.match(/^\s*(-?[\d.]+)([^\s]*)\s*$/);
15262
- return t ? [parseFloat(t[1]), t[2] || "px"] : [e, "px"];
15263
- }
15264
15383
  function fade(e, { delay: t = 0, duration: n = 400, easing: i = linear } = {}) {
15265
15384
  let a = +getComputedStyle(e).opacity;
15266
15385
  return {
@@ -15270,17 +15389,6 @@ function fade(e, { delay: t = 0, duration: n = 400, easing: i = linear } = {}) {
15270
15389
  css: (e) => `opacity: ${e * a}`
15271
15390
  };
15272
15391
  }
15273
- function fly(e, { delay: t = 0, duration: n = 400, easing: i = cubic_out, x: a = 0, y: o = 0, opacity: s = 0 } = {}) {
15274
- 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);
15275
- return {
15276
- delay: t,
15277
- duration: n,
15278
- easing: i,
15279
- css: (e, t) => `
15280
- transform: ${u} translate(${(1 - e) * p}${h}, ${(1 - e) * S}${C});
15281
- opacity: ${l - f * t}`
15282
- };
15283
- }
15284
15392
  var slide_warning = !1;
15285
15393
  function slide(e, { delay: t = 0, duration: n = 400, easing: i = cubic_out, axis: a = "y" } = {}) {
15286
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`]);
@@ -16155,7 +16263,7 @@ function moveWithinChoiceboxGroup(e, t) {
16155
16263
  //#region src/lib/Choicebox/Choicebox.svelte
16156
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 = {
16157
16265
  hash: "svelte-1s9or1q",
16158
- 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%;}"
16159
16267
  };
16160
16268
  function Choicebox(e, t) {
16161
16269
  let n = props_id();
@@ -17262,80 +17370,96 @@ var root$57 = /* @__PURE__ */ from_html("<div class=\"context-menu-separator sve
17262
17370
  };
17263
17371
  function ContextMenu(e, t) {
17264
17372
  push(t, !0), append_styles$1(e, $$css$109);
17265
- 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;
17266
- function re() {
17267
- 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);
17268
17391
  }
17269
- function G(e, t) {
17270
- set(C, e, !0), set(k, t, !0), i(!0), set(S, 0), l()?.(), re(), ne = requestAnimationFrame(() => {
17271
- 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);
17272
17395
  });
17273
17396
  }
17274
- function be() {
17275
- re(), i(!1), set(S, -1), u()?.();
17397
+ function Me() {
17398
+ if (!i()) return;
17399
+ G(), i(!1), set(S, -1), u()?.();
17276
17400
  let e = get(R);
17277
17401
  if (set(R, null), e === null) return;
17278
17402
  let t = getActiveElement(e);
17279
17403
  (t === null || t === document.body || (get(p)?.contains(t) ?? !1)) && e.focus();
17280
17404
  }
17281
- function Me(e) {
17282
- e.disabled || (c()?.(e), be());
17405
+ function Re(e) {
17406
+ !i() || e.disabled || (c()?.(e), Me());
17283
17407
  }
17284
- function Re() {
17408
+ function Ue() {
17285
17409
  if (get(p) === null) return;
17286
17410
  let e = get(p).getBoundingClientRect(), t = window.innerWidth, n = window.innerHeight;
17287
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);
17288
17412
  }
17289
- function Ue(e) {
17413
+ function it(e) {
17290
17414
  if (get(p) === null) return;
17291
17415
  let t = get(p).querySelectorAll("[role=\"menuitem\"]:not([aria-disabled=\"true\"])");
17292
17416
  e >= 0 && e < t.length && t[e].focus();
17293
17417
  }
17294
- function it(e) {
17295
- return get(te).indexOf(e);
17296
- }
17297
17418
  function at(e) {
17419
+ return get(ne).indexOf(e);
17420
+ }
17421
+ function ot(e) {
17298
17422
  e.preventDefault();
17299
17423
  let t = e.target instanceof Node ? getActiveElement(e.target) : null;
17300
- 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);
17301
17425
  }
17302
- function ot(e) {
17426
+ function ct(e) {
17303
17427
  switch (e.key) {
17304
17428
  case "ArrowDown": {
17305
17429
  e.preventDefault();
17306
17430
  let t = get(S) + 1;
17307
- 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));
17308
17432
  break;
17309
17433
  }
17310
17434
  case "ArrowUp": {
17311
17435
  e.preventDefault();
17312
17436
  let t = get(S) - 1;
17313
- 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));
17314
17438
  break;
17315
17439
  }
17316
17440
  case "Home":
17317
- e.preventDefault(), set(S, 0), Ue(get(S));
17441
+ e.preventDefault(), set(S, 0), it(get(S));
17318
17442
  break;
17319
17443
  case "End":
17320
- e.preventDefault(), set(S, get(te).length - 1), Ue(get(S));
17444
+ e.preventDefault(), set(S, get(ne).length - 1), it(get(S));
17321
17445
  break;
17322
17446
  case "Enter":
17323
17447
  case " ":
17324
- 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)]);
17325
17449
  break;
17326
17450
  case "Tab":
17327
- be();
17451
+ Me();
17328
17452
  break;
17329
17453
  }
17330
17454
  }
17331
- function ct(e) {
17455
+ function lt(e) {
17332
17456
  return { destroy: registerDismissible({
17333
17457
  element: () => get(p),
17334
- onEscape: be,
17335
- onOutside: be
17458
+ onEscape: Me,
17459
+ onOutside: Me
17336
17460
  }) };
17337
17461
  }
17338
- var lt = {
17462
+ var ut = {
17339
17463
  get items() {
17340
17464
  return n();
17341
17465
  },
@@ -17390,22 +17514,22 @@ function ContextMenu(e, t) {
17390
17514
  set classes(e) {
17391
17515
  f(e), flushSync();
17392
17516
  }
17393
- }, ut = root_5$31(), dt = first_child(ut);
17394
- attribute_effect(dt, () => ({
17517
+ }, dt = root_5$31(), ft = first_child(dt);
17518
+ attribute_effect(ft, () => ({
17395
17519
  class: `context-menu-container ${f() ?? "" ?? ""}`,
17396
- oncontextmenu: at,
17520
+ oncontextmenu: ot,
17397
17521
  ...i() ? { role: "application" } : {},
17398
17522
  "data-pw": o(),
17399
17523
  testID: o()
17400
17524
  }), void 0, void 0, void 0, "svelte-1hf60pq");
17401
- var ft = child(dt), pt = (e) => {
17525
+ var pt = child(ft), mt = (e) => {
17402
17526
  var t = comment();
17403
17527
  snippet(first_child(t), s), append(e, t);
17404
17528
  };
17405
- if_block(ft, (e) => {
17406
- typeof s() == "function" && e(pt);
17407
- }), reset(dt), bind_this(dt, (e) => set(h, e), () => get(h));
17408
- 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) => {
17409
17533
  var t = root_4$34();
17410
17534
  each(t, 21, n, (e) => e.value, (e, t) => {
17411
17535
  var n = comment(), i = first_child(n), a = (e) => {
@@ -17433,20 +17557,22 @@ function ContextMenu(e, t) {
17433
17557
  "context-menu-item-danger": get(t).danger,
17434
17558
  "context-menu-item-disabled": get(t).disabled
17435
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);
17436
- }), delegated("click", n, () => Me(get(t))), delegated("keydown", n, (e) => {
17437
- (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)));
17438
17562
  }), event("focus", n, () => {
17439
- get(t).disabled || set(S, it(get(t)), !0);
17563
+ get(t).disabled || set(S, at(get(t)), !0);
17440
17564
  }), append(e, n);
17441
17565
  };
17442
17566
  if_block(i, (e) => {
17443
17567
  get(t).separator ? e(a) : e(s, -1);
17444
17568
  }), append(e, n);
17445
- }), 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);
17446
17572
  };
17447
- return if_block(mt, (e) => {
17448
- i() && e(ht);
17449
- }), append(e, ut), pop(lt);
17573
+ return if_block(ht, (e) => {
17574
+ i() && e(gt);
17575
+ }), append(e, dt), pop(ut);
17450
17576
  }
17451
17577
  delegate(["keydown", "click"]), create_custom_element(ContextMenu, {
17452
17578
  items: {},
@@ -18388,7 +18514,22 @@ function Menu(e, t) {
18388
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;
18389
18515
  return `${c && l ? "top" : "bottom"}-${s}`;
18390
18516
  }
18391
- 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
+ };
18392
18533
  user_effect(() => {
18393
18534
  if (!ne() || !i() || typeof window > "u") return;
18394
18535
  let e = null, t = () => {
@@ -18403,12 +18544,12 @@ function Menu(e, t) {
18403
18544
  window.removeEventListener("scroll", t, { capture: !0 }), window.removeEventListener("resize", t), e !== null && cancelAnimationFrame(e);
18404
18545
  };
18405
18546
  });
18406
- let mt = (e) => {
18547
+ let ht = (e) => {
18407
18548
  let t = e.getRootNode();
18408
18549
  return t instanceof ShadowRoot ? t : document.body;
18409
- }, ht = (e) => {
18410
- if (ne()) return mt(e).appendChild(e), { destroy: () => e.remove() };
18411
- }, gt = /* @__PURE__ */ user_derived(() => {
18550
+ }, gt = (e) => {
18551
+ if (ne()) return ht(e).appendChild(e), { destroy: () => e.remove() };
18552
+ }, _t = /* @__PURE__ */ user_derived(() => {
18412
18553
  if (!ne() || !i() || get(G) === null) return "";
18413
18554
  get(it);
18414
18555
  let e = get(G).getBoundingClientRect(), t = typeof window > "u" ? {
@@ -18433,21 +18574,21 @@ function Menu(e, t) {
18433
18574
  viewport: t
18434
18575
  });
18435
18576
  return `position:fixed;left:${n}px;top:${a}px;right:auto;bottom:auto;margin:0;z-index:var(--menu-z-index,1000);`;
18436
- }), _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])));
18437
- function yt() {
18438
- 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();
18439
18580
  }
18440
- function bt(e = null) {
18581
+ function xt(e = null) {
18441
18582
  i(!0), te() === "auto" ? (set(lt, "bottom-left"), set(ut, !0)) : (set(lt, te()), set(ut, !1));
18442
- 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));
18443
18584
  set(at, a, !0), l()?.(), tick().then(() => {
18444
- te() === "auto" && (set(lt, ft(), !0), set(ut, !1)), wt(a);
18585
+ te() === "auto" && (set(lt, ft(), !0), set(ut, !1)), Tt(a);
18445
18586
  });
18446
18587
  }
18447
- function xt() {
18448
- i(!1), set(at, -1), set(ot, ""), u()?.(), St();
18449
- }
18450
18588
  function St() {
18589
+ i() && (i(!1), set(at, -1), set(ot, ""), u()?.(), Ct());
18590
+ }
18591
+ function Ct() {
18451
18592
  if (get(Me) !== null) {
18452
18593
  if (s()) {
18453
18594
  let e = get(Me).querySelector("button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])");
@@ -18459,79 +18600,79 @@ function Menu(e, t) {
18459
18600
  get(Me).focus({ preventScroll: !0 });
18460
18601
  }
18461
18602
  }
18462
- function Ct(e) {
18463
- e.disabled !== !0 && (c()?.(e), xt());
18464
- }
18465
18603
  function wt(e) {
18604
+ !i() || e.disabled === !0 || (c()?.(e), St());
18605
+ }
18606
+ function Tt(e) {
18466
18607
  if (get(be) === null) return;
18467
18608
  let t = get(be).querySelectorAll(`[role="${get(re)}"]:not([aria-disabled="true"])`), n = t.item(e);
18468
18609
  e >= 0 && e < t.length && n instanceof HTMLElement && n.focus();
18469
18610
  }
18470
- function Tt(e) {
18471
- return get(vt).get(e) ?? -1;
18472
- }
18473
18611
  function Et(e) {
18474
- 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;
18475
18613
  }
18476
18614
  function Dt(e) {
18477
- 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));
18478
18616
  }
18479
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) {
18480
18621
  switch (e.key) {
18481
18622
  case "ArrowDown": {
18482
18623
  e.preventDefault();
18483
18624
  let t = get(at) + 1;
18484
- 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));
18485
18626
  break;
18486
18627
  }
18487
18628
  case "ArrowUp": {
18488
18629
  e.preventDefault();
18489
18630
  let t = get(at) - 1;
18490
- 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));
18491
18632
  break;
18492
18633
  }
18493
18634
  case "Home":
18494
- e.preventDefault(), set(at, 0), wt(get(at));
18635
+ e.preventDefault(), set(at, 0), Tt(get(at));
18495
18636
  break;
18496
18637
  case "End":
18497
- e.preventDefault(), set(at, get(_t).length - 1), wt(get(at));
18638
+ e.preventDefault(), set(at, get(vt).length - 1), Tt(get(at));
18498
18639
  break;
18499
18640
  case "Enter":
18500
18641
  case " ": {
18501
18642
  e.preventDefault();
18502
- let t = get(_t).at(get(at));
18503
- 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);
18504
18645
  break;
18505
18646
  }
18506
18647
  case "Tab":
18507
- xt();
18648
+ St();
18508
18649
  break;
18509
18650
  default:
18510
- 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));
18511
18652
  break;
18512
18653
  }
18513
18654
  }
18514
- function kt(e) {
18655
+ function At(e) {
18515
18656
  get(ct) !== null && clearTimeout(get(ct)), set(ot, get(ot) + e.toLowerCase()), set(ct, setTimeout(() => {
18516
18657
  set(ot, "");
18517
18658
  }, 500), !0);
18518
- let t = get(_t).findIndex((e) => e.label.toLowerCase().startsWith(get(ot)));
18519
- t >= 0 && (set(at, t, !0), wt(get(at)));
18520
- }
18521
- function At(e) {
18522
- 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)));
18523
18661
  }
18524
18662
  function jt(e) {
18663
+ eventHitsInside(get(be), e) || St();
18664
+ }
18665
+ function Mt(e) {
18525
18666
  return { destroy: registerDismissible({
18526
18667
  element: () => get(G),
18527
- onEscape: xt,
18528
- onOutside: At
18668
+ onEscape: St,
18669
+ onOutside: jt
18529
18670
  }) };
18530
18671
  }
18531
18672
  onDestroy(() => {
18532
18673
  get(ct) !== null && clearTimeout(get(ct));
18533
18674
  });
18534
- var Mt = {
18675
+ var Nt = {
18535
18676
  get items() {
18536
18677
  return n();
18537
18678
  },
@@ -18634,12 +18775,12 @@ function Menu(e, t) {
18634
18775
  set usePortal(e = !1) {
18635
18776
  ne(e), flushSync();
18636
18777
  }
18637
- }, Nt = root_7$23(), Pt = child(Nt), It = (e) => {
18778
+ }, Pt = root_7$23(), It = child(Pt), Lt = (e) => {
18638
18779
  var t = root_1$51(), n = child(t), a = (e) => {
18639
18780
  var t = comment();
18640
18781
  snippet(first_child(t), o, () => ({
18641
- onclick: yt,
18642
- onkeydown: Dt,
18782
+ onclick: bt,
18783
+ onkeydown: Ot,
18643
18784
  ariaHaspopup: "menu",
18644
18785
  ariaExpanded: i()
18645
18786
  })), append(e, t);
@@ -18647,12 +18788,12 @@ function Menu(e, t) {
18647
18788
  if_block(n, (e) => {
18648
18789
  typeof o() == "function" && e(a);
18649
18790
  }), reset(t), bind_this(t, (e) => set(Me, e), () => get(Me)), append(e, t);
18650
- }, Lt = (e) => {
18791
+ }, Rt = (e) => {
18651
18792
  var t = root_2$40(), n = child(t), a = (e) => {
18652
18793
  var t = comment();
18653
18794
  snippet(first_child(t), o, () => ({
18654
- onclick: yt,
18655
- onkeydown: Et,
18795
+ onclick: bt,
18796
+ onkeydown: Dt,
18656
18797
  ariaHaspopup: "menu",
18657
18798
  ariaExpanded: i()
18658
18799
  })), append(e, t);
@@ -18661,14 +18802,14 @@ function Menu(e, t) {
18661
18802
  typeof o() == "function" && e(a);
18662
18803
  }), reset(t), bind_this(t, (e) => set(Me, e), () => get(Me)), template_effect(() => {
18663
18804
  set_attribute(t, "aria-expanded", i()), set_attribute(t, "aria-label", k() ?? null);
18664
- }), delegated("click", t, yt), delegated("keydown", t, Et), append(e, t);
18805
+ }), delegated("click", t, bt), delegated("keydown", t, Dt), append(e, t);
18665
18806
  };
18666
- if_block(Pt, (e) => {
18667
- s() ? e(It) : e(Lt, -1);
18807
+ if_block(It, (e) => {
18808
+ s() ? e(Lt) : e(Rt, -1);
18668
18809
  });
18669
- var Rt = sibling(Pt, 2), zt = (e) => {
18810
+ var zt = sibling(It, 2), Bt = (e) => {
18670
18811
  var t = root_6$25();
18671
- let i;
18812
+ let o;
18672
18813
  each(t, 21, n, (e) => e.value, (e, t) => {
18673
18814
  var n = comment(), i = first_child(n), o = (e) => {
18674
18815
  append(e, root_3$36());
@@ -18699,22 +18840,22 @@ function Menu(e, t) {
18699
18840
  "menu-item-disabled": get(t).disabled === !0,
18700
18841
  "menu-item-selected": h() != null && get(t).value === h()
18701
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);
18702
- }, [() => 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, () => {
18703
- 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);
18704
18845
  }), append(e, n);
18705
18846
  };
18706
18847
  if_block(i, (e) => {
18707
18848
  get(t).separator === !0 ? e(o) : e(s, -1);
18708
18849
  }), append(e, n);
18709
- }), 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(() => {
18710
- 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));
18711
- }), 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);
18712
18853
  };
18713
- return if_block(Rt, (e) => {
18714
- i() && e(zt);
18715
- }), reset(Nt), bind_this(Nt, (e) => set(G, e), () => get(G)), template_effect(() => {
18716
- 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);
18717
- }), 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);
18718
18859
  }
18719
18860
  delegate(["click", "keydown"]), create_custom_element(Menu, {
18720
18861
  items: {},
@@ -18851,8 +18992,50 @@ function ModalAnimation(e, t) {
18851
18992
  };
18852
18993
  default: return e;
18853
18994
  }
18854
- }), 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");
18855
- 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 = {
18856
19039
  get enable() {
18857
19040
  return n();
18858
19041
  },
@@ -18889,38 +19072,38 @@ function ModalAnimation(e, t) {
18889
19072
  set testId(e) {
18890
19073
  c(e), flushSync();
18891
19074
  }
18892
- }, S = comment(), C = first_child(S), k = (e) => {
19075
+ }, te = comment(), ne = first_child(te), re = (e) => {
18893
19076
  var t = comment(), n = first_child(t), i = (e) => {
18894
19077
  var t = root$54();
18895
19078
  snippet(child(t), () => s() ?? noop), reset(t), template_effect(() => {
18896
19079
  set_attribute(t, "data-pw", typeof c() == "string" ? c() : null), set_attribute(t, "testid", typeof c() == "string" ? c() : null);
18897
- }), 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);
18898
19081
  }, a = (e) => {
18899
19082
  var t = root$54();
18900
19083
  snippet(child(t), () => s() ?? noop), reset(t), template_effect(() => {
18901
19084
  set_attribute(t, "data-pw", typeof c() == "string" ? c() : null), set_attribute(t, "testid", typeof c() == "string" ? c() : null);
18902
- }), transition(5, t, () => fly, () => get(l)), append(e, t);
19085
+ }), transition(5, t, () => tokenizedFly, () => get(f)), append(e, t);
18903
19086
  }, o = (e) => {
18904
19087
  var t = root$54();
18905
19088
  snippet(child(t), () => s() ?? noop), reset(t), template_effect(() => {
18906
19089
  set_attribute(t, "data-pw", typeof c() == "string" ? c() : null), set_attribute(t, "testid", typeof c() == "string" ? c() : null);
18907
- }), transition(5, t, () => fade, () => get(u)), transition(6, t, () => fade, () => get(u)), append(e, t);
18908
- }, h = (e) => {
19090
+ }), transition(5, t, () => tokenizedFly, () => get(h)), transition(6, t, () => tokenizedFly, () => get(S)), append(e, t);
19091
+ }, l = (e) => {
18909
19092
  var t = root$54();
18910
19093
  snippet(child(t), () => s() ?? noop), reset(t), template_effect(() => {
18911
19094
  set_attribute(t, "data-pw", typeof c() == "string" ? c() : null), set_attribute(t, "testid", typeof c() == "string" ? c() : null);
18912
- }), transition(5, t, () => fade, () => get(u)), append(e, t);
19095
+ }), transition(5, t, () => tokenizedFly, () => get(h)), append(e, t);
18913
19096
  };
18914
19097
  if_block(n, (e) => {
18915
- 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);
18916
19099
  }), append(e, t);
18917
- }, R = (e) => {
19100
+ }, G = (e) => {
18918
19101
  var t = comment();
18919
19102
  snippet(first_child(t), () => s() ?? noop), append(e, t);
18920
19103
  };
18921
- return if_block(C, (e) => {
18922
- n() ? e(k) : e(R, -1);
18923
- }), append(e, S), pop(h);
19104
+ return if_block(ne, (e) => {
19105
+ n() ? e(re) : e(G, -1);
19106
+ }), append(e, te), pop(R);
18924
19107
  }
18925
19108
  create_custom_element(ModalAnimation, {
18926
19109
  enable: {},
@@ -18935,8 +19118,16 @@ create_custom_element(ModalAnimation, {
18935
19118
  var root$53 = /* @__PURE__ */ from_html("<div><!></div>");
18936
19119
  function OverlayAnimation(e, t) {
18937
19120
  push(t, !0);
18938
- let n = prop(t, "children", 7), i = prop(t, "testId", 7), a = prop(t, "fadeIn", 7, !1);
18939
- 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 = {
18940
19131
  get children() {
18941
19132
  return n();
18942
19133
  },
@@ -18955,20 +19146,20 @@ function OverlayAnimation(e, t) {
18955
19146
  set fadeIn(e = !1) {
18956
19147
  a(e), flushSync();
18957
19148
  }
18958
- }, s = comment(), c = first_child(s), l = (e) => {
19149
+ }, l = comment(), u = first_child(l), f = (e) => {
18959
19150
  var t = root$53();
18960
19151
  snippet(child(t), () => n() ?? noop), reset(t), template_effect(() => {
18961
19152
  set_attribute(t, "data-pw", typeof i() == "string" ? i() : null), set_attribute(t, "testid", typeof i() == "string" ? i() : null);
18962
- }), transition(5, t, () => fade, () => ({ duration: 350 })), transition(2, t, () => fade, () => ({ duration: 350 })), append(e, t);
18963
- }, u = (e) => {
19153
+ }), transition(5, t, () => tokenizedFly, () => o), transition(2, t, () => tokenizedFly, () => s), append(e, t);
19154
+ }, p = (e) => {
18964
19155
  var t = root$53();
18965
19156
  snippet(child(t), () => n() ?? noop), reset(t), template_effect(() => {
18966
19157
  set_attribute(t, "data-pw", typeof i() == "string" ? i() : null), set_attribute(t, "testid", typeof i() == "string" ? i() : null);
18967
- }), transition(2, t, () => fade, () => ({ duration: 350 })), append(e, t);
19158
+ }), transition(2, t, () => tokenizedFly, () => s), append(e, t);
18968
19159
  };
18969
- return if_block(c, (e) => {
18970
- a() ? e(l) : e(u, -1);
18971
- }), append(e, s), pop(o);
19160
+ return if_block(u, (e) => {
19161
+ a() ? e(f) : e(p, -1);
19162
+ }), append(e, l), pop(c);
18972
19163
  }
18973
19164
  create_custom_element(OverlayAnimation, {
18974
19165
  children: {},
@@ -18998,7 +19189,9 @@ function Modal(e, t) {
18998
19189
  }
18999
19190
  };
19000
19191
  }, Ct = () => {
19001
- set(a, !0), be()?.(), ct()?.();
19192
+ set(a, !0), bt(() => {
19193
+ be()?.(), ct()?.();
19194
+ });
19002
19195
  }, wt = (e) => {
19003
19196
  Me()?.(e);
19004
19197
  }, Tt = (e) => {
@@ -19021,7 +19214,9 @@ function Modal(e, t) {
19021
19214
  t !== null && (e.preventDefault(), t.focus());
19022
19215
  }
19023
19216
  }, At = () => {
19024
- at()?.(), ct()?.();
19217
+ bt(() => {
19218
+ at()?.(), ct()?.();
19219
+ });
19025
19220
  }, jt = (e) => {
19026
19221
  (e.key === "Enter" || e.key === " ") && get(vt) && e.target === get(n) && (e.preventDefault(), bt(() => {
19027
19222
  at()?.(), ct()?.();
@@ -20084,7 +20279,7 @@ function computeSelectDropdownPosition(e) {
20084
20279
  //#region src/lib/Select/Select.svelte
20085
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 = {
20086
20281
  hash: "svelte-52lifo",
20087
- 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 }"
20088
20283
  };
20089
20284
  function Select(e, t) {
20090
20285
  let n = props_id();
@@ -21006,14 +21201,8 @@ customElements.define("sui-select", create_custom_element(Select_wc, {
21006
21201
  innerControlIsNotTheValue: !0
21007
21202
  })));
21008
21203
  //#endregion
21009
- //#region src/lib/reduced-motion.svelte.ts
21010
- var query = typeof window < "u" && typeof window.matchMedia == "function" ? window.matchMedia("(prefers-reduced-motion: reduce)") : null, current = /* @__PURE__ */ state(proxy(query?.matches ?? !1));
21011
- query?.addEventListener("change", (e) => {
21012
- set(current, e.matches, !0);
21013
- });
21014
- var reducedMotion = { get current() {
21015
- return get(current);
21016
- } }, 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 = {
21017
21206
  hash: "svelte-1dln6bq",
21018
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;}"
21019
21208
  };
@@ -21052,16 +21241,28 @@ function Sheet(e, t) {
21052
21241
  duration: 300
21053
21242
  };
21054
21243
  }
21055
- });
21056
- function G() {
21057
- n(!1), S()?.();
21058
- }
21059
- function be(e) {
21060
- 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()?.());
21061
21259
  }
21062
21260
  function Me(e) {
21261
+ e.target === get(te) && s() && be();
21262
+ }
21263
+ function Re(e) {
21063
21264
  if ((e.key === "Enter" || e.key === " ") && s() && e.target === get(te)) {
21064
- e.preventDefault(), G();
21265
+ e.preventDefault(), be();
21065
21266
  return;
21066
21267
  }
21067
21268
  if (e.key === "Tab") {
@@ -21073,12 +21274,12 @@ function Sheet(e, t) {
21073
21274
  t !== null && (e.preventDefault(), t.focus());
21074
21275
  }
21075
21276
  }
21076
- function Re(e) {
21277
+ function Ue(e) {
21077
21278
  let t = getActiveElement(e), n = !0;
21078
21279
  lockBodyScroll();
21079
21280
  let i = registerDismissible({
21080
21281
  element: () => get(ne),
21081
- onEscape: G
21282
+ onEscape: be
21082
21283
  });
21083
21284
  return tick().then(() => {
21084
21285
  n && get(ne) !== null && get(ne).focus();
@@ -21088,14 +21289,14 @@ function Sheet(e, t) {
21088
21289
  t instanceof HTMLElement && t.isConnected && (a === null || a === document.body || e.contains(a)) && t.focus();
21089
21290
  } };
21090
21291
  }
21091
- function Ue() {
21292
+ function it() {
21092
21293
  typeof C() == "function" && C()();
21093
21294
  }
21094
- function it() {
21295
+ function at() {
21095
21296
  typeof k() == "function" && k()();
21096
21297
  }
21097
- let at = /* @__PURE__ */ user_derived(() => typeof u() == "number" && Number.isInteger(u()) && u() >= 1 && u() <= 6 ? `h${u()}` : null);
21098
- var ot = {
21298
+ let ot = /* @__PURE__ */ user_derived(() => typeof u() == "number" && Number.isInteger(u()) && u() >= 1 && u() <= 6 ? `h${u()}` : null);
21299
+ var ct = {
21099
21300
  get open() {
21100
21301
  return n();
21101
21302
  },
@@ -21186,12 +21387,12 @@ function Sheet(e, t) {
21186
21387
  set classes(e) {
21187
21388
  R(e), flushSync();
21188
21389
  }
21189
- }, ct = comment(), lt = first_child(ct), ut = (e) => {
21390
+ }, lt = comment(), ut = first_child(lt), dt = (e) => {
21190
21391
  var t = root_4$26(), n = child(t), u = child(n), S = (e) => {
21191
21392
  var t = root_2$34(), n = child(t), i = (e) => {
21192
21393
  var t = comment(), n = first_child(t), i = (e) => {
21193
21394
  var t = comment();
21194
- element(first_child(t), () => get(at), !1, (e, t) => {
21395
+ element(first_child(t), () => get(ot), !1, (e, t) => {
21195
21396
  set_class(e, 0, "sheet-title svelte-1dln6bq");
21196
21397
  var n = text();
21197
21398
  template_effect(() => set_text(n, a())), append(t, n);
@@ -21201,7 +21402,7 @@ function Sheet(e, t) {
21201
21402
  reset(t), template_effect(() => set_text(n, a())), append(e, t);
21202
21403
  };
21203
21404
  if_block(n, (e) => {
21204
- get(at) === null ? e(o, -1) : e(i);
21405
+ get(ot) === null ? e(o, -1) : e(i);
21205
21406
  }), append(e, t);
21206
21407
  };
21207
21408
  if_block(n, (e) => {
@@ -21210,7 +21411,7 @@ function Sheet(e, t) {
21210
21411
  var o = sibling(n, 2), s = (e) => {
21211
21412
  var t = root_1$45();
21212
21413
  Button(child(t), spread_props({
21213
- onclick: G,
21414
+ onclick: be,
21214
21415
  ariaLabel: "Close"
21215
21416
  }, () => typeof f() == "string" ? { testId: `${f()}-close` } : {}, {
21216
21417
  children: (e, t) => {
@@ -21228,19 +21429,19 @@ function Sheet(e, t) {
21228
21429
  });
21229
21430
  var C = sibling(u, 2);
21230
21431
  snippet(child(C), p), reset(C);
21231
- var k = sibling(C, 2), ot = (e) => {
21432
+ var k = sibling(C, 2), re = (e) => {
21232
21433
  var t = root_3$31();
21233
21434
  snippet(child(t), h), reset(t), append(e, t);
21234
21435
  };
21235
21436
  if_block(k, (e) => {
21236
- typeof h() == "function" && e(ot);
21237
- }), 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) => {
21238
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);
21239
- }, [() => 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);
21240
21441
  };
21241
- return if_block(lt, (e) => {
21242
- n() && e(ut);
21243
- }), append(e, ct), pop(ot);
21442
+ return if_block(ut, (e) => {
21443
+ n() && e(dt);
21444
+ }), append(e, lt), pop(ct);
21244
21445
  }
21245
21446
  delegate(["click", "keydown"]), create_custom_element(Sheet, {
21246
21447
  open: {},
@@ -22635,7 +22836,7 @@ delegate(["click", "keydown"]), create_custom_element(BuiltinCell, {
22635
22836
  //#region src/lib/assets/sort-default.svg?raw
22636
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 = {
22637
22838
  hash: "svelte-171ci2i",
22638
- 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 }"
22639
22840
  };
22640
22841
  function Table(e, t) {
22641
22842
  push(t, !0), append_styles$1(e, $$css$86);
@@ -23768,71 +23969,47 @@ customElements.define("sui-table", create_custom_element(Table_wc, {
23768
23969
  //#region src/lib/Toast/Toast.svelte
23769
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 = {
23770
23971
  hash: "svelte-37crwe",
23771
- 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);}"
23772
23973
  };
23773
23974
  function Toast(e, t) {
23774
23975
  push(t, !0), append_styles$1(e, $$css$84);
23775
- 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(() => [
23776
23977
  "toast",
23777
23978
  c() ?? "",
23778
23979
  G() ?? ""
23779
- ].filter((e) => e.length > 0).join(" "));
23780
- function Ue() {
23781
- 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;
23782
23995
  }
23783
- function it() {
23784
- ne()?.();
23996
+ let ot = /* @__PURE__ */ user_derived(() => at(p())), ct = /* @__PURE__ */ user_derived(() => at(S()));
23997
+ function lt() {
23998
+ set(be, !1);
23785
23999
  }
23786
- function at(e, t) {
23787
- let n = 0, i = 0, a = 0, o = 0;
23788
- switch (t) {
23789
- case "left-to-right":
23790
- n = -1 * (f() ?? 500), a = -1 * (h() ?? 500);
23791
- break;
23792
- case "right-to-left":
23793
- n = f() ?? 500, a = h() ?? 500;
23794
- break;
23795
- case "bottom-to-top":
23796
- i = f() ?? (e ? 500 : 20), o = h() ?? (e ? 500 : 20);
23797
- break;
23798
- default:
23799
- i = -1 * (f() ?? (e ? 500 : 20)), o = -1 * (h() ?? (e ? 100 : 20));
23800
- break;
23801
- }
23802
- return prefersReducedMotion() ? {
23803
- in: {
23804
- x: 0,
23805
- y: 0,
23806
- duration: 0
23807
- },
23808
- out: {
23809
- x: 0,
23810
- y: 0,
23811
- duration: 0
23812
- }
23813
- } : {
23814
- in: {
23815
- x: n,
23816
- y: i,
23817
- duration: p() ?? 400
23818
- },
23819
- out: {
23820
- x: a,
23821
- y: o,
23822
- duration: S() ?? 800
23823
- }
23824
- };
24000
+ function ut(e) {
24001
+ e.target === e.currentTarget && e.propertyName === "opacity" && !get(be) && ne()?.();
23825
24002
  }
23826
24003
  user_effect(() => {
23827
24004
  a(), n(), untrack(() => {
23828
- set(Me, !0);
24005
+ set(be, !0);
23829
24006
  });
23830
- let e = setTimeout(Ue, n());
24007
+ let e = setTimeout(lt, n());
23831
24008
  return () => {
23832
24009
  clearTimeout(e);
23833
24010
  };
23834
24011
  });
23835
- var ot = {
24012
+ var dt = {
23836
24013
  get duration() {
23837
24014
  return n();
23838
24015
  },
@@ -23947,63 +24124,66 @@ function Toast(e, t) {
23947
24124
  set classes(e) {
23948
24125
  G(e), flushSync();
23949
24126
  }
23950
- }, ct = comment(), lt = first_child(ct), ut = (e) => {
23951
- var t = root_3$27();
23952
- let n;
23953
- var c = child(t), l = (e) => {
23954
- var t = root$42();
23955
- Img(child(t), {
23956
- inlineSvg: !0,
23957
- get src() {
23958
- return i();
23959
- },
23960
- alt: "",
23961
- fallback: ""
23962
- }), reset(t), append(e, t);
23963
- };
23964
- if_block(c, (e) => {
23965
- typeof i() == "string" && i().length > 0 && e(l);
23966
- });
23967
- var f = sibling(c, 2), p = child(f), h = sibling(p), S = (e) => {
23968
- var t = root_1$39(), n = child(t, !0);
23969
- reset(t), template_effect(() => {
23970
- set_attribute(t, "data-pw", R()), set_attribute(t, "testid", R()), set_text(n, o());
23971
- }), append(e, t);
23972
- };
23973
- if_block(h, (e) => {
23974
- typeof o() == "string" && o().length > 0 && e(S);
23975
- });
23976
- var ne = sibling(h, 2), G = (e) => {
23977
- var t = comment();
23978
- snippet(first_child(t), re), append(e, t);
23979
- };
23980
- if_block(ne, (e) => {
23981
- typeof re() == "function" && e(G);
23982
- }), reset(f);
23983
- var Me = sibling(f, 2), at = (e) => {
23984
- var t = root_2$30();
23985
- Img(child(t), {
23986
- inlineSvg: !0,
23987
- get src() {
23988
- return s();
23989
- },
23990
- alt: "Close",
23991
- fallback: ""
23992
- }), reset(t), template_effect(() => {
23993
- set_attribute(t, "data-pw", te()), set_attribute(t, "testid", te());
23994
- }), delegated("click", t, Ue), delegated("keydown", t, (e) => {
23995
- (e.key === "Enter" || e.key === " ") && (e.preventDefault(), Ue());
23996
- }), append(e, t);
23997
- };
23998
- if_block(Me, (e) => {
23999
- 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: ""
24000
24168
  }), reset(t), template_effect(() => {
24001
- 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() ?? ""} `);
24002
- }), 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);
24003
24173
  };
24004
- return if_block(lt, (e) => {
24005
- get(Me) && e(ut);
24006
- }), 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);
24007
24187
  }
24008
24188
  delegate(["click", "keydown"]), create_custom_element(Toast, {
24009
24189
  duration: {},
@@ -34849,7 +35029,7 @@ function dismissOnOutsidePointerDown(e, t) {
34849
35029
  //#region src/lib/PieChart/PieChart.svelte
34850
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 = {
34851
35031
  hash: "svelte-1478ug",
34852
- 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;}"
34853
35033
  };
34854
35034
  function PieChart(e, t) {
34855
35035
  let n = props_id();
@@ -35590,7 +35770,7 @@ customElements.define("sui-pie-chart", create_custom_element(PieChart_wc, {
35590
35770
  //#region src/lib/SankeyChart/SankeyChart.svelte
35591
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 = {
35592
35772
  hash: "svelte-1rqxby",
35593
- 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;}"
35594
35774
  };
35595
35775
  function SankeyChart(e, t) {
35596
35776
  push(t, !0), append_styles$1(e, $$css$64);
@@ -36543,7 +36723,7 @@ function formatSeriesAggregate(e, t, n) {
36543
36723
  //#region src/lib/AreaChart/AreaChart.svelte
36544
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 = {
36545
36725
  hash: "svelte-63gwba",
36546
- 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;}"
36547
36727
  };
36548
36728
  function AreaChart(e, t) {
36549
36729
  push(t, !0), append_styles$1(e, $$css$61);
@@ -37392,7 +37572,7 @@ customElements.define("sui-area-chart", create_custom_element(AreaChart_wc, {
37392
37572
  //#region src/lib/BarChart/BarChart.svelte
37393
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 = {
37394
37574
  hash: "svelte-1mivkru",
37395
- 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;}"
37396
37576
  };
37397
37577
  function BarChart(e, t) {
37398
37578
  push(t, !0), append_styles$1(e, $$css$59);
@@ -38525,7 +38705,7 @@ customElements.define("sui-bar-chart", create_custom_element(BarChart_wc, {
38525
38705
  //#region src/lib/DualAxisBarChart/DualAxisBarChart.svelte
38526
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 = {
38527
38707
  hash: "svelte-1rqgr0s",
38528
- 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;}"
38529
38709
  };
38530
38710
  function DualAxisBarChart(e, t) {
38531
38711
  push(t, !0), append_styles$1(e, $$css$57);
@@ -39153,7 +39333,7 @@ customElements.define("sui-dual-axis-bar-chart", create_custom_element(DualAxisB
39153
39333
  //#region src/lib/FunnelChart/FunnelChart.svelte
39154
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 = {
39155
39335
  hash: "svelte-1ork53m",
39156
- 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;}"
39157
39337
  };
39158
39338
  function FunnelChart(e, t) {
39159
39339
  push(t, !0), append_styles$1(e, $$css$55);
@@ -39563,7 +39743,7 @@ customElements.define("sui-funnel-chart", create_custom_element(FunnelChart_wc,
39563
39743
  //#region src/lib/LineChart/LineChart.svelte
39564
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 = {
39565
39745
  hash: "svelte-1iyxwjy",
39566
- 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;}"
39567
39747
  };
39568
39748
  function LineChart(e, t) {
39569
39749
  let n = props_id();
@@ -41137,7 +41317,7 @@ customElements.define("sui-draggable", create_custom_element(Draggable_wc, {
41137
41317
  //#region src/lib/assets/play.svg?raw
41138
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 = {
41139
41319
  hash: "svelte-16jqa96",
41140
- 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;}"
41141
41321
  };
41142
41322
  function MediaPlayer(e, t) {
41143
41323
  push(t, !0), append_styles$1(e, $$css$47);
@@ -41806,7 +41986,7 @@ customElements.define("sui-media-player", create_custom_element(MediaPlayer_wc,
41806
41986
  //#region src/lib/assets/add.svg?raw
41807
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 = {
41808
41988
  hash: "svelte-nabf7u",
41809
- 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 }"
41810
41990
  };
41811
41991
  function MediaUpload(e, t) {
41812
41992
  let n = props_id();
@@ -42644,7 +42824,7 @@ var edit_default = "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.
42644
42824
  }), append(e, i);
42645
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 = {
42646
42826
  hash: "svelte-14wkit2",
42647
- 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);}"
42648
42828
  };
42649
42829
  function Gallery(e, t) {
42650
42830
  push(t, !0), append_styles$1(e, $$css$39);
@@ -42716,41 +42896,50 @@ function Gallery(e, t) {
42716
42896
  unlockBodyScroll(), dt !== null && (dt.focus(), dt = null);
42717
42897
  } };
42718
42898
  }
42719
- 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) {
42720
42909
  t instanceof HTMLElement && (dt = t), s(e), o(!0), be()?.(e);
42721
42910
  }
42722
- function St() {
42911
+ function wt() {
42723
42912
  o(!1), Me()?.();
42724
42913
  }
42725
- async function Ct(e) {
42914
+ async function Tt(e) {
42726
42915
  e < 0 || e >= i().length || (s(e), Re()?.(s()), await tick(), get(ot) !== null && !get(ot).contains(getActiveElement(get(ot))) && get(ot).focus());
42727
42916
  }
42728
- function wt() {
42729
- 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);
42730
42919
  }
42731
- function Tt() {
42732
- 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);
42733
42922
  }
42734
- function Et(e, t) {
42735
- ne()?.(e, t), c() && xt(e, t.currentTarget);
42923
+ function Ot(e, t) {
42924
+ ne()?.(e, t), c() && Ct(e, t.currentTarget);
42736
42925
  }
42737
- function Dt(e, t) {
42926
+ function kt(e, t) {
42738
42927
  re()?.(e, t);
42739
42928
  }
42740
- function Ot(e, t) {
42929
+ function At(e, t) {
42741
42930
  G()?.(e, t);
42742
42931
  }
42743
- function kt(e) {
42932
+ function jt(e) {
42744
42933
  let t = get(ct)?.querySelector("button") ?? null, n = (get(ut) ?? get(lt) ?? get(ct))?.querySelector("button") ?? null;
42745
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()));
42746
42935
  }
42747
- function At(e) {
42748
- 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);
42749
42938
  }
42750
- function jt(e) {
42751
- e.target === get(ot) && St();
42939
+ function Nt(e) {
42940
+ e.target === get(ot) && wt();
42752
42941
  }
42753
- var Mt = {
42942
+ var Pt = {
42754
42943
  get images() {
42755
42944
  return i();
42756
42945
  },
@@ -42895,11 +43084,11 @@ function Gallery(e, t) {
42895
43084
  set lightboxTransitionDuration(e) {
42896
43085
  at(e), flushSync();
42897
43086
  }
42898
- }, Nt = root_15$1(), Pt = first_child(Nt);
42899
- 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) => {
42900
43089
  var o = root_8$6(), s = child(o), l = (e) => {
42901
43090
  var o = root_4$9();
42902
- 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);
42903
43092
  }, u = (e) => {
42904
43093
  var i = root_5$8();
42905
43094
  n(child(i), () => get(t), () => a), reset(i), append(e, i);
@@ -42916,7 +43105,7 @@ function Gallery(e, t) {
42916
43105
  get ariaLabel() {
42917
43106
  return get(e);
42918
43107
  },
42919
- onclick: (e) => Dt(a, e),
43108
+ onclick: (e) => kt(a, e),
42920
43109
  children: (e, t) => {
42921
43110
  controlIcon(e, () => edit_default, C);
42922
43111
  },
@@ -42936,7 +43125,7 @@ function Gallery(e, t) {
42936
43125
  get ariaLabel() {
42937
43126
  return get(e);
42938
43127
  },
42939
- onclick: (e) => Ot(a, e),
43128
+ onclick: (e) => At(a, e),
42940
43129
  children: (e, t) => {
42941
43130
  controlIcon(e, () => delete_default, k);
42942
43131
  },
@@ -42952,12 +43141,12 @@ function Gallery(e, t) {
42952
43141
  if_block(f, (e) => {
42953
43142
  get(yt) && e(p);
42954
43143
  }), reset(o), append(e, o);
42955
- }), reset(Pt);
42956
- var It = sibling(Pt, 2), Lt = (e) => {
43144
+ }), reset(Lt);
43145
+ var Rt = sibling(Lt, 2), zt = (e) => {
42957
43146
  var t = root_14$1(), n = child(t);
42958
43147
  Button(child(n), {
42959
43148
  ariaLabel: "Close gallery",
42960
- onclick: St,
43149
+ onclick: wt,
42961
43150
  children: (e, t) => {
42962
43151
  controlIcon(e, () => close_default, S);
42963
43152
  },
@@ -42967,7 +43156,7 @@ function Gallery(e, t) {
42967
43156
  var t = root_9$5();
42968
43157
  Button(child(t), {
42969
43158
  ariaLabel: "Previous image",
42970
- onclick: wt,
43159
+ onclick: Et,
42971
43160
  children: (e, t) => {
42972
43161
  controlIcon(e, () => chevron_left_lg_default, p);
42973
43162
  },
@@ -43005,7 +43194,7 @@ function Gallery(e, t) {
43005
43194
  var t = root_12$2();
43006
43195
  Button(child(t), {
43007
43196
  ariaLabel: "Next image",
43008
- onclick: Tt,
43197
+ onclick: Dt,
43009
43198
  children: (e, t) => {
43010
43199
  controlIcon(e, () => chevron_right_lg_default, h);
43011
43200
  },
@@ -43023,13 +43212,13 @@ function Gallery(e, t) {
43023
43212
  u() && typeof get(ft) == "object" && e(te);
43024
43213
  }), reset(t), bind_this(t, (e) => set(ot, e), () => get(ot)), action(t, (e) => bt?.(e)), template_effect(() => {
43025
43214
  set_class(t, 1, `lightbox ${it() ?? "" ?? ""}`, "svelte-14wkit2"), set_attribute(t, "aria-label", typeof get(ft) == "object" ? get(ft).alt : "Image gallery");
43026
- }), 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);
43027
43216
  };
43028
- return if_block(It, (e) => {
43029
- o() && e(Lt);
43217
+ return if_block(Rt, (e) => {
43218
+ o() && e(zt);
43030
43219
  }), template_effect(() => {
43031
- set_class(Pt, 1, `gallery ${a() ?? ""} ${get(gt) ? "has-item-footer" : ""} ${it() ?? "" ?? ""}`, "svelte-14wkit2"), set_attribute(Pt, "data-pw", typeof te() == "string" ? te() : null);
43032
- }), 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);
43033
43222
  }
43034
43223
  delegate(["click", "keydown"]), create_custom_element(Gallery, {
43035
43224
  images: {},
@@ -51856,7 +52045,7 @@ delegate(["click"]), create_custom_element(ChatSuggestions, {
51856
52045
  //#region src/lib/ThinkingIndicator/ThinkingIndicator.svelte
51857
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 = {
51858
52047
  hash: "svelte-uzfrw6",
51859
- 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 }"
51860
52049
  };
51861
52050
  function ThinkingIndicator(e, t) {
51862
52051
  push(t, !0), append_styles$1(e, $$css$30);
@@ -54175,7 +54364,7 @@ customElements.define("sui-chat-tool-status", create_custom_element(ChatToolStat
54175
54364
  //#region src/lib/assets/chat.svg?raw
54176
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 = {
54177
54366
  hash: "svelte-15b7gm8",
54178
- 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 }"
54179
54368
  };
54180
54369
  function ChatBubble(e, t) {
54181
54370
  push(t, !0), append_styles$1(e, $$css$18);
@@ -54714,7 +54903,7 @@ var diffstatBadges = (e, t = noop) => {
54714
54903
  }), append(e, n);
54715
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 = {
54716
54905
  hash: "svelte-1vnfzde",
54717
- 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 }"
54718
54907
  };
54719
54908
  function ToolCallLog(e, t) {
54720
54909
  push(t, !0), append_styles$1(e, $$css$16);
@@ -54906,7 +55095,7 @@ customElements.define("sui-tool-call-log", create_custom_element(ToolCallLog_wc,
54906
55095
  //#region src/lib/TaskList/TaskList.svelte
54907
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 = {
54908
55097
  hash: "svelte-1te9fae",
54909
- 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 }"
54910
55099
  };
54911
55100
  function TaskList(e, t) {
54912
55101
  push(t, !0), append_styles$1(e, $$css$14);
@@ -56098,7 +56287,7 @@ customElements.define("sui-aspect-ratio", create_custom_element(AspectRatio_wc,
56098
56287
  //#region src/lib/assets/star.svg?raw
56099
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 = {
56100
56289
  hash: "svelte-1c91y9i",
56101
- 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;}"
56102
56291
  };
56103
56292
  function RatingGroup(e, t) {
56104
56293
  push(t, !0), append_styles$1(e, $$css$1);