@ds-mo/ui 14.2.0 → 14.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +1 -1
  3. package/dist/agent.json +144 -19
  4. package/dist/angular/ds-pagination.d.ts +19 -0
  5. package/dist/angular/ds-pagination.js +42 -0
  6. package/dist/angular/ds-table.d.ts +4 -1
  7. package/dist/angular/ds-table.js +7 -4
  8. package/dist/angular/index.d.ts +1 -1
  9. package/dist/angular/index.js +1 -0
  10. package/dist/angular/proxies.d.ts +1 -0
  11. package/dist/angular/proxies.js +1 -0
  12. package/dist/components/ds-agent-questionnaire.js +1 -1
  13. package/dist/components/ds-agent-response.js +1 -1
  14. package/dist/components/ds-banner.js +1 -1
  15. package/dist/components/ds-bar-nav.js +1 -1
  16. package/dist/components/ds-bar-title.js +1 -1
  17. package/dist/components/ds-bar-workflow.js +1 -1
  18. package/dist/components/ds-bar-workflow.js.map +1 -1
  19. package/dist/components/ds-card-overview.js +1 -1
  20. package/dist/components/ds-checkbox.js +1 -1
  21. package/dist/components/ds-code-block.js +1 -1
  22. package/dist/components/ds-filter-menu.js +1 -1
  23. package/dist/components/ds-input.js +1 -1
  24. package/dist/components/ds-markdown.js +1 -1
  25. package/dist/components/ds-menu.js +1 -1
  26. package/dist/components/ds-message-actions.js +1 -1
  27. package/dist/components/ds-message-composer.js +1 -1
  28. package/dist/components/ds-message-scroller.js +1 -1
  29. package/dist/components/ds-mobile-header.js +1 -1
  30. package/dist/components/ds-mobile-section-switcher.js +1 -1
  31. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  32. package/dist/components/ds-modal.js +1 -1
  33. package/dist/components/ds-pagination.d.ts +11 -0
  34. package/dist/components/ds-pagination.js +2 -0
  35. package/dist/components/ds-pagination.js.map +1 -0
  36. package/dist/components/ds-panel-nav.js +1 -1
  37. package/dist/components/ds-panel-tool-header.js +1 -1
  38. package/dist/components/ds-panel-tool-search.js +1 -1
  39. package/dist/components/ds-panel-tools.js +1 -1
  40. package/dist/components/ds-radio.js +1 -1
  41. package/dist/components/ds-select.js +1 -1
  42. package/dist/components/ds-select.js.map +1 -1
  43. package/dist/components/ds-shell-app.js +1 -1
  44. package/dist/components/ds-shell-page.js +1 -1
  45. package/dist/components/ds-shell-tools.js +1 -1
  46. package/dist/components/ds-slider.js +1 -1
  47. package/dist/components/ds-swatch-picker.js +1 -1
  48. package/dist/components/ds-switch.js +1 -1
  49. package/dist/components/ds-table.js +1 -1
  50. package/dist/components/ds-table.js.map +1 -1
  51. package/dist/components/ds-toast.js +1 -1
  52. package/dist/components/ds-tooltip.js +1 -1
  53. package/dist/components/ds-typing-indicator.js +1 -1
  54. package/dist/components/index.d.ts +7 -0
  55. package/dist/components/{p-D2xWcVv6.js → p-B8q-6a03.js} +2 -2
  56. package/dist/components/{p-DYzjeIAT.js → p-BHjw0x3L.js} +2 -2
  57. package/dist/components/{p-CTVMXN9s.js → p-BSBQ5kGe.js} +2 -2
  58. package/dist/components/{p-DmZupC1-.js → p-BiBXCjjo.js} +2 -2
  59. package/dist/components/{p-BOCrvs-v.js → p-Btxwp4lJ.js} +2 -2
  60. package/dist/components/{p-DmwMiaWL.js → p-Bxe6532y.js} +2 -2
  61. package/dist/components/{p-DD5OCVXx.js → p-C5TrNd31.js} +2 -2
  62. package/dist/components/{p-ChlRsQYY.js → p-C68-8tlp.js} +2 -2
  63. package/dist/components/{p-BnPcWBA8.js → p-CW3sRYuf.js} +2 -2
  64. package/dist/components/{p-DJ_FsLCc.js → p-CWsziQQY.js} +2 -2
  65. package/dist/components/{p-CRjpqqAI.js → p-Cjf54_Cq.js} +2 -2
  66. package/dist/components/{p-NTU5jrG_.js → p-CkWVI16a.js} +2 -2
  67. package/dist/components/{p-BDCrM8-1.js → p-Cpqd69kg.js} +2 -2
  68. package/dist/components/p-CtOK5oZ1.js +2 -0
  69. package/dist/components/p-CtOK5oZ1.js.map +1 -0
  70. package/dist/components/p-D1ZI_10t.js +2 -0
  71. package/dist/components/p-D1ZI_10t.js.map +1 -0
  72. package/dist/components/{p-C-GNvCk0.js → p-Dh_TVLnz.js} +2 -2
  73. package/dist/components/{p-BiOfbCke.js → p-DkPNCBA8.js} +2 -2
  74. package/dist/components/{p-DT4WdAup.js → p-Dkkid-rh.js} +2 -2
  75. package/dist/components/p-DwqUW4Rg.js +2 -0
  76. package/dist/components/p-DwqUW4Rg.js.map +1 -0
  77. package/dist/components/{p-eKARJmWs.js → p-nImbYpwo.js} +2 -2
  78. package/dist/components/{p-BMJcBo8B.js → p-ohWEVGHg.js} +2 -2
  79. package/dist/components/{p-c9QiNOc7.js → p-qA4eKZkW.js} +2 -2
  80. package/dist/docs/components.json +470 -34
  81. package/dist/mcp-data/registry/pagination.json +295 -0
  82. package/dist/mcp-data/registry/registry.json +146 -18
  83. package/dist/mcp-data/registry/table.json +69 -37
  84. package/dist/mcp-data/registry/tooltip.json +2 -1
  85. package/dist/react/components.d.ts +1 -0
  86. package/dist/react/components.js +1 -0
  87. package/dist/react/ds-pagination.d.ts +12 -0
  88. package/dist/react/ds-pagination.js +12 -0
  89. package/dist/react/ds-table.d.ts +2 -1
  90. package/dist/react/ds-table.js +1 -0
  91. package/dist/styles/table.css +9 -3
  92. package/dist/types/components/Pagination/Pagination.d.ts +28 -0
  93. package/dist/types/components/Pagination/index.d.ts +3 -0
  94. package/dist/types/components/Pagination/pagination-model.d.ts +13 -0
  95. package/dist/types/components/Pagination/pagination-types.d.ts +25 -0
  96. package/dist/types/components/Table/Table.d.ts +10 -3
  97. package/dist/types/components/Table/index.d.ts +1 -1
  98. package/dist/types/components/Table/table-render-model.d.ts +1 -1
  99. package/dist/types/components/Table/table-types.d.ts +5 -1
  100. package/dist/types/components/Tooltip/Tooltip.d.ts +3 -0
  101. package/dist/types/components.d.ts +148 -13
  102. package/package.json +1 -1
  103. package/dist/components/p-CtSxm6PI.js +0 -2
  104. package/dist/components/p-CtSxm6PI.js.map +0 -1
  105. /package/dist/components/{p-D2xWcVv6.js.map → p-B8q-6a03.js.map} +0 -0
  106. /package/dist/components/{p-DYzjeIAT.js.map → p-BHjw0x3L.js.map} +0 -0
  107. /package/dist/components/{p-CTVMXN9s.js.map → p-BSBQ5kGe.js.map} +0 -0
  108. /package/dist/components/{p-DmZupC1-.js.map → p-BiBXCjjo.js.map} +0 -0
  109. /package/dist/components/{p-BOCrvs-v.js.map → p-Btxwp4lJ.js.map} +0 -0
  110. /package/dist/components/{p-DmwMiaWL.js.map → p-Bxe6532y.js.map} +0 -0
  111. /package/dist/components/{p-DD5OCVXx.js.map → p-C5TrNd31.js.map} +0 -0
  112. /package/dist/components/{p-ChlRsQYY.js.map → p-C68-8tlp.js.map} +0 -0
  113. /package/dist/components/{p-BnPcWBA8.js.map → p-CW3sRYuf.js.map} +0 -0
  114. /package/dist/components/{p-DJ_FsLCc.js.map → p-CWsziQQY.js.map} +0 -0
  115. /package/dist/components/{p-CRjpqqAI.js.map → p-Cjf54_Cq.js.map} +0 -0
  116. /package/dist/components/{p-NTU5jrG_.js.map → p-CkWVI16a.js.map} +0 -0
  117. /package/dist/components/{p-BDCrM8-1.js.map → p-Cpqd69kg.js.map} +0 -0
  118. /package/dist/components/{p-C-GNvCk0.js.map → p-Dh_TVLnz.js.map} +0 -0
  119. /package/dist/components/{p-BiOfbCke.js.map → p-DkPNCBA8.js.map} +0 -0
  120. /package/dist/components/{p-DT4WdAup.js.map → p-Dkkid-rh.js.map} +0 -0
  121. /package/dist/components/{p-eKARJmWs.js.map → p-nImbYpwo.js.map} +0 -0
  122. /package/dist/components/{p-BMJcBo8B.js.map → p-ohWEVGHg.js.map} +0 -0
  123. /package/dist/components/{p-c9QiNOc7.js.map → p-qA4eKZkW.js.map} +0 -0
