@mkbabb/glass-ui 3.0.0 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/dist/{CardFooter-Yi0xtLLd.js → CardFooter-CSGcJkqa.js} +1 -1
  2. package/dist/{CommandShortcut-BNDzfFnB.js → CommandShortcut-DWT19a2Y.js} +3 -3
  3. package/dist/{ContextMenuSubContent-DLEyeqbh.js → ContextMenuSubContent-gAFxJ-qi.js} +4 -4
  4. package/dist/{DataTable-Ce00dbHD.js → DataTable-R8-Zidms.js} +3 -3
  5. package/dist/{DialogContent-DSo7PKlU.js → DialogContent-2fALDSvc.js} +3 -3
  6. package/dist/{DialogFooter-D5KY6sCX.js → DialogFooter-ClrNEOVU.js} +2 -2
  7. package/dist/{DiscoGlyph-wRA02zAJ.js → DiscoGlyph-C3JfMnRV.js} +1 -1
  8. package/dist/{GlyphFace-BnPMUZ16.js → GlyphFace-BRS8vUb7.js} +1 -1
  9. package/dist/HoverPopover-CWFCfLx3.js +96 -0
  10. package/dist/{IconTooltip-GIeWdo64.js → IconTooltip-BkaA7tZ2.js} +1 -1
  11. package/dist/{Input-CBvqW8kZ.js → Input-DDpFn568.js} +3 -5
  12. package/dist/Label-DJty89bp.js +36 -0
  13. package/dist/{MetricBadge-DRBB18Xq.js → MetricBadge-DmAihkXd.js} +1 -1
  14. package/dist/{Notification-D97JO0fK.js → Notification-OqIpADml.js} +3 -3
  15. package/dist/NumberFieldContent-DTH9gb_N.js +141 -0
  16. package/dist/{PopoverContent-BCH4eYs8.js → PopoverContent-EiklFrna.js} +1 -1
  17. package/dist/{Progress-CCH-2UBR.js → Progress-FApA9fm_.js} +1 -1
  18. package/dist/{ScrollingText-7P8skg5W.js → ScrollingText-BFd0i2zJ.js} +2 -2
  19. package/dist/{SelectScrollDownButton-BwTexKeY.js → SelectScrollDownButton-Dth8-wXQ.js} +4 -4
  20. package/dist/{Toaster-CY8gJu9E.js → Toaster-Bjlunvq4.js} +1 -1
  21. package/dist/UnderlineTabs-DAWMLmJG.js +37 -0
  22. package/dist/animated-digit.js +2 -2
  23. package/dist/api/index.d.ts +2 -0
  24. package/dist/api.js +1 -1
  25. package/dist/aurora.js +3 -3
  26. package/dist/badge.js +1 -1
  27. package/dist/{button-BlOW34DT.js → button-C0aHmBbt.js} +2 -0
  28. package/dist/button.js +1 -1
  29. package/dist/card.js +1 -1
  30. package/dist/carousel.js +5 -5
  31. package/dist/{check-Nuw7H9Yh.js → check-dwgetki8.js} +1 -1
  32. package/dist/{chevron-down-Du2b9vY_.js → chevron-down-DILQA1t6.js} +1 -1
  33. package/dist/{chevron-right-CtDxpE3w.js → chevron-right-fS7fal2t.js} +1 -1
  34. package/dist/{chevron-up-CenYokvI.js → chevron-up-BtYjYQOS.js} +1 -1
  35. package/dist/collapsible.js +1 -1
  36. package/dist/command.js +1 -1
  37. package/dist/components/custom/dialog-native/GlassDialogNative.vue.d.ts +57 -0
  38. package/dist/components/custom/dialog-native/index.d.ts +1 -0
  39. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +20 -10
  40. package/dist/components/custom/hover-popover/HoverPopover.vue.d.ts +26 -4
  41. package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +16 -2
  42. package/dist/components/custom/labeled-field/LabeledInput.vue.d.ts +17 -1
  43. package/dist/components/custom/labeled-field/LabeledSelect.vue.d.ts +2 -0
  44. package/dist/components/custom/labeled-field/LabeledSlider.vue.d.ts +2 -0
  45. package/dist/components/custom/labeled-field/LabeledSwitch.vue.d.ts +2 -0
  46. package/dist/components/ui/input/Input.vue.d.ts +10 -7
  47. package/dist/components/ui/label/Label.vue.d.ts +8 -0
  48. package/dist/components/ui/textarea/Textarea.vue.d.ts +45 -8
  49. package/dist/composables/dom/index.d.ts +1 -0
  50. package/dist/composables/dom/useUserInvalidAria.d.ts +32 -0
  51. package/dist/composables/motion/core/index.d.ts +2 -0
  52. package/dist/composables/motion/supportsCssTimeline.d.ts +8 -0
  53. package/dist/composables/motion/useRAFLoop.d.ts +7 -0
  54. package/dist/composables/motion/useScrollProgress.d.ts +6 -2
  55. package/dist/composables/motion/useStaggerReveal.d.ts +6 -0
  56. package/dist/composables/motion/useViewTransition.d.ts +31 -0
  57. package/dist/composables/motion/useYieldToMain.d.ts +29 -0
  58. package/dist/configurator.js +1 -1
  59. package/dist/confirm-dialog.js +3 -3
  60. package/dist/context-menu.js +2 -2
  61. package/dist/controls.js +2 -2
  62. package/dist/{createLucideIcon-rHu18UQW.js → createLucideIcon-Bn9a1b70.js} +2 -2
  63. package/dist/dark.js +1 -1
  64. package/dist/data-table.js +1 -1
  65. package/dist/dialog.js +2 -2
  66. package/dist/disco-glyph.js +1 -1
  67. package/dist/dock.js +215 -196
  68. package/dist/dom.js +5 -4
  69. package/dist/{dropdown-menu-gHSkffW7.js → dropdown-menu-BvRUamNs.js} +4 -4
  70. package/dist/dropdown-menu.js +1 -1
  71. package/dist/expandable-container.js +4 -4
  72. package/dist/forms.d.ts +1 -0
  73. package/dist/forms.js +47 -42
  74. package/dist/glass-carousel.js +1 -1
  75. package/dist/glass-panel.js +2 -2
  76. package/dist/glass-ui.css +1 -1
  77. package/dist/glass-ui.js +156 -275
  78. package/dist/glyph-face.js +2 -2
  79. package/dist/header-ribbon.js +1 -1
  80. package/dist/hover-card.js +1 -1
  81. package/dist/hover-popover.js +1 -1
  82. package/dist/icon-tooltip.js +1 -1
  83. package/dist/index.d.ts +1 -0
  84. package/dist/instrument-chassis.js +1 -1
  85. package/dist/instrument-rail.js +1 -1
  86. package/dist/keyboard.js +1 -1
  87. package/dist/label.js +1 -1
  88. package/dist/labeled-field.js +96 -57
  89. package/dist/metric-badge.js +1 -1
  90. package/dist/metric-stack.js +1 -1
  91. package/dist/{minimize-2-C_oyKVwZ.js → minimize-2-LsCJ_eNt.js} +1 -1
  92. package/dist/motion-core.js +135 -98
  93. package/dist/motion.js +3 -3
  94. package/dist/notification.js +1 -1
  95. package/dist/number-field.d.ts +1 -0
  96. package/dist/number-field.js +2 -0
  97. package/dist/paper-backdrop.js +1 -1
  98. package/dist/popover.js +1 -1
  99. package/dist/progress.js +1 -1
  100. package/dist/pulse.js +1 -1
  101. package/dist/reactive.js +2 -2
  102. package/dist/responsive-tabs.js +3 -3
  103. package/dist/scrolling-text.js +1 -1
  104. package/dist/{search-7XEx_6hq.js → search-DBAiUABx.js} +1 -1
  105. package/dist/search.js +7 -7
  106. package/dist/select.js +3 -3
  107. package/dist/separator.js +1 -1
  108. package/dist/{sheet-BsBdO5jq.js → sheet-CukNDezz.js} +53 -53
  109. package/dist/sheet.js +1 -1
  110. package/dist/{slider-BQaLYFLh.js → slider-DJvHkTRe.js} +3 -3
  111. package/dist/slider.js +1 -1
  112. package/dist/sortable-list.js +2 -2
  113. package/dist/styles/animations.css +77 -0
  114. package/dist/styles/cards.css +6 -2
  115. package/dist/styles/dock.css +37 -14
  116. package/dist/styles/glass.css +89 -6
  117. package/dist/styles/index.css +10 -1
  118. package/dist/styles/scroll-driven.css +72 -0
  119. package/dist/styles/theme.css +3 -0
  120. package/dist/styles/tokens.css +237 -24
  121. package/dist/styles/typography.css +21 -0
  122. package/dist/styles/utilities.css +176 -23
  123. package/dist/styles/view-transition.css +62 -0
  124. package/dist/switch.d.ts +1 -0
  125. package/dist/switch.js +2 -0
  126. package/dist/tabs.js +40 -36
  127. package/dist/timeline.js +2 -2
  128. package/dist/toast.js +1 -1
  129. package/dist/toggle-group.js +1 -1
  130. package/dist/tooltip.js +1 -1
  131. package/dist/typewriter.js +1 -1
  132. package/dist/{useAnimatedNumber-2l13GibX.js → useAnimatedNumber-DKQYVB7s.js} +1 -1
  133. package/dist/{useConfiguratorState-BpZi8QJu.js → useConfiguratorState-CtRBE0m_.js} +8 -6
  134. package/dist/{useIdleReady-DlzJicQH.js → useIdleReady-Cmkhm03v.js} +1 -1
  135. package/dist/{useTouchGate-BhhEMlwJ.js → useTouchGate-D9Zvrzyc.js} +1 -1
  136. package/dist/useUserInvalidAria-DVu1eTXG.js +29 -0
  137. package/dist/useViewTransition-DYIK6Gzb.js +16 -0
  138. package/dist/utils/index.d.ts +1 -0
  139. package/dist/utils/moveBefore.d.ts +15 -0
  140. package/dist/{x-Cb3NE2Ne.js → x-q7pJa83X.js} +1 -1
  141. package/package.json +19 -4
  142. package/src/styles/animations.css +77 -0
  143. package/src/styles/cards.css +6 -2
  144. package/src/styles/dock.css +37 -14
  145. package/src/styles/glass.css +89 -6
  146. package/src/styles/index.css +10 -1
  147. package/src/styles/scroll-driven.css +72 -0
  148. package/src/styles/theme.css +3 -0
  149. package/src/styles/tokens.css +237 -24
  150. package/src/styles/typography.css +21 -0
  151. package/src/styles/utilities.css +176 -23
  152. package/src/styles/view-transition.css +62 -0
  153. package/dist/HoverPopover-Btv4RQfv.js +0 -80
  154. package/dist/Label-C8QMJSsf.js +0 -32
  155. package/dist/UnderlineTabs-BtrUcXn-.js +0 -64
  156. /package/dist/{CollapsibleContent-DHRuXE3P.js → CollapsibleContent-CVMOcYlV.js} +0 -0
  157. /package/dist/{ContextMenuContent-CvXfU5qz.js → ContextMenuContent-otjFIu8v.js} +0 -0
  158. /package/dist/{HoverCardContent-4nN5-5bz.js → HoverCardContent-DaGrgJBO.js} +0 -0
  159. /package/dist/{InstrumentChassis-DOaVYyWq.js → InstrumentChassis-CnHTMxds.js} +0 -0
  160. /package/dist/{InstrumentRail-jHDqXj70.js → InstrumentRail-C6dEbi8E.js} +0 -0
  161. /package/dist/{ModalOverlay-DKLVY-cj.js → ModalOverlay-iWiAgbYH.js} +0 -0
  162. /package/dist/{PaperBackdrop-Bc2drCqJ.js → PaperBackdrop-CeZ-w0R0.js} +0 -0
  163. /package/dist/{SelectGroup-O69GTQ77.js → SelectGroup-DdR4tdDY.js} +0 -0
  164. /package/dist/{SelectSeparator-GTHxKO0a.js → SelectSeparator-CXm_hlqA.js} +0 -0
  165. /package/dist/{Separator-_NCypg_C.js → Separator-D8AUMhxY.js} +0 -0
  166. /package/dist/{Switch-CL0uxu8F.js → Switch-Cr1t_F_U.js} +0 -0
  167. /package/dist/{ToggleGroupItem-BYG_8M9M.js → ToggleGroupItem-OesUouE7.js} +0 -0
  168. /package/dist/{TooltipProvider-C5QLSPto.js → TooltipProvider-DE78vbEP.js} +0 -0
  169. /package/dist/{_plugin-vue_export-helper-n-_DRHWS.js → _plugin-vue_export-helper-Dq1MygBL.js} +0 -0
  170. /package/dist/{badge-BbxVKZfw.js → badge-x46my_Fo.js} +0 -0
  171. /package/dist/{constants-D-8FN28s.js → constants-DwBwnG8N.js} +0 -0
  172. /package/dist/{dockContext-BDGSrwsV.js → dockContext-D5NZCWJs.js} +0 -0
  173. /package/dist/{keys-DVkcUktU.js → keys-CaTQS-vx.js} +0 -0
  174. /package/dist/{menuItemVariants-B2nDL7zH.js → menuItemVariants-BsbGNq9C.js} +0 -0
  175. /package/dist/{presets-BMzCDrmR.js → presets-a-D93K1S.js} +0 -0
  176. /package/dist/{useGlassRenderer-DMDdMH55.js → useGlassRenderer-Ds-nmrGz.js} +0 -0
  177. /package/dist/{useGlobalDark-PMiP5Jku.js → useGlobalDark-B0WvLJE3.js} +0 -0
  178. /package/dist/{useIntersectionPause-CXYfYg_C.js → useIntersectionPause-IY2CwPQb.js} +0 -0
  179. /package/dist/{useInterval-COlTCeVa.js → useInterval-DVgGUf_y.js} +0 -0
  180. /package/dist/{useKeyboardShortcuts-CPO4AhLx.js → useKeyboardShortcuts-Dpw_RUcB.js} +0 -0
  181. /package/dist/{useResizeObserver-F4aRR4Cj.js → useResizeObserver-Cg9npuM3.js} +0 -0
  182. /package/dist/{useSortable-Ck0rBJ4g.js → useSortable-Cq2Y1JLO.js} +0 -0
  183. /package/dist/{useSpringMount-BTRBNzXP.js → useSpringMount-Cfk1XK1R.js} +0 -0
  184. /package/dist/{useTimer-lp5NlH4w.js → useTimer-NAaj9zNq.js} +0 -0
