@ds-mo/ui 15.1.1 → 15.3.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 +4 -4
- package/dist/agent.json +711 -48
- package/dist/angular/ds-card-setting.d.ts +1 -1
- package/dist/angular/ds-card-setting.js +3 -3
- 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-cluster-marker.d.ts +18 -0
- package/dist/angular/ds-map-cluster-marker.js +43 -0
- package/dist/angular/ds-map-entity-marker.d.ts +18 -0
- package/dist/angular/ds-map-entity-marker.js +43 -0
- package/dist/angular/ds-radio-tile.d.ts +15 -0
- package/dist/angular/ds-radio-tile.js +43 -0
- package/dist/angular/ds-setting-row.d.ts +18 -0
- package/dist/angular/ds-setting-row.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 +4 -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 +4 -0
- package/dist/angular/proxies.js +4 -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-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-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-chart.js +1 -1
- package/dist/components/ds-card-navigation.js +1 -1
- package/dist/components/ds-card-overview.js +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-chart-legend.js +1 -1
- package/dist/components/ds-chart.js +1 -1
- 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-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-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-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.d.ts +11 -0
- package/dist/components/ds-map-cluster-marker.js +2 -0
- package/dist/components/ds-map-cluster-marker.js.map +1 -0
- package/dist/components/ds-map-entity-marker.d.ts +11 -0
- package/dist/components/ds-map-entity-marker.js +2 -0
- package/dist/components/ds-map-entity-marker.js.map +1 -0
- 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-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-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.d.ts +11 -0
- package/dist/components/ds-setting-row.js +2 -0
- package/dist/components/ds-setting-row.js.map +1 -0
- package/dist/components/ds-shell-app.js +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-etifxiDc.js → p-3bsypMrY.js} +2 -2
- package/dist/components/{p-Bm7rqs3C.js → p-AM_ht6Im.js} +2 -2
- package/dist/components/{p-Bm7rqs3C.js.map → p-AM_ht6Im.js.map} +1 -1
- package/dist/components/{p-Bn8I7iw6.js → p-AmT4GlhM.js} +2 -2
- package/dist/components/{p-FIBCluwV.js → p-B-HOVYoH.js} +2 -2
- package/dist/components/{p-CmexIVnE.js → p-B7QEpaMe.js} +2 -2
- package/dist/components/{p-CUcUHwI3.js → p-B7bXN-vf.js} +2 -2
- package/dist/components/p-BHI4LcGK.js +2 -0
- package/dist/components/p-BHI4LcGK.js.map +1 -0
- package/dist/components/{p-BhJXmuRA.js → p-BSuMDPaV.js} +2 -2
- package/dist/components/{p-0FYD2bev.js → p-BU1B6NW8.js} +2 -2
- package/dist/components/{p-Do2FJd1y.js → p-BVwg5XVz.js} +2 -2
- package/dist/components/{p-CYzFfFcH.js → p-BXSHN1OK.js} +2 -2
- package/dist/components/{p-ljbw3UMZ.js → p-BYJtvRQm.js} +2 -2
- package/dist/components/{p-CzIpquvw.js → p-Bh1Fx0aW.js} +2 -2
- package/dist/components/{p-CiJ1WR11.js → p-Bm3KWMe4.js} +2 -2
- package/dist/components/{p-DVINzOoK.js → p-Bo7GxFBh.js} +2 -2
- package/dist/components/{p-8yBdCXCn.js → p-BsM37Prt.js} +2 -2
- package/dist/components/p-Bu4OmhKK.js +2 -0
- package/dist/components/{p-CdGXzRP8.js.map → p-Bu4OmhKK.js.map} +1 -1
- package/dist/components/{p-DpoTwJAR.js → p-BugKaVWc.js} +2 -2
- package/dist/components/p-C-c8SJ00.js +2 -0
- package/dist/components/p-C-c8SJ00.js.map +1 -0
- package/dist/components/{p-Bpd6YCo4.js → p-C3-dcROG.js} +2 -2
- package/dist/components/p-C4VeD49U.js +2 -0
- package/dist/components/{p-BKZdqJQB.js.map → p-C4VeD49U.js.map} +1 -1
- package/dist/components/{p-CNxvnQ6A.js → p-CCpJT31M.js} +2 -2
- package/dist/components/p-CCpJT31M.js.map +1 -0
- package/dist/components/{p-Dzndkdx5.js → p-CI7c9kp-.js} +2 -2
- package/dist/components/{p-CdgOLWX9.js → p-CJD0kLeV.js} +2 -2
- package/dist/components/{p-BeNa6tw5.js → p-C_gJD8l3.js} +2 -2
- package/dist/components/{p-DwbcNDJF.js → p-Cihjy4WY.js} +2 -2
- package/dist/components/{p-BgQMEHRa.js → p-Co5MiPNa.js} +2 -2
- package/dist/components/{p-CD4DZPy_.js → p-CrL9wxZg.js} +2 -2
- 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-Cqc2U1ZQ.js → p-CzQ_JF6A.js} +2 -2
- package/dist/components/{p-BciTtTwx.js → p-CztB8Pbq.js} +2 -2
- package/dist/components/{p-BciTtTwx.js.map → p-CztB8Pbq.js.map} +1 -1
- package/dist/components/{p-ZhP2tVmM.js → p-D0KD-Nr_.js} +2 -2
- package/dist/components/{p-DOAybCp0.js → p-DCLRAH5i.js} +2 -2
- package/dist/components/{p-Dn9QHL4O.js → p-DFkw6wrS.js} +2 -2
- package/dist/components/{p-D1vQGJzc.js → p-DHapI2sf.js} +2 -2
- package/dist/components/p-DQPzqcYR.js +2 -0
- package/dist/components/p-DQPzqcYR.js.map +1 -0
- package/dist/components/{p-DHICPS4n.js → p-DWmYCOKz.js} +2 -2
- package/dist/components/p-DX2RyZba.js +2 -0
- package/dist/components/{p-C-3YqeTb.js.map → p-DX2RyZba.js.map} +1 -1
- package/dist/components/{p-vfCu7XSc.js → p-DZ58Sg5a.js} +2 -2
- package/dist/components/{p-D0y7Sja6.js → p-Dcn1eDVt.js} +2 -2
- package/dist/components/{p-E5W27Fu_.js → p-DcrdyDRw.js} +2 -2
- package/dist/components/p-DhKvqh5G.js +2 -0
- package/dist/components/p-DhKvqh5G.js.map +1 -0
- package/dist/components/p-Fkkd3gMB.js +2 -0
- package/dist/components/{p-DEW7r0U9.js.map → p-Fkkd3gMB.js.map} +1 -1
- package/dist/components/{p-xdmJCPCg.js → p-Gb-vTuXr.js} +2 -2
- package/dist/components/p-TVkFIMXz.js +2 -0
- package/dist/components/p-TVkFIMXz.js.map +1 -0
- package/dist/components/p-cuZva5tl.js +2 -0
- package/dist/components/{p-Dw9sE6Iw.js.map → p-cuZva5tl.js.map} +1 -1
- package/dist/components/p-fYZK3zqM.js +2 -0
- package/dist/components/{p-C6xVxqOn.js.map → p-fYZK3zqM.js.map} +1 -1
- package/dist/components/{p-CiH4GG6r.js → p-iGNHXFZA.js} +2 -2
- package/dist/components/{p-5URekSny.js → p-lADW-TI8.js} +2 -2
- package/dist/components/{p-D922f6Tb.js → p-p_MwknM3.js} +2 -2
- package/dist/components/{p-Dfs98tpL.js → p-tJaC01aE.js} +2 -2
- package/dist/components/{p-B_jdoM7e.js → p-z8L-YMi3.js} +2 -2
- package/dist/docs/components.json +1909 -44
- package/dist/framework/angular.d.ts +1 -0
- package/dist/framework/angular.js +1 -0
- 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 +2 -2
- 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 +2 -2
- package/dist/mcp-data/registry/bar-page-title.json +2 -2
- 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 +2 -2
- 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 +36 -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.json +2 -2
- 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/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 +263 -0
- package/dist/mcp-data/registry/map-entity-marker.json +321 -0
- 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 +2 -2
- package/dist/mcp-data/registry/message-composer.json +2 -2
- package/dist/mcp-data/registry/message-scroller.json +2 -2
- package/dist/mcp-data/registry/message.json +2 -2
- 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 +2 -2
- package/dist/mcp-data/registry/panel-sub-nav.json +2 -2
- package/dist/mcp-data/registry/panel-tool-header.json +2 -2
- package/dist/mcp-data/registry/panel-tool-search.json +2 -2
- package/dist/mcp-data/registry/panel-tools.json +2 -2
- package/dist/mcp-data/registry/paper-texture.json +2 -2
- package/dist/mcp-data/registry/radio-tile.json +398 -0
- package/dist/mcp-data/registry/radio.json +2 -2
- package/dist/mcp-data/registry/registry.json +724 -49
- 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.json +213 -0
- package/dist/mcp-data/registry/shell-app.json +3 -3
- package/dist/mcp-data/registry/shell-page.json +5 -5
- 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 +2 -2
- 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 +4 -0
- package/dist/react/components.js +4 -0
- package/dist/react/ds-input.d.ts +2 -0
- package/dist/react/ds-input.js +2 -0
- package/dist/react/ds-map-cluster-marker.d.ts +12 -0
- package/dist/react/ds-map-cluster-marker.js +12 -0
- package/dist/react/ds-map-entity-marker.d.ts +12 -0
- package/dist/react/ds-map-entity-marker.js +12 -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.d.ts +12 -0
- package/dist/react/ds-setting-row.js +12 -0
- package/dist/types/components/CardSetting/CardSetting.d.ts +5 -3
- package/dist/types/components/CardSetting/index.d.ts +1 -1
- package/dist/types/components/EmptyState/EmptyState.d.ts +3 -0
- package/dist/types/components/Field/Field.d.ts +4 -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/MapClusterMarker/MapClusterMarker.d.ts +19 -0
- package/dist/types/components/MapEntityMarker/MapEntityMarker.d.ts +26 -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/SettingRow/SettingRow.d.ts +18 -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/Textarea/Textarea.d.ts +12 -0
- package/dist/types/components/TimePicker/TimePicker.d.ts +4 -0
- package/dist/types/components.d.ts +627 -11
- package/dist/types/utils/text-constraints.d.ts +20 -0
- package/dist/vue/components.d.ts +4 -0
- package/dist/vue/components.js +4 -0
- package/dist/vue/ds-card-setting.js +1 -0
- package/dist/vue/ds-input-time.js +1 -0
- package/dist/vue/ds-input.js +17 -0
- package/dist/vue/ds-map-cluster-marker.d.ts +3 -0
- package/dist/vue/ds-map-cluster-marker.js +14 -0
- package/dist/vue/ds-map-entity-marker.d.ts +3 -0
- package/dist/vue/ds-map-entity-marker.js +17 -0
- package/dist/vue/ds-radio-tile.d.ts +3 -0
- package/dist/vue/ds-radio-tile.js +24 -0
- package/dist/vue/ds-setting-row.d.ts +3 -0
- package/dist/vue/ds-setting-row.js +14 -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-0qY_HDId.js +0 -2
- package/dist/components/p-0qY_HDId.js.map +0 -1
- package/dist/components/p-BKZdqJQB.js +0 -2
- package/dist/components/p-C-3YqeTb.js +0 -2
- package/dist/components/p-C6xVxqOn.js +0 -2
- package/dist/components/p-CNxvnQ6A.js.map +0 -1
- package/dist/components/p-CdGXzRP8.js +0 -2
- package/dist/components/p-DEW7r0U9.js +0 -2
- package/dist/components/p-DVOjjuXc.js +0 -2
- package/dist/components/p-DVOjjuXc.js.map +0 -1
- package/dist/components/p-Di5FH7eh.js +0 -2
- package/dist/components/p-Di5FH7eh.js.map +0 -1
- package/dist/components/p-Dw9sE6Iw.js +0 -2
- package/dist/components/p-etg-Uk1u.js +0 -2
- package/dist/components/p-xtGGIZmU.js +0 -2
- package/dist/components/p-xtGGIZmU.js.map +0 -1
- /package/dist/components/{p-etifxiDc.js.map → p-3bsypMrY.js.map} +0 -0
- /package/dist/components/{p-Bn8I7iw6.js.map → p-AmT4GlhM.js.map} +0 -0
- /package/dist/components/{p-FIBCluwV.js.map → p-B-HOVYoH.js.map} +0 -0
- /package/dist/components/{p-CmexIVnE.js.map → p-B7QEpaMe.js.map} +0 -0
- /package/dist/components/{p-CUcUHwI3.js.map → p-B7bXN-vf.js.map} +0 -0
- /package/dist/components/{p-BhJXmuRA.js.map → p-BSuMDPaV.js.map} +0 -0
- /package/dist/components/{p-0FYD2bev.js.map → p-BU1B6NW8.js.map} +0 -0
- /package/dist/components/{p-Do2FJd1y.js.map → p-BVwg5XVz.js.map} +0 -0
- /package/dist/components/{p-CYzFfFcH.js.map → p-BXSHN1OK.js.map} +0 -0
- /package/dist/components/{p-ljbw3UMZ.js.map → p-BYJtvRQm.js.map} +0 -0
- /package/dist/components/{p-CzIpquvw.js.map → p-Bh1Fx0aW.js.map} +0 -0
- /package/dist/components/{p-CiJ1WR11.js.map → p-Bm3KWMe4.js.map} +0 -0
- /package/dist/components/{p-DVINzOoK.js.map → p-Bo7GxFBh.js.map} +0 -0
- /package/dist/components/{p-8yBdCXCn.js.map → p-BsM37Prt.js.map} +0 -0
- /package/dist/components/{p-DpoTwJAR.js.map → p-BugKaVWc.js.map} +0 -0
- /package/dist/components/{p-Bpd6YCo4.js.map → p-C3-dcROG.js.map} +0 -0
- /package/dist/components/{p-Dzndkdx5.js.map → p-CI7c9kp-.js.map} +0 -0
- /package/dist/components/{p-CdgOLWX9.js.map → p-CJD0kLeV.js.map} +0 -0
- /package/dist/components/{p-BeNa6tw5.js.map → p-C_gJD8l3.js.map} +0 -0
- /package/dist/components/{p-DwbcNDJF.js.map → p-Cihjy4WY.js.map} +0 -0
- /package/dist/components/{p-BgQMEHRa.js.map → p-Co5MiPNa.js.map} +0 -0
- /package/dist/components/{p-CD4DZPy_.js.map → p-CrL9wxZg.js.map} +0 -0
- /package/dist/components/{p-CGidq1iC.js.map → p-CuwopElg.js.map} +0 -0
- /package/dist/components/{p-Cqc2U1ZQ.js.map → p-CzQ_JF6A.js.map} +0 -0
- /package/dist/components/{p-ZhP2tVmM.js.map → p-D0KD-Nr_.js.map} +0 -0
- /package/dist/components/{p-DOAybCp0.js.map → p-DCLRAH5i.js.map} +0 -0
- /package/dist/components/{p-Dn9QHL4O.js.map → p-DFkw6wrS.js.map} +0 -0
- /package/dist/components/{p-D1vQGJzc.js.map → p-DHapI2sf.js.map} +0 -0
- /package/dist/components/{p-DHICPS4n.js.map → p-DWmYCOKz.js.map} +0 -0
- /package/dist/components/{p-vfCu7XSc.js.map → p-DZ58Sg5a.js.map} +0 -0
- /package/dist/components/{p-D0y7Sja6.js.map → p-Dcn1eDVt.js.map} +0 -0
- /package/dist/components/{p-E5W27Fu_.js.map → p-DcrdyDRw.js.map} +0 -0
- /package/dist/components/{p-xdmJCPCg.js.map → p-Gb-vTuXr.js.map} +0 -0
- /package/dist/components/{p-CiH4GG6r.js.map → p-iGNHXFZA.js.map} +0 -0
- /package/dist/components/{p-5URekSny.js.map → p-lADW-TI8.js.map} +0 -0
- /package/dist/components/{p-D922f6Tb.js.map → p-p_MwknM3.js.map} +0 -0
- /package/dist/components/{p-Dfs98tpL.js.map → p-tJaC01aE.js.map} +0 -0
- /package/dist/components/{p-B_jdoM7e.js.map → p-z8L-YMi3.js.map} +0 -0
package/dist/agent.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
3
|
"package": "@ds-mo/ui",
|
|
4
|
-
"packageVersion": "15.
|
|
4
|
+
"packageVersion": "15.3.0",
|
|
5
5
|
"kind": "components",
|
|
6
6
|
"entries": [
|
|
7
7
|
{
|
|
@@ -1644,7 +1644,7 @@
|
|
|
1644
1644
|
"Dividers in sections or actions create separate Menu groups without becoming selectable rows.",
|
|
1645
1645
|
"The overflow trigger uses its bordered treatment whenever any visible action sits beside it; overflow-only presentations keep the trigger borderless.",
|
|
1646
1646
|
"Ordered actions preserve authored order, but only the first eligible filled button, unfilled button, icon button, labeled menu button, or split button renders beside the title. Remaining commands use the shared overflow, whose rows are text-only. Menu choices and overflowed split commands become separate rows and share the same flat action event.",
|
|
1647
|
-
"expanded renders the larger heading, optional description, inset divider, and a full-width caption breadcrumb row above the title. The breadcrumb begins after
|
|
1647
|
+
"expanded renders the larger heading, optional description, inset divider, and a full-width caption breadcrumb row above the title. The breadcrumb begins after 16px top padding; the following title and right-side actions share one top alignment. Compact renders 48px chrome with the existing icon Back action; constrained uses compact chrome and moves an auto-collapse primary action into overflow.",
|
|
1648
1648
|
"The one visible ordered action collapses by default in constrained presentation. Use never for an exceptional action whose hierarchy must remain visible; explicit overflow actions never leave the shared menu.",
|
|
1649
1649
|
"showDivider=false removes the bottom divider when the surrounding page composition supplies the boundary; showCompactDivider can independently restore or remove that boundary in compact and constrained variants.",
|
|
1650
1650
|
"placement=shell-bar remains compact slotted chrome for advanced ShellApp composition. Managed panel-mode ShellApp uses BarPageTitle instead. It omits description and breadcrumb presentation and preserves applicable Back, section, primary, and overflow controls.",
|
|
@@ -3840,22 +3840,22 @@
|
|
|
3840
3840
|
"tag": "ds-card-setting",
|
|
3841
3841
|
"name": "card-setting",
|
|
3842
3842
|
"title": "CardSetting",
|
|
3843
|
-
"summary": "Persistent settings-section surface with a heading, controlled
|
|
3843
|
+
"summary": "Persistent settings-section surface with a heading, optional controlled edit chrome, and application-owned body content.",
|
|
3844
3844
|
"intentStatus": "complete",
|
|
3845
3845
|
"intent": {
|
|
3846
3846
|
"audience": "general",
|
|
3847
3847
|
"status": "stable",
|
|
3848
|
-
"summary": "Persistent settings-section surface with a heading, controlled
|
|
3848
|
+
"summary": "Persistent settings-section surface with a heading, optional controlled edit chrome, and application-owned body content.",
|
|
3849
3849
|
"useWhen": [
|
|
3850
3850
|
"A settings page needs a persistent section that switches between read-only and editable content.",
|
|
3851
3851
|
"The parent can control one active editing section and owns validation, persistence, cancellation, and body content.",
|
|
3852
|
-
"The section uses the standard Pencil, Save, and Cancel header workflow."
|
|
3852
|
+
"The section uses the standard Pencil, Save, and Cancel header workflow.",
|
|
3853
|
+
"Settings apply immediately through their own controls and share the standard section surface without edit, save, or cancel actions."
|
|
3853
3854
|
],
|
|
3854
3855
|
"avoidWhen": [
|
|
3855
3856
|
"The surface contains a chart, legend, metric visualization, or other data-visualization composition.",
|
|
3856
3857
|
"The content is a general-purpose read-only card with no settings edit workflow.",
|
|
3857
3858
|
"The task must block the rest of the interface or requires confirmation in a modal.",
|
|
3858
|
-
"Several sections must remain editable at the same time.",
|
|
3859
3859
|
"The header requires custom actions beyond the fixed edit-save-cancel workflow."
|
|
3860
3860
|
],
|
|
3861
3861
|
"alternatives": [
|
|
@@ -3880,7 +3880,8 @@
|
|
|
3880
3880
|
"component:ds-input",
|
|
3881
3881
|
"component:ds-select",
|
|
3882
3882
|
"component:ds-switch",
|
|
3883
|
-
"component:ds-text"
|
|
3883
|
+
"component:ds-text",
|
|
3884
|
+
"component:ds-setting-row"
|
|
3884
3885
|
],
|
|
3885
3886
|
"accessibility": [
|
|
3886
3887
|
"Provide a concise heading that identifies the settings section; CardSetting renders it as an h2.",
|
|
@@ -3897,10 +3898,11 @@
|
|
|
3897
3898
|
"When another section requests edit, the parent keeps one active section and resolves any dirty current section before switching.",
|
|
3898
3899
|
"The parent owns read-only versus editable body composition, dirty state, validation, persistence, loading, success, and error consequences.",
|
|
3899
3900
|
"A save request keeps the section editing while validation or persistence is pending; the parent exits only after success.",
|
|
3900
|
-
"A cancel request does not persist changes; the parent restores its chosen value snapshot and exits editing."
|
|
3901
|
+
"A cancel request does not persist changes; the parent restores its chosen value snapshot and exits editing.",
|
|
3902
|
+
"The immediate variant keeps the resting card surface and omits header actions even if editing is supplied. The application applies and persists each control change independently."
|
|
3901
3903
|
],
|
|
3902
3904
|
"responsiveBehavior": [
|
|
3903
|
-
"Choose sm, md, or lg from the parent layout
|
|
3905
|
+
"Choose sm, md, or lg from the parent layout. Editable cards use the matching minimum height; immediate cards fit their content.",
|
|
3904
3906
|
"The surface never exceeds its parent width, while the parent owns wrapping, columns, stacking, and breakpoint changes.",
|
|
3905
3907
|
"At narrow widths, keep the fixed header actions visible and let application-owned body layouts collapse before allowing horizontal overflow."
|
|
3906
3908
|
],
|
|
@@ -3953,9 +3955,10 @@
|
|
|
3953
3955
|
"width",
|
|
3954
3956
|
"min-height"
|
|
3955
3957
|
],
|
|
3956
|
-
"reason": "Card width selects the component geometry;
|
|
3958
|
+
"reason": "Card width selects the component geometry; immediate cards fit their content. Let the parent constrain available space.",
|
|
3957
3959
|
"props": [
|
|
3958
|
-
"cardWidth"
|
|
3960
|
+
"cardWidth",
|
|
3961
|
+
"variant"
|
|
3959
3962
|
]
|
|
3960
3963
|
}
|
|
3961
3964
|
],
|
|
@@ -3987,6 +3990,10 @@
|
|
|
3987
3990
|
"saveLabel": {
|
|
3988
3991
|
"type": "string",
|
|
3989
3992
|
"required": false
|
|
3993
|
+
},
|
|
3994
|
+
"variant": {
|
|
3995
|
+
"type": "CardSettingVariant",
|
|
3996
|
+
"required": false
|
|
3990
3997
|
}
|
|
3991
3998
|
},
|
|
3992
3999
|
"events": [
|
|
@@ -6716,21 +6723,21 @@
|
|
|
6716
6723
|
"tag": "ds-empty-state",
|
|
6717
6724
|
"name": "empty-state",
|
|
6718
6725
|
"title": "EmptyState",
|
|
6719
|
-
"summary": "Centered empty-content message
|
|
6726
|
+
"summary": "Centered empty-content message with optional consumer-owned recovery actions.",
|
|
6720
6727
|
"intentStatus": "complete",
|
|
6721
6728
|
"intent": {
|
|
6722
6729
|
"audience": "general",
|
|
6723
6730
|
"status": "stable",
|
|
6724
|
-
"summary": "Centered empty-content message
|
|
6731
|
+
"summary": "Centered empty-content message with optional consumer-owned recovery actions.",
|
|
6725
6732
|
"useWhen": [
|
|
6726
6733
|
"A bounded content area is in a first-use, no-content, filtered no-results, or no-access state and needs a calm explanatory message tailored to that cause.",
|
|
6727
6734
|
"A prominent empty region benefits from a decorative icon, visual title, and supporting body copy.",
|
|
6728
|
-
"A compact owner such as a Select popup needs only centered body copy."
|
|
6735
|
+
"A compact owner such as a Select popup needs only centered body copy.",
|
|
6736
|
+
"An empty region needs a concise recovery action that helps the user reveal or create content."
|
|
6729
6737
|
],
|
|
6730
6738
|
"avoidWhen": [
|
|
6731
6739
|
"Content is still loading; use Skeleton for predictable structure or Loader for an indeterminate operation.",
|
|
6732
6740
|
"The state is an error, warning, or confirmation that needs semantic intent and announcement from the owning workflow.",
|
|
6733
|
-
"The state needs a recovery action, link, or other interactive content; the current EmptyState pattern is intentionally message-only.",
|
|
6734
6741
|
"A decorative illustration, arbitrary rich content, or custom layout is required."
|
|
6735
6742
|
],
|
|
6736
6743
|
"alternatives": [
|
|
@@ -6754,20 +6761,23 @@
|
|
|
6754
6761
|
"component:ds-table",
|
|
6755
6762
|
"component:ds-select",
|
|
6756
6763
|
"component:ds-text",
|
|
6757
|
-
"component:ds-icon"
|
|
6764
|
+
"component:ds-icon",
|
|
6765
|
+
"component:ds-button-unfilled"
|
|
6758
6766
|
],
|
|
6759
6767
|
"accessibility": [
|
|
6760
6768
|
"The optional icon is decorative; the title and body provide all meaning in text.",
|
|
6761
6769
|
"EmptyState does not create a live region or alert automatically. The owner decides whether a dynamic transition requires announcement.",
|
|
6762
6770
|
"The visual title does not impose a document heading level because the correct hierarchy belongs to the consuming page or region.",
|
|
6763
|
-
"Keep localized body copy concise and sufficient when using the body-only variant."
|
|
6771
|
+
"Keep localized body copy concise and sufficient when using the body-only variant.",
|
|
6772
|
+
"Give recovery controls explicit accessible names and keep their behavior with the owning workflow."
|
|
6764
6773
|
],
|
|
6765
6774
|
"states": [
|
|
6766
6775
|
"Supported compositions are icon plus title plus body, title plus body, and body only; body copy is present in every supported composition.",
|
|
6767
6776
|
"The decorative icon renders at xl in the primary foreground with an 8px gap before the text group and only when a title is also provided.",
|
|
6768
6777
|
"The visual title uses title-small primary text; body uses body-medium secondary text with a 4px title-to-body gap.",
|
|
6769
|
-
"All content is centered. The owner supplies container size and surrounding padding; repeated panel and master-detail owners should share one empty-region geometry instead of wrapping each EmptyState differently.
|
|
6770
|
-
"First-use, no-content, no-results, and no-access states reuse this primitive with cause-specific localized messages rather than visual variants."
|
|
6778
|
+
"All content is centered. The owner supplies container size and surrounding padding; repeated panel and master-detail owners should share one empty-region geometry instead of wrapping each EmptyState differently.",
|
|
6779
|
+
"First-use, no-content, no-results, and no-access states reuse this primitive with cause-specific localized messages rather than visual variants.",
|
|
6780
|
+
"Recovery actions are optional. The consumer owns the action labels, control choice, and behavior; the component centers them below the message and wraps multiple actions when needed."
|
|
6771
6781
|
],
|
|
6772
6782
|
"responsiveBehavior": [
|
|
6773
6783
|
"The owner controls available width and height; text wraps naturally while remaining centered.",
|
|
@@ -6816,7 +6826,9 @@
|
|
|
6816
6826
|
}
|
|
6817
6827
|
},
|
|
6818
6828
|
"events": [],
|
|
6819
|
-
"slots": [
|
|
6829
|
+
"slots": [
|
|
6830
|
+
"actions"
|
|
6831
|
+
]
|
|
6820
6832
|
},
|
|
6821
6833
|
"exports": {
|
|
6822
6834
|
"customElement": "ds-empty-state",
|
|
@@ -6885,7 +6897,8 @@
|
|
|
6885
6897
|
"Field exposes data-focused, data-filled, data-dirty, data-touched, data-invalid, data-disabled, and data-required hooks while the slotted control remains the source of value and interaction behavior.",
|
|
6886
6898
|
"A rendered error replaces the description; preserve essential guidance in the error message so users retain what they need to correct the field.",
|
|
6887
6899
|
"Field owns validation presentation but not validation timing; the form decides when to set error and errorMessage.",
|
|
6888
|
-
"The label uses primary body-small emphasis, description uses secondary body-small text, and error uses negative body-small text."
|
|
6900
|
+
"The label uses primary body-small emphasis, description uses secondary body-small text, and error uses negative body-small text.",
|
|
6901
|
+
"Input and Textarea contribute constraint messages and character counts to the supporting row. Helper text yields to an error, with the count at the opposite edge; a count alone begins at the text origin."
|
|
6889
6902
|
],
|
|
6890
6903
|
"responsiveBehavior": [
|
|
6891
6904
|
"Field fills the width supplied by its parent and makes the slotted control fill that field width.",
|
|
@@ -7452,12 +7465,12 @@
|
|
|
7452
7465
|
"tag": "ds-input",
|
|
7453
7466
|
"name": "input",
|
|
7454
7467
|
"title": "Input",
|
|
7455
|
-
"summary": "Form-associated
|
|
7468
|
+
"summary": "Form-associated text and number input with constraints, optional free-text suggestions, token entry, and character counts.",
|
|
7456
7469
|
"intentStatus": "complete",
|
|
7457
7470
|
"intent": {
|
|
7458
7471
|
"audience": "general",
|
|
7459
7472
|
"status": "stable",
|
|
7460
|
-
"summary": "Form-associated
|
|
7473
|
+
"summary": "Form-associated text and number input with constraints, optional free-text suggestions, token entry, and character counts.",
|
|
7461
7474
|
"useWhen": [
|
|
7462
7475
|
"A user must enter or edit one line of text, an email address, telephone number, URL, search query, password, or exact number.",
|
|
7463
7476
|
"The value must participate in native, Angular, React, or Vue form state.",
|
|
@@ -7508,7 +7521,7 @@
|
|
|
7508
7521
|
"Error text is associated with the native input and announced as an alert when the invalid state is rendered.",
|
|
7509
7522
|
"Read-only fields remain focusable and submittable while preventing edits; inactive or disabled fields leave the tab order and are omitted from form submission.",
|
|
7510
7523
|
"Password fields keep a named show-or-hide action beside the value. Revealing the value changes only the native input type; the submitted string does not change. The action restores focus to the field after activation.",
|
|
7511
|
-
"
|
|
7524
|
+
"Optional number stepper actions are named buttons available to keyboard and assistive-technology users. The native spinbutton also retains arrow-key stepping; activating either button returns focus to the field.",
|
|
7512
7525
|
"Prefix and suffix content must not carry information that is otherwise absent from the field's visible label, value, or description.",
|
|
7513
7526
|
"A nested prefix or suffix Select is a separate control from the editable value and must have its own accessible name."
|
|
7514
7527
|
],
|
|
@@ -7523,10 +7536,13 @@
|
|
|
7523
7536
|
"Search fields used with owned result sets forward aria-controls and aria-activedescendant to the native field so keyboard focus can remain in the query while assistive technology tracks the active result.",
|
|
7524
7537
|
"The prefix and suffix slots host compact leading or trailing units such as a currency code, or a nested same-size inset Select. Text adornments use the control's balanced text inset. Nested Selects match the field density, set isInset, hasBorder false, width hug, and indicator up-down, keep a selected value, set allowClear false so the menu has no clear footer, set neutralTrigger so the selected unit stays on the secondary adornment foreground, and do not carry the field's error message. Configurable prefix and suffix controls are separated from the editable value by a vertical divider at the density icon height. The nested inset keeps its 2px remainder toward the line; the editable value keeps the same inline padding from the line as a non-prefixed field keeps from its border. The optional leading icon is decorative and does not replace the field label. Password, search-clear, and date or time actions stay type-owned trailing buttons rather than suffix-slot content.",
|
|
7525
7538
|
"Use autoComplete, inputMode, and enterKeyHint to provide browser and virtual-keyboard hints without changing the value's semantic type.",
|
|
7526
|
-
"Number fields preserve native spinbutton semantics, keyboard stepping, and min/max constraint behavior while dsChange continues to report the native string value.
|
|
7539
|
+
"Number fields preserve native spinbutton semantics, keyboard stepping, and min/max constraint behavior while dsChange continues to report the native string value. Optional borderless inset Plus and Minus buttons share the field density, appear in that order, disable independently at their numeric bound, and restore focus to the spinbutton after activation. Hide them when direct numeric entry is preferable; browser spinner chrome stays hidden.",
|
|
7527
7540
|
"textAlign positions the editable value while the numeric stepper stays on the opposite inline edge, keeping the actions clear of the number: start-aligned values use an inline-end stepper and end-aligned values use an inline-start stepper.",
|
|
7528
7541
|
"The host exposes focused, filled, dirty, touched, invalid, disabled, read-only, and required data attributes for Field integration and diagnostics.",
|
|
7529
|
-
"Use Input only on primary or secondary application backgrounds. It intentionally does not expose alternate surface contexts."
|
|
7542
|
+
"Use Input only on primary or secondary application backgrounds. It intentionally does not expose alternate surface contexts.",
|
|
7543
|
+
"Length constraints validate both typed and programmatic values. By default excess text is retained and shown as an error; restrict mode uses a hard input limit. Counters show the draft length and maximum below the field, beside helper or error text when present.",
|
|
7544
|
+
"Suggestions assist free text rather than constrain selection. Arrow keys highlight suggestions, Enter accepts one, and Escape dismisses the popup without changing the value.",
|
|
7545
|
+
"Tokenized text and search fields use removable double-inset chips and commit trimmed, unique values with Enter or comma, accept delimited paste, and remove the last token with Backspace on an empty draft. Committed tokens submit as repeated entries; value remains the draft and must be committed before submission. Length and pattern constraints apply per token."
|
|
7530
7546
|
],
|
|
7531
7547
|
"responsiveBehavior": [
|
|
7532
7548
|
"Form fields normally fill their parent; use hug width only in a compact toolbar or filter layout with an explicit width constraint.",
|
|
@@ -7536,16 +7552,20 @@
|
|
|
7536
7552
|
"frameworkCaveats": {
|
|
7537
7553
|
"customElements": [
|
|
7538
7554
|
"Listen for dsChange for user edits and dsClear for the search clear action.",
|
|
7539
|
-
"Use the form attribute on the host when associating an input rendered outside its owning form."
|
|
7555
|
+
"Use the form attribute on the host when associating an input rendered outside its owning form.",
|
|
7556
|
+
"Bind committed token arrays through tokens and dsTokensChange, separately from the draft value. Assign suggestions as a JavaScript array."
|
|
7540
7557
|
],
|
|
7541
7558
|
"react": [
|
|
7542
|
-
"Use DsInput, bind value for controlled application state, and handle onDsChange and onDsClear."
|
|
7559
|
+
"Use DsInput, bind value for controlled application state, and handle onDsChange and onDsClear.",
|
|
7560
|
+
"Bind committed token arrays through tokens and dsTokensChange, separately from the draft value. Assign suggestions as a JavaScript array."
|
|
7543
7561
|
],
|
|
7544
7562
|
"vue": [
|
|
7545
|
-
"Use DsInput with v-model for the value, and listen for dsChange and dsClear."
|
|
7563
|
+
"Use DsInput with v-model for the value, and listen for dsChange and dsClear.",
|
|
7564
|
+
"Bind committed token arrays through tokens and dsTokensChange, separately from the draft value. Assign suggestions as a JavaScript array."
|
|
7546
7565
|
],
|
|
7547
7566
|
"angular": [
|
|
7548
|
-
"
|
|
7567
|
+
"Use TextValueAccessor for text inputs and NumericValueAccessor for a statically declared type=\"number\" input. Numeric forms receive numbers or null while the component event remains a string.",
|
|
7568
|
+
"For tokenized input bind tokens and dsTokensChange explicitly; value and dsChange represent only the draft. Do not attach a scalar form value accessor to token mode."
|
|
7549
7569
|
]
|
|
7550
7570
|
},
|
|
7551
7571
|
"references": [
|
|
@@ -7640,6 +7660,10 @@
|
|
|
7640
7660
|
"type": "string",
|
|
7641
7661
|
"required": false
|
|
7642
7662
|
},
|
|
7663
|
+
"decrementLabel": {
|
|
7664
|
+
"type": "string",
|
|
7665
|
+
"required": false
|
|
7666
|
+
},
|
|
7643
7667
|
"disabled": {
|
|
7644
7668
|
"type": "boolean",
|
|
7645
7669
|
"required": false
|
|
@@ -7676,6 +7700,10 @@
|
|
|
7676
7700
|
"type": "string | undefined",
|
|
7677
7701
|
"required": false
|
|
7678
7702
|
},
|
|
7703
|
+
"incrementLabel": {
|
|
7704
|
+
"type": "string",
|
|
7705
|
+
"required": false
|
|
7706
|
+
},
|
|
7679
7707
|
"inputId": {
|
|
7680
7708
|
"type": "string | undefined",
|
|
7681
7709
|
"required": false
|
|
@@ -7688,18 +7716,38 @@
|
|
|
7688
7716
|
"type": "boolean",
|
|
7689
7717
|
"required": false
|
|
7690
7718
|
},
|
|
7719
|
+
"lengthBehavior": {
|
|
7720
|
+
"type": "'error' | 'restrict'",
|
|
7721
|
+
"required": false
|
|
7722
|
+
},
|
|
7691
7723
|
"max": {
|
|
7692
7724
|
"type": "number | undefined",
|
|
7693
7725
|
"required": false
|
|
7694
7726
|
},
|
|
7727
|
+
"maxLength": {
|
|
7728
|
+
"type": "number | undefined",
|
|
7729
|
+
"required": false
|
|
7730
|
+
},
|
|
7695
7731
|
"min": {
|
|
7696
7732
|
"type": "number | undefined",
|
|
7697
7733
|
"required": false
|
|
7698
7734
|
},
|
|
7735
|
+
"minLength": {
|
|
7736
|
+
"type": "number | undefined",
|
|
7737
|
+
"required": false
|
|
7738
|
+
},
|
|
7699
7739
|
"name": {
|
|
7700
7740
|
"type": "string | undefined",
|
|
7701
7741
|
"required": false
|
|
7702
7742
|
},
|
|
7743
|
+
"pattern": {
|
|
7744
|
+
"type": "string | undefined",
|
|
7745
|
+
"required": false
|
|
7746
|
+
},
|
|
7747
|
+
"patternMessage": {
|
|
7748
|
+
"type": "string | undefined",
|
|
7749
|
+
"required": false
|
|
7750
|
+
},
|
|
7703
7751
|
"placeholder": {
|
|
7704
7752
|
"type": "string | undefined",
|
|
7705
7753
|
"required": false
|
|
@@ -7708,6 +7756,10 @@
|
|
|
7708
7756
|
"type": "boolean",
|
|
7709
7757
|
"required": false
|
|
7710
7758
|
},
|
|
7759
|
+
"removeTokenLabel": {
|
|
7760
|
+
"type": "string",
|
|
7761
|
+
"required": false
|
|
7762
|
+
},
|
|
7711
7763
|
"required": {
|
|
7712
7764
|
"type": "boolean",
|
|
7713
7765
|
"required": false
|
|
@@ -7716,10 +7768,18 @@
|
|
|
7716
7768
|
"type": "string",
|
|
7717
7769
|
"required": false
|
|
7718
7770
|
},
|
|
7771
|
+
"showCharacterCount": {
|
|
7772
|
+
"type": "boolean",
|
|
7773
|
+
"required": false
|
|
7774
|
+
},
|
|
7719
7775
|
"showPasswordLabel": {
|
|
7720
7776
|
"type": "string",
|
|
7721
7777
|
"required": false
|
|
7722
7778
|
},
|
|
7779
|
+
"showStepper": {
|
|
7780
|
+
"type": "boolean",
|
|
7781
|
+
"required": false
|
|
7782
|
+
},
|
|
7723
7783
|
"size": {
|
|
7724
7784
|
"type": "InputSize",
|
|
7725
7785
|
"required": false
|
|
@@ -7728,10 +7788,22 @@
|
|
|
7728
7788
|
"type": "number | undefined",
|
|
7729
7789
|
"required": false
|
|
7730
7790
|
},
|
|
7791
|
+
"suggestions": {
|
|
7792
|
+
"type": "string[]",
|
|
7793
|
+
"required": false
|
|
7794
|
+
},
|
|
7731
7795
|
"textAlign": {
|
|
7732
7796
|
"type": "InputTextAlign",
|
|
7733
7797
|
"required": false
|
|
7734
7798
|
},
|
|
7799
|
+
"tokenized": {
|
|
7800
|
+
"type": "boolean",
|
|
7801
|
+
"required": false
|
|
7802
|
+
},
|
|
7803
|
+
"tokens": {
|
|
7804
|
+
"type": "string[]",
|
|
7805
|
+
"required": false
|
|
7806
|
+
},
|
|
7735
7807
|
"type": {
|
|
7736
7808
|
"type": "InputType",
|
|
7737
7809
|
"required": false
|
|
@@ -7753,6 +7825,14 @@
|
|
|
7753
7825
|
{
|
|
7754
7826
|
"name": "dsClear",
|
|
7755
7827
|
"detail": "void"
|
|
7828
|
+
},
|
|
7829
|
+
{
|
|
7830
|
+
"name": "dsSuggestionSelect",
|
|
7831
|
+
"detail": "string"
|
|
7832
|
+
},
|
|
7833
|
+
{
|
|
7834
|
+
"name": "dsTokensChange",
|
|
7835
|
+
"detail": "string[]"
|
|
7756
7836
|
}
|
|
7757
7837
|
],
|
|
7758
7838
|
"slots": []
|
|
@@ -7770,8 +7850,10 @@
|
|
|
7770
7850
|
],
|
|
7771
7851
|
"componentDependencies": [
|
|
7772
7852
|
"button-unfilled",
|
|
7853
|
+
"chip",
|
|
7773
7854
|
"divider",
|
|
7774
7855
|
"icon",
|
|
7856
|
+
"input",
|
|
7775
7857
|
"text"
|
|
7776
7858
|
]
|
|
7777
7859
|
},
|
|
@@ -8065,7 +8147,7 @@
|
|
|
8065
8147
|
{
|
|
8066
8148
|
"when": "The hour, minute, and AM/PM lists are needed without a form field.",
|
|
8067
8149
|
"component": "component:ds-time-picker",
|
|
8068
|
-
"reason": "TimePicker owns the bounded
|
|
8150
|
+
"reason": "TimePicker owns the bounded clock lists and selected-tile treatment."
|
|
8069
8151
|
},
|
|
8070
8152
|
{
|
|
8071
8153
|
"when": "The user chooses from a finite set of named times or cadences.",
|
|
@@ -8083,9 +8165,9 @@
|
|
|
8083
8165
|
],
|
|
8084
8166
|
"accessibility": [
|
|
8085
8167
|
"Provide a persistent visible label through the owning field or an external native label.",
|
|
8086
|
-
"The text field remains the keyboard and assistive-technology value control. Users can type HH:MM, H:MM, or a 12-hour label such as 9:00 AM.",
|
|
8168
|
+
"The text field remains the keyboard and assistive-technology value control. Users can type HH:MM, H:MM, or a 12- or 24-hour label such as 9:00 AM.",
|
|
8087
8169
|
"The trailing clock button is a named disclosure that opens a non-modal time dialog. It shares the field's density, uses the single inset recipe, and reports expanded state while the picker is open.",
|
|
8088
|
-
"Filled values keep HH:MM as the form value. Visible text uses a 12-hour label such as 9:00 AM so the field does not show 24-hour chrome. That label reuses Input's value typography and text-container inset.",
|
|
8170
|
+
"Filled values keep HH:MM as the form value. Visible text uses a 12- or 24-hour label such as 9:00 AM so the field does not show 24-hour chrome. That label reuses Input's value typography and text-container inset.",
|
|
8089
8171
|
"Error text is associated with the text field and announced as an alert when the invalid state is rendered.",
|
|
8090
8172
|
"Read-only fields remain focusable and submittable while preventing edits; inactive or disabled fields leave the tab order and are omitted from form submission."
|
|
8091
8173
|
],
|
|
@@ -8095,7 +8177,8 @@
|
|
|
8095
8177
|
"The normal field boundary uses the shared secondary inset border. Focus promotes it to the thicker bold-brand inset stroke, while error uses the thicker bold-negative inset stroke without changing geometry. When hasBorder is false, supporting error copy insets to the field's text origin rather than the resting border box.",
|
|
8096
8178
|
"The host exposes focused, filled, dirty, touched, invalid, disabled, read-only, and required data attributes for Field integration and diagnostics.",
|
|
8097
8179
|
"The trailing clock action is an unfilled icon button of the same density as the field, borderless and square, with the single inset recipe so the 4px height reduction insets it equally from the field's top, end, and bottom edges. It does not replace the field label or the submitted time value. Inactive or disabled fields apply that treatment on the host only, so the nested button is not faded a second time.",
|
|
8098
|
-
"Activating the clock button opens the shared TimePicker in a choice-popup dialog anchored to the field's end edge, beside the trailing clock action. Choosing hour, minute, or AM/PM commits that part of the time and leaves the dialog open so the other columns can be adjusted. Typing in the field commits a parsed time without requiring the picker. Invalid typed text reverts to the last committed value on blur."
|
|
8180
|
+
"Activating the clock button opens the shared TimePicker in a choice-popup dialog anchored to the field's end edge, beside the trailing clock action. Choosing hour, minute, or AM/PM commits that part of the time and leaves the dialog open so the other columns can be adjusted. Typing in the field commits a parsed time without requiring the picker. Invalid typed text reverts to the last committed value on blur.",
|
|
8181
|
+
"The default twelve-hour presentation includes AM/PM. Twenty-four-hour presentation uses hours 00–23 and omits the period column; both keep HH:MM form values and the same time bounds."
|
|
8099
8182
|
],
|
|
8100
8183
|
"responsiveBehavior": [
|
|
8101
8184
|
"Form fields normally fill their parent; use hug width only in a compact toolbar or filter layout with an explicit width constraint.",
|
|
@@ -8217,6 +8300,10 @@
|
|
|
8217
8300
|
"type": "boolean",
|
|
8218
8301
|
"required": false
|
|
8219
8302
|
},
|
|
8303
|
+
"hourFormat": {
|
|
8304
|
+
"type": "'12' | '24'",
|
|
8305
|
+
"required": false
|
|
8306
|
+
},
|
|
8220
8307
|
"inputId": {
|
|
8221
8308
|
"type": "string | undefined",
|
|
8222
8309
|
"required": false
|
|
@@ -8417,6 +8504,288 @@
|
|
|
8417
8504
|
],
|
|
8418
8505
|
"componentDependencies": []
|
|
8419
8506
|
},
|
|
8507
|
+
{
|
|
8508
|
+
"id": "component:ds-map-cluster-marker",
|
|
8509
|
+
"tag": "ds-map-cluster-marker",
|
|
8510
|
+
"name": "map-cluster-marker",
|
|
8511
|
+
"title": "MapClusterMarker",
|
|
8512
|
+
"summary": "Engine-independent map cluster button with compact count formatting and a hover or focus caption.",
|
|
8513
|
+
"intentStatus": "complete",
|
|
8514
|
+
"intent": {
|
|
8515
|
+
"audience": "general",
|
|
8516
|
+
"status": "experimental",
|
|
8517
|
+
"summary": "Engine-independent map cluster button with compact count formatting and a hover or focus caption.",
|
|
8518
|
+
"useWhen": [
|
|
8519
|
+
"An application map needs one interactive marker to represent several nearby entities.",
|
|
8520
|
+
"The map engine can mount a custom element and retain ownership of clustering, coordinates, anchoring, and camera behavior."
|
|
8521
|
+
],
|
|
8522
|
+
"avoidWhen": [
|
|
8523
|
+
"The marker represents one vehicle, asset, person, or travel group; use MapEntityMarker.",
|
|
8524
|
+
"The count is a notification attached to another control; use Badge.",
|
|
8525
|
+
"The component would be asked to calculate clusters or own geographic and selected-entity business state."
|
|
8526
|
+
],
|
|
8527
|
+
"alternatives": [
|
|
8528
|
+
{
|
|
8529
|
+
"when": "One map entity needs operating state, bearing, and an optional dashed outline.",
|
|
8530
|
+
"component": "component:ds-map-entity-marker",
|
|
8531
|
+
"reason": "MapEntityMarker owns single-entity marker semantics and geometry."
|
|
8532
|
+
},
|
|
8533
|
+
{
|
|
8534
|
+
"when": "A count supplements another non-map control.",
|
|
8535
|
+
"component": "component:ds-badge",
|
|
8536
|
+
"reason": "Badge owns compact notification and counter indicators."
|
|
8537
|
+
}
|
|
8538
|
+
],
|
|
8539
|
+
"commonlyComposedWith": [
|
|
8540
|
+
"component:ds-map-entity-marker",
|
|
8541
|
+
"component:ds-text"
|
|
8542
|
+
],
|
|
8543
|
+
"accessibility": [
|
|
8544
|
+
"The component renders a native button and label is its accessible action name. Prefer a label that includes the full count and outcome, such as ‘Zoom to 24 vehicles’.",
|
|
8545
|
+
"Caption is a supplemental visual identifier and is hidden from assistive technology to avoid duplicating label.",
|
|
8546
|
+
"Keyboard focus reveals the same caption as hover and uses the shared visible focus ring.",
|
|
8547
|
+
"The compact displayed count does not replace the full count in label."
|
|
8548
|
+
],
|
|
8549
|
+
"states": [
|
|
8550
|
+
"count is rounded to a non-negative whole number and compacts with a k suffix at one thousand and above.",
|
|
8551
|
+
"dimmed is visual de-emphasis only. The map owner decides when selection context should dim cluster peers and keeps every cluster operable. A dimmed cluster returns to full opacity while hovered or keyboard-focused so its revealed caption remains legible.",
|
|
8552
|
+
"Activation emits dsClick without calculating a cluster expansion or changing camera state internally."
|
|
8553
|
+
],
|
|
8554
|
+
"responsiveBehavior": [
|
|
8555
|
+
"Marker height and minimum width stay fixed across breakpoints so map-engine anchors remain stable; width grows only for the compact count.",
|
|
8556
|
+
"The map owner controls collision handling, overlays, and viewport-aware caption placement."
|
|
8557
|
+
],
|
|
8558
|
+
"frameworkCaveats": {
|
|
8559
|
+
"customElements": [
|
|
8560
|
+
"A map engine that accepts an Element for a custom marker or div icon can mount ds-map-cluster-marker directly.",
|
|
8561
|
+
"Listen for dsClick and keep cluster membership, expansion zoom, z-index, coordinates, and camera movement in application state."
|
|
8562
|
+
],
|
|
8563
|
+
"react": [
|
|
8564
|
+
"Pass count as a number and handle dsClick through the generated event binding."
|
|
8565
|
+
],
|
|
8566
|
+
"angular": [
|
|
8567
|
+
"Bind count as a number and keep map-engine marker lifecycle in the owning map adapter."
|
|
8568
|
+
]
|
|
8569
|
+
},
|
|
8570
|
+
"references": [
|
|
8571
|
+
{
|
|
8572
|
+
"label": "Storybook examples",
|
|
8573
|
+
"path": "src/wc/components/MapClusterMarker/MapClusterMarker.stories.ts"
|
|
8574
|
+
}
|
|
8575
|
+
],
|
|
8576
|
+
"styling": {
|
|
8577
|
+
"rationale": "The component owns stable map anchoring geometry and semantic cluster recipes; the map engine owns host placement and stacking.",
|
|
8578
|
+
"protected": [
|
|
8579
|
+
{
|
|
8580
|
+
"properties": [
|
|
8581
|
+
"height",
|
|
8582
|
+
"min-width",
|
|
8583
|
+
"padding",
|
|
8584
|
+
"border-radius",
|
|
8585
|
+
"background",
|
|
8586
|
+
"color",
|
|
8587
|
+
"opacity"
|
|
8588
|
+
],
|
|
8589
|
+
"reason": "Cluster geometry, count legibility, interaction treatment, and de-emphasis are one accessible visual recipe.",
|
|
8590
|
+
"props": [
|
|
8591
|
+
"count",
|
|
8592
|
+
"dimmed"
|
|
8593
|
+
]
|
|
8594
|
+
}
|
|
8595
|
+
],
|
|
8596
|
+
"customProperties": []
|
|
8597
|
+
}
|
|
8598
|
+
},
|
|
8599
|
+
"api": {
|
|
8600
|
+
"props": {
|
|
8601
|
+
"caption": {
|
|
8602
|
+
"type": "string",
|
|
8603
|
+
"required": false
|
|
8604
|
+
},
|
|
8605
|
+
"count": {
|
|
8606
|
+
"type": "number",
|
|
8607
|
+
"required": false
|
|
8608
|
+
},
|
|
8609
|
+
"dimmed": {
|
|
8610
|
+
"type": "boolean",
|
|
8611
|
+
"required": false
|
|
8612
|
+
},
|
|
8613
|
+
"label": {
|
|
8614
|
+
"type": "string",
|
|
8615
|
+
"required": true
|
|
8616
|
+
}
|
|
8617
|
+
},
|
|
8618
|
+
"events": [
|
|
8619
|
+
{
|
|
8620
|
+
"name": "dsClick",
|
|
8621
|
+
"detail": "MouseEvent"
|
|
8622
|
+
}
|
|
8623
|
+
],
|
|
8624
|
+
"slots": []
|
|
8625
|
+
},
|
|
8626
|
+
"exports": {
|
|
8627
|
+
"customElement": "ds-map-cluster-marker",
|
|
8628
|
+
"react": "DsMapClusterMarker",
|
|
8629
|
+
"vue": "DsMapClusterMarker",
|
|
8630
|
+
"angular": "DsMapClusterMarker"
|
|
8631
|
+
},
|
|
8632
|
+
"dependencies": [
|
|
8633
|
+
"@ds-mo/ui",
|
|
8634
|
+
"@ds-mo/tokens"
|
|
8635
|
+
],
|
|
8636
|
+
"componentDependencies": [
|
|
8637
|
+
"text"
|
|
8638
|
+
]
|
|
8639
|
+
},
|
|
8640
|
+
{
|
|
8641
|
+
"id": "component:ds-map-entity-marker",
|
|
8642
|
+
"tag": "ds-map-entity-marker",
|
|
8643
|
+
"name": "map-entity-marker",
|
|
8644
|
+
"title": "MapEntityMarker",
|
|
8645
|
+
"summary": "Engine-independent map marker button for a vehicle, asset, person, or travel group with operating-state color, bearing, an optional dashed outline, and a hover or focus caption.",
|
|
8646
|
+
"intentStatus": "complete",
|
|
8647
|
+
"intent": {
|
|
8648
|
+
"audience": "general",
|
|
8649
|
+
"status": "experimental",
|
|
8650
|
+
"summary": "Engine-independent map marker button for a vehicle, asset, person, or travel group with operating-state color, bearing, an optional dashed outline, and a hover or focus caption.",
|
|
8651
|
+
"useWhen": [
|
|
8652
|
+
"An application map needs a consistent interactive marker for one entity.",
|
|
8653
|
+
"The map engine can mount a custom element and retain ownership of coordinates, anchoring, and camera behavior."
|
|
8654
|
+
],
|
|
8655
|
+
"avoidWhen": [
|
|
8656
|
+
"Several nearby entities must be represented as one count; use MapClusterMarker.",
|
|
8657
|
+
"The content is a legend item or non-interactive status swatch.",
|
|
8658
|
+
"The component would be asked to own geographic coordinates, clustering, map-engine adapters, or selected-entity business state."
|
|
8659
|
+
],
|
|
8660
|
+
"alternatives": [
|
|
8661
|
+
{
|
|
8662
|
+
"when": "Several nearby entities are represented by a compact count.",
|
|
8663
|
+
"component": "component:ds-map-cluster-marker",
|
|
8664
|
+
"reason": "MapClusterMarker owns cluster count formatting and cluster interaction geometry."
|
|
8665
|
+
}
|
|
8666
|
+
],
|
|
8667
|
+
"commonlyComposedWith": [
|
|
8668
|
+
"component:ds-map-cluster-marker",
|
|
8669
|
+
"component:ds-icon"
|
|
8670
|
+
],
|
|
8671
|
+
"accessibility": [
|
|
8672
|
+
"The component renders a native button and label is its accessible action name. Prefer an action-oriented label such as ‘Open vehicle 412’.",
|
|
8673
|
+
"Caption is a supplemental visual identifier and is hidden from assistive technology to avoid duplicating label.",
|
|
8674
|
+
"Keyboard focus reveals the same caption as hover and uses the shared visible focus ring.",
|
|
8675
|
+
"Operating-state and outline meaning must be present in nearby map legend or application detail content; do not rely on marker color alone.",
|
|
8676
|
+
"The optional dashed outline remains differentiated by a dashed border in forced-colors mode."
|
|
8677
|
+
],
|
|
8678
|
+
"states": [
|
|
8679
|
+
"Unknown represents unavailable current motion and uses the existing stale-background token. The application resolves stale telemetry to Unknown regardless of previous motion; a known Immobilized state takes precedence.",
|
|
8680
|
+
"The dashed outline is an independent visual option. Unknown is solid unless the owner explicitly requests dashes.",
|
|
8681
|
+
"immobilized always renders the upright MapKey glyph instead of the entity icon so the state is identifiable without interpreting bearing.",
|
|
8682
|
+
"bearing rotates only MapEntityTravelGroup and MapEntityVehicle glyphs and is normalized to a clockwise value from 0 through 359 degrees. Immobilized, asset, person, and other glyphs remain upright.",
|
|
8683
|
+
"dimmed is visual de-emphasis only. The map owner decides when selection context should dim peer markers and keeps every marker operable. A dimmed marker returns to full opacity while hovered or keyboard-focused so its revealed caption remains legible.",
|
|
8684
|
+
"Activation emits dsClick without changing application selection internally."
|
|
8685
|
+
],
|
|
8686
|
+
"responsiveBehavior": [
|
|
8687
|
+
"Marker geometry stays fixed across breakpoints so map-engine anchors remain stable.",
|
|
8688
|
+
"The map owner controls collision handling, overlays, and viewport-aware caption placement."
|
|
8689
|
+
],
|
|
8690
|
+
"frameworkCaveats": {
|
|
8691
|
+
"customElements": [
|
|
8692
|
+
"A map engine that accepts an Element for a custom marker or div icon can mount ds-map-entity-marker directly.",
|
|
8693
|
+
"Listen for dsClick and keep selected entity, z-index, coordinates, and camera movement in application state."
|
|
8694
|
+
],
|
|
8695
|
+
"react": [
|
|
8696
|
+
"Pass numeric bearing as a property and handle dsClick through the generated event binding."
|
|
8697
|
+
],
|
|
8698
|
+
"angular": [
|
|
8699
|
+
"Bind bearing as a number and keep map-engine marker lifecycle in the owning map adapter."
|
|
8700
|
+
]
|
|
8701
|
+
},
|
|
8702
|
+
"references": [
|
|
8703
|
+
{
|
|
8704
|
+
"label": "Storybook examples",
|
|
8705
|
+
"path": "src/wc/components/MapEntityMarker/MapEntityMarker.stories.ts"
|
|
8706
|
+
}
|
|
8707
|
+
],
|
|
8708
|
+
"styling": {
|
|
8709
|
+
"rationale": "The component owns stable map anchoring geometry and semantic marker recipes; the map engine owns host placement and stacking.",
|
|
8710
|
+
"protected": [
|
|
8711
|
+
{
|
|
8712
|
+
"properties": [
|
|
8713
|
+
"width",
|
|
8714
|
+
"height",
|
|
8715
|
+
"min-width",
|
|
8716
|
+
"padding",
|
|
8717
|
+
"border",
|
|
8718
|
+
"border-radius",
|
|
8719
|
+
"background",
|
|
8720
|
+
"color",
|
|
8721
|
+
"opacity"
|
|
8722
|
+
],
|
|
8723
|
+
"reason": "Marker geometry, operating-state colors, outline distinction, and de-emphasis are one accessible visual recipe.",
|
|
8724
|
+
"props": [
|
|
8725
|
+
"state",
|
|
8726
|
+
"dashed",
|
|
8727
|
+
"dimmed"
|
|
8728
|
+
]
|
|
8729
|
+
}
|
|
8730
|
+
],
|
|
8731
|
+
"customProperties": []
|
|
8732
|
+
}
|
|
8733
|
+
},
|
|
8734
|
+
"api": {
|
|
8735
|
+
"props": {
|
|
8736
|
+
"bearing": {
|
|
8737
|
+
"type": "number",
|
|
8738
|
+
"required": false
|
|
8739
|
+
},
|
|
8740
|
+
"caption": {
|
|
8741
|
+
"type": "string",
|
|
8742
|
+
"required": false
|
|
8743
|
+
},
|
|
8744
|
+
"dashed": {
|
|
8745
|
+
"type": "boolean",
|
|
8746
|
+
"required": false
|
|
8747
|
+
},
|
|
8748
|
+
"dimmed": {
|
|
8749
|
+
"type": "boolean",
|
|
8750
|
+
"required": false
|
|
8751
|
+
},
|
|
8752
|
+
"icon": {
|
|
8753
|
+
"type": "string",
|
|
8754
|
+
"required": false
|
|
8755
|
+
},
|
|
8756
|
+
"label": {
|
|
8757
|
+
"type": "string",
|
|
8758
|
+
"required": true
|
|
8759
|
+
},
|
|
8760
|
+
"state": {
|
|
8761
|
+
"type": "MapEntityMarkerState",
|
|
8762
|
+
"required": false
|
|
8763
|
+
}
|
|
8764
|
+
},
|
|
8765
|
+
"events": [
|
|
8766
|
+
{
|
|
8767
|
+
"name": "dsClick",
|
|
8768
|
+
"detail": "MouseEvent"
|
|
8769
|
+
}
|
|
8770
|
+
],
|
|
8771
|
+
"slots": []
|
|
8772
|
+
},
|
|
8773
|
+
"exports": {
|
|
8774
|
+
"customElement": "ds-map-entity-marker",
|
|
8775
|
+
"react": "DsMapEntityMarker",
|
|
8776
|
+
"vue": "DsMapEntityMarker",
|
|
8777
|
+
"angular": "DsMapEntityMarker"
|
|
8778
|
+
},
|
|
8779
|
+
"dependencies": [
|
|
8780
|
+
"@ds-mo/ui",
|
|
8781
|
+
"@ds-mo/tokens",
|
|
8782
|
+
"@ds-mo/icons"
|
|
8783
|
+
],
|
|
8784
|
+
"componentDependencies": [
|
|
8785
|
+
"icon",
|
|
8786
|
+
"text"
|
|
8787
|
+
]
|
|
8788
|
+
},
|
|
8420
8789
|
{
|
|
8421
8790
|
"id": "component:ds-markdown",
|
|
8422
8791
|
"tag": "ds-markdown",
|
|
@@ -11575,6 +11944,173 @@
|
|
|
11575
11944
|
"text"
|
|
11576
11945
|
]
|
|
11577
11946
|
},
|
|
11947
|
+
{
|
|
11948
|
+
"id": "component:ds-radio-tile",
|
|
11949
|
+
"tag": "ds-radio-tile",
|
|
11950
|
+
"name": "radio-tile",
|
|
11951
|
+
"title": "RadioTile",
|
|
11952
|
+
"summary": "A form-associated group of fully clickable radio tiles with labels and optional descriptions.",
|
|
11953
|
+
"intentStatus": "complete",
|
|
11954
|
+
"intent": {
|
|
11955
|
+
"audience": "general",
|
|
11956
|
+
"status": "experimental",
|
|
11957
|
+
"summary": "A form-associated group of fully clickable radio tiles with labels and optional descriptions.",
|
|
11958
|
+
"useWhen": [
|
|
11959
|
+
"A small set of mutually exclusive choices benefits from descriptive cards and large click targets."
|
|
11960
|
+
],
|
|
11961
|
+
"avoidWhen": [
|
|
11962
|
+
"The choices are brief and compact; use Radio.",
|
|
11963
|
+
"More than one value may be chosen."
|
|
11964
|
+
],
|
|
11965
|
+
"alternatives": [
|
|
11966
|
+
{
|
|
11967
|
+
"when": "A user may select zero or multiple independent choices.",
|
|
11968
|
+
"component": "component:ds-checkbox",
|
|
11969
|
+
"reason": "Checkbox communicates independent selection rather than one-of-many choice."
|
|
11970
|
+
},
|
|
11971
|
+
{
|
|
11972
|
+
"when": "A binary setting applies immediately.",
|
|
11973
|
+
"component": "component:ds-switch",
|
|
11974
|
+
"reason": "Switch communicates an immediately applied on/off setting."
|
|
11975
|
+
},
|
|
11976
|
+
{
|
|
11977
|
+
"when": "The option list is long or the available space is constrained.",
|
|
11978
|
+
"component": "component:ds-select",
|
|
11979
|
+
"reason": "Select keeps a larger one-of-many choice set compact."
|
|
11980
|
+
}
|
|
11981
|
+
],
|
|
11982
|
+
"commonlyComposedWith": [
|
|
11983
|
+
"component:ds-field",
|
|
11984
|
+
"component:ds-text"
|
|
11985
|
+
],
|
|
11986
|
+
"accessibility": [
|
|
11987
|
+
"Native radio inputs own keyboard selection, focus, and checked semantics; the complete tile activates its input.",
|
|
11988
|
+
"Label the group with Field or an accessible name. Descriptions name each option separately."
|
|
11989
|
+
],
|
|
11990
|
+
"states": [
|
|
11991
|
+
"Selection is shown by the radio indicator while the tile keeps its neutral border. Error retains the negative border, and keyboard focus keeps the focus-token outline. Inactive options cannot be selected.",
|
|
11992
|
+
"The component owns form values, required validation, reset, and disabled-fieldset behavior."
|
|
11993
|
+
],
|
|
11994
|
+
"responsiveBehavior": [
|
|
11995
|
+
"Horizontal tiles wrap to available space; use a vertical group when descriptions need more room."
|
|
11996
|
+
],
|
|
11997
|
+
"frameworkCaveats": {
|
|
11998
|
+
"angular": [
|
|
11999
|
+
"Use the generated radio value accessor with the standalone adapter."
|
|
12000
|
+
],
|
|
12001
|
+
"vue": [
|
|
12002
|
+
"Bind value with v-model."
|
|
12003
|
+
]
|
|
12004
|
+
},
|
|
12005
|
+
"references": [
|
|
12006
|
+
{
|
|
12007
|
+
"label": "Storybook review",
|
|
12008
|
+
"path": "src/wc/components/RadioTile/RadioTile.stories.ts"
|
|
12009
|
+
}
|
|
12010
|
+
],
|
|
12011
|
+
"styling": {
|
|
12012
|
+
"rationale": "Tile anatomy and radio treatment belong to the component; the owner controls group width.",
|
|
12013
|
+
"protected": [
|
|
12014
|
+
{
|
|
12015
|
+
"properties": [
|
|
12016
|
+
"padding",
|
|
12017
|
+
"gap",
|
|
12018
|
+
"border-radius",
|
|
12019
|
+
"background",
|
|
12020
|
+
"border",
|
|
12021
|
+
"box-shadow",
|
|
12022
|
+
"color"
|
|
12023
|
+
],
|
|
12024
|
+
"reason": "Use the supported group direction and state instead of replacing tile internals.",
|
|
12025
|
+
"props": [
|
|
12026
|
+
"direction"
|
|
12027
|
+
]
|
|
12028
|
+
}
|
|
12029
|
+
],
|
|
12030
|
+
"customProperties": []
|
|
12031
|
+
}
|
|
12032
|
+
},
|
|
12033
|
+
"api": {
|
|
12034
|
+
"props": {
|
|
12035
|
+
"ariaDescribedby": {
|
|
12036
|
+
"type": "string | undefined",
|
|
12037
|
+
"required": false
|
|
12038
|
+
},
|
|
12039
|
+
"ariaLabel": {
|
|
12040
|
+
"type": "string | null",
|
|
12041
|
+
"required": false
|
|
12042
|
+
},
|
|
12043
|
+
"ariaLabelledby": {
|
|
12044
|
+
"type": "string | undefined",
|
|
12045
|
+
"required": false
|
|
12046
|
+
},
|
|
12047
|
+
"direction": {
|
|
12048
|
+
"type": "'horizontal' | 'vertical'",
|
|
12049
|
+
"required": false
|
|
12050
|
+
},
|
|
12051
|
+
"disabled": {
|
|
12052
|
+
"type": "boolean",
|
|
12053
|
+
"required": false
|
|
12054
|
+
},
|
|
12055
|
+
"error": {
|
|
12056
|
+
"type": "boolean",
|
|
12057
|
+
"required": false
|
|
12058
|
+
},
|
|
12059
|
+
"form": {
|
|
12060
|
+
"type": "string | undefined",
|
|
12061
|
+
"required": false
|
|
12062
|
+
},
|
|
12063
|
+
"inputId": {
|
|
12064
|
+
"type": "string | undefined",
|
|
12065
|
+
"required": false
|
|
12066
|
+
},
|
|
12067
|
+
"isInactive": {
|
|
12068
|
+
"type": "boolean",
|
|
12069
|
+
"required": false
|
|
12070
|
+
},
|
|
12071
|
+
"name": {
|
|
12072
|
+
"type": "string | undefined",
|
|
12073
|
+
"required": false
|
|
12074
|
+
},
|
|
12075
|
+
"options": {
|
|
12076
|
+
"type": "RadioTileOption[]",
|
|
12077
|
+
"required": false
|
|
12078
|
+
},
|
|
12079
|
+
"required": {
|
|
12080
|
+
"type": "boolean",
|
|
12081
|
+
"required": false
|
|
12082
|
+
},
|
|
12083
|
+
"requiredMessage": {
|
|
12084
|
+
"type": "string",
|
|
12085
|
+
"required": false
|
|
12086
|
+
},
|
|
12087
|
+
"value": {
|
|
12088
|
+
"type": "string",
|
|
12089
|
+
"required": false
|
|
12090
|
+
}
|
|
12091
|
+
},
|
|
12092
|
+
"events": [
|
|
12093
|
+
{
|
|
12094
|
+
"name": "dsChange",
|
|
12095
|
+
"detail": "string"
|
|
12096
|
+
}
|
|
12097
|
+
],
|
|
12098
|
+
"slots": []
|
|
12099
|
+
},
|
|
12100
|
+
"exports": {
|
|
12101
|
+
"customElement": "ds-radio-tile",
|
|
12102
|
+
"react": "DsRadioTile",
|
|
12103
|
+
"vue": "DsRadioTile",
|
|
12104
|
+
"angular": "DsRadioTile"
|
|
12105
|
+
},
|
|
12106
|
+
"dependencies": [
|
|
12107
|
+
"@ds-mo/ui",
|
|
12108
|
+
"@ds-mo/tokens"
|
|
12109
|
+
],
|
|
12110
|
+
"componentDependencies": [
|
|
12111
|
+
"text"
|
|
12112
|
+
]
|
|
12113
|
+
},
|
|
11578
12114
|
{
|
|
11579
12115
|
"id": "component:ds-score",
|
|
11580
12116
|
"tag": "ds-score",
|
|
@@ -12219,6 +12755,103 @@
|
|
|
12219
12755
|
"tooltip"
|
|
12220
12756
|
]
|
|
12221
12757
|
},
|
|
12758
|
+
{
|
|
12759
|
+
"id": "component:ds-setting-row",
|
|
12760
|
+
"tag": "ds-setting-row",
|
|
12761
|
+
"name": "setting-row",
|
|
12762
|
+
"title": "SettingRow",
|
|
12763
|
+
"summary": "Two-column immediate binary setting with descriptive copy and an accessible switch.",
|
|
12764
|
+
"intentStatus": "complete",
|
|
12765
|
+
"intent": {
|
|
12766
|
+
"audience": "general",
|
|
12767
|
+
"status": "experimental",
|
|
12768
|
+
"summary": "Two-column immediate binary setting with descriptive copy and an accessible switch.",
|
|
12769
|
+
"useWhen": [
|
|
12770
|
+
"A settings list pairs a setting name and explanation with one immediate on/off control."
|
|
12771
|
+
],
|
|
12772
|
+
"avoidWhen": [
|
|
12773
|
+
"The value needs a text input, multiple choices, or an explicit Save workflow."
|
|
12774
|
+
],
|
|
12775
|
+
"commonlyComposedWith": [
|
|
12776
|
+
"component:ds-card-setting",
|
|
12777
|
+
"component:ds-switch",
|
|
12778
|
+
"component:ds-text"
|
|
12779
|
+
],
|
|
12780
|
+
"accessibility": [
|
|
12781
|
+
"The visible label names the switch and the optional description supplies its accessible description.",
|
|
12782
|
+
"Switch owns focus, keyboard activation, checked state, and disabled semantics. The row adds no second tab stop.",
|
|
12783
|
+
"For a settings list, the owner supplies list semantics and marks each row as a list item."
|
|
12784
|
+
],
|
|
12785
|
+
"states": [
|
|
12786
|
+
"The application accepts or rejects change requests by updating the controlled checked value and owns persistence and errors.",
|
|
12787
|
+
"Name the enabled setting consistently; the label must not change when the switch is toggled."
|
|
12788
|
+
],
|
|
12789
|
+
"responsiveBehavior": [
|
|
12790
|
+
"The copy wraps while the switch keeps its natural size in the trailing column, including at narrow widths."
|
|
12791
|
+
],
|
|
12792
|
+
"references": [
|
|
12793
|
+
{
|
|
12794
|
+
"label": "Usage states",
|
|
12795
|
+
"path": "src/wc/components/SettingRow/SettingRow.stories.ts"
|
|
12796
|
+
}
|
|
12797
|
+
],
|
|
12798
|
+
"styling": {
|
|
12799
|
+
"rationale": "The row owns copy/control spacing; its parent owns the section surface and width.",
|
|
12800
|
+
"protected": [
|
|
12801
|
+
{
|
|
12802
|
+
"properties": [
|
|
12803
|
+
"padding",
|
|
12804
|
+
"gap"
|
|
12805
|
+
],
|
|
12806
|
+
"reason": "Preserve the shared settings-row spacing recipe.",
|
|
12807
|
+
"props": []
|
|
12808
|
+
}
|
|
12809
|
+
],
|
|
12810
|
+
"customProperties": []
|
|
12811
|
+
}
|
|
12812
|
+
},
|
|
12813
|
+
"api": {
|
|
12814
|
+
"props": {
|
|
12815
|
+
"checked": {
|
|
12816
|
+
"type": "boolean",
|
|
12817
|
+
"required": false
|
|
12818
|
+
},
|
|
12819
|
+
"description": {
|
|
12820
|
+
"type": "string",
|
|
12821
|
+
"required": false
|
|
12822
|
+
},
|
|
12823
|
+
"disabled": {
|
|
12824
|
+
"type": "boolean",
|
|
12825
|
+
"required": false
|
|
12826
|
+
},
|
|
12827
|
+
"label": {
|
|
12828
|
+
"type": "string",
|
|
12829
|
+
"required": true
|
|
12830
|
+
}
|
|
12831
|
+
},
|
|
12832
|
+
"events": [
|
|
12833
|
+
{
|
|
12834
|
+
"name": "dsChange",
|
|
12835
|
+
"detail": "boolean"
|
|
12836
|
+
}
|
|
12837
|
+
],
|
|
12838
|
+
"slots": []
|
|
12839
|
+
},
|
|
12840
|
+
"exports": {
|
|
12841
|
+
"customElement": "ds-setting-row",
|
|
12842
|
+
"react": "DsSettingRow",
|
|
12843
|
+
"vue": "DsSettingRow",
|
|
12844
|
+
"angular": "DsSettingRow"
|
|
12845
|
+
},
|
|
12846
|
+
"dependencies": [
|
|
12847
|
+
"@ds-mo/ui",
|
|
12848
|
+
"@ds-mo/tokens"
|
|
12849
|
+
],
|
|
12850
|
+
"componentDependencies": [
|
|
12851
|
+
"switch",
|
|
12852
|
+
"text"
|
|
12853
|
+
]
|
|
12854
|
+
},
|
|
12222
12855
|
{
|
|
12223
12856
|
"id": "component:ds-shell-app",
|
|
12224
12857
|
"tag": "ds-shell-app",
|
|
@@ -12303,7 +12936,7 @@
|
|
|
12303
12936
|
"On desktop, PanelNav defaults expanded, permits user collapse or expansion, and respects the locally persisted desktop preference.",
|
|
12304
12937
|
"On tablet, ShellApp keeps PanelNav permanently collapsed and prevents user expansion without overwriting the desktop preference.",
|
|
12305
12938
|
"On desktop and tablet, panel section navigation replaces BarNav with BarPageTitle; collapsed PanelNav exposes child sections through its anchored flyout.",
|
|
12306
|
-
"When panel section navigation moves BarPageTitle into the shell bar, routed content starts at the standard
|
|
12939
|
+
"When panel section navigation moves BarPageTitle into the shell bar, routed content starts at the standard 16px desktop and tablet gutter and ShellPage reports no page-local sticky-header height.",
|
|
12307
12940
|
"On mobile, ShellApp hides and inerts desktop chrome, uses a solid primary stage, and composes MobileHeader, MobileSheetNav, ShellTools, and the persistent MobileBarNav around the same application-owned content.",
|
|
12308
12941
|
"The section-navigation preference also selects mobile navigation: bar preserves flat area selection and the header section picker; panel expands child routes inline in MobileSheetNav and combines the page title with any local subsection in one sheet trigger.",
|
|
12309
12942
|
"Opening MobileSheetNav temporarily overlays the active routed page or global tool; closing it without selecting an area restores that same destination and its nested state. The sheet exposes the router-derived current area only while the routed area owns the mobile stage, so a global tool never leaves an underlying route highlighted.",
|
|
@@ -12600,7 +13233,7 @@
|
|
|
12600
13233
|
"A ShellPage-managed BarTitle remains concealed until headerCapacity is available and its rendered variant matches the resolved presentation, preventing a default-variant flash during route activation.",
|
|
12601
13234
|
"responsiveMode=mobile hides and inerts the desktop header, exposes mobile-header, and disables desktop scroll-compaction geometry.",
|
|
12602
13235
|
"Update headerCapacity synchronously with shell layout state so opening tools or crossing application breakpoints cannot briefly render the wrong presentation.",
|
|
12603
|
-
"The default content inset is balanced on every side
|
|
13236
|
+
"The default content inset is balanced at 16px on every side in desktop, tablet, and mobile modes.",
|
|
12604
13237
|
"When desktopHeaderPlacement=shell-bar, desktop and tablet ignore page-header-specific block-start seam overrides and expose --ds-shell-page-content-block-start-offset as the responsive gutter only; mobile keeps its MobileHeader geometry and existing seam.",
|
|
12605
13238
|
"contentInsetBlockStart can independently remove the top gutter for table and canvas pages that should meet the sticky header; exact roomy and compact block-start sizes support pages whose seam changes with header capacity.",
|
|
12606
13239
|
"The selected content surface persists unchanged across desktop, tablet, and mobile modes.",
|
|
@@ -13130,14 +13763,15 @@
|
|
|
13130
13763
|
"Assign a two-number array through the JavaScript value property to create a range; values are ordered, clamped, stepped, and prevented from crossing.",
|
|
13131
13764
|
"minStepsBetweenValues reserves a minimum stepped distance between range thumbs.",
|
|
13132
13765
|
"The initial normalized value is the native form-reset baseline and range values submit as repeated entries under the same name.",
|
|
13133
|
-
"Focused, filled, dirty, touched, dragging, valid, disabled, read-only, and orientation data hooks expose interaction state without changing the value contract."
|
|
13766
|
+
"Focused, filled, dirty, touched, dragging, valid, disabled, read-only, and orientation data hooks expose interaction state without changing the value contract.",
|
|
13767
|
+
"Explicit ticks define the only selectable snap points and may carry labels. Marks sit below a horizontal track, or beside a vertical track, with labels beyond the marks. Horizontal labels center on their marks and shift inward only when they reach the control edges. Without ticks, step=\"any\" permits smooth adjustment; ordinary stepped behavior remains available. Arrow keys traverse adjacent ticks and Home/End reach the available extremes."
|
|
13134
13768
|
],
|
|
13135
13769
|
"responsiveBehavior": [
|
|
13136
13770
|
"The visible label uses the same primary emphasized text-body-small recipe as Field at every density; the value uses the same primary metric without emphasis.",
|
|
13137
13771
|
"Horizontal Slider fills the width supplied by its parent; the parent chooses an appropriate readable track length.",
|
|
13138
13772
|
"Vertical Slider owns a token-based default length that may be overridden with --ds-slider-vertical-length in layout-specific compositions.",
|
|
13139
13773
|
"Use md in ordinary forms and sm or xs only when the surrounding control density uses the same recipe.",
|
|
13140
|
-
"Track thickness scales with density
|
|
13774
|
+
"Track thickness scales with density. The unfilled track has a neutral border, the filled range uses brand color, and the thumb uses the primary surface with subtle elevation.",
|
|
13141
13775
|
"Horizontal value direction is left-to-right; the design system does not author RTL-specific component behavior."
|
|
13142
13776
|
],
|
|
13143
13777
|
"frameworkCaveats": {
|
|
@@ -13149,7 +13783,10 @@
|
|
|
13149
13783
|
"Use DsSlider with a number or two-number value array and handle onDsChange and onDsCommit custom events."
|
|
13150
13784
|
],
|
|
13151
13785
|
"angular": [
|
|
13152
|
-
"Use DsSlider with
|
|
13786
|
+
"Use DsSlider with SelectValueAccessor for Angular Forms; it preserves either a number or a two-number array."
|
|
13787
|
+
],
|
|
13788
|
+
"vue": [
|
|
13789
|
+
"Use v-model for a number or a two-number array. Assign ticks through property binding."
|
|
13153
13790
|
]
|
|
13154
13791
|
},
|
|
13155
13792
|
"references": [
|
|
@@ -13291,13 +13928,17 @@
|
|
|
13291
13928
|
"required": false
|
|
13292
13929
|
},
|
|
13293
13930
|
"step": {
|
|
13294
|
-
"type": "number",
|
|
13931
|
+
"type": "number | 'any'",
|
|
13295
13932
|
"required": false
|
|
13296
13933
|
},
|
|
13297
13934
|
"thumbAlignment": {
|
|
13298
13935
|
"type": "SliderThumbAlignment",
|
|
13299
13936
|
"required": false
|
|
13300
13937
|
},
|
|
13938
|
+
"ticks": {
|
|
13939
|
+
"type": "SliderTick[]",
|
|
13940
|
+
"required": false
|
|
13941
|
+
},
|
|
13301
13942
|
"value": {
|
|
13302
13943
|
"type": "SliderValue",
|
|
13303
13944
|
"required": false
|
|
@@ -13929,7 +14570,7 @@
|
|
|
13929
14570
|
"pattern:menu-trigger"
|
|
13930
14571
|
],
|
|
13931
14572
|
"accessibility": [
|
|
13932
|
-
"The rendered structure uses a native table, caption, column headers, row groups, and data cells; keep the caption non-empty. The native caption remains visually hidden as the table's accessible name. When caption visibility is enabled, a 48px header bar renders as component chrome outside the data scrollport. It defaults to a presentational caption title that does not duplicate the accessible name. Application-owned labeled controls supplied through the single named header slot replace that fallback and share one horizontal caption overflow row with table-owned actions inside the component-owned 8px inset. Table caption buttons keep pressed interaction paint without physically scaling. When columnCustomizer is enabled, the table adds a trailing Customize control named Customize table. Its label uses regular weight and its resting foreground remains neutral when hidden or reordered columns differ from the catalog default. The control is icon-label at typical widths and the icon-only
|
|
14573
|
+
"The rendered structure uses a native table, caption, column headers, row groups, and data cells; keep the caption non-empty. The native caption remains visually hidden as the table's accessible name. When caption visibility is enabled, a 48px header bar renders as component chrome outside the data scrollport. It defaults to a presentational caption title that does not duplicate the accessible name. Application-owned labeled controls supplied through the single named header slot replace that fallback and share one horizontal caption overflow row with table-owned actions inside the component-owned 8px inset. Table caption buttons keep pressed interaction paint without physically scaling. When columnCustomizer is enabled, the table adds a trailing Customize control named Customize table. Its label uses regular weight and its resting foreground remains neutral when hidden or reordered columns differ from the catalog default. The control is icon-label at typical widths and the icon-only Customize menu button below 900px, where a tooltip preserves the Customize label. The always-icon-only table-variant control also exposes its label through a tooltip. Otherwise the header slot receives the complete content width.",
|
|
13933
14574
|
"The data-mode switcher is the shared Menu of the table's supported infinite, pagination, and virtual modes. It uses an Ellipses trigger. The switcher is the final caption-bar action; when the column customizer is also present, a decorative vertical divider separates the two controls. dataMode remains controlled, and the application responds to change intent by supplying the matching records, pagination state, loading behavior, and query consequences. Escape, dismissal, and selection return focus to the trigger.",
|
|
13934
14575
|
"The column customizer is the shared Menu of switch rows, not a table-owned dialog. Data columns can be shown, hidden, and reordered. Action columns and the selection checkbox never appear in the menu. The last remaining visible data column cannot be hidden, but it stays focusable so it can still be reordered. Escape and outside click restore focus to the trigger. Persistence stays in the application.",
|
|
13935
14576
|
"Sorting controls remain buttons inside column headers and expose the table's one controlled member-row sort through aria-sort. ds-data-sort in the toolbar trailing cluster is the matching menu of Data and Order sections; it emits the same dsSortChange shape so header clicks and menu choices stay in sync. Grouping never adds a second sort indicator or header control; ds-data-group controls the grouping data point and ascending or descending group-section order while the application supplies the resulting groups. Optional column help underlines the header label with the shared dotted decoration and shows ds-tooltip from that label; it does not add a second header control or replace the column name.",
|
|
@@ -13961,7 +14602,7 @@
|
|
|
13961
14602
|
],
|
|
13962
14603
|
"responsiveBehavior": [
|
|
13963
14604
|
"The table keeps native semantics at narrow widths and scrolls horizontally instead of transforming into cards.",
|
|
13964
|
-
"Inside the named ds-table container, caption Search retains its standard maximum width and flexes smaller only when the complete row needs space. Filter, Group, and Sort controls that opt into collapseLabel become icon-only below 900px by omitting their labels and chevrons. Active filtering or grouping promotes the visible icon to primary. Sort keeps resting secondary chrome because its selection lives in the menu and headers. Customize switches to the icon-only
|
|
14605
|
+
"Inside the named ds-table container, caption Search retains its standard maximum width and flexes smaller only when the complete row needs space. Filter, Group, and Sort controls that opt into collapseLabel become icon-only below 900px by omitting their labels and chevrons. Active filtering or grouping promotes the visible icon to primary. Sort keeps resting secondary chrome because its selection lives in the menu and headers. Customize switches to the icon-only Customize menu button below 900px and keeps its neutral resting foreground regardless of the controlled column configuration. The caption, frame, and footer remain within the table host at every width. The complete caption row scrolls together only when those compact controls no longer fit, while data columns scroll inside the viewport; table-owned trailing actions never stay pinned over the scrolling toolbar.",
|
|
13965
14606
|
"stickyHeader follows the active vertical scroll owner: a maxHeight, height, or fitViewport table keeps its native header and group sections inside one bounded table scrollport, while a document-flow table retains a semantic native header and renders a sticky control header whose columns follow the body's native inline scroll timeline. Consumers set --ds-table-sticky-header-offset when page chrome occupies an unbounded document scrollport edge. When the 48px table header bar is visible, it sticks at that external offset and the column header stacks immediately below it.",
|
|
13966
14607
|
"fitViewport uses viewportInsetBlockStart and viewportInsetBlockEnd to describe compact surrounding chrome and page gutters relative to the nearest vertical scroll owner. Before the table reaches that compact position, its host reserves the eventual height while the visible composition grows and vertical input remains owned by the outer page. Once settled, the internal table viewport becomes the vertical scroll owner. Bounded grouped tables use browser-native sticky section rows inside real block row-group boundaries, so scroll and resize do not run component JavaScript or trigger reactive section swaps. Document-flow tables retain the synchronized visual lane required by their separate horizontal scrollport.",
|
|
13967
14608
|
"Without maxHeight the table grows the document and automatic lazy loading observes the browser viewport. Horizontal scrolling chains vertical wheel and trackpad movement to the page instead of trapping it.",
|
|
@@ -14895,7 +15536,8 @@
|
|
|
14895
15536
|
"The default four visible rows can be changed with rows; rows is clamped to at least one.",
|
|
14896
15537
|
"Vertical resizing is enabled by default and can be disabled when the surrounding layout owns the field height.",
|
|
14897
15538
|
"Size changes typography and inset spacing without changing the authored row count.",
|
|
14898
|
-
"Border, focus, error, placeholder, inactive, hover, and pressed treatments follow the same shared recipes as Input. When hasBorder is false, supporting error copy insets to the text origin rather than the resting border box."
|
|
15539
|
+
"Border, focus, error, placeholder, inactive, hover, and pressed treatments follow the same shared recipes as Input. When hasBorder is false, supporting error copy insets to the text origin rather than the resting border box.",
|
|
15540
|
+
"Length constraints validate typed and programmatic text. Excess content is retained with an error by default; restrict mode enforces the maximum during editing. A character count appears below the field, right of supporting text or left when no supporting text exists."
|
|
14899
15541
|
],
|
|
14900
15542
|
"responsiveBehavior": [
|
|
14901
15543
|
"Textarea fills its parent by default and follows the width supplied by Field or the form layout.",
|
|
@@ -15024,6 +15666,18 @@
|
|
|
15024
15666
|
"type": "boolean",
|
|
15025
15667
|
"required": false
|
|
15026
15668
|
},
|
|
15669
|
+
"lengthBehavior": {
|
|
15670
|
+
"type": "'error' | 'restrict'",
|
|
15671
|
+
"required": false
|
|
15672
|
+
},
|
|
15673
|
+
"maxLength": {
|
|
15674
|
+
"type": "number | undefined",
|
|
15675
|
+
"required": false
|
|
15676
|
+
},
|
|
15677
|
+
"minLength": {
|
|
15678
|
+
"type": "number | undefined",
|
|
15679
|
+
"required": false
|
|
15680
|
+
},
|
|
15027
15681
|
"name": {
|
|
15028
15682
|
"type": "string | undefined",
|
|
15029
15683
|
"required": false
|
|
@@ -15052,6 +15706,10 @@
|
|
|
15052
15706
|
"type": "number",
|
|
15053
15707
|
"required": false
|
|
15054
15708
|
},
|
|
15709
|
+
"showCharacterCount": {
|
|
15710
|
+
"type": "boolean",
|
|
15711
|
+
"required": false
|
|
15712
|
+
},
|
|
15055
15713
|
"size": {
|
|
15056
15714
|
"type": "TextareaSize",
|
|
15057
15715
|
"required": false
|
|
@@ -15096,12 +15754,12 @@
|
|
|
15096
15754
|
"tag": "ds-time-picker",
|
|
15097
15755
|
"name": "time-picker",
|
|
15098
15756
|
"title": "TimePicker",
|
|
15099
|
-
"summary": "Bounded 12-hour clock lists for choosing hour, minute, and AM/PM, reused by form time fields.",
|
|
15757
|
+
"summary": "Bounded 12- or 24-hour clock lists for choosing hour, minute, and AM/PM, reused by form time fields.",
|
|
15100
15758
|
"intentStatus": "complete",
|
|
15101
15759
|
"intent": {
|
|
15102
15760
|
"audience": "general",
|
|
15103
15761
|
"status": "stable",
|
|
15104
|
-
"summary": "Bounded 12-hour clock lists for choosing hour, minute, and AM/PM, reused by form time fields.",
|
|
15762
|
+
"summary": "Bounded 12- or 24-hour clock lists for choosing hour, minute, and AM/PM, reused by form time fields.",
|
|
15105
15763
|
"useWhen": [
|
|
15106
15764
|
"A user picks a clock time from hour, minute, and AM/PM lists.",
|
|
15107
15765
|
"A time field needs 32px clock tiles that match calendar day geometry and the shared choice-list selected treatment."
|
|
@@ -15129,13 +15787,14 @@
|
|
|
15129
15787
|
],
|
|
15130
15788
|
"accessibility": [
|
|
15131
15789
|
"Hour, minute, and AM/PM are separate labelled listboxes without visible column headings. Each list keeps one tab stop on the selected option.",
|
|
15132
|
-
"Arrow keys move to the next or previous option and stop at the first and last values; they do not wrap. Home and End jump to those ends. Left and Right move between columns and stop at
|
|
15790
|
+
"Arrow keys move to the next or previous option and stop at the first and last values; they do not wrap. Home and End jump to those ends. Left and Right move between columns and stop at the first and last visible columns.",
|
|
15133
15791
|
"Inactive pickers disable every option. Optional min and max times disable combinations outside that inclusive bound."
|
|
15134
15792
|
],
|
|
15135
15793
|
"states": [
|
|
15136
15794
|
"Selected hour, minute, and period tiles use the shared interaction-fill selected wash and primary text. Resting tiles use secondary text on a transparent 32px square.",
|
|
15137
|
-
"Lists are finite.
|
|
15138
|
-
"An empty value highlights 12:00 AM so the lists have a resting selection without inventing a second empty state."
|
|
15795
|
+
"Lists are finite. Hours follow the selected clock format, minutes follow the step, and the twelve-hour period list has two values. Scrolling and keyboard movement stop at those ends instead of looping.",
|
|
15796
|
+
"An empty value highlights 12:00 AM so the lists have a resting selection without inventing a second empty state.",
|
|
15797
|
+
"The default twelve-hour presentation includes AM/PM. Twenty-four-hour presentation uses hours 00–23 and omits the period column; both keep HH:MM form values and the same time bounds."
|
|
15139
15798
|
],
|
|
15140
15799
|
"responsiveBehavior": [
|
|
15141
15800
|
"The three columns fill the width supplied by the owner. Tile size, 4px gaps, and the seven-tile list viewport are owned here; the owner supplies the popup or pane width."
|
|
@@ -15174,6 +15833,10 @@
|
|
|
15174
15833
|
"type": "boolean",
|
|
15175
15834
|
"required": false
|
|
15176
15835
|
},
|
|
15836
|
+
"hourFormat": {
|
|
15837
|
+
"type": "'12' | '24'",
|
|
15838
|
+
"required": false
|
|
15839
|
+
},
|
|
15177
15840
|
"isInactive": {
|
|
15178
15841
|
"type": "boolean",
|
|
15179
15842
|
"required": false
|