@mkbabb/glass-ui 8.0.0 → 10.0.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 (264) hide show
  1. package/MIGRATION.md +4768 -0
  2. package/README.md +57 -13
  3. package/dist/DialogContent-CwIBvou_.js +157 -0
  4. package/dist/{DropdownMenuTrigger-8UZsBtZ8.js → DropdownMenuTrigger-CKRnhDSQ.js} +1 -1
  5. package/dist/{Surface-i1tWC-Ga.js → Surface-1nPoabc3.js} +1 -1
  6. package/dist/{accent-tone-solve-Cw7WkRD9.js → accent-tone-solve-5H6FY2QO.js} +1 -1
  7. package/dist/aurora.js +386 -355
  8. package/dist/{badge-owUOaaba.js → badge-BO6BC4G5.js} +1 -1
  9. package/dist/badge.js +1 -1
  10. package/dist/blob.js +44 -44
  11. package/dist/{button-yvGPb0Bx.js → button-BOFTUPyU.js} +1 -1
  12. package/dist/button.js +1 -1
  13. package/dist/{card-3HFFpC7_.js → card-ByyqRBvK.js} +2 -2
  14. package/dist/card.js +1 -1
  15. package/dist/carousel.js +3 -3
  16. package/dist/{checkbox-BnXuGgJ3.js → checkbox-B1qn65se.js} +1 -1
  17. package/dist/checkbox.js +1 -1
  18. package/dist/chip.js +8 -3
  19. package/dist/{class-names-q-UGOkHH.js → class-names-FlXcvRRT.js} +65 -18
  20. package/dist/{collapsible-B7O6m-Ch.js → collapsible-DFzK29Oh.js} +5 -2
  21. package/dist/collapsible.js +1 -1
  22. package/dist/color.glsl-DTJhdekG.js +34 -0
  23. package/dist/color.js +11 -11
  24. package/dist/color.wgsl-BTszLY39.js +398 -0
  25. package/dist/{command-BuBnYpxF.js → command-C-5xSEJ2.js} +8 -8
  26. package/dist/command.js +1 -1
  27. package/dist/component-styles.css +1 -0
  28. package/dist/components/_shared/class-names.d.ts +10 -1
  29. package/dist/components/_shared/control.d.ts +0 -1
  30. package/dist/components/_shared/index.d.ts +0 -1
  31. package/dist/components/_shared/menu/menu.css +1 -1
  32. package/dist/components/_shared/overlay/index.d.ts +1 -0
  33. package/dist/components/_shared/overlay/shortcuts.d.ts +12 -0
  34. package/dist/components/aurora/Aurora.vue.d.ts +1 -0
  35. package/dist/components/aurora/composables/atoms.d.ts +22 -6
  36. package/dist/components/aurora/composables/frameLoop.d.ts +6 -5
  37. package/dist/components/aurora/composables/runtime.d.ts +28 -1
  38. package/dist/components/aurora/composables/useAurora.d.ts +28 -0
  39. package/dist/components/aurora/composables/wgpuSetup.d.ts +1 -1
  40. package/dist/components/aurora/constants/presets.d.ts +62 -5
  41. package/dist/components/aurora/index.d.ts +1 -1
  42. package/dist/components/blob/Blob.vue.d.ts +3 -3
  43. package/dist/components/card/Card.vue.d.ts +8 -2
  44. package/dist/components/chip/Chip.vue.d.ts +1 -7
  45. package/dist/components/chip/chipVariants.d.ts +1 -0
  46. package/dist/components/collapsible/Collapsible.vue.d.ts +1 -0
  47. package/dist/components/command/CommandDialog.vue.d.ts +1 -1
  48. package/dist/components/configurator/Configurator.vue.d.ts +25 -2
  49. package/dist/components/configurator/ConfiguratorRow.vue.d.ts +4 -2
  50. package/dist/components/configurator/styles.css +1 -1
  51. package/dist/components/dark-mode-toggle/dark-mode-toggle.css +1 -1
  52. package/dist/components/deck/styles/capture.css +1 -1
  53. package/dist/components/dialog/styles.css +1 -1
  54. package/dist/components/dock/DockSeparator.vue.d.ts +2 -3
  55. package/dist/components/dock/GlassDock.vue.d.ts +1 -0
  56. package/dist/components/dock/composables/dockContext.d.ts +1 -8
  57. package/dist/components/dock/composables/dockCrossfadeContext.d.ts +0 -2
  58. package/dist/components/dock/composables/index.d.ts +1 -1
  59. package/dist/components/dock/composables/useDockHold.d.ts +16 -12
  60. package/dist/components/dock/composables/useDockRun.d.ts +20 -0
  61. package/dist/components/dock/composables/useDockSearch.d.ts +1 -1
  62. package/dist/components/dock/composables/useDockShellProps.d.ts +18 -101
  63. package/dist/components/dock/composables/useDockState.d.ts +2 -9
  64. package/dist/components/dock/constants.d.ts +15 -0
  65. package/dist/components/dock/index.d.ts +2 -2
  66. package/dist/components/dock/styles/controls/icon-button.css +1 -1
  67. package/dist/components/dock/styles/controls/tab-button.css +1 -1
  68. package/dist/components/dock/styles/controls/triggers.css +1 -1
  69. package/dist/components/dock/styles/controls.css +1 -1
  70. package/dist/components/dock/styles/density.css +1 -1
  71. package/dist/components/dock/styles/index.css +1 -1
  72. package/dist/components/dock/styles/layer-group.css +1 -1
  73. package/dist/components/dock/styles/layers.css +1 -1
  74. package/dist/components/dock/styles/morph.css +1 -1
  75. package/dist/components/dock/styles/run.css +1 -0
  76. package/dist/components/dock/styles/search.css +1 -1
  77. package/dist/components/dock/styles/shape.css +1 -1
  78. package/dist/components/dock/styles/shell-regions.css +1 -1
  79. package/dist/components/dock/styles/shell.css +1 -1
  80. package/dist/components/fourier-field/FourierField.vue.d.ts +29 -26
  81. package/dist/components/fourier-field/clock.d.ts +35 -0
  82. package/dist/components/fourier-field/constants.d.ts +80 -104
  83. package/dist/components/fourier-field/index.d.ts +3 -28
  84. package/dist/components/fourier-field/math.d.ts +69 -77
  85. package/dist/components/fourier-field/renderer/mint.d.ts +50 -0
  86. package/dist/components/fourier-field/renderer/uniforms.d.ts +84 -0
  87. package/dist/components/fourier-field/renderer/wgpu.d.ts +28 -0
  88. package/dist/components/fourier-field/shaders/compute.wgsl.d.ts +1 -0
  89. package/dist/components/fourier-field/shaders/render.wgsl.d.ts +1 -0
  90. package/dist/components/fourier-field/useFourierField.d.ts +49 -0
  91. package/dist/components/handmark/HandMark.vue.d.ts +18 -14
  92. package/dist/components/handmark/index.d.ts +4 -23
  93. package/dist/components/handmark/stroke.d.ts +92 -0
  94. package/dist/components/labeled-field/LabeledSwitch.vue.d.ts +3 -1
  95. package/dist/components/labeled-field/types.d.ts +1 -1
  96. package/dist/components/menu/DropdownMenu.vue.d.ts +1 -1
  97. package/dist/components/metric/coalesce-metric.d.ts +6 -1
  98. package/dist/components/metric/styles.css +1 -1
  99. package/dist/components/popover/Popover.vue.d.ts +1 -1
  100. package/dist/components/scroll-progress-rim/styles.css +1 -1
  101. package/dist/components/sheet/styles.css +1 -1
  102. package/dist/components/slider/styles.css +1 -1
  103. package/dist/components/tabs/SegmentedTabs.vue.d.ts +25 -112
  104. package/dist/components/tabs/composables/useTabDragMorph.d.ts +1 -1
  105. package/dist/components/tabs/composables/useTabResponsive.d.ts +11 -11
  106. package/dist/components/tabs/index.d.ts +1 -1
  107. package/dist/components/tabs/styles/drag.css +1 -1
  108. package/dist/components/tabs/styles/segmented.css +1 -1
  109. package/dist/components/tabs/types.d.ts +85 -0
  110. package/dist/components/timeline/index.d.ts +2 -0
  111. package/dist/components/toast/Toast.vue.d.ts +2 -2
  112. package/dist/composables/color/index.d.ts +0 -15
  113. package/dist/composables/dark/darkModeSyncScript.d.ts +42 -0
  114. package/dist/composables/dom/useResolveTokenColor.d.ts +1 -1
  115. package/dist/composables/glass/index.d.ts +2 -0
  116. package/dist/composables/keyboard/useKeyboardShortcuts.d.ts +47 -1
  117. package/dist/composables/motion/pointer/pointerFieldMappings.d.ts +0 -41
  118. package/dist/{components/search/composables → composables/search}/index.d.ts +2 -2
  119. package/dist/{components/search/composables/fuzzySearchIndex.d.ts → composables/search/match.d.ts} +8 -3
  120. package/dist/composables/sidebar/types.d.ts +5 -1
  121. package/dist/configurator-DiwVN573.js +339 -0
  122. package/dist/configurator.js +1 -1
  123. package/dist/constellation.js +5 -5
  124. package/dist/{content-CWO-XL7o.js → content-So3j6SOe.js} +1 -1
  125. package/dist/control-DJp15L4U.js +7 -0
  126. package/dist/dark-mode-toggle.js +2 -2
  127. package/dist/{dark-z_P5QwqI.js → dark-pONY3x93.js} +2 -2
  128. package/dist/dark.js +1 -1
  129. package/dist/{data-table-_RrOEdiw.js → data-table-Ba_uTfPc.js} +3 -3
  130. package/dist/data-table.js +1 -1
  131. package/dist/{deck-Ci6YjB5e.js → deck-Cm_VmyNL.js} +1 -1
  132. package/dist/deck.js +1 -1
  133. package/dist/{dialog-CbRnTRtg.js → dialog-BZoFG0j8.js} +1 -1
  134. package/dist/dialog.js +2 -2
  135. package/dist/dock.js +718 -496
  136. package/dist/dom.js +90 -8
  137. package/dist/easing.js +5 -5
  138. package/dist/expandable-container-CZUj9BzY.js +142 -0
  139. package/dist/expandable-container.js +2 -142
  140. package/dist/fourier-field.js +638 -855
  141. package/dist/fourier-math.js +6 -6
  142. package/dist/glass-ui.css +1 -1
  143. package/dist/glass-ui.js +88 -75
  144. package/dist/handmark.js +330 -718
  145. package/dist/index.d.ts +2 -2
  146. package/dist/infinite-scroll.js +16 -17
  147. package/dist/{input-Bls2A4Tt.js → input-eLZ_AU7l.js} +1 -1
  148. package/dist/input.js +1 -1
  149. package/dist/keyboard.js +64 -21
  150. package/dist/{label-BQEZhnK_.js → label-CE03H1KL.js} +2 -2
  151. package/dist/label.js +1 -1
  152. package/dist/labeled-field.js +9 -6
  153. package/dist/{menu-wLu1XGKn.js → menu-BnmCOa3y.js} +93 -90
  154. package/dist/menu.js +2 -2
  155. package/dist/metric.js +12 -7
  156. package/dist/{motion-D4uYE0UM.js → motion-BvV1_24p.js} +1 -1
  157. package/dist/motion-core.js +35 -35
  158. package/dist/{number-field-NFAwQ0HK.js → number-field-RP89046a.js} +2 -2
  159. package/dist/number-field.js +1 -1
  160. package/dist/pager-dots.js +3 -3
  161. package/dist/{participation-B0hdsIRo.js → participation-Di4UHbzk.js} +8 -8
  162. package/dist/{pointerFieldMappings-DP5tla5z.js → pointerFieldMappings-DXwlU5uj.js} +7 -23
  163. package/dist/popover-DA87hFBx.js +184 -0
  164. package/dist/popover.js +1 -1
  165. package/dist/{progress-DF8dWZIX.js → progress-eVa-mc7J.js} +1 -1
  166. package/dist/progress.js +1 -1
  167. package/dist/{radio-group-Ci8o-pDx.js → radio-group-B58Bz16F.js} +2 -2
  168. package/dist/radio-group.js +1 -1
  169. package/dist/{select-CDgwGH_P.js → select-fy3vtArm.js} +13 -13
  170. package/dist/select.js +1 -1
  171. package/dist/{separator-CN11t406.js → separator-D4EZM10u.js} +2 -2
  172. package/dist/separator.js +1 -1
  173. package/dist/{sheet-BEFvnO_u.js → sheet-BQJyER59.js} +120 -115
  174. package/dist/sheet.js +2 -2
  175. package/dist/shortcuts-DGGWNRNe.js +13 -0
  176. package/dist/sidebar.js +4 -4
  177. package/dist/{slider-gsc8jDIo.js → slider-5ChjjWSR.js} +1 -1
  178. package/dist/slider.js +1 -1
  179. package/dist/{status-dot-BpnqOP5N.js → status-dot-W4LFiJps.js} +2 -2
  180. package/dist/status-dot.js +1 -1
  181. package/dist/styles/accessibility.css +1 -1
  182. package/dist/styles/animations.css +1 -1
  183. package/dist/styles/components.css +1 -1
  184. package/dist/styles/glass/a11y-fallback.css +1 -1
  185. package/dist/styles/glass/dissolve.css +1 -1
  186. package/dist/styles/glass/focus-veil.css +1 -1
  187. package/dist/styles/glass/ladder.css +1 -1
  188. package/dist/styles/glass/material.css +1 -1
  189. package/dist/styles/glass/overlay-plate.css +1 -1
  190. package/dist/styles/glass/reveal.css +1 -1
  191. package/dist/styles/glass-specular-track.css +1 -1
  192. package/dist/styles/paper.css +1 -1
  193. package/dist/styles/scroll-choreography.css +1 -1
  194. package/dist/styles/scroll-chrome.css +1 -1
  195. package/dist/styles/scroll-driven.css +1 -1
  196. package/dist/styles/theme/literals.css +1 -1
  197. package/dist/styles/tokens/color-radius.css +1 -1
  198. package/dist/styles/tokens/dark-arm-glass.css +1 -1
  199. package/dist/styles/tokens/light-dark.css +1 -1
  200. package/dist/styles/tokens/offsets.css +1 -1
  201. package/dist/styles/tokens/scheme-motion.css +1 -1
  202. package/dist/styles/tokens/sizing.css +1 -1
  203. package/dist/styles/typography/semantic.css +1 -1
  204. package/dist/styles/typography/utilities.css +1 -1
  205. package/dist/styles/utilities/a11y-overrides.css +1 -1
  206. package/dist/styles/utilities/responsive.css +1 -1
  207. package/dist/styles/view-transition.css +1 -1
  208. package/dist/styles/viz-reveal.css +1 -1
  209. package/dist/surface.js +1 -1
  210. package/dist/{switch-DxZzDrmV.js → switch-BYUZ6g9G.js} +2 -2
  211. package/dist/switch.js +1 -1
  212. package/dist/{tabs-CYscnq5H.js → tabs-rdRXKXxd.js} +4 -3
  213. package/dist/tabs.js +1 -1
  214. package/dist/textarea.js +1 -1
  215. package/dist/timeline.js +44 -42
  216. package/dist/{toast-9c6Kp58L.js → toast-DVOwo6GB.js} +1 -1
  217. package/dist/toast.js +1 -1
  218. package/dist/{toggle-group-11aPGMfE.js → toggle-group-CC5b3o1R.js} +2 -2
  219. package/dist/toggle-group.js +1 -1
  220. package/dist/{tooltip-DqKMZ4dn.js → tooltip-DhTHhtJN.js} +2 -2
  221. package/dist/tooltip.js +1 -1
  222. package/dist/typewriter.js +1 -1
  223. package/dist/{useAccentTone-DFAh1osB.js → useAccentTone-DitmKfGL.js} +1 -1
  224. package/dist/{resolveCanvasColor-6MCrswTB.js → useCanvas2D-CQRElMyE.js} +1 -11
  225. package/dist/{usePointerVelocityField-DsIf7yyq.js → usePointerVelocityField-Lx26_Yap.js} +1 -1
  226. package/dist/useResolveTokenColor-B2FfJnd9.js +24 -0
  227. package/package.json +5 -21
  228. package/dist/DialogContent-4hzLiaCQ.js +0 -152
  229. package/dist/canvas.d.ts +0 -1
  230. package/dist/canvas.js +0 -2
  231. package/dist/color.wgsl-B0N3mKMb.js +0 -412
  232. package/dist/compile-D7VYG3gi.js +0 -19
  233. package/dist/components/dock/composables/useDockOverflowFit.d.ts +0 -20
  234. package/dist/components/dock/composables/useDockTouchGate.d.ts +0 -42
  235. package/dist/components/dock/styles/overflow.css +0 -1
  236. package/dist/components/fourier-field/composables/fourierFieldGLSetup.d.ts +0 -24
  237. package/dist/components/fourier-field/composables/fourierFieldWGPUSetup.d.ts +0 -31
  238. package/dist/components/fourier-field/composables/uniformBridgeWGPU.d.ts +0 -39
  239. package/dist/components/fourier-field/composables/useFourierField.d.ts +0 -56
  240. package/dist/components/fourier-field/shaders/fourier-field.compute.wgsl.d.ts +0 -1
  241. package/dist/components/fourier-field/shaders/fourier-field.glsl.d.ts +0 -4
  242. package/dist/components/fourier-field/shaders/fourier-field.render.wgsl.d.ts +0 -1
  243. package/dist/components/fourier-field/shaders/fourier-field.ribbon.d.ts +0 -51
  244. package/dist/components/handmark/brush.d.ts +0 -269
  245. package/dist/components/handmark/composables/useHandMark.d.ts +0 -99
  246. package/dist/components/handmark/constants.d.ts +0 -69
  247. package/dist/components/handmark/freehand.d.ts +0 -69
  248. package/dist/components/handmark/geometry.d.ts +0 -62
  249. package/dist/components/handmark/ink.d.ts +0 -11
  250. package/dist/components/handmark/noise.d.ts +0 -30
  251. package/dist/components/handmark/texture.d.ts +0 -39
  252. package/dist/components/handmark/types.d.ts +0 -70
  253. package/dist/components/search/SearchBar.vue.d.ts +0 -38
  254. package/dist/components/search/index.d.ts +0 -8
  255. package/dist/components/search/searchVariants.d.ts +0 -16
  256. package/dist/configurator-BoeScnDL.js +0 -311
  257. package/dist/control-Da4XeT43.js +0 -11
  258. package/dist/popover-DBMKTPkL.js +0 -181
  259. package/dist/search.d.ts +0 -1
  260. package/dist/search.js +0 -61
  261. package/dist/useFuzzySearch-CUnZknpm.js +0 -177
  262. package/dist/useResolveTokenColor-CspQv_ik.js +0 -107
  263. /package/dist/{components/search/composables → composables/search}/types.d.ts +0 -0
  264. /package/dist/{components/search/composables → composables/search}/useFuzzySearch.d.ts +0 -0
