aeon-ui-engine 1.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 (430) hide show
  1. package/.changeset/README.md +23 -0
  2. package/.changeset/combobox-and-changesets.md +9 -0
  3. package/.changeset/config.json +30 -0
  4. package/.changeset/framework-adapters.md +12 -0
  5. package/.changeset/scene-3d.md +6 -0
  6. package/.changeset/scene-plane.md +8 -0
  7. package/.changeset/site-og.md +5 -0
  8. package/.cursor/rules/aeon-ui.mdc +22 -0
  9. package/ACCESSIBILITY.md +32 -0
  10. package/AGENTS.md +226 -0
  11. package/COMPONENTS.md +36 -0
  12. package/FRAMEWORKS.md +57 -0
  13. package/INTEGRATION.md +89 -0
  14. package/LICENSE +21 -0
  15. package/PHILOSOPHY.md +71 -0
  16. package/PUBLISHING.md +85 -0
  17. package/README.md +154 -0
  18. package/SCENE.md +113 -0
  19. package/STATES.md +243 -0
  20. package/apps/demo/index.html +31 -0
  21. package/apps/demo/og.config.mjs +15 -0
  22. package/apps/demo/package.json +41 -0
  23. package/apps/demo/public/favicon.svg +16 -0
  24. package/apps/demo/public/og.png +0 -0
  25. package/apps/demo/public/og.svg +35 -0
  26. package/apps/demo/scripts/generate-og-png.mjs +60 -0
  27. package/apps/demo/src/App.tsx +31 -0
  28. package/apps/demo/src/aeonDiagrams.ts +100 -0
  29. package/apps/demo/src/app.css +16 -0
  30. package/apps/demo/src/components/ActionCluster.tsx +20 -0
  31. package/apps/demo/src/components/AsyncMachineDemo.tsx +97 -0
  32. package/apps/demo/src/components/ButtonLifecycleDemo.tsx +63 -0
  33. package/apps/demo/src/components/CodeExample.tsx +7 -0
  34. package/apps/demo/src/components/ComboboxDemo.tsx +30 -0
  35. package/apps/demo/src/components/DiagramsSection.tsx +38 -0
  36. package/apps/demo/src/components/FieldStateDemo.tsx +51 -0
  37. package/apps/demo/src/components/GridMesh.tsx +8 -0
  38. package/apps/demo/src/components/HeroInstall.tsx +10 -0
  39. package/apps/demo/src/components/LandingFaq.tsx +29 -0
  40. package/apps/demo/src/components/LandingFooter.tsx +22 -0
  41. package/apps/demo/src/components/LandingHeader.tsx +60 -0
  42. package/apps/demo/src/components/LandingHero.tsx +55 -0
  43. package/apps/demo/src/components/LayersSection.tsx +51 -0
  44. package/apps/demo/src/components/MermaidDiagram.tsx +84 -0
  45. package/apps/demo/src/components/PhilosophySection.tsx +33 -0
  46. package/apps/demo/src/components/PlaygroundBlock.tsx +23 -0
  47. package/apps/demo/src/components/PlaygroundSection.tsx +204 -0
  48. package/apps/demo/src/components/SceneSection.tsx +157 -0
  49. package/apps/demo/src/components/ScrollRegionDemo.tsx +74 -0
  50. package/apps/demo/src/components/ThemeSwitcher.tsx +76 -0
  51. package/apps/demo/src/demo-layout.css +264 -0
  52. package/apps/demo/src/landing.css +1094 -0
  53. package/apps/demo/src/main.tsx +14 -0
  54. package/apps/demo/src/nav.ts +9 -0
  55. package/apps/demo/src/site.ts +347 -0
  56. package/apps/demo/tsconfig.json +17 -0
  57. package/apps/demo/vite-plugins/og-meta.ts +30 -0
  58. package/apps/demo/vite.config.ts +69 -0
  59. package/docs/API_PATTERNS.md +234 -0
  60. package/docs/ARCHITECTURE.md +125 -0
  61. package/docs/COMPONENT_CHECKLIST.md +103 -0
  62. package/docs/FILE_MAP.md +122 -0
  63. package/docs/GLOSSARY.md +125 -0
  64. package/docs/INDEX.md +53 -0
  65. package/docs/LAYOUT_COORDINATES.md +178 -0
  66. package/docs/MACHINES.md +166 -0
  67. package/docs/MIGRATION_FROM_ARK.md +295 -0
  68. package/docs/VITE_CONSUMER.md +114 -0
  69. package/package.json +25 -0
  70. package/packages/core/README.md +69 -0
  71. package/packages/core/package.json +37 -0
  72. package/packages/core/src/anatomy.ts +144 -0
  73. package/packages/core/src/attrs.ts +47 -0
  74. package/packages/core/src/index.ts +8 -0
  75. package/packages/core/src/layout.ts +176 -0
  76. package/packages/core/src/machine.test.ts +18 -0
  77. package/packages/core/src/machine.ts +15 -0
  78. package/packages/core/src/philosophy.ts +10 -0
  79. package/packages/core/src/scroll.ts +72 -0
  80. package/packages/core/src/theme.test.ts +14 -0
  81. package/packages/core/src/theme.ts +53 -0
  82. package/packages/core/src/types.ts +25 -0
  83. package/packages/core/theme-transition.css +58 -0
  84. package/packages/core/tsconfig.json +8 -0
  85. package/packages/core/vitest.config.ts +8 -0
  86. package/packages/geometry/README.md +7 -0
  87. package/packages/geometry/package.json +35 -0
  88. package/packages/geometry/src/index.ts +3 -0
  89. package/packages/geometry/src/patterns.ts +55 -0
  90. package/packages/geometry/src/scene-attrs.ts +11 -0
  91. package/packages/geometry/src/svg.ts +60 -0
  92. package/packages/geometry/tsconfig.json +8 -0
  93. package/packages/panda/README.md +66 -0
  94. package/packages/panda/package.json +40 -0
  95. package/packages/panda/panda.config.ts +229 -0
  96. package/packages/panda/scripts/emit-theme-runtime.ts +37 -0
  97. package/packages/panda/src/recipes/accordion.ts +95 -0
  98. package/packages/panda/src/recipes/async.ts +76 -0
  99. package/packages/panda/src/recipes/badge.ts +44 -0
  100. package/packages/panda/src/recipes/button-group.ts +33 -0
  101. package/packages/panda/src/recipes/button.ts +91 -0
  102. package/packages/panda/src/recipes/checkbox.ts +41 -0
  103. package/packages/panda/src/recipes/combobox.ts +121 -0
  104. package/packages/panda/src/recipes/dialog.ts +96 -0
  105. package/packages/panda/src/recipes/field-shared.ts +29 -0
  106. package/packages/panda/src/recipes/field.ts +72 -0
  107. package/packages/panda/src/recipes/floating.ts +170 -0
  108. package/packages/panda/src/recipes/index.ts +14 -0
  109. package/packages/panda/src/recipes/scroll-region.ts +55 -0
  110. package/packages/panda/src/recipes/select.ts +111 -0
  111. package/packages/panda/src/recipes/switch.ts +51 -0
  112. package/packages/panda/src/recipes/tabs.ts +50 -0
  113. package/packages/panda/src/theme/catalog-types.ts +24 -0
  114. package/packages/panda/src/theme/catalog.ts +73 -0
  115. package/packages/panda/src/theme/chrome.css +75 -0
  116. package/packages/panda/src/theme/global-theme-css.ts +42 -0
  117. package/packages/panda/src/theme/index.ts +5 -0
  118. package/packages/panda/src/theme/palette.ts +65 -0
  119. package/packages/panda/src/theme/scrollbars.css +96 -0
  120. package/packages/panda/src/theme/semantic-tokens.ts +17 -0
  121. package/packages/panda/src/theme/themes.config.ts +516 -0
  122. package/packages/panda/src/theme/tokens.ts +51 -0
  123. package/packages/panda/styled-system/css/conditions.mjs +36 -0
  124. package/packages/panda/styled-system/css/css.d.ts +22 -0
  125. package/packages/panda/styled-system/css/css.mjs +45 -0
  126. package/packages/panda/styled-system/css/cva.d.ts +6 -0
  127. package/packages/panda/styled-system/css/cva.mjs +87 -0
  128. package/packages/panda/styled-system/css/cx.d.ts +5 -0
  129. package/packages/panda/styled-system/css/cx.mjs +15 -0
  130. package/packages/panda/styled-system/css/index.d.ts +5 -0
  131. package/packages/panda/styled-system/css/index.mjs +4 -0
  132. package/packages/panda/styled-system/css/sva.d.ts +4 -0
  133. package/packages/panda/styled-system/css/sva.mjs +41 -0
  134. package/packages/panda/styled-system/helpers.mjs +339 -0
  135. package/packages/panda/styled-system/jsx/aspect-ratio.d.ts +10 -0
  136. package/packages/panda/styled-system/jsx/aspect-ratio.mjs +14 -0
  137. package/packages/panda/styled-system/jsx/bleed.d.ts +10 -0
  138. package/packages/panda/styled-system/jsx/bleed.mjs +14 -0
  139. package/packages/panda/styled-system/jsx/box.d.ts +10 -0
  140. package/packages/panda/styled-system/jsx/box.mjs +14 -0
  141. package/packages/panda/styled-system/jsx/center.d.ts +10 -0
  142. package/packages/panda/styled-system/jsx/center.mjs +14 -0
  143. package/packages/panda/styled-system/jsx/circle.d.ts +10 -0
  144. package/packages/panda/styled-system/jsx/circle.mjs +14 -0
  145. package/packages/panda/styled-system/jsx/container.d.ts +10 -0
  146. package/packages/panda/styled-system/jsx/container.mjs +14 -0
  147. package/packages/panda/styled-system/jsx/cq.d.ts +10 -0
  148. package/packages/panda/styled-system/jsx/cq.mjs +14 -0
  149. package/packages/panda/styled-system/jsx/divider.d.ts +10 -0
  150. package/packages/panda/styled-system/jsx/divider.mjs +14 -0
  151. package/packages/panda/styled-system/jsx/factory-helper.mjs +22 -0
  152. package/packages/panda/styled-system/jsx/factory.d.ts +3 -0
  153. package/packages/panda/styled-system/jsx/factory.mjs +80 -0
  154. package/packages/panda/styled-system/jsx/flex.d.ts +10 -0
  155. package/packages/panda/styled-system/jsx/flex.mjs +14 -0
  156. package/packages/panda/styled-system/jsx/float.d.ts +10 -0
  157. package/packages/panda/styled-system/jsx/float.mjs +14 -0
  158. package/packages/panda/styled-system/jsx/grid-item.d.ts +10 -0
  159. package/packages/panda/styled-system/jsx/grid-item.mjs +14 -0
  160. package/packages/panda/styled-system/jsx/grid.d.ts +10 -0
  161. package/packages/panda/styled-system/jsx/grid.mjs +14 -0
  162. package/packages/panda/styled-system/jsx/hstack.d.ts +10 -0
  163. package/packages/panda/styled-system/jsx/hstack.mjs +14 -0
  164. package/packages/panda/styled-system/jsx/index.d.ts +24 -0
  165. package/packages/panda/styled-system/jsx/index.mjs +22 -0
  166. package/packages/panda/styled-system/jsx/is-valid-prop.d.ts +11 -0
  167. package/packages/panda/styled-system/jsx/is-valid-prop.mjs +17 -0
  168. package/packages/panda/styled-system/jsx/link-overlay.d.ts +10 -0
  169. package/packages/panda/styled-system/jsx/link-overlay.mjs +14 -0
  170. package/packages/panda/styled-system/jsx/spacer.d.ts +10 -0
  171. package/packages/panda/styled-system/jsx/spacer.mjs +14 -0
  172. package/packages/panda/styled-system/jsx/square.d.ts +10 -0
  173. package/packages/panda/styled-system/jsx/square.mjs +14 -0
  174. package/packages/panda/styled-system/jsx/stack.d.ts +10 -0
  175. package/packages/panda/styled-system/jsx/stack.mjs +14 -0
  176. package/packages/panda/styled-system/jsx/visually-hidden.d.ts +10 -0
  177. package/packages/panda/styled-system/jsx/visually-hidden.mjs +14 -0
  178. package/packages/panda/styled-system/jsx/vstack.d.ts +10 -0
  179. package/packages/panda/styled-system/jsx/vstack.mjs +14 -0
  180. package/packages/panda/styled-system/jsx/wrap.d.ts +10 -0
  181. package/packages/panda/styled-system/jsx/wrap.mjs +14 -0
  182. package/packages/panda/styled-system/patterns/aspect-ratio.d.ts +21 -0
  183. package/packages/panda/styled-system/patterns/aspect-ratio.mjs +38 -0
  184. package/packages/panda/styled-system/patterns/bleed.d.ts +22 -0
  185. package/packages/panda/styled-system/patterns/bleed.mjs +24 -0
  186. package/packages/panda/styled-system/patterns/box.d.ts +21 -0
  187. package/packages/panda/styled-system/patterns/box.mjs +15 -0
  188. package/packages/panda/styled-system/patterns/center.d.ts +21 -0
  189. package/packages/panda/styled-system/patterns/center.mjs +21 -0
  190. package/packages/panda/styled-system/patterns/circle.d.ts +21 -0
  191. package/packages/panda/styled-system/patterns/circle.mjs +25 -0
  192. package/packages/panda/styled-system/patterns/container.d.ts +21 -0
  193. package/packages/panda/styled-system/patterns/container.mjs +21 -0
  194. package/packages/panda/styled-system/patterns/cq.d.ts +22 -0
  195. package/packages/panda/styled-system/patterns/cq.mjs +21 -0
  196. package/packages/panda/styled-system/patterns/divider.d.ts +23 -0
  197. package/packages/panda/styled-system/patterns/divider.mjs +25 -0
  198. package/packages/panda/styled-system/patterns/flex.d.ts +27 -0
  199. package/packages/panda/styled-system/patterns/flex.mjs +26 -0
  200. package/packages/panda/styled-system/patterns/float.d.ts +24 -0
  201. package/packages/panda/styled-system/patterns/float.mjs +52 -0
  202. package/packages/panda/styled-system/patterns/grid-item.d.ts +26 -0
  203. package/packages/panda/styled-system/patterns/grid-item.mjs +25 -0
  204. package/packages/panda/styled-system/patterns/grid.d.ts +25 -0
  205. package/packages/panda/styled-system/patterns/grid.mjs +27 -0
  206. package/packages/panda/styled-system/patterns/hstack.d.ts +22 -0
  207. package/packages/panda/styled-system/patterns/hstack.mjs +24 -0
  208. package/packages/panda/styled-system/patterns/index.d.ts +21 -0
  209. package/packages/panda/styled-system/patterns/index.mjs +20 -0
  210. package/packages/panda/styled-system/patterns/link-overlay.d.ts +21 -0
  211. package/packages/panda/styled-system/patterns/link-overlay.mjs +24 -0
  212. package/packages/panda/styled-system/patterns/spacer.d.ts +21 -0
  213. package/packages/panda/styled-system/patterns/spacer.mjs +21 -0
  214. package/packages/panda/styled-system/patterns/square.d.ts +21 -0
  215. package/packages/panda/styled-system/patterns/square.mjs +24 -0
  216. package/packages/panda/styled-system/patterns/stack.d.ts +24 -0
  217. package/packages/panda/styled-system/patterns/stack.mjs +24 -0
  218. package/packages/panda/styled-system/patterns/visually-hidden.d.ts +21 -0
  219. package/packages/panda/styled-system/patterns/visually-hidden.mjs +18 -0
  220. package/packages/panda/styled-system/patterns/vstack.d.ts +22 -0
  221. package/packages/panda/styled-system/patterns/vstack.mjs +24 -0
  222. package/packages/panda/styled-system/patterns/wrap.d.ts +25 -0
  223. package/packages/panda/styled-system/patterns/wrap.mjs +25 -0
  224. package/packages/panda/styled-system/recipes/aeon-accordion.d.ts +32 -0
  225. package/packages/panda/styled-system/recipes/aeon-accordion.mjs +48 -0
  226. package/packages/panda/styled-system/recipes/aeon-async.d.ts +32 -0
  227. package/packages/panda/styled-system/recipes/aeon-async.mjs +56 -0
  228. package/packages/panda/styled-system/recipes/aeon-badge.d.ts +31 -0
  229. package/packages/panda/styled-system/recipes/aeon-badge.mjs +32 -0
  230. package/packages/panda/styled-system/recipes/aeon-button-group.d.ts +39 -0
  231. package/packages/panda/styled-system/recipes/aeon-button-group.mjs +37 -0
  232. package/packages/panda/styled-system/recipes/aeon-button.d.ts +39 -0
  233. package/packages/panda/styled-system/recipes/aeon-button.mjs +39 -0
  234. package/packages/panda/styled-system/recipes/aeon-checkbox.d.ts +28 -0
  235. package/packages/panda/styled-system/recipes/aeon-checkbox.mjs +48 -0
  236. package/packages/panda/styled-system/recipes/aeon-combobox.d.ts +32 -0
  237. package/packages/panda/styled-system/recipes/aeon-combobox.mjs +52 -0
  238. package/packages/panda/styled-system/recipes/aeon-dialog.d.ts +28 -0
  239. package/packages/panda/styled-system/recipes/aeon-dialog.mjs +60 -0
  240. package/packages/panda/styled-system/recipes/aeon-field.d.ts +32 -0
  241. package/packages/panda/styled-system/recipes/aeon-field.mjs +52 -0
  242. package/packages/panda/styled-system/recipes/aeon-menu.d.ts +28 -0
  243. package/packages/panda/styled-system/recipes/aeon-menu.mjs +52 -0
  244. package/packages/panda/styled-system/recipes/aeon-popover.d.ts +28 -0
  245. package/packages/panda/styled-system/recipes/aeon-popover.mjs +52 -0
  246. package/packages/panda/styled-system/recipes/aeon-scroll.d.ts +43 -0
  247. package/packages/panda/styled-system/recipes/aeon-scroll.mjs +63 -0
  248. package/packages/panda/styled-system/recipes/aeon-select.d.ts +32 -0
  249. package/packages/panda/styled-system/recipes/aeon-select.mjs +56 -0
  250. package/packages/panda/styled-system/recipes/aeon-switch.d.ts +28 -0
  251. package/packages/panda/styled-system/recipes/aeon-switch.mjs +48 -0
  252. package/packages/panda/styled-system/recipes/aeon-tabs.d.ts +28 -0
  253. package/packages/panda/styled-system/recipes/aeon-tabs.mjs +48 -0
  254. package/packages/panda/styled-system/recipes/aeon-toast.d.ts +28 -0
  255. package/packages/panda/styled-system/recipes/aeon-toast.mjs +48 -0
  256. package/packages/panda/styled-system/recipes/aeon-tooltip.d.ts +28 -0
  257. package/packages/panda/styled-system/recipes/aeon-tooltip.mjs +48 -0
  258. package/packages/panda/styled-system/recipes/create-recipe.mjs +82 -0
  259. package/packages/panda/styled-system/recipes/index.d.ts +18 -0
  260. package/packages/panda/styled-system/recipes/index.mjs +17 -0
  261. package/packages/panda/styled-system/styles.css +2157 -0
  262. package/packages/panda/styled-system/tokens/index.d.ts +9 -0
  263. package/packages/panda/styled-system/tokens/index.mjs +2156 -0
  264. package/packages/panda/styled-system/tokens/tokens.d.ts +60 -0
  265. package/packages/panda/styled-system/types/composition.d.ts +164 -0
  266. package/packages/panda/styled-system/types/conditions.d.ts +322 -0
  267. package/packages/panda/styled-system/types/csstype.d.ts +21298 -0
  268. package/packages/panda/styled-system/types/global.d.ts +20 -0
  269. package/packages/panda/styled-system/types/index.d.ts +8 -0
  270. package/packages/panda/styled-system/types/jsx.d.ts +52 -0
  271. package/packages/panda/styled-system/types/parts.d.ts +8 -0
  272. package/packages/panda/styled-system/types/pattern.d.ts +78 -0
  273. package/packages/panda/styled-system/types/prop-type.d.ts +240 -0
  274. package/packages/panda/styled-system/types/recipe.d.ts +181 -0
  275. package/packages/panda/styled-system/types/selectors.d.ts +59 -0
  276. package/packages/panda/styled-system/types/static-css.d.ts +56 -0
  277. package/packages/panda/styled-system/types/style-props.d.ts +7491 -0
  278. package/packages/panda/styled-system/types/system-types.d.ts +193 -0
  279. package/packages/panda/theme-runtime.css +842 -0
  280. package/packages/panda/tsconfig.json +8 -0
  281. package/packages/primitives/README.md +54 -0
  282. package/packages/primitives/package.json +41 -0
  283. package/packages/primitives/src/__tests__/floating-surface.test.ts +29 -0
  284. package/packages/primitives/src/index.ts +9 -0
  285. package/packages/primitives/src/machines/accordion.ts +56 -0
  286. package/packages/primitives/src/machines/async.ts +108 -0
  287. package/packages/primitives/src/machines/button.ts +66 -0
  288. package/packages/primitives/src/machines/dialog.ts +61 -0
  289. package/packages/primitives/src/machines/field.ts +85 -0
  290. package/packages/primitives/src/machines/popover.ts +52 -0
  291. package/packages/primitives/src/machines/tabs.ts +46 -0
  292. package/packages/primitives/src/machines/toast.ts +48 -0
  293. package/packages/primitives/src/machines/toggle.ts +61 -0
  294. package/packages/primitives/tsconfig.json +8 -0
  295. package/packages/primitives/vitest.config.ts +8 -0
  296. package/packages/react/README.md +65 -0
  297. package/packages/react/package.json +52 -0
  298. package/packages/react/src/accordion/index.tsx +179 -0
  299. package/packages/react/src/async/actions.tsx +22 -0
  300. package/packages/react/src/async/context.tsx +54 -0
  301. package/packages/react/src/async/index.tsx +21 -0
  302. package/packages/react/src/async/legacy-region.tsx +38 -0
  303. package/packages/react/src/async/readout.tsx +34 -0
  304. package/packages/react/src/async/root.tsx +39 -0
  305. package/packages/react/src/async/track.tsx +59 -0
  306. package/packages/react/src/avatar/avatar.test.tsx +27 -0
  307. package/packages/react/src/avatar/index.tsx +122 -0
  308. package/packages/react/src/button/index.tsx +70 -0
  309. package/packages/react/src/checkbox/index.tsx +180 -0
  310. package/packages/react/src/combobox/index.tsx +430 -0
  311. package/packages/react/src/dialog/dialog.test.tsx +50 -0
  312. package/packages/react/src/dialog/index.tsx +275 -0
  313. package/packages/react/src/field/index.tsx +172 -0
  314. package/packages/react/src/hooks/use-aeon-machine.ts +10 -0
  315. package/packages/react/src/hooks/use-anchor-position.ts +33 -0
  316. package/packages/react/src/hooks/use-focus-trap.ts +51 -0
  317. package/packages/react/src/hooks/use-layout-mode.ts +22 -0
  318. package/packages/react/src/hooks/use-outside-click.ts +19 -0
  319. package/packages/react/src/hooks/use-portalled.ts +16 -0
  320. package/packages/react/src/hooks/use-scroll-lock.ts +13 -0
  321. package/packages/react/src/index.ts +18 -0
  322. package/packages/react/src/menu/index.tsx +195 -0
  323. package/packages/react/src/popover/index.tsx +191 -0
  324. package/packages/react/src/scroll/index.tsx +98 -0
  325. package/packages/react/src/scroll/use-scroll-state.ts +30 -0
  326. package/packages/react/src/select/index.tsx +372 -0
  327. package/packages/react/src/select/select.test.tsx +60 -0
  328. package/packages/react/src/switch/index.tsx +215 -0
  329. package/packages/react/src/tabs/index.tsx +140 -0
  330. package/packages/react/src/toast/context.tsx +28 -0
  331. package/packages/react/src/toast/index.tsx +20 -0
  332. package/packages/react/src/toast/primitives.tsx +129 -0
  333. package/packages/react/src/toast/provider.tsx +111 -0
  334. package/packages/react/src/toast/toast-item.tsx +32 -0
  335. package/packages/react/src/tooltip/index.tsx +191 -0
  336. package/packages/react/src/utils/merge-props.ts +24 -0
  337. package/packages/react/tsconfig.json +8 -0
  338. package/packages/react/vitest.config.ts +9 -0
  339. package/packages/react/vitest.setup.ts +5 -0
  340. package/packages/react-scene/README.md +11 -0
  341. package/packages/react-scene/package.json +47 -0
  342. package/packages/react-scene/scene-3d.css +37 -0
  343. package/packages/react-scene/scene-room.css +95 -0
  344. package/packages/react-scene/src/index.ts +20 -0
  345. package/packages/react-scene/src/procedural-grid.tsx +35 -0
  346. package/packages/react-scene/src/scene-layer.tsx +38 -0
  347. package/packages/react-scene/src/scene-plane.tsx +69 -0
  348. package/packages/react-scene/src/scene-room.tsx +81 -0
  349. package/packages/react-scene/src/scene-root.tsx +49 -0
  350. package/packages/react-scene/src/scene-slot.tsx +41 -0
  351. package/packages/react-scene/src/scene-stage.tsx +37 -0
  352. package/packages/react-scene/src/scene-surface.tsx +20 -0
  353. package/packages/react-scene/src/signal-bars.tsx +57 -0
  354. package/packages/react-scene/src/use-signal-visualizer.ts +103 -0
  355. package/packages/react-scene/tsconfig.json +8 -0
  356. package/packages/scene/README.md +5 -0
  357. package/packages/scene/package.json +32 -0
  358. package/packages/scene/src/index.ts +2 -0
  359. package/packages/scene/src/room.ts +40 -0
  360. package/packages/scene/src/transform.ts +60 -0
  361. package/packages/scene/tsconfig.json +8 -0
  362. package/packages/signal/README.md +9 -0
  363. package/packages/signal/package.json +32 -0
  364. package/packages/signal/src/analyser.ts +113 -0
  365. package/packages/signal/src/bands.ts +33 -0
  366. package/packages/signal/src/index.ts +3 -0
  367. package/packages/signal/src/motion.ts +80 -0
  368. package/packages/signal/tsconfig.json +8 -0
  369. package/packages/site/README.md +19 -0
  370. package/packages/site/package.json +32 -0
  371. package/packages/site/src/index.ts +8 -0
  372. package/packages/site/src/open-graph.ts +90 -0
  373. package/packages/site/tsconfig.json +8 -0
  374. package/packages/solid/README.md +30 -0
  375. package/packages/solid/package.json +42 -0
  376. package/packages/solid/src/hooks/use-aeon-machine.ts +10 -0
  377. package/packages/solid/src/index.ts +2 -0
  378. package/packages/solid/src/switch/index.tsx +191 -0
  379. package/packages/solid/src/utils/merge-props.ts +3 -0
  380. package/packages/solid/tsconfig.json +10 -0
  381. package/packages/surface/README.md +10 -0
  382. package/packages/surface/package.json +33 -0
  383. package/packages/surface/src/index.ts +1 -0
  384. package/packages/surface/src/materials.ts +14 -0
  385. package/packages/surface/surface.css +113 -0
  386. package/packages/surface/tsconfig.json +8 -0
  387. package/packages/svelte/README.md +45 -0
  388. package/packages/svelte/package.json +49 -0
  389. package/packages/svelte/src/Switch.svelte +86 -0
  390. package/packages/svelte/src/SwitchControl.svelte +45 -0
  391. package/packages/svelte/src/SwitchHiddenInput.svelte +12 -0
  392. package/packages/svelte/src/SwitchLabel.svelte +9 -0
  393. package/packages/svelte/src/SwitchThumb.svelte +16 -0
  394. package/packages/svelte/src/hooks/use-aeon-machine.ts +23 -0
  395. package/packages/svelte/src/index.ts +2 -0
  396. package/packages/svelte/src/switch-context.ts +13 -0
  397. package/packages/svelte/tsconfig.json +8 -0
  398. package/packages/ui/README.md +63 -0
  399. package/packages/ui/package.json +45 -0
  400. package/packages/ui/src/accordion.tsx +27 -0
  401. package/packages/ui/src/async.tsx +43 -0
  402. package/packages/ui/src/badge.tsx +18 -0
  403. package/packages/ui/src/button.tsx +38 -0
  404. package/packages/ui/src/checkbox.tsx +24 -0
  405. package/packages/ui/src/cn.ts +1 -0
  406. package/packages/ui/src/combobox.tsx +29 -0
  407. package/packages/ui/src/dialog.tsx +32 -0
  408. package/packages/ui/src/field.tsx +33 -0
  409. package/packages/ui/src/index.ts +17 -0
  410. package/packages/ui/src/menu.tsx +25 -0
  411. package/packages/ui/src/popover.tsx +22 -0
  412. package/packages/ui/src/scroll.tsx +51 -0
  413. package/packages/ui/src/select.tsx +33 -0
  414. package/packages/ui/src/styles.css +2 -0
  415. package/packages/ui/src/switch.tsx +22 -0
  416. package/packages/ui/src/tabs.tsx +22 -0
  417. package/packages/ui/src/toast.tsx +36 -0
  418. package/packages/ui/src/tooltip.tsx +19 -0
  419. package/packages/ui/tsconfig.json +12 -0
  420. package/packages/vue/README.md +40 -0
  421. package/packages/vue/package.json +42 -0
  422. package/packages/vue/src/hooks/use-aeon-machine.ts +10 -0
  423. package/packages/vue/src/index.ts +2 -0
  424. package/packages/vue/src/switch/index.ts +208 -0
  425. package/packages/vue/src/utils/part-props.ts +8 -0
  426. package/packages/vue/tsconfig.json +8 -0
  427. package/pnpm-workspace.yaml +3 -0
  428. package/scripts/ensure-headless-built.mjs +25 -0
  429. package/tsconfig.base.json +21 -0
  430. package/vercel.json +12 -0
