@adia-ai/web-components 0.6.20 → 0.6.22
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 +72 -0
- package/components/accordion/accordion-item.a2ui.json +20 -3
- package/components/accordion/accordion-item.yaml +24 -0
- package/components/accordion/accordion.a2ui.json +1 -1
- package/components/accordion/accordion.d.ts +8 -1
- package/components/accordion/accordion.yaml +15 -2
- package/components/action-list/action-item.a2ui.json +19 -3
- package/components/action-list/action-item.yaml +24 -0
- package/components/action-list/action-list.a2ui.json +12 -2
- package/components/action-list/action-list.yaml +13 -3
- package/components/agent-artifact/agent-artifact.a2ui.json +9 -2
- package/components/agent-artifact/agent-artifact.d.ts +1 -1
- package/components/agent-artifact/agent-artifact.yaml +17 -3
- package/components/agent-feedback-bar/agent-feedback-bar.a2ui.json +9 -2
- package/components/agent-feedback-bar/agent-feedback-bar.d.ts +8 -1
- package/components/agent-feedback-bar/agent-feedback-bar.yaml +19 -3
- package/components/agent-questions/agent-questions.a2ui.json +8 -2
- package/components/agent-questions/agent-questions.d.ts +8 -1
- package/components/agent-questions/agent-questions.yaml +19 -3
- package/components/agent-reasoning/agent-reasoning.yaml +9 -1
- package/components/agent-suggestions/agent-suggestions.a2ui.json +9 -2
- package/components/agent-suggestions/agent-suggestions.d.ts +7 -1
- package/components/agent-suggestions/agent-suggestions.yaml +18 -3
- package/components/agent-trace/agent-trace.a2ui.json +9 -2
- package/components/agent-trace/agent-trace.d.ts +1 -1
- package/components/agent-trace/agent-trace.yaml +16 -3
- package/components/alert/alert.a2ui.json +1 -1
- package/components/alert/alert.css +8 -0
- package/components/alert/alert.d.ts +9 -1
- package/components/alert/alert.yaml +16 -2
- package/components/aside/aside.a2ui.json +7 -1
- package/components/aside/aside.yaml +33 -2
- package/components/avatar/avatar-group.a2ui.json +20 -3
- package/components/avatar/avatar-group.yaml +24 -0
- package/components/avatar/avatar.a2ui.json +1 -1
- package/components/avatar/avatar.d.ts +7 -1
- package/components/avatar/avatar.yaml +14 -2
- package/components/badge/badge.a2ui.json +1 -1
- package/components/badge/badge.d.ts +7 -1
- package/components/badge/badge.yaml +14 -2
- package/components/block/block.a2ui.json +9 -4
- package/components/block/block.d.ts +9 -3
- package/components/block/block.yaml +25 -5
- package/components/block/class.js +23 -0
- package/components/breadcrumb/breadcrumb.a2ui.json +5 -1
- package/components/breadcrumb/breadcrumb.yaml +33 -2
- package/components/button/button.a2ui.json +22 -2
- package/components/button/button.yaml +21 -3
- package/components/calendar-picker/calendar-picker.a2ui.json +1 -1
- package/components/calendar-picker/calendar-picker.yaml +13 -2
- package/components/canvas/canvas.a2ui.json +6 -2
- package/components/canvas/canvas.yaml +20 -3
- package/components/card/card.css +23 -2
- package/components/card/card.yaml +12 -0
- package/components/chart/chart.css +4 -2
- package/components/chart/chart.yaml +9 -1
- package/components/chart-legend/chart-legend.yaml +7 -1
- package/components/chat-thread/chat-thread.a2ui.json +6 -2
- package/components/chat-thread/chat-thread.d.ts +8 -1
- package/components/chat-thread/chat-thread.yaml +21 -3
- package/components/check/check.a2ui.json +13 -3
- package/components/check/check.yaml +18 -3
- package/components/code/code.a2ui.json +1 -1
- package/components/code/code.yaml +13 -2
- package/components/col/class.js +39 -0
- package/components/col/col.a2ui.json +12 -5
- package/components/col/col.d.ts +12 -4
- package/components/col/col.yaml +27 -7
- package/components/color-input/color-input.yaml +27 -1
- package/components/color-picker/color-picker.a2ui.json +8 -2
- package/components/color-picker/color-picker.yaml +15 -3
- package/components/command/command.a2ui.json +7 -2
- package/components/command/command.d.ts +9 -1
- package/components/command/command.yaml +39 -3
- package/components/demo-toggle/demo-toggle.yaml +7 -1
- package/components/description-list/description-list.a2ui.json +5 -1
- package/components/description-list/description-list.yaml +11 -2
- package/components/divider/divider.a2ui.json +1 -1
- package/components/divider/divider.d.ts +8 -1
- package/components/divider/divider.yaml +15 -2
- package/components/drawer/drawer.yaml +32 -1
- package/components/embed/embed.a2ui.json +1 -1
- package/components/embed/embed.d.ts +8 -1
- package/components/embed/embed.yaml +17 -2
- package/components/empty-state/empty-state.a2ui.json +19 -2
- package/components/empty-state/empty-state.css +14 -0
- package/components/empty-state/empty-state.d.ts +3 -1
- package/components/empty-state/empty-state.yaml +50 -3
- package/components/feed/feed-item.a2ui.json +21 -3
- package/components/feed/feed-item.yaml +25 -0
- package/components/feed/feed.a2ui.json +23 -3
- package/components/feed/feed.css +9 -4
- package/components/feed/feed.yaml +26 -0
- package/components/fields/fields.yaml +7 -1
- package/components/footer/footer.a2ui.json +7 -1
- package/components/footer/footer.yaml +27 -2
- package/components/grid/class.js +57 -0
- package/components/grid/grid.a2ui.json +3 -3
- package/components/grid/grid.d.ts +3 -3
- package/components/grid/grid.yaml +22 -8
- package/components/header/header.a2ui.json +8 -1
- package/components/header/header.yaml +30 -2
- package/components/heatmap/heatmap.yaml +7 -1
- package/components/icon/icon.a2ui.json +9 -2
- package/components/icon/icon.d.ts +1 -1
- package/components/icon/icon.yaml +32 -3
- package/components/image/image.yaml +7 -1
- package/components/input/input.css +8 -1
- package/components/input/input.yaml +29 -1
- package/components/inspector/inspector.a2ui.json +7 -2
- package/components/inspector/inspector.d.ts +9 -1
- package/components/inspector/inspector.yaml +23 -3
- package/components/kbd/kbd.a2ui.json +1 -1
- package/components/kbd/kbd.d.ts +1 -1
- package/components/kbd/kbd.yaml +11 -2
- package/components/list/list-item.a2ui.json +21 -3
- package/components/list/list-item.yaml +25 -0
- package/components/list/list.a2ui.json +7 -2
- package/components/list/list.d.ts +9 -1
- package/components/list/list.yaml +21 -3
- package/components/menu/menu-divider.a2ui.json +17 -3
- package/components/menu/menu-divider.yaml +35 -0
- package/components/menu/menu-item.a2ui.json +19 -3
- package/components/menu/menu-item.yaml +42 -0
- package/components/menu/menu.a2ui.json +7 -1
- package/components/menu/menu.yaml +33 -2
- package/components/modal/modal.a2ui.json +7 -2
- package/components/modal/modal.d.ts +10 -1
- package/components/modal/modal.yaml +48 -3
- package/components/nav/nav.a2ui.json +16 -2
- package/components/nav/nav.yaml +40 -3
- package/components/nav-group/nav-group.a2ui.json +12 -2
- package/components/nav-group/nav-group.yaml +37 -3
- package/components/nav-item/nav-item.a2ui.json +13 -2
- package/components/nav-item/nav-item.yaml +40 -3
- package/components/noodles/noodles.a2ui.json +12 -2
- package/components/noodles/noodles.yaml +14 -3
- package/components/option-card/option-card.yaml +27 -1
- package/components/otp-input/otp-input.yaml +24 -1
- package/components/page/page.a2ui.json +7 -1
- package/components/page/page.yaml +9 -2
- package/components/pagination/pagination.a2ui.json +1 -1
- package/components/pagination/pagination.d.ts +1 -1
- package/components/pagination/pagination.yaml +13 -2
- package/components/pane/pane.a2ui.json +1 -1
- package/components/pane/pane.d.ts +7 -1
- package/components/pane/pane.yaml +33 -2
- package/components/pipeline-status/pipeline-status.a2ui.json +6 -2
- package/components/pipeline-status/pipeline-status.d.ts +1 -1
- package/components/pipeline-status/pipeline-status.yaml +18 -3
- package/components/popover/popover.yaml +30 -1
- package/components/progress/progress.a2ui.json +1 -1
- package/components/progress/progress.d.ts +1 -1
- package/components/progress/progress.yaml +13 -2
- package/components/progress-row/progress-row.a2ui.json +12 -2
- package/components/progress-row/progress-row.yaml +13 -3
- package/components/radio/radio.a2ui.json +1 -1
- package/components/radio/radio.yaml +9 -1
- package/components/range/range.yaml +7 -1
- package/components/rating/rating.a2ui.json +4 -1
- package/components/rating/rating.yaml +10 -2
- package/components/richtext/richtext.a2ui.json +6 -2
- package/components/richtext/richtext.d.ts +9 -1
- package/components/richtext/richtext.yaml +20 -3
- package/components/row/class.js +34 -0
- package/components/row/row.a2ui.json +11 -5
- package/components/row/row.d.ts +11 -4
- package/components/row/row.yaml +25 -7
- package/components/search/search.a2ui.json +5 -1
- package/components/search/search.yaml +11 -2
- package/components/section/section.a2ui.json +7 -1
- package/components/section/section.yaml +36 -2
- package/components/segment/segment.a2ui.json +8 -2
- package/components/segment/segment.d.ts +7 -1
- package/components/segment/segment.yaml +16 -3
- package/components/segmented/segmented.a2ui.json +6 -1
- package/components/segmented/segmented.css +5 -0
- package/components/segmented/segmented.yaml +12 -2
- package/components/select/select.a2ui.json +1 -1
- package/components/select/select.yaml +34 -2
- package/components/skeleton/skeleton.a2ui.json +7 -2
- package/components/skeleton/skeleton.d.ts +1 -1
- package/components/skeleton/skeleton.yaml +17 -3
- package/components/slider/slider.yaml +7 -1
- package/components/stack/stack.a2ui.json +14 -3
- package/components/stack/stack.d.ts +9 -1
- package/components/stack/stack.yaml +22 -4
- package/components/stat/stat.a2ui.json +6 -2
- package/components/stat/stat.css +5 -2
- package/components/stat/stat.d.ts +1 -1
- package/components/stat/stat.yaml +16 -3
- package/components/step-progress/step-progress.yaml +7 -1
- package/components/stepper/stepper-item.a2ui.json +20 -3
- package/components/stepper/stepper-item.yaml +24 -0
- package/components/stepper/stepper.a2ui.json +1 -1
- package/components/stepper/stepper.d.ts +1 -1
- package/components/stepper/stepper.yaml +13 -2
- package/components/stream/stream.a2ui.json +12 -2
- package/components/stream/stream.yaml +15 -3
- package/components/swatch/swatch.yaml +7 -1
- package/components/swiper/swiper.yaml +7 -1
- package/components/switch/switch.a2ui.json +6 -2
- package/components/switch/switch.yaml +16 -2
- package/components/table/cell-types.js +23 -10
- package/components/table/class.js +12 -2
- package/components/table/table.a2ui.json +6 -1
- package/components/table/table.css +68 -1
- package/components/table/table.d.ts +3 -1
- package/components/table/table.test.js +64 -0
- package/components/table/table.yaml +39 -2
- package/components/table-toolbar/table-toolbar.yaml +27 -1
- package/components/tabs/tab.a2ui.json +17 -3
- package/components/tabs/tab.yaml +39 -0
- package/components/tabs/tabs.a2ui.json +1 -1
- package/components/tabs/tabs.d.ts +1 -1
- package/components/tabs/tabs.yaml +36 -2
- package/components/tag/tag.a2ui.json +6 -2
- package/components/tag/tag.d.ts +9 -1
- package/components/tag/tag.yaml +38 -3
- package/components/text/class.js +13 -0
- package/components/text/text.a2ui.json +9 -2
- package/components/text/text.d.ts +1 -1
- package/components/text/text.yaml +12 -5
- package/components/textarea/textarea.a2ui.json +15 -3
- package/components/textarea/textarea.yaml +41 -4
- package/components/timeline/timeline-item.a2ui.json +20 -3
- package/components/timeline/timeline-item.yaml +24 -0
- package/components/timeline/timeline.a2ui.json +8 -1
- package/components/timeline/timeline.yaml +9 -2
- package/components/toast/toast.a2ui.json +6 -2
- package/components/toast/toast.yaml +19 -3
- package/components/toggle-group/toggle-group.a2ui.json +13 -3
- package/components/toggle-group/toggle-group.d.ts +1 -1
- package/components/toggle-group/toggle-group.yaml +19 -4
- package/components/toggle-group/toggle-option.a2ui.json +18 -3
- package/components/toggle-group/toggle-option.yaml +23 -0
- package/components/toggle-scheme/toggle-scheme.yaml +4 -0
- package/components/toolbar/toolbar-group.a2ui.json +18 -3
- package/components/toolbar/toolbar-group.yaml +23 -0
- package/components/toolbar/toolbar.yaml +7 -1
- package/components/tooltip/tooltip.yaml +24 -1
- package/components/tree/tree-item.a2ui.json +19 -3
- package/components/tree/tree-item.yaml +42 -0
- package/components/tree/tree.a2ui.json +6 -1
- package/components/tree/tree.yaml +31 -2
- package/components/upload/upload.yaml +7 -1
- package/core/index.js +1 -0
- package/core/responsive.d.ts +29 -0
- package/core/responsive.js +120 -0
- package/core/responsive.test.js +121 -0
- package/package.json +1 -1
- package/styles/tokens.css +6 -6
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://adiaui.dev/a2ui/v0_9/components/Inspector.json",
|
|
4
4
|
"title": "Inspector",
|
|
5
|
-
"description": "Developer
|
|
5
|
+
"description": "Developer-tools pane for inspecting A2UI runtime state — composes\n<tabs-ui> + <code-ui> to show the live document JSON, rendered\nHTML, and event log for the bound <canvas-ui> / <a2ui-root>. The\nright-pane inspector of the a2ui-editor app. Use inside an\n<editor-sidebar slot=\"trailing\"> for debugging A2UI playgrounds;\nnot for end-user inspector panes (build those bespoke with\n<field-ui> + form rows per the editor-inspector-pane recipe in\npatterns-recipes.md).\n",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"allOf": [
|
|
8
8
|
{
|
|
@@ -46,7 +46,12 @@
|
|
|
46
46
|
"inspector"
|
|
47
47
|
],
|
|
48
48
|
"name": "UIInspector",
|
|
49
|
-
"related": [
|
|
49
|
+
"related": [
|
|
50
|
+
"A2uiRoot",
|
|
51
|
+
"EditorSidebar",
|
|
52
|
+
"Code",
|
|
53
|
+
"Tabs"
|
|
54
|
+
],
|
|
50
55
|
"slots": {
|
|
51
56
|
"default": {
|
|
52
57
|
"description": "Default slot — primary child content."
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `<inspector-ui>` — Developer
|
|
2
|
+
* `<inspector-ui>` — Developer-tools pane for inspecting A2UI runtime state — composes
|
|
3
|
+
<tabs-ui> + <code-ui> to show the live document JSON, rendered
|
|
4
|
+
HTML, and event log for the bound <canvas-ui> / <a2ui-root>. The
|
|
5
|
+
right-pane inspector of the a2ui-editor app. Use inside an
|
|
6
|
+
<editor-sidebar slot="trailing"> for debugging A2UI playgrounds;
|
|
7
|
+
not for end-user inspector panes (build those bespoke with
|
|
8
|
+
<field-ui> + form rows per the editor-inspector-pane recipe in
|
|
9
|
+
patterns-recipes.md).
|
|
10
|
+
|
|
3
11
|
*
|
|
4
12
|
* @see https://ui-kit.exe.xyz/site/components/inspector
|
|
5
13
|
*
|
|
@@ -4,7 +4,15 @@ tag: inspector-ui
|
|
|
4
4
|
component: Inspector
|
|
5
5
|
category: agent
|
|
6
6
|
version: 1
|
|
7
|
-
description:
|
|
7
|
+
description: |
|
|
8
|
+
Developer-tools pane for inspecting A2UI runtime state — composes
|
|
9
|
+
<tabs-ui> + <code-ui> to show the live document JSON, rendered
|
|
10
|
+
HTML, and event log for the bound <canvas-ui> / <a2ui-root>. The
|
|
11
|
+
right-pane inspector of the a2ui-editor app. Use inside an
|
|
12
|
+
<editor-sidebar slot="trailing"> for debugging A2UI playgrounds;
|
|
13
|
+
not for end-user inspector panes (build those bespoke with
|
|
14
|
+
<field-ui> + form rows per the editor-inspector-pane recipe in
|
|
15
|
+
patterns-recipes.md).
|
|
8
16
|
# Per ADR-0027 — primitives that programmatically create other primitives
|
|
9
17
|
# do NOT auto-import them. Consumer (or demo shell) must explicitly import.
|
|
10
18
|
composes:
|
|
@@ -26,7 +34,15 @@ states:
|
|
|
26
34
|
traits: []
|
|
27
35
|
tokens: {}
|
|
28
36
|
a2ui:
|
|
29
|
-
rules:
|
|
37
|
+
rules:
|
|
38
|
+
- rule: 'Developer-tools pane for A2UI runtime state — composes <tabs-ui> + <code-ui> internally.'
|
|
39
|
+
reason: 'Devtools composition.'
|
|
40
|
+
- rule: 'Binds to a <canvas-ui> / <a2ui-root> via value= or implicit selector; shows live doc JSON + rendered HTML + event log.'
|
|
41
|
+
reason: 'Binding contract.'
|
|
42
|
+
- rule: 'Use only in dev/debug surfaces; not for product UI.'
|
|
43
|
+
reason: 'Surface scope.'
|
|
44
|
+
- rule: 'Place in a right-pane inside <editor-shell-ui>''s editor-sidebar slot for editor-style inspector layouts.'
|
|
45
|
+
reason: 'Canonical inspector placement.'
|
|
30
46
|
anti_patterns: []
|
|
31
47
|
examples:
|
|
32
48
|
- name: basic-inspector
|
|
@@ -42,4 +58,8 @@ synonyms:
|
|
|
42
58
|
- property-grid
|
|
43
59
|
- record-detail
|
|
44
60
|
- devtools-pane
|
|
45
|
-
related:
|
|
61
|
+
related:
|
|
62
|
+
- A2uiRoot
|
|
63
|
+
- EditorSidebar
|
|
64
|
+
- Code
|
|
65
|
+
- Tabs
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://adiaui.dev/a2ui/v0_9/components/Kbd.json",
|
|
4
4
|
"title": "Kbd",
|
|
5
|
-
"description": "Keyboard key cap. Purely decorative, content from innerHTML.",
|
|
5
|
+
"description": "Keyboard key cap. Purely decorative, content from innerHTML — typically a single key or short chord like \"⌘K\" or \"Ctrl+Shift+P\". Use inline in menu items, tooltips, command hints, and shortcut documentation.",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"allOf": [
|
|
8
8
|
{
|
package/components/kbd/kbd.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `<kbd-ui>` — Keyboard key cap. Purely decorative, content from innerHTML.
|
|
2
|
+
* `<kbd-ui>` — Keyboard key cap. Purely decorative, content from innerHTML — typically a single key or short chord like "⌘K" or "Ctrl+Shift+P". Use inline in menu items, tooltips, command hints, and shortcut documentation.
|
|
3
3
|
*
|
|
4
4
|
* @see https://ui-kit.exe.xyz/site/components/kbd
|
|
5
5
|
*
|
package/components/kbd/kbd.yaml
CHANGED
|
@@ -4,7 +4,10 @@ tag: kbd-ui
|
|
|
4
4
|
component: Kbd
|
|
5
5
|
category: display
|
|
6
6
|
version: 1
|
|
7
|
-
description:
|
|
7
|
+
description: >-
|
|
8
|
+
Keyboard key cap. Purely decorative, content from innerHTML — typically
|
|
9
|
+
a single key or short chord like "⌘K" or "Ctrl+Shift+P". Use inline in
|
|
10
|
+
menu items, tooltips, command hints, and shortcut documentation.
|
|
8
11
|
props:
|
|
9
12
|
size:
|
|
10
13
|
description: Sizing scale (compact tier — sm / md only).
|
|
@@ -24,7 +27,13 @@ states:
|
|
|
24
27
|
traits: []
|
|
25
28
|
tokens: {}
|
|
26
29
|
a2ui:
|
|
27
|
-
rules:
|
|
30
|
+
rules:
|
|
31
|
+
- rule: 'Inline-only — content from innerHTML, typically one or two key labels.'
|
|
32
|
+
reason: 'Decorative; do not place block content inside.'
|
|
33
|
+
- rule: 'In menu items, use the kbd= attribute on <menu-item-ui> instead of nesting <kbd-ui> directly.'
|
|
34
|
+
reason: 'Menu-item has positioning logic for shortcut hints.'
|
|
35
|
+
- rule: 'Chord notation uses + between keys (Ctrl+Shift+P); platform-symbol variants ⌘⌥⇧ are fine.'
|
|
36
|
+
reason: 'Convention for cross-platform docs.'
|
|
28
37
|
anti_patterns: []
|
|
29
38
|
examples:
|
|
30
39
|
- name: kbd-shortcuts
|
|
@@ -39,12 +39,30 @@
|
|
|
39
39
|
"composes": [],
|
|
40
40
|
"events": {},
|
|
41
41
|
"examples": [],
|
|
42
|
-
"keywords": [
|
|
42
|
+
"keywords": [
|
|
43
|
+
"list-item",
|
|
44
|
+
"list-row",
|
|
45
|
+
"list-entry",
|
|
46
|
+
"item-row",
|
|
47
|
+
"row"
|
|
48
|
+
],
|
|
43
49
|
"name": "UIListItem",
|
|
44
|
-
"related": [
|
|
50
|
+
"related": [
|
|
51
|
+
"List",
|
|
52
|
+
"NavItem",
|
|
53
|
+
"MenuItem",
|
|
54
|
+
"TreeItem"
|
|
55
|
+
],
|
|
45
56
|
"slots": {},
|
|
46
57
|
"states": [],
|
|
47
|
-
"synonyms": {
|
|
58
|
+
"synonyms": {
|
|
59
|
+
"list-item": [
|
|
60
|
+
"row",
|
|
61
|
+
"entry",
|
|
62
|
+
"list-row",
|
|
63
|
+
"item"
|
|
64
|
+
]
|
|
65
|
+
},
|
|
48
66
|
"tag": "list-item-ui",
|
|
49
67
|
"tokens": {},
|
|
50
68
|
"traits": [],
|
|
@@ -27,3 +27,28 @@ props:
|
|
|
27
27
|
description:
|
|
28
28
|
description: Secondary line below the primary text. Subtle color.
|
|
29
29
|
type: string
|
|
30
|
+
|
|
31
|
+
keywords:
|
|
32
|
+
- list-item
|
|
33
|
+
- list-row
|
|
34
|
+
- list-entry
|
|
35
|
+
- item-row
|
|
36
|
+
- row
|
|
37
|
+
|
|
38
|
+
synonyms:
|
|
39
|
+
list-item: [row, entry, list-row, item]
|
|
40
|
+
|
|
41
|
+
related:
|
|
42
|
+
- List
|
|
43
|
+
- NavItem
|
|
44
|
+
- MenuItem
|
|
45
|
+
- TreeItem
|
|
46
|
+
|
|
47
|
+
a2ui:
|
|
48
|
+
rules:
|
|
49
|
+
- rule: 'Child of <list-ui> — one row of generic-list content.'
|
|
50
|
+
reason: 'Cluster contract.'
|
|
51
|
+
- rule: 'For navigation lists use <nav-item-ui> inside <nav-ui>; for menu items use <menu-item-ui>; for tree rows use <tree-item-ui>.'
|
|
52
|
+
reason: 'Per-context list-row primitives — list-item is generic.'
|
|
53
|
+
- rule: 'Interactive list-items should have role=''button'' or be wrapped in <button-ui>; default is non-interactive.'
|
|
54
|
+
reason: 'Accessibility — semantic clarity.'
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://adiaui.dev/a2ui/v0_9/components/List.json",
|
|
4
4
|
"title": "List",
|
|
5
|
-
"description": "Styled list with optional icons and
|
|
5
|
+
"description": "Styled flat list with optional row dividers and icons — each row\nis a <list-item-ui> child. Selectable mode via [selectable] +\n[selectedKey] / `select` event. Composes <icon-ui> for row leading\nglyphs. Distinct from <nav-ui> (sidebar navigation, route-aware),\n<tree-ui> (hierarchical with arbitrary nesting), and <table-ui>\n(tabular data with columns). Use list-ui for non-navigable,\nnon-tabular vertical rows — comment lists, file lists, message\nstreams outside chat-shell.\n",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"allOf": [
|
|
8
8
|
{
|
|
@@ -79,7 +79,12 @@
|
|
|
79
79
|
"star"
|
|
80
80
|
],
|
|
81
81
|
"name": "UIList",
|
|
82
|
-
"related": [
|
|
82
|
+
"related": [
|
|
83
|
+
"ListItem",
|
|
84
|
+
"Tree",
|
|
85
|
+
"Nav",
|
|
86
|
+
"Table"
|
|
87
|
+
],
|
|
83
88
|
"slots": {},
|
|
84
89
|
"states": [
|
|
85
90
|
{
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `<list-ui>` — Styled list with optional
|
|
2
|
+
* `<list-ui>` — Styled flat list with optional row dividers and icons — each row
|
|
3
|
+
is a <list-item-ui> child. Selectable mode via [selectable] +
|
|
4
|
+
[selectedKey] / `select` event. Composes <icon-ui> for row leading
|
|
5
|
+
glyphs. Distinct from <nav-ui> (sidebar navigation, route-aware),
|
|
6
|
+
<tree-ui> (hierarchical with arbitrary nesting), and <table-ui>
|
|
7
|
+
(tabular data with columns). Use list-ui for non-navigable,
|
|
8
|
+
non-tabular vertical rows — comment lists, file lists, message
|
|
9
|
+
streams outside chat-shell.
|
|
10
|
+
|
|
3
11
|
*
|
|
4
12
|
* @see https://ui-kit.exe.xyz/site/components/list
|
|
5
13
|
*
|
|
@@ -6,7 +6,15 @@ tag: list-ui
|
|
|
6
6
|
component: List
|
|
7
7
|
category: layout
|
|
8
8
|
version: 1
|
|
9
|
-
description:
|
|
9
|
+
description: |
|
|
10
|
+
Styled flat list with optional row dividers and icons — each row
|
|
11
|
+
is a <list-item-ui> child. Selectable mode via [selectable] +
|
|
12
|
+
[selectedKey] / `select` event. Composes <icon-ui> for row leading
|
|
13
|
+
glyphs. Distinct from <nav-ui> (sidebar navigation, route-aware),
|
|
14
|
+
<tree-ui> (hierarchical with arbitrary nesting), and <table-ui>
|
|
15
|
+
(tabular data with columns). Use list-ui for non-navigable,
|
|
16
|
+
non-tabular vertical rows — comment lists, file lists, message
|
|
17
|
+
streams outside chat-shell.
|
|
10
18
|
# Per ADR-0027 — primitives that programmatically create other primitives
|
|
11
19
|
# do NOT auto-import them. Consumer (or demo shell) must explicitly import.
|
|
12
20
|
composes:
|
|
@@ -46,7 +54,13 @@ states:
|
|
|
46
54
|
traits: []
|
|
47
55
|
tokens: {}
|
|
48
56
|
a2ui:
|
|
49
|
-
rules:
|
|
57
|
+
rules:
|
|
58
|
+
- rule: 'Generic vertical list container — hosts <list-item-ui> or arbitrary children.'
|
|
59
|
+
reason: 'Lowest-friction list primitive.'
|
|
60
|
+
- rule: 'For interactive selection lists use <nav-ui> (single-select navigation) or <menu-ui> (action menu); list-ui is content display.'
|
|
61
|
+
reason: 'Different interaction contracts.'
|
|
62
|
+
- rule: 'For data-grid / sortable / sticky-header needs use <table-ui> instead.'
|
|
63
|
+
reason: 'Table has different semantics.'
|
|
50
64
|
anti_patterns: []
|
|
51
65
|
examples:
|
|
52
66
|
- name: basic-list
|
|
@@ -103,4 +117,8 @@ synonyms:
|
|
|
103
117
|
- bookmark
|
|
104
118
|
- list
|
|
105
119
|
- leaderboard
|
|
106
|
-
related:
|
|
120
|
+
related:
|
|
121
|
+
- ListItem
|
|
122
|
+
- Tree
|
|
123
|
+
- Nav
|
|
124
|
+
- Table
|
|
@@ -27,12 +27,26 @@
|
|
|
27
27
|
"composes": [],
|
|
28
28
|
"events": {},
|
|
29
29
|
"examples": [],
|
|
30
|
-
"keywords": [
|
|
30
|
+
"keywords": [
|
|
31
|
+
"menu-divider",
|
|
32
|
+
"separator",
|
|
33
|
+
"menu-rule"
|
|
34
|
+
],
|
|
31
35
|
"name": "UIMenuDivider",
|
|
32
|
-
"related": [
|
|
36
|
+
"related": [
|
|
37
|
+
"Menu",
|
|
38
|
+
"MenuItem",
|
|
39
|
+
"Divider"
|
|
40
|
+
],
|
|
33
41
|
"slots": {},
|
|
34
42
|
"states": [],
|
|
35
|
-
"synonyms": {
|
|
43
|
+
"synonyms": {
|
|
44
|
+
"menu-divider": [
|
|
45
|
+
"menu-separator",
|
|
46
|
+
"menu-rule",
|
|
47
|
+
"popover-divider"
|
|
48
|
+
]
|
|
49
|
+
},
|
|
36
50
|
"tag": "menu-divider-ui",
|
|
37
51
|
"tokens": {},
|
|
38
52
|
"traits": [],
|
|
@@ -13,3 +13,38 @@ category: navigation
|
|
|
13
13
|
version: 1
|
|
14
14
|
description: |-
|
|
15
15
|
Visual separator between groups of `<menu-item-ui>` rows. Renders as a horizontal rule with role="separator".
|
|
16
|
+
|
|
17
|
+
a2ui:
|
|
18
|
+
rules:
|
|
19
|
+
- >-
|
|
20
|
+
<menu-divider-ui> MUST be a direct child of <menu-ui>; a raw
|
|
21
|
+
<hr> will render OUTSIDE the popover because <menu-ui> only
|
|
22
|
+
hoists <menu-item-ui> and <menu-divider-ui> children via its
|
|
23
|
+
direct-child selector.
|
|
24
|
+
- >-
|
|
25
|
+
Use to group items by semantic tier — primary actions →
|
|
26
|
+
secondary → destructive (danger). Avoid leading / trailing
|
|
27
|
+
dividers and consecutive dividers; they produce visual noise
|
|
28
|
+
without grouping value.
|
|
29
|
+
- >-
|
|
30
|
+
Do not place a divider as the first or last child of <menu-ui> —
|
|
31
|
+
the top / bottom popover padding already provides separation
|
|
32
|
+
from the chrome.
|
|
33
|
+
- >-
|
|
34
|
+
Has no props, slots, or events. Treat as an inert separator with
|
|
35
|
+
role="separator". If you need a labeled group, split into
|
|
36
|
+
multiple <menu-ui> instances stacked, not custom content inside
|
|
37
|
+
a divider.
|
|
38
|
+
|
|
39
|
+
keywords:
|
|
40
|
+
- menu-divider
|
|
41
|
+
- separator
|
|
42
|
+
- menu-rule
|
|
43
|
+
|
|
44
|
+
related:
|
|
45
|
+
- Menu
|
|
46
|
+
- MenuItem
|
|
47
|
+
- Divider
|
|
48
|
+
|
|
49
|
+
synonyms:
|
|
50
|
+
menu-divider: [menu-separator, menu-rule, popover-divider]
|
|
@@ -56,9 +56,19 @@
|
|
|
56
56
|
"composes": [],
|
|
57
57
|
"events": {},
|
|
58
58
|
"examples": [],
|
|
59
|
-
"keywords": [
|
|
59
|
+
"keywords": [
|
|
60
|
+
"menu-item",
|
|
61
|
+
"menu-row",
|
|
62
|
+
"popover-action",
|
|
63
|
+
"dropdown-item"
|
|
64
|
+
],
|
|
60
65
|
"name": "UIMenuItem",
|
|
61
|
-
"related": [
|
|
66
|
+
"related": [
|
|
67
|
+
"Menu",
|
|
68
|
+
"MenuDivider",
|
|
69
|
+
"Button",
|
|
70
|
+
"NavItem"
|
|
71
|
+
],
|
|
62
72
|
"slots": {
|
|
63
73
|
"icon": {
|
|
64
74
|
"description": "Custom leading element override; falls through to `[icon]` prop if not slotted."
|
|
@@ -68,7 +78,13 @@
|
|
|
68
78
|
}
|
|
69
79
|
},
|
|
70
80
|
"states": [],
|
|
71
|
-
"synonyms": {
|
|
81
|
+
"synonyms": {
|
|
82
|
+
"menu-item": [
|
|
83
|
+
"dropdown-item",
|
|
84
|
+
"menu-row",
|
|
85
|
+
"popover-action"
|
|
86
|
+
]
|
|
87
|
+
},
|
|
72
88
|
"tag": "menu-item-ui",
|
|
73
89
|
"tokens": {},
|
|
74
90
|
"traits": [],
|
|
@@ -43,3 +43,45 @@ slots:
|
|
|
43
43
|
description: Custom leading element override; falls through to `[icon]` prop if not slotted.
|
|
44
44
|
text:
|
|
45
45
|
description: Custom label content; falls through to `[text]` prop if not slotted.
|
|
46
|
+
|
|
47
|
+
a2ui:
|
|
48
|
+
rules:
|
|
49
|
+
- >-
|
|
50
|
+
<menu-item-ui> MUST be a direct child of <menu-ui>; do not place
|
|
51
|
+
inside arbitrary containers or other components — <menu-ui>
|
|
52
|
+
hoists items into its top-layer popover via a `:scope > menu-item-ui`
|
|
53
|
+
selector that requires direct descendancy.
|
|
54
|
+
- >-
|
|
55
|
+
Always set a stable [value] — it is the only identifier surfaced
|
|
56
|
+
on the parent's `action` event detail. [text] is the visible
|
|
57
|
+
label; optional [icon] is a Phosphor icon name shown leading the
|
|
58
|
+
label.
|
|
59
|
+
- >-
|
|
60
|
+
Use [variant="danger"] exclusively for destructive / irreversible
|
|
61
|
+
actions (Delete, Remove). "Sign out" is NOT danger. Pair danger
|
|
62
|
+
items with an explicit confirm flow (<modal-ui> destructive-confirm
|
|
63
|
+
pattern) when the action cannot be undone.
|
|
64
|
+
- >-
|
|
65
|
+
Set [disabled] (not [hidden]) when an action is contextually
|
|
66
|
+
unavailable — disabled items remain visible for affordance
|
|
67
|
+
discoverability but skip roving focus + don't fire `action`.
|
|
68
|
+
- >-
|
|
69
|
+
Prefer [icon] + [text] props over slotted markup for consistency.
|
|
70
|
+
Use slot="icon" / slot="text" only when you need custom markup
|
|
71
|
+
(e.g. <avatar-ui slot="icon">, <kbd slot="trailing"> shortcut
|
|
72
|
+
hint).
|
|
73
|
+
|
|
74
|
+
keywords:
|
|
75
|
+
- menu-item
|
|
76
|
+
- menu-row
|
|
77
|
+
- popover-action
|
|
78
|
+
- dropdown-item
|
|
79
|
+
|
|
80
|
+
related:
|
|
81
|
+
- Menu
|
|
82
|
+
- MenuDivider
|
|
83
|
+
- Button
|
|
84
|
+
- NavItem
|
|
85
|
+
|
|
86
|
+
synonyms:
|
|
87
|
+
menu-item: [dropdown-item, menu-row, popover-action]
|
|
@@ -81,7 +81,13 @@
|
|
|
81
81
|
"right-click"
|
|
82
82
|
],
|
|
83
83
|
"name": "UIMenu",
|
|
84
|
-
"related": [
|
|
84
|
+
"related": [
|
|
85
|
+
"MenuItem",
|
|
86
|
+
"MenuDivider",
|
|
87
|
+
"Popover",
|
|
88
|
+
"Command",
|
|
89
|
+
"Button"
|
|
90
|
+
],
|
|
85
91
|
"slots": {
|
|
86
92
|
"default": {
|
|
87
93
|
"description": "Menu items with role=\"menuitem\" and optional <hr> dividers"
|
|
@@ -49,7 +49,33 @@ states:
|
|
|
49
49
|
traits: []
|
|
50
50
|
tokens: {}
|
|
51
51
|
a2ui:
|
|
52
|
-
rules:
|
|
52
|
+
rules:
|
|
53
|
+
- >-
|
|
54
|
+
<menu-ui> MUST have exactly one child with slot="trigger" (typically
|
|
55
|
+
<button-ui>, but any focusable element works). Without it the menu
|
|
56
|
+
cannot open. The trigger lives in light DOM; the items are hoisted
|
|
57
|
+
to a top-layer popover on open.
|
|
58
|
+
- >-
|
|
59
|
+
Default slot accepts only <menu-item-ui> and <menu-divider-ui>
|
|
60
|
+
children — no submenus, headers, or arbitrary content. Roving
|
|
61
|
+
tabindex + Arrow / Home / End / Enter / Escape keyboard nav is
|
|
62
|
+
built in.
|
|
63
|
+
- >-
|
|
64
|
+
Listen for the `action` event on <menu-ui> (or an ancestor —
|
|
65
|
+
bubbles). Detail = { value, text }. Do NOT treat menu-ui as a
|
|
66
|
+
value-holder; for single-select form input use <select-ui>
|
|
67
|
+
instead. Menu fires actions, doesn't store state.
|
|
68
|
+
- >-
|
|
69
|
+
Use <menu-ui> for transient action surfaces (kebab / ⋯ row
|
|
70
|
+
actions, workspace / user switchers, view-as toggles). For
|
|
71
|
+
persistent side navigation use <nav-ui>; for inline (non-popover)
|
|
72
|
+
command lists use <action-list-ui>; for searchable command
|
|
73
|
+
palettes use <command-ui> inside <admin-command>.
|
|
74
|
+
- >-
|
|
75
|
+
Set [placement="top-start"] or [placement="top-end"] when the
|
|
76
|
+
trigger sits near the bottom of the viewport (statusbar / footer
|
|
77
|
+
menus); default [placement="bottom-start"] otherwise. Adjust
|
|
78
|
+
[gap] (default 4px) only when chrome demands it.
|
|
53
79
|
anti_patterns: []
|
|
54
80
|
examples:
|
|
55
81
|
- name: basic-menu
|
|
@@ -123,4 +149,9 @@ synonyms:
|
|
|
123
149
|
right-click:
|
|
124
150
|
- popover
|
|
125
151
|
- menu
|
|
126
|
-
related:
|
|
152
|
+
related:
|
|
153
|
+
- MenuItem
|
|
154
|
+
- MenuDivider
|
|
155
|
+
- Popover
|
|
156
|
+
- Command
|
|
157
|
+
- Button
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://adiaui.dev/a2ui/v0_9/components/Modal.json",
|
|
4
4
|
"title": "Modal",
|
|
5
|
-
"description": "Centered dialog overlay using native <dialog>.
|
|
5
|
+
"description": "Centered dialog overlay using native <dialog> — same portal /\nbackdrop / focus-trap / Escape-dismiss primitives as <drawer-ui>,\nbut anchored to the viewport center with size presets. Canonical\ninner shape mirrors drawer / card: <header> + one or more <section>\n+ optional <footer>. The header stamps a built-in title bar from\n[text] plus an auto-close button (unless [permanent]). Use modal-ui\nfor centered confirmations, destructive prompts, transient previews,\nand short focused interactions; use <drawer-ui> instead for\nedge-anchored multi-field editors and mobile sheet patterns.\n",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"allOf": [
|
|
8
8
|
{
|
|
@@ -67,7 +67,12 @@
|
|
|
67
67
|
"modal"
|
|
68
68
|
],
|
|
69
69
|
"name": "UIModal",
|
|
70
|
-
"related": [
|
|
70
|
+
"related": [
|
|
71
|
+
"Drawer",
|
|
72
|
+
"Card",
|
|
73
|
+
"Popover",
|
|
74
|
+
"AdminCommand"
|
|
75
|
+
],
|
|
71
76
|
"slots": {
|
|
72
77
|
"default": {
|
|
73
78
|
"description": "Content placed inside the modal surface. Accepts any elements (card-ui, command-ui, custom markup)."
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `<modal-ui>` — Centered dialog overlay using native <dialog
|
|
2
|
+
* `<modal-ui>` — Centered dialog overlay using native <dialog> — same portal /
|
|
3
|
+
backdrop / focus-trap / Escape-dismiss primitives as <drawer-ui>,
|
|
4
|
+
but anchored to the viewport center with size presets. Canonical
|
|
5
|
+
inner shape mirrors drawer / card: <header> + one or more <section>
|
|
6
|
+
+ optional <footer>. The header stamps a built-in title bar from
|
|
7
|
+
[text] plus an auto-close button (unless [permanent]). Use modal-ui
|
|
8
|
+
for centered confirmations, destructive prompts, transient previews,
|
|
9
|
+
and short focused interactions; use <drawer-ui> instead for
|
|
10
|
+
edge-anchored multi-field editors and mobile sheet patterns.
|
|
11
|
+
|
|
3
12
|
*
|
|
4
13
|
* @see https://ui-kit.exe.xyz/site/components/modal
|
|
5
14
|
*
|
|
@@ -4,7 +4,16 @@ tag: modal-ui
|
|
|
4
4
|
component: Modal
|
|
5
5
|
category: container
|
|
6
6
|
version: 1
|
|
7
|
-
description:
|
|
7
|
+
description: |
|
|
8
|
+
Centered dialog overlay using native <dialog> — same portal /
|
|
9
|
+
backdrop / focus-trap / Escape-dismiss primitives as <drawer-ui>,
|
|
10
|
+
but anchored to the viewport center with size presets. Canonical
|
|
11
|
+
inner shape mirrors drawer / card: <header> + one or more <section>
|
|
12
|
+
+ optional <footer>. The header stamps a built-in title bar from
|
|
13
|
+
[text] plus an auto-close button (unless [permanent]). Use modal-ui
|
|
14
|
+
for centered confirmations, destructive prompts, transient previews,
|
|
15
|
+
and short focused interactions; use <drawer-ui> instead for
|
|
16
|
+
edge-anchored multi-field editors and mobile sheet patterns.
|
|
8
17
|
props:
|
|
9
18
|
open:
|
|
10
19
|
description: Controls overlay visibility. Setting to true opens the surface with entry animation.
|
|
@@ -57,7 +66,39 @@ tokens:
|
|
|
57
66
|
--modal-shadow:
|
|
58
67
|
description: Override surface box shadow
|
|
59
68
|
a2ui:
|
|
60
|
-
rules:
|
|
69
|
+
rules:
|
|
70
|
+
- >-
|
|
71
|
+
Reflect modal visibility via the [open] boolean attribute on the
|
|
72
|
+
host (open=true / open=false). Do NOT toggle [hidden], CSS
|
|
73
|
+
display, or wrap in a sibling visibility container — modal-ui
|
|
74
|
+
owns the native <dialog> lifecycle, focus trap, ::backdrop, and
|
|
75
|
+
Escape-dismiss. Listen for the `close` event to react to
|
|
76
|
+
dismiss.
|
|
77
|
+
- >-
|
|
78
|
+
Compose modal-ui with the same triplet as drawer-ui / card-ui:
|
|
79
|
+
<header> (or [slot="header"]) + <section> (or default body) +
|
|
80
|
+
<footer> (or [slot="footer"]). Set the title via [text] (which
|
|
81
|
+
stamps the heading + aria-label) or a <span slot="heading">. Do
|
|
82
|
+
not author your own close button unless using [permanent].
|
|
83
|
+
- >-
|
|
84
|
+
Use modal-ui (centered, interruptive) for short confirmations,
|
|
85
|
+
destructive prompts, and transient previews — typically ≤2 form
|
|
86
|
+
fields or a single decision. For edge-anchored multi-field detail
|
|
87
|
+
editors and mobile sheets, use <drawer-ui> instead. The
|
|
88
|
+
destructive-confirm-modal pattern lives at
|
|
89
|
+
catalog/ui-patterns/app/destructive-confirm-modal/ as the
|
|
90
|
+
canonical reference.
|
|
91
|
+
- >-
|
|
92
|
+
modal-ui is NOT the Cmd+K command palette. The palette is a
|
|
93
|
+
bespoke shell-tier component (<admin-command> under <admin-shell>);
|
|
94
|
+
do not model command palettes as modal-ui surfaces even though
|
|
95
|
+
the visual is overlay-like. The palette owns its own keyboard /
|
|
96
|
+
filter loop.
|
|
97
|
+
- >-
|
|
98
|
+
Use [size] presets (sm = 24rem | md = 32rem | lg = 48rem | xl =
|
|
99
|
+
95vw) to scale width. Do not override width with inline style or
|
|
100
|
+
wrap modal-ui in a sizing container — the [size] attribute is
|
|
101
|
+
the only supported width contract.
|
|
61
102
|
anti_patterns: []
|
|
62
103
|
examples:
|
|
63
104
|
- name: basic-modal
|
|
@@ -70,4 +111,8 @@ keywords:
|
|
|
70
111
|
synonyms:
|
|
71
112
|
tags:
|
|
72
113
|
- Dialog
|
|
73
|
-
related:
|
|
114
|
+
related:
|
|
115
|
+
- Drawer
|
|
116
|
+
- Card
|
|
117
|
+
- Popover
|
|
118
|
+
- AdminCommand
|
|
@@ -93,7 +93,13 @@
|
|
|
93
93
|
"links"
|
|
94
94
|
],
|
|
95
95
|
"name": "UINav",
|
|
96
|
-
"related": [
|
|
96
|
+
"related": [
|
|
97
|
+
"NavGroup",
|
|
98
|
+
"NavItem",
|
|
99
|
+
"Tabs",
|
|
100
|
+
"Breadcrumb",
|
|
101
|
+
"AdminSidebar"
|
|
102
|
+
],
|
|
97
103
|
"slots": {
|
|
98
104
|
"default": {
|
|
99
105
|
"description": "Primary slot — accepts <nav-group-ui> + <nav-item-ui> children, plus <hr data-nav-divider> for hand-placed dividers."
|
|
@@ -109,7 +115,15 @@
|
|
|
109
115
|
"name": "collapsed"
|
|
110
116
|
}
|
|
111
117
|
],
|
|
112
|
-
"synonyms": {
|
|
118
|
+
"synonyms": {
|
|
119
|
+
"nav": [
|
|
120
|
+
"sidebar",
|
|
121
|
+
"side-nav",
|
|
122
|
+
"navigation-rail",
|
|
123
|
+
"primary-nav",
|
|
124
|
+
"section-nav"
|
|
125
|
+
]
|
|
126
|
+
},
|
|
113
127
|
"tag": "nav-ui",
|
|
114
128
|
"tokens": {},
|
|
115
129
|
"traits": [],
|