@ds-mo/ui 15.2.0 → 15.4.0
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/dist/.package-ready.json +1 -1
- package/dist/agent-patterns.json +3 -3
- package/dist/agent.json +936 -80
- package/dist/angular/ds-card-setting.d.ts +1 -1
- package/dist/angular/ds-card-setting.js +3 -3
- package/dist/angular/ds-checkbox-group.d.ts +12 -0
- package/dist/angular/ds-checkbox-group.js +38 -0
- package/dist/angular/ds-checkbox.d.ts +1 -1
- package/dist/angular/ds-checkbox.js +3 -3
- package/dist/angular/ds-inline-banner-settings.d.ts +12 -0
- package/dist/angular/ds-inline-banner-settings.js +38 -0
- package/dist/angular/ds-input-time.d.ts +1 -1
- package/dist/angular/ds-input-time.js +3 -3
- package/dist/angular/ds-input.d.ts +5 -1
- package/dist/angular/ds-input.js +10 -4
- package/dist/angular/ds-map-entity-marker.d.ts +1 -1
- package/dist/angular/ds-map-entity-marker.js +3 -3
- package/dist/angular/ds-radio-tile.d.ts +15 -0
- package/dist/angular/ds-radio-tile.js +43 -0
- package/dist/angular/ds-radio.d.ts +1 -1
- package/dist/angular/ds-radio.js +3 -3
- package/dist/angular/ds-setting-row-checkbox.d.ts +12 -0
- package/dist/angular/ds-setting-row-checkbox.js +38 -0
- package/dist/angular/ds-setting-row-radio.d.ts +12 -0
- package/dist/angular/ds-setting-row-radio.js +38 -0
- package/dist/angular/ds-setting-row-toggle.d.ts +18 -0
- package/dist/angular/ds-setting-row-toggle.js +42 -0
- package/dist/angular/ds-slider.d.ts +1 -1
- package/dist/angular/ds-slider.js +3 -3
- package/dist/angular/ds-textarea.d.ts +1 -1
- package/dist/angular/ds-textarea.js +3 -3
- package/dist/angular/ds-time-picker.d.ts +1 -1
- package/dist/angular/ds-time-picker.js +3 -3
- package/dist/angular/index.d.ts +1 -1
- package/dist/angular/index.js +6 -0
- package/dist/angular/number-value-accessor.d.ts +9 -0
- package/dist/angular/number-value-accessor.js +39 -0
- package/dist/angular/proxies.d.ts +6 -0
- package/dist/angular/proxies.js +6 -0
- package/dist/angular/radio-value-accessor.d.ts +1 -1
- package/dist/angular/radio-value-accessor.js +2 -2
- package/dist/angular/select-value-accessor.d.ts +1 -1
- package/dist/angular/select-value-accessor.js +2 -2
- package/dist/angular/text-value-accessor.d.ts +1 -1
- package/dist/angular/text-value-accessor.js +2 -2
- package/dist/components/ds-agent-activity.js +1 -1
- package/dist/components/ds-agent-questionnaire.js +1 -1
- package/dist/components/ds-agent-response.js +1 -1
- package/dist/components/ds-agent-response.js.map +1 -1
- package/dist/components/ds-agent-source-list.js +1 -1
- package/dist/components/ds-agent-tool-call.js +1 -1
- package/dist/components/ds-attachment-list.js +1 -1
- package/dist/components/ds-badge.js +1 -1
- package/dist/components/ds-banner.js +1 -1
- package/dist/components/ds-bar-action.js +1 -1
- package/dist/components/ds-bar-nav.js +1 -1
- package/dist/components/ds-bar-page-title.js +1 -1
- package/dist/components/ds-bar-title.js +1 -1
- package/dist/components/ds-bar-workflow.js +1 -1
- package/dist/components/ds-breadcrumb.js +1 -1
- package/dist/components/ds-button-filled.js +1 -1
- package/dist/components/ds-button-inverted.js +1 -1
- package/dist/components/ds-button-inverted.js.map +1 -1
- package/dist/components/ds-button-unfilled.js +1 -1
- package/dist/components/ds-calendar.js +1 -1
- package/dist/components/ds-card-action-center.js +1 -1
- package/dist/components/ds-card-action-center.js.map +1 -1
- package/dist/components/ds-card-chart.js +1 -1
- package/dist/components/ds-card-navigation.js +1 -1
- package/dist/components/ds-card-navigation.js.map +1 -1
- package/dist/components/ds-card-overview.js +1 -1
- package/dist/components/ds-card-overview.js.map +1 -1
- package/dist/components/ds-card-setting.js +1 -1
- package/dist/components/ds-card-setting.js.map +1 -1
- package/dist/components/ds-card-settings-scope.js +1 -1
- package/dist/components/ds-card-settings-scope.js.map +1 -1
- package/dist/components/ds-chart-legend.js +1 -1
- package/dist/components/ds-chart-legend.js.map +1 -1
- package/dist/components/ds-chart.js +1 -1
- package/dist/components/ds-checkbox-group.d.ts +11 -0
- package/dist/components/ds-checkbox-group.js +2 -0
- package/dist/components/ds-checkbox-group.js.map +1 -0
- package/dist/components/ds-checkbox.js +1 -1
- package/dist/components/ds-chip.js +1 -1
- package/dist/components/ds-code-block.js +1 -1
- package/dist/components/ds-conversation-list-item.js +1 -1
- package/dist/components/ds-conversation-list-item.js.map +1 -1
- package/dist/components/ds-conversation-list-section.js +1 -1
- package/dist/components/ds-conversation-list.js +1 -1
- package/dist/components/ds-data-customize.js +1 -1
- package/dist/components/ds-data-customize.js.map +1 -1
- package/dist/components/ds-data-filter.js +1 -1
- package/dist/components/ds-data-filter.js.map +1 -1
- package/dist/components/ds-data-group.js +1 -1
- package/dist/components/ds-data-preferences.js +1 -1
- package/dist/components/ds-data-preferences.js.map +1 -1
- package/dist/components/ds-data-saved-views.js +1 -1
- package/dist/components/ds-data-saved-views.js.map +1 -1
- package/dist/components/ds-data-search.js +1 -1
- package/dist/components/ds-data-search.js.map +1 -1
- package/dist/components/ds-data-sort.js +1 -1
- package/dist/components/ds-data-toolbar.js +1 -1
- package/dist/components/ds-divider.js +1 -1
- package/dist/components/ds-empty-state.js +1 -1
- package/dist/components/ds-field.js +1 -1
- package/dist/components/ds-filter-menu.js +1 -1
- package/dist/components/ds-inline-banner-settings.d.ts +11 -0
- package/dist/components/ds-inline-banner-settings.js +2 -0
- package/dist/components/ds-inline-banner-settings.js.map +1 -0
- package/dist/components/ds-input-date.js +1 -1
- package/dist/components/ds-input-date.js.map +1 -1
- package/dist/components/ds-input-time.js +1 -1
- package/dist/components/ds-input-time.js.map +1 -1
- package/dist/components/ds-input.js +1 -1
- package/dist/components/ds-map-cluster-marker.js +1 -1
- package/dist/components/ds-map-entity-marker.js +1 -1
- package/dist/components/ds-map-entity-marker.js.map +1 -1
- package/dist/components/ds-markdown.js +1 -1
- package/dist/components/ds-menu.js +1 -1
- package/dist/components/ds-message-actions.js +1 -1
- package/dist/components/ds-message-bubble.js +1 -1
- package/dist/components/ds-message-bubble.js.map +1 -1
- package/dist/components/ds-message-composer.js +1 -1
- package/dist/components/ds-message-composer.js.map +1 -1
- package/dist/components/ds-message-scroller.js +1 -1
- package/dist/components/ds-message.js +1 -1
- package/dist/components/ds-mobile-bar-nav.js +1 -1
- package/dist/components/ds-mobile-header.js +1 -1
- package/dist/components/ds-mobile-section-switcher.js +1 -1
- package/dist/components/ds-mobile-sheet-nav.js +1 -1
- package/dist/components/ds-modal.js +1 -1
- package/dist/components/ds-pagination.js +1 -1
- package/dist/components/ds-panel-nav.js +1 -1
- package/dist/components/ds-panel-sub-nav.js +1 -1
- package/dist/components/ds-panel-sub-nav.js.map +1 -1
- package/dist/components/ds-panel-tool-header.js +1 -1
- package/dist/components/ds-panel-tool-search.js +1 -1
- package/dist/components/ds-panel-tool-search.js.map +1 -1
- package/dist/components/ds-panel-tools.js +1 -1
- package/dist/components/ds-paper-texture.js +1 -1
- package/dist/components/ds-radio-tile.d.ts +11 -0
- package/dist/components/ds-radio-tile.js +2 -0
- package/dist/components/ds-radio-tile.js.map +1 -0
- package/dist/components/ds-radio.js +1 -1
- package/dist/components/ds-score.js +1 -1
- package/dist/components/ds-scroll-overlay.js +1 -1
- package/dist/components/ds-select.js +1 -1
- package/dist/components/ds-setting-row-checkbox.d.ts +11 -0
- package/dist/components/ds-setting-row-checkbox.js +2 -0
- package/dist/components/ds-setting-row-checkbox.js.map +1 -0
- package/dist/components/ds-setting-row-radio.d.ts +11 -0
- package/dist/components/ds-setting-row-radio.js +2 -0
- package/dist/components/ds-setting-row-radio.js.map +1 -0
- package/dist/components/ds-setting-row-toggle.d.ts +11 -0
- package/dist/components/ds-setting-row-toggle.js +2 -0
- package/dist/components/ds-setting-row-toggle.js.map +1 -0
- package/dist/components/ds-shell-app.js +1 -1
- package/dist/components/ds-shell-app.js.map +1 -1
- package/dist/components/ds-shell-page.js +1 -1
- package/dist/components/ds-shell-tools.js +1 -1
- package/dist/components/ds-skeleton.js +1 -1
- package/dist/components/ds-slider.js +1 -1
- package/dist/components/ds-slider.js.map +1 -1
- package/dist/components/ds-swatch-picker.js +1 -1
- package/dist/components/ds-switch.js +1 -1
- package/dist/components/ds-tab-group.js +1 -1
- package/dist/components/ds-table.js +1 -1
- package/dist/components/ds-table.js.map +1 -1
- package/dist/components/ds-tag.js +1 -1
- package/dist/components/ds-text.js +1 -1
- package/dist/components/ds-textarea.js +1 -1
- package/dist/components/ds-textarea.js.map +1 -1
- package/dist/components/ds-time-picker.js +1 -1
- package/dist/components/ds-toast.js +1 -1
- package/dist/components/ds-tooltip-chart.js +1 -1
- package/dist/components/ds-tooltip.js +1 -1
- package/dist/components/ds-typing-indicator.js +1 -1
- package/dist/components/p-7TVdPhGR.js +2 -0
- package/dist/components/{p-YrnU2fM7.js.map → p-7TVdPhGR.js.map} +1 -1
- package/dist/components/{p-7V1AhetH.js → p-B0BQCVkq.js} +2 -2
- package/dist/components/p-B0EpvBDs.js +2 -0
- package/dist/components/{p-lamoJZE4.js.map → p-B0EpvBDs.js.map} +1 -1
- package/dist/components/{p-Cu8o2rOz.js → p-B39iJO8F.js} +2 -2
- package/dist/components/p-B9TM6FqC.js +2 -0
- package/dist/components/{p-BJJh-Bf7.js.map → p-B9TM6FqC.js.map} +1 -1
- package/dist/components/{p-B6qQaYkB.js → p-B9y6azEw.js} +2 -2
- package/dist/components/p-BDdlJZyL.js +2 -0
- package/dist/components/{p-CZ7hxDy_.js.map → p-BDdlJZyL.js.map} +1 -1
- package/dist/components/{p-5SVmAjXY.js → p-BERXvOCf.js} +2 -2
- package/dist/components/{p-xhn1cZgU.js → p-BFHpU-uU.js} +2 -2
- package/dist/components/{p-CuWPWC3t.js → p-BQspV5U7.js} +2 -2
- package/dist/components/p-BWSIw8AQ.js +2 -0
- package/dist/components/p-BWSIw8AQ.js.map +1 -0
- package/dist/components/p-BhjqYTiY.js +2 -0
- package/dist/components/p-BhjqYTiY.js.map +1 -0
- package/dist/components/{p-BOhefRMt.js → p-Bk3poU91.js} +2 -2
- package/dist/components/{p-QWukusRL.js → p-BnuNaXR2.js} +2 -2
- package/dist/components/p-BwdnVqAY.js +2 -0
- package/dist/components/p-BwdnVqAY.js.map +1 -0
- package/dist/components/p-C4huuwed.js +2 -0
- package/dist/components/{p-CRk0TjQv.js.map → p-C4huuwed.js.map} +1 -1
- package/dist/components/{p-BtnTQp4K.js → p-C8V4lkVy.js} +2 -2
- package/dist/components/p-CJ1NnOEW.js +2 -0
- package/dist/components/p-CJ1NnOEW.js.map +1 -0
- package/dist/components/p-CPamUzaj.js +2 -0
- package/dist/components/{p-CNZ6-kWd.js.map → p-CPamUzaj.js.map} +1 -1
- package/dist/components/{p-Dqfc6Nvd.js → p-CUDocY23.js} +2 -2
- package/dist/components/{p-Dqfc6Nvd.js.map → p-CUDocY23.js.map} +1 -1
- package/dist/components/p-CX6ZxUQT.js +2 -0
- package/dist/components/p-CX6ZxUQT.js.map +1 -0
- package/dist/components/p-CZNZTcYS.js +2 -0
- package/dist/components/p-CZNZTcYS.js.map +1 -0
- package/dist/components/p-CbCN9ew9.js +2 -0
- package/dist/components/p-CbCN9ew9.js.map +1 -0
- package/dist/components/p-CeXf9-X3.js.map +1 -1
- package/dist/components/p-Cgn-BORA.js +2 -0
- package/dist/components/p-Cgn-BORA.js.map +1 -0
- package/dist/components/{p-mux14tWZ.js → p-Co1rUdOR.js} +2 -2
- package/dist/components/p-Co1rUdOR.js.map +1 -0
- package/dist/components/{p-CGidq1iC.js → p-CuwopElg.js} +2 -2
- package/dist/components/p-CwUXroLs.js +2 -0
- package/dist/components/{p-etg-Uk1u.js.map → p-CwUXroLs.js.map} +1 -1
- package/dist/components/{p-Cn6AfzeF.js → p-CwdRaJER.js} +2 -2
- package/dist/components/p-D6FRqNhN.js +2 -0
- package/dist/components/p-D6FRqNhN.js.map +1 -0
- package/dist/components/{p-ZwRLjD5M.js → p-D8OWhnID.js} +2 -2
- package/dist/components/p-DCyJ3_PL.js +2 -0
- package/dist/components/{p-BZ_e69zx.js.map → p-DCyJ3_PL.js.map} +1 -1
- package/dist/components/{p-C_Ma6Xa-.js → p-DIQiHX0q.js} +2 -2
- package/dist/components/{p-B3CZvMXs.js → p-DJDbskZf.js} +2 -2
- package/dist/components/p-DRdoGSGX.js +2 -0
- package/dist/components/{p-CTGgXIXM.js.map → p-DRdoGSGX.js.map} +1 -1
- package/dist/components/{p-C1gaWjOm.js → p-DSZPO06T.js} +2 -2
- package/dist/components/{p-uADksYMl.js → p-DSmDyI2o.js} +2 -2
- package/dist/components/{p-UY63jmrO.js → p-DVEx-Xg9.js} +2 -2
- package/dist/components/p-DXk1eml1.js +2 -0
- package/dist/components/{p-Dlp1HqgS.js.map → p-DXk1eml1.js.map} +1 -1
- package/dist/components/{p-p0FVyEFa.js → p-DYQa1DVF.js} +2 -2
- package/dist/components/p-DYQa1DVF.js.map +1 -0
- package/dist/components/p-DYsE6HLk.js +2 -0
- package/dist/components/p-DYsE6HLk.js.map +1 -0
- package/dist/components/{p-vfCu7XSc.js → p-DZ58Sg5a.js} +2 -2
- package/dist/components/p-DebLYW7A.js +2 -0
- package/dist/components/p-DebLYW7A.js.map +1 -0
- package/dist/components/p-DhKvqh5G.js +2 -0
- package/dist/components/p-DhKvqh5G.js.map +1 -0
- package/dist/components/{p-DFO5lV_A.js → p-DmSnHVW6.js} +2 -2
- package/dist/components/p-Dnt5xUBD.js +2 -0
- package/dist/components/{p-BR5OC2PX.js.map → p-Dnt5xUBD.js.map} +1 -1
- package/dist/components/p-Doa2blZT.js +2 -0
- package/dist/components/{p-BLuqpHvp.js.map → p-Doa2blZT.js.map} +1 -1
- package/dist/components/{p-DsLXlxt3.js → p-Dyqd-cub.js} +2 -2
- package/dist/components/p-Dyqd-cub.js.map +1 -0
- package/dist/components/p-DzvTC27M.js +2 -0
- package/dist/components/p-DzvTC27M.js.map +1 -0
- package/dist/components/p-JBki_jyY.js +2 -0
- package/dist/components/{p-C0JkLR83.js.map → p-JBki_jyY.js.map} +1 -1
- package/dist/components/p-MOJmB6vX.js +2 -0
- package/dist/components/{p-BzYW1IqO.js.map → p-MOJmB6vX.js.map} +1 -1
- package/dist/components/p-TVkFIMXz.js +2 -0
- package/dist/components/p-TVkFIMXz.js.map +1 -0
- package/dist/components/{p-ER5M085B.js → p-UJMEz8_O.js} +2 -2
- package/dist/components/{p-CR-Jjdcn.js → p-_IqSPt5V.js} +2 -2
- package/dist/components/p-g0jsfEXz.js +2 -0
- package/dist/components/{p-BfF4RZdp.js.map → p-g0jsfEXz.js.map} +1 -1
- package/dist/components/{p-BLSSaVWm.js → p-pp1IQN4Z.js} +2 -2
- package/dist/docs/components.json +2901 -835
- package/dist/framework/angular.d.ts +1 -0
- package/dist/framework/angular.js +1 -0
- package/dist/lib/shell/index.js +1 -1
- package/dist/lib/shell/index.js.map +1 -1
- package/dist/lint/index.js +1 -1
- package/dist/mcp-data/registry/agent-activity.json +2 -2
- package/dist/mcp-data/registry/agent-questionnaire.json +2 -2
- package/dist/mcp-data/registry/agent-response.json +3 -3
- package/dist/mcp-data/registry/agent-source-list.json +2 -2
- package/dist/mcp-data/registry/agent-tool-call.json +2 -2
- package/dist/mcp-data/registry/attachment-list.json +2 -2
- package/dist/mcp-data/registry/avatar.json +2 -2
- package/dist/mcp-data/registry/badge.json +2 -2
- package/dist/mcp-data/registry/banner.json +2 -2
- package/dist/mcp-data/registry/bar-action.json +2 -2
- package/dist/mcp-data/registry/bar-nav.json +5 -5
- package/dist/mcp-data/registry/bar-page-title.json +4 -4
- package/dist/mcp-data/registry/bar-title.json +4 -4
- package/dist/mcp-data/registry/bar-workflow.json +2 -2
- package/dist/mcp-data/registry/breadcrumb.json +2 -2
- package/dist/mcp-data/registry/button-filled.json +2 -2
- package/dist/mcp-data/registry/button-inverted.json +2 -2
- package/dist/mcp-data/registry/button-unfilled.json +9 -9
- package/dist/mcp-data/registry/calendar.json +2 -2
- package/dist/mcp-data/registry/card-action-center.json +2 -2
- package/dist/mcp-data/registry/card-chart.json +2 -2
- package/dist/mcp-data/registry/card-navigation.json +2 -2
- package/dist/mcp-data/registry/card-overview.json +2 -2
- package/dist/mcp-data/registry/card-setting.json +50 -15
- package/dist/mcp-data/registry/card-settings-scope.json +2 -2
- package/dist/mcp-data/registry/chart-legend.json +2 -2
- package/dist/mcp-data/registry/chart.json +2 -2
- package/dist/mcp-data/registry/checkbox-group.json +246 -0
- package/dist/mcp-data/registry/checkbox.json +26 -6
- package/dist/mcp-data/registry/chip.json +2 -2
- package/dist/mcp-data/registry/code-block.json +2 -2
- package/dist/mcp-data/registry/conversation-list-item.json +2 -2
- package/dist/mcp-data/registry/conversation-list-section.json +2 -2
- package/dist/mcp-data/registry/conversation-list.json +2 -2
- package/dist/mcp-data/registry/data-customize.json +3 -3
- package/dist/mcp-data/registry/data-filter.json +2 -2
- package/dist/mcp-data/registry/data-group.json +2 -2
- package/dist/mcp-data/registry/data-preferences.json +2 -2
- package/dist/mcp-data/registry/data-saved-views.json +2 -2
- package/dist/mcp-data/registry/data-search.json +2 -2
- package/dist/mcp-data/registry/data-sort.json +2 -2
- package/dist/mcp-data/registry/data-toolbar.json +2 -2
- package/dist/mcp-data/registry/divider.json +2 -2
- package/dist/mcp-data/registry/empty-state.json +27 -14
- package/dist/mcp-data/registry/field.json +6 -5
- package/dist/mcp-data/registry/filter-menu.json +2 -2
- package/dist/mcp-data/registry/icon.json +2 -2
- package/dist/mcp-data/registry/inline-banner-settings.json +175 -0
- package/dist/mcp-data/registry/input-date.json +2 -2
- package/dist/mcp-data/registry/input-time.json +26 -7
- package/dist/mcp-data/registry/input.json +265 -15
- package/dist/mcp-data/registry/loader.json +2 -2
- package/dist/mcp-data/registry/map-cluster-marker.json +3 -3
- package/dist/mcp-data/registry/map-entity-marker.json +56 -56
- package/dist/mcp-data/registry/markdown.json +2 -2
- package/dist/mcp-data/registry/menu.json +2 -2
- package/dist/mcp-data/registry/message-actions.json +2 -2
- package/dist/mcp-data/registry/message-bubble.json +5 -5
- package/dist/mcp-data/registry/message-composer.json +7 -7
- package/dist/mcp-data/registry/message-scroller.json +2 -2
- package/dist/mcp-data/registry/message.json +3 -3
- package/dist/mcp-data/registry/mobile-bar-nav.json +2 -2
- package/dist/mcp-data/registry/mobile-header.json +2 -2
- package/dist/mcp-data/registry/mobile-section-switcher.json +2 -2
- package/dist/mcp-data/registry/mobile-sheet-nav.json +2 -2
- package/dist/mcp-data/registry/modal.json +2 -2
- package/dist/mcp-data/registry/pagination.json +2 -2
- package/dist/mcp-data/registry/panel-nav.json +4 -4
- package/dist/mcp-data/registry/panel-sub-nav.json +2 -2
- package/dist/mcp-data/registry/panel-tool-header.json +4 -4
- package/dist/mcp-data/registry/panel-tool-search.json +3 -3
- package/dist/mcp-data/registry/panel-tools.json +4 -4
- package/dist/mcp-data/registry/paper-texture.json +2 -2
- package/dist/mcp-data/registry/radio-tile.json +399 -0
- package/dist/mcp-data/registry/radio.json +51 -9
- package/dist/mcp-data/registry/registry.json +954 -80
- package/dist/mcp-data/registry/score.json +2 -2
- package/dist/mcp-data/registry/scroll-overlay.json +2 -2
- package/dist/mcp-data/registry/select.json +2 -2
- package/dist/mcp-data/registry/setting-row-checkbox.json +197 -0
- package/dist/mcp-data/registry/setting-row-radio.json +196 -0
- package/dist/mcp-data/registry/setting-row-toggle.json +233 -0
- package/dist/mcp-data/registry/shell-app.json +4 -4
- package/dist/mcp-data/registry/shell-page.json +2 -2
- package/dist/mcp-data/registry/shell-tools.json +2 -2
- package/dist/mcp-data/registry/skeleton.json +2 -2
- package/dist/mcp-data/registry/slider.json +32 -12
- package/dist/mcp-data/registry/swatch-picker.json +2 -2
- package/dist/mcp-data/registry/switch.json +4 -4
- package/dist/mcp-data/registry/tab-group.json +2 -2
- package/dist/mcp-data/registry/table.json +5 -5
- package/dist/mcp-data/registry/tag.json +2 -2
- package/dist/mcp-data/registry/text.json +2 -2
- package/dist/mcp-data/registry/textarea.json +72 -5
- package/dist/mcp-data/registry/time-picker.json +28 -9
- package/dist/mcp-data/registry/toast.json +2 -2
- package/dist/mcp-data/registry/tooltip-chart.json +2 -2
- package/dist/mcp-data/registry/tooltip.json +2 -2
- package/dist/mcp-data/registry/typing-indicator.json +2 -2
- package/dist/react/components.d.ts +6 -0
- package/dist/react/components.js +6 -0
- package/dist/react/ds-checkbox-group.d.ts +9 -0
- package/dist/react/ds-checkbox-group.js +12 -0
- package/dist/react/ds-inline-banner-settings.d.ts +9 -0
- package/dist/react/ds-inline-banner-settings.js +12 -0
- package/dist/react/ds-input.d.ts +2 -0
- package/dist/react/ds-input.js +2 -0
- package/dist/react/ds-radio-tile.d.ts +12 -0
- package/dist/react/ds-radio-tile.js +12 -0
- package/dist/react/ds-setting-row-checkbox.d.ts +9 -0
- package/dist/react/ds-setting-row-checkbox.js +12 -0
- package/dist/react/ds-setting-row-radio.d.ts +9 -0
- package/dist/react/ds-setting-row-radio.js +12 -0
- package/dist/react/ds-setting-row-toggle.d.ts +12 -0
- package/dist/react/ds-setting-row-toggle.js +12 -0
- package/dist/types/components/BarPageTitle/BarPageTitle.d.ts +2 -0
- package/dist/types/components/BarTitle/bar-title-action-chrome.d.ts +4 -0
- package/dist/types/components/ButtonUnfilled/ButtonUnfilled.d.ts +5 -2
- package/dist/types/components/CardSetting/CardSetting.d.ts +15 -3
- package/dist/types/components/CardSetting/index.d.ts +1 -1
- package/dist/types/components/Checkbox/Checkbox.d.ts +2 -0
- package/dist/types/components/CheckboxGroup/CheckboxGroup.d.ts +20 -0
- package/dist/types/components/EmptyState/EmptyState.d.ts +3 -0
- package/dist/types/components/Field/Field.d.ts +4 -0
- package/dist/types/components/InlineBannerSettings/InlineBannerSettings.d.ts +6 -0
- package/dist/types/components/Input/Input.d.ts +50 -1
- package/dist/types/components/InputTime/InputTime.d.ts +3 -0
- package/dist/types/components/MapEntityMarker/MapEntityMarker.d.ts +5 -5
- package/dist/types/components/Radio/Radio.d.ts +8 -0
- package/dist/types/components/RadioTile/RadioTile.d.ts +40 -0
- package/dist/types/components/RadioTile/index.d.ts +2 -0
- package/dist/types/components/SettingRowCheckbox/SettingRowCheckbox.d.ts +19 -0
- package/dist/types/components/SettingRowRadio/SettingRowRadio.d.ts +19 -0
- package/dist/types/components/SettingRowToggle/SettingRowToggle.d.ts +21 -0
- package/dist/types/components/Slider/Slider.d.ts +8 -1
- package/dist/types/components/Slider/index.d.ts +1 -1
- package/dist/types/components/Switch/Switch.d.ts +7 -0
- package/dist/types/components/Textarea/Textarea.d.ts +12 -0
- package/dist/types/components/TimePicker/TimePicker.d.ts +4 -0
- package/dist/types/components.d.ts +728 -37
- package/dist/types/utils/text-constraints.d.ts +20 -0
- package/dist/vue/components.d.ts +6 -0
- package/dist/vue/components.js +6 -0
- package/dist/vue/ds-card-setting.js +1 -0
- package/dist/vue/ds-checkbox-group.d.ts +3 -0
- package/dist/vue/ds-checkbox-group.js +12 -0
- package/dist/vue/ds-checkbox.js +1 -0
- package/dist/vue/ds-inline-banner-settings.d.ts +3 -0
- package/dist/vue/ds-inline-banner-settings.js +8 -0
- package/dist/vue/ds-input-time.js +1 -0
- package/dist/vue/ds-input.js +17 -0
- package/dist/vue/ds-map-entity-marker.js +2 -2
- package/dist/vue/ds-radio-tile.d.ts +3 -0
- package/dist/vue/ds-radio-tile.js +24 -0
- package/dist/vue/ds-radio.js +2 -0
- package/dist/vue/ds-setting-row-checkbox.d.ts +3 -0
- package/dist/vue/ds-setting-row-checkbox.js +11 -0
- package/dist/vue/ds-setting-row-radio.d.ts +3 -0
- package/dist/vue/ds-setting-row-radio.js +11 -0
- package/dist/vue/ds-setting-row-toggle.d.ts +3 -0
- package/dist/vue/ds-setting-row-toggle.js +15 -0
- package/dist/vue/ds-slider.d.ts +1 -1
- package/dist/vue/ds-slider.js +2 -1
- package/dist/vue/ds-textarea.js +4 -0
- package/dist/vue/ds-time-picker.js +1 -0
- package/package.json +5 -5
- package/dist/components/p-BCnzbfma.js +0 -2
- package/dist/components/p-BCnzbfma.js.map +0 -1
- package/dist/components/p-BJJh-Bf7.js +0 -2
- package/dist/components/p-BLuqpHvp.js +0 -2
- package/dist/components/p-BR5OC2PX.js +0 -2
- package/dist/components/p-BX506yEW.js +0 -2
- package/dist/components/p-BX506yEW.js.map +0 -1
- package/dist/components/p-BZ_e69zx.js +0 -2
- package/dist/components/p-BfF4RZdp.js +0 -2
- package/dist/components/p-Br5e83Fr.js +0 -2
- package/dist/components/p-Br5e83Fr.js.map +0 -1
- package/dist/components/p-Bv9rSkp0.js +0 -2
- package/dist/components/p-Bv9rSkp0.js.map +0 -1
- package/dist/components/p-BzYW1IqO.js +0 -2
- package/dist/components/p-C0JkLR83.js +0 -2
- package/dist/components/p-C6Aavz9h.js +0 -2
- package/dist/components/p-C6Aavz9h.js.map +0 -1
- package/dist/components/p-C6zycbhC.js +0 -2
- package/dist/components/p-C6zycbhC.js.map +0 -1
- package/dist/components/p-CNZ6-kWd.js +0 -2
- package/dist/components/p-CRk0TjQv.js +0 -2
- package/dist/components/p-CTGgXIXM.js +0 -2
- package/dist/components/p-CZ7hxDy_.js +0 -2
- package/dist/components/p-Cc3ZUQlJ.js +0 -2
- package/dist/components/p-Cc3ZUQlJ.js.map +0 -1
- package/dist/components/p-D5HxZrMA.js +0 -2
- package/dist/components/p-D5HxZrMA.js.map +0 -1
- package/dist/components/p-D7K1ZHML.js +0 -2
- package/dist/components/p-D7K1ZHML.js.map +0 -1
- package/dist/components/p-Dlp1HqgS.js +0 -2
- package/dist/components/p-DsLXlxt3.js.map +0 -1
- package/dist/components/p-YrnU2fM7.js +0 -2
- package/dist/components/p-ZYWnJaye.js +0 -2
- package/dist/components/p-ZYWnJaye.js.map +0 -1
- package/dist/components/p-etg-Uk1u.js +0 -2
- package/dist/components/p-lamoJZE4.js +0 -2
- package/dist/components/p-mV4vSjSK.js +0 -2
- package/dist/components/p-mV4vSjSK.js.map +0 -1
- package/dist/components/p-mux14tWZ.js.map +0 -1
- package/dist/components/p-mxZoWfnS.js +0 -2
- package/dist/components/p-mxZoWfnS.js.map +0 -1
- package/dist/components/p-p0FVyEFa.js.map +0 -1
- package/dist/components/p-xtGGIZmU.js +0 -2
- package/dist/components/p-xtGGIZmU.js.map +0 -1
- /package/dist/components/{p-7V1AhetH.js.map → p-B0BQCVkq.js.map} +0 -0
- /package/dist/components/{p-Cu8o2rOz.js.map → p-B39iJO8F.js.map} +0 -0
- /package/dist/components/{p-B6qQaYkB.js.map → p-B9y6azEw.js.map} +0 -0
- /package/dist/components/{p-5SVmAjXY.js.map → p-BERXvOCf.js.map} +0 -0
- /package/dist/components/{p-xhn1cZgU.js.map → p-BFHpU-uU.js.map} +0 -0
- /package/dist/components/{p-CuWPWC3t.js.map → p-BQspV5U7.js.map} +0 -0
- /package/dist/components/{p-BOhefRMt.js.map → p-Bk3poU91.js.map} +0 -0
- /package/dist/components/{p-QWukusRL.js.map → p-BnuNaXR2.js.map} +0 -0
- /package/dist/components/{p-BtnTQp4K.js.map → p-C8V4lkVy.js.map} +0 -0
- /package/dist/components/{p-CGidq1iC.js.map → p-CuwopElg.js.map} +0 -0
- /package/dist/components/{p-Cn6AfzeF.js.map → p-CwdRaJER.js.map} +0 -0
- /package/dist/components/{p-ZwRLjD5M.js.map → p-D8OWhnID.js.map} +0 -0
- /package/dist/components/{p-C_Ma6Xa-.js.map → p-DIQiHX0q.js.map} +0 -0
- /package/dist/components/{p-B3CZvMXs.js.map → p-DJDbskZf.js.map} +0 -0
- /package/dist/components/{p-C1gaWjOm.js.map → p-DSZPO06T.js.map} +0 -0
- /package/dist/components/{p-uADksYMl.js.map → p-DSmDyI2o.js.map} +0 -0
- /package/dist/components/{p-UY63jmrO.js.map → p-DVEx-Xg9.js.map} +0 -0
- /package/dist/components/{p-vfCu7XSc.js.map → p-DZ58Sg5a.js.map} +0 -0
- /package/dist/components/{p-DFO5lV_A.js.map → p-DmSnHVW6.js.map} +0 -0
- /package/dist/components/{p-ER5M085B.js.map → p-UJMEz8_O.js.map} +0 -0
- /package/dist/components/{p-CR-Jjdcn.js.map → p-_IqSPt5V.js.map} +0 -0
- /package/dist/components/{p-BLSSaVWm.js.map → p-pp1IQN4Z.js.map} +0 -0
|
@@ -258,8 +258,8 @@
|
|
|
258
258
|
},
|
|
259
259
|
"peerDependencies": {
|
|
260
260
|
"required": [
|
|
261
|
-
"@ds-mo/tokens ^6.
|
|
262
|
-
"@ds-mo/icons ^8.1.
|
|
261
|
+
"@ds-mo/tokens ^6.6.1",
|
|
262
|
+
"@ds-mo/icons ^8.1.1"
|
|
263
263
|
],
|
|
264
264
|
"frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
|
|
265
265
|
}
|
|
@@ -166,8 +166,8 @@
|
|
|
166
166
|
},
|
|
167
167
|
"peerDependencies": {
|
|
168
168
|
"required": [
|
|
169
|
-
"@ds-mo/tokens ^6.
|
|
170
|
-
"@ds-mo/icons ^8.1.
|
|
169
|
+
"@ds-mo/tokens ^6.6.1",
|
|
170
|
+
"@ds-mo/icons ^8.1.1"
|
|
171
171
|
],
|
|
172
172
|
"frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
|
|
173
173
|
}
|
|
@@ -1089,8 +1089,8 @@
|
|
|
1089
1089
|
"complexPropertyNote": "Assign these non-primitive values as JavaScript properties: boundary, options, sections.",
|
|
1090
1090
|
"peerDependencies": {
|
|
1091
1091
|
"required": [
|
|
1092
|
-
"@ds-mo/tokens ^6.
|
|
1093
|
-
"@ds-mo/icons ^8.1.
|
|
1092
|
+
"@ds-mo/tokens ^6.6.1",
|
|
1093
|
+
"@ds-mo/icons ^8.1.1"
|
|
1094
1094
|
],
|
|
1095
1095
|
"frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
|
|
1096
1096
|
}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
+
"name": "setting-row-checkbox",
|
|
4
|
+
"title": "SettingRowCheckbox",
|
|
5
|
+
"description": "Padded settings-row composition for an editable Checkbox group and its non-interactive saved-value readout.",
|
|
6
|
+
"type": "registry:ui",
|
|
7
|
+
"meta": {
|
|
8
|
+
"library": "@ds-mo/ui",
|
|
9
|
+
"distribution": "npm",
|
|
10
|
+
"storybook": "https://zainadeel.github.io/compomo/?path=/story/setting-row-checkbox",
|
|
11
|
+
"source": "src/wc/components/SettingRowCheckbox/SettingRowCheckbox.tsx",
|
|
12
|
+
"intentStatus": "complete",
|
|
13
|
+
"intent": {
|
|
14
|
+
"audience": "general",
|
|
15
|
+
"status": "experimental",
|
|
16
|
+
"summary": "Padded settings-row composition for an editable Checkbox group and its non-interactive saved-value readout.",
|
|
17
|
+
"useWhen": [
|
|
18
|
+
"A settings card needs an independent multi-select Checkbox group as one padded row item.",
|
|
19
|
+
"The same settings card needs to display the saved selected values without interactive checkbox controls in view mode."
|
|
20
|
+
],
|
|
21
|
+
"avoidWhen": [
|
|
22
|
+
"The Checkbox group is not part of a settings-row surface; compose ds-checkbox-group directly.",
|
|
23
|
+
"Exactly one option may be selected; use component:ds-setting-row-radio.",
|
|
24
|
+
"The setting is a single immediate on/off choice; use component:ds-setting-row-toggle."
|
|
25
|
+
],
|
|
26
|
+
"commonlyComposedWith": [
|
|
27
|
+
"component:ds-card-setting",
|
|
28
|
+
"component:ds-checkbox-group",
|
|
29
|
+
"component:ds-checkbox"
|
|
30
|
+
],
|
|
31
|
+
"accessibility": [
|
|
32
|
+
"Pass the settings heading as the row label. Do not pass CheckboxGroup's form label; the row owns the visible heading and points the slotted group at it with aria-labelledby.",
|
|
33
|
+
"Keep each Checkbox's label, checked state, name, value, and dsChange owned by the application. Leave the Checkbox group slotted in view and edit; the row hides it in view.",
|
|
34
|
+
"Do not add a second interaction layer to the row; each Checkbox owns its own focus and activation while settings usage keeps hasInteractionFill false.",
|
|
35
|
+
"View presentation exposes readable label, saved selected-value copy, and optional supporting copy without checkbox semantics, checkbox controls, or a focus target."
|
|
36
|
+
],
|
|
37
|
+
"states": [
|
|
38
|
+
"The row is a neutral padded composition; selected, focus, mixed, and inactive states belong to the slotted Checkboxes without a choice-list hover or pressed wash.",
|
|
39
|
+
"The owning application handles dsChange on each Checkbox and supplies valueLabel by joining the currently selected option labels.",
|
|
40
|
+
"Heading, saved-value choice, and slotted Checkbox group stay mounted. presentation reflects on the host so view/edit is CSS visibility only; do not swap Host children or ngIf the group.",
|
|
41
|
+
"View presentation hides the slotted Checkbox group with ::slotted host CSS and shows the saved selected values plus optional consequence copy. Omit description on the row and on each Checkbox when there is no supporting copy; view then shows only the selected-value labels. The group stays in the tree."
|
|
42
|
+
],
|
|
43
|
+
"responsiveBehavior": [
|
|
44
|
+
"The row never exceeds its parent width; the slotted Checkbox group keeps option copy in the flexible column and wraps descriptions when needed."
|
|
45
|
+
],
|
|
46
|
+
"references": [
|
|
47
|
+
{
|
|
48
|
+
"label": "Settings mock",
|
|
49
|
+
"path": "src/wc/components/SettingRowCheckbox/SettingRowCheckbox.stories.ts"
|
|
50
|
+
}
|
|
51
|
+
],
|
|
52
|
+
"styling": {
|
|
53
|
+
"rationale": "The row uses the shared settings-row inline inset so view and edit copy share the same 16px origin, and zeros host padding-block because the heading, choice, and checkbox options already own vertical spacing. The heading is row-owned CSS, not CheckboxGroup's form label or control section-heading recipe. Checkbox owns option geometry.",
|
|
54
|
+
"protected": [
|
|
55
|
+
{
|
|
56
|
+
"properties": [
|
|
57
|
+
"padding"
|
|
58
|
+
],
|
|
59
|
+
"reason": "Keep space-200 inline inset in view and edit, with no extra host padding-block.",
|
|
60
|
+
"props": []
|
|
61
|
+
}
|
|
62
|
+
],
|
|
63
|
+
"customProperties": []
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"api": {
|
|
67
|
+
"props": {
|
|
68
|
+
"description": {
|
|
69
|
+
"type": "string",
|
|
70
|
+
"resolvedType": "string | undefined",
|
|
71
|
+
"attribute": "description",
|
|
72
|
+
"required": false,
|
|
73
|
+
"mutable": false,
|
|
74
|
+
"description": "Optional consequence or supporting copy for the saved selection."
|
|
75
|
+
},
|
|
76
|
+
"label": {
|
|
77
|
+
"type": "string",
|
|
78
|
+
"resolvedType": "string | undefined",
|
|
79
|
+
"attribute": "label",
|
|
80
|
+
"required": false,
|
|
81
|
+
"mutable": false,
|
|
82
|
+
"description": "Settings heading shown in both presentations. Not CheckboxGroup's form label."
|
|
83
|
+
},
|
|
84
|
+
"presentation": {
|
|
85
|
+
"type": "SettingRowCheckboxPresentation",
|
|
86
|
+
"resolvedType": "\"edit\" | \"view\"",
|
|
87
|
+
"attribute": "presentation",
|
|
88
|
+
"default": "'edit'",
|
|
89
|
+
"required": false,
|
|
90
|
+
"mutable": false,
|
|
91
|
+
"description": "Interactive Checkbox group or non-interactive saved-value readout."
|
|
92
|
+
},
|
|
93
|
+
"valueLabel": {
|
|
94
|
+
"type": "string",
|
|
95
|
+
"resolvedType": "string | undefined",
|
|
96
|
+
"attribute": "value-label",
|
|
97
|
+
"required": false,
|
|
98
|
+
"mutable": false,
|
|
99
|
+
"description": "Saved selected-value labels shown in view presentation."
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
"events": [],
|
|
103
|
+
"methods": [],
|
|
104
|
+
"slots": []
|
|
105
|
+
},
|
|
106
|
+
"props": {
|
|
107
|
+
"description": {
|
|
108
|
+
"type": "string",
|
|
109
|
+
"resolvedType": "string | undefined",
|
|
110
|
+
"attribute": "description",
|
|
111
|
+
"required": false,
|
|
112
|
+
"mutable": false,
|
|
113
|
+
"description": "Optional consequence or supporting copy for the saved selection."
|
|
114
|
+
},
|
|
115
|
+
"label": {
|
|
116
|
+
"type": "string",
|
|
117
|
+
"resolvedType": "string | undefined",
|
|
118
|
+
"attribute": "label",
|
|
119
|
+
"required": false,
|
|
120
|
+
"mutable": false,
|
|
121
|
+
"description": "Settings heading shown in both presentations. Not CheckboxGroup's form label."
|
|
122
|
+
},
|
|
123
|
+
"presentation": {
|
|
124
|
+
"type": "SettingRowCheckboxPresentation",
|
|
125
|
+
"resolvedType": "\"edit\" | \"view\"",
|
|
126
|
+
"attribute": "presentation",
|
|
127
|
+
"default": "'edit'",
|
|
128
|
+
"required": false,
|
|
129
|
+
"mutable": false,
|
|
130
|
+
"description": "Interactive Checkbox group or non-interactive saved-value readout."
|
|
131
|
+
},
|
|
132
|
+
"valueLabel": {
|
|
133
|
+
"type": "string",
|
|
134
|
+
"resolvedType": "string | undefined",
|
|
135
|
+
"attribute": "value-label",
|
|
136
|
+
"required": false,
|
|
137
|
+
"mutable": false,
|
|
138
|
+
"description": "Saved selected-value labels shown in view presentation."
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
"events": [],
|
|
142
|
+
"methods": [],
|
|
143
|
+
"slots": [],
|
|
144
|
+
"exports": {
|
|
145
|
+
"customElement": "ds-setting-row-checkbox",
|
|
146
|
+
"react": "DsSettingRowCheckbox",
|
|
147
|
+
"vue": "DsSettingRowCheckbox",
|
|
148
|
+
"angular": "DsSettingRowCheckbox"
|
|
149
|
+
},
|
|
150
|
+
"consumption": {
|
|
151
|
+
"install": "npm install @ds-mo/ui @ds-mo/tokens @ds-mo/icons",
|
|
152
|
+
"cssSetup": "import '@ds-mo/tokens';\nimport '@ds-mo/tokens/reset';\nimport '@ds-mo/tokens/globals';",
|
|
153
|
+
"customElements": {
|
|
154
|
+
"import": "import '@ds-mo/ui/dist/components/ds-setting-row-checkbox.js';",
|
|
155
|
+
"example": "<ds-setting-row-checkbox></ds-setting-row-checkbox>"
|
|
156
|
+
},
|
|
157
|
+
"react": {
|
|
158
|
+
"import": "import { DsSettingRowCheckbox } from '@ds-mo/ui/react';",
|
|
159
|
+
"example": "<DsSettingRowCheckbox />"
|
|
160
|
+
},
|
|
161
|
+
"vue": {
|
|
162
|
+
"import": "import { DsSettingRowCheckbox } from '@ds-mo/ui/vue';",
|
|
163
|
+
"example": "<DsSettingRowCheckbox />"
|
|
164
|
+
},
|
|
165
|
+
"angular": {
|
|
166
|
+
"import": "import { DsSettingRowCheckbox } from '@ds-mo/ui/angular/ds-setting-row-checkbox';",
|
|
167
|
+
"example": "<ds-setting-row-checkbox></ds-setting-row-checkbox>"
|
|
168
|
+
},
|
|
169
|
+
"peerDependencies": {
|
|
170
|
+
"required": [
|
|
171
|
+
"@ds-mo/tokens ^6.6.1",
|
|
172
|
+
"@ds-mo/icons ^8.1.1"
|
|
173
|
+
],
|
|
174
|
+
"frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
},
|
|
178
|
+
"dependencies": [
|
|
179
|
+
"@ds-mo/ui",
|
|
180
|
+
"@ds-mo/tokens"
|
|
181
|
+
],
|
|
182
|
+
"registryDependencies": [
|
|
183
|
+
"text"
|
|
184
|
+
],
|
|
185
|
+
"files": [
|
|
186
|
+
{
|
|
187
|
+
"path": "src/wc/components/SettingRowCheckbox/SettingRowCheckbox.css",
|
|
188
|
+
"content": "@import '../../utils/settings-row.css';\n\n:host {\n display: flex;\n flex-direction: column;\n min-width: 0;\n gap: var(--dimension-space-050);\n overflow-wrap: anywhere;\n /* Heading, choice, and checkbox options already own block padding. */\n padding-block: 0;\n}\n\n/* Light-DOM slotted groups do not receive this component's scoped child class.\n Target them with ::slotted so view/edit visibility actually applies. */\n:host ::slotted(ds-checkbox-group) {\n min-width: 0;\n width: 100%;\n}\n\n:host([presentation='view']) ::slotted(ds-checkbox-group) {\n display: none !important;\n}\n\n:host([presentation='edit']) .setting-row-checkbox__choice {\n display: none;\n}\n\nds-text.setting-row-checkbox__heading {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n height: var(--dimension-size-400);\n min-width: 0;\n padding: 0;\n}\n\n.setting-row-checkbox__choice {\n display: grid;\n gap: var(--dimension-space-025);\n min-width: 0;\n padding-block: var(--dimension-space-075);\n}\n",
|
|
189
|
+
"type": "registry:ui"
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"path": "src/wc/components/SettingRowCheckbox/SettingRowCheckbox.tsx",
|
|
193
|
+
"content": "import { Component, Element, h, Host, Prop } from '@stencil/core';\nimport { CONTROL_SUPPORTING_TEXT_VARIANT, CONTROL_TEXT_VARIANT } from '../../utils';\n\nexport type SettingRowCheckboxPresentation = 'edit' | 'view';\n\ntype SettingsCheckboxGroup = HTMLElement & {\n label: string;\n ariaLabel: string | null;\n ariaLabelledby?: string;\n};\n\nlet settingRowCheckboxHeadingId = 0;\n\n/** Padded settings-row composition for a Checkbox group. */\n@Component({\n tag: 'ds-setting-row-checkbox',\n styleUrl: 'SettingRowCheckbox.css',\n scoped: true,\n})\nexport class SettingRowCheckbox {\n @Element() el!: HTMLElement;\n\n /** Interactive Checkbox group or non-interactive saved-value readout. */\n @Prop({ reflect: true }) presentation: SettingRowCheckboxPresentation = 'edit';\n /** Settings heading shown in both presentations. Not CheckboxGroup's form label. */\n @Prop() label?: string;\n /** Saved selected-value labels shown in view presentation. */\n @Prop() valueLabel?: string;\n /** Optional consequence or supporting copy for the saved selection. */\n @Prop() description?: string;\n\n private readonly headingId = `ds-setting-row-checkbox-heading-${++settingRowCheckboxHeadingId}`;\n\n componentWillLoad() {\n this.syncSlottedCheckboxGroup();\n }\n\n componentDidLoad() {\n this.syncSlottedCheckboxGroup();\n }\n\n private syncSlottedCheckboxGroup = () => {\n for (const group of this.el.querySelectorAll<SettingsCheckboxGroup>('ds-checkbox-group')) {\n group.label = '';\n if (this.label) {\n group.ariaLabelledby = this.headingId;\n group.ariaLabel = null;\n }\n }\n };\n\n render() {\n return (\n <Host>\n <ds-text\n key=\"setting-row-checkbox-heading\"\n class=\"setting-row-checkbox__heading\"\n as=\"span\"\n variant={CONTROL_TEXT_VARIANT.md}\n emphasis\n textId={this.label ? this.headingId : undefined}\n >\n {this.label}\n </ds-text>\n <div key=\"setting-row-checkbox-choice\" class=\"setting-row-checkbox__choice\">\n {this.valueLabel ? (\n <ds-text key=\"setting-row-checkbox-value\" as=\"span\" variant={CONTROL_TEXT_VARIANT.md}>\n {this.valueLabel}\n </ds-text>\n ) : null}\n {this.description?.trim() ? (\n <ds-text\n key=\"setting-row-checkbox-description\"\n as=\"span\"\n variant={CONTROL_SUPPORTING_TEXT_VARIANT.md}\n color=\"secondary\"\n >\n {this.description}\n </ds-text>\n ) : null}\n </div>\n <slot onSlotchange={this.syncSlottedCheckboxGroup} />\n </Host>\n );\n }\n}\n",
|
|
194
|
+
"type": "registry:ui"
|
|
195
|
+
}
|
|
196
|
+
]
|
|
197
|
+
}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
+
"name": "setting-row-radio",
|
|
4
|
+
"title": "SettingRowRadio",
|
|
5
|
+
"description": "Padded settings-row composition for an editable Radio group and its non-interactive saved-value readout.",
|
|
6
|
+
"type": "registry:ui",
|
|
7
|
+
"meta": {
|
|
8
|
+
"library": "@ds-mo/ui",
|
|
9
|
+
"distribution": "npm",
|
|
10
|
+
"storybook": "https://zainadeel.github.io/compomo/?path=/story/setting-row-radio",
|
|
11
|
+
"source": "src/wc/components/SettingRowRadio/SettingRowRadio.tsx",
|
|
12
|
+
"intentStatus": "complete",
|
|
13
|
+
"intent": {
|
|
14
|
+
"audience": "general",
|
|
15
|
+
"status": "experimental",
|
|
16
|
+
"summary": "Padded settings-row composition for an editable Radio group and its non-interactive saved-value readout.",
|
|
17
|
+
"useWhen": [
|
|
18
|
+
"A settings card needs a mutually exclusive Radio group as one padded row item.",
|
|
19
|
+
"The same settings card needs to display the saved option without an interactive control in view mode."
|
|
20
|
+
],
|
|
21
|
+
"avoidWhen": [
|
|
22
|
+
"The Radio group is not part of a settings-row surface; compose ds-radio directly.",
|
|
23
|
+
"The setting allows more than one option to be selected; use component:ds-setting-row-checkbox.",
|
|
24
|
+
"The setting is a single immediate on/off choice; use component:ds-setting-row-toggle."
|
|
25
|
+
],
|
|
26
|
+
"commonlyComposedWith": [
|
|
27
|
+
"component:ds-card-setting",
|
|
28
|
+
"component:ds-radio"
|
|
29
|
+
],
|
|
30
|
+
"accessibility": [
|
|
31
|
+
"Pass the settings heading as the row label. Do not pass Radio groupLabel; the row owns the visible heading and points the slotted radiogroup at it with aria-labelledby.",
|
|
32
|
+
"Keep the Radio group's options, value, required state, and selection event owned by the application. Leave the Radio slotted in view and edit; the row hides it in view.",
|
|
33
|
+
"Do not add a second interaction layer to the row; Radio owns option focus and keyboard selection while settings usage keeps hasInteractionFill false.",
|
|
34
|
+
"View presentation exposes readable label, saved value, and optional supporting copy without radio semantics, a radio toggle, or a focus target."
|
|
35
|
+
],
|
|
36
|
+
"states": [
|
|
37
|
+
"The row is a neutral padded composition; selected, focus, and inactive states belong to the slotted Radio without a choice-list hover or pressed wash.",
|
|
38
|
+
"The owning application handles dsChange and updates the slotted Radio value.",
|
|
39
|
+
"Heading, saved-value choice, and slotted Radio stay mounted. presentation reflects on the host so view/edit is CSS visibility only; do not swap Host children or ngIf the Radio.",
|
|
40
|
+
"View presentation hides the slotted Radio with ::slotted host CSS and shows the saved option label plus optional consequence copy. The Radio stays in the tree."
|
|
41
|
+
],
|
|
42
|
+
"responsiveBehavior": [
|
|
43
|
+
"The row never exceeds its parent width; the slotted Radio keeps its option copy in the flexible column and wraps descriptions when needed."
|
|
44
|
+
],
|
|
45
|
+
"references": [
|
|
46
|
+
{
|
|
47
|
+
"label": "Settings mock",
|
|
48
|
+
"path": "src/wc/components/SettingRowRadio/SettingRowRadio.stories.ts"
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
"styling": {
|
|
52
|
+
"rationale": "The row uses the shared settings-row inline inset so view and edit copy share the same 16px origin, and zeros host padding-block because the heading, choice, and radio options already own vertical spacing. The heading is row-owned CSS, not Radio's form group-label or control section-heading recipe. Radio owns option geometry.",
|
|
53
|
+
"protected": [
|
|
54
|
+
{
|
|
55
|
+
"properties": [
|
|
56
|
+
"padding"
|
|
57
|
+
],
|
|
58
|
+
"reason": "Keep space-200 inline inset in view and edit, with no extra host padding-block.",
|
|
59
|
+
"props": []
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
"customProperties": []
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"api": {
|
|
66
|
+
"props": {
|
|
67
|
+
"description": {
|
|
68
|
+
"type": "string",
|
|
69
|
+
"resolvedType": "string | undefined",
|
|
70
|
+
"attribute": "description",
|
|
71
|
+
"required": false,
|
|
72
|
+
"mutable": false,
|
|
73
|
+
"description": "Optional consequence or supporting copy for the saved option."
|
|
74
|
+
},
|
|
75
|
+
"label": {
|
|
76
|
+
"type": "string",
|
|
77
|
+
"resolvedType": "string | undefined",
|
|
78
|
+
"attribute": "label",
|
|
79
|
+
"required": false,
|
|
80
|
+
"mutable": false,
|
|
81
|
+
"description": "Settings heading shown in both presentations. Not Radio's form groupLabel."
|
|
82
|
+
},
|
|
83
|
+
"presentation": {
|
|
84
|
+
"type": "SettingRowRadioPresentation",
|
|
85
|
+
"resolvedType": "\"edit\" | \"view\"",
|
|
86
|
+
"attribute": "presentation",
|
|
87
|
+
"default": "'edit'",
|
|
88
|
+
"required": false,
|
|
89
|
+
"mutable": false,
|
|
90
|
+
"description": "Interactive Radio group or non-interactive saved-value readout."
|
|
91
|
+
},
|
|
92
|
+
"valueLabel": {
|
|
93
|
+
"type": "string",
|
|
94
|
+
"resolvedType": "string | undefined",
|
|
95
|
+
"attribute": "value-label",
|
|
96
|
+
"required": false,
|
|
97
|
+
"mutable": false,
|
|
98
|
+
"description": "Saved option label shown in view presentation."
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"events": [],
|
|
102
|
+
"methods": [],
|
|
103
|
+
"slots": []
|
|
104
|
+
},
|
|
105
|
+
"props": {
|
|
106
|
+
"description": {
|
|
107
|
+
"type": "string",
|
|
108
|
+
"resolvedType": "string | undefined",
|
|
109
|
+
"attribute": "description",
|
|
110
|
+
"required": false,
|
|
111
|
+
"mutable": false,
|
|
112
|
+
"description": "Optional consequence or supporting copy for the saved option."
|
|
113
|
+
},
|
|
114
|
+
"label": {
|
|
115
|
+
"type": "string",
|
|
116
|
+
"resolvedType": "string | undefined",
|
|
117
|
+
"attribute": "label",
|
|
118
|
+
"required": false,
|
|
119
|
+
"mutable": false,
|
|
120
|
+
"description": "Settings heading shown in both presentations. Not Radio's form groupLabel."
|
|
121
|
+
},
|
|
122
|
+
"presentation": {
|
|
123
|
+
"type": "SettingRowRadioPresentation",
|
|
124
|
+
"resolvedType": "\"edit\" | \"view\"",
|
|
125
|
+
"attribute": "presentation",
|
|
126
|
+
"default": "'edit'",
|
|
127
|
+
"required": false,
|
|
128
|
+
"mutable": false,
|
|
129
|
+
"description": "Interactive Radio group or non-interactive saved-value readout."
|
|
130
|
+
},
|
|
131
|
+
"valueLabel": {
|
|
132
|
+
"type": "string",
|
|
133
|
+
"resolvedType": "string | undefined",
|
|
134
|
+
"attribute": "value-label",
|
|
135
|
+
"required": false,
|
|
136
|
+
"mutable": false,
|
|
137
|
+
"description": "Saved option label shown in view presentation."
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
"events": [],
|
|
141
|
+
"methods": [],
|
|
142
|
+
"slots": [],
|
|
143
|
+
"exports": {
|
|
144
|
+
"customElement": "ds-setting-row-radio",
|
|
145
|
+
"react": "DsSettingRowRadio",
|
|
146
|
+
"vue": "DsSettingRowRadio",
|
|
147
|
+
"angular": "DsSettingRowRadio"
|
|
148
|
+
},
|
|
149
|
+
"consumption": {
|
|
150
|
+
"install": "npm install @ds-mo/ui @ds-mo/tokens @ds-mo/icons",
|
|
151
|
+
"cssSetup": "import '@ds-mo/tokens';\nimport '@ds-mo/tokens/reset';\nimport '@ds-mo/tokens/globals';",
|
|
152
|
+
"customElements": {
|
|
153
|
+
"import": "import '@ds-mo/ui/dist/components/ds-setting-row-radio.js';",
|
|
154
|
+
"example": "<ds-setting-row-radio></ds-setting-row-radio>"
|
|
155
|
+
},
|
|
156
|
+
"react": {
|
|
157
|
+
"import": "import { DsSettingRowRadio } from '@ds-mo/ui/react';",
|
|
158
|
+
"example": "<DsSettingRowRadio />"
|
|
159
|
+
},
|
|
160
|
+
"vue": {
|
|
161
|
+
"import": "import { DsSettingRowRadio } from '@ds-mo/ui/vue';",
|
|
162
|
+
"example": "<DsSettingRowRadio />"
|
|
163
|
+
},
|
|
164
|
+
"angular": {
|
|
165
|
+
"import": "import { DsSettingRowRadio } from '@ds-mo/ui/angular/ds-setting-row-radio';",
|
|
166
|
+
"example": "<ds-setting-row-radio></ds-setting-row-radio>"
|
|
167
|
+
},
|
|
168
|
+
"peerDependencies": {
|
|
169
|
+
"required": [
|
|
170
|
+
"@ds-mo/tokens ^6.6.1",
|
|
171
|
+
"@ds-mo/icons ^8.1.1"
|
|
172
|
+
],
|
|
173
|
+
"frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
"dependencies": [
|
|
178
|
+
"@ds-mo/ui",
|
|
179
|
+
"@ds-mo/tokens"
|
|
180
|
+
],
|
|
181
|
+
"registryDependencies": [
|
|
182
|
+
"text"
|
|
183
|
+
],
|
|
184
|
+
"files": [
|
|
185
|
+
{
|
|
186
|
+
"path": "src/wc/components/SettingRowRadio/SettingRowRadio.css",
|
|
187
|
+
"content": "@import '../../utils/settings-row.css';\n\n:host {\n display: flex;\n flex-direction: column;\n min-width: 0;\n gap: var(--dimension-space-050);\n overflow-wrap: anywhere;\n /* Heading, choice, and radio options already own block padding. */\n padding-block: 0;\n}\n\n/* Light-DOM slotted radios do not receive this component's scoped child class.\n Target them with ::slotted so view/edit visibility actually applies. */\n:host ::slotted(ds-radio) {\n min-width: 0;\n width: 100%;\n}\n\n:host([presentation='view']) ::slotted(ds-radio) {\n display: none !important;\n}\n\n:host([presentation='edit']) .setting-row-radio__choice {\n display: none;\n}\n\nds-text.setting-row-radio__heading {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n height: var(--dimension-size-400);\n min-width: 0;\n padding: 0;\n}\n\n.setting-row-radio__choice {\n display: grid;\n gap: var(--dimension-space-025);\n min-width: 0;\n padding-block: var(--dimension-space-075);\n}\n",
|
|
188
|
+
"type": "registry:ui"
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"path": "src/wc/components/SettingRowRadio/SettingRowRadio.tsx",
|
|
192
|
+
"content": "import { Component, Element, h, Host, Prop } from '@stencil/core';\nimport { CONTROL_SUPPORTING_TEXT_VARIANT, CONTROL_TEXT_VARIANT } from '../../utils';\n\nexport type SettingRowRadioPresentation = 'edit' | 'view';\n\ntype SettingsRadio = HTMLElement & {\n groupLabel: string;\n ariaLabel: string | null;\n ariaLabelledby?: string;\n};\n\nlet settingRowRadioHeadingId = 0;\n\n/** Padded settings-row composition for a Radio group. */\n@Component({\n tag: 'ds-setting-row-radio',\n styleUrl: 'SettingRowRadio.css',\n scoped: true,\n})\nexport class SettingRowRadio {\n @Element() el!: HTMLElement;\n\n /** Interactive Radio group or non-interactive saved-value readout. */\n @Prop({ reflect: true }) presentation: SettingRowRadioPresentation = 'edit';\n /** Settings heading shown in both presentations. Not Radio's form groupLabel. */\n @Prop() label?: string;\n /** Saved option label shown in view presentation. */\n @Prop() valueLabel?: string;\n /** Optional consequence or supporting copy for the saved option. */\n @Prop() description?: string;\n\n private readonly headingId = `ds-setting-row-radio-heading-${++settingRowRadioHeadingId}`;\n\n componentWillLoad() {\n this.syncSlottedRadio();\n }\n\n componentDidLoad() {\n this.syncSlottedRadio();\n }\n\n private syncSlottedRadio = () => {\n for (const radio of this.el.querySelectorAll<SettingsRadio>('ds-radio')) {\n radio.groupLabel = '';\n if (this.label) {\n radio.ariaLabelledby = this.headingId;\n radio.ariaLabel = null;\n }\n }\n };\n\n render() {\n return (\n <Host>\n <ds-text\n key=\"setting-row-radio-heading\"\n class=\"setting-row-radio__heading\"\n as=\"span\"\n variant={CONTROL_TEXT_VARIANT.md}\n emphasis\n textId={this.label ? this.headingId : undefined}\n >\n {this.label}\n </ds-text>\n <div key=\"setting-row-radio-choice\" class=\"setting-row-radio__choice\">\n {this.valueLabel ? (\n <ds-text key=\"setting-row-radio-value\" as=\"span\" variant={CONTROL_TEXT_VARIANT.md}>\n {this.valueLabel}\n </ds-text>\n ) : null}\n {this.description ? (\n <ds-text\n key=\"setting-row-radio-description\"\n as=\"span\"\n variant={CONTROL_SUPPORTING_TEXT_VARIANT.md}\n color=\"secondary\"\n >\n {this.description}\n </ds-text>\n ) : null}\n </div>\n <slot onSlotchange={this.syncSlottedRadio} />\n </Host>\n );\n }\n}\n",
|
|
193
|
+
"type": "registry:ui"
|
|
194
|
+
}
|
|
195
|
+
]
|
|
196
|
+
}
|