@@ -0,0 +1,516 @@
1
+ /**
2
+ * Edit palettes here — one file, light + dark per mood.
3
+ * Run `pnpm codegen` in packages/panda after changes.
4
+ */
5
+ import type { AeonThemeConfigEntry } from './palette.js'
6
+
7
+ export const aeonThemesConfig = [
8
+ {
9
+ id: 'default',
10
+ label: 'Aeon',
11
+ description: 'Teal accent — balanced product UI',
12
+ dark: {
13
+ bg: '#0c0e12',
14
+ surface: '#141820',
15
+ surfaceRaised: '#1c2230',
16
+ border: '#2a3344',
17
+ text: '#e8ecf4',
18
+ muted: '#8b95a8',
19
+ accent: '#5eead4',
20
+ accentDim: '#2dd4bf33',
21
+ },
22
+ light: {
23
+ bg: '#f3f5f9',
24
+ surface: '#ffffff',
25
+ surfaceRaised: '#eef1f7',
26
+ border: '#d5dbe6',
27
+ text: '#12151c',
28
+ muted: '#5c6578',
29
+ accent: '#0d9488',
30
+ accentDim: '#0d94881f',
31
+ },
32
+ },
33
+ {
34
+ id: 'signal',
35
+ label: 'Signal',
36
+ description: 'Warm coral — energetic marketing',
37
+ dark: {
38
+ bg: '#0f0d0c',
39
+ surface: '#1a1614',
40
+ surfaceRaised: '#252019',
41
+ border: '#3d342c',
42
+ text: '#f5efe8',
43
+ muted: '#9a8f84',
44
+ accent: '#fb923c',
45
+ accentDim: '#fb923c2e',
46
+ },
47
+ light: {
48
+ bg: '#faf6f2',
49
+ surface: '#ffffff',
50
+ surfaceRaised: '#f5ede4',
51
+ border: '#e0d5c8',
52
+ text: '#1c1510',
53
+ muted: '#6b5f52',
54
+ accent: '#ea580c',
55
+ accentDim: '#ea580c1a',
56
+ },
57
+ },
58
+ {
59
+ id: 'dusk',
60
+ label: 'Dusk',
61
+ description: 'Violet — editorial, contemplative',
62
+ dark: {
63
+ bg: '#0b0a10',
64
+ surface: '#14121c',
65
+ surfaceRaised: '#1c1a28',
66
+ border: '#2e2a42',
67
+ text: '#ece8f4',
68
+ muted: '#918aa8',
69
+ accent: '#a78bfa',
70
+ accentDim: '#a78bfa33',
71
+ danger: '#f472b6',
72
+ dangerDim: '#f472b618',
73
+ },
74
+ light: {
75
+ bg: '#f6f4fa',
76
+ surface: '#ffffff',
77
+ surfaceRaised: '#eeeaf6',
78
+ border: '#d8d2e6',
79
+ text: '#16131f',
80
+ muted: '#5e576e',
81
+ accent: '#7c3aed',
82
+ accentDim: '#7c3aed1a',
83
+ danger: '#db2777',
84
+ dangerDim: '#db277714',
85
+ },
86
+ },
87
+ {
88
+ id: 'calm',
89
+ label: 'Calm',
90
+ description: 'Sage green — focused, low noise',
91
+ dark: {
92
+ bg: '#0a0f0c',
93
+ surface: '#121a15',
94
+ surfaceRaised: '#1a241c',
95
+ border: '#2a3d32',
96
+ text: '#e2ebe4',
97
+ muted: '#8a9d90',
98
+ accent: '#86efac',
99
+ accentDim: '#86efac2a',
100
+ },
101
+ light: {
102
+ bg: '#f2f6f3',
103
+ surface: '#ffffff',
104
+ surfaceRaised: '#e8f0ea',
105
+ border: '#c5d6cb',
106
+ text: '#142018',
107
+ muted: '#5a6f62',
108
+ accent: '#16a34a',
109
+ accentDim: '#16a34a1a',
110
+ },
111
+ },
112
+ {
113
+ id: 'ocean',
114
+ label: 'Ocean',
115
+ description: 'Deep blue — trust and clarity',
116
+ dark: {
117
+ bg: '#060c14',
118
+ surface: '#0e1824',
119
+ surfaceRaised: '#152433',
120
+ border: '#243548',
121
+ text: '#e4edf7',
122
+ muted: '#7f94ab',
123
+ accent: '#38bdf8',
124
+ accentDim: '#38bdf833',
125
+ },
126
+ light: {
127
+ bg: '#f0f6fc',
128
+ surface: '#ffffff',
129
+ surfaceRaised: '#e3eef9',
130
+ border: '#c5d4e8',
131
+ text: '#0f1c2e',
132
+ muted: '#526880',
133
+ accent: '#0284c7',
134
+ accentDim: '#0284c71a',
135
+ },
136
+ },
137
+ {
138
+ id: 'ember',
139
+ label: 'Ember',
140
+ description: 'Crimson heat — urgency and drama',
141
+ dark: {
142
+ bg: '#120808',
143
+ surface: '#1e1010',
144
+ surfaceRaised: '#2a1616',
145
+ border: '#4a2828',
146
+ text: '#f8e8e8',
147
+ muted: '#a88a8a',
148
+ accent: '#f87171',
149
+ accentDim: '#f8717130',
150
+ danger: '#fb7185',
151
+ },
152
+ light: {
153
+ bg: '#fdf5f5',
154
+ surface: '#ffffff',
155
+ surfaceRaised: '#faeaea',
156
+ border: '#e8caca',
157
+ text: '#1f1010',
158
+ muted: '#7a5555',
159
+ accent: '#dc2626',
160
+ accentDim: '#dc26261a',
161
+ },
162
+ },
163
+ {
164
+ id: 'frost',
165
+ label: 'Frost',
166
+ description: 'Icy cyan — crisp, technical',
167
+ dark: {
168
+ bg: '#080c10',
169
+ surface: '#101820',
170
+ surfaceRaised: '#182430',
171
+ border: '#2a3a4a',
172
+ text: '#e8f4fc',
173
+ muted: '#8aa4b8',
174
+ accent: '#67e8f9',
175
+ accentDim: '#67e8f92e',
176
+ },
177
+ light: {
178
+ bg: '#f4fafc',
179
+ surface: '#ffffff',
180
+ surfaceRaised: '#e6f4f8',
181
+ border: '#c8e0ea',
182
+ text: '#0c1820',
183
+ muted: '#5a7280',
184
+ accent: '#0891b2',
185
+ accentDim: '#0891b21a',
186
+ },
187
+ },
188
+ {
189
+ id: 'dawn',
190
+ label: 'Dawn',
191
+ description: 'Peach gold — optimistic mornings',
192
+ dark: {
193
+ bg: '#100c08',
194
+ surface: '#1c1610',
195
+ surfaceRaised: '#282018',
196
+ border: '#403528',
197
+ text: '#f5efe6',
198
+ muted: '#a89888',
199
+ accent: '#fcd34d',
200
+ accentDim: '#fcd34d33',
201
+ },
202
+ light: {
203
+ bg: '#fdfaf3',
204
+ surface: '#ffffff',
205
+ surfaceRaised: '#f8f0e0',
206
+ border: '#e8dcc4',
207
+ text: '#1c1408',
208
+ muted: '#7a6e58',
209
+ accent: '#d97706',
210
+ accentDim: '#d977061a',
211
+ },
212
+ },
213
+ {
214
+ id: 'forest',
215
+ label: 'Forest',
216
+ description: 'Earth green — grounded, natural',
217
+ dark: {
218
+ bg: '#0a0e08',
219
+ surface: '#141a10',
220
+ surfaceRaised: '#1e2818',
221
+ border: '#2e3a26',
222
+ text: '#e6ede0',
223
+ muted: '#8a9a7e',
224
+ accent: '#a3e635',
225
+ accentDim: '#a3e6352a',
226
+ },
227
+ light: {
228
+ bg: '#f4f6f0',
229
+ surface: '#ffffff',
230
+ surfaceRaised: '#e8ede0',
231
+ border: '#c8d4bc',
232
+ text: '#141a10',
233
+ muted: '#5a6a50',
234
+ accent: '#4d7c0f',
235
+ accentDim: '#4d7c0f1a',
236
+ },
237
+ },
238
+ {
239
+ id: 'noir',
240
+ label: 'Noir',
241
+ description: 'Monochrome — minimal contrast',
242
+ dark: {
243
+ bg: '#090909',
244
+ surface: '#141414',
245
+ surfaceRaised: '#1f1f1f',
246
+ border: '#333333',
247
+ text: '#f2f2f2',
248
+ muted: '#9a9a9a',
249
+ accent: '#e5e5e5',
250
+ accentDim: '#e5e5e528',
251
+ gridLine: 'rgba(255, 255, 255, 0.06)',
252
+ },
253
+ light: {
254
+ bg: '#f7f7f7',
255
+ surface: '#ffffff',
256
+ surfaceRaised: '#eeeeee',
257
+ border: '#d4d4d4',
258
+ text: '#111111',
259
+ muted: '#666666',
260
+ accent: '#171717',
261
+ accentDim: '#17171714',
262
+ gridLine: 'rgba(0, 0, 0, 0.06)',
263
+ },
264
+ },
265
+ {
266
+ id: 'berry',
267
+ label: 'Berry',
268
+ description: 'Raspberry rose — bold product marketing',
269
+ dark: {
270
+ bg: '#10080c',
271
+ surface: '#1a1016',
272
+ surfaceRaised: '#261820',
273
+ border: '#3f2834',
274
+ text: '#f8eef2',
275
+ muted: '#a88a96',
276
+ accent: '#f472b6',
277
+ accentDim: '#f472b633',
278
+ },
279
+ light: {
280
+ bg: '#fdf5f8',
281
+ surface: '#ffffff',
282
+ surfaceRaised: '#fae8f0',
283
+ border: '#e8c8d6',
284
+ text: '#1f1018',
285
+ muted: '#7a5568',
286
+ accent: '#db2777',
287
+ accentDim: '#db27771a',
288
+ },
289
+ },
290
+ {
291
+ id: 'slate',
292
+ label: 'Slate',
293
+ description: 'Cool gray-blue — dashboards and docs',
294
+ dark: {
295
+ bg: '#0c1014',
296
+ surface: '#151a22',
297
+ surfaceRaised: '#1e2630',
298
+ border: '#2e3848',
299
+ text: '#e6ebf2',
300
+ muted: '#8b96a8',
301
+ accent: '#94a3b8',
302
+ accentDim: '#94a3b82e',
303
+ },
304
+ light: {
305
+ bg: '#f1f4f8',
306
+ surface: '#ffffff',
307
+ surfaceRaised: '#e8ecf2',
308
+ border: '#cdd5e0',
309
+ text: '#111820',
310
+ muted: '#5a6578',
311
+ accent: '#475569',
312
+ accentDim: '#4755691a',
313
+ },
314
+ },
315
+ {
316
+ id: 'lavender',
317
+ label: 'Lavender',
318
+ description: 'Soft lilac — calm creative tools',
319
+ dark: {
320
+ bg: '#0e0c12',
321
+ surface: '#16141e',
322
+ surfaceRaised: '#201c2a',
323
+ border: '#322e42',
324
+ text: '#eeeaf6',
325
+ muted: '#9a92b0',
326
+ accent: '#c4b5fd',
327
+ accentDim: '#c4b5fd33',
328
+ },
329
+ light: {
330
+ bg: '#f7f5fc',
331
+ surface: '#ffffff',
332
+ surfaceRaised: '#ede8f8',
333
+ border: '#d6cee8',
334
+ text: '#18141f',
335
+ muted: '#6a6278',
336
+ accent: '#8b5cf6',
337
+ accentDim: '#8b5cf61a',
338
+ },
339
+ },
340
+ {
341
+ id: 'mint',
342
+ label: 'Mint',
343
+ description: 'Bright mint — fresh SaaS interfaces',
344
+ dark: {
345
+ bg: '#081210',
346
+ surface: '#101c18',
347
+ surfaceRaised: '#182820',
348
+ border: '#2a4036',
349
+ text: '#e4f6ee',
350
+ muted: '#88a898',
351
+ accent: '#34d399',
352
+ accentDim: '#34d3992e',
353
+ },
354
+ light: {
355
+ bg: '#f0faf5',
356
+ surface: '#ffffff',
357
+ surfaceRaised: '#e0f5ea',
358
+ border: '#b8e0cc',
359
+ text: '#0f1a14',
360
+ muted: '#5a7264',
361
+ accent: '#059669',
362
+ accentDim: '#0596691a',
363
+ },
364
+ },
365
+ {
366
+ id: 'sand',
367
+ label: 'Sand',
368
+ description: 'Warm stone — editorial and hospitality',
369
+ dark: {
370
+ bg: '#12100c',
371
+ surface: '#1c1a14',
372
+ surfaceRaised: '#28241c',
373
+ border: '#3d3828',
374
+ text: '#f0ebe2',
375
+ muted: '#a09888',
376
+ accent: '#d6b48a',
377
+ accentDim: '#d6b48a33',
378
+ },
379
+ light: {
380
+ bg: '#faf7f0',
381
+ surface: '#ffffff',
382
+ surfaceRaised: '#f2ebe0',
383
+ border: '#ddd4c4',
384
+ text: '#1c1810',
385
+ muted: '#7a7060',
386
+ accent: '#b45309',
387
+ accentDim: '#b453091a',
388
+ },
389
+ },
390
+ {
391
+ id: 'honey',
392
+ label: 'Honey',
393
+ description: 'Golden amber — warmth without glare',
394
+ dark: {
395
+ bg: '#100e08',
396
+ surface: '#1c1810',
397
+ surfaceRaised: '#282218',
398
+ border: '#403828',
399
+ text: '#f5f0e4',
400
+ muted: '#a89880',
401
+ accent: '#fbbf24',
402
+ accentDim: '#fbbf2433',
403
+ },
404
+ light: {
405
+ bg: '#fffbeb',
406
+ surface: '#ffffff',
407
+ surfaceRaised: '#fef3c7',
408
+ border: '#e8d8a8',
409
+ text: '#1c1608',
410
+ muted: '#7a6848',
411
+ accent: '#ca8a04',
412
+ accentDim: '#ca8a041a',
413
+ },
414
+ },
415
+ {
416
+ id: 'neon',
417
+ label: 'Neon',
418
+ description: 'Electric lime — dev tools and terminals',
419
+ dark: {
420
+ bg: '#060a06',
421
+ surface: '#0e140e',
422
+ surfaceRaised: '#141e14',
423
+ border: '#243024',
424
+ text: '#e8f8e8',
425
+ muted: '#88a888',
426
+ accent: '#a3e635',
427
+ accentDim: '#a3e6352e',
428
+ danger: '#facc15',
429
+ },
430
+ light: {
431
+ bg: '#f4faf0',
432
+ surface: '#ffffff',
433
+ surfaceRaised: '#e8f4dc',
434
+ border: '#c8dcc0',
435
+ text: '#101808',
436
+ muted: '#5a7050',
437
+ accent: '#65a30d',
438
+ accentDim: '#65a30d1a',
439
+ },
440
+ },
441
+ {
442
+ id: 'rose',
443
+ label: 'Rose',
444
+ description: 'Blush pink — lifestyle and wellness',
445
+ dark: {
446
+ bg: '#100c0e',
447
+ surface: '#1a1416',
448
+ surfaceRaised: '#261c20',
449
+ border: '#3e2c34',
450
+ text: '#f6ecee',
451
+ muted: '#a89098',
452
+ accent: '#fda4af',
453
+ accentDim: '#fda4af33',
454
+ },
455
+ light: {
456
+ bg: '#fff5f6',
457
+ surface: '#ffffff',
458
+ surfaceRaised: '#fce8ec',
459
+ border: '#e8ccd4',
460
+ text: '#1f1014',
461
+ muted: '#7a5862',
462
+ accent: '#e11d48',
463
+ accentDim: '#e11d481a',
464
+ },
465
+ },
466
+ {
467
+ id: 'midnight',
468
+ label: 'Midnight',
469
+ description: 'Indigo night — premium dark apps',
470
+ dark: {
471
+ bg: '#060818',
472
+ surface: '#0e1224',
473
+ surfaceRaised: '#161c34',
474
+ border: '#283050',
475
+ text: '#e8ecfa',
476
+ muted: '#8894b8',
477
+ accent: '#818cf8',
478
+ accentDim: '#818cf833',
479
+ },
480
+ light: {
481
+ bg: '#f2f4fc',
482
+ surface: '#ffffff',
483
+ surfaceRaised: '#e6eaf8',
484
+ border: '#c8d0e8',
485
+ text: '#0e1220',
486
+ muted: '#566080',
487
+ accent: '#4f46e5',
488
+ accentDim: '#4f46e51a',
489
+ },
490
+ },
491
+ {
492
+ id: 'copper',
493
+ label: 'Copper',
494
+ description: 'Burnished metal — craft and hardware',
495
+ dark: {
496
+ bg: '#0e0a08',
497
+ surface: '#181210',
498
+ surfaceRaised: '#241a14',
499
+ border: '#3c2c22',
500
+ text: '#f2e8e0',
501
+ muted: '#a09084',
502
+ accent: '#f59e0b',
503
+ accentDim: '#f59e0b33',
504
+ },
505
+ light: {
506
+ bg: '#faf6f2',
507
+ surface: '#ffffff',
508
+ surfaceRaised: '#f2e8dc',
509
+ border: '#dcc8b4',
510
+ text: '#1a1208',
511
+ muted: '#786858',
512
+ accent: '#b45309',
513
+ accentDim: '#b453091a',
514
+ },
515
+ },
516
+ ] as const satisfies readonly AeonThemeConfigEntry[]
@@ -0,0 +1,51 @@
1
+ import { defineTokens } from '@pandacss/dev'
2
+
3
+ export const tokens = defineTokens({
4
+ fonts: {
5
+ ui: { value: "'IBM Plex Sans', system-ui, sans-serif" },
6
+ mono: { value: "'IBM Plex Mono', ui-monospace, monospace" },
7
+ display: { value: "'Syne', system-ui, sans-serif" },
8
+ body: { value: "'Instrument Sans', system-ui, sans-serif" },
9
+ },
10
+ /* Aeon palette is set only via theme-runtime.css (html[data-aeon-theme][data-aeon-mode]). */
11
+ colors: {},
12
+ radii: {
13
+ sm: { value: '0.375rem' },
14
+ md: { value: '0.5rem' },
15
+ lg: { value: '0.625rem' },
16
+ siteLg: { value: '10px' },
17
+ },
18
+ shadows: {
19
+ panel: { value: '0 8px 32px #00000066' },
20
+ focusRing: { value: '0 0 0 2px #0c0e12, 0 0 0 4px #5eead4' },
21
+ },
22
+ spacing: {
23
+ /** Compact chrome — buttons, badges, selects (not panel insets). */
24
+ controlX: { value: '0.75rem' },
25
+ controlY: { value: '0.375rem' },
26
+ controlXSm: { value: '0.625rem' },
27
+ controlYSm: { value: '0.3125rem' },
28
+ badgeX: { value: '0.5rem' },
29
+ badgeY: { value: '0.125rem' },
30
+ insetXSm: { value: '1.125rem' },
31
+ insetYSm: { value: '0.75rem' },
32
+ insetX: { value: '1.5rem' },
33
+ insetY: { value: '0.875rem' },
34
+ insetXLg: { value: '1.75rem' },
35
+ insetYLg: { value: '1.125rem' },
36
+ padSm: { value: '1.25rem' },
37
+ padMd: { value: '1.625rem' },
38
+ padLg: { value: '2rem' },
39
+ padXl: { value: '2.5rem' },
40
+ gapSm: { value: '0.75rem' },
41
+ gap: { value: '1rem' },
42
+ gapLg: { value: '1.25rem' },
43
+ accordionGap: { value: '0.75rem' },
44
+ accordionInsetX: { value: '1.75rem' },
45
+ accordionTriggerY: { value: '1.375rem' },
46
+ accordionTriggerMinH: { value: '3.5rem' },
47
+ /** @deprecated Prefer padMd on itemContent — kept for legacy --aeon-* aliases */
48
+ accordionContentY: { value: '1rem' },
49
+ accordionContentB: { value: '1rem' },
50
+ },
51
+ })
@@ -0,0 +1,36 @@
1
+ import { withoutSpace } from '../helpers.mjs';
2
+
3
+ const conditionsStr = "_hover,_focus,_focusWithin,_focusVisible,_disabled,_active,_visited,_target,_readOnly,_readWrite,_empty,_checked,_enabled,_expanded,_highlighted,_complete,_incomplete,_dragging,_before,_after,_firstLetter,_firstLine,_marker,_selection,_file,_backdrop,_first,_last,_only,_even,_odd,_firstOfType,_lastOfType,_onlyOfType,_peerFocus,_peerHover,_peerActive,_peerFocusWithin,_peerFocusVisible,_peerDisabled,_peerChecked,_peerInvalid,_peerExpanded,_peerPlaceholderShown,_groupFocus,_groupHover,_groupActive,_groupFocusWithin,_groupFocusVisible,_groupDisabled,_groupChecked,_groupExpanded,_groupInvalid,_indeterminate,_required,_valid,_invalid,_autofill,_inRange,_outOfRange,_placeholder,_placeholderShown,_pressed,_selected,_grabbed,_underValue,_overValue,_atValue,_default,_optional,_open,_closed,_fullscreen,_loading,_hidden,_current,_currentPage,_currentStep,_today,_unavailable,_rangeStart,_rangeEnd,_now,_topmost,_motionReduce,_motionSafe,_print,_landscape,_portrait,_dark,_light,_osDark,_osLight,_highContrast,_lessContrast,_moreContrast,_ltr,_rtl,_scrollbar,_scrollbarThumb,_scrollbarTrack,_horizontal,_vertical,_icon,_starting,_aeonSelected,_aeonChecked,_aeonOpen,_aeonClosed,_aeonPending,_aeonSuccess,_aeonFailure,_aeonInvalid,sm,smOnly,smDown,md,mdOnly,mdDown,lg,lgOnly,lgDown,xl,xlOnly,xlDown,2xl,2xlOnly,2xlDown,smToMd,smToLg,smToXl,smTo2xl,mdToLg,mdToXl,mdTo2xl,lgToXl,lgTo2xl,xlTo2xl,@/xs,@/sm,@/md,@/lg,@/xl,@/2xl,@/3xl,@/4xl,@/5xl,@/6xl,@/7xl,@/8xl,base"
4
+ const conditions = new Set(conditionsStr.split(','))
5
+
6
+ const conditionRegex = /^@|&|&$/
7
+
8
+ export function isCondition(value){
9
+ return conditions.has(value) || conditionRegex.test(value)
10
+ }
11
+
12
+ const underscoreRegex = /^_/
13
+ const conditionsSelectorRegex = /&|@/
14
+
15
+ export function finalizeConditions(paths){
16
+ return paths.map((path) => {
17
+ if (conditions.has(path)){
18
+ return path.replace(underscoreRegex, '')
19
+ }
20
+
21
+ if (conditionsSelectorRegex.test(path)){
22
+ return `[${withoutSpace(path.trim())}]`
23
+ }
24
+
25
+ return path
26
+ })}
27
+
28
+ export function sortConditions(paths){
29
+ return paths.sort((a, b) => {
30
+ const aa = isCondition(a)
31
+ const bb = isCondition(b)
32
+ if (aa && !bb) return 1
33
+ if (!aa && bb) return -1
34
+ return 0
35
+ })
36
+ }
@@ -0,0 +1,22 @@
1
+ /* eslint-disable */
2
+ import type { SystemStyleObject } from '../types/index';
3
+
4
+ type Styles = SystemStyleObject | undefined | null | false
5
+
6
+ interface CssRawFunction {
7
+ (styles: Styles): SystemStyleObject
8
+ (styles: Styles[]): SystemStyleObject
9
+ (...styles: Array<Styles | Styles[]>): SystemStyleObject
10
+ (styles: Styles): SystemStyleObject
11
+ }
12
+
13
+ interface CssFunction {
14
+ (styles: Styles): string
15
+ (styles: Styles[]): string
16
+ (...styles: Array<Styles | Styles[]>): string
17
+ (styles: Styles): string
18
+
19
+ raw: CssRawFunction
20
+ }
21
+
22
+ export declare const css: CssFunction;
@@ -0,0 +1,45 @@
1
+ import { createCss, createMergeCss, hypenateProperty, withoutSpace } from '../helpers.mjs';
2
+ import { sortConditions, finalizeConditions } from './conditions.mjs';
3
+
4
+ const utilities = "aspectRatio:asp,boxDecorationBreak:bx-db,zIndex:z,boxSizing:bx-s,objectPosition:obj-p,objectFit:obj-f,overscrollBehavior:ovs-b,overscrollBehaviorX:ovs-bx,overscrollBehaviorY:ovs-by,position:pos/1,top:top,left:left,inset:inset,insetInline:inset-x/insetX,insetBlock:inset-y/insetY,insetBlockEnd:inset-be,insetBlockStart:inset-bs,insetInlineEnd:inset-e/insetEnd/end,insetInlineStart:inset-s/insetStart/start,right:right,bottom:bottom,float:float,visibility:vis,display:d,hideFrom:hide,hideBelow:show,flexBasis:flex-b,flex:flex,flexDirection:flex-d/flexDir,flexGrow:flex-g,flexShrink:flex-sh,gridTemplateColumns:grid-tc,gridTemplateRows:grid-tr,gridColumn:grid-c,gridRow:grid-r,gridColumnStart:grid-cs,gridColumnEnd:grid-ce,gridAutoFlow:grid-af,gridAutoColumns:grid-ac,gridAutoRows:grid-ar,gap:gap,gridGap:grid-g,gridRowGap:grid-rg,gridColumnGap:grid-cg,rowGap:rg,columnGap:cg,justifyContent:jc,alignContent:ac,alignItems:ai,alignSelf:as,padding:p/1,paddingLeft:pl/1,paddingRight:pr/1,paddingTop:pt/1,paddingBottom:pb/1,paddingBlock:py/1/paddingY,paddingBlockEnd:pbe,paddingBlockStart:pbs,paddingInline:px/paddingX/1,paddingInlineEnd:pe/1/paddingEnd,paddingInlineStart:ps/1/paddingStart,marginLeft:ml/1,marginRight:mr/1,marginTop:mt/1,marginBottom:mb/1,margin:m/1,marginBlock:my/1/marginY,marginBlockEnd:mbe,marginBlockStart:mbs,marginInline:mx/1/marginX,marginInlineEnd:me/1/marginEnd,marginInlineStart:ms/1/marginStart,spaceX:sx,spaceY:sy,outlineWidth:ring-w/ringWidth,outlineColor:ring-c/ringColor,outline:ring/1,outlineOffset:ring-o/ringOffset,divideX:dvd-x,divideY:dvd-y,divideColor:dvd-c,divideStyle:dvd-s,width:w/1,inlineSize:w-is,minWidth:min-w/minW,minInlineSize:min-w-is,maxWidth:max-w/maxW,maxInlineSize:max-w-is,height:h/1,blockSize:h-bs,minHeight:min-h/minH,minBlockSize:min-h-bs,maxHeight:max-h/maxH,maxBlockSize:max-b,color:c,fontFamily:ff,fontSize:fs,fontSizeAdjust:fs-a,fontPalette:fp,fontKerning:fk,fontFeatureSettings:ff-s,fontWeight:fw,fontSmoothing:fsmt,fontVariant:fv,fontVariantAlternates:fv-alt,fontVariantCaps:fv-caps,fontVariationSettings:fv-s,fontVariantNumeric:fv-num,letterSpacing:ls,lineHeight:lh,textAlign:ta,textDecoration:td,textDecorationColor:td-c,textEmphasisColor:te-c,textDecorationStyle:td-s,textDecorationThickness:td-t,textUnderlineOffset:tu-o,textTransform:tt,textIndent:ti,textShadow:tsh,textShadowColor:tsh-c/textShadowColor,textOverflow:tov,verticalAlign:va,wordBreak:wb,textWrap:tw,truncate:trunc,lineClamp:lc,listStyleType:li-t,listStylePosition:li-pos,listStyleImage:li-img,listStyle:li-s,backgroundPosition:bg-p/bgPosition,backgroundPositionX:bg-p-x/bgPositionX,backgroundPositionY:bg-p-y/bgPositionY,backgroundAttachment:bg-a/bgAttachment,backgroundClip:bg-cp/bgClip,background:bg/1,backgroundColor:bg-c/bgColor,backgroundOrigin:bg-o/bgOrigin,backgroundImage:bg-i/bgImage,backgroundRepeat:bg-r/bgRepeat,backgroundBlendMode:bg-bm/bgBlendMode,backgroundSize:bg-s/bgSize,backgroundGradient:bg-grad/bgGradient,textGradient:txt-grad,gradientFromPosition:grad-from-pos,gradientToPosition:grad-to-pos,gradientFrom:grad-from,gradientTo:grad-to,gradientVia:grad-via,gradientViaPosition:grad-via-pos,borderRadius:bdr/rounded,borderTopLeftRadius:bdr-tl/roundedTopLeft,borderTopRightRadius:bdr-tr/roundedTopRight,borderBottomRightRadius:bdr-br/roundedBottomRight,borderBottomLeftRadius:bdr-bl/roundedBottomLeft,borderTopRadius:bdr-t/roundedTop,borderRightRadius:bdr-r/roundedRight,borderBottomRadius:bdr-b/roundedBottom,borderLeftRadius:bdr-l/roundedLeft,borderStartStartRadius:bdr-ss/roundedStartStart,borderStartEndRadius:bdr-se/roundedStartEnd,borderStartRadius:bdr-s/roundedStart,borderEndStartRadius:bdr-es/roundedEndStart,borderEndEndRadius:bdr-ee/roundedEndEnd,borderEndRadius:bdr-e/roundedEnd,border:bd,borderWidth:bd-w,borderTopWidth:bd-t-w,borderLeftWidth:bd-l-w,borderRightWidth:bd-r-w,borderBottomWidth:bd-b-w,borderBlockStartWidth:bd-bs-w,borderBlockEndWidth:bd-be-w,borderColor:bd-c,borderInline:bd-x/borderX,borderInlineWidth:bd-x-w/borderXWidth,borderInlineColor:bd-x-c/borderXColor,borderBlock:bd-y/borderY,borderBlockWidth:bd-y-w/borderYWidth,borderBlockColor:bd-y-c/borderYColor,borderLeft:bd-l,borderLeftColor:bd-l-c,borderInlineStart:bd-s/borderStart,borderInlineStartWidth:bd-s-w/borderStartWidth,borderInlineStartColor:bd-s-c/borderStartColor,borderRight:bd-r,borderRightColor:bd-r-c,borderInlineEnd:bd-e/borderEnd,borderInlineEndWidth:bd-e-w/borderEndWidth,borderInlineEndColor:bd-e-c/borderEndColor,borderTop:bd-t,borderTopColor:bd-t-c,borderBottom:bd-b,borderBottomColor:bd-b-c,borderBlockEnd:bd-be,borderBlockEndColor:bd-be-c,borderBlockStart:bd-bs,borderBlockStartColor:bd-bs-c,opacity:op,boxShadow:bx-sh/shadow,boxShadowColor:bx-sh-c/shadowColor,mixBlendMode:mix-bm,filter:filter,brightness:brightness,contrast:contrast,grayscale:grayscale,hueRotate:hue-rotate,invert:invert,saturate:saturate,sepia:sepia,dropShadow:drop-shadow,blur:blur,backdropFilter:bkdp,backdropBlur:bkdp-blur,backdropBrightness:bkdp-brightness,backdropContrast:bkdp-contrast,backdropGrayscale:bkdp-grayscale,backdropHueRotate:bkdp-hue-rotate,backdropInvert:bkdp-invert,backdropOpacity:bkdp-opacity,backdropSaturate:bkdp-saturate,backdropSepia:bkdp-sepia,borderCollapse:bd-cl,borderSpacing:bd-sp,borderSpacingX:bd-sx,borderSpacingY:bd-sy,tableLayout:tbl,transitionTimingFunction:trs-tmf,transitionDelay:trs-dly,transitionDuration:trs-dur,transitionProperty:trs-prop,transition:trs,animation:anim,animationName:anim-n,animationTimingFunction:anim-tmf,animationDuration:anim-dur,animationDelay:anim-dly,animationPlayState:anim-ps,animationComposition:anim-comp,animationFillMode:anim-fm,animationDirection:anim-dir,animationIterationCount:anim-ic,animationRange:anim-r,animationState:anim-s,animationRangeStart:anim-rs,animationRangeEnd:anim-re,animationTimeline:anim-tl,transformOrigin:trf-o,transformBox:trf-b,transformStyle:trf-s,transform:trf,rotate:rotate,rotateX:rotate-x,rotateY:rotate-y,rotateZ:rotate-z,scale:scale,scaleX:scale-x,scaleY:scale-y,translate:translate,translateX:translate-x/x,translateY:translate-y/y,translateZ:translate-z/z,accentColor:ac-c,caretColor:ca-c,scrollBehavior:scr-bhv,scrollbar:scr-bar,scrollbarColor:scr-bar-c,scrollbarGutter:scr-bar-g,scrollbarWidth:scr-bar-w,scrollMargin:scr-m,scrollMarginLeft:scr-ml,scrollMarginRight:scr-mr,scrollMarginTop:scr-mt,scrollMarginBottom:scr-mb,scrollMarginBlock:scr-my/scrollMarginY,scrollMarginBlockEnd:scr-mbe,scrollMarginBlockStart:scr-mbt,scrollMarginInline:scr-mx/scrollMarginX,scrollMarginInlineEnd:scr-me,scrollMarginInlineStart:scr-ms,scrollPadding:scr-p,scrollPaddingBlock:scr-py/scrollPaddingY,scrollPaddingBlockStart:scr-pbs,scrollPaddingBlockEnd:scr-pbe,scrollPaddingInline:scr-px/scrollPaddingX,scrollPaddingInlineEnd:scr-pe,scrollPaddingInlineStart:scr-ps,scrollPaddingLeft:scr-pl,scrollPaddingRight:scr-pr,scrollPaddingTop:scr-pt,scrollPaddingBottom:scr-pb,scrollSnapAlign:scr-sa,scrollSnapStop:scrs-s,scrollSnapType:scrs-t,scrollSnapStrictness:scrs-strt,scrollSnapMargin:scrs-m,scrollSnapMarginTop:scrs-mt,scrollSnapMarginBottom:scrs-mb,scrollSnapMarginLeft:scrs-ml,scrollSnapMarginRight:scrs-mr,scrollSnapCoordinate:scrs-c,scrollSnapDestination:scrs-d,scrollSnapPointsX:scrs-px,scrollSnapPointsY:scrs-py,scrollSnapTypeX:scrs-tx,scrollSnapTypeY:scrs-ty,scrollTimeline:scrtl,scrollTimelineAxis:scrtl-a,scrollTimelineName:scrtl-n,touchAction:tch-a,userSelect:us,overflow:ov,overflowWrap:ov-wrap,overflowX:ov-x,overflowY:ov-y,overflowAnchor:ov-a,overflowBlock:ov-b,overflowInline:ov-i,overflowClipBox:ovcp-bx,overflowClipMargin:ovcp-m,overscrollBehaviorBlock:ovs-bb,overscrollBehaviorInline:ovs-bi,fill:fill,stroke:stk,strokeWidth:stk-w,strokeDasharray:stk-dsh,strokeDashoffset:stk-do,strokeLinecap:stk-lc,strokeLinejoin:stk-lj,strokeMiterlimit:stk-ml,strokeOpacity:stk-op,srOnly:sr,debug:debug,appearance:ap,backfaceVisibility:bfv,clipPath:cp-path,hyphens:hy,mask:msk,maskImage:msk-i,maskSize:msk-s,textSizeAdjust:txt-adj,container:cq,containerName:cq-n,containerType:cq-t,cursor:cursor,textStyle:textStyle"
5
+
6
+ const classNameByProp = new Map()
7
+ const shorthands = new Map()
8
+ utilities.split(',').forEach((utility) => {
9
+ const [prop, meta] = utility.split(':')
10
+ const [className, ...shorthandList] = meta.split('/')
11
+ classNameByProp.set(prop, className)
12
+ if (shorthandList.length) {
13
+ shorthandList.forEach((shorthand) => {
14
+ shorthands.set(shorthand === '1' ? className : shorthand, prop)
15
+ })
16
+ }
17
+ })
18
+
19
+ const resolveShorthand = (prop) => shorthands.get(prop) || prop
20
+
21
+ const context = {
22
+
23
+ conditions: {
24
+ shift: sortConditions,
25
+ finalize: finalizeConditions,
26
+ breakpoints: { keys: ["base","sm","md","lg","xl","2xl"] }
27
+ },
28
+ utility: {
29
+
30
+ transform: (prop, value) => {
31
+ const key = resolveShorthand(prop)
32
+ const propKey = classNameByProp.get(key) || hypenateProperty(key)
33
+ return { className: `${propKey}_${withoutSpace(value)}` }
34
+ },
35
+ hasShorthand: true,
36
+ toHash: (path, hashFn) => hashFn(path.join(":")),
37
+ resolveShorthand: resolveShorthand,
38
+ }
39
+ }
40
+
41
+ const cssFn = createCss(context)
42
+ export const css = (...styles) => cssFn(mergeCss(...styles))
43
+ css.raw = (...styles) => mergeCss(...styles)
44
+
45
+ export const { mergeCss, assignCss } = createMergeCss(context)
@@ -0,0 +1,6 @@
1
+ /* eslint-disable */
2
+ import type { RecipeCreatorFn } from '../types/recipe';
3
+
4
+ export declare const cva: RecipeCreatorFn
5
+
6
+ export type { RecipeVariant, RecipeVariantProps } from '../types/recipe';