aeon-ui-engine 1.0.2 → 1.1.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.
- package/CHANGELOG.md +28 -0
- package/CONSUMER.md +83 -0
- package/INTEGRATION.md +2 -0
- package/README.md +56 -14
- package/package.json +24 -1
- package/packages/cli/README.md +17 -0
- package/packages/cli/dist/bin.d.ts +1 -0
- package/packages/cli/dist/bin.js +35 -0
- package/packages/cli/dist/chunk-IW5NT2Z2.js +103 -0
- package/packages/cli/dist/index.d.ts +10 -0
- package/packages/cli/dist/index.js +6 -0
- package/packages/cli/node_modules/.bin/esbuild +21 -0
- package/packages/cli/node_modules/.bin/jiti +21 -0
- package/packages/cli/node_modules/.bin/tsc +21 -0
- package/packages/cli/node_modules/.bin/tsserver +21 -0
- package/packages/cli/node_modules/.bin/tsup +21 -0
- package/packages/cli/node_modules/.bin/tsup-node +21 -0
- package/packages/cli/node_modules/.bin/tsx +21 -0
- package/packages/cli/node_modules/.bin/vite +21 -0
- package/packages/cli/node_modules/.bin/vitest +21 -0
- package/packages/cli/package.json +50 -0
- package/packages/cli/src/bin.ts +34 -0
- package/packages/cli/src/index.ts +1 -0
- package/packages/cli/src/init.ts +107 -0
- package/packages/cli/tsconfig.json +10 -0
- package/packages/core/README.md +7 -1
- package/packages/core/dist/index.d.ts +425 -0
- package/packages/core/dist/index.js +635 -0
- package/packages/core/node_modules/.bin/esbuild +21 -0
- package/packages/core/node_modules/.bin/jiti +21 -0
- package/packages/core/node_modules/.bin/tsc +21 -0
- package/packages/core/node_modules/.bin/tsserver +21 -0
- package/packages/core/node_modules/.bin/tsup +21 -0
- package/packages/core/node_modules/.bin/tsup-node +21 -0
- package/packages/core/node_modules/.bin/tsx +21 -0
- package/packages/core/node_modules/.bin/vite +21 -0
- package/packages/core/node_modules/.bin/vitest +21 -0
- package/packages/core/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/packages/core/package.json +17 -5
- package/packages/core/src/anatomy.ts +196 -5
- package/packages/core/src/machine.test.ts +62 -1
- package/packages/core/src/machine.ts +93 -0
- package/packages/core/src/theme.ts +105 -0
- package/packages/geometry/dist/index.d.ts +50 -0
- package/packages/geometry/dist/index.js +88 -0
- package/packages/geometry/node_modules/.bin/esbuild +21 -0
- package/packages/geometry/node_modules/.bin/jiti +21 -0
- package/packages/geometry/node_modules/.bin/tsc +21 -0
- package/packages/geometry/node_modules/.bin/tsserver +21 -0
- package/packages/geometry/node_modules/.bin/tsup +21 -0
- package/packages/geometry/node_modules/.bin/tsup-node +21 -0
- package/packages/geometry/node_modules/.bin/tsx +21 -0
- package/packages/panda/aeon.css +7 -0
- package/packages/panda/package.json +1 -1
- package/packages/panda/panda.config.ts +58 -1
- package/packages/panda/src/recipes/app-shell.ts +137 -0
- package/packages/panda/src/recipes/avatar.ts +131 -0
- package/packages/panda/src/recipes/bar.ts +206 -0
- package/packages/panda/src/recipes/button-group.ts +12 -4
- package/packages/panda/src/recipes/button.ts +1 -0
- package/packages/panda/src/recipes/combobox.ts +2 -1
- package/packages/panda/src/recipes/composer.ts +81 -0
- package/packages/panda/src/recipes/content.ts +104 -0
- package/packages/panda/src/recipes/conversation.ts +106 -0
- package/packages/panda/src/recipes/entry.ts +217 -0
- package/packages/panda/src/recipes/field.ts +12 -2
- package/packages/panda/src/recipes/floating.ts +26 -13
- package/packages/panda/src/recipes/identity.ts +73 -0
- package/packages/panda/src/recipes/index.ts +15 -0
- package/packages/panda/src/recipes/list-row.ts +109 -0
- package/packages/panda/src/recipes/metric-strip.ts +80 -0
- package/packages/panda/src/recipes/nav.ts +155 -0
- package/packages/panda/src/recipes/panel.ts +156 -0
- package/packages/panda/src/recipes/pin-input.ts +3 -2
- package/packages/panda/src/recipes/profile-header.ts +120 -0
- package/packages/panda/src/recipes/select.ts +2 -1
- package/packages/panda/src/recipes/slider.ts +6 -4
- package/packages/panda/src/recipes/theme-switcher.ts +110 -0
- package/packages/panda/src/recipes/thread.ts +88 -0
- package/packages/panda/src/theme/catalog-types.ts +2 -0
- package/packages/panda/src/theme/catalog.ts +23 -0
- package/packages/panda/src/theme/chrome.css +2 -1
- package/packages/panda/src/theme/global-theme-css.ts +9 -0
- package/packages/panda/src/theme/omarchy.themes.ts +607 -0
- package/packages/panda/src/theme/palette.ts +3 -0
- package/packages/panda/src/theme/scrollbars.css +58 -21
- package/packages/panda/src/theme/themes.config.ts +39 -1
- package/packages/panda/styled-system/css/conditions.mjs +1 -1
- package/packages/panda/styled-system/css/css.mjs +1 -1
- package/packages/panda/styled-system/css/sva.mjs +9 -4
- package/packages/panda/styled-system/helpers.mjs +11 -22
- package/packages/panda/styled-system/jsx/create-style-context.d.ts +54 -0
- package/packages/panda/styled-system/jsx/create-style-context.mjs +121 -0
- package/packages/panda/styled-system/jsx/factory.mjs +14 -5
- package/packages/panda/styled-system/jsx/index.d.ts +1 -0
- package/packages/panda/styled-system/jsx/index.mjs +1 -0
- package/packages/panda/styled-system/jsx/is-valid-prop.mjs +2 -2
- package/packages/panda/styled-system/patterns/aspect-ratio.d.ts +0 -1
- package/packages/panda/styled-system/patterns/bleed.d.ts +0 -1
- package/packages/panda/styled-system/patterns/box.d.ts +0 -1
- package/packages/panda/styled-system/patterns/center.d.ts +0 -1
- package/packages/panda/styled-system/patterns/circle.d.ts +0 -1
- package/packages/panda/styled-system/patterns/container.d.ts +0 -1
- package/packages/panda/styled-system/patterns/cq.d.ts +0 -1
- package/packages/panda/styled-system/patterns/divider.d.ts +0 -1
- package/packages/panda/styled-system/patterns/flex.d.ts +0 -1
- package/packages/panda/styled-system/patterns/float.d.ts +0 -1
- package/packages/panda/styled-system/patterns/grid-item.d.ts +0 -1
- package/packages/panda/styled-system/patterns/grid.d.ts +0 -1
- package/packages/panda/styled-system/patterns/grid.mjs +1 -1
- package/packages/panda/styled-system/patterns/hstack.d.ts +0 -1
- package/packages/panda/styled-system/patterns/hstack.mjs +1 -1
- package/packages/panda/styled-system/patterns/link-overlay.d.ts +0 -1
- package/packages/panda/styled-system/patterns/spacer.d.ts +0 -1
- package/packages/panda/styled-system/patterns/spacer.mjs +6 -2
- package/packages/panda/styled-system/patterns/square.d.ts +0 -1
- package/packages/panda/styled-system/patterns/stack.d.ts +0 -1
- package/packages/panda/styled-system/patterns/stack.mjs +1 -1
- package/packages/panda/styled-system/patterns/visually-hidden.d.ts +0 -1
- package/packages/panda/styled-system/patterns/vstack.d.ts +0 -1
- package/packages/panda/styled-system/patterns/vstack.mjs +1 -1
- package/packages/panda/styled-system/patterns/wrap.d.ts +0 -1
- package/packages/panda/styled-system/patterns/wrap.mjs +1 -1
- package/packages/panda/styled-system/recipes/aeon-accordion.d.ts +4 -3
- package/packages/panda/styled-system/recipes/aeon-accordion.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-app-shell.d.ts +34 -0
- package/packages/panda/styled-system/recipes/aeon-app-shell.mjs +70 -0
- package/packages/panda/styled-system/recipes/aeon-async.d.ts +4 -3
- package/packages/panda/styled-system/recipes/aeon-async.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-avatar.d.ts +36 -0
- package/packages/panda/styled-system/recipes/aeon-avatar.mjs +57 -0
- package/packages/panda/styled-system/recipes/aeon-badge.d.ts +3 -0
- package/packages/panda/styled-system/recipes/aeon-bar.d.ts +40 -0
- package/packages/panda/styled-system/recipes/aeon-bar.mjs +77 -0
- package/packages/panda/styled-system/recipes/aeon-button-group.d.ts +3 -2
- package/packages/panda/styled-system/recipes/aeon-button.d.ts +3 -2
- package/packages/panda/styled-system/recipes/aeon-checkbox.d.ts +4 -1
- package/packages/panda/styled-system/recipes/aeon-checkbox.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-combobox.d.ts +4 -3
- package/packages/panda/styled-system/recipes/aeon-combobox.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-composer.d.ts +31 -0
- package/packages/panda/styled-system/recipes/aeon-composer.mjs +45 -0
- package/packages/panda/styled-system/recipes/aeon-content.d.ts +34 -0
- package/packages/panda/styled-system/recipes/aeon-content.mjs +70 -0
- package/packages/panda/styled-system/recipes/aeon-conversation.d.ts +31 -0
- package/packages/panda/styled-system/recipes/aeon-conversation.mjs +61 -0
- package/packages/panda/styled-system/recipes/aeon-dialog.d.ts +4 -1
- package/packages/panda/styled-system/recipes/aeon-dialog.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-entry.d.ts +38 -0
- package/packages/panda/styled-system/recipes/aeon-entry.mjs +100 -0
- package/packages/panda/styled-system/recipes/aeon-field.d.ts +4 -3
- package/packages/panda/styled-system/recipes/aeon-field.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-identity.d.ts +36 -0
- package/packages/panda/styled-system/recipes/aeon-identity.mjs +63 -0
- package/packages/panda/styled-system/recipes/aeon-list-row.d.ts +33 -0
- package/packages/panda/styled-system/recipes/aeon-list-row.mjs +49 -0
- package/packages/panda/styled-system/recipes/aeon-menu.d.ts +4 -1
- package/packages/panda/styled-system/recipes/aeon-menu.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-metric-strip.d.ts +36 -0
- package/packages/panda/styled-system/recipes/aeon-metric-strip.mjs +54 -0
- package/packages/panda/styled-system/recipes/aeon-nav.d.ts +38 -0
- package/packages/panda/styled-system/recipes/aeon-nav.mjs +69 -0
- package/packages/panda/styled-system/recipes/aeon-panel.d.ts +34 -0
- package/packages/panda/styled-system/recipes/aeon-panel.mjs +58 -0
- package/packages/panda/styled-system/recipes/aeon-pin-input.d.ts +4 -1
- package/packages/panda/styled-system/recipes/aeon-pin-input.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-popover.d.ts +4 -1
- package/packages/panda/styled-system/recipes/aeon-popover.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-profile-header.d.ts +36 -0
- package/packages/panda/styled-system/recipes/aeon-profile-header.mjs +62 -0
- package/packages/panda/styled-system/recipes/aeon-progress.d.ts +4 -1
- package/packages/panda/styled-system/recipes/aeon-progress.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-radio-group.d.ts +4 -1
- package/packages/panda/styled-system/recipes/aeon-radio-group.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-scroll.d.ts +4 -3
- package/packages/panda/styled-system/recipes/aeon-scroll.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-select.d.ts +4 -3
- package/packages/panda/styled-system/recipes/aeon-select.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-separator.d.ts +4 -1
- package/packages/panda/styled-system/recipes/aeon-separator.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-slider.d.ts +4 -1
- package/packages/panda/styled-system/recipes/aeon-slider.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-switch.d.ts +4 -1
- package/packages/panda/styled-system/recipes/aeon-switch.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-tabs.d.ts +4 -1
- package/packages/panda/styled-system/recipes/aeon-tabs.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-theme-switcher.d.ts +34 -0
- package/packages/panda/styled-system/recipes/aeon-theme-switcher.mjs +59 -0
- package/packages/panda/styled-system/recipes/aeon-thread.d.ts +31 -0
- package/packages/panda/styled-system/recipes/aeon-thread.mjs +53 -0
- package/packages/panda/styled-system/recipes/aeon-toast.d.ts +4 -1
- package/packages/panda/styled-system/recipes/aeon-toast.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-tooltip.d.ts +4 -1
- package/packages/panda/styled-system/recipes/aeon-tooltip.mjs +1 -0
- package/packages/panda/styled-system/recipes/index.d.ts +16 -1
- package/packages/panda/styled-system/recipes/index.mjs +16 -1
- package/packages/panda/styled-system/styles.css +2317 -450
- package/packages/panda/styled-system/tokens/index.mjs +43 -7
- package/packages/panda/styled-system/tokens/tokens.d.ts +5 -5
- package/packages/panda/styled-system/types/composition.d.ts +86 -23
- package/packages/panda/styled-system/types/conditions.d.ts +34 -10
- package/packages/panda/styled-system/types/csstype.d.ts +6405 -5133
- package/packages/panda/styled-system/types/jsx.d.ts +27 -10
- package/packages/panda/styled-system/types/pattern.d.ts +4 -4
- package/packages/panda/styled-system/types/prop-type.d.ts +11 -1
- package/packages/panda/styled-system/types/style-props.d.ts +2763 -2165
- package/packages/panda/styled-system/types/system-types.d.ts +38 -80
- package/packages/panda/theme-runtime.css +945 -0
- package/packages/primitives/dist/chunk-5S4DIRL4.js +42 -0
- package/packages/primitives/dist/chunk-H4KOEPYC.js +52 -0
- package/packages/primitives/dist/chunk-HONROWUG.js +41 -0
- package/packages/primitives/dist/chunk-J6JHKMVM.js +90 -0
- package/packages/primitives/dist/chunk-JBAG5E6W.js +46 -0
- package/packages/primitives/dist/chunk-LVNCD5F2.js +43 -0
- package/packages/primitives/dist/chunk-PB3LFHXU.js +72 -0
- package/packages/primitives/dist/chunk-R25CUHNF.js +46 -0
- package/packages/primitives/dist/chunk-RO2DMFN5.js +89 -0
- package/packages/primitives/dist/chunk-SZV6KGXN.js +49 -0
- package/packages/primitives/dist/chunk-V5D7LS4J.js +61 -0
- package/packages/primitives/dist/chunk-WVICCOQH.js +56 -0
- package/packages/primitives/dist/chunk-YBPNI2LI.js +70 -0
- package/packages/primitives/dist/chunk-ZMGRX64G.js +74 -0
- package/packages/primitives/dist/index.d.ts +15 -0
- package/packages/primitives/dist/index.js +82 -0
- package/packages/primitives/dist/machines/accordion.d.ts +34 -0
- package/packages/primitives/dist/machines/accordion.js +6 -0
- package/packages/primitives/dist/machines/app-shell.d.ts +57 -0
- package/packages/primitives/dist/machines/app-shell.js +8 -0
- package/packages/primitives/dist/machines/async.d.ts +111 -0
- package/packages/primitives/dist/machines/async.js +12 -0
- package/packages/primitives/dist/machines/button.d.ts +45 -0
- package/packages/primitives/dist/machines/button.js +8 -0
- package/packages/primitives/dist/machines/content-region.d.ts +72 -0
- package/packages/primitives/dist/machines/content-region.js +8 -0
- package/packages/primitives/dist/machines/dialog.d.ts +57 -0
- package/packages/primitives/dist/machines/dialog.js +6 -0
- package/packages/primitives/dist/machines/field.d.ts +72 -0
- package/packages/primitives/dist/machines/field.js +12 -0
- package/packages/primitives/dist/machines/panel.d.ts +50 -0
- package/packages/primitives/dist/machines/panel.js +6 -0
- package/packages/primitives/dist/machines/popover.d.ts +54 -0
- package/packages/primitives/dist/machines/popover.js +6 -0
- package/packages/primitives/dist/machines/slider.d.ts +71 -0
- package/packages/primitives/dist/machines/slider.js +10 -0
- package/packages/primitives/dist/machines/sticky-bar.d.ts +62 -0
- package/packages/primitives/dist/machines/sticky-bar.js +8 -0
- package/packages/primitives/dist/machines/tabs.d.ts +39 -0
- package/packages/primitives/dist/machines/tabs.js +6 -0
- package/packages/primitives/dist/machines/toast.d.ts +31 -0
- package/packages/primitives/dist/machines/toast.js +6 -0
- package/packages/primitives/dist/machines/toggle.d.ts +54 -0
- package/packages/primitives/dist/machines/toggle.js +6 -0
- package/packages/primitives/node_modules/.bin/esbuild +21 -0
- package/packages/primitives/node_modules/.bin/jiti +21 -0
- package/packages/primitives/node_modules/.bin/tsc +21 -0
- package/packages/primitives/node_modules/.bin/tsserver +21 -0
- package/packages/primitives/node_modules/.bin/tsup +21 -0
- package/packages/primitives/node_modules/.bin/tsup-node +21 -0
- package/packages/primitives/node_modules/.bin/tsx +21 -0
- package/packages/primitives/node_modules/.bin/vite +21 -0
- package/packages/primitives/node_modules/.bin/vitest +21 -0
- package/packages/primitives/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/packages/primitives/package.json +15 -5
- package/packages/primitives/scripts/xstate-introspect.mjs +35 -0
- package/packages/primitives/src/index.ts +4 -0
- package/packages/primitives/src/machines/app-shell.ts +63 -0
- package/packages/primitives/src/machines/content-region.ts +107 -0
- package/packages/primitives/src/machines/panel.ts +71 -0
- package/packages/primitives/src/machines/sticky-bar.ts +89 -0
- package/packages/react/dist/index.d.ts +951 -0
- package/packages/react/dist/index.js +4739 -0
- package/packages/react/node_modules/.bin/esbuild +21 -0
- package/packages/react/node_modules/.bin/jiti +21 -0
- package/packages/react/node_modules/.bin/tsc +21 -0
- package/packages/react/node_modules/.bin/tsserver +21 -0
- package/packages/react/node_modules/.bin/tsup +21 -0
- package/packages/react/node_modules/.bin/tsup-node +21 -0
- package/packages/react/node_modules/.bin/tsx +21 -0
- package/packages/react/node_modules/.bin/vite +21 -0
- package/packages/react/node_modules/.bin/vitest +21 -0
- package/packages/react/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/packages/react/package.json +18 -7
- package/packages/react/src/app-shell/index.tsx +154 -0
- package/packages/react/src/async/index.tsx +6 -1
- package/packages/react/src/async/map-content-state.ts +18 -0
- package/packages/react/src/avatar/index.tsx +19 -0
- package/packages/react/src/bar/index.tsx +101 -0
- package/packages/react/src/button/index.tsx +4 -2
- package/packages/react/src/composer/index.tsx +75 -0
- package/packages/react/src/content/index.tsx +149 -0
- package/packages/react/src/conversation/index.tsx +78 -0
- package/packages/react/src/entry/index.tsx +85 -0
- package/packages/react/src/field/index.tsx +31 -18
- package/packages/react/src/identity/index.tsx +110 -0
- package/packages/react/src/index.ts +15 -0
- package/packages/react/src/list-row/index.tsx +80 -0
- package/packages/react/src/metric-strip/index.tsx +88 -0
- package/packages/react/src/nav/index.tsx +155 -0
- package/packages/react/src/panel/index.tsx +267 -0
- package/packages/react/src/profile-header/index.tsx +91 -0
- package/packages/react/src/radio-group/index.tsx +19 -7
- package/packages/react/src/slider/index.tsx +3 -1
- package/packages/react/src/sticky-bar/index.tsx +135 -0
- package/packages/react/src/switch/index.tsx +7 -1
- package/packages/react/src/theme-switcher/index.tsx +227 -0
- package/packages/react/src/thread/index.tsx +95 -0
- package/packages/react/src/toast/primitives.tsx +2 -2
- package/packages/react/src/tooltip/tooltip.test.tsx +9 -1
- package/packages/react/tsconfig.json +2 -1
- package/packages/react-scene/dist/index.d.ts +121 -0
- package/packages/react-scene/dist/index.js +430 -0
- package/packages/react-scene/node_modules/.bin/jiti +21 -0
- package/packages/react-scene/node_modules/.bin/tsc +21 -0
- package/packages/react-scene/node_modules/.bin/tsserver +21 -0
- package/packages/react-scene/node_modules/.bin/tsup +21 -0
- package/packages/react-scene/node_modules/.bin/tsup-node +21 -0
- package/packages/react-scene/node_modules/.bin/tsx +21 -0
- package/packages/scene/dist/index.d.ts +46 -0
- package/packages/scene/dist/index.js +54 -0
- package/packages/scene/node_modules/.bin/jiti +21 -0
- package/packages/scene/node_modules/.bin/tsc +21 -0
- package/packages/scene/node_modules/.bin/tsserver +21 -0
- package/packages/scene/node_modules/.bin/tsup +21 -0
- package/packages/scene/node_modules/.bin/tsup-node +21 -0
- package/packages/scene/node_modules/.bin/tsx +21 -0
- package/packages/schemas/README.md +52 -0
- package/packages/schemas/dist/index.d.ts +287 -0
- package/packages/schemas/dist/index.js +701 -0
- package/packages/schemas/json/accordion.json +132 -0
- package/packages/schemas/json/async.json +161 -0
- package/packages/schemas/json/button.json +170 -0
- package/packages/schemas/json/catalog.json +2299 -0
- package/packages/schemas/json/checkbox.json +136 -0
- package/packages/schemas/json/combobox.json +130 -0
- package/packages/schemas/json/dialog.json +154 -0
- package/packages/schemas/json/field.json +171 -0
- package/packages/schemas/json/menu.json +138 -0
- package/packages/schemas/json/popover.json +133 -0
- package/packages/schemas/json/progress.json +137 -0
- package/packages/schemas/json/scroll.json +129 -0
- package/packages/schemas/json/select.json +140 -0
- package/packages/schemas/json/switch.json +136 -0
- package/packages/schemas/json/tabs.json +135 -0
- package/packages/schemas/json/toast.json +141 -0
- package/packages/schemas/json/tooltip.json +123 -0
- package/packages/schemas/node_modules/.bin/esbuild +21 -0
- package/packages/schemas/node_modules/.bin/jiti +21 -0
- package/packages/schemas/node_modules/.bin/tsc +21 -0
- package/packages/schemas/node_modules/.bin/tsserver +21 -0
- package/packages/schemas/node_modules/.bin/tsup +21 -0
- package/packages/schemas/node_modules/.bin/tsup-node +21 -0
- package/packages/schemas/node_modules/.bin/tsx +21 -0
- package/packages/schemas/node_modules/.bin/vite +21 -0
- package/packages/schemas/node_modules/.bin/vitest +21 -0
- package/packages/schemas/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/packages/schemas/package.json +56 -0
- package/packages/schemas/prompts/cursorrules.md +64 -0
- package/packages/schemas/prompts/statecharts.md +31 -0
- package/packages/schemas/prompts/system.md +30 -0
- package/packages/schemas/registry/catalog.json +54 -0
- package/packages/schemas/registry/components/accordion.json +132 -0
- package/packages/schemas/registry/components/async.json +161 -0
- package/packages/schemas/registry/components/button.json +170 -0
- package/packages/schemas/registry/components/checkbox.json +136 -0
- package/packages/schemas/registry/components/combobox.json +130 -0
- package/packages/schemas/registry/components/dialog.json +154 -0
- package/packages/schemas/registry/components/field.json +171 -0
- package/packages/schemas/registry/components/menu.json +138 -0
- package/packages/schemas/registry/components/popover.json +133 -0
- package/packages/schemas/registry/components/progress.json +137 -0
- package/packages/schemas/registry/components/scroll.json +129 -0
- package/packages/schemas/registry/components/select.json +140 -0
- package/packages/schemas/registry/components/switch.json +136 -0
- package/packages/schemas/registry/components/tabs.json +135 -0
- package/packages/schemas/registry/components/toast.json +141 -0
- package/packages/schemas/registry/components/tooltip.json +123 -0
- package/packages/schemas/registry/machines/async.json +219 -0
- package/packages/schemas/registry/machines/buttonLifecycle.json +224 -0
- package/packages/schemas/registry/machines/dialog.json +143 -0
- package/packages/schemas/registry/machines/field.json +275 -0
- package/packages/schemas/scripts/emit.ts +61 -0
- package/packages/schemas/src/aeon-to-schema.test.ts +70 -0
- package/packages/schemas/src/aeon-to-schema.ts +206 -0
- package/packages/schemas/src/agent-bridge.ts +82 -0
- package/packages/schemas/src/components.ts +307 -0
- package/packages/schemas/src/index.test.ts +25 -0
- package/packages/schemas/src/index.ts +25 -0
- package/packages/schemas/src/prompts.ts +121 -0
- package/packages/schemas/src/registry.ts +73 -0
- package/packages/schemas/src/schema-builder.ts +87 -0
- package/packages/schemas/tsconfig.json +9 -0
- package/packages/signal/dist/index.d.ts +54 -0
- package/packages/signal/dist/index.js +169 -0
- package/packages/signal/node_modules/.bin/jiti +21 -0
- package/packages/signal/node_modules/.bin/tsc +21 -0
- package/packages/signal/node_modules/.bin/tsserver +21 -0
- package/packages/signal/node_modules/.bin/tsup +21 -0
- package/packages/signal/node_modules/.bin/tsup-node +21 -0
- package/packages/signal/node_modules/.bin/tsx +21 -0
- package/packages/site/dist/index.d.ts +31 -0
- package/packages/site/dist/index.js +62 -0
- package/packages/site/node_modules/.bin/jiti +21 -0
- package/packages/site/node_modules/.bin/tsc +21 -0
- package/packages/site/node_modules/.bin/tsserver +21 -0
- package/packages/site/node_modules/.bin/tsup +21 -0
- package/packages/site/node_modules/.bin/tsup-node +21 -0
- package/packages/site/node_modules/.bin/tsx +21 -0
- package/packages/solid/dist/index.d.ts +30 -0
- package/packages/solid/dist/index.js +174 -0
- package/packages/solid/node_modules/.bin/jiti +21 -0
- package/packages/solid/node_modules/.bin/tsc +21 -0
- package/packages/solid/node_modules/.bin/tsserver +21 -0
- package/packages/solid/node_modules/.bin/tsup +21 -0
- package/packages/solid/node_modules/.bin/tsup-node +21 -0
- package/packages/solid/node_modules/.bin/tsx +21 -0
- package/packages/solid/package.json +2 -2
- package/packages/surface/dist/index.d.ts +8 -0
- package/packages/surface/dist/index.js +14 -0
- package/packages/surface/node_modules/.bin/jiti +21 -0
- package/packages/surface/node_modules/.bin/tsc +21 -0
- package/packages/surface/node_modules/.bin/tsserver +21 -0
- package/packages/surface/node_modules/.bin/tsup +21 -0
- package/packages/surface/node_modules/.bin/tsup-node +21 -0
- package/packages/surface/node_modules/.bin/tsx +21 -0
- package/packages/svelte/dist/index.d.ts +12 -0
- package/packages/svelte/dist/index.js +15 -0
- package/packages/svelte/node_modules/.bin/acorn +21 -0
- package/packages/svelte/node_modules/.bin/esbuild +21 -0
- package/packages/svelte/node_modules/.bin/jiti +21 -0
- package/packages/svelte/node_modules/.bin/svelte-check +21 -0
- package/packages/svelte/node_modules/.bin/tsc +21 -0
- package/packages/svelte/node_modules/.bin/tsserver +21 -0
- package/packages/svelte/node_modules/.bin/tsup +21 -0
- package/packages/svelte/node_modules/.bin/tsup-node +21 -0
- package/packages/svelte/node_modules/.bin/tsx +21 -0
- package/packages/svelte/node_modules/.bin/vite +21 -0
- package/packages/svelte/package.json +15 -5
- package/packages/ui/README.md +19 -6
- package/packages/ui/dist/index.d.ts +445 -0
- package/packages/ui/dist/index.js +980 -0
- package/packages/ui/node_modules/.bin/jiti +21 -0
- package/packages/ui/node_modules/.bin/tsc +21 -0
- package/packages/ui/node_modules/.bin/tsserver +21 -0
- package/packages/ui/node_modules/.bin/tsup +21 -0
- package/packages/ui/node_modules/.bin/tsup-node +21 -0
- package/packages/ui/node_modules/.bin/tsx +21 -0
- package/packages/ui/src/app-shell.tsx +44 -0
- package/packages/ui/src/async.tsx +2 -1
- package/packages/ui/src/avatar.tsx +35 -0
- package/packages/ui/src/bar.tsx +34 -0
- package/packages/ui/src/composer.tsx +27 -0
- package/packages/ui/src/content.tsx +43 -0
- package/packages/ui/src/conversation.tsx +43 -0
- package/packages/ui/src/entry.tsx +76 -0
- package/packages/ui/src/field.tsx +5 -0
- package/packages/ui/src/identity.tsx +35 -0
- package/packages/ui/src/index.ts +16 -0
- package/packages/ui/src/list-row.tsx +30 -0
- package/packages/ui/src/metric-strip.tsx +29 -0
- package/packages/ui/src/nav.tsx +46 -0
- package/packages/ui/src/panel.tsx +39 -0
- package/packages/ui/src/profile-header.tsx +35 -0
- package/packages/ui/src/sticky-bar.tsx +42 -0
- package/packages/ui/src/switch.tsx +17 -4
- package/packages/ui/src/theme-switcher.tsx +41 -0
- package/packages/ui/src/thread.tsx +35 -0
- package/packages/vue/dist/index.d.ts +71 -0
- package/packages/vue/dist/index.js +193 -0
- package/packages/vue/node_modules/.bin/jiti +21 -0
- package/packages/vue/node_modules/.bin/tsc +21 -0
- package/packages/vue/node_modules/.bin/tsserver +21 -0
- package/packages/vue/node_modules/.bin/tsup +21 -0
- package/packages/vue/node_modules/.bin/tsup-node +21 -0
- package/packages/vue/node_modules/.bin/tsx +21 -0
- package/packages/vue/package.json +3 -3
- package/scripts/vite-aliases.mjs +179 -0
- package/scripts/xstate-introspect.mjs +68 -0
- package/.changeset/README.md +0 -23
- package/.changeset/combobox-and-changesets.md +0 -9
- package/.changeset/config.json +0 -31
- package/.changeset/framework-adapters.md +0 -12
- package/.changeset/scene-3d.md +0 -6
- package/.changeset/scene-plane.md +0 -8
- package/.changeset/site-og.md +0 -5
- package/.cursor/rules/aeon-ui.mdc +0 -22
- package/ACCESSIBILITY.md +0 -32
- package/AGENTS.md +0 -226
- package/COMPONENTS.md +0 -41
- package/FRAMEWORKS.md +0 -57
- package/PHILOSOPHY.md +0 -71
- package/PUBLISHING.md +0 -105
- package/SCENE.md +0 -113
- package/STATES.md +0 -243
- package/apps/demo/index.html +0 -31
- package/apps/demo/og.config.mjs +0 -20
- package/apps/demo/package.json +0 -41
- package/apps/demo/public/favicon.svg +0 -16
- package/apps/demo/public/og-aeon-ui-engine.png +0 -0
- package/apps/demo/public/og.svg +0 -35
- package/apps/demo/scripts/generate-og-png.mjs +0 -62
- package/apps/demo/src/App.tsx +0 -31
- package/apps/demo/src/aeonDiagrams.ts +0 -42
- package/apps/demo/src/app.css +0 -16
- package/apps/demo/src/components/ActionCluster.tsx +0 -20
- package/apps/demo/src/components/AsyncMachineDemo.tsx +0 -97
- package/apps/demo/src/components/ButtonLifecycleDemo.tsx +0 -63
- package/apps/demo/src/components/CodeExample.tsx +0 -7
- package/apps/demo/src/components/ComboboxDemo.tsx +0 -30
- package/apps/demo/src/components/DiagramsSection.tsx +0 -37
- package/apps/demo/src/components/FieldStateDemo.tsx +0 -51
- package/apps/demo/src/components/GridMesh.tsx +0 -8
- package/apps/demo/src/components/HeroInstall.tsx +0 -13
- package/apps/demo/src/components/LandingFaq.tsx +0 -29
- package/apps/demo/src/components/LandingFooter.tsx +0 -30
- package/apps/demo/src/components/LandingHeader.tsx +0 -62
- package/apps/demo/src/components/LandingHero.tsx +0 -55
- package/apps/demo/src/components/LayersSection.tsx +0 -47
- package/apps/demo/src/components/MermaidDiagram.tsx +0 -86
- package/apps/demo/src/components/PhilosophySection.tsx +0 -31
- package/apps/demo/src/components/PlaygroundBlock.tsx +0 -18
- package/apps/demo/src/components/PlaygroundControlsDemo.tsx +0 -63
- package/apps/demo/src/components/PlaygroundSection.tsx +0 -120
- package/apps/demo/src/components/ScrollRegionDemo.tsx +0 -74
- package/apps/demo/src/components/ThemeSwitcher.tsx +0 -79
- package/apps/demo/src/demo-layout.css +0 -293
- package/apps/demo/src/landing.css +0 -1143
- package/apps/demo/src/main.tsx +0 -14
- package/apps/demo/src/nav.ts +0 -9
- package/apps/demo/src/site.ts +0 -218
- package/apps/demo/tsconfig.json +0 -17
- package/apps/demo/vite-plugins/og-meta.ts +0 -30
- package/apps/demo/vite.config.ts +0 -69
- package/docs/API_PATTERNS.md +0 -234
- package/docs/ARCHITECTURE.md +0 -125
- package/docs/COMPONENT_CHECKLIST.md +0 -103
- package/docs/FILE_MAP.md +0 -122
- package/docs/GLOSSARY.md +0 -125
- package/docs/INDEX.md +0 -53
- package/docs/LAYOUT_COORDINATES.md +0 -178
- package/docs/MACHINES.md +0 -171
- package/docs/MIGRATION_FROM_ARK.md +0 -295
- package/docs/VITE_CONSUMER.md +0 -114
- package/packages/react/src/async/legacy-region.tsx +0 -38
- package/pnpm-workspace.yaml +0 -3
- package/vercel.json +0 -12
package/apps/demo/package.json
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@aeon-ui/demo",
|
|
3
|
-
"private": true,
|
|
4
|
-
"type": "module",
|
|
5
|
-
"scripts": {
|
|
6
|
-
"dev": "vite",
|
|
7
|
-
"generate:og": "node scripts/generate-og-png.mjs",
|
|
8
|
-
"build": "pnpm --filter @aeon-ui/panda codegen && pnpm --filter @aeon-ui/site build && node scripts/generate-og-png.mjs && vite build",
|
|
9
|
-
"preview": "vite preview",
|
|
10
|
-
"typecheck": "tsc --noEmit"
|
|
11
|
-
},
|
|
12
|
-
"dependencies": {
|
|
13
|
-
"@aeon-ui/geometry": "workspace:*",
|
|
14
|
-
"@aeon-ui/panda": "workspace:*",
|
|
15
|
-
"@aeon-ui/primitives": "workspace:*",
|
|
16
|
-
"@aeon-ui/react": "workspace:*",
|
|
17
|
-
"@aeon-ui/react-scene": "workspace:*",
|
|
18
|
-
"@aeon-ui/signal": "workspace:*",
|
|
19
|
-
"@aeon-ui/surface": "workspace:*",
|
|
20
|
-
"@aeon-ui/ui": "workspace:*",
|
|
21
|
-
"@xstate/react": "^5.0.3",
|
|
22
|
-
"mermaid": "^11.15.0",
|
|
23
|
-
"react": "^19.1.0",
|
|
24
|
-
"react-dom": "^19.1.0",
|
|
25
|
-
"xstate": "^5.19.2"
|
|
26
|
-
},
|
|
27
|
-
"devDependencies": {
|
|
28
|
-
"@aeon-ui/site": "workspace:*",
|
|
29
|
-
"@fontsource/ibm-plex-mono": "^5.2.7",
|
|
30
|
-
"@fontsource/instrument-sans": "^5.2.8",
|
|
31
|
-
"@fontsource/syne": "^5.2.7",
|
|
32
|
-
"@resvg/resvg-js": "^2.6.2",
|
|
33
|
-
"@types/node": "^22.15.3",
|
|
34
|
-
"@types/react": "^19.1.2",
|
|
35
|
-
"@types/react-dom": "^19.1.2",
|
|
36
|
-
"@vitejs/plugin-react": "^4.4.1",
|
|
37
|
-
"typescript": "^5.8.3",
|
|
38
|
-
"vite": "^6.3.5",
|
|
39
|
-
"wawoff2": "^2.0.1"
|
|
40
|
-
}
|
|
41
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" role="img" aria-label="Aeon UI">
|
|
2
|
-
<rect width="32" height="32" rx="8" fill="#0a0c10"/>
|
|
3
|
-
<rect
|
|
4
|
-
x="6.5"
|
|
5
|
-
y="6.5"
|
|
6
|
-
width="15"
|
|
7
|
-
height="15"
|
|
8
|
-
rx="3.5"
|
|
9
|
-
fill="none"
|
|
10
|
-
stroke="#5eead4"
|
|
11
|
-
stroke-width="1.75"
|
|
12
|
-
opacity="0.9"
|
|
13
|
-
/>
|
|
14
|
-
<rect x="10.5" y="10.5" width="15" height="15" rx="3.5" fill="#e8ecf4"/>
|
|
15
|
-
<circle cx="21" cy="21" r="2.5" fill="#5eead4"/>
|
|
16
|
-
</svg>
|
|
Binary file
|
package/apps/demo/public/og.svg
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="630" viewBox="0 0 1200 630" role="img" aria-label="Aeon UI - Future-proof UI infrastructure">
|
|
2
|
-
<defs>
|
|
3
|
-
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
-
<stop offset="0%" stop-color="#121820"/>
|
|
5
|
-
<stop offset="55%" stop-color="#0c0e12"/>
|
|
6
|
-
<stop offset="100%" stop-color="#080a0e"/>
|
|
7
|
-
</linearGradient>
|
|
8
|
-
<linearGradient id="accent" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
9
|
-
<stop offset="0%" stop-color="#2dd4bf" stop-opacity="0"/>
|
|
10
|
-
<stop offset="45%" stop-color="#5eead4"/>
|
|
11
|
-
<stop offset="100%" stop-color="#2dd4bf" stop-opacity="0"/>
|
|
12
|
-
</linearGradient>
|
|
13
|
-
<pattern id="grid" width="48" height="48" patternUnits="userSpaceOnUse">
|
|
14
|
-
<path d="M 48 0 L 0 0 0 48" fill="none" stroke="#5eead4" stroke-width="0.5" opacity="0.08"/>
|
|
15
|
-
</pattern>
|
|
16
|
-
<radialGradient id="glow" cx="72%" cy="28%" r="45%">
|
|
17
|
-
<stop offset="0%" stop-color="#5eead4" stop-opacity="0.14"/>
|
|
18
|
-
<stop offset="100%" stop-color="#5eead4" stop-opacity="0"/>
|
|
19
|
-
</radialGradient>
|
|
20
|
-
</defs>
|
|
21
|
-
<rect width="1200" height="630" fill="url(#bg)"/>
|
|
22
|
-
<rect width="1200" height="630" fill="url(#grid)"/>
|
|
23
|
-
<rect width="1200" height="630" fill="url(#glow)"/>
|
|
24
|
-
|
|
25
|
-
<text x="80" y="268" fill="#f0f4e8" font-family="Syne" font-size="88" font-weight="700" letter-spacing="-0.04em">Aeon UI</text>
|
|
26
|
-
<text x="80" y="340" fill="#94a3b8" font-family="Instrument Sans" font-size="36" font-weight="500">Future-proof UI infrastructure</text>
|
|
27
|
-
<text x="80" y="400" fill="#64748b" font-family="IBM Plex Mono" font-size="22" font-weight="400">Statecharts / Headless primitives / Panda CSS</text>
|
|
28
|
-
|
|
29
|
-
<rect x="80" y="428" width="404" height="40" rx="6" fill="rgba(94, 234, 212, 0.12)" stroke="rgba(94, 234, 212, 0.35)" stroke-width="1"/>
|
|
30
|
-
<text x="104" y="454" fill="#5eead4" font-family="IBM Plex Mono" font-size="14" font-weight="500">{{NPM_INSTALL_COMMAND}}</text>
|
|
31
|
-
|
|
32
|
-
<text x="80" y="548" fill="#94a3b8" font-family="Instrument Sans" font-size="17" font-weight="500">A project by</text>
|
|
33
|
-
<text x="228" y="548" fill="#5eead4" font-family="Syne" font-size="22" font-weight="700">SpiderCorp</text>
|
|
34
|
-
<text x="80" y="578" fill="#64748b" font-family="IBM Plex Mono" font-size="14" font-weight="400">spidercorp.xyz</text>
|
|
35
|
-
</svg>
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'node:module'
|
|
2
|
-
import { mkdtempSync, readFileSync, writeFileSync } from 'node:fs'
|
|
3
|
-
import { tmpdir } from 'node:os'
|
|
4
|
-
import { dirname, join } from 'node:path'
|
|
5
|
-
import { fileURLToPath } from 'node:url'
|
|
6
|
-
import { Resvg } from '@resvg/resvg-js'
|
|
7
|
-
import wawoff2 from 'wawoff2'
|
|
8
|
-
import { og } from '../og.config.mjs'
|
|
9
|
-
|
|
10
|
-
const require = createRequire(import.meta.url)
|
|
11
|
-
const root = join(dirname(fileURLToPath(import.meta.url)), '..')
|
|
12
|
-
const svgPath = join(root, 'public', 'og.svg')
|
|
13
|
-
const outPath = join(root, 'public', og.imagePath.replace(/^\//, ''))
|
|
14
|
-
|
|
15
|
-
/** @type {Array<[slug: string, pkg: string, file: string]>} */
|
|
16
|
-
const FONT_SOURCES = [
|
|
17
|
-
['Syne-700', '@fontsource/syne', 'syne-latin-700-normal.woff2'],
|
|
18
|
-
['InstrumentSans-500', '@fontsource/instrument-sans', 'instrument-sans-latin-500-normal.woff2'],
|
|
19
|
-
['InstrumentSans-400', '@fontsource/instrument-sans', 'instrument-sans-latin-400-normal.woff2'],
|
|
20
|
-
['IBMPlexMono-500', '@fontsource/ibm-plex-mono', 'ibm-plex-mono-latin-500-normal.woff2'],
|
|
21
|
-
['IBMPlexMono-400', '@fontsource/ibm-plex-mono', 'ibm-plex-mono-latin-400-normal.woff2'],
|
|
22
|
-
]
|
|
23
|
-
|
|
24
|
-
function woff2Path(pkg, filename) {
|
|
25
|
-
return join(dirname(require.resolve(`${pkg}/package.json`)), 'files', filename)
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/** resvg `fontFiles` only loads SFNT/TTF — convert @fontsource WOFF2 first. */
|
|
29
|
-
async function loadFontFiles() {
|
|
30
|
-
const dir = mkdtempSync(join(tmpdir(), 'aeon-og-fonts-'))
|
|
31
|
-
const fontFiles = []
|
|
32
|
-
|
|
33
|
-
for (const [slug, pkg, file] of FONT_SOURCES) {
|
|
34
|
-
const woff2 = readFileSync(woff2Path(pkg, file))
|
|
35
|
-
const sfnt = await wawoff2.decompress(woff2)
|
|
36
|
-
const ttfPath = join(dir, `${slug}.ttf`)
|
|
37
|
-
writeFileSync(ttfPath, Buffer.from(sfnt))
|
|
38
|
-
fontFiles.push(ttfPath)
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return fontFiles
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
const svgTemplate = readFileSync(svgPath, 'utf8')
|
|
45
|
-
const svg = svgTemplate.replaceAll('{{NPM_INSTALL_COMMAND}}', og.npmInstallCommand)
|
|
46
|
-
const fontFiles = await loadFontFiles()
|
|
47
|
-
|
|
48
|
-
const resvg = new Resvg(svg, {
|
|
49
|
-
fitTo: { mode: 'width', value: 1200 },
|
|
50
|
-
font: {
|
|
51
|
-
loadSystemFonts: false,
|
|
52
|
-
fontFiles,
|
|
53
|
-
defaultFontFamily: 'Instrument Sans',
|
|
54
|
-
sansSerifFamily: 'Instrument Sans',
|
|
55
|
-
serifFamily: 'Syne',
|
|
56
|
-
monospaceFamily: 'IBM Plex Mono',
|
|
57
|
-
},
|
|
58
|
-
})
|
|
59
|
-
|
|
60
|
-
const png = resvg.render().asPng()
|
|
61
|
-
writeFileSync(outPath, png)
|
|
62
|
-
console.log(`Wrote ${outPath} (${png.length} bytes)`)
|
package/apps/demo/src/App.tsx
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { Toast } from '@aeon-ui/ui'
|
|
2
|
-
import { GridMesh } from './components/GridMesh.js'
|
|
3
|
-
import { LandingFaq } from './components/LandingFaq.js'
|
|
4
|
-
import { LandingFooter } from './components/LandingFooter.js'
|
|
5
|
-
import { LandingHeader } from './components/LandingHeader.js'
|
|
6
|
-
import { LandingHero } from './components/LandingHero.js'
|
|
7
|
-
import { DiagramsSection } from './components/DiagramsSection.js'
|
|
8
|
-
import { LayersSection } from './components/LayersSection.js'
|
|
9
|
-
import { PhilosophySection } from './components/PhilosophySection.js'
|
|
10
|
-
import { PlaygroundSection } from './components/PlaygroundSection.js'
|
|
11
|
-
|
|
12
|
-
export function App() {
|
|
13
|
-
return (
|
|
14
|
-
<Toast.Provider>
|
|
15
|
-
<GridMesh />
|
|
16
|
-
<div className="landing">
|
|
17
|
-
<LandingHeader />
|
|
18
|
-
<main>
|
|
19
|
-
<LandingHero />
|
|
20
|
-
<PhilosophySection />
|
|
21
|
-
<PlaygroundSection />
|
|
22
|
-
<LayersSection />
|
|
23
|
-
<DiagramsSection />
|
|
24
|
-
<LandingFaq />
|
|
25
|
-
</main>
|
|
26
|
-
<LandingFooter />
|
|
27
|
-
</div>
|
|
28
|
-
<Toast.Viewport placement="bottom-end" />
|
|
29
|
-
</Toast.Provider>
|
|
30
|
-
)
|
|
31
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/** Mermaid sources — kept in sync with aeon-ui-engine machines (STATES.md). */
|
|
2
|
-
|
|
3
|
-
export type AeonDiagram = {
|
|
4
|
-
id: string
|
|
5
|
-
title: string
|
|
6
|
-
caption: string
|
|
7
|
-
source: string
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
/** Model → snapshot → DOM. The north-star flow. */
|
|
11
|
-
export const aeonNorthStarDiagram = `flowchart LR
|
|
12
|
-
chart["Statechart"]
|
|
13
|
-
snap["Snapshot"]
|
|
14
|
-
ui["UI"]
|
|
15
|
-
chart --> snap --> ui`
|
|
16
|
-
|
|
17
|
-
/** Main async path — full machine has reset/re-fetch edges in STATES.md. */
|
|
18
|
-
export const asyncLifecycleDiagram = `stateDiagram-v2
|
|
19
|
-
direction LR
|
|
20
|
-
[*] --> idle
|
|
21
|
-
idle --> loading: fetch
|
|
22
|
-
loading --> success: ok
|
|
23
|
-
loading --> failure: err
|
|
24
|
-
loading --> empty: empty
|
|
25
|
-
success --> idle: reset
|
|
26
|
-
failure --> idle: reset
|
|
27
|
-
empty --> idle: reset`
|
|
28
|
-
|
|
29
|
-
export const aeonDiagrams: AeonDiagram[] = [
|
|
30
|
-
{
|
|
31
|
-
id: 'north-star',
|
|
32
|
-
title: 'Model → UI',
|
|
33
|
-
caption: 'Behavior is defined once; the interface is its projection — structure, copy, and state attributes in agreement.',
|
|
34
|
-
source: aeonNorthStarDiagram,
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
id: 'async',
|
|
38
|
-
title: 'Async region',
|
|
39
|
-
caption: 'A named lifecycle teams can reason about together — not an unnamed spinner behind a boolean.',
|
|
40
|
-
source: asyncLifecycleDiagram,
|
|
41
|
-
},
|
|
42
|
-
]
|
package/apps/demo/src/app.css
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Button, cn } from '@aeon-ui/ui'
|
|
2
|
-
import type { ReactNode } from 'react'
|
|
3
|
-
|
|
4
|
-
export interface ActionClusterProps {
|
|
5
|
-
children: ReactNode
|
|
6
|
-
className?: string
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
/** Machine console actions — spaced buttons by default. */
|
|
10
|
-
export function ActionCluster({ children, className }: ActionClusterProps) {
|
|
11
|
-
return (
|
|
12
|
-
<Button.Group
|
|
13
|
-
className={cn('machine-console__actions', className)}
|
|
14
|
-
data-aeon-scope="machine"
|
|
15
|
-
data-aeon-part="actions"
|
|
16
|
-
>
|
|
17
|
-
{children}
|
|
18
|
-
</Button.Group>
|
|
19
|
-
)
|
|
20
|
-
}
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import { useAsyncContext } from '@aeon-ui/react'
|
|
2
|
-
import { Async, Button } from '@aeon-ui/ui'
|
|
3
|
-
import { ActionCluster } from './ActionCluster.js'
|
|
4
|
-
|
|
5
|
-
export interface AsyncMachineDemoProps {
|
|
6
|
-
/** Playground shows failure and empty paths; hero always succeeds for a crisp preview. */
|
|
7
|
-
variant?: 'hero' | 'playground'
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
const readouts: Record<string, Record<'hero' | 'playground', string>> = {
|
|
11
|
-
idle: {
|
|
12
|
-
hero: 'Idle — ready to fetch',
|
|
13
|
-
playground: 'Idle — press Simulate fetch when ready',
|
|
14
|
-
},
|
|
15
|
-
loading: {
|
|
16
|
-
hero: 'Loading…',
|
|
17
|
-
playground: 'Loading…',
|
|
18
|
-
},
|
|
19
|
-
success: {
|
|
20
|
-
hero: 'Success',
|
|
21
|
-
playground: 'Success — data on context',
|
|
22
|
-
},
|
|
23
|
-
failure: {
|
|
24
|
-
hero: 'Failure',
|
|
25
|
-
playground: 'Failure — error on context',
|
|
26
|
-
},
|
|
27
|
-
empty: {
|
|
28
|
-
hero: 'Empty',
|
|
29
|
-
playground: 'Empty — resolved with no rows',
|
|
30
|
-
},
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function AsyncMachineControls({ variant }: { variant: 'hero' | 'playground' }) {
|
|
34
|
-
const { status, send } = useAsyncContext()
|
|
35
|
-
const runFetch = () => {
|
|
36
|
-
send({ type: 'FETCH' })
|
|
37
|
-
const delay = variant === 'hero' ? 700 : 900
|
|
38
|
-
setTimeout(() => {
|
|
39
|
-
if (variant === 'hero') {
|
|
40
|
-
send({ type: 'RESOLVE', data: 'Payload OK' })
|
|
41
|
-
return
|
|
42
|
-
}
|
|
43
|
-
const roll = Math.random()
|
|
44
|
-
if (roll < 0.25) {
|
|
45
|
-
send({ type: 'REJECT', error: 'Network unreachable' })
|
|
46
|
-
} else if (roll < 0.4) {
|
|
47
|
-
send({ type: 'RESOLVE', data: [] })
|
|
48
|
-
} else {
|
|
49
|
-
send({ type: 'RESOLVE', data: 'Aeon payload received' })
|
|
50
|
-
}
|
|
51
|
-
}, delay)
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
return (
|
|
55
|
-
<ActionCluster className="machine-console__actions">
|
|
56
|
-
<Button.Root size="sm" onClick={runFetch} disabled={status === 'loading'}>
|
|
57
|
-
{variant === 'hero' ? 'Run' : 'Simulate fetch'}
|
|
58
|
-
</Button.Root>
|
|
59
|
-
<Button.Root size="sm" variant="outline" onClick={() => send({ type: 'RESET' })}>
|
|
60
|
-
Reset
|
|
61
|
-
</Button.Root>
|
|
62
|
-
{variant === 'playground' && status === 'success' && (
|
|
63
|
-
<Button.Root size="sm" variant="ghost" onClick={() => send({ type: 'STALE' })}>
|
|
64
|
-
Mark stale
|
|
65
|
-
</Button.Root>
|
|
66
|
-
)}
|
|
67
|
-
</ActionCluster>
|
|
68
|
-
)
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
function AsyncMachineReadout({ variant }: { variant: 'hero' | 'playground' }) {
|
|
72
|
-
const { status, data, error, stale } = useAsyncContext()
|
|
73
|
-
const readout =
|
|
74
|
-
status === 'success'
|
|
75
|
-
? String(data ?? (variant === 'hero' ? 'Payload OK' : 'Aeon payload received'))
|
|
76
|
-
: status === 'failure'
|
|
77
|
-
? String(error ?? 'Network unreachable')
|
|
78
|
-
: (readouts[status]?.[variant] ?? readouts.idle[variant])
|
|
79
|
-
|
|
80
|
-
return (
|
|
81
|
-
<p className="live-status__text">
|
|
82
|
-
{stale && status === 'success' ? `${readout} (stale — refresh recommended)` : readout}
|
|
83
|
-
</p>
|
|
84
|
-
)
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
export function AsyncMachineDemo({ variant = 'playground' }: AsyncMachineDemoProps) {
|
|
88
|
-
return (
|
|
89
|
-
<Async.Root data-aeon-scope="machine" data-aeon-part="console">
|
|
90
|
-
<Async.Track />
|
|
91
|
-
<Async.Readout>
|
|
92
|
-
<AsyncMachineReadout variant={variant} />
|
|
93
|
-
</Async.Readout>
|
|
94
|
-
<AsyncMachineControls variant={variant} />
|
|
95
|
-
</Async.Root>
|
|
96
|
-
)
|
|
97
|
-
}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { buttonLifecycleMachine } from '@aeon-ui/primitives'
|
|
2
|
-
import { useAeonMachine } from '@aeon-ui/react'
|
|
3
|
-
import { Button } from '@aeon-ui/ui'
|
|
4
|
-
import { useEffect } from 'react'
|
|
5
|
-
|
|
6
|
-
export function ButtonLifecycleDemo() {
|
|
7
|
-
const [snapshot, send] = useAeonMachine(buttonLifecycleMachine)
|
|
8
|
-
const status = snapshot.value as string
|
|
9
|
-
|
|
10
|
-
useEffect(() => {
|
|
11
|
-
if (status !== 'success') return
|
|
12
|
-
const t = setTimeout(() => send({ type: 'RESET' }), 1400)
|
|
13
|
-
return () => clearTimeout(t)
|
|
14
|
-
}, [status, send])
|
|
15
|
-
|
|
16
|
-
const label =
|
|
17
|
-
status === 'pending'
|
|
18
|
-
? 'Submitting…'
|
|
19
|
-
: status === 'success'
|
|
20
|
-
? 'Saved'
|
|
21
|
-
: status === 'failure'
|
|
22
|
-
? 'Try again'
|
|
23
|
-
: 'Submit'
|
|
24
|
-
|
|
25
|
-
return (
|
|
26
|
-
<div className="demo-stack demo-stack--tight" data-aeon-scope="demo" data-aeon-part="button-lifecycle">
|
|
27
|
-
<Button.Group>
|
|
28
|
-
<Button.Root
|
|
29
|
-
status={
|
|
30
|
-
status === 'disabled'
|
|
31
|
-
? 'disabled'
|
|
32
|
-
: (status as 'idle' | 'pending' | 'success' | 'failure')
|
|
33
|
-
}
|
|
34
|
-
disabled={status === 'disabled'}
|
|
35
|
-
onClick={() => {
|
|
36
|
-
if (status === 'failure') {
|
|
37
|
-
send({ type: 'RESET' })
|
|
38
|
-
return
|
|
39
|
-
}
|
|
40
|
-
if (status === 'idle') {
|
|
41
|
-
send({ type: 'PRESS' })
|
|
42
|
-
setTimeout(() => {
|
|
43
|
-
if (Math.random() > 0.3) send({ type: 'SUCCEED' })
|
|
44
|
-
else send({ type: 'FAIL' })
|
|
45
|
-
}, 900)
|
|
46
|
-
}
|
|
47
|
-
}}
|
|
48
|
-
>
|
|
49
|
-
{label}
|
|
50
|
-
</Button.Root>
|
|
51
|
-
<Button.Root
|
|
52
|
-
variant="outline"
|
|
53
|
-
onClick={() => send({ type: status === 'disabled' ? 'ENABLE' : 'DISABLE' })}
|
|
54
|
-
>
|
|
55
|
-
{status === 'disabled' ? 'Enable' : 'Disable'}
|
|
56
|
-
</Button.Root>
|
|
57
|
-
</Button.Group>
|
|
58
|
-
<p className="playground__block-sub" style={{ marginBottom: 0 }}>
|
|
59
|
-
Active state: <strong>{status}</strong>
|
|
60
|
-
</p>
|
|
61
|
-
</div>
|
|
62
|
-
)
|
|
63
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { Combobox } from '@aeon-ui/ui'
|
|
2
|
-
import { useState } from 'react'
|
|
3
|
-
|
|
4
|
-
const FRUITS = [
|
|
5
|
-
{ value: 'apple', label: 'Apple' },
|
|
6
|
-
{ value: 'banana', label: 'Banana' },
|
|
7
|
-
{ value: 'cherry', label: 'Cherry' },
|
|
8
|
-
{ value: 'durian', label: 'Durian' },
|
|
9
|
-
{ value: 'elderberry', label: 'Elderberry' },
|
|
10
|
-
{ value: 'fig', label: 'Fig' },
|
|
11
|
-
{ value: 'grape', label: 'Grape' },
|
|
12
|
-
] as const
|
|
13
|
-
|
|
14
|
-
export function ComboboxDemo() {
|
|
15
|
-
const [value, setValue] = useState<string>('apple')
|
|
16
|
-
|
|
17
|
-
return (
|
|
18
|
-
<Combobox.Root value={value} onValueChange={setValue} className="demo-combobox">
|
|
19
|
-
<Combobox.Input placeholder="Search fruit…" aria-label="Fruit" />
|
|
20
|
-
<Combobox.Content>
|
|
21
|
-
{FRUITS.map((f) => (
|
|
22
|
-
<Combobox.Item key={f.value} value={f.value} textValue={f.label}>
|
|
23
|
-
{f.label}
|
|
24
|
-
</Combobox.Item>
|
|
25
|
-
))}
|
|
26
|
-
<Combobox.Empty>No matching fruit</Combobox.Empty>
|
|
27
|
-
</Combobox.Content>
|
|
28
|
-
</Combobox.Root>
|
|
29
|
-
)
|
|
30
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { aeonDiagrams } from '../aeonDiagrams.js'
|
|
2
|
-
import { site } from '../site.js'
|
|
3
|
-
import { MermaidDiagram } from './MermaidDiagram.js'
|
|
4
|
-
|
|
5
|
-
export function DiagramsSection() {
|
|
6
|
-
return (
|
|
7
|
-
<section id="diagrams" className="section">
|
|
8
|
-
<div className="container">
|
|
9
|
-
<header className="section-header">
|
|
10
|
-
<p className="section-label">{site.diagramsLabel}</p>
|
|
11
|
-
<h2 className="section-title">{site.diagramsTitle}</h2>
|
|
12
|
-
<p className="section-lead">{site.diagramsLead}</p>
|
|
13
|
-
</header>
|
|
14
|
-
|
|
15
|
-
<div className="diagrams__grid">
|
|
16
|
-
{aeonDiagrams.map((diagram) => (
|
|
17
|
-
<article key={diagram.id} className="panel diagram-card" data-aeon-scope="diagrams">
|
|
18
|
-
<header className="diagram-card__head">
|
|
19
|
-
<h3>{diagram.title}</h3>
|
|
20
|
-
<p>{diagram.caption}</p>
|
|
21
|
-
</header>
|
|
22
|
-
<MermaidDiagram source={diagram.source} title={diagram.title} />
|
|
23
|
-
</article>
|
|
24
|
-
))}
|
|
25
|
-
</div>
|
|
26
|
-
|
|
27
|
-
<p className="diagrams__footnote">
|
|
28
|
-
Full machine definitions in{' '}
|
|
29
|
-
<a href={site.statesDocUrl} target="_blank" rel="noreferrer">
|
|
30
|
-
STATES.md
|
|
31
|
-
</a>
|
|
32
|
-
.
|
|
33
|
-
</p>
|
|
34
|
-
</div>
|
|
35
|
-
</section>
|
|
36
|
-
)
|
|
37
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { useFieldContext } from '@aeon-ui/react'
|
|
2
|
-
import { Button, Field } from '@aeon-ui/ui'
|
|
3
|
-
|
|
4
|
-
function FieldSnapshot() {
|
|
5
|
-
const { stateAttr } = useFieldContext()
|
|
6
|
-
return (
|
|
7
|
-
<p className="playground__block-sub" style={{ marginBottom: 0 }}>
|
|
8
|
-
<code>{stateAttr}</code>
|
|
9
|
-
</p>
|
|
10
|
-
)
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
function FieldActions() {
|
|
14
|
-
const { send } = useFieldContext()
|
|
15
|
-
|
|
16
|
-
return (
|
|
17
|
-
<Button.Group>
|
|
18
|
-
<Button.Root variant="outline" onClick={() => send({ type: 'RESET' })}>
|
|
19
|
-
Reset
|
|
20
|
-
</Button.Root>
|
|
21
|
-
<Button.Root
|
|
22
|
-
onClick={() => {
|
|
23
|
-
send({ type: 'SUBMIT' })
|
|
24
|
-
setTimeout(() => send({ type: 'SUBMIT_DONE' }), 800)
|
|
25
|
-
}}
|
|
26
|
-
>
|
|
27
|
-
Simulate submit
|
|
28
|
-
</Button.Root>
|
|
29
|
-
</Button.Group>
|
|
30
|
-
)
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export function FieldStateDemo() {
|
|
34
|
-
return (
|
|
35
|
-
<div className="demo-stack" data-aeon-scope="demo" data-aeon-part="field-states">
|
|
36
|
-
<Field.Root>
|
|
37
|
-
<Field.Label htmlFor="aeon-field-email">Work email</Field.Label>
|
|
38
|
-
<Field.Control
|
|
39
|
-
id="aeon-field-email"
|
|
40
|
-
type="email"
|
|
41
|
-
placeholder="you@studio.com"
|
|
42
|
-
validate={(v) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(v)}
|
|
43
|
-
/>
|
|
44
|
-
<Field.Message>Enter a valid email address.</Field.Message>
|
|
45
|
-
<Field.Hint>Type or blur to mark dirty. Invalid email marks validation:invalid.</Field.Hint>
|
|
46
|
-
<FieldActions />
|
|
47
|
-
<FieldSnapshot />
|
|
48
|
-
</Field.Root>
|
|
49
|
-
</div>
|
|
50
|
-
)
|
|
51
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { site } from '../site.js'
|
|
2
|
-
|
|
3
|
-
export function HeroInstallLine() {
|
|
4
|
-
return (
|
|
5
|
-
<div className="hero-install" data-aeon-scope="hero" data-aeon-part="install">
|
|
6
|
-
<p className="hero-install__line">
|
|
7
|
-
<span className="hero-install__label">{site.heroInstallLabel}</span>
|
|
8
|
-
<code className="hero-install__command">{site.heroInstallCommand}</code>
|
|
9
|
-
</p>
|
|
10
|
-
<p className="hero-install__hint">{site.heroInstallHint}</p>
|
|
11
|
-
</div>
|
|
12
|
-
)
|
|
13
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { Accordion } from '@aeon-ui/ui'
|
|
2
|
-
import { faq, site } from '../site.js'
|
|
3
|
-
import { CodeExample } from './CodeExample.js'
|
|
4
|
-
|
|
5
|
-
export function LandingFaq() {
|
|
6
|
-
return (
|
|
7
|
-
<section id="faq" className="section">
|
|
8
|
-
<div className="container">
|
|
9
|
-
<header className="section-header">
|
|
10
|
-
<p className="section-label">{site.faqLabel}</p>
|
|
11
|
-
<h2 className="section-title">{site.faqTitle}</h2>
|
|
12
|
-
<p className="section-lead">{site.faqLead}</p>
|
|
13
|
-
</header>
|
|
14
|
-
|
|
15
|
-
<Accordion.Root defaultValue={[faq[0].id]}>
|
|
16
|
-
{faq.map((item) => (
|
|
17
|
-
<Accordion.Item key={item.id} value={item.id}>
|
|
18
|
-
<Accordion.ItemTrigger value={item.id}>{item.question}</Accordion.ItemTrigger>
|
|
19
|
-
<Accordion.ItemContent value={item.id}>
|
|
20
|
-
<p>{item.answer}</p>
|
|
21
|
-
{'example' in item && item.example ? <CodeExample code={item.example} /> : null}
|
|
22
|
-
</Accordion.ItemContent>
|
|
23
|
-
</Accordion.Item>
|
|
24
|
-
))}
|
|
25
|
-
</Accordion.Root>
|
|
26
|
-
</div>
|
|
27
|
-
</section>
|
|
28
|
-
)
|
|
29
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { site } from '../site.js'
|
|
2
|
-
|
|
3
|
-
export function LandingFooter() {
|
|
4
|
-
const year = new Date().getFullYear()
|
|
5
|
-
|
|
6
|
-
return (
|
|
7
|
-
<footer className="landing-footer">
|
|
8
|
-
<div className="container landing-footer__inner">
|
|
9
|
-
<p>
|
|
10
|
-
© {year} {site.brand} · {site.tagline}
|
|
11
|
-
</p>
|
|
12
|
-
<p className="landing-footer__tag">
|
|
13
|
-
<a href={site.npmRegistryUrl} target="_blank" rel="noreferrer">
|
|
14
|
-
{site.npmPackage}
|
|
15
|
-
</a>
|
|
16
|
-
{' · '}
|
|
17
|
-
<a href={site.url} target="_blank" rel="noreferrer">
|
|
18
|
-
GitHub
|
|
19
|
-
</a>
|
|
20
|
-
{' · '}
|
|
21
|
-
A project by{' '}
|
|
22
|
-
<a href={site.studioUrl} target="_blank" rel="noreferrer">
|
|
23
|
-
{site.studio}
|
|
24
|
-
</a>
|
|
25
|
-
<span className="text-accent"> · spidercorp.xyz</span>
|
|
26
|
-
</p>
|
|
27
|
-
</div>
|
|
28
|
-
</footer>
|
|
29
|
-
)
|
|
30
|
-
}
|