@mkbabb/glass-ui 3.2.0 → 3.4.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 (306) hide show
  1. package/dist/{CardFooter-3-VGho1J.js → CardFooter-C390imy7.js} +2 -2
  2. package/dist/{CollapsibleContent-wlmlDujU.js → CollapsibleContent-cauTbZEM.js} +1 -1
  3. package/dist/{CommandShortcut-C6lsz3pG.js → CommandShortcut-BiVyqipe.js} +5 -4
  4. package/dist/DataTable-FfkaAg2z.js +465 -0
  5. package/dist/DialogContent-IQ8_BRrC.js +100 -0
  6. package/dist/{DiscoGlyph-B7YooI2-.js → DiscoGlyph-BaZ8OawK.js} +1 -1
  7. package/dist/{GlyphFace-Bvk6OIas.js → GlyphFace-B_7vOmYn.js} +1 -1
  8. package/dist/HoverPopover-DTSYkJtw.js +96 -0
  9. package/dist/{IconTooltip-DXveGjx7.js → IconTooltip-BTyYn4mr.js} +1 -1
  10. package/dist/Input-CU9CNKmo.js +52 -0
  11. package/dist/{MetricBadge-J_GBCb8e.js → MetricBadge-BlrdbOGN.js} +1 -1
  12. package/dist/{NumberFieldContent-B6L6YrQz.js → NumberFieldContent-iOTQ5rGO.js} +8 -4
  13. package/dist/{PopoverContent-CxEEUL7Y.js → PopoverContent-B8WtJECb.js} +1 -1
  14. package/dist/Progress-DjM86vfb.js +254 -0
  15. package/dist/{ScrollingText-1Qjnwz6H.js → ScrollingText-P9o_DuMn.js} +1 -1
  16. package/dist/{SelectScrollDownButton-BvvvAbuh.js → SelectScrollDownButton-BGn3rjs9.js} +9 -8
  17. package/dist/TabsIndicator-DA0x9gPr.js +97 -0
  18. package/dist/{ToggleGroupItem-Cy7xHFEo.js → ToggleGroupItem-gyXj998A.js} +37 -40
  19. package/dist/UnderlineTabs-Cq_AD03t.js +39 -0
  20. package/dist/animated-digit.js +2 -2
  21. package/dist/api/index.d.ts +2 -0
  22. package/dist/api.js +1 -1
  23. package/dist/aurora.js +454 -271
  24. package/dist/{button-DS3ULf5i.js → button-Ckn3eDfB.js} +27 -22
  25. package/dist/button.js +1 -1
  26. package/dist/card.js +1 -1
  27. package/dist/carousel.js +2 -2
  28. package/dist/collapsible.js +1 -1
  29. package/dist/color-rkK4RMx2.js +33 -0
  30. package/dist/color.d.ts +1 -0
  31. package/dist/color.js +2 -0
  32. package/dist/command.js +1 -1
  33. package/dist/compile-DVgAxagk.js +106 -0
  34. package/dist/components/custom/animated-digit/AnimatedDigit.vue.d.ts +7 -7
  35. package/dist/components/custom/aurora/Aurora.vue.d.ts +3 -3
  36. package/dist/components/custom/aurora/composables/color.d.ts +3 -25
  37. package/dist/components/custom/aurora/composables/cursorModel.d.ts +45 -0
  38. package/dist/components/custom/aurora/composables/frameLoop.d.ts +30 -0
  39. package/dist/components/custom/aurora/composables/glSetup.d.ts +29 -0
  40. package/dist/components/custom/aurora/composables/runtime.d.ts +45 -35
  41. package/dist/components/custom/aurora/composables/uniformBridge.d.ts +67 -0
  42. package/dist/components/custom/aurora/composables/useAurora.d.ts +14 -1
  43. package/dist/components/custom/aurora/composables/useCursorInteraction.d.ts +1 -1
  44. package/dist/components/custom/aurora/constants/budget.d.ts +50 -0
  45. package/dist/components/custom/aurora/{presets.d.ts → constants/presets.d.ts} +2 -5
  46. package/dist/components/custom/aurora/constants/shaders/aurora.frag.d.ts +1 -0
  47. package/dist/components/custom/aurora/constants/shaders/brush.glsl.d.ts +1 -0
  48. package/dist/components/custom/aurora/constants/shaders/composition.glsl.d.ts +1 -0
  49. package/dist/components/custom/aurora/constants/shaders/flow.glsl.d.ts +1 -0
  50. package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +2 -0
  51. package/dist/components/custom/aurora/constants/shaders/tonemap.glsl.d.ts +1 -0
  52. package/dist/components/custom/aurora/index.d.ts +2 -2
  53. package/dist/components/custom/configurator/ConfiguratorLayer.vue.d.ts +14 -7
  54. package/dist/components/custom/configurator/density.d.ts +3 -8
  55. package/dist/components/custom/dock/DockBackgroundToggle.vue.d.ts +46 -0
  56. package/dist/components/custom/dock/DockIconButton.vue.d.ts +3 -3
  57. package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +2 -2
  58. package/dist/components/custom/dock/GlassDock.vue.d.ts +22 -18
  59. package/dist/components/custom/dock/composables/dockContext.d.ts +4 -4
  60. package/dist/components/custom/dock/composables/dockLayerContext.d.ts +13 -6
  61. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +32 -8
  62. package/dist/components/custom/dock/index.d.ts +1 -0
  63. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +10 -0
  64. package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +1 -1
  65. package/dist/components/custom/glyph-face/keys.d.ts +3 -29
  66. package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +48 -0
  67. package/dist/components/custom/goo-blob/composables/easing.d.ts +6 -0
  68. package/dist/components/custom/goo-blob/composables/useBlobMood.d.ts +14 -0
  69. package/dist/components/custom/goo-blob/composables/useBlobPointer.d.ts +18 -0
  70. package/dist/components/custom/goo-blob/composables/useBlobSatellites.d.ts +13 -0
  71. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +42 -0
  72. package/dist/components/custom/goo-blob/index.d.ts +7 -0
  73. package/dist/components/custom/goo-blob/shaders/metaball.frag.d.ts +1 -0
  74. package/dist/components/custom/goo-blob/shaders/metaball.vert.d.ts +1 -0
  75. package/dist/components/custom/goo-blob/shaders/oklch-perturb.glsl.d.ts +1 -0
  76. package/dist/components/custom/goo-blob/shaders/sdf-body.glsl.d.ts +1 -0
  77. package/dist/components/custom/goo-blob/shaders/watercolor-edges.glsl.d.ts +2 -0
  78. package/dist/components/custom/goo-blob/types.d.ts +77 -0
  79. package/dist/components/custom/hover-popover/HoverPopover.vue.d.ts +48 -9
  80. package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +2 -0
  81. package/dist/components/custom/labeled-field/LabeledSelect.vue.d.ts +2 -2
  82. package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +2 -2
  83. package/dist/components/custom/responsive-tabs/ResponsiveTabs.vue.d.ts +13 -7
  84. package/dist/components/custom/search/FuzzySearch.vue.d.ts +1 -1
  85. package/dist/components/custom/search/SearchBar.vue.d.ts +1 -1
  86. package/dist/components/custom/sortable-list/SortableHandle.vue.d.ts +7 -1
  87. package/dist/components/custom/sortable-list/context.d.ts +2 -3
  88. package/dist/components/custom/tabs/BouncyTabs.vue.d.ts +6 -3
  89. package/dist/components/custom/tabs/BouncyToggle.vue.d.ts +7 -3
  90. package/dist/components/custom/tabs/UnderlineTabs.vue.d.ts +6 -3
  91. package/dist/components/custom/tabs/composables/useBouncySlider.d.ts +39 -0
  92. package/dist/components/custom/timeline/ContinuousMarkers.vue.d.ts +49 -0
  93. package/dist/components/custom/timeline/ContinuousRail.vue.d.ts +26 -0
  94. package/dist/components/custom/timeline/ContinuousTimeline.vue.d.ts +4 -4
  95. package/dist/components/custom/typewriter/TypewriterText.vue.d.ts +2 -2
  96. package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +45 -0
  97. package/dist/components/custom/watercolor-dot/index.d.ts +3 -0
  98. package/dist/components/custom/watercolor-dot/prng.d.ts +5 -0
  99. package/dist/components/custom/watercolor-dot/useWatercolorBlob.d.ts +24 -0
  100. package/dist/components/ui/_shared/menuItemVariants.d.ts +1 -1
  101. package/dist/components/ui/avatar/Avatar.vue.d.ts +1 -1
  102. package/dist/components/ui/avatar/AvatarImage.vue.d.ts +5 -1
  103. package/dist/components/ui/avatar/index.d.ts +1 -1
  104. package/dist/components/ui/badge/index.d.ts +2 -2
  105. package/dist/components/ui/button/Button.vue.d.ts +3 -1
  106. package/dist/components/ui/button/index.d.ts +2 -2
  107. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +2 -2
  108. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +2 -2
  109. package/dist/components/ui/combobox/Combobox.vue.d.ts +2 -2
  110. package/dist/components/ui/combobox/ComboboxInput.vue.d.ts +2 -1
  111. package/dist/components/ui/command/Command.vue.d.ts +3 -3
  112. package/dist/components/ui/command/CommandInput.vue.d.ts +2 -1
  113. package/dist/components/ui/data-table/DataTable.vue.d.ts +5 -4
  114. package/dist/components/ui/dialog/DialogContent.vue.d.ts +8 -0
  115. package/dist/components/ui/drawer/Drawer.vue.d.ts +4 -4
  116. package/dist/components/ui/input/Input.vue.d.ts +19 -1
  117. package/dist/components/ui/multi-select/MultiSelect.vue.d.ts +8 -4
  118. package/dist/components/ui/progress/Progress.vue.d.ts +26 -88
  119. package/dist/components/ui/progress/ProgressDefault.vue.d.ts +14 -0
  120. package/dist/components/ui/progress/ProgressGradient.vue.d.ts +25 -0
  121. package/dist/components/ui/progress/ProgressSectioned.vue.d.ts +36 -0
  122. package/dist/components/ui/progress/index.d.ts +5 -2
  123. package/dist/components/ui/progress/useProgressGeometry.d.ts +60 -0
  124. package/dist/components/ui/select/Select.vue.d.ts +2 -2
  125. package/dist/components/ui/select/SelectContent.vue.d.ts +1 -1
  126. package/dist/components/ui/select/SelectTrigger.vue.d.ts +3 -0
  127. package/dist/components/ui/sheet/index.d.ts +1 -1
  128. package/dist/components/ui/slider/index.d.ts +12 -11
  129. package/dist/components/ui/tags-input/TagsInput.vue.d.ts +2 -2
  130. package/dist/components/ui/textarea/Textarea.vue.d.ts +5 -1
  131. package/dist/components/ui/toast/Toast.vue.d.ts +4 -4
  132. package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
  133. package/dist/components/ui/toggle/index.d.ts +1 -1
  134. package/dist/components/ui/toggle-group/toggleGroupContext.d.ts +2 -3
  135. package/dist/composables/color/index.d.ts +49 -0
  136. package/dist/composables/context/createContext.d.ts +56 -0
  137. package/dist/composables/context/index.d.ts +1 -0
  138. package/dist/composables/dark/darkModeSyncScript.d.ts +23 -0
  139. package/dist/composables/dark/index.d.ts +3 -0
  140. package/dist/composables/dark/useGlobalDark.d.ts +19 -2
  141. package/dist/composables/dom/index.d.ts +0 -3
  142. package/dist/composables/dom/useClipboard.d.ts +35 -12
  143. package/dist/composables/dom/useDocumentVisibility.d.ts +20 -0
  144. package/dist/composables/glass/webgl/compile.d.ts +15 -0
  145. package/dist/composables/glass/webgl/shaders/procedural-color.glsl.d.ts +3 -0
  146. package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +55 -0
  147. package/dist/composables/motion/core/index.d.ts +1 -1
  148. package/dist/composables/motion/index.d.ts +1 -1
  149. package/dist/composables/motion/useCountup.d.ts +29 -0
  150. package/dist/composables/motion/useNumericTransition.d.ts +14 -3
  151. package/dist/composables/motion/vReveal.d.ts +2 -0
  152. package/dist/composables/sidebar/useSidebarState.d.ts +2 -2
  153. package/dist/composables/sortable/dragController.d.ts +44 -0
  154. package/dist/composables/sortable/dropResolver.d.ts +34 -0
  155. package/dist/composables/sortable/ghostRenderer.d.ts +44 -0
  156. package/dist/composables/sortable/index.d.ts +1 -1
  157. package/dist/composables/sortable/touchGate.d.ts +26 -0
  158. package/dist/composables/sortable/transitionTiming.d.ts +50 -0
  159. package/dist/composables/sortable/types.d.ts +133 -0
  160. package/dist/composables/sortable/useSortable.d.ts +25 -153
  161. package/dist/configurator.js +1 -1
  162. package/dist/confirm-dialog.js +1 -1
  163. package/dist/controls.js +4 -4
  164. package/dist/createContext-DBMGRlx4.js +25 -0
  165. package/dist/dark.d.ts +2 -1
  166. package/dist/dark.js +9 -2
  167. package/dist/data-table.js +1 -1
  168. package/dist/dialog.js +1 -1
  169. package/dist/disco-glyph.js +1 -1
  170. package/dist/dock.js +400 -261
  171. package/dist/dockContext-spUj_-E5.js +9 -0
  172. package/dist/dom.js +6 -6
  173. package/dist/{dropdown-menu-naE0skDg.js → dropdown-menu-EFjl5iKo.js} +1 -1
  174. package/dist/dropdown-menu.js +1 -1
  175. package/dist/expandable-container.js +26 -20
  176. package/dist/fonts/README.md +21 -0
  177. package/dist/fonts/fraunces/fraunces-latin.woff2 +0 -0
  178. package/dist/forms.js +68 -59
  179. package/dist/glass-panel.js +1 -1
  180. package/dist/glass-ui.css +1 -1
  181. package/dist/glass-ui.js +226 -328
  182. package/dist/glyph-face.js +2 -2
  183. package/dist/goo-blob.d.ts +1 -0
  184. package/dist/goo-blob.js +538 -0
  185. package/dist/header-ribbon.js +2 -2
  186. package/dist/hover-card.js +1 -1
  187. package/dist/hover-popover.js +1 -1
  188. package/dist/icon-tooltip.js +1 -1
  189. package/dist/index.d.ts +1 -0
  190. package/dist/instrument-chassis.js +1 -1
  191. package/dist/instrument-rail.js +1 -1
  192. package/dist/keys-BFoma9vm.js +9 -0
  193. package/dist/label.js +1 -1
  194. package/dist/labeled-field.js +57 -39
  195. package/dist/metric-badge.js +1 -1
  196. package/dist/motion-core.js +82 -123
  197. package/dist/motion.js +62 -14
  198. package/dist/number-field.js +1 -1
  199. package/dist/paper-backdrop.js +1 -1
  200. package/dist/popover.js +1 -1
  201. package/dist/{presets-BpTf63Hp.js → presets-1OhFpaIC.js} +1 -1
  202. package/dist/prng-Bz_1Tydc.js +15 -0
  203. package/dist/progress.js +2 -2
  204. package/dist/reactive.js +2 -2
  205. package/dist/responsive-tabs.js +38 -32
  206. package/dist/scrolling-text.js +1 -1
  207. package/dist/search.js +8 -8
  208. package/dist/select.js +3 -3
  209. package/dist/separator.js +1 -1
  210. package/dist/sheet.js +1 -1
  211. package/dist/{slider-wx8ifVFB.js → slider-BOh8ycfZ.js} +7 -11
  212. package/dist/slider.js +1 -1
  213. package/dist/sortable-list.js +36 -38
  214. package/dist/stacked-icons.js +2 -2
  215. package/dist/styles/animations.css +1 -1
  216. package/dist/styles/cards.css +1 -1
  217. package/dist/styles/components.css +1 -1
  218. package/dist/styles/dock-controls.css +486 -0
  219. package/dist/styles/dock.css +284 -450
  220. package/dist/styles/fonts.css +25 -0
  221. package/dist/styles/glass-specular-track.css +154 -0
  222. package/dist/styles/glass.css +74 -2
  223. package/dist/styles/index.css +21 -2
  224. package/dist/styles/instrument-chassis.css +11 -4
  225. package/dist/styles/theme.css +73 -21
  226. package/dist/styles/tokens.css +271 -140
  227. package/dist/styles/typography.css +14 -8
  228. package/dist/styles/utilities.css +36 -8
  229. package/dist/styles/view-transition.css +10 -4
  230. package/dist/switch.js +1 -1
  231. package/dist/tabs.js +139 -112
  232. package/dist/timeline.js +219 -158
  233. package/dist/toast.js +1 -1
  234. package/dist/toggle-group.js +1 -1
  235. package/dist/tokens.d.ts +1 -1
  236. package/dist/tooltip.js +1 -1
  237. package/dist/{useAnimatedNumber-BOxrS3a6.js → useAnimatedNumber-BF6r64lA.js} +1 -1
  238. package/dist/useClipboard-D8vFyRCa.js +97 -0
  239. package/dist/{useConfiguratorState-Dq2gNv4A.js → useConfiguratorState-DUtC1jxr.js} +82 -86
  240. package/dist/useGlobalDark-CWiaCoEw.js +34 -0
  241. package/dist/useIntersectionPause-DAdVPVp4.js +53 -0
  242. package/dist/useSortable-DnyGXKKY.js +246 -0
  243. package/dist/{useTouchGate-XX8gHfay.js → useTouchGate-CS5Csc2h.js} +1 -1
  244. package/dist/utils/prng.d.ts +4 -0
  245. package/dist/vReveal-u2wSG2El.js +35 -0
  246. package/dist/watercolor-dot.d.ts +1 -0
  247. package/dist/watercolor-dot.js +129 -0
  248. package/package.json +101 -16
  249. package/src/fonts/README.md +21 -0
  250. package/src/fonts/fraunces/fraunces-latin.woff2 +0 -0
  251. package/src/styles/animations.css +1 -1
  252. package/src/styles/cards.css +1 -1
  253. package/src/styles/dock-controls.css +486 -0
  254. package/src/styles/dock.css +284 -450
  255. package/src/styles/fonts.css +25 -0
  256. package/src/styles/glass-specular-track.css +154 -0
  257. package/src/styles/glass.css +74 -2
  258. package/src/styles/index.css +21 -2
  259. package/src/styles/instrument-chassis.css +11 -4
  260. package/src/styles/theme.css +73 -21
  261. package/src/styles/tokens.css +271 -140
  262. package/src/styles/typography.css +14 -8
  263. package/src/styles/utilities.css +36 -8
  264. package/src/styles/view-transition.css +10 -4
  265. package/dist/DataTable-BsrDYdoE.js +0 -460
  266. package/dist/DialogContent-B61rP8lj.js +0 -93
  267. package/dist/HoverPopover-BlEwqG7S.js +0 -96
  268. package/dist/Input-IFsIzId2.js +0 -30
  269. package/dist/Progress-Bs44qWEM.js +0 -126
  270. package/dist/UnderlineTabs-B4FV2zi_.js +0 -37
  271. package/dist/components/custom/aurora/shaders/aurora.frag.d.ts +0 -1
  272. package/dist/composables/dom/useBreakpoint.d.ts +0 -38
  273. package/dist/composables/dom/useIdleReady.d.ts +0 -63
  274. package/dist/composables/dom/useViewportReady.d.ts +0 -87
  275. package/dist/composables/glass/webgl/frostShader.d.ts +0 -27
  276. package/dist/composables/motion/useAnimatedNumberMap.d.ts +0 -29
  277. package/dist/composables/motion/useStagger.d.ts +0 -50
  278. package/dist/dockContext-DM58L1Jt.js +0 -16
  279. package/dist/keys-SIKQYNx1.js +0 -11
  280. package/dist/supportsCssTimeline-IQY3gfKD.js +0 -12
  281. package/dist/useGlobalDark-BUUTZvkU.js +0 -24
  282. package/dist/useIdleReady-sLhGo6CL.js +0 -162
  283. package/dist/useIntersectionPause-CUmANkoc.js +0 -39
  284. package/dist/useSortable-DLK9kwZp.js +0 -189
  285. /package/dist/{HoverCardContent-DGUhpRVt.js → HoverCardContent-ICfIMZX1.js} +0 -0
  286. /package/dist/{InstrumentChassis-CqKPBNqp.js → InstrumentChassis-DaHIZCqy.js} +0 -0
  287. /package/dist/{InstrumentRail-CCjvKkpB.js → InstrumentRail-B0qqLFN0.js} +0 -0
  288. /package/dist/{Label-D53EOwLE.js → Label-CZk-3nTc.js} +0 -0
  289. /package/dist/{PaperBackdrop-Ds-wDsKf.js → PaperBackdrop-D_YZW47j.js} +0 -0
  290. /package/dist/{SelectGroup-DAgcsfFw.js → SelectGroup-CMdoCjRE.js} +0 -0
  291. /package/dist/{SelectSeparator-DN1jzLaI.js → SelectSeparator-CaJnPF3_.js} +0 -0
  292. /package/dist/{Separator-DXxac0j8.js → Separator-C2XtAXRp.js} +0 -0
  293. /package/dist/{Switch-imA0Hdjs.js → Switch-x8n6husW.js} +0 -0
  294. /package/dist/{Toaster-Brs6QjBU.js → Toaster-DdhMKfus.js} +0 -0
  295. /package/dist/{TooltipProvider-MZFRxOvT.js → TooltipProvider-D-JrSqDu.js} +0 -0
  296. /package/dist/components/custom/aurora/{renderMode.d.ts → constants/renderMode.d.ts} +0 -0
  297. /package/dist/components/custom/aurora/{shaders → constants/shaders}/aurora.vert.d.ts +0 -0
  298. /package/dist/{constants-DfWPi8kh.js → constants-DsCdlK9I.js} +0 -0
  299. /package/dist/{sheet-BnvZRXPq.js → sheet-CQYYrkr9.js} +0 -0
  300. /package/dist/{useGlassRenderer-C98tZnJ7.js → useGlassRenderer-Dn3WpfG-.js} +0 -0
  301. /package/dist/{useInterval-B58LmYth.js → useInterval-CHVYFpXV.js} +0 -0
  302. /package/dist/{useResizeObserver-C_7GjpRn.js → useResizeObserver-DX-STszm.js} +0 -0
  303. /package/dist/{useTextHighlight-CLST6an0.js → useTextHighlight-Dmtofpk2.js} +0 -0
  304. /package/dist/{useTimer-6FoosoDY.js → useTimer-DGgoxTXL.js} +0 -0
  305. /package/dist/{useUserInvalidAria-BW5iyqWR.js → useUserInvalidAria-DmvZ_6Dx.js} +0 -0
  306. /package/dist/{useViewTransition-CUJM7fXT.js → useViewTransition-D4ssvnXZ.js} +0 -0
