aeon-ui-engine 1.0.1 → 1.0.3

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 (227) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/CONSUMER.md +86 -0
  3. package/INTEGRATION.md +2 -0
  4. package/README.md +15 -4
  5. package/package.json +17 -1
  6. package/packages/core/dist/index.d.ts +257 -0
  7. package/packages/core/dist/index.js +378 -0
  8. package/packages/core/node_modules/.bin/esbuild +21 -0
  9. package/packages/core/node_modules/.bin/jiti +21 -0
  10. package/packages/core/node_modules/.bin/tsc +21 -0
  11. package/packages/core/node_modules/.bin/tsserver +21 -0
  12. package/packages/core/node_modules/.bin/tsup +21 -0
  13. package/packages/core/node_modules/.bin/tsup-node +21 -0
  14. package/packages/core/node_modules/.bin/tsx +21 -0
  15. package/packages/core/node_modules/.bin/vite +21 -0
  16. package/packages/core/node_modules/.bin/vitest +21 -0
  17. package/packages/core/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  18. package/packages/geometry/dist/index.d.ts +50 -0
  19. package/packages/geometry/dist/index.js +88 -0
  20. package/packages/geometry/node_modules/.bin/esbuild +21 -0
  21. package/packages/geometry/node_modules/.bin/jiti +21 -0
  22. package/packages/geometry/node_modules/.bin/tsc +21 -0
  23. package/packages/geometry/node_modules/.bin/tsserver +21 -0
  24. package/packages/geometry/node_modules/.bin/tsup +21 -0
  25. package/packages/geometry/node_modules/.bin/tsup-node +21 -0
  26. package/packages/geometry/node_modules/.bin/tsx +21 -0
  27. package/packages/panda/src/recipes/button.ts +4 -4
  28. package/packages/panda/src/recipes/combobox.ts +1 -1
  29. package/packages/panda/src/recipes/select.ts +1 -1
  30. package/packages/panda/src/theme/tokens.ts +5 -0
  31. package/packages/panda/styled-system/styles.css +10 -6
  32. package/packages/panda/styled-system/tokens/index.mjs +32 -0
  33. package/packages/panda/styled-system/tokens/tokens.d.ts +2 -2
  34. package/packages/primitives/dist/chunk-5S4DIRL4.js +42 -0
  35. package/packages/primitives/dist/chunk-H4KOEPYC.js +52 -0
  36. package/packages/primitives/dist/chunk-HONROWUG.js +41 -0
  37. package/packages/primitives/dist/chunk-J6JHKMVM.js +90 -0
  38. package/packages/primitives/dist/chunk-JBAG5E6W.js +46 -0
  39. package/packages/primitives/dist/chunk-LVNCD5F2.js +43 -0
  40. package/packages/primitives/dist/chunk-PB3LFHXU.js +72 -0
  41. package/packages/primitives/dist/chunk-SZV6KGXN.js +49 -0
  42. package/packages/primitives/dist/chunk-WVICCOQH.js +56 -0
  43. package/packages/primitives/dist/chunk-ZMGRX64G.js +74 -0
  44. package/packages/primitives/dist/index.d.ts +11 -0
  45. package/packages/primitives/dist/index.js +60 -0
  46. package/packages/primitives/dist/machines/accordion.d.ts +34 -0
  47. package/packages/primitives/dist/machines/accordion.js +6 -0
  48. package/packages/primitives/dist/machines/async.d.ts +111 -0
  49. package/packages/primitives/dist/machines/async.js +12 -0
  50. package/packages/primitives/dist/machines/button.d.ts +45 -0
  51. package/packages/primitives/dist/machines/button.js +8 -0
  52. package/packages/primitives/dist/machines/dialog.d.ts +57 -0
  53. package/packages/primitives/dist/machines/dialog.js +6 -0
  54. package/packages/primitives/dist/machines/field.d.ts +72 -0
  55. package/packages/primitives/dist/machines/field.js +12 -0
  56. package/packages/primitives/dist/machines/popover.d.ts +54 -0
  57. package/packages/primitives/dist/machines/popover.js +6 -0
  58. package/packages/primitives/dist/machines/slider.d.ts +71 -0
  59. package/packages/primitives/dist/machines/slider.js +10 -0
  60. package/packages/primitives/dist/machines/tabs.d.ts +39 -0
  61. package/packages/primitives/dist/machines/tabs.js +6 -0
  62. package/packages/primitives/dist/machines/toast.d.ts +31 -0
  63. package/packages/primitives/dist/machines/toast.js +6 -0
  64. package/packages/primitives/dist/machines/toggle.d.ts +54 -0
  65. package/packages/primitives/dist/machines/toggle.js +6 -0
  66. package/packages/primitives/node_modules/.bin/jiti +21 -0
  67. package/packages/primitives/node_modules/.bin/tsc +21 -0
  68. package/packages/primitives/node_modules/.bin/tsserver +21 -0
  69. package/packages/primitives/node_modules/.bin/tsup +21 -0
  70. package/packages/primitives/node_modules/.bin/tsup-node +21 -0
  71. package/packages/primitives/node_modules/.bin/tsx +21 -0
  72. package/packages/primitives/node_modules/.bin/vitest +21 -0
  73. package/packages/primitives/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  74. package/packages/react/dist/index.d.ts +564 -0
  75. package/packages/react/dist/index.js +3461 -0
  76. package/packages/react/node_modules/.bin/jiti +21 -0
  77. package/packages/react/node_modules/.bin/tsc +21 -0
  78. package/packages/react/node_modules/.bin/tsserver +21 -0
  79. package/packages/react/node_modules/.bin/tsup +21 -0
  80. package/packages/react/node_modules/.bin/tsup-node +21 -0
  81. package/packages/react/node_modules/.bin/tsx +21 -0
  82. package/packages/react/node_modules/.bin/vitest +21 -0
  83. package/packages/react/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  84. package/packages/react-scene/dist/index.d.ts +121 -0
  85. package/packages/react-scene/dist/index.js +430 -0
  86. package/packages/react-scene/node_modules/.bin/jiti +21 -0
  87. package/packages/react-scene/node_modules/.bin/tsc +21 -0
  88. package/packages/react-scene/node_modules/.bin/tsserver +21 -0
  89. package/packages/react-scene/node_modules/.bin/tsup +21 -0
  90. package/packages/react-scene/node_modules/.bin/tsup-node +21 -0
  91. package/packages/react-scene/node_modules/.bin/tsx +21 -0
  92. package/packages/scene/dist/index.d.ts +46 -0
  93. package/packages/scene/dist/index.js +54 -0
  94. package/packages/scene/node_modules/.bin/jiti +21 -0
  95. package/packages/scene/node_modules/.bin/tsc +21 -0
  96. package/packages/scene/node_modules/.bin/tsserver +21 -0
  97. package/packages/scene/node_modules/.bin/tsup +21 -0
  98. package/packages/scene/node_modules/.bin/tsup-node +21 -0
  99. package/packages/scene/node_modules/.bin/tsx +21 -0
  100. package/packages/signal/dist/index.d.ts +54 -0
  101. package/packages/signal/dist/index.js +169 -0
  102. package/packages/signal/node_modules/.bin/jiti +21 -0
  103. package/packages/signal/node_modules/.bin/tsc +21 -0
  104. package/packages/signal/node_modules/.bin/tsserver +21 -0
  105. package/packages/signal/node_modules/.bin/tsup +21 -0
  106. package/packages/signal/node_modules/.bin/tsup-node +21 -0
  107. package/packages/signal/node_modules/.bin/tsx +21 -0
  108. package/packages/site/dist/index.d.ts +31 -0
  109. package/packages/site/dist/index.js +62 -0
  110. package/packages/site/node_modules/.bin/jiti +21 -0
  111. package/packages/site/node_modules/.bin/tsc +21 -0
  112. package/packages/site/node_modules/.bin/tsserver +21 -0
  113. package/packages/site/node_modules/.bin/tsup +21 -0
  114. package/packages/site/node_modules/.bin/tsup-node +21 -0
  115. package/packages/site/node_modules/.bin/tsx +21 -0
  116. package/packages/solid/dist/index.d.ts +30 -0
  117. package/packages/solid/dist/index.js +174 -0
  118. package/packages/solid/node_modules/.bin/jiti +21 -0
  119. package/packages/solid/node_modules/.bin/tsc +21 -0
  120. package/packages/solid/node_modules/.bin/tsserver +21 -0
  121. package/packages/solid/node_modules/.bin/tsup +21 -0
  122. package/packages/solid/node_modules/.bin/tsup-node +21 -0
  123. package/packages/solid/node_modules/.bin/tsx +21 -0
  124. package/packages/surface/dist/index.d.ts +8 -0
  125. package/packages/surface/dist/index.js +14 -0
  126. package/packages/surface/node_modules/.bin/jiti +21 -0
  127. package/packages/surface/node_modules/.bin/tsc +21 -0
  128. package/packages/surface/node_modules/.bin/tsserver +21 -0
  129. package/packages/surface/node_modules/.bin/tsup +21 -0
  130. package/packages/surface/node_modules/.bin/tsup-node +21 -0
  131. package/packages/surface/node_modules/.bin/tsx +21 -0
  132. package/packages/svelte/dist/index.d.ts +12 -0
  133. package/packages/svelte/dist/index.js +15 -0
  134. package/packages/svelte/node_modules/.bin/acorn +21 -0
  135. package/packages/svelte/node_modules/.bin/jiti +21 -0
  136. package/packages/svelte/node_modules/.bin/svelte-check +21 -0
  137. package/packages/svelte/node_modules/.bin/tsc +21 -0
  138. package/packages/svelte/node_modules/.bin/tsserver +21 -0
  139. package/packages/svelte/node_modules/.bin/tsup +21 -0
  140. package/packages/svelte/node_modules/.bin/tsup-node +21 -0
  141. package/packages/svelte/node_modules/.bin/tsx +21 -0
  142. package/packages/svelte/node_modules/.bin/vite +21 -0
  143. package/packages/ui/dist/index.d.ts +200 -0
  144. package/packages/ui/dist/index.js +429 -0
  145. package/packages/ui/node_modules/.bin/jiti +21 -0
  146. package/packages/ui/node_modules/.bin/tsc +21 -0
  147. package/packages/ui/node_modules/.bin/tsserver +21 -0
  148. package/packages/ui/node_modules/.bin/tsup +21 -0
  149. package/packages/ui/node_modules/.bin/tsup-node +21 -0
  150. package/packages/ui/node_modules/.bin/tsx +21 -0
  151. package/packages/ui/src/select.tsx +3 -4
  152. package/packages/vue/dist/index.d.ts +71 -0
  153. package/packages/vue/dist/index.js +193 -0
  154. package/packages/vue/node_modules/.bin/jiti +21 -0
  155. package/packages/vue/node_modules/.bin/tsc +21 -0
  156. package/packages/vue/node_modules/.bin/tsserver +21 -0
  157. package/packages/vue/node_modules/.bin/tsup +21 -0
  158. package/packages/vue/node_modules/.bin/tsup-node +21 -0
  159. package/packages/vue/node_modules/.bin/tsx +21 -0
  160. package/scripts/vite-aliases.mjs +125 -0
  161. package/.changeset/README.md +0 -23
  162. package/.changeset/combobox-and-changesets.md +0 -9
  163. package/.changeset/config.json +0 -30
  164. package/.changeset/framework-adapters.md +0 -12
  165. package/.changeset/scene-3d.md +0 -6
  166. package/.changeset/scene-plane.md +0 -8
  167. package/.changeset/site-og.md +0 -5
  168. package/.cursor/rules/aeon-ui.mdc +0 -22
  169. package/ACCESSIBILITY.md +0 -32
  170. package/AGENTS.md +0 -226
  171. package/COMPONENTS.md +0 -41
  172. package/FRAMEWORKS.md +0 -57
  173. package/PHILOSOPHY.md +0 -71
  174. package/PUBLISHING.md +0 -85
  175. package/SCENE.md +0 -113
  176. package/STATES.md +0 -243
  177. package/apps/demo/index.html +0 -31
  178. package/apps/demo/og.config.mjs +0 -20
  179. package/apps/demo/package.json +0 -41
  180. package/apps/demo/public/favicon.svg +0 -16
  181. package/apps/demo/public/og-aeon-ui-engine.png +0 -0
  182. package/apps/demo/public/og.svg +0 -35
  183. package/apps/demo/scripts/generate-og-png.mjs +0 -62
  184. package/apps/demo/src/App.tsx +0 -31
  185. package/apps/demo/src/aeonDiagrams.ts +0 -42
  186. package/apps/demo/src/app.css +0 -16
  187. package/apps/demo/src/components/ActionCluster.tsx +0 -20
  188. package/apps/demo/src/components/AsyncMachineDemo.tsx +0 -97
  189. package/apps/demo/src/components/ButtonLifecycleDemo.tsx +0 -63
  190. package/apps/demo/src/components/CodeExample.tsx +0 -7
  191. package/apps/demo/src/components/ComboboxDemo.tsx +0 -30
  192. package/apps/demo/src/components/DiagramsSection.tsx +0 -37
  193. package/apps/demo/src/components/FieldStateDemo.tsx +0 -51
  194. package/apps/demo/src/components/GridMesh.tsx +0 -8
  195. package/apps/demo/src/components/HeroInstall.tsx +0 -13
  196. package/apps/demo/src/components/LandingFaq.tsx +0 -29
  197. package/apps/demo/src/components/LandingFooter.tsx +0 -30
  198. package/apps/demo/src/components/LandingHeader.tsx +0 -62
  199. package/apps/demo/src/components/LandingHero.tsx +0 -55
  200. package/apps/demo/src/components/LayersSection.tsx +0 -47
  201. package/apps/demo/src/components/MermaidDiagram.tsx +0 -86
  202. package/apps/demo/src/components/PhilosophySection.tsx +0 -31
  203. package/apps/demo/src/components/PlaygroundBlock.tsx +0 -18
  204. package/apps/demo/src/components/PlaygroundControlsDemo.tsx +0 -63
  205. package/apps/demo/src/components/PlaygroundSection.tsx +0 -120
  206. package/apps/demo/src/components/ScrollRegionDemo.tsx +0 -74
  207. package/apps/demo/src/components/ThemeSwitcher.tsx +0 -79
  208. package/apps/demo/src/demo-layout.css +0 -293
  209. package/apps/demo/src/landing.css +0 -1151
  210. package/apps/demo/src/main.tsx +0 -14
  211. package/apps/demo/src/nav.ts +0 -9
  212. package/apps/demo/src/site.ts +0 -218
  213. package/apps/demo/tsconfig.json +0 -17
  214. package/apps/demo/vite-plugins/og-meta.ts +0 -30
  215. package/apps/demo/vite.config.ts +0 -69
  216. package/docs/API_PATTERNS.md +0 -234
  217. package/docs/ARCHITECTURE.md +0 -125
  218. package/docs/COMPONENT_CHECKLIST.md +0 -103
  219. package/docs/FILE_MAP.md +0 -122
  220. package/docs/GLOSSARY.md +0 -125
  221. package/docs/INDEX.md +0 -53
  222. package/docs/LAYOUT_COORDINATES.md +0 -178
  223. package/docs/MACHINES.md +0 -171
  224. package/docs/MIGRATION_FROM_ARK.md +0 -295
  225. package/docs/VITE_CONSUMER.md +0 -114
  226. package/pnpm-workspace.yaml +0 -3
  227. package/vercel.json +0 -12
