@ds-mo/ui 13.1.0 → 13.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/README.md +6 -0
  2. package/dist/.package-ready.json +1 -1
  3. package/dist/agent-patterns.json +1 -1
  4. package/dist/agent.json +1 -1
  5. package/dist/components/ds-agent-activity.js +1 -1
  6. package/dist/components/ds-agent-response.js +1 -1
  7. package/dist/components/ds-agent-source-list.js +1 -1
  8. package/dist/components/ds-agent-tool-call.js +1 -1
  9. package/dist/components/ds-attachment-list.js +1 -1
  10. package/dist/components/ds-badge.js +1 -1
  11. package/dist/components/ds-bar-nav.js +1 -1
  12. package/dist/components/ds-bar-title.js +1 -1
  13. package/dist/components/ds-bar-workflow.js +1 -1
  14. package/dist/components/ds-breadcrumb.js +1 -1
  15. package/dist/components/ds-button-filled.js +1 -1
  16. package/dist/components/ds-button-unfilled.js +1 -1
  17. package/dist/components/ds-card-data-viz.js +1 -1
  18. package/dist/components/ds-card-data-viz.js.map +1 -1
  19. package/dist/components/ds-card-overview.js +1 -1
  20. package/dist/components/ds-card-overview.js.map +1 -1
  21. package/dist/components/ds-card-setting.js +1 -1
  22. package/dist/components/ds-chart-bar.js +1 -1
  23. package/dist/components/ds-chart-bar.js.map +1 -1
  24. package/dist/components/ds-chart-donut.js +1 -1
  25. package/dist/components/ds-chart-donut.js.map +1 -1
  26. package/dist/components/ds-chart-legend.js +1 -1
  27. package/dist/components/ds-chart-legend.js.map +1 -1
  28. package/dist/components/ds-chart-line.js +1 -1
  29. package/dist/components/ds-chart-line.js.map +1 -1
  30. package/dist/components/ds-checkbox.js +1 -1
  31. package/dist/components/ds-chip.js +1 -1
  32. package/dist/components/ds-chip.js.map +1 -1
  33. package/dist/components/ds-code-block.js +1 -1
  34. package/dist/components/ds-conversation-list-item.js +1 -1
  35. package/dist/components/ds-conversation-list-item.js.map +1 -1
  36. package/dist/components/ds-conversation-list-section.js +1 -1
  37. package/dist/components/ds-divider.js +1 -1
  38. package/dist/components/ds-empty-state.js +1 -1
  39. package/dist/components/ds-field.js +1 -1
  40. package/dist/components/ds-input.js +1 -1
  41. package/dist/components/ds-input.js.map +1 -1
  42. package/dist/components/ds-markdown.js +1 -1
  43. package/dist/components/ds-menu.js +1 -1
  44. package/dist/components/ds-message-composer.js +1 -1
  45. package/dist/components/ds-message-scroller.js +1 -1
  46. package/dist/components/ds-message.js +1 -1
  47. package/dist/components/ds-mobile-bar-nav.js +1 -1
  48. package/dist/components/ds-mobile-header.js +1 -1
  49. package/dist/components/ds-mobile-section-switcher.js +1 -1
  50. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  51. package/dist/components/ds-modal.js +1 -1
  52. package/dist/components/ds-modal.js.map +1 -1
  53. package/dist/components/ds-panel-nav.js +1 -1
  54. package/dist/components/ds-panel-sub-nav.js +1 -1
  55. package/dist/components/ds-panel-sub-nav.js.map +1 -1
  56. package/dist/components/ds-panel-tool-header.js +1 -1
  57. package/dist/components/ds-panel-tool-search.js +1 -1
  58. package/dist/components/ds-panel-tools.js +1 -1
  59. package/dist/components/ds-radio.js +1 -1
  60. package/dist/components/ds-radio.js.map +1 -1
  61. package/dist/components/ds-select.js +1 -1
  62. package/dist/components/ds-select.js.map +1 -1
  63. package/dist/components/ds-shell-app.js +1 -1
  64. package/dist/components/ds-shell-tools.js +1 -1
  65. package/dist/components/ds-skeleton.js +1 -1
  66. package/dist/components/ds-slider.js +1 -1
  67. package/dist/components/ds-slider.js.map +1 -1
  68. package/dist/components/ds-swatch-picker.js +1 -1
  69. package/dist/components/ds-switch.js +1 -1
  70. package/dist/components/ds-tab-group.js +1 -1
  71. package/dist/components/ds-tag.js +1 -1
  72. package/dist/components/ds-tag.js.map +1 -1
  73. package/dist/components/ds-text.js +1 -1
  74. package/dist/components/ds-toast.js +1 -1
  75. package/dist/components/ds-toast.js.map +1 -1
  76. package/dist/components/ds-tooltip-data-viz.js +1 -1
  77. package/dist/components/ds-tooltip.js +1 -1
  78. package/dist/components/ds-typing-indicator.js +1 -1
  79. package/dist/components/{p-B-qDb_Zo.js → p-B5snQKiP.js} +2 -2
  80. package/dist/components/p-BApNi_xA.js +2 -0
  81. package/dist/components/p-BApNi_xA.js.map +1 -0
  82. package/dist/components/{p-CHuh71-U.js → p-BSocHH2X.js} +2 -2
  83. package/dist/components/{p-6qXDqCj_.js → p-B_A4g4Xe.js} +2 -2
  84. package/dist/components/p-Beejrd-R.js +2 -0
  85. package/dist/components/{p-BBFEhNzM.js.map → p-Beejrd-R.js.map} +1 -1
  86. package/dist/components/p-BgASe-BH.js +2 -0
  87. package/dist/components/p-BgASe-BH.js.map +1 -0
  88. package/dist/components/p-Bgh0uG51.js +2 -0
  89. package/dist/components/{p-eAfNzlMa.js.map → p-Bgh0uG51.js.map} +1 -1
  90. package/dist/components/{p-CJDTh9Tg.js → p-Bi-21Kvd.js} +2 -2
  91. package/dist/components/{p-Df17mJqI.js → p-BvvoC1lV.js} +2 -2
  92. package/dist/components/{p-C-kzknkR.js → p-CAAWaTYD.js} +2 -2
  93. package/dist/components/p-CBiAsFAZ.js +2 -0
  94. package/dist/components/{p-DbQr7Kwr.js.map → p-CBiAsFAZ.js.map} +1 -1
  95. package/dist/components/p-CGwVooB6.js +2 -0
  96. package/dist/components/p-CGwVooB6.js.map +1 -0
  97. package/dist/components/p-CUWFHTM6.js +2 -0
  98. package/dist/components/{p-CH9yArA1.js.map → p-CUWFHTM6.js.map} +1 -1
  99. package/dist/components/p-C_3mZMFK.js +2 -0
  100. package/dist/components/{p-CHpNyAo1.js.map → p-C_3mZMFK.js.map} +1 -1
  101. package/dist/components/p-CmMfRM1s.js +2 -0
  102. package/dist/components/{p-BGUK8-Qm.js.map → p-CmMfRM1s.js.map} +1 -1
  103. package/dist/components/p-CyjC57Dk.js +2 -0
  104. package/dist/components/{p-C-aCzwhA.js.map → p-CyjC57Dk.js.map} +1 -1
  105. package/dist/components/{p-DhEdICfD.js → p-DAbOfJgz.js} +2 -2
  106. package/dist/components/p-DHAuidt1.js +2 -0
  107. package/dist/components/{p-BUZXuod2.js.map → p-DHAuidt1.js.map} +1 -1
  108. package/dist/components/p-DKaXlmoQ.js +2 -0
  109. package/dist/components/{p-CJbLY1tu.js.map → p-DKaXlmoQ.js.map} +1 -1
  110. package/dist/components/{p-CBazaRlE.js → p-DV-tK5TR.js} +2 -2
  111. package/dist/components/p-DoNdiEly.js +2 -0
  112. package/dist/components/p-DoNdiEly.js.map +1 -0
  113. package/dist/components/p-E7Ds1fQa.js +2 -0
  114. package/dist/components/{p-gZni7A2L.js.map → p-E7Ds1fQa.js.map} +1 -1
  115. package/dist/components/{p-bxoryr-3.js → p-L-JEw-kX.js} +2 -2
  116. package/dist/components/p-POvz6PiQ.js +2 -0
  117. package/dist/components/p-POvz6PiQ.js.map +1 -0
  118. package/dist/components/p-UtfErnpX.js +2 -0
  119. package/dist/components/p-UtfErnpX.js.map +1 -0
  120. package/dist/components/{p-CreGah0j.js → p-awaBUdlz.js} +2 -2
  121. package/dist/components/{p-B1XW4VSn.js → p-dVlKpt8U.js} +2 -2
  122. package/dist/components/p-krhJI5_Y.js +2 -0
  123. package/dist/components/{p-Cvxm1OZB.js.map → p-krhJI5_Y.js.map} +1 -1
  124. package/dist/components/p-vY5ia2gz.js +2 -0
  125. package/dist/components/p-vY5ia2gz.js.map +1 -0
  126. package/dist/components/p-w2kKeG_h.js +2 -0
  127. package/dist/components/{p-Ay1AX7Ql.js.map → p-w2kKeG_h.js.map} +1 -1
  128. package/dist/components/{p-BnbbnuVC.js → p-xNfMEOpU.js} +2 -2
  129. package/dist/components/p-z6c6TMlA.js +2 -0
  130. package/dist/components/{p-BbMJTilO.js.map → p-z6c6TMlA.js.map} +1 -1
  131. package/dist/docs/components.json +1 -1
  132. package/dist/mcp/cli.js +15613 -17399
  133. package/dist/mcp-data/registry/badge.json +1 -1
  134. package/dist/mcp-data/registry/card-data-viz.json +1 -1
  135. package/dist/mcp-data/registry/card-overview.json +2 -2
  136. package/dist/mcp-data/registry/chart-bar.json +1 -1
  137. package/dist/mcp-data/registry/chart-donut.json +1 -1
  138. package/dist/mcp-data/registry/chart-legend.json +1 -1
  139. package/dist/mcp-data/registry/chart-line.json +1 -1
  140. package/dist/mcp-data/registry/checkbox.json +1 -1
  141. package/dist/mcp-data/registry/divider.json +1 -1
  142. package/dist/mcp-data/registry/input.json +1 -1
  143. package/dist/mcp-data/registry/modal.json +1 -1
  144. package/dist/mcp-data/registry/radio.json +1 -1
  145. package/dist/mcp-data/registry/skeleton.json +1 -1
  146. package/dist/mcp-data/registry/slider.json +1 -1
  147. package/dist/mcp-data/registry/swatch-picker.json +1 -1
  148. package/dist/mcp-data/registry/switch.json +1 -1
  149. package/dist/mcp-data/registry/toast.json +1 -1
  150. package/dist/mcp-data/registry/tooltip-data-viz.json +1 -1
  151. package/dist/mcp-data/registry/tooltip.json +2 -2
  152. package/dist/types/components/CardOverview/CardOverview.d.ts +2 -3
  153. package/package.json +3 -2
  154. package/dist/components/p-Ay1AX7Ql.js +0 -2
  155. package/dist/components/p-B9p6w-_T.js +0 -2
  156. package/dist/components/p-B9p6w-_T.js.map +0 -1
  157. package/dist/components/p-BBFEhNzM.js +0 -2
  158. package/dist/components/p-BGUK8-Qm.js +0 -2
  159. package/dist/components/p-BO4cj3iX.js +0 -2
  160. package/dist/components/p-BO4cj3iX.js.map +0 -1
  161. package/dist/components/p-BUZXuod2.js +0 -2
  162. package/dist/components/p-BYWkksDO.js +0 -2
  163. package/dist/components/p-BYWkksDO.js.map +0 -1
  164. package/dist/components/p-BbMJTilO.js +0 -2
  165. package/dist/components/p-BcTYhmku.js +0 -2
  166. package/dist/components/p-BcTYhmku.js.map +0 -1
  167. package/dist/components/p-BroVnDzE.js +0 -2
  168. package/dist/components/p-BroVnDzE.js.map +0 -1
  169. package/dist/components/p-BsoqsbBh.js +0 -2
  170. package/dist/components/p-BsoqsbBh.js.map +0 -1
  171. package/dist/components/p-C-aCzwhA.js +0 -2
  172. package/dist/components/p-CH9yArA1.js +0 -2
  173. package/dist/components/p-CHpNyAo1.js +0 -2
  174. package/dist/components/p-CJbLY1tu.js +0 -2
  175. package/dist/components/p-Cvxm1OZB.js +0 -2
  176. package/dist/components/p-DbQr7Kwr.js +0 -2
  177. package/dist/components/p-eAfNzlMa.js +0 -2
  178. package/dist/components/p-gZni7A2L.js +0 -2
  179. package/dist/components/p-ohsLFap_.js +0 -2
  180. package/dist/components/p-ohsLFap_.js.map +0 -1
  181. /package/dist/components/{p-B-qDb_Zo.js.map → p-B5snQKiP.js.map} +0 -0
  182. /package/dist/components/{p-CHuh71-U.js.map → p-BSocHH2X.js.map} +0 -0
  183. /package/dist/components/{p-6qXDqCj_.js.map → p-B_A4g4Xe.js.map} +0 -0
  184. /package/dist/components/{p-CJDTh9Tg.js.map → p-Bi-21Kvd.js.map} +0 -0
  185. /package/dist/components/{p-Df17mJqI.js.map → p-BvvoC1lV.js.map} +0 -0
  186. /package/dist/components/{p-C-kzknkR.js.map → p-CAAWaTYD.js.map} +0 -0
  187. /package/dist/components/{p-DhEdICfD.js.map → p-DAbOfJgz.js.map} +0 -0
  188. /package/dist/components/{p-CBazaRlE.js.map → p-DV-tK5TR.js.map} +0 -0
  189. /package/dist/components/{p-bxoryr-3.js.map → p-L-JEw-kX.js.map} +0 -0
  190. /package/dist/components/{p-CreGah0j.js.map → p-awaBUdlz.js.map} +0 -0
  191. /package/dist/components/{p-B1XW4VSn.js.map → p-dVlKpt8U.js.map} +0 -0
  192. /package/dist/components/{p-BnbbnuVC.js.map → p-xNfMEOpU.js.map} +0 -0
@@ -1 +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-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":[]}
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":[]}
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2026-07-31T00:00:25",
2
+ "timestamp": "2026-07-31T03:23:14",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.43.5",