@ds-mo/ui 15.5.0 → 15.6.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 (256) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +1 -1
  3. package/dist/agent.json +48 -23
  4. package/dist/angular/ds-data-preferences.d.ts +1 -1
  5. package/dist/angular/ds-data-preferences.js +3 -3
  6. package/dist/angular/ds-menu.d.ts +7 -1
  7. package/dist/angular/ds-menu.js +5 -2
  8. package/dist/angular/ds-table.d.ts +1 -1
  9. package/dist/angular/ds-table.js +3 -3
  10. package/dist/components/THIRD-PARTY-NOTICES +1 -1
  11. package/dist/components/bundled-dependencies.json +1 -1
  12. package/dist/components/ds-agent-questionnaire.js +1 -1
  13. package/dist/components/ds-agent-response.js +1 -1
  14. package/dist/components/ds-banner.js +1 -1
  15. package/dist/components/ds-bar-nav.js +1 -1
  16. package/dist/components/ds-bar-page-title.js +1 -1
  17. package/dist/components/ds-bar-title.js +1 -1
  18. package/dist/components/ds-bar-workflow.js +1 -1
  19. package/dist/components/ds-button-filled.js +1 -1
  20. package/dist/components/ds-button-unfilled.js +1 -1
  21. package/dist/components/ds-calendar.js +1 -1
  22. package/dist/components/ds-card-chart.js +1 -1
  23. package/dist/components/ds-card-overview.js +1 -1
  24. package/dist/components/ds-card-setting.js +1 -1
  25. package/dist/components/ds-code-block.js +1 -1
  26. package/dist/components/ds-data-customize.js +1 -1
  27. package/dist/components/ds-data-filter.js +1 -1
  28. package/dist/components/ds-data-group.js +1 -1
  29. package/dist/components/ds-data-preferences.js +1 -1
  30. package/dist/components/ds-data-preferences.js.map +1 -1
  31. package/dist/components/ds-data-saved-views.js +1 -1
  32. package/dist/components/ds-data-search.js +1 -1
  33. package/dist/components/ds-data-search.js.map +1 -1
  34. package/dist/components/ds-data-sort.js +1 -1
  35. package/dist/components/ds-filter-menu.js +1 -1
  36. package/dist/components/ds-input-date.js +1 -1
  37. package/dist/components/ds-input-time.js +1 -1
  38. package/dist/components/ds-input.js +1 -1
  39. package/dist/components/ds-map-entity-marker.js +1 -1
  40. package/dist/components/ds-map-entity-marker.js.map +1 -1
  41. package/dist/components/ds-markdown.js +1 -1
  42. package/dist/components/ds-menu.js +1 -1
  43. package/dist/components/ds-message-actions.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-mobile-header.js +1 -1
  47. package/dist/components/ds-mobile-section-switcher.js +1 -1
  48. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  49. package/dist/components/ds-modal.js +1 -1
  50. package/dist/components/ds-pagination.js +1 -1
  51. package/dist/components/ds-panel-nav.js +1 -1
  52. package/dist/components/ds-panel-tool-header.js +1 -1
  53. package/dist/components/ds-panel-tool-search.js +1 -1
  54. package/dist/components/ds-panel-tools.js +1 -1
  55. package/dist/components/ds-select.js +1 -1
  56. package/dist/components/ds-shell-app.js +1 -1
  57. package/dist/components/ds-shell-tools.js +1 -1
  58. package/dist/components/ds-table.js +1 -1
  59. package/dist/components/ds-table.js.map +1 -1
  60. package/dist/components/ds-toast.js +1 -1
  61. package/dist/components/ds-toast.js.map +1 -1
  62. package/dist/components/ds-tooltip.js +1 -1
  63. package/dist/components/{p-BO5URdZF.js → p-B-pkoIX9.js} +2 -2
  64. package/dist/components/{p--STJbKuN.js → p-B3o9zn3Y.js} +2 -2
  65. package/dist/components/p-BR9Pjp15.js +2 -0
  66. package/dist/components/{p-Bq_ypMSy.js.map → p-BR9Pjp15.js.map} +1 -1
  67. package/dist/components/{p-rmPIcWED.js → p-BZY40-pE.js} +2 -2
  68. package/dist/components/{p-D-J7GgjY.js → p-BqipGGua.js} +2 -2
  69. package/dist/components/{p-D-J7GgjY.js.map → p-BqipGGua.js.map} +1 -1
  70. package/dist/components/{p-PtxCwf5S.js → p-C6kUn-vb.js} +2 -2
  71. package/dist/components/p-CElsKlxj.js +2 -0
  72. package/dist/components/{p-C1oczmAc.js.map → p-CElsKlxj.js.map} +1 -1
  73. package/dist/components/p-CIMyD_6H.js +2 -0
  74. package/dist/components/{p-C5BBIDVm.js.map → p-CIMyD_6H.js.map} +1 -1
  75. package/dist/components/{p-BcpIK9S6.js → p-CSxwWcwW.js} +2 -2
  76. package/dist/components/p-CUYLGe5d.js +2 -0
  77. package/dist/components/{p-D9_iDlkT.js.map → p-CUYLGe5d.js.map} +1 -1
  78. package/dist/components/{p-wRhYxngW.js → p-CaFXrn_8.js} +2 -2
  79. package/dist/components/{p-BYeG0b5N.js → p-DObhRLBa.js} +2 -2
  80. package/dist/components/{p-C_9VGgPf.js → p-DP07JCed.js} +2 -2
  81. package/dist/components/{p-Dg6hnCc2.js → p-DVsGfz7J.js} +2 -2
  82. package/dist/components/{p-Dg6hnCc2.js.map → p-DVsGfz7J.js.map} +1 -1
  83. package/dist/components/p-DYGllrVT.js +2 -0
  84. package/dist/components/{p-DEYCF-oJ.js.map → p-DYGllrVT.js.map} +1 -1
  85. package/dist/components/{p-BGSG6xIS.js → p-DYtVsnDS.js} +2 -2
  86. package/dist/components/p-DbW8S5qe.js +2 -0
  87. package/dist/components/p-DbW8S5qe.js.map +1 -0
  88. package/dist/components/p-DcxY_pdJ.js +2 -0
  89. package/dist/components/{p-CA3iQ1ME.js.map → p-DcxY_pdJ.js.map} +1 -1
  90. package/dist/components/{p-B6TX55c5.js → p-DdFeWC-e.js} +2 -2
  91. package/dist/components/p-DlCLfwP4.js +2 -0
  92. package/dist/components/p-DuCfCvPs.js +2 -0
  93. package/dist/components/p-DuCfCvPs.js.map +1 -0
  94. package/dist/components/{p-BYrBU_U9.js → p-HMDczkQf.js} +2 -2
  95. package/dist/components/p-HfZ1gI2q.js +2 -0
  96. package/dist/components/{p-jp7hwRtC.js.map → p-HfZ1gI2q.js.map} +1 -1
  97. package/dist/components/{p-DR_8IPn9.js → p-KA8srEed.js} +2 -2
  98. package/dist/components/{p-CXGjCWSh.js → p-OJ5WeR05.js} +2 -2
  99. package/dist/components/p-Ouk6FCxc.js +2 -0
  100. package/dist/components/{p-PzYJqN8B.js.map → p-Ouk6FCxc.js.map} +1 -1
  101. package/dist/components/p-leZFu-cd.js +2 -0
  102. package/dist/components/{p-DPFg5d4_.js.map → p-leZFu-cd.js.map} +1 -1
  103. package/dist/components/{p-DjbT9kKm.js → p-wXKIVUTn.js} +2 -2
  104. package/dist/components/p-xMBaOeKa.js +2 -0
  105. package/dist/components/p-xMBaOeKa.js.map +1 -0
  106. package/dist/docs/components.json +208 -30
  107. package/dist/lint/index.js +1 -1
  108. package/dist/mcp-data/registry/agent-activity.json +1 -1
  109. package/dist/mcp-data/registry/agent-questionnaire.json +1 -1
  110. package/dist/mcp-data/registry/agent-response.json +1 -1
  111. package/dist/mcp-data/registry/agent-source-list.json +1 -1
  112. package/dist/mcp-data/registry/agent-tool-call.json +1 -1
  113. package/dist/mcp-data/registry/attachment-list.json +1 -1
  114. package/dist/mcp-data/registry/avatar.json +1 -1
  115. package/dist/mcp-data/registry/badge.json +1 -1
  116. package/dist/mcp-data/registry/banner.json +1 -1
  117. package/dist/mcp-data/registry/bar-action.json +1 -1
  118. package/dist/mcp-data/registry/bar-nav.json +1 -1
  119. package/dist/mcp-data/registry/bar-page-title.json +1 -1
  120. package/dist/mcp-data/registry/bar-title.json +1 -1
  121. package/dist/mcp-data/registry/bar-workflow.json +1 -1
  122. package/dist/mcp-data/registry/breadcrumb.json +1 -1
  123. package/dist/mcp-data/registry/button-filled.json +2 -2
  124. package/dist/mcp-data/registry/button-inverted.json +1 -1
  125. package/dist/mcp-data/registry/button-unfilled.json +1 -1
  126. package/dist/mcp-data/registry/calendar.json +1 -1
  127. package/dist/mcp-data/registry/card-action-center.json +1 -1
  128. package/dist/mcp-data/registry/card-chart.json +1 -1
  129. package/dist/mcp-data/registry/card-navigation.json +1 -1
  130. package/dist/mcp-data/registry/card-overview.json +1 -1
  131. package/dist/mcp-data/registry/card-setting.json +1 -1
  132. package/dist/mcp-data/registry/card-settings-scope.json +1 -1
  133. package/dist/mcp-data/registry/chart-legend.json +1 -1
  134. package/dist/mcp-data/registry/chart.json +1 -1
  135. package/dist/mcp-data/registry/checkbox-group.json +1 -1
  136. package/dist/mcp-data/registry/checkbox.json +1 -1
  137. package/dist/mcp-data/registry/chip.json +1 -1
  138. package/dist/mcp-data/registry/code-block.json +1 -1
  139. package/dist/mcp-data/registry/conversation-list-item.json +1 -1
  140. package/dist/mcp-data/registry/conversation-list-section.json +1 -1
  141. package/dist/mcp-data/registry/conversation-list.json +1 -1
  142. package/dist/mcp-data/registry/data-customize.json +1 -1
  143. package/dist/mcp-data/registry/data-filter.json +1 -1
  144. package/dist/mcp-data/registry/data-group.json +1 -1
  145. package/dist/mcp-data/registry/data-preferences.json +22 -6
  146. package/dist/mcp-data/registry/data-saved-views.json +1 -1
  147. package/dist/mcp-data/registry/data-search.json +1 -1
  148. package/dist/mcp-data/registry/data-sort.json +1 -1
  149. package/dist/mcp-data/registry/data-toolbar.json +1 -1
  150. package/dist/mcp-data/registry/divider.json +1 -1
  151. package/dist/mcp-data/registry/empty-state.json +1 -1
  152. package/dist/mcp-data/registry/field.json +1 -1
  153. package/dist/mcp-data/registry/filter-menu.json +1 -1
  154. package/dist/mcp-data/registry/icon.json +1 -1
  155. package/dist/mcp-data/registry/inline-banner-settings.json +1 -1
  156. package/dist/mcp-data/registry/input-date.json +1 -1
  157. package/dist/mcp-data/registry/input-time.json +1 -1
  158. package/dist/mcp-data/registry/input.json +1 -1
  159. package/dist/mcp-data/registry/loader.json +1 -1
  160. package/dist/mcp-data/registry/map-cluster-marker.json +1 -1
  161. package/dist/mcp-data/registry/map-entity-marker.json +6 -6
  162. package/dist/mcp-data/registry/markdown.json +1 -1
  163. package/dist/mcp-data/registry/menu.json +31 -12
  164. package/dist/mcp-data/registry/message-actions.json +1 -1
  165. package/dist/mcp-data/registry/message-bubble.json +1 -1
  166. package/dist/mcp-data/registry/message-composer.json +1 -1
  167. package/dist/mcp-data/registry/message-scroller.json +1 -1
  168. package/dist/mcp-data/registry/message.json +1 -1
  169. package/dist/mcp-data/registry/mobile-bar-nav.json +1 -1
  170. package/dist/mcp-data/registry/mobile-header.json +1 -1
  171. package/dist/mcp-data/registry/mobile-section-switcher.json +1 -1
  172. package/dist/mcp-data/registry/mobile-sheet-nav.json +1 -1
  173. package/dist/mcp-data/registry/modal.json +1 -1
  174. package/dist/mcp-data/registry/pagination.json +1 -1
  175. package/dist/mcp-data/registry/panel-nav.json +1 -1
  176. package/dist/mcp-data/registry/panel-sub-nav.json +1 -1
  177. package/dist/mcp-data/registry/panel-tool-header.json +1 -1
  178. package/dist/mcp-data/registry/panel-tool-search.json +1 -1
  179. package/dist/mcp-data/registry/panel-tools.json +1 -1
  180. package/dist/mcp-data/registry/paper-texture.json +1 -1
  181. package/dist/mcp-data/registry/radio-tile.json +1 -1
  182. package/dist/mcp-data/registry/radio.json +1 -1
  183. package/dist/mcp-data/registry/registry.json +48 -23
  184. package/dist/mcp-data/registry/score.json +1 -1
  185. package/dist/mcp-data/registry/scroll-overlay.json +1 -1
  186. package/dist/mcp-data/registry/select.json +1 -1
  187. package/dist/mcp-data/registry/setting-row-checkbox.json +1 -1
  188. package/dist/mcp-data/registry/setting-row-radio.json +1 -1
  189. package/dist/mcp-data/registry/setting-row-toggle.json +1 -1
  190. package/dist/mcp-data/registry/shell-app.json +1 -1
  191. package/dist/mcp-data/registry/shell-page.json +1 -1
  192. package/dist/mcp-data/registry/shell-tools.json +1 -1
  193. package/dist/mcp-data/registry/skeleton.json +1 -1
  194. package/dist/mcp-data/registry/slider.json +1 -1
  195. package/dist/mcp-data/registry/swatch-picker.json +1 -1
  196. package/dist/mcp-data/registry/switch.json +1 -1
  197. package/dist/mcp-data/registry/tab-group.json +1 -1
  198. package/dist/mcp-data/registry/table.json +59 -19
  199. package/dist/mcp-data/registry/tag.json +1 -1
  200. package/dist/mcp-data/registry/text.json +1 -1
  201. package/dist/mcp-data/registry/textarea.json +1 -1
  202. package/dist/mcp-data/registry/time-picker.json +1 -1
  203. package/dist/mcp-data/registry/toast.json +1 -1
  204. package/dist/mcp-data/registry/tooltip-chart.json +1 -1
  205. package/dist/mcp-data/registry/tooltip.json +1 -1
  206. package/dist/mcp-data/registry/typing-indicator.json +1 -1
  207. package/dist/react/ds-menu.d.ts +2 -1
  208. package/dist/react/ds-menu.js +1 -0
  209. package/dist/styles/table.css +41 -0
  210. package/dist/types/components/DataPreferences/DataPreferences.d.ts +3 -0
  211. package/dist/types/components/MapEntityMarker/MapEntityMarker.d.ts +1 -1
  212. package/dist/types/components/Menu/Menu.d.ts +5 -1
  213. package/dist/types/components/Menu/menu-types.d.ts +36 -0
  214. package/dist/types/components/Table/Table.d.ts +11 -2
  215. package/dist/types/components/Table/index.d.ts +1 -1
  216. package/dist/types/components/Table/table-column-customizer.d.ts +23 -4
  217. package/dist/types/components/Table/table-layout-controller.d.ts +2 -1
  218. package/dist/types/components/Table/table-types.d.ts +3 -1
  219. package/dist/types/components.d.ts +44 -8
  220. package/dist/vue/ds-data-preferences.js +1 -0
  221. package/dist/vue/ds-menu.js +2 -0
  222. package/dist/vue/ds-table.js +2 -0
  223. package/package.json +3 -3
  224. package/dist/components/p-Bq_ypMSy.js +0 -2
  225. package/dist/components/p-C1oczmAc.js +0 -2
  226. package/dist/components/p-C5BBIDVm.js +0 -2
  227. package/dist/components/p-CA3iQ1ME.js +0 -2
  228. package/dist/components/p-CE6MaXBg.js +0 -2
  229. package/dist/components/p-CE6MaXBg.js.map +0 -1
  230. package/dist/components/p-D9_iDlkT.js +0 -2
  231. package/dist/components/p-DEYCF-oJ.js +0 -2
  232. package/dist/components/p-DPFg5d4_.js +0 -2
  233. package/dist/components/p-DvGrsLgt.js +0 -2
  234. package/dist/components/p-DvGrsLgt.js.map +0 -1
  235. package/dist/components/p-PzYJqN8B.js +0 -2
  236. package/dist/components/p-aD5cw_m2.js +0 -2
  237. package/dist/components/p-aD5cw_m2.js.map +0 -1
  238. package/dist/components/p-jp7hwRtC.js +0 -2
  239. package/dist/components/p-kDZ0sEII.js +0 -2
  240. package/dist/components/p-t2Ebn8si.js +0 -2
  241. package/dist/components/p-t2Ebn8si.js.map +0 -1
  242. /package/dist/components/{p-BO5URdZF.js.map → p-B-pkoIX9.js.map} +0 -0
  243. /package/dist/components/{p--STJbKuN.js.map → p-B3o9zn3Y.js.map} +0 -0
  244. /package/dist/components/{p-rmPIcWED.js.map → p-BZY40-pE.js.map} +0 -0
  245. /package/dist/components/{p-PtxCwf5S.js.map → p-C6kUn-vb.js.map} +0 -0
  246. /package/dist/components/{p-BcpIK9S6.js.map → p-CSxwWcwW.js.map} +0 -0
  247. /package/dist/components/{p-wRhYxngW.js.map → p-CaFXrn_8.js.map} +0 -0
  248. /package/dist/components/{p-BYeG0b5N.js.map → p-DObhRLBa.js.map} +0 -0
  249. /package/dist/components/{p-C_9VGgPf.js.map → p-DP07JCed.js.map} +0 -0
  250. /package/dist/components/{p-BGSG6xIS.js.map → p-DYtVsnDS.js.map} +0 -0
  251. /package/dist/components/{p-B6TX55c5.js.map → p-DdFeWC-e.js.map} +0 -0
  252. /package/dist/components/{p-kDZ0sEII.js.map → p-DlCLfwP4.js.map} +0 -0
  253. /package/dist/components/{p-BYrBU_U9.js.map → p-HMDczkQf.js.map} +0 -0
  254. /package/dist/components/{p-DR_8IPn9.js.map → p-KA8srEed.js.map} +0 -0
  255. /package/dist/components/{p-CXGjCWSh.js.map → p-OJ5WeR05.js.map} +0 -0
  256. /package/dist/components/{p-DjbT9kKm.js.map → p-wXKIVUTn.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["tableSearchFields","columns","resolved","seen","Set","column","isTableActionColumn","searchable","segments","length","segment","id","sortKey","trim","label","dataLabel","has","add","push","accessibleLabel","selectedTableSearchFields","fields","selectedFieldIds","byId","Map","map","field","selected","fieldId","get","availableTableSearchFields","filter","filterTableSearchFields","query","normalizedQuery","toLocaleLowerCase","includes","nextTableSearchActiveIndex","currentIndex","optionCount","direction","safeIndex","dataSearchCss","tableSearchSequence","DataSearch","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","hasBorder","value","placeholder","ariaLabel","clearLabel","fieldMenuLabel","isInactive","menuOpen","menuQuery","activeIndex","focusRingVisible","position","x","y","positionReady","availableHeight","announcement","componentId","inputId","listboxId","descriptionId","inputEl","controlEl","popupEl","positionController","AnchoredPositionController","getAnchor","getPopup","getOwnerDocument","el","ownerDocument","measure","anchor","popup","isConnected","inset","resolveCssLengthPx","TOKEN_DEFAULTS","space050","style","minWidth","menuWidthXs","choicePopupMinWidth","offsetWidth","anchorRect","getBoundingClientRect","popupWidth","popupHeight","offsetHeight","side","align","sideOffsetPx","alignOffsetPx","resolveChoicePopupAlignOffset","sectionInsetPx","viewportPadPx","viewportWidth","window","innerWidth","viewportHeight","innerHeight","collisionRect","resolveAnchoredOverlayBoundaryRect","apply","onReady","topLayer","liveUpdate","observeResize","observeAnchorMotion","interactionController","AnchoredOverlayInteractionController","onOutsideActivation","closeMenu","disconnectedCallback","syncAvailableFields","count","availableFields","syncInactive","setFocus","focus","selectedFields","searchFields","visibleFields","activeOptionId","undefined","openMenu","fromKeyboard","requestAnimationFrame","connect","observe","schedule","matches","hidePopover","unobserve","disconnect","handleInput","event","nextValue","target","dsChange","emit","selectField","dsFieldsChange","preventScroll","removeLastField","removed","removeField","clearSearch","dsClear","handleKeyDown","key","altKey","ctrlKey","metaKey","preventDefault","querySelector","CSS","escape","scrollIntoView","block","render","visible","inputValue","hasValue","description","join","popupStyle","left","top","transform","Math","round","zIndex","visibility","floor","h","Host","class","ref","element","name","size","color","state","isInset","insetDepth","onDsRemove","type","role","disabled","String","autoComplete","autoCapitalize","autoCorrect","spellcheck","onInput","onKeyDown","variant","icon","rounded","onDsClick","popover","index","active","onMouseDown","onMouseMove","onClick","as","body"],"sources":["src/wc/components/DataSearch/data-search-model.ts","src/wc/components/DataSearch/DataSearch.css?tag=ds-data-search&encapsulation=scoped","src/wc/components/DataSearch/DataSearch.tsx"],"sourcesContent":["import { isTableActionColumn } from '../Table/table-column-customizer';\nimport type { TableColumn } from '../Table/table-types';\nimport type { DataSearchField } from './data-search-types';\n\n/** Searchable data points from the table catalog, including compound header segments. */\nexport function tableSearchFields(columns: readonly TableColumn[]): DataSearchField[] {\n const resolved: DataSearchField[] = [];\n const seen = new Set<string>();\n\n for (const column of columns) {\n if (isTableActionColumn(column) || column.searchable === false) continue;\n const segments = column.segments ?? [];\n if (segments.length > 0) {\n for (const segment of segments) {\n const id = segment.sortKey.trim();\n const label = segment.dataLabel?.trim() || segment.label.trim() || id;\n if (!id || !label || segment.searchable === false || seen.has(id)) continue;\n seen.add(id);\n resolved.push({ id, label });\n }\n continue;\n }\n\n const id = column.id.trim();\n const label =\n column.dataLabel?.trim() || column.label.trim() || column.accessibleLabel?.trim() || id;\n if (!id || !label || seen.has(id)) continue;\n seen.add(id);\n resolved.push({ id, label });\n }\n\n return resolved;\n}\n\nexport function selectedTableSearchFields(\n fields: readonly DataSearchField[],\n selectedFieldIds: string[]\n): DataSearchField[] {\n const byId = new Map(fields.map(field => [field.id, field]));\n const selected: DataSearchField[] = [];\n const seen = new Set<string>();\n\n for (const fieldId of selectedFieldIds) {\n if (seen.has(fieldId)) continue;\n const field = byId.get(fieldId);\n if (!field) continue;\n seen.add(fieldId);\n selected.push(field);\n }\n\n return selected;\n}\n\nexport function availableTableSearchFields(\n fields: readonly DataSearchField[],\n selectedFieldIds: string[]\n): DataSearchField[] {\n const selected = new Set(selectedFieldIds);\n return fields.filter(field => !selected.has(field.id));\n}\n\n/** Matches the field-picker query against the complete visible label and canonical identity. */\nexport function filterTableSearchFields(\n fields: readonly DataSearchField[],\n query: string\n): DataSearchField[] {\n const normalizedQuery = query.trim().toLocaleLowerCase();\n if (!normalizedQuery) return [...fields];\n\n return fields.filter(field =>\n `${field.label} ${field.id}`.toLocaleLowerCase().includes(normalizedQuery)\n );\n}\n\nexport function nextTableSearchActiveIndex(\n currentIndex: number,\n optionCount: number,\n direction: 1 | -1\n): number {\n if (optionCount <= 0) return -1;\n const safeIndex = currentIndex >= 0 && currentIndex < optionCount ? currentIndex : 0;\n return (safeIndex + direction + optionCount) % optionCount;\n}\n","@import '../../utils/radius.css';\n@import '../../utils/choice-list.css';\n@import '../../utils/control-density-inset.css';\n@import '../../utils/typography.css';\n@import '../../utils/visually-hidden.css';\n\n:host(.data-search-host) {\n display: inline-flex;\n box-sizing: border-box;\n inline-size: 100%;\n min-inline-size: 0;\n --ds-data-search-foreground: var(--color-foreground-primary);\n --ds-data-search-adornment: var(--color-foreground-secondary);\n --ds-data-search-placeholder: var(--color-foreground-secondary);\n --ds-data-search-placeholder-active: var(--color-foreground-quaternary);\n --ds-data-search-border: var(--color-border-secondary);\n}\n\n.data-search__control {\n inline-size: 100%;\n min-inline-size: 0;\n padding-inline-end: var(--dimension-space-050);\n overflow: hidden;\n border: 0;\n background: transparent;\n color: var(--ds-data-search-foreground);\n --ds-interaction-border-width: var(--dimension-stroke-width-012);\n --ds-interaction-border-color: var(--ds-data-search-border);\n}\n\n.data-search__control:focus-within {\n --ds-interaction-border-width: var(--dimension-stroke-width-018);\n --ds-interaction-border-color: var(--color-border-bold-brand);\n}\n\n:host(.ds-control-inactive) .data-search__control::after {\n background: transparent;\n}\n\n.data-search__icon,\n.data-search__clear {\n position: relative;\n z-index: 2;\n flex: none;\n}\n\n.data-search__icon {\n color: var(--ds-data-search-adornment);\n}\n\n.data-search__editor {\n position: relative;\n z-index: 2;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n min-inline-size: 0;\n block-size: 100%;\n gap: var(--dimension-space-050);\n overflow-x: auto;\n overflow-y: hidden;\n scrollbar-width: none;\n}\n\n.data-search__editor::-webkit-scrollbar {\n display: none;\n}\n\n.data-search__chip {\n flex: none;\n max-inline-size: var(--dimension-panel-width-2xs);\n}\n\n.data-search__input {\n appearance: none;\n box-sizing: border-box;\n flex: 1 0 var(--dimension-size-600);\n min-inline-size: var(--dimension-size-600);\n block-size: 100%;\n margin: 0;\n padding: 0;\n border: 0;\n outline: 0;\n background: transparent;\n color: var(--ds-data-search-foreground);\n text-overflow: ellipsis;\n}\n\n.data-search__input::-webkit-search-cancel-button,\n.data-search__input::-webkit-search-decoration {\n display: none;\n}\n\n.data-search__input::placeholder {\n color: var(--ds-data-search-placeholder);\n}\n\n.data-search__input:focus::placeholder {\n color: var(--ds-data-search-placeholder-active);\n}\n\n.data-search__popup {\n --ds-choice-popup-min-inline-size: var(--dimension-menu-width-xs);\n}\n\n.data-search__list {\n padding: var(--dimension-space-050);\n}\n\n.data-search__option {\n flex: none;\n inline-size: 100%;\n}\n\n@media (forced-colors: active) {\n .data-search__control:focus-within::after {\n outline-color: var(--ds-forced-color-selected);\n }\n}\n\n:host(.data-search-host--borderless) .data-search__control:not(:focus-within) {\n --ds-interaction-border-width: 0px;\n}\n","import type { DataField } from '../../utils/data-field';\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport {\n choicePopupMinWidth,\n resolveChoicePopupAlignOffset,\n resolveCssLengthPx,\n TOKEN_DEFAULTS,\n} from '../../utils';\nimport { AnchoredPositionController } from '../../utils/anchored-position-controller';\nimport { AnchoredOverlayInteractionController } from '../../utils/anchored-overlay-interaction-controller';\nimport { resolveAnchoredOverlayBoundaryRect } from '../../utils/anchored-overlay-boundary';\nimport {\n availableTableSearchFields,\n filterTableSearchFields,\n nextTableSearchActiveIndex,\n selectedTableSearchFields,\n tableSearchFields,\n} from './data-search-model';\nimport type { DataSearchField, DataSearchFieldsChangeDetail } from './data-search-types';\n\nlet tableSearchSequence = 0;\n\n@Component({\n tag: 'ds-data-search',\n styleUrl: 'DataSearch.css',\n scoped: true,\n})\nexport class DataSearch {\n @Element() private el!: HTMLElement;\n\n /** Show the resting field border; keyboard focus remains visible. */\n @Prop({ reflect: true }) hasBorder: boolean = true;\n\n /** Controlled free-text query. */\n @Prop() value: string = '';\n /** Table column catalog used to derive searchable data points and their complete labels. */\n @Prop() fields: DataField[] = [];\n /** Controlled ordered field scopes rendered as Tags. */\n @Prop() selectedFieldIds: string[] = [];\n @Prop() placeholder: string = 'Search';\n @Prop({ attribute: 'aria-label' }) ariaLabel: string = 'Search table';\n @Prop() clearLabel: string = 'Clear search';\n @Prop() fieldMenuLabel: string = 'Choose search fields';\n @Prop() isInactive: boolean = false;\n\n @Event({ bubbles: false }) dsChange!: EventEmitter<string>;\n @Event({ bubbles: false }) dsFieldsChange!: EventEmitter<DataSearchFieldsChangeDetail>;\n @Event({ bubbles: false }) dsClear!: EventEmitter<void>;\n\n @State() private menuOpen = false;\n @State() private menuQuery = '';\n @State() private activeIndex = 0;\n @State() private focusRingVisible = false;\n @State() private position = { x: 0, y: 0 };\n @State() private positionReady = false;\n @State() private availableHeight: number | null = null;\n @State() private announcement = '';\n\n private readonly componentId = `ds-data-search-${++tableSearchSequence}`;\n private readonly inputId = `${this.componentId}-input`;\n private readonly listboxId = `${this.componentId}-listbox`;\n private readonly descriptionId = `${this.componentId}-description`;\n private inputEl: HTMLInputElement | null = null;\n private controlEl: HTMLElement | null = null;\n private popupEl: HTMLElement | null = null;\n\n private readonly positionController = new AnchoredPositionController({\n getAnchor: () => this.controlEl,\n getPopup: () => this.popupEl,\n getOwnerDocument: () => this.el.ownerDocument,\n measure: (anchor, popup) => {\n if (!this.menuOpen || !popup.isConnected) return null;\n const inset = resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050);\n popup.style.minWidth = `max(var(--ds-choice-popup-min-inline-size, ${TOKEN_DEFAULTS.menuWidthXs}), ${choicePopupMinWidth(anchor.offsetWidth, inset)}px)`;\n const anchorRect = anchor.getBoundingClientRect();\n return {\n anchorRect,\n popupWidth: popup.offsetWidth,\n popupHeight: popup.offsetHeight,\n side: 'bottom',\n align: 'start',\n sideOffsetPx: inset,\n alignOffsetPx: resolveChoicePopupAlignOffset({\n align: 'start',\n alignOffsetPx: 0,\n sectionInsetPx: inset,\n }),\n viewportPadPx: inset,\n viewportWidth: window.innerWidth,\n viewportHeight: window.innerHeight,\n collisionRect: resolveAnchoredOverlayBoundaryRect(anchor),\n };\n },\n apply: ({ x, y, availableHeight }) => {\n this.position = { x, y };\n this.availableHeight = availableHeight;\n },\n onReady: () => {\n this.positionReady = true;\n },\n topLayer: true,\n liveUpdate: 'frame',\n observeResize: true,\n observeAnchorMotion: true,\n });\n\n private readonly interactionController = new AnchoredOverlayInteractionController({\n getAnchor: () => this.controlEl,\n getPopup: () => this.popupEl,\n getOwnerDocument: () => this.el.ownerDocument,\n onOutsideActivation: () => this.closeMenu(),\n });\n\n disconnectedCallback(): void {\n this.closeMenu();\n }\n\n @Watch('columns')\n @Watch('selectedFieldIds')\n syncAvailableFields(): void {\n const count = this.availableFields.length;\n if (count === 0) {\n this.closeMenu();\n return;\n }\n if (this.activeIndex >= count) this.activeIndex = count - 1;\n }\n\n @Watch('isInactive')\n syncInactive(isInactive: boolean): void {\n if (isInactive) this.closeMenu();\n }\n\n @Method()\n async setFocus(): Promise<void> {\n this.inputEl?.focus();\n }\n\n private get selectedFields(): DataSearchField[] {\n return selectedTableSearchFields(this.searchFields, this.selectedFieldIds);\n }\n\n private get availableFields(): DataSearchField[] {\n return availableTableSearchFields(this.searchFields, this.selectedFieldIds);\n }\n\n private get visibleFields(): DataSearchField[] {\n return filterTableSearchFields(this.availableFields, this.menuQuery);\n }\n\n private get searchFields(): DataSearchField[] {\n return tableSearchFields(this.fields);\n }\n\n private get activeOptionId(): string | undefined {\n return this.menuOpen && this.activeIndex >= 0\n ? `${this.componentId}-option-${this.activeIndex}`\n : undefined;\n }\n\n private openMenu(fromKeyboard: boolean): void {\n if (this.isInactive || this.menuOpen || this.availableFields.length === 0) return;\n this.menuQuery = '';\n // The native value can be ahead of the controlled prop when slash follows input\n // in the same frame, so clear it before the queued render can skip an equal value.\n if (this.inputEl) this.inputEl.value = '';\n this.activeIndex = 0;\n this.focusRingVisible = fromKeyboard;\n this.positionReady = false;\n this.menuOpen = true;\n requestAnimationFrame(() => {\n if (!this.menuOpen) return;\n this.interactionController.connect();\n this.positionController.observe();\n this.positionController.schedule();\n });\n }\n\n private closeMenu(): void {\n if (!this.menuOpen && !this.popupEl) return;\n if (this.popupEl?.matches(':popover-open')) this.popupEl.hidePopover();\n this.positionController.unobserve();\n this.interactionController.disconnect();\n this.popupEl = null;\n this.positionReady = false;\n this.availableHeight = null;\n this.menuOpen = false;\n this.menuQuery = '';\n }\n\n private handleInput(event: Event): void {\n const nextValue = (event.target as HTMLInputElement).value;\n if (this.menuOpen) {\n this.menuQuery = nextValue;\n this.activeIndex = filterTableSearchFields(this.availableFields, nextValue).length ? 0 : -1;\n this.focusRingVisible = false;\n this.positionController.schedule();\n return;\n }\n\n this.dsChange.emit(nextValue);\n }\n\n private selectField(field: DataSearchField): void {\n this.dsFieldsChange.emit({ selectedFieldIds: [...this.selectedFieldIds, field.id] });\n this.announcement = `${field.label} search field added.`;\n this.closeMenu();\n requestAnimationFrame(() => this.inputEl?.focus({ preventScroll: true }));\n }\n\n private removeLastField(): void {\n const selected = this.selectedFields;\n const removed = selected[selected.length - 1];\n if (!removed) return;\n this.dsFieldsChange.emit({\n selectedFieldIds: this.selectedFieldIds.filter(fieldId => fieldId !== removed.id),\n });\n this.announcement = `${removed.label} search field removed.`;\n }\n\n private removeField(field: DataSearchField): void {\n this.dsFieldsChange.emit({\n selectedFieldIds: this.selectedFieldIds.filter(fieldId => fieldId !== field.id),\n });\n this.announcement = `${field.label} search field removed.`;\n requestAnimationFrame(() => this.inputEl?.focus({ preventScroll: true }));\n }\n\n private clearSearch(): void {\n if (this.value) this.dsChange.emit('');\n if (this.selectedFieldIds.length) this.dsFieldsChange.emit({ selectedFieldIds: [] });\n this.dsClear.emit();\n this.announcement = 'Search cleared.';\n this.closeMenu();\n requestAnimationFrame(() => this.inputEl?.focus({ preventScroll: true }));\n }\n\n private handleKeyDown(event: KeyboardEvent): void {\n if (event.key === '/' && !this.menuOpen && !event.altKey && !event.ctrlKey && !event.metaKey) {\n event.preventDefault();\n this.openMenu(true);\n return;\n }\n\n if (event.key === 'Backspace' && this.menuOpen && this.menuQuery.length === 0) {\n event.preventDefault();\n this.closeMenu();\n return;\n }\n\n if (event.key === 'Backspace' && this.value.length === 0) {\n if (this.selectedFields.length) {\n event.preventDefault();\n this.removeLastField();\n }\n return;\n }\n\n if (!this.menuOpen) return;\n\n if (event.key === 'Escape') {\n event.preventDefault();\n this.closeMenu();\n return;\n }\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n this.focusRingVisible = true;\n this.activeIndex = nextTableSearchActiveIndex(\n this.activeIndex,\n this.visibleFields.length,\n event.key === 'ArrowDown' ? 1 : -1\n );\n this.el\n .querySelector<HTMLElement>(`#${CSS.escape(this.activeOptionId ?? '')}`)\n ?.scrollIntoView({ block: 'nearest' });\n return;\n }\n\n if (event.key === 'Enter') {\n const field = this.visibleFields[this.activeIndex];\n if (!field) return;\n event.preventDefault();\n this.selectField(field);\n return;\n }\n\n if (event.key === 'Tab') this.closeMenu();\n }\n\n render() {\n const selected = this.selectedFields;\n const visible = this.visibleFields;\n const inputValue = this.menuOpen ? this.menuQuery : this.value;\n const hasValue = this.value.length > 0 || selected.length > 0;\n const description = selected.length\n ? `Search limited to ${selected.map(field => field.label).join(' or ')}.`\n : 'Search includes every available table field. Type slash to choose fields.';\n const popupStyle: Record<string, string> = {\n position: 'fixed',\n left: '0',\n top: '0',\n transform: `translate(${Math.round(this.position.x)}px, ${Math.round(this.position.y)}px)`,\n zIndex: 'var(--dimension-z-index-floating)',\n visibility: this.positionReady ? 'visible' : 'hidden',\n };\n if (this.availableHeight !== null) {\n popupStyle['max-height'] = `${Math.floor(this.availableHeight)}px`;\n }\n\n return (\n <Host\n class={{\n 'data-search-host': true,\n 'data-search-host--borderless': !this.hasBorder,\n 'ds-control--md': true,\n 'ds-control-inactive': this.isInactive,\n }}\n data-filled={hasValue ? '' : undefined}\n data-expanded={this.menuOpen ? '' : undefined}\n >\n <div\n ref={element => {\n this.controlEl = element ?? null;\n }}\n class=\"data-search__control ds-control-frame ds-control--md ds-interaction-fill\"\n >\n <span\n class=\"data-search__icon ds-control-icon-box ds-interaction-fill__content\"\n aria-hidden=\"true\"\n >\n <ds-icon name=\"MagnifyingGlass\" size=\"md\" color=\"inherit\" />\n </span>\n <div class=\"data-search__editor ds-interaction-fill__content\">\n {selected.map(field => (\n <ds-chip\n class=\"data-search__chip\"\n key={field.id}\n label={field.label}\n size=\"md\"\n state=\"default\"\n isInset\n insetDepth=\"double\"\n isInactive={this.isInactive}\n onDsRemove={() => this.removeField(field)}\n />\n ))}\n <input\n ref={element => {\n this.inputEl = element ?? null;\n }}\n id={this.inputId}\n class=\"data-search__input ds-text--body-medium ds-text--regular\"\n type=\"search\"\n role=\"combobox\"\n value={inputValue}\n placeholder={this.placeholder}\n disabled={this.isInactive}\n aria-label={this.ariaLabel}\n aria-describedby={this.descriptionId}\n aria-haspopup=\"listbox\"\n aria-expanded={String(this.menuOpen)}\n aria-controls={this.menuOpen ? this.listboxId : undefined}\n aria-activedescendant={this.activeOptionId}\n aria-keyshortcuts=\"/\"\n autoComplete=\"off\"\n autoCapitalize=\"none\"\n autoCorrect=\"off\"\n spellcheck={false}\n onInput={event => this.handleInput(event)}\n onKeyDown={event => this.handleKeyDown(event)}\n />\n </div>\n {inputValue.length > 0 && !this.isInactive && (\n <ds-button-unfilled\n class=\"data-search__clear ds-interaction-fill__content\"\n variant=\"icon\"\n size=\"sm\"\n icon=\"CrossCircle\"\n hasBorder={false}\n rounded\n ariaLabel={this.clearLabel}\n onDsClick={() => this.clearSearch()}\n />\n )}\n </div>\n <span id={this.descriptionId} class=\"ds-visually-hidden\">\n {description}\n </span>\n <span class=\"ds-visually-hidden\" aria-live=\"polite\">\n {this.announcement}\n </span>\n {this.menuOpen && (\n <div\n popover=\"manual\"\n ref={element => {\n this.popupEl = element ?? null;\n }}\n class=\"data-search__popup ds-choice-popup\"\n style={popupStyle}\n >\n <div\n id={this.listboxId}\n class=\"data-search__list ds-choice-list\"\n role=\"listbox\"\n aria-label={this.fieldMenuLabel}\n >\n {visible.map((field, index) => {\n const active = index === this.activeIndex;\n return (\n /* eslint-disable-next-line compomo/prefer-direct-ds-text -- The option owns listbox semantics and pointer interaction while ds-text remains its typography child. */\n <div\n id={`${this.componentId}-option-${index}`}\n key={field.id}\n class={{\n 'data-search__option': true,\n 'ds-choice-item': true,\n 'ds-control-frame': true,\n 'ds-control--md': true,\n 'ds-focus-ring-inset': true,\n 'ds-focus-ring--visible': active && this.focusRingVisible,\n 'ds-interaction-fill': true,\n 'ds-interaction-fill--selected': active,\n }}\n role=\"option\"\n aria-selected={String(active)}\n onMouseDown={event => event.preventDefault()}\n onMouseMove={() => {\n this.focusRingVisible = false;\n this.activeIndex = index;\n }}\n onClick={() => this.selectField(field)}\n >\n <ds-text\n class=\"ds-choice-item__label ds-control-label-box ds-interaction-fill__content\"\n as=\"span\"\n variant=\"text-body-medium\"\n color={active ? 'primary' : 'secondary'}\n >\n {field.label}\n </ds-text>\n </div>\n );\n })}\n {visible.length === 0 && (\n <div class=\"data-search__empty ds-choice-empty ds-empty-region\">\n <ds-empty-state body=\"No matching data points\" />\n </div>\n )}\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["tableSearchFields","columns","resolved","seen","Set","column","isTableActionColumn","searchable","segments","length","segment","id","sortKey","trim","label","dataLabel","has","add","push","accessibleLabel","selectedTableSearchFields","fields","selectedFieldIds","byId","Map","map","field","selected","fieldId","get","availableTableSearchFields","filter","filterTableSearchFields","query","normalizedQuery","toLocaleLowerCase","includes","nextTableSearchActiveIndex","currentIndex","optionCount","direction","safeIndex","dataSearchCss","tableSearchSequence","DataSearch","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","hasBorder","value","placeholder","ariaLabel","clearLabel","fieldMenuLabel","isInactive","menuOpen","menuQuery","activeIndex","focusRingVisible","position","x","y","positionReady","availableHeight","announcement","componentId","inputId","listboxId","descriptionId","inputEl","controlEl","popupEl","positionController","AnchoredPositionController","getAnchor","getPopup","getOwnerDocument","el","ownerDocument","measure","anchor","popup","isConnected","inset","resolveCssLengthPx","TOKEN_DEFAULTS","space050","style","minWidth","menuWidthXs","choicePopupMinWidth","offsetWidth","anchorRect","getBoundingClientRect","popupWidth","popupHeight","offsetHeight","side","align","sideOffsetPx","alignOffsetPx","resolveChoicePopupAlignOffset","sectionInsetPx","viewportPadPx","viewportWidth","window","innerWidth","viewportHeight","innerHeight","collisionRect","resolveAnchoredOverlayBoundaryRect","apply","onReady","topLayer","liveUpdate","observeResize","observeAnchorMotion","interactionController","AnchoredOverlayInteractionController","onOutsideActivation","closeMenu","disconnectedCallback","syncAvailableFields","count","availableFields","syncInactive","setFocus","focus","selectedFields","searchFields","visibleFields","activeOptionId","undefined","openMenu","fromKeyboard","requestAnimationFrame","connect","observe","schedule","matches","hidePopover","unobserve","disconnect","handleInput","event","nextValue","target","dsChange","emit","selectField","dsFieldsChange","preventScroll","removeLastField","removed","removeField","clearSearch","dsClear","handleKeyDown","key","altKey","ctrlKey","metaKey","preventDefault","querySelector","CSS","escape","scrollIntoView","block","render","visible","inputValue","hasValue","description","join","popupStyle","left","top","transform","Math","round","zIndex","visibility","floor","h","Host","class","ref","element","name","size","color","state","isInset","insetDepth","onDsRemove","type","role","disabled","String","autoComplete","autoCapitalize","autoCorrect","spellcheck","onInput","onKeyDown","variant","icon","rounded","onDsClick","popover","index","active","onMouseDown","onMouseMove","onClick","as","body"],"sources":["src/wc/components/DataSearch/data-search-model.ts","src/wc/components/DataSearch/DataSearch.css?tag=ds-data-search&encapsulation=scoped","src/wc/components/DataSearch/DataSearch.tsx"],"sourcesContent":["import { isTableActionColumn } from '../Table/table-column-customizer';\nimport type { TableColumn } from '../Table/table-types';\nimport type { DataSearchField } from './data-search-types';\n\n/** Searchable data points from the table catalog, including compound header segments. */\nexport function tableSearchFields(columns: readonly TableColumn[]): DataSearchField[] {\n const resolved: DataSearchField[] = [];\n const seen = new Set<string>();\n\n for (const column of columns) {\n if (isTableActionColumn(column) || column.searchable === false) continue;\n const segments = column.segments ?? [];\n if (segments.length > 0) {\n for (const segment of segments) {\n const id = segment.sortKey.trim();\n const label = segment.dataLabel?.trim() || segment.label.trim() || id;\n if (!id || !label || segment.searchable === false || seen.has(id)) continue;\n seen.add(id);\n resolved.push({ id, label });\n }\n continue;\n }\n\n const id = column.id.trim();\n const label =\n column.dataLabel?.trim() || column.label.trim() || column.accessibleLabel?.trim() || id;\n if (!id || !label || seen.has(id)) continue;\n seen.add(id);\n resolved.push({ id, label });\n }\n\n return resolved;\n}\n\nexport function selectedTableSearchFields(\n fields: readonly DataSearchField[],\n selectedFieldIds: string[]\n): DataSearchField[] {\n const byId = new Map(fields.map(field => [field.id, field]));\n const selected: DataSearchField[] = [];\n const seen = new Set<string>();\n\n for (const fieldId of selectedFieldIds) {\n if (seen.has(fieldId)) continue;\n const field = byId.get(fieldId);\n if (!field) continue;\n seen.add(fieldId);\n selected.push(field);\n }\n\n return selected;\n}\n\nexport function availableTableSearchFields(\n fields: readonly DataSearchField[],\n selectedFieldIds: string[]\n): DataSearchField[] {\n const selected = new Set(selectedFieldIds);\n return fields.filter(field => !selected.has(field.id));\n}\n\n/** Matches the field-picker query against the complete visible label and canonical identity. */\nexport function filterTableSearchFields(\n fields: readonly DataSearchField[],\n query: string\n): DataSearchField[] {\n const normalizedQuery = query.trim().toLocaleLowerCase();\n if (!normalizedQuery) return [...fields];\n\n return fields.filter(field =>\n `${field.label} ${field.id}`.toLocaleLowerCase().includes(normalizedQuery)\n );\n}\n\nexport function nextTableSearchActiveIndex(\n currentIndex: number,\n optionCount: number,\n direction: 1 | -1\n): number {\n if (optionCount <= 0) return -1;\n const safeIndex = currentIndex >= 0 && currentIndex < optionCount ? currentIndex : 0;\n return (safeIndex + direction + optionCount) % optionCount;\n}\n","@import '../../utils/radius.css';\n@import '../../utils/choice-list.css';\n@import '../../utils/control-density-inset.css';\n@import '../../utils/typography.css';\n@import '../../utils/visually-hidden.css';\n\n:host(.data-search-host) {\n display: inline-flex;\n box-sizing: border-box;\n inline-size: 100%;\n min-inline-size: 0;\n --ds-data-search-foreground: var(--color-foreground-primary);\n --ds-data-search-adornment: var(--color-foreground-secondary);\n --ds-data-search-placeholder: var(--color-foreground-secondary);\n --ds-data-search-placeholder-active: var(--color-foreground-quaternary);\n --ds-data-search-border: var(--color-border-secondary);\n}\n\n.data-search__control {\n inline-size: 100%;\n min-inline-size: 0;\n padding-inline-end: var(--dimension-space-050);\n overflow: hidden;\n border: 0;\n background: transparent;\n color: var(--ds-data-search-foreground);\n --ds-interaction-border-width: var(--dimension-stroke-width-012);\n --ds-interaction-border-color: var(--ds-data-search-border);\n}\n\n.data-search__control:focus-within {\n --ds-interaction-border-width: var(--dimension-stroke-width-018);\n --ds-interaction-border-color: var(--color-border-bold-brand);\n}\n\n:host(.ds-control-inactive) .data-search__control::after {\n background: transparent;\n}\n\n.data-search__icon,\n.data-search__clear {\n position: relative;\n z-index: 2;\n flex: none;\n}\n\n.data-search__icon {\n color: var(--ds-data-search-adornment);\n}\n\n.data-search__editor {\n position: relative;\n z-index: 2;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n min-inline-size: 0;\n block-size: 100%;\n gap: var(--dimension-space-050);\n overflow-x: auto;\n overflow-y: hidden;\n scrollbar-width: none;\n}\n\n.data-search__editor::-webkit-scrollbar {\n display: none;\n}\n\n.data-search__chip {\n flex: none;\n max-inline-size: var(--dimension-panel-width-2xs);\n}\n\n.data-search__input {\n appearance: none;\n box-sizing: border-box;\n flex: 1 0 var(--dimension-size-600);\n min-inline-size: var(--dimension-size-600);\n block-size: 100%;\n margin: 0;\n padding: 0;\n border: 0;\n outline: 0;\n background: transparent;\n color: var(--ds-data-search-foreground);\n text-overflow: ellipsis;\n}\n\n.data-search__input::-webkit-search-cancel-button,\n.data-search__input::-webkit-search-decoration {\n display: none;\n}\n\n.data-search__input::placeholder {\n color: var(--ds-data-search-placeholder);\n}\n\n.data-search__input:focus::placeholder {\n color: var(--ds-data-search-placeholder-active);\n}\n\n.data-search__popup {\n --ds-choice-popup-min-inline-size: var(--dimension-menu-width-xs);\n}\n\n.data-search__list {\n padding: var(--dimension-space-050);\n}\n\n.data-search__option {\n flex: none;\n inline-size: 100%;\n}\n\n@media (forced-colors: active) {\n .data-search__control:focus-within::after {\n outline-color: var(--ds-forced-color-selected);\n }\n}\n\n:host(.data-search-host--borderless) .data-search__control:not(:focus-within) {\n --ds-interaction-border-width: 0px;\n}\n","import type { DataField } from '../../utils/data-field';\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport {\n choicePopupMinWidth,\n resolveChoicePopupAlignOffset,\n resolveCssLengthPx,\n TOKEN_DEFAULTS,\n} from '../../utils';\nimport { AnchoredPositionController } from '../../utils/anchored-position-controller';\nimport { AnchoredOverlayInteractionController } from '../../utils/anchored-overlay-interaction-controller';\nimport { resolveAnchoredOverlayBoundaryRect } from '../../utils/anchored-overlay-boundary';\nimport {\n availableTableSearchFields,\n filterTableSearchFields,\n nextTableSearchActiveIndex,\n selectedTableSearchFields,\n tableSearchFields,\n} from './data-search-model';\nimport type { DataSearchField, DataSearchFieldsChangeDetail } from './data-search-types';\n\nlet tableSearchSequence = 0;\n\n@Component({\n tag: 'ds-data-search',\n styleUrl: 'DataSearch.css',\n scoped: true,\n})\nexport class DataSearch {\n @Element() private el!: HTMLElement;\n\n /** Show the resting field border; keyboard focus remains visible. */\n @Prop({ reflect: true }) hasBorder: boolean = true;\n\n /** Controlled free-text query. */\n @Prop() value: string = '';\n /** Table column catalog used to derive searchable data points and their complete labels. */\n @Prop() fields: DataField[] = [];\n /** Controlled ordered field scopes rendered as Tags. */\n @Prop() selectedFieldIds: string[] = [];\n @Prop() placeholder: string = 'Search';\n @Prop({ attribute: 'aria-label' }) ariaLabel: string = 'Search table';\n @Prop() clearLabel: string = 'Clear search';\n @Prop() fieldMenuLabel: string = 'Choose search fields';\n @Prop() isInactive: boolean = false;\n\n @Event({ bubbles: false }) dsChange!: EventEmitter<string>;\n @Event({ bubbles: false }) dsFieldsChange!: EventEmitter<DataSearchFieldsChangeDetail>;\n @Event({ bubbles: false }) dsClear!: EventEmitter<void>;\n\n @State() private menuOpen = false;\n @State() private menuQuery = '';\n @State() private activeIndex = 0;\n @State() private focusRingVisible = false;\n @State() private position = { x: 0, y: 0 };\n @State() private positionReady = false;\n @State() private availableHeight: number | null = null;\n @State() private announcement = '';\n\n private readonly componentId = `ds-data-search-${++tableSearchSequence}`;\n private readonly inputId = `${this.componentId}-input`;\n private readonly listboxId = `${this.componentId}-listbox`;\n private readonly descriptionId = `${this.componentId}-description`;\n private inputEl: HTMLInputElement | null = null;\n private controlEl: HTMLElement | null = null;\n private popupEl: HTMLElement | null = null;\n\n private readonly positionController = new AnchoredPositionController({\n getAnchor: () => this.controlEl,\n getPopup: () => this.popupEl,\n getOwnerDocument: () => this.el.ownerDocument,\n measure: (anchor, popup) => {\n if (!this.menuOpen || !popup.isConnected) return null;\n const inset = resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050);\n popup.style.minWidth = `max(var(--ds-choice-popup-min-inline-size, ${TOKEN_DEFAULTS.menuWidthXs}), ${choicePopupMinWidth(anchor.offsetWidth, inset)}px)`;\n const anchorRect = anchor.getBoundingClientRect();\n return {\n anchorRect,\n popupWidth: popup.offsetWidth,\n popupHeight: popup.offsetHeight,\n side: 'bottom',\n align: 'start',\n sideOffsetPx: inset,\n alignOffsetPx: resolveChoicePopupAlignOffset({\n align: 'start',\n alignOffsetPx: 0,\n sectionInsetPx: inset,\n }),\n viewportPadPx: inset,\n viewportWidth: window.innerWidth,\n viewportHeight: window.innerHeight,\n collisionRect: resolveAnchoredOverlayBoundaryRect(anchor),\n };\n },\n apply: ({ x, y, availableHeight }) => {\n this.position = { x, y };\n this.availableHeight = availableHeight;\n },\n onReady: () => {\n this.positionReady = true;\n },\n topLayer: true,\n liveUpdate: 'frame',\n observeResize: true,\n observeAnchorMotion: true,\n });\n\n private readonly interactionController = new AnchoredOverlayInteractionController({\n getAnchor: () => this.controlEl,\n getPopup: () => this.popupEl,\n getOwnerDocument: () => this.el.ownerDocument,\n onOutsideActivation: () => this.closeMenu(),\n });\n\n disconnectedCallback(): void {\n this.closeMenu();\n }\n\n @Watch('columns')\n @Watch('selectedFieldIds')\n syncAvailableFields(): void {\n const count = this.availableFields.length;\n if (count === 0) {\n this.closeMenu();\n return;\n }\n if (this.activeIndex >= count) this.activeIndex = count - 1;\n }\n\n @Watch('isInactive')\n syncInactive(isInactive: boolean): void {\n if (isInactive) this.closeMenu();\n }\n\n @Method()\n async setFocus(): Promise<void> {\n this.inputEl?.focus();\n }\n\n private get selectedFields(): DataSearchField[] {\n return selectedTableSearchFields(this.searchFields, this.selectedFieldIds);\n }\n\n private get availableFields(): DataSearchField[] {\n return availableTableSearchFields(this.searchFields, this.selectedFieldIds);\n }\n\n private get visibleFields(): DataSearchField[] {\n return filterTableSearchFields(this.availableFields, this.menuQuery);\n }\n\n private get searchFields(): DataSearchField[] {\n return tableSearchFields(this.fields);\n }\n\n private get activeOptionId(): string | undefined {\n return this.menuOpen && this.activeIndex >= 0\n ? `${this.componentId}-option-${this.activeIndex}`\n : undefined;\n }\n\n private openMenu(fromKeyboard: boolean): void {\n if (this.isInactive || this.menuOpen || this.availableFields.length === 0) return;\n this.menuQuery = '';\n // The native value can be ahead of the controlled prop when slash follows input\n // in the same frame, so clear it before the queued render can skip an equal value.\n if (this.inputEl) this.inputEl.value = '';\n this.activeIndex = 0;\n this.focusRingVisible = fromKeyboard;\n this.positionReady = false;\n this.menuOpen = true;\n requestAnimationFrame(() => {\n if (!this.menuOpen) return;\n this.interactionController.connect();\n this.positionController.observe();\n this.positionController.schedule();\n });\n }\n\n private closeMenu(): void {\n if (!this.menuOpen && !this.popupEl) return;\n if (this.popupEl?.matches(':popover-open')) this.popupEl.hidePopover();\n this.positionController.unobserve();\n this.interactionController.disconnect();\n this.popupEl = null;\n this.positionReady = false;\n this.availableHeight = null;\n this.menuOpen = false;\n this.menuQuery = '';\n }\n\n private handleInput(event: Event): void {\n const nextValue = (event.target as HTMLInputElement).value;\n if (this.menuOpen) {\n this.menuQuery = nextValue;\n this.activeIndex = filterTableSearchFields(this.availableFields, nextValue).length ? 0 : -1;\n this.focusRingVisible = false;\n this.positionController.schedule();\n return;\n }\n\n this.dsChange.emit(nextValue);\n }\n\n private selectField(field: DataSearchField): void {\n this.dsFieldsChange.emit({ selectedFieldIds: [...this.selectedFieldIds, field.id] });\n this.announcement = `${field.label} search field added.`;\n this.closeMenu();\n requestAnimationFrame(() => this.inputEl?.focus({ preventScroll: true }));\n }\n\n private removeLastField(): void {\n const selected = this.selectedFields;\n const removed = selected[selected.length - 1];\n if (!removed) return;\n this.dsFieldsChange.emit({\n selectedFieldIds: this.selectedFieldIds.filter(fieldId => fieldId !== removed.id),\n });\n this.announcement = `${removed.label} search field removed.`;\n }\n\n private removeField(field: DataSearchField): void {\n this.dsFieldsChange.emit({\n selectedFieldIds: this.selectedFieldIds.filter(fieldId => fieldId !== field.id),\n });\n this.announcement = `${field.label} search field removed.`;\n requestAnimationFrame(() => this.inputEl?.focus({ preventScroll: true }));\n }\n\n private clearSearch(): void {\n if (this.value) this.dsChange.emit('');\n if (this.selectedFieldIds.length) this.dsFieldsChange.emit({ selectedFieldIds: [] });\n this.dsClear.emit();\n this.announcement = 'Search cleared.';\n this.closeMenu();\n requestAnimationFrame(() => this.inputEl?.focus({ preventScroll: true }));\n }\n\n private handleKeyDown(event: KeyboardEvent): void {\n if (event.key === '/' && !this.menuOpen && !event.altKey && !event.ctrlKey && !event.metaKey) {\n event.preventDefault();\n this.openMenu(true);\n return;\n }\n\n if (event.key === 'Backspace' && this.menuOpen && this.menuQuery.length === 0) {\n event.preventDefault();\n this.closeMenu();\n return;\n }\n\n if (event.key === 'Backspace' && this.value.length === 0) {\n if (this.selectedFields.length) {\n event.preventDefault();\n this.removeLastField();\n }\n return;\n }\n\n if (!this.menuOpen) return;\n\n if (event.key === 'Escape') {\n event.preventDefault();\n this.closeMenu();\n return;\n }\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n this.focusRingVisible = true;\n this.activeIndex = nextTableSearchActiveIndex(\n this.activeIndex,\n this.visibleFields.length,\n event.key === 'ArrowDown' ? 1 : -1\n );\n this.el\n .querySelector<HTMLElement>(`#${CSS.escape(this.activeOptionId ?? '')}`)\n ?.scrollIntoView({ block: 'nearest' });\n return;\n }\n\n if (event.key === 'Enter') {\n const field = this.visibleFields[this.activeIndex];\n if (!field) return;\n event.preventDefault();\n this.selectField(field);\n return;\n }\n\n if (event.key === 'Tab') this.closeMenu();\n }\n\n render() {\n const selected = this.selectedFields;\n const visible = this.visibleFields;\n const inputValue = this.menuOpen ? this.menuQuery : this.value;\n const hasValue = this.value.length > 0 || selected.length > 0;\n const description = selected.length\n ? `Search limited to ${selected.map(field => field.label).join(' or ')}.`\n : 'Search includes every available table field. Type slash to choose fields.';\n const popupStyle: Record<string, string> = {\n position: 'fixed',\n left: '0',\n top: '0',\n transform: `translate(${Math.round(this.position.x)}px, ${Math.round(this.position.y)}px)`,\n zIndex: 'var(--dimension-z-index-floating)',\n visibility: this.positionReady ? 'visible' : 'hidden',\n };\n if (this.availableHeight !== null) {\n popupStyle['max-height'] = `${Math.floor(this.availableHeight)}px`;\n }\n\n return (\n <Host\n class={{\n 'data-search-host': true,\n 'data-search-host--borderless': !this.hasBorder,\n 'ds-control--md': true,\n 'ds-control-inactive': this.isInactive,\n }}\n data-filled={hasValue ? '' : undefined}\n data-expanded={this.menuOpen ? '' : undefined}\n >\n <div\n ref={element => {\n this.controlEl = element ?? null;\n }}\n class=\"data-search__control ds-control-frame ds-control--md ds-interaction-fill\"\n >\n <span\n class=\"data-search__icon ds-control-icon-box ds-interaction-fill__content\"\n aria-hidden=\"true\"\n >\n <ds-icon name=\"MagnifyingGlass\" size=\"md\" color=\"inherit\" />\n </span>\n <div class=\"data-search__editor ds-interaction-fill__content\">\n {selected.map(field => (\n <ds-chip\n class=\"data-search__chip\"\n key={field.id}\n label={field.label}\n size=\"md\"\n state=\"default\"\n isInset\n insetDepth=\"double\"\n isInactive={this.isInactive}\n onDsRemove={() => this.removeField(field)}\n />\n ))}\n <input\n ref={element => {\n this.inputEl = element ?? null;\n }}\n id={this.inputId}\n class=\"data-search__input ds-text--body-medium ds-text--regular\"\n type=\"search\"\n role=\"combobox\"\n value={inputValue}\n placeholder={this.placeholder}\n disabled={this.isInactive}\n aria-label={this.ariaLabel}\n aria-describedby={this.descriptionId}\n aria-haspopup=\"listbox\"\n aria-expanded={String(this.menuOpen)}\n aria-controls={this.menuOpen ? this.listboxId : undefined}\n aria-activedescendant={this.activeOptionId}\n aria-keyshortcuts=\"/\"\n autoComplete=\"off\"\n autoCapitalize=\"none\"\n autoCorrect=\"off\"\n spellcheck={false}\n onInput={event => this.handleInput(event)}\n onKeyDown={event => this.handleKeyDown(event)}\n />\n </div>\n {inputValue.length > 0 && !this.isInactive && (\n <ds-button-unfilled\n class=\"data-search__clear ds-interaction-fill__content\"\n variant=\"icon\"\n size=\"sm\"\n icon=\"CrossCircle\"\n hasBorder={false}\n rounded\n ariaLabel={this.clearLabel}\n onDsClick={() => this.clearSearch()}\n />\n )}\n </div>\n <span id={this.descriptionId} class=\"ds-visually-hidden\">\n {description}\n </span>\n <span class=\"ds-visually-hidden\" aria-live=\"polite\">\n {this.announcement}\n </span>\n {this.menuOpen && (\n <div\n popover=\"manual\"\n ref={element => {\n this.popupEl = element ?? null;\n }}\n class=\"data-search__popup ds-choice-popup\"\n style={popupStyle}\n >\n <div\n id={this.listboxId}\n class=\"data-search__list ds-choice-list\"\n role=\"listbox\"\n aria-label={this.fieldMenuLabel}\n >\n {visible.map((field, index) => {\n const active = index === this.activeIndex;\n return (\n /* eslint-disable-next-line compomo/prefer-direct-ds-text -- The option owns listbox semantics and pointer interaction while ds-text remains its typography child. */\n <div\n id={`${this.componentId}-option-${index}`}\n key={field.id}\n class={{\n 'data-search__option': true,\n 'ds-choice-item': true,\n 'ds-control-frame': true,\n 'ds-control--md': true,\n 'ds-focus-ring-inset': true,\n 'ds-focus-ring--visible': active && this.focusRingVisible,\n 'ds-interaction-fill': true,\n 'ds-interaction-fill--selected': active,\n }}\n role=\"option\"\n aria-selected={String(active)}\n onMouseDown={event => event.preventDefault()}\n onMouseMove={() => {\n this.focusRingVisible = false;\n this.activeIndex = index;\n }}\n onClick={() => this.selectField(field)}\n >\n <ds-text\n class=\"ds-choice-item__label ds-control-label-box ds-interaction-fill__content\"\n as=\"span\"\n variant=\"text-body-medium\"\n color={active ? 'primary' : 'secondary'}\n >\n {field.label}\n </ds-text>\n </div>\n );\n })}\n {visible.length === 0 && (\n <div class=\"data-search__empty ds-choice-empty ds-empty-region\">\n <ds-empty-state body=\"No matching data points\" />\n </div>\n )}\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{p as s,H as t,c as e,h as i,a,t as o}from"./index.js";import{a as n,d as r,n as d,b as l}from"./p-kDZ0sEII.js";import{d as c}from"./p-CwdRaJER.js";import{d as h}from"./p-D-J7GgjY.js";import{d as m}from"./p-pPtjNRqC.js";import{d as u}from"./p-0XTyQNRG.js";import{d as f}from"./p-t2Ebn8si.js";import{d as p}from"./p-B9y6azEw.js";import{d as b}from"./p-Bf-BphXP.js";import{d as E}from"./p-d76Ry5nh.js";import{d as k}from"./p-D8OWhnID.js";import{d as g}from"./p-DvGrsLgt.js";const j=()=>`.sc-ds-data-sort-h{display:inline-flex;min-inline-size:0;max-inline-size:var(--dimension-menu-width-xs)}[hidden].sc-ds-data-sort-h{display:none}`;let w=0;const x=s(class s extends t{constructor(s){super();if(s!==false){this.__registerHost()}this.dsSortChange=e(this,"dsSortChange",3);this.hasBorder=true;this.fields=[];this.sort=null;this.ariaLabel=null;this.menuOpen=false;this.menuSurfaceOpen=false;this.initialFocusVisible=false;this.componentId=`ds-data-sort-${++w}`;this.triggerId=`${this.componentId}-trigger`;this.menuId=`${this.componentId}-menu`}async setFocus(){const s=this.el.querySelector(`#${CSS.escape(this.triggerId)}`);await(s?.setFocus?.())}render(){const s=n(this.fields);const t=this.ariaLabel?.trim()||"Sort table";return i(a,{key:"c62d304deeb5f5f927bc0d9459072079113d34dd",hidden:s.length===0?true:undefined},s.length===0?null:i("ds-button-unfilled",{hasBorder:this.hasBorder,id:this.triggerId,variant:"icon-label",size:"md",icon:"ArrowsVertical",label:"Sort",labelEmphasis:false,pressScale:false,"aria-label":t,haspopup:"menu",collapseLabel:true,expanded:this.menuOpen,surfaceOpen:this.menuSurfaceOpen,controls:this.menuId,onDsClick:s=>{this.toggle(s.detail.detail===0)}}),s.length===0?null:i("ds-menu",{id:this.menuId,open:this.menuOpen,anchorId:this.triggerId,align:"start",side:"bottom",menuLabel:t,selectionMode:"none",initialFocusVisible:this.initialFocusVisible,sections:r(this.fields,this.sort),onDsClose:()=>this.close(),onDsAfterClose:()=>{if(!this.menuOpen)this.menuSurfaceOpen=false},onDsSelect:s=>this.handleSelect(s.detail)}))}toggle(s=false){if(this.menuOpen)this.close();else this.open(s)}open(s=false){if(this.menuOpen)return;this.initialFocusVisible=s;this.menuOpen=true;this.menuSurfaceOpen=true}close(){this.menuOpen=false}handleSelect(s){const t=d(this.fields,this.sort,s);if(l(this.sort,t))return;this.dsSortChange.emit({sort:t})}get el(){return this}static get style(){return j()}},[2,"ds-data-sort",{hasBorder:[4,"has-border"],fields:[16],sort:[16],ariaLabel:[1,"aria-label"],menuOpen:[32],menuSurfaceOpen:[32],initialFocusVisible:[32],setFocus:[64]}]);function y(){if(typeof customElements==="undefined"){return}const s=["ds-data-sort","ds-badge","ds-button-unfilled","ds-icon","ds-loader","ds-menu","ds-swatch-picker","ds-switch","ds-tag","ds-text","ds-tooltip"];s.forEach((s=>{switch(s){case"ds-data-sort":if(!customElements.get(o(s))){customElements.define(o(s),x)}break;case"ds-badge":if(!customElements.get(o(s))){c()}break;case"ds-button-unfilled":if(!customElements.get(o(s))){h()}break;case"ds-icon":if(!customElements.get(o(s))){m()}break;case"ds-loader":if(!customElements.get(o(s))){u()}break;case"ds-menu":if(!customElements.get(o(s))){f()}break;case"ds-swatch-picker":if(!customElements.get(o(s))){p()}break;case"ds-switch":if(!customElements.get(o(s))){b()}break;case"ds-tag":if(!customElements.get(o(s))){E()}break;case"ds-text":if(!customElements.get(o(s))){k()}break;case"ds-tooltip":if(!customElements.get(o(s))){g()}break}}))}y();const D=x;const S=y;export{D as DsDataSort,S as defineCustomElement};
1
+ import{p as s,H as t,c as e,h as i,a,t as o}from"./index.js";import{a as n,d as r,n as d,b as l}from"./p-DlCLfwP4.js";import{d as c}from"./p-CwdRaJER.js";import{d as h}from"./p-BqipGGua.js";import{d as m}from"./p-pPtjNRqC.js";import{d as u}from"./p-0XTyQNRG.js";import{d as f}from"./p-xMBaOeKa.js";import{d as p}from"./p-B9y6azEw.js";import{d as b}from"./p-Bf-BphXP.js";import{d as E}from"./p-d76Ry5nh.js";import{d as k}from"./p-D8OWhnID.js";import{d as j}from"./p-DbW8S5qe.js";const g=()=>`.sc-ds-data-sort-h{display:inline-flex;min-inline-size:0;max-inline-size:var(--dimension-menu-width-xs)}[hidden].sc-ds-data-sort-h{display:none}`;let w=0;const x=s(class s extends t{constructor(s){super();if(s!==false){this.__registerHost()}this.dsSortChange=e(this,"dsSortChange",3);this.hasBorder=true;this.fields=[];this.sort=null;this.ariaLabel=null;this.menuOpen=false;this.menuSurfaceOpen=false;this.initialFocusVisible=false;this.componentId=`ds-data-sort-${++w}`;this.triggerId=`${this.componentId}-trigger`;this.menuId=`${this.componentId}-menu`}async setFocus(){const s=this.el.querySelector(`#${CSS.escape(this.triggerId)}`);await(s?.setFocus?.())}render(){const s=n(this.fields);const t=this.ariaLabel?.trim()||"Sort table";return i(a,{key:"c62d304deeb5f5f927bc0d9459072079113d34dd",hidden:s.length===0?true:undefined},s.length===0?null:i("ds-button-unfilled",{hasBorder:this.hasBorder,id:this.triggerId,variant:"icon-label",size:"md",icon:"ArrowsVertical",label:"Sort",labelEmphasis:false,pressScale:false,"aria-label":t,haspopup:"menu",collapseLabel:true,expanded:this.menuOpen,surfaceOpen:this.menuSurfaceOpen,controls:this.menuId,onDsClick:s=>{this.toggle(s.detail.detail===0)}}),s.length===0?null:i("ds-menu",{id:this.menuId,open:this.menuOpen,anchorId:this.triggerId,align:"start",side:"bottom",menuLabel:t,selectionMode:"none",initialFocusVisible:this.initialFocusVisible,sections:r(this.fields,this.sort),onDsClose:()=>this.close(),onDsAfterClose:()=>{if(!this.menuOpen)this.menuSurfaceOpen=false},onDsSelect:s=>this.handleSelect(s.detail)}))}toggle(s=false){if(this.menuOpen)this.close();else this.open(s)}open(s=false){if(this.menuOpen)return;this.initialFocusVisible=s;this.menuOpen=true;this.menuSurfaceOpen=true}close(){this.menuOpen=false}handleSelect(s){const t=d(this.fields,this.sort,s);if(l(this.sort,t))return;this.dsSortChange.emit({sort:t})}get el(){return this}static get style(){return g()}},[2,"ds-data-sort",{hasBorder:[4,"has-border"],fields:[16],sort:[16],ariaLabel:[1,"aria-label"],menuOpen:[32],menuSurfaceOpen:[32],initialFocusVisible:[32],setFocus:[64]}]);function S(){if(typeof customElements==="undefined"){return}const s=["ds-data-sort","ds-badge","ds-button-unfilled","ds-icon","ds-loader","ds-menu","ds-swatch-picker","ds-switch","ds-tag","ds-text","ds-tooltip"];s.forEach((s=>{switch(s){case"ds-data-sort":if(!customElements.get(o(s))){customElements.define(o(s),x)}break;case"ds-badge":if(!customElements.get(o(s))){c()}break;case"ds-button-unfilled":if(!customElements.get(o(s))){h()}break;case"ds-icon":if(!customElements.get(o(s))){m()}break;case"ds-loader":if(!customElements.get(o(s))){u()}break;case"ds-menu":if(!customElements.get(o(s))){f()}break;case"ds-swatch-picker":if(!customElements.get(o(s))){p()}break;case"ds-switch":if(!customElements.get(o(s))){b()}break;case"ds-tag":if(!customElements.get(o(s))){E()}break;case"ds-text":if(!customElements.get(o(s))){k()}break;case"ds-tooltip":if(!customElements.get(o(s))){j()}break}}))}S();const y=x;const C=S;export{y as DsDataSort,C as defineCustomElement};
2
2
  //# sourceMappingURL=ds-data-sort.js.map
@@ -1,2 +1,2 @@
1
- import{F as o,d as s}from"./p-Bq_ypMSy.js";const p=o;const t=s;export{p as DsFilterMenu,t as defineCustomElement};
1
+ import{F as o,d as s}from"./p-BR9Pjp15.js";const p=o;const t=s;export{p as DsFilterMenu,t as defineCustomElement};
2
2
  //# sourceMappingURL=ds-filter-menu.js.map
@@ -1,2 +1,2 @@
1
- import{I as o,d as s}from"./p-DPFg5d4_.js";const t=o;const p=s;export{t as DsInputDate,p as defineCustomElement};
1
+ import{I as o,d as s}from"./p-leZFu-cd.js";const t=o;const c=s;export{t as DsInputDate,c as defineCustomElement};
2
2
  //# sourceMappingURL=ds-input-date.js.map
@@ -1,2 +1,2 @@
1
- import{I as o,d as s}from"./p-jp7hwRtC.js";const t=o;const p=s;export{t as DsInputTime,p as defineCustomElement};
1
+ import{I as o,d as s}from"./p-HfZ1gI2q.js";const t=o;const p=s;export{t as DsInputTime,p as defineCustomElement};
2
2
  //# sourceMappingURL=ds-input-time.js.map
@@ -1,2 +1,2 @@
1
- import{I as o,d as s}from"./p-DEYCF-oJ.js";const t=o;const p=s;export{t as DsInput,p as defineCustomElement};
1
+ import{I as o,d as s}from"./p-DYGllrVT.js";const r=o;const t=s;export{r as DsInput,t as defineCustomElement};
2
2
  //# sourceMappingURL=ds-input.js.map
@@ -1,2 +1,2 @@
1
- import{p as e,H as r,c as t,h as a,a as s,t as i}from"./index.js";import{d as o}from"./p-pPtjNRqC.js";import{d as n}from"./p-D8OWhnID.js";const d=()=>`@media (forced-colors: active){.sc-ds-map-entity-marker:root,.sc-ds-map-entity-marker-h,.ds-forced-colors-scope.sc-ds-map-entity-marker{--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-map-entity-marker-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-map-entity-marker-h,.ds-focus-ring.sc-ds-map-entity-marker,.ds-focus-ring-inset.sc-ds-map-entity-marker-h,.ds-focus-ring-inset.sc-ds-map-entity-marker{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-map-entity-marker-h:focus-visible,.ds-focus-ring.sc-ds-map-entity-marker: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-map-entity-marker-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-map-entity-marker{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-map-entity-marker-h:focus-visible,.ds-focus-ring-inset.sc-ds-map-entity-marker:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-map-entity-marker-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-map-entity-marker: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-map-entity-marker-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-map-entity-marker{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-map-entity-marker-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-map-entity-marker::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-map-entity-marker-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}.sc-ds-map-entity-marker-h{--_map-marker-background:var(--color-entity-marker-background-in-motion);--_map-marker-foreground:var(--color-entity-marker-foreground);--_map-marker-interaction-hover:var(--color-entity-marker-interaction-hover);--_map-marker-interaction-pressed:var(--color-entity-marker-interaction-pressed);position:relative;display:inline-flex;width:max-content;overflow:visible;vertical-align:middle;transition:var(--effect-transition-interaction-opacity-short-2)}.map-marker--dimmed.sc-ds-map-entity-marker-h{opacity:var(--effect-opacity-medium)}.map-marker--dimmed.sc-ds-map-entity-marker-h:focus-within{opacity:1}.map-marker__button.sc-ds-map-entity-marker{all:unset;position:relative;z-index:0;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;height:var(--dimension-size-300);min-width:var(--dimension-size-300);overflow:hidden;color:var(--_map-marker-foreground);background:var(--_map-marker-background);box-shadow:0 0 0 var(--dimension-stroke-width-012) var(--color-border-tertiary);cursor:pointer;transition:var(--effect-transition-interaction-opacity-short-2)}.map-marker__button.sc-ds-map-entity-marker::before{content:'';position:absolute;z-index:1;inset:0;border-radius:inherit;pointer-events:none}.map-marker__button.sc-ds-map-entity-marker::after{content:'';position:absolute;z-index:3;inset:0;border-radius:inherit;outline:var(--dimension-stroke-width-018) solid currentColor;outline-offset:calc(-1 * var(--dimension-stroke-width-037));pointer-events:none}.map-marker__caption.sc-ds-map-entity-marker{position:absolute;z-index:2;top:calc(100% + var(--dimension-space-050));left:50%;display:none;box-sizing:border-box;align-items:center;justify-content:center;width:max-content;max-width:calc(var(--dimension-size-800) * 4);height:var(--dimension-size-200);padding:0 var(--dimension-space-050);overflow:visible;border-radius:var(--dimension-radius-025);color:var(--_map-marker-foreground);background:var(--_map-marker-background);pointer-events:none;transform:translateX(-50%);line-height:0;white-space:nowrap}.sc-ds-map-entity-marker-h:focus-within .map-marker__caption.sc-ds-map-entity-marker{display:inline-flex}@media (hover: hover) and (pointer: fine){.map-marker--dimmed.sc-ds-map-entity-marker-h:hover{opacity:1}.sc-ds-map-entity-marker-h:hover .map-marker__caption.sc-ds-map-entity-marker{display:inline-flex}.map-marker__button.sc-ds-map-entity-marker:hover::before{background:var(--_map-marker-interaction-hover)}}.map-marker__button.sc-ds-map-entity-marker:active::before{background:var(--_map-marker-interaction-pressed)}@media (forced-colors: active){.map-marker__button.sc-ds-map-entity-marker{border:var(--dimension-stroke-width-012) solid var(--ds-forced-color-control-boundary);color:var(--ds-forced-color-content);background:var(--ds-forced-color-surface);box-shadow:none}.map-marker__button.sc-ds-map-entity-marker::before{display:none}.map-marker__button.sc-ds-map-entity-marker::after{outline-color:var(--ds-forced-color-control-boundary)}.map-marker__caption.sc-ds-map-entity-marker{border:var(--dimension-stroke-width-012) solid var(--ds-forced-color-control-boundary);color:var(--ds-forced-color-content);background:var(--ds-forced-color-surface)}}[state='moving'].sc-ds-map-entity-marker-h{--_map-marker-background:var(--color-entity-marker-background-in-motion)}[state='idling'].sc-ds-map-entity-marker-h{--_map-marker-background:var(--color-entity-marker-background-idling)}[state='stationary'].sc-ds-map-entity-marker-h{--_map-marker-background:var(--color-entity-marker-background-stationary)}[state='immobilized'].sc-ds-map-entity-marker-h{--_map-marker-background:var(--color-entity-marker-background-immobilized)}[state='unknown'].sc-ds-map-entity-marker-h{--_map-marker-background:var(--color-entity-marker-background-stale)}.map-marker__button.sc-ds-map-entity-marker{width:var(--dimension-size-300);border-radius:var(--dimension-radius-half)}.map-entity-marker--dashed.sc-ds-map-entity-marker-h .map-marker__button.sc-ds-map-entity-marker::after{display:none}.map-entity-marker__dashed-outline.sc-ds-map-entity-marker{position:absolute;z-index:3;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;transform:rotate(-90deg);fill:none;stroke:currentcolor;stroke-width:1;stroke-linecap:butt}.map-entity-marker__glyph.sc-ds-map-entity-marker{position:relative;z-index:2;display:inline-flex;transform:rotate(var(--ds-map-entity-marker-bearing))}@media (forced-colors: active){.map-entity-marker--dashed.sc-ds-map-entity-marker-h .map-marker__button.sc-ds-map-entity-marker::after{display:block;outline-style:dashed}.map-entity-marker__dashed-outline.sc-ds-map-entity-marker{display:none}}`;const c=e=>{if(!Number.isFinite(e))return 0;return(e%360+360)%360};const m=new Set(["MapEntityTravelGroup","MapEntityVehicle"]);const l=8;const p=6.5;const u=45;const k=6;const f=e=>{const r=e*Math.PI/180;return[l+p*Math.cos(r),l+p*Math.sin(r)]};const h=Array.from({length:8},((e,r)=>{const t=r*u+k;const a=(r+1)*u-k;const[s,i]=f(t);const[o,n]=f(a);return`M ${s.toFixed(3)} ${i.toFixed(3)} A ${p} ${p} 0 0 1 ${o.toFixed(3)} ${n.toFixed(3)}`})).join(" ");const y=e(class e extends r{constructor(e){super();if(e!==false){this.__registerHost()}this.dsClick=t(this,"dsClick",7);this.caption="";this.icon="MapEntityTravelGroup";this.state="moving";this.dashed=false;this.bearing=0;this.dimmed=false;this.handleClick=e=>{this.dsClick.emit(e)}}async setFocus(){this.buttonEl?.focus()}render(){const e=this.caption.trim();const r=this.state==="immobilized"?"MapKey":this.icon;const t=m.has(r)?c(this.bearing):0;return a(s,{key:"c429a323a8098a4ac9eb6aa6141b0e257dd3a207",class:{"map-entity-marker":true,"map-marker--dimmed":this.dimmed,"map-entity-marker--dashed":this.dashed}},a("button",{key:"23e049ea9d8afabb6926691f3edfbda25a2a5507",ref:e=>this.buttonEl=e,type:"button",class:"map-marker__button ds-focus-ring","aria-label":this.label,onClick:this.handleClick},a("span",{key:"3eda6ac1746b061cfdc92fc19c9b973535206858",class:"map-entity-marker__glyph",style:{"--ds-map-entity-marker-bearing":`${t}deg`},"aria-hidden":"true"},a("ds-icon",{key:"90bae3cdb2ac205a5f1e471eda4728afcae2fb95",name:r,size:"sm",color:"inherit"})),this.dashed&&a("svg",{key:"e21548559607e1680289a01053f3a9f34de31c16",class:"map-entity-marker__dashed-outline",viewBox:"0 0 16 16","aria-hidden":"true"},a("path",{key:"0e8d0d32cd3d832a50693c9c774b264e5f68ec07",d:h}))),e&&a("ds-text",{key:"16fa22dab45e8dce50ed8d1da8477bd289b13949",class:"map-marker__caption",as:"span",variant:"text-caption",color:"inherit","aria-hidden":"true"},e))}static get style(){return d()}},[2,"ds-map-entity-marker",{label:[1],caption:[1],icon:[1],state:[513],dashed:[516],bearing:[2],dimmed:[516],setFocus:[64]}]);function b(){if(typeof customElements==="undefined"){return}const e=["ds-map-entity-marker","ds-icon","ds-text"];e.forEach((e=>{switch(e){case"ds-map-entity-marker":if(!customElements.get(i(e))){customElements.define(i(e),y)}break;case"ds-icon":if(!customElements.get(i(e))){o()}break;case"ds-text":if(!customElements.get(i(e))){n()}break}}))}b();const v=y;const g=b;export{v as DsMapEntityMarker,g as defineCustomElement};
1
+ import{p as e,H as r,c as t,h as a,a as s,t as i}from"./index.js";import{d as o}from"./p-pPtjNRqC.js";import{d as n}from"./p-D8OWhnID.js";const c=()=>`@media (forced-colors: active){.sc-ds-map-entity-marker:root,.sc-ds-map-entity-marker-h,.ds-forced-colors-scope.sc-ds-map-entity-marker{--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-map-entity-marker-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-map-entity-marker-h,.ds-focus-ring.sc-ds-map-entity-marker,.ds-focus-ring-inset.sc-ds-map-entity-marker-h,.ds-focus-ring-inset.sc-ds-map-entity-marker{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-map-entity-marker-h:focus-visible,.ds-focus-ring.sc-ds-map-entity-marker: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-map-entity-marker-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-map-entity-marker{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-map-entity-marker-h:focus-visible,.ds-focus-ring-inset.sc-ds-map-entity-marker:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-map-entity-marker-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-map-entity-marker: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-map-entity-marker-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-map-entity-marker{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-map-entity-marker-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-map-entity-marker::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-map-entity-marker-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}.sc-ds-map-entity-marker-h{--_map-marker-background:var(--color-entity-marker-background-in-motion);--_map-marker-foreground:var(--color-entity-marker-foreground);--_map-marker-interaction-hover:var(--color-entity-marker-interaction-hover);--_map-marker-interaction-pressed:var(--color-entity-marker-interaction-pressed);position:relative;display:inline-flex;width:max-content;overflow:visible;vertical-align:middle;transition:var(--effect-transition-interaction-opacity-short-2)}.map-marker--dimmed.sc-ds-map-entity-marker-h{opacity:var(--effect-opacity-medium)}.map-marker--dimmed.sc-ds-map-entity-marker-h:focus-within{opacity:1}.map-marker__button.sc-ds-map-entity-marker{all:unset;position:relative;z-index:0;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;height:var(--dimension-size-300);min-width:var(--dimension-size-300);overflow:hidden;color:var(--_map-marker-foreground);background:var(--_map-marker-background);box-shadow:0 0 0 var(--dimension-stroke-width-012) var(--color-border-tertiary);cursor:pointer;transition:var(--effect-transition-interaction-opacity-short-2)}.map-marker__button.sc-ds-map-entity-marker::before{content:'';position:absolute;z-index:1;inset:0;border-radius:inherit;pointer-events:none}.map-marker__button.sc-ds-map-entity-marker::after{content:'';position:absolute;z-index:3;inset:0;border-radius:inherit;outline:var(--dimension-stroke-width-018) solid currentColor;outline-offset:calc(-1 * var(--dimension-stroke-width-037));pointer-events:none}.map-marker__caption.sc-ds-map-entity-marker{position:absolute;z-index:2;top:calc(100% + var(--dimension-space-050));left:50%;display:none;box-sizing:border-box;align-items:center;justify-content:center;width:max-content;max-width:calc(var(--dimension-size-800) * 4);height:var(--dimension-size-200);padding:0 var(--dimension-space-050);overflow:visible;border-radius:var(--dimension-radius-025);color:var(--_map-marker-foreground);background:var(--_map-marker-background);pointer-events:none;transform:translateX(-50%);line-height:0;white-space:nowrap}.sc-ds-map-entity-marker-h:focus-within .map-marker__caption.sc-ds-map-entity-marker{display:inline-flex}@media (hover: hover) and (pointer: fine){.map-marker--dimmed.sc-ds-map-entity-marker-h:hover{opacity:1}.sc-ds-map-entity-marker-h:hover .map-marker__caption.sc-ds-map-entity-marker{display:inline-flex}.map-marker__button.sc-ds-map-entity-marker:hover::before{background:var(--_map-marker-interaction-hover)}}.map-marker__button.sc-ds-map-entity-marker:active::before{background:var(--_map-marker-interaction-pressed)}@media (forced-colors: active){.map-marker__button.sc-ds-map-entity-marker{border:var(--dimension-stroke-width-012) solid var(--ds-forced-color-control-boundary);color:var(--ds-forced-color-content);background:var(--ds-forced-color-surface);box-shadow:none}.map-marker__button.sc-ds-map-entity-marker::before{display:none}.map-marker__button.sc-ds-map-entity-marker::after{outline-color:var(--ds-forced-color-control-boundary)}.map-marker__caption.sc-ds-map-entity-marker{border:var(--dimension-stroke-width-012) solid var(--ds-forced-color-control-boundary);color:var(--ds-forced-color-content);background:var(--ds-forced-color-surface)}}[state='moving'].sc-ds-map-entity-marker-h{--_map-marker-background:var(--color-entity-marker-background-in-motion)}[state='idling'].sc-ds-map-entity-marker-h{--_map-marker-background:var(--color-entity-marker-background-idling)}[state='stationary'].sc-ds-map-entity-marker-h{--_map-marker-background:var(--color-entity-marker-background-stationary)}[state='immobilized'].sc-ds-map-entity-marker-h{--_map-marker-background:var(--color-entity-marker-background-immobilized)}[state='unknown'].sc-ds-map-entity-marker-h{--_map-marker-background:var(--color-entity-marker-background-stale)}.map-marker__button.sc-ds-map-entity-marker{width:var(--dimension-size-300);border-radius:var(--dimension-radius-half)}.map-entity-marker--dashed.sc-ds-map-entity-marker-h .map-marker__button.sc-ds-map-entity-marker::after{display:none}.map-entity-marker__dashed-outline.sc-ds-map-entity-marker{position:absolute;z-index:3;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;transform:rotate(-90deg);fill:none;stroke:currentcolor;stroke-width:1;stroke-linecap:butt}.map-entity-marker__glyph.sc-ds-map-entity-marker{position:relative;z-index:2;display:inline-flex;transform:rotate(var(--ds-map-entity-marker-bearing))}@media (forced-colors: active){.map-entity-marker--dashed.sc-ds-map-entity-marker-h .map-marker__button.sc-ds-map-entity-marker::after{display:block;outline-style:dashed}.map-entity-marker__dashed-outline.sc-ds-map-entity-marker{display:none}}`;const d=e=>{if(!Number.isFinite(e))return 0;return(e%360+360)%360};const m=new Set(["MapEntityTravelGroup","MapEntityVehicle"]);const l=8;const p=6.5;const f=45;const u=6;const k=e=>{const r=e*Math.PI/180;return[l+p*Math.cos(r),l+p*Math.sin(r)]};const h=Array.from({length:8},((e,r)=>{const t=r*f+u;const a=(r+1)*f-u;const[s,i]=k(t);const[o,n]=k(a);return`M ${s.toFixed(3)} ${i.toFixed(3)} A ${p} ${p} 0 0 1 ${o.toFixed(3)} ${n.toFixed(3)}`})).join(" ");const y=e(class e extends r{constructor(e){super();if(e!==false){this.__registerHost()}this.dsClick=t(this,"dsClick",7);this.caption="";this.icon="MapEntityTravelGroup";this.state="moving";this.dashed=false;this.bearing=0;this.dimmed=false;this.handleClick=e=>{this.dsClick.emit(e)}}async setFocus(){this.buttonEl?.focus()}render(){const e=this.caption.trim();const r=this.state==="immobilized"&&this.icon==="MapEntityVehicle"?"MapKey":this.icon;const t=m.has(r)?d(this.bearing):0;return a(s,{key:"2ed79e19e01ae1e4c7989f6630a2b375fe8093d0",class:{"map-entity-marker":true,"map-marker--dimmed":this.dimmed,"map-entity-marker--dashed":this.dashed}},a("button",{key:"8ad7fbf18c13986abc351dee13f3ff03d73621fd",ref:e=>this.buttonEl=e,type:"button",class:"map-marker__button ds-focus-ring","aria-label":this.label,onClick:this.handleClick},a("span",{key:"093bcc1775efbab22d15a660b46c77f0f2c4d7ec",class:"map-entity-marker__glyph",style:{"--ds-map-entity-marker-bearing":`${t}deg`},"aria-hidden":"true"},a("ds-icon",{key:"a5bff120a90cf5b356a452b479d9f0b658082d05",name:r,size:"sm",color:"inherit"})),this.dashed&&a("svg",{key:"3514526bcc41400f1bd68c9a98814a5ed8ddf332",class:"map-entity-marker__dashed-outline",viewBox:"0 0 16 16","aria-hidden":"true"},a("path",{key:"0041525d5364842c78240a547c6a08abdc07d132",d:h}))),e&&a("ds-text",{key:"42745fdca1762c1d0817309f2f0e5fa5f4bae113",class:"map-marker__caption",as:"span",variant:"text-caption",color:"inherit","aria-hidden":"true"},e))}static get style(){return c()}},[2,"ds-map-entity-marker",{label:[1],caption:[1],icon:[1],state:[513],dashed:[516],bearing:[2],dimmed:[516],setFocus:[64]}]);function b(){if(typeof customElements==="undefined"){return}const e=["ds-map-entity-marker","ds-icon","ds-text"];e.forEach((e=>{switch(e){case"ds-map-entity-marker":if(!customElements.get(i(e))){customElements.define(i(e),y)}break;case"ds-icon":if(!customElements.get(i(e))){o()}break;case"ds-text":if(!customElements.get(i(e))){n()}break}}))}b();const v=y;const g=b;export{v as DsMapEntityMarker,g as defineCustomElement};
2
2
  //# sourceMappingURL=ds-map-entity-marker.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["mapEntityMarkerCss","normalizeBearing","bearing","Number","isFinite","BEARING_ICONS","Set","DASHED_OUTLINE_CENTER","DASHED_OUTLINE_RADIUS","DASHED_OUTLINE_SEGMENT_ANGLE","DASHED_OUTLINE_HALF_GAP_ANGLE","dashedOutlinePoint","angle","radians","Math","PI","cos","sin","DASHED_OUTLINE_PATH","Array","from","length","_","index","segmentStart","segmentEnd","startX","startY","endX","endY","toFixed","join","MapEntityMarker","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","caption","icon","state","dashed","dimmed","handleClick","event","dsClick","emit","setFocus","buttonEl","focus","render","trim","markerIcon","has","h","Host","key","class","ref","element","type","label","onClick","style","name","size","color","viewBox","d","as","variant"],"sources":["src/wc/components/MapEntityMarker/MapEntityMarker.css?tag=ds-map-entity-marker&encapsulation=scoped","src/wc/components/MapEntityMarker/MapEntityMarker.tsx"],"sourcesContent":["@import '../../utils/focus-ring.css';\n@import '../../utils/map-marker.css';\n\n:host([state='moving']) {\n --_map-marker-background: var(--color-entity-marker-background-in-motion);\n}\n\n:host([state='idling']) {\n --_map-marker-background: var(--color-entity-marker-background-idling);\n}\n\n:host([state='stationary']) {\n --_map-marker-background: var(--color-entity-marker-background-stationary);\n}\n\n:host([state='immobilized']) {\n --_map-marker-background: var(--color-entity-marker-background-immobilized);\n}\n\n:host([state='unknown']) {\n --_map-marker-background: var(--color-entity-marker-background-stale);\n}\n\n.map-marker__button {\n width: var(--dimension-size-300);\n border-radius: var(--dimension-radius-half);\n}\n\n:host(.map-entity-marker--dashed) .map-marker__button::after {\n display: none;\n}\n\n.map-entity-marker__dashed-outline {\n position: absolute;\n z-index: 3;\n inset: 0;\n width: 100%;\n height: 100%;\n overflow: visible;\n pointer-events: none;\n transform: rotate(-90deg);\n fill: none;\n stroke: currentcolor;\n stroke-width: 1;\n stroke-linecap: butt;\n}\n\n.map-entity-marker__glyph {\n position: relative;\n z-index: 2;\n display: inline-flex;\n transform: rotate(var(--ds-map-entity-marker-bearing));\n}\n\n@media (forced-colors: active) {\n :host(.map-entity-marker--dashed) .map-marker__button::after {\n display: block;\n outline-style: dashed;\n }\n\n .map-entity-marker__dashed-outline {\n display: none;\n }\n}\n","import { Component, Event, EventEmitter, h, Host, Method, Prop } from '@stencil/core';\n\nexport type MapEntityMarkerState = 'moving' | 'idling' | 'stationary' | 'immobilized' | 'unknown';\n\nconst normalizeBearing = (bearing: number): number => {\n if (!Number.isFinite(bearing)) return 0;\n return ((bearing % 360) + 360) % 360;\n};\n\nconst BEARING_ICONS = new Set(['MapEntityTravelGroup', 'MapEntityVehicle']);\n\nconst DASHED_OUTLINE_CENTER = 8;\nconst DASHED_OUTLINE_RADIUS = 6.5;\nconst DASHED_OUTLINE_SEGMENT_ANGLE = 45;\nconst DASHED_OUTLINE_HALF_GAP_ANGLE = 6;\n\nconst dashedOutlinePoint = (angle: number): [number, number] => {\n const radians = (angle * Math.PI) / 180;\n return [\n DASHED_OUTLINE_CENTER + DASHED_OUTLINE_RADIUS * Math.cos(radians),\n DASHED_OUTLINE_CENTER + DASHED_OUTLINE_RADIUS * Math.sin(radians),\n ];\n};\n\nconst DASHED_OUTLINE_PATH = Array.from({ length: 8 }, (_, index) => {\n const segmentStart = index * DASHED_OUTLINE_SEGMENT_ANGLE + DASHED_OUTLINE_HALF_GAP_ANGLE;\n const segmentEnd = (index + 1) * DASHED_OUTLINE_SEGMENT_ANGLE - DASHED_OUTLINE_HALF_GAP_ANGLE;\n const [startX, startY] = dashedOutlinePoint(segmentStart);\n const [endX, endY] = dashedOutlinePoint(segmentEnd);\n return `M ${startX.toFixed(3)} ${startY.toFixed(3)} A ${DASHED_OUTLINE_RADIUS} ${DASHED_OUTLINE_RADIUS} 0 0 1 ${endX.toFixed(3)} ${endY.toFixed(3)}`;\n}).join(' ');\n\n@Component({\n tag: 'ds-map-entity-marker',\n styleUrl: 'MapEntityMarker.css',\n scoped: true,\n})\nexport class MapEntityMarker {\n /** Accessible action label. Describe what activating the marker opens. */\n @Prop() label!: string;\n\n /** Short visible identifier revealed on hover or keyboard focus. */\n @Prop() caption: string = '';\n\n /** Canonical IcoMo icon name for the represented map entity. Immobilized state uses MapKey. */\n @Prop() icon: string = 'MapEntityTravelGroup';\n\n /** Semantic operating state that selects the marker background. */\n @Prop({ reflect: true }) state: MapEntityMarkerState = 'moving';\n\n /** Adds an optional dashed outline without changing the operating state. */\n @Prop({ reflect: true }) dashed: boolean = false;\n\n /** Clockwise map bearing for travel-group and vehicle icons. Values are normalized to 0–359. */\n @Prop() bearing: number = 0;\n\n /** De-emphasizes this marker when an owner-managed selection is active elsewhere. */\n @Prop({ reflect: true }) dimmed: boolean = false;\n\n /** Fired when the marker's native button is activated. */\n @Event() dsClick!: EventEmitter<MouseEvent>;\n\n private buttonEl?: HTMLButtonElement;\n\n /** Moves keyboard focus to the marker button. */\n @Method()\n async setFocus(): Promise<void> {\n this.buttonEl?.focus();\n }\n\n private handleClick = (event: MouseEvent) => {\n this.dsClick.emit(event);\n };\n\n render() {\n const caption = this.caption.trim();\n const markerIcon = this.state === 'immobilized' ? 'MapKey' : this.icon;\n const bearing = BEARING_ICONS.has(markerIcon) ? normalizeBearing(this.bearing) : 0;\n\n return (\n <Host\n class={{\n 'map-entity-marker': true,\n 'map-marker--dimmed': this.dimmed,\n 'map-entity-marker--dashed': this.dashed,\n }}\n >\n <button\n ref={element => (this.buttonEl = element)}\n type=\"button\"\n class=\"map-marker__button ds-focus-ring\"\n aria-label={this.label}\n onClick={this.handleClick}\n >\n <span\n class=\"map-entity-marker__glyph\"\n style={{ '--ds-map-entity-marker-bearing': `${bearing}deg` }}\n aria-hidden=\"true\"\n >\n <ds-icon name={markerIcon} size=\"sm\" color=\"inherit\"></ds-icon>\n </span>\n {this.dashed && (\n // eslint-disable-next-line compomo/prefer-ds-icon -- The dashed ring is a component-owned geometric primitive with eight exact equal arcs.\n <svg class=\"map-entity-marker__dashed-outline\" viewBox=\"0 0 16 16\" aria-hidden=\"true\">\n <path d={DASHED_OUTLINE_PATH}></path>\n </svg>\n )}\n </button>\n {caption && (\n <ds-text\n class=\"map-marker__caption\"\n as=\"span\"\n variant=\"text-caption\"\n color=\"inherit\"\n aria-hidden=\"true\"\n >\n {caption}\n </ds-text>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"0IAAA,MAAMA,EAAqB,IAAM,qwNCIjC,MAAMC,EAAoBC,IACxB,IAAKC,OAAOC,SAASF,GAAU,OAAO,EACtC,OAASA,EAAU,IAAO,KAAO,GAAG,EAGtC,MAAMG,EAAgB,IAAIC,IAAI,CAAC,uBAAwB,qBAEvD,MAAMC,EAAwB,EAC9B,MAAMC,EAAwB,IAC9B,MAAMC,EAA+B,GACrC,MAAMC,EAAgC,EAEtC,MAAMC,EAAsBC,IAC1B,MAAMC,EAAWD,EAAQE,KAAKC,GAAM,IACpC,MAAO,CACLR,EAAwBC,EAAwBM,KAAKE,IAAIH,GACzDN,EAAwBC,EAAwBM,KAAKG,IAAIJ,GAC1D,EAGH,MAAMK,EAAsBC,MAAMC,KAAK,CAAEC,OAAQ,IAAK,CAACC,EAAGC,KACxD,MAAMC,EAAeD,EAAQd,EAA+BC,EAC5D,MAAMe,GAAcF,EAAQ,GAAKd,EAA+BC,EAChE,MAAOgB,EAAQC,GAAUhB,EAAmBa,GAC5C,MAAOI,EAAMC,GAAQlB,EAAmBc,GACxC,MAAO,KAAKC,EAAOI,QAAQ,MAAMH,EAAOG,QAAQ,QAAQtB,KAAyBA,WAA+BoB,EAAKE,QAAQ,MAAMD,EAAKC,QAAQ,IAAI,IACnJC,KAAK,K,MAOKC,EAAeC,EAAA,MAAAD,UAAAE,EAL5B,WAAAC,CAAAC,G,6EAUUC,KAAAC,QAAkB,GAGlBD,KAAAE,KAAe,uBAGEF,KAAAG,MAA8B,SAG9BH,KAAAI,OAAkB,MAGnCJ,KAAAnC,QAAkB,EAGDmC,KAAAK,OAAkB,MAanCL,KAAAM,YAAeC,IACrBP,KAAKQ,QAAQC,KAAKF,EAAM,CAmD3B,CAxDC,cAAMG,GACJV,KAAKW,UAAUC,O,CAOjB,MAAAC,GACE,MAAMZ,EAAUD,KAAKC,QAAQa,OAC7B,MAAMC,EAAaf,KAAKG,QAAU,cAAgB,SAAWH,KAAKE,KAClE,MAAMrC,EAAUG,EAAcgD,IAAID,GAAcnD,EAAiBoC,KAAKnC,SAAW,EAEjF,OACEoD,EAACC,EAAI,CAAAC,IAAA,2CACHC,MAAO,CACL,oBAAqB,KACrB,qBAAsBpB,KAAKK,OAC3B,4BAA6BL,KAAKI,SAGpCa,EAAA,UAAAE,IAAA,2CACEE,IAAKC,GAAYtB,KAAKW,SAAWW,EACjCC,KAAK,SACLH,MAAM,mCAAkC,aAC5BpB,KAAKwB,MACjBC,QAASzB,KAAKM,aAEdW,EAAA,QAAAE,IAAA,2CACEC,MAAM,2BACNM,MAAO,CAAE,iCAAkC,GAAG7D,QAAc,cAChD,QAEZoD,EAAA,WAAAE,IAAA,2CAASQ,KAAMZ,EAAYa,KAAK,KAAKC,MAAM,aAE5C7B,KAAKI,QAEJa,EAAA,OAAAE,IAAA,2CAAKC,MAAM,oCAAoCU,QAAQ,YAAW,cAAa,QAC7Eb,EAAA,QAAAE,IAAA,2CAAMY,EAAGlD,MAIdoB,GACCgB,EAAA,WAAAE,IAAA,2CACEC,MAAM,sBACNY,GAAG,OACHC,QAAQ,eACRJ,MAAM,UAAS,cACH,QAEX5B,G","ignoreList":[]}
1
+ {"version":3,"names":["mapEntityMarkerCss","normalizeBearing","bearing","Number","isFinite","BEARING_ICONS","Set","DASHED_OUTLINE_CENTER","DASHED_OUTLINE_RADIUS","DASHED_OUTLINE_SEGMENT_ANGLE","DASHED_OUTLINE_HALF_GAP_ANGLE","dashedOutlinePoint","angle","radians","Math","PI","cos","sin","DASHED_OUTLINE_PATH","Array","from","length","_","index","segmentStart","segmentEnd","startX","startY","endX","endY","toFixed","join","MapEntityMarker","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","caption","icon","state","dashed","dimmed","handleClick","event","dsClick","emit","setFocus","buttonEl","focus","render","trim","markerIcon","has","h","Host","key","class","ref","element","type","label","onClick","style","name","size","color","viewBox","d","as","variant"],"sources":["src/wc/components/MapEntityMarker/MapEntityMarker.css?tag=ds-map-entity-marker&encapsulation=scoped","src/wc/components/MapEntityMarker/MapEntityMarker.tsx"],"sourcesContent":["@import '../../utils/focus-ring.css';\n@import '../../utils/map-marker.css';\n\n:host([state='moving']) {\n --_map-marker-background: var(--color-entity-marker-background-in-motion);\n}\n\n:host([state='idling']) {\n --_map-marker-background: var(--color-entity-marker-background-idling);\n}\n\n:host([state='stationary']) {\n --_map-marker-background: var(--color-entity-marker-background-stationary);\n}\n\n:host([state='immobilized']) {\n --_map-marker-background: var(--color-entity-marker-background-immobilized);\n}\n\n:host([state='unknown']) {\n --_map-marker-background: var(--color-entity-marker-background-stale);\n}\n\n.map-marker__button {\n width: var(--dimension-size-300);\n border-radius: var(--dimension-radius-half);\n}\n\n:host(.map-entity-marker--dashed) .map-marker__button::after {\n display: none;\n}\n\n.map-entity-marker__dashed-outline {\n position: absolute;\n z-index: 3;\n inset: 0;\n width: 100%;\n height: 100%;\n overflow: visible;\n pointer-events: none;\n transform: rotate(-90deg);\n fill: none;\n stroke: currentcolor;\n stroke-width: 1;\n stroke-linecap: butt;\n}\n\n.map-entity-marker__glyph {\n position: relative;\n z-index: 2;\n display: inline-flex;\n transform: rotate(var(--ds-map-entity-marker-bearing));\n}\n\n@media (forced-colors: active) {\n :host(.map-entity-marker--dashed) .map-marker__button::after {\n display: block;\n outline-style: dashed;\n }\n\n .map-entity-marker__dashed-outline {\n display: none;\n }\n}\n","import { Component, Event, EventEmitter, h, Host, Method, Prop } from '@stencil/core';\n\nexport type MapEntityMarkerState = 'moving' | 'idling' | 'stationary' | 'immobilized' | 'unknown';\n\nconst normalizeBearing = (bearing: number): number => {\n if (!Number.isFinite(bearing)) return 0;\n return ((bearing % 360) + 360) % 360;\n};\n\nconst BEARING_ICONS = new Set(['MapEntityTravelGroup', 'MapEntityVehicle']);\n\nconst DASHED_OUTLINE_CENTER = 8;\nconst DASHED_OUTLINE_RADIUS = 6.5;\nconst DASHED_OUTLINE_SEGMENT_ANGLE = 45;\nconst DASHED_OUTLINE_HALF_GAP_ANGLE = 6;\n\nconst dashedOutlinePoint = (angle: number): [number, number] => {\n const radians = (angle * Math.PI) / 180;\n return [\n DASHED_OUTLINE_CENTER + DASHED_OUTLINE_RADIUS * Math.cos(radians),\n DASHED_OUTLINE_CENTER + DASHED_OUTLINE_RADIUS * Math.sin(radians),\n ];\n};\n\nconst DASHED_OUTLINE_PATH = Array.from({ length: 8 }, (_, index) => {\n const segmentStart = index * DASHED_OUTLINE_SEGMENT_ANGLE + DASHED_OUTLINE_HALF_GAP_ANGLE;\n const segmentEnd = (index + 1) * DASHED_OUTLINE_SEGMENT_ANGLE - DASHED_OUTLINE_HALF_GAP_ANGLE;\n const [startX, startY] = dashedOutlinePoint(segmentStart);\n const [endX, endY] = dashedOutlinePoint(segmentEnd);\n return `M ${startX.toFixed(3)} ${startY.toFixed(3)} A ${DASHED_OUTLINE_RADIUS} ${DASHED_OUTLINE_RADIUS} 0 0 1 ${endX.toFixed(3)} ${endY.toFixed(3)}`;\n}).join(' ');\n\n@Component({\n tag: 'ds-map-entity-marker',\n styleUrl: 'MapEntityMarker.css',\n scoped: true,\n})\nexport class MapEntityMarker {\n /** Accessible action label. Describe what activating the marker opens. */\n @Prop() label!: string;\n\n /** Short visible identifier revealed on hover or keyboard focus. */\n @Prop() caption: string = '';\n\n /** Canonical IcoMo icon name for the represented map entity. Immobilized vehicles use MapKey. */\n @Prop() icon: string = 'MapEntityTravelGroup';\n\n /** Semantic operating state that selects the marker background. */\n @Prop({ reflect: true }) state: MapEntityMarkerState = 'moving';\n\n /** Adds an optional dashed outline without changing the operating state. */\n @Prop({ reflect: true }) dashed: boolean = false;\n\n /** Clockwise map bearing for travel-group and vehicle icons. Values are normalized to 0–359. */\n @Prop() bearing: number = 0;\n\n /** De-emphasizes this marker when an owner-managed selection is active elsewhere. */\n @Prop({ reflect: true }) dimmed: boolean = false;\n\n /** Fired when the marker's native button is activated. */\n @Event() dsClick!: EventEmitter<MouseEvent>;\n\n private buttonEl?: HTMLButtonElement;\n\n /** Moves keyboard focus to the marker button. */\n @Method()\n async setFocus(): Promise<void> {\n this.buttonEl?.focus();\n }\n\n private handleClick = (event: MouseEvent) => {\n this.dsClick.emit(event);\n };\n\n render() {\n const caption = this.caption.trim();\n const markerIcon =\n this.state === 'immobilized' && this.icon === 'MapEntityVehicle' ? 'MapKey' : this.icon;\n const bearing = BEARING_ICONS.has(markerIcon) ? normalizeBearing(this.bearing) : 0;\n\n return (\n <Host\n class={{\n 'map-entity-marker': true,\n 'map-marker--dimmed': this.dimmed,\n 'map-entity-marker--dashed': this.dashed,\n }}\n >\n <button\n ref={element => (this.buttonEl = element)}\n type=\"button\"\n class=\"map-marker__button ds-focus-ring\"\n aria-label={this.label}\n onClick={this.handleClick}\n >\n <span\n class=\"map-entity-marker__glyph\"\n style={{ '--ds-map-entity-marker-bearing': `${bearing}deg` }}\n aria-hidden=\"true\"\n >\n <ds-icon name={markerIcon} size=\"sm\" color=\"inherit\"></ds-icon>\n </span>\n {this.dashed && (\n // eslint-disable-next-line compomo/prefer-ds-icon -- The dashed ring is a component-owned geometric primitive with eight exact equal arcs.\n <svg class=\"map-entity-marker__dashed-outline\" viewBox=\"0 0 16 16\" aria-hidden=\"true\">\n <path d={DASHED_OUTLINE_PATH}></path>\n </svg>\n )}\n </button>\n {caption && (\n <ds-text\n class=\"map-marker__caption\"\n as=\"span\"\n variant=\"text-caption\"\n color=\"inherit\"\n aria-hidden=\"true\"\n >\n {caption}\n </ds-text>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"0IAAA,MAAMA,EAAqB,IAAM,qwNCIjC,MAAMC,EAAoBC,IACxB,IAAKC,OAAOC,SAASF,GAAU,OAAO,EACtC,OAASA,EAAU,IAAO,KAAO,GAAG,EAGtC,MAAMG,EAAgB,IAAIC,IAAI,CAAC,uBAAwB,qBAEvD,MAAMC,EAAwB,EAC9B,MAAMC,EAAwB,IAC9B,MAAMC,EAA+B,GACrC,MAAMC,EAAgC,EAEtC,MAAMC,EAAsBC,IAC1B,MAAMC,EAAWD,EAAQE,KAAKC,GAAM,IACpC,MAAO,CACLR,EAAwBC,EAAwBM,KAAKE,IAAIH,GACzDN,EAAwBC,EAAwBM,KAAKG,IAAIJ,GAC1D,EAGH,MAAMK,EAAsBC,MAAMC,KAAK,CAAEC,OAAQ,IAAK,CAACC,EAAGC,KACxD,MAAMC,EAAeD,EAAQd,EAA+BC,EAC5D,MAAMe,GAAcF,EAAQ,GAAKd,EAA+BC,EAChE,MAAOgB,EAAQC,GAAUhB,EAAmBa,GAC5C,MAAOI,EAAMC,GAAQlB,EAAmBc,GACxC,MAAO,KAAKC,EAAOI,QAAQ,MAAMH,EAAOG,QAAQ,QAAQtB,KAAyBA,WAA+BoB,EAAKE,QAAQ,MAAMD,EAAKC,QAAQ,IAAI,IACnJC,KAAK,K,MAOKC,EAAeC,EAAA,MAAAD,UAAAE,EAL5B,WAAAC,CAAAC,G,6EAUUC,KAAAC,QAAkB,GAGlBD,KAAAE,KAAe,uBAGEF,KAAAG,MAA8B,SAG9BH,KAAAI,OAAkB,MAGnCJ,KAAAnC,QAAkB,EAGDmC,KAAAK,OAAkB,MAanCL,KAAAM,YAAeC,IACrBP,KAAKQ,QAAQC,KAAKF,EAAM,CAoD3B,CAzDC,cAAMG,GACJV,KAAKW,UAAUC,O,CAOjB,MAAAC,GACE,MAAMZ,EAAUD,KAAKC,QAAQa,OAC7B,MAAMC,EACJf,KAAKG,QAAU,eAAiBH,KAAKE,OAAS,mBAAqB,SAAWF,KAAKE,KACrF,MAAMrC,EAAUG,EAAcgD,IAAID,GAAcnD,EAAiBoC,KAAKnC,SAAW,EAEjF,OACEoD,EAACC,EAAI,CAAAC,IAAA,2CACHC,MAAO,CACL,oBAAqB,KACrB,qBAAsBpB,KAAKK,OAC3B,4BAA6BL,KAAKI,SAGpCa,EAAA,UAAAE,IAAA,2CACEE,IAAKC,GAAYtB,KAAKW,SAAWW,EACjCC,KAAK,SACLH,MAAM,mCAAkC,aAC5BpB,KAAKwB,MACjBC,QAASzB,KAAKM,aAEdW,EAAA,QAAAE,IAAA,2CACEC,MAAM,2BACNM,MAAO,CAAE,iCAAkC,GAAG7D,QAAc,cAChD,QAEZoD,EAAA,WAAAE,IAAA,2CAASQ,KAAMZ,EAAYa,KAAK,KAAKC,MAAM,aAE5C7B,KAAKI,QAEJa,EAAA,OAAAE,IAAA,2CAAKC,MAAM,oCAAoCU,QAAQ,YAAW,cAAa,QAC7Eb,EAAA,QAAAE,IAAA,2CAAMY,EAAGlD,MAIdoB,GACCgB,EAAA,WAAAE,IAAA,2CACEC,MAAM,sBACNY,GAAG,OACHC,QAAQ,eACRJ,MAAM,UAAS,cACH,QAEX5B,G","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{M as o,d as s}from"./p-wRhYxngW.js";const t=o;const n=s;export{t as DsMarkdown,n as defineCustomElement};
1
+ import{M as o,d as s}from"./p-CaFXrn_8.js";const r=o;const t=s;export{r as DsMarkdown,t as defineCustomElement};
2
2
  //# sourceMappingURL=ds-markdown.js.map
@@ -1,2 +1,2 @@
1
- import{M as s,d as o}from"./p-t2Ebn8si.js";const t=s;const n=o;export{t as DsMenu,n as defineCustomElement};
1
+ import{M as o,d as s}from"./p-xMBaOeKa.js";const a=o;const t=s;export{a as DsMenu,t as defineCustomElement};
2
2
  //# sourceMappingURL=ds-menu.js.map
@@ -1,2 +1,2 @@
1
- import{p as s,H as e,c as t,h as i,a,t as o}from"./index.js";import{C as n}from"./p-BnhGV__o.js";import{d}from"./p-CwdRaJER.js";import{d as l}from"./p-D-J7GgjY.js";import{d as c}from"./p-pPtjNRqC.js";import{d as r}from"./p-0XTyQNRG.js";import{d as p}from"./p-D8OWhnID.js";import{d as h}from"./p-DvGrsLgt.js";const m=()=>`.sc-ds-message-actions-h{display:inline-flex;box-sizing:border-box}.message-actions.sc-ds-message-actions{display:inline-flex;align-items:center;gap:var(--dimension-space-050)}`;const f=s(class s extends e{constructor(s){super();if(s!==false){this.__registerHost()}this.dsCopyResult=t(this,"dsCopyResult",7);this.dsFeedbackChange=t(this,"dsFeedbackChange",7);this.feedbackEnabled=false;this.copied=false;this.copyFeedback=new n((s=>{this.copied=s}));this.copy=async()=>{const s=await this.copyFeedback.copy(this.copyText??"");if(s===undefined)return;this.dsCopyResult.emit({status:s?"success":"error"})}}connectedCallback(){this.copyFeedback.connect()}handleCopyTextChange(){this.copyFeedback.reset()}disconnectedCallback(){this.copyFeedback.disconnect()}changeFeedback(s,e){this.dsFeedbackChange.emit(e?s:undefined)}render(){const s=this.copied?"Copied":"Copy message";return i(a,{key:"ad317e282b565db4c7e0989d557e9c8fb58a509e"},i("div",{key:"2c61dbcf5af784fddfdf74aaae6ee31db9215f64",class:"message-actions",role:"group","aria-label":"Message actions"},this.copyText?i("ds-tooltip",{label:s,side:"top",size:"sm"},i("ds-button-unfilled",{variant:"icon",icon:this.copied?"Check":"Copy",size:"xs","aria-label":s,hasBorder:false,onDsClick:this.copy})):null,this.feedbackEnabled?i("ds-tooltip",{label:"Good response",side:"top",size:"sm"},i("ds-button-unfilled",{variant:"icon",icon:this.feedback==="positive"?"ThumbsUpFilled":"ThumbsUp",size:"xs","aria-label":"Good response",hasBorder:false,activeFill:false,pressed:this.feedback==="positive",onDsChange:s=>this.changeFeedback("positive",s.detail)})):null,this.feedbackEnabled?i("ds-tooltip",{label:"Bad response",side:"top",size:"sm"},i("ds-button-unfilled",{variant:"icon",icon:this.feedback==="negative"?"ThumbsDownFilled":"ThumbsDown",size:"xs","aria-label":"Bad response",hasBorder:false,activeFill:false,pressed:this.feedback==="negative",onDsChange:s=>this.changeFeedback("negative",s.detail)})):null))}static get watchers(){return{copyText:[{handleCopyTextChange:0}]}}static get style(){return m()}},[2,"ds-message-actions",{copyText:[1,"copy-text"],feedbackEnabled:[4,"feedback-enabled"],feedback:[1],copied:[32]},undefined,{copyText:[{handleCopyTextChange:0}]}]);function b(){if(typeof customElements==="undefined"){return}const s=["ds-message-actions","ds-badge","ds-button-unfilled","ds-icon","ds-loader","ds-text","ds-tooltip"];s.forEach((s=>{switch(s){case"ds-message-actions":if(!customElements.get(o(s))){customElements.define(o(s),f)}break;case"ds-badge":if(!customElements.get(o(s))){d()}break;case"ds-button-unfilled":if(!customElements.get(o(s))){l()}break;case"ds-icon":if(!customElements.get(o(s))){c()}break;case"ds-loader":if(!customElements.get(o(s))){r()}break;case"ds-text":if(!customElements.get(o(s))){p()}break;case"ds-tooltip":if(!customElements.get(o(s))){h()}break}}))}b();const u=f;const g=b;export{u as DsMessageActions,g as defineCustomElement};
1
+ import{p as s,H as e,c as t,h as i,a,t as o}from"./index.js";import{C as n}from"./p-BnhGV__o.js";import{d}from"./p-CwdRaJER.js";import{d as l}from"./p-BqipGGua.js";import{d as c}from"./p-pPtjNRqC.js";import{d as r}from"./p-0XTyQNRG.js";import{d as p}from"./p-D8OWhnID.js";import{d as h}from"./p-DbW8S5qe.js";const m=()=>`.sc-ds-message-actions-h{display:inline-flex;box-sizing:border-box}.message-actions.sc-ds-message-actions{display:inline-flex;align-items:center;gap:var(--dimension-space-050)}`;const f=s(class s extends e{constructor(s){super();if(s!==false){this.__registerHost()}this.dsCopyResult=t(this,"dsCopyResult",7);this.dsFeedbackChange=t(this,"dsFeedbackChange",7);this.feedbackEnabled=false;this.copied=false;this.copyFeedback=new n((s=>{this.copied=s}));this.copy=async()=>{const s=await this.copyFeedback.copy(this.copyText??"");if(s===undefined)return;this.dsCopyResult.emit({status:s?"success":"error"})}}connectedCallback(){this.copyFeedback.connect()}handleCopyTextChange(){this.copyFeedback.reset()}disconnectedCallback(){this.copyFeedback.disconnect()}changeFeedback(s,e){this.dsFeedbackChange.emit(e?s:undefined)}render(){const s=this.copied?"Copied":"Copy message";return i(a,{key:"ad317e282b565db4c7e0989d557e9c8fb58a509e"},i("div",{key:"2c61dbcf5af784fddfdf74aaae6ee31db9215f64",class:"message-actions",role:"group","aria-label":"Message actions"},this.copyText?i("ds-tooltip",{label:s,side:"top",size:"sm"},i("ds-button-unfilled",{variant:"icon",icon:this.copied?"Check":"Copy",size:"xs","aria-label":s,hasBorder:false,onDsClick:this.copy})):null,this.feedbackEnabled?i("ds-tooltip",{label:"Good response",side:"top",size:"sm"},i("ds-button-unfilled",{variant:"icon",icon:this.feedback==="positive"?"ThumbsUpFilled":"ThumbsUp",size:"xs","aria-label":"Good response",hasBorder:false,activeFill:false,pressed:this.feedback==="positive",onDsChange:s=>this.changeFeedback("positive",s.detail)})):null,this.feedbackEnabled?i("ds-tooltip",{label:"Bad response",side:"top",size:"sm"},i("ds-button-unfilled",{variant:"icon",icon:this.feedback==="negative"?"ThumbsDownFilled":"ThumbsDown",size:"xs","aria-label":"Bad response",hasBorder:false,activeFill:false,pressed:this.feedback==="negative",onDsChange:s=>this.changeFeedback("negative",s.detail)})):null))}static get watchers(){return{copyText:[{handleCopyTextChange:0}]}}static get style(){return m()}},[2,"ds-message-actions",{copyText:[1,"copy-text"],feedbackEnabled:[4,"feedback-enabled"],feedback:[1],copied:[32]},undefined,{copyText:[{handleCopyTextChange:0}]}]);function b(){if(typeof customElements==="undefined"){return}const s=["ds-message-actions","ds-badge","ds-button-unfilled","ds-icon","ds-loader","ds-text","ds-tooltip"];s.forEach((s=>{switch(s){case"ds-message-actions":if(!customElements.get(o(s))){customElements.define(o(s),f)}break;case"ds-badge":if(!customElements.get(o(s))){d()}break;case"ds-button-unfilled":if(!customElements.get(o(s))){l()}break;case"ds-icon":if(!customElements.get(o(s))){c()}break;case"ds-loader":if(!customElements.get(o(s))){r()}break;case"ds-text":if(!customElements.get(o(s))){p()}break;case"ds-tooltip":if(!customElements.get(o(s))){h()}break}}))}b();const u=f;const g=b;export{u as DsMessageActions,g as defineCustomElement};
2
2
  //# sourceMappingURL=ds-message-actions.js.map
@@ -1,2 +1,2 @@
1
- import{p as e,H as s,c as o,h as r,a,t}from"./index.js";import{d as c}from"./p-CwdRaJER.js";import{d as i}from"./p-Dg6hnCc2.js";import{d}from"./p-D-J7GgjY.js";import{d as m}from"./p-pPtjNRqC.js";import{d as n}from"./p-0XTyQNRG.js";import{d as l}from"./p-D8OWhnID.js";import{d as p}from"./p-DvGrsLgt.js";const g=()=>`@media (forced-colors: active){.sc-ds-message-composer:root,.sc-ds-message-composer-h,.ds-forced-colors-scope.sc-ds-message-composer{--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-message-composer-h{display:block;width:100%;box-sizing:border-box;-webkit-user-select:none;user-select:none}.message-composer.sc-ds-message-composer{display:flex;flex-direction:column;gap:var(--dimension-space-050);width:100%;margin:0}.message-composer__attachments.sc-ds-message-composer:empty,.message-composer__tools.sc-ds-message-composer:empty,.message-composer__error-actions.sc-ds-message-composer:empty{display:none}.message-composer__error-support.sc-ds-message-composer,.message-composer__error-message.sc-ds-message-composer,.message-composer__error-actions.sc-ds-message-composer{display:flex;align-items:center}.message-composer__error-support.sc-ds-message-composer{justify-content:space-between;flex-wrap:wrap;gap:var(--dimension-space-075) var(--dimension-space-100);min-width:0;padding:var(--dimension-space-075) var(--dimension-space-100);background:var(--color-background-faint-negative)}.message-composer__error-message.sc-ds-message-composer{flex:1 1 var(--dimension-panel-width-xs);gap:var(--dimension-space-050);min-width:0;color:var(--color-foreground-bold-negative)}.message-composer__error-actions.sc-ds-message-composer{flex:0 1 auto;flex-wrap:wrap;gap:var(--dimension-space-050)}.message-composer__stack.sc-ds-message-composer{min-width:0}.message-composer--error.sc-ds-message-composer .message-composer__stack.sc-ds-message-composer{overflow:hidden;border:var(--dimension-stroke-width-012) solid var(--color-border-bold-negative);border-radius:var(--dimension-radius-050);background:var(--color-background-primary);box-shadow:var(--effect-elevation-elevated-md)}.message-composer__field.sc-ds-message-composer{display:flex;flex-direction:column;gap:var(--dimension-space-050);padding:var(--dimension-space-100);border-radius:var(--dimension-radius-050);background:var(--color-background-primary);box-shadow:var(--effect-elevation-elevated-md);overflow:hidden}.message-composer.sc-ds-message-composer:not(.message-composer--error) .message-composer__field.sc-ds-message-composer:focus-within{box-shadow:var(--effect-elevation-elevated-md), inset 0 0 0 var(--dimension-stroke-width-018) var(--color-border-bold-brand)}.message-composer--error.sc-ds-message-composer .message-composer__field.sc-ds-message-composer{border-radius:0;box-shadow:none}textarea.sc-ds-message-composer{field-sizing:content;width:100%;min-height:calc(var(--typography-lineheight-md) * 2 + var(--dimension-space-150));max-height:calc(var(--typography-lineheight-md) * 6 + var(--dimension-space-150));padding:var(--dimension-space-075);border:none;outline:none;resize:none;overflow-y:auto;box-sizing:border-box;background:transparent;color:var(--color-foreground-primary);font-family:var(--typography-font-family-ui);font-size:var(--typography-fontsize-md);line-height:var(--typography-lineheight-md);font-weight:var(--typography-weight-regular);letter-spacing:var(--typography-letterspacing-negative-half);-webkit-user-select:text;user-select:text}textarea.sc-ds-message-composer::placeholder{color:var(--color-foreground-secondary)}textarea.sc-ds-message-composer:focus::placeholder{color:var(--color-foreground-quaternary)}textarea.sc-ds-message-composer:focus,textarea.sc-ds-message-composer:focus-visible{outline:none}.message-composer__tools.sc-ds-message-composer{display:flex;align-items:center;gap:var(--dimension-space-050);min-height:var(--dimension-size-400)}.message-composer__controls.sc-ds-message-composer{display:flex;align-items:center;justify-content:space-between;gap:var(--dimension-space-050);width:100%;min-width:0}.message-composer__actions.sc-ds-message-composer{display:flex;align-items:center;gap:var(--dimension-space-100);flex:0 0 auto;margin-inline-start:auto}@media (forced-colors: active){.message-composer__field.sc-ds-message-composer{border:var(--dimension-stroke-width-012) solid var(--ds-forced-color-control-boundary);box-shadow:none}.message-composer--error.sc-ds-message-composer .message-composer__field.sc-ds-message-composer{border:0}.message-composer--error.sc-ds-message-composer .message-composer__stack.sc-ds-message-composer{border:var(--dimension-stroke-width-025) dashed var(--ds-forced-color-content);box-shadow:none}.message-composer__error-support.sc-ds-message-composer{border-block-end:var(--dimension-stroke-width-012) solid var(--ds-forced-color-content);background:var(--ds-forced-color-surface)}}`;let f=0;const h=e(class e extends s{constructor(e){super();if(e!==false){this.__registerHost()}this.dsInput=o(this,"dsInput",7);this.dsSubmit=o(this,"dsSubmit",7);this.dsStop=o(this,"dsStop",7);this.value="";this.placeholder="Write a message";this.label="Message";this.status="ready";this.isInactive=false;this.submitIntent="brand";this.errorId=`ds-message-composer-error-${++f}`;this.handleInput=e=>{this.value=e.target.value;this.dsInput.emit(this.value)};this.handleKeyDown=e=>{if(e.key!=="Enter"||e.shiftKey||e.isComposing)return;e.preventDefault();this.submit()};this.handleAction=()=>{if(this.streaming)this.dsStop.emit();else this.submit()}}async setFocus(){this.textarea?.focus()}get streaming(){return this.status==="submitted"||this.status==="streaming"}submit(){const e=this.value.trim();if(!e||this.isInactive||this.streaming)return;this.dsSubmit.emit({text:e})}render(){const e=this.status==="error";const s=this.errorMessage||"Message could not be sent.";const o=!this.streaming&&(this.isInactive||!this.value.trim());return r(a,{key:"b5f2fc58bbe5bf758567aed1d3e08364ae1428b6"},r("form",{key:"74525da3a570c022e2a996fca9c32fd3d0c44bcc",class:{"message-composer":true,"message-composer--error":e},"aria-busy":this.streaming?"true":undefined,onSubmit:e=>{e.preventDefault();this.submit()}},r("div",{key:"a40db00d85e4141b386b277b2f88b64b462125f2",class:"message-composer__attachments"},r("slot",{key:"db8b10ea9469aacb48c5bac7d6007ad65c7fed0a",name:"attachments"})),r("div",{key:"549233ad35d4d0c619f9a58dc27f96dc9ad6de0b",class:"message-composer__stack"},e?r("div",{class:"message-composer__error-support"},r("div",{id:this.errorId,class:"message-composer__error-message",role:"alert"},r("ds-icon",{name:"ExclamationTriangle",size:"xs",color:"inherit"}),r("ds-text",{variant:"text-body-small",color:"negative"},s)),r("div",{class:"message-composer__error-actions"},r("slot",{name:"error-actions"}))):null,r("div",{key:"f093404acfe8469822a0640c4c73a67fa2a03ce3",class:"message-composer__field"},r("textarea",{key:"1161ae734d2cb967125980d6ca4f967b6d5f11b2",ref:e=>{this.textarea=e},value:this.value,placeholder:this.placeholder,"aria-label":this.label,"aria-invalid":e?"true":undefined,"aria-describedby":e?this.errorId:undefined,disabled:this.isInactive,onInput:this.handleInput,onKeyDown:this.handleKeyDown}),r("div",{key:"3e5f32d5a0fc5e18872ac3e3309806a40dc65b0d",class:"message-composer__controls"},r("div",{key:"2b4bb931fdda4cf9f27dd9bd0d4139ea6d08be4f",class:"message-composer__tools"},r("slot",{key:"81246c9f186c528e3d6a2b4774ae54490650f4d3",name:"tools"})),r("div",{key:"8348079cf396a5d6a53b77c99dd74de8f7ff16a0",class:"message-composer__actions"},r("slot",{key:"accd8598c054639a3e2bf3aa77ab5c7ddc2da496",name:"actions"}),o?r("ds-tooltip",{label:"Send message",side:"top",size:"sm"},r("ds-button-unfilled",{class:"message-composer__action",variant:"icon",icon:"ArrowUp",size:"md",rounded:true,"aria-label":"Send message",hasBorder:true,isInactive:true,onDsClick:this.handleAction})):r("ds-tooltip",{label:this.streaming?"Stop response":"Send message",side:"top",size:"sm"},r("ds-button-filled",{class:"message-composer__action",variant:"icon",icon:this.streaming?"SquareFilled":"ArrowUp",intent:this.streaming?"brand":this.submitIntent,contrast:"bold",size:"md",rounded:true,"aria-label":this.streaming?"Stop response":"Send message",onDsClick:this.handleAction}))))))))}get el(){return this}static get style(){return g()}},[262,"ds-message-composer",{value:[1025],placeholder:[1],label:[1],status:[1],errorMessage:[1,"error-message"],isInactive:[4,"is-inactive"],submitIntent:[1,"submit-intent"],setFocus:[64]}]);function b(){if(typeof customElements==="undefined"){return}const e=["ds-message-composer","ds-badge","ds-button-filled","ds-button-unfilled","ds-icon","ds-loader","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-message-composer":if(!customElements.get(t(e))){customElements.define(t(e),h)}break;case"ds-badge":if(!customElements.get(t(e))){c()}break;case"ds-button-filled":if(!customElements.get(t(e))){i()}break;case"ds-button-unfilled":if(!customElements.get(t(e))){d()}break;case"ds-icon":if(!customElements.get(t(e))){m()}break;case"ds-loader":if(!customElements.get(t(e))){n()}break;case"ds-text":if(!customElements.get(t(e))){l()}break;case"ds-tooltip":if(!customElements.get(t(e))){p()}break}}))}b();const u=h;const v=b;export{u as DsMessageComposer,v as defineCustomElement};
1
+ import{p as e,H as s,c as o,h as r,a,t}from"./index.js";import{d as c}from"./p-CwdRaJER.js";import{d as i}from"./p-DVsGfz7J.js";import{d}from"./p-BqipGGua.js";import{d as m}from"./p-pPtjNRqC.js";import{d as n}from"./p-0XTyQNRG.js";import{d as l}from"./p-D8OWhnID.js";import{d as p}from"./p-DbW8S5qe.js";const g=()=>`@media (forced-colors: active){.sc-ds-message-composer:root,.sc-ds-message-composer-h,.ds-forced-colors-scope.sc-ds-message-composer{--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-message-composer-h{display:block;width:100%;box-sizing:border-box;-webkit-user-select:none;user-select:none}.message-composer.sc-ds-message-composer{display:flex;flex-direction:column;gap:var(--dimension-space-050);width:100%;margin:0}.message-composer__attachments.sc-ds-message-composer:empty,.message-composer__tools.sc-ds-message-composer:empty,.message-composer__error-actions.sc-ds-message-composer:empty{display:none}.message-composer__error-support.sc-ds-message-composer,.message-composer__error-message.sc-ds-message-composer,.message-composer__error-actions.sc-ds-message-composer{display:flex;align-items:center}.message-composer__error-support.sc-ds-message-composer{justify-content:space-between;flex-wrap:wrap;gap:var(--dimension-space-075) var(--dimension-space-100);min-width:0;padding:var(--dimension-space-075) var(--dimension-space-100);background:var(--color-background-faint-negative)}.message-composer__error-message.sc-ds-message-composer{flex:1 1 var(--dimension-panel-width-xs);gap:var(--dimension-space-050);min-width:0;color:var(--color-foreground-bold-negative)}.message-composer__error-actions.sc-ds-message-composer{flex:0 1 auto;flex-wrap:wrap;gap:var(--dimension-space-050)}.message-composer__stack.sc-ds-message-composer{min-width:0}.message-composer--error.sc-ds-message-composer .message-composer__stack.sc-ds-message-composer{overflow:hidden;border:var(--dimension-stroke-width-012) solid var(--color-border-bold-negative);border-radius:var(--dimension-radius-050);background:var(--color-background-primary);box-shadow:var(--effect-elevation-elevated-md)}.message-composer__field.sc-ds-message-composer{display:flex;flex-direction:column;gap:var(--dimension-space-050);padding:var(--dimension-space-100);border-radius:var(--dimension-radius-050);background:var(--color-background-primary);box-shadow:var(--effect-elevation-elevated-md);overflow:hidden}.message-composer.sc-ds-message-composer:not(.message-composer--error) .message-composer__field.sc-ds-message-composer:focus-within{box-shadow:var(--effect-elevation-elevated-md), inset 0 0 0 var(--dimension-stroke-width-018) var(--color-border-bold-brand)}.message-composer--error.sc-ds-message-composer .message-composer__field.sc-ds-message-composer{border-radius:0;box-shadow:none}textarea.sc-ds-message-composer{field-sizing:content;width:100%;min-height:calc(var(--typography-lineheight-md) * 2 + var(--dimension-space-150));max-height:calc(var(--typography-lineheight-md) * 6 + var(--dimension-space-150));padding:var(--dimension-space-075);border:none;outline:none;resize:none;overflow-y:auto;box-sizing:border-box;background:transparent;color:var(--color-foreground-primary);font-family:var(--typography-font-family-ui);font-size:var(--typography-fontsize-md);line-height:var(--typography-lineheight-md);font-weight:var(--typography-weight-regular);letter-spacing:var(--typography-letterspacing-negative-half);-webkit-user-select:text;user-select:text}textarea.sc-ds-message-composer::placeholder{color:var(--color-foreground-secondary)}textarea.sc-ds-message-composer:focus::placeholder{color:var(--color-foreground-quaternary)}textarea.sc-ds-message-composer:focus,textarea.sc-ds-message-composer:focus-visible{outline:none}.message-composer__tools.sc-ds-message-composer{display:flex;align-items:center;gap:var(--dimension-space-050);min-height:var(--dimension-size-400)}.message-composer__controls.sc-ds-message-composer{display:flex;align-items:center;justify-content:space-between;gap:var(--dimension-space-050);width:100%;min-width:0}.message-composer__actions.sc-ds-message-composer{display:flex;align-items:center;gap:var(--dimension-space-100);flex:0 0 auto;margin-inline-start:auto}@media (forced-colors: active){.message-composer__field.sc-ds-message-composer{border:var(--dimension-stroke-width-012) solid var(--ds-forced-color-control-boundary);box-shadow:none}.message-composer--error.sc-ds-message-composer .message-composer__field.sc-ds-message-composer{border:0}.message-composer--error.sc-ds-message-composer .message-composer__stack.sc-ds-message-composer{border:var(--dimension-stroke-width-025) dashed var(--ds-forced-color-content);box-shadow:none}.message-composer__error-support.sc-ds-message-composer{border-block-end:var(--dimension-stroke-width-012) solid var(--ds-forced-color-content);background:var(--ds-forced-color-surface)}}`;let f=0;const h=e(class e extends s{constructor(e){super();if(e!==false){this.__registerHost()}this.dsInput=o(this,"dsInput",7);this.dsSubmit=o(this,"dsSubmit",7);this.dsStop=o(this,"dsStop",7);this.value="";this.placeholder="Write a message";this.label="Message";this.status="ready";this.isInactive=false;this.submitIntent="brand";this.errorId=`ds-message-composer-error-${++f}`;this.handleInput=e=>{this.value=e.target.value;this.dsInput.emit(this.value)};this.handleKeyDown=e=>{if(e.key!=="Enter"||e.shiftKey||e.isComposing)return;e.preventDefault();this.submit()};this.handleAction=()=>{if(this.streaming)this.dsStop.emit();else this.submit()}}async setFocus(){this.textarea?.focus()}get streaming(){return this.status==="submitted"||this.status==="streaming"}submit(){const e=this.value.trim();if(!e||this.isInactive||this.streaming)return;this.dsSubmit.emit({text:e})}render(){const e=this.status==="error";const s=this.errorMessage||"Message could not be sent.";const o=!this.streaming&&(this.isInactive||!this.value.trim());return r(a,{key:"b5f2fc58bbe5bf758567aed1d3e08364ae1428b6"},r("form",{key:"74525da3a570c022e2a996fca9c32fd3d0c44bcc",class:{"message-composer":true,"message-composer--error":e},"aria-busy":this.streaming?"true":undefined,onSubmit:e=>{e.preventDefault();this.submit()}},r("div",{key:"a40db00d85e4141b386b277b2f88b64b462125f2",class:"message-composer__attachments"},r("slot",{key:"db8b10ea9469aacb48c5bac7d6007ad65c7fed0a",name:"attachments"})),r("div",{key:"549233ad35d4d0c619f9a58dc27f96dc9ad6de0b",class:"message-composer__stack"},e?r("div",{class:"message-composer__error-support"},r("div",{id:this.errorId,class:"message-composer__error-message",role:"alert"},r("ds-icon",{name:"ExclamationTriangle",size:"xs",color:"inherit"}),r("ds-text",{variant:"text-body-small",color:"negative"},s)),r("div",{class:"message-composer__error-actions"},r("slot",{name:"error-actions"}))):null,r("div",{key:"f093404acfe8469822a0640c4c73a67fa2a03ce3",class:"message-composer__field"},r("textarea",{key:"1161ae734d2cb967125980d6ca4f967b6d5f11b2",ref:e=>{this.textarea=e},value:this.value,placeholder:this.placeholder,"aria-label":this.label,"aria-invalid":e?"true":undefined,"aria-describedby":e?this.errorId:undefined,disabled:this.isInactive,onInput:this.handleInput,onKeyDown:this.handleKeyDown}),r("div",{key:"3e5f32d5a0fc5e18872ac3e3309806a40dc65b0d",class:"message-composer__controls"},r("div",{key:"2b4bb931fdda4cf9f27dd9bd0d4139ea6d08be4f",class:"message-composer__tools"},r("slot",{key:"81246c9f186c528e3d6a2b4774ae54490650f4d3",name:"tools"})),r("div",{key:"8348079cf396a5d6a53b77c99dd74de8f7ff16a0",class:"message-composer__actions"},r("slot",{key:"accd8598c054639a3e2bf3aa77ab5c7ddc2da496",name:"actions"}),o?r("ds-tooltip",{label:"Send message",side:"top",size:"sm"},r("ds-button-unfilled",{class:"message-composer__action",variant:"icon",icon:"ArrowUp",size:"md",rounded:true,"aria-label":"Send message",hasBorder:true,isInactive:true,onDsClick:this.handleAction})):r("ds-tooltip",{label:this.streaming?"Stop response":"Send message",side:"top",size:"sm"},r("ds-button-filled",{class:"message-composer__action",variant:"icon",icon:this.streaming?"SquareFilled":"ArrowUp",intent:this.streaming?"brand":this.submitIntent,contrast:"bold",size:"md",rounded:true,"aria-label":this.streaming?"Stop response":"Send message",onDsClick:this.handleAction}))))))))}get el(){return this}static get style(){return g()}},[262,"ds-message-composer",{value:[1025],placeholder:[1],label:[1],status:[1],errorMessage:[1,"error-message"],isInactive:[4,"is-inactive"],submitIntent:[1,"submit-intent"],setFocus:[64]}]);function b(){if(typeof customElements==="undefined"){return}const e=["ds-message-composer","ds-badge","ds-button-filled","ds-button-unfilled","ds-icon","ds-loader","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-message-composer":if(!customElements.get(t(e))){customElements.define(t(e),h)}break;case"ds-badge":if(!customElements.get(t(e))){c()}break;case"ds-button-filled":if(!customElements.get(t(e))){i()}break;case"ds-button-unfilled":if(!customElements.get(t(e))){d()}break;case"ds-icon":if(!customElements.get(t(e))){m()}break;case"ds-loader":if(!customElements.get(t(e))){n()}break;case"ds-text":if(!customElements.get(t(e))){l()}break;case"ds-tooltip":if(!customElements.get(t(e))){p()}break}}))}b();const u=h;const v=b;export{u as DsMessageComposer,v as defineCustomElement};
2
2
  //# sourceMappingURL=ds-message-composer.js.map
