@ds-mo/ui 15.4.1 → 15.5.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 (106) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +1 -1
  3. package/dist/agent.json +51 -4
  4. package/dist/angular/ds-select.d.ts +1 -1
  5. package/dist/angular/ds-select.js +3 -3
  6. package/dist/angular/ds-table.d.ts +7 -1
  7. package/dist/angular/ds-table.js +11 -5
  8. package/dist/components/ds-agent-questionnaire.js +1 -1
  9. package/dist/components/ds-agent-response.js +1 -1
  10. package/dist/components/ds-bar-workflow.js +1 -1
  11. package/dist/components/ds-card-action-center.js +1 -1
  12. package/dist/components/ds-data-filter.js +1 -1
  13. package/dist/components/ds-data-group.js +1 -1
  14. package/dist/components/ds-data-preferences.js +1 -1
  15. package/dist/components/ds-data-saved-views.js +1 -1
  16. package/dist/components/ds-data-toolbar.js +1 -1
  17. package/dist/components/ds-divider.js +1 -1
  18. package/dist/components/ds-filter-menu.js +1 -1
  19. package/dist/components/ds-input-date.js +1 -1
  20. package/dist/components/ds-input-date.js.map +1 -1
  21. package/dist/components/ds-input-time.js +1 -1
  22. package/dist/components/ds-input-time.js.map +1 -1
  23. package/dist/components/ds-input.js +1 -1
  24. package/dist/components/ds-map-entity-marker.js +1 -1
  25. package/dist/components/ds-message-bubble.js +1 -1
  26. package/dist/components/ds-mobile-header.js +1 -1
  27. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  28. package/dist/components/ds-modal.js +1 -1
  29. package/dist/components/ds-pagination.js +1 -1
  30. package/dist/components/ds-panel-sub-nav.js +1 -1
  31. package/dist/components/ds-panel-tool-search.js +1 -1
  32. package/dist/components/ds-panel-tools.js +1 -1
  33. package/dist/components/ds-radio-tile.js +1 -1
  34. package/dist/components/ds-radio.js +1 -1
  35. package/dist/components/ds-scroll-overlay.js +1 -1
  36. package/dist/components/ds-scroll-overlay.js.map +1 -1
  37. package/dist/components/ds-select.js +1 -1
  38. package/dist/components/ds-shell-app.js +1 -1
  39. package/dist/components/ds-shell-tools.js +1 -1
  40. package/dist/components/ds-tab-group.js +1 -1
  41. package/dist/components/ds-table.js +1 -1
  42. package/dist/components/ds-table.js.map +1 -1
  43. package/dist/components/ds-textarea.js +1 -1
  44. package/dist/components/ds-textarea.js.map +1 -1
  45. package/dist/components/{p-LENgfPDe.js → p-7MwoWtTJ.js} +2 -2
  46. package/dist/components/p-B95UP66y.js +2 -0
  47. package/dist/components/p-B95UP66y.js.map +1 -0
  48. package/dist/components/{p-jwVzQaTZ.js → p-BGSG6xIS.js} +2 -2
  49. package/dist/components/{p-CcZSzCfs.js → p-BO5URdZF.js} +2 -2
  50. package/dist/components/{p-dUti7zhW.js → p-Bq_ypMSy.js} +2 -2
  51. package/dist/components/{p-BkvAqrXg.js → p-C1ZfBbJ_.js} +2 -2
  52. package/dist/components/p-C1oczmAc.js +2 -0
  53. package/dist/components/p-C1oczmAc.js.map +1 -0
  54. package/dist/components/{p-BK_4OHJO.js → p-CA3iQ1ME.js} +2 -2
  55. package/dist/components/{p-DQfKS7dz.js → p-D9_iDlkT.js} +2 -2
  56. package/dist/components/{p-COD1C3Gj.js → p-DEYCF-oJ.js} +2 -2
  57. package/dist/components/p-DPFg5d4_.js +2 -0
  58. package/dist/components/p-DPFg5d4_.js.map +1 -0
  59. package/dist/components/{p-YYiDYQhS.js → p-DR_8IPn9.js} +2 -2
  60. package/dist/components/{p-B0BQCVkq.js → p-D_iZPukF.js} +2 -2
  61. package/dist/components/{p-DkxhNqT-.js → p-DjbT9kKm.js} +2 -2
  62. package/dist/components/{p-YDMY8T0d.js → p-PzYJqN8B.js} +2 -2
  63. package/dist/components/p-jp7hwRtC.js +2 -0
  64. package/dist/components/p-jp7hwRtC.js.map +1 -0
  65. package/dist/components/{p-D7wLvTHz.js → p-rmPIcWED.js} +2 -2
  66. package/dist/docs/components.json +416 -73
  67. package/dist/lint/index.js +1 -1
  68. package/dist/mcp-data/registry/registry.json +50 -3
  69. package/dist/mcp-data/registry/select.json +54 -3
  70. package/dist/mcp-data/registry/table.json +138 -12
  71. package/dist/react/ds-table.d.ts +3 -1
  72. package/dist/react/ds-table.js +2 -0
  73. package/dist/styles/table.css +399 -8
  74. package/dist/types/components/Select/Select.d.ts +6 -0
  75. package/dist/types/components/Table/Table.d.ts +35 -0
  76. package/dist/types/components/Table/index.d.ts +1 -1
  77. package/dist/types/components/Table/table-body-renderer.d.ts +1 -0
  78. package/dist/types/components/Table/table-cell-editor.d.ts +4 -0
  79. package/dist/types/components/Table/table-grid-model.d.ts +23 -0
  80. package/dist/types/components/Table/table-layout-controller.d.ts +1 -0
  81. package/dist/types/components/Table/table-review-fixtures.d.ts +10 -0
  82. package/dist/types/components/Table/table-row-view.d.ts +11 -2
  83. package/dist/types/components/Table/table-skeleton-view.d.ts +3 -1
  84. package/dist/types/components/Table/table-structure.d.ts +38 -0
  85. package/dist/types/components/Table/table-types.d.ts +71 -1
  86. package/dist/types/components/Table/table-virtual-controller.d.ts +1 -0
  87. package/dist/types/components.d.ts +78 -2
  88. package/dist/types/utils/select-controller.d.ts +1 -0
  89. package/dist/vue/ds-select.js +3 -0
  90. package/dist/vue/ds-table.js +8 -0
  91. package/package.json +1 -1
  92. package/dist/components/p-buM-T4vF.js +0 -2
  93. package/dist/components/p-buM-T4vF.js.map +0 -1
  94. /package/dist/components/{p-LENgfPDe.js.map → p-7MwoWtTJ.js.map} +0 -0
  95. /package/dist/components/{p-jwVzQaTZ.js.map → p-BGSG6xIS.js.map} +0 -0
  96. /package/dist/components/{p-CcZSzCfs.js.map → p-BO5URdZF.js.map} +0 -0
  97. /package/dist/components/{p-dUti7zhW.js.map → p-Bq_ypMSy.js.map} +0 -0
  98. /package/dist/components/{p-BkvAqrXg.js.map → p-C1ZfBbJ_.js.map} +0 -0
  99. /package/dist/components/{p-BK_4OHJO.js.map → p-CA3iQ1ME.js.map} +0 -0
  100. /package/dist/components/{p-DQfKS7dz.js.map → p-D9_iDlkT.js.map} +0 -0
  101. /package/dist/components/{p-COD1C3Gj.js.map → p-DEYCF-oJ.js.map} +0 -0
  102. /package/dist/components/{p-YYiDYQhS.js.map → p-DR_8IPn9.js.map} +0 -0
  103. /package/dist/components/{p-B0BQCVkq.js.map → p-D_iZPukF.js.map} +0 -0
  104. /package/dist/components/{p-DkxhNqT-.js.map → p-DjbT9kKm.js.map} +0 -0
  105. /package/dist/components/{p-YDMY8T0d.js.map → p-PzYJqN8B.js.map} +0 -0
  106. /package/dist/components/{p-D7wLvTHz.js.map → p-rmPIcWED.js.map} +0 -0