@@ -1 +1 @@
1
- {"schemaVersion":1,"package":"@ds-mo/ui","version":"14.2.0","components":69,"digest":"61941a8cd766bc3bd0a8f739d2010ca8ef421407d029c76d335c5da1494957a5","completedAt":"2026-08-18T21:50:33.713Z"}
1
+ {"schemaVersion":1,"package":"@ds-mo/ui","version":"14.3.0","components":70,"digest":"a2fa2439bb47c11bab7da58e1cc3ac47b47e68f6a59540e3b88125b1f24aa455","completedAt":"2026-08-19T01:48:50.493Z"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
3
  "package": "@ds-mo/ui",
4
- "packageVersion": "14.2.0",
4
+ "packageVersion": "14.3.0",
5
5
  "kind": "patterns",
6
6
  "entries": [
7
7
  {
package/dist/agent.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
3
  "package": "@ds-mo/ui",
4
- "packageVersion": "14.2.0",
4
+ "packageVersion": "14.3.0",
5
5
  "kind": "components",
6
6
  "entries": [
7
7
  {
@@ -5777,6 +5777,120 @@
5777
5777
  "tooltip"
5778
5778
  ]
5779
5779
  },
5780
+ {
5781
+ "id": "component:ds-pagination",
5782
+ "tag": "ds-pagination",
5783
+ "name": "pagination",
5784
+ "title": "Pagination",
5785
+ "summary": "Controlled page-size, range, and first/previous/next/last navigation for application-owned data windows.",
5786
+ "intentStatus": "complete",
5787
+ "intent": {
5788
+ "audience": "general",
5789
+ "status": "stable",
5790
+ "summary": "Controlled page-size, range, and first/previous/next/last navigation for application-owned data windows.",
5791
+ "useWhen": [
5792
+ "A result set is divided into discrete pages and the application owns fetching or slicing each page.",
5793
+ "A table or list needs a compact page-size selector, result range, and boundary-aware navigation."
5794
+ ],
5795
+ "avoidWhen": [
5796
+ "More results append to one continuous list; use the owning component's incremental-loading behavior instead.",
5797
+ "Only previous and next navigation is meaningful and the total result count is unknown."
5798
+ ],
5799
+ "commonlyComposedWith": [
5800
+ "component:ds-table",
5801
+ "component:ds-select",
5802
+ "component:ds-button-unfilled"
5803
+ ],
5804
+ "accessibility": [
5805
+ "The component renders a named navigation region, labels its page-size combobox, and gives every icon-only boundary control an explicit page action name.",
5806
+ "The visible range and page position use tabular numerals and are repeated in a polite atomic status update with the localized item noun.",
5807
+ "Inactive boundary controls and every control during loading remain non-interactive while retaining their accessible names."
5808
+ ],
5809
+ "states": [
5810
+ "pageIndex, pageSize, totalItems, and pageSizeOptions are controlled inputs. dsChange reports the complete next pagination state, previous index and size, and whether the request changed the page or page size; it never mutates controlled inputs.",
5811
+ "Page-size changes request the first page. Out-of-range page indexes and invalid numeric inputs normalize only for presentation; the owner remains authoritative.",
5812
+ "Zero results display 0–0 of 0 and Page 1 of 1. A partial final page caps the visible range at totalItems.",
5813
+ "loading preserves the full pagination surface, applies aria-busy to the navigation region, and prevents page or page-size requests."
5814
+ ],
5815
+ "responsiveBehavior": [
5816
+ "The compact controls remain on one line. When inline space is insufficient, the pagination surface scrolls horizontally rather than wrapping labels away from their controls."
5817
+ ],
5818
+ "frameworkCaveats": {
5819
+ "customElements": [
5820
+ "Assign pageSizeOptions through the JavaScript property and replace controlled values in response to dsChange."
5821
+ ],
5822
+ "react": [
5823
+ "Replace pageIndex and pageSize from the emitted detail before supplying the requested data window."
5824
+ ],
5825
+ "angular": [
5826
+ "Bind numeric inputs as properties and update the owning signals from the dsChange output."
5827
+ ]
5828
+ },
5829
+ "references": [
5830
+ {
5831
+ "label": "Storybook review states",
5832
+ "path": "src/wc/components/Pagination/Pagination.stories.ts"
5833
+ }
5834
+ ]
5835
+ },
5836
+ "api": {
5837
+ "props": {
5838
+ "itemLabel": {
5839
+ "type": "string",
5840
+ "required": false
5841
+ },
5842
+ "label": {
5843
+ "type": "string",
5844
+ "required": false
5845
+ },
5846
+ "loading": {
5847
+ "type": "boolean",
5848
+ "required": false
5849
+ },
5850
+ "pageIndex": {
5851
+ "type": "number",
5852
+ "required": false
5853
+ },
5854
+ "pageSize": {
5855
+ "type": "number",
5856
+ "required": false
5857
+ },
5858
+ "pageSizeLabel": {
5859
+ "type": "string",
5860
+ "required": false
5861
+ },
5862
+ "pageSizeOptions": {
5863
+ "type": "number[]",
5864
+ "required": false
5865
+ },
5866
+ "totalItems": {
5867
+ "type": "number",
5868
+ "required": false
5869
+ }
5870
+ },
5871
+ "events": [
5872
+ {
5873
+ "name": "dsChange",
5874
+ "detail": "PaginationChangeDetail"
5875
+ }
5876
+ ],
5877
+ "slots": []
5878
+ },
5879
+ "exports": {
5880
+ "customElement": "ds-pagination",
5881
+ "react": "DsPagination",
5882
+ "angular": "DsPagination"
5883
+ },
5884
+ "dependencies": [
5885
+ "@ds-mo/ui",
5886
+ "@ds-mo/tokens"
5887
+ ],
5888
+ "componentDependencies": [
5889
+ "button-unfilled",
5890
+ "select",
5891
+ "text"
5892
+ ]
5893
+ },
5780
5894
  {
5781
5895
  "id": "component:ds-panel-nav",
5782
5896
  "tag": "ds-panel-nav",
@@ -8469,27 +8583,28 @@
8469
8583
  "tag": "ds-table",
8470
8584
  "name": "table",
8471
8585
  "title": "Table",
8472
- "summary": "Semantic, controlled data table with durable visual primitives for cell geometry, column geometry, grouping, sorting, multi-selection, sticky overflow, and incremental loading.",
8586
+ "summary": "Semantic, controlled data table with durable visual primitives for cell geometry, grouping, sorting, multi-selection, sticky overflow, incremental loading, and top-level pagination.",
8473
8587
  "intentStatus": "complete",
8474
8588
  "intent": {
8475
8589
  "audience": "general",
8476
8590
  "status": "stable",
8477
- "summary": "Semantic, controlled data table with durable visual primitives for cell geometry, column geometry, grouping, sorting, multi-selection, sticky overflow, and incremental loading.",
8591
+ "summary": "Semantic, controlled data table with durable visual primitives for cell geometry, grouping, sorting, multi-selection, sticky overflow, incremental loading, and top-level pagination.",
8478
8592
  "useWhen": [
8479
8593
  "A structured dataset needs native row and column relationships, optional one-level grouping, or comparable values across records.",
8480
- "An application needs controlled sorting, loaded-row selection, or lazy loading while retaining ownership of the data query and transformations.",
8594
+ "An application needs controlled sorting, loaded-row selection, infinite loading, or pagination while retaining ownership of the data query and transformations.",
8481
8595
  "A product table needs a token-backed recipe whose individual header, group, row, cell, selection, state, and load-more layers remain easy to restyle."
8482
8596
  ],
8483
8597
  "avoidWhen": [
8484
8598
  "Content is primarily editorial prose; use semantic product-owned markup with the prose recipe instead.",
8485
8599
  "A small label/value set reads more clearly as a list, description list, or card.",
8486
- "The interface requires tree-grid behavior, nested grouping, inline cell editing, row reordering, multiple pinned columns per edge, or virtualization; those are outside this first contract.",
8487
- "The application expects the component to fetch, paginate, sort, group, or mutate records internally."
8600
+ "The interface requires tree-grid behavior, nested grouping, inline cell editing, row reordering, multiple pinned columns per edge, or virtualization; those remain outside the contract.",
8601
+ "The application expects the component to fetch, slice pages, sort, group, or mutate records internally."
8488
8602
  ],
8489
8603
  "commonlyComposedWith": [
8490
8604
  "component:ds-empty-state",
8491
8605
  "component:ds-skeleton",
8492
8606
  "component:ds-loader",
8607
+ "component:ds-pagination",
8493
8608
  "component:ds-bar-action",
8494
8609
  "component:ds-button-unfilled",
8495
8610
  "component:ds-tag",
@@ -8502,15 +8617,15 @@
8502
8617
  "Interactive rows are focusable as native rows, activate with Enter or Space, and do not steal activation from their nested selection or action controls.",
8503
8618
  "Scrollable table regions become keyboard focusable and named only when overflow exists.",
8504
8619
  "Incremental loading, newly appended row counts, failures, and end-of-results transitions are announced through a polite status region without replacing visible state. In grouped tables, announcements name the independently loading group.",
8505
- "An optional result summary footer appears below the table frame when both displayedCount and totalCount are finite, formatting Displaying {displayed} of {total} in text-body-medium secondary. The footer slot can replace that copy, while footer-leading and footer-trailing compose actions into the same compact-bar anatomy. Authored footer content can also opt into the 48px footer without controlled counts."
8620
+ "Static and infinite tables may show an optional result summary footer when displayedCount and totalCount are finite. Pagination mode instead renders a named Pagination control, whose range changes are announced independently. The footer slot can replace summary copy, while footer-leading and footer-trailing remain available in the same compact-bar anatomy."
8506
8621
  ],
8507
8622
  "states": [
8508
- "Columns, rows, groups, grouping, sorting, selected row IDs, collapsed group IDs, displayedCount, totalCount, and lazy-loading state are controlled inputs. Events communicate intent and never mutate those inputs. The optional header is one full-width composable table-local surface: the component owns its 48px chrome, 8px inset on every side, and sticky placement while the application owns all internal layout, controls, labels, filtering behavior, and action handling. The footer retains its compact-bar composition: application-owned leading status sits left while the controlled result summary aligns right, before any trailing action. Content-sized tables remain natural for sparse or fixed-count results. height bounds the complete header, frame, and footer composition. fitViewport reserves the compact-state composition height in the nearest vertical scrollport while growing the visible table into that reservation as surrounding page chrome collapses.",
8509
- "Grouping supports one level. The application supplies groups in a fixed product-defined order and supplies ordered member rows independently. Group section headers show an emphasized text-body-medium label followed by a rounded sm Tag containing only the numeric count. The Tag uses the group's faint intent surface (neutral when intent is absent) and a small-elevation, button-hugging wrapper; a localized countLabel remains available to assistive technology. Groups may declare an optional intent (brand, neutral, negative, warning, caution, positive) that paints an LTR gradient from the faint intent surface at the label edge into faint neutral at the trailing edge, plus a bold intent title color. Neutral groups remain solid faint neutral. Section separators are painted inside that viewport-width surface so translucent border tokens composite with each intent background; the final collapsed section does not duplicate the terminal table edge. A trailing visually neutral icon-only ButtonUnfilled uses the 24px md double-inset action recipe and toggles controlled collapsedGroupIds, showing ChevronUp while expanded and ChevronDown while collapsed. While any group remains expanded, a ChevronDownUp action uses the xs sort-control recipe widened to a table-owned 24px lane and collapses every group. It appears at the inline-end edge of the trailing column declared with kind action when one exists; otherwise a button-hugging 24px by 16px medium-elevation surface floats at the visible scrollport's header edge so the action remains reachable while member columns scroll beneath it. With stickyHeader enabled, each contained section uses its one real section row as a native sticky header inside its real row-group boundary. The browser therefore owns pinning, push-off, scrolling, and resize layout in one pass without a duplicated lane, active-section state, transforms, or scroll-time geometry. Shared grid tracks retain exact header and member-cell alignment. The section surface also stays pinned to the visible horizontal scrollport and spans the smaller of the visible viewport or table width.",
8623
+ "Columns, rows, groups, grouping, sorting, selected row IDs, collapsed group IDs, dataMode, pagination, displayedCount, totalCount, and incremental-loading state are controlled inputs. Events communicate intent and never mutate those inputs. The optional header is one full-width composable table-local surface: the component owns its 48px chrome, 8px inset on every side, and sticky placement while the application owns all internal layout, controls, labels, filtering behavior, and action handling. The footer retains its compact-bar composition: application-owned leading status sits left while a controlled result summary or Pagination aligns right, before any trailing action. Content-sized tables remain natural for sparse or fixed-count results. height bounds the complete header, frame, and footer composition. fitViewport reserves the compact-state composition height in the nearest vertical scrollport while growing the visible table into that reservation as surrounding page chrome collapses.",
8624
+ "Grouping supports one level. The application supplies groups in a fixed product-defined order and supplies ordered member rows independently. Group section headers show an emphasized text-body-medium label followed by a middle dot and plain secondary loaded progress, for example Critical · 50 of 166. The loaded value comes from the supplied member rows and the total comes from totalCount. A localized countLabel total phrase remains available for the complete assistive progress announcement. Groups may declare an optional intent (brand, neutral, negative, warning, caution, positive) that paints an LTR gradient from the faint intent surface at the label edge into faint neutral at the trailing edge, plus a bold intent title color. Neutral groups remain solid faint neutral. Section separators are painted inside that viewport-width surface so translucent border tokens composite with each intent background. Internal sections keep their separators; a collapsed or empty section header yields its separator only when it is the table's final rendered item. A trailing visually neutral icon-only ButtonUnfilled uses the 24px md double-inset action recipe and toggles controlled collapsedGroupIds, showing ChevronUp while expanded and ChevronDown while collapsed. While any group is expanded, a ChevronDownUp action uses the xs sort-control recipe widened to a table-owned 24px lane and collapses every group. It appears at the inline-end edge of the trailing column declared with kind action when one exists; otherwise a button-hugging 24px by 16px medium-elevation surface floats at the visible scrollport's header edge so the action remains reachable while member columns scroll beneath it. With stickyHeader enabled, each contained section uses its one real section row as a native sticky header inside its real row-group boundary. The browser therefore owns pinning, push-off, scrolling, and resize layout in one pass without a duplicated lane, active-section state, transforms, or scroll-time geometry. Shared grid tracks retain exact header and member-cell alignment. The section surface also stays pinned to the visible horizontal scrollport and spans the smaller of the visible viewport or table width.",
8510
8625
  "An active member sort toggles only between ascending and descending; activating a different sortable label moves the one sorting state to that key. Applications may still clear the controlled sort state explicitly. Grouping does not introduce another interactive direction.",
8511
8626
  "Compound headers can expose multiple related labels with independent sort keys. Each label owns only its content-width interaction target while the active direction remains in the column's alignment-aware sort lane.",
8512
- "Initial loading uses row-shaped skeletons that preserve the standard single-line cell padding, row dividers, column dividers, selection lane, and sticky-lane boundaries. Empty, initial error, load-more, retry, loading-more, and terminal bands remain fixed to the visible table width while data columns scroll horizontally beneath them. Incremental loading retains existing rows and supports automatic sentinel, manual load-more, retry, and terminal states. When grouping is active, each expanded group owns its load band at the end of its member rows; the global bottom-of-table loader is not rendered.",
8513
- "Lazy loading replaces pagination. The application owns requests, cancellation, cursors, deduplication, appended records, and query identity. Ungrouped requests use loadIdentity and dsLoadMore. Grouped requests use each TableGroup's hasMore, loadingMore, loadMoreError, and loadIdentity state and emit dsGroupLoadMore with the group ID; authoritative totalCount remains stable while member rows append.",
8627
+ "Initial loading uses row-shaped skeletons that preserve the standard single-line cell padding, row dividers, column dividers, selection lane, and sticky-lane boundaries. Empty, initial error, load-more, retry, loading-more, and terminal bands remain fixed to the visible table width while data columns scroll horizontally beneath them. Incremental loading retains existing rows and supports automatic sentinel, manual load-more, retry, and terminal states. When grouping is active, each expanded group owns its load band at the end of its member rows; internal group load bands keep their bottom divider, while a terminal group load band yields it to the table edge or footer. The global bottom-of-table loader is not rendered.",
8628
+ "dataMode selects the top-level window: infinite appends ungrouped rows through dsLoadMore when hasMore is true, and pagination renders the controlled page supplied by the application and emits dsPaginationChange. Infinite mode also covers fixed result sets by leaving hasMore false. In a grouped paginated table, pagination counts and windows only parent groups; each expanded parent can still append its own members through dsGroupLoadMore. The application owns requests, cancellation, cursors, deduplication, slicing, and query identity.",
8514
8629
  "Rows opt into complete-row activation with interactive and emit dsRowActivate without owning navigation. Selection paints through the shared selected ::before layer; interactive hover and press paint through the shared ::after layer.",
8515
8630
  "Row selection owns the single sticky start lane. One explicitly sized application column can own the sticky end lane, or the start lane when selection is absent. Each sticky boundary owns one fixed divider and a row-clipped directional shadow that paints into the adjacent scrolling columns only while more inline content remains beyond that edge.",
8516
8631
  "Cells accept scalar content, standard primary-and-secondary or dual-primary text primitives, declarative Tag, icon-only, 16:9 Image, or ButtonUnfilled Action content, or explicit Empty and Blank absence values. Standard secondary copy defaults to the secondary foreground and may declare a semantic Text color when the application data carries intent; dual-primary copy keeps both tracks primary unless explicitly colored. Single-track text, selection, tag-only, icon-only, Action, Empty, and Blank cells resolve a 40px base contract while multi-track cells grow downward. Tag cells use the double-inset Tag recipe; the md tag-only recipe is 24px inside 8px padding, while compound tag tracks preserve their peer text alignment. Action cells primarily use an icon-only Ellipses treatment, render a 24px small ButtonUnfilled inside 8px padding, default to unbordered, and emit row, column, and action identities through dsCellAction. Image cells render a 48px-high 16:9 bordered preview inside 8px outer padding, establishing a 64px row and a 102px column recipe, and fall back to an accessible placeholder when no source is supplied. Empty means the data applies but has no value and renders an em dash with localized assistive text; Blank means the data is not applicable and renders no content. Nullish values remain backward-compatible Empty values. Stable type and variant hooks keep every cell family independently styleable.",
@@ -8528,16 +8643,16 @@
8528
8643
  ],
8529
8644
  "frameworkCaveats": {
8530
8645
  "customElements": [
8531
- "Assign columns, rows, groups, grouping, sort, selectedRowIds, collapsedGroupIds, displayedCount, and totalCount through JavaScript properties rather than HTML attribute strings.",
8532
- "Replace controlled property values in response to dsSortChange, dsGroupCollapseChange, dsSelectionChange, dsLoadMore, and dsGroupLoadMore; route dsRowActivate in the application owner."
8646
+ "Assign columns, rows, groups, grouping, sort, selectedRowIds, collapsedGroupIds, pagination, displayedCount, and totalCount through JavaScript properties rather than HTML attribute strings.",
8647
+ "Replace controlled property values in response to dsSortChange, dsGroupCollapseChange, dsSelectionChange, dsLoadMore, dsGroupLoadMore, and dsPaginationChange; route dsRowActivate in the application owner."
8533
8648
  ],
8534
8649
  "react": [
8535
8650
  "Pass new array and state-object references when the controlled data or query state changes.",
8536
- "Apply emitted sort, collapse, selection, action, or global/group loading detail to application state and perform data transformations in the owning layer."
8651
+ "Apply emitted sort, collapse, selection, action, pagination, or global/group loading detail to application state and perform data transformations in the owning layer."
8537
8652
  ],
8538
8653
  "angular": [
8539
8654
  "Bind complex table inputs as properties and update the controlled values from the corresponding output events.",
8540
- "Keep server cursor, query lifecycle, and cell-action handling in the owning service or container."
8655
+ "Keep server cursor, page slicing, query lifecycle, and cell-action handling in the owning service or container."
8541
8656
  ]
8542
8657
  },
8543
8658
  "references": [
@@ -8569,6 +8684,10 @@
8569
8684
  "type": "TableColumn[]",
8570
8685
  "required": false
8571
8686
  },
8687
+ "dataMode": {
8688
+ "type": "TableDataMode",
8689
+ "required": false
8690
+ },
8572
8691
  "displayedCount": {
8573
8692
  "type": "number | undefined",
8574
8693
  "required": false
@@ -8645,10 +8764,6 @@
8645
8764
  "type": "string | number | undefined",
8646
8765
  "required": false
8647
8766
  },
8648
- "lazyLoading": {
8649
- "type": "boolean",
8650
- "required": false
8651
- },
8652
8767
  "loadIdentity": {
8653
8768
  "type": "string | number",
8654
8769
  "required": false
@@ -8685,6 +8800,10 @@
8685
8800
  "type": "string | number | undefined",
8686
8801
  "required": false
8687
8802
  },
8803
+ "pagination": {
8804
+ "type": "TablePaginationState | null",
8805
+ "required": false
8806
+ },
8688
8807
  "resultSummaryLabel": {
8689
8808
  "type": "string",
8690
8809
  "required": false
@@ -8755,6 +8874,10 @@
8755
8874
  "name": "dsLoadMore",
8756
8875
  "detail": "TableLoadMoreDetail"
8757
8876
  },
8877
+ {
8878
+ "name": "dsPaginationChange",
8879
+ "detail": "PaginationChangeDetail"
8880
+ },
8758
8881
  {
8759
8882
  "name": "dsRowActivate",
8760
8883
  "detail": "TableRowActivateDetail"
@@ -8786,6 +8909,7 @@
8786
8909
  "empty-state",
8787
8910
  "icon",
8788
8911
  "loader",
8912
+ "pagination",
8789
8913
  "skeleton",
8790
8914
  "tag",
8791
8915
  "text"
@@ -9330,6 +9454,7 @@
9330
9454
  "The first hover or keyboard focus waits for delay; moving to another tooltip shortly after dismissal opens it immediately.",
9331
9455
  "An empty or whitespace-only label suppresses the popup while preserving the wrapper.",
9332
9456
  "Only one tooltip remains active globally; warm handoff removes the previous popup before showing the next.",
9457
+ "Disconnecting and reinserting the tooltip host rebinds the current slotted trigger.",
9333
9458
  "The preferred side flips when it cannot fit, then alignment is clamped to viewport padding.",
9334
9459
  "Reduced motion removes enter and exit fades while retaining the final visible or hidden state."
9335
9460
  ],
@@ -0,0 +1,19 @@
1
+ import { ChangeDetectorRef, ElementRef, NgZone, EventEmitter } from '@angular/core';
2
+ import type { Components } from '@ds-mo/ui/components';
3
+ import type { DsPaginationCustomEvent } from '@ds-mo/ui/components';
4
+ import type { PaginationChangeDetail as IDsPaginationPaginationChangeDetail } from '@ds-mo/ui/components';
5
+ import * as i0 from "@angular/core";
6
+ export declare class DsPagination {
7
+ protected z: NgZone;
8
+ protected el: HTMLDsPaginationElement;
9
+ dsChange: EventEmitter<DsPaginationCustomEvent<IDsPaginationPaginationChangeDetail>>;
10
+ constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<DsPagination, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<DsPagination, "ds-pagination", never, { "itemLabel": { "alias": "itemLabel"; "required": false; }; "label": { "alias": "label"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "pageIndex": { "alias": "pageIndex"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "pageSizeLabel": { "alias": "pageSizeLabel"; "required": false; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; }; "totalItems": { "alias": "totalItems"; "required": false; }; }, { "dsChange": "dsChange"; }, never, ["*"], true, never>;
13
+ }
14
+ export declare interface DsPagination extends Components.DsPagination {
15
+ /**
16
+ * Emits the complete next controlled state after a page or page-size request.
17
+ */
18
+ dsChange: EventEmitter<DsPaginationCustomEvent<IDsPaginationPaginationChangeDetail>>;
19
+ }
@@ -0,0 +1,42 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ /* tslint:disable */
8
+ /* auto-generated angular directive proxies */
9
+ import { ChangeDetectionStrategy, Component, EventEmitter, Output } from '@angular/core';
10
+ import { ProxyCmp } from './angular-component-lib/utils.js';
11
+ import { defineCustomElement as defineDsPagination } from '@ds-mo/ui/components/ds-pagination.js';
12
+ import * as i0 from "@angular/core";
13
+ let DsPagination = class DsPagination {
14
+ constructor(c, r, z) {
15
+ this.z = z;
16
+ this.dsChange = new EventEmitter();
17
+ c.detach();
18
+ this.el = r.nativeElement;
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: DsPagination, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.0", type: DsPagination, isStandalone: true, selector: "ds-pagination", inputs: { itemLabel: "itemLabel", label: "label", loading: "loading", pageIndex: "pageIndex", pageSize: "pageSize", pageSizeLabel: "pageSizeLabel", pageSizeOptions: "pageSizeOptions", totalItems: "totalItems" }, outputs: { dsChange: "dsChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
22
+ };
23
+ DsPagination = __decorate([
24
+ ProxyCmp({
25
+ defineCustomElementFn: defineDsPagination,
26
+ inputs: ['itemLabel', 'label', 'loading', 'pageIndex', 'pageSize', 'pageSizeLabel', 'pageSizeOptions', 'totalItems']
27
+ })
28
+ ], DsPagination);
29
+ export { DsPagination };
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: DsPagination, decorators: [{
31
+ type: Component,
32
+ args: [{
33
+ selector: 'ds-pagination',
34
+ changeDetection: ChangeDetectionStrategy.OnPush,
35
+ template: '<ng-content></ng-content>',
36
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
37
+ inputs: ['itemLabel', 'label', 'loading', 'pageIndex', 'pageSize', 'pageSizeLabel', 'pageSizeOptions', 'totalItems'],
38
+ outputs: ['dsChange'],
39
+ }]
40
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { dsChange: [{
41
+ type: Output
42
+ }] } });
@@ -6,6 +6,7 @@ import type { TableGroupCollapseChangeDetail as IDsTableTableGroupCollapseChange
6
6
  import type { TableSelectionChangeDetail as IDsTableTableSelectionChangeDetail } from '@ds-mo/ui/components';
7
7
  import type { TableLoadMoreDetail as IDsTableTableLoadMoreDetail } from '@ds-mo/ui/components';
8
8
  import type { TableGroupLoadMoreDetail as IDsTableTableGroupLoadMoreDetail } from '@ds-mo/ui/components';
9
+ import type { PaginationChangeDetail as IDsTablePaginationChangeDetail } from '@ds-mo/ui/components';
9
10
  import type { TableCellActionDetail as IDsTableTableCellActionDetail } from '@ds-mo/ui/components';
10
11
  import type { TableRowActivateDetail as IDsTableTableRowActivateDetail } from '@ds-mo/ui/components';
11
12
  import * as i0 from "@angular/core";
@@ -17,11 +18,12 @@ export declare class DsTable {
17
18
  dsSelectionChange: EventEmitter<DsTableCustomEvent<IDsTableTableSelectionChangeDetail>>;
18
19
  dsLoadMore: EventEmitter<DsTableCustomEvent<IDsTableTableLoadMoreDetail>>;
19
20
  dsGroupLoadMore: EventEmitter<DsTableCustomEvent<IDsTableTableGroupLoadMoreDetail>>;
21
+ dsPaginationChange: EventEmitter<DsTableCustomEvent<IDsTablePaginationChangeDetail>>;
20
22
  dsCellAction: EventEmitter<DsTableCustomEvent<IDsTableTableCellActionDetail>>;
21
23
  dsRowActivate: EventEmitter<DsTableCustomEvent<IDsTableTableRowActivateDetail>>;
22
24
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
23
25
  static ɵfac: i0.ɵɵFactoryDeclaration<DsTable, never>;
24
- static ɵcmp: i0.ɵɵComponentDeclaration<DsTable, "ds-table", never, { "caption": { "alias": "caption"; "required": true; }; "captionVisibility": { "alias": "captionVisibility"; "required": false; }; "collapsedGroupIds": { "alias": "collapsedGroupIds"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "displayedCount": { "alias": "displayedCount"; "required": false; }; "emptyBody": { "alias": "emptyBody"; "required": false; }; "emptyCellLabel": { "alias": "emptyCellLabel"; "required": false; }; "emptyHeading": { "alias": "emptyHeading"; "required": false; }; "endOfResultsLabel": { "alias": "endOfResultsLabel"; "required": false; }; "error": { "alias": "error"; "required": false; }; "errorBody": { "alias": "errorBody"; "required": false; }; "errorHeading": { "alias": "errorHeading"; "required": false; }; "fitViewport": { "alias": "fitViewport"; "required": false; }; "groupEndOfResultsLabel": { "alias": "groupEndOfResultsLabel"; "required": false; }; "groupLoadMoreAriaLabel": { "alias": "groupLoadMoreAriaLabel"; "required": false; }; "groupLoadMoreLabel": { "alias": "groupLoadMoreLabel"; "required": false; }; "groupLoadingMoreLabel": { "alias": "groupLoadingMoreLabel"; "required": false; }; "groupRetryLabel": { "alias": "groupRetryLabel"; "required": false; }; "groupRowsLoadedLabel": { "alias": "groupRowsLoadedLabel"; "required": false; }; "grouping": { "alias": "grouping"; "required": false; }; "groups": { "alias": "groups"; "required": false; }; "hasMore": { "alias": "hasMore"; "required": false; }; "height": { "alias": "height"; "required": false; }; "lazyLoading": { "alias": "lazyLoading"; "required": false; }; "loadIdentity": { "alias": "loadIdentity"; "required": false; }; "loadMoreError": { "alias": "loadMoreError"; "required": false; }; "loadMoreLabel": { "alias": "loadMoreLabel"; "required": false; }; "loadMoreMode": { "alias": "loadMoreMode"; "required": false; }; "loadMoreThreshold": { "alias": "loadMoreThreshold"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "loadingMore": { "alias": "loadingMore"; "required": false; }; "loadingMoreLabel": { "alias": "loadingMoreLabel"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; "resultSummaryLabel": { "alias": "resultSummaryLabel"; "required": false; }; "retryLabel": { "alias": "retryLabel"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "rowsLoadedLabel": { "alias": "rowsLoadedLabel"; "required": false; }; "scrollLabel": { "alias": "scrollLabel"; "required": false; }; "selectedRowIds": { "alias": "selectedRowIds"; "required": false; }; "selectionMode": { "alias": "selectionMode"; "required": false; }; "skeletonRows": { "alias": "skeletonRows"; "required": false; }; "sort": { "alias": "sort"; "required": false; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; }; "totalCount": { "alias": "totalCount"; "required": false; }; "viewportInsetBlockEnd": { "alias": "viewportInsetBlockEnd"; "required": false; }; "viewportInsetBlockStart": { "alias": "viewportInsetBlockStart"; "required": false; }; }, { "dsSortChange": "dsSortChange"; "dsGroupCollapseChange": "dsGroupCollapseChange"; "dsSelectionChange": "dsSelectionChange"; "dsLoadMore": "dsLoadMore"; "dsGroupLoadMore": "dsGroupLoadMore"; "dsCellAction": "dsCellAction"; "dsRowActivate": "dsRowActivate"; }, never, ["*"], true, never>;
26
+ static ɵcmp: i0.ɵɵComponentDeclaration<DsTable, "ds-table", never, { "caption": { "alias": "caption"; "required": true; }; "captionVisibility": { "alias": "captionVisibility"; "required": false; }; "collapsedGroupIds": { "alias": "collapsedGroupIds"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "dataMode": { "alias": "dataMode"; "required": false; }; "displayedCount": { "alias": "displayedCount"; "required": false; }; "emptyBody": { "alias": "emptyBody"; "required": false; }; "emptyCellLabel": { "alias": "emptyCellLabel"; "required": false; }; "emptyHeading": { "alias": "emptyHeading"; "required": false; }; "endOfResultsLabel": { "alias": "endOfResultsLabel"; "required": false; }; "error": { "alias": "error"; "required": false; }; "errorBody": { "alias": "errorBody"; "required": false; }; "errorHeading": { "alias": "errorHeading"; "required": false; }; "fitViewport": { "alias": "fitViewport"; "required": false; }; "groupEndOfResultsLabel": { "alias": "groupEndOfResultsLabel"; "required": false; }; "groupLoadMoreAriaLabel": { "alias": "groupLoadMoreAriaLabel"; "required": false; }; "groupLoadMoreLabel": { "alias": "groupLoadMoreLabel"; "required": false; }; "groupLoadingMoreLabel": { "alias": "groupLoadingMoreLabel"; "required": false; }; "groupRetryLabel": { "alias": "groupRetryLabel"; "required": false; }; "groupRowsLoadedLabel": { "alias": "groupRowsLoadedLabel"; "required": false; }; "grouping": { "alias": "grouping"; "required": false; }; "groups": { "alias": "groups"; "required": false; }; "hasMore": { "alias": "hasMore"; "required": false; }; "height": { "alias": "height"; "required": false; }; "loadIdentity": { "alias": "loadIdentity"; "required": false; }; "loadMoreError": { "alias": "loadMoreError"; "required": false; }; "loadMoreLabel": { "alias": "loadMoreLabel"; "required": false; }; "loadMoreMode": { "alias": "loadMoreMode"; "required": false; }; "loadMoreThreshold": { "alias": "loadMoreThreshold"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "loadingMore": { "alias": "loadingMore"; "required": false; }; "loadingMoreLabel": { "alias": "loadingMoreLabel"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; "pagination": { "alias": "pagination"; "required": false; }; "resultSummaryLabel": { "alias": "resultSummaryLabel"; "required": false; }; "retryLabel": { "alias": "retryLabel"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "rowsLoadedLabel": { "alias": "rowsLoadedLabel"; "required": false; }; "scrollLabel": { "alias": "scrollLabel"; "required": false; }; "selectedRowIds": { "alias": "selectedRowIds"; "required": false; }; "selectionMode": { "alias": "selectionMode"; "required": false; }; "skeletonRows": { "alias": "skeletonRows"; "required": false; }; "sort": { "alias": "sort"; "required": false; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; }; "totalCount": { "alias": "totalCount"; "required": false; }; "viewportInsetBlockEnd": { "alias": "viewportInsetBlockEnd"; "required": false; }; "viewportInsetBlockStart": { "alias": "viewportInsetBlockStart"; "required": false; }; }, { "dsSortChange": "dsSortChange"; "dsGroupCollapseChange": "dsGroupCollapseChange"; "dsSelectionChange": "dsSelectionChange"; "dsLoadMore": "dsLoadMore"; "dsGroupLoadMore": "dsGroupLoadMore"; "dsPaginationChange": "dsPaginationChange"; "dsCellAction": "dsCellAction"; "dsRowActivate": "dsRowActivate"; }, never, ["*"], true, never>;
25
27
  }
26
28
  export declare interface DsTable extends Components.DsTable {
27
29
  dsSortChange: EventEmitter<DsTableCustomEvent<IDsTableTableSortChangeDetail>>;
@@ -29,6 +31,7 @@ export declare interface DsTable extends Components.DsTable {
29
31
  dsSelectionChange: EventEmitter<DsTableCustomEvent<IDsTableTableSelectionChangeDetail>>;
30
32
  dsLoadMore: EventEmitter<DsTableCustomEvent<IDsTableTableLoadMoreDetail>>;
31
33
  dsGroupLoadMore: EventEmitter<DsTableCustomEvent<IDsTableTableGroupLoadMoreDetail>>;
34
+ dsPaginationChange: EventEmitter<DsTableCustomEvent<IDsTablePaginationChangeDetail>>;
32
35
  dsCellAction: EventEmitter<DsTableCustomEvent<IDsTableTableCellActionDetail>>;
33
36
  dsRowActivate: EventEmitter<DsTableCustomEvent<IDsTableTableRowActivateDetail>>;
34
37
  }
@@ -18,18 +18,19 @@ let DsTable = class DsTable {
18
18
  this.dsSelectionChange = new EventEmitter();
19
19
  this.dsLoadMore = new EventEmitter();
20
20
  this.dsGroupLoadMore = new EventEmitter();
21
+ this.dsPaginationChange = new EventEmitter();
21
22
  this.dsCellAction = new EventEmitter();
22
23
  this.dsRowActivate = new EventEmitter();
23
24
  c.detach();
24
25
  this.el = r.nativeElement;
25
26
  }
26
27
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: DsTable, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.0", type: DsTable, isStandalone: true, selector: "ds-table", inputs: { caption: "caption", captionVisibility: "captionVisibility", collapsedGroupIds: "collapsedGroupIds", columns: "columns", displayedCount: "displayedCount", emptyBody: "emptyBody", emptyCellLabel: "emptyCellLabel", emptyHeading: "emptyHeading", endOfResultsLabel: "endOfResultsLabel", error: "error", errorBody: "errorBody", errorHeading: "errorHeading", fitViewport: "fitViewport", groupEndOfResultsLabel: "groupEndOfResultsLabel", groupLoadMoreAriaLabel: "groupLoadMoreAriaLabel", groupLoadMoreLabel: "groupLoadMoreLabel", groupLoadingMoreLabel: "groupLoadingMoreLabel", groupRetryLabel: "groupRetryLabel", groupRowsLoadedLabel: "groupRowsLoadedLabel", grouping: "grouping", groups: "groups", hasMore: "hasMore", height: "height", lazyLoading: "lazyLoading", loadIdentity: "loadIdentity", loadMoreError: "loadMoreError", loadMoreLabel: "loadMoreLabel", loadMoreMode: "loadMoreMode", loadMoreThreshold: "loadMoreThreshold", loading: "loading", loadingMore: "loadingMore", loadingMoreLabel: "loadingMoreLabel", maxHeight: "maxHeight", resultSummaryLabel: "resultSummaryLabel", retryLabel: "retryLabel", rows: "rows", rowsLoadedLabel: "rowsLoadedLabel", scrollLabel: "scrollLabel", selectedRowIds: "selectedRowIds", selectionMode: "selectionMode", skeletonRows: "skeletonRows", sort: "sort", stickyHeader: "stickyHeader", totalCount: "totalCount", viewportInsetBlockEnd: "viewportInsetBlockEnd", viewportInsetBlockStart: "viewportInsetBlockStart" }, outputs: { dsSortChange: "dsSortChange", dsGroupCollapseChange: "dsGroupCollapseChange", dsSelectionChange: "dsSelectionChange", dsLoadMore: "dsLoadMore", dsGroupLoadMore: "dsGroupLoadMore", dsCellAction: "dsCellAction", dsRowActivate: "dsRowActivate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.0", type: DsTable, isStandalone: true, selector: "ds-table", inputs: { caption: "caption", captionVisibility: "captionVisibility", collapsedGroupIds: "collapsedGroupIds", columns: "columns", dataMode: "dataMode", displayedCount: "displayedCount", emptyBody: "emptyBody", emptyCellLabel: "emptyCellLabel", emptyHeading: "emptyHeading", endOfResultsLabel: "endOfResultsLabel", error: "error", errorBody: "errorBody", errorHeading: "errorHeading", fitViewport: "fitViewport", groupEndOfResultsLabel: "groupEndOfResultsLabel", groupLoadMoreAriaLabel: "groupLoadMoreAriaLabel", groupLoadMoreLabel: "groupLoadMoreLabel", groupLoadingMoreLabel: "groupLoadingMoreLabel", groupRetryLabel: "groupRetryLabel", groupRowsLoadedLabel: "groupRowsLoadedLabel", grouping: "grouping", groups: "groups", hasMore: "hasMore", height: "height", loadIdentity: "loadIdentity", loadMoreError: "loadMoreError", loadMoreLabel: "loadMoreLabel", loadMoreMode: "loadMoreMode", loadMoreThreshold: "loadMoreThreshold", loading: "loading", loadingMore: "loadingMore", loadingMoreLabel: "loadingMoreLabel", maxHeight: "maxHeight", pagination: "pagination", resultSummaryLabel: "resultSummaryLabel", retryLabel: "retryLabel", rows: "rows", rowsLoadedLabel: "rowsLoadedLabel", scrollLabel: "scrollLabel", selectedRowIds: "selectedRowIds", selectionMode: "selectionMode", skeletonRows: "skeletonRows", sort: "sort", stickyHeader: "stickyHeader", totalCount: "totalCount", viewportInsetBlockEnd: "viewportInsetBlockEnd", viewportInsetBlockStart: "viewportInsetBlockStart" }, outputs: { dsSortChange: "dsSortChange", dsGroupCollapseChange: "dsGroupCollapseChange", dsSelectionChange: "dsSelectionChange", dsLoadMore: "dsLoadMore", dsGroupLoadMore: "dsGroupLoadMore", dsPaginationChange: "dsPaginationChange", dsCellAction: "dsCellAction", dsRowActivate: "dsRowActivate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
29
  };
29
30
  DsTable = __decorate([
30
31
  ProxyCmp({
31
32
  defineCustomElementFn: defineDsTable,
32
- inputs: ['caption', 'captionVisibility', 'collapsedGroupIds', 'columns', 'displayedCount', 'emptyBody', 'emptyCellLabel', 'emptyHeading', 'endOfResultsLabel', 'error', 'errorBody', 'errorHeading', 'fitViewport', 'groupEndOfResultsLabel', 'groupLoadMoreAriaLabel', 'groupLoadMoreLabel', 'groupLoadingMoreLabel', 'groupRetryLabel', 'groupRowsLoadedLabel', 'grouping', 'groups', 'hasMore', 'height', 'lazyLoading', 'loadIdentity', 'loadMoreError', 'loadMoreLabel', 'loadMoreMode', 'loadMoreThreshold', 'loading', 'loadingMore', 'loadingMoreLabel', 'maxHeight', 'resultSummaryLabel', 'retryLabel', 'rows', 'rowsLoadedLabel', 'scrollLabel', 'selectedRowIds', 'selectionMode', 'skeletonRows', 'sort', 'stickyHeader', 'totalCount', 'viewportInsetBlockEnd', 'viewportInsetBlockStart']
33
+ inputs: ['caption', 'captionVisibility', 'collapsedGroupIds', 'columns', 'dataMode', 'displayedCount', 'emptyBody', 'emptyCellLabel', 'emptyHeading', 'endOfResultsLabel', 'error', 'errorBody', 'errorHeading', 'fitViewport', 'groupEndOfResultsLabel', 'groupLoadMoreAriaLabel', 'groupLoadMoreLabel', 'groupLoadingMoreLabel', 'groupRetryLabel', 'groupRowsLoadedLabel', 'grouping', 'groups', 'hasMore', 'height', 'loadIdentity', 'loadMoreError', 'loadMoreLabel', 'loadMoreMode', 'loadMoreThreshold', 'loading', 'loadingMore', 'loadingMoreLabel', 'maxHeight', 'pagination', 'resultSummaryLabel', 'retryLabel', 'rows', 'rowsLoadedLabel', 'scrollLabel', 'selectedRowIds', 'selectionMode', 'skeletonRows', 'sort', 'stickyHeader', 'totalCount', 'viewportInsetBlockEnd', 'viewportInsetBlockStart']
33
34
  })
34
35
  ], DsTable);
35
36
  export { DsTable };
@@ -40,8 +41,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImpor
40
41
  changeDetection: ChangeDetectionStrategy.OnPush,
41
42
  template: '<ng-content></ng-content>',
42
43
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
43
- inputs: [{ name: 'caption', required: true }, 'captionVisibility', 'collapsedGroupIds', 'columns', 'displayedCount', 'emptyBody', 'emptyCellLabel', 'emptyHeading', 'endOfResultsLabel', 'error', 'errorBody', 'errorHeading', 'fitViewport', 'groupEndOfResultsLabel', 'groupLoadMoreAriaLabel', 'groupLoadMoreLabel', 'groupLoadingMoreLabel', 'groupRetryLabel', 'groupRowsLoadedLabel', 'grouping', 'groups', 'hasMore', 'height', 'lazyLoading', 'loadIdentity', 'loadMoreError', 'loadMoreLabel', 'loadMoreMode', 'loadMoreThreshold', 'loading', 'loadingMore', 'loadingMoreLabel', 'maxHeight', 'resultSummaryLabel', 'retryLabel', 'rows', 'rowsLoadedLabel', 'scrollLabel', 'selectedRowIds', 'selectionMode', 'skeletonRows', 'sort', 'stickyHeader', 'totalCount', 'viewportInsetBlockEnd', 'viewportInsetBlockStart'],
44
- outputs: ['dsSortChange', 'dsGroupCollapseChange', 'dsSelectionChange', 'dsLoadMore', 'dsGroupLoadMore', 'dsCellAction', 'dsRowActivate'],
44
+ inputs: [{ name: 'caption', required: true }, 'captionVisibility', 'collapsedGroupIds', 'columns', 'dataMode', 'displayedCount', 'emptyBody', 'emptyCellLabel', 'emptyHeading', 'endOfResultsLabel', 'error', 'errorBody', 'errorHeading', 'fitViewport', 'groupEndOfResultsLabel', 'groupLoadMoreAriaLabel', 'groupLoadMoreLabel', 'groupLoadingMoreLabel', 'groupRetryLabel', 'groupRowsLoadedLabel', 'grouping', 'groups', 'hasMore', 'height', 'loadIdentity', 'loadMoreError', 'loadMoreLabel', 'loadMoreMode', 'loadMoreThreshold', 'loading', 'loadingMore', 'loadingMoreLabel', 'maxHeight', 'pagination', 'resultSummaryLabel', 'retryLabel', 'rows', 'rowsLoadedLabel', 'scrollLabel', 'selectedRowIds', 'selectionMode', 'skeletonRows', 'sort', 'stickyHeader', 'totalCount', 'viewportInsetBlockEnd', 'viewportInsetBlockStart'],
45
+ outputs: ['dsSortChange', 'dsGroupCollapseChange', 'dsSelectionChange', 'dsLoadMore', 'dsGroupLoadMore', 'dsPaginationChange', 'dsCellAction', 'dsRowActivate'],
45
46
  }]
46
47
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { dsSortChange: [{
47
48
  type: Output
@@ -53,6 +54,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImpor
53
54
  type: Output
54
55
  }], dsGroupLoadMore: [{
55
56
  type: Output
57
+ }], dsPaginationChange: [{
58
+ type: Output
56
59
  }], dsCellAction: [{
57
60
  type: Output
58
61
  }], dsRowActivate: [{
@@ -1,2 +1,2 @@
1
1
  import * as d from './proxies';
2
- export declare const DIRECTIVES: (typeof d.DsAgentActivity | typeof d.DsAgentQuestionnaire | typeof d.DsAgentResponse | typeof d.DsAgentSourceList | typeof d.DsAgentToolCall | typeof d.DsAttachmentList | typeof d.DsAvatar | typeof d.DsBadge | typeof d.DsBanner | typeof d.DsBarAction | typeof d.DsBarNav | typeof d.DsBarTitle | typeof d.DsBarWorkflow | typeof d.DsBreadcrumb | typeof d.DsButtonFilled | typeof d.DsButtonUnfilled | typeof d.DsCardChart | typeof d.DsCardOverview | typeof d.DsCardSetting | typeof d.DsChartLegend | typeof d.DsChart | typeof d.DsCheckbox | typeof d.DsChip | typeof d.DsCodeBlock | typeof d.DsConversationListItem | typeof d.DsConversationListSection | typeof d.DsConversationList | typeof d.DsDivider | typeof d.DsEmptyState | typeof d.DsField | typeof d.DsFilterMenu | typeof d.DsIcon | typeof d.DsInput | typeof d.DsLoader | typeof d.DsMarkdown | typeof d.DsMenu | typeof d.DsMessageActions | typeof d.DsMessageBubble | typeof d.DsMessageComposer | typeof d.DsMessageScroller | typeof d.DsMessage | typeof d.DsMobileBarNav | typeof d.DsMobileHeader | typeof d.DsMobileSectionSwitcher | typeof d.DsMobileSheetNav | typeof d.DsModal | typeof d.DsPanelNav | typeof d.DsPanelSubNav | typeof d.DsPanelToolHeader | typeof d.DsPanelToolSearch | typeof d.DsPanelTools | typeof d.DsRadio | typeof d.DsScrollOverlay | typeof d.DsSelect | typeof d.DsShellApp | typeof d.DsShellPage | typeof d.DsShellTools | typeof d.DsSkeleton | typeof d.DsSlider | typeof d.DsSwatchPicker | typeof d.DsSwitch | typeof d.DsTabGroup | typeof d.DsTable | typeof d.DsTag | typeof d.DsText | typeof d.DsToast | typeof d.DsTooltipChart | typeof d.DsTooltip | typeof d.DsTypingIndicator)[];
2
+ export declare const DIRECTIVES: (typeof d.DsAgentActivity | typeof d.DsAgentQuestionnaire | typeof d.DsAgentResponse | typeof d.DsAgentSourceList | typeof d.DsAgentToolCall | typeof d.DsAttachmentList | typeof d.DsAvatar | typeof d.DsBadge | typeof d.DsBanner | typeof d.DsBarAction | typeof d.DsBarNav | typeof d.DsBarTitle | typeof d.DsBarWorkflow | typeof d.DsBreadcrumb | typeof d.DsButtonFilled | typeof d.DsButtonUnfilled | typeof d.DsCardChart | typeof d.DsCardOverview | typeof d.DsCardSetting | typeof d.DsChartLegend | typeof d.DsChart | typeof d.DsCheckbox | typeof d.DsChip | typeof d.DsCodeBlock | typeof d.DsConversationListItem | typeof d.DsConversationListSection | typeof d.DsConversationList | typeof d.DsDivider | typeof d.DsEmptyState | typeof d.DsField | typeof d.DsFilterMenu | typeof d.DsIcon | typeof d.DsInput | typeof d.DsLoader | typeof d.DsMarkdown | typeof d.DsMenu | typeof d.DsMessageActions | typeof d.DsMessageBubble | typeof d.DsMessageComposer | typeof d.DsMessageScroller | typeof d.DsMessage | typeof d.DsMobileBarNav | typeof d.DsMobileHeader | typeof d.DsMobileSectionSwitcher | typeof d.DsMobileSheetNav | typeof d.DsModal | typeof d.DsPagination | typeof d.DsPanelNav | typeof d.DsPanelSubNav | typeof d.DsPanelToolHeader | typeof d.DsPanelToolSearch | typeof d.DsPanelTools | typeof d.DsRadio | typeof d.DsScrollOverlay | typeof d.DsSelect | typeof d.DsShellApp | typeof d.DsShellPage | typeof d.DsShellTools | typeof d.DsSkeleton | typeof d.DsSlider | typeof d.DsSwatchPicker | typeof d.DsSwitch | typeof d.DsTabGroup | typeof d.DsTable | typeof d.DsTag | typeof d.DsText | typeof d.DsToast | typeof d.DsTooltipChart | typeof d.DsTooltip | typeof d.DsTypingIndicator)[];
@@ -46,6 +46,7 @@ export const DIRECTIVES = [
46
46
  d.DsMobileSectionSwitcher,
47
47
  d.DsMobileSheetNav,
48
48
  d.DsModal,
49
+ d.DsPagination,
49
50
  d.DsPanelNav,
50
51
  d.DsPanelSubNav,
51
52
  d.DsPanelToolHeader,
@@ -48,6 +48,7 @@ export { DsMobileHeader } from './ds-mobile-header';
48
48
  export { DsMobileSectionSwitcher } from './ds-mobile-section-switcher';
49
49
  export { DsMobileSheetNav } from './ds-mobile-sheet-nav';
50
50
  export { DsModal } from './ds-modal';
51
+ export { DsPagination } from './ds-pagination';
51
52
  export { DsPanelNav } from './ds-panel-nav';
52
53
  export { DsPanelSubNav } from './ds-panel-sub-nav';
53
54
  export { DsPanelToolHeader } from './ds-panel-tool-header';
@@ -49,6 +49,7 @@ export { DsMobileHeader } from './ds-mobile-header.js';
49
49
  export { DsMobileSectionSwitcher } from './ds-mobile-section-switcher.js';
50
50
  export { DsMobileSheetNav } from './ds-mobile-sheet-nav.js';
51
51
  export { DsModal } from './ds-modal.js';
52
+ export { DsPagination } from './ds-pagination.js';
52
53
  export { DsPanelNav } from './ds-panel-nav.js';
53
54
  export { DsPanelSubNav } from './ds-panel-sub-nav.js';
54
55
  export { DsPanelToolHeader } from './ds-panel-tool-header.js';
@@ -1,2 +1,2 @@
1
- import{A as o,d as s}from"./p-BiOfbCke.js";const t=o;const p=s;export{t as DsAgentQuestionnaire,p as defineCustomElement};
1
+ import{A as o,d as s}from"./p-DkPNCBA8.js";const t=o;const p=s;export{t as DsAgentQuestionnaire,p as defineCustomElement};
2
2
  //# sourceMappingURL=ds-agent-questionnaire.js.map
@@ -1,2 +1,2 @@
1
- import{p as s,H as e,h as t,a,t as o}from"./index.js";import{d as i}from"./p-Bf_D3crn.js";import{d as r}from"./p-BiOfbCke.js";import{d as n}from"./p-B7Hf86NF.js";import{d}from"./p-DcPVSNDr.js";import{d as m}from"./p-BagXfn1G.js";import{d as c}from"./p-D8nnhQNJ.js";import{d as l}from"./p-DvJkkdIO.js";import{d as f}from"./p-CTTDiW33.js";import{d as u}from"./p-DD5OCVXx.js";import{d as p}from"./p-DT4WdAup.js";import{d as b}from"./p-BFfLvMZd.js";import{d as k}from"./p-Ca-I2UnB.js";import{d as h}from"./p-eKARJmWs.js";import{d as g}from"./p-D-kWb8cF.js";import{d as y}from"./p-DYzjeIAT.js";import{d as E}from"./p-DZFilC--.js";import{d as j}from"./p-CtSxm6PI.js";const w=()=>`.sc-ds-agent-response-h{display:block;width:100%;--ds-prose-text-max-inline-size:var(--dimension-panel-width-lg);-webkit-user-select:none;user-select:none}.agent-response.sc-ds-agent-response{display:grid;gap:var(--dimension-space-150);min-width:0;width:100%;-webkit-user-select:none;user-select:none}`;const D=s(class s extends e{constructor(s){super();if(s!==false){this.__registerHost()}this.messageId="";this.author="";this.showAuthor=true;this.timestamp="";this.parts=[];this.renderMode="parts";this.streaming=false;this.metadataVisibility="always"}renderPart(s){switch(s.type){case"markdown":return t("ds-markdown",{key:s.id,content:s.content,streaming:s.state==="streaming"});case"activity":return t("ds-agent-activity",{key:s.id,items:s.items});case"tool":return t("ds-agent-tool-call",{key:s.id,name:s.name,label:s.label,state:s.state,input:s.input,output:s.output,error:s.error});case"attachments":return t("ds-attachment-list",{key:s.id,items:s.items});case"sources":return t("ds-agent-source-list",{key:s.id,items:s.items});case"questionnaire":return t("ds-agent-questionnaire",{key:s.id,requestId:s.requestId,questions:s.questions,answers:s.answers,status:"answered"})}}render(){return t(a,{key:"3910c71178b3df0fc55f917d371795db90e38e28"},t("ds-message",{key:"594b225f54e388a0c0737b71dcbe7fe03421b1ea",messageId:this.messageId,direction:"incoming",author:this.author,showAuthor:this.showAuthor,timestamp:this.timestamp,streaming:this.streaming,metadataVisibility:this.metadataVisibility},t("div",{key:"130816b779724fef022128394913811914f5d9cb",class:"agent-response"},this.renderMode==="composed"?t("slot",null):this.parts.map((s=>this.renderPart(s)))),t("slot",{key:"6d7ea10b338f26c110073bc25d3bed60cdf5e613",name:"footer",slot:"footer"}),t("slot",{key:"a4a00860d4af7cf14992513d7eaa20511c031bc7",name:"metadata-actions",slot:"metadata-actions"}),t("slot",{key:"848abb429ad1075900717a4cb2cb8e217a111b0c",name:"actions",slot:"actions"})))}static get style(){return w()}},[262,"ds-agent-response",{messageId:[1,"message-id"],author:[1],showAuthor:[4,"show-author"],timestamp:[1],parts:[16],renderMode:[1,"render-mode"],streaming:[4],metadataVisibility:[1,"metadata-visibility"]}]);function x(){if(typeof customElements==="undefined"){return}const s=["ds-agent-response","ds-agent-activity","ds-agent-questionnaire","ds-agent-source-list","ds-agent-tool-call","ds-attachment-list","ds-badge","ds-button-filled","ds-button-unfilled","ds-checkbox","ds-code-block","ds-icon","ds-loader","ds-markdown","ds-message","ds-radio","ds-text","ds-tooltip"];s.forEach((s=>{switch(s){case"ds-agent-response":if(!customElements.get(o(s))){customElements.define(o(s),D)}break;case"ds-agent-activity":if(!customElements.get(o(s))){i()}break;case"ds-agent-questionnaire":if(!customElements.get(o(s))){r()}break;case"ds-agent-source-list":if(!customElements.get(o(s))){n()}break;case"ds-agent-tool-call":if(!customElements.get(o(s))){d()}break;case"ds-attachment-list":if(!customElements.get(o(s))){m()}break;case"ds-badge":if(!customElements.get(o(s))){c()}break;case"ds-button-filled":if(!customElements.get(o(s))){l()}break;case"ds-button-unfilled":if(!customElements.get(o(s))){f()}break;case"ds-checkbox":if(!customElements.get(o(s))){u()}break;case"ds-code-block":if(!customElements.get(o(s))){p()}break;case"ds-icon":if(!customElements.get(o(s))){b()}break;case"ds-loader":if(!customElements.get(o(s))){k()}break;case"ds-markdown":if(!customElements.get(o(s))){h()}break;case"ds-message":if(!customElements.get(o(s))){g()}break;case"ds-radio":if(!customElements.get(o(s))){y()}break;case"ds-text":if(!customElements.get(o(s))){E()}break;case"ds-tooltip":if(!customElements.get(o(s))){j()}break}}))}x();const v=D;const I=x;export{v as DsAgentResponse,I as defineCustomElement};
1
+ import{p as s,H as e,h as t,a,t as o}from"./index.js";import{d as i}from"./p-Bf_D3crn.js";import{d as r}from"./p-DkPNCBA8.js";import{d as n}from"./p-B7Hf86NF.js";import{d}from"./p-DcPVSNDr.js";import{d as m}from"./p-BagXfn1G.js";import{d as c}from"./p-D8nnhQNJ.js";import{d as l}from"./p-DvJkkdIO.js";import{d as f}from"./p-CTTDiW33.js";import{d as u}from"./p-C5TrNd31.js";import{d as p}from"./p-Dkkid-rh.js";import{d as b}from"./p-BFfLvMZd.js";import{d as k}from"./p-Ca-I2UnB.js";import{d as h}from"./p-nImbYpwo.js";import{d as g}from"./p-D-kWb8cF.js";import{d as y}from"./p-BHjw0x3L.js";import{d as w}from"./p-DZFilC--.js";import{d as E}from"./p-CtOK5oZ1.js";const j=()=>`.sc-ds-agent-response-h{display:block;width:100%;--ds-prose-text-max-inline-size:var(--dimension-panel-width-lg);-webkit-user-select:none;user-select:none}.agent-response.sc-ds-agent-response{display:grid;gap:var(--dimension-space-150);min-width:0;width:100%;-webkit-user-select:none;user-select:none}`;const v=s(class s extends e{constructor(s){super();if(s!==false){this.__registerHost()}this.messageId="";this.author="";this.showAuthor=true;this.timestamp="";this.parts=[];this.renderMode="parts";this.streaming=false;this.metadataVisibility="always"}renderPart(s){switch(s.type){case"markdown":return t("ds-markdown",{key:s.id,content:s.content,streaming:s.state==="streaming"});case"activity":return t("ds-agent-activity",{key:s.id,items:s.items});case"tool":return t("ds-agent-tool-call",{key:s.id,name:s.name,label:s.label,state:s.state,input:s.input,output:s.output,error:s.error});case"attachments":return t("ds-attachment-list",{key:s.id,items:s.items});case"sources":return t("ds-agent-source-list",{key:s.id,items:s.items});case"questionnaire":return t("ds-agent-questionnaire",{key:s.id,requestId:s.requestId,questions:s.questions,answers:s.answers,status:"answered"})}}render(){return t(a,{key:"3910c71178b3df0fc55f917d371795db90e38e28"},t("ds-message",{key:"594b225f54e388a0c0737b71dcbe7fe03421b1ea",messageId:this.messageId,direction:"incoming",author:this.author,showAuthor:this.showAuthor,timestamp:this.timestamp,streaming:this.streaming,metadataVisibility:this.metadataVisibility},t("div",{key:"130816b779724fef022128394913811914f5d9cb",class:"agent-response"},this.renderMode==="composed"?t("slot",null):this.parts.map((s=>this.renderPart(s)))),t("slot",{key:"6d7ea10b338f26c110073bc25d3bed60cdf5e613",name:"footer",slot:"footer"}),t("slot",{key:"a4a00860d4af7cf14992513d7eaa20511c031bc7",name:"metadata-actions",slot:"metadata-actions"}),t("slot",{key:"848abb429ad1075900717a4cb2cb8e217a111b0c",name:"actions",slot:"actions"})))}static get style(){return j()}},[262,"ds-agent-response",{messageId:[1,"message-id"],author:[1],showAuthor:[4,"show-author"],timestamp:[1],parts:[16],renderMode:[1,"render-mode"],streaming:[4],metadataVisibility:[1,"metadata-visibility"]}]);function x(){if(typeof customElements==="undefined"){return}const s=["ds-agent-response","ds-agent-activity","ds-agent-questionnaire","ds-agent-source-list","ds-agent-tool-call","ds-attachment-list","ds-badge","ds-button-filled","ds-button-unfilled","ds-checkbox","ds-code-block","ds-icon","ds-loader","ds-markdown","ds-message","ds-radio","ds-text","ds-tooltip"];s.forEach((s=>{switch(s){case"ds-agent-response":if(!customElements.get(o(s))){customElements.define(o(s),v)}break;case"ds-agent-activity":if(!customElements.get(o(s))){i()}break;case"ds-agent-questionnaire":if(!customElements.get(o(s))){r()}break;case"ds-agent-source-list":if(!customElements.get(o(s))){n()}break;case"ds-agent-tool-call":if(!customElements.get(o(s))){d()}break;case"ds-attachment-list":if(!customElements.get(o(s))){m()}break;case"ds-badge":if(!customElements.get(o(s))){c()}break;case"ds-button-filled":if(!customElements.get(o(s))){l()}break;case"ds-button-unfilled":if(!customElements.get(o(s))){f()}break;case"ds-checkbox":if(!customElements.get(o(s))){u()}break;case"ds-code-block":if(!customElements.get(o(s))){p()}break;case"ds-icon":if(!customElements.get(o(s))){b()}break;case"ds-loader":if(!customElements.get(o(s))){k()}break;case"ds-markdown":if(!customElements.get(o(s))){h()}break;case"ds-message":if(!customElements.get(o(s))){g()}break;case"ds-radio":if(!customElements.get(o(s))){y()}break;case"ds-text":if(!customElements.get(o(s))){w()}break;case"ds-tooltip":if(!customElements.get(o(s))){E()}break}}))}x();const D=v;const B=x;export{D as DsAgentResponse,B as defineCustomElement};
2
2
  //# sourceMappingURL=ds-agent-response.js.map