@adia-ai/web-components 0.6.21 → 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 +58 -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 +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 +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/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": [],
|
package/components/nav/nav.yaml
CHANGED
|
@@ -66,7 +66,38 @@ states:
|
|
|
66
66
|
traits: []
|
|
67
67
|
tokens: {}
|
|
68
68
|
a2ui:
|
|
69
|
-
rules:
|
|
69
|
+
rules:
|
|
70
|
+
- >-
|
|
71
|
+
Composition: place <nav-ui> inside <admin-sidebar slot="leading">
|
|
72
|
+
wrapped in <section-ui> for app sidebars; inside an
|
|
73
|
+
<aside data-subnav> with variant="section" for section / subnav
|
|
74
|
+
rails; standalone on docs / auth pages. Children: <nav-group-ui>,
|
|
75
|
+
<nav-item-ui>, optional <hr data-nav-divider>.
|
|
76
|
+
- >-
|
|
77
|
+
Variants: variant="primary" (default) — app sidebar; ResizeObserver
|
|
78
|
+
collapses to icon-only ≤96px; collapsible groups open as a popover
|
|
79
|
+
when collapsed. variant="section" — subnav rail; quieter chrome;
|
|
80
|
+
optional [heading] kicker rendered via ::before.
|
|
81
|
+
- >-
|
|
82
|
+
Section-variant cascade (ADR-0015 § Nav consolidation):
|
|
83
|
+
variant="section" on <nav-ui> cascades visually to direct
|
|
84
|
+
<nav-group-ui> / <nav-item-ui> descendants via CSS
|
|
85
|
+
`:not([variant])`. Children's JS state is NOT mutated; the cascade
|
|
86
|
+
is purely visual. Explicit [variant] on a child always wins — use
|
|
87
|
+
it to escape the cascade or style a standalone group/item.
|
|
88
|
+
- >-
|
|
89
|
+
Decision rule: if the user navigates AWAY (different page, route,
|
|
90
|
+
or anchor) → <nav-ui>. If the user switches VIEWS within the same
|
|
91
|
+
logical page → <tabs-ui>. Never use <nav-ui> as an in-page section
|
|
92
|
+
switcher.
|
|
93
|
+
- >-
|
|
94
|
+
Anti-patterns: do NOT wrap <nav-ui> children in <col-ui> /
|
|
95
|
+
<row-ui> — wrapping breaks selection bubbling + the variant
|
|
96
|
+
cascade. Do NOT nest <nav-ui> inside <nav-ui>. The legacy 6-element
|
|
97
|
+
family (<app-nav-ui> / <section-nav-ui> / <app-nav-item-ui> /
|
|
98
|
+
<section-nav-item-ui> / <app-nav-group-ui> / <section-nav-group-ui>)
|
|
99
|
+
was retired in ADR-0015 — only <nav-ui> / <nav-group-ui> /
|
|
100
|
+
<nav-item-ui> remain.
|
|
70
101
|
anti_patterns: []
|
|
71
102
|
|
|
72
103
|
examples:
|
|
@@ -126,5 +157,11 @@ examples:
|
|
|
126
157
|
]
|
|
127
158
|
|
|
128
159
|
keywords: [nav, navigation, sidebar, menu, links]
|
|
129
|
-
synonyms:
|
|
130
|
-
|
|
160
|
+
synonyms:
|
|
161
|
+
nav: [sidebar, side-nav, navigation-rail, primary-nav, section-nav]
|
|
162
|
+
related:
|
|
163
|
+
- NavGroup
|
|
164
|
+
- NavItem
|
|
165
|
+
- Tabs
|
|
166
|
+
- Breadcrumb
|
|
167
|
+
- AdminSidebar
|
|
@@ -87,7 +87,11 @@
|
|
|
87
87
|
"menu"
|
|
88
88
|
],
|
|
89
89
|
"name": "UINavGroup",
|
|
90
|
-
"related": [
|
|
90
|
+
"related": [
|
|
91
|
+
"Nav",
|
|
92
|
+
"NavItem",
|
|
93
|
+
"Accordion"
|
|
94
|
+
],
|
|
91
95
|
"slots": {
|
|
92
96
|
"default": {
|
|
93
97
|
"description": "Children — typically <nav-item-ui> rows."
|
|
@@ -106,7 +110,13 @@
|
|
|
106
110
|
"name": "open"
|
|
107
111
|
}
|
|
108
112
|
],
|
|
109
|
-
"synonyms": {
|
|
113
|
+
"synonyms": {
|
|
114
|
+
"nav-group": [
|
|
115
|
+
"nav-section",
|
|
116
|
+
"sidebar-group",
|
|
117
|
+
"menu-group"
|
|
118
|
+
]
|
|
119
|
+
},
|
|
110
120
|
"tag": "nav-group-ui",
|
|
111
121
|
"tokens": {},
|
|
112
122
|
"traits": [],
|
|
@@ -72,10 +72,44 @@ states:
|
|
|
72
72
|
traits: []
|
|
73
73
|
tokens: {}
|
|
74
74
|
a2ui:
|
|
75
|
-
rules:
|
|
75
|
+
rules:
|
|
76
|
+
- >-
|
|
77
|
+
Composition: <nav-group-ui> MUST be a direct child of <nav-ui>
|
|
78
|
+
(or standalone with explicit variant="section" outside a rail).
|
|
79
|
+
Default slot accepts <nav-item-ui> children; do NOT wrap them in
|
|
80
|
+
layout primitives — selection, keyboard, and the section-variant
|
|
81
|
+
cascade all rely on direct descendancy.
|
|
82
|
+
- >-
|
|
83
|
+
Variant cascade: when parent <nav-ui variant="section">, this
|
|
84
|
+
group inherits section styling (static kicker header, children
|
|
85
|
+
always visible) via CSS — without touching its JS state. Set
|
|
86
|
+
[variant="section"] explicitly only when there is no <nav-ui>
|
|
87
|
+
parent, OR to override a primary-rail context.
|
|
88
|
+
- >-
|
|
89
|
+
Collapsibility: primary variant — [collapsible] (default true)
|
|
90
|
+
toggles [open] via header click / Enter / Space; fires
|
|
91
|
+
`group-toggle` event with detail {text, open}. When the parent
|
|
92
|
+
<nav-ui> is collapsed to icon-only, the header opens a popover
|
|
93
|
+
with this group's children instead. Section variant ignores
|
|
94
|
+
[open] / [collapsible] (children always visible).
|
|
95
|
+
- >-
|
|
96
|
+
Decision rule: use <nav-group-ui> to group ≥2 related navigation
|
|
97
|
+
links under one label inside <nav-ui>. For a single link, use
|
|
98
|
+
<nav-item-ui> directly. For switching sub-views inside one page,
|
|
99
|
+
use <tabs-ui> / <tab-ui>, never <nav-group-ui>.
|
|
100
|
+
- >-
|
|
101
|
+
Anti-patterns: do NOT nest <nav-group-ui> inside another
|
|
102
|
+
<nav-group-ui> (flatten the hierarchy or split into two groups).
|
|
103
|
+
Do NOT place non-<nav-item-ui> content in the default slot. Do
|
|
104
|
+
NOT use it as a generic disclosure — for that use <accordion-ui>
|
|
105
|
+
or <details>.
|
|
76
106
|
anti_patterns: []
|
|
77
107
|
examples: []
|
|
78
108
|
|
|
79
109
|
keywords: [nav, navigation, group, sidebar, menu]
|
|
80
|
-
synonyms:
|
|
81
|
-
|
|
110
|
+
synonyms:
|
|
111
|
+
nav-group: [nav-section, sidebar-group, menu-group]
|
|
112
|
+
related:
|
|
113
|
+
- Nav
|
|
114
|
+
- NavItem
|
|
115
|
+
- Accordion
|