@@ -1,2 +1,2 @@
1
- import{p as e,H as s,c as t,h as i,a as r,t as a}from"./index.js";import{S as o}from"./p-DuCCuJKI.js";import{r as l}from"./p-ioGH5SoA.js";import{d as n}from"./p-CwdRaJER.js";import{d}from"./p-D-J7GgjY.js";import{d as c}from"./p-pPtjNRqC.js";import{d as h}from"./p-0XTyQNRG.js";import{d as f}from"./p-D8OWhnID.js";import{d as g}from"./p-DvGrsLgt.js";function m(e,s){if(!e.length)return false;if(!s.length)return true;const t=new Set(e);return!s.some((e=>t.has(e)))}function u(e,s){const t=new Set(s);for(const s of e){if(!t.has(s))e.delete(s)}}const v=()=>`@property --ds-scroll-edge-fade-top{syntax:'<length-percentage>';inherits:false;initial-value:0px}@property --ds-scroll-edge-fade-bottom{syntax:'<length-percentage>';inherits:false;initial-value:0px}@property --ds-scroll-edge-fade-left{syntax:'<length-percentage>';inherits:false;initial-value:0px}@property --ds-scroll-edge-fade-right{syntax:'<length-percentage>';inherits:false;initial-value:0px}@keyframes ds-scroll-edge-fade-reveal-top{from{--ds-scroll-edge-fade-top:0px}to{--ds-scroll-edge-fade-top:var(--ds-scroll-edge-fade-target-top)}}@keyframes ds-scroll-edge-fade-reveal-bottom{from{--ds-scroll-edge-fade-bottom:var(--ds-scroll-edge-fade-target-bottom)}to{--ds-scroll-edge-fade-bottom:0px}}@keyframes ds-scroll-edge-fade-reveal-left{from{--ds-scroll-edge-fade-left:0px}to{--ds-scroll-edge-fade-left:var(--ds-scroll-edge-fade-target-left)}}@keyframes ds-scroll-edge-fade-reveal-right{from{--ds-scroll-edge-fade-right:var(--ds-scroll-edge-fade-target-right)}to{--ds-scroll-edge-fade-right:0px}}.scroll-edge-fade.sc-ds-message-scroller{--ds-scroll-edge-fade-size:var(--dimension-size-600);--ds-scroll-edge-fade-reveal-distance:var(--dimension-size-800);--ds-scroll-edge-fade-target-top:0px;--ds-scroll-edge-fade-target-bottom:0px;--ds-scroll-edge-fade-target-left:0px;--ds-scroll-edge-fade-target-right:0px;--ds-scroll-edge-fade-top:var(--ds-scroll-edge-fade-target-top);--ds-scroll-edge-fade-bottom:var(--ds-scroll-edge-fade-target-bottom);--ds-scroll-edge-fade-left:var(--ds-scroll-edge-fade-target-left);--ds-scroll-edge-fade-right:var(--ds-scroll-edge-fade-target-right);--ds-scroll-edge-fade-block-mask:linear-gradient( to bottom, transparent 0, #000 var(--ds-scroll-edge-fade-top), #000 calc(100% - var(--ds-scroll-edge-fade-bottom)), transparent 100% );--ds-scroll-edge-fade-inline-mask:linear-gradient( to right, transparent 0, #000 var(--ds-scroll-edge-fade-left), #000 calc(100% - var(--ds-scroll-edge-fade-right)), transparent 100% );-webkit-mask-image:var(--ds-scroll-edge-fade-block-mask), var(--ds-scroll-edge-fade-inline-mask);mask-image:var(--ds-scroll-edge-fade-block-mask), var(--ds-scroll-edge-fade-inline-mask);-webkit-mask-composite:source-in;mask-composite:intersect;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%}.scroll-edge-fade--top.sc-ds-message-scroller{--ds-scroll-edge-fade-target-top:var(--ds-scroll-edge-fade-size)}.scroll-edge-fade--bottom.sc-ds-message-scroller{--ds-scroll-edge-fade-target-bottom:var(--ds-scroll-edge-fade-size)}.scroll-edge-fade--left.sc-ds-message-scroller{--ds-scroll-edge-fade-target-left:var(--ds-scroll-edge-fade-size)}.scroll-edge-fade--right.sc-ds-message-scroller{--ds-scroll-edge-fade-target-right:var(--ds-scroll-edge-fade-size)}.scroll-edge-fade--top-at-edge.sc-ds-message-scroller{--ds-scroll-edge-fade-target-top:0px}.scroll-edge-fade--bottom-at-edge.sc-ds-message-scroller{--ds-scroll-edge-fade-target-bottom:0px}.scroll-edge-fade--left-at-edge.sc-ds-message-scroller{--ds-scroll-edge-fade-target-left:0px}.scroll-edge-fade--right-at-edge.sc-ds-message-scroller{--ds-scroll-edge-fade-target-right:0px}@supports (animation-timeline: scroll()){.scroll-edge-fade--scroll-aware.sc-ds-message-scroller{animation-name:ds-scroll-edge-fade-reveal-top, ds-scroll-edge-fade-reveal-bottom, ds-scroll-edge-fade-reveal-left, ds-scroll-edge-fade-reveal-right;animation-duration:1ms;animation-timing-function:ease-in-out;animation-fill-mode:both;animation-timeline:scroll(self y), scroll(self y), scroll(self x), scroll(self x);animation-range:0 var(--ds-scroll-edge-fade-reveal-distance), calc(100% - var(--ds-scroll-edge-fade-reveal-distance)) 100%, 0 var(--ds-scroll-edge-fade-reveal-distance), calc(100% - var(--ds-scroll-edge-fade-reveal-distance)) 100%}@media (prefers-reduced-motion: reduce){.scroll-edge-fade--scroll-aware.sc-ds-message-scroller{animation:none}}}.scroll-edge-fade--at-end.sc-ds-message-scroller,.scroll-edge-fade--hidden.sc-ds-message-scroller{-webkit-mask-image:none;mask-image:none}.scroll-edge-fade--block-window.sc-ds-message-scroller{--ds-scroll-edge-fade-window-start:100%;--ds-scroll-edge-fade-window-end:100%;-webkit-mask-image:linear-gradient( to bottom, #000 0, #000 var(--ds-scroll-edge-fade-window-start), transparent var(--ds-scroll-edge-fade-window-end) );mask-image:linear-gradient( to bottom, #000 0, #000 var(--ds-scroll-edge-fade-window-start), transparent var(--ds-scroll-edge-fade-window-end) );-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}`;const p=()=>`.ds-control-elevation.sc-ds-message-scroller-h,.ds-control-elevation.sc-ds-message-scroller{position:relative;overflow:visible;box-shadow:var(--ds-control-elevation-shadow, none)}.ds-control-elevation.sc-ds-message-scroller-h::after,.ds-control-elevation.sc-ds-message-scroller::after{content:'';position:absolute;inset:0;z-index:4;border-radius:inherit;box-shadow:var(--ds-control-elevation-highlight, none);pointer-events:none}.ds-control-elevation--sm.sc-ds-message-scroller-h,.ds-control-elevation--sm.sc-ds-message-scroller{--ds-control-elevation-shadow:var(--effect-shadow-elevated-sm);--ds-control-elevation-highlight:var(--effect-highlight-elevated-sm)}.ds-control-elevation--md.sc-ds-message-scroller-h,.ds-control-elevation--md.sc-ds-message-scroller{--ds-control-elevation-shadow:var(--effect-shadow-elevated-md);--ds-control-elevation-highlight:var(--effect-highlight-elevated-md)}.ds-control-elevation--floating.sc-ds-message-scroller-h,.ds-control-elevation--floating.sc-ds-message-scroller{--ds-control-elevation-shadow:var(--effect-shadow-elevated-floating);--ds-control-elevation-highlight:var(--effect-highlight-elevated-floating)}.ds-control-elevation--press-scale.sc-ds-message-scroller{--ds-control-press-active-scale:var(--dimension-scale-default);transition:scale var(--effect-motion-short-2)}.ds-control-elevation--press-scale[data-ds-press-active].sc-ds-message-scroller{scale:var(--dimension-scale-subtle)}@media (prefers-reduced-motion: reduce){.ds-control-elevation--press-scale.sc-ds-message-scroller,.ds-control-elevation--press-scale[data-ds-press-active].sc-ds-message-scroller{scale:none;transition:none}}.sc-ds-message-scroller-h{--ds-message-scroller-anchor-offset:var(--dimension-space-800);display:block;width:100%;height:100%;min-height:0;box-sizing:border-box}.message-scroller.sc-ds-message-scroller{position:relative;width:100%;height:100%;min-height:0}.message-scroller__viewport.sc-ds-message-scroller{width:100%;height:100%;min-height:0;overflow:auto;overflow-anchor:none;overscroll-behavior:contain;box-sizing:border-box}.message-scroller__viewport.sc-ds-message-scroller:focus-visible{outline:var(--dimension-stroke-width-025) solid var(--color-border-bold-brand);outline-offset:calc(-1 * var(--dimension-stroke-width-025))}.message-scroller__content.sc-ds-message-scroller{display:flex;flex-direction:column;gap:var(--dimension-space-300);width:100%;max-width:var(--ds-message-scroller-content-max-width, var(--dimension-panel-width-2xl));min-height:100%;margin-inline:auto;padding-block-start:var(--dimension-space-200);padding-inline:var(--dimension-space-200);padding-block-end:max( calc(var(--dimension-space-200) + var(--ds-scroll-overlay-block-size, 0px)), var(--ds-message-scroller-turn-clearance, 0px) );box-sizing:border-box}.message-scroller__overlay.sc-ds-message-scroller{position:absolute;right:0;bottom:0;left:0;z-index:var(--dimension-z-index-floating)}.message-scroller__overlay-stack.sc-ds-message-scroller{display:grid;width:100%}.message-scroller__interaction.sc-ds-message-scroller,.message-scroller__overlay-content.sc-ds-message-scroller{min-width:0}.message-scroller__control.sc-ds-message-scroller{position:absolute;bottom:calc(var(--ds-scroll-overlay-content-block-size, 0px) + var(--dimension-space-200));left:50%;z-index:var(--dimension-z-index-floating);display:flex;align-items:center;justify-content:center;border-radius:var(--dimension-radius-half);background:var(--color-background-transparent);transform:translateX(-50%);-webkit-backdrop-filter:blur(var(--effect-blur-sm));backdrop-filter:blur(var(--effect-blur-sm))}`;const b=24;const k=e(class e extends s{constructor(e){super();if(e!==false){this.__registerHost()}this.dsReachStart=t(this,"dsReachStart",7);this.busy=false;this.autoFollow=true;this.defaultPosition="last-anchor";this.messagesLabel="Messages";this.showScrollToLatest=false;this.following=true;this.followReleased=false;this.releasePendingAtLiveEdge=false;this.atStart=false;this.programmatic=false;this.transcriptChildren=[];this.knownTranscriptElements=new Set;this.knownTurnAnchors=new Set;this.turnClearance=0;this.prependReconciliation=0;this.turnPositionGeneration=0;this.defaultPositionGeneration=0;this.transcriptResetPending=false;this.hasLoaded=false;this.handleTranscriptChange=()=>{const e=this.getTranscriptChildren();const s=this.transcriptChildren;const t=m(s,e)||this.transcriptResetPending&&e.length>0;if(t){this.invalidateTranscriptWork();this.resetTranscriptTracking();this.resetTranscriptPositionState();this.transcriptChildren=e;this.trackTranscript(e);this.transcriptResetPending=e.length===0;this.rememberFirstChildTop();this.scrollOverlayController?.sync();if(e.length)this.scheduleDefaultPosition();return}const i=this.knownTranscriptElements.size>0;const r=new Set(this.knownTranscriptElements);const a=[...e].reverse().find(((s,t)=>{if(!s.matches("ds-message[scroll-anchor]")||this.knownTurnAnchors.has(s)){return false}const i=e.length-t-1;return e.slice(i+1).every((e=>!this.knownTranscriptElements.has(e)))}));this.trackTranscript(e);this.pruneTranscriptTracking(e);if(!s.length){this.transcriptChildren=e;if(a&&i){this.scheduleNewTurnPosition(a)}return}const o=e.findIndex((e=>r.has(e)));const l=e.filter((e=>!r.has(e)));const n=e.length>s.length&&s.every(((t,i)=>e[e.length-s.length+i]===t))||!a&&l.length>0&&o>0&&l.every((s=>e.indexOf(s)<o));this.transcriptChildren=e;if(n){if(this.viewport){const e=this.activeTurnAnchor?.isConnected?this.activeTurnAnchor:s[0];const t=this.activeTurnAnchor?.isConnected?this.activeTurnAnchorViewportTop:this.firstChildViewportTop;if(e&&t!==undefined){this.reconcilePrependPosition(e,t);this.schedulePrependReconciliation(e,t,l)}}this.rememberFirstChildTop();this.rememberActiveTurnAnchorTop();this.scrollOverlayController?.sync();return}if(a){this.scheduleNewTurnPosition(a)}};this.handleTranscriptSlotChange=()=>this.handleTranscriptChange();this.handleScroll=()=>{if(!this.viewport)return;this.scrollOverlayController?.sync();this.rememberFirstChildTop();this.rememberActiveTurnAnchorTop();if(this.programmatic)return;const e=this.isAtLiveEdge();if(this.releasePendingAtLiveEdge&&e){this.following=false;this.followReleased=true;this.showScrollToLatest=false;return}this.releasePendingAtLiveEdge=false;this.following=e;this.followReleased=!this.following;this.showScrollToLatest=!this.following;const s=this.viewport.scrollTop<=b;if(s&&!this.atStart)this.dsReachStart.emit();this.atStart=s};this.releaseFollow=()=>{this.prependReconciliation+=1;this.releasePendingAtLiveEdge=this.isAtLiveEdge();this.following=false;this.followReleased=true;this.showScrollToLatest=!this.releasePendingAtLiveEdge};this.handleSelectionChange=()=>{const e=document.getSelection();if(e&&!e.isCollapsed&&e.anchorNode&&this.el.contains(e.anchorNode)){this.releaseFollow()}}}componentDidLoad(){this.hasLoaded=true;this.seedTranscriptBaseline();this.connectObservers();this.scheduleDefaultPosition();document.removeEventListener("selectionchange",this.handleSelectionChange);document.addEventListener("selectionchange",this.handleSelectionChange)}connectedCallback(){if(!this.hasLoaded)return;this.seedTranscriptBaseline();this.connectObservers();this.scheduleDefaultPosition();document.removeEventListener("selectionchange",this.handleSelectionChange);document.addEventListener("selectionchange",this.handleSelectionChange)}disconnectedCallback(){this.invalidateTranscriptWork();this.scrollOverlayController?.disconnect();this.scrollOverlayController=undefined;this.mutationObserver?.disconnect();this.mutationObserver=undefined;this.resetTranscriptTracking();this.resetTranscriptPositionState();this.transcriptResetPending=false;document.removeEventListener("selectionchange",this.handleSelectionChange)}async scrollToMessage(e){const s=Array.from(this.el.querySelectorAll("ds-message")).find((s=>s.messageId===e||s.getAttribute("message-id")===e));if(!s)return false;this.releasePendingAtLiveEdge=false;this.following=false;this.followReleased=true;this.showScrollToLatest=true;s.scrollIntoView({block:"start",behavior:this.motionBehavior()});return true}async scrollToStart(){this.releasePendingAtLiveEdge=false;this.scrollTo(0);this.following=false;this.followReleased=true;this.showScrollToLatest=Boolean(this.viewport&&this.viewport.scrollHeight>this.viewport.clientHeight)}async scrollToEnd(){this.releasePendingAtLiveEdge=false;this.following=true;this.followReleased=false;this.showScrollToLatest=false;this.scrollTo(this.viewport?.scrollHeight??0)}motionBehavior(){return matchMedia("(prefers-reduced-motion: reduce)").matches?"auto":"smooth"}scrollTo(e){if(!this.viewport)return;this.programmatic=true;const s=this.motionBehavior();this.viewport.scrollTo({top:e,behavior:s});if(this.programmaticTimer)clearTimeout(this.programmaticTimer);this.programmaticTimer=setTimeout((()=>{this.programmatic=false;this.programmaticTimer=undefined;if(this.following){this.viewport.scrollTop=e;this.showScrollToLatest=false}}),s==="smooth"?600:0)}invalidateTranscriptWork(){this.prependReconciliation+=1;this.turnPositionGeneration+=1;this.defaultPositionGeneration+=1;if(this.programmaticTimer)clearTimeout(this.programmaticTimer);this.programmaticTimer=undefined;this.programmatic=false}clearActiveTurnAnchor(){this.activeTurnAnchor=undefined;this.activeTurnAnchorViewportTop=undefined;this.turnClearance=0;this.el.style.removeProperty("--ds-message-scroller-turn-clearance")}resetTranscriptTracking(){this.transcriptChildren=[];this.knownTranscriptElements.clear();this.knownTurnAnchors.clear();this.firstChildViewportTop=undefined;this.clearActiveTurnAnchor()}resetTranscriptPositionState(){this.following=true;this.followReleased=false;this.releasePendingAtLiveEdge=false;this.atStart=false;this.showScrollToLatest=false}trackTranscript(e){e.forEach((e=>{this.knownTranscriptElements.add(e);if(e.matches("ds-message[scroll-anchor]")){this.knownTurnAnchors.add(e)}}))}seedTranscriptBaseline(){this.resetTranscriptTracking();this.transcriptChildren=this.getTranscriptChildren();this.trackTranscript(this.transcriptChildren);this.transcriptResetPending=false;this.rememberFirstChildTop()}pruneTranscriptTracking(e){u(this.knownTranscriptElements,e);u(this.knownTurnAnchors,e);if(this.activeTurnAnchor&&!e.includes(this.activeTurnAnchor)){this.clearActiveTurnAnchor()}}scheduleDefaultPosition(){const e=++this.defaultPositionGeneration;requestAnimationFrame((()=>{if(e!==this.defaultPositionGeneration||!this.el.isConnected)return;this.applyDefaultPosition()}))}connectObservers(){if(!this.viewport||!this.content||!this.overlay)return;this.scrollOverlayController?.disconnect();this.mutationObserver?.disconnect();this.scrollOverlayController=new o({host:this.el,viewport:this.viewport,content:this.content,overlay:this.overlay,overlayContentSelector:".message-scroller__overlay-stack",onGeometryChange:()=>this.handleContentGrowth()});this.scrollOverlayController.connect();this.mutationObserver=new MutationObserver((()=>{this.handleTranscriptChange();this.handleContentGrowth()}));this.mutationObserver.observe(this.el,{childList:true,subtree:true,characterData:true})}handleContentGrowth(){if(!this.viewport)return;this.syncTurnClearance();const e=this.viewport.scrollHeight;if(this.autoFollow&&this.following&&!this.followReleased){this.viewport.scrollTop=e}if(this.releasePendingAtLiveEdge&&!this.isAtLiveEdge()){this.releasePendingAtLiveEdge=false}this.showScrollToLatest=!this.following&&!this.isAtLiveEdge();this.scrollOverlayController?.sync()}rememberFirstChildTop(){if(!this.viewport)return;const e=this.getTranscriptChildren()[0];this.firstChildViewportTop=e?e.getBoundingClientRect().top-this.viewport.getBoundingClientRect().top:undefined}getTranscriptChildren(){const e=this.transcriptSlot?.assignedElements()??[];const t=e.filter((e=>e instanceof s&&(e.matches("ds-message")||e.matches("ds-agent-response"))));const i=Array.from(this.el.querySelectorAll("ds-message, ds-agent-response")).filter((e=>{if(e.closest(".message-scroller__interaction, .message-scroller__overlay-content")){return false}if(e.matches("ds-agent-response"))return true;return!e.closest("ds-agent-response")}));return i.length>t.length?i:t}reconcilePrependPosition(e,s){if(!this.viewport||!e.isConnected)return;const t=e.getBoundingClientRect().top-this.viewport.getBoundingClientRect().top;this.viewport.scrollTop+=t-s}schedulePrependReconciliation(e,s,t){const i=++this.prependReconciliation;const r=t.flatMap((e=>[e,...Array.from(e.querySelectorAll("*"))])).map((e=>{const s=e.componentOnReady;return s?s.call(e).catch((()=>undefined)):null})).filter((e=>Boolean(e)));void Promise.all(r).then((()=>{requestAnimationFrame((()=>{if(i!==this.prependReconciliation)return;this.reconcilePrependPosition(e,s);requestAnimationFrame((()=>{if(i!==this.prependReconciliation)return;this.reconcilePrependPosition(e,s);this.rememberFirstChildTop();this.rememberActiveTurnAnchorTop();this.scrollOverlayController?.sync()}))}))}))}scheduleNewTurnPosition(e){const s=++this.turnPositionGeneration;requestAnimationFrame((()=>{if(s!==this.turnPositionGeneration||!e.isConnected||!this.viewport){return}this.positionNewTurn(e,s)}))}positionNewTurn(e,s){if(s!==this.turnPositionGeneration||!this.viewport||!e.isConnected)return;this.activeTurnAnchor=e;this.syncTurnClearance();requestAnimationFrame((()=>{if(s!==this.turnPositionGeneration)return;this.finishPositionNewTurn(e,s)}))}finishPositionNewTurn(e,s){if(s!==this.turnPositionGeneration||!this.viewport||!e.isConnected){return}const t=this.viewport.getBoundingClientRect();const i=e.getBoundingClientRect().top-t.top+this.viewport.scrollTop;const r=getComputedStyle(this.el).getPropertyValue("--ds-message-scroller-anchor-offset").trim();const a=l(r,"var(--dimension-space-800)");const o=Math.max(this.viewport.scrollHeight-this.viewport.clientHeight,0);const n=Math.min(Math.max(i-a,0),o);this.following=o-n<=b;this.followReleased=!this.following;this.showScrollToLatest=!this.following;this.programmatic=true;this.viewport.scrollTop=n;requestAnimationFrame((()=>{if(s!==this.turnPositionGeneration)return;this.programmatic=false;this.following=this.isAtLiveEdge();this.followReleased=!this.following;this.showScrollToLatest=!this.following;this.rememberFirstChildTop();this.rememberActiveTurnAnchorTop()}));this.scrollOverlayController?.sync()}rememberActiveTurnAnchorTop(){if(!this.viewport||!this.activeTurnAnchor?.isConnected)return;this.activeTurnAnchorViewportTop=this.activeTurnAnchor.getBoundingClientRect().top-this.viewport.getBoundingClientRect().top}syncTurnClearance(){if(!this.viewport||!this.activeTurnAnchor?.isConnected)return;const e=this.getTranscriptChildren();const s=e[e.length-1];if(!s)return;const t=this.activeTurnAnchor.getBoundingClientRect();const i=s.getBoundingClientRect();const r=getComputedStyle(this.el).getPropertyValue("--ds-message-scroller-anchor-offset").trim();const a=l(r,"var(--dimension-space-800)");const o=Math.max(i.bottom-t.top,0);const n=Math.max(Math.ceil(this.viewport.clientHeight-a-o),0);if(n===this.turnClearance)return;this.turnClearance=n;this.el.style.setProperty("--ds-message-scroller-turn-clearance",`${n}px`)}applyDefaultPosition(){if(!this.viewport)return;this.releasePendingAtLiveEdge=false;if(this.defaultPosition==="start"){this.viewport.scrollTop=0;this.following=false;this.followReleased=true;this.showScrollToLatest=this.viewport.scrollHeight>this.viewport.clientHeight;this.scrollOverlayController?.sync();return}if(this.defaultPosition==="last-anchor"){const e=this.el.querySelectorAll("ds-message[scroll-anchor]");const s=e.item(e.length-1);if(s){s.scrollIntoView({block:"start"});this.following=this.isAtLiveEdge();this.followReleased=!this.following;this.showScrollToLatest=!this.following;this.scrollOverlayController?.sync();return}}this.viewport.scrollTop=this.viewport.scrollHeight;this.following=true;this.followReleased=false;this.showScrollToLatest=false;this.scrollOverlayController?.sync()}isAtLiveEdge(){if(!this.viewport)return true;return this.viewport.scrollHeight-this.viewport.clientHeight-this.viewport.scrollTop<=b}render(){return i(r,{key:"8be3e264353694549447c0cb1c6a2f4eac09464b"},i("div",{key:"3d10fa5311a7151b6e25b5c10a0ff04179d265aa",class:"message-scroller"},i("div",{key:"4840e785d6a21f4758b08250a75b70e1149008b3",class:"message-scroller__viewport",ref:e=>{this.viewport=e},role:"region","aria-label":this.messagesLabel,tabIndex:0,onScroll:this.handleScroll,onPointerDown:e=>{if(e.pointerType==="touch")this.releaseFollow()},onWheel:this.releaseFollow,onKeyDown:e=>{if(["ArrowUp","ArrowDown","PageUp","PageDown","Home","End"," "].includes(e.key)){this.releaseFollow()}}},i("div",{key:"373ac850cf6701fb1992ae972db952396c32046f",class:"message-scroller__content scroll-edge-fade--block-window",ref:e=>{this.content=e},role:"log","aria-live":"polite","aria-relevant":"additions","aria-busy":this.busy?"true":undefined},i("slot",{key:"67fd7986485c8eb8cf89f8b9c95c6c770e53029e",ref:e=>{this.transcriptSlot=e},onSlotchange:this.handleTranscriptSlotChange}))),i("div",{key:"932419600931ed6d4b0102e8cc2370326aee4963",class:"message-scroller__overlay",ref:e=>{this.overlay=e}},i("div",{key:"95b4d83ef84fb773b337116dacc914b9882fe199",class:"message-scroller__overlay-stack"},i("div",{key:"11d117ff87de44408bae938bad2595002cf4cdb4",class:"message-scroller__interaction"},i("slot",{key:"5fe2fab2a3248061e2c73513ed1fa7ad21012ea1",name:"interaction"})),i("div",{key:"655c4b085faab4cfbe35972448c0b6452c64d10f",class:"message-scroller__overlay-content"},i("slot",{key:"806efef607bf7fae477f7311031c1df97a112d74",name:"overlay"})))),this.showScrollToLatest?i("div",{class:"message-scroller__control ds-control-elevation ds-control-elevation--md ds-control-elevation--press-scale"},i("ds-tooltip",{label:"Scroll to latest message",side:"top",size:"sm"},i("ds-button-unfilled",{variant:"icon",icon:"ChevronDown",size:"md",rounded:true,hasBorder:false,"aria-label":"Scroll to latest message",onDsClick:()=>void this.scrollToEnd()}))):null))}get el(){return this}static get style(){return v()+p()}},[262,"ds-message-scroller",{busy:[4],autoFollow:[4,"auto-follow"],defaultPosition:[1,"default-position"],messagesLabel:[1,"messages-label"],showScrollToLatest:[32],scrollToMessage:[64],scrollToStart:[64],scrollToEnd:[64]}]);function w(){if(typeof customElements==="undefined"){return}const e=["ds-message-scroller","ds-badge","ds-button-unfilled","ds-icon","ds-loader","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-message-scroller":if(!customElements.get(a(e))){customElements.define(a(e),k)}break;case"ds-badge":if(!customElements.get(a(e))){n()}break;case"ds-button-unfilled":if(!customElements.get(a(e))){d()}break;case"ds-icon":if(!customElements.get(a(e))){c()}break;case"ds-loader":if(!customElements.get(a(e))){h()}break;case"ds-text":if(!customElements.get(a(e))){f()}break;case"ds-tooltip":if(!customElements.get(a(e))){g()}break}}))}w();const y=k;const x=w;export{y as DsMessageScroller,x as defineCustomElement};
1
+ import{p as e,H as s,c as t,h as i,a as r,t as a}from"./index.js";import{S as o}from"./p-DuCCuJKI.js";import{r as l}from"./p-ioGH5SoA.js";import{d as n}from"./p-CwdRaJER.js";import{d}from"./p-BqipGGua.js";import{d as c}from"./p-pPtjNRqC.js";import{d as h}from"./p-0XTyQNRG.js";import{d as f}from"./p-D8OWhnID.js";import{d as g}from"./p-DbW8S5qe.js";function m(e,s){if(!e.length)return false;if(!s.length)return true;const t=new Set(e);return!s.some((e=>t.has(e)))}function u(e,s){const t=new Set(s);for(const s of e){if(!t.has(s))e.delete(s)}}const v=()=>`@property --ds-scroll-edge-fade-top{syntax:'<length-percentage>';inherits:false;initial-value:0px}@property --ds-scroll-edge-fade-bottom{syntax:'<length-percentage>';inherits:false;initial-value:0px}@property --ds-scroll-edge-fade-left{syntax:'<length-percentage>';inherits:false;initial-value:0px}@property --ds-scroll-edge-fade-right{syntax:'<length-percentage>';inherits:false;initial-value:0px}@keyframes ds-scroll-edge-fade-reveal-top{from{--ds-scroll-edge-fade-top:0px}to{--ds-scroll-edge-fade-top:var(--ds-scroll-edge-fade-target-top)}}@keyframes ds-scroll-edge-fade-reveal-bottom{from{--ds-scroll-edge-fade-bottom:var(--ds-scroll-edge-fade-target-bottom)}to{--ds-scroll-edge-fade-bottom:0px}}@keyframes ds-scroll-edge-fade-reveal-left{from{--ds-scroll-edge-fade-left:0px}to{--ds-scroll-edge-fade-left:var(--ds-scroll-edge-fade-target-left)}}@keyframes ds-scroll-edge-fade-reveal-right{from{--ds-scroll-edge-fade-right:var(--ds-scroll-edge-fade-target-right)}to{--ds-scroll-edge-fade-right:0px}}.scroll-edge-fade.sc-ds-message-scroller{--ds-scroll-edge-fade-size:var(--dimension-size-600);--ds-scroll-edge-fade-reveal-distance:var(--dimension-size-800);--ds-scroll-edge-fade-target-top:0px;--ds-scroll-edge-fade-target-bottom:0px;--ds-scroll-edge-fade-target-left:0px;--ds-scroll-edge-fade-target-right:0px;--ds-scroll-edge-fade-top:var(--ds-scroll-edge-fade-target-top);--ds-scroll-edge-fade-bottom:var(--ds-scroll-edge-fade-target-bottom);--ds-scroll-edge-fade-left:var(--ds-scroll-edge-fade-target-left);--ds-scroll-edge-fade-right:var(--ds-scroll-edge-fade-target-right);--ds-scroll-edge-fade-block-mask:linear-gradient( to bottom, transparent 0, #000 var(--ds-scroll-edge-fade-top), #000 calc(100% - var(--ds-scroll-edge-fade-bottom)), transparent 100% );--ds-scroll-edge-fade-inline-mask:linear-gradient( to right, transparent 0, #000 var(--ds-scroll-edge-fade-left), #000 calc(100% - var(--ds-scroll-edge-fade-right)), transparent 100% );-webkit-mask-image:var(--ds-scroll-edge-fade-block-mask), var(--ds-scroll-edge-fade-inline-mask);mask-image:var(--ds-scroll-edge-fade-block-mask), var(--ds-scroll-edge-fade-inline-mask);-webkit-mask-composite:source-in;mask-composite:intersect;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%}.scroll-edge-fade--top.sc-ds-message-scroller{--ds-scroll-edge-fade-target-top:var(--ds-scroll-edge-fade-size)}.scroll-edge-fade--bottom.sc-ds-message-scroller{--ds-scroll-edge-fade-target-bottom:var(--ds-scroll-edge-fade-size)}.scroll-edge-fade--left.sc-ds-message-scroller{--ds-scroll-edge-fade-target-left:var(--ds-scroll-edge-fade-size)}.scroll-edge-fade--right.sc-ds-message-scroller{--ds-scroll-edge-fade-target-right:var(--ds-scroll-edge-fade-size)}.scroll-edge-fade--top-at-edge.sc-ds-message-scroller{--ds-scroll-edge-fade-target-top:0px}.scroll-edge-fade--bottom-at-edge.sc-ds-message-scroller{--ds-scroll-edge-fade-target-bottom:0px}.scroll-edge-fade--left-at-edge.sc-ds-message-scroller{--ds-scroll-edge-fade-target-left:0px}.scroll-edge-fade--right-at-edge.sc-ds-message-scroller{--ds-scroll-edge-fade-target-right:0px}@supports (animation-timeline: scroll()){.scroll-edge-fade--scroll-aware.sc-ds-message-scroller{animation-name:ds-scroll-edge-fade-reveal-top, ds-scroll-edge-fade-reveal-bottom, ds-scroll-edge-fade-reveal-left, ds-scroll-edge-fade-reveal-right;animation-duration:1ms;animation-timing-function:ease-in-out;animation-fill-mode:both;animation-timeline:scroll(self y), scroll(self y), scroll(self x), scroll(self x);animation-range:0 var(--ds-scroll-edge-fade-reveal-distance), calc(100% - var(--ds-scroll-edge-fade-reveal-distance)) 100%, 0 var(--ds-scroll-edge-fade-reveal-distance), calc(100% - var(--ds-scroll-edge-fade-reveal-distance)) 100%}@media (prefers-reduced-motion: reduce){.scroll-edge-fade--scroll-aware.sc-ds-message-scroller{animation:none}}}.scroll-edge-fade--at-end.sc-ds-message-scroller,.scroll-edge-fade--hidden.sc-ds-message-scroller{-webkit-mask-image:none;mask-image:none}.scroll-edge-fade--block-window.sc-ds-message-scroller{--ds-scroll-edge-fade-window-start:100%;--ds-scroll-edge-fade-window-end:100%;-webkit-mask-image:linear-gradient( to bottom, #000 0, #000 var(--ds-scroll-edge-fade-window-start), transparent var(--ds-scroll-edge-fade-window-end) );mask-image:linear-gradient( to bottom, #000 0, #000 var(--ds-scroll-edge-fade-window-start), transparent var(--ds-scroll-edge-fade-window-end) );-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}`;const p=()=>`.ds-control-elevation.sc-ds-message-scroller-h,.ds-control-elevation.sc-ds-message-scroller{position:relative;overflow:visible;box-shadow:var(--ds-control-elevation-shadow, none)}.ds-control-elevation.sc-ds-message-scroller-h::after,.ds-control-elevation.sc-ds-message-scroller::after{content:'';position:absolute;inset:0;z-index:4;border-radius:inherit;box-shadow:var(--ds-control-elevation-highlight, none);pointer-events:none}.ds-control-elevation--sm.sc-ds-message-scroller-h,.ds-control-elevation--sm.sc-ds-message-scroller{--ds-control-elevation-shadow:var(--effect-shadow-elevated-sm);--ds-control-elevation-highlight:var(--effect-highlight-elevated-sm)}.ds-control-elevation--md.sc-ds-message-scroller-h,.ds-control-elevation--md.sc-ds-message-scroller{--ds-control-elevation-shadow:var(--effect-shadow-elevated-md);--ds-control-elevation-highlight:var(--effect-highlight-elevated-md)}.ds-control-elevation--floating.sc-ds-message-scroller-h,.ds-control-elevation--floating.sc-ds-message-scroller{--ds-control-elevation-shadow:var(--effect-shadow-elevated-floating);--ds-control-elevation-highlight:var(--effect-highlight-elevated-floating)}.ds-control-elevation--press-scale.sc-ds-message-scroller{--ds-control-press-active-scale:var(--dimension-scale-default);transition:scale var(--effect-motion-short-2)}.ds-control-elevation--press-scale[data-ds-press-active].sc-ds-message-scroller{scale:var(--dimension-scale-subtle)}@media (prefers-reduced-motion: reduce){.ds-control-elevation--press-scale.sc-ds-message-scroller,.ds-control-elevation--press-scale[data-ds-press-active].sc-ds-message-scroller{scale:none;transition:none}}.sc-ds-message-scroller-h{--ds-message-scroller-anchor-offset:var(--dimension-space-800);display:block;width:100%;height:100%;min-height:0;box-sizing:border-box}.message-scroller.sc-ds-message-scroller{position:relative;width:100%;height:100%;min-height:0}.message-scroller__viewport.sc-ds-message-scroller{width:100%;height:100%;min-height:0;overflow:auto;overflow-anchor:none;overscroll-behavior:contain;box-sizing:border-box}.message-scroller__viewport.sc-ds-message-scroller:focus-visible{outline:var(--dimension-stroke-width-025) solid var(--color-border-bold-brand);outline-offset:calc(-1 * var(--dimension-stroke-width-025))}.message-scroller__content.sc-ds-message-scroller{display:flex;flex-direction:column;gap:var(--dimension-space-300);width:100%;max-width:var(--ds-message-scroller-content-max-width, var(--dimension-panel-width-2xl));min-height:100%;margin-inline:auto;padding-block-start:var(--dimension-space-200);padding-inline:var(--dimension-space-200);padding-block-end:max( calc(var(--dimension-space-200) + var(--ds-scroll-overlay-block-size, 0px)), var(--ds-message-scroller-turn-clearance, 0px) );box-sizing:border-box}.message-scroller__overlay.sc-ds-message-scroller{position:absolute;right:0;bottom:0;left:0;z-index:var(--dimension-z-index-floating)}.message-scroller__overlay-stack.sc-ds-message-scroller{display:grid;width:100%}.message-scroller__interaction.sc-ds-message-scroller,.message-scroller__overlay-content.sc-ds-message-scroller{min-width:0}.message-scroller__control.sc-ds-message-scroller{position:absolute;bottom:calc(var(--ds-scroll-overlay-content-block-size, 0px) + var(--dimension-space-200));left:50%;z-index:var(--dimension-z-index-floating);display:flex;align-items:center;justify-content:center;border-radius:var(--dimension-radius-half);background:var(--color-background-transparent);transform:translateX(-50%);-webkit-backdrop-filter:blur(var(--effect-blur-sm));backdrop-filter:blur(var(--effect-blur-sm))}`;const b=24;const k=e(class e extends s{constructor(e){super();if(e!==false){this.__registerHost()}this.dsReachStart=t(this,"dsReachStart",7);this.busy=false;this.autoFollow=true;this.defaultPosition="last-anchor";this.messagesLabel="Messages";this.showScrollToLatest=false;this.following=true;this.followReleased=false;this.releasePendingAtLiveEdge=false;this.atStart=false;this.programmatic=false;this.transcriptChildren=[];this.knownTranscriptElements=new Set;this.knownTurnAnchors=new Set;this.turnClearance=0;this.prependReconciliation=0;this.turnPositionGeneration=0;this.defaultPositionGeneration=0;this.transcriptResetPending=false;this.hasLoaded=false;this.handleTranscriptChange=()=>{const e=this.getTranscriptChildren();const s=this.transcriptChildren;const t=m(s,e)||this.transcriptResetPending&&e.length>0;if(t){this.invalidateTranscriptWork();this.resetTranscriptTracking();this.resetTranscriptPositionState();this.transcriptChildren=e;this.trackTranscript(e);this.transcriptResetPending=e.length===0;this.rememberFirstChildTop();this.scrollOverlayController?.sync();if(e.length)this.scheduleDefaultPosition();return}const i=this.knownTranscriptElements.size>0;const r=new Set(this.knownTranscriptElements);const a=[...e].reverse().find(((s,t)=>{if(!s.matches("ds-message[scroll-anchor]")||this.knownTurnAnchors.has(s)){return false}const i=e.length-t-1;return e.slice(i+1).every((e=>!this.knownTranscriptElements.has(e)))}));this.trackTranscript(e);this.pruneTranscriptTracking(e);if(!s.length){this.transcriptChildren=e;if(a&&i){this.scheduleNewTurnPosition(a)}return}const o=e.findIndex((e=>r.has(e)));const l=e.filter((e=>!r.has(e)));const n=e.length>s.length&&s.every(((t,i)=>e[e.length-s.length+i]===t))||!a&&l.length>0&&o>0&&l.every((s=>e.indexOf(s)<o));this.transcriptChildren=e;if(n){if(this.viewport){const e=this.activeTurnAnchor?.isConnected?this.activeTurnAnchor:s[0];const t=this.activeTurnAnchor?.isConnected?this.activeTurnAnchorViewportTop:this.firstChildViewportTop;if(e&&t!==undefined){this.reconcilePrependPosition(e,t);this.schedulePrependReconciliation(e,t,l)}}this.rememberFirstChildTop();this.rememberActiveTurnAnchorTop();this.scrollOverlayController?.sync();return}if(a){this.scheduleNewTurnPosition(a)}};this.handleTranscriptSlotChange=()=>this.handleTranscriptChange();this.handleScroll=()=>{if(!this.viewport)return;this.scrollOverlayController?.sync();this.rememberFirstChildTop();this.rememberActiveTurnAnchorTop();if(this.programmatic)return;const e=this.isAtLiveEdge();if(this.releasePendingAtLiveEdge&&e){this.following=false;this.followReleased=true;this.showScrollToLatest=false;return}this.releasePendingAtLiveEdge=false;this.following=e;this.followReleased=!this.following;this.showScrollToLatest=!this.following;const s=this.viewport.scrollTop<=b;if(s&&!this.atStart)this.dsReachStart.emit();this.atStart=s};this.releaseFollow=()=>{this.prependReconciliation+=1;this.releasePendingAtLiveEdge=this.isAtLiveEdge();this.following=false;this.followReleased=true;this.showScrollToLatest=!this.releasePendingAtLiveEdge};this.handleSelectionChange=()=>{const e=document.getSelection();if(e&&!e.isCollapsed&&e.anchorNode&&this.el.contains(e.anchorNode)){this.releaseFollow()}}}componentDidLoad(){this.hasLoaded=true;this.seedTranscriptBaseline();this.connectObservers();this.scheduleDefaultPosition();document.removeEventListener("selectionchange",this.handleSelectionChange);document.addEventListener("selectionchange",this.handleSelectionChange)}connectedCallback(){if(!this.hasLoaded)return;this.seedTranscriptBaseline();this.connectObservers();this.scheduleDefaultPosition();document.removeEventListener("selectionchange",this.handleSelectionChange);document.addEventListener("selectionchange",this.handleSelectionChange)}disconnectedCallback(){this.invalidateTranscriptWork();this.scrollOverlayController?.disconnect();this.scrollOverlayController=undefined;this.mutationObserver?.disconnect();this.mutationObserver=undefined;this.resetTranscriptTracking();this.resetTranscriptPositionState();this.transcriptResetPending=false;document.removeEventListener("selectionchange",this.handleSelectionChange)}async scrollToMessage(e){const s=Array.from(this.el.querySelectorAll("ds-message")).find((s=>s.messageId===e||s.getAttribute("message-id")===e));if(!s)return false;this.releasePendingAtLiveEdge=false;this.following=false;this.followReleased=true;this.showScrollToLatest=true;s.scrollIntoView({block:"start",behavior:this.motionBehavior()});return true}async scrollToStart(){this.releasePendingAtLiveEdge=false;this.scrollTo(0);this.following=false;this.followReleased=true;this.showScrollToLatest=Boolean(this.viewport&&this.viewport.scrollHeight>this.viewport.clientHeight)}async scrollToEnd(){this.releasePendingAtLiveEdge=false;this.following=true;this.followReleased=false;this.showScrollToLatest=false;this.scrollTo(this.viewport?.scrollHeight??0)}motionBehavior(){return matchMedia("(prefers-reduced-motion: reduce)").matches?"auto":"smooth"}scrollTo(e){if(!this.viewport)return;this.programmatic=true;const s=this.motionBehavior();this.viewport.scrollTo({top:e,behavior:s});if(this.programmaticTimer)clearTimeout(this.programmaticTimer);this.programmaticTimer=setTimeout((()=>{this.programmatic=false;this.programmaticTimer=undefined;if(this.following){this.viewport.scrollTop=e;this.showScrollToLatest=false}}),s==="smooth"?600:0)}invalidateTranscriptWork(){this.prependReconciliation+=1;this.turnPositionGeneration+=1;this.defaultPositionGeneration+=1;if(this.programmaticTimer)clearTimeout(this.programmaticTimer);this.programmaticTimer=undefined;this.programmatic=false}clearActiveTurnAnchor(){this.activeTurnAnchor=undefined;this.activeTurnAnchorViewportTop=undefined;this.turnClearance=0;this.el.style.removeProperty("--ds-message-scroller-turn-clearance")}resetTranscriptTracking(){this.transcriptChildren=[];this.knownTranscriptElements.clear();this.knownTurnAnchors.clear();this.firstChildViewportTop=undefined;this.clearActiveTurnAnchor()}resetTranscriptPositionState(){this.following=true;this.followReleased=false;this.releasePendingAtLiveEdge=false;this.atStart=false;this.showScrollToLatest=false}trackTranscript(e){e.forEach((e=>{this.knownTranscriptElements.add(e);if(e.matches("ds-message[scroll-anchor]")){this.knownTurnAnchors.add(e)}}))}seedTranscriptBaseline(){this.resetTranscriptTracking();this.transcriptChildren=this.getTranscriptChildren();this.trackTranscript(this.transcriptChildren);this.transcriptResetPending=false;this.rememberFirstChildTop()}pruneTranscriptTracking(e){u(this.knownTranscriptElements,e);u(this.knownTurnAnchors,e);if(this.activeTurnAnchor&&!e.includes(this.activeTurnAnchor)){this.clearActiveTurnAnchor()}}scheduleDefaultPosition(){const e=++this.defaultPositionGeneration;requestAnimationFrame((()=>{if(e!==this.defaultPositionGeneration||!this.el.isConnected)return;this.applyDefaultPosition()}))}connectObservers(){if(!this.viewport||!this.content||!this.overlay)return;this.scrollOverlayController?.disconnect();this.mutationObserver?.disconnect();this.scrollOverlayController=new o({host:this.el,viewport:this.viewport,content:this.content,overlay:this.overlay,overlayContentSelector:".message-scroller__overlay-stack",onGeometryChange:()=>this.handleContentGrowth()});this.scrollOverlayController.connect();this.mutationObserver=new MutationObserver((()=>{this.handleTranscriptChange();this.handleContentGrowth()}));this.mutationObserver.observe(this.el,{childList:true,subtree:true,characterData:true})}handleContentGrowth(){if(!this.viewport)return;this.syncTurnClearance();const e=this.viewport.scrollHeight;if(this.autoFollow&&this.following&&!this.followReleased){this.viewport.scrollTop=e}if(this.releasePendingAtLiveEdge&&!this.isAtLiveEdge()){this.releasePendingAtLiveEdge=false}this.showScrollToLatest=!this.following&&!this.isAtLiveEdge();this.scrollOverlayController?.sync()}rememberFirstChildTop(){if(!this.viewport)return;const e=this.getTranscriptChildren()[0];this.firstChildViewportTop=e?e.getBoundingClientRect().top-this.viewport.getBoundingClientRect().top:undefined}getTranscriptChildren(){const e=this.transcriptSlot?.assignedElements()??[];const t=e.filter((e=>e instanceof s&&(e.matches("ds-message")||e.matches("ds-agent-response"))));const i=Array.from(this.el.querySelectorAll("ds-message, ds-agent-response")).filter((e=>{if(e.closest(".message-scroller__interaction, .message-scroller__overlay-content")){return false}if(e.matches("ds-agent-response"))return true;return!e.closest("ds-agent-response")}));return i.length>t.length?i:t}reconcilePrependPosition(e,s){if(!this.viewport||!e.isConnected)return;const t=e.getBoundingClientRect().top-this.viewport.getBoundingClientRect().top;this.viewport.scrollTop+=t-s}schedulePrependReconciliation(e,s,t){const i=++this.prependReconciliation;const r=t.flatMap((e=>[e,...Array.from(e.querySelectorAll("*"))])).map((e=>{const s=e.componentOnReady;return s?s.call(e).catch((()=>undefined)):null})).filter((e=>Boolean(e)));void Promise.all(r).then((()=>{requestAnimationFrame((()=>{if(i!==this.prependReconciliation)return;this.reconcilePrependPosition(e,s);requestAnimationFrame((()=>{if(i!==this.prependReconciliation)return;this.reconcilePrependPosition(e,s);this.rememberFirstChildTop();this.rememberActiveTurnAnchorTop();this.scrollOverlayController?.sync()}))}))}))}scheduleNewTurnPosition(e){const s=++this.turnPositionGeneration;requestAnimationFrame((()=>{if(s!==this.turnPositionGeneration||!e.isConnected||!this.viewport){return}this.positionNewTurn(e,s)}))}positionNewTurn(e,s){if(s!==this.turnPositionGeneration||!this.viewport||!e.isConnected)return;this.activeTurnAnchor=e;this.syncTurnClearance();requestAnimationFrame((()=>{if(s!==this.turnPositionGeneration)return;this.finishPositionNewTurn(e,s)}))}finishPositionNewTurn(e,s){if(s!==this.turnPositionGeneration||!this.viewport||!e.isConnected){return}const t=this.viewport.getBoundingClientRect();const i=e.getBoundingClientRect().top-t.top+this.viewport.scrollTop;const r=getComputedStyle(this.el).getPropertyValue("--ds-message-scroller-anchor-offset").trim();const a=l(r,"var(--dimension-space-800)");const o=Math.max(this.viewport.scrollHeight-this.viewport.clientHeight,0);const n=Math.min(Math.max(i-a,0),o);this.following=o-n<=b;this.followReleased=!this.following;this.showScrollToLatest=!this.following;this.programmatic=true;this.viewport.scrollTop=n;requestAnimationFrame((()=>{if(s!==this.turnPositionGeneration)return;this.programmatic=false;this.following=this.isAtLiveEdge();this.followReleased=!this.following;this.showScrollToLatest=!this.following;this.rememberFirstChildTop();this.rememberActiveTurnAnchorTop()}));this.scrollOverlayController?.sync()}rememberActiveTurnAnchorTop(){if(!this.viewport||!this.activeTurnAnchor?.isConnected)return;this.activeTurnAnchorViewportTop=this.activeTurnAnchor.getBoundingClientRect().top-this.viewport.getBoundingClientRect().top}syncTurnClearance(){if(!this.viewport||!this.activeTurnAnchor?.isConnected)return;const e=this.getTranscriptChildren();const s=e[e.length-1];if(!s)return;const t=this.activeTurnAnchor.getBoundingClientRect();const i=s.getBoundingClientRect();const r=getComputedStyle(this.el).getPropertyValue("--ds-message-scroller-anchor-offset").trim();const a=l(r,"var(--dimension-space-800)");const o=Math.max(i.bottom-t.top,0);const n=Math.max(Math.ceil(this.viewport.clientHeight-a-o),0);if(n===this.turnClearance)return;this.turnClearance=n;this.el.style.setProperty("--ds-message-scroller-turn-clearance",`${n}px`)}applyDefaultPosition(){if(!this.viewport)return;this.releasePendingAtLiveEdge=false;if(this.defaultPosition==="start"){this.viewport.scrollTop=0;this.following=false;this.followReleased=true;this.showScrollToLatest=this.viewport.scrollHeight>this.viewport.clientHeight;this.scrollOverlayController?.sync();return}if(this.defaultPosition==="last-anchor"){const e=this.el.querySelectorAll("ds-message[scroll-anchor]");const s=e.item(e.length-1);if(s){s.scrollIntoView({block:"start"});this.following=this.isAtLiveEdge();this.followReleased=!this.following;this.showScrollToLatest=!this.following;this.scrollOverlayController?.sync();return}}this.viewport.scrollTop=this.viewport.scrollHeight;this.following=true;this.followReleased=false;this.showScrollToLatest=false;this.scrollOverlayController?.sync()}isAtLiveEdge(){if(!this.viewport)return true;return this.viewport.scrollHeight-this.viewport.clientHeight-this.viewport.scrollTop<=b}render(){return i(r,{key:"8be3e264353694549447c0cb1c6a2f4eac09464b"},i("div",{key:"3d10fa5311a7151b6e25b5c10a0ff04179d265aa",class:"message-scroller"},i("div",{key:"4840e785d6a21f4758b08250a75b70e1149008b3",class:"message-scroller__viewport",ref:e=>{this.viewport=e},role:"region","aria-label":this.messagesLabel,tabIndex:0,onScroll:this.handleScroll,onPointerDown:e=>{if(e.pointerType==="touch")this.releaseFollow()},onWheel:this.releaseFollow,onKeyDown:e=>{if(["ArrowUp","ArrowDown","PageUp","PageDown","Home","End"," "].includes(e.key)){this.releaseFollow()}}},i("div",{key:"373ac850cf6701fb1992ae972db952396c32046f",class:"message-scroller__content scroll-edge-fade--block-window",ref:e=>{this.content=e},role:"log","aria-live":"polite","aria-relevant":"additions","aria-busy":this.busy?"true":undefined},i("slot",{key:"67fd7986485c8eb8cf89f8b9c95c6c770e53029e",ref:e=>{this.transcriptSlot=e},onSlotchange:this.handleTranscriptSlotChange}))),i("div",{key:"932419600931ed6d4b0102e8cc2370326aee4963",class:"message-scroller__overlay",ref:e=>{this.overlay=e}},i("div",{key:"95b4d83ef84fb773b337116dacc914b9882fe199",class:"message-scroller__overlay-stack"},i("div",{key:"11d117ff87de44408bae938bad2595002cf4cdb4",class:"message-scroller__interaction"},i("slot",{key:"5fe2fab2a3248061e2c73513ed1fa7ad21012ea1",name:"interaction"})),i("div",{key:"655c4b085faab4cfbe35972448c0b6452c64d10f",class:"message-scroller__overlay-content"},i("slot",{key:"806efef607bf7fae477f7311031c1df97a112d74",name:"overlay"})))),this.showScrollToLatest?i("div",{class:"message-scroller__control ds-control-elevation ds-control-elevation--md ds-control-elevation--press-scale"},i("ds-tooltip",{label:"Scroll to latest message",side:"top",size:"sm"},i("ds-button-unfilled",{variant:"icon",icon:"ChevronDown",size:"md",rounded:true,hasBorder:false,"aria-label":"Scroll to latest message",onDsClick:()=>void this.scrollToEnd()}))):null))}get el(){return this}static get style(){return v()+p()}},[262,"ds-message-scroller",{busy:[4],autoFollow:[4,"auto-follow"],defaultPosition:[1,"default-position"],messagesLabel:[1,"messages-label"],showScrollToLatest:[32],scrollToMessage:[64],scrollToStart:[64],scrollToEnd:[64]}]);function w(){if(typeof customElements==="undefined"){return}const e=["ds-message-scroller","ds-badge","ds-button-unfilled","ds-icon","ds-loader","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-message-scroller":if(!customElements.get(a(e))){customElements.define(a(e),k)}break;case"ds-badge":if(!customElements.get(a(e))){n()}break;case"ds-button-unfilled":if(!customElements.get(a(e))){d()}break;case"ds-icon":if(!customElements.get(a(e))){c()}break;case"ds-loader":if(!customElements.get(a(e))){h()}break;case"ds-text":if(!customElements.get(a(e))){f()}break;case"ds-tooltip":if(!customElements.get(a(e))){g()}break}}))}w();const y=k;const x=w;export{y as DsMessageScroller,x as defineCustomElement};
2
2
  //# sourceMappingURL=ds-message-scroller.js.map
