@ds-mo/ui 16.1.3 → 16.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.package-ready.json +1 -1
- package/dist/agent-patterns.json +1 -1
- package/dist/agent.json +574 -3
- package/dist/angular/ds-disclosure.d.ts +18 -0
- package/dist/angular/ds-disclosure.js +42 -0
- package/dist/angular/ds-drawer.d.ts +40 -0
- package/dist/angular/ds-drawer.js +54 -0
- package/dist/angular/ds-popover.d.ts +24 -0
- package/dist/angular/ds-popover.js +45 -0
- package/dist/angular/index.d.ts +1 -1
- package/dist/angular/index.js +3 -0
- package/dist/angular/proxies.d.ts +3 -0
- package/dist/angular/proxies.js +3 -0
- package/dist/components/ds-agent-activity.js +1 -1
- package/dist/components/ds-agent-questionnaire.js +1 -1
- package/dist/components/ds-agent-response.js +1 -1
- package/dist/components/ds-agent-source-list.js +1 -1
- package/dist/components/ds-agent-tool-call.js +1 -1
- package/dist/components/ds-attachment-list.js +1 -1
- package/dist/components/ds-badge.js +1 -1
- package/dist/components/ds-banner.js +1 -1
- package/dist/components/ds-bar-action.js +1 -1
- package/dist/components/ds-bar-nav.js +1 -1
- package/dist/components/ds-bar-page-title.js +1 -1
- package/dist/components/ds-bar-title.js +1 -1
- package/dist/components/ds-bar-workflow.js +1 -1
- package/dist/components/ds-breadcrumb.js +1 -1
- package/dist/components/ds-button-filled.js +1 -1
- package/dist/components/ds-button-inverted.js +1 -1
- package/dist/components/ds-button-unfilled.js +1 -1
- package/dist/components/ds-calendar.js +1 -1
- package/dist/components/ds-card-action-center.js +1 -1
- package/dist/components/ds-card-chart.js +1 -1
- package/dist/components/ds-card-navigation.js +1 -1
- package/dist/components/ds-card-overview.js +1 -1
- package/dist/components/ds-card-setting.js +1 -1
- package/dist/components/ds-card-settings-scope.js +1 -1
- package/dist/components/ds-chart-legend.js +1 -1
- package/dist/components/ds-chart.js +1 -1
- package/dist/components/ds-checkbox-group.js +1 -1
- package/dist/components/ds-checkbox.js +1 -1
- package/dist/components/ds-chip.js +1 -1
- package/dist/components/ds-code-block.js +1 -1
- package/dist/components/ds-conversation-list-item.js +1 -1
- package/dist/components/ds-conversation-list-section.js +1 -1
- package/dist/components/ds-conversation-list.js +1 -1
- package/dist/components/ds-data-customize.js +1 -1
- package/dist/components/ds-data-filter.js +1 -1
- package/dist/components/ds-data-group.js +1 -1
- package/dist/components/ds-data-preferences.js +1 -1
- package/dist/components/ds-data-preferences.js.map +1 -1
- package/dist/components/ds-data-saved-views.js +1 -1
- package/dist/components/ds-data-search.js +1 -1
- package/dist/components/ds-data-search.js.map +1 -1
- package/dist/components/ds-data-sort.js +1 -1
- package/dist/components/ds-data-toolbar.js +1 -1
- package/dist/components/ds-disclosure.d.ts +11 -0
- package/dist/components/ds-disclosure.js +2 -0
- package/dist/components/ds-disclosure.js.map +1 -0
- package/dist/components/ds-divider.js +1 -1
- package/dist/components/ds-drawer.d.ts +11 -0
- package/dist/components/ds-drawer.js +2 -0
- package/dist/components/ds-drawer.js.map +1 -0
- package/dist/components/ds-empty-state.js +1 -1
- package/dist/components/ds-field.js +1 -1
- package/dist/components/ds-filter-menu.js +1 -1
- package/dist/components/ds-inline-banner-settings.js +1 -1
- package/dist/components/ds-input-date.js +1 -1
- package/dist/components/ds-input-time.js +1 -1
- package/dist/components/ds-input.js +1 -1
- package/dist/components/ds-map-cluster-marker.js +1 -1
- package/dist/components/ds-map-entity-marker.js +1 -1
- package/dist/components/ds-map-marker.js +1 -1
- package/dist/components/ds-markdown.js +1 -1
- package/dist/components/ds-menu.js +1 -1
- package/dist/components/ds-message-actions.js +1 -1
- package/dist/components/ds-message-bubble.js +1 -1
- package/dist/components/ds-message-composer.js +1 -1
- package/dist/components/ds-message-scroller.js +1 -1
- package/dist/components/ds-message.js +1 -1
- package/dist/components/ds-mobile-bar-nav.js +1 -1
- package/dist/components/ds-mobile-header.js +1 -1
- package/dist/components/ds-mobile-section-switcher.js +1 -1
- package/dist/components/ds-mobile-sheet-nav.js +1 -1
- package/dist/components/ds-modal.js +1 -1
- package/dist/components/ds-navigation-tab-group.js +1 -1
- package/dist/components/ds-pagination.js +1 -1
- package/dist/components/ds-panel-nav.js +1 -1
- package/dist/components/ds-panel-sub-nav.js +1 -1
- package/dist/components/ds-panel-tool-header.js +1 -1
- package/dist/components/ds-panel-tool-search.js +1 -1
- package/dist/components/ds-panel-tools.js +1 -1
- package/dist/components/ds-paper-texture.js +1 -1
- package/dist/components/ds-popover.d.ts +11 -0
- package/dist/components/ds-popover.js +2 -0
- package/dist/components/ds-popover.js.map +1 -0
- package/dist/components/ds-radio-tile.js +1 -1
- package/dist/components/ds-radio.js +1 -1
- package/dist/components/ds-score.js +1 -1
- package/dist/components/ds-scroll-overlay.js +1 -1
- package/dist/components/ds-select-toggle.js +1 -1
- package/dist/components/ds-select.js +1 -1
- package/dist/components/ds-setting-row-checkbox.js +1 -1
- package/dist/components/ds-setting-row-radio.js +1 -1
- package/dist/components/ds-setting-row-radio.js.map +1 -1
- package/dist/components/ds-setting-row-toggle.js +1 -1
- package/dist/components/ds-shell-app.js +1 -1
- package/dist/components/ds-shell-app.js.map +1 -1
- package/dist/components/ds-shell-page.js +1 -1
- package/dist/components/ds-shell-tools.js +1 -1
- package/dist/components/ds-skeleton.js +1 -1
- package/dist/components/ds-slider.js +1 -1
- package/dist/components/ds-swatch-picker.js +1 -1
- package/dist/components/ds-switch.js +1 -1
- package/dist/components/ds-tab-group.js +1 -1
- package/dist/components/ds-table.js +1 -1
- package/dist/components/ds-tag.js +1 -1
- package/dist/components/ds-text.js +1 -1
- package/dist/components/ds-textarea.js +1 -1
- package/dist/components/ds-time-picker.js +1 -1
- package/dist/components/ds-toast.js +1 -1
- package/dist/components/ds-toast.js.map +1 -1
- package/dist/components/ds-tooltip-chart.js +1 -1
- package/dist/components/ds-tooltip.js +1 -1
- package/dist/components/ds-typing-indicator.js +1 -1
- package/dist/components/{p-D-Lo5uuI.js → p-3_LHRdqq.js} +2 -2
- package/dist/components/{p-Cc8p57pS.js → p-9EjkmESv.js} +2 -2
- package/dist/components/{p-CQnjpuMX.js → p-9PpepIfc.js} +2 -2
- package/dist/components/{p-C860ilDn.js → p-A47UHyiC.js} +2 -2
- package/dist/components/p-BCzvtlR2.js +2 -0
- package/dist/components/{p-D3FrQk7o.js.map → p-BCzvtlR2.js.map} +1 -1
- package/dist/components/{p-ClOvX8cD.js → p-BEj9uENH.js} +2 -2
- package/dist/components/{p-CtomYv1z.js → p-BJmAAyRk.js} +2 -2
- package/dist/components/{p-Bt1Ybvz-.js → p-BQ6p3LFP.js} +2 -2
- package/dist/components/{p-DiNEjFpy.js → p-BbndBzzZ.js} +2 -2
- package/dist/components/{p-hFe35P2l.js → p-Bg1UmSZn.js} +2 -2
- package/dist/components/{p-ClhfXMaD.js → p-Bn-cskPo.js} +2 -2
- package/dist/components/p-Bz9dI7nI.js +2 -0
- package/dist/components/{p-Dc_zSOKq.js.map → p-Bz9dI7nI.js.map} +1 -1
- package/dist/components/{p-D538svhW.js → p-C0-sabnr.js} +2 -2
- package/dist/components/{p-DQ-wfTOw.js → p-C11CnHDl.js} +2 -2
- package/dist/components/{p-xszHlNkG.js → p-C68nt4dl.js} +2 -2
- package/dist/components/p-C8UThLHd.js +2 -0
- package/dist/components/{p-CsGkdf4W.js.map → p-C8UThLHd.js.map} +1 -1
- package/dist/components/p-C8WKo0sf.js +2 -0
- package/dist/components/{p-D8iNLSCa.js.map → p-C8WKo0sf.js.map} +1 -1
- package/dist/components/p-CAYqnjyC.js +2 -0
- package/dist/components/{p-oBBzQpg_.js.map → p-CAYqnjyC.js.map} +1 -1
- package/dist/components/{p-G6r6yYg8.js → p-CBezgJ3r.js} +2 -2
- package/dist/components/p-CF6Px2b2.js +2 -0
- package/dist/components/{p-omfGVBEt.js.map → p-CF6Px2b2.js.map} +1 -1
- package/dist/components/{p-CMZAEySh.js → p-CVSE2Ool.js} +2 -2
- package/dist/components/{p-KTaiJztz.js → p-CVuSm1Sh.js} +2 -2
- package/dist/components/{p-BNvZM4jP.js → p-CZVoCdYE.js} +2 -2
- package/dist/components/{p-BYo1-6b5.js → p-CeACJYcU.js} +2 -2
- package/dist/components/{p-lnCWfvuA.js → p-Cjw63BmX.js} +2 -2
- package/dist/components/{p-N-2CZze7.js → p-CkUF45d_.js} +2 -2
- package/dist/components/{p-CbyZ7BDJ.js → p-ClRd39mR.js} +2 -2
- package/dist/components/{p-Nx52go85.js → p-Cn6Ud58k.js} +2 -2
- package/dist/components/{p-BFgJoeVV.js → p-D3r_5Fw-.js} +2 -2
- package/dist/components/p-DCqDQWVK.js +2 -0
- package/dist/components/{p-BuvVFyAA.js.map → p-DCqDQWVK.js.map} +1 -1
- package/dist/components/{p-CXrOGz7X.js → p-DIXpyBWB.js} +2 -2
- package/dist/components/{p-1lWK_LMY.js → p-DJtohrKV.js} +2 -2
- package/dist/components/{p-D5-hqLPK.js → p-DKL7n7NM.js} +2 -2
- package/dist/components/{p-DYI6UlOP.js → p-D_CfgH1L.js} +2 -2
- package/dist/components/{p-P2-eHQJU.js → p-D_N38YjY.js} +2 -2
- package/dist/components/p-Dalq5voO.js +2 -0
- package/dist/components/{p-ClgJZFkb.js.map → p-Dalq5voO.js.map} +1 -1
- package/dist/components/{p-DMPn_dt7.js → p-DcwgXLe-.js} +2 -2
- package/dist/components/{p-BckLHaey.js → p-DpA8UeSy.js} +2 -2
- package/dist/components/{p-hom6svhE.js → p-DtNCj4p0.js} +2 -2
- package/dist/components/{p-pkJ3X3s7.js → p-Dwga8azB.js} +2 -2
- package/dist/components/{p-CGtq7TnC.js → p-LFHrICnV.js} +2 -2
- package/dist/components/p-LQGcTdiv.js +2 -0
- package/dist/components/{p-BI-XuQKW.js.map → p-LQGcTdiv.js.map} +1 -1
- package/dist/components/{p-BoWpIl_m.js → p-N8tEOYt8.js} +2 -2
- package/dist/components/{p-CbJx9swS.js → p-QU-CyuBt.js} +2 -2
- package/dist/components/p-QYI9nW7a.js +2 -0
- package/dist/components/p-QYI9nW7a.js.map +1 -0
- package/dist/components/{p-DcvPY30Q.js → p-X-GPE9bP.js} +2 -2
- package/dist/components/{p-CnsuVR2e.js → p-cOkFnnZV.js} +2 -2
- package/dist/components/{p-BctjNfzt.js → p-c_qWiZ6V.js} +2 -2
- package/dist/components/{p-M-Sxsv7V.js → p-dVdTdZdu.js} +2 -2
- package/dist/components/{p-CE_S4oQ_.js → p-hHtKJMVu.js} +2 -2
- package/dist/components/{p-6r60E0i4.js → p-snYhfM1q.js} +2 -2
- package/dist/components/p-xHv_RGJh.js +2 -0
- package/dist/components/p-xHv_RGJh.js.map +1 -0
- package/dist/components/{p-cvVUXaen.js → p-zGd26CTX.js} +2 -2
- package/dist/docs/components.json +1291 -1
- package/dist/lint/index.js +1 -1
- package/dist/mcp-data/registry/disclosure.json +282 -0
- package/dist/mcp-data/registry/drawer.json +567 -0
- package/dist/mcp-data/registry/popover.json +385 -0
- package/dist/mcp-data/registry/registry.json +582 -2
- package/dist/mcp-data/registry/shell-app.json +6 -4
- package/dist/react/components.d.ts +3 -0
- package/dist/react/components.js +3 -0
- package/dist/react/ds-disclosure.d.ts +12 -0
- package/dist/react/ds-disclosure.js +12 -0
- package/dist/react/ds-drawer.d.ts +16 -0
- package/dist/react/ds-drawer.js +18 -0
- package/dist/react/ds-popover.d.ts +13 -0
- package/dist/react/ds-popover.js +15 -0
- package/dist/types/components/Disclosure/Disclosure.d.ts +22 -0
- package/dist/types/components/Drawer/Drawer.d.ts +123 -0
- package/dist/types/components/Popover/Popover.d.ts +64 -0
- package/dist/types/components.d.ts +423 -0
- package/dist/vue/components.d.ts +3 -0
- package/dist/vue/components.js +3 -0
- package/dist/vue/ds-disclosure.d.ts +3 -0
- package/dist/vue/ds-disclosure.js +15 -0
- package/dist/vue/ds-drawer.d.ts +3 -0
- package/dist/vue/ds-drawer.js +34 -0
- package/dist/vue/ds-popover.d.ts +3 -0
- package/dist/vue/ds-popover.js +21 -0
- package/package.json +1 -1
- package/dist/components/p-BI-XuQKW.js +0 -2
- package/dist/components/p-BuvVFyAA.js +0 -2
- package/dist/components/p-ClgJZFkb.js +0 -2
- package/dist/components/p-CsGkdf4W.js +0 -2
- package/dist/components/p-D3FrQk7o.js +0 -2
- package/dist/components/p-D8iNLSCa.js +0 -2
- package/dist/components/p-DTlNtCX1.js +0 -2
- package/dist/components/p-DTlNtCX1.js.map +0 -1
- package/dist/components/p-Dc_zSOKq.js +0 -2
- package/dist/components/p-oBBzQpg_.js +0 -2
- package/dist/components/p-omfGVBEt.js +0 -2
- /package/dist/components/{p-D-Lo5uuI.js.map → p-3_LHRdqq.js.map} +0 -0
- /package/dist/components/{p-Cc8p57pS.js.map → p-9EjkmESv.js.map} +0 -0
- /package/dist/components/{p-CQnjpuMX.js.map → p-9PpepIfc.js.map} +0 -0
- /package/dist/components/{p-C860ilDn.js.map → p-A47UHyiC.js.map} +0 -0
- /package/dist/components/{p-ClOvX8cD.js.map → p-BEj9uENH.js.map} +0 -0
- /package/dist/components/{p-CtomYv1z.js.map → p-BJmAAyRk.js.map} +0 -0
- /package/dist/components/{p-Bt1Ybvz-.js.map → p-BQ6p3LFP.js.map} +0 -0
- /package/dist/components/{p-DiNEjFpy.js.map → p-BbndBzzZ.js.map} +0 -0
- /package/dist/components/{p-hFe35P2l.js.map → p-Bg1UmSZn.js.map} +0 -0
- /package/dist/components/{p-ClhfXMaD.js.map → p-Bn-cskPo.js.map} +0 -0
- /package/dist/components/{p-D538svhW.js.map → p-C0-sabnr.js.map} +0 -0
- /package/dist/components/{p-DQ-wfTOw.js.map → p-C11CnHDl.js.map} +0 -0
- /package/dist/components/{p-xszHlNkG.js.map → p-C68nt4dl.js.map} +0 -0
- /package/dist/components/{p-G6r6yYg8.js.map → p-CBezgJ3r.js.map} +0 -0
- /package/dist/components/{p-CMZAEySh.js.map → p-CVSE2Ool.js.map} +0 -0
- /package/dist/components/{p-KTaiJztz.js.map → p-CVuSm1Sh.js.map} +0 -0
- /package/dist/components/{p-BNvZM4jP.js.map → p-CZVoCdYE.js.map} +0 -0
- /package/dist/components/{p-BYo1-6b5.js.map → p-CeACJYcU.js.map} +0 -0
- /package/dist/components/{p-lnCWfvuA.js.map → p-Cjw63BmX.js.map} +0 -0
- /package/dist/components/{p-N-2CZze7.js.map → p-CkUF45d_.js.map} +0 -0
- /package/dist/components/{p-CbyZ7BDJ.js.map → p-ClRd39mR.js.map} +0 -0
- /package/dist/components/{p-Nx52go85.js.map → p-Cn6Ud58k.js.map} +0 -0
- /package/dist/components/{p-BFgJoeVV.js.map → p-D3r_5Fw-.js.map} +0 -0
- /package/dist/components/{p-CXrOGz7X.js.map → p-DIXpyBWB.js.map} +0 -0
- /package/dist/components/{p-1lWK_LMY.js.map → p-DJtohrKV.js.map} +0 -0
- /package/dist/components/{p-D5-hqLPK.js.map → p-DKL7n7NM.js.map} +0 -0
- /package/dist/components/{p-DYI6UlOP.js.map → p-D_CfgH1L.js.map} +0 -0
- /package/dist/components/{p-P2-eHQJU.js.map → p-D_N38YjY.js.map} +0 -0
- /package/dist/components/{p-DMPn_dt7.js.map → p-DcwgXLe-.js.map} +0 -0
- /package/dist/components/{p-BckLHaey.js.map → p-DpA8UeSy.js.map} +0 -0
- /package/dist/components/{p-hom6svhE.js.map → p-DtNCj4p0.js.map} +0 -0
- /package/dist/components/{p-pkJ3X3s7.js.map → p-Dwga8azB.js.map} +0 -0
- /package/dist/components/{p-CGtq7TnC.js.map → p-LFHrICnV.js.map} +0 -0
- /package/dist/components/{p-BoWpIl_m.js.map → p-N8tEOYt8.js.map} +0 -0
- /package/dist/components/{p-CbJx9swS.js.map → p-QU-CyuBt.js.map} +0 -0
- /package/dist/components/{p-DcvPY30Q.js.map → p-X-GPE9bP.js.map} +0 -0
- /package/dist/components/{p-CnsuVR2e.js.map → p-cOkFnnZV.js.map} +0 -0
- /package/dist/components/{p-BctjNfzt.js.map → p-c_qWiZ6V.js.map} +0 -0
- /package/dist/components/{p-M-Sxsv7V.js.map → p-dVdTdZdu.js.map} +0 -0
- /package/dist/components/{p-CE_S4oQ_.js.map → p-hHtKJMVu.js.map} +0 -0
- /package/dist/components/{p-6r60E0i4.js.map → p-snYhfM1q.js.map} +0 -0
- /package/dist/components/{p-cvVUXaen.js.map → p-zGd26CTX.js.map} +0 -0
|
@@ -1 +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
|
+
{"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,2 +1,2 @@
|
|
|
1
|
-
import{p as i,H as o,c as s,h as n,a as r,t as e}from"./index.js";import{d as c}from"./p-C942uiH1.js";import{d as t}from"./p-DMPn_dt7.js";import{C as d}from"./p-CuwopElg.js";const a=()=>`.ds-control--lg.sc-ds-chip,.ds-control--lg.sc-ds-chip-h,.ds-control--md.sc-ds-chip-h,.ds-control--md.sc-ds-chip,.ds-control--sm.sc-ds-chip-h,.ds-control--sm.sc-ds-chip,.ds-control--xs.sc-ds-chip-h,.ds-control--xs.sc-ds-chip{--ds-control-radius:var(--ds-radius-control)}.ds-control--lg.sc-ds-chip-h,.ds-control--lg.sc-ds-chip{--ds-control-height:var(--dimension-size-500);--ds-control-icon:var(--dimension-iconography-lg);--ds-control-padding-inline:var(--dimension-space-100);--ds-control-label-inset:var(--dimension-space-050);--ds-control-gap:var(--dimension-space-050)}.ds-control--md.sc-ds-chip-h,.ds-control--md.sc-ds-chip{--ds-control-height:var(--dimension-size-400);--ds-control-icon:var(--dimension-iconography-md);--ds-control-padding-inline:var(--dimension-space-075);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-050)}.ds-control--sm.sc-ds-chip-h,.ds-control--sm.sc-ds-chip{--ds-control-height:var(--dimension-size-300);--ds-control-icon:var(--dimension-iconography-sm);--ds-control-padding-inline:var(--dimension-space-050);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-025)}.ds-control--xs.sc-ds-chip-h,.ds-control--xs.sc-ds-chip{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0}@media (forced-colors: active){.sc-ds-chip:root,.sc-ds-chip-h,.ds-forced-colors-scope.sc-ds-chip{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.ds-interaction-fill.sc-ds-chip-h,.ds-interaction-fill.sc-ds-chip{position:var(--ds-interaction-position, relative);z-index:var(--ds-interaction-z-index, 0);cursor:default;--ds-interaction-hover:var(--color-interaction-hover);--ds-interaction-pressed:var(--color-interaction-pressed);--ds-interaction-active:var(--color-interaction-active-brand);--ds-interaction-border-width:0px;--ds-interaction-border-color:transparent;--ds-interaction-divider-width:0px;--ds-interaction-divider-color:transparent;--ds-interaction-divider-inline-start-width:0px;--ds-interaction-divider-inline-start-color:transparent;--ds-interaction-divider-inline-end-width:0px;--ds-interaction-divider-inline-end-color:transparent}.ds-interaction-fill.sc-ds-chip-h::before,.ds-interaction-fill.sc-ds-chip::before,.ds-interaction-fill.sc-ds-chip-h::after,.ds-interaction-fill.sc-ds-chip::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;cursor:inherit;transition:none}.ds-interaction-fill.sc-ds-chip-h::before,.ds-interaction-fill.sc-ds-chip::before{z-index:1}.ds-interaction-fill.sc-ds-chip-h::after,.ds-interaction-fill.sc-ds-chip::after{z-index:3;box-shadow:inset 0 calc(-1 * var(--ds-interaction-divider-width)) 0 var(--ds-interaction-divider-color), inset var(--ds-interaction-divider-inline-start-width) 0 0 var(--ds-interaction-divider-inline-start-color), inset calc(-1 * var(--ds-interaction-divider-inline-end-width)) 0 0 var(--ds-interaction-divider-inline-end-color), inset 0 0 0 var(--ds-interaction-border-width) var(--ds-interaction-border-color)}.ds-interaction-fill--bordered.sc-ds-chip-h,.ds-interaction-fill--bordered.sc-ds-chip{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-chip-h::before,.ds-interaction-fill--selected.sc-ds-chip::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-chip-h,.ds-interaction-fill--selected.sc-ds-chip{--ds-interaction-dot-ring:var(--ds-interaction-active)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-chip-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-chip:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}}.ds-interaction-fill.sc-ds-chip-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-chip:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill--grouped.sc-ds-chip-h::after,.ds-interaction-fill--grouped.sc-ds-chip::after,.ds-interaction-fill--grouped.sc-ds-chip-h:active:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-chip:active:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill--grouped.sc-ds-chip-h:hover:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-chip:hover:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}}.ds-interaction-fill--grouped.sc-ds-chip-h,.ds-interaction-fill--grouped.sc-ds-chip{--ds-interaction-divider-width:var(--ds-interaction-group-divider-width, 0px);--ds-interaction-divider-color:var(--ds-interaction-group-divider-color, transparent);--ds-interaction-divider-inline-start-width:var( --ds-interaction-group-divider-inline-start-width, 0px );--ds-interaction-divider-inline-start-color:var( --ds-interaction-group-divider-inline-start-color, transparent );--ds-interaction-divider-inline-end-width:var( --ds-interaction-group-divider-inline-end-width, 0px );--ds-interaction-divider-inline-end-color:var( --ds-interaction-group-divider-inline-end-color, transparent )}.ds-interaction-fill.sc-ds-chip-h>.ds-interaction-fill__content.sc-ds-chip,.ds-interaction-fill.sc-ds-chip>.ds-interaction-fill__content.sc-ds-chip,.ds-interaction-fill__content.sc-ds-chip{position:relative;z-index:2;cursor:inherit}.ds-interaction-fill--on-faint.sc-ds-chip-h,.ds-interaction-fill--on-faint.sc-ds-chip{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-chip-h,.ds-interaction-fill--on-medium.sc-ds-chip{--ds-interaction-hover:var(--color-interaction-on-medium-background-hover);--ds-interaction-pressed:var(--color-interaction-on-medium-background-pressed);--ds-interaction-active:var(--color-interaction-on-medium-background-active);--ds-focus-ring-color:var(--color-interaction-on-medium-background-focus)}.ds-interaction-fill--on-bold.sc-ds-chip-h,.ds-interaction-fill--on-bold.sc-ds-chip{--ds-interaction-hover:var(--color-interaction-on-bold-background-hover);--ds-interaction-pressed:var(--color-interaction-on-bold-background-pressed);--ds-interaction-active:var(--color-interaction-on-bold-background-active);--ds-focus-ring-color:var(--color-interaction-on-bold-background-focus)}.ds-interaction-fill--on-strong.sc-ds-chip-h,.ds-interaction-fill--on-strong.sc-ds-chip{--ds-interaction-hover:var(--color-interaction-on-strong-background-hover);--ds-interaction-pressed:var(--color-interaction-on-strong-background-pressed);--ds-interaction-active:var(--color-interaction-on-strong-background-active);--ds-focus-ring-color:var(--color-interaction-on-strong-background-focus)}.ds-interaction-fill--on-translucent.sc-ds-chip-h,.ds-interaction-fill--on-translucent.sc-ds-chip{--ds-interaction-hover:var(--color-translucent-interaction-hover);--ds-interaction-pressed:var(--color-translucent-interaction-pressed);--ds-interaction-active:var(--color-translucent-interaction-active-brand);--ds-focus-ring-color:var(--color-translucent-interaction-focus)}.ds-interaction-fill--on-inverted.sc-ds-chip-h,.ds-interaction-fill--on-inverted.sc-ds-chip{--ds-interaction-hover:var(--color-inverted-interaction-hover);--ds-interaction-pressed:var(--color-inverted-interaction-pressed);--ds-interaction-active:var(--color-inverted-interaction-active-brand);--ds-focus-ring-color:var(--color-inverted-interaction-focus)}.ds-interaction-fill--on-media.sc-ds-chip-h,.ds-interaction-fill--on-media.sc-ds-chip{--ds-interaction-hover:var(--color-media-interaction-hover);--ds-interaction-pressed:var(--color-media-interaction-pressed);--ds-interaction-active:var(--color-media-interaction-active);--ds-focus-ring-color:var(--color-media-interaction-focus)}.ds-interaction-fill--on-always-dark.sc-ds-chip-h,.ds-interaction-fill--on-always-dark.sc-ds-chip{--ds-interaction-hover:var(--color-always-dark-interaction-hover);--ds-interaction-pressed:var(--color-always-dark-interaction-pressed);--ds-interaction-active:var(--color-always-dark-interaction-active-brand);--ds-focus-ring-color:var(--color-always-dark-interaction-focus)}.ds-interaction-fill--on-chrome.sc-ds-chip-h,.ds-interaction-fill--on-chrome.sc-ds-chip{--ds-interaction-hover:var(--color-chrome-interaction-hover);--ds-interaction-pressed:var(--color-chrome-interaction-pressed);--ds-interaction-active:var(--color-chrome-interaction-active);--ds-focus-ring-color:var(--color-chrome-interaction-focus)}.ds-interaction-fill--on-navigation.sc-ds-chip-h,.ds-interaction-fill--on-navigation.sc-ds-chip{--ds-interaction-hover:var(--color-navigation-interaction-hover);--ds-interaction-pressed:var(--color-navigation-interaction-pressed);--ds-interaction-active:var(--color-navigation-interaction-active);--ds-focus-ring-color:var(--color-navigation-interaction-focus)}.ds-interaction-fill.ds-interaction-fill--surface-open.sc-ds-chip-h:not(:disabled)::after,.ds-interaction-fill.ds-interaction-fill--surface-open.sc-ds-chip:not(:disabled)::after{background:var(--ds-interaction-pressed)}@media (forced-colors: active){.ds-interaction-fill.sc-ds-chip-h::after,.ds-interaction-fill.sc-ds-chip::after{box-shadow:none;outline:var(--ds-interaction-border-width) solid var(--ds-forced-color-control-boundary);outline-offset:calc(-1 * var(--ds-interaction-border-width))}.ds-interaction-fill--surface-open.sc-ds-chip-h:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill--surface-open.sc-ds-chip:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after{outline:var(--dimension-stroke-width-025) dashed var(--ds-forced-color-control-boundary);outline-offset:calc(-1 * var(--dimension-stroke-width-025))}.ds-interaction-fill--selected.sc-ds-chip-h::before,.ds-interaction-fill--selected.sc-ds-chip::before{background:transparent;outline:var(--dimension-stroke-width-025) solid var(--ds-forced-color-selected);outline-offset:calc(-1 * var(--dimension-stroke-width-025))}}@media (forced-colors: active) and (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-chip-h:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill.sc-ds-chip:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after{outline-color:var(--ds-forced-color-selected);outline-width:var(--dimension-stroke-width-012)}}@media (forced-colors: active){.sc-ds-chip:root,.sc-ds-chip-h,.ds-forced-colors-scope.sc-ds-chip{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.sc-ds-chip-h{--ds-focus-ring-width:var(--dimension-stroke-width-025, 2px);--ds-focus-ring-offset:var(--dimension-space-025, 2px);--ds-focus-ring-color:var(--color-interaction-focus)}.ds-focus-ring.sc-ds-chip-h,.ds-focus-ring.sc-ds-chip,.ds-focus-ring-inset.sc-ds-chip-h,.ds-focus-ring-inset.sc-ds-chip{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-chip-h:focus-visible,.ds-focus-ring.sc-ds-chip:focus-visible{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}.ds-focus-ring.ds-focus-ring--visible.sc-ds-chip-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-chip{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}.ds-focus-ring-inset.sc-ds-chip-h:focus-visible,.ds-focus-ring-inset.sc-ds-chip:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-chip-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-chip:focus-visible::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-chip-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-chip{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-chip-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-chip::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}@media (forced-colors: active){.sc-ds-chip-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){.sc-ds-chip:root,.sc-ds-chip-h,.ds-forced-colors-scope.sc-ds-chip{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.ds-control-inactive.sc-ds-chip-h,.ds-control-inactive.sc-ds-chip{opacity:var(--effect-opacity-medium);pointer-events:none;cursor:not-allowed}@media (forced-colors: active){.ds-control-inactive.sc-ds-chip-h,.ds-control-inactive.sc-ds-chip{color:var(--ds-forced-color-disabled);opacity:1}}.sc-ds-chip-h{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;color:var(--color-foreground-primary);position:relative;border-radius:var(--ds-control-radius, var(--dimension-radius-025));height:var(--ds-control-height);padding:0 var(--ds-control-padding-inline);gap:var(--ds-control-gap);user-select:none;-webkit-user-select:none}.tag--rounded.sc-ds-chip-h{border-radius:var(--dimension-radius-half)}.tag__label.sc-ds-chip{position:relative;z-index:2;padding:0 var(--ds-control-label-inset);white-space:nowrap;flex-shrink:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.ds-control--lg.ds-control--inset.sc-ds-chip-h,.ds-control--lg.ds-control--inset.sc-ds-chip{--ds-control-height:calc(var(--dimension-size-500) - var(--dimension-space-050));--ds-control-padding-inline:calc(var(--dimension-space-100) - var(--dimension-space-025))}.ds-control--md.ds-control--inset.sc-ds-chip-h,.ds-control--md.ds-control--inset.sc-ds-chip{--ds-control-height:calc(var(--dimension-size-400) - var(--dimension-space-050));--ds-control-padding-inline:calc(var(--dimension-space-075) - var(--dimension-space-025))}.ds-control--sm.ds-control--inset.sc-ds-chip-h,.ds-control--sm.ds-control--inset.sc-ds-chip{--ds-control-height:calc(var(--dimension-size-300) - var(--dimension-space-050));--ds-control-padding-inline:calc(var(--dimension-space-050) - var(--dimension-space-025))}.ds-control--xs.ds-control--inset.sc-ds-chip-h,.ds-control--xs.ds-control--inset.sc-ds-chip{--ds-control-height:calc(var(--dimension-size-200) - var(--dimension-space-050));--ds-control-padding-inline:calc(var(--dimension-space-025) - var(--dimension-space-025))}.ds-control--lg.ds-control--inset-double.sc-ds-chip-h,.ds-control--lg.ds-control--inset-double.sc-ds-chip{--ds-control-height:calc(var(--dimension-size-500) - var(--dimension-space-100));--ds-control-padding-inline:calc(var(--dimension-space-100) - var(--dimension-space-050))}.ds-control--md.ds-control--inset-double.sc-ds-chip-h,.ds-control--md.ds-control--inset-double.sc-ds-chip{--ds-control-height:calc(var(--dimension-size-400) - var(--dimension-space-100));--ds-control-padding-inline:calc(var(--dimension-space-075) - var(--dimension-space-050))}.ds-control--sm.ds-control--inset-double.sc-ds-chip-h,.ds-control--sm.ds-control--inset-double.sc-ds-chip{--ds-control-height:calc(var(--dimension-size-300) - var(--dimension-space-100));--ds-control-padding-inline:calc(var(--dimension-space-050) - var(--dimension-space-050))}.chip--default.sc-ds-chip-h{background-color:var(--color-background-faint-neutral);color:var(--color-foreground-bold-neutral)}.chip--active.sc-ds-chip-h{background-color:var(--color-background-faint-brand);color:var(--color-foreground-bold-brand)}.chip--error.sc-ds-chip-h{background-color:var(--color-background-faint-negative);color:var(--color-foreground-bold-negative)}.chip--caution.sc-ds-chip-h{background-color:var(--color-background-faint-caution);color:var(--color-foreground-bold-caution)}.tag__remove.sc-ds-chip{--ds-chip-remove-size:calc(var(--ds-control-height) - var(--dimension-space-050));padding:0;margin-block:0;margin-inline-end:0;margin-inline-start:auto;border:none;box-sizing:border-box;background:none;display:flex;align-items:center;justify-content:center;width:var(--ds-chip-remove-size);height:var(--ds-chip-remove-size);cursor:default;color:inherit;flex-shrink:0;position:relative;z-index:2;border-radius:var(--dimension-radius-half)}.sc-ds-chip-h{justify-content:flex-start;padding-inline-end:var(--dimension-space-025)}.tag__label.sc-ds-chip{flex:1 1 auto}.tag__remove.sc-ds-chip::before{content:'';position:absolute;inset:0;border-radius:var(--dimension-radius-half);background-color:transparent;transition:var(--effect-transition-interaction-background-short-2);pointer-events:none}@media (hover: hover) and (pointer: fine){.tag__remove.sc-ds-chip:hover::before{background-color:var(--color-interaction-hover)}}.tag__remove.sc-ds-chip:active::before{background-color:var(--color-interaction-pressed)}.tag__remove-x.sc-ds-chip{display:inline-flex;flex-shrink:0;width:var(--ds-control-icon);height:var(--ds-control-icon)}`;const l={md:"md",sm:"sm",xs:"xs"};const h=i(class i extends o{constructor(i){super();if(i!==false){this.__registerHost()}this.dsRemove=s(this,"dsRemove",7);this.state="default";this.size="md";this.isInset=false;this.insetDepth="single";this.rounded=false;this.isInactive=false;this.removeLabel="Remove {label}";this.handleRemove=i=>{i.stopPropagation();if(this.isInactive)return;this.dsRemove.emit()}}render(){const i=d[this.size];const o=l[this.size];const s=this.isInset&&this.insetDepth==="double"&&this.size!=="xs";const e=this.maxWidth!=null?{maxWidth:typeof this.maxWidth==="number"?`${this.maxWidth}px`:this.maxWidth}:undefined;return n(r,{key:"0d67f8d6273fa7d41813821b6facffe200cf0c3b",class:{tag:true,chip:true,[`chip--${this.state}`]:true,[`tag--size-${this.size}`]:true,"ds-control--md":this.size==="md","ds-control--sm":this.size==="sm","ds-control--xs":this.size==="xs","ds-control--inset":this.isInset&&!s,"ds-control--inset-double":s,"tag--rounded":this.rounded,"tag--removable":true,"ds-interaction-fill":!this.isInactive,"ds-control-inactive":this.isInactive},style:e,"aria-disabled":this.isInactive?"true":undefined},n("ds-text",{key:"5c4b6ce86ac26938d2e3f6b2a826e07005dbb235",class:"tag__label",as:"span",variant:i,color:"inherit"},this.label),n("button",{key:"2c34e9040f6f926081368c9133fe8661561bd1d6",type:"button",class:{tag__remove:true,"ds-focus-ring-inset":true},onClick:this.handleRemove,"aria-label":this.removeLabel.replace("{label}",this.label),disabled:this.isInactive||undefined},n("ds-icon",{key:"87482270c6bfb69c53a3ef51b40d3ef8119e99f2",class:"tag__remove-x",name:"Cross",size:o,color:"inherit"})))}static get style(){return a()}},[2,"ds-chip",{label:[1],state:[1],size:[1],isInset:[4,"is-inset"],insetDepth:[1,"inset-depth"],rounded:[4],maxWidth:[8,"max-width"],isInactive:[4,"is-inactive"],removeLabel:[1,"remove-label"]}]);function v(){if(typeof customElements==="undefined"){return}const i=["ds-chip","ds-icon","ds-text"];i.forEach((i=>{switch(i){case"ds-chip":if(!customElements.get(e(i))){customElements.define(e(i),h)}break;case"ds-icon":if(!customElements.get(e(i))){c()}break;case"ds-text":if(!customElements.get(e(i))){t()}break}}))}v();export{h as C,v as d};
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{p as i,H as o,c as s,h as n,a as e,t as r}from"./index.js";import{d as c}from"./p-C942uiH1.js";import{d as t}from"./p-DcwgXLe-.js";import{C as d}from"./p-CuwopElg.js";const a=()=>`.ds-control--lg.sc-ds-chip,.ds-control--lg.sc-ds-chip-h,.ds-control--md.sc-ds-chip-h,.ds-control--md.sc-ds-chip,.ds-control--sm.sc-ds-chip-h,.ds-control--sm.sc-ds-chip,.ds-control--xs.sc-ds-chip-h,.ds-control--xs.sc-ds-chip{--ds-control-radius:var(--ds-radius-control)}.ds-control--lg.sc-ds-chip-h,.ds-control--lg.sc-ds-chip{--ds-control-height:var(--dimension-size-500);--ds-control-icon:var(--dimension-iconography-lg);--ds-control-padding-inline:var(--dimension-space-100);--ds-control-label-inset:var(--dimension-space-050);--ds-control-gap:var(--dimension-space-050)}.ds-control--md.sc-ds-chip-h,.ds-control--md.sc-ds-chip{--ds-control-height:var(--dimension-size-400);--ds-control-icon:var(--dimension-iconography-md);--ds-control-padding-inline:var(--dimension-space-075);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-050)}.ds-control--sm.sc-ds-chip-h,.ds-control--sm.sc-ds-chip{--ds-control-height:var(--dimension-size-300);--ds-control-icon:var(--dimension-iconography-sm);--ds-control-padding-inline:var(--dimension-space-050);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-025)}.ds-control--xs.sc-ds-chip-h,.ds-control--xs.sc-ds-chip{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0}@media (forced-colors: active){.sc-ds-chip:root,.sc-ds-chip-h,.ds-forced-colors-scope.sc-ds-chip{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.ds-interaction-fill.sc-ds-chip-h,.ds-interaction-fill.sc-ds-chip{position:var(--ds-interaction-position, relative);z-index:var(--ds-interaction-z-index, 0);cursor:default;--ds-interaction-hover:var(--color-interaction-hover);--ds-interaction-pressed:var(--color-interaction-pressed);--ds-interaction-active:var(--color-interaction-active-brand);--ds-interaction-border-width:0px;--ds-interaction-border-color:transparent;--ds-interaction-divider-width:0px;--ds-interaction-divider-color:transparent;--ds-interaction-divider-inline-start-width:0px;--ds-interaction-divider-inline-start-color:transparent;--ds-interaction-divider-inline-end-width:0px;--ds-interaction-divider-inline-end-color:transparent}.ds-interaction-fill.sc-ds-chip-h::before,.ds-interaction-fill.sc-ds-chip::before,.ds-interaction-fill.sc-ds-chip-h::after,.ds-interaction-fill.sc-ds-chip::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;cursor:inherit;transition:none}.ds-interaction-fill.sc-ds-chip-h::before,.ds-interaction-fill.sc-ds-chip::before{z-index:1}.ds-interaction-fill.sc-ds-chip-h::after,.ds-interaction-fill.sc-ds-chip::after{z-index:3;box-shadow:inset 0 calc(-1 * var(--ds-interaction-divider-width)) 0 var(--ds-interaction-divider-color), inset var(--ds-interaction-divider-inline-start-width) 0 0 var(--ds-interaction-divider-inline-start-color), inset calc(-1 * var(--ds-interaction-divider-inline-end-width)) 0 0 var(--ds-interaction-divider-inline-end-color), inset 0 0 0 var(--ds-interaction-border-width) var(--ds-interaction-border-color)}.ds-interaction-fill--bordered.sc-ds-chip-h,.ds-interaction-fill--bordered.sc-ds-chip{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-chip-h::before,.ds-interaction-fill--selected.sc-ds-chip::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-chip-h,.ds-interaction-fill--selected.sc-ds-chip{--ds-interaction-dot-ring:var(--ds-interaction-active)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-chip-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-chip:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}}.ds-interaction-fill.sc-ds-chip-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-chip:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill--grouped.sc-ds-chip-h::after,.ds-interaction-fill--grouped.sc-ds-chip::after,.ds-interaction-fill--grouped.sc-ds-chip-h:active:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-chip:active:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill--grouped.sc-ds-chip-h:hover:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-chip:hover:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}}.ds-interaction-fill--grouped.sc-ds-chip-h,.ds-interaction-fill--grouped.sc-ds-chip{--ds-interaction-divider-width:var(--ds-interaction-group-divider-width, 0px);--ds-interaction-divider-color:var(--ds-interaction-group-divider-color, transparent);--ds-interaction-divider-inline-start-width:var( --ds-interaction-group-divider-inline-start-width, 0px );--ds-interaction-divider-inline-start-color:var( --ds-interaction-group-divider-inline-start-color, transparent );--ds-interaction-divider-inline-end-width:var( --ds-interaction-group-divider-inline-end-width, 0px );--ds-interaction-divider-inline-end-color:var( --ds-interaction-group-divider-inline-end-color, transparent )}.ds-interaction-fill.sc-ds-chip-h>.ds-interaction-fill__content.sc-ds-chip,.ds-interaction-fill.sc-ds-chip>.ds-interaction-fill__content.sc-ds-chip,.ds-interaction-fill__content.sc-ds-chip{position:relative;z-index:2;cursor:inherit}.ds-interaction-fill--on-faint.sc-ds-chip-h,.ds-interaction-fill--on-faint.sc-ds-chip{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-chip-h,.ds-interaction-fill--on-medium.sc-ds-chip{--ds-interaction-hover:var(--color-interaction-on-medium-background-hover);--ds-interaction-pressed:var(--color-interaction-on-medium-background-pressed);--ds-interaction-active:var(--color-interaction-on-medium-background-active);--ds-focus-ring-color:var(--color-interaction-on-medium-background-focus)}.ds-interaction-fill--on-bold.sc-ds-chip-h,.ds-interaction-fill--on-bold.sc-ds-chip{--ds-interaction-hover:var(--color-interaction-on-bold-background-hover);--ds-interaction-pressed:var(--color-interaction-on-bold-background-pressed);--ds-interaction-active:var(--color-interaction-on-bold-background-active);--ds-focus-ring-color:var(--color-interaction-on-bold-background-focus)}.ds-interaction-fill--on-strong.sc-ds-chip-h,.ds-interaction-fill--on-strong.sc-ds-chip{--ds-interaction-hover:var(--color-interaction-on-strong-background-hover);--ds-interaction-pressed:var(--color-interaction-on-strong-background-pressed);--ds-interaction-active:var(--color-interaction-on-strong-background-active);--ds-focus-ring-color:var(--color-interaction-on-strong-background-focus)}.ds-interaction-fill--on-translucent.sc-ds-chip-h,.ds-interaction-fill--on-translucent.sc-ds-chip{--ds-interaction-hover:var(--color-translucent-interaction-hover);--ds-interaction-pressed:var(--color-translucent-interaction-pressed);--ds-interaction-active:var(--color-translucent-interaction-active-brand);--ds-focus-ring-color:var(--color-translucent-interaction-focus)}.ds-interaction-fill--on-inverted.sc-ds-chip-h,.ds-interaction-fill--on-inverted.sc-ds-chip{--ds-interaction-hover:var(--color-inverted-interaction-hover);--ds-interaction-pressed:var(--color-inverted-interaction-pressed);--ds-interaction-active:var(--color-inverted-interaction-active-brand);--ds-focus-ring-color:var(--color-inverted-interaction-focus)}.ds-interaction-fill--on-media.sc-ds-chip-h,.ds-interaction-fill--on-media.sc-ds-chip{--ds-interaction-hover:var(--color-media-interaction-hover);--ds-interaction-pressed:var(--color-media-interaction-pressed);--ds-interaction-active:var(--color-media-interaction-active);--ds-focus-ring-color:var(--color-media-interaction-focus)}.ds-interaction-fill--on-always-dark.sc-ds-chip-h,.ds-interaction-fill--on-always-dark.sc-ds-chip{--ds-interaction-hover:var(--color-always-dark-interaction-hover);--ds-interaction-pressed:var(--color-always-dark-interaction-pressed);--ds-interaction-active:var(--color-always-dark-interaction-active-brand);--ds-focus-ring-color:var(--color-always-dark-interaction-focus)}.ds-interaction-fill--on-chrome.sc-ds-chip-h,.ds-interaction-fill--on-chrome.sc-ds-chip{--ds-interaction-hover:var(--color-chrome-interaction-hover);--ds-interaction-pressed:var(--color-chrome-interaction-pressed);--ds-interaction-active:var(--color-chrome-interaction-active);--ds-focus-ring-color:var(--color-chrome-interaction-focus)}.ds-interaction-fill--on-navigation.sc-ds-chip-h,.ds-interaction-fill--on-navigation.sc-ds-chip{--ds-interaction-hover:var(--color-navigation-interaction-hover);--ds-interaction-pressed:var(--color-navigation-interaction-pressed);--ds-interaction-active:var(--color-navigation-interaction-active);--ds-focus-ring-color:var(--color-navigation-interaction-focus)}.ds-interaction-fill.ds-interaction-fill--surface-open.sc-ds-chip-h:not(:disabled)::after,.ds-interaction-fill.ds-interaction-fill--surface-open.sc-ds-chip:not(:disabled)::after{background:var(--ds-interaction-pressed)}@media (forced-colors: active){.ds-interaction-fill.sc-ds-chip-h::after,.ds-interaction-fill.sc-ds-chip::after{box-shadow:none;outline:var(--ds-interaction-border-width) solid var(--ds-forced-color-control-boundary);outline-offset:calc(-1 * var(--ds-interaction-border-width))}.ds-interaction-fill--surface-open.sc-ds-chip-h:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill--surface-open.sc-ds-chip:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after{outline:var(--dimension-stroke-width-025) dashed var(--ds-forced-color-control-boundary);outline-offset:calc(-1 * var(--dimension-stroke-width-025))}.ds-interaction-fill--selected.sc-ds-chip-h::before,.ds-interaction-fill--selected.sc-ds-chip::before{background:transparent;outline:var(--dimension-stroke-width-025) solid var(--ds-forced-color-selected);outline-offset:calc(-1 * var(--dimension-stroke-width-025))}}@media (forced-colors: active) and (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-chip-h:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill.sc-ds-chip:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after{outline-color:var(--ds-forced-color-selected);outline-width:var(--dimension-stroke-width-012)}}@media (forced-colors: active){.sc-ds-chip:root,.sc-ds-chip-h,.ds-forced-colors-scope.sc-ds-chip{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.sc-ds-chip-h{--ds-focus-ring-width:var(--dimension-stroke-width-025, 2px);--ds-focus-ring-offset:var(--dimension-space-025, 2px);--ds-focus-ring-color:var(--color-interaction-focus)}.ds-focus-ring.sc-ds-chip-h,.ds-focus-ring.sc-ds-chip,.ds-focus-ring-inset.sc-ds-chip-h,.ds-focus-ring-inset.sc-ds-chip{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-chip-h:focus-visible,.ds-focus-ring.sc-ds-chip:focus-visible{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}.ds-focus-ring.ds-focus-ring--visible.sc-ds-chip-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-chip{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}.ds-focus-ring-inset.sc-ds-chip-h:focus-visible,.ds-focus-ring-inset.sc-ds-chip:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-chip-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-chip:focus-visible::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-chip-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-chip{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-chip-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-chip::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}@media (forced-colors: active){.sc-ds-chip-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){.sc-ds-chip:root,.sc-ds-chip-h,.ds-forced-colors-scope.sc-ds-chip{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.ds-control-inactive.sc-ds-chip-h,.ds-control-inactive.sc-ds-chip{opacity:var(--effect-opacity-medium);pointer-events:none;cursor:not-allowed}@media (forced-colors: active){.ds-control-inactive.sc-ds-chip-h,.ds-control-inactive.sc-ds-chip{color:var(--ds-forced-color-disabled);opacity:1}}.sc-ds-chip-h{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;color:var(--color-foreground-primary);position:relative;border-radius:var(--ds-control-radius, var(--dimension-radius-025));height:var(--ds-control-height);padding:0 var(--ds-control-padding-inline);gap:var(--ds-control-gap);user-select:none;-webkit-user-select:none}.tag--rounded.sc-ds-chip-h{border-radius:var(--dimension-radius-half)}.tag__label.sc-ds-chip{position:relative;z-index:2;padding:0 var(--ds-control-label-inset);white-space:nowrap;flex-shrink:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.ds-control--lg.ds-control--inset.sc-ds-chip-h,.ds-control--lg.ds-control--inset.sc-ds-chip{--ds-control-height:calc(var(--dimension-size-500) - var(--dimension-space-050));--ds-control-padding-inline:calc(var(--dimension-space-100) - var(--dimension-space-025))}.ds-control--md.ds-control--inset.sc-ds-chip-h,.ds-control--md.ds-control--inset.sc-ds-chip{--ds-control-height:calc(var(--dimension-size-400) - var(--dimension-space-050));--ds-control-padding-inline:calc(var(--dimension-space-075) - var(--dimension-space-025))}.ds-control--sm.ds-control--inset.sc-ds-chip-h,.ds-control--sm.ds-control--inset.sc-ds-chip{--ds-control-height:calc(var(--dimension-size-300) - var(--dimension-space-050));--ds-control-padding-inline:calc(var(--dimension-space-050) - var(--dimension-space-025))}.ds-control--xs.ds-control--inset.sc-ds-chip-h,.ds-control--xs.ds-control--inset.sc-ds-chip{--ds-control-height:calc(var(--dimension-size-200) - var(--dimension-space-050));--ds-control-padding-inline:calc(var(--dimension-space-025) - var(--dimension-space-025))}.ds-control--lg.ds-control--inset-double.sc-ds-chip-h,.ds-control--lg.ds-control--inset-double.sc-ds-chip{--ds-control-height:calc(var(--dimension-size-500) - var(--dimension-space-100));--ds-control-padding-inline:calc(var(--dimension-space-100) - var(--dimension-space-050))}.ds-control--md.ds-control--inset-double.sc-ds-chip-h,.ds-control--md.ds-control--inset-double.sc-ds-chip{--ds-control-height:calc(var(--dimension-size-400) - var(--dimension-space-100));--ds-control-padding-inline:calc(var(--dimension-space-075) - var(--dimension-space-050))}.ds-control--sm.ds-control--inset-double.sc-ds-chip-h,.ds-control--sm.ds-control--inset-double.sc-ds-chip{--ds-control-height:calc(var(--dimension-size-300) - var(--dimension-space-100));--ds-control-padding-inline:calc(var(--dimension-space-050) - var(--dimension-space-050))}.chip--default.sc-ds-chip-h{background-color:var(--color-background-faint-neutral);color:var(--color-foreground-bold-neutral)}.chip--active.sc-ds-chip-h{background-color:var(--color-background-faint-brand);color:var(--color-foreground-bold-brand)}.chip--error.sc-ds-chip-h{background-color:var(--color-background-faint-negative);color:var(--color-foreground-bold-negative)}.chip--caution.sc-ds-chip-h{background-color:var(--color-background-faint-caution);color:var(--color-foreground-bold-caution)}.tag__remove.sc-ds-chip{--ds-chip-remove-size:calc(var(--ds-control-height) - var(--dimension-space-050));padding:0;margin-block:0;margin-inline-end:0;margin-inline-start:auto;border:none;box-sizing:border-box;background:none;display:flex;align-items:center;justify-content:center;width:var(--ds-chip-remove-size);height:var(--ds-chip-remove-size);cursor:default;color:inherit;flex-shrink:0;position:relative;z-index:2;border-radius:var(--dimension-radius-half)}.sc-ds-chip-h{justify-content:flex-start;padding-inline-end:var(--dimension-space-025)}.tag__label.sc-ds-chip{flex:1 1 auto}.tag__remove.sc-ds-chip::before{content:'';position:absolute;inset:0;border-radius:var(--dimension-radius-half);background-color:transparent;transition:var(--effect-transition-interaction-background-short-2);pointer-events:none}@media (hover: hover) and (pointer: fine){.tag__remove.sc-ds-chip:hover::before{background-color:var(--color-interaction-hover)}}.tag__remove.sc-ds-chip:active::before{background-color:var(--color-interaction-pressed)}.tag__remove-x.sc-ds-chip{display:inline-flex;flex-shrink:0;width:var(--ds-control-icon);height:var(--ds-control-icon)}`;const l={md:"md",sm:"sm",xs:"xs"};const h=i(class i extends o{constructor(i){super();if(i!==false){this.__registerHost()}this.dsRemove=s(this,"dsRemove",7);this.state="default";this.size="md";this.isInset=false;this.insetDepth="single";this.rounded=false;this.isInactive=false;this.removeLabel="Remove {label}";this.handleRemove=i=>{i.stopPropagation();if(this.isInactive)return;this.dsRemove.emit()}}render(){const i=d[this.size];const o=l[this.size];const s=this.isInset&&this.insetDepth==="double"&&this.size!=="xs";const r=this.maxWidth!=null?{maxWidth:typeof this.maxWidth==="number"?`${this.maxWidth}px`:this.maxWidth}:undefined;return n(e,{key:"0d67f8d6273fa7d41813821b6facffe200cf0c3b",class:{tag:true,chip:true,[`chip--${this.state}`]:true,[`tag--size-${this.size}`]:true,"ds-control--md":this.size==="md","ds-control--sm":this.size==="sm","ds-control--xs":this.size==="xs","ds-control--inset":this.isInset&&!s,"ds-control--inset-double":s,"tag--rounded":this.rounded,"tag--removable":true,"ds-interaction-fill":!this.isInactive,"ds-control-inactive":this.isInactive},style:r,"aria-disabled":this.isInactive?"true":undefined},n("ds-text",{key:"5c4b6ce86ac26938d2e3f6b2a826e07005dbb235",class:"tag__label",as:"span",variant:i,color:"inherit"},this.label),n("button",{key:"2c34e9040f6f926081368c9133fe8661561bd1d6",type:"button",class:{tag__remove:true,"ds-focus-ring-inset":true},onClick:this.handleRemove,"aria-label":this.removeLabel.replace("{label}",this.label),disabled:this.isInactive||undefined},n("ds-icon",{key:"87482270c6bfb69c53a3ef51b40d3ef8119e99f2",class:"tag__remove-x",name:"Cross",size:o,color:"inherit"})))}static get style(){return a()}},[2,"ds-chip",{label:[1],state:[1],size:[1],isInset:[4,"is-inset"],insetDepth:[1,"inset-depth"],rounded:[4],maxWidth:[8,"max-width"],isInactive:[4,"is-inactive"],removeLabel:[1,"remove-label"]}]);function v(){if(typeof customElements==="undefined"){return}const i=["ds-chip","ds-icon","ds-text"];i.forEach((i=>{switch(i){case"ds-chip":if(!customElements.get(r(i))){customElements.define(r(i),h)}break;case"ds-icon":if(!customElements.get(r(i))){c()}break;case"ds-text":if(!customElements.get(r(i))){t()}break}}))}v();export{h as C,v as d};
|
|
2
|
+
//# sourceMappingURL=p-CVSE2Ool.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{p as s,H as e,c as t,h as i,a as o,t as r}from"./index.js";import{C as n}from"./p-DlsjHRU3.js";import{D as d,s as c}from"./p-DOUk4KoT.js";import{s as a}from"./p-DGVZhrMd.js";const h=()=>`@media (forced-colors: active){:root,:host,.ds-forced-colors-scope{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}:host{--ds-focus-ring-width:var(--dimension-stroke-width-025, 2px);--ds-focus-ring-offset:var(--dimension-space-025, 2px);--ds-focus-ring-color:var(--color-interaction-focus)}:host(.ds-focus-ring),.ds-focus-ring,:host(.ds-focus-ring-inset),.ds-focus-ring-inset{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}:host(.ds-focus-ring:focus-visible),.ds-focus-ring:focus-visible{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}:host(.ds-focus-ring.ds-focus-ring--visible),.ds-focus-ring.ds-focus-ring--visible{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}:host(.ds-focus-ring-inset:focus-visible),.ds-focus-ring-inset:focus-visible{outline:none}:host(.ds-focus-ring-inset:focus-visible)::after,.ds-focus-ring-inset:focus-visible::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}:host(.ds-focus-ring-inset.ds-focus-ring--visible),.ds-focus-ring-inset.ds-focus-ring--visible{outline:none}:host(.ds-focus-ring-inset.ds-focus-ring--visible)::after,.ds-focus-ring-inset.ds-focus-ring--visible::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}@media (forced-colors: active){:host{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){:root,:host,.ds-forced-colors-scope{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}:host(.ds-control-inactive),.ds-control-inactive{opacity:var(--effect-opacity-medium);pointer-events:none;cursor:not-allowed}@media (forced-colors: active){:host(.ds-control-inactive),.ds-control-inactive{color:var(--ds-forced-color-disabled);opacity:1}}@media (forced-colors: active){:root,:host,.ds-forced-colors-scope{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}:host{--ds-switch-width:var(--dimension-size-400);--ds-switch-height:var(--dimension-size-250);--ds-switch-thumb-size:var(--dimension-size-150);--ds-switch-gap:var(--dimension-space-050);--ds-switch-stroke:var(--dimension-stroke-width-012);--ds-switch-inset:var(--ds-switch-gap);--ds-switch-thumb-hover:var(--color-interaction-hover);--ds-switch-thumb-pressed:var(--color-interaction-pressed);--ds-switch-travel:calc( var(--ds-switch-width) - var(--ds-switch-thumb-size) - var(--ds-switch-inset) - var(--ds-switch-inset) );position:relative;display:inline-flex;width:var(--ds-switch-width);height:var(--ds-switch-height);padding:0;border:none;border-radius:var(--dimension-radius-half);box-sizing:border-box;flex-shrink:0;overflow:visible;cursor:default;user-select:none;outline:none;background-color:var(--color-background-faint-neutral);box-shadow:inset 0 0 0 var(--ds-switch-stroke) var(--color-border-tertiary);transition:none}:host(.switch--transitions-enabled){transition:background-color var(--effect-motion-short-3), box-shadow var(--effect-motion-short-3)}:host(.switch--lg){--ds-switch-width:var(--dimension-size-500);--ds-switch-height:var(--dimension-size-300);--ds-switch-thumb-size:var(--dimension-iconography-sm);--ds-switch-gap:var(--dimension-space-050)}:host(.switch--sm){--ds-switch-width:var(--dimension-size-300);--ds-switch-height:var(--dimension-size-200);--ds-switch-thumb-size:calc(var(--dimension-size-base) * 5 / 4);--ds-switch-gap:calc(var(--dimension-space-025) + var(--dimension-space-012))}:host(.switch--xs){--ds-switch-width:var(--dimension-size-250);--ds-switch-height:var(--dimension-size-150);--ds-switch-thumb-size:var(--dimension-size-100);--ds-switch-gap:var(--dimension-space-025)}:host(.checked){background-color:var(--color-background-bold-brand);box-shadow:inset 0 0 0 var(--ds-switch-stroke) var(--color-border-tertiary)}:host(.switch--readonly),:host(.switch--presentation){cursor:default}:host(.switch--presentation){pointer-events:none}.thumb{position:absolute;top:50%;left:var(--ds-switch-inset);width:var(--ds-switch-thumb-size);height:var(--ds-switch-thumb-size);border-radius:var(--dimension-radius-half);background-color:var(--color-background-primary);box-shadow:var(--effect-elevation-elevated-md);transform:translateY(-50%);transition:none;pointer-events:none}:host(.switch--transitions-enabled) .thumb{transition:background-color var(--effect-motion-short-3), transform var(--effect-motion-short-3)}.thumb::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none}@media (hover: hover) and (pointer: fine){:host(:hover:not(:disabled):not(.ds-control-inactive):not(.switch--readonly):not(.switch--presentation)) .thumb::after{background:var(--ds-switch-thumb-hover)}}:host(:active:not(:disabled):not(.ds-control-inactive):not(.switch--readonly):not(.switch--presentation)) .thumb::after{background:var(--ds-switch-thumb-pressed)}:host(.checked) .thumb{background-color:var(--color-background-primary);transform:translate3d(var(--ds-switch-travel), -50%, 0)}@media (prefers-reduced-motion: reduce){:host,:host(.switch--transitions-enabled){transition:none}.thumb,:host(.switch--transitions-enabled) .thumb{transition:none}}@media (forced-colors: active){:host{border:var(--ds-switch-stroke) solid var(--ds-forced-color-content);box-shadow:none}:host(.checked){background-color:var(--ds-forced-color-selected);border-color:var(--ds-forced-color-selected);box-shadow:none}.thumb{background-color:var(--ds-forced-color-content);box-shadow:none}:host(.checked) .thumb{background-color:var(--ds-forced-color-on-selected)}}`;let l=0;const u=s(class s extends e{constructor(s){super();if(s!==false){this.__registerHost()}this.__attachShadow();this.dsChange=t(this,"dsChange",7);this.internals=this.attachInternals();this.checked=false;this.value="on";this.disabled=false;this.readOnly=false;this.required=false;this.requiredMessage=d;this.isInactive=false;this.size="md";this.presentation=false;this.initialChecked=false;this.checkedUpdateObserved=false;this.hasLoaded=false;this.formDisabled=false;this.focused=false;this.touched=false;this.transitionsEnabled=false;this.tasks=new n((()=>this.el.isConnected));this.handleClick=()=>{if(this.presentation||this.readOnly||this.isInactive||this.disabled||this.formDisabled)return;this.checkedUpdateObserved=true;this.checked=!this.checked;this.dsChange.emit(this.checked)};this.handleKeyDown=s=>{if(this.presentation||this.readOnly||this.isInactive||this.disabled||this.formDisabled)return;if(s.key===" "||s.key==="Enter"){s.preventDefault();this.handleClick()}};this.handleFocus=()=>{if(!this.presentation)this.focused=true};this.handleBlur=()=>{if(this.presentation)return;this.focused=false;this.touched=true}}connectedCallback(){if(!this.hasLoaded)return;this.syncNativeLabels();if(!this.transitionsEnabled)this.scheduleTransitionsEnable()}componentWillLoad(){this.initialChecked=this.checked;this.syncFormValue()}componentDidLoad(){this.hasLoaded=true;this.syncNativeLabels();this.scheduleTransitionsEnable()}disconnectedCallback(){this.tasks.cancel();this.transitionsFrame=undefined;this.focused=false}handleCheckedChange(){if(!this.hasLoaded||this.checkedUpdateObserved)return;this.checkedUpdateObserved=true;this.transitionsEnabled=false;this.scheduleTransitionsEnable()}scheduleTransitionsEnable(){this.tasks.cancelFrame(this.transitionsFrame);this.transitionsFrame=this.tasks.frame((()=>{this.transitionsEnabled=true;this.transitionsFrame=undefined}))}syncFormValue(){const s=this.presentation||this.isInactive||this.disabled||this.formDisabled;const e=this.checked?this.value:this.uncheckedValue??null;const t=this.checked?"checked":"unchecked";a(this.internals,e,{inactive:s,state:t});const i=this.required&&!s&&!this.checked;c(this.internals,i,this.requiredMessage)}formDisabledCallback(s){this.formDisabled=s;this.syncFormValue()}formResetCallback(){this.checked=this.initialChecked;this.focused=false;this.touched=false}formStateRestoreCallback(s){this.checked=s==="checked"}syncNativeLabels(){if(this.presentation)return;if(this.el.hasAttribute("aria-label")||this.el.hasAttribute("aria-labelledby"))return;const s=Array.from(this.internals.labels).map((s=>{if(!s.id)s.id=`ds-switch-label-${++l}`;return s.id}));if(s.length)this.el.setAttribute("aria-labelledby",s.join(" "))}render(){const s=this.isInactive||this.disabled||this.formDisabled;const e=this.required&&!s&&!this.checked;const t=this.checked!==this.initialChecked;return i(o,{key:"e1d12ba4900ff34beabaf92af026ce42d0b2de7d",role:this.presentation?undefined:"switch","aria-checked":this.presentation?undefined:String(this.checked),"aria-disabled":!this.presentation&&s?"true":undefined,"aria-readonly":!this.presentation&&this.readOnly?"true":undefined,"aria-required":!this.presentation&&this.required?"true":undefined,"aria-invalid":!this.presentation&&e?"true":undefined,"aria-hidden":this.presentation?"true":undefined,"data-checked":this.checked?"":undefined,"data-unchecked":!this.checked?"":undefined,"data-disabled":s?"":undefined,"data-readonly":this.readOnly?"":undefined,"data-required":this.required?"":undefined,"data-focused":!this.presentation&&this.focused?"":undefined,"data-filled":!this.presentation&&this.checked?"":undefined,"data-dirty":!this.presentation&&t?"":undefined,"data-touched":!this.presentation&&this.touched?"":undefined,"data-valid":!this.presentation&&!s&&!e?"":undefined,"data-invalid":!this.presentation&&e?"":undefined,tabIndex:this.presentation||s?-1:0,class:{switch:true,checked:this.checked,"switch--lg":this.size==="lg","switch--md":this.size==="md","switch--sm":this.size==="sm","switch--xs":this.size==="xs","switch--readonly":this.readOnly,"switch--presentation":this.presentation,"switch--transitions-enabled":this.transitionsEnabled,"ds-focus-ring":true,"ds-control-inactive":s},onClick:this.handleClick,onKeyDown:this.handleKeyDown,onFocus:this.handleFocus,onBlur:this.handleBlur},i("span",{key:"f1cba08d55c204db1b4d231664494c1879971f30",class:"thumb"}))}static get formAssociated(){return true}get el(){return this}static get watchers(){return{checked:[{handleCheckedChange:0},{syncFormValue:0}],value:[{syncFormValue:0}],uncheckedValue:[{syncFormValue:0}],disabled:[{syncFormValue:0}],isInactive:[{syncFormValue:0}],presentation:[{syncFormValue:0}],required:[{syncFormValue:0}],requiredMessage:[{syncFormValue:0}]}}static get style(){return h()}},[65,"ds-switch",{checked:[1028],name:[513],value:[1],uncheckedValue:[1,"unchecked-value"],form:[513],disabled:[516],readOnly:[516,"read-only"],required:[516],requiredMessage:[1,"required-message"],isInactive:[4,"is-inactive"],size:[1],presentation:[4],formDisabled:[32],focused:[32],touched:[32],transitionsEnabled:[32]},undefined,{checked:[{handleCheckedChange:0},{syncFormValue:0}],value:[{syncFormValue:0}],uncheckedValue:[{syncFormValue:0}],disabled:[{syncFormValue:0}],isInactive:[{syncFormValue:0}],presentation:[{syncFormValue:0}],required:[{syncFormValue:0}],requiredMessage:[{syncFormValue:0}]}]);function f(){if(typeof customElements==="undefined"){return}const s=["ds-switch"];s.forEach((s=>{switch(s){case"ds-switch":if(!customElements.get(r(s))){customElements.define(r(s),u)}break}}))}f();export{u as S,f as d};
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{p as s,H as e,c as t,h as i,a as o,t as r}from"./index.js";import{C as n}from"./p-DlsjHRU3.js";import{D as d,s as c}from"./p-DOUk4KoT.js";import{s as a}from"./p-DGVZhrMd.js";const h=()=>`@media (forced-colors: active){:root,:host,.ds-forced-colors-scope{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}:host{--ds-focus-ring-width:var(--dimension-stroke-width-025, 2px);--ds-focus-ring-offset:var(--dimension-space-025, 2px);--ds-focus-ring-color:var(--color-interaction-focus)}:host(.ds-focus-ring),.ds-focus-ring,:host(.ds-focus-ring-inset),.ds-focus-ring-inset{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}:host(.ds-focus-ring:focus-visible),.ds-focus-ring:focus-visible{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}:host(.ds-focus-ring.ds-focus-ring--visible),.ds-focus-ring.ds-focus-ring--visible{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}:host(.ds-focus-ring-inset:focus-visible),.ds-focus-ring-inset:focus-visible{outline:none}:host(.ds-focus-ring-inset:focus-visible)::after,.ds-focus-ring-inset:focus-visible::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}:host(.ds-focus-ring-inset.ds-focus-ring--visible),.ds-focus-ring-inset.ds-focus-ring--visible{outline:none}:host(.ds-focus-ring-inset.ds-focus-ring--visible)::after,.ds-focus-ring-inset.ds-focus-ring--visible::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}@media (forced-colors: active){:host{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){:root,:host,.ds-forced-colors-scope{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}:host(.ds-control-inactive),.ds-control-inactive{opacity:var(--effect-opacity-medium);pointer-events:none;cursor:not-allowed}@media (forced-colors: active){:host(.ds-control-inactive),.ds-control-inactive{color:var(--ds-forced-color-disabled);opacity:1}}@media (forced-colors: active){:root,:host,.ds-forced-colors-scope{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}:host{--ds-switch-width:var(--dimension-size-400);--ds-switch-height:var(--dimension-size-250);--ds-switch-thumb-size:var(--dimension-size-150);--ds-switch-gap:var(--dimension-space-050);--ds-switch-stroke:var(--dimension-stroke-width-012);--ds-switch-inset:var(--ds-switch-gap);--ds-switch-thumb-hover:var(--color-interaction-hover);--ds-switch-thumb-pressed:var(--color-interaction-pressed);--ds-switch-travel:calc( var(--ds-switch-width) - var(--ds-switch-thumb-size) - var(--ds-switch-inset) - var(--ds-switch-inset) );position:relative;display:inline-flex;width:var(--ds-switch-width);height:var(--ds-switch-height);padding:0;border:none;border-radius:var(--dimension-radius-half);box-sizing:border-box;flex-shrink:0;overflow:visible;cursor:default;user-select:none;outline:none;background-color:var(--color-background-faint-neutral);box-shadow:inset 0 0 0 var(--ds-switch-stroke) var(--color-border-tertiary);transition:none}:host(.switch--transitions-enabled){transition:background-color var(--effect-motion-short-3), box-shadow var(--effect-motion-short-3)}:host(.switch--lg){--ds-switch-width:var(--dimension-size-500);--ds-switch-height:var(--dimension-size-300);--ds-switch-thumb-size:var(--dimension-iconography-sm);--ds-switch-gap:var(--dimension-space-050)}:host(.switch--sm){--ds-switch-width:var(--dimension-size-300);--ds-switch-height:var(--dimension-size-200);--ds-switch-thumb-size:calc(var(--dimension-size-base) * 5 / 4);--ds-switch-gap:calc(var(--dimension-space-025) + var(--dimension-space-012))}:host(.switch--xs){--ds-switch-width:var(--dimension-size-250);--ds-switch-height:var(--dimension-size-150);--ds-switch-thumb-size:var(--dimension-size-100);--ds-switch-gap:var(--dimension-space-025)}:host(.checked){background-color:var(--color-background-bold-brand);box-shadow:inset 0 0 0 var(--ds-switch-stroke) var(--color-border-tertiary)}:host(.switch--readonly),:host(.switch--presentation){cursor:default}:host(.switch--presentation){pointer-events:none}.thumb{position:absolute;top:50%;left:var(--ds-switch-inset);width:var(--ds-switch-thumb-size);height:var(--ds-switch-thumb-size);border-radius:var(--dimension-radius-half);background-color:var(--color-background-primary);box-shadow:var(--effect-elevation-elevated-md);transform:translateY(-50%);transition:none;pointer-events:none}:host(.switch--transitions-enabled) .thumb{transition:background-color var(--effect-motion-short-3), transform var(--effect-motion-short-3)}.thumb::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none}@media (hover: hover) and (pointer: fine){:host(:hover:not(:disabled):not(.ds-control-inactive):not(.switch--readonly):not(.switch--presentation)) .thumb::after{background:var(--ds-switch-thumb-hover)}}:host(:active:not(:disabled):not(.ds-control-inactive):not(.switch--readonly):not(.switch--presentation)) .thumb::after{background:var(--ds-switch-thumb-pressed)}:host(.checked) .thumb{background-color:var(--color-background-primary);transform:translate3d(var(--ds-switch-travel), -50%, 0)}@media (prefers-reduced-motion: reduce){:host,:host(.switch--transitions-enabled){transition:none}.thumb,:host(.switch--transitions-enabled) .thumb{transition:none}}@media (forced-colors: active){:host{border:var(--ds-switch-stroke) solid var(--ds-forced-color-content);box-shadow:none}:host(.checked){background-color:var(--ds-forced-color-selected);border-color:var(--ds-forced-color-selected);box-shadow:none}.thumb{background-color:var(--ds-forced-color-content);box-shadow:none}:host(.checked) .thumb{background-color:var(--ds-forced-color-on-selected)}}`;let l=0;const u=s(class s extends e{constructor(s){super();if(s!==false){this.__registerHost()}this.__attachShadow();this.dsChange=t(this,"dsChange",7);this.internals=this.attachInternals();this.checked=false;this.value="on";this.disabled=false;this.readOnly=false;this.required=false;this.requiredMessage=d;this.isInactive=false;this.size="md";this.presentation=false;this.initialChecked=false;this.checkedUpdateObserved=false;this.hasLoaded=false;this.formDisabled=false;this.focused=false;this.touched=false;this.transitionsEnabled=false;this.tasks=new n((()=>this.el.isConnected));this.handleClick=()=>{if(this.presentation||this.readOnly||this.isInactive||this.disabled||this.formDisabled)return;this.checkedUpdateObserved=true;this.checked=!this.checked;this.dsChange.emit(this.checked)};this.handleKeyDown=s=>{if(this.presentation||this.readOnly||this.isInactive||this.disabled||this.formDisabled)return;if(s.key===" "||s.key==="Enter"){s.preventDefault();this.handleClick()}};this.handleFocus=()=>{if(!this.presentation)this.focused=true};this.handleBlur=()=>{if(this.presentation)return;this.focused=false;this.touched=true}}connectedCallback(){if(!this.hasLoaded)return;this.syncNativeLabels();if(!this.transitionsEnabled)this.scheduleTransitionsEnable()}componentWillLoad(){this.initialChecked=this.checked;this.syncFormValue()}componentDidLoad(){this.hasLoaded=true;this.syncNativeLabels();this.scheduleTransitionsEnable()}disconnectedCallback(){this.tasks.cancel();this.transitionsFrame=undefined;this.focused=false}handleCheckedChange(){if(!this.hasLoaded||this.checkedUpdateObserved)return;this.checkedUpdateObserved=true;this.transitionsEnabled=false;this.scheduleTransitionsEnable()}scheduleTransitionsEnable(){this.tasks.cancelFrame(this.transitionsFrame);this.transitionsFrame=this.tasks.frame((()=>{this.transitionsEnabled=true;this.transitionsFrame=undefined}))}syncFormValue(){const s=this.presentation||this.isInactive||this.disabled||this.formDisabled;const e=this.checked?this.value:this.uncheckedValue??null;const t=this.checked?"checked":"unchecked";a(this.internals,e,{inactive:s,state:t});const i=this.required&&!s&&!this.checked;c(this.internals,i,this.requiredMessage)}formDisabledCallback(s){this.formDisabled=s;this.syncFormValue()}formResetCallback(){this.checked=this.initialChecked;this.focused=false;this.touched=false}formStateRestoreCallback(s){this.checked=s==="checked"}syncNativeLabels(){if(this.presentation)return;if(this.el.hasAttribute("aria-label")||this.el.hasAttribute("aria-labelledby"))return;const s=Array.from(this.internals.labels).map((s=>{if(!s.id)s.id=`ds-switch-label-${++l}`;return s.id}));if(s.length)this.el.setAttribute("aria-labelledby",s.join(" "))}render(){const s=this.isInactive||this.disabled||this.formDisabled;const e=this.required&&!s&&!this.checked;const t=this.checked!==this.initialChecked;return i(o,{key:"f4e1c5a989447da43d5e8aa55812215e10cfcd24",role:this.presentation?undefined:"switch","aria-checked":this.presentation?undefined:String(this.checked),"aria-disabled":!this.presentation&&s?"true":undefined,"aria-readonly":!this.presentation&&this.readOnly?"true":undefined,"aria-required":!this.presentation&&this.required?"true":undefined,"aria-invalid":!this.presentation&&e?"true":undefined,"aria-hidden":this.presentation?"true":undefined,"data-checked":this.checked?"":undefined,"data-unchecked":!this.checked?"":undefined,"data-disabled":s?"":undefined,"data-readonly":this.readOnly?"":undefined,"data-required":this.required?"":undefined,"data-focused":!this.presentation&&this.focused?"":undefined,"data-filled":!this.presentation&&this.checked?"":undefined,"data-dirty":!this.presentation&&t?"":undefined,"data-touched":!this.presentation&&this.touched?"":undefined,"data-valid":!this.presentation&&!s&&!e?"":undefined,"data-invalid":!this.presentation&&e?"":undefined,tabIndex:this.presentation||s?-1:0,class:{switch:true,checked:this.checked,"switch--lg":this.size==="lg","switch--md":this.size==="md","switch--sm":this.size==="sm","switch--xs":this.size==="xs","switch--readonly":this.readOnly,"switch--presentation":this.presentation,"switch--transitions-enabled":this.transitionsEnabled,"ds-focus-ring":true,"ds-control-inactive":s},onClick:this.handleClick,onKeyDown:this.handleKeyDown,onFocus:this.handleFocus,onBlur:this.handleBlur},i("span",{key:"f8c6c3597e7411f7b602e11a397c02012f64fac5",class:"thumb"}))}static get formAssociated(){return true}get el(){return this}static get watchers(){return{checked:[{handleCheckedChange:0},{syncFormValue:0}],value:[{syncFormValue:0}],uncheckedValue:[{syncFormValue:0}],disabled:[{syncFormValue:0}],isInactive:[{syncFormValue:0}],presentation:[{syncFormValue:0}],required:[{syncFormValue:0}],requiredMessage:[{syncFormValue:0}]}}static get style(){return h()}},[65,"ds-switch",{checked:[1028],name:[513],value:[1],uncheckedValue:[1,"unchecked-value"],form:[513],disabled:[516],readOnly:[516,"read-only"],required:[516],requiredMessage:[1,"required-message"],isInactive:[4,"is-inactive"],size:[1],presentation:[4],formDisabled:[32],focused:[32],touched:[32],transitionsEnabled:[32]},undefined,{checked:[{handleCheckedChange:0},{syncFormValue:0}],value:[{syncFormValue:0}],uncheckedValue:[{syncFormValue:0}],disabled:[{syncFormValue:0}],isInactive:[{syncFormValue:0}],presentation:[{syncFormValue:0}],required:[{syncFormValue:0}],requiredMessage:[{syncFormValue:0}]}]);function f(){if(typeof customElements==="undefined"){return}const s=["ds-switch"];s.forEach((s=>{switch(s){case"ds-switch":if(!customElements.get(r(s))){customElements.define(r(s),u)}break}}))}f();export{u as S,f as d};
|
|
2
|
+
//# sourceMappingURL=p-CVuSm1Sh.js.map
|