@ds-mo/ui 13.6.0 → 13.6.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 +2 -2
- package/dist/agent.json +4 -4
- package/dist/components/ds-banner.js +1 -1
- package/dist/components/ds-banner.js.map +1 -1
- package/dist/components/ds-mobile-bar-nav.js +1 -1
- package/dist/components/ds-shell-app.js +1 -1
- package/dist/components/{p-BtuYufL3.js → p-CzraIk34.js} +2 -2
- package/dist/components/p-CzraIk34.js.map +1 -0
- package/dist/docs/components.json +1 -1
- package/dist/mcp-data/registry/banner.json +2 -2
- package/dist/mcp-data/registry/mobile-bar-nav.json +3 -3
- package/dist/mcp-data/registry/registry.json +3 -3
- package/package.json +1 -1
- package/dist/components/p-BtuYufL3.js.map +0 -1
package/dist/.package-ready.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"schemaVersion":1,"package":"@ds-mo/ui","version":"13.6.
|
|
1
|
+
{"schemaVersion":1,"package":"@ds-mo/ui","version":"13.6.1","components":67,"digest":"860dd632a0ab5a430878b0c760667f3f3d49e5097bbd9db8d879edfe4e55c8cd","completedAt":"2026-08-02T03:35:46.739Z"}
|
package/dist/agent-patterns.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
3
|
"package": "@ds-mo/ui",
|
|
4
|
-
"packageVersion": "13.6.
|
|
4
|
+
"packageVersion": "13.6.1",
|
|
5
5
|
"kind": "patterns",
|
|
6
6
|
"entries": [
|
|
7
7
|
{
|
|
@@ -163,7 +163,7 @@
|
|
|
163
163
|
"responsiveBehavior": [
|
|
164
164
|
"ShellApp automatically resolves desktop at 1200px and wider, tablet from 768px through 1199px, and mobile below 768px.",
|
|
165
165
|
"Desktop and tablet use PanelNav, BarNav, PanelTools through ShellTools, and ShellPage chrome.",
|
|
166
|
-
"Mobile uses MobileSheetNav, MobileBarNav, MobileHeader, ShellTools mobile presentation, and the same routed content owner.",
|
|
166
|
+
"Mobile uses MobileSheetNav, MobileBarNav, MobileHeader, ShellTools mobile presentation, and the same routed content owner. MobileBarNav paints its primary surface through the bottom safe-area inset so light browser chrome and application chrome meet without a secondary-surface seam.",
|
|
167
167
|
"An optional Banner spans the complete application above desktop navigation, workspace, tools, and mobile global surfaces while remaining below the operating-system top safe area.",
|
|
168
168
|
"Switching breakpoints changes presentation and inert state without recreating route or tool elements.",
|
|
169
169
|
"Messages, Stacks, and Activity use explicit mobile grouping metadata and default to the canonical Inbox recipe."
|
package/dist/agent.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
3
|
"package": "@ds-mo/ui",
|
|
4
|
-
"packageVersion": "13.6.
|
|
4
|
+
"packageVersion": "13.6.1",
|
|
5
5
|
"kind": "components",
|
|
6
6
|
"entries": [
|
|
7
7
|
{
|
|
@@ -676,7 +676,7 @@
|
|
|
676
676
|
"Banner has a real bottom boundary, no radius, no elevation, no icon, no timeout, and no internal queue."
|
|
677
677
|
],
|
|
678
678
|
"responsiveBehavior": [
|
|
679
|
-
"Applications select orientation explicitly. Horizontal keeps copy and actions in one row, with actions top-aligned to dismissal. Vertical puts actions below copy on the 16px text boundary and keeps controls 16px above the bottom boundary.",
|
|
679
|
+
"Applications select orientation explicitly. Horizontal keeps copy and actions in one row, with actions top-aligned to dismissal. Vertical puts actions below copy on the 16px text boundary and keeps controls 16px above the bottom boundary; without actions it reserves no trailing row and keeps the copy visually balanced between the top and bottom edges.",
|
|
680
680
|
"When placed in ShellApp's banner slot, the banner spans the complete application above navigation, workspace, and tools.",
|
|
681
681
|
"ShellApp reserves the mobile top safe area once above the banner and keeps the banner visible while mobile tools or navigation surfaces replace the routed stage."
|
|
682
682
|
],
|
|
@@ -4904,8 +4904,8 @@
|
|
|
4904
4904
|
"Direct touch paints the pressed overlay immediately, keeps a quick tap visible for one short frame, and clears it after release or cancellation without relying on Safari's latch-prone active state."
|
|
4905
4905
|
],
|
|
4906
4906
|
"responsiveBehavior": [
|
|
4907
|
-
"Render only below the mobile breakpoint; its
|
|
4908
|
-
"The
|
|
4907
|
+
"Render only below the mobile breakpoint; its primary surface extends through the bottom safe-area inset when the application enables viewport-fit=cover.",
|
|
4908
|
+
"The primary-background bar keeps an 8px outer inset; its two icon-only groups anchor to opposite edges while retaining fixed 40px targets and a divider between Menu and current area.",
|
|
4909
4909
|
"Bar chrome and its divider are not text-selectable and suppress the iOS touch callout."
|
|
4910
4910
|
],
|
|
4911
4911
|
"references": [
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{p as n,H as e,c as r,h as a,a as s,t as o}from"./index.js";import{d as i}from"./p-IYy-jODg.js";import{d}from"./p-BR_oMaas.js";import{d as t}from"./p-BAfG3M8z.js";import{d as c}from"./p-Ca-I2UnB.js";import{d as b}from"./p-Bb4f5SuF.js";import{d as l}from"./p-D2cjoj2r.js";import{a as h}from"./p-B6Vuayt6.js";import{T as u}from"./p-C4uYvyq6.js";const g=()=>`@media (forced-colors: active){.sc-ds-banner:root,.sc-ds-banner-h,.ds-forced-colors-scope.sc-ds-banner{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.ds-control--lg.sc-ds-banner,.ds-control--lg.sc-ds-banner-h,.ds-control--md.sc-ds-banner-h,.ds-control--md.sc-ds-banner,.ds-control--sm.sc-ds-banner-h,.ds-control--sm.sc-ds-banner,.ds-control--xs.sc-ds-banner-h,.ds-control--xs.sc-ds-banner{--ds-control-radius:var(--dimension-radius-025)}.ds-control--lg.sc-ds-banner-h,.ds-control--lg.sc-ds-banner{--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-banner-h,.ds-control--md.sc-ds-banner{--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-banner-h,.ds-control--sm.sc-ds-banner{--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-banner-h,.ds-control--xs.sc-ds-banner{--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-banner{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-banner{flex-wrap:wrap}.ds-chrome-header--bounded.sc-ds-banner{border-block-end:var(--dimension-stroke-width-012) solid var(--color-border-tertiary)}.ds-chrome-header__leading.sc-ds-banner,.ds-chrome-header__trailing.sc-ds-banner{display:flex;align-items:center;flex:0 0 auto;min-width:0}.ds-chrome-header__trailing.sc-ds-banner{margin-inline-start:auto;gap:var(--dimension-space-100)}.ds-chrome-header__copy.sc-ds-banner{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-banner{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-banner{align-items:stretch;flex-direction:column;gap:var(--dimension-space-050)}.ds-chrome-header__heading.sc-ds-banner,.ds-chrome-header__description.sc-ds-banner{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-banner{flex:0 1 auto}.ds-chrome-header__copy--wrapping.sc-ds-banner .ds-chrome-header__description.sc-ds-banner{flex:1 1 var(--dimension-card-width-xs)}.sc-ds-banner-h{display:grid;overflow:hidden;min-width:0;grid-template-rows:0fr;transition:grid-template-rows var(--effect-animation-duration-short-3) var(--_banner-motion-easing);--ds-banner-background:var(--color-background-faint-neutral);--ds-banner-heading:var(--color-foreground-primary);--ds-banner-description:var(--color-foreground-secondary);--ds-banner-border:var(--color-border-tertiary);--_banner-motion-easing:var(--effect-animation-easing-ease-in-out, ease)}.banner--open.sc-ds-banner-h{grid-template-rows:1fr;--_banner-motion-easing:var(--effect-animation-easing-ease-out, ease-out)}.banner--closing.sc-ds-banner-h{--_banner-motion-easing:var(--effect-animation-easing-ease-in, ease-in)}.banner--hidden.sc-ds-banner-h{display:none}.banner-overflow.sc-ds-banner{min-height:0;overflow:visible}.banner-surface.sc-ds-banner{display:flex;position:relative;width:100%;padding-inline-end:calc(var(--dimension-size-400) + var(--dimension-space-200));color:var(--ds-banner-description);background-color:var(--ds-banner-background);border-bottom:var(--dimension-stroke-width-012) solid var(--ds-banner-border);transform:translateY(-100%);transition:transform var(--effect-animation-duration-short-3) var(--_banner-motion-easing)}.banner--open.sc-ds-banner-h .banner-surface.sc-ds-banner{transform:translateY(0)}.banner-copy.sc-ds-banner{flex-basis:var(--dimension-card-width-sm)}.banner--orientation-horizontal.sc-ds-banner-h .banner-surface.sc-ds-banner{flex-wrap:nowrap}.banner--orientation-vertical.sc-ds-banner-h .banner-copy.sc-ds-banner{flex-basis:100%}.banner-copy-flow.sc-ds-banner{box-sizing:border-box;min-width:0;padding-inline:var(--ds-control-label-inset, var(--dimension-space-025));color:var(--ds-banner-description)}.banner-heading.sc-ds-banner{display:inline-block;width:auto;max-width:100%;margin-inline-end:var(--dimension-space-100);vertical-align:baseline;color:var(--ds-banner-heading)}.banner-description.sc-ds-banner{color:var(--ds-banner-description)}.banner-actions.sc-ds-banner{display:flex;align-items:center;flex:0 0 auto;flex-wrap:nowrap;min-width:0;gap:var(--dimension-space-100)}.banner-actions.sc-ds-banner slot.sc-ds-banner{display:contents}.banner-actions.sc-ds-banner-s>:not(ds-button-unfilled),.banner-actions .sc-ds-banner-s>:not(ds-button-unfilled),.banner-actions.sc-ds-banner-s>ds-button-unfilled:nth-of-type(n+3),.banner-actions .sc-ds-banner-s>ds-button-unfilled:nth-of-type(n+3){display:none}.banner-actions--empty.sc-ds-banner{display:none}.banner-trailing.sc-ds-banner{align-self:flex-start;flex-wrap:nowrap}.banner--orientation-vertical.banner--has-actions.sc-ds-banner-h .banner-trailing.sc-ds-banner{margin-inline:var(--dimension-space-100) auto;padding-block-end:var(--dimension-space-100);box-sizing:border-box}.banner--orientation-vertical.sc-ds-banner-h .banner-description.sc-ds-banner{display:block}.banner--orientation-vertical.sc-ds-banner-h .banner-heading.sc-ds-banner+.banner-description.sc-ds-banner{margin-block-start:var(--dimension-space-050)}.banner-close.sc-ds-banner{flex:0 0 auto}.banner-dismiss.sc-ds-banner{position:absolute;inset-block-start:var(--dimension-space-100);inset-inline-end:var(--dimension-space-100)}.banner--intent-neutral.sc-ds-banner-h{--ds-banner-faint-background:var(--color-background-faint-neutral)}.banner--intent-brand.sc-ds-banner-h{--ds-banner-faint-background:var(--color-background-faint-brand)}.banner--intent-positive.sc-ds-banner-h{--ds-banner-faint-background:var(--color-background-faint-positive)}.banner--intent-warning.sc-ds-banner-h{--ds-banner-faint-background:var(--color-background-faint-warning)}.banner--intent-caution.sc-ds-banner-h{--ds-banner-faint-background:var(--color-background-faint-caution)}.banner--intent-negative.sc-ds-banner-h{--ds-banner-faint-background:var(--color-background-faint-negative)}.banner--contrast-faint.sc-ds-banner-h{--ds-banner-background:var(--ds-banner-faint-background);--ds-banner-heading:var(--color-foreground-primary);--ds-banner-description:var(--color-foreground-secondary);--ds-banner-border:var(--color-border-tertiary)}.banner--contrast-medium.sc-ds-banner-h{--ds-banner-background:var(--color-background-medium-neutral);--ds-banner-heading:var(--color-foreground-on-medium-background-primary);--ds-banner-description:var(--color-foreground-on-medium-background-secondary);--ds-banner-border:var(--color-border-on-medium-background-tertiary)}.banner--intent-brand.banner--contrast-medium.sc-ds-banner-h{--ds-banner-background:var(--color-background-medium-brand)}.banner--intent-positive.banner--contrast-medium.sc-ds-banner-h{--ds-banner-background:var(--color-background-medium-positive)}.banner--intent-warning.banner--contrast-medium.sc-ds-banner-h{--ds-banner-background:var(--color-background-medium-warning)}.banner--intent-caution.banner--contrast-medium.sc-ds-banner-h{--ds-banner-background:var(--color-background-medium-caution)}.banner--intent-negative.banner--contrast-medium.sc-ds-banner-h{--ds-banner-background:var(--color-background-medium-negative)}.banner--contrast-strong.sc-ds-banner-h{--ds-banner-background:var(--color-background-strong-neutral);--ds-banner-heading:var(--color-foreground-on-strong-background-primary);--ds-banner-description:var(--color-foreground-on-strong-background-secondary);--ds-banner-border:var(--color-border-on-strong-background-tertiary)}.banner--intent-brand.banner--contrast-strong.sc-ds-banner-h{--ds-banner-background:var(--color-background-strong-brand)}.banner--intent-positive.banner--contrast-strong.sc-ds-banner-h{--ds-banner-background:var(--color-background-strong-positive)}.banner--intent-warning.banner--contrast-strong.sc-ds-banner-h{--ds-banner-background:var(--color-background-strong-warning)}.banner--intent-caution.banner--contrast-strong.sc-ds-banner-h{--ds-banner-background:var(--color-background-strong-caution)}.banner--intent-negative.banner--contrast-strong.sc-ds-banner-h{--ds-banner-background:var(--color-background-strong-negative)}.banner--contrast-bold.sc-ds-banner-h{--ds-banner-background:var(--color-background-bold-neutral);--ds-banner-heading:var(--color-foreground-on-bold-background-primary);--ds-banner-description:var(--color-foreground-on-bold-background-secondary);--ds-banner-border:var(--color-border-on-bold-background-tertiary)}.banner--intent-brand.banner--contrast-bold.sc-ds-banner-h{--ds-banner-background:var(--color-background-bold-brand)}.banner--intent-positive.banner--contrast-bold.sc-ds-banner-h{--ds-banner-background:var(--color-background-bold-positive)}.banner--intent-warning.banner--contrast-bold.sc-ds-banner-h{--ds-banner-background:var(--color-background-bold-warning)}.banner--intent-caution.banner--contrast-bold.sc-ds-banner-h{--ds-banner-background:var(--color-background-bold-caution)}.banner--intent-negative.banner--contrast-bold.sc-ds-banner-h{--ds-banner-background:var(--color-background-bold-negative)}@media (prefers-reduced-motion: reduce){.sc-ds-banner-h,.banner-surface.sc-ds-banner{transition:none}}@media (forced-colors: active){.banner-surface.sc-ds-banner{color:var(--ds-forced-color-content);background-color:var(--ds-forced-color-surface);border-bottom-color:var(--ds-forced-color-content)}.banner-heading.sc-ds-banner,.banner-description.sc-ds-banner{color:var(--ds-forced-color-content)}}`;const m=n(class n extends e{constructor(n){super();if(n!==false){this.__registerHost()}this.dsClose=r(this,"dsClose");this.dsAfterClose=r(this,"dsAfterClose");this.heading="";this.intent="neutral";this.contrast="faint";this.orientation="horizontal";this.open=true;this.dismissLabel="Dismiss banner";this.announcement="none";this.rendered=false;this.phase="closed";this.hasActions=false;this.loaded=false;this.transitionTimer=null;this.openFrame=null;this.closePending=false}componentWillLoad(){this.rendered=this.open}componentDidLoad(){this.loaded=true;this.updateActionsPresence();if(this.open)this.startOpen()}disconnectedCallback(){this.clearTransitionWork()}onOpenChange(n){if(!this.loaded)return;if(n)this.startOpen();else this.startClose()}get closeMotionMs(){return h(u.motionShort3,u.animationDurationShort3)}clearTransitionWork(){if(this.transitionTimer)clearTimeout(this.transitionTimer);if(this.openFrame!==null)cancelAnimationFrame(this.openFrame);this.transitionTimer=null;this.openFrame=null}startOpen(){this.clearTransitionWork();this.closePending=false;this.rendered=true;this.phase="closed";this.openFrame=requestAnimationFrame((()=>{this.openFrame=null;if(this.open)this.phase="open"}))}startClose(){this.clearTransitionWork();if(!this.rendered||this.phase==="closed"){this.rendered=false;return}this.closePending=true;this.phase="closing";const n=this.closeMotionMs;if(n<=0){this.finishClose();return}this.transitionTimer=setTimeout((()=>{this.transitionTimer=null;this.finishClose()}),n)}finishClose(){if(this.open||!this.closePending)return;this.closePending=false;this.rendered=false;this.phase="closed";this.dsAfterClose.emit()}updateActionsPresence(n){const e=n?n.assignedElements().filter((n=>n.tagName==="DS-BUTTON-UNFILLED")):Array.from(this.el.querySelectorAll('ds-button-unfilled[slot="actions"]'));this.hasActions=e.length>0}requestClose(n){if(!this.open||this.phase==="closing")return;this.dsClose.emit(n.detail)}get role(){if(this.announcement==="polite")return"status";if(this.announcement==="assertive")return"alert";return undefined}get ariaLive(){return this.announcement==="none"?undefined:this.announcement}render(){const n=this.phase==="closing";const e={banner:true,"banner--open":this.phase==="open","banner--closing":n,"banner--hidden":!this.rendered,"banner--has-actions":this.hasActions,[`banner--orientation-${this.orientation}`]:true,[`banner--intent-${this.intent}`]:true,[`banner--contrast-${this.contrast}`]:true};return a(s,{key:"804b90a941a8963cef638db6811faf399f479ff7",class:e},this.rendered&&a("div",{key:"a613bfd482e12f7d707d3ea1732d4f3e7cf57350",class:"banner-overflow"},a("section",{key:"9f98ebdae3487938ae354087b01323c27dd438f8",class:"banner-surface ds-chrome-header ds-chrome-header--wrapping",role:this.role,"aria-live":this.ariaLive,"aria-atomic":this.announcement==="none"?undefined:"true","aria-hidden":n?"true":undefined,inert:n?true:undefined,"data-phase":this.phase},a("div",{key:"9f65def287a9a199fa923a81c7186e6435c404ec",class:"banner-copy ds-chrome-header__copy ds-chrome-header__copy--wrapping ds-control--md"},a("ds-text",{key:"b8cfa1e68b160eea4e2b7d8bf0c4ec6ef8066e75",class:"banner-copy-flow",as:"div",variant:"text-body-medium",color:"inherit"},this.heading&&a("ds-text",{key:"5fa61195f23d298727ff5f96e368ff24d6ed19a2",class:"banner-heading",as:"span",variant:"text-title-small",color:"inherit"},this.heading),a("span",{key:"fe5443ce3204552de06dfcefb799ff184c536a05",class:"banner-description"},this.description))),a("div",{key:"728a07a6968e81b6987875671d9f29e312f59304",class:"banner-trailing ds-chrome-header__trailing"},a("div",{key:"60bcb027ab50ce018d0794c3bbedb5a305e48939",class:{"banner-actions":true,"banner-actions--empty":!this.hasActions}},a("slot",{key:"d0b423ddfeac2a9b385a3f6e68fb597c168a0c44",name:"actions",onSlotchange:n=>this.updateActionsPresence(n.currentTarget)})),a("div",{key:"0a494df161ea1b794f444255bd4a64a8169588c7",class:"banner-dismiss"},a("ds-tooltip",{key:"740fa8199363dc7e34c2ab2db01d8dc96d0b24e2",label:this.dismissLabel,side:"bottom",size:"sm"},a("ds-button-unfilled",{key:"cf407d5e08a5e5bacfe53c4c42129adc01f6bd76",class:"banner-close",variant:"icon",icon:"Cross",size:"md",type:"button",background:this.contrast,"aria-label":this.dismissLabel,hasBorder:false,activeFill:false,onDsClick:n=>this.requestClose(n)})))))))}get el(){return this}static get watchers(){return{open:[{onOpenChange:0}]}}static get style(){return g()}},[262,"ds-banner",{description:[1],heading:[1],intent:[513],contrast:[513],orientation:[513],open:[516],dismissLabel:[1,"dismiss-label"],announcement:[1],rendered:[32],phase:[32],hasActions:[32]},undefined,{open:[{onOpenChange:0}]}]);function f(){if(typeof customElements==="undefined"){return}const n=["ds-banner","ds-badge","ds-button-unfilled","ds-icon","ds-loader","ds-text","ds-tooltip"];n.forEach((n=>{switch(n){case"ds-banner":if(!customElements.get(o(n))){customElements.define(o(n),m)}break;case"ds-badge":if(!customElements.get(o(n))){i()}break;case"ds-button-unfilled":if(!customElements.get(o(n))){d()}break;case"ds-icon":if(!customElements.get(o(n))){t()}break;case"ds-loader":if(!customElements.get(o(n))){c()}break;case"ds-text":if(!customElements.get(o(n))){b()}break;case"ds-tooltip":if(!customElements.get(o(n))){l()}break}}))}f();const p=m;const v=f;export{p as DsBanner,v as defineCustomElement};
|
|
1
|
+
import{p as n,H as e,c as r,h as a,a as s,t as o}from"./index.js";import{d as i}from"./p-IYy-jODg.js";import{d}from"./p-BR_oMaas.js";import{d as t}from"./p-BAfG3M8z.js";import{d as c}from"./p-Ca-I2UnB.js";import{d as b}from"./p-Bb4f5SuF.js";import{d as l}from"./p-D2cjoj2r.js";import{a as h}from"./p-B6Vuayt6.js";import{T as g}from"./p-C4uYvyq6.js";const u=()=>`@media (forced-colors: active){.sc-ds-banner:root,.sc-ds-banner-h,.ds-forced-colors-scope.sc-ds-banner{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.ds-control--lg.sc-ds-banner,.ds-control--lg.sc-ds-banner-h,.ds-control--md.sc-ds-banner-h,.ds-control--md.sc-ds-banner,.ds-control--sm.sc-ds-banner-h,.ds-control--sm.sc-ds-banner,.ds-control--xs.sc-ds-banner-h,.ds-control--xs.sc-ds-banner{--ds-control-radius:var(--dimension-radius-025)}.ds-control--lg.sc-ds-banner-h,.ds-control--lg.sc-ds-banner{--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-banner-h,.ds-control--md.sc-ds-banner{--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-banner-h,.ds-control--sm.sc-ds-banner{--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-banner-h,.ds-control--xs.sc-ds-banner{--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-banner{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-banner{flex-wrap:wrap}.ds-chrome-header--bounded.sc-ds-banner{border-block-end:var(--dimension-stroke-width-012) solid var(--color-border-tertiary)}.ds-chrome-header__leading.sc-ds-banner,.ds-chrome-header__trailing.sc-ds-banner{display:flex;align-items:center;flex:0 0 auto;min-width:0}.ds-chrome-header__trailing.sc-ds-banner{margin-inline-start:auto;gap:var(--dimension-space-100)}.ds-chrome-header__copy.sc-ds-banner{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-banner{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-banner{align-items:stretch;flex-direction:column;gap:var(--dimension-space-050)}.ds-chrome-header__heading.sc-ds-banner,.ds-chrome-header__description.sc-ds-banner{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-banner{flex:0 1 auto}.ds-chrome-header__copy--wrapping.sc-ds-banner .ds-chrome-header__description.sc-ds-banner{flex:1 1 var(--dimension-card-width-xs)}.sc-ds-banner-h{display:grid;overflow:hidden;min-width:0;grid-template-rows:0fr;transition:grid-template-rows var(--effect-animation-duration-short-3) var(--_banner-motion-easing);--ds-banner-background:var(--color-background-faint-neutral);--ds-banner-heading:var(--color-foreground-primary);--ds-banner-description:var(--color-foreground-secondary);--ds-banner-border:var(--color-border-tertiary);--_banner-motion-easing:var(--effect-animation-easing-ease-in-out, ease)}.banner--open.sc-ds-banner-h{grid-template-rows:1fr;--_banner-motion-easing:var(--effect-animation-easing-ease-out, ease-out)}.banner--closing.sc-ds-banner-h{--_banner-motion-easing:var(--effect-animation-easing-ease-in, ease-in)}.banner--hidden.sc-ds-banner-h{display:none}.banner-overflow.sc-ds-banner{min-height:0;overflow:visible}.banner-surface.sc-ds-banner{display:flex;position:relative;width:100%;padding-inline-end:calc(var(--dimension-size-400) + var(--dimension-space-200));color:var(--ds-banner-description);background-color:var(--ds-banner-background);border-bottom:var(--dimension-stroke-width-012) solid var(--ds-banner-border);transform:translateY(-100%);transition:transform var(--effect-animation-duration-short-3) var(--_banner-motion-easing)}.banner--open.sc-ds-banner-h .banner-surface.sc-ds-banner{transform:translateY(0)}.banner-copy.sc-ds-banner{flex-basis:var(--dimension-card-width-sm)}.banner--orientation-horizontal.sc-ds-banner-h .banner-surface.sc-ds-banner{flex-wrap:nowrap}.banner--orientation-vertical.sc-ds-banner-h .banner-copy.sc-ds-banner{flex-basis:100%}.banner-copy-flow.sc-ds-banner{box-sizing:border-box;min-width:0;padding-inline:var(--ds-control-label-inset, var(--dimension-space-025));color:var(--ds-banner-description)}.banner-heading.sc-ds-banner{display:inline-block;width:auto;max-width:100%;margin-inline-end:var(--dimension-space-100);vertical-align:baseline;color:var(--ds-banner-heading)}.banner-description.sc-ds-banner{color:var(--ds-banner-description)}.banner-actions.sc-ds-banner{display:flex;align-items:center;flex:0 0 auto;flex-wrap:nowrap;min-width:0;gap:var(--dimension-space-100)}.banner-actions.sc-ds-banner slot.sc-ds-banner{display:contents}.banner-actions.sc-ds-banner-s>:not(ds-button-unfilled),.banner-actions .sc-ds-banner-s>:not(ds-button-unfilled),.banner-actions.sc-ds-banner-s>ds-button-unfilled:nth-of-type(n+3),.banner-actions .sc-ds-banner-s>ds-button-unfilled:nth-of-type(n+3){display:none}.banner-actions--empty.sc-ds-banner{display:none}.banner-trailing.sc-ds-banner{align-self:flex-start;flex-wrap:nowrap}.banner--orientation-vertical.sc-ds-banner-h:not(.banner--has-actions) .banner-trailing.sc-ds-banner{display:contents}.banner--orientation-vertical.banner--has-actions.sc-ds-banner-h .banner-trailing.sc-ds-banner{margin-inline:var(--dimension-space-100) auto;padding-block-end:var(--dimension-space-100);box-sizing:border-box}.banner--orientation-vertical.sc-ds-banner-h .banner-description.sc-ds-banner{display:block}.banner--orientation-vertical.sc-ds-banner-h .banner-heading.sc-ds-banner+.banner-description.sc-ds-banner{margin-block-start:var(--dimension-space-050)}.banner-close.sc-ds-banner{flex:0 0 auto}.banner-dismiss.sc-ds-banner{position:absolute;inset-block-start:var(--dimension-space-100);inset-inline-end:var(--dimension-space-100)}.banner--intent-neutral.sc-ds-banner-h{--ds-banner-faint-background:var(--color-background-faint-neutral)}.banner--intent-brand.sc-ds-banner-h{--ds-banner-faint-background:var(--color-background-faint-brand)}.banner--intent-positive.sc-ds-banner-h{--ds-banner-faint-background:var(--color-background-faint-positive)}.banner--intent-warning.sc-ds-banner-h{--ds-banner-faint-background:var(--color-background-faint-warning)}.banner--intent-caution.sc-ds-banner-h{--ds-banner-faint-background:var(--color-background-faint-caution)}.banner--intent-negative.sc-ds-banner-h{--ds-banner-faint-background:var(--color-background-faint-negative)}.banner--contrast-faint.sc-ds-banner-h{--ds-banner-background:var(--ds-banner-faint-background);--ds-banner-heading:var(--color-foreground-primary);--ds-banner-description:var(--color-foreground-secondary);--ds-banner-border:var(--color-border-tertiary)}.banner--contrast-medium.sc-ds-banner-h{--ds-banner-background:var(--color-background-medium-neutral);--ds-banner-heading:var(--color-foreground-on-medium-background-primary);--ds-banner-description:var(--color-foreground-on-medium-background-secondary);--ds-banner-border:var(--color-border-on-medium-background-tertiary)}.banner--intent-brand.banner--contrast-medium.sc-ds-banner-h{--ds-banner-background:var(--color-background-medium-brand)}.banner--intent-positive.banner--contrast-medium.sc-ds-banner-h{--ds-banner-background:var(--color-background-medium-positive)}.banner--intent-warning.banner--contrast-medium.sc-ds-banner-h{--ds-banner-background:var(--color-background-medium-warning)}.banner--intent-caution.banner--contrast-medium.sc-ds-banner-h{--ds-banner-background:var(--color-background-medium-caution)}.banner--intent-negative.banner--contrast-medium.sc-ds-banner-h{--ds-banner-background:var(--color-background-medium-negative)}.banner--contrast-strong.sc-ds-banner-h{--ds-banner-background:var(--color-background-strong-neutral);--ds-banner-heading:var(--color-foreground-on-strong-background-primary);--ds-banner-description:var(--color-foreground-on-strong-background-secondary);--ds-banner-border:var(--color-border-on-strong-background-tertiary)}.banner--intent-brand.banner--contrast-strong.sc-ds-banner-h{--ds-banner-background:var(--color-background-strong-brand)}.banner--intent-positive.banner--contrast-strong.sc-ds-banner-h{--ds-banner-background:var(--color-background-strong-positive)}.banner--intent-warning.banner--contrast-strong.sc-ds-banner-h{--ds-banner-background:var(--color-background-strong-warning)}.banner--intent-caution.banner--contrast-strong.sc-ds-banner-h{--ds-banner-background:var(--color-background-strong-caution)}.banner--intent-negative.banner--contrast-strong.sc-ds-banner-h{--ds-banner-background:var(--color-background-strong-negative)}.banner--contrast-bold.sc-ds-banner-h{--ds-banner-background:var(--color-background-bold-neutral);--ds-banner-heading:var(--color-foreground-on-bold-background-primary);--ds-banner-description:var(--color-foreground-on-bold-background-secondary);--ds-banner-border:var(--color-border-on-bold-background-tertiary)}.banner--intent-brand.banner--contrast-bold.sc-ds-banner-h{--ds-banner-background:var(--color-background-bold-brand)}.banner--intent-positive.banner--contrast-bold.sc-ds-banner-h{--ds-banner-background:var(--color-background-bold-positive)}.banner--intent-warning.banner--contrast-bold.sc-ds-banner-h{--ds-banner-background:var(--color-background-bold-warning)}.banner--intent-caution.banner--contrast-bold.sc-ds-banner-h{--ds-banner-background:var(--color-background-bold-caution)}.banner--intent-negative.banner--contrast-bold.sc-ds-banner-h{--ds-banner-background:var(--color-background-bold-negative)}@media (prefers-reduced-motion: reduce){.sc-ds-banner-h,.banner-surface.sc-ds-banner{transition:none}}@media (forced-colors: active){.banner-surface.sc-ds-banner{color:var(--ds-forced-color-content);background-color:var(--ds-forced-color-surface);border-bottom-color:var(--ds-forced-color-content)}.banner-heading.sc-ds-banner,.banner-description.sc-ds-banner{color:var(--ds-forced-color-content)}}`;const m=n(class n extends e{constructor(n){super();if(n!==false){this.__registerHost()}this.dsClose=r(this,"dsClose");this.dsAfterClose=r(this,"dsAfterClose");this.heading="";this.intent="neutral";this.contrast="faint";this.orientation="horizontal";this.open=true;this.dismissLabel="Dismiss banner";this.announcement="none";this.rendered=false;this.phase="closed";this.hasActions=false;this.loaded=false;this.transitionTimer=null;this.openFrame=null;this.closePending=false}componentWillLoad(){this.rendered=this.open}componentDidLoad(){this.loaded=true;this.updateActionsPresence();if(this.open)this.startOpen()}disconnectedCallback(){this.clearTransitionWork()}onOpenChange(n){if(!this.loaded)return;if(n)this.startOpen();else this.startClose()}get closeMotionMs(){return h(g.motionShort3,g.animationDurationShort3)}clearTransitionWork(){if(this.transitionTimer)clearTimeout(this.transitionTimer);if(this.openFrame!==null)cancelAnimationFrame(this.openFrame);this.transitionTimer=null;this.openFrame=null}startOpen(){this.clearTransitionWork();this.closePending=false;this.rendered=true;this.phase="closed";this.openFrame=requestAnimationFrame((()=>{this.openFrame=null;if(this.open)this.phase="open"}))}startClose(){this.clearTransitionWork();if(!this.rendered||this.phase==="closed"){this.rendered=false;return}this.closePending=true;this.phase="closing";const n=this.closeMotionMs;if(n<=0){this.finishClose();return}this.transitionTimer=setTimeout((()=>{this.transitionTimer=null;this.finishClose()}),n)}finishClose(){if(this.open||!this.closePending)return;this.closePending=false;this.rendered=false;this.phase="closed";this.dsAfterClose.emit()}updateActionsPresence(n){const e=n?n.assignedElements().filter((n=>n.tagName==="DS-BUTTON-UNFILLED")):Array.from(this.el.querySelectorAll('ds-button-unfilled[slot="actions"]'));this.hasActions=e.length>0}requestClose(n){if(!this.open||this.phase==="closing")return;this.dsClose.emit(n.detail)}get role(){if(this.announcement==="polite")return"status";if(this.announcement==="assertive")return"alert";return undefined}get ariaLive(){return this.announcement==="none"?undefined:this.announcement}render(){const n=this.phase==="closing";const e={banner:true,"banner--open":this.phase==="open","banner--closing":n,"banner--hidden":!this.rendered,"banner--has-actions":this.hasActions,[`banner--orientation-${this.orientation}`]:true,[`banner--intent-${this.intent}`]:true,[`banner--contrast-${this.contrast}`]:true};return a(s,{key:"804b90a941a8963cef638db6811faf399f479ff7",class:e},this.rendered&&a("div",{key:"a613bfd482e12f7d707d3ea1732d4f3e7cf57350",class:"banner-overflow"},a("section",{key:"9f98ebdae3487938ae354087b01323c27dd438f8",class:"banner-surface ds-chrome-header ds-chrome-header--wrapping",role:this.role,"aria-live":this.ariaLive,"aria-atomic":this.announcement==="none"?undefined:"true","aria-hidden":n?"true":undefined,inert:n?true:undefined,"data-phase":this.phase},a("div",{key:"9f65def287a9a199fa923a81c7186e6435c404ec",class:"banner-copy ds-chrome-header__copy ds-chrome-header__copy--wrapping ds-control--md"},a("ds-text",{key:"b8cfa1e68b160eea4e2b7d8bf0c4ec6ef8066e75",class:"banner-copy-flow",as:"div",variant:"text-body-medium",color:"inherit"},this.heading&&a("ds-text",{key:"5fa61195f23d298727ff5f96e368ff24d6ed19a2",class:"banner-heading",as:"span",variant:"text-title-small",color:"inherit"},this.heading),a("span",{key:"fe5443ce3204552de06dfcefb799ff184c536a05",class:"banner-description"},this.description))),a("div",{key:"728a07a6968e81b6987875671d9f29e312f59304",class:"banner-trailing ds-chrome-header__trailing"},a("div",{key:"60bcb027ab50ce018d0794c3bbedb5a305e48939",class:{"banner-actions":true,"banner-actions--empty":!this.hasActions}},a("slot",{key:"d0b423ddfeac2a9b385a3f6e68fb597c168a0c44",name:"actions",onSlotchange:n=>this.updateActionsPresence(n.currentTarget)})),a("div",{key:"0a494df161ea1b794f444255bd4a64a8169588c7",class:"banner-dismiss"},a("ds-tooltip",{key:"740fa8199363dc7e34c2ab2db01d8dc96d0b24e2",label:this.dismissLabel,side:"bottom",size:"sm"},a("ds-button-unfilled",{key:"cf407d5e08a5e5bacfe53c4c42129adc01f6bd76",class:"banner-close",variant:"icon",icon:"Cross",size:"md",type:"button",background:this.contrast,"aria-label":this.dismissLabel,hasBorder:false,activeFill:false,onDsClick:n=>this.requestClose(n)})))))))}get el(){return this}static get watchers(){return{open:[{onOpenChange:0}]}}static get style(){return u()}},[262,"ds-banner",{description:[1],heading:[1],intent:[513],contrast:[513],orientation:[513],open:[516],dismissLabel:[1,"dismiss-label"],announcement:[1],rendered:[32],phase:[32],hasActions:[32]},undefined,{open:[{onOpenChange:0}]}]);function f(){if(typeof customElements==="undefined"){return}const n=["ds-banner","ds-badge","ds-button-unfilled","ds-icon","ds-loader","ds-text","ds-tooltip"];n.forEach((n=>{switch(n){case"ds-banner":if(!customElements.get(o(n))){customElements.define(o(n),m)}break;case"ds-badge":if(!customElements.get(o(n))){i()}break;case"ds-button-unfilled":if(!customElements.get(o(n))){d()}break;case"ds-icon":if(!customElements.get(o(n))){t()}break;case"ds-loader":if(!customElements.get(o(n))){c()}break;case"ds-text":if(!customElements.get(o(n))){b()}break;case"ds-tooltip":if(!customElements.get(o(n))){l()}break}}))}f();const p=m;const v=f;export{p as DsBanner,v as defineCustomElement};
|
|
2
2
|
//# sourceMappingURL=ds-banner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["bannerCss","Banner","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","heading","intent","contrast","orientation","open","dismissLabel","announcement","rendered","phase","hasActions","loaded","transitionTimer","openFrame","closePending","componentWillLoad","componentDidLoad","updateActionsPresence","startOpen","disconnectedCallback","clearTransitionWork","onOpenChange","isOpen","startClose","closeMotionMs","resolveMotionTimeMs","TOKEN_DEFAULTS","motionShort3","animationDurationShort3","clearTimeout","cancelAnimationFrame","requestAnimationFrame","duration","finishClose","setTimeout","dsAfterClose","emit","slot","actions","assignedElements","filter","element","tagName","Array","from","el","querySelectorAll","length","requestClose","event","dsClose","detail","role","undefined","ariaLive","render","closing","hostClass","banner","h","Host","key","class","inert","as","variant","color","description","name","onSlotchange","currentTarget","label","side","size","icon","type","background","hasBorder","activeFill","onDsClick"],"sources":["src/wc/components/Banner/Banner.css?tag=ds-banner&encapsulation=scoped","src/wc/components/Banner/Banner.tsx"],"sourcesContent":["@import '../../utils/forced-colors.css';\n@import '../../utils/chrome-header.css';\n\n:host {\n display: grid;\n overflow: hidden;\n min-width: 0;\n grid-template-rows: 0fr;\n transition: grid-template-rows var(--effect-animation-duration-short-3)\n var(--_banner-motion-easing);\n\n --ds-banner-background: var(--color-background-faint-neutral);\n --ds-banner-heading: var(--color-foreground-primary);\n --ds-banner-description: var(--color-foreground-secondary);\n --ds-banner-border: var(--color-border-tertiary);\n --_banner-motion-easing: var(--effect-animation-easing-ease-in-out, ease);\n}\n\n:host(.banner--open) {\n grid-template-rows: 1fr;\n --_banner-motion-easing: var(--effect-animation-easing-ease-out, ease-out);\n}\n\n:host(.banner--closing) {\n --_banner-motion-easing: var(--effect-animation-easing-ease-in, ease-in);\n}\n\n:host(.banner--hidden) {\n display: none;\n}\n\n.banner-overflow {\n min-height: 0;\n overflow: visible;\n}\n\n.banner-surface {\n display: flex;\n position: relative;\n width: 100%;\n padding-inline-end: calc(var(--dimension-size-400) + var(--dimension-space-200));\n color: var(--ds-banner-description);\n background-color: var(--ds-banner-background);\n border-bottom: var(--dimension-stroke-width-012) solid var(--ds-banner-border);\n transform: translateY(-100%);\n transition: transform var(--effect-animation-duration-short-3) var(--_banner-motion-easing);\n}\n\n:host(.banner--open) .banner-surface {\n transform: translateY(0);\n}\n\n.banner-copy {\n flex-basis: var(--dimension-card-width-sm);\n}\n\n:host(.banner--orientation-horizontal) .banner-surface {\n flex-wrap: nowrap;\n}\n\n:host(.banner--orientation-vertical) .banner-copy {\n flex-basis: 100%;\n}\n\n.banner-copy-flow {\n box-sizing: border-box;\n min-width: 0;\n padding-inline: var(--ds-control-label-inset, var(--dimension-space-025));\n color: var(--ds-banner-description);\n}\n\n.banner-heading {\n display: inline-block;\n width: auto;\n max-width: 100%;\n margin-inline-end: var(--dimension-space-100);\n vertical-align: baseline;\n color: var(--ds-banner-heading);\n}\n\n.banner-description {\n color: var(--ds-banner-description);\n}\n\n.banner-actions {\n display: flex;\n align-items: center;\n flex: 0 0 auto;\n flex-wrap: nowrap;\n min-width: 0;\n gap: var(--dimension-space-100);\n}\n\n.banner-actions slot {\n display: contents;\n}\n\n.banner-actions ::slotted(:not(ds-button-unfilled)),\n.banner-actions ::slotted(ds-button-unfilled:nth-of-type(n + 3)) {\n display: none;\n}\n\n.banner-actions--empty {\n display: none;\n}\n\n.banner-trailing {\n align-self: flex-start;\n flex-wrap: nowrap;\n}\n\n:host(.banner--orientation-vertical.banner--has-actions) .banner-trailing {\n margin-inline: var(--dimension-space-100) auto;\n padding-block-end: var(--dimension-space-100);\n box-sizing: border-box;\n}\n\n:host(.banner--orientation-vertical) .banner-description {\n display: block;\n}\n\n:host(.banner--orientation-vertical) .banner-heading + .banner-description {\n margin-block-start: var(--dimension-space-050);\n}\n\n.banner-close {\n flex: 0 0 auto;\n}\n\n.banner-dismiss {\n position: absolute;\n inset-block-start: var(--dimension-space-100);\n inset-inline-end: var(--dimension-space-100);\n}\n\n:host(.banner--intent-neutral) {\n --ds-banner-faint-background: var(--color-background-faint-neutral);\n}\n\n:host(.banner--intent-brand) {\n --ds-banner-faint-background: var(--color-background-faint-brand);\n}\n\n:host(.banner--intent-positive) {\n --ds-banner-faint-background: var(--color-background-faint-positive);\n}\n\n:host(.banner--intent-warning) {\n --ds-banner-faint-background: var(--color-background-faint-warning);\n}\n\n:host(.banner--intent-caution) {\n --ds-banner-faint-background: var(--color-background-faint-caution);\n}\n\n:host(.banner--intent-negative) {\n --ds-banner-faint-background: var(--color-background-faint-negative);\n}\n\n:host(.banner--contrast-faint) {\n --ds-banner-background: var(--ds-banner-faint-background);\n --ds-banner-heading: var(--color-foreground-primary);\n --ds-banner-description: var(--color-foreground-secondary);\n --ds-banner-border: var(--color-border-tertiary);\n}\n\n:host(.banner--contrast-medium) {\n --ds-banner-background: var(--color-background-medium-neutral);\n --ds-banner-heading: var(--color-foreground-on-medium-background-primary);\n --ds-banner-description: var(--color-foreground-on-medium-background-secondary);\n --ds-banner-border: var(--color-border-on-medium-background-tertiary);\n}\n\n:host(.banner--intent-brand.banner--contrast-medium) { --ds-banner-background: var(--color-background-medium-brand); }\n:host(.banner--intent-positive.banner--contrast-medium) { --ds-banner-background: var(--color-background-medium-positive); }\n:host(.banner--intent-warning.banner--contrast-medium) { --ds-banner-background: var(--color-background-medium-warning); }\n:host(.banner--intent-caution.banner--contrast-medium) { --ds-banner-background: var(--color-background-medium-caution); }\n:host(.banner--intent-negative.banner--contrast-medium) { --ds-banner-background: var(--color-background-medium-negative); }\n\n:host(.banner--contrast-strong) {\n --ds-banner-background: var(--color-background-strong-neutral);\n --ds-banner-heading: var(--color-foreground-on-strong-background-primary);\n --ds-banner-description: var(--color-foreground-on-strong-background-secondary);\n --ds-banner-border: var(--color-border-on-strong-background-tertiary);\n}\n\n:host(.banner--intent-brand.banner--contrast-strong) { --ds-banner-background: var(--color-background-strong-brand); }\n:host(.banner--intent-positive.banner--contrast-strong) { --ds-banner-background: var(--color-background-strong-positive); }\n:host(.banner--intent-warning.banner--contrast-strong) { --ds-banner-background: var(--color-background-strong-warning); }\n:host(.banner--intent-caution.banner--contrast-strong) { --ds-banner-background: var(--color-background-strong-caution); }\n:host(.banner--intent-negative.banner--contrast-strong) { --ds-banner-background: var(--color-background-strong-negative); }\n\n:host(.banner--contrast-bold) {\n --ds-banner-background: var(--color-background-bold-neutral);\n --ds-banner-heading: var(--color-foreground-on-bold-background-primary);\n --ds-banner-description: var(--color-foreground-on-bold-background-secondary);\n --ds-banner-border: var(--color-border-on-bold-background-tertiary);\n}\n\n:host(.banner--intent-brand.banner--contrast-bold) { --ds-banner-background: var(--color-background-bold-brand); }\n:host(.banner--intent-positive.banner--contrast-bold) { --ds-banner-background: var(--color-background-bold-positive); }\n:host(.banner--intent-warning.banner--contrast-bold) { --ds-banner-background: var(--color-background-bold-warning); }\n:host(.banner--intent-caution.banner--contrast-bold) { --ds-banner-background: var(--color-background-bold-caution); }\n:host(.banner--intent-negative.banner--contrast-bold) { --ds-banner-background: var(--color-background-bold-negative); }\n\n@media (prefers-reduced-motion: reduce) {\n :host,\n .banner-surface {\n transition: none;\n }\n}\n\n@media (forced-colors: active) {\n .banner-surface {\n color: var(--ds-forced-color-content);\n background-color: var(--ds-forced-color-surface);\n border-bottom-color: var(--ds-forced-color-content);\n }\n\n .banner-heading,\n .banner-description {\n color: var(--ds-forced-color-content);\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { resolveMotionTimeMs, TOKEN_DEFAULTS } from '../../utils';\n\nexport type BannerIntent =\n | 'neutral'\n | 'brand'\n | 'positive'\n | 'warning'\n | 'caution'\n | 'negative';\n\nexport type BannerContrast = 'faint' | 'medium' | 'strong' | 'bold';\nexport type BannerAnnouncement = 'none' | 'polite' | 'assertive';\nexport type BannerOrientation = 'horizontal' | 'vertical';\n\ntype BannerPhase = 'closed' | 'open' | 'closing';\n\n@Component({\n tag: 'ds-banner',\n styleUrl: 'Banner.css',\n scoped: true,\n})\nexport class Banner {\n @Element() el!: HTMLElement;\n\n /** Required explanatory copy. */\n @Prop() description!: string;\n /** Optional visual heading rendered before the description. */\n @Prop() heading: string = '';\n /** Semantic color family. */\n @Prop({ reflect: true }) intent: BannerIntent = 'neutral';\n /** Surface fill weight. */\n @Prop({ reflect: true }) contrast: BannerContrast = 'faint';\n /** Copy and action-lane arrangement, selected by the application. */\n @Prop({ reflect: true }) orientation: BannerOrientation = 'horizontal';\n /** Controlled visibility. Keep the element mounted until dsAfterClose when unmounting. */\n @Prop({ reflect: true }) open: boolean = true;\n /** Localized accessible label for the close control. */\n @Prop() dismissLabel: string = 'Dismiss banner';\n /** Live-region urgency, independent of visual intent. */\n @Prop() announcement: BannerAnnouncement = 'none';\n\n /** Emitted when the close control requests dismissal. The application controls open. */\n @Event() dsClose!: EventEmitter<MouseEvent>;\n /** Emitted once after controlled exit motion and layout collapse complete. */\n @Event() dsAfterClose!: EventEmitter<void>;\n\n @State() private rendered = false;\n @State() private phase: BannerPhase = 'closed';\n @State() private hasActions = false;\n\n private loaded = false;\n private transitionTimer: ReturnType<typeof setTimeout> | null = null;\n private openFrame: number | null = null;\n private closePending = false;\n\n componentWillLoad() {\n this.rendered = this.open;\n }\n\n componentDidLoad() {\n this.loaded = true;\n this.updateActionsPresence();\n if (this.open) this.startOpen();\n }\n\n disconnectedCallback() {\n this.clearTransitionWork();\n }\n\n @Watch('open')\n onOpenChange(isOpen: boolean) {\n if (!this.loaded) return;\n if (isOpen) this.startOpen();\n else this.startClose();\n }\n\n private get closeMotionMs(): number {\n return resolveMotionTimeMs(\n TOKEN_DEFAULTS.motionShort3,\n TOKEN_DEFAULTS.animationDurationShort3,\n );\n }\n\n private clearTransitionWork() {\n if (this.transitionTimer) clearTimeout(this.transitionTimer);\n if (this.openFrame !== null) cancelAnimationFrame(this.openFrame);\n this.transitionTimer = null;\n this.openFrame = null;\n }\n\n private startOpen() {\n this.clearTransitionWork();\n this.closePending = false;\n this.rendered = true;\n this.phase = 'closed';\n this.openFrame = requestAnimationFrame(() => {\n this.openFrame = null;\n if (this.open) this.phase = 'open';\n });\n }\n\n private startClose() {\n this.clearTransitionWork();\n if (!this.rendered || this.phase === 'closed') {\n this.rendered = false;\n return;\n }\n\n this.closePending = true;\n this.phase = 'closing';\n const duration = this.closeMotionMs;\n if (duration <= 0) {\n this.finishClose();\n return;\n }\n this.transitionTimer = setTimeout(() => {\n this.transitionTimer = null;\n this.finishClose();\n }, duration);\n }\n\n private finishClose() {\n if (this.open || !this.closePending) return;\n this.closePending = false;\n this.rendered = false;\n this.phase = 'closed';\n this.dsAfterClose.emit();\n }\n\n private updateActionsPresence(slot?: HTMLSlotElement) {\n const actions = slot\n ? slot.assignedElements().filter(element => element.tagName === 'DS-BUTTON-UNFILLED')\n : Array.from(this.el.querySelectorAll('ds-button-unfilled[slot=\"actions\"]'));\n this.hasActions = actions.length > 0;\n }\n\n private requestClose(event: CustomEvent<MouseEvent>) {\n if (!this.open || this.phase === 'closing') return;\n this.dsClose.emit(event.detail);\n }\n\n private get role(): 'status' | 'alert' | undefined {\n if (this.announcement === 'polite') return 'status';\n if (this.announcement === 'assertive') return 'alert';\n return undefined;\n }\n\n private get ariaLive(): 'polite' | 'assertive' | undefined {\n return this.announcement === 'none' ? undefined : this.announcement;\n }\n\n render() {\n const closing = this.phase === 'closing';\n const hostClass = {\n banner: true,\n 'banner--open': this.phase === 'open',\n 'banner--closing': closing,\n 'banner--hidden': !this.rendered,\n 'banner--has-actions': this.hasActions,\n [`banner--orientation-${this.orientation}`]: true,\n [`banner--intent-${this.intent}`]: true,\n [`banner--contrast-${this.contrast}`]: true,\n };\n\n return (\n <Host class={hostClass}>\n {this.rendered && (\n <div class=\"banner-overflow\">\n <section\n class=\"banner-surface ds-chrome-header ds-chrome-header--wrapping\"\n role={this.role}\n aria-live={this.ariaLive}\n aria-atomic={this.announcement === 'none' ? undefined : 'true'}\n aria-hidden={closing ? 'true' : undefined}\n inert={closing ? true : undefined}\n data-phase={this.phase}\n >\n {/* eslint-disable-next-line local/prefer-direct-ds-text -- The header-copy lane owns the 6px container inset separately from the inline text flow's 2px inset. */}\n <div class=\"banner-copy ds-chrome-header__copy ds-chrome-header__copy--wrapping ds-control--md\">\n <ds-text\n class=\"banner-copy-flow\"\n as=\"div\"\n variant=\"text-body-medium\"\n color=\"inherit\"\n >\n {this.heading && (\n <ds-text\n class=\"banner-heading\"\n as=\"span\"\n variant=\"text-title-small\"\n color=\"inherit\"\n >\n {this.heading}\n </ds-text>\n )}\n <span class=\"banner-description\">{this.description}</span>\n </ds-text>\n </div>\n <div class=\"banner-trailing ds-chrome-header__trailing\">\n <div class={{ 'banner-actions': true, 'banner-actions--empty': !this.hasActions }}>\n <slot\n name=\"actions\"\n onSlotchange={(event: Event) =>\n this.updateActionsPresence(event.currentTarget as HTMLSlotElement)\n }\n />\n </div>\n <div class=\"banner-dismiss\">\n <ds-tooltip label={this.dismissLabel} side=\"bottom\" size=\"sm\">\n <ds-button-unfilled\n class=\"banner-close\"\n variant=\"icon\"\n icon=\"Cross\"\n size=\"md\"\n type=\"button\"\n background={this.contrast}\n aria-label={this.dismissLabel}\n hasBorder={false}\n activeFill={false}\n onDsClick={(event: CustomEvent<MouseEvent>) => this.requestClose(event)}\n />\n </ds-tooltip>\n </div>\n </div>\n </section>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["bannerCss","Banner","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","heading","intent","contrast","orientation","open","dismissLabel","announcement","rendered","phase","hasActions","loaded","transitionTimer","openFrame","closePending","componentWillLoad","componentDidLoad","updateActionsPresence","startOpen","disconnectedCallback","clearTransitionWork","onOpenChange","isOpen","startClose","closeMotionMs","resolveMotionTimeMs","TOKEN_DEFAULTS","motionShort3","animationDurationShort3","clearTimeout","cancelAnimationFrame","requestAnimationFrame","duration","finishClose","setTimeout","dsAfterClose","emit","slot","actions","assignedElements","filter","element","tagName","Array","from","el","querySelectorAll","length","requestClose","event","dsClose","detail","role","undefined","ariaLive","render","closing","hostClass","banner","h","Host","key","class","inert","as","variant","color","description","name","onSlotchange","currentTarget","label","side","size","icon","type","background","hasBorder","activeFill","onDsClick"],"sources":["src/wc/components/Banner/Banner.css?tag=ds-banner&encapsulation=scoped","src/wc/components/Banner/Banner.tsx"],"sourcesContent":["@import '../../utils/forced-colors.css';\n@import '../../utils/chrome-header.css';\n\n:host {\n display: grid;\n overflow: hidden;\n min-width: 0;\n grid-template-rows: 0fr;\n transition: grid-template-rows var(--effect-animation-duration-short-3)\n var(--_banner-motion-easing);\n\n --ds-banner-background: var(--color-background-faint-neutral);\n --ds-banner-heading: var(--color-foreground-primary);\n --ds-banner-description: var(--color-foreground-secondary);\n --ds-banner-border: var(--color-border-tertiary);\n --_banner-motion-easing: var(--effect-animation-easing-ease-in-out, ease);\n}\n\n:host(.banner--open) {\n grid-template-rows: 1fr;\n --_banner-motion-easing: var(--effect-animation-easing-ease-out, ease-out);\n}\n\n:host(.banner--closing) {\n --_banner-motion-easing: var(--effect-animation-easing-ease-in, ease-in);\n}\n\n:host(.banner--hidden) {\n display: none;\n}\n\n.banner-overflow {\n min-height: 0;\n overflow: visible;\n}\n\n.banner-surface {\n display: flex;\n position: relative;\n width: 100%;\n padding-inline-end: calc(var(--dimension-size-400) + var(--dimension-space-200));\n color: var(--ds-banner-description);\n background-color: var(--ds-banner-background);\n border-bottom: var(--dimension-stroke-width-012) solid var(--ds-banner-border);\n transform: translateY(-100%);\n transition: transform var(--effect-animation-duration-short-3) var(--_banner-motion-easing);\n}\n\n:host(.banner--open) .banner-surface {\n transform: translateY(0);\n}\n\n.banner-copy {\n flex-basis: var(--dimension-card-width-sm);\n}\n\n:host(.banner--orientation-horizontal) .banner-surface {\n flex-wrap: nowrap;\n}\n\n:host(.banner--orientation-vertical) .banner-copy {\n flex-basis: 100%;\n}\n\n.banner-copy-flow {\n box-sizing: border-box;\n min-width: 0;\n padding-inline: var(--ds-control-label-inset, var(--dimension-space-025));\n color: var(--ds-banner-description);\n}\n\n.banner-heading {\n display: inline-block;\n width: auto;\n max-width: 100%;\n margin-inline-end: var(--dimension-space-100);\n vertical-align: baseline;\n color: var(--ds-banner-heading);\n}\n\n.banner-description {\n color: var(--ds-banner-description);\n}\n\n.banner-actions {\n display: flex;\n align-items: center;\n flex: 0 0 auto;\n flex-wrap: nowrap;\n min-width: 0;\n gap: var(--dimension-space-100);\n}\n\n.banner-actions slot {\n display: contents;\n}\n\n.banner-actions ::slotted(:not(ds-button-unfilled)),\n.banner-actions ::slotted(ds-button-unfilled:nth-of-type(n + 3)) {\n display: none;\n}\n\n.banner-actions--empty {\n display: none;\n}\n\n.banner-trailing {\n align-self: flex-start;\n flex-wrap: nowrap;\n}\n\n:host(.banner--orientation-vertical:not(.banner--has-actions)) .banner-trailing {\n display: contents;\n}\n\n:host(.banner--orientation-vertical.banner--has-actions) .banner-trailing {\n margin-inline: var(--dimension-space-100) auto;\n padding-block-end: var(--dimension-space-100);\n box-sizing: border-box;\n}\n\n:host(.banner--orientation-vertical) .banner-description {\n display: block;\n}\n\n:host(.banner--orientation-vertical) .banner-heading + .banner-description {\n margin-block-start: var(--dimension-space-050);\n}\n\n.banner-close {\n flex: 0 0 auto;\n}\n\n.banner-dismiss {\n position: absolute;\n inset-block-start: var(--dimension-space-100);\n inset-inline-end: var(--dimension-space-100);\n}\n\n:host(.banner--intent-neutral) {\n --ds-banner-faint-background: var(--color-background-faint-neutral);\n}\n\n:host(.banner--intent-brand) {\n --ds-banner-faint-background: var(--color-background-faint-brand);\n}\n\n:host(.banner--intent-positive) {\n --ds-banner-faint-background: var(--color-background-faint-positive);\n}\n\n:host(.banner--intent-warning) {\n --ds-banner-faint-background: var(--color-background-faint-warning);\n}\n\n:host(.banner--intent-caution) {\n --ds-banner-faint-background: var(--color-background-faint-caution);\n}\n\n:host(.banner--intent-negative) {\n --ds-banner-faint-background: var(--color-background-faint-negative);\n}\n\n:host(.banner--contrast-faint) {\n --ds-banner-background: var(--ds-banner-faint-background);\n --ds-banner-heading: var(--color-foreground-primary);\n --ds-banner-description: var(--color-foreground-secondary);\n --ds-banner-border: var(--color-border-tertiary);\n}\n\n:host(.banner--contrast-medium) {\n --ds-banner-background: var(--color-background-medium-neutral);\n --ds-banner-heading: var(--color-foreground-on-medium-background-primary);\n --ds-banner-description: var(--color-foreground-on-medium-background-secondary);\n --ds-banner-border: var(--color-border-on-medium-background-tertiary);\n}\n\n:host(.banner--intent-brand.banner--contrast-medium) { --ds-banner-background: var(--color-background-medium-brand); }\n:host(.banner--intent-positive.banner--contrast-medium) { --ds-banner-background: var(--color-background-medium-positive); }\n:host(.banner--intent-warning.banner--contrast-medium) { --ds-banner-background: var(--color-background-medium-warning); }\n:host(.banner--intent-caution.banner--contrast-medium) { --ds-banner-background: var(--color-background-medium-caution); }\n:host(.banner--intent-negative.banner--contrast-medium) { --ds-banner-background: var(--color-background-medium-negative); }\n\n:host(.banner--contrast-strong) {\n --ds-banner-background: var(--color-background-strong-neutral);\n --ds-banner-heading: var(--color-foreground-on-strong-background-primary);\n --ds-banner-description: var(--color-foreground-on-strong-background-secondary);\n --ds-banner-border: var(--color-border-on-strong-background-tertiary);\n}\n\n:host(.banner--intent-brand.banner--contrast-strong) { --ds-banner-background: var(--color-background-strong-brand); }\n:host(.banner--intent-positive.banner--contrast-strong) { --ds-banner-background: var(--color-background-strong-positive); }\n:host(.banner--intent-warning.banner--contrast-strong) { --ds-banner-background: var(--color-background-strong-warning); }\n:host(.banner--intent-caution.banner--contrast-strong) { --ds-banner-background: var(--color-background-strong-caution); }\n:host(.banner--intent-negative.banner--contrast-strong) { --ds-banner-background: var(--color-background-strong-negative); }\n\n:host(.banner--contrast-bold) {\n --ds-banner-background: var(--color-background-bold-neutral);\n --ds-banner-heading: var(--color-foreground-on-bold-background-primary);\n --ds-banner-description: var(--color-foreground-on-bold-background-secondary);\n --ds-banner-border: var(--color-border-on-bold-background-tertiary);\n}\n\n:host(.banner--intent-brand.banner--contrast-bold) { --ds-banner-background: var(--color-background-bold-brand); }\n:host(.banner--intent-positive.banner--contrast-bold) { --ds-banner-background: var(--color-background-bold-positive); }\n:host(.banner--intent-warning.banner--contrast-bold) { --ds-banner-background: var(--color-background-bold-warning); }\n:host(.banner--intent-caution.banner--contrast-bold) { --ds-banner-background: var(--color-background-bold-caution); }\n:host(.banner--intent-negative.banner--contrast-bold) { --ds-banner-background: var(--color-background-bold-negative); }\n\n@media (prefers-reduced-motion: reduce) {\n :host,\n .banner-surface {\n transition: none;\n }\n}\n\n@media (forced-colors: active) {\n .banner-surface {\n color: var(--ds-forced-color-content);\n background-color: var(--ds-forced-color-surface);\n border-bottom-color: var(--ds-forced-color-content);\n }\n\n .banner-heading,\n .banner-description {\n color: var(--ds-forced-color-content);\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { resolveMotionTimeMs, TOKEN_DEFAULTS } from '../../utils';\n\nexport type BannerIntent =\n | 'neutral'\n | 'brand'\n | 'positive'\n | 'warning'\n | 'caution'\n | 'negative';\n\nexport type BannerContrast = 'faint' | 'medium' | 'strong' | 'bold';\nexport type BannerAnnouncement = 'none' | 'polite' | 'assertive';\nexport type BannerOrientation = 'horizontal' | 'vertical';\n\ntype BannerPhase = 'closed' | 'open' | 'closing';\n\n@Component({\n tag: 'ds-banner',\n styleUrl: 'Banner.css',\n scoped: true,\n})\nexport class Banner {\n @Element() el!: HTMLElement;\n\n /** Required explanatory copy. */\n @Prop() description!: string;\n /** Optional visual heading rendered before the description. */\n @Prop() heading: string = '';\n /** Semantic color family. */\n @Prop({ reflect: true }) intent: BannerIntent = 'neutral';\n /** Surface fill weight. */\n @Prop({ reflect: true }) contrast: BannerContrast = 'faint';\n /** Copy and action-lane arrangement, selected by the application. */\n @Prop({ reflect: true }) orientation: BannerOrientation = 'horizontal';\n /** Controlled visibility. Keep the element mounted until dsAfterClose when unmounting. */\n @Prop({ reflect: true }) open: boolean = true;\n /** Localized accessible label for the close control. */\n @Prop() dismissLabel: string = 'Dismiss banner';\n /** Live-region urgency, independent of visual intent. */\n @Prop() announcement: BannerAnnouncement = 'none';\n\n /** Emitted when the close control requests dismissal. The application controls open. */\n @Event() dsClose!: EventEmitter<MouseEvent>;\n /** Emitted once after controlled exit motion and layout collapse complete. */\n @Event() dsAfterClose!: EventEmitter<void>;\n\n @State() private rendered = false;\n @State() private phase: BannerPhase = 'closed';\n @State() private hasActions = false;\n\n private loaded = false;\n private transitionTimer: ReturnType<typeof setTimeout> | null = null;\n private openFrame: number | null = null;\n private closePending = false;\n\n componentWillLoad() {\n this.rendered = this.open;\n }\n\n componentDidLoad() {\n this.loaded = true;\n this.updateActionsPresence();\n if (this.open) this.startOpen();\n }\n\n disconnectedCallback() {\n this.clearTransitionWork();\n }\n\n @Watch('open')\n onOpenChange(isOpen: boolean) {\n if (!this.loaded) return;\n if (isOpen) this.startOpen();\n else this.startClose();\n }\n\n private get closeMotionMs(): number {\n return resolveMotionTimeMs(\n TOKEN_DEFAULTS.motionShort3,\n TOKEN_DEFAULTS.animationDurationShort3,\n );\n }\n\n private clearTransitionWork() {\n if (this.transitionTimer) clearTimeout(this.transitionTimer);\n if (this.openFrame !== null) cancelAnimationFrame(this.openFrame);\n this.transitionTimer = null;\n this.openFrame = null;\n }\n\n private startOpen() {\n this.clearTransitionWork();\n this.closePending = false;\n this.rendered = true;\n this.phase = 'closed';\n this.openFrame = requestAnimationFrame(() => {\n this.openFrame = null;\n if (this.open) this.phase = 'open';\n });\n }\n\n private startClose() {\n this.clearTransitionWork();\n if (!this.rendered || this.phase === 'closed') {\n this.rendered = false;\n return;\n }\n\n this.closePending = true;\n this.phase = 'closing';\n const duration = this.closeMotionMs;\n if (duration <= 0) {\n this.finishClose();\n return;\n }\n this.transitionTimer = setTimeout(() => {\n this.transitionTimer = null;\n this.finishClose();\n }, duration);\n }\n\n private finishClose() {\n if (this.open || !this.closePending) return;\n this.closePending = false;\n this.rendered = false;\n this.phase = 'closed';\n this.dsAfterClose.emit();\n }\n\n private updateActionsPresence(slot?: HTMLSlotElement) {\n const actions = slot\n ? slot.assignedElements().filter(element => element.tagName === 'DS-BUTTON-UNFILLED')\n : Array.from(this.el.querySelectorAll('ds-button-unfilled[slot=\"actions\"]'));\n this.hasActions = actions.length > 0;\n }\n\n private requestClose(event: CustomEvent<MouseEvent>) {\n if (!this.open || this.phase === 'closing') return;\n this.dsClose.emit(event.detail);\n }\n\n private get role(): 'status' | 'alert' | undefined {\n if (this.announcement === 'polite') return 'status';\n if (this.announcement === 'assertive') return 'alert';\n return undefined;\n }\n\n private get ariaLive(): 'polite' | 'assertive' | undefined {\n return this.announcement === 'none' ? undefined : this.announcement;\n }\n\n render() {\n const closing = this.phase === 'closing';\n const hostClass = {\n banner: true,\n 'banner--open': this.phase === 'open',\n 'banner--closing': closing,\n 'banner--hidden': !this.rendered,\n 'banner--has-actions': this.hasActions,\n [`banner--orientation-${this.orientation}`]: true,\n [`banner--intent-${this.intent}`]: true,\n [`banner--contrast-${this.contrast}`]: true,\n };\n\n return (\n <Host class={hostClass}>\n {this.rendered && (\n <div class=\"banner-overflow\">\n <section\n class=\"banner-surface ds-chrome-header ds-chrome-header--wrapping\"\n role={this.role}\n aria-live={this.ariaLive}\n aria-atomic={this.announcement === 'none' ? undefined : 'true'}\n aria-hidden={closing ? 'true' : undefined}\n inert={closing ? true : undefined}\n data-phase={this.phase}\n >\n {/* eslint-disable-next-line local/prefer-direct-ds-text -- The header-copy lane owns the 6px container inset separately from the inline text flow's 2px inset. */}\n <div class=\"banner-copy ds-chrome-header__copy ds-chrome-header__copy--wrapping ds-control--md\">\n <ds-text\n class=\"banner-copy-flow\"\n as=\"div\"\n variant=\"text-body-medium\"\n color=\"inherit\"\n >\n {this.heading && (\n <ds-text\n class=\"banner-heading\"\n as=\"span\"\n variant=\"text-title-small\"\n color=\"inherit\"\n >\n {this.heading}\n </ds-text>\n )}\n <span class=\"banner-description\">{this.description}</span>\n </ds-text>\n </div>\n <div class=\"banner-trailing ds-chrome-header__trailing\">\n <div class={{ 'banner-actions': true, 'banner-actions--empty': !this.hasActions }}>\n <slot\n name=\"actions\"\n onSlotchange={(event: Event) =>\n this.updateActionsPresence(event.currentTarget as HTMLSlotElement)\n }\n />\n </div>\n <div class=\"banner-dismiss\">\n <ds-tooltip label={this.dismissLabel} side=\"bottom\" size=\"sm\">\n <ds-button-unfilled\n class=\"banner-close\"\n variant=\"icon\"\n icon=\"Cross\"\n size=\"md\"\n type=\"button\"\n background={this.contrast}\n aria-label={this.dismissLabel}\n hasBorder={false}\n activeFill={false}\n onDsClick={(event: CustomEvent<MouseEvent>) => this.requestClose(event)}\n />\n </ds-tooltip>\n </div>\n </div>\n </section>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{M as o,d as s}from"./p-
|
|
1
|
+
import{M as o,d as s}from"./p-CzraIk34.js";const r=o;const t=s;export{r as DsMobileBarNav,t as defineCustomElement};
|
|
2
2
|
//# sourceMappingURL=ds-mobile-bar-nav.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{p as s,H as e,c as t,h as i,a,t as n}from"./index.js";import{c as o,d as l}from"./p-DaqFuVKZ.js";import{C as r,c as h,r as d,a as c,b as p,d as u}from"./p-iCjUWcp7.js";import{i as f,a as b,r as m,b as g,S as v,c as _}from"./p-BnQXAbif.js";import{d as y}from"./p-yhj1lIPx.js";import{d as k}from"./p-IYy-jODg.js";import{d as w}from"./p-Bl6A5AJq.js";import{d as x}from"./p-BPyymeuR.js";import{d as C}from"./p-BFfHIu6y.js";import{d as S}from"./p-BR_oMaas.js";import{d as D}from"./p-BAfG3M8z.js";import{d as M}from"./p-Ca-I2UnB.js";import{d as B}from"./p-1S9AW2MA.js";import{d as L}from"./p-BtuYufL3.js";import{d as A}from"./p-CuJ3J6OJ.js";import{d as j}from"./p-B4_0Ys4w.js";import{d as P}from"./p-BBtjABBS.js";import{d as T}from"./p-6B411hQA.js";import{d as E}from"./p-DX4c3kZ1.js";import{d as z}from"./p-Ca6s5fLR.js";import{d as N}from"./p-CxgMUvqg.js";import{d as I}from"./p-DVuxzrCC.js";import{d as $}from"./p-DHF5cLzr.js";import{d as F}from"./p-Eep5mxtv.js";import{d as O}from"./p-Bb4f5SuF.js";import{d as H}from"./p-D2cjoj2r.js";const G=["none","cool","neutral","warm","fresh"];const U="neutral";const V={cool:{opacity:.1,stops:[{color:"var(--color-background-transparent)",position:0},{color:"var(--color-color-intent-blue-strong-background)",position:100}]},neutral:{opacity:.1,stops:[{color:"var(--color-background-transparent)",position:0},{color:"var(--color-color-intent-grey-strong-background)",position:100}]},warm:{opacity:.1,stops:[{color:"var(--color-background-transparent)",position:0},{color:"var(--color-color-intent-yellow-strong-background)",position:100}]},fresh:{opacity:.4,stops:[{color:"var(--color-color-intent-cyan-faint-background)",position:0},{color:"var(--color-background-transparent)",position:47},{color:"var(--color-background-transparent)",position:58},{color:"var(--color-color-intent-red-faint-background)",position:83},{color:"var(--color-color-intent-pink-faint-background)",position:100}]}};const R="100% 100% at 0% 0%";function W(s){const e=J(s);return e==="none"?null:V[e]}function q(s){return String(W(s)?.opacity??0)}function K(s){return G.includes(s)}function J(s){return s!=null&&K(s)?s:U}function Y(s){const e=J(s);if(e==="none")return"none";return Q(V[e].stops)}function Q(s){const e=s.map((s=>`${s.color} ${s.position}%`)).join(", ");return`radial-gradient(${R}, ${e})`}const X="--ds-shell-gradient-image";const Z="--ds-shell-gradient-size";const ss="--ds-shell-gradient-position-panel";const es="--ds-shell-gradient-position-bar";const ts="--ds-shell-gradient-opacity";function is(s=U){return Y(s)}function as(s){const e=typeof globalThis.window!=="undefined"?globalThis.window:undefined;if(!e)return{width:0,height:0};const t=e.visualViewport;return{width:Math.round(t?.width??e.innerWidth),height:Math.round(t?.height??e.innerHeight)}}function ns(s){return`${Math.round(s.width)}px ${Math.round(s.height)}px`}function os(){return"0 0"}function ls(s){return`${-Math.round(s)}px 0`}const rs={k:"search",a:"agents",s:"stacks",m:"messages",n:"activity","/":"help"};function hs(s){return!s.metaKey&&!s.ctrlKey&&!s.altKey&&!s.shiftKey}function ds(s){if(!s||typeof s!=="object")return false;if(!("closest"in s)||typeof s.closest!=="function")return false;const e=s;const t=e.closest('input, textarea, select, [contenteditable=""], [contenteditable="true"], [contenteditable="plaintext-only"]');if(t)return true;const i=e.getAttribute("role");if(i==="textbox"||i==="combobox"||i==="searchbox")return true;return Boolean(e.isContentEditable)}function cs(s){if(s.key==="["||s.code==="BracketLeft")return"[";if(s.key==="]"||s.code==="BracketRight")return"]";return s.key.length===1?s.key.toLowerCase():s.key.toLowerCase()}function ps(s){if(!hs(s))return null;const e=cs(s);if(e==="[")return"toggle-panel-nav";if(e==="]")return"close-panel-tools";const t=rs[e];if(t)return`open-tool:${t}`;return null}function us(s,e){if(typeof document==="undefined")return 0;const t=document.createElement("div");t.style.cssText="position:absolute;visibility:hidden;pointer-events:none;height:0;width:var("+e+");";s.appendChild(t);const i=t.getBoundingClientRect().width;s.removeChild(t);return i}function fs(s){return{expandedPx:us(s,"--_nav-width"),collapsedPx:us(s,"--_nav-width-collapsed")}}function bs(s,e){if(e?.classList.contains("panel-nav--collapsed"))return true;const t=s?.collapsed;return t===true}function ms(s,e){return e?s.collapsedPx:s.expandedPx}const gs=()=>`@media (forced-colors: active){.sc-ds-shell-app:root,.sc-ds-shell-app-h,.ds-forced-colors-scope.sc-ds-shell-app{--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-shell-app-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-shell-app-h,.ds-focus-ring.sc-ds-shell-app,.ds-focus-ring-inset.sc-ds-shell-app-h,.ds-focus-ring-inset.sc-ds-shell-app{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-shell-app-h:focus-visible,.ds-focus-ring.sc-ds-shell-app: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-shell-app-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-shell-app{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-shell-app-h:focus-visible,.ds-focus-ring-inset.sc-ds-shell-app:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-shell-app-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-shell-app: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-shell-app-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-shell-app{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-shell-app-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-shell-app::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-shell-app-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}.sc-ds-shell-app-h{display:flex;flex-direction:column;height:100%;min-height:0;box-sizing:border-box;overflow:hidden;overscroll-behavior:none;font-family:var(--typography-font-family, system-ui);--ds-shell-panel-tools-width:var(--dimension-panel-width-xs)}.sc-ds-shell-app-h{--_shell-chrome-bg:var(--color-background-secondary)}.shell-app__row.sc-ds-shell-app{display:flex;flex:1 1 0;min-height:0;position:relative}.shell-app__banner.sc-ds-shell-app{flex:0 0 auto;min-width:0;position:relative;z-index:5}.shell-app__banner.sc-ds-shell-app-s>ds-banner,.shell-app__banner .sc-ds-shell-app-s>ds-banner{display:grid;width:100%}.shell-app__chrome.sc-ds-shell-app{position:absolute;inset:0;pointer-events:none;z-index:0;background-color:var(--_shell-chrome-bg)}.shell-app--gradient.sc-ds-shell-app-h .shell-app__chrome.sc-ds-shell-app::before{content:'';position:absolute;inset:0;pointer-events:none;background-position:0 0;background-attachment:fixed;z-index:1;opacity:var(--ds-shell-gradient-opacity, 1);background-image:var(--ds-shell-gradient-image, none);background-size:var(--ds-shell-gradient-size, auto);background-repeat:no-repeat}.shell-app__panel.sc-ds-shell-app{flex:0 0 auto;min-height:0;height:100%;position:relative;z-index:2}.shell-app__panel.sc-ds-shell-app-s>ds-panel-nav,.shell-app__panel .sc-ds-shell-app-s>ds-panel-nav{display:block;height:100%}.shell-app__panel.sc-ds-shell-app>ds-panel-nav.sc-ds-shell-app{display:block;height:100%}.shell-app__main.sc-ds-shell-app{flex:1 1 auto;min-width:0;min-height:0;display:grid;grid-template-columns:minmax(0, 1fr) auto;grid-template-rows:auto minmax(0, 1fr);grid-template-areas:'bar tools' 'content tools';position:relative;z-index:1}.shell-app__mobile-sheet-nav.sc-ds-shell-app,.shell-app__mobile-bar-nav.sc-ds-shell-app{display:none}.shell-app__bar.sc-ds-shell-app{grid-area:bar;flex:0 0 auto;min-width:0}.shell-app__bar.sc-ds-shell-app-s>ds-bar-nav,.shell-app__bar .sc-ds-shell-app-s>ds-bar-nav{display:block}.shell-app__bar.sc-ds-shell-app>ds-bar-nav.sc-ds-shell-app{display:block}.shell-app__content.sc-ds-shell-app{grid-area:content;flex:1 1 auto;min-width:0;min-height:0;overflow:auto;overscroll-behavior:none;contain:layout}.shell-app__content.sc-ds-shell-app{position:relative;z-index:1;background-color:var(--color-background-primary)}.shell-app__tools.sc-ds-shell-app{grid-area:tools;flex:0 0 auto;min-width:0;min-height:0;height:100%;display:flex;position:relative;z-index:0;overflow:hidden}.shell-app__tools.sc-ds-shell-app-s>ds-panel-tools,.shell-app__tools .sc-ds-shell-app-s>ds-panel-tools{display:block;height:100%;min-height:0}.shell-app__tools.sc-ds-shell-app-s>ds-shell-tools,.shell-app__tools .sc-ds-shell-app-s>ds-shell-tools{display:block;height:100%;min-height:0}.shell-app__tools.sc-ds-shell-app>ds-shell-tools.sc-ds-shell-app{display:block;height:100%;min-height:0}.shell-app__content.sc-ds-shell-app>ds-shell-page.sc-ds-shell-app{display:block;min-height:100%}.shell-app--tools-fullscreen.sc-ds-shell-app-h .shell-app__panel.sc-ds-shell-app,.shell-app--tools-fullscreen.sc-ds-shell-app-h .shell-app__bar.sc-ds-shell-app,.shell-app--tools-fullscreen.sc-ds-shell-app-h .shell-app__content.sc-ds-shell-app{visibility:hidden}.shell-app--mobile.sc-ds-shell-app-h{--_shell-chrome-bg:var(--color-background-primary);padding-block-start:env(safe-area-inset-top)}.shell-app--mobile.sc-ds-shell-app-h .shell-app__chrome.sc-ds-shell-app,.shell-app--mobile.sc-ds-shell-app-h .shell-app__panel.sc-ds-shell-app,.shell-app--mobile.sc-ds-shell-app-h .shell-app__bar.sc-ds-shell-app{display:none}.shell-app--mobile.sc-ds-shell-app-h .shell-app__main.sc-ds-shell-app{width:100%;box-sizing:border-box;grid-template-columns:minmax(0, 1fr);grid-template-rows:minmax(0, 1fr) auto;grid-template-areas:'stage' 'mobile-bar-nav';background:var(--color-background-primary)}.shell-app--mobile.sc-ds-shell-app-h .shell-app__content.sc-ds-shell-app,.shell-app--mobile.sc-ds-shell-app-h .shell-app__tools.sc-ds-shell-app,.shell-app--mobile.sc-ds-shell-app-h .shell-app__mobile-sheet-nav.sc-ds-shell-app{grid-area:stage;min-width:0;min-height:0;height:100%;position:relative}.shell-app--mobile.sc-ds-shell-app-h .shell-app__content.sc-ds-shell-app{z-index:1;overflow:auto}.shell-app--mobile.sc-ds-shell-app-h .shell-app__tools.sc-ds-shell-app{z-index:2;width:100%;overflow:hidden;background:var(--color-background-primary)}.shell-app--mobile.sc-ds-shell-app-h .shell-app__mobile-sheet-nav.sc-ds-shell-app{display:block;z-index:3;overflow:hidden;background:var(--color-background-primary)}.shell-app--mobile.sc-ds-shell-app-h .shell-app__mobile-bar-nav.sc-ds-shell-app{grid-area:mobile-bar-nav;display:block;min-width:0;position:relative;z-index:4}.shell-app--mobile.sc-ds-shell-app-h .shell-app__tools[hidden].sc-ds-shell-app,.shell-app--mobile.sc-ds-shell-app-h .shell-app__mobile-sheet-nav[hidden].sc-ds-shell-app,.shell-app--mobile.sc-ds-shell-app-h .shell-app__mobile-bar-nav[hidden].sc-ds-shell-app{display:none}.shell-app--mobile-tool-active.sc-ds-shell-app-h .shell-app__content.sc-ds-shell-app,.shell-app--mobile-sheet-nav-open.sc-ds-shell-app-h .shell-app__content.sc-ds-shell-app,.shell-app--mobile-sheet-nav-open.sc-ds-shell-app-h .shell-app__tools.sc-ds-shell-app{visibility:hidden}`;const vs=s(class s extends e{constructor(s){super();if(s!==false){this.__registerHost()}this.dsResponsiveModeChange=t(this,"dsResponsiveModeChange");this.dsNavSelect=t(this,"dsNavSelect");this.dsTabChange=t(this,"dsTabChange");this.dsSubsectionChange=t(this,"dsSubsectionChange");this.dsPageBack=t(this,"dsPageBack");this.dsBreadcrumbSelect=t(this,"dsBreadcrumbSelect");this.dsPageAction=t(this,"dsPageAction");this.dsToolChange=t(this,"dsToolChange");this.dsHeaderBack=t(this,"dsHeaderBack");this.dsHeaderAction=t(this,"dsHeaderAction");this.dsPresentationChange=t(this,"dsPresentationChange");this.dsBrowseContextChange=t(this,"dsBrowseContextChange");this.dsNavFooterAction=t(this,"dsNavFooterAction");this.dsNavUserAction=t(this,"dsNavUserAction");this.composition="managed";this.navigation={};this.pageChrome={};this.tools={};this.navStyle="dashboard";this.gradientPreset=U;this.shortcutsEnabled=true;this.mobileDestination="area";this.mobileSheetNavOpen=false;this.toolsFullscreen=false;this.resolvedMode="desktop";this.managedToolsOpen=false;this.managedActiveTool="";this.managedToolPresentation="drawer";this.managedMobileDestination="area";this.managedMobileSheetNavOpen=false;this.managedInboxTool="";this.managedBrowseContext="dashboard";this.resizeObserver=null;this.hasLoaded=false;this.panelNavTransition=new r;this.chromeSyncCoalescer=h((()=>this.syncChrome()));this.panelWidthTokens={expandedPx:0,collapsedPx:0};this.cachedViewportWidth=0;this.cachedViewportHeight=0;this.onWindowResize=()=>{this.updateResponsiveMode();if(this.panelNavTransition.isActive)return;this.scheduleChromeSync()};this.onVisualViewportChange=()=>{if(this.panelNavTransition.isActive)return;this.scheduleChromeSync()};this.onChromeTransitionStart=s=>{if(d(s)!=="panel-nav")return;this.panelNavTransition.enter();const e=as();this.cachedViewportWidth=e.width;this.cachedViewportHeight=e.height;this.syncChrome()};this.onChromeTransitionEnd=s=>{if(d(s)!=="panel-nav")return;this.panelNavTransition.exit();if(!this.panelNavTransition.isActive){this.scheduleChromeSync()}};this.handleManagedNavSelect=s=>{s.stopPropagation();this.dsNavSelect.emit(s.detail)};this.handleManagedTabChange=s=>{s.stopPropagation();this.dsTabChange.emit(s.detail)};this.handleManagedPageBack=s=>{s.stopPropagation();this.dsPageBack.emit(s.detail)};this.handleManagedBreadcrumbSelect=s=>{s.stopPropagation();const e=this.dsBreadcrumbSelect.emit(s.detail);if(e.defaultPrevented)s.preventDefault()};this.handleManagedSubsectionChange=s=>{s.stopPropagation();this.dsSubsectionChange.emit(s.detail)};this.handleManagedPageAction=s=>{s.stopPropagation();this.dsPageAction.emit(s.detail)};this.handleManagedToolChange=s=>{s.stopPropagation();const{id:e,selected:t}=s.detail;this.managedActiveTool=e;this.managedToolsOpen=t;const i=this.resolvedToolItems.find((s=>s.id===e));if(i?.mobileDestination==="inbox"||f(e)){this.managedInboxTool=e}this.managedMobileDestination=t?i?.mobileDestination??b(true,e):"area";this.managedMobileSheetNavOpen=false;this.dsToolChange.emit(s.detail)};this.handleManagedPresentationChange=s=>{s.stopPropagation();this.managedToolPresentation=s.detail.presentation;this.toolsFullscreen=s.detail.presentation==="fullscreen";this.dsPresentationChange.emit(s.detail)};this.handleManagedHeaderBack=s=>{s.stopPropagation();this.dsHeaderBack.emit(s.detail)};this.handleManagedHeaderAction=s=>{s.stopPropagation();this.dsHeaderAction.emit(s.detail)};this.handleManagedSheetToggle=s=>{s.stopPropagation();this.managedMobileSheetNavOpen=s.detail;if(s.detail){this.managedMobileDestination="area";this.managedToolsOpen=false}};this.handleManagedMobileDestination=s=>{s.stopPropagation();const e=s.detail.destination;this.managedMobileSheetNavOpen=false;this.managedMobileDestination=e;if(e==="area"){this.managedToolsOpen=false;return}const t=e==="inbox"?m(this.managedInboxTool,this.availableInboxTools):e;if(!t)return;const i=this.resolvedToolItems.find((s=>s.id===t||e!=="inbox"&&s.mobileDestination===e));if(!i||i.isInactive)return;const a=i.id;this.managedActiveTool=a;this.managedToolsOpen=true;if(f(a))this.managedInboxTool=a;this.dsToolChange.emit({id:a,selected:true})};this.handleManagedAreaSelect=s=>{s.stopPropagation();this.managedMobileSheetNavOpen=false;this.managedMobileDestination="area";this.dsNavSelect.emit(s.detail)};this.handleManagedBrowseContext=s=>{s.stopPropagation();this.managedBrowseContext=s.detail;this.dsBrowseContextChange.emit(s.detail)};this.handleManagedSheetClose=s=>{s.stopPropagation();this.managedMobileSheetNavOpen=false};this.handleManagedNavFooterAction=s=>{s.stopPropagation();this.dsNavFooterAction.emit()};this.handleManagedNavUserAction=s=>{s.stopPropagation();this.dsNavUserAction.emit(s.detail)}}get managed(){return this.composition==="managed"}get effectiveMobileDestination(){return this.managed?this.managedMobileDestination:this.mobileDestination}get effectiveMobileSheetNavOpen(){return this.managed?this.managedMobileSheetNavOpen:this.mobileSheetNavOpen}get resolvedNavigationGroups(){if(this.navigation.groups?.length)return this.navigation.groups;return this.managedBrowseContext==="settings"?this.navigation.settingsGroups??[]:this.navigation.dashboardGroups??[]}get resolvedToolItems(){return this.tools.items??o}get availableInboxTools(){return this.resolvedToolItems.filter((s=>!s.isInactive&&(s.mobileDestination==="inbox"||f(s.id)))).map((s=>s.id))}componentWillLoad(){if(typeof window!=="undefined"){this.resolvedMode=g(window.innerWidth)}this.managedBrowseContext=this.navigation.browseContext??this.navStyle;this.managedMobileDestination=this.mobileDestination;this.managedMobileSheetNavOpen=this.mobileSheetNavOpen;this.managedInboxTool=m("",this.availableInboxTools)}componentDidLoad(){this.hasLoaded=true;this.syncSlottedNavStyle();this.syncSlottedMobileState();this.connectMetricsObserver();this.connectViewportListeners();this.el.addEventListener(c,this.onChromeTransitionStart);this.el.addEventListener(p,this.onChromeTransitionEnd);requestAnimationFrame((()=>{this.cachePanelWidthTokens();this.scheduleChromeSync()}));const s=this.el.querySelector("ds-shell-tools, ds-panel-tools");this.toolsFullscreen=s?.getAttribute("presentation")==="fullscreen"}handleToolsPresentation(s){this.toolsFullscreen=s.detail?.presentation==="fullscreen"}disconnectedCallback(){this.resizeObserver?.disconnect();this.resizeObserver=null;this.disconnectViewportListeners();this.chromeSyncCoalescer.cancel();this.el.removeEventListener(c,this.onChromeTransitionStart);this.el.removeEventListener(p,this.onChromeTransitionEnd)}onShellPropsChange(){this.syncSlottedNavStyle();this.scheduleChromeSync()}handleNavigationChange(){this.managedBrowseContext=this.navigation.browseContext??this.navStyle}handleToolsChange(){if(this.managedActiveTool&&!this.resolvedToolItems.some((s=>s.id===this.managedActiveTool))){this.managedToolsOpen=false;this.managedActiveTool="";this.managedMobileDestination="area"}this.managedInboxTool=m(this.managedInboxTool,this.availableInboxTools)}onMobileStateChange(s,t){if(this.managed){this.managedMobileDestination=this.mobileDestination;this.managedMobileSheetNavOpen=this.mobileSheetNavOpen}this.syncSlottedMobileState();if(t===true&&!this.effectiveMobileSheetNavOpen&&this.resolvedMode==="mobile"){requestAnimationFrame((()=>{const s=this.el.querySelector("ds-mobile-bar-nav");const t=document.activeElement;if(t instanceof e&&s?.contains(t))return;void s?.focusDestination?.("sheet-nav")}))}}updateResponsiveMode(){if(typeof window==="undefined")return;const s=g(window.innerWidth);if(s===this.resolvedMode)return;this.resolvedMode=s;this.syncSlottedMobileState();this.scheduleChromeSync();if(this.hasLoaded)this.dsResponsiveModeChange.emit({mode:s})}scheduleChromeSync(){this.chromeSyncCoalescer.schedule()}syncSlottedNavStyle(){const s=this.el.querySelector("ds-panel-nav");const e=this.el.querySelector("ds-bar-nav");if(s){s.setAttribute("nav-style",this.navStyle);s.navStyle=this.navStyle}if(e){e.setAttribute("nav-style",this.navStyle);e.navStyle=this.navStyle}}syncSlottedMobileState(){const s=this.el.querySelector("ds-shell-tools");const e=this.el.querySelector("ds-mobile-bar-nav");const t=this.el.querySelector("ds-mobile-sheet-nav");if(s){s.setAttribute("responsive-mode",this.resolvedMode);s.responsiveMode=this.resolvedMode}if(e){e.activeDestination=this.effectiveMobileDestination;e.sheetNavExpanded=this.effectiveMobileSheetNavOpen}if(t){t.open=this.effectiveMobileSheetNavOpen}}connectMetricsObserver(){this.resizeObserver=new ResizeObserver((()=>{if(this.panelNavTransition.isActive)return;this.scheduleChromeSync()}));this.resizeObserver.observe(this.el);const s=this.el.querySelector(".shell-app__panel");if(s)this.resizeObserver.observe(s)}connectViewportListeners(){if(typeof window==="undefined")return;window.addEventListener("resize",this.onWindowResize,{passive:true});const s=window.visualViewport;if(s){s.addEventListener("resize",this.onVisualViewportChange,{passive:true});s.addEventListener("scroll",this.onVisualViewportChange,{passive:true})}}disconnectViewportListeners(){if(typeof window==="undefined")return;window.removeEventListener("resize",this.onWindowResize);const s=window.visualViewport;if(s){s.removeEventListener("resize",this.onVisualViewportChange);s.removeEventListener("scroll",this.onVisualViewportChange)}}cachePanelWidthTokens(){const s=this.el.querySelector("ds-panel-nav .panel-nav");if(!s)return;this.panelWidthTokens=fs(s)}applyGradientVars(s,e){const t=s.style;for(const[s,i]of Object.entries(e)){if(i===null)t.removeProperty(s);else t.setProperty(s,i)}}clearGradientPaintVars(s){const e=[X,Z,ts];for(const t of s){for(const s of e)t.style.removeProperty(s)}}syncChromeLayoutVars(s,e,t,i){if(s){s.style.setProperty(ss,t)}if(e){e.style.setProperty(es,i)}}resolvePanelWidthPx(s){const e=s?.querySelector(".panel-nav");if(this.panelNavTransition.isActive&&this.panelWidthTokens.expandedPx>0){const t=bs(s,e);return ms(this.panelWidthTokens,t)}const t=this.el.querySelector(".shell-app__panel");const i=t?.getBoundingClientRect().width??0;if(i>0)return i;if(this.panelWidthTokens.expandedPx>0){const t=bs(s,e);return ms(this.panelWidthTokens,t)}return 0}resolveViewportDimensions(){if(this.panelNavTransition.isActive&&this.cachedViewportWidth>0){return{width:this.cachedViewportWidth,height:this.cachedViewportHeight}}return as()}chromeLayerActive(){return this.resolvedMode!=="mobile"&&J(this.gradientPreset)!=="none"}handleWindowKeyDown(s){if(!this.shortcutsEnabled)return;if(ds(s.target))return;const e=ps(s);if(!e)return;s.preventDefault();const t=this.el.querySelector("ds-panel-nav");const i=this.el.querySelector("ds-shell-tools, ds-panel-tools");if(e==="toggle-panel-nav"){void t?.toggleCollapsed();return}if(e==="close-panel-tools"){void i?.closeDrawer?.();return}if(e.startsWith("open-tool:")&&i){const s=e.slice("open-tool:".length);void i.activateTool?.(s)}}async activateTool(s){const e=this.el.querySelector("ds-shell-tools, ds-panel-tools");await(e?.activateTool?.(s))}async closeGlobalSurface(){if(this.managedMobileSheetNavOpen){this.managedMobileSheetNavOpen=false;return}const s=this.el.querySelector("ds-shell-tools, ds-panel-tools");await(s?.closeDrawer?.())}async setToolPresentation(s){this.managedToolPresentation=s;this.toolsFullscreen=s==="fullscreen"}get currentArea(){const s=[...this.navigation.dashboardGroups??[],...this.navigation.settingsGroups??[],...this.resolvedNavigationGroups];const e=s.flatMap((s=>s.items));const t=this.navigation.activeId||y(this.navigation.currentUrl??this.pageChrome.currentUrl??"",e);return e.find((s=>s.id===t))??e[0]??{id:"area",icon:"MapPage",label:this.pageChrome.heading||"Area"}}toolDot(s){return this.resolvedToolItems.find((e=>e.id===s))?.dot??false}syncChrome(){const s=this.el.querySelector("ds-panel-nav");const e=this.el.querySelector("ds-bar-nav");const t=[this.el,s,e].filter((s=>s!==null));const i=()=>{if(s)s.style.removeProperty(ss);if(e)e.style.removeProperty(es)};const a=J(this.gradientPreset);if(a==="none"||this.resolvedMode==="mobile"){this.clearGradientPaintVars(t);i();return}const n=this.resolveViewportDimensions();const o=this.resolvePanelWidthPx(s);const l=os();const r=ls(o);this.syncChromeLayoutVars(s,e,l,r);const h=is(a);const d=ns({width:n.width,height:n.height});const c=q(a);for(const s of t){if(s===this.el){this.applyGradientVars(s,{[X]:h,[Z]:d,[ss]:l,[es]:r,[ts]:c});continue}const e=s.tagName.toLowerCase()==="ds-bar-nav";this.applyGradientVars(s,{[X]:h,[Z]:d,[ts]:c,[ss]:e?null:l,[es]:e?r:null})}}renderManagedPanelNav(){const s=this.navigation;return i("ds-panel-nav",{navStyle:this.navStyle,groups:this.resolvedNavigationGroups,breakpoint:v,routerMode:s.routerMode??"event",activeId:s.activeId??"",currentUrl:s.currentUrl??this.pageChrome.currentUrl??"",storageKey:s.storageKey??"",userName:s.userName??"",userInitial:s.userInitial??"",accountMenuExpanded:s.accountMenuExpanded??false,dashboardLabel:s.dashboardLabel??"Dashboard",settingsLabel:s.settingsLabel??"Settings",accountLabel:s.accountLabel??"Account",dashboardNavigationLabel:s.dashboardNavigationLabel??"Dashboard navigation",settingsNavigationLabel:s.settingsNavigationLabel??"Settings navigation",navigationItemsLabel:s.navigationLabel??"Navigation items",onDsNavSelect:this.handleManagedNavSelect,onDsNavFooterAction:this.handleManagedNavFooterAction,onDsNavUserAction:this.handleManagedNavUserAction})}renderManagedBarNav(){return i("ds-bar-nav",{navStyle:this.navStyle,tabs:this.pageChrome.tabs??[],value:this.pageChrome.value??"",heading:this.pageChrome.routeHeading??this.pageChrome.heading,basePath:this.pageChrome.basePath??"",currentUrl:this.pageChrome.currentUrl??this.navigation.currentUrl??"",onDsTabChange:this.handleManagedTabChange})}renderManagedToolSlots(){const s=this.resolvedToolItems.map((s=>s.id));return s.flatMap((s=>[i("slot",{name:s,slot:s}),i("slot",{name:`${s}-view`,slot:`${s}-view`})]))}renderManagedTools(){const s=this.tools;return i("ds-shell-tools",{responsiveMode:this.resolvedMode,open:this.managedToolsOpen,activeTool:this.managedActiveTool,presentation:this.managedToolPresentation,fullscreenHeaderMode:s.fullscreenHeaderMode??"shared",items:this.resolvedToolItems,headers:s.headers??{},storageKey:s.storageKey??"",toolsLabel:s.toolsLabel??"Tools",toolShortcutsLabel:s.toolShortcutsLabel??"Tool shortcuts",inboxLabel:s.inboxLabel??"Inbox",inboxNavigationLabel:s.inboxNavigationLabel??"Inbox sections",onDsToolChange:this.handleManagedToolChange,onDsPresentationChange:this.handleManagedPresentationChange,onDsHeaderBack:this.handleManagedHeaderBack,onDsHeaderAction:this.handleManagedHeaderAction},this.renderManagedToolSlots())}renderManagedMobileSheetNav(){const s=this.navigation;return i("ds-mobile-sheet-nav",{open:this.managedMobileSheetNavOpen,browseContext:this.managedBrowseContext,dashboardGroups:s.dashboardGroups??s.groups??[],settingsGroups:s.settingsGroups??[],currentUrl:s.currentUrl??this.pageChrome.currentUrl??"",navigationLabel:s.navigationLabel??"Application navigation",dashboardLabel:s.dashboardLabel??"Dashboard",settingsLabel:s.settingsLabel??"Settings",accountLabel:s.accountLabel??"Account",onDsAreaSelect:this.handleManagedAreaSelect,onDsBrowseContextChange:this.handleManagedBrowseContext,onDsClose:this.handleManagedSheetClose})}renderManagedMobileBarNav(){return i("ds-mobile-bar-nav",{hidden:this.tools.mobileBarHidden??false,activeDestination:this.managedMobileDestination,currentArea:this.currentArea,sheetNavExpanded:this.managedMobileSheetNavOpen,searchLabel:this.tools.items?.find((s=>s.id==="search"))?.ariaLabel??"Search",agentsLabel:this.tools.items?.find((s=>s.id==="agents"))?.ariaLabel??"Agents",inboxLabel:this.tools.inboxLabel??"Inbox",helpLabel:this.tools.items?.find((s=>s.id==="help"))?.ariaLabel??"Help & Support",searchDot:this.toolDot("search"),agentsDot:this.toolDot("agents"),inboxDot:this.toolDot("messages")||this.toolDot("stacks")||this.toolDot("activity"),onDsSheetNavToggle:this.handleManagedSheetToggle,onDsDestinationChange:this.handleManagedMobileDestination})}renderManagedMobileLeading(){if(!this.pageChrome.showBack){return i("slot",{name:"page-header-leading",slot:"leading"})}return[i("ds-tooltip",{slot:"leading",label:this.pageChrome.backAriaLabel??"Back",side:"bottom",size:"sm"},i("ds-button-unfilled",{variant:"icon",icon:this.pageChrome.backIcon??"ChevronLeft",size:"md","aria-label":this.pageChrome.backAriaLabel??"Back",activeFill:false,hasBorder:false,onDsClick:s=>this.dsPageBack.emit(s.detail)})),i("slot",{name:"page-header-leading",slot:"leading"})]}renderManagedMobileActions(){const s=this.pageChrome.mobileActions??[];return[...s.map((s=>i("ds-tooltip",{slot:"trailing",key:s.id,label:s.ariaLabel,side:"bottom",size:"sm"},i("ds-button-unfilled",{id:s.triggerId||undefined,variant:"icon",icon:s.icon,size:"md","aria-label":s.ariaLabel,haspopup:s.haspopup,controls:s.controls,expanded:s.expanded,pressed:s.pressed,isActive:!!s.expanded,isInactive:s.isInactive,activeFill:false,hasBorder:false,onDsClick:()=>this.dsPageAction.emit(s.id)})))),i("slot",{name:"page-header-trailing",slot:"trailing"})]}renderManagedPage(){const s=this.pageChrome;const e=s.showBack?[]:s.tabs??[];const t=(s.subsections??[]).map((s=>"type"in s?{type:"divider"}:{id:s.id,label:s.label,isInactive:s.isInactive}));return i("ds-shell-page",{responsiveMode:this.resolvedMode,headerCapacity:_(this.resolvedMode,this.managedToolsOpen),contentInset:s.contentInset??"default"},i("ds-bar-title",{slot:"header",heading:s.heading??"",description:s.description??"",showBack:s.showBack??false,backAriaLabel:s.backAriaLabel??"Back",backLabel:s.backLabel??"Back",breadcrumbs:s.breadcrumbs??[],breadcrumbAriaLabel:s.breadcrumbAriaLabel??"Breadcrumb",sections:t,value:s.subvalue??"",sectionsAriaLabel:s.subsectionsAriaLabel??"Change page subsection",primaryAction:s.primaryAction??null,actions:s.actions??[],actionsAriaLabel:s.actionsAriaLabel??"More page actions",onDsBack:this.handleManagedPageBack,onDsBreadcrumbSelect:this.handleManagedBreadcrumbSelect,onDsSectionChange:this.handleManagedSubsectionChange,onDsAction:this.handleManagedPageAction}),i("ds-mobile-header",{slot:"mobile-header",heading:s.heading??"",headingLevel:s.headingLevel??"h1",sections:e,value:s.showBack?"":s.value??"",sectionsAriaLabel:s.sectionsAriaLabel??"Change page section",subsections:s.subsections??[],subvalue:s.subvalue??"",subsectionsAriaLabel:s.subsectionsAriaLabel??"Change page subsection",tone:s.tone??"default",onDsSectionChange:this.handleManagedTabChange,onDsSubsectionChange:this.handleManagedSubsectionChange},this.renderManagedMobileLeading(),this.renderManagedMobileActions()),i("slot",null))}renderSlottedShell(s,e,t,n,o){return i(a,{class:s,"responsive-mode":this.resolvedMode},i("div",{class:"shell-app__banner"},i("slot",{name:"banner"})),i("div",{class:"shell-app__row"},i("div",{class:"shell-app__chrome","aria-hidden":"true"}),i("div",{class:"shell-app__panel","aria-hidden":o?"true":undefined,inert:o?true:undefined},i("slot",{name:"panel"})),i("div",{class:"shell-app__main"},i("div",{class:"shell-app__bar","aria-hidden":o?"true":undefined,inert:o?true:undefined},i("slot",{name:"bar"})),i("div",{class:"shell-app__tools","aria-hidden":e&&(!t||this.mobileSheetNavOpen)?"true":undefined,inert:e&&(!t||this.mobileSheetNavOpen)?true:undefined,hidden:e&&!t},i("slot",{name:"tools"})),i("div",{class:"shell-app__content ds-focus-ring","aria-hidden":o||n?"true":undefined,inert:o||n?true:undefined,tabIndex:0},i("slot",null)),i("div",{class:"shell-app__mobile-sheet-nav",hidden:!e||!this.mobileSheetNavOpen,"aria-hidden":e&&this.mobileSheetNavOpen?undefined:"true",inert:e&&this.mobileSheetNavOpen?undefined:true},i("slot",{name:"mobile-sheet-nav"})),i("div",{class:"shell-app__mobile-bar-nav",hidden:!e},i("slot",{name:"mobile-bar-nav"})))))}render(){const s=this.chromeLayerActive();const e=this.resolvedMode==="mobile";const t=e&&this.effectiveMobileDestination!=="area";const n=e&&(t||this.effectiveMobileSheetNavOpen);const o=!e&&this.toolsFullscreen;const l={"shell-app":true,"shell-app--gradient":s,[`shell-app--${this.navStyle}`]:true,[`shell-app--${this.resolvedMode}`]:true,"shell-app--tools-fullscreen":o,"shell-app--mobile-tool-active":t,"shell-app--mobile-sheet-nav-open":e&&this.effectiveMobileSheetNavOpen,"shell-app--managed":this.managed,"shell-app--slotted":!this.managed};if(!this.managed){return this.renderSlottedShell(l,e,t,n,o)}return i(a,{class:l,"responsive-mode":this.resolvedMode},i("div",{class:"shell-app__banner"},i("slot",{name:"banner"})),i("div",{class:"shell-app__row"},i("div",{class:"shell-app__chrome","aria-hidden":"true"}),i("div",{class:"shell-app__panel","aria-hidden":o?"true":undefined,inert:o?true:undefined},this.renderManagedPanelNav()),i("div",{class:"shell-app__main"},i("div",{class:"shell-app__bar","aria-hidden":o?"true":undefined,inert:o?true:undefined},this.renderManagedBarNav()),i("div",{class:"shell-app__tools","aria-hidden":e&&(!t||this.effectiveMobileSheetNavOpen)?"true":undefined,inert:e&&(!t||this.effectiveMobileSheetNavOpen)?true:undefined,hidden:e&&!t},this.renderManagedTools()),i("div",{class:"shell-app__content ds-focus-ring","aria-hidden":o||n?"true":undefined,inert:o||n?true:undefined,tabIndex:0},this.renderManagedPage()),i("div",{class:"shell-app__mobile-sheet-nav",hidden:!e||!this.effectiveMobileSheetNavOpen,"aria-hidden":e&&this.effectiveMobileSheetNavOpen?undefined:"true",inert:e&&this.effectiveMobileSheetNavOpen?undefined:true},this.renderManagedMobileSheetNav()),i("div",{class:"shell-app__mobile-bar-nav",hidden:!e},this.renderManagedMobileBarNav()))))}get el(){return this}static get watchers(){return{navStyle:[{onShellPropsChange:0}],gradientPreset:[{onShellPropsChange:0}],navigation:[{handleNavigationChange:0}],tools:[{handleToolsChange:0}],mobileDestination:[{onMobileStateChange:0}],mobileSheetNavOpen:[{onMobileStateChange:0}]}}static get style(){return gs()}},[262,"ds-shell-app",{composition:[513],navigation:[16],pageChrome:[16],tools:[16],navStyle:[513,"nav-style"],gradientPreset:[513,"gradient-preset"],shortcutsEnabled:[4,"shortcuts-enabled"],mobileDestination:[1,"mobile-destination"],mobileSheetNavOpen:[4,"mobile-sheet-nav-open"],toolsFullscreen:[32],resolvedMode:[32],managedToolsOpen:[32],managedActiveTool:[32],managedToolPresentation:[32],managedMobileDestination:[32],managedMobileSheetNavOpen:[32],managedInboxTool:[32],managedBrowseContext:[32],activateTool:[64],closeGlobalSurface:[64],setToolPresentation:[64]},[[0,"dsPresentationChange","handleToolsPresentation"],[10,"keydown","handleWindowKeyDown"]],{navStyle:[{onShellPropsChange:0}],gradientPreset:[{onShellPropsChange:0}],navigation:[{handleNavigationChange:0}],tools:[{handleToolsChange:0}],mobileDestination:[{onMobileStateChange:0}],mobileSheetNavOpen:[{onMobileStateChange:0}]}]);function _s(){if(typeof customElements==="undefined"){return}const s=["ds-shell-app","ds-badge","ds-bar-nav","ds-bar-title","ds-breadcrumb","ds-button-filled","ds-button-unfilled","ds-icon","ds-loader","ds-menu","ds-mobile-bar-nav","ds-mobile-header","ds-mobile-section-switcher","ds-mobile-sheet-nav","ds-panel-nav","ds-panel-tool-header","ds-panel-tools","ds-shell-page","ds-shell-tools","ds-swatch-picker","ds-switch","ds-tab-group","ds-text","ds-tooltip"];s.forEach((s=>{switch(s){case"ds-shell-app":if(!customElements.get(n(s))){customElements.define(n(s),vs)}break;case"ds-badge":if(!customElements.get(n(s))){k()}break;case"ds-bar-nav":if(!customElements.get(n(s))){u()}break;case"ds-bar-title":if(!customElements.get(n(s))){w()}break;case"ds-breadcrumb":if(!customElements.get(n(s))){x()}break;case"ds-button-filled":if(!customElements.get(n(s))){C()}break;case"ds-button-unfilled":if(!customElements.get(n(s))){S()}break;case"ds-icon":if(!customElements.get(n(s))){D()}break;case"ds-loader":if(!customElements.get(n(s))){M()}break;case"ds-menu":if(!customElements.get(n(s))){B()}break;case"ds-mobile-bar-nav":if(!customElements.get(n(s))){L()}break;case"ds-mobile-header":if(!customElements.get(n(s))){A()}break;case"ds-mobile-section-switcher":if(!customElements.get(n(s))){j()}break;case"ds-mobile-sheet-nav":if(!customElements.get(n(s))){P()}break;case"ds-panel-nav":if(!customElements.get(n(s))){T()}break;case"ds-panel-tool-header":if(!customElements.get(n(s))){E()}break;case"ds-panel-tools":if(!customElements.get(n(s))){l()}break;case"ds-shell-page":if(!customElements.get(n(s))){z()}break;case"ds-shell-tools":if(!customElements.get(n(s))){N()}break;case"ds-swatch-picker":if(!customElements.get(n(s))){I()}break;case"ds-switch":if(!customElements.get(n(s))){$()}break;case"ds-tab-group":if(!customElements.get(n(s))){F()}break;case"ds-text":if(!customElements.get(n(s))){O()}break;case"ds-tooltip":if(!customElements.get(n(s))){H()}break}}))}_s();const ys=vs;const ks=_s;export{ys as DsShellApp,ks as defineCustomElement};
|
|
1
|
+
import{p as s,H as e,c as t,h as i,a,t as n}from"./index.js";import{c as o,d as l}from"./p-DaqFuVKZ.js";import{C as r,c as h,r as d,a as c,b as p,d as u}from"./p-iCjUWcp7.js";import{i as f,a as b,r as m,b as g,S as v,c as _}from"./p-BnQXAbif.js";import{d as k}from"./p-yhj1lIPx.js";import{d as y}from"./p-IYy-jODg.js";import{d as w}from"./p-Bl6A5AJq.js";import{d as x}from"./p-BPyymeuR.js";import{d as C}from"./p-BFfHIu6y.js";import{d as S}from"./p-BR_oMaas.js";import{d as D}from"./p-BAfG3M8z.js";import{d as M}from"./p-Ca-I2UnB.js";import{d as A}from"./p-1S9AW2MA.js";import{d as B}from"./p-CzraIk34.js";import{d as L}from"./p-CuJ3J6OJ.js";import{d as j}from"./p-B4_0Ys4w.js";import{d as P}from"./p-BBtjABBS.js";import{d as T}from"./p-6B411hQA.js";import{d as E}from"./p-DX4c3kZ1.js";import{d as z}from"./p-Ca6s5fLR.js";import{d as N}from"./p-CxgMUvqg.js";import{d as I}from"./p-DVuxzrCC.js";import{d as $}from"./p-DHF5cLzr.js";import{d as F}from"./p-Eep5mxtv.js";import{d as O}from"./p-Bb4f5SuF.js";import{d as H}from"./p-D2cjoj2r.js";const G=["none","cool","neutral","warm","fresh"];const U="neutral";const V={cool:{opacity:.1,stops:[{color:"var(--color-background-transparent)",position:0},{color:"var(--color-color-intent-blue-strong-background)",position:100}]},neutral:{opacity:.1,stops:[{color:"var(--color-background-transparent)",position:0},{color:"var(--color-color-intent-grey-strong-background)",position:100}]},warm:{opacity:.1,stops:[{color:"var(--color-background-transparent)",position:0},{color:"var(--color-color-intent-yellow-strong-background)",position:100}]},fresh:{opacity:.4,stops:[{color:"var(--color-color-intent-cyan-faint-background)",position:0},{color:"var(--color-background-transparent)",position:47},{color:"var(--color-background-transparent)",position:58},{color:"var(--color-color-intent-red-faint-background)",position:83},{color:"var(--color-color-intent-pink-faint-background)",position:100}]}};const R="100% 100% at 0% 0%";function W(s){const e=J(s);return e==="none"?null:V[e]}function q(s){return String(W(s)?.opacity??0)}function K(s){return G.includes(s)}function J(s){return s!=null&&K(s)?s:U}function Q(s){const e=J(s);if(e==="none")return"none";return X(V[e].stops)}function X(s){const e=s.map((s=>`${s.color} ${s.position}%`)).join(", ");return`radial-gradient(${R}, ${e})`}const Y="--ds-shell-gradient-image";const Z="--ds-shell-gradient-size";const ss="--ds-shell-gradient-position-panel";const es="--ds-shell-gradient-position-bar";const ts="--ds-shell-gradient-opacity";function is(s=U){return Q(s)}function as(s){const e=typeof globalThis.window!=="undefined"?globalThis.window:undefined;if(!e)return{width:0,height:0};const t=e.visualViewport;return{width:Math.round(t?.width??e.innerWidth),height:Math.round(t?.height??e.innerHeight)}}function ns(s){return`${Math.round(s.width)}px ${Math.round(s.height)}px`}function os(){return"0 0"}function ls(s){return`${-Math.round(s)}px 0`}const rs={k:"search",a:"agents",s:"stacks",m:"messages",n:"activity","/":"help"};function hs(s){return!s.metaKey&&!s.ctrlKey&&!s.altKey&&!s.shiftKey}function ds(s){if(!s||typeof s!=="object")return false;if(!("closest"in s)||typeof s.closest!=="function")return false;const e=s;const t=e.closest('input, textarea, select, [contenteditable=""], [contenteditable="true"], [contenteditable="plaintext-only"]');if(t)return true;const i=e.getAttribute("role");if(i==="textbox"||i==="combobox"||i==="searchbox")return true;return Boolean(e.isContentEditable)}function cs(s){if(s.key==="["||s.code==="BracketLeft")return"[";if(s.key==="]"||s.code==="BracketRight")return"]";return s.key.length===1?s.key.toLowerCase():s.key.toLowerCase()}function ps(s){if(!hs(s))return null;const e=cs(s);if(e==="[")return"toggle-panel-nav";if(e==="]")return"close-panel-tools";const t=rs[e];if(t)return`open-tool:${t}`;return null}function us(s,e){if(typeof document==="undefined")return 0;const t=document.createElement("div");t.style.cssText="position:absolute;visibility:hidden;pointer-events:none;height:0;width:var("+e+");";s.appendChild(t);const i=t.getBoundingClientRect().width;s.removeChild(t);return i}function fs(s){return{expandedPx:us(s,"--_nav-width"),collapsedPx:us(s,"--_nav-width-collapsed")}}function bs(s,e){if(e?.classList.contains("panel-nav--collapsed"))return true;const t=s?.collapsed;return t===true}function ms(s,e){return e?s.collapsedPx:s.expandedPx}const gs=()=>`@media (forced-colors: active){.sc-ds-shell-app:root,.sc-ds-shell-app-h,.ds-forced-colors-scope.sc-ds-shell-app{--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-shell-app-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-shell-app-h,.ds-focus-ring.sc-ds-shell-app,.ds-focus-ring-inset.sc-ds-shell-app-h,.ds-focus-ring-inset.sc-ds-shell-app{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-shell-app-h:focus-visible,.ds-focus-ring.sc-ds-shell-app: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-shell-app-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-shell-app{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-shell-app-h:focus-visible,.ds-focus-ring-inset.sc-ds-shell-app:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-shell-app-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-shell-app: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-shell-app-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-shell-app{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-shell-app-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-shell-app::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-shell-app-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}.sc-ds-shell-app-h{display:flex;flex-direction:column;height:100%;min-height:0;box-sizing:border-box;overflow:hidden;overscroll-behavior:none;font-family:var(--typography-font-family, system-ui);--ds-shell-panel-tools-width:var(--dimension-panel-width-xs)}.sc-ds-shell-app-h{--_shell-chrome-bg:var(--color-background-secondary)}.shell-app__row.sc-ds-shell-app{display:flex;flex:1 1 0;min-height:0;position:relative}.shell-app__banner.sc-ds-shell-app{flex:0 0 auto;min-width:0;position:relative;z-index:5}.shell-app__banner.sc-ds-shell-app-s>ds-banner,.shell-app__banner .sc-ds-shell-app-s>ds-banner{display:grid;width:100%}.shell-app__chrome.sc-ds-shell-app{position:absolute;inset:0;pointer-events:none;z-index:0;background-color:var(--_shell-chrome-bg)}.shell-app--gradient.sc-ds-shell-app-h .shell-app__chrome.sc-ds-shell-app::before{content:'';position:absolute;inset:0;pointer-events:none;background-position:0 0;background-attachment:fixed;z-index:1;opacity:var(--ds-shell-gradient-opacity, 1);background-image:var(--ds-shell-gradient-image, none);background-size:var(--ds-shell-gradient-size, auto);background-repeat:no-repeat}.shell-app__panel.sc-ds-shell-app{flex:0 0 auto;min-height:0;height:100%;position:relative;z-index:2}.shell-app__panel.sc-ds-shell-app-s>ds-panel-nav,.shell-app__panel .sc-ds-shell-app-s>ds-panel-nav{display:block;height:100%}.shell-app__panel.sc-ds-shell-app>ds-panel-nav.sc-ds-shell-app{display:block;height:100%}.shell-app__main.sc-ds-shell-app{flex:1 1 auto;min-width:0;min-height:0;display:grid;grid-template-columns:minmax(0, 1fr) auto;grid-template-rows:auto minmax(0, 1fr);grid-template-areas:'bar tools' 'content tools';position:relative;z-index:1}.shell-app__mobile-sheet-nav.sc-ds-shell-app,.shell-app__mobile-bar-nav.sc-ds-shell-app{display:none}.shell-app__bar.sc-ds-shell-app{grid-area:bar;flex:0 0 auto;min-width:0}.shell-app__bar.sc-ds-shell-app-s>ds-bar-nav,.shell-app__bar .sc-ds-shell-app-s>ds-bar-nav{display:block}.shell-app__bar.sc-ds-shell-app>ds-bar-nav.sc-ds-shell-app{display:block}.shell-app__content.sc-ds-shell-app{grid-area:content;flex:1 1 auto;min-width:0;min-height:0;overflow:auto;overscroll-behavior:none;contain:layout}.shell-app__content.sc-ds-shell-app{position:relative;z-index:1;background-color:var(--color-background-primary)}.shell-app__tools.sc-ds-shell-app{grid-area:tools;flex:0 0 auto;min-width:0;min-height:0;height:100%;display:flex;position:relative;z-index:0;overflow:hidden}.shell-app__tools.sc-ds-shell-app-s>ds-panel-tools,.shell-app__tools .sc-ds-shell-app-s>ds-panel-tools{display:block;height:100%;min-height:0}.shell-app__tools.sc-ds-shell-app-s>ds-shell-tools,.shell-app__tools .sc-ds-shell-app-s>ds-shell-tools{display:block;height:100%;min-height:0}.shell-app__tools.sc-ds-shell-app>ds-shell-tools.sc-ds-shell-app{display:block;height:100%;min-height:0}.shell-app__content.sc-ds-shell-app>ds-shell-page.sc-ds-shell-app{display:block;min-height:100%}.shell-app--tools-fullscreen.sc-ds-shell-app-h .shell-app__panel.sc-ds-shell-app,.shell-app--tools-fullscreen.sc-ds-shell-app-h .shell-app__bar.sc-ds-shell-app,.shell-app--tools-fullscreen.sc-ds-shell-app-h .shell-app__content.sc-ds-shell-app{visibility:hidden}.shell-app--mobile.sc-ds-shell-app-h{--_shell-chrome-bg:var(--color-background-primary);padding-block-start:env(safe-area-inset-top)}.shell-app--mobile.sc-ds-shell-app-h .shell-app__chrome.sc-ds-shell-app,.shell-app--mobile.sc-ds-shell-app-h .shell-app__panel.sc-ds-shell-app,.shell-app--mobile.sc-ds-shell-app-h .shell-app__bar.sc-ds-shell-app{display:none}.shell-app--mobile.sc-ds-shell-app-h .shell-app__main.sc-ds-shell-app{width:100%;box-sizing:border-box;grid-template-columns:minmax(0, 1fr);grid-template-rows:minmax(0, 1fr) auto;grid-template-areas:'stage' 'mobile-bar-nav';background:var(--color-background-primary)}.shell-app--mobile.sc-ds-shell-app-h .shell-app__content.sc-ds-shell-app,.shell-app--mobile.sc-ds-shell-app-h .shell-app__tools.sc-ds-shell-app,.shell-app--mobile.sc-ds-shell-app-h .shell-app__mobile-sheet-nav.sc-ds-shell-app{grid-area:stage;min-width:0;min-height:0;height:100%;position:relative}.shell-app--mobile.sc-ds-shell-app-h .shell-app__content.sc-ds-shell-app{z-index:1;overflow:auto}.shell-app--mobile.sc-ds-shell-app-h .shell-app__tools.sc-ds-shell-app{z-index:2;width:100%;overflow:hidden;background:var(--color-background-primary)}.shell-app--mobile.sc-ds-shell-app-h .shell-app__mobile-sheet-nav.sc-ds-shell-app{display:block;z-index:3;overflow:hidden;background:var(--color-background-primary)}.shell-app--mobile.sc-ds-shell-app-h .shell-app__mobile-bar-nav.sc-ds-shell-app{grid-area:mobile-bar-nav;display:block;min-width:0;position:relative;z-index:4}.shell-app--mobile.sc-ds-shell-app-h .shell-app__tools[hidden].sc-ds-shell-app,.shell-app--mobile.sc-ds-shell-app-h .shell-app__mobile-sheet-nav[hidden].sc-ds-shell-app,.shell-app--mobile.sc-ds-shell-app-h .shell-app__mobile-bar-nav[hidden].sc-ds-shell-app{display:none}.shell-app--mobile-tool-active.sc-ds-shell-app-h .shell-app__content.sc-ds-shell-app,.shell-app--mobile-sheet-nav-open.sc-ds-shell-app-h .shell-app__content.sc-ds-shell-app,.shell-app--mobile-sheet-nav-open.sc-ds-shell-app-h .shell-app__tools.sc-ds-shell-app{visibility:hidden}`;const vs=s(class s extends e{constructor(s){super();if(s!==false){this.__registerHost()}this.dsResponsiveModeChange=t(this,"dsResponsiveModeChange");this.dsNavSelect=t(this,"dsNavSelect");this.dsTabChange=t(this,"dsTabChange");this.dsSubsectionChange=t(this,"dsSubsectionChange");this.dsPageBack=t(this,"dsPageBack");this.dsBreadcrumbSelect=t(this,"dsBreadcrumbSelect");this.dsPageAction=t(this,"dsPageAction");this.dsToolChange=t(this,"dsToolChange");this.dsHeaderBack=t(this,"dsHeaderBack");this.dsHeaderAction=t(this,"dsHeaderAction");this.dsPresentationChange=t(this,"dsPresentationChange");this.dsBrowseContextChange=t(this,"dsBrowseContextChange");this.dsNavFooterAction=t(this,"dsNavFooterAction");this.dsNavUserAction=t(this,"dsNavUserAction");this.composition="managed";this.navigation={};this.pageChrome={};this.tools={};this.navStyle="dashboard";this.gradientPreset=U;this.shortcutsEnabled=true;this.mobileDestination="area";this.mobileSheetNavOpen=false;this.toolsFullscreen=false;this.resolvedMode="desktop";this.managedToolsOpen=false;this.managedActiveTool="";this.managedToolPresentation="drawer";this.managedMobileDestination="area";this.managedMobileSheetNavOpen=false;this.managedInboxTool="";this.managedBrowseContext="dashboard";this.resizeObserver=null;this.hasLoaded=false;this.panelNavTransition=new r;this.chromeSyncCoalescer=h((()=>this.syncChrome()));this.panelWidthTokens={expandedPx:0,collapsedPx:0};this.cachedViewportWidth=0;this.cachedViewportHeight=0;this.onWindowResize=()=>{this.updateResponsiveMode();if(this.panelNavTransition.isActive)return;this.scheduleChromeSync()};this.onVisualViewportChange=()=>{if(this.panelNavTransition.isActive)return;this.scheduleChromeSync()};this.onChromeTransitionStart=s=>{if(d(s)!=="panel-nav")return;this.panelNavTransition.enter();const e=as();this.cachedViewportWidth=e.width;this.cachedViewportHeight=e.height;this.syncChrome()};this.onChromeTransitionEnd=s=>{if(d(s)!=="panel-nav")return;this.panelNavTransition.exit();if(!this.panelNavTransition.isActive){this.scheduleChromeSync()}};this.handleManagedNavSelect=s=>{s.stopPropagation();this.dsNavSelect.emit(s.detail)};this.handleManagedTabChange=s=>{s.stopPropagation();this.dsTabChange.emit(s.detail)};this.handleManagedPageBack=s=>{s.stopPropagation();this.dsPageBack.emit(s.detail)};this.handleManagedBreadcrumbSelect=s=>{s.stopPropagation();const e=this.dsBreadcrumbSelect.emit(s.detail);if(e.defaultPrevented)s.preventDefault()};this.handleManagedSubsectionChange=s=>{s.stopPropagation();this.dsSubsectionChange.emit(s.detail)};this.handleManagedPageAction=s=>{s.stopPropagation();this.dsPageAction.emit(s.detail)};this.handleManagedToolChange=s=>{s.stopPropagation();const{id:e,selected:t}=s.detail;this.managedActiveTool=e;this.managedToolsOpen=t;const i=this.resolvedToolItems.find((s=>s.id===e));if(i?.mobileDestination==="inbox"||f(e)){this.managedInboxTool=e}this.managedMobileDestination=t?i?.mobileDestination??b(true,e):"area";this.managedMobileSheetNavOpen=false;this.dsToolChange.emit(s.detail)};this.handleManagedPresentationChange=s=>{s.stopPropagation();this.managedToolPresentation=s.detail.presentation;this.toolsFullscreen=s.detail.presentation==="fullscreen";this.dsPresentationChange.emit(s.detail)};this.handleManagedHeaderBack=s=>{s.stopPropagation();this.dsHeaderBack.emit(s.detail)};this.handleManagedHeaderAction=s=>{s.stopPropagation();this.dsHeaderAction.emit(s.detail)};this.handleManagedSheetToggle=s=>{s.stopPropagation();this.managedMobileSheetNavOpen=s.detail;if(s.detail){this.managedMobileDestination="area";this.managedToolsOpen=false}};this.handleManagedMobileDestination=s=>{s.stopPropagation();const e=s.detail.destination;this.managedMobileSheetNavOpen=false;this.managedMobileDestination=e;if(e==="area"){this.managedToolsOpen=false;return}const t=e==="inbox"?m(this.managedInboxTool,this.availableInboxTools):e;if(!t)return;const i=this.resolvedToolItems.find((s=>s.id===t||e!=="inbox"&&s.mobileDestination===e));if(!i||i.isInactive)return;const a=i.id;this.managedActiveTool=a;this.managedToolsOpen=true;if(f(a))this.managedInboxTool=a;this.dsToolChange.emit({id:a,selected:true})};this.handleManagedAreaSelect=s=>{s.stopPropagation();this.managedMobileSheetNavOpen=false;this.managedMobileDestination="area";this.dsNavSelect.emit(s.detail)};this.handleManagedBrowseContext=s=>{s.stopPropagation();this.managedBrowseContext=s.detail;this.dsBrowseContextChange.emit(s.detail)};this.handleManagedSheetClose=s=>{s.stopPropagation();this.managedMobileSheetNavOpen=false};this.handleManagedNavFooterAction=s=>{s.stopPropagation();this.dsNavFooterAction.emit()};this.handleManagedNavUserAction=s=>{s.stopPropagation();this.dsNavUserAction.emit(s.detail)}}get managed(){return this.composition==="managed"}get effectiveMobileDestination(){return this.managed?this.managedMobileDestination:this.mobileDestination}get effectiveMobileSheetNavOpen(){return this.managed?this.managedMobileSheetNavOpen:this.mobileSheetNavOpen}get resolvedNavigationGroups(){if(this.navigation.groups?.length)return this.navigation.groups;return this.managedBrowseContext==="settings"?this.navigation.settingsGroups??[]:this.navigation.dashboardGroups??[]}get resolvedToolItems(){return this.tools.items??o}get availableInboxTools(){return this.resolvedToolItems.filter((s=>!s.isInactive&&(s.mobileDestination==="inbox"||f(s.id)))).map((s=>s.id))}componentWillLoad(){if(typeof window!=="undefined"){this.resolvedMode=g(window.innerWidth)}this.managedBrowseContext=this.navigation.browseContext??this.navStyle;this.managedMobileDestination=this.mobileDestination;this.managedMobileSheetNavOpen=this.mobileSheetNavOpen;this.managedInboxTool=m("",this.availableInboxTools)}componentDidLoad(){this.hasLoaded=true;this.syncSlottedNavStyle();this.syncSlottedMobileState();this.connectMetricsObserver();this.connectViewportListeners();this.el.addEventListener(c,this.onChromeTransitionStart);this.el.addEventListener(p,this.onChromeTransitionEnd);requestAnimationFrame((()=>{this.cachePanelWidthTokens();this.scheduleChromeSync()}));const s=this.el.querySelector("ds-shell-tools, ds-panel-tools");this.toolsFullscreen=s?.getAttribute("presentation")==="fullscreen"}handleToolsPresentation(s){this.toolsFullscreen=s.detail?.presentation==="fullscreen"}disconnectedCallback(){this.resizeObserver?.disconnect();this.resizeObserver=null;this.disconnectViewportListeners();this.chromeSyncCoalescer.cancel();this.el.removeEventListener(c,this.onChromeTransitionStart);this.el.removeEventListener(p,this.onChromeTransitionEnd)}onShellPropsChange(){this.syncSlottedNavStyle();this.scheduleChromeSync()}handleNavigationChange(){this.managedBrowseContext=this.navigation.browseContext??this.navStyle}handleToolsChange(){if(this.managedActiveTool&&!this.resolvedToolItems.some((s=>s.id===this.managedActiveTool))){this.managedToolsOpen=false;this.managedActiveTool="";this.managedMobileDestination="area"}this.managedInboxTool=m(this.managedInboxTool,this.availableInboxTools)}onMobileStateChange(s,t){if(this.managed){this.managedMobileDestination=this.mobileDestination;this.managedMobileSheetNavOpen=this.mobileSheetNavOpen}this.syncSlottedMobileState();if(t===true&&!this.effectiveMobileSheetNavOpen&&this.resolvedMode==="mobile"){requestAnimationFrame((()=>{const s=this.el.querySelector("ds-mobile-bar-nav");const t=document.activeElement;if(t instanceof e&&s?.contains(t))return;void s?.focusDestination?.("sheet-nav")}))}}updateResponsiveMode(){if(typeof window==="undefined")return;const s=g(window.innerWidth);if(s===this.resolvedMode)return;this.resolvedMode=s;this.syncSlottedMobileState();this.scheduleChromeSync();if(this.hasLoaded)this.dsResponsiveModeChange.emit({mode:s})}scheduleChromeSync(){this.chromeSyncCoalescer.schedule()}syncSlottedNavStyle(){const s=this.el.querySelector("ds-panel-nav");const e=this.el.querySelector("ds-bar-nav");if(s){s.setAttribute("nav-style",this.navStyle);s.navStyle=this.navStyle}if(e){e.setAttribute("nav-style",this.navStyle);e.navStyle=this.navStyle}}syncSlottedMobileState(){const s=this.el.querySelector("ds-shell-tools");const e=this.el.querySelector("ds-mobile-bar-nav");const t=this.el.querySelector("ds-mobile-sheet-nav");if(s){s.setAttribute("responsive-mode",this.resolvedMode);s.responsiveMode=this.resolvedMode}if(e){e.activeDestination=this.effectiveMobileDestination;e.sheetNavExpanded=this.effectiveMobileSheetNavOpen}if(t){t.open=this.effectiveMobileSheetNavOpen}}connectMetricsObserver(){this.resizeObserver=new ResizeObserver((()=>{if(this.panelNavTransition.isActive)return;this.scheduleChromeSync()}));this.resizeObserver.observe(this.el);const s=this.el.querySelector(".shell-app__panel");if(s)this.resizeObserver.observe(s)}connectViewportListeners(){if(typeof window==="undefined")return;window.addEventListener("resize",this.onWindowResize,{passive:true});const s=window.visualViewport;if(s){s.addEventListener("resize",this.onVisualViewportChange,{passive:true});s.addEventListener("scroll",this.onVisualViewportChange,{passive:true})}}disconnectViewportListeners(){if(typeof window==="undefined")return;window.removeEventListener("resize",this.onWindowResize);const s=window.visualViewport;if(s){s.removeEventListener("resize",this.onVisualViewportChange);s.removeEventListener("scroll",this.onVisualViewportChange)}}cachePanelWidthTokens(){const s=this.el.querySelector("ds-panel-nav .panel-nav");if(!s)return;this.panelWidthTokens=fs(s)}applyGradientVars(s,e){const t=s.style;for(const[s,i]of Object.entries(e)){if(i===null)t.removeProperty(s);else t.setProperty(s,i)}}clearGradientPaintVars(s){const e=[Y,Z,ts];for(const t of s){for(const s of e)t.style.removeProperty(s)}}syncChromeLayoutVars(s,e,t,i){if(s){s.style.setProperty(ss,t)}if(e){e.style.setProperty(es,i)}}resolvePanelWidthPx(s){const e=s?.querySelector(".panel-nav");if(this.panelNavTransition.isActive&&this.panelWidthTokens.expandedPx>0){const t=bs(s,e);return ms(this.panelWidthTokens,t)}const t=this.el.querySelector(".shell-app__panel");const i=t?.getBoundingClientRect().width??0;if(i>0)return i;if(this.panelWidthTokens.expandedPx>0){const t=bs(s,e);return ms(this.panelWidthTokens,t)}return 0}resolveViewportDimensions(){if(this.panelNavTransition.isActive&&this.cachedViewportWidth>0){return{width:this.cachedViewportWidth,height:this.cachedViewportHeight}}return as()}chromeLayerActive(){return this.resolvedMode!=="mobile"&&J(this.gradientPreset)!=="none"}handleWindowKeyDown(s){if(!this.shortcutsEnabled)return;if(ds(s.target))return;const e=ps(s);if(!e)return;s.preventDefault();const t=this.el.querySelector("ds-panel-nav");const i=this.el.querySelector("ds-shell-tools, ds-panel-tools");if(e==="toggle-panel-nav"){void t?.toggleCollapsed();return}if(e==="close-panel-tools"){void i?.closeDrawer?.();return}if(e.startsWith("open-tool:")&&i){const s=e.slice("open-tool:".length);void i.activateTool?.(s)}}async activateTool(s){const e=this.el.querySelector("ds-shell-tools, ds-panel-tools");await(e?.activateTool?.(s))}async closeGlobalSurface(){if(this.managedMobileSheetNavOpen){this.managedMobileSheetNavOpen=false;return}const s=this.el.querySelector("ds-shell-tools, ds-panel-tools");await(s?.closeDrawer?.())}async setToolPresentation(s){this.managedToolPresentation=s;this.toolsFullscreen=s==="fullscreen"}get currentArea(){const s=[...this.navigation.dashboardGroups??[],...this.navigation.settingsGroups??[],...this.resolvedNavigationGroups];const e=s.flatMap((s=>s.items));const t=this.navigation.activeId||k(this.navigation.currentUrl??this.pageChrome.currentUrl??"",e);return e.find((s=>s.id===t))??e[0]??{id:"area",icon:"MapPage",label:this.pageChrome.heading||"Area"}}toolDot(s){return this.resolvedToolItems.find((e=>e.id===s))?.dot??false}syncChrome(){const s=this.el.querySelector("ds-panel-nav");const e=this.el.querySelector("ds-bar-nav");const t=[this.el,s,e].filter((s=>s!==null));const i=()=>{if(s)s.style.removeProperty(ss);if(e)e.style.removeProperty(es)};const a=J(this.gradientPreset);if(a==="none"||this.resolvedMode==="mobile"){this.clearGradientPaintVars(t);i();return}const n=this.resolveViewportDimensions();const o=this.resolvePanelWidthPx(s);const l=os();const r=ls(o);this.syncChromeLayoutVars(s,e,l,r);const h=is(a);const d=ns({width:n.width,height:n.height});const c=q(a);for(const s of t){if(s===this.el){this.applyGradientVars(s,{[Y]:h,[Z]:d,[ss]:l,[es]:r,[ts]:c});continue}const e=s.tagName.toLowerCase()==="ds-bar-nav";this.applyGradientVars(s,{[Y]:h,[Z]:d,[ts]:c,[ss]:e?null:l,[es]:e?r:null})}}renderManagedPanelNav(){const s=this.navigation;return i("ds-panel-nav",{navStyle:this.navStyle,groups:this.resolvedNavigationGroups,breakpoint:v,routerMode:s.routerMode??"event",activeId:s.activeId??"",currentUrl:s.currentUrl??this.pageChrome.currentUrl??"",storageKey:s.storageKey??"",userName:s.userName??"",userInitial:s.userInitial??"",accountMenuExpanded:s.accountMenuExpanded??false,dashboardLabel:s.dashboardLabel??"Dashboard",settingsLabel:s.settingsLabel??"Settings",accountLabel:s.accountLabel??"Account",dashboardNavigationLabel:s.dashboardNavigationLabel??"Dashboard navigation",settingsNavigationLabel:s.settingsNavigationLabel??"Settings navigation",navigationItemsLabel:s.navigationLabel??"Navigation items",onDsNavSelect:this.handleManagedNavSelect,onDsNavFooterAction:this.handleManagedNavFooterAction,onDsNavUserAction:this.handleManagedNavUserAction})}renderManagedBarNav(){return i("ds-bar-nav",{navStyle:this.navStyle,tabs:this.pageChrome.tabs??[],value:this.pageChrome.value??"",heading:this.pageChrome.routeHeading??this.pageChrome.heading,basePath:this.pageChrome.basePath??"",currentUrl:this.pageChrome.currentUrl??this.navigation.currentUrl??"",onDsTabChange:this.handleManagedTabChange})}renderManagedToolSlots(){const s=this.resolvedToolItems.map((s=>s.id));return s.flatMap((s=>[i("slot",{name:s,slot:s}),i("slot",{name:`${s}-view`,slot:`${s}-view`})]))}renderManagedTools(){const s=this.tools;return i("ds-shell-tools",{responsiveMode:this.resolvedMode,open:this.managedToolsOpen,activeTool:this.managedActiveTool,presentation:this.managedToolPresentation,fullscreenHeaderMode:s.fullscreenHeaderMode??"shared",items:this.resolvedToolItems,headers:s.headers??{},storageKey:s.storageKey??"",toolsLabel:s.toolsLabel??"Tools",toolShortcutsLabel:s.toolShortcutsLabel??"Tool shortcuts",inboxLabel:s.inboxLabel??"Inbox",inboxNavigationLabel:s.inboxNavigationLabel??"Inbox sections",onDsToolChange:this.handleManagedToolChange,onDsPresentationChange:this.handleManagedPresentationChange,onDsHeaderBack:this.handleManagedHeaderBack,onDsHeaderAction:this.handleManagedHeaderAction},this.renderManagedToolSlots())}renderManagedMobileSheetNav(){const s=this.navigation;return i("ds-mobile-sheet-nav",{open:this.managedMobileSheetNavOpen,browseContext:this.managedBrowseContext,dashboardGroups:s.dashboardGroups??s.groups??[],settingsGroups:s.settingsGroups??[],currentUrl:s.currentUrl??this.pageChrome.currentUrl??"",navigationLabel:s.navigationLabel??"Application navigation",dashboardLabel:s.dashboardLabel??"Dashboard",settingsLabel:s.settingsLabel??"Settings",accountLabel:s.accountLabel??"Account",onDsAreaSelect:this.handleManagedAreaSelect,onDsBrowseContextChange:this.handleManagedBrowseContext,onDsClose:this.handleManagedSheetClose})}renderManagedMobileBarNav(){return i("ds-mobile-bar-nav",{hidden:this.tools.mobileBarHidden??false,activeDestination:this.managedMobileDestination,currentArea:this.currentArea,sheetNavExpanded:this.managedMobileSheetNavOpen,searchLabel:this.tools.items?.find((s=>s.id==="search"))?.ariaLabel??"Search",agentsLabel:this.tools.items?.find((s=>s.id==="agents"))?.ariaLabel??"Agents",inboxLabel:this.tools.inboxLabel??"Inbox",helpLabel:this.tools.items?.find((s=>s.id==="help"))?.ariaLabel??"Help & Support",searchDot:this.toolDot("search"),agentsDot:this.toolDot("agents"),inboxDot:this.toolDot("messages")||this.toolDot("stacks")||this.toolDot("activity"),onDsSheetNavToggle:this.handleManagedSheetToggle,onDsDestinationChange:this.handleManagedMobileDestination})}renderManagedMobileLeading(){if(!this.pageChrome.showBack){return i("slot",{name:"page-header-leading",slot:"leading"})}return[i("ds-tooltip",{slot:"leading",label:this.pageChrome.backAriaLabel??"Back",side:"bottom",size:"sm"},i("ds-button-unfilled",{variant:"icon",icon:this.pageChrome.backIcon??"ChevronLeft",size:"md","aria-label":this.pageChrome.backAriaLabel??"Back",activeFill:false,hasBorder:false,onDsClick:s=>this.dsPageBack.emit(s.detail)})),i("slot",{name:"page-header-leading",slot:"leading"})]}renderManagedMobileActions(){const s=this.pageChrome.mobileActions??[];return[...s.map((s=>i("ds-tooltip",{slot:"trailing",key:s.id,label:s.ariaLabel,side:"bottom",size:"sm"},i("ds-button-unfilled",{id:s.triggerId||undefined,variant:"icon",icon:s.icon,size:"md","aria-label":s.ariaLabel,haspopup:s.haspopup,controls:s.controls,expanded:s.expanded,pressed:s.pressed,isActive:!!s.expanded,isInactive:s.isInactive,activeFill:false,hasBorder:false,onDsClick:()=>this.dsPageAction.emit(s.id)})))),i("slot",{name:"page-header-trailing",slot:"trailing"})]}renderManagedPage(){const s=this.pageChrome;const e=s.showBack?[]:s.tabs??[];const t=(s.subsections??[]).map((s=>"type"in s?{type:"divider"}:{id:s.id,label:s.label,isInactive:s.isInactive}));return i("ds-shell-page",{responsiveMode:this.resolvedMode,headerCapacity:_(this.resolvedMode,this.managedToolsOpen),contentInset:s.contentInset??"default"},i("ds-bar-title",{slot:"header",heading:s.heading??"",description:s.description??"",showBack:s.showBack??false,backAriaLabel:s.backAriaLabel??"Back",backLabel:s.backLabel??"Back",breadcrumbs:s.breadcrumbs??[],breadcrumbAriaLabel:s.breadcrumbAriaLabel??"Breadcrumb",sections:t,value:s.subvalue??"",sectionsAriaLabel:s.subsectionsAriaLabel??"Change page subsection",primaryAction:s.primaryAction??null,actions:s.actions??[],actionsAriaLabel:s.actionsAriaLabel??"More page actions",onDsBack:this.handleManagedPageBack,onDsBreadcrumbSelect:this.handleManagedBreadcrumbSelect,onDsSectionChange:this.handleManagedSubsectionChange,onDsAction:this.handleManagedPageAction}),i("ds-mobile-header",{slot:"mobile-header",heading:s.heading??"",headingLevel:s.headingLevel??"h1",sections:e,value:s.showBack?"":s.value??"",sectionsAriaLabel:s.sectionsAriaLabel??"Change page section",subsections:s.subsections??[],subvalue:s.subvalue??"",subsectionsAriaLabel:s.subsectionsAriaLabel??"Change page subsection",tone:s.tone??"default",onDsSectionChange:this.handleManagedTabChange,onDsSubsectionChange:this.handleManagedSubsectionChange},this.renderManagedMobileLeading(),this.renderManagedMobileActions()),i("slot",null))}renderSlottedShell(s,e,t,n,o){return i(a,{class:s,"responsive-mode":this.resolvedMode},i("div",{class:"shell-app__banner"},i("slot",{name:"banner"})),i("div",{class:"shell-app__row"},i("div",{class:"shell-app__chrome","aria-hidden":"true"}),i("div",{class:"shell-app__panel","aria-hidden":o?"true":undefined,inert:o?true:undefined},i("slot",{name:"panel"})),i("div",{class:"shell-app__main"},i("div",{class:"shell-app__bar","aria-hidden":o?"true":undefined,inert:o?true:undefined},i("slot",{name:"bar"})),i("div",{class:"shell-app__tools","aria-hidden":e&&(!t||this.mobileSheetNavOpen)?"true":undefined,inert:e&&(!t||this.mobileSheetNavOpen)?true:undefined,hidden:e&&!t},i("slot",{name:"tools"})),i("div",{class:"shell-app__content ds-focus-ring","aria-hidden":o||n?"true":undefined,inert:o||n?true:undefined,tabIndex:0},i("slot",null)),i("div",{class:"shell-app__mobile-sheet-nav",hidden:!e||!this.mobileSheetNavOpen,"aria-hidden":e&&this.mobileSheetNavOpen?undefined:"true",inert:e&&this.mobileSheetNavOpen?undefined:true},i("slot",{name:"mobile-sheet-nav"})),i("div",{class:"shell-app__mobile-bar-nav",hidden:!e},i("slot",{name:"mobile-bar-nav"})))))}render(){const s=this.chromeLayerActive();const e=this.resolvedMode==="mobile";const t=e&&this.effectiveMobileDestination!=="area";const n=e&&(t||this.effectiveMobileSheetNavOpen);const o=!e&&this.toolsFullscreen;const l={"shell-app":true,"shell-app--gradient":s,[`shell-app--${this.navStyle}`]:true,[`shell-app--${this.resolvedMode}`]:true,"shell-app--tools-fullscreen":o,"shell-app--mobile-tool-active":t,"shell-app--mobile-sheet-nav-open":e&&this.effectiveMobileSheetNavOpen,"shell-app--managed":this.managed,"shell-app--slotted":!this.managed};if(!this.managed){return this.renderSlottedShell(l,e,t,n,o)}return i(a,{class:l,"responsive-mode":this.resolvedMode},i("div",{class:"shell-app__banner"},i("slot",{name:"banner"})),i("div",{class:"shell-app__row"},i("div",{class:"shell-app__chrome","aria-hidden":"true"}),i("div",{class:"shell-app__panel","aria-hidden":o?"true":undefined,inert:o?true:undefined},this.renderManagedPanelNav()),i("div",{class:"shell-app__main"},i("div",{class:"shell-app__bar","aria-hidden":o?"true":undefined,inert:o?true:undefined},this.renderManagedBarNav()),i("div",{class:"shell-app__tools","aria-hidden":e&&(!t||this.effectiveMobileSheetNavOpen)?"true":undefined,inert:e&&(!t||this.effectiveMobileSheetNavOpen)?true:undefined,hidden:e&&!t},this.renderManagedTools()),i("div",{class:"shell-app__content ds-focus-ring","aria-hidden":o||n?"true":undefined,inert:o||n?true:undefined,tabIndex:0},this.renderManagedPage()),i("div",{class:"shell-app__mobile-sheet-nav",hidden:!e||!this.effectiveMobileSheetNavOpen,"aria-hidden":e&&this.effectiveMobileSheetNavOpen?undefined:"true",inert:e&&this.effectiveMobileSheetNavOpen?undefined:true},this.renderManagedMobileSheetNav()),i("div",{class:"shell-app__mobile-bar-nav",hidden:!e},this.renderManagedMobileBarNav()))))}get el(){return this}static get watchers(){return{navStyle:[{onShellPropsChange:0}],gradientPreset:[{onShellPropsChange:0}],navigation:[{handleNavigationChange:0}],tools:[{handleToolsChange:0}],mobileDestination:[{onMobileStateChange:0}],mobileSheetNavOpen:[{onMobileStateChange:0}]}}static get style(){return gs()}},[262,"ds-shell-app",{composition:[513],navigation:[16],pageChrome:[16],tools:[16],navStyle:[513,"nav-style"],gradientPreset:[513,"gradient-preset"],shortcutsEnabled:[4,"shortcuts-enabled"],mobileDestination:[1,"mobile-destination"],mobileSheetNavOpen:[4,"mobile-sheet-nav-open"],toolsFullscreen:[32],resolvedMode:[32],managedToolsOpen:[32],managedActiveTool:[32],managedToolPresentation:[32],managedMobileDestination:[32],managedMobileSheetNavOpen:[32],managedInboxTool:[32],managedBrowseContext:[32],activateTool:[64],closeGlobalSurface:[64],setToolPresentation:[64]},[[0,"dsPresentationChange","handleToolsPresentation"],[10,"keydown","handleWindowKeyDown"]],{navStyle:[{onShellPropsChange:0}],gradientPreset:[{onShellPropsChange:0}],navigation:[{handleNavigationChange:0}],tools:[{handleToolsChange:0}],mobileDestination:[{onMobileStateChange:0}],mobileSheetNavOpen:[{onMobileStateChange:0}]}]);function _s(){if(typeof customElements==="undefined"){return}const s=["ds-shell-app","ds-badge","ds-bar-nav","ds-bar-title","ds-breadcrumb","ds-button-filled","ds-button-unfilled","ds-icon","ds-loader","ds-menu","ds-mobile-bar-nav","ds-mobile-header","ds-mobile-section-switcher","ds-mobile-sheet-nav","ds-panel-nav","ds-panel-tool-header","ds-panel-tools","ds-shell-page","ds-shell-tools","ds-swatch-picker","ds-switch","ds-tab-group","ds-text","ds-tooltip"];s.forEach((s=>{switch(s){case"ds-shell-app":if(!customElements.get(n(s))){customElements.define(n(s),vs)}break;case"ds-badge":if(!customElements.get(n(s))){y()}break;case"ds-bar-nav":if(!customElements.get(n(s))){u()}break;case"ds-bar-title":if(!customElements.get(n(s))){w()}break;case"ds-breadcrumb":if(!customElements.get(n(s))){x()}break;case"ds-button-filled":if(!customElements.get(n(s))){C()}break;case"ds-button-unfilled":if(!customElements.get(n(s))){S()}break;case"ds-icon":if(!customElements.get(n(s))){D()}break;case"ds-loader":if(!customElements.get(n(s))){M()}break;case"ds-menu":if(!customElements.get(n(s))){A()}break;case"ds-mobile-bar-nav":if(!customElements.get(n(s))){B()}break;case"ds-mobile-header":if(!customElements.get(n(s))){L()}break;case"ds-mobile-section-switcher":if(!customElements.get(n(s))){j()}break;case"ds-mobile-sheet-nav":if(!customElements.get(n(s))){P()}break;case"ds-panel-nav":if(!customElements.get(n(s))){T()}break;case"ds-panel-tool-header":if(!customElements.get(n(s))){E()}break;case"ds-panel-tools":if(!customElements.get(n(s))){l()}break;case"ds-shell-page":if(!customElements.get(n(s))){z()}break;case"ds-shell-tools":if(!customElements.get(n(s))){N()}break;case"ds-swatch-picker":if(!customElements.get(n(s))){I()}break;case"ds-switch":if(!customElements.get(n(s))){$()}break;case"ds-tab-group":if(!customElements.get(n(s))){F()}break;case"ds-text":if(!customElements.get(n(s))){O()}break;case"ds-tooltip":if(!customElements.get(n(s))){H()}break}}))}_s();const ks=vs;const ys=_s;export{ks as DsShellApp,ys as defineCustomElement};
|
|
2
2
|
//# sourceMappingURL=ds-shell-app.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{p as e,H as i,c as o,h as s,a as n,t as r}from"./index.js";import{s as a}from"./p-BnQXAbif.js";import{d as t}from"./p-IYy-jODg.js";import{d as c}from"./p-BAfG3M8z.js";import{d}from"./p-Bb4f5SuF.js";const l=()=>`.ds-chrome-space--sm.sc-ds-mobile-bar-nav-h,.ds-chrome-space--sm.sc-ds-mobile-bar-nav{--ds-chrome-padding:var(--dimension-space-050);--ds-chrome-gap:var(--dimension-space-050)}.ds-chrome-space--md.sc-ds-mobile-bar-nav-h,.ds-chrome-space--md.sc-ds-mobile-bar-nav{--ds-chrome-padding:var(--dimension-space-100);--ds-chrome-gap:var(--dimension-space-100)}.ds-chrome-space--lg.sc-ds-mobile-bar-nav-h,.ds-chrome-space--lg.sc-ds-mobile-bar-nav{--ds-chrome-padding:var(--dimension-space-200);--ds-chrome-gap:var(--dimension-space-200)}.ds-chrome-row.sc-ds-mobile-bar-nav-h,.ds-chrome-row.sc-ds-mobile-bar-nav,.ds-chrome-column.sc-ds-mobile-bar-nav-h,.ds-chrome-column.sc-ds-mobile-bar-nav,.ds-chrome-grid.sc-ds-mobile-bar-nav-h,.ds-chrome-grid.sc-ds-mobile-bar-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-mobile-bar-nav-h,.ds-chrome-row.sc-ds-mobile-bar-nav{flex-direction:row;align-items:center}.ds-chrome-column.sc-ds-mobile-bar-nav-h,.ds-chrome-column.sc-ds-mobile-bar-nav{flex-direction:column}.ds-chrome-grid.sc-ds-mobile-bar-nav-h,.ds-chrome-grid.sc-ds-mobile-bar-nav{display:grid;align-items:center}@media (forced-colors: active){.sc-ds-mobile-bar-nav:root,.sc-ds-mobile-bar-nav-h,.ds-forced-colors-scope.sc-ds-mobile-bar-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-mobile-bar-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-mobile-bar-nav-h,.ds-focus-ring.sc-ds-mobile-bar-nav,.ds-focus-ring-inset.sc-ds-mobile-bar-nav-h,.ds-focus-ring-inset.sc-ds-mobile-bar-nav{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-mobile-bar-nav-h:focus-visible,.ds-focus-ring.sc-ds-mobile-bar-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-mobile-bar-nav-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-mobile-bar-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-mobile-bar-nav-h:focus-visible,.ds-focus-ring-inset.sc-ds-mobile-bar-nav:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-mobile-bar-nav-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-mobile-bar-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-mobile-bar-nav-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-mobile-bar-nav{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-mobile-bar-nav-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-mobile-bar-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-mobile-bar-nav-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){.sc-ds-mobile-bar-nav:root,.sc-ds-mobile-bar-nav-h,.ds-forced-colors-scope.sc-ds-mobile-bar-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-mobile-bar-nav-h,.ds-interaction-fill.sc-ds-mobile-bar-nav{position:relative;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-fill.sc-ds-mobile-bar-nav-h::before,.ds-interaction-fill.sc-ds-mobile-bar-nav::before,.ds-interaction-fill.sc-ds-mobile-bar-nav-h::after,.ds-interaction-fill.sc-ds-mobile-bar-nav::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;cursor:inherit;transition:none}.ds-interaction-fill.sc-ds-mobile-bar-nav-h::before,.ds-interaction-fill.sc-ds-mobile-bar-nav::before{z-index:1}.ds-interaction-fill.sc-ds-mobile-bar-nav-h::after,.ds-interaction-fill.sc-ds-mobile-bar-nav::after{z-index:3;box-shadow:inset 0 0 0 var(--ds-interaction-border-width) var(--ds-interaction-border-color)}.ds-interaction-fill--bordered.sc-ds-mobile-bar-nav-h,.ds-interaction-fill--bordered.sc-ds-mobile-bar-nav{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-mobile-bar-nav-h::before,.ds-interaction-fill--selected.sc-ds-mobile-bar-nav::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-mobile-bar-nav-h,.ds-interaction-fill--selected.sc-ds-mobile-bar-nav{--ds-interaction-dot-ring:var(--ds-interaction-active)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-mobile-bar-nav-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-mobile-bar-nav:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}}.ds-interaction-fill.sc-ds-mobile-bar-nav-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-mobile-bar-nav:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill.sc-ds-mobile-bar-nav-h>.ds-interaction-fill__content.sc-ds-mobile-bar-nav,.ds-interaction-fill.sc-ds-mobile-bar-nav>.ds-interaction-fill__content.sc-ds-mobile-bar-nav,.ds-interaction-fill__content.sc-ds-mobile-bar-nav{position:relative;z-index:2;cursor:inherit}.ds-interaction-fill--on-faint.sc-ds-mobile-bar-nav-h,.ds-interaction-fill--on-faint.sc-ds-mobile-bar-nav{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-mobile-bar-nav-h,.ds-interaction-fill--on-medium.sc-ds-mobile-bar-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-mobile-bar-nav-h,.ds-interaction-fill--on-bold.sc-ds-mobile-bar-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-mobile-bar-nav-h,.ds-interaction-fill--on-strong.sc-ds-mobile-bar-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-mobile-bar-nav-h,.ds-interaction-fill--on-translucent.sc-ds-mobile-bar-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);--ds-focus-ring-color:var(--color-translucent-interaction-focus)}.ds-interaction-fill--on-inverted.sc-ds-mobile-bar-nav-h,.ds-interaction-fill--on-inverted.sc-ds-mobile-bar-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);--ds-focus-ring-color:var(--color-inverted-interaction-focus)}.ds-interaction-fill--on-media.sc-ds-mobile-bar-nav-h,.ds-interaction-fill--on-media.sc-ds-mobile-bar-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-mobile-bar-nav-h,.ds-interaction-fill--on-always-dark.sc-ds-mobile-bar-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);--ds-focus-ring-color:var(--color-always-dark-interaction-focus)}.ds-interaction-fill--on-navigation.sc-ds-mobile-bar-nav-h,.ds-interaction-fill--on-navigation.sc-ds-mobile-bar-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)}@media (forced-colors: active){.ds-interaction-fill.sc-ds-mobile-bar-nav-h::after,.ds-interaction-fill.sc-ds-mobile-bar-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--selected.sc-ds-mobile-bar-nav-h::before,.ds-interaction-fill--selected.sc-ds-mobile-bar-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-mobile-bar-nav-h:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill.sc-ds-mobile-bar-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)}}.sc-ds-mobile-bar-nav-h{display:block;min-width:0;background:var(--color-background-secondary);color:var(--color-foreground-tertiary);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.mobile-bar-nav.sc-ds-mobile-bar-nav{justify-content:space-between;min-width:0;padding-block-end:max(var(--ds-chrome-padding), env(safe-area-inset-bottom));border-top:var(--dimension-stroke-width-012) solid var(--color-border-tertiary);background:var(--color-background-secondary);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.mobile-bar-nav__group.sc-ds-mobile-bar-nav{display:flex;align-items:center;gap:var(--dimension-space-100)}.mobile-bar-nav__item.sc-ds-mobile-bar-nav{appearance:none;flex:0 0 var(--dimension-size-500);width:var(--dimension-size-500);height:var(--dimension-size-500);padding:var(--dimension-space-100);border:0;border-radius:var(--dimension-radius-025);background:transparent;color:inherit;display:inline-flex;align-items:center;justify-content:center;cursor:default}.mobile-bar-nav__item--selected.sc-ds-mobile-bar-nav{color:var(--color-foreground-primary)}@media (hover: none) and (pointer: coarse){.mobile-bar-nav__item.ds-interaction-fill.sc-ds-mobile-bar-nav:active:not(:disabled)::after{background:transparent}.mobile-bar-nav__item--pressed.ds-interaction-fill.sc-ds-mobile-bar-nav::after,.mobile-bar-nav__item--pressed.ds-interaction-fill.sc-ds-mobile-bar-nav:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}}.mobile-bar-nav__divider.sc-ds-mobile-bar-nav{flex:0 0 var(--dimension-stroke-width-012);width:var(--dimension-stroke-width-012);height:var(--dimension-iconography-lg);background:var(--color-border-tertiary);pointer-events:none;-webkit-user-select:none;user-select:none}.mobile-bar-nav__icon.sc-ds-mobile-bar-nav{position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--dimension-iconography-lg);height:var(--dimension-iconography-lg)}.mobile-bar-nav__dot.sc-ds-mobile-bar-nav{position:absolute;inset-block-start:calc(var(--dimension-space-025) * -1);inset-inline-end:calc(var(--dimension-space-025) * -1)}`;const b=120;const v=e(class e extends i{constructor(e){super();if(e!==false){this.__registerHost()}this.dsSheetNavToggle=o(this,"dsSheetNavToggle");this.dsDestinationChange=o(this,"dsDestinationChange");this.activeDestination="area";this.currentArea={id:"tracking",icon:"MapPage",label:"Tracking"};this.sheetNavExpanded=false;this.menuLabel="Menu";this.searchLabel="Search";this.agentsLabel="Agents";this.inboxLabel="Inbox";this.helpLabel="Help & Support";this.searchDot=false;this.agentsDot=false;this.inboxDot=false;this.pressedItemId=null;this.activePointerId=null;this.pressedAt=0;this.pressClearTimer=null}disconnectedCallback(){this.clearPressedItem()}clearPressTimer(){if(this.pressClearTimer===null)return;clearTimeout(this.pressClearTimer);this.pressClearTimer=null}clearPressedItem(){this.clearPressTimer();this.activePointerId=null;this.pressedItemId=null}beginDirectPress(e,i){if(!i.isPrimary||i.pointerType==="mouse"||i.button!==0)return;this.clearPressTimer();this.activePointerId=i.pointerId;this.pressedAt=performance.now();this.pressedItemId=e;const o=i.currentTarget;try{o.setPointerCapture(i.pointerId)}catch{}}finishDirectPress(e){if(e.pointerId!==this.activePointerId)return;this.activePointerId=null;const i=Math.max(0,b-(performance.now()-this.pressedAt));this.clearPressTimer();this.pressClearTimer=setTimeout((()=>{this.pressClearTimer=null;this.pressedItemId=null}),i)}cancelDirectPress(e){if(e.pointerId!==this.activePointerId)return;this.clearPressedItem()}pressHandlers(e){return{onPointerDown:i=>this.beginDirectPress(e,i),onPointerUp:e=>this.finishDirectPress(e),onPointerCancel:e=>this.cancelDirectPress(e),onLostPointerCapture:e=>this.finishDirectPress(e)}}destinationConfig(){const e=this.activeDestination==="help"?{id:"help",icon:"CircleQuestion",label:this.helpLabel,dot:false}:{id:"area",icon:this.currentArea.icon||"MapPage",label:this.currentArea.label||"Area",dot:false};return[e,{id:"search",icon:"MagnifyingGlass",label:this.searchLabel,dot:this.searchDot},{id:"inbox",icon:"Inbox",label:this.inboxLabel,dot:this.inboxDot},{id:"agents",icon:"AI",label:this.agentsLabel,dot:this.agentsDot}]}selectDestination(e){if(!a(this.activeDestination,e,this.sheetNavExpanded)){return}this.dsDestinationChange.emit({destination:e});requestAnimationFrame((()=>{void this.focusDestination(e)}))}async focusDestination(e){const i=this.el.querySelector(`#${e==="sheet-nav"?"ds-mobile-sheet-nav-trigger":`ds-mobile-bar-${e}-trigger`}`);i?.focus({preventScroll:true})}renderDestination(e){const i=!this.sheetNavExpanded&&e.id===this.activeDestination;return s("button",{id:`ds-mobile-bar-${e.id}-trigger`,type:"button",class:{"mobile-bar-nav__item":true,"mobile-bar-nav__item--selected":i,"mobile-bar-nav__item--pressed":this.pressedItemId===e.id,"ds-focus-ring-inset":true,"ds-interaction-fill":true},"aria-label":e.label,"aria-current":i?"page":undefined,onClick:()=>this.selectDestination(e.id),...this.pressHandlers(e.id)},s("span",{class:"mobile-bar-nav__icon ds-interaction-fill__content"},s("ds-icon",{name:e.icon,size:"lg",color:"inherit"}),e.dot&&s("ds-badge",{class:"mobile-bar-nav__dot",variant:"dot",label:"","aria-hidden":"true"})))}render(){const[e,...i]=this.destinationConfig();return s(n,{key:"93456f09dece20cc20bec749d3c5f2011a9cc1c0"},s("nav",{key:"e787675fc24d8459322b25698129a67d52fb0984",class:"mobile-bar-nav ds-chrome-row ds-chrome-space--md","aria-label":"Primary"},s("div",{key:"4bed1da19d5976f276fcf4522da13053306314db",class:"mobile-bar-nav__group mobile-bar-nav__group--context"},s("button",{key:"877e97604eb22e1e404427d8644e694202246681",id:"ds-mobile-sheet-nav-trigger",type:"button",class:{"mobile-bar-nav__item":true,"mobile-bar-nav__item--selected":this.sheetNavExpanded,"mobile-bar-nav__item--pressed":this.pressedItemId==="sheet-nav","ds-focus-ring-inset":true,"ds-interaction-fill":true},"aria-label":this.menuLabel,"aria-expanded":String(this.sheetNavExpanded),"aria-controls":"ds-mobile-sheet-nav",onClick:()=>this.dsSheetNavToggle.emit(!this.sheetNavExpanded),...this.pressHandlers("sheet-nav")},s("span",{key:"14e125645c4fdcdf2b977acf941b079817becd6a",class:"mobile-bar-nav__icon ds-interaction-fill__content"},s("ds-icon",{key:"ba4b5f63b54950e8ec98b824a2217b255fab7a0e",name:this.sheetNavExpanded?"Cross":"Hamburger",size:"lg",color:"inherit"}))),s("span",{key:"d5316aad75512e0ca2ee13057f3c204e80319a88",class:"mobile-bar-nav__divider","aria-hidden":"true"}),this.renderDestination(e)),s("div",{key:"b201adfbade13b272072d11a52c69695e5eb1b16",class:"mobile-bar-nav__group mobile-bar-nav__group--tools"},i.map((e=>this.renderDestination(e))))))}get el(){return this}static get style(){return l()}},[2,"ds-mobile-bar-nav",{activeDestination:[1,"active-destination"],currentArea:[16],sheetNavExpanded:[4,"sheet-nav-expanded"],menuLabel:[1,"menu-label"],searchLabel:[1,"search-label"],agentsLabel:[1,"agents-label"],inboxLabel:[1,"inbox-label"],helpLabel:[1,"help-label"],searchDot:[4,"search-dot"],agentsDot:[4,"agents-dot"],inboxDot:[4,"inbox-dot"],pressedItemId:[32],focusDestination:[64]}]);function m(){if(typeof customElements==="undefined"){return}const e=["ds-mobile-bar-nav","ds-badge","ds-icon","ds-text"];e.forEach((e=>{switch(e){case"ds-mobile-bar-nav":if(!customElements.get(r(e))){customElements.define(r(e),v)}break;case"ds-badge":if(!customElements.get(r(e))){t()}break;case"ds-icon":if(!customElements.get(r(e))){c()}break;case"ds-text":if(!customElements.get(r(e))){d()}break}}))}m();export{v as M,m as d};
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{p as e,H as i,c as o,h as s,a as n,t as r}from"./index.js";import{s as a}from"./p-BnQXAbif.js";import{d as t}from"./p-IYy-jODg.js";import{d as c}from"./p-BAfG3M8z.js";import{d}from"./p-Bb4f5SuF.js";const l=()=>`.ds-chrome-space--sm.sc-ds-mobile-bar-nav-h,.ds-chrome-space--sm.sc-ds-mobile-bar-nav{--ds-chrome-padding:var(--dimension-space-050);--ds-chrome-gap:var(--dimension-space-050)}.ds-chrome-space--md.sc-ds-mobile-bar-nav-h,.ds-chrome-space--md.sc-ds-mobile-bar-nav{--ds-chrome-padding:var(--dimension-space-100);--ds-chrome-gap:var(--dimension-space-100)}.ds-chrome-space--lg.sc-ds-mobile-bar-nav-h,.ds-chrome-space--lg.sc-ds-mobile-bar-nav{--ds-chrome-padding:var(--dimension-space-200);--ds-chrome-gap:var(--dimension-space-200)}.ds-chrome-row.sc-ds-mobile-bar-nav-h,.ds-chrome-row.sc-ds-mobile-bar-nav,.ds-chrome-column.sc-ds-mobile-bar-nav-h,.ds-chrome-column.sc-ds-mobile-bar-nav,.ds-chrome-grid.sc-ds-mobile-bar-nav-h,.ds-chrome-grid.sc-ds-mobile-bar-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-mobile-bar-nav-h,.ds-chrome-row.sc-ds-mobile-bar-nav{flex-direction:row;align-items:center}.ds-chrome-column.sc-ds-mobile-bar-nav-h,.ds-chrome-column.sc-ds-mobile-bar-nav{flex-direction:column}.ds-chrome-grid.sc-ds-mobile-bar-nav-h,.ds-chrome-grid.sc-ds-mobile-bar-nav{display:grid;align-items:center}@media (forced-colors: active){.sc-ds-mobile-bar-nav:root,.sc-ds-mobile-bar-nav-h,.ds-forced-colors-scope.sc-ds-mobile-bar-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-mobile-bar-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-mobile-bar-nav-h,.ds-focus-ring.sc-ds-mobile-bar-nav,.ds-focus-ring-inset.sc-ds-mobile-bar-nav-h,.ds-focus-ring-inset.sc-ds-mobile-bar-nav{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-mobile-bar-nav-h:focus-visible,.ds-focus-ring.sc-ds-mobile-bar-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-mobile-bar-nav-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-mobile-bar-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-mobile-bar-nav-h:focus-visible,.ds-focus-ring-inset.sc-ds-mobile-bar-nav:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-mobile-bar-nav-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-mobile-bar-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-mobile-bar-nav-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-mobile-bar-nav{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-mobile-bar-nav-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-mobile-bar-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-mobile-bar-nav-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){.sc-ds-mobile-bar-nav:root,.sc-ds-mobile-bar-nav-h,.ds-forced-colors-scope.sc-ds-mobile-bar-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-mobile-bar-nav-h,.ds-interaction-fill.sc-ds-mobile-bar-nav{position:relative;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-fill.sc-ds-mobile-bar-nav-h::before,.ds-interaction-fill.sc-ds-mobile-bar-nav::before,.ds-interaction-fill.sc-ds-mobile-bar-nav-h::after,.ds-interaction-fill.sc-ds-mobile-bar-nav::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;cursor:inherit;transition:none}.ds-interaction-fill.sc-ds-mobile-bar-nav-h::before,.ds-interaction-fill.sc-ds-mobile-bar-nav::before{z-index:1}.ds-interaction-fill.sc-ds-mobile-bar-nav-h::after,.ds-interaction-fill.sc-ds-mobile-bar-nav::after{z-index:3;box-shadow:inset 0 0 0 var(--ds-interaction-border-width) var(--ds-interaction-border-color)}.ds-interaction-fill--bordered.sc-ds-mobile-bar-nav-h,.ds-interaction-fill--bordered.sc-ds-mobile-bar-nav{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-mobile-bar-nav-h::before,.ds-interaction-fill--selected.sc-ds-mobile-bar-nav::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-mobile-bar-nav-h,.ds-interaction-fill--selected.sc-ds-mobile-bar-nav{--ds-interaction-dot-ring:var(--ds-interaction-active)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-mobile-bar-nav-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-mobile-bar-nav:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}}.ds-interaction-fill.sc-ds-mobile-bar-nav-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-mobile-bar-nav:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill.sc-ds-mobile-bar-nav-h>.ds-interaction-fill__content.sc-ds-mobile-bar-nav,.ds-interaction-fill.sc-ds-mobile-bar-nav>.ds-interaction-fill__content.sc-ds-mobile-bar-nav,.ds-interaction-fill__content.sc-ds-mobile-bar-nav{position:relative;z-index:2;cursor:inherit}.ds-interaction-fill--on-faint.sc-ds-mobile-bar-nav-h,.ds-interaction-fill--on-faint.sc-ds-mobile-bar-nav{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-mobile-bar-nav-h,.ds-interaction-fill--on-medium.sc-ds-mobile-bar-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-mobile-bar-nav-h,.ds-interaction-fill--on-bold.sc-ds-mobile-bar-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-mobile-bar-nav-h,.ds-interaction-fill--on-strong.sc-ds-mobile-bar-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-mobile-bar-nav-h,.ds-interaction-fill--on-translucent.sc-ds-mobile-bar-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);--ds-focus-ring-color:var(--color-translucent-interaction-focus)}.ds-interaction-fill--on-inverted.sc-ds-mobile-bar-nav-h,.ds-interaction-fill--on-inverted.sc-ds-mobile-bar-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);--ds-focus-ring-color:var(--color-inverted-interaction-focus)}.ds-interaction-fill--on-media.sc-ds-mobile-bar-nav-h,.ds-interaction-fill--on-media.sc-ds-mobile-bar-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-mobile-bar-nav-h,.ds-interaction-fill--on-always-dark.sc-ds-mobile-bar-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);--ds-focus-ring-color:var(--color-always-dark-interaction-focus)}.ds-interaction-fill--on-navigation.sc-ds-mobile-bar-nav-h,.ds-interaction-fill--on-navigation.sc-ds-mobile-bar-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)}@media (forced-colors: active){.ds-interaction-fill.sc-ds-mobile-bar-nav-h::after,.ds-interaction-fill.sc-ds-mobile-bar-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--selected.sc-ds-mobile-bar-nav-h::before,.ds-interaction-fill--selected.sc-ds-mobile-bar-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-mobile-bar-nav-h:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill.sc-ds-mobile-bar-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)}}.sc-ds-mobile-bar-nav-h{display:block;min-width:0;background:var(--color-background-primary);color:var(--color-foreground-tertiary);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.mobile-bar-nav.sc-ds-mobile-bar-nav{justify-content:space-between;min-width:0;padding-block-end:max(var(--ds-chrome-padding), env(safe-area-inset-bottom));border-top:var(--dimension-stroke-width-012) solid var(--color-border-tertiary);background:var(--color-background-primary);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.mobile-bar-nav__group.sc-ds-mobile-bar-nav{display:flex;align-items:center;gap:var(--dimension-space-100)}.mobile-bar-nav__item.sc-ds-mobile-bar-nav{appearance:none;flex:0 0 var(--dimension-size-500);width:var(--dimension-size-500);height:var(--dimension-size-500);padding:var(--dimension-space-100);border:0;border-radius:var(--dimension-radius-025);background:transparent;color:inherit;display:inline-flex;align-items:center;justify-content:center;cursor:default}.mobile-bar-nav__item--selected.sc-ds-mobile-bar-nav{color:var(--color-foreground-primary)}@media (hover: none) and (pointer: coarse){.mobile-bar-nav__item.ds-interaction-fill.sc-ds-mobile-bar-nav:active:not(:disabled)::after{background:transparent}.mobile-bar-nav__item--pressed.ds-interaction-fill.sc-ds-mobile-bar-nav::after,.mobile-bar-nav__item--pressed.ds-interaction-fill.sc-ds-mobile-bar-nav:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}}.mobile-bar-nav__divider.sc-ds-mobile-bar-nav{flex:0 0 var(--dimension-stroke-width-012);width:var(--dimension-stroke-width-012);height:var(--dimension-iconography-lg);background:var(--color-border-tertiary);pointer-events:none;-webkit-user-select:none;user-select:none}.mobile-bar-nav__icon.sc-ds-mobile-bar-nav{position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--dimension-iconography-lg);height:var(--dimension-iconography-lg)}.mobile-bar-nav__dot.sc-ds-mobile-bar-nav{position:absolute;inset-block-start:calc(var(--dimension-space-025) * -1);inset-inline-end:calc(var(--dimension-space-025) * -1)}`;const b=120;const v=e(class e extends i{constructor(e){super();if(e!==false){this.__registerHost()}this.dsSheetNavToggle=o(this,"dsSheetNavToggle");this.dsDestinationChange=o(this,"dsDestinationChange");this.activeDestination="area";this.currentArea={id:"tracking",icon:"MapPage",label:"Tracking"};this.sheetNavExpanded=false;this.menuLabel="Menu";this.searchLabel="Search";this.agentsLabel="Agents";this.inboxLabel="Inbox";this.helpLabel="Help & Support";this.searchDot=false;this.agentsDot=false;this.inboxDot=false;this.pressedItemId=null;this.activePointerId=null;this.pressedAt=0;this.pressClearTimer=null}disconnectedCallback(){this.clearPressedItem()}clearPressTimer(){if(this.pressClearTimer===null)return;clearTimeout(this.pressClearTimer);this.pressClearTimer=null}clearPressedItem(){this.clearPressTimer();this.activePointerId=null;this.pressedItemId=null}beginDirectPress(e,i){if(!i.isPrimary||i.pointerType==="mouse"||i.button!==0)return;this.clearPressTimer();this.activePointerId=i.pointerId;this.pressedAt=performance.now();this.pressedItemId=e;const o=i.currentTarget;try{o.setPointerCapture(i.pointerId)}catch{}}finishDirectPress(e){if(e.pointerId!==this.activePointerId)return;this.activePointerId=null;const i=Math.max(0,b-(performance.now()-this.pressedAt));this.clearPressTimer();this.pressClearTimer=setTimeout((()=>{this.pressClearTimer=null;this.pressedItemId=null}),i)}cancelDirectPress(e){if(e.pointerId!==this.activePointerId)return;this.clearPressedItem()}pressHandlers(e){return{onPointerDown:i=>this.beginDirectPress(e,i),onPointerUp:e=>this.finishDirectPress(e),onPointerCancel:e=>this.cancelDirectPress(e),onLostPointerCapture:e=>this.finishDirectPress(e)}}destinationConfig(){const e=this.activeDestination==="help"?{id:"help",icon:"CircleQuestion",label:this.helpLabel,dot:false}:{id:"area",icon:this.currentArea.icon||"MapPage",label:this.currentArea.label||"Area",dot:false};return[e,{id:"search",icon:"MagnifyingGlass",label:this.searchLabel,dot:this.searchDot},{id:"inbox",icon:"Inbox",label:this.inboxLabel,dot:this.inboxDot},{id:"agents",icon:"AI",label:this.agentsLabel,dot:this.agentsDot}]}selectDestination(e){if(!a(this.activeDestination,e,this.sheetNavExpanded)){return}this.dsDestinationChange.emit({destination:e});requestAnimationFrame((()=>{void this.focusDestination(e)}))}async focusDestination(e){const i=this.el.querySelector(`#${e==="sheet-nav"?"ds-mobile-sheet-nav-trigger":`ds-mobile-bar-${e}-trigger`}`);i?.focus({preventScroll:true})}renderDestination(e){const i=!this.sheetNavExpanded&&e.id===this.activeDestination;return s("button",{id:`ds-mobile-bar-${e.id}-trigger`,type:"button",class:{"mobile-bar-nav__item":true,"mobile-bar-nav__item--selected":i,"mobile-bar-nav__item--pressed":this.pressedItemId===e.id,"ds-focus-ring-inset":true,"ds-interaction-fill":true},"aria-label":e.label,"aria-current":i?"page":undefined,onClick:()=>this.selectDestination(e.id),...this.pressHandlers(e.id)},s("span",{class:"mobile-bar-nav__icon ds-interaction-fill__content"},s("ds-icon",{name:e.icon,size:"lg",color:"inherit"}),e.dot&&s("ds-badge",{class:"mobile-bar-nav__dot",variant:"dot",label:"","aria-hidden":"true"})))}render(){const[e,...i]=this.destinationConfig();return s(n,{key:"93456f09dece20cc20bec749d3c5f2011a9cc1c0"},s("nav",{key:"e787675fc24d8459322b25698129a67d52fb0984",class:"mobile-bar-nav ds-chrome-row ds-chrome-space--md","aria-label":"Primary"},s("div",{key:"4bed1da19d5976f276fcf4522da13053306314db",class:"mobile-bar-nav__group mobile-bar-nav__group--context"},s("button",{key:"877e97604eb22e1e404427d8644e694202246681",id:"ds-mobile-sheet-nav-trigger",type:"button",class:{"mobile-bar-nav__item":true,"mobile-bar-nav__item--selected":this.sheetNavExpanded,"mobile-bar-nav__item--pressed":this.pressedItemId==="sheet-nav","ds-focus-ring-inset":true,"ds-interaction-fill":true},"aria-label":this.menuLabel,"aria-expanded":String(this.sheetNavExpanded),"aria-controls":"ds-mobile-sheet-nav",onClick:()=>this.dsSheetNavToggle.emit(!this.sheetNavExpanded),...this.pressHandlers("sheet-nav")},s("span",{key:"14e125645c4fdcdf2b977acf941b079817becd6a",class:"mobile-bar-nav__icon ds-interaction-fill__content"},s("ds-icon",{key:"ba4b5f63b54950e8ec98b824a2217b255fab7a0e",name:this.sheetNavExpanded?"Cross":"Hamburger",size:"lg",color:"inherit"}))),s("span",{key:"d5316aad75512e0ca2ee13057f3c204e80319a88",class:"mobile-bar-nav__divider","aria-hidden":"true"}),this.renderDestination(e)),s("div",{key:"b201adfbade13b272072d11a52c69695e5eb1b16",class:"mobile-bar-nav__group mobile-bar-nav__group--tools"},i.map((e=>this.renderDestination(e))))))}get el(){return this}static get style(){return l()}},[2,"ds-mobile-bar-nav",{activeDestination:[1,"active-destination"],currentArea:[16],sheetNavExpanded:[4,"sheet-nav-expanded"],menuLabel:[1,"menu-label"],searchLabel:[1,"search-label"],agentsLabel:[1,"agents-label"],inboxLabel:[1,"inbox-label"],helpLabel:[1,"help-label"],searchDot:[4,"search-dot"],agentsDot:[4,"agents-dot"],inboxDot:[4,"inbox-dot"],pressedItemId:[32],focusDestination:[64]}]);function m(){if(typeof customElements==="undefined"){return}const e=["ds-mobile-bar-nav","ds-badge","ds-icon","ds-text"];e.forEach((e=>{switch(e){case"ds-mobile-bar-nav":if(!customElements.get(r(e))){customElements.define(r(e),v)}break;case"ds-badge":if(!customElements.get(r(e))){t()}break;case"ds-icon":if(!customElements.get(r(e))){c()}break;case"ds-text":if(!customElements.get(r(e))){d()}break}}))}m();export{v as M,m as d};
|
|
2
|
+
//# sourceMappingURL=p-CzraIk34.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mobileBarNavCss","MINIMUM_DIRECT_PRESS_MS","MobileBarNav","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","activeDestination","currentArea","id","icon","label","sheetNavExpanded","menuLabel","searchLabel","agentsLabel","inboxLabel","helpLabel","searchDot","agentsDot","inboxDot","pressedItemId","activePointerId","pressedAt","pressClearTimer","disconnectedCallback","clearPressedItem","clearPressTimer","clearTimeout","beginDirectPress","itemId","event","isPrimary","pointerType","button","pointerId","performance","now","target","currentTarget","setPointerCapture","finishDirectPress","remaining","Math","max","setTimeout","cancelDirectPress","pressHandlers","onPointerDown","onPointerUp","onPointerCancel","onLostPointerCapture","destinationConfig","dot","selectDestination","destination","shouldEmitMobileDestinationChange","dsDestinationChange","emit","requestAnimationFrame","focusDestination","el","querySelector","focus","preventScroll","renderDestination","item","selected","h","type","class","undefined","onClick","name","size","color","variant","render","tools","Host","key","String","dsSheetNavToggle","map"],"sources":["src/wc/components/MobileBarNav/MobileBarNav.css?tag=ds-mobile-bar-nav&encapsulation=scoped","src/wc/components/MobileBarNav/MobileBarNav.tsx"],"sourcesContent":["@import '../../utils/chrome-layout.css';\n@import '../../utils/focus-ring.css';\n@import '../../utils/interaction-fill.css';\n\n:host {\n display: block;\n min-width: 0;\n background: var(--color-background-primary);\n color: var(--color-foreground-tertiary);\n -webkit-user-select: none;\n user-select: none;\n -webkit-touch-callout: none;\n}\n\n.mobile-bar-nav {\n justify-content: space-between;\n min-width: 0;\n padding-block-end: max(var(--ds-chrome-padding), env(safe-area-inset-bottom));\n border-top: var(--dimension-stroke-width-012) solid var(--color-border-tertiary);\n background: var(--color-background-primary);\n -webkit-user-select: none;\n user-select: none;\n -webkit-touch-callout: none;\n}\n\n.mobile-bar-nav__group {\n display: flex;\n align-items: center;\n gap: var(--dimension-space-100);\n}\n\n.mobile-bar-nav__item {\n appearance: none;\n flex: 0 0 var(--dimension-size-500);\n width: var(--dimension-size-500);\n height: var(--dimension-size-500);\n padding: var(--dimension-space-100);\n border: 0;\n border-radius: var(--dimension-radius-025);\n background: transparent;\n color: inherit;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n cursor: default;\n}\n\n.mobile-bar-nav__item--selected {\n color: var(--color-foreground-primary);\n}\n\n/*\n * Safari can retain its native :active state after a direct touch. On coarse\n * touch-only pointers, the component-owned class provides one deterministic\n * press frame and clears it after release/cancel.\n */\n@media (hover: none) and (pointer: coarse) {\n .mobile-bar-nav__item.ds-interaction-fill:active:not(:disabled)::after {\n background: transparent;\n }\n\n .mobile-bar-nav__item--pressed.ds-interaction-fill::after,\n .mobile-bar-nav__item--pressed.ds-interaction-fill:active:not(:disabled)::after {\n background: var(--ds-interaction-pressed);\n }\n}\n\n.mobile-bar-nav__divider {\n flex: 0 0 var(--dimension-stroke-width-012);\n width: var(--dimension-stroke-width-012);\n height: var(--dimension-iconography-lg);\n background: var(--color-border-tertiary);\n pointer-events: none;\n -webkit-user-select: none;\n user-select: none;\n}\n\n.mobile-bar-nav__icon {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--dimension-iconography-lg);\n height: var(--dimension-iconography-lg);\n}\n\n.mobile-bar-nav__dot {\n position: absolute;\n inset-block-start: calc(var(--dimension-space-025) * -1);\n inset-inline-end: calc(var(--dimension-space-025) * -1);\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n} from '@stencil/core';\nimport {\n shouldEmitMobileDestinationChange,\n type MobileDestination,\n} from '../../shell/shell-responsive';\nimport type { PanelNavItem } from '../PanelNav/panel-nav-types';\nimport type { MobileBarNavDestinationDetail } from './mobile-bar-nav-types';\n\ninterface DestinationConfig {\n id: MobileDestination;\n icon: string;\n label: string;\n dot: boolean;\n}\n\nconst MINIMUM_DIRECT_PRESS_MS = 120;\n\n@Component({\n tag: 'ds-mobile-bar-nav',\n styleUrl: 'MobileBarNav.css',\n scoped: true,\n})\nexport class MobileBarNav {\n @Element() el!: HTMLElement;\n\n @Prop() activeDestination: MobileDestination = 'area';\n @Prop() currentArea: PanelNavItem = {\n id: 'tracking',\n icon: 'MapPage',\n label: 'Tracking',\n };\n @Prop() sheetNavExpanded: boolean = false;\n @Prop() menuLabel: string = 'Menu';\n @Prop() searchLabel: string = 'Search';\n @Prop() agentsLabel: string = 'Agents';\n @Prop() inboxLabel: string = 'Inbox';\n @Prop() helpLabel: string = 'Help & Support';\n @Prop() searchDot: boolean = false;\n @Prop() agentsDot: boolean = false;\n @Prop() inboxDot: boolean = false;\n\n @State() private pressedItemId: string | null = null;\n\n @Event() dsSheetNavToggle!: EventEmitter<boolean>;\n @Event() dsDestinationChange!: EventEmitter<MobileBarNavDestinationDetail>;\n\n private activePointerId: number | null = null;\n private pressedAt = 0;\n private pressClearTimer: ReturnType<typeof setTimeout> | null = null;\n\n disconnectedCallback() {\n this.clearPressedItem();\n }\n\n private clearPressTimer() {\n if (this.pressClearTimer === null) return;\n clearTimeout(this.pressClearTimer);\n this.pressClearTimer = null;\n }\n\n private clearPressedItem() {\n this.clearPressTimer();\n this.activePointerId = null;\n this.pressedItemId = null;\n }\n\n private beginDirectPress(itemId: string, event: PointerEvent) {\n if (!event.isPrimary || event.pointerType === 'mouse' || event.button !== 0) return;\n\n this.clearPressTimer();\n this.activePointerId = event.pointerId;\n this.pressedAt = performance.now();\n this.pressedItemId = itemId;\n\n const target = event.currentTarget as HTMLElement;\n try {\n target.setPointerCapture(event.pointerId);\n } catch {\n // Pointer capture can fail if Safari has already cancelled the stream.\n }\n }\n\n private finishDirectPress(event: PointerEvent) {\n if (event.pointerId !== this.activePointerId) return;\n\n this.activePointerId = null;\n const remaining = Math.max(\n 0,\n MINIMUM_DIRECT_PRESS_MS - (performance.now() - this.pressedAt)\n );\n\n this.clearPressTimer();\n this.pressClearTimer = setTimeout(() => {\n this.pressClearTimer = null;\n this.pressedItemId = null;\n }, remaining);\n }\n\n private cancelDirectPress(event: PointerEvent) {\n if (event.pointerId !== this.activePointerId) return;\n this.clearPressedItem();\n }\n\n private pressHandlers(itemId: string) {\n return {\n onPointerDown: (event: PointerEvent) => this.beginDirectPress(itemId, event),\n onPointerUp: (event: PointerEvent) => this.finishDirectPress(event),\n onPointerCancel: (event: PointerEvent) => this.cancelDirectPress(event),\n onLostPointerCapture: (event: PointerEvent) => this.finishDirectPress(event),\n };\n }\n\n private destinationConfig(): DestinationConfig[] {\n const currentArea =\n this.activeDestination === 'help'\n ? {\n id: 'help' as const,\n icon: 'CircleQuestion',\n label: this.helpLabel,\n dot: false,\n }\n : {\n id: 'area' as const,\n icon: this.currentArea.icon || 'MapPage',\n label: this.currentArea.label || 'Area',\n dot: false,\n };\n\n return [\n currentArea,\n { id: 'search', icon: 'MagnifyingGlass', label: this.searchLabel, dot: this.searchDot },\n { id: 'inbox', icon: 'Inbox', label: this.inboxLabel, dot: this.inboxDot },\n { id: 'agents', icon: 'AI', label: this.agentsLabel, dot: this.agentsDot },\n ];\n }\n\n private selectDestination(destination: MobileDestination) {\n if (\n !shouldEmitMobileDestinationChange(\n this.activeDestination,\n destination,\n this.sheetNavExpanded\n )\n ) {\n return;\n }\n this.dsDestinationChange.emit({ destination });\n // Owners may replace the visible mobile stage (and transiently drop focus\n // in WebKit) while handling the controlled destination change.\n requestAnimationFrame(() => {\n void this.focusDestination(destination);\n });\n }\n\n @Method()\n async focusDestination(destination: MobileDestination | 'sheet-nav') {\n const target = this.el.querySelector<HTMLElement>(\n `#${\n destination === 'sheet-nav'\n ? 'ds-mobile-sheet-nav-trigger'\n : `ds-mobile-bar-${destination}-trigger`\n }`\n );\n target?.focus({ preventScroll: true });\n }\n\n private renderDestination(item: DestinationConfig) {\n const selected = !this.sheetNavExpanded && item.id === this.activeDestination;\n return (\n <button\n id={`ds-mobile-bar-${item.id}-trigger`}\n type=\"button\"\n class={{\n 'mobile-bar-nav__item': true,\n 'mobile-bar-nav__item--selected': selected,\n 'mobile-bar-nav__item--pressed': this.pressedItemId === item.id,\n 'ds-focus-ring-inset': true,\n 'ds-interaction-fill': true,\n }}\n aria-label={item.label}\n aria-current={selected ? 'page' : undefined}\n onClick={() => this.selectDestination(item.id)}\n {...this.pressHandlers(item.id)}\n >\n <span class=\"mobile-bar-nav__icon ds-interaction-fill__content\">\n <ds-icon name={item.icon} size=\"lg\" color=\"inherit\" />\n {item.dot && (\n <ds-badge class=\"mobile-bar-nav__dot\" variant=\"dot\" label=\"\" aria-hidden=\"true\" />\n )}\n </span>\n </button>\n );\n }\n\n render() {\n const [currentArea, ...tools] = this.destinationConfig();\n\n return (\n <Host>\n <nav class=\"mobile-bar-nav ds-chrome-row ds-chrome-space--md\" aria-label=\"Primary\">\n <div class=\"mobile-bar-nav__group mobile-bar-nav__group--context\">\n <button\n id=\"ds-mobile-sheet-nav-trigger\"\n type=\"button\"\n class={{\n 'mobile-bar-nav__item': true,\n 'mobile-bar-nav__item--selected': this.sheetNavExpanded,\n 'mobile-bar-nav__item--pressed':\n this.pressedItemId === 'sheet-nav',\n 'ds-focus-ring-inset': true,\n 'ds-interaction-fill': true,\n }}\n aria-label={this.menuLabel}\n aria-expanded={String(this.sheetNavExpanded)}\n aria-controls=\"ds-mobile-sheet-nav\"\n onClick={() => this.dsSheetNavToggle.emit(!this.sheetNavExpanded)}\n {...this.pressHandlers('sheet-nav')}\n >\n <span class=\"mobile-bar-nav__icon ds-interaction-fill__content\">\n <ds-icon\n name={this.sheetNavExpanded ? 'Cross' : 'Hamburger'}\n size=\"lg\"\n color=\"inherit\"\n />\n </span>\n </button>\n <span class=\"mobile-bar-nav__divider\" aria-hidden=\"true\" />\n {this.renderDestination(currentArea)}\n </div>\n <div class=\"mobile-bar-nav__group mobile-bar-nav__group--tools\">\n {tools.map(item => this.renderDestination(item))}\n </div>\n </nav>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"Banner has a real bottom boundary, no radius, no elevation, no icon, no timeout, and no internal queue."
|
|
60
60
|
],
|
|
61
61
|
"responsiveBehavior": [
|
|
62
|
-
"Applications select orientation explicitly. Horizontal keeps copy and actions in one row, with actions top-aligned to dismissal. Vertical puts actions below copy on the 16px text boundary and keeps controls 16px above the bottom boundary.",
|
|
62
|
+
"Applications select orientation explicitly. Horizontal keeps copy and actions in one row, with actions top-aligned to dismissal. Vertical puts actions below copy on the 16px text boundary and keeps controls 16px above the bottom boundary; without actions it reserves no trailing row and keeps the copy visually balanced between the top and bottom edges.",
|
|
63
63
|
"When placed in ShellApp's banner slot, the banner spans the complete application above navigation, workspace, and tools.",
|
|
64
64
|
"ShellApp reserves the mobile top safe area once above the banner and keeps the banner visible while mobile tools or navigation surfaces replace the routed stage."
|
|
65
65
|
],
|
|
@@ -321,7 +321,7 @@
|
|
|
321
321
|
"files": [
|
|
322
322
|
{
|
|
323
323
|
"path": "src/wc/components/Banner/Banner.css",
|
|
324
|
-
"content": "@import '../../utils/forced-colors.css';\n@import '../../utils/chrome-header.css';\n\n:host {\n display: grid;\n overflow: hidden;\n min-width: 0;\n grid-template-rows: 0fr;\n transition: grid-template-rows var(--effect-animation-duration-short-3)\n var(--_banner-motion-easing);\n\n --ds-banner-background: var(--color-background-faint-neutral);\n --ds-banner-heading: var(--color-foreground-primary);\n --ds-banner-description: var(--color-foreground-secondary);\n --ds-banner-border: var(--color-border-tertiary);\n --_banner-motion-easing: var(--effect-animation-easing-ease-in-out, ease);\n}\n\n:host(.banner--open) {\n grid-template-rows: 1fr;\n --_banner-motion-easing: var(--effect-animation-easing-ease-out, ease-out);\n}\n\n:host(.banner--closing) {\n --_banner-motion-easing: var(--effect-animation-easing-ease-in, ease-in);\n}\n\n:host(.banner--hidden) {\n display: none;\n}\n\n.banner-overflow {\n min-height: 0;\n overflow: visible;\n}\n\n.banner-surface {\n display: flex;\n position: relative;\n width: 100%;\n padding-inline-end: calc(var(--dimension-size-400) + var(--dimension-space-200));\n color: var(--ds-banner-description);\n background-color: var(--ds-banner-background);\n border-bottom: var(--dimension-stroke-width-012) solid var(--ds-banner-border);\n transform: translateY(-100%);\n transition: transform var(--effect-animation-duration-short-3) var(--_banner-motion-easing);\n}\n\n:host(.banner--open) .banner-surface {\n transform: translateY(0);\n}\n\n.banner-copy {\n flex-basis: var(--dimension-card-width-sm);\n}\n\n:host(.banner--orientation-horizontal) .banner-surface {\n flex-wrap: nowrap;\n}\n\n:host(.banner--orientation-vertical) .banner-copy {\n flex-basis: 100%;\n}\n\n.banner-copy-flow {\n box-sizing: border-box;\n min-width: 0;\n padding-inline: var(--ds-control-label-inset, var(--dimension-space-025));\n color: var(--ds-banner-description);\n}\n\n.banner-heading {\n display: inline-block;\n width: auto;\n max-width: 100%;\n margin-inline-end: var(--dimension-space-100);\n vertical-align: baseline;\n color: var(--ds-banner-heading);\n}\n\n.banner-description {\n color: var(--ds-banner-description);\n}\n\n.banner-actions {\n display: flex;\n align-items: center;\n flex: 0 0 auto;\n flex-wrap: nowrap;\n min-width: 0;\n gap: var(--dimension-space-100);\n}\n\n.banner-actions slot {\n display: contents;\n}\n\n.banner-actions ::slotted(:not(ds-button-unfilled)),\n.banner-actions ::slotted(ds-button-unfilled:nth-of-type(n + 3)) {\n display: none;\n}\n\n.banner-actions--empty {\n display: none;\n}\n\n.banner-trailing {\n align-self: flex-start;\n flex-wrap: nowrap;\n}\n\n:host(.banner--orientation-vertical.banner--has-actions) .banner-trailing {\n margin-inline: var(--dimension-space-100) auto;\n padding-block-end: var(--dimension-space-100);\n box-sizing: border-box;\n}\n\n:host(.banner--orientation-vertical) .banner-description {\n display: block;\n}\n\n:host(.banner--orientation-vertical) .banner-heading + .banner-description {\n margin-block-start: var(--dimension-space-050);\n}\n\n.banner-close {\n flex: 0 0 auto;\n}\n\n.banner-dismiss {\n position: absolute;\n inset-block-start: var(--dimension-space-100);\n inset-inline-end: var(--dimension-space-100);\n}\n\n:host(.banner--intent-neutral) {\n --ds-banner-faint-background: var(--color-background-faint-neutral);\n}\n\n:host(.banner--intent-brand) {\n --ds-banner-faint-background: var(--color-background-faint-brand);\n}\n\n:host(.banner--intent-positive) {\n --ds-banner-faint-background: var(--color-background-faint-positive);\n}\n\n:host(.banner--intent-warning) {\n --ds-banner-faint-background: var(--color-background-faint-warning);\n}\n\n:host(.banner--intent-caution) {\n --ds-banner-faint-background: var(--color-background-faint-caution);\n}\n\n:host(.banner--intent-negative) {\n --ds-banner-faint-background: var(--color-background-faint-negative);\n}\n\n:host(.banner--contrast-faint) {\n --ds-banner-background: var(--ds-banner-faint-background);\n --ds-banner-heading: var(--color-foreground-primary);\n --ds-banner-description: var(--color-foreground-secondary);\n --ds-banner-border: var(--color-border-tertiary);\n}\n\n:host(.banner--contrast-medium) {\n --ds-banner-background: var(--color-background-medium-neutral);\n --ds-banner-heading: var(--color-foreground-on-medium-background-primary);\n --ds-banner-description: var(--color-foreground-on-medium-background-secondary);\n --ds-banner-border: var(--color-border-on-medium-background-tertiary);\n}\n\n:host(.banner--intent-brand.banner--contrast-medium) { --ds-banner-background: var(--color-background-medium-brand); }\n:host(.banner--intent-positive.banner--contrast-medium) { --ds-banner-background: var(--color-background-medium-positive); }\n:host(.banner--intent-warning.banner--contrast-medium) { --ds-banner-background: var(--color-background-medium-warning); }\n:host(.banner--intent-caution.banner--contrast-medium) { --ds-banner-background: var(--color-background-medium-caution); }\n:host(.banner--intent-negative.banner--contrast-medium) { --ds-banner-background: var(--color-background-medium-negative); }\n\n:host(.banner--contrast-strong) {\n --ds-banner-background: var(--color-background-strong-neutral);\n --ds-banner-heading: var(--color-foreground-on-strong-background-primary);\n --ds-banner-description: var(--color-foreground-on-strong-background-secondary);\n --ds-banner-border: var(--color-border-on-strong-background-tertiary);\n}\n\n:host(.banner--intent-brand.banner--contrast-strong) { --ds-banner-background: var(--color-background-strong-brand); }\n:host(.banner--intent-positive.banner--contrast-strong) { --ds-banner-background: var(--color-background-strong-positive); }\n:host(.banner--intent-warning.banner--contrast-strong) { --ds-banner-background: var(--color-background-strong-warning); }\n:host(.banner--intent-caution.banner--contrast-strong) { --ds-banner-background: var(--color-background-strong-caution); }\n:host(.banner--intent-negative.banner--contrast-strong) { --ds-banner-background: var(--color-background-strong-negative); }\n\n:host(.banner--contrast-bold) {\n --ds-banner-background: var(--color-background-bold-neutral);\n --ds-banner-heading: var(--color-foreground-on-bold-background-primary);\n --ds-banner-description: var(--color-foreground-on-bold-background-secondary);\n --ds-banner-border: var(--color-border-on-bold-background-tertiary);\n}\n\n:host(.banner--intent-brand.banner--contrast-bold) { --ds-banner-background: var(--color-background-bold-brand); }\n:host(.banner--intent-positive.banner--contrast-bold) { --ds-banner-background: var(--color-background-bold-positive); }\n:host(.banner--intent-warning.banner--contrast-bold) { --ds-banner-background: var(--color-background-bold-warning); }\n:host(.banner--intent-caution.banner--contrast-bold) { --ds-banner-background: var(--color-background-bold-caution); }\n:host(.banner--intent-negative.banner--contrast-bold) { --ds-banner-background: var(--color-background-bold-negative); }\n\n@media (prefers-reduced-motion: reduce) {\n :host,\n .banner-surface {\n transition: none;\n }\n}\n\n@media (forced-colors: active) {\n .banner-surface {\n color: var(--ds-forced-color-content);\n background-color: var(--ds-forced-color-surface);\n border-bottom-color: var(--ds-forced-color-content);\n }\n\n .banner-heading,\n .banner-description {\n color: var(--ds-forced-color-content);\n }\n}\n",
|
|
324
|
+
"content": "@import '../../utils/forced-colors.css';\n@import '../../utils/chrome-header.css';\n\n:host {\n display: grid;\n overflow: hidden;\n min-width: 0;\n grid-template-rows: 0fr;\n transition: grid-template-rows var(--effect-animation-duration-short-3)\n var(--_banner-motion-easing);\n\n --ds-banner-background: var(--color-background-faint-neutral);\n --ds-banner-heading: var(--color-foreground-primary);\n --ds-banner-description: var(--color-foreground-secondary);\n --ds-banner-border: var(--color-border-tertiary);\n --_banner-motion-easing: var(--effect-animation-easing-ease-in-out, ease);\n}\n\n:host(.banner--open) {\n grid-template-rows: 1fr;\n --_banner-motion-easing: var(--effect-animation-easing-ease-out, ease-out);\n}\n\n:host(.banner--closing) {\n --_banner-motion-easing: var(--effect-animation-easing-ease-in, ease-in);\n}\n\n:host(.banner--hidden) {\n display: none;\n}\n\n.banner-overflow {\n min-height: 0;\n overflow: visible;\n}\n\n.banner-surface {\n display: flex;\n position: relative;\n width: 100%;\n padding-inline-end: calc(var(--dimension-size-400) + var(--dimension-space-200));\n color: var(--ds-banner-description);\n background-color: var(--ds-banner-background);\n border-bottom: var(--dimension-stroke-width-012) solid var(--ds-banner-border);\n transform: translateY(-100%);\n transition: transform var(--effect-animation-duration-short-3) var(--_banner-motion-easing);\n}\n\n:host(.banner--open) .banner-surface {\n transform: translateY(0);\n}\n\n.banner-copy {\n flex-basis: var(--dimension-card-width-sm);\n}\n\n:host(.banner--orientation-horizontal) .banner-surface {\n flex-wrap: nowrap;\n}\n\n:host(.banner--orientation-vertical) .banner-copy {\n flex-basis: 100%;\n}\n\n.banner-copy-flow {\n box-sizing: border-box;\n min-width: 0;\n padding-inline: var(--ds-control-label-inset, var(--dimension-space-025));\n color: var(--ds-banner-description);\n}\n\n.banner-heading {\n display: inline-block;\n width: auto;\n max-width: 100%;\n margin-inline-end: var(--dimension-space-100);\n vertical-align: baseline;\n color: var(--ds-banner-heading);\n}\n\n.banner-description {\n color: var(--ds-banner-description);\n}\n\n.banner-actions {\n display: flex;\n align-items: center;\n flex: 0 0 auto;\n flex-wrap: nowrap;\n min-width: 0;\n gap: var(--dimension-space-100);\n}\n\n.banner-actions slot {\n display: contents;\n}\n\n.banner-actions ::slotted(:not(ds-button-unfilled)),\n.banner-actions ::slotted(ds-button-unfilled:nth-of-type(n + 3)) {\n display: none;\n}\n\n.banner-actions--empty {\n display: none;\n}\n\n.banner-trailing {\n align-self: flex-start;\n flex-wrap: nowrap;\n}\n\n:host(.banner--orientation-vertical:not(.banner--has-actions)) .banner-trailing {\n display: contents;\n}\n\n:host(.banner--orientation-vertical.banner--has-actions) .banner-trailing {\n margin-inline: var(--dimension-space-100) auto;\n padding-block-end: var(--dimension-space-100);\n box-sizing: border-box;\n}\n\n:host(.banner--orientation-vertical) .banner-description {\n display: block;\n}\n\n:host(.banner--orientation-vertical) .banner-heading + .banner-description {\n margin-block-start: var(--dimension-space-050);\n}\n\n.banner-close {\n flex: 0 0 auto;\n}\n\n.banner-dismiss {\n position: absolute;\n inset-block-start: var(--dimension-space-100);\n inset-inline-end: var(--dimension-space-100);\n}\n\n:host(.banner--intent-neutral) {\n --ds-banner-faint-background: var(--color-background-faint-neutral);\n}\n\n:host(.banner--intent-brand) {\n --ds-banner-faint-background: var(--color-background-faint-brand);\n}\n\n:host(.banner--intent-positive) {\n --ds-banner-faint-background: var(--color-background-faint-positive);\n}\n\n:host(.banner--intent-warning) {\n --ds-banner-faint-background: var(--color-background-faint-warning);\n}\n\n:host(.banner--intent-caution) {\n --ds-banner-faint-background: var(--color-background-faint-caution);\n}\n\n:host(.banner--intent-negative) {\n --ds-banner-faint-background: var(--color-background-faint-negative);\n}\n\n:host(.banner--contrast-faint) {\n --ds-banner-background: var(--ds-banner-faint-background);\n --ds-banner-heading: var(--color-foreground-primary);\n --ds-banner-description: var(--color-foreground-secondary);\n --ds-banner-border: var(--color-border-tertiary);\n}\n\n:host(.banner--contrast-medium) {\n --ds-banner-background: var(--color-background-medium-neutral);\n --ds-banner-heading: var(--color-foreground-on-medium-background-primary);\n --ds-banner-description: var(--color-foreground-on-medium-background-secondary);\n --ds-banner-border: var(--color-border-on-medium-background-tertiary);\n}\n\n:host(.banner--intent-brand.banner--contrast-medium) { --ds-banner-background: var(--color-background-medium-brand); }\n:host(.banner--intent-positive.banner--contrast-medium) { --ds-banner-background: var(--color-background-medium-positive); }\n:host(.banner--intent-warning.banner--contrast-medium) { --ds-banner-background: var(--color-background-medium-warning); }\n:host(.banner--intent-caution.banner--contrast-medium) { --ds-banner-background: var(--color-background-medium-caution); }\n:host(.banner--intent-negative.banner--contrast-medium) { --ds-banner-background: var(--color-background-medium-negative); }\n\n:host(.banner--contrast-strong) {\n --ds-banner-background: var(--color-background-strong-neutral);\n --ds-banner-heading: var(--color-foreground-on-strong-background-primary);\n --ds-banner-description: var(--color-foreground-on-strong-background-secondary);\n --ds-banner-border: var(--color-border-on-strong-background-tertiary);\n}\n\n:host(.banner--intent-brand.banner--contrast-strong) { --ds-banner-background: var(--color-background-strong-brand); }\n:host(.banner--intent-positive.banner--contrast-strong) { --ds-banner-background: var(--color-background-strong-positive); }\n:host(.banner--intent-warning.banner--contrast-strong) { --ds-banner-background: var(--color-background-strong-warning); }\n:host(.banner--intent-caution.banner--contrast-strong) { --ds-banner-background: var(--color-background-strong-caution); }\n:host(.banner--intent-negative.banner--contrast-strong) { --ds-banner-background: var(--color-background-strong-negative); }\n\n:host(.banner--contrast-bold) {\n --ds-banner-background: var(--color-background-bold-neutral);\n --ds-banner-heading: var(--color-foreground-on-bold-background-primary);\n --ds-banner-description: var(--color-foreground-on-bold-background-secondary);\n --ds-banner-border: var(--color-border-on-bold-background-tertiary);\n}\n\n:host(.banner--intent-brand.banner--contrast-bold) { --ds-banner-background: var(--color-background-bold-brand); }\n:host(.banner--intent-positive.banner--contrast-bold) { --ds-banner-background: var(--color-background-bold-positive); }\n:host(.banner--intent-warning.banner--contrast-bold) { --ds-banner-background: var(--color-background-bold-warning); }\n:host(.banner--intent-caution.banner--contrast-bold) { --ds-banner-background: var(--color-background-bold-caution); }\n:host(.banner--intent-negative.banner--contrast-bold) { --ds-banner-background: var(--color-background-bold-negative); }\n\n@media (prefers-reduced-motion: reduce) {\n :host,\n .banner-surface {\n transition: none;\n }\n}\n\n@media (forced-colors: active) {\n .banner-surface {\n color: var(--ds-forced-color-content);\n background-color: var(--ds-forced-color-surface);\n border-bottom-color: var(--ds-forced-color-content);\n }\n\n .banner-heading,\n .banner-description {\n color: var(--ds-forced-color-content);\n }\n}\n",
|
|
325
325
|
"type": "registry:ui"
|
|
326
326
|
},
|
|
327
327
|
{
|
|
@@ -39,8 +39,8 @@
|
|
|
39
39
|
"Direct touch paints the pressed overlay immediately, keeps a quick tap visible for one short frame, and clears it after release or cancellation without relying on Safari's latch-prone active state."
|
|
40
40
|
],
|
|
41
41
|
"responsiveBehavior": [
|
|
42
|
-
"Render only below the mobile breakpoint; its
|
|
43
|
-
"The
|
|
42
|
+
"Render only below the mobile breakpoint; its primary surface extends through the bottom safe-area inset when the application enables viewport-fit=cover.",
|
|
43
|
+
"The primary-background bar keeps an 8px outer inset; its two icon-only groups anchor to opposite edges while retaining fixed 40px targets and a divider between Menu and current area.",
|
|
44
44
|
"Bar chrome and its divider are not text-selectable and suppress the iOS touch callout."
|
|
45
45
|
],
|
|
46
46
|
"references": [
|
|
@@ -318,7 +318,7 @@
|
|
|
318
318
|
"files": [
|
|
319
319
|
{
|
|
320
320
|
"path": "src/wc/components/MobileBarNav/MobileBarNav.css",
|
|
321
|
-
"content": "@import '../../utils/chrome-layout.css';\n@import '../../utils/focus-ring.css';\n@import '../../utils/interaction-fill.css';\n\n:host {\n display: block;\n min-width: 0;\n background: var(--color-background-
|
|
321
|
+
"content": "@import '../../utils/chrome-layout.css';\n@import '../../utils/focus-ring.css';\n@import '../../utils/interaction-fill.css';\n\n:host {\n display: block;\n min-width: 0;\n background: var(--color-background-primary);\n color: var(--color-foreground-tertiary);\n -webkit-user-select: none;\n user-select: none;\n -webkit-touch-callout: none;\n}\n\n.mobile-bar-nav {\n justify-content: space-between;\n min-width: 0;\n padding-block-end: max(var(--ds-chrome-padding), env(safe-area-inset-bottom));\n border-top: var(--dimension-stroke-width-012) solid var(--color-border-tertiary);\n background: var(--color-background-primary);\n -webkit-user-select: none;\n user-select: none;\n -webkit-touch-callout: none;\n}\n\n.mobile-bar-nav__group {\n display: flex;\n align-items: center;\n gap: var(--dimension-space-100);\n}\n\n.mobile-bar-nav__item {\n appearance: none;\n flex: 0 0 var(--dimension-size-500);\n width: var(--dimension-size-500);\n height: var(--dimension-size-500);\n padding: var(--dimension-space-100);\n border: 0;\n border-radius: var(--dimension-radius-025);\n background: transparent;\n color: inherit;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n cursor: default;\n}\n\n.mobile-bar-nav__item--selected {\n color: var(--color-foreground-primary);\n}\n\n/*\n * Safari can retain its native :active state after a direct touch. On coarse\n * touch-only pointers, the component-owned class provides one deterministic\n * press frame and clears it after release/cancel.\n */\n@media (hover: none) and (pointer: coarse) {\n .mobile-bar-nav__item.ds-interaction-fill:active:not(:disabled)::after {\n background: transparent;\n }\n\n .mobile-bar-nav__item--pressed.ds-interaction-fill::after,\n .mobile-bar-nav__item--pressed.ds-interaction-fill:active:not(:disabled)::after {\n background: var(--ds-interaction-pressed);\n }\n}\n\n.mobile-bar-nav__divider {\n flex: 0 0 var(--dimension-stroke-width-012);\n width: var(--dimension-stroke-width-012);\n height: var(--dimension-iconography-lg);\n background: var(--color-border-tertiary);\n pointer-events: none;\n -webkit-user-select: none;\n user-select: none;\n}\n\n.mobile-bar-nav__icon {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--dimension-iconography-lg);\n height: var(--dimension-iconography-lg);\n}\n\n.mobile-bar-nav__dot {\n position: absolute;\n inset-block-start: calc(var(--dimension-space-025) * -1);\n inset-inline-end: calc(var(--dimension-space-025) * -1);\n}\n",
|
|
322
322
|
"type": "registry:ui"
|
|
323
323
|
},
|
|
324
324
|
{
|
|
@@ -717,7 +717,7 @@
|
|
|
717
717
|
"Banner has a real bottom boundary, no radius, no elevation, no icon, no timeout, and no internal queue."
|
|
718
718
|
],
|
|
719
719
|
"responsiveBehavior": [
|
|
720
|
-
"Applications select orientation explicitly. Horizontal keeps copy and actions in one row, with actions top-aligned to dismissal. Vertical puts actions below copy on the 16px text boundary and keeps controls 16px above the bottom boundary.",
|
|
720
|
+
"Applications select orientation explicitly. Horizontal keeps copy and actions in one row, with actions top-aligned to dismissal. Vertical puts actions below copy on the 16px text boundary and keeps controls 16px above the bottom boundary; without actions it reserves no trailing row and keeps the copy visually balanced between the top and bottom edges.",
|
|
721
721
|
"When placed in ShellApp's banner slot, the banner spans the complete application above navigation, workspace, and tools.",
|
|
722
722
|
"ShellApp reserves the mobile top safe area once above the banner and keeps the banner visible while mobile tools or navigation surfaces replace the routed stage."
|
|
723
723
|
],
|
|
@@ -5044,8 +5044,8 @@
|
|
|
5044
5044
|
"Direct touch paints the pressed overlay immediately, keeps a quick tap visible for one short frame, and clears it after release or cancellation without relying on Safari's latch-prone active state."
|
|
5045
5045
|
],
|
|
5046
5046
|
"responsiveBehavior": [
|
|
5047
|
-
"Render only below the mobile breakpoint; its
|
|
5048
|
-
"The
|
|
5047
|
+
"Render only below the mobile breakpoint; its primary surface extends through the bottom safe-area inset when the application enables viewport-fit=cover.",
|
|
5048
|
+
"The primary-background bar keeps an 8px outer inset; its two icon-only groups anchor to opposite edges while retaining fixed 40px targets and a divider between Menu and current area.",
|
|
5049
5049
|
"Bar chrome and its divider are not text-selectable and suppress the iOS touch callout."
|
|
5050
5050
|
],
|
|
5051
5051
|
"references": [
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["mobileBarNavCss","MINIMUM_DIRECT_PRESS_MS","MobileBarNav","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","activeDestination","currentArea","id","icon","label","sheetNavExpanded","menuLabel","searchLabel","agentsLabel","inboxLabel","helpLabel","searchDot","agentsDot","inboxDot","pressedItemId","activePointerId","pressedAt","pressClearTimer","disconnectedCallback","clearPressedItem","clearPressTimer","clearTimeout","beginDirectPress","itemId","event","isPrimary","pointerType","button","pointerId","performance","now","target","currentTarget","setPointerCapture","finishDirectPress","remaining","Math","max","setTimeout","cancelDirectPress","pressHandlers","onPointerDown","onPointerUp","onPointerCancel","onLostPointerCapture","destinationConfig","dot","selectDestination","destination","shouldEmitMobileDestinationChange","dsDestinationChange","emit","requestAnimationFrame","focusDestination","el","querySelector","focus","preventScroll","renderDestination","item","selected","h","type","class","undefined","onClick","name","size","color","variant","render","tools","Host","key","String","dsSheetNavToggle","map"],"sources":["src/wc/components/MobileBarNav/MobileBarNav.css?tag=ds-mobile-bar-nav&encapsulation=scoped","src/wc/components/MobileBarNav/MobileBarNav.tsx"],"sourcesContent":["@import '../../utils/chrome-layout.css';\n@import '../../utils/focus-ring.css';\n@import '../../utils/interaction-fill.css';\n\n:host {\n display: block;\n min-width: 0;\n background: var(--color-background-secondary);\n color: var(--color-foreground-tertiary);\n -webkit-user-select: none;\n user-select: none;\n -webkit-touch-callout: none;\n}\n\n.mobile-bar-nav {\n justify-content: space-between;\n min-width: 0;\n padding-block-end: max(var(--ds-chrome-padding), env(safe-area-inset-bottom));\n border-top: var(--dimension-stroke-width-012) solid var(--color-border-tertiary);\n background: var(--color-background-secondary);\n -webkit-user-select: none;\n user-select: none;\n -webkit-touch-callout: none;\n}\n\n.mobile-bar-nav__group {\n display: flex;\n align-items: center;\n gap: var(--dimension-space-100);\n}\n\n.mobile-bar-nav__item {\n appearance: none;\n flex: 0 0 var(--dimension-size-500);\n width: var(--dimension-size-500);\n height: var(--dimension-size-500);\n padding: var(--dimension-space-100);\n border: 0;\n border-radius: var(--dimension-radius-025);\n background: transparent;\n color: inherit;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n cursor: default;\n}\n\n.mobile-bar-nav__item--selected {\n color: var(--color-foreground-primary);\n}\n\n/*\n * Safari can retain its native :active state after a direct touch. On coarse\n * touch-only pointers, the component-owned class provides one deterministic\n * press frame and clears it after release/cancel.\n */\n@media (hover: none) and (pointer: coarse) {\n .mobile-bar-nav__item.ds-interaction-fill:active:not(:disabled)::after {\n background: transparent;\n }\n\n .mobile-bar-nav__item--pressed.ds-interaction-fill::after,\n .mobile-bar-nav__item--pressed.ds-interaction-fill:active:not(:disabled)::after {\n background: var(--ds-interaction-pressed);\n }\n}\n\n.mobile-bar-nav__divider {\n flex: 0 0 var(--dimension-stroke-width-012);\n width: var(--dimension-stroke-width-012);\n height: var(--dimension-iconography-lg);\n background: var(--color-border-tertiary);\n pointer-events: none;\n -webkit-user-select: none;\n user-select: none;\n}\n\n.mobile-bar-nav__icon {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--dimension-iconography-lg);\n height: var(--dimension-iconography-lg);\n}\n\n.mobile-bar-nav__dot {\n position: absolute;\n inset-block-start: calc(var(--dimension-space-025) * -1);\n inset-inline-end: calc(var(--dimension-space-025) * -1);\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n} from '@stencil/core';\nimport {\n shouldEmitMobileDestinationChange,\n type MobileDestination,\n} from '../../shell/shell-responsive';\nimport type { PanelNavItem } from '../PanelNav/panel-nav-types';\nimport type { MobileBarNavDestinationDetail } from './mobile-bar-nav-types';\n\ninterface DestinationConfig {\n id: MobileDestination;\n icon: string;\n label: string;\n dot: boolean;\n}\n\nconst MINIMUM_DIRECT_PRESS_MS = 120;\n\n@Component({\n tag: 'ds-mobile-bar-nav',\n styleUrl: 'MobileBarNav.css',\n scoped: true,\n})\nexport class MobileBarNav {\n @Element() el!: HTMLElement;\n\n @Prop() activeDestination: MobileDestination = 'area';\n @Prop() currentArea: PanelNavItem = {\n id: 'tracking',\n icon: 'MapPage',\n label: 'Tracking',\n };\n @Prop() sheetNavExpanded: boolean = false;\n @Prop() menuLabel: string = 'Menu';\n @Prop() searchLabel: string = 'Search';\n @Prop() agentsLabel: string = 'Agents';\n @Prop() inboxLabel: string = 'Inbox';\n @Prop() helpLabel: string = 'Help & Support';\n @Prop() searchDot: boolean = false;\n @Prop() agentsDot: boolean = false;\n @Prop() inboxDot: boolean = false;\n\n @State() private pressedItemId: string | null = null;\n\n @Event() dsSheetNavToggle!: EventEmitter<boolean>;\n @Event() dsDestinationChange!: EventEmitter<MobileBarNavDestinationDetail>;\n\n private activePointerId: number | null = null;\n private pressedAt = 0;\n private pressClearTimer: ReturnType<typeof setTimeout> | null = null;\n\n disconnectedCallback() {\n this.clearPressedItem();\n }\n\n private clearPressTimer() {\n if (this.pressClearTimer === null) return;\n clearTimeout(this.pressClearTimer);\n this.pressClearTimer = null;\n }\n\n private clearPressedItem() {\n this.clearPressTimer();\n this.activePointerId = null;\n this.pressedItemId = null;\n }\n\n private beginDirectPress(itemId: string, event: PointerEvent) {\n if (!event.isPrimary || event.pointerType === 'mouse' || event.button !== 0) return;\n\n this.clearPressTimer();\n this.activePointerId = event.pointerId;\n this.pressedAt = performance.now();\n this.pressedItemId = itemId;\n\n const target = event.currentTarget as HTMLElement;\n try {\n target.setPointerCapture(event.pointerId);\n } catch {\n // Pointer capture can fail if Safari has already cancelled the stream.\n }\n }\n\n private finishDirectPress(event: PointerEvent) {\n if (event.pointerId !== this.activePointerId) return;\n\n this.activePointerId = null;\n const remaining = Math.max(\n 0,\n MINIMUM_DIRECT_PRESS_MS - (performance.now() - this.pressedAt)\n );\n\n this.clearPressTimer();\n this.pressClearTimer = setTimeout(() => {\n this.pressClearTimer = null;\n this.pressedItemId = null;\n }, remaining);\n }\n\n private cancelDirectPress(event: PointerEvent) {\n if (event.pointerId !== this.activePointerId) return;\n this.clearPressedItem();\n }\n\n private pressHandlers(itemId: string) {\n return {\n onPointerDown: (event: PointerEvent) => this.beginDirectPress(itemId, event),\n onPointerUp: (event: PointerEvent) => this.finishDirectPress(event),\n onPointerCancel: (event: PointerEvent) => this.cancelDirectPress(event),\n onLostPointerCapture: (event: PointerEvent) => this.finishDirectPress(event),\n };\n }\n\n private destinationConfig(): DestinationConfig[] {\n const currentArea =\n this.activeDestination === 'help'\n ? {\n id: 'help' as const,\n icon: 'CircleQuestion',\n label: this.helpLabel,\n dot: false,\n }\n : {\n id: 'area' as const,\n icon: this.currentArea.icon || 'MapPage',\n label: this.currentArea.label || 'Area',\n dot: false,\n };\n\n return [\n currentArea,\n { id: 'search', icon: 'MagnifyingGlass', label: this.searchLabel, dot: this.searchDot },\n { id: 'inbox', icon: 'Inbox', label: this.inboxLabel, dot: this.inboxDot },\n { id: 'agents', icon: 'AI', label: this.agentsLabel, dot: this.agentsDot },\n ];\n }\n\n private selectDestination(destination: MobileDestination) {\n if (\n !shouldEmitMobileDestinationChange(\n this.activeDestination,\n destination,\n this.sheetNavExpanded\n )\n ) {\n return;\n }\n this.dsDestinationChange.emit({ destination });\n // Owners may replace the visible mobile stage (and transiently drop focus\n // in WebKit) while handling the controlled destination change.\n requestAnimationFrame(() => {\n void this.focusDestination(destination);\n });\n }\n\n @Method()\n async focusDestination(destination: MobileDestination | 'sheet-nav') {\n const target = this.el.querySelector<HTMLElement>(\n `#${\n destination === 'sheet-nav'\n ? 'ds-mobile-sheet-nav-trigger'\n : `ds-mobile-bar-${destination}-trigger`\n }`\n );\n target?.focus({ preventScroll: true });\n }\n\n private renderDestination(item: DestinationConfig) {\n const selected = !this.sheetNavExpanded && item.id === this.activeDestination;\n return (\n <button\n id={`ds-mobile-bar-${item.id}-trigger`}\n type=\"button\"\n class={{\n 'mobile-bar-nav__item': true,\n 'mobile-bar-nav__item--selected': selected,\n 'mobile-bar-nav__item--pressed': this.pressedItemId === item.id,\n 'ds-focus-ring-inset': true,\n 'ds-interaction-fill': true,\n }}\n aria-label={item.label}\n aria-current={selected ? 'page' : undefined}\n onClick={() => this.selectDestination(item.id)}\n {...this.pressHandlers(item.id)}\n >\n <span class=\"mobile-bar-nav__icon ds-interaction-fill__content\">\n <ds-icon name={item.icon} size=\"lg\" color=\"inherit\" />\n {item.dot && (\n <ds-badge class=\"mobile-bar-nav__dot\" variant=\"dot\" label=\"\" aria-hidden=\"true\" />\n )}\n </span>\n </button>\n );\n }\n\n render() {\n const [currentArea, ...tools] = this.destinationConfig();\n\n return (\n <Host>\n <nav class=\"mobile-bar-nav ds-chrome-row ds-chrome-space--md\" aria-label=\"Primary\">\n <div class=\"mobile-bar-nav__group mobile-bar-nav__group--context\">\n <button\n id=\"ds-mobile-sheet-nav-trigger\"\n type=\"button\"\n class={{\n 'mobile-bar-nav__item': true,\n 'mobile-bar-nav__item--selected': this.sheetNavExpanded,\n 'mobile-bar-nav__item--pressed':\n this.pressedItemId === 'sheet-nav',\n 'ds-focus-ring-inset': true,\n 'ds-interaction-fill': true,\n }}\n aria-label={this.menuLabel}\n aria-expanded={String(this.sheetNavExpanded)}\n aria-controls=\"ds-mobile-sheet-nav\"\n onClick={() => this.dsSheetNavToggle.emit(!this.sheetNavExpanded)}\n {...this.pressHandlers('sheet-nav')}\n >\n <span class=\"mobile-bar-nav__icon ds-interaction-fill__content\">\n <ds-icon\n name={this.sheetNavExpanded ? 'Cross' : 'Hamburger'}\n size=\"lg\"\n color=\"inherit\"\n />\n </span>\n </button>\n <span class=\"mobile-bar-nav__divider\" aria-hidden=\"true\" />\n {this.renderDestination(currentArea)}\n </div>\n <div class=\"mobile-bar-nav__group mobile-bar-nav__group--tools\">\n {tools.map(item => this.renderDestination(item))}\n </div>\n </nav>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|