@@ -0,0 +1,97 @@
1
+ import { getCurrentScope as e, onMounted as t, onScopeDispose as n, ref as r, toValue as i, watch as a } from "vue";
2
+ //#region src/composables/dom/useTokenColor.ts
3
+ function o(o, s = {}) {
4
+ let c = s.fallback ?? "", l = r(c);
5
+ function u() {
6
+ if (typeof document > "u") return c;
7
+ let e = i(o);
8
+ if (!e) return c;
9
+ let t = (s.element ? i(s.element) : null) ?? document.documentElement;
10
+ return t && getComputedStyle(t).getPropertyValue(e).trim() || c;
11
+ }
12
+ function d() {
13
+ l.value = u();
14
+ }
15
+ if (d(), t(d), typeof document < "u") {
16
+ let t = new MutationObserver(d);
17
+ t.observe(document.documentElement, {
18
+ attributes: !0,
19
+ attributeFilter: ["class"]
20
+ });
21
+ let r = typeof window < "u" && window.matchMedia ? window.matchMedia("(prefers-color-scheme: dark)") : null;
22
+ r?.addEventListener?.("change", d), e() && n(() => {
23
+ t.disconnect(), r?.removeEventListener?.("change", d);
24
+ });
25
+ }
26
+ return a(() => i(o), d), s.element !== void 0 && a(() => i(s.element), d), {
27
+ value: l,
28
+ refresh: d
29
+ };
30
+ }
31
+ //#endregion
32
+ //#region src/composables/dom/useClipboard.ts
33
+ async function s(e) {
34
+ if (typeof navigator > "u" || !navigator.clipboard?.writeText) return {
35
+ ok: !1,
36
+ reason: "no-api"
37
+ };
38
+ try {
39
+ return await navigator.clipboard.writeText(e), { ok: !0 };
40
+ } catch {
41
+ return {
42
+ ok: !1,
43
+ reason: "clipboard-api"
44
+ };
45
+ }
46
+ }
47
+ function c(e) {
48
+ if (typeof document > "u") return {
49
+ ok: !1,
50
+ reason: "no-api"
51
+ };
52
+ let t = document.createElement("textarea");
53
+ t.value = e, t.setAttribute("readonly", ""), t.style.position = "fixed", t.style.top = "-9999px", document.body.appendChild(t), t.select();
54
+ let n = !1;
55
+ try {
56
+ n = document.execCommand("copy");
57
+ } catch {
58
+ n = !1;
59
+ }
60
+ return document.body.removeChild(t), n ? { ok: !0 } : {
61
+ ok: !1,
62
+ reason: "exec-command"
63
+ };
64
+ }
65
+ async function l(e, t) {
66
+ let n = await s(e);
67
+ if (n.ok) return n;
68
+ let r = c(e);
69
+ if (r.ok) return r;
70
+ let i = r.reason ?? n.reason ?? "no-api";
71
+ return t?.(i), {
72
+ ok: !1,
73
+ reason: i
74
+ };
75
+ }
76
+ async function u(e, t = {}) {
77
+ let { ok: n } = await l(e, t.onCopyError);
78
+ return n;
79
+ }
80
+ function d(e = {}) {
81
+ let t = e.resetMs ?? 1500, i = r(!1), a = null;
82
+ function o() {
83
+ a != null && (clearTimeout(a), a = null);
84
+ }
85
+ async function s(n) {
86
+ let r = await l(n, e.onCopyError);
87
+ return r.ok && (i.value = !0, o(), a = setTimeout(() => {
88
+ i.value = !1, a = null;
89
+ }, t)), r;
90
+ }
91
+ return n(o), {
92
+ copied: i,
93
+ copy: s
94
+ };
95
+ }
96
+ //#endregion
97
+ export { d as n, o as r, u as t };
@@ -2,34 +2,30 @@ import { t as e } from "./cn-DJXf4yaB.js";
2
2
  import { t } from "./createLucideIcon-DuDoe_ra.js";
