@adia-ai/web-components 0.6.21 → 0.6.23
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.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.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 +50 -0
- package/components/row/row.a2ui.json +17 -6
- package/components/row/row.d.ts +14 -5
- package/components/row/row.yaml +36 -8
- 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 +6 -2
- package/components/table/table.css +49 -1
- package/components/table/table.yaml +27 -1
- 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
- package/styles/typography.css +1 -0
|
@@ -68,16 +68,34 @@
|
|
|
68
68
|
}
|
|
69
69
|
},
|
|
70
70
|
"examples": [],
|
|
71
|
-
"keywords": [
|
|
71
|
+
"keywords": [
|
|
72
|
+
"feed-item",
|
|
73
|
+
"notification",
|
|
74
|
+
"toast-row",
|
|
75
|
+
"alert-row",
|
|
76
|
+
"feed-entry",
|
|
77
|
+
"notification-card"
|
|
78
|
+
],
|
|
72
79
|
"name": "UIFeedItem",
|
|
73
|
-
"related": [
|
|
80
|
+
"related": [
|
|
81
|
+
"Feed",
|
|
82
|
+
"Toast",
|
|
83
|
+
"Alert"
|
|
84
|
+
],
|
|
74
85
|
"slots": {
|
|
75
86
|
"body": {
|
|
76
87
|
"description": "Default content slot (also accepts the `text` / `heading` props)"
|
|
77
88
|
}
|
|
78
89
|
},
|
|
79
90
|
"states": {},
|
|
80
|
-
"synonyms": {
|
|
91
|
+
"synonyms": {
|
|
92
|
+
"feed-item": [
|
|
93
|
+
"notification-row",
|
|
94
|
+
"toast-entry",
|
|
95
|
+
"feed-row",
|
|
96
|
+
"alert-item"
|
|
97
|
+
]
|
|
98
|
+
},
|
|
81
99
|
"tag": "feed-item-ui",
|
|
82
100
|
"tokens": {},
|
|
83
101
|
"traits": [],
|
|
@@ -48,3 +48,28 @@ slots:
|
|
|
48
48
|
body:
|
|
49
49
|
description: Default content slot (also accepts the `text` / `heading` props)
|
|
50
50
|
states: {}
|
|
51
|
+
|
|
52
|
+
keywords:
|
|
53
|
+
- feed-item
|
|
54
|
+
- notification
|
|
55
|
+
- toast-row
|
|
56
|
+
- alert-row
|
|
57
|
+
- feed-entry
|
|
58
|
+
- notification-card
|
|
59
|
+
|
|
60
|
+
synonyms:
|
|
61
|
+
feed-item: [notification-row, toast-entry, feed-row, alert-item]
|
|
62
|
+
|
|
63
|
+
related:
|
|
64
|
+
- Feed
|
|
65
|
+
- Toast
|
|
66
|
+
- Alert
|
|
67
|
+
|
|
68
|
+
a2ui:
|
|
69
|
+
rules:
|
|
70
|
+
- rule: 'One notification entry inside <feed-ui>. Title + description + optional icon + auto-dismiss timer.'
|
|
71
|
+
reason: 'Feed-channel item primitive.'
|
|
72
|
+
- rule: 'Typically created programmatically via UIFeed.post(...); do not place declaratively.'
|
|
73
|
+
reason: 'Imperative ownership.'
|
|
74
|
+
- rule: 'Different from <alert-ui> (inline persistent) and <toast-ui> (standalone ephemeral); feed-item is feed-scoped.'
|
|
75
|
+
reason: 'Surface boundary.'
|
|
@@ -53,12 +53,32 @@
|
|
|
53
53
|
}
|
|
54
54
|
},
|
|
55
55
|
"examples": [],
|
|
56
|
-
"keywords": [
|
|
56
|
+
"keywords": [
|
|
57
|
+
"feed",
|
|
58
|
+
"notification-feed",
|
|
59
|
+
"activity-stream",
|
|
60
|
+
"toast-stack",
|
|
61
|
+
"alert-stack",
|
|
62
|
+
"snackbar-stack",
|
|
63
|
+
"notification-channel"
|
|
64
|
+
],
|
|
57
65
|
"name": "UIFeedContainer",
|
|
58
|
-
"related": [
|
|
66
|
+
"related": [
|
|
67
|
+
"FeedItem",
|
|
68
|
+
"Toast",
|
|
69
|
+
"Alert"
|
|
70
|
+
],
|
|
59
71
|
"slots": {},
|
|
60
72
|
"states": {},
|
|
61
|
-
"synonyms": {
|
|
73
|
+
"synonyms": {
|
|
74
|
+
"feed": [
|
|
75
|
+
"notification-feed",
|
|
76
|
+
"toast-feed",
|
|
77
|
+
"alert-feed",
|
|
78
|
+
"activity-feed",
|
|
79
|
+
"snackbar-stack"
|
|
80
|
+
]
|
|
81
|
+
},
|
|
62
82
|
"tag": "feed-ui",
|
|
63
83
|
"tokens": {},
|
|
64
84
|
"traits": [],
|
|
@@ -38,3 +38,29 @@ events:
|
|
|
38
38
|
description: Fired on per-item dismissal (manual close, swipe, or auto-timeout). Bubbles.
|
|
39
39
|
slots: {}
|
|
40
40
|
states: {}
|
|
41
|
+
|
|
42
|
+
keywords:
|
|
43
|
+
- feed
|
|
44
|
+
- notification-feed
|
|
45
|
+
- activity-stream
|
|
46
|
+
- toast-stack
|
|
47
|
+
- alert-stack
|
|
48
|
+
- snackbar-stack
|
|
49
|
+
- notification-channel
|
|
50
|
+
|
|
51
|
+
synonyms:
|
|
52
|
+
feed: [notification-feed, toast-feed, alert-feed, activity-feed, snackbar-stack]
|
|
53
|
+
|
|
54
|
+
related:
|
|
55
|
+
- FeedItem
|
|
56
|
+
- Toast
|
|
57
|
+
- Alert
|
|
58
|
+
|
|
59
|
+
a2ui:
|
|
60
|
+
rules:
|
|
61
|
+
- rule: 'Top-layer notification feed channel — singleton per position (top-right, bottom-center, etc.) mounted lazily into document.body.'
|
|
62
|
+
reason: 'Per docs/specs/feed-channel.md.'
|
|
63
|
+
- rule: 'Hosts <feed-item-ui> children programmatically via static API (UIFeed.post(...)). Do not place feed-items declaratively.'
|
|
64
|
+
reason: 'Imperative API ownership.'
|
|
65
|
+
- rule: 'For inline persistent alerts inside content regions use <alert-ui> instead; feed is ephemeral overlay.'
|
|
66
|
+
reason: 'Surface boundary.'
|
|
@@ -54,7 +54,13 @@ tokens:
|
|
|
54
54
|
--fields-column-gap:
|
|
55
55
|
description: Override the column-gap independently of row-gap.
|
|
56
56
|
a2ui:
|
|
57
|
-
rules:
|
|
57
|
+
rules:
|
|
58
|
+
- rule: 'Container for form rows. Hosts <field-ui> children (or <row-ui>/<col-ui> with labeled inputs) with consistent label + control + help layout.'
|
|
59
|
+
reason: 'Form-row layout primitive.'
|
|
60
|
+
- rule: 'Different from <description-list-ui> (read-only key:value display) — fields-ui is for editable inputs.'
|
|
61
|
+
reason: 'Read vs write distinction.'
|
|
62
|
+
- rule: 'For dynamic field arrays (repeat-able rows) compose fields-ui with manual add/remove controls.'
|
|
63
|
+
reason: 'No built-in repeat affordance.'
|
|
58
64
|
anti_patterns:
|
|
59
65
|
- description: >-
|
|
60
66
|
Don't wrap <field-ui> children in <row-ui wrap> when grid
|
|
@@ -27,7 +27,31 @@ states:
|
|
|
27
27
|
traits: []
|
|
28
28
|
tokens: {}
|
|
29
29
|
a2ui:
|
|
30
|
-
rules:
|
|
30
|
+
rules:
|
|
31
|
+
- >-
|
|
32
|
+
Use <footer-ui> as the bottom chrome row inside a PRIMITIVE
|
|
33
|
+
container parent (<card-ui>, <drawer-ui>, <modal-ui>, <page-ui>).
|
|
34
|
+
Typically holds 1–3 <button-ui> children — the most common pattern
|
|
35
|
+
is a Cancel / Confirm pair inside <modal-ui> or <drawer-ui>.
|
|
36
|
+
- >-
|
|
37
|
+
Use `justify="end"` (default) for Cancel+Confirm and trailing
|
|
38
|
+
action clusters; `justify="between"` when one action lives left
|
|
39
|
+
and one right (e.g. Back / Submit); `justify="center"` for
|
|
40
|
+
single-button confirm flows; `justify="start"` for solo leading
|
|
41
|
+
actions like Back.
|
|
42
|
+
- >-
|
|
43
|
+
Do NOT substitute <footer-ui> for bespoke shell-tier bottom
|
|
44
|
+
chrome. Inside <admin-sidebar slot="footer"> use <admin-statusbar>;
|
|
45
|
+
inside <editor-shell> use <editor-statusbar>. <footer-ui> is
|
|
46
|
+
exclusively the in-container action bar at the primitive tier.
|
|
47
|
+
- >-
|
|
48
|
+
Do NOT wrap children in <row-ui> just to align them — the
|
|
49
|
+
`justify` prop already lays children out horizontally. A nested
|
|
50
|
+
row-ui double-applies layout and breaks the chrome's gap tokens.
|
|
51
|
+
- >-
|
|
52
|
+
Prefer flat <button-ui> children. If you need non-button content
|
|
53
|
+
(text summary, pagination indicator), keep it as a single flat
|
|
54
|
+
child so `justify` resolves cleanly.
|
|
31
55
|
anti_patterns: []
|
|
32
56
|
examples:
|
|
33
57
|
- name: chat-interface
|
|
@@ -230,7 +254,8 @@ examples:
|
|
|
230
254
|
]
|
|
231
255
|
keywords:
|
|
232
256
|
- footer
|
|
233
|
-
synonyms:
|
|
257
|
+
synonyms:
|
|
258
|
+
footer: [footer-bar, footer-row, bottom-bar]
|
|
234
259
|
related:
|
|
235
260
|
- avatar
|
|
236
261
|
- input
|
package/components/grid/class.js
CHANGED
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
21
|
import { UIElement } from '../../core/element.js';
|
|
22
|
+
import { parseResponsive, breakpoint } from '../../core/responsive.js';
|
|
22
23
|
|
|
23
24
|
export class UIGrid extends UIElement {
|
|
24
25
|
static properties = {
|
|
@@ -28,4 +29,60 @@ export class UIGrid extends UIElement {
|
|
|
28
29
|
rowGap: { type: String, default: '', reflect: true, attribute: 'row-gap' },
|
|
29
30
|
};
|
|
30
31
|
static template = () => null;
|
|
32
|
+
|
|
33
|
+
render() {
|
|
34
|
+
// Reading breakpoint.value inside render() subscribes this component to
|
|
35
|
+
// the signal — UIElement re-runs render() whenever the viewport crosses
|
|
36
|
+
// a breakpoint boundary (and also on prop changes as normal).
|
|
37
|
+
const bp = breakpoint.value;
|
|
38
|
+
|
|
39
|
+
// ── columns ──────────────────────────────────────────────────────────────
|
|
40
|
+
// Responsive value: JS resolves + writes inline gridTemplateColumns.
|
|
41
|
+
// Also forces gridAutoFlow:row + gridAutoColumns:auto, overriding the
|
|
42
|
+
// default CSS which has grid-auto-flow:column (single-row spread) — that
|
|
43
|
+
// default only makes sense when NO explicit template is set.
|
|
44
|
+
// Scalar value: clear inline styles, CSS [columns="N"] rules take over.
|
|
45
|
+
const cols = this.columns;
|
|
46
|
+
if (cols?.includes('@')) {
|
|
47
|
+
const resolved = parseResponsive(cols, bp);
|
|
48
|
+
this.style.gridTemplateColumns = this.#colsToTemplate(resolved);
|
|
49
|
+
this.style.gridAutoFlow = resolved ? 'row' : '';
|
|
50
|
+
this.style.gridAutoColumns = resolved ? 'auto' : '';
|
|
51
|
+
} else {
|
|
52
|
+
this.style.gridTemplateColumns = '';
|
|
53
|
+
this.style.gridAutoFlow = '';
|
|
54
|
+
this.style.gridAutoColumns = '';
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// ── gap ───────────────────────────────────────────────────────────────────
|
|
58
|
+
// Same pattern: responsive values set inline column/row-gap directly;
|
|
59
|
+
// scalar values clear those and let the universal [gap="N"] token rules
|
|
60
|
+
// in tokens.css handle everything via --a-gap.
|
|
61
|
+
const gap = this.gap;
|
|
62
|
+
if (gap?.includes('@')) {
|
|
63
|
+
const v = parseResponsive(gap, bp);
|
|
64
|
+
const css = this.#gapToCss(v);
|
|
65
|
+
this.style.columnGap = css;
|
|
66
|
+
this.style.rowGap = css;
|
|
67
|
+
} else {
|
|
68
|
+
this.style.columnGap = '';
|
|
69
|
+
this.style.rowGap = '';
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/** Map a resolved columns value to a CSS grid-template-columns string. */
|
|
74
|
+
#colsToTemplate(v) {
|
|
75
|
+
if (!v) return '';
|
|
76
|
+
if (/^\d+$/.test(v)) return `repeat(${v}, 1fr)`;
|
|
77
|
+
if (v === 'auto-fill') return 'repeat(auto-fill, minmax(12rem, 1fr))';
|
|
78
|
+
if (v === 'auto-fit') return 'repeat(auto-fit, minmax(12rem, 1fr))';
|
|
79
|
+
return v; // passthrough for custom template expressions
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/** Map a resolved gap value to a CSS length / custom-property reference. */
|
|
83
|
+
#gapToCss(v) {
|
|
84
|
+
if (!v || v === '0') return '0';
|
|
85
|
+
if (/^\d+$/.test(v)) return `var(--a-space-${v})`;
|
|
86
|
+
return `var(--a-gap-${v})`;
|
|
87
|
+
}
|
|
31
88
|
}
|
|
@@ -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/Grid.json",
|
|
4
4
|
"title": "Grid",
|
|
5
|
-
"description": "CSS grid layout primitive. Supports [columns=\"1..6\"] for equal columns, [columns=\"auto-fill\"|\"auto-fit\"] for responsive density, and a per-child [span=\"2..6\"|\"full\"] attribute for asymmetric layouts. Compose a 2:1 split as columns=\"3\" +
|
|
5
|
+
"description": "CSS grid layout primitive. Supports [columns=\"1..6\"] for equal columns, [columns=\"auto-fill\"|\"auto-fit\"] for responsive density, and a per-child [span=\"2..6\"|\"full\"] attribute for asymmetric layouts. Both [columns] and [gap] accept responsive `@bp` notation for viewport-driven layout: columns=\"1 2@sm 4@lg\" gives 1 column on xs, 2 from sm, 4 from lg/xl. Compose a 2:1 split as columns=\"3\" + span=\"2\"; 3:2 as columns=\"5\" + span=\"3\" + span=\"2\".",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"allOf": [
|
|
8
8
|
{
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"default": ""
|
|
20
20
|
},
|
|
21
21
|
"columns": {
|
|
22
|
-
"description": "Number of columns or
|
|
22
|
+
"description": "Number of equal columns (1–6), \"auto-fill\", or \"auto-fit\". Accepts responsive `@bp` notation: \"1 2@sm 4@lg\" = 1 on xs, 2 from sm, 4 from lg/xl. Unannotated value is the mobile-first base.",
|
|
23
23
|
"type": "string",
|
|
24
24
|
"default": "3"
|
|
25
25
|
},
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"const": "Grid"
|
|
28
28
|
},
|
|
29
29
|
"gap": {
|
|
30
|
-
"description": "Grid gap",
|
|
30
|
+
"description": "Grid gap. Accepts numeric space-scale values (0–12) or named sizes (xs/sm/md/lg/xl). Responsive notation supported: \"2 4@md\" = 2 below md, 4 from md upward.",
|
|
31
31
|
"type": "string",
|
|
32
32
|
"default": "md"
|
|
33
33
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `<grid-ui>` — CSS grid layout primitive. Supports [columns="1..6"] for equal columns, [columns="auto-fill"|"auto-fit"] for responsive density, and a per-child [span="2..6"|"full"] attribute for asymmetric layouts. Compose a 2:1 split as columns="3" +
|
|
2
|
+
* `<grid-ui>` — CSS grid layout primitive. Supports [columns="1..6"] for equal columns, [columns="auto-fill"|"auto-fit"] for responsive density, and a per-child [span="2..6"|"full"] attribute for asymmetric layouts. Both [columns] and [gap] accept responsive `@bp` notation for viewport-driven layout: columns="1 2@sm 4@lg" gives 1 column on xs, 2 from sm, 4 from lg/xl. Compose a 2:1 split as columns="3" + span="2"; 3:2 as columns="5" + span="3" + span="2".
|
|
3
3
|
*
|
|
4
4
|
* @see https://ui-kit.exe.xyz/site/components/grid
|
|
5
5
|
*
|
|
@@ -15,9 +15,9 @@ import { UIElement } from '../../core/element.js';
|
|
|
15
15
|
export class UIGrid extends UIElement {
|
|
16
16
|
/** Column gap override */
|
|
17
17
|
columnGap: string;
|
|
18
|
-
/** Number of columns or
|
|
18
|
+
/** Number of equal columns (1–6), "auto-fill", or "auto-fit". Accepts responsive `@bp` notation: "1 2@sm 4@lg" = 1 on xs, 2 from sm, 4 from lg/xl. Unannotated value is the mobile-first base. */
|
|
19
19
|
columns: string;
|
|
20
|
-
/** Grid gap */
|
|
20
|
+
/** Grid gap. Accepts numeric space-scale values (0–12) or named sizes (xs/sm/md/lg/xl). Responsive notation supported: "2 4@md" = 2 below md, 4 from md upward. */
|
|
21
21
|
gap: string;
|
|
22
22
|
/** Row gap override */
|
|
23
23
|
rowGap: string;
|
|
@@ -9,10 +9,11 @@ version: 1
|
|
|
9
9
|
description: >-
|
|
10
10
|
CSS grid layout primitive. Supports [columns="1..6"] for equal columns,
|
|
11
11
|
[columns="auto-fill"|"auto-fit"] for responsive density, and a per-child
|
|
12
|
-
[span="2..6"|"full"] attribute for asymmetric layouts.
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
span
|
|
12
|
+
[span="2..6"|"full"] attribute for asymmetric layouts. Both [columns] and
|
|
13
|
+
[gap] accept responsive `@bp` notation for viewport-driven layout:
|
|
14
|
+
columns="1 2@sm 4@lg" gives 1 column on xs, 2 from sm, 4 from lg/xl.
|
|
15
|
+
Compose a 2:1 split as columns="3" + span="2"; 3:2 as columns="5" +
|
|
16
|
+
span="3" + span="2".
|
|
16
17
|
props:
|
|
17
18
|
columnGap:
|
|
18
19
|
description: Column gap override
|
|
@@ -20,11 +21,17 @@ props:
|
|
|
20
21
|
default: ""
|
|
21
22
|
attribute: column-gap
|
|
22
23
|
columns:
|
|
23
|
-
description:
|
|
24
|
+
description: >-
|
|
25
|
+
Number of equal columns (1–6), "auto-fill", or "auto-fit". Accepts
|
|
26
|
+
responsive `@bp` notation: "1 2@sm 4@lg" = 1 on xs, 2 from sm, 4
|
|
27
|
+
from lg/xl. Unannotated value is the mobile-first base.
|
|
24
28
|
type: string
|
|
25
29
|
default: "3"
|
|
26
30
|
gap:
|
|
27
|
-
description:
|
|
31
|
+
description: >-
|
|
32
|
+
Grid gap. Accepts numeric space-scale values (0–12) or named sizes
|
|
33
|
+
(xs/sm/md/lg/xl). Responsive notation supported: "2 4@md" = 2 below
|
|
34
|
+
md, 4 from md upward.
|
|
28
35
|
type: string
|
|
29
36
|
default: md
|
|
30
37
|
rowGap:
|
|
@@ -45,8 +52,9 @@ a2ui:
|
|
|
45
52
|
rules:
|
|
46
53
|
- >-
|
|
47
54
|
For asymmetric column ratios, use [columns="N"] plus [span="M"] on the child
|
|
48
|
-
that should be wider. Never set
|
|
49
|
-
the component
|
|
55
|
+
that should be wider. Never set gridTemplateColumns via inline style in
|
|
56
|
+
compositions — the component's responsive resolver sets it internally for
|
|
57
|
+
@bp values; direct inline style bypasses that and reads as a local hack.
|
|
50
58
|
- >-
|
|
51
59
|
Canonical ratios: 1:1 → columns="2"; 2:1 → columns="3" + span="2";
|
|
52
60
|
3:1 → columns="4" + span="3"; 3:2 → columns="5" + span="3"+"2";
|
|
@@ -55,6 +63,12 @@ a2ui:
|
|
|
55
63
|
The default (no columns attribute) gives equal auto-columns flowing in a
|
|
56
64
|
single row. Prefer the explicit numeric attribute for dashboard rows so the
|
|
57
65
|
layout is predictable when items wrap.
|
|
66
|
+
- >-
|
|
67
|
+
For viewport-responsive layouts use `@bp` notation on [columns] and [gap]:
|
|
68
|
+
columns="1 2@sm 4@lg" gives 1 column on xs, 2 from sm, 4 from lg/xl.
|
|
69
|
+
Breakpoints (mobile-first, min-width): xs=0, sm=480, md=768, lg=1024,
|
|
70
|
+
xl=1280. Unannotated value = base (smallest). Each @bp overrides upward
|
|
71
|
+
until the next larger annotation takes over.
|
|
58
72
|
anti_patterns: []
|
|
59
73
|
examples:
|
|
60
74
|
- name: chart-dashboard
|
|
@@ -25,7 +25,34 @@ states:
|
|
|
25
25
|
traits: []
|
|
26
26
|
tokens: {}
|
|
27
27
|
a2ui:
|
|
28
|
-
rules:
|
|
28
|
+
rules:
|
|
29
|
+
- >-
|
|
30
|
+
Use <header-ui> as the top chrome row inside a PRIMITIVE container
|
|
31
|
+
parent: <card-ui>, <drawer-ui>, <modal-ui>, <page-ui>. It is a
|
|
32
|
+
CSS-only slot stub — no JS, no events. The parent's @scope rules
|
|
33
|
+
drive layout and styling.
|
|
34
|
+
- >-
|
|
35
|
+
Compose with the default slot for the heading (typically
|
|
36
|
+
<text-ui variant="title">) and slot="action" for trailing controls
|
|
37
|
+
(button-ui, badge-ui). The slot vocabulary (icon / heading /
|
|
38
|
+
description / action) is shared with <aside-ui> / <section-ui> /
|
|
39
|
+
<footer-ui> per ADR-0009.
|
|
40
|
+
- >-
|
|
41
|
+
Do NOT substitute <header-ui> for bespoke shell-tier chrome.
|
|
42
|
+
Inside <admin-content> / <admin-sidebar> use <admin-topbar>;
|
|
43
|
+
inside <chat-shell> use <chat-header>; inside <editor-shell> use
|
|
44
|
+
<editor-toolbar>. Those modules carry shell-specific slot
|
|
45
|
+
vocabulary and CSS that <header-ui> does not. (admin-topbar.yaml
|
|
46
|
+
codifies this explicitly.)
|
|
47
|
+
- >-
|
|
48
|
+
Do NOT wrap header-ui's children in <col-ui> or <row-ui>. The
|
|
49
|
+
container parent's @scope already lays out
|
|
50
|
+
default+icon+heading+description+action via slot vocabulary; extra
|
|
51
|
+
layout primitives fight the chrome styling.
|
|
52
|
+
- >-
|
|
53
|
+
The `padding` attribute is a bare boolean — it enables default
|
|
54
|
+
header padding, but the *scale* is set by the container parent's
|
|
55
|
+
own `padding` prop. Do not pass numeric values.
|
|
29
56
|
anti_patterns: []
|
|
30
57
|
examples:
|
|
31
58
|
- name: chat-interface
|
|
@@ -327,7 +354,8 @@ examples:
|
|
|
327
354
|
]
|
|
328
355
|
keywords:
|
|
329
356
|
- header
|
|
330
|
-
synonyms:
|
|
357
|
+
synonyms:
|
|
358
|
+
header: [header-bar, header-row, top-bar, chrome-top]
|
|
331
359
|
related:
|
|
332
360
|
- avatar
|
|
333
361
|
- input
|
|
@@ -89,7 +89,13 @@ states:
|
|
|
89
89
|
traits: []
|
|
90
90
|
tokens: {}
|
|
91
91
|
a2ui:
|
|
92
|
-
rules:
|
|
92
|
+
rules:
|
|
93
|
+
- rule: 'Grid-cell heatmap visualization (calendar heatmap, density grid). Cells colored by value via OKLCH scale.'
|
|
94
|
+
reason: 'Data-density visualization.'
|
|
95
|
+
- rule: 'For continuous time-series use <chart-ui> with appropriate variant; heatmap is for grid-cell density.'
|
|
96
|
+
reason: 'Chart vs heatmap boundary.'
|
|
97
|
+
- rule: 'Tooltip on hover shows cell value; click events emit cell coordinates.'
|
|
98
|
+
reason: 'Interaction contract.'
|
|
93
99
|
anti_patterns: []
|
|
94
100
|
examples:
|
|
95
101
|
- name: basic-heatmap
|
|
@@ -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/Icon.json",
|
|
4
4
|
"title": "Icon",
|
|
5
|
-
"description": "SVG icon from the icon registry. Renders inline SVG from getIcon().",
|
|
5
|
+
"description": "SVG icon from the icon registry. Renders inline SVG from getIcon() lookups with size + color token support; the canonical icon primitive throughout AdiaUI. Use for all icon needs; do not embed raw SVG or image-based icons in composed components.",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"allOf": [
|
|
8
8
|
{
|
|
@@ -84,7 +84,14 @@
|
|
|
84
84
|
"name": "idle"
|
|
85
85
|
}
|
|
86
86
|
],
|
|
87
|
-
"synonyms": {
|
|
87
|
+
"synonyms": {
|
|
88
|
+
"icon": [
|
|
89
|
+
"glyph",
|
|
90
|
+
"phosphor-icon",
|
|
91
|
+
"ui-icon",
|
|
92
|
+
"symbol"
|
|
93
|
+
]
|
|
94
|
+
},
|
|
88
95
|
"tag": "icon-ui",
|
|
89
96
|
"tokens": {},
|
|
90
97
|
"traits": [],
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `<icon-ui>` — SVG icon from the icon registry. Renders inline SVG from getIcon().
|
|
2
|
+
* `<icon-ui>` — SVG icon from the icon registry. Renders inline SVG from getIcon() lookups with size + color token support; the canonical icon primitive throughout AdiaUI. Use for all icon needs; do not embed raw SVG or image-based icons in composed components.
|
|
3
3
|
*
|
|
4
4
|
* @see https://ui-kit.exe.xyz/site/components/icon
|
|
5
5
|
*
|
|
@@ -6,7 +6,11 @@ tag: icon-ui
|
|
|
6
6
|
component: Icon
|
|
7
7
|
category: display
|
|
8
8
|
version: 1
|
|
9
|
-
description:
|
|
9
|
+
description: >-
|
|
10
|
+
SVG icon from the icon registry. Renders inline SVG from getIcon()
|
|
11
|
+
lookups with size + color token support; the canonical icon primitive
|
|
12
|
+
throughout AdiaUI. Use for all icon needs; do not embed raw SVG or
|
|
13
|
+
image-based icons in composed components.
|
|
10
14
|
props:
|
|
11
15
|
name:
|
|
12
16
|
description: Icon name from registry
|
|
@@ -40,7 +44,31 @@ states:
|
|
|
40
44
|
traits: []
|
|
41
45
|
tokens: {}
|
|
42
46
|
a2ui:
|
|
43
|
-
rules:
|
|
47
|
+
rules:
|
|
48
|
+
- >-
|
|
49
|
+
[name] must be a registered Phosphor key (e.g. "house", "gear",
|
|
50
|
+
"trash", "warning-circle"). Free-form names render empty. When
|
|
51
|
+
unsure, default to a semantically obvious glyph (check, x,
|
|
52
|
+
warning-circle, info).
|
|
53
|
+
- >-
|
|
54
|
+
Set [label] when the icon is the ONLY content of an interactive
|
|
55
|
+
control (icon-only button); omit [label] when icon is decorative
|
|
56
|
+
beside a text label. The host stamps role="img" + aria-label
|
|
57
|
+
when [label] is set.
|
|
58
|
+
- >-
|
|
59
|
+
Use named [size] tokens (sm | md | lg | xl) — px / rem values
|
|
60
|
+
only when matching a strict design spec. [size="xl"] is
|
|
61
|
+
conventional for empty-state hero icons; [size="md"] is the
|
|
62
|
+
default for inline use.
|
|
63
|
+
- >-
|
|
64
|
+
Use slot="icon" on parent primitives (<button-ui>, <badge-ui>,
|
|
65
|
+
<alert-ui>, <list-item-ui>, <input-ui>, <nav-item-ui>, every
|
|
66
|
+
chrome bar) — do NOT bare-render <icon-ui> beside text in a
|
|
67
|
+
<row-ui> when the parent supports the [slot="icon"] convention.
|
|
68
|
+
- >-
|
|
69
|
+
Use [weight="fill"] for selected / active toggles,
|
|
70
|
+
[weight="regular"] (default) for inactive. Do not mix weights
|
|
71
|
+
in the same set; the visual inconsistency reads as a bug.
|
|
44
72
|
anti_patterns: []
|
|
45
73
|
examples:
|
|
46
74
|
- name: command-palette
|
|
@@ -234,7 +262,8 @@ examples:
|
|
|
234
262
|
]
|
|
235
263
|
keywords:
|
|
236
264
|
- icon
|
|
237
|
-
synonyms:
|
|
265
|
+
synonyms:
|
|
266
|
+
icon: [glyph, phosphor-icon, ui-icon, symbol]
|
|
238
267
|
related:
|
|
239
268
|
- input
|
|
240
269
|
- empty-state
|
|
@@ -70,7 +70,13 @@ states:
|
|
|
70
70
|
traits: []
|
|
71
71
|
tokens: {}
|
|
72
72
|
a2ui:
|
|
73
|
-
rules:
|
|
73
|
+
rules:
|
|
74
|
+
- rule: 'Use for content images (illustrations, screenshots, user-uploaded photos). For icons use <icon-ui>; for embedded artifacts use <embed-ui>.'
|
|
75
|
+
reason: 'Icon is registry-driven; embed is iframe-style; image is plain src.'
|
|
76
|
+
- rule: 'Set aspect-ratio attribute to lock dimensions and prevent layout shift during load.'
|
|
77
|
+
reason: 'CLS prevention; canonical perf knob.'
|
|
78
|
+
- rule: 'For decorative-only images, set alt='''' and aria-hidden=''true'' so screen readers skip them.'
|
|
79
|
+
reason: 'Accessibility — decorative vs informative distinction.'
|
|
74
80
|
anti_patterns: []
|
|
75
81
|
examples:
|
|
76
82
|
- name: bleed-design-settings
|
|
@@ -236,7 +236,35 @@ tokens:
|
|
|
236
236
|
--input-transition:
|
|
237
237
|
description: Override transition timing
|
|
238
238
|
a2ui:
|
|
239
|
-
rules:
|
|
239
|
+
rules:
|
|
240
|
+
- >-
|
|
241
|
+
<input-ui> is the canonical single-line text input. The host IS
|
|
242
|
+
the contenteditable surface — NEVER wrap a native <input>. The
|
|
243
|
+
sole exception is type="password", which internally uses a real
|
|
244
|
+
<input type="password"> for masking (per ADR-0025).
|
|
245
|
+
- >-
|
|
246
|
+
Wrap <input-ui> in <field-ui label="…" hint="…" error="…"> for
|
|
247
|
+
the canonical stacked label / hint / error chrome. The inline
|
|
248
|
+
[label] / [hint] / [error] props are also supported on the
|
|
249
|
+
primitive for compact use.
|
|
250
|
+
- >-
|
|
251
|
+
Form participation is implicit via UIFormElement. Set [name] for
|
|
252
|
+
FormData submission; [required] / [disabled] / [readonly]
|
|
253
|
+
reflect; listen for `change` (blur or Enter commit) and `input`
|
|
254
|
+
(per keystroke). `submit` event fires when Enter commits the
|
|
255
|
+
value (used by <chat-composer>'s `composer-submit` forwarding).
|
|
256
|
+
- >-
|
|
257
|
+
For numeric input use [type="number"] with [min] [max] [step]
|
|
258
|
+
[precision] [prefix] / [suffix] — this stamps a contenteditable
|
|
259
|
+
surface + <button-ui> / <icon-ui> stepper column with ARIA
|
|
260
|
+
spinbutton semantics. Read `el.valueAsNumber` for the parsed
|
|
261
|
+
Number. Never substitute a native <input type="number">.
|
|
262
|
+
- >-
|
|
263
|
+
Inside <chat-composer>, the canonical inner input is
|
|
264
|
+
<chat-input-ui submit-on-enter> (chat variant subclass — owns
|
|
265
|
+
the submit-on-enter contract explicitly). The plain <input-ui>
|
|
266
|
+
primitive already fires `submit` on Enter, but only chat-input-ui
|
|
267
|
+
reflects the [submit-on-enter] attribute.
|
|
240
268
|
anti_patterns: []
|
|
241
269
|
examples:
|
|
242
270
|
- name: quantity-stepper
|
|
@@ -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
|
*
|