@@ -1,2 +1,2 @@
1
- import{M as o,d as s}from"./p-D9_iDlkT.js";const t=o;const p=s;export{t as DsMobileHeader,p as defineCustomElement};
1
+ import{M as o,d as s}from"./p-CUYLGe5d.js";const t=o;const p=s;export{t as DsMobileHeader,p as defineCustomElement};
2
2
  //# sourceMappingURL=ds-mobile-header.js.map
@@ -1,2 +1,2 @@
1
- import{M as o,d as s}from"./p-C5BBIDVm.js";const t=o;const m=s;export{t as DsMobileSectionSwitcher,m as defineCustomElement};
1
+ import{M as o,d as s}from"./p-CIMyD_6H.js";const t=o;const p=s;export{t as DsMobileSectionSwitcher,p as defineCustomElement};
2
2
  //# sourceMappingURL=ds-mobile-section-switcher.js.map
@@ -1,2 +1,2 @@
1
- import{M as o,d as s}from"./p-DR_8IPn9.js";const t=o;const n=s;export{t as DsMobileSheetNav,n as defineCustomElement};
1
+ import{M as s,d as o}from"./p-KA8srEed.js";const r=s;const t=o;export{r as DsMobileSheetNav,t as defineCustomElement};
2
2
  //# sourceMappingURL=ds-mobile-sheet-nav.js.map