@@ -0,0 +1,88 @@
1
+ // src/scene-attrs.ts
2
+ import { scopeAttrs } from "@aeon-ui/core";
3
+ function sceneAttrs(part, state) {
4
+ return scopeAttrs("scene", part, state ? { state } : void 0);
5
+ }
6
+
7
+ // src/patterns.ts
8
+ function gridPatternStyle(options) {
9
+ const cell = options?.cell ?? 32;
10
+ const color = options?.lineColor ?? "rgba(255, 255, 255, 0.06)";
11
+ const w = options?.lineWidth ?? 1;
12
+ const line = `${w}px ${color}`;
13
+ return {
14
+ backgroundImage: [
15
+ `linear-gradient(${line} 0 0)`,
16
+ `linear-gradient(90deg, ${line} 0 0)`
17
+ ].join(", "),
18
+ backgroundSize: `${cell}px ${cell}px`
19
+ };
20
+ }
21
+ function wavePath(width, height, options) {
22
+ const wavelength = options?.wavelength ?? 48;
23
+ const amplitude = options?.amplitude ?? height * 0.2;
24
+ const mid = height / 2;
25
+ const steps = Math.max(8, Math.ceil(width / (wavelength / 4)));
26
+ const points = [];
27
+ for (let i = 0; i <= steps; i++) {
28
+ const t = i / steps;
29
+ const x = t * width;
30
+ const y = mid + Math.sin(t * (width / wavelength) * Math.PI * 2) * amplitude;
31
+ points.push(`${i === 0 ? "M" : "L"}${x.toFixed(2)},${y.toFixed(2)}`);
32
+ }
33
+ return points.join(" ");
34
+ }
35
+ function vignetteStyle(options) {
36
+ const s = options?.strength ?? 0.55;
37
+ return {
38
+ background: `radial-gradient(ellipse 80% 70% at 50% 45%, transparent 0%, rgba(0,0,0,${s}) 100%)`
39
+ };
40
+ }
41
+
42
+ // src/svg.ts
43
+ var DEFAULT_FILLS = [
44
+ "#8B5CF6",
45
+ "#6366F1",
46
+ "#4F8FF7",
47
+ "#38BDF8",
48
+ "#2DD4BF",
49
+ "#FBBF24",
50
+ "#F472B6"
51
+ ];
52
+ function barLayout(options) {
53
+ const count = options.count;
54
+ const viewW = options.viewWidth;
55
+ const viewH = options.viewHeight;
56
+ const barW = options.barWidth ?? Math.min(10, (viewW - (count - 1) * (options.gap ?? 4)) / count);
57
+ const gap = options.gap ?? 4;
58
+ const fills = options.fills ?? DEFAULT_FILLS;
59
+ const totalW = count * barW + (count - 1) * gap;
60
+ const startX = (viewW - totalW) / 2;
61
+ const bars = [];
62
+ for (let i = 0; i < count; i++) {
63
+ const h = viewH * (0.42 + i / Math.max(1, count - 1) * 0.58);
64
+ const y = (viewH - h) / 2;
65
+ const x = startX + i * (barW + gap);
66
+ bars.push({
67
+ x,
68
+ y,
69
+ w: barW,
70
+ h,
71
+ fill: fills[i % fills.length]
72
+ });
73
+ }
74
+ return bars;
75
+ }
76
+ function barScaleTransform(bar, scaleY) {
77
+ const cx = bar.x + bar.w / 2;
78
+ const cy = bar.y + bar.h / 2;
79
+ return `translate(${cx} ${cy}) scale(1 ${scaleY}) translate(${-cx} ${-cy})`;
80
+ }
81
+ export {
82
+ barLayout,
83
+ barScaleTransform,
84
+ gridPatternStyle,
85
+ sceneAttrs,
86
+ vignetteStyle,
87
+ wavePath
88
+ };
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/esbuild@0.27.7/node_modules/esbuild/bin/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/esbuild@0.27.7/node_modules/esbuild/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/esbuild@0.27.7/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/esbuild@0.27.7/node_modules/esbuild/bin/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/esbuild@0.27.7/node_modules/esbuild/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/esbuild@0.27.7/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../../../../node_modules/.pnpm/esbuild@0.27.7/node_modules/esbuild/bin/esbuild" "$@"
19
+ else
20
+ exec node "$basedir/../../../../node_modules/.pnpm/esbuild@0.27.7/node_modules/esbuild/bin/esbuild" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/jiti@2.7.0/node_modules/jiti/lib/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/jiti@2.7.0/node_modules/jiti/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/jiti@2.7.0/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/jiti@2.7.0/node_modules/jiti/lib/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/jiti@2.7.0/node_modules/jiti/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/jiti@2.7.0/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../../../../node_modules/.pnpm/jiti@2.7.0/node_modules/jiti/lib/jiti-cli.mjs" "$@"
19
+ else
20
+ exec node "$basedir/../../../../node_modules/.pnpm/jiti@2.7.0/node_modules/jiti/lib/jiti-cli.mjs" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../typescript/bin/tsc" "$@"
19
+ else
20
+ exec node "$basedir/../typescript/bin/tsc" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../typescript/bin/tsserver" "$@"
19
+ else
20
+ exec node "$basedir/../typescript/bin/tsserver" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsup@8.5.1_jiti@2.7.0_postcss@8.5.15_tsx@4.22.3_typescript@5.9.3/node_modules/tsup/dist/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsup@8.5.1_jiti@2.7.0_postcss@8.5.15_tsx@4.22.3_typescript@5.9.3/node_modules/tsup/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsup@8.5.1_jiti@2.7.0_postcss@8.5.15_tsx@4.22.3_typescript@5.9.3/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsup@8.5.1_jiti@2.7.0_postcss@8.5.15_tsx@4.22.3_typescript@5.9.3/node_modules/tsup/dist/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsup@8.5.1_jiti@2.7.0_postcss@8.5.15_tsx@4.22.3_typescript@5.9.3/node_modules/tsup/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsup@8.5.1_jiti@2.7.0_postcss@8.5.15_tsx@4.22.3_typescript@5.9.3/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../tsup/dist/cli-default.js" "$@"
19
+ else
20
+ exec node "$basedir/../tsup/dist/cli-default.js" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsup@8.5.1_jiti@2.7.0_postcss@8.5.15_tsx@4.22.3_typescript@5.9.3/node_modules/tsup/dist/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsup@8.5.1_jiti@2.7.0_postcss@8.5.15_tsx@4.22.3_typescript@5.9.3/node_modules/tsup/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsup@8.5.1_jiti@2.7.0_postcss@8.5.15_tsx@4.22.3_typescript@5.9.3/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsup@8.5.1_jiti@2.7.0_postcss@8.5.15_tsx@4.22.3_typescript@5.9.3/node_modules/tsup/dist/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsup@8.5.1_jiti@2.7.0_postcss@8.5.15_tsx@4.22.3_typescript@5.9.3/node_modules/tsup/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsup@8.5.1_jiti@2.7.0_postcss@8.5.15_tsx@4.22.3_typescript@5.9.3/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../tsup/dist/cli-node.js" "$@"
19
+ else
20
+ exec node "$basedir/../tsup/dist/cli-node.js" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsx@4.22.3/node_modules/tsx/dist/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsx@4.22.3/node_modules/tsx/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsx@4.22.3/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsx@4.22.3/node_modules/tsx/dist/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsx@4.22.3/node_modules/tsx/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsx@4.22.3/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../../../../node_modules/.pnpm/tsx@4.22.3/node_modules/tsx/dist/cli.mjs" "$@"
19
+ else
20
+ exec node "$basedir/../../../../node_modules/.pnpm/tsx@4.22.3/node_modules/tsx/dist/cli.mjs" "$@"
21
+ fi
@@ -59,28 +59,28 @@ export const buttonRecipe = defineRecipe({
59
59
  borderRadius: 'sm',
60
60
  py: 'controlYSm',
61
61
  px: 'controlXSm',
62
- minH: '1.75rem',
62
+ minH: 'controlMinHXs',
63
63
  },
64
64
  sm: {
65
65
  fontSize: '0.8125rem',
66
66
  borderRadius: 'sm',
67
67
  py: 'controlY',
68
68
  px: 'controlX',
69
- minH: '2rem',
69
+ minH: 'controlMinHSm',
70
70
  },
71
71
  md: {
72
72
  fontSize: '0.875rem',
73
73
  borderRadius: 'md',
74
74
  py: '0.4375rem',
75
75
  px: '0.875rem',
76
- minH: '2.25rem',
76
+ minH: 'controlMinHMd',
77
77
  },
78
78
  lg: {
79
79
  fontSize: '0.9375rem',
80
80
  borderRadius: 'md',
81
81
  py: 'insetYSm',
82
82
  px: 'insetXSm',
83
- minH: '2.5rem',
83
+ minH: 'controlMinHLg',
84
84
  },
85
85
  },
