@ds-mo/ui 14.36.0 → 15.1.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/NOTICE +6 -0
- package/README.md +7 -0
- package/dist/.package-ready.json +1 -1
- package/dist/agent-patterns.json +1 -1
- package/dist/agent.json +7485 -5096
- package/dist/angular/ds-conversation-list.d.ts +1 -1
- package/dist/angular/ds-conversation-list.js +3 -4
- package/dist/angular/ds-data-customize.d.ts +18 -0
- package/dist/angular/ds-data-customize.js +46 -0
- package/dist/angular/ds-data-filter.d.ts +50 -0
- package/dist/angular/{ds-table-filter.js → ds-data-filter.js} +10 -10
- package/dist/angular/ds-data-group.d.ts +29 -0
- package/dist/angular/{ds-table-group.js → ds-data-group.js} +10 -10
- package/dist/angular/ds-data-preferences.d.ts +39 -0
- package/dist/angular/{ds-table-preferences.js → ds-data-preferences.js} +15 -15
- package/dist/angular/ds-data-saved-views.d.ts +49 -0
- package/dist/angular/{ds-table-saved-views.js → ds-data-saved-views.js} +10 -10
- package/dist/angular/ds-data-search.d.ts +20 -0
- package/dist/angular/{ds-table-search.js → ds-data-search.js} +12 -12
- package/dist/angular/ds-data-sort.d.ts +16 -0
- package/dist/angular/{ds-table-sort.js → ds-data-sort.js} +12 -12
- package/dist/angular/ds-data-toolbar.d.ts +12 -0
- package/dist/angular/{ds-table-toolbar.js → ds-data-toolbar.js} +10 -10
- package/dist/angular/ds-table.d.ts +7 -7
- package/dist/angular/ds-table.js +6 -6
- package/dist/angular/index.d.ts +1 -1
- package/dist/angular/index.js +8 -7
- package/dist/angular/proxies.d.ts +8 -7
- package/dist/angular/proxies.js +8 -7
- 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-avatar.js +1 -1
- package/dist/components/ds-badge.js +1 -1
- package/dist/components/ds-banner.js +1 -1
- package/dist/components/ds-banner.js.map +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-chart.js.map +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-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-chart-legend.js +1 -1
- package/dist/components/ds-chart.js +1 -1
- package/dist/components/ds-chart.js.map +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-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-conversation-list.js.map +1 -1
- package/dist/components/ds-data-customize.d.ts +11 -0
- package/dist/components/ds-data-customize.js +2 -0
- package/dist/components/ds-data-customize.js.map +1 -0
- package/dist/components/{ds-table-group.d.ts → ds-data-filter.d.ts} +4 -4
- package/dist/components/ds-data-filter.js +2 -0
- package/dist/components/ds-data-filter.js.map +1 -0
- package/dist/components/{ds-table-sort.d.ts → ds-data-group.d.ts} +4 -4
- package/dist/components/ds-data-group.js +2 -0
- package/dist/components/{ds-table-saved-views.d.ts → ds-data-preferences.d.ts} +4 -4
- package/dist/components/ds-data-preferences.js +2 -0
- package/dist/components/ds-data-preferences.js.map +1 -0
- package/dist/components/ds-data-saved-views.d.ts +11 -0
- package/dist/components/ds-data-saved-views.js +2 -0
- package/dist/components/ds-data-saved-views.js.map +1 -0
- package/dist/components/{ds-table-search.d.ts → ds-data-search.d.ts} +4 -4
- package/dist/components/ds-data-search.js +2 -0
- package/dist/components/ds-data-search.js.map +1 -0
- package/dist/components/ds-data-sort.d.ts +11 -0
- package/dist/components/ds-data-sort.js +2 -0
- package/dist/components/ds-data-sort.js.map +1 -0
- package/dist/components/{ds-table-filter.d.ts → ds-data-toolbar.d.ts} +4 -4
- package/dist/components/ds-data-toolbar.js +2 -0
- package/dist/components/ds-data-toolbar.js.map +1 -0
- 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-icon.js +1 -1
- package/dist/components/ds-input-date.js +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-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-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-scroller.js.map +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-tools.js +1 -1
- package/dist/components/ds-paper-texture.js +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-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-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-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/index.d.ts +5 -5
- package/dist/components/{p-D8rpKod8.js → p-0FYD2bev.js} +2 -2
- package/dist/components/p-0qY_HDId.js +2 -0
- package/dist/components/{p-C0CE2v5D.js.map → p-0qY_HDId.js.map} +1 -1
- package/dist/components/{p-DK9Ex3aY.js → p-5URekSny.js} +2 -2
- package/dist/components/{p-Ds51RgCi.js → p-7V1AhetH.js} +2 -2
- package/dist/components/{p-C2JnoaWI.js → p-8yBdCXCn.js} +2 -2
- package/dist/components/{p-CQIh2yRP.js → p-BKZdqJQB.js} +2 -2
- package/dist/components/p-BKZdqJQB.js.map +1 -0
- package/dist/components/p-BYrBU_U9.js +2 -0
- package/dist/components/p-BYrBU_U9.js.map +1 -0
- package/dist/components/{p-ClJhuG5Y.js → p-B_jdoM7e.js} +2 -2
- package/dist/components/{p-ClJhuG5Y.js.map → p-B_jdoM7e.js.map} +1 -1
- package/dist/components/{p-su6y4hLK.js → p-BciTtTwx.js} +2 -2
- package/dist/components/{p-DgG9W9N4.js → p-BeNa6tw5.js} +2 -2
- package/dist/components/{p-DgG9W9N4.js.map → p-BeNa6tw5.js.map} +1 -1
- package/dist/components/p-BgQMEHRa.js +2 -0
- package/dist/components/{p-D7yBIPB6.js.map → p-BgQMEHRa.js.map} +1 -1
- package/dist/components/{p-CQ5RwY2C.js → p-BhJXmuRA.js} +2 -2
- package/dist/components/{p-neWTRxmf.js → p-Bm7rqs3C.js} +2 -2
- package/dist/components/{p-BV5T1hzN.js → p-Bn8I7iw6.js} +2 -2
- package/dist/components/{p-PmcUwTQ_.js → p-Bpd6YCo4.js} +2 -2
- package/dist/components/p-C-3YqeTb.js +2 -0
- package/dist/components/{p-TjXGRPik.js.map → p-C-3YqeTb.js.map} +1 -1
- package/dist/components/{p-B27_chI7.js → p-C6xVxqOn.js} +2 -2
- package/dist/components/{p-C4m8y9ki.js → p-CD4DZPy_.js} +2 -2
- package/dist/components/{p-CuwopElg.js → p-CGidq1iC.js} +2 -2
- package/dist/components/{p-CWog26I_.js → p-CNxvnQ6A.js} +2 -2
- package/dist/components/{p-2GVGhrh0.js → p-CUcUHwI3.js} +2 -2
- package/dist/components/{p-CbSUyv5B.js → p-CYzFfFcH.js} +2 -2
- package/dist/components/{p-8oRkhvjy.js → p-CdGXzRP8.js} +2 -2
- package/dist/components/p-CdgOLWX9.js +2 -0
- package/dist/components/p-CdgOLWX9.js.map +1 -0
- package/dist/components/{p-Jaqdfw4E.js → p-CiH4GG6r.js} +2 -2
- package/dist/components/{p-Cl9phSf0.js → p-CiJ1WR11.js} +2 -2
- package/dist/components/{p-Cus1Sigh.js → p-CmexIVnE.js} +2 -2
- package/dist/components/{p-Dryt3COt.js → p-Cqc2U1ZQ.js} +2 -2
- package/dist/components/{p-Dryt3COt.js.map → p-Cqc2U1ZQ.js.map} +1 -1
- package/dist/components/{p-DLXXGgmf.js → p-CzIpquvw.js} +2 -2
- package/dist/components/{p-tNQ0YulU.js → p-D0y7Sja6.js} +2 -2
- package/dist/components/{p-x1wf38q3.js → p-D1vQGJzc.js} +2 -2
- package/dist/components/{p-x1wf38q3.js.map → p-D1vQGJzc.js.map} +1 -1
- package/dist/components/{p-ji09W9el.js → p-D922f6Tb.js} +2 -2
- package/dist/components/{p-DtkLtKY0.js → p-DEW7r0U9.js} +2 -2
- package/dist/components/p-DEW7r0U9.js.map +1 -0
- package/dist/components/{p-CaNCGKEJ.js → p-DHICPS4n.js} +2 -2
- package/dist/components/{p-Cga6Ex0E.js → p-DOAybCp0.js} +2 -2
- package/dist/components/{p-CWPT3aOB.js → p-DVINzOoK.js} +2 -2
- package/dist/components/{p-CWPT3aOB.js.map → p-DVINzOoK.js.map} +1 -1
- package/dist/components/{p-7O-2D29W.js → p-DVOjjuXc.js} +2 -2
- package/dist/components/{p-CMQUuGvl.js → p-Dfs98tpL.js} +2 -2
- package/dist/components/{p-CMQUuGvl.js.map → p-Dfs98tpL.js.map} +1 -1
- package/dist/components/{p-DkikNSSO.js → p-Di5FH7eh.js} +2 -2
- package/dist/components/{p-DkikNSSO.js.map → p-Di5FH7eh.js.map} +1 -1
- package/dist/components/p-DjkUFlDW.js +2 -0
- package/dist/components/p-DjkUFlDW.js.map +1 -0
- package/dist/components/{p-DVd1TIxi.js → p-Dn9QHL4O.js} +2 -2
- package/dist/components/{p-C-dHtQMi.js → p-Do2FJd1y.js} +2 -2
- package/dist/components/{p-BWfzaSc3.js → p-DpoTwJAR.js} +2 -2
- package/dist/components/p-Dw9sE6Iw.js +2 -0
- package/dist/components/p-Dw9sE6Iw.js.map +1 -0
- package/dist/components/{p-BgLI9JoT.js → p-DwbcNDJF.js} +2 -2
- package/dist/components/p-Dzndkdx5.js +2 -0
- package/dist/components/{p-BOhpMUwO.js.map → p-Dzndkdx5.js.map} +1 -1
- package/dist/components/{p-DvzI2A_M.js → p-E5W27Fu_.js} +2 -2
- package/dist/components/{p-DkfM55x8.js → p-FIBCluwV.js} +2 -2
- package/dist/components/{p-DBwa1OXP.js → p-ZhP2tVmM.js} +2 -2
- package/dist/components/p-ZhP2tVmM.js.map +1 -0
- package/dist/components/p-aD5cw_m2.js +2 -0
- package/dist/components/p-aD5cw_m2.js.map +1 -0
- package/dist/components/{p-J5x-QtlD.js → p-etifxiDc.js} +2 -2
- package/dist/components/p-etifxiDc.js.map +1 -0
- package/dist/components/p-kDZ0sEII.js +2 -0
- package/dist/components/p-kDZ0sEII.js.map +1 -0
- package/dist/components/{p-rYePOPbJ.js → p-ljbw3UMZ.js} +2 -2
- package/dist/components/{p-DZ58Sg5a.js → p-vfCu7XSc.js} +2 -2
- package/dist/components/{p-Ce4zy8q1.js → p-xdmJCPCg.js} +2 -2
- package/dist/components/{p-CDJ2Ntcq.js → p-xtGGIZmU.js} +2 -2
- package/dist/docs/components.json +13115 -12615
- package/dist/lib/components/Icon/flag-icon-catalog.d.ts +2 -0
- package/dist/lib/components/Icon/icon-cache.d.ts +36 -4
- package/dist/lib/components/Icon/map-icon-catalog.d.ts +2 -0
- package/dist/lib/shell/index.js +2 -2
- package/dist/lib/shell/index.js.map +1 -1
- package/dist/lib/utils/index.js +68 -5
- package/dist/lib/utils/index.js.map +3 -3
- package/dist/lint/STYLELINT-LICENSE +20 -0
- package/dist/lint/THIRD-PARTY-NOTICES +553 -0
- package/dist/lint/index.d.ts +7 -0
- package/dist/lint/index.js +51385 -0
- package/dist/lint/types.d.ts +13 -0
- package/dist/mcp-data/registry/agent-activity.json +8 -3
- package/dist/mcp-data/registry/agent-questionnaire.json +8 -3
- package/dist/mcp-data/registry/agent-response.json +13 -2
- package/dist/mcp-data/registry/agent-source-list.json +7 -2
- package/dist/mcp-data/registry/agent-tool-call.json +8 -3
- package/dist/mcp-data/registry/attachment-list.json +7 -2
- package/dist/mcp-data/registry/avatar.json +22 -2
- package/dist/mcp-data/registry/badge.json +31 -3
- package/dist/mcp-data/registry/banner.json +29 -3
- package/dist/mcp-data/registry/bar-action.json +25 -2
- package/dist/mcp-data/registry/bar-nav.json +7 -2
- package/dist/mcp-data/registry/bar-page-title.json +25 -2
- package/dist/mcp-data/registry/bar-title.json +27 -2
- package/dist/mcp-data/registry/bar-workflow.json +25 -2
- package/dist/mcp-data/registry/breadcrumb.json +7 -2
- package/dist/mcp-data/registry/button-filled.json +69 -2
- package/dist/mcp-data/registry/button-inverted.json +65 -2
- package/dist/mcp-data/registry/button-unfilled.json +67 -2
- package/dist/mcp-data/registry/calendar.json +15 -2
- package/dist/mcp-data/registry/card-action-center.json +25 -2
- package/dist/mcp-data/registry/card-chart.json +38 -3
- package/dist/mcp-data/registry/card-navigation.json +37 -2
- package/dist/mcp-data/registry/card-overview.json +28 -3
- package/dist/mcp-data/registry/card-setting.json +36 -3
- package/dist/mcp-data/registry/card-settings-scope.json +25 -2
- package/dist/mcp-data/registry/chart-legend.json +7 -2
- package/dist/mcp-data/registry/chart.json +8 -3
- package/dist/mcp-data/registry/checkbox.json +39 -3
- package/dist/mcp-data/registry/chip.json +51 -2
- package/dist/mcp-data/registry/code-block.json +31 -2
- package/dist/mcp-data/registry/conversation-list-item.json +26 -3
- package/dist/mcp-data/registry/conversation-list-section.json +15 -2
- package/dist/mcp-data/registry/conversation-list.json +16 -33
- package/dist/mcp-data/registry/data-customize.json +399 -0
- package/dist/mcp-data/registry/{table-filter.json → data-filter.json} +59 -34
- package/dist/mcp-data/registry/data-group.json +383 -0
- package/dist/mcp-data/registry/data-preferences.json +591 -0
- package/dist/mcp-data/registry/data-saved-views.json +458 -0
- package/dist/mcp-data/registry/data-search.json +392 -0
- package/dist/mcp-data/registry/data-sort.json +279 -0
- package/dist/mcp-data/registry/data-toolbar.json +194 -0
- package/dist/mcp-data/registry/divider.json +7 -2
- package/dist/mcp-data/registry/empty-state.json +7 -2
- package/dist/mcp-data/registry/field.json +15 -2
- package/dist/mcp-data/registry/filter-menu.json +51 -4
- package/dist/mcp-data/registry/icon.json +34 -8
- package/dist/mcp-data/registry/input-date.json +49 -2
- package/dist/mcp-data/registry/input-time.json +49 -2
- package/dist/mcp-data/registry/input.json +50 -3
- package/dist/mcp-data/registry/loader.json +22 -2
- package/dist/mcp-data/registry/markdown.json +18 -2
- package/dist/mcp-data/registry/menu.json +29 -4
- package/dist/mcp-data/registry/message-actions.json +7 -2
- package/dist/mcp-data/registry/message-bubble.json +27 -2
- package/dist/mcp-data/registry/message-composer.json +26 -3
- package/dist/mcp-data/registry/message-scroller.json +13 -2
- package/dist/mcp-data/registry/message.json +7 -2
- package/dist/mcp-data/registry/mobile-bar-nav.json +26 -3
- package/dist/mcp-data/registry/mobile-header.json +27 -2
- package/dist/mcp-data/registry/mobile-section-switcher.json +27 -2
- package/dist/mcp-data/registry/mobile-sheet-nav.json +28 -3
- package/dist/mcp-data/registry/modal.json +25 -2
- package/dist/mcp-data/registry/pagination.json +7 -2
- package/dist/mcp-data/registry/panel-nav.json +29 -3
- package/dist/mcp-data/registry/panel-sub-nav.json +26 -1
- package/dist/mcp-data/registry/panel-tool-header.json +25 -2
- package/dist/mcp-data/registry/panel-tool-search.json +25 -2
- package/dist/mcp-data/registry/panel-tools.json +28 -4
- package/dist/mcp-data/registry/paper-texture.json +7 -2
- package/dist/mcp-data/registry/radio.json +36 -2
- package/dist/mcp-data/registry/registry.json +7465 -5073
- package/dist/mcp-data/registry/score.json +39 -2
- package/dist/mcp-data/registry/scroll-overlay.json +7 -2
- package/dist/mcp-data/registry/select.json +53 -2
- package/dist/mcp-data/registry/shell-app.json +27 -2
- package/dist/mcp-data/registry/shell-page.json +7 -2
- package/dist/mcp-data/registry/shell-tools.json +26 -2
- package/dist/mcp-data/registry/skeleton.json +42 -2
- package/dist/mcp-data/registry/slider.json +43 -2
- package/dist/mcp-data/registry/swatch-picker.json +25 -2
- package/dist/mcp-data/registry/switch.json +38 -2
- package/dist/mcp-data/registry/tab-group.json +50 -2
- package/dist/mcp-data/registry/table.json +173 -72
- package/dist/mcp-data/registry/tag.json +53 -2
- package/dist/mcp-data/registry/text.json +23 -2
- package/dist/mcp-data/registry/textarea.json +39 -2
- package/dist/mcp-data/registry/time-picker.json +15 -2
- package/dist/mcp-data/registry/toast.json +25 -2
- package/dist/mcp-data/registry/tooltip-chart.json +25 -2
- package/dist/mcp-data/registry/tooltip.json +27 -2
- package/dist/mcp-data/registry/typing-indicator.json +7 -2
- package/dist/react/components.d.ts +8 -7
- package/dist/react/components.js +8 -7
- package/dist/react/ds-data-customize.d.ts +13 -0
- package/dist/react/ds-data-customize.js +15 -0
- package/dist/react/ds-data-filter.d.ts +18 -0
- package/dist/react/{ds-table-filter.js → ds-data-filter.js} +5 -5
- package/dist/react/ds-data-group.d.ts +14 -0
- package/dist/react/{ds-table-group.js → ds-data-group.js} +5 -5
- package/dist/react/ds-data-preferences.d.ts +21 -0
- package/dist/react/{ds-table-preferences.js → ds-data-preferences.js} +6 -6
- package/dist/react/ds-data-saved-views.d.ts +17 -0
- package/dist/react/{ds-table-saved-views.js → ds-data-saved-views.js} +5 -5
- package/dist/react/ds-data-search.d.ts +14 -0
- package/dist/react/{ds-table-search.js → ds-data-search.js} +5 -5
- package/dist/react/ds-data-sort.d.ts +12 -0
- package/dist/react/ds-data-sort.js +12 -0
- package/dist/react/{ds-table-toolbar.d.ts → ds-data-toolbar.d.ts} +3 -3
- package/dist/react/ds-data-toolbar.js +12 -0
- package/dist/react/ds-table.d.ts +3 -3
- package/dist/react/ds-table.js +1 -1
- package/dist/styles/table.css +11 -11
- package/dist/types/components/ConversationList/ConversationList.d.ts +0 -7
- package/dist/types/components/DataCustomize/DataCustomize.d.ts +67 -0
- package/dist/types/components/{TableFilter/TableFilter.d.ts → DataFilter/DataFilter.d.ts} +2 -2
- package/dist/types/components/{TableGroup/TableGroup.d.ts → DataGroup/DataGroup.d.ts} +8 -8
- package/dist/types/components/{TablePreferences/TablePreferences.d.ts → DataPreferences/DataPreferences.d.ts} +29 -13
- package/dist/types/components/{TableSavedViews/TableSavedViews.d.ts → DataSavedViews/DataSavedViews.d.ts} +10 -10
- package/dist/types/components/DataSavedViews/data-saved-views-types.d.ts +24 -0
- package/dist/types/components/DataSavedViews/index.d.ts +2 -0
- package/dist/types/components/{TableSearch/TableSearch.d.ts → DataSearch/DataSearch.d.ts} +6 -6
- package/dist/types/components/{TableSearch/table-search-model.d.ts → DataSearch/data-search-model.d.ts} +6 -6
- package/dist/types/components/{TableSearch/table-search-types.d.ts → DataSearch/data-search-types.d.ts} +3 -3
- package/dist/types/components/{TableSort/TableSort.d.ts → DataSort/DataSort.d.ts} +7 -6
- package/dist/types/components/DataSort/data-sort-menu.d.ts +15 -0
- package/dist/types/components/{TableToolbar/TableToolbar.d.ts → DataToolbar/DataToolbar.d.ts} +3 -3
- package/dist/types/components/Icon/icon-cache.d.ts +36 -4
- package/dist/types/components/Icon/map-icon-catalog.d.ts +3 -0
- package/dist/types/components/PanelTools/PanelTools.d.ts +1 -1
- package/dist/types/components/Table/Table.d.ts +9 -9
- package/dist/types/components/Table/index.d.ts +1 -1
- package/dist/types/components/Table/table-action-menu.d.ts +1 -1
- package/dist/types/components/Table/table-body-renderer.d.ts +2 -2
- package/dist/types/components/Table/table-column-customizer.d.ts +9 -9
- package/dist/types/components/Table/table-group-load-controller.d.ts +2 -2
- package/dist/types/components/Table/table-model.d.ts +7 -7
- package/dist/types/components/Table/table-render-model.d.ts +3 -3
- package/dist/types/components/Table/table-types.d.ts +17 -36
- package/dist/types/components/Table/table-virtual-model.d.ts +2 -2
- package/dist/types/components.d.ts +3837 -3640
- package/dist/types/utils/data-field.d.ts +38 -0
- package/dist/types/utils/list-customizer.d.ts +38 -0
- package/dist/types/utils/table-caption-compact.d.ts +1 -1
- package/dist/vue/components.d.ts +8 -7
- package/dist/vue/components.js +8 -7
- package/dist/vue/ds-conversation-list.js +1 -3
- package/dist/vue/ds-data-customize.d.ts +3 -0
- package/dist/vue/ds-data-customize.js +23 -0
- package/dist/vue/{ds-table-group.d.ts → ds-data-filter.d.ts} +1 -1
- package/dist/vue/{ds-table-filter.js → ds-data-filter.js} +2 -2
- package/dist/vue/{ds-table-sort.d.ts → ds-data-group.d.ts} +1 -1
- package/dist/vue/{ds-table-group.js → ds-data-group.js} +2 -2
- package/dist/vue/{ds-table-saved-views.d.ts → ds-data-preferences.d.ts} +1 -1
- package/dist/vue/{ds-table-preferences.js → ds-data-preferences.js} +10 -7
- package/dist/vue/ds-data-saved-views.d.ts +3 -0
- package/dist/vue/{ds-table-saved-views.js → ds-data-saved-views.js} +2 -2
- package/dist/vue/{ds-table-filter.d.ts → ds-data-search.d.ts} +1 -1
- package/dist/vue/{ds-table-search.js → ds-data-search.js} +3 -3
- package/dist/vue/{ds-table-search.d.ts → ds-data-sort.d.ts} +1 -1
- package/dist/vue/{ds-table-sort.js → ds-data-sort.js} +3 -3
- package/dist/vue/ds-data-toolbar.d.ts +3 -0
- package/dist/vue/ds-data-toolbar.js +9 -0
- package/dist/vue/ds-table.js +4 -4
- package/package.json +34 -9
- package/dist/angular/ds-table-filter.d.ts +0 -50
- package/dist/angular/ds-table-group.d.ts +0 -29
- package/dist/angular/ds-table-preferences.d.ts +0 -39
- package/dist/angular/ds-table-saved-views.d.ts +0 -49
- package/dist/angular/ds-table-search.d.ts +0 -20
- package/dist/angular/ds-table-sort.d.ts +0 -16
- package/dist/angular/ds-table-toolbar.d.ts +0 -12
- package/dist/components/ds-table-filter.js +0 -2
- package/dist/components/ds-table-filter.js.map +0 -1
- package/dist/components/ds-table-group.js +0 -2
- package/dist/components/ds-table-preferences.d.ts +0 -11
- package/dist/components/ds-table-preferences.js +0 -2
- package/dist/components/ds-table-preferences.js.map +0 -1
- package/dist/components/ds-table-saved-views.js +0 -2
- package/dist/components/ds-table-saved-views.js.map +0 -1
- package/dist/components/ds-table-search.js +0 -2
- package/dist/components/ds-table-search.js.map +0 -1
- package/dist/components/ds-table-sort.js +0 -2
- package/dist/components/ds-table-sort.js.map +0 -1
- package/dist/components/ds-table-toolbar.d.ts +0 -11
- package/dist/components/ds-table-toolbar.js +0 -2
- package/dist/components/ds-table-toolbar.js.map +0 -1
- package/dist/components/p-BOhpMUwO.js +0 -2
- package/dist/components/p-C0CE2v5D.js +0 -2
- package/dist/components/p-CKarsuR2.js +0 -2
- package/dist/components/p-CKarsuR2.js.map +0 -1
- package/dist/components/p-CQIh2yRP.js.map +0 -1
- package/dist/components/p-Cea7rROU.js +0 -2
- package/dist/components/p-Cea7rROU.js.map +0 -1
- package/dist/components/p-D7yBIPB6.js +0 -2
- package/dist/components/p-DBwa1OXP.js.map +0 -1
- package/dist/components/p-DtkLtKY0.js.map +0 -1
- package/dist/components/p-J5x-QtlD.js.map +0 -1
- package/dist/components/p-KBrC9IG4.js +0 -2
- package/dist/components/p-KBrC9IG4.js.map +0 -1
- package/dist/components/p-MQ36mEgn.js +0 -2
- package/dist/components/p-MQ36mEgn.js.map +0 -1
- package/dist/components/p-TjXGRPik.js +0 -2
- package/dist/components/p-bM3LH3kc.js +0 -2
- package/dist/components/p-bM3LH3kc.js.map +0 -1
- package/dist/mcp-data/registry/table-group.json +0 -358
- package/dist/mcp-data/registry/table-preferences.json +0 -511
- package/dist/mcp-data/registry/table-saved-views.json +0 -433
- package/dist/mcp-data/registry/table-search.json +0 -366
- package/dist/mcp-data/registry/table-sort.json +0 -253
- package/dist/mcp-data/registry/table-toolbar.json +0 -180
- package/dist/react/ds-table-filter.d.ts +0 -18
- package/dist/react/ds-table-group.d.ts +0 -14
- package/dist/react/ds-table-preferences.d.ts +0 -21
- package/dist/react/ds-table-saved-views.d.ts +0 -17
- package/dist/react/ds-table-search.d.ts +0 -14
- package/dist/react/ds-table-sort.d.ts +0 -12
- package/dist/react/ds-table-sort.js +0 -12
- package/dist/react/ds-table-toolbar.js +0 -12
- package/dist/types/components/TableSavedViews/index.d.ts +0 -2
- package/dist/types/components/TableSavedViews/table-saved-views-types.d.ts +0 -24
- package/dist/types/components/TableSort/table-sort-menu.d.ts +0 -15
- package/dist/vue/ds-table-preferences.d.ts +0 -3
- package/dist/vue/ds-table-toolbar.d.ts +0 -3
- package/dist/vue/ds-table-toolbar.js +0 -9
- /package/dist/components/{ds-table-group.js.map → ds-data-group.js.map} +0 -0
- /package/dist/components/{p-D8rpKod8.js.map → p-0FYD2bev.js.map} +0 -0
- /package/dist/components/{p-DK9Ex3aY.js.map → p-5URekSny.js.map} +0 -0
- /package/dist/components/{p-Ds51RgCi.js.map → p-7V1AhetH.js.map} +0 -0
- /package/dist/components/{p-C2JnoaWI.js.map → p-8yBdCXCn.js.map} +0 -0
- /package/dist/components/{p-su6y4hLK.js.map → p-BciTtTwx.js.map} +0 -0
- /package/dist/components/{p-CQ5RwY2C.js.map → p-BhJXmuRA.js.map} +0 -0
- /package/dist/components/{p-neWTRxmf.js.map → p-Bm7rqs3C.js.map} +0 -0
- /package/dist/components/{p-BV5T1hzN.js.map → p-Bn8I7iw6.js.map} +0 -0
- /package/dist/components/{p-PmcUwTQ_.js.map → p-Bpd6YCo4.js.map} +0 -0
- /package/dist/components/{p-B27_chI7.js.map → p-C6xVxqOn.js.map} +0 -0
- /package/dist/components/{p-C4m8y9ki.js.map → p-CD4DZPy_.js.map} +0 -0
- /package/dist/components/{p-CuwopElg.js.map → p-CGidq1iC.js.map} +0 -0
- /package/dist/components/{p-CWog26I_.js.map → p-CNxvnQ6A.js.map} +0 -0
- /package/dist/components/{p-2GVGhrh0.js.map → p-CUcUHwI3.js.map} +0 -0
- /package/dist/components/{p-CbSUyv5B.js.map → p-CYzFfFcH.js.map} +0 -0
- /package/dist/components/{p-8oRkhvjy.js.map → p-CdGXzRP8.js.map} +0 -0
- /package/dist/components/{p-Jaqdfw4E.js.map → p-CiH4GG6r.js.map} +0 -0
- /package/dist/components/{p-Cl9phSf0.js.map → p-CiJ1WR11.js.map} +0 -0
- /package/dist/components/{p-Cus1Sigh.js.map → p-CmexIVnE.js.map} +0 -0
- /package/dist/components/{p-DLXXGgmf.js.map → p-CzIpquvw.js.map} +0 -0
- /package/dist/components/{p-tNQ0YulU.js.map → p-D0y7Sja6.js.map} +0 -0
- /package/dist/components/{p-ji09W9el.js.map → p-D922f6Tb.js.map} +0 -0
- /package/dist/components/{p-CaNCGKEJ.js.map → p-DHICPS4n.js.map} +0 -0
- /package/dist/components/{p-Cga6Ex0E.js.map → p-DOAybCp0.js.map} +0 -0
- /package/dist/components/{p-7O-2D29W.js.map → p-DVOjjuXc.js.map} +0 -0
- /package/dist/components/{p-DVd1TIxi.js.map → p-Dn9QHL4O.js.map} +0 -0
- /package/dist/components/{p-C-dHtQMi.js.map → p-Do2FJd1y.js.map} +0 -0
- /package/dist/components/{p-BWfzaSc3.js.map → p-DpoTwJAR.js.map} +0 -0
- /package/dist/components/{p-BgLI9JoT.js.map → p-DwbcNDJF.js.map} +0 -0
- /package/dist/components/{p-DvzI2A_M.js.map → p-E5W27Fu_.js.map} +0 -0
- /package/dist/components/{p-DkfM55x8.js.map → p-FIBCluwV.js.map} +0 -0
- /package/dist/components/{p-rYePOPbJ.js.map → p-ljbw3UMZ.js.map} +0 -0
- /package/dist/components/{p-DZ58Sg5a.js.map → p-vfCu7XSc.js.map} +0 -0
- /package/dist/components/{p-Ce4zy8q1.js.map → p-xdmJCPCg.js.map} +0 -0
- /package/dist/components/{p-CDJ2Ntcq.js.map → p-xtGGIZmU.js.map} +0 -0
|
@@ -1,433 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "table-saved-views",
|
|
4
|
-
"title": "TableSavedViews",
|
|
5
|
-
"description": "Controlled saved-views UI for table toolbars, including selection, dirty state, create, save, discard, rename, remove, validation, and focus behavior without owning table configuration or persistence.",
|
|
6
|
-
"type": "registry:ui",
|
|
7
|
-
"meta": {
|
|
8
|
-
"library": "@ds-mo/ui",
|
|
9
|
-
"distribution": "npm",
|
|
10
|
-
"storybook": "https://zainadeel.github.io/compomo/?path=/story/table-saved-views",
|
|
11
|
-
"source": "src/wc/components/TableSavedViews/TableSavedViews.tsx",
|
|
12
|
-
"intentStatus": "complete",
|
|
13
|
-
"intent": {
|
|
14
|
-
"audience": "general",
|
|
15
|
-
"status": "stable",
|
|
16
|
-
"summary": "Controlled saved-views UI for table toolbars, including selection, dirty state, create, save, discard, rename, remove, validation, and focus behavior without owning table configuration or persistence.",
|
|
17
|
-
"useWhen": [
|
|
18
|
-
"A table workspace lets people recall and manage named combinations of table controls.",
|
|
19
|
-
"Several products need the same saved-view interaction while retaining different view payloads and storage systems."
|
|
20
|
-
],
|
|
21
|
-
"avoidWhen": [
|
|
22
|
-
"The choices do not represent restorable table configurations.",
|
|
23
|
-
"The application expects the component to serialize filters, grouping, sorting, columns, pagination, or product-specific state."
|
|
24
|
-
],
|
|
25
|
-
"commonlyComposedWith": [
|
|
26
|
-
"component:ds-table-toolbar",
|
|
27
|
-
"component:ds-table",
|
|
28
|
-
"component:ds-select",
|
|
29
|
-
"component:ds-menu",
|
|
30
|
-
"component:ds-modal",
|
|
31
|
-
"component:ds-field"
|
|
32
|
-
],
|
|
33
|
-
"patterns": [
|
|
34
|
-
"pattern:menu-trigger"
|
|
35
|
-
],
|
|
36
|
-
"accessibility": [
|
|
37
|
-
"The primary control retains combobox semantics and exposes a direct accessible name.",
|
|
38
|
-
"Each custom view exposes a separately named options trigger. The options menu supports keyboard navigation and returns focus through the shared Select and Menu behavior.",
|
|
39
|
-
"The naming dialog traps focus through Modal behavior. The dialog heading names the task, so the name field omits a visible label; the input keeps aria-label Name, Field associates validation text, and focus returns to the saved-views control after closing.",
|
|
40
|
-
"Footer actions are assigned with slot=\"footer\" on each button so Modal owns the two-action layout."
|
|
41
|
-
],
|
|
42
|
-
"states": [
|
|
43
|
-
"views, value, and dirty are controlled. Dirty state is presented only for a selected custom view; the default template never shows the trigger dot or save/discard actions even if dirty is supplied. Selection, create, save, discard, rename, and remove events communicate intent and never mutate application records.",
|
|
44
|
-
"The component owns only transient interaction state: the contextual menu, naming dialog, draft name, duplicate-name validation, and focus restoration.",
|
|
45
|
-
"The default view is a non-editable template. Application-owned custom views appear in a separate section with Rename and Remove actions. New view opens the naming dialog. When an editable selected view is dirty, that view row shows Save and negative Discard supporting actions while the footer remains dedicated to New view. The application decides which table state to capture, restore, and persist.",
|
|
46
|
-
"The built-in picker and contextual option menu each retain their own surface-open treatment. Opening a view menu does not select that view.",
|
|
47
|
-
"Borderless toolbar compositions omit resting control borders while retaining focus and interaction feedback.",
|
|
48
|
-
"Expanded toolbar triggers use an icon and regular-weight text without a trailing chevron.",
|
|
49
|
-
"Selected views and applied filters do not promote trigger icon or label colors. Trigger colors remain neutral across value changes."
|
|
50
|
-
],
|
|
51
|
-
"responsiveBehavior": [
|
|
52
|
-
"The control remains a single toolbar item and relies on Select, Menu, and Modal collision and viewport behavior. Its trigger hugs short view names and is capped at the compact menu-width token so long names truncate while the dirty dot stays visible. Its choice popup keeps that same token as the minimum width.",
|
|
53
|
-
"Place it in the start region of ds-table-toolbar so the middle region can keep left-side and right-side controls on one spanning cluster.",
|
|
54
|
-
"The ViewMenu prefix identifies saved views. Compact compositions and narrow table captions show only the icon while retaining the accessible name and tooltip."
|
|
55
|
-
],
|
|
56
|
-
"frameworkCaveats": {
|
|
57
|
-
"customElements": [
|
|
58
|
-
"Assign views through the JavaScript property and update value after handling dsViewChange."
|
|
59
|
-
],
|
|
60
|
-
"react": [
|
|
61
|
-
"Keep view records and serialized table configuration in application state; update controlled props in response to the component events."
|
|
62
|
-
],
|
|
63
|
-
"angular": [
|
|
64
|
-
"Import the generated DsTableSavedViews adapter and bind views, value, and dirty; handle event.detail for selection and mutations."
|
|
65
|
-
]
|
|
66
|
-
},
|
|
67
|
-
"references": [
|
|
68
|
-
{
|
|
69
|
-
"label": "Storybook review states",
|
|
70
|
-
"path": "src/wc/components/TableSavedViews/TableSavedViews.stories.ts"
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
"label": "Toolbar composition owner",
|
|
74
|
-
"path": "src/wc/components/TableToolbar/TableToolbar.agent.json"
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
"label": "Surface ownership and trigger state",
|
|
78
|
-
"path": "src/docs/SurfaceOwnership.mdx"
|
|
79
|
-
}
|
|
80
|
-
]
|
|
81
|
-
},
|
|
82
|
-
"api": {
|
|
83
|
-
"props": {
|
|
84
|
-
"compact": {
|
|
85
|
-
"type": "boolean",
|
|
86
|
-
"resolvedType": "boolean",
|
|
87
|
-
"attribute": "compact",
|
|
88
|
-
"default": "false",
|
|
89
|
-
"required": false,
|
|
90
|
-
"mutable": false,
|
|
91
|
-
"description": "Use an icon-only trigger in an explicitly compact toolbar."
|
|
92
|
-
},
|
|
93
|
-
"createLabel": {
|
|
94
|
-
"type": "string",
|
|
95
|
-
"resolvedType": "string",
|
|
96
|
-
"attribute": "create-label",
|
|
97
|
-
"default": "'New view'",
|
|
98
|
-
"required": false,
|
|
99
|
-
"mutable": false,
|
|
100
|
-
"description": "Footer action label that opens the create-view dialog."
|
|
101
|
-
},
|
|
102
|
-
"defaultViewId": {
|
|
103
|
-
"type": "string",
|
|
104
|
-
"resolvedType": "string",
|
|
105
|
-
"attribute": "default-view-id",
|
|
106
|
-
"default": "'__default__'",
|
|
107
|
-
"required": false,
|
|
108
|
-
"mutable": false,
|
|
109
|
-
"description": "ID used for the built-in default view."
|
|
110
|
-
},
|
|
111
|
-
"defaultViewLabel": {
|
|
112
|
-
"type": "string",
|
|
113
|
-
"resolvedType": "string",
|
|
114
|
-
"attribute": "default-view-label",
|
|
115
|
-
"default": "'Default'",
|
|
116
|
-
"required": false,
|
|
117
|
-
"mutable": false,
|
|
118
|
-
"description": "Label used for the built-in default view."
|
|
119
|
-
},
|
|
120
|
-
"dirty": {
|
|
121
|
-
"type": "boolean",
|
|
122
|
-
"resolvedType": "boolean",
|
|
123
|
-
"attribute": "dirty",
|
|
124
|
-
"default": "false",
|
|
125
|
-
"required": false,
|
|
126
|
-
"mutable": false,
|
|
127
|
-
"description": "Whether the current table state differs from the selected custom view. Ignored for the default view."
|
|
128
|
-
},
|
|
129
|
-
"hasBorder": {
|
|
130
|
-
"type": "boolean",
|
|
131
|
-
"resolvedType": "boolean",
|
|
132
|
-
"attribute": "has-border",
|
|
133
|
-
"default": "true",
|
|
134
|
-
"required": false,
|
|
135
|
-
"mutable": false,
|
|
136
|
-
"description": "Show the trigger border."
|
|
137
|
-
},
|
|
138
|
-
"label": {
|
|
139
|
-
"type": "string",
|
|
140
|
-
"resolvedType": "string",
|
|
141
|
-
"attribute": "label",
|
|
142
|
-
"default": "'Saved views'",
|
|
143
|
-
"required": false,
|
|
144
|
-
"mutable": false,
|
|
145
|
-
"description": "Accessible name for the saved-views select."
|
|
146
|
-
},
|
|
147
|
-
"triggerLabel": {
|
|
148
|
-
"type": "string",
|
|
149
|
-
"resolvedType": "string",
|
|
150
|
-
"attribute": "trigger-label",
|
|
151
|
-
"default": "'Views'",
|
|
152
|
-
"required": false,
|
|
153
|
-
"mutable": false,
|
|
154
|
-
"description": "Trigger label shown while the default view is selected."
|
|
155
|
-
},
|
|
156
|
-
"value": {
|
|
157
|
-
"type": "string",
|
|
158
|
-
"resolvedType": "string",
|
|
159
|
-
"attribute": "value",
|
|
160
|
-
"default": "'__default__'",
|
|
161
|
-
"required": false,
|
|
162
|
-
"mutable": false,
|
|
163
|
-
"description": "ID of the controlled active view, including the default view ID."
|
|
164
|
-
},
|
|
165
|
-
"views": {
|
|
166
|
-
"type": "TableSavedView[]",
|
|
167
|
-
"resolvedType": "TableSavedView[]",
|
|
168
|
-
"default": "[]",
|
|
169
|
-
"required": false,
|
|
170
|
-
"mutable": false
|
|
171
|
-
}
|
|
172
|
-
},
|
|
173
|
-
"events": [
|
|
174
|
-
{
|
|
175
|
-
"name": "dsViewChange",
|
|
176
|
-
"detail": "TableSavedViewChangeDetail",
|
|
177
|
-
"bubbles": true,
|
|
178
|
-
"cancelable": true,
|
|
179
|
-
"composed": true,
|
|
180
|
-
"description": "Emitted when a view selection is requested."
|
|
181
|
-
},
|
|
182
|
-
{
|
|
183
|
-
"name": "dsViewCreate",
|
|
184
|
-
"detail": "TableSavedViewCreateDetail",
|
|
185
|
-
"bubbles": true,
|
|
186
|
-
"cancelable": true,
|
|
187
|
-
"composed": true,
|
|
188
|
-
"description": "Emitted after a valid create-view name is submitted."
|
|
189
|
-
},
|
|
190
|
-
{
|
|
191
|
-
"name": "dsViewDiscard",
|
|
192
|
-
"detail": "TableSavedViewDiscardDetail",
|
|
193
|
-
"bubbles": true,
|
|
194
|
-
"cancelable": true,
|
|
195
|
-
"composed": true,
|
|
196
|
-
"description": "Emitted when the active custom view's stored payload should be restored."
|
|
197
|
-
},
|
|
198
|
-
{
|
|
199
|
-
"name": "dsViewRemove",
|
|
200
|
-
"detail": "TableSavedViewRemoveDetail",
|
|
201
|
-
"bubbles": true,
|
|
202
|
-
"cancelable": true,
|
|
203
|
-
"composed": true,
|
|
204
|
-
"description": "Emitted when a custom view removal is requested."
|
|
205
|
-
},
|
|
206
|
-
{
|
|
207
|
-
"name": "dsViewRename",
|
|
208
|
-
"detail": "TableSavedViewRenameDetail",
|
|
209
|
-
"bubbles": true,
|
|
210
|
-
"cancelable": true,
|
|
211
|
-
"composed": true,
|
|
212
|
-
"description": "Emitted after a valid renamed view name is submitted."
|
|
213
|
-
},
|
|
214
|
-
{
|
|
215
|
-
"name": "dsViewSave",
|
|
216
|
-
"detail": "TableSavedViewSaveDetail",
|
|
217
|
-
"bubbles": true,
|
|
218
|
-
"cancelable": true,
|
|
219
|
-
"composed": true,
|
|
220
|
-
"description": "Emitted when changes to the active custom view should replace its stored payload."
|
|
221
|
-
}
|
|
222
|
-
],
|
|
223
|
-
"methods": [],
|
|
224
|
-
"slots": []
|
|
225
|
-
},
|
|
226
|
-
"props": {
|
|
227
|
-
"compact": {
|
|
228
|
-
"type": "boolean",
|
|
229
|
-
"resolvedType": "boolean",
|
|
230
|
-
"attribute": "compact",
|
|
231
|
-
"default": "false",
|
|
232
|
-
"required": false,
|
|
233
|
-
"mutable": false,
|
|
234
|
-
"description": "Use an icon-only trigger in an explicitly compact toolbar."
|
|
235
|
-
},
|
|
236
|
-
"createLabel": {
|
|
237
|
-
"type": "string",
|
|
238
|
-
"resolvedType": "string",
|
|
239
|
-
"attribute": "create-label",
|
|
240
|
-
"default": "'New view'",
|
|
241
|
-
"required": false,
|
|
242
|
-
"mutable": false,
|
|
243
|
-
"description": "Footer action label that opens the create-view dialog."
|
|
244
|
-
},
|
|
245
|
-
"defaultViewId": {
|
|
246
|
-
"type": "string",
|
|
247
|
-
"resolvedType": "string",
|
|
248
|
-
"attribute": "default-view-id",
|
|
249
|
-
"default": "'__default__'",
|
|
250
|
-
"required": false,
|
|
251
|
-
"mutable": false,
|
|
252
|
-
"description": "ID used for the built-in default view."
|
|
253
|
-
},
|
|
254
|
-
"defaultViewLabel": {
|
|
255
|
-
"type": "string",
|
|
256
|
-
"resolvedType": "string",
|
|
257
|
-
"attribute": "default-view-label",
|
|
258
|
-
"default": "'Default'",
|
|
259
|
-
"required": false,
|
|
260
|
-
"mutable": false,
|
|
261
|
-
"description": "Label used for the built-in default view."
|
|
262
|
-
},
|
|
263
|
-
"dirty": {
|
|
264
|
-
"type": "boolean",
|
|
265
|
-
"resolvedType": "boolean",
|
|
266
|
-
"attribute": "dirty",
|
|
267
|
-
"default": "false",
|
|
268
|
-
"required": false,
|
|
269
|
-
"mutable": false,
|
|
270
|
-
"description": "Whether the current table state differs from the selected custom view. Ignored for the default view."
|
|
271
|
-
},
|
|
272
|
-
"hasBorder": {
|
|
273
|
-
"type": "boolean",
|
|
274
|
-
"resolvedType": "boolean",
|
|
275
|
-
"attribute": "has-border",
|
|
276
|
-
"default": "true",
|
|
277
|
-
"required": false,
|
|
278
|
-
"mutable": false,
|
|
279
|
-
"description": "Show the trigger border."
|
|
280
|
-
},
|
|
281
|
-
"label": {
|
|
282
|
-
"type": "string",
|
|
283
|
-
"resolvedType": "string",
|
|
284
|
-
"attribute": "label",
|
|
285
|
-
"default": "'Saved views'",
|
|
286
|
-
"required": false,
|
|
287
|
-
"mutable": false,
|
|
288
|
-
"description": "Accessible name for the saved-views select."
|
|
289
|
-
},
|
|
290
|
-
"triggerLabel": {
|
|
291
|
-
"type": "string",
|
|
292
|
-
"resolvedType": "string",
|
|
293
|
-
"attribute": "trigger-label",
|
|
294
|
-
"default": "'Views'",
|
|
295
|
-
"required": false,
|
|
296
|
-
"mutable": false,
|
|
297
|
-
"description": "Trigger label shown while the default view is selected."
|
|
298
|
-
},
|
|
299
|
-
"value": {
|
|
300
|
-
"type": "string",
|
|
301
|
-
"resolvedType": "string",
|
|
302
|
-
"attribute": "value",
|
|
303
|
-
"default": "'__default__'",
|
|
304
|
-
"required": false,
|
|
305
|
-
"mutable": false,
|
|
306
|
-
"description": "ID of the controlled active view, including the default view ID."
|
|
307
|
-
},
|
|
308
|
-
"views": {
|
|
309
|
-
"type": "TableSavedView[]",
|
|
310
|
-
"resolvedType": "TableSavedView[]",
|
|
311
|
-
"default": "[]",
|
|
312
|
-
"required": false,
|
|
313
|
-
"mutable": false
|
|
314
|
-
}
|
|
315
|
-
},
|
|
316
|
-
"events": [
|
|
317
|
-
{
|
|
318
|
-
"name": "dsViewChange",
|
|
319
|
-
"detail": "TableSavedViewChangeDetail",
|
|
320
|
-
"bubbles": true,
|
|
321
|
-
"cancelable": true,
|
|
322
|
-
"composed": true,
|
|
323
|
-
"description": "Emitted when a view selection is requested."
|
|
324
|
-
},
|
|
325
|
-
{
|
|
326
|
-
"name": "dsViewCreate",
|
|
327
|
-
"detail": "TableSavedViewCreateDetail",
|
|
328
|
-
"bubbles": true,
|
|
329
|
-
"cancelable": true,
|
|
330
|
-
"composed": true,
|
|
331
|
-
"description": "Emitted after a valid create-view name is submitted."
|
|
332
|
-
},
|
|
333
|
-
{
|
|
334
|
-
"name": "dsViewDiscard",
|
|
335
|
-
"detail": "TableSavedViewDiscardDetail",
|
|
336
|
-
"bubbles": true,
|
|
337
|
-
"cancelable": true,
|
|
338
|
-
"composed": true,
|
|
339
|
-
"description": "Emitted when the active custom view's stored payload should be restored."
|
|
340
|
-
},
|
|
341
|
-
{
|
|
342
|
-
"name": "dsViewRemove",
|
|
343
|
-
"detail": "TableSavedViewRemoveDetail",
|
|
344
|
-
"bubbles": true,
|
|
345
|
-
"cancelable": true,
|
|
346
|
-
"composed": true,
|
|
347
|
-
"description": "Emitted when a custom view removal is requested."
|
|
348
|
-
},
|
|
349
|
-
{
|
|
350
|
-
"name": "dsViewRename",
|
|
351
|
-
"detail": "TableSavedViewRenameDetail",
|
|
352
|
-
"bubbles": true,
|
|
353
|
-
"cancelable": true,
|
|
354
|
-
"composed": true,
|
|
355
|
-
"description": "Emitted after a valid renamed view name is submitted."
|
|
356
|
-
},
|
|
357
|
-
{
|
|
358
|
-
"name": "dsViewSave",
|
|
359
|
-
"detail": "TableSavedViewSaveDetail",
|
|
360
|
-
"bubbles": true,
|
|
361
|
-
"cancelable": true,
|
|
362
|
-
"composed": true,
|
|
363
|
-
"description": "Emitted when changes to the active custom view should replace its stored payload."
|
|
364
|
-
}
|
|
365
|
-
],
|
|
366
|
-
"methods": [],
|
|
367
|
-
"slots": [],
|
|
368
|
-
"exports": {
|
|
369
|
-
"customElement": "ds-table-saved-views",
|
|
370
|
-
"react": "DsTableSavedViews",
|
|
371
|
-
"vue": "DsTableSavedViews",
|
|
372
|
-
"angular": "DsTableSavedViews"
|
|
373
|
-
},
|
|
374
|
-
"consumption": {
|
|
375
|
-
"install": "npm install @ds-mo/ui @ds-mo/tokens @ds-mo/icons",
|
|
376
|
-
"cssSetup": "import '@ds-mo/tokens';\nimport '@ds-mo/tokens/reset';\nimport '@ds-mo/tokens/globals';",
|
|
377
|
-
"customElements": {
|
|
378
|
-
"import": "import '@ds-mo/ui/dist/components/ds-table-saved-views.js';",
|
|
379
|
-
"example": "<ds-table-saved-views></ds-table-saved-views>"
|
|
380
|
-
},
|
|
381
|
-
"react": {
|
|
382
|
-
"import": "import { DsTableSavedViews } from '@ds-mo/ui/react';",
|
|
383
|
-
"example": "<DsTableSavedViews />"
|
|
384
|
-
},
|
|
385
|
-
"vue": {
|
|
386
|
-
"import": "import { DsTableSavedViews } from '@ds-mo/ui/vue';",
|
|
387
|
-
"example": "<DsTableSavedViews />"
|
|
388
|
-
},
|
|
389
|
-
"angular": {
|
|
390
|
-
"import": "import { DsTableSavedViews } from '@ds-mo/ui/angular/ds-table-saved-views';",
|
|
391
|
-
"example": "<ds-table-saved-views></ds-table-saved-views>"
|
|
392
|
-
},
|
|
393
|
-
"complexPropertyNote": "Assign these non-primitive values as JavaScript properties: views.",
|
|
394
|
-
"peerDependencies": {
|
|
395
|
-
"required": [
|
|
396
|
-
"@ds-mo/tokens ^6.5.1",
|
|
397
|
-
"@ds-mo/icons ^7.0.0"
|
|
398
|
-
],
|
|
399
|
-
"frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
},
|
|
403
|
-
"dependencies": [
|
|
404
|
-
"@ds-mo/ui",
|
|
405
|
-
"@ds-mo/tokens"
|
|
406
|
-
],
|
|
407
|
-
"registryDependencies": [
|
|
408
|
-
"button-filled",
|
|
409
|
-
"button-unfilled",
|
|
410
|
-
"field",
|
|
411
|
-
"input",
|
|
412
|
-
"menu",
|
|
413
|
-
"modal",
|
|
414
|
-
"select"
|
|
415
|
-
],
|
|
416
|
-
"files": [
|
|
417
|
-
{
|
|
418
|
-
"path": "src/wc/components/TableSavedViews/TableSavedViews.css",
|
|
419
|
-
"content": ":host {\n --ds-choice-popup-min-inline-size: var(--dimension-menu-width-xs);\n\n display: inline-block;\n min-inline-size: 0;\n max-inline-size: var(--dimension-menu-width-xs);\n}\n\nds-select {\n display: block;\n min-inline-size: 0;\n max-inline-size: 100%;\n}\n",
|
|
420
|
-
"type": "registry:ui"
|
|
421
|
-
},
|
|
422
|
-
{
|
|
423
|
-
"path": "src/wc/components/TableSavedViews/TableSavedViews.tsx",
|
|
424
|
-
"content": "import { Component, Element, Event, EventEmitter, h, Host, Prop, State } from '@stencil/core';\nimport type { MenuItemData } from '../Menu/menu-types';\nimport type {\n SelectOptionActionDetail,\n SelectOptionSubtextActionDetail,\n SelectValue,\n} from '../Select/Select';\nimport type {\n TableSavedView,\n TableSavedViewChangeDetail,\n TableSavedViewCreateDetail,\n TableSavedViewDiscardDetail,\n TableSavedViewRemoveDetail,\n TableSavedViewRenameDetail,\n TableSavedViewSaveDetail,\n} from './table-saved-views-types';\n\ntype SavedViewDialogMode = 'create' | 'rename';\n\nlet tableSavedViewsId = 0;\n\n@Component({\n tag: 'ds-table-saved-views',\n styleUrl: 'TableSavedViews.css',\n scoped: true,\n})\nexport class TableSavedViews {\n @Element() el!: HTMLElement;\n\n /** Application-owned custom saved views. Assign arrays through the JavaScript property. */\n /** Show the trigger border. */\n @Prop() hasBorder: boolean = true;\n @Prop() views: TableSavedView[] = [];\n /** ID of the controlled active view, including the default view ID. */\n @Prop() value: string = '__default__';\n /** Whether the current table state differs from the selected custom view. Ignored for the default view. */\n @Prop() dirty: boolean = false;\n /** ID used for the built-in default view. */\n @Prop() defaultViewId: string = '__default__';\n /** Label used for the built-in default view. */\n @Prop() defaultViewLabel: string = 'Default';\n /** Accessible name for the saved-views select. */\n @Prop() label: string = 'Saved views';\n /** Trigger label shown while the default view is selected. */\n @Prop() triggerLabel: string = 'Views';\n /** Use an icon-only trigger in an explicitly compact toolbar. */\n @Prop() compact: boolean = false;\n /** Footer action label that opens the create-view dialog. */\n @Prop() createLabel: string = 'New view';\n\n /** Emitted when a view selection is requested. */\n @Event() dsViewChange!: EventEmitter<TableSavedViewChangeDetail>;\n /** Emitted after a valid create-view name is submitted. */\n @Event() dsViewCreate!: EventEmitter<TableSavedViewCreateDetail>;\n /** Emitted after a valid renamed view name is submitted. */\n @Event() dsViewRename!: EventEmitter<TableSavedViewRenameDetail>;\n /** Emitted when a custom view removal is requested. */\n @Event() dsViewRemove!: EventEmitter<TableSavedViewRemoveDetail>;\n /** Emitted when changes to the active custom view should replace its stored payload. */\n @Event() dsViewSave!: EventEmitter<TableSavedViewSaveDetail>;\n /** Emitted when the active custom view's stored payload should be restored. */\n @Event() dsViewDiscard!: EventEmitter<TableSavedViewDiscardDetail>;\n\n @State() private actionViewId: string | null = null;\n @State() private actionAnchorId: string | undefined;\n @State() private actionMenuOpen = false;\n @State() private actionMenuInitialFocusVisible = false;\n @State() private dialogOpen = false;\n @State() private dialogMode: SavedViewDialogMode = 'create';\n @State() private dialogViewId: string | null = null;\n @State() private nameDraft = '';\n @State() private nameError = '';\n\n private readonly componentId = `ds-table-saved-views-${++tableSavedViewsId}`;\n private readonly selectId = `${this.componentId}-select`;\n private readonly actionMenuId = `${this.componentId}-actions`;\n private readonly fieldId = `${this.componentId}-name-field`;\n private readonly inputId = `${this.componentId}-name-input`;\n private readonly actionItems: MenuItemData[] = [\n { label: 'Rename', value: 'rename' },\n { label: 'Remove', value: 'remove', isDestructive: true },\n ];\n\n private get selectedCustomView(): TableSavedView | undefined {\n return this.views.find(view => view.id === this.value);\n }\n\n private get dialogView(): TableSavedView | undefined {\n return this.views.find(view => view.id === this.dialogViewId);\n }\n\n private get sections() {\n const custom = this.views.map(view => ({\n label: view.label,\n value: view.id,\n subtextActions:\n this.dirty && view.id === this.selectedCustomView?.id\n ? [\n { label: 'Save', value: 'save' },\n { label: 'Discard', value: 'discard', tone: 'negative' as const },\n ]\n : undefined,\n action: {\n label: `Options for ${view.label}`,\n controls: this.actionMenuId,\n expanded: this.actionViewId === view.id && this.actionMenuOpen,\n surfaceOpen: this.actionViewId === view.id,\n },\n }));\n const templates = {\n header: 'Templates',\n options: [{ label: this.defaultViewLabel, value: this.defaultViewId }],\n divider: custom.length > 0,\n };\n return custom.length > 0 ? [templates, { header: 'Custom', options: custom }] : [templates];\n }\n\n private handleViewChange(value: SelectValue) {\n if (typeof value === 'string') this.dsViewChange.emit({ viewId: value });\n }\n\n private handleSubtextAction(detail: SelectOptionSubtextActionDetail) {\n const view = this.selectedCustomView;\n if (!view || !this.dirty || detail.value !== view.id) return;\n if (detail.actionValue === 'save') this.dsViewSave.emit({ viewId: view.id });\n if (detail.actionValue === 'discard') this.dsViewDiscard.emit({ viewId: view.id });\n }\n\n private handleOptionAction(detail: SelectOptionActionDetail) {\n if (!this.views.some(view => view.id === detail.value)) return;\n this.actionMenuInitialFocusVisible = detail.originalEvent.detail === 0;\n if (this.actionViewId === detail.value && this.actionMenuOpen) {\n this.actionMenuOpen = false;\n return;\n }\n this.actionViewId = detail.value;\n this.actionAnchorId = detail.anchorId;\n this.actionMenuOpen = true;\n }\n\n private handleActionSelect(event: CustomEvent<MenuItemData>) {\n const viewId = this.actionViewId;\n this.actionMenuOpen = false;\n if (!viewId) return;\n if (event.detail.value === 'rename') this.openDialog('rename', viewId);\n if (event.detail.value === 'remove') this.dsViewRemove.emit({ viewId });\n }\n\n private openDialog(mode: SavedViewDialogMode, viewId: string | null = null) {\n const view = mode === 'rename' ? this.views.find(item => item.id === viewId) : undefined;\n if (mode === 'rename' && !view) return;\n this.dialogMode = mode;\n this.dialogViewId = view?.id ?? null;\n this.nameDraft = view?.label ?? '';\n this.nameError = '';\n this.dialogOpen = true;\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n const input = this.el.querySelector<HTMLElement & { setFocus?: () => Promise<void> }>(\n `#${this.inputId}`\n );\n void input?.setFocus?.();\n });\n });\n }\n\n private validateName(): string {\n const name = this.nameDraft.trim();\n if (!name) return 'View name is required.';\n const duplicate = this.views.some(\n view =>\n view.id !== this.dialogViewId &&\n view.label.trim().toLocaleLowerCase() === name.toLocaleLowerCase()\n );\n if (\n duplicate ||\n this.defaultViewLabel.trim().toLocaleLowerCase() === name.toLocaleLowerCase()\n ) {\n return 'A view with this name already exists.';\n }\n return '';\n }\n\n private submitDialog() {\n const error = this.validateName();\n if (error) {\n this.nameError = error;\n return;\n }\n const name = this.nameDraft.trim();\n if (this.dialogMode === 'rename' && this.dialogView) {\n this.dsViewRename.emit({ viewId: this.dialogView.id, name });\n } else {\n this.dsViewCreate.emit({ name });\n }\n this.dialogOpen = false;\n }\n\n private finishDialogClose() {\n if (this.dialogOpen) return;\n this.dialogViewId = null;\n this.nameDraft = '';\n this.nameError = '';\n const select = this.el.querySelector<HTMLElement & { setFocus?: () => Promise<void> }>(\n `#${this.selectId}`\n );\n void select?.setFocus?.();\n }\n\n render() {\n return (\n <Host>\n <ds-select\n neutralTrigger\n hasBorder={this.hasBorder}\n id={this.selectId}\n size=\"md\"\n icon=\"ViewMenu\"\n indicator=\"none\"\n collapseLabel\n iconOnly={this.compact}\n width=\"fill\"\n placeholder={this.label}\n aria-label={this.label}\n sections={this.sections}\n value={this.value}\n triggerLabel={this.selectedCustomView ? undefined : this.triggerLabel}\n triggerLabelPlaceholder={!this.selectedCustomView}\n dot={this.dirty && Boolean(this.selectedCustomView)}\n footerActionLabel={this.createLabel}\n activeFill={false}\n allowClear={false}\n onDsChange={(event: CustomEvent<SelectValue>) => this.handleViewChange(event.detail)}\n onDsFooterAction={() => this.openDialog('create')}\n onDsOptionSubtextAction={(event: CustomEvent<SelectOptionSubtextActionDetail>) =>\n this.handleSubtextAction(event.detail)\n }\n onDsOptionAction={(event: CustomEvent<SelectOptionActionDetail>) =>\n this.handleOptionAction(event.detail)\n }\n />\n\n <ds-menu\n id={this.actionMenuId}\n anchorId={this.actionAnchorId}\n menuLabel=\"Saved view options\"\n side=\"bottom\"\n align=\"end\"\n menuWidth=\"max-content\"\n minWidth=\"0\"\n items={this.actionItems}\n open={this.actionMenuOpen}\n initialFocusVisible={this.actionMenuInitialFocusVisible}\n onDsClose={() => (this.actionMenuOpen = false)}\n onDsAfterClose={() => {\n if (this.actionMenuOpen) return;\n this.actionViewId = null;\n this.actionAnchorId = undefined;\n }}\n onDsSelect={(event: CustomEvent<MenuItemData>) => this.handleActionSelect(event)}\n />\n\n <ds-modal\n open={this.dialogOpen}\n heading={this.dialogMode === 'rename' ? 'Rename view' : 'Save as new view'}\n modalWidth=\"sm\"\n onDsClose={() => (this.dialogOpen = false)}\n onDsAfterClose={() => this.finishDialogClose()}\n >\n <ds-field\n fieldId={this.fieldId}\n error={this.nameError.length > 0}\n errorMessage={this.nameError}\n >\n <ds-input\n id={this.inputId}\n size=\"md\"\n aria-label=\"Name\"\n placeholder=\"Enter a unique name\"\n value={this.nameDraft}\n autoFocus={true}\n onDsChange={(event: CustomEvent<string>) => {\n this.nameDraft = event.detail;\n if (this.nameError) this.nameError = '';\n }}\n onKeyDown={(event: KeyboardEvent) => {\n if (event.key === 'Enter') this.submitDialog();\n }}\n />\n </ds-field>\n\n <ds-button-filled\n slot=\"footer\"\n label={this.dialogMode === 'rename' ? 'Rename' : 'Save'}\n size=\"md\"\n onDsClick={() => this.submitDialog()}\n />\n <ds-button-unfilled\n slot=\"footer\"\n label=\"Cancel\"\n size=\"md\"\n onDsClick={() => (this.dialogOpen = false)}\n />\n </ds-modal>\n </Host>\n );\n }\n}\n",
|
|
425
|
-
"type": "registry:ui"
|
|
426
|
-
},
|
|
427
|
-
{
|
|
428
|
-
"path": "src/wc/components/TableSavedViews/table-saved-views-types.ts",
|
|
429
|
-
"content": "export interface TableSavedView {\n id: string;\n label: string;\n}\n\nexport interface TableSavedViewChangeDetail {\n viewId: string;\n}\n\nexport interface TableSavedViewCreateDetail {\n name: string;\n}\n\nexport interface TableSavedViewRenameDetail {\n viewId: string;\n name: string;\n}\n\nexport interface TableSavedViewRemoveDetail {\n viewId: string;\n}\n\nexport interface TableSavedViewSaveDetail {\n viewId: string;\n}\n\nexport interface TableSavedViewDiscardDetail {\n viewId: string;\n}\n",
|
|
430
|
-
"type": "registry:ui"
|
|
431
|
-
}
|
|
432
|
-
]
|
|
433
|
-
}
|