@@ -1,2 +1,2 @@
1
- import{M as o,d as s}from"./p-BGSG6xIS.js";const t=o;const p=s;export{t as DsModal,p as defineCustomElement};
1
+ import{M as s,d as o}from"./p-DYtVsnDS.js";const t=s;const n=o;export{t as DsModal,n as defineCustomElement};
2
2
  //# sourceMappingURL=ds-modal.js.map
@@ -1,2 +1,2 @@
1
- import{P as o,d as s}from"./p-DjbT9kKm.js";const t=o;const m=s;export{t as DsPagination,m as defineCustomElement};
1
+ import{P as o,d as s}from"./p-wXKIVUTn.js";const t=o;const n=s;export{t as DsPagination,n as defineCustomElement};
2
2
  //# sourceMappingURL=ds-pagination.js.map
@@ -1,2 +1,2 @@
1
- import{P as o,d as s}from"./p--STJbKuN.js";const t=o;const p=s;export{t as DsPanelNav,p as defineCustomElement};
1
+ import{P as o,d as s}from"./p-B3o9zn3Y.js";const t=o;const n=s;export{t as DsPanelNav,n as defineCustomElement};
2
2
  //# sourceMappingURL=ds-panel-nav.js.map
@@ -1,2 +1,2 @@
1
- import{P as o,d as s}from"./p-C_9VGgPf.js";const t=o;const p=s;export{t as DsPanelToolHeader,p as defineCustomElement};
1
+ import{P as o,d as s}from"./p-DP07JCed.js";const t=o;const p=s;export{t as DsPanelToolHeader,p as defineCustomElement};
2
2
  //# sourceMappingURL=ds-panel-tool-header.js.map