aeon-ui-engine 1.3.1 → 1.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/package.json +1 -1
  3. package/packages/react/src/combobox/index.tsx +13 -8
  4. package/packages/react/src/tooltip/index.tsx +48 -22
  5. package/packages/schemas/dist/index.d.ts +69 -24
  6. package/packages/schemas/dist/index.js +447 -49
  7. package/packages/schemas/json/appNav.json +146 -0
  8. package/packages/schemas/json/appShell.json +151 -0
  9. package/packages/schemas/json/avatar.json +130 -0
  10. package/packages/schemas/json/bar.json +126 -0
  11. package/packages/schemas/json/catalog.json +3163 -15
  12. package/packages/schemas/json/combobox.json +19 -7
  13. package/packages/schemas/json/composer.json +125 -0
  14. package/packages/schemas/json/content.json +167 -0
  15. package/packages/schemas/json/conversation.json +166 -0
  16. package/packages/schemas/json/entry.json +182 -0
  17. package/packages/schemas/json/identity.json +147 -0
  18. package/packages/schemas/json/listRow.json +131 -0
  19. package/packages/schemas/json/metricStrip.json +132 -0
  20. package/packages/schemas/json/nav.json +136 -0
  21. package/packages/schemas/json/panel.json +143 -0
  22. package/packages/schemas/json/pinInput.json +112 -0
  23. package/packages/schemas/json/profileHeader.json +138 -0
  24. package/packages/schemas/json/prompt.json +155 -0
  25. package/packages/schemas/json/radioGroup.json +130 -0
  26. package/packages/schemas/json/separator.json +105 -0
  27. package/packages/schemas/json/slider.json +147 -0
  28. package/packages/schemas/json/statusBanner.json +149 -0
  29. package/packages/schemas/json/stickyBar.json +153 -0
  30. package/packages/schemas/json/thread.json +129 -0
  31. package/packages/schemas/json/tooltip.json +21 -7
  32. package/packages/schemas/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  33. package/packages/schemas/prompts/cursorrules.md +6 -4
  34. package/packages/schemas/prompts/statecharts.md +23 -2
  35. package/packages/schemas/prompts/system.md +2 -2
  36. package/packages/schemas/registry/catalog.json +295 -4
  37. package/packages/schemas/registry/components/appNav.json +146 -0
  38. package/packages/schemas/registry/components/appShell.json +151 -0
  39. package/packages/schemas/registry/components/avatar.json +130 -0
  40. package/packages/schemas/registry/components/bar.json +126 -0
  41. package/packages/schemas/registry/components/combobox.json +19 -7
  42. package/packages/schemas/registry/components/composer.json +125 -0
  43. package/packages/schemas/registry/components/content.json +167 -0
  44. package/packages/schemas/registry/components/conversation.json +166 -0
  45. package/packages/schemas/registry/components/entry.json +182 -0
  46. package/packages/schemas/registry/components/identity.json +147 -0
  47. package/packages/schemas/registry/components/listRow.json +131 -0
  48. package/packages/schemas/registry/components/metricStrip.json +132 -0
  49. package/packages/schemas/registry/components/nav.json +136 -0
  50. package/packages/schemas/registry/components/panel.json +143 -0
  51. package/packages/schemas/registry/components/pinInput.json +112 -0
  52. package/packages/schemas/registry/components/profileHeader.json +138 -0
  53. package/packages/schemas/registry/components/prompt.json +155 -0
  54. package/packages/schemas/registry/components/radioGroup.json +130 -0
  55. package/packages/schemas/registry/components/separator.json +105 -0
  56. package/packages/schemas/registry/components/slider.json +147 -0
  57. package/packages/schemas/registry/components/statusBanner.json +149 -0
  58. package/packages/schemas/registry/components/stickyBar.json +153 -0
  59. package/packages/schemas/registry/components/thread.json +129 -0
  60. package/packages/schemas/registry/components/tooltip.json +21 -7
  61. package/packages/schemas/registry/machines/accordion.json +58 -0
  62. package/packages/schemas/registry/machines/appNav.json +108 -0
  63. package/packages/schemas/registry/machines/appShell.json +128 -0
  64. package/packages/schemas/registry/machines/contentRegion.json +314 -0
  65. package/packages/schemas/registry/machines/panel.json +131 -0
  66. package/packages/schemas/registry/machines/popover.json +143 -0
  67. package/packages/schemas/registry/machines/slider.json +151 -0
  68. package/packages/schemas/registry/machines/stickyBar.json +261 -0
  69. package/packages/schemas/registry/machines/tabs.json +58 -0
  70. package/packages/schemas/registry/machines/toast.json +89 -0
  71. package/packages/schemas/registry/machines/toggle.json +134 -0
  72. package/packages/schemas/scripts/emit.ts +23 -0
  73. package/packages/schemas/src/components.ts +429 -6
  74. package/packages/schemas/src/index.test.ts +83 -0
  75. package/packages/schemas/src/index.ts +1 -0
  76. package/packages/schemas/src/machine-id.ts +7 -0
  77. package/packages/schemas/src/prompts.ts +25 -4
  78. package/packages/schemas/src/registry.ts +28 -39
@@ -26,7 +26,29 @@
26
26
  "tooltip",
27
27
  "toast",
28
28
  "scroll",
29
- "progress"
29
+ "progress",
30
+ "radioGroup",
31
+ "slider",
32
+ "pinInput",
33
+ "avatar",
34
+ "content",
35
+ "panel",
36
+ "appShell",
37
+ "stickyBar",
38
+ "bar",
39
+ "nav",
40
+ "appNav",
41
+ "prompt",
42
+ "statusBanner",
43
+ "separator",
44
+ "composer",
45
+ "thread",
46
+ "identity",
47
+ "profileHeader",
48
+ "metricStrip",
49
+ "listRow",
50
+ "entry",
51
+ "conversation"
30
52
  ],
31
53
  "schemas": {
32
54
  "button": {
@@ -1639,7 +1661,7 @@
1639
1661
  "$schema": "https://json-schema.org/draft/2020-12/schema",
1640
1662
  "$id": "https://aeon-ui.com/schemas/combobox.json",
1641
1663
  "title": "Combobox",
1642
- "description": "Typeahead — React useState for open/query/highlight today. Do not add a duplicate floating machine without COMPONENT_CHECKLIST.",
1664
+ "description": "Open/closed via popoverMachine (same family as Select/Menu/Popover). Query, highlight, and item registry stay React-local for typeahead.",
1643
1665
  "type": "object",
1644
1666
  "additionalProperties": false,
1645
1667
  "required": [
@@ -1717,18 +1739,24 @@
1717
1739
  "null"
1718
1740
  ],
1719
1741
  "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
1720
- "const": null
1742
+ "const": "popoverMachine"
1721
1743
  },
1722
1744
  "runtime": {
1723
1745
  "type": "string",
1724
1746
  "description": "How headless state is driven at runtime",
1725
- "const": "useState"
1747
+ "const": "useAeonMachine"
1726
1748
  },
1727
1749
  "events": {
1728
1750
  "type": "array",
1729
1751
  "items": {
1730
1752
  "type": "string",
1731
- "enum": []
1753
+ "enum": [
1754
+ "OPEN",
1755
+ "CLOSE",
1756
+ "TOGGLE",
1757
+ "ESCAPE",
1758
+ "POINTER_DOWN_OUTSIDE"
1759
+ ]
1732
1760
  }
1733
1761
  },
1734
1762
  "examples": {
@@ -1753,9 +1781,15 @@
1753
1781
  "open",
1754
1782
  "closed"
1755
1783
  ],
1756
- "machine": null,
1757
- "runtime": "useState",
1758
- "events": [],
1784
+ "machine": "popoverMachine",
1785
+ "runtime": "useAeonMachine",
1786
+ "events": [
1787
+ "OPEN",
1788
+ "CLOSE",
1789
+ "TOGGLE",
1790
+ "ESCAPE",
1791
+ "POINTER_DOWN_OUTSIDE"
1792
+ ],
1759
1793
  "slots": {
1760
1794
  "Root": "combobox.root",
1761
1795
  "Input": "combobox.input",
@@ -1769,7 +1803,7 @@
1769
1803
  "$schema": "https://json-schema.org/draft/2020-12/schema",
1770
1804
  "$id": "https://aeon-ui.com/schemas/tooltip.json",
1771
1805
  "title": "Tooltip",
1772
- "description": "Open via React useState. Touch tap toggles.",
1806
+ "description": "Open/closed via popoverMachine (same family as Popover/Select/Combobox). openDelay / closeDelay / touchDuration stay React-local.",
1773
1807
  "type": "object",
1774
1808
  "additionalProperties": false,
1775
1809
  "required": [
@@ -1842,18 +1876,25 @@
1842
1876
  "null"
1843
1877
  ],
1844
1878
  "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
1845
- "const": null
1879
+ "const": "popoverMachine"
1846
1880
  },
1847
1881
  "runtime": {
1848
1882
  "type": "string",
1849
1883
  "description": "How headless state is driven at runtime",
1850
- "const": "useState"
1884
+ "const": "useAeonMachine"
1851
1885
  },
1852
1886
  "events": {
1853
1887
  "type": "array",
1854
1888
  "items": {
1855
1889
  "type": "string",
1856
- "enum": []
1890
+ "enum": [
1891
+ "OPEN",
1892
+ "CLOSE",
1893
+ "TOGGLE",
1894
+ "SET_OPEN",
1895
+ "ESCAPE",
1896
+ "POINTER_DOWN_OUTSIDE"
1897
+ ]
1857
1898
  }
1858
1899
  },
1859
1900
  "examples": {
@@ -1877,9 +1918,16 @@
1877
1918
  "open",
1878
1919
  "closed"
1879
1920
  ],
1880
- "machine": null,
1881
- "runtime": "useState",
1882
- "events": [],
1921
+ "machine": "popoverMachine",
1922
+ "runtime": "useAeonMachine",
1923
+ "events": [
1924
+ "OPEN",
1925
+ "CLOSE",
1926
+ "TOGGLE",
1927
+ "SET_OPEN",
1928
+ "ESCAPE",
1929
+ "POINTER_DOWN_OUTSIDE"
1930
+ ],
1883
1931
  "slots": {
1884
1932
  "Root": "tooltip.root",
1885
1933
  "Trigger": "tooltip.trigger",
@@ -2294,6 +2342,3106 @@
2294
2342
  },
2295
2343
  "examples": []
2296
2344
  }
