@adia-ai/web-components 0.8.40 → 0.8.41
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 +50 -3
- package/MIGRATION.md +1042 -16
- package/README.md +25 -30
- package/USAGE.md +26 -0
- package/bin/audit-template-children.mjs +556 -0
- package/components/accordion/accordion-item.a2ui.json +4 -0
- package/components/accordion/accordion-item.yaml +2 -0
- package/components/accordion/accordion.a2ui.json +4 -0
- package/components/accordion/accordion.yaml +2 -0
- package/components/action-list/action-item.a2ui.json +24 -2
- package/components/action-list/action-item.yaml +28 -3
- package/components/action-list/action-list.a2ui.json +6 -1
- package/components/action-list/action-list.class.js +52 -11
- package/components/action-list/action-list.css +43 -3
- package/components/action-list/action-list.d.ts +4 -2
- package/components/action-list/action-list.yaml +5 -0
- package/components/adia-mark/adia-mark.a2ui.json +1 -0
- package/components/adia-wordmark/adia-wordmark.a2ui.json +1 -0
- package/components/agent-artifact/agent-artifact.a2ui.json +1 -0
- package/components/agent-feedback-bar/agent-feedback-bar.a2ui.json +6 -5
- package/components/agent-feedback-bar/agent-feedback-bar.yaml +6 -2
- package/components/agent-questions/agent-questions.a2ui.json +1 -0
- package/components/agent-reasoning/agent-reasoning.a2ui.json +6 -5
- package/components/agent-reasoning/agent-reasoning.yaml +6 -2
- package/components/agent-suggestions/agent-suggestions.a2ui.json +11 -2
- package/components/agent-suggestions/agent-suggestions.class.js +2 -1
- package/components/agent-suggestions/agent-suggestions.d.ts +4 -4
- package/components/agent-suggestions/agent-suggestions.yaml +4 -2
- package/components/agent-trace/agent-trace.a2ui.json +6 -5
- package/components/agent-trace/agent-trace.yaml +6 -2
- package/components/alert/alert.a2ui.json +1 -0
- package/components/alert/alert.css +1 -1
- package/components/anchor-bar/anchor-bar.a2ui.json +1 -0
- package/components/aside/aside.a2ui.json +1 -0
- package/components/avatar/avatar-group.a2ui.json +7 -1
- package/components/avatar/avatar-group.yaml +1 -0
- package/components/avatar/avatar.a2ui.json +12 -11
- package/components/avatar/avatar.d.ts +1 -1
- package/components/avatar/avatar.yaml +4 -4
- package/components/badge/badge.a2ui.json +1 -0
- package/components/block/block.a2ui.json +1 -0
- package/components/blockquote/blockquote.a2ui.json +1 -0
- package/components/breadcrumb/breadcrumb.a2ui.json +1 -0
- package/components/button/button.a2ui.json +1 -3
- package/components/button/button.yaml +1 -3
- package/components/calendar-grid/calendar-grid.a2ui.json +1 -0
- package/components/calendar-grid/calendar-grid.class.js +2 -1
- package/components/calendar-picker/calendar-picker.a2ui.json +143 -24
- package/components/calendar-picker/calendar-picker.class.js +490 -197
- package/components/calendar-picker/calendar-picker.css +120 -171
- package/components/calendar-picker/calendar-picker.yaml +225 -47
- package/components/canvas/canvas.a2ui.json +6 -5
- package/components/canvas/canvas.d.ts +37 -0
- package/components/canvas/canvas.js +72 -3
- package/components/canvas/canvas.yaml +6 -2
- package/components/card/card.a2ui.json +25 -2
- package/components/card/card.class.js +3 -0
- package/components/card/card.css +31 -1
- package/components/card/card.d.ts +2 -2
- package/components/card/card.examples.md +3 -3
- package/components/card/card.yaml +28 -4
- package/components/chart/chart.a2ui.json +9 -4
- package/components/chart/chart.class.js +6 -6
- package/components/chart/chart.css +6 -4
- package/components/chart/chart.d.ts +1 -1
- package/components/chart/chart.yaml +5 -3
- package/components/chart-legend/chart-legend.a2ui.json +1 -0
- package/components/chat-thread/chat-input.a2ui.json +1 -0
- package/components/chat-thread/chat-thread.a2ui.json +10 -9
- package/components/chat-thread/chat-thread.yaml +13 -20
- package/components/check/check.a2ui.json +10 -9
- package/components/check/check.yaml +4 -4
- package/components/code/code.a2ui.json +1 -0
- package/components/col/col.a2ui.json +1 -0
- package/components/color-input/color-input.a2ui.json +1 -0
- package/components/color-picker/color-picker.a2ui.json +1 -0
- package/components/combobox/combobox.a2ui.json +3 -2
- package/components/combobox/combobox.yaml +2 -2
- package/components/command/command.a2ui.json +12 -10
- package/components/command/command.class.js +3 -2
- package/components/command/command.yaml +17 -4
- package/components/context-menu/context-menu.a2ui.json +1 -0
- package/components/date-range-picker/date-range-picker.a2ui.json +2 -1
- package/components/date-range-picker/date-range-picker.yaml +1 -1
- package/components/datetime-picker/datetime-picker.a2ui.json +15 -108
- package/components/datetime-picker/datetime-picker.class.js +37 -690
- package/components/datetime-picker/datetime-picker.css +11 -183
- package/components/datetime-picker/datetime-picker.d.ts +4 -5
- package/components/datetime-picker/datetime-picker.yaml +44 -135
- package/components/demo-toggle/demo-toggle.a2ui.json +1 -0
- package/components/demo-toggle/demo-toggle.css +1 -1
- package/components/description-list/description-list.a2ui.json +1 -0
- package/components/display-field/display-field.a2ui.json +1 -0
- package/components/divider/divider.a2ui.json +1 -0
- package/components/drawer/drawer.a2ui.json +1 -3
- package/components/drawer/drawer.css +1 -1
- package/components/drawer/drawer.yaml +0 -2
- package/components/drilldown/drilldown.a2ui.json +22 -20
- package/components/drilldown/drilldown.class.js +4 -3
- package/components/drilldown/drilldown.css +6 -6
- package/components/drilldown/drilldown.yaml +40 -9
- package/components/embed/embed.a2ui.json +6 -5
- package/components/embed/embed.yaml +2 -2
- package/components/empty-state/empty-state.a2ui.json +1 -0
- package/components/feed/feed-item.a2ui.json +25 -5
- package/components/feed/feed-item.yaml +28 -7
- package/components/feed/feed.a2ui.json +9 -2
- package/components/feed/feed.class.js +19 -12
- package/components/feed/feed.css +8 -8
- package/components/feed/feed.yaml +14 -1
- package/components/field/field.a2ui.json +1 -0
- package/components/field/field.examples.md +1 -1
- package/components/fields/fields.a2ui.json +1 -0
- package/components/fields/fields.examples.md +1 -1
- package/components/footer/footer.a2ui.json +1 -0
- package/components/frame/frame.a2ui.json +1 -0
- package/components/grid/grid.a2ui.json +1 -0
- package/components/header/header.a2ui.json +3 -2
- package/components/header/header.yaml +3 -3
- package/components/heatmap/heatmap.a2ui.json +2 -1
- package/components/heatmap/heatmap.class.js +1 -1
- package/components/heatmap/heatmap.css +4 -4
- package/components/heatmap/heatmap.yaml +1 -1
- package/components/icon/icon.a2ui.json +1 -0
- package/components/image/image.a2ui.json +28 -14
- package/components/image/image.class.js +38 -23
- package/components/image/image.css +18 -8
- package/components/image/image.d.ts +2 -2
- package/components/image/image.examples.md +3 -3
- package/components/image/image.yaml +23 -7
- package/components/inline-edit/inline-edit.a2ui.json +1 -0
- package/components/inline-message/inline-message.a2ui.json +3 -1
- package/components/inline-message/inline-message.class.js +3 -1
- package/components/inline-message/inline-message.d.ts +2 -2
- package/components/inline-message/inline-message.yaml +2 -1
- package/components/input/input.a2ui.json +66 -16
- package/components/input/input.class.js +64 -7
- package/components/input/input.css +14 -14
- package/components/input/input.d.ts +9 -4
- package/components/input/input.yaml +83 -10
- package/components/inspector/inspector.a2ui.json +1 -0
- package/components/integration-card/integration-card.a2ui.json +1 -0
- package/components/kbd/kbd.a2ui.json +1 -0
- package/components/link/link.a2ui.json +2 -1
- package/components/link/link.yaml +1 -1
- package/components/list/list-item.a2ui.json +9 -0
- package/components/list/list-item.yaml +12 -0
- package/components/list/list.a2ui.json +9 -3
- package/components/list/list.class.js +14 -1
- package/components/list/list.css +12 -1
- package/components/list/list.d.ts +7 -5
- package/components/list/list.yaml +16 -6
- package/components/list-window/list-window.a2ui.json +1 -0
- package/components/list-window/list-window.class.js +2 -1
- package/components/loading-overlay/loading-overlay.a2ui.json +1 -0
- package/components/mark/mark.a2ui.json +2 -1
- package/components/mark/mark.yaml +1 -1
- package/components/menu/menu-divider.a2ui.json +1 -0
- package/components/menu/menu-item.a2ui.json +3 -1
- package/components/menu/menu-item.yaml +6 -0
- package/components/menu/menu-label.a2ui.json +1 -0
- package/components/menu/menu.a2ui.json +3 -2
- package/components/menu/menu.class.js +2 -2
- package/components/menu/menu.d.ts +2 -2
- package/components/menu/menu.yaml +3 -3
- package/components/modal/modal.a2ui.json +1 -0
- package/components/nav/nav.a2ui.json +1 -0
- package/components/nav/nav.class.js +14 -3
- package/components/nav-group/nav-group.a2ui.json +1 -0
- package/components/nav-group/nav-group.class.js +3 -1
- package/components/nav-item/nav-item.a2ui.json +1 -0
- package/components/noodles/noodles.a2ui.json +1 -0
- package/components/noodles/noodles.class.js +5 -1
- package/components/number-format/number-format.a2ui.json +1 -0
- package/components/option-card/option-card.a2ui.json +1 -0
- package/components/otp-input/otp-input.a2ui.json +3 -2
- package/components/otp-input/otp-input.yaml +9 -2
- package/components/page/page.a2ui.json +13 -0
- package/components/page/page.d.ts +1 -1
- package/components/page/page.yaml +1 -0
- package/components/pagination/pagination.a2ui.json +1 -0
- package/components/pagination/pagination.class.js +3 -2
- package/components/pane/pane.a2ui.json +6 -0
- package/components/pane/pane.class.js +3 -3
- package/components/pane/pane.css +2 -2
- package/components/pane/pane.yaml +3 -0
- package/components/password-strength/password-strength.a2ui.json +1 -0
- package/components/pipeline-status/pipeline-status.a2ui.json +1 -0
- package/components/popover/popover.a2ui.json +7 -6
- package/components/popover/popover.class.js +2 -2
- package/components/popover/popover.d.ts +2 -2
- package/components/popover/popover.yaml +4 -4
- package/components/preview/preview.a2ui.json +1 -0
- package/components/preview/preview.class.js +5 -1
- package/components/progress/progress.a2ui.json +47 -24
- package/components/progress/progress.class.js +66 -11
- package/components/progress/progress.css +44 -26
- package/components/progress/progress.d.ts +7 -5
- package/components/progress/progress.examples.md +2 -2
- package/components/progress/progress.yaml +235 -53
- package/components/progress-row/progress-row.a2ui.json +16 -12
- package/components/progress-row/progress-row.d.ts +2 -2
- package/components/progress-row/progress-row.examples.md +2 -14
- package/components/progress-row/progress-row.yaml +28 -36
- package/components/qr-code/qr-code.a2ui.json +3 -2
- package/components/qr-code/qr-code.class.js +4 -4
- package/components/qr-code/qr-code.css +1 -1
- package/components/qr-code/qr-code.yaml +5 -3
- package/components/radio/radio.a2ui.json +8 -7
- package/components/radio/radio.class.js +8 -0
- package/components/radio/radio.yaml +3 -3
- package/components/radio-group/radio-group.a2ui.json +5 -3
- package/components/radio-group/radio-group.class.js +11 -0
- package/components/radio-group/radio-group.yaml +7 -1
- package/components/range/range.a2ui.json +6 -0
- package/components/range/range.class.js +2 -2
- package/components/range/range.css +2 -2
- package/components/range/range.yaml +3 -0
- package/components/rating/rating.a2ui.json +1 -0
- package/components/relative-time/relative-time.a2ui.json +1 -0
- package/components/richtext/richtext.a2ui.json +2 -1
- package/components/richtext/richtext.yaml +1 -1
- package/components/row/row.a2ui.json +1 -0
- package/components/search/search.a2ui.json +1 -0
- package/components/search/search.class.js +4 -1
- package/components/section/section.a2ui.json +1 -0
- package/components/segment/segment.a2ui.json +21 -10
- package/components/segment/segment.css +15 -0
- package/components/segment/segment.d.ts +2 -1
- package/components/segment/segment.yaml +20 -13
- package/components/segmented/segmented.a2ui.json +36 -7
- package/components/segmented/segmented.class.js +113 -22
- package/components/segmented/segmented.css +3 -0
- package/components/segmented/segmented.d.ts +3 -1
- package/components/segmented/segmented.yaml +80 -8
- package/components/select/select.a2ui.json +18 -13
- package/components/select/select.class.js +61 -37
- package/components/select/select.css +15 -13
- package/components/select/select.yaml +18 -7
- package/components/skeleton/skeleton.a2ui.json +8 -7
- package/components/skeleton/skeleton.class.js +8 -7
- package/components/skeleton/skeleton.css +21 -6
- package/components/skeleton/skeleton.d.ts +2 -2
- package/components/skeleton/skeleton.examples.md +2 -2
- package/components/skeleton/skeleton.yaml +3 -2
- package/components/skip-nav/skip-nav.a2ui.json +1 -0
- package/components/slider/slider.a2ui.json +6 -0
- package/components/slider/slider.class.js +20 -3
- package/components/slider/slider.css +2 -2
- package/components/slider/slider.yaml +3 -0
- package/components/spinner/spinner.a2ui.json +1 -0
- package/components/stack/stack.a2ui.json +1 -0
- package/components/stat/stat.a2ui.json +1 -0
- package/components/stat/stat.js +2 -2
- package/components/step-progress/step-progress.a2ui.json +1 -0
- package/components/step-progress/step-progress.yaml +1 -1
- package/components/stepper/stepper-item.a2ui.json +7 -3
- package/components/stepper/stepper-item.yaml +15 -5
- package/components/stepper/stepper.a2ui.json +5 -1
- package/components/stepper/stepper.class.js +31 -16
- package/components/stepper/stepper.d.ts +1 -1
- package/components/stepper/stepper.yaml +4 -2
- package/components/stream/stream.a2ui.json +1 -0
- package/components/swatch/swatch.a2ui.json +1 -0
- package/components/swiper/swiper.a2ui.json +1 -0
- package/components/swiper/swiper.class.js +5 -1
- package/components/switch/switch.a2ui.json +12 -11
- package/components/switch/switch.css +1 -1
- package/components/switch/switch.yaml +6 -6
- package/components/table/table.a2ui.json +1 -0
- package/components/table/table.class.js +14 -12
- package/components/table/table.css +11 -9
- package/components/table-toolbar/table-toolbar.a2ui.json +1 -0
- package/components/table-toolbar/table-toolbar.class.js +38 -19
- package/components/table-toolbar/table-toolbar.css +1 -1
- package/components/tabs/tab.a2ui.json +9 -0
- package/components/tabs/tab.js +4 -0
- package/components/tabs/tab.yaml +15 -0
- package/components/tabs/tabs.a2ui.json +9 -4
- package/components/tabs/tabs.class.js +13 -1
- package/components/tabs/tabs.css +8 -0
- package/components/tabs/tabs.d.ts +2 -0
- package/components/tabs/tabs.yaml +9 -2
- package/components/tag/tag.a2ui.json +1 -0
- package/components/tags-input/tags-input.a2ui.json +22 -17
- package/components/tags-input/tags-input.class.js +13 -11
- package/components/tags-input/tags-input.css +10 -6
- package/components/tags-input/tags-input.d.ts +16 -7
- package/components/tags-input/tags-input.examples.md +2 -2
- package/components/tags-input/tags-input.yaml +25 -8
- package/components/text/text.a2ui.json +6 -5
- package/components/text/text.css +10 -5
- package/components/text/text.d.ts +2 -2
- package/components/text/text.yaml +9 -4
- package/components/textarea/textarea.a2ui.json +2 -1
- package/components/textarea/textarea.yaml +1 -1
- package/components/theme-provider/theme-provider.a2ui.json +2 -1
- package/components/theme-provider/theme-provider.d.ts +5 -3
- package/components/theme-provider/theme-provider.yaml +5 -3
- package/components/time-picker/time-picker.a2ui.json +1 -0
- package/components/time-picker/time-picker.class.js +4 -2
- package/components/timeline/timeline-item.a2ui.json +26 -3
- package/components/timeline/timeline-item.yaml +22 -7
- package/components/timeline/timeline.a2ui.json +4 -0
- package/components/timeline/timeline.class.js +29 -18
- package/components/timeline/timeline.d.ts +3 -3
- package/components/timeline/timeline.yaml +2 -0
- package/components/toast/toast.a2ui.json +10 -3
- package/components/toast/toast.yaml +20 -13
- package/components/toc/toc.a2ui.json +1 -0
- package/components/toggle-group/toggle-group.a2ui.json +7 -3
- package/components/toggle-group/toggle-group.class.js +40 -1
- package/components/toggle-group/toggle-group.css +6 -1
- package/components/toggle-group/toggle-group.d.ts +2 -2
- package/components/toggle-group/toggle-group.yaml +21 -12
- package/components/toggle-group/toggle-option.a2ui.json +7 -3
- package/components/toggle-group/toggle-option.yaml +13 -7
- package/components/toggle-scheme/toggle-scheme.a2ui.json +2 -1
- package/components/toggle-scheme/toggle-scheme.yaml +1 -1
- package/components/toolbar/toolbar-group.a2ui.json +1 -0
- package/components/toolbar/toolbar.a2ui.json +1 -0
- package/components/toolbar/toolbar.class.js +3 -0
- package/components/tooltip/tooltip.a2ui.json +1 -0
- package/components/tour/tour-step.a2ui.json +4 -0
- package/components/tour/tour-step.yaml +2 -0
- package/components/tour/tour.a2ui.json +4 -0
- package/components/tour/tour.yaml +2 -0
- package/components/tree/tree-item.a2ui.json +5 -0
- package/components/tree/tree-item.yaml +3 -0
- package/components/tree/tree.a2ui.json +4 -0
- package/components/tree/tree.class.js +2 -1
- package/components/tree/tree.yaml +2 -0
- package/components/upload/upload.a2ui.json +8 -1
- package/components/upload/upload.class.js +35 -5
- package/components/upload/upload.css +28 -0
- package/components/upload/upload.d.ts +16 -0
- package/components/upload/upload.yaml +27 -7
- package/components/visually-hidden/visually-hidden.a2ui.json +1 -0
- package/core/dom.d.ts +11 -0
- package/core/dom.js +34 -0
- package/core/form.js +7 -0
- package/core/index.d.ts +1 -0
- package/core/index.js +1 -0
- package/core/responsive.js +16 -4
- package/core/template.js +2 -1
- package/custom-elements.json +437 -489
- package/dist/host.min.css +1 -1
- package/dist/host.sheet.js +1 -1
- package/dist/theme-provider.min.js +5 -5
- package/dist/web-components.min.css +1 -1
- package/dist/web-components.min.js +91 -104
- package/dist/web-components.sheet.js +1 -1
- package/package.json +4 -2
- package/patterns/conversion-funnel/conversion-funnel.examples.html +15 -15
- package/patterns/inline-dialog/inline-dialog.examples.html +2 -2
- package/patterns/inline-dialog/inline-dialog.html +4 -0
- package/patterns/timezone-selector/timezone-selector.examples.html +1 -1
- package/patterns/timezone-selector/timezone-selector.html +2 -2
- package/styles/api/text.css +7 -0
- package/traits/_catalog.json +129 -41
- package/traits/anchor-positioning/anchor-positioning.js +1 -0
- package/traits/announcer/announcer.js +1 -0
- package/traits/arrow-grid-nav/arrow-grid-nav.js +1 -0
- package/traits/attention-pulse/attention-pulse.js +1 -0
- package/traits/count-up/count-up.js +1 -0
- package/traits/define.js +78 -0
- package/traits/focus-restore/focus-restore.js +2 -1
- package/traits/haptic-feedback/haptic-feedback.js +1 -0
- package/traits/input-mask/input-mask.js +1 -0
- package/traits/intersection-observer/intersection-observer.js +1 -0
- package/traits/layout-animation/layout-animation.js +1 -0
- package/traits/noise-texture/noise-texture.js +1 -0
- package/traits/resize-observer/resize-observer.js +1 -0
- package/traits/scroll-progress/scroll-progress.js +1 -0
- package/traits/snap-to-grid/snap-to-grid.js +1 -0
- package/traits/sound-feedback/sound-feedback.js +1 -0
- package/traits/spring-animate/spring-animate.js +1 -0
- package/traits/validation/validation.js +1 -0
|
@@ -63,6 +63,11 @@
|
|
|
63
63
|
"aria-labelledby"
|
|
64
64
|
],
|
|
65
65
|
"name": "UIRadioGroup",
|
|
66
|
+
"parts": {
|
|
67
|
+
"label": {
|
|
68
|
+
"description": "Auto-minted label element (mounted by radio-group-ui from the [label] prop) — do not author this slot directly; template-owned anatomy part, not a light-DOM insertion point (gh#1454). `#ensureLabelElement()` only recognizes its own `[data-radio-group-label]` marker, never a bare consumer-authored `[slot=\"label\"]` element."
|
|
69
|
+
}
|
|
70
|
+
},
|
|
66
71
|
"related": [
|
|
67
72
|
"radio",
|
|
68
73
|
"field"
|
|
@@ -70,9 +75,6 @@
|
|
|
70
75
|
"slots": {
|
|
71
76
|
"default": {
|
|
72
77
|
"description": "radio-ui children sharing one [name=] — exclusivity and arrow-key navigation are unchanged; they still resolve via closest('fieldset, [role=radiogroup]'), which now matches this host."
|
|
73
|
-
},
|
|
74
|
-
"label": {
|
|
75
|
-
"description": "Auto-minted label element (mounted by radio-group-ui from the [label] prop) — do not author this slot directly."
|
|
76
78
|
}
|
|
77
79
|
},
|
|
78
80
|
"states": [
|
|
@@ -28,6 +28,17 @@
|
|
|
28
28
|
*
|
|
29
29
|
* Not a form-associated element itself — it carries no value; each child
|
|
30
30
|
* radio-ui is its own form participant per the existing [name=] contract.
|
|
31
|
+
*
|
|
32
|
+
* ADR-0056 scope note (#1363 B7 flagged "radio-group exposes no value
|
|
33
|
+
* surface at all" against segmented/tabs/select's parent [value]):
|
|
34
|
+
* evaluated and NOT adopted here. ADR-0056 itself governs only a
|
|
35
|
+
* selection-item CHILD's own state surface (segment-ui/toggle-option-ui's
|
|
36
|
+
* [selected]) — radio-ui already conforms via its native [checked]
|
|
37
|
+
* (radio.class.js, same exemption class as option-card-ui/
|
|
38
|
+
* accordion-item-ui). A parent-level [value] on this host would
|
|
39
|
+
* contradict the "not form-associated" design documented above and has
|
|
40
|
+
* no ratifying ADR of its own; left as a named rejected alternative
|
|
41
|
+
* (gh#1379) pending a future naming-convention ruling (B5/B9-shaped).
|
|
31
42
|
*/
|
|
32
43
|
import { UIElement } from '../../core/element.js';
|
|
33
44
|
|
|
@@ -37,8 +37,14 @@ events: {}
|
|
|
37
37
|
slots:
|
|
38
38
|
default:
|
|
39
39
|
description: "radio-ui children sharing one [name=] — exclusivity and arrow-key navigation are unchanged; they still resolve via closest('fieldset, [role=radiogroup]'), which now matches this host."
|
|
40
|
+
parts:
|
|
40
41
|
label:
|
|
41
|
-
description:
|
|
42
|
+
description: >-
|
|
43
|
+
Auto-minted label element (mounted by radio-group-ui from the [label]
|
|
44
|
+
prop) — do not author this slot directly; template-owned anatomy part,
|
|
45
|
+
not a light-DOM insertion point (gh#1454).
|
|
46
|
+
`#ensureLabelElement()` only recognizes its own `[data-radio-group-label]`
|
|
47
|
+
marker, never a bare consumer-authored `[slot="label"]` element.
|
|
42
48
|
states:
|
|
43
49
|
- name: idle
|
|
44
50
|
description: Default, ready for interaction.
|
|
@@ -95,6 +95,7 @@
|
|
|
95
95
|
"volume"
|
|
96
96
|
],
|
|
97
97
|
"name": "UIRange",
|
|
98
|
+
"parts": {},
|
|
98
99
|
"related": [
|
|
99
100
|
"input",
|
|
100
101
|
"button"
|
|
@@ -105,6 +106,11 @@
|
|
|
105
106
|
"description": "Default, ready for interaction.",
|
|
106
107
|
"name": "idle"
|
|
107
108
|
},
|
|
109
|
+
{
|
|
110
|
+
"description": "The field is mid-drag (pointer down through pointerup).",
|
|
111
|
+
"attribute": "dragging",
|
|
112
|
+
"name": "dragging"
|
|
113
|
+
},
|
|
108
114
|
{
|
|
109
115
|
"description": "Non-interactive; dimmed.",
|
|
110
116
|
"attribute": "disabled",
|
|
@@ -138,7 +138,7 @@ export class UIRange extends UIFormElement {
|
|
|
138
138
|
this.#dragging = true;
|
|
139
139
|
this.#startX = e.clientX;
|
|
140
140
|
this.#startVal = this.value;
|
|
141
|
-
this.setAttribute('
|
|
141
|
+
this.setAttribute('dragging', '');
|
|
142
142
|
this.#fieldEl.setPointerCapture(e.pointerId);
|
|
143
143
|
this.#fieldEl.addEventListener('pointermove', this.#onPointerMove);
|
|
144
144
|
this.#fieldEl.addEventListener('pointerup', this.#onPointerUp);
|
|
@@ -156,7 +156,7 @@ export class UIRange extends UIFormElement {
|
|
|
156
156
|
|
|
157
157
|
#onPointerUp = (e) => {
|
|
158
158
|
this.#dragging = false;
|
|
159
|
-
this.removeAttribute('
|
|
159
|
+
this.removeAttribute('dragging');
|
|
160
160
|
this.#fieldEl.releasePointerCapture(e.pointerId);
|
|
161
161
|
this.#fieldEl.removeEventListener('pointermove', this.#onPointerMove);
|
|
162
162
|
this.#fieldEl.removeEventListener('pointerup', this.#onPointerUp);
|
|
@@ -147,10 +147,10 @@ range-ui:not([disabled]) [slot="field"]:hover [data-layer="fill"] {
|
|
|
147
147
|
/* Hover-fill brighten moved outside @scope — see Safari 17.x bug note at top. */
|
|
148
148
|
|
|
149
149
|
/* Dragging: deepest fill, sharper border, instant (no transition lag on the clip) */
|
|
150
|
-
:scope[
|
|
150
|
+
:scope[dragging] [slot="field"] {
|
|
151
151
|
border-color: var(--range-border-dragging);
|
|
152
152
|
}
|
|
153
|
-
:scope[
|
|
153
|
+
:scope[dragging] [data-layer="fill"] {
|
|
154
154
|
background: var(--range-fill-bg-active);
|
|
155
155
|
transition: none;
|
|
156
156
|
}
|
|
@@ -61,6 +61,9 @@ slots: {}
|
|
|
61
61
|
states:
|
|
62
62
|
- name: idle
|
|
63
63
|
description: Default, ready for interaction.
|
|
64
|
+
- name: dragging
|
|
65
|
+
description: The field is mid-drag (pointer down through pointerup).
|
|
66
|
+
attribute: dragging
|
|
64
67
|
- name: disabled
|
|
65
68
|
description: Non-interactive; dimmed.
|
|
66
69
|
attribute: disabled
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"unevaluatedProperties": false,
|
|
39
39
|
"x-adiaui": {
|
|
40
40
|
"anti_patterns": [],
|
|
41
|
-
"category": "
|
|
41
|
+
"category": "display",
|
|
42
42
|
"composes": [],
|
|
43
43
|
"events": {},
|
|
44
44
|
"examples": [
|
|
@@ -67,6 +67,7 @@
|
|
|
67
67
|
"richtext"
|
|
68
68
|
],
|
|
69
69
|
"name": "UIRichText",
|
|
70
|
+
"parts": {},
|
|
70
71
|
"related": [
|
|
71
72
|
"Code",
|
|
72
73
|
"Text",
|
|
@@ -41,8 +41,11 @@ export class UISearch extends UIFormElement {
|
|
|
41
41
|
|
|
42
42
|
if (!this.querySelector('input-ui')) {
|
|
43
43
|
const size = this.getAttribute('size');
|
|
44
|
+
// No `type` attribute here — input-ui's `type` enum no longer
|
|
45
|
+
// includes "search" (gh#1381, gh#1363 B10); it was always
|
|
46
|
+
// decorative on this primitive (input.class.js never branched on
|
|
47
|
+
// it), so dropping it is a no-op on rendered behavior.
|
|
44
48
|
this.innerHTML = `<input-ui
|
|
45
|
-
type="search"
|
|
46
49
|
prefix="magnifying-glass"
|
|
47
50
|
suffix="x-circle"
|
|
48
51
|
placeholder="${this.placeholder}"
|
|
@@ -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/Segment.json",
|
|
4
4
|
"title": "Segment",
|
|
5
|
-
"description": "Individual segment child of <segmented-ui> — carries the [value],\n[text], optional [icon], and [selected] state for one option in\na horizontal segmented selector. Distinct from <tab-ui> (a view\nswitcher's child) and <option> (native option for <select-ui>).\nUse segment-ui only as a direct child of <segmented-ui>; never\nstandalone.\n",
|
|
5
|
+
"description": "Individual segment child of <segmented-ui> — carries the [value],\n[text], optional [icon], and [selected] state for one option in\na horizontal segmented selector, single- or multi-select\n(<segmented-ui multiple>, gh#1369). Distinct from <tab-ui> (a view\nswitcher's child) and <option> (native option for <select-ui>).\nUse segment-ui only as a direct child of <segmented-ui>; never\nstandalone.\n",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"allOf": [
|
|
8
8
|
{
|
|
@@ -47,6 +47,9 @@
|
|
|
47
47
|
],
|
|
48
48
|
"unevaluatedProperties": false,
|
|
49
49
|
"x-adiaui": {
|
|
50
|
+
"allowedParents": [
|
|
51
|
+
"Segmented"
|
|
52
|
+
],
|
|
50
53
|
"anti_patterns": [],
|
|
51
54
|
"category": "navigation",
|
|
52
55
|
"composes": [
|
|
@@ -56,36 +59,39 @@
|
|
|
56
59
|
"examples": [
|
|
57
60
|
{
|
|
58
61
|
"description": "Segmented control with 3 segment options for tab-like switching.",
|
|
59
|
-
"a2ui": "[\n {\n \"id\": \"root\",\n \"component\": \"
|
|
62
|
+
"a2ui": "[\n {\n \"id\": \"root\",\n \"component\": \"Segmented\",\n \"children\": [\n \"s1\",\n \"s2\",\n \"s3\"\n ]\n },\n {\n \"id\": \"s1\",\n \"component\": \"Segment\",\n \"text\": \"Overview\",\n \"selected\": true\n },\n {\n \"id\": \"s2\",\n \"component\": \"Segment\",\n \"text\": \"Features\"\n },\n {\n \"id\": \"s3\",\n \"component\": \"Segment\",\n \"text\": \"Pricing\"\n }\n]",
|
|
60
63
|
"name": "segmented-control"
|
|
61
64
|
},
|
|
62
65
|
{
|
|
63
66
|
"description": "Three segments inside a segmented control for view switching.",
|
|
64
|
-
"a2ui": "[\n {\n \"id\": \"root\",\n \"component\": \"
|
|
67
|
+
"a2ui": "[\n {\n \"id\": \"root\",\n \"component\": \"Segmented\",\n \"children\": [\n \"s1\",\n \"s2\",\n \"s3\"\n ]\n },\n {\n \"id\": \"s1\",\n \"component\": \"Segment\",\n \"value\": \"overview\",\n \"text\": \"Overview\"\n },\n {\n \"id\": \"s2\",\n \"component\": \"Segment\",\n \"value\": \"features\",\n \"text\": \"Features\"\n },\n {\n \"id\": \"s3\",\n \"component\": \"Segment\",\n \"value\": \"pricing\",\n \"text\": \"Pricing\"\n }\n]",
|
|
65
68
|
"name": "basic"
|
|
66
69
|
},
|
|
67
70
|
{
|
|
68
71
|
"description": "Segmented control showing four time-range segments labeled via text attribute.",
|
|
69
|
-
"a2ui": "[\n {\n \"id\": \"root\",\n \"component\": \"
|
|
72
|
+
"a2ui": "[\n {\n \"id\": \"root\",\n \"component\": \"Segmented\",\n \"children\": [\n \"s1\",\n \"s2\",\n \"s3\",\n \"s4\"\n ]\n },\n {\n \"id\": \"s1\",\n \"component\": \"Segment\",\n \"value\": \"d\",\n \"text\": \"Daily\"\n },\n {\n \"id\": \"s2\",\n \"component\": \"Segment\",\n \"value\": \"w\",\n \"text\": \"Weekly\"\n },\n {\n \"id\": \"s3\",\n \"component\": \"Segment\",\n \"value\": \"m\",\n \"text\": \"Monthly\"\n },\n {\n \"id\": \"s4\",\n \"component\": \"Segment\",\n \"value\": \"y\",\n \"text\": \"Yearly\"\n }\n]",
|
|
70
73
|
"name": "text"
|
|
71
74
|
},
|
|
72
75
|
{
|
|
73
76
|
"description": "Segmented control with one disabled segment that cannot be selected.",
|
|
74
|
-
"a2ui": "[\n {\n \"id\": \"root\",\n \"component\": \"
|
|
77
|
+
"a2ui": "[\n {\n \"id\": \"root\",\n \"component\": \"Segmented\",\n \"children\": [\n \"s1\",\n \"s2\",\n \"s3\"\n ]\n },\n {\n \"id\": \"s1\",\n \"component\": \"Segment\",\n \"value\": \"free\",\n \"text\": \"Free\"\n },\n {\n \"id\": \"s2\",\n \"component\": \"Segment\",\n \"value\": \"pro\",\n \"text\": \"Pro\"\n },\n {\n \"id\": \"s3\",\n \"component\": \"Segment\",\n \"value\": \"enterprise\",\n \"text\": \"Enterprise\",\n \"disabled\": true\n }\n]",
|
|
75
78
|
"name": "disabled"
|
|
76
79
|
},
|
|
77
80
|
{
|
|
78
81
|
"description": "Segmented control with icon+text segments for view-mode toggles (list, grid, board).",
|
|
79
|
-
"a2ui": "[\n {\n \"id\": \"root\",\n \"component\": \"
|
|
82
|
+
"a2ui": "[\n {\n \"id\": \"root\",\n \"component\": \"Segmented\",\n \"children\": [\n \"s1\",\n \"s2\",\n \"s3\"\n ]\n },\n {\n \"id\": \"s1\",\n \"component\": \"Segment\",\n \"value\": \"list\",\n \"text\": \"List\",\n \"icon\": \"list\"\n },\n {\n \"id\": \"s2\",\n \"component\": \"Segment\",\n \"value\": \"grid\",\n \"text\": \"Grid\",\n \"icon\": \"squares-four\"\n },\n {\n \"id\": \"s3\",\n \"component\": \"Segment\",\n \"value\": \"board\",\n \"text\": \"Board\",\n \"icon\": \"kanban\"\n }\n]",
|
|
80
83
|
"name": "icons"
|
|
81
84
|
}
|
|
82
85
|
],
|
|
83
86
|
"keywords": [
|
|
84
|
-
"segment"
|
|
87
|
+
"segment",
|
|
88
|
+
"toggle-option"
|
|
85
89
|
],
|
|
86
90
|
"name": "UISegment",
|
|
91
|
+
"parts": {},
|
|
87
92
|
"related": [
|
|
88
|
-
"segmented-control"
|
|
93
|
+
"segmented-control",
|
|
94
|
+
"ToggleOption"
|
|
89
95
|
],
|
|
90
96
|
"slots": {},
|
|
91
97
|
"states": [
|
|
@@ -104,11 +110,16 @@
|
|
|
104
110
|
"segment": [
|
|
105
111
|
"segment-button",
|
|
106
112
|
"segmented-option",
|
|
107
|
-
"option-button"
|
|
113
|
+
"option-button",
|
|
114
|
+
"toggle-option"
|
|
108
115
|
]
|
|
109
116
|
},
|
|
110
117
|
"tag": "segment-ui",
|
|
111
|
-
"tokens": {
|
|
118
|
+
"tokens": {
|
|
119
|
+
"--segment-bg-selected": {
|
|
120
|
+
"description": "Background color of a selected segment under the parent's [multiple] mode (no sliding indicator in that mode)."
|
|
121
|
+
}
|
|
122
|
+
},
|
|
112
123
|
"traits": [],
|
|
113
124
|
"version": 1
|
|
114
125
|
}
|
|
@@ -8,6 +8,16 @@ segment-ui[selected] {
|
|
|
8
8
|
color: var(--segment-fg-selected);
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
+
/* [multiple] (gh#1369, #1363 C1): the parent segmented-ui[multiple] never
|
|
12
|
+
creates a sliding indicator (segmented.class.js render()), so each
|
|
13
|
+
selected segment paints its own background instead — mirrors the
|
|
14
|
+
deprecated toggle-option-ui[selected] treatment it replaces. Scoped to
|
|
15
|
+
the multiple ancestor so single-select's indicator-driven look is
|
|
16
|
+
unchanged. */
|
|
17
|
+
segmented-ui[multiple] > segment-ui[selected] {
|
|
18
|
+
background: var(--segment-bg-selected);
|
|
19
|
+
}
|
|
20
|
+
|
|
11
21
|
@scope (segment-ui) {
|
|
12
22
|
:where(:scope) {
|
|
13
23
|
/* ── Layout ── */
|
|
@@ -33,6 +43,11 @@ segment-ui[selected] {
|
|
|
33
43
|
--segment-fg-hover: var(--a-ui-text-hover);
|
|
34
44
|
--segment-fg-selected: var(--a-chrome-dark);
|
|
35
45
|
--segment-fg-disabled: var(--a-ui-text-disabled);
|
|
46
|
+
/* [multiple] only — see the moved-out selector above (Safari 17.x bug
|
|
47
|
+
note at top of file). Same default the deprecated
|
|
48
|
+
toggle-option-ui[selected] background used, for visual continuity
|
|
49
|
+
across the merge (gh#1369). */
|
|
50
|
+
--segment-bg-selected: var(--md-sys-color-primary-container);
|
|
36
51
|
|
|
37
52
|
/* ── Transition ── */
|
|
38
53
|
--segment-duration: var(--a-duration-fast);
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `<segment-ui>` — Individual segment child of <segmented-ui> — carries the [value],
|
|
3
3
|
[text], optional [icon], and [selected] state for one option in
|
|
4
|
-
a horizontal segmented selector
|
|
4
|
+
a horizontal segmented selector, single- or multi-select
|
|
5
|
+
(<segmented-ui multiple>, gh#1369). Distinct from <tab-ui> (a view
|
|
5
6
|
switcher's child) and <option> (native option for <select-ui>).
|
|
6
7
|
Use segment-ui only as a direct child of <segmented-ui>; never
|
|
7
8
|
standalone.
|
|
@@ -10,7 +10,8 @@ version: 1
|
|
|
10
10
|
description: |
|
|
11
11
|
Individual segment child of <segmented-ui> — carries the [value],
|
|
12
12
|
[text], optional [icon], and [selected] state for one option in
|
|
13
|
-
a horizontal segmented selector
|
|
13
|
+
a horizontal segmented selector, single- or multi-select
|
|
14
|
+
(<segmented-ui multiple>, gh#1369). Distinct from <tab-ui> (a view
|
|
14
15
|
switcher's child) and <option> (native option for <select-ui>).
|
|
15
16
|
Use segment-ui only as a direct child of <segmented-ui>; never
|
|
16
17
|
standalone.
|
|
@@ -51,14 +52,18 @@ states:
|
|
|
51
52
|
description: Non-interactive; dimmed.
|
|
52
53
|
attribute: disabled
|
|
53
54
|
traits: []
|
|
54
|
-
tokens:
|
|
55
|
+
tokens:
|
|
56
|
+
--segment-bg-selected:
|
|
57
|
+
description: Background color of a selected segment under the parent's [multiple] mode (no sliding indicator in that mode).
|
|
55
58
|
a2ui:
|
|
59
|
+
allowedParents:
|
|
60
|
+
- Segmented
|
|
56
61
|
rules:
|
|
57
|
-
- rule: 'Child of <segmented-ui> — one selectable option button
|
|
62
|
+
- rule: 'Child of <segmented-ui> — one selectable option button; the parent''s [multiple] axis decides single- or multi-select, segment-ui itself is unchanged either way.'
|
|
58
63
|
reason: 'Cluster contract.'
|
|
59
|
-
- rule: '
|
|
60
|
-
reason: '
|
|
61
|
-
- rule: 'Selected state managed by parent <segmented-ui>
|
|
64
|
+
- rule: '<toggle-option-ui> (deprecated, gh#1369) is the same concept — use segment-ui inside <segmented-ui multiple> instead.'
|
|
65
|
+
reason: 'Deprecation redirect.'
|
|
66
|
+
- rule: 'Selected state managed by the parent <segmented-ui> — it syncs the selected attribute onto every child whose value is in its own value (single value, or the [multiple] comma-separated set); do not set selected directly on segment.'
|
|
62
67
|
reason: 'Parent owns selection state.'
|
|
63
68
|
anti_patterns: []
|
|
64
69
|
examples:
|
|
@@ -68,7 +73,7 @@ examples:
|
|
|
68
73
|
[
|
|
69
74
|
{
|
|
70
75
|
"id": "root",
|
|
71
|
-
"component": "
|
|
76
|
+
"component": "Segmented",
|
|
72
77
|
"children": [
|
|
73
78
|
"s1",
|
|
74
79
|
"s2",
|
|
@@ -79,7 +84,7 @@ examples:
|
|
|
79
84
|
"id": "s1",
|
|
80
85
|
"component": "Segment",
|
|
81
86
|
"text": "Overview",
|
|
82
|
-
"
|
|
87
|
+
"selected": true
|
|
83
88
|
},
|
|
84
89
|
{
|
|
85
90
|
"id": "s2",
|
|
@@ -98,7 +103,7 @@ examples:
|
|
|
98
103
|
[
|
|
99
104
|
{
|
|
100
105
|
"id": "root",
|
|
101
|
-
"component": "
|
|
106
|
+
"component": "Segmented",
|
|
102
107
|
"children": [
|
|
103
108
|
"s1",
|
|
104
109
|
"s2",
|
|
@@ -130,7 +135,7 @@ examples:
|
|
|
130
135
|
[
|
|
131
136
|
{
|
|
132
137
|
"id": "root",
|
|
133
|
-
"component": "
|
|
138
|
+
"component": "Segmented",
|
|
134
139
|
"children": [
|
|
135
140
|
"s1",
|
|
136
141
|
"s2",
|
|
@@ -169,7 +174,7 @@ examples:
|
|
|
169
174
|
[
|
|
170
175
|
{
|
|
171
176
|
"id": "root",
|
|
172
|
-
"component": "
|
|
177
|
+
"component": "Segmented",
|
|
173
178
|
"children": [
|
|
174
179
|
"s1",
|
|
175
180
|
"s2",
|
|
@@ -202,7 +207,7 @@ examples:
|
|
|
202
207
|
[
|
|
203
208
|
{
|
|
204
209
|
"id": "root",
|
|
205
|
-
"component": "
|
|
210
|
+
"component": "Segmented",
|
|
206
211
|
"children": [
|
|
207
212
|
"s1",
|
|
208
213
|
"s2",
|
|
@@ -233,7 +238,9 @@ examples:
|
|
|
233
238
|
]
|
|
234
239
|
keywords:
|
|
235
240
|
- segment
|
|
241
|
+
- toggle-option
|
|
236
242
|
synonyms:
|
|
237
|
-
segment: [segment-button, segmented-option, option-button]
|
|
243
|
+
segment: [segment-button, segmented-option, option-button, toggle-option]
|
|
238
244
|
related:
|
|
239
245
|
- segmented-control
|
|
246
|
+
- ToggleOption
|
|
@@ -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/Segmented.json",
|
|
4
4
|
"title": "Segmented",
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "Toggle group with an animated sliding indicator (single-select) or independently-toggleable segments (multi-select via [multiple]). Children must be segment-ui elements.",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"allOf": [
|
|
8
8
|
{
|
|
@@ -14,15 +14,20 @@
|
|
|
14
14
|
],
|
|
15
15
|
"properties": {
|
|
16
16
|
"allowEmpty": {
|
|
17
|
-
"description": "Suppresses the connect-time self-select of the first enabled segment when value is falsy. Without it, an empty value silently selects the first segment; with it, a falsy value renders every segment unselected until a real value arrives — for path-bound consumers whose bound value can be a genuine empty state.",
|
|
17
|
+
"description": "Suppresses the connect-time self-select of the first enabled segment when value is falsy. Without it, an empty value silently selects the first segment; with it, a falsy value renders every segment unselected until a real value arrives — for path-bound consumers whose bound value can be a genuine empty state. No effect under [multiple] — multi-select never self-selects (empty value already means \"nothing chosen\").",
|
|
18
18
|
"type": "boolean",
|
|
19
19
|
"default": false
|
|
20
20
|
},
|
|
21
21
|
"component": {
|
|
22
22
|
"const": "Segmented"
|
|
23
23
|
},
|
|
24
|
+
"multiple": {
|
|
25
|
+
"description": "Enables multi-select — value becomes a comma-separated set, the sliding indicator is suppressed (each selected segment carries its own background instead), and Space/Enter toggles a focused segment instead of arrow-move selecting it. Positive polarity, matching select-ui[multiple]. Absorbs the role of the deprecated <toggle-group-ui> + <toggle-option-ui> pair (gh#1369, #1363 C1). Unlike <toggle-group-ui single>, re-clicking an already-selected segment does NOT clear the selection — segmented-ui's single-select is standard radiogroup semantics (always exactly one selected once a value is set).",
|
|
26
|
+
"type": "boolean",
|
|
27
|
+
"default": false
|
|
28
|
+
},
|
|
24
29
|
"value": {
|
|
25
|
-
"description": "Value of the currently selected segment.",
|
|
30
|
+
"description": "Value of the currently selected segment. Under [multiple], a comma-separated set of selected values (same encoding as select-ui[multiple]).",
|
|
26
31
|
"type": "string",
|
|
27
32
|
"default": ""
|
|
28
33
|
}
|
|
@@ -32,6 +37,9 @@
|
|
|
32
37
|
],
|
|
33
38
|
"unevaluatedProperties": false,
|
|
34
39
|
"x-adiaui": {
|
|
40
|
+
"allowedChildren": [
|
|
41
|
+
"Segment"
|
|
42
|
+
],
|
|
35
43
|
"anti_patterns": [],
|
|
36
44
|
"category": "navigation",
|
|
37
45
|
"composes": [],
|
|
@@ -45,6 +53,11 @@
|
|
|
45
53
|
"description": "Segmented control with three segment-ui children for view switching.",
|
|
46
54
|
"a2ui": "[\n {\n \"id\": \"root\",\n \"component\": \"Card\",\n \"children\": [\n \"sec\"\n ]\n },\n {\n \"id\": \"sec\",\n \"component\": \"Section\",\n \"children\": [\n \"comp\"\n ]\n },\n {\n \"id\": \"comp\",\n \"component\": \"Segmented\",\n \"value\": \"daily\",\n \"children\": [\n \"s1\",\n \"s2\",\n \"s3\"\n ]\n },\n {\n \"id\": \"s1\",\n \"component\": \"Segment\",\n \"value\": \"daily\",\n \"text\": \"Daily\"\n },\n {\n \"id\": \"s2\",\n \"component\": \"Segment\",\n \"value\": \"weekly\",\n \"text\": \"Weekly\"\n },\n {\n \"id\": \"s3\",\n \"component\": \"Segment\",\n \"value\": \"monthly\",\n \"text\": \"Monthly\"\n }\n]",
|
|
47
55
|
"name": "basic-segmented"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"description": "Multi-select segmented control (gh#1369) for filter chips — [multiple] set, value is a comma-separated set of active segments.",
|
|
59
|
+
"a2ui": "[\n {\n \"id\": \"root\",\n \"component\": \"Card\",\n \"children\": [\n \"sec\"\n ]\n },\n {\n \"id\": \"sec\",\n \"component\": \"Section\",\n \"children\": [\n \"comp\"\n ]\n },\n {\n \"id\": \"comp\",\n \"component\": \"Segmented\",\n \"multiple\": true,\n \"value\": \"bold,italic\",\n \"children\": [\n \"s1\",\n \"s2\",\n \"s3\"\n ]\n },\n {\n \"id\": \"s1\",\n \"component\": \"Segment\",\n \"value\": \"bold\",\n \"text\": \"Bold\"\n },\n {\n \"id\": \"s2\",\n \"component\": \"Segment\",\n \"value\": \"italic\",\n \"text\": \"Italic\"\n },\n {\n \"id\": \"s3\",\n \"component\": \"Segment\",\n \"value\": \"underline\",\n \"text\": \"Underline\"\n }\n]",
|
|
60
|
+
"name": "multi-select-filter-chips"
|
|
48
61
|
}
|
|
49
62
|
],
|
|
50
63
|
"keywords": [
|
|
@@ -55,21 +68,27 @@
|
|
|
55
68
|
"switch",
|
|
56
69
|
"tab",
|
|
57
70
|
"tabs",
|
|
58
|
-
"button-group"
|
|
71
|
+
"button-group",
|
|
72
|
+
"filter",
|
|
73
|
+
"multi-select",
|
|
74
|
+
"filter-chips"
|
|
59
75
|
],
|
|
60
76
|
"name": "UISegmented",
|
|
77
|
+
"parts": {
|
|
78
|
+
"indicator": {
|
|
79
|
+
"description": "Auto-created sliding indicator element prepended on first render — template-owned anatomy part, not a light-DOM insertion point (gh#1454). Lazily created once via an internal-field guard, never adopted from a consumer-authored element."
|
|
80
|
+
}
|
|
81
|
+
},
|
|
61
82
|
"related": [
|
|
62
83
|
"Segment",
|
|
63
84
|
"ToggleGroup",
|
|
85
|
+
"ToggleOption",
|
|
64
86
|
"Tabs",
|
|
65
87
|
"Radio"
|
|
66
88
|
],
|
|
67
89
|
"slots": {
|
|
68
90
|
"default": {
|
|
69
91
|
"description": "Child segment-ui elements that form the toggle group. Children MUST be segment-ui — bare segment tags render text but are silently ignored for the sliding indicator and role/aria-checked state."
|
|
70
|
-
},
|
|
71
|
-
"indicator": {
|
|
72
|
-
"description": "Auto-created sliding indicator element prepended on first render."
|
|
73
92
|
}
|
|
74
93
|
},
|
|
75
94
|
"states": [
|
|
@@ -85,6 +104,16 @@
|
|
|
85
104
|
"button",
|
|
86
105
|
"segmented"
|
|
87
106
|
],
|
|
107
|
+
"filter": [
|
|
108
|
+
"segmented",
|
|
109
|
+
"toggle-group",
|
|
110
|
+
"filter-chips"
|
|
111
|
+
],
|
|
112
|
+
"multi-select": [
|
|
113
|
+
"segmented",
|
|
114
|
+
"toggle-group",
|
|
115
|
+
"select"
|
|
116
|
+
],
|
|
88
117
|
"options": [
|
|
89
118
|
"settings",
|
|
90
119
|
"radio",
|