@ds-mo/ui 8.0.1 → 8.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/dist/.build-stamp +1 -1
  2. package/dist/agent.json +633 -29
  3. package/dist/angular/ds-badge.d.ts +1 -1
  4. package/dist/angular/ds-badge.js +3 -3
  5. package/dist/angular/ds-button-filled.d.ts +1 -1
  6. package/dist/angular/ds-button-filled.js +3 -3
  7. package/dist/angular/ds-button-unfilled.d.ts +1 -1
  8. package/dist/angular/ds-button-unfilled.js +3 -3
  9. package/dist/angular/ds-checkbox.d.ts +4 -1
  10. package/dist/angular/ds-checkbox.js +3 -3
  11. package/dist/angular/ds-empty-state.d.ts +1 -1
  12. package/dist/angular/ds-empty-state.js +3 -3
  13. package/dist/angular/ds-select-multi.d.ts +28 -0
  14. package/dist/angular/ds-select-multi.js +49 -0
  15. package/dist/angular/ds-select.d.ts +12 -2
  16. package/dist/angular/ds-select.js +11 -4
  17. package/dist/angular/index.d.ts +1 -1
  18. package/dist/angular/index.js +1 -0
  19. package/dist/angular/proxies.d.ts +1 -0
  20. package/dist/angular/proxies.js +1 -0
  21. package/dist/components/ds-app-shell.js +1 -1
  22. package/dist/components/ds-badge.js +1 -1
  23. package/dist/components/ds-banner.js +1 -1
  24. package/dist/components/ds-bar-nav.js +1 -1
  25. package/dist/components/ds-bar-nav.js.map +1 -1
  26. package/dist/components/ds-button-filled.js +1 -1
  27. package/dist/components/ds-button-unfilled.js +1 -1
  28. package/dist/components/ds-card-data-viz-donut.js +1 -1
  29. package/dist/components/ds-card-setting.js +1 -1
  30. package/dist/components/ds-card.js +1 -1
  31. package/dist/components/ds-chart-bar.js +1 -1
  32. package/dist/components/ds-chart-donut.js +1 -1
  33. package/dist/components/ds-chart-legend.js +1 -1
  34. package/dist/components/ds-chart-line.js +1 -1
  35. package/dist/components/ds-checkbox.js +1 -1
  36. package/dist/components/ds-checkbox.js.map +1 -1
  37. package/dist/components/ds-chip.js +1 -1
  38. package/dist/components/ds-divider.js +1 -1
  39. package/dist/components/ds-empty-state.js +1 -1
  40. package/dist/components/ds-empty-state.js.map +1 -1
  41. package/dist/components/ds-field.js +1 -1
  42. package/dist/components/ds-icon.js +1 -1
  43. package/dist/components/ds-input.js +1 -1
  44. package/dist/components/ds-menu.js +1 -1
  45. package/dist/components/ds-modal.js +1 -1
  46. package/dist/components/ds-pagination.js +1 -1
  47. package/dist/components/ds-panel-nav.js +1 -1
  48. package/dist/components/ds-panel-nav.js.map +1 -1
  49. package/dist/components/ds-panel-sub-nav.js +1 -1
  50. package/dist/components/ds-panel-tools.js +1 -1
  51. package/dist/components/ds-radio-group.js +1 -1
  52. package/dist/components/ds-select-multi.d.ts +11 -0
  53. package/dist/components/ds-select-multi.js +2 -0
  54. package/dist/components/ds-select-multi.js.map +1 -0
  55. package/dist/components/ds-select.js +1 -1
  56. package/dist/components/ds-select.js.map +1 -1
  57. package/dist/components/ds-shell-gradient-picker.js +1 -1
  58. package/dist/components/ds-shell-gradient-swatch.js +1 -1
  59. package/dist/components/ds-skeleton.js +1 -1
  60. package/dist/components/ds-slider.js +1 -1
  61. package/dist/components/ds-slider.js.map +1 -1
  62. package/dist/components/ds-switch.js +1 -1
  63. package/dist/components/ds-tab-group.js +1 -1
  64. package/dist/components/ds-tab-group.js.map +1 -1
  65. package/dist/components/ds-table.js +1 -1
  66. package/dist/components/ds-tag.js +1 -1
  67. package/dist/components/ds-text.js +1 -1
  68. package/dist/components/ds-tooltip-data-viz.js +1 -1
  69. package/dist/components/ds-tooltip.js +1 -1
  70. package/dist/components/{p-CPD_mML6.js → p-B2FhhQba.js} +2 -2
  71. package/dist/components/p-BEmVLLnN.js +2 -0
  72. package/dist/components/p-BEmVLLnN.js.map +1 -0
  73. package/dist/components/{p-DoZU8RH0.js → p-BMbadvZo.js} +2 -2
  74. package/dist/components/{p-B8ERbwc9.js → p-BcB-zkOx.js} +2 -2
  75. package/dist/components/p-COzps7J4.js +2 -0
  76. package/dist/components/p-COzps7J4.js.map +1 -0
  77. package/dist/components/p-CTmsQjsE.js +2 -0
  78. package/dist/components/p-CTmsQjsE.js.map +1 -0
  79. package/dist/components/p-C_cu-HIT.js +2 -0
  80. package/dist/components/p-C_cu-HIT.js.map +1 -0
  81. package/dist/components/{p-DavEAOUa.js → p-Ckiwpsgw.js} +2 -2
  82. package/dist/components/{p-Dt0XnMxc.js → p-CwaC4wLu.js} +2 -2
  83. package/dist/components/{p-Dt0XnMxc.js.map → p-CwaC4wLu.js.map} +1 -1
  84. package/dist/components/{p-clDpFcdU.js → p-DDBLO7bY.js} +2 -2
  85. package/dist/components/p-Du9UUSJ5.js +2 -0
  86. package/dist/components/p-Du9UUSJ5.js.map +1 -0
  87. package/dist/components/p-JsVSx7ZR.js +2 -0
  88. package/dist/components/p-JsVSx7ZR.js.map +1 -0
  89. package/dist/components/{p-3bRWSqaN.js → p-WdtWRvVr.js} +2 -2
  90. package/dist/components/{p-Mx6VFEQc.js → p-_zP4v-Al.js} +2 -2
  91. package/dist/components/p-_zP4v-Al.js.map +1 -0
  92. package/dist/components/{p-DsiueSMI.js → p-auwU64d8.js} +2 -2
  93. package/dist/components/p-f0a1l4Uc.js +2 -0
  94. package/dist/components/p-f0a1l4Uc.js.map +1 -0
  95. package/dist/docs/components.json +1974 -237
  96. package/dist/framework/angular.d.ts +1 -0
  97. package/dist/framework/angular.js +1 -0
  98. package/dist/framework/select-multi-value-accessor.d.ts +9 -0
  99. package/dist/framework/select-multi-value-accessor.js +40 -0
  100. package/dist/lib/components/Menu/menu-position.d.ts +6 -19
  101. package/dist/lib/utils/anchored-popup.d.ts +19 -0
  102. package/dist/react/components.d.ts +1 -0
  103. package/dist/react/components.js +1 -0
  104. package/dist/react/ds-select-multi.d.ts +14 -0
  105. package/dist/react/ds-select-multi.js +16 -0
  106. package/dist/react/ds-select.d.ts +2 -0
  107. package/dist/react/ds-select.js +5 -1
  108. package/dist/types/components/Badge/Badge.d.ts +2 -0
  109. package/dist/types/components/ButtonFilled/ButtonFilled.d.ts +2 -0
  110. package/dist/types/components/ButtonUnfilled/ButtonUnfilled.d.ts +2 -0
  111. package/dist/types/components/Checkbox/Checkbox.d.ts +16 -0
  112. package/dist/types/components/Checkbox/index.d.ts +1 -1
  113. package/dist/types/components/EmptyState/EmptyState.d.ts +6 -5
  114. package/dist/types/components/Menu/menu-position.d.ts +6 -19
  115. package/dist/types/components/Select/Select.d.ts +94 -48
  116. package/dist/types/components/Select/index.d.ts +1 -1
  117. package/dist/types/components/SelectMulti/SelectMulti.d.ts +131 -0
  118. package/dist/types/components/SelectMulti/index.d.ts +2 -0
  119. package/dist/types/components/Text/Text.d.ts +1 -0
  120. package/dist/types/components.d.ts +683 -55
  121. package/dist/types/utils/anchored-popup.d.ts +20 -0
  122. package/dist/types/utils/choice-list-parts.d.ts +33 -0
  123. package/dist/types/utils/choice-list.d.ts +26 -0
  124. package/package.json +2 -2
  125. package/dist/components/p-Ca1H1HPf.js +0 -2
  126. package/dist/components/p-Ca1H1HPf.js.map +0 -1
  127. package/dist/components/p-CpX87AQy.js +0 -2
  128. package/dist/components/p-CpX87AQy.js.map +0 -1
  129. package/dist/components/p-CyMmsNCF.js +0 -2
  130. package/dist/components/p-CyMmsNCF.js.map +0 -1
  131. package/dist/components/p-Mx6VFEQc.js.map +0 -1
  132. /package/dist/components/{p-CPD_mML6.js.map → p-B2FhhQba.js.map} +0 -0
  133. /package/dist/components/{p-DoZU8RH0.js.map → p-BMbadvZo.js.map} +0 -0
  134. /package/dist/components/{p-B8ERbwc9.js.map → p-BcB-zkOx.js.map} +0 -0
  135. /package/dist/components/{p-DavEAOUa.js.map → p-Ckiwpsgw.js.map} +0 -0
  136. /package/dist/components/{p-clDpFcdU.js.map → p-DDBLO7bY.js.map} +0 -0
  137. /package/dist/components/{p-3bRWSqaN.js.map → p-WdtWRvVr.js.map} +0 -0
  138. /package/dist/components/{p-DsiueSMI.js.map → p-auwU64d8.js.map} +0 -0