@@ -1,28 +1,29 @@
1
- import { t as e } from "./class-names-q-UGOkHH.js";
1
+ import { t as e } from "./class-names-FlXcvRRT.js";
2
2
  import { t } from "./motionTempo-tscp92Nm.js";
3
3
  import { n } from "./springPresets-Cbe0Voqg.js";
4
4
  import { t as r } from "./resolve-DdrNvBby.js";
5
5
  import { t as i } from "./useSpringMount-OA-0mTNv.js";
6
- import { i as a, n as o, r as s, t as c } from "./motion-D4uYE0UM.js";
6
+ import { i as a, n as o, r as s, t as c } from "./motion-BvV1_24p.js";
7
7
  import { t as l } from "./useMotionAxis-D-rtIhca.js";
8
- import { computed as u, createBlock as d, createCommentVNode as f, createElementBlock as p, createElementVNode as m, createVNode as h, defineComponent as g, mergeProps as _, normalizeStyle as v, onScopeDispose as y, openBlock as b, ref as x, renderSlot as S, unref as C, watch as w, withCtx as T } from "vue";
9
- import { DialogClose as E, DialogContent as D, DialogPortal as O, injectDialogRootContext as k, useForwardPropsEmits as A } from "reka-ui";
10
- import { SpringProgress as j } from "@mkbabb/keyframes.js";
8
+ import { t as u } from "./shortcuts-DGGWNRNe.js";
9
+ import { computed as d, createBlock as f, createCommentVNode as p, createElementBlock as m, createElementVNode as h, createVNode as g, defineComponent as _, mergeProps as v, normalizeStyle as y, onScopeDispose as b, openBlock as x, ref as S, renderSlot as C, unref as w, watch as T, withCtx as E } from "vue";
10
+ import { DialogClose as D, DialogContent as O, DialogPortal as k, injectDialogRootContext as A, useForwardPropsEmits as j } from "reka-ui";
11
+ import { SpringProgress as M } from "@mkbabb/keyframes.js";
11
12
  //#region src/components/sheet/detents/projection.ts
