aeon-ui-engine 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +51 -0
- package/CONSUMER.md +86 -0
- package/INTEGRATION.md +2 -0
- package/README.md +15 -4
- package/package.json +17 -1
- package/packages/core/dist/index.d.ts +257 -0
- package/packages/core/dist/index.js +378 -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/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/src/recipes/button.ts +4 -4
- package/packages/panda/src/recipes/combobox.ts +1 -1
- package/packages/panda/src/recipes/select.ts +1 -1
- package/packages/panda/src/theme/tokens.ts +5 -0
- package/packages/panda/styled-system/styles.css +10 -6
- package/packages/panda/styled-system/tokens/index.mjs +32 -0
- package/packages/panda/styled-system/tokens/tokens.d.ts +2 -2
- 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-SZV6KGXN.js +49 -0
- package/packages/primitives/dist/chunk-WVICCOQH.js +56 -0
- package/packages/primitives/dist/chunk-ZMGRX64G.js +74 -0
- package/packages/primitives/dist/index.d.ts +11 -0
- package/packages/primitives/dist/index.js +60 -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/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/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/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/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/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/vitest +21 -0
- package/packages/primitives/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/packages/react/dist/index.d.ts +564 -0
- package/packages/react/dist/index.js +3461 -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/vitest +21 -0
- package/packages/react/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- 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/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/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/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/ui/dist/index.d.ts +200 -0
- package/packages/ui/dist/index.js +429 -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/select.tsx +3 -4
- 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/scripts/vite-aliases.mjs +125 -0
- package/.changeset/README.md +0 -23
- package/.changeset/combobox-and-changesets.md +0 -9
- package/.changeset/config.json +0 -30
- 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 -85
- 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 -1151
- 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/pnpm-workspace.yaml +0 -3
- package/vercel.json +0 -12
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
// src/hooks/use-aeon-machine.ts
|
|
2
|
+
import { useMachine } from "@xstate/vue";
|
|
3
|
+
function useAeonMachine(machine, options) {
|
|
4
|
+
return useMachine(machine, options);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
// src/switch/index.ts
|
|
8
|
+
import { partAttrs, switchAnatomy } from "@aeon-ui/core";
|
|
9
|
+
import { toggleMachine } from "@aeon-ui/primitives";
|
|
10
|
+
import {
|
|
11
|
+
defineComponent,
|
|
12
|
+
h,
|
|
13
|
+
inject,
|
|
14
|
+
provide,
|
|
15
|
+
watch
|
|
16
|
+
} from "vue";
|
|
17
|
+
|
|
18
|
+
// src/utils/part-props.ts
|
|
19
|
+
function partProps(attrs, extra) {
|
|
20
|
+
return { ...attrs, ...extra };
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// src/switch/index.ts
|
|
24
|
+
var SwitchKey = /* @__PURE__ */ Symbol("aeon-switch");
|
|
25
|
+
var SwitchRoot = defineComponent({
|
|
26
|
+
name: "AeonSwitchRoot",
|
|
27
|
+
props: {
|
|
28
|
+
checked: { type: Boolean, default: void 0 },
|
|
29
|
+
defaultChecked: { type: Boolean, default: false },
|
|
30
|
+
disabled: { type: Boolean, default: false },
|
|
31
|
+
onCheckedChange: { type: Function, default: void 0 }
|
|
32
|
+
},
|
|
33
|
+
setup(props, { slots, attrs }) {
|
|
34
|
+
const { snapshot, send } = useAeonMachine(toggleMachine, {
|
|
35
|
+
input: { checked: props.defaultChecked, disabled: props.disabled }
|
|
36
|
+
});
|
|
37
|
+
const controlled = props.checked !== void 0;
|
|
38
|
+
const resolvedChecked = () => props.checked ?? snapshot.value.context.checked;
|
|
39
|
+
const pressState = () => snapshot.value.matches({ interaction: "pressed" }) ? "pressed" : "idle";
|
|
40
|
+
watch(
|
|
41
|
+
() => props.checked,
|
|
42
|
+
(v) => {
|
|
43
|
+
if (v !== void 0) send({ type: "SET_CHECKED", checked: v });
|
|
44
|
+
}
|
|
45
|
+
);
|
|
46
|
+
watch(
|
|
47
|
+
() => resolvedChecked(),
|
|
48
|
+
(v) => {
|
|
49
|
+
if (!controlled) props.onCheckedChange?.(v);
|
|
50
|
+
}
|
|
51
|
+
);
|
|
52
|
+
const toggle = () => {
|
|
53
|
+
if (props.disabled) return;
|
|
54
|
+
const next = !resolvedChecked();
|
|
55
|
+
if (controlled) props.onCheckedChange?.(next);
|
|
56
|
+
else send({ type: "TOGGLE" });
|
|
57
|
+
};
|
|
58
|
+
provide(SwitchKey, {
|
|
59
|
+
get checked() {
|
|
60
|
+
return resolvedChecked();
|
|
61
|
+
},
|
|
62
|
+
get disabled() {
|
|
63
|
+
return props.disabled;
|
|
64
|
+
},
|
|
65
|
+
get controlled() {
|
|
66
|
+
return controlled;
|
|
67
|
+
},
|
|
68
|
+
onCheckedChange: props.onCheckedChange,
|
|
69
|
+
send,
|
|
70
|
+
get pressState() {
|
|
71
|
+
return pressState();
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
return () => h(
|
|
75
|
+
"label",
|
|
76
|
+
partProps(
|
|
77
|
+
partAttrs(switchAnatomy.scope, switchAnatomy.root, {
|
|
78
|
+
state: `${resolvedChecked() ? "checked" : "unchecked"} ${pressState()}`,
|
|
79
|
+
disabled: props.disabled
|
|
80
|
+
}),
|
|
81
|
+
{
|
|
82
|
+
...attrs,
|
|
83
|
+
onClick: (e) => {
|
|
84
|
+
const target = e.target;
|
|
85
|
+
if (target.closest(`[data-aeon-part="${switchAnatomy.control}"]`)) return;
|
|
86
|
+
toggle();
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
),
|
|
90
|
+
slots.default?.() ?? void 0
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
function useSwitchCtx() {
|
|
95
|
+
const ctx = inject(SwitchKey);
|
|
96
|
+
if (!ctx) throw new Error("Switch parts must be used within SwitchRoot");
|
|
97
|
+
return ctx;
|
|
98
|
+
}
|
|
99
|
+
var SwitchControl = defineComponent({
|
|
100
|
+
name: "AeonSwitchControl",
|
|
101
|
+
setup(_, { attrs }) {
|
|
102
|
+
const ctx = useSwitchCtx();
|
|
103
|
+
const toggle = () => {
|
|
104
|
+
if (ctx.disabled) return;
|
|
105
|
+
const next = !ctx.checked;
|
|
106
|
+
if (ctx.controlled) ctx.onCheckedChange?.(next);
|
|
107
|
+
else ctx.send({ type: "TOGGLE" });
|
|
108
|
+
};
|
|
109
|
+
return () => h("span", {
|
|
110
|
+
role: "switch",
|
|
111
|
+
"aria-checked": ctx.checked,
|
|
112
|
+
tabindex: ctx.disabled ? -1 : 0,
|
|
113
|
+
...partProps(
|
|
114
|
+
partAttrs(switchAnatomy.scope, switchAnatomy.control, {
|
|
115
|
+
state: `${ctx.checked ? "checked" : "unchecked"} ${ctx.pressState}`,
|
|
116
|
+
disabled: ctx.disabled
|
|
117
|
+
}),
|
|
118
|
+
attrs
|
|
119
|
+
),
|
|
120
|
+
onClick: (e) => {
|
|
121
|
+
toggle();
|
|
122
|
+
e.stopPropagation();
|
|
123
|
+
},
|
|
124
|
+
onPointerdown: () => {
|
|
125
|
+
if (!ctx.disabled) ctx.send({ type: "POINTER_DOWN" });
|
|
126
|
+
},
|
|
127
|
+
onPointerup: () => ctx.send({ type: "POINTER_UP" }),
|
|
128
|
+
onPointerleave: () => ctx.send({ type: "POINTER_LEAVE" }),
|
|
129
|
+
onKeydown: (e) => {
|
|
130
|
+
if (e.key === " " || e.key === "Enter") {
|
|
131
|
+
e.preventDefault();
|
|
132
|
+
toggle();
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
var SwitchThumb = defineComponent({
|
|
139
|
+
name: "AeonSwitchThumb",
|
|
140
|
+
setup(_, { attrs }) {
|
|
141
|
+
const ctx = useSwitchCtx();
|
|
142
|
+
return () => h(
|
|
143
|
+
"span",
|
|
144
|
+
partProps(
|
|
145
|
+
partAttrs(switchAnatomy.scope, switchAnatomy.thumb, {
|
|
146
|
+
state: `${ctx.checked ? "checked" : "unchecked"} ${ctx.pressState}`
|
|
147
|
+
}),
|
|
148
|
+
attrs
|
|
149
|
+
)
|
|
150
|
+
);
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
var SwitchLabel = defineComponent({
|
|
154
|
+
name: "AeonSwitchLabel",
|
|
155
|
+
setup(_, { slots, attrs }) {
|
|
156
|
+
return () => h(
|
|
157
|
+
"span",
|
|
158
|
+
partProps(
|
|
159
|
+
partAttrs(switchAnatomy.scope, switchAnatomy.label),
|
|
160
|
+
attrs
|
|
161
|
+
),
|
|
162
|
+
slots.default?.()
|
|
163
|
+
);
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
var SwitchHiddenInput = defineComponent({
|
|
167
|
+
name: "AeonSwitchHiddenInput",
|
|
168
|
+
setup(_, { attrs }) {
|
|
169
|
+
const ctx = useSwitchCtx();
|
|
170
|
+
return () => h("input", {
|
|
171
|
+
type: "checkbox",
|
|
172
|
+
checked: ctx.checked,
|
|
173
|
+
readonly: true,
|
|
174
|
+
tabindex: -1,
|
|
175
|
+
"aria-hidden": true,
|
|
176
|
+
...partProps(
|
|
177
|
+
partAttrs(switchAnatomy.scope, switchAnatomy.hiddenInput),
|
|
178
|
+
attrs
|
|
179
|
+
)
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
var Switch = {
|
|
184
|
+
Root: SwitchRoot,
|
|
185
|
+
Control: SwitchControl,
|
|
186
|
+
Thumb: SwitchThumb,
|
|
187
|
+
Label: SwitchLabel,
|
|
188
|
+
HiddenInput: SwitchHiddenInput
|
|
189
|
+
};
|
|
190
|
+
export {
|
|
191
|
+
Switch,
|
|
192
|
+
useAeonMachine
|
|
193
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
|
3
|
+
|
|
4
|
+
case `uname` in
|
|
5
|
+
*CYGWIN*|*MINGW*|*MSYS*)
|
|
6
|
+
if command -v cygpath > /dev/null 2>&1; then
|
|
7
|
+
basedir=`cygpath -w "$basedir"`
|
|
8
|
+
fi
|
|
9
|
+
;;
|
|
10
|
+
esac
|
|
11
|
+
|
|
12
|
+
if [ -z "$NODE_PATH" ]; then
|
|
13
|
+
export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/jiti@2.7.0/node_modules/jiti/lib/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/jiti@2.7.0/node_modules/jiti/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/jiti@2.7.0/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules"
|
|
14
|
+
else
|
|
15
|
+
export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/jiti@2.7.0/node_modules/jiti/lib/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/jiti@2.7.0/node_modules/jiti/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/jiti@2.7.0/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules:$NODE_PATH"
|
|
16
|
+
fi
|
|
17
|
+
if [ -x "$basedir/node" ]; then
|
|
18
|
+
exec "$basedir/node" "$basedir/../../../../node_modules/.pnpm/jiti@2.7.0/node_modules/jiti/lib/jiti-cli.mjs" "$@"
|
|
19
|
+
else
|
|
20
|
+
exec node "$basedir/../../../../node_modules/.pnpm/jiti@2.7.0/node_modules/jiti/lib/jiti-cli.mjs" "$@"
|
|
21
|
+
fi
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
|
3
|
+
|
|
4
|
+
case `uname` in
|
|
5
|
+
*CYGWIN*|*MINGW*|*MSYS*)
|
|
6
|
+
if command -v cygpath > /dev/null 2>&1; then
|
|
7
|
+
basedir=`cygpath -w "$basedir"`
|
|
8
|
+
fi
|
|
9
|
+
;;
|
|
10
|
+
esac
|
|
11
|
+
|
|
12
|
+
if [ -z "$NODE_PATH" ]; then
|
|
13
|
+
export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules"
|
|
14
|
+
else
|
|
15
|
+
export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules:$NODE_PATH"
|
|
16
|
+
fi
|
|
17
|
+
if [ -x "$basedir/node" ]; then
|
|
18
|
+
exec "$basedir/node" "$basedir/../typescript/bin/tsc" "$@"
|
|
19
|
+
else
|
|
20
|
+
exec node "$basedir/../typescript/bin/tsc" "$@"
|
|
21
|
+
fi
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
|
3
|
+
|
|
4
|
+
case `uname` in
|
|
5
|
+
*CYGWIN*|*MINGW*|*MSYS*)
|
|
6
|
+
if command -v cygpath > /dev/null 2>&1; then
|
|
7
|
+
basedir=`cygpath -w "$basedir"`
|
|
8
|
+
fi
|
|
9
|
+
;;
|
|
10
|
+
esac
|
|
11
|
+
|
|
12
|
+
if [ -z "$NODE_PATH" ]; then
|
|
13
|
+
export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules"
|
|
14
|
+
else
|
|
15
|
+
export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules:$NODE_PATH"
|
|
16
|
+
fi
|
|
17
|
+
if [ -x "$basedir/node" ]; then
|
|
18
|
+
exec "$basedir/node" "$basedir/../typescript/bin/tsserver" "$@"
|
|
19
|
+
else
|
|
20
|
+
exec node "$basedir/../typescript/bin/tsserver" "$@"
|
|
21
|
+
fi
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
|
3
|
+
|
|
4
|
+
case `uname` in
|
|
5
|
+
*CYGWIN*|*MINGW*|*MSYS*)
|
|
6
|
+
if command -v cygpath > /dev/null 2>&1; then
|
|
7
|
+
basedir=`cygpath -w "$basedir"`
|
|
8
|
+
fi
|
|
9
|
+
;;
|
|
10
|
+
esac
|
|
11
|
+
|
|
12
|
+
if [ -z "$NODE_PATH" ]; then
|
|
13
|
+
export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsup@8.5.1_jiti@2.7.0_postcss@8.5.15_tsx@4.22.3_typescript@5.9.3/node_modules/tsup/dist/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsup@8.5.1_jiti@2.7.0_postcss@8.5.15_tsx@4.22.3_typescript@5.9.3/node_modules/tsup/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsup@8.5.1_jiti@2.7.0_postcss@8.5.15_tsx@4.22.3_typescript@5.9.3/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules"
|
|
14
|
+
else
|
|
15
|
+
export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsup@8.5.1_jiti@2.7.0_postcss@8.5.15_tsx@4.22.3_typescript@5.9.3/node_modules/tsup/dist/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsup@8.5.1_jiti@2.7.0_postcss@8.5.15_tsx@4.22.3_typescript@5.9.3/node_modules/tsup/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsup@8.5.1_jiti@2.7.0_postcss@8.5.15_tsx@4.22.3_typescript@5.9.3/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules:$NODE_PATH"
|
|
16
|
+
fi
|
|
17
|
+
if [ -x "$basedir/node" ]; then
|
|
18
|
+
exec "$basedir/node" "$basedir/../tsup/dist/cli-default.js" "$@"
|
|
19
|
+
else
|
|
20
|
+
exec node "$basedir/../tsup/dist/cli-default.js" "$@"
|
|
21
|
+
fi
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
|
3
|
+
|
|
4
|
+
case `uname` in
|
|
5
|
+
*CYGWIN*|*MINGW*|*MSYS*)
|
|
6
|
+
if command -v cygpath > /dev/null 2>&1; then
|
|
7
|
+
basedir=`cygpath -w "$basedir"`
|
|
8
|
+
fi
|
|
9
|
+
;;
|
|
10
|
+
esac
|
|
11
|
+
|
|
12
|
+
if [ -z "$NODE_PATH" ]; then
|
|
13
|
+
export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsup@8.5.1_jiti@2.7.0_postcss@8.5.15_tsx@4.22.3_typescript@5.9.3/node_modules/tsup/dist/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsup@8.5.1_jiti@2.7.0_postcss@8.5.15_tsx@4.22.3_typescript@5.9.3/node_modules/tsup/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsup@8.5.1_jiti@2.7.0_postcss@8.5.15_tsx@4.22.3_typescript@5.9.3/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules"
|
|
14
|
+
else
|
|
15
|
+
export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsup@8.5.1_jiti@2.7.0_postcss@8.5.15_tsx@4.22.3_typescript@5.9.3/node_modules/tsup/dist/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsup@8.5.1_jiti@2.7.0_postcss@8.5.15_tsx@4.22.3_typescript@5.9.3/node_modules/tsup/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsup@8.5.1_jiti@2.7.0_postcss@8.5.15_tsx@4.22.3_typescript@5.9.3/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules:$NODE_PATH"
|
|
16
|
+
fi
|
|
17
|
+
if [ -x "$basedir/node" ]; then
|
|
18
|
+
exec "$basedir/node" "$basedir/../tsup/dist/cli-node.js" "$@"
|
|
19
|
+
else
|
|
20
|
+
exec node "$basedir/../tsup/dist/cli-node.js" "$@"
|
|
21
|
+
fi
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
|
3
|
+
|
|
4
|
+
case `uname` in
|
|
5
|
+
*CYGWIN*|*MINGW*|*MSYS*)
|
|
6
|
+
if command -v cygpath > /dev/null 2>&1; then
|
|
7
|
+
basedir=`cygpath -w "$basedir"`
|
|
8
|
+
fi
|
|
9
|
+
;;
|
|
10
|
+
esac
|
|
11
|
+
|
|
12
|
+
if [ -z "$NODE_PATH" ]; then
|
|
13
|
+
export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsx@4.22.3/node_modules/tsx/dist/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsx@4.22.3/node_modules/tsx/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsx@4.22.3/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules"
|
|
14
|
+
else
|
|
15
|
+
export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsx@4.22.3/node_modules/tsx/dist/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsx@4.22.3/node_modules/tsx/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/tsx@4.22.3/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules:$NODE_PATH"
|
|
16
|
+
fi
|
|
17
|
+
if [ -x "$basedir/node" ]; then
|
|
18
|
+
exec "$basedir/node" "$basedir/../../../../node_modules/.pnpm/tsx@4.22.3/node_modules/tsx/dist/cli.mjs" "$@"
|
|
19
|
+
else
|
|
20
|
+
exec node "$basedir/../../../../node_modules/.pnpm/tsx@4.22.3/node_modules/tsx/dist/cli.mjs" "$@"
|
|
21
|
+
fi
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vite + TypeScript wiring for apps that install `aeon-ui-engine` from npm.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* import { aeonUiViteAliases, aeonUiOptimizeDeps } from 'aeon-ui-engine/vite'
|
|
6
|
+
*
|
|
7
|
+
* export default defineConfig({
|
|
8
|
+
* resolve: { alias: aeonUiViteAliases() },
|
|
9
|
+
* optimizeDeps: aeonUiOptimizeDeps(),
|
|
10
|
+
* })
|
|
11
|
+
*/
|
|
12
|
+
import { createRequire } from 'node:module'
|
|
13
|
+
import path from 'node:path'
|
|
14
|
+
import { fileURLToPath } from 'node:url'
|
|
15
|
+
|
|
16
|
+
const scriptDir = path.dirname(fileURLToPath(import.meta.url))
|
|
17
|
+
|
|
18
|
+
/** Absolute path to `aeon-ui-engine/packages` (npm install or monorepo checkout). */
|
|
19
|
+
export function resolveAeonPackagesRoot(opts = {}) {
|
|
20
|
+
if (opts.packagesRoot) return path.resolve(opts.packagesRoot)
|
|
21
|
+
if (process.env.AEON_UI_ROOT) {
|
|
22
|
+
return path.join(path.resolve(process.env.AEON_UI_ROOT), 'packages')
|
|
23
|
+
}
|
|
24
|
+
try {
|
|
25
|
+
const require = createRequire(import.meta.url)
|
|
26
|
+
const engineRoot = path.dirname(require.resolve('aeon-ui-engine/package.json'))
|
|
27
|
+
return path.join(engineRoot, 'packages')
|
|
28
|
+
} catch {
|
|
29
|
+
return path.resolve(scriptDir, '../packages')
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/** Vite `resolve.alias` entries — `@aeon-ui/*` is not published separately. */
|
|
34
|
+
export function aeonUiViteAliases(opts = {}) {
|
|
35
|
+
const packages = resolveAeonPackagesRoot(opts)
|
|
36
|
+
const extra = opts.extraAliases ?? []
|
|
37
|
+
|
|
38
|
+
return [
|
|
39
|
+
...extra,
|
|
40
|
+
{
|
|
41
|
+
find: '@aeon-ui/panda/styles.css',
|
|
42
|
+
replacement: path.join(packages, 'panda/styled-system/styles.css'),
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
find: '@aeon-ui/panda/theme-runtime.css',
|
|
46
|
+
replacement: path.join(packages, 'panda/theme-runtime.css'),
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
find: '@aeon-ui/panda/scrollbars.css',
|
|
50
|
+
replacement: path.join(packages, 'panda/src/theme/scrollbars.css'),
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
find: '@aeon-ui/panda/chrome.css',
|
|
54
|
+
replacement: path.join(packages, 'panda/src/theme/chrome.css'),
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
find: '@aeon-ui/panda/styled-system/css',
|
|
58
|
+
replacement: path.join(packages, 'panda/styled-system/css/index.mjs'),
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
find: '@aeon-ui/panda/styled-system/recipes',
|
|
62
|
+
replacement: path.join(packages, 'panda/styled-system/recipes/index.mjs'),
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
find: '@aeon-ui/panda/themes',
|
|
66
|
+
replacement: path.join(packages, 'panda/src/theme/index.ts'),
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
find: '@aeon-ui/ui/styles.css',
|
|
70
|
+
replacement: path.join(packages, 'ui/src/styles.css'),
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
find: '@aeon-ui/surface/surface.css',
|
|
74
|
+
replacement: path.join(packages, 'surface/surface.css'),
|
|
75
|
+
},
|
|
76
|
+
{ find: '@aeon-ui/surface', replacement: path.join(packages, 'surface/src/index.ts') },
|
|
77
|
+
{ find: '@aeon-ui/core', replacement: path.join(packages, 'core/src/index.ts') },
|
|
78
|
+
{ find: '@aeon-ui/primitives', replacement: path.join(packages, 'primitives/src/index.ts') },
|
|
79
|
+
{ find: '@aeon-ui/react', replacement: path.join(packages, 'react/src/index.ts') },
|
|
80
|
+
{ find: '@aeon-ui/ui', replacement: path.join(packages, 'ui/src/index.ts') },
|
|
81
|
+
{ find: '@aeon-ui/panda', replacement: path.join(packages, 'panda') },
|
|
82
|
+
]
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/** Recommended Vite `optimizeDeps` for Aeon + XState apps. */
|
|
86
|
+
export function aeonUiOptimizeDeps(opts = {}) {
|
|
87
|
+
const excludeWorkspace = opts.excludeWorkspace ?? true
|
|
88
|
+
return {
|
|
89
|
+
include: [
|
|
90
|
+
'react',
|
|
91
|
+
'react-dom',
|
|
92
|
+
'@xstate/react',
|
|
93
|
+
'xstate',
|
|
94
|
+
...(opts.include ?? []),
|
|
95
|
+
],
|
|
96
|
+
exclude: excludeWorkspace
|
|
97
|
+
? [
|
|
98
|
+
'@aeon-ui/core',
|
|
99
|
+
'@aeon-ui/primitives',
|
|
100
|
+
'@aeon-ui/react',
|
|
101
|
+
'@aeon-ui/ui',
|
|
102
|
+
'@aeon-ui/panda/styled-system/css',
|
|
103
|
+
'@aeon-ui/panda/styled-system/recipes',
|
|
104
|
+
...(opts.exclude ?? []),
|
|
105
|
+
]
|
|
106
|
+
: (opts.exclude ?? []),
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* `compilerOptions.paths` fragment for a consumer tsconfig.
|
|
112
|
+
* Paths are relative to the app tsconfig file location.
|
|
113
|
+
*/
|
|
114
|
+
export function aeonUiTsconfigPaths(opts = {}) {
|
|
115
|
+
const prefix = opts.prefix ?? '../node_modules/aeon-ui-engine/packages'
|
|
116
|
+
return {
|
|
117
|
+
'@aeon-ui/core': [`${prefix}/core/src/index.ts`],
|
|
118
|
+
'@aeon-ui/primitives': [`${prefix}/primitives/src/index.ts`],
|
|
119
|
+
'@aeon-ui/react': [`${prefix}/react/src/index.ts`],
|
|
120
|
+
'@aeon-ui/ui': [`${prefix}/ui/src/index.ts`],
|
|
121
|
+
'@aeon-ui/surface': [`${prefix}/surface/src/index.ts`],
|
|
122
|
+
'@aeon-ui/panda/styled-system/css': [`${prefix}/panda/styled-system/css/index.d.ts`],
|
|
123
|
+
'@aeon-ui/panda/styled-system/recipes': [`${prefix}/panda/styled-system/recipes/index.d.ts`],
|
|
124
|
+
}
|
|
125
|
+
}
|
package/.changeset/README.md
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# Changesets
|
|
2
|
-
|
|
3
|
-
This monorepo uses [Changesets](https://github.com/changesets/changesets) to version and publish `@aeon-ui/*` packages together.
|
|
4
|
-
|
|
5
|
-
## Add a changeset
|
|
6
|
-
|
|
7
|
-
After a meaningful change:
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
pnpm changeset
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
Choose affected packages (usually all five public packages) and bump type (`patch` / `minor` / `major`).
|
|
14
|
-
|
|
15
|
-
## Release flow (maintainers)
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
pnpm version-packages # apply changesets → bump versions + CHANGELOGs
|
|
19
|
-
pnpm build
|
|
20
|
-
pnpm release # publish to npm (requires npm login + scope access)
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
See [PUBLISHING.md](../PUBLISHING.md) for manual publish order and first-time setup.
|
package/.changeset/config.json
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://unpkg.com/@changesets/config@3.1.1/schema.json",
|
|
3
|
-
"changelog": "@changesets/cli/changelog",
|
|
4
|
-
"commit": false,
|
|
5
|
-
"fixed": [
|
|
6
|
-
[
|
|
7
|
-
"@aeon-ui/core",
|
|
8
|
-
"@aeon-ui/primitives",
|
|
9
|
-
"@aeon-ui/react",
|
|
10
|
-
"@aeon-ui/panda",
|
|
11
|
-
"@aeon-ui/ui",
|
|
12
|
-
"@aeon-ui/vue",
|
|
13
|
-
"@aeon-ui/solid",
|
|
14
|
-
"@aeon-ui/svelte"
|
|
15
|
-
],
|
|
16
|
-
[
|
|
17
|
-
"@aeon-ui/signal",
|
|
18
|
-
"@aeon-ui/geometry",
|
|
19
|
-
"@aeon-ui/surface",
|
|
20
|
-
"@aeon-ui/scene",
|
|
21
|
-
"@aeon-ui/react-scene",
|
|
22
|
-
"@aeon-ui/site"
|
|
23
|
-
]
|
|
24
|
-
],
|
|
25
|
-
"linked": [],
|
|
26
|
-
"access": "public",
|
|
27
|
-
"baseBranch": "main",
|
|
28
|
-
"updateInternalDependencies": "patch",
|
|
29
|
-
"ignore": ["@aeon-ui/demo", "aeon-ui-monorepo"]
|
|
30
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
"@aeon-ui/core": minor
|
|
3
|
-
"@aeon-ui/primitives": minor
|
|
4
|
-
"@aeon-ui/react": minor
|
|
5
|
-
"@aeon-ui/panda": minor
|
|
6
|
-
"@aeon-ui/ui": minor
|
|
7
|
-
"@aeon-ui/vue": minor
|
|
8
|
-
"@aeon-ui/solid": minor
|
|
9
|
-
"@aeon-ui/svelte": minor
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
Add Vue, Solid, and Svelte adapter packages (`useAeonMachine` + reference Switch port). Document publish and framework roadmap.
|
package/.changeset/scene-3d.md
DELETED
package/.changeset/site-og.md
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Aeon UI conventions — read AGENTS.md before editing this repo
|
|
3
|
-
alwaysApply: true
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Aeon UI (agent rules)
|
|
7
|
-
|
|
8
|
-
**Read [AGENTS.md](../../AGENTS.md) before any change.** Full map: [docs/INDEX.md](../../docs/INDEX.md).
|
|
9
|
-
|
|
10
|
-
## Must follow
|
|
11
|
-
|
|
12
|
-
- **UI = f(state)** — project snapshots to `data-aeon-scope`, `data-aeon-part`, `data-aeon-state` via `partAttrs` from `@aeon-ui/core`.
|
|
13
|
-
- **Machine truth:** [docs/MACHINES.md](../../docs/MACHINES.md) — Button uses `status` prop; Select/Menu/Popover share `popoverMachine`; Combobox/Tooltip use React state; Scroll uses `getScrollSnapshot`.
|
|
14
|
-
- **New components:** [docs/COMPONENT_CHECKLIST.md](../../docs/COMPONENT_CHECKLIST.md) (all steps).
|
|
15
|
-
- **Panda changes:** run `pnpm codegen` from repo root.
|
|
16
|
-
- **Imports:** `.js` extension in TypeScript relative imports.
|
|
17
|
-
|
|
18
|
-
## Do not
|
|
19
|
-
|
|
20
|
-
- Duplicate state in `useState` and XState for the same concern.
|
|
21
|
-
- Fork duplicate open/closed machines (use `popoverMachine` / `dialogMachine`).
|
|
22
|
-
- Hand-edit `packages/panda/styled-system/` (generated).
|
package/ACCESSIBILITY.md
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
# Accessibility
|
|
2
|
-
|
|
3
|
-
Aeon targets **WCAG-minded** behavior on headless parts. Styled layers must not remove semantics.
|
|
4
|
-
|
|
5
|
-
## Patterns in place
|
|
6
|
-
|
|
7
|
-
| Component | Roles / ARIA |
|
|
8
|
-
|-----------|----------------|
|
|
9
|
-
| Dialog | `role="dialog"`, `aria-modal`, `aria-labelledby` / `aria-describedby`, Escape |
|
|
10
|
-
| Avatar | `img` + `hidden` when loaded; fallback `hidden` when image shown; pass `alt` on `Avatar.Image` |
|
|
11
|
-
| Menu | `aria-haspopup="menu"`, `role="menu"`, `role="menuitem"`, Escape, outside click |
|
|
12
|
-
| Popover | `aria-expanded`, `role="dialog"` (non-modal) |
|
|
13
|
-
| Tooltip | `aria-describedby`, `role="tooltip"` |
|
|
14
|
-
| Toast | `role="status"`, `aria-live="polite"` |
|
|
15
|
-
| Select | `aria-haspopup="listbox"`, `aria-expanded`, `aria-activedescendant`, arrow keys + Enter |
|
|
16
|
-
| Dialog | focus trap + body scroll lock when open via `Dialog.Portal` |
|
|
17
|
-
| Combobox | `role="combobox"`, `aria-autocomplete="list"`, `aria-activedescendant`, arrow keys + Enter |
|
|
18
|
-
| Switch / Checkbox | native input + label association |
|
|
19
|
-
|
|
20
|
-
## Focus
|
|
21
|
-
|
|
22
|
-
- `@aeon-ui/panda` `chrome.css`: focus rings on **keyboard** (`:focus-visible`) only.
|
|
23
|
-
- Selected / pressed / open states use surface tint, not conflated with focus.
|
|
24
|
-
|
|
25
|
-
## Your checklist when adopting
|
|
26
|
-
|
|
27
|
-
1. Every `Dialog` includes `Title` (and `Description` when copy is long).
|
|
28
|
-
2. Menu items are `<button type="button">`, not `<div onClick>`.
|
|
29
|
-
3. Custom colors meet contrast on `data-aeon-state` variants you add.
|
|
30
|
-
4. Async regions expose status text in `Readout`, not color alone.
|
|
31
|
-
|
|
32
|
-
Report gaps in GitHub issues with expected keyboard / screen reader steps.
|