86
86
  },
@@ -16,7 +16,7 @@ export const comboboxRecipe = defineSlotRecipe({
16
16
  input: {
17
17
  display: 'block',
18
18
  width: '100%',
19
- minH: '2rem',
19
+ minH: 'controlMinHSm',
20
20
  py: 'controlY',
21
21
  pl: 'controlX',
22
22
  pr: '2rem',
@@ -17,7 +17,7 @@ export const selectRecipe = defineSlotRecipe({
17
17
  gap: 'gapSm',
18
18
  width: '100%',
19
19
  boxSizing: 'border-box',
20
- minH: '2rem',
20
+ minH: 'controlMinHSm',
21
21
  py: 'controlY',
22
22
  px: 'controlX',
23
23
  borderRadius: 'sm',
@@ -25,6 +25,11 @@ export const tokens = defineTokens({
25
25
  controlY: { value: '0.375rem' },
26
26
  controlXSm: { value: '0.625rem' },
27
27
  controlYSm: { value: '0.3125rem' },
28
+ /** Shared min-heights — button sizes and matching inputs align to these tiers. */
29
+ controlMinHXs: { value: '1.75rem' },
30
+ controlMinHSm: { value: '2rem' },
31
+ controlMinHMd: { value: '2.25rem' },
32
+ controlMinHLg: { value: '2.5rem' },
28
33
  badgeX: { value: '0.5rem' },
29
34
  badgeY: { value: '0.125rem' },
30
35
  insetXSm: { value: '1.125rem' },
@@ -820,6 +820,10 @@
820
820
  --spacing-control-y: 0.375rem;
821
821
  --spacing-control-x-sm: 0.625rem;
822
822
  --spacing-control-y-sm: 0.3125rem;
823
+ --spacing-control-min-h-xs: 1.75rem;
824
+ --spacing-control-min-h-sm: 2rem;
825
+ --spacing-control-min-h-md: 2.25rem;
826
+ --spacing-control-min-h-lg: 2.5rem;
823
827
  --spacing-badge-x: 0.5rem;
824
828
  --spacing-badge-y: 0.125rem;
825
829
  --spacing-inset-x-sm: 1.125rem;
@@ -982,7 +986,7 @@
982
986
  border-radius: var(--radii-md);
983
987
  padding-block: 0.4375rem;
984
988
  padding-inline: 0.875rem;
985
- min-height: 2.25rem;
989
+ min-height: controlMinHMd;
986
990
  font-size: 0.875rem;
987
991
  }
988
992
 
@@ -990,7 +994,7 @@
990
994
  border-radius: var(--radii-sm);
991
995
  padding-block: var(--spacing-control-y);
992
996
  padding-inline: var(--spacing-control-x);
993
- min-height: 2rem;
997
+ min-height: controlMinHSm;
994
998
  font-size: 0.8125rem;
995
999
  }
996
1000
 
@@ -998,7 +1002,7 @@
998
1002
  border-radius: var(--radii-sm);
999
1003
  padding-block: var(--spacing-control-y-sm);
1000
1004
  padding-inline: var(--spacing-control-x-sm);
1001
- min-height: 1.75rem;
1005
+ min-height: controlMinHXs;
1002
1006
  font-size: 0.75rem;
1003
1007
  font-weight: var(--font-weights-semibold);
1004
1008
  }
@@ -1007,7 +1011,7 @@
1007
1011
  border-radius: var(--radii-md);
1008
1012
  padding-block: var(--spacing-inset-y-sm);
1009
1013
  padding-inline: var(--spacing-inset-x-sm);
1010
- min-height: 2.5rem;
1014
+ min-height: controlMinHLg;
1011
1015
  font-size: 0.9375rem;
1012
1016
  }
1013
1017
 
@@ -1288,7 +1292,7 @@
1288
1292
  .aeonCombobox__input {
1289
1293
  display: block;
1290
1294
  width: 100%;
1291
- min-height: 2rem;
1295
+ min-height: controlMinHSm;
1292
1296
  padding-block: var(--spacing-control-y);
1293
1297
  border-radius: var(--radii-sm);
1294
1298
  color: var(--colors-fg);
@@ -1881,7 +1885,7 @@
1881
1885
  gap: var(--spacing-gap-sm);
1882
1886
  width: 100%;
1883
1887
  box-sizing: border-box;
1884
- min-height: 2rem;
1888
+ min-height: controlMinHSm;
1885
1889
  padding-block: var(--spacing-control-y);
1886
1890
  padding-inline: var(--spacing-control-x);
1887
1891
  border-radius: var(--radii-sm);
@@ -1719,6 +1719,22 @@ const tokens = {
1719
1719
  "value": "0.3125rem",
1720
1720
  "variable": "var(--spacing-control-y-sm)"
1721
1721
  },
1722
+ "spacing.controlMinHXs": {
1723
+ "value": "1.75rem",
1724
+ "variable": "var(--spacing-control-min-h-xs)"
1725
+ },
1726
+ "spacing.controlMinHSm": {
1727
+ "value": "2rem",
1728
+ "variable": "var(--spacing-control-min-h-sm)"
1729
+ },
1730
+ "spacing.controlMinHMd": {
1731
+ "value": "2.25rem",
1732
+ "variable": "var(--spacing-control-min-h-md)"
1733
+ },
1734
+ "spacing.controlMinHLg": {
1735
+ "value": "2.5rem",
1736
+ "variable": "var(--spacing-control-min-h-lg)"
1737
+ },
1722
1738
  "spacing.badgeX": {
1723
1739
  "value": "0.5rem",
1724
1740
  "variable": "var(--spacing-badge-x)"
@@ -2011,6 +2027,22 @@ const tokens = {
2011
2027
  "value": "calc(var(--spacing-control-y-sm) * -1)",
2012
2028
  "variable": "var(--spacing-control-y-sm)"
2013
2029
  },
2030
+ "spacing.-controlMinHXs": {
2031
+ "value": "calc(var(--spacing-control-min-h-xs) * -1)",
2032
+ "variable": "var(--spacing-control-min-h-xs)"
2033
+ },
2034
+ "spacing.-controlMinHSm": {
2035
+ "value": "calc(var(--spacing-control-min-h-sm) * -1)",
2036
+ "variable": "var(--spacing-control-min-h-sm)"
2037
+ },
2038
+ "spacing.-controlMinHMd": {
2039
+ "value": "calc(var(--spacing-control-min-h-md) * -1)",
2040
+ "variable": "var(--spacing-control-min-h-md)"
2041
+ },
2042
+ "spacing.-controlMinHLg": {
2043
+ "value": "calc(var(--spacing-control-min-h-lg) * -1)",
2044
+ "variable": "var(--spacing-control-min-h-lg)"
2045
+ },
2014
2046
  "spacing.-badgeX": {
2015
2047
  "value": "calc(var(--spacing-badge-x) * -1)",
2016
2048
  "variable": "var(--spacing-badge-x)"
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable */
2
- export type Token = "aspectRatios.square" | "aspectRatios.landscape" | "aspectRatios.portrait" | "aspectRatios.wide" | "aspectRatios.ultrawide" | "aspectRatios.golden" | "borders.none" | "easings.default" | "easings.linear" | "easings.in" | "easings.out" | "easings.in-out" | "durations.fastest" | "durations.faster" | "durations.fast" | "durations.normal" | "durations.slow" | "durations.slower" | "durations.slowest" | "fontWeights.thin" | "fontWeights.extralight" | "fontWeights.light" | "fontWeights.normal" | "fontWeights.medium" | "fontWeights.semibold" | "fontWeights.bold" | "fontWeights.extrabold" | "fontWeights.black" | "lineHeights.none" | "lineHeights.tight" | "lineHeights.snug" | "lineHeights.normal" | "lineHeights.relaxed" | "lineHeights.loose" | "letterSpacings.tighter" | "letterSpacings.tight" | "letterSpacings.normal" | "letterSpacings.wide" | "letterSpacings.wider" | "letterSpacings.widest" | "fontSizes.2xs" | "fontSizes.xs" | "fontSizes.sm" | "fontSizes.md" | "fontSizes.lg" | "fontSizes.xl" | "fontSizes.2xl" | "fontSizes.3xl" | "fontSizes.4xl" | "fontSizes.5xl" | "fontSizes.6xl" | "fontSizes.7xl" | "fontSizes.8xl" | "fontSizes.9xl" | "blurs.sm" | "blurs.base" | "blurs.md" | "blurs.lg" | "blurs.xl" | "blurs.2xl" | "blurs.3xl" | "sizes.0" | "sizes.1" | "sizes.2" | "sizes.3" | "sizes.4" | "sizes.5" | "sizes.6" | "sizes.7" | "sizes.8" | "sizes.9" | "sizes.10" | "sizes.11" | "sizes.12" | "sizes.14" | "sizes.16" | "sizes.20" | "sizes.24" | "sizes.28" | "sizes.32" | "sizes.36" | "sizes.40" | "sizes.44" | "sizes.48" | "sizes.52" | "sizes.56" | "sizes.60" | "sizes.64" | "sizes.72" | "sizes.80" | "sizes.96" | "sizes.0.5" | "sizes.1.5" | "sizes.2.5" | "sizes.3.5" | "sizes.xs" | "sizes.sm" | "sizes.md" | "sizes.lg" | "sizes.xl" | "sizes.2xl" | "sizes.3xl" | "sizes.4xl" | "sizes.5xl" | "sizes.6xl" | "sizes.7xl" | "sizes.8xl" | "sizes.prose" | "sizes.full" | "sizes.min" | "sizes.max" | "sizes.fit" | "sizes.breakpoint-sm" | "sizes.breakpoint-md" | "sizes.breakpoint-lg" | "sizes.breakpoint-xl" | "sizes.breakpoint-2xl" | "animations.spin" | "animations.ping" | "animations.pulse" | "animations.bounce" | "fonts.sans" | "fonts.serif" | "fonts.ui" | "fonts.mono" | "fonts.display" | "fonts.body" | "colors.current" | "colors.black" | "colors.white" | "colors.transparent" | "colors.rose.50" | "colors.rose.100" | "colors.rose.200" | "colors.rose.300" | "colors.rose.400" | "colors.rose.500" | "colors.rose.600" | "colors.rose.700" | "colors.rose.800" | "colors.rose.900" | "colors.rose.950" | "colors.pink.50" | "colors.pink.100" | "colors.pink.200" | "colors.pink.300" | "colors.pink.400" | "colors.pink.500" | "colors.pink.600" | "colors.pink.700" | "colors.pink.800" | "colors.pink.900" | "colors.pink.950" | "colors.fuchsia.50" | "colors.fuchsia.100" | "colors.fuchsia.200" | "colors.fuchsia.300" | "colors.fuchsia.400" | "colors.fuchsia.500" | "colors.fuchsia.600" | "colors.fuchsia.700" | "colors.fuchsia.800" | "colors.fuchsia.900" | "colors.fuchsia.950" | "colors.purple.50" | "colors.purple.100" | "colors.purple.200" | "colors.purple.300" | "colors.purple.400" | "colors.purple.500" | "colors.purple.600" | "colors.purple.700" | "colors.purple.800" | "colors.purple.900" | "colors.purple.950" | "colors.violet.50" | "colors.violet.100" | "colors.violet.200" | "colors.violet.300" | "colors.violet.400" | "colors.violet.500" | "colors.violet.600" | "colors.violet.700" | "colors.violet.800" | "colors.violet.900" | "colors.violet.950" | "colors.indigo.50" | "colors.indigo.100" | "colors.indigo.200" | "colors.indigo.300" | "colors.indigo.400" | "colors.indigo.500" | "colors.indigo.600" | "colors.indigo.700" | "colors.indigo.800" | "colors.indigo.900" | "colors.indigo.950" | "colors.blue.50" | "colors.blue.100" | "colors.blue.200" | "colors.blue.300" | "colors.blue.400" | "colors.blue.500" | "colors.blue.600" | "colors.blue.700" | "colors.blue.800" | "colors.blue.900" | "colors.blue.950" | "colors.sky.50" | "colors.sky.100" | "colors.sky.200" | "colors.sky.300" | "colors.sky.400" | "colors.sky.500" | "colors.sky.600" | "colors.sky.700" | "colors.sky.800" | "colors.sky.900" | "colors.sky.950" | "colors.cyan.50" | "colors.cyan.100" | "colors.cyan.200" | "colors.cyan.300" | "colors.cyan.400" | "colors.cyan.500" | "colors.cyan.600" | "colors.cyan.700" | "colors.cyan.800" | "colors.cyan.900" | "colors.cyan.950" | "colors.teal.50" | "colors.teal.100" | "colors.teal.200" | "colors.teal.300" | "colors.teal.400" | "colors.teal.500" | "colors.teal.600" | "colors.teal.700" | "colors.teal.800" | "colors.teal.900" | "colors.teal.950" | "colors.emerald.50" | "colors.emerald.100" | "colors.emerald.200" | "colors.emerald.300" | "colors.emerald.400" | "colors.emerald.500" | "colors.emerald.600" | "colors.emerald.700" | "colors.emerald.800" | "colors.emerald.900" | "colors.emerald.950" | "colors.green.50" | "colors.green.100" | "colors.green.200" | "colors.green.300" | "colors.green.400" | "colors.green.500" | "colors.green.600" | "colors.green.700" | "colors.green.800" | "colors.green.900" | "colors.green.950" | "colors.lime.50" | "colors.lime.100" | "colors.lime.200" | "colors.lime.300" | "colors.lime.400" | "colors.lime.500" | "colors.lime.600" | "colors.lime.700" | "colors.lime.800" | "colors.lime.900" | "colors.lime.950" | "colors.yellow.50" | "colors.yellow.100" | "colors.yellow.200" | "colors.yellow.300" | "colors.yellow.400" | "colors.yellow.500" | "colors.yellow.600" | "colors.yellow.700" | "colors.yellow.800" | "colors.yellow.900" | "colors.yellow.950" | "colors.amber.50" | "colors.amber.100" | "colors.amber.200" | "colors.amber.300" | "colors.amber.400" | "colors.amber.500" | "colors.amber.600" | "colors.amber.700" | "colors.amber.800" | "colors.amber.900" | "colors.amber.950" | "colors.orange.50" | "colors.orange.100" | "colors.orange.200" | "colors.orange.300" | "colors.orange.400" | "colors.orange.500" | "colors.orange.600" | "colors.orange.700" | "colors.orange.800" | "colors.orange.900" | "colors.orange.950" | "colors.red.50" | "colors.red.100" | "colors.red.200" | "colors.red.300" | "colors.red.400" | "colors.red.500" | "colors.red.600" | "colors.red.700" | "colors.red.800" | "colors.red.900" | "colors.red.950" | "colors.neutral.50" | "colors.neutral.100" | "colors.neutral.200" | "colors.neutral.300" | "colors.neutral.400" | "colors.neutral.500" | "colors.neutral.600" | "colors.neutral.700" | "colors.neutral.800" | "colors.neutral.900" | "colors.neutral.950" | "colors.stone.50" | "colors.stone.100" | "colors.stone.200" | "colors.stone.300" | "colors.stone.400" | "colors.stone.500" | "colors.stone.600" | "colors.stone.700" | "colors.stone.800" | "colors.stone.900" | "colors.stone.950" | "colors.zinc.50" | "colors.zinc.100" | "colors.zinc.200" | "colors.zinc.300" | "colors.zinc.400" | "colors.zinc.500" | "colors.zinc.600" | "colors.zinc.700" | "colors.zinc.800" | "colors.zinc.900" | "colors.zinc.950" | "colors.gray.50" | "colors.gray.100" | "colors.gray.200" | "colors.gray.300" | "colors.gray.400" | "colors.gray.500" | "colors.gray.600" | "colors.gray.700" | "colors.gray.800" | "colors.gray.900" | "colors.gray.950" | "colors.slate.50" | "colors.slate.100" | "colors.slate.200" | "colors.slate.300" | "colors.slate.400" | "colors.slate.500" | "colors.slate.600" | "colors.slate.700" | "colors.slate.800" | "colors.slate.900" | "colors.slate.950" | "radii.xs" | "radii.xl" | "radii.2xl" | "radii.3xl" | "radii.4xl" | "radii.full" | "radii.sm" | "radii.md" | "radii.lg" | "radii.siteLg" | "shadows.xs" | "shadows.sm" | "shadows.md" | "shadows.lg" | "shadows.xl" | "shadows.2xl" | "shadows.inner" | "shadows.panel" | "shadows.focusRing" | "spacing.0" | "spacing.1" | "spacing.2" | "spacing.3" | "spacing.4" | "spacing.5" | "spacing.6" | "spacing.7" | "spacing.8" | "spacing.9" | "spacing.10" | "spacing.11" | "spacing.12" | "spacing.14" | "spacing.16" | "spacing.20" | "spacing.24" | "spacing.28" | "spacing.32" | "spacing.36" | "spacing.40" | "spacing.44" | "spacing.48" | "spacing.52" | "spacing.56" | "spacing.60" | "spacing.64" | "spacing.72" | "spacing.80" | "spacing.96" | "spacing.0.5" | "spacing.1.5" | "spacing.2.5" | "spacing.3.5" | "spacing.controlX" | "spacing.controlY" | "spacing.controlXSm" | "spacing.controlYSm" | "spacing.badgeX" | "spacing.badgeY" | "spacing.insetXSm" | "spacing.insetYSm" | "spacing.insetX" | "spacing.insetY" | "spacing.insetXLg" | "spacing.insetYLg" | "spacing.padSm" | "spacing.padMd" | "spacing.padLg" | "spacing.padXl" | "spacing.gapSm" | "spacing.gap" | "spacing.gapLg" | "spacing.accordionGap" | "spacing.accordionInsetX" | "spacing.accordionTriggerY" | "spacing.accordionTriggerMinH" | "spacing.accordionContentY" | "spacing.accordionContentB" | "breakpoints.sm" | "breakpoints.md" | "breakpoints.lg" | "breakpoints.xl" | "breakpoints.2xl" | "colors.bg" | "colors.surface" | "colors.surfaceRaised" | "colors.border" | "colors.fg" | "colors.muted" | "colors.accent" | "colors.accentDim" | "colors.danger" | "colors.dangerDim" | "spacing.-1" | "spacing.-2" | "spacing.-3" | "spacing.-4" | "spacing.-5" | "spacing.-6" | "spacing.-7" | "spacing.-8" | "spacing.-9" | "spacing.-10" | "spacing.-11" | "spacing.-12" | "spacing.-14" | "spacing.-16" | "spacing.-20" | "spacing.-24" | "spacing.-28" | "spacing.-32" | "spacing.-36" | "spacing.-40" | "spacing.-44" | "spacing.-48" | "spacing.-52" | "spacing.-56" | "spacing.-60" | "spacing.-64" | "spacing.-72" | "spacing.-80" | "spacing.-96" | "spacing.-0.5" | "spacing.-1.5" | "spacing.-2.5" | "spacing.-3.5" | "spacing.-controlX" | "spacing.-controlY" | "spacing.-controlXSm" | "spacing.-controlYSm" | "spacing.-badgeX" | "spacing.-badgeY" | "spacing.-insetXSm" | "spacing.-insetYSm" | "spacing.-insetX" | "spacing.-insetY" | "spacing.-insetXLg" | "spacing.-insetYLg" | "spacing.-padSm" | "spacing.-padMd" | "spacing.-padLg" | "spacing.-padXl" | "spacing.-gapSm" | "spacing.-gap" | "spacing.-gapLg" | "spacing.-accordionGap" | "spacing.-accordionInsetX" | "spacing.-accordionTriggerY" | "spacing.-accordionTriggerMinH" | "spacing.-accordionContentY" | "spacing.-accordionContentB" | "colors.colorPalette" | "colors.colorPalette.50" | "colors.colorPalette.100" | "colors.colorPalette.200" | "colors.colorPalette.300" | "colors.colorPalette.400" | "colors.colorPalette.500" | "colors.colorPalette.600" | "colors.colorPalette.700" | "colors.colorPalette.800" | "colors.colorPalette.900" | "colors.colorPalette.950"
2
+ export type Token = "aspectRatios.square" | "aspectRatios.landscape" | "aspectRatios.portrait" | "aspectRatios.wide" | "aspectRatios.ultrawide" | "aspectRatios.golden" | "borders.none" | "easings.default" | "easings.linear" | "easings.in" | "easings.out" | "easings.in-out" | "durations.fastest" | "durations.faster" | "durations.fast" | "durations.normal" | "durations.slow" | "durations.slower" | "durations.slowest" | "fontWeights.thin" | "fontWeights.extralight" | "fontWeights.light" | "fontWeights.normal" | "fontWeights.medium" | "fontWeights.semibold" | "fontWeights.bold" | "fontWeights.extrabold" | "fontWeights.black" | "lineHeights.none" | "lineHeights.tight" | "lineHeights.snug" | "lineHeights.normal" | "lineHeights.relaxed" | "lineHeights.loose" | "letterSpacings.tighter" | "letterSpacings.tight" | "letterSpacings.normal" | "letterSpacings.wide" | "letterSpacings.wider" | "letterSpacings.widest" | "fontSizes.2xs" | "fontSizes.xs" | "fontSizes.sm" | "fontSizes.md" | "fontSizes.lg" | "fontSizes.xl" | "fontSizes.2xl" | "fontSizes.3xl" | "fontSizes.4xl" | "fontSizes.5xl" | "fontSizes.6xl" | "fontSizes.7xl" | "fontSizes.8xl" | "fontSizes.9xl" | "blurs.sm" | "blurs.base" | "blurs.md" | "blurs.lg" | "blurs.xl" | "blurs.2xl" | "blurs.3xl" | "sizes.0" | "sizes.1" | "sizes.2" | "sizes.3" | "sizes.4" | "sizes.5" | "sizes.6" | "sizes.7" | "sizes.8" | "sizes.9" | "sizes.10" | "sizes.11" | "sizes.12" | "sizes.14" | "sizes.16" | "sizes.20" | "sizes.24" | "sizes.28" | "sizes.32" | "sizes.36" | "sizes.40" | "sizes.44" | "sizes.48" | "sizes.52" | "sizes.56" | "sizes.60" | "sizes.64" | "sizes.72" | "sizes.80" | "sizes.96" | "sizes.0.5" | "sizes.1.5" | "sizes.2.5" | "sizes.3.5" | "sizes.xs" | "sizes.sm" | "sizes.md" | "sizes.lg" | "sizes.xl" | "sizes.2xl" | "sizes.3xl" | "sizes.4xl" | "sizes.5xl" | "sizes.6xl" | "sizes.7xl" | "sizes.8xl" | "sizes.prose" | "sizes.full" | "sizes.min" | "sizes.max" | "sizes.fit" | "sizes.breakpoint-sm" | "sizes.breakpoint-md" | "sizes.breakpoint-lg" | "sizes.breakpoint-xl" | "sizes.breakpoint-2xl" | "animations.spin" | "animations.ping" | "animations.pulse" | "animations.bounce" | "fonts.sans" | "fonts.serif" | "fonts.ui" | "fonts.mono" | "fonts.display" | "fonts.body" | "colors.current" | "colors.black" | "colors.white" | "colors.transparent" | "colors.rose.50" | "colors.rose.100" | "colors.rose.200" | "colors.rose.300" | "colors.rose.400" | "colors.rose.500" | "colors.rose.600" | "colors.rose.700" | "colors.rose.800" | "colors.rose.900" | "colors.rose.950" | "colors.pink.50" | "colors.pink.100" | "colors.pink.200" | "colors.pink.300" | "colors.pink.400" | "colors.pink.500" | "colors.pink.600" | "colors.pink.700" | "colors.pink.800" | "colors.pink.900" | "colors.pink.950" | "colors.fuchsia.50" | "colors.fuchsia.100" | "colors.fuchsia.200" | "colors.fuchsia.300" | "colors.fuchsia.400" | "colors.fuchsia.500" | "colors.fuchsia.600" | "colors.fuchsia.700" | "colors.fuchsia.800" | "colors.fuchsia.900" | "colors.fuchsia.950" | "colors.purple.50" | "colors.purple.100" | "colors.purple.200" | "colors.purple.300" | "colors.purple.400" | "colors.purple.500" | "colors.purple.600" | "colors.purple.700" | "colors.purple.800" | "colors.purple.900" | "colors.purple.950" | "colors.violet.50" | "colors.violet.100" | "colors.violet.200" | "colors.violet.300" | "colors.violet.400" | "colors.violet.500" | "colors.violet.600" | "colors.violet.700" | "colors.violet.800" | "colors.violet.900" | "colors.violet.950" | "colors.indigo.50" | "colors.indigo.100" | "colors.indigo.200" | "colors.indigo.300" | "colors.indigo.400" | "colors.indigo.500" | "colors.indigo.600" | "colors.indigo.700" | "colors.indigo.800" | "colors.indigo.900" | "colors.indigo.950" | "colors.blue.50" | "colors.blue.100" | "colors.blue.200" | "colors.blue.300" | "colors.blue.400" | "colors.blue.500" | "colors.blue.600" | "colors.blue.700" | "colors.blue.800" | "colors.blue.900" | "colors.blue.950" | "colors.sky.50" | "colors.sky.100" | "colors.sky.200" | "colors.sky.300" | "colors.sky.400" | "colors.sky.500" | "colors.sky.600" | "colors.sky.700" | "colors.sky.800" | "colors.sky.900" | "colors.sky.950" | "colors.cyan.50" | "colors.cyan.100" | "colors.cyan.200" | "colors.cyan.300" | "colors.cyan.400" | "colors.cyan.500" | "colors.cyan.600" | "colors.cyan.700" | "colors.cyan.800" | "colors.cyan.900" | "colors.cyan.950" | "colors.teal.50" | "colors.teal.100" | "colors.teal.200" | "colors.teal.300" | "colors.teal.400" | "colors.teal.500" | "colors.teal.600" | "colors.teal.700" | "colors.teal.800" | "colors.teal.900" | "colors.teal.950" | "colors.emerald.50" | "colors.emerald.100" | "colors.emerald.200" | "colors.emerald.300" | "colors.emerald.400" | "colors.emerald.500" | "colors.emerald.600" | "colors.emerald.700" | "colors.emerald.800" | "colors.emerald.900" | "colors.emerald.950" | "colors.green.50" | "colors.green.100" | "colors.green.200" | "colors.green.300" | "colors.green.400" | "colors.green.500" | "colors.green.600" | "colors.green.700" | "colors.green.800" | "colors.green.900" | "colors.green.950" | "colors.lime.50" | "colors.lime.100" | "colors.lime.200" | "colors.lime.300" | "colors.lime.400" | "colors.lime.500" | "colors.lime.600" | "colors.lime.700" | "colors.lime.800" | "colors.lime.900" | "colors.lime.950" | "colors.yellow.50" | "colors.yellow.100" | "colors.yellow.200" | "colors.yellow.300" | "colors.yellow.400" | "colors.yellow.500" | "colors.yellow.600" | "colors.yellow.700" | "colors.yellow.800" | "colors.yellow.900" | "colors.yellow.950" | "colors.amber.50" | "colors.amber.100" | "colors.amber.200" | "colors.amber.300" | "colors.amber.400" | "colors.amber.500" | "colors.amber.600" | "colors.amber.700" | "colors.amber.800" | "colors.amber.900" | "colors.amber.950" | "colors.orange.50" | "colors.orange.100" | "colors.orange.200" | "colors.orange.300" | "colors.orange.400" | "colors.orange.500" | "colors.orange.600" | "colors.orange.700" | "colors.orange.800" | "colors.orange.900" | "colors.orange.950" | "colors.red.50" | "colors.red.100" | "colors.red.200" | "colors.red.300" | "colors.red.400" | "colors.red.500" | "colors.red.600" | "colors.red.700" | "colors.red.800" | "colors.red.900" | "colors.red.950" | "colors.neutral.50" | "colors.neutral.100" | "colors.neutral.200" | "colors.neutral.300" | "colors.neutral.400" | "colors.neutral.500" | "colors.neutral.600" | "colors.neutral.700" | "colors.neutral.800" | "colors.neutral.900" | "colors.neutral.950" | "colors.stone.50" | "colors.stone.100" | "colors.stone.200" | "colors.stone.300" | "colors.stone.400" | "colors.stone.500" | "colors.stone.600" | "colors.stone.700" | "colors.stone.800" | "colors.stone.900" | "colors.stone.950" | "colors.zinc.50" | "colors.zinc.100" | "colors.zinc.200" | "colors.zinc.300" | "colors.zinc.400" | "colors.zinc.500" | "colors.zinc.600" | "colors.zinc.700" | "colors.zinc.800" | "colors.zinc.900" | "colors.zinc.950" | "colors.gray.50" | "colors.gray.100" | "colors.gray.200" | "colors.gray.300" | "colors.gray.400" | "colors.gray.500" | "colors.gray.600" | "colors.gray.700" | "colors.gray.800" | "colors.gray.900" | "colors.gray.950" | "colors.slate.50" | "colors.slate.100" | "colors.slate.200" | "colors.slate.300" | "colors.slate.400" | "colors.slate.500" | "colors.slate.600" | "colors.slate.700" | "colors.slate.800" | "colors.slate.900" | "colors.slate.950" | "radii.xs" | "radii.xl" | "radii.2xl" | "radii.3xl" | "radii.4xl" | "radii.full" | "radii.sm" | "radii.md" | "radii.lg" | "radii.siteLg" | "shadows.xs" | "shadows.sm" | "shadows.md" | "shadows.lg" | "shadows.xl" | "shadows.2xl" | "shadows.inner" | "shadows.panel" | "shadows.focusRing" | "spacing.0" | "spacing.1" | "spacing.2" | "spacing.3" | "spacing.4" | "spacing.5" | "spacing.6" | "spacing.7" | "spacing.8" | "spacing.9" | "spacing.10" | "spacing.11" | "spacing.12" | "spacing.14" | "spacing.16" | "spacing.20" | "spacing.24" | "spacing.28" | "spacing.32" | "spacing.36" | "spacing.40" | "spacing.44" | "spacing.48" | "spacing.52" | "spacing.56" | "spacing.60" | "spacing.64" | "spacing.72" | "spacing.80" | "spacing.96" | "spacing.0.5" | "spacing.1.5" | "spacing.2.5" | "spacing.3.5" | "spacing.controlX" | "spacing.controlY" | "spacing.controlXSm" | "spacing.controlYSm" | "spacing.controlMinHXs" | "spacing.controlMinHSm" | "spacing.controlMinHMd" | "spacing.controlMinHLg" | "spacing.badgeX" | "spacing.badgeY" | "spacing.insetXSm" | "spacing.insetYSm" | "spacing.insetX" | "spacing.insetY" | "spacing.insetXLg" | "spacing.insetYLg" | "spacing.padSm" | "spacing.padMd" | "spacing.padLg" | "spacing.padXl" | "spacing.gapSm" | "spacing.gap" | "spacing.gapLg" | "spacing.accordionGap" | "spacing.accordionInsetX" | "spacing.accordionTriggerY" | "spacing.accordionTriggerMinH" | "spacing.accordionContentY" | "spacing.accordionContentB" | "breakpoints.sm" | "breakpoints.md" | "breakpoints.lg" | "breakpoints.xl" | "breakpoints.2xl" | "colors.bg" | "colors.surface" | "colors.surfaceRaised" | "colors.border" | "colors.fg" | "colors.muted" | "colors.accent" | "colors.accentDim" | "colors.danger" | "colors.dangerDim" | "spacing.-1" | "spacing.-2" | "spacing.-3" | "spacing.-4" | "spacing.-5" | "spacing.-6" | "spacing.-7" | "spacing.-8" | "spacing.-9" | "spacing.-10" | "spacing.-11" | "spacing.-12" | "spacing.-14" | "spacing.-16" | "spacing.-20" | "spacing.-24" | "spacing.-28" | "spacing.-32" | "spacing.-36" | "spacing.-40" | "spacing.-44" | "spacing.-48" | "spacing.-52" | "spacing.-56" | "spacing.-60" | "spacing.-64" | "spacing.-72" | "spacing.-80" | "spacing.-96" | "spacing.-0.5" | "spacing.-1.5" | "spacing.-2.5" | "spacing.-3.5" | "spacing.-controlX" | "spacing.-controlY" | "spacing.-controlXSm" | "spacing.-controlYSm" | "spacing.-controlMinHXs" | "spacing.-controlMinHSm" | "spacing.-controlMinHMd" | "spacing.-controlMinHLg" | "spacing.-badgeX" | "spacing.-badgeY" | "spacing.-insetXSm" | "spacing.-insetYSm" | "spacing.-insetX" | "spacing.-insetY" | "spacing.-insetXLg" | "spacing.-insetYLg" | "spacing.-padSm" | "spacing.-padMd" | "spacing.-padLg" | "spacing.-padXl" | "spacing.-gapSm" | "spacing.-gap" | "spacing.-gapLg" | "spacing.-accordionGap" | "spacing.-accordionInsetX" | "spacing.-accordionTriggerY" | "spacing.-accordionTriggerMinH" | "spacing.-accordionContentY" | "spacing.-accordionContentB" | "colors.colorPalette" | "colors.colorPalette.50" | "colors.colorPalette.100" | "colors.colorPalette.200" | "colors.colorPalette.300" | "colors.colorPalette.400" | "colors.colorPalette.500" | "colors.colorPalette.600" | "colors.colorPalette.700" | "colors.colorPalette.800" | "colors.colorPalette.900" | "colors.colorPalette.950"
3
3
 
4
4
  export type ColorPalette = "current" | "black" | "white" | "transparent" | "rose" | "pink" | "fuchsia" | "purple" | "violet" | "indigo" | "blue" | "sky" | "cyan" | "teal" | "emerald" | "green" | "lime" | "yellow" | "amber" | "orange" | "red" | "neutral" | "stone" | "zinc" | "gray" | "slate" | "bg" | "surface" | "surfaceRaised" | "border" | "fg" | "muted" | "accent" | "accentDim" | "danger" | "dangerDim"
5
5
 
@@ -33,7 +33,7 @@ export type RadiusToken = "xs" | "xl" | "2xl" | "3xl" | "4xl" | "full" | "sm" |
33
33
 
34
34
  export type ShadowToken = "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "inner" | "panel" | "focusRing"
35
35
 
36
- export type SpacingToken = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11" | "12" | "14" | "16" | "20" | "24" | "28" | "32" | "36" | "40" | "44" | "48" | "52" | "56" | "60" | "64" | "72" | "80" | "96" | "0.5" | "1.5" | "2.5" | "3.5" | "controlX" | "controlY" | "controlXSm" | "controlYSm" | "badgeX" | "badgeY" | "insetXSm" | "insetYSm" | "insetX" | "insetY" | "insetXLg" | "insetYLg" | "padSm" | "padMd" | "padLg" | "padXl" | "gapSm" | "gap" | "gapLg" | "accordionGap" | "accordionInsetX" | "accordionTriggerY" | "accordionTriggerMinH" | "accordionContentY" | "accordionContentB" | "-1" | "-2" | "-3" | "-4" | "-5" | "-6" | "-7" | "-8" | "-9" | "-10" | "-11" | "-12" | "-14" | "-16" | "-20" | "-24" | "-28" | "-32" | "-36" | "-40" | "-44" | "-48" | "-52" | "-56" | "-60" | "-64" | "-72" | "-80" | "-96" | "-0.5" | "-1.5" | "-2.5" | "-3.5" | "-controlX" | "-controlY" | "-controlXSm" | "-controlYSm" | "-badgeX" | "-badgeY" | "-insetXSm" | "-insetYSm" | "-insetX" | "-insetY" | "-insetXLg" | "-insetYLg" | "-padSm" | "-padMd" | "-padLg" | "-padXl" | "-gapSm" | "-gap" | "-gapLg" | "-accordionGap" | "-accordionInsetX" | "-accordionTriggerY" | "-accordionTriggerMinH" | "-accordionContentY" | "-accordionContentB"
36
+ export type SpacingToken = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11" | "12" | "14" | "16" | "20" | "24" | "28" | "32" | "36" | "40" | "44" | "48" | "52" | "56" | "60" | "64" | "72" | "80" | "96" | "0.5" | "1.5" | "2.5" | "3.5" | "controlX" | "controlY" | "controlXSm" | "controlYSm" | "controlMinHXs" | "controlMinHSm" | "controlMinHMd" | "controlMinHLg" | "badgeX" | "badgeY" | "insetXSm" | "insetYSm" | "insetX" | "insetY" | "insetXLg" | "insetYLg" | "padSm" | "padMd" | "padLg" | "padXl" | "gapSm" | "gap" | "gapLg" | "accordionGap" | "accordionInsetX" | "accordionTriggerY" | "accordionTriggerMinH" | "accordionContentY" | "accordionContentB" | "-1" | "-2" | "-3" | "-4" | "-5" | "-6" | "-7" | "-8" | "-9" | "-10" | "-11" | "-12" | "-14" | "-16" | "-20" | "-24" | "-28" | "-32" | "-36" | "-40" | "-44" | "-48" | "-52" | "-56" | "-60" | "-64" | "-72" | "-80" | "-96" | "-0.5" | "-1.5" | "-2.5" | "-3.5" | "-controlX" | "-controlY" | "-controlXSm" | "-controlYSm" | "-controlMinHXs" | "-controlMinHSm" | "-controlMinHMd" | "-controlMinHLg" | "-badgeX" | "-badgeY" | "-insetXSm" | "-insetYSm" | "-insetX" | "-insetY" | "-insetXLg" | "-insetYLg" | "-padSm" | "-padMd" | "-padLg" | "-padXl" | "-gapSm" | "-gap" | "-gapLg" | "-accordionGap" | "-accordionInsetX" | "-accordionTriggerY" | "-accordionTriggerMinH" | "-accordionContentY" | "-accordionContentB"
37
37
 
38
38
  export type BreakpointToken = "sm" | "md" | "lg" | "xl" | "2xl"
39
39
 
@@ -0,0 +1,42 @@
1
+ // src/machines/toast.ts
2
+ import { setup } from "xstate";
3
+ var toastMachine = setup({
4
+ types: {
5
+ context: {},
6
+ events: {},
7
+ input: {}
8
+ },
9
+ guards: {
10
+ hasDuration: ({ context }) => context.durationMs > 0
11
+ },
12
+ delays: {
13
+ VISIBLE_TIMEOUT: ({ context }) => context.durationMs
14
+ }
15
+ }).createMachine({
16
+ id: "toast",
17
+ context: ({ input }) => ({ durationMs: input.durationMs ?? 5e3 }),
18
+ initial: "hidden",
19
+ states: {
20
+ hidden: {
21
+ on: {
22
+ SHOW: "visible"
23
+ }
24
+ },
25
+ visible: {
26
+ on: {
27
+ DISMISS: "hidden",
28
+ TIMEOUT: "hidden"
29
+ },
30
+ after: {
31
+ VISIBLE_TIMEOUT: {
32
+ target: "hidden",
33
+ guard: "hasDuration"
34
+ }
35
+ }
36
+ }
37
+ }
38
+ });
39
+
40
+ export {
41
+ toastMachine
42
+ };
@@ -0,0 +1,52 @@
1
+ // src/machines/toggle.ts
2
+ import { assign, setup } from "xstate";
3
+ var toggleMachine = setup({
4
+ types: {
5
+ context: {},
6
+ events: {},
7
+ input: {}
8
+ },
9
+ guards: {
10
+ notDisabled: ({ context }) => !context.disabled
11
+ },
12
+ actions: {
13
+ flip: assign({
14
+ checked: ({ context }) => !context.checked
15
+ }),
16
+ setChecked: assign({
17
+ checked: ({ event }) => event.type === "SET_CHECKED" ? event.checked : false
18
+ })
19
+ }
20
+ }).createMachine({
21
+ id: "toggle",
22
+ context: ({ input }) => ({
23
+ checked: input.checked ?? false,
24
+ disabled: input.disabled ?? false
25
+ }),
26
+ initial: "interaction",
27
+ states: {
28
+ interaction: {
29
+ initial: "idle",
30
+ states: {
31
+ idle: {
32
+ on: {
33
+ POINTER_DOWN: { target: "pressed", guard: "notDisabled" },
34
+ TOGGLE: { actions: "flip", guard: "notDisabled" },
35
+ SET_CHECKED: { actions: "setChecked" }
36
+ }
37
+ },
38
+ pressed: {
39
+ on: {
40
+ /* Flip on TOGGLE (click/keyboard) only — pointer up is visual press state. */
41
+ POINTER_UP: "idle",
42
+ POINTER_LEAVE: "idle"
43
+ }
44
+ }
45
+ }
46
+ }
47
+ }
48
+ });
49
+
50
+ export {
51
+ toggleMachine
52
+ };