@@ -1 +1 @@
1
- {"schemaVersion":1,"package":"@ds-mo/ui","version":"15.4.1","components":98,"digest":"1823f0f34013c8633399441e6d2d2da6c69d245b13c376cb50a9c787cee432c9","completedAt":"2026-09-20T04:38:05.432Z"}
1
+ {"schemaVersion":1,"package":"@ds-mo/ui","version":"15.5.0","components":98,"digest":"d69366d0958d9529e89b69711fd5745532a021ccc4aa23f941fee74fe75060fd","completedAt":"2026-09-20T23:33:40.882Z"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
3
  "package": "@ds-mo/ui",
4
- "packageVersion": "15.4.1",
4
+ "packageVersion": "15.5.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": "15.4.1",
4
+ "packageVersion": "15.5.0",
5
5
  "kind": "components",
6
6
  "entries": [
7
7
  {
@@ -12721,6 +12721,7 @@
12721
12721
  "Select owns its associated popup and automatically retains the shared surface-open pressed wash. Consumers do not synchronize a second flag for the built-in picker. Contextual option actions are externally owned: their surfaceOpen state keeps the action visible through the associated menu exit, independently of the selected option."
12722
12722
  ],
12723
12723
  "responsiveBehavior": [
12724
+ "An embedded editor may delegate hover, press and focus indication to its containing cell; that owner must supply a visible focus indicator. An explicit anchor positions the popup against the containing surface without transferring trigger focus or accessibility ownership. Popup options keep their own interaction feedback.",
12724
12725
  "Use width fill for form fields and width hug for compact filter bars. Override those defaults only when the owning layout has a clear constraint.",
12725
12726
  "When collapseLabel is set inside a named ds-table container narrower than 900px, the trigger omits its label and chevron, becomes icon-only, and exposes its label through a hover and keyboard-focus tooltip. A selected value promotes the prefix icon to primary.",
12726
12727
  "The popup matches the trigger minimum width, may grow for content, and clamps to the nearest data-ds-overlay-boundary rectangle or the viewport fallback. Assign boundary as an HTMLElement only for an explicit override.",
@@ -12818,6 +12819,10 @@
12818
12819
  "type": "boolean",
12819
12820
  "required": false
12820
12821
  },
12822
+ "anchor": {
12823
+ "type": "HTMLElement | undefined",
12824
+ "required": false
12825
+ },
12821
12826
  "ariaDescribedby": {
12822
12827
  "type": "string | undefined",
12823
12828
  "required": false
@@ -12874,6 +12879,14 @@
12874
12879
  "type": "boolean",
12875
12880
  "required": false
12876
12881
  },
12882
+ "hasFocusRing": {
12883
+ "type": "boolean",
12884
+ "required": false
12885
+ },
12886
+ "hasInteractionFill": {
12887
+ "type": "boolean",
12888
+ "required": false
12889
+ },
12877
12890
  "icon": {
12878
12891
  "type": "string | undefined",
12879
12892
  "required": false
@@ -15030,7 +15043,7 @@
15030
15043
  "avoidWhen": [
15031
15044
  "Content is primarily editorial prose; use semantic product-owned markup with the prose recipe instead.",
15032
15045
  "A small label/value set reads more clearly as a list, description list, or card.",
15033
- "The interface requires tree-grid behavior, nested grouping, inline cell editing, row reordering, multiple pinned columns per edge, or column virtualization; those remain outside the contract.",
15046
+ "The interface requires tree-grid behavior, nested grouping, row reordering, formula evaluation, rich cell editors, or column virtualization; those remain outside the contract.",
15034
15047
  "The application expects the component to fetch, slice pages, sort, group, or mutate records internally."
15035
15048
  ],
15036
15049
  "commonlyComposedWith": [
@@ -15066,6 +15079,10 @@
15066
15079
  "Static and infinite tables may show an optional result summary footer when displayedCount and totalCount are finite. Virtual mode shows a total-only summary and ignores displayedCount. Pagination mode instead renders a named Pagination control with a page-size picker, vertical divider, and page position; range changes are announced independently with complete phrasing. Unmodified Left and Right Arrow request the adjacent page while focus is inside a paginated table or on a containing page scroller that owns it; editable fields, choice controls, sliders, open menus, and modified key combinations retain their own keyboard behavior. A table-owned footer slot can replace summary copy, while footer-leading and footer-trailing remain available in the same compact-bar anatomy. Nested dialog footers are ignored."
15067
15080
  ],
15068
15081
  "states": [
15082
+ "Column super-groups describe adjacent visible fields. Hidden and reordered fields recompute the bands; unrelated fields, selection, elastic space, and pin boundaries split them. Compound sort controls remain in the leaf headers.",
15083
+ "Cell presentation moves the complete content stack for deliberate middle or bottom alignment; the default remains first-track alignment. Semantic highlight borders require an accessible explanation, and flags require labels. Presentation metadata never changes the cell value or the shared text, icon, tag and action track anatomy.",
15084
+ "Report merges name ordered row and column identities. Only a complete contiguous non-overlapping rectangle is accepted, and invalid definitions leave original values visible. Selection checkboxes are never merged. Merges cannot cross pin or elastic-spacer boundaries, and grouped or editable grids do not merge. Cross-row merges require non-windowed reports; column-only merges can use virtual rows. Applications recompute spans with their final data order and retain covered values.",
15085
+ "Editing has two opt-in ungrouped modes for scalar values. Edit mode keeps normal table semantics and reveals a floating pencil on cell hover or keyboard focus; touch keeps the pencil visible. Grid mode adds per-cell hover/press feedback, keyboard focus and controlled rectangular ranges. Arrows and Home/End skip read-only cells; Shift+click or Shift+arrows extends the range without selecting read-only cells or opening an editor. A single click, Enter, F2 or typing opens the grid editor, while edit mode requires the pencil. Both modes share validation and controlled change events: Enter or Tab proposes a change; Escape or leaving the editor cancels. Tab advances to the next editable cell or pencil. Read-only content is muted without fading dividers, and those cells cannot receive cell selection or hover feedback. Native controls retain their own keyboard behavior. Plain TSV grid paste is bounded and rejected atomically for invalid, disabled, out-of-range or read-only destinations. Applications accept or reject proposed edits, own persistence and domain validation, and replace controlled data. Row checkbox selection remains independent of cell selection.",
15069
15086
  "Columns, rows, groups, grouping, sorting, selected row IDs, collapsed group IDs, highlightTerms, highlightFieldIds, hiddenFieldIds, fieldOrder, dataMode, pagination, displayedCount, totalCount, and incremental-loading state are controlled inputs. Events communicate intent and never mutate those inputs. The optional header is one composable table-local surface: the component owns its 48px chrome, 8px inset on every side, and sticky placement while the application owns the leading slot's internal layout, controls, labels, filtering behavior, and action handling. highlightTerms only marks matching table-owned text and never filters rows, changes query semantics, or highlights Tag labels. highlightFieldIds optionally narrows that marking to matching column IDs or compound header-segment sort keys. Opting into dataModeSwitcher and columnCustomizer adds their trailing Menu triggers and requires caption visibility. When both are present, Customize precedes a decorative divider and the data-mode trigger remains the final action. The Customize trigger keeps one stable label and neutral resting foreground whether or not hiddenFieldIds or fieldOrder differ from the catalog default; the configured state remains visible inside the Menu. The table closes one trailing Menu before opening the other. 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.",
15070
15087
  "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 at the start and plain secondary loaded progress at the trailing edge beside the disclosure. A 20px tertiary divider centered on the label track marks the action-column boundary between the count and disclosure. 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. Virtual mode shows totals only, for example 166, because there is no loaded window. A collapsed section with no supplied member rows uses that same total-only copy so collapse does not advertise a zero loaded window, including 0 when no total is known. An expanded empty section still shows loaded progress, for example 0 of 166. Optional accessories occupy a second 24px track under the label, middle-dot separated, at most four items. An accessory with help uses the shared dotted underline and a bottom-start ds-tooltip from that copy; explicit line breaks create an unbulleted list. Without accessories the section stays the single-track row height; with accessories it matches a two-track body row, with the checkbox, trailing count, divider, and disclosure kept on the label track. An optional hero accessory sits before the label. The first supported hero is a safety-score fill. Its one-track presentation uses the default ds-score at sm and aligns to the label track on either row height. Setting hero tracks to 2 creates or spans the two-track header, renders the default ds-score at lg, and centers it across the label and accessory tracks. In selectable tables the two-track score starts at the selection-column boundary; selectionMode none omits that lane and uses the regular group-content start inset. A score hero does not use group intent coloring. Hero presentation does not change the 40 or 64 row-height contract beyond the explicitly requested second track. Groups without intent use the secondary background surface. 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. The complete section header is the expand/collapse target and paints hover and press on that viewport-width surface. The section separator stays on the dedicated trailing-edge rule so the interaction wash cannot replace it. Trailing loaded progress sits on the label track beside a visually neutral icon-only ButtonUnfilled. The centered 20px tertiary divider at the action-column boundary separates the count from the 24px md double-inset disclosure. The disclosure keeps its accessible name and does not paint its own hover or press wash, 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. Virtual grouped tables flatten headers and members into that same scrollport; expanding a section never introduces an inner scroller.",
15071
15088
  "When columnCustomizer is false, columns render in catalog order. When it is true, columns remains the catalog: hiddenFieldIds and fieldOrder control visibility and data-column sequence, action columns stay last, cannot be hidden, and remain absent from the customizer Menu, and dsFieldsConfigChange reports the next hidden ids and data-column order without mutating those inputs. The customizer Menu live-applies show/hide and data-column reorder. The table does not persist preferences.",
@@ -15075,7 +15092,7 @@
15075
15092
  "dataMode selects the top-level window: infinite appends ungrouped rows through dsLoadMore when hasMore is true, pagination renders the controlled page supplied by the application and emits dsPaginationChange, and virtual recycles row DOM over the full in-memory rows or groups the application already supplied. A bounded ungrouped infinite or pagination window with more than 50 supplied rows also recycles visible row DOM internally while preserving its selected data mode, complete supplied-window row count, selection scope, footer, and load behavior. Smaller and grouped non-virtual windows retain their supplied row DOM while deferring off-screen row content with token-aligned intrinsic heights. 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. Virtual mode does not fetch, ignores hasMore and load bands, and requires a bounded viewport (height, maxHeight, or fitViewport with a definite block size). Without that height it fails visibly instead of mounting every row. The application owns requests, cancellation, cursors, deduplication, slicing, and query identity.",
15076
15093
  "When pagination enables Fit to page on a bounded table, the table proposes the number of complete top-level rows that fit below its column header. Grouped tables count group headers only; member rows never affect capacity. Selecting Fit captures that numeric snapshot. A changed fitIdentity requests one fresh snapshot for a new query shape, while viewport resizing alone does not change the active controlled page size.",
15077
15094
  "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.",
15078
- "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.",
15095
+ "Explicitly sized application columns can accumulate at both inline edges in visible order, after the independent selection lane. Only the inner boundary of each pinned stack owns the directional shadow. If the pinned lanes consume the complete viewport, they return to scrolling so every field remains reachable. Keep related pinned fields together in display order.",
15079
15096
  "Cells accept scalar content, standard primary-and-secondary or dual-primary text primitives, declarative Tag, wrapping multiple-Tag content, icon-only, icon-and-text, 16:9 Image, or ButtonUnfilled Action content, or explicit Empty and Blank absence values. Text objects may declare an optional href (and target) on the primary track only; the table renders a native anchor with the shared brand text-action treatment when the URL is safe, and leaves scalars unlinked. Standard secondary copy defaults to the secondary foreground and may declare a semantic Text color when the application data carries intent; an optional tertiary track uses the same subdued body-small recipe as secondary. Secondary and tertiary may also be a short list of colorable runs, rendered on one line with the table's middle-dot separator. A run may supply help to add the shared dotted underline and a bottom-start Tooltip when compact visible copy summarizes supplementary details; explicit line breaks create a compact unbulleted list without obscuring the current cell's earlier tracks. Dual-primary copy keeps both tracks primary unless explicitly colored and does not gain a tertiary track. Body data cells share 8px outer padding; header and group rows keep their own geometry. Text tracks, including Empty, keep 4px inline padding so copy lines up with column-header labels; Tag and icon-only tracks stay on the 8px cell chrome alone. Icon-and-text cells (`kind: 'icon-text'`) place one md prefix icon beside the same copy stack as a text cell. The icon slot takes 2px padding on every side, then a 2px flex gap before the copy; text-track padding stays on the copy. Omit iconLabel when the glyph is decorative. 20px content (body-medium text, md icon, and the row checkbox) sits in a 24px track so it stays optically aligned with 24px Tag and Action content. Single-track text, selection, tag-only, icon-only, icon-and-text, Action, Empty, Blank, and 1-track Image cells resolve a 40px base contract while two-track cells grow to 64px and three-track cells grow to 88px. Every later track adds 24px, so four tracks resolve to 112px, five to 136px, and the sequence may continue. Tracks stack with no gap. Wrapping primary on a 1-track cell uses that same rhythm: two wrapped lines share the 64px row and three wrapped lines share the 88px row. Wrapping secondary keeps primary on the first track and consumes later tracks: two secondary lines share the 88px row and three secondary lines share a 112px fourth track. Keep the same track count in every row of a table or group when those rows should share one height. Tag cells use the inset Tag recipe: md double-inset is a 24px control for tag-only and tag-with-text, while text-with-tag uses sm single-inset at 20px so the second-track pill sits in the same 24px lane. For a compact ordered set of tags that must remain together on the primary track, choose the inline multiple-tag variation, optionally with supporting text below. Slash separators distinguish adjacent tags; labels truncate as the column narrows. Use wrapping tags when all labels must remain visible. Multiple-Tag cells use `kind: 'tags'`, a positive `tracks` count, and small single-inset Tags that wrap naturally at the column edge. Each wrap line is a 24px track with no stack gap, matching text. The tallest cell establishes the native row height, so all sibling cells match even at four, five, or more tracks; virtual tables use the declared count as the initial estimate and measure responsive wrapping after paint. Action cells primarily use an icon-only Ellipses treatment, render a 24px small ButtonUnfilled, default to unbordered, and emit row, column, and action identities through dsCellAction. When an action cell declares items, that Ellipses trigger opens the shared ds-menu for commands, dividers, inactive rows, and destructive rows instead of emitting on click; choosing a command emits dsCellAction with that item's actionId. Omit items to keep a single-shot control. Image cells declare tracks 1, 2, or 3 so the 16:9 preview fills that body-row content box (cell height minus 8px padding) and the column hugs the resulting width; omit tracks for the 1-track recipe, and keep image tracks aligned with the other cells in the table or group. The image is clipped to the 2px preview radius and the tertiary border paints as an inset overlay so it remains visible over image pixels. Image cells 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, variant, and track-count hooks keep every cell family independently styleable.",
15080
15097
  "Score-and-text cells (`kind: score-text`) place the small 24px safety score at the top-right of the cell while the same one-, two-, or three-track copy stack as a standard text cell fills from the start edge. The score is top-aligned with the first text track, adds no inner padding, and defaults its accessible name prefix to Safety score. Score-and-text loading geometry uses the matching small score skeleton and declared copy tracks.",
15081
15098
  "The public @ds-mo/ui/table.css export is the authoritative zero-specificity visual recipe. Override its --ds-table-* properties or target its stable element classes for product-specific styling.",
@@ -15085,7 +15102,8 @@
15085
15102
  "Borderless toolbar compositions omit resting control borders while retaining focus and interaction feedback."
15086
15103
  ],
15087
15104
  "responsiveBehavior": [
15088
- "The table keeps native semantics at narrow widths and scrolls horizontally instead of transforming into cards.",
15105
+ "Editable cells compose the shared borderless controls with cell-owned interaction and focus chrome. Only the active cell mounts a field. Single-select choices complete the edit immediately; multiline fields reserve Enter for a newline and use Ctrl/Command+Enter to commit. Date and time fields keep their picker keyboard behavior and emit canonical scalar values. Drafts stay local until a controlled change is proposed.",
15106
+ "Horizontal scrolling is the default. Opted-in cards reuse the same native table in a narrow-container layout: a record is one card with vertically stacked labeled fields, inset separators aligned to the content origin, and space between labels and values. One row-owned interaction surface covers the card. Actions and selection sit together at the top-right, separated by a short divider. The content region owns card gutters and gaps; the toolbar and footer remain separate edge-to-edge surfaces. Page owners remove their outer table inset at the responsive breakpoint. Column headers remain available to assistive technology but are visually hidden and contain no interactive controls in card mode. Row selection and action controls preserve focus across resizing instead of mounting a duplicate mobile tree. Merged reports and grid interaction retain table layout. Card compositions do not use the duplicated document-flow sticky header.",
15089
15107
  "Inside the named ds-table container, caption Search retains its standard maximum width and flexes smaller only when the complete row needs space. Filter, Group, and Sort controls that opt into collapseLabel become icon-only below 900px by omitting their labels and chevrons. Active filtering or grouping promotes the visible icon to primary. Sort keeps resting secondary chrome because its selection lives in the menu and headers. Customize switches to the icon-only Customize menu button below 900px and keeps its neutral resting foreground regardless of the controlled column configuration. The caption, frame, and footer remain within the table host at every width. The complete caption row scrolls together only when those compact controls no longer fit, while data columns scroll inside the viewport; table-owned trailing actions never stay pinned over the scrolling toolbar.",
15090
15108
  "stickyHeader follows the active vertical scroll owner: a maxHeight, height, or fitViewport table keeps its native header and group sections inside one bounded table scrollport, while a document-flow table retains a semantic native header and renders a sticky control header whose columns follow the body's native inline scroll timeline. Consumers set --ds-table-sticky-header-offset when page chrome occupies an unbounded document scrollport edge. When the 48px table header bar is visible, it sticks at that external offset and the column header stacks immediately below it.",
15091
15109
  "fitViewport uses viewportInsetBlockStart and viewportInsetBlockEnd to describe compact surrounding chrome and page gutters relative to the nearest vertical scroll owner. Before the table reaches that compact position, its host reserves the eventual height while the visible composition grows and vertical input remains owned by the outer page. Once settled, the internal table viewport becomes the vertical scroll owner. Bounded grouped tables use browser-native sticky section rows inside real block row-group boundaries, so scroll and resize do not run component JavaScript or trigger reactive section swaps. Document-flow tables retain the synchronized visual lane required by their separate horizontal scrollport.",
@@ -15247,6 +15265,14 @@
15247
15265
  "type": "TableCaptionVisibility",
15248
15266
  "required": false
15249
15267
  },
15268
+ "cellRange": {
15269
+ "type": "TableCellRange | null",
15270
+ "required": false
15271
+ },
15272
+ "cellSpans": {
15273
+ "type": "TableCellSpan[]",
15274
+ "required": false
15275
+ },
15250
15276
  "chromeLoading": {
15251
15277
  "type": "boolean",
15252
15278
  "required": false
@@ -15383,6 +15409,10 @@
15383
15409
  "type": "string",
15384
15410
  "required": false
15385
15411
  },
15412
+ "interactionMode": {
15413
+ "type": "'table' | 'edit' | 'grid'",
15414
+ "required": false
15415
+ },
15386
15416
  "loadIdentity": {
15387
15417
  "type": "string | number",
15388
15418
  "required": false
@@ -15427,6 +15457,10 @@
15427
15457
  "type": "string",
15428
15458
  "required": false
15429
15459
  },
15460
+ "responsiveLayout": {
15461
+ "type": "'scroll' | 'cards'",
15462
+ "required": false
15463
+ },
15430
15464
  "resultSummaryLabel": {
15431
15465
  "type": "string",
15432
15466
  "required": false
@@ -15497,6 +15531,14 @@
15497
15531
  "name": "dsCellAction",
15498
15532
  "detail": "TableCellActionDetail"
15499
15533
  },
15534
+ {
15535
+ "name": "dsCellRangeChange",
15536
+ "detail": "TableCellRange"
15537
+ },
15538
+ {
15539
+ "name": "dsCellsChange",
15540
+ "detail": "TableCellsChangeDetail"
15541
+ },
15500
15542
  {
15501
15543
  "name": "dsCustomizeOptionChange",
15502
15544
  "detail": "string"
@@ -15557,13 +15599,18 @@
15557
15599
  "divider",
15558
15600
  "empty-state",
15559
15601
  "icon",
15602
+ "input",
15603
+ "input-date",
15604
+ "input-time",
15560
15605
  "loader",
15561
15606
  "menu",
15562
15607
  "pagination",
15563
15608
  "score",
15609
+ "select",
15564
15610
  "skeleton",
15565
15611
  "tag",
15566
15612
  "text",
15613
+ "textarea",
15567
15614
  "tooltip"
15568
15615
  ]
15569
15616
  },
@@ -16,7 +16,7 @@ export declare class DsSelect {
16
16
  dsOptionSubtextAction: EventEmitter<DsSelectCustomEvent<IDsSelectSelectOptionSubtextActionDetail>>;
17
17
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
18
18
  static ɵfac: i0.ɵɵFactoryDeclaration<DsSelect, never>;
19
- static ɵcmp: i0.ɵɵComponentDeclaration<DsSelect, "ds-select", never, { "activeFill": { "alias": "activeFill"; "required": false; }; "allowClear": { "alias": "allowClear"; "required": false; }; "ariaDescribedby": { "alias": "ariaDescribedby"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaLabelledby": { "alias": "ariaLabelledby"; "required": false; }; "background": { "alias": "background"; "required": false; }; "boundary": { "alias": "boundary"; "required": false; }; "clearLabel": { "alias": "clearLabel"; "required": false; }; "collapseLabel": { "alias": "collapseLabel"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "dot": { "alias": "dot"; "required": false; }; "error": { "alias": "error"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "footerActionLabel": { "alias": "footerActionLabel"; "required": false; }; "form": { "alias": "form"; "required": false; }; "hasBorder": { "alias": "hasBorder"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "iconOnly": { "alias": "iconOnly"; "required": false; }; "indicator": { "alias": "indicator"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; "insetDepth": { "alias": "insetDepth"; "required": false; }; "isInactive": { "alias": "isInactive"; "required": false; }; "isInset": { "alias": "isInset"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "loadingLabel": { "alias": "loadingLabel"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "name": { "alias": "name"; "required": false; }; "neutralTrigger": { "alias": "neutralTrigger"; "required": false; }; "noResultsText": { "alias": "noResultsText"; "required": false; }; "open": { "alias": "open"; "required": false; }; "options": { "alias": "options"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "popupAlign": { "alias": "popupAlign"; "required": false; }; "required": { "alias": "required"; "required": false; }; "requiredMessage": { "alias": "requiredMessage"; "required": false; }; "rounded": { "alias": "rounded"; "required": false; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; }; "searchable": { "alias": "searchable"; "required": false; }; "sections": { "alias": "sections"; "required": false; }; "selectedLabel": { "alias": "selectedLabel"; "required": false; }; "size": { "alias": "size"; "required": false; }; "triggerLabel": { "alias": "triggerLabel"; "required": false; }; "triggerLabelPlaceholder": { "alias": "triggerLabelPlaceholder"; "required": false; }; "value": { "alias": "value"; "required": false; }; "width": { "alias": "width"; "required": false; }; }, { "dsChange": "dsChange"; "dsClear": "dsClear"; "dsOpenChange": "dsOpenChange"; "dsFooterAction": "dsFooterAction"; "dsOptionAction": "dsOptionAction"; "dsOptionSubtextAction": "dsOptionSubtextAction"; }, never, ["*"], true, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<DsSelect, "ds-select", never, { "activeFill": { "alias": "activeFill"; "required": false; }; "allowClear": { "alias": "allowClear"; "required": false; }; "anchor": { "alias": "anchor"; "required": false; }; "ariaDescribedby": { "alias": "ariaDescribedby"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaLabelledby": { "alias": "ariaLabelledby"; "required": false; }; "background": { "alias": "background"; "required": false; }; "boundary": { "alias": "boundary"; "required": false; }; "clearLabel": { "alias": "clearLabel"; "required": false; }; "collapseLabel": { "alias": "collapseLabel"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "dot": { "alias": "dot"; "required": false; }; "error": { "alias": "error"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "footerActionLabel": { "alias": "footerActionLabel"; "required": false; }; "form": { "alias": "form"; "required": false; }; "hasBorder": { "alias": "hasBorder"; "required": false; }; "hasFocusRing": { "alias": "hasFocusRing"; "required": false; }; "hasInteractionFill": { "alias": "hasInteractionFill"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "iconOnly": { "alias": "iconOnly"; "required": false; }; "indicator": { "alias": "indicator"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; "insetDepth": { "alias": "insetDepth"; "required": false; }; "isInactive": { "alias": "isInactive"; "required": false; }; "isInset": { "alias": "isInset"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "loadingLabel": { "alias": "loadingLabel"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "name": { "alias": "name"; "required": false; }; "neutralTrigger": { "alias": "neutralTrigger"; "required": false; }; "noResultsText": { "alias": "noResultsText"; "required": false; }; "open": { "alias": "open"; "required": false; }; "options": { "alias": "options"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "popupAlign": { "alias": "popupAlign"; "required": false; }; "required": { "alias": "required"; "required": false; }; "requiredMessage": { "alias": "requiredMessage"; "required": false; }; "rounded": { "alias": "rounded"; "required": false; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; }; "searchable": { "alias": "searchable"; "required": false; }; "sections": { "alias": "sections"; "required": false; }; "selectedLabel": { "alias": "selectedLabel"; "required": false; }; "size": { "alias": "size"; "required": false; }; "triggerLabel": { "alias": "triggerLabel"; "required": false; }; "triggerLabelPlaceholder": { "alias": "triggerLabelPlaceholder"; "required": false; }; "value": { "alias": "value"; "required": false; }; "width": { "alias": "width"; "required": false; }; }, { "dsChange": "dsChange"; "dsClear": "dsClear"; "dsOpenChange": "dsOpenChange"; "dsFooterAction": "dsFooterAction"; "dsOptionAction": "dsOptionAction"; "dsOptionSubtextAction": "dsOptionSubtextAction"; }, never, ["*"], true, never>;
20
20
  }
21
21
  export declare interface DsSelect extends Components.DsSelect {
22
22
  /**
@@ -23,12 +23,12 @@ let DsSelect = class DsSelect {
23
23
  this.el = r.nativeElement;
24
24
  }
25
25
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: DsSelect, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.7", type: DsSelect, isStandalone: true, selector: "ds-select", inputs: { activeFill: "activeFill", allowClear: "allowClear", ariaDescribedby: "ariaDescribedby", ariaLabel: "ariaLabel", ariaLabelledby: "ariaLabelledby", background: "background", boundary: "boundary", clearLabel: "clearLabel", collapseLabel: "collapseLabel", disabled: "disabled", dot: "dot", error: "error", errorMessage: "errorMessage", footerActionLabel: "footerActionLabel", form: "form", hasBorder: "hasBorder", icon: "icon", iconOnly: "iconOnly", indicator: "indicator", inputId: "inputId", insetDepth: "insetDepth", isInactive: "isInactive", isInset: "isInset", isLoading: "isLoading", loadingLabel: "loadingLabel", multiple: "multiple", name: "name", neutralTrigger: "neutralTrigger", noResultsText: "noResultsText", open: "open", options: "options", placeholder: "placeholder", popupAlign: "popupAlign", required: "required", requiredMessage: "requiredMessage", rounded: "rounded", searchPlaceholder: "searchPlaceholder", searchable: "searchable", sections: "sections", selectedLabel: "selectedLabel", size: "size", triggerLabel: "triggerLabel", triggerLabelPlaceholder: "triggerLabelPlaceholder", value: "value", width: "width" }, outputs: { dsChange: "dsChange", dsClear: "dsClear", dsOpenChange: "dsOpenChange", dsFooterAction: "dsFooterAction", dsOptionAction: "dsOptionAction", dsOptionSubtextAction: "dsOptionSubtextAction" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.7", type: DsSelect, isStandalone: true, selector: "ds-select", inputs: { activeFill: "activeFill", allowClear: "allowClear", anchor: "anchor", ariaDescribedby: "ariaDescribedby", ariaLabel: "ariaLabel", ariaLabelledby: "ariaLabelledby", background: "background", boundary: "boundary", clearLabel: "clearLabel", collapseLabel: "collapseLabel", disabled: "disabled", dot: "dot", error: "error", errorMessage: "errorMessage", footerActionLabel: "footerActionLabel", form: "form", hasBorder: "hasBorder", hasFocusRing: "hasFocusRing", hasInteractionFill: "hasInteractionFill", icon: "icon", iconOnly: "iconOnly", indicator: "indicator", inputId: "inputId", insetDepth: "insetDepth", isInactive: "isInactive", isInset: "isInset", isLoading: "isLoading", loadingLabel: "loadingLabel", multiple: "multiple", name: "name", neutralTrigger: "neutralTrigger", noResultsText: "noResultsText", open: "open", options: "options", placeholder: "placeholder", popupAlign: "popupAlign", required: "required", requiredMessage: "requiredMessage", rounded: "rounded", searchPlaceholder: "searchPlaceholder", searchable: "searchable", sections: "sections", selectedLabel: "selectedLabel", size: "size", triggerLabel: "triggerLabel", triggerLabelPlaceholder: "triggerLabelPlaceholder", value: "value", width: "width" }, outputs: { dsChange: "dsChange", dsClear: "dsClear", dsOpenChange: "dsOpenChange", dsFooterAction: "dsFooterAction", dsOptionAction: "dsOptionAction", dsOptionSubtextAction: "dsOptionSubtextAction" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
27
  };
28
28
  DsSelect = __decorate([
29
29
  ProxyCmp({
30
30
  defineCustomElementFn: defineDsSelect,
31
- inputs: ['activeFill', 'allowClear', 'ariaDescribedby', 'ariaLabel', 'ariaLabelledby', 'background', 'boundary', 'clearLabel', 'collapseLabel', 'disabled', 'dot', 'error', 'errorMessage', 'footerActionLabel', 'form', 'hasBorder', 'icon', 'iconOnly', 'indicator', 'inputId', 'insetDepth', 'isInactive', 'isInset', 'isLoading', 'loadingLabel', 'multiple', 'name', 'neutralTrigger', 'noResultsText', 'open', 'options', 'placeholder', 'popupAlign', 'required', 'requiredMessage', 'rounded', 'searchPlaceholder', 'searchable', 'sections', 'selectedLabel', 'size', 'triggerLabel', 'triggerLabelPlaceholder', 'value', 'width'],
31
+ inputs: ['activeFill', 'allowClear', 'anchor', 'ariaDescribedby', 'ariaLabel', 'ariaLabelledby', 'background', 'boundary', 'clearLabel', 'collapseLabel', 'disabled', 'dot', 'error', 'errorMessage', 'footerActionLabel', 'form', 'hasBorder', 'hasFocusRing', 'hasInteractionFill', 'icon', 'iconOnly', 'indicator', 'inputId', 'insetDepth', 'isInactive', 'isInset', 'isLoading', 'loadingLabel', 'multiple', 'name', 'neutralTrigger', 'noResultsText', 'open', 'options', 'placeholder', 'popupAlign', 'required', 'requiredMessage', 'rounded', 'searchPlaceholder', 'searchable', 'sections', 'selectedLabel', 'size', 'triggerLabel', 'triggerLabelPlaceholder', 'value', 'width'],
32
32
  methods: ['setFocus']
33
33
  })
34
34
  ], DsSelect);
@@ -40,7 +40,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
40
40
  changeDetection: ChangeDetectionStrategy.OnPush,
41
41
  template: '<ng-content></ng-content>',
42
42
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
43
- inputs: ['activeFill', 'allowClear', 'ariaDescribedby', 'ariaLabel', 'ariaLabelledby', 'background', 'boundary', 'clearLabel', 'collapseLabel', 'disabled', 'dot', 'error', 'errorMessage', 'footerActionLabel', 'form', 'hasBorder', 'icon', 'iconOnly', 'indicator', 'inputId', 'insetDepth', 'isInactive', 'isInset', 'isLoading', 'loadingLabel', 'multiple', 'name', 'neutralTrigger', 'noResultsText', 'open', 'options', 'placeholder', 'popupAlign', 'required', 'requiredMessage', 'rounded', 'searchPlaceholder', 'searchable', 'sections', 'selectedLabel', 'size', 'triggerLabel', 'triggerLabelPlaceholder', 'value', 'width'],
43
+ inputs: ['activeFill', 'allowClear', 'anchor', 'ariaDescribedby', 'ariaLabel', 'ariaLabelledby', 'background', 'boundary', 'clearLabel', 'collapseLabel', 'disabled', 'dot', 'error', 'errorMessage', 'footerActionLabel', 'form', 'hasBorder', 'hasFocusRing', 'hasInteractionFill', 'icon', 'iconOnly', 'indicator', 'inputId', 'insetDepth', 'isInactive', 'isInset', 'isLoading', 'loadingLabel', 'multiple', 'name', 'neutralTrigger', 'noResultsText', 'open', 'options', 'placeholder', 'popupAlign', 'required', 'requiredMessage', 'rounded', 'searchPlaceholder', 'searchable', 'sections', 'selectedLabel', 'size', 'triggerLabel', 'triggerLabelPlaceholder', 'value', 'width'],
44
44
  outputs: ['dsChange', 'dsClear', 'dsOpenChange', 'dsFooterAction', 'dsOptionAction', 'dsOptionSubtextAction'],
45
45
  }]
46
46
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { dsChange: [{
@@ -1,6 +1,8 @@
1
1
  import { ChangeDetectorRef, ElementRef, NgZone, EventEmitter } from '@angular/core';
2
2
  import type { Components } from '@ds-mo/ui/components';
3
3
  import type { DsTableCustomEvent } from '@ds-mo/ui/components';
4
+ import type { TableCellRange as IDsTableTableCellRange } from '@ds-mo/ui/components';
5
+ import type { TableCellsChangeDetail as IDsTableTableCellsChangeDetail } from '@ds-mo/ui/components';
4
6
  import type { DataSortChangeDetail as IDsTableDataSortChangeDetail } from '@ds-mo/ui/components';
5
7
  import type { TableGroupCollapseChangeDetail as IDsTableTableGroupCollapseChangeDetail } from '@ds-mo/ui/components';
6
8
  import type { TableSelectionChangeDetail as IDsTableTableSelectionChangeDetail } from '@ds-mo/ui/components';
@@ -15,6 +17,8 @@ import * as i0 from "@angular/core";
15
17
  export declare class DsTable {
16
18
  protected z: NgZone;
17
19
  protected el: HTMLDsTableElement;
20
+ dsCellRangeChange: EventEmitter<DsTableCustomEvent<IDsTableTableCellRange>>;
21
+ dsCellsChange: EventEmitter<DsTableCustomEvent<IDsTableTableCellsChangeDetail>>;
18
22
  dsCustomizeOptionChange: EventEmitter<DsTableCustomEvent<string>>;
19
23
  dsSortChange: EventEmitter<DsTableCustomEvent<IDsTableDataSortChangeDetail>>;
20
24
  dsGroupCollapseChange: EventEmitter<DsTableCustomEvent<IDsTableTableGroupCollapseChangeDetail>>;
@@ -28,9 +32,11 @@ export declare class DsTable {
28
32
  dsDataModeChange: EventEmitter<DsTableCustomEvent<IDsTableTableDataModeChangeDetail>>;
29
33
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
30
34
  static ɵfac: i0.ɵɵFactoryDeclaration<DsTable, never>;
31
- static ɵcmp: i0.ɵɵComponentDeclaration<DsTable, "ds-table", never, { "caption": { "alias": "caption"; "required": true; }; "captionControlsBorderless": { "alias": "captionControlsBorderless"; "required": false; }; "captionVisibility": { "alias": "captionVisibility"; "required": false; }; "chromeLoading": { "alias": "chromeLoading"; "required": false; }; "collapsedGroupIds": { "alias": "collapsedGroupIds"; "required": false; }; "columnCustomizer": { "alias": "columnCustomizer"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "customizeOptions": { "alias": "customizeOptions"; "required": false; }; "dataMode": { "alias": "dataMode"; "required": false; }; "dataModeMenuLabel": { "alias": "dataModeMenuLabel"; "required": false; }; "dataModeSwitcher": { "alias": "dataModeSwitcher"; "required": false; }; "dataModeSwitcherLabel": { "alias": "dataModeSwitcherLabel"; "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; }; "fieldOrder": { "alias": "fieldOrder"; "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; }; "hiddenFieldIds": { "alias": "hiddenFieldIds"; "required": false; }; "hideColumnCustomizerTrigger": { "alias": "hideColumnCustomizerTrigger"; "required": false; }; "highlightFieldIds": { "alias": "highlightFieldIds"; "required": false; }; "highlightTerms": { "alias": "highlightTerms"; "required": false; }; "infiniteModeLabel": { "alias": "infiniteModeLabel"; "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; }; "paginationModeLabel": { "alias": "paginationModeLabel"; "required": false; }; "resultSummaryLabel": { "alias": "resultSummaryLabel"; "required": false; }; "resultTotalSummaryLabel": { "alias": "resultTotalSummaryLabel"; "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; }; "surfaceOpenRowId": { "alias": "surfaceOpenRowId"; "required": false; }; "totalCount": { "alias": "totalCount"; "required": false; }; "viewportInsetBlockEnd": { "alias": "viewportInsetBlockEnd"; "required": false; }; "viewportInsetBlockStart": { "alias": "viewportInsetBlockStart"; "required": false; }; "virtualModeLabel": { "alias": "virtualModeLabel"; "required": false; }; }, { "dsCustomizeOptionChange": "dsCustomizeOptionChange"; "dsSortChange": "dsSortChange"; "dsGroupCollapseChange": "dsGroupCollapseChange"; "dsSelectionChange": "dsSelectionChange"; "dsLoadMore": "dsLoadMore"; "dsGroupLoadMore": "dsGroupLoadMore"; "dsPaginationChange": "dsPaginationChange"; "dsCellAction": "dsCellAction"; "dsRowActivate": "dsRowActivate"; "dsFieldsConfigChange": "dsFieldsConfigChange"; "dsDataModeChange": "dsDataModeChange"; }, never, ["*"], true, never>;
35
+ static ɵcmp: i0.ɵɵComponentDeclaration<DsTable, "ds-table", never, { "caption": { "alias": "caption"; "required": true; }; "captionControlsBorderless": { "alias": "captionControlsBorderless"; "required": false; }; "captionVisibility": { "alias": "captionVisibility"; "required": false; }; "cellRange": { "alias": "cellRange"; "required": false; }; "cellSpans": { "alias": "cellSpans"; "required": false; }; "chromeLoading": { "alias": "chromeLoading"; "required": false; }; "collapsedGroupIds": { "alias": "collapsedGroupIds"; "required": false; }; "columnCustomizer": { "alias": "columnCustomizer"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "customizeOptions": { "alias": "customizeOptions"; "required": false; }; "dataMode": { "alias": "dataMode"; "required": false; }; "dataModeMenuLabel": { "alias": "dataModeMenuLabel"; "required": false; }; "dataModeSwitcher": { "alias": "dataModeSwitcher"; "required": false; }; "dataModeSwitcherLabel": { "alias": "dataModeSwitcherLabel"; "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; }; "fieldOrder": { "alias": "fieldOrder"; "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; }; "hiddenFieldIds": { "alias": "hiddenFieldIds"; "required": false; }; "hideColumnCustomizerTrigger": { "alias": "hideColumnCustomizerTrigger"; "required": false; }; "highlightFieldIds": { "alias": "highlightFieldIds"; "required": false; }; "highlightTerms": { "alias": "highlightTerms"; "required": false; }; "infiniteModeLabel": { "alias": "infiniteModeLabel"; "required": false; }; "interactionMode": { "alias": "interactionMode"; "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; }; "paginationModeLabel": { "alias": "paginationModeLabel"; "required": false; }; "responsiveLayout": { "alias": "responsiveLayout"; "required": false; }; "resultSummaryLabel": { "alias": "resultSummaryLabel"; "required": false; }; "resultTotalSummaryLabel": { "alias": "resultTotalSummaryLabel"; "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; }; "surfaceOpenRowId": { "alias": "surfaceOpenRowId"; "required": false; }; "totalCount": { "alias": "totalCount"; "required": false; }; "viewportInsetBlockEnd": { "alias": "viewportInsetBlockEnd"; "required": false; }; "viewportInsetBlockStart": { "alias": "viewportInsetBlockStart"; "required": false; }; "virtualModeLabel": { "alias": "virtualModeLabel"; "required": false; }; }, { "dsCellRangeChange": "dsCellRangeChange"; "dsCellsChange": "dsCellsChange"; "dsCustomizeOptionChange": "dsCustomizeOptionChange"; "dsSortChange": "dsSortChange"; "dsGroupCollapseChange": "dsGroupCollapseChange"; "dsSelectionChange": "dsSelectionChange"; "dsLoadMore": "dsLoadMore"; "dsGroupLoadMore": "dsGroupLoadMore"; "dsPaginationChange": "dsPaginationChange"; "dsCellAction": "dsCellAction"; "dsRowActivate": "dsRowActivate"; "dsFieldsConfigChange": "dsFieldsConfigChange"; "dsDataModeChange": "dsDataModeChange"; }, never, ["*"], true, never>;
32
36
  }
33
37
  export declare interface DsTable extends Components.DsTable {
38
+ dsCellRangeChange: EventEmitter<DsTableCustomEvent<IDsTableTableCellRange>>;
39
+ dsCellsChange: EventEmitter<DsTableCustomEvent<IDsTableTableCellsChangeDetail>>;
34
40
  dsCustomizeOptionChange: EventEmitter<DsTableCustomEvent<string>>;
35
41
  dsSortChange: EventEmitter<DsTableCustomEvent<IDsTableDataSortChangeDetail>>;
36
42
  dsGroupCollapseChange: EventEmitter<DsTableCustomEvent<IDsTableTableGroupCollapseChangeDetail>>;
@@ -13,6 +13,8 @@ import * as i0 from "@angular/core";
13
13
  let DsTable = class DsTable {
14
14
  constructor(c, r, z) {
15
15
  this.z = z;
16
+ this.dsCellRangeChange = new EventEmitter();
17
+ this.dsCellsChange = new EventEmitter();
16
18
  this.dsCustomizeOptionChange = new EventEmitter();
17
19
  this.dsSortChange = new EventEmitter();
18
20
  this.dsGroupCollapseChange = new EventEmitter();
@@ -28,12 +30,12 @@ let DsTable = class DsTable {
28
30
  this.el = r.nativeElement;
29
31
  }
30
32
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: DsTable, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
31
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.7", type: DsTable, isStandalone: true, selector: "ds-table", inputs: { caption: "caption", captionControlsBorderless: "captionControlsBorderless", captionVisibility: "captionVisibility", chromeLoading: "chromeLoading", collapsedGroupIds: "collapsedGroupIds", columnCustomizer: "columnCustomizer", columns: "columns", customizeOptions: "customizeOptions", dataMode: "dataMode", dataModeMenuLabel: "dataModeMenuLabel", dataModeSwitcher: "dataModeSwitcher", dataModeSwitcherLabel: "dataModeSwitcherLabel", displayedCount: "displayedCount", emptyBody: "emptyBody", emptyCellLabel: "emptyCellLabel", emptyHeading: "emptyHeading", endOfResultsLabel: "endOfResultsLabel", error: "error", errorBody: "errorBody", errorHeading: "errorHeading", fieldOrder: "fieldOrder", fitViewport: "fitViewport", groupEndOfResultsLabel: "groupEndOfResultsLabel", groupLoadMoreAriaLabel: "groupLoadMoreAriaLabel", groupLoadMoreLabel: "groupLoadMoreLabel", groupLoadingMoreLabel: "groupLoadingMoreLabel", groupRetryLabel: "groupRetryLabel", groupRowsLoadedLabel: "groupRowsLoadedLabel", grouping: "grouping", groups: "groups", hasMore: "hasMore", height: "height", hiddenFieldIds: "hiddenFieldIds", hideColumnCustomizerTrigger: "hideColumnCustomizerTrigger", highlightFieldIds: "highlightFieldIds", highlightTerms: "highlightTerms", infiniteModeLabel: "infiniteModeLabel", loadIdentity: "loadIdentity", loadMoreError: "loadMoreError", loadMoreLabel: "loadMoreLabel", loadMoreMode: "loadMoreMode", loadMoreThreshold: "loadMoreThreshold", loading: "loading", loadingMore: "loadingMore", loadingMoreLabel: "loadingMoreLabel", maxHeight: "maxHeight", pagination: "pagination", paginationModeLabel: "paginationModeLabel", resultSummaryLabel: "resultSummaryLabel", resultTotalSummaryLabel: "resultTotalSummaryLabel", retryLabel: "retryLabel", rows: "rows", rowsLoadedLabel: "rowsLoadedLabel", scrollLabel: "scrollLabel", selectedRowIds: "selectedRowIds", selectionMode: "selectionMode", skeletonRows: "skeletonRows", sort: "sort", stickyHeader: "stickyHeader", surfaceOpenRowId: "surfaceOpenRowId", totalCount: "totalCount", viewportInsetBlockEnd: "viewportInsetBlockEnd", viewportInsetBlockStart: "viewportInsetBlockStart", virtualModeLabel: "virtualModeLabel" }, outputs: { dsCustomizeOptionChange: "dsCustomizeOptionChange", dsSortChange: "dsSortChange", dsGroupCollapseChange: "dsGroupCollapseChange", dsSelectionChange: "dsSelectionChange", dsLoadMore: "dsLoadMore", dsGroupLoadMore: "dsGroupLoadMore", dsPaginationChange: "dsPaginationChange", dsCellAction: "dsCellAction", dsRowActivate: "dsRowActivate", dsFieldsConfigChange: "dsFieldsConfigChange", dsDataModeChange: "dsDataModeChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
33
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.7", type: DsTable, isStandalone: true, selector: "ds-table", inputs: { caption: "caption", captionControlsBorderless: "captionControlsBorderless", captionVisibility: "captionVisibility", cellRange: "cellRange", cellSpans: "cellSpans", chromeLoading: "chromeLoading", collapsedGroupIds: "collapsedGroupIds", columnCustomizer: "columnCustomizer", columns: "columns", customizeOptions: "customizeOptions", dataMode: "dataMode", dataModeMenuLabel: "dataModeMenuLabel", dataModeSwitcher: "dataModeSwitcher", dataModeSwitcherLabel: "dataModeSwitcherLabel", displayedCount: "displayedCount", emptyBody: "emptyBody", emptyCellLabel: "emptyCellLabel", emptyHeading: "emptyHeading", endOfResultsLabel: "endOfResultsLabel", error: "error", errorBody: "errorBody", errorHeading: "errorHeading", fieldOrder: "fieldOrder", fitViewport: "fitViewport", groupEndOfResultsLabel: "groupEndOfResultsLabel", groupLoadMoreAriaLabel: "groupLoadMoreAriaLabel", groupLoadMoreLabel: "groupLoadMoreLabel", groupLoadingMoreLabel: "groupLoadingMoreLabel", groupRetryLabel: "groupRetryLabel", groupRowsLoadedLabel: "groupRowsLoadedLabel", grouping: "grouping", groups: "groups", hasMore: "hasMore", height: "height", hiddenFieldIds: "hiddenFieldIds", hideColumnCustomizerTrigger: "hideColumnCustomizerTrigger", highlightFieldIds: "highlightFieldIds", highlightTerms: "highlightTerms", infiniteModeLabel: "infiniteModeLabel", interactionMode: "interactionMode", loadIdentity: "loadIdentity", loadMoreError: "loadMoreError", loadMoreLabel: "loadMoreLabel", loadMoreMode: "loadMoreMode", loadMoreThreshold: "loadMoreThreshold", loading: "loading", loadingMore: "loadingMore", loadingMoreLabel: "loadingMoreLabel", maxHeight: "maxHeight", pagination: "pagination", paginationModeLabel: "paginationModeLabel", responsiveLayout: "responsiveLayout", resultSummaryLabel: "resultSummaryLabel", resultTotalSummaryLabel: "resultTotalSummaryLabel", retryLabel: "retryLabel", rows: "rows", rowsLoadedLabel: "rowsLoadedLabel", scrollLabel: "scrollLabel", selectedRowIds: "selectedRowIds", selectionMode: "selectionMode", skeletonRows: "skeletonRows", sort: "sort", stickyHeader: "stickyHeader", surfaceOpenRowId: "surfaceOpenRowId", totalCount: "totalCount", viewportInsetBlockEnd: "viewportInsetBlockEnd", viewportInsetBlockStart: "viewportInsetBlockStart", virtualModeLabel: "virtualModeLabel" }, outputs: { dsCellRangeChange: "dsCellRangeChange", dsCellsChange: "dsCellsChange", dsCustomizeOptionChange: "dsCustomizeOptionChange", dsSortChange: "dsSortChange", dsGroupCollapseChange: "dsGroupCollapseChange", dsSelectionChange: "dsSelectionChange", dsLoadMore: "dsLoadMore", dsGroupLoadMore: "dsGroupLoadMore", dsPaginationChange: "dsPaginationChange", dsCellAction: "dsCellAction", dsRowActivate: "dsRowActivate", dsFieldsConfigChange: "dsFieldsConfigChange", dsDataModeChange: "dsDataModeChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
32
34
  };
33
35
  DsTable = __decorate([
34
36
  ProxyCmp({
35
37
  defineCustomElementFn: defineDsTable,
36
- inputs: ['caption', 'captionControlsBorderless', 'captionVisibility', 'chromeLoading', 'collapsedGroupIds', 'columnCustomizer', 'columns', 'customizeOptions', 'dataMode', 'dataModeMenuLabel', 'dataModeSwitcher', 'dataModeSwitcherLabel', 'displayedCount', 'emptyBody', 'emptyCellLabel', 'emptyHeading', 'endOfResultsLabel', 'error', 'errorBody', 'errorHeading', 'fieldOrder', 'fitViewport', 'groupEndOfResultsLabel', 'groupLoadMoreAriaLabel', 'groupLoadMoreLabel', 'groupLoadingMoreLabel', 'groupRetryLabel', 'groupRowsLoadedLabel', 'grouping', 'groups', 'hasMore', 'height', 'hiddenFieldIds', 'hideColumnCustomizerTrigger', 'highlightFieldIds', 'highlightTerms', 'infiniteModeLabel', 'loadIdentity', 'loadMoreError', 'loadMoreLabel', 'loadMoreMode', 'loadMoreThreshold', 'loading', 'loadingMore', 'loadingMoreLabel', 'maxHeight', 'pagination', 'paginationModeLabel', 'resultSummaryLabel', 'resultTotalSummaryLabel', 'retryLabel', 'rows', 'rowsLoadedLabel', 'scrollLabel', 'selectedRowIds', 'selectionMode', 'skeletonRows', 'sort', 'stickyHeader', 'surfaceOpenRowId', 'totalCount', 'viewportInsetBlockEnd', 'viewportInsetBlockStart', 'virtualModeLabel'],
38
+ inputs: ['caption', 'captionControlsBorderless', 'captionVisibility', 'cellRange', 'cellSpans', 'chromeLoading', 'collapsedGroupIds', 'columnCustomizer', 'columns', 'customizeOptions', 'dataMode', 'dataModeMenuLabel', 'dataModeSwitcher', 'dataModeSwitcherLabel', 'displayedCount', 'emptyBody', 'emptyCellLabel', 'emptyHeading', 'endOfResultsLabel', 'error', 'errorBody', 'errorHeading', 'fieldOrder', 'fitViewport', 'groupEndOfResultsLabel', 'groupLoadMoreAriaLabel', 'groupLoadMoreLabel', 'groupLoadingMoreLabel', 'groupRetryLabel', 'groupRowsLoadedLabel', 'grouping', 'groups', 'hasMore', 'height', 'hiddenFieldIds', 'hideColumnCustomizerTrigger', 'highlightFieldIds', 'highlightTerms', 'infiniteModeLabel', 'interactionMode', 'loadIdentity', 'loadMoreError', 'loadMoreLabel', 'loadMoreMode', 'loadMoreThreshold', 'loading', 'loadingMore', 'loadingMoreLabel', 'maxHeight', 'pagination', 'paginationModeLabel', 'responsiveLayout', 'resultSummaryLabel', 'resultTotalSummaryLabel', 'retryLabel', 'rows', 'rowsLoadedLabel', 'scrollLabel', 'selectedRowIds', 'selectionMode', 'skeletonRows', 'sort', 'stickyHeader', 'surfaceOpenRowId', 'totalCount', 'viewportInsetBlockEnd', 'viewportInsetBlockStart', 'virtualModeLabel'],
37
39
  methods: ['scrollRowIntoView']
38
40
  })
39
41
  ], DsTable);
@@ -45,10 +47,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
45
47
  changeDetection: ChangeDetectionStrategy.OnPush,
46
48
  template: '<ng-content></ng-content>',
47
49
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
48
- inputs: [{ name: 'caption', required: true }, 'captionControlsBorderless', 'captionVisibility', 'chromeLoading', 'collapsedGroupIds', 'columnCustomizer', 'columns', 'customizeOptions', 'dataMode', 'dataModeMenuLabel', 'dataModeSwitcher', 'dataModeSwitcherLabel', 'displayedCount', 'emptyBody', 'emptyCellLabel', 'emptyHeading', 'endOfResultsLabel', 'error', 'errorBody', 'errorHeading', 'fieldOrder', 'fitViewport', 'groupEndOfResultsLabel', 'groupLoadMoreAriaLabel', 'groupLoadMoreLabel', 'groupLoadingMoreLabel', 'groupRetryLabel', 'groupRowsLoadedLabel', 'grouping', 'groups', 'hasMore', 'height', 'hiddenFieldIds', 'hideColumnCustomizerTrigger', 'highlightFieldIds', 'highlightTerms', 'infiniteModeLabel', 'loadIdentity', 'loadMoreError', 'loadMoreLabel', 'loadMoreMode', 'loadMoreThreshold', 'loading', 'loadingMore', 'loadingMoreLabel', 'maxHeight', 'pagination', 'paginationModeLabel', 'resultSummaryLabel', 'resultTotalSummaryLabel', 'retryLabel', 'rows', 'rowsLoadedLabel', 'scrollLabel', 'selectedRowIds', 'selectionMode', 'skeletonRows', 'sort', 'stickyHeader', 'surfaceOpenRowId', 'totalCount', 'viewportInsetBlockEnd', 'viewportInsetBlockStart', 'virtualModeLabel'],
49
- outputs: ['dsCustomizeOptionChange', 'dsSortChange', 'dsGroupCollapseChange', 'dsSelectionChange', 'dsLoadMore', 'dsGroupLoadMore', 'dsPaginationChange', 'dsCellAction', 'dsRowActivate', 'dsFieldsConfigChange', 'dsDataModeChange'],
50
+ inputs: [{ name: 'caption', required: true }, 'captionControlsBorderless', 'captionVisibility', 'cellRange', 'cellSpans', 'chromeLoading', 'collapsedGroupIds', 'columnCustomizer', 'columns', 'customizeOptions', 'dataMode', 'dataModeMenuLabel', 'dataModeSwitcher', 'dataModeSwitcherLabel', 'displayedCount', 'emptyBody', 'emptyCellLabel', 'emptyHeading', 'endOfResultsLabel', 'error', 'errorBody', 'errorHeading', 'fieldOrder', 'fitViewport', 'groupEndOfResultsLabel', 'groupLoadMoreAriaLabel', 'groupLoadMoreLabel', 'groupLoadingMoreLabel', 'groupRetryLabel', 'groupRowsLoadedLabel', 'grouping', 'groups', 'hasMore', 'height', 'hiddenFieldIds', 'hideColumnCustomizerTrigger', 'highlightFieldIds', 'highlightTerms', 'infiniteModeLabel', 'interactionMode', 'loadIdentity', 'loadMoreError', 'loadMoreLabel', 'loadMoreMode', 'loadMoreThreshold', 'loading', 'loadingMore', 'loadingMoreLabel', 'maxHeight', 'pagination', 'paginationModeLabel', 'responsiveLayout', 'resultSummaryLabel', 'resultTotalSummaryLabel', 'retryLabel', 'rows', 'rowsLoadedLabel', 'scrollLabel', 'selectedRowIds', 'selectionMode', 'skeletonRows', 'sort', 'stickyHeader', 'surfaceOpenRowId', 'totalCount', 'viewportInsetBlockEnd', 'viewportInsetBlockStart', 'virtualModeLabel'],
51
+ outputs: ['dsCellRangeChange', 'dsCellsChange', 'dsCustomizeOptionChange', 'dsSortChange', 'dsGroupCollapseChange', 'dsSelectionChange', 'dsLoadMore', 'dsGroupLoadMore', 'dsPaginationChange', 'dsCellAction', 'dsRowActivate', 'dsFieldsConfigChange', 'dsDataModeChange'],
50
52
  }]
51
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { dsCustomizeOptionChange: [{
53
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { dsCellRangeChange: [{
54
+ type: Output
55
+ }], dsCellsChange: [{
56
+ type: Output
57
+ }], dsCustomizeOptionChange: [{
52
58
  type: Output
53
59
  }], dsSortChange: [{
54
60
  type: Output
@@ -1,2 +1,2 @@
1
- import{A as s,d as o}from"./p-CcZSzCfs.js";const t=s;const c=o;export{t as DsAgentQuestionnaire,c as defineCustomElement};
1
+ import{A as o,d as s}from"./p-BO5URdZF.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 r}from"./p-Dr5rkAhe.js";import{d as i}from"./p-CcZSzCfs.js";import{d as n}from"./p-BVxK8ce0.js";import{d}from"./p-BmIllmq2.js";import{d as m}from"./p-DKGW3gRa.js";import{d as c}from"./p-CwdRaJER.js";import{d as l}from"./p-Dg6hnCc2.js";import{d as u}from"./p-D-J7GgjY.js";import{d as f}from"./p--pJyciTI.js";import{d as p}from"./p-BYeG0b5N.js";import{d as b}from"./p-pPtjNRqC.js";import{d as g}from"./p-0XTyQNRG.js";import{d as h}from"./p-wRhYxngW.js";import{d as k}from"./p-YC7UM4jH.js";import{d as y}from"./p-BkvAqrXg.js";import{d as j}from"./p-D8OWhnID.js";import{d as E}from"./p-DvGrsLgt.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%;color:var(--color-foreground-secondary);-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:"8e035e245e081f09c37041d065520559f60092c5"},t("ds-message",{key:"2b5ca1f278ea8b92c09d30d56f1ad5b9ed6d51fa",messageId:this.messageId,direction:"incoming",author:this.author,showAuthor:this.showAuthor,timestamp:this.timestamp,streaming:this.streaming,metadataVisibility:this.metadataVisibility},t("div",{key:"a297805fd2ce8a887aaa7894c41b88f8d245cc34",class:"agent-response"},this.renderMode==="composed"?t("slot",null):this.parts.map((s=>this.renderPart(s)))),t("slot",{key:"bf7dae6abfdaa611cd5614854512062ae30adeaf",name:"footer",slot:"footer"}),t("slot",{key:"0e042bd120ae8a3b90236868c287e0c7717533f9",name:"metadata-actions",slot:"metadata-actions"}),t("slot",{key:"24dc336d9d993762e43172105bea518ba94f8a81",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),v)}break;case"ds-agent-activity":if(!customElements.get(o(s))){r()}break;case"ds-agent-questionnaire":if(!customElements.get(o(s))){i()}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))){u()}break;case"ds-checkbox":if(!customElements.get(o(s))){f()}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))){g()}break;case"ds-markdown":if(!customElements.get(o(s))){h()}break;case"ds-message":if(!customElements.get(o(s))){k()}break;case"ds-radio":if(!customElements.get(o(s))){y()}break;case"ds-text":if(!customElements.get(o(s))){j()}break;case"ds-tooltip":if(!customElements.get(o(s))){E()}break}}))}x();const q=v;const D=x;export{q as DsAgentResponse,D as defineCustomElement};
1
+ import{p as s,H as e,h as t,a,t as o}from"./index.js";import{d as r}from"./p-Dr5rkAhe.js";import{d as i}from"./p-BO5URdZF.js";import{d as n}from"./p-BVxK8ce0.js";import{d}from"./p-BmIllmq2.js";import{d as m}from"./p-DKGW3gRa.js";import{d as c}from"./p-CwdRaJER.js";import{d as l}from"./p-Dg6hnCc2.js";import{d as u}from"./p-D-J7GgjY.js";import{d as f}from"./p--pJyciTI.js";import{d as p}from"./p-BYeG0b5N.js";import{d as b}from"./p-pPtjNRqC.js";import{d as h}from"./p-0XTyQNRG.js";import{d as g}from"./p-wRhYxngW.js";import{d as k}from"./p-YC7UM4jH.js";import{d as y}from"./p-C1ZfBbJ_.js";import{d as j}from"./p-D8OWhnID.js";import{d as E}from"./p-DvGrsLgt.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%;color:var(--color-foreground-secondary);-webkit-user-select:none;user-select:none}`;const x=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:"8e035e245e081f09c37041d065520559f60092c5"},t("ds-message",{key:"2b5ca1f278ea8b92c09d30d56f1ad5b9ed6d51fa",messageId:this.messageId,direction:"incoming",author:this.author,showAuthor:this.showAuthor,timestamp:this.timestamp,streaming:this.streaming,metadataVisibility:this.metadataVisibility},t("div",{key:"a297805fd2ce8a887aaa7894c41b88f8d245cc34",class:"agent-response"},this.renderMode==="composed"?t("slot",null):this.parts.map((s=>this.renderPart(s)))),t("slot",{key:"bf7dae6abfdaa611cd5614854512062ae30adeaf",name:"footer",slot:"footer"}),t("slot",{key:"0e042bd120ae8a3b90236868c287e0c7717533f9",name:"metadata-actions",slot:"metadata-actions"}),t("slot",{key:"24dc336d9d993762e43172105bea518ba94f8a81",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 v(){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),x)}break;case"ds-agent-activity":if(!customElements.get(o(s))){r()}break;case"ds-agent-questionnaire":if(!customElements.get(o(s))){i()}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))){u()}break;case"ds-checkbox":if(!customElements.get(o(s))){f()}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))){h()}break;case"ds-markdown":if(!customElements.get(o(s))){g()}break;case"ds-message":if(!customElements.get(o(s))){k()}break;case"ds-radio":if(!customElements.get(o(s))){y()}break;case"ds-text":if(!customElements.get(o(s))){j()}break;case"ds-tooltip":if(!customElements.get(o(s))){E()}break}}))}v();const q=x;const D=v;export{q as DsAgentResponse,D as defineCustomElement};
2
2
  //# sourceMappingURL=ds-agent-response.js.map
@@ -1,2 +1,2 @@
1
- import{p as s,H as o,c as i,h as e,a as r,t}from"./index.js";import{d as a}from"./p-CwdRaJER.js";import{d}from"./p-Dg6hnCc2.js";import{d as n}from"./p-D-J7GgjY.js";import{d as l}from"./p-pPtjNRqC.js";import{d as c}from"./p-0XTyQNRG.js";import{d as m}from"./p-t2Ebn8si.js";import{d as b}from"./p-DQfKS7dz.js";import{d as h}from"./p-C5BBIDVm.js";import{d as w}from"./p-B9y6azEw.js";import{d as f}from"./p-Bf-BphXP.js";import{d as p}from"./p-LENgfPDe.js";import{d as u}from"./p-d76Ry5nh.js";import{d as k}from"./p-D8OWhnID.js";import{d as g}from"./p-DvGrsLgt.js";const v=()=>`.sc-ds-bar-workflow-h,.sc-ds-bar-workflow:where(.ds-table),.sc-ds-bar-workflow:where(.tooltip-popup),.sc-ds-bar-workflow:where(.ds-radius){--ds-radius-control:var(--dimension-radius-025);--ds-radius-card:var(--dimension-radius-050);--ds-radius-modal:var(--dimension-radius-050);--ds-radius-menu:var(--dimension-radius-075);--ds-radius-tooltip-control:var(--dimension-radius-025);--ds-radius-tooltip-menu:var(--dimension-radius-075);--ds-radius-table:var(--dimension-radius-050)}.ds-control--lg.sc-ds-bar-workflow,.ds-control--lg.sc-ds-bar-workflow-h,.ds-control--md.sc-ds-bar-workflow-h,.ds-control--md.sc-ds-bar-workflow,.ds-control--sm.sc-ds-bar-workflow-h,.ds-control--sm.sc-ds-bar-workflow,.ds-control--xs.sc-ds-bar-workflow-h,.ds-control--xs.sc-ds-bar-workflow{--ds-control-radius:var(--ds-radius-control)}.ds-control--lg.sc-ds-bar-workflow-h,.ds-control--lg.sc-ds-bar-workflow{--ds-control-height:var(--dimension-size-500);--ds-control-icon:var(--dimension-iconography-lg);--ds-control-padding-inline:var(--dimension-space-100);--ds-control-label-inset:var(--dimension-space-050);--ds-control-gap:var(--dimension-space-050)}.ds-control--md.sc-ds-bar-workflow-h,.ds-control--md.sc-ds-bar-workflow{--ds-control-height:var(--dimension-size-400);--ds-control-icon:var(--dimension-iconography-md);--ds-control-padding-inline:var(--dimension-space-075);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-050)}.ds-control--sm.sc-ds-bar-workflow-h,.ds-control--sm.sc-ds-bar-workflow{--ds-control-height:var(--dimension-size-300);--ds-control-icon:var(--dimension-iconography-sm);--ds-control-padding-inline:var(--dimension-space-050);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-025)}.ds-control--xs.sc-ds-bar-workflow-h,.ds-control--xs.sc-ds-bar-workflow{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0}.ds-chrome-space--sm.sc-ds-bar-workflow-h,.ds-chrome-space--sm.sc-ds-bar-workflow{--ds-chrome-padding:var(--dimension-space-050);--ds-chrome-gap:var(--dimension-space-050)}.ds-chrome-space--md.sc-ds-bar-workflow-h,.ds-chrome-space--md.sc-ds-bar-workflow{--ds-chrome-padding:var(--dimension-space-100);--ds-chrome-gap:var(--dimension-space-100)}.ds-chrome-space--lg.sc-ds-bar-workflow-h,.ds-chrome-space--lg.sc-ds-bar-workflow{--ds-chrome-padding:var(--dimension-space-200);--ds-chrome-gap:var(--dimension-space-200)}.ds-chrome-row.sc-ds-bar-workflow-h,.ds-chrome-row.sc-ds-bar-workflow,.ds-chrome-column.sc-ds-bar-workflow-h,.ds-chrome-column.sc-ds-bar-workflow,.ds-chrome-grid.sc-ds-bar-workflow-h,.ds-chrome-grid.sc-ds-bar-workflow{display:flex;box-sizing:border-box;gap:var(--ds-chrome-gap, var(--dimension-space-100));padding:var(--ds-chrome-padding, var(--dimension-space-100))}.ds-chrome-row.sc-ds-bar-workflow-h,.ds-chrome-row.sc-ds-bar-workflow{flex-direction:row;align-items:center}.ds-chrome-column.sc-ds-bar-workflow-h,.ds-chrome-column.sc-ds-bar-workflow{flex-direction:column}.ds-chrome-grid.sc-ds-bar-workflow-h,.ds-chrome-grid.sc-ds-bar-workflow{display:grid;align-items:center}.sc-ds-bar-workflow-h{display:block;min-width:0;box-sizing:border-box;background:var(--color-background-bold-brand)}.bar-workflow.sc-ds-bar-workflow{justify-content:space-between;height:var(--dimension-size-600);min-width:0;background:var(--color-background-bold-brand)}.bar-workflow__identity.sc-ds-bar-workflow{display:flex;flex:1 1 auto;align-items:center;gap:var(--dimension-space-050);height:var(--dimension-size-400);min-width:0}.bar-workflow__heading.sc-ds-bar-workflow{display:inline-flex;flex:1 1 auto;align-items:center;width:auto;min-width:0;height:var(--dimension-size-400);padding-inline:calc(var(--ds-control-padding-inline) + var(--ds-control-label-inset));box-sizing:border-box;user-select:none}.bar-workflow__actions.sc-ds-bar-workflow{display:flex;flex:0 0 auto;align-items:center;gap:var(--dimension-space-100)}`;const x=s(class s extends o{constructor(s){super();if(s!==false){this.__registerHost()}this.dsExit=i(this,"dsExit",7);this.dsStepChange=i(this,"dsStepChange",7);this.dsSubmit=i(this,"dsSubmit",7);this.steps=[];this.value="";this.exitLabel="Exit";this.exitAriaLabel="Exit workflow";this.previousLabel="Previous step";this.nextLabel="Next step";this.submitAction={label:"Save",type:"submit"};this.isNextInactive=false;this.responsiveMode="desktop";this.handlePrevious=()=>{if(this.previousStep&&!this.previousStep.isInactive){this.dsStepChange.emit(this.previousStep.id)}};this.handleNext=()=>{if(this.nextStep&&!this.isNextInactive&&!this.nextStep.isInactive){this.dsStepChange.emit(this.nextStep.id)}}}get currentIndex(){const s=this.steps.findIndex((s=>s.id===this.value));return s>=0?s:0}get previousStep(){return this.steps[this.currentIndex-1]??null}get nextStep(){return this.steps[this.currentIndex+1]??null}get isLastStep(){return this.steps.length<=1||this.currentIndex===this.steps.length-1}get resolvedHeading(){if(this.steps.length<=1)return this.heading;return`${this.heading} · ${this.currentIndex+1}/${this.steps.length}`}renderSubmit(s){const o=this.submitAction;return e("ds-tooltip",{slot:s,label:o.label,side:"bottom",size:"sm"},e("ds-button-filled",{class:"bar-workflow__submit",variant:"icon",icon:"Check",label:o.label,"aria-label":o.label,intent:"brand",contrast:"faint",background:"bold",size:"md",type:o.type??"submit",isInactive:o.isInactive,isLoading:o.isLoading,onDsClick:s=>this.dsSubmit.emit(s.detail)}))}renderMobile(){return e("ds-mobile-header",{class:"bar-workflow__mobile",heading:this.resolvedHeading,tone:"brand"},e("ds-tooltip",{slot:"leading",label:this.exitLabel,side:"bottom",size:"sm"},e("ds-button-unfilled",{class:"bar-workflow__exit",variant:"icon",icon:"Cross","aria-label":this.exitAriaLabel,size:"md",background:"bold",activeFill:false,hasBorder:false,onDsClick:s=>this.dsExit.emit(s.detail)})),this.previousStep?e("ds-tooltip",{slot:"trailing",label:this.previousLabel,side:"bottom",size:"sm"},e("ds-button-unfilled",{class:"bar-workflow__previous",variant:"icon",icon:"ChevronLeft","aria-label":this.previousLabel,size:"md",background:"bold",activeFill:false,hasBorder:false,isInactive:this.previousStep.isInactive,onDsClick:this.handlePrevious})):null,this.isLastStep?this.renderSubmit("trailing"):e("ds-tooltip",{slot:"trailing",label:this.nextLabel,side:"bottom",size:"sm"},e("ds-button-filled",{class:"bar-workflow__next",variant:"icon",icon:"ChevronRight",label:this.nextLabel,"aria-label":this.nextLabel,intent:"brand",contrast:"faint",background:"bold",size:"md",type:"button",isInactive:this.isNextInactive||this.nextStep?.isInactive,onDsClick:this.handleNext})))}renderDesktop(){return e("div",{class:"bar-workflow ds-chrome-row ds-chrome-space--md"},e("div",{class:"bar-workflow__identity"},e("ds-tooltip",{label:this.exitLabel,side:"bottom",size:"sm"},e("ds-button-unfilled",{class:"bar-workflow__exit",variant:"icon",icon:"Cross","aria-label":this.exitAriaLabel,size:"md",background:"bold",activeFill:false,hasBorder:false,onDsClick:s=>this.dsExit.emit(s.detail)})),e("ds-text",{class:"bar-workflow__heading ds-control--md",variant:"text-title-small",emphasis:true,color:"on-bold",as:"h1",lineTruncation:1},this.resolvedHeading)),e("div",{class:"bar-workflow__actions"},this.previousStep?e("ds-tooltip",{label:this.previousLabel,side:"bottom",size:"sm"},e("ds-button-unfilled",{class:"bar-workflow__previous",variant:"icon",icon:"ChevronLeft","aria-label":this.previousLabel,size:"md",background:"bold",activeFill:false,hasBorder:false,isInactive:this.previousStep.isInactive,onDsClick:this.handlePrevious})):null,this.isLastStep?this.renderSubmit():e("ds-tooltip",{label:this.nextLabel,side:"bottom",size:"sm"},e("ds-button-filled",{class:"bar-workflow__next",variant:"icon",icon:"ChevronRight",label:this.nextLabel,"aria-label":this.nextLabel,intent:"brand",contrast:"faint",background:"bold",size:"md",type:"button",isInactive:this.isNextInactive||this.nextStep?.isInactive,onDsClick:this.handleNext}))))}render(){return e(r,{key:"336e11281b764dd9dcd4eba255a63805fbdda3e2"},this.responsiveMode==="mobile"?this.renderMobile():this.renderDesktop())}static get style(){return v()}},[2,"ds-bar-workflow",{heading:[1],steps:[16],value:[1],exitLabel:[1,"exit-label"],exitAriaLabel:[1,"exit-aria-label"],previousLabel:[1,"previous-label"],nextLabel:[1,"next-label"],submitAction:[16],isNextInactive:[4,"is-next-inactive"],responsiveMode:[513,"responsive-mode"]}]);function _(){if(typeof customElements==="undefined"){return}const s=["ds-bar-workflow","ds-badge","ds-button-filled","ds-button-unfilled","ds-icon","ds-loader","ds-menu","ds-mobile-header","ds-mobile-section-switcher","ds-swatch-picker","ds-switch","ds-tab-group","ds-tag","ds-text","ds-tooltip"];s.forEach((s=>{switch(s){case"ds-bar-workflow":if(!customElements.get(t(s))){customElements.define(t(s),x)}break;case"ds-badge":if(!customElements.get(t(s))){a()}break;case"ds-button-filled":if(!customElements.get(t(s))){d()}break;case"ds-button-unfilled":if(!customElements.get(t(s))){n()}break;case"ds-icon":if(!customElements.get(t(s))){l()}break;case"ds-loader":if(!customElements.get(t(s))){c()}break;case"ds-menu":if(!customElements.get(t(s))){m()}break;case"ds-mobile-header":if(!customElements.get(t(s))){b()}break;case"ds-mobile-section-switcher":if(!customElements.get(t(s))){h()}break;case"ds-swatch-picker":if(!customElements.get(t(s))){w()}break;case"ds-switch":if(!customElements.get(t(s))){f()}break;case"ds-tab-group":if(!customElements.get(t(s))){p()}break;case"ds-tag":if(!customElements.get(t(s))){u()}break;case"ds-text":if(!customElements.get(t(s))){k()}break;case"ds-tooltip":if(!customElements.get(t(s))){g()}break}}))}_();const z=x;const E=_;export{z as DsBarWorkflow,E as defineCustomElement};
1
+ import{p as s,H as o,c as i,h as e,a as r,t}from"./index.js";import{d as a}from"./p-CwdRaJER.js";import{d}from"./p-Dg6hnCc2.js";import{d as n}from"./p-D-J7GgjY.js";import{d as l}from"./p-pPtjNRqC.js";import{d as c}from"./p-0XTyQNRG.js";import{d as m}from"./p-t2Ebn8si.js";import{d as b}from"./p-D9_iDlkT.js";import{d as h}from"./p-C5BBIDVm.js";import{d as w}from"./p-B9y6azEw.js";import{d as f}from"./p-Bf-BphXP.js";import{d as p}from"./p-7MwoWtTJ.js";import{d as u}from"./p-d76Ry5nh.js";import{d as k}from"./p-D8OWhnID.js";import{d as g}from"./p-DvGrsLgt.js";const v=()=>`.sc-ds-bar-workflow-h,.sc-ds-bar-workflow:where(.ds-table),.sc-ds-bar-workflow:where(.tooltip-popup),.sc-ds-bar-workflow:where(.ds-radius){--ds-radius-control:var(--dimension-radius-025);--ds-radius-card:var(--dimension-radius-050);--ds-radius-modal:var(--dimension-radius-050);--ds-radius-menu:var(--dimension-radius-075);--ds-radius-tooltip-control:var(--dimension-radius-025);--ds-radius-tooltip-menu:var(--dimension-radius-075);--ds-radius-table:var(--dimension-radius-050)}.ds-control--lg.sc-ds-bar-workflow,.ds-control--lg.sc-ds-bar-workflow-h,.ds-control--md.sc-ds-bar-workflow-h,.ds-control--md.sc-ds-bar-workflow,.ds-control--sm.sc-ds-bar-workflow-h,.ds-control--sm.sc-ds-bar-workflow,.ds-control--xs.sc-ds-bar-workflow-h,.ds-control--xs.sc-ds-bar-workflow{--ds-control-radius:var(--ds-radius-control)}.ds-control--lg.sc-ds-bar-workflow-h,.ds-control--lg.sc-ds-bar-workflow{--ds-control-height:var(--dimension-size-500);--ds-control-icon:var(--dimension-iconography-lg);--ds-control-padding-inline:var(--dimension-space-100);--ds-control-label-inset:var(--dimension-space-050);--ds-control-gap:var(--dimension-space-050)}.ds-control--md.sc-ds-bar-workflow-h,.ds-control--md.sc-ds-bar-workflow{--ds-control-height:var(--dimension-size-400);--ds-control-icon:var(--dimension-iconography-md);--ds-control-padding-inline:var(--dimension-space-075);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-050)}.ds-control--sm.sc-ds-bar-workflow-h,.ds-control--sm.sc-ds-bar-workflow{--ds-control-height:var(--dimension-size-300);--ds-control-icon:var(--dimension-iconography-sm);--ds-control-padding-inline:var(--dimension-space-050);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-025)}.ds-control--xs.sc-ds-bar-workflow-h,.ds-control--xs.sc-ds-bar-workflow{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0}.ds-chrome-space--sm.sc-ds-bar-workflow-h,.ds-chrome-space--sm.sc-ds-bar-workflow{--ds-chrome-padding:var(--dimension-space-050);--ds-chrome-gap:var(--dimension-space-050)}.ds-chrome-space--md.sc-ds-bar-workflow-h,.ds-chrome-space--md.sc-ds-bar-workflow{--ds-chrome-padding:var(--dimension-space-100);--ds-chrome-gap:var(--dimension-space-100)}.ds-chrome-space--lg.sc-ds-bar-workflow-h,.ds-chrome-space--lg.sc-ds-bar-workflow{--ds-chrome-padding:var(--dimension-space-200);--ds-chrome-gap:var(--dimension-space-200)}.ds-chrome-row.sc-ds-bar-workflow-h,.ds-chrome-row.sc-ds-bar-workflow,.ds-chrome-column.sc-ds-bar-workflow-h,.ds-chrome-column.sc-ds-bar-workflow,.ds-chrome-grid.sc-ds-bar-workflow-h,.ds-chrome-grid.sc-ds-bar-workflow{display:flex;box-sizing:border-box;gap:var(--ds-chrome-gap, var(--dimension-space-100));padding:var(--ds-chrome-padding, var(--dimension-space-100))}.ds-chrome-row.sc-ds-bar-workflow-h,.ds-chrome-row.sc-ds-bar-workflow{flex-direction:row;align-items:center}.ds-chrome-column.sc-ds-bar-workflow-h,.ds-chrome-column.sc-ds-bar-workflow{flex-direction:column}.ds-chrome-grid.sc-ds-bar-workflow-h,.ds-chrome-grid.sc-ds-bar-workflow{display:grid;align-items:center}.sc-ds-bar-workflow-h{display:block;min-width:0;box-sizing:border-box;background:var(--color-background-bold-brand)}.bar-workflow.sc-ds-bar-workflow{justify-content:space-between;height:var(--dimension-size-600);min-width:0;background:var(--color-background-bold-brand)}.bar-workflow__identity.sc-ds-bar-workflow{display:flex;flex:1 1 auto;align-items:center;gap:var(--dimension-space-050);height:var(--dimension-size-400);min-width:0}.bar-workflow__heading.sc-ds-bar-workflow{display:inline-flex;flex:1 1 auto;align-items:center;width:auto;min-width:0;height:var(--dimension-size-400);padding-inline:calc(var(--ds-control-padding-inline) + var(--ds-control-label-inset));box-sizing:border-box;user-select:none}.bar-workflow__actions.sc-ds-bar-workflow{display:flex;flex:0 0 auto;align-items:center;gap:var(--dimension-space-100)}`;const x=s(class s extends o{constructor(s){super();if(s!==false){this.__registerHost()}this.dsExit=i(this,"dsExit",7);this.dsStepChange=i(this,"dsStepChange",7);this.dsSubmit=i(this,"dsSubmit",7);this.steps=[];this.value="";this.exitLabel="Exit";this.exitAriaLabel="Exit workflow";this.previousLabel="Previous step";this.nextLabel="Next step";this.submitAction={label:"Save",type:"submit"};this.isNextInactive=false;this.responsiveMode="desktop";this.handlePrevious=()=>{if(this.previousStep&&!this.previousStep.isInactive){this.dsStepChange.emit(this.previousStep.id)}};this.handleNext=()=>{if(this.nextStep&&!this.isNextInactive&&!this.nextStep.isInactive){this.dsStepChange.emit(this.nextStep.id)}}}get currentIndex(){const s=this.steps.findIndex((s=>s.id===this.value));return s>=0?s:0}get previousStep(){return this.steps[this.currentIndex-1]??null}get nextStep(){return this.steps[this.currentIndex+1]??null}get isLastStep(){return this.steps.length<=1||this.currentIndex===this.steps.length-1}get resolvedHeading(){if(this.steps.length<=1)return this.heading;return`${this.heading} · ${this.currentIndex+1}/${this.steps.length}`}renderSubmit(s){const o=this.submitAction;return e("ds-tooltip",{slot:s,label:o.label,side:"bottom",size:"sm"},e("ds-button-filled",{class:"bar-workflow__submit",variant:"icon",icon:"Check",label:o.label,"aria-label":o.label,intent:"brand",contrast:"faint",background:"bold",size:"md",type:o.type??"submit",isInactive:o.isInactive,isLoading:o.isLoading,onDsClick:s=>this.dsSubmit.emit(s.detail)}))}renderMobile(){return e("ds-mobile-header",{class:"bar-workflow__mobile",heading:this.resolvedHeading,tone:"brand"},e("ds-tooltip",{slot:"leading",label:this.exitLabel,side:"bottom",size:"sm"},e("ds-button-unfilled",{class:"bar-workflow__exit",variant:"icon",icon:"Cross","aria-label":this.exitAriaLabel,size:"md",background:"bold",activeFill:false,hasBorder:false,onDsClick:s=>this.dsExit.emit(s.detail)})),this.previousStep?e("ds-tooltip",{slot:"trailing",label:this.previousLabel,side:"bottom",size:"sm"},e("ds-button-unfilled",{class:"bar-workflow__previous",variant:"icon",icon:"ChevronLeft","aria-label":this.previousLabel,size:"md",background:"bold",activeFill:false,hasBorder:false,isInactive:this.previousStep.isInactive,onDsClick:this.handlePrevious})):null,this.isLastStep?this.renderSubmit("trailing"):e("ds-tooltip",{slot:"trailing",label:this.nextLabel,side:"bottom",size:"sm"},e("ds-button-filled",{class:"bar-workflow__next",variant:"icon",icon:"ChevronRight",label:this.nextLabel,"aria-label":this.nextLabel,intent:"brand",contrast:"faint",background:"bold",size:"md",type:"button",isInactive:this.isNextInactive||this.nextStep?.isInactive,onDsClick:this.handleNext})))}renderDesktop(){return e("div",{class:"bar-workflow ds-chrome-row ds-chrome-space--md"},e("div",{class:"bar-workflow__identity"},e("ds-tooltip",{label:this.exitLabel,side:"bottom",size:"sm"},e("ds-button-unfilled",{class:"bar-workflow__exit",variant:"icon",icon:"Cross","aria-label":this.exitAriaLabel,size:"md",background:"bold",activeFill:false,hasBorder:false,onDsClick:s=>this.dsExit.emit(s.detail)})),e("ds-text",{class:"bar-workflow__heading ds-control--md",variant:"text-title-small",emphasis:true,color:"on-bold",as:"h1",lineTruncation:1},this.resolvedHeading)),e("div",{class:"bar-workflow__actions"},this.previousStep?e("ds-tooltip",{label:this.previousLabel,side:"bottom",size:"sm"},e("ds-button-unfilled",{class:"bar-workflow__previous",variant:"icon",icon:"ChevronLeft","aria-label":this.previousLabel,size:"md",background:"bold",activeFill:false,hasBorder:false,isInactive:this.previousStep.isInactive,onDsClick:this.handlePrevious})):null,this.isLastStep?this.renderSubmit():e("ds-tooltip",{label:this.nextLabel,side:"bottom",size:"sm"},e("ds-button-filled",{class:"bar-workflow__next",variant:"icon",icon:"ChevronRight",label:this.nextLabel,"aria-label":this.nextLabel,intent:"brand",contrast:"faint",background:"bold",size:"md",type:"button",isInactive:this.isNextInactive||this.nextStep?.isInactive,onDsClick:this.handleNext}))))}render(){return e(r,{key:"336e11281b764dd9dcd4eba255a63805fbdda3e2"},this.responsiveMode==="mobile"?this.renderMobile():this.renderDesktop())}static get style(){return v()}},[2,"ds-bar-workflow",{heading:[1],steps:[16],value:[1],exitLabel:[1,"exit-label"],exitAriaLabel:[1,"exit-aria-label"],previousLabel:[1,"previous-label"],nextLabel:[1,"next-label"],submitAction:[16],isNextInactive:[4,"is-next-inactive"],responsiveMode:[513,"responsive-mode"]}]);function _(){if(typeof customElements==="undefined"){return}const s=["ds-bar-workflow","ds-badge","ds-button-filled","ds-button-unfilled","ds-icon","ds-loader","ds-menu","ds-mobile-header","ds-mobile-section-switcher","ds-swatch-picker","ds-switch","ds-tab-group","ds-tag","ds-text","ds-tooltip"];s.forEach((s=>{switch(s){case"ds-bar-workflow":if(!customElements.get(t(s))){customElements.define(t(s),x)}break;case"ds-badge":if(!customElements.get(t(s))){a()}break;case"ds-button-filled":if(!customElements.get(t(s))){d()}break;case"ds-button-unfilled":if(!customElements.get(t(s))){n()}break;case"ds-icon":if(!customElements.get(t(s))){l()}break;case"ds-loader":if(!customElements.get(t(s))){c()}break;case"ds-menu":if(!customElements.get(t(s))){m()}break;case"ds-mobile-header":if(!customElements.get(t(s))){b()}break;case"ds-mobile-section-switcher":if(!customElements.get(t(s))){h()}break;case"ds-swatch-picker":if(!customElements.get(t(s))){w()}break;case"ds-switch":if(!customElements.get(t(s))){f()}break;case"ds-tab-group":if(!customElements.get(t(s))){p()}break;case"ds-tag":if(!customElements.get(t(s))){u()}break;case"ds-text":if(!customElements.get(t(s))){k()}break;case"ds-tooltip":if(!customElements.get(t(s))){g()}break}}))}_();const z=x;const y=_;export{z as DsBarWorkflow,y as defineCustomElement};
2
2
  //# sourceMappingURL=ds-bar-workflow.js.map