2345
+ },
2346
+ "radioGroup": {
2347
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2348
+ "$id": "https://aeon-ui.com/schemas/radioGroup.json",
2349
+ "title": "RadioGroup",
2350
+ "description": "Single selection via tabsMachine (same chart family as Tabs/Nav).",
2351
+ "type": "object",
2352
+ "additionalProperties": false,
2353
+ "required": [
2354
+ "component",
2355
+ "scope"
2356
+ ],
2357
+ "properties": {
2358
+ "component": {
2359
+ "const": "RadioGroup"
2360
+ },
2361
+ "scope": {
2362
+ "const": "radioGroup"
2363
+ },
2364
+ "parts": {
2365
+ "type": "array",
2366
+ "description": "Anatomy part keys — map to data-aeon-part",
2367
+ "items": {
2368
+ "type": "string",
2369
+ "enum": [
2370
+ "root",
2371
+ "item",
2372
+ "itemControl",
2373
+ "itemIndicator",
2374
+ "itemLabel"
2375
+ ]
2376
+ },
2377
+ "uniqueItems": true
2378
+ },
2379
+ "states": {
2380
+ "type": "array",
2381
+ "description": "Allowed data-aeon-state values (stable states only)",
2382
+ "items": {
2383
+ "type": "string",
2384
+ "enum": [
2385
+ "selected"
2386
+ ]
2387
+ },
2388
+ "uniqueItems": true
2389
+ },
2390
+ "props": {
2391
+ "type": "object",
2392
+ "additionalProperties": false,
2393
+ "properties": {}
2394
+ },
2395
+ "slots": {
2396
+ "type": "object",
2397
+ "description": "Named composition slots / compound parts",
2398
+ "additionalProperties": {
2399
+ "type": "string"
2400
+ },
2401
+ "properties": {
2402
+ "Root": {
2403
+ "const": "radioGroup.root",
2404
+ "description": "radioGroup.root"
2405
+ },
2406
+ "Item": {
2407
+ "const": "radioGroup.item",
2408
+ "description": "radioGroup.item"
2409
+ },
2410
+ "ItemControl": {
2411
+ "const": "radioGroup.itemControl",
2412
+ "description": "radioGroup.itemControl"
2413
+ },
2414
+ "ItemLabel": {
2415
+ "const": "radioGroup.itemLabel",
2416
+ "description": "radioGroup.itemLabel"
2417
+ }
2418
+ }
2419
+ },
2420
+ "machine": {
2421
+ "type": [
2422
+ "string",
2423
+ "null"
2424
+ ],
2425
+ "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
2426
+ "const": "tabsMachine"
2427
+ },
2428
+ "runtime": {
2429
+ "type": "string",
2430
+ "description": "How headless state is driven at runtime",
2431
+ "const": "useAeonMachine"
2432
+ },
2433
+ "events": {
2434
+ "type": "array",
2435
+ "items": {
2436
+ "type": "string",
2437
+ "enum": [
2438
+ "SELECT"
2439
+ ]
2440
+ }
2441
+ },
2442
+ "examples": {
2443
+ "type": "array",
2444
+ "items": {
2445
+ "type": "string"
2446
+ },
2447
+ "default": []
2448
+ }
2449
+ },
2450
+ "x-aeon": {
2451
+ "scope": "radioGroup",
2452
+ "parts": [
2453
+ "root",
2454
+ "item",
2455
+ "itemControl",
2456
+ "itemIndicator",
2457
+ "itemLabel"
2458
+ ],
2459
+ "states": [
2460
+ "selected"
2461
+ ],
2462
+ "machine": "tabsMachine",
2463
+ "runtime": "useAeonMachine",
2464
+ "events": [
2465
+ "SELECT"
2466
+ ],
2467
+ "slots": {
2468
+ "Root": "radioGroup.root",
2469
+ "Item": "radioGroup.item",
2470
+ "ItemControl": "radioGroup.itemControl",
2471
+ "ItemLabel": "radioGroup.itemLabel"
2472
+ },
2473
+ "examples": []
2474
+ }
2475
+ },
2476
+ "slider": {
2477
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2478
+ "$id": "https://aeon-ui.com/schemas/slider.json",
2479
+ "title": "Slider",
2480
+ "description": "Range control via sliderMachine — idle | dragging plus numeric value in context.",
2481
+ "type": "object",
2482
+ "additionalProperties": false,
2483
+ "required": [
2484
+ "component",
2485
+ "scope"
2486
+ ],
2487
+ "properties": {
2488
+ "component": {
2489
+ "const": "Slider"
2490
+ },
2491
+ "scope": {
2492
+ "const": "slider"
2493
+ },
2494
+ "parts": {
2495
+ "type": "array",
2496
+ "description": "Anatomy part keys — map to data-aeon-part",
2497
+ "items": {
2498
+ "type": "string",
2499
+ "enum": [
2500
+ "root",
2501
+ "track",
2502
+ "range",
2503
+ "thumb",
2504
+ "valueText"
2505
+ ]
2506
+ },
2507
+ "uniqueItems": true
2508
+ },
2509
+ "states": {
2510
+ "type": "array",
2511
+ "description": "Allowed data-aeon-state values (stable states only)",
2512
+ "items": {
2513
+ "type": "string",
2514
+ "enum": [
2515
+ "idle",
2516
+ "dragging"
2517
+ ]
2518
+ },
2519
+ "uniqueItems": true
2520
+ },
2521
+ "props": {
2522
+ "type": "object",
2523
+ "additionalProperties": false,
2524
+ "properties": {}
2525
+ },
2526
+ "slots": {
2527
+ "type": "object",
2528
+ "description": "Named composition slots / compound parts",
2529
+ "additionalProperties": {
2530
+ "type": "string"
2531
+ },
2532
+ "properties": {
2533
+ "Root": {
2534
+ "const": "slider.root",
2535
+ "description": "slider.root"
2536
+ },
2537
+ "Track": {
2538
+ "const": "slider.track",
2539
+ "description": "slider.track"
2540
+ },
2541
+ "Range": {
2542
+ "const": "slider.range",
2543
+ "description": "slider.range"
2544
+ },
2545
+ "Thumb": {
2546
+ "const": "slider.thumb",
2547
+ "description": "slider.thumb"
2548
+ },
2549
+ "ValueText": {
2550
+ "const": "slider.valueText",
2551
+ "description": "slider.valueText"
2552
+ }
2553
+ }
2554
+ },
2555
+ "machine": {
2556
+ "type": [
2557
+ "string",
2558
+ "null"
2559
+ ],
2560
+ "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
2561
+ "const": "sliderMachine"
2562
+ },
2563
+ "runtime": {
2564
+ "type": "string",
2565
+ "description": "How headless state is driven at runtime",
2566
+ "const": "useAeonMachine"
2567
+ },
2568
+ "events": {
2569
+ "type": "array",
2570
+ "items": {
2571
+ "type": "string",
2572
+ "enum": [
2573
+ "SET_VALUE",
2574
+ "STEP",
2575
+ "POINTER_DOWN",
2576
+ "POINTER_UP",
2577
+ "HOME",
2578
+ "END"
2579
+ ]
2580
+ }
2581
+ },
2582
+ "examples": {
2583
+ "type": "array",
2584
+ "items": {
2585
+ "type": "string"
2586
+ },
2587
+ "default": []
2588
+ }
2589
+ },
2590
+ "x-aeon": {
2591
+ "scope": "slider",
2592
+ "parts": [
2593
+ "root",
2594
+ "track",
2595
+ "range",
2596
+ "thumb",
2597
+ "valueText"
2598
+ ],
2599
+ "states": [
2600
+ "idle",
2601
+ "dragging"
2602
+ ],
2603
+ "machine": "sliderMachine",
2604
+ "runtime": "useAeonMachine",
2605
+ "events": [
2606
+ "SET_VALUE",
2607
+ "STEP",
2608
+ "POINTER_DOWN",
2609
+ "POINTER_UP",
2610
+ "HOME",
2611
+ "END"
2612
+ ],
2613
+ "slots": {
2614
+ "Root": "slider.root",
2615
+ "Track": "slider.track",
2616
+ "Range": "slider.range",
2617
+ "Thumb": "slider.thumb",
2618
+ "ValueText": "slider.valueText"
2619
+ },
2620
+ "examples": []
2621
+ }
2622
+ },
2623
+ "pinInput": {
2624
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2625
+ "$id": "https://aeon-ui.com/schemas/pinInput.json",
2626
+ "title": "PinInput",
2627
+ "description": "OTP / PIN cells — React state for digit buffer; projects idle | complete on root.",
2628
+ "type": "object",
2629
+ "additionalProperties": false,
2630
+ "required": [
2631
+ "component",
2632
+ "scope"
2633
+ ],
2634
+ "properties": {
2635
+ "component": {
2636
+ "const": "PinInput"
2637
+ },
2638
+ "scope": {
2639
+ "const": "pinInput"
2640
+ },
2641
+ "parts": {
2642
+ "type": "array",
2643
+ "description": "Anatomy part keys — map to data-aeon-part",
2644
+ "items": {
2645
+ "type": "string",
2646
+ "enum": [
2647
+ "root",
2648
+ "input"
2649
+ ]
2650
+ },
2651
+ "uniqueItems": true
2652
+ },
2653
+ "states": {
2654
+ "type": "array",
2655
+ "description": "Allowed data-aeon-state values (stable states only)",
2656
+ "items": {
2657
+ "type": "string",
2658
+ "enum": [
2659
+ "idle",
2660
+ "complete"
2661
+ ]
2662
+ },
2663
+ "uniqueItems": true
2664
+ },
2665
+ "props": {
2666
+ "type": "object",
2667
+ "additionalProperties": false,
2668
+ "properties": {}
2669
+ },
2670
+ "slots": {
2671
+ "type": "object",
2672
+ "description": "Named composition slots / compound parts",
2673
+ "additionalProperties": {
2674
+ "type": "string"
2675
+ },
2676
+ "properties": {
2677
+ "Root": {
2678
+ "const": "pinInput.root",
2679
+ "description": "pinInput.root"
2680
+ },
2681
+ "Input": {
2682
+ "const": "pinInput.input",
2683
+ "description": "pinInput.input"
2684
+ }
2685
+ }
2686
+ },
2687
+ "machine": {
2688
+ "type": [
2689
+ "string",
2690
+ "null"
2691
+ ],
2692
+ "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
2693
+ "const": null
2694
+ },
2695
+ "runtime": {
2696
+ "type": "string",
2697
+ "description": "How headless state is driven at runtime",
2698
+ "const": "useState"
2699
+ },
2700
+ "events": {
2701
+ "type": "array",
2702
+ "items": {
2703
+ "type": "string",
2704
+ "enum": []
2705
+ }
2706
+ },
2707
+ "examples": {
2708
+ "type": "array",
2709
+ "items": {
2710
+ "type": "string"
2711
+ },
2712
+ "default": []
2713
+ }
2714
+ },
2715
+ "x-aeon": {
2716
+ "scope": "pinInput",
2717
+ "parts": [
2718
+ "root",
2719
+ "input"
2720
+ ],
2721
+ "states": [
2722
+ "idle",
2723
+ "complete"
2724
+ ],
2725
+ "machine": null,
2726
+ "runtime": "useState",
2727
+ "events": [],
2728
+ "slots": {
2729
+ "Root": "pinInput.root",
2730
+ "Input": "pinInput.input"
2731
+ },
2732
+ "examples": []
2733
+ }
2734
+ },
2735
+ "avatar": {
2736
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2737
+ "$id": "https://aeon-ui.com/schemas/avatar.json",
2738
+ "title": "Avatar",
2739
+ "description": "Image load lifecycle in React; badge presence is a prop projection.",
2740
+ "type": "object",
2741
+ "additionalProperties": false,
2742
+ "required": [
2743
+ "component",
2744
+ "scope"
2745
+ ],
2746
+ "properties": {
2747
+ "component": {
2748
+ "const": "Avatar"
2749
+ },
2750
+ "scope": {
2751
+ "const": "avatar"
2752
+ },
2753
+ "parts": {
2754
+ "type": "array",
2755
+ "description": "Anatomy part keys — map to data-aeon-part",
2756
+ "items": {
2757
+ "type": "string",
2758
+ "enum": [
2759
+ "root",
2760
+ "image",
2761
+ "fallback",
2762
+ "badge"
2763
+ ]
2764
+ },
2765
+ "uniqueItems": true
2766
+ },
2767
+ "states": {
2768
+ "type": "array",
2769
+ "description": "Allowed data-aeon-state values (stable states only)",
2770
+ "items": {
2771
+ "type": "string",
2772
+ "enum": [
2773
+ "idle",
2774
+ "loading",
2775
+ "loaded",
2776
+ "error"
2777
+ ]
2778
+ },
2779
+ "uniqueItems": true
2780
+ },
2781
+ "props": {
2782
+ "type": "object",
2783
+ "additionalProperties": false,
2784
+ "properties": {}
2785
+ },
2786
+ "slots": {
2787
+ "type": "object",
2788
+ "description": "Named composition slots / compound parts",
2789
+ "additionalProperties": {
2790
+ "type": "string"
2791
+ },
2792
+ "properties": {
2793
+ "Root": {
2794
+ "const": "avatar.root",
2795
+ "description": "avatar.root"
2796
+ },
2797
+ "Image": {
2798
+ "const": "avatar.image",
2799
+ "description": "avatar.image"
2800
+ },
2801
+ "Fallback": {
2802
+ "const": "avatar.fallback",
2803
+ "description": "avatar.fallback"
2804
+ },
2805
+ "Badge": {
2806
+ "const": "avatar.badge",
2807
+ "description": "avatar.badge"
2808
+ }
2809
+ }
2810
+ },
2811
+ "machine": {
2812
+ "type": [
2813
+ "string",
2814
+ "null"
2815
+ ],
2816
+ "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
2817
+ "const": null
2818
+ },
2819
+ "runtime": {
2820
+ "type": "string",
2821
+ "description": "How headless state is driven at runtime",
2822
+ "const": "useState"
2823
+ },
2824
+ "events": {
2825
+ "type": "array",
2826
+ "items": {
2827
+ "type": "string",
2828
+ "enum": []
2829
+ }
2830
+ },
2831
+ "examples": {
2832
+ "type": "array",
2833
+ "items": {
2834
+ "type": "string"
2835
+ },
2836
+ "default": []
2837
+ }
2838
+ },
2839
+ "x-aeon": {
2840
+ "scope": "avatar",
2841
+ "parts": [
2842
+ "root",
2843
+ "image",
2844
+ "fallback",
2845
+ "badge"
2846
+ ],
2847
+ "states": [
2848
+ "idle",
2849
+ "loading",
2850
+ "loaded",
2851
+ "error"
2852
+ ],
2853
+ "machine": null,
2854
+ "runtime": "useState",
2855
+ "events": [],
2856
+ "slots": {
2857
+ "Root": "avatar.root",
2858
+ "Image": "avatar.image",
2859
+ "Fallback": "avatar.fallback",
2860
+ "Badge": "avatar.badge"
2861
+ },
2862
+ "examples": []
2863
+ }
2864
+ },
2865
+ "content": {
2866
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2867
+ "$id": "https://aeon-ui.com/schemas/content.json",
2868
+ "title": "Content",
2869
+ "description": "Status-slotted body via contentRegionMachine (or Root state prop projection). Pair with Async for fetch.",
2870
+ "type": "object",
2871
+ "additionalProperties": false,
2872
+ "required": [
2873
+ "component",
2874
+ "scope"
2875
+ ],
2876
+ "properties": {
2877
+ "component": {
2878
+ "const": "Content"
2879
+ },
2880
+ "scope": {
2881
+ "const": "content"
2882
+ },
2883
+ "parts": {
2884
+ "type": "array",
2885
+ "description": "Anatomy part keys — map to data-aeon-part",
2886
+ "items": {
2887
+ "type": "string",
2888
+ "enum": [
2889
+ "root",
2890
+ "toolbar",
2891
+ "body",
2892
+ "pending",
2893
+ "empty",
2894
+ "error",
2895
+ "success",
2896
+ "sentinel"
2897
+ ]
2898
+ },
2899
+ "uniqueItems": true
2900
+ },
2901
+ "states": {
2902
+ "type": "array",
2903
+ "description": "Allowed data-aeon-state values (stable states only)",
2904
+ "items": {
2905
+ "type": "string",
2906
+ "enum": [
2907
+ "idle",
2908
+ "pending",
2909
+ "empty",
2910
+ "error",
2911
+ "ready",
2912
+ "loadingMore",
2913
+ "success"
2914
+ ]
2915
+ },
2916
+ "uniqueItems": true
2917
+ },
2918
+ "props": {
2919
+ "type": "object",
2920
+ "additionalProperties": false,
2921
+ "properties": {}
2922
+ },
2923
+ "slots": {
2924
+ "type": "object",
2925
+ "description": "Named composition slots / compound parts",
2926
+ "additionalProperties": {
2927
+ "type": "string"
2928
+ },
2929
+ "properties": {
2930
+ "Root": {
2931
+ "const": "content.root",
2932
+ "description": "content.root"
2933
+ },
2934
+ "Pending": {
2935
+ "const": "content.pending",
2936
+ "description": "content.pending"
2937
+ },
2938
+ "Empty": {
2939
+ "const": "content.empty",
2940
+ "description": "content.empty"
2941
+ },
2942
+ "Error": {
2943
+ "const": "content.error",
2944
+ "description": "content.error"
2945
+ },
2946
+ "Success": {
2947
+ "const": "content.success",
2948
+ "description": "content.success"
2949
+ }
2950
+ }
2951
+ },
2952
+ "machine": {
2953
+ "type": [
2954
+ "string",
2955
+ "null"
2956
+ ],
2957
+ "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
2958
+ "const": "contentRegionMachine"
2959
+ },
2960
+ "runtime": {
2961
+ "type": "string",
2962
+ "description": "How headless state is driven at runtime",
2963
+ "const": "useAeonMachine"
2964
+ },
2965
+ "events": {
2966
+ "type": "array",
2967
+ "items": {
2968
+ "type": "string",
2969
+ "enum": [
2970
+ "LOAD",
2971
+ "RESOLVE",
2972
+ "REJECT",
2973
+ "RETRY",
2974
+ "LOAD_MORE",
2975
+ "MORE_DONE",
2976
+ "SUCCEED",
2977
+ "RESET"
2978
+ ]
2979
+ }
2980
+ },
2981
+ "examples": {
2982
+ "type": "array",
2983
+ "items": {
2984
+ "type": "string"
2985
+ },
2986
+ "default": []
2987
+ }
2988
+ },
2989
+ "x-aeon": {
2990
+ "scope": "content",
2991
+ "parts": [
2992
+ "root",
2993
+ "toolbar",
2994
+ "body",
2995
+ "pending",
2996
+ "empty",
2997
+ "error",
2998
+ "success",
2999
+ "sentinel"
3000
+ ],
3001
+ "states": [
3002
+ "idle",
3003
+ "pending",
3004
+ "empty",
3005
+ "error",
3006
+ "ready",
3007
+ "loadingMore",
3008
+ "success"
3009
+ ],
3010
+ "machine": "contentRegionMachine",
3011
+ "runtime": "useAeonMachine",
3012
+ "events": [
3013
+ "LOAD",
3014
+ "RESOLVE",
3015
+ "REJECT",
3016
+ "RETRY",
3017
+ "LOAD_MORE",
3018
+ "MORE_DONE",
3019
+ "SUCCEED",
3020
+ "RESET"
3021
+ ],
3022
+ "slots": {
3023
+ "Root": "content.root",
3024
+ "Pending": "content.pending",
3025
+ "Empty": "content.empty",
3026
+ "Error": "content.error",
3027
+ "Success": "content.success"
3028
+ },
3029
+ "examples": []
3030
+ }
3031
+ },
3032
+ "panel": {
3033
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3034
+ "$id": "https://aeon-ui.com/schemas/panel.json",
3035
+ "title": "Panel",
3036
+ "description": "Collapsible layout region via panelMachine — expanded | collapsed.",
3037
+ "type": "object",
3038
+ "additionalProperties": false,
3039
+ "required": [
3040
+ "component",
3041
+ "scope"
3042
+ ],
3043
+ "properties": {
3044
+ "component": {
3045
+ "const": "Panel"
3046
+ },
3047
+ "scope": {
3048
+ "const": "panel"
3049
+ },
3050
+ "parts": {
3051
+ "type": "array",
3052
+ "description": "Anatomy part keys — map to data-aeon-part",
3053
+ "items": {
3054
+ "type": "string",
3055
+ "enum": [
3056
+ "group",
3057
+ "root",
3058
+ "trigger",
3059
+ "label",
3060
+ "content"
3061
+ ]
3062
+ },
3063
+ "uniqueItems": true
3064
+ },
3065
+ "states": {
3066
+ "type": "array",
3067
+ "description": "Allowed data-aeon-state values (stable states only)",
3068
+ "items": {
3069
+ "type": "string",
3070
+ "enum": [
3071
+ "expanded",
3072
+ "collapsed"
3073
+ ]
3074
+ },
3075
+ "uniqueItems": true
3076
+ },
3077
+ "props": {
3078
+ "type": "object",
3079
+ "additionalProperties": false,
3080
+ "properties": {}
3081
+ },
3082
+ "slots": {
3083
+ "type": "object",
3084
+ "description": "Named composition slots / compound parts",
3085
+ "additionalProperties": {
3086
+ "type": "string"
3087
+ },
3088
+ "properties": {
3089
+ "Group": {
3090
+ "const": "panel.group",
3091
+ "description": "panel.group"
3092
+ },
3093
+ "Root": {
3094
+ "const": "panel.root",
3095
+ "description": "panel.root"
3096
+ },
3097
+ "Trigger": {
3098
+ "const": "panel.trigger",
3099
+ "description": "panel.trigger"
3100
+ },
3101
+ "Label": {
3102
+ "const": "panel.label",
3103
+ "description": "panel.label"
3104
+ },
3105
+ "Content": {
3106
+ "const": "panel.content",
3107
+ "description": "panel.content"
3108
+ }
3109
+ }
3110
+ },
3111
+ "machine": {
3112
+ "type": [
3113
+ "string",
3114
+ "null"
3115
+ ],
3116
+ "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
3117
+ "const": "panelMachine"
3118
+ },
3119
+ "runtime": {
3120
+ "type": "string",
3121
+ "description": "How headless state is driven at runtime",
3122
+ "const": "useAeonMachine"
3123
+ },
3124
+ "events": {
3125
+ "type": "array",
3126
+ "items": {
3127
+ "type": "string",
3128
+ "enum": [
3129
+ "EXPAND",
3130
+ "COLLAPSE",
3131
+ "TOGGLE",
3132
+ "SET_EXPANDED"
3133
+ ]
3134
+ }
3135
+ },
3136
+ "examples": {
3137
+ "type": "array",
3138
+ "items": {
3139
+ "type": "string"
3140
+ },
3141
+ "default": []
3142
+ }
3143
+ },
3144
+ "x-aeon": {
3145
+ "scope": "panel",
3146
+ "parts": [
3147
+ "group",
3148
+ "root",
3149
+ "trigger",
3150
+ "label",
3151
+ "content"
3152
+ ],
3153
+ "states": [
3154
+ "expanded",
3155
+ "collapsed"
3156
+ ],
3157
+ "machine": "panelMachine",
3158
+ "runtime": "useAeonMachine",
3159
+ "events": [
3160
+ "EXPAND",
3161
+ "COLLAPSE",
3162
+ "TOGGLE",
3163
+ "SET_EXPANDED"
3164
+ ],
3165
+ "slots": {
3166
+ "Group": "panel.group",
3167
+ "Root": "panel.root",
3168
+ "Trigger": "panel.trigger",
3169
+ "Label": "panel.label",
3170
+ "Content": "panel.content"
3171
+ },
3172
+ "examples": []
3173
+ }
3174
+ },
3175
+ "appShell": {
3176
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3177
+ "$id": "https://aeon-ui.com/schemas/appShell.json",
3178
+ "title": "AppShell",
3179
+ "description": "Application chrome frame via appShellMachine — idle | overlayOpen (+ dockVisible).",
3180
+ "type": "object",
3181
+ "additionalProperties": false,
3182
+ "required": [
3183
+ "component",
3184
+ "scope"
3185
+ ],
3186
+ "properties": {
3187
+ "component": {
3188
+ "const": "AppShell"
3189
+ },
3190
+ "scope": {
3191
+ "const": "appShell"
3192
+ },
3193
+ "parts": {
3194
+ "type": "array",
3195
+ "description": "Anatomy part keys — map to data-aeon-part",
3196
+ "items": {
3197
+ "type": "string",
3198
+ "enum": [
3199
+ "root",
3200
+ "header",
3201
+ "subheader",
3202
+ "content",
3203
+ "aside",
3204
+ "footer",
3205
+ "dock",
3206
+ "scrim"
3207
+ ]
3208
+ },
3209
+ "uniqueItems": true
3210
+ },
3211
+ "states": {
3212
+ "type": "array",
3213
+ "description": "Allowed data-aeon-state values (stable states only)",
3214
+ "items": {
3215
+ "type": "string",
3216
+ "enum": [
3217
+ "idle",
3218
+ "overlayOpen"
3219
+ ]
3220
+ },
3221
+ "uniqueItems": true
3222
+ },
3223
+ "props": {
3224
+ "type": "object",
3225
+ "additionalProperties": false,
3226
+ "properties": {}
3227
+ },
3228
+ "slots": {
3229
+ "type": "object",
3230
+ "description": "Named composition slots / compound parts",
3231
+ "additionalProperties": {
3232
+ "type": "string"
3233
+ },
3234
+ "properties": {
3235
+ "Root": {
3236
+ "const": "appShell.root",
3237
+ "description": "appShell.root"
3238
+ },
3239
+ "Header": {
3240
+ "const": "appShell.header",
3241
+ "description": "appShell.header"
3242
+ },
3243
+ "Content": {
3244
+ "const": "appShell.content",
3245
+ "description": "appShell.content"
3246
+ },
3247
+ "Dock": {
3248
+ "const": "appShell.dock",
3249
+ "description": "appShell.dock"
3250
+ },
3251
+ "Scrim": {
3252
+ "const": "appShell.scrim",
3253
+ "description": "appShell.scrim"
3254
+ }
3255
+ }
3256
+ },
3257
+ "machine": {
3258
+ "type": [
3259
+ "string",
3260
+ "null"
3261
+ ],
3262
+ "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
3263
+ "const": "appShellMachine"
3264
+ },
3265
+ "runtime": {
3266
+ "type": "string",
3267
+ "description": "How headless state is driven at runtime",
3268
+ "const": "useAeonMachine"
3269
+ },
3270
+ "events": {
3271
+ "type": "array",
3272
+ "items": {
3273
+ "type": "string",
3274
+ "enum": [
3275
+ "OPEN_OVERLAY",
3276
+ "CLOSE_OVERLAY",
3277
+ "SHOW_DOCK",
3278
+ "HIDE_DOCK",
3279
+ "SET_DOCK"
3280
+ ]
3281
+ }
3282
+ },
3283
+ "examples": {
3284
+ "type": "array",
3285
+ "items": {
3286
+ "type": "string"
3287
+ },
3288
+ "default": []
3289
+ }
3290
+ },
3291
+ "x-aeon": {
3292
+ "scope": "appShell",
3293
+ "parts": [
3294
+ "root",
3295
+ "header",
3296
+ "subheader",
3297
+ "content",
3298
+ "aside",
3299
+ "footer",
3300
+ "dock",
3301
+ "scrim"
3302
+ ],
3303
+ "states": [
3304
+ "idle",
3305
+ "overlayOpen"
3306
+ ],
3307
+ "machine": "appShellMachine",
3308
+ "runtime": "useAeonMachine",
3309
+ "events": [
3310
+ "OPEN_OVERLAY",
3311
+ "CLOSE_OVERLAY",
3312
+ "SHOW_DOCK",
3313
+ "HIDE_DOCK",
3314
+ "SET_DOCK"
3315
+ ],
3316
+ "slots": {
3317
+ "Root": "appShell.root",
3318
+ "Header": "appShell.header",
3319
+ "Content": "appShell.content",
3320
+ "Dock": "appShell.dock",
3321
+ "Scrim": "appShell.scrim"
3322
+ },
3323
+ "examples": []
3324
+ }
3325
+ },
3326
+ "stickyBar": {
3327
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3328
+ "$id": "https://aeon-ui.com/schemas/stickyBar.json",
3329
+ "title": "StickyBar",
3330
+ "description": "Sticky/fixed chrome band via stickyBarMachine. DOM scope is bar (reuses bar anatomy zones).",
3331
+ "type": "object",
3332
+ "additionalProperties": false,
3333
+ "required": [
3334
+ "component",
3335
+ "scope"
3336
+ ],
3337
+ "properties": {
3338
+ "component": {
3339
+ "const": "StickyBar"
3340
+ },
3341
+ "scope": {
3342
+ "const": "bar"
3343
+ },
3344
+ "parts": {
3345
+ "type": "array",
3346
+ "description": "Anatomy part keys — map to data-aeon-part",
3347
+ "items": {
3348
+ "type": "string",
3349
+ "enum": [
3350
+ "root",
3351
+ "leading",
3352
+ "center",
3353
+ "trailing",
3354
+ "seam"
3355
+ ]
3356
+ },
3357
+ "uniqueItems": true
3358
+ },
3359
+ "states": {
3360
+ "type": "array",
3361
+ "description": "Allowed data-aeon-state values (stable states only)",
3362
+ "items": {
3363
+ "type": "string",
3364
+ "enum": [
3365
+ "floating",
3366
+ "docked",
3367
+ "collapsed",
3368
+ "hidden"
3369
+ ]
3370
+ },
3371
+ "uniqueItems": true
3372
+ },
3373
+ "props": {
3374
+ "type": "object",
3375
+ "additionalProperties": false,
3376
+ "properties": {}
3377
+ },
3378
+ "slots": {
3379
+ "type": "object",
3380
+ "description": "Named composition slots / compound parts",
3381
+ "additionalProperties": {
3382
+ "type": "string"
3383
+ },
3384
+ "properties": {
3385
+ "Root": {
3386
+ "const": "bar.root",
3387
+ "description": "bar.root"
3388
+ },
3389
+ "Leading": {
3390
+ "const": "bar.leading",
3391
+ "description": "bar.leading"
3392
+ },
3393
+ "Center": {
3394
+ "const": "bar.center",
3395
+ "description": "bar.center"
3396
+ },
3397
+ "Trailing": {
3398
+ "const": "bar.trailing",
3399
+ "description": "bar.trailing"
3400
+ },
3401
+ "Seam": {
3402
+ "const": "bar.seam",
3403
+ "description": "bar.seam"
3404
+ }
3405
+ }
3406
+ },
3407
+ "machine": {
3408
+ "type": [
3409
+ "string",
3410
+ "null"
3411
+ ],
3412
+ "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
3413
+ "const": "stickyBarMachine"
3414
+ },
3415
+ "runtime": {
3416
+ "type": "string",
3417
+ "description": "How headless state is driven at runtime",
3418
+ "const": "useAeonMachine"
3419
+ },
3420
+ "events": {
3421
+ "type": "array",
3422
+ "items": {
3423
+ "type": "string",
3424
+ "enum": [
3425
+ "DOCK",
3426
+ "FLOAT",
3427
+ "COLLAPSE",
3428
+ "EXPAND",
3429
+ "HIDE",
3430
+ "SHOW",
3431
+ "SET_OFFSET"
3432
+ ]
3433
+ }
3434
+ },
3435
+ "examples": {
3436
+ "type": "array",
3437
+ "items": {
3438
+ "type": "string"
3439
+ },
3440
+ "default": []
3441
+ }
3442
+ },
3443
+ "x-aeon": {
3444
+ "scope": "bar",
3445
+ "parts": [
3446
+ "root",
3447
+ "leading",
3448
+ "center",
3449
+ "trailing",
3450
+ "seam"
3451
+ ],
3452
+ "states": [
3453
+ "floating",
3454
+ "docked",
3455
+ "collapsed",
3456
+ "hidden"
3457
+ ],
3458
+ "machine": "stickyBarMachine",
3459
+ "runtime": "useAeonMachine",
3460
+ "events": [
3461
+ "DOCK",
3462
+ "FLOAT",
3463
+ "COLLAPSE",
3464
+ "EXPAND",
3465
+ "HIDE",
3466
+ "SHOW",
3467
+ "SET_OFFSET"
3468
+ ],
3469
+ "slots": {
3470
+ "Root": "bar.root",
3471
+ "Leading": "bar.leading",
3472
+ "Center": "bar.center",
3473
+ "Trailing": "bar.trailing",
3474
+ "Seam": "bar.seam"
3475
+ },
3476
+ "examples": []
3477
+ }
3478
+ },
3479
+ "bar": {
3480
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3481
+ "$id": "https://aeon-ui.com/schemas/bar.json",
3482
+ "title": "Bar",
3483
+ "description": "Three-zone toolbar layout (leading / center / trailing / seam). Sticky lifecycle uses StickyBar + stickyBarMachine.",
3484
+ "type": "object",
3485
+ "additionalProperties": false,
3486
+ "required": [
3487
+ "component",
3488
+ "scope"
3489
+ ],
3490
+ "properties": {
3491
+ "component": {
3492
+ "const": "Bar"
3493
+ },
3494
+ "scope": {
3495
+ "const": "bar"
3496
+ },
3497
+ "parts": {
3498
+ "type": "array",
3499
+ "description": "Anatomy part keys — map to data-aeon-part",
3500
+ "items": {
3501
+ "type": "string",
3502
+ "enum": [
3503
+ "root",
3504
+ "leading",
3505
+ "center",
3506
+ "trailing",
3507
+ "seam"
3508
+ ]
3509
+ },
3510
+ "uniqueItems": true
3511
+ },
3512
+ "states": {
3513
+ "type": "array",
3514
+ "description": "Allowed data-aeon-state values (stable states only)",
3515
+ "items": {
3516
+ "type": "string",
3517
+ "enum": [
3518
+ "idle"
3519
+ ]
3520
+ },
3521
+ "uniqueItems": true
3522
+ },
3523
+ "props": {
3524
+ "type": "object",
3525
+ "additionalProperties": false,
3526
+ "properties": {}
3527
+ },
3528
+ "slots": {
3529
+ "type": "object",
3530
+ "description": "Named composition slots / compound parts",
3531
+ "additionalProperties": {
3532
+ "type": "string"
3533
+ },
3534
+ "properties": {
3535
+ "Root": {
3536
+ "const": "bar.root",
3537
+ "description": "bar.root"
3538
+ },
3539
+ "Leading": {
3540
+ "const": "bar.leading",
3541
+ "description": "bar.leading"
3542
+ },
3543
+ "Center": {
3544
+ "const": "bar.center",
3545
+ "description": "bar.center"
3546
+ },
3547
+ "Trailing": {
3548
+ "const": "bar.trailing",
3549
+ "description": "bar.trailing"
3550
+ }
3551
+ }
3552
+ },
3553
+ "machine": {
3554
+ "type": [
3555
+ "string",
3556
+ "null"
3557
+ ],
3558
+ "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
3559
+ "const": null
3560
+ },
3561
+ "runtime": {
3562
+ "type": "string",
3563
+ "description": "How headless state is driven at runtime",
3564
+ "const": "layout"
3565
+ },
3566
+ "events": {
3567
+ "type": "array",
3568
+ "items": {
3569
+ "type": "string",
3570
+ "enum": []
3571
+ }
3572
+ },
3573
+ "examples": {
3574
+ "type": "array",
3575
+ "items": {
3576
+ "type": "string"
3577
+ },
3578
+ "default": []
3579
+ }
3580
+ },
3581
+ "x-aeon": {
3582
+ "scope": "bar",
3583
+ "parts": [
3584
+ "root",
3585
+ "leading",
3586
+ "center",
3587
+ "trailing",
3588
+ "seam"
3589
+ ],
3590
+ "states": [
3591
+ "idle"
3592
+ ],
3593
+ "machine": null,
3594
+ "runtime": "layout",
3595
+ "events": [],
3596
+ "slots": {
3597
+ "Root": "bar.root",
3598
+ "Leading": "bar.leading",
3599
+ "Center": "bar.center",
3600
+ "Trailing": "bar.trailing"
3601
+ },
3602
+ "examples": []
3603
+ }
3604
+ },
3605
+ "nav": {
3606
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3607
+ "$id": "https://aeon-ui.com/schemas/nav.json",
3608
+ "title": "Nav",
3609
+ "description": "Navigational collection via tabsMachine; items project inactive | active | disabled.",
3610
+ "type": "object",
3611
+ "additionalProperties": false,
3612
+ "required": [
3613
+ "component",
3614
+ "scope"
3615
+ ],
3616
+ "properties": {
3617
+ "component": {
3618
+ "const": "Nav"
3619
+ },
3620
+ "scope": {
3621
+ "const": "nav"
3622
+ },
3623
+ "parts": {
3624
+ "type": "array",
3625
+ "description": "Anatomy part keys — map to data-aeon-part",
3626
+ "items": {
3627
+ "type": "string",
3628
+ "enum": [
3629
+ "root",
3630
+ "item",
3631
+ "indicator",
3632
+ "label",
3633
+ "icon",
3634
+ "badge"
3635
+ ]
3636
+ },
3637
+ "uniqueItems": true
3638
+ },
3639
+ "states": {
3640
+ "type": "array",
3641
+ "description": "Allowed data-aeon-state values (stable states only)",
3642
+ "items": {
3643
+ "type": "string",
3644
+ "enum": [
3645
+ "inactive",
3646
+ "active",
3647
+ "disabled"
3648
+ ]
3649
+ },
3650
+ "uniqueItems": true
3651
+ },
3652
+ "props": {
3653
+ "type": "object",
3654
+ "additionalProperties": false,
3655
+ "properties": {}
3656
+ },
3657
+ "slots": {
3658
+ "type": "object",
3659
+ "description": "Named composition slots / compound parts",
3660
+ "additionalProperties": {
3661
+ "type": "string"
3662
+ },
3663
+ "properties": {
3664
+ "Root": {
3665
+ "const": "nav.root",
3666
+ "description": "nav.root"
3667
+ },
3668
+ "Item": {
3669
+ "const": "nav.item",
3670
+ "description": "nav.item"
3671
+ },
3672
+ "Label": {
3673
+ "const": "nav.label",
3674
+ "description": "nav.label"
3675
+ },
3676
+ "Icon": {
3677
+ "const": "nav.icon",
3678
+ "description": "nav.icon"
3679
+ }
3680
+ }
3681
+ },
3682
+ "machine": {
3683
+ "type": [
3684
+ "string",
3685
+ "null"
3686
+ ],
3687
+ "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
3688
+ "const": "tabsMachine"
3689
+ },
3690
+ "runtime": {
3691
+ "type": "string",
3692
+ "description": "How headless state is driven at runtime",
3693
+ "const": "useAeonMachine"
3694
+ },
3695
+ "events": {
3696
+ "type": "array",
3697
+ "items": {
3698
+ "type": "string",
3699
+ "enum": [
3700
+ "SELECT"
3701
+ ]
3702
+ }
3703
+ },
3704
+ "examples": {
3705
+ "type": "array",
3706
+ "items": {
3707
+ "type": "string"
3708
+ },
3709
+ "default": []
3710
+ }
3711
+ },
3712
+ "x-aeon": {
3713
+ "scope": "nav",
3714
+ "parts": [
3715
+ "root",
3716
+ "item",
3717
+ "indicator",
3718
+ "label",
3719
+ "icon",
3720
+ "badge"
3721
+ ],
3722
+ "states": [
3723
+ "inactive",
3724
+ "active",
3725
+ "disabled"
3726
+ ],
3727
+ "machine": "tabsMachine",
3728
+ "runtime": "useAeonMachine",
3729
+ "events": [
3730
+ "SELECT"
3731
+ ],
3732
+ "slots": {
3733
+ "Root": "nav.root",
3734
+ "Item": "nav.item",
3735
+ "Label": "nav.label",
3736
+ "Icon": "nav.icon"
3737
+ },
3738
+ "examples": []
3739
+ }
3740
+ },
3741
+ "appNav": {
3742
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3743
+ "$id": "https://aeon-ui.com/schemas/appNav.json",
3744
+ "title": "AppNav",
3745
+ "description": "Section + detail stack via appNavMachine — list→detail, settings drill-in.",
3746
+ "type": "object",
3747
+ "additionalProperties": false,
3748
+ "required": [
3749
+ "component",
3750
+ "scope"
3751
+ ],
3752
+ "properties": {
3753
+ "component": {
3754
+ "const": "AppNav"
3755
+ },
3756
+ "scope": {
3757
+ "const": "appNav"
3758
+ },
3759
+ "parts": {
3760
+ "type": "array",
3761
+ "description": "Anatomy part keys — map to data-aeon-part",
3762
+ "items": {
3763
+ "type": "string",
3764
+ "enum": [
3765
+ "root",
3766
+ "rail",
3767
+ "section",
3768
+ "stage",
3769
+ "breadcrumb",
3770
+ "crumb",
3771
+ "back"
3772
+ ]
3773
+ },
3774
+ "uniqueItems": true
3775
+ },
3776
+ "states": {
3777
+ "type": "array",
3778
+ "description": "Allowed data-aeon-state values (stable states only)",
3779
+ "items": {
3780
+ "type": "string",
3781
+ "enum": [
3782
+ "section"
3783
+ ]
3784
+ },
3785
+ "uniqueItems": true
3786
+ },
3787
+ "props": {
3788
+ "type": "object",
3789
+ "additionalProperties": false,
3790
+ "properties": {}
3791
+ },
3792
+ "slots": {
3793
+ "type": "object",
3794
+ "description": "Named composition slots / compound parts",
3795
+ "additionalProperties": {
3796
+ "type": "string"
3797
+ },
3798
+ "properties": {
3799
+ "Root": {
3800
+ "const": "appNav.root",
3801
+ "description": "appNav.root"
3802
+ },
3803
+ "Rail": {
3804
+ "const": "appNav.rail",
3805
+ "description": "appNav.rail"
3806
+ },
3807
+ "Stage": {
3808
+ "const": "appNav.stage",
3809
+ "description": "appNav.stage"
3810
+ },
3811
+ "Back": {
3812
+ "const": "appNav.back",
3813
+ "description": "appNav.back"
3814
+ }
3815
+ }
3816
+ },
3817
+ "machine": {
3818
+ "type": [
3819
+ "string",
3820
+ "null"
3821
+ ],
3822
+ "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
3823
+ "const": "appNavMachine"
3824
+ },
3825
+ "runtime": {
3826
+ "type": "string",
3827
+ "description": "How headless state is driven at runtime",
3828
+ "const": "useAeonMachine"
3829
+ },
3830
+ "events": {
3831
+ "type": "array",
3832
+ "items": {
3833
+ "type": "string",
3834
+ "enum": [
3835
+ "SET_SECTION",
3836
+ "PUSH",
3837
+ "REPLACE",
3838
+ "POP",
3839
+ "POP_TO",
3840
+ "CLEAR",
3841
+ "RESET"
3842
+ ]
3843
+ }
3844
+ },
3845
+ "examples": {
3846
+ "type": "array",
3847
+ "items": {
3848
+ "type": "string"
3849
+ },
3850
+ "default": []
3851
+ }
3852
+ },
3853
+ "x-aeon": {
3854
+ "scope": "appNav",
3855
+ "parts": [
3856
+ "root",
3857
+ "rail",
3858
+ "section",
3859
+ "stage",
3860
+ "breadcrumb",
3861
+ "crumb",
3862
+ "back"
3863
+ ],
3864
+ "states": [
3865
+ "section"
3866
+ ],
3867
+ "machine": "appNavMachine",
3868
+ "runtime": "useAeonMachine",
3869
+ "events": [
3870
+ "SET_SECTION",
3871
+ "PUSH",
3872
+ "REPLACE",
3873
+ "POP",
3874
+ "POP_TO",
3875
+ "CLEAR",
3876
+ "RESET"
3877
+ ],
3878
+ "slots": {
3879
+ "Root": "appNav.root",
3880
+ "Rail": "appNav.rail",
3881
+ "Stage": "appNav.stage",
3882
+ "Back": "appNav.back"
3883
+ },
3884
+ "examples": []
3885
+ }
3886
+ },
3887
+ "prompt": {
3888
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3889
+ "$id": "https://aeon-ui.com/schemas/prompt.json",
3890
+ "title": "Prompt",
3891
+ "description": "Confirm / permission dialog composed on Dialog. Open/closed via dialogMachine; face via status prop.",
3892
+ "type": "object",
3893
+ "additionalProperties": false,
3894
+ "required": [
3895
+ "component",
3896
+ "scope"
3897
+ ],
3898
+ "properties": {
3899
+ "component": {
3900
+ "const": "Prompt"
3901
+ },
3902
+ "scope": {
3903
+ "const": "prompt"
3904
+ },
3905
+ "parts": {
3906
+ "type": "array",
3907
+ "description": "Anatomy part keys — map to data-aeon-part",
3908
+ "items": {
3909
+ "type": "string",
3910
+ "enum": [
3911
+ "root",
3912
+ "eyebrow",
3913
+ "meta",
3914
+ "amount",
3915
+ "actions",
3916
+ "primary",
3917
+ "secondary"
3918
+ ]
3919
+ },
3920
+ "uniqueItems": true
3921
+ },
3922
+ "states": {
3923
+ "type": "array",
3924
+ "description": "Allowed data-aeon-state values (stable states only)",
3925
+ "items": {
3926
+ "type": "string",
3927
+ "enum": [
3928
+ "pending",
3929
+ "confirming",
3930
+ "dismissed",
3931
+ "confirmed"
3932
+ ]
3933
+ },
3934
+ "uniqueItems": true
3935
+ },
3936
+ "props": {
3937
+ "type": "object",
3938
+ "additionalProperties": false,
3939
+ "properties": {
3940
+ "status": {
3941
+ "type": "string",
3942
+ "enum": [
3943
+ "pending",
3944
+ "confirming",
3945
+ "dismissed",
3946
+ "confirmed"
3947
+ ],
3948
+ "default": "pending"
3949
+ }
3950
+ }
3951
+ },
3952
+ "slots": {
3953
+ "type": "object",
3954
+ "description": "Named composition slots / compound parts",
3955
+ "additionalProperties": {
3956
+ "type": "string"
3957
+ },
3958
+ "properties": {
3959
+ "Root": {
3960
+ "const": "prompt.root",
3961
+ "description": "prompt.root"
3962
+ },
3963
+ "Primary": {
3964
+ "const": "prompt.primary",
3965
+ "description": "prompt.primary"
3966
+ },
3967
+ "Secondary": {
3968
+ "const": "prompt.secondary",
3969
+ "description": "prompt.secondary"
3970
+ },
3971
+ "Actions": {
3972
+ "const": "prompt.actions",
3973
+ "description": "prompt.actions"
3974
+ }
3975
+ }
3976
+ },
3977
+ "machine": {
3978
+ "type": [
3979
+ "string",
3980
+ "null"
3981
+ ],
3982
+ "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
3983
+ "const": "dialogMachine"
3984
+ },
3985
+ "runtime": {
3986
+ "type": "string",
3987
+ "description": "How headless state is driven at runtime",
3988
+ "const": "status prop"
3989
+ },
3990
+ "events": {
3991
+ "type": "array",
3992
+ "items": {
3993
+ "type": "string",
3994
+ "enum": [
3995
+ "OPEN",
3996
+ "CLOSE",
3997
+ "TOGGLE"
3998
+ ]
3999
+ }
4000
+ },
4001
+ "examples": {
4002
+ "type": "array",
4003
+ "items": {
4004
+ "type": "string"
4005
+ },
4006
+ "default": []
4007
+ }
4008
+ },
4009
+ "x-aeon": {
4010
+ "scope": "prompt",
4011
+ "parts": [
4012
+ "root",
4013
+ "eyebrow",
4014
+ "meta",
4015
+ "amount",
4016
+ "actions",
4017
+ "primary",
4018
+ "secondary"
4019
+ ],
4020
+ "states": [
4021
+ "pending",
4022
+ "confirming",
4023
+ "dismissed",
4024
+ "confirmed"
4025
+ ],
4026
+ "machine": "dialogMachine",
4027
+ "runtime": "status prop",
4028
+ "events": [
4029
+ "OPEN",
4030
+ "CLOSE",
4031
+ "TOGGLE"
4032
+ ],
4033
+ "slots": {
4034
+ "Root": "prompt.root",
4035
+ "Primary": "prompt.primary",
4036
+ "Secondary": "prompt.secondary",
4037
+ "Actions": "prompt.actions"
4038
+ },
4039
+ "examples": []
4040
+ }
4041
+ },
4042
+ "statusBanner": {
4043
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4044
+ "$id": "https://aeon-ui.com/schemas/statusBanner.json",
4045
+ "title": "StatusBanner",
4046
+ "description": "Non-blocking top-of-app notice — tone + optional status props project to data-aeon-state.",
4047
+ "type": "object",
4048
+ "additionalProperties": false,
4049
+ "required": [
4050
+ "component",
4051
+ "scope"
4052
+ ],
4053
+ "properties": {
4054
+ "component": {
4055
+ "const": "StatusBanner"
4056
+ },
4057
+ "scope": {
4058
+ "const": "statusBanner"
4059
+ },
4060
+ "parts": {
4061
+ "type": "array",
4062
+ "description": "Anatomy part keys — map to data-aeon-part",
4063
+ "items": {
4064
+ "type": "string",
4065
+ "enum": [
4066
+ "root",
4067
+ "copy",
4068
+ "title",
4069
+ "body",
4070
+ "actions"
4071
+ ]
4072
+ },
4073
+ "uniqueItems": true
4074
+ },
4075
+ "states": {
4076
+ "type": "array",
4077
+ "description": "Allowed data-aeon-state values (stable states only)",
4078
+ "items": {
4079
+ "type": "string",
4080
+ "enum": [
4081
+ "info",
4082
+ "success",
4083
+ "warning",
4084
+ "danger",
4085
+ "neutral"
4086
+ ]
4087
+ },
4088
+ "uniqueItems": true
4089
+ },
4090
+ "props": {
4091
+ "type": "object",
4092
+ "additionalProperties": false,
4093
+ "properties": {
4094
+ "tone": {
4095
+ "type": "string",
4096
+ "enum": [
4097
+ "info",
4098
+ "success",
4099
+ "warning",
4100
+ "danger",
4101
+ "neutral"
4102
+ ]
4103
+ },
4104
+ "status": {
4105
+ "type": "string",
4106
+ "description": "Optional secondary token appended to data-aeon-state"
4107
+ }
4108
+ }
4109
+ },
4110
+ "slots": {
4111
+ "type": "object",
4112
+ "description": "Named composition slots / compound parts",
4113
+ "additionalProperties": {
4114
+ "type": "string"
4115
+ },
4116
+ "properties": {
4117
+ "Root": {
4118
+ "const": "statusBanner.root",
4119
+ "description": "statusBanner.root"
4120
+ },
4121
+ "Title": {
4122
+ "const": "statusBanner.title",
4123
+ "description": "statusBanner.title"
4124
+ },
4125
+ "Body": {
4126
+ "const": "statusBanner.body",
4127
+ "description": "statusBanner.body"
4128
+ },
4129
+ "Actions": {
4130
+ "const": "statusBanner.actions",
4131
+ "description": "statusBanner.actions"
4132
+ }
4133
+ }
4134
+ },
4135
+ "machine": {
4136
+ "type": [
4137
+ "string",
4138
+ "null"
4139
+ ],
4140
+ "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
4141
+ "const": null
4142
+ },
4143
+ "runtime": {
4144
+ "type": "string",
4145
+ "description": "How headless state is driven at runtime",
4146
+ "const": "props"
4147
+ },
4148
+ "events": {
4149
+ "type": "array",
4150
+ "items": {
4151
+ "type": "string",
4152
+ "enum": []
4153
+ }
4154
+ },
4155
+ "examples": {
4156
+ "type": "array",
4157
+ "items": {
4158
+ "type": "string"
4159
+ },
4160
+ "default": []
4161
+ }
4162
+ },
4163
+ "x-aeon": {
4164
+ "scope": "statusBanner",
4165
+ "parts": [
4166
+ "root",
4167
+ "copy",
4168
+ "title",
4169
+ "body",
4170
+ "actions"
4171
+ ],
4172
+ "states": [
4173
+ "info",
4174
+ "success",
4175
+ "warning",
4176
+ "danger",
4177
+ "neutral"
4178
+ ],
4179
+ "machine": null,
4180
+ "runtime": "props",
4181
+ "events": [],
4182
+ "slots": {
4183
+ "Root": "statusBanner.root",
4184
+ "Title": "statusBanner.title",
4185
+ "Body": "statusBanner.body",
4186
+ "Actions": "statusBanner.actions"
4187
+ },
4188
+ "examples": []
4189
+ }
4190
+ },
4191
+ "separator": {
4192
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4193
+ "$id": "https://aeon-ui.com/schemas/separator.json",
4194
+ "title": "Separator",
4195
+ "description": "Static divider — orientation prop only.",
4196
+ "type": "object",
4197
+ "additionalProperties": false,
4198
+ "required": [
4199
+ "component",
4200
+ "scope"
4201
+ ],
4202
+ "properties": {
4203
+ "component": {
4204
+ "const": "Separator"
4205
+ },
4206
+ "scope": {
4207
+ "const": "separator"
4208
+ },
4209
+ "parts": {
4210
+ "type": "array",
4211
+ "description": "Anatomy part keys — map to data-aeon-part",
4212
+ "items": {
4213
+ "type": "string",
4214
+ "enum": [
4215
+ "root"
4216
+ ]
4217
+ },
4218
+ "uniqueItems": true
4219
+ },
4220
+ "states": {
4221
+ "type": "array",
4222
+ "description": "Allowed data-aeon-state values (stable states only)",
4223
+ "items": {
4224
+ "type": "string",
4225
+ "enum": [
4226
+ "horizontal",
4227
+ "vertical"
4228
+ ]
4229
+ },
4230
+ "uniqueItems": true
4231
+ },
4232
+ "props": {
4233
+ "type": "object",
4234
+ "additionalProperties": false,
4235
+ "properties": {}
4236
+ },
4237
+ "slots": {
4238
+ "type": "object",
4239
+ "description": "Named composition slots / compound parts",
4240
+ "additionalProperties": {
4241
+ "type": "string"
4242
+ },
4243
+ "properties": {
4244
+ "Root": {
4245
+ "const": "separator.root",
4246
+ "description": "separator.root"
4247
+ }
4248
+ }
4249
+ },
4250
+ "machine": {
4251
+ "type": [
4252
+ "string",
4253
+ "null"
4254
+ ],
4255
+ "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
4256
+ "const": null
4257
+ },
4258
+ "runtime": {
4259
+ "type": "string",
4260
+ "description": "How headless state is driven at runtime",
4261
+ "const": "props"
4262
+ },
4263
+ "events": {
4264
+ "type": "array",
4265
+ "items": {
4266
+ "type": "string",
4267
+ "enum": []
4268
+ }
4269
+ },
4270
+ "examples": {
4271
+ "type": "array",
4272
+ "items": {
4273
+ "type": "string"
4274
+ },
4275
+ "default": []
4276
+ }
4277
+ },
4278
+ "x-aeon": {
4279
+ "scope": "separator",
4280
+ "parts": [
4281
+ "root"
4282
+ ],
4283
+ "states": [
4284
+ "horizontal",
4285
+ "vertical"
4286
+ ],
4287
+ "machine": null,
4288
+ "runtime": "props",
4289
+ "events": [],
4290
+ "slots": {
4291
+ "Root": "separator.root"
4292
+ },
4293
+ "examples": []
4294
+ }
4295
+ },
4296
+ "composer": {
4297
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4298
+ "$id": "https://aeon-ui.com/schemas/composer.json",
4299
+ "title": "Composer",
4300
+ "description": "Compose chrome — root state prop idle | sending | disabled | error.",
4301
+ "type": "object",
4302
+ "additionalProperties": false,
4303
+ "required": [
4304
+ "component",
4305
+ "scope"
4306
+ ],
4307
+ "properties": {
4308
+ "component": {
4309
+ "const": "Composer"
4310
+ },
4311
+ "scope": {
4312
+ "const": "composer"
4313
+ },
4314
+ "parts": {
4315
+ "type": "array",
4316
+ "description": "Anatomy part keys — map to data-aeon-part",
4317
+ "items": {
4318
+ "type": "string",
4319
+ "enum": [
4320
+ "root",
4321
+ "input",
4322
+ "actions",
4323
+ "send"
4324
+ ]
4325
+ },
4326
+ "uniqueItems": true
4327
+ },
4328
+ "states": {
4329
+ "type": "array",
4330
+ "description": "Allowed data-aeon-state values (stable states only)",
4331
+ "items": {
4332
+ "type": "string",
4333
+ "enum": [
4334
+ "idle",
4335
+ "sending",
4336
+ "disabled",
4337
+ "error"
4338
+ ]
4339
+ },
4340
+ "uniqueItems": true
4341
+ },
4342
+ "props": {
4343
+ "type": "object",
4344
+ "additionalProperties": false,
4345
+ "properties": {}
4346
+ },
4347
+ "slots": {
4348
+ "type": "object",
4349
+ "description": "Named composition slots / compound parts",
4350
+ "additionalProperties": {
4351
+ "type": "string"
4352
+ },
4353
+ "properties": {
4354
+ "Root": {
4355
+ "const": "composer.root",
4356
+ "description": "composer.root"
4357
+ },
4358
+ "Input": {
4359
+ "const": "composer.input",
4360
+ "description": "composer.input"
4361
+ },
4362
+ "Send": {
4363
+ "const": "composer.send",
4364
+ "description": "composer.send"
4365
+ }
4366
+ }
4367
+ },
4368
+ "machine": {
4369
+ "type": [
4370
+ "string",
4371
+ "null"
4372
+ ],
4373
+ "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
4374
+ "const": null
4375
+ },
4376
+ "runtime": {
4377
+ "type": "string",
4378
+ "description": "How headless state is driven at runtime",
4379
+ "const": "props"
4380
+ },
4381
+ "events": {
4382
+ "type": "array",
4383
+ "items": {
4384
+ "type": "string",
4385
+ "enum": []
4386
+ }
4387
+ },
4388
+ "examples": {
4389
+ "type": "array",
4390
+ "items": {
4391
+ "type": "string"
4392
+ },
4393
+ "default": []
4394
+ }
4395
+ },
4396
+ "x-aeon": {
4397
+ "scope": "composer",
4398
+ "parts": [
4399
+ "root",
4400
+ "input",
4401
+ "actions",
4402
+ "send"
4403
+ ],
4404
+ "states": [
4405
+ "idle",
4406
+ "sending",
4407
+ "disabled",
4408
+ "error"
4409
+ ],
4410
+ "machine": null,
4411
+ "runtime": "props",
4412
+ "events": [],
4413
+ "slots": {
4414
+ "Root": "composer.root",
4415
+ "Input": "composer.input",
4416
+ "Send": "composer.send"
4417
+ },
4418
+ "examples": []
4419
+ }
4420
+ },
4421
+ "thread": {
4422
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4423
+ "$id": "https://aeon-ui.com/schemas/thread.json",
4424
+ "title": "Thread",
4425
+ "description": "Message stream — item state prop mine | theirs | pending | failed.",
4426
+ "type": "object",
4427
+ "additionalProperties": false,
4428
+ "required": [
4429
+ "component",
4430
+ "scope"
4431
+ ],
4432
+ "properties": {
4433
+ "component": {
4434
+ "const": "Thread"
4435
+ },
4436
+ "scope": {
4437
+ "const": "thread"
4438
+ },
4439
+ "parts": {
4440
+ "type": "array",
4441
+ "description": "Anatomy part keys — map to data-aeon-part",
4442
+ "items": {
4443
+ "type": "string",
4444
+ "enum": [
4445
+ "root",
4446
+ "list",
4447
+ "item",
4448
+ "bubble",
4449
+ "meta",
4450
+ "day"
4451
+ ]
4452
+ },
4453
+ "uniqueItems": true
4454
+ },
4455
+ "states": {
4456
+ "type": "array",
4457
+ "description": "Allowed data-aeon-state values (stable states only)",
4458
+ "items": {
4459
+ "type": "string",
4460
+ "enum": [
4461
+ "mine",
4462
+ "theirs",
4463
+ "pending",
4464
+ "failed"
4465
+ ]
4466
+ },
4467
+ "uniqueItems": true
4468
+ },
4469
+ "props": {
4470
+ "type": "object",
4471
+ "additionalProperties": false,
4472
+ "properties": {}
4473
+ },
4474
+ "slots": {
4475
+ "type": "object",
4476
+ "description": "Named composition slots / compound parts",
4477
+ "additionalProperties": {
4478
+ "type": "string"
4479
+ },
4480
+ "properties": {
4481
+ "Root": {
4482
+ "const": "thread.root",
4483
+ "description": "thread.root"
4484
+ },
4485
+ "Item": {
4486
+ "const": "thread.item",
4487
+ "description": "thread.item"
4488
+ },
4489
+ "Bubble": {
4490
+ "const": "thread.bubble",
4491
+ "description": "thread.bubble"
4492
+ }
4493
+ }
4494
+ },
4495
+ "machine": {
4496
+ "type": [
4497
+ "string",
4498
+ "null"
4499
+ ],
4500
+ "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
4501
+ "const": null
4502
+ },
4503
+ "runtime": {
4504
+ "type": "string",
4505
+ "description": "How headless state is driven at runtime",
4506
+ "const": "props"
4507
+ },
4508
+ "events": {
4509
+ "type": "array",
4510
+ "items": {
4511
+ "type": "string",
4512
+ "enum": []
4513
+ }
4514
+ },
4515
+ "examples": {
4516
+ "type": "array",
4517
+ "items": {
4518
+ "type": "string"
4519
+ },
4520
+ "default": []
4521
+ }
4522
+ },
4523
+ "x-aeon": {
4524
+ "scope": "thread",
4525
+ "parts": [
4526
+ "root",
4527
+ "list",
4528
+ "item",
4529
+ "bubble",
4530
+ "meta",
4531
+ "day"
4532
+ ],
4533
+ "states": [
4534
+ "mine",
4535
+ "theirs",
4536
+ "pending",
4537
+ "failed"
4538
+ ],
4539
+ "machine": null,
4540
+ "runtime": "props",
4541
+ "events": [],
4542
+ "slots": {
4543
+ "Root": "thread.root",
4544
+ "Item": "thread.item",
4545
+ "Bubble": "thread.bubble"
4546
+ },
4547
+ "examples": []
4548
+ }
4549
+ },
4550
+ "identity": {
4551
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4552
+ "$id": "https://aeon-ui.com/schemas/identity.json",
4553
+ "title": "Identity",
4554
+ "description": "Avatar + title + subtitle strip — presentational layout, not a niche product scope.",
4555
+ "type": "object",
4556
+ "additionalProperties": false,
4557
+ "required": [
4558
+ "component",
4559
+ "scope"
4560
+ ],
4561
+ "properties": {
4562
+ "component": {
4563
+ "const": "Identity"
4564
+ },
4565
+ "scope": {
4566
+ "const": "identity"
4567
+ },
4568
+ "parts": {
4569
+ "type": "array",
4570
+ "description": "Anatomy part keys — map to data-aeon-part",
4571
+ "items": {
4572
+ "type": "string",
4573
+ "enum": [
4574
+ "root",
4575
+ "avatar",
4576
+ "title",
4577
+ "subtitle",
4578
+ "meta",
4579
+ "trailing"
4580
+ ]
4581
+ },
4582
+ "uniqueItems": true
4583
+ },
4584
+ "states": {
4585
+ "type": "array",
4586
+ "description": "Allowed data-aeon-state values (stable states only)",
4587
+ "items": {
4588
+ "type": "string",
4589
+ "enum": [
4590
+ "idle"
4591
+ ]
4592
+ },
4593
+ "uniqueItems": true
4594
+ },
4595
+ "props": {
4596
+ "type": "object",
4597
+ "additionalProperties": false,
4598
+ "properties": {
4599
+ "size": {
4600
+ "type": "string",
4601
+ "enum": [
4602
+ "sm",
4603
+ "md",
4604
+ "lg"
4605
+ ]
4606
+ }
4607
+ }
4608
+ },
4609
+ "slots": {
4610
+ "type": "object",
4611
+ "description": "Named composition slots / compound parts",
4612
+ "additionalProperties": {
4613
+ "type": "string"
4614
+ },
4615
+ "properties": {
4616
+ "Root": {
4617
+ "const": "identity.root",
4618
+ "description": "identity.root"
4619
+ },
4620
+ "Avatar": {
4621
+ "const": "identity.avatar",
4622
+ "description": "identity.avatar"
4623
+ },
4624
+ "Title": {
4625
+ "const": "identity.title",
4626
+ "description": "identity.title"
4627
+ },
4628
+ "Subtitle": {
4629
+ "const": "identity.subtitle",
4630
+ "description": "identity.subtitle"
4631
+ },
4632
+ "Meta": {
4633
+ "const": "identity.meta",
4634
+ "description": "identity.meta"
4635
+ },
4636
+ "Trailing": {
4637
+ "const": "identity.trailing",
4638
+ "description": "identity.trailing"
4639
+ }
4640
+ }
4641
+ },
4642
+ "machine": {
4643
+ "type": [
4644
+ "string",
4645
+ "null"
4646
+ ],
4647
+ "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
4648
+ "const": null
4649
+ },
4650
+ "runtime": {
4651
+ "type": "string",
4652
+ "description": "How headless state is driven at runtime",
4653
+ "const": "layout"
4654
+ },
4655
+ "events": {
4656
+ "type": "array",
4657
+ "items": {
4658
+ "type": "string",
4659
+ "enum": []
4660
+ }
4661
+ },
4662
+ "examples": {
4663
+ "type": "array",
4664
+ "items": {
4665
+ "type": "string"
4666
+ },
4667
+ "default": []
4668
+ }
4669
+ },
4670
+ "x-aeon": {
4671
+ "scope": "identity",
4672
+ "parts": [
4673
+ "root",
4674
+ "avatar",
4675
+ "title",
4676
+ "subtitle",
4677
+ "meta",
4678
+ "trailing"
4679
+ ],
4680
+ "states": [
4681
+ "idle"
4682
+ ],
4683
+ "machine": null,
4684
+ "runtime": "layout",
4685
+ "events": [],
4686
+ "slots": {
4687
+ "Root": "identity.root",
4688
+ "Avatar": "identity.avatar",
4689
+ "Title": "identity.title",
4690
+ "Subtitle": "identity.subtitle",
4691
+ "Meta": "identity.meta",
4692
+ "Trailing": "identity.trailing"
4693
+ },
4694
+ "examples": []
4695
+ }
4696
+ },
4697
+ "profileHeader": {
4698
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4699
+ "$id": "https://aeon-ui.com/schemas/profileHeader.json",
4700
+ "title": "ProfileHeader",
4701
+ "description": "Dense account header — identity · metrics · actions. Universal people chrome.",
4702
+ "type": "object",
4703
+ "additionalProperties": false,
4704
+ "required": [
4705
+ "component",
4706
+ "scope"
4707
+ ],
4708
+ "properties": {
4709
+ "component": {
4710
+ "const": "ProfileHeader"
4711
+ },
4712
+ "scope": {
4713
+ "const": "profileHeader"
4714
+ },
4715
+ "parts": {
4716
+ "type": "array",
4717
+ "description": "Anatomy part keys — map to data-aeon-part",
4718
+ "items": {
4719
+ "type": "string",
4720
+ "enum": [
4721
+ "root",
4722
+ "media",
4723
+ "identity",
4724
+ "metrics",
4725
+ "actions",
4726
+ "body"
4727
+ ]
4728
+ },
4729
+ "uniqueItems": true
4730
+ },
4731
+ "states": {
4732
+ "type": "array",
4733
+ "description": "Allowed data-aeon-state values (stable states only)",
4734
+ "items": {
4735
+ "type": "string",
4736
+ "enum": [
4737
+ "idle"
4738
+ ]
4739
+ },
4740
+ "uniqueItems": true
4741
+ },
4742
+ "props": {
4743
+ "type": "object",
4744
+ "additionalProperties": false,
4745
+ "properties": {}
4746
+ },
4747
+ "slots": {
4748
+ "type": "object",
4749
+ "description": "Named composition slots / compound parts",
4750
+ "additionalProperties": {
4751
+ "type": "string"
4752
+ },
4753
+ "properties": {
4754
+ "Root": {
4755
+ "const": "profileHeader.root",
4756
+ "description": "profileHeader.root"
4757
+ },
4758
+ "Media": {
4759
+ "const": "profileHeader.media",
4760
+ "description": "profileHeader.media"
4761
+ },
4762
+ "Identity": {
4763
+ "const": "profileHeader.identity",
4764
+ "description": "profileHeader.identity"
4765
+ },
4766
+ "Metrics": {
4767
+ "const": "profileHeader.metrics",
4768
+ "description": "profileHeader.metrics"
4769
+ },
4770
+ "Actions": {
4771
+ "const": "profileHeader.actions",
4772
+ "description": "profileHeader.actions"
4773
+ },
4774
+ "Body": {
4775
+ "const": "profileHeader.body",
4776
+ "description": "profileHeader.body"
4777
+ }
4778
+ }
4779
+ },
4780
+ "machine": {
4781
+ "type": [
4782
+ "string",
4783
+ "null"
4784
+ ],
4785
+ "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
4786
+ "const": null
4787
+ },
4788
+ "runtime": {
4789
+ "type": "string",
4790
+ "description": "How headless state is driven at runtime",
4791
+ "const": "layout"
4792
+ },
4793
+ "events": {
4794
+ "type": "array",
4795
+ "items": {
4796
+ "type": "string",
4797
+ "enum": []
4798
+ }
4799
+ },
4800
+ "examples": {
4801
+ "type": "array",
4802
+ "items": {
4803
+ "type": "string"
4804
+ },
4805
+ "default": []
4806
+ }
4807
+ },
4808
+ "x-aeon": {
4809
+ "scope": "profileHeader",
4810
+ "parts": [
4811
+ "root",
4812
+ "media",
4813
+ "identity",
4814
+ "metrics",
4815
+ "actions",
4816
+ "body"
4817
+ ],
4818
+ "states": [
4819
+ "idle"
4820
+ ],
4821
+ "machine": null,
4822
+ "runtime": "layout",
4823
+ "events": [],
4824
+ "slots": {
4825
+ "Root": "profileHeader.root",
4826
+ "Media": "profileHeader.media",
4827
+ "Identity": "profileHeader.identity",
4828
+ "Metrics": "profileHeader.metrics",
4829
+ "Actions": "profileHeader.actions",
4830
+ "Body": "profileHeader.body"
4831
+ },
4832
+ "examples": []
4833
+ }
4834
+ },
4835
+ "metricStrip": {
4836
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4837
+ "$id": "https://aeon-ui.com/schemas/metricStrip.json",
4838
+ "title": "MetricStrip",
4839
+ "description": "Dense value|label chips — cluster or loose density. Generic stats only.",
4840
+ "type": "object",
4841
+ "additionalProperties": false,
4842
+ "required": [
4843
+ "component",
4844
+ "scope"
4845
+ ],
4846
+ "properties": {
4847
+ "component": {
4848
+ "const": "MetricStrip"
4849
+ },
4850
+ "scope": {
4851
+ "const": "metricStrip"
4852
+ },
4853
+ "parts": {
4854
+ "type": "array",
4855
+ "description": "Anatomy part keys — map to data-aeon-part",
4856
+ "items": {
4857
+ "type": "string",
4858
+ "enum": [
4859
+ "root",
4860
+ "chip",
4861
+ "value",
4862
+ "label"
4863
+ ]
4864
+ },
4865
+ "uniqueItems": true
4866
+ },
4867
+ "states": {
4868
+ "type": "array",
4869
+ "description": "Allowed data-aeon-state values (stable states only)",
4870
+ "items": {
4871
+ "type": "string",
4872
+ "enum": [
4873
+ "idle"
4874
+ ]
4875
+ },
4876
+ "uniqueItems": true
4877
+ },
4878
+ "props": {
4879
+ "type": "object",
4880
+ "additionalProperties": false,
4881
+ "properties": {
4882
+ "density": {
4883
+ "type": "string",
4884
+ "enum": [
4885
+ "cluster",
4886
+ "loose"
4887
+ ]
4888
+ }
4889
+ }
4890
+ },
4891
+ "slots": {
4892
+ "type": "object",
4893
+ "description": "Named composition slots / compound parts",
4894
+ "additionalProperties": {
4895
+ "type": "string"
4896
+ },
4897
+ "properties": {
4898
+ "Root": {
4899
+ "const": "metricStrip.root",
4900
+ "description": "metricStrip.root"
4901
+ },
4902
+ "Chip": {
4903
+ "const": "metricStrip.chip",
4904
+ "description": "metricStrip.chip"
4905
+ },
4906
+ "Value": {
4907
+ "const": "metricStrip.value",
4908
+ "description": "metricStrip.value"
4909
+ },
4910
+ "Label": {
4911
+ "const": "metricStrip.label",
4912
+ "description": "metricStrip.label"
4913
+ }
4914
+ }
4915
+ },
4916
+ "machine": {
4917
+ "type": [
4918
+ "string",
4919
+ "null"
4920
+ ],
4921
+ "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
4922
+ "const": null
4923
+ },
4924
+ "runtime": {
4925
+ "type": "string",
4926
+ "description": "How headless state is driven at runtime",
4927
+ "const": "layout"
4928
+ },
4929
+ "events": {
4930
+ "type": "array",
4931
+ "items": {
4932
+ "type": "string",
4933
+ "enum": []
4934
+ }
4935
+ },
4936
+ "examples": {
4937
+ "type": "array",
4938
+ "items": {
4939
+ "type": "string"
4940
+ },
4941
+ "default": []
4942
+ }
4943
+ },
4944
+ "x-aeon": {
4945
+ "scope": "metricStrip",
4946
+ "parts": [
4947
+ "root",
4948
+ "chip",
4949
+ "value",
4950
+ "label"
4951
+ ],
4952
+ "states": [
4953
+ "idle"
4954
+ ],
4955
+ "machine": null,
4956
+ "runtime": "layout",
4957
+ "events": [],
4958
+ "slots": {
4959
+ "Root": "metricStrip.root",
4960
+ "Chip": "metricStrip.chip",
4961
+ "Value": "metricStrip.value",
4962
+ "Label": "metricStrip.label"
4963
+ },
4964
+ "examples": []
4965
+ }
4966
+ },
4967
+ "listRow": {
4968
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4969
+ "$id": "https://aeon-ui.com/schemas/listRow.json",
4970
+ "title": "ListRow",
4971
+ "description": "Settings / menu row — leading · label · trailing. Layout only.",
4972
+ "type": "object",
4973
+ "additionalProperties": false,
4974
+ "required": [
4975
+ "component",
4976
+ "scope"
4977
+ ],
4978
+ "properties": {
4979
+ "component": {
4980
+ "const": "ListRow"
4981
+ },
4982
+ "scope": {
4983
+ "const": "listRow"
4984
+ },
4985
+ "parts": {
4986
+ "type": "array",
4987
+ "description": "Anatomy part keys — map to data-aeon-part",
4988
+ "items": {
4989
+ "type": "string",
4990
+ "enum": [
4991
+ "root",
4992
+ "leading",
4993
+ "label",
4994
+ "description",
4995
+ "trailing"
4996
+ ]
4997
+ },
4998
+ "uniqueItems": true
4999
+ },
5000
+ "states": {
5001
+ "type": "array",
5002
+ "description": "Allowed data-aeon-state values (stable states only)",
5003
+ "items": {
5004
+ "type": "string",
5005
+ "enum": [
5006
+ "idle"
5007
+ ]
5008
+ },
5009
+ "uniqueItems": true
5010
+ },
5011
+ "props": {
5012
+ "type": "object",
5013
+ "additionalProperties": false,
5014
+ "properties": {}
5015
+ },
5016
+ "slots": {
5017
+ "type": "object",
5018
+ "description": "Named composition slots / compound parts",
5019
+ "additionalProperties": {
5020
+ "type": "string"
5021
+ },
5022
+ "properties": {
5023
+ "Root": {
5024
+ "const": "listRow.root",
5025
+ "description": "listRow.root"
5026
+ },
5027
+ "Leading": {
5028
+ "const": "listRow.leading",
5029
+ "description": "listRow.leading"
5030
+ },
5031
+ "Label": {
5032
+ "const": "listRow.label",
5033
+ "description": "listRow.label"
5034
+ },
5035
+ "Description": {
5036
+ "const": "listRow.description",
5037
+ "description": "listRow.description"
5038
+ },
5039
+ "Trailing": {
5040
+ "const": "listRow.trailing",
5041
+ "description": "listRow.trailing"
5042
+ }
5043
+ }
5044
+ },
5045
+ "machine": {
5046
+ "type": [
5047
+ "string",
5048
+ "null"
5049
+ ],
5050
+ "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
5051
+ "const": null
5052
+ },
5053
+ "runtime": {
5054
+ "type": "string",
5055
+ "description": "How headless state is driven at runtime",
5056
+ "const": "layout"
5057
+ },
5058
+ "events": {
5059
+ "type": "array",
5060
+ "items": {
5061
+ "type": "string",
5062
+ "enum": []
5063
+ }
5064
+ },
5065
+ "examples": {
5066
+ "type": "array",
5067
+ "items": {
5068
+ "type": "string"
5069
+ },
5070
+ "default": []
5071
+ }
5072
+ },
5073
+ "x-aeon": {
5074
+ "scope": "listRow",
5075
+ "parts": [
5076
+ "root",
5077
+ "leading",
5078
+ "label",
5079
+ "description",
5080
+ "trailing"
5081
+ ],
5082
+ "states": [
5083
+ "idle"
5084
+ ],
5085
+ "machine": null,
5086
+ "runtime": "layout",
5087
+ "events": [],
5088
+ "slots": {
5089
+ "Root": "listRow.root",
5090
+ "Leading": "listRow.leading",
5091
+ "Label": "listRow.label",
5092
+ "Description": "listRow.description",
5093
+ "Trailing": "listRow.trailing"
5094
+ },
5095
+ "examples": []
5096
+ }
5097
+ },
5098
+ "entry": {
5099
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
5100
+ "$id": "https://aeon-ui.com/schemas/entry.json",
5101
+ "title": "Entry",
5102
+ "description": "Universal multi-value card (feed stack or listing split). Root state idle | selected | muted — never invent niche scopes.",
5103
+ "type": "object",
5104
+ "additionalProperties": false,
5105
+ "required": [
5106
+ "component",
5107
+ "scope"
5108
+ ],
5109
+ "properties": {
5110
+ "component": {
5111
+ "const": "Entry"
5112
+ },
5113
+ "scope": {
5114
+ "const": "entry"
5115
+ },
5116
+ "parts": {
5117
+ "type": "array",
5118
+ "description": "Anatomy part keys — map to data-aeon-part",
5119
+ "items": {
5120
+ "type": "string",
5121
+ "enum": [
5122
+ "list",
5123
+ "root",
5124
+ "header",
5125
+ "leading",
5126
+ "heading",
5127
+ "title",
5128
+ "subtitle",
5129
+ "meta",
5130
+ "media",
5131
+ "body",
5132
+ "values",
5133
+ "value",
5134
+ "actions",
5135
+ "footer"
5136
+ ]
5137
+ },
5138
+ "uniqueItems": true
5139
+ },
5140
+ "states": {
5141
+ "type": "array",
5142
+ "description": "Allowed data-aeon-state values (stable states only)",
5143
+ "items": {
5144
+ "type": "string",
5145
+ "enum": [
5146
+ "idle",
5147
+ "selected",
5148
+ "muted"
5149
+ ]
5150
+ },
5151
+ "uniqueItems": true
5152
+ },
5153
+ "props": {
5154
+ "type": "object",
5155
+ "additionalProperties": false,
5156
+ "properties": {
5157
+ "state": {
5158
+ "type": "string",
5159
+ "enum": [
5160
+ "idle",
5161
+ "selected",
5162
+ "muted"
5163
+ ],
5164
+ "default": "idle"
5165
+ },
5166
+ "density": {
5167
+ "type": "string",
5168
+ "enum": [
5169
+ "compact",
5170
+ "cozy"
5171
+ ]
5172
+ },
5173
+ "layout": {
5174
+ "type": "string",
5175
+ "enum": [
5176
+ "stack",
5177
+ "split"
5178
+ ]
5179
+ }
5180
+ }
5181
+ },
5182
+ "slots": {
5183
+ "type": "object",
5184
+ "description": "Named composition slots / compound parts",
5185
+ "additionalProperties": {
5186
+ "type": "string"
5187
+ },
5188
+ "properties": {
5189
+ "List": {
5190
+ "const": "entry.list",
5191
+ "description": "entry.list"
5192
+ },
5193
+ "Root": {
5194
+ "const": "entry.root",
5195
+ "description": "entry.root"
5196
+ },
5197
+ "Header": {
5198
+ "const": "entry.header",
5199
+ "description": "entry.header"
5200
+ },
5201
+ "Body": {
5202
+ "const": "entry.body",
5203
+ "description": "entry.body"
5204
+ },
5205
+ "Actions": {
5206
+ "const": "entry.actions",
5207
+ "description": "entry.actions"
5208
+ },
5209
+ "Footer": {
5210
+ "const": "entry.footer",
5211
+ "description": "entry.footer"
5212
+ }
5213
+ }
5214
+ },
5215
+ "machine": {
5216
+ "type": [
5217
+ "string",
5218
+ "null"
5219
+ ],
5220
+ "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
5221
+ "const": null
5222
+ },
5223
+ "runtime": {
5224
+ "type": "string",
5225
+ "description": "How headless state is driven at runtime",
5226
+ "const": "props"
5227
+ },
5228
+ "events": {
5229
+ "type": "array",
5230
+ "items": {
5231
+ "type": "string",
5232
+ "enum": []
5233
+ }
5234
+ },
5235
+ "examples": {
5236
+ "type": "array",
5237
+ "items": {
5238
+ "type": "string"
5239
+ },
5240
+ "default": []
5241
+ }
5242
+ },
5243
+ "x-aeon": {
5244
+ "scope": "entry",
5245
+ "parts": [
5246
+ "list",
5247
+ "root",
5248
+ "header",
5249
+ "leading",
5250
+ "heading",
5251
+ "title",
5252
+ "subtitle",
5253
+ "meta",
5254
+ "media",
5255
+ "body",
5256
+ "values",
5257
+ "value",
5258
+ "actions",
5259
+ "footer"
5260
+ ],
5261
+ "states": [
5262
+ "idle",
5263
+ "selected",
5264
+ "muted"
5265
+ ],
5266
+ "machine": null,
5267
+ "runtime": "props",
5268
+ "events": [],
5269
+ "slots": {
5270
+ "List": "entry.list",
5271
+ "Root": "entry.root",
5272
+ "Header": "entry.header",
5273
+ "Body": "entry.body",
5274
+ "Actions": "entry.actions",
5275
+ "Footer": "entry.footer"
5276
+ },
5277
+ "examples": []
5278
+ }
5279
+ },
5280
+ "conversation": {
5281
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
5282
+ "$id": "https://aeon-ui.com/schemas/conversation.json",
5283
+ "title": "Conversation",
5284
+ "description": "Inbox / DM list — item state prop idle | unread | selected. Universal messaging chrome.",
5285
+ "type": "object",
5286
+ "additionalProperties": false,
5287
+ "required": [
5288
+ "component",
5289
+ "scope"
5290
+ ],
5291
+ "properties": {
5292
+ "component": {
5293
+ "const": "Conversation"
5294
+ },
5295
+ "scope": {
5296
+ "const": "conversation"
5297
+ },
5298
+ "parts": {
5299
+ "type": "array",
5300
+ "description": "Anatomy part keys — map to data-aeon-part",
5301
+ "items": {
5302
+ "type": "string",
5303
+ "enum": [
5304
+ "root",
5305
+ "item",
5306
+ "leading",
5307
+ "body",
5308
+ "title",
5309
+ "preview",
5310
+ "meta",
5311
+ "badge"
5312
+ ]
5313
+ },
5314
+ "uniqueItems": true
5315
+ },
5316
+ "states": {
5317
+ "type": "array",
5318
+ "description": "Allowed data-aeon-state values (stable states only)",
5319
+ "items": {
5320
+ "type": "string",
5321
+ "enum": [
5322
+ "idle",
5323
+ "unread",
5324
+ "selected"
5325
+ ]
5326
+ },
5327
+ "uniqueItems": true
5328
+ },
5329
+ "props": {
5330
+ "type": "object",
5331
+ "additionalProperties": false,
5332
+ "properties": {
5333
+ "state": {
5334
+ "type": "string",
5335
+ "enum": [
5336
+ "idle",
5337
+ "unread",
5338
+ "selected"
5339
+ ],
5340
+ "default": "idle"
5341
+ }
5342
+ }
5343
+ },
5344
+ "slots": {
5345
+ "type": "object",
5346
+ "description": "Named composition slots / compound parts",
5347
+ "additionalProperties": {
5348
+ "type": "string"
5349
+ },
5350
+ "properties": {
5351
+ "Root": {
5352
+ "const": "conversation.root",
5353
+ "description": "conversation.root"
5354
+ },
5355
+ "Item": {
5356
+ "const": "conversation.item",
5357
+ "description": "conversation.item"
5358
+ },
5359
+ "Leading": {
5360
+ "const": "conversation.leading",
5361
+ "description": "conversation.leading"
5362
+ },
5363
+ "Body": {
5364
+ "const": "conversation.body",
5365
+ "description": "conversation.body"
5366
+ },
5367
+ "Title": {
5368
+ "const": "conversation.title",
5369
+ "description": "conversation.title"
5370
+ },
5371
+ "Preview": {
5372
+ "const": "conversation.preview",
5373
+ "description": "conversation.preview"
5374
+ },
5375
+ "Meta": {
5376
+ "const": "conversation.meta",
5377
+ "description": "conversation.meta"
5378
+ },
5379
+ "Badge": {
5380
+ "const": "conversation.badge",
5381
+ "description": "conversation.badge"
5382
+ }
5383
+ }
5384
+ },
5385
+ "machine": {
5386
+ "type": [
5387
+ "string",
5388
+ "null"
5389
+ ],
5390
+ "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
5391
+ "const": null
5392
+ },
5393
+ "runtime": {
5394
+ "type": "string",
5395
+ "description": "How headless state is driven at runtime",
5396
+ "const": "props"
5397
+ },
5398
+ "events": {
5399
+ "type": "array",
5400
+ "items": {
5401
+ "type": "string",
5402
+ "enum": []
5403
+ }
5404
+ },
5405
+ "examples": {
5406
+ "type": "array",
5407
+ "items": {
5408
+ "type": "string"
5409
+ },
5410
+ "default": []
5411
+ }
5412
+ },
5413
+ "x-aeon": {
5414
+ "scope": "conversation",
5415
+ "parts": [
5416
+ "root",
5417
+ "item",
5418
+ "leading",
5419
+ "body",
5420
+ "title",
5421
+ "preview",
5422
+ "meta",
5423
+ "badge"
5424
+ ],
5425
+ "states": [
5426
+ "idle",
5427
+ "unread",
5428
+ "selected"
5429
+ ],
5430
+ "machine": null,
5431
+ "runtime": "props",
5432
+ "events": [],
5433
+ "slots": {
5434
+ "Root": "conversation.root",
5435
+ "Item": "conversation.item",
5436
+ "Leading": "conversation.leading",
5437
+ "Body": "conversation.body",
5438
+ "Title": "conversation.title",
5439
+ "Preview": "conversation.preview",
5440
+ "Meta": "conversation.meta",
5441
+ "Badge": "conversation.badge"
5442
+ },
5443
+ "examples": []
5444
+ }
2297
5445
  }
2298
5446
  }
2299
5447
  }