3
3
  import { t as n } from "./chevron-down-pBY8sYfV.js";
4
4
  import { t as r } from "./_plugin-vue_export-helper-C1je1s0u.js";
5
- import { t as i } from "./Label-D53EOwLE.js";
6
- import { Fragment as a, computed as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, createTextVNode as u, createVNode as d, defineComponent as f, inject as p, normalizeClass as m, normalizeStyle as h, openBlock as g, provide as _, reactive as v, ref as y, renderList as b, renderSlot as x, toDisplayString as S, toRaw as C, unref as w, useId as T, watch as E, withCtx as D } from "vue";
5
+ import { t as i } from "./createContext-DBMGRlx4.js";
6
+ import { t as a } from "./Label-CZk-3nTc.js";
7
+ import { Fragment as o, computed as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createTextVNode as d, createVNode as f, defineComponent as p, mergeModels as m, normalizeClass as h, normalizeStyle as g, openBlock as _, reactive as v, ref as y, renderList as b, renderSlot as x, toDisplayString as S, toRaw as C, unref as w, useId as T, useModel as E, withCtx as D } from "vue";
7
8
  var O = t("rotate-ccw", [["path", {
8
9
  d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",
9
10
  key: "1357e3"
10
11
  }], ["path", {
11
12
  d: "M3 3v5h5",
12
13
  key: "1xhq8a"
13
- }]]), k = Symbol("configuratorDensity");
14
- function A(e) {
15
- _(k, e);
14
+ }]]), k = i("configuratorDensity"), A = k.KEY;
15
+ function j(e) {
16
+ k.provide(e);
16
17
  }