@@ -17,9 +17,9 @@ import { CardDataVizDonutWidth } from "./components/CardDataVizDonut/CardDataViz
17
17
  import { CardSettingWidth } from "./components/CardSetting/CardSetting";
18
18
  import { ChartDatum, ChartLegendItem, ChartSeries } from "./utils/chart-types";
19
19
  import { ChartLegendDirection } from "./components/ChartLegend/ChartLegend";
20
+ import { CheckboxSize } from "./components/Checkbox/Checkbox";
20
21
  import { ChipSize, ChipState } from "./components/Chip/Chip";
21
22
  import { DividerBackground, DividerInset, DividerLength, DividerOrientation } from "./components/Divider/Divider";
22
- import { EmptyStateType } from "./components/EmptyState/EmptyState";
23
23
  import { IconColor, IconSize } from "./components/Icon/Icon";
24
24
  import { InputType } from "./components/Input/Input";
25
25
  import { LoaderColor, LoaderSize } from "./components/Loader/Loader";
@@ -32,7 +32,8 @@ import { PanelSubNavItem } from "./components/PanelSubNav/panel-sub-nav-types";
32
32
  import { PanelSubNavBackground } from "./components/PanelSubNav/PanelSubNav";
33
33
  import { PanelToolsItem, PanelToolsToolId } from "./components/PanelTools/panel-tools-types";
34
34
  import { RadioOption } from "./components/RadioGroup/RadioGroup";
35
- import { SelectOption, SelectSize, SelectWidth } from "./components/Select/Select";
35
+ import { SelectBackground, SelectOption, SelectSection, SelectSize, SelectWidth } from "./components/Select/Select";
36
+ import { SelectMultiBackground, SelectMultiOption, SelectMultiSection, SelectMultiSize, SelectMultiWidth } from "./components/SelectMulti/SelectMulti";
36
37
  import { ShellGradientPreset as ShellGradientPreset1 } from "./components/ShellGradientSwatch/shell-gradient-swatch-types";
37
38
  import { SkeletonBackground, SkeletonVariant } from "./components/Skeleton/Skeleton";
38
39
  import { LineTruncation, TextAlign, TextColor, TextDecoration, TextElement, TextFontFeature, TextVariant, TextWrap } from "./components/Text/text-types";
@@ -56,9 +57,9 @@ export { CardDataVizDonutWidth } from "./components/CardDataVizDonut/CardDataViz
56
57
  export { CardSettingWidth } from "./components/CardSetting/CardSetting";
57
58
  export { ChartDatum, ChartLegendItem, ChartSeries } from "./utils/chart-types";
58
59
  export { ChartLegendDirection } from "./components/ChartLegend/ChartLegend";
60
+ export { CheckboxSize } from "./components/Checkbox/Checkbox";
59
61
  export { ChipSize, ChipState } from "./components/Chip/Chip";
60
62
  export { DividerBackground, DividerInset, DividerLength, DividerOrientation } from "./components/Divider/Divider";
61
- export { EmptyStateType } from "./components/EmptyState/EmptyState";
62
63
  export { IconColor, IconSize } from "./components/Icon/Icon";
63
64
  export { InputType } from "./components/Input/Input";
64
65
  export { LoaderColor, LoaderSize } from "./components/Loader/Loader";
@@ -71,7 +72,8 @@ export { PanelSubNavItem } from "./components/PanelSubNav/panel-sub-nav-types";
71
72
  export { PanelSubNavBackground } from "./components/PanelSubNav/PanelSubNav";
72
73
  export { PanelToolsItem, PanelToolsToolId } from "./components/PanelTools/panel-tools-types";
73
74
  export { RadioOption } from "./components/RadioGroup/RadioGroup";
74
- export { SelectOption, SelectSize, SelectWidth } from "./components/Select/Select";
75
+ export { SelectBackground, SelectOption, SelectSection, SelectSize, SelectWidth } from "./components/Select/Select";
76
+ export { SelectMultiBackground, SelectMultiOption, SelectMultiSection, SelectMultiSize, SelectMultiWidth } from "./components/SelectMulti/SelectMulti";
75
77
  export { ShellGradientPreset as ShellGradientPreset1 } from "./components/ShellGradientSwatch/shell-gradient-swatch-types";
76
78
  export { SkeletonBackground, SkeletonVariant } from "./components/Skeleton/Skeleton";
77
79
  export { LineTruncation, TextAlign, TextColor, TextDecoration, TextElement, TextFontFeature, TextVariant, TextWrap } from "./components/Text/text-types";
