@mkbabb/glass-ui 3.12.0 → 3.13.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 (360) hide show
  1. package/dist/{CardAction-DuArVky-.js → CardAction-Cj2eycQ2.js} +2 -2
  2. package/dist/{CommandShortcut-CefCj5mt.js → CommandShortcut-RowNEO6i.js} +4 -4
  3. package/dist/{ContextMenuSubContent-Bhg4f5jX.js → ContextMenuSubContent-BQmxTAdw.js} +4 -4
  4. package/dist/{DataTable-CUHMukiQ.js → DataTable-BCddn3T3.js} +3 -3
  5. package/dist/{DialogContent-BRkT1cjP.js → DialogContent-Dl9WkAoS.js} +3 -3
  6. package/dist/{DialogFooter-Gprw8H_A.js → DialogFooter-Blu4t7tJ.js} +2 -2
  7. package/dist/{HoverPopover-2LOIW34a.js → HoverPopover-CISOJQuZ.js} +1 -1
  8. package/dist/{IconTooltip-Cus0fvK0.js → IconTooltip-DPzE09X9.js} +1 -1
  9. package/dist/MetricBadge-C9QMz1KT.js +79 -0
  10. package/dist/{Notification-DLMhblXR.js → Notification-DdwNxIrI.js} +2 -2
  11. package/dist/{NumberFieldContent-BbLOh8RU.js → NumberFieldContent-CqaN-SvN.js} +3 -3
  12. package/dist/{PopoverContent-BId6ggf_.js → PopoverContent-BYwt2-4x.js} +1 -1
  13. package/dist/{ScrollingText-BPP84wKo.js → ScrollingText-DfFrwSph.js} +1 -1
  14. package/dist/{SelectScrollDownButton-T32cVFeM.js → SelectScrollDownButton-CiDUxfEj.js} +6 -6
  15. package/dist/{Switch-Ch-k3Rv-.js → Switch-CsIuYP_e.js} +1 -1
  16. package/dist/{TabsList-B8CVOQPC.js → TabsList-Dttss653.js} +9 -5
  17. package/dist/{Toaster-1rYWrmAm.js → Toaster-D6q4HtXu.js} +50 -47
  18. package/dist/{ToggleGroupItem-COu_4IW4.js → ToggleGroupItem-D_AHlRw9.js} +18 -22
  19. package/dist/animated-digit.js +2 -2
  20. package/dist/api/index.d.ts +5 -2
  21. package/dist/api.js +2 -2
  22. package/dist/aurora.js +69 -69
  23. package/dist/{badge-CaoFJzRb.js → badge-UILT_3pZ.js} +1 -1
  24. package/dist/badge.js +1 -1
  25. package/dist/{button-DN39cGqL.js → button-ChXMfsud.js} +12 -12
  26. package/dist/button.js +1 -1
  27. package/dist/card.js +1 -1
  28. package/dist/carousel.js +8 -8
  29. package/dist/{check-BBKKKSTf.js → check-njhk-vfu.js} +1 -1
  30. package/dist/{chevron-down-BSkTP2aL.js → chevron-down-DKkxb4VV.js} +1 -1
  31. package/dist/{chevron-right-sDM0Yvrf.js → chevron-right-CPXbqQQz.js} +1 -1
  32. package/dist/{chevron-up-CCOD_FTz.js → chevron-up-n_24SqI-.js} +1 -1
  33. package/dist/coalesceMetric-5qIeZnTx.js +13 -0
  34. package/dist/{color-C5ls_QF7.js → color-CUYeFbgd.js} +9 -7
  35. package/dist/color.js +1 -1
  36. package/dist/command.js +1 -1
  37. package/dist/components/custom/animated-digit/AnimatedDigit.vue.d.ts +8 -0
  38. package/dist/components/custom/aurora/constants/presets.d.ts +5 -62
  39. package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +1 -1
  40. package/dist/components/custom/aurora/constants/shaders/vangogh-medium.glsl.d.ts +1 -0
  41. package/dist/components/custom/aurora/index.d.ts +1 -1
  42. package/dist/components/custom/configurator/ConfiguratorRow.vue.d.ts +16 -0
  43. package/dist/components/custom/constellation/Constellation.vue.d.ts +74 -6
  44. package/dist/components/custom/constellation/composables/createConstellationField.d.ts +41 -0
  45. package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +35 -0
  46. package/dist/components/custom/constellation/constants.d.ts +61 -0
  47. package/dist/components/custom/constellation/constellationDraw.d.ts +30 -0
  48. package/dist/components/custom/constellation/constellationField.d.ts +116 -149
  49. package/dist/components/custom/constellation/constellationInteraction.d.ts +132 -0
  50. package/dist/components/custom/constellation/index.d.ts +5 -2
  51. package/dist/components/custom/controls/DarkModeToggle.vue.d.ts +11 -0
  52. package/dist/components/custom/dock/DockRail.vue.d.ts +88 -0
  53. package/dist/components/custom/dock/DockTabButton.vue.d.ts +3 -4
  54. package/dist/components/custom/dock/GlassDock.vue.d.ts +5 -118
  55. package/dist/components/custom/dock/composables/dockMorphContext.d.ts +36 -0
  56. package/dist/components/custom/dock/composables/index.d.ts +1 -0
  57. package/dist/components/custom/dock/composables/useDockClickIntegrity.d.ts +23 -0
  58. package/dist/components/custom/dock/composables/useDockMorphWindow.d.ts +15 -0
  59. package/dist/components/custom/dock/composables/useDockOrientationMorph.d.ts +44 -0
  60. package/dist/components/custom/dock/composables/useDockShellProps.d.ts +165 -0
  61. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +44 -0
  62. package/dist/components/custom/dock/constants.d.ts +48 -0
  63. package/dist/components/custom/dock/index.d.ts +3 -0
  64. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +5 -37
  65. package/dist/components/custom/fourier-field/index.d.ts +1 -1
  66. package/dist/components/custom/fourier-field/math.d.ts +17 -0
  67. package/dist/components/custom/fourier-field/presets.d.ts +54 -0
  68. package/dist/components/custom/goo-blob/composables/buildMetaballProgram.d.ts +18 -0
  69. package/dist/components/custom/goo-blob/composables/uploadBlobUniforms.d.ts +41 -0
  70. package/dist/components/custom/goo-blob/composables/useBlobPointer.d.ts +4 -3
  71. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +11 -8
  72. package/dist/components/custom/goo-blob/constants.d.ts +52 -0
  73. package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -0
  74. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +2 -2
  75. package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +37 -0
  76. package/dist/components/custom/labeled-field/LabeledSelect.vue.d.ts +6 -0
  77. package/dist/components/custom/labeled-field/LabeledSlider.vue.d.ts +6 -0
  78. package/dist/components/custom/labeled-field/LabeledSwitch.vue.d.ts +6 -0
  79. package/dist/components/custom/metric-badge/MetricBadge.vue.d.ts +11 -18
  80. package/dist/components/custom/metric-badge/index.d.ts +1 -0
  81. package/dist/components/custom/metric-cell/MetricCell.vue.d.ts +15 -4
  82. package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +6 -4
  83. package/dist/components/custom/tabs/constants.d.ts +12 -0
  84. package/dist/components/custom/underline/GlassUnderline.vue.d.ts +84 -0
  85. package/dist/components/custom/underline/index.d.ts +2 -0
  86. package/dist/components/custom/underline/types.d.ts +56 -0
  87. package/dist/components/ui/card/Card.vue.d.ts +15 -3
  88. package/dist/components/ui/drawer/Drawer.vue.d.ts +1 -0
  89. package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +2 -2
  90. package/dist/components/ui/metric-pill/MetricPill.vue.d.ts +6 -3
  91. package/dist/components/ui/slider/index.d.ts +22 -19
  92. package/dist/components/ui/tabs/TabsIndicator.vue.d.ts +4 -1
  93. package/dist/components/ui/toast/use-toast.d.ts +2 -2
  94. package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
  95. package/dist/components/ui/toggle/index.d.ts +1 -1
  96. package/dist/components/ui/toggle-group/ToggleGroup.vue.d.ts +1 -7
  97. package/dist/components/ui/toggle-group/ToggleGroupItem.vue.d.ts +1 -3
  98. package/dist/components/ui/toggle-group/toggleGroupContext.d.ts +0 -13
  99. package/dist/composables/color/index.d.ts +12 -0
  100. package/dist/composables/dark/index.d.ts +1 -1
  101. package/dist/composables/dark/useGlobalDark.d.ts +1 -21
  102. package/dist/composables/glass/index.d.ts +0 -1
  103. package/dist/composables/glass/useGlassBackdropLuminance.d.ts +59 -0
  104. package/dist/composables/glass/useSpecularTracking.d.ts +12 -3
  105. package/dist/composables/motion/core/index.d.ts +1 -1
  106. package/dist/composables/motion/curves.d.ts +48 -0
  107. package/dist/composables/motion/index.d.ts +2 -0
  108. package/dist/composables/motion/springPresets.d.ts +33 -0
  109. package/dist/composables/motion/suite.d.ts +2 -0
  110. package/dist/composables/motion/useLiquidFlex.d.ts +85 -0
  111. package/dist/composables/motion/useSpringMount.d.ts +1 -1
  112. package/dist/configurator.js +1 -1
  113. package/dist/confirm-dialog.js +2 -2
  114. package/dist/constellation.js +336 -222
  115. package/dist/context-menu.js +2 -2
  116. package/dist/controls.js +48 -20
  117. package/dist/dark.d.ts +1 -1
  118. package/dist/dark.js +1 -1
  119. package/dist/data-table.js +1 -1
  120. package/dist/dialog.js +2 -2
  121. package/dist/dock.js +705 -365
  122. package/dist/dockContext-BegmJVmx.js +17 -0
  123. package/dist/dom.js +5 -5
  124. package/dist/{dropdown-menu-D77jX6Df.js → dropdown-menu-DzkkyBwX.js} +11 -8
  125. package/dist/dropdown-menu.js +1 -1
  126. package/dist/expandable-container.js +39 -80
  127. package/dist/forms.js +5 -5
  128. package/dist/fourier-field.js +134 -99
  129. package/dist/fourier-math.js +2 -2
  130. package/dist/glass-panel.js +86 -20
  131. package/dist/glass-ui.css +1 -1
  132. package/dist/glass-ui.js +222 -212
  133. package/dist/goo-blob.js +243 -212
  134. package/dist/hover-card.js +1 -1
  135. package/dist/hover-popover.js +1 -1
  136. package/dist/icon-tooltip.js +1 -1
  137. package/dist/index.d.ts +1 -3
  138. package/dist/instrument-chassis.js +1 -1
  139. package/dist/keyboard.js +1 -1
  140. package/dist/label.js +1 -1
  141. package/dist/labeled-field.js +28 -18
  142. package/dist/{math-DTpRVC0e.js → math-U6-RrLmV.js} +18 -2
  143. package/dist/metric-badge.js +1 -1
  144. package/dist/metric-cell.js +25 -21
  145. package/dist/metric-stack.js +35 -34
  146. package/dist/{minimize-2-lcXOuc6V.js → minimize-2-BV31Ob_h.js} +1 -1
  147. package/dist/motion-core.js +32 -137
  148. package/dist/motion-curves.d.ts +1 -0
  149. package/dist/motion-curves.js +130 -0
  150. package/dist/motion.js +38 -37
  151. package/dist/notification.js +1 -1
  152. package/dist/number-field.js +1 -1
  153. package/dist/paper-backdrop.js +1 -1
  154. package/dist/popover.js +1 -1
  155. package/dist/{presets-BP_ALM0m.js → presets-BKVyQfbt.js} +1 -14
  156. package/dist/progress.js +1 -1
  157. package/dist/reactive.js +2 -2
  158. package/dist/scrolling-text.js +1 -1
  159. package/dist/{search-nbkvr2dC.js → search-BSGrf2Sk.js} +1 -1
  160. package/dist/search.js +9 -9
  161. package/dist/select.js +3 -3
  162. package/dist/separator.js +1 -1
  163. package/dist/{sheet-VZEtNFvO.js → sheet-1fChZjtw.js} +3 -3
  164. package/dist/sheet.js +1 -1
  165. package/dist/{slider-ClgpP7EB.js → slider-B-JP2JlI.js} +4 -4
  166. package/dist/slider.js +1 -1
  167. package/dist/sortable-list.js +2 -2
  168. package/dist/springPresets--YdWTHtm.js +40 -0
  169. package/dist/stacked-icons.js +6 -6
  170. package/dist/styles/animations.css +29 -114
  171. package/dist/styles/cards.css +55 -0
  172. package/dist/styles/components.css +4 -1
  173. package/dist/styles/configurator.css +42 -0
  174. package/dist/styles/dock/layer-group.css +83 -25
  175. package/dist/styles/dock/layers.css +23 -1
  176. package/dist/styles/dock/morph-bridge.css +123 -0
  177. package/dist/styles/dock/morph.css +175 -45
  178. package/dist/styles/dock/overflow.css +51 -1
  179. package/dist/styles/dock/rail-extend.css +300 -0
  180. package/dist/styles/dock/shell.css +63 -105
  181. package/dist/styles/dock-controls/dark-mode-toggle.css +109 -0
  182. package/dist/styles/dock-controls/icon-button.css +133 -0
  183. package/dist/styles/dock-controls/tab-button.css +202 -0
  184. package/dist/styles/dock-controls/touch-floor.css +94 -0
  185. package/dist/styles/dock-controls/triggers.css +128 -0
  186. package/dist/styles/dock-controls.css +30 -595
  187. package/dist/styles/dock.css +2 -0
  188. package/dist/styles/drawer.css +2 -0
  189. package/dist/styles/floating-panel.css +17 -0
  190. package/dist/styles/glass/a11y-fallback.css +245 -0
  191. package/dist/styles/glass/ladder.css +337 -0
  192. package/dist/styles/glass/material.css +238 -0
  193. package/dist/styles/glass/progress-rail.css +78 -0
  194. package/dist/styles/glass/squircle.css +66 -0
  195. package/dist/styles/glass/surfaces.css +306 -0
  196. package/dist/styles/glass-refract.css +2 -0
  197. package/dist/styles/glass.css +31 -1188
  198. package/dist/styles/hover-popover.css +2 -0
  199. package/dist/styles/index.css +28 -14
  200. package/dist/styles/instrument-chassis.css +4 -0
  201. package/dist/styles/paper.css +2 -68
  202. package/dist/styles/segmented-tabs.css +275 -0
  203. package/dist/styles/theme/bridges.css +337 -0
  204. package/dist/styles/theme/dark.css +7 -0
  205. package/dist/styles/theme/literals.css +94 -0
  206. package/dist/styles/theme/radius.css +95 -0
  207. package/dist/styles/theme.css +26 -529
  208. package/dist/styles/tokens/color-radius.css +260 -0
  209. package/dist/styles/tokens/dark-arm.css +200 -0
  210. package/dist/styles/tokens/glass.css +440 -0
  211. package/dist/styles/tokens/light-dark.css +158 -0
  212. package/dist/styles/tokens/offsets-sizing.css +500 -0
  213. package/dist/styles/tokens/property-regs.css +169 -0
  214. package/dist/styles/tokens/scale-paper.css +366 -0
  215. package/dist/styles/tokens/scheme-motion.css +334 -0
  216. package/dist/styles/tokens/shadow.css +166 -0
  217. package/dist/styles/tokens.css +22 -2360
  218. package/dist/styles/typography.css +75 -21
  219. package/dist/styles/utilities/a11y-overrides.css +140 -0
  220. package/dist/styles/utilities/animate.css +26 -0
  221. package/dist/styles/utilities/base.css +365 -0
  222. package/dist/styles/utilities/btn.css +401 -0
  223. package/dist/styles/utilities/components.css +317 -0
  224. package/dist/styles/utilities.css +19 -1318
  225. package/dist/styles/view-transition.css +0 -51
  226. package/dist/switch.js +1 -1
  227. package/dist/tabs.js +91 -82
  228. package/dist/timeline.js +1 -1
  229. package/dist/toast.js +1 -1
  230. package/dist/toggle-group.js +1 -1
  231. package/dist/tooltip.js +1 -1
  232. package/dist/underline.d.ts +1 -0
  233. package/dist/underline.js +85 -0
  234. package/dist/{useAnimatedNumber-Bcpy5Etf.js → useAnimatedNumber-C5I3wWd8.js} +1 -1
  235. package/dist/{useConfiguratorState-DxAqksK6.js → useConfiguratorState-DAoeHVue.js} +8 -8
  236. package/dist/{useGlobalDark-CAhOXNLO.js → useGlobalDark-yhL4Wp-s.js} +3 -22
  237. package/dist/useLiquidFlex-BL0lLLN2.js +30 -0
  238. package/dist/useRAFLoop-Bxv0o6L5.js +109 -0
  239. package/dist/{useScrollProgress-CffFGLa5.js → useScrollProgress-Dlvx-L3v.js} +1 -1
  240. package/dist/useSpecularTracking-Bo5su68i.js +32 -0
  241. package/dist/useSpringMount-CI2jOstM.js +108 -0
  242. package/dist/{useTouchGate-WFyJYsth.js → useTouchGate-Dg7MQI1G.js} +1 -1
  243. package/dist/utils/coalesceMetric.d.ts +29 -0
  244. package/dist/utils/index.d.ts +1 -0
  245. package/dist/vReveal-CqaCz_mC.js +44 -0
  246. package/dist/watercolor-dot.js +11 -9
  247. package/dist/{x-Dfsegz9Y.js → x-BUwTKe50.js} +1 -1
  248. package/package.json +78 -58
  249. package/src/styles/animations.css +29 -114
  250. package/src/styles/cards.css +53 -0
  251. package/src/styles/configurator.css +42 -0
  252. package/src/styles/dock/layer-group.css +83 -25
  253. package/src/styles/dock/layers.css +23 -1
  254. package/src/styles/dock/morph-bridge.css +123 -0
  255. package/src/styles/dock/morph.css +175 -45
  256. package/src/styles/dock/overflow.css +51 -1
  257. package/src/styles/dock/rail-extend.css +300 -0
  258. package/src/styles/dock/shell.css +63 -105
  259. package/src/styles/dock-controls/dark-mode-toggle.css +109 -0
  260. package/src/styles/dock-controls/icon-button.css +133 -0
  261. package/src/styles/dock-controls/tab-button.css +202 -0
  262. package/src/styles/dock-controls/touch-floor.css +94 -0
  263. package/src/styles/dock-controls/triggers.css +128 -0
  264. package/src/styles/dock-controls.css +30 -595
  265. package/src/styles/dock.css +2 -0
  266. package/src/styles/floating-panel.css +15 -0
  267. package/src/styles/glass/a11y-fallback.css +245 -0
  268. package/src/styles/glass/ladder.css +337 -0
  269. package/src/styles/glass/material.css +238 -0
  270. package/src/styles/glass/progress-rail.css +78 -0
  271. package/src/styles/glass/squircle.css +66 -0
  272. package/src/styles/glass/surfaces.css +306 -0
  273. package/src/styles/glass.css +31 -1188
  274. package/src/styles/index.css +28 -14
  275. package/src/styles/paper.css +2 -68
  276. package/src/styles/segmented-tabs.css +271 -0
  277. package/src/styles/theme/bridges.css +337 -0
  278. package/src/styles/theme/dark.css +7 -0
  279. package/src/styles/theme/literals.css +94 -0
  280. package/src/styles/theme/radius.css +95 -0
  281. package/src/styles/theme.css +26 -529
  282. package/src/styles/tokens/color-radius.css +260 -0
  283. package/src/styles/tokens/dark-arm.css +200 -0
  284. package/src/styles/tokens/glass.css +440 -0
  285. package/src/styles/tokens/light-dark.css +158 -0
  286. package/src/styles/tokens/offsets-sizing.css +500 -0
  287. package/src/styles/tokens/property-regs.css +169 -0
  288. package/src/styles/tokens/scale-paper.css +366 -0
  289. package/src/styles/tokens/scheme-motion.css +334 -0
  290. package/src/styles/tokens/shadow.css +166 -0
  291. package/src/styles/tokens.css +22 -2360
  292. package/src/styles/typography.css +75 -21
  293. package/src/styles/utilities/a11y-overrides.css +140 -0
  294. package/src/styles/utilities/animate.css +26 -0
  295. package/src/styles/utilities/base.css +365 -0
  296. package/src/styles/utilities/btn.css +401 -0
  297. package/src/styles/utilities/components.css +317 -0
  298. package/src/styles/utilities.css +19 -1318
  299. package/src/styles/view-transition.css +0 -51
  300. package/dist/DeckProgress-Dmk4_AKN.js +0 -23
  301. package/dist/InstrumentRail-CUJ05YVG.js +0 -44
  302. package/dist/MetricBadge-BZVWIxNy.js +0 -80
  303. package/dist/components/custom/deck-progress/DeckProgress.vue.d.ts +0 -27
  304. package/dist/components/custom/deck-progress/index.d.ts +0 -2
  305. package/dist/components/custom/dialog-native/GlassDialogNative.vue.d.ts +0 -57
  306. package/dist/components/custom/dialog-native/index.d.ts +0 -1
  307. package/dist/components/custom/handmark/HandMark.vue.d.ts +0 -29
  308. package/dist/components/custom/handmark/brush.d.ts +0 -242
  309. package/dist/components/custom/handmark/freehand.d.ts +0 -69
  310. package/dist/components/custom/handmark/geometry.d.ts +0 -50
  311. package/dist/components/custom/handmark/index.d.ts +0 -21
  312. package/dist/components/custom/handmark/ink.d.ts +0 -11
  313. package/dist/components/custom/handmark/texture.d.ts +0 -39
  314. package/dist/components/custom/handmark/types.d.ts +0 -53
  315. package/dist/components/custom/handmark/useHandMark.d.ts +0 -87
  316. package/dist/components/custom/instrument-rail/InstrumentRail.vue.d.ts +0 -91
  317. package/dist/components/custom/instrument-rail/index.d.ts +0 -2
  318. package/dist/composables/motion/useRouteTransition.d.ts +0 -42
  319. package/dist/deck-progress.d.ts +0 -1
  320. package/dist/deck-progress.js +0 -2
  321. package/dist/dockContext-BKeIMmNk.js +0 -9
  322. package/dist/handmark.d.ts +0 -1
  323. package/dist/handmark.js +0 -663
  324. package/dist/instrument-rail.d.ts +0 -1
  325. package/dist/instrument-rail.js +0 -2
  326. package/dist/styles/instrument-rail.css +0 -127
  327. package/dist/useGlassRenderer-D7YGOYiM.js +0 -69
  328. package/dist/useSpecularTracking-BVRZsRHA.js +0 -26
  329. package/dist/useSpringMount-BJSHcLl3.js +0 -113
  330. package/dist/useViewTransition-DaN5Zrox.js +0 -21
  331. package/dist/vReveal-zUIQk-rJ.js +0 -53
  332. package/src/styles/instrument-rail.css +0 -127
  333. /package/dist/{ContextMenuContent-DDa0v27s.js → ContextMenuContent-CT3AS1WX.js} +0 -0
  334. /package/dist/{HoverCardContent-B6CcQ8He.js → HoverCardContent-Csywg3YF.js} +0 -0
  335. /package/dist/{Input-xuDwALQR.js → Input-DWQQIOC4.js} +0 -0
  336. /package/dist/{InstrumentChassis-C2f6cBaQ.js → InstrumentChassis-UUJX0-mW.js} +0 -0
  337. /package/dist/{Label-zRfbQdCn.js → Label-r3WzWrsj.js} +0 -0
  338. /package/dist/{ModalOverlay-B1GkAjNb.js → ModalOverlay-DVLI2VRr.js} +0 -0
  339. /package/dist/{PaperBackdrop-CqwjnfLv.js → PaperBackdrop-DIXTtVq6.js} +0 -0
  340. /package/dist/{Progress-iEuD9pxG.js → Progress-DwlUKGbr.js} +0 -0
  341. /package/dist/{SelectGroup-BFiod7X2.js → SelectGroup-aumMgWLs.js} +0 -0
  342. /package/dist/{SelectSeparator-C4Ql0gzV.js → SelectSeparator-BQ_1Fcbp.js} +0 -0
  343. /package/dist/{Separator-D7sD7RKj.js → Separator-0JE6LtNu.js} +0 -0
  344. /package/dist/{TooltipProvider-CmZzCuaG.js → TooltipProvider-B3MkB_8P.js} +0 -0
  345. /package/dist/{compile-BOXjLUxu.js → compile-B7NGOBcP.js} +0 -0
  346. /package/dist/{constants-yKeKnE84.js → constants-CS75AWHG.js} +0 -0
  347. /package/dist/{createContext-B44Sah_H.js → createContext-BM46COQ-.js} +0 -0
  348. /package/dist/{createLucideIcon-B6uNAU9G.js → createLucideIcon-DydS2qgk.js} +0 -0
  349. /package/dist/{menuItemVariants-CCoBNkU5.js → menuItemVariants-DPiEarb0.js} +0 -0
  350. /package/dist/{supportsCssTimeline-C5oe0lnD.js → supportsCssTimeline-BWenxvHU.js} +0 -0
  351. /package/dist/{useIntersectionPause-Cck5Uxk8.js → useIntersectionPause-Cc-H9ees.js} +0 -0
  352. /package/dist/{useInterval-Dsmqwi03.js → useInterval-iHludrxk.js} +0 -0
  353. /package/dist/{useKeyboardShortcuts-CyIYrndH.js → useKeyboardShortcuts-Be3w_Rwk.js} +0 -0
  354. /package/dist/{useResizeObserver-CWCbk5Px.js → useResizeObserver-BhgdhOIj.js} +0 -0
  355. /package/dist/{useResolveTokenColor-r9pnNjqK.js → useResolveTokenColor-Dvn2RZJW.js} +0 -0
  356. /package/dist/{useSortable-C8ReQ50P.js → useSortable-muI29agz.js} +0 -0
  357. /package/dist/{useTextHighlight-CWEi25hf.js → useTextHighlight-DmRYkOBx.js} +0 -0
  358. /package/dist/{useTimer-3xqf_54b.js → useTimer-Dzarvzuk.js} +0 -0
  359. /package/dist/{useUserInvalidAria-DoJKMZ3s.js → useUserInvalidAria-B2h6jAM_.js} +0 -0
  360. /package/dist/{useViewportReady-RIr5Wgkh.js → useViewportReady-B40FK4Pa.js} +0 -0