17
- function j() {
18
- return p(k, null);
19
- }
20
- //#endregion
21
- //#region src/components/custom/configurator/Configurator.vue?vue&type=script&setup=true&lang.ts
22
- var M = {
18
+ var M = k.use, N = {
23
19
  key: 0,
24
20
  class: "configurator-presets shrink-0 border-b border-border/40 px-3 py-2"
25
- }, N = {
21
+ }, P = {
26
22
  class: "flex gap-2 overflow-x-auto scroll-fade-mask scrollbar-hidden",
27
23
  role: "tablist",
28
24
  "aria-label": "Presets"
29
- }, P = ["aria-selected", "onClick"], F = { class: "flex flex-col" }, I = {
25
+ }, F = ["aria-selected", "onClick"], I = { class: "flex flex-col" }, L = {
30
26
  key: 1,
31
27
  class: "configurator-footer shrink-0 border-t border-border/40 px-3 py-2"
32
- }, L = /* @__PURE__ */ f({
28
+ }, R = /* @__PURE__ */ p({
33
29
  __name: "Configurator",
34
30
  props: {
35
31
  presets: {},
@@ -55,70 +51,67 @@ var M = {
55
51
  ],
56
52
  setup(t, { emit: n }) {
57
53
  let r = t;
58
- A(o(() => r.density));
59
- let i = n, u = o(() => e("configurator glass-floating rounded-panel border border-border/60 overflow-hidden", "grid grid-cols-1", "lg:grid-cols-[minmax(0,1fr)_minmax(var(--configurator-aside-min,280px),var(--configurator-aside-max,360px))]", "min-h-0", r.class)), d = o(() => {
54
+ j(s(() => r.density));
55
+ let i = n, a = s(() => e("configurator glass-floating rounded-panel border border-border/60 overflow-hidden", "grid grid-cols-1", "lg:grid-cols-[minmax(0,1fr)_minmax(var(--configurator-aside-min,280px),var(--configurator-aside-max,360px))]", "min-h-0", r.class)), d = s(() => {
60
56
  if (r.asideWidth == null) return;
61
57
  let [e, t] = Array.isArray(r.asideWidth) ? r.asideWidth : [r.asideWidth, r.asideWidth];
62
58
  return {
63
59
  "--configurator-aside-min": e,
64
60
  "--configurator-aside-max": t
65
61
  };
66
- }), f = o(() => r.asideSide === "left" ? "lg:col-start-2" : ""), p = o(() => r.asideSide === "left" ? "lg:col-start-1 lg:row-start-1" : ""), _ = o(() => r.asideSide === "left" ? "lg:border-r lg:border-l-0" : "lg:border-l"), v = o(() => {
62
+ }), f = s(() => r.asideSide === "left" ? "lg:col-start-2" : ""), p = s(() => r.asideSide === "left" ? "lg:col-start-1 lg:row-start-1" : ""), m = s(() => r.asideSide === "left" ? "lg:border-r lg:border-l-0" : "lg:border-l"), v = s(() => {
67
63
  switch (r.scrollMode) {
68
64
  case "always": return "overflow-y-auto scroll-fade-y scrollbar-thin";
69
65
  case "never": return "overflow-visible";
70
66
  default: return "overflow-y-auto scroll-fade-y scrollbar-thin";
71
67
  }
72
68
  });
73
- return (n, r) => (g(), c("section", {
74
- class: m(u.value),
75
- style: h(d.value)
76
- }, [l("div", { class: m(w(e)("configurator-stage relative min-h-0 min-w-0 overflow-hidden", f.value)) }, [x(n.$slots, "stage")], 2), l("aside", { class: m(w(e)("configurator-aside flex min-h-0 min-w-0 flex-col border-t border-border/40 lg:border-t-0", _.value, p.value)) }, [
77
- n.$slots.presets || t.presets && t.presets.length > 0 ? (g(), c("div", M, [x(n.$slots, "presets", {
69
+ return (n, r) => (_(), l("section", {
70
+ class: h(a.value),
71
+ style: g(d.value)
72
+ }, [u("div", { class: h(w(e)("configurator-stage relative min-h-0 min-w-0 overflow-hidden", f.value)) }, [x(n.$slots, "stage")], 2), u("aside", { class: h(w(e)("configurator-aside flex min-h-0 min-w-0 flex-col border-t border-border/40 lg:border-t-0", m.value, p.value)) }, [
73
+ n.$slots.presets || t.presets && t.presets.length > 0 ? (_(), l("div", N, [x(n.$slots, "presets", {
78
74
  presets: t.presets,
79
75
  activePreset: t.activePreset
80
- }, () => [l("div", N, [(g(!0), c(a, null, b(t.presets, (n) => (g(), c("button", {
76
+ }, () => [u("div", P, [(_(!0), l(o, null, b(t.presets, (n) => (_(), l("button", {
81
77
  key: n.key,
82
78
  type: "button",
83
79
  role: "tab",
84
80
  "aria-selected": n.key === t.activePreset,
85
- class: m(w(e)("focus-ring shrink-0 rounded-pill border px-3 py-1 text-xs font-medium transition-colors", n.key === t.activePreset ? "border-foreground/40 bg-foreground text-background" : "border-border/40 bg-card/40 text-foreground hover:bg-card/70")),
81
+ class: h(w(e)("focus-ring shrink-0 rounded-pill border px-3 py-1 text-xs font-medium transition-colors", n.key === t.activePreset ? "border-foreground/40 bg-foreground text-background" : "border-border/40 bg-card/40 text-foreground hover:bg-card/70")),
86
82
  onClick: (e) => i("select-preset", n.key)
87
- }, S(n.label), 11, P))), 128))])])])) : s("", !0),
88
- l("div", { class: m(w(e)("configurator-controls flex-1 min-h-0", v.value)) }, [x(n.$slots, "controls", {
83
+ }, S(n.label), 11, F))), 128))])])])) : c("", !0),
84
+ u("div", { class: h(w(e)("configurator-controls flex-1 min-h-0", v.value)) }, [x(n.$slots, "controls", {
89
85
  layers: t.layers,
90
86
  activeLayer: t.activeLayer,
91
87
  selectLayer: (e) => i("select-layer", e)
92
- }, () => [l("div", F, [x(n.$slots, "default")])])], 2),
93
- n.$slots.footer ? (g(), c("div", I, [x(n.$slots, "footer", { reset: () => i("reset") })])) : s("", !0)
88
+ }, () => [u("div", I, [x(n.$slots, "default")])])], 2),
89
+ n.$slots.footer ? (_(), l("div", L, [x(n.$slots, "footer", { reset: () => i("reset") })])) : c("", !0)
94
90
  ], 2)], 6));
95
91
  }
96
- }), R = ["data-state"], z = [
92
+ }), z = ["data-state"], B = [
97
93
  "aria-expanded",
98
94
  "aria-controls",
99
95
  "data-state"
100
- ], B = { class: "flex min-w-0 items-baseline gap-2" }, V = { class: "text-sm font-semibold text-foreground" }, H = {
96
+ ], V = { class: "flex min-w-0 items-baseline gap-2" }, H = { class: "text-small font-semibold text-foreground" }, U = {
101
97
  key: 0,
102
98
  class: "truncate text-micro font-mono text-muted-foreground/70"
103
- }, U = [
99
+ }, W = [
104
100
  "id",
105
101
  "aria-hidden",
106
102
  "inert",
107
103
  "data-state"
108
- ], W = { class: "min-h-0 overflow-hidden" }, G = /* @__PURE__ */ f({
104
+ ], G = { class: "min-h-0 overflow-hidden" }, K = /* @__PURE__ */ p({
109
105
  __name: "ConfiguratorLayer",
110
- props: {
106
+ props: /* @__PURE__ */ m({
111
107
  label: {},
112
108
  sub: {},
113
109
  id: {},
114
- open: {
115
- type: Boolean,
116
- default: void 0
117
- },
118
110
  defaultOpen: {
119
111
  type: Boolean,
120
112
  default: !0
121
113
  },
114
+ dividers: { type: Boolean },
122
115
  class: { type: [
123
116
  Boolean,
124
117
  null,
@@ -133,49 +126,52 @@ var M = {
133
126
  Object,
134
127
  Array
135
128
  ] }
136
- },
129
+ }, {
130
+ open: {
131
+ type: Boolean,
132
+ default: void 0
133
+ },
134
+ openModifiers: {}
135
+ }),
137
136
  emits: ["update:open"],
138
- setup(t, { emit: r }) {
139
- let i = t, a = r, u = y(i.open ?? i.defaultOpen);
140
- E(() => i.open, (e) => {
141
- e !== void 0 && (u.value = e);
142
- });
143
- let f = `configurator-layer-body-${T()}`, p = o(() => i.id ?? f);
144
- function _() {
145
- let e = !u.value;
146
- u.value = e, a("update:open", e);
137
+ setup(t) {
138
+ let r = t, i = E(t, "open");
139
+ i.value === void 0 && (i.value = r.defaultOpen);
140
+ let a = `configurator-layer-body-${T()}`, o = s(() => r.id ?? a);
141
+ function d() {
142
+ i.value = !i.value;
147
143
  }
148
- let v = o(() => u.value ? "open" : "closed");
149
- return (r, a) => (g(), c("div", {
150
- class: m(w(e)("configurator-layer border-b border-border/40 last:border-b-0", i.class)),
151
- "data-state": v.value
152
- }, [l("button", {
144
+ let p = s(() => i.value ? "open" : "closed");
145
+ return (a, s) => (_(), l("div", {
146
+ class: h(w(e)("configurator-layer border-b border-border/40 last:border-b-0", r.class)),
147
+ "data-state": p.value
148
+ }, [u("button", {
153
149
  type: "button",
154
- class: m(w(e)("configurator-layer-trigger", "group flex w-full items-center justify-between gap-2 px-3 py-2", "text-left transition-colors hover:bg-foreground/5 focus-ring")),
155
- "aria-expanded": u.value,
156
- "aria-controls": p.value,
157
- "data-state": v.value,
158
- onClick: _
159
- }, [l("div", B, [l("span", V, S(t.label), 1), t.sub ? (g(), c("span", H, S(t.sub), 1)) : s("", !0)]), d(w(n), {
150
+ class: h(w(e)("configurator-layer-trigger", "group flex w-full items-center justify-between gap-2 px-3 py-2", "text-left transition-colors hover:bg-foreground/5 focus-ring")),
151
+ "aria-expanded": i.value,
152
+ "aria-controls": o.value,
153
+ "data-state": p.value,
154
+ onClick: d
155
+ }, [u("div", V, [u("span", H, S(t.label), 1), t.sub ? (_(), l("span", U, S(t.sub), 1)) : c("", !0)]), f(w(n), {
160
156
  class: "h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200 group-data-[state=open]:rotate-180",
161
157
  "aria-hidden": "true"
162
- })], 10, z), l("div", {
163
- id: p.value,
158
+ })], 10, B), u("div", {
159
+ id: o.value,
164
160
  role: "region",
165
- "aria-hidden": !u.value,
166
- inert: !u.value || void 0,
167
- "data-state": v.value,
161
+ "aria-hidden": !i.value,
162
+ inert: !i.value || void 0,
163
+ "data-state": p.value,
168
164
  class: "configurator-layer-region grid transition-[grid-template-rows] duration-200 ease-out motion-reduce:transition-none",
169
- style: h({ gridTemplateRows: u.value ? "1fr" : "0fr" })
170
- }, [l("div", W, [l("div", { class: m(w(e)("configurator-layer-body px-3 py-2 space-y-2", i.bodyClass)) }, [x(r.$slots, "default")], 2)])], 12, U)], 10, R));
165
+ style: g({ gridTemplateRows: i.value ? "1fr" : "0fr" })
166
+ }, [u("div", G, [u("div", { class: h(w(e)("configurator-layer-body px-3 py-2 space-y-2", r.dividers && "[&>*+*]:border-t [&>*+*]:border-border/30 [&>*+*]:pt-2", r.bodyClass)) }, [x(a.$slots, "default")], 2)])], 12, W)], 10, z));
171
167
  }
172
- }), K = ["data-density"], q = { class: "flex items-baseline justify-between gap-3" }, J = { class: "flex min-w-0 items-baseline gap-2" }, Y = {
168
+ }), q = ["data-density"], J = { class: "flex items-baseline justify-between gap-3" }, Y = { class: "flex min-w-0 items-baseline gap-2" }, X = {
173
169
  key: 0,
174
170
  class: "truncate text-micro font-mono text-muted-foreground/70"
175
- }, X = ["aria-label"], Z = { class: "flex items-center" }, Q = {
171
+ }, Z = ["aria-label"], Q = { class: "flex items-center" }, $ = {
176
172
  key: 0,
177
173
  class: "text-micro leading-snug text-muted-foreground/80"
178
- }, $ = /* @__PURE__ */ r(/* @__PURE__ */ f({
174
+ }, ee = /* @__PURE__ */ r(/* @__PURE__ */ p({
179
175
  __name: "ConfiguratorRow",
180
176
  props: {
181
177
  label: {},
@@ -193,32 +189,32 @@ var M = {
193
189
  },
194
190
  emits: ["reset"],
195
191
  setup(t, { emit: n }) {
196
- let r = t, a = n, f = j(), p = o(() => r.density ?? f?.value ?? void 0);
197
- return (n, o) => (g(), c("div", {
198
- class: m(w(e)("configurator-row flex flex-col gap-1.5 py-2", r.class)),
192
+ let r = t, i = n, o = M(), p = s(() => r.density ?? o?.value ?? void 0);
193
+ return (n, o) => (_(), l("div", {
194
+ class: h(w(e)("configurator-row flex flex-col gap-1.5 py-2", r.class)),
199
195
  "data-density": p.value
200
196
  }, [
201
- l("div", q, [l("div", J, [d(w(i), { class: "truncate text-sm font-medium text-foreground" }, {
202
- default: D(() => [u(S(t.label), 1)]),
197
+ u("div", J, [u("div", Y, [f(w(a), { class: "truncate text-small font-medium text-foreground" }, {
198
+ default: D(() => [d(S(t.label), 1)]),
203
199
  _: 1
204
- }), t.name ? (g(), c("span", Y, S(t.name), 1)) : s("", !0)]), t.canReset ? (g(), c("button", {
200
+ }), t.name ? (_(), l("span", X, S(t.name), 1)) : c("", !0)]), t.canReset ? (_(), l("button", {
205
201
  key: 0,
206
202
  type: "button",
207
203
  class: "focus-ring inline-flex h-6 w-6 items-center justify-center rounded-pill text-muted-foreground/60 transition-colors hover:bg-foreground/5 hover:text-foreground active:scale-[var(--scale-press,0.97)]",
208
204
  "aria-label": `Reset ${t.label}`,
209
- onClick: o[0] ||= (e) => a("reset")
210
- }, [d(w(O), {
205
+ onClick: o[0] ||= (e) => i("reset")
206
+ }, [f(w(O), {
211
207
  class: "h-3 w-3",
212
208
  "aria-hidden": "true"
213
- })], 8, X)) : s("", !0)]),
214
- l("div", Z, [x(n.$slots, "default", {}, void 0, !0)]),
215
- t.description ? (g(), c("p", Q, S(t.description), 1)) : s("", !0)
216
- ], 10, K));
209
+ })], 8, Z)) : c("", !0)]),
210
+ u("div", Q, [x(n.$slots, "default", {}, void 0, !0)]),
211
+ t.description ? (_(), l("p", $, S(t.description), 1)) : c("", !0)
212
+ ], 10, q));
217
213
  }
218
- }), [["__scopeId", "data-v-7854fb95"]]);
214
+ }), [["__scopeId", "data-v-1b71284c"]]);
219
215
  //#endregion
220
216
  //#region src/components/custom/configurator/useConfiguratorState.ts
221
- function ee(e) {
217
+ function te(e) {
222
218
  let t = C(e);
223
219
  if (typeof structuredClone != "function") throw Error("[glass-ui:configurator] structuredClone is unavailable in this runtime. Pass a custom clone via ConfiguratorStateOptions.clone for environments without structured-clone support.");
224
220
  try {
@@ -227,11 +223,11 @@ function ee(e) {
227
223
  throw Error("[glass-ui:configurator] structuredClone failed: " + (e instanceof Error ? e.message : String(e)) + ". Preset values must be structured-cloneable (no functions, symbols, DOM nodes, or class instances). Pass a custom clone via ConfiguratorStateOptions.clone if the data shape requires it.");
228
224
  }
229
225
  }
230
- function te(e, t) {
226
+ function ne(e, t) {
231
227
  return JSON.stringify(e) === JSON.stringify(t);
232
228
  }
233
- function ne(e) {
234
- let t = e.clone ?? ee, n = e.equals ?? te, r = e.presets, i = e.cloneMode ?? "commit-on-write", a = e.initialPreset ?? (r.length > 0 ? r[0].key : void 0), s = a ? r.find((e) => e.key === a) : void 0, c = v(s ? t(s.config) : {}), l = y(a), u = i === "per-preset" ? Object.fromEntries(r.map((e) => [e.key, t(e.config)])) : null, d = o(() => l.value), f = o(() => {
229
+ function re(e) {
230
+ let t = e.clone ?? te, n = e.equals ?? ne, r = e.presets, i = e.cloneMode ?? "commit-on-write", a = e.initialPreset ?? (r.length > 0 ? r[0].key : void 0), o = a ? r.find((e) => e.key === a) : void 0, c = v(o ? t(o.config) : {}), l = y(a), u = i === "per-preset" ? Object.fromEntries(r.map((e) => [e.key, t(e.config)])) : null, d = s(() => l.value), f = s(() => {
235
231
  let e = l.value;
236
232
  if (!e) return !1;
237
233
  let t = r.find((t) => t.key === e);
@@ -277,4 +273,4 @@ function ne(e) {
277
273
  };
278
274
  }
279
275
  //#endregion
280
- export { k as a, L as i, $ as n, A as o, G as r, j as s, ne as t };
276
+ export { A as a, R as i, ee as n, j as o, K as r, M as s, re as t };
@@ -0,0 +1,34 @@
1
+ import { ref as e, watch as t } from "vue";
2
+ import { createGlobalState as n, useDark as r, useToggle as i } from "@vueuse/core";
3
+ //#region src/composables/dark/useGlobalDark.ts
4
+ var a, o = n(() => {
5
+ let n = r({
6
+ initialValue: a,
7
+ disableTransition: !1
8
+ }), o = i(n), s = e(!1);
9
+ function c() {
10
+ s.value && (document.documentElement.classList.add("no-transition"), document.documentElement.offsetHeight), o(), s.value && requestAnimationFrame(() => {
11
+ document.documentElement.classList.remove("no-transition");
12
+ });
13
+ }
14
+ function l(e) {
15
+ s.value = e;
16
+ }
17
+ return t(n, (e) => {
18
+ document.documentElement.style.colorScheme = e ? "dark" : "light";
19
+ }, { immediate: !0 }), {
20
+ isDark: n,
21
+ toggleDark: c,
22
+ disableTransitions: s,
23
+ setDisableTransitions: l
24
+ };
25
+ });
26
+ function s(e) {
27
+ if (e?.initialValue !== void 0) {
28
+ if (a === void 0) a = e.initialValue;
29
+ else if (a !== e.initialValue) throw Error(`[glass-ui] useGlobalDark({ initialValue: "${e.initialValue}" }) conflicts: the singleton was already constructed with initialValue "${a}". The seed is ONE-SHOT — set it on the FIRST useGlobalDark() call only.`);
30
+ }
31
+ return o();
32
+ }
33
+ //#endregion
34
+ export { s as t };
@@ -0,0 +1,53 @@
1
+ import { getCurrentScope as e, onScopeDispose as t, readonly as n, ref as r, toValue as i, watch as a } from "vue";
2
+ //#region src/composables/dom/useDocumentVisibility.ts
3
+ function o() {
4
+ return typeof document > "u" ? null : document;
5
+ }
6
+ function s() {
7
+ let n = o(), i = r(!!n?.hidden);
8
+ if (!n) return { hidden: i };
9
+ let a = () => {
10
+ i.value = !!n.hidden;
11
+ };
12
+ return n.addEventListener("visibilitychange", a), e() && t(() => {
13
+ n.removeEventListener("visibilitychange", a);
14
+ }), { hidden: i };
15
+ }
16
+ //#endregion
17
+ //#region src/composables/motion/useIntersectionPause.ts
18
+ function c(o, c, l = {}) {
19
+ let { root: u = null, rootMargin: d = "0px", threshold: f = 0, pauseWhenHidden: p = !0 } = l, m = r(!0), h = r(!0), g = r(!1), _ = !1, v = null, y = null, b = null;
20
+ function x() {
21
+ if (_) return;
22
+ let e = !m.value || !h.value;
23
+ g.value = e, y !== e && (y = e, e ? c.pause() : c.resume());
24
+ }
25
+ typeof IntersectionObserver < "u" && (b = new IntersectionObserver((e) => {
26
+ for (let t of e) t.target === v && (m.value = t.isIntersecting || t.intersectionRatio > 0, x());
27
+ }, {
28
+ root: u,
29
+ rootMargin: d,
30
+ threshold: f
31
+ }));
32
+ let S = a(() => i(o), (e, t) => {
33
+ t && b && b.unobserve(t), v = e ?? null, m.value = !0, v && b && b.observe(v), x();
34
+ }, { immediate: !0 });
35
+ if (p) {
36
+ let { hidden: e } = s();
37
+ h.value = !e.value, a(e, (e) => {
38
+ h.value = !e, x();
39
+ }, { flush: "sync" });
40
+ }
41
+ function C() {
42
+ _ || (_ = !0, S(), b?.disconnect(), b = null, v = null);
43
+ }
44
+ return e() && t(C), {
45
+ isIntersecting: n(m),
46
+ isDocumentVisible: n(h),
47
+ isPaused: n(g),
48
+ refresh: x,
49
+ dispose: C
50
+ };
51
+ }
52
+ //#endregion
53
+ export { s as n, c as t };