@@ -116,6 +118,11 @@ export namespace Components {
116
118
  * @default false
117
119
  */
118
120
  "gradientBackground": boolean;
121
+ /**
122
+ * Show the separation ring when the badge overlaps an icon or other content.
123
+ * @default true
124
+ */
125
+ "hasRing": boolean;
119
126
  /**
120
127
  * Contextual supplemental text. Omit when the owner hides the badge from assistive technology.
121
128
  */
@@ -244,6 +251,11 @@ export namespace Components {
244
251
  * @default ''
245
252
  */
246
253
  "label": string;
254
+ /**
255
+ * Use the half-radius treatment instead of the default control radius.
256
+ * @default false
257
+ */
258
+ "rounded": boolean;
247
259
  "setFocus": () => Promise<void>;
248
260
  /**
249
261
  * Control density (height, padding, icon, type).
@@ -324,6 +336,11 @@ export namespace Components {
324
336
  */
325
337
  "label": string;
326
338
  "pressed": boolean | undefined;
339
+ /**
340
+ * Use the half-radius treatment instead of the default control radius.
341
+ * @default false
342
+ */
343
+ "rounded": boolean;
327
344
  "setFocus": () => Promise<void>;
328
345
  /**
329
346
  * Control density (height, padding, icon, type).
@@ -527,32 +544,55 @@ export namespace Components {
527
544
  }
528
545
  interface DsCheckbox {
529
546
  /**
547
+ * Current checked state.
530
548
  * @default false
531
549
  */
532
550
  "checked": boolean;
533
551
  /**
552
+ * Native disabled state.
534
553
  * @default false
535
554
  */
536
555
  "disabled": boolean;
537
556
  /**
557
+ * Mixed visual state. Activation clears it before toggling checked.
538
558
  * @default false
539
559
  */
540
560
  "indeterminate": boolean;
541
561
  /**
562
+ * Design-system inactive state.
542
563
  * @default false
543
564
  */
544
565
  "isInactive": boolean;
566
+ /**
567
+ * Visible label and accessible name. Omitted only in presentation mode.
568
+ */
545
569
  "label": string;
570
+ /**
571
+ * Native form field name.
572
+ */
546
573
  "name": string | undefined;
547
574
  /**
575
+ * Visual-only indicator for a composite control that owns selection semantics.
576
+ * @default false
577
+ */
578
+ "presentation": boolean;
579
+ /**
580
+ * Require the checkbox to be checked for form validity.
548
581
  * @default false
549
582
  */
550
583
  "required": boolean;
551
584
  /**
585
+ * Validation message used when a required checkbox is unchecked.
552
586
  * @default 'This field is required.'
553
587
  */
554
588
  "requiredMessage": string;
555
589
  /**
590
+ * Visual and placement density.
591
+ * @default 'md'
592
+ */
593
+ "size": CheckboxSize;
594
+ /**
595
+ * Submitted value when checked.
556
596
  * @default 'on'
557
597
  */
558
598
  "value": string;
@@ -615,16 +655,19 @@ export namespace Components {
615
655
  "semantic": boolean;
616
656
  }
617
657
  interface DsEmptyState {
618
- "message": string | undefined;
619
658
  /**
620
- * Localized defaults keyed by empty-state type. Set as a JS property.
621
- * @default {}
659
+ * Explanatory empty-state copy. Every supported variant includes body text.
660
+ * @default ''
661
+ */
662
+ "body": string;
663
+ /**
664
+ * Optional visual title. Use with body; required when icon is provided.
622
665
  */
623
- "messages": Partial<Record<EmptyStateType, string>>;
666
+ "heading": string | undefined;
624
667
  /**
625
- * @default 'no-content'
668
+ * Optional decorative prefix glyph for the complete icon + title + body variant.
626
669
  */
627
- "type": EmptyStateType;
670
+ "icon": string | undefined;
628
671
  }
629
672
  interface DsField {
630
673
  /**
@@ -1005,71 +1048,293 @@ export namespace Components {
1005
1048
  */
1006
1049
  "value": string;
1007
1050
  }
1008
- /**
1009
- * Dropdown select — unfilled-button chrome (label + trailing ChevronDown) in
1010
- * control-density sizes, with `ds-menu` for the option list.
1011
- */
1012
1051
  interface DsSelect {
1013
1052
  /**
1014
- * When a value is selected, render the selected interaction fill (same recipe as unfilled-button `activeFill`). Default `true`. Pass `false` for foreground-only selection (primary label, no fill). A selected value promotes the label to primary; chevron stays secondary.
1053
+ * Show the selected interaction fill when a valid value exists.
1015
1054
  * @default true
1016
1055
  */
1017
1056
  "activeFill": boolean;
1018
1057
  /**
1058
+ * Show the clear footer action when a value exists.
1059
+ * @default true
1060
+ */
1061
+ "allowClear": boolean;
1062
+ /**
1063
+ * Additional IDs that describe the combobox.
1064
+ */
1065
+ "ariaDescribedby": string | undefined;
1066
+ /**
1067
+ * Direct accessible name when no external label is available.
1019
1068
  * @default null
1020
1069
  */
1021
1070
  "ariaLabel": string | null;
1071
+ /**
1072
+ * IDs of elements that label the combobox.
1073
+ */
1022
1074
  "ariaLabelledby": string | undefined;
1023
1075
  /**
1076
+ * Actual parent surface context; omit on primary and secondary surfaces.
1077
+ */
1078
+ "background": SelectBackground | undefined;
1079
+ /**
1080
+ * Localized clear action label.
1081
+ * @default 'Clear'
1082
+ */
1083
+ "clearLabel": string;
1084
+ /**
1085
+ * Native disabled state.
1024
1086
  * @default false
1025
1087
  */
1026
1088
  "disabled": boolean;
1027
1089
  /**
1028
- * Show a 1px secondary inset border. Default on (matches unfilled button).
1090
+ * Show invalid visual state.
1091
+ * @default false
1092
+ */
1093
+ "error": boolean;
1094
+ /**
1095
+ * Error text rendered below the trigger when error is true.
1096
+ */
1097
+ "errorMessage": string | undefined;
1098
+ /**
1099
+ * Show the surface-aware inset border.
1029
1100
  * @default true
1030
1101
  */
1031
1102
  "hasBorder": boolean;
1032
1103
  /**
1033
- * Disables interaction (25% opacity via ds-control-inactive).
1104
+ * Optional trigger prefix icon name.
1105
+ */
1106
+ "icon": string | undefined;
1107
+ /**
1108
+ * ID applied to the internal combobox trigger for external labels.
1109
+ */
1110
+ "inputId": string | undefined;
1111
+ /**
1112
+ * Shared inactive treatment; removes interaction and form submission.
1034
1113
  * @default false
1035
1114
  */
1036
1115
  "isInactive": boolean;
1116
+ /**
1117
+ * Replace the prefix with a loader and disable option interaction.
1118
+ * @default false
1119
+ */
1120
+ "isLoading": boolean;
1121
+ /**
1122
+ * Accessible loading status label.
1123
+ * @default 'Loading'
1124
+ */
1125
+ "loadingLabel": string;
1126
+ /**
1127
+ * Native form field name.
1128
+ */
1037
1129
  "name": string | undefined;
1038
1130
  /**
1039
- * Array of options. Set via JS property.
1040
- * @example el.options = [{ label: 'Apple', value: 'apple' }];
1131
+ * Localized empty-filter result text.
1132
+ * @default 'No results found'
1133
+ */
1134
+ "noResultsText": string;
1135
+ /**
1136
+ * Controlled popup visibility.
1137
+ * @default false
1138
+ */
1139
+ "open": boolean;
1140
+ /**
1141
+ * Flat choices. Assign arrays through the JavaScript property.
1041
1142
  * @default []
1042
1143
  */
1043
1144
  "options": SelectOption[];
1044
1145
  /**
1045
- * Placeholder shown when no value is selected.
1146
+ * Trigger text shown when no valid value is selected.
1046
1147
  * @default 'Select'
1047
1148
  */
1048
1149
  "placeholder": string;
1049
1150
  /**
1151
+ * Require one valid selected value.
1050
1152
  * @default false
1051
1153
  */
1052
1154
  "required": boolean;
1053
1155
  /**
1156
+ * Validation message used when required is missing.
1054
1157
  * @default 'This field is required.'
1055
1158
  */
1056
1159
  "requiredMessage": string;
1057
1160
  /**
1058
- * Control density (height, padding, icon, type).
1161
+ * Localized search-field placeholder and accessible name.
1162
+ * @default 'Search'
1163
+ */
1164
+ "searchPlaceholder": string;
1165
+ /**
1166
+ * Show immediate local filtering over option labels, subtext, and section headings.
1167
+ * @default false
1168
+ */
1169
+ "searchable": boolean;
1170
+ /**
1171
+ * Grouped choices; takes precedence over options. Assign through JavaScript.
1172
+ * @default []
1173
+ */
1174
+ "sections": SelectSection[];
1175
+ "setFocus": () => Promise<void>;
1176
+ /**
1177
+ * Control density.
1059
1178
  * @default 'md'
1060
1179
  */
1061
1180
  "size": SelectSize;
1062
1181
  /**
1063
- * Currently selected value.
1182
+ * Selected string value. Unknown values render the placeholder and are not submitted.
1064
1183
  * @default ''
1065
1184
  */
1066
1185
  "value": string;
1067
1186
  /**
1068
- * Width fit — fill the parent (default) or hug content.
1069
- * @default 'fill'
1187
+ * Width fit — hug content (default) or fill the parent.
1188
+ * @default 'hug'
1070
1189
  */
1071
1190
  "width": SelectWidth;
1072
1191
  }
1192
+ interface DsSelectMulti {
1193
+ /**
1194
+ * Show the selected interaction fill when at least one value exists.
1195
+ * @default true
1196
+ */
1197
+ "activeFill": boolean;
1198
+ /**
1199
+ * Show the clear-all footer action when values exist.
1200
+ * @default true
1201
+ */
1202
+ "allowClear": boolean;
1203
+ /**
1204
+ * Additional IDs that describe the combobox.
1205
+ */
1206
+ "ariaDescribedby": string | undefined;
1207
+ /**
1208
+ * Direct accessible name when no external label is available.
1209
+ * @default null
1210
+ */
1211
+ "ariaLabel": string | null;
1212
+ /**
1213
+ * IDs of elements that label the combobox.
1214
+ */
1215
+ "ariaLabelledby": string | undefined;
1216
+ /**
1217
+ * Actual parent surface context; omit on primary and secondary surfaces.
1218
+ */
1219
+ "background": SelectMultiBackground | undefined;
1220
+ /**
1221
+ * Localized clear-all action label.
1222
+ * @default 'Clear'
1223
+ */
1224
+ "clearLabel": string;
1225
+ /**
1226
+ * Native disabled state.
1227
+ * @default false
1228
+ */
1229
+ "disabled": boolean;
1230
+ /**
1231
+ * Show invalid visual state.
1232
+ * @default false
1233
+ */
1234
+ "error": boolean;
1235
+ /**
1236
+ * Error text rendered below the trigger when error is true.
1237
+ */
1238
+ "errorMessage": string | undefined;
1239
+ /**
1240
+ * Show the surface-aware inset border.
1241
+ * @default true
1242
+ */
1243
+ "hasBorder": boolean;
1244
+ /**
1245
+ * Optional trigger prefix icon name.
1246
+ */
1247
+ "icon": string | undefined;
1248
+ /**
1249
+ * ID applied to the internal combobox trigger for external labels.
1250
+ */
1251
+ "inputId": string | undefined;
1252
+ /**
1253
+ * Shared inactive treatment; removes interaction and form submission.
1254
+ * @default false
1255
+ */
1256
+ "isInactive": boolean;
1257
+ /**
1258
+ * Replace the prefix with a loader and disable option interaction.
1259
+ * @default false
1260
+ */
1261
+ "isLoading": boolean;
1262
+ /**
1263
+ * Accessible loading status label.
1264
+ * @default 'Loading'
1265
+ */
1266
+ "loadingLabel": string;
1267
+ /**
1268
+ * Native form field name used for each repeated selected-value entry.
1269
+ */
1270
+ "name": string | undefined;
1271
+ /**
1272
+ * Localized empty-filter result text.
1273
+ * @default 'No results found'
1274
+ */
1275
+ "noResultsText": string;
1276
+ /**
1277
+ * Controlled popup visibility.
1278
+ * @default false
1279
+ */
1280
+ "open": boolean;
1281
+ /**
1282
+ * Flat choices. Assign arrays through the JavaScript property.
1283
+ * @default []
1284
+ */
1285
+ "options": SelectMultiOption[];
1286
+ /**
1287
+ * Persistent trigger label; selected option labels never replace it.
1288
+ * @default 'Select'
1289
+ */
1290
+ "placeholder": string;
1291
+ /**
1292
+ * Require at least one valid selected value.
1293
+ * @default false
1294
+ */
1295
+ "required": boolean;
1296
+ /**
1297
+ * Validation message used when required is missing.
1298
+ * @default 'This field is required.'
1299
+ */
1300
+ "requiredMessage": string;
1301
+ /**
1302
+ * Localized search-field placeholder and accessible name.
1303
+ * @default 'Search'
1304
+ */
1305
+ "searchPlaceholder": string;
1306
+ /**
1307
+ * Show immediate local filtering over option labels, subtext, and section headings.
1308
+ * @default false
1309
+ */
1310
+ "searchable": boolean;
1311
+ /**
1312
+ * Grouped choices; takes precedence over options. Assign through JavaScript.
1313
+ * @default []
1314
+ */
1315
+ "sections": SelectMultiSection[];
1316
+ /**
1317
+ * Localized noun displayed after the selected count.
1318
+ * @default 'selected'
1319
+ */
1320
+ "selectedLabel": string;
1321
+ "setFocus": () => Promise<void>;
1322
+ /**
1323
+ * Control density.
1324
+ * @default 'md'
1325
+ */
1326
+ "size": SelectMultiSize;
1327
+ /**
1328
+ * Selected values. Assign arrays through the JavaScript property.
1329
+ * @default []
1330
+ */
1331
+ "values": string[];
1332
+ /**
1333
+ * Width fit — hug content (default) or fill the parent.
1334
+ * @default 'hug'
1335
+ */
1336
+ "width": SelectMultiWidth;
1337
+ }
1073
1338
  interface DsShellGradientPicker {
1074
1339
  /**
1075
1340
  * @default 'Shell gradient theme'
@@ -1338,6 +1603,9 @@ export namespace Components {
1338
1603
  * @default 'inherit'
1339
1604
  */
1340
1605
  "color": TextColor;
1606
+ /**
1607
+ * Link underline or dotted hidden-interaction affordance; does not add semantics.
1608
+ */
1341
1609
  "decoration": TextDecoration | undefined;
1342
1610
  /**
1343
1611
  * Heavier weight + tighter letter-spacing for the variant. `false` (default): one step below emphasis (display semibold, title/body medium, caption medium). `true`: display bold, title/caption semibold, body medium.
@@ -1534,6 +1802,10 @@ export interface DsSelectCustomEvent<T> extends CustomEvent<T> {
1534
1802
  detail: T;
1535
1803
  target: HTMLDsSelectElement;
1536
1804
  }
1805
+ export interface DsSelectMultiCustomEvent<T> extends CustomEvent<T> {
1806
+ detail: T;
1807
+ target: HTMLDsSelectMultiElement;
1808
+ }
1537
1809
  export interface DsShellGradientPickerCustomEvent<T> extends CustomEvent<T> {
1538
1810
  detail: T;
1539
1811
  target: HTMLDsShellGradientPickerElement;
@@ -1966,11 +2238,9 @@ declare global {
1966
2238
  };
1967
2239
  interface HTMLDsSelectElementEventMap {
1968
2240
  "dsChange": string;
2241
+ "dsClear": void;
2242
+ "dsOpenChange": boolean;
1969
2243
  }
1970
- /**
1971
- * Dropdown select — unfilled-button chrome (label + trailing ChevronDown) in
1972
- * control-density sizes, with `ds-menu` for the option list.
1973
- */
1974
2244
  interface HTMLDsSelectElement extends Components.DsSelect, HTMLStencilElement {
1975
2245
  addEventListener<K extends keyof HTMLDsSelectElementEventMap>(type: K, listener: (this: HTMLDsSelectElement, ev: DsSelectCustomEvent<HTMLDsSelectElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
1976
2246
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -1985,6 +2255,25 @@ declare global {
1985
2255
  prototype: HTMLDsSelectElement;
1986
2256
  new (): HTMLDsSelectElement;
1987
2257
  };
2258
+ interface HTMLDsSelectMultiElementEventMap {
2259
+ "dsChange": string[];
2260
+ "dsClear": void;
2261
+ "dsOpenChange": boolean;
2262
+ }
2263
+ interface HTMLDsSelectMultiElement extends Components.DsSelectMulti, HTMLStencilElement {
2264
+ addEventListener<K extends keyof HTMLDsSelectMultiElementEventMap>(type: K, listener: (this: HTMLDsSelectMultiElement, ev: DsSelectMultiCustomEvent<HTMLDsSelectMultiElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2265
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2266
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2267
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
2268
+ removeEventListener<K extends keyof HTMLDsSelectMultiElementEventMap>(type: K, listener: (this: HTMLDsSelectMultiElement, ev: DsSelectMultiCustomEvent<HTMLDsSelectMultiElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
2269
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2270
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2271
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
2272
+ }
2273
+ var HTMLDsSelectMultiElement: {
2274
+ prototype: HTMLDsSelectMultiElement;
2275
+ new (): HTMLDsSelectMultiElement;
2276
+ };
1988
2277
  interface HTMLDsShellGradientPickerElementEventMap {
1989
2278
  "dsChange": ShellGradientPreset1;
1990
2279
  }
@@ -2179,6 +2468,7 @@ declare global {
2179
2468
  "ds-panel-tools": HTMLDsPanelToolsElement;
2180
2469
  "ds-radio-group": HTMLDsRadioGroupElement;
2181
2470
  "ds-select": HTMLDsSelectElement;
2471
+ "ds-select-multi": HTMLDsSelectMultiElement;
2182
2472
  "ds-shell-gradient-picker": HTMLDsShellGradientPickerElement;
2183
2473
  "ds-shell-gradient-swatch": HTMLDsShellGradientSwatchElement;
2184
2474
  "ds-skeleton": HTMLDsSkeletonElement;
@@ -2227,6 +2517,11 @@ declare namespace LocalJSX {
2227
2517
  * @default false
2228
2518
  */
2229
2519
  "gradientBackground"?: boolean;
2520
+ /**
2521
+ * Show the separation ring when the badge overlaps an icon or other content.
2522
+ * @default true
2523
+ */
2524
+ "hasRing"?: boolean;
2230
2525
  /**
2231
2526
  * Contextual supplemental text. Omit when the owner hides the badge from assistive technology.
2232
2527
  */
@@ -2361,6 +2656,11 @@ declare namespace LocalJSX {
2361
2656
  */
2362
2657
  "label"?: string;
2363
2658
  "onDsClick"?: (event: DsButtonFilledCustomEvent<MouseEvent>) => void;
2659
+ /**
2660
+ * Use the half-radius treatment instead of the default control radius.
2661
+ * @default false
2662
+ */
2663
+ "rounded"?: boolean;
2364
2664
  /**
2365
2665
  * Control density (height, padding, icon, type).
2366
2666
  * @default 'md'
@@ -2442,6 +2742,11 @@ declare namespace LocalJSX {
2442
2742
  "onDsChange"?: (event: DsButtonUnfilledCustomEvent<boolean>) => void;
2443
2743
  "onDsClick"?: (event: DsButtonUnfilledCustomEvent<MouseEvent>) => void;
2444
2744
  "pressed"?: boolean | undefined;
2745
+ /**
2746
+ * Use the half-radius treatment instead of the default control radius.
2747
+ * @default false
2748
+ */
2749
+ "rounded"?: boolean;
2445
2750
  /**
2446
2751
  * Control density (height, padding, icon, type).
2447
2752
  * @default 'md'
@@ -2664,10 +2969,12 @@ declare namespace LocalJSX {
2664
2969
  }
2665
2970
  interface DsCheckbox {
2666
2971
  /**
2972
+ * Current checked state.
2667
2973
  * @default false
2668
2974
  */
2669
2975
  "checked"?: boolean;
2670
2976
  /**
2977
+ * Native disabled state.
2671
2978
  * @default false
2672
2979
  */
2673
2980
  "disabled"?: boolean;
@@ -2676,25 +2983,49 @@ declare namespace LocalJSX {
2676
2983
  */
2677
2984
  "form"?: string;
2678
2985
  /**
2986
+ * Mixed visual state. Activation clears it before toggling checked.
2679
2987
  * @default false
2680
2988
  */
2681
2989
  "indeterminate"?: boolean;
2682
2990
  /**
2991
+ * Design-system inactive state.
2683
2992
  * @default false
2684
2993
  */
2685
2994
  "isInactive"?: boolean;
2995
+ /**
2996
+ * Visible label and accessible name. Omitted only in presentation mode.
2997
+ */
2686
2998
  "label": string;
2999
+ /**
3000
+ * Native form field name.
3001
+ */
2687
3002
  "name"?: string | undefined;
3003
+ /**
3004
+ * Emitted after user activation with the new checked state.
3005
+ */
2688
3006
  "onDsChange"?: (event: DsCheckboxCustomEvent<boolean>) => void;
2689
3007
  /**
3008
+ * Visual-only indicator for a composite control that owns selection semantics.
3009
+ * @default false
3010
+ */
3011
+ "presentation"?: boolean;
3012
+ /**
3013
+ * Require the checkbox to be checked for form validity.
2690
3014
  * @default false
2691
3015
  */
2692
3016
  "required"?: boolean;
2693
3017
  /**
3018
+ * Validation message used when a required checkbox is unchecked.
2694
3019
  * @default 'This field is required.'
2695
3020
  */
2696
3021
  "requiredMessage"?: string;
2697
3022
  /**
3023
+ * Visual and placement density.
3024
+ * @default 'md'
3025
+ */
3026
+ "size"?: CheckboxSize;
3027
+ /**
3028
+ * Submitted value when checked.
2698
3029
  * @default 'on'
2699
3030
  */
2700
3031
  "value"?: string;
@@ -2761,16 +3092,19 @@ declare namespace LocalJSX {
2761
3092
  "semantic"?: boolean;
2762
3093
  }
2763
3094
  interface DsEmptyState {
2764
- "message"?: string | undefined;
2765
3095
  /**
2766
- * Localized defaults keyed by empty-state type. Set as a JS property.
2767
- * @default {}
3096
+ * Explanatory empty-state copy. Every supported variant includes body text.
3097
+ * @default ''
2768
3098
  */
2769
- "messages"?: Partial<Record<EmptyStateType, string>>;
3099
+ "body"?: string;
2770
3100
  /**
2771
- * @default 'no-content'
3101
+ * Optional visual title. Use with body; required when icon is provided.
2772
3102
  */
2773
- "type"?: EmptyStateType;
3103
+ "heading"?: string | undefined;
3104
+ /**
3105
+ * Optional decorative prefix glyph for the complete icon + title + body variant.
3106
+ */
3107
+ "icon"?: string | undefined;
2774
3108
  }
2775
3109
  interface DsField {
2776
3110
  /**
@@ -3191,79 +3525,323 @@ declare namespace LocalJSX {
3191
3525
  */
3192
3526
  "value"?: string;
3193
3527
  }
3194
- /**
3195
- * Dropdown select — unfilled-button chrome (label + trailing ChevronDown) in
3196
- * control-density sizes, with `ds-menu` for the option list.
3197
- */
3198
3528
  interface DsSelect {
3199
3529
  /**
3200
- * When a value is selected, render the selected interaction fill (same recipe as unfilled-button `activeFill`). Default `true`. Pass `false` for foreground-only selection (primary label, no fill). A selected value promotes the label to primary; chevron stays secondary.
3530
+ * Show the selected interaction fill when a valid value exists.
3201
3531
  * @default true
3202
3532
  */
3203
3533
  "activeFill"?: boolean;
3204
3534
  /**
3535
+ * Show the clear footer action when a value exists.
3536
+ * @default true
3537
+ */
3538
+ "allowClear"?: boolean;
3539
+ /**
3540
+ * Additional IDs that describe the combobox.
3541
+ */
3542
+ "ariaDescribedby"?: string | undefined;
3543
+ /**
3544
+ * Direct accessible name when no external label is available.
3205
3545
  * @default null
3206
3546
  */
3207
3547
  "ariaLabel"?: string | null;
3548
+ /**
3549
+ * IDs of elements that label the combobox.
3550
+ */
3208
3551
  "ariaLabelledby"?: string | undefined;
3209
3552
  /**
3553
+ * Actual parent surface context; omit on primary and secondary surfaces.
3554
+ */
3555
+ "background"?: SelectBackground | undefined;
3556
+ /**
3557
+ * Localized clear action label.
3558
+ * @default 'Clear'
3559
+ */
3560
+ "clearLabel"?: string;
3561
+ /**
3562
+ * Native disabled state.
3210
3563
  * @default false
3211
3564
  */
3212
3565
  "disabled"?: boolean;
3566
+ /**
3567
+ * Show invalid visual state.
3568
+ * @default false
3569
+ */
3570
+ "error"?: boolean;
3571
+ /**
3572
+ * Error text rendered below the trigger when error is true.
3573
+ */
3574
+ "errorMessage"?: string | undefined;
3213
3575
  /**
3214
3576
  * The `id` of a `<form>` element to associate this element with.
3215
3577
  */
3216
3578
  "form"?: string;
3217
3579
  /**
3218
- * Show a 1px secondary inset border. Default on (matches unfilled button).
3580
+ * Show the surface-aware inset border.
3219
3581
  * @default true
3220
3582
  */
3221
3583
  "hasBorder"?: boolean;
3222
3584
  /**
3223
- * Disables interaction (25% opacity via ds-control-inactive).
3585
+ * Optional trigger prefix icon name.
3586
+ */
3587
+ "icon"?: string | undefined;
3588
+ /**
3589
+ * ID applied to the internal combobox trigger for external labels.
3590
+ */
3591
+ "inputId"?: string | undefined;
3592
+ /**
3593
+ * Shared inactive treatment; removes interaction and form submission.
3224
3594
  * @default false
3225
3595
  */
3226
3596
  "isInactive"?: boolean;
3597
+ /**
3598
+ * Replace the prefix with a loader and disable option interaction.
3599
+ * @default false
3600
+ */
3601
+ "isLoading"?: boolean;
3602
+ /**
3603
+ * Accessible loading status label.
3604
+ * @default 'Loading'
3605
+ */
3606
+ "loadingLabel"?: string;
3607
+ /**
3608
+ * Native form field name.
3609
+ */
3227
3610
  "name"?: string | undefined;
3228
3611
  /**
3229
- * Emits the selected value string.
3612
+ * Localized empty-filter result text.
3613
+ * @default 'No results found'
3614
+ */
3615
+ "noResultsText"?: string;
3616
+ /**
3617
+ * Emitted after user selection or clearing with the next scalar value.
3230
3618
  */
3231
3619
  "onDsChange"?: (event: DsSelectCustomEvent<string>) => void;
3232
3620
  /**
3233
- * Array of options. Set via JS property.
3234
- * @example el.options = [{ label: 'Apple', value: 'apple' }];
3621
+ * Emitted after the footer clear action.
3622
+ */
3623
+ "onDsClear"?: (event: DsSelectCustomEvent<void>) => void;
3624
+ /**
3625
+ * Emitted whenever popup visibility changes.
3626
+ */
3627
+ "onDsOpenChange"?: (event: DsSelectCustomEvent<boolean>) => void;
3628
+ /**
3629
+ * Controlled popup visibility.
3630
+ * @default false
3631
+ */
3632
+ "open"?: boolean;
3633
+ /**
3634
+ * Flat choices. Assign arrays through the JavaScript property.
3235
3635
  * @default []
3236
3636
  */
3237
3637
  "options"?: SelectOption[];
3238
3638
  /**
3239
- * Placeholder shown when no value is selected.
3639
+ * Trigger text shown when no valid value is selected.
3240
3640
  * @default 'Select'
3241
3641
  */
3242
3642
  "placeholder"?: string;
3243
3643
  /**
3644
+ * Require one valid selected value.
3244
3645
  * @default false
3245
3646
  */
3246
3647
  "required"?: boolean;
3247
3648
  /**
3649
+ * Validation message used when required is missing.
3248
3650
  * @default 'This field is required.'
3249
3651
  */
3250
3652
  "requiredMessage"?: string;
3251
3653
  /**
3252
- * Control density (height, padding, icon, type).
3654
+ * Localized search-field placeholder and accessible name.
3655
+ * @default 'Search'
3656
+ */
3657
+ "searchPlaceholder"?: string;
3658
+ /**
3659
+ * Show immediate local filtering over option labels, subtext, and section headings.
3660
+ * @default false
3661
+ */
3662
+ "searchable"?: boolean;
3663
+ /**
3664
+ * Grouped choices; takes precedence over options. Assign through JavaScript.
3665
+ * @default []
3666
+ */
3667
+ "sections"?: SelectSection[];
3668
+ /**
3669
+ * Control density.
3253
3670
  * @default 'md'
3254
3671
  */
3255
3672
  "size"?: SelectSize;
3256
3673
  /**
3257
- * Currently selected value.
3674
+ * Selected string value. Unknown values render the placeholder and are not submitted.
3258
3675
  * @default ''
3259
3676
  */
3260
3677
  "value"?: string;
3261
3678
  /**
3262
- * Width fit — fill the parent (default) or hug content.
3263
- * @default 'fill'
3679
+ * Width fit — hug content (default) or fill the parent.
3680
+ * @default 'hug'
3264
3681
  */
3265
3682
  "width"?: SelectWidth;
3266
3683
  }
3684
+ interface DsSelectMulti {
3685
+ /**
3686
+ * Show the selected interaction fill when at least one value exists.
3687
+ * @default true
3688
+ */
3689
+ "activeFill"?: boolean;
3690
+ /**
3691
+ * Show the clear-all footer action when values exist.
3692
+ * @default true
3693
+ */
3694
+ "allowClear"?: boolean;
3695
+ /**
3696
+ * Additional IDs that describe the combobox.
3697
+ */
3698
+ "ariaDescribedby"?: string | undefined;
3699
+ /**
3700
+ * Direct accessible name when no external label is available.
3701
+ * @default null
3702
+ */
3703
+ "ariaLabel"?: string | null;
3704
+ /**
3705
+ * IDs of elements that label the combobox.
3706
+ */
3707
+ "ariaLabelledby"?: string | undefined;
3708
+ /**
3709
+ * Actual parent surface context; omit on primary and secondary surfaces.
3710
+ */
3711
+ "background"?: SelectMultiBackground | undefined;
3712
+ /**
3713
+ * Localized clear-all action label.
3714
+ * @default 'Clear'
3715
+ */
3716
+ "clearLabel"?: string;
3717
+ /**
3718
+ * Native disabled state.
3719
+ * @default false
3720
+ */
3721
+ "disabled"?: boolean;
3722
+ /**
3723
+ * Show invalid visual state.
3724
+ * @default false
3725
+ */
3726
+ "error"?: boolean;
3727
+ /**
3728
+ * Error text rendered below the trigger when error is true.
3729
+ */
3730
+ "errorMessage"?: string | undefined;
3731
+ /**
3732
+ * The `id` of a `<form>` element to associate this element with.
3733
+ */
3734
+ "form"?: string;
3735
+ /**
3736
+ * Show the surface-aware inset border.
3737
+ * @default true
3738
+ */
3739
+ "hasBorder"?: boolean;
3740
+ /**
3741
+ * Optional trigger prefix icon name.
3742
+ */
3743
+ "icon"?: string | undefined;
3744
+ /**
3745
+ * ID applied to the internal combobox trigger for external labels.
3746
+ */
3747
+ "inputId"?: string | undefined;
3748
+ /**
3749
+ * Shared inactive treatment; removes interaction and form submission.
3750
+ * @default false
3751
+ */
3752
+ "isInactive"?: boolean;
3753
+ /**
3754
+ * Replace the prefix with a loader and disable option interaction.
3755
+ * @default false
3756
+ */
3757
+ "isLoading"?: boolean;
3758
+ /**
3759
+ * Accessible loading status label.
3760
+ * @default 'Loading'
3761
+ */
3762
+ "loadingLabel"?: string;
3763
+ /**
3764
+ * Native form field name used for each repeated selected-value entry.
3765
+ */
3766
+ "name"?: string | undefined;
3767
+ /**
3768
+ * Localized empty-filter result text.
3769
+ * @default 'No results found'
3770
+ */
3771
+ "noResultsText"?: string;
3772
+ /**
3773
+ * Emitted after user toggles or clearing with a new values array.
3774
+ */
3775
+ "onDsChange"?: (event: DsSelectMultiCustomEvent<string[]>) => void;
3776
+ /**
3777
+ * Emitted after the footer clear-all action.
3778
+ */
3779
+ "onDsClear"?: (event: DsSelectMultiCustomEvent<void>) => void;
3780
+ /**
3781
+ * Emitted whenever popup visibility changes.
3782
+ */
3783
+ "onDsOpenChange"?: (event: DsSelectMultiCustomEvent<boolean>) => void;
3784
+ /**
3785
+ * Controlled popup visibility.
3786
+ * @default false
3787
+ */
3788
+ "open"?: boolean;
3789
+ /**
3790
+ * Flat choices. Assign arrays through the JavaScript property.
3791
+ * @default []
3792
+ */
3793
+ "options"?: SelectMultiOption[];
3794
+ /**
3795
+ * Persistent trigger label; selected option labels never replace it.
3796
+ * @default 'Select'
3797
+ */
3798
+ "placeholder"?: string;
3799
+ /**
3800
+ * Require at least one valid selected value.
3801
+ * @default false
3802
+ */
3803
+ "required"?: boolean;
3804
+ /**
3805
+ * Validation message used when required is missing.
3806
+ * @default 'This field is required.'
3807
+ */
3808
+ "requiredMessage"?: string;
3809
+ /**
3810
+ * Localized search-field placeholder and accessible name.
3811
+ * @default 'Search'
3812
+ */
3813
+ "searchPlaceholder"?: string;
3814
+ /**
3815
+ * Show immediate local filtering over option labels, subtext, and section headings.
3816
+ * @default false
3817
+ */
3818
+ "searchable"?: boolean;
3819
+ /**
3820
+ * Grouped choices; takes precedence over options. Assign through JavaScript.
3821
+ * @default []
3822
+ */
3823
+ "sections"?: SelectMultiSection[];
3824
+ /**
3825
+ * Localized noun displayed after the selected count.
3826
+ * @default 'selected'
3827
+ */
3828
+ "selectedLabel"?: string;
3829
+ /**
3830
+ * Control density.
3831
+ * @default 'md'
3832
+ */
3833
+ "size"?: SelectMultiSize;
3834
+ /**
3835
+ * Selected values. Assign arrays through the JavaScript property.
3836
+ * @default []
3837
+ */
3838
+ "values"?: string[];
3839
+ /**
3840
+ * Width fit — hug content (default) or fill the parent.
3841
+ * @default 'hug'
3842
+ */
3843
+ "width"?: SelectMultiWidth;
3844
+ }
3267
3845
  interface DsShellGradientPicker {
3268
3846
  /**
3269
3847
  * @default 'Shell gradient theme'
@@ -3544,6 +4122,9 @@ declare namespace LocalJSX {
3544
4122
  * @default 'inherit'
3545
4123
  */
3546
4124
  "color"?: TextColor;
4125
+ /**
4126
+ * Link underline or dotted hidden-interaction affordance; does not add semantics.
4127
+ */
3547
4128
  "decoration"?: TextDecoration | undefined;
3548
4129
  /**
3549
4130
  * Heavier weight + tighter letter-spacing for the variant. `false` (default): one step below emphasis (display semibold, title/body medium, caption medium). `true`: display bold, title/caption semibold, body medium.
@@ -3675,6 +4256,7 @@ declare namespace LocalJSX {
3675
4256
  "max": number;
3676
4257
  "surface": BadgeSurface;
3677
4258
  "background": string | undefined;
4259
+ "hasRing": boolean;
3678
4260
  "gradientBackground": boolean;
3679
4261
  "label": string | undefined;
3680
4262
  }
@@ -3704,6 +4286,7 @@ declare namespace LocalJSX {
3704
4286
  "icon": string;
3705
4287
  "intent": ButtonFilledIntent;
3706
4288
  "contrast": ButtonFilledContrast;
4289
+ "rounded": boolean;
3707
4290
  "isInactive": boolean;
3708
4291
  "isLoading": boolean;
3709
4292
  "type": 'button' | 'submit' | 'reset';
@@ -3718,6 +4301,7 @@ declare namespace LocalJSX {
3718
4301
  "isActive": boolean;
3719
4302
  "activeFill": boolean;
3720
4303
  "hasBorder": boolean;
4304
+ "rounded": boolean;
3721
4305
  "dot": boolean;
3722
4306
  "isInactive": boolean;
3723
4307
  "isLoading": boolean;
@@ -3777,6 +4361,7 @@ declare namespace LocalJSX {
3777
4361
  interface DsCheckboxAttributes {
3778
4362
  "label": string;
3779
4363
  "checked": boolean;
4364
+ "size": CheckboxSize;
3780
4365
  "name": string | undefined;
3781
4366
  "value": string;
3782
4367
  "disabled": boolean;
@@ -3784,6 +4369,7 @@ declare namespace LocalJSX {
3784
4369
  "requiredMessage": string;
3785
4370
  "indeterminate": boolean;
3786
4371
  "isInactive": boolean;
4372
+ "presentation": boolean;
3787
4373
  }
3788
4374
  interface DsChipAttributes {
3789
4375
  "label": string;
@@ -3802,8 +4388,9 @@ declare namespace LocalJSX {
3802
4388
  "semantic": boolean;
3803
4389
  }
3804
4390
  interface DsEmptyStateAttributes {
3805
- "type": EmptyStateType;
3806
- "message": string | undefined;
4391
+ "icon": string | undefined;
4392
+ "heading": string | undefined;
4393
+ "body": string;
3807
4394
  }
3808
4395
  interface DsFieldAttributes {
3809
4396
  "label": string;
@@ -3912,6 +4499,7 @@ declare namespace LocalJSX {
3912
4499
  }
3913
4500
  interface DsSelectAttributes {
3914
4501
  "value": string;
4502
+ "open": boolean;
3915
4503
  "name": string | undefined;
3916
4504
  "disabled": boolean;
3917
4505
  "required": boolean;
@@ -3920,10 +4508,52 @@ declare namespace LocalJSX {
3920
4508
  "size": SelectSize;
3921
4509
  "width": SelectWidth;
3922
4510
  "isInactive": boolean;
4511
+ "isLoading": boolean;
4512
+ "activeFill": boolean;
4513
+ "hasBorder": boolean;
4514
+ "icon": string | undefined;
4515
+ "allowClear": boolean;
4516
+ "clearLabel": string;
4517
+ "searchable": boolean;
4518
+ "searchPlaceholder": string;
4519
+ "noResultsText": string;
4520
+ "loadingLabel": string;
4521
+ "background": SelectBackground | undefined;
4522
+ "error": boolean;
4523
+ "errorMessage": string | undefined;
4524
+ "inputId": string | undefined;
4525
+ "ariaLabel": string | null;
4526
+ "ariaLabelledby": string | undefined;
4527
+ "ariaDescribedby": string | undefined;
4528
+ }
4529
+ interface DsSelectMultiAttributes {
4530
+ "open": boolean;
4531
+ "name": string | undefined;
4532
+ "disabled": boolean;
4533
+ "required": boolean;
4534
+ "requiredMessage": string;
4535
+ "placeholder": string;
4536
+ "size": SelectMultiSize;
4537
+ "width": SelectMultiWidth;
4538
+ "isInactive": boolean;
4539
+ "isLoading": boolean;
3923
4540
  "activeFill": boolean;
3924
4541
  "hasBorder": boolean;
4542
+ "icon": string | undefined;
4543
+ "allowClear": boolean;
4544
+ "clearLabel": string;
4545
+ "selectedLabel": string;
4546
+ "searchable": boolean;
4547
+ "searchPlaceholder": string;
4548
+ "noResultsText": string;
4549
+ "loadingLabel": string;
4550
+ "background": SelectMultiBackground | undefined;
4551
+ "error": boolean;
4552
+ "errorMessage": string | undefined;
4553
+ "inputId": string | undefined;
3925
4554
  "ariaLabel": string | null;
3926
4555
  "ariaLabelledby": string | undefined;
4556
+ "ariaDescribedby": string | undefined;
3927
4557
  }
3928
4558
  interface DsShellGradientPickerAttributes {
3929
4559
  "value": ShellGradientPreset;
@@ -4064,6 +4694,7 @@ declare namespace LocalJSX {
4064
4694
  "ds-panel-tools": Omit<DsPanelTools, keyof DsPanelToolsAttributes> & { [K in keyof DsPanelTools & keyof DsPanelToolsAttributes]?: DsPanelTools[K] } & { [K in keyof DsPanelTools & keyof DsPanelToolsAttributes as `attr:${K}`]?: DsPanelToolsAttributes[K] } & { [K in keyof DsPanelTools & keyof DsPanelToolsAttributes as `prop:${K}`]?: DsPanelTools[K] };
4065
4695
  "ds-radio-group": Omit<DsRadioGroup, keyof DsRadioGroupAttributes> & { [K in keyof DsRadioGroup & keyof DsRadioGroupAttributes]?: DsRadioGroup[K] } & { [K in keyof DsRadioGroup & keyof DsRadioGroupAttributes as `attr:${K}`]?: DsRadioGroupAttributes[K] } & { [K in keyof DsRadioGroup & keyof DsRadioGroupAttributes as `prop:${K}`]?: DsRadioGroup[K] };
4066
4696
  "ds-select": Omit<DsSelect, keyof DsSelectAttributes> & { [K in keyof DsSelect & keyof DsSelectAttributes]?: DsSelect[K] } & { [K in keyof DsSelect & keyof DsSelectAttributes as `attr:${K}`]?: DsSelectAttributes[K] } & { [K in keyof DsSelect & keyof DsSelectAttributes as `prop:${K}`]?: DsSelect[K] };
4697
+ "ds-select-multi": Omit<DsSelectMulti, keyof DsSelectMultiAttributes> & { [K in keyof DsSelectMulti & keyof DsSelectMultiAttributes]?: DsSelectMulti[K] } & { [K in keyof DsSelectMulti & keyof DsSelectMultiAttributes as `attr:${K}`]?: DsSelectMultiAttributes[K] } & { [K in keyof DsSelectMulti & keyof DsSelectMultiAttributes as `prop:${K}`]?: DsSelectMulti[K] };
4067
4698
  "ds-shell-gradient-picker": Omit<DsShellGradientPicker, keyof DsShellGradientPickerAttributes> & { [K in keyof DsShellGradientPicker & keyof DsShellGradientPickerAttributes]?: DsShellGradientPicker[K] } & { [K in keyof DsShellGradientPicker & keyof DsShellGradientPickerAttributes as `attr:${K}`]?: DsShellGradientPickerAttributes[K] } & { [K in keyof DsShellGradientPicker & keyof DsShellGradientPickerAttributes as `prop:${K}`]?: DsShellGradientPicker[K] };
4068
4699
  "ds-shell-gradient-swatch": Omit<DsShellGradientSwatch, keyof DsShellGradientSwatchAttributes> & { [K in keyof DsShellGradientSwatch & keyof DsShellGradientSwatchAttributes]?: DsShellGradientSwatch[K] } & { [K in keyof DsShellGradientSwatch & keyof DsShellGradientSwatchAttributes as `attr:${K}`]?: DsShellGradientSwatchAttributes[K] } & { [K in keyof DsShellGradientSwatch & keyof DsShellGradientSwatchAttributes as `prop:${K}`]?: DsShellGradientSwatch[K] };
4069
4700
  "ds-skeleton": Omit<DsSkeleton, keyof DsSkeletonAttributes> & { [K in keyof DsSkeleton & keyof DsSkeletonAttributes]?: DsSkeleton[K] } & { [K in keyof DsSkeleton & keyof DsSkeletonAttributes as `attr:${K}`]?: DsSkeletonAttributes[K] } & { [K in keyof DsSkeleton & keyof DsSkeletonAttributes as `prop:${K}`]?: DsSkeleton[K] };
@@ -4129,11 +4760,8 @@ declare module "@stencil/core" {
4129
4760
  "ds-panel-sub-nav": LocalJSX.IntrinsicElements["ds-panel-sub-nav"] & JSXBase.HTMLAttributes<HTMLDsPanelSubNavElement>;
4130
4761
  "ds-panel-tools": LocalJSX.IntrinsicElements["ds-panel-tools"] & JSXBase.HTMLAttributes<HTMLDsPanelToolsElement>;
4131
4762
  "ds-radio-group": LocalJSX.IntrinsicElements["ds-radio-group"] & JSXBase.HTMLAttributes<HTMLDsRadioGroupElement>;
4132
- /**
4133
- * Dropdown select — unfilled-button chrome (label + trailing ChevronDown) in
4134
- * control-density sizes, with `ds-menu` for the option list.
4135
- */
4136
4763
  "ds-select": LocalJSX.IntrinsicElements["ds-select"] & JSXBase.HTMLAttributes<HTMLDsSelectElement>;
4764
+ "ds-select-multi": LocalJSX.IntrinsicElements["ds-select-multi"] & JSXBase.HTMLAttributes<HTMLDsSelectMultiElement>;
4137
4765
  "ds-shell-gradient-picker": LocalJSX.IntrinsicElements["ds-shell-gradient-picker"] & JSXBase.HTMLAttributes<HTMLDsShellGradientPickerElement>;
4138
4766
  "ds-shell-gradient-swatch": LocalJSX.IntrinsicElements["ds-shell-gradient-swatch"] & JSXBase.HTMLAttributes<HTMLDsShellGradientSwatchElement>;
4139
4767
  "ds-skeleton": LocalJSX.IntrinsicElements["ds-skeleton"] & JSXBase.HTMLAttributes<HTMLDsSkeletonElement>;