@ds-mo/ui 15.3.0 → 15.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.package-ready.json +1 -1
- package/dist/agent-patterns.json +1 -1
- package/dist/agent.json +506 -31
- package/dist/angular/ds-checkbox-group.d.ts +12 -0
- package/dist/angular/ds-checkbox-group.js +38 -0
- package/dist/angular/ds-checkbox.d.ts +1 -1
- package/dist/angular/ds-checkbox.js +3 -3
- package/dist/angular/ds-inline-banner-settings.d.ts +12 -0
- package/dist/angular/ds-inline-banner-settings.js +38 -0
- package/dist/angular/ds-radio.d.ts +1 -1
- package/dist/angular/ds-radio.js +3 -3
- package/dist/angular/ds-setting-row-checkbox.d.ts +12 -0
- package/dist/angular/ds-setting-row-checkbox.js +38 -0
- package/dist/angular/ds-setting-row-radio.d.ts +12 -0
- package/dist/angular/ds-setting-row-radio.js +38 -0
- package/dist/angular/ds-setting-row-toggle.d.ts +18 -0
- package/dist/angular/{ds-setting-row.js → ds-setting-row-toggle.js} +12 -12
- package/dist/angular/index.d.ts +1 -1
- package/dist/angular/index.js +5 -1
- package/dist/angular/proxies.d.ts +5 -1
- package/dist/angular/proxies.js +5 -1
- package/dist/components/ds-agent-activity.js +1 -1
- package/dist/components/ds-agent-questionnaire.js +1 -1
- package/dist/components/ds-agent-response.js +1 -1
- package/dist/components/ds-agent-response.js.map +1 -1
- package/dist/components/ds-agent-source-list.js +1 -1
- package/dist/components/ds-agent-tool-call.js +1 -1
- package/dist/components/ds-attachment-list.js +1 -1
- package/dist/components/ds-badge.js +1 -1
- package/dist/components/ds-banner.js +1 -1
- package/dist/components/ds-bar-action.js +1 -1
- package/dist/components/ds-bar-nav.js +1 -1
- package/dist/components/ds-bar-page-title.js +1 -1
- package/dist/components/ds-bar-title.js +1 -1
- package/dist/components/ds-bar-workflow.js +1 -1
- package/dist/components/ds-breadcrumb.js +1 -1
- package/dist/components/ds-button-filled.js +1 -1
- package/dist/components/ds-button-inverted.js +1 -1
- package/dist/components/ds-button-inverted.js.map +1 -1
- package/dist/components/ds-button-unfilled.js +1 -1
- package/dist/components/ds-calendar.js +1 -1
- package/dist/components/ds-card-action-center.js +1 -1
- package/dist/components/ds-card-action-center.js.map +1 -1
- package/dist/components/ds-card-chart.js +1 -1
- package/dist/components/ds-card-navigation.js +1 -1
- package/dist/components/ds-card-navigation.js.map +1 -1
- package/dist/components/ds-card-overview.js +1 -1
- package/dist/components/ds-card-overview.js.map +1 -1
- package/dist/components/ds-card-setting.js +1 -1
- package/dist/components/ds-card-setting.js.map +1 -1
- package/dist/components/ds-card-settings-scope.js +1 -1
- package/dist/components/ds-card-settings-scope.js.map +1 -1
- package/dist/components/ds-chart-legend.js +1 -1
- package/dist/components/ds-chart-legend.js.map +1 -1
- package/dist/components/ds-chart.js +1 -1
- package/dist/components/{ds-setting-row.d.ts → ds-checkbox-group.d.ts} +4 -4
- package/dist/components/ds-checkbox-group.js +2 -0
- package/dist/components/ds-checkbox-group.js.map +1 -0
- package/dist/components/ds-checkbox.js +1 -1
- package/dist/components/ds-chip.js +1 -1
- package/dist/components/ds-code-block.js +1 -1
- package/dist/components/ds-conversation-list-item.js +1 -1
- package/dist/components/ds-conversation-list-item.js.map +1 -1
- package/dist/components/ds-conversation-list-section.js +1 -1
- package/dist/components/ds-conversation-list.js +1 -1
- package/dist/components/ds-data-customize.js +1 -1
- package/dist/components/ds-data-filter.js +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-saved-views.js +1 -1
- package/dist/components/ds-data-search.js +1 -1
- package/dist/components/ds-data-search.js.map +1 -1
- package/dist/components/ds-data-sort.js +1 -1
- package/dist/components/ds-data-toolbar.js +1 -1
- package/dist/components/ds-divider.js +1 -1
- package/dist/components/ds-empty-state.js +1 -1
- package/dist/components/ds-field.js +1 -1
- package/dist/components/ds-filter-menu.js +1 -1
- package/dist/components/ds-inline-banner-settings.d.ts +11 -0
- package/dist/components/ds-inline-banner-settings.js +2 -0
- package/dist/components/ds-inline-banner-settings.js.map +1 -0
- package/dist/components/ds-input-date.js +1 -1
- package/dist/components/ds-input-date.js.map +1 -1
- package/dist/components/ds-input-time.js +1 -1
- package/dist/components/ds-input-time.js.map +1 -1
- package/dist/components/ds-input.js +1 -1
- package/dist/components/ds-map-cluster-marker.js +1 -1
- package/dist/components/ds-map-entity-marker.js +1 -1
- package/dist/components/ds-markdown.js +1 -1
- package/dist/components/ds-menu.js +1 -1
- package/dist/components/ds-message-actions.js +1 -1
- package/dist/components/ds-message-bubble.js +1 -1
- package/dist/components/ds-message-bubble.js.map +1 -1
- package/dist/components/ds-message-composer.js +1 -1
- package/dist/components/ds-message-composer.js.map +1 -1
- package/dist/components/ds-message-scroller.js +1 -1
- package/dist/components/ds-message.js +1 -1
- package/dist/components/ds-mobile-bar-nav.js +1 -1
- package/dist/components/ds-mobile-header.js +1 -1
- package/dist/components/ds-mobile-section-switcher.js +1 -1
- package/dist/components/ds-mobile-sheet-nav.js +1 -1
- package/dist/components/ds-modal.js +1 -1
- package/dist/components/ds-pagination.js +1 -1
- package/dist/components/ds-panel-nav.js +1 -1
- package/dist/components/ds-panel-sub-nav.js +1 -1
- package/dist/components/ds-panel-sub-nav.js.map +1 -1
- package/dist/components/ds-panel-tool-header.js +1 -1
- package/dist/components/ds-panel-tool-search.js +1 -1
- package/dist/components/ds-panel-tool-search.js.map +1 -1
- package/dist/components/ds-panel-tools.js +1 -1
- package/dist/components/ds-paper-texture.js +1 -1
- package/dist/components/ds-radio-tile.js +1 -1
- package/dist/components/ds-radio-tile.js.map +1 -1
- 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-scroll-overlay.js.map +1 -1
- package/dist/components/ds-select.js +1 -1
- package/dist/components/ds-setting-row-checkbox.d.ts +11 -0
- package/dist/components/ds-setting-row-checkbox.js +2 -0
- package/dist/components/ds-setting-row-checkbox.js.map +1 -0
- package/dist/components/ds-setting-row-radio.d.ts +11 -0
- package/dist/components/ds-setting-row-radio.js +2 -0
- package/dist/components/ds-setting-row-radio.js.map +1 -0
- package/dist/components/ds-setting-row-toggle.d.ts +11 -0
- package/dist/components/ds-setting-row-toggle.js +2 -0
- package/dist/components/ds-setting-row-toggle.js.map +1 -0
- package/dist/components/ds-shell-app.js +1 -1
- package/dist/components/ds-shell-app.js.map +1 -1
- package/dist/components/ds-shell-page.js +1 -1
- package/dist/components/ds-shell-tools.js +1 -1
- package/dist/components/ds-skeleton.js +1 -1
- package/dist/components/ds-slider.js +1 -1
- package/dist/components/ds-swatch-picker.js +1 -1
- package/dist/components/ds-switch.js +1 -1
- package/dist/components/ds-tab-group.js +1 -1
- package/dist/components/ds-table.js +1 -1
- package/dist/components/ds-table.js.map +1 -1
- package/dist/components/ds-tag.js +1 -1
- package/dist/components/ds-text.js +1 -1
- package/dist/components/ds-textarea.js +1 -1
- package/dist/components/ds-textarea.js.map +1 -1
- package/dist/components/ds-time-picker.js +1 -1
- package/dist/components/ds-toast.js +1 -1
- package/dist/components/ds-tooltip-chart.js +1 -1
- package/dist/components/ds-tooltip.js +1 -1
- package/dist/components/ds-typing-indicator.js +1 -1
- package/dist/components/p-7TVdPhGR.js +2 -0
- package/dist/components/{p-DHapI2sf.js.map → p-7TVdPhGR.js.map} +1 -1
- package/dist/components/{p-7V1AhetH.js → p-B0BQCVkq.js} +2 -2
- package/dist/components/{p-Co5MiPNa.js → p-B0EpvBDs.js} +2 -2
- package/dist/components/{p-DFkw6wrS.js → p-B39iJO8F.js} +2 -2
- package/dist/components/p-B9TM6FqC.js +2 -0
- package/dist/components/{p-p_MwknM3.js.map → p-B9TM6FqC.js.map} +1 -1
- package/dist/components/{p-AmT4GlhM.js → p-B9y6azEw.js} +2 -2
- package/dist/components/p-BDdlJZyL.js +2 -0
- package/dist/components/{p-cuZva5tl.js.map → p-BDdlJZyL.js.map} +1 -1
- package/dist/components/{p-CrL9wxZg.js → p-BERXvOCf.js} +2 -2
- package/dist/components/{p-AM_ht6Im.js → p-BFHpU-uU.js} +2 -2
- package/dist/components/{p-B-HOVYoH.js → p-BQspV5U7.js} +2 -2
- package/dist/components/p-BWSIw8AQ.js +2 -0
- package/dist/components/p-BWSIw8AQ.js.map +1 -0
- package/dist/components/p-BhjqYTiY.js +2 -0
- package/dist/components/p-BhjqYTiY.js.map +1 -0
- package/dist/components/{p-C_gJD8l3.js → p-Bk3poU91.js} +2 -2
- package/dist/components/{p-Gb-vTuXr.js → p-BnuNaXR2.js} +2 -2
- package/dist/components/p-BwdnVqAY.js +2 -0
- package/dist/components/{p-BHI4LcGK.js.map → p-BwdnVqAY.js.map} +1 -1
- package/dist/components/p-C4huuwed.js +2 -0
- package/dist/components/{p-tJaC01aE.js.map → p-C4huuwed.js.map} +1 -1
- package/dist/components/{p-BsM37Prt.js → p-C8V4lkVy.js} +2 -2
- package/dist/components/p-CJ1NnOEW.js +2 -0
- package/dist/components/p-CJ1NnOEW.js.map +1 -0
- package/dist/components/p-CPamUzaj.js +2 -0
- package/dist/components/{p-BSuMDPaV.js.map → p-CPamUzaj.js.map} +1 -1
- package/dist/components/{p-BU1B6NW8.js → p-CUDocY23.js} +2 -2
- package/dist/components/{p-BU1B6NW8.js.map → p-CUDocY23.js.map} +1 -1
- package/dist/components/p-CX6ZxUQT.js +2 -0
- package/dist/components/p-CX6ZxUQT.js.map +1 -0
- package/dist/components/{p-C-c8SJ00.js → p-CZNZTcYS.js} +2 -2
- package/dist/components/{p-DQPzqcYR.js → p-CbCN9ew9.js} +2 -2
- package/dist/components/p-CeXf9-X3.js.map +1 -1
- package/dist/components/p-Cgn-BORA.js +2 -0
- package/dist/components/p-Cgn-BORA.js.map +1 -0
- package/dist/components/{p-CzQ_JF6A.js → p-Co1rUdOR.js} +2 -2
- package/dist/components/p-Co1rUdOR.js.map +1 -0
- package/dist/components/{p-D0KD-Nr_.js → p-CwdRaJER.js} +2 -2
- package/dist/components/p-D6FRqNhN.js +2 -0
- package/dist/components/p-D6FRqNhN.js.map +1 -0
- package/dist/components/{p-Cihjy4WY.js → p-D8OWhnID.js} +2 -2
- package/dist/components/p-DCyJ3_PL.js +2 -0
- package/dist/components/{p-fYZK3zqM.js.map → p-DCyJ3_PL.js.map} +1 -1
- package/dist/components/{p-BXSHN1OK.js → p-DIQiHX0q.js} +2 -2
- package/dist/components/{p-z8L-YMi3.js → p-DJDbskZf.js} +2 -2
- package/dist/components/p-DRdoGSGX.js +2 -0
- package/dist/components/{p-DWmYCOKz.js.map → p-DRdoGSGX.js.map} +1 -1
- package/dist/components/{p-Bm3KWMe4.js → p-DSZPO06T.js} +2 -2
- package/dist/components/{p-C3-dcROG.js → p-DSmDyI2o.js} +2 -2
- package/dist/components/{p-DcrdyDRw.js → p-DVEx-Xg9.js} +2 -2
- package/dist/components/{p-Bu4OmhKK.js → p-DXk1eml1.js} +2 -2
- package/dist/components/{p-B7QEpaMe.js → p-DYQa1DVF.js} +2 -2
- package/dist/components/p-DYQa1DVF.js.map +1 -0
- package/dist/components/p-DYsE6HLk.js +2 -0
- package/dist/components/p-DYsE6HLk.js.map +1 -0
- package/dist/components/p-DebLYW7A.js +2 -0
- package/dist/components/p-DebLYW7A.js.map +1 -0
- package/dist/components/{p-Bh1Fx0aW.js → p-DmSnHVW6.js} +2 -2
- package/dist/components/p-Dnt5xUBD.js +2 -0
- package/dist/components/{p-C4VeD49U.js.map → p-Dnt5xUBD.js.map} +1 -1
- package/dist/components/p-Doa2blZT.js +2 -0
- package/dist/components/{p-CztB8Pbq.js.map → p-Doa2blZT.js.map} +1 -1
- package/dist/components/{p-CCpJT31M.js → p-Dyqd-cub.js} +2 -2
- package/dist/components/{p-CCpJT31M.js.map → p-Dyqd-cub.js.map} +1 -1
- package/dist/components/p-DzvTC27M.js +2 -0
- package/dist/components/p-DzvTC27M.js.map +1 -0
- package/dist/components/p-JBki_jyY.js +2 -0
- package/dist/components/{p-BugKaVWc.js.map → p-JBki_jyY.js.map} +1 -1
- package/dist/components/p-MOJmB6vX.js +2 -0
- package/dist/components/{p-iGNHXFZA.js.map → p-MOJmB6vX.js.map} +1 -1
- package/dist/components/{p-BYJtvRQm.js → p-UJMEz8_O.js} +2 -2
- package/dist/components/{p-Bo7GxFBh.js → p-_IqSPt5V.js} +2 -2
- package/dist/components/p-g0jsfEXz.js +2 -0
- package/dist/components/{p-Fkkd3gMB.js.map → p-g0jsfEXz.js.map} +1 -1
- package/dist/components/{p-lADW-TI8.js → p-pp1IQN4Z.js} +2 -2
- package/dist/docs/components.json +701 -13
- package/dist/lib/shell/index.js +1 -1
- package/dist/lib/shell/index.js.map +1 -1
- package/dist/lint/index.js +1 -1
- package/dist/mcp-data/registry/agent-activity.json +1 -1
- package/dist/mcp-data/registry/agent-questionnaire.json +1 -1
- package/dist/mcp-data/registry/agent-response.json +2 -2
- package/dist/mcp-data/registry/agent-source-list.json +1 -1
- package/dist/mcp-data/registry/agent-tool-call.json +1 -1
- package/dist/mcp-data/registry/attachment-list.json +1 -1
- package/dist/mcp-data/registry/avatar.json +1 -1
- package/dist/mcp-data/registry/badge.json +1 -1
- package/dist/mcp-data/registry/banner.json +1 -1
- package/dist/mcp-data/registry/bar-action.json +1 -1
- package/dist/mcp-data/registry/bar-nav.json +4 -4
- package/dist/mcp-data/registry/bar-page-title.json +3 -3
- package/dist/mcp-data/registry/bar-title.json +3 -3
- package/dist/mcp-data/registry/bar-workflow.json +1 -1
- package/dist/mcp-data/registry/breadcrumb.json +1 -1
- package/dist/mcp-data/registry/button-filled.json +1 -1
- package/dist/mcp-data/registry/button-inverted.json +1 -1
- package/dist/mcp-data/registry/button-unfilled.json +8 -8
- package/dist/mcp-data/registry/calendar.json +1 -1
- package/dist/mcp-data/registry/card-action-center.json +1 -1
- package/dist/mcp-data/registry/card-chart.json +1 -1
- package/dist/mcp-data/registry/card-navigation.json +1 -1
- package/dist/mcp-data/registry/card-overview.json +1 -1
- package/dist/mcp-data/registry/card-setting.json +22 -8
- package/dist/mcp-data/registry/card-settings-scope.json +1 -1
- package/dist/mcp-data/registry/chart-legend.json +1 -1
- package/dist/mcp-data/registry/chart.json +1 -1
- package/dist/mcp-data/registry/checkbox-group.json +246 -0
- package/dist/mcp-data/registry/checkbox.json +25 -5
- package/dist/mcp-data/registry/chip.json +1 -1
- package/dist/mcp-data/registry/code-block.json +1 -1
- package/dist/mcp-data/registry/conversation-list-item.json +1 -1
- package/dist/mcp-data/registry/conversation-list-section.json +1 -1
- package/dist/mcp-data/registry/conversation-list.json +1 -1
- package/dist/mcp-data/registry/data-customize.json +1 -1
- package/dist/mcp-data/registry/data-filter.json +1 -1
- package/dist/mcp-data/registry/data-group.json +1 -1
- package/dist/mcp-data/registry/data-preferences.json +1 -1
- package/dist/mcp-data/registry/data-saved-views.json +1 -1
- package/dist/mcp-data/registry/data-search.json +1 -1
- package/dist/mcp-data/registry/data-sort.json +1 -1
- package/dist/mcp-data/registry/data-toolbar.json +1 -1
- package/dist/mcp-data/registry/divider.json +1 -1
- package/dist/mcp-data/registry/empty-state.json +1 -1
- package/dist/mcp-data/registry/field.json +1 -1
- package/dist/mcp-data/registry/filter-menu.json +1 -1
- package/dist/mcp-data/registry/icon.json +1 -1
- package/dist/mcp-data/registry/inline-banner-settings.json +175 -0
- package/dist/mcp-data/registry/input-date.json +1 -1
- package/dist/mcp-data/registry/input-time.json +1 -1
- package/dist/mcp-data/registry/input.json +1 -1
- package/dist/mcp-data/registry/loader.json +1 -1
- package/dist/mcp-data/registry/map-cluster-marker.json +1 -1
- package/dist/mcp-data/registry/map-entity-marker.json +1 -1
- package/dist/mcp-data/registry/markdown.json +1 -1
- package/dist/mcp-data/registry/menu.json +1 -1
- package/dist/mcp-data/registry/message-actions.json +1 -1
- package/dist/mcp-data/registry/message-bubble.json +4 -4
- package/dist/mcp-data/registry/message-composer.json +6 -6
- package/dist/mcp-data/registry/message-scroller.json +1 -1
- package/dist/mcp-data/registry/message.json +2 -2
- package/dist/mcp-data/registry/mobile-bar-nav.json +1 -1
- package/dist/mcp-data/registry/mobile-header.json +1 -1
- package/dist/mcp-data/registry/mobile-section-switcher.json +1 -1
- package/dist/mcp-data/registry/mobile-sheet-nav.json +1 -1
- package/dist/mcp-data/registry/modal.json +1 -1
- package/dist/mcp-data/registry/pagination.json +1 -1
- package/dist/mcp-data/registry/panel-nav.json +3 -3
- package/dist/mcp-data/registry/panel-sub-nav.json +1 -1
- package/dist/mcp-data/registry/panel-tool-header.json +3 -3
- package/dist/mcp-data/registry/panel-tool-search.json +2 -2
- package/dist/mcp-data/registry/panel-tools.json +3 -3
- package/dist/mcp-data/registry/paper-texture.json +1 -1
- package/dist/mcp-data/registry/radio-tile.json +5 -4
- package/dist/mcp-data/registry/radio.json +50 -8
- package/dist/mcp-data/registry/registry.json +518 -31
- package/dist/mcp-data/registry/score.json +1 -1
- package/dist/mcp-data/registry/scroll-overlay.json +1 -1
- package/dist/mcp-data/registry/select.json +1 -1
- package/dist/mcp-data/registry/setting-row-checkbox.json +197 -0
- package/dist/mcp-data/registry/setting-row-radio.json +196 -0
- package/dist/mcp-data/registry/{setting-row.json → setting-row-toggle.json} +45 -25
- package/dist/mcp-data/registry/shell-app.json +3 -3
- package/dist/mcp-data/registry/shell-page.json +1 -1
- package/dist/mcp-data/registry/shell-tools.json +1 -1
- package/dist/mcp-data/registry/skeleton.json +1 -1
- package/dist/mcp-data/registry/slider.json +1 -1
- package/dist/mcp-data/registry/swatch-picker.json +1 -1
- package/dist/mcp-data/registry/switch.json +3 -3
- package/dist/mcp-data/registry/tab-group.json +1 -1
- package/dist/mcp-data/registry/table.json +1 -1
- package/dist/mcp-data/registry/tag.json +1 -1
- package/dist/mcp-data/registry/text.json +1 -1
- package/dist/mcp-data/registry/textarea.json +1 -1
- package/dist/mcp-data/registry/time-picker.json +1 -1
- package/dist/mcp-data/registry/toast.json +1 -1
- package/dist/mcp-data/registry/tooltip-chart.json +1 -1
- package/dist/mcp-data/registry/tooltip.json +1 -1
- package/dist/mcp-data/registry/typing-indicator.json +1 -1
- package/dist/react/components.d.ts +5 -1
- package/dist/react/components.js +5 -1
- package/dist/react/ds-checkbox-group.d.ts +9 -0
- package/dist/react/ds-checkbox-group.js +12 -0
- package/dist/react/ds-inline-banner-settings.d.ts +9 -0
- package/dist/react/ds-inline-banner-settings.js +12 -0
- package/dist/react/ds-setting-row-checkbox.d.ts +9 -0
- package/dist/react/ds-setting-row-checkbox.js +12 -0
- package/dist/react/ds-setting-row-radio.d.ts +9 -0
- package/dist/react/ds-setting-row-radio.js +12 -0
- package/dist/react/ds-setting-row-toggle.d.ts +12 -0
- package/dist/react/ds-setting-row-toggle.js +12 -0
- package/dist/types/components/BarPageTitle/BarPageTitle.d.ts +2 -0
- package/dist/types/components/BarTitle/bar-title-action-chrome.d.ts +4 -0
- package/dist/types/components/ButtonUnfilled/ButtonUnfilled.d.ts +5 -2
- package/dist/types/components/CardSetting/CardSetting.d.ts +12 -2
- package/dist/types/components/Checkbox/Checkbox.d.ts +2 -0
- package/dist/types/components/CheckboxGroup/CheckboxGroup.d.ts +20 -0
- package/dist/types/components/InlineBannerSettings/InlineBannerSettings.d.ts +6 -0
- package/dist/types/components/Radio/Radio.d.ts +8 -0
- package/dist/types/components/SettingRowCheckbox/SettingRowCheckbox.d.ts +19 -0
- package/dist/types/components/SettingRowRadio/SettingRowRadio.d.ts +19 -0
- package/dist/types/components/{SettingRow/SettingRow.d.ts → SettingRowToggle/SettingRowToggle.d.ts} +5 -2
- package/dist/types/components/Switch/Switch.d.ts +7 -0
- package/dist/types/components.d.ts +290 -20
- package/dist/vue/components.d.ts +5 -1
- package/dist/vue/components.js +5 -1
- package/dist/vue/{ds-setting-row.d.ts → ds-checkbox-group.d.ts} +1 -1
- package/dist/vue/ds-checkbox-group.js +12 -0
- package/dist/vue/ds-checkbox.js +1 -0
- package/dist/vue/ds-inline-banner-settings.d.ts +3 -0
- package/dist/vue/ds-inline-banner-settings.js +8 -0
- package/dist/vue/ds-radio.js +2 -0
- package/dist/vue/ds-setting-row-checkbox.d.ts +3 -0
- package/dist/vue/ds-setting-row-checkbox.js +11 -0
- package/dist/vue/ds-setting-row-radio.d.ts +3 -0
- package/dist/vue/ds-setting-row-radio.js +11 -0
- package/dist/vue/ds-setting-row-toggle.d.ts +3 -0
- package/dist/vue/ds-setting-row-toggle.js +15 -0
- package/package.json +3 -3
- package/dist/angular/ds-setting-row.d.ts +0 -18
- package/dist/components/ds-setting-row.js +0 -2
- package/dist/components/ds-setting-row.js.map +0 -1
- package/dist/components/p-3bsypMrY.js +0 -2
- package/dist/components/p-3bsypMrY.js.map +0 -1
- package/dist/components/p-B7QEpaMe.js.map +0 -1
- package/dist/components/p-B7bXN-vf.js +0 -2
- package/dist/components/p-B7bXN-vf.js.map +0 -1
- package/dist/components/p-BHI4LcGK.js +0 -2
- package/dist/components/p-BSuMDPaV.js +0 -2
- package/dist/components/p-BVwg5XVz.js +0 -2
- package/dist/components/p-BVwg5XVz.js.map +0 -1
- package/dist/components/p-BugKaVWc.js +0 -2
- package/dist/components/p-C4VeD49U.js +0 -2
- package/dist/components/p-CI7c9kp-.js +0 -2
- package/dist/components/p-CI7c9kp-.js.map +0 -1
- package/dist/components/p-CJD0kLeV.js +0 -2
- package/dist/components/p-CJD0kLeV.js.map +0 -1
- package/dist/components/p-Cc3ZUQlJ.js +0 -2
- package/dist/components/p-Cc3ZUQlJ.js.map +0 -1
- package/dist/components/p-CzQ_JF6A.js.map +0 -1
- package/dist/components/p-CztB8Pbq.js +0 -2
- package/dist/components/p-DCLRAH5i.js +0 -2
- package/dist/components/p-DCLRAH5i.js.map +0 -1
- package/dist/components/p-DHapI2sf.js +0 -2
- package/dist/components/p-DWmYCOKz.js +0 -2
- package/dist/components/p-DX2RyZba.js +0 -2
- package/dist/components/p-DX2RyZba.js.map +0 -1
- package/dist/components/p-Dcn1eDVt.js +0 -2
- package/dist/components/p-Dcn1eDVt.js.map +0 -1
- package/dist/components/p-Fkkd3gMB.js +0 -2
- package/dist/components/p-cuZva5tl.js +0 -2
- package/dist/components/p-fYZK3zqM.js +0 -2
- package/dist/components/p-iGNHXFZA.js +0 -2
- package/dist/components/p-p_MwknM3.js +0 -2
- package/dist/components/p-tJaC01aE.js +0 -2
- package/dist/react/ds-setting-row.d.ts +0 -12
- package/dist/react/ds-setting-row.js +0 -12
- package/dist/vue/ds-setting-row.js +0 -14
- /package/dist/components/{p-7V1AhetH.js.map → p-B0BQCVkq.js.map} +0 -0
- /package/dist/components/{p-Co5MiPNa.js.map → p-B0EpvBDs.js.map} +0 -0
- /package/dist/components/{p-DFkw6wrS.js.map → p-B39iJO8F.js.map} +0 -0
- /package/dist/components/{p-AmT4GlhM.js.map → p-B9y6azEw.js.map} +0 -0
- /package/dist/components/{p-CrL9wxZg.js.map → p-BERXvOCf.js.map} +0 -0
- /package/dist/components/{p-AM_ht6Im.js.map → p-BFHpU-uU.js.map} +0 -0
- /package/dist/components/{p-B-HOVYoH.js.map → p-BQspV5U7.js.map} +0 -0
- /package/dist/components/{p-C_gJD8l3.js.map → p-Bk3poU91.js.map} +0 -0
- /package/dist/components/{p-Gb-vTuXr.js.map → p-BnuNaXR2.js.map} +0 -0
- /package/dist/components/{p-BsM37Prt.js.map → p-C8V4lkVy.js.map} +0 -0
- /package/dist/components/{p-C-c8SJ00.js.map → p-CZNZTcYS.js.map} +0 -0
- /package/dist/components/{p-DQPzqcYR.js.map → p-CbCN9ew9.js.map} +0 -0
- /package/dist/components/{p-D0KD-Nr_.js.map → p-CwdRaJER.js.map} +0 -0
- /package/dist/components/{p-Cihjy4WY.js.map → p-D8OWhnID.js.map} +0 -0
- /package/dist/components/{p-BXSHN1OK.js.map → p-DIQiHX0q.js.map} +0 -0
- /package/dist/components/{p-z8L-YMi3.js.map → p-DJDbskZf.js.map} +0 -0
- /package/dist/components/{p-Bm3KWMe4.js.map → p-DSZPO06T.js.map} +0 -0
- /package/dist/components/{p-C3-dcROG.js.map → p-DSmDyI2o.js.map} +0 -0
- /package/dist/components/{p-DcrdyDRw.js.map → p-DVEx-Xg9.js.map} +0 -0
- /package/dist/components/{p-Bu4OmhKK.js.map → p-DXk1eml1.js.map} +0 -0
- /package/dist/components/{p-Bh1Fx0aW.js.map → p-DmSnHVW6.js.map} +0 -0
- /package/dist/components/{p-BYJtvRQm.js.map → p-UJMEz8_O.js.map} +0 -0
- /package/dist/components/{p-Bo7GxFBh.js.map → p-_IqSPt5V.js.map} +0 -0
- /package/dist/components/{p-lADW-TI8.js.map → p-pp1IQN4Z.js.map} +0 -0
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
+
"name": "inline-banner-settings",
|
|
4
|
+
"title": "InlineBannerSettings",
|
|
5
|
+
"description": "Compact non-interactive informational copy row for settings cards.",
|
|
6
|
+
"type": "registry:ui",
|
|
7
|
+
"meta": {
|
|
8
|
+
"library": "@ds-mo/ui",
|
|
9
|
+
"distribution": "npm",
|
|
10
|
+
"storybook": "https://zainadeel.github.io/compomo/?path=/story/inline-banner-settings",
|
|
11
|
+
"source": "src/wc/components/InlineBannerSettings/InlineBannerSettings.tsx",
|
|
12
|
+
"intentStatus": "complete",
|
|
13
|
+
"intent": {
|
|
14
|
+
"audience": "general",
|
|
15
|
+
"status": "stable",
|
|
16
|
+
"summary": "Compact non-interactive informational copy row for settings cards.",
|
|
17
|
+
"useWhen": [
|
|
18
|
+
"A settings card needs persistent informational copy above its content.",
|
|
19
|
+
"The message should remain visible in both read-only and editing presentations of the settings card.",
|
|
20
|
+
"The message needs body-small typography, compact spacing, and a single tertiary bottom boundary."
|
|
21
|
+
],
|
|
22
|
+
"avoidWhen": [
|
|
23
|
+
"The message belongs in general bounded content outside a settings card; reserve the general inline-banner component for that use case.",
|
|
24
|
+
"The message is application-wide or needs dismissal, actions, or announcement urgency; use Banner.",
|
|
25
|
+
"The message is transient or follows a completed action; use Toast."
|
|
26
|
+
],
|
|
27
|
+
"alternatives": [
|
|
28
|
+
{
|
|
29
|
+
"when": "A persistent application-wide condition needs optional actions or dismissal.",
|
|
30
|
+
"component": "component:ds-banner",
|
|
31
|
+
"reason": "Banner owns shell-level messaging, actions, dismissal, and announcement behavior."
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"when": "A field needs supporting or validation copy tied to its control.",
|
|
35
|
+
"component": "component:ds-field",
|
|
36
|
+
"reason": "Field owns the control relationship and supporting-message semantics."
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"commonlyComposedWith": [
|
|
40
|
+
"component:ds-card-setting",
|
|
41
|
+
"component:ds-text"
|
|
42
|
+
],
|
|
43
|
+
"accessibility": [
|
|
44
|
+
"Keep the description concise and authored; InlineBannerSettings does not transform, truncate, or announce the copy.",
|
|
45
|
+
"Use InlineBannerSettings for static context. Applications must choose a live-region component when a dynamic announcement is required.",
|
|
46
|
+
"The informational copy remains plain text and has no interactive controls or dismissal affordance."
|
|
47
|
+
],
|
|
48
|
+
"states": [
|
|
49
|
+
"The description renders verbatim in every state in which the owning settings card projects the component.",
|
|
50
|
+
"The component has no internal visibility, editing, or dismissal state; the owning settings card controls whether it is present.",
|
|
51
|
+
"The content height is intrinsic: the banner contributes 8px block padding and its inner content container contributes 4px block padding. A single body-small line is 24px inside that container (4px + 16px line-height + 4px), followed by the tertiary bottom boundary."
|
|
52
|
+
],
|
|
53
|
+
"responsiveBehavior": [
|
|
54
|
+
"The component fills the available inline size and lets body-small copy wrap naturally.",
|
|
55
|
+
"The effective inline inset remains 16px: 8px banner padding, 6px inner content padding, and 2px text-side padding."
|
|
56
|
+
],
|
|
57
|
+
"frameworkCaveats": {
|
|
58
|
+
"customElements": [
|
|
59
|
+
"Pass the complete authored message through description, assign slot=\"banner\" on CardSetting, and do not apply a CSS casing transform or mutate the text for presentation."
|
|
60
|
+
],
|
|
61
|
+
"react": [
|
|
62
|
+
"Pass the complete authored message through the description prop, set slot=\"banner\" on CardSetting, and keep the component mounted for every settings-card state that needs the context."
|
|
63
|
+
],
|
|
64
|
+
"angular": [
|
|
65
|
+
"Bind [description] from the settings card's stable copy source and project the component into CardSetting's banner slot for every state that needs the context."
|
|
66
|
+
]
|
|
67
|
+
},
|
|
68
|
+
"references": [
|
|
69
|
+
{
|
|
70
|
+
"label": "Settings inline banner examples",
|
|
71
|
+
"path": "src/wc/components/InlineBannerSettings/InlineBannerSettings.stories.ts"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"label": "Rendered geometry coverage",
|
|
75
|
+
"path": "tests/e2e/inline-banner-settings.spec.ts"
|
|
76
|
+
}
|
|
77
|
+
],
|
|
78
|
+
"styling": {
|
|
79
|
+
"rationale": "The component owns only the compact settings informational row recipe; its card owns the surrounding surface and layout.",
|
|
80
|
+
"protected": [
|
|
81
|
+
{
|
|
82
|
+
"properties": [
|
|
83
|
+
"border-bottom",
|
|
84
|
+
"color",
|
|
85
|
+
"padding"
|
|
86
|
+
],
|
|
87
|
+
"reason": "The component owns the readable informational row treatment and keeps its spacing consistent across settings cards.",
|
|
88
|
+
"props": []
|
|
89
|
+
}
|
|
90
|
+
],
|
|
91
|
+
"customProperties": []
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
"api": {
|
|
95
|
+
"props": {
|
|
96
|
+
"description": {
|
|
97
|
+
"type": "string",
|
|
98
|
+
"resolvedType": "string",
|
|
99
|
+
"attribute": "description",
|
|
100
|
+
"required": true,
|
|
101
|
+
"mutable": false,
|
|
102
|
+
"description": "Authored informational copy rendered without transformation."
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
"events": [],
|
|
106
|
+
"methods": [],
|
|
107
|
+
"slots": []
|
|
108
|
+
},
|
|
109
|
+
"props": {
|
|
110
|
+
"description": {
|
|
111
|
+
"type": "string",
|
|
112
|
+
"resolvedType": "string",
|
|
113
|
+
"attribute": "description",
|
|
114
|
+
"required": true,
|
|
115
|
+
"mutable": false,
|
|
116
|
+
"description": "Authored informational copy rendered without transformation."
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
"events": [],
|
|
120
|
+
"methods": [],
|
|
121
|
+
"slots": [],
|
|
122
|
+
"exports": {
|
|
123
|
+
"customElement": "ds-inline-banner-settings",
|
|
124
|
+
"react": "DsInlineBannerSettings",
|
|
125
|
+
"vue": "DsInlineBannerSettings",
|
|
126
|
+
"angular": "DsInlineBannerSettings"
|
|
127
|
+
},
|
|
128
|
+
"consumption": {
|
|
129
|
+
"install": "npm install @ds-mo/ui @ds-mo/tokens @ds-mo/icons",
|
|
130
|
+
"cssSetup": "import '@ds-mo/tokens';\nimport '@ds-mo/tokens/reset';\nimport '@ds-mo/tokens/globals';",
|
|
131
|
+
"customElements": {
|
|
132
|
+
"import": "import '@ds-mo/ui/dist/components/ds-inline-banner-settings.js';",
|
|
133
|
+
"example": "<ds-inline-banner-settings></ds-inline-banner-settings>"
|
|
134
|
+
},
|
|
135
|
+
"react": {
|
|
136
|
+
"import": "import { DsInlineBannerSettings } from '@ds-mo/ui/react';",
|
|
137
|
+
"example": "<DsInlineBannerSettings />"
|
|
138
|
+
},
|
|
139
|
+
"vue": {
|
|
140
|
+
"import": "import { DsInlineBannerSettings } from '@ds-mo/ui/vue';",
|
|
141
|
+
"example": "<DsInlineBannerSettings />"
|
|
142
|
+
},
|
|
143
|
+
"angular": {
|
|
144
|
+
"import": "import { DsInlineBannerSettings } from '@ds-mo/ui/angular/ds-inline-banner-settings';",
|
|
145
|
+
"example": "<ds-inline-banner-settings></ds-inline-banner-settings>"
|
|
146
|
+
},
|
|
147
|
+
"peerDependencies": {
|
|
148
|
+
"required": [
|
|
149
|
+
"@ds-mo/tokens ^6.6.1",
|
|
150
|
+
"@ds-mo/icons ^8.1.1"
|
|
151
|
+
],
|
|
152
|
+
"frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
"dependencies": [
|
|
157
|
+
"@ds-mo/ui",
|
|
158
|
+
"@ds-mo/tokens"
|
|
159
|
+
],
|
|
160
|
+
"registryDependencies": [
|
|
161
|
+
"text"
|
|
162
|
+
],
|
|
163
|
+
"files": [
|
|
164
|
+
{
|
|
165
|
+
"path": "src/wc/components/InlineBannerSettings/InlineBannerSettings.css",
|
|
166
|
+
"content": "@import '../../utils/forced-colors.css';\n\n:host {\n display: block;\n box-sizing: border-box;\n min-width: 0;\n padding: var(--dimension-space-100);\n border-block-end: var(--dimension-stroke-width-012) solid var(--color-border-tertiary);\n}\n\n.inline-banner-settings__content {\n padding-block: var(--dimension-space-050);\n padding-inline: var(--dimension-space-075);\n}\n\nds-text.inline-banner-settings__description {\n overflow-wrap: anywhere;\n padding-inline: var(--dimension-space-025);\n}\n\n@media (forced-colors: active) {\n :host {\n border-block-end-color: var(--ds-forced-color-content);\n }\n}\n",
|
|
167
|
+
"type": "registry:ui"
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"path": "src/wc/components/InlineBannerSettings/InlineBannerSettings.tsx",
|
|
171
|
+
"content": "import { Component, h, Host, Prop } from '@stencil/core';\n\n@Component({\n tag: 'ds-inline-banner-settings',\n styleUrl: 'InlineBannerSettings.css',\n scoped: true,\n})\nexport class InlineBannerSettings {\n /** Authored informational copy rendered without transformation. */\n @Prop() description!: string;\n\n render() {\n return (\n <Host>\n {/* eslint-disable-next-line compomo/prefer-direct-ds-text -- This structural layer owns the banner's inner padding separately from the ds-text balance padding. */}\n <div class=\"inline-banner-settings__content\">\n <ds-text\n class=\"inline-banner-settings__description\"\n as=\"p\"\n variant=\"text-body-small\"\n color=\"secondary\"\n >\n {this.description}\n </ds-text>\n </div>\n </Host>\n );\n }\n}\n",
|
|
172
|
+
"type": "registry:ui"
|
|
173
|
+
}
|
|
174
|
+
]
|
|
175
|
+
}
|
|
@@ -1037,7 +1037,7 @@
|
|
|
1037
1037
|
"complexPropertyNote": "Assign these non-primitive values as JavaScript properties: suggestions, tokens.",
|
|
1038
1038
|
"peerDependencies": {
|
|
1039
1039
|
"required": [
|
|
1040
|
-
"@ds-mo/tokens ^6.
|
|
1040
|
+
"@ds-mo/tokens ^6.6.1",
|
|
1041
1041
|
"@ds-mo/icons ^8.1.1"
|
|
1042
1042
|
],
|
|
1043
1043
|
"frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
|
|
@@ -563,7 +563,7 @@
|
|
|
563
563
|
"complexPropertyNote": "Assign these non-primitive values as JavaScript properties: anchor, boundary, items, sections.",
|
|
564
564
|
"peerDependencies": {
|
|
565
565
|
"required": [
|
|
566
|
-
"@ds-mo/tokens ^6.
|
|
566
|
+
"@ds-mo/tokens ^6.6.1",
|
|
567
567
|
"@ds-mo/icons ^8.1.1"
|
|
568
568
|
],
|
|
569
569
|
"frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
|
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
"Surface styling does not add semantics; failed delivery belongs in Message metadata below the unchanged bubble rather than in an error bubble treatment."
|
|
34
34
|
],
|
|
35
35
|
"states": [
|
|
36
|
-
"The user variant represents user-sent copy in agent and person-to-person channels and uses
|
|
37
|
-
"The received variant represents ordinary incoming person-to-person copy.",
|
|
36
|
+
"The user variant represents user-sent copy in agent and person-to-person channels, uses primary foreground, and uses the Chrome primary background so body-medium copy meets contrast on that surface.",
|
|
37
|
+
"The received variant represents ordinary incoming person-to-person copy, uses secondary foreground, and uses the Chrome secondary background.",
|
|
38
38
|
"Typing and rich agent output are not MessageBubble variants."
|
|
39
39
|
],
|
|
40
40
|
"responsiveBehavior": [
|
|
@@ -127,7 +127,7 @@
|
|
|
127
127
|
},
|
|
128
128
|
"peerDependencies": {
|
|
129
129
|
"required": [
|
|
130
|
-
"@ds-mo/tokens ^6.
|
|
130
|
+
"@ds-mo/tokens ^6.6.1",
|
|
131
131
|
"@ds-mo/icons ^8.1.1"
|
|
132
132
|
],
|
|
133
133
|
"frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
"files": [
|
|
143
143
|
{
|
|
144
144
|
"path": "src/wc/components/MessageBubble/MessageBubble.css",
|
|
145
|
-
"content": ":host {\n display: inline-flex;\n max-width: 80%;\n box-sizing: border-box;\n -webkit-user-select: text;\n user-select: text;\n}\n\n.message-bubble {\n min-width: 0;\n padding-block: var(--dimension-space-100);\n padding-inline: calc(var(--dimension-space-100) + var(--dimension-space-025));\n border-radius: var(--dimension-radius-
|
|
145
|
+
"content": ":host {\n display: inline-flex;\n max-width: 80%;\n box-sizing: border-box;\n -webkit-user-select: text;\n user-select: text;\n}\n\n.message-bubble {\n min-width: 0;\n padding-block: var(--dimension-space-100);\n padding-inline: calc(var(--dimension-space-100) + var(--dimension-space-025));\n border-radius: var(--dimension-radius-100);\n background: var(--color-chrome-background-secondary);\n color: var(--color-foreground-secondary);\n font-family: var(--typography-font-family-ui);\n font-size: var(--typography-fontsize-md);\n line-height: var(--typography-lineheight-md);\n font-weight: var(--typography-weight-regular);\n letter-spacing: var(--typography-letterspacing-negative-half);\n box-sizing: border-box;\n overflow-wrap: anywhere;\n}\n\n:host(.message-bubble--user) .message-bubble {\n background: var(--color-chrome-background-primary);\n color: var(--color-foreground-primary);\n}\n\n@media (max-width: 767px) {\n .message-bubble {\n background: var(--color-background-secondary);\n }\n\n :host(.message-bubble--user) .message-bubble {\n background: var(--color-background-faint-neutral);\n }\n}\n",
|
|
146
146
|
"type": "registry:ui"
|
|
147
147
|
},
|
|
148
148
|
{
|
|
@@ -37,10 +37,10 @@
|
|
|
37
37
|
"states": [
|
|
38
38
|
"The owner controls draft value and transport state; the composer emits intent without performing transport.",
|
|
39
39
|
"Error status never clears or disables the draft; the application supplies recovery actions through error-actions and owns retry semantics. The negative support surface appears above and attached to the composer box, within the component's measured ownership.",
|
|
40
|
-
"Use the tools slot for leading actions such as add and the actions slot for trailing actions such as dictation; the built-in submit or stop action remains last with an 8px gap from the preceding action.
|
|
41
|
-
"The composer surface uses the
|
|
40
|
+
"Use the tools slot for leading actions such as add and the actions slot for trailing actions such as dictation; the built-in submit or stop action remains last with an 8px gap from the preceding action. The built-in and application-provided composer buttons use the standard rounded control treatment, and the application supplies tooltips for slotted icon actions.",
|
|
41
|
+
"The composer surface uses the 4px --dimension-radius-050 token.",
|
|
42
42
|
"Mouse or keyboard focus on the textarea gives the complete composer surface the same bold-brand inset stroke width and color as an active Input; the native textarea never draws a separate outline.",
|
|
43
|
-
"The empty or otherwise inactive submit action is a disabled bordered ButtonUnfilled. Ready submit actions use submitIntent, while the streaming stop action remains a bold-brand ButtonFilled.",
|
|
43
|
+
"The empty or otherwise inactive submit action is a disabled bordered, rounded ButtonUnfilled. Ready submit actions use submitIntent and the rounded control treatment, while the streaming stop action remains a rounded bold-brand ButtonFilled.",
|
|
44
44
|
"The attached error unit keeps a real boundary in forced colors and lets message text and application-owned recovery actions wrap at narrow widths."
|
|
45
45
|
],
|
|
46
46
|
"responsiveBehavior": [
|
|
@@ -285,7 +285,7 @@
|
|
|
285
285
|
},
|
|
286
286
|
"peerDependencies": {
|
|
287
287
|
"required": [
|
|
288
|
-
"@ds-mo/tokens ^6.
|
|
288
|
+
"@ds-mo/tokens ^6.6.1",
|
|
289
289
|
"@ds-mo/icons ^8.1.1"
|
|
290
290
|
],
|
|
291
291
|
"frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
|
|
@@ -307,12 +307,12 @@
|
|
|
307
307
|
"files": [
|
|
308
308
|
{
|
|
309
309
|
"path": "src/wc/components/MessageComposer/MessageComposer.css",
|
|
310
|
-
"content": "@import '../../utils/forced-colors.css';\n\n:host {\n display: block;\n width: 100%;\n box-sizing: border-box;\n -webkit-user-select: none;\n user-select: none;\n}\n\n.message-composer {\n display: flex;\n flex-direction: column;\n gap: var(--dimension-space-050);\n width: 100%;\n margin: 0;\n}\n\n.message-composer__attachments:empty,\n.message-composer__tools:empty,\n.message-composer__error-actions:empty {\n display: none;\n}\n\n.message-composer__error-support,\n.message-composer__error-message,\n.message-composer__error-actions {\n display: flex;\n align-items: center;\n}\n\n.message-composer__error-support {\n justify-content: space-between;\n flex-wrap: wrap;\n gap: var(--dimension-space-075) var(--dimension-space-100);\n min-width: 0;\n padding: var(--dimension-space-075) var(--dimension-space-100);\n background: var(--color-background-faint-negative);\n}\n\n.message-composer__error-message {\n flex: 1 1 var(--dimension-panel-width-xs);\n gap: var(--dimension-space-050);\n min-width: 0;\n color: var(--color-foreground-bold-negative);\n}\n\n.message-composer__error-actions {\n flex: 0 1 auto;\n flex-wrap: wrap;\n gap: var(--dimension-space-050);\n}\n\n.message-composer__stack {\n min-width: 0;\n}\n\n.message-composer--error .message-composer__stack {\n overflow: hidden;\n border: var(--dimension-stroke-width-012) solid var(--color-border-bold-negative);\n border-radius: var(--dimension-radius-
|
|
310
|
+
"content": "@import '../../utils/forced-colors.css';\n\n:host {\n display: block;\n width: 100%;\n box-sizing: border-box;\n -webkit-user-select: none;\n user-select: none;\n}\n\n.message-composer {\n display: flex;\n flex-direction: column;\n gap: var(--dimension-space-050);\n width: 100%;\n margin: 0;\n}\n\n.message-composer__attachments:empty,\n.message-composer__tools:empty,\n.message-composer__error-actions:empty {\n display: none;\n}\n\n.message-composer__error-support,\n.message-composer__error-message,\n.message-composer__error-actions {\n display: flex;\n align-items: center;\n}\n\n.message-composer__error-support {\n justify-content: space-between;\n flex-wrap: wrap;\n gap: var(--dimension-space-075) var(--dimension-space-100);\n min-width: 0;\n padding: var(--dimension-space-075) var(--dimension-space-100);\n background: var(--color-background-faint-negative);\n}\n\n.message-composer__error-message {\n flex: 1 1 var(--dimension-panel-width-xs);\n gap: var(--dimension-space-050);\n min-width: 0;\n color: var(--color-foreground-bold-negative);\n}\n\n.message-composer__error-actions {\n flex: 0 1 auto;\n flex-wrap: wrap;\n gap: var(--dimension-space-050);\n}\n\n.message-composer__stack {\n min-width: 0;\n}\n\n.message-composer--error .message-composer__stack {\n overflow: hidden;\n border: var(--dimension-stroke-width-012) solid var(--color-border-bold-negative);\n border-radius: var(--dimension-radius-050);\n background: var(--color-background-primary);\n box-shadow: var(--effect-elevation-elevated-md);\n}\n\n.message-composer__field {\n display: flex;\n flex-direction: column;\n gap: var(--dimension-space-050);\n padding: var(--dimension-space-100);\n border-radius: var(--dimension-radius-050);\n background: var(--color-background-primary);\n box-shadow: var(--effect-elevation-elevated-md);\n overflow: hidden;\n}\n\n.message-composer:not(.message-composer--error) .message-composer__field:focus-within {\n box-shadow:\n var(--effect-elevation-elevated-md),\n inset 0 0 0 var(--dimension-stroke-width-018) var(--color-border-bold-brand);\n}\n\n.message-composer--error .message-composer__field {\n border-radius: 0;\n box-shadow: none;\n}\n\ntextarea {\n field-sizing: content;\n width: 100%;\n min-height: calc(var(--typography-lineheight-md) * 2 + var(--dimension-space-150));\n max-height: calc(var(--typography-lineheight-md) * 6 + var(--dimension-space-150));\n padding: var(--dimension-space-075);\n border: none;\n outline: none;\n resize: none;\n overflow-y: auto;\n box-sizing: border-box;\n background: transparent;\n color: var(--color-foreground-primary);\n font-family: var(--typography-font-family-ui);\n font-size: var(--typography-fontsize-md);\n line-height: var(--typography-lineheight-md);\n font-weight: var(--typography-weight-regular);\n letter-spacing: var(--typography-letterspacing-negative-half);\n -webkit-user-select: text;\n user-select: text;\n}\n\ntextarea::placeholder {\n color: var(--color-foreground-secondary);\n}\n\ntextarea:focus::placeholder {\n color: var(--color-foreground-quaternary);\n}\n\ntextarea:focus,\ntextarea:focus-visible {\n outline: none;\n}\n\n.message-composer__tools {\n display: flex;\n align-items: center;\n gap: var(--dimension-space-050);\n min-height: var(--dimension-size-400);\n}\n\n.message-composer__controls {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--dimension-space-050);\n width: 100%;\n min-width: 0;\n}\n\n.message-composer__actions {\n display: flex;\n align-items: center;\n gap: var(--dimension-space-100);\n flex: 0 0 auto;\n margin-inline-start: auto;\n}\n\n@media (forced-colors: active) {\n .message-composer__field {\n border: var(--dimension-stroke-width-012) solid var(--ds-forced-color-control-boundary);\n box-shadow: none;\n }\n\n .message-composer--error .message-composer__field {\n border: 0;\n }\n\n .message-composer--error .message-composer__stack {\n border: var(--dimension-stroke-width-025) dashed var(--ds-forced-color-content);\n box-shadow: none;\n }\n\n .message-composer__error-support {\n border-block-end: var(--dimension-stroke-width-012) solid var(--ds-forced-color-content);\n background: var(--ds-forced-color-surface);\n }\n}\n",
|
|
311
311
|
"type": "registry:ui"
|
|
312
312
|
},
|
|
313
313
|
{
|
|
314
314
|
"path": "src/wc/components/MessageComposer/MessageComposer.tsx",
|
|
315
|
-
"content": "import { Component, Element, Event, EventEmitter, h, Host, Method, Prop } from '@stencil/core';\nimport type { ButtonFilledIntent } from '../ButtonFilled/ButtonFilled';\nimport type { MessageComposerStatus } from '../conversation-types';\n\nlet composerId = 0;\n\n@Component({\n tag: 'ds-message-composer',\n styleUrl: 'MessageComposer.css',\n scoped: true,\n})\nexport class MessageComposer {\n @Element() el!: HTMLElement;\n\n @Prop({ mutable: true }) value: string = '';\n @Prop() placeholder: string = 'Write a message';\n @Prop() label: string = 'Message';\n @Prop() status: MessageComposerStatus = 'ready';\n /** Submission failure shown while status is error. */\n @Prop() errorMessage?: string;\n @Prop() isInactive: boolean = false;\n @Prop() submitIntent: ButtonFilledIntent = 'brand';\n\n @Event() dsInput!: EventEmitter<string>;\n @Event() dsSubmit!: EventEmitter<{ text: string }>;\n @Event() dsStop!: EventEmitter<void>;\n\n private textarea?: HTMLTextAreaElement;\n private readonly errorId = `ds-message-composer-error-${++composerId}`;\n\n @Method()\n async setFocus() {\n this.textarea?.focus();\n }\n\n private get streaming(): boolean {\n return this.status === 'submitted' || this.status === 'streaming';\n }\n\n private handleInput = (event: Event) => {\n this.value = (event.target as HTMLTextAreaElement).value;\n this.dsInput.emit(this.value);\n };\n\n private submit() {\n const text = this.value.trim();\n if (!text || this.isInactive || this.streaming) return;\n this.dsSubmit.emit({ text });\n }\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (event.key !== 'Enter' || event.shiftKey || event.isComposing) return;\n event.preventDefault();\n this.submit();\n };\n\n private handleAction = () => {\n if (this.streaming) this.dsStop.emit();\n else this.submit();\n };\n\n render() {\n const error = this.status === 'error';\n const visibleErrorMessage = this.errorMessage || 'Message could not be sent.';\n const actionInactive = !this.streaming && (this.isInactive || !this.value.trim());\n return (\n <Host>\n <form\n class={{ 'message-composer': true, 'message-composer--error': error }}\n aria-busy={this.streaming ? 'true' : undefined}\n onSubmit={(event: Event) => {\n event.preventDefault();\n this.submit();\n }}\n >\n <div class=\"message-composer__attachments\">\n <slot name=\"attachments\" />\n </div>\n <div class=\"message-composer__stack\">\n {error ? (\n <div class=\"message-composer__error-support\">\n <div id={this.errorId} class=\"message-composer__error-message\" role=\"alert\">\n <ds-icon name=\"ExclamationTriangle\" size=\"xs\" color=\"inherit\" />\n <ds-text variant=\"text-body-small\" color=\"negative\">\n {visibleErrorMessage}\n </ds-text>\n </div>\n <div class=\"message-composer__error-actions\">\n <slot name=\"error-actions\" />\n </div>\n </div>\n ) : null}\n <div class=\"message-composer__field\">\n <textarea\n ref={element => {\n this.textarea = element;\n }}\n value={this.value}\n placeholder={this.placeholder}\n aria-label={this.label}\n aria-invalid={error ? 'true' : undefined}\n aria-describedby={error ? this.errorId : undefined}\n disabled={this.isInactive}\n onInput={this.handleInput}\n onKeyDown={this.handleKeyDown}\n />\n <div class=\"message-composer__controls\">\n <div class=\"message-composer__tools\">\n <slot name=\"tools\" />\n </div>\n <div class=\"message-composer__actions\">\n <slot name=\"actions\" />\n {actionInactive ? (\n <ds-tooltip label=\"Send message\" side=\"top\" size=\"sm\">\n <ds-button-unfilled\n class=\"message-composer__action\"\n variant=\"icon\"\n icon=\"ArrowUp\"\n size=\"md\"\n aria-label=\"Send message\"\n hasBorder\n isInactive\n onDsClick={this.handleAction}\n />\n </ds-tooltip>\n ) : (\n <ds-tooltip\n label={this.streaming ? 'Stop response' : 'Send message'}\n side=\"top\"\n size=\"sm\"\n >\n <ds-button-filled\n class=\"message-composer__action\"\n variant=\"icon\"\n icon={this.streaming ? 'SquareFilled' : 'ArrowUp'}\n intent={this.streaming ? 'brand' : this.submitIntent}\n contrast=\"bold\"\n size=\"md\"\n aria-label={this.streaming ? 'Stop response' : 'Send message'}\n onDsClick={this.handleAction}\n />\n </ds-tooltip>\n )}\n </div>\n </div>\n </div>\n </div>\n </form>\n </Host>\n );\n }\n}\n",
|
|
315
|
+
"content": "import { Component, Element, Event, EventEmitter, h, Host, Method, Prop } from '@stencil/core';\nimport type { ButtonFilledIntent } from '../ButtonFilled/ButtonFilled';\nimport type { MessageComposerStatus } from '../conversation-types';\n\nlet composerId = 0;\n\n@Component({\n tag: 'ds-message-composer',\n styleUrl: 'MessageComposer.css',\n scoped: true,\n})\nexport class MessageComposer {\n @Element() el!: HTMLElement;\n\n @Prop({ mutable: true }) value: string = '';\n @Prop() placeholder: string = 'Write a message';\n @Prop() label: string = 'Message';\n @Prop() status: MessageComposerStatus = 'ready';\n /** Submission failure shown while status is error. */\n @Prop() errorMessage?: string;\n @Prop() isInactive: boolean = false;\n @Prop() submitIntent: ButtonFilledIntent = 'brand';\n\n @Event() dsInput!: EventEmitter<string>;\n @Event() dsSubmit!: EventEmitter<{ text: string }>;\n @Event() dsStop!: EventEmitter<void>;\n\n private textarea?: HTMLTextAreaElement;\n private readonly errorId = `ds-message-composer-error-${++composerId}`;\n\n @Method()\n async setFocus() {\n this.textarea?.focus();\n }\n\n private get streaming(): boolean {\n return this.status === 'submitted' || this.status === 'streaming';\n }\n\n private handleInput = (event: Event) => {\n this.value = (event.target as HTMLTextAreaElement).value;\n this.dsInput.emit(this.value);\n };\n\n private submit() {\n const text = this.value.trim();\n if (!text || this.isInactive || this.streaming) return;\n this.dsSubmit.emit({ text });\n }\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (event.key !== 'Enter' || event.shiftKey || event.isComposing) return;\n event.preventDefault();\n this.submit();\n };\n\n private handleAction = () => {\n if (this.streaming) this.dsStop.emit();\n else this.submit();\n };\n\n render() {\n const error = this.status === 'error';\n const visibleErrorMessage = this.errorMessage || 'Message could not be sent.';\n const actionInactive = !this.streaming && (this.isInactive || !this.value.trim());\n return (\n <Host>\n <form\n class={{ 'message-composer': true, 'message-composer--error': error }}\n aria-busy={this.streaming ? 'true' : undefined}\n onSubmit={(event: Event) => {\n event.preventDefault();\n this.submit();\n }}\n >\n <div class=\"message-composer__attachments\">\n <slot name=\"attachments\" />\n </div>\n <div class=\"message-composer__stack\">\n {error ? (\n <div class=\"message-composer__error-support\">\n <div id={this.errorId} class=\"message-composer__error-message\" role=\"alert\">\n <ds-icon name=\"ExclamationTriangle\" size=\"xs\" color=\"inherit\" />\n <ds-text variant=\"text-body-small\" color=\"negative\">\n {visibleErrorMessage}\n </ds-text>\n </div>\n <div class=\"message-composer__error-actions\">\n <slot name=\"error-actions\" />\n </div>\n </div>\n ) : null}\n <div class=\"message-composer__field\">\n <textarea\n ref={element => {\n this.textarea = element;\n }}\n value={this.value}\n placeholder={this.placeholder}\n aria-label={this.label}\n aria-invalid={error ? 'true' : undefined}\n aria-describedby={error ? this.errorId : undefined}\n disabled={this.isInactive}\n onInput={this.handleInput}\n onKeyDown={this.handleKeyDown}\n />\n <div class=\"message-composer__controls\">\n <div class=\"message-composer__tools\">\n <slot name=\"tools\" />\n </div>\n <div class=\"message-composer__actions\">\n <slot name=\"actions\" />\n {actionInactive ? (\n <ds-tooltip label=\"Send message\" side=\"top\" size=\"sm\">\n <ds-button-unfilled\n class=\"message-composer__action\"\n variant=\"icon\"\n icon=\"ArrowUp\"\n size=\"md\"\n rounded\n aria-label=\"Send message\"\n hasBorder\n isInactive\n onDsClick={this.handleAction}\n />\n </ds-tooltip>\n ) : (\n <ds-tooltip\n label={this.streaming ? 'Stop response' : 'Send message'}\n side=\"top\"\n size=\"sm\"\n >\n <ds-button-filled\n class=\"message-composer__action\"\n variant=\"icon\"\n icon={this.streaming ? 'SquareFilled' : 'ArrowUp'}\n intent={this.streaming ? 'brand' : this.submitIntent}\n contrast=\"bold\"\n size=\"md\"\n rounded\n aria-label={this.streaming ? 'Stop response' : 'Send message'}\n onDsClick={this.handleAction}\n />\n </ds-tooltip>\n )}\n </div>\n </div>\n </div>\n </div>\n </form>\n </Host>\n );\n }\n}\n",
|
|
316
316
|
"type": "registry:ui"
|
|
317
317
|
}
|
|
318
318
|
]
|
|
@@ -259,7 +259,7 @@
|
|
|
259
259
|
},
|
|
260
260
|
"peerDependencies": {
|
|
261
261
|
"required": [
|
|
262
|
-
"@ds-mo/tokens ^6.
|
|
262
|
+
"@ds-mo/tokens ^6.6.1",
|
|
263
263
|
"@ds-mo/icons ^8.1.1"
|
|
264
264
|
],
|
|
265
265
|
"frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
|
|
@@ -276,7 +276,7 @@
|
|
|
276
276
|
"files": [
|
|
277
277
|
{
|
|
278
278
|
"path": "src/wc/components/Message/Message.css",
|
|
279
|
-
"content": ":host {\n display: block;\n box-sizing: border-box;\n content-visibility: auto;\n contain-intrinsic-size: auto var(--dimension-size-800);\n -webkit-user-select: none;\n user-select: none;\n}\n\n:host(.message-host--group-middle),\n:host(.message-host--group-last) {\n margin-block-start: calc(var(--dimension-space-050) - var(--dimension-space-300));\n}\n\n.message {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n align-items: end;\n gap: 0;\n width: 100%;\n box-sizing: border-box;\n}\n\n.message--outgoing {\n grid-template-columns: minmax(0, 1fr) auto;\n}\n\n.message__header:empty,\n.message__footer:empty,\n.message__metadata-actions:empty,\n.message__actions:empty {\n display: none;\n}\n\n.message__actions:not(:empty) {\n margin-inline-start: var(--dimension-space-075);\n}\n\n.message__body {\n display: flex;\n flex-direction: column;\n min-width: 0;\n gap: var(--dimension-space-050);\n}\n\n.message--incoming .message__body {\n width: 100%;\n}\n\n.message--outgoing .message__body {\n align-items: flex-end;\n}\n\n.message--outgoing .message__header {\n display: none;\n}\n\n.message--system .message__body {\n align-items: center;\n}\n\n.message__header,\n.message__footer,\n.message__metadata-actions,\n.message__actions {\n display: flex;\n align-items: center;\n gap: var(--dimension-space-050);\n}\n\n@media (hover: hover) and (pointer: fine) {\n .message--metadata-hover .message__footer {\n opacity: 0;\n pointer-events: none;\n transition: opacity var(--effect-motion-short-2);\n }\n\n .message--metadata-hover:hover .message__footer,\n .message--metadata-hover:focus-within .message__footer {\n opacity: 1;\n pointer-events: auto;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .message--metadata-hover .message__footer {\n transition: none;\n }\n}\n\n.message__content {\n width: 100%;\n min-width: 0;\n -webkit-user-select: text;\n user-select: text;\n}\n\n.message--outgoing .message__content {\n display: flex;\n justify-content: flex-end;\n}\n\n.message__footer time {\n display: inline-flex;\n}\n\n.message--group-middle .message__header,\n.message--group-last .message__header {\n display: none;\n}\n\n.message--group-first .message__footer,\n.message--group-middle .message__footer {\n display: none;\n}\n",
|
|
279
|
+
"content": ":host {\n display: block;\n box-sizing: border-box;\n content-visibility: auto;\n contain-intrinsic-size: auto var(--dimension-size-800);\n -webkit-user-select: none;\n user-select: none;\n}\n\n:host(.message-host--group-middle),\n:host(.message-host--group-last) {\n margin-block-start: calc(var(--dimension-space-050) - var(--dimension-space-300));\n}\n\n.message {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n align-items: end;\n gap: 0;\n width: 100%;\n box-sizing: border-box;\n}\n\n.message--outgoing {\n grid-template-columns: minmax(0, 1fr) auto;\n}\n\n.message__header:empty,\n.message__footer:empty,\n.message__metadata-actions:empty,\n.message__actions:empty {\n display: none;\n}\n\n.message__actions:not(:empty) {\n margin-inline-start: var(--dimension-space-075);\n}\n\n.message__body {\n display: flex;\n flex-direction: column;\n min-width: 0;\n gap: var(--dimension-space-050);\n}\n\n.message--incoming .message__body {\n width: 100%;\n}\n\n.message__body:has(.message__content > ds-message-bubble) .message__header {\n padding-inline-start: calc(var(--dimension-space-100) + var(--dimension-space-025));\n}\n\n.message--outgoing .message__body {\n align-items: flex-end;\n}\n\n.message--outgoing .message__header {\n display: none;\n}\n\n.message--system .message__body {\n align-items: center;\n}\n\n.message__header,\n.message__footer,\n.message__metadata-actions,\n.message__actions {\n display: flex;\n align-items: center;\n gap: var(--dimension-space-050);\n}\n\n@media (hover: hover) and (pointer: fine) {\n .message--metadata-hover .message__footer {\n opacity: 0;\n pointer-events: none;\n transition: opacity var(--effect-motion-short-2);\n }\n\n .message--metadata-hover:hover .message__footer,\n .message--metadata-hover:focus-within .message__footer {\n opacity: 1;\n pointer-events: auto;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .message--metadata-hover .message__footer {\n transition: none;\n }\n}\n\n.message__content {\n width: 100%;\n min-width: 0;\n -webkit-user-select: text;\n user-select: text;\n}\n\n.message--outgoing .message__content {\n display: flex;\n justify-content: flex-end;\n}\n\n.message__footer time {\n display: inline-flex;\n}\n\n.message--group-middle .message__header,\n.message--group-last .message__header {\n display: none;\n}\n\n.message--group-first .message__footer,\n.message--group-middle .message__footer {\n display: none;\n}\n",
|
|
280
280
|
"type": "registry:ui"
|
|
281
281
|
},
|
|
282
282
|
{
|
|
@@ -429,7 +429,7 @@
|
|
|
429
429
|
"complexPropertyNote": "Assign these non-primitive values as JavaScript properties: currentArea.",
|
|
430
430
|
"peerDependencies": {
|
|
431
431
|
"required": [
|
|
432
|
-
"@ds-mo/tokens ^6.
|
|
432
|
+
"@ds-mo/tokens ^6.6.1",
|
|
433
433
|
"@ds-mo/icons ^8.1.1"
|
|
434
434
|
],
|
|
435
435
|
"frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
|
|
@@ -368,7 +368,7 @@
|
|
|
368
368
|
"complexPropertyNote": "Assign these non-primitive values as JavaScript properties: sections, subsections.",
|
|
369
369
|
"peerDependencies": {
|
|
370
370
|
"required": [
|
|
371
|
-
"@ds-mo/tokens ^6.
|
|
371
|
+
"@ds-mo/tokens ^6.6.1",
|
|
372
372
|
"@ds-mo/icons ^8.1.1"
|
|
373
373
|
],
|
|
374
374
|
"frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
|
|
@@ -228,7 +228,7 @@
|
|
|
228
228
|
"complexPropertyNote": "Assign these non-primitive values as JavaScript properties: sections.",
|
|
229
229
|
"peerDependencies": {
|
|
230
230
|
"required": [
|
|
231
|
-
"@ds-mo/tokens ^6.
|
|
231
|
+
"@ds-mo/tokens ^6.6.1",
|
|
232
232
|
"@ds-mo/icons ^8.1.1"
|
|
233
233
|
],
|
|
234
234
|
"frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
|
|
@@ -390,7 +390,7 @@
|
|
|
390
390
|
"complexPropertyNote": "Assign these non-primitive values as JavaScript properties: dashboardGroups, settingsGroups.",
|
|
391
391
|
"peerDependencies": {
|
|
392
392
|
"required": [
|
|
393
|
-
"@ds-mo/tokens ^6.
|
|
393
|
+
"@ds-mo/tokens ^6.6.1",
|
|
394
394
|
"@ds-mo/icons ^8.1.1"
|
|
395
395
|
],
|
|
396
396
|
"frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
|
|
@@ -410,7 +410,7 @@
|
|
|
410
410
|
"complexPropertyNote": "Assign these non-primitive values as JavaScript properties: pageSizeOptions.",
|
|
411
411
|
"peerDependencies": {
|
|
412
412
|
"required": [
|
|
413
|
-
"@ds-mo/tokens ^6.
|
|
413
|
+
"@ds-mo/tokens ^6.6.1",
|
|
414
414
|
"@ds-mo/icons ^8.1.1"
|
|
415
415
|
],
|
|
416
416
|
"frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
|