12
- function M(e) {
13
+ function N(e) {
13
14
  return 2 * Math.PI / e;
14
15
  }
15
- function N(e) {
16
- let t = M(e.response), n = e.dampingFraction * t;
16
+ function P(e) {
17
+ let t = N(e.response), n = e.dampingFraction * t;
17
18
  return !Number.isFinite(n) || n <= 0 ? 0 : -Math.log(e.settleBand) / n;
18
19
  }
19
- function P(e, t) {
20
- return e * N(t);
20
+ function F(e, t) {
21
+ return e * P(t);
21
22
  }
22
- function F(e, t, n) {
23
- return e + P(t, n);
23
+ function I(e, t, n) {
24
+ return e + F(t, n);
24
25
  }
25
- function I(e, t) {
26
+ function L(e, t) {
26
27
  let n = t[0], r = Math.abs(e - n);
27
28
  for (let i of t) {
28
29
  let t = Math.abs(e - i);
@@ -30,16 +31,16 @@ function I(e, t) {
30
31
  }
31
32
  return n;
32
33
  }
33
- function L(e, t, n, r) {
34
- return I(F(e, t, r), [0, ...n]);
34
+ function R(e, t, n, r) {
35
+ return L(I(e, t, r), [0, ...n]);
35
36
  }
36
37
  //#endregion
37
38
  //#region src/components/sheet/detents/use.ts
38
- var R = {
39
+ var z = {
39
40
  travel: "bloom",
40
41
  rung: "dock"
41
- }, z = "button, a[href], input, select, textarea, [contenteditable=true]", B = "[data-slot=\"sheet-detent-handle\"], [data-slot=\"dialog-header\"]";
42
- function V(e, t) {
42
+ }, B = "button, a[href], input, select, textarea, [contenteditable=true]", V = "[data-slot=\"sheet-detent-handle\"], [data-slot=\"dialog-header\"]";
43
+ function H(e, t) {
43
44
  switch (e) {
44
45
  case "bottom": return -t.clientY;
45
46
  case "top": return t.clientY;
@@ -47,10 +48,10 @@ function V(e, t) {
47
48
  case "right": return -t.clientX;
48
49
  }
49
50
  }
50
- function H(e) {
51
+ function U(e) {
51
52
  return typeof window > "u" ? 1 : (e === "left" || e === "right" ? window.innerWidth : window.innerHeight) || 1;
52
53
  }
53
- function U(e, t) {
54
+ function W(e, t) {
54
55
  let n = e instanceof Element ? e : null;
55
56
  for (; n && n !== t;) {
56
57
  if (n.scrollHeight > n.clientHeight && n.scrollTop > 0) return !1;
@@ -58,11 +59,11 @@ function U(e, t) {
58
59
  }
59
60
  return !0;
60
61
  }
61
- function W(e) {
62
- let { open: r, side: i, ladder: a, detent: o, requestClose: s } = e, c = x(0), l = x(r.value), u = x(!1), d = null, f = null, p = 1;
62
+ function G(e) {
63
+ let { open: r, side: i, ladder: a, detent: o, requestClose: s } = e, c = S(0), l = S(r.value), u = S(!1), d = null, f = null, p = 1;
63
64
  function m(e, t, r) {
64
- let i = n(R[e]);
65
- return d?.dispose(), d = new j({
65
+ let i = n(z[e]);
66
+ return d?.dispose(), d = new M({
66
67
  response: i.response * p,
67
68
  dampingFraction: i.dampingFraction,
68
69
  initial: t,
@@ -78,31 +79,31 @@ function W(e) {
78
79
  i.target = e, i.play(h), e > 0 && (o.value = e);
79
80
  }
80
81
  function _(e) {
81
- g(I(e, a()), "rung");
82
+ g(L(e, a()), "rung");
82
83
  }
83
84
  function v() {
84
85
  let e = a(), t = o.value;
85
- return typeof t == "number" && Number.isFinite(t) ? I(t, e) : e[e.length - 1];
86
+ return typeof t == "number" && Number.isFinite(t) ? L(t, e) : e[e.length - 1];
86
87
  }
87
- let b = null, S = null, C = 0, T = 0, E = 0, D = 0, O = 0, k = 1;
88
+ let y = null, x = null, C = 0, w = 0, E = 0, D = 0, O = 0, k = 1;
88
89
  function A(e) {
89
- if (e.button !== 0 || b !== null) return;
90
+ if (e.button !== 0 || y !== null) return;
90
91
  let t = e.currentTarget;
91
92
  if (!t) return;
92
93
  let n = e.target instanceof Element ? e.target : null;
93
- n && (n.closest(z) && !n.closest(B) || !n.closest(B) && !U(n, t) || (d?.stop(), S = t, b = e.pointerId, u.value = !0, k = H(i()), C = V(i(), e), E = C, D = e.timeStamp, T = c.value, O = 0, t.setPointerCapture?.(e.pointerId), t.addEventListener("pointermove", M), t.addEventListener("pointerup", N), t.addEventListener("pointercancel", N)));
94
+ n && (n.closest(B) && !n.closest(V) || !n.closest(V) && !W(n, t) || (d?.stop(), x = t, y = e.pointerId, u.value = !0, k = U(i()), C = H(i(), e), E = C, D = e.timeStamp, w = c.value, O = 0, t.setPointerCapture?.(e.pointerId), t.addEventListener("pointermove", j), t.addEventListener("pointerup", N), t.addEventListener("pointercancel", N)));
94
95
  }
95
- function M(e) {
96
- if (e.pointerId !== b) return;
97
- let t = V(i(), e), n = (e.timeStamp - D) / 1e3;
96
+ function j(e) {
97
+ if (e.pointerId !== y) return;
98
+ let t = H(i(), e), n = (e.timeStamp - D) / 1e3;
98
99
  n > 0 && (O = (t - E) / n / k), E = t, D = e.timeStamp;
99
100
  let r = a(), o = r[r.length - 1];
100
- c.value = Math.min(o, Math.max(0, T + (t - C) / k));
101
+ c.value = Math.min(o, Math.max(0, w + (t - C) / k));
101
102
  }
102
103
  function N(e) {
103
- if (e.pointerId !== b) return;
104
+ if (e.pointerId !== y) return;
104
105
  P();
105
- let t = n(R.rung), r = L(c.value, O, a(), {
106
+ let t = n(z.rung), r = R(c.value, O, a(), {
106
107
  response: t.response * p,
107
108
  dampingFraction: t.dampingFraction,
108
109
  settleBand: t.settleBand
@@ -114,9 +115,9 @@ function W(e) {
114
115
  g(r, "rung");
115
116
  }
116
117
  function P() {
117
- b === null || !S || (S.releasePointerCapture?.(b), S.removeEventListener("pointermove", M), S.removeEventListener("pointerup", N), S.removeEventListener("pointercancel", N), b = null, u.value = !1, S = null);
118
+ y === null || !x || (x.releasePointerCapture?.(y), x.removeEventListener("pointermove", j), x.removeEventListener("pointerup", N), x.removeEventListener("pointercancel", N), y = null, u.value = !1, x = null);
118
119
  }
119
- return w(r, (e) => {
120
+ return T(r, (e) => {
120
121
  if (e) {
121
122
  l.value = !0, p = t(), d || (c.value = 0, m("travel", 0, 0)), g(v(), "travel");
122
123
  return;
@@ -131,11 +132,11 @@ function W(e) {
131
132
  }, {
132
133
  immediate: !0,
133
134
  flush: "sync"
134
- }), w(o, (e) => {
135
+ }), T(o, (e) => {
135
136
  if (!r.value || u.value || typeof e != "number" || !Number.isFinite(e)) return;
136
- let t = I(e, a());
137
+ let t = L(e, a());
137
138
  (!d || Math.abs(d.target - t) > .001) && g(t, "rung");
138
- }), y(() => {
139
+ }), b(() => {
139
140
  P(), d?.dispose(), d = null;
140
141
  }), {
141
142
  t: c,
@@ -147,7 +148,7 @@ function W(e) {
147
148
  }
148
149
  //#endregion
149
150
  //#region src/components/sheet/SheetContent.vue?vue&type=script&setup=true&lang.ts
150
- var G = [
151
+ var K = [
151
152
  "aria-orientation",
152
153
  "aria-valuemin",
153
154
  "aria-valuemax",
@@ -157,7 +158,7 @@ var G = [
157
158
  "data-side",
158
159
  "data-detents",
159
160
  "data-modal"
160
- ], ne = "calc(var(--glass-veil-crown) + (var(--glass-veil-sheet) - var(--glass-veil-crown)) * clamp(0, var(--detent-t), 1))", K = /* @__PURE__ */ g({
161
+ ], ne = "calc(var(--glass-veil-crown) + (var(--glass-veil-sheet) - var(--glass-veil-crown)) * clamp(0, var(--detent-t), 1))", q = /* @__PURE__ */ _({
161
162
  inheritAttrs: !1,
162
163
  __name: "SheetContent",
163
164
  props: {
@@ -190,96 +191,99 @@ var G = [
190
191
  "update:detent"
191
192
  ],
192
193
  setup(t, { emit: n }) {
193
- let g = t, y = n, j = u(() => {
194
- let { class: e, surface: t, side: n, motion: r, scroll: i, detents: a, detent: o, forceMount: s, ...c } = g;
194
+ let _ = t, b = n, M = d(() => {
195
+ let { class: e, surface: t, side: n, motion: r, scroll: i, detents: a, detent: o, forceMount: s, ...c } = _;
195
196
  return c;
196
- }), M = l(() => g.motion), N = u(() => M.resolved.value !== "off"), P = u(() => g.detents ? [...g.detents].sort((e, t) => e - t) : []), F = u(() => P.value.length > 0), I = {
197
+ }), N = l(() => _.motion), P = d(() => N.resolved.value !== "off"), F = d(() => _.detents ? [..._.detents].sort((e, t) => e - t) : []), I = d(() => F.value.length > 0), L = {
197
198
  top: "border-b",
198
199
  bottom: "border-t",
199
200
  left: "border-r",
200
201
  right: "border-l"
201
- }, L = u(() => e(I[g.side], r("floating"), g.class)), R = k(), z = i({
202
- open: u(() => !F.value && R.open.value),
202
+ }, R = d(() => e(L[_.side], r("floating"), _.class)), z = A();
203
+ u(() => z.open.value && z.modal.value);
204
+ let B = i({
205
+ open: d(() => !I.value && z.open.value),
203
206
  preset: "panel"
204
- }), B = x(g.detent ?? null);
205
- w(() => g.detent, (e) => {
206
- e !== void 0 && (B.value = e);
207
- }), w(B, (e) => y("update:detent", e));
208
- let V = W({
209
- open: R.open,
210
- side: () => g.side,
211
- ladder: () => P.value.length > 0 ? P.value : [1],
212
- detent: B,
213
- requestClose: () => R.onOpenChange(!1)
214
- }), H = u(() => {
215
- if (N.value) return F.value ? { "--detent-t": String(V.t.value) } : {
216
- translate: s(g.side, z.position.value),
207
+ }), V = S(_.detent ?? null);
208
+ T(() => _.detent, (e) => {
209
+ e !== void 0 && (V.value = e);
210
+ }), T(V, (e) => b("update:detent", e));
211
+ let H = G({
212
+ open: z.open,
213
+ side: () => _.side,
214
+ ladder: () => F.value.length > 0 ? F.value : [1],
215
+ detent: V,
216
+ requestClose: () => z.onOpenChange(!1)
217
+ }), U = d(() => {
218
+ if (P.value) return I.value ? { "--detent-t": String(H.t.value) } : {
219
+ translate: s(_.side, B.position.value),
217
220
  transform: "none",
218
221
  animation: "none",
219
222
  transition: "none"
220
223
  };
221
- }), U = u(() => F.value ? V.present.value : z.present.value), K = u(() => N.value ? U.value || R.open.value : g.forceMount), q = u(() => g.surface === "glass" && (K.value || R.open.value)), J = u(() => N.value && !R.open.value ? "" : void 0), Y = u(() => N.value ? F.value ? c(V.t.value) : o(z.position.value) : null), X = u(() => N.value ? U.value || R.open.value : void 0), Z = u(() => {
222
- let e = P.value, t = V.dragging.value ? V.t.value : B.value ?? V.t.value, n = 0;
224
+ }), W = d(() => I.value ? H.present.value : B.present.value), q = d(() => P.value ? W.value || z.open.value : _.forceMount), J = d(() => _.surface === "glass" && (q.value || z.open.value)), Y = d(() => P.value && !z.open.value ? "" : void 0), X = d(() => P.value ? I.value ? c(H.t.value) : o(B.position.value) : null), re = d(() => P.value ? W.value || z.open.value : void 0), Z = d(() => {
225
+ let e = F.value, t = H.dragging.value ? H.t.value : V.value ?? H.t.value, n = 0;
223
226
  for (let r = 1; r < e.length; r += 1) Math.abs(e[r] - t) < Math.abs(e[n] - t) && (n = r);
224
227
  return n;
225
- }), re = u(() => {
226
- let e = P.value;
228
+ }), ie = d(() => {
229
+ let e = F.value;
227
230
  return `${Math.round((e[Z.value] ?? 1) * 100)}%, position ${Z.value + 1} of ${e.length}`;
228
- }), ie = u(() => F.value ? { "--detent-t": String(V.t.value) } : void 0);
231
+ }), ae = d(() => I.value ? { "--detent-t": String(H.t.value) } : void 0);
229
232
  function Q(e) {
230
- let t = P.value, n = t.length - 1, r = Z.value;
233
+ let t = F.value, n = t.length - 1, r = Z.value;
231
234
  if (e.key === "Home") r = 0;
232
235
  else if (e.key === "End") r = n;
233
236
  else if (e.key === "ArrowUp" || e.key === "ArrowRight") r = Math.min(n, r + 1);
234
237
  else if (e.key === "ArrowDown" || e.key === "ArrowLeft") r = Math.max(0, r - 1);
235
238
  else return;
236
- e.preventDefault(), V.snapTo(t[r]);
239
+ e.preventDefault(), H.snapTo(t[r]);
237
240
  }
238
- let $ = x(null), ae = () => $.value?.closest("[data-slot=\"sheet-content\"]") ?? null;
239
- w(() => R.open.value, (e) => {
240
- if (!N.value || e !== !1) return;
241
+ let $ = S(null), oe = () => $.value?.closest("[data-slot=\"sheet-content\"]") ?? null;
242
+ T(() => z.open.value, (e) => {
243
+ if (!P.value || e !== !1) return;
241
244
  let t = document.activeElement;
242
- t && ae()?.contains(t) && R.triggerElement.value?.focus({ preventScroll: !0 });
245
+ t && oe()?.contains(t) && z.triggerElement.value?.focus({ preventScroll: !0 });
243
246
  }, { flush: "sync" });
244
- let oe = A(j, y), se = u(() => ({
245
- "--glass-veil-tier": F.value ? ne : "var(--glass-veil-dialog)",
247
+ let se = j(M, b), ce = d(() => ({
248
+ "--glass-veil-tier": I.value ? ne : "var(--glass-veil-dialog)",
246
249
  "--radius-ctx": "var(--radius-3xl)",
247
250
  "--radius-inset": "var(--space-family)",
248
- ...M.hostStyle.value ?? {},
249
- ...H.value ?? {}
251
+ ...N.hostStyle.value ?? {},
252
+ ...U.value ?? {}
250
253
  }));
251
- return (e, t) => (b(), d(C(O), { "force-mount": K.value }, {
252
- default: T(() => [
253
- h(a, {
254
- opacity: Y.value,
255
- "force-mount": X.value
254
+ return (e, t) => (x(), f(w(k), { "force-mount": q.value }, {
255
+ default: E(() => [
256
+ g(a, {
257
+ opacity: X.value,
258
+ "force-mount": re.value
256
259
  }, null, 8, ["opacity", "force-mount"]),
257
- h(C(D), _({
258
- ...C(oe),
260
+ g(w(O), v({
261
+ ...w(se),
259
262
  ...e.$attrs,
260
- inert: J.value
263
+ inert: Y.value
261
264
  }, {
262
- "force-mount": K.value,
263
- class: L.value,
264
- style: se.value,
265
- "data-surface": g.surface,
265
+ "aria-modal": w(z).modal.value ? "true" : void 0,
266
+ "force-mount": q.value,
267
+ class: R.value,
268
+ style: ce.value,
269
+ "data-surface": _.surface,
266
270
  "data-slot": "sheet-content",
267
- "data-side": g.side,
268
- "data-modal": C(R).modal.value ? void 0 : "false",
269
- "data-detents": F.value ? "" : void 0,
270
- "data-dragging": C(V).dragging.value ? "" : void 0,
271
- "data-scroll": g.scroll ? "" : void 0,
272
- "data-motion": C(M).dataMotion.value,
273
- onPointerdown: t[0] ||= (e) => F.value ? C(V).onPointerdown(e) : void 0
271
+ "data-side": _.side,
272
+ "data-modal": w(z).modal.value ? void 0 : "false",
273
+ "data-detents": I.value ? "" : void 0,
274
+ "data-dragging": w(H).dragging.value ? "" : void 0,
275
+ "data-scroll": _.scroll ? "" : void 0,
276
+ "data-motion": w(N).dataMotion.value,
277
+ onPointerdown: t[0] ||= (e) => I.value ? w(H).onPointerdown(e) : void 0
274
278
  }), {
275
- default: T(() => [
276
- m("span", {
279
+ default: E(() => [
280
+ h("span", {
277
281
  ref_key: "contentAnchorEl",
278
282
  ref: $,
279
283
  hidden: ""
280
284
  }, null, 512),
281
- h(C(E), { "data-slot": "dialog-close" }, {
282
- default: T(() => [...t[1] ||= [m("svg", {
285
+ g(w(D), { "data-slot": "dialog-close" }, {
286
+ default: E(() => [...t[1] ||= [h("svg", {
283
287
  class: "w-4 h-4",
284
288
  viewBox: "0 0 24 24",
285
289
  fill: "none",
@@ -288,30 +292,31 @@ var G = [
288
292
  "stroke-linecap": "round",
289
293
  "stroke-linejoin": "round",
290
294
  "aria-hidden": "true"
291
- }, [m("path", { d: "M18 6 6 18M6 6l12 12" })], -1), m("span", { class: "sr-only" }, "Close", -1)]]),
295
+ }, [h("path", { d: "M18 6 6 18M6 6l12 12" })], -1), h("span", { class: "sr-only" }, "Close", -1)]]),
292
296
  _: 1
293
297
  }),
294
- F.value ? (b(), p("div", {
298
+ I.value ? (x(), m("div", {
295
299
  key: 0,
296
300
  "data-slot": "sheet-detent-handle",
297
301
  role: "slider",
298
302
  tabindex: "0",
299
303
  "aria-label": "Sheet position",
300
- "aria-orientation": g.side === "left" || g.side === "right" ? "horizontal" : "vertical",
301
- "aria-valuemin": P.value[0],
302
- "aria-valuemax": P.value[P.value.length - 1],
303
- "aria-valuenow": P.value[Z.value],
304
- "aria-valuetext": re.value,
304
+ "aria-orientation": _.side === "left" || _.side === "right" ? "horizontal" : "vertical",
305
+ "aria-valuemin": F.value[0],
306
+ "aria-valuemax": F.value[F.value.length - 1],
307
+ "aria-valuenow": F.value[Z.value],
308
+ "aria-valuetext": ie.value,
305
309
  onKeydown: Q
306
- }, [m("span", {
310
+ }, [h("span", {
307
311
  "data-slot": "sheet-detent-grip",
308
- style: v(ie.value),
312
+ style: y(ae.value),
309
313
  "aria-hidden": "true"
310
- }, null, 4)], 40, G)) : f("", !0),
311
- m("div", ee, [S(e.$slots, "default")])
314
+ }, null, 4)], 40, K)) : p("", !0),
315
+ h("div", ee, [C(e.$slots, "default")])
312
316
  ]),
313
317
  _: 3
314
318
  }, 16, [
319
+ "aria-modal",
315
320
  "force-mount",
316
321
  "class",
317
322
  "style",
@@ -323,18 +328,18 @@ var G = [
323
328
  "data-scroll",
324
329
  "data-motion"
325
330
  ]),
326
- q.value ? (b(), p("span", {
331
+ J.value ? (x(), m("span", {
327
332
  key: 0,
328
333
  "data-slot": "glass-graded-halo",
329
- "data-side": g.side,
330
- "data-detents": F.value ? "" : void 0,
331
- "data-modal": C(R).modal.value ? void 0 : "false",
334
+ "data-side": _.side,
335
+ "data-detents": I.value ? "" : void 0,
336
+ "data-modal": w(z).modal.value ? void 0 : "false",
332
337
  "aria-hidden": "true"
333
- }, null, 8, te)) : f("", !0)
338
+ }, null, 8, te)) : p("", !0)
334
339
  ]),
335
340
  _: 3
336
341
  }, 8, ["force-mount"]));
337
342
  }
338
343
  });
339
344
  //#endregion
340
- export { L as a, P as c, F as i, W as n, N as o, I as r, M as s, K as t };
345
+ export { R as a, F as c, I as i, G as n, P as o, L as r, N as s, q as t };
package/dist/sheet.js CHANGED
@@ -1,3 +1,3 @@
1
- import { n as e, r as t, t as n } from "./motion-D4uYE0UM.js";
2
- import { a as r, c as i, i as a, n as o, o as s, r as c, s as l, t as u } from "./sheet-BEFvnO_u.js";
1
+ import { n as e, r as t, t as n } from "./motion-BvV1_24p.js";
2
+ import { a as r, c as i, i as a, n as o, o as s, r as c, s as l, t as u } from "./sheet-BQJyER59.js";
3
3
  export { u as SheetContent, c as nearestRung, a as projectRest, r as resolveRelease, n as scrimDetentOpacity, e as scrimOpacity, s as settleHorizon, t as sheetSlideTransform, l as springOmega, i as throwDistance, o as useSheetDetents };
@@ -0,0 +1,13 @@
1
+ import { suspendShortcuts as e } from "./keyboard.js";
2
+ import { onScopeDispose as t, watch as n } from "vue";
3
+ //#region src/components/_shared/overlay/shortcuts.ts
4
+ function r(r) {
5
+ let i = null, a = () => {
6
+ i?.(), i = null;
7
+ };
8
+ n(r, (t) => {
9
+ t ? i ??= e() : a();
10
+ }, { immediate: !0 }), t(a);
11
+ }
12
+ //#endregion
13
+ export { r as t };
package/dist/sidebar.js CHANGED
@@ -9,7 +9,7 @@ function u(i, o, u) {
9
9
  function x() {
10
10
  v = !1;
11
11
  }
12
- let S = t(() => m.value ? c(o).get(m.value)?.parentId ?? null : null);
12
+ let S = t(() => m.value ? c(o).get(m.value)?.rootId ?? null : null);
13
13
  function C(e) {
14
14
  for (let t of e) {
15
15
  let e = d(t);
@@ -189,7 +189,7 @@ function d(e) {
189
189
  p();
190
190
  }
191
191
  function C(e) {
192
- e.target?.closest("[data-toc-id], .sidebar-top-btn") || p();
192
+ e.target?.closest("[data-toc-id], [data-sidebar-follow-exempt]") || p();
193
193
  }
194
194
  function w(e) {
195
195
  (e.key === "ArrowUp" || e.key === "ArrowDown" || e.key === "PageUp" || e.key === "PageDown" || e.key === "Home" || e.key === "End" || e.key === " ") && p();
@@ -226,11 +226,11 @@ function f(e, t) {
226
226
  node: l,
227
227
  depth: a,
228
228
  rootId: u,
229
- parentId: a === 0 ? l.id : o,
229
+ parentId: o,
230
230
  rootIndex: t
231
231
  });
232
232
  let d = n(l);
233
- d && i(d, a + 1, a === 0 ? l.id : o, u, t);
233
+ d && i(d, a + 1, l.id, u, t);
234
234
  }
235
235
  }
236
236
  i(e, 0, null, "", 0);
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./useMotionAxis-D-rtIhca.js";
2
- import { n as t, o as n } from "./participation-B0hdsIRo.js";
2
+ import { n as t, o as n } from "./participation-Di4UHbzk.js";
3
3
  import { t as r } from "./useDragVelocity-C5BkKiNf.js";
4
4
  import { n as i } from "./valueDomain-DXRzfc8l.js";
5
5
  import { Fragment as a, Teleport as o, computed as s, createBlock as c, createCommentVNode as l, createElementBlock as u, createElementVNode as d, createVNode as f, defineComponent as p, mergeProps as m, nextTick as ee, normalizeClass as te, normalizeStyle as h, onBeforeUnmount as g, onMounted as _, openBlock as v, ref as y, renderList as b, unref as x, useAttrs as ne, useTemplateRef as S, watch as C, withCtx as w } from "vue";
package/dist/slider.js CHANGED
@@ -1,2 +1,2 @@
1
- import { t as e } from "./slider-gsc8jDIo.js";
1
+ import { t as e } from "./slider-5ChjjWSR.js";
2
2
  export { e as Slider };
@@ -1,4 +1,4 @@
1
- import { t as e } from "./class-names-q-UGOkHH.js";
1
+ import { t as e } from "./class-names-FlXcvRRT.js";
2
2
  import { t } from "./_plugin-vue_export-helper-B3ysoDQm.js";
3
3
  import { createElementBlock as n, createElementVNode as r, defineComponent as i, mergeProps as a, openBlock as o, unref as s } from "vue";
4
4
  //#region src/components/status-dot/StatusDot.vue?vue&type=script&setup=true&lang.ts
@@ -43,7 +43,7 @@ var c = [
43
43
  "aria-hidden": "true"
44
44
  }, null, 8, l)], 16, c));
45
45
  }
46
- }), [["__scopeId", "data-v-3169e5f0"]]), d = [
46
+ }), [["__scopeId", "data-v-4a47d962"]]), d = [
47
47
  "active",
48
48
  "idle",
49
49
  "online",
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./status-dot-BpnqOP5N.js";
1
+ import { n as e, t } from "./status-dot-W4LFiJps.js";
2
2
  export { t as STATUS_DOT_STATES, e as StatusDot };
@@ -1 +1 @@
1
- @import "./glass/a11y-fallback.css";@import "./utilities/responsive.css";@import "./utilities/a11y-overrides.css";@media (prefers-contrast: more){:is( [aria-current]:not([aria-current="false"]),[aria-selected="true"],[aria-pressed="true"],[aria-checked="true"],[data-state="checked"],[data-state="on"] ){border-color: currentColor !important;border-style: solid !important;border-width: 2px !important;}:is([aria-invalid="true"],:user-invalid){border-color: var(--destructive) !important;border-style: solid !important;border-width: 2px !important;}}@media (forced-colors: active){:is( [aria-current]:not([aria-current="false"]),[aria-selected="true"],[aria-pressed="true"],[aria-checked="true"],[data-state="checked"],[data-state="on"] ){border-color: Highlight !important;border-style: solid !important;border-width: 2px !important;}:is([aria-invalid="true"],:user-invalid){border-color: Mark !important;border-style: solid !important;border-width: 2px !important;}}
1
+ @import "./glass/a11y-fallback.css";@import "./utilities/responsive.css";@import "./utilities/a11y-overrides.css";@layer components{@media (prefers-contrast: more){:is( [aria-current]:not([aria-current="false"]),[aria-selected="true"],[aria-pressed="true"],[aria-checked="true"],[data-state="checked"],[data-state="on"] ){border-color: currentColor !important;border-style: solid !important;border-width: 2px !important;}:is([aria-invalid="true"],:user-invalid){border-color: var(--destructive) !important;border-style: solid !important;border-width: 2px !important;}}@media (forced-colors: active){:is( [aria-current]:not([aria-current="false"]),[aria-selected="true"],[aria-pressed="true"],[aria-checked="true"],[data-state="checked"],[data-state="on"] ){border-color: Highlight !important;border-style: solid !important;border-width: 2px !important;}:is([aria-invalid="true"],:user-invalid){border-color: Mark !important;border-style: solid !important;border-width: 2px !important;}}}
@@ -1 +1 @@
1
- @keyframes tooltip-in{from{opacity: 0;transform: scale(0.96);}to{opacity: 1;transform: scale(1);}}@keyframes fade-in{from{opacity: 0;transform: translateY(6px);}to{opacity: 1;transform: translateY(0);}}@keyframes scale-in{from{opacity: 0;transform: scale(0.95);}to{opacity: 1;transform: scale(1);}}@keyframes slide-up{from{opacity: 0;transform: translateY(16px);}to{opacity: 1;transform: translateY(0);}}@keyframes dock-in{from{opacity: 0;transform: translateY(14px) scale(0.96);}to{opacity: 1;transform: translateY(0) scale(1);}}@keyframes shimmer-sweep{0%{background-position: -200% 0;}100%{background-position: 200% 0;}}@keyframes shimmer{0%{background-position: 250% 0;}100%{background-position: -250% 0;}}@keyframes shake{0%,100%{transform: translateX(0);}10%,30%,50%,70%,90%{transform: translateX(-4px);}20%,40%,60%,80%{transform: translateX(4px);}}@keyframes metal-shimmer-sweep{0%{background-position: 200% 0;}100%{background-position: -200% 0;}}@keyframes typewriter-blink{0%,50%{opacity: 1;}51%,100%{opacity: 0;}}@keyframes glass-reveal-out{from{scale: 1 1;opacity: 1;filter: blur(0);}60%{opacity: 0;}to{scale: calc(var(--glass-reveal-enter-scale,0.94) * var(--lq-stretch-x,1.06)) calc(var(--glass-reveal-enter-scale,0.94) * var(--lq-stretch-y,0.945));opacity: 0;filter: blur(var(--glass-reveal-blur,4px));}}@keyframes glass-reveal-out-reduced{from{opacity: 1;}to{opacity: 0;}}@supports (overlay: auto){.glass-top-layer[popover],dialog.glass-top-layer{opacity: 0;scale: var(--top-layer-enter-scale,0.96);filter: blur(var(--top-layer-enter-blur,4px));transition-property: opacity,scale,filter,display,overlay;transition-duration: var(--enter-overlay-clock),var(--enter-overlay-clock),var(--enter-overlay-clock),var(--enter-overlay-clock),var(--enter-overlay-clock);transition-timing-function: var(--enter-overlay-spring),var(--enter-overlay-spring),var(--ease-out),linear,linear;transition-behavior: allow-discrete;}.glass-top-layer[popover]:popover-open,dialog.glass-top-layer[open]{opacity: 1;scale: 1;filter: blur(0);@starting-style{opacity: 0;scale: var(--top-layer-enter-scale,0.96);filter: blur(var(--top-layer-enter-blur,4px));}}dialog.glass-top-layer::backdrop{background-color: color-mix(in srgb,var(--background) 0%,transparent);-webkit-backdrop-filter: blur(var(--top-layer-backdrop-blur,7px));backdrop-filter: blur(var(--top-layer-backdrop-blur,7px));transition: display var(--duration-normal) allow-discrete,overlay var(--duration-normal) allow-discrete,background-color var(--duration-normal) var(--ease-standard);}dialog.glass-top-layer[open]::backdrop{background-color: color-mix( in srgb,var(--background) calc(var(--top-layer-backdrop-dim,0.5) * 100%),transparent );transition: display var(--top-layer-backdrop-in,0.15s) allow-discrete,overlay var(--top-layer-backdrop-in,0.15s) allow-discrete,background-color var(--top-layer-backdrop-in,0.15s) var(--ease-out);@starting-style{background-color: color-mix(in srgb,var(--background) 0%,transparent);}}}@media (prefers-reduced-motion: reduce){.glass-top-layer[popover],dialog.glass-top-layer{scale: none;transition-duration: var(--duration-fast);}}@keyframes glass-vaporize-saturate{58.14%,100%{--vap-saturate: 1;}}@keyframes glass-vaporize-blur{to{--vap-blur: 0px;}}@keyframes glass-vaporize-panel{79.07%,100%{background-color: transparent;border-color: transparent;box-shadow: none;}}@keyframes glass-vaporize-ink{0%{opacity: 1;filter: blur(0);}23.256%{filter: blur(var(--vap-ink-blur));}40%{opacity: var(--vap-ink-floor);}79.07%{opacity: 0;}100%{opacity: 0;filter: blur(var(--vap-ink-blur));}}@keyframes glass-vaporize-ink-reduced{0%{opacity: 1;}40%{opacity: var(--vap-ink-floor);}79.07%{opacity: 0;}100%{opacity: 0;}}
1
+ @keyframes tooltip-in{from{opacity: 0;transform: scale(0.96);}to{opacity: 1;transform: scale(1);}}@keyframes fade-in{from{opacity: 0;transform: translateY(6px);}to{opacity: 1;transform: translateY(0);}}@keyframes scale-in{from{opacity: 0;transform: scale(0.95);}to{opacity: 1;transform: scale(1);}}@keyframes slide-up{from{opacity: 0;transform: translateY(16px);}to{opacity: 1;transform: translateY(0);}}@keyframes dock-in{from{opacity: 0;transform: translateY(14px) scale(0.96);}to{opacity: 1;transform: translateY(0) scale(1);}}@keyframes shimmer-sweep{0%{background-position: -200% 0;}100%{background-position: 200% 0;}}@keyframes shimmer{0%{background-position: 250% 0;}100%{background-position: -250% 0;}}@keyframes shake{0%,100%{transform: translateX(0);}10%,30%,50%,70%,90%{transform: translateX(-4px);}20%,40%,60%,80%{transform: translateX(4px);}}@keyframes metal-shimmer-sweep{0%{background-position: 200% 0;}100%{background-position: -200% 0;}}@keyframes typewriter-blink{0%,50%{opacity: 1;}51%,100%{opacity: 0;}}@keyframes glass-reveal-out{from{scale: 1 1;opacity: 1;filter: blur(0);}60%{opacity: 0;}to{scale: calc(var(--glass-reveal-enter-scale,0.94) * var(--lq-stretch-x,1.06)) calc(var(--glass-reveal-enter-scale,0.94) * var(--lq-stretch-y,0.945));opacity: 0;filter: blur(var(--glass-reveal-blur,4px));}}@keyframes glass-reveal-out-reduced{from{opacity: 1;}to{opacity: 0;}}@layer components{@supports (overlay: auto){.glass-top-layer[popover],dialog.glass-top-layer{opacity: 0;scale: var(--top-layer-enter-scale,0.96);filter: blur(var(--top-layer-enter-blur,4px));transition-property: opacity,scale,filter,display,overlay;transition-duration: var(--enter-overlay-clock),var(--enter-overlay-clock),var(--enter-overlay-clock),var(--enter-overlay-clock),var(--enter-overlay-clock);transition-timing-function: var(--enter-overlay-spring),var(--enter-overlay-spring),var(--ease-out),linear,linear;transition-behavior: allow-discrete;}.glass-top-layer[popover]:popover-open,dialog.glass-top-layer[open]{opacity: 1;scale: 1;filter: blur(0);@starting-style{opacity: 0;scale: var(--top-layer-enter-scale,0.96);filter: blur(var(--top-layer-enter-blur,4px));}}dialog.glass-top-layer::backdrop{background-color: color-mix(in srgb,var(--background) 0%,transparent);-webkit-backdrop-filter: blur(var(--top-layer-backdrop-blur,7px));backdrop-filter: blur(var(--top-layer-backdrop-blur,7px));transition: display var(--duration-normal) allow-discrete,overlay var(--duration-normal) allow-discrete,background-color var(--duration-normal) var(--ease-standard);}dialog.glass-top-layer[open]::backdrop{background-color: color-mix( in srgb,var(--background) calc(var(--top-layer-backdrop-dim,0.5) * 100%),transparent );transition: display var(--top-layer-backdrop-in,0.15s) allow-discrete,overlay var(--top-layer-backdrop-in,0.15s) allow-discrete,background-color var(--top-layer-backdrop-in,0.15s) var(--ease-out);@starting-style{background-color: color-mix(in srgb,var(--background) 0%,transparent);}}}@media (prefers-reduced-motion: reduce){.glass-top-layer[popover],dialog.glass-top-layer{scale: none;transition-duration: var(--duration-fast);}}}@keyframes glass-vaporize-saturate{58.14%,100%{--vap-saturate: 1;}}@keyframes glass-vaporize-blur{to{--vap-blur: 0px;}}@keyframes glass-vaporize-panel{79.07%,100%{background-color: transparent;border-color: transparent;box-shadow: none;}}@keyframes glass-vaporize-ink{0%{opacity: 1;filter: blur(0);}23.256%{filter: blur(var(--vap-ink-blur));}40%{opacity: var(--vap-ink-floor);}79.07%{opacity: 0;}100%{opacity: 0;filter: blur(var(--vap-ink-blur));}}@keyframes glass-vaporize-ink-reduced{0%{opacity: 1;}40%{opacity: var(--vap-ink-floor);}79.07%{opacity: 0;}100%{opacity: 0;}}