@ds-mo/ui 14.18.0 → 14.18.1
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/README.md +7 -0
- package/dist/.package-ready.json +1 -1
- package/dist/agent-patterns.json +4 -3
- package/dist/agent.json +44 -14
- package/dist/angular/ds-filter-menu.d.ts +1 -1
- package/dist/angular/ds-filter-menu.js +3 -3
- package/dist/angular/ds-input.d.ts +1 -1
- package/dist/angular/ds-input.js +3 -3
- package/dist/angular/ds-menu.d.ts +1 -1
- package/dist/angular/ds-menu.js +3 -3
- package/dist/angular/ds-panel-tool-header.d.ts +3 -8
- package/dist/angular/ds-panel-tools.d.ts +3 -8
- package/dist/angular/ds-select.d.ts +1 -1
- package/dist/angular/ds-select.js +3 -3
- package/dist/angular/ds-tooltip.d.ts +1 -1
- package/dist/angular/ds-tooltip.js +3 -3
- 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-banner.js.map +1 -1
- package/dist/components/ds-bar-action.js +1 -1
- package/dist/components/ds-bar-action.js.map +1 -1
- package/dist/components/ds-bar-nav.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-bar-workflow.js.map +1 -1
- package/dist/components/ds-breadcrumb.js +1 -1
- package/dist/components/ds-button-filled.js +1 -1
- package/dist/components/ds-button-unfilled.js +1 -1
- package/dist/components/ds-card-chart.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-chart-legend.js +1 -1
- package/dist/components/ds-chart.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-conversation-list.js.map +1 -1
- package/dist/components/ds-divider.js +1 -1
- 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-input.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-composer.js.map +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-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-radio.js +1 -1
- package/dist/components/ds-scroll-overlay.js +1 -1
- package/dist/components/ds-select.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-filter.js +1 -1
- package/dist/components/ds-table-saved-views.js +1 -1
- package/dist/components/ds-table-sort.js +1 -1
- package/dist/components/ds-table-toolbar.js +1 -1
- package/dist/components/ds-table.js +1 -1
- package/dist/components/ds-table.js.map +1 -1
- package/dist/components/ds-tag.js +1 -1
- package/dist/components/ds-text.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/ds-typing-indicator.js.map +1 -1
- package/dist/components/{p-Dginv8PT.js → p-1Hu9jlju.js} +2 -2
- package/dist/components/{p-BiBXCjjo.js → p-B00PEE6t.js} +2 -2
- package/dist/components/{p-C6yLERx6.js → p-B1JRCDHS.js} +2 -2
- package/dist/components/p-BBG6Sswb.js +2 -0
- package/dist/components/{p-Drcl4zS9.js.map → p-BBG6Sswb.js.map} +1 -1
- package/dist/components/{p-Dd8VKdAO.js → p-BCOl1x0_.js} +2 -2
- package/dist/components/{p-C9StMCWg.js → p-BHVOiWz5.js} +2 -2
- package/dist/components/{p-DJ0GCCFa.js → p-BNkU9dcc.js} +2 -2
- package/dist/components/p-BPG0r_mC.js +2 -0
- package/dist/components/p-BPG0r_mC.js.map +1 -0
- package/dist/components/p-BUDAwJVV.js +2 -0
- package/dist/components/p-BUDAwJVV.js.map +1 -0
- package/dist/components/{p-hp_2W2Qy.js → p-BXN-e7vF.js} +2 -2
- package/dist/components/{p-CihNoe1M.js → p-B_jZIC9R.js} +2 -2
- package/dist/components/{p-CAJIARNW.js → p-Bbb9A3NV.js} +2 -2
- package/dist/components/{p-jk2-y5dH.js → p-Bece5KH3.js} +2 -2
- package/dist/components/{p-D6P_1YrL.js → p-BhYS_Ump.js} +2 -2
- package/dist/components/p-Bkh7scMQ.js +2 -0
- package/dist/components/{p-DMaQkEYP.js.map → p-Bkh7scMQ.js.map} +1 -1
- package/dist/components/p-BknXYAEc.js +2 -0
- package/dist/components/{p-9GuNIXuz.js.map → p-BknXYAEc.js.map} +1 -1
- package/dist/components/{p-BKx2ihnG.js → p-Bu3dOjpW.js} +2 -2
- package/dist/components/{p-CBa_6lqj.js → p-C-Y7gYgz.js} +2 -2
- package/dist/components/{p-9EQ3xLI1.js → p-C6R5Lft0.js} +2 -2
- package/dist/components/{p-DPR0TGGJ.js → p-C9gC4haA.js} +2 -2
- package/dist/components/{p-LHzBS95u.js → p-CAnnQL1F.js} +2 -2
- package/dist/components/p-CE2IKOsy.js +2 -0
- package/dist/components/{p-DaxKVtZG.js.map → p-CE2IKOsy.js.map} +1 -1
- package/dist/components/{p-DHzn7INS.js → p-CKVHrOEp.js} +2 -2
- package/dist/components/{p-CbZ0RU2c.js → p-CLVxgTme.js} +2 -2
- package/dist/components/p-CY4YFAT3.js +2 -0
- package/dist/components/p-CY4YFAT3.js.map +1 -0
- package/dist/components/{p-3WlVHGUe.js → p-Cg0kimXZ.js} +2 -2
- package/dist/components/p-CqQFowZd.js +2 -0
- package/dist/components/p-CqQFowZd.js.map +1 -0
- package/dist/components/{p-HZz5aJKz.js → p-CsBICYmt.js} +2 -2
- package/dist/components/p-CwjVgUqy.js +2 -0
- package/dist/components/p-CwjVgUqy.js.map +1 -0
- package/dist/components/{p-Dl3gciej.js → p-D123Jvp-.js} +2 -2
- package/dist/components/p-D1eEgwcP.js +2 -0
- package/dist/components/p-D1eEgwcP.js.map +1 -0
- package/dist/components/{p-oCc3mz_c.js → p-D3fMaUJ3.js} +2 -2
- package/dist/components/p-D7R4yE2C.js +2 -0
- package/dist/components/{p-Ba7DaFkb.js.map → p-D7R4yE2C.js.map} +1 -1
- package/dist/components/{p-B9ZfoprK.js → p-D7haeL5y.js} +2 -2
- package/dist/components/p-D7haeL5y.js.map +1 -0
- package/dist/components/{p-CHEt4mW8.js → p-DAvh38E4.js} +2 -2
- package/dist/components/{p-DPpHSIzS.js → p-DBue3ISk.js} +2 -2
- package/dist/components/{p-BdgoB2ef.js → p-DDgeXGbB.js} +2 -2
- package/dist/components/{p-Be-vZpWx.js → p-DUdOmSFR.js} +2 -2
- package/dist/components/p-DtndC9f1.js +2 -0
- package/dist/components/p-DtndC9f1.js.map +1 -0
- package/dist/components/{p-BTTxl3ro.js → p-H5T258T-.js} +2 -2
- package/dist/components/p-H5T258T-.js.map +1 -0
- package/dist/components/p-HB_cf_aR.js +2 -0
- package/dist/components/{p-BBmRD_S0.js.map → p-HB_cf_aR.js.map} +1 -1
- package/dist/components/p-LK-jpxwq.js +2 -0
- package/dist/components/p-LK-jpxwq.js.map +1 -0
- package/dist/components/p-ag6Io-kL.js +2 -0
- package/dist/components/p-ag6Io-kL.js.map +1 -0
- package/dist/components/p-iMuFgSoM.js +2 -0
- package/dist/components/p-iMuFgSoM.js.map +1 -0
- package/dist/components/{p-B145kX-i.js → p-uI6z53BE.js} +2 -2
- package/dist/docs/components.json +223 -37
- package/dist/lib/components/PanelTools/panel-tools-types.d.ts +12 -0
- package/dist/lib/shell/index.d.ts +1 -1
- package/dist/lib/shell/index.js.map +1 -1
- package/dist/lib/utils/anchored-position.d.ts +6 -2
- package/dist/mcp-data/registry/badge.json +7 -9
- package/dist/mcp-data/registry/banner.json +2 -2
- package/dist/mcp-data/registry/bar-action.json +2 -2
- package/dist/mcp-data/registry/button-unfilled.json +1 -1
- package/dist/mcp-data/registry/conversation-list.json +2 -2
- package/dist/mcp-data/registry/filter-menu.json +21 -6
- package/dist/mcp-data/registry/input.json +23 -3
- package/dist/mcp-data/registry/menu.json +22 -4
- package/dist/mcp-data/registry/message-composer.json +2 -2
- package/dist/mcp-data/registry/panel-nav.json +1 -1
- package/dist/mcp-data/registry/panel-tool-header.json +3 -3
- package/dist/mcp-data/registry/panel-tools.json +5 -4
- package/dist/mcp-data/registry/registry.json +43 -13
- package/dist/mcp-data/registry/select.json +17 -3
- package/dist/mcp-data/registry/shell-app.json +3 -2
- package/dist/mcp-data/registry/table.json +21 -1
- package/dist/mcp-data/registry/toast.json +2 -2
- package/dist/mcp-data/registry/tooltip.json +20 -3
- package/dist/mcp-data/registry/typing-indicator.json +4 -4
- package/dist/react/ds-panel-tool-header.d.ts +2 -5
- package/dist/react/ds-panel-tools.d.ts +2 -5
- package/dist/types/components/Badge/Badge.d.ts +2 -16
- package/dist/types/components/Banner/Banner.d.ts +0 -1
- package/dist/types/components/BarAction/BarAction.d.ts +0 -7
- package/dist/types/components/ConversationList/ConversationList.d.ts +1 -0
- package/dist/types/components/FilterMenu/FilterMenu.d.ts +5 -5
- package/dist/types/components/Input/Input.d.ts +7 -0
- package/dist/types/components/Menu/Menu.d.ts +3 -4
- package/dist/types/components/MessageComposer/MessageComposer.d.ts +0 -3
- package/dist/types/components/PanelToolHeader/PanelToolHeader.d.ts +2 -5
- package/dist/types/components/PanelTools/PanelTools.d.ts +2 -5
- package/dist/types/components/PanelTools/panel-tools-types.d.ts +12 -0
- package/dist/types/components/Select/Select.d.ts +3 -0
- package/dist/types/components/Table/Table.d.ts +1 -13
- package/dist/types/components/Table/table-body-renderer.d.ts +36 -0
- package/dist/types/components/Table/table-load-view.d.ts +17 -0
- package/dist/types/components/Table/table-row-view.d.ts +26 -0
- package/dist/types/components/Table/table-skeleton-view.d.ts +12 -0
- package/dist/types/components/Tooltip/Tooltip.d.ts +3 -0
- package/dist/types/components.d.ts +61 -23
- package/dist/types/shell/index.d.ts +1 -1
- package/dist/types/utils/anchored-overlay-boundary.d.ts +14 -0
- package/dist/types/utils/anchored-overlay-interaction-controller.d.ts +26 -0
- package/dist/types/utils/anchored-position-controller.d.ts +14 -0
- package/dist/types/utils/anchored-position.d.ts +6 -2
- package/dist/types/utils/select-controller.d.ts +1 -0
- package/dist/vue/ds-filter-menu.js +1 -0
- package/dist/vue/ds-input.js +1 -0
- package/dist/vue/ds-menu.js +1 -0
- package/dist/vue/ds-select.js +1 -0
- package/dist/vue/ds-tooltip.js +1 -0
- package/package.json +4 -1
- package/dist/components/p-9GuNIXuz.js +0 -2
- package/dist/components/p-B9ZfoprK.js.map +0 -1
- package/dist/components/p-BBmRD_S0.js +0 -2
- package/dist/components/p-BTTxl3ro.js.map +0 -1
- package/dist/components/p-Ba7DaFkb.js +0 -2
- package/dist/components/p-BcNYvLMi.js +0 -2
- package/dist/components/p-BcNYvLMi.js.map +0 -1
- package/dist/components/p-CI5Ce8VF.js +0 -2
- package/dist/components/p-CI5Ce8VF.js.map +0 -1
- package/dist/components/p-Cgm7YMLw.js +0 -2
- package/dist/components/p-Cgm7YMLw.js.map +0 -1
- package/dist/components/p-Cj5Hkt6Y.js +0 -2
- package/dist/components/p-Cj5Hkt6Y.js.map +0 -1
- package/dist/components/p-DC_8dK55.js +0 -2
- package/dist/components/p-DC_8dK55.js.map +0 -1
- package/dist/components/p-DKY3IJqt.js +0 -2
- package/dist/components/p-DKY3IJqt.js.map +0 -1
- package/dist/components/p-DMaQkEYP.js +0 -2
- package/dist/components/p-DQyvAN44.js +0 -2
- package/dist/components/p-DQyvAN44.js.map +0 -1
- package/dist/components/p-DaxKVtZG.js +0 -2
- package/dist/components/p-DbJahF86.js +0 -2
- package/dist/components/p-DbJahF86.js.map +0 -1
- package/dist/components/p-DhKvqh5G.js +0 -2
- package/dist/components/p-DhKvqh5G.js.map +0 -1
- package/dist/components/p-Drcl4zS9.js +0 -2
- package/dist/components/p-DzPw6aDK.js +0 -2
- package/dist/components/p-DzPw6aDK.js.map +0 -1
- package/dist/types/shell/badge-gradient-ring.d.ts +0 -28
- /package/dist/components/{p-Dginv8PT.js.map → p-1Hu9jlju.js.map} +0 -0
- /package/dist/components/{p-BiBXCjjo.js.map → p-B00PEE6t.js.map} +0 -0
- /package/dist/components/{p-C6yLERx6.js.map → p-B1JRCDHS.js.map} +0 -0
- /package/dist/components/{p-Dd8VKdAO.js.map → p-BCOl1x0_.js.map} +0 -0
- /package/dist/components/{p-C9StMCWg.js.map → p-BHVOiWz5.js.map} +0 -0
- /package/dist/components/{p-DJ0GCCFa.js.map → p-BNkU9dcc.js.map} +0 -0
- /package/dist/components/{p-hp_2W2Qy.js.map → p-BXN-e7vF.js.map} +0 -0
- /package/dist/components/{p-CihNoe1M.js.map → p-B_jZIC9R.js.map} +0 -0
- /package/dist/components/{p-CAJIARNW.js.map → p-Bbb9A3NV.js.map} +0 -0
- /package/dist/components/{p-jk2-y5dH.js.map → p-Bece5KH3.js.map} +0 -0
- /package/dist/components/{p-D6P_1YrL.js.map → p-BhYS_Ump.js.map} +0 -0
- /package/dist/components/{p-BKx2ihnG.js.map → p-Bu3dOjpW.js.map} +0 -0
- /package/dist/components/{p-CBa_6lqj.js.map → p-C-Y7gYgz.js.map} +0 -0
- /package/dist/components/{p-9EQ3xLI1.js.map → p-C6R5Lft0.js.map} +0 -0
- /package/dist/components/{p-DPR0TGGJ.js.map → p-C9gC4haA.js.map} +0 -0
- /package/dist/components/{p-LHzBS95u.js.map → p-CAnnQL1F.js.map} +0 -0
- /package/dist/components/{p-DHzn7INS.js.map → p-CKVHrOEp.js.map} +0 -0
- /package/dist/components/{p-CbZ0RU2c.js.map → p-CLVxgTme.js.map} +0 -0
- /package/dist/components/{p-3WlVHGUe.js.map → p-Cg0kimXZ.js.map} +0 -0
- /package/dist/components/{p-HZz5aJKz.js.map → p-CsBICYmt.js.map} +0 -0
- /package/dist/components/{p-Dl3gciej.js.map → p-D123Jvp-.js.map} +0 -0
- /package/dist/components/{p-oCc3mz_c.js.map → p-D3fMaUJ3.js.map} +0 -0
- /package/dist/components/{p-CHEt4mW8.js.map → p-DAvh38E4.js.map} +0 -0
- /package/dist/components/{p-DPpHSIzS.js.map → p-DBue3ISk.js.map} +0 -0
- /package/dist/components/{p-BdgoB2ef.js.map → p-DDgeXGbB.js.map} +0 -0
- /package/dist/components/{p-Be-vZpWx.js.map → p-DUdOmSFR.js.map} +0 -0
- /package/dist/components/{p-B145kX-i.js.map → p-uI6z53BE.js.map} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{p as i,H as e,c as s,h as t,a as o,t as n}from"./index.js";import{g as r,i as c}from"./p-BQq26pt9.js";import{d}from"./p-DbJahF86.js";import{d as a}from"./p-BFfLvMZd.js";import{d as l}from"./p-DKY3IJqt.js";import{d as h}from"./p-Dl3gciej.js";import{d as f}from"./p-HZz5aJKz.js";import{d as u}from"./p-3WlVHGUe.js";import{d as v}from"./p-LHzBS95u.js";function b(i,e){const s=r(i);const t=s.findIndex((i=>i.id===e));const o=t>=0?t:0;return{selectedIndex:o,selected:s[o],hasPrevious:o>0,hasNext:o<s.length-1}}const m=()=>`@media (forced-colors: active){.sc-ds-mobile-section-switcher:root,.sc-ds-mobile-section-switcher-h,.ds-forced-colors-scope.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-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-mobile-section-switcher-h,.ds-focus-ring.sc-ds-mobile-section-switcher,.ds-focus-ring-inset.sc-ds-mobile-section-switcher-h,.ds-focus-ring-inset.sc-ds-mobile-section-switcher{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-mobile-section-switcher-h:focus-visible,.ds-focus-ring.sc-ds-mobile-section-switcher: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-mobile-section-switcher-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-mobile-section-switcher{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-mobile-section-switcher-h:focus-visible,.ds-focus-ring-inset.sc-ds-mobile-section-switcher:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-mobile-section-switcher-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-mobile-section-switcher: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-mobile-section-switcher-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-mobile-section-switcher{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-mobile-section-switcher-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-mobile-section-switcher::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-mobile-section-switcher-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){.sc-ds-mobile-section-switcher:root,.sc-ds-mobile-section-switcher-h,.ds-forced-colors-scope.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-h,.ds-interaction-fill.sc-ds-mobile-section-switcher{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-mobile-section-switcher-h::before,.ds-interaction-fill.sc-ds-mobile-section-switcher::before,.ds-interaction-fill.sc-ds-mobile-section-switcher-h::after,.ds-interaction-fill.sc-ds-mobile-section-switcher::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;cursor:inherit;transition:none}.ds-interaction-fill.sc-ds-mobile-section-switcher-h::before,.ds-interaction-fill.sc-ds-mobile-section-switcher::before{z-index:1}.ds-interaction-fill.sc-ds-mobile-section-switcher-h::after,.ds-interaction-fill.sc-ds-mobile-section-switcher::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-mobile-section-switcher-h,.ds-interaction-fill--bordered.sc-ds-mobile-section-switcher{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-mobile-section-switcher-h::before,.ds-interaction-fill--selected.sc-ds-mobile-section-switcher::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--selected.sc-ds-mobile-section-switcher{--ds-interaction-dot-ring:var(--ds-interaction-active)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-mobile-section-switcher-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-mobile-section-switcher:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}}.ds-interaction-fill.sc-ds-mobile-section-switcher-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-mobile-section-switcher:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher-h::after,.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher::after,.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher-h:active:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher:active:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher-h:hover:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher:hover:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}}.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-h>.ds-interaction-fill__content.sc-ds-mobile-section-switcher,.ds-interaction-fill.sc-ds-mobile-section-switcher>.ds-interaction-fill__content.sc-ds-mobile-section-switcher,.ds-interaction-fill__content.sc-ds-mobile-section-switcher{position:relative;z-index:2;cursor:inherit}.ds-interaction-fill--on-faint.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--on-faint.sc-ds-mobile-section-switcher{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--on-medium.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-h,.ds-interaction-fill--on-bold.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-h,.ds-interaction-fill--on-strong.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-h,.ds-interaction-fill--on-translucent.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-h,.ds-interaction-fill--on-inverted.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-h,.ds-interaction-fill--on-media.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-h,.ds-interaction-fill--on-always-dark.sc-ds-mobile-section-switcher{--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-navigation.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--on-navigation.sc-ds-mobile-section-switcher{--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)}@media (forced-colors: active){.ds-interaction-fill.sc-ds-mobile-section-switcher-h::after,.ds-interaction-fill.sc-ds-mobile-section-switcher::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--selected.sc-ds-mobile-section-switcher-h::before,.ds-interaction-fill--selected.sc-ds-mobile-section-switcher::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-mobile-section-switcher-h:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill.sc-ds-mobile-section-switcher: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)}}.sc-ds-mobile-section-switcher-h{display:block;min-width:0;max-width:100%;color:var(--color-foreground-primary)}.mobile-section-switcher.sc-ds-mobile-section-switcher{appearance:none;display:grid;grid-template-columns:var(--dimension-size-100) minmax(0, auto) var(--dimension-size-100);align-items:center;justify-content:center;gap:var(--dimension-space-050);max-width:100%;min-height:var(--dimension-size-400);padding-inline:var(--dimension-space-100);border:0;border-radius:var(--dimension-radius-100);background:var(--color-background-secondary);color:inherit;box-sizing:border-box;cursor:default}.mobile-section-switcher--expanded.sc-ds-mobile-section-switcher{background:var(--color-background-tertiary)}.mobile-section-switcher__label.sc-ds-mobile-section-switcher{min-width:0;max-width:100%;text-align:center}.mobile-section-switcher__position.sc-ds-mobile-section-switcher{width:var(--dimension-size-050);height:var(--dimension-size-050);border-radius:var(--dimension-radius-half);background:currentColor;opacity:0}.mobile-section-switcher__position--visible.sc-ds-mobile-section-switcher{opacity:1}`;let w=0;const g=i(class i extends e{constructor(i){super();if(i!==false){this.__registerHost()}this.dsChange=s(this,"dsChange",7);this.sections=[];this.value="";this.navigationLabel="Change page section";this.menuOpen=false;this.initialFocusVisible=false;this.instanceId=w++;this.triggerId=`ds-mobile-section-switcher-trigger-${this.instanceId}`;this.menuId=`ds-mobile-section-switcher-menu-${this.instanceId}`;this.triggerEl=null;this.toggleMenu=i=>{if(this.selectableSections.length<=1)return;this.initialFocusVisible=i.detail===0;this.menuOpen=!this.menuOpen};this.closeMenu=()=>{this.menuOpen=false};this.handleSelect=i=>{const e=String(i.detail.value??"");const s=this.selectableSections.find((i=>i.id===e));if(!s||s.isInactive)return;this.closeMenu();if(e!==this.selectedSection?.id)this.dsChange.emit(e);requestAnimationFrame((()=>this.triggerEl?.focus()))}}get resolvedSections(){return this.sections??[]}get selectableSections(){return r(this.resolvedSections)}get selectedIndex(){return b(this.resolvedSections,this.value).selectedIndex}get selectedSection(){return this.selectableSections[this.selectedIndex]}get hasPrevious(){return b(this.resolvedSections,this.value).hasPrevious}get hasNext(){return b(this.resolvedSections,this.value).hasNext}get triggerAriaLabel(){return`${this.navigationLabel}. Current section: ${this.selectedSection?.label??""}`}get menuSections(){const i=[];let e=[];const s=()=>{if(e.length)i.push({items:e});e=[]};for(const i of this.resolvedSections){if(c(i)){s();continue}e.push({label:i.label,value:i.id,dot:i.dot,isSelected:i.id===this.selectedSection?.id,isInactive:i.isInactive})}s();return i}handleSectionsChange(){if(this.selectableSections.length<=1)this.closeMenu()}render(){const i=this.selectedSection;if(!i)return t(o,null);return t(o,null,t("button",{ref:i=>{this.triggerEl=i??null},id:this.triggerId,class:{"mobile-section-switcher":true,"mobile-section-switcher--expanded":this.menuOpen,"ds-focus-ring-inset":true,"ds-interaction-fill":true},type:"button","aria-haspopup":"menu","aria-controls":this.menuId,"aria-expanded":String(this.menuOpen),"aria-label":this.triggerAriaLabel,onClick:this.toggleMenu},t("span",{class:{"mobile-section-switcher__position":true,"mobile-section-switcher__position--visible":this.hasPrevious,"ds-interaction-fill__content":true},"aria-hidden":"true"}),t("ds-text",{class:"mobile-section-switcher__label ds-interaction-fill__content",as:"span",variant:"text-body-medium",emphasis:true,color:"inherit",lineTruncation:1},i.label),t("span",{class:{"mobile-section-switcher__position":true,"mobile-section-switcher__position--visible":this.hasNext,"ds-interaction-fill__content":true},"aria-hidden":"true"})),this.selectableSections.length>1?t("ds-menu",{id:this.menuId,anchorId:this.triggerId,align:"center",menuLabel:this.navigationLabel,open:this.menuOpen,initialFocusVisible:this.initialFocusVisible,sections:this.menuSections,onDsClose:this.closeMenu,onDsSelect:this.handleSelect}):null)}get el(){return this}static get watchers(){return{sections:[{handleSectionsChange:0}]}}static get style(){return m()}},[2,"ds-mobile-section-switcher",{sections:[16],value:[1],navigationLabel:[1,"navigation-label"],menuOpen:[32],initialFocusVisible:[32]},undefined,{sections:[{handleSectionsChange:0}]}]);function p(){if(typeof customElements==="undefined"){return}const i=["ds-mobile-section-switcher","ds-badge","ds-icon","ds-menu","ds-swatch-picker","ds-switch","ds-tag","ds-text"];i.forEach((i=>{switch(i){case"ds-mobile-section-switcher":if(!customElements.get(n(i))){customElements.define(n(i),g)}break;case"ds-badge":if(!customElements.get(n(i))){d()}break;case"ds-icon":if(!customElements.get(n(i))){a()}break;case"ds-menu":if(!customElements.get(n(i))){l()}break;case"ds-swatch-picker":if(!customElements.get(n(i))){h()}break;case"ds-switch":if(!customElements.get(n(i))){f()}break;case"ds-tag":if(!customElements.get(n(i))){u()}break;case"ds-text":if(!customElements.get(n(i))){v()}break}}))}p();export{g as M,p as d};
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{p as i,H as e,c as s,h as t,a as o,t as n}from"./index.js";import{g as r,i as c}from"./p-BQq26pt9.js";import{d}from"./p-BUDAwJVV.js";import{d as a}from"./p-BFfLvMZd.js";import{d as l}from"./p-LK-jpxwq.js";import{d as h}from"./p-D123Jvp-.js";import{d as f}from"./p-CsBICYmt.js";import{d as u}from"./p-Cg0kimXZ.js";import{d as v}from"./p-CAnnQL1F.js";function b(i,e){const s=r(i);const t=s.findIndex((i=>i.id===e));const o=t>=0?t:0;return{selectedIndex:o,selected:s[o],hasPrevious:o>0,hasNext:o<s.length-1}}const m=()=>`@media (forced-colors: active){.sc-ds-mobile-section-switcher:root,.sc-ds-mobile-section-switcher-h,.ds-forced-colors-scope.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-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-mobile-section-switcher-h,.ds-focus-ring.sc-ds-mobile-section-switcher,.ds-focus-ring-inset.sc-ds-mobile-section-switcher-h,.ds-focus-ring-inset.sc-ds-mobile-section-switcher{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-mobile-section-switcher-h:focus-visible,.ds-focus-ring.sc-ds-mobile-section-switcher: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-mobile-section-switcher-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-mobile-section-switcher{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-mobile-section-switcher-h:focus-visible,.ds-focus-ring-inset.sc-ds-mobile-section-switcher:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-mobile-section-switcher-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-mobile-section-switcher: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-mobile-section-switcher-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-mobile-section-switcher{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-mobile-section-switcher-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-mobile-section-switcher::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-mobile-section-switcher-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){.sc-ds-mobile-section-switcher:root,.sc-ds-mobile-section-switcher-h,.ds-forced-colors-scope.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-h,.ds-interaction-fill.sc-ds-mobile-section-switcher{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-mobile-section-switcher-h::before,.ds-interaction-fill.sc-ds-mobile-section-switcher::before,.ds-interaction-fill.sc-ds-mobile-section-switcher-h::after,.ds-interaction-fill.sc-ds-mobile-section-switcher::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;cursor:inherit;transition:none}.ds-interaction-fill.sc-ds-mobile-section-switcher-h::before,.ds-interaction-fill.sc-ds-mobile-section-switcher::before{z-index:1}.ds-interaction-fill.sc-ds-mobile-section-switcher-h::after,.ds-interaction-fill.sc-ds-mobile-section-switcher::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-mobile-section-switcher-h,.ds-interaction-fill--bordered.sc-ds-mobile-section-switcher{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-mobile-section-switcher-h::before,.ds-interaction-fill--selected.sc-ds-mobile-section-switcher::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--selected.sc-ds-mobile-section-switcher{--ds-interaction-dot-ring:var(--ds-interaction-active)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-mobile-section-switcher-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-mobile-section-switcher:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}}.ds-interaction-fill.sc-ds-mobile-section-switcher-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-mobile-section-switcher:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher-h::after,.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher::after,.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher-h:active:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher:active:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher-h:hover:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher:hover:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}}.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-h>.ds-interaction-fill__content.sc-ds-mobile-section-switcher,.ds-interaction-fill.sc-ds-mobile-section-switcher>.ds-interaction-fill__content.sc-ds-mobile-section-switcher,.ds-interaction-fill__content.sc-ds-mobile-section-switcher{position:relative;z-index:2;cursor:inherit}.ds-interaction-fill--on-faint.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--on-faint.sc-ds-mobile-section-switcher{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--on-medium.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-h,.ds-interaction-fill--on-bold.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-h,.ds-interaction-fill--on-strong.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-h,.ds-interaction-fill--on-translucent.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-h,.ds-interaction-fill--on-inverted.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-h,.ds-interaction-fill--on-media.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-h,.ds-interaction-fill--on-always-dark.sc-ds-mobile-section-switcher{--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-navigation.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--on-navigation.sc-ds-mobile-section-switcher{--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)}@media (forced-colors: active){.ds-interaction-fill.sc-ds-mobile-section-switcher-h::after,.ds-interaction-fill.sc-ds-mobile-section-switcher::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--selected.sc-ds-mobile-section-switcher-h::before,.ds-interaction-fill--selected.sc-ds-mobile-section-switcher::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-mobile-section-switcher-h:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill.sc-ds-mobile-section-switcher: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)}}.sc-ds-mobile-section-switcher-h{display:block;min-width:0;max-width:100%;color:var(--color-foreground-primary)}.mobile-section-switcher.sc-ds-mobile-section-switcher{appearance:none;display:grid;grid-template-columns:var(--dimension-size-100) minmax(0, auto) var(--dimension-size-100);align-items:center;justify-content:center;gap:var(--dimension-space-050);max-width:100%;min-height:var(--dimension-size-400);padding-inline:var(--dimension-space-100);border:0;border-radius:var(--dimension-radius-100);background:var(--color-background-secondary);color:inherit;box-sizing:border-box;cursor:default}.mobile-section-switcher--expanded.sc-ds-mobile-section-switcher{background:var(--color-background-tertiary)}.mobile-section-switcher__label.sc-ds-mobile-section-switcher{min-width:0;max-width:100%;text-align:center}.mobile-section-switcher__position.sc-ds-mobile-section-switcher{width:var(--dimension-size-050);height:var(--dimension-size-050);border-radius:var(--dimension-radius-half);background:currentColor;opacity:0}.mobile-section-switcher__position--visible.sc-ds-mobile-section-switcher{opacity:1}`;let w=0;const g=i(class i extends e{constructor(i){super();if(i!==false){this.__registerHost()}this.dsChange=s(this,"dsChange",7);this.sections=[];this.value="";this.navigationLabel="Change page section";this.menuOpen=false;this.initialFocusVisible=false;this.instanceId=w++;this.triggerId=`ds-mobile-section-switcher-trigger-${this.instanceId}`;this.menuId=`ds-mobile-section-switcher-menu-${this.instanceId}`;this.triggerEl=null;this.toggleMenu=i=>{if(this.selectableSections.length<=1)return;this.initialFocusVisible=i.detail===0;this.menuOpen=!this.menuOpen};this.closeMenu=()=>{this.menuOpen=false};this.handleSelect=i=>{const e=String(i.detail.value??"");const s=this.selectableSections.find((i=>i.id===e));if(!s||s.isInactive)return;this.closeMenu();if(e!==this.selectedSection?.id)this.dsChange.emit(e);requestAnimationFrame((()=>this.triggerEl?.focus()))}}get resolvedSections(){return this.sections??[]}get selectableSections(){return r(this.resolvedSections)}get selectedIndex(){return b(this.resolvedSections,this.value).selectedIndex}get selectedSection(){return this.selectableSections[this.selectedIndex]}get hasPrevious(){return b(this.resolvedSections,this.value).hasPrevious}get hasNext(){return b(this.resolvedSections,this.value).hasNext}get triggerAriaLabel(){return`${this.navigationLabel}. Current section: ${this.selectedSection?.label??""}`}get menuSections(){const i=[];let e=[];const s=()=>{if(e.length)i.push({items:e});e=[]};for(const i of this.resolvedSections){if(c(i)){s();continue}e.push({label:i.label,value:i.id,dot:i.dot,isSelected:i.id===this.selectedSection?.id,isInactive:i.isInactive})}s();return i}handleSectionsChange(){if(this.selectableSections.length<=1)this.closeMenu()}render(){const i=this.selectedSection;if(!i)return t(o,null);return t(o,null,t("button",{ref:i=>{this.triggerEl=i??null},id:this.triggerId,class:{"mobile-section-switcher":true,"mobile-section-switcher--expanded":this.menuOpen,"ds-focus-ring-inset":true,"ds-interaction-fill":true},type:"button","aria-haspopup":"menu","aria-controls":this.menuId,"aria-expanded":String(this.menuOpen),"aria-label":this.triggerAriaLabel,onClick:this.toggleMenu},t("span",{class:{"mobile-section-switcher__position":true,"mobile-section-switcher__position--visible":this.hasPrevious,"ds-interaction-fill__content":true},"aria-hidden":"true"}),t("ds-text",{class:"mobile-section-switcher__label ds-interaction-fill__content",as:"span",variant:"text-body-medium",emphasis:true,color:"inherit",lineTruncation:1},i.label),t("span",{class:{"mobile-section-switcher__position":true,"mobile-section-switcher__position--visible":this.hasNext,"ds-interaction-fill__content":true},"aria-hidden":"true"})),this.selectableSections.length>1?t("ds-menu",{id:this.menuId,anchorId:this.triggerId,align:"center",menuLabel:this.navigationLabel,open:this.menuOpen,initialFocusVisible:this.initialFocusVisible,sections:this.menuSections,onDsClose:this.closeMenu,onDsSelect:this.handleSelect}):null)}get el(){return this}static get watchers(){return{sections:[{handleSectionsChange:0}]}}static get style(){return m()}},[2,"ds-mobile-section-switcher",{sections:[16],value:[1],navigationLabel:[1,"navigation-label"],menuOpen:[32],initialFocusVisible:[32]},undefined,{sections:[{handleSectionsChange:0}]}]);function p(){if(typeof customElements==="undefined"){return}const i=["ds-mobile-section-switcher","ds-badge","ds-icon","ds-menu","ds-swatch-picker","ds-switch","ds-tag","ds-text"];i.forEach((i=>{switch(i){case"ds-mobile-section-switcher":if(!customElements.get(n(i))){customElements.define(n(i),g)}break;case"ds-badge":if(!customElements.get(n(i))){d()}break;case"ds-icon":if(!customElements.get(n(i))){a()}break;case"ds-menu":if(!customElements.get(n(i))){l()}break;case"ds-swatch-picker":if(!customElements.get(n(i))){h()}break;case"ds-switch":if(!customElements.get(n(i))){f()}break;case"ds-tag":if(!customElements.get(n(i))){u()}break;case"ds-text":if(!customElements.get(n(i))){v()}break}}))}p();export{g as M,p as d};
|
|
2
|
+
//# sourceMappingURL=p-CLVxgTme.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const t={top:"bottom",right:"left",bottom:"top",left:"right"};function i(t,i){const{anchorRect:s,popupWidth:n,popupHeight:e,align:h,sideOffsetPx:r,alignOffsetPx:o}=t;if(i==="top"||i==="bottom"){return{x:h==="start"?s.left+o:h==="end"?s.right-n+o:s.left+s.width/2-n/2+o,y:i==="top"?s.top-e-r:s.bottom+r}}return{x:i==="left"?s.left-n-r:s.right+r,y:h==="start"?s.top+o:h==="end"?s.bottom-e+o:s.top+s.height/2-e/2+o}}function s(t){const i=t.collisionRect??{top:0,left:0,right:t.viewportWidth,bottom:t.viewportHeight};return{top:i.top+t.viewportPadPx,left:i.left+t.viewportPadPx,right:i.right-t.viewportPadPx,bottom:i.bottom-t.viewportPadPx}}function n(t,i,n){const{popupWidth:e,popupHeight:h}=t;const r=s(t);if(i==="top"||i==="bottom"){return Math.max(r.top-n.y,0)+Math.max(n.y+h-r.bottom,0)}return Math.max(r.left-n.x,0)+Math.max(n.x+e-r.right,0)}function e(t,i,s,n){const e=Math.max(s,n-i);return Math.min(Math.max(t,s),e)}function h(h){const r=s(h);const o=i(h,h.side);const u=t[h.side];const a=i(h,u);const l=n(h,h.side,o);const c=n(h,u,a);const f=l>0&&c<l;const m=f?u:h.side;const d=f?a:o;const p=m==="top"?h.anchorRect.top-r.top-h.sideOffsetPx:m==="bottom"?r.bottom-h.anchorRect.bottom-h.sideOffsetPx:r.bottom-r.top;return{x:e(d.x,h.popupWidth,r.left,r.right),y:e(d.y,h.popupHeight,r.top,r.bottom),resolvedSide:m,availableHeight:Math.max(0,p)}}const r=8;class o{constructor(t){this.scrollResizeHandler=null;this.resizeObserver=null;this.retryRaf=null;this.liveRaf=null;this.anchorMotionRaf=null;this.activeAnchorMotions=0;this.ownerDocument=null;this.last=null;this.isReady=false;this.anchorMotionStartHandler=t=>{if(!this.eventCanMoveAnchor(t))return;this.activeAnchorMotions+=1;this.scheduleAnchorMotionUpdate()};this.anchorMotionEndHandler=t=>{if(!this.eventCanMoveAnchor(t))return;this.activeAnchorMotions=Math.max(0,this.activeAnchorMotions-1);this.scheduleAnchorMotionUpdate()};this.options=t}get ready(){return this.isReady}observe(){this.bindListeners()}unobserve(){this.unbindListeners();this.cancel();this.last=null;this.isReady=false}schedule(t){this.cancelRetry();this.isReady=false;let i=this.options.retryBudget??r;const s=()=>{this.retryRaf=null;if(this.update()){this.isReady=true;this.options.onReady?.();t?.();return}if(i>0){i-=1;this.retryRaf=requestAnimationFrame(s)}};this.retryRaf=requestAnimationFrame(s)}update(){const t=this.options.getAnchor();if(!t)return false;const i=this.options.getPopup();if(!i)return false;this.observeResizeTargets();if(this.options.topLayer&&typeof i.showPopover==="function"&&!i.matches(":popover-open")){try{i.showPopover()}catch{return false}}const s=this.options.measure(t,i);if(!s)return false;const n=h(s);if(!this.last||this.last.x!==n.x||this.last.y!==n.y||this.last.resolvedSide!==n.resolvedSide||this.last.availableHeight!==n.availableHeight){this.last=n;this.options.apply(n)}return true}scheduleLiveUpdate(){const t=this.options.liveUpdate??"sync";if(t==="sync"){this.update();return}if(this.liveRaf!==null)return;if(t==="frame"){this.liveRaf=requestAnimationFrame((()=>{this.liveRaf=null;this.update()}));return}this.liveRaf=requestAnimationFrame((()=>{this.update();this.liveRaf=requestAnimationFrame((()=>{this.liveRaf=null;this.update()}))}))}cancel(){this.cancelRetry();if(this.liveRaf!==null){cancelAnimationFrame(this.liveRaf);this.liveRaf=null}if(this.anchorMotionRaf!==null){cancelAnimationFrame(this.anchorMotionRaf);this.anchorMotionRaf=null}}cancelRetry(){if(this.retryRaf===null)return;cancelAnimationFrame(this.retryRaf);this.retryRaf=null}bindListeners(){this.unbindListeners();this.scrollResizeHandler=()=>this.scheduleLiveUpdate();window.addEventListener("scroll",this.scrollResizeHandler,true);window.addEventListener("resize",this.scrollResizeHandler);if(this.options.observeResize&&typeof ResizeObserver!=="undefined"){this.resizeObserver=new ResizeObserver((()=>this.update()));this.observeResizeTargets()}if(this.options.observeAnchorMotion){this.ownerDocument=this.options.getAnchor()?.ownerDocument??this.options.getOwnerDocument?.()??null;this.ownerDocument?.addEventListener("transitionrun",this.anchorMotionStartHandler,true);this.ownerDocument?.addEventListener("transitionend",this.anchorMotionEndHandler,true);this.ownerDocument?.addEventListener("transitioncancel",this.anchorMotionEndHandler,true);this.ownerDocument?.addEventListener("animationstart",this.anchorMotionStartHandler,true);this.ownerDocument?.addEventListener("animationend",this.anchorMotionEndHandler,true);this.ownerDocument?.addEventListener("animationcancel",this.anchorMotionEndHandler,true)}}unbindListeners(){if(this.scrollResizeHandler){window.removeEventListener("scroll",this.scrollResizeHandler,true);window.removeEventListener("resize",this.scrollResizeHandler);this.scrollResizeHandler=null}this.resizeObserver?.disconnect();this.resizeObserver=null;this.ownerDocument?.removeEventListener("transitionrun",this.anchorMotionStartHandler,true);this.ownerDocument?.removeEventListener("transitionend",this.anchorMotionEndHandler,true);this.ownerDocument?.removeEventListener("transitioncancel",this.anchorMotionEndHandler,true);this.ownerDocument?.removeEventListener("animationstart",this.anchorMotionStartHandler,true);this.ownerDocument?.removeEventListener("animationend",this.anchorMotionEndHandler,true);this.ownerDocument?.removeEventListener("animationcancel",this.anchorMotionEndHandler,true);this.ownerDocument=null;this.activeAnchorMotions=0}eventCanMoveAnchor(t){const i=this.options.getAnchor();const s=t.target;if(!i||!(s instanceof Element))return false;return s===i||s.contains(i)}scheduleAnchorMotionUpdate(){if(this.anchorMotionRaf!==null)return;const t=()=>{this.anchorMotionRaf=null;this.update();if(this.activeAnchorMotions<=0||!this.options.getAnchor()?.isConnected){this.activeAnchorMotions=0;return}this.anchorMotionRaf=requestAnimationFrame(t)};this.anchorMotionRaf=requestAnimationFrame(t)}observeResizeTargets(){if(!this.resizeObserver)return;const t=this.options.getPopup();if(t)this.resizeObserver.observe(t);const i=this.options.getAnchor();if(i)this.resizeObserver.observe(i)}}const u="data-ds-overlay-boundary";function a(t){if(t.assignedSlot)return t.assignedSlot;if(t.parentElement)return t.parentElement;const i=t.getRootNode();return i instanceof ShadowRoot?i.host:null}function l(t){let i=t;while(i){if(i instanceof HTMLElement&&i.hasAttribute(u)){return i}i=a(i)}return null}function c(t,i){if(i==="viewport")return undefined;return(i??l(t))?.getBoundingClientRect()}export{o as A,h as c,c as r};
|
|
2
|
+
//# sourceMappingURL=p-CY4YFAT3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["OPPOSITE_SIDE","top","right","bottom","left","rawPosition","input","side","anchorRect","anchor","popupWidth","popupHeight","align","sideOffsetPx","alignOffsetPx","x","width","y","height","collisionBounds","boundary","collisionRect","viewportWidth","viewportHeight","viewportPadPx","mainAxisOverflow","position","bounds","Math","max","clampToBounds","value","size","minimum","maximumEdge","maximum","min","computeAnchoredPosition","preferred","oppositeSide","opposite","preferredOverflow","oppositeOverflow","useOpposite","resolvedSide","availableHeight","POSITION_RETRY_BUDGET","AnchoredPositionController","constructor","options","this","scrollResizeHandler","resizeObserver","retryRaf","liveRaf","anchorMotionRaf","activeAnchorMotions","ownerDocument","last","isReady","anchorMotionStartHandler","event","eventCanMoveAnchor","scheduleAnchorMotionUpdate","anchorMotionEndHandler","ready","observe","bindListeners","unobserve","unbindListeners","cancel","schedule","onReady","cancelRetry","remaining","retryBudget","attempt","update","requestAnimationFrame","getAnchor","popup","getPopup","observeResizeTargets","topLayer","showPopover","matches","measure","next","apply","scheduleLiveUpdate","mode","liveUpdate","cancelAnimationFrame","window","addEventListener","observeResize","ResizeObserver","observeAnchorMotion","getOwnerDocument","removeEventListener","disconnect","target","Element","contains","tick","isConnected","ANCHORED_OVERLAY_BOUNDARY_ATTRIBUTE","composedParentElement","element","assignedSlot","parentElement","root","getRootNode","ShadowRoot","host","findAnchoredOverlayBoundary","current","HTMLElement","hasAttribute","resolveAnchoredOverlayBoundaryRect","explicitBoundary","undefined","getBoundingClientRect"],"sources":["src/wc/utils/anchored-position.ts","src/wc/utils/anchored-position-controller.ts","src/wc/utils/anchored-overlay-boundary.ts"],"sourcesContent":["export type AnchoredSide = 'top' | 'right' | 'bottom' | 'left';\nexport type AnchoredAlign = 'start' | 'center' | 'end';\n\nexport type AnchoredCollisionRect = Pick<\n DOMRectReadOnly,\n 'top' | 'left' | 'right' | 'bottom' | 'width' | 'height'\n>;\n\nexport interface AnchoredPositionInput {\n anchorRect: Pick<DOMRectReadOnly, 'top' | 'left' | 'right' | 'bottom' | 'width' | 'height'>;\n popupWidth: number;\n popupHeight: number;\n side: AnchoredSide;\n align: AnchoredAlign;\n sideOffsetPx: number;\n alignOffsetPx: number;\n viewportPadPx: number;\n viewportWidth: number;\n viewportHeight: number;\n /** Optional page or panel collision rectangle in viewport-fixed coordinates. */\n collisionRect?: AnchoredCollisionRect;\n}\n\nexport interface AnchoredPosition {\n x: number;\n y: number;\n /** Side actually used, which differs from the request when placement flipped. */\n resolvedSide: AnchoredSide;\n /** Vertical room available on the resolved side inside the padded viewport. */\n availableHeight: number;\n}\n\nconst OPPOSITE_SIDE: Record<AnchoredSide, AnchoredSide> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n};\n\n/** Unclamped coordinates for one candidate side. */\nfunction rawPosition(\n input: AnchoredPositionInput,\n side: AnchoredSide,\n): Pick<AnchoredPosition, 'x' | 'y'> {\n const { anchorRect: anchor, popupWidth, popupHeight, align, sideOffsetPx, alignOffsetPx } = input;\n\n if (side === 'top' || side === 'bottom') {\n return {\n x:\n align === 'start'\n ? anchor.left + alignOffsetPx\n : align === 'end'\n ? anchor.right - popupWidth + alignOffsetPx\n : anchor.left + anchor.width / 2 - popupWidth / 2 + alignOffsetPx,\n y: side === 'top'\n ? anchor.top - popupHeight - sideOffsetPx\n : anchor.bottom + sideOffsetPx,\n };\n }\n\n return {\n x: side === 'left'\n ? anchor.left - popupWidth - sideOffsetPx\n : anchor.right + sideOffsetPx,\n y:\n align === 'start'\n ? anchor.top + alignOffsetPx\n : align === 'end'\n ? anchor.bottom - popupHeight + alignOffsetPx\n : anchor.top + anchor.height / 2 - popupHeight / 2 + alignOffsetPx,\n };\n}\n\n/** Total main-axis spill past the padded viewport for a candidate position. */\nfunction collisionBounds(input: AnchoredPositionInput) {\n const boundary = input.collisionRect ?? {\n top: 0,\n left: 0,\n right: input.viewportWidth,\n bottom: input.viewportHeight,\n };\n return {\n top: boundary.top + input.viewportPadPx,\n left: boundary.left + input.viewportPadPx,\n right: boundary.right - input.viewportPadPx,\n bottom: boundary.bottom - input.viewportPadPx,\n };\n}\n\nfunction mainAxisOverflow(\n input: AnchoredPositionInput,\n side: AnchoredSide,\n position: Pick<AnchoredPosition, 'x' | 'y'>,\n): number {\n const { popupWidth, popupHeight } = input;\n const bounds = collisionBounds(input);\n\n if (side === 'top' || side === 'bottom') {\n return Math.max(bounds.top - position.y, 0) +\n Math.max(position.y + popupHeight - bounds.bottom, 0);\n }\n\n return Math.max(bounds.left - position.x, 0) +\n Math.max(position.x + popupWidth - bounds.right, 0);\n}\n\nfunction clampToBounds(value: number, size: number, minimum: number, maximumEdge: number): number {\n const maximum = Math.max(minimum, maximumEdge - size);\n return Math.min(Math.max(value, minimum), maximum);\n}\n\n/**\n * Pure viewport-fixed anchored-popup layout math shared by every element-anchored\n * overlay: menus, selects, tooltips, and anchored toasts.\n *\n * `side` is preferred. When the popup spills past the padded collision boundary and\n * the opposite side spills less, placement flips on the main axis; the result is\n * then clamped into that boundary on both axes. The viewport is the fallback when\n * no page or panel collision rectangle is supplied. Cross-axis `align` is applied\n * before clamping so `alignOffsetPx` stays an additive nudge.\n *\n * Callers own their own anchor semantics — inner-cell alignment offsets and\n * minimum widths belong to the calling component, not here.\n * @see choice-popup-alignment.ts for the choice-cell alignment transform.\n */\nexport function computeAnchoredPosition(input: AnchoredPositionInput): AnchoredPosition {\n const bounds = collisionBounds(input);\n const preferred = rawPosition(input, input.side);\n const oppositeSide = OPPOSITE_SIDE[input.side];\n const opposite = rawPosition(input, oppositeSide);\n const preferredOverflow = mainAxisOverflow(input, input.side, preferred);\n const oppositeOverflow = mainAxisOverflow(input, oppositeSide, opposite);\n const useOpposite = preferredOverflow > 0 && oppositeOverflow < preferredOverflow;\n const resolvedSide = useOpposite ? oppositeSide : input.side;\n const position = useOpposite ? opposite : preferred;\n const availableHeight =\n resolvedSide === 'top'\n ? input.anchorRect.top - bounds.top - input.sideOffsetPx\n : resolvedSide === 'bottom'\n ? bounds.bottom - input.anchorRect.bottom - input.sideOffsetPx\n : bounds.bottom - bounds.top;\n\n return {\n x: clampToBounds(position.x, input.popupWidth, bounds.left, bounds.right),\n y: clampToBounds(position.y, input.popupHeight, bounds.top, bounds.bottom),\n resolvedSide,\n availableHeight: Math.max(0, availableHeight),\n };\n}\n","import {\n computeAnchoredPosition,\n type AnchoredPosition,\n type AnchoredPositionInput,\n} from './anchored-position';\n\n/** Frames to wait for an anchor and popup to become measurable before giving up. */\nconst POSITION_RETRY_BUDGET = 8;\n\n/**\n * How the scroll/resize path reschedules. Each consumer family measured\n * differently before consolidation, and the differences are preserved verbatim\n * so placement timing is unchanged.\n *\n * - `sync` — measure inside the listener. Selects.\n * - `frame` — coalesce and measure on the next frame. Tooltips.\n * - `double-frame` — coalesce, measure next frame, then measure once more the\n * frame after. Scroll-driven owners such as ShellPage commit a compact-header\n * render in the frame after the scroll event, so a single frame reads a stale\n * anchor rect. Menus.\n */\nexport type AnchoredLiveUpdateMode = 'sync' | 'frame' | 'double-frame';\n\nexport interface AnchoredPositionControllerOptions {\n /** Resolve the anchor at measure time; positioning retries while this is null. */\n getAnchor: () => HTMLElement | null;\n /** Resolve the popup at measure time; positioning retries while this is null. */\n getPopup: () => HTMLElement | null;\n /** Stable owner fallback when framework bindings assign open before anchor. */\n getOwnerDocument?: () => Document | null;\n /**\n * Build the layout input for one measurement pass.\n *\n * The owning component keeps its own anchor semantics here — inner-cell align\n * offsets, minimum widths, and token resolution stay with the component rather\n * than moving into this controller. Return `null` when the component's own\n * guards say the popup is not measurable yet, which schedules a retry.\n */\n measure: (anchor: HTMLElement, popup: HTMLElement) => AnchoredPositionInput | null;\n /** Commit a changed position. Not called when the result is unchanged. */\n apply: (position: AnchoredPosition) => void;\n /**\n * Move a `popover=\"manual\"` popup into the native top layer before measuring.\n *\n * Use this for popups that remain in their owner's DOM tree. The top layer\n * gives `position: fixed` viewport coordinates even when an application\n * ancestor establishes a fixed-position containing block through containment,\n * transforms, or filters.\n */\n topLayer?: boolean;\n /** Fired once per `start()` when the first measurement succeeds. */\n onReady?: () => void;\n /** Scroll/resize behavior. Defaults to `sync`. */\n liveUpdate?: AnchoredLiveUpdateMode;\n /**\n * Re-measure when the popup or anchor resizes. Tooltips need this because the\n * label's `ds-text` upgrade changes the measured width after mount.\n */\n observeResize?: boolean;\n /**\n * Follow CSS transitions or animations that move the anchor without resizing\n * it. The observer only runs a measurement loop while related motion is active.\n */\n observeAnchorMotion?: boolean;\n retryBudget?: number;\n}\n\n/**\n * Lifecycle owner for an element-anchored popup: listener binding, measurement\n * retries, frame coalescing, and teardown.\n *\n * Pairs with `computeAnchoredPosition`, which owns the geometry. Split this way\n * because the geometry is pure and exhaustively testable while the lifecycle is\n * timing-dependent; keeping them separate means the risky half lives in exactly\n * one place.\n *\n * Not suitable for overlays that place several popups in one shared pass — Toast\n * positions N anchored records inside a single layout commit and keeps its own\n * scheduler, using only the geometry function.\n */\nexport class AnchoredPositionController {\n private readonly options: AnchoredPositionControllerOptions;\n private scrollResizeHandler: (() => void) | null = null;\n private resizeObserver: ResizeObserver | null = null;\n private retryRaf: number | null = null;\n private liveRaf: number | null = null;\n private anchorMotionRaf: number | null = null;\n private activeAnchorMotions = 0;\n private ownerDocument: Document | null = null;\n private last: AnchoredPosition | null = null;\n private isReady = false;\n private readonly anchorMotionStartHandler = (event: Event) => {\n if (!this.eventCanMoveAnchor(event)) return;\n this.activeAnchorMotions += 1;\n this.scheduleAnchorMotionUpdate();\n };\n private readonly anchorMotionEndHandler = (event: Event) => {\n if (!this.eventCanMoveAnchor(event)) return;\n this.activeAnchorMotions = Math.max(0, this.activeAnchorMotions - 1);\n this.scheduleAnchorMotionUpdate();\n };\n\n constructor(options: AnchoredPositionControllerOptions) {\n this.options = options;\n }\n\n /** `true` once a measurement has succeeded, for gating popup reveal. */\n get ready(): boolean {\n return this.isReady;\n }\n\n /**\n * Bind scroll/resize tracking for an opening popup.\n *\n * Deliberately does not schedule placement: every consumer binds listeners and\n * then schedules in its own order, and folding both into one call produced two\n * overlapping retry loops. Call `schedule()` or `update()` separately.\n */\n observe(): void {\n this.bindListeners();\n }\n\n /** Unbind tracking, cancel pending frames, and clear the cached position. */\n unobserve(): void {\n this.unbindListeners();\n this.cancel();\n this.last = null;\n this.isReady = false;\n }\n\n /**\n * Retry measurement each frame until it succeeds or the budget runs out, so a\n * popup is never revealed at 0,0 after a failed first pass.\n */\n schedule(onReady?: () => void): void {\n this.cancelRetry();\n this.isReady = false;\n\n let remaining = this.options.retryBudget ?? POSITION_RETRY_BUDGET;\n\n const attempt = () => {\n this.retryRaf = null;\n if (this.update()) {\n this.isReady = true;\n this.options.onReady?.();\n onReady?.();\n return;\n }\n if (remaining > 0) {\n remaining -= 1;\n this.retryRaf = requestAnimationFrame(attempt);\n }\n };\n\n this.retryRaf = requestAnimationFrame(attempt);\n }\n\n /** Measure and commit once. @returns `false` when the popup is not measurable. */\n update(): boolean {\n const anchor = this.options.getAnchor();\n if (!anchor) return false;\n const popup = this.options.getPopup();\n if (!popup) return false;\n this.observeResizeTargets();\n\n if (\n this.options.topLayer &&\n typeof popup.showPopover === 'function' &&\n !popup.matches(':popover-open')\n ) {\n try {\n popup.showPopover();\n } catch {\n // The popup may not be connected yet. The scheduled retry will try again\n // on the next frame instead of measuring it in the wrong coordinate space.\n return false;\n }\n }\n\n const input = this.options.measure(anchor, popup);\n if (!input) return false;\n\n const next = computeAnchoredPosition(input);\n if (\n !this.last ||\n this.last.x !== next.x ||\n this.last.y !== next.y ||\n this.last.resolvedSide !== next.resolvedSide ||\n this.last.availableHeight !== next.availableHeight\n ) {\n this.last = next;\n this.options.apply(next);\n }\n return true;\n }\n\n /** Reposition an already-open popup without hiding it. */\n scheduleLiveUpdate(): void {\n const mode = this.options.liveUpdate ?? 'sync';\n if (mode === 'sync') {\n this.update();\n return;\n }\n\n if (this.liveRaf !== null) return;\n\n if (mode === 'frame') {\n this.liveRaf = requestAnimationFrame(() => {\n this.liveRaf = null;\n this.update();\n });\n return;\n }\n\n // double-frame stays coalesced until the second frame resolves.\n this.liveRaf = requestAnimationFrame(() => {\n this.update();\n this.liveRaf = requestAnimationFrame(() => {\n this.liveRaf = null;\n this.update();\n });\n });\n }\n\n /** Cancel pending retry and live frames without unbinding listeners. */\n cancel(): void {\n this.cancelRetry();\n if (this.liveRaf !== null) {\n cancelAnimationFrame(this.liveRaf);\n this.liveRaf = null;\n }\n if (this.anchorMotionRaf !== null) {\n cancelAnimationFrame(this.anchorMotionRaf);\n this.anchorMotionRaf = null;\n }\n }\n\n private cancelRetry(): void {\n if (this.retryRaf === null) return;\n cancelAnimationFrame(this.retryRaf);\n this.retryRaf = null;\n }\n\n private bindListeners(): void {\n this.unbindListeners();\n this.scrollResizeHandler = () => this.scheduleLiveUpdate();\n // Capture phase so scrolling inside any ancestor repositions the popup.\n window.addEventListener('scroll', this.scrollResizeHandler, true);\n window.addEventListener('resize', this.scrollResizeHandler);\n\n if (this.options.observeResize && typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(() => this.update());\n this.observeResizeTargets();\n }\n\n if (this.options.observeAnchorMotion) {\n this.ownerDocument =\n this.options.getAnchor()?.ownerDocument ?? this.options.getOwnerDocument?.() ?? null;\n this.ownerDocument?.addEventListener('transitionrun', this.anchorMotionStartHandler, true);\n this.ownerDocument?.addEventListener('transitionend', this.anchorMotionEndHandler, true);\n this.ownerDocument?.addEventListener('transitioncancel', this.anchorMotionEndHandler, true);\n this.ownerDocument?.addEventListener('animationstart', this.anchorMotionStartHandler, true);\n this.ownerDocument?.addEventListener('animationend', this.anchorMotionEndHandler, true);\n this.ownerDocument?.addEventListener('animationcancel', this.anchorMotionEndHandler, true);\n }\n }\n\n private unbindListeners(): void {\n if (this.scrollResizeHandler) {\n window.removeEventListener('scroll', this.scrollResizeHandler, true);\n window.removeEventListener('resize', this.scrollResizeHandler);\n this.scrollResizeHandler = null;\n }\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n this.ownerDocument?.removeEventListener('transitionrun', this.anchorMotionStartHandler, true);\n this.ownerDocument?.removeEventListener('transitionend', this.anchorMotionEndHandler, true);\n this.ownerDocument?.removeEventListener('transitioncancel', this.anchorMotionEndHandler, true);\n this.ownerDocument?.removeEventListener('animationstart', this.anchorMotionStartHandler, true);\n this.ownerDocument?.removeEventListener('animationend', this.anchorMotionEndHandler, true);\n this.ownerDocument?.removeEventListener('animationcancel', this.anchorMotionEndHandler, true);\n this.ownerDocument = null;\n this.activeAnchorMotions = 0;\n }\n\n private eventCanMoveAnchor(event: Event): boolean {\n const anchor = this.options.getAnchor();\n const target = event.target;\n if (!anchor || !(target instanceof Element)) return false;\n // Motion on the anchor or one of its layout ancestors can move its rect.\n // Descendant-only animation is irrelevant unless it resizes the anchor,\n // which the ResizeObserver path already covers.\n return target === anchor || target.contains(anchor);\n }\n\n private scheduleAnchorMotionUpdate(): void {\n if (this.anchorMotionRaf !== null) return;\n const tick = () => {\n this.anchorMotionRaf = null;\n this.update();\n if (this.activeAnchorMotions <= 0 || !this.options.getAnchor()?.isConnected) {\n this.activeAnchorMotions = 0;\n return;\n }\n this.anchorMotionRaf = requestAnimationFrame(tick);\n };\n this.anchorMotionRaf = requestAnimationFrame(tick);\n }\n\n /**\n * Re-attach the resize observer after the popup remounts. Safe to call\n * repeatedly; `ResizeObserver.observe` ignores duplicate targets.\n */\n observeResizeTargets(): void {\n if (!this.resizeObserver) return;\n const popup = this.options.getPopup();\n if (popup) this.resizeObserver.observe(popup);\n const anchor = this.options.getAnchor();\n if (anchor) this.resizeObserver.observe(anchor);\n }\n}\n","import type { AnchoredCollisionRect } from './anchored-position';\n\n/** Attribute placed on a page or panel whose visible rectangle owns anchored overlays. */\nexport const ANCHORED_OVERLAY_BOUNDARY_ATTRIBUTE = 'data-ds-overlay-boundary';\n\n/** An element-owned collision rectangle, or an explicit escape to the viewport. */\nexport type AnchoredOverlayBoundary = HTMLElement | 'viewport';\n\nfunction composedParentElement(element: Element): Element | null {\n if (element.assignedSlot) return element.assignedSlot;\n if (element.parentElement) return element.parentElement;\n const root = element.getRootNode();\n return root instanceof ShadowRoot ? root.host : null;\n}\n\n/**\n * Find the nearest collision owner through light DOM, assigned slots, and open\n * shadow roots. The popup may live in the top layer or a body portal; ownership\n * follows its anchor instead of the popup's rendering location.\n */\nexport function findAnchoredOverlayBoundary(anchor: Element): HTMLElement | null {\n let current: Element | null = anchor;\n while (current) {\n if (\n current instanceof HTMLElement &&\n current.hasAttribute(ANCHORED_OVERLAY_BOUNDARY_ATTRIBUTE)\n ) {\n return current;\n }\n current = composedParentElement(current);\n }\n return null;\n}\n\n/** Resolve an explicit owner first, then the nearest composed-tree boundary. */\nexport function resolveAnchoredOverlayBoundaryRect(\n anchor: Element,\n explicitBoundary?: AnchoredOverlayBoundary,\n): AnchoredCollisionRect | undefined {\n if (explicitBoundary === 'viewport') return undefined;\n return (explicitBoundary ?? findAnchoredOverlayBoundary(anchor))?.getBoundingClientRect();\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{p as o,H as t,c as n,h as r,a as i,t as s}from"./index.js";import{d as a}from"./p-BFfLvMZd.js";import{d as e}from"./p-LHzBS95u.js";import{C as c}from"./p-CuwopElg.js";const d=()=>`.ds-control--lg.sc-ds-tag,.ds-control--lg.sc-ds-tag-h,.ds-control--md.sc-ds-tag-h,.ds-control--md.sc-ds-tag,.ds-control--sm.sc-ds-tag-h,.ds-control--sm.sc-ds-tag,.ds-control--xs.sc-ds-tag-h,.ds-control--xs.sc-ds-tag{--ds-control-radius:var(--dimension-radius-025)}.ds-control--lg.sc-ds-tag-h,.ds-control--lg.sc-ds-tag{--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-tag-h,.ds-control--md.sc-ds-tag{--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-tag-h,.ds-control--sm.sc-ds-tag{--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-tag-h,.ds-control--xs.sc-ds-tag{--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-tag:root,.sc-ds-tag-h,.ds-forced-colors-scope.sc-ds-tag{--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-tag-h,.ds-interaction-fill.sc-ds-tag{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-tag-h::before,.ds-interaction-fill.sc-ds-tag::before,.ds-interaction-fill.sc-ds-tag-h::after,.ds-interaction-fill.sc-ds-tag::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;cursor:inherit;transition:none}.ds-interaction-fill.sc-ds-tag-h::before,.ds-interaction-fill.sc-ds-tag::before{z-index:1}.ds-interaction-fill.sc-ds-tag-h::after,.ds-interaction-fill.sc-ds-tag::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-tag-h,.ds-interaction-fill--bordered.sc-ds-tag{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-tag-h::before,.ds-interaction-fill--selected.sc-ds-tag::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-tag-h,.ds-interaction-fill--selected.sc-ds-tag{--ds-interaction-dot-ring:var(--ds-interaction-active)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-tag-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-tag:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}}.ds-interaction-fill.sc-ds-tag-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-tag:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill--grouped.sc-ds-tag-h::after,.ds-interaction-fill--grouped.sc-ds-tag::after,.ds-interaction-fill--grouped.sc-ds-tag-h:active:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-tag:active:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill--grouped.sc-ds-tag-h:hover:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-tag:hover:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}}.ds-interaction-fill--grouped.sc-ds-tag-h,.ds-interaction-fill--grouped.sc-ds-tag{--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-tag-h>.ds-interaction-fill__content.sc-ds-tag,.ds-interaction-fill.sc-ds-tag>.ds-interaction-fill__content.sc-ds-tag,.ds-interaction-fill__content.sc-ds-tag{position:relative;z-index:2;cursor:inherit}.ds-interaction-fill--on-faint.sc-ds-tag-h,.ds-interaction-fill--on-faint.sc-ds-tag{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-tag-h,.ds-interaction-fill--on-medium.sc-ds-tag{--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-tag-h,.ds-interaction-fill--on-bold.sc-ds-tag{--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-tag-h,.ds-interaction-fill--on-strong.sc-ds-tag{--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-tag-h,.ds-interaction-fill--on-translucent.sc-ds-tag{--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-tag-h,.ds-interaction-fill--on-inverted.sc-ds-tag{--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-tag-h,.ds-interaction-fill--on-media.sc-ds-tag{--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-tag-h,.ds-interaction-fill--on-always-dark.sc-ds-tag{--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-navigation.sc-ds-tag-h,.ds-interaction-fill--on-navigation.sc-ds-tag{--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)}@media (forced-colors: active){.ds-interaction-fill.sc-ds-tag-h::after,.ds-interaction-fill.sc-ds-tag::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--selected.sc-ds-tag-h::before,.ds-interaction-fill--selected.sc-ds-tag::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-tag-h:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill.sc-ds-tag: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-tag:root,.sc-ds-tag-h,.ds-forced-colors-scope.sc-ds-tag{--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-tag-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-tag-h,.ds-focus-ring.sc-ds-tag,.ds-focus-ring-inset.sc-ds-tag-h,.ds-focus-ring-inset.sc-ds-tag{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-tag-h:focus-visible,.ds-focus-ring.sc-ds-tag: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-tag-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-tag{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-tag-h:focus-visible,.ds-focus-ring-inset.sc-ds-tag:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-tag-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-tag: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-tag-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-tag{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-tag-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-tag::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-tag-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){.sc-ds-tag:root,.sc-ds-tag-h,.ds-forced-colors-scope.sc-ds-tag{--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-tag-h,.ds-control-inactive.sc-ds-tag{opacity:var(--effect-opacity-medium);pointer-events:none;cursor:not-allowed}@media (forced-colors: active){.ds-control-inactive.sc-ds-tag-h,.ds-control-inactive.sc-ds-tag{color:var(--ds-forced-color-disabled);opacity:1}}.sc-ds-tag-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-tag-h{border-radius:var(--dimension-radius-half)}.tag__label.sc-ds-tag{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-tag-h,.ds-control--lg.ds-control--inset.sc-ds-tag{--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-tag-h,.ds-control--md.ds-control--inset.sc-ds-tag{--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-tag-h,.ds-control--sm.ds-control--inset.sc-ds-tag{--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-tag-h,.ds-control--xs.ds-control--inset.sc-ds-tag{--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-tag-h,.ds-control--lg.ds-control--inset-double.sc-ds-tag{--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-tag-h,.ds-control--md.ds-control--inset-double.sc-ds-tag{--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-tag-h,.ds-control--sm.ds-control--inset-double.sc-ds-tag{--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) )}.sc-ds-tag-h{min-inline-size:var(--ds-control-height)}.tag--intent-neutral.tag--contrast-strong.sc-ds-tag-h{background-color:var(--color-background-strong-neutral);color:var(--color-foreground-medium-neutral)}.tag--intent-brand.tag--contrast-strong.sc-ds-tag-h{background-color:var(--color-background-strong-brand);color:var(--color-foreground-on-strong-background-primary)}.tag--intent-ai.tag--contrast-strong.sc-ds-tag-h{background-color:var(--color-background-strong-ai);color:var(--color-foreground-medium-ai)}.tag--intent-negative.tag--contrast-strong.sc-ds-tag-h{background-color:var(--color-background-strong-negative);color:var(--color-foreground-medium-negative)}.tag--intent-warning.tag--contrast-strong.sc-ds-tag-h{background-color:var(--color-background-strong-warning);color:var(--color-foreground-medium-warning)}.tag--intent-caution.tag--contrast-strong.sc-ds-tag-h{background-color:var(--color-background-strong-caution);color:var(--color-foreground-medium-caution)}.tag--intent-positive.tag--contrast-strong.sc-ds-tag-h{background-color:var(--color-background-strong-positive);color:var(--color-foreground-medium-positive)}.tag--intent-neutral.tag--contrast-bold.sc-ds-tag-h{background-color:var(--color-background-bold-neutral);color:var(--color-foreground-on-bold-background-primary)}.tag--intent-brand.tag--contrast-bold.sc-ds-tag-h{background-color:var(--color-background-bold-brand);color:var(--color-foreground-on-bold-background-primary)}.tag--intent-ai.tag--contrast-bold.sc-ds-tag-h{background-color:var(--color-background-bold-ai);color:var(--color-foreground-on-bold-background-primary)}.tag--intent-negative.tag--contrast-bold.sc-ds-tag-h{background-color:var(--color-background-bold-negative);color:var(--color-foreground-on-bold-background-primary)}.tag--intent-warning.tag--contrast-bold.sc-ds-tag-h{background-color:var(--color-background-bold-warning);color:var(--color-foreground-on-bold-background-primary)}.tag--intent-caution.tag--contrast-bold.sc-ds-tag-h{background-color:var(--color-background-bold-caution);color:var(--color-foreground-on-bold-background-primary)}.tag--intent-positive.tag--contrast-bold.sc-ds-tag-h{background-color:var(--color-background-bold-positive);color:var(--color-foreground-on-bold-background-primary)}.tag--intent-neutral.tag--contrast-medium.sc-ds-tag-h{background-color:var(--color-background-medium-neutral);color:var(--color-foreground-strong-neutral)}.tag--intent-brand.tag--contrast-medium.sc-ds-tag-h{background-color:var(--color-background-medium-brand);color:var(--color-foreground-on-medium-background-primary)}.tag--intent-ai.tag--contrast-medium.sc-ds-tag-h{background-color:var(--color-background-medium-ai);color:var(--color-foreground-strong-ai)}.tag--intent-negative.tag--contrast-medium.sc-ds-tag-h{background-color:var(--color-background-medium-negative);color:var(--color-foreground-strong-negative)}.tag--intent-warning.tag--contrast-medium.sc-ds-tag-h{background-color:var(--color-background-medium-warning);color:var(--color-foreground-strong-warning)}.tag--intent-caution.tag--contrast-medium.sc-ds-tag-h{background-color:var(--color-background-medium-caution);color:var(--color-foreground-strong-caution)}.tag--intent-positive.tag--contrast-medium.sc-ds-tag-h{background-color:var(--color-background-medium-positive);color:var(--color-foreground-strong-positive)}.tag--intent-neutral.tag--contrast-faint.sc-ds-tag-h{background-color:var(--color-background-faint-neutral);color:var(--color-foreground-bold-neutral)}.tag--intent-brand.tag--contrast-faint.sc-ds-tag-h{background-color:var(--color-background-faint-brand);color:var(--color-foreground-bold-brand)}.tag--intent-ai.tag--contrast-faint.sc-ds-tag-h{background-color:var(--color-background-faint-ai);color:var(--color-foreground-bold-ai)}.tag--intent-negative.tag--contrast-faint.sc-ds-tag-h{background-color:var(--color-background-faint-negative);color:var(--color-foreground-bold-negative)}.tag--intent-warning.tag--contrast-faint.sc-ds-tag-h{background-color:var(--color-background-faint-warning);color:var(--color-foreground-bold-warning)}.tag--intent-caution.tag--contrast-faint.sc-ds-tag-h{background-color:var(--color-background-faint-caution);color:var(--color-foreground-bold-caution)}.tag--intent-positive.tag--contrast-faint.sc-ds-tag-h{background-color:var(--color-background-faint-positive);color:var(--color-foreground-bold-positive)}.tag--interactive.sc-ds-tag-h{padding:0;gap:0}.tag__button.sc-ds-tag{all:unset;position:relative;z-index:0;display:flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:0;max-width:100%;height:100%;padding:0 var(--ds-control-padding-inline);gap:var(--ds-control-gap);border-radius:inherit;color:inherit;cursor:default}.tag__button.sc-ds-tag:disabled{cursor:not-allowed}.tag__button--expanded.sc-ds-tag::after{background:var(--ds-interaction-pressed)}.tag__prefix-icon.sc-ds-tag,.tag__suffix-icon.sc-ds-tag{position:relative;z-index:2;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 g=o(class o extends t{constructor(o){super();if(o!==false){this.__registerHost()}this.dsClick=n(this,"dsClick",7);this.icon="";this.intent="neutral";this.contrast="faint";this.size="md";this.isInset=false;this.insetDepth="single";this.rounded=false;this.interactive=false;this.expanded=false;this.isInactive=false;this.handleClick=o=>{if(!this.interactive||this.isInactive)return;this.dsClick.emit(o)}}render(){const o=c[this.size];const t=l[this.size];const n=this.isInset&&this.insetDepth==="double"&&this.size!=="xs";const s=this.maxWidth!=null?{maxWidth:typeof this.maxWidth==="number"?`${this.maxWidth}px`:this.maxWidth}:undefined;const a={tag:true,[`tag--intent-${this.intent}`]:true,[`tag--contrast-${this.contrast}`]: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&&!n,"ds-control--inset-double":n,"tag--rounded":this.rounded,"tag--interactive":this.interactive,"ds-control-inactive":this.interactive&&this.isInactive};const e=[this.icon&&r("ds-icon",{class:"tag__prefix-icon",name:this.icon,size:t,color:"inherit"}),r("ds-text",{class:"tag__label",as:"span",variant:o,color:"inherit"},this.label)];if(!this.interactive){return r(i,{class:a,style:s},e)}return r(i,{class:a,style:s},r("button",{type:"button",class:{tag__button:true,"tag__button--expanded":this.expanded,"ds-interaction-fill":true,"ds-focus-ring-inset":true},"aria-haspopup":"menu","aria-expanded":this.expanded?"true":"false","aria-controls":this.ariaControls,disabled:this.isInactive||undefined,onClick:this.handleClick},e,r("ds-icon",{class:"tag__suffix-icon",name:"ChevronUpDown",size:t,color:"inherit"})))}static get style(){return d()}},[2,"ds-tag",{label:[1],icon:[1],intent:[1],contrast:[1],size:[1],isInset:[4,"is-inset"],insetDepth:[1,"inset-depth"],rounded:[4],maxWidth:[8,"max-width"],interactive:[4],expanded:[4],ariaControls:[1,"aria-controls"],isInactive:[4,"is-inactive"]}]);function v(){if(typeof customElements==="undefined"){return}const o=["ds-tag","ds-icon","ds-text"];o.forEach((o=>{switch(o){case"ds-tag":if(!customElements.get(s(o))){customElements.define(s(o),g)}break;case"ds-icon":if(!customElements.get(s(o))){a()}break;case"ds-text":if(!customElements.get(s(o))){e()}break}}))}v();export{g as T,v as d};
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{p as o,H as t,c as n,h as r,a as i,t as s}from"./index.js";import{d as a}from"./p-BFfLvMZd.js";import{d as e}from"./p-CAnnQL1F.js";import{C as c}from"./p-CuwopElg.js";const d=()=>`.ds-control--lg.sc-ds-tag,.ds-control--lg.sc-ds-tag-h,.ds-control--md.sc-ds-tag-h,.ds-control--md.sc-ds-tag,.ds-control--sm.sc-ds-tag-h,.ds-control--sm.sc-ds-tag,.ds-control--xs.sc-ds-tag-h,.ds-control--xs.sc-ds-tag{--ds-control-radius:var(--dimension-radius-025)}.ds-control--lg.sc-ds-tag-h,.ds-control--lg.sc-ds-tag{--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-tag-h,.ds-control--md.sc-ds-tag{--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-tag-h,.ds-control--sm.sc-ds-tag{--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-tag-h,.ds-control--xs.sc-ds-tag{--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-tag:root,.sc-ds-tag-h,.ds-forced-colors-scope.sc-ds-tag{--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-tag-h,.ds-interaction-fill.sc-ds-tag{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-tag-h::before,.ds-interaction-fill.sc-ds-tag::before,.ds-interaction-fill.sc-ds-tag-h::after,.ds-interaction-fill.sc-ds-tag::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;cursor:inherit;transition:none}.ds-interaction-fill.sc-ds-tag-h::before,.ds-interaction-fill.sc-ds-tag::before{z-index:1}.ds-interaction-fill.sc-ds-tag-h::after,.ds-interaction-fill.sc-ds-tag::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-tag-h,.ds-interaction-fill--bordered.sc-ds-tag{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-tag-h::before,.ds-interaction-fill--selected.sc-ds-tag::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-tag-h,.ds-interaction-fill--selected.sc-ds-tag{--ds-interaction-dot-ring:var(--ds-interaction-active)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-tag-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-tag:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}}.ds-interaction-fill.sc-ds-tag-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-tag:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill--grouped.sc-ds-tag-h::after,.ds-interaction-fill--grouped.sc-ds-tag::after,.ds-interaction-fill--grouped.sc-ds-tag-h:active:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-tag:active:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill--grouped.sc-ds-tag-h:hover:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-tag:hover:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}}.ds-interaction-fill--grouped.sc-ds-tag-h,.ds-interaction-fill--grouped.sc-ds-tag{--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-tag-h>.ds-interaction-fill__content.sc-ds-tag,.ds-interaction-fill.sc-ds-tag>.ds-interaction-fill__content.sc-ds-tag,.ds-interaction-fill__content.sc-ds-tag{position:relative;z-index:2;cursor:inherit}.ds-interaction-fill--on-faint.sc-ds-tag-h,.ds-interaction-fill--on-faint.sc-ds-tag{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-tag-h,.ds-interaction-fill--on-medium.sc-ds-tag{--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-tag-h,.ds-interaction-fill--on-bold.sc-ds-tag{--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-tag-h,.ds-interaction-fill--on-strong.sc-ds-tag{--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-tag-h,.ds-interaction-fill--on-translucent.sc-ds-tag{--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-tag-h,.ds-interaction-fill--on-inverted.sc-ds-tag{--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-tag-h,.ds-interaction-fill--on-media.sc-ds-tag{--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-tag-h,.ds-interaction-fill--on-always-dark.sc-ds-tag{--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-navigation.sc-ds-tag-h,.ds-interaction-fill--on-navigation.sc-ds-tag{--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)}@media (forced-colors: active){.ds-interaction-fill.sc-ds-tag-h::after,.ds-interaction-fill.sc-ds-tag::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--selected.sc-ds-tag-h::before,.ds-interaction-fill--selected.sc-ds-tag::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-tag-h:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill.sc-ds-tag: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-tag:root,.sc-ds-tag-h,.ds-forced-colors-scope.sc-ds-tag{--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-tag-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-tag-h,.ds-focus-ring.sc-ds-tag,.ds-focus-ring-inset.sc-ds-tag-h,.ds-focus-ring-inset.sc-ds-tag{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-tag-h:focus-visible,.ds-focus-ring.sc-ds-tag: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-tag-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-tag{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-tag-h:focus-visible,.ds-focus-ring-inset.sc-ds-tag:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-tag-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-tag: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-tag-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-tag{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-tag-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-tag::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-tag-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){.sc-ds-tag:root,.sc-ds-tag-h,.ds-forced-colors-scope.sc-ds-tag{--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-tag-h,.ds-control-inactive.sc-ds-tag{opacity:var(--effect-opacity-medium);pointer-events:none;cursor:not-allowed}@media (forced-colors: active){.ds-control-inactive.sc-ds-tag-h,.ds-control-inactive.sc-ds-tag{color:var(--ds-forced-color-disabled);opacity:1}}.sc-ds-tag-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-tag-h{border-radius:var(--dimension-radius-half)}.tag__label.sc-ds-tag{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-tag-h,.ds-control--lg.ds-control--inset.sc-ds-tag{--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-tag-h,.ds-control--md.ds-control--inset.sc-ds-tag{--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-tag-h,.ds-control--sm.ds-control--inset.sc-ds-tag{--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-tag-h,.ds-control--xs.ds-control--inset.sc-ds-tag{--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-tag-h,.ds-control--lg.ds-control--inset-double.sc-ds-tag{--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-tag-h,.ds-control--md.ds-control--inset-double.sc-ds-tag{--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-tag-h,.ds-control--sm.ds-control--inset-double.sc-ds-tag{--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) )}.sc-ds-tag-h{min-inline-size:var(--ds-control-height)}.tag--intent-neutral.tag--contrast-strong.sc-ds-tag-h{background-color:var(--color-background-strong-neutral);color:var(--color-foreground-medium-neutral)}.tag--intent-brand.tag--contrast-strong.sc-ds-tag-h{background-color:var(--color-background-strong-brand);color:var(--color-foreground-on-strong-background-primary)}.tag--intent-ai.tag--contrast-strong.sc-ds-tag-h{background-color:var(--color-background-strong-ai);color:var(--color-foreground-medium-ai)}.tag--intent-negative.tag--contrast-strong.sc-ds-tag-h{background-color:var(--color-background-strong-negative);color:var(--color-foreground-medium-negative)}.tag--intent-warning.tag--contrast-strong.sc-ds-tag-h{background-color:var(--color-background-strong-warning);color:var(--color-foreground-medium-warning)}.tag--intent-caution.tag--contrast-strong.sc-ds-tag-h{background-color:var(--color-background-strong-caution);color:var(--color-foreground-medium-caution)}.tag--intent-positive.tag--contrast-strong.sc-ds-tag-h{background-color:var(--color-background-strong-positive);color:var(--color-foreground-medium-positive)}.tag--intent-neutral.tag--contrast-bold.sc-ds-tag-h{background-color:var(--color-background-bold-neutral);color:var(--color-foreground-on-bold-background-primary)}.tag--intent-brand.tag--contrast-bold.sc-ds-tag-h{background-color:var(--color-background-bold-brand);color:var(--color-foreground-on-bold-background-primary)}.tag--intent-ai.tag--contrast-bold.sc-ds-tag-h{background-color:var(--color-background-bold-ai);color:var(--color-foreground-on-bold-background-primary)}.tag--intent-negative.tag--contrast-bold.sc-ds-tag-h{background-color:var(--color-background-bold-negative);color:var(--color-foreground-on-bold-background-primary)}.tag--intent-warning.tag--contrast-bold.sc-ds-tag-h{background-color:var(--color-background-bold-warning);color:var(--color-foreground-on-bold-background-primary)}.tag--intent-caution.tag--contrast-bold.sc-ds-tag-h{background-color:var(--color-background-bold-caution);color:var(--color-foreground-on-bold-background-primary)}.tag--intent-positive.tag--contrast-bold.sc-ds-tag-h{background-color:var(--color-background-bold-positive);color:var(--color-foreground-on-bold-background-primary)}.tag--intent-neutral.tag--contrast-medium.sc-ds-tag-h{background-color:var(--color-background-medium-neutral);color:var(--color-foreground-strong-neutral)}.tag--intent-brand.tag--contrast-medium.sc-ds-tag-h{background-color:var(--color-background-medium-brand);color:var(--color-foreground-on-medium-background-primary)}.tag--intent-ai.tag--contrast-medium.sc-ds-tag-h{background-color:var(--color-background-medium-ai);color:var(--color-foreground-strong-ai)}.tag--intent-negative.tag--contrast-medium.sc-ds-tag-h{background-color:var(--color-background-medium-negative);color:var(--color-foreground-strong-negative)}.tag--intent-warning.tag--contrast-medium.sc-ds-tag-h{background-color:var(--color-background-medium-warning);color:var(--color-foreground-strong-warning)}.tag--intent-caution.tag--contrast-medium.sc-ds-tag-h{background-color:var(--color-background-medium-caution);color:var(--color-foreground-strong-caution)}.tag--intent-positive.tag--contrast-medium.sc-ds-tag-h{background-color:var(--color-background-medium-positive);color:var(--color-foreground-strong-positive)}.tag--intent-neutral.tag--contrast-faint.sc-ds-tag-h{background-color:var(--color-background-faint-neutral);color:var(--color-foreground-bold-neutral)}.tag--intent-brand.tag--contrast-faint.sc-ds-tag-h{background-color:var(--color-background-faint-brand);color:var(--color-foreground-bold-brand)}.tag--intent-ai.tag--contrast-faint.sc-ds-tag-h{background-color:var(--color-background-faint-ai);color:var(--color-foreground-bold-ai)}.tag--intent-negative.tag--contrast-faint.sc-ds-tag-h{background-color:var(--color-background-faint-negative);color:var(--color-foreground-bold-negative)}.tag--intent-warning.tag--contrast-faint.sc-ds-tag-h{background-color:var(--color-background-faint-warning);color:var(--color-foreground-bold-warning)}.tag--intent-caution.tag--contrast-faint.sc-ds-tag-h{background-color:var(--color-background-faint-caution);color:var(--color-foreground-bold-caution)}.tag--intent-positive.tag--contrast-faint.sc-ds-tag-h{background-color:var(--color-background-faint-positive);color:var(--color-foreground-bold-positive)}.tag--interactive.sc-ds-tag-h{padding:0;gap:0}.tag__button.sc-ds-tag{all:unset;position:relative;z-index:0;display:flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:0;max-width:100%;height:100%;padding:0 var(--ds-control-padding-inline);gap:var(--ds-control-gap);border-radius:inherit;color:inherit;cursor:default}.tag__button.sc-ds-tag:disabled{cursor:not-allowed}.tag__button--expanded.sc-ds-tag::after{background:var(--ds-interaction-pressed)}.tag__prefix-icon.sc-ds-tag,.tag__suffix-icon.sc-ds-tag{position:relative;z-index:2;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 g=o(class o extends t{constructor(o){super();if(o!==false){this.__registerHost()}this.dsClick=n(this,"dsClick",7);this.icon="";this.intent="neutral";this.contrast="faint";this.size="md";this.isInset=false;this.insetDepth="single";this.rounded=false;this.interactive=false;this.expanded=false;this.isInactive=false;this.handleClick=o=>{if(!this.interactive||this.isInactive)return;this.dsClick.emit(o)}}render(){const o=c[this.size];const t=l[this.size];const n=this.isInset&&this.insetDepth==="double"&&this.size!=="xs";const s=this.maxWidth!=null?{maxWidth:typeof this.maxWidth==="number"?`${this.maxWidth}px`:this.maxWidth}:undefined;const a={tag:true,[`tag--intent-${this.intent}`]:true,[`tag--contrast-${this.contrast}`]: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&&!n,"ds-control--inset-double":n,"tag--rounded":this.rounded,"tag--interactive":this.interactive,"ds-control-inactive":this.interactive&&this.isInactive};const e=[this.icon&&r("ds-icon",{class:"tag__prefix-icon",name:this.icon,size:t,color:"inherit"}),r("ds-text",{class:"tag__label",as:"span",variant:o,color:"inherit"},this.label)];if(!this.interactive){return r(i,{class:a,style:s},e)}return r(i,{class:a,style:s},r("button",{type:"button",class:{tag__button:true,"tag__button--expanded":this.expanded,"ds-interaction-fill":true,"ds-focus-ring-inset":true},"aria-haspopup":"menu","aria-expanded":this.expanded?"true":"false","aria-controls":this.ariaControls,disabled:this.isInactive||undefined,onClick:this.handleClick},e,r("ds-icon",{class:"tag__suffix-icon",name:"ChevronUpDown",size:t,color:"inherit"})))}static get style(){return d()}},[2,"ds-tag",{label:[1],icon:[1],intent:[1],contrast:[1],size:[1],isInset:[4,"is-inset"],insetDepth:[1,"inset-depth"],rounded:[4],maxWidth:[8,"max-width"],interactive:[4],expanded:[4],ariaControls:[1,"aria-controls"],isInactive:[4,"is-inactive"]}]);function v(){if(typeof customElements==="undefined"){return}const o=["ds-tag","ds-icon","ds-text"];o.forEach((o=>{switch(o){case"ds-tag":if(!customElements.get(s(o))){customElements.define(s(o),g)}break;case"ds-icon":if(!customElements.get(s(o))){a()}break;case"ds-text":if(!customElements.get(s(o))){e()}break}}))}v();export{g as T,v as d};
|
|
2
|
+
//# sourceMappingURL=p-Cg0kimXZ.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{p as e,H as s,c as t,h as o,a as i,t as n}from"./index.js";import{p as r}from"./p-DFQ9mcbK.js";import{d as a}from"./p-BUDAwJVV.js";import{d as l}from"./p-ag6Io-kL.js";import{d}from"./p-BFfLvMZd.js";import{d as c}from"./p-JPTkZ3Ji.js";import{d as h}from"./p-H5T258T-.js";import{d as f}from"./p-CAnnQL1F.js";import{d as u}from"./p-iMuFgSoM.js";const p=["agents","messages","activity","search","stacks","help"];const m="agents";const g={search:"Search",messages:"Messages",stacks:"Stacks",activity:"Activity",agents:"Agents",help:"Help & Support"};const v={search:"K",agents:"A",messages:"M",stacks:"S",activity:"N",help:"/"};const b=[{id:"agents",icon:"AI",label:g.agents,railPlacement:"header",order:0,shortcutKey:v.agents,mobileDestination:"agents"},{id:"messages",icon:"MessageBubbleStack",label:g.messages,order:0,shortcutKey:v.messages,mobileDestination:"messages"},{id:"activity",icon:"Bell",label:g.activity,order:1,shortcutKey:v.activity,mobileDestination:"activity"},{id:"search",icon:"MagnifyingGlass",label:g.search,order:2,shortcutKey:v.search,mobileDestination:"search"},{id:"help",icon:"CircleQuestion",label:g.help,railPlacement:"footer",order:0,shortcutKey:v.help,mobileDestination:"help"}];function w(e){const s=new Map;for(const t of e){if(t.id.trim()&&!s.has(t.id))s.set(t.id,t)}const t={header:0,body:1,footer:2};return Array.from(s.values()).sort(((e,s)=>{const o=_(e);const i=_(s);const n=t[o]-t[i];if(n!==0)return n;const r=p.findIndex((s=>s===e.id));const a=p.findIndex((e=>e===s.id));const l=e.order??(r<0?Number.MAX_SAFE_INTEGER:r);const d=s.order??(a<0?Number.MAX_SAFE_INTEGER:a);return l-d}))}function y(e){return typeof e==="string"&&e.trim().length>0}function _(e){if(e.railPlacement)return e.railPlacement;if(e.id===m)return"header";if(e.id==="help")return"footer";return"body"}function x(e,s,t){if(!t||e.some((e=>e.id===t))){return{open:s,activeTool:t,removedTool:""}}return{open:false,activeTool:"",removedTool:t}}function k(e){const s=e.transitionProperty.split(",").map((e=>e.trim()));const t=e.transitionDuration.split(",").map((e=>r(e.trim(),0)));const o=e.transitionDelay.split(",").map((e=>r(e.trim(),0)));return s.reduce(((e,s,i)=>{if(s!=="all"&&s!=="max-width")return e;const n=t[i%t.length]??0;const r=o[i%o.length]??0;return Math.max(e,n+r,0)}),0)}function T(e,s){return!e&&s==="idle"}function A(e,s,t){if(t==="closing")return e<=.5;if(t==="opening")return s>0&&e>=s-.5;return true}function C(e,s,t){if(e&&s===t){return{open:false,activeTool:t,selected:false}}return{open:true,activeTool:t,selected:true}}const z=()=>`.ds-control--lg,:host(.ds-control--lg),:host(.ds-control--md),.ds-control--md,:host(.ds-control--sm),.ds-control--sm,:host(.ds-control--xs),.ds-control--xs{--ds-control-radius:var(--dimension-radius-025)}:host(.ds-control--lg),.ds-control--lg{--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)}:host(.ds-control--md),.ds-control--md{--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)}:host(.ds-control--sm),.ds-control--sm{--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)}:host(.ds-control--xs),.ds-control--xs{--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}:host(.ds-chrome-space--sm),.ds-chrome-space--sm{--ds-chrome-padding:var(--dimension-space-050);--ds-chrome-gap:var(--dimension-space-050)}:host(.ds-chrome-space--md),.ds-chrome-space--md{--ds-chrome-padding:var(--dimension-space-100);--ds-chrome-gap:var(--dimension-space-100)}:host(.ds-chrome-space--lg),.ds-chrome-space--lg{--ds-chrome-padding:var(--dimension-space-200);--ds-chrome-gap:var(--dimension-space-200)}:host(.ds-chrome-row),.ds-chrome-row,:host(.ds-chrome-column),.ds-chrome-column,:host(.ds-chrome-grid),.ds-chrome-grid{display:flex;box-sizing:border-box;gap:var(--ds-chrome-gap, var(--dimension-space-100));padding:var(--ds-chrome-padding, var(--dimension-space-100))}:host(.ds-chrome-row),.ds-chrome-row{flex-direction:row;align-items:center}:host(.ds-chrome-column),.ds-chrome-column{flex-direction:column}:host(.ds-chrome-grid),.ds-chrome-grid{display:grid;align-items:center}@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)}}:host(.ds-scrollbar-hidden),.ds-scrollbar-hidden{scrollbar-width:none}:host(.ds-scrollbar-hidden)::-webkit-scrollbar,.ds-scrollbar-hidden::-webkit-scrollbar{display:none}:host{display:block;flex:0 0 auto;box-sizing:border-box;height:100%;min-height:0;overflow:hidden;--_panel-tools-rail-width:var(--dimension-size-600);--_panel-tools-drawer-width:var(--ds-shell-panel-tools-width, var(--dimension-panel-width-xs));--_panel-tools-border:var(--dimension-stroke-width-012, 1px) solid var(--color-border-tertiary);--_panel-tools-expand-dur:var(--effect-animation-duration-medium-1, 300ms)}.panel-tools__layout{display:flex;flex-direction:row-reverse;align-items:stretch;height:100%;min-height:0;box-sizing:border-box}.panel-tools__drawer{flex:0 0 auto;max-width:0;min-width:0;height:100%;min-height:0;overflow:hidden;box-sizing:border-box;transition:none}:host(.panel-tools--ready) .panel-tools__drawer{transition:max-width var(--_panel-tools-expand-dur) var(--effect-animation-easing-ease-in-out, ease)}:host(.panel-tools--ready.panel-tools--motion-opening) .panel-tools__drawer{transition:max-width var(--_panel-tools-expand-dur) var(--effect-animation-easing-ease-out, ease-out)}:host(.panel-tools--ready.panel-tools--motion-closing) .panel-tools__drawer{transition:max-width var(--_panel-tools-expand-dur) var(--effect-animation-easing-ease-in, ease-in)}:host(.panel-tools--open) .panel-tools__drawer{max-width:var(--_panel-tools-drawer-width)}.panel-tools__drawer--visible{border-left:var(--_panel-tools-border)}.panel-tools__drawer-surface{display:flex;flex-direction:column;width:var(--_panel-tools-drawer-width);height:100%;min-height:0;box-sizing:border-box;background-color:transparent}.panel-tools__full-views,.panel-tools__full-view{flex:1 1 auto;min-height:0;overflow:hidden}.panel-tools__full-view{height:100%}.panel-tools__full-view{display:none}.panel-tools__full-view--active{display:block}:host([presentation='fullscreen']){height:100vh;inset:0;position:fixed;width:100vw;z-index:var(--dimension-z-index-modal)}:host([presentation='fullscreen']) .panel-tools__rail{display:none}:host([presentation='fullscreen']) .panel-tools__drawer{max-width:100vw;transition:none;width:100vw}:host([presentation='fullscreen']) .panel-tools__drawer--visible{border-left:none}:host([presentation='fullscreen']) .panel-tools__drawer-surface{background-color:transparent;width:100vw}:host([presentation='fullscreen']:not(.panel-tools--fullscreen)) .panel-tools__drawer-surface,:host(.panel-tools--fullscreen:not([presentation='fullscreen'])) .panel-tools__drawer-surface{visibility:hidden}:host(.panel-tools--presentation-snap) .panel-tools__drawer{transition:none}.panel-tools__body{flex:1 1 auto;min-height:0;overflow:auto;position:relative}:host(.panel-tools--drawer-resting) .panel-tools__body{content-visibility:auto;contain-intrinsic-size:auto 200px}.panel-tools__view{display:none;height:100%;min-height:0;box-sizing:border-box;padding:var(--dimension-space-200);color:var(--color-foreground-secondary);font-family:var(--typography-font-family-ui);font-size:var(--typography-fontsize-md);line-height:var(--typography-lineheight-md);font-weight:var(--typography-weight-regular);letter-spacing:var(--typography-letterspacing-negative-half)}.panel-tools__view ::slotted(*){margin:0;color:var(--color-foreground-secondary);font-family:var(--typography-font-family-ui);font-size:var(--typography-fontsize-md);line-height:var(--typography-lineheight-md);font-weight:var(--typography-weight-regular);letter-spacing:var(--typography-letterspacing-negative-half)}.panel-tools__view--active{display:block}.panel-tools__rail{flex:0 0 var(--_panel-tools-rail-width);width:var(--_panel-tools-rail-width);min-width:var(--_panel-tools-rail-width);display:flex;flex-direction:column;box-sizing:border-box;height:100%;min-height:0;border-left:var(--_panel-tools-border);background-color:transparent}.panel-tools__rail-header{justify-content:center;height:var(--dimension-size-600);flex-shrink:0;border-bottom:var(--_panel-tools-border)}.panel-tools__rail-body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden}.panel-tools__rail-actions{display:flex;flex-direction:column;gap:var(--dimension-space-050);width:100%}.panel-tools__rail-footer{justify-content:center;flex-shrink:0;margin-top:auto}.panel-tools__rail-action{display:flex;align-items:center;justify-content:center;width:100%;height:var(--ds-control-height);flex-shrink:0}@media (prefers-reduced-motion: reduce){:host(.panel-tools--ready.panel-tools--motion-opening) .panel-tools__drawer,:host(.panel-tools--ready.panel-tools--motion-closing) .panel-tools__drawer{transition:none}}`;const S=e(class e extends s{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.dsToolChange=t(this,"dsToolChange",7);this.dsPresentationChange=t(this,"dsPresentationChange",7);this.dsHeaderBack=t(this,"dsHeaderBack",7);this.dsHeaderAction=t(this,"dsHeaderAction",7);this.dsChromeTransitionStart=t(this,"dsChromeTransitionStart",7);this.dsChromeTransitionEnd=t(this,"dsChromeTransitionEnd",7);this.open=false;this.presentation="drawer";this.fullscreenHeaderMode="shared";this.activeTool="";this.items=[];this.toolsLabel="Tools";this.toolShortcutsLabel="Tool shortcuts";this.headers={};this.storageKey="";this.motion="idle";this.drawerSurfaceRetained=false;this.readyForMotion=false;this.presentationMotionSuppressed=false;this.rovingIndex=0;this.fullViewToolIds=[];this.railBodyScrollable=false;this.motionEnableGeneration=0;this.presentationMotionGeneration=0;this.transitionGeneration=0;this.transitionFallbackTimer=null;this.ignoreReplacementTerminal=false;this.focusBeforeFullscreen=null;this.fullViewObserver=null;this.handleComposedHeaderAction=e=>{const s=e.detail;if(!this.activeTool||!s?.id)return;e.stopPropagation();this.dsHeaderAction.emit({tool:this.activeTool,id:s.id,anchor:s.anchor})};this.handleTransitionEnd=e=>{const s=this.renderRoot.querySelector(".panel-tools__drawer");if(e.target!==s)return;if(e.propertyName!=="max-width")return;if(this.ignoreReplacementTerminal){this.ignoreReplacementTerminal=false;return}if(e.type==="transitioncancel")return;if(s&&!this.drawerTransitionAtTerminal(s,this.motion))return;this.finishDrawerTransition()};this.handleToolChange=e=>{const s=C(this.open,this.activeTool,e);this.open=s.open;this.activeTool=s.activeTool;this.dsToolChange.emit({id:e,selected:s.selected})};this.handleRailKeyDown=(e,s)=>{const t=this.orderedRailItems;if(!t.length)return;if(e.key==="Enter"||e.key===" "){e.preventDefault();this.handleToolChange(t[s].id);return}if(e.key==="ArrowDown"){if(s>=t.length-1)return;e.preventDefault();this.focusRailAt(s+1);return}if(e.key==="ArrowUp"){if(s<=0)return;e.preventDefault();this.focusRailAt(s-1)}}}get railItems(){return this.items??[]}get orderedRailItems(){return w(this.railItems)}disconnectedCallback(){this.el.removeEventListener("transitionend",this.handleTransitionEnd);this.el.removeEventListener("transitioncancel",this.handleTransitionEnd);this.el.removeEventListener("dsAction",this.handleComposedHeaderAction);this.clearTransitionCompletion();this.motionEnableGeneration+=1;this.fullViewObserver?.disconnect();this.fullViewObserver=null;this.disconnectRailBodyObserver()}presentationChanged(e,t){if(e===t)return;if(this.el.getAttribute("presentation")!==e){this.el.setAttribute("presentation",e)}const o=++this.presentationMotionGeneration;this.presentationMotionSuppressed=true;requestAnimationFrame((()=>{requestAnimationFrame((()=>{if(o!==this.presentationMotionGeneration)return;this.presentationMotionSuppressed=false}))}));if(e==="fullscreen"){this.focusBeforeFullscreen=document.activeElement instanceof s?document.activeElement:null;this.open=true}else if(t==="fullscreen"){const e=this.focusBeforeFullscreen;const s=this.activeHeader().actions?.[0]?.id;requestAnimationFrame((async()=>{if(e?.isConnected){e.focus({preventScroll:true})}const t=e?document.activeElement===e||e.contains(document.activeElement):false;if(!t&&s)await this.focusHeaderAction(s);this.focusBeforeFullscreen=null}))}this.dsPresentationChange.emit({presentation:e})}handleFullscreenEscape(e){if(this.presentation!=="fullscreen"||e.key!=="Escape")return;e.preventDefault();e.stopPropagation();this.presentation="drawer"}deferMotionEnable(){if(this.readyForMotion)return;const e=++this.motionEnableGeneration;requestAnimationFrame((()=>{if(e!==this.motionEnableGeneration)return;requestAnimationFrame((()=>{if(e!==this.motionEnableGeneration)return;this.readyForMotion=true}))}))}connectedCallback(){this.el.addEventListener("transitionend",this.handleTransitionEnd);this.el.addEventListener("transitioncancel",this.handleTransitionEnd);this.el.addEventListener("dsAction",this.handleComposedHeaderAction)}componentWillLoad(){this.restoreLastActiveTool();this.drawerSurfaceRetained=this.open}openChanged(e,s){if(e)this.drawerSurfaceRetained=true;if(this.readyForMotion&&s!==undefined&&s!==e){this.startDrawerTransition(e?"opening":"closing")}else if(!e){this.drawerSurfaceRetained=false}this.deferMotionEnable()}activeToolChanged(){this.persistLastActiveTool();this.deferMotionEnable()}storageKeyChanged(){this.restoreLastActiveTool()}componentDidLoad(){this.deferMotionEnable();this.connectRailBodyObserver();this.updateRailBodyScrollable();this.syncFullViewTools();this.fullViewObserver=new MutationObserver((()=>this.syncFullViewTools()));this.fullViewObserver.observe(this.el,{childList:true,attributes:true,attributeFilter:["slot"]})}componentDidRender(){this.updateRailBodyScrollable()}connectRailBodyObserver(){this.disconnectRailBodyObserver();if(!this.railBodyEl||typeof ResizeObserver==="undefined")return;this.railBodyObserver=new ResizeObserver((()=>this.updateRailBodyScrollable()));this.railBodyObserver.observe(this.railBodyEl)}disconnectRailBodyObserver(){this.railBodyObserver?.disconnect();this.railBodyObserver=undefined}updateRailBodyScrollable(){const e=Boolean(this.railBodyEl&&this.railBodyEl.scrollHeight>this.railBodyEl.clientHeight+1);if(e!==this.railBodyScrollable)this.railBodyScrollable=e}itemsChanged(){this.rovingIndex=0;this.reconcileActiveTool();this.deferMotionEnable()}restoreLastActiveTool(){if(!this.storageKey||this.activeTool)return;try{const e=localStorage.getItem(this.storageKey);if(y(e))this.activeTool=e}catch{}}persistLastActiveTool(){if(!this.storageKey||!this.activeTool)return;try{localStorage.setItem(this.storageKey,this.activeTool)}catch{}}clearPersistedTool(){if(!this.storageKey)return;try{localStorage.removeItem(this.storageKey)}catch{}}reconcileActiveTool(){const e=x(this.railItems,this.open,this.activeTool);if(!e.removedTool)return;this.clearPersistedTool();this.open=e.open;this.activeTool=e.activeTool;this.dsToolChange.emit({id:e.removedTool,selected:false})}startDrawerTransition(e){const s=this.renderRoot.querySelector(".panel-tools__drawer");if(this.motion!=="idle"){this.finishDrawerTransition();this.ignoreReplacementTerminal=true}this.motion=e;this.dsChromeTransitionStart.emit({source:"panel-tools",phase:e});const t=++this.transitionGeneration;requestAnimationFrame((()=>{requestAnimationFrame((()=>{if(t!==this.transitionGeneration||this.motion!==e)return;if(!s){this.finishDrawerTransition();return}if(this.drawerTransitionAtTerminal(s,e)){this.finishDrawerTransition();return}const o=k(getComputedStyle(s));if(o<=0){this.finishDrawerTransition();return}this.transitionFallbackTimer=window.setTimeout((()=>{this.finishDrawerTransition()}),o)}))}))}drawerTransitionAtTerminal(e,s){const t=e.getBoundingClientRect().width;const o=e.querySelector(".panel-tools__drawer-surface");const i=o?.getBoundingClientRect().width??0;return A(t,i,s)}finishDrawerTransition(){const e=this.motion;const s=e!=="idle";this.clearTransitionCompletion();if(!s)return;this.ignoreReplacementTerminal=false;this.motion="idle";if(e==="closing"&&!this.open){this.drawerSurfaceRetained=false}this.dsChromeTransitionEnd.emit({source:"panel-tools"})}clearTransitionCompletion(){this.transitionGeneration+=1;if(this.transitionFallbackTimer!==null){window.clearTimeout(this.transitionFallbackTimer);this.transitionFallbackTimer=null}}isRailSelected(e){return this.open&&this.activeTool===e}isDrawerPresent(){return this.open||this.drawerSurfaceRetained}isViewActive(e){return this.isDrawerPresent()&&this.activeTool===e}hasFullView(e){return this.fullViewToolIds.includes(e)}syncFullViewTools(){const e=this.orderedRailItems.map((e=>e.id));const s=e.filter((e=>Boolean(this.el.querySelector(`[slot="${e}-view"]`))));if(s.join("|")!==this.fullViewToolIds.join("|"))this.fullViewToolIds=s}get renderRoot(){return this.el.shadowRoot??this.el}headerLabel(){if(!this.isDrawerPresent()||!this.activeTool)return"";const e=this.railItems.find((e=>e.id===this.activeTool));return e?.label??g[this.activeTool]??this.activeTool}resolvedHeaders(){return this.headers??{}}activeHeader(){if(!this.activeTool)return{};return this.resolvedHeaders()[this.activeTool]??{}}async activateTool(e){const s=this.railItems.find((s=>s.id===e));if(!s||s.isInactive)return;this.handleToolChange(e)}async closeDrawer(){if(!this.open)return;const e=this.activeTool;this.open=false;if(e){this.dsToolChange.emit({id:e,selected:false})}}async focusHeaderAction(e){const s=this.renderRoot.querySelector(`[data-header-action-id="${CSS.escape(e)}"]`);await(s?.setFocus?.())}focusRailAt(e){const s=this.orderedRailItems;if(!s.length)return;const t=Math.max(0,Math.min(e,s.length-1));if(t===this.rovingIndex)return;this.rovingIndex=t;const o=Array.from(this.renderRoot.querySelectorAll(".panel-tools__rail-action .button-icon"));o[t]?.focus({preventScroll:true})}renderRailAction(e,s){const t=e.ariaLabel??e.label??g[e.id]??e.id;return o("ds-tooltip",{key:e.id,label:t,shortcutKey:e.shortcutKey??v[e.id],side:"left",size:"sm",boundary:"viewport"},o("ds-button-unfilled",{variant:"icon",class:"panel-tools__rail-action",icon:e.icon,isActive:this.isRailSelected(e.id),activeFill:false,hasBorder:false,pressScale:false,dot:e.dot??false,isInactive:e.isInactive,focusTabIndex:s===this.rovingIndex?0:-1,"aria-label":t,pressed:this.isRailSelected(e.id),onFocusin:()=>{this.rovingIndex=s},onKeyDown:e=>this.handleRailKeyDown(e,s),onDsClick:()=>this.handleToolChange(e.id)}))}render(){const e=this.headerLabel();const s=this.activeHeader();const t=s.title?.trim()||e;const n=s.actions??[];const r=this.orderedRailItems;const a=r.filter((e=>_(e)==="header"));const l=r.filter((e=>_(e)==="body"));const d=r.filter((e=>_(e)==="footer"));const c=a.length;const h=c+l.length;const f=this.isDrawerPresent();const u=T(this.open,this.motion);const p=Boolean(f&&this.activeTool&&this.hasFullView(this.activeTool));const m=r.map((e=>e.id));return o(i,{key:"f0a663223939bbd04603a825ae882e2d315f8288",class:{"panel-tools":true,"panel-tools--open":this.open,"panel-tools--ready":this.readyForMotion,"panel-tools--motion-opening":this.motion==="opening","panel-tools--motion-closing":this.motion==="closing","panel-tools--drawer-resting":u,"panel-tools--fullscreen":this.presentation==="fullscreen","panel-tools--presentation-snap":this.presentationMotionSuppressed},role:this.presentation==="fullscreen"?"dialog":"complementary","aria-modal":this.presentation==="fullscreen"?"true":undefined,"aria-label":this.toolsLabel},o("div",{key:"38bce463633a8d1c4747fd7b9b77ae9b12b5d5bb",class:"panel-tools__layout"},o("nav",{key:"e27cf587daf43a59e89f073c21aeef7e5f90d1b0",class:"panel-tools__rail","aria-label":this.toolShortcutsLabel},a.length?o("div",{class:"panel-tools__rail-header ds-chrome-row ds-chrome-space--md"},a.map(((e,s)=>this.renderRailAction(e,s)))):null,o("div",{key:"7d13bdc2e7be9458d90abf9b4ebe56c1c2fca91e",class:{"panel-tools__rail-body":true,"ds-chrome-column":true,"ds-chrome-space--md":true,"ds-scrollbar-hidden":true,"ds-focus-ring":this.railBodyScrollable},ref:e=>{const s=e??undefined;if(s===this.railBodyEl)return;this.railBodyEl=s;this.connectRailBodyObserver()},role:this.railBodyScrollable?"region":undefined,"aria-label":this.railBodyScrollable?this.toolShortcutsLabel:undefined,tabIndex:this.railBodyScrollable?0:undefined},o("div",{key:"0f1c3bfa1b5b0d22827da630f88e8543c37db640",class:"panel-tools__rail-actions"},l.map(((e,s)=>this.renderRailAction(e,c+s))))),d.length?o("div",{class:"panel-tools__rail-footer ds-chrome-row ds-chrome-space--md"},d.map(((e,s)=>this.renderRailAction(e,h+s)))):null),o("div",{key:"4168b16feb8a79bbd31cb8e764ed476e67374171",class:{"panel-tools__drawer":true,"panel-tools__drawer--visible":f},"aria-hidden":f?null:"true",inert:f?undefined:true},o("div",{key:"eaed3b50c81a52ea3942d63683c4de88486926d4",class:"panel-tools__drawer-surface"},this.presentation!=="fullscreen"||this.fullscreenHeaderMode==="shared"?o("ds-panel-tool-header",{class:"panel-tools__header",heading:t,showBack:s.showBack??false,backIcon:s.backIcon||"ChevronLeft",backAriaLabel:s.backAriaLabel||"Back",showMenu:false,ref:e=>{const s=e;if(s)s.actions=n},onDsBack:()=>{if(this.activeTool)this.dsHeaderBack.emit({tool:this.activeTool})}}):null,o("div",{key:"bb3e2f350e8e6eda8f53b2c7d9b9653116d7efbf",class:"panel-tools__body",hidden:p},m.map((e=>{const s=this.isViewActive(e);return o("div",{class:{"panel-tools__view":true,"panel-tools__view--active":s},hidden:!s},o("slot",{name:e}))}))),o("div",{key:"fe24a094ad3038114c61084a7f85ca5030a2f5a1",class:"panel-tools__full-views",hidden:!p},m.map((e=>o("div",{class:{"panel-tools__full-view":true,"panel-tools__full-view--active":this.isViewActive(e)&&this.hasFullView(e)},hidden:!(this.isViewActive(e)&&this.hasFullView(e))},o("slot",{name:`${e}-view`})))))))))}get el(){return this}static get watchers(){return{presentation:[{presentationChanged:0}],open:[{openChanged:0}],activeTool:[{activeToolChanged:0}],storageKey:[{storageKeyChanged:0}],items:[{itemsChanged:0}]}}static get style(){return z()}},[257,"ds-panel-tools",{open:[1540],presentation:[1537],fullscreenHeaderMode:[513,"fullscreen-header-mode"],activeTool:[1537,"active-tool"],items:[16],toolsLabel:[1,"tools-label"],toolShortcutsLabel:[1,"tool-shortcuts-label"],headers:[16],storageKey:[1,"storage-key"],motion:[32],drawerSurfaceRetained:[32],readyForMotion:[32],presentationMotionSuppressed:[32],rovingIndex:[32],fullViewToolIds:[32],railBodyScrollable:[32],activateTool:[64],closeDrawer:[64],focusHeaderAction:[64]},[[10,"keydown","handleFullscreenEscape"]],{presentation:[{presentationChanged:0}],open:[{openChanged:0}],activeTool:[{activeToolChanged:0}],storageKey:[{storageKeyChanged:0}],items:[{itemsChanged:0}]}]);function F(){if(typeof customElements==="undefined"){return}const e=["ds-panel-tools","ds-badge","ds-button-unfilled","ds-icon","ds-loader","ds-panel-tool-header","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-panel-tools":if(!customElements.get(n(e))){customElements.define(n(e),S)}break;case"ds-badge":if(!customElements.get(n(e))){a()}break;case"ds-button-unfilled":if(!customElements.get(n(e))){l()}break;case"ds-icon":if(!customElements.get(n(e))){d()}break;case"ds-loader":if(!customElements.get(n(e))){c()}break;case"ds-panel-tool-header":if(!customElements.get(n(e))){h()}break;case"ds-text":if(!customElements.get(n(e))){f()}break;case"ds-tooltip":if(!customElements.get(n(e))){u()}break}}))}F();export{S as P,g as a,C as b,b as c,F as d,w as o,x as r};
|
|
2
|
+
//# sourceMappingURL=p-CqQFowZd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["PANEL_TOOLS_TOOL_IDS","PANEL_TOOLS_PRIMARY_TOOL_ID","PANEL_TOOLS_LABELS","search","messages","stacks","activity","agents","help","PANEL_TOOLS_SHORTCUTS","PANEL_TOOLS_DEFAULT_ITEMS","id","icon","label","railPlacement","order","shortcutKey","mobileDestination","orderPanelToolsItems","items","firstById","Map","item","trim","has","set","regionOrder","header","body","footer","Array","from","values","sort","left","right","leftRegion","panelToolsRailPlacement","rightRegion","regionDelta","leftCanonical","findIndex","rightCanonical","leftOrder","Number","MAX_SAFE_INTEGER","rightOrder","isPanelToolsToolId","value","length","reconcilePanelToolsAvailability","open","activeTool","some","removedTool","panelToolsDrawerTransitionMs","style","properties","transitionProperty","split","map","durations","transitionDuration","parseCssTimeMs","delays","transitionDelay","reduce","max","property","index","duration","delay","Math","panelToolsDrawerResting","motion","panelToolsDrawerAtTerminal","width","targetWidth","resolvePanelToolActivation","selected","panelToolsCss","PanelTools","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","presentation","fullscreenHeaderMode","toolsLabel","toolShortcutsLabel","headers","storageKey","drawerSurfaceRetained","readyForMotion","presentationMotionSuppressed","rovingIndex","fullViewToolIds","railBodyScrollable","motionEnableGeneration","presentationMotionGeneration","transitionGeneration","transitionFallbackTimer","ignoreReplacementTerminal","focusBeforeFullscreen","fullViewObserver","handleComposedHeaderAction","event","detail","stopPropagation","dsHeaderAction","emit","tool","anchor","handleTransitionEnd","drawer","renderRoot","querySelector","target","propertyName","type","drawerTransitionAtTerminal","finishDrawerTransition","handleToolChange","next","dsToolChange","handleRailKeyDown","e","orderedRailItems","key","preventDefault","focusRailAt","railItems","disconnectedCallback","el","removeEventListener","clearTransitionCompletion","disconnect","disconnectRailBodyObserver","presentationChanged","previous","getAttribute","setAttribute","presentationGeneration","requestAnimationFrame","document","activeElement","fallbackActionId","activeHeader","actions","async","isConnected","focus","preventScroll","focusRestored","contains","focusHeaderAction","dsPresentationChange","handleFullscreenEscape","deferMotionEnable","generation","connectedCallback","addEventListener","componentWillLoad","restoreLastActiveTool","openChanged","isOpen","wasOpen","undefined","startDrawerTransition","activeToolChanged","persistLastActiveTool","storageKeyChanged","componentDidLoad","connectRailBodyObserver","updateRailBodyScrollable","syncFullViewTools","MutationObserver","observe","childList","attributes","attributeFilter","componentDidRender","railBodyEl","ResizeObserver","railBodyObserver","Boolean","scrollHeight","clientHeight","itemsChanged","reconcileActiveTool","stored","localStorage","getItem","setItem","clearPersistedTool","removeItem","phase","dsChromeTransitionStart","source","fallbackMs","getComputedStyle","window","setTimeout","getBoundingClientRect","surface","completedPhase","wasTransitioning","dsChromeTransitionEnd","clearTimeout","isRailSelected","isDrawerPresent","isViewActive","hasFullView","includes","ids","filter","join","shadowRoot","headerLabel","find","candidate","resolvedHeaders","activateTool","entry","isInactive","closeDrawer","action","CSS","escape","setFocus","bounded","min","querySelectorAll","renderRailAction","ariaLabel","h","side","size","boundary","variant","class","isActive","activeFill","hasBorder","pressScale","dot","focusTabIndex","pressed","onFocusin","onKeyDown","onDsClick","render","headerTitle","title","headerActions","headerItems","bodyItems","footerItems","headerCount","footerStart","showDrawerChrome","drawerResting","activeFullView","toolIds","Host","role","ref","element","tabIndex","bodyIdx","footerIdx","inert","heading","showBack","backIcon","backAriaLabel","showMenu","toolHeader","onDsBack","dsHeaderBack","hidden","active","name"],"sources":["src/wc/components/PanelTools/panel-tools-types.ts","src/wc/components/PanelTools/panel-tools-utils.ts","src/wc/components/PanelTools/PanelTools.css?tag=ds-panel-tools&encapsulation=shadow","src/wc/components/PanelTools/PanelTools.tsx"],"sourcesContent":["/** Application-owned tool id for the shell rail and responsive tool views. */\nexport type PanelToolsToolId = string;\n\n/** Canonical Motive shell recipe used when item metadata is omitted. */\nexport type CanonicalPanelToolsToolId =\n | 'search'\n | 'messages'\n | 'agents'\n | 'stacks'\n | 'activity'\n | 'help';\n\nexport const PANEL_TOOLS_TOOL_IDS: CanonicalPanelToolsToolId[] = [\n 'agents',\n 'messages',\n 'activity',\n 'search',\n 'stacks',\n 'help',\n];\n\n/** Rail header slot — mirrors panel-nav M logo row. */\nexport const PANEL_TOOLS_PRIMARY_TOOL_ID: CanonicalPanelToolsToolId = 'agents';\n\n/** Rail footer slot — flush to the bottom of the tools column. */\nexport const PANEL_TOOLS_FOOTER_TOOL_ID: CanonicalPanelToolsToolId = 'help';\n\nexport const PANEL_TOOLS_LABELS: Record<CanonicalPanelToolsToolId, string> = {\n search: 'Search',\n messages: 'Messages',\n stacks: 'Stacks',\n activity: 'Activity',\n agents: 'Agents',\n help: 'Help & Support',\n};\n\nexport const PANEL_TOOLS_SHORTCUTS: Partial<Record<CanonicalPanelToolsToolId, string>> = {\n search: 'K',\n agents: 'A',\n messages: 'M',\n stacks: 'S',\n activity: 'N',\n help: '/',\n};\n\nexport interface PanelToolsItem {\n id: PanelToolsToolId;\n /** Icon name for <ds-icon>. */\n icon: string;\n /** Visible and accessible fallback label for custom tool ids. */\n label?: string;\n /** Explicit rail region; canonical Agents/Help placement is the fallback. */\n railPlacement?: 'header' | 'body' | 'footer';\n /** Stable ordering within the selected rail region. */\n order?: number;\n /** Optional shortcut label displayed by the tooltip. */\n shortcutKey?: string;\n /** Mobile destination recipe; canonical ids retain their explicit defaults. */\n mobileDestination?: 'search' | 'inbox' | 'activity' | 'messages' | 'agents' | 'help';\n /** Whether this rail button is currently pressed/active. */\n selected?: boolean;\n /** Show a notification dot. */\n dot?: boolean;\n isInactive?: boolean;\n ariaLabel?: string;\n}\n\n/** Canonical shell recipe used by Lab and by managed ShellApp examples. */\nexport const PANEL_TOOLS_DEFAULT_ITEMS: PanelToolsItem[] = [\n {\n id: 'agents',\n icon: 'AI',\n label: PANEL_TOOLS_LABELS.agents,\n railPlacement: 'header',\n order: 0,\n shortcutKey: PANEL_TOOLS_SHORTCUTS.agents,\n mobileDestination: 'agents',\n },\n {\n id: 'messages',\n icon: 'MessageBubbleStack',\n label: PANEL_TOOLS_LABELS.messages,\n order: 0,\n shortcutKey: PANEL_TOOLS_SHORTCUTS.messages,\n mobileDestination: 'messages',\n },\n {\n id: 'activity',\n icon: 'Bell',\n label: PANEL_TOOLS_LABELS.activity,\n order: 1,\n shortcutKey: PANEL_TOOLS_SHORTCUTS.activity,\n mobileDestination: 'activity',\n },\n {\n id: 'search',\n icon: 'MagnifyingGlass',\n label: PANEL_TOOLS_LABELS.search,\n order: 2,\n shortcutKey: PANEL_TOOLS_SHORTCUTS.search,\n mobileDestination: 'search',\n },\n {\n id: 'help',\n icon: 'CircleQuestion',\n label: PANEL_TOOLS_LABELS.help,\n railPlacement: 'footer',\n order: 0,\n shortcutKey: PANEL_TOOLS_SHORTCUTS.help,\n mobileDestination: 'help',\n },\n];\n\nexport interface PanelToolsHeaderAction {\n id: string;\n icon: string;\n ariaLabel: string;\n triggerId?: string;\n controls?: string;\n expanded?: boolean;\n haspopup?: 'menu' | 'dialog' | 'listbox' | 'tree' | 'grid';\n pressed?: boolean;\n isInactive?: boolean;\n}\n\nexport interface PanelToolsHeaderActionDetail {\n tool: PanelToolsToolId;\n id: string;\n /** Rendered header action host. Pass this to an external overlay's element anchor prop. */\n anchor?: HTMLElement;\n}\n\nexport interface PanelToolHeaderActionDetail {\n id: string;\n originalEvent: MouseEvent;\n /** Rendered action host, suitable for anchoring an external overlay across a shadow boundary. */\n anchor: HTMLElement;\n}\n\nexport interface PanelToolsHeaderConfig {\n title?: string;\n showBack?: boolean;\n backIcon?: string;\n backAriaLabel?: string;\n actions?: PanelToolsHeaderAction[];\n}\n\n/** Per-tool header state. The application replaces the object when a tool changes depth or actions. */\nexport type PanelToolsHeaders = Partial<Record<PanelToolsToolId, PanelToolsHeaderConfig>>;\n","import { parseCssTimeMs } from '../../utils/resolve-css-time-ms';\nimport {\n PANEL_TOOLS_PRIMARY_TOOL_ID,\n PANEL_TOOLS_TOOL_IDS,\n type PanelToolsItem,\n type PanelToolsToolId,\n} from './panel-tools-types';\n\nexport function orderPanelToolsItems(items: PanelToolsItem[]): PanelToolsItem[] {\n const firstById = new Map<PanelToolsToolId, PanelToolsItem>();\n for (const item of items) {\n if (item.id.trim() && !firstById.has(item.id)) firstById.set(item.id, item);\n }\n const regionOrder = { header: 0, body: 1, footer: 2 } as const;\n return Array.from(firstById.values()).sort((left, right) => {\n const leftRegion = panelToolsRailPlacement(left);\n const rightRegion = panelToolsRailPlacement(right);\n const regionDelta = regionOrder[leftRegion] - regionOrder[rightRegion];\n if (regionDelta !== 0) return regionDelta;\n\n const leftCanonical = PANEL_TOOLS_TOOL_IDS.findIndex(id => id === left.id);\n const rightCanonical = PANEL_TOOLS_TOOL_IDS.findIndex(id => id === right.id);\n const leftOrder = left.order ?? (leftCanonical < 0 ? Number.MAX_SAFE_INTEGER : leftCanonical);\n const rightOrder =\n right.order ?? (rightCanonical < 0 ? Number.MAX_SAFE_INTEGER : rightCanonical);\n return leftOrder - rightOrder;\n });\n}\n\nexport function isPanelToolsToolId(value: string | null): value is PanelToolsToolId {\n return typeof value === 'string' && value.trim().length > 0;\n}\n\nexport function panelToolsRailPlacement(\n item: PanelToolsItem\n): 'header' | 'body' | 'footer' {\n if (item.railPlacement) return item.railPlacement;\n if (item.id === PANEL_TOOLS_PRIMARY_TOOL_ID) return 'header';\n if (item.id === 'help') return 'footer';\n return 'body';\n}\n\nexport function reconcilePanelToolsAvailability(\n items: PanelToolsItem[],\n open: boolean,\n activeTool: PanelToolsToolId | ''\n): { open: boolean; activeTool: PanelToolsToolId | ''; removedTool: PanelToolsToolId | '' } {\n if (!activeTool || items.some(item => item.id === activeTool)) {\n return { open, activeTool, removedTool: '' };\n }\n return { open: false, activeTool: '', removedTool: activeTool };\n}\n\nexport function shouldResyncPanelToolsItems(\n prev: PanelToolsItem[],\n next: PanelToolsItem[]\n): boolean {\n if (prev.length !== next.length) return true;\n return next.some((item, index) => {\n const prior = prev[index];\n if (!prior) return true;\n return (\n prior.id !== item.id ||\n prior.icon !== item.icon ||\n prior.label !== item.label ||\n prior.railPlacement !== item.railPlacement ||\n prior.order !== item.order ||\n prior.shortcutKey !== item.shortcutKey ||\n prior.mobileDestination !== item.mobileDestination ||\n prior.selected !== item.selected ||\n prior.dot !== item.dot ||\n prior.isInactive !== item.isInactive ||\n prior.ariaLabel !== item.ariaLabel\n );\n });\n}\n\nexport type PanelToolsMotion = 'opening' | 'closing' | 'idle';\n\nexport interface PanelToolsTransitionStyle {\n transitionProperty: string;\n transitionDuration: string;\n transitionDelay: string;\n}\n\n/** Maximum computed time for the drawer's max-width transition, including delay. */\nexport function panelToolsDrawerTransitionMs(style: PanelToolsTransitionStyle): number {\n const properties = style.transitionProperty.split(',').map(item => item.trim());\n const durations = style.transitionDuration.split(',').map(item => parseCssTimeMs(item.trim(), 0));\n const delays = style.transitionDelay.split(',').map(item => parseCssTimeMs(item.trim(), 0));\n\n return properties.reduce((max, property, index) => {\n if (property !== 'all' && property !== 'max-width') return max;\n const duration = durations[index % durations.length] ?? 0;\n const delay = delays[index % delays.length] ?? 0;\n return Math.max(max, duration + delay, 0);\n }, 0);\n}\n\n/** True when the drawer clip is fully closed — safe to skip painting slot content. */\nexport function panelToolsDrawerResting(open: boolean, motion: PanelToolsMotion): boolean {\n return !open && motion === 'idle';\n}\n\n/** True only when the animated clip has reached the terminal width for its motion phase. */\nexport function panelToolsDrawerAtTerminal(\n width: number,\n targetWidth: number,\n motion: PanelToolsMotion\n): boolean {\n if (motion === 'closing') return width <= 0.5;\n if (motion === 'opening') return targetWidth > 0 && width >= targetWidth - 0.5;\n return true;\n}\n\n/** Toggle or switch rail tool selection — repeat activation closes the active tool. */\nexport function resolvePanelToolActivation(\n open: boolean,\n activeTool: PanelToolsToolId | '',\n id: PanelToolsToolId\n): { open: boolean; activeTool: PanelToolsToolId; selected: boolean } {\n if (open && activeTool === id) {\n return { open: false, activeTool: id, selected: false };\n }\n return { open: true, activeTool: id, selected: true };\n}\n","@import '../../utils/control-density.css';\n@import '../../utils/chrome-layout.css';\n@import '../../utils/focus-ring.css';\n@import '../../utils/scrollbar-hidden.css';\n\n:host {\n display: block;\n flex: 0 0 auto;\n box-sizing: border-box;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n --_panel-tools-rail-width: var(--dimension-size-600);\n --_panel-tools-drawer-width: var(--ds-shell-panel-tools-width, var(--dimension-panel-width-xs));\n --_panel-tools-border: var(--dimension-stroke-width-012, 1px) solid var(--color-border-tertiary);\n /* Match panel-nav expand timing (medium-1); easing differs by direction. */\n --_panel-tools-expand-dur: var(--effect-animation-duration-medium-1, 300ms);\n}\n\n.panel-tools__layout {\n display: flex;\n flex-direction: row-reverse;\n align-items: stretch;\n height: 100%;\n min-height: 0;\n box-sizing: border-box;\n}\n\n/* Clip frame — only max-width animates (slide reveal, same as pre-rail :host). */\n.panel-tools__drawer {\n flex: 0 0 auto;\n max-width: 0;\n min-width: 0;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n box-sizing: border-box;\n transition: none;\n}\n\n:host(.panel-tools--ready) .panel-tools__drawer {\n transition: max-width var(--_panel-tools-expand-dur)\n var(--effect-animation-easing-ease-in-out, ease);\n}\n\n:host(.panel-tools--ready.panel-tools--motion-opening) .panel-tools__drawer {\n transition: max-width var(--_panel-tools-expand-dur)\n var(--effect-animation-easing-ease-out, ease-out);\n}\n\n:host(.panel-tools--ready.panel-tools--motion-closing) .panel-tools__drawer {\n transition: max-width var(--_panel-tools-expand-dur)\n var(--effect-animation-easing-ease-in, ease-in);\n}\n\n:host(.panel-tools--open) .panel-tools__drawer {\n max-width: var(--_panel-tools-drawer-width);\n}\n\n.panel-tools__drawer--visible {\n border-left: var(--_panel-tools-border);\n}\n\n/* Fixed-width surface — ShellApp supplies the standard 300px tools width. */\n.panel-tools__drawer-surface {\n display: flex;\n flex-direction: column;\n width: var(--_panel-tools-drawer-width);\n height: 100%;\n min-height: 0;\n box-sizing: border-box;\n background-color: transparent;\n}\n\n.panel-tools__full-views,\n.panel-tools__full-view {\n flex: 1 1 auto;\n min-height: 0;\n overflow: hidden;\n}\n\n.panel-tools__full-view {\n height: 100%;\n}\n\n.panel-tools__full-view {\n display: none;\n}\n.panel-tools__full-view--active {\n display: block;\n}\n\n:host([presentation='fullscreen']) {\n height: 100vh;\n inset: 0;\n position: fixed;\n width: 100vw;\n z-index: var(--dimension-z-index-modal);\n}\n\n:host([presentation='fullscreen']) .panel-tools__rail {\n display: none;\n}\n:host([presentation='fullscreen']) .panel-tools__drawer {\n max-width: 100vw;\n transition: none;\n width: 100vw;\n}\n:host([presentation='fullscreen']) .panel-tools__drawer--visible {\n border-left: none;\n}\n:host([presentation='fullscreen']) .panel-tools__drawer-surface {\n background-color: transparent;\n width: 100vw;\n}\n\n/*\n * A framework can update the reflected presentation attribute before Stencil\n * commits the matching render class. Conceal that single inconsistent frame so\n * slotted master/detail content never paints against the previous geometry.\n */\n:host([presentation='fullscreen']:not(.panel-tools--fullscreen)) .panel-tools__drawer-surface,\n:host(.panel-tools--fullscreen:not([presentation='fullscreen'])) .panel-tools__drawer-surface {\n visibility: hidden;\n}\n\n:host(.panel-tools--presentation-snap) .panel-tools__drawer {\n transition: none;\n}\n\n.panel-tools__body {\n flex: 1 1 auto;\n min-height: 0;\n overflow: auto;\n position: relative;\n}\n\n/* Skip paint while fully closed; cleared during open/close motion for WYSIWYG slide. */\n:host(.panel-tools--drawer-resting) .panel-tools__body {\n content-visibility: auto;\n contain-intrinsic-size: auto 200px;\n}\n\n.panel-tools__view {\n display: none;\n height: 100%;\n min-height: 0;\n box-sizing: border-box;\n padding: var(--dimension-space-200);\n color: var(--color-foreground-secondary);\n font-family: var(--typography-font-family-ui);\n font-size: var(--typography-fontsize-md);\n line-height: var(--typography-lineheight-md);\n font-weight: var(--typography-weight-regular);\n letter-spacing: var(--typography-letterspacing-negative-half);\n}\n\n.panel-tools__view ::slotted(*) {\n margin: 0;\n color: var(--color-foreground-secondary);\n font-family: var(--typography-font-family-ui);\n font-size: var(--typography-fontsize-md);\n line-height: var(--typography-lineheight-md);\n font-weight: var(--typography-weight-regular);\n letter-spacing: var(--typography-letterspacing-negative-half);\n}\n\n.panel-tools__view--active {\n display: block;\n}\n\n/* Rail — mirrors collapsed panel-nav width, padding, and item rhythm. */\n.panel-tools__rail {\n flex: 0 0 var(--_panel-tools-rail-width);\n width: var(--_panel-tools-rail-width);\n min-width: var(--_panel-tools-rail-width);\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n height: 100%;\n min-height: 0;\n border-left: var(--_panel-tools-border);\n background-color: transparent;\n}\n\n.panel-tools__rail-header {\n justify-content: center;\n height: var(--dimension-size-600);\n flex-shrink: 0;\n border-bottom: var(--_panel-tools-border);\n}\n\n.panel-tools__rail-body {\n flex: 1 1 auto;\n min-height: 0;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n.panel-tools__rail-actions {\n display: flex;\n flex-direction: column;\n gap: var(--dimension-space-050);\n width: 100%;\n}\n\n/* Flush to the bottom of the rail — mirrors Search header pin. */\n.panel-tools__rail-footer {\n justify-content: center;\n flex-shrink: 0;\n margin-top: auto;\n}\n\n.panel-tools__rail-action {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: var(--ds-control-height);\n flex-shrink: 0;\n}\n\n@media (prefers-reduced-motion: reduce) {\n :host(.panel-tools--ready.panel-tools--motion-opening) .panel-tools__drawer,\n :host(.panel-tools--ready.panel-tools--motion-closing) .panel-tools__drawer {\n transition: none;\n }\n}\n","import {\n Component,\n Prop,\n Event,\n EventEmitter,\n Element,\n State,\n Watch,\n Method,\n Listen,\n h,\n Host,\n} from '@stencil/core';\nimport type { ChromeTransitionDetail } from '../../shell/chrome-transition';\nimport {\n PANEL_TOOLS_LABELS,\n PANEL_TOOLS_SHORTCUTS,\n type PanelToolsHeaderAction,\n type PanelToolsHeaderActionDetail,\n type PanelToolsHeaderConfig,\n type PanelToolsHeaders,\n type PanelToolsItem,\n type PanelToolsToolId,\n} from './panel-tools-types';\nimport {\n isPanelToolsToolId,\n orderPanelToolsItems,\n panelToolsDrawerAtTerminal,\n panelToolsDrawerResting,\n panelToolsDrawerTransitionMs,\n panelToolsRailPlacement,\n reconcilePanelToolsAvailability,\n resolvePanelToolActivation,\n} from './panel-tools-utils';\n\n@Component({\n tag: 'ds-panel-tools',\n styleUrl: 'PanelTools.css',\n shadow: true,\n})\nexport class PanelTools {\n @Element() el!: HTMLElement;\n\n /** When false, only the icon rail is shown. */\n @Prop({ mutable: true, reflect: true }) open: boolean = false;\n\n /** Drawer presentation or viewport-covering presentation for the active tool. */\n @Prop({ mutable: true, reflect: true }) presentation: 'drawer' | 'fullscreen' = 'drawer';\n\n /** Let a fullscreen product supply independent master/detail headers inside its view. */\n @Prop({ attribute: 'fullscreen-header-mode', reflect: true })\n fullscreenHeaderMode: 'shared' | 'split' = 'shared';\n\n /** Active tool view — `search`, `agents`, `messages`, `stacks`, `activity`, or `help`. */\n @Prop({ mutable: true, attribute: 'active-tool', reflect: true })\n activeTool: PanelToolsToolId | '' = '';\n\n /**\n * Rail items rendered in the right column.\n * Set via JS property: `el.items = [...]`. Replace the array reference to update.\n */\n @Prop() items: PanelToolsItem[] = [];\n\n @Prop() toolsLabel: string = 'Tools';\n @Prop() toolShortcutsLabel: string = 'Tool shortcuts';\n\n /** Active header state per tool. Replace the object when title, depth, or actions change. */\n @Prop() headers: PanelToolsHeaders = {};\n\n /**\n * Optional localStorage key for the last active tool. The drawer always starts\n * closed; only the tool identity is restored for continuity within this browser.\n */\n @Prop({ attribute: 'storage-key' }) storageKey: string = '';\n\n /** Emitted when a rail button is toggled. Detail = { id, selected }. */\n @Event({ bubbles: true, composed: true }) dsToolChange!: EventEmitter<{\n id: PanelToolsToolId;\n selected: boolean;\n }>;\n\n /** Emitted when fullscreen changes, including Escape-initiated exits. */\n @Event({ bubbles: true, composed: true }) dsPresentationChange!: EventEmitter<{\n presentation: 'drawer' | 'fullscreen';\n }>;\n\n /** Requests navigation to the active tool's parent view. */\n @Event({ bubbles: true, composed: true }) dsHeaderBack!: EventEmitter<{\n tool: PanelToolsToolId;\n }>;\n\n /** Requests one application-owned action from the active tool header. */\n @Event({ bubbles: true, composed: true })\n dsHeaderAction!: EventEmitter<PanelToolsHeaderActionDetail>;\n\n /** Bubbling lifecycle — `ds-bar-nav` defers overflow checks during drawer motion. */\n @Event({ bubbles: true, composed: true })\n dsChromeTransitionStart!: EventEmitter<ChromeTransitionDetail>;\n\n @Event({ bubbles: true, composed: true })\n dsChromeTransitionEnd!: EventEmitter<ChromeTransitionDetail>;\n\n /** Arms open vs close easing for the in-flight width transition. */\n @State() private motion: 'opening' | 'closing' | 'idle' = 'idle';\n\n /** Keeps header and slotted content painted until the closing clip transition completes. */\n @State() private drawerSurfaceRetained = false;\n\n /** Suppresses width transition until the host has painted its initial open state. */\n @State() private readyForMotion = false;\n\n /** Fullscreen presentation changes snap without borrowing drawer width motion. */\n @State() private presentationMotionSuppressed = false;\n\n @State() private rovingIndex = 0;\n @State() private fullViewToolIds: PanelToolsToolId[] = [];\n @State() private railBodyScrollable = false;\n\n private motionEnableGeneration = 0;\n private presentationMotionGeneration = 0;\n private transitionGeneration = 0;\n private transitionFallbackTimer: number | null = null;\n /** Ignores the old transition's terminal event when reversing direction. */\n private ignoreReplacementTerminal = false;\n private focusBeforeFullscreen: HTMLElement | null = null;\n private fullViewObserver: MutationObserver | null = null;\n private railBodyEl?: HTMLElement;\n private railBodyObserver?: ResizeObserver;\n\n private get railItems(): PanelToolsItem[] {\n return this.items ?? [];\n }\n\n private get orderedRailItems(): PanelToolsItem[] {\n return orderPanelToolsItems(this.railItems);\n }\n\n disconnectedCallback() {\n this.el.removeEventListener('transitionend', this.handleTransitionEnd);\n this.el.removeEventListener('transitioncancel', this.handleTransitionEnd);\n this.el.removeEventListener('dsAction', this.handleComposedHeaderAction);\n this.clearTransitionCompletion();\n this.motionEnableGeneration += 1;\n this.fullViewObserver?.disconnect();\n this.fullViewObserver = null;\n this.disconnectRailBodyObserver();\n }\n\n @Watch('presentation')\n presentationChanged(next: 'drawer' | 'fullscreen', previous?: 'drawer' | 'fullscreen') {\n if (next === previous) return;\n // Framework property bindings can update slotted master/detail content in\n // the same render that requests fullscreen. Reflect the host selector\n // immediately so that content cannot paint once in the drawer geometry\n // while Stencil waits to commit its next render.\n if (this.el.getAttribute('presentation') !== next) {\n this.el.setAttribute('presentation', next);\n }\n const presentationGeneration = ++this.presentationMotionGeneration;\n this.presentationMotionSuppressed = true;\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (presentationGeneration !== this.presentationMotionGeneration) return;\n this.presentationMotionSuppressed = false;\n });\n });\n if (next === 'fullscreen') {\n this.focusBeforeFullscreen =\n document.activeElement instanceof HTMLElement ? document.activeElement : null;\n this.open = true;\n } else if (previous === 'fullscreen') {\n const focusBeforeFullscreen = this.focusBeforeFullscreen;\n const fallbackActionId = this.activeHeader().actions?.[0]?.id;\n requestAnimationFrame(async () => {\n if (focusBeforeFullscreen?.isConnected) {\n focusBeforeFullscreen.focus({ preventScroll: true });\n }\n const focusRestored = focusBeforeFullscreen\n ? document.activeElement === focusBeforeFullscreen ||\n focusBeforeFullscreen.contains(document.activeElement)\n : false;\n if (!focusRestored && fallbackActionId) await this.focusHeaderAction(fallbackActionId);\n this.focusBeforeFullscreen = null;\n });\n }\n this.dsPresentationChange.emit({ presentation: next });\n }\n\n @Listen('keydown', { target: 'window', capture: true })\n handleFullscreenEscape(event: KeyboardEvent) {\n if (this.presentation !== 'fullscreen' || event.key !== 'Escape') return;\n event.preventDefault();\n event.stopPropagation();\n this.presentation = 'drawer';\n }\n\n private deferMotionEnable() {\n if (this.readyForMotion) return;\n const generation = ++this.motionEnableGeneration;\n requestAnimationFrame(() => {\n if (generation !== this.motionEnableGeneration) return;\n requestAnimationFrame(() => {\n if (generation !== this.motionEnableGeneration) return;\n this.readyForMotion = true;\n });\n });\n }\n\n connectedCallback() {\n this.el.addEventListener('transitionend', this.handleTransitionEnd);\n this.el.addEventListener('transitioncancel', this.handleTransitionEnd);\n this.el.addEventListener('dsAction', this.handleComposedHeaderAction);\n }\n\n private handleComposedHeaderAction = (event: Event) => {\n const detail = (event as CustomEvent<{ id?: string; anchor?: HTMLElement }>).detail;\n if (!this.activeTool || !detail?.id) return;\n event.stopPropagation();\n this.dsHeaderAction.emit({\n tool: this.activeTool,\n id: detail.id,\n anchor: detail.anchor,\n });\n };\n\n componentWillLoad() {\n this.restoreLastActiveTool();\n this.drawerSurfaceRetained = this.open;\n }\n\n @Watch('open')\n openChanged(isOpen: boolean, wasOpen?: boolean) {\n if (isOpen) this.drawerSurfaceRetained = true;\n if (this.readyForMotion && wasOpen !== undefined && wasOpen !== isOpen) {\n this.startDrawerTransition(isOpen ? 'opening' : 'closing');\n } else if (!isOpen) {\n this.drawerSurfaceRetained = false;\n }\n this.deferMotionEnable();\n }\n\n @Watch('activeTool')\n activeToolChanged() {\n this.persistLastActiveTool();\n this.deferMotionEnable();\n }\n\n @Watch('storageKey')\n storageKeyChanged() {\n this.restoreLastActiveTool();\n }\n\n componentDidLoad() {\n this.deferMotionEnable();\n this.connectRailBodyObserver();\n this.updateRailBodyScrollable();\n this.syncFullViewTools();\n this.fullViewObserver = new MutationObserver(() => this.syncFullViewTools());\n this.fullViewObserver.observe(this.el, {\n childList: true,\n attributes: true,\n attributeFilter: ['slot'],\n });\n }\n\n componentDidRender() {\n this.updateRailBodyScrollable();\n }\n\n private connectRailBodyObserver() {\n this.disconnectRailBodyObserver();\n if (!this.railBodyEl || typeof ResizeObserver === 'undefined') return;\n this.railBodyObserver = new ResizeObserver(() => this.updateRailBodyScrollable());\n this.railBodyObserver.observe(this.railBodyEl);\n }\n\n private disconnectRailBodyObserver() {\n this.railBodyObserver?.disconnect();\n this.railBodyObserver = undefined;\n }\n\n private updateRailBodyScrollable() {\n const next = Boolean(\n this.railBodyEl && this.railBodyEl.scrollHeight > this.railBodyEl.clientHeight + 1\n );\n if (next !== this.railBodyScrollable) this.railBodyScrollable = next;\n }\n\n @Watch('items')\n itemsChanged() {\n this.rovingIndex = 0;\n this.reconcileActiveTool();\n this.deferMotionEnable();\n }\n\n private restoreLastActiveTool() {\n if (!this.storageKey || this.activeTool) return;\n try {\n const stored = localStorage.getItem(this.storageKey);\n if (isPanelToolsToolId(stored)) this.activeTool = stored;\n } catch {\n /* localStorage unavailable */\n }\n }\n\n private persistLastActiveTool() {\n if (!this.storageKey || !this.activeTool) return;\n try {\n localStorage.setItem(this.storageKey, this.activeTool);\n } catch {\n /* unavailable */\n }\n }\n\n private clearPersistedTool() {\n if (!this.storageKey) return;\n try {\n localStorage.removeItem(this.storageKey);\n } catch {\n /* unavailable */\n }\n }\n\n private reconcileActiveTool() {\n const next = reconcilePanelToolsAvailability(this.railItems, this.open, this.activeTool);\n if (!next.removedTool) return;\n this.clearPersistedTool();\n this.open = next.open;\n this.activeTool = next.activeTool;\n this.dsToolChange.emit({ id: next.removedTool, selected: false });\n }\n\n private startDrawerTransition(phase: 'opening' | 'closing') {\n const drawer = this.renderRoot.querySelector('.panel-tools__drawer') as HTMLElement | null;\n if (this.motion !== 'idle') {\n this.finishDrawerTransition();\n this.ignoreReplacementTerminal = true;\n }\n this.motion = phase;\n this.dsChromeTransitionStart.emit({ source: 'panel-tools', phase });\n const generation = ++this.transitionGeneration;\n\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (generation !== this.transitionGeneration || this.motion !== phase) return;\n if (!drawer) {\n this.finishDrawerTransition();\n return;\n }\n\n if (this.drawerTransitionAtTerminal(drawer, phase)) {\n this.finishDrawerTransition();\n return;\n }\n\n const fallbackMs = panelToolsDrawerTransitionMs(getComputedStyle(drawer));\n if (fallbackMs <= 0) {\n this.finishDrawerTransition();\n return;\n }\n this.transitionFallbackTimer = window.setTimeout(() => {\n this.finishDrawerTransition();\n }, fallbackMs);\n });\n });\n }\n\n private handleTransitionEnd = (event: TransitionEvent) => {\n const drawer = this.renderRoot.querySelector('.panel-tools__drawer') as HTMLElement | null;\n if (event.target !== drawer) return;\n if (event.propertyName !== 'max-width') return;\n if (this.ignoreReplacementTerminal) {\n this.ignoreReplacementTerminal = false;\n return;\n }\n // Changing from the neutral transition recipe to the direction-specific\n // easing can cancel the transition that the reflected `open` class began.\n // The replacement transition and its watchdog still own completion; ending\n // motion here would hide the fixed-width tool surface while it is visible.\n if (event.type === 'transitioncancel') return;\n if (drawer && !this.drawerTransitionAtTerminal(drawer, this.motion)) return;\n this.finishDrawerTransition();\n };\n\n private drawerTransitionAtTerminal(\n drawer: HTMLElement,\n phase: 'opening' | 'closing' | 'idle'\n ): boolean {\n const width = drawer.getBoundingClientRect().width;\n const surface = drawer.querySelector('.panel-tools__drawer-surface') as HTMLElement | null;\n const targetWidth = surface?.getBoundingClientRect().width ?? 0;\n return panelToolsDrawerAtTerminal(width, targetWidth, phase);\n }\n\n private finishDrawerTransition() {\n const completedPhase = this.motion;\n const wasTransitioning = completedPhase !== 'idle';\n this.clearTransitionCompletion();\n if (!wasTransitioning) return;\n this.ignoreReplacementTerminal = false;\n this.motion = 'idle';\n if (completedPhase === 'closing' && !this.open) {\n this.drawerSurfaceRetained = false;\n }\n this.dsChromeTransitionEnd.emit({ source: 'panel-tools' });\n }\n\n private clearTransitionCompletion() {\n this.transitionGeneration += 1;\n if (this.transitionFallbackTimer !== null) {\n window.clearTimeout(this.transitionFallbackTimer);\n this.transitionFallbackTimer = null;\n }\n }\n\n /** Rail selection follows `open` immediately — independent of the slide animation. */\n private isRailSelected(id: PanelToolsToolId): boolean {\n return this.open && this.activeTool === id;\n }\n\n /** Drawer body stays mounted while the clip frame animates closed. */\n private isDrawerPresent(): boolean {\n return this.open || this.drawerSurfaceRetained;\n }\n\n private isViewActive(id: PanelToolsToolId): boolean {\n return this.isDrawerPresent() && this.activeTool === id;\n }\n\n private hasFullView(id: PanelToolsToolId): boolean {\n return this.fullViewToolIds.includes(id);\n }\n\n private syncFullViewTools() {\n const ids = this.orderedRailItems.map(item => item.id);\n const next = ids.filter(id => Boolean(this.el.querySelector(`[slot=\"${id}-view\"]`)));\n if (next.join('|') !== this.fullViewToolIds.join('|')) this.fullViewToolIds = next;\n }\n\n private get renderRoot(): ParentNode {\n return this.el.shadowRoot ?? this.el;\n }\n\n private headerLabel(): string {\n if (!this.isDrawerPresent() || !this.activeTool) return '';\n const item = this.railItems.find(candidate => candidate.id === this.activeTool);\n return (\n item?.label ??\n PANEL_TOOLS_LABELS[this.activeTool as keyof typeof PANEL_TOOLS_LABELS] ??\n this.activeTool\n );\n }\n\n private resolvedHeaders(): PanelToolsHeaders {\n return this.headers ?? {};\n }\n\n private activeHeader(): PanelToolsHeaderConfig {\n if (!this.activeTool) return {};\n return this.resolvedHeaders()[this.activeTool] ?? {};\n }\n\n private handleToolChange = (id: PanelToolsToolId) => {\n const next = resolvePanelToolActivation(this.open, this.activeTool, id);\n this.open = next.open;\n this.activeTool = next.activeTool;\n this.dsToolChange.emit({ id, selected: next.selected });\n };\n\n /** Toggle any rail tool open/closed — shell shortcuts K/A/S/M/N call this. */\n @Method()\n async activateTool(id: PanelToolsToolId) {\n const item = this.railItems.find(entry => entry.id === id);\n if (!item || item.isInactive) return;\n this.handleToolChange(id);\n }\n\n /** Close the tools drawer when open — used by shell keyboard shortcuts. */\n @Method()\n async closeDrawer() {\n if (!this.open) return;\n const id = this.activeTool;\n this.open = false;\n if (id) {\n this.dsToolChange.emit({ id, selected: false });\n }\n }\n\n /** Focus an active tool-header action by its application-owned id. */\n @Method()\n async focusHeaderAction(id: string) {\n const action = this.renderRoot.querySelector(`[data-header-action-id=\"${CSS.escape(id)}\"]`) as\n | (HTMLElement & { setFocus?: () => Promise<void> })\n | null;\n await action?.setFocus?.();\n }\n\n private focusRailAt(index: number) {\n const items = this.orderedRailItems;\n if (!items.length) return;\n const bounded = Math.max(0, Math.min(index, items.length - 1));\n if (bounded === this.rovingIndex) return;\n this.rovingIndex = bounded;\n const actions = Array.from(\n this.renderRoot.querySelectorAll<HTMLElement>('.panel-tools__rail-action .button-icon')\n );\n actions[bounded]?.focus({ preventScroll: true });\n }\n\n private handleRailKeyDown = (e: KeyboardEvent, index: number) => {\n const items = this.orderedRailItems;\n if (!items.length) return;\n\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.handleToolChange(items[index].id);\n return;\n }\n\n if (e.key === 'ArrowDown') {\n if (index >= items.length - 1) return;\n e.preventDefault();\n this.focusRailAt(index + 1);\n return;\n }\n\n if (e.key === 'ArrowUp') {\n if (index <= 0) return;\n e.preventDefault();\n this.focusRailAt(index - 1);\n }\n };\n\n private renderRailAction(item: PanelToolsItem, index: number) {\n const label =\n item.ariaLabel ??\n item.label ??\n PANEL_TOOLS_LABELS[item.id as keyof typeof PANEL_TOOLS_LABELS] ??\n item.id;\n return (\n <ds-tooltip\n key={item.id}\n label={label}\n shortcutKey={\n item.shortcutKey ??\n PANEL_TOOLS_SHORTCUTS[item.id as keyof typeof PANEL_TOOLS_SHORTCUTS]\n }\n side=\"left\"\n size=\"sm\"\n boundary=\"viewport\"\n >\n <ds-button-unfilled\n variant=\"icon\"\n class=\"panel-tools__rail-action\"\n icon={item.icon}\n isActive={this.isRailSelected(item.id)}\n activeFill={false}\n hasBorder={false}\n pressScale={false}\n dot={item.dot ?? false}\n isInactive={item.isInactive}\n focusTabIndex={index === this.rovingIndex ? 0 : -1}\n aria-label={label}\n pressed={this.isRailSelected(item.id)}\n onFocusin={() => {\n this.rovingIndex = index;\n }}\n onKeyDown={(e: KeyboardEvent) => this.handleRailKeyDown(e, index)}\n onDsClick={() => this.handleToolChange(item.id)}\n />\n </ds-tooltip>\n );\n }\n\n render() {\n const headerLabel = this.headerLabel();\n const header = this.activeHeader();\n const headerTitle = header.title?.trim() || headerLabel;\n const headerActions = header.actions ?? [];\n const orderedRailItems = this.orderedRailItems;\n const headerItems = orderedRailItems.filter(\n item => panelToolsRailPlacement(item) === 'header'\n );\n const bodyItems = orderedRailItems.filter(\n item => panelToolsRailPlacement(item) === 'body'\n );\n const footerItems = orderedRailItems.filter(\n item => panelToolsRailPlacement(item) === 'footer'\n );\n const headerCount = headerItems.length;\n const footerStart = headerCount + bodyItems.length;\n const showDrawerChrome = this.isDrawerPresent();\n const drawerResting = panelToolsDrawerResting(this.open, this.motion);\n const activeFullView = Boolean(\n showDrawerChrome && this.activeTool && this.hasFullView(this.activeTool)\n );\n const toolIds = orderedRailItems.map(item => item.id);\n\n return (\n <Host\n class={{\n 'panel-tools': true,\n 'panel-tools--open': this.open,\n 'panel-tools--ready': this.readyForMotion,\n 'panel-tools--motion-opening': this.motion === 'opening',\n 'panel-tools--motion-closing': this.motion === 'closing',\n 'panel-tools--drawer-resting': drawerResting,\n 'panel-tools--fullscreen': this.presentation === 'fullscreen',\n 'panel-tools--presentation-snap': this.presentationMotionSuppressed,\n }}\n role={this.presentation === 'fullscreen' ? 'dialog' : 'complementary'}\n aria-modal={this.presentation === 'fullscreen' ? 'true' : undefined}\n aria-label={this.toolsLabel}\n >\n <div class=\"panel-tools__layout\">\n <nav class=\"panel-tools__rail\" aria-label={this.toolShortcutsLabel}>\n {headerItems.length ? (\n <div class=\"panel-tools__rail-header ds-chrome-row ds-chrome-space--md\">\n {headerItems.map((item, index) => this.renderRailAction(item, index))}\n </div>\n ) : null}\n <div\n class={{\n 'panel-tools__rail-body': true,\n 'ds-chrome-column': true,\n 'ds-chrome-space--md': true,\n 'ds-scrollbar-hidden': true,\n 'ds-focus-ring': this.railBodyScrollable,\n }}\n ref={element => {\n const next = (element as HTMLElement) ?? undefined;\n if (next === this.railBodyEl) return;\n this.railBodyEl = next;\n this.connectRailBodyObserver();\n }}\n role={this.railBodyScrollable ? 'region' : undefined}\n aria-label={this.railBodyScrollable ? this.toolShortcutsLabel : undefined}\n tabIndex={this.railBodyScrollable ? 0 : undefined}\n >\n <div class=\"panel-tools__rail-actions\">\n {bodyItems.map((item, bodyIdx) =>\n this.renderRailAction(item, headerCount + bodyIdx)\n )}\n </div>\n </div>\n {footerItems.length ? (\n <div class=\"panel-tools__rail-footer ds-chrome-row ds-chrome-space--md\">\n {footerItems.map((item, footerIdx) =>\n this.renderRailAction(item, footerStart + footerIdx)\n )}\n </div>\n ) : null}\n </nav>\n\n <div\n class={{\n 'panel-tools__drawer': true,\n 'panel-tools__drawer--visible': showDrawerChrome,\n }}\n aria-hidden={showDrawerChrome ? null : 'true'}\n inert={showDrawerChrome ? undefined : true}\n >\n <div class=\"panel-tools__drawer-surface\">\n {this.presentation !== 'fullscreen' || this.fullscreenHeaderMode === 'shared' ? (\n <ds-panel-tool-header\n class=\"panel-tools__header\"\n heading={headerTitle}\n showBack={header.showBack ?? false}\n backIcon={header.backIcon || 'ChevronLeft'}\n backAriaLabel={header.backAriaLabel || 'Back'}\n showMenu={false}\n ref={element => {\n const toolHeader = element as\n | (HTMLDsPanelToolHeaderElement & {\n actions: PanelToolsHeaderAction[];\n })\n | undefined;\n if (toolHeader) toolHeader.actions = headerActions;\n }}\n onDsBack={() => {\n if (this.activeTool) this.dsHeaderBack.emit({ tool: this.activeTool });\n }}\n />\n ) : null}\n <div class=\"panel-tools__body\" hidden={activeFullView}>\n {toolIds.map(id => {\n const active = this.isViewActive(id);\n return (\n <div\n class={{\n 'panel-tools__view': true,\n 'panel-tools__view--active': active,\n }}\n hidden={!active}\n >\n <slot name={id} />\n </div>\n );\n })}\n </div>\n <div class=\"panel-tools__full-views\" hidden={!activeFullView}>\n {toolIds.map(id => (\n <div\n class={{\n 'panel-tools__full-view': true,\n 'panel-tools__full-view--active':\n this.isViewActive(id) && this.hasFullView(id),\n }}\n hidden={!(this.isViewActive(id) && this.hasFullView(id))}\n >\n <slot name={`${id}-view`} />\n </div>\n ))}\n </div>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"6VAYO,MAAMA,EAAoD,CAC/D,SACA,WACA,WACA,SACA,SACA,QAIK,MAAMC,EAAyD,SAK/D,MAAMC,EAAgE,CAC3EC,OAAQ,SACRC,SAAU,WACVC,OAAQ,SACRC,SAAU,WACVC,OAAQ,SACRC,KAAM,kBAGD,MAAMC,EAA4E,CACvFN,OAAQ,IACRI,OAAQ,IACRH,SAAU,IACVC,OAAQ,IACRC,SAAU,IACVE,KAAM,KA0BD,MAAME,EAA8C,CACzD,CACEC,GAAI,SACJC,KAAM,KACNC,MAAOX,EAAmBK,OAC1BO,cAAe,SACfC,MAAO,EACPC,YAAaP,EAAsBF,OACnCU,kBAAmB,UAErB,CACEN,GAAI,WACJC,KAAM,qBACNC,MAAOX,EAAmBE,SAC1BW,MAAO,EACPC,YAAaP,EAAsBL,SACnCa,kBAAmB,YAErB,CACEN,GAAI,WACJC,KAAM,OACNC,MAAOX,EAAmBI,SAC1BS,MAAO,EACPC,YAAaP,EAAsBH,SACnCW,kBAAmB,YAErB,CACEN,GAAI,SACJC,KAAM,kBACNC,MAAOX,EAAmBC,OAC1BY,MAAO,EACPC,YAAaP,EAAsBN,OACnCc,kBAAmB,UAErB,CACEN,GAAI,OACJC,KAAM,iBACNC,MAAOX,EAAmBM,KAC1BM,cAAe,SACfC,MAAO,EACPC,YAAaP,EAAsBD,KACnCS,kBAAmB,SCrGjB,SAAUC,EAAqBC,GACnC,MAAMC,EAAY,IAAIC,IACtB,IAAK,MAAMC,KAAQH,EAAO,CACxB,GAAIG,EAAKX,GAAGY,SAAWH,EAAUI,IAAIF,EAAKX,IAAKS,EAAUK,IAAIH,EAAKX,GAAIW,E,CAExE,MAAMI,EAAc,CAAEC,OAAQ,EAAGC,KAAM,EAAGC,OAAQ,GAClD,OAAOC,MAAMC,KAAKX,EAAUY,UAAUC,MAAK,CAACC,EAAMC,KAChD,MAAMC,EAAaC,EAAwBH,GAC3C,MAAMI,EAAcD,EAAwBF,GAC5C,MAAMI,EAAcb,EAAYU,GAAcV,EAAYY,GAC1D,GAAIC,IAAgB,EAAG,OAAOA,EAE9B,MAAMC,EAAgBxC,EAAqByC,WAAU9B,GAAMA,IAAOuB,EAAKvB,KACvE,MAAM+B,EAAiB1C,EAAqByC,WAAU9B,GAAMA,IAAOwB,EAAMxB,KACzE,MAAMgC,EAAYT,EAAKnB,QAAUyB,EAAgB,EAAII,OAAOC,iBAAmBL,GAC/E,MAAMM,EACJX,EAAMpB,QAAU2B,EAAiB,EAAIE,OAAOC,iBAAmBH,GACjE,OAAOC,EAAYG,CAAU,GAEjC,CAEM,SAAUC,EAAmBC,GACjC,cAAcA,IAAU,UAAYA,EAAMzB,OAAO0B,OAAS,CAC5D,CAEM,SAAUZ,EACdf,GAEA,GAAIA,EAAKR,cAAe,OAAOQ,EAAKR,cACpC,GAAIQ,EAAKX,KAAOV,EAA6B,MAAO,SACpD,GAAIqB,EAAKX,KAAO,OAAQ,MAAO,SAC/B,MAAO,MACT,C,SAEgBuC,EACd/B,EACAgC,EACAC,GAEA,IAAKA,GAAcjC,EAAMkC,MAAK/B,GAAQA,EAAKX,KAAOyC,IAAa,CAC7D,MAAO,CAAED,OAAMC,aAAYE,YAAa,G,CAE1C,MAAO,CAAEH,KAAM,MAAOC,WAAY,GAAIE,YAAaF,EACrD,CAmCM,SAAUG,EAA6BC,GAC3C,MAAMC,EAAaD,EAAME,mBAAmBC,MAAM,KAAKC,KAAItC,GAAQA,EAAKC,SACxE,MAAMsC,EAAYL,EAAMM,mBAAmBH,MAAM,KAAKC,KAAItC,GAAQyC,EAAezC,EAAKC,OAAQ,KAC9F,MAAMyC,EAASR,EAAMS,gBAAgBN,MAAM,KAAKC,KAAItC,GAAQyC,EAAezC,EAAKC,OAAQ,KAExF,OAAOkC,EAAWS,QAAO,CAACC,EAAKC,EAAUC,KACvC,GAAID,IAAa,OAASA,IAAa,YAAa,OAAOD,EAC3D,MAAMG,EAAWT,EAAUQ,EAAQR,EAAUZ,SAAW,EACxD,MAAMsB,EAAQP,EAAOK,EAAQL,EAAOf,SAAW,EAC/C,OAAOuB,KAAKL,IAAIA,EAAKG,EAAWC,EAAO,EAAE,GACxC,EACL,CAGM,SAAUE,EAAwBtB,EAAeuB,GACrD,OAAQvB,GAAQuB,IAAW,MAC7B,C,SAGgBC,EACdC,EACAC,EACAH,GAEA,GAAIA,IAAW,UAAW,OAAOE,GAAS,GAC1C,GAAIF,IAAW,UAAW,OAAOG,EAAc,GAAKD,GAASC,EAAc,GAC3E,OAAO,IACT,C,SAGgBC,EACd3B,EACAC,EACAzC,GAEA,GAAIwC,GAAQC,IAAezC,EAAI,CAC7B,MAAO,CAAEwC,KAAM,MAAOC,WAAYzC,EAAIoE,SAAU,M,CAElD,MAAO,CAAE5B,KAAM,KAAMC,WAAYzC,EAAIoE,SAAU,KACjD,CC7HA,MAAMC,EAAgB,IAAM,s6Q,MCwCfC,EAAUC,EAAA,MAAAD,UAAAE,EALvB,WAAAC,CAAAC,G,gYAS0CC,KAAAnC,KAAgB,MAGhBmC,KAAAC,aAAwC,SAIhFD,KAAAE,qBAA2C,SAI3CF,KAAAlC,WAAoC,GAM5BkC,KAAAnE,MAA0B,GAE1BmE,KAAAG,WAAqB,QACrBH,KAAAI,mBAA6B,iBAG7BJ,KAAAK,QAA6B,GAMDL,KAAAM,WAAqB,GA8BxCN,KAAAZ,OAAyC,OAGzCY,KAAAO,sBAAwB,MAGxBP,KAAAQ,eAAiB,MAGjBR,KAAAS,6BAA+B,MAE/BT,KAAAU,YAAc,EACdV,KAAAW,gBAAsC,GACtCX,KAAAY,mBAAqB,MAE9BZ,KAAAa,uBAAyB,EACzBb,KAAAc,6BAA+B,EAC/Bd,KAAAe,qBAAuB,EACvBf,KAAAgB,wBAAyC,KAEzChB,KAAAiB,0BAA4B,MAC5BjB,KAAAkB,sBAA4C,KAC5ClB,KAAAmB,iBAA4C,KAyF5CnB,KAAAoB,2BAA8BC,IACpC,MAAMC,EAAUD,EAA6DC,OAC7E,IAAKtB,KAAKlC,aAAewD,GAAQjG,GAAI,OACrCgG,EAAME,kBACNvB,KAAKwB,eAAeC,KAAK,CACvBC,KAAM1B,KAAKlC,WACXzC,GAAIiG,EAAOjG,GACXsG,OAAQL,EAAOK,QACf,EAiJI3B,KAAA4B,oBAAuBP,IAC7B,MAAMQ,EAAS7B,KAAK8B,WAAWC,cAAc,wBAC7C,GAAIV,EAAMW,SAAWH,EAAQ,OAC7B,GAAIR,EAAMY,eAAiB,YAAa,OACxC,GAAIjC,KAAKiB,0BAA2B,CAClCjB,KAAKiB,0BAA4B,MACjC,M,CAMF,GAAII,EAAMa,OAAS,mBAAoB,OACvC,GAAIL,IAAW7B,KAAKmC,2BAA2BN,EAAQ7B,KAAKZ,QAAS,OACrEY,KAAKoC,wBAAwB,EAiFvBpC,KAAAqC,iBAAoBhH,IAC1B,MAAMiH,EAAO9C,EAA2BQ,KAAKnC,KAAMmC,KAAKlC,WAAYzC,GACpE2E,KAAKnC,KAAOyE,EAAKzE,KACjBmC,KAAKlC,WAAawE,EAAKxE,WACvBkC,KAAKuC,aAAad,KAAK,CAAEpG,KAAIoE,SAAU6C,EAAK7C,UAAW,EA2CjDO,KAAAwC,kBAAoB,CAACC,EAAkB1D,KAC7C,MAAMlD,EAAQmE,KAAK0C,iBACnB,IAAK7G,EAAM8B,OAAQ,OAEnB,GAAI8E,EAAEE,MAAQ,SAAWF,EAAEE,MAAQ,IAAK,CACtCF,EAAEG,iBACF5C,KAAKqC,iBAAiBxG,EAAMkD,GAAO1D,IACnC,M,CAGF,GAAIoH,EAAEE,MAAQ,YAAa,CACzB,GAAI5D,GAASlD,EAAM8B,OAAS,EAAG,OAC/B8E,EAAEG,iBACF5C,KAAK6C,YAAY9D,EAAQ,GACzB,M,CAGF,GAAI0D,EAAEE,MAAQ,UAAW,CACvB,GAAI5D,GAAS,EAAG,OAChB0D,EAAEG,iBACF5C,KAAK6C,YAAY9D,EAAQ,E,EA+L9B,CA/kBC,aAAY+D,GACV,OAAO9C,KAAKnE,OAAS,E,CAGvB,oBAAY6G,GACV,OAAO9G,EAAqBoE,KAAK8C,U,CAGnC,oBAAAC,GACE/C,KAAKgD,GAAGC,oBAAoB,gBAAiBjD,KAAK4B,qBAClD5B,KAAKgD,GAAGC,oBAAoB,mBAAoBjD,KAAK4B,qBACrD5B,KAAKgD,GAAGC,oBAAoB,WAAYjD,KAAKoB,4BAC7CpB,KAAKkD,4BACLlD,KAAKa,wBAA0B,EAC/Bb,KAAKmB,kBAAkBgC,aACvBnD,KAAKmB,iBAAmB,KACxBnB,KAAKoD,4B,CAIP,mBAAAC,CAAoBf,EAA+BgB,GACjD,GAAIhB,IAASgB,EAAU,OAKvB,GAAItD,KAAKgD,GAAGO,aAAa,kBAAoBjB,EAAM,CACjDtC,KAAKgD,GAAGQ,aAAa,eAAgBlB,E,CAEvC,MAAMmB,IAA2BzD,KAAKc,6BACtCd,KAAKS,6BAA+B,KACpCiD,uBAAsB,KACpBA,uBAAsB,KACpB,GAAID,IAA2BzD,KAAKc,6BAA8B,OAClEd,KAAKS,6BAA+B,KAAK,GACzC,IAEJ,GAAI6B,IAAS,aAAc,CACzBtC,KAAKkB,sBACHyC,SAASC,yBAAyB/D,EAAc8D,SAASC,cAAgB,KAC3E5D,KAAKnC,KAAO,I,MACP,GAAIyF,IAAa,aAAc,CACpC,MAAMpC,EAAwBlB,KAAKkB,sBACnC,MAAM2C,EAAmB7D,KAAK8D,eAAeC,UAAU,IAAI1I,GAC3DqI,uBAAsBM,UACpB,GAAI9C,GAAuB+C,YAAa,CACtC/C,EAAsBgD,MAAM,CAAEC,cAAe,M,CAE/C,MAAMC,EAAgBlD,EAClByC,SAASC,gBAAkB1C,GAC3BA,EAAsBmD,SAASV,SAASC,eACxC,MACJ,IAAKQ,GAAiBP,QAAwB7D,KAAKsE,kBAAkBT,GACrE7D,KAAKkB,sBAAwB,IAAI,G,CAGrClB,KAAKuE,qBAAqB9C,KAAK,CAAExB,aAAcqC,G,CAIjD,sBAAAkC,CAAuBnD,GACrB,GAAIrB,KAAKC,eAAiB,cAAgBoB,EAAMsB,MAAQ,SAAU,OAClEtB,EAAMuB,iBACNvB,EAAME,kBACNvB,KAAKC,aAAe,Q,CAGd,iBAAAwE,GACN,GAAIzE,KAAKQ,eAAgB,OACzB,MAAMkE,IAAe1E,KAAKa,uBAC1B6C,uBAAsB,KACpB,GAAIgB,IAAe1E,KAAKa,uBAAwB,OAChD6C,uBAAsB,KACpB,GAAIgB,IAAe1E,KAAKa,uBAAwB,OAChDb,KAAKQ,eAAiB,IAAI,GAC1B,G,CAIN,iBAAAmE,GACE3E,KAAKgD,GAAG4B,iBAAiB,gBAAiB5E,KAAK4B,qBAC/C5B,KAAKgD,GAAG4B,iBAAiB,mBAAoB5E,KAAK4B,qBAClD5B,KAAKgD,GAAG4B,iBAAiB,WAAY5E,KAAKoB,2B,CAc5C,iBAAAyD,GACE7E,KAAK8E,wBACL9E,KAAKO,sBAAwBP,KAAKnC,I,CAIpC,WAAAkH,CAAYC,EAAiBC,GAC3B,GAAID,EAAQhF,KAAKO,sBAAwB,KACzC,GAAIP,KAAKQ,gBAAkByE,IAAYC,WAAaD,IAAYD,EAAQ,CACtEhF,KAAKmF,sBAAsBH,EAAS,UAAY,U,MAC3C,IAAKA,EAAQ,CAClBhF,KAAKO,sBAAwB,K,CAE/BP,KAAKyE,mB,CAIP,iBAAAW,GACEpF,KAAKqF,wBACLrF,KAAKyE,mB,CAIP,iBAAAa,GACEtF,KAAK8E,uB,CAGP,gBAAAS,GACEvF,KAAKyE,oBACLzE,KAAKwF,0BACLxF,KAAKyF,2BACLzF,KAAK0F,oBACL1F,KAAKmB,iBAAmB,IAAIwE,kBAAiB,IAAM3F,KAAK0F,sBACxD1F,KAAKmB,iBAAiByE,QAAQ5F,KAAKgD,GAAI,CACrC6C,UAAW,KACXC,WAAY,KACZC,gBAAiB,CAAC,S,CAItB,kBAAAC,GACEhG,KAAKyF,0B,CAGC,uBAAAD,GACNxF,KAAKoD,6BACL,IAAKpD,KAAKiG,mBAAqBC,iBAAmB,YAAa,OAC/DlG,KAAKmG,iBAAmB,IAAID,gBAAe,IAAMlG,KAAKyF,6BACtDzF,KAAKmG,iBAAiBP,QAAQ5F,KAAKiG,W,CAG7B,0BAAA7C,GACNpD,KAAKmG,kBAAkBhD,aACvBnD,KAAKmG,iBAAmBjB,S,CAGlB,wBAAAO,GACN,MAAMnD,EAAO8D,QACXpG,KAAKiG,YAAcjG,KAAKiG,WAAWI,aAAerG,KAAKiG,WAAWK,aAAe,GAEnF,GAAIhE,IAAStC,KAAKY,mBAAoBZ,KAAKY,mBAAqB0B,C,CAIlE,YAAAiE,GACEvG,KAAKU,YAAc,EACnBV,KAAKwG,sBACLxG,KAAKyE,mB,CAGC,qBAAAK,GACN,IAAK9E,KAAKM,YAAcN,KAAKlC,WAAY,OACzC,IACE,MAAM2I,EAASC,aAAaC,QAAQ3G,KAAKM,YACzC,GAAI7C,EAAmBgJ,GAASzG,KAAKlC,WAAa2I,C,CAClD,M,EAKI,qBAAApB,GACN,IAAKrF,KAAKM,aAAeN,KAAKlC,WAAY,OAC1C,IACE4I,aAAaE,QAAQ5G,KAAKM,WAAYN,KAAKlC,W,CAC3C,M,EAKI,kBAAA+I,GACN,IAAK7G,KAAKM,WAAY,OACtB,IACEoG,aAAaI,WAAW9G,KAAKM,W,CAC7B,M,EAKI,mBAAAkG,GACN,MAAMlE,EAAO1E,EAAgCoC,KAAK8C,UAAW9C,KAAKnC,KAAMmC,KAAKlC,YAC7E,IAAKwE,EAAKtE,YAAa,OACvBgC,KAAK6G,qBACL7G,KAAKnC,KAAOyE,EAAKzE,KACjBmC,KAAKlC,WAAawE,EAAKxE,WACvBkC,KAAKuC,aAAad,KAAK,CAAEpG,GAAIiH,EAAKtE,YAAayB,SAAU,O,CAGnD,qBAAA0F,CAAsB4B,GAC5B,MAAMlF,EAAS7B,KAAK8B,WAAWC,cAAc,wBAC7C,GAAI/B,KAAKZ,SAAW,OAAQ,CAC1BY,KAAKoC,yBACLpC,KAAKiB,0BAA4B,I,CAEnCjB,KAAKZ,OAAS2H,EACd/G,KAAKgH,wBAAwBvF,KAAK,CAAEwF,OAAQ,cAAeF,UAC3D,MAAMrC,IAAe1E,KAAKe,qBAE1B2C,uBAAsB,KACpBA,uBAAsB,KACpB,GAAIgB,IAAe1E,KAAKe,sBAAwBf,KAAKZ,SAAW2H,EAAO,OACvE,IAAKlF,EAAQ,CACX7B,KAAKoC,yBACL,M,CAGF,GAAIpC,KAAKmC,2BAA2BN,EAAQkF,GAAQ,CAClD/G,KAAKoC,yBACL,M,CAGF,MAAM8E,EAAajJ,EAA6BkJ,iBAAiBtF,IACjE,GAAIqF,GAAc,EAAG,CACnBlH,KAAKoC,yBACL,M,CAEFpC,KAAKgB,wBAA0BoG,OAAOC,YAAW,KAC/CrH,KAAKoC,wBAAwB,GAC5B8E,EAAW,GACd,G,CAqBE,0BAAA/E,CACNN,EACAkF,GAEA,MAAMzH,EAAQuC,EAAOyF,wBAAwBhI,MAC7C,MAAMiI,EAAU1F,EAAOE,cAAc,gCACrC,MAAMxC,EAAcgI,GAASD,wBAAwBhI,OAAS,EAC9D,OAAOD,EAA2BC,EAAOC,EAAawH,E,CAGhD,sBAAA3E,GACN,MAAMoF,EAAiBxH,KAAKZ,OAC5B,MAAMqI,EAAmBD,IAAmB,OAC5CxH,KAAKkD,4BACL,IAAKuE,EAAkB,OACvBzH,KAAKiB,0BAA4B,MACjCjB,KAAKZ,OAAS,OACd,GAAIoI,IAAmB,YAAcxH,KAAKnC,KAAM,CAC9CmC,KAAKO,sBAAwB,K,CAE/BP,KAAK0H,sBAAsBjG,KAAK,CAAEwF,OAAQ,e,CAGpC,yBAAA/D,GACNlD,KAAKe,sBAAwB,EAC7B,GAAIf,KAAKgB,0BAA4B,KAAM,CACzCoG,OAAOO,aAAa3H,KAAKgB,yBACzBhB,KAAKgB,wBAA0B,I,EAK3B,cAAA4G,CAAevM,GACrB,OAAO2E,KAAKnC,MAAQmC,KAAKlC,aAAezC,C,CAIlC,eAAAwM,GACN,OAAO7H,KAAKnC,MAAQmC,KAAKO,qB,CAGnB,YAAAuH,CAAazM,GACnB,OAAO2E,KAAK6H,mBAAqB7H,KAAKlC,aAAezC,C,CAG/C,WAAA0M,CAAY1M,GAClB,OAAO2E,KAAKW,gBAAgBqH,SAAS3M,E,CAG/B,iBAAAqK,GACN,MAAMuC,EAAMjI,KAAK0C,iBAAiBpE,KAAItC,GAAQA,EAAKX,KACnD,MAAMiH,EAAO2F,EAAIC,QAAO7M,GAAM+K,QAAQpG,KAAKgD,GAAGjB,cAAc,UAAU1G,eACtE,GAAIiH,EAAK6F,KAAK,OAASnI,KAAKW,gBAAgBwH,KAAK,KAAMnI,KAAKW,gBAAkB2B,C,CAGhF,cAAYR,GACV,OAAO9B,KAAKgD,GAAGoF,YAAcpI,KAAKgD,E,CAG5B,WAAAqF,GACN,IAAKrI,KAAK6H,oBAAsB7H,KAAKlC,WAAY,MAAO,GACxD,MAAM9B,EAAOgE,KAAK8C,UAAUwF,MAAKC,GAAaA,EAAUlN,KAAO2E,KAAKlC,aACpE,OACE9B,GAAMT,OACNX,EAAmBoF,KAAKlC,aACxBkC,KAAKlC,U,CAID,eAAA0K,GACN,OAAOxI,KAAKK,SAAW,E,CAGjB,YAAAyD,GACN,IAAK9D,KAAKlC,WAAY,MAAO,GAC7B,OAAOkC,KAAKwI,kBAAkBxI,KAAKlC,aAAe,E,CAYpD,kBAAM2K,CAAapN,GACjB,MAAMW,EAAOgE,KAAK8C,UAAUwF,MAAKI,GAASA,EAAMrN,KAAOA,IACvD,IAAKW,GAAQA,EAAK2M,WAAY,OAC9B3I,KAAKqC,iBAAiBhH,E,CAKxB,iBAAMuN,GACJ,IAAK5I,KAAKnC,KAAM,OAChB,MAAMxC,EAAK2E,KAAKlC,WAChBkC,KAAKnC,KAAO,MACZ,GAAIxC,EAAI,CACN2E,KAAKuC,aAAad,KAAK,CAAEpG,KAAIoE,SAAU,O,EAM3C,uBAAM6E,CAAkBjJ,GACtB,MAAMwN,EAAS7I,KAAK8B,WAAWC,cAAc,2BAA2B+G,IAAIC,OAAO1N,cAG7EwN,GAAQG,a,CAGR,WAAAnG,CAAY9D,GAClB,MAAMlD,EAAQmE,KAAK0C,iBACnB,IAAK7G,EAAM8B,OAAQ,OACnB,MAAMsL,EAAU/J,KAAKL,IAAI,EAAGK,KAAKgK,IAAInK,EAAOlD,EAAM8B,OAAS,IAC3D,GAAIsL,IAAYjJ,KAAKU,YAAa,OAClCV,KAAKU,YAAcuI,EACnB,MAAMlF,EAAUvH,MAAMC,KACpBuD,KAAK8B,WAAWqH,iBAA8B,2CAEhDpF,EAAQkF,IAAU/E,MAAM,CAAEC,cAAe,M,CA2BnC,gBAAAiF,CAAiBpN,EAAsB+C,GAC7C,MAAMxD,EACJS,EAAKqN,WACLrN,EAAKT,OACLX,EAAmBoB,EAAKX,KACxBW,EAAKX,GACP,OACEiO,EAAA,cACE3G,IAAK3G,EAAKX,GACVE,MAAOA,EACPG,YACEM,EAAKN,aACLP,EAAsBa,EAAKX,IAE7BkO,KAAK,OACLC,KAAK,KACLC,SAAS,YAETH,EAAA,sBACEI,QAAQ,OACRC,MAAM,2BACNrO,KAAMU,EAAKV,KACXsO,SAAU5J,KAAK4H,eAAe5L,EAAKX,IACnCwO,WAAY,MACZC,UAAW,MACXC,WAAY,MACZC,IAAKhO,EAAKgO,KAAO,MACjBrB,WAAY3M,EAAK2M,WACjBsB,cAAelL,IAAUiB,KAAKU,YAAc,GAAI,EAAE,aACtCnF,EACZ2O,QAASlK,KAAK4H,eAAe5L,EAAKX,IAClC8O,UAAW,KACTnK,KAAKU,YAAc3B,CAAK,EAE1BqL,UAAY3H,GAAqBzC,KAAKwC,kBAAkBC,EAAG1D,GAC3DsL,UAAW,IAAMrK,KAAKqC,iBAAiBrG,EAAKX,M,CAMpD,MAAAiP,GACE,MAAMjC,EAAcrI,KAAKqI,cACzB,MAAMhM,EAAS2D,KAAK8D,eACpB,MAAMyG,EAAclO,EAAOmO,OAAOvO,QAAUoM,EAC5C,MAAMoC,EAAgBpO,EAAO0H,SAAW,GACxC,MAAMrB,EAAmB1C,KAAK0C,iBAC9B,MAAMgI,EAAchI,EAAiBwF,QACnClM,GAAQe,EAAwBf,KAAU,WAE5C,MAAM2O,EAAYjI,EAAiBwF,QACjClM,GAAQe,EAAwBf,KAAU,SAE5C,MAAM4O,EAAclI,EAAiBwF,QACnClM,GAAQe,EAAwBf,KAAU,WAE5C,MAAM6O,EAAcH,EAAY/M,OAChC,MAAMmN,EAAcD,EAAcF,EAAUhN,OAC5C,MAAMoN,EAAmB/K,KAAK6H,kBAC9B,MAAMmD,EAAgB7L,EAAwBa,KAAKnC,KAAMmC,KAAKZ,QAC9D,MAAM6L,EAAiB7E,QACrB2E,GAAoB/K,KAAKlC,YAAckC,KAAK+H,YAAY/H,KAAKlC,aAE/D,MAAMoN,EAAUxI,EAAiBpE,KAAItC,GAAQA,EAAKX,KAElD,OACEiO,EAAC6B,EAAI,CAAAxI,IAAA,2CACHgH,MAAO,CACL,cAAe,KACf,oBAAqB3J,KAAKnC,KAC1B,qBAAsBmC,KAAKQ,eAC3B,8BAA+BR,KAAKZ,SAAW,UAC/C,8BAA+BY,KAAKZ,SAAW,UAC/C,8BAA+B4L,EAC/B,0BAA2BhL,KAAKC,eAAiB,aACjD,iCAAkCD,KAAKS,8BAEzC2K,KAAMpL,KAAKC,eAAiB,aAAe,SAAW,gBAAe,aACzDD,KAAKC,eAAiB,aAAe,OAASiF,UAAS,aACvDlF,KAAKG,YAEjBmJ,EAAA,OAAA3G,IAAA,2CAAKgH,MAAM,uBACTL,EAAA,OAAA3G,IAAA,2CAAKgH,MAAM,oBAAmB,aAAa3J,KAAKI,oBAC7CsK,EAAY/M,OACX2L,EAAA,OAAKK,MAAM,8DACRe,EAAYpM,KAAI,CAACtC,EAAM+C,IAAUiB,KAAKoJ,iBAAiBpN,EAAM+C,MAE9D,KACJuK,EAAA,OAAA3G,IAAA,2CACEgH,MAAO,CACL,yBAA0B,KAC1B,mBAAoB,KACpB,sBAAuB,KACvB,sBAAuB,KACvB,gBAAiB3J,KAAKY,oBAExByK,IAAKC,IACH,MAAMhJ,EAAQgJ,GAA2BpG,UACzC,GAAI5C,IAAStC,KAAKiG,WAAY,OAC9BjG,KAAKiG,WAAa3D,EAClBtC,KAAKwF,yBAAyB,EAEhC4F,KAAMpL,KAAKY,mBAAqB,SAAWsE,UAAS,aACxClF,KAAKY,mBAAqBZ,KAAKI,mBAAqB8E,UAChEqG,SAAUvL,KAAKY,mBAAqB,EAAIsE,WAExCoE,EAAA,OAAA3G,IAAA,2CAAKgH,MAAM,6BACRgB,EAAUrM,KAAI,CAACtC,EAAMwP,IACpBxL,KAAKoJ,iBAAiBpN,EAAM6O,EAAcW,OAI/CZ,EAAYjN,OACX2L,EAAA,OAAKK,MAAM,8DACRiB,EAAYtM,KAAI,CAACtC,EAAMyP,IACtBzL,KAAKoJ,iBAAiBpN,EAAM8O,EAAcW,MAG5C,MAGNnC,EAAA,OAAA3G,IAAA,2CACEgH,MAAO,CACL,sBAAuB,KACvB,+BAAgCoB,GACjC,cACYA,EAAmB,KAAO,OACvCW,MAAOX,EAAmB7F,UAAY,MAEtCoE,EAAA,OAAA3G,IAAA,2CAAKgH,MAAM,+BACR3J,KAAKC,eAAiB,cAAgBD,KAAKE,uBAAyB,SACnEoJ,EAAA,wBACEK,MAAM,sBACNgC,QAASpB,EACTqB,SAAUvP,EAAOuP,UAAY,MAC7BC,SAAUxP,EAAOwP,UAAY,cAC7BC,cAAezP,EAAOyP,eAAiB,OACvCC,SAAU,MACVV,IAAKC,IACH,MAAMU,EAAaV,EAKnB,GAAIU,EAAYA,EAAWjI,QAAU0G,CAAa,EAEpDwB,SAAU,KACR,GAAIjM,KAAKlC,WAAYkC,KAAKkM,aAAazK,KAAK,CAAEC,KAAM1B,KAAKlC,YAAa,IAGxE,KACJwL,EAAA,OAAA3G,IAAA,2CAAKgH,MAAM,oBAAoBwC,OAAQlB,GACpCC,EAAQ5M,KAAIjD,IACX,MAAM+Q,EAASpM,KAAK8H,aAAazM,GACjC,OACEiO,EAAA,OACEK,MAAO,CACL,oBAAqB,KACrB,4BAA6ByC,GAE/BD,QAASC,GAET9C,EAAA,QAAM+C,KAAMhR,IACR,KAIZiO,EAAA,OAAA3G,IAAA,2CAAKgH,MAAM,0BAA0BwC,QAASlB,GAC3CC,EAAQ5M,KAAIjD,GACXiO,EAAA,OACEK,MAAO,CACL,yBAA0B,KAC1B,iCACE3J,KAAK8H,aAAazM,IAAO2E,KAAK+H,YAAY1M,IAE9C8Q,SAAUnM,KAAK8H,aAAazM,IAAO2E,KAAK+H,YAAY1M,KAEpDiO,EAAA,QAAM+C,KAAM,GAAGhR,kB","ignoreList":[]}
|
|
@@ -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{D as n,s as d}from"./p-DOUk4KoT.js";import{s as c}from"./p-B8q-6a03.js";const a=()=>`@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:transparent;box-shadow:inset 0 0 0 var(--ds-switch-stroke) var(--color-border-secondary);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:none}: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-foreground-tertiary);box-shadow:none;transform:translateY(-50%);transition:background-color var(--effect-motion-short-3), transform var(--effect-motion-short-3);pointer-events:none}.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);box-shadow:none;transform:translate3d(var(--ds-switch-travel), -50%, 0)}@media (prefers-reduced-motion: reduce){:host{transition:none}.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)}.thumb{background-color:var(--ds-forced-color-content)}:host(.checked) .thumb{background-color:var(--ds-forced-color-on-selected)}}`;let h=0;const l=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=n;this.isInactive=false;this.size="md";this.presentation=false;this.initialChecked=false;this.formDisabled=false;this.focused=false;this.touched=false;this.handleClick=()=>{if(this.presentation||this.readOnly||this.isInactive||this.disabled||this.formDisabled)return;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}}componentWillLoad(){this.initialChecked=this.checked;this.syncFormValue()}componentDidLoad(){this.syncNativeLabels()}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";c(this.internals,e,{inactive:s,state:t});const i=this.required&&!s&&!this.checked;d(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-${++h}`;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:"492774b88c1d0ca579563cefaba5e029aa5f5b06",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,"ds-focus-ring":true,"ds-control-inactive":s},onClick:this.handleClick,onKeyDown:this.handleKeyDown,onFocus:this.handleFocus,onBlur:this.handleBlur},i("span",{key:"d461adfd4b3c1cf289b4df91165ff083df2e6bd5",class:"thumb"}))}static get formAssociated(){return true}get el(){return this}static get watchers(){return{checked:[{syncFormValue:0}],value:[{syncFormValue:0}],uncheckedValue:[{syncFormValue:0}],disabled:[{syncFormValue:0}],isInactive:[{syncFormValue:0}],presentation:[{syncFormValue:0}],required:[{syncFormValue:0}]}}static get style(){return a()}},[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]},undefined,{checked:[{syncFormValue:0}],value:[{syncFormValue:0}],uncheckedValue:[{syncFormValue:0}],disabled:[{syncFormValue:0}],isInactive:[{syncFormValue:0}],presentation:[{syncFormValue:0}],required:[{syncFormValue:0}]}]);function u(){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),l)}break}}))}u();export{l as S,u 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{D as n,s as d}from"./p-DOUk4KoT.js";import{s as c}from"./p-B8q-6a03.js";const a=()=>`@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:transparent;box-shadow:inset 0 0 0 var(--ds-switch-stroke) var(--color-border-secondary);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:none}: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-foreground-tertiary);box-shadow:none;transform:translateY(-50%);transition:background-color var(--effect-motion-short-3), transform var(--effect-motion-short-3);pointer-events:none}.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);box-shadow:none;transform:translate3d(var(--ds-switch-travel), -50%, 0)}@media (prefers-reduced-motion: reduce){:host{transition:none}.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)}.thumb{background-color:var(--ds-forced-color-content)}:host(.checked) .thumb{background-color:var(--ds-forced-color-on-selected)}}`;let h=0;const l=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=n;this.isInactive=false;this.size="md";this.presentation=false;this.initialChecked=false;this.formDisabled=false;this.focused=false;this.touched=false;this.handleClick=()=>{if(this.presentation||this.readOnly||this.isInactive||this.disabled||this.formDisabled)return;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}}componentWillLoad(){this.initialChecked=this.checked;this.syncFormValue()}componentDidLoad(){this.syncNativeLabels()}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";c(this.internals,e,{inactive:s,state:t});const i=this.required&&!s&&!this.checked;d(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-${++h}`;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:"5a0a850db269be4f3030708862b0586bab0a5bb0",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,"ds-focus-ring":true,"ds-control-inactive":s},onClick:this.handleClick,onKeyDown:this.handleKeyDown,onFocus:this.handleFocus,onBlur:this.handleBlur},i("span",{key:"ba652b87d71811c619151200286407a34f799931",class:"thumb"}))}static get formAssociated(){return true}get el(){return this}static get watchers(){return{checked:[{syncFormValue:0}],value:[{syncFormValue:0}],uncheckedValue:[{syncFormValue:0}],disabled:[{syncFormValue:0}],isInactive:[{syncFormValue:0}],presentation:[{syncFormValue:0}],required:[{syncFormValue:0}]}}static get style(){return a()}},[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]},undefined,{checked:[{syncFormValue:0}],value:[{syncFormValue:0}],uncheckedValue:[{syncFormValue:0}],disabled:[{syncFormValue:0}],isInactive:[{syncFormValue:0}],presentation:[{syncFormValue:0}],required:[{syncFormValue:0}]}]);function u(){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),l)}break}}))}u();export{l as S,u as d};
|
|
2
|
+
//# sourceMappingURL=p-CsBICYmt.js.map
|