@ds-mo/ui 16.1.2 → 16.1.3

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 (243) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +1 -1
  3. package/dist/agent.json +1 -1
  4. package/dist/components/ds-agent-activity.js +1 -1
  5. package/dist/components/ds-agent-questionnaire.js +1 -1
  6. package/dist/components/ds-agent-response.js +1 -1
  7. package/dist/components/ds-agent-source-list.js +1 -1
  8. package/dist/components/ds-agent-tool-call.js +1 -1
  9. package/dist/components/ds-attachment-list.js +1 -1
  10. package/dist/components/ds-avatar.js +1 -1
  11. package/dist/components/ds-banner.js +1 -1
  12. package/dist/components/ds-bar-nav.js +1 -1
  13. package/dist/components/ds-bar-page-title.js +1 -1
  14. package/dist/components/ds-bar-title.js +1 -1
  15. package/dist/components/ds-bar-workflow.js +1 -1
  16. package/dist/components/ds-button-filled.js +1 -1
  17. package/dist/components/ds-button-inverted.js +1 -1
  18. package/dist/components/ds-button-unfilled.js +1 -1
  19. package/dist/components/ds-calendar.js +1 -1
  20. package/dist/components/ds-card-action-center.js +1 -1
  21. package/dist/components/ds-card-chart.js +1 -1
  22. package/dist/components/ds-card-navigation.js +1 -1
  23. package/dist/components/ds-card-setting.js +1 -1
  24. package/dist/components/ds-chip.js +1 -1
  25. package/dist/components/ds-code-block.js +1 -1
  26. package/dist/components/ds-data-customize.js +1 -1
  27. package/dist/components/ds-data-customize.js.map +1 -1
  28. package/dist/components/ds-data-filter.js +1 -1
  29. package/dist/components/ds-data-group.js +1 -1
  30. package/dist/components/ds-data-preferences.js +1 -1
  31. package/dist/components/ds-data-saved-views.js +1 -1
  32. package/dist/components/ds-data-search.js +1 -1
  33. package/dist/components/ds-data-sort.js +1 -1
  34. package/dist/components/ds-empty-state.js +1 -1
  35. package/dist/components/ds-filter-menu.js +1 -1
  36. package/dist/components/ds-icon.js +1 -1
  37. package/dist/components/ds-input-date.js +1 -1
  38. package/dist/components/ds-input-time.js +1 -1
  39. package/dist/components/ds-input.js +1 -1
  40. package/dist/components/ds-map-entity-marker.js +1 -1
  41. package/dist/components/ds-map-marker.js +1 -1
  42. package/dist/components/ds-markdown.js +1 -1
  43. package/dist/components/ds-menu.js +1 -1
  44. package/dist/components/ds-message-actions.js +1 -1
  45. package/dist/components/ds-message-composer.js +1 -1
  46. package/dist/components/ds-message-scroller.js +1 -1
  47. package/dist/components/ds-mobile-bar-nav.js +1 -1
  48. package/dist/components/ds-mobile-header.js +1 -1
  49. package/dist/components/ds-mobile-section-switcher.js +1 -1
  50. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  51. package/dist/components/ds-modal.js +1 -1
  52. package/dist/components/ds-navigation-tab-group.js +1 -1
  53. package/dist/components/ds-pagination.js +1 -1
  54. package/dist/components/ds-panel-nav.js +1 -1
  55. package/dist/components/ds-panel-tool-header.js +1 -1
  56. package/dist/components/ds-panel-tool-search.js +1 -1
  57. package/dist/components/ds-panel-tools.js +1 -1
  58. package/dist/components/ds-select-toggle.js +1 -1
  59. package/dist/components/ds-select.js +1 -1
  60. package/dist/components/ds-shell-app.js +1 -1
  61. package/dist/components/ds-shell-tools.js +1 -1
  62. package/dist/components/ds-tab-group.js +1 -1
  63. package/dist/components/ds-table.js +1 -1
  64. package/dist/components/ds-tag.js +1 -1
  65. package/dist/components/ds-toast.js +1 -1
  66. package/dist/components/{p-C3nUi5Lo.js → p-1lWK_LMY.js} +2 -2
  67. package/dist/components/{p-BdJqRDKY.js → p-6r60E0i4.js} +2 -2
  68. package/dist/components/{p-BKd0e8k8.js → p-BFgJoeVV.js} +2 -2
  69. package/dist/components/{p-BK_SriZN.js → p-BI-XuQKW.js} +2 -2
  70. package/dist/components/{p-DOazC0iw.js → p-BNvZM4jP.js} +2 -2
  71. package/dist/components/{p-BNySDuzx.js → p-BckLHaey.js} +2 -2
  72. package/dist/components/{p-ZcZ0N7Ok.js → p-BctjNfzt.js} +2 -2
  73. package/dist/components/{p-CwL5zodA.js → p-Bt1Ybvz-.js} +2 -2
  74. package/dist/components/{p-CcWT4SzP.js → p-BuvVFyAA.js} +2 -2
  75. package/dist/components/p-C942uiH1.js +3 -0
  76. package/dist/components/p-C942uiH1.js.map +1 -0
  77. package/dist/components/{p-DXAY6GB5.js → p-CE_S4oQ_.js} +2 -2
  78. package/dist/components/{p-BLQgaSh-.js → p-CMZAEySh.js} +2 -2
  79. package/dist/components/{p-DMjOjrHi.js → p-CXrOGz7X.js} +2 -2
  80. package/dist/components/{p-B8jrUwL-.js → p-CbyZ7BDJ.js} +2 -2
  81. package/dist/components/{p-ZumxIz-2.js → p-Cc8p57pS.js} +2 -2
  82. package/dist/components/{p-xouEdChm.js → p-ClgJZFkb.js} +2 -2
  83. package/dist/components/{p-Cm1FS7D-.js → p-ClhfXMaD.js} +2 -2
  84. package/dist/components/{p-zdiRX3Sf.js → p-CnsuVR2e.js} +2 -2
  85. package/dist/components/{p-txmcXZdy.js → p-CsGkdf4W.js} +2 -2
  86. package/dist/components/{p-CymFzY_N.js → p-CtomYv1z.js} +2 -2
  87. package/dist/components/{p-BxkhBlKJ.js → p-D-Lo5uuI.js} +2 -2
  88. package/dist/components/{p-9zDZcSc0.js → p-D3FrQk7o.js} +2 -2
  89. package/dist/components/{p-Bn-tsogb.js → p-D5-hqLPK.js} +2 -2
  90. package/dist/components/{p-D_kOVT6i.js → p-D8iNLSCa.js} +2 -2
  91. package/dist/components/{p-qnp-yeXl.js → p-DQ-wfTOw.js} +2 -2
  92. package/dist/components/{p-BknNUjWh.js → p-DYI6UlOP.js} +2 -2
  93. package/dist/components/{p-B3-zImxn.js → p-Dc_zSOKq.js} +2 -2
  94. package/dist/components/{p-DI5GEmid.js → p-DiNEjFpy.js} +2 -2
  95. package/dist/components/{p-BJB6kfA2.js → p-M-Sxsv7V.js} +2 -2
  96. package/dist/components/{p-CvK-Gy-b.js → p-cvVUXaen.js} +2 -2
  97. package/dist/components/{p-BgMeLCj3.js → p-hFe35P2l.js} +2 -2
  98. package/dist/components/{p-DfGJX_Eo.js → p-hom6svhE.js} +2 -2
  99. package/dist/components/{p-D9MqUHig.js → p-lnCWfvuA.js} +2 -2
  100. package/dist/components/{p-Ddkyu_wE.js → p-oBBzQpg_.js} +2 -2
  101. package/dist/components/p-omfGVBEt.js +2 -0
  102. package/dist/components/p-omfGVBEt.js.map +1 -0
  103. package/dist/docs/components.json +1 -1
  104. package/dist/mcp-data/registry/agent-activity.json +1 -1
  105. package/dist/mcp-data/registry/agent-questionnaire.json +1 -1
  106. package/dist/mcp-data/registry/agent-response.json +1 -1
  107. package/dist/mcp-data/registry/agent-source-list.json +1 -1
  108. package/dist/mcp-data/registry/agent-tool-call.json +1 -1
  109. package/dist/mcp-data/registry/attachment-list.json +1 -1
  110. package/dist/mcp-data/registry/avatar.json +1 -1
  111. package/dist/mcp-data/registry/badge.json +1 -1
  112. package/dist/mcp-data/registry/banner.json +1 -1
  113. package/dist/mcp-data/registry/bar-action.json +1 -1
  114. package/dist/mcp-data/registry/bar-nav.json +1 -1
  115. package/dist/mcp-data/registry/bar-page-title.json +1 -1
  116. package/dist/mcp-data/registry/bar-title.json +1 -1
  117. package/dist/mcp-data/registry/bar-workflow.json +1 -1
  118. package/dist/mcp-data/registry/breadcrumb.json +1 -1
  119. package/dist/mcp-data/registry/button-filled.json +1 -1
  120. package/dist/mcp-data/registry/button-inverted.json +1 -1
  121. package/dist/mcp-data/registry/button-unfilled.json +1 -1
  122. package/dist/mcp-data/registry/calendar.json +1 -1
  123. package/dist/mcp-data/registry/card-action-center.json +1 -1
  124. package/dist/mcp-data/registry/card-chart.json +1 -1
  125. package/dist/mcp-data/registry/card-navigation.json +1 -1
  126. package/dist/mcp-data/registry/card-overview.json +1 -1
  127. package/dist/mcp-data/registry/card-setting.json +1 -1
  128. package/dist/mcp-data/registry/card-settings-scope.json +1 -1
  129. package/dist/mcp-data/registry/chart-legend.json +1 -1
  130. package/dist/mcp-data/registry/chart.json +1 -1
  131. package/dist/mcp-data/registry/checkbox-group.json +1 -1
  132. package/dist/mcp-data/registry/checkbox.json +1 -1
  133. package/dist/mcp-data/registry/chip.json +1 -1
  134. package/dist/mcp-data/registry/code-block.json +1 -1
  135. package/dist/mcp-data/registry/conversation-list-item.json +1 -1
  136. package/dist/mcp-data/registry/conversation-list-section.json +1 -1
  137. package/dist/mcp-data/registry/conversation-list.json +1 -1
  138. package/dist/mcp-data/registry/data-customize.json +1 -1
  139. package/dist/mcp-data/registry/data-filter.json +1 -1
  140. package/dist/mcp-data/registry/data-group.json +1 -1
  141. package/dist/mcp-data/registry/data-preferences.json +1 -1
  142. package/dist/mcp-data/registry/data-saved-views.json +1 -1
  143. package/dist/mcp-data/registry/data-search.json +1 -1
  144. package/dist/mcp-data/registry/data-sort.json +1 -1
  145. package/dist/mcp-data/registry/data-toolbar.json +1 -1
  146. package/dist/mcp-data/registry/divider.json +1 -1
  147. package/dist/mcp-data/registry/empty-state.json +1 -1
  148. package/dist/mcp-data/registry/field.json +1 -1
  149. package/dist/mcp-data/registry/filter-menu.json +1 -1
  150. package/dist/mcp-data/registry/icon.json +2 -2
  151. package/dist/mcp-data/registry/inline-banner-settings.json +1 -1
  152. package/dist/mcp-data/registry/input-date.json +1 -1
  153. package/dist/mcp-data/registry/input-time.json +1 -1
  154. package/dist/mcp-data/registry/input.json +1 -1
  155. package/dist/mcp-data/registry/loader.json +1 -1
  156. package/dist/mcp-data/registry/map-cluster-marker.json +1 -1
  157. package/dist/mcp-data/registry/map-entity-marker.json +1 -1
  158. package/dist/mcp-data/registry/map-marker.json +1 -1
  159. package/dist/mcp-data/registry/markdown.json +1 -1
  160. package/dist/mcp-data/registry/menu.json +1 -1
  161. package/dist/mcp-data/registry/message-actions.json +1 -1
  162. package/dist/mcp-data/registry/message-bubble.json +1 -1
  163. package/dist/mcp-data/registry/message-composer.json +1 -1
  164. package/dist/mcp-data/registry/message-scroller.json +1 -1
  165. package/dist/mcp-data/registry/message.json +1 -1
  166. package/dist/mcp-data/registry/mobile-bar-nav.json +1 -1
  167. package/dist/mcp-data/registry/mobile-header.json +1 -1
  168. package/dist/mcp-data/registry/mobile-section-switcher.json +1 -1
  169. package/dist/mcp-data/registry/mobile-sheet-nav.json +1 -1
  170. package/dist/mcp-data/registry/modal.json +1 -1
  171. package/dist/mcp-data/registry/navigation-tab-group.json +1 -1
  172. package/dist/mcp-data/registry/pagination.json +1 -1
  173. package/dist/mcp-data/registry/panel-nav.json +1 -1
  174. package/dist/mcp-data/registry/panel-sub-nav.json +1 -1
  175. package/dist/mcp-data/registry/panel-tool-header.json +1 -1
  176. package/dist/mcp-data/registry/panel-tool-search.json +1 -1
  177. package/dist/mcp-data/registry/panel-tools.json +1 -1
  178. package/dist/mcp-data/registry/paper-texture.json +1 -1
  179. package/dist/mcp-data/registry/radio-tile.json +1 -1
  180. package/dist/mcp-data/registry/radio.json +1 -1
  181. package/dist/mcp-data/registry/registry.json +1 -1
  182. package/dist/mcp-data/registry/score.json +1 -1
  183. package/dist/mcp-data/registry/scroll-overlay.json +1 -1
  184. package/dist/mcp-data/registry/select-toggle.json +1 -1
  185. package/dist/mcp-data/registry/select.json +1 -1
  186. package/dist/mcp-data/registry/setting-row-checkbox.json +1 -1
  187. package/dist/mcp-data/registry/setting-row-radio.json +1 -1
  188. package/dist/mcp-data/registry/setting-row-toggle.json +1 -1
  189. package/dist/mcp-data/registry/shell-app.json +1 -1
  190. package/dist/mcp-data/registry/shell-page.json +1 -1
  191. package/dist/mcp-data/registry/shell-tools.json +1 -1
  192. package/dist/mcp-data/registry/skeleton.json +1 -1
  193. package/dist/mcp-data/registry/slider.json +1 -1
  194. package/dist/mcp-data/registry/swatch-picker.json +1 -1
  195. package/dist/mcp-data/registry/switch.json +1 -1
  196. package/dist/mcp-data/registry/tab-group.json +1 -1
  197. package/dist/mcp-data/registry/table.json +1 -1
  198. package/dist/mcp-data/registry/tag.json +1 -1
  199. package/dist/mcp-data/registry/text.json +1 -1
  200. package/dist/mcp-data/registry/textarea.json +1 -1
  201. package/dist/mcp-data/registry/time-picker.json +1 -1
  202. package/dist/mcp-data/registry/toast.json +1 -1
  203. package/dist/mcp-data/registry/tooltip-chart.json +1 -1
  204. package/dist/mcp-data/registry/tooltip.json +1 -1
  205. package/dist/mcp-data/registry/typing-indicator.json +1 -1
  206. package/package.json +3 -3
  207. package/dist/components/p-Ckar-ZZa.js +0 -2
  208. package/dist/components/p-Ckar-ZZa.js.map +0 -1
  209. package/dist/components/p-GP7Dz3qO.js +0 -3
  210. package/dist/components/p-GP7Dz3qO.js.map +0 -1
  211. /package/dist/components/{p-C3nUi5Lo.js.map → p-1lWK_LMY.js.map} +0 -0
  212. /package/dist/components/{p-BdJqRDKY.js.map → p-6r60E0i4.js.map} +0 -0
  213. /package/dist/components/{p-BKd0e8k8.js.map → p-BFgJoeVV.js.map} +0 -0
  214. /package/dist/components/{p-BK_SriZN.js.map → p-BI-XuQKW.js.map} +0 -0
  215. /package/dist/components/{p-DOazC0iw.js.map → p-BNvZM4jP.js.map} +0 -0
  216. /package/dist/components/{p-BNySDuzx.js.map → p-BckLHaey.js.map} +0 -0
  217. /package/dist/components/{p-ZcZ0N7Ok.js.map → p-BctjNfzt.js.map} +0 -0
  218. /package/dist/components/{p-CwL5zodA.js.map → p-Bt1Ybvz-.js.map} +0 -0
  219. /package/dist/components/{p-CcWT4SzP.js.map → p-BuvVFyAA.js.map} +0 -0
  220. /package/dist/components/{p-DXAY6GB5.js.map → p-CE_S4oQ_.js.map} +0 -0
  221. /package/dist/components/{p-BLQgaSh-.js.map → p-CMZAEySh.js.map} +0 -0
  222. /package/dist/components/{p-DMjOjrHi.js.map → p-CXrOGz7X.js.map} +0 -0
  223. /package/dist/components/{p-B8jrUwL-.js.map → p-CbyZ7BDJ.js.map} +0 -0
  224. /package/dist/components/{p-ZumxIz-2.js.map → p-Cc8p57pS.js.map} +0 -0
  225. /package/dist/components/{p-xouEdChm.js.map → p-ClgJZFkb.js.map} +0 -0
  226. /package/dist/components/{p-Cm1FS7D-.js.map → p-ClhfXMaD.js.map} +0 -0
  227. /package/dist/components/{p-zdiRX3Sf.js.map → p-CnsuVR2e.js.map} +0 -0
  228. /package/dist/components/{p-txmcXZdy.js.map → p-CsGkdf4W.js.map} +0 -0
  229. /package/dist/components/{p-CymFzY_N.js.map → p-CtomYv1z.js.map} +0 -0
  230. /package/dist/components/{p-BxkhBlKJ.js.map → p-D-Lo5uuI.js.map} +0 -0
  231. /package/dist/components/{p-9zDZcSc0.js.map → p-D3FrQk7o.js.map} +0 -0
  232. /package/dist/components/{p-Bn-tsogb.js.map → p-D5-hqLPK.js.map} +0 -0
  233. /package/dist/components/{p-D_kOVT6i.js.map → p-D8iNLSCa.js.map} +0 -0
  234. /package/dist/components/{p-qnp-yeXl.js.map → p-DQ-wfTOw.js.map} +0 -0
  235. /package/dist/components/{p-BknNUjWh.js.map → p-DYI6UlOP.js.map} +0 -0
  236. /package/dist/components/{p-B3-zImxn.js.map → p-Dc_zSOKq.js.map} +0 -0
  237. /package/dist/components/{p-DI5GEmid.js.map → p-DiNEjFpy.js.map} +0 -0
  238. /package/dist/components/{p-BJB6kfA2.js.map → p-M-Sxsv7V.js.map} +0 -0
  239. /package/dist/components/{p-CvK-Gy-b.js.map → p-cvVUXaen.js.map} +0 -0
  240. /package/dist/components/{p-BgMeLCj3.js.map → p-hFe35P2l.js.map} +0 -0
  241. /package/dist/components/{p-DfGJX_Eo.js.map → p-hom6svhE.js.map} +0 -0
  242. /package/dist/components/{p-D9MqUHig.js.map → p-lnCWfvuA.js.map} +0 -0
  243. /package/dist/components/{p-Ddkyu_wE.js.map → p-oBBzQpg_.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SelectController","constructor","state","this","triggerEl","popupEl","searchEl","typeahead","typeaheadTimer","outsideHandler","tasks","ConnectionTasks","host","isConnected","setTriggerElement","element","setPopupElement","setSearchElement","handleTriggerKeyDown","event","open","includes","key","preventDefault","openPopup","isTypeaheadKey","searchable","searchTerm","handleTypeahead","handleListKeyDown","focusRingVisible","activeIndex","moveChoiceIndex","options","enabledChoiceIndexes","enabled","length","target","Node","contains","option","selectOption","closePopup","position","AnchoredPositionController","getAnchor","anchor","getPopup","measure","trigger","popup","sectionPadding","resolveCssLengthPx","TOKEN_DEFAULTS","space050","style","minWidth","menuWidthXs","offsetWidth","choicePopupMinWidth","align","popupAlign","anchorRect","getBoundingClientRect","popupWidth","popupHeight","offsetHeight","side","sideOffsetPx","alignOffsetPx","resolveChoicePopupAlignOffset","sectionInsetPx","anchorAlignment","viewportPadPx","viewportWidth","window","innerWidth","viewportHeight","innerHeight","collisionRect","resolveAnchoredOverlayBoundaryRect","boundary","apply","x","y","positionReady","topLayer","activeOptionId","isLoading","generatedId","undefined","connect","openChanged","disconnect","cancel","cancelPositionRetry","unbindPopupListeners","clearTimeout","setFocus","focus","optionsChanged","frame","updatePosition","loadingChanged","positionChanged","bindPopupListeners","schedulePositionUpdate","scrollActiveOptionIntoView","searchChanged","activeIndexChanged","focusVisible","edge","isDisabled","preferredIndex","restoreFocus","focusSearchOrTrigger","metaKey","ctrlKey","altKey","normalized","toLocaleLowerCase","repeatedCharacter","every","character","match","findChoiceTypeaheadMatch","resetMs","resolveCssTimeMs","animationDurationMedium1","setTimeout","querySelector","scrollIntoView","block","inline","eventIntersectsComposedBoundary","document","addEventListener","observe","removeEventListener","unobserve","onReady","schedule","update","selectCss","ICON_SIZE","lg","md","sm","xs","OPTION_ACTION_SIZE","selectId","Select","__stencil_proxyCustomElement","HTMLElement","registerHost","sections","multiple","value","disabled","required","requiredMessage","DEFAULT_REQUIRED_MESSAGE","placeholder","triggerLabelPlaceholder","dot","size","isInset","insetDepth","width","isInactive","neutralTrigger","activeFill","collapseLabel","iconOnly","hasBorder","hasInteractionFill","hasFocusRing","rounded","indicator","allowClear","clearLabel","selectedLabel","searchPlaceholder","noResultsText","loadingLabel","error","ariaLabel","formDisabled","compactFooterSummary","captionCompact","listboxId","errorId","initialValue","controller","createController","hasLoaded","clearSelection","stopPropagation","dsChange","emit","dsClear","visibleOptions","activateFooterAction","dsFooterAction","owner","el","findIndex","scalarValue","componentWillLoad","normalizeValueForMode","Array","isArray","syncFormValue","componentDidLoad","observeFooterContent","syncCaptionCompactObserver","connectedCallback","componentDidRender","scheduleFooterSummaryMeasurement","disconnectedCallback","footerResizeObserver","observedFooterContentElement","footerMeasurementFrame","cancelAnimationFrame","disconnectCaptionCompactObserver","onCollapseLabelChange","inactive","values","resolvedValues","setRepeatedFormControlValue","internals","name","JSON","stringify","hasSelection","setFormControlValue","missing","setRequiredValidity","onLoadingChange","onPopupAlignChange","onOpenChange","dsOpenChange","onSearchTermChange","onActiveIndexChange","formDisabledCallback","formResetCallback","formStateRestoreCallback","restoreStringFormState","restoreStringArrayFormState","allSections","resolveChoiceSections","allOptions","flattenChoiceSections","visibleSections","filterChoiceSections","valid","Set","map","filter","has","selectedOption","find","Boolean","popupRole","some","action","content","footerContentElement","ResizeObserver","requestAnimationFrame","measureFooterSummary","summary","footerSummaryMeasureElement","clear","footerClearElement","styles","getComputedStyle","clientWidth","Number","parseFloat","paddingInlineStart","paddingInlineEnd","requiredWidth","columnGap","nextCompact","current","next","renderOption","index","usesIcons","usesSubtext","selected","active","actionId","h","ChoiceOptionRow","id","actionOpen","surfaceOpen","expanded","leading","class","label","checked","presentation","icon","color","supporting","subtextActions","actionIndex","as","variant","CONTROL_SUPPORTING_TEXT_VARIANT","type","tone","onKeyDown","onClick","dsOptionSubtextAction","actionValue","originalEvent","haspopup","controls","onDsClick","dsOptionAction","anchorId","detail","onHover","onSelect","captionIconOnly","doubleInset","captionCompactDisconnect","observeTableCaptionCompact","compact","renderCaptionTooltip","render","showPlaceholder","count","triggerLabel","textVariant","CONTROL_TEXT_VARIANT","iconSize","usesOptionIcons","choiceListUsesIcons","usesOptionSubtext","choiceListUsesSubtext","showError","errorMessage","describedBy","ariaDescribedby","join","popupStyle","left","top","transform","Math","round","zIndex","visibility","flatIndex","Host","controlWidthClass","background","ref","inputId","choiceBackgroundClassMap","role","String","ariaLabelledby","shiftKey","getElementById","lineTruncation","hasRing","trim","popover","ChoiceSearch","activeDescendant","inputRef","onValueChange","body","section","sectionIndex","divider","header","emphasis","footerActionLabel","ChoiceActionFooter","onAction","ChoiceFooter","compactSummary","useCompactSummary","contentRef","summaryMeasureRef","clearRef","onClear","textId"],"sources":["src/wc/utils/select-controller.ts","src/wc/components/Select/Select.css?tag=ds-select&encapsulation=scoped","src/wc/components/Select/Select.tsx"],"sourcesContent":["import { AnchoredPositionController } from './anchored-position-controller';\nimport {\n enabledChoiceIndexes,\n findChoiceTypeaheadMatch,\n moveChoiceIndex,\n type ChoiceOption,\n} from './choice-list';\nimport { choicePopupMinWidth, resolveChoicePopupAlignOffset } from './choice-popup-alignment';\nimport { resolveCssLengthPx } from './resolve-css-length-px';\nimport { resolveCssTimeMs } from './resolve-css-time-ms';\nimport { TOKEN_DEFAULTS } from './token-defaults';\nimport { eventIntersectsComposedBoundary } from './anchored-overlay-interaction-controller';\nimport { resolveAnchoredOverlayBoundaryRect } from './anchored-overlay-boundary';\nimport { ConnectionTasks } from './connection-tasks';\n\ntype PopupPosition = { x: number; y: number };\n\nexport interface SelectControllerState<T extends ChoiceOption> {\n readonly host: HTMLElement;\n readonly generatedId: string;\n readonly options: T[];\n readonly searchable: boolean;\n readonly isLoading: boolean;\n readonly isDisabled: boolean;\n readonly preferredIndex: number;\n readonly popupAlign: 'start' | 'end';\n readonly boundary: HTMLElement | undefined;\n readonly anchor?: HTMLElement;\n open: boolean;\n activeIndex: number;\n searchTerm: string;\n focusRingVisible: boolean;\n position: PopupPosition;\n positionReady: boolean;\n selectOption(option: T): void;\n}\n\n/**\n * Shared single/multiple Select interaction controller.\n *\n * Decorated Stencil state and scalar/array selection remain in each component;\n * this controller owns only popup lifecycle, focus, positioning, typeahead,\n * and listbox keyboard traversal. Anchored placement is delegated to\n * `AnchoredPositionController`; only the choice-cell measurement stays here.\n */\nexport class SelectController<T extends ChoiceOption> {\n private triggerEl: HTMLButtonElement | null = null;\n private popupEl: HTMLDivElement | null = null;\n private searchEl: HTMLDsInputElement | null = null;\n private typeahead = '';\n private typeaheadTimer: ReturnType<typeof setTimeout> | null = null;\n private outsideHandler: ((event: MouseEvent) => void) | null = null;\n private readonly position: AnchoredPositionController;\n private readonly tasks = new ConnectionTasks(() => this.state.host.isConnected);\n\n constructor(private readonly state: SelectControllerState<T>) {\n this.position = new AnchoredPositionController({\n getAnchor: () => this.state.anchor ?? this.triggerEl,\n getPopup: () => this.popupEl,\n measure: (trigger, popup) => {\n if (!this.state.open || !popup.isConnected || !this.state.host.contains(popup)) return null;\n\n const sectionPadding = resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050);\n popup.style.minWidth = `max(var(--ds-choice-popup-min-inline-size, ${TOKEN_DEFAULTS.menuWidthXs}), ${this.state.anchor ? trigger.offsetWidth : choicePopupMinWidth(trigger.offsetWidth, sectionPadding)}px)`;\n\n const align = this.state.popupAlign;\n return {\n anchorRect: trigger.getBoundingClientRect(),\n popupWidth: popup.offsetWidth,\n popupHeight: popup.offsetHeight,\n side: 'bottom',\n align,\n sideOffsetPx: sectionPadding,\n alignOffsetPx: resolveChoicePopupAlignOffset({\n align,\n alignOffsetPx: 0,\n sectionInsetPx: sectionPadding,\n anchorAlignment: this.state.anchor ? 'popup-frame' : 'choice-cell',\n }),\n viewportPadPx: sectionPadding,\n viewportWidth: window.innerWidth,\n viewportHeight: window.innerHeight,\n collisionRect: resolveAnchoredOverlayBoundaryRect(trigger, this.state.boundary),\n };\n },\n apply: ({ x, y }) => {\n this.state.position = { x, y };\n this.state.positionReady = true;\n },\n topLayer: true,\n });\n }\n\n get activeOptionId(): string | undefined {\n return !this.state.isLoading && this.state.activeIndex >= 0\n ? `${this.state.generatedId}-option-${this.state.activeIndex}`\n : undefined;\n }\n\n setTriggerElement = (element: HTMLButtonElement | null) => {\n this.triggerEl = element;\n };\n\n setPopupElement = (element: HTMLDivElement | null) => {\n this.popupEl = element;\n };\n\n setSearchElement = (element: HTMLDsInputElement | null) => {\n this.searchEl = element;\n };\n\n connect() {\n if (this.state.open) this.openChanged(true);\n }\n\n disconnect() {\n this.tasks.cancel();\n this.cancelPositionRetry();\n this.unbindPopupListeners();\n if (this.typeaheadTimer !== null) clearTimeout(this.typeaheadTimer);\n this.typeaheadTimer = null;\n this.typeahead = '';\n }\n\n setFocus() {\n this.triggerEl?.focus();\n }\n\n optionsChanged() {\n if (!this.state.open) return;\n const enabled = enabledChoiceIndexes(this.state.options);\n if (!enabled.includes(this.state.activeIndex)) this.state.activeIndex = enabled[0] ?? -1;\n this.tasks.frame(() => this.updatePosition());\n }\n\n loadingChanged() {\n if (this.state.open) this.tasks.frame(() => this.updatePosition());\n }\n\n positionChanged() {\n if (this.state.open) this.tasks.frame(() => this.updatePosition());\n }\n\n openChanged(open: boolean) {\n if (open) {\n this.bindPopupListeners();\n this.schedulePositionUpdate(() => {\n this.scrollActiveOptionIntoView();\n if (this.state.searchable) void this.searchEl?.setFocus();\n });\n return;\n }\n this.cancelPositionRetry();\n this.unbindPopupListeners();\n this.state.searchTerm = '';\n this.state.positionReady = false;\n }\n\n searchChanged() {\n this.state.activeIndex = enabledChoiceIndexes(this.state.options)[0] ?? -1;\n this.tasks.frame(() => {\n this.updatePosition();\n this.scrollActiveOptionIntoView();\n });\n }\n\n activeIndexChanged() {\n this.tasks.frame(() => this.scrollActiveOptionIntoView());\n }\n\n openPopup(focusVisible: boolean, edge?: 'first' | 'last') {\n if (this.state.isDisabled || (!this.state.options.length && !this.state.isLoading)) return;\n const enabled = enabledChoiceIndexes(this.state.options);\n this.state.activeIndex =\n edge === 'last'\n ? (enabled[enabled.length - 1] ?? -1)\n : this.state.preferredIndex >= 0\n ? this.state.preferredIndex\n : (enabled[0] ?? -1);\n this.state.focusRingVisible = focusVisible;\n this.state.open = true;\n }\n\n closePopup(restoreFocus = false) {\n if (!this.state.open) return;\n this.state.open = false;\n // The trigger remains mounted. Deferring restoration can steal focus back\n // from the next control when the user presses Tab before the next frame.\n if (restoreFocus && this.state.host.isConnected) this.triggerEl?.focus();\n }\n\n focusSearchOrTrigger() {\n this.tasks.frame(() => {\n if (this.state.searchable) void this.searchEl?.setFocus();\n else this.triggerEl?.focus();\n });\n }\n\n handleTriggerKeyDown = (event: KeyboardEvent) => {\n if (!this.state.open) {\n if (['ArrowDown', 'ArrowUp', 'Enter', ' '].includes(event.key)) {\n event.preventDefault();\n this.openPopup(true, event.key === 'ArrowUp' ? 'last' : 'first');\n } else if (this.isTypeaheadKey(event)) {\n event.preventDefault();\n this.openPopup(true);\n if (this.state.searchable) this.state.searchTerm = event.key;\n else this.handleTypeahead(event.key);\n }\n return;\n }\n this.handleListKeyDown(event);\n };\n\n handleListKeyDown = (event: KeyboardEvent) => {\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.state.focusRingVisible = true;\n this.state.activeIndex = moveChoiceIndex(this.state.options, this.state.activeIndex, 1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.state.focusRingVisible = true;\n this.state.activeIndex = moveChoiceIndex(this.state.options, this.state.activeIndex, -1);\n break;\n case 'Home':\n event.preventDefault();\n this.state.focusRingVisible = true;\n this.state.activeIndex = enabledChoiceIndexes(this.state.options)[0] ?? -1;\n break;\n case 'End': {\n event.preventDefault();\n this.state.focusRingVisible = true;\n const enabled = enabledChoiceIndexes(this.state.options);\n this.state.activeIndex = enabled[enabled.length - 1] ?? -1;\n break;\n }\n case 'Enter':\n case ' ': {\n if (\n event.key === ' ' &&\n this.state.searchable &&\n event.target instanceof Node &&\n this.searchEl?.contains(event.target)\n )\n break;\n event.preventDefault();\n const option = this.state.options[this.state.activeIndex];\n if (option) this.state.selectOption(option);\n break;\n }\n case 'Escape':\n event.preventDefault();\n this.closePopup(true);\n break;\n case 'Tab':\n this.closePopup();\n break;\n default:\n if (!this.state.searchable && this.isTypeaheadKey(event)) {\n this.handleTypeahead(event.key);\n }\n }\n };\n\n private isTypeaheadKey(event: KeyboardEvent) {\n return event.key.length === 1 && !event.metaKey && !event.ctrlKey && !event.altKey;\n }\n\n private handleTypeahead(key: string) {\n if (this.typeaheadTimer) clearTimeout(this.typeaheadTimer);\n this.state.focusRingVisible = true;\n const normalized = key.toLocaleLowerCase();\n const repeatedCharacter =\n this.typeahead.length > 0 && [...this.typeahead].every(character => character === normalized);\n this.typeahead = repeatedCharacter ? normalized : `${this.typeahead}${normalized}`;\n const match = findChoiceTypeaheadMatch(\n this.state.options,\n this.typeahead,\n this.state.activeIndex\n );\n if (match >= 0) this.state.activeIndex = match;\n const resetMs = resolveCssTimeMs(\n TOKEN_DEFAULTS.animationDurationMedium1,\n TOKEN_DEFAULTS.animationDurationMedium1\n );\n this.typeaheadTimer = setTimeout(() => {\n this.typeahead = '';\n this.typeaheadTimer = null;\n }, resetMs);\n }\n\n private scrollActiveOptionIntoView() {\n if (!this.state.open || !this.activeOptionId) return;\n this.state.host\n .querySelector<HTMLElement>(`#${this.activeOptionId}`)\n ?.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }\n\n private bindPopupListeners() {\n this.unbindPopupListeners();\n this.outsideHandler = event => {\n if (eventIntersectsComposedBoundary(event, this.state.host)) return;\n if (this.state.anchor && eventIntersectsComposedBoundary(event, this.state.anchor)) return;\n this.closePopup();\n };\n document.addEventListener('mousedown', this.outsideHandler, true);\n this.position.observe();\n }\n\n private unbindPopupListeners() {\n if (this.outsideHandler) {\n document.removeEventListener('mousedown', this.outsideHandler, true);\n this.outsideHandler = null;\n }\n this.position.unobserve();\n }\n\n private cancelPositionRetry() {\n this.position.cancel();\n }\n\n private schedulePositionUpdate(onReady?: () => void) {\n if (!this.state.open) return;\n this.state.positionReady = false;\n this.position.schedule(onReady);\n }\n\n private updatePosition(): boolean {\n return this.position.update();\n }\n}\n","@import '../../utils/radius.css';\n@import '../../utils/choice-list.css';\n@import '../../utils/control-density-inset.css';\n@import '../../utils/control-parts.css';\n@import '../../utils/control-width.css';\n@import '../../utils/field-stack.css';\n@import '../../utils/search-control.css';\n@import '../../utils/select-trigger.css';\n@import '../../utils/table-caption-control.css';\n@import '../../utils/typography.css';\n@import '../../styles/control-elevation.css';\n\n.wrapper--error {\n --ds-interaction-border-width: var(--dimension-stroke-width-018);\n --ds-interaction-border-color: var(--color-border-bold-negative);\n}\n\n.select-popup {\n color: var(--color-foreground-secondary);\n}\n\n/* An embedding surface supplies the focus indicator instead of a second trigger ring. */\n.trigger--external-focus {\n outline: none;\n}\n\n.trigger--external-fill {\n --ds-interaction-hover: transparent;\n --ds-interaction-pressed: transparent;\n --ds-interaction-active: transparent;\n}\n\n.select-option[aria-selected='true'] .ds-choice-item__icon {\n color: var(--color-foreground-primary);\n}\n\n.select-option-row {\n position: relative;\n isolation: isolate;\n}\n\n.select-option-row__action {\n position: absolute;\n top: 50%;\n right: var(--dimension-space-050);\n z-index: var(--dimension-z-index-floating);\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: var(--dimension-radius-half);\n background: var(--color-background-transparent);\n -webkit-backdrop-filter: blur(var(--effect-blur-sm));\n backdrop-filter: blur(var(--effect-blur-sm));\n opacity: 0;\n pointer-events: none;\n transform: translateY(-50%);\n}\n\n.select-option-row:has(:focus-visible) .select-option-row__action,\n.select-option-row--action-open .select-option-row__action,\n.select-option-row--keyboard-active .select-option-row__action {\n opacity: 1;\n pointer-events: auto;\n}\n\n.select-option-row--action-open .select-option::after {\n background: var(--ds-interaction-hover);\n}\n\n.select-option__subtext-actions {\n display: flex;\n align-items: center;\n gap: var(--dimension-space-050);\n min-inline-size: 0;\n color: var(--color-foreground-secondary);\n}\n\n.select-option__subtext-action {\n appearance: none;\n display: inline-flex;\n align-items: center;\n padding: 0;\n border: 0;\n border-radius: var(--dimension-radius-025);\n background: transparent;\n cursor: pointer;\n}\n\n.select-option__subtext-action--negative {\n --ds-text-action-foreground: var(--color-foreground-bold-negative);\n}\n\n.select-option__subtext-action-separator {\n color: var(--color-foreground-tertiary);\n pointer-events: none;\n}\n\n@media (hover: hover) and (pointer: fine) {\n .select-option-row:hover .select-option-row__action {\n opacity: 1;\n pointer-events: auto;\n }\n\n .select-option-row:hover .select-option::after {\n background: var(--ds-interaction-hover);\n }\n}\n\n@media (hover: none) {\n .select-option-row__action {\n opacity: 1;\n pointer-events: auto;\n }\n\n .select-option-row--has-action .ds-choice-item__content {\n padding-inline-end: var(--dimension-size-400);\n }\n}\n\n.error-text {\n width: 100%;\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n type VNode,\n Watch,\n} from '@stencil/core';\nimport {\n controlWidthClass,\n CONTROL_SUPPORTING_TEXT_VARIANT,\n CONTROL_TEXT_VARIANT,\n DEFAULT_REQUIRED_MESSAGE,\n restoreStringArrayFormState,\n restoreStringFormState,\n setFormControlValue,\n setRepeatedFormControlValue,\n setRequiredValidity,\n type ControlInsetDepth,\n type ControlWidth,\n} from '../../utils';\nimport {\n ChoiceActionFooter,\n ChoiceFooter,\n ChoiceOptionRow,\n ChoiceSearch,\n} from '../../utils/choice-list-parts';\nimport {\n choiceBackgroundClassMap,\n choiceListUsesIcons,\n choiceListUsesSubtext,\n enabledChoiceIndexes,\n filterChoiceSections,\n flattenChoiceSections,\n resolveChoiceSections,\n type ChoiceBackground,\n type ChoiceOption,\n type ChoiceSection,\n} from '../../utils/choice-list';\nimport { SelectController } from '../../utils/select-controller';\nimport { observeTableCaptionCompact } from '../../utils/table-caption-compact';\n\nexport type SelectOption = ChoiceOption;\nexport type SelectSection = ChoiceSection;\nexport type SelectBackground = ChoiceBackground;\nexport type SelectSize = 'lg' | 'md' | 'sm' | 'xs';\nexport type SelectWidth = ControlWidth;\nexport type SelectPopupAlign = 'start' | 'end';\nexport type SelectValue = string | string[];\nexport type SelectIndicator = 'down' | 'up-down' | 'none';\n\nexport interface SelectOptionActionDetail {\n value: string;\n anchorId: string;\n originalEvent: MouseEvent;\n}\n\nexport interface SelectOptionSubtextActionDetail {\n value: string;\n actionValue: string;\n originalEvent: MouseEvent;\n}\n\nconst ICON_SIZE: Record<SelectSize, 'lg' | 'md' | 'sm' | 'xs'> = {\n lg: 'lg',\n md: 'md',\n sm: 'sm',\n xs: 'xs',\n};\n\nconst OPTION_ACTION_SIZE: Record<SelectSize, 'md' | 'sm' | 'xs'> = {\n lg: 'md',\n md: 'sm',\n sm: 'xs',\n xs: 'xs',\n};\n\nlet selectId = 0;\n\n@Component({\n tag: 'ds-select',\n styleUrl: 'Select.css',\n scoped: true,\n formAssociated: true,\n})\nexport class Select {\n @Element() el!: HTMLElement;\n @AttachInternals() internals!: ElementInternals;\n\n /** Flat choices. Assign arrays through the JavaScript property. */\n @Prop() options: SelectOption[] = [];\n /** Grouped choices; takes precedence over options. Assign through JavaScript. */\n @Prop() sections: SelectSection[] = [];\n /** Enable independent multi-value selection while keeping the popup open. */\n @Prop({ reflect: true }) multiple: boolean = false;\n /** Selected scalar or array value according to `multiple`. */\n @Prop({ mutable: true }) value: SelectValue = '';\n /** Controlled popup visibility. */\n @Prop({ mutable: true, reflect: true }) open: boolean = false;\n /** Native form field name. */\n @Prop({ reflect: true }) name: string | undefined;\n /** Associates the select with a form by id when rendered outside that form. */\n @Prop({ reflect: true }) form: string | undefined;\n /** Native disabled state. */\n @Prop({ reflect: true }) disabled: boolean = false;\n /** Require one valid selected value. */\n @Prop({ reflect: true }) required: boolean = false;\n /** Validation message used when required is missing. */\n @Prop() requiredMessage: string = DEFAULT_REQUIRED_MESSAGE;\n /** Trigger text shown when no valid value is selected. */\n @Prop() placeholder: string = 'Select';\n /** Optional scalar-mode trigger text that does not change the selected option label. */\n @Prop() triggerLabel: string | undefined;\n /** Present triggerLabel with placeholder emphasis while preserving the selected value. */\n @Prop() triggerLabelPlaceholder: boolean = false;\n /** Show a supplemental notification dot beside the trigger label. */\n @Prop() dot: boolean = false;\n /** Control density. */\n @Prop() size: SelectSize = 'md';\n /** Use reduced outer geometry when nested inside a control of the same size. */\n @Prop() isInset: boolean = false;\n /** Single removes 4px overall; double removes 8px overall (xs stays single). */\n @Prop() insetDepth: ControlInsetDepth = 'single';\n /** Width fit — hug content (default) or fill the parent. */\n @Prop() width: SelectWidth = 'hug';\n /** Align the popup's choice edge to the trigger start or end edge. */\n @Prop() popupAlign: SelectPopupAlign = 'start';\n /** Explicit collision owner; otherwise the nearest data-ds-overlay-boundary ancestor is used. */\n @Prop() boundary: HTMLElement | undefined;\n /** Optional popup positioning anchor; the trigger still owns focus and accessibility. */\n @Prop() anchor: HTMLElement | undefined;\n /** Shared inactive treatment; removes interaction and form submission. */\n @Prop() isInactive: boolean = false;\n /** Replace the prefix with a loader and disable option interaction. */\n @Prop() isLoading: boolean = false;\n /** Show the selected interaction fill when a valid value exists. */\n /** Keep trigger colors neutral when a value is selected. */\n @Prop() neutralTrigger: boolean = false;\n @Prop() activeFill: boolean = false;\n /**\n * Opt into table-caption icon-only chrome below 900px. The trigger omits its\n * visible label and chevron; keep an accessible name via aria-label.\n */\n @Prop({ reflect: true }) collapseLabel: boolean = false;\n /** Always show only the prefix icon; retain an accessible name via aria-label. */\n @Prop() iconOnly: boolean = false;\n /** Show the surface-aware inset border, including focused and invalid strokes. */\n @Prop() hasBorder: boolean = true;\n /** Disable only when a containing surface owns hover and press feedback. */\n @Prop() hasInteractionFill: boolean = true;\n /** Disable only when a containing surface supplies a visible focus indicator. */\n @Prop() hasFocusRing: boolean = true;\n /** Use a pill radius on the trigger. Popup chrome stays on the menu radius. */\n @Prop() rounded: boolean = false;\n /** Optional trigger prefix icon name. */\n @Prop() icon: string | undefined;\n /** Trailing choice indicator. Use up-down for compact value steppers such as page size. */\n @Prop() indicator: SelectIndicator = 'down';\n /** Show the clear footer action when a value exists. */\n @Prop() allowClear: boolean = true;\n /** Localized clear action label. */\n @Prop() clearLabel: string = 'Clear';\n /** Localized noun displayed after the selected count in multiple mode. */\n @Prop() selectedLabel: string = 'selected';\n /** Optional text action shown in the popup footer instead of the clear action. */\n @Prop() footerActionLabel: string | undefined;\n /** Show immediate local filtering over option labels, subtext, and section headings. */\n @Prop() searchable: boolean = false;\n /** Localized search-field placeholder and accessible name. */\n @Prop() searchPlaceholder: string = 'Search';\n /** Localized empty-filter result text. */\n @Prop() noResultsText: string = 'No results found';\n /** Accessible loading status label. */\n @Prop() loadingLabel: string = 'Loading';\n /** Actual parent surface context; omit on primary and secondary surfaces. */\n @Prop() background: SelectBackground | undefined;\n /** Show invalid visual state. */\n @Prop() error: boolean = false;\n /** Error text rendered below the trigger when error is true. */\n @Prop() errorMessage: string | undefined;\n /** ID applied to the internal combobox trigger for external labels. */\n @Prop() inputId: string | undefined;\n /** Direct accessible name when no external label is available. */\n @Prop({ attribute: 'aria-label' }) ariaLabel: string | null = null;\n /** IDs of elements that label the combobox. */\n @Prop({ attribute: 'aria-labelledby' }) ariaLabelledby: string | undefined;\n /** Additional IDs that describe the combobox. */\n @Prop({ attribute: 'aria-describedby' }) ariaDescribedby: string | undefined;\n\n /** Emitted after selection or clearing with the next scalar or array value. */\n @Event() dsChange!: EventEmitter<SelectValue>;\n /** Emitted after the footer clear action. */\n @Event() dsClear!: EventEmitter<void>;\n /** Emitted whenever popup visibility changes. */\n @Event() dsOpenChange!: EventEmitter<boolean>;\n /** Emitted when the optional popup footer action is activated. */\n @Event() dsFooterAction!: EventEmitter<void>;\n /** Emitted when an option's contextual ellipsis action is activated. */\n @Event() dsOptionAction!: EventEmitter<SelectOptionActionDetail>;\n /** Emitted when an option's supporting text action is activated. */\n @Event() dsOptionSubtextAction!: EventEmitter<SelectOptionSubtextActionDetail>;\n\n @State() private activeIndex = -1;\n @State() private searchTerm = '';\n @State() private formDisabled = false;\n @State() private position = { x: 0, y: 0 };\n @State() private positionReady = false;\n @State() private focusRingVisible = false;\n @State() private compactFooterSummary = false;\n @State() private captionCompact = false;\n\n private readonly generatedId = `ds-select-${++selectId}`;\n private readonly listboxId = `${this.generatedId}-listbox`;\n private readonly errorId = `${this.generatedId}-error`;\n private initialValue: SelectValue = '';\n private readonly controller = this.createController();\n private footerContentElement?: HTMLDivElement;\n private footerSummaryMeasureElement?: HTMLElement;\n private footerClearElement?: HTMLButtonElement;\n private footerResizeObserver?: ResizeObserver;\n private observedFooterContentElement?: HTMLDivElement;\n private footerMeasurementFrame?: number;\n private captionCompactDisconnect: (() => void) | undefined;\n private hasLoaded = false;\n\n private createController() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias -- adapter getters preserve reactive component ownership without inheritance.\n const owner = this;\n return new SelectController<SelectOption>({\n get host() {\n return owner.el;\n },\n generatedId: owner.generatedId,\n get options() {\n return owner.visibleOptions;\n },\n get searchable() {\n return owner.searchable;\n },\n get isLoading() {\n return owner.isLoading;\n },\n get isDisabled() {\n return owner.isDisabled;\n },\n get preferredIndex() {\n if (owner.multiple) return -1;\n return owner.visibleOptions.findIndex(\n option => option.value === owner.scalarValue && !option.isInactive\n );\n },\n get popupAlign() {\n return owner.popupAlign;\n },\n get boundary() {\n return owner.boundary;\n },\n get anchor() {\n return owner.anchor;\n },\n get open() {\n return owner.open;\n },\n set open(value) {\n owner.open = value;\n },\n get activeIndex() {\n return owner.activeIndex;\n },\n set activeIndex(value) {\n owner.activeIndex = value;\n },\n get searchTerm() {\n return owner.searchTerm;\n },\n set searchTerm(value) {\n owner.searchTerm = value;\n },\n get focusRingVisible() {\n return owner.focusRingVisible;\n },\n set focusRingVisible(value) {\n owner.focusRingVisible = value;\n },\n get position() {\n return owner.position;\n },\n set position(value) {\n owner.position = value;\n },\n get positionReady() {\n return owner.positionReady;\n },\n set positionReady(value) {\n owner.positionReady = value;\n },\n selectOption: option => owner.selectOption(option),\n });\n }\n\n componentWillLoad() {\n this.value = this.normalizeValueForMode(this.value);\n this.initialValue = Array.isArray(this.value) ? [...this.value] : this.value;\n this.syncFormValue();\n }\n\n componentDidLoad() {\n this.hasLoaded = true;\n this.controller.connect();\n this.observeFooterContent();\n this.syncCaptionCompactObserver();\n }\n\n connectedCallback() {\n if (!this.hasLoaded) return;\n this.controller.connect();\n this.observeFooterContent();\n this.syncCaptionCompactObserver();\n }\n\n componentDidRender() {\n this.observeFooterContent();\n this.scheduleFooterSummaryMeasurement();\n }\n\n disconnectedCallback() {\n this.controller.disconnect();\n this.footerResizeObserver?.disconnect();\n this.observedFooterContentElement = undefined;\n if (this.footerMeasurementFrame !== undefined) {\n cancelAnimationFrame(this.footerMeasurementFrame);\n this.footerMeasurementFrame = undefined;\n }\n this.disconnectCaptionCompactObserver();\n }\n\n @Watch('collapseLabel')\n onCollapseLabelChange() {\n this.syncCaptionCompactObserver();\n }\n\n @Watch('value')\n @Watch('multiple')\n @Watch('disabled')\n @Watch('isInactive')\n @Watch('required')\n @Watch('requiredMessage')\n @Watch('name')\n @Watch('options')\n @Watch('sections')\n syncFormValue() {\n if (\n (this.multiple && !Array.isArray(this.value)) ||\n (!this.multiple && Array.isArray(this.value))\n ) {\n this.value = this.normalizeValueForMode(this.value);\n }\n const inactive = this.isDisabled;\n if (this.multiple) {\n const values = this.resolvedValues;\n setRepeatedFormControlValue(this.internals, this.name, values, {\n inactive,\n state: JSON.stringify(this.value),\n });\n } else {\n const value = this.hasSelection ? this.scalarValue : '';\n setFormControlValue(this.internals, value, { inactive, state: this.scalarValue });\n }\n const missing = this.required && !inactive && !this.hasSelection;\n setRequiredValidity(this.internals, missing, this.requiredMessage);\n this.controller.optionsChanged();\n }\n\n @Watch('isLoading')\n onLoadingChange() {\n this.controller.loadingChanged();\n }\n\n @Watch('popupAlign')\n @Watch('boundary')\n @Watch('anchor')\n onPopupAlignChange() {\n this.controller.positionChanged();\n }\n\n @Watch('open')\n onOpenChange(open: boolean) {\n this.dsOpenChange.emit(open);\n this.controller.openChanged(open);\n }\n\n @Watch('searchTerm')\n onSearchTermChange() {\n this.controller.searchChanged();\n }\n\n @Watch('activeIndex')\n onActiveIndexChange() {\n this.controller.activeIndexChanged();\n }\n\n formDisabledCallback(disabled: boolean) {\n this.formDisabled = disabled;\n this.syncFormValue();\n }\n\n formResetCallback() {\n this.value = this.normalizeValueForMode(this.initialValue);\n this.closePopup();\n }\n\n formStateRestoreCallback(state: string | File | FormData | null) {\n if (!this.multiple) {\n this.value = restoreStringFormState(state);\n return;\n }\n this.value = restoreStringArrayFormState(state);\n }\n\n @Method()\n async setFocus() {\n this.controller.setFocus();\n }\n\n private get isDisabled(): boolean {\n return this.disabled || this.isInactive || this.formDisabled;\n }\n\n private normalizeValueForMode(value: SelectValue): SelectValue {\n if (this.multiple) {\n return Array.isArray(value) ? [...value] : value ? [value] : [];\n }\n return Array.isArray(value) ? (value[0] ?? '') : value;\n }\n\n private get allSections(): SelectSection[] {\n return resolveChoiceSections(this.options, this.sections);\n }\n\n private get allOptions(): SelectOption[] {\n return flattenChoiceSections(this.allSections);\n }\n\n private get visibleSections(): SelectSection[] {\n return this.searchable\n ? filterChoiceSections(this.allSections, this.searchTerm)\n : this.allSections;\n }\n\n private get visibleOptions(): SelectOption[] {\n return flattenChoiceSections(this.visibleSections);\n }\n\n private get scalarValue(): string {\n return typeof this.value === 'string' ? this.value : '';\n }\n\n private get resolvedValues(): string[] {\n if (!this.multiple || !Array.isArray(this.value)) return [];\n const valid = new Set(this.allOptions.map(option => option.value));\n return [...new Set(this.value.filter(value => valid.has(value)))];\n }\n\n private get selectedOption(): SelectOption | undefined {\n if (this.multiple) return undefined;\n return this.allOptions.find(option => option.value === this.scalarValue);\n }\n\n private get hasSelection(): boolean {\n return this.multiple ? this.resolvedValues.length > 0 : Boolean(this.selectedOption);\n }\n\n private get activeOptionId(): string | undefined {\n return this.controller.activeOptionId;\n }\n\n private get popupRole(): 'listbox' | 'grid' {\n return this.allOptions.some(option => Boolean(option.action)) ? 'grid' : 'listbox';\n }\n\n private observeFooterContent() {\n const content =\n this.open && this.multiple && this.hasSelection ? this.footerContentElement : undefined;\n if (!content?.isConnected) {\n this.footerResizeObserver?.disconnect();\n this.observedFooterContentElement = undefined;\n return;\n }\n if (this.observedFooterContentElement === content) return;\n\n this.footerResizeObserver?.disconnect();\n if (typeof ResizeObserver !== 'undefined') {\n this.footerResizeObserver = new ResizeObserver(() => this.scheduleFooterSummaryMeasurement());\n this.footerResizeObserver.observe(content);\n }\n this.observedFooterContentElement = content;\n }\n\n private scheduleFooterSummaryMeasurement() {\n if (\n !this.open ||\n !this.multiple ||\n !this.hasSelection ||\n this.footerMeasurementFrame !== undefined\n ) {\n return;\n }\n this.footerMeasurementFrame = requestAnimationFrame(() => {\n this.footerMeasurementFrame = undefined;\n this.measureFooterSummary();\n });\n }\n\n private measureFooterSummary() {\n const content = this.footerContentElement;\n const summary = this.footerSummaryMeasureElement;\n const clear = this.footerClearElement;\n if (!content?.isConnected || !summary?.isConnected || !clear?.isConnected) return;\n\n const styles = getComputedStyle(content);\n const innerWidth =\n content.clientWidth -\n Number.parseFloat(styles.paddingInlineStart || '0') -\n Number.parseFloat(styles.paddingInlineEnd || '0');\n const requiredWidth =\n summary.getBoundingClientRect().width +\n clear.getBoundingClientRect().width +\n Number.parseFloat(styles.columnGap || '0');\n const nextCompact = requiredWidth > innerWidth + 0.5;\n if (nextCompact !== this.compactFooterSummary) {\n this.compactFooterSummary = nextCompact;\n }\n }\n\n private closePopup(restoreFocus = false) {\n this.controller.closePopup(restoreFocus);\n }\n\n private openPopup(focusVisible: boolean, edge?: 'first' | 'last') {\n this.controller.openPopup(focusVisible, edge);\n }\n\n private selectOption(option: SelectOption) {\n if (option.isInactive || this.isLoading) return;\n if (this.multiple) {\n const current = this.resolvedValues;\n const next = current.includes(option.value)\n ? current.filter(value => value !== option.value)\n : [...current, option.value];\n this.value = next;\n this.dsChange.emit([...next]);\n return;\n }\n this.value = option.value;\n this.dsChange.emit(option.value);\n this.controller.closePopup(true);\n }\n\n private clearSelection = (event: Event) => {\n event.preventDefault();\n event.stopPropagation();\n this.value = this.multiple ? [] : '';\n this.dsChange.emit(this.multiple ? [] : '');\n this.dsClear.emit();\n if (!this.multiple) {\n const enabled = enabledChoiceIndexes(this.visibleOptions);\n this.activeIndex = enabled[0] ?? -1;\n }\n this.controller.focusSearchOrTrigger();\n };\n\n private activateFooterAction = (event: MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n this.dsFooterAction.emit();\n this.closePopup();\n };\n\n private readonly handleListKeyDown = this.controller.handleListKeyDown;\n private readonly handleTriggerKeyDown = this.controller.handleTriggerKeyDown;\n\n private renderOption(\n option: SelectOption,\n index: number,\n usesIcons: boolean,\n usesSubtext: boolean\n ) {\n const selected = this.multiple\n ? this.resolvedValues.includes(option.value)\n : option.value === this.scalarValue;\n const active = index === this.activeIndex;\n const actionId = `${this.generatedId}-option-action-${index}`;\n return (\n <ChoiceOptionRow\n size={this.size}\n id={`${this.generatedId}-option-${index}`}\n option={option}\n selected={selected}\n active={active}\n focusRingVisible={this.focusRingVisible}\n usesSubtext={usesSubtext}\n actionOpen={option.action?.surfaceOpen ?? option.action?.expanded}\n popupRole={this.popupRole}\n leading={\n this.multiple ? (\n <span\n class=\"ds-choice-item__icon ds-control-icon-box ds-interaction-fill__content\"\n aria-hidden=\"true\"\n >\n <ds-checkbox\n class=\"select-option__checkbox\"\n label=\"\"\n size={this.size}\n checked={selected}\n presentation\n />\n </span>\n ) : usesIcons && option.icon ? (\n <span\n class=\"ds-choice-item__icon ds-control-icon-box ds-interaction-fill__content\"\n aria-hidden=\"true\"\n >\n <ds-icon name={option.icon} size={this.size} color=\"inherit\" />\n </span>\n ) : undefined\n }\n supporting={\n option.subtextActions?.length ? (\n <span class=\"ds-choice-item__subtext ds-control-label-box select-option__subtext-actions\">\n {option.subtextActions.map((action, actionIndex) => [\n actionIndex > 0 ? (\n <ds-text\n class=\"select-option__subtext-action-separator\"\n as=\"span\"\n variant={CONTROL_SUPPORTING_TEXT_VARIANT[this.size]}\n color=\"inherit\"\n aria-hidden=\"true\"\n >\n ·\n </ds-text>\n ) : null,\n <button\n type=\"button\"\n class={{\n 'select-option__subtext-action': true,\n 'select-option__subtext-action--negative': action.tone === 'negative',\n 'ds-text-action': true,\n 'ds-focus-ring': true,\n }}\n onKeyDown={(event: KeyboardEvent) => event.stopPropagation()}\n onClick={(event: MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n this.dsOptionSubtextAction.emit({\n value: option.value,\n actionValue: action.value,\n originalEvent: event,\n });\n }}\n >\n <ds-text\n as=\"span\"\n variant={CONTROL_SUPPORTING_TEXT_VARIANT[this.size]}\n color=\"inherit\"\n >\n {action.label}\n </ds-text>\n </button>,\n ])}\n </span>\n ) : undefined\n }\n action={\n option.action ? (\n <ds-tooltip label={option.action.label} side=\"left\" size=\"sm\">\n <ds-button-unfilled\n id={actionId}\n variant=\"icon\"\n size={OPTION_ACTION_SIZE[this.size]}\n icon=\"Ellipses\"\n rounded\n hasBorder={false}\n activeFill={false}\n ariaLabel={option.action.label}\n haspopup=\"menu\"\n controls={option.action.controls}\n expanded={option.action.expanded}\n surfaceOpen={option.action.surfaceOpen}\n onKeyDown={event => {\n event.stopPropagation();\n if (event.key === 'Escape' || event.key === 'ArrowLeft') {\n event.preventDefault();\n this.controller.focusSearchOrTrigger();\n }\n }}\n onDsClick={(event: CustomEvent<MouseEvent>) => {\n event.stopPropagation();\n this.dsOptionAction.emit({\n value: option.value,\n anchorId: actionId,\n originalEvent: event.detail,\n });\n }}\n />\n </ds-tooltip>\n ) : undefined\n }\n onHover={() => {\n this.focusRingVisible = false;\n this.activeIndex = index;\n }}\n onSelect={() => this.selectOption(option)}\n />\n );\n }\n\n private get captionIconOnly(): boolean {\n return (\n (this.iconOnly || (this.collapseLabel && this.captionCompact)) &&\n Boolean(this.icon || this.isLoading)\n );\n }\n\n private get doubleInset(): boolean {\n return this.isInset && this.insetDepth === 'double' && this.size !== 'xs';\n }\n\n private syncCaptionCompactObserver(): void {\n this.disconnectCaptionCompactObserver();\n if (!this.collapseLabel) {\n if (this.captionCompact) this.captionCompact = false;\n return;\n }\n this.captionCompactDisconnect = observeTableCaptionCompact(this.el, compact => {\n if (this.captionCompact !== compact) this.captionCompact = compact;\n });\n }\n\n private disconnectCaptionCompactObserver(): void {\n this.captionCompactDisconnect?.();\n this.captionCompactDisconnect = undefined;\n }\n\n private renderCaptionTooltip(trigger: VNode, label: string): VNode {\n if (!this.collapseLabel) return trigger;\n return (\n <ds-tooltip label={label} side=\"top\" size=\"sm\">\n {trigger}\n </ds-tooltip>\n );\n }\n\n render() {\n const inactive = this.isDisabled;\n const showPlaceholder = !this.hasSelection;\n const count = this.resolvedValues.length;\n const label = this.multiple\n ? `${this.placeholder}${count > 0 ? ` · ${count}` : ''}`\n : showPlaceholder\n ? this.placeholder\n : (this.triggerLabel ?? this.selectedOption?.label);\n const textVariant = CONTROL_TEXT_VARIANT[this.size];\n const iconSize = ICON_SIZE[this.size];\n const usesOptionIcons = !this.multiple && choiceListUsesIcons(this.allOptions);\n const usesOptionSubtext = choiceListUsesSubtext(this.allOptions);\n const showError = this.error && Boolean(this.errorMessage);\n const describedBy =\n [this.ariaDescribedby, showError ? this.errorId : undefined].filter(Boolean).join(' ') ||\n undefined;\n const popupStyle = {\n position: 'fixed',\n left: '0',\n top: '0',\n transform: `translate(${Math.round(this.position.x)}px, ${Math.round(this.position.y)}px)`,\n zIndex: 'var(--dimension-z-index-floating)',\n visibility: this.positionReady ? 'visible' : 'hidden',\n };\n let flatIndex = 0;\n\n return (\n <Host\n class={{\n 'select-host': true,\n 'ds-select-trigger-host': true,\n 'select-host--multiple': this.multiple,\n 'ds-field-stack': true,\n 'ds-field-stack--supporting-inset': !this.hasBorder,\n 'ds-control-inactive': inactive,\n [`ds-control--${this.size}`]: true,\n 'ds-table-caption-control': this.collapseLabel,\n 'ds-table-caption-control--compact': this.captionIconOnly,\n ...controlWidthClass(this.width),\n [`select-host--background-${this.background}`]: !!this.background,\n [`ds-select-trigger-host--background-${this.background}`]: !!this.background,\n }}\n >\n {this.renderCaptionTooltip(\n <button\n ref={element => {\n this.controller.setTriggerElement((element as HTMLButtonElement) ?? null);\n }}\n id={this.inputId ?? this.generatedId}\n type=\"button\"\n class={{\n trigger: true,\n 'ds-control-frame': true,\n 'ds-focus-ring-inset': this.hasFocusRing,\n 'trigger--external-focus': !this.hasFocusRing,\n // The shared overlay also carries borders/focus; suppress only its wash.\n 'ds-interaction-fill': this.hasInteractionFill || this.hasBorder || this.hasFocusRing,\n 'trigger--external-fill': !this.hasInteractionFill,\n 'ds-interaction-fill--selected':\n this.hasInteractionFill && !inactive && this.activeFill && this.hasSelection,\n 'trigger--expanded': !inactive && this.open,\n 'ds-interaction-fill--surface-open':\n this.hasInteractionFill && !inactive && this.open,\n 'trigger--bordered': this.hasBorder,\n 'trigger--rounded': this.rounded,\n 'trigger--placeholder': showPlaceholder && !this.multiple,\n 'trigger--has-value': this.hasSelection && !this.neutralTrigger,\n 'trigger--label-placeholder':\n !this.multiple && Boolean(this.triggerLabel) && this.triggerLabelPlaceholder,\n 'wrapper--error': this.hasBorder && this.error,\n [`ds-control--${this.size}`]: true,\n 'ds-control--inset': this.isInset && !this.doubleInset,\n 'ds-control--inset-double': this.doubleInset,\n ...choiceBackgroundClassMap(this.background),\n }}\n disabled={inactive}\n role=\"combobox\"\n aria-haspopup={this.popupRole}\n aria-expanded={String(this.open)}\n aria-controls={this.open ? this.listboxId : undefined}\n aria-activedescendant={this.open && !this.searchable ? this.activeOptionId : undefined}\n aria-label={this.ariaLabel ?? (this.captionIconOnly ? label : undefined)}\n aria-labelledby={this.ariaLabelledby}\n aria-describedby={describedBy}\n aria-invalid={this.error ? 'true' : undefined}\n aria-required={this.required || undefined}\n aria-busy={this.isLoading ? 'true' : undefined}\n onClick={() => (this.open ? this.closePopup() : this.openPopup(false))}\n onKeyDown={event => {\n const action = this.visibleOptions[this.activeIndex]?.action;\n if (\n this.open &&\n action &&\n (event.key === 'ArrowRight' || (event.key === 'F10' && event.shiftKey))\n ) {\n event.preventDefault();\n document\n .getElementById(`${this.generatedId}-option-action-${this.activeIndex}`)\n ?.querySelector<HTMLElement>('button')\n ?.focus();\n return;\n }\n this.handleTriggerKeyDown(event);\n }}\n >\n {(this.icon || this.isLoading) && (\n <span\n class=\"trigger__prefix ds-control-icon-box ds-interaction-fill__content\"\n aria-hidden=\"true\"\n >\n {this.isLoading ? (\n <ds-loader size={iconSize} color=\"inherit\" />\n ) : (\n <ds-icon name={this.icon} size={iconSize} color=\"inherit\" />\n )}\n </span>\n )}\n {this.captionIconOnly ? null : (\n <span\n class={{\n 'trigger__label-box': true,\n 'ds-interaction-fill__content': true,\n }}\n >\n <span\n class={{\n 'trigger__label-content': true,\n 'ds-control-label-box': true,\n 'ds-control-label-dot': this.dot,\n 'trigger__label-content--dot': this.dot,\n }}\n >\n <ds-text\n class=\"trigger__label\"\n as=\"span\"\n variant={textVariant}\n color=\"inherit\"\n lineTruncation={1}\n >\n {label}\n </ds-text>\n {this.dot && (\n <ds-badge\n class=\"trigger__dot ds-control-label-dot__badge\"\n variant=\"dot\"\n hasRing={false}\n label=\"\"\n aria-hidden=\"true\"\n />\n )}\n </span>\n </span>\n )}\n {this.captionIconOnly || this.indicator === 'none' ? null : (\n <span\n class=\"trigger__chevron ds-control-icon-box ds-interaction-fill__content\"\n aria-hidden=\"true\"\n >\n <ds-icon\n name={this.indicator === 'up-down' ? 'ChevronUpDown' : 'ChevronDown'}\n size={iconSize}\n color=\"inherit\"\n />\n </span>\n )}\n </button>,\n this.captionIconOnly ? this.ariaLabel?.trim() || this.placeholder : ''\n )}\n\n {this.open && (\n <div\n popover=\"manual\"\n ref={element => {\n this.controller.setPopupElement((element as HTMLDivElement) ?? null);\n }}\n class=\"select-popup ds-choice-popup\"\n style={popupStyle}\n >\n {this.searchable && (\n <ChoiceSearch\n size={this.size}\n value={this.searchTerm}\n placeholder={this.searchPlaceholder}\n controls={this.listboxId}\n activeDescendant={this.activeOptionId}\n inputRef={this.controller.setSearchElement}\n clearLabel={this.clearLabel}\n onValueChange={value => {\n this.searchTerm = value;\n }}\n onKeyDown={event => this.handleListKeyDown(event)}\n />\n )}\n <div\n id={this.listboxId}\n class=\"ds-choice-list\"\n role={this.popupRole}\n aria-multiselectable={this.multiple ? 'true' : undefined}\n aria-label={this.ariaLabel ?? this.placeholder}\n aria-busy={this.isLoading ? 'true' : undefined}\n >\n {this.isLoading ? (\n <div\n class=\"ds-choice-loading ds-empty-region\"\n role={this.popupRole === 'grid' ? 'row' : 'option'}\n aria-selected=\"false\"\n aria-disabled=\"true\"\n aria-label={this.loadingLabel}\n aria-live=\"polite\"\n >\n {this.popupRole === 'grid' ? (\n <span role=\"gridcell\">\n <ds-loader size={this.size} color=\"inherit\" />\n </span>\n ) : (\n <ds-loader size={this.size} color=\"inherit\" />\n )}\n </div>\n ) : this.visibleOptions.length === 0 ? (\n <div\n class=\"ds-choice-empty ds-empty-region\"\n role={this.popupRole === 'grid' ? 'row' : 'option'}\n aria-selected=\"false\"\n aria-disabled=\"true\"\n aria-label={this.noResultsText}\n aria-live=\"polite\"\n >\n {this.popupRole === 'grid' ? (\n <span role=\"gridcell\">\n <ds-empty-state body={this.noResultsText} />\n </span>\n ) : (\n <ds-empty-state body={this.noResultsText} />\n )}\n </div>\n ) : (\n this.visibleSections.map((section, sectionIndex) => (\n <div\n class={{\n 'ds-choice-section': true,\n 'ds-chrome-column': true,\n 'ds-chrome-space--sm': true,\n 'ds-choice-section--divided': !!section.divider,\n 'ds-choice-section--headed-after-first':\n sectionIndex > 0 && Boolean(section.header),\n }}\n role={\n this.popupRole === 'grid' ? 'rowgroup' : section.header ? 'group' : undefined\n }\n aria-label={section.header}\n >\n {section.header && this.popupRole === 'grid' ? (\n <ds-text\n class={`ds-choice-section__header ds-control-section-heading ds-control--${this.size}`}\n as=\"span\"\n variant={CONTROL_SUPPORTING_TEXT_VARIANT[this.size]}\n emphasis\n color=\"primary\"\n role=\"row\"\n >\n <span class=\"ds-choice-section__header-label\" role=\"gridcell\">\n {section.header}\n </span>\n </ds-text>\n ) : section.header ? (\n <ds-text\n class={`ds-choice-section__header ds-control-section-heading ds-control--${this.size}`}\n as=\"span\"\n variant={CONTROL_SUPPORTING_TEXT_VARIANT[this.size]}\n emphasis\n color=\"primary\"\n aria-hidden=\"true\"\n >\n <span class=\"ds-choice-section__header-label\">{section.header}</span>\n </ds-text>\n ) : null}\n {section.options.map(option =>\n this.renderOption(option, flatIndex++, usesOptionIcons, usesOptionSubtext)\n )}\n </div>\n ))\n )}\n </div>\n {this.footerActionLabel && !this.isLoading ? (\n <ChoiceActionFooter\n size={this.size}\n label={this.footerActionLabel}\n onAction={this.activateFooterAction}\n />\n ) : this.allowClear && this.hasSelection && !this.isLoading ? (\n <ChoiceFooter\n size={this.size}\n summary={this.multiple ? `${count} ${this.selectedLabel}` : undefined}\n compactSummary={this.multiple ? String(count) : undefined}\n useCompactSummary={this.compactFooterSummary}\n contentRef={element => {\n this.footerContentElement = element ?? undefined;\n }}\n summaryMeasureRef={element => {\n this.footerSummaryMeasureElement = element ?? undefined;\n }}\n clearRef={element => {\n this.footerClearElement = element ?? undefined;\n }}\n clearLabel={this.clearLabel}\n onClear={this.clearSelection}\n />\n ) : null}\n </div>\n )}\n\n {showError && (\n <ds-text\n class=\"error-text\"\n as=\"div\"\n variant=\"text-body-small\"\n color=\"negative\"\n textId={this.errorId}\n role=\"alert\"\n >\n {this.errorMessage}\n </ds-text>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2026-10-04T15:00:34",
2
+ "timestamp": "2026-10-13T18:45:03",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.45.1",
@@ -137,7 +137,7 @@
137
137
  "peerDependencies": {
138
138
  "required": [
139
139
  "@ds-mo/tokens ^9.0.0",
140
- "@ds-mo/icons ^8.2.1"
140
+ "@ds-mo/icons ^8.2.2"
141
141
  ],
142
142
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
143
143
  }
@@ -242,7 +242,7 @@
242
242
  "peerDependencies": {
243
243
  "required": [
244
244
  "@ds-mo/tokens ^9.0.0",
245
- "@ds-mo/icons ^8.2.1"
245
+ "@ds-mo/icons ^8.2.2"
246
246
  ],
247
247
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
248
248
  }
@@ -268,7 +268,7 @@
268
268
  "peerDependencies": {
269
269
  "required": [
270
270
  "@ds-mo/tokens ^9.0.0",
271
- "@ds-mo/icons ^8.2.1"
271
+ "@ds-mo/icons ^8.2.2"
272
272
  ],
273
273
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
274
274
  }
@@ -153,7 +153,7 @@
153
153
  "peerDependencies": {
154
154
  "required": [
155
155
  "@ds-mo/tokens ^9.0.0",
156
- "@ds-mo/icons ^8.2.1"
156
+ "@ds-mo/icons ^8.2.2"
157
157
  ],
158
158
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
159
159
  }
@@ -253,7 +253,7 @@
253
253
  "peerDependencies": {
254
254
  "required": [
255
255
  "@ds-mo/tokens ^9.0.0",
256
- "@ds-mo/icons ^8.2.1"
256
+ "@ds-mo/icons ^8.2.2"
257
257
  ],
258
258
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
259
259
  }
@@ -117,7 +117,7 @@
117
117
  "peerDependencies": {
118
118
  "required": [
119
119
  "@ds-mo/tokens ^9.0.0",
120
- "@ds-mo/icons ^8.2.1"
120
+ "@ds-mo/icons ^8.2.2"
121
121
  ],
122
122
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
123
123
  }
@@ -169,7 +169,7 @@
169
169
  "peerDependencies": {
170
170
  "required": [
171
171
  "@ds-mo/tokens ^9.0.0",
172
- "@ds-mo/icons ^8.2.1"
172
+ "@ds-mo/icons ^8.2.2"
173
173
  ],
174
174
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
175
175
  }
@@ -292,7 +292,7 @@
292
292
  "peerDependencies": {
293
293
  "required": [
294
294
  "@ds-mo/tokens ^9.0.0",
295
- "@ds-mo/icons ^8.2.1"
295
+ "@ds-mo/icons ^8.2.2"
296
296
  ],
297
297
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
298
298
  }
@@ -343,7 +343,7 @@
343
343
  "peerDependencies": {
344
344
  "required": [
345
345
  "@ds-mo/tokens ^9.0.0",
346
- "@ds-mo/icons ^8.2.1"
346
+ "@ds-mo/icons ^8.2.2"
347
347
  ],
348
348
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
349
349
  }
@@ -245,7 +245,7 @@
245
245
  "peerDependencies": {
246
246
  "required": [
247
247
  "@ds-mo/tokens ^9.0.0",
248
- "@ds-mo/icons ^8.2.1"
248
+ "@ds-mo/icons ^8.2.2"
249
249
  ],
250
250
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
251
251
  }
@@ -292,7 +292,7 @@
292
292
  "peerDependencies": {
293
293
  "required": [
294
294
  "@ds-mo/tokens ^9.0.0",
295
- "@ds-mo/icons ^8.2.1"
295
+ "@ds-mo/icons ^8.2.2"
296
296
  ],
297
297
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
298
298
  }
@@ -422,7 +422,7 @@
422
422
  "peerDependencies": {
423
423
  "required": [
424
424
  "@ds-mo/tokens ^9.0.0",
425
- "@ds-mo/icons ^8.2.1"
425
+ "@ds-mo/icons ^8.2.2"
426
426
  ],
427
427
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
428
428
  }
@@ -565,7 +565,7 @@
565
565
  "peerDependencies": {
566
566
  "required": [
567
567
  "@ds-mo/tokens ^9.0.0",
568
- "@ds-mo/icons ^8.2.1"
568
+ "@ds-mo/icons ^8.2.2"
569
569
  ],
570
570
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
571
571
  }
@@ -380,7 +380,7 @@
380
380
  "peerDependencies": {
381
381
  "required": [
382
382
  "@ds-mo/tokens ^9.0.0",
383
- "@ds-mo/icons ^8.2.1"
383
+ "@ds-mo/icons ^8.2.2"
384
384
  ],
385
385
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
386
386
  }
@@ -182,7 +182,7 @@
182
182
  "peerDependencies": {
183
183
  "required": [
184
184
  "@ds-mo/tokens ^9.0.0",
185
- "@ds-mo/icons ^8.2.1"
185
+ "@ds-mo/icons ^8.2.2"
186
186
  ],
187
187
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
188
188
  }
@@ -696,7 +696,7 @@
696
696
  "peerDependencies": {
697
697
  "required": [
698
698
  "@ds-mo/tokens ^9.0.0",
699
- "@ds-mo/icons ^8.2.1"
699
+ "@ds-mo/icons ^8.2.2"
700
700
  ],
701
701
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
702
702
  }
@@ -611,7 +611,7 @@
611
611
  "peerDependencies": {
612
612
  "required": [
613
613
  "@ds-mo/tokens ^9.0.0",
614
- "@ds-mo/icons ^8.2.1"
614
+ "@ds-mo/icons ^8.2.2"
615
615
  ],
616
616
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
617
617
  }
@@ -776,7 +776,7 @@
776
776
  "peerDependencies": {
777
777
  "required": [
778
778
  "@ds-mo/tokens ^9.0.0",
779
- "@ds-mo/icons ^8.2.1"
779
+ "@ds-mo/icons ^8.2.2"
780
780
  ],
781
781
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
782
782
  }
@@ -252,7 +252,7 @@
252
252
  "peerDependencies": {
253
253
  "required": [
254
254
  "@ds-mo/tokens ^9.0.0",
255
- "@ds-mo/icons ^8.2.1"
255
+ "@ds-mo/icons ^8.2.2"
256
256
  ],
257
257
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
258
258
  }
@@ -218,7 +218,7 @@
218
218
  "peerDependencies": {
219
219
  "required": [
220
220
  "@ds-mo/tokens ^9.0.0",
221
- "@ds-mo/icons ^8.2.1"
221
+ "@ds-mo/icons ^8.2.2"
222
222
  ],
223
223
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
224
224
  }
@@ -296,7 +296,7 @@
296
296
  "peerDependencies": {
297
297
  "required": [
298
298
  "@ds-mo/tokens ^9.0.0",
299
- "@ds-mo/icons ^8.2.1"
299
+ "@ds-mo/icons ^8.2.2"
300
300
  ],
301
301
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
302
302
  }
@@ -291,7 +291,7 @@
291
291
  "peerDependencies": {
292
292
  "required": [
293
293
  "@ds-mo/tokens ^9.0.0",
294
- "@ds-mo/icons ^8.2.1"
294
+ "@ds-mo/icons ^8.2.2"
295
295
  ],
296
296
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
297
297
  }
@@ -397,7 +397,7 @@
397
397
  "peerDependencies": {
398
398
  "required": [
399
399
  "@ds-mo/tokens ^9.0.0",
400
- "@ds-mo/icons ^8.2.1"
400
+ "@ds-mo/icons ^8.2.2"
401
401
  ],
402
402
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
403
403
  }
@@ -358,7 +358,7 @@
358
358
  "peerDependencies": {
359
359
  "required": [
360
360
  "@ds-mo/tokens ^9.0.0",
361
- "@ds-mo/icons ^8.2.1"
361
+ "@ds-mo/icons ^8.2.2"
362
362
  ],
363
363
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
364
364
  }
@@ -346,7 +346,7 @@
346
346
  "peerDependencies": {
347
347
  "required": [
348
348
  "@ds-mo/tokens ^9.0.0",
349
- "@ds-mo/icons ^8.2.1"
349
+ "@ds-mo/icons ^8.2.2"
350
350
  ],
351
351
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
352
352
  }
@@ -278,7 +278,7 @@
278
278
  "peerDependencies": {
279
279
  "required": [
280
280
  "@ds-mo/tokens ^9.0.0",
281
- "@ds-mo/icons ^8.2.1"
281
+ "@ds-mo/icons ^8.2.2"
282
282
  ],
283
283
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
284
284
  }
@@ -240,7 +240,7 @@
240
240
  "peerDependencies": {
241
241
  "required": [
242
242
  "@ds-mo/tokens ^9.0.0",
243
- "@ds-mo/icons ^8.2.1"
243
+ "@ds-mo/icons ^8.2.2"
244
244
  ],
245
245
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
246
246
  }
@@ -228,7 +228,7 @@
228
228
  "peerDependencies": {
229
229
  "required": [
230
230
  "@ds-mo/tokens ^9.0.0",
231
- "@ds-mo/icons ^8.2.1"
231
+ "@ds-mo/icons ^8.2.2"
232
232
  ],
233
233
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
234
234
  }
@@ -430,7 +430,7 @@
430
430
  "peerDependencies": {
431
431
  "required": [
432
432
  "@ds-mo/tokens ^9.0.0",
433
- "@ds-mo/icons ^8.2.1"
433
+ "@ds-mo/icons ^8.2.2"
434
434
  ],
435
435
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
436
436
  }
@@ -338,7 +338,7 @@
338
338
  "peerDependencies": {
339
339
  "required": [
340
340
  "@ds-mo/tokens ^9.0.0",
341
- "@ds-mo/icons ^8.2.1"
341
+ "@ds-mo/icons ^8.2.2"
342
342
  ],
343
343
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
344
344
  }
@@ -164,7 +164,7 @@
164
164
  "peerDependencies": {
165
165
  "required": [
166
166
  "@ds-mo/tokens ^9.0.0",
167
- "@ds-mo/icons ^8.2.1"
167
+ "@ds-mo/icons ^8.2.2"
168
168
  ],
169
169
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
170
170
  }
@@ -302,7 +302,7 @@
302
302
  "peerDependencies": {
303
303
  "required": [
304
304
  "@ds-mo/tokens ^9.0.0",
305
- "@ds-mo/icons ^8.2.1"
305
+ "@ds-mo/icons ^8.2.2"
306
306
  ],
307
307
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
308
308
  }
@@ -139,7 +139,7 @@
139
139
  "peerDependencies": {
140
140
  "required": [
141
141
  "@ds-mo/tokens ^9.0.0",
142
- "@ds-mo/icons ^8.2.1"
142
+ "@ds-mo/icons ^8.2.2"
143
143
  ],
144
144
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
145
145
  }
@@ -113,7 +113,7 @@
113
113
  "peerDependencies": {
114
114
  "required": [
115
115
  "@ds-mo/tokens ^9.0.0",
116
- "@ds-mo/icons ^8.2.1"
116
+ "@ds-mo/icons ^8.2.2"
117
117
  ],
118
118
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
119
119
  }
@@ -370,7 +370,7 @@
370
370
  "peerDependencies": {
371
371
  "required": [
372
372
  "@ds-mo/tokens ^9.0.0",
373
- "@ds-mo/icons ^8.2.1"
373
+ "@ds-mo/icons ^8.2.2"
374
374
  ],
375
375
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
376
376
  }
@@ -488,7 +488,7 @@
488
488
  "peerDependencies": {
489
489
  "required": [
490
490
  "@ds-mo/tokens ^9.0.0",
491
- "@ds-mo/icons ^8.2.1"
491
+ "@ds-mo/icons ^8.2.2"
492
492
  ],
493
493
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
494
494
  }
@@ -352,7 +352,7 @@
352
352
  "peerDependencies": {
353
353
  "required": [
354
354
  "@ds-mo/tokens ^9.0.0",
355
- "@ds-mo/icons ^8.2.1"
355
+ "@ds-mo/icons ^8.2.2"
356
356
  ],
357
357
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
358
358
  }
@@ -574,7 +574,7 @@
574
574
  "peerDependencies": {
575
575
  "required": [
576
576
  "@ds-mo/tokens ^9.0.0",
577
- "@ds-mo/icons ^8.2.1"
577
+ "@ds-mo/icons ^8.2.2"
578
578
  ],
579
579
  "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
580
580
  }