package/dist/button.js CHANGED
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./button-BlOW34DT.js";
1
+ import { n as e, t } from "./button-C0aHmBbt.js";
2
2
  export { e as Button, t as buttonVariants };
package/dist/card.js CHANGED
@@ -1,2 +1,2 @@
1
- import { a as e, i as t, n, o as r, r as i, t as a } from "./CardFooter-Yi0xtLLd.js";
1
+ import { a as e, i as t, n, o as r, r as i, t as a } from "./CardFooter-CSGcJkqa.js";
2
2
  export { r as Card, n as CardContent, i as CardDescription, a as CardFooter, e as CardHeader, t as CardTitle };
package/dist/carousel.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { t as e } from "./cn-DJXf4yaB.js";
2
- import { t } from "./createLucideIcon-rHu18UQW.js";
3
- import { t as n } from "./chevron-down-Du2b9vY_.js";
4
- import { t as r } from "./chevron-right-CtDxpE3w.js";
5
- import { t as i } from "./chevron-up-CenYokvI.js";
6
- import { n as a } from "./button-BlOW34DT.js";
2
+ import { t } from "./createLucideIcon-Bn9a1b70.js";
3
+ import { t as n } from "./chevron-down-DILQA1t6.js";
4
+ import { t as r } from "./chevron-right-fS7fal2t.js";
5
+ import { t as i } from "./chevron-up-BtYjYQOS.js";
6
+ import { n as a } from "./button-C0aHmBbt.js";
7
7
  import { Fragment as o, computed as s, createBlock as c, createCommentVNode as l, createElementBlock as u, createElementVNode as d, createVNode as f, defineComponent as p, mergeProps as m, normalizeClass as h, onMounted as g, openBlock as _, ref as v, renderList as y, renderSlot as b, resolveDynamicComponent as x, toDisplayString as S, unref as C, watch as w, withCtx as T } from "vue";