@@ -0,0 +1,35 @@
1
+ import type { Ref } from "vue";
2
+ import type { ConstellationField, ConstellationPointer, ConstellationRipple } from "../constellationField";
3
+ /** The substrate handle the wiring reads (`wake` re-arms a parked surface). */
4
+ interface CanvasHandle {
5
+ wake: () => void;
6
+ reducedMotion: boolean;
7
+ }
8
+ export interface UseConstellationPointerOptions {
9
+ host: HTMLElement | null;
10
+ canvas: HTMLCanvasElement;
11
+ field: ConstellationField;
12
+ pointer: ConstellationPointer;
13
+ ripples: ConstellationRipple[];
14
+ handle: CanvasHandle;
15
+ /** The hoisted client→canvas-local mapper ref the exposed `warpTo(clientX,clientY)` reads. */
16
+ toLocalRef: Ref<((e: {
17
+ clientX: number;
18
+ clientY: number;
19
+ }) => ConstellationPointer | null) | null>;
20
+ pointerReactive: boolean;
21
+ warpOnClick: boolean;
22
+ gravityWell: boolean;
23
+ /** The deterministic-capture predicate — a frozen capture registers NO listeners. */
24
+ isFrozen: boolean;
25
+ }
26
+ /**
27
+ * Wire the constellation pointer listeners on the host. Sets the hoisted
28
+ * `toLocal` mapper (the deck-scale invariant — BOTH the ripple path AND the warp
29
+ * path read this ONE mapper), then registers the three independent listener
30
+ * blocks gated by their respective prop flags (each PRM-gated + capture-gated).
31
+ * No teardown is returned: the listeners ride the component's lifetime (the host
32
+ * element is torn down with the component), matching the prior inline behaviour.
33
+ */
34
+ export declare function useConstellationPointer(opts: UseConstellationPointerOptions): void;
35
+ export {};
@@ -0,0 +1,61 @@
1
+ import type { ConstellationPalette, ConstellationWellConfig } from "./constellationField";
2
+ /**
3
+ * The reference layout width (px) the field's node geometry is authored against. A
4
+ * live canvas's `k = width / BASE_WIDTH` scales every base-width length (the well
5
+ * reach/speed, the node spacing) so a 600px and a 1280px canvas read the same shape.
6
+ */
7
+ export declare const BASE_WIDTH = 1280;
8
+ /**
9
+ * The neutral palette FALLBACK the draw passes read when the `--constellation-*`
10
+ * color/alpha tokens are absent (SSR / no-token mount). The fallbacks mirror the §5c
11
+ * light-arm token defaults so a no-token mount still reads recessive-but-legible.
12
+ *
13
+ * `accent`/`edgeFloor`/`edgeAccentAlpha` (AZ.W-CON-GEN G3) are the ACCENT-edge skin
14
+ * weights the optional `drawEdges(…, accentIndex)` pass reads — the flagged-node EDGE
15
+ * tint. `accent` mirrors the `--constellation-accent` neutral library default;
16
+ * `edgeFloor: 0` is the byte-identity (no floor by default — a consumer lifts it so a
17
+ * distance-faded hairline clears the perceptual floor on a bright ground);
18
+ * `edgeAccentAlpha: 0.30` is the accent-incident edge multiplier.
19
+ */
20
+ export declare const DEFAULT_PALETTE: ConstellationPalette;
21
+ /**
22
+ * Warp spring DEFAULTS — `--constellation-warp-*` tokens override these on mount.
23
+ * `WARP_RESPONSE` is the keyframes.js angular PERIOD (s, NOT a settle-duration);
24
+ * `WARP_ZETA = 1.0` is critically damped so a focal mark never rings/overshoots.
25
+ */
26
+ export declare const WARP_RESPONSE = 0.55;
27
+ export declare const WARP_ZETA = 1;
28
+ /**
29
+ * Gravity-well tuning DEFAULTS (AY.W-CON2). The `--constellation-well-*` tokens
30
+ * override these on mount via `field.well.cfg`; these stay the fallback. SET by the
31
+ * §6 egg-live π readback (the field-perturbs-then-cools capture is the binding
32
+ * truth) — a moderate gain over a generous reach, a brisk ramp, a tight no-slingshot
33
+ * speed cap, and the singularity-soften floor.
34
+ */
35
+ export declare const DEFAULT_WELL_CONFIG: ConstellationWellConfig;
36
+ /**
37
+ * Auto-DRIFT cadence DEFAULTS (AY.W-CON1 source; tokenised in AY.W-CON2). The
38
+ * `--constellation-wander-idle`/`-wander-jitter` tokens override these on mount; a
39
+ * prop `{ minIdle, jitter }` still wins over the token. The 8s/8s default rhythm
40
+ * re-targets the focal mark every 8–16s (the slides cadence).
41
+ */
42
+ export declare const DEFAULT_WANDER_IDLE = 8000;
43
+ export declare const DEFAULT_WANDER_JITTER = 8000;
44
+ /**
45
+ * Autonomous PINNED-ANCHOR drift cadence DEFAULTS (AZ.W-CON-GEN G5). DISTINCT from
46
+ * `wander` (which re-targets the WARP spring among random nodes): this gently eases
47
+ * the PINNED node (`field.pinnedIndex`) around its seeded ANCHOR on a jittered
48
+ * cadence — the flagged point breathes its neighborhood without leaving it. The
49
+ * `--constellation-pinned-drift-*` tokens override these on mount; a prop still wins.
50
+ * `wanderFrac` (±0.14 of the canvas) keeps the pinned node clear of the hero type
51
+ * even as it drifts; `durMs` is the per-leg easeInOutQuad duration; the idle/jitter
52
+ * is the rest between legs (a long, calm rhythm, NOT a metronome).
53
+ */
54
+ export declare const DEFAULT_PINNED_DRIFT_FRAC = 0.14;
55
+ export declare const DEFAULT_PINNED_DRIFT_DUR = 2600;
56
+ export declare const DEFAULT_PINNED_DRIFT_IDLE = 6000;
57
+ export declare const DEFAULT_PINNED_DRIFT_JITTER = 8000;
58
+ /** R5-8 — the shipped visual-size floor: `kVisOf` === `k` for every canvas
59
+ * ≥ ~0.72·BASE_WIDTH ≈ 922px (incl. the 1280 export frame — byte-identical
60
+ * there by construction); below it the marks stop crushing sub-pixel. */
61
+ export declare const DEFAULT_K_FLOOR = 0.72;
@@ -0,0 +1,30 @@
1
+ import type { ConstellationField, ConstellationPalette, ConstellationPointer, ConstellationRipple } from "./constellationField";
2
+ import { DEFAULT_PALETTE } from "./constants";
3
+ /** R5-8 — the visual-SIZE draw scale: `max(k, kFloor)`. The four neutral passes
4
+ * size on this; positions/reach stay on TRUE `field.k`. Exported so a
5
+ * `drawOverlay` skin floors its own marks/labels on the same axis. */
6
+ export declare function kVisOf(field: ConstellationField): number;
7
+ export { DEFAULT_PALETTE };
8
+ /**
9
+ * Resolve the FULL neutral palette + legibility weights off a canvas's resolved
10
+ * custom properties (AX.W17). The colors AND the alpha multipliers route through
11
+ * the same `getComputedStyle` probe, so a dark-mode flip re-resolves BOTH the
12
+ * `:root`/`.dark` color arms AND the per-mode alpha defaults in one read.
13
+ */
14
+ export declare function readPalette(canvas: HTMLCanvasElement): ConstellationPalette;
15
+ /**
16
+ * Pass 1 — hairline edges between any two nodes within `link` px (alpha falls off with
17
+ * distance). The optional `accentIndex` (AZ.W-CON-GEN G2; default `-1` = OFF,
18
+ * byte-identical to the prior single-color pass) is the flagged-node ACCENT-edge skin:
19
+ * an edge incident on that node strokes `palette.accent` at `palette.edgeAccentAlpha`
20
+ * with a slightly heavier line (the flagged-node tether), while every other edge keeps
21
+ * the neutral register. The neutral edges carry a `palette.edgeFloor` minimum so a
22
+ * distance-faded hairline clears the perceptual floor on a bright ground (G3).
23
+ */
24
+ export declare function drawEdges(ctx: CanvasRenderingContext2D, field: ConstellationField, link: number, palette: ConstellationPalette, opacityCeiling?: number, accentIndex?: number): void;
25
+ /** Pass 2 — ambient node dots. */
26
+ export declare function drawNodes(ctx: CanvasRenderingContext2D, field: ConstellationField, palette: ConstellationPalette, opacityCeiling?: number): void;
27
+ /** Pass 3 — the cursor joins the web: faint links to nodes within reach + a soft cursor node. */
28
+ export declare function drawPointerWeb(ctx: CanvasRenderingContext2D, field: ConstellationField, link: number, palette: ConstellationPalette, pointer: ConstellationPointer | null, opacityCeiling?: number): void;
29
+ /** Pass 4 — tap ripples: expanding rings that fade over ~0.9s; consumed entries are spliced. */
30
+ export declare function drawRipples(ctx: CanvasRenderingContext2D, field: ConstellationField, now: number, ripples: ConstellationRipple[], palette: ConstellationPalette, opacityCeiling?: number): void;
@@ -1,5 +1,4 @@
1
- /** Reference width the `k` scale factor is keyed to (CSS px). */
2
- export declare const BASE_WIDTH = 1280;
1
+ export { BASE_WIDTH } from "./constants";
3
2
  export interface ConstellationNode {
4
3
  x: number;
5
4
  y: number;
@@ -35,6 +34,27 @@ export interface ConstellationPalette {
35
34
  edgeFocusAlpha: number;
36
35
  /** The field-yields-to-type translucency knob (the global field dimmer). */
37
36
  alpha: number;
37
+ /**
38
+ * The ACCENT-edge skin tint (AZ.W-CON-GEN G3) — the flagged-node EDGE color the
39
+ * optional `drawEdges(…, accentIndex)` pass strokes for edges incident on the
40
+ * accented node. Reads `--constellation-accent` (the consumer-preset boundary —
41
+ * the library ships a neutral default; a consumer aliases it to its brand hue).
42
+ */
43
+ accent: string;
44
+ /**
45
+ * The neutral-edge alpha FLOOR (AZ.W-CON-GEN G3) — added to a distance-faded
46
+ * neutral hairline's alpha so it clears the perceptual/sampling floor across its
47
+ * full length on a bright ground (the "web doesn't read in light mode" fix).
48
+ * Default `0` is byte-identical (no floor). Reads `--constellation-edge-floor`.
49
+ */
50
+ edgeFloor: number;
51
+ /**
52
+ * The ACCENT-incident edge alpha multiplier (AZ.W-CON-GEN G3) — the per-mode
53
+ * weight for an edge touching the accented node. Reads
54
+ * `--constellation-edge-accent-alpha`; the accented edges read a touch louder
55
+ * than the neutral lattice (the flagged-node tether).
56
+ */
57
+ edgeAccentAlpha: number;
38
58
  }
39
59
  /**
40
60
  * The per-axis critically-damped warp spring on the focal node (AX.W17). The
@@ -72,14 +92,37 @@ export interface ConstellationWander {
72
92
  jitter: number;
73
93
  }
74
94
  /**
75
- * Auto-DRIFT cadence DEFAULTS (AY.W-CON1 source; tokenised in AY.W-CON2). The
76
- * `--constellation-wander-idle`/`-wander-jitter` tokens override these on mount via
77
- * `readInteractionConfig` (the SAME numeric `--constellation-*` cohort as the warp
78
- * spring + the well gains); a prop `{ minIdle, jitter }` still wins over the token.
79
- * The 8s/8s default rhythm re-targets the focal mark every 8–16s (the slides cadence).
95
+ * The autonomous PINNED-ANCHOR drift state (AZ.W-CON-GEN G5) — the gentle wander of
96
+ * the PINNED node (`field.pinnedIndex`) around its seeded ANCHOR. DISTINCT from
97
+ * `wander` (which re-targets the WARP spring among random nodes): this eases ONE
98
+ * designated node a small fraction around its rest position on a jittered cadence,
99
+ * so a flagged point breathes its neighborhood without leaving the dead-space it was
100
+ * anchored in. Stepped inside `stepField` (no second rAF) via a closed-form
101
+ * easeInOutQuad over `now` — no integrator. Absent (`undefined`) → `stepField` skips
102
+ * the block (byte-identical to HEAD).
80
103
  */
81
- export declare const DEFAULT_WANDER_IDLE = 8000;
82
- export declare const DEFAULT_WANDER_JITTER = 8000;
104
+ export interface ConstellationPinnedDrift {
105
+ /** The anchor (the pinned node's rest position) the drift eases around (px). */
106
+ anchorX: number;
107
+ anchorY: number;
108
+ /** ms timestamp of the next leg; -1 until armed on the first stepped frame. */
109
+ nextAt: number;
110
+ /** ms timestamp the current leg started; -1 between legs (resting at the anchor). */
111
+ legStart: number;
112
+ /** the current leg's from/to (px) — the eased segment endpoints. */
113
+ fromX: number;
114
+ fromY: number;
115
+ toX: number;
116
+ toY: number;
117
+ /** the ± fraction of the canvas the drift wanders around the anchor. */
118
+ wanderFrac: number;
119
+ /** the per-leg easeInOutQuad duration (ms). */
120
+ durMs: number;
121
+ /** the minimum rest (ms) between legs. */
122
+ minIdle: number;
123
+ /** the random extra rest (ms) per leg (so the rhythm is not metronomic). */
124
+ jitter: number;
125
+ }
83
126
  /**
84
127
  * The warp-spring tuning the integrator reads (AY.W-CON2). Tokenised numeric (the
85
128
  * `--constellation-warp-*` cohort) so a consumer retunes the warp WITHOUT editing
@@ -163,6 +206,8 @@ export interface ConstellationField {
163
206
  h: number;
164
207
  k: number;
165
208
  dpr: number;
209
+ /** R5-8 — SIZES draw at `kVisOf(field)`; TRUE `k` keeps positions/reach. */
210
+ kFloor?: number;
166
211
  /**
167
212
  * The designated focal node's INDEX, or `-1` when none is pinned. Re-points
168
213
  * on each `warpTo`; node count is conserved (it is a designation, not a new
@@ -193,6 +238,30 @@ export interface ConstellationField {
193
238
  * pre-well HEAD — `stepField` skips the force pass entirely.
194
239
  */
195
240
  well?: ConstellationWell;
241
+ /**
242
+ * The PINNED node designation (AZ.W-CON-GEN G1) — the index of a node `stepField`
243
+ * does NOT drift/bounce/steer/pull, so it HOLDS its seeded position (the flagged
244
+ * flagged node the consumer pins). `-1` (the default) = no pin → every node drifts
245
+ * (byte-identical to HEAD). A designation, NOT a new node — node count is
246
+ * conserved. The optional `pinnedDrift` gently wanders it around its anchor; the
247
+ * optional `drawEdges(…, accentIndex)` tints its incident edges.
248
+ */
249
+ pinnedIndex: number;
250
+ /**
251
+ * The optional autonomous PINNED-ANCHOR drift (AZ.W-CON-GEN G5). When set AND a
252
+ * node is pinned, `stepField` gently eases the pinned node around its anchor on a
253
+ * jittered cadence (a closed-form easeInOutQuad — no second rAF). Absent
254
+ * (`undefined`) → the pinned node holds dead-still at its anchor (byte-identical).
255
+ */
256
+ pinnedDrift?: ConstellationPinnedDrift;
257
+ /**
258
+ * Warp AUTO-RELEASE (AZ.W-CON-GEN G6). When `true`, `stepField` clears the warp's
259
+ * `targetIdx` (→ -1) once the spring has SETTLED on its target — the focal node
260
+ * releases the spring and rides its node's RAW drift (the identity-ride), freeing
261
+ * the spring for the next warp. Default `false`/undefined keeps the held-target
262
+ * behaviour (the warp chases its node forever — byte-identical to HEAD).
263
+ */
264
+ warpAutoRelease?: boolean;
196
265
  }
