@ds-mo/ui 14.32.1 → 14.33.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/dist/.package-ready.json +1 -1
- package/dist/agent-patterns.json +1 -1
- package/dist/agent.json +117 -2
- package/dist/angular/ds-card-action-center.d.ts +20 -0
- package/dist/angular/ds-card-action-center.js +42 -0
- package/dist/angular/index.d.ts +1 -1
- package/dist/angular/index.js +1 -0
- package/dist/angular/proxies.d.ts +1 -0
- package/dist/angular/proxies.js +1 -0
- package/dist/components/ds-agent-activity.js +1 -1
- package/dist/components/ds-agent-questionnaire.js +1 -1
- package/dist/components/ds-agent-response.js +1 -1
- package/dist/components/ds-agent-source-list.js +1 -1
- package/dist/components/ds-agent-tool-call.js +1 -1
- package/dist/components/ds-attachment-list.js +1 -1
- package/dist/components/ds-badge.js +1 -1
- package/dist/components/ds-banner.js +1 -1
- package/dist/components/ds-bar-action.js +1 -1
- package/dist/components/ds-bar-nav.js +1 -1
- package/dist/components/ds-bar-page-title.js +1 -1
- package/dist/components/ds-bar-title.js +1 -1
- package/dist/components/ds-bar-workflow.js +1 -1
- package/dist/components/ds-breadcrumb.js +1 -1
- package/dist/components/ds-button-filled.js +1 -1
- package/dist/components/ds-button-unfilled.js +1 -1
- package/dist/components/ds-card-action-center.d.ts +11 -0
- package/dist/components/ds-card-action-center.js +2 -0
- package/dist/components/ds-card-action-center.js.map +1 -0
- package/dist/components/ds-card-chart.js +1 -1
- package/dist/components/ds-card-navigation.js +1 -1
- package/dist/components/ds-card-overview.js +1 -1
- package/dist/components/ds-card-setting.js +1 -1
- package/dist/components/ds-card-settings-scope.js +1 -1
- package/dist/components/ds-chart-legend.js +1 -1
- package/dist/components/ds-chart.js +1 -1
- package/dist/components/ds-checkbox.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-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-actions.js.map +1 -1
- package/dist/components/ds-message-bubble.js +1 -1
- package/dist/components/ds-message-bubble.js.map +1 -1
- package/dist/components/ds-message-composer.js +1 -1
- package/dist/components/ds-message-scroller.js +1 -1
- package/dist/components/ds-message.js +1 -1
- package/dist/components/ds-mobile-bar-nav.js +1 -1
- package/dist/components/ds-mobile-header.js +1 -1
- package/dist/components/ds-mobile-section-switcher.js +1 -1
- package/dist/components/ds-mobile-sheet-nav.js +1 -1
- package/dist/components/ds-modal.js +1 -1
- package/dist/components/ds-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-score.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-group.js +1 -1
- package/dist/components/ds-table-saved-views.js +1 -1
- package/dist/components/ds-table-search.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-tag.js +1 -1
- package/dist/components/ds-text.js +1 -1
- package/dist/components/ds-textarea.js +1 -1
- package/dist/components/ds-toast.js +1 -1
- package/dist/components/ds-tooltip-chart.js +1 -1
- package/dist/components/ds-tooltip.js +1 -1
- package/dist/components/ds-typing-indicator.js +1 -1
- package/dist/components/{p-P60MGUqZ.js → p-4DNyCYKM.js} +2 -2
- package/dist/components/{p-B9oadFSC.js → p-AkSwrAKR.js} +2 -2
- package/dist/components/{p-DPPM5T7q.js → p-B5QVra1K.js} +2 -2
- package/dist/components/{p-DwxKwC5i.js → p-B_nPct4G.js} +2 -2
- package/dist/components/{p-B5W_r4vV.js → p-BlWNMytv.js} +2 -2
- package/dist/components/{p-9rzbZP-F.js → p-BqGdNrVl.js} +2 -2
- package/dist/components/{p-CakRq92x.js → p-Br0dx2uP.js} +2 -2
- package/dist/components/{p-gR6G5azA.js → p-BwsS_Hyr.js} +2 -2
- package/dist/components/{p-CN3roaMg.js → p-ByoywoBH.js} +2 -2
- package/dist/components/{p-BPTqn5zL.js → p-C1QHxVvP.js} +2 -2
- package/dist/components/{p-CumGY3uN.js → p-C51ytXM6.js} +2 -2
- package/dist/components/{p-DJHshyyC.js → p-C8XJgV1n.js} +2 -2
- package/dist/components/{p-oFbI_M5B.js → p-CBQzTgvI.js} +2 -2
- package/dist/components/p-CHBuzAYH.js +2 -0
- package/dist/components/{p-DzHXk0IG.js.map → p-CHBuzAYH.js.map} +1 -1
- package/dist/components/p-CHUdAW1Q.js +2 -0
- package/dist/components/{p-skVhQk9d.js.map → p-CHUdAW1Q.js.map} +1 -1
- package/dist/components/p-CIYJhyKt.js +2 -0
- package/dist/components/{p--VKxPUoV.js.map → p-CIYJhyKt.js.map} +1 -1
- package/dist/components/{p-DFWJmuaR.js → p-CIoeHcCk.js} +2 -2
- package/dist/components/{p-BG_n-zQT.js → p-CK2S28gU.js} +2 -2
- package/dist/components/{p-DC69DgAR.js → p-CKo2nySr.js} +2 -2
- package/dist/components/{p-BGGIEmQj.js → p-CMq-jKEI.js} +2 -2
- package/dist/components/{p-r5td84fg.js → p-CNDTHTf6.js} +2 -2
- package/dist/components/{p-ZG1KTkZw.js → p-CQqZgTYk.js} +2 -2
- package/dist/components/{p-BnWxbhFP.js → p-CXAa9TUM.js} +2 -2
- package/dist/components/{p-14sMoeTr.js → p-CnK36Be0.js} +2 -2
- package/dist/components/{p-DEuu954R.js → p-CoE7yza3.js} +2 -2
- package/dist/components/{p-BonnrRtE.js → p-CqeMumqy.js} +2 -2
- package/dist/components/{p-zunBF381.js → p-CvplapTD.js} +2 -2
- package/dist/components/{p-DGQUm3WL.js → p-Cw_npFwN.js} +2 -2
- package/dist/components/{p-BYVydAx2.js → p-CweS0FfJ.js} +2 -2
- package/dist/components/{p-B5OP31eo.js → p-DBZwI7HY.js} +2 -2
- package/dist/components/{p-B9WwU5vu.js → p-DEyvEIYL.js} +2 -2
- package/dist/components/{p-D59xX7JN.js → p-DVWOUQfT.js} +2 -2
- package/dist/components/{p-DQpw21HO.js → p-Da9VpZX2.js} +2 -2
- package/dist/components/{p-DVRL3oem.js → p-Dj296RmE.js} +2 -2
- package/dist/components/{p-z7Zj26BA.js → p-DjCnGxSd.js} +2 -2
- package/dist/components/{p-BFd18avA.js → p-DrjY8Mpy.js} +2 -2
- package/dist/components/{p-B66JqjpI.js → p-Dx7WcWW1.js} +2 -2
- package/dist/components/{p-DceM6xWR.js → p-DyyfWSLB.js} +2 -2
- package/dist/components/{p-UxIgD24y.js → p-DzbEJN1A.js} +2 -2
- package/dist/components/{p-BCRPg1Xs.js → p-LZ8F08Fj.js} +2 -2
- package/dist/components/{p-YFrD62Ml.js → p-OxdAzO4v.js} +2 -2
- package/dist/components/{p-uqsR98po.js → p-eo_pmPqp.js} +2 -2
- package/dist/components/{p-CR7G2BI6.js → p-lv4YQEsa.js} +2 -2
- package/dist/components/{p-OHT7lQVt.js → p-xxuHxP3u.js} +2 -2
- package/dist/components/{p-CD9AbaHQ.js → p-ya8A_SMw.js} +2 -2
- package/dist/components/p-zZuAAiiI.js +2 -0
- package/dist/components/p-zZuAAiiI.js.map +1 -0
- package/dist/docs/components.json +166 -22
- package/dist/mcp-data/registry/card-action-center.json +206 -0
- package/dist/mcp-data/registry/panel-tools.json +5 -5
- package/dist/mcp-data/registry/registry.json +119 -1
- package/dist/mcp-data/registry/shell-app.json +1 -1
- package/dist/react/components.d.ts +1 -0
- package/dist/react/components.js +1 -0
- package/dist/react/ds-card-action-center.d.ts +12 -0
- package/dist/react/ds-card-action-center.js +12 -0
- package/dist/types/components/CardActionCenter/CardActionCenter.d.ts +45 -0
- package/dist/types/components/CardActionCenter/index.d.ts +2 -0
- package/dist/types/components/PanelTools/PanelTools.d.ts +1 -1
- package/dist/types/components.d.ts +59 -2
- package/dist/vue/components.d.ts +1 -0
- package/dist/vue/components.js +1 -0
- package/dist/vue/ds-card-action-center.d.ts +3 -0
- package/dist/vue/ds-card-action-center.js +12 -0
- package/package.json +1 -1
- package/dist/components/p--VKxPUoV.js +0 -2
- package/dist/components/p-BINlT3xz.js +0 -2
- package/dist/components/p-BINlT3xz.js.map +0 -1
- package/dist/components/p-DzHXk0IG.js +0 -2
- package/dist/components/p-skVhQk9d.js +0 -2
- /package/dist/components/{p-P60MGUqZ.js.map → p-4DNyCYKM.js.map} +0 -0
- /package/dist/components/{p-B9oadFSC.js.map → p-AkSwrAKR.js.map} +0 -0
- /package/dist/components/{p-DPPM5T7q.js.map → p-B5QVra1K.js.map} +0 -0
- /package/dist/components/{p-DwxKwC5i.js.map → p-B_nPct4G.js.map} +0 -0
- /package/dist/components/{p-B5W_r4vV.js.map → p-BlWNMytv.js.map} +0 -0
- /package/dist/components/{p-9rzbZP-F.js.map → p-BqGdNrVl.js.map} +0 -0
- /package/dist/components/{p-CakRq92x.js.map → p-Br0dx2uP.js.map} +0 -0
- /package/dist/components/{p-gR6G5azA.js.map → p-BwsS_Hyr.js.map} +0 -0
- /package/dist/components/{p-CN3roaMg.js.map → p-ByoywoBH.js.map} +0 -0
- /package/dist/components/{p-BPTqn5zL.js.map → p-C1QHxVvP.js.map} +0 -0
- /package/dist/components/{p-CumGY3uN.js.map → p-C51ytXM6.js.map} +0 -0
- /package/dist/components/{p-DJHshyyC.js.map → p-C8XJgV1n.js.map} +0 -0
- /package/dist/components/{p-oFbI_M5B.js.map → p-CBQzTgvI.js.map} +0 -0
- /package/dist/components/{p-DFWJmuaR.js.map → p-CIoeHcCk.js.map} +0 -0
- /package/dist/components/{p-BG_n-zQT.js.map → p-CK2S28gU.js.map} +0 -0
- /package/dist/components/{p-DC69DgAR.js.map → p-CKo2nySr.js.map} +0 -0
- /package/dist/components/{p-BGGIEmQj.js.map → p-CMq-jKEI.js.map} +0 -0
- /package/dist/components/{p-r5td84fg.js.map → p-CNDTHTf6.js.map} +0 -0
- /package/dist/components/{p-ZG1KTkZw.js.map → p-CQqZgTYk.js.map} +0 -0
- /package/dist/components/{p-BnWxbhFP.js.map → p-CXAa9TUM.js.map} +0 -0
- /package/dist/components/{p-14sMoeTr.js.map → p-CnK36Be0.js.map} +0 -0
- /package/dist/components/{p-DEuu954R.js.map → p-CoE7yza3.js.map} +0 -0
- /package/dist/components/{p-BonnrRtE.js.map → p-CqeMumqy.js.map} +0 -0
- /package/dist/components/{p-zunBF381.js.map → p-CvplapTD.js.map} +0 -0
- /package/dist/components/{p-DGQUm3WL.js.map → p-Cw_npFwN.js.map} +0 -0
- /package/dist/components/{p-BYVydAx2.js.map → p-CweS0FfJ.js.map} +0 -0
- /package/dist/components/{p-B5OP31eo.js.map → p-DBZwI7HY.js.map} +0 -0
- /package/dist/components/{p-B9WwU5vu.js.map → p-DEyvEIYL.js.map} +0 -0
- /package/dist/components/{p-D59xX7JN.js.map → p-DVWOUQfT.js.map} +0 -0
- /package/dist/components/{p-DQpw21HO.js.map → p-Da9VpZX2.js.map} +0 -0
- /package/dist/components/{p-DVRL3oem.js.map → p-Dj296RmE.js.map} +0 -0
- /package/dist/components/{p-z7Zj26BA.js.map → p-DjCnGxSd.js.map} +0 -0
- /package/dist/components/{p-BFd18avA.js.map → p-DrjY8Mpy.js.map} +0 -0
- /package/dist/components/{p-B66JqjpI.js.map → p-Dx7WcWW1.js.map} +0 -0
- /package/dist/components/{p-DceM6xWR.js.map → p-DyyfWSLB.js.map} +0 -0
- /package/dist/components/{p-UxIgD24y.js.map → p-DzbEJN1A.js.map} +0 -0
- /package/dist/components/{p-BCRPg1Xs.js.map → p-LZ8F08Fj.js.map} +0 -0
- /package/dist/components/{p-YFrD62Ml.js.map → p-OxdAzO4v.js.map} +0 -0
- /package/dist/components/{p-uqsR98po.js.map → p-eo_pmPqp.js.map} +0 -0
- /package/dist/components/{p-CR7G2BI6.js.map → p-lv4YQEsa.js.map} +0 -0
- /package/dist/components/{p-OHT7lQVt.js.map → p-xxuHxP3u.js.map} +0 -0
- /package/dist/components/{p-CD9AbaHQ.js.map → p-ya8A_SMw.js.map} +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{p as e,H as n,c as a,h as i,a as s,t}from"./index.js";import{r as o,p as r,a as d,d as l,s as c,f as v,b as p}from"./p-D_QtZZR8.js";import{c as h}from"./p-CUL5_8JM.js";import{r as f}from"./p-rCeztgVn.js";import{d as u}from"./p-DQpw21HO.js";import{d as m}from"./p-CD9AbaHQ.js";import{d as g}from"./p-Cea7rROU.js";import{d as b}from"./p-0XTyQNRG.js";import{d as _}from"./p-B5W_r4vV.js";import{d as x}from"./p-BonnrRtE.js";import{d as y}from"./p-DC69DgAR.js";import{d as w}from"./p-BG_n-zQT.js";import{d as k}from"./p-B9oadFSC.js";import{d as C}from"./p-14sMoeTr.js";function z(e){const n=Array.isArray(e.edges)?e.edges:[e.edges];const a={"scroll-edge-fade":true,"scroll-edge-fade--scroll-aware":e.scrollAware===true,"scroll-edge-fade--hidden":e.hidden===true};for(const e of n){a[`scroll-edge-fade--${e}`]=true}const{atEnd:i}=e;if(i===true){a["scroll-edge-fade--at-end"]=true}else if(i&&typeof i==="object"){for(const e of n){if(i[e]){a[`scroll-edge-fade--${e}-at-edge`]=true}}}return a}const I={side:"right",align:"end",anchorAlignment:"choice-cell",sideOffset:"calc(var(--dimension-space-100) + var(--dimension-space-050))",alignOffset:0};const A={side:"right",align:"start",anchorAlignment:"choice-cell",sideOffset:"calc(var(--dimension-space-100) + var(--dimension-space-050))",alignOffset:0};const S="data-nav-style";function D(e){if(e==="dashboard"||e==="settings")return e;return undefined}function E(e,n,a){const i=D(n);if(i)return i;const s=typeof document!=="undefined"?document.documentElement.getAttribute(S):null;const t=D(s);if(t)return t;return e}function R(e,n){return e!==n}const N="ds-panel-nav-user-menu-anchor";const F=()=>`@property --ds-scroll-edge-fade-top{syntax:'<length-percentage>';inherits:false;initial-value:0px}@property --ds-scroll-edge-fade-bottom{syntax:'<length-percentage>';inherits:false;initial-value:0px}@property --ds-scroll-edge-fade-left{syntax:'<length-percentage>';inherits:false;initial-value:0px}@property --ds-scroll-edge-fade-right{syntax:'<length-percentage>';inherits:false;initial-value:0px}@keyframes ds-scroll-edge-fade-reveal-top{from{--ds-scroll-edge-fade-top:0px}to{--ds-scroll-edge-fade-top:var(--ds-scroll-edge-fade-target-top)}}@keyframes ds-scroll-edge-fade-reveal-bottom{from{--ds-scroll-edge-fade-bottom:var(--ds-scroll-edge-fade-target-bottom)}to{--ds-scroll-edge-fade-bottom:0px}}@keyframes ds-scroll-edge-fade-reveal-left{from{--ds-scroll-edge-fade-left:0px}to{--ds-scroll-edge-fade-left:var(--ds-scroll-edge-fade-target-left)}}@keyframes ds-scroll-edge-fade-reveal-right{from{--ds-scroll-edge-fade-right:var(--ds-scroll-edge-fade-target-right)}to{--ds-scroll-edge-fade-right:0px}}.scroll-edge-fade.sc-ds-panel-nav{--ds-scroll-edge-fade-size:var(--dimension-size-600);--ds-scroll-edge-fade-reveal-distance:var(--dimension-size-800);--ds-scroll-edge-fade-target-top:0px;--ds-scroll-edge-fade-target-bottom:0px;--ds-scroll-edge-fade-target-left:0px;--ds-scroll-edge-fade-target-right:0px;--ds-scroll-edge-fade-top:var(--ds-scroll-edge-fade-target-top);--ds-scroll-edge-fade-bottom:var(--ds-scroll-edge-fade-target-bottom);--ds-scroll-edge-fade-left:var(--ds-scroll-edge-fade-target-left);--ds-scroll-edge-fade-right:var(--ds-scroll-edge-fade-target-right);--ds-scroll-edge-fade-block-mask:linear-gradient( to bottom, transparent 0, #000 var(--ds-scroll-edge-fade-top), #000 calc(100% - var(--ds-scroll-edge-fade-bottom)), transparent 100% );--ds-scroll-edge-fade-inline-mask:linear-gradient( to right, transparent 0, #000 var(--ds-scroll-edge-fade-left), #000 calc(100% - var(--ds-scroll-edge-fade-right)), transparent 100% );-webkit-mask-image:var(--ds-scroll-edge-fade-block-mask), var(--ds-scroll-edge-fade-inline-mask);mask-image:var(--ds-scroll-edge-fade-block-mask), var(--ds-scroll-edge-fade-inline-mask);-webkit-mask-composite:source-in;mask-composite:intersect;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%}.scroll-edge-fade--top.sc-ds-panel-nav{--ds-scroll-edge-fade-target-top:var(--ds-scroll-edge-fade-size)}.scroll-edge-fade--bottom.sc-ds-panel-nav{--ds-scroll-edge-fade-target-bottom:var(--ds-scroll-edge-fade-size)}.scroll-edge-fade--left.sc-ds-panel-nav{--ds-scroll-edge-fade-target-left:var(--ds-scroll-edge-fade-size)}.scroll-edge-fade--right.sc-ds-panel-nav{--ds-scroll-edge-fade-target-right:var(--ds-scroll-edge-fade-size)}.scroll-edge-fade--top-at-edge.sc-ds-panel-nav{--ds-scroll-edge-fade-target-top:0px}.scroll-edge-fade--bottom-at-edge.sc-ds-panel-nav{--ds-scroll-edge-fade-target-bottom:0px}.scroll-edge-fade--left-at-edge.sc-ds-panel-nav{--ds-scroll-edge-fade-target-left:0px}.scroll-edge-fade--right-at-edge.sc-ds-panel-nav{--ds-scroll-edge-fade-target-right:0px}@supports (animation-timeline: scroll()){.scroll-edge-fade--scroll-aware.sc-ds-panel-nav{animation-name:ds-scroll-edge-fade-reveal-top, ds-scroll-edge-fade-reveal-bottom, ds-scroll-edge-fade-reveal-left, ds-scroll-edge-fade-reveal-right;animation-duration:1ms;animation-timing-function:ease-in-out;animation-fill-mode:both;animation-timeline:scroll(self y), scroll(self y), scroll(self x), scroll(self x);animation-range:0 var(--ds-scroll-edge-fade-reveal-distance), calc(100% - var(--ds-scroll-edge-fade-reveal-distance)) 100%, 0 var(--ds-scroll-edge-fade-reveal-distance), calc(100% - var(--ds-scroll-edge-fade-reveal-distance)) 100%}@media (prefers-reduced-motion: reduce){.scroll-edge-fade--scroll-aware.sc-ds-panel-nav{animation:none}}}.scroll-edge-fade--at-end.sc-ds-panel-nav,.scroll-edge-fade--hidden.sc-ds-panel-nav{-webkit-mask-image:none;mask-image:none}.scroll-edge-fade--block-window.sc-ds-panel-nav{--ds-scroll-edge-fade-window-start:100%;--ds-scroll-edge-fade-window-end:100%;-webkit-mask-image:linear-gradient( to bottom, #000 0, #000 var(--ds-scroll-edge-fade-window-start), transparent var(--ds-scroll-edge-fade-window-end) );mask-image:linear-gradient( to bottom, #000 0, #000 var(--ds-scroll-edge-fade-window-start), transparent var(--ds-scroll-edge-fade-window-end) );-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}`;const j=()=>`.sc-ds-panel-nav-h,.sc-ds-panel-nav:where(.ds-table),.sc-ds-panel-nav:where(.tooltip-popup),.sc-ds-panel-nav:where(.ds-radius){--ds-radius-control:var(--dimension-radius-025);--ds-radius-card:var(--dimension-radius-050);--ds-radius-modal:var(--dimension-radius-050);--ds-radius-menu:var(--dimension-radius-075);--ds-radius-tooltip-control:var(--dimension-radius-025);--ds-radius-tooltip-menu:var(--dimension-radius-075);--ds-radius-table:var(--dimension-radius-050)}.ds-control--lg.sc-ds-panel-nav,.ds-control--lg.sc-ds-panel-nav-h,.ds-control--md.sc-ds-panel-nav-h,.ds-control--md.sc-ds-panel-nav,.ds-control--sm.sc-ds-panel-nav-h,.ds-control--sm.sc-ds-panel-nav,.ds-control--xs.sc-ds-panel-nav-h,.ds-control--xs.sc-ds-panel-nav{--ds-control-radius:var(--ds-radius-control)}.ds-control--lg.sc-ds-panel-nav-h,.ds-control--lg.sc-ds-panel-nav{--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-panel-nav-h,.ds-control--md.sc-ds-panel-nav{--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-panel-nav-h,.ds-control--sm.sc-ds-panel-nav{--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-panel-nav-h,.ds-control--xs.sc-ds-panel-nav{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0}.ds-chrome-space--sm.sc-ds-panel-nav-h,.ds-chrome-space--sm.sc-ds-panel-nav{--ds-chrome-padding:var(--dimension-space-050);--ds-chrome-gap:var(--dimension-space-050)}.ds-chrome-space--md.sc-ds-panel-nav-h,.ds-chrome-space--md.sc-ds-panel-nav{--ds-chrome-padding:var(--dimension-space-100);--ds-chrome-gap:var(--dimension-space-100)}.ds-chrome-space--lg.sc-ds-panel-nav-h,.ds-chrome-space--lg.sc-ds-panel-nav{--ds-chrome-padding:var(--dimension-space-200);--ds-chrome-gap:var(--dimension-space-200)}.ds-chrome-row.sc-ds-panel-nav-h,.ds-chrome-row.sc-ds-panel-nav,.ds-chrome-column.sc-ds-panel-nav-h,.ds-chrome-column.sc-ds-panel-nav,.ds-chrome-grid.sc-ds-panel-nav-h,.ds-chrome-grid.sc-ds-panel-nav{display:flex;box-sizing:border-box;gap:var(--ds-chrome-gap, var(--dimension-space-100));padding:var(--ds-chrome-padding, var(--dimension-space-100))}.ds-chrome-row.sc-ds-panel-nav-h,.ds-chrome-row.sc-ds-panel-nav{flex-direction:row;align-items:center}.ds-chrome-column.sc-ds-panel-nav-h,.ds-chrome-column.sc-ds-panel-nav{flex-direction:column}.ds-chrome-grid.sc-ds-panel-nav-h,.ds-chrome-grid.sc-ds-panel-nav{display:grid;align-items:center}@media (forced-colors: active){.sc-ds-panel-nav:root,.sc-ds-panel-nav-h,.ds-forced-colors-scope.sc-ds-panel-nav{--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-panel-nav-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-panel-nav-h,.ds-focus-ring.sc-ds-panel-nav,.ds-focus-ring-inset.sc-ds-panel-nav-h,.ds-focus-ring-inset.sc-ds-panel-nav{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-panel-nav-h:focus-visible,.ds-focus-ring.sc-ds-panel-nav: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-panel-nav-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-panel-nav{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-panel-nav-h:focus-visible,.ds-focus-ring-inset.sc-ds-panel-nav:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-panel-nav-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-panel-nav: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-panel-nav-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-panel-nav{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-panel-nav-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-panel-nav::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-panel-nav-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){.sc-ds-panel-nav:root,.sc-ds-panel-nav-h,.ds-forced-colors-scope.sc-ds-panel-nav{--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-panel-nav-h,.ds-interaction-fill.sc-ds-panel-nav{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-panel-nav-h::before,.ds-interaction-fill.sc-ds-panel-nav::before,.ds-interaction-fill.sc-ds-panel-nav-h::after,.ds-interaction-fill.sc-ds-panel-nav::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;cursor:inherit;transition:none}.ds-interaction-fill.sc-ds-panel-nav-h::before,.ds-interaction-fill.sc-ds-panel-nav::before{z-index:1}.ds-interaction-fill.sc-ds-panel-nav-h::after,.ds-interaction-fill.sc-ds-panel-nav::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-panel-nav-h,.ds-interaction-fill--bordered.sc-ds-panel-nav{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-panel-nav-h::before,.ds-interaction-fill--selected.sc-ds-panel-nav::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-panel-nav-h,.ds-interaction-fill--selected.sc-ds-panel-nav{--ds-interaction-dot-ring:var(--ds-interaction-active)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-panel-nav-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-panel-nav:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}}.ds-interaction-fill.sc-ds-panel-nav-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-panel-nav:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill--grouped.sc-ds-panel-nav-h::after,.ds-interaction-fill--grouped.sc-ds-panel-nav::after,.ds-interaction-fill--grouped.sc-ds-panel-nav-h:active:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-panel-nav:active:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill--grouped.sc-ds-panel-nav-h:hover:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-panel-nav:hover:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}}.ds-interaction-fill--grouped.sc-ds-panel-nav-h,.ds-interaction-fill--grouped.sc-ds-panel-nav{--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-panel-nav-h>.ds-interaction-fill__content.sc-ds-panel-nav,.ds-interaction-fill.sc-ds-panel-nav>.ds-interaction-fill__content.sc-ds-panel-nav,.ds-interaction-fill__content.sc-ds-panel-nav{position:relative;z-index:2;cursor:inherit}.ds-interaction-fill--on-faint.sc-ds-panel-nav-h,.ds-interaction-fill--on-faint.sc-ds-panel-nav{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-panel-nav-h,.ds-interaction-fill--on-medium.sc-ds-panel-nav{--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-panel-nav-h,.ds-interaction-fill--on-bold.sc-ds-panel-nav{--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-panel-nav-h,.ds-interaction-fill--on-strong.sc-ds-panel-nav{--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-panel-nav-h,.ds-interaction-fill--on-translucent.sc-ds-panel-nav{--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-panel-nav-h,.ds-interaction-fill--on-inverted.sc-ds-panel-nav{--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-panel-nav-h,.ds-interaction-fill--on-media.sc-ds-panel-nav{--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-panel-nav-h,.ds-interaction-fill--on-always-dark.sc-ds-panel-nav{--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-panel-nav-h,.ds-interaction-fill--on-navigation.sc-ds-panel-nav{--ds-interaction-hover:var(--color-navigation-interaction-hover);--ds-interaction-pressed:var(--color-navigation-interaction-pressed);--ds-interaction-active:var(--color-navigation-interaction-active);--ds-focus-ring-color:var(--color-navigation-interaction-focus)}.ds-interaction-fill.ds-interaction-fill--surface-open.sc-ds-panel-nav-h:not(:disabled)::after,.ds-interaction-fill.ds-interaction-fill--surface-open.sc-ds-panel-nav:not(:disabled)::after{background:var(--ds-interaction-pressed)}@media (forced-colors: active){.ds-interaction-fill.sc-ds-panel-nav-h::after,.ds-interaction-fill.sc-ds-panel-nav::after{box-shadow:none;outline:var(--ds-interaction-border-width) solid var(--ds-forced-color-control-boundary);outline-offset:calc(-1 * var(--ds-interaction-border-width))}.ds-interaction-fill--surface-open.sc-ds-panel-nav-h:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill--surface-open.sc-ds-panel-nav:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after{outline:var(--dimension-stroke-width-025) dashed var(--ds-forced-color-control-boundary);outline-offset:calc(-1 * var(--dimension-stroke-width-025))}.ds-interaction-fill--selected.sc-ds-panel-nav-h::before,.ds-interaction-fill--selected.sc-ds-panel-nav::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-panel-nav-h:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill.sc-ds-panel-nav: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)}}.ds-scrollbar-hidden.sc-ds-panel-nav-h,.ds-scrollbar-hidden.sc-ds-panel-nav{scrollbar-width:none}.ds-scrollbar-hidden.sc-ds-panel-nav-h::-webkit-scrollbar,.ds-scrollbar-hidden.sc-ds-panel-nav::-webkit-scrollbar{display:none}.ds-nav-disclosure.sc-ds-panel-nav,.ds-nav-disclosure-divider.sc-ds-panel-nav{--ds-nav-disclosure-duration:calc( var(--effect-animation-duration-short-3) * 2 + var(--effect-animation-duration-short-2) );--ds-nav-disclosure-wait:calc( var(--effect-animation-duration-short-3) + var(--effect-animation-duration-short-1) );--ds-nav-disclosure-fade:var(--ds-nav-disclosure-duration);--ds-nav-disclosure-stagger:var(--effect-animation-duration-short-1)}.ds-nav-disclosure.sc-ds-panel-nav{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--ds-nav-disclosure-duration) var(--effect-animation-easing-ease-in-out) var(--ds-nav-disclosure-wait)}.ds-nav-disclosure--open.sc-ds-panel-nav{grid-template-rows:1fr;transition-delay:var(--effect-animation-duration-instant)}.ds-nav-disclosure.sc-ds-panel-nav .ds-nav-disclosure__item.sc-ds-panel-nav{opacity:0;pointer-events:none;transition:opacity var(--ds-nav-disclosure-fade) var(--effect-animation-easing-ease-out) calc(var(--ds-nav-disclosure-reverse-index) * var(--ds-nav-disclosure-stagger)), color var(--effect-motion-short-1)}.ds-nav-disclosure--open.sc-ds-panel-nav .ds-nav-disclosure__item.sc-ds-panel-nav{opacity:1;pointer-events:auto;transition-delay:calc( var(--ds-nav-disclosure-wait) + var(--ds-nav-disclosure-index) * var(--ds-nav-disclosure-stagger) ), var(--effect-animation-duration-instant)}.ds-nav-disclosure-divider.sc-ds-panel-nav{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows var(--ds-nav-disclosure-duration) var(--effect-animation-easing-ease-in-out) var(--ds-nav-disclosure-wait), opacity var(--ds-nav-disclosure-duration) var(--effect-animation-easing-ease-out)}.ds-nav-disclosure-divider--open.sc-ds-panel-nav{grid-template-rows:1fr;opacity:1;transition-delay:var(--effect-animation-duration-instant), var(--effect-animation-duration-instant)}.ds-nav-disclosure-divider__clip.sc-ds-panel-nav{min-height:0;overflow:hidden}@media (prefers-reduced-motion: reduce){.ds-nav-disclosure.sc-ds-panel-nav,.ds-nav-disclosure-divider.sc-ds-panel-nav,.ds-nav-disclosure.sc-ds-panel-nav .ds-nav-disclosure__item.sc-ds-panel-nav{transition-duration:var(--effect-animation-duration-instant) !important;transition-delay:var(--effect-animation-duration-instant) !important}}.panel-nav.sc-ds-panel-nav{--_nav-width:var(--dimension-panel-width-2xs);--_nav-width-collapsed:var(--dimension-size-600);--_nav-item-height:var(--dimension-size-400, 32px);--_nav-padding-x:var(--dimension-space-100, 8px);--_nav-padding-y:var(--dimension-space-100, 8px);--_nav-footer-btn-w:calc( var(--dimension-space-075, 6px) * 2 + var(--dimension-iconography-md, 20px) );--_nav-speed:var(--ds-panel-nav-speed, 1);--_nav-expand-dur:calc(var(--_nav-speed) * var(--effect-animation-duration-medium-1, 300ms));--_nav-expand-motion:var(--_nav-expand-dur) var(--effect-animation-easing-ease-in-out, ease);--_nav-label-fade-dur:calc(var(--_nav-speed) * var(--effect-animation-duration-medium-1, 300ms));--_nav-label-fade-motion:var(--_nav-label-fade-dur) var(--effect-animation-easing-ease-in-out, ease);--_nav-label-fade-out-dur:calc( var(--_nav-speed) * var(--effect-animation-duration-medium-1, 300ms) );--_nav-label-fade-out-motion:var(--_nav-label-fade-out-dur) var(--effect-animation-easing-ease-in-out, ease);--_nav-bg:var(--color-background-secondary);--_nav-border:var(--color-border-tertiary);--_nav-divider:var(--color-border-tertiary);--_nav-fg-primary:var(--color-foreground-primary);--_nav-fg-secondary:var(--color-foreground-secondary);--_nav-fg-tertiary:var(--color-foreground-tertiary);--_nav-hover:var(--color-interaction-hover);--_nav-pressed:var(--color-interaction-pressed);--_nav-focus:var(--color-interaction-focus);--_nav-dot:var(--color-foreground-bold-brand);--ds-interaction-hover:var(--_nav-hover);--ds-interaction-pressed:var(--_nav-pressed);--ds-focus-ring-color:var(--_nav-focus)}ds-shell-app.sc-ds-panel-nav-h:not([gradient-preset='none']) .panel-nav.sc-ds-panel-nav,ds-shell-app:not([gradient-preset='none']) .sc-ds-panel-nav-h .panel-nav.sc-ds-panel-nav,ds-shell-app.shell-app--paper-texture.sc-ds-panel-nav-h .panel-nav.sc-ds-panel-nav,ds-shell-app.shell-app--paper-texture .sc-ds-panel-nav-h .panel-nav.sc-ds-panel-nav{background-color:transparent}.panel-nav--dashboard.sc-ds-panel-nav,.panel-nav--settings.sc-ds-panel-nav{--_nav-bg:var(--color-background-secondary);--_nav-border:var(--color-border-tertiary);--_nav-divider:var(--color-border-tertiary);--_nav-fg-primary:var(--color-foreground-primary);--_nav-fg-secondary:var(--color-foreground-secondary);--_nav-fg-tertiary:var(--color-foreground-tertiary);--_nav-hover:var(--color-interaction-hover);--_nav-pressed:var(--color-interaction-pressed);--_nav-focus:var(--color-interaction-focus);--_nav-dot:var(--color-foreground-bold-brand);--ds-interaction-hover:var(--_nav-hover);--ds-interaction-pressed:var(--_nav-pressed);--ds-focus-ring-color:var(--_nav-focus)}.panel-nav.sc-ds-panel-nav{display:flex;flex-direction:column;position:relative;width:var(--_nav-width);min-width:var(--_nav-width);height:100%;background-color:var(--_nav-bg);border-right:var(--dimension-stroke-width-012, 1px) solid var(--_nav-border);box-sizing:border-box;overflow:visible;transition:width var(--_nav-expand-motion), min-width var(--_nav-expand-motion), background-color var(--effect-motion-short-3, 200ms ease), border-color var(--effect-motion-short-3, 200ms ease);font-family:var(--typography-font-family-ui, system-ui);isolation:isolate}.panel-nav__header.sc-ds-panel-nav,.panel-nav__body.sc-ds-panel-nav,.panel-nav__footer.sc-ds-panel-nav{position:relative;z-index:3}.panel-nav--collapsed.sc-ds-panel-nav{width:var(--_nav-width-collapsed);min-width:var(--_nav-width-collapsed)}.panel-nav__header.sc-ds-panel-nav{height:var(--dimension-size-600, 48px);flex-shrink:0;border-bottom:var(--dimension-stroke-width-012, 1px) solid var(--_nav-divider);transition:border-color var(--effect-motion-short-3, 200ms ease)}.panel-nav__header-btn.sc-ds-panel-nav{all:unset;position:relative;z-index:0;display:flex;align-items:center;justify-content:center;padding:var(--dimension-space-075, 6px);border-radius:var(--ds-control-radius, var(--dimension-radius-025, 2px));cursor:default;color:var(--_nav-fg-primary);flex-shrink:0;box-sizing:border-box;transition:color var(--effect-motion-short-3, 200ms ease)}.panel-nav--breakpoint-locked.sc-ds-panel-nav .panel-nav__header-btn.sc-ds-panel-nav{cursor:default}.panel-nav__header-logo.sc-ds-panel-nav{display:flex;align-items:center;justify-content:center;position:relative;z-index:2;opacity:1}.panel-nav__m-mark.sc-ds-panel-nav{width:var(--dimension-iconography-md, 20px);height:var(--dimension-iconography-md, 20px);display:block}.panel-nav__header-toggle.sc-ds-panel-nav{display:flex;align-items:center;justify-content:center;position:absolute;inset:0;z-index:2;opacity:0;pointer-events:none}@media (hover: hover) and (pointer: fine){.panel-nav.sc-ds-panel-nav:not(.panel-nav--breakpoint-locked) .panel-nav__header-btn.sc-ds-panel-nav:hover .panel-nav__header-logo.sc-ds-panel-nav{opacity:0}.panel-nav.sc-ds-panel-nav:not(.panel-nav--breakpoint-locked) .panel-nav__header-btn.sc-ds-panel-nav:hover .panel-nav__header-toggle.sc-ds-panel-nav{opacity:1}}.panel-nav__body.sc-ds-panel-nav{flex:1;overflow-y:auto;overflow-x:hidden}.panel-nav--collapsed.sc-ds-panel-nav .panel-nav__body.sc-ds-panel-nav{padding-inline-end:calc(var(--_nav-padding-x) - var(--dimension-stroke-width-012))}.panel-nav__sections.sc-ds-panel-nav{display:flex;flex-direction:column;gap:var(--dimension-space-200, 16px);width:100%}.panel-nav__group.sc-ds-panel-nav{display:flex;flex-direction:column;gap:var(--dimension-space-050, 4px)}.panel-nav__branch.sc-ds-panel-nav{display:flex;flex-direction:column}.panel-nav__branch-divider-line.sc-ds-panel-nav{display:block;height:var(--dimension-stroke-width-012);margin-inline:var(--dimension-space-075);background:var(--_nav-divider)}.panel-nav__branch-divider--before.sc-ds-panel-nav .panel-nav__branch-divider-line.sc-ds-panel-nav{margin-block:var(--dimension-space-050) var(--dimension-space-100)}.panel-nav__branch-divider--after.sc-ds-panel-nav .panel-nav__branch-divider-line.sc-ds-panel-nav{margin-block:var(--dimension-space-100) var(--dimension-space-050)}.panel-nav__children-accordion.sc-ds-panel-nav,.panel-nav__branch-divider.sc-ds-panel-nav{--ds-nav-disclosure-duration:var( --_panel-nav-nested-section-duration, calc(var(--effect-animation-duration-short-3) * 2 + var(--effect-animation-duration-short-2)) );--ds-nav-disclosure-wait:var( --_panel-nav-nested-transition-wait, calc(var(--effect-animation-duration-short-3) + var(--effect-animation-duration-short-1)) );--ds-nav-disclosure-fade:var( --_panel-nav-nested-child-fade-duration, var(--ds-nav-disclosure-duration) );--ds-nav-disclosure-stagger:var( --_panel-nav-nested-child-stagger, var(--effect-animation-duration-short-1) )}.panel-nav__children.sc-ds-panel-nav{display:flex;flex-direction:column;gap:var(--dimension-space-050, 4px);min-height:0;overflow:hidden}.panel-nav__children.sc-ds-panel-nav>.panel-nav__child.sc-ds-panel-nav:first-child{margin-block-start:var(--dimension-space-050, 4px)}ds-text.panel-nav__group-label.sc-ds-panel-nav{display:flex;align-items:center;box-sizing:border-box;text-transform:uppercase;color:var(--_nav-fg-secondary);user-select:none;height:var(--dimension-size-300, 24px);padding:0 calc(var(--dimension-space-075, 6px) + var(--ds-control-label-inset));white-space:nowrap;overflow:hidden;max-height:var(--dimension-size-300, 24px);opacity:1;transition:opacity var(--_nav-label-fade-motion) 0ms, max-height var(--_nav-label-fade-motion) 0ms, padding var(--_nav-label-fade-motion) 0ms, color var(--effect-motion-short-3, 200ms ease)}.panel-nav__item.sc-ds-panel-nav{all:unset;position:relative;z-index:0;display:flex;align-items:center;gap:var(--dimension-space-050, 4px);padding:0 var(--dimension-space-075, 6px);height:var(--dimension-size-400, 32px);border-radius:var(--ds-control-radius, var(--dimension-radius-025, 2px));cursor:default;color:var(--_nav-fg-secondary);box-sizing:border-box;width:100%;user-select:none;transition:color var(--effect-motion-short-1, 50ms ease-in-out)}.panel-nav__item--active.sc-ds-panel-nav{color:var(--_nav-fg-primary)}.panel-nav__parent--muted.sc-ds-panel-nav{color:var(--_nav-fg-secondary)}.panel-nav__child.sc-ds-panel-nav{flex:0 0 var(--_nav-item-height);padding-inline-start:calc( var(--dimension-space-075, 6px) + var(--dimension-iconography-md) + var(--dimension-space-050) )}.panel-nav__children-accordion.sc-ds-panel-nav:not(.panel-nav__children-accordion--open) .panel-nav__child.sc-ds-panel-nav{color:var(--_nav-fg-secondary)}.panel-nav__child-dot.sc-ds-panel-nav{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;flex:0 0 var(--dimension-iconography-md);width:var(--dimension-iconography-md);height:var(--dimension-iconography-md)}.panel-nav__child--inactive.sc-ds-panel-nav{color:var(--_nav-fg-tertiary)}.panel-nav__child--inactive.sc-ds-panel-nav::after{display:none}.panel-nav__item-icon.sc-ds-panel-nav{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--dimension-iconography-md, 20px);height:var(--dimension-iconography-md, 20px);position:relative;z-index:2}.panel-nav__item-label.sc-ds-panel-nav{position:relative;z-index:2;flex:1;min-width:0;height:var(--typography-lineheight-md, 20px);opacity:1;mask-image:linear-gradient(to right, black 50%, transparent 100%);-webkit-mask-image:linear-gradient(to right, black 50%, transparent 100%);mask-size:200% 100%;-webkit-mask-size:200% 100%;mask-position:0% 0;-webkit-mask-position:0% 0;transition:opacity var(--_nav-label-fade-motion) 0ms, mask-position var(--_nav-label-fade-motion) 0ms, -webkit-mask-position var(--_nav-label-fade-motion) 0ms}.panel-nav__item-label-text.sc-ds-panel-nav{padding:0 var(--ds-control-label-inset)}.panel-nav__item-dot-box.sc-ds-panel-nav{position:absolute;z-index:2;right:var(--dimension-space-075, 6px);top:var(--dimension-space-075, 6px);display:flex;align-items:center;justify-content:center;width:var(--dimension-iconography-md, 20px);height:var(--dimension-iconography-md, 20px);pointer-events:none}.panel-nav__item-dot.sc-ds-panel-nav{transition:transform var(--_nav-expand-motion)}.panel-nav--collapsed.sc-ds-panel-nav .panel-nav__item-dot.sc-ds-panel-nav{transform:translate( calc(var(--dimension-space-075, 6px) + var(--dimension-stroke-width-012, 1px)), calc(0px - var(--dimension-space-075, 6px) - var(--dimension-stroke-width-012, 1px)) )}.panel-nav--animating.sc-ds-panel-nav .panel-nav__item-label.sc-ds-panel-nav{text-overflow:clip}.panel-nav--collapsed.sc-ds-panel-nav .panel-nav__item-label.sc-ds-panel-nav{opacity:0;pointer-events:none;text-overflow:clip;mask-position:100% 0;-webkit-mask-position:100% 0;transition:opacity var(--_nav-label-fade-out-motion) 0ms, mask-position var(--_nav-label-fade-out-motion) 0ms, -webkit-mask-position var(--_nav-label-fade-out-motion) 0ms}.panel-nav--collapsed.panel-nav--animating.sc-ds-panel-nav .panel-nav__children-accordion.sc-ds-panel-nav{transition-duration:var(--_nav-expand-dur);transition-delay:var(--effect-animation-duration-instant)}.panel-nav--animating.sc-ds-panel-nav .panel-nav__branch-divider.sc-ds-panel-nav{transition-duration:var(--_nav-expand-dur), var(--_nav-expand-dur);transition-delay:var(--effect-animation-duration-instant), var(--effect-animation-duration-instant)}.panel-nav--collapsed.sc-ds-panel-nav:not(.panel-nav--animating) .panel-nav__children.sc-ds-panel-nav{display:none}.panel-nav--collapsed.sc-ds-panel-nav ds-text.panel-nav__group-label.sc-ds-panel-nav{opacity:0;max-height:0;padding:0 calc(var(--dimension-space-075, 6px) + var(--ds-control-label-inset));pointer-events:none;transition:opacity var(--_nav-label-fade-out-motion) 0ms, max-height var(--_nav-label-fade-out-motion) 0ms, padding var(--_nav-label-fade-out-motion) 0ms, color var(--effect-motion-short-3, 200ms ease)}.panel-nav__footer.sc-ds-panel-nav{position:relative;flex-shrink:0;height:calc(var(--_nav-padding-y) * 2 + var(--_nav-item-height));transition:height var(--_nav-expand-motion)}.panel-nav--collapsed.sc-ds-panel-nav .panel-nav__footer.sc-ds-panel-nav{height:calc( var(--_nav-padding-y) * 2 + var(--_nav-item-height) * 2 + var(--dimension-space-050, 4px) )}.panel-nav__footer-btn.sc-ds-panel-nav{position:absolute;left:var(--_nav-padding-x);top:var(--_nav-padding-y);--ds-button-unfilled-fg:var(--_nav-fg-secondary);--ds-button-unfilled-fg-active:var(--_nav-fg-primary);--ds-interaction-hover:var(--_nav-hover);--ds-interaction-pressed:var(--_nav-pressed);--ds-focus-ring-color:var(--_nav-focus)}.panel-nav__footer-user.sc-ds-panel-nav{position:absolute;left:calc(var(--_nav-padding-x) + var(--_nav-footer-btn-w) + var(--dimension-space-100, 8px));right:var(--_nav-padding-x);top:var(--_nav-padding-y);width:auto;min-width:0;transition:left var(--_nav-expand-motion), right var(--_nav-expand-motion), top var(--_nav-expand-motion)}.panel-nav--collapsed.sc-ds-panel-nav .panel-nav__footer-user.sc-ds-panel-nav{left:var(--_nav-padding-x);right:calc(100% - var(--_nav-padding-x) - var(--_nav-item-height));top:calc(var(--_nav-padding-y) + var(--_nav-item-height) + var(--dimension-space-050, 4px))}.panel-nav__footer-user-label.sc-ds-panel-nav{text-align:right;position:absolute;left:var(--dimension-space-075, 6px);right:calc( var(--dimension-space-075, 6px) + var(--dimension-iconography-md, 20px) + var(--dimension-space-050, 4px) );top:50%;transform:translateY(-50%);flex:none;height:var(--typography-lineheight-md, 20px);mask-image:none;-webkit-mask-image:none;transition:opacity var(--_nav-label-fade-motion)}.panel-nav--collapsed.sc-ds-panel-nav .panel-nav__footer-user-label.sc-ds-panel-nav{opacity:0;pointer-events:none;mask-position:0% 0;-webkit-mask-position:0% 0}.panel-nav__footer-user-icon.sc-ds-panel-nav{position:absolute;left:calc(100% - var(--dimension-iconography-md, 20px) - var(--dimension-space-075, 6px));top:0;bottom:0;height:auto;display:flex;align-items:center;justify-content:center;transition:left var(--_nav-expand-motion)}.panel-nav--collapsed.sc-ds-panel-nav .panel-nav__footer-user-icon.sc-ds-panel-nav{left:var(--dimension-space-075, 6px)}.panel-nav__footer-icon-expanded.sc-ds-panel-nav,.panel-nav__footer-icon-collapsed.sc-ds-panel-nav{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.panel-nav__footer-icon-expanded.sc-ds-panel-nav{opacity:1;transition:opacity var(--_nav-label-fade-motion)}.panel-nav__footer-icon-collapsed.sc-ds-panel-nav{opacity:0;transition:opacity var(--_nav-label-fade-motion)}.panel-nav--collapsed.sc-ds-panel-nav .panel-nav__footer-icon-expanded.sc-ds-panel-nav{opacity:0;transition:opacity var(--_nav-label-fade-out-motion)}.panel-nav--collapsed.sc-ds-panel-nav .panel-nav__footer-icon-collapsed.sc-ds-panel-nav{opacity:1;transition:opacity var(--_nav-label-fade-out-motion)}ds-text.panel-nav__user-initial.sc-ds-panel-nav,ds-text.panel-nav__user-initial.ds-text--caption.sc-ds-panel-nav{position:absolute;top:50%;left:50%;right:auto;bottom:auto;transform:translate(-50%, -50%);display:block;width:max-content;max-width:none;min-width:0;text-align:center;color:inherit;pointer-events:none}.panel-nav__resize-handle.sc-ds-panel-nav{position:absolute;top:0;right:var(--dimension-space-n050, -4px);bottom:0;width:var(--dimension-space-100, 8px);z-index:20;cursor:ew-resize;touch-action:none;background:transparent}.panel-nav__resize-handle.sc-ds-panel-nav::before{content:'';position:absolute;inset:0;background:rgba(0, 0, 0, 0.001)}.panel-nav__resize-handle.sc-ds-panel-nav::after{content:'';position:absolute;top:0;bottom:0;left:50%;transform:translateX(-50%);width:var(--dimension-stroke-width-025, 2px);background:var(--color-foreground-primary);opacity:0;pointer-events:none;transition:opacity var(--effect-motion-short-2, 100ms ease-in-out)}.panel-nav__resize-handle--overlay.sc-ds-panel-nav::after{opacity:1}@media (prefers-reduced-motion: reduce){.panel-nav.sc-ds-panel-nav,.panel-nav.sc-ds-panel-nav *.sc-ds-panel-nav,.panel-nav.sc-ds-panel-nav *.sc-ds-panel-nav::before,.panel-nav.sc-ds-panel-nav *.sc-ds-panel-nav::after,.panel-nav__resize-handle.sc-ds-panel-nav,.panel-nav__resize-handle.sc-ds-panel-nav::before,.panel-nav__resize-handle.sc-ds-panel-nav::after{transition-duration:var(--effect-animation-duration-instant) !important;animation-duration:var(--effect-animation-duration-instant) !important;transition-delay:var(--effect-animation-duration-instant) !important}}`;let T=0;const L=e(class e extends n{constructor(e){super();if(e!==false){this.__registerHost()}this.dsNavSelect=a(this,"dsNavSelect",7);this.dsNavChildSelect=a(this,"dsNavChildSelect",7);this.dsNavToggle=a(this,"dsNavToggle",7);this.dsChromeTransitionStart=a(this,"dsChromeTransitionStart",7);this.dsChromeTransitionEnd=a(this,"dsChromeTransitionEnd",7);this.dsNavFooterAction=a(this,"dsNavFooterAction",7);this.dsNavUserAction=a(this,"dsNavUserAction",7);this.instanceId=T++;this.navStyle="dashboard";this.disableViewTransition=false;this.groups="[]";this.presentation="flat";this.routerMode="anchor";this.activeId="";this.activeChildId="";this.collapsed=false;this.breakpoint=0;this.storageKey="";this.currentUrl="";this.userName="";this.userInitial="";this.dashboardLabel="Dashboard";this.settingsLabel="Settings";this.accountLabel="Account";this.accountMenuExpanded=false;this.dashboardNavigationLabel="Dashboard navigation";this.settingsNavigationLabel="Settings navigation";this.expandNavigationLabel="Expand navigation";this.collapseNavigationLabel="Collapse navigation";this.navigationItemsLabel="Navigation items";this.renderedStyle="dashboard";this.parsedGroups=[];this.isAnimating=false;this.rovingIndex=0;this.viewportNarrow=false;this.urlDerivedActiveId="";this.urlDerivedActiveChildId="";this.bodyScrollable=false;this.expandedParentId="";this.inlineChildrenExpansionReady=true;this.flyoutParentId="";this.flyoutOpen=false;this.flyoutInitialFocusVisible=false;this.transitionFallbackTimer=null;this.initialRenderComplete=false;this.inlineChildrenExpansionFrame=null;this.isDragging=false;this.dragStartX=0;this.didSnap=false;this.lastDeltaX=0;this.edgeOverlayTimer=null;this.showEdgeOverlay=false;this.closeFlyout=()=>{this.flyoutOpen=false;this.flyoutInitialFocusVisible=false};this.handleFlyoutAfterClose=()=>{if(!this.flyoutOpen)this.flyoutParentId=""};this.handleFlyoutSelect=e=>{const n=this.getAllItems().find((e=>e.id===this.flyoutParentId));const a=n?.children?.find((n=>n.id===e.detail?.value));if(!n||!a)return;this.emitChildSelect(n,a);this.followFlyoutAnchor(a);this.closeFlyout()}}get effectiveActiveId(){return this.urlDerivedActiveId||this.activeId}get effectiveActiveChildId(){return this.urlDerivedActiveChildId||this.activeChildId}get collapsedPresentation(){return this.collapsed||this.viewportNarrow}get effectiveDisableViewTransition(){return o(this.disableViewTransition,this.el.getAttribute("disable-view-transition"))}onCollapsedChange(e,n){if(n===undefined||!this.initialRenderComplete)return;this.stageInlineChildrenExpansion(n&&!e&&!this.viewportNarrow&&this.presentation==="nested");this.flyoutParentId="";this.flyoutOpen=false;this.syncExpandedParent();this.rovingIndex=this.getFirstRovingIndex();this.startCollapseAnimation()}onViewportNarrowChange(e,n){if(n===undefined||!this.initialRenderComplete)return;this.stageInlineChildrenExpansion(n&&!e&&!this.collapsed&&this.presentation==="nested");this.flyoutParentId="";this.flyoutOpen=false;if(e||this.rovingIndex>this.getVisibleRovingEntries().length){this.rovingIndex=this.getFirstRovingIndex()}this.startCollapseAnimation()}onBreakpointChange(){this.disconnectResizeObserver();if(this.effectiveBreakpoint()>0)this.connectResizeObserver()}onGroupsChange(e){this.parsedGroups=r(e);this.rovingIndex=0;this.syncActiveFromUrl();this.syncExpandedParent()}onPresentationChange(){this.stageInlineChildrenExpansion(false);this.flyoutParentId="";this.flyoutOpen=false;this.syncExpandedParent();this.rovingIndex=this.getFirstRovingIndex()}onActiveIdChange(){this.syncExpandedParent()}onCurrentUrlChange(){this.syncActiveFromUrl()}onNavStyleChange(e){this.renderedStyle=e}componentWillLoad(){this.renderedStyle=E(this.navStyle,this.el.getAttribute("nav-style"));this.viewportNarrow=this.isViewportNarrow();if(this.storageKey){try{const e=localStorage.getItem(this.storageKey);if(e!==null)this.collapsed=e==="true"}catch{}}this.onGroupsChange(this.groups);this.syncActiveFromUrl()}componentDidLoad(){this.syncHostPropsIfNeeded();this.scheduleDeferredHostPropSync();if(this.effectiveBreakpoint()>0)this.connectResizeObserver();this.connectScrollRegionObserver();this.updateBodyScrollable();this.initialRenderComplete=true}componentDidRender(){this.updateBodyScrollable();this.scheduleInlineChildrenExpansion()}disconnectedCallback(){this.disconnectResizeObserver();this.disconnectScrollRegionObserver();this.clearInlineChildrenExpansionFrame();this.clearCollapseAnimationCompletion(this.el.querySelector(".panel-nav"));this.clearEdgeOverlayTimer();if(this.globalMouseMoveHandler){window.removeEventListener("mousemove",this.globalMouseMoveHandler)}if(this.globalMouseUpHandler){window.removeEventListener("mouseup",this.globalMouseUpHandler)}}startCollapseAnimation(){if(this.isAnimating)return;this.isAnimating=true;this.dsChromeTransitionStart.emit({source:"panel-nav"});const e=this.el.querySelector(".panel-nav");this.clearCollapseAnimationCompletion(e);this.transitionCompletionHandler=n=>{if(n.target===e&&(n.propertyName==="width"||n.propertyName==="min-width")){this.finishCollapseAnimation(e)}};e?.addEventListener("transitionend",this.transitionCompletionHandler);e?.addEventListener("transitioncancel",this.transitionCompletionHandler);requestAnimationFrame((()=>{requestAnimationFrame((()=>{if(!this.isAnimating)return;if(!e){this.finishCollapseAnimation(e);return}const n=d(getComputedStyle(e));if(n<=0){this.finishCollapseAnimation(e);return}this.transitionFallbackTimer=window.setTimeout((()=>{this.finishCollapseAnimation(e)}),n)}))}))}stageInlineChildrenExpansion(e){this.clearInlineChildrenExpansionFrame();this.inlineChildrenExpansionReady=!e}scheduleInlineChildrenExpansion(){if(this.inlineChildrenExpansionReady||this.collapsedPresentation)return;this.clearInlineChildrenExpansionFrame();this.inlineChildrenExpansionFrame=requestAnimationFrame((()=>{this.inlineChildrenExpansionFrame=null;if(this.collapsedPresentation)return;this.el.querySelector(".panel-nav__children-accordion")?.getBoundingClientRect();this.inlineChildrenExpansionReady=true}))}clearInlineChildrenExpansionFrame(){if(this.inlineChildrenExpansionFrame===null)return;cancelAnimationFrame(this.inlineChildrenExpansionFrame);this.inlineChildrenExpansionFrame=null}finishCollapseAnimation(e){const n=this.isAnimating;this.clearCollapseAnimationCompletion(e);if(!n)return;this.isAnimating=false;this.dsChromeTransitionEnd.emit({source:"panel-nav"})}clearCollapseAnimationCompletion(e){if(this.transitionCompletionHandler){e?.removeEventListener("transitionend",this.transitionCompletionHandler);e?.removeEventListener("transitioncancel",this.transitionCompletionHandler);this.transitionCompletionHandler=undefined}if(this.transitionFallbackTimer!==null){window.clearTimeout(this.transitionFallbackTimer);this.transitionFallbackTimer=null}}effectiveBreakpoint(){if(this.breakpoint>0)return this.breakpoint;const e=Number(this.el.getAttribute("breakpoint")??0);return Number.isFinite(e)&&e>0?e:0}isViewportNarrow(){const e=this.effectiveBreakpoint();return typeof window!=="undefined"&&e>0&&window.innerWidth<e}connectResizeObserver(){this.viewportNarrow=this.isViewportNarrow();this.resizeObserver=new ResizeObserver((()=>{this.viewportNarrow=this.isViewportNarrow()}));this.resizeObserver.observe(document.documentElement)}disconnectResizeObserver(){this.resizeObserver?.disconnect();this.resizeObserver=undefined}connectScrollRegionObserver(){this.disconnectScrollRegionObserver();if(!this.bodyEl||typeof ResizeObserver==="undefined")return;this.scrollRegionObserver=new ResizeObserver((()=>this.updateBodyScrollable()));this.scrollRegionObserver.observe(this.bodyEl)}disconnectScrollRegionObserver(){this.scrollRegionObserver?.disconnect();this.scrollRegionObserver=undefined}updateBodyScrollable(){const e=Boolean(this.bodyEl&&this.bodyEl.scrollHeight>this.bodyEl.clientHeight+1);if(e!==this.bodyScrollable)this.bodyScrollable=e}syncActiveFromUrl(){if(!this.currentUrl){this.urlDerivedActiveId="";this.urlDerivedActiveChildId="";return}const e=l(this.currentUrl,this.getAllItems());this.urlDerivedActiveId=e.parentId;this.urlDerivedActiveChildId=e.childId}syncExpandedParent(){const e=this.getAllItems().find((e=>e.id===this.effectiveActiveId));this.expandedParentId=this.presentation==="nested"&&e?.children?.length?e.id:""}syncHostPropsIfNeeded(){if(R(this.renderedStyle,this.navStyle)){this.renderedStyle=this.navStyle}if(c(this.parsedGroups,this.groups)){this.onGroupsChange(this.groups)}else if(this.currentUrl){this.syncActiveFromUrl()}}scheduleDeferredHostPropSync(){let n=e.HOST_PROP_SYNC_BUDGET;const a=()=>{this.syncHostPropsIfNeeded();if(--n>0){requestAnimationFrame(a)}};queueMicrotask(a)}applyToggle(e){if(this.viewportNarrow)return;this.collapsed=e;if(this.storageKey){try{localStorage.setItem(this.storageKey,String(e))}catch{}}this.dsNavToggle.emit(e)}getAllItems(){return this.parsedGroups.flatMap((e=>e.items))}getVisibleRovingEntries(){return this.getAllItems().flatMap((e=>{const n={kind:"parent",item:e};if(this.presentation!=="nested"||this.collapsedPresentation||e.id!==this.expandedParentId||!e.children?.length){return[n]}return[n,...e.children.filter((e=>!e.isInactive)).map((n=>({kind:"child",parent:e,child:n})))]}))}getFirstRovingIndex(){return this.viewportNarrow?1:0}getFooterRovingIndex(){return 1+this.getVisibleRovingEntries().length}getUserRovingIndex(){return this.getFooterRovingIndex()+1}getRovingElement(e){const n=this.getVisibleRovingEntries().length;if(e===0){return this.viewportNarrow?null:this.el.querySelector(".panel-nav__header-btn")}if(e>=1&&e<=n){const n=this.el.querySelectorAll(".panel-nav__body [data-panel-nav-roving]");return n[e-1]??null}if(e===this.getFooterRovingIndex()){return this.el.querySelector(".panel-nav__footer-btn .button-unfilled")}if(e===this.getUserRovingIndex()){return this.el.querySelector(".panel-nav__footer-user")}return null}focusRovingAt(e){this.rovingIndex=e;this.getRovingElement(e)?.focus({preventScroll:true})}activateRovingIndex(e,n=false){const a=this.getVisibleRovingEntries();const i=a.length;if(e===0){this.handleToggle();return}if(e>=1&&e<=i){const i=a[e-1];if(!i)return;if(i.kind==="child"){this.emitChildSelect(i.parent,i.child)}else if(i.item.children?.length){this.activateParent(i.item,n)}else{this.handleItemClick(i.item.id)}return}if(e===this.getFooterRovingIndex()){this.handleFooterAction();return}if(e===this.getUserRovingIndex()){const e=this.el.querySelector(`#${N}`);if(e)this.dsNavUserAction.emit({anchor:e,menuPlacement:I})}}handleRovingKeyDown(e,n){if(e.key==="Enter"||e.key===" "){e.preventDefault();this.activateRovingIndex(n,true);return}const a=this.getFooterRovingIndex();const i=this.getUserRovingIndex();const s=this.getFirstRovingIndex();let t;switch(e.key){case"ArrowDown":if(n===i)return;if(n===a)t=i;else t=n+1;break;case"ArrowUp":if(n===s)return;if(n===i)t=a;else if(n===a)t=a-1;else t=n-1;break;case"ArrowRight":if(n===a)t=i;else return;break;case"ArrowLeft":if(n===i)t=a;else return;break;case"Home":e.preventDefault();t=s;break;case"End":e.preventDefault();t=i;break;default:return}if(t===undefined||t===n)return;e.preventDefault();this.focusRovingAt(t)}handleItemClick(e){this.dsNavSelect.emit(e)}emitChildSelect(e,n){if(n.isInactive)return;this.dsNavChildSelect.emit({parentId:e.id,childId:n.id,href:n.href})}followFlyoutAnchor(e){const n=f(e.href);if(this.routerMode!=="anchor"||!n)return;const a=this.el.ownerDocument.createElement("a");a.href=n;a.hidden=true;this.el.append(a);a.click();a.remove()}activateParent(e,n=false){if(this.presentation==="nested"){this.expandedParentId=e.id;if(this.collapsedPresentation){if(this.flyoutParentId===e.id&&this.flyoutOpen){this.closeFlyout();return}this.flyoutInitialFocusVisible=n;this.flyoutParentId=e.id;this.flyoutOpen=true;return}}const a=v(e.children);if(a)this.emitChildSelect(e,a)}parentAnchorId(e){return`panel-nav-parent-${this.instanceId}-${e.replace(/[^a-zA-Z0-9_-]/g,"-")}`}childListId(e){return`panel-nav-children-${this.instanceId}-${e.replace(/[^a-zA-Z0-9_-]/g,"-")}`}handleToggle(){const e=p(this.collapsed,this.viewportNarrow);if(e!==null)this.applyToggle(e)}async toggleCollapsed(){this.handleToggle()}handleFooterAction(){this.dsNavFooterAction.emit()}handleUserAction(e){const n=e.currentTarget;this.dsNavUserAction.emit({anchor:n,menuPlacement:I})}clearEdgeOverlayTimer(){if(this.edgeOverlayTimer!==null){window.clearTimeout(this.edgeOverlayTimer);this.edgeOverlayTimer=null}}handleResizeHandleMouseEnter(){this.clearEdgeOverlayTimer();if(h()){this.showEdgeOverlay=true;return}this.edgeOverlayTimer=window.setTimeout((()=>{this.showEdgeOverlay=true;this.edgeOverlayTimer=null}),500)}handleResizeHandleMouseLeave(){if(this.isDragging)return;this.clearEdgeOverlayTimer();this.showEdgeOverlay=false}handleResizeHandleMouseDown(e){e.preventDefault();e.stopPropagation();const n=this.collapsed||this.viewportNarrow;this.isDragging=true;this.dragStartX=e.clientX;this.didSnap=false;this.lastDeltaX=0;this.clearEdgeOverlayTimer();this.showEdgeOverlay=false;document.body.style.cursor="ew-resize";document.body.style.userSelect="none";const a=e=>{const a=e.clientX-this.dragStartX;this.lastDeltaX=Math.abs(a);if(this.didSnap)return;if(!n&&a<-8){this.applyToggle(true);this.didSnap=true}else if(n&&a>8){this.applyToggle(false);this.didSnap=true}};const i=()=>{if(!this.didSnap&&this.lastDeltaX<3){this.applyToggle(!n)}this.isDragging=false;this.showEdgeOverlay=false;document.body.style.cursor="";document.body.style.userSelect="";window.removeEventListener("mousemove",a);window.removeEventListener("mouseup",i);this.globalMouseMoveHandler=undefined;this.globalMouseUpHandler=undefined};this.globalMouseMoveHandler=a;this.globalMouseUpHandler=i;window.addEventListener("mousemove",a);window.addEventListener("mouseup",i)}renderFooterAction(e){const n=e?this.settingsLabel:this.dashboardLabel;return i("ds-tooltip",{label:n,side:"right",size:"sm"},i("ds-button-unfilled",{variant:"icon",class:"panel-nav__footer-btn",icon:e?"Gear":"Dashboard",activeFill:false,hasBorder:false,focusTabIndex:this.rovingIndex===this.getFooterRovingIndex()?0:-1,"aria-label":n,onDsClick:()=>this.handleFooterAction(),onKeyDown:e=>this.handleRovingKeyDown(e,this.getFooterRovingIndex()),onFocusin:()=>{this.rovingIndex=this.getFooterRovingIndex()}}))}renderFooterUser(e,n,a){const s=e?this.accountLabel:"";const t=i("button",{type:"button",id:N,class:{"panel-nav__item":true,"panel-nav__footer-user":true,"panel-nav__footer-user--menu-expanded":this.accountMenuExpanded,"ds-interaction-fill--surface-open":this.accountMenuSurfaceOpen??this.accountMenuExpanded,"ds-focus-ring-inset":true,"ds-interaction-fill":true},tabIndex:this.rovingIndex===this.getUserRovingIndex()?0:-1,"aria-label":this.accountLabel,"aria-haspopup":"menu","aria-expanded":String(this.accountMenuExpanded),onClick:e=>this.handleUserAction(e),onKeyDown:e=>this.handleRovingKeyDown(e,this.getUserRovingIndex()),onFocus:()=>{this.rovingIndex=this.getUserRovingIndex()}},i("ds-text",{class:"panel-nav__item-label panel-nav__footer-user-label panel-nav__item-label-text ds-control--md",as:"span",variant:"text-body-medium",emphasis:true,color:"inherit",lineTruncation:1},n),i("span",{class:"panel-nav__item-icon panel-nav__footer-user-icon","aria-hidden":"true"},i("span",{class:"panel-nav__footer-icon-expanded"},i("ds-icon",{name:"ChevronUpDown",size:"md",color:"inherit"})),i("span",{class:"panel-nav__footer-icon-collapsed"},i("ds-icon",{name:"Circle",size:"md",color:"inherit"}),i("ds-text",{class:"panel-nav__user-initial",as:"span",variant:"text-caption",emphasis:true,align:"center",color:"inherit"},a))));return i("ds-tooltip",{label:s,side:"right",size:"sm"},t)}renderParentItem(e,n,a){const s=e.id===this.effectiveActiveId;const t=(e.children?.length??0)>0;const o=this.presentation==="nested"&&t;const r=o?a?this.flyoutParentId===e.id:this.expandedParentId===e.id:false;const d=[i("span",{class:"panel-nav__item-icon"},i("ds-icon",{name:e.icon,size:"md",color:"inherit"})),i("ds-text",{class:"panel-nav__item-label panel-nav__item-label-text ds-control--md",as:"span",variant:"text-body-medium",emphasis:s,color:"inherit",lineTruncation:1},e.label),e.dot&&i("span",{class:"panel-nav__item-dot-box","aria-hidden":"true"},i("ds-badge",{class:"panel-nav__item-dot",variant:"dot",hasRing:a,label:""}))];const l={id:o?this.parentAnchorId(e.id):undefined,class:{"panel-nav__item":true,"panel-nav__parent":o,"panel-nav__parent--expanded":r,"panel-nav__parent--flyout-active":a&&this.flyoutParentId===e.id,"ds-interaction-fill--surface-open":a&&this.flyoutParentId===e.id,"panel-nav__parent--muted":this.presentation==="nested"&&!a&&this.expandedParentId!==""&&this.expandedParentId!==e.id,"panel-nav__item--active":s,"ds-focus-ring-inset":true,"ds-interaction-fill":true},"aria-current":!o&&s?"page":undefined,"aria-expanded":o?String(r):undefined,"aria-controls":o&&r?this.childListId(e.id):undefined,"aria-haspopup":o&&a?"menu":undefined,"data-panel-nav-roving":"",tabIndex:n===this.rovingIndex?0:-1,onClick:n=>t?this.activateParent(e,n.detail===0):this.handleItemClick(e.id),onKeyDown:e=>this.handleRovingKeyDown(e,n),onFocus:()=>{this.rovingIndex=n}};const c=f(t?v(e.children)?.href:e.href);const p=this.routerMode==="anchor"&&c&&!(o&&a);const h=p?i("a",{...l,href:c},d):i("button",{...l,type:"button"},d);return i("ds-tooltip",{label:a?e.label:"",side:"right",size:"sm"},h)}renderChildItem(e,n,a,s,t){const o=e.id===this.effectiveActiveId&&n.id===this.effectiveActiveChildId;const r=n.isInactive===true;const d=[i("ds-text",{class:"panel-nav__item-label panel-nav__item-label-text ds-control--md",as:"span",variant:"text-body-medium",emphasis:o,color:"inherit",lineTruncation:1},n.label),n.dot&&i("span",{class:"panel-nav__child-dot","aria-hidden":"true"},i("ds-badge",{variant:"dot",label:""}))];const l={class:{"panel-nav__item":true,"panel-nav__child":true,"ds-nav-disclosure__item":true,"panel-nav__child--active":o,"panel-nav__child--inactive":r,"panel-nav__item--active":o,"ds-focus-ring-inset":!r,"ds-interaction-fill":!r},"aria-current":o?"page":undefined,"aria-disabled":r?"true":undefined,"data-panel-nav-roving":r||a===undefined?undefined:"",style:{"--_panel-nav-child-index":String(s),"--_panel-nav-child-reverse-index":String(t),"--ds-nav-disclosure-index":String(s),"--ds-nav-disclosure-reverse-index":String(t)},tabIndex:!r&&a===this.rovingIndex?0:-1,onClick:()=>this.emitChildSelect(e,n),onKeyDown:e=>a===undefined?undefined:this.handleRovingKeyDown(e,a),onFocus:()=>{if(a!==undefined)this.rovingIndex=a}};const c=f(n.href);const v=!r&&this.routerMode==="anchor"&&c;return v?i("a",{...l,href:c},d):i("button",{...l,type:"button",disabled:r},d)}renderFlyout(){const e=this.getAllItems().find((e=>e.id===this.flyoutParentId));if(!e?.children?.length)return null;return i("ds-menu",{id:this.childListId(e.id),open:this.flyoutOpen,side:A.side,align:A.align,anchorAlignment:A.anchorAlignment,sideOffset:A.sideOffset,alignOffset:A.alignOffset,anchorId:this.parentAnchorId(e.id),selectionMode:"single",menuLabel:`${e.label} sections`,initialFocusVisible:this.flyoutInitialFocusVisible,sections:[{items:e.children.map((n=>({label:n.label,value:n.id,dot:n.dot,isInactive:n.isInactive,isSelected:e.id===this.effectiveActiveId&&n.id===this.effectiveActiveChildId})))}],onDsSelect:this.handleFlyoutSelect,onDsClose:this.closeFlyout,onDsAfterClose:this.handleFlyoutAfterClose})}render(){const e=this.renderedStyle;const n=e==="dashboard";const a=this.navStyle==="dashboard";const t=this.collapsed||this.viewportNarrow;const{userName:o,userInitial:r}=this;const d={"panel-nav":true,"ds-control--md":true,"panel-nav--dashboard":a,"panel-nav--settings":!a,"panel-nav--collapsed":t,"panel-nav--breakpoint-locked":this.viewportNarrow,"panel-nav--animating":this.isAnimating};return i(s,{key:"de666b377b6ffdf2254d806908cdb17885654354",style:{display:"block",position:"relative"}},i("nav",{key:"01181083dedb9ab84c6a18dcf9cdfd362d48f1e3",class:d,"aria-label":n?this.dashboardNavigationLabel:this.settingsNavigationLabel},i("div",{key:"82244092ce3ae1894df36ac42faed87bdf806ddf",class:"panel-nav__header ds-chrome-row ds-chrome-space--md"},i("button",{key:"f3242e039eec56b0bb57e71eac22cf2c8d813aab",type:"button",class:"panel-nav__header-btn ds-focus-ring-inset ds-interaction-fill",disabled:this.viewportNarrow,tabIndex:!this.viewportNarrow&&this.rovingIndex===0?0:-1,onClick:()=>this.handleToggle(),onKeyDown:e=>this.handleRovingKeyDown(e,0),onFocus:()=>{this.rovingIndex=0},"aria-label":t?this.expandNavigationLabel:this.collapseNavigationLabel,"aria-expanded":t?"false":"true"},i("span",{key:"7a8738751dca6f74cc0fbaa569cd8f57d43f4b17",class:"panel-nav__header-logo","aria-hidden":"true"},i("svg",{key:"a304025441bf7b44c09403c2ae2fbb1ffae90c8f",class:"panel-nav__m-mark",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",focusable:"false","aria-hidden":"true"},i("path",{key:"3e80b14ae5816801f31f3a1fab48ff3d15baad28",d:"M11.1159 4.31537H7.67021L2.53401 13.0703H0V15.6875H4.02716L8.24319 8.49978V15.6846H11.6342L15.8289 8.47829V15.6846H18.7122V4.3125H15.2559L11.1159 11.3648V4.31537Z",fill:"currentColor"}))),i("span",{key:"3b410ea69628b041ef57e991ac049bbf1d207c9f",class:"panel-nav__header-toggle","aria-hidden":"true"},i("ds-icon",{key:"2ca2b32641474e4ec1719d40d1be90f88ddd96ef",name:t?"LeftExpandB":"LeftCollapseB",size:"md",color:"inherit"})))),i("div",{key:"2a4044e15ad0802db89060b510f4dcb354dba1bc",class:{"panel-nav__body":true,"ds-chrome-column":true,"ds-chrome-space--md":true,"ds-scrollbar-hidden":true,"ds-focus-ring":this.bodyScrollable,...z({edges:"bottom"})},ref:e=>{const n=e??undefined;if(n===this.bodyEl)return;this.bodyEl=n;this.connectScrollRegionObserver()},role:this.bodyScrollable?"region":undefined,"aria-label":this.bodyScrollable?this.navigationItemsLabel:undefined,tabIndex:this.bodyScrollable?0:undefined},i("div",{key:"c6da45ea8825512a011198300b40bed444924b8c",class:"panel-nav__sections"},(()=>{let e=1;return this.parsedGroups.map((n=>i("div",{class:"panel-nav__group",key:n.id??n.label},n.label&&i("ds-text",{class:"panel-nav__group-label ds-control--md",as:"span",variant:"text-caption",emphasis:true,color:"inherit"},n.label),n.items.map(((a,s)=>{const o=e++;const r=!t&&this.inlineChildrenExpansionReady&&a.id===this.expandedParentId&&(a.children?.length??0)>0;const d=n.items.length>1;const l=d&&s>0;const c=d&&s<n.items.length-1;const v=r&&d;const p=this.presentation==="nested"&&(!t||this.isAnimating)&&(a.children?.length??0)>0;const h=p?a.children?.map(((n,i)=>{const s=!r||n.isInactive?undefined:e++;return this.renderChildItem(a,n,s,i,(a.children?.length??0)-i-1)})):null;return i("div",{class:"panel-nav__branch",key:a.id},l?i("div",{key:`${a.id}-divider-before`,class:{"panel-nav__branch-divider":true,"panel-nav__branch-divider--before":true,"panel-nav__branch-divider--open":v,"ds-nav-disclosure-divider":true,"ds-nav-disclosure-divider--open":v},"aria-hidden":"true"},i("div",{class:"panel-nav__branch-divider-clip ds-nav-disclosure-divider__clip"},i("span",{class:"panel-nav__branch-divider-line"}))):null,this.renderParentItem(a,o,t),p?i("div",{key:`${a.id}-children`,class:{"panel-nav__children-accordion":true,"panel-nav__children-accordion--open":r,"ds-nav-disclosure":true,"ds-nav-disclosure--open":r},"aria-hidden":r?undefined:"true",inert:r?undefined:true},i("div",{id:this.childListId(a.id),class:"panel-nav__children",role:"group","aria-labelledby":this.parentAnchorId(a.id)},h)):null,c?i("div",{key:`${a.id}-divider-after`,class:{"panel-nav__branch-divider":true,"panel-nav__branch-divider--after":true,"panel-nav__branch-divider--open":v,"ds-nav-disclosure-divider":true,"ds-nav-disclosure-divider--open":v},"aria-hidden":"true"},i("div",{class:"panel-nav__branch-divider-clip ds-nav-disclosure-divider__clip"},i("span",{class:"panel-nav__branch-divider-line"}))):null)})))))})())),i("div",{key:"1c3c3170ba117098562f20355f947b7ff3650c24",class:"panel-nav__footer"},this.renderFooterAction(n),this.renderFooterUser(t,o,r))),this.renderFlyout(),!this.viewportNarrow&&i("div",{key:"634385f412c2ee1e434b84edbe3371131c4adb06",class:{"panel-nav__resize-handle":true,"panel-nav__resize-handle--overlay":this.showEdgeOverlay},onMouseEnter:()=>this.handleResizeHandleMouseEnter(),onMouseLeave:()=>this.handleResizeHandleMouseLeave(),onMouseDown:e=>this.handleResizeHandleMouseDown(e),"aria-hidden":"true"}))}get el(){return this}static get watchers(){return{collapsed:[{onCollapsedChange:0}],viewportNarrow:[{onViewportNarrowChange:0}],breakpoint:[{onBreakpointChange:0}],groups:[{onGroupsChange:0}],presentation:[{onPresentationChange:0}],activeId:[{onActiveIdChange:0}],activeChildId:[{onActiveIdChange:0}],urlDerivedActiveId:[{onActiveIdChange:0}],urlDerivedActiveChildId:[{onActiveIdChange:0}],currentUrl:[{onCurrentUrlChange:0}],navStyle:[{onNavStyleChange:0}]}}static get style(){return F()+j()}},[2,"ds-panel-nav",{navStyle:[513,"nav-style"],disableViewTransition:[4,"disable-view-transition"],groups:[1],presentation:[513],routerMode:[1,"router-mode"],activeId:[1,"active-id"],activeChildId:[1,"active-child-id"],collapsed:[1028],breakpoint:[2],storageKey:[1,"storage-key"],currentUrl:[1,"current-url"],userName:[1,"user-name"],userInitial:[1,"user-initial"],dashboardLabel:[1,"dashboard-label"],settingsLabel:[1,"settings-label"],accountLabel:[1,"account-label"],accountMenuExpanded:[4,"account-menu-expanded"],accountMenuSurfaceOpen:[4,"account-menu-surface-open"],dashboardNavigationLabel:[1,"dashboard-navigation-label"],settingsNavigationLabel:[1,"settings-navigation-label"],expandNavigationLabel:[1,"expand-navigation-label"],collapseNavigationLabel:[1,"collapse-navigation-label"],navigationItemsLabel:[1,"navigation-items-label"],renderedStyle:[32],parsedGroups:[32],isAnimating:[32],rovingIndex:[32],viewportNarrow:[32],urlDerivedActiveId:[32],urlDerivedActiveChildId:[32],bodyScrollable:[32],expandedParentId:[32],inlineChildrenExpansionReady:[32],flyoutParentId:[32],flyoutOpen:[32],flyoutInitialFocusVisible:[32],showEdgeOverlay:[32],toggleCollapsed:[64]},undefined,{collapsed:[{onCollapsedChange:0}],viewportNarrow:[{onViewportNarrowChange:0}],breakpoint:[{onBreakpointChange:0}],groups:[{onGroupsChange:0}],presentation:[{onPresentationChange:0}],activeId:[{onActiveIdChange:0}],activeChildId:[{onActiveIdChange:0}],urlDerivedActiveId:[{onActiveIdChange:0}],urlDerivedActiveChildId:[{onActiveIdChange:0}],currentUrl:[{onCurrentUrlChange:0}],navStyle:[{onNavStyleChange:0}]}]);L.HOST_PROP_SYNC_BUDGET=8;function O(){if(typeof customElements==="undefined"){return}const e=["ds-panel-nav","ds-badge","ds-button-unfilled","ds-icon","ds-loader","ds-menu","ds-swatch-picker","ds-switch","ds-tag","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-panel-nav":if(!customElements.get(t(e))){customElements.define(t(e),L)}break;case"ds-badge":if(!customElements.get(t(e))){u()}break;case"ds-button-unfilled":if(!customElements.get(t(e))){m()}break;case"ds-icon":if(!customElements.get(t(e))){g()}break;case"ds-loader":if(!customElements.get(t(e))){b()}break;case"ds-menu":if(!customElements.get(t(e))){_()}break;case"ds-swatch-picker":if(!customElements.get(t(e))){x()}break;case"ds-switch":if(!customElements.get(t(e))){y()}break;case"ds-tag":if(!customElements.get(t(e))){w()}break;case"ds-text":if(!customElements.get(t(e))){k()}break;case"ds-tooltip":if(!customElements.get(t(e))){C()}break}}))}O();export{L as P,O as d};
|
|
2
|
-
//# sourceMappingURL=p--VKxPUoV.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{p as e,H as i,c as o,h as t,a as s,t as n}from"./index.js";import{a as r}from"./p-B8ZonS3S.js";import{p as a}from"./p-CUL5_8JM.js";import{d}from"./p-DQpw21HO.js";import{d as l}from"./p-CD9AbaHQ.js";import{d as c}from"./p-uqsR98po.js";import{d as h}from"./p-Cea7rROU.js";import{d as f}from"./p-0XTyQNRG.js";import{d as u}from"./p-skVhQk9d.js";import{d as p}from"./p-B9oadFSC.js";import{d as v}from"./p-14sMoeTr.js";const m=["agents","messages","activity","search","stacks","help"];const g="agents";const b={search:"Search",messages:"Messages",stacks:"Stacks",activity:"Activity",agents:"Agents",help:"Help & Support"};const y={search:"K",agents:"A",messages:"M",stacks:"S",activity:"N",help:"/"};const _=[{id:"agents",icon:"AI",label:b.agents,railPlacement:"header",order:0,shortcutKey:y.agents,mobileDestination:"agents"},{id:"messages",icon:"MessageBubbleStack",label:b.messages,order:0,shortcutKey:y.messages,mobileDestination:"messages"},{id:"activity",icon:"Bell",label:b.activity,order:1,shortcutKey:y.activity,mobileDestination:"activity"},{id:"search",icon:"MagnifyingGlass",label:b.search,order:2,shortcutKey:y.search,mobileDestination:"search"},{id:"help",icon:"CircleQuestion",label:b.help,railPlacement:"footer",order:0,shortcutKey:y.help,mobileDestination:"help"}];const w={header:0,body:1,footer:2};function x(e){const i=m.findIndex((i=>i===e.id));return e.order??(i<0?Number.MAX_SAFE_INTEGER:i)}function k(e){const i=new Map;for(const o of e){if(o.id.trim()&&!i.has(o.id))i.set(o.id,o)}return Array.from(i.values()).sort(((e,i)=>{const o=$(e);const t=$(i);const s=w[o]-w[t];if(s!==0)return s;return x(e)-x(i)}))}function z(e,i){const o=k(e).map((e=>({type:"tool",id:e.id,item:e})));const t=new Map;for(const e of i){if(e.id.trim()&&!t.has(e.id)){t.set(e.id,e)}}const s=Array.from(t.values()).map((e=>({type:"accessory",id:e.id,accessory:e})));return[...o,...s].sort(((e,i)=>{const o=e.type==="tool"?$(e.item):e.accessory.railPlacement;const t=i.type==="tool"?$(i.item):i.accessory.railPlacement;const s=w[o]-w[t];if(s!==0)return s;const n=e.type==="tool"?x(e.item):e.accessory.order;const r=i.type==="tool"?x(i.item):i.accessory.order;return n-r}))}function C(e){return e.flatMap((e=>{if(e.type==="tool")return[`tool:${e.id}`];if(e.accessory.type==="divider")return[];if(e.accessory.type==="shortcut"){return e.accessory.action.isInactive?[]:[`accessory:${e.id}:${e.accessory.action.id}`]}const i=e.accessory.primaryAction.isInactive?[]:[`accessory:${e.id}:${e.accessory.primaryAction.id}`];if(e.accessory.secondaryAction&&!e.accessory.secondaryAction.isInactive){i.push(`accessory:${e.id}:${e.accessory.secondaryAction.id}`)}return i}))}function T(e,i,o){if(!i.length)return 0;const t=e[o];const s=t?i.indexOf(t):-1;if(s>=0)return s;for(let t=o+1;t<e.length;t+=1){const o=i.indexOf(e[t]);if(o>=0)return o}for(let t=o-1;t>=0;t-=1){const o=i.indexOf(e[t]);if(o>=0)return o}return Math.min(Math.max(o,0),i.length-1)}function A(e,i,o){return{accessoryId:e,actionId:i,anchor:o}}function S(e){return typeof e==="string"&&e.trim().length>0}function $(e){if(e.railPlacement)return e.railPlacement;if(e.id===g)return"header";if(e.id==="help")return"footer";return"body"}function D(e,i,o){if(!o||e.some((e=>e.id===o))){return{open:i,activeTool:o,removedTool:""}}return{open:false,activeTool:"",removedTool:o}}function j(e){const i=e.transitionProperty.split(",").map((e=>e.trim()));const o=e.transitionDuration.split(",").map((e=>a(e.trim(),0)));const t=e.transitionDelay.split(",").map((e=>a(e.trim(),0)));return i.reduce(((e,i,s)=>{if(i!=="all"&&i!=="max-width")return e;const n=o[s%o.length]??0;const r=t[s%t.length]??0;return Math.max(e,n+r,0)}),0)}function F(e,i){return!e&&i==="idle"}function M(e,i,o){if(o==="closing")return e<=.5;if(o==="opening")return i>0&&e>=i-.5;return true}function R(e,i,o){if(e&&i===o){return{open:false,activeTool:o,selected:false}}return{open:true,activeTool:o,selected:true}}const B=()=>`:host,:where(.ds-table),:where(.tooltip-popup),:where(.ds-radius){--ds-radius-control:var(--dimension-radius-025);--ds-radius-card:var(--dimension-radius-050);--ds-radius-modal:var(--dimension-radius-050);--ds-radius-menu:var(--dimension-radius-075);--ds-radius-tooltip-control:var(--dimension-radius-025);--ds-radius-tooltip-menu:var(--dimension-radius-075);--ds-radius-table:var(--dimension-radius-050)}.ds-control--lg,: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(--ds-radius-control)}: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)}}@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-interaction-fill),.ds-interaction-fill{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}:host(.ds-interaction-fill)::before,.ds-interaction-fill::before,:host(.ds-interaction-fill)::after,.ds-interaction-fill::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;cursor:inherit;transition:none}:host(.ds-interaction-fill)::before,.ds-interaction-fill::before{z-index:1}:host(.ds-interaction-fill)::after,.ds-interaction-fill::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)}:host(.ds-interaction-fill--bordered),.ds-interaction-fill--bordered{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}:host(.ds-interaction-fill--selected)::before,.ds-interaction-fill--selected::before{background:var(--ds-interaction-active)}:host(.ds-interaction-fill--selected),.ds-interaction-fill--selected{--ds-interaction-dot-ring:var(--ds-interaction-active)}@media (hover: hover) and (pointer: fine){:host(.ds-interaction-fill:hover:not(:disabled))::after,.ds-interaction-fill:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}}:host(.ds-interaction-fill:active:not(:disabled))::after,.ds-interaction-fill:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}:host(.ds-interaction-fill--grouped)::after,.ds-interaction-fill--grouped::after,:host(.ds-interaction-fill--grouped:active:not(:disabled))::after,.ds-interaction-fill--grouped:active:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}@media (hover: hover) and (pointer: fine){:host(.ds-interaction-fill--grouped:hover:not(:disabled))::after,.ds-interaction-fill--grouped:hover:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}}:host(.ds-interaction-fill--grouped),.ds-interaction-fill--grouped{--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 )}:host(.ds-interaction-fill)>.ds-interaction-fill__content,.ds-interaction-fill>.ds-interaction-fill__content,.ds-interaction-fill__content{position:relative;z-index:2;cursor:inherit}:host(.ds-interaction-fill--on-faint),.ds-interaction-fill--on-faint{--ds-interaction-active:var(--color-interaction-active)}:host(.ds-interaction-fill--on-medium),.ds-interaction-fill--on-medium{--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)}:host(.ds-interaction-fill--on-bold),.ds-interaction-fill--on-bold{--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)}:host(.ds-interaction-fill--on-strong),.ds-interaction-fill--on-strong{--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)}:host(.ds-interaction-fill--on-translucent),.ds-interaction-fill--on-translucent{--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)}:host(.ds-interaction-fill--on-inverted),.ds-interaction-fill--on-inverted{--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)}:host(.ds-interaction-fill--on-media),.ds-interaction-fill--on-media{--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)}:host(.ds-interaction-fill--on-always-dark),.ds-interaction-fill--on-always-dark{--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)}:host(.ds-interaction-fill--on-navigation),.ds-interaction-fill--on-navigation{--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)}:host(.ds-interaction-fill.ds-interaction-fill--surface-open:not(:disabled))::after,.ds-interaction-fill.ds-interaction-fill--surface-open:not(:disabled)::after{background:var(--ds-interaction-pressed)}@media (forced-colors: active){:host(.ds-interaction-fill)::after,.ds-interaction-fill::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))}:host(.ds-interaction-fill--surface-open:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible))::after,.ds-interaction-fill--surface-open:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after{outline:var(--dimension-stroke-width-025) dashed var(--ds-forced-color-control-boundary);outline-offset:calc(-1 * var(--dimension-stroke-width-025))}:host(.ds-interaction-fill--selected)::before,.ds-interaction-fill--selected::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){:host(.ds-interaction-fill:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible))::after,.ds-interaction-fill: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)}}: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-header.panel-tools__rail-section--stacked{height:auto;min-height:var(--dimension-size-600)}.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-section--stacked{align-items:stretch}.panel-tools__rail-action{display:flex;align-items:center;justify-content:center;width:100%;height:var(--ds-control-height);flex-shrink:0}.panel-tools__accessory{display:flex;flex-direction:column;flex:0 0 calc(var(--dimension-size-400) * 2);box-sizing:border-box;width:100%;min-height:calc(var(--dimension-size-400) * 2)}.panel-tools__accessory--shortcut{flex-basis:var(--dimension-size-400);min-width:var(--dimension-size-400);min-height:var(--dimension-size-400)}.panel-tools__accessory--shortcut>ds-tooltip{display:flex;flex:1 1 auto;width:100%;min-height:0}.panel-tools__accessory--transient{align-items:center;gap:var(--dimension-space-100);width:var(--dimension-size-400);height:calc(var(--dimension-size-400) * 2);min-height:calc(var(--dimension-size-400) * 2);padding:var(--dimension-space-050);border-radius:var(--dimension-radius-half)}.panel-tools__accessory--transient-active{background-color:var(--color-background-bold-brand)}.panel-tools__accessory--transient-positive{background-color:var(--color-background-bold-positive)}.panel-tools__accessory--transient>ds-tooltip{display:flex;flex:0 0 var(--dimension-size-300);width:var(--dimension-size-300);height:var(--dimension-size-300);min-height:var(--dimension-size-300)}.panel-tools__shortcut{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%;margin:0;padding:0;border:0;border-radius:var(--dimension-radius-half);color:var(--color-foreground-secondary);background:transparent;font:inherit}.panel-tools__shortcut:disabled{color:var(--color-foreground-disabled);cursor:not-allowed}.panel-tools__shortcut-content{display:flex;align-items:center;justify-content:center;width:var(--dimension-size-400);height:var(--dimension-size-400)}.panel-tools__shortcut-orb{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--dimension-size-300);height:var(--dimension-size-300);border:var(--dimension-stroke-width-012) solid var(--color-border-secondary);border-radius:var(--dimension-radius-half);background:transparent}.panel-tools__shortcut-dot{position:absolute;inset-block-start:calc((var(--dimension-size-400) - var(--dimension-iconography-md)) / 2);inset-inline-end:calc((var(--dimension-size-400) - var(--dimension-iconography-md)) / 2);z-index:2;pointer-events:none}.panel-tools__accessory-primary{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--dimension-size-300);height:var(--dimension-size-300);margin:0;padding:0;border:0;border-radius:var(--dimension-radius-half);color:var(--color-foreground-on-bold-background-secondary);background:transparent;font:inherit;--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-on-bold-background-secondary)}.panel-tools__accessory-primary:disabled{color:var(--color-foreground-on-bold-background-quaternary);cursor:not-allowed}.panel-tools__accessory-primary-content{display:flex;align-items:center;justify-content:center;position:relative;width:100%;height:100%}.panel-tools__accessory-image,.panel-tools__accessory-initial{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%;border-radius:var(--dimension-radius-half)}.panel-tools__accessory-image{object-fit:cover}.panel-tools__accessory-initial{color:inherit;background:transparent}.panel-tools__accessory-secondary{display:inline-flex;flex:0 0 var(--dimension-size-300);width:var(--dimension-size-300);height:var(--dimension-size-300)}.panel-tools__accessory-divider{flex:0 0 auto;box-sizing:border-box;width:100%;padding-block:var(--dimension-space-050)}.panel-tools__accessory-divider ds-divider{display:block}@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 E=e(class e extends i{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.dsToolChange=o(this,"dsToolChange",7);this.dsPresentationChange=o(this,"dsPresentationChange",7);this.dsHeaderBack=o(this,"dsHeaderBack",7);this.dsHeaderAction=o(this,"dsHeaderAction",7);this.dsRailAccessoryAction=o(this,"dsRailAccessoryAction",7);this.dsChromeTransitionStart=o(this,"dsChromeTransitionStart",7);this.dsChromeTransitionEnd=o(this,"dsChromeTransitionEnd",7);this.open=false;this.presentation="drawer";this.fullscreenHeaderMode="shared";this.activeTool="";this.items=[];this.accessories=[];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 i=e.detail;if(!this.activeTool||!i?.id)return;e.stopPropagation();this.dsHeaderAction.emit({tool:this.activeTool,id:i.id,anchor:i.anchor})};this.handleTransitionEnd=e=>{const i=this.renderRoot.querySelector(".panel-tools__drawer");if(e.target!==i)return;if(e.propertyName!=="max-width")return;if(this.ignoreReplacementTerminal){this.ignoreReplacementTerminal=false;return}if(e.type==="transitioncancel")return;if(i&&!this.drawerTransitionAtTerminal(i,this.motion))return;this.finishDrawerTransition()};this.handleToolChange=e=>{const i=R(this.open,this.activeTool,e);this.open=i.open;this.activeTool=i.activeTool;this.dsToolChange.emit({id:e,selected:i.selected})};this.handleRailKeyDown=(e,i,o)=>{const t=C(this.orderedRailEntries);if(!t.length)return;if((e.key==="Enter"||e.key===" ")&&o){e.preventDefault();o();return}if(e.key==="ArrowDown"){if(i>=t.length-1)return;e.preventDefault();this.focusRailAt(i+1);return}if(e.key==="ArrowUp"){if(i<=0)return;e.preventDefault();this.focusRailAt(i-1)}}}get railItems(){return this.items??[]}get orderedRailItems(){return k(this.railItems)}get railAccessories(){return this.accessories??[]}get orderedRailEntries(){return z(this.railItems,this.railAccessories)}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,o){if(e===o)return;if(this.el.getAttribute("presentation")!==e){this.el.setAttribute("presentation",e)}const t=++this.presentationMotionGeneration;this.presentationMotionSuppressed=true;requestAnimationFrame((()=>{requestAnimationFrame((()=>{if(t!==this.presentationMotionGeneration)return;this.presentationMotionSuppressed=false}))}));if(e==="fullscreen"){this.focusBeforeFullscreen=document.activeElement instanceof i?document.activeElement:null;this.open=true}else if(o==="fullscreen"){const e=this.focusBeforeFullscreen;const i=this.activeHeader().actions?.[0]?.id;requestAnimationFrame((async()=>{if(e?.isConnected){e.focus({preventScroll:true})}const o=e?document.activeElement===e||e.contains(document.activeElement):false;if(!o&&i)await this.focusHeaderAction(i);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.setAttribute(r,"");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,i){if(e)this.drawerSurfaceRetained=true;if(this.readyForMotion&&i!==undefined&&i!==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()}accessoriesChanged(e=[],i=[]){const o=C(z(this.railItems,i));const t=C(z(this.railItems,e));const s=this.renderRoot.activeElement;const n=s?.closest("[data-rail-focus-key]")?.dataset.railFocusKey;const r=n?o.indexOf(n):-1;const a=r>=0?r:this.rovingIndex;const d=T(o,t,a);const l=r>=0&&!t.includes(n??"");this.rovingIndex=d;if(l&&t.length){requestAnimationFrame((()=>this.focusRailAt(d)))}}restoreLastActiveTool(){if(!this.storageKey||this.activeTool)return;try{const e=localStorage.getItem(this.storageKey);if(S(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=D(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 i=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 o=++this.transitionGeneration;requestAnimationFrame((()=>{requestAnimationFrame((()=>{if(o!==this.transitionGeneration||this.motion!==e)return;if(!i){this.finishDrawerTransition();return}if(this.drawerTransitionAtTerminal(i,e)){this.finishDrawerTransition();return}const t=j(getComputedStyle(i));if(t<=0){this.finishDrawerTransition();return}this.transitionFallbackTimer=window.setTimeout((()=>{this.finishDrawerTransition()}),t)}))}))}drawerTransitionAtTerminal(e,i){const o=e.getBoundingClientRect().width;const t=e.querySelector(".panel-tools__drawer-surface");const s=t?.getBoundingClientRect().width??0;return M(o,s,i)}finishDrawerTransition(){const e=this.motion;const i=e!=="idle";this.clearTransitionCompletion();if(!i)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 i=e.filter((e=>Boolean(this.el.querySelector(`[slot="${e}-view"]`))));if(i.join("|")!==this.fullViewToolIds.join("|"))this.fullViewToolIds=i}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??b[this.activeTool]??this.activeTool}resolvedHeaders(){return this.headers??{}}activeHeader(){if(!this.activeTool)return{};return this.resolvedHeaders()[this.activeTool]??{}}async activateTool(e){const i=this.railItems.find((i=>i.id===e));if(!i||i.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 i=this.renderRoot.querySelector(`[data-header-action-id="${CSS.escape(e)}"]`);await(i?.setFocus?.())}focusRailAt(e){const i=C(this.orderedRailEntries);if(!i.length)return;const o=Math.max(0,Math.min(e,i.length-1));this.rovingIndex=o;const t=this.renderRoot.querySelector(`[data-rail-focus-key="${CSS.escape(i[o])}"]`);if(t?.setFocus){void t.setFocus()}else{t?.focus({preventScroll:true})}}renderRailAction(e,i){const o=`tool:${e.id}`;const s=e.ariaLabel??e.label??b[e.id]??e.id;return t("ds-tooltip",{key:e.id,label:s,shortcutKey:e.shortcutKey??y[e.id],side:"left",size:"sm",boundary:"viewport"},t("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:i===this.rovingIndex?0:-1,"data-rail-focus-key":o,"aria-label":s,pressed:this.isRailSelected(e.id),onFocusin:()=>{this.rovingIndex=i},onKeyDown:o=>this.handleRailKeyDown(o,i,(()=>this.handleToolChange(e.id))),onDsClick:()=>this.handleToolChange(e.id)}))}accessoryPrimaryLabel(e){const i=e.primaryAction.ariaLabel?.trim()||e.ariaLabel;const o=e.statusText.trim();return o?`${i}. ${o}`:i}emitAccessoryAction(e,i,o){if(i.isInactive)return;this.dsRailAccessoryAction.emit(A(e,i.id,o))}renderAccessoryVisual(e){if(e.visual.type==="image"){return t("img",{class:"panel-tools__accessory-image",src:e.visual.src,alt:"","aria-hidden":"true"})}if(e.visual.type==="initial"){const i=[...e.visual.initial.trim()].slice(0,2).join("");return t("ds-text",{class:"panel-tools__accessory-initial",as:"span",variant:"text-caption",emphasis:true,color:"inherit","aria-hidden":"true"},i)}return t("ds-icon",{name:e.visual.icon,size:"sm","aria-hidden":"true"})}renderRailShortcut(e,i){const o=`accessory:${e.id}:${e.action.id}`;const s=i.get(o);const n=e.action.ariaLabel?.trim()||e.ariaLabel;const r=[...e.initials.trim()].slice(0,2).join("");return t("div",{key:`accessory:${e.id}`,class:"panel-tools__accessory panel-tools__accessory--shortcut"},t("ds-tooltip",{label:n,side:"left",size:"sm",boundary:"viewport"},t("button",{type:"button",class:"panel-tools__shortcut ds-focus-ring-inset ds-interaction-fill",disabled:e.action.isInactive,tabIndex:s===this.rovingIndex?0:-1,"data-rail-focus-key":o,"aria-label":n,onFocus:()=>{if(s!==undefined)this.rovingIndex=s},onKeyDown:e=>s===undefined?undefined:this.handleRailKeyDown(e,s),onClick:i=>this.emitAccessoryAction(e.id,e.action,i.currentTarget)},t("span",{class:"panel-tools__shortcut-content ds-interaction-fill__content"},t("ds-text",{class:"panel-tools__shortcut-orb",as:"span",variant:"text-caption",emphasis:true,color:"inherit"},r),e.dot?t("ds-badge",{class:"panel-tools__shortcut-dot",variant:"dot",background:"var(--color-background-secondary)","aria-hidden":"true"}):null))))}renderRailAccessory(e,i){if(e.type==="divider"){return t("div",{key:`accessory:${e.id}`,class:"panel-tools__accessory-divider","aria-hidden":"true"},t("ds-divider",null))}if(e.type==="shortcut"){return this.renderRailShortcut(e,i)}const o=`accessory:${e.id}:${e.primaryAction.id}`;const s=i.get(o);const n=this.accessoryPrimaryLabel(e);const r=e.secondaryAction;const a=r?`accessory:${e.id}:${r.id}`:"";const d=r?i.get(a):undefined;return t("div",{key:`accessory:${e.id}`,class:{"panel-tools__accessory":true,"panel-tools__accessory--transient":true,"panel-tools__accessory--transient-active":e.statusTone==="active","panel-tools__accessory--transient-positive":e.statusTone==="positive"}},t("ds-tooltip",{label:n,side:"left",size:"sm",boundary:"viewport"},t("button",{type:"button",class:"panel-tools__accessory-primary ds-focus-ring-inset ds-interaction-fill ds-interaction-fill--on-bold",disabled:e.primaryAction.isInactive,tabIndex:s===this.rovingIndex?0:-1,"data-rail-focus-key":o,"aria-label":n,onFocus:()=>{if(s!==undefined)this.rovingIndex=s},onKeyDown:e=>s===undefined?undefined:this.handleRailKeyDown(e,s),onClick:i=>this.emitAccessoryAction(e.id,e.primaryAction,i.currentTarget)},t("span",{class:"panel-tools__accessory-primary-content ds-interaction-fill__content"},this.renderAccessoryVisual(e)))),r?t("ds-tooltip",{label:r.ariaLabel,side:"left",size:"sm",boundary:"viewport"},t("ds-button-unfilled",{class:"panel-tools__accessory-secondary",variant:"icon",size:"sm",rounded:true,background:"bold",hasBorder:false,icon:r.icon,isInactive:r.isInactive,focusTabIndex:d===this.rovingIndex?0:-1,"data-rail-focus-key":a,"aria-label":r.ariaLabel,onFocusin:()=>{if(d!==undefined)this.rovingIndex=d},onKeyDown:e=>d===undefined?undefined:this.handleRailKeyDown(e,d),onDsClick:i=>this.emitAccessoryAction(e.id,r,i.currentTarget)})):null)}renderRailEntry(e,i){if(e.type==="tool"){return this.renderRailAction(e.item,i.get(`tool:${e.id}`)??0)}return this.renderRailAccessory(e.accessory,i)}render(){const e=this.headerLabel();const i=this.activeHeader();const o=i.title?.trim()||e;const n=i.actions??[];const r=this.orderedRailItems;const a=this.orderedRailEntries;const d=e=>e.type==="tool"?$(e.item):e.accessory.railPlacement;const l=a.filter((e=>d(e)==="header"));const c=a.filter((e=>d(e)==="body"));const h=a.filter((e=>d(e)==="footer"));const f=new Map(C(a).map(((e,i)=>[e,i])));const u=this.isDrawerPresent();const p=F(this.open,this.motion);const v=Boolean(u&&this.activeTool&&this.hasFullView(this.activeTool));const m=r.map((e=>e.id));return t(s,{key:"560b87573afe935a8974d6e41949f8c5104c9a67",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":p,"panel-tools--fullscreen":this.presentation==="fullscreen","panel-tools--presentation-snap":this.presentationMotionSuppressed},"data-ds-overlay-boundary":true,role:this.presentation==="fullscreen"?"dialog":"complementary","aria-modal":this.presentation==="fullscreen"?"true":undefined,"aria-label":this.toolsLabel},t("div",{key:"3d15da5f7cdee581404bb8220584f582967cba1d",class:"panel-tools__layout"},t("nav",{key:"5c808108f9f95f9cc3938801420bd755b7a8eeed",class:"panel-tools__rail","aria-label":this.toolShortcutsLabel},l.length?t("div",{class:{"panel-tools__rail-header":true,"panel-tools__rail-section--stacked":l.length>1,"ds-chrome-row":l.length===1,"ds-chrome-column":l.length>1,"ds-chrome-space--md":true}},l.map((e=>this.renderRailEntry(e,f)))):null,t("div",{key:"3bc204aa1ab39abed6974774d1e082678462133e",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 i=e??undefined;if(i===this.railBodyEl)return;this.railBodyEl=i;this.connectRailBodyObserver()},role:this.railBodyScrollable?"region":undefined,"aria-label":this.railBodyScrollable?this.toolShortcutsLabel:undefined,tabIndex:this.railBodyScrollable?0:undefined},t("div",{key:"59ffb0f2d7df6a75f5420699bed4921985787a6b",class:"panel-tools__rail-actions"},c.map((e=>this.renderRailEntry(e,f))))),h.length?t("div",{class:{"panel-tools__rail-footer":true,"panel-tools__rail-section--stacked":h.length>1,"ds-chrome-row":h.length===1,"ds-chrome-column":h.length>1,"ds-chrome-space--md":true}},h.map((e=>this.renderRailEntry(e,f)))):null),t("div",{key:"92ef1d1f6ba214ac74bf67b134c605012c649134",class:{"panel-tools__drawer":true,"panel-tools__drawer--visible":u},"aria-hidden":u?null:"true",inert:u?undefined:true},t("div",{key:"2b48c86217886ec927f34b0d87e6fc079324db45",class:"panel-tools__drawer-surface"},this.presentation!=="fullscreen"||this.fullscreenHeaderMode==="shared"?t("ds-panel-tool-header",{class:"panel-tools__header",heading:o,showBack:i.showBack??false,backIcon:i.backIcon||"ChevronLeft",backAriaLabel:i.backAriaLabel||"Back",showMenu:false,ref:e=>{const i=e;if(i)i.actions=n},onDsBack:()=>{if(this.activeTool)this.dsHeaderBack.emit({tool:this.activeTool})}}):null,t("div",{key:"45bd6af7fd4a18c35a1f00fec7ee0202e42e6cc1",class:"panel-tools__body",hidden:v},m.map((e=>{const i=this.isViewActive(e);return t("div",{class:{"panel-tools__view":true,"panel-tools__view--active":i},hidden:!i},t("slot",{name:e}))}))),t("div",{key:"1c9c346eebb1528304270c545461d275bd3ac72c",class:"panel-tools__full-views",hidden:!v},m.map((e=>t("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))},t("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}],accessories:[{accessoriesChanged:0}]}}static get style(){return B()}},[257,"ds-panel-tools",{open:[1540],presentation:[1537],fullscreenHeaderMode:[513,"fullscreen-header-mode"],activeTool:[1537,"active-tool"],items:[16],accessories:[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}],accessories:[{accessoriesChanged:0}]}]);function K(){if(typeof customElements==="undefined"){return}const e=["ds-panel-tools","ds-badge","ds-button-unfilled","ds-divider","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),E)}break;case"ds-badge":if(!customElements.get(n(e))){d()}break;case"ds-button-unfilled":if(!customElements.get(n(e))){l()}break;case"ds-divider":if(!customElements.get(n(e))){c()}break;case"ds-icon":if(!customElements.get(n(e))){h()}break;case"ds-loader":if(!customElements.get(n(e))){f()}break;case"ds-panel-tool-header":if(!customElements.get(n(e))){u()}break;case"ds-text":if(!customElements.get(n(e))){p()}break;case"ds-tooltip":if(!customElements.get(n(e))){v()}break}}))}K();export{E as P,b as a,R as b,_ as c,K as d,k as o,D as r};
|
|
2
|
-
//# sourceMappingURL=p-BINlT3xz.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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","PANEL_TOOLS_REGION_ORDER","header","body","footer","panelToolsItemOrder","item","canonical","findIndex","Number","MAX_SAFE_INTEGER","orderPanelToolsItems","items","firstById","Map","trim","has","set","Array","from","values","sort","left","right","leftRegion","panelToolsRailPlacement","rightRegion","regionDelta","orderPanelToolsRailEntries","accessories","toolEntries","map","type","firstAccessoryById","accessory","accessoryEntries","leftPlacement","rightPlacement","leftOrder","rightOrder","panelToolsRailFocusKeys","entries","flatMap","entry","action","isInactive","keys","primaryAction","secondaryAction","push","reconcilePanelToolsRovingIndex","previousKeys","nextKeys","currentIndex","length","currentKey","preservedIndex","indexOf","index","nextIndex","Math","min","max","panelToolsRailAccessoryActionDetail","accessoryId","actionId","anchor","isPanelToolsToolId","value","reconcilePanelToolsAvailability","open","activeTool","some","removedTool","panelToolsDrawerTransitionMs","style","properties","transitionProperty","split","durations","transitionDuration","parseCssTimeMs","delays","transitionDelay","reduce","property","duration","delay","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","handleTransitionEnd","drawer","renderRoot","querySelector","target","propertyName","drawerTransitionAtTerminal","finishDrawerTransition","handleToolChange","next","dsToolChange","handleRailKeyDown","e","activate","orderedRailEntries","key","preventDefault","focusRailAt","railItems","orderedRailItems","railAccessories","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","ANCHORED_OVERLAY_BOUNDARY_ATTRIBUTE","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","accessoriesChanged","focusedKey","closest","dataset","railFocusKey","focusedIndex","restoreFocus","includes","stored","localStorage","getItem","setItem","clearPersistedTool","removeItem","phase","dsChromeTransitionStart","source","fallbackMs","getComputedStyle","window","setTimeout","getBoundingClientRect","surface","completedPhase","wasTransitioning","dsChromeTransitionEnd","clearTimeout","isRailSelected","isDrawerPresent","isViewActive","hasFullView","ids","filter","join","shadowRoot","headerLabel","find","candidate","resolvedHeaders","activateTool","closeDrawer","CSS","escape","setFocus","bounded","renderRailAction","focusKey","ariaLabel","h","side","size","boundary","variant","class","isActive","activeFill","hasBorder","pressScale","dot","focusTabIndex","pressed","onFocusin","onKeyDown","onDsClick","accessoryPrimaryLabel","actionLabel","status","statusText","emitAccessoryAction","dsRailAccessoryAction","renderAccessoryVisual","visual","src","alt","initial","slice","as","emphasis","color","name","renderRailShortcut","focusIndexes","focusIndex","get","initials","disabled","tabIndex","onFocus","onClick","currentTarget","background","renderRailAccessory","primaryKey","primaryIndex","primaryLabel","secondary","secondaryKey","secondaryIndex","statusTone","rounded","renderRailEntry","render","headerTitle","title","headerActions","entryPlacement","headerEntries","bodyEntries","footerEntries","showDrawerChrome","drawerResting","activeFullView","toolIds","Host","role","ref","element","inert","heading","showBack","backIcon","backAriaLabel","showMenu","toolHeader","onDsBack","dsHeaderBack","hidden","active"],"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 type PanelToolsRailPlacement = 'header' | 'body' | 'footer';\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?: PanelToolsRailPlacement;\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\nexport type PanelToolsRailAccessoryVisual =\n | { type: 'icon'; icon: string }\n | { type: 'initial'; initial: string }\n | { type: 'image'; src: string };\n\nexport interface PanelToolsRailAccessoryAction {\n /** Stable application-owned action id emitted with the accessory id. */\n id: string;\n /** Overrides the accessory label for the primary action. */\n ariaLabel?: string;\n isInactive?: boolean;\n}\n\nexport interface PanelToolsRailAccessorySecondaryAction {\n id: string;\n icon: string;\n ariaLabel: string;\n isInactive?: boolean;\n}\n\nexport type PanelToolsRailTransientTone = 'active' | 'positive';\n\ninterface PanelToolsRailAccessoryBase {\n /** Stable application-owned identity. Duplicate or blank ids are omitted. */\n id: string;\n /** Explicit rail region; accessories never infer placement from their id. */\n railPlacement: PanelToolsRailPlacement;\n /** Stable ordering within the selected rail region. */\n order: number;\n}\n\n/** Decorative boundary between application-owned rail accessory groups. */\nexport interface PanelToolsRailDividerAccessory extends PanelToolsRailAccessoryBase {\n type: 'divider';\n}\n\n/**\n * A compact one-action shortcut that matches standard tool-button geometry.\n * PanelTools owns its initial orb, notification dot, and transient interaction paint.\n */\nexport interface PanelToolsRailShortcutAccessory extends PanelToolsRailAccessoryBase {\n type: 'shortcut';\n /** Accessible shortcut name and action-label fallback. */\n ariaLabel: string;\n /** One or two displayed graphemes. Longer values are truncated visually. */\n initials: string;\n /** Supplemental notification dot. Include its meaning in the accessible label when needed. */\n dot?: boolean;\n action: PanelToolsRailAccessoryAction;\n}\n\n/**\n * A direct application intent that never selects a tool or changes drawer state.\n * PanelTools owns the two-control-height surface and its focus behavior.\n */\nexport interface PanelToolsRailTransientAccessory extends PanelToolsRailAccessoryBase {\n type: 'transient';\n /** Accessible accessory name and primary-action fallback label. */\n ariaLabel: string;\n visual: PanelToolsRailAccessoryVisual;\n /** State announced with the primary action and shown in its tooltip. */\n statusText: string;\n /** Bold surface treatment. Active uses brand; positive uses positive semantic color. */\n statusTone: PanelToolsRailTransientTone;\n primaryAction: PanelToolsRailAccessoryAction;\n secondaryAction?: PanelToolsRailAccessorySecondaryAction;\n}\n\nexport type PanelToolsRailAccessory =\n | PanelToolsRailDividerAccessory\n | PanelToolsRailShortcutAccessory\n | PanelToolsRailTransientAccessory;\n\nexport interface PanelToolsRailAccessoryActionDetail {\n accessoryId: string;\n actionId: string;\n /** Rendered action control, suitable for anchoring an application-owned overlay. */\n anchor: HTMLElement;\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 /** Associated surface remains visible, including exit motion. */\n surfaceOpen?: 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 PanelToolsRailAccessory,\n type PanelToolsRailAccessoryActionDetail,\n type PanelToolsRailPlacement,\n type PanelToolsToolId,\n} from './panel-tools-types';\n\nconst PANEL_TOOLS_REGION_ORDER: Record<PanelToolsRailPlacement, number> = {\n header: 0,\n body: 1,\n footer: 2,\n};\n\nfunction panelToolsItemOrder(item: PanelToolsItem): number {\n const canonical = PANEL_TOOLS_TOOL_IDS.findIndex(id => id === item.id);\n return item.order ?? (canonical < 0 ? Number.MAX_SAFE_INTEGER : canonical);\n}\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 return Array.from(firstById.values()).sort((left, right) => {\n const leftRegion = panelToolsRailPlacement(left);\n const rightRegion = panelToolsRailPlacement(right);\n const regionDelta =\n PANEL_TOOLS_REGION_ORDER[leftRegion] - PANEL_TOOLS_REGION_ORDER[rightRegion];\n if (regionDelta !== 0) return regionDelta;\n\n return panelToolsItemOrder(left) - panelToolsItemOrder(right);\n });\n}\n\nexport type PanelToolsRailEntry =\n | { type: 'tool'; id: string; item: PanelToolsItem }\n | { type: 'accessory'; id: string; accessory: PanelToolsRailAccessory };\n\n/** Merge tools and governed accessories into one visual and keyboard order. */\nexport function orderPanelToolsRailEntries(\n items: PanelToolsItem[],\n accessories: PanelToolsRailAccessory[]\n): PanelToolsRailEntry[] {\n const toolEntries: PanelToolsRailEntry[] = orderPanelToolsItems(items).map(item => ({\n type: 'tool',\n id: item.id,\n item,\n }));\n const firstAccessoryById = new Map<string, PanelToolsRailAccessory>();\n for (const accessory of accessories) {\n if (accessory.id.trim() && !firstAccessoryById.has(accessory.id)) {\n firstAccessoryById.set(accessory.id, accessory);\n }\n }\n const accessoryEntries: PanelToolsRailEntry[] = Array.from(firstAccessoryById.values()).map(\n accessory => ({\n type: 'accessory',\n id: accessory.id,\n accessory,\n })\n );\n\n return [...toolEntries, ...accessoryEntries].sort((left, right) => {\n const leftPlacement =\n left.type === 'tool' ? panelToolsRailPlacement(left.item) : left.accessory.railPlacement;\n const rightPlacement =\n right.type === 'tool' ? panelToolsRailPlacement(right.item) : right.accessory.railPlacement;\n const regionDelta =\n PANEL_TOOLS_REGION_ORDER[leftPlacement] - PANEL_TOOLS_REGION_ORDER[rightPlacement];\n if (regionDelta !== 0) return regionDelta;\n\n const leftOrder = left.type === 'tool' ? panelToolsItemOrder(left.item) : left.accessory.order;\n const rightOrder =\n right.type === 'tool' ? panelToolsItemOrder(right.item) : right.accessory.order;\n return leftOrder - rightOrder;\n });\n}\n\n/** Flatten interactive entries while leaving decorative boundaries out of focus order. */\nexport function panelToolsRailFocusKeys(entries: PanelToolsRailEntry[]): string[] {\n return entries.flatMap(entry => {\n if (entry.type === 'tool') return [`tool:${entry.id}`];\n if (entry.accessory.type === 'divider') return [];\n if (entry.accessory.type === 'shortcut') {\n return entry.accessory.action.isInactive\n ? []\n : [`accessory:${entry.id}:${entry.accessory.action.id}`];\n }\n const keys = entry.accessory.primaryAction.isInactive\n ? []\n : [`accessory:${entry.id}:${entry.accessory.primaryAction.id}`];\n if (entry.accessory.secondaryAction && !entry.accessory.secondaryAction.isInactive) {\n keys.push(`accessory:${entry.id}:${entry.accessory.secondaryAction.id}`);\n }\n return keys;\n });\n}\n\n/** Preserve the current target across collection changes, or choose its nearest survivor. */\nexport function reconcilePanelToolsRovingIndex(\n previousKeys: string[],\n nextKeys: string[],\n currentIndex: number\n): number {\n if (!nextKeys.length) return 0;\n const currentKey = previousKeys[currentIndex];\n const preservedIndex = currentKey ? nextKeys.indexOf(currentKey) : -1;\n if (preservedIndex >= 0) return preservedIndex;\n for (let index = currentIndex + 1; index < previousKeys.length; index += 1) {\n const nextIndex = nextKeys.indexOf(previousKeys[index]);\n if (nextIndex >= 0) return nextIndex;\n }\n for (let index = currentIndex - 1; index >= 0; index -= 1) {\n const nextIndex = nextKeys.indexOf(previousKeys[index]);\n if (nextIndex >= 0) return nextIndex;\n }\n return Math.min(Math.max(currentIndex, 0), nextKeys.length - 1);\n}\n\nexport function panelToolsRailAccessoryActionDetail(\n accessoryId: string,\n actionId: string,\n anchor: HTMLElement\n): PanelToolsRailAccessoryActionDetail {\n return { accessoryId, actionId, anchor };\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(item: PanelToolsItem): '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/radius.css';\n@import '../../utils/control-density.css';\n@import '../../utils/chrome-layout.css';\n@import '../../utils/focus-ring.css';\n@import '../../utils/interaction-fill.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-header.panel-tools__rail-section--stacked {\n height: auto;\n min-height: var(--dimension-size-600);\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-section--stacked {\n align-items: stretch;\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.panel-tools__accessory {\n display: flex;\n flex-direction: column;\n flex: 0 0 calc(var(--dimension-size-400) * 2);\n box-sizing: border-box;\n width: 100%;\n min-height: calc(var(--dimension-size-400) * 2);\n}\n\n.panel-tools__accessory--shortcut {\n flex-basis: var(--dimension-size-400);\n min-width: var(--dimension-size-400);\n min-height: var(--dimension-size-400);\n}\n\n.panel-tools__accessory--shortcut > ds-tooltip {\n display: flex;\n flex: 1 1 auto;\n width: 100%;\n min-height: 0;\n}\n\n.panel-tools__accessory--transient {\n align-items: center;\n gap: var(--dimension-space-100);\n width: var(--dimension-size-400);\n height: calc(var(--dimension-size-400) * 2);\n min-height: calc(var(--dimension-size-400) * 2);\n padding: var(--dimension-space-050);\n border-radius: var(--dimension-radius-half);\n}\n\n.panel-tools__accessory--transient-active {\n background-color: var(--color-background-bold-brand);\n}\n\n.panel-tools__accessory--transient-positive {\n background-color: var(--color-background-bold-positive);\n}\n\n.panel-tools__accessory--transient > ds-tooltip {\n display: flex;\n flex: 0 0 var(--dimension-size-300);\n width: var(--dimension-size-300);\n height: var(--dimension-size-300);\n min-height: var(--dimension-size-300);\n}\n\n.panel-tools__shortcut {\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n border: 0;\n border-radius: var(--dimension-radius-half);\n color: var(--color-foreground-secondary);\n background: transparent;\n font: inherit;\n}\n\n.panel-tools__shortcut:disabled {\n color: var(--color-foreground-disabled);\n cursor: not-allowed;\n}\n\n.panel-tools__shortcut-content {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--dimension-size-400);\n height: var(--dimension-size-400);\n}\n\n.panel-tools__shortcut-orb {\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: var(--dimension-size-300);\n height: var(--dimension-size-300);\n border: var(--dimension-stroke-width-012) solid var(--color-border-secondary);\n border-radius: var(--dimension-radius-half);\n background: transparent;\n}\n\n.panel-tools__shortcut-dot {\n position: absolute;\n inset-block-start: calc((var(--dimension-size-400) - var(--dimension-iconography-md)) / 2);\n inset-inline-end: calc((var(--dimension-size-400) - var(--dimension-iconography-md)) / 2);\n z-index: 2;\n pointer-events: none;\n}\n\n.panel-tools__accessory-primary {\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: var(--dimension-size-300);\n height: var(--dimension-size-300);\n margin: 0;\n padding: 0;\n border: 0;\n border-radius: var(--dimension-radius-half);\n color: var(--color-foreground-on-bold-background-secondary);\n background: transparent;\n font: inherit;\n --ds-interaction-border-width: var(--dimension-stroke-width-012);\n --ds-interaction-border-color: var(--color-border-on-bold-background-secondary);\n}\n\n.panel-tools__accessory-primary:disabled {\n color: var(--color-foreground-on-bold-background-quaternary);\n cursor: not-allowed;\n}\n\n.panel-tools__accessory-primary-content {\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n width: 100%;\n height: 100%;\n}\n\n.panel-tools__accessory-image,\n.panel-tools__accessory-initial {\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n border-radius: var(--dimension-radius-half);\n}\n\n.panel-tools__accessory-image {\n object-fit: cover;\n}\n\n.panel-tools__accessory-initial {\n color: inherit;\n background: transparent;\n}\n\n.panel-tools__accessory-secondary {\n display: inline-flex;\n flex: 0 0 var(--dimension-size-300);\n width: var(--dimension-size-300);\n height: var(--dimension-size-300);\n}\n\n.panel-tools__accessory-divider {\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 100%;\n padding-block: var(--dimension-space-050);\n}\n\n.panel-tools__accessory-divider ds-divider {\n display: block;\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 { ANCHORED_OVERLAY_BOUNDARY_ATTRIBUTE } from '../../utils/anchored-overlay-boundary';\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 PanelToolsRailAccessory,\n type PanelToolsRailAccessoryAction,\n type PanelToolsRailAccessoryActionDetail,\n type PanelToolsRailShortcutAccessory,\n type PanelToolsRailTransientAccessory,\n type PanelToolsToolId,\n} from './panel-tools-types';\nimport {\n isPanelToolsToolId,\n orderPanelToolsRailEntries,\n orderPanelToolsItems,\n panelToolsRailAccessoryActionDetail,\n panelToolsRailFocusKeys,\n panelToolsDrawerAtTerminal,\n panelToolsDrawerResting,\n panelToolsDrawerTransitionMs,\n panelToolsRailPlacement,\n reconcilePanelToolsAvailability,\n reconcilePanelToolsRovingIndex,\n resolvePanelToolActivation,\n type PanelToolsRailEntry,\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 /**\n * Desktop/tablet-only application-owned rail boundaries and direct intents.\n * Set via JS property and replace the array reference to update.\n */\n @Prop() accessories: PanelToolsRailAccessory[] = [];\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 /** Direct accessory intent. Emitting this event never changes the active tool or drawer. */\n @Event({ bubbles: true, composed: true })\n dsRailAccessoryAction!: EventEmitter<PanelToolsRailAccessoryActionDetail>;\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 private get railAccessories(): PanelToolsRailAccessory[] {\n return this.accessories ?? [];\n }\n\n private get orderedRailEntries(): PanelToolsRailEntry[] {\n return orderPanelToolsRailEntries(this.railItems, this.railAccessories);\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.setAttribute(ANCHORED_OVERLAY_BOUNDARY_ATTRIBUTE, '');\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 @Watch('accessories')\n accessoriesChanged(\n next: PanelToolsRailAccessory[] = [],\n previous: PanelToolsRailAccessory[] = []\n ) {\n const previousKeys = panelToolsRailFocusKeys(\n orderPanelToolsRailEntries(this.railItems, previous)\n );\n const nextKeys = panelToolsRailFocusKeys(orderPanelToolsRailEntries(this.railItems, next));\n const activeElement = (this.renderRoot as ShadowRoot).activeElement as HTMLElement | null;\n const focusedKey =\n activeElement?.closest<HTMLElement>('[data-rail-focus-key]')?.dataset.railFocusKey;\n const focusedIndex = focusedKey ? previousKeys.indexOf(focusedKey) : -1;\n const currentIndex = focusedIndex >= 0 ? focusedIndex : this.rovingIndex;\n const nextIndex = reconcilePanelToolsRovingIndex(previousKeys, nextKeys, currentIndex);\n const restoreFocus = focusedIndex >= 0 && !nextKeys.includes(focusedKey ?? '');\n this.rovingIndex = nextIndex;\n if (restoreFocus && nextKeys.length) {\n requestAnimationFrame(() => this.focusRailAt(nextIndex));\n }\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 keys = panelToolsRailFocusKeys(this.orderedRailEntries);\n if (!keys.length) return;\n const bounded = Math.max(0, Math.min(index, keys.length - 1));\n this.rovingIndex = bounded;\n const action = this.renderRoot.querySelector(\n `[data-rail-focus-key=\"${CSS.escape(keys[bounded])}\"]`\n ) as (HTMLElement & { setFocus?: () => Promise<void> }) | null;\n if (action?.setFocus) {\n void action.setFocus();\n } else {\n action?.focus({ preventScroll: true });\n }\n }\n\n private handleRailKeyDown = (e: KeyboardEvent, index: number, activate?: () => void) => {\n const keys = panelToolsRailFocusKeys(this.orderedRailEntries);\n if (!keys.length) return;\n\n if ((e.key === 'Enter' || e.key === ' ') && activate) {\n e.preventDefault();\n activate();\n return;\n }\n\n if (e.key === 'ArrowDown') {\n if (index >= keys.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 focusKey = `tool:${item.id}`;\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 ?? 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 data-rail-focus-key={focusKey}\n aria-label={label}\n pressed={this.isRailSelected(item.id)}\n onFocusin={() => {\n this.rovingIndex = index;\n }}\n onKeyDown={(e: KeyboardEvent) =>\n this.handleRailKeyDown(e, index, () => this.handleToolChange(item.id))\n }\n onDsClick={() => this.handleToolChange(item.id)}\n />\n </ds-tooltip>\n );\n }\n\n private accessoryPrimaryLabel(accessory: PanelToolsRailTransientAccessory): string {\n const actionLabel = accessory.primaryAction.ariaLabel?.trim() || accessory.ariaLabel;\n const status = accessory.statusText.trim();\n return status ? `${actionLabel}. ${status}` : actionLabel;\n }\n\n private emitAccessoryAction(\n accessoryId: string,\n action: PanelToolsRailAccessoryAction,\n anchor: HTMLElement\n ) {\n if (action.isInactive) return;\n this.dsRailAccessoryAction.emit(\n panelToolsRailAccessoryActionDetail(accessoryId, action.id, anchor)\n );\n }\n\n private renderAccessoryVisual(accessory: PanelToolsRailTransientAccessory) {\n if (accessory.visual.type === 'image') {\n return (\n <img\n class=\"panel-tools__accessory-image\"\n src={accessory.visual.src}\n alt=\"\"\n aria-hidden=\"true\"\n />\n );\n }\n if (accessory.visual.type === 'initial') {\n const initial = [...accessory.visual.initial.trim()].slice(0, 2).join('');\n return (\n <ds-text\n class=\"panel-tools__accessory-initial\"\n as=\"span\"\n variant=\"text-caption\"\n emphasis\n color=\"inherit\"\n aria-hidden=\"true\"\n >\n {initial}\n </ds-text>\n );\n }\n return <ds-icon name={accessory.visual.icon} size=\"sm\" aria-hidden=\"true\" />;\n }\n\n private renderRailShortcut(\n accessory: PanelToolsRailShortcutAccessory,\n focusIndexes: Map<string, number>\n ) {\n const focusKey = `accessory:${accessory.id}:${accessory.action.id}`;\n const focusIndex = focusIndexes.get(focusKey);\n const label = accessory.action.ariaLabel?.trim() || accessory.ariaLabel;\n const initials = [...accessory.initials.trim()].slice(0, 2).join('');\n\n return (\n <div\n key={`accessory:${accessory.id}`}\n class=\"panel-tools__accessory panel-tools__accessory--shortcut\"\n >\n <ds-tooltip label={label} side=\"left\" size=\"sm\" boundary=\"viewport\">\n <button\n type=\"button\"\n class=\"panel-tools__shortcut ds-focus-ring-inset ds-interaction-fill\"\n disabled={accessory.action.isInactive}\n tabIndex={focusIndex === this.rovingIndex ? 0 : -1}\n data-rail-focus-key={focusKey}\n aria-label={label}\n onFocus={() => {\n if (focusIndex !== undefined) this.rovingIndex = focusIndex;\n }}\n onKeyDown={(event: KeyboardEvent) =>\n focusIndex === undefined ? undefined : this.handleRailKeyDown(event, focusIndex)\n }\n onClick={(event: MouseEvent) =>\n this.emitAccessoryAction(\n accessory.id,\n accessory.action,\n event.currentTarget as HTMLElement\n )\n }\n >\n <span class=\"panel-tools__shortcut-content ds-interaction-fill__content\">\n <ds-text\n class=\"panel-tools__shortcut-orb\"\n as=\"span\"\n variant=\"text-caption\"\n emphasis\n color=\"inherit\"\n >\n {initials}\n </ds-text>\n {accessory.dot ? (\n <ds-badge\n class=\"panel-tools__shortcut-dot\"\n variant=\"dot\"\n background=\"var(--color-background-secondary)\"\n aria-hidden=\"true\"\n />\n ) : null}\n </span>\n </button>\n </ds-tooltip>\n </div>\n );\n }\n\n private renderRailAccessory(\n accessory: PanelToolsRailAccessory,\n focusIndexes: Map<string, number>\n ) {\n if (accessory.type === 'divider') {\n return (\n <div\n key={`accessory:${accessory.id}`}\n class=\"panel-tools__accessory-divider\"\n aria-hidden=\"true\"\n >\n <ds-divider />\n </div>\n );\n }\n\n if (accessory.type === 'shortcut') {\n return this.renderRailShortcut(accessory, focusIndexes);\n }\n\n const primaryKey = `accessory:${accessory.id}:${accessory.primaryAction.id}`;\n const primaryIndex = focusIndexes.get(primaryKey);\n const primaryLabel = this.accessoryPrimaryLabel(accessory);\n const secondary = accessory.secondaryAction;\n const secondaryKey = secondary ? `accessory:${accessory.id}:${secondary.id}` : '';\n const secondaryIndex = secondary ? focusIndexes.get(secondaryKey) : undefined;\n\n return (\n <div\n key={`accessory:${accessory.id}`}\n class={{\n 'panel-tools__accessory': true,\n 'panel-tools__accessory--transient': true,\n 'panel-tools__accessory--transient-active': accessory.statusTone === 'active',\n 'panel-tools__accessory--transient-positive': accessory.statusTone === 'positive',\n }}\n >\n <ds-tooltip label={primaryLabel} side=\"left\" size=\"sm\" boundary=\"viewport\">\n <button\n type=\"button\"\n class=\"panel-tools__accessory-primary ds-focus-ring-inset ds-interaction-fill ds-interaction-fill--on-bold\"\n disabled={accessory.primaryAction.isInactive}\n tabIndex={primaryIndex === this.rovingIndex ? 0 : -1}\n data-rail-focus-key={primaryKey}\n aria-label={primaryLabel}\n onFocus={() => {\n if (primaryIndex !== undefined) this.rovingIndex = primaryIndex;\n }}\n onKeyDown={(event: KeyboardEvent) =>\n primaryIndex === undefined ? undefined : this.handleRailKeyDown(event, primaryIndex)\n }\n onClick={(event: MouseEvent) =>\n this.emitAccessoryAction(\n accessory.id,\n accessory.primaryAction,\n event.currentTarget as HTMLElement\n )\n }\n >\n <span class=\"panel-tools__accessory-primary-content ds-interaction-fill__content\">\n {this.renderAccessoryVisual(accessory)}\n </span>\n </button>\n </ds-tooltip>\n {secondary ? (\n <ds-tooltip label={secondary.ariaLabel} side=\"left\" size=\"sm\" boundary=\"viewport\">\n <ds-button-unfilled\n class=\"panel-tools__accessory-secondary\"\n variant=\"icon\"\n size=\"sm\"\n rounded\n background=\"bold\"\n hasBorder={false}\n icon={secondary.icon}\n isInactive={secondary.isInactive}\n focusTabIndex={secondaryIndex === this.rovingIndex ? 0 : -1}\n data-rail-focus-key={secondaryKey}\n aria-label={secondary.ariaLabel}\n onFocusin={() => {\n if (secondaryIndex !== undefined) this.rovingIndex = secondaryIndex;\n }}\n onKeyDown={(event: KeyboardEvent) =>\n secondaryIndex === undefined\n ? undefined\n : this.handleRailKeyDown(event, secondaryIndex)\n }\n onDsClick={(event: CustomEvent<MouseEvent>) =>\n this.emitAccessoryAction(\n accessory.id,\n secondary,\n event.currentTarget as HTMLElement\n )\n }\n />\n </ds-tooltip>\n ) : null}\n </div>\n );\n }\n\n private renderRailEntry(entry: PanelToolsRailEntry, focusIndexes: Map<string, number>) {\n if (entry.type === 'tool') {\n return this.renderRailAction(entry.item, focusIndexes.get(`tool:${entry.id}`) ?? 0);\n }\n return this.renderRailAccessory(entry.accessory, focusIndexes);\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 orderedRailEntries = this.orderedRailEntries;\n const entryPlacement = (entry: PanelToolsRailEntry) =>\n entry.type === 'tool' ? panelToolsRailPlacement(entry.item) : entry.accessory.railPlacement;\n const headerEntries = orderedRailEntries.filter(entry => entryPlacement(entry) === 'header');\n const bodyEntries = orderedRailEntries.filter(entry => entryPlacement(entry) === 'body');\n const footerEntries = orderedRailEntries.filter(entry => entryPlacement(entry) === 'footer');\n const focusIndexes = new Map(\n panelToolsRailFocusKeys(orderedRailEntries).map((key, index) => [key, index])\n );\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 data-ds-overlay-boundary\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 {headerEntries.length ? (\n <div\n class={{\n 'panel-tools__rail-header': true,\n 'panel-tools__rail-section--stacked': headerEntries.length > 1,\n 'ds-chrome-row': headerEntries.length === 1,\n 'ds-chrome-column': headerEntries.length > 1,\n 'ds-chrome-space--md': true,\n }}\n >\n {headerEntries.map(entry => this.renderRailEntry(entry, focusIndexes))}\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 {bodyEntries.map(entry => this.renderRailEntry(entry, focusIndexes))}\n </div>\n </div>\n {footerEntries.length ? (\n <div\n class={{\n 'panel-tools__rail-footer': true,\n 'panel-tools__rail-section--stacked': footerEntries.length > 1,\n 'ds-chrome-row': footerEntries.length === 1,\n 'ds-chrome-column': footerEntries.length > 1,\n 'ds-chrome-space--md': true,\n }}\n >\n {footerEntries.map(entry => this.renderRailEntry(entry, focusIndexes))}\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":"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","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{p as t,H as e,h as s,a,t as c}from"./index.js";import{d as i}from"./p-Cea7rROU.js";import{d}from"./p-B9oadFSC.js";const n=()=>`.sc-ds-empty-state-h{display:block;width:100%;height:100%}.sc-ds-empty-state-h,.empty-state.sc-ds-empty-state,.empty-state__text.sc-ds-empty-state{box-sizing:border-box}.empty-state.sc-ds-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--dimension-space-100);height:100%;width:100%;text-align:center}.empty-state__icon.sc-ds-empty-state{flex:0 0 auto}.empty-state__text.sc-ds-empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--dimension-space-050);width:100%}`;const o=t(class t extends e{constructor(t){super();if(t!==false){this.__registerHost()}this.body=""}render(){const t=Boolean(this.heading?.trim());const e=t&&Boolean(this.icon);return s(a,{key:"cdfa4a379c4127b747f59bc77e187deea199427d"},s("div",{key:"0ef2e9c8a4093404062bd3a4a6cc7bb88d6ee49f",class:"empty-state"},e&&s("ds-icon",{key:"0f3e9dc1e28c84a59834cfac1ad2b1a679ed211d",class:"empty-state__icon",name:this.icon,size:"xl",color:"primary"}),s("div",{key:"4cafacdf4d7bef11670bb8f303c977c2f000ea1d",class:"empty-state__text"},t&&s("ds-text",{key:"f4c01099e652a72d40c66a43a61ac15247b65700",class:"empty-state__title",as:"div",variant:"text-title-small",color:"primary",align:"center"},this.heading),this.body&&s("ds-text",{key:"9d08850910d7bde5894c23f2d2df0ea065770c42",class:"empty-state__body",as:"p",variant:"text-body-medium",color:"secondary",align:"center"},this.body))))}static get style(){return n()}},[2,"ds-empty-state",{icon:[1],heading:[1],body:[1]}]);function m(){if(typeof customElements==="undefined"){return}const t=["ds-empty-state","ds-icon","ds-text"];t.forEach((t=>{switch(t){case"ds-empty-state":if(!customElements.get(c(t))){customElements.define(c(t),o)}break;case"ds-icon":if(!customElements.get(c(t))){i()}break;case"ds-text":if(!customElements.get(c(t))){d()}break}}))}m();export{o as E,m as d};
|
|
2
|
-
//# sourceMappingURL=p-DzHXk0IG.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{p as e,H as s,c as o,h as d,a,t as n}from"./index.js";import{d as i}from"./p-DQpw21HO.js";import{d as r}from"./p-CD9AbaHQ.js";import{d as l}from"./p-Cea7rROU.js";import{d as t}from"./p-0XTyQNRG.js";import{d as c}from"./p-B9oadFSC.js";import{d as h}from"./p-14sMoeTr.js";const p=()=>`.sc-ds-panel-tool-header-h,.sc-ds-panel-tool-header:where(.ds-table),.sc-ds-panel-tool-header:where(.tooltip-popup),.sc-ds-panel-tool-header:where(.ds-radius){--ds-radius-control:var(--dimension-radius-025);--ds-radius-card:var(--dimension-radius-050);--ds-radius-modal:var(--dimension-radius-050);--ds-radius-menu:var(--dimension-radius-075);--ds-radius-tooltip-control:var(--dimension-radius-025);--ds-radius-tooltip-menu:var(--dimension-radius-075);--ds-radius-table:var(--dimension-radius-050)}.ds-control--lg.sc-ds-panel-tool-header,.ds-control--lg.sc-ds-panel-tool-header-h,.ds-control--md.sc-ds-panel-tool-header-h,.ds-control--md.sc-ds-panel-tool-header,.ds-control--sm.sc-ds-panel-tool-header-h,.ds-control--sm.sc-ds-panel-tool-header,.ds-control--xs.sc-ds-panel-tool-header-h,.ds-control--xs.sc-ds-panel-tool-header{--ds-control-radius:var(--ds-radius-control)}.ds-control--lg.sc-ds-panel-tool-header-h,.ds-control--lg.sc-ds-panel-tool-header{--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-panel-tool-header-h,.ds-control--md.sc-ds-panel-tool-header{--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-panel-tool-header-h,.ds-control--sm.sc-ds-panel-tool-header{--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-panel-tool-header-h,.ds-control--xs.sc-ds-panel-tool-header{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0}.ds-control--lg.sc-ds-panel-tool-header,.ds-control--lg.sc-ds-panel-tool-header-h,.ds-control--md.sc-ds-panel-tool-header-h,.ds-control--md.sc-ds-panel-tool-header,.ds-control--sm.sc-ds-panel-tool-header-h,.ds-control--sm.sc-ds-panel-tool-header,.ds-control--xs.sc-ds-panel-tool-header-h,.ds-control--xs.sc-ds-panel-tool-header{--ds-control-radius:var(--ds-radius-control)}.ds-control--lg.sc-ds-panel-tool-header-h,.ds-control--lg.sc-ds-panel-tool-header{--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-panel-tool-header-h,.ds-control--md.sc-ds-panel-tool-header{--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-panel-tool-header-h,.ds-control--sm.sc-ds-panel-tool-header{--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-panel-tool-header-h,.ds-control--xs.sc-ds-panel-tool-header{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0}.ds-chrome-header.sc-ds-panel-tool-header{display:flex;align-items:center;box-sizing:border-box;min-width:0;min-block-size:var(--dimension-size-600);padding:var(--dimension-space-100);gap:var(--dimension-space-100)}.ds-chrome-header--wrapping.sc-ds-panel-tool-header{flex-wrap:wrap}.ds-chrome-header--bounded.sc-ds-panel-tool-header{border-block-end:var(--dimension-stroke-width-012) solid var(--color-border-tertiary)}.ds-chrome-header__leading.sc-ds-panel-tool-header,.ds-chrome-header__trailing.sc-ds-panel-tool-header{display:flex;align-items:center;flex:0 0 auto;min-width:0}.ds-chrome-header__trailing.sc-ds-panel-tool-header{margin-inline-start:auto;gap:var(--dimension-space-100)}.ds-chrome-header__copy.sc-ds-panel-tool-header{display:flex;flex:1 1 0;min-width:0;padding:var(--ds-control-padding-inline, var(--dimension-space-075));box-sizing:border-box}.ds-chrome-header__copy--wrapping.sc-ds-panel-tool-header{align-items:baseline;flex-wrap:wrap;column-gap:var(--dimension-space-100);row-gap:var(--dimension-space-050)}.ds-chrome-header__copy--stacked.sc-ds-panel-tool-header{align-items:stretch;flex-direction:column;gap:var(--dimension-space-050)}.ds-chrome-header__heading.sc-ds-panel-tool-header,.ds-chrome-header__description.sc-ds-panel-tool-header{width:auto;min-width:0;padding-inline:var(--ds-control-label-inset, var(--dimension-space-025));box-sizing:border-box}.ds-chrome-header__heading.sc-ds-panel-tool-header{flex:0 1 auto}.ds-chrome-header__copy--wrapping.sc-ds-panel-tool-header .ds-chrome-header__description.sc-ds-panel-tool-header{flex:1 1 var(--dimension-card-width-xs)}.sc-ds-panel-tool-header-h{display:block;flex:0 0 auto;box-sizing:border-box}.panel-tool-header.sc-ds-panel-tool-header{height:var(--dimension-size-600);color:var(--color-foreground-primary);-webkit-user-select:none;user-select:none}.panel-tool-header__leading.sc-ds-panel-tool-header:empty,.panel-tool-header__trailing.sc-ds-panel-tool-header:empty{display:none}.panel-tool-header__trailing.sc-ds-panel-tool-header{gap:var(--dimension-space-050);justify-content:flex-end}ds-text.panel-tool-header__heading.sc-ds-panel-tool-header{display:inline-flex;flex:1 1 0;align-items:center;width:auto;min-width:0;height:var(--ds-control-height);padding-inline:calc(var(--ds-control-padding-inline) + var(--ds-control-label-inset));box-sizing:border-box;text-align:left;-webkit-user-select:none;user-select:none}`;const m=e(class e extends s{constructor(e){super();if(e!==false){this.__registerHost()}this.dsBack=o(this,"dsBack",7);this.dsMenuToggle=o(this,"dsMenuToggle",7);this.dsAction=o(this,"dsAction",7);this.heading="";this.showBack=false;this.backIcon="ChevronLeft";this.backAriaLabel="Back";this.showMenu=true;this.menuAriaLabel="More options";this.menuTriggerId="";this.menuExpanded=false;this.actions=[]}async focusMenuTrigger(){const e=this.el.querySelector('ds-button-unfilled.panel-tool-header__menu, ds-button-unfilled[data-header-action-id="menu"]');await(e?.setFocus?.())}render(){const e=this.actions.length>0;const s=e?this.actions:this.showMenu?[{id:"menu",icon:"Ellipses",ariaLabel:this.menuAriaLabel,triggerId:this.menuTriggerId,controls:this.menuControls,expanded:this.menuExpanded,surfaceOpen:this.menuSurfaceOpen,haspopup:"menu"}]:[];return d(a,{key:"96ed1a6c7323c6345bdb8bb1c890ebacad9b76d2"},d("header",{key:"f9749e5d4a33007326e9a60546c15b3d9b17afbf",class:"panel-tool-header ds-chrome-header ds-chrome-header--bounded"},d("div",{key:"15c544cce7fd79b31bc237875429c14916a11518",class:"panel-tool-header__leading ds-chrome-header__leading"},this.showBack?d("ds-tooltip",{label:this.backAriaLabel,side:"bottom",size:"sm"},d("ds-button-unfilled",{class:"panel-tool-header__back",variant:"icon",icon:this.backIcon,size:"md","aria-label":this.backAriaLabel,activeFill:false,hasBorder:false,onDsClick:e=>this.dsBack.emit(e.detail)})):null),d("ds-text",{key:"6fd4334fbf517d9a8255fc2e3a3d7d5b54dd2607",class:"panel-tool-header__heading ds-chrome-header__heading ds-control--md",as:"h2",variant:"text-body-medium",emphasis:true,color:"primary",lineTruncation:1},this.heading),d("div",{key:"90349d55975576e248afbe3528ab15f1d2e35e04",class:"panel-tool-header__trailing ds-chrome-header__trailing"},s.map((s=>d("ds-tooltip",{key:s.id,label:s.ariaLabel,side:"bottom",size:"sm"},d("ds-button-unfilled",{id:s.triggerId||undefined,"data-header-action-id":s.id,class:{"panel-tool-header__action":true,"panel-tool-header__menu":s.id==="menu"},variant:"icon",icon:s.icon,size:"md","aria-label":s.ariaLabel,haspopup:s.haspopup,controls:s.controls,expanded:s.expanded,surfaceOpen:s.surfaceOpen,pressed:s.pressed,isInactive:s.isInactive,activeFill:false,hasBorder:false,onDsClick:o=>{if(!e&&s.id==="menu")this.dsMenuToggle.emit(o.detail);this.dsAction.emit({id:s.id,originalEvent:o.detail,anchor:o.currentTarget})}})))))))}get el(){return this}static get style(){return p()}},[2,"ds-panel-tool-header",{heading:[1],showBack:[4,"show-back"],backIcon:[1,"back-icon"],backAriaLabel:[1,"back-aria-label"],showMenu:[4,"show-menu"],menuAriaLabel:[1,"menu-aria-label"],menuTriggerId:[1,"menu-trigger-id"],menuControls:[1,"menu-controls"],menuExpanded:[4,"menu-expanded"],menuSurfaceOpen:[4,"menu-surface-open"],actions:[16],focusMenuTrigger:[64]}]);function g(){if(typeof customElements==="undefined"){return}const e=["ds-panel-tool-header","ds-badge","ds-button-unfilled","ds-icon","ds-loader","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-panel-tool-header":if(!customElements.get(n(e))){customElements.define(n(e),m)}break;case"ds-badge":if(!customElements.get(n(e))){i()}break;case"ds-button-unfilled":if(!customElements.get(n(e))){r()}break;case"ds-icon":if(!customElements.get(n(e))){l()}break;case"ds-loader":if(!customElements.get(n(e))){t()}break;case"ds-text":if(!customElements.get(n(e))){c()}break;case"ds-tooltip":if(!customElements.get(n(e))){h()}break}}))}g();export{m as P,g as d};
|
|
2
|
-
//# sourceMappingURL=p-skVhQk9d.js.map
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|