8
8
  import { createInjectionState as E } from "@vueuse/core";
9
9
  import D from "embla-carousel-vue";
@@ -1,4 +1,4 @@
1
- import { t as e } from "./createLucideIcon-rHu18UQW.js";
1
+ import { t as e } from "./createLucideIcon-Bn9a1b70.js";
2
2
  var t = e("check", [["path", {
3
3
  d: "M20 6 9 17l-5-5",
4
4
  key: "1gmf2c"
@@ -1,4 +1,4 @@
1
- import { t as e } from "./createLucideIcon-rHu18UQW.js";
1
+ import { t as e } from "./createLucideIcon-Bn9a1b70.js";
2
2
  var t = e("chevron-down", [["path", {
3
3
  d: "m6 9 6 6 6-6",
4
4
  key: "qrunsl"
@@ -1,4 +1,4 @@
1
- import { t as e } from "./createLucideIcon-rHu18UQW.js";
1
+ import { t as e } from "./createLucideIcon-Bn9a1b70.js";
2
2
  var t = e("chevron-right", [["path", {
3
3
  d: "m9 18 6-6-6-6",
4
4
  key: "mthhwq"
@@ -1,4 +1,4 @@
1
- import { t as e } from "./createLucideIcon-rHu18UQW.js";
1
+ import { t as e } from "./createLucideIcon-Bn9a1b70.js";
2
2
  var t = e("chevron-up", [["path", {
3
3
  d: "m18 15-6-6-6 6",
4
4
  key: "153udz"
@@ -1,2 +1,2 @@
1
- import { n as e, r as t, t as n } from "./CollapsibleContent-DHRuXE3P.js";
1
+ import { n as e, r as t, t as n } from "./CollapsibleContent-CVMOcYlV.js";
2
2
  export { t as Collapsible, n as CollapsibleContent, e as CollapsibleTrigger };
package/dist/command.js CHANGED
@@ -1,2 +1,2 @@
1
- import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c } from "./CommandShortcut-BNDzfFnB.js";
1
+ import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c } from "./CommandShortcut-DWT19a2Y.js";
2
2
  export { r as Command, t as CommandDialog, s as CommandEmpty, a as CommandGroup, e as CommandInput, n as CommandItem, o as CommandList, i as CommandSeparator, c as CommandShortcut };
@@ -0,0 +1,57 @@
1
+ /**
2
+ * <GlassDialogNative> — the native-`<dialog>` glass pilot (AQ.W6 §Design 5).
3
+ *
4
+ * A real `<dialog class="glass-top-layer">` top-layer surface. Entry/exit is
5
+ * PURE CSS from the `.glass-top-layer` grammar (`@starting-style` + `overlay` +
6
+ * `allow-discrete` + a glass `::backdrop`; animations.css §TOP-LAYER) — no
7
+ * per-frame JS, no `useSpringMount`. Light-dismiss is the native `closedby="any"`
8
+ * with a ≤ 12-LOC backdrop-click shim as the feature-detected fallback for
9
+ * engines without `HTMLDialogElement.closedBy`.
10
+ *
11
+ * DISPOSITION (W8 overfitting audit): this is the simple-confirm/settings PILOT
12
+ * only — one heading, optional short form, a close action. reka-ui `Dialog` is
13
+ * UNCHANGED and stays the default for every compound focus-trap case (nested
14
+ * focus zones, async content, the drag-dismiss `spring` opt-in). The pilot ships
15
+ * gated to a demo story (its consumer) pending the muster J.W6 ≥2-consumer
16
+ * adoption; it is NOT on the public barrel or a flat subpath yet (no overfit
17
+ * surface). `commandfor`/`command` (Baseline LIMITED) is the PREFERRED trigger
18
+ * wiring where supported; the JS `showModal()`/`close()` path (exposed below)
19
+ * is the kept default for non-supporting targets.
20
+ *
21
+ * Baseline: `<dialog>` + `showModal` = Widely; `dialog-closedby` = Newly
22
+ * (≤ 20-LOC shim fallback); `invoker-commands` (`commandfor`) = LIMITED
23
+ * (progressive — the JS open path stays default).
24
+ */
25
+ type __VLS_Props = {
26
+ /** Light-dismiss on backdrop/Esc — `closedby="any"`. Default true. */
27
+ lightDismiss?: boolean;
28
+ /** id so a sibling `<button commandfor=… command="show-modal">` can
29
+ * target this dialog (the declarative-open path). */
30
+ id?: string;
31
+ /** `aria-labelledby` target — the id of the consumer's heading. */
32
+ labelledby?: string;
33
+ /** Class merged onto the `<dialog>` surface. */
34
+ class?: string;
35
+ };
36
+ declare function showModal(): void;
37
+ declare function close(returnValue?: string): void;
38
+ declare var __VLS_1: {
39
+ close: typeof close;
40
+ };
41
+ type __VLS_Slots = {} & {
42
+ default?: (props: typeof __VLS_1) => any;
43
+ };
44
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
45
+ showModal: typeof showModal;
46
+ close: typeof close;
47
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
48
+ lightDismiss: boolean;
49
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
50
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
51
+ declare const _default: typeof __VLS_export;
52
+ export default _default;
53
+ type __VLS_WithSlots<T, S> = T & {
54
+ new (): {
55
+ $slots: S;
56
+ };
57
+ };
@@ -0,0 +1 @@
1
+ export { default as GlassDialogNative } from "./GlassDialogNative.vue";
@@ -19,16 +19,26 @@ export interface UseLayerTransitionReturn {
19
19
  leavingLayer: Ref<string | null>;
20
20
  }
21
21
  /**
22
- * Coordinates simultaneous crossfade + FLIP size animation for
23
- * grid-stacked layer containers. Reusable at any nesting level.
22
+ * Coordinates the crossfade + size animation between grid-stacked dock layer
23
+ * panes. Reusable at any nesting level (the inner `<DockLayerGroup>` pair AND
24
+ * the outer GlassDock collapsed↔expanded pair).
24
25
  *
25
- * Algorithm on activeLayer change:
26
- * 1. Capture current container size
27
- * 2. Pin container to that size
28
- * 3. Swap classes: old layer leaving (absolute, fading out),
29
- * new layer active (relative, fading in)
30
- * 4. nextTick: measure new natural size, re-pin to old
31
- * 5. Animate to new size via CSS transition
32
- * 6. On transitionend(size), clear inline size
26
+ * AQ.W6 §Design 7 — the swap FORKS on View-Transitions support:
27
+ *
28
+ * - **Native path** (`document.startViewTransition` present): the layer swap is
29
+ * wrapped in `startViewTransition(() => mutate())`. The browser snapshots the
30
+ * container + panes (tagged `view-transition-name` in `dock.css`) and morphs
31
+ * the size + crossfades the pane content with ZERO `getBoundingClientRect`
32
+ * reads. No pin/measure/re-pin dance, no inline size, no rAF.
33
+ *
34
+ * - **Fallback path** (no `startViewTransition`): the existing axis-aware FLIP
35
+ * runs verbatim, KEPT as the sole feature-detected fallback (no alias — one
36
+ * path or the other runs per swap, never both):
37
+ * 1. Capture current container size
38
+ * 2. Pin container to that size
39
+ * 3. Swap classes: old layer → leaving, new layer → active
40
+ * 4. nextTick: measure new natural size, re-pin to old
41
+ * 5. Animate to new size via CSS transition
42
+ * 6. On transitionend(size), clear inline size
33
43
  */
34
44
  export declare function useLayerTransition(options: UseLayerTransitionOptions): UseLayerTransitionReturn;
@@ -40,14 +40,35 @@ type __VLS_Props = {
40
40
  * as "inside the dock".
41
41
  */
42
42
  keepDockOpen?: boolean;
43
+ /**
44
+ * AQ.W6 — opt into the native `interestfor` + `popover="hint"` path
45
+ * when the browser supports interest invokers. Default `false` →
46
+ * reka-ui `HoverCard` (the unchanged default). When `true` AND the
47
+ * engine supports interest invokers, the trigger carries
48
+ * `interestfor` (an implicit anchor) and the panel renders as a
49
+ * `popover="hint"` top-layer surface driven by the `.glass-top-layer`
50
+ * grammar. When `true` but unsupported, it falls straight through to
51
+ * the reka-ui HoverCard — zero behaviour change.
52
+ *
53
+ * Baseline: `interest-invokers` + `popover-hint` = LIMITED →
54
+ * progressive-enhancement only; reka-ui stays the default path. No
55
+ * polyfill (substrate cannot drag one).
56
+ */
57
+ native?: boolean;
43
58
  };
44
- declare var __VLS_14: {}, __VLS_16: {}, __VLS_30: {};
59
+ declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {}, __VLS_20: {}, __VLS_22: {}, __VLS_36: {};
45
60
  type __VLS_Slots = {} & {
46
- trigger?: (props: typeof __VLS_14) => any;
61
+ trigger?: (props: typeof __VLS_1) => any;
62
+ } & {
63
+ default?: (props: typeof __VLS_3) => any;
64
+ } & {
65
+ content?: (props: typeof __VLS_5) => any;
66
+ } & {
67
+ trigger?: (props: typeof __VLS_20) => any;
47
68
  } & {
48
- default?: (props: typeof __VLS_16) => any;
69
+ default?: (props: typeof __VLS_22) => any;
49
70
  } & {
50
- content?: (props: typeof __VLS_30) => any;
71
+ content?: (props: typeof __VLS_36) => any;
51
72
  };
52
73
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
53
74
  "update:open": (open: boolean) => any;
@@ -60,6 +81,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
60
81
  closeDelay: number;
61
82
  hoverOpenDelay: number;
62
83
  keepDockOpen: boolean;
84
+ native: boolean;
63
85
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
64
86
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
65
87
  declare const _default: typeof __VLS_export;
@@ -1,4 +1,4 @@
1
- import type { HTMLAttributes } from "vue";
1
+ import { type HTMLAttributes } from "vue";
2
2
  /**
3
3
  * LabeledField — parent SFC for the labeled-field family (V.W3.T5 / A5 §5.5).
4
4
  *
@@ -15,15 +15,29 @@ import type { HTMLAttributes } from "vue";
15
15
  * paints the canonical typography (font-display + body-size + muted-fg +
16
16
  * cursor-help). The previous mixed `text-base` / `text-lg` literals
17
17
  * harmonise on a single body-size token.
18
+ *
19
+ * AQ.W4 §W4.5 — `required` threads a `aria-hidden` asterisk onto the label
20
+ * (the `required` attr on the slotted control is the semantic carrier). The
21
+ * `error` slot renders an error-message region that the W3.1c
22
+ * `:has(:user-invalid)` group rule reveals; it carries `aria-live="polite"`
23
+ * so the message is announced when shown. The region's id is exposed as the
24
+ * default slot's `errorId` slot-prop so the slotted control can bind
25
+ * `aria-errormessage="errorId"` (the four wrappers auto-wire it; a raw
26
+ * `<LabeledField>` slot binds it manually).
18
27
  */
19
28
  type __VLS_Props = {
20
29
  label: string;
21
30
  tooltip?: string;
22
31
  labelClass?: HTMLAttributes["class"];
32
+ required?: boolean;
23
33
  };
24
- declare var __VLS_7: {};
34
+ declare var __VLS_7: {
35
+ errorId: string;
36
+ }, __VLS_9: {};
25
37
  type __VLS_Slots = {} & {
26
38
  default?: (props: typeof __VLS_7) => any;
39
+ } & {
40
+ error?: (props: typeof __VLS_9) => any;
27
41
  };
28
42
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
29
43
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -5,11 +5,27 @@ type __VLS_Props = {
5
5
  labelClass?: string;
6
6
  inputClass?: string;
7
7
  type?: string;
8
+ /**
9
+ * AQ.W4 §W4.5 — mark the field required. Threads the `aria-hidden`
10
+ * asterisk onto the label AND sets the native `required` attribute on the
11
+ * inner `<Input>` (the semantic carrier that drives `:user-invalid`).
12
+ */
13
+ required?: boolean;
8
14
  };
9
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
15
+ declare var __VLS_17: {};
16
+ type __VLS_Slots = {} & {
17
+ error?: (props: typeof __VLS_17) => any;
18
+ };
19
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
10
20
  "update:modelValue": (value: string) => any;
11
21
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
12
22
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
13
23
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
24
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
14
25
  declare const _default: typeof __VLS_export;
15
26
  export default _default;
27
+ type __VLS_WithSlots<T, S> = T & {
28
+ new (): {
29
+ $slots: S;
30
+ };
31
+ };
@@ -6,6 +6,8 @@ type __VLS_Props = {
6
6
  label: string;
7
7
  tooltip: string;
8
8
  labelClass?: string;
9
+ /** AQ.W4 §W4.5 — thread the required-field asterisk onto the label. */
10
+ required?: boolean;
9
11
  };
10
12
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
11
13
  "update:open": (value: boolean) => any;
@@ -6,6 +6,8 @@ type __VLS_Props = {
6
6
  min: number;
7
7
  max: number;
8
8
  step: number;
9
+ /** AQ.W4 §W4.5 — thread the required-field asterisk onto the label. */
10
+ required?: boolean;
9
11
  };
10
12
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
11
13
  "update:modelValue": (value: number) => any;
@@ -3,6 +3,8 @@ type __VLS_Props = {
3
3
  label: string;
4
4
  tooltip: string;
5
5
  labelClass?: string;
6
+ /** AQ.W4 §W4.5 — thread the required-field asterisk onto the label. */
7
+ required?: boolean;
6
8
  };
7
9
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
8
10
  "update:checked": (value: boolean) => any;
@@ -1,13 +1,16 @@
1
1
  import type { HTMLAttributes } from 'vue';
2
- type __VLS_Props = {
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
4
+ declare const __VLS_export: import("vue").DefineComponent<{
3
5
  defaultValue?: string | number;
4
6
  modelValue?: string | number;
5
- class?: HTMLAttributes['class'];
6
- };
7
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
7
+ class?: HTMLAttributes["class"];
8
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
8
9
  "update:modelValue": (payload: string | number) => any;
9
- }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
10
+ }, string, import("vue").PublicProps, Readonly<{
11
+ defaultValue?: string | number;
12
+ modelValue?: string | number;
13
+ class?: HTMLAttributes["class"];
14
+ }> & Readonly<{
10
15
  "onUpdate:modelValue"?: ((payload: string | number) => any) | undefined;
11
16
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
- declare const _default: typeof __VLS_export;
13
- export default _default;
@@ -2,6 +2,14 @@ import { type HTMLAttributes } from 'vue';
2
2
  import { type LabelProps } from 'reka-ui';
3
3
  type __VLS_Props = LabelProps & {
4
4
  class?: HTMLAttributes['class'];
5
+ /**
6
+ * AQ.W4 §W4.5 — render a required-field asterisk after the label text.
7
+ * The asterisk is decorative-to-AT (the `required` attribute on the input
8
+ * is the semantic carrier), so it is marked `aria-hidden`. Indicate
9
+ * required fields visually BEFORE interaction (required-field-feedback
10
+ * guide).
11
+ */
12
+ required?: boolean;
5
13
  };
6
14
  declare var __VLS_8: {};
7
15
  type __VLS_Slots = {} & {
@@ -1,13 +1,50 @@
1
1
  import type { HTMLAttributes } from 'vue';
2
- type __VLS_Props = {
3
- class?: HTMLAttributes['class'];
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
4
+ declare const __VLS_export: import("vue").DefineComponent<{
5
+ class?: HTMLAttributes["class"];
4
6
  defaultValue?: string | number;
5
7
  modelValue?: string | number;
6
- };
7
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
8
+ /**
9
+ * AQ.W4 §W4.3 opt into `field-sizing: content` auto-grow. When `true`,
10
+ * the textarea grows vertically with its content between a 3-line floor
11
+ * and a `--textarea-autosize-max` ceiling (default `12lh`), then scrolls;
12
+ * the manual resize handle stays. Default `false` keeps the fixed
13
+ * `min-h-20` height (the unchanged no-op fallback).
14
+ *
15
+ * `field-sizing` is Baseline Newly (Chromium 2024) — on a non-supporting
16
+ * engine the element degrades to the fixed `min-block-size: 3lh` floor
17
+ * with standard scroll (no JS, no polyfill).
18
+ *
19
+ * Caveat: a grid/flex parent stretches children, defeating `field-sizing`.
20
+ * Inside a flex column, add `align-self: start` on the `<Textarea>` so it
21
+ * sizes to content rather than the track.
22
+ */
23
+ autosize?: boolean;
24
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
8
25
  "update:modelValue": (payload: string | number) => any;
9
- }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
26
+ }, string, import("vue").PublicProps, Readonly<{
27
+ class?: HTMLAttributes["class"];
28
+ defaultValue?: string | number;
29
+ modelValue?: string | number;
30
+ /**
31
+ * AQ.W4 §W4.3 — opt into `field-sizing: content` auto-grow. When `true`,
32
+ * the textarea grows vertically with its content between a 3-line floor
33
+ * and a `--textarea-autosize-max` ceiling (default `12lh`), then scrolls;
34
+ * the manual resize handle stays. Default `false` keeps the fixed
35
+ * `min-h-20` height (the unchanged no-op fallback).
36
+ *
37
+ * `field-sizing` is Baseline Newly (Chromium 2024) — on a non-supporting
38
+ * engine the element degrades to the fixed `min-block-size: 3lh` floor
39
+ * with standard scroll (no JS, no polyfill).
40
+ *
41
+ * Caveat: a grid/flex parent stretches children, defeating `field-sizing`.
42
+ * Inside a flex column, add `align-self: start` on the `<Textarea>` so it
43
+ * sizes to content rather than the track.
44
+ */
45
+ autosize?: boolean;
46
+ }> & Readonly<{
10
47
  "onUpdate:modelValue"?: ((payload: string | number) => any) | undefined;
11
- }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
- declare const _default: typeof __VLS_export;
13
- export default _default;
48
+ }>, {
49
+ autosize: boolean;
50
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -5,3 +5,4 @@ export * from "./useClipboard";
5
5
  export * from "./useViewportReady";
6
6
  export * from "./useBreakpoint";
7
7
  export * from "./useIdleReady";
8
+ export * from "./useUserInvalidAria";
@@ -0,0 +1,32 @@
1
+ export interface UseUserInvalidAriaOptions {
2
+ /**
3
+ * Also toggle the `.user-invalid-fallback` / `.user-valid-fallback`
4
+ * classes the W4.1 CSS rungs key off (for engines without `:user-invalid`
5
+ * support).
6
+ *
7
+ * Default: auto — `true` only when `CSS.supports('selector(:user-invalid)')`
8
+ * resolves `false`. Pass an explicit boolean to force the path (e.g. for a
9
+ * test that stubs feature detection).
10
+ */
11
+ fallbackClasses?: boolean;
12
+ }
13
+ export interface UseUserInvalidAriaReturn {
14
+ /**
15
+ * Attach the bridge to a scope root (a `<form>`, `<fieldset>`, or field
16
+ * wrapper). Wires capture-phase `blur` + `input` + `submit` listeners that
17
+ * sync `aria-invalid` (and, in fallback mode, the validity classes) on the
18
+ * scope's form controls. Idempotent per call; returns a stop fn that
19
+ * removes the listeners and clears the per-control interaction tracking.
20
+ */
21
+ bind: (root: HTMLElement) => () => void;
22
+ }
23
+ /**
24
+ * The `:user-invalid` → `aria-invalid` bridge. Wired on `blur` (capture —
25
+ * show error on field-exit), `input` (clear error on correction), and
26
+ * `submit` (sync all controls; submission counts as interaction). The setting
27
+ * of `aria-invalid="true"` is gated on first interaction per control (a
28
+ * `WeakSet`) so a pristine required-empty field is never flagged on mount;
29
+ * the `input` handler only CLEARS — never sets — so a programmatic `v-model`
30
+ * write can at worst clear a stale error, never mint a false one.
31
+ */
32
+ export declare function useUserInvalidAria(opts?: UseUserInvalidAriaOptions): UseUserInvalidAriaReturn;
@@ -4,3 +4,5 @@ export * from "../useScrollProgress";
4
4
  export * from "../useRAFLoop";
5
5
  export * from "../useIntersectionPause";
6
6
  export * from "../useStagger";
7
+ export * from "../useYieldToMain";
8
+ export * from "../useViewTransition";
@@ -0,0 +1,8 @@
1
+ /** Genuine support for a `scroll()` timeline (the `.scroll-progress` recipe). */
2
+ export declare function supportsScrollTimeline(): boolean;
3
+ /**
4
+ * Genuine support for a `view()` timeline + `animation-range` (the
5
+ * `[data-scroll-reveal]` recipe). The `view()` value carries the range probe
6
+ * implicitly — an engine new enough for `view()` carries `animation-range`.
7
+ */
8
+ export declare function supportsViewTimeline(): boolean;
@@ -35,6 +35,13 @@ export interface RAFLoopControls {
35
35
  resume: () => void;
36
36
  /** Stop the loop and detach document/media listeners. */
37
37
  dispose: () => void;
38
+ /**
39
+ * Yield to the main thread between chunks of heavy per-frame work (the INP
40
+ * lever). Native `scheduler.yield()` when available, else a MessageChannel/
41
+ * setTimeout fallback. `await` it inside the frame callback when a single
42
+ * frame's work would otherwise block input/paint. See {@link yieldToMain}.
43
+ */
44
+ yieldToMain: () => Promise<void>;
38
45
  }
39
46
  /**
40
47
  * Scope-aware requestAnimationFrame loop with manual controls plus document
@@ -16,8 +16,12 @@ interface ScrollProgressConfig {
16
16
  * `Ref<number>` in [0, 1]. Drives things like scroll-linked typography
17
17
  * axes, parallax depth, or progress indicators.
18
18
  *
19
- * Uses a rAF-coalesced scroll listener plus ResizeObserver so the mapping
20
- * stays accurate when layout shifts.
19
+ * AQ.W5: on an engine with native scroll-driven animations, the listener +
20
+ * `ResizeObserver` machinery does NOT attach — prefer the `.scroll-progress`
21
+ * CSS recipe (scroll-driven.css), which runs the same 0..1 axis on the
22
+ * compositor. This composable is the feature-detected fallback (the sole writer
23
+ * when the native feature is absent); `computeProgress()` still runs once on
24
+ * mount for a correct initial value.
21
25
  */
22
26
  export declare function useScrollProgress(options: ScrollProgressConfig): Ref<number>;
23
27
  export {};
@@ -13,6 +13,12 @@ interface StaggerRevealConfig {
13
13
  * gets a staggered `revealed` flag once it crosses the viewport threshold.
14
14
  * Consumers bind the flag to a Tailwind class (e.g. `opacity-100 translate-y-0`)
15
15
  * and let CSS transitions handle the visual entry.
16
+ *
17
+ * AQ.W5: on an engine with native `view()` timelines, no `IntersectionObserver`
18
+ * is constructed — prefer the `[data-scroll-reveal]` CSS recipe
19
+ * (scroll-driven.css). This composable is the feature-detected fallback (the
20
+ * sole writer when the native feature is absent); under native, `register()`
21
+ * reveals immediately so the terminal state is correct and the CSS animates.
16
22
  */
17
23
  export declare function useStaggerReveal(options?: StaggerRevealConfig): {
18
24
  targets: import("vue").Ref<HTMLElement[], HTMLElement[]>;
@@ -0,0 +1,31 @@
1
+ export interface ViewTransitionResult {
2
+ /**
3
+ * Resolves when the transition's `finished` promise settles (or
4
+ * immediately in the fallback path). Use to route focus per the a11y
5
+ * MANDATORY: `await startViewTransition(mutate).finished; el.focus()`.
6
+ * Never rejects — a skipped/aborted transition settles cleanly.
7
+ */
8
+ finished: Promise<void>;
9
+ /** True when the native API ran; false when the instant fallback ran. */
10
+ transitioned: boolean;
11
+ }
12
+ /**
13
+ * True when `document.startViewTransition` is available — the feature-detected
14
+ * predicate consumers gate optional VT-only styling on.
15
+ */
16
+ export declare function supportsViewTransitions(): boolean;
17
+ /**
18
+ * Wrap a synchronous DOM mutation in `document.startViewTransition` with an
19
+ * instant fallback. `mutate` performs the DOM/state change and is called
20
+ * synchronously in BOTH paths (native and fallback), so the post-mutation DOM
21
+ * is identical regardless of support.
22
+ *
23
+ * @param mutate the synchronous DOM/state change to animate between.
24
+ * @returns `{ finished, transitioned }` — await `finished` to route focus.
25
+ *
26
+ * @example
27
+ * const { finished } = startViewTransition(() => { rows.value = reranked });
28
+ * await finished; // animation done
29
+ * firstRow.value?.focus(); // consumer routes focus (the a11y MANDATORY)
30
+ */
31
+ export declare function startViewTransition(mutate: () => void): ViewTransitionResult;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Yield control to the main thread, returning a promise that resolves after the
3
+ * browser has had a chance to run pending input/render work. Native
4
+ * `scheduler.yield()` when available; otherwise a `MessageChannel` macrotask
5
+ * (with a `setTimeout(0)` floor). Await it between chunks of a long task to keep
6
+ * input responsive (the INP lever).
7
+ *
8
+ * @example
9
+ * for (const chunk of chunks) {
10
+ * processChunk(chunk);
11
+ * await yieldToMain(); // let the browser breathe between chunks
12
+ * }
13
+ */
14
+ export declare function yieldToMain(): Promise<void>;
15
+ export interface UseYieldToMainReturn {
16
+ /** True when the native `scheduler.yield()` is available (vs the fallback). */
17
+ readonly hasNativeYield: boolean;
18
+ /** Yield to the main thread. Native `scheduler.yield()` or the fallback. */
19
+ yield: () => Promise<void>;
20
+ }
21
+ /**
22
+ * Composable wrapper over {@link yieldToMain} that exposes the native-yield
23
+ * feature flag alongside the bound `yield` function. Consumers loop their work
24
+ * units and `await ctx.yield()` between chunks to keep input responsive.
25
+ *
26
+ * Pure-native (no `vue` import) — call it from setup or anywhere; it owns no
27
+ * reactive state and no lifecycle, so it has no cleanup obligation.
28
+ */
29
+ export declare function useYieldToMain(): UseYieldToMainReturn;
@@ -1,2 +1,2 @@
1
- import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./useConfiguratorState-BpZi8QJu.js";
1
+ import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./useConfiguratorState-CtRBE0m_.js";
2
2
  export { e as CONFIGURATOR_DENSITY_KEY, t as Configurator, i as ConfiguratorLayer, n as ConfiguratorRow, r as provideConfiguratorDensity, o as useConfiguratorState, a as useOptionalConfiguratorDensity };
@@ -1,6 +1,6 @@
1
- import { t as e } from "./createLucideIcon-rHu18UQW.js";
2
- import { n as t } from "./button-BlOW34DT.js";
3
- import { t as n } from "./_plugin-vue_export-helper-n-_DRHWS.js";
1
+ import { t as e } from "./createLucideIcon-Bn9a1b70.js";
2
+ import { n as t } from "./button-C0aHmBbt.js";
3
+ import { t as n } from "./_plugin-vue_export-helper-Dq1MygBL.js";
4
4
  import { Transition as r, createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createTextVNode as c, createVNode as l, defineComponent as u, mergeModels as d, openBlock as f, renderSlot as p, toDisplayString as m, unref as h, useModel as g, withCtx as _, withKeys as v, withModifiers as y } from "vue";
5
5
  var b = e("loader-circle", [["path", {
6
6
  d: "M21 12a9 9 0 1 1-6.219-8.56",
@@ -1,3 +1,3 @@
1
- import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c } from "./ContextMenuSubContent-DLEyeqbh.js";
2
- import { n as l, r as u, t as d } from "./ContextMenuContent-CvXfU5qz.js";
1
+ import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c } from "./ContextMenuSubContent-gAFxJ-qi.js";
2
+ import { n as l, r as u, t as d } from "./ContextMenuContent-otjFIu8v.js";
3
3
  export { u as ContextMenu, s as ContextMenuCheckboxItem, d as ContextMenuContent, t as ContextMenuItem, o as ContextMenuLabel, r as ContextMenuRadioGroup, a as ContextMenuRadioItem, n as ContextMenuSeparator, e as ContextMenuShortcut, c as ContextMenuSubContent, i as ContextMenuSubTrigger, l as ContextMenuTrigger };
package/dist/controls.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { t as e } from "./cn-DJXf4yaB.js";
2
- import { t } from "./_plugin-vue_export-helper-n-_DRHWS.js";
3
- import { t as n } from "./useGlobalDark-PMiP5Jku.js";
2
+ import { t } from "./_plugin-vue_export-helper-Dq1MygBL.js";
3
+ import { t as n } from "./useGlobalDark-B0WvLJE3.js";
4
4
  import { computed as r, createBlock as i, createElementVNode as a, defineComponent as o, mergeProps as s, openBlock as c, resolveDynamicComponent as l, unref as u, useAttrs as d, watchEffect as f, withCtx as p } from "vue";
5
5
  //#endregion
6
6
  //#region src/components/custom/controls/DarkModeToggle.vue
@@ -1,5 +1,5 @@
1
1
  import { computed as e, h as t, inject as n } from "vue";
2
- //#region ../../../Users/mkbabb/Programming/glass-ui/node_modules/@lucide/vue/dist/esm/shared/src/utils/isEmptyString.mjs
2
+ //#region node_modules/@lucide/vue/dist/esm/shared/src/utils/isEmptyString.mjs
3
3
  var r = (e) => e === "", i = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), a = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), o = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), s = (e) => {
4
4
  let t = o(e);
5
5
  return t.charAt(0).toUpperCase() + t.slice(1);
@@ -18,7 +18,7 @@ function u() {
18
18
  return n(l, {});
19
19
  }
20
20
  //#endregion
21
- //#region ../../../Users/mkbabb/Programming/glass-ui/node_modules/@lucide/vue/dist/esm/Icon.mjs
21
+ //#region node_modules/@lucide/vue/dist/esm/Icon.mjs
22
22
  var d = ({ name: n, iconNode: o, absoluteStrokeWidth: l, "absolute-stroke-width": d, strokeWidth: f, "stroke-width": p, size: m, color: h, ...g }, { slots: _ }) => {
23
23
  let { size: v, color: y, strokeWidth: b = 2, absoluteStrokeWidth: x = !1, class: S = "" } = u(), C = e(() => {
24
24
  let e = r(l) || r(d) || l === !0 || d === !0 || x === !0, t = f || p || b || c["stroke-width"];