@ds-mo/ui 15.3.0 → 15.4.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 (430) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +1 -1
  3. package/dist/agent.json +506 -31
  4. package/dist/angular/ds-checkbox-group.d.ts +12 -0
  5. package/dist/angular/ds-checkbox-group.js +38 -0
  6. package/dist/angular/ds-checkbox.d.ts +1 -1
  7. package/dist/angular/ds-checkbox.js +3 -3
  8. package/dist/angular/ds-inline-banner-settings.d.ts +12 -0
  9. package/dist/angular/ds-inline-banner-settings.js +38 -0
  10. package/dist/angular/ds-radio.d.ts +1 -1
  11. package/dist/angular/ds-radio.js +3 -3
  12. package/dist/angular/ds-setting-row-checkbox.d.ts +12 -0
  13. package/dist/angular/ds-setting-row-checkbox.js +38 -0
  14. package/dist/angular/ds-setting-row-radio.d.ts +12 -0
  15. package/dist/angular/ds-setting-row-radio.js +38 -0
  16. package/dist/angular/ds-setting-row-toggle.d.ts +18 -0
  17. package/dist/angular/{ds-setting-row.js → ds-setting-row-toggle.js} +12 -12
  18. package/dist/angular/index.d.ts +1 -1
  19. package/dist/angular/index.js +5 -1
  20. package/dist/angular/proxies.d.ts +5 -1
  21. package/dist/angular/proxies.js +5 -1
  22. package/dist/components/ds-agent-activity.js +1 -1
  23. package/dist/components/ds-agent-questionnaire.js +1 -1
  24. package/dist/components/ds-agent-response.js +1 -1
  25. package/dist/components/ds-agent-response.js.map +1 -1
  26. package/dist/components/ds-agent-source-list.js +1 -1
  27. package/dist/components/ds-agent-tool-call.js +1 -1
  28. package/dist/components/ds-attachment-list.js +1 -1
  29. package/dist/components/ds-badge.js +1 -1
  30. package/dist/components/ds-banner.js +1 -1
  31. package/dist/components/ds-bar-action.js +1 -1
  32. package/dist/components/ds-bar-nav.js +1 -1
  33. package/dist/components/ds-bar-page-title.js +1 -1
  34. package/dist/components/ds-bar-title.js +1 -1
  35. package/dist/components/ds-bar-workflow.js +1 -1
  36. package/dist/components/ds-breadcrumb.js +1 -1
  37. package/dist/components/ds-button-filled.js +1 -1
  38. package/dist/components/ds-button-inverted.js +1 -1
  39. package/dist/components/ds-button-inverted.js.map +1 -1
  40. package/dist/components/ds-button-unfilled.js +1 -1
  41. package/dist/components/ds-calendar.js +1 -1
  42. package/dist/components/ds-card-action-center.js +1 -1
  43. package/dist/components/ds-card-action-center.js.map +1 -1
  44. package/dist/components/ds-card-chart.js +1 -1
  45. package/dist/components/ds-card-navigation.js +1 -1
  46. package/dist/components/ds-card-navigation.js.map +1 -1
  47. package/dist/components/ds-card-overview.js +1 -1
  48. package/dist/components/ds-card-overview.js.map +1 -1
  49. package/dist/components/ds-card-setting.js +1 -1
  50. package/dist/components/ds-card-setting.js.map +1 -1
  51. package/dist/components/ds-card-settings-scope.js +1 -1
  52. package/dist/components/ds-card-settings-scope.js.map +1 -1
  53. package/dist/components/ds-chart-legend.js +1 -1
  54. package/dist/components/ds-chart-legend.js.map +1 -1
  55. package/dist/components/ds-chart.js +1 -1
  56. package/dist/components/{ds-setting-row.d.ts → ds-checkbox-group.d.ts} +4 -4
  57. package/dist/components/ds-checkbox-group.js +2 -0
  58. package/dist/components/ds-checkbox-group.js.map +1 -0
  59. package/dist/components/ds-checkbox.js +1 -1
  60. package/dist/components/ds-chip.js +1 -1
  61. package/dist/components/ds-code-block.js +1 -1
  62. package/dist/components/ds-conversation-list-item.js +1 -1
  63. package/dist/components/ds-conversation-list-item.js.map +1 -1
  64. package/dist/components/ds-conversation-list-section.js +1 -1
  65. package/dist/components/ds-conversation-list.js +1 -1
  66. package/dist/components/ds-data-customize.js +1 -1
  67. package/dist/components/ds-data-filter.js +1 -1
  68. package/dist/components/ds-data-group.js +1 -1
  69. package/dist/components/ds-data-preferences.js +1 -1
  70. package/dist/components/ds-data-saved-views.js +1 -1
  71. package/dist/components/ds-data-search.js +1 -1
  72. package/dist/components/ds-data-search.js.map +1 -1
  73. package/dist/components/ds-data-sort.js +1 -1
  74. package/dist/components/ds-data-toolbar.js +1 -1
  75. package/dist/components/ds-divider.js +1 -1
  76. package/dist/components/ds-empty-state.js +1 -1
  77. package/dist/components/ds-field.js +1 -1
  78. package/dist/components/ds-filter-menu.js +1 -1
  79. package/dist/components/ds-inline-banner-settings.d.ts +11 -0
  80. package/dist/components/ds-inline-banner-settings.js +2 -0
  81. package/dist/components/ds-inline-banner-settings.js.map +1 -0
  82. package/dist/components/ds-input-date.js +1 -1
  83. package/dist/components/ds-input-date.js.map +1 -1
  84. package/dist/components/ds-input-time.js +1 -1
  85. package/dist/components/ds-input-time.js.map +1 -1
  86. package/dist/components/ds-input.js +1 -1
  87. package/dist/components/ds-map-cluster-marker.js +1 -1
  88. package/dist/components/ds-map-entity-marker.js +1 -1
  89. package/dist/components/ds-markdown.js +1 -1
  90. package/dist/components/ds-menu.js +1 -1
  91. package/dist/components/ds-message-actions.js +1 -1
  92. package/dist/components/ds-message-bubble.js +1 -1
  93. package/dist/components/ds-message-bubble.js.map +1 -1
  94. package/dist/components/ds-message-composer.js +1 -1
  95. package/dist/components/ds-message-composer.js.map +1 -1
  96. package/dist/components/ds-message-scroller.js +1 -1
  97. package/dist/components/ds-message.js +1 -1
  98. package/dist/components/ds-mobile-bar-nav.js +1 -1
  99. package/dist/components/ds-mobile-header.js +1 -1
  100. package/dist/components/ds-mobile-section-switcher.js +1 -1
  101. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  102. package/dist/components/ds-modal.js +1 -1
  103. package/dist/components/ds-pagination.js +1 -1
  104. package/dist/components/ds-panel-nav.js +1 -1
  105. package/dist/components/ds-panel-sub-nav.js +1 -1
  106. package/dist/components/ds-panel-sub-nav.js.map +1 -1
  107. package/dist/components/ds-panel-tool-header.js +1 -1
  108. package/dist/components/ds-panel-tool-search.js +1 -1
  109. package/dist/components/ds-panel-tool-search.js.map +1 -1
  110. package/dist/components/ds-panel-tools.js +1 -1
  111. package/dist/components/ds-paper-texture.js +1 -1
  112. package/dist/components/ds-radio-tile.js +1 -1
  113. package/dist/components/ds-radio-tile.js.map +1 -1
  114. package/dist/components/ds-radio.js +1 -1
  115. package/dist/components/ds-score.js +1 -1
  116. package/dist/components/ds-scroll-overlay.js +1 -1
  117. package/dist/components/ds-scroll-overlay.js.map +1 -1
  118. package/dist/components/ds-select.js +1 -1
  119. package/dist/components/ds-setting-row-checkbox.d.ts +11 -0
  120. package/dist/components/ds-setting-row-checkbox.js +2 -0
  121. package/dist/components/ds-setting-row-checkbox.js.map +1 -0
  122. package/dist/components/ds-setting-row-radio.d.ts +11 -0
  123. package/dist/components/ds-setting-row-radio.js +2 -0
  124. package/dist/components/ds-setting-row-radio.js.map +1 -0
  125. package/dist/components/ds-setting-row-toggle.d.ts +11 -0
  126. package/dist/components/ds-setting-row-toggle.js +2 -0
  127. package/dist/components/ds-setting-row-toggle.js.map +1 -0
  128. package/dist/components/ds-shell-app.js +1 -1
  129. package/dist/components/ds-shell-app.js.map +1 -1
  130. package/dist/components/ds-shell-page.js +1 -1
  131. package/dist/components/ds-shell-tools.js +1 -1
  132. package/dist/components/ds-skeleton.js +1 -1
  133. package/dist/components/ds-slider.js +1 -1
  134. package/dist/components/ds-swatch-picker.js +1 -1
  135. package/dist/components/ds-switch.js +1 -1
  136. package/dist/components/ds-tab-group.js +1 -1
  137. package/dist/components/ds-table.js +1 -1
  138. package/dist/components/ds-table.js.map +1 -1
  139. package/dist/components/ds-tag.js +1 -1
  140. package/dist/components/ds-text.js +1 -1
  141. package/dist/components/ds-textarea.js +1 -1
  142. package/dist/components/ds-textarea.js.map +1 -1
  143. package/dist/components/ds-time-picker.js +1 -1
  144. package/dist/components/ds-toast.js +1 -1
  145. package/dist/components/ds-tooltip-chart.js +1 -1
  146. package/dist/components/ds-tooltip.js +1 -1
  147. package/dist/components/ds-typing-indicator.js +1 -1
  148. package/dist/components/p-7TVdPhGR.js +2 -0
  149. package/dist/components/{p-DHapI2sf.js.map → p-7TVdPhGR.js.map} +1 -1
  150. package/dist/components/{p-7V1AhetH.js → p-B0BQCVkq.js} +2 -2
  151. package/dist/components/{p-Co5MiPNa.js → p-B0EpvBDs.js} +2 -2
  152. package/dist/components/{p-DFkw6wrS.js → p-B39iJO8F.js} +2 -2
  153. package/dist/components/p-B9TM6FqC.js +2 -0
  154. package/dist/components/{p-p_MwknM3.js.map → p-B9TM6FqC.js.map} +1 -1
  155. package/dist/components/{p-AmT4GlhM.js → p-B9y6azEw.js} +2 -2
  156. package/dist/components/p-BDdlJZyL.js +2 -0
  157. package/dist/components/{p-cuZva5tl.js.map → p-BDdlJZyL.js.map} +1 -1
  158. package/dist/components/{p-CrL9wxZg.js → p-BERXvOCf.js} +2 -2
  159. package/dist/components/{p-AM_ht6Im.js → p-BFHpU-uU.js} +2 -2
  160. package/dist/components/{p-B-HOVYoH.js → p-BQspV5U7.js} +2 -2
  161. package/dist/components/p-BWSIw8AQ.js +2 -0
  162. package/dist/components/p-BWSIw8AQ.js.map +1 -0
  163. package/dist/components/p-BhjqYTiY.js +2 -0
  164. package/dist/components/p-BhjqYTiY.js.map +1 -0
  165. package/dist/components/{p-C_gJD8l3.js → p-Bk3poU91.js} +2 -2
  166. package/dist/components/{p-Gb-vTuXr.js → p-BnuNaXR2.js} +2 -2
  167. package/dist/components/p-BwdnVqAY.js +2 -0
  168. package/dist/components/{p-BHI4LcGK.js.map → p-BwdnVqAY.js.map} +1 -1
  169. package/dist/components/p-C4huuwed.js +2 -0
  170. package/dist/components/{p-tJaC01aE.js.map → p-C4huuwed.js.map} +1 -1
  171. package/dist/components/{p-BsM37Prt.js → p-C8V4lkVy.js} +2 -2
  172. package/dist/components/p-CJ1NnOEW.js +2 -0
  173. package/dist/components/p-CJ1NnOEW.js.map +1 -0
  174. package/dist/components/p-CPamUzaj.js +2 -0
  175. package/dist/components/{p-BSuMDPaV.js.map → p-CPamUzaj.js.map} +1 -1
  176. package/dist/components/{p-BU1B6NW8.js → p-CUDocY23.js} +2 -2
  177. package/dist/components/{p-BU1B6NW8.js.map → p-CUDocY23.js.map} +1 -1
  178. package/dist/components/p-CX6ZxUQT.js +2 -0
  179. package/dist/components/p-CX6ZxUQT.js.map +1 -0
  180. package/dist/components/{p-C-c8SJ00.js → p-CZNZTcYS.js} +2 -2
  181. package/dist/components/{p-DQPzqcYR.js → p-CbCN9ew9.js} +2 -2
  182. package/dist/components/p-CeXf9-X3.js.map +1 -1
  183. package/dist/components/p-Cgn-BORA.js +2 -0
  184. package/dist/components/p-Cgn-BORA.js.map +1 -0
  185. package/dist/components/{p-CzQ_JF6A.js → p-Co1rUdOR.js} +2 -2
  186. package/dist/components/p-Co1rUdOR.js.map +1 -0
  187. package/dist/components/{p-D0KD-Nr_.js → p-CwdRaJER.js} +2 -2
  188. package/dist/components/p-D6FRqNhN.js +2 -0
  189. package/dist/components/p-D6FRqNhN.js.map +1 -0
  190. package/dist/components/{p-Cihjy4WY.js → p-D8OWhnID.js} +2 -2
  191. package/dist/components/p-DCyJ3_PL.js +2 -0
  192. package/dist/components/{p-fYZK3zqM.js.map → p-DCyJ3_PL.js.map} +1 -1
  193. package/dist/components/{p-BXSHN1OK.js → p-DIQiHX0q.js} +2 -2
  194. package/dist/components/{p-z8L-YMi3.js → p-DJDbskZf.js} +2 -2
  195. package/dist/components/p-DRdoGSGX.js +2 -0
  196. package/dist/components/{p-DWmYCOKz.js.map → p-DRdoGSGX.js.map} +1 -1
  197. package/dist/components/{p-Bm3KWMe4.js → p-DSZPO06T.js} +2 -2
  198. package/dist/components/{p-C3-dcROG.js → p-DSmDyI2o.js} +2 -2
  199. package/dist/components/{p-DcrdyDRw.js → p-DVEx-Xg9.js} +2 -2
  200. package/dist/components/{p-Bu4OmhKK.js → p-DXk1eml1.js} +2 -2
  201. package/dist/components/{p-B7QEpaMe.js → p-DYQa1DVF.js} +2 -2
  202. package/dist/components/p-DYQa1DVF.js.map +1 -0
  203. package/dist/components/p-DYsE6HLk.js +2 -0
  204. package/dist/components/p-DYsE6HLk.js.map +1 -0
  205. package/dist/components/p-DebLYW7A.js +2 -0
  206. package/dist/components/p-DebLYW7A.js.map +1 -0
  207. package/dist/components/{p-Bh1Fx0aW.js → p-DmSnHVW6.js} +2 -2
  208. package/dist/components/p-Dnt5xUBD.js +2 -0
  209. package/dist/components/{p-C4VeD49U.js.map → p-Dnt5xUBD.js.map} +1 -1
  210. package/dist/components/p-Doa2blZT.js +2 -0
  211. package/dist/components/{p-CztB8Pbq.js.map → p-Doa2blZT.js.map} +1 -1
  212. package/dist/components/{p-CCpJT31M.js → p-Dyqd-cub.js} +2 -2
  213. package/dist/components/{p-CCpJT31M.js.map → p-Dyqd-cub.js.map} +1 -1
  214. package/dist/components/p-DzvTC27M.js +2 -0
  215. package/dist/components/p-DzvTC27M.js.map +1 -0
  216. package/dist/components/p-JBki_jyY.js +2 -0
  217. package/dist/components/{p-BugKaVWc.js.map → p-JBki_jyY.js.map} +1 -1
  218. package/dist/components/p-MOJmB6vX.js +2 -0
  219. package/dist/components/{p-iGNHXFZA.js.map → p-MOJmB6vX.js.map} +1 -1
  220. package/dist/components/{p-BYJtvRQm.js → p-UJMEz8_O.js} +2 -2
  221. package/dist/components/{p-Bo7GxFBh.js → p-_IqSPt5V.js} +2 -2
  222. package/dist/components/p-g0jsfEXz.js +2 -0
  223. package/dist/components/{p-Fkkd3gMB.js.map → p-g0jsfEXz.js.map} +1 -1
  224. package/dist/components/{p-lADW-TI8.js → p-pp1IQN4Z.js} +2 -2
  225. package/dist/docs/components.json +701 -13
  226. package/dist/lib/shell/index.js +1 -1
  227. package/dist/lib/shell/index.js.map +1 -1
  228. package/dist/lint/index.js +1 -1
  229. package/dist/mcp-data/registry/agent-activity.json +1 -1
  230. package/dist/mcp-data/registry/agent-questionnaire.json +1 -1
  231. package/dist/mcp-data/registry/agent-response.json +2 -2
  232. package/dist/mcp-data/registry/agent-source-list.json +1 -1
  233. package/dist/mcp-data/registry/agent-tool-call.json +1 -1
  234. package/dist/mcp-data/registry/attachment-list.json +1 -1
  235. package/dist/mcp-data/registry/avatar.json +1 -1
  236. package/dist/mcp-data/registry/badge.json +1 -1
  237. package/dist/mcp-data/registry/banner.json +1 -1
  238. package/dist/mcp-data/registry/bar-action.json +1 -1
  239. package/dist/mcp-data/registry/bar-nav.json +4 -4
  240. package/dist/mcp-data/registry/bar-page-title.json +3 -3
  241. package/dist/mcp-data/registry/bar-title.json +3 -3
  242. package/dist/mcp-data/registry/bar-workflow.json +1 -1
  243. package/dist/mcp-data/registry/breadcrumb.json +1 -1
  244. package/dist/mcp-data/registry/button-filled.json +1 -1
  245. package/dist/mcp-data/registry/button-inverted.json +1 -1
  246. package/dist/mcp-data/registry/button-unfilled.json +8 -8
  247. package/dist/mcp-data/registry/calendar.json +1 -1
  248. package/dist/mcp-data/registry/card-action-center.json +1 -1
  249. package/dist/mcp-data/registry/card-chart.json +1 -1
  250. package/dist/mcp-data/registry/card-navigation.json +1 -1
  251. package/dist/mcp-data/registry/card-overview.json +1 -1
  252. package/dist/mcp-data/registry/card-setting.json +22 -8
  253. package/dist/mcp-data/registry/card-settings-scope.json +1 -1
  254. package/dist/mcp-data/registry/chart-legend.json +1 -1
  255. package/dist/mcp-data/registry/chart.json +1 -1
  256. package/dist/mcp-data/registry/checkbox-group.json +246 -0
  257. package/dist/mcp-data/registry/checkbox.json +25 -5
  258. package/dist/mcp-data/registry/chip.json +1 -1
  259. package/dist/mcp-data/registry/code-block.json +1 -1
  260. package/dist/mcp-data/registry/conversation-list-item.json +1 -1
  261. package/dist/mcp-data/registry/conversation-list-section.json +1 -1
  262. package/dist/mcp-data/registry/conversation-list.json +1 -1
  263. package/dist/mcp-data/registry/data-customize.json +1 -1
  264. package/dist/mcp-data/registry/data-filter.json +1 -1
  265. package/dist/mcp-data/registry/data-group.json +1 -1
  266. package/dist/mcp-data/registry/data-preferences.json +1 -1
  267. package/dist/mcp-data/registry/data-saved-views.json +1 -1
  268. package/dist/mcp-data/registry/data-search.json +1 -1
  269. package/dist/mcp-data/registry/data-sort.json +1 -1
  270. package/dist/mcp-data/registry/data-toolbar.json +1 -1
  271. package/dist/mcp-data/registry/divider.json +1 -1
  272. package/dist/mcp-data/registry/empty-state.json +1 -1
  273. package/dist/mcp-data/registry/field.json +1 -1
  274. package/dist/mcp-data/registry/filter-menu.json +1 -1
  275. package/dist/mcp-data/registry/icon.json +1 -1
  276. package/dist/mcp-data/registry/inline-banner-settings.json +175 -0
  277. package/dist/mcp-data/registry/input-date.json +1 -1
  278. package/dist/mcp-data/registry/input-time.json +1 -1
  279. package/dist/mcp-data/registry/input.json +1 -1
  280. package/dist/mcp-data/registry/loader.json +1 -1
  281. package/dist/mcp-data/registry/map-cluster-marker.json +1 -1
  282. package/dist/mcp-data/registry/map-entity-marker.json +1 -1
  283. package/dist/mcp-data/registry/markdown.json +1 -1
  284. package/dist/mcp-data/registry/menu.json +1 -1
  285. package/dist/mcp-data/registry/message-actions.json +1 -1
  286. package/dist/mcp-data/registry/message-bubble.json +4 -4
  287. package/dist/mcp-data/registry/message-composer.json +6 -6
  288. package/dist/mcp-data/registry/message-scroller.json +1 -1
  289. package/dist/mcp-data/registry/message.json +2 -2
  290. package/dist/mcp-data/registry/mobile-bar-nav.json +1 -1
  291. package/dist/mcp-data/registry/mobile-header.json +1 -1
  292. package/dist/mcp-data/registry/mobile-section-switcher.json +1 -1
  293. package/dist/mcp-data/registry/mobile-sheet-nav.json +1 -1
  294. package/dist/mcp-data/registry/modal.json +1 -1
  295. package/dist/mcp-data/registry/pagination.json +1 -1
  296. package/dist/mcp-data/registry/panel-nav.json +3 -3
  297. package/dist/mcp-data/registry/panel-sub-nav.json +1 -1
  298. package/dist/mcp-data/registry/panel-tool-header.json +3 -3
  299. package/dist/mcp-data/registry/panel-tool-search.json +2 -2
  300. package/dist/mcp-data/registry/panel-tools.json +3 -3
  301. package/dist/mcp-data/registry/paper-texture.json +1 -1
  302. package/dist/mcp-data/registry/radio-tile.json +5 -4
  303. package/dist/mcp-data/registry/radio.json +50 -8
  304. package/dist/mcp-data/registry/registry.json +518 -31
  305. package/dist/mcp-data/registry/score.json +1 -1
  306. package/dist/mcp-data/registry/scroll-overlay.json +1 -1
  307. package/dist/mcp-data/registry/select.json +1 -1
  308. package/dist/mcp-data/registry/setting-row-checkbox.json +197 -0
  309. package/dist/mcp-data/registry/setting-row-radio.json +196 -0
  310. package/dist/mcp-data/registry/{setting-row.json → setting-row-toggle.json} +45 -25
  311. package/dist/mcp-data/registry/shell-app.json +3 -3
  312. package/dist/mcp-data/registry/shell-page.json +1 -1
  313. package/dist/mcp-data/registry/shell-tools.json +1 -1
  314. package/dist/mcp-data/registry/skeleton.json +1 -1
  315. package/dist/mcp-data/registry/slider.json +1 -1
  316. package/dist/mcp-data/registry/swatch-picker.json +1 -1
  317. package/dist/mcp-data/registry/switch.json +3 -3
  318. package/dist/mcp-data/registry/tab-group.json +1 -1
  319. package/dist/mcp-data/registry/table.json +1 -1
  320. package/dist/mcp-data/registry/tag.json +1 -1
  321. package/dist/mcp-data/registry/text.json +1 -1
  322. package/dist/mcp-data/registry/textarea.json +1 -1
  323. package/dist/mcp-data/registry/time-picker.json +1 -1
  324. package/dist/mcp-data/registry/toast.json +1 -1
  325. package/dist/mcp-data/registry/tooltip-chart.json +1 -1
  326. package/dist/mcp-data/registry/tooltip.json +1 -1
  327. package/dist/mcp-data/registry/typing-indicator.json +1 -1
  328. package/dist/react/components.d.ts +5 -1
  329. package/dist/react/components.js +5 -1
  330. package/dist/react/ds-checkbox-group.d.ts +9 -0
  331. package/dist/react/ds-checkbox-group.js +12 -0
  332. package/dist/react/ds-inline-banner-settings.d.ts +9 -0
  333. package/dist/react/ds-inline-banner-settings.js +12 -0
  334. package/dist/react/ds-setting-row-checkbox.d.ts +9 -0
  335. package/dist/react/ds-setting-row-checkbox.js +12 -0
  336. package/dist/react/ds-setting-row-radio.d.ts +9 -0
  337. package/dist/react/ds-setting-row-radio.js +12 -0
  338. package/dist/react/ds-setting-row-toggle.d.ts +12 -0
  339. package/dist/react/ds-setting-row-toggle.js +12 -0
  340. package/dist/types/components/BarPageTitle/BarPageTitle.d.ts +2 -0
  341. package/dist/types/components/BarTitle/bar-title-action-chrome.d.ts +4 -0
  342. package/dist/types/components/ButtonUnfilled/ButtonUnfilled.d.ts +5 -2
  343. package/dist/types/components/CardSetting/CardSetting.d.ts +12 -2
  344. package/dist/types/components/Checkbox/Checkbox.d.ts +2 -0
  345. package/dist/types/components/CheckboxGroup/CheckboxGroup.d.ts +20 -0
  346. package/dist/types/components/InlineBannerSettings/InlineBannerSettings.d.ts +6 -0
  347. package/dist/types/components/Radio/Radio.d.ts +8 -0
  348. package/dist/types/components/SettingRowCheckbox/SettingRowCheckbox.d.ts +19 -0
  349. package/dist/types/components/SettingRowRadio/SettingRowRadio.d.ts +19 -0
  350. package/dist/types/components/{SettingRow/SettingRow.d.ts → SettingRowToggle/SettingRowToggle.d.ts} +5 -2
  351. package/dist/types/components/Switch/Switch.d.ts +7 -0
  352. package/dist/types/components.d.ts +290 -20
  353. package/dist/vue/components.d.ts +5 -1
  354. package/dist/vue/components.js +5 -1
  355. package/dist/vue/{ds-setting-row.d.ts → ds-checkbox-group.d.ts} +1 -1
  356. package/dist/vue/ds-checkbox-group.js +12 -0
  357. package/dist/vue/ds-checkbox.js +1 -0
  358. package/dist/vue/ds-inline-banner-settings.d.ts +3 -0
  359. package/dist/vue/ds-inline-banner-settings.js +8 -0
  360. package/dist/vue/ds-radio.js +2 -0
  361. package/dist/vue/ds-setting-row-checkbox.d.ts +3 -0
  362. package/dist/vue/ds-setting-row-checkbox.js +11 -0
  363. package/dist/vue/ds-setting-row-radio.d.ts +3 -0
  364. package/dist/vue/ds-setting-row-radio.js +11 -0
  365. package/dist/vue/ds-setting-row-toggle.d.ts +3 -0
  366. package/dist/vue/ds-setting-row-toggle.js +15 -0
  367. package/package.json +3 -3
  368. package/dist/angular/ds-setting-row.d.ts +0 -18
  369. package/dist/components/ds-setting-row.js +0 -2
  370. package/dist/components/ds-setting-row.js.map +0 -1
  371. package/dist/components/p-3bsypMrY.js +0 -2
  372. package/dist/components/p-3bsypMrY.js.map +0 -1
  373. package/dist/components/p-B7QEpaMe.js.map +0 -1
  374. package/dist/components/p-B7bXN-vf.js +0 -2
  375. package/dist/components/p-B7bXN-vf.js.map +0 -1
  376. package/dist/components/p-BHI4LcGK.js +0 -2
  377. package/dist/components/p-BSuMDPaV.js +0 -2
  378. package/dist/components/p-BVwg5XVz.js +0 -2
  379. package/dist/components/p-BVwg5XVz.js.map +0 -1
  380. package/dist/components/p-BugKaVWc.js +0 -2
  381. package/dist/components/p-C4VeD49U.js +0 -2
  382. package/dist/components/p-CI7c9kp-.js +0 -2
  383. package/dist/components/p-CI7c9kp-.js.map +0 -1
  384. package/dist/components/p-CJD0kLeV.js +0 -2
  385. package/dist/components/p-CJD0kLeV.js.map +0 -1
  386. package/dist/components/p-Cc3ZUQlJ.js +0 -2
  387. package/dist/components/p-Cc3ZUQlJ.js.map +0 -1
  388. package/dist/components/p-CzQ_JF6A.js.map +0 -1
  389. package/dist/components/p-CztB8Pbq.js +0 -2
  390. package/dist/components/p-DCLRAH5i.js +0 -2
  391. package/dist/components/p-DCLRAH5i.js.map +0 -1
  392. package/dist/components/p-DHapI2sf.js +0 -2
  393. package/dist/components/p-DWmYCOKz.js +0 -2
  394. package/dist/components/p-DX2RyZba.js +0 -2
  395. package/dist/components/p-DX2RyZba.js.map +0 -1
  396. package/dist/components/p-Dcn1eDVt.js +0 -2
  397. package/dist/components/p-Dcn1eDVt.js.map +0 -1
  398. package/dist/components/p-Fkkd3gMB.js +0 -2
  399. package/dist/components/p-cuZva5tl.js +0 -2
  400. package/dist/components/p-fYZK3zqM.js +0 -2
  401. package/dist/components/p-iGNHXFZA.js +0 -2
  402. package/dist/components/p-p_MwknM3.js +0 -2
  403. package/dist/components/p-tJaC01aE.js +0 -2
  404. package/dist/react/ds-setting-row.d.ts +0 -12
  405. package/dist/react/ds-setting-row.js +0 -12
  406. package/dist/vue/ds-setting-row.js +0 -14
  407. /package/dist/components/{p-7V1AhetH.js.map → p-B0BQCVkq.js.map} +0 -0
  408. /package/dist/components/{p-Co5MiPNa.js.map → p-B0EpvBDs.js.map} +0 -0
  409. /package/dist/components/{p-DFkw6wrS.js.map → p-B39iJO8F.js.map} +0 -0
  410. /package/dist/components/{p-AmT4GlhM.js.map → p-B9y6azEw.js.map} +0 -0
  411. /package/dist/components/{p-CrL9wxZg.js.map → p-BERXvOCf.js.map} +0 -0
  412. /package/dist/components/{p-AM_ht6Im.js.map → p-BFHpU-uU.js.map} +0 -0
  413. /package/dist/components/{p-B-HOVYoH.js.map → p-BQspV5U7.js.map} +0 -0
  414. /package/dist/components/{p-C_gJD8l3.js.map → p-Bk3poU91.js.map} +0 -0
  415. /package/dist/components/{p-Gb-vTuXr.js.map → p-BnuNaXR2.js.map} +0 -0
  416. /package/dist/components/{p-BsM37Prt.js.map → p-C8V4lkVy.js.map} +0 -0
  417. /package/dist/components/{p-C-c8SJ00.js.map → p-CZNZTcYS.js.map} +0 -0
  418. /package/dist/components/{p-DQPzqcYR.js.map → p-CbCN9ew9.js.map} +0 -0
  419. /package/dist/components/{p-D0KD-Nr_.js.map → p-CwdRaJER.js.map} +0 -0
  420. /package/dist/components/{p-Cihjy4WY.js.map → p-D8OWhnID.js.map} +0 -0
  421. /package/dist/components/{p-BXSHN1OK.js.map → p-DIQiHX0q.js.map} +0 -0
  422. /package/dist/components/{p-z8L-YMi3.js.map → p-DJDbskZf.js.map} +0 -0
  423. /package/dist/components/{p-Bm3KWMe4.js.map → p-DSZPO06T.js.map} +0 -0
  424. /package/dist/components/{p-C3-dcROG.js.map → p-DSmDyI2o.js.map} +0 -0
  425. /package/dist/components/{p-DcrdyDRw.js.map → p-DVEx-Xg9.js.map} +0 -0
  426. /package/dist/components/{p-Bu4OmhKK.js.map → p-DXk1eml1.js.map} +0 -0
  427. /package/dist/components/{p-Bh1Fx0aW.js.map → p-DmSnHVW6.js.map} +0 -0
  428. /package/dist/components/{p-BYJtvRQm.js.map → p-UJMEz8_O.js.map} +0 -0
  429. /package/dist/components/{p-Bo7GxFBh.js.map → p-_IqSPt5V.js.map} +0 -0
  430. /package/dist/components/{p-lADW-TI8.js.map → p-pp1IQN4Z.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["inputTimeCss","idCounter","INVALID_TIME_MESSAGE","TIME_BEFORE_MIN_MESSAGE","TIME_AFTER_MAX_MESSAGE","TIME_STEP_MESSAGE","InputTime","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","generatedId","errorId","popupId","value","disabled","readOnly","required","requiredMessage","DEFAULT_REQUIRED_MESSAGE","step","hourFormat","size","width","hasBorder","hasInteractionFill","isInactive","autoFocus","error","ariaLabel","initialValue","closeTimer","formDisabled","focused","touched","draftText","open","shouldRender","closing","positionReady","pos","x","y","position","AnchoredPositionController","getAnchor","controlEl","getPopup","el","querySelector","getOwnerDocument","ownerDocument","measure","anchor","popup","sectionInsetPx","resolveCssLengthPx","TOKEN_DEFAULTS","space050","anchorRect","getBoundingClientRect","popupWidth","offsetWidth","popupFallbackWidth","popupHeight","offsetHeight","popupFallbackHeight","side","align","sideOffsetPx","alignOffsetPx","resolveChoicePopupAlignOffset","anchorAlignment","viewportPadPx","viewportWidth","window","innerWidth","viewportHeight","innerHeight","collisionRect","resolveAnchoredOverlayBoundaryRect","apply","onReady","liveUpdate","observeResize","topLayer","interaction","AnchoredOverlayInteractionController","onOutsideActivation","closePicker","togglePicker","openPicker","handleInput","event","pickerInactive","target","parsed","parseDraft","commitIso","handleFocus","displayValue","handleBlur","handleTimeChange","stopPropagation","detail","menuWidthXs","menuFallbackHeight","formInactive","hasConstraintError","isClockTime","min","max","isClockTimeStepAligned","isInvalid","length","componentWillLoad","syncFormValue","disconnectedCallback","unobserve","teardownListeners","onHourFormatChange","inactive","setFormControlValue","internals","flags","message","valueMissing","badInput","rangeUnderflow","rangeOverflow","stepMismatch","setValidity","onInteractionStateChange","formDisabledCallback","formResetCallback","formStateRestoreCallback","state","restoreStringFormState","setFocus","inputEl","focus","handleHostKeyDown","key","preventDefault","composedPath","includes","tabLeavesPopup","moveFocusAfterTab","shiftKey","formatClockTimeLabel","text","trimmed","trim","iso","parseLooseClockTime","emit","dsChange","disconnect","clearTimeout","connect","observe","schedule","restore","cancel","clockButton","duration","resolveMotionTimeMs","motionShort2","animationDurationShort3","finishClose","setTimeout","matches","hidePopover","render","inputId","filled","dirty","showError","Boolean","errorMessage","textVariant","CONTROL_TEXT_VARIANT","textClass","replace","describedBy","ariaDescribedby","undefined","filter","join","popupStyle","left","top","transform","Math","round","zIndex","visibility","h","Host","class","controlWidthClass","ref","element","type","id","autoComplete","spellcheck","ariaLabelledby","onInput","onFocus","onBlur","variant","icon","isInset","haspopup","expanded","surfaceOpen","controls","onDsClick","popover","style","role","onDsChange","as","color","textId"],"sources":["src/wc/components/InputTime/InputTime.css?tag=ds-input-time&encapsulation=scoped","src/wc/components/InputTime/InputTime.tsx"],"sourcesContent":["@import '../../utils/datetime-input-control.css';\n@import '../../utils/choice-popup.css';\n@import '../../utils/chrome-layout.css';\n\n.input-time-popup.ds-choice-popup {\n --ds-time-picker-padding: 0;\n padding: var(--dimension-space-050);\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Prop,\n State,\n Event,\n EventEmitter,\n Listen,\n Method,\n Watch,\n h,\n Host,\n} from '@stencil/core';\nimport {\n controlWidthClass,\n CONTROL_TEXT_VARIANT,\n DEFAULT_REQUIRED_MESSAGE,\n formatClockTimeLabel,\n isClockTime,\n isClockTimeStepAligned,\n parseLooseClockTime,\n resolveChoicePopupAlignOffset,\n resolveCssLengthPx,\n resolveMotionTimeMs,\n restoreStringFormState,\n setFormControlValue,\n TOKEN_DEFAULTS,\n type ControlSize,\n type ControlWidth,\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';\n\nexport type InputTimeSize = ControlSize;\nexport type InputTimeWidth = ControlWidth;\n\nlet idCounter = 0;\n\nconst INVALID_TIME_MESSAGE = 'Enter a valid time.';\nconst TIME_BEFORE_MIN_MESSAGE = 'Time is before the minimum allowed time.';\nconst TIME_AFTER_MAX_MESSAGE = 'Time is after the maximum allowed time.';\nconst TIME_STEP_MESSAGE = 'Time does not match the allowed interval.';\n\n@Component({\n tag: 'ds-input-time',\n styleUrl: 'InputTime.css',\n scoped: true,\n formAssociated: true,\n})\nexport class InputTime {\n @Element() el!: HTMLElement;\n @AttachInternals() internals!: ElementInternals;\n\n private generatedId = `ds-input-time-${++idCounter}`;\n private errorId = `${this.generatedId}-error`;\n private popupId = `${this.generatedId}-popup`;\n\n @Prop({ mutable: true }) value: string = '';\n @Prop({ reflect: true }) name: string | undefined;\n @Prop({ reflect: true }) form: string | undefined;\n @Prop({ reflect: true }) disabled: boolean = false;\n @Prop({ reflect: true }) readOnly: boolean = false;\n @Prop({ reflect: true }) required: boolean = false;\n @Prop() requiredMessage: string = DEFAULT_REQUIRED_MESSAGE;\n /** Native time step in seconds. Defaults to minutes (`60`). */\n @Prop() step: string | number = 60;\n /** Display format; submitted values remain HH:MM in either format. */\n @Prop() hourFormat: '12' | '24' = '12';\n @Prop() min: string | undefined;\n @Prop() max: string | undefined;\n @Prop() size: InputTimeSize = 'md';\n @Prop() width: InputTimeWidth = 'fill';\n @Prop() hasBorder: boolean = true;\n @Prop() hasInteractionFill: boolean = true;\n @Prop() isInactive: boolean = false;\n @Prop() autoFocus: boolean = false;\n @Prop() error: boolean = false;\n @Prop() errorMessage: string | undefined;\n @Prop() inputId: string | undefined;\n @Prop({ attribute: 'aria-label' }) ariaLabel: string | null = null;\n @Prop({ attribute: 'aria-labelledby' }) ariaLabelledby: string | undefined;\n @Prop({ attribute: 'aria-describedby' }) ariaDescribedby: string | undefined;\n\n @Event() dsChange!: EventEmitter<string>;\n\n private initialValue = '';\n private inputEl?: HTMLInputElement;\n private controlEl?: HTMLElement;\n private clockButton?: HTMLDsButtonUnfilledElement;\n private closeTimer: ReturnType<typeof setTimeout> | null = null;\n @State() private formDisabled = false;\n @State() private focused = false;\n @State() private touched = false;\n @State() private draftText = '';\n @State() private open = false;\n @State() private shouldRender = false;\n @State() private closing = false;\n @State() private positionReady = false;\n @State() private pos = { x: 0, y: 0 };\n\n private readonly position = new AnchoredPositionController({\n getAnchor: () => this.controlEl ?? null,\n getPopup: () => this.el.querySelector<HTMLElement>('.input-time-popup'),\n getOwnerDocument: () => this.el.ownerDocument,\n measure: (anchor, popup) => {\n if (!this.open) return null;\n const sectionInsetPx = resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050);\n return {\n anchorRect: anchor.getBoundingClientRect(),\n popupWidth: popup.offsetWidth || this.popupFallbackWidth,\n popupHeight: popup.offsetHeight || this.popupFallbackHeight,\n side: 'bottom',\n align: 'end',\n sideOffsetPx: resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050),\n alignOffsetPx: resolveChoicePopupAlignOffset({\n align: 'end',\n alignOffsetPx: 0,\n sectionInsetPx,\n anchorAlignment: 'popup-frame',\n }),\n viewportPadPx: resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050),\n viewportWidth: window.innerWidth,\n viewportHeight: window.innerHeight,\n collisionRect: resolveAnchoredOverlayBoundaryRect(anchor),\n };\n },\n apply: ({ x, y }) => {\n this.pos = { x, y };\n },\n onReady: () => {\n this.positionReady = true;\n },\n liveUpdate: 'double-frame',\n observeResize: true,\n topLayer: true,\n });\n private readonly interaction = new AnchoredOverlayInteractionController({\n getAnchor: () => this.controlEl ?? null,\n getPopup: () => this.el.querySelector<HTMLElement>('.input-time-popup'),\n getOwnerDocument: () => this.el.ownerDocument,\n onOutsideActivation: () => this.closePicker(false),\n });\n\n private get popupFallbackWidth(): number {\n return resolveCssLengthPx(TOKEN_DEFAULTS.menuWidthXs, TOKEN_DEFAULTS.menuWidthXs);\n }\n\n private get popupFallbackHeight(): number {\n return resolveCssLengthPx(TOKEN_DEFAULTS.menuFallbackHeight, TOKEN_DEFAULTS.menuFallbackHeight);\n }\n\n private get formInactive(): boolean {\n return this.isInactive || this.disabled || this.formDisabled;\n }\n\n private get pickerInactive(): boolean {\n return this.formInactive || this.readOnly;\n }\n\n private get hasConstraintError(): boolean {\n if (!this.value) return false;\n if (!isClockTime(this.value)) return true;\n if (this.min && isClockTime(this.min) && this.value < this.min) return true;\n if (this.max && isClockTime(this.max) && this.value > this.max) return true;\n return !isClockTimeStepAligned(this.value, this.step, this.min);\n }\n\n private get isInvalid(): boolean {\n return (\n this.error ||\n (!this.formInactive &&\n ((this.required && this.value.length === 0) || this.hasConstraintError))\n );\n }\n\n componentWillLoad() {\n this.initialValue = this.value;\n this.syncFormValue();\n }\n\n disconnectedCallback() {\n this.position.unobserve();\n this.teardownListeners();\n }\n\n @Watch('hourFormat')\n onHourFormatChange() {\n this.draftText = this.displayValue;\n }\n\n @Watch('value')\n @Watch('required')\n @Watch('requiredMessage')\n @Watch('min')\n @Watch('max')\n @Watch('step')\n syncFormValue() {\n const inactive = this.formInactive;\n setFormControlValue(this.internals, this.value, { inactive });\n const flags: ValidityStateFlags = {};\n let message = '';\n if (!inactive) {\n if (this.required && this.value.length === 0) {\n flags.valueMissing = true;\n message = this.requiredMessage;\n } else if (this.value && !isClockTime(this.value)) {\n flags.badInput = true;\n message = INVALID_TIME_MESSAGE;\n } else if (this.value && this.min && isClockTime(this.min) && this.value < this.min) {\n flags.rangeUnderflow = true;\n message = TIME_BEFORE_MIN_MESSAGE;\n } else if (this.value && this.max && isClockTime(this.max) && this.value > this.max) {\n flags.rangeOverflow = true;\n message = TIME_AFTER_MAX_MESSAGE;\n } else if (this.value && !isClockTimeStepAligned(this.value, this.step, this.min)) {\n flags.stepMismatch = true;\n message = TIME_STEP_MESSAGE;\n }\n }\n this.internals.setValidity(flags, message);\n }\n\n @Watch('disabled')\n @Watch('isInactive')\n @Watch('readOnly')\n onInteractionStateChange() {\n this.syncFormValue();\n if (this.pickerInactive && this.shouldRender) this.closePicker(false);\n }\n\n formDisabledCallback(disabled: boolean) {\n this.formDisabled = disabled;\n this.onInteractionStateChange();\n }\n\n formResetCallback() {\n this.value = this.initialValue;\n this.draftText = this.displayValue;\n }\n\n formStateRestoreCallback(state: string | File | FormData | null) {\n this.value = restoreStringFormState(state);\n this.draftText = this.displayValue;\n }\n\n @Method()\n async setFocus() {\n this.inputEl?.focus();\n }\n\n @Listen('keydown')\n handleHostKeyDown(event: KeyboardEvent) {\n if (!this.shouldRender || this.closing) return;\n if (event.key === 'Escape') {\n event.preventDefault();\n this.closePicker('button');\n return;\n }\n if (event.key !== 'Tab') return;\n const popup = this.el.querySelector<HTMLElement>('.input-time-popup');\n if (!popup || !event.composedPath().includes(popup)) return;\n if (!this.interaction.tabLeavesPopup(event)) return;\n event.preventDefault();\n this.closePicker(false);\n this.interaction.moveFocusAfterTab(event.shiftKey);\n }\n\n private get displayValue(): string {\n return this.hourFormat === '24' ? this.value : formatClockTimeLabel(this.value);\n }\n\n private parseDraft(text: string): string | null {\n const trimmed = text.trim();\n if (!trimmed) return '';\n const iso = parseLooseClockTime(trimmed);\n if (!iso) return null;\n if (this.min && isClockTime(this.min) && iso < this.min) return null;\n if (this.max && isClockTime(this.max) && iso > this.max) return null;\n if (!isClockTimeStepAligned(iso, this.step, this.min)) return null;\n return iso;\n }\n\n private commitIso(iso: string, emit = true) {\n if (this.value !== iso) {\n this.value = iso;\n if (emit) this.dsChange.emit(iso);\n }\n this.draftText = this.hourFormat === '24' ? iso : formatClockTimeLabel(iso);\n }\n\n private teardownListeners() {\n this.position.unobserve();\n this.interaction.disconnect();\n if (this.closeTimer) {\n clearTimeout(this.closeTimer);\n this.closeTimer = null;\n }\n }\n\n private openPicker() {\n const inactive = this.isInactive || this.disabled || this.formDisabled || this.readOnly;\n if (inactive || this.open) return;\n this.shouldRender = true;\n this.closing = false;\n this.positionReady = false;\n this.open = true;\n this.teardownListeners();\n this.interaction.connect();\n this.position.observe();\n this.position.schedule();\n }\n\n private closePicker(restore: 'input' | 'button' | false) {\n if (!this.shouldRender || this.closing) return;\n this.open = false;\n this.position.cancel();\n this.closing = true;\n this.interaction.disconnect();\n this.position.unobserve();\n if (restore === 'input') this.inputEl?.focus();\n if (restore === 'button') void this.clockButton?.setFocus();\n const duration = resolveMotionTimeMs(\n TOKEN_DEFAULTS.motionShort2,\n TOKEN_DEFAULTS.animationDurationShort3\n );\n if (duration <= 0) {\n this.finishClose();\n return;\n }\n this.closeTimer = setTimeout(() => this.finishClose(), duration);\n }\n\n private finishClose() {\n const popup = this.el.querySelector<HTMLElement>('.input-time-popup');\n if (popup?.matches(':popover-open')) popup.hidePopover();\n this.shouldRender = false;\n this.closing = false;\n this.closeTimer = null;\n }\n\n private togglePicker = () => {\n if (this.isInactive || this.disabled || this.formDisabled || this.readOnly) return;\n if (this.open) this.closePicker('button');\n else this.openPicker();\n };\n\n private handleInput = (event: Event) => {\n if (this.pickerInactive) return;\n this.draftText = (event.target as HTMLInputElement).value;\n const parsed = this.parseDraft(this.draftText);\n if (parsed === null) return;\n this.commitIso(parsed);\n };\n\n private handleFocus = () => {\n this.draftText = this.displayValue || this.value;\n this.focused = true;\n };\n\n private handleBlur = () => {\n this.focused = false;\n this.touched = true;\n if (this.pickerInactive) {\n this.draftText = this.displayValue;\n return;\n }\n const parsed = this.parseDraft(this.draftText);\n if (parsed === null) {\n this.draftText = this.displayValue;\n return;\n }\n this.commitIso(parsed);\n };\n\n private handleTimeChange = (event: CustomEvent<string>) => {\n event.stopPropagation();\n if (this.pickerInactive) return;\n const parsed = this.parseDraft(event.detail);\n if (parsed === null) return;\n this.commitIso(parsed);\n };\n\n render() {\n const inputId = this.inputId ?? this.generatedId;\n const inactive = this.formInactive;\n const pickerInactive = this.pickerInactive;\n const filled = this.value.length > 0;\n const dirty = this.value !== this.initialValue;\n const showError = this.error && Boolean(this.errorMessage);\n const textVariant = CONTROL_TEXT_VARIANT[this.size];\n const textClass = `ds-text--${textVariant.replace('text-', '')}`;\n const describedBy =\n [this.ariaDescribedby, showError ? this.errorId : undefined].filter(Boolean).join(' ') ||\n undefined;\n const popupStyle = {\n position: 'fixed',\n left: '0',\n top: '0',\n transform: `translate(${Math.round(this.pos.x)}px, ${Math.round(this.pos.y)}px)`,\n zIndex: 'var(--dimension-z-index-floating)',\n visibility: this.positionReady ? 'visible' : 'hidden',\n };\n\n return (\n <Host\n class={{\n 'input-host': true,\n 'ds-field-stack': true,\n 'ds-field-stack--supporting-inset': !this.hasBorder,\n 'ds-control-inactive': inactive,\n [`ds-control--${this.size}`]: true,\n ...controlWidthClass(this.width),\n }}\n data-disabled={inactive ? '' : undefined}\n data-readonly={this.readOnly ? '' : undefined}\n data-required={this.required ? '' : undefined}\n data-invalid={this.isInvalid ? '' : undefined}\n data-filled={filled ? '' : undefined}\n data-focused={this.focused ? '' : undefined}\n data-dirty={dirty ? '' : undefined}\n data-touched={this.touched ? '' : undefined}\n >\n <div\n ref={element => {\n this.controlEl = element;\n }}\n class={{\n 'input-control': true,\n 'ds-control-frame': true,\n 'input-control--bordered': this.hasBorder,\n 'input-control--error': this.hasBorder && this.error,\n 'ds-interaction-fill': this.hasInteractionFill,\n [`ds-control--${this.size}`]: true,\n }}\n >\n <input\n ref={element => {\n this.inputEl = element;\n }}\n type=\"text\"\n id={inputId}\n value={this.focused ? this.draftText : this.displayValue}\n disabled={inactive}\n readOnly={this.readOnly}\n required={this.required}\n autoFocus={this.autoFocus}\n autoComplete=\"off\"\n spellcheck={false}\n class={{\n 'native-input': true,\n 'native-input--align-start': true,\n 'ds-control-label-box': true,\n [textClass]: true,\n 'ds-text--regular': true,\n }}\n aria-label={this.ariaLabel}\n aria-labelledby={this.ariaLabelledby}\n aria-describedby={describedBy}\n aria-invalid={this.isInvalid ? 'true' : undefined}\n onInput={this.handleInput}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n />\n <ds-button-unfilled\n ref={element => {\n this.clockButton = element as HTMLDsButtonUnfilledElement | undefined;\n }}\n class=\"input-control__datetime-action\"\n variant=\"icon\"\n size={this.size}\n icon=\"Clock\"\n hasBorder={false}\n isInset\n isInactive={pickerInactive}\n ariaLabel=\"Choose time\"\n haspopup=\"dialog\"\n expanded={this.open}\n surfaceOpen={this.open || this.closing}\n controls={this.open ? this.popupId : undefined}\n onDsClick={this.togglePicker}\n />\n </div>\n {this.shouldRender ? (\n <div\n id={this.popupId}\n popover=\"manual\"\n class={{\n 'input-time-popup': true,\n 'ds-choice-popup': true,\n 'ds-choice-popup--closing': this.closing,\n 'ds-chrome-column': true,\n 'ds-chrome-space--sm': true,\n }}\n style={popupStyle}\n role=\"dialog\"\n aria-label=\"Choose time\"\n >\n <ds-time-picker\n hourFormat={this.hourFormat}\n value={this.value}\n min={this.min}\n max={this.max}\n step={this.step}\n isInactive={pickerInactive}\n autoFocus\n onDsChange={this.handleTimeChange}\n />\n </div>\n ) : null}\n {showError && (\n <ds-text\n class=\"error-text\"\n as=\"div\"\n variant=\"text-body-small\"\n color=\"negative\"\n textId={this.errorId}\n role=\"alert\"\n >\n {this.errorMessage}\n </ds-text>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["inputTimeCss","idCounter","INVALID_TIME_MESSAGE","TIME_BEFORE_MIN_MESSAGE","TIME_AFTER_MAX_MESSAGE","TIME_STEP_MESSAGE","InputTime","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","generatedId","errorId","popupId","value","disabled","readOnly","required","requiredMessage","DEFAULT_REQUIRED_MESSAGE","step","hourFormat","size","width","hasBorder","hasInteractionFill","isInactive","autoFocus","error","ariaLabel","initialValue","closeTimer","formDisabled","focused","touched","draftText","open","shouldRender","closing","positionReady","pos","x","y","position","AnchoredPositionController","getAnchor","controlEl","getPopup","el","querySelector","getOwnerDocument","ownerDocument","measure","anchor","popup","sectionInsetPx","resolveCssLengthPx","TOKEN_DEFAULTS","space050","anchorRect","getBoundingClientRect","popupWidth","offsetWidth","popupFallbackWidth","popupHeight","offsetHeight","popupFallbackHeight","side","align","sideOffsetPx","alignOffsetPx","resolveChoicePopupAlignOffset","anchorAlignment","viewportPadPx","viewportWidth","window","innerWidth","viewportHeight","innerHeight","collisionRect","resolveAnchoredOverlayBoundaryRect","apply","onReady","liveUpdate","observeResize","topLayer","interaction","AnchoredOverlayInteractionController","onOutsideActivation","closePicker","togglePicker","openPicker","handleInput","event","pickerInactive","target","parsed","parseDraft","commitIso","handleFocus","displayValue","handleBlur","handleTimeChange","stopPropagation","detail","menuWidthXs","menuFallbackHeight","formInactive","hasConstraintError","isClockTime","min","max","isClockTimeStepAligned","isInvalid","length","componentWillLoad","syncFormValue","disconnectedCallback","unobserve","teardownListeners","onHourFormatChange","inactive","setFormControlValue","internals","flags","message","valueMissing","badInput","rangeUnderflow","rangeOverflow","stepMismatch","setValidity","onInteractionStateChange","formDisabledCallback","formResetCallback","formStateRestoreCallback","state","restoreStringFormState","setFocus","inputEl","focus","handleHostKeyDown","key","preventDefault","composedPath","includes","tabLeavesPopup","moveFocusAfterTab","shiftKey","formatClockTimeLabel","text","trimmed","trim","iso","parseLooseClockTime","emit","dsChange","disconnect","clearTimeout","connect","observe","schedule","restore","cancel","clockButton","duration","resolveMotionTimeMs","motionShort2","animationDurationShort3","finishClose","setTimeout","matches","hidePopover","render","inputId","filled","dirty","showError","Boolean","errorMessage","textVariant","CONTROL_TEXT_VARIANT","textClass","replace","describedBy","ariaDescribedby","undefined","filter","join","popupStyle","left","top","transform","Math","round","zIndex","visibility","h","Host","class","controlWidthClass","ref","element","type","id","autoComplete","spellcheck","ariaLabelledby","onInput","onFocus","onBlur","variant","icon","isInset","haspopup","expanded","surfaceOpen","controls","onDsClick","popover","style","role","onDsChange","as","color","textId"],"sources":["src/wc/components/InputTime/InputTime.css?tag=ds-input-time&encapsulation=scoped","src/wc/components/InputTime/InputTime.tsx"],"sourcesContent":["@import '../../utils/datetime-input-control.css';\n@import '../../utils/choice-popup.css';\n@import '../../utils/chrome-layout.css';\n\n.input-time-popup.ds-choice-popup {\n --ds-time-picker-padding: 0;\n padding: var(--dimension-space-050);\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Prop,\n State,\n Event,\n EventEmitter,\n Listen,\n Method,\n Watch,\n h,\n Host,\n} from '@stencil/core';\nimport {\n controlWidthClass,\n CONTROL_TEXT_VARIANT,\n DEFAULT_REQUIRED_MESSAGE,\n formatClockTimeLabel,\n isClockTime,\n isClockTimeStepAligned,\n parseLooseClockTime,\n resolveChoicePopupAlignOffset,\n resolveCssLengthPx,\n resolveMotionTimeMs,\n restoreStringFormState,\n setFormControlValue,\n TOKEN_DEFAULTS,\n type ControlSize,\n type ControlWidth,\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';\n\nexport type InputTimeSize = ControlSize;\nexport type InputTimeWidth = ControlWidth;\n\nlet idCounter = 0;\n\nconst INVALID_TIME_MESSAGE = 'Enter a valid time.';\nconst TIME_BEFORE_MIN_MESSAGE = 'Time is before the minimum allowed time.';\nconst TIME_AFTER_MAX_MESSAGE = 'Time is after the maximum allowed time.';\nconst TIME_STEP_MESSAGE = 'Time does not match the allowed interval.';\n\n@Component({\n tag: 'ds-input-time',\n styleUrl: 'InputTime.css',\n scoped: true,\n formAssociated: true,\n})\nexport class InputTime {\n @Element() el!: HTMLElement;\n @AttachInternals() internals!: ElementInternals;\n\n private generatedId = `ds-input-time-${++idCounter}`;\n private errorId = `${this.generatedId}-error`;\n private popupId = `${this.generatedId}-popup`;\n\n @Prop({ mutable: true }) value: string = '';\n @Prop({ reflect: true }) name: string | undefined;\n @Prop({ reflect: true }) form: string | undefined;\n @Prop({ reflect: true }) disabled: boolean = false;\n @Prop({ reflect: true }) readOnly: boolean = false;\n @Prop({ reflect: true }) required: boolean = false;\n @Prop() requiredMessage: string = DEFAULT_REQUIRED_MESSAGE;\n /** Native time step in seconds. Defaults to minutes (`60`). */\n @Prop() step: string | number = 60;\n /** Display format; submitted values remain HH:MM in either format. */\n @Prop() hourFormat: '12' | '24' = '12';\n @Prop() min: string | undefined;\n @Prop() max: string | undefined;\n @Prop() size: InputTimeSize = 'md';\n @Prop() width: InputTimeWidth = 'fill';\n @Prop() hasBorder: boolean = true;\n @Prop() hasInteractionFill: boolean = true;\n @Prop() isInactive: boolean = false;\n @Prop() autoFocus: boolean = false;\n @Prop() error: boolean = false;\n @Prop() errorMessage: string | undefined;\n @Prop() inputId: string | undefined;\n @Prop({ attribute: 'aria-label' }) ariaLabel: string | null = null;\n @Prop({ attribute: 'aria-labelledby' }) ariaLabelledby: string | undefined;\n @Prop({ attribute: 'aria-describedby' }) ariaDescribedby: string | undefined;\n\n @Event() dsChange!: EventEmitter<string>;\n\n private initialValue = '';\n private inputEl?: HTMLInputElement;\n private controlEl?: HTMLElement;\n private clockButton?: HTMLDsButtonUnfilledElement;\n private closeTimer: ReturnType<typeof setTimeout> | null = null;\n @State() private formDisabled = false;\n @State() private focused = false;\n @State() private touched = false;\n @State() private draftText = '';\n @State() private open = false;\n @State() private shouldRender = false;\n @State() private closing = false;\n @State() private positionReady = false;\n @State() private pos = { x: 0, y: 0 };\n\n private readonly position = new AnchoredPositionController({\n getAnchor: () => this.controlEl ?? null,\n getPopup: () => this.el.querySelector<HTMLElement>('.input-time-popup'),\n getOwnerDocument: () => this.el.ownerDocument,\n measure: (anchor, popup) => {\n if (!this.open) return null;\n const sectionInsetPx = resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050);\n return {\n anchorRect: anchor.getBoundingClientRect(),\n popupWidth: popup.offsetWidth || this.popupFallbackWidth,\n popupHeight: popup.offsetHeight || this.popupFallbackHeight,\n side: 'bottom',\n align: 'end',\n sideOffsetPx: resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050),\n alignOffsetPx: resolveChoicePopupAlignOffset({\n align: 'end',\n alignOffsetPx: 0,\n sectionInsetPx,\n anchorAlignment: 'popup-frame',\n }),\n viewportPadPx: resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050),\n viewportWidth: window.innerWidth,\n viewportHeight: window.innerHeight,\n collisionRect: resolveAnchoredOverlayBoundaryRect(anchor),\n };\n },\n apply: ({ x, y }) => {\n this.pos = { x, y };\n },\n onReady: () => {\n this.positionReady = true;\n },\n liveUpdate: 'double-frame',\n observeResize: true,\n topLayer: true,\n });\n private readonly interaction = new AnchoredOverlayInteractionController({\n getAnchor: () => this.controlEl ?? null,\n getPopup: () => this.el.querySelector<HTMLElement>('.input-time-popup'),\n getOwnerDocument: () => this.el.ownerDocument,\n onOutsideActivation: () => this.closePicker(false),\n });\n\n private get popupFallbackWidth(): number {\n return resolveCssLengthPx(TOKEN_DEFAULTS.menuWidthXs, TOKEN_DEFAULTS.menuWidthXs);\n }\n\n private get popupFallbackHeight(): number {\n return resolveCssLengthPx(TOKEN_DEFAULTS.menuFallbackHeight, TOKEN_DEFAULTS.menuFallbackHeight);\n }\n\n private get formInactive(): boolean {\n return this.isInactive || this.disabled || this.formDisabled;\n }\n\n private get pickerInactive(): boolean {\n return this.formInactive || this.readOnly;\n }\n\n private get hasConstraintError(): boolean {\n if (!this.value) return false;\n if (!isClockTime(this.value)) return true;\n if (this.min && isClockTime(this.min) && this.value < this.min) return true;\n if (this.max && isClockTime(this.max) && this.value > this.max) return true;\n return !isClockTimeStepAligned(this.value, this.step, this.min);\n }\n\n private get isInvalid(): boolean {\n return (\n this.error ||\n (!this.formInactive &&\n ((this.required && this.value.length === 0) || this.hasConstraintError))\n );\n }\n\n componentWillLoad() {\n this.initialValue = this.value;\n this.syncFormValue();\n }\n\n disconnectedCallback() {\n this.position.unobserve();\n this.teardownListeners();\n }\n\n @Watch('hourFormat')\n onHourFormatChange() {\n this.draftText = this.displayValue;\n }\n\n @Watch('value')\n @Watch('required')\n @Watch('requiredMessage')\n @Watch('min')\n @Watch('max')\n @Watch('step')\n syncFormValue() {\n const inactive = this.formInactive;\n setFormControlValue(this.internals, this.value, { inactive });\n const flags: ValidityStateFlags = {};\n let message = '';\n if (!inactive) {\n if (this.required && this.value.length === 0) {\n flags.valueMissing = true;\n message = this.requiredMessage;\n } else if (this.value && !isClockTime(this.value)) {\n flags.badInput = true;\n message = INVALID_TIME_MESSAGE;\n } else if (this.value && this.min && isClockTime(this.min) && this.value < this.min) {\n flags.rangeUnderflow = true;\n message = TIME_BEFORE_MIN_MESSAGE;\n } else if (this.value && this.max && isClockTime(this.max) && this.value > this.max) {\n flags.rangeOverflow = true;\n message = TIME_AFTER_MAX_MESSAGE;\n } else if (this.value && !isClockTimeStepAligned(this.value, this.step, this.min)) {\n flags.stepMismatch = true;\n message = TIME_STEP_MESSAGE;\n }\n }\n this.internals.setValidity(flags, message);\n }\n\n @Watch('disabled')\n @Watch('isInactive')\n @Watch('readOnly')\n onInteractionStateChange() {\n this.syncFormValue();\n if (this.pickerInactive && this.shouldRender) this.closePicker(false);\n }\n\n formDisabledCallback(disabled: boolean) {\n this.formDisabled = disabled;\n this.onInteractionStateChange();\n }\n\n formResetCallback() {\n this.value = this.initialValue;\n this.draftText = this.displayValue;\n }\n\n formStateRestoreCallback(state: string | File | FormData | null) {\n this.value = restoreStringFormState(state);\n this.draftText = this.displayValue;\n }\n\n @Method()\n async setFocus() {\n this.inputEl?.focus();\n }\n\n @Listen('keydown')\n handleHostKeyDown(event: KeyboardEvent) {\n if (!this.shouldRender || this.closing) return;\n if (event.key === 'Escape') {\n event.preventDefault();\n this.closePicker('button');\n return;\n }\n if (event.key !== 'Tab') return;\n const popup = this.el.querySelector<HTMLElement>('.input-time-popup');\n if (!popup || !event.composedPath().includes(popup)) return;\n if (!this.interaction.tabLeavesPopup(event)) return;\n event.preventDefault();\n this.closePicker(false);\n this.interaction.moveFocusAfterTab(event.shiftKey);\n }\n\n private get displayValue(): string {\n return this.hourFormat === '24' ? this.value : formatClockTimeLabel(this.value);\n }\n\n private parseDraft(text: string): string | null {\n const trimmed = text.trim();\n if (!trimmed) return '';\n const iso = parseLooseClockTime(trimmed);\n if (!iso) return null;\n if (this.min && isClockTime(this.min) && iso < this.min) return null;\n if (this.max && isClockTime(this.max) && iso > this.max) return null;\n if (!isClockTimeStepAligned(iso, this.step, this.min)) return null;\n return iso;\n }\n\n private commitIso(iso: string, emit = true) {\n if (this.value !== iso) {\n this.value = iso;\n if (emit) this.dsChange.emit(iso);\n }\n this.draftText = this.hourFormat === '24' ? iso : formatClockTimeLabel(iso);\n }\n\n private teardownListeners() {\n this.position.unobserve();\n this.interaction.disconnect();\n if (this.closeTimer) {\n clearTimeout(this.closeTimer);\n this.closeTimer = null;\n }\n }\n\n private openPicker() {\n const inactive = this.isInactive || this.disabled || this.formDisabled || this.readOnly;\n if (inactive || this.open) return;\n this.shouldRender = true;\n this.closing = false;\n this.positionReady = false;\n this.open = true;\n this.teardownListeners();\n this.interaction.connect();\n this.position.observe();\n this.position.schedule();\n }\n\n private closePicker(restore: 'input' | 'button' | false) {\n if (!this.shouldRender || this.closing) return;\n this.open = false;\n this.position.cancel();\n this.closing = true;\n this.interaction.disconnect();\n this.position.unobserve();\n if (restore === 'input') this.inputEl?.focus();\n if (restore === 'button') void this.clockButton?.setFocus();\n const duration = resolveMotionTimeMs(\n TOKEN_DEFAULTS.motionShort2,\n TOKEN_DEFAULTS.animationDurationShort3\n );\n if (duration <= 0) {\n this.finishClose();\n return;\n }\n this.closeTimer = setTimeout(() => this.finishClose(), duration);\n }\n\n private finishClose() {\n const popup = this.el.querySelector<HTMLElement>('.input-time-popup');\n if (popup?.matches(':popover-open')) popup.hidePopover();\n this.shouldRender = false;\n this.closing = false;\n this.closeTimer = null;\n }\n\n private togglePicker = () => {\n if (this.isInactive || this.disabled || this.formDisabled || this.readOnly) return;\n if (this.open) this.closePicker('button');\n else this.openPicker();\n };\n\n private handleInput = (event: Event) => {\n if (this.pickerInactive) return;\n this.draftText = (event.target as HTMLInputElement).value;\n const parsed = this.parseDraft(this.draftText);\n if (parsed === null) return;\n this.commitIso(parsed);\n };\n\n private handleFocus = () => {\n this.draftText = this.displayValue || this.value;\n this.focused = true;\n };\n\n private handleBlur = () => {\n this.focused = false;\n this.touched = true;\n if (this.pickerInactive) {\n this.draftText = this.displayValue;\n return;\n }\n const parsed = this.parseDraft(this.draftText);\n if (parsed === null) {\n this.draftText = this.displayValue;\n return;\n }\n this.commitIso(parsed);\n };\n\n private handleTimeChange = (event: CustomEvent<string>) => {\n event.stopPropagation();\n if (this.pickerInactive) return;\n const parsed = this.parseDraft(event.detail);\n if (parsed === null) return;\n this.commitIso(parsed);\n };\n\n render() {\n const inputId = this.inputId ?? this.generatedId;\n const inactive = this.formInactive;\n const pickerInactive = this.pickerInactive;\n const filled = this.value.length > 0;\n const dirty = this.value !== this.initialValue;\n const showError = this.error && Boolean(this.errorMessage);\n const textVariant = CONTROL_TEXT_VARIANT[this.size];\n const textClass = `ds-text--${textVariant.replace('text-', '')}`;\n const describedBy =\n [this.ariaDescribedby, showError ? this.errorId : undefined].filter(Boolean).join(' ') ||\n undefined;\n const popupStyle = {\n position: 'fixed',\n left: '0',\n top: '0',\n transform: `translate(${Math.round(this.pos.x)}px, ${Math.round(this.pos.y)}px)`,\n zIndex: 'var(--dimension-z-index-floating)',\n visibility: this.positionReady ? 'visible' : 'hidden',\n };\n\n return (\n <Host\n class={{\n 'input-host': true,\n 'ds-field-stack': true,\n 'ds-field-stack--supporting-inset': !this.hasBorder,\n 'ds-control-inactive': inactive,\n [`ds-control--${this.size}`]: true,\n ...controlWidthClass(this.width),\n }}\n data-disabled={inactive ? '' : undefined}\n data-readonly={this.readOnly ? '' : undefined}\n data-required={this.required ? '' : undefined}\n data-invalid={this.isInvalid ? '' : undefined}\n data-filled={filled ? '' : undefined}\n data-focused={this.focused ? '' : undefined}\n data-dirty={dirty ? '' : undefined}\n data-touched={this.touched ? '' : undefined}\n >\n <div\n ref={element => {\n this.controlEl = element;\n }}\n class={{\n 'input-control': true,\n 'ds-control-frame': true,\n 'input-control--bordered': this.hasBorder,\n 'input-control--error': this.hasBorder && this.error,\n 'ds-interaction-fill': this.hasInteractionFill,\n [`ds-control--${this.size}`]: true,\n }}\n >\n <input\n ref={element => {\n this.inputEl = element;\n }}\n type=\"text\"\n id={inputId}\n value={this.focused ? this.draftText : this.displayValue}\n disabled={inactive}\n readOnly={this.readOnly}\n required={this.required}\n autoFocus={this.autoFocus}\n autoComplete=\"off\"\n spellcheck={false}\n class={{\n 'native-input': true,\n 'native-input--align-start': true,\n 'ds-control-label-box': true,\n [textClass]: true,\n 'ds-text--regular': true,\n }}\n aria-label={this.ariaLabel}\n aria-labelledby={this.ariaLabelledby}\n aria-describedby={describedBy}\n aria-invalid={this.isInvalid ? 'true' : undefined}\n onInput={this.handleInput}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n />\n <ds-button-unfilled\n ref={element => {\n this.clockButton = element as HTMLDsButtonUnfilledElement | undefined;\n }}\n class=\"input-control__datetime-action\"\n variant=\"icon\"\n size={this.size}\n icon=\"Clock\"\n hasBorder={false}\n isInset\n isInactive={pickerInactive}\n ariaLabel=\"Choose time\"\n haspopup=\"dialog\"\n expanded={this.open}\n surfaceOpen={this.open || this.closing}\n controls={this.open ? this.popupId : undefined}\n onDsClick={this.togglePicker}\n />\n </div>\n {this.shouldRender ? (\n <div\n id={this.popupId}\n popover=\"manual\"\n class={{\n 'input-time-popup': true,\n 'ds-choice-popup': true,\n 'ds-choice-popup--closing': this.closing,\n 'ds-chrome-column': true,\n 'ds-chrome-space--sm': true,\n }}\n style={popupStyle}\n role=\"dialog\"\n aria-label=\"Choose time\"\n >\n <ds-time-picker\n hourFormat={this.hourFormat}\n value={this.value}\n min={this.min}\n max={this.max}\n step={this.step}\n isInactive={pickerInactive}\n autoFocus\n onDsChange={this.handleTimeChange}\n />\n </div>\n ) : null}\n {showError && (\n <ds-text\n class=\"error-text\"\n as=\"div\"\n variant=\"text-body-small\"\n color=\"negative\"\n textId={this.errorId}\n role=\"alert\"\n >\n {this.errorMessage}\n </ds-text>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{I as o,d as s}from"./p-BHI4LcGK.js";const t=o;const c=s;export{t as DsInput,c as defineCustomElement};
1
+ import{I as o,d as s}from"./p-BwdnVqAY.js";const t=o;const n=s;export{t as DsInput,n as defineCustomElement};
2
2
  //# sourceMappingURL=ds-input.js.map
@@ -1,2 +1,2 @@
1
- import{p as r,H as e,c as s,h as a,a as o,t}from"./index.js";import{d as i}from"./p-Cihjy4WY.js";const c=()=>`@media (forced-colors: active){.sc-ds-map-cluster-marker:root,.sc-ds-map-cluster-marker-h,.ds-forced-colors-scope.sc-ds-map-cluster-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-cluster-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-cluster-marker-h,.ds-focus-ring.sc-ds-map-cluster-marker,.ds-focus-ring-inset.sc-ds-map-cluster-marker-h,.ds-focus-ring-inset.sc-ds-map-cluster-marker{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-map-cluster-marker-h:focus-visible,.ds-focus-ring.sc-ds-map-cluster-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-cluster-marker-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-map-cluster-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-cluster-marker-h:focus-visible,.ds-focus-ring-inset.sc-ds-map-cluster-marker:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-map-cluster-marker-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-map-cluster-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-cluster-marker-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-map-cluster-marker{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-map-cluster-marker-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-map-cluster-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-cluster-marker-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}.sc-ds-map-cluster-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-cluster-marker-h{opacity:var(--effect-opacity-medium)}.map-marker--dimmed.sc-ds-map-cluster-marker-h:focus-within{opacity:1}.map-marker__button.sc-ds-map-cluster-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-cluster-marker::before{content:'';position:absolute;z-index:1;inset:0;border-radius:inherit;pointer-events:none}.map-marker__button.sc-ds-map-cluster-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-cluster-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-cluster-marker-h:focus-within .map-marker__caption.sc-ds-map-cluster-marker{display:inline-flex}@media (hover: hover) and (pointer: fine){.map-marker--dimmed.sc-ds-map-cluster-marker-h:hover{opacity:1}.sc-ds-map-cluster-marker-h:hover .map-marker__caption.sc-ds-map-cluster-marker{display:inline-flex}.map-marker__button.sc-ds-map-cluster-marker:hover::before{background:var(--_map-marker-interaction-hover)}}.map-marker__button.sc-ds-map-cluster-marker:active::before{background:var(--_map-marker-interaction-pressed)}@media (forced-colors: active){.map-marker__button.sc-ds-map-cluster-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-cluster-marker::before{display:none}.map-marker__button.sc-ds-map-cluster-marker::after{outline-color:var(--ds-forced-color-control-boundary)}.map-marker__caption.sc-ds-map-cluster-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)}}.sc-ds-map-cluster-marker-h{--_map-marker-background:var(--color-entity-cluster-marker-background);--_map-marker-foreground:var(--color-entity-cluster-marker-foreground);--_map-marker-interaction-hover:var(--color-entity-cluster-marker-interaction-hover);--_map-marker-interaction-pressed:var(--color-entity-cluster-marker-interaction-pressed)}.map-marker__button.sc-ds-map-cluster-marker{width:max-content;padding-inline:0;border-radius:var(--dimension-radius-half)}.map-marker__button.sc-ds-map-cluster-marker,.map-marker__caption.sc-ds-map-cluster-marker{-webkit-backdrop-filter:blur(var(--effect-blur-md));backdrop-filter:blur(var(--effect-blur-md))}.map-cluster-marker__button--padded.sc-ds-map-cluster-marker{padding-inline:var(--dimension-space-100)}.map-cluster-marker__count.sc-ds-map-cluster-marker{position:relative;z-index:2;display:inline-flex;white-space:nowrap}`;const n=r=>{const e=Math.max(0,Math.round(Number.isFinite(r)?r:0));if(e<1e3)return String(e);const s=Math.round(e/100)/10;return`${Number.isInteger(s)?s.toFixed(0):s.toFixed(1)}k`};const d=r(class r extends e{constructor(r){super();if(r!==false){this.__registerHost()}this.dsClick=s(this,"dsClick",7);this.caption="";this.count=0;this.dimmed=false;this.handleClick=r=>{this.dsClick.emit(r)}}async setFocus(){this.buttonEl?.focus()}render(){const r=this.caption.trim();const e=n(this.count);return a(o,{key:"8253306b76e034fe41d5089ed96d014eb3fe0832",class:{"map-cluster-marker":true,"map-marker--dimmed":this.dimmed}},a("button",{key:"c7ad155a30860a69669b4bea1696d1371e050421",ref:r=>this.buttonEl=r,type:"button",class:{"map-marker__button":true,"map-cluster-marker__button--padded":e.length>1,"ds-focus-ring":true},"aria-label":this.label,onClick:this.handleClick},a("ds-text",{key:"5e21b9ac47535a29ee73a43416ffa314a00676f2",class:"map-cluster-marker__count",as:"span",variant:"text-body-medium",color:"inherit",emphasis:true},e)),r&&a("ds-text",{key:"d946440c4f13e4a8ef30cb19b1e667ffd55fea2b",class:"map-marker__caption",as:"span",variant:"text-caption",color:"inherit","aria-hidden":"true"},r))}static get style(){return c()}},[2,"ds-map-cluster-marker",{label:[1],caption:[1],count:[2],dimmed:[516],setFocus:[64]}]);function m(){if(typeof customElements==="undefined"){return}const r=["ds-map-cluster-marker","ds-text"];r.forEach((r=>{switch(r){case"ds-map-cluster-marker":if(!customElements.get(t(r))){customElements.define(t(r),d)}break;case"ds-text":if(!customElements.get(t(r))){i()}break}}))}m();const l=d;const u=m;export{l as DsMapClusterMarker,u as defineCustomElement};
1
+ import{p as r,H as e,c as s,h as a,a as o,t}from"./index.js";import{d as i}from"./p-D8OWhnID.js";const c=()=>`@media (forced-colors: active){.sc-ds-map-cluster-marker:root,.sc-ds-map-cluster-marker-h,.ds-forced-colors-scope.sc-ds-map-cluster-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-cluster-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-cluster-marker-h,.ds-focus-ring.sc-ds-map-cluster-marker,.ds-focus-ring-inset.sc-ds-map-cluster-marker-h,.ds-focus-ring-inset.sc-ds-map-cluster-marker{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-map-cluster-marker-h:focus-visible,.ds-focus-ring.sc-ds-map-cluster-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-cluster-marker-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-map-cluster-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-cluster-marker-h:focus-visible,.ds-focus-ring-inset.sc-ds-map-cluster-marker:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-map-cluster-marker-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-map-cluster-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-cluster-marker-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-map-cluster-marker{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-map-cluster-marker-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-map-cluster-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-cluster-marker-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}.sc-ds-map-cluster-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-cluster-marker-h{opacity:var(--effect-opacity-medium)}.map-marker--dimmed.sc-ds-map-cluster-marker-h:focus-within{opacity:1}.map-marker__button.sc-ds-map-cluster-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-cluster-marker::before{content:'';position:absolute;z-index:1;inset:0;border-radius:inherit;pointer-events:none}.map-marker__button.sc-ds-map-cluster-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-cluster-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-cluster-marker-h:focus-within .map-marker__caption.sc-ds-map-cluster-marker{display:inline-flex}@media (hover: hover) and (pointer: fine){.map-marker--dimmed.sc-ds-map-cluster-marker-h:hover{opacity:1}.sc-ds-map-cluster-marker-h:hover .map-marker__caption.sc-ds-map-cluster-marker{display:inline-flex}.map-marker__button.sc-ds-map-cluster-marker:hover::before{background:var(--_map-marker-interaction-hover)}}.map-marker__button.sc-ds-map-cluster-marker:active::before{background:var(--_map-marker-interaction-pressed)}@media (forced-colors: active){.map-marker__button.sc-ds-map-cluster-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-cluster-marker::before{display:none}.map-marker__button.sc-ds-map-cluster-marker::after{outline-color:var(--ds-forced-color-control-boundary)}.map-marker__caption.sc-ds-map-cluster-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)}}.sc-ds-map-cluster-marker-h{--_map-marker-background:var(--color-entity-cluster-marker-background);--_map-marker-foreground:var(--color-entity-cluster-marker-foreground);--_map-marker-interaction-hover:var(--color-entity-cluster-marker-interaction-hover);--_map-marker-interaction-pressed:var(--color-entity-cluster-marker-interaction-pressed)}.map-marker__button.sc-ds-map-cluster-marker{width:max-content;padding-inline:0;border-radius:var(--dimension-radius-half)}.map-marker__button.sc-ds-map-cluster-marker,.map-marker__caption.sc-ds-map-cluster-marker{-webkit-backdrop-filter:blur(var(--effect-blur-md));backdrop-filter:blur(var(--effect-blur-md))}.map-cluster-marker__button--padded.sc-ds-map-cluster-marker{padding-inline:var(--dimension-space-100)}.map-cluster-marker__count.sc-ds-map-cluster-marker{position:relative;z-index:2;display:inline-flex;white-space:nowrap}`;const n=r=>{const e=Math.max(0,Math.round(Number.isFinite(r)?r:0));if(e<1e3)return String(e);const s=Math.round(e/100)/10;return`${Number.isInteger(s)?s.toFixed(0):s.toFixed(1)}k`};const d=r(class r extends e{constructor(r){super();if(r!==false){this.__registerHost()}this.dsClick=s(this,"dsClick",7);this.caption="";this.count=0;this.dimmed=false;this.handleClick=r=>{this.dsClick.emit(r)}}async setFocus(){this.buttonEl?.focus()}render(){const r=this.caption.trim();const e=n(this.count);return a(o,{key:"ec08c475059967c3fee33f2c4131176cb91bc0b8",class:{"map-cluster-marker":true,"map-marker--dimmed":this.dimmed}},a("button",{key:"0f28c92ef7d1b8c5ae96b590aa8f1a67729704bb",ref:r=>this.buttonEl=r,type:"button",class:{"map-marker__button":true,"map-cluster-marker__button--padded":e.length>1,"ds-focus-ring":true},"aria-label":this.label,onClick:this.handleClick},a("ds-text",{key:"20c1701781d44b133f1d2d24037da91b0bf087d1",class:"map-cluster-marker__count",as:"span",variant:"text-body-medium",color:"inherit",emphasis:true},e)),r&&a("ds-text",{key:"edf77ff6c418635f94836c7668f9d1be37d2efb4",class:"map-marker__caption",as:"span",variant:"text-caption",color:"inherit","aria-hidden":"true"},r))}static get style(){return c()}},[2,"ds-map-cluster-marker",{label:[1],caption:[1],count:[2],dimmed:[516],setFocus:[64]}]);function m(){if(typeof customElements==="undefined"){return}const r=["ds-map-cluster-marker","ds-text"];r.forEach((r=>{switch(r){case"ds-map-cluster-marker":if(!customElements.get(t(r))){customElements.define(t(r),d)}break;case"ds-text":if(!customElements.get(t(r))){i()}break}}))}m();const l=d;const u=m;export{l as DsMapClusterMarker,u as defineCustomElement};
2
2
  //# sourceMappingURL=ds-map-cluster-marker.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-DjkUFlDW.js";import{d as n}from"./p-Cihjy4WY.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"?"MapKey":this.icon;const t=m.has(r)?d(this.bearing):0;return a(s,{key:"e7d82d4ae94c9841fb404591fc11855c65f0b826",class:{"map-entity-marker":true,"map-marker--dimmed":this.dimmed,"map-entity-marker--dashed":this.dashed}},a("button",{key:"d056b3ef137cf8137b53f7481967a4f60903a74c",ref:e=>this.buttonEl=e,type:"button",class:"map-marker__button ds-focus-ring","aria-label":this.label,onClick:this.handleClick},a("span",{key:"add2061a032f2158547fe9851639ff266cf89dfc",class:"map-entity-marker__glyph",style:{"--ds-map-entity-marker-bearing":`${t}deg`},"aria-hidden":"true"},a("ds-icon",{key:"03e26cd4a824078bbfd5008ac78005628cc8cd21",name:r,size:"sm",color:"inherit"})),this.dashed&&a("svg",{key:"e1a20782d26752be3936114fd041e31dd70da4eb",class:"map-entity-marker__dashed-outline",viewBox:"0 0 16 16","aria-hidden":"true"},a("path",{key:"0ac97e1dccd0e9f9c35befc2867e23fdf6354e9d",d:h}))),e&&a("ds-text",{key:"5e550d281571238e692cc92664ba2179140633dc",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 v(){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}}))}v();const b=y;const g=v;export{b 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-DjkUFlDW.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"?"MapKey":this.icon;const t=m.has(r)?d(this.bearing):0;return a(s,{key:"72b2773d3c200db96c9e95d5c8b926c4aca356c0",class:{"map-entity-marker":true,"map-marker--dimmed":this.dimmed,"map-entity-marker--dashed":this.dashed}},a("button",{key:"1dd7a027d37f8a7b65443e3b761ce44b4ce3ed30",ref:e=>this.buttonEl=e,type:"button",class:"map-marker__button ds-focus-ring","aria-label":this.label,onClick:this.handleClick},a("span",{key:"8a059ee059d92cfe852811c29ea76d10d6ee4166",class:"map-entity-marker__glyph",style:{"--ds-map-entity-marker-bearing":`${t}deg`},"aria-hidden":"true"},a("ds-icon",{key:"3c8dede17fcc7d6477cc5f9a79806f0886bda8f6",name:r,size:"sm",color:"inherit"})),this.dashed&&a("svg",{key:"f381ca70fa20f6f702488fdf98c35751eddddb57",class:"map-entity-marker__dashed-outline",viewBox:"0 0 16 16","aria-hidden":"true"},a("path",{key:"cf2c1c7d09f67a7ecbf5e0e09146ee028316e455",d:h}))),e&&a("ds-text",{key:"fa665a11ee1150ce75823f0c7b34f829ff0d6c53",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 v(){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}}))}v();const b=y;const g=v;export{b as DsMapEntityMarker,g as defineCustomElement};
2
2
  //# sourceMappingURL=ds-map-entity-marker.js.map
@@ -1,2 +1,2 @@
1
- import{M as o,d as s}from"./p-B-HOVYoH.js";const t=o;const p=s;export{t as DsMarkdown,p as defineCustomElement};
1
+ import{M as s,d as o}from"./p-BQspV5U7.js";const p=s;const t=o;export{p as DsMarkdown,t as defineCustomElement};
2
2
  //# sourceMappingURL=ds-markdown.js.map
@@ -1,2 +1,2 @@
1
- import{M as o,d as s}from"./p-C4VeD49U.js";const t=o;const p=s;export{t as DsMenu,p as defineCustomElement};
1
+ import{M as o,d as s}from"./p-Dnt5xUBD.js";const t=o;const n=s;export{t as DsMenu,n 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-D0KD-Nr_.js";import{d as l}from"./p-CI7c9kp-.js";import{d as c}from"./p-DjkUFlDW.js";import{d as r}from"./p-0XTyQNRG.js";import{d as p}from"./p-Cihjy4WY.js";import{d as h}from"./p-BXSHN1OK.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:"0b9ee4d2a19b78bdf68791c55c9009739e39c703"},i("div",{key:"dc17c4ad1fb47a8518a71818b8a79226ef9fe963",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-D6FRqNhN.js";import{d as c}from"./p-DjkUFlDW.js";import{d as r}from"./p-0XTyQNRG.js";import{d as p}from"./p-D8OWhnID.js";import{d as h}from"./p-DIQiHX0q.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,h as a,a as r,t}from"./index.js";const b=()=>`.sc-ds-message-bubble-h{display:inline-flex;max-width:80%;box-sizing:border-box;-webkit-user-select:text;user-select:text}.message-bubble.sc-ds-message-bubble{min-width:0;padding-block:var(--dimension-space-100);padding-inline:calc(var(--dimension-space-100) + var(--dimension-space-025));border-radius:var(--dimension-radius-050);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);box-sizing:border-box;overflow-wrap:anywhere}.message-bubble--user.sc-ds-message-bubble-h .message-bubble.sc-ds-message-bubble{background:var(--color-translucent-translucent);color:var(--color-foreground-secondary);box-shadow:inset 0 0 0 var(--dimension-stroke-width-012) var(--color-border-tertiary)}.message-bubble--received.sc-ds-message-bubble-h .message-bubble.sc-ds-message-bubble{box-shadow:inset 0 0 0 var(--dimension-stroke-width-012) var(--color-border-tertiary)}`;const o=e(class e extends s{constructor(e){super();if(e!==false){this.__registerHost()}this.variant="received"}render(){return a(r,{key:"74aa5f494e4683eac0c5b93b74d41d77bea3b03f",class:`message-bubble--${this.variant}`},a("div",{key:"052f4146a8f8d4304f74ece2f96175d550ed129a",class:"message-bubble"},a("slot",{key:"fa514fe8bfb04ff880d474c7b8f83093dec91735"})))}static get style(){return b()}},[262,"ds-message-bubble",{variant:[1]}]);function i(){if(typeof customElements==="undefined"){return}const e=["ds-message-bubble"];e.forEach((e=>{switch(e){case"ds-message-bubble":if(!customElements.get(t(e))){customElements.define(t(e),o)}break}}))}i();const n=o;const d=i;export{n as DsMessageBubble,d as defineCustomElement};
1
+ import{p as e,H as s,h as a,a as r,t as b}from"./index.js";const o=()=>`.sc-ds-message-bubble-h{display:inline-flex;max-width:80%;box-sizing:border-box;-webkit-user-select:text;user-select:text}.message-bubble.sc-ds-message-bubble{min-width:0;padding-block:var(--dimension-space-100);padding-inline:calc(var(--dimension-space-100) + var(--dimension-space-025));border-radius:var(--dimension-radius-100);background:var(--color-chrome-background-secondary);color:var(--color-foreground-secondary);font-family:var(--typography-font-family-ui);font-size:var(--typography-fontsize-md);line-height:var(--typography-lineheight-md);font-weight:var(--typography-weight-regular);letter-spacing:var(--typography-letterspacing-negative-half);box-sizing:border-box;overflow-wrap:anywhere}.message-bubble--user.sc-ds-message-bubble-h .message-bubble.sc-ds-message-bubble{background:var(--color-chrome-background-primary);color:var(--color-foreground-primary)}@media (max-width: 767px){.message-bubble.sc-ds-message-bubble{background:var(--color-background-secondary)}.message-bubble--user.sc-ds-message-bubble-h .message-bubble.sc-ds-message-bubble{background:var(--color-background-faint-neutral)}}`;const c=e(class e extends s{constructor(e){super();if(e!==false){this.__registerHost()}this.variant="received"}render(){return a(r,{key:"290c112e36a7d2d04c30e0b401642e7ff5cde7c3",class:`message-bubble--${this.variant}`},a("div",{key:"bf637b83127cfa1ffca9ecff881269ab0464340c",class:"message-bubble"},a("slot",{key:"642a2545c1eeb6855aabce135a39fe3e94655ed6"})))}static get style(){return o()}},[262,"ds-message-bubble",{variant:[1]}]);function n(){if(typeof customElements==="undefined"){return}const e=["ds-message-bubble"];e.forEach((e=>{switch(e){case"ds-message-bubble":if(!customElements.get(b(e))){customElements.define(b(e),c)}break}}))}n();const t=c;const i=n;export{t as DsMessageBubble,i as defineCustomElement};
2
2
  //# sourceMappingURL=ds-message-bubble.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["messageBubbleCss","MessageBubble","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","variant","render","h","Host","key","class"],"sources":["src/wc/components/MessageBubble/MessageBubble.css?tag=ds-message-bubble&encapsulation=scoped","src/wc/components/MessageBubble/MessageBubble.tsx"],"sourcesContent":[":host {\n display: inline-flex;\n max-width: 80%;\n box-sizing: border-box;\n -webkit-user-select: text;\n user-select: text;\n}\n\n.message-bubble {\n min-width: 0;\n padding-block: var(--dimension-space-100);\n padding-inline: calc(var(--dimension-space-100) + var(--dimension-space-025));\n border-radius: var(--dimension-radius-050);\n background: transparent;\n color: var(--color-foreground-primary);\n font-family: var(--typography-font-family-ui);\n font-size: var(--typography-fontsize-md);\n line-height: var(--typography-lineheight-md);\n font-weight: var(--typography-weight-regular);\n letter-spacing: var(--typography-letterspacing-negative-half);\n box-sizing: border-box;\n overflow-wrap: anywhere;\n}\n\n:host(.message-bubble--user) .message-bubble {\n background: var(--color-translucent-translucent);\n color: var(--color-foreground-secondary);\n box-shadow: inset 0 0 0 var(--dimension-stroke-width-012) var(--color-border-tertiary);\n}\n\n:host(.message-bubble--received) .message-bubble {\n box-shadow: inset 0 0 0 var(--dimension-stroke-width-012) var(--color-border-tertiary);\n}\n","import { Component, h, Host, Prop } from '@stencil/core';\n\nexport type MessageBubbleVariant = 'user' | 'received';\n\n@Component({\n tag: 'ds-message-bubble',\n styleUrl: 'MessageBubble.css',\n scoped: true,\n})\nexport class MessageBubble {\n @Prop() variant: MessageBubbleVariant = 'received';\n\n render() {\n return (\n <Host class={`message-bubble--${this.variant}`}>\n <div class=\"message-bubble\">\n <slot />\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"sDAAA,MAAMA,EAAmB,IAAM,+kC,MCSlBC,EAAaC,EAAA,MAAAD,UAAAE,EAL1B,WAAAC,CAAAC,G,4CAMUC,KAAAC,QAAgC,UAWzC,CATC,MAAAC,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,2CAACC,MAAO,mBAAmBN,KAAKC,WACnCE,EAAA,OAAAE,IAAA,2CAAKC,MAAM,kBACTH,EAAA,QAAAE,IAAA,8C","ignoreList":[]}
1
+ {"version":3,"names":["messageBubbleCss","MessageBubble","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","variant","render","h","Host","key","class"],"sources":["src/wc/components/MessageBubble/MessageBubble.css?tag=ds-message-bubble&encapsulation=scoped","src/wc/components/MessageBubble/MessageBubble.tsx"],"sourcesContent":[":host {\n display: inline-flex;\n max-width: 80%;\n box-sizing: border-box;\n -webkit-user-select: text;\n user-select: text;\n}\n\n.message-bubble {\n min-width: 0;\n padding-block: var(--dimension-space-100);\n padding-inline: calc(var(--dimension-space-100) + var(--dimension-space-025));\n border-radius: var(--dimension-radius-100);\n background: var(--color-chrome-background-secondary);\n color: var(--color-foreground-secondary);\n font-family: var(--typography-font-family-ui);\n font-size: var(--typography-fontsize-md);\n line-height: var(--typography-lineheight-md);\n font-weight: var(--typography-weight-regular);\n letter-spacing: var(--typography-letterspacing-negative-half);\n box-sizing: border-box;\n overflow-wrap: anywhere;\n}\n\n:host(.message-bubble--user) .message-bubble {\n background: var(--color-chrome-background-primary);\n color: var(--color-foreground-primary);\n}\n\n@media (max-width: 767px) {\n .message-bubble {\n background: var(--color-background-secondary);\n }\n\n :host(.message-bubble--user) .message-bubble {\n background: var(--color-background-faint-neutral);\n }\n}\n","import { Component, h, Host, Prop } from '@stencil/core';\n\nexport type MessageBubbleVariant = 'user' | 'received';\n\n@Component({\n tag: 'ds-message-bubble',\n styleUrl: 'MessageBubble.css',\n scoped: true,\n})\nexport class MessageBubble {\n @Prop() variant: MessageBubbleVariant = 'received';\n\n render() {\n return (\n <Host class={`message-bubble--${this.variant}`}>\n <div class=\"message-bubble\">\n <slot />\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"2DAAA,MAAMA,EAAmB,IAAM,4lC,MCSlBC,EAAaC,EAAA,MAAAD,UAAAE,EAL1B,WAAAC,CAAAC,G,4CAMUC,KAAAC,QAAgC,UAWzC,CATC,MAAAC,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,2CAACC,MAAO,mBAAmBN,KAAKC,WACnCE,EAAA,OAAAE,IAAA,2CAAKC,MAAM,kBACTH,EAAA,QAAAE,IAAA,8C","ignoreList":[]}
@@ -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-D0KD-Nr_.js";import{d as i}from"./p-iGNHXFZA.js";import{d}from"./p-CI7c9kp-.js";import{d as m}from"./p-DjkUFlDW.js";import{d as n}from"./p-0XTyQNRG.js";import{d as l}from"./p-Cihjy4WY.js";import{d as p}from"./p-BXSHN1OK.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-125);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-125);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 b=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:"199d4ce4b66de3f68191fa32c1e7222a6ee71e49"},r("form",{key:"a6422f53ac82f82dbb9e809085a3099be2c6d2fd",class:{"message-composer":true,"message-composer--error":e},"aria-busy":this.streaming?"true":undefined,onSubmit:e=>{e.preventDefault();this.submit()}},r("div",{key:"c9b85c0e4a059e3bd8bcac3af13c2aa8915b55b5",class:"message-composer__attachments"},r("slot",{key:"5deade82bf6d0940cdec2acb843074d6238abe53",name:"attachments"})),r("div",{key:"6d094464d2e03bee32afe0cb4fa6504cb27c09b3",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:"5c0b56346ad62c84bb9568c99ba4b059287d1e0e",class:"message-composer__field"},r("textarea",{key:"9b2af36370a4295d9a2741b2bf3d2046361f6f66",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:"d538f1077728ad34579357d1172e5fd06f1cd99b",class:"message-composer__controls"},r("div",{key:"755b45cbbe91a830c03f9e61174cc99fb39eb54e",class:"message-composer__tools"},r("slot",{key:"dc607f05518cbb6ad2032d93294bb124ac50e730",name:"tools"})),r("div",{key:"5c8493260e5f9dc8b2ba022a6b4baeb33e431df1",class:"message-composer__actions"},r("slot",{key:"7b384c43531db78c58813c201c2664a59ceff8f7",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","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","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 h(){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),b)}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}}))}h();const u=b;const v=h;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-MOJmB6vX.js";import{d}from"./p-D6FRqNhN.js";import{d as m}from"./p-DjkUFlDW.js";import{d as n}from"./p-0XTyQNRG.js";import{d as l}from"./p-D8OWhnID.js";import{d as p}from"./p-DIQiHX0q.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 +1 @@
1
- {"version":3,"names":["messageComposerCss","composerId","MessageComposer","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","value","placeholder","label","status","isInactive","submitIntent","errorId","handleInput","event","target","dsInput","emit","handleKeyDown","key","shiftKey","isComposing","preventDefault","submit","handleAction","streaming","dsStop","setFocus","textarea","focus","text","trim","dsSubmit","render","error","visibleErrorMessage","errorMessage","actionInactive","h","Host","class","undefined","onSubmit","name","id","role","size","color","variant","ref","element","disabled","onInput","onKeyDown","side","icon","hasBorder","onDsClick","intent","contrast"],"sources":["src/wc/components/MessageComposer/MessageComposer.css?tag=ds-message-composer&encapsulation=scoped","src/wc/components/MessageComposer/MessageComposer.tsx"],"sourcesContent":["@import '../../utils/forced-colors.css';\n\n:host {\n display: block;\n width: 100%;\n box-sizing: border-box;\n -webkit-user-select: none;\n user-select: none;\n}\n\n.message-composer {\n display: flex;\n flex-direction: column;\n gap: var(--dimension-space-050);\n width: 100%;\n margin: 0;\n}\n\n.message-composer__attachments:empty,\n.message-composer__tools:empty,\n.message-composer__error-actions:empty {\n display: none;\n}\n\n.message-composer__error-support,\n.message-composer__error-message,\n.message-composer__error-actions {\n display: flex;\n align-items: center;\n}\n\n.message-composer__error-support {\n justify-content: space-between;\n flex-wrap: wrap;\n gap: var(--dimension-space-075) var(--dimension-space-100);\n min-width: 0;\n padding: var(--dimension-space-075) var(--dimension-space-100);\n background: var(--color-background-faint-negative);\n}\n\n.message-composer__error-message {\n flex: 1 1 var(--dimension-panel-width-xs);\n gap: var(--dimension-space-050);\n min-width: 0;\n color: var(--color-foreground-bold-negative);\n}\n\n.message-composer__error-actions {\n flex: 0 1 auto;\n flex-wrap: wrap;\n gap: var(--dimension-space-050);\n}\n\n.message-composer__stack {\n min-width: 0;\n}\n\n.message-composer--error .message-composer__stack {\n overflow: hidden;\n border: var(--dimension-stroke-width-012) solid var(--color-border-bold-negative);\n border-radius: var(--dimension-radius-125);\n background: var(--color-background-primary);\n box-shadow: var(--effect-elevation-elevated-md);\n}\n\n.message-composer__field {\n display: flex;\n flex-direction: column;\n gap: var(--dimension-space-050);\n padding: var(--dimension-space-100);\n border-radius: var(--dimension-radius-125);\n background: var(--color-background-primary);\n box-shadow: var(--effect-elevation-elevated-md);\n overflow: hidden;\n}\n\n.message-composer:not(.message-composer--error) .message-composer__field:focus-within {\n box-shadow:\n var(--effect-elevation-elevated-md),\n inset 0 0 0 var(--dimension-stroke-width-018) var(--color-border-bold-brand);\n}\n\n.message-composer--error .message-composer__field {\n border-radius: 0;\n box-shadow: none;\n}\n\ntextarea {\n field-sizing: content;\n width: 100%;\n min-height: calc(var(--typography-lineheight-md) * 2 + var(--dimension-space-150));\n max-height: calc(var(--typography-lineheight-md) * 6 + var(--dimension-space-150));\n padding: var(--dimension-space-075);\n border: none;\n outline: none;\n resize: none;\n overflow-y: auto;\n box-sizing: border-box;\n background: transparent;\n color: var(--color-foreground-primary);\n font-family: var(--typography-font-family-ui);\n font-size: var(--typography-fontsize-md);\n line-height: var(--typography-lineheight-md);\n font-weight: var(--typography-weight-regular);\n letter-spacing: var(--typography-letterspacing-negative-half);\n -webkit-user-select: text;\n user-select: text;\n}\n\ntextarea::placeholder {\n color: var(--color-foreground-secondary);\n}\n\ntextarea:focus::placeholder {\n color: var(--color-foreground-quaternary);\n}\n\ntextarea:focus,\ntextarea:focus-visible {\n outline: none;\n}\n\n.message-composer__tools {\n display: flex;\n align-items: center;\n gap: var(--dimension-space-050);\n min-height: var(--dimension-size-400);\n}\n\n.message-composer__controls {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--dimension-space-050);\n width: 100%;\n min-width: 0;\n}\n\n.message-composer__actions {\n display: flex;\n align-items: center;\n gap: var(--dimension-space-100);\n flex: 0 0 auto;\n margin-inline-start: auto;\n}\n\n@media (forced-colors: active) {\n .message-composer__field {\n border: var(--dimension-stroke-width-012) solid var(--ds-forced-color-control-boundary);\n box-shadow: none;\n }\n\n .message-composer--error .message-composer__field {\n border: 0;\n }\n\n .message-composer--error .message-composer__stack {\n border: var(--dimension-stroke-width-025) dashed var(--ds-forced-color-content);\n box-shadow: none;\n }\n\n .message-composer__error-support {\n border-block-end: var(--dimension-stroke-width-012) solid var(--ds-forced-color-content);\n background: var(--ds-forced-color-surface);\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop } from '@stencil/core';\nimport type { ButtonFilledIntent } from '../ButtonFilled/ButtonFilled';\nimport type { MessageComposerStatus } from '../conversation-types';\n\nlet composerId = 0;\n\n@Component({\n tag: 'ds-message-composer',\n styleUrl: 'MessageComposer.css',\n scoped: true,\n})\nexport class MessageComposer {\n @Element() el!: HTMLElement;\n\n @Prop({ mutable: true }) value: string = '';\n @Prop() placeholder: string = 'Write a message';\n @Prop() label: string = 'Message';\n @Prop() status: MessageComposerStatus = 'ready';\n /** Submission failure shown while status is error. */\n @Prop() errorMessage?: string;\n @Prop() isInactive: boolean = false;\n @Prop() submitIntent: ButtonFilledIntent = 'brand';\n\n @Event() dsInput!: EventEmitter<string>;\n @Event() dsSubmit!: EventEmitter<{ text: string }>;\n @Event() dsStop!: EventEmitter<void>;\n\n private textarea?: HTMLTextAreaElement;\n private readonly errorId = `ds-message-composer-error-${++composerId}`;\n\n @Method()\n async setFocus() {\n this.textarea?.focus();\n }\n\n private get streaming(): boolean {\n return this.status === 'submitted' || this.status === 'streaming';\n }\n\n private handleInput = (event: Event) => {\n this.value = (event.target as HTMLTextAreaElement).value;\n this.dsInput.emit(this.value);\n };\n\n private submit() {\n const text = this.value.trim();\n if (!text || this.isInactive || this.streaming) return;\n this.dsSubmit.emit({ text });\n }\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (event.key !== 'Enter' || event.shiftKey || event.isComposing) return;\n event.preventDefault();\n this.submit();\n };\n\n private handleAction = () => {\n if (this.streaming) this.dsStop.emit();\n else this.submit();\n };\n\n render() {\n const error = this.status === 'error';\n const visibleErrorMessage = this.errorMessage || 'Message could not be sent.';\n const actionInactive = !this.streaming && (this.isInactive || !this.value.trim());\n return (\n <Host>\n <form\n class={{ 'message-composer': true, 'message-composer--error': error }}\n aria-busy={this.streaming ? 'true' : undefined}\n onSubmit={(event: Event) => {\n event.preventDefault();\n this.submit();\n }}\n >\n <div class=\"message-composer__attachments\">\n <slot name=\"attachments\" />\n </div>\n <div class=\"message-composer__stack\">\n {error ? (\n <div class=\"message-composer__error-support\">\n <div id={this.errorId} class=\"message-composer__error-message\" role=\"alert\">\n <ds-icon name=\"ExclamationTriangle\" size=\"xs\" color=\"inherit\" />\n <ds-text variant=\"text-body-small\" color=\"negative\">\n {visibleErrorMessage}\n </ds-text>\n </div>\n <div class=\"message-composer__error-actions\">\n <slot name=\"error-actions\" />\n </div>\n </div>\n ) : null}\n <div class=\"message-composer__field\">\n <textarea\n ref={element => {\n this.textarea = element;\n }}\n value={this.value}\n placeholder={this.placeholder}\n aria-label={this.label}\n aria-invalid={error ? 'true' : undefined}\n aria-describedby={error ? this.errorId : undefined}\n disabled={this.isInactive}\n onInput={this.handleInput}\n onKeyDown={this.handleKeyDown}\n />\n <div class=\"message-composer__controls\">\n <div class=\"message-composer__tools\">\n <slot name=\"tools\" />\n </div>\n <div class=\"message-composer__actions\">\n <slot name=\"actions\" />\n {actionInactive ? (\n <ds-tooltip label=\"Send message\" side=\"top\" size=\"sm\">\n <ds-button-unfilled\n class=\"message-composer__action\"\n variant=\"icon\"\n icon=\"ArrowUp\"\n size=\"md\"\n aria-label=\"Send message\"\n hasBorder\n isInactive\n onDsClick={this.handleAction}\n />\n </ds-tooltip>\n ) : (\n <ds-tooltip\n label={this.streaming ? 'Stop response' : 'Send message'}\n side=\"top\"\n size=\"sm\"\n >\n <ds-button-filled\n class=\"message-composer__action\"\n variant=\"icon\"\n icon={this.streaming ? 'SquareFilled' : 'ArrowUp'}\n intent={this.streaming ? 'brand' : this.submitIntent}\n contrast=\"bold\"\n size=\"md\"\n aria-label={this.streaming ? 'Stop response' : 'Send message'}\n onDsClick={this.handleAction}\n />\n </ds-tooltip>\n )}\n </div>\n </div>\n </div>\n </div>\n </form>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["messageComposerCss","composerId","MessageComposer","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","value","placeholder","label","status","isInactive","submitIntent","errorId","handleInput","event","target","dsInput","emit","handleKeyDown","key","shiftKey","isComposing","preventDefault","submit","handleAction","streaming","dsStop","setFocus","textarea","focus","text","trim","dsSubmit","render","error","visibleErrorMessage","errorMessage","actionInactive","h","Host","class","undefined","onSubmit","name","id","role","size","color","variant","ref","element","disabled","onInput","onKeyDown","side","icon","rounded","hasBorder","onDsClick","intent","contrast"],"sources":["src/wc/components/MessageComposer/MessageComposer.css?tag=ds-message-composer&encapsulation=scoped","src/wc/components/MessageComposer/MessageComposer.tsx"],"sourcesContent":["@import '../../utils/forced-colors.css';\n\n:host {\n display: block;\n width: 100%;\n box-sizing: border-box;\n -webkit-user-select: none;\n user-select: none;\n}\n\n.message-composer {\n display: flex;\n flex-direction: column;\n gap: var(--dimension-space-050);\n width: 100%;\n margin: 0;\n}\n\n.message-composer__attachments:empty,\n.message-composer__tools:empty,\n.message-composer__error-actions:empty {\n display: none;\n}\n\n.message-composer__error-support,\n.message-composer__error-message,\n.message-composer__error-actions {\n display: flex;\n align-items: center;\n}\n\n.message-composer__error-support {\n justify-content: space-between;\n flex-wrap: wrap;\n gap: var(--dimension-space-075) var(--dimension-space-100);\n min-width: 0;\n padding: var(--dimension-space-075) var(--dimension-space-100);\n background: var(--color-background-faint-negative);\n}\n\n.message-composer__error-message {\n flex: 1 1 var(--dimension-panel-width-xs);\n gap: var(--dimension-space-050);\n min-width: 0;\n color: var(--color-foreground-bold-negative);\n}\n\n.message-composer__error-actions {\n flex: 0 1 auto;\n flex-wrap: wrap;\n gap: var(--dimension-space-050);\n}\n\n.message-composer__stack {\n min-width: 0;\n}\n\n.message-composer--error .message-composer__stack {\n overflow: hidden;\n border: var(--dimension-stroke-width-012) solid var(--color-border-bold-negative);\n border-radius: var(--dimension-radius-050);\n background: var(--color-background-primary);\n box-shadow: var(--effect-elevation-elevated-md);\n}\n\n.message-composer__field {\n display: flex;\n flex-direction: column;\n gap: var(--dimension-space-050);\n padding: var(--dimension-space-100);\n border-radius: var(--dimension-radius-050);\n background: var(--color-background-primary);\n box-shadow: var(--effect-elevation-elevated-md);\n overflow: hidden;\n}\n\n.message-composer:not(.message-composer--error) .message-composer__field:focus-within {\n box-shadow:\n var(--effect-elevation-elevated-md),\n inset 0 0 0 var(--dimension-stroke-width-018) var(--color-border-bold-brand);\n}\n\n.message-composer--error .message-composer__field {\n border-radius: 0;\n box-shadow: none;\n}\n\ntextarea {\n field-sizing: content;\n width: 100%;\n min-height: calc(var(--typography-lineheight-md) * 2 + var(--dimension-space-150));\n max-height: calc(var(--typography-lineheight-md) * 6 + var(--dimension-space-150));\n padding: var(--dimension-space-075);\n border: none;\n outline: none;\n resize: none;\n overflow-y: auto;\n box-sizing: border-box;\n background: transparent;\n color: var(--color-foreground-primary);\n font-family: var(--typography-font-family-ui);\n font-size: var(--typography-fontsize-md);\n line-height: var(--typography-lineheight-md);\n font-weight: var(--typography-weight-regular);\n letter-spacing: var(--typography-letterspacing-negative-half);\n -webkit-user-select: text;\n user-select: text;\n}\n\ntextarea::placeholder {\n color: var(--color-foreground-secondary);\n}\n\ntextarea:focus::placeholder {\n color: var(--color-foreground-quaternary);\n}\n\ntextarea:focus,\ntextarea:focus-visible {\n outline: none;\n}\n\n.message-composer__tools {\n display: flex;\n align-items: center;\n gap: var(--dimension-space-050);\n min-height: var(--dimension-size-400);\n}\n\n.message-composer__controls {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--dimension-space-050);\n width: 100%;\n min-width: 0;\n}\n\n.message-composer__actions {\n display: flex;\n align-items: center;\n gap: var(--dimension-space-100);\n flex: 0 0 auto;\n margin-inline-start: auto;\n}\n\n@media (forced-colors: active) {\n .message-composer__field {\n border: var(--dimension-stroke-width-012) solid var(--ds-forced-color-control-boundary);\n box-shadow: none;\n }\n\n .message-composer--error .message-composer__field {\n border: 0;\n }\n\n .message-composer--error .message-composer__stack {\n border: var(--dimension-stroke-width-025) dashed var(--ds-forced-color-content);\n box-shadow: none;\n }\n\n .message-composer__error-support {\n border-block-end: var(--dimension-stroke-width-012) solid var(--ds-forced-color-content);\n background: var(--ds-forced-color-surface);\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop } from '@stencil/core';\nimport type { ButtonFilledIntent } from '../ButtonFilled/ButtonFilled';\nimport type { MessageComposerStatus } from '../conversation-types';\n\nlet composerId = 0;\n\n@Component({\n tag: 'ds-message-composer',\n styleUrl: 'MessageComposer.css',\n scoped: true,\n})\nexport class MessageComposer {\n @Element() el!: HTMLElement;\n\n @Prop({ mutable: true }) value: string = '';\n @Prop() placeholder: string = 'Write a message';\n @Prop() label: string = 'Message';\n @Prop() status: MessageComposerStatus = 'ready';\n /** Submission failure shown while status is error. */\n @Prop() errorMessage?: string;\n @Prop() isInactive: boolean = false;\n @Prop() submitIntent: ButtonFilledIntent = 'brand';\n\n @Event() dsInput!: EventEmitter<string>;\n @Event() dsSubmit!: EventEmitter<{ text: string }>;\n @Event() dsStop!: EventEmitter<void>;\n\n private textarea?: HTMLTextAreaElement;\n private readonly errorId = `ds-message-composer-error-${++composerId}`;\n\n @Method()\n async setFocus() {\n this.textarea?.focus();\n }\n\n private get streaming(): boolean {\n return this.status === 'submitted' || this.status === 'streaming';\n }\n\n private handleInput = (event: Event) => {\n this.value = (event.target as HTMLTextAreaElement).value;\n this.dsInput.emit(this.value);\n };\n\n private submit() {\n const text = this.value.trim();\n if (!text || this.isInactive || this.streaming) return;\n this.dsSubmit.emit({ text });\n }\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (event.key !== 'Enter' || event.shiftKey || event.isComposing) return;\n event.preventDefault();\n this.submit();\n };\n\n private handleAction = () => {\n if (this.streaming) this.dsStop.emit();\n else this.submit();\n };\n\n render() {\n const error = this.status === 'error';\n const visibleErrorMessage = this.errorMessage || 'Message could not be sent.';\n const actionInactive = !this.streaming && (this.isInactive || !this.value.trim());\n return (\n <Host>\n <form\n class={{ 'message-composer': true, 'message-composer--error': error }}\n aria-busy={this.streaming ? 'true' : undefined}\n onSubmit={(event: Event) => {\n event.preventDefault();\n this.submit();\n }}\n >\n <div class=\"message-composer__attachments\">\n <slot name=\"attachments\" />\n </div>\n <div class=\"message-composer__stack\">\n {error ? (\n <div class=\"message-composer__error-support\">\n <div id={this.errorId} class=\"message-composer__error-message\" role=\"alert\">\n <ds-icon name=\"ExclamationTriangle\" size=\"xs\" color=\"inherit\" />\n <ds-text variant=\"text-body-small\" color=\"negative\">\n {visibleErrorMessage}\n </ds-text>\n </div>\n <div class=\"message-composer__error-actions\">\n <slot name=\"error-actions\" />\n </div>\n </div>\n ) : null}\n <div class=\"message-composer__field\">\n <textarea\n ref={element => {\n this.textarea = element;\n }}\n value={this.value}\n placeholder={this.placeholder}\n aria-label={this.label}\n aria-invalid={error ? 'true' : undefined}\n aria-describedby={error ? this.errorId : undefined}\n disabled={this.isInactive}\n onInput={this.handleInput}\n onKeyDown={this.handleKeyDown}\n />\n <div class=\"message-composer__controls\">\n <div class=\"message-composer__tools\">\n <slot name=\"tools\" />\n </div>\n <div class=\"message-composer__actions\">\n <slot name=\"actions\" />\n {actionInactive ? (\n <ds-tooltip label=\"Send message\" side=\"top\" size=\"sm\">\n <ds-button-unfilled\n class=\"message-composer__action\"\n variant=\"icon\"\n icon=\"ArrowUp\"\n size=\"md\"\n rounded\n aria-label=\"Send message\"\n hasBorder\n isInactive\n onDsClick={this.handleAction}\n />\n </ds-tooltip>\n ) : (\n <ds-tooltip\n label={this.streaming ? 'Stop response' : 'Send message'}\n side=\"top\"\n size=\"sm\"\n >\n <ds-button-filled\n class=\"message-composer__action\"\n variant=\"icon\"\n icon={this.streaming ? 'SquareFilled' : 'ArrowUp'}\n intent={this.streaming ? 'brand' : this.submitIntent}\n contrast=\"bold\"\n size=\"md\"\n rounded\n aria-label={this.streaming ? 'Stop response' : 'Send message'}\n onDsClick={this.handleAction}\n />\n </ds-tooltip>\n )}\n </div>\n </div>\n </div>\n </div>\n </form>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{p as e,H as s,c as t,h as i,a as r,t as o}from"./index.js";import{S as a}from"./p-Ck1hgD6g.js";import{r as l}from"./p-CochmPyg.js";import{d as n}from"./p-D0KD-Nr_.js";import{d}from"./p-CI7c9kp-.js";import{d as c}from"./p-DjkUFlDW.js";import{d as h}from"./p-0XTyQNRG.js";import{d as f}from"./p-Cihjy4WY.js";import{d as g}from"./p-BXSHN1OK.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 o=[...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(o&&i){this.scheduleNewTurnPosition(o)}return}const a=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))||!o&&l.length>0&&a>0&&l.every((s=>e.indexOf(s)<a));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(o){this.scheduleNewTurnPosition(o)}};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 a({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 o=l(r,"var(--dimension-space-800)");const a=Math.max(this.viewport.scrollHeight-this.viewport.clientHeight,0);const n=Math.min(Math.max(i-o,0),a);this.following=a-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 o=l(r,"var(--dimension-space-800)");const a=Math.max(i.bottom-t.top,0);const n=Math.max(Math.ceil(this.viewport.clientHeight-o-a),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:"f13245de0ba8b3de4b66247c745a6c9ca70687cb"},i("div",{key:"5a059d33eeb4ecb521084064ced7f45b41f30085",class:"message-scroller"},i("div",{key:"4e3eb536398703d3fb2723e57098f791c0c33894",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:"804d384f3934ed05a47aa9833dd2e7814798ab8d",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:"54dd4176f6b8d311b1cb793e7b03c225780795c7",ref:e=>{this.transcriptSlot=e},onSlotchange:this.handleTranscriptSlotChange}))),i("div",{key:"632c893cdb30e7ec7072878a79bedafb23204e8a",class:"message-scroller__overlay",ref:e=>{this.overlay=e}},i("div",{key:"4a7dfd07f520540e812658d11334309165d77179",class:"message-scroller__overlay-stack"},i("div",{key:"3db2b10a56e8542efc2b7067d14cd4b83133bdd6",class:"message-scroller__interaction"},i("slot",{key:"9abb447427ab6c68572e7e1c5b1160ac826de13a",name:"interaction"})),i("div",{key:"2719c7c314b0445f6a2bfd85c23e8a7d9b6b43d6",class:"message-scroller__overlay-content"},i("slot",{key:"25b496b30335a29818cfef54952005678783134f",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(o(e))){customElements.define(o(e),k)}break;case"ds-badge":if(!customElements.get(o(e))){n()}break;case"ds-button-unfilled":if(!customElements.get(o(e))){d()}break;case"ds-icon":if(!customElements.get(o(e))){c()}break;case"ds-loader":if(!customElements.get(o(e))){h()}break;case"ds-text":if(!customElements.get(o(e))){f()}break;case"ds-tooltip":if(!customElements.get(o(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-Ck1hgD6g.js";import{r as l}from"./p-CochmPyg.js";import{d as n}from"./p-CwdRaJER.js";import{d}from"./p-D6FRqNhN.js";import{d as c}from"./p-DjkUFlDW.js";import{d as h}from"./p-0XTyQNRG.js";import{d as f}from"./p-D8OWhnID.js";import{d as g}from"./p-DIQiHX0q.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-B7bXN-vf.js";const t=o;const p=s;export{t as DsMessage,p as defineCustomElement};
1
+ import{M as o,d as s}from"./p-DebLYW7A.js";const t=o;const p=s;export{t as DsMessage,p as defineCustomElement};
2
2
  //# sourceMappingURL=ds-message.js.map
@@ -1,2 +1,2 @@
1
- import{M as s,d as o}from"./p-DHapI2sf.js";const p=s;const t=o;export{p as DsMobileBarNav,t as defineCustomElement};
1
+ import{M as o,d as s}from"./p-7TVdPhGR.js";const t=o;const p=s;export{t as DsMobileBarNav,p as defineCustomElement};
2
2
  //# sourceMappingURL=ds-mobile-bar-nav.js.map