197
266
  /**
198
267
  * The `<Constellation>` consumer prop surface (the public type a consumer types
@@ -206,6 +275,15 @@ export interface ConstellationProps {
206
275
  link?: number;
207
276
  /** Drift speed. Default 0.16. */
208
277
  speed?: number;
278
+ /**
279
+ * AY.W-COHERE E3 — the per-instance outer-envelope RECESSION knob (the aurora
280
+ * `opacityCeiling` / fourier `intensity` sibling — ONE recession vocabulary
281
+ * across the four live substrates). Scales the painted edge/node/web/ripple
282
+ * alpha OVER the mode-tuned `--constellation-alpha` base so the lattice can
283
+ * RECEDE behind content (0.4–0.6 in a hero). Default `1` is byte-identical to
284
+ * HEAD.
285
+ */
286
+ opacityCeiling?: number;
209
287
  /** Seed for a reproducible field (number or hashed string); omit for `Math.random`. */
210
288
  seed?: number | string;
211
289
  /** Steer-toward-cursor + tap ripples. Default true; auto-off under reduced-motion. */
@@ -246,6 +324,35 @@ export interface ConstellationProps {
246
324
  maxSpeed?: number;
247
325
  soften?: number;
248
326
  };
327
+ /**
328
+ * PINNED node designation (AZ.W-CON-GEN G1): a node held by every step pass (it
329
+ * does not drift / bounce / steer / feel the well). `false`/absent → no pin;
330
+ * `true` → node 0; a number → that index. The flagged-node pin the consumer holds.
331
+ */
332
+ pinned?: boolean | number;
333
+ /**
334
+ * ACCENT-edge skin (AZ.W-CON-GEN G2): edges incident on the pinned (else focal)
335
+ * node stroke the `--constellation-accent` tint — the flagged-node tether. Default
336
+ * OFF (the neutral single-color pass).
337
+ */
338
+ accentEdges?: boolean;
339
+ /**
340
+ * Autonomous PINNED-ANCHOR drift (AZ.W-CON-GEN G5): the pinned node gently wanders
341
+ * its seeded anchor on a jittered cadence (DISTINCT from `wander`, which re-targets
342
+ * the warp). Default OFF (the pin holds dead-still). PRM-gated.
343
+ */
344
+ pinnedDrift?: boolean | {
345
+ wanderFrac?: number;
346
+ durMs?: number;
347
+ minIdle?: number;
348
+ jitter?: number;
349
+ };
350
+ /**
351
+ * Warp AUTO-RELEASE (AZ.W-CON-GEN G6): a settled warp clears its target so the
352
+ * focal rides its node's raw drift (the identity-ride). Default OFF (the warp holds
353
+ * its target forever). Read the settled signal via the `warpSettled()` expose.
354
+ */
355
+ warpAutoRelease?: boolean;
249
356
  /**
250
357
  * Deterministic-capture freeze (AY.W-CON3): when `true`, lays out ONE
251
358
  * reproducible STATIC frame (no `stepField`, no ripple / warp / wander / well
@@ -261,31 +368,6 @@ export interface ConstellationProps {
261
368
  /** The skin seam — paints the consumer's focal mark on the live field. */
262
369
  drawOverlay?: (ctx: CanvasRenderingContext2D, field: ConstellationField, now: number) => void;
263
370
  }
264
- export declare const DEFAULT_PALETTE: ConstellationPalette;
265
- /**
266
- * Resolve the FULL neutral palette + legibility weights off a canvas's resolved
267
- * custom properties (AX.W17). The colors AND the alpha multipliers route through
268
- * the same `getComputedStyle` probe, so a dark-mode flip re-resolves BOTH the
269
- * `:root`/`.dark` color arms AND the per-mode alpha defaults in one read.
270
- */
271
- export declare function readPalette(canvas: HTMLCanvasElement): ConstellationPalette;
272
- /**
273
- * Read the NUMERIC interaction-tuning tokens (the warp spring + the gravity-well
274
- * gains) off a canvas's resolved custom properties — ONCE on mount (AY.W-CON2),
275
- * via `parseFloat`, NOT per-frame `getComputedStyle` (the hot loop stays clean).
276
- * Returns `{ warp, well }` configs the field carries; every member falls back to
277
- * the shipped default when the token is absent (an SSR / no-token mount reads the
278
- * byte-identical spring). The tokens are PLAIN numbers (`0.55`, `12000`), immune
279
- * to the W30 `light-dark()`-into-Canvas2D leak (they never reach a `fillStyle`).
280
- */
281
- export declare function readInteractionConfig(canvas: HTMLCanvasElement): {
282
- warp: ConstellationWarpConfig;
283
- well: ConstellationWellConfig;
284
- wander: {
285
- minIdle: number;
286
- jitter: number;
287
- };
288
- };
289
371
  /**
290
372
  * Seed `count` drifting nodes inside `w × h`. `rng` is a `() => number` in
291
373
  * `[0, 1)` (the glass-ui `mulberry32`/`Math.random`); a seeded `rng` lays out a
@@ -325,118 +407,3 @@ export declare function refitField(field: ConstellationField, prevW: number, pre
325
407
  * (a click-warp in flight pre-empts the cadence — `warpSettled` reports false).
326
408
  */
327
409
  export declare function stepField(field: ConstellationField, k: number, speed: number, pointer: ConstellationPointer | null, dt?: number, now?: number, rng?: () => number): void;
328
- /**
329
- * Advance the gravity-well one `dt` (AY.W-CON2). A transient held-pointer force
330
- * composed inside `stepField` (NO new rAF): ease `well.strength` toward
331
- * `well.target` (1 held / 0 released) at `cfg.ramp`/s; while active, add an
332
- * inverse-square pull toward the held point onto each node within `cfg.reach`
333
- * (the `max(d, soften)` no-singularity floor + the `cfg.maxSpeed` no-slingshot
334
- * clamp); ALWAYS ease every node's |v| back toward `speed` (the field-cools
335
- * invariant — so a released well re-settles). No-ops (entirely skipped) when
336
- * `field.well` is undefined → the default render is byte-identical to HEAD.
337
- *
338
- * `dt` is clamped to {@link WARP_DT_CLAMP} (the same park-resume guard the warp
339
- * uses) so a tab-throttle gap cannot slingshot the field in one giant step.
340
- */
341
- export declare function stepWell(field: ConstellationField, k: number, speed: number, dt: number): void;
342
- /**
343
- * Warp spring tuning DEFAULTS — gentle critically-damped (no overshoot on a focal
344
- * mark). The `--constellation-warp-response`/`-zeta` tokens override these on mount
345
- * via `field.warpCfg` (AY.W-CON2); these stay the byte-identical fallback.
346
- *
347
- * `WARP_RESPONSE` is the keyframes.js `(response, dampingFraction)` model's ANGULAR
348
- * PERIOD (the SwiftUI `.spring(response:)` axis), `ω₀ = 2π/response` — NOT a
349
- * settle-duration. At ζ=1 the 2%-settle lands at `t₂ ≈ 5.83/ω₀ ≈ 0.93·response`
350
- * (the `(1 + ω₀t)e^(−ω₀t)` critically-damped envelope); the shipped 0.55 settles
351
- * at ≈0.51s. This is the AY.W-CON2 ω-reconcile: the engine keeps the keyframes.js
352
- * `ω₀ = 2π/response` convention (the shared house model — `regen-spring-tokens.mjs`,
353
- * `keyframes.d.ts:860-882`) and mints NO second ω formula; the SEMANTIC honesty
354
- * (period, not settle) lives in this doc + the token comment + the settle-time unit
355
- * assertion, so a consumer setting the token gets the documented behaviour at ANY ζ.
356
- */
357
- export declare const WARP_RESPONSE = 0.55;
358
- export declare const WARP_ZETA = 1;
359
- /**
360
- * Gravity-well tuning DEFAULTS (AY.W-CON2). The `--constellation-well-*` tokens
361
- * override these on mount via `field.well.cfg`; these stay the fallback. SET by the
362
- * §6 egg-live π readback (the field-perturbs-then-cools capture is the binding
363
- * truth) — a moderate gain over a generous reach, a brisk ramp, a tight no-slingshot
364
- * speed cap, and the singularity-soften floor.
365
- */
366
- export declare const DEFAULT_WELL_CONFIG: ConstellationWellConfig;
367
- /**
368
- * The nearest DRIFTING node to `(px, py)` in canvas-local px — a linear O(count)
369
- * min-d² scan (count 64 default — negligible; matches the O(count²) edge pass).
370
- * "Lattice point" = the nearest drifting NODE (the constellation has NO fixed
371
- * lattice). `excludeIdx` drops a node from the candidate set (the focal node
372
- * excludes ITSELF, so a cursor-on-focal warp no-ops). Returns `-1` if no
373
- * eligible node exists (empty field, or only the excluded node).
374
- */
375
- export declare function nearestNode(field: ConstellationField, px: number, py: number, excludeIdx?: number): number;
376
- /**
377
- * Advance the focal-node warp spring one `dt` (seconds). A per-axis 2nd-order
378
- * critically-damped integrator over `field.warp.{x,y}` toward the LIVE position
379
- * of `field.nodes[field.warp.targetIdx]` — re-read EACH frame, so the spring
380
- * CHASES a drifting target and arrives ON it (the identity-ride). No-ops when no
381
- * warp is active (`targetIdx < 0`). `dt` is clamped to {@link WARP_DT_CLAMP} so a
382
- * tab-throttle / offscreen-park-resume gap cannot teleport the mark.
383
- *
384
- * x += v·dt ; v += (−2ζω·v − ω²·(x − target))·dt
385
- *
386
- * Reads `(response, ζ)` from `field.warpCfg` (the tokenised override — AY.W-CON2),
387
- * falling back to the shipped `WARP_RESPONSE`/`WARP_ZETA` defaults. `ω = 2π/response`
388
- * is the keyframes.js `(response, dampingFraction)` convention (the SHARED house
389
- * model — `ω₀` is the angular frequency, `response` its ANGULAR PERIOD, NOT a
390
- * settle-duration; at ζ=1 the 2%-settle is `t₂ ≈ 5.83/ω₀ ≈ 0.93·response`). NO
391
- * second ω formula is minted (the ω-reconcile). NOT its rAF — the FORBID-useSpring
392
- * contract (a second rAF would defeat the parked-substrate one-path freeze).
393
- */
394
- export declare function warpStep(field: ConstellationField, dt: number): void;
395
- /**
396
- * Point the warp at a node INDEX (the live target-source seam). The focal node
397
- * re-points to `idx`; the spring chases `nodes[idx]`'s LIVE position FROM the
398
- * focal mark's CURRENT position (`warp.{x,y}`) — a continuous spring-eased path,
399
- * never a snap. The component seeds `warp.{x,y}` at field-center on first layout,
400
- * so even the first warp springs from a real start point. `idx < 0` clears the
401
- * warp (the focal mark is removed). Re-pointing does NOT zero the velocity, so a
402
- * mid-flight re-target curves smoothly toward the new node.
403
- */
404
- export declare function setWarpTarget(field: ConstellationField, idx: number): void;
405
- /**
406
- * Warp the focal node to the nearest drifting node to a canvas-LOCAL px point
407
- * (the `warpTo(point)` primitive). The DEGENERATE case — the click's UNCONSTRAINED
408
- * nearest node is already the current focal (cursor on/closest to the focal mark)
409
- * — NO-OPS (returns the current focal; a click on yourself does not re-warp). Any
410
- * OTHER click re-points to the nearest node, with the focal EXCLUDED from the
411
- * candidate set (you never re-warp to yourself; the next-nearest wins). Returns
412
- * the chosen node index, or `-1` when no eligible node exists. The component's
413
- * `warpTo(clientX, clientY)` sugar maps client→local px via `toLocal` first.
414
- */
415
- export declare function warpTo(field: ConstellationField, px: number, py: number): number;
416
- /**
417
- * Is the warp spring ARRIVED on its target (AY.W-CON1)? True when there is no
418
- * active target (`targetIdx < 0`) OR the focal's gap to its LIVE target node is
419
- * within {@link WARP_SETTLE_BAND}. A click-warp in flight (hundreds of px out)
420
- * reports NOT arrived, so a user click always PRE-EMPTS the auto-drift cadence
421
- * (the wander only re-targets a spring that has reached its current node). The
422
- * gate is POSITION-only by design — a critically-damped spring tracking a drifting
423
- * node carries a non-zero steady-state velocity forever, so a velocity term would
424
- * never clear on a live field.
425
- */
426
- export declare function warpSettled(field: ConstellationField): boolean;
427
- /**
428
- * Pick a random eligible node index for the auto-drift re-target (AY.W-CON1) —
429
- * any node EXCEPT the current `focalIndex` (so the focal actually MOVES). `rng`
430
- * is the seeded `() => number` in `[0, 1)`. A degenerate field (≤1 node, or only
431
- * the current focal) returns the current focal, which `setWarpTarget` no-ops
432
- * cleanly (no crash, no jump).
433
- */
434
- export declare function pickWanderTarget(field: ConstellationField, rng: () => number): number;
435
- /** Pass 1 — hairline edges between any two nodes within `link` px (alpha falls off with distance). */
436
- export declare function drawEdges(ctx: CanvasRenderingContext2D, field: ConstellationField, link: number, palette: ConstellationPalette): void;
437
- /** Pass 2 — ambient node dots. */
438
- export declare function drawNodes(ctx: CanvasRenderingContext2D, field: ConstellationField, palette: ConstellationPalette): void;
439
- /** Pass 3 — the cursor joins the web: faint links to nodes within reach + a soft cursor node. */
440
- export declare function drawPointerWeb(ctx: CanvasRenderingContext2D, field: ConstellationField, link: number, palette: ConstellationPalette, pointer: ConstellationPointer | null): void;
441
- /** Pass 4 — tap ripples: expanding rings that fade over ~0.9s; consumed entries are spliced. */
442
- export declare function drawRipples(ctx: CanvasRenderingContext2D, field: ConstellationField, now: number, ripples: ConstellationRipple[], palette: ConstellationPalette): void;
@@ -0,0 +1,132 @@
1
+ import type { ConstellationField, ConstellationPinnedDrift, ConstellationWarpConfig, ConstellationWellConfig } from "./constellationField";
2
+ import { DEFAULT_WANDER_IDLE, DEFAULT_WANDER_JITTER, DEFAULT_WELL_CONFIG, WARP_RESPONSE, WARP_ZETA, DEFAULT_PINNED_DRIFT_FRAC, DEFAULT_PINNED_DRIFT_DUR, DEFAULT_PINNED_DRIFT_IDLE, DEFAULT_PINNED_DRIFT_JITTER } from "./constants";
3
+ export { DEFAULT_WANDER_IDLE, DEFAULT_WANDER_JITTER, DEFAULT_WELL_CONFIG, WARP_RESPONSE, WARP_ZETA };
4
+ export { DEFAULT_PINNED_DRIFT_FRAC, DEFAULT_PINNED_DRIFT_DUR, DEFAULT_PINNED_DRIFT_IDLE, DEFAULT_PINNED_DRIFT_JITTER, };
5
+ /**
6
+ * Read the NUMERIC interaction-tuning tokens (the warp spring + the gravity-well
7
+ * gains) off a canvas's resolved custom properties — ONCE on mount (AY.W-CON2),
8
+ * via `parseFloat`, NOT per-frame `getComputedStyle` (the hot loop stays clean).
9
+ * Returns `{ warp, well }` configs the field carries; every member falls back to
10
+ * the shipped default when the token is absent (an SSR / no-token mount reads the
11
+ * byte-identical spring). The tokens are PLAIN numbers (`0.55`, `12000`), immune
12
+ * to the W30 `light-dark()`-into-Canvas2D leak (they never reach a `fillStyle`).
13
+ */
14
+ export declare function readInteractionConfig(canvas: HTMLCanvasElement): {
15
+ warp: ConstellationWarpConfig;
16
+ well: ConstellationWellConfig;
17
+ wander: {
18
+ minIdle: number;
19
+ jitter: number;
20
+ };
21
+ };
22
+ /**
23
+ * Advance the gravity-well one `dt` (AY.W-CON2). A transient held-pointer force
24
+ * composed inside `stepField` (NO new rAF): ease `well.strength` toward
25
+ * `well.target` (1 held / 0 released) at `cfg.ramp`/s; while active, add an
26
+ * inverse-square pull toward the held point onto each node within `cfg.reach`
27
+ * (the `max(d, soften)` no-singularity floor + the `cfg.maxSpeed` no-slingshot
28
+ * clamp); ALWAYS ease every node's |v| back toward `speed` (the field-cools
29
+ * invariant — so a released well re-settles). No-ops (entirely skipped) when
30
+ * `field.well` is undefined → the default render is byte-identical to HEAD.
31
+ *
32
+ * `dt` is clamped to {@link WARP_DT_CLAMP} (the same park-resume guard the warp
33
+ * uses) so a tab-throttle gap cannot slingshot the field in one giant step.
34
+ */
35
+ export declare function stepWell(field: ConstellationField, k: number, speed: number, dt: number): void;
36
+ /**
37
+ * The nearest DRIFTING node to `(px, py)` in canvas-local px — a linear O(count)
38
+ * min-d² scan (count 64 default — negligible; matches the O(count²) edge pass).
39
+ * "Lattice point" = the nearest drifting NODE (the constellation has NO fixed
40
+ * lattice). `excludeIdx` drops a node from the candidate set (the focal node
41
+ * excludes ITSELF, so a cursor-on-focal warp no-ops). Returns `-1` if no
42
+ * eligible node exists (empty field, or only the excluded node).
43
+ */
44
+ export declare function nearestNode(field: ConstellationField, px: number, py: number, excludeIdx?: number): number;
45
+ /**
46
+ * Advance the focal-node warp spring one `dt` (seconds). A per-axis 2nd-order
47
+ * critically-damped integrator over `field.warp.{x,y}` toward the LIVE position
48
+ * of `field.nodes[field.warp.targetIdx]` — re-read EACH frame, so the spring
49
+ * CHASES a drifting target and arrives ON it (the identity-ride). No-ops when no
50
+ * warp is active (`targetIdx < 0`). `dt` is clamped to {@link WARP_DT_CLAMP} so a
51
+ * tab-throttle / offscreen-park-resume gap cannot teleport the mark.
52
+ *
53
+ * x += v·dt ; v += (−2ζω·v − ω²·(x − target))·dt
54
+ *
55
+ * Reads `(response, ζ)` from `field.warpCfg` (the tokenised override — AY.W-CON2),
56
+ * falling back to the shipped `WARP_RESPONSE`/`WARP_ZETA` defaults. `ω = 2π/response`
57
+ * is the keyframes.js `(response, dampingFraction)` convention (the SHARED house
58
+ * model — `ω₀` is the angular frequency, `response` its ANGULAR PERIOD, NOT a
59
+ * settle-duration; at ζ=1 the 2%-settle is `t₂ ≈ 5.83/ω₀ ≈ 0.93·response`). NO
60
+ * second ω formula is minted (the ω-reconcile). NOT its rAF — the FORBID-useSpring
61
+ * contract (a second rAF would defeat the parked-substrate one-path freeze).
62
+ */
63
+ export declare function warpStep(field: ConstellationField, dt: number): void;
64
+ /**
65
+ * Point the warp at a node INDEX (the live target-source seam). The focal node
66
+ * re-points to `idx`; the spring chases `nodes[idx]`'s LIVE position FROM the
67
+ * focal mark's CURRENT position (`warp.{x,y}`) — a continuous spring-eased path,
68
+ * never a snap. The component seeds `warp.{x,y}` at field-center on first layout,
69
+ * so even the first warp springs from a real start point. `idx < 0` clears the
70
+ * warp (the focal mark is removed). Re-pointing does NOT zero the velocity, so a
71
+ * mid-flight re-target curves smoothly toward the new node.
72
+ */
73
+ export declare function setWarpTarget(field: ConstellationField, idx: number): void;
74
+ /**
75
+ * Warp the focal node to the nearest drifting node to a canvas-LOCAL px point
76
+ * (the `warpTo(point)` primitive). The DEGENERATE case — the click's UNCONSTRAINED
77
+ * nearest node is already the current focal (cursor on/closest to the focal mark)
78
+ * — NO-OPS (returns the current focal; a click on yourself does not re-warp). Any
79
+ * OTHER click re-points to the nearest node, with the focal EXCLUDED from the
80
+ * candidate set (you never re-warp to yourself; the next-nearest wins). Returns
81
+ * the chosen node index, or `-1` when no eligible node exists. The component's
82
+ * `warpTo(clientX, clientY)` sugar maps client→local px via `toLocal` first.
83
+ */
84
+ export declare function warpTo(field: ConstellationField, px: number, py: number): number;
85
+ /**
86
+ * Is the warp spring ARRIVED on its target (AY.W-CON1)? True when there is no
87
+ * active target (`targetIdx < 0`) OR the focal's gap to its LIVE target node is
88
+ * within {@link WARP_SETTLE_BAND}. A click-warp in flight (hundreds of px out)
89
+ * reports NOT arrived, so a user click always PRE-EMPTS the auto-drift cadence
90
+ * (the wander only re-targets a spring that has reached its current node). The
91
+ * gate is POSITION-only by design — a critically-damped spring tracking a drifting
92
+ * node carries a non-zero steady-state velocity forever, so a velocity term would
93
+ * never clear on a live field.
94
+ */
95
+ export declare function warpSettled(field: ConstellationField): boolean;
96
+ /**
97
+ * Pick a random eligible node index for the auto-drift re-target (AY.W-CON1) —
98
+ * any node EXCEPT the current `focalIndex` (so the focal actually MOVES). `rng`
99
+ * is the seeded `() => number` in `[0, 1)`. A degenerate field (≤1 node, or only
100
+ * the current focal) returns the current focal, which `setWarpTarget` no-ops
101
+ * cleanly (no crash, no jump).
102
+ */
103
+ export declare function pickWanderTarget(field: ConstellationField, rng: () => number): number;
104
+ /**
105
+ * Build the cold `ConstellationPinnedDrift` state (AZ.W-CON-GEN G5) the field carries
106
+ * when `pinnedDrift` is on. The anchor is seeded LATER (on the first sized frame, off
107
+ * the pinned node's layout position) — here it is `(0,0)` until `stepPinnedDrift`
108
+ * stamps it on the first armed leg. The token-read re-points the un-overridden
109
+ * cadence members on mount (the same prop-over-token layering as the well/wander).
110
+ */
111
+ export declare function makePinnedDrift(override?: {
112
+ wanderFrac?: number;
113
+ durMs?: number;
114
+ minIdle?: number;
115
+ jitter?: number;
116
+ }): ConstellationPinnedDrift;
117
+ /**
118
+ * Advance the autonomous PINNED-ANCHOR drift one frame (AZ.W-CON-GEN G5). DISTINCT
119
+ * from `wander` (warp re-target): this gently eases the PINNED node around its seeded
120
+ * ANCHOR within `wanderFrac` of the canvas, on a jittered cadence, via a closed-form
121
+ * easeInOutQuad over `now` (no integrator, no second rAF — it rides `stepField`'s ONE
122
+ * per-frame call). No-ops (skipped) when there is no `field.pinnedDrift`, no pinned
123
+ * node, or `now <= 0` (the default unit callers stay green) — so an absent
124
+ * `pinnedDrift` is byte-identical to HEAD.
125
+ *
126
+ * The anchor is captured ON the first armed frame off the pinned node's CURRENT
127
+ * position (its seeded rest), so a consumer that re-anchors the pin (a resize re-fit)
128
+ * gets a fresh anchor on the next leg. Each leg eases from the node's current point to
129
+ * a fresh point within `wanderFrac` of the anchor over `durMs`; between legs the node
130
+ * rests at the leg's end, the next leg arming after `minIdle + rng()*jitter`.
131
+ */
132
+ export declare function stepPinnedDrift(field: ConstellationField, now: number, rng: () => number): void;
@@ -1,3 +1,6 @@
1
1
  export { default as Constellation } from "./Constellation.vue";
2
- export { seedField, stepField, stepWell, refitField, readPalette, drawEdges, drawNodes, drawPointerWeb, drawRipples, nearestNode, readInteractionConfig, warpStep, warpTo, setWarpTarget, warpSettled, pickWanderTarget, BASE_WIDTH, DEFAULT_PALETTE, DEFAULT_WELL_CONFIG, DEFAULT_WANDER_IDLE, DEFAULT_WANDER_JITTER, WARP_RESPONSE, WARP_ZETA, } from "./constellationField";
3
- export type { ConstellationNode, ConstellationRipple, ConstellationPointer, ConstellationPalette, ConstellationField, ConstellationWarp, ConstellationWarpConfig, ConstellationWander, ConstellationWell, ConstellationWellConfig, ConstellationProps, } from "./constellationField";
2
+ export { seedField, stepField, refitField, BASE_WIDTH, } from "./constellationField";
3
+ export { DEFAULT_K_FLOOR } from "./constants";
4
+ export { stepWell, nearestNode, readInteractionConfig, warpStep, warpTo, setWarpTarget, warpSettled, pickWanderTarget, stepPinnedDrift, makePinnedDrift, DEFAULT_WELL_CONFIG, DEFAULT_WANDER_IDLE, DEFAULT_WANDER_JITTER, DEFAULT_PINNED_DRIFT_FRAC, DEFAULT_PINNED_DRIFT_DUR, DEFAULT_PINNED_DRIFT_IDLE, DEFAULT_PINNED_DRIFT_JITTER, WARP_RESPONSE, WARP_ZETA, } from "./constellationInteraction";
5
+ export { kVisOf, readPalette, drawEdges, drawNodes, drawPointerWeb, drawRipples, DEFAULT_PALETTE, } from "./constellationDraw";
6
+ export type { ConstellationNode, ConstellationRipple, ConstellationPointer, ConstellationPalette, ConstellationField, ConstellationWarp, ConstellationWarpConfig, ConstellationWander, ConstellationWell, ConstellationWellConfig, ConstellationPinnedDrift, ConstellationProps, } from "./constellationField";
@@ -13,11 +13,22 @@ type __VLS_Props = {
13
13
  * @default false
14
14
  */
15
15
  disableTransitions?: boolean;
16
+ /**
17
+ * Opt-in slow-ECLIPSE register: a LONG-PRESS (vs the normal click) flips
18
+ * the mode through an indulgent, stretched sun↔moon cross-fade — the
19
+ * `--toggle-eclipse-duration` (≈1600ms) over the default 750ms. The bare
20
+ * `@click` flip is UNCHANGED (the default-path canary). Under
21
+ * `prefers-reduced-motion: reduce` the long-press flips INSTANTLY (no
22
+ * eclipse). Default false — the toggle behaves exactly as before.
23
+ * @default false
24
+ */
25
+ eclipse?: boolean;
16
26
  };
17
27
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
18
28
  size: DarkModeToggleSize;
19
29
  passive: boolean;
20
30
  disableTransitions: boolean;
31
+ eclipse: boolean;
21
32
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
22
33
  declare const _default: typeof __VLS_export;
23
34
  export default _default;