@ds-mo/ui 15.5.1 → 15.7.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 (395) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +1 -1
  3. package/dist/agent.json +372 -25
  4. package/dist/angular/ds-data-preferences.d.ts +1 -1
  5. package/dist/angular/ds-data-preferences.js +3 -3
  6. package/dist/angular/ds-menu.d.ts +7 -1
  7. package/dist/angular/ds-menu.js +5 -2
  8. package/dist/angular/ds-navigation-tab-group.d.ts +15 -0
  9. package/dist/angular/ds-navigation-tab-group.js +42 -0
  10. package/dist/angular/ds-select-toggle.d.ts +15 -0
  11. package/dist/angular/ds-select-toggle.js +42 -0
  12. package/dist/angular/ds-table.d.ts +1 -1
  13. package/dist/angular/ds-table.js +3 -3
  14. package/dist/angular/index.d.ts +1 -1
  15. package/dist/angular/index.js +2 -0
  16. package/dist/angular/proxies.d.ts +2 -0
  17. package/dist/angular/proxies.js +2 -0
  18. package/dist/components/THIRD-PARTY-NOTICES +1 -1
  19. package/dist/components/bundled-dependencies.json +1 -1
  20. package/dist/components/ds-agent-activity.js +1 -1
  21. package/dist/components/ds-agent-questionnaire.js +1 -1
  22. package/dist/components/ds-agent-response.js +1 -1
  23. package/dist/components/ds-agent-source-list.js +1 -1
  24. package/dist/components/ds-agent-tool-call.js +1 -1
  25. package/dist/components/ds-attachment-list.js +1 -1
  26. package/dist/components/ds-badge.js +1 -1
  27. package/dist/components/ds-banner.js +1 -1
  28. package/dist/components/ds-bar-action.js +1 -1
  29. package/dist/components/ds-bar-nav.js +1 -1
  30. package/dist/components/ds-bar-page-title.js +1 -1
  31. package/dist/components/ds-bar-title.js +1 -1
  32. package/dist/components/ds-bar-workflow.js +1 -1
  33. package/dist/components/ds-breadcrumb.js +1 -1
  34. package/dist/components/ds-button-filled.js +1 -1
  35. package/dist/components/ds-button-inverted.js +1 -1
  36. package/dist/components/ds-button-unfilled.js +1 -1
  37. package/dist/components/ds-calendar.js +1 -1
  38. package/dist/components/ds-card-action-center.js +1 -1
  39. package/dist/components/ds-card-chart.js +1 -1
  40. package/dist/components/ds-card-navigation.js +1 -1
  41. package/dist/components/ds-card-overview.js +1 -1
  42. package/dist/components/ds-card-setting.js +1 -1
  43. package/dist/components/ds-card-settings-scope.js +1 -1
  44. package/dist/components/ds-chart-legend.js +1 -1
  45. package/dist/components/ds-chart.js +1 -1
  46. package/dist/components/ds-checkbox-group.js +1 -1
  47. package/dist/components/ds-checkbox.js +1 -1
  48. package/dist/components/ds-chip.js +1 -1
  49. package/dist/components/ds-code-block.js +1 -1
  50. package/dist/components/ds-conversation-list-item.js +1 -1
  51. package/dist/components/ds-conversation-list-section.js +1 -1
  52. package/dist/components/ds-conversation-list.js +1 -1
  53. package/dist/components/ds-data-customize.js +1 -1
  54. package/dist/components/ds-data-filter.js +1 -1
  55. package/dist/components/ds-data-group.js +1 -1
  56. package/dist/components/ds-data-preferences.js +1 -1
  57. package/dist/components/ds-data-preferences.js.map +1 -1
  58. package/dist/components/ds-data-saved-views.js +1 -1
  59. package/dist/components/ds-data-search.js +1 -1
  60. package/dist/components/ds-data-search.js.map +1 -1
  61. package/dist/components/ds-data-sort.js +1 -1
  62. package/dist/components/ds-data-toolbar.js +1 -1
  63. package/dist/components/ds-empty-state.js +1 -1
  64. package/dist/components/ds-field.js +1 -1
  65. package/dist/components/ds-filter-menu.js +1 -1
  66. package/dist/components/ds-inline-banner-settings.js +1 -1
  67. package/dist/components/ds-input-date.js +1 -1
  68. package/dist/components/ds-input-time.js +1 -1
  69. package/dist/components/ds-input.js +1 -1
  70. package/dist/components/ds-map-cluster-marker.js +1 -1
  71. package/dist/components/ds-map-entity-marker.js +1 -1
  72. package/dist/components/ds-markdown.js +1 -1
  73. package/dist/components/ds-menu.js +1 -1
  74. package/dist/components/ds-message-actions.js +1 -1
  75. package/dist/components/ds-message-composer.js +1 -1
  76. package/dist/components/ds-message-scroller.js +1 -1
  77. package/dist/components/ds-message.js +1 -1
  78. package/dist/components/ds-mobile-bar-nav.js +1 -1
  79. package/dist/components/ds-mobile-header.js +1 -1
  80. package/dist/components/ds-mobile-section-switcher.js +1 -1
  81. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  82. package/dist/components/ds-modal.js +1 -1
  83. package/dist/components/ds-navigation-tab-group.d.ts +11 -0
  84. package/dist/components/ds-navigation-tab-group.js +2 -0
  85. package/dist/components/ds-navigation-tab-group.js.map +1 -0
  86. package/dist/components/ds-pagination.js +1 -1
  87. package/dist/components/ds-panel-nav.js +1 -1
  88. package/dist/components/ds-panel-sub-nav.js +1 -1
  89. package/dist/components/ds-panel-tool-header.js +1 -1
  90. package/dist/components/ds-panel-tool-search.js +1 -1
  91. package/dist/components/ds-panel-tools.js +1 -1
  92. package/dist/components/ds-paper-texture.js +1 -1
  93. package/dist/components/ds-radio-tile.js +1 -1
  94. package/dist/components/ds-radio.js +1 -1
  95. package/dist/components/ds-score.js +1 -1
  96. package/dist/components/ds-select-toggle.d.ts +11 -0
  97. package/dist/components/ds-select-toggle.js +2 -0
  98. package/dist/components/ds-select-toggle.js.map +1 -0
  99. package/dist/components/ds-select.js +1 -1
  100. package/dist/components/ds-setting-row-checkbox.js +1 -1
  101. package/dist/components/ds-setting-row-radio.js +1 -1
  102. package/dist/components/ds-setting-row-radio.js.map +1 -1
  103. package/dist/components/ds-setting-row-toggle.js +1 -1
  104. package/dist/components/ds-shell-app.js +1 -1
  105. package/dist/components/ds-shell-page.js +1 -1
  106. package/dist/components/ds-shell-tools.js +1 -1
  107. package/dist/components/ds-skeleton.js +1 -1
  108. package/dist/components/ds-slider.js +1 -1
  109. package/dist/components/ds-slider.js.map +1 -1
  110. package/dist/components/ds-swatch-picker.js +1 -1
  111. package/dist/components/ds-switch.js +1 -1
  112. package/dist/components/ds-tab-group.js +1 -1
  113. package/dist/components/ds-table.js +1 -1
  114. package/dist/components/ds-table.js.map +1 -1
  115. package/dist/components/ds-tag.js +1 -1
  116. package/dist/components/ds-text.js +1 -1
  117. package/dist/components/ds-textarea.js +1 -1
  118. package/dist/components/ds-time-picker.js +1 -1
  119. package/dist/components/ds-toast.js +1 -1
  120. package/dist/components/ds-toast.js.map +1 -1
  121. package/dist/components/ds-tooltip-chart.js +1 -1
  122. package/dist/components/ds-tooltip.js +1 -1
  123. package/dist/components/ds-typing-indicator.js +1 -1
  124. package/dist/components/{p--pJyciTI.js → p--_bPiNCd.js} +2 -2
  125. package/dist/components/{p-UJMEz8_O.js → p-3SCy1PHa.js} +2 -2
  126. package/dist/components/{p-7MwoWtTJ.js → p-4sBUSsqs.js} +2 -2
  127. package/dist/components/p-4sBUSsqs.js.map +1 -0
  128. package/dist/components/{p-kwS-vkau.js → p-5aZVNYQz.js} +2 -2
  129. package/dist/components/{p-DKGW3gRa.js → p-AGqUGzNZ.js} +2 -2
  130. package/dist/components/p-BJf49edB.js +2 -0
  131. package/dist/components/p-BJf49edB.js.map +1 -0
  132. package/dist/components/{p-BNarCFJZ.js → p-BKyE025p.js} +2 -2
  133. package/dist/components/{p-S1Ct3FJV.js → p-BNN9KkXe.js} +2 -2
  134. package/dist/components/p-BPDo1eQV.js +2 -0
  135. package/dist/components/p-BPDo1eQV.js.map +1 -0
  136. package/dist/components/{p-CwdRaJER.js → p-BWJb2rih.js} +2 -2
  137. package/dist/components/{p-D8OWhnID.js → p-BbvAWFJA.js} +2 -2
  138. package/dist/components/p-Bdp2V6-c.js +2 -0
  139. package/dist/components/{p-Da3aFRk2.js.map → p-Bdp2V6-c.js.map} +1 -1
  140. package/dist/components/p-BjBFJ2dd.js +2 -0
  141. package/dist/components/{p-C5BBIDVm.js.map → p-BjBFJ2dd.js.map} +1 -1
  142. package/dist/components/{p-BmIllmq2.js → p-BwNW5nqj.js} +2 -2
  143. package/dist/components/{p-CzdE3M3g.js → p-C0L-VnSr.js} +2 -2
  144. package/dist/components/p-C2e7BkNn.js +2 -0
  145. package/dist/components/p-C2e7BkNn.js.map +1 -0
  146. package/dist/components/{p-BnuNaXR2.js → p-C4t7HnfZ.js} +2 -2
  147. package/dist/components/{p-C1ZfBbJ_.js → p-C7_awFtr.js} +2 -2
  148. package/dist/components/p-CCsxoztj.js +2 -0
  149. package/dist/components/{p-BuGlC5r8.js.map → p-CCsxoztj.js.map} +1 -1
  150. package/dist/components/{p-C378wwRj.js → p-CHyxUWqL.js} +2 -2
  151. package/dist/components/{p-d76Ry5nh.js → p-CKSJwSWd.js} +2 -2
  152. package/dist/components/p-CLqqb0Jp.js +2 -0
  153. package/dist/components/{p-CcwxySms.js.map → p-CLqqb0Jp.js.map} +1 -1
  154. package/dist/components/{p-C9H-3JOA.js → p-CRhoeCC8.js} +2 -2
  155. package/dist/components/p-CWc6Blcp.js +2 -0
  156. package/dist/components/{p-B95UP66y.js.map → p-CWc6Blcp.js.map} +1 -1
  157. package/dist/components/p-CXB_T13u.js +2 -0
  158. package/dist/components/{p-CNeDJTGX.js.map → p-CXB_T13u.js.map} +1 -1
  159. package/dist/components/{p-DZLtFn-r.js → p-CgC4SM5b.js} +2 -2
  160. package/dist/components/p-CqAC2IQO.js +2 -0
  161. package/dist/components/{p-5-gQbIIz.js.map → p-CqAC2IQO.js.map} +1 -1
  162. package/dist/components/{p--VQc5GDy.js → p-Cs8Gq-PZ.js} +2 -2
  163. package/dist/components/p-Ct2KQHF4.js +2 -0
  164. package/dist/components/{p-Df9S0aWi.js.map → p-Ct2KQHF4.js.map} +1 -1
  165. package/dist/components/{p-DYsRXun3.js → p-CvIHBa8S.js} +2 -2
  166. package/dist/components/{p-YC7UM4jH.js → p-D1tmszmN.js} +2 -2
  167. package/dist/components/{p-BlbfbYg6.js → p-D62yUMhr.js} +2 -2
  168. package/dist/components/{p-CgQB8Ct5.js → p-D9l0QBgN.js} +2 -2
  169. package/dist/components/{p-Dr5rkAhe.js → p-DGrSro-o.js} +2 -2
  170. package/dist/components/{p-BVxK8ce0.js → p-DKvHBXwn.js} +2 -2
  171. package/dist/components/p-D_xZ5SFL.js +2 -0
  172. package/dist/components/{p-bQE1NZVe.js.map → p-D_xZ5SFL.js.map} +1 -1
  173. package/dist/components/p-DdNJPBCS.js +2 -0
  174. package/dist/components/{p-a-cIN_BX.js.map → p-DdNJPBCS.js.map} +1 -1
  175. package/dist/components/p-DiPqdcD4.js +2 -0
  176. package/dist/components/{p-DPwptvZl.js.map → p-DiPqdcD4.js.map} +1 -1
  177. package/dist/components/p-Dkh_40bl.js +2 -0
  178. package/dist/components/p-Dkh_40bl.js.map +1 -0
  179. package/dist/components/p-DlCLfwP4.js +2 -0
  180. package/dist/components/p-DmgDVoDb.js +2 -0
  181. package/dist/components/{p-CXlklL-0.js.map → p-DmgDVoDb.js.map} +1 -1
  182. package/dist/components/{p-DXL5D30P.js → p-Du8LT8JS.js} +2 -2
  183. package/dist/components/p-DuCfCvPs.js +2 -0
  184. package/dist/components/p-DuCfCvPs.js.map +1 -0
  185. package/dist/components/{p-BuDxlhnQ.js → p-Dyjs8_Cl.js} +2 -2
  186. package/dist/components/{p-BYrBU_U9.js → p-HMDczkQf.js} +2 -2
  187. package/dist/components/p-LJXiEPw1.js +2 -0
  188. package/dist/components/{p-D9_iDlkT.js.map → p-LJXiEPw1.js.map} +1 -1
  189. package/dist/components/{p-CbCN9ew9.js → p-QGtBlTMt.js} +2 -2
  190. package/dist/components/{p-C35Tki38.js → p-UBQ5O7B-.js} +2 -2
  191. package/dist/components/{p-DVsGfz7J.js → p-dSNHIJz6.js} +2 -2
  192. package/dist/components/{p-B9y6azEw.js → p-eKnJNQtL.js} +2 -2
  193. package/dist/components/{p-sDm8BEMy.js → p-g2OUK8Z0.js} +2 -2
  194. package/dist/components/{p-DSmDyI2o.js → p-n_OBbh94.js} +2 -2
  195. package/dist/components/{p-BfVMaZZE.js → p-oBpjD9OA.js} +2 -2
  196. package/dist/components/p-pJ6gbwSa.js +2 -0
  197. package/dist/components/p-pJ6gbwSa.js.map +1 -0
  198. package/dist/components/{p-DfMTDFcE.js → p-v9Nhw5yM.js} +2 -2
  199. package/dist/docs/components.json +1067 -213
  200. package/dist/lint/index.js +1 -1
  201. package/dist/mcp-data/registry/agent-activity.json +1 -1
  202. package/dist/mcp-data/registry/agent-questionnaire.json +1 -1
  203. package/dist/mcp-data/registry/agent-response.json +1 -1
  204. package/dist/mcp-data/registry/agent-source-list.json +1 -1
  205. package/dist/mcp-data/registry/agent-tool-call.json +1 -1
  206. package/dist/mcp-data/registry/attachment-list.json +1 -1
  207. package/dist/mcp-data/registry/avatar.json +1 -1
  208. package/dist/mcp-data/registry/badge.json +1 -1
  209. package/dist/mcp-data/registry/banner.json +1 -1
  210. package/dist/mcp-data/registry/bar-action.json +1 -1
  211. package/dist/mcp-data/registry/bar-nav.json +1 -1
  212. package/dist/mcp-data/registry/bar-page-title.json +1 -1
  213. package/dist/mcp-data/registry/bar-title.json +1 -1
  214. package/dist/mcp-data/registry/bar-workflow.json +1 -1
  215. package/dist/mcp-data/registry/breadcrumb.json +1 -1
  216. package/dist/mcp-data/registry/button-filled.json +1 -1
  217. package/dist/mcp-data/registry/button-inverted.json +1 -1
  218. package/dist/mcp-data/registry/button-unfilled.json +1 -1
  219. package/dist/mcp-data/registry/calendar.json +1 -1
  220. package/dist/mcp-data/registry/card-action-center.json +1 -1
  221. package/dist/mcp-data/registry/card-chart.json +1 -1
  222. package/dist/mcp-data/registry/card-navigation.json +1 -1
  223. package/dist/mcp-data/registry/card-overview.json +1 -1
  224. package/dist/mcp-data/registry/card-setting.json +1 -1
  225. package/dist/mcp-data/registry/card-settings-scope.json +1 -1
  226. package/dist/mcp-data/registry/chart-legend.json +1 -1
  227. package/dist/mcp-data/registry/chart.json +1 -1
  228. package/dist/mcp-data/registry/checkbox-group.json +1 -1
  229. package/dist/mcp-data/registry/checkbox.json +1 -1
  230. package/dist/mcp-data/registry/chip.json +1 -1
  231. package/dist/mcp-data/registry/code-block.json +1 -1
  232. package/dist/mcp-data/registry/conversation-list-item.json +1 -1
  233. package/dist/mcp-data/registry/conversation-list-section.json +1 -1
  234. package/dist/mcp-data/registry/conversation-list.json +1 -1
  235. package/dist/mcp-data/registry/data-customize.json +1 -1
  236. package/dist/mcp-data/registry/data-filter.json +1 -1
  237. package/dist/mcp-data/registry/data-group.json +1 -1
  238. package/dist/mcp-data/registry/data-preferences.json +22 -6
  239. package/dist/mcp-data/registry/data-saved-views.json +1 -1
  240. package/dist/mcp-data/registry/data-search.json +1 -1
  241. package/dist/mcp-data/registry/data-sort.json +1 -1
  242. package/dist/mcp-data/registry/data-toolbar.json +1 -1
  243. package/dist/mcp-data/registry/divider.json +1 -1
  244. package/dist/mcp-data/registry/empty-state.json +1 -1
  245. package/dist/mcp-data/registry/field.json +1 -1
  246. package/dist/mcp-data/registry/filter-menu.json +1 -1
  247. package/dist/mcp-data/registry/icon.json +1 -1
  248. package/dist/mcp-data/registry/inline-banner-settings.json +1 -1
  249. package/dist/mcp-data/registry/input-date.json +1 -1
  250. package/dist/mcp-data/registry/input-time.json +1 -1
  251. package/dist/mcp-data/registry/input.json +1 -1
  252. package/dist/mcp-data/registry/loader.json +1 -1
  253. package/dist/mcp-data/registry/map-cluster-marker.json +1 -1
  254. package/dist/mcp-data/registry/map-entity-marker.json +1 -1
  255. package/dist/mcp-data/registry/markdown.json +1 -1
  256. package/dist/mcp-data/registry/menu.json +31 -12
  257. package/dist/mcp-data/registry/message-actions.json +1 -1
  258. package/dist/mcp-data/registry/message-bubble.json +1 -1
  259. package/dist/mcp-data/registry/message-composer.json +1 -1
  260. package/dist/mcp-data/registry/message-scroller.json +1 -1
  261. package/dist/mcp-data/registry/message.json +1 -1
  262. package/dist/mcp-data/registry/mobile-bar-nav.json +1 -1
  263. package/dist/mcp-data/registry/mobile-header.json +1 -1
  264. package/dist/mcp-data/registry/mobile-section-switcher.json +1 -1
  265. package/dist/mcp-data/registry/mobile-sheet-nav.json +1 -1
  266. package/dist/mcp-data/registry/modal.json +1 -1
  267. package/dist/mcp-data/registry/navigation-tab-group.json +279 -0
  268. package/dist/mcp-data/registry/pagination.json +1 -1
  269. package/dist/mcp-data/registry/panel-nav.json +1 -1
  270. package/dist/mcp-data/registry/panel-sub-nav.json +1 -1
  271. package/dist/mcp-data/registry/panel-tool-header.json +1 -1
  272. package/dist/mcp-data/registry/panel-tool-search.json +1 -1
  273. package/dist/mcp-data/registry/panel-tools.json +1 -1
  274. package/dist/mcp-data/registry/paper-texture.json +1 -1
  275. package/dist/mcp-data/registry/radio-tile.json +1 -1
  276. package/dist/mcp-data/registry/radio.json +1 -1
  277. package/dist/mcp-data/registry/registry.json +378 -25
  278. package/dist/mcp-data/registry/score.json +1 -1
  279. package/dist/mcp-data/registry/scroll-overlay.json +1 -1
  280. package/dist/mcp-data/registry/select-toggle.json +351 -0
  281. package/dist/mcp-data/registry/select.json +1 -1
  282. package/dist/mcp-data/registry/setting-row-checkbox.json +1 -1
  283. package/dist/mcp-data/registry/setting-row-radio.json +1 -1
  284. package/dist/mcp-data/registry/setting-row-toggle.json +1 -1
  285. package/dist/mcp-data/registry/shell-app.json +1 -1
  286. package/dist/mcp-data/registry/shell-page.json +1 -1
  287. package/dist/mcp-data/registry/shell-tools.json +1 -1
  288. package/dist/mcp-data/registry/skeleton.json +1 -1
  289. package/dist/mcp-data/registry/slider.json +7 -6
  290. package/dist/mcp-data/registry/swatch-picker.json +1 -1
  291. package/dist/mcp-data/registry/switch.json +3 -3
  292. package/dist/mcp-data/registry/tab-group.json +15 -9
  293. package/dist/mcp-data/registry/table.json +80 -21
  294. package/dist/mcp-data/registry/tag.json +1 -1
  295. package/dist/mcp-data/registry/text.json +1 -1
  296. package/dist/mcp-data/registry/textarea.json +1 -1
  297. package/dist/mcp-data/registry/time-picker.json +1 -1
  298. package/dist/mcp-data/registry/toast.json +1 -1
  299. package/dist/mcp-data/registry/tooltip-chart.json +1 -1
  300. package/dist/mcp-data/registry/tooltip.json +1 -1
  301. package/dist/mcp-data/registry/typing-indicator.json +1 -1
  302. package/dist/react/components.d.ts +2 -0
  303. package/dist/react/components.js +2 -0
  304. package/dist/react/ds-menu.d.ts +2 -1
  305. package/dist/react/ds-menu.js +1 -0
  306. package/dist/react/ds-navigation-tab-group.d.ts +12 -0
  307. package/dist/react/ds-navigation-tab-group.js +12 -0
  308. package/dist/react/ds-select-toggle.d.ts +12 -0
  309. package/dist/react/ds-select-toggle.js +12 -0
  310. package/dist/styles/table.css +41 -0
  311. package/dist/types/components/DataPreferences/DataPreferences.d.ts +3 -0
  312. package/dist/types/components/Menu/Menu.d.ts +5 -1
  313. package/dist/types/components/Menu/menu-types.d.ts +36 -0
  314. package/dist/types/components/NavigationTabGroup/NavigationTabGroup.d.ts +16 -0
  315. package/dist/types/components/SelectToggle/SelectToggle.d.ts +46 -0
  316. package/dist/types/components/Slider/Slider.d.ts +1 -1
  317. package/dist/types/components/TabGroup/TabGroup.d.ts +2 -2
  318. package/dist/types/components/Table/Table.d.ts +14 -2
  319. package/dist/types/components/Table/index.d.ts +1 -1
  320. package/dist/types/components/Table/table-column-customizer.d.ts +23 -4
  321. package/dist/types/components/Table/table-layout-controller.d.ts +2 -1
  322. package/dist/types/components/Table/table-types.d.ts +3 -1
  323. package/dist/types/components.d.ts +279 -21
  324. package/dist/vue/components.d.ts +2 -0
  325. package/dist/vue/components.js +2 -0
  326. package/dist/vue/ds-data-preferences.js +1 -0
  327. package/dist/vue/ds-menu.js +2 -0
  328. package/dist/vue/ds-navigation-tab-group.d.ts +3 -0
  329. package/dist/vue/ds-navigation-tab-group.js +16 -0
  330. package/dist/vue/ds-select-toggle.d.ts +3 -0
  331. package/dist/vue/ds-select-toggle.js +19 -0
  332. package/dist/vue/ds-table.js +3 -0
  333. package/package.json +3 -3
  334. package/dist/components/p-5-gQbIIz.js +0 -2
  335. package/dist/components/p-7MwoWtTJ.js.map +0 -1
  336. package/dist/components/p-B95UP66y.js +0 -2
  337. package/dist/components/p-BLeHHoVb.js +0 -2
  338. package/dist/components/p-BLeHHoVb.js.map +0 -1
  339. package/dist/components/p-Bf-BphXP.js +0 -2
  340. package/dist/components/p-Bf-BphXP.js.map +0 -1
  341. package/dist/components/p-BuGlC5r8.js +0 -2
  342. package/dist/components/p-C5BBIDVm.js +0 -2
  343. package/dist/components/p-CE6MaXBg.js +0 -2
  344. package/dist/components/p-CE6MaXBg.js.map +0 -1
  345. package/dist/components/p-CNeDJTGX.js +0 -2
  346. package/dist/components/p-CXlklL-0.js +0 -2
  347. package/dist/components/p-CcwxySms.js +0 -2
  348. package/dist/components/p-D9_iDlkT.js +0 -2
  349. package/dist/components/p-DPwptvZl.js +0 -2
  350. package/dist/components/p-Da3aFRk2.js +0 -2
  351. package/dist/components/p-Df9S0aWi.js +0 -2
  352. package/dist/components/p-DvGrsLgt.js +0 -2
  353. package/dist/components/p-DvGrsLgt.js.map +0 -1
  354. package/dist/components/p-a-cIN_BX.js +0 -2
  355. package/dist/components/p-aD5cw_m2.js +0 -2
  356. package/dist/components/p-aD5cw_m2.js.map +0 -1
  357. package/dist/components/p-bQE1NZVe.js +0 -2
  358. package/dist/components/p-kDZ0sEII.js +0 -2
  359. package/dist/components/p-t2Ebn8si.js +0 -2
  360. package/dist/components/p-t2Ebn8si.js.map +0 -1
  361. /package/dist/components/{p--pJyciTI.js.map → p--_bPiNCd.js.map} +0 -0
  362. /package/dist/components/{p-UJMEz8_O.js.map → p-3SCy1PHa.js.map} +0 -0
  363. /package/dist/components/{p-kwS-vkau.js.map → p-5aZVNYQz.js.map} +0 -0
  364. /package/dist/components/{p-DKGW3gRa.js.map → p-AGqUGzNZ.js.map} +0 -0
  365. /package/dist/components/{p-BNarCFJZ.js.map → p-BKyE025p.js.map} +0 -0
  366. /package/dist/components/{p-S1Ct3FJV.js.map → p-BNN9KkXe.js.map} +0 -0
  367. /package/dist/components/{p-CwdRaJER.js.map → p-BWJb2rih.js.map} +0 -0
  368. /package/dist/components/{p-D8OWhnID.js.map → p-BbvAWFJA.js.map} +0 -0
  369. /package/dist/components/{p-BmIllmq2.js.map → p-BwNW5nqj.js.map} +0 -0
  370. /package/dist/components/{p-CzdE3M3g.js.map → p-C0L-VnSr.js.map} +0 -0
  371. /package/dist/components/{p-BnuNaXR2.js.map → p-C4t7HnfZ.js.map} +0 -0
  372. /package/dist/components/{p-C1ZfBbJ_.js.map → p-C7_awFtr.js.map} +0 -0
  373. /package/dist/components/{p-C378wwRj.js.map → p-CHyxUWqL.js.map} +0 -0
  374. /package/dist/components/{p-d76Ry5nh.js.map → p-CKSJwSWd.js.map} +0 -0
  375. /package/dist/components/{p-C9H-3JOA.js.map → p-CRhoeCC8.js.map} +0 -0
  376. /package/dist/components/{p-DZLtFn-r.js.map → p-CgC4SM5b.js.map} +0 -0
  377. /package/dist/components/{p--VQc5GDy.js.map → p-Cs8Gq-PZ.js.map} +0 -0
  378. /package/dist/components/{p-DYsRXun3.js.map → p-CvIHBa8S.js.map} +0 -0
  379. /package/dist/components/{p-YC7UM4jH.js.map → p-D1tmszmN.js.map} +0 -0
  380. /package/dist/components/{p-BlbfbYg6.js.map → p-D62yUMhr.js.map} +0 -0
  381. /package/dist/components/{p-CgQB8Ct5.js.map → p-D9l0QBgN.js.map} +0 -0
  382. /package/dist/components/{p-Dr5rkAhe.js.map → p-DGrSro-o.js.map} +0 -0
  383. /package/dist/components/{p-BVxK8ce0.js.map → p-DKvHBXwn.js.map} +0 -0
  384. /package/dist/components/{p-kDZ0sEII.js.map → p-DlCLfwP4.js.map} +0 -0
  385. /package/dist/components/{p-DXL5D30P.js.map → p-Du8LT8JS.js.map} +0 -0
  386. /package/dist/components/{p-BuDxlhnQ.js.map → p-Dyjs8_Cl.js.map} +0 -0
  387. /package/dist/components/{p-BYrBU_U9.js.map → p-HMDczkQf.js.map} +0 -0
  388. /package/dist/components/{p-CbCN9ew9.js.map → p-QGtBlTMt.js.map} +0 -0
  389. /package/dist/components/{p-C35Tki38.js.map → p-UBQ5O7B-.js.map} +0 -0
  390. /package/dist/components/{p-DVsGfz7J.js.map → p-dSNHIJz6.js.map} +0 -0
  391. /package/dist/components/{p-B9y6azEw.js.map → p-eKnJNQtL.js.map} +0 -0
  392. /package/dist/components/{p-sDm8BEMy.js.map → p-g2OUK8Z0.js.map} +0 -0
  393. /package/dist/components/{p-DSmDyI2o.js.map → p-n_OBbh94.js.map} +0 -0
  394. /package/dist/components/{p-BfVMaZZE.js.map → p-oBpjD9OA.js.map} +0 -0
  395. /package/dist/components/{p-DfMTDFcE.js.map → p-v9Nhw5yM.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isMenuSwatchPickerSection","section","variant","isMenuPickerSection","snapshotMenuSections","sections","map","options","option","swatchSection","items","item","trailingToggle","trailingActions","action","menuReorderableRange","index","reorderable","start","end","length","moveReorderableMenuItemBefore","fromIndex","insertBefore","range","clamped","Math","min","max","toIndex","next","splice","moveReorderableMenuItemBy","offset","locateMenuItem","flatIndex","remaining","sectionIndex","itemIndex","createMenuReorderDetail","nextItems","indexOf","value","matched","findIndex","candidate","menuCss","menuId","MENU_ITEM_TAG_SIZE","lg","md","sm","xs","Menu","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","embedded","open","size","selectionMode","side","align","anchorAlignment","sideOffset","TOKEN_CSS_LENGTHS","space050","alignOffset","initialFocusVisible","menuLabel","emptyMessage","shouldRender","closing","pos","x","y","focusedIndex","positionReady","availableHeight","focusRingVisible","reorderFromFlat","reorderInsertBefore","reorderAnnouncement","closeTimer","loaded","tasks","ConnectionTasks","el","isConnected","suppressItemClick","reorderPointer","position","AnchoredPositionController","getAnchor","resolvedAnchor","getPopup","querySelector","getOwnerDocument","ownerDocument","measure","anchorEl","popup","anchorRect","getBoundingClientRect","sectionInsetPx","viewportPadPx","minWidth","style","choicePopupMinWidth","width","removeProperty","list","naturalPopupHeight","offsetHeight","scrollHeight","window","innerHeight","input","popupWidth","offsetWidth","popupFallbackWidthPx","popupHeight","popupFallbackHeightPx","sideOffsetPx","alignOffsetPx","resolveChoicePopupAlignOffset","viewportWidth","innerWidth","viewportHeight","collisionRect","resolveAnchoredOverlayBoundaryRect","boundary","unconstrained","computeAnchoredPosition","apply","onReady","liveUpdate","topLayer","observeResize","observeAnchorMotion","interaction","AnchoredOverlayInteractionController","onOutsideActivation","close","lastRenderedSections","closingSections","emptyMessageId","lastRenderedEmptyMessage","onReorderPointerMove","event","drag","pointerId","activeSections","resolveReorderInsertBefore","clientY","onReorderPointerUp","clearReorderPointer","microtask","emitReorder","onReorderPointerCancel","componentDidLoad","onOpenChange","connectedCallback","disconnectedCallback","cancelPositionRetry","cancelLivePositionUpdate","teardownListeners","positionReadyCallback","undefined","isOpen","setupListeners","schedulePositionUpdate","focusInitialItem","captureClosingSections","closeAnimationMs","finishClose","setTimeout","onAnchorChange","onPositionPropsChange","resolveCssLengthPx","TOKEN_DEFAULTS","menuWidthXs","menuFallbackHeight","resolveMotionTimeMs","motionShort2","animationDurationShort3","matches","hidePopover","dsAfterClose","emit","visibleSections","anchor","anchorId","document","getElementById","compositeTabLeavesPopup","tabLeavesPopup","flatItems","flatMap","hasCompositeSections","sectionsHaveCompositeControls","some","Boolean","sectionUsesInsetDivider","insetDividerBefore","cancel","scheduleLivePositionUpdate","scheduleLiveUpdate","callback","schedule","calculatePosition","update","trim","frame","focus","flat","selectedIdx","it","isSelected","isInactive","firstEnabledIdx","btns","querySelectorAll","connect","observe","unobserve","disconnect","clearTimeout","restoreFocus","focusAnchor","dsClose","handleKeyDown","e","key","preventDefault","moveFocusAfterTab","shiftKey","altKey","ctrlKey","target","closest","handleReorderKey","enabled","i","filter","cur","safe","stopPropagation","focusItem","idx","rows","row","handleItemClick","dsSelect","handleSwatchSelect","dsSwatchSelect","located","detail","flatIndexFor","announceReorder","dsReorder","count","label","onReorderPointerDown","button","addEventListener","buttons","sectionStart","rect","top","height","removeEventListener","render","h","Host","display","showEmpty","every","flatIdx","dragLocated","dragRange","popupStyle","left","transform","round","zIndex","visibility","menuWidth","floor","popover","class","role","tabIndex","textId","as","CONTROL_TEXT_VARIANT","color","si","header","subheader","CONTROL_SUPPORTING_TEXT_VARIANT","emphasis","groupLabel","onDsChange","isFocused","isSingleSelectionItem","showSwitch","usesLeading","reorderHandleInactive","icon","locked","dragging","dropBefore","dropAfter","onMouseDown","onFocusin","onPointerDown","name","subtext","actionIndex","id","ariaLabel","hasBorder","pressScale","isInset","insetDepth","focusTabIndex","onDsClick","dsItemToggle","pressed","type","isDestructive","String","switchValue","disabled","onClick","onFocus","tag","intent","contrast","rounded","dot","hasRing","checked","presentation"],"sources":["src/wc/components/Menu/menu-types.ts","src/wc/components/Menu/menu-sections.ts","src/wc/components/Menu/menu-reorder.ts","src/wc/components/Menu/Menu.css?tag=ds-menu&encapsulation=scoped","src/wc/components/Menu/Menu.tsx"],"sourcesContent":["import type { SwatchPickerOption, SwatchPickerSection } from '../SwatchPicker/swatch-picker-types';\nimport type { TagContrast, TagIntent } from '../Tag/Tag';\n\nexport type { MenuAlign, MenuSide } from './menu-position';\nexport {\n PANEL_NAV_USER_MENU_PLACEMENT,\n PANEL_TOOLS_HEADER_MENU_PLACEMENT,\n type MenuPlacement,\n} from './menu-placement';\n\nexport interface MenuItemTagData {\n label: string;\n intent?: TagIntent;\n contrast?: TagContrast;\n rounded?: boolean;\n}\n\nexport interface MenuItemTrailingToggleData {\n /** Icon-only toggle glyph. */\n icon: string;\n /** Accessible name describing the requested state change. */\n label: string;\n /** Controlled toggle state. */\n pressed: boolean;\n /** Keep the toggle visible but unavailable. */\n isInactive?: boolean;\n}\n\nexport interface MenuItemActionData {\n /** Stable action identity for consumer event handling. */\n id: string;\n /** Icon-only action glyph. */\n icon: string;\n /** Accessible name describing the action. */\n label: string;\n /** Keep the action visible but unavailable. */\n isInactive?: boolean;\n}\n\nexport interface MenuItemData {\n label: string;\n value?: string;\n subtext?: string;\n /** Leading decorative icon. Ignored when `reorderable` is true. */\n icon?: string;\n /** Show a supplemental brand notification dot. */\n dot?: boolean;\n /** Show a non-interactive tag at the trailing edge of the row. */\n tag?: MenuItemTagData;\n isSelected?: boolean;\n isInactive?: boolean;\n isDestructive?: boolean;\n /** Render a compact switch indicator; the menu row owns interaction. */\n showSwitch?: boolean;\n switchValue?: boolean;\n /** Prefix a drag handle and allow pointer and keyboard reorder within the contiguous reorderable run. */\n reorderable?: boolean;\n /** Keep the drag handle visible as an inactive alignment affordance when reordering is unavailable. */\n reorderHandleInactive?: boolean;\n /** Append a separate unfilled icon toggle after a decorative divider. */\n trailingToggle?: MenuItemTrailingToggleData;\n /** Append independent unfilled icon actions while the row owns the shared hover surface. */\n trailingActions?: MenuItemActionData[];\n}\n\nexport interface MenuItemToggleDetail {\n item: MenuItemData;\n pressed: boolean;\n /** Identifies an independent trailing action; omitted for the legacy toggle control. */\n action?: MenuItemActionData;\n}\n\n/** Next section item order after a pointer or keyboard reorder. */\nexport interface MenuReorderDetail {\n item: MenuItemData;\n fromIndex: number;\n toIndex: number;\n sectionIndex: number;\n items: MenuItemData[];\n}\n\nexport interface MenuItemsSection {\n header?: string;\n /** Secondary heading beneath a shared parent section heading. */\n subheader?: string;\n /** Separate this subsection from the previous one with an inset divider. */\n insetDividerBefore?: boolean;\n items: MenuItemData[];\n}\n\nexport interface MenuSwatchPickerSection {\n header?: string;\n variant: 'swatch-picker';\n value: string;\n options?: SwatchPickerOption[];\n sections?: SwatchPickerSection[];\n groupLabel?: string;\n}\n\nexport type MenuSection = MenuItemsSection | MenuSwatchPickerSection;\n\nexport function isMenuSwatchPickerSection(\n section: MenuSection\n): section is MenuSwatchPickerSection {\n return 'variant' in section && section.variant === 'swatch-picker';\n}\n\nexport function isMenuPickerSection(section: MenuSection): section is MenuSwatchPickerSection {\n return isMenuSwatchPickerSection(section);\n}\n\nexport type { SwatchPickerOption, SwatchPickerSection };\n","import type { MenuSection } from './menu-types';\nimport { isMenuSwatchPickerSection } from './menu-types';\n\n/** Preserve the exact menu context painted during exit motion. */\nexport function snapshotMenuSections(sections: readonly MenuSection[]): MenuSection[] {\n return sections.map(section => {\n if (isMenuSwatchPickerSection(section)) {\n return {\n ...section,\n ...(section.options ? { options: section.options.map(option => ({ ...option })) } : {}),\n ...(section.sections\n ? {\n sections: section.sections.map(swatchSection => ({\n ...swatchSection,\n options: swatchSection.options.map(option => ({ ...option })),\n })),\n }\n : {}),\n };\n }\n return {\n ...section,\n items: section.items.map(item => ({\n ...item,\n ...(item.trailingToggle ? { trailingToggle: { ...item.trailingToggle } } : {}),\n ...(item.trailingActions\n ? { trailingActions: item.trailingActions.map(action => ({ ...action })) }\n : {}),\n })),\n };\n });\n}\n","import {\n isMenuPickerSection,\n type MenuItemData,\n type MenuReorderDetail,\n type MenuSection,\n} from './menu-types';\n\nexport interface MenuReorderRange {\n start: number;\n end: number;\n}\n\n/** Contiguous reorderable run containing `index`, or null when that row cannot move. */\nexport function menuReorderableRange(\n items: readonly MenuItemData[],\n index: number\n): MenuReorderRange | null {\n if (!items[index]?.reorderable) return null;\n\n let start = index;\n while (start > 0 && items[start - 1]?.reorderable) start -= 1;\n\n let end = index;\n while (end < items.length - 1 && items[end + 1]?.reorderable) end += 1;\n\n return { start, end };\n}\n\n/**\n * Move a reorderable row so it would be inserted before `insertBefore`.\n * `insertBefore` is clamped to the contiguous reorderable run.\n */\nexport function moveReorderableMenuItemBefore(\n items: readonly MenuItemData[],\n fromIndex: number,\n insertBefore: number\n): MenuItemData[] | null {\n const range = menuReorderableRange(items, fromIndex);\n if (!range) return null;\n\n const clamped = Math.min(Math.max(insertBefore, range.start), range.end + 1);\n let toIndex = clamped;\n if (fromIndex < toIndex) toIndex -= 1;\n if (toIndex === fromIndex || toIndex < range.start || toIndex > range.end) return null;\n\n const next = [...items];\n const [item] = next.splice(fromIndex, 1);\n next.splice(toIndex, 0, item);\n return next;\n}\n\n/** Keyboard step: move one slot within the reorderable run. */\nexport function moveReorderableMenuItemBy(\n items: readonly MenuItemData[],\n fromIndex: number,\n offset: number\n): MenuItemData[] | null {\n if (offset === 0) return null;\n return moveReorderableMenuItemBefore(\n items,\n fromIndex,\n fromIndex + (offset < 0 ? offset : offset + 1)\n );\n}\n\nexport function locateMenuItem(\n sections: readonly MenuSection[],\n flatIndex: number\n): { sectionIndex: number; itemIndex: number; items: MenuItemData[] } | null {\n let remaining = flatIndex;\n for (let sectionIndex = 0; sectionIndex < sections.length; sectionIndex += 1) {\n const section = sections[sectionIndex];\n if (isMenuPickerSection(section)) continue;\n if (remaining < section.items.length) {\n return { sectionIndex, itemIndex: remaining, items: section.items };\n }\n remaining -= section.items.length;\n }\n return null;\n}\n\nexport function createMenuReorderDetail(\n items: MenuItemData[],\n fromIndex: number,\n nextItems: MenuItemData[],\n sectionIndex: number\n): MenuReorderDetail | null {\n const item = items[fromIndex];\n if (!item) return null;\n const toIndex = nextItems.indexOf(item);\n if (toIndex < 0) {\n const value = item.value;\n const matched = value ? nextItems.findIndex(candidate => candidate.value === value) : -1;\n if (matched < 0) return null;\n return { item, fromIndex, toIndex: matched, sectionIndex, items: nextItems };\n }\n return { item, fromIndex, toIndex, sectionIndex, items: nextItems };\n}\n","@import '../../utils/radius.css';\n@import '../../utils/choice-list.css';\n@import '../../utils/visually-hidden.css';\n@import '../../utils/forced-colors.css';\n\n/* Inactive: `.ds-control-inactive` (50% opacity). */\n\n.menu-empty {\n padding: var(--dimension-space-200);\n box-sizing: border-box;\n overflow-wrap: anywhere;\n}\n\n.menu-item--destructive .menu-item__label {\n /* Beat ds-text color-* host classes for destructive rows. */\n color: var(--color-foreground-bold-negative) !important;\n}\n\n/* Standard md icon zone keeps the dot aligned with other control suffixes. */\n.menu-item__dot-box {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: var(--ds-control-icon, var(--dimension-iconography-md));\n height: var(--ds-control-icon, var(--dimension-iconography-md));\n pointer-events: none;\n}\n\n/* Switch suffix keeps an 8px label-to-control gap without changing the\n density gap between a prefix icon or drag handle and the label. */\n.menu-item__switch {\n flex-shrink: 0;\n margin-inline-start: calc(\n var(--dimension-space-100) - var(--ds-control-gap, var(--dimension-space-050))\n );\n}\n\n.menu-item-row {\n display: contents;\n}\n\n.menu-item-row--trailing-toggle {\n display: flex;\n align-items: center;\n min-width: 0;\n}\n\n.menu-item-row--actions {\n display: flex;\n align-items: center;\n min-width: 0;\n padding-inline-end: var(--dimension-space-025);\n}\n\n.menu-item-row--trailing-toggle > .menu-item {\n flex: 1;\n min-width: 0;\n width: auto;\n}\n\n.menu-item-row__trailing-toggle {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n.menu-item-row__divider {\n flex-shrink: 0;\n width: var(--dimension-stroke-width-012);\n height: var(--dimension-size-250);\n margin-inline: var(--dimension-space-025);\n background: var(--color-border-tertiary);\n}\n\n.menu-item-row__trailing-toggle > ds-button-unfilled {\n flex-shrink: 0;\n}\n\n.menu-item-row__actions,\n.menu-item-row__action {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n.menu-item-row__action > ds-button-unfilled {\n flex-shrink: 0;\n}\n\n.menu-subsection-divider {\n display: block;\n flex-shrink: 0;\n height: var(--dimension-stroke-width-012);\n margin-inline: calc(\n var(--ds-control-padding-inline, var(--dimension-space-075)) +\n var(--ds-control-label-inset, var(--dimension-space-025))\n );\n background: var(--color-border-tertiary);\n}\n\n/* ── Prefix icon / reorder handle ────────────────────────────────────────── */\n\n.menu-item > .menu-item__handle {\n pointer-events: auto;\n cursor: grab;\n touch-action: none;\n}\n\n.menu-item > .menu-item__handle--action-row {\n --ds-menu-action-handle-size: calc(\n var(--ds-control-height, var(--dimension-size-400)) - var(--dimension-space-050)\n );\n\n width: var(--ds-menu-action-handle-size);\n height: var(--ds-menu-action-handle-size);\n margin-inline: calc(\n (var(--ds-control-icon, var(--dimension-iconography-md)) - var(--ds-menu-action-handle-size)) /\n 2\n );\n border-radius: var(--ds-control-radius, var(--dimension-radius-025));\n}\n\n.menu-item > .menu-item__handle--inactive {\n color: var(--color-foreground-quaternary);\n pointer-events: none;\n cursor: default;\n touch-action: auto;\n}\n\n.menu-item > .menu-item__handle:active,\n.menu-item--dragging > .menu-item__handle {\n cursor: grabbing;\n}\n\n.menu-item--dragging {\n opacity: var(--effect-opacity-medium);\n}\n\n.menu-item__drop-rail {\n position: absolute;\n z-index: var(--dimension-z-index-raised);\n inset-inline: var(--dimension-space-050);\n block-size: var(--dimension-stroke-width-025);\n border-radius: var(--dimension-radius-half);\n background: var(--color-border-bold-brand);\n pointer-events: none;\n}\n\n.menu-item__drop-rail--before {\n inset-block-start: calc(-1 * var(--dimension-space-025));\n transform: translateY(-50%);\n}\n\n.menu-item__drop-rail--after {\n inset-block-end: calc(-1 * var(--dimension-space-025));\n transform: translateY(50%);\n}\n\n@media (forced-colors: active) {\n .menu-item-row__divider {\n background: var(--ds-forced-color-content);\n }\n\n .menu-subsection-divider {\n background: var(--ds-forced-color-content);\n }\n\n .menu-item__drop-rail {\n background: var(--ds-forced-color-selected);\n }\n}\n\n.data-preferences-embedded {\n display: flex;\n flex-direction: column;\n min-width: 0;\n min-height: 0;\n color: var(--color-foreground-secondary);\n}\n","import {\n Component,\n Prop,\n State,\n Event,\n EventEmitter,\n Element,\n Watch,\n Listen,\n h,\n Host,\n} from '@stencil/core';\nimport {\n choicePopupMinWidth,\n CONTROL_SUPPORTING_TEXT_VARIANT,\n CONTROL_TEXT_VARIANT,\n resolveChoicePopupAlignOffset,\n resolveCssLengthPx,\n resolveMotionTimeMs,\n TOKEN_CSS_LENGTHS,\n TOKEN_DEFAULTS,\n type ChoicePopupAnchorAlignment,\n type ControlSize,\n} from '../../utils';\nimport { AnchoredPositionController } from '../../utils/anchored-position-controller';\nimport { ConnectionTasks } from '../../utils/connection-tasks';\nimport { AnchoredOverlayInteractionController } from '../../utils/anchored-overlay-interaction-controller';\nimport { resolveAnchoredOverlayBoundaryRect } from '../../utils/anchored-overlay-boundary';\nimport { computeAnchoredPosition, type AnchoredPositionInput } from '../../utils/anchored-position';\nimport type { MenuAlign, MenuSide } from './menu-position';\nimport {\n isMenuPickerSection,\n isMenuSwatchPickerSection,\n type MenuItemData,\n type MenuItemToggleDetail,\n type MenuReorderDetail,\n type MenuSection,\n} from './menu-types';\nimport { snapshotMenuSections } from './menu-sections';\nimport {\n createMenuReorderDetail,\n locateMenuItem,\n menuReorderableRange,\n moveReorderableMenuItemBefore,\n moveReorderableMenuItemBy,\n} from './menu-reorder';\n\nexport type MenuSelectionMode = 'none' | 'single';\nexport type MenuSize = ControlSize;\nlet menuId = 0;\nconst MENU_ITEM_TAG_SIZE: Record<MenuSize, 'md' | 'sm' | 'xs'> = {\n lg: 'md',\n md: 'sm',\n sm: 'xs',\n xs: 'xs',\n};\n\n@Component({\n tag: 'ds-menu',\n styleUrl: 'Menu.css',\n scoped: true,\n})\nexport class Menu {\n @Element() el!: HTMLElement;\n\n /** Render content inside a parent-owned surface; the parent owns dismissal and positioning. */\n @Prop() embedded: boolean = false;\n @Prop({ mutable: true }) open: boolean = false;\n @Prop() items: MenuItemData[] = [];\n /** Choice-row density. */\n @Prop() size: MenuSize = 'md';\n /** Give ordinary rows mutually-exclusive menu semantics using isSelected. */\n @Prop() selectionMode: MenuSelectionMode = 'none';\n @Prop() sections: MenuSection[] = [];\n /** Preferred side; placement flips to the opposite side when that offers a better fit. */\n @Prop() side: MenuSide = 'bottom';\n @Prop() align: MenuAlign = 'start';\n /** Align choice-row edges to the anchor by default; use `popup-frame` only for custom frame geometry. */\n @Prop() anchorAlignment: ChoicePopupAnchorAlignment = 'choice-cell';\n /** Gap between anchor and menu — number (px) or TokoMo length (`var(--dimension-space-050)`, etc.). */\n @Prop() sideOffset: number | string = TOKEN_CSS_LENGTHS.space050;\n /** Cross-axis offset — number (px) or TokoMo length. */\n @Prop() alignOffset: number | string = 0;\n @Prop() menuWidth: string | undefined;\n @Prop() minWidth: string | undefined;\n /** External trigger element to position against. Set via JS: menuEl.anchor = buttonEl */\n @Prop() anchor: HTMLElement | undefined;\n /** ID of the external trigger element for positioning */\n @Prop() anchorId: string | undefined;\n /** Explicit collision owner; otherwise the nearest data-ds-overlay-boundary ancestor is used. */\n @Prop() boundary: HTMLElement | undefined;\n /** Show a visible ring on the initially focused menu item. Use only when the opener was keyboard-driven. */\n @Prop() initialFocusVisible: boolean = false;\n /** Accessible name for the popup menu. */\n @Prop() menuLabel: string = 'Menu';\n /** Informational message shown when there are no choices. Uses a non-modal dialog, not a fake menu item. */\n @Prop() emptyMessage: string = '';\n\n @State() private shouldRender: boolean = false;\n @State() private closing: boolean = false;\n @State() private pos: { x: number; y: number } = { x: 0, y: 0 };\n @State() private focusedIndex: number = 0;\n @State() private positionReady: boolean = false;\n @State() private availableHeight: number | null = null;\n @State() private focusRingVisible: boolean = false;\n @State() private reorderFromFlat: number | null = null;\n @State() private reorderInsertBefore: number | null = null;\n @State() private reorderAnnouncement = '';\n\n @Event() dsClose!: EventEmitter<void>;\n /** Emitted after the popup's exit motion is complete and its rendered content is removed. */\n @Event() dsAfterClose!: EventEmitter<void>;\n @Event() dsSelect!: EventEmitter<MenuItemData>;\n /** Emitted when a row's separate trailing toggle requests a controlled state change. */\n @Event() dsItemToggle!: EventEmitter<MenuItemToggleDetail>;\n /** Emitted when a generic `swatch-picker` section option is chosen. */\n @Event() dsSwatchSelect!: EventEmitter<string>;\n /** Emitted after a pointer drop or keyboard move; Menu never mutates item order. */\n @Event() dsReorder!: EventEmitter<MenuReorderDetail>;\n\n private closeTimer: ReturnType<typeof setTimeout> | null = null;\n private loaded = false;\n private readonly tasks = new ConnectionTasks(() => this.el.isConnected);\n private positionReadyCallback: (() => void) | undefined;\n private suppressItemClick = false;\n private reorderPointer: {\n pointerId: number;\n sectionIndex: number;\n fromIndex: number;\n } | null = null;\n /**\n * Anchored placement. The choice-cell measurement stays here on purpose: the\n * inner-cell align offset and the `--dimension-menu-width-xs` floor are Menu\n * semantics, not shared geometry.\n */\n private readonly position = new AnchoredPositionController({\n getAnchor: () => this.resolvedAnchor ?? null,\n getPopup: () => this.el.querySelector<HTMLElement>('.menu-popup'),\n getOwnerDocument: () => this.el.ownerDocument,\n measure: (anchorEl, popup) => {\n if (!this.open) return null;\n\n const anchorRect = anchorEl.getBoundingClientRect();\n const sectionInsetPx = this.viewportPadPx;\n if (!this.minWidth) {\n if (\n this.anchorAlignment === 'choice-cell' &&\n (this.side === 'top' || this.side === 'bottom')\n ) {\n popup.style.minWidth = `max(var(--dimension-menu-width-xs), ${choicePopupMinWidth(\n anchorRect.width,\n sectionInsetPx\n )}px)`;\n } else {\n popup.style.removeProperty('min-width');\n }\n }\n\n const viewportPadPx = this.viewportPadPx;\n const list = popup.querySelector<HTMLElement>('.ds-choice-list');\n const naturalPopupHeight = Math.min(\n Math.max(popup.offsetHeight, list?.scrollHeight ?? 0),\n window.innerHeight - viewportPadPx * 2\n );\n const input: AnchoredPositionInput = {\n anchorRect,\n popupWidth: popup.offsetWidth || this.popupFallbackWidthPx,\n popupHeight: naturalPopupHeight || this.popupFallbackHeightPx,\n side: this.side,\n align: this.align,\n sideOffsetPx: this.sideOffsetPx,\n alignOffsetPx: resolveChoicePopupAlignOffset({\n align: this.align,\n alignOffsetPx: this.alignOffsetPx,\n sectionInsetPx,\n anchorAlignment: this.anchorAlignment,\n }),\n viewportPadPx,\n viewportWidth: window.innerWidth,\n viewportHeight: window.innerHeight,\n collisionRect: resolveAnchoredOverlayBoundaryRect(anchorEl, this.boundary),\n };\n const unconstrained = computeAnchoredPosition(input);\n return {\n ...input,\n popupHeight: Math.min(input.popupHeight, unconstrained.availableHeight),\n };\n },\n apply: ({ x, y, availableHeight }) => {\n this.pos = { x, y };\n this.availableHeight = availableHeight;\n },\n onReady: () => {\n this.positionReady = true;\n },\n liveUpdate: 'double-frame',\n topLayer: true,\n observeResize: true,\n observeAnchorMotion: true,\n });\n private readonly interaction = new AnchoredOverlayInteractionController({\n getAnchor: () => this.resolvedAnchor,\n getPopup: () => this.el.querySelector<HTMLElement>('.menu-popup'),\n getOwnerDocument: () => this.el.ownerDocument,\n onOutsideActivation: () => this.close(),\n });\n /** Last content actually painted while open; retained unchanged through exit motion. */\n private lastRenderedSections: MenuSection[] = [];\n private closingSections: MenuSection[] | null = null;\n private readonly emptyMessageId = `ds-menu-empty-${++menuId}`;\n private lastRenderedEmptyMessage = '';\n\n componentDidLoad() {\n this.loaded = true;\n if (this.open) this.onOpenChange(true);\n }\n\n connectedCallback() {\n if (this.loaded && this.open) this.onOpenChange(true);\n }\n\n disconnectedCallback() {\n this.cancelPositionRetry();\n this.cancelLivePositionUpdate();\n this.clearReorderPointer();\n this.teardownListeners();\n this.positionReadyCallback = undefined;\n this.shouldRender = false;\n this.closing = false;\n this.positionReady = false;\n this.closingSections = null;\n this.lastRenderedSections = [];\n this.suppressItemClick = false;\n this.reorderAnnouncement = '';\n }\n\n @Watch('open')\n onOpenChange(isOpen: boolean) {\n if (this.embedded || !this.loaded || !this.el.isConnected) return;\n if (isOpen) {\n this.teardownListeners();\n this.closingSections = null;\n this.shouldRender = true;\n this.closing = false;\n this.positionReady = false;\n this.availableHeight = null;\n this.focusRingVisible = this.initialFocusVisible;\n this.setupListeners();\n this.schedulePositionUpdate(() => {\n this.focusInitialItem();\n });\n } else if (this.shouldRender && !this.closing) {\n this.positionReadyCallback = undefined;\n this.cancelPositionRetry();\n this.captureClosingSections();\n this.closing = true;\n this.teardownListeners();\n const closeAnimationMs = this.closeAnimationMs;\n if (closeAnimationMs <= 0) {\n this.finishClose();\n return;\n }\n this.closeTimer = setTimeout(() => {\n this.closeTimer = null;\n this.finishClose();\n }, closeAnimationMs);\n }\n }\n\n @Watch('anchor')\n @Watch('anchorId')\n @Watch('boundary')\n onAnchorChange() {\n if (this.open) this.schedulePositionUpdate();\n }\n\n @Watch('side')\n @Watch('align')\n @Watch('anchorAlignment')\n @Watch('sideOffset')\n @Watch('alignOffset')\n onPositionPropsChange() {\n if (this.open) this.schedulePositionUpdate();\n }\n\n private get viewportPadPx(): number {\n return resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050);\n }\n\n private get sideOffsetPx(): number {\n return resolveCssLengthPx(this.sideOffset, TOKEN_DEFAULTS.space050);\n }\n\n private get alignOffsetPx(): number {\n return resolveCssLengthPx(this.alignOffset, 0);\n }\n\n private get popupFallbackWidthPx(): number {\n return resolveCssLengthPx(TOKEN_DEFAULTS.menuWidthXs, TOKEN_DEFAULTS.menuWidthXs);\n }\n\n private get popupFallbackHeightPx(): number {\n return resolveCssLengthPx(TOKEN_DEFAULTS.menuFallbackHeight, TOKEN_DEFAULTS.menuFallbackHeight);\n }\n\n private get closeAnimationMs(): number {\n return resolveMotionTimeMs(TOKEN_DEFAULTS.motionShort2, TOKEN_DEFAULTS.animationDurationShort3);\n }\n\n private finishClose() {\n if (this.open || !this.closing || !this.el.isConnected) return;\n const popup = this.el.querySelector<HTMLElement>('.menu-popup');\n if (popup?.matches(':popover-open')) popup.hidePopover();\n this.shouldRender = false;\n this.closing = false;\n this.lastRenderedSections = [];\n this.closingSections = null;\n this.clearReorderPointer();\n this.reorderAnnouncement = '';\n this.dsAfterClose.emit();\n }\n\n private captureClosingSections() {\n if (this.closingSections) return;\n const visibleSections = this.lastRenderedSections.length\n ? this.lastRenderedSections\n : this.activeSections;\n this.closingSections = snapshotMenuSections(visibleSections);\n }\n\n private get resolvedAnchor(): HTMLElement | null {\n if (this.anchor) return this.anchor;\n if (this.anchorId) return document.getElementById(this.anchorId);\n return null;\n }\n\n private compositeTabLeavesPopup(event: KeyboardEvent): boolean {\n return this.interaction.tabLeavesPopup(event);\n }\n\n private get activeSections(): MenuSection[] {\n if (this.sections.length > 0) return this.sections;\n if (this.items.length > 0) return [{ items: this.items }];\n return [];\n }\n\n private get flatItems(): MenuItemData[] {\n return this.activeSections.flatMap(section =>\n isMenuPickerSection(section) ? [] : section.items\n );\n }\n\n /** Rich preference content is a non-modal dialog, not an ARIA action menu. */\n private get hasCompositeSections(): boolean {\n return this.sectionsHaveCompositeControls(this.activeSections);\n }\n\n private sectionsHaveCompositeControls(sections: MenuSection[]): boolean {\n return sections.some(\n section =>\n isMenuPickerSection(section) ||\n section.items.some(item => Boolean(item.trailingToggle || item.trailingActions?.length))\n );\n }\n\n private sectionUsesInsetDivider(section: MenuSection | undefined): boolean {\n return Boolean(section && !isMenuPickerSection(section) && section.insetDividerBefore);\n }\n\n private cancelPositionRetry() {\n this.position.cancel();\n }\n\n private cancelLivePositionUpdate() {\n this.position.cancel();\n }\n\n /** Reposition after the current scroll/layout frame without hiding the open popup. */\n private scheduleLivePositionUpdate() {\n this.position.scheduleLiveUpdate();\n }\n\n /** Retry until anchor + popup exist — do not reveal at 0,0 on a failed first pass. */\n private schedulePositionUpdate(onReady?: () => void) {\n if (!this.open || !this.el.isConnected) return;\n this.positionReady = false;\n // Opening often sets `open` and `anchorId` together. Each Watch reschedules\n // placement; keep the open-path ready callback so initial focus is not dropped.\n if (onReady) this.positionReadyCallback = onReady;\n const callback = this.positionReadyCallback;\n this.position.schedule(() => {\n if (this.positionReadyCallback === callback) {\n this.positionReadyCallback = undefined;\n }\n callback?.();\n });\n }\n\n /** @returns `true` when anchor and popup were found and `pos` was updated. */\n private calculatePosition(): boolean {\n return this.position.update();\n }\n\n /** Focus the selected item when present, otherwise the first enabled item. */\n private focusInitialItem() {\n if (!this.hasCompositeSections && !this.flatItems.length && this.emptyMessage.trim()) {\n this.tasks.frame(() => {\n if (this.open) this.el.querySelector<HTMLElement>('.menu-popup')?.focus();\n });\n return;\n }\n if (this.hasCompositeSections) {\n this.tasks.frame(() => {\n this.el.querySelector<HTMLElement>('.menu-popup [tabindex=\"0\"]')?.focus();\n });\n return;\n }\n\n const flat = this.flatItems;\n const selectedIdx = flat.findIndex(it => it.isSelected && !it.isInactive);\n const firstEnabledIdx = flat.findIndex(it => !it.isInactive || !!it.reorderable);\n this.focusedIndex = selectedIdx >= 0 ? selectedIdx : firstEnabledIdx >= 0 ? firstEnabledIdx : 0;\n\n this.tasks.frame(() => {\n const btns = this.el.querySelectorAll<HTMLElement>('.menu-item');\n btns[this.focusedIndex]?.focus();\n });\n }\n\n private setupListeners() {\n this.interaction.connect();\n this.position.observe();\n }\n\n private teardownListeners() {\n this.tasks.cancel();\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 close(restoreFocus = true) {\n this.captureClosingSections();\n if (restoreFocus) this.interaction.focusAnchor();\n this.dsClose.emit();\n this.open = false;\n this.onOpenChange(false);\n }\n\n @Listen('keydown')\n handleKeyDown(e: KeyboardEvent) {\n if (this.embedded && (e.key === 'Escape' || e.key === 'Tab')) return;\n if ((!this.shouldRender && !this.embedded) || this.closing) return;\n\n if (e.key === 'Escape') {\n e.preventDefault();\n this.close();\n return;\n }\n\n if (e.key === 'Tab') {\n if (this.hasCompositeSections && !this.compositeTabLeavesPopup(e)) return;\n e.preventDefault();\n this.close(false);\n this.interaction.moveFocusAfterTab(e.shiftKey);\n return;\n }\n\n if (\n (e.key === 'ArrowUp' || e.key === 'ArrowDown') &&\n e.altKey &&\n !e.ctrlKey &&\n !e.shiftKey &&\n (e.target as HTMLElement).closest('.menu-item')\n ) {\n this.handleReorderKey(e);\n return;\n }\n\n if (this.hasCompositeSections) return;\n\n const flat = this.flatItems;\n const enabled = flat\n .map((it, i) => ({ it, i }))\n .filter(({ it }) => !it.isInactive || !!it.reorderable)\n .map(({ i }) => i);\n if (!enabled.length) return;\n\n const cur = enabled.indexOf(this.focusedIndex);\n const safe = cur < 0 ? 0 : cur;\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n e.stopPropagation();\n this.focusRingVisible = true;\n this.focusedIndex = enabled[(safe + 1) % enabled.length];\n this.focusItem(this.focusedIndex);\n break;\n case 'ArrowUp':\n e.preventDefault();\n e.stopPropagation();\n this.focusRingVisible = true;\n this.focusedIndex = enabled[(safe - 1 + enabled.length) % enabled.length];\n this.focusItem(this.focusedIndex);\n break;\n case 'Home':\n e.preventDefault();\n e.stopPropagation();\n this.focusRingVisible = true;\n this.focusedIndex = enabled[0];\n this.focusItem(this.focusedIndex);\n break;\n case 'End':\n e.preventDefault();\n e.stopPropagation();\n this.focusRingVisible = true;\n this.focusedIndex = enabled[enabled.length - 1];\n this.focusItem(this.focusedIndex);\n break;\n }\n }\n\n private focusItem(idx: number) {\n const rows = this.el.querySelectorAll<HTMLElement>('.menu-item');\n const row = rows[idx];\n if (!row) return;\n if (row.matches('button')) row.focus();\n else row.querySelector<HTMLElement>('[tabindex=\"0\"]')?.focus();\n }\n\n private handleItemClick(item: MenuItemData) {\n if (this.suppressItemClick) {\n this.suppressItemClick = false;\n return;\n }\n if (item.isInactive) return;\n // Consumers commonly change the item source while handling selection.\n // Capture first so the exit animation never paints the next menu context.\n this.captureClosingSections();\n this.dsSelect.emit(item);\n }\n\n private handleSwatchSelect(value: string) {\n this.dsSwatchSelect.emit(value);\n }\n\n private handleReorderKey(event: KeyboardEvent): void {\n const located = locateMenuItem(this.activeSections, this.focusedIndex);\n if (!located || !located.items[located.itemIndex]?.reorderable) return;\n\n const nextItems = moveReorderableMenuItemBy(\n located.items,\n located.itemIndex,\n event.key === 'ArrowUp' ? -1 : 1\n );\n if (!nextItems) return;\n\n event.preventDefault();\n event.stopPropagation();\n this.emitReorder(located.items, located.itemIndex, nextItems, located.sectionIndex);\n }\n\n private emitReorder(\n items: MenuItemData[],\n fromIndex: number,\n nextItems: MenuItemData[],\n sectionIndex: number\n ): void {\n const detail = createMenuReorderDetail(items, fromIndex, nextItems, sectionIndex);\n if (!detail) return;\n this.focusedIndex = this.flatIndexFor(sectionIndex, detail.toIndex);\n this.announceReorder(detail);\n this.dsReorder.emit(detail);\n }\n\n private flatIndexFor(sectionIndex: number, itemIndex: number): number {\n let flat = 0;\n for (let index = 0; index < this.activeSections.length; index += 1) {\n const section = this.activeSections[index];\n if (isMenuPickerSection(section)) continue;\n if (index === sectionIndex) return flat + itemIndex;\n flat += section.items.length;\n }\n return itemIndex;\n }\n\n private announceReorder(detail: MenuReorderDetail): void {\n const range = menuReorderableRange(detail.items, detail.toIndex);\n const count = range ? range.end - range.start + 1 : detail.items.length;\n const position = range ? detail.toIndex - range.start + 1 : detail.toIndex + 1;\n this.reorderAnnouncement = `${detail.item.label} moved to position ${position} of ${count}`;\n }\n\n private onReorderPointerDown(\n event: PointerEvent,\n sectionIndex: number,\n itemIndex: number,\n flatIndex: number\n ): void {\n if (event.button !== 0) return;\n const section = this.activeSections[sectionIndex];\n if (!section || isMenuPickerSection(section)) return;\n if (!section.items[itemIndex]?.reorderable) return;\n\n event.preventDefault();\n event.stopPropagation();\n this.suppressItemClick = true;\n this.focusRingVisible = false;\n this.focusedIndex = flatIndex;\n this.focusItem(flatIndex);\n this.reorderPointer = {\n pointerId: event.pointerId,\n sectionIndex,\n fromIndex: itemIndex,\n };\n this.reorderFromFlat = flatIndex;\n this.reorderInsertBefore = itemIndex;\n window.addEventListener('pointermove', this.onReorderPointerMove);\n window.addEventListener('pointerup', this.onReorderPointerUp);\n window.addEventListener('pointercancel', this.onReorderPointerCancel);\n }\n\n private onReorderPointerMove = (event: PointerEvent) => {\n const drag = this.reorderPointer;\n if (!drag || event.pointerId !== drag.pointerId) return;\n const section = this.activeSections[drag.sectionIndex];\n if (!section || isMenuPickerSection(section)) return;\n\n const insertBefore = this.resolveReorderInsertBefore(\n event.clientY,\n drag.sectionIndex,\n drag.fromIndex,\n section.items\n );\n if (insertBefore !== this.reorderInsertBefore) this.reorderInsertBefore = insertBefore;\n };\n\n private onReorderPointerUp = (event: PointerEvent) => {\n const drag = this.reorderPointer;\n if (!drag || event.pointerId !== drag.pointerId) return;\n\n const section = this.activeSections[drag.sectionIndex];\n const insertBefore = this.reorderInsertBefore;\n this.clearReorderPointer();\n this.tasks.microtask(() => {\n this.suppressItemClick = false;\n });\n if (!section || isMenuPickerSection(section) || insertBefore === null) return;\n\n const nextItems = moveReorderableMenuItemBefore(section.items, drag.fromIndex, insertBefore);\n if (!nextItems) return;\n this.emitReorder(section.items, drag.fromIndex, nextItems, drag.sectionIndex);\n };\n\n private onReorderPointerCancel = (event: PointerEvent) => {\n if (!this.reorderPointer || event.pointerId !== this.reorderPointer.pointerId) return;\n this.clearReorderPointer();\n this.tasks.microtask(() => {\n this.suppressItemClick = false;\n });\n };\n\n private resolveReorderInsertBefore(\n clientY: number,\n sectionIndex: number,\n fromIndex: number,\n items: MenuItemData[]\n ): number {\n const range = menuReorderableRange(items, fromIndex);\n if (!range) return fromIndex;\n\n const buttons = [...this.el.querySelectorAll<HTMLElement>('.menu-item')];\n const sectionStart = this.flatIndexFor(sectionIndex, 0);\n let insertBefore = range.end + 1;\n for (let itemIndex = range.start; itemIndex <= range.end; itemIndex += 1) {\n const row = buttons[sectionStart + itemIndex];\n if (!row) continue;\n const rect = row.getBoundingClientRect();\n if (clientY < rect.top + rect.height / 2) {\n insertBefore = itemIndex;\n break;\n }\n }\n return Math.min(Math.max(insertBefore, range.start), range.end + 1);\n }\n\n private clearReorderPointer(): void {\n if (this.reorderPointer) {\n window.removeEventListener('pointermove', this.onReorderPointerMove);\n window.removeEventListener('pointerup', this.onReorderPointerUp);\n window.removeEventListener('pointercancel', this.onReorderPointerCancel);\n }\n this.reorderPointer = null;\n this.reorderFromFlat = null;\n this.reorderInsertBefore = null;\n }\n\n render() {\n if (!this.shouldRender && !this.embedded) return <Host style={{ display: 'contents' }} />;\n\n const sections = this.closing\n ? (this.closingSections ?? this.lastRenderedSections)\n : this.activeSections;\n const hasCompositeSections = this.sectionsHaveCompositeControls(sections);\n const emptyMessage = this.closing ? this.lastRenderedEmptyMessage : this.emptyMessage.trim();\n const showEmpty =\n Boolean(emptyMessage) &&\n !hasCompositeSections &&\n sections.every(section => !isMenuPickerSection(section) && section.items.length === 0);\n if (!this.closing) {\n this.lastRenderedEmptyMessage = emptyMessage;\n this.lastRenderedSections = snapshotMenuSections(sections);\n this.closingSections = null;\n }\n let flatIdx = 0;\n const dragLocated =\n this.reorderFromFlat === null ? null : locateMenuItem(sections, this.reorderFromFlat);\n const dragRange = dragLocated\n ? menuReorderableRange(dragLocated.items, dragLocated.itemIndex)\n : null;\n\n const popupStyle: Record<string, string> = {\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: '9998',\n visibility: this.positionReady ? 'visible' : 'hidden',\n };\n\n if (this.menuWidth) popupStyle['width'] = this.menuWidth;\n if (this.minWidth) popupStyle['min-width'] = this.minWidth;\n if (this.availableHeight !== null) {\n popupStyle['max-height'] = `${Math.floor(this.availableHeight)}px`;\n }\n\n return (\n <Host style={{ display: 'contents' }}>\n <div\n popover={this.embedded ? undefined : 'manual'}\n class={{\n 'menu-popup': true,\n 'menu-popup--closing': this.closing,\n 'ds-choice-popup': !this.embedded,\n 'data-preferences-embedded': this.embedded,\n 'ds-choice-popup--closing': this.closing,\n 'ds-focus-ring': showEmpty,\n 'ds-focus-ring--visible': showEmpty && this.focusRingVisible,\n }}\n style={this.embedded ? undefined : popupStyle}\n role={hasCompositeSections || showEmpty ? 'dialog' : 'menu'}\n aria-label={this.menuLabel}\n aria-orientation={hasCompositeSections || showEmpty ? undefined : 'vertical'}\n aria-describedby={showEmpty ? this.emptyMessageId : undefined}\n tabIndex={showEmpty ? -1 : undefined}\n >\n <div class=\"ds-choice-list\">\n {showEmpty ? (\n <ds-text\n textId={this.emptyMessageId}\n class=\"menu-empty\"\n as=\"p\"\n variant={CONTROL_TEXT_VARIANT[this.size]}\n color=\"secondary\"\n >\n {emptyMessage}\n </ds-text>\n ) : (\n sections.map((section, si) => (\n <div\n key={si}\n class={{\n 'menu-section': true,\n 'menu-section--divided':\n si < sections.length - 1 && !this.sectionUsesInsetDivider(sections[si + 1]),\n 'menu-section--swatch-picker': isMenuPickerSection(section),\n 'ds-choice-section': true,\n 'ds-chrome-column': true,\n 'ds-chrome-space--sm': true,\n 'ds-choice-section--divided':\n si < sections.length - 1 && !this.sectionUsesInsetDivider(sections[si + 1]),\n 'ds-choice-section--headed-after-first':\n si > 0 &&\n !isMenuPickerSection(section) &&\n Boolean(section.header || section.subheader),\n }}\n role={\n section.header || (!isMenuPickerSection(section) && section.subheader)\n ? 'group'\n : undefined\n }\n aria-label={\n !isMenuPickerSection(section) && section.subheader\n ? section.subheader\n : section.header\n }\n >\n {!isMenuPickerSection(section) && section.insetDividerBefore && (\n <span class=\"menu-subsection-divider\" aria-hidden=\"true\" />\n )}\n {section.header && (\n <ds-text\n class={`section-header ds-choice-section__header ds-control-section-heading ds-control--${this.size}`}\n as=\"span\"\n variant={CONTROL_SUPPORTING_TEXT_VARIANT[this.size]}\n emphasis\n color=\"primary\"\n aria-hidden=\"true\"\n >\n <span class=\"ds-choice-section__header-label\">{section.header}</span>\n </ds-text>\n )}\n {!isMenuSwatchPickerSection(section) && section.subheader && (\n <ds-text\n class={`section-subheader ds-choice-section__header ds-control-section-heading ds-control--${this.size}`}\n as=\"span\"\n variant=\"text-caption\"\n emphasis\n color=\"secondary\"\n aria-hidden=\"true\"\n >\n <span class=\"ds-choice-section__header-label\">{section.subheader}</span>\n </ds-text>\n )}\n {isMenuSwatchPickerSection(section) ? (\n <ds-swatch-picker\n value={section.value}\n groupLabel={section.groupLabel ?? section.header ?? 'Swatch options'}\n options={section.options ?? []}\n sections={section.sections ?? []}\n onDsChange={(e: CustomEvent<string>) => {\n e.stopPropagation();\n this.handleSwatchSelect(e.detail);\n }}\n />\n ) : (\n section.items.map((item, itemIndex) => {\n const idx = flatIdx++;\n const isFocused = this.focusedIndex === idx;\n const isSingleSelectionItem =\n !hasCompositeSections &&\n this.selectionMode === 'single' &&\n !item.showSwitch;\n const usesLeading = section.items.some(\n candidate =>\n candidate.reorderable ||\n candidate.reorderHandleInactive ||\n !!candidate.icon\n );\n const locked = !!item.isInactive && !item.reorderable;\n const dragging = this.reorderFromFlat === idx;\n const dropBefore =\n dragLocated?.sectionIndex === si &&\n dragRange !== null &&\n itemIndex <= dragRange.end &&\n this.reorderInsertBefore === itemIndex;\n const dropAfter =\n dragLocated?.sectionIndex === si &&\n dragRange !== null &&\n this.reorderInsertBefore === dragRange.end + 1 &&\n itemIndex === dragRange.end;\n if (item.trailingActions?.length) {\n return (\n <div\n key={item.value ?? `${si}-${item.label}`}\n class={{\n 'menu-item-row': true,\n 'menu-item-row--actions': true,\n 'menu-item': true,\n 'ds-choice-item': true,\n 'ds-control-frame': true,\n [`ds-control--${this.size}`]: true,\n 'menu-item--dragging': dragging,\n }}\n role=\"group\"\n aria-label={item.label}\n onMouseDown={() => {\n this.focusRingVisible = false;\n }}\n onFocusin={() => {\n this.focusedIndex = idx;\n }}\n >\n {(dropBefore || dropAfter) && (\n <span\n class={{\n 'menu-item__drop-rail': true,\n 'menu-item__drop-rail--before': dropBefore,\n 'menu-item__drop-rail--after': dropAfter,\n }}\n data-menu-drop-rail\n aria-hidden=\"true\"\n />\n )}\n {item.reorderable || item.reorderHandleInactive ? (\n <span\n class={{\n 'menu-item__handle': true,\n 'menu-item__handle--action-row': true,\n 'menu-item__handle--inactive': Boolean(\n item.reorderHandleInactive\n ),\n 'ds-interaction-fill': Boolean(item.reorderable),\n 'ds-choice-item__icon': true,\n 'ds-control-icon-box': true,\n }}\n data-menu-handle\n aria-hidden=\"true\"\n onPointerDown={\n item.reorderable\n ? event => this.onReorderPointerDown(event, si, itemIndex, idx)\n : undefined\n }\n >\n <ds-icon\n class=\"ds-interaction-fill__content\"\n name=\"DragDots\"\n size={this.size}\n color=\"inherit\"\n />\n </span>\n ) : usesLeading && item.icon ? (\n <span\n class=\"menu-item__icon ds-choice-item__icon ds-control-icon-box\"\n aria-hidden=\"true\"\n >\n <ds-icon name={item.icon} size={this.size} color=\"inherit\" />\n </span>\n ) : usesLeading ? (\n <span\n class=\"menu-item__icon-spacer ds-choice-item__icon ds-control-icon-box\"\n aria-hidden=\"true\"\n />\n ) : null}\n <div class=\"menu-item__content ds-choice-item__content\">\n <ds-text\n class=\"menu-item__label ds-choice-item__label ds-control-label-box\"\n as=\"span\"\n variant={CONTROL_TEXT_VARIANT[this.size]}\n color=\"secondary\"\n >\n {item.label}\n </ds-text>\n {item.subtext && (\n <ds-text\n class=\"menu-item__subtext ds-choice-item__subtext ds-control-label-box\"\n as=\"span\"\n variant={CONTROL_SUPPORTING_TEXT_VARIANT[this.size]}\n color=\"secondary\"\n >\n {item.subtext}\n </ds-text>\n )}\n </div>\n <span class=\"menu-item-row__actions\">\n {item.trailingActions.map((action, actionIndex) => (\n <span class=\"menu-item-row__action\" key={action.id}>\n {actionIndex > 0 && (\n <span class=\"menu-item-row__divider\" aria-hidden=\"true\" />\n )}\n <ds-button-unfilled\n variant=\"icon\"\n icon={action.icon}\n size=\"md\"\n ariaLabel={action.label}\n hasBorder={false}\n pressScale={false}\n isInset\n insetDepth=\"single\"\n isInactive={action.isInactive ?? false}\n focusTabIndex={0}\n onDsClick={event => {\n event.stopPropagation();\n this.dsItemToggle.emit({ item, action, pressed: false });\n }}\n />\n </span>\n ))}\n </span>\n </div>\n );\n }\n return (\n <div\n key={item.value ?? `${si}-${item.label}`}\n class={{\n 'menu-item-row': true,\n 'menu-item-row--trailing-toggle': Boolean(item.trailingToggle),\n }}\n >\n <button\n type=\"button\"\n class={{\n 'menu-item': true,\n 'ds-choice-item': true,\n 'ds-control-frame': true,\n [`ds-control--${this.size}`]: true,\n 'ds-focus-ring-inset': true,\n 'ds-focus-ring--visible': isFocused && this.focusRingVisible,\n 'ds-interaction-fill': !locked,\n 'ds-interaction-fill--selected': !!item.isSelected && !locked,\n 'menu-item--selected': !!item.isSelected,\n 'menu-item--switch': !!item.showSwitch,\n 'ds-control-inactive': locked,\n 'menu-item--destructive': !!item.isDestructive,\n 'menu-item--focused': isFocused,\n 'menu-item--dragging': dragging,\n }}\n role={\n hasCompositeSections\n ? undefined\n : item.showSwitch\n ? 'menuitemcheckbox'\n : isSingleSelectionItem\n ? 'menuitemradio'\n : 'menuitem'\n }\n aria-checked={\n !hasCompositeSections && item.showSwitch\n ? String(!!item.switchValue)\n : isSingleSelectionItem\n ? String(!!item.isSelected)\n : undefined\n }\n aria-pressed={\n hasCompositeSections\n ? String(item.showSwitch ? !!item.switchValue : !!item.isSelected)\n : undefined\n }\n aria-current={\n !hasCompositeSections &&\n !item.showSwitch &&\n !isSingleSelectionItem &&\n item.isSelected\n ? 'true'\n : undefined\n }\n aria-description={\n item.reorderable\n ? item.isInactive\n ? 'Visibility cannot be changed. Alt + Arrow Up or Alt + Arrow Down moves this row.'\n : 'Drag to reorder. Alt + Arrow Up or Alt + Arrow Down moves this row.'\n : undefined\n }\n aria-disabled={item.isInactive ? 'true' : undefined}\n disabled={locked}\n tabIndex={\n hasCompositeSections || (this.embedded && idx === 0)\n ? 0\n : isFocused\n ? 0\n : -1\n }\n onMouseDown={() => {\n this.focusRingVisible = false;\n }}\n onClick={() => this.handleItemClick(item)}\n onFocus={() => {\n this.focusedIndex = idx;\n }}\n >\n {(dropBefore || dropAfter) && (\n <span\n class={{\n 'menu-item__drop-rail': true,\n 'menu-item__drop-rail--before': dropBefore,\n 'menu-item__drop-rail--after': dropAfter,\n }}\n data-menu-drop-rail\n aria-hidden=\"true\"\n />\n )}\n {item.reorderable || item.reorderHandleInactive ? (\n <span\n class={{\n 'menu-item__handle': true,\n 'menu-item__handle--inactive': Boolean(\n item.reorderHandleInactive\n ),\n 'ds-choice-item__icon': true,\n 'ds-control-icon-box': true,\n 'ds-interaction-fill__content': true,\n }}\n data-menu-handle\n aria-hidden=\"true\"\n onPointerDown={\n item.reorderable\n ? event => this.onReorderPointerDown(event, si, itemIndex, idx)\n : undefined\n }\n onClick={\n item.reorderable\n ? event => {\n event.preventDefault();\n event.stopPropagation();\n }\n : undefined\n }\n >\n <ds-icon name=\"DragDots\" size={this.size} color=\"inherit\" />\n </span>\n ) : usesLeading && item.icon ? (\n <span\n class=\"menu-item__icon ds-choice-item__icon ds-control-icon-box ds-interaction-fill__content\"\n aria-hidden=\"true\"\n >\n <ds-icon name={item.icon} size={this.size} color=\"inherit\" />\n </span>\n ) : usesLeading ? (\n <span\n class=\"menu-item__icon-spacer ds-choice-item__icon ds-control-icon-box\"\n aria-hidden=\"true\"\n />\n ) : null}\n <div class=\"menu-item__content ds-choice-item__content ds-interaction-fill__content\">\n <ds-text\n class=\"menu-item__label ds-choice-item__label ds-control-label-box\"\n as=\"span\"\n variant={CONTROL_TEXT_VARIANT[this.size]}\n color={item.isSelected ? 'primary' : 'secondary'}\n >\n {item.label}\n </ds-text>\n {item.subtext && (\n <ds-text\n class=\"menu-item__subtext ds-choice-item__subtext ds-control-label-box\"\n as=\"span\"\n variant={CONTROL_SUPPORTING_TEXT_VARIANT[this.size]}\n color=\"secondary\"\n >\n {item.subtext}\n </ds-text>\n )}\n </div>\n {item.tag && (\n <ds-tag\n class=\"ds-choice-item__tag ds-interaction-fill__content\"\n label={item.tag.label}\n size={MENU_ITEM_TAG_SIZE[this.size]}\n intent={item.tag.intent ?? 'neutral'}\n contrast={item.tag.contrast ?? 'faint'}\n rounded={item.tag.rounded ?? false}\n isInset\n />\n )}\n {item.dot && (\n <span\n class=\"menu-item__dot-box ds-interaction-fill__content\"\n aria-hidden=\"true\"\n >\n <ds-badge\n class=\"menu-item__dot\"\n variant=\"dot\"\n hasRing={false}\n label=\"\"\n />\n </span>\n )}\n {item.showSwitch && (\n <ds-switch\n class=\"menu-item__switch ds-interaction-fill__content\"\n size={this.size}\n checked={!!item.switchValue}\n isInactive={!!item.isInactive}\n presentation\n />\n )}\n </button>\n {item.trailingToggle && (\n <span class=\"menu-item-row__trailing-toggle\">\n <span class=\"menu-item-row__divider\" aria-hidden=\"true\" />\n <ds-button-unfilled\n variant=\"icon\"\n icon={item.trailingToggle.icon}\n size={this.size}\n ariaLabel={item.trailingToggle.label}\n hasBorder={false}\n pressScale={false}\n pressed={item.trailingToggle.pressed}\n isInactive={item.trailingToggle.isInactive ?? false}\n onDsChange={event => {\n event.stopPropagation();\n this.dsItemToggle.emit({ item, pressed: event.detail });\n }}\n />\n </span>\n )}\n </div>\n );\n })\n )}\n </div>\n ))\n )}\n </div>\n </div>\n <div class=\"ds-visually-hidden\" role=\"status\" aria-live=\"polite\">\n {this.reorderAnnouncement}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{p as e,H as a,h as r,a as d,t as o}from"./index.js";import{d as n}from"./p-D8OWhnID.js";const t=()=>`.ds-visually-hidden.sc-ds-badge-h,.ds-visually-hidden.sc-ds-badge{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}@media (forced-colors: active){.sc-ds-badge:root,.sc-ds-badge-h,.ds-forced-colors-scope.sc-ds-badge{--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-badge-h{display:inline-flex;align-items:center;justify-content:center;container-name:ds-badge-gradient;pointer-events:none;vertical-align:middle;--_badge-bg:var(--color-background-bold-brand);--_badge-fg:var(--color-foreground-on-bold-background-primary);--_badge-ring:var(--color-background-secondary);--_badge-ring-width:var(--dimension-stroke-width-018);--_badge-gradient-context:var(--ds-shell-gradient-context, flat)}.badge--force-gradient-background.sc-ds-badge-h{--_badge-gradient-context:gradient}.badge--force-flat-background.sc-ds-badge-h{--_badge-gradient-context:flat}.badge__mark.sc-ds-badge{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;box-sizing:border-box;color:var(--_badge-fg);background:var(--_badge-bg);box-shadow:0 0 0 var(--_badge-ring-width) var(--_badge-ring);white-space:nowrap}.badge--no-ring.sc-ds-badge-h{--_badge-ring-width:0}.badge--dot.sc-ds-badge-h .badge__mark.sc-ds-badge{width:var(--dimension-size-075);height:var(--dimension-size-075);border-radius:var(--dimension-radius-half)}.badge--counter.sc-ds-badge-h .badge__mark.sc-ds-badge{width:auto;min-width:var(--dimension-size-150);height:var(--dimension-size-150);padding:0 var(--dimension-space-025);border-radius:var(--dimension-radius-half)}@container ds-badge-gradient style(--_badge-gradient-context: gradient){.badge__mark.badge__mark{position:relative;z-index:0;box-shadow:none;isolation:isolate}.badge__mark::before,.badge__mark::after{content:'';position:absolute;inset:calc(-1 * var(--_badge-ring-width));border-radius:inherit;box-sizing:border-box;padding:var(--_badge-ring-width);pointer-events:none;-webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);mask-composite:exclude}.badge__mark::before{z-index:-2;background-color:var(--_badge-ring)}.badge__mark::after{z-index:-1;background-image:var(--ds-shell-gradient-image, none);background-size:var(--ds-shell-gradient-size, auto);background-position:0 0;background-repeat:no-repeat;background-attachment:fixed;opacity:var(--ds-shell-gradient-opacity, 1)}}@media (forced-colors: active){.badge__mark.sc-ds-badge{color:var(--ds-forced-color-on-selected);background:var(--ds-forced-color-selected);box-shadow:none;outline:var(--_badge-ring-width) solid var(--ds-forced-color-surface)}.badge__mark.sc-ds-badge::before,.badge__mark.sc-ds-badge::after{display:none}}`;const s={primary:"var(--color-background-primary)",secondary:"var(--color-background-secondary)",faint:"var(--color-background-faint-neutral)",medium:"var(--color-background-medium-neutral)",bold:"var(--color-background-bold-neutral)",strong:"var(--color-background-strong-neutral)",translucent:"var(--color-translucent-translucent)",inverted:"var(--color-inverted-background)",media:"var(--color-media-background)",navigation:"var(--color-navigation-background)","always-dark":"var(--color-always-dark-background)"};const i=e(class e extends a{constructor(e){super();if(e!==false){this.__registerHost()}this.variant="counter";this.count=0;this.max=9;this.surface="primary";this.hasRing=true}render(){const e=this.variant==="dot";if(!e&&this.count<=0)return r(d,{style:{display:"none"}});const a=this.count>this.max?`${this.max}+`:String(this.count);const o=this.background??s[this.surface];return r(d,{class:{badge:true,"badge--counter":!e,"badge--dot":e,"badge--no-ring":!this.hasRing,"badge--force-gradient-background":this.gradientBackground===true,"badge--force-flat-background":this.gradientBackground===false},style:{"--_badge-ring":o}},r("span",{class:"badge__mark","aria-hidden":"true"},!e&&r("ds-text",{as:"span",variant:"text-caption",emphasis:true,color:"inherit"},a)),this.label&&r("span",{class:"badge__a11y ds-visually-hidden"},this.label))}static get style(){return t()}},[2,"ds-badge",{variant:[1],count:[2],max:[2],surface:[1],background:[1],hasRing:[4,"has-ring"],gradientBackground:[516,"gradient-background"],label:[1]}]);function c(){if(typeof customElements==="undefined"){return}const e=["ds-badge","ds-text"];e.forEach((e=>{switch(e){case"ds-badge":if(!customElements.get(o(e))){customElements.define(o(e),i)}break;case"ds-text":if(!customElements.get(o(e))){n()}break}}))}c();export{i as B,c as d};
2
- //# sourceMappingURL=p-CwdRaJER.js.map
1
+ import{p as e,H as a,h as r,a as d,t as o}from"./index.js";import{d as n}from"./p-BbvAWFJA.js";const t=()=>`.ds-visually-hidden.sc-ds-badge-h,.ds-visually-hidden.sc-ds-badge{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}@media (forced-colors: active){.sc-ds-badge:root,.sc-ds-badge-h,.ds-forced-colors-scope.sc-ds-badge{--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-badge-h{display:inline-flex;align-items:center;justify-content:center;container-name:ds-badge-gradient;pointer-events:none;vertical-align:middle;--_badge-bg:var(--color-background-bold-brand);--_badge-fg:var(--color-foreground-on-bold-background-primary);--_badge-ring:var(--color-background-secondary);--_badge-ring-width:var(--dimension-stroke-width-018);--_badge-gradient-context:var(--ds-shell-gradient-context, flat)}.badge--force-gradient-background.sc-ds-badge-h{--_badge-gradient-context:gradient}.badge--force-flat-background.sc-ds-badge-h{--_badge-gradient-context:flat}.badge__mark.sc-ds-badge{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;box-sizing:border-box;color:var(--_badge-fg);background:var(--_badge-bg);box-shadow:0 0 0 var(--_badge-ring-width) var(--_badge-ring);white-space:nowrap}.badge--no-ring.sc-ds-badge-h{--_badge-ring-width:0}.badge--dot.sc-ds-badge-h .badge__mark.sc-ds-badge{width:var(--dimension-size-075);height:var(--dimension-size-075);border-radius:var(--dimension-radius-half)}.badge--counter.sc-ds-badge-h .badge__mark.sc-ds-badge{width:auto;min-width:var(--dimension-size-150);height:var(--dimension-size-150);padding:0 var(--dimension-space-025);border-radius:var(--dimension-radius-half)}@container ds-badge-gradient style(--_badge-gradient-context: gradient){.badge__mark.badge__mark{position:relative;z-index:0;box-shadow:none;isolation:isolate}.badge__mark::before,.badge__mark::after{content:'';position:absolute;inset:calc(-1 * var(--_badge-ring-width));border-radius:inherit;box-sizing:border-box;padding:var(--_badge-ring-width);pointer-events:none;-webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);mask-composite:exclude}.badge__mark::before{z-index:-2;background-color:var(--_badge-ring)}.badge__mark::after{z-index:-1;background-image:var(--ds-shell-gradient-image, none);background-size:var(--ds-shell-gradient-size, auto);background-position:0 0;background-repeat:no-repeat;background-attachment:fixed;opacity:var(--ds-shell-gradient-opacity, 1)}}@media (forced-colors: active){.badge__mark.sc-ds-badge{color:var(--ds-forced-color-on-selected);background:var(--ds-forced-color-selected);box-shadow:none;outline:var(--_badge-ring-width) solid var(--ds-forced-color-surface)}.badge__mark.sc-ds-badge::before,.badge__mark.sc-ds-badge::after{display:none}}`;const s={primary:"var(--color-background-primary)",secondary:"var(--color-background-secondary)",faint:"var(--color-background-faint-neutral)",medium:"var(--color-background-medium-neutral)",bold:"var(--color-background-bold-neutral)",strong:"var(--color-background-strong-neutral)",translucent:"var(--color-translucent-translucent)",inverted:"var(--color-inverted-background)",media:"var(--color-media-background)",navigation:"var(--color-navigation-background)","always-dark":"var(--color-always-dark-background)"};const i=e(class e extends a{constructor(e){super();if(e!==false){this.__registerHost()}this.variant="counter";this.count=0;this.max=9;this.surface="primary";this.hasRing=true}render(){const e=this.variant==="dot";if(!e&&this.count<=0)return r(d,{style:{display:"none"}});const a=this.count>this.max?`${this.max}+`:String(this.count);const o=this.background??s[this.surface];return r(d,{class:{badge:true,"badge--counter":!e,"badge--dot":e,"badge--no-ring":!this.hasRing,"badge--force-gradient-background":this.gradientBackground===true,"badge--force-flat-background":this.gradientBackground===false},style:{"--_badge-ring":o}},r("span",{class:"badge__mark","aria-hidden":"true"},!e&&r("ds-text",{as:"span",variant:"text-caption",emphasis:true,color:"inherit"},a)),this.label&&r("span",{class:"badge__a11y ds-visually-hidden"},this.label))}static get style(){return t()}},[2,"ds-badge",{variant:[1],count:[2],max:[2],surface:[1],background:[1],hasRing:[4,"has-ring"],gradientBackground:[516,"gradient-background"],label:[1]}]);function c(){if(typeof customElements==="undefined"){return}const e=["ds-badge","ds-text"];e.forEach((e=>{switch(e){case"ds-badge":if(!customElements.get(o(e))){customElements.define(o(e),i)}break;case"ds-text":if(!customElements.get(o(e))){n()}break}}))}c();export{i as B,c as d};
2
+ //# sourceMappingURL=p-BWJb2rih.js.map
@@ -1,2 +1,2 @@
1
- import{p as t,H as e,h as s,a as r,t as i}from"./index.js";function d(t){return`ds-text--${t.replace(/^text-/,"")}`}function a(t){return t==="span"||t==="label"?"ds-text--inline-box":"ds-text--block-box"}const o=()=>`.ds-text--display-medium.sc-ds-text-h,.ds-text--display-medium.sc-ds-text{font-size:var(--typography-fontsize-3xl);line-height:var(--typography-lineheight-3xl)}.ds-text--display-small.sc-ds-text-h,.ds-text--display-small.sc-ds-text{font-size:var(--typography-fontsize-2xl);line-height:var(--typography-lineheight-2xl)}.ds-text--title-large.sc-ds-text-h,.ds-text--title-large.sc-ds-text{font-size:var(--typography-fontsize-xl);line-height:var(--typography-lineheight-xl)}.ds-text--title-medium.sc-ds-text-h,.ds-text--title-medium.sc-ds-text{font-size:var(--typography-fontsize-lg);line-height:var(--typography-lineheight-lg)}.ds-text--title-small.sc-ds-text-h,.ds-text--title-small.sc-ds-text{font-size:var(--typography-fontsize-md);line-height:var(--typography-lineheight-md)}.ds-text--body-large.sc-ds-text-h,.ds-text--body-large.sc-ds-text{font-size:var(--typography-fontsize-lg);line-height:var(--typography-lineheight-lg)}.ds-text--body-medium.sc-ds-text-h,.ds-text--body-medium.sc-ds-text{font-size:var(--typography-fontsize-md);line-height:var(--typography-lineheight-md)}.ds-text--body-small.sc-ds-text-h,.ds-text--body-small.sc-ds-text{font-size:var(--typography-fontsize-sm);line-height:var(--typography-lineheight-sm)}.ds-text--caption.sc-ds-text-h,.ds-text--caption.sc-ds-text{font-size:var(--typography-fontsize-xs);line-height:var(--typography-lineheight-xs);text-transform:uppercase}.ds-text--display-medium.ds-text--emphasis.sc-ds-text-h,.ds-text--display-small.ds-text--emphasis.sc-ds-text-h,.ds-text--display-medium.ds-text--emphasis.sc-ds-text,.ds-text--display-small.ds-text--emphasis.sc-ds-text{font-weight:var(--typography-weight-bold);letter-spacing:var(--typography-letterspacing-negative-double)}.ds-text--display-medium.ds-text--regular.sc-ds-text-h,.ds-text--display-small.ds-text--regular.sc-ds-text-h,.ds-text--display-medium.ds-text--regular.sc-ds-text,.ds-text--display-small.ds-text--regular.sc-ds-text{font-weight:var(--typography-weight-semibold);letter-spacing:var(--typography-letterspacing-negative)}.ds-text--title-large.ds-text--emphasis.sc-ds-text-h,.ds-text--title-large.ds-text--emphasis.sc-ds-text{font-weight:var(--typography-weight-semibold);letter-spacing:var(--typography-letterspacing-negative-double)}.ds-text--title-large.ds-text--regular.sc-ds-text-h,.ds-text--title-large.ds-text--regular.sc-ds-text{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-negative)}.ds-text--title-medium.ds-text--emphasis.sc-ds-text-h,.ds-text--title-small.ds-text--emphasis.sc-ds-text-h,.ds-text--title-medium.ds-text--emphasis.sc-ds-text,.ds-text--title-small.ds-text--emphasis.sc-ds-text{font-weight:var(--typography-weight-semibold);letter-spacing:var(--typography-letterspacing-negative)}.ds-text--title-medium.ds-text--regular.sc-ds-text-h,.ds-text--title-small.ds-text--regular.sc-ds-text-h,.ds-text--title-medium.ds-text--regular.sc-ds-text,.ds-text--title-small.ds-text--regular.sc-ds-text{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-negative-half)}.ds-text--body-large.ds-text--emphasis.sc-ds-text-h,.ds-text--body-medium.ds-text--emphasis.sc-ds-text-h,.ds-text--body-large.ds-text--emphasis.sc-ds-text,.ds-text--body-medium.ds-text--emphasis.sc-ds-text{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-negative)}.ds-text--body-large.ds-text--regular.sc-ds-text-h,.ds-text--body-medium.ds-text--regular.sc-ds-text-h,.ds-text--body-large.ds-text--regular.sc-ds-text,.ds-text--body-medium.ds-text--regular.sc-ds-text{font-weight:var(--typography-weight-regular);letter-spacing:var(--typography-letterspacing-negative-half)}.ds-text--body-small.ds-text--emphasis.sc-ds-text-h,.ds-text--body-small.ds-text--emphasis.sc-ds-text{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-negative-half)}.ds-text--body-small.ds-text--regular.sc-ds-text-h,.ds-text--body-small.ds-text--regular.sc-ds-text{font-weight:var(--typography-weight-regular);letter-spacing:var(--typography-letterspacing-none)}.ds-text--caption.ds-text--emphasis.sc-ds-text-h,.ds-text--caption.ds-text--emphasis.sc-ds-text{font-weight:var(--typography-weight-semibold);letter-spacing:var(--typography-letterspacing-positive)}.ds-text--caption.ds-text--regular.sc-ds-text-h,.ds-text--caption.ds-text--regular.sc-ds-text{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-positive)}@media (forced-colors: active){.sc-ds-text:root,.sc-ds-text-h,.ds-forced-colors-scope.sc-ds-text{--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}}@keyframes ds-shimmer-text-motion{0%{background-position:100% 0}76.923%{background-position:0 0}100%{background-position:0 0}}@keyframes ds-shimmer-surface-motion{0%{background-position:100% 0}76.923%{background-position:0 0}100%{background-position:0 0}}.ds-shimmer-text.sc-ds-text{--ds-shimmer-base:currentColor;--ds-shimmer-duration:var(--effect-animation-duration-long-2);--ds-shimmer-repeat-delay:var(--effect-animation-delay-short-3);--ds-shimmer-cycle-duration:calc(var(--ds-shimmer-duration) + var(--ds-shimmer-repeat-delay));--ds-shimmer-easing:var(--effect-animation-easing-linear);--ds-shimmer-spread:var(--dimension-size-500);--ds-shimmer-travel:calc( var(--dimension-size-800) + var(--dimension-size-500) + var(--dimension-size-200) );background-color:var(--ds-shimmer-base);background-image:linear-gradient( 330deg, transparent calc(50% - var(--ds-shimmer-spread)), var(--ds-shimmer, var(--color-shimmer-shimmer)) 50%, transparent calc(50% + var(--ds-shimmer-spread)) );background-repeat:no-repeat;background-position:100% 0;background-size:calc(200% + var(--ds-shimmer-spread) * 2 + var(--ds-shimmer-travel) * 2) 100%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:ds-shimmer-text-motion var(--ds-shimmer-cycle-duration) var(--ds-shimmer-easing) infinite}.ds-shimmer-surface.sc-ds-text{--ds-shimmer-surface-base:var(--color-foreground-quaternary);--ds-shimmer-duration:var(--effect-animation-duration-long-2);--ds-shimmer-repeat-delay:var(--effect-animation-delay-short-3);--ds-shimmer-cycle-duration:calc(var(--ds-shimmer-duration) + var(--ds-shimmer-repeat-delay));--ds-shimmer-easing:var(--effect-animation-easing-linear);--ds-shimmer-spread:var(--dimension-size-500);--ds-shimmer-travel:calc( var(--dimension-size-800) + var(--dimension-size-500) + var(--dimension-size-200) );position:relative;overflow:hidden;background-color:var(--ds-shimmer-surface-base)}.ds-shimmer-surface.sc-ds-text::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient( 330deg, transparent calc(50% - var(--ds-shimmer-spread)), var(--ds-shimmer, var(--color-shimmer-shimmer)) 50%, transparent calc(50% + var(--ds-shimmer-spread)) );background-repeat:no-repeat;background-position:100% 0;background-size:calc(200% + var(--ds-shimmer-spread) * 2 + var(--ds-shimmer-travel) * 2) 100%;animation:ds-shimmer-surface-motion var(--ds-shimmer-cycle-duration) var(--ds-shimmer-easing) infinite}@media (prefers-reduced-motion: reduce){.ds-shimmer-text.sc-ds-text{animation:none;background-image:none;-webkit-text-fill-color:currentColor}.ds-shimmer-surface.sc-ds-text::after{display:none;animation:none}}@media (forced-colors: active){.ds-shimmer-text.sc-ds-text{animation:none;background-image:none;-webkit-text-fill-color:currentColor}.ds-shimmer-surface.sc-ds-text{background-color:var(--ds-forced-color-disabled)}.ds-shimmer-surface.sc-ds-text::after{display:none;animation:none}}.sc-ds-text-h{box-sizing:border-box;max-width:100%;min-width:0;margin:0;padding:0;border:0;font-family:var(--typography-font-family-ui)}.sc-ds-text-h:where(.ds-text--inline-box){display:inline-block}.sc-ds-text-h:where(.ds-text--block-box){display:block;width:100%}.ds-text__element.sc-ds-text{display:block;box-sizing:border-box;width:100%;min-width:0;margin:0;padding:0;border:0;font:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;text-transform:inherit;text-align:inherit;text-decoration:inherit;text-underline-offset:inherit;font-style:inherit;font-variant-numeric:inherit;font-feature-settings:inherit;-webkit-user-select:inherit;user-select:inherit;white-space:inherit;text-wrap:inherit;overflow-wrap:inherit;word-break:inherit;overflow:inherit;text-overflow:inherit}.ds-text--truncate-1.sc-ds-text-h{overflow:hidden}.ds-text--truncate-1.sc-ds-text-h .ds-text__element.sc-ds-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ds-text--truncate-2.sc-ds-text-h,.ds-text--truncate-3.sc-ds-text-h,.ds-text--truncate-4.sc-ds-text-h,.ds-text--truncate-5.sc-ds-text-h{overflow:hidden}.ds-text--truncate-2.sc-ds-text-h .ds-text__element.sc-ds-text,.ds-text--truncate-3.sc-ds-text-h .ds-text__element.sc-ds-text,.ds-text--truncate-4.sc-ds-text-h .ds-text__element.sc-ds-text,.ds-text--truncate-5.sc-ds-text-h .ds-text__element.sc-ds-text{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-word}.ds-text--truncate-2.sc-ds-text-h .ds-text__element.sc-ds-text{-webkit-line-clamp:2}.ds-text--truncate-3.sc-ds-text-h .ds-text__element.sc-ds-text{-webkit-line-clamp:3}.ds-text--truncate-4.sc-ds-text-h .ds-text__element.sc-ds-text{-webkit-line-clamp:4}.ds-text--truncate-5.sc-ds-text-h .ds-text__element.sc-ds-text{-webkit-line-clamp:5}.ds-text--nowrap.sc-ds-text-h,.ds-text--nowrap.sc-ds-text-h .ds-text__element.sc-ds-text{white-space:nowrap;word-break:normal;overflow:hidden;text-overflow:ellipsis;min-width:0}.ds-text--balance.sc-ds-text-h,.ds-text--balance.sc-ds-text-h .ds-text__element.sc-ds-text{text-wrap:balance}.ds-text--pretty.sc-ds-text-h,.ds-text--pretty.sc-ds-text-h .ds-text__element.sc-ds-text{text-wrap:pretty}.ds-text--color-primary.sc-ds-text-h{color:var(--color-foreground-primary)}.ds-text--color-secondary.sc-ds-text-h{color:var(--color-foreground-secondary)}.ds-text--color-tertiary.sc-ds-text-h{color:var(--color-foreground-tertiary)}.ds-text--color-quaternary.sc-ds-text-h{color:var(--color-foreground-quaternary)}.ds-text--color-brand.sc-ds-text-h{color:var(--color-foreground-bold-brand)}.ds-text--color-negative.sc-ds-text-h{color:var(--color-foreground-bold-negative)}.ds-text--color-positive.sc-ds-text-h{color:var(--color-foreground-bold-positive)}.ds-text--color-warning.sc-ds-text-h{color:var(--color-foreground-bold-warning)}.ds-text--color-caution.sc-ds-text-h{color:var(--color-foreground-bold-caution)}.ds-text--color-ai.sc-ds-text-h{color:var(--color-foreground-bold-ai)}.ds-text--color-on-strong.sc-ds-text-h{color:var(--color-foreground-on-strong-background-primary)}.ds-text--color-on-bold.sc-ds-text-h{color:var(--color-foreground-on-bold-background-primary)}.ds-text--decoration-underline.sc-ds-text-h,.ds-text--decoration-dotted-underline.sc-ds-text-h{text-decoration-color:var(--ds-text-decoration-color, var(--color-foreground-tertiary));text-decoration-thickness:var(--ds-text-decoration-thickness, var(--dimension-stroke-width-012));text-underline-offset:var(--ds-text-decoration-offset, var(--dimension-space-025))}.ds-text--decoration-underline.sc-ds-text-h{text-decoration-line:underline}.ds-text--decoration-dotted-underline.sc-ds-text-h{text-decoration-line:underline;text-decoration-style:dotted}.ds-text--italic.sc-ds-text-h{font-style:italic}.ds-text--font-feature-tabular-nums.sc-ds-text-h{font-variant-numeric:tabular-nums;font-feature-settings:'tnum'}.ds-text--align-left.sc-ds-text-h{text-align:left}.ds-text--align-center.sc-ds-text-h{text-align:center}.ds-text--align-right.sc-ds-text-h{text-align:right}`;const n=t(class t extends e{constructor(t){super();if(t!==false){this.__registerHost()}this.variant="text-body-medium";this.emphasis=false;this.color="inherit";this.italic=false;this.shimmer=false;this.lineTruncation="none";this.fontFeature="normal";this.as="p"}render(){const t=this.as;const e=t=>typeof t==="string"&&t.startsWith("var(--");const i=Number(this.lineTruncation);const o={"ds-text":true,[a(this.as)]:true,[d(this.variant)]:true,"ds-text--emphasis":this.emphasis,"ds-text--regular":!this.emphasis,"ds-text--nowrap":this.wrap==="nowrap","ds-text--balance":this.wrap==="balance","ds-text--pretty":this.wrap==="pretty","ds-text--truncate-1":i===1&&this.wrap!=="nowrap","ds-text--truncate-2":i===2&&this.wrap!=="nowrap","ds-text--truncate-3":i===3&&this.wrap!=="nowrap","ds-text--truncate-4":i===4&&this.wrap!=="nowrap","ds-text--truncate-5":i===5&&this.wrap!=="nowrap","ds-text--color-primary":this.color==="primary","ds-text--color-secondary":this.color==="secondary","ds-text--color-tertiary":this.color==="tertiary","ds-text--color-quaternary":this.color==="quaternary","ds-text--color-brand":this.color==="brand","ds-text--color-negative":this.color==="negative","ds-text--color-positive":this.color==="positive","ds-text--color-warning":this.color==="warning","ds-text--color-caution":this.color==="caution","ds-text--color-ai":this.color==="ai","ds-text--color-on-strong":this.color==="on-strong","ds-text--color-on-bold":this.color==="on-bold","ds-text--color-inherit":this.color==="inherit","ds-text--decoration-underline":this.decoration==="underline","ds-text--decoration-dotted-underline":this.decoration==="dotted-underline","ds-text--italic":this.italic,"ds-text--align-left":this.align==="left","ds-text--align-center":this.align==="center","ds-text--align-right":this.align==="right","ds-text--font-feature-tabular-nums":this.fontFeature==="tabular-nums"};const n=this.color&&e(this.color)?{color:this.color}:undefined;const c={};if(this.as==="label"&&this.for)c["for"]=this.for;if(this.textId)c["id"]=this.textId;return s(r,{key:"a07a18c498da0a80513f38025781d071c9f65cb3",class:o,style:n},s(t,{key:"29b47cc1b9cd977a2312da0c2c74d1e25d1e54ad",class:{"ds-text__element":true,"ds-shimmer-text":this.shimmer},...c},s("slot",{key:"2f1fdc1648b3ff24901017063dad24bc3f736534"})))}static get style(){return o()}},[262,"ds-text",{variant:[1],emphasis:[4],color:[1],decoration:[1],italic:[4],shimmer:[4],align:[1],lineTruncation:[8,"line-truncation"],wrap:[1],fontFeature:[1,"font-feature"],as:[1],for:[1],textId:[1,"text-id"]}]);function c(){if(typeof customElements==="undefined"){return}const t=["ds-text"];t.forEach((t=>{switch(t){case"ds-text":if(!customElements.get(i(t))){customElements.define(i(t),n)}break}}))}c();export{n as T,c as d};
2
- //# sourceMappingURL=p-D8OWhnID.js.map
1
+ import{p as t,H as e,h as s,a as r,t as i}from"./index.js";function d(t){return`ds-text--${t.replace(/^text-/,"")}`}function a(t){return t==="span"||t==="label"?"ds-text--inline-box":"ds-text--block-box"}const o=()=>`.ds-text--display-medium.sc-ds-text-h,.ds-text--display-medium.sc-ds-text{font-size:var(--typography-fontsize-3xl);line-height:var(--typography-lineheight-3xl)}.ds-text--display-small.sc-ds-text-h,.ds-text--display-small.sc-ds-text{font-size:var(--typography-fontsize-2xl);line-height:var(--typography-lineheight-2xl)}.ds-text--title-large.sc-ds-text-h,.ds-text--title-large.sc-ds-text{font-size:var(--typography-fontsize-xl);line-height:var(--typography-lineheight-xl)}.ds-text--title-medium.sc-ds-text-h,.ds-text--title-medium.sc-ds-text{font-size:var(--typography-fontsize-lg);line-height:var(--typography-lineheight-lg)}.ds-text--title-small.sc-ds-text-h,.ds-text--title-small.sc-ds-text{font-size:var(--typography-fontsize-md);line-height:var(--typography-lineheight-md)}.ds-text--body-large.sc-ds-text-h,.ds-text--body-large.sc-ds-text{font-size:var(--typography-fontsize-lg);line-height:var(--typography-lineheight-lg)}.ds-text--body-medium.sc-ds-text-h,.ds-text--body-medium.sc-ds-text{font-size:var(--typography-fontsize-md);line-height:var(--typography-lineheight-md)}.ds-text--body-small.sc-ds-text-h,.ds-text--body-small.sc-ds-text{font-size:var(--typography-fontsize-sm);line-height:var(--typography-lineheight-sm)}.ds-text--caption.sc-ds-text-h,.ds-text--caption.sc-ds-text{font-size:var(--typography-fontsize-xs);line-height:var(--typography-lineheight-xs);text-transform:uppercase}.ds-text--display-medium.ds-text--emphasis.sc-ds-text-h,.ds-text--display-small.ds-text--emphasis.sc-ds-text-h,.ds-text--display-medium.ds-text--emphasis.sc-ds-text,.ds-text--display-small.ds-text--emphasis.sc-ds-text{font-weight:var(--typography-weight-bold);letter-spacing:var(--typography-letterspacing-negative-double)}.ds-text--display-medium.ds-text--regular.sc-ds-text-h,.ds-text--display-small.ds-text--regular.sc-ds-text-h,.ds-text--display-medium.ds-text--regular.sc-ds-text,.ds-text--display-small.ds-text--regular.sc-ds-text{font-weight:var(--typography-weight-semibold);letter-spacing:var(--typography-letterspacing-negative)}.ds-text--title-large.ds-text--emphasis.sc-ds-text-h,.ds-text--title-large.ds-text--emphasis.sc-ds-text{font-weight:var(--typography-weight-semibold);letter-spacing:var(--typography-letterspacing-negative-double)}.ds-text--title-large.ds-text--regular.sc-ds-text-h,.ds-text--title-large.ds-text--regular.sc-ds-text{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-negative)}.ds-text--title-medium.ds-text--emphasis.sc-ds-text-h,.ds-text--title-small.ds-text--emphasis.sc-ds-text-h,.ds-text--title-medium.ds-text--emphasis.sc-ds-text,.ds-text--title-small.ds-text--emphasis.sc-ds-text{font-weight:var(--typography-weight-semibold);letter-spacing:var(--typography-letterspacing-negative)}.ds-text--title-medium.ds-text--regular.sc-ds-text-h,.ds-text--title-small.ds-text--regular.sc-ds-text-h,.ds-text--title-medium.ds-text--regular.sc-ds-text,.ds-text--title-small.ds-text--regular.sc-ds-text{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-negative-half)}.ds-text--body-large.ds-text--emphasis.sc-ds-text-h,.ds-text--body-medium.ds-text--emphasis.sc-ds-text-h,.ds-text--body-large.ds-text--emphasis.sc-ds-text,.ds-text--body-medium.ds-text--emphasis.sc-ds-text{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-negative)}.ds-text--body-large.ds-text--regular.sc-ds-text-h,.ds-text--body-medium.ds-text--regular.sc-ds-text-h,.ds-text--body-large.ds-text--regular.sc-ds-text,.ds-text--body-medium.ds-text--regular.sc-ds-text{font-weight:var(--typography-weight-regular);letter-spacing:var(--typography-letterspacing-negative-half)}.ds-text--body-small.ds-text--emphasis.sc-ds-text-h,.ds-text--body-small.ds-text--emphasis.sc-ds-text{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-negative-half)}.ds-text--body-small.ds-text--regular.sc-ds-text-h,.ds-text--body-small.ds-text--regular.sc-ds-text{font-weight:var(--typography-weight-regular);letter-spacing:var(--typography-letterspacing-none)}.ds-text--caption.ds-text--emphasis.sc-ds-text-h,.ds-text--caption.ds-text--emphasis.sc-ds-text{font-weight:var(--typography-weight-semibold);letter-spacing:var(--typography-letterspacing-positive)}.ds-text--caption.ds-text--regular.sc-ds-text-h,.ds-text--caption.ds-text--regular.sc-ds-text{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-positive)}@media (forced-colors: active){.sc-ds-text:root,.sc-ds-text-h,.ds-forced-colors-scope.sc-ds-text{--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}}@keyframes ds-shimmer-text-motion{0%{background-position:100% 0}76.923%{background-position:0 0}100%{background-position:0 0}}@keyframes ds-shimmer-surface-motion{0%{background-position:100% 0}76.923%{background-position:0 0}100%{background-position:0 0}}.ds-shimmer-text.sc-ds-text{--ds-shimmer-base:currentColor;--ds-shimmer-duration:var(--effect-animation-duration-long-2);--ds-shimmer-repeat-delay:var(--effect-animation-delay-short-3);--ds-shimmer-cycle-duration:calc(var(--ds-shimmer-duration) + var(--ds-shimmer-repeat-delay));--ds-shimmer-easing:var(--effect-animation-easing-linear);--ds-shimmer-spread:var(--dimension-size-500);--ds-shimmer-travel:calc( var(--dimension-size-800) + var(--dimension-size-500) + var(--dimension-size-200) );background-color:var(--ds-shimmer-base);background-image:linear-gradient( 330deg, transparent calc(50% - var(--ds-shimmer-spread)), var(--ds-shimmer, var(--color-shimmer-shimmer)) 50%, transparent calc(50% + var(--ds-shimmer-spread)) );background-repeat:no-repeat;background-position:100% 0;background-size:calc(200% + var(--ds-shimmer-spread) * 2 + var(--ds-shimmer-travel) * 2) 100%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:ds-shimmer-text-motion var(--ds-shimmer-cycle-duration) var(--ds-shimmer-easing) infinite}.ds-shimmer-surface.sc-ds-text{--ds-shimmer-surface-base:var(--color-foreground-quaternary);--ds-shimmer-duration:var(--effect-animation-duration-long-2);--ds-shimmer-repeat-delay:var(--effect-animation-delay-short-3);--ds-shimmer-cycle-duration:calc(var(--ds-shimmer-duration) + var(--ds-shimmer-repeat-delay));--ds-shimmer-easing:var(--effect-animation-easing-linear);--ds-shimmer-spread:var(--dimension-size-500);--ds-shimmer-travel:calc( var(--dimension-size-800) + var(--dimension-size-500) + var(--dimension-size-200) );position:relative;overflow:hidden;background-color:var(--ds-shimmer-surface-base)}.ds-shimmer-surface.sc-ds-text::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient( 330deg, transparent calc(50% - var(--ds-shimmer-spread)), var(--ds-shimmer, var(--color-shimmer-shimmer)) 50%, transparent calc(50% + var(--ds-shimmer-spread)) );background-repeat:no-repeat;background-position:100% 0;background-size:calc(200% + var(--ds-shimmer-spread) * 2 + var(--ds-shimmer-travel) * 2) 100%;animation:ds-shimmer-surface-motion var(--ds-shimmer-cycle-duration) var(--ds-shimmer-easing) infinite}@media (prefers-reduced-motion: reduce){.ds-shimmer-text.sc-ds-text{animation:none;background-image:none;-webkit-text-fill-color:currentColor}.ds-shimmer-surface.sc-ds-text::after{display:none;animation:none}}@media (forced-colors: active){.ds-shimmer-text.sc-ds-text{animation:none;background-image:none;-webkit-text-fill-color:currentColor}.ds-shimmer-surface.sc-ds-text{background-color:var(--ds-forced-color-disabled)}.ds-shimmer-surface.sc-ds-text::after{display:none;animation:none}}.sc-ds-text-h{box-sizing:border-box;max-width:100%;min-width:0;margin:0;padding:0;border:0;font-family:var(--typography-font-family-ui)}.sc-ds-text-h:where(.ds-text--inline-box){display:inline-block}.sc-ds-text-h:where(.ds-text--block-box){display:block;width:100%}.ds-text__element.sc-ds-text{display:block;box-sizing:border-box;width:100%;min-width:0;margin:0;padding:0;border:0;font:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;text-transform:inherit;text-align:inherit;text-decoration:inherit;text-underline-offset:inherit;font-style:inherit;font-variant-numeric:inherit;font-feature-settings:inherit;-webkit-user-select:inherit;user-select:inherit;white-space:inherit;text-wrap:inherit;overflow-wrap:inherit;word-break:inherit;overflow:inherit;text-overflow:inherit}.ds-text--truncate-1.sc-ds-text-h{overflow:hidden}.ds-text--truncate-1.sc-ds-text-h .ds-text__element.sc-ds-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ds-text--truncate-2.sc-ds-text-h,.ds-text--truncate-3.sc-ds-text-h,.ds-text--truncate-4.sc-ds-text-h,.ds-text--truncate-5.sc-ds-text-h{overflow:hidden}.ds-text--truncate-2.sc-ds-text-h .ds-text__element.sc-ds-text,.ds-text--truncate-3.sc-ds-text-h .ds-text__element.sc-ds-text,.ds-text--truncate-4.sc-ds-text-h .ds-text__element.sc-ds-text,.ds-text--truncate-5.sc-ds-text-h .ds-text__element.sc-ds-text{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-word}.ds-text--truncate-2.sc-ds-text-h .ds-text__element.sc-ds-text{-webkit-line-clamp:2}.ds-text--truncate-3.sc-ds-text-h .ds-text__element.sc-ds-text{-webkit-line-clamp:3}.ds-text--truncate-4.sc-ds-text-h .ds-text__element.sc-ds-text{-webkit-line-clamp:4}.ds-text--truncate-5.sc-ds-text-h .ds-text__element.sc-ds-text{-webkit-line-clamp:5}.ds-text--nowrap.sc-ds-text-h,.ds-text--nowrap.sc-ds-text-h .ds-text__element.sc-ds-text{white-space:nowrap;word-break:normal;overflow:hidden;text-overflow:ellipsis;min-width:0}.ds-text--balance.sc-ds-text-h,.ds-text--balance.sc-ds-text-h .ds-text__element.sc-ds-text{text-wrap:balance}.ds-text--pretty.sc-ds-text-h,.ds-text--pretty.sc-ds-text-h .ds-text__element.sc-ds-text{text-wrap:pretty}.ds-text--color-primary.sc-ds-text-h{color:var(--color-foreground-primary)}.ds-text--color-secondary.sc-ds-text-h{color:var(--color-foreground-secondary)}.ds-text--color-tertiary.sc-ds-text-h{color:var(--color-foreground-tertiary)}.ds-text--color-quaternary.sc-ds-text-h{color:var(--color-foreground-quaternary)}.ds-text--color-brand.sc-ds-text-h{color:var(--color-foreground-bold-brand)}.ds-text--color-negative.sc-ds-text-h{color:var(--color-foreground-bold-negative)}.ds-text--color-positive.sc-ds-text-h{color:var(--color-foreground-bold-positive)}.ds-text--color-warning.sc-ds-text-h{color:var(--color-foreground-bold-warning)}.ds-text--color-caution.sc-ds-text-h{color:var(--color-foreground-bold-caution)}.ds-text--color-ai.sc-ds-text-h{color:var(--color-foreground-bold-ai)}.ds-text--color-on-strong.sc-ds-text-h{color:var(--color-foreground-on-strong-background-primary)}.ds-text--color-on-bold.sc-ds-text-h{color:var(--color-foreground-on-bold-background-primary)}.ds-text--decoration-underline.sc-ds-text-h,.ds-text--decoration-dotted-underline.sc-ds-text-h{text-decoration-color:var(--ds-text-decoration-color, var(--color-foreground-tertiary));text-decoration-thickness:var(--ds-text-decoration-thickness, var(--dimension-stroke-width-012));text-underline-offset:var(--ds-text-decoration-offset, var(--dimension-space-025))}.ds-text--decoration-underline.sc-ds-text-h{text-decoration-line:underline}.ds-text--decoration-dotted-underline.sc-ds-text-h{text-decoration-line:underline;text-decoration-style:dotted}.ds-text--italic.sc-ds-text-h{font-style:italic}.ds-text--font-feature-tabular-nums.sc-ds-text-h{font-variant-numeric:tabular-nums;font-feature-settings:'tnum'}.ds-text--align-left.sc-ds-text-h{text-align:left}.ds-text--align-center.sc-ds-text-h{text-align:center}.ds-text--align-right.sc-ds-text-h{text-align:right}`;const n=t(class t extends e{constructor(t){super();if(t!==false){this.__registerHost()}this.variant="text-body-medium";this.emphasis=false;this.color="inherit";this.italic=false;this.shimmer=false;this.lineTruncation="none";this.fontFeature="normal";this.as="p"}render(){const t=this.as;const e=t=>typeof t==="string"&&t.startsWith("var(--");const i=Number(this.lineTruncation);const o={"ds-text":true,[a(this.as)]:true,[d(this.variant)]:true,"ds-text--emphasis":this.emphasis,"ds-text--regular":!this.emphasis,"ds-text--nowrap":this.wrap==="nowrap","ds-text--balance":this.wrap==="balance","ds-text--pretty":this.wrap==="pretty","ds-text--truncate-1":i===1&&this.wrap!=="nowrap","ds-text--truncate-2":i===2&&this.wrap!=="nowrap","ds-text--truncate-3":i===3&&this.wrap!=="nowrap","ds-text--truncate-4":i===4&&this.wrap!=="nowrap","ds-text--truncate-5":i===5&&this.wrap!=="nowrap","ds-text--color-primary":this.color==="primary","ds-text--color-secondary":this.color==="secondary","ds-text--color-tertiary":this.color==="tertiary","ds-text--color-quaternary":this.color==="quaternary","ds-text--color-brand":this.color==="brand","ds-text--color-negative":this.color==="negative","ds-text--color-positive":this.color==="positive","ds-text--color-warning":this.color==="warning","ds-text--color-caution":this.color==="caution","ds-text--color-ai":this.color==="ai","ds-text--color-on-strong":this.color==="on-strong","ds-text--color-on-bold":this.color==="on-bold","ds-text--color-inherit":this.color==="inherit","ds-text--decoration-underline":this.decoration==="underline","ds-text--decoration-dotted-underline":this.decoration==="dotted-underline","ds-text--italic":this.italic,"ds-text--align-left":this.align==="left","ds-text--align-center":this.align==="center","ds-text--align-right":this.align==="right","ds-text--font-feature-tabular-nums":this.fontFeature==="tabular-nums"};const n=this.color&&e(this.color)?{color:this.color}:undefined;const c={};if(this.as==="label"&&this.for)c["for"]=this.for;if(this.textId)c["id"]=this.textId;return s(r,{key:"9af1937e3a7403e3f0a7dadeed41e1302bba4ec7",class:o,style:n},s(t,{key:"d51533721d7fe127cd203154613956cd4b557664",class:{"ds-text__element":true,"ds-shimmer-text":this.shimmer},...c},s("slot",{key:"e212141cf42f3356b6e106528947ddeac3a756e1"})))}static get style(){return o()}},[262,"ds-text",{variant:[1],emphasis:[4],color:[1],decoration:[1],italic:[4],shimmer:[4],align:[1],lineTruncation:[8,"line-truncation"],wrap:[1],fontFeature:[1,"font-feature"],as:[1],for:[1],textId:[1,"text-id"]}]);function c(){if(typeof customElements==="undefined"){return}const t=["ds-text"];t.forEach((t=>{switch(t){case"ds-text":if(!customElements.get(i(t))){customElements.define(i(t),n)}break}}))}c();export{n as T,c as d};
2
+ //# sourceMappingURL=p-BbvAWFJA.js.map
@@ -0,0 +1,2 @@
1
+ import{p as t,H as i,c as e,h as s,a as n,t as o}from"./index.js";import{A as r,r as d,d as a}from"./p-BJf49edB.js";import{A as c}from"./p-CwUXroLs.js";import{d as l}from"./p-BWJb2rih.js";import{d as p}from"./p-pJ6gbwSa.js";import{d as u}from"./p-pPtjNRqC.js";import{d as h}from"./p-0XTyQNRG.js";import{d as m}from"./p-BbvAWFJA.js";import{i as f,a as v,f as g,p as b,d as y}from"./p-BNN9KkXe.js";import{D as x}from"./p-DOUk4KoT.js";import{r as w}from"./p-ioGH5SoA.js";import{r as k}from"./p-DhKvqh5G.js";import{s as z,r as C}from"./p-DGVZhrMd.js";import{b as F,T as I}from"./p-CeXf9-X3.js";import{C as T}from"./p-CuwopElg.js";import{c as _}from"./p-DuFm-ieS.js";const j=()=>`@media (forced-colors: active){.sc-ds-input-time:root,.sc-ds-input-time-h,.ds-forced-colors-scope.sc-ds-input-time{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.ds-interaction-fill.sc-ds-input-time-h,.ds-interaction-fill.sc-ds-input-time{position:var(--ds-interaction-position, relative);z-index:var(--ds-interaction-z-index, 0);cursor:default;--ds-interaction-hover:var(--color-interaction-hover);--ds-interaction-pressed:var(--color-interaction-pressed);--ds-interaction-active:var(--color-interaction-active-brand);--ds-interaction-border-width:0px;--ds-interaction-border-color:transparent;--ds-interaction-divider-width:0px;--ds-interaction-divider-color:transparent;--ds-interaction-divider-inline-start-width:0px;--ds-interaction-divider-inline-start-color:transparent;--ds-interaction-divider-inline-end-width:0px;--ds-interaction-divider-inline-end-color:transparent}.ds-interaction-fill.sc-ds-input-time-h::before,.ds-interaction-fill.sc-ds-input-time::before,.ds-interaction-fill.sc-ds-input-time-h::after,.ds-interaction-fill.sc-ds-input-time::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;cursor:inherit;transition:none}.ds-interaction-fill.sc-ds-input-time-h::before,.ds-interaction-fill.sc-ds-input-time::before{z-index:1}.ds-interaction-fill.sc-ds-input-time-h::after,.ds-interaction-fill.sc-ds-input-time::after{z-index:3;box-shadow:inset 0 calc(-1 * var(--ds-interaction-divider-width)) 0 var(--ds-interaction-divider-color), inset var(--ds-interaction-divider-inline-start-width) 0 0 var(--ds-interaction-divider-inline-start-color), inset calc(-1 * var(--ds-interaction-divider-inline-end-width)) 0 0 var(--ds-interaction-divider-inline-end-color), inset 0 0 0 var(--ds-interaction-border-width) var(--ds-interaction-border-color)}.ds-interaction-fill--bordered.sc-ds-input-time-h,.ds-interaction-fill--bordered.sc-ds-input-time{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-input-time-h::before,.ds-interaction-fill--selected.sc-ds-input-time::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-input-time-h,.ds-interaction-fill--selected.sc-ds-input-time{--ds-interaction-dot-ring:var(--ds-interaction-active)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-input-time-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-input-time:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}}.ds-interaction-fill.sc-ds-input-time-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-input-time:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill--grouped.sc-ds-input-time-h::after,.ds-interaction-fill--grouped.sc-ds-input-time::after,.ds-interaction-fill--grouped.sc-ds-input-time-h:active:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-input-time:active:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill--grouped.sc-ds-input-time-h:hover:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-input-time:hover:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}}.ds-interaction-fill--grouped.sc-ds-input-time-h,.ds-interaction-fill--grouped.sc-ds-input-time{--ds-interaction-divider-width:var(--ds-interaction-group-divider-width, 0px);--ds-interaction-divider-color:var(--ds-interaction-group-divider-color, transparent);--ds-interaction-divider-inline-start-width:var( --ds-interaction-group-divider-inline-start-width, 0px );--ds-interaction-divider-inline-start-color:var( --ds-interaction-group-divider-inline-start-color, transparent );--ds-interaction-divider-inline-end-width:var( --ds-interaction-group-divider-inline-end-width, 0px );--ds-interaction-divider-inline-end-color:var( --ds-interaction-group-divider-inline-end-color, transparent )}.ds-interaction-fill.sc-ds-input-time-h>.ds-interaction-fill__content.sc-ds-input-time,.ds-interaction-fill.sc-ds-input-time>.ds-interaction-fill__content.sc-ds-input-time,.ds-interaction-fill__content.sc-ds-input-time{position:relative;z-index:2;cursor:inherit}.ds-interaction-fill--on-faint.sc-ds-input-time-h,.ds-interaction-fill--on-faint.sc-ds-input-time{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-input-time-h,.ds-interaction-fill--on-medium.sc-ds-input-time{--ds-interaction-hover:var(--color-interaction-on-medium-background-hover);--ds-interaction-pressed:var(--color-interaction-on-medium-background-pressed);--ds-interaction-active:var(--color-interaction-on-medium-background-active);--ds-focus-ring-color:var(--color-interaction-on-medium-background-focus)}.ds-interaction-fill--on-bold.sc-ds-input-time-h,.ds-interaction-fill--on-bold.sc-ds-input-time{--ds-interaction-hover:var(--color-interaction-on-bold-background-hover);--ds-interaction-pressed:var(--color-interaction-on-bold-background-pressed);--ds-interaction-active:var(--color-interaction-on-bold-background-active);--ds-focus-ring-color:var(--color-interaction-on-bold-background-focus)}.ds-interaction-fill--on-strong.sc-ds-input-time-h,.ds-interaction-fill--on-strong.sc-ds-input-time{--ds-interaction-hover:var(--color-interaction-on-strong-background-hover);--ds-interaction-pressed:var(--color-interaction-on-strong-background-pressed);--ds-interaction-active:var(--color-interaction-on-strong-background-active);--ds-focus-ring-color:var(--color-interaction-on-strong-background-focus)}.ds-interaction-fill--on-translucent.sc-ds-input-time-h,.ds-interaction-fill--on-translucent.sc-ds-input-time{--ds-interaction-hover:var(--color-translucent-interaction-hover);--ds-interaction-pressed:var(--color-translucent-interaction-pressed);--ds-interaction-active:var(--color-translucent-interaction-active-brand);--ds-focus-ring-color:var(--color-translucent-interaction-focus)}.ds-interaction-fill--on-inverted.sc-ds-input-time-h,.ds-interaction-fill--on-inverted.sc-ds-input-time{--ds-interaction-hover:var(--color-inverted-interaction-hover);--ds-interaction-pressed:var(--color-inverted-interaction-pressed);--ds-interaction-active:var(--color-inverted-interaction-active-brand);--ds-focus-ring-color:var(--color-inverted-interaction-focus)}.ds-interaction-fill--on-media.sc-ds-input-time-h,.ds-interaction-fill--on-media.sc-ds-input-time{--ds-interaction-hover:var(--color-media-interaction-hover);--ds-interaction-pressed:var(--color-media-interaction-pressed);--ds-interaction-active:var(--color-media-interaction-active);--ds-focus-ring-color:var(--color-media-interaction-focus)}.ds-interaction-fill--on-always-dark.sc-ds-input-time-h,.ds-interaction-fill--on-always-dark.sc-ds-input-time{--ds-interaction-hover:var(--color-always-dark-interaction-hover);--ds-interaction-pressed:var(--color-always-dark-interaction-pressed);--ds-interaction-active:var(--color-always-dark-interaction-active-brand);--ds-focus-ring-color:var(--color-always-dark-interaction-focus)}.ds-interaction-fill--on-chrome.sc-ds-input-time-h,.ds-interaction-fill--on-chrome.sc-ds-input-time{--ds-interaction-hover:var(--color-chrome-interaction-hover);--ds-interaction-pressed:var(--color-chrome-interaction-pressed);--ds-interaction-active:var(--color-chrome-interaction-active);--ds-focus-ring-color:var(--color-chrome-interaction-focus)}.ds-interaction-fill--on-navigation.sc-ds-input-time-h,.ds-interaction-fill--on-navigation.sc-ds-input-time{--ds-interaction-hover:var(--color-navigation-interaction-hover);--ds-interaction-pressed:var(--color-navigation-interaction-pressed);--ds-interaction-active:var(--color-navigation-interaction-active);--ds-focus-ring-color:var(--color-navigation-interaction-focus)}.ds-interaction-fill.ds-interaction-fill--surface-open.sc-ds-input-time-h:not(:disabled)::after,.ds-interaction-fill.ds-interaction-fill--surface-open.sc-ds-input-time:not(:disabled)::after{background:var(--ds-interaction-pressed)}@media (forced-colors: active){.ds-interaction-fill.sc-ds-input-time-h::after,.ds-interaction-fill.sc-ds-input-time::after{box-shadow:none;outline:var(--ds-interaction-border-width) solid var(--ds-forced-color-control-boundary);outline-offset:calc(-1 * var(--ds-interaction-border-width))}.ds-interaction-fill--surface-open.sc-ds-input-time-h:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill--surface-open.sc-ds-input-time:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after{outline:var(--dimension-stroke-width-025) dashed var(--ds-forced-color-control-boundary);outline-offset:calc(-1 * var(--dimension-stroke-width-025))}.ds-interaction-fill--selected.sc-ds-input-time-h::before,.ds-interaction-fill--selected.sc-ds-input-time::before{background:transparent;outline:var(--dimension-stroke-width-025) solid var(--ds-forced-color-selected);outline-offset:calc(-1 * var(--dimension-stroke-width-025))}}@media (forced-colors: active) and (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-input-time-h:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill.sc-ds-input-time:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after{outline-color:var(--ds-forced-color-selected);outline-width:var(--dimension-stroke-width-012)}}@media (forced-colors: active){.sc-ds-input-time:root,.sc-ds-input-time-h,.ds-forced-colors-scope.sc-ds-input-time{--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-input-time-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-input-time-h,.ds-focus-ring.sc-ds-input-time,.ds-focus-ring-inset.sc-ds-input-time-h,.ds-focus-ring-inset.sc-ds-input-time{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-input-time-h:focus-visible,.ds-focus-ring.sc-ds-input-time: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-input-time-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-input-time{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-input-time-h:focus-visible,.ds-focus-ring-inset.sc-ds-input-time:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-input-time-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-input-time: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-input-time-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-input-time{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-input-time-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-input-time::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-input-time-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){.sc-ds-input-time:root,.sc-ds-input-time-h,.ds-forced-colors-scope.sc-ds-input-time{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.ds-control-inactive.sc-ds-input-time-h,.ds-control-inactive.sc-ds-input-time{opacity:var(--effect-opacity-medium);pointer-events:none;cursor:not-allowed}@media (forced-colors: active){.ds-control-inactive.sc-ds-input-time-h,.ds-control-inactive.sc-ds-input-time{color:var(--ds-forced-color-disabled);opacity:1}}.sc-ds-input-time-h,.sc-ds-input-time:where(.ds-table),.sc-ds-input-time:where(.tooltip-popup),.sc-ds-input-time:where(.ds-radius){--ds-radius-control:var(--dimension-radius-025);--ds-radius-card:var(--dimension-radius-050);--ds-radius-modal:var(--dimension-radius-050);--ds-radius-menu:var(--dimension-radius-075);--ds-radius-tooltip-control:var(--dimension-radius-025);--ds-radius-tooltip-menu:var(--dimension-radius-075);--ds-radius-table:var(--dimension-radius-050)}.ds-control--lg.sc-ds-input-time,.ds-control--lg.sc-ds-input-time-h,.ds-control--md.sc-ds-input-time-h,.ds-control--md.sc-ds-input-time,.ds-control--sm.sc-ds-input-time-h,.ds-control--sm.sc-ds-input-time,.ds-control--xs.sc-ds-input-time-h,.ds-control--xs.sc-ds-input-time{--ds-control-radius:var(--ds-radius-control)}.ds-control--lg.sc-ds-input-time-h,.ds-control--lg.sc-ds-input-time{--ds-control-height:var(--dimension-size-500);--ds-control-icon:var(--dimension-iconography-lg);--ds-control-padding-inline:var(--dimension-space-100);--ds-control-label-inset:var(--dimension-space-050);--ds-control-gap:var(--dimension-space-050)}.ds-control--md.sc-ds-input-time-h,.ds-control--md.sc-ds-input-time{--ds-control-height:var(--dimension-size-400);--ds-control-icon:var(--dimension-iconography-md);--ds-control-padding-inline:var(--dimension-space-075);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-050)}.ds-control--sm.sc-ds-input-time-h,.ds-control--sm.sc-ds-input-time{--ds-control-height:var(--dimension-size-300);--ds-control-icon:var(--dimension-iconography-sm);--ds-control-padding-inline:var(--dimension-space-050);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-025)}.ds-control--xs.sc-ds-input-time-h,.ds-control--xs.sc-ds-input-time{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0}.ds-control-frame.sc-ds-input-time{display:inline-flex;align-items:center;box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));padding-inline:var(--ds-control-padding-inline, var(--dimension-space-075));gap:var(--ds-control-gap, var(--dimension-space-050));border-radius:var(--ds-control-radius, var(--dimension-radius-025))}.ds-control-section-heading.sc-ds-input-time{display:flex;align-items:center;box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));padding-inline:calc( var(--ds-control-padding-inline, var(--dimension-space-075)) + var(--ds-control-label-inset, var(--dimension-space-025)) )}.ds-control-icon-box.sc-ds-input-time{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ds-control-icon, var(--dimension-iconography-md));height:var(--ds-control-icon, var(--dimension-iconography-md))}.ds-control-label-box.sc-ds-input-time{min-width:0;padding-inline:var(--ds-control-label-inset, var(--dimension-space-025))}.ds-control-label-dot.sc-ds-input-time{position:relative;padding-inline-end:calc( var(--ds-control-label-inset, var(--dimension-space-025)) + var(--ds-control-gap, var(--dimension-space-050)) )}.ds-control-label-dot__badge.sc-ds-input-time{position:absolute;inset-block-start:0;inset-inline-end:0;pointer-events:none}.ds-control-width--hug.sc-ds-input-time-h,.ds-control-width--hug.sc-ds-input-time{width:fit-content;max-width:100%;flex:0 0 auto}.ds-control-width--fill.sc-ds-input-time-h,.ds-control-width--fill.sc-ds-input-time{width:100%;min-width:0;flex:1 1 auto;align-self:stretch}.ds-field-stack.sc-ds-input-time-h,.ds-field-stack.sc-ds-input-time{display:flex;flex-direction:column;gap:var(--dimension-space-050)}.ds-field-stack.ds-field-stack--supporting-inset.sc-ds-input-time-h .error-text.sc-ds-input-time,.ds-field-stack.ds-field-stack--supporting-inset.sc-ds-input-time .error-text.sc-ds-input-time,.ds-field-stack.ds-field-stack--supporting-inset.sc-ds-input-time .field__description.sc-ds-input-time,.ds-field-stack.ds-field-stack--supporting-inset.sc-ds-input-time .field__error.sc-ds-input-time{padding-inline:calc( var(--ds-control-padding-inline, var(--dimension-space-075)) + var(--ds-control-label-inset, var(--dimension-space-025)) )}.ds-text--display-medium.sc-ds-input-time-h,.ds-text--display-medium.sc-ds-input-time{font-size:var(--typography-fontsize-3xl);line-height:var(--typography-lineheight-3xl)}.ds-text--display-small.sc-ds-input-time-h,.ds-text--display-small.sc-ds-input-time{font-size:var(--typography-fontsize-2xl);line-height:var(--typography-lineheight-2xl)}.ds-text--title-large.sc-ds-input-time-h,.ds-text--title-large.sc-ds-input-time{font-size:var(--typography-fontsize-xl);line-height:var(--typography-lineheight-xl)}.ds-text--title-medium.sc-ds-input-time-h,.ds-text--title-medium.sc-ds-input-time{font-size:var(--typography-fontsize-lg);line-height:var(--typography-lineheight-lg)}.ds-text--title-small.sc-ds-input-time-h,.ds-text--title-small.sc-ds-input-time{font-size:var(--typography-fontsize-md);line-height:var(--typography-lineheight-md)}.ds-text--body-large.sc-ds-input-time-h,.ds-text--body-large.sc-ds-input-time{font-size:var(--typography-fontsize-lg);line-height:var(--typography-lineheight-lg)}.ds-text--body-medium.sc-ds-input-time-h,.ds-text--body-medium.sc-ds-input-time{font-size:var(--typography-fontsize-md);line-height:var(--typography-lineheight-md)}.ds-text--body-small.sc-ds-input-time-h,.ds-text--body-small.sc-ds-input-time{font-size:var(--typography-fontsize-sm);line-height:var(--typography-lineheight-sm)}.ds-text--caption.sc-ds-input-time-h,.ds-text--caption.sc-ds-input-time{font-size:var(--typography-fontsize-xs);line-height:var(--typography-lineheight-xs);text-transform:uppercase}.ds-text--display-medium.ds-text--emphasis.sc-ds-input-time-h,.ds-text--display-small.ds-text--emphasis.sc-ds-input-time-h,.ds-text--display-medium.ds-text--emphasis.sc-ds-input-time,.ds-text--display-small.ds-text--emphasis.sc-ds-input-time{font-weight:var(--typography-weight-bold);letter-spacing:var(--typography-letterspacing-negative-double)}.ds-text--display-medium.ds-text--regular.sc-ds-input-time-h,.ds-text--display-small.ds-text--regular.sc-ds-input-time-h,.ds-text--display-medium.ds-text--regular.sc-ds-input-time,.ds-text--display-small.ds-text--regular.sc-ds-input-time{font-weight:var(--typography-weight-semibold);letter-spacing:var(--typography-letterspacing-negative)}.ds-text--title-large.ds-text--emphasis.sc-ds-input-time-h,.ds-text--title-large.ds-text--emphasis.sc-ds-input-time{font-weight:var(--typography-weight-semibold);letter-spacing:var(--typography-letterspacing-negative-double)}.ds-text--title-large.ds-text--regular.sc-ds-input-time-h,.ds-text--title-large.ds-text--regular.sc-ds-input-time{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-negative)}.ds-text--title-medium.ds-text--emphasis.sc-ds-input-time-h,.ds-text--title-small.ds-text--emphasis.sc-ds-input-time-h,.ds-text--title-medium.ds-text--emphasis.sc-ds-input-time,.ds-text--title-small.ds-text--emphasis.sc-ds-input-time{font-weight:var(--typography-weight-semibold);letter-spacing:var(--typography-letterspacing-negative)}.ds-text--title-medium.ds-text--regular.sc-ds-input-time-h,.ds-text--title-small.ds-text--regular.sc-ds-input-time-h,.ds-text--title-medium.ds-text--regular.sc-ds-input-time,.ds-text--title-small.ds-text--regular.sc-ds-input-time{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-negative-half)}.ds-text--body-large.ds-text--emphasis.sc-ds-input-time-h,.ds-text--body-medium.ds-text--emphasis.sc-ds-input-time-h,.ds-text--body-large.ds-text--emphasis.sc-ds-input-time,.ds-text--body-medium.ds-text--emphasis.sc-ds-input-time{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-negative)}.ds-text--body-large.ds-text--regular.sc-ds-input-time-h,.ds-text--body-medium.ds-text--regular.sc-ds-input-time-h,.ds-text--body-large.ds-text--regular.sc-ds-input-time,.ds-text--body-medium.ds-text--regular.sc-ds-input-time{font-weight:var(--typography-weight-regular);letter-spacing:var(--typography-letterspacing-negative-half)}.ds-text--body-small.ds-text--emphasis.sc-ds-input-time-h,.ds-text--body-small.ds-text--emphasis.sc-ds-input-time{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-negative-half)}.ds-text--body-small.ds-text--regular.sc-ds-input-time-h,.ds-text--body-small.ds-text--regular.sc-ds-input-time{font-weight:var(--typography-weight-regular);letter-spacing:var(--typography-letterspacing-none)}.ds-text--caption.ds-text--emphasis.sc-ds-input-time-h,.ds-text--caption.ds-text--emphasis.sc-ds-input-time{font-weight:var(--typography-weight-semibold);letter-spacing:var(--typography-letterspacing-positive)}.ds-text--caption.ds-text--regular.sc-ds-input-time-h,.ds-text--caption.ds-text--regular.sc-ds-input-time{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-positive)}@media (forced-colors: active){.sc-ds-input-time:root,.sc-ds-input-time-h,.ds-forced-colors-scope.sc-ds-input-time{--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}}.input-host.sc-ds-input-time-h{display:inline-flex;--ds-input-fg:var(--color-foreground-primary);--ds-input-placeholder:var(--color-foreground-secondary);--ds-input-placeholder-active:var(--color-foreground-quaternary);--ds-input-adornment-fg:var(--color-foreground-secondary);--ds-input-border:var(--color-border-secondary)}.ds-control-width--fill.sc-ds-input-time-h,.ds-control-width--fill.sc-ds-input-time-h .input-control.sc-ds-input-time{width:100%}.input-control.sc-ds-input-time{overflow:hidden;background:transparent;border:none;border-radius:var(--ds-control-radius, var(--dimension-radius-025));color:var(--ds-input-fg)}.input-control--bordered.sc-ds-input-time{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--ds-input-border)}.input-control--error.sc-ds-input-time{--ds-interaction-border-width:var(--dimension-stroke-width-018);--ds-interaction-border-color:var(--color-border-bold-negative)}.input-control--bordered.sc-ds-input-time:focus-within:not(.input-control--error){--ds-interaction-border-width:var(--dimension-stroke-width-018);--ds-interaction-border-color:var(--color-border-bold-brand)}.ds-control-inactive.sc-ds-input-time-h .input-control.sc-ds-input-time::after{background:transparent}.native-input.sc-ds-input-time{position:relative;z-index:2;flex:1 1 auto;min-width:0;height:100%;background:transparent;border:none;border-radius:inherit;outline:none;color:var(--ds-input-fg);font-family:inherit;letter-spacing:inherit;text-overflow:ellipsis;-webkit-appearance:none;appearance:none;color-scheme:inherit}.native-input--align-start.sc-ds-input-time{text-align:start}.native-input.sc-ds-input-time:disabled{cursor:not-allowed}.native-input.sc-ds-input-time:read-only:not(:disabled){cursor:default}.native-input.sc-ds-input-time::-webkit-calendar-picker-indicator{display:none}.native-input.sc-ds-input-time::-webkit-inner-spin-button,.native-input.sc-ds-input-time::-webkit-clear-button{display:none}.native-input.sc-ds-input-time::-webkit-datetime-edit,.native-input.sc-ds-input-time::-webkit-datetime-edit-fields-wrapper,.native-input.sc-ds-input-time::-webkit-datetime-edit-text,.native-input.sc-ds-input-time::-webkit-datetime-edit-month-field,.native-input.sc-ds-input-time::-webkit-datetime-edit-day-field,.native-input.sc-ds-input-time::-webkit-datetime-edit-year-field,.native-input.sc-ds-input-time::-webkit-datetime-edit-hour-field,.native-input.sc-ds-input-time::-webkit-datetime-edit-minute-field,.native-input.sc-ds-input-time::-webkit-datetime-edit-second-field,.native-input.sc-ds-input-time::-webkit-datetime-edit-ampm-field{padding:0;color:inherit;font:inherit;letter-spacing:inherit}.input-control__prefix.sc-ds-input-time{position:relative;z-index:2;color:var(--ds-input-adornment-fg)}.input-control.sc-ds-input-time>.input-control__datetime-action.sc-ds-input-time{position:relative;z-index:2;flex-shrink:0;align-self:center}.ds-control-inactive.sc-ds-input-time-h .input-control.sc-ds-input-time>.input-control__datetime-action.sc-ds-input-time{--effect-opacity-medium:1}.input-control.sc-ds-input-time:has(.input-control__datetime-action){padding-inline-end:var(--dimension-space-025)}.error-text.sc-ds-input-time{width:100%}@media (forced-colors: active){.input-control--bordered.sc-ds-input-time:focus-within:not(.input-control--error)::after{outline-color:var(--ds-forced-color-selected)}.input-control--error.sc-ds-input-time::after{outline-style:dashed}}.ds-choice-popup.sc-ds-input-time{box-sizing:border-box;display:flex;flex-direction:column;min-width:var(--ds-choice-popup-min-inline-size, var(--dimension-menu-width-xs));max-width:min(var(--dimension-panel-width-lg), calc(100vw - var(--dimension-space-200)));max-height:calc(100vh - var(--dimension-space-200));overflow:hidden;inset:auto;margin:0;padding:0;border:0;background-color:var(--color-background-primary);border-radius:var(--ds-radius-menu);box-shadow:var(--effect-shadow-elevated-floating);color:var(--color-foreground-secondary);animation:dsChoiceFadeIn var(--effect-motion-short-2) forwards;backface-visibility:hidden;will-change:transform;text-align:start}.ds-choice-popup.sc-ds-input-time::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:var(--effect-highlight-elevated-floating)}.ds-choice-popup--closing.sc-ds-input-time{animation:dsChoiceFadeOut var(--effect-motion-short-2) forwards}@keyframes dsChoiceFadeIn{from{opacity:0;transform:inherit scale(0.97)}to{opacity:1}}@keyframes dsChoiceFadeOut{from{opacity:1}to{opacity:0}}@media (prefers-reduced-motion: reduce){.ds-choice-popup.sc-ds-input-time{animation:none;opacity:1}.ds-choice-popup--closing.sc-ds-input-time{opacity:0}}@media (forced-colors: active){.ds-choice-popup.sc-ds-input-time{outline:var(--dimension-stroke-width-012) solid var(--ds-forced-color-content);outline-offset:calc(-1 * var(--dimension-stroke-width-012))}.ds-choice-popup.sc-ds-input-time::after{box-shadow:none}}.ds-chrome-space--sm.sc-ds-input-time-h,.ds-chrome-space--sm.sc-ds-input-time{--ds-chrome-padding:var(--dimension-space-050);--ds-chrome-gap:var(--dimension-space-050)}.ds-chrome-space--md.sc-ds-input-time-h,.ds-chrome-space--md.sc-ds-input-time{--ds-chrome-padding:var(--dimension-space-100);--ds-chrome-gap:var(--dimension-space-100)}.ds-chrome-space--lg.sc-ds-input-time-h,.ds-chrome-space--lg.sc-ds-input-time{--ds-chrome-padding:var(--dimension-space-200);--ds-chrome-gap:var(--dimension-space-200)}.ds-chrome-row.sc-ds-input-time-h,.ds-chrome-row.sc-ds-input-time,.ds-chrome-column.sc-ds-input-time-h,.ds-chrome-column.sc-ds-input-time,.ds-chrome-grid.sc-ds-input-time-h,.ds-chrome-grid.sc-ds-input-time{display:flex;box-sizing:border-box;gap:var(--ds-chrome-gap, var(--dimension-space-100));padding:var(--ds-chrome-padding, var(--dimension-space-100))}.ds-chrome-row.sc-ds-input-time-h,.ds-chrome-row.sc-ds-input-time{flex-direction:row;align-items:center}.ds-chrome-column.sc-ds-input-time-h,.ds-chrome-column.sc-ds-input-time{flex-direction:column}.ds-chrome-grid.sc-ds-input-time-h,.ds-chrome-grid.sc-ds-input-time{display:grid;align-items:center}.input-time-popup.ds-choice-popup.sc-ds-input-time{--ds-time-picker-padding:0;padding:var(--dimension-space-050)}`;let H=0;const D="Enter a valid time.";const V="Time is before the minimum allowed time.";const B="Time is after the maximum allowed time.";const E="Time does not match the allowed interval.";const O=t(class t extends i{constructor(t){super();if(t!==false){this.__registerHost()}this.dsChange=e(this,"dsChange",7);this.internals=this.attachInternals();this.generatedId=`ds-input-time-${++H}`;this.errorId=`${this.generatedId}-error`;this.popupId=`${this.generatedId}-popup`;this.value="";this.disabled=false;this.readOnly=false;this.required=false;this.requiredMessage=x;this.step=60;this.hourFormat="12";this.size="md";this.width="fill";this.hasBorder=true;this.hasInteractionFill=true;this.isInactive=false;this.autoFocus=false;this.error=false;this.ariaLabel=null;this.initialValue="";this.closeTimer=null;this.formDisabled=false;this.focused=false;this.touched=false;this.draftText="";this.open=false;this.shouldRender=false;this.closing=false;this.positionReady=false;this.pos={x:0,y:0};this.position=new r({getAnchor:()=>this.controlEl??null,getPopup:()=>this.el.querySelector(".input-time-popup"),getOwnerDocument:()=>this.el.ownerDocument,measure:(t,i)=>{if(!this.open)return null;const e=w(I.space050,I.space050);return{anchorRect:t.getBoundingClientRect(),popupWidth:i.offsetWidth||this.popupFallbackWidth,popupHeight:i.offsetHeight||this.popupFallbackHeight,side:"bottom",align:"end",sideOffsetPx:w(I.space050,I.space050),alignOffsetPx:k({align:"end",alignOffsetPx:0,sectionInsetPx:e,anchorAlignment:"popup-frame"}),viewportPadPx:w(I.space050,I.space050),viewportWidth:window.innerWidth,viewportHeight:window.innerHeight,collisionRect:d(t)}},apply:({x:t,y:i})=>{this.pos={x:t,y:i}},onReady:()=>{this.positionReady=true},liveUpdate:"double-frame",observeResize:true,topLayer:true});this.interaction=new c({getAnchor:()=>this.controlEl??null,getPopup:()=>this.el.querySelector(".input-time-popup"),getOwnerDocument:()=>this.el.ownerDocument,onOutsideActivation:()=>this.closePicker(false)});this.togglePicker=()=>{if(this.isInactive||this.disabled||this.formDisabled||this.readOnly)return;if(this.open)this.closePicker("button");else this.openPicker()};this.handleInput=t=>{if(this.pickerInactive)return;this.draftText=t.target.value;const i=this.parseDraft(this.draftText);if(i===null)return;this.commitIso(i)};this.handleFocus=()=>{this.draftText=this.displayValue||this.value;this.focused=true};this.handleBlur=()=>{this.focused=false;this.touched=true;if(this.pickerInactive){this.draftText=this.displayValue;return}const t=this.parseDraft(this.draftText);if(t===null){this.draftText=this.displayValue;return}this.commitIso(t)};this.handleTimeChange=t=>{t.stopPropagation();if(this.pickerInactive)return;const i=this.parseDraft(t.detail);if(i===null)return;this.commitIso(i)}}get popupFallbackWidth(){return w(I.menuWidthXs,I.menuWidthXs)}get popupFallbackHeight(){return w(I.menuFallbackHeight,I.menuFallbackHeight)}get formInactive(){return this.isInactive||this.disabled||this.formDisabled}get pickerInactive(){return this.formInactive||this.readOnly}get hasConstraintError(){if(!this.value)return false;if(!f(this.value))return true;if(this.min&&f(this.min)&&this.value<this.min)return true;if(this.max&&f(this.max)&&this.value>this.max)return true;return!v(this.value,this.step,this.min)}get isInvalid(){return this.error||!this.formInactive&&(this.required&&this.value.length===0||this.hasConstraintError)}componentWillLoad(){this.initialValue=this.value;this.syncFormValue()}disconnectedCallback(){this.teardownListeners();this.open=false;this.shouldRender=false;this.closing=false;this.positionReady=false;this.focused=false}onHourFormatChange(){this.draftText=this.displayValue}syncFormValue(){const t=this.formInactive;z(this.internals,this.value,{inactive:t});const i={};let e="";if(!t){if(this.required&&this.value.length===0){i.valueMissing=true;e=this.requiredMessage}else if(this.value&&!f(this.value)){i.badInput=true;e=D}else if(this.value&&this.min&&f(this.min)&&this.value<this.min){i.rangeUnderflow=true;e=V}else if(this.value&&this.max&&f(this.max)&&this.value>this.max){i.rangeOverflow=true;e=B}else if(this.value&&!v(this.value,this.step,this.min)){i.stepMismatch=true;e=E}}this.internals.setValidity(i,e)}onInteractionStateChange(){this.syncFormValue();if(this.pickerInactive&&this.shouldRender)this.closePicker(false)}formDisabledCallback(t){this.formDisabled=t;this.onInteractionStateChange()}formResetCallback(){this.value=this.initialValue;this.draftText=this.displayValue}formStateRestoreCallback(t){this.value=C(t);this.draftText=this.displayValue}async setFocus(){this.inputEl?.focus()}handleHostKeyDown(t){if(!this.shouldRender||this.closing)return;if(t.key==="Escape"){t.preventDefault();this.closePicker("button");return}if(t.key!=="Tab")return;const i=this.el.querySelector(".input-time-popup");if(!i||!t.composedPath().includes(i))return;if(!this.interaction.tabLeavesPopup(t))return;t.preventDefault();this.closePicker(false);this.interaction.moveFocusAfterTab(t.shiftKey)}get displayValue(){return this.hourFormat==="24"?this.value:g(this.value)}parseDraft(t){const i=t.trim();if(!i)return"";const e=b(i);if(!e)return null;if(this.min&&f(this.min)&&e<this.min)return null;if(this.max&&f(this.max)&&e>this.max)return null;if(!v(e,this.step,this.min))return null;return e}commitIso(t,i=true){if(this.value!==t){this.value=t;if(i)this.dsChange.emit(t)}this.draftText=this.hourFormat==="24"?t:g(t)}teardownListeners(){this.position.unobserve();this.interaction.disconnect();if(this.closeTimer){clearTimeout(this.closeTimer);this.closeTimer=null}}openPicker(){const t=this.isInactive||this.disabled||this.formDisabled||this.readOnly;if(t||this.open||!this.el.isConnected)return;this.shouldRender=true;this.closing=false;this.positionReady=false;this.open=true;this.teardownListeners();this.interaction.connect();this.position.observe();this.position.schedule()}closePicker(t){if(!this.shouldRender||this.closing)return;this.open=false;this.position.cancel();this.closing=true;this.interaction.disconnect();this.position.unobserve();if(t==="input")this.inputEl?.focus();if(t==="button")void this.clockButton?.setFocus();const i=F(I.motionShort2,I.animationDurationShort3);if(i<=0){this.finishClose();return}this.closeTimer=setTimeout((()=>this.finishClose()),i)}finishClose(){const t=this.el.querySelector(".input-time-popup");if(t?.matches(":popover-open"))t.hidePopover();this.shouldRender=false;this.closing=false;this.closeTimer=null}render(){const t=this.inputId??this.generatedId;const i=this.formInactive;const e=this.pickerInactive;const o=this.value.length>0;const r=this.value!==this.initialValue;const d=this.error&&Boolean(this.errorMessage);const a=T[this.size];const c=`ds-text--${a.replace("text-","")}`;const l=[this.ariaDescribedby,d?this.errorId:undefined].filter(Boolean).join(" ")||undefined;const p={position:"fixed",left:"0",top:"0",transform:`translate(${Math.round(this.pos.x)}px, ${Math.round(this.pos.y)}px)`,zIndex:"var(--dimension-z-index-floating)",visibility:this.positionReady?"visible":"hidden"};return s(n,{key:"dbb1e1d24fba2ae16442cd5474ac24d61d5c2a35",class:{"input-host":true,"ds-field-stack":true,"ds-field-stack--supporting-inset":!this.hasBorder,"ds-control-inactive":i,[`ds-control--${this.size}`]:true,..._(this.width)},"data-disabled":i?"":undefined,"data-readonly":this.readOnly?"":undefined,"data-required":this.required?"":undefined,"data-invalid":this.isInvalid?"":undefined,"data-filled":o?"":undefined,"data-focused":this.focused?"":undefined,"data-dirty":r?"":undefined,"data-touched":this.touched?"":undefined},s("div",{key:"73d09bf0ec9f85f4cdb1706b56c55dfb7ec5528f",ref:t=>{this.controlEl=t},class:{"input-control":true,"ds-control-frame":true,"input-control--bordered":this.hasBorder,"input-control--error":this.hasBorder&&this.error,"ds-interaction-fill":this.hasInteractionFill,[`ds-control--${this.size}`]:true}},s("input",{key:"9f6325736ebd30628714da492b898e48c0940b4f",ref:t=>{this.inputEl=t},type:"text",id:t,value:this.focused?this.draftText:this.displayValue,disabled:i,readOnly:this.readOnly,required:this.required,autoFocus:this.autoFocus,autoComplete:"off",spellcheck:false,class:{"native-input":true,"native-input--align-start":true,"ds-control-label-box":true,[c]:true,"ds-text--regular":true},"aria-label":this.ariaLabel,"aria-labelledby":this.ariaLabelledby,"aria-describedby":l,"aria-invalid":this.isInvalid?"true":undefined,onInput:this.handleInput,onFocus:this.handleFocus,onBlur:this.handleBlur}),s("ds-button-unfilled",{key:"8bf7e757250fe5ca85364e6036819c7384709b9b",ref:t=>{this.clockButton=t},class:"input-control__datetime-action",variant:"icon",size:this.size,icon:"Clock",hasBorder:false,isInset:true,isInactive:e,ariaLabel:"Choose time",haspopup:"dialog",expanded:this.open,surfaceOpen:this.open||this.closing,controls:this.open?this.popupId:undefined,onDsClick:this.togglePicker})),this.shouldRender?s("div",{id:this.popupId,popover:"manual",class:{"input-time-popup":true,"ds-choice-popup":true,"ds-choice-popup--closing":this.closing,"ds-chrome-column":true,"ds-chrome-space--sm":true},style:p,role:"dialog","aria-label":"Choose time"},s("ds-time-picker",{hourFormat:this.hourFormat,value:this.value,min:this.min,max:this.max,step:this.step,isInactive:e,autoFocus:true,onDsChange:this.handleTimeChange})):null,d&&s("ds-text",{key:"9d96a4d7514e34841b48ee2f0df9073082dad74e",class:"error-text",as:"div",variant:"text-body-small",color:"negative",textId:this.errorId,role:"alert"},this.errorMessage))}static get formAssociated(){return true}get el(){return this}static get watchers(){return{hourFormat:[{onHourFormatChange:0}],value:[{syncFormValue:0}],required:[{syncFormValue:0}],requiredMessage:[{syncFormValue:0}],min:[{syncFormValue:0}],max:[{syncFormValue:0}],step:[{syncFormValue:0}],disabled:[{onInteractionStateChange:0}],isInactive:[{onInteractionStateChange:0}],readOnly:[{onInteractionStateChange:0}]}}static get style(){return j()}},[66,"ds-input-time",{value:[1025],name:[513],form:[513],disabled:[516],readOnly:[516,"read-only"],required:[516],requiredMessage:[1,"required-message"],step:[8],hourFormat:[1,"hour-format"],min:[1],max:[1],size:[1],width:[1],hasBorder:[4,"has-border"],hasInteractionFill:[4,"has-interaction-fill"],isInactive:[4,"is-inactive"],autoFocus:[4,"auto-focus"],error:[4],errorMessage:[1,"error-message"],inputId:[1,"input-id"],ariaLabel:[1,"aria-label"],ariaLabelledby:[1,"aria-labelledby"],ariaDescribedby:[1,"aria-describedby"],formDisabled:[32],focused:[32],touched:[32],draftText:[32],open:[32],shouldRender:[32],closing:[32],positionReady:[32],pos:[32],setFocus:[64]},[[0,"keydown","handleHostKeyDown"]],{hourFormat:[{onHourFormatChange:0}],value:[{syncFormValue:0}],required:[{syncFormValue:0}],requiredMessage:[{syncFormValue:0}],min:[{syncFormValue:0}],max:[{syncFormValue:0}],step:[{syncFormValue:0}],disabled:[{onInteractionStateChange:0}],isInactive:[{onInteractionStateChange:0}],readOnly:[{onInteractionStateChange:0}]}]);function q(){if(typeof customElements==="undefined"){return}const t=["ds-input-time","ds-badge","ds-button-unfilled","ds-icon","ds-loader","ds-text","ds-time-picker","ds-tooltip"];t.forEach((t=>{switch(t){case"ds-input-time":if(!customElements.get(o(t))){customElements.define(o(t),O)}break;case"ds-badge":if(!customElements.get(o(t))){l()}break;case"ds-button-unfilled":if(!customElements.get(o(t))){p()}break;case"ds-icon":if(!customElements.get(o(t))){u()}break;case"ds-loader":if(!customElements.get(o(t))){h()}break;case"ds-text":if(!customElements.get(o(t))){m()}break;case"ds-time-picker":if(!customElements.get(o(t))){y()}break;case"ds-tooltip":if(!customElements.get(o(t))){a()}break}}))}q();export{O as I,q as d};
2
+ //# sourceMappingURL=p-Bdp2V6-c.js.map
@@ -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","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","unobserve","disconnect","clearTimeout","isConnected","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.teardownListeners();\n this.open = false;\n this.shouldRender = false;\n this.closing = false;\n this.positionReady = false;\n this.focused = false;\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 || !this.el.isConnected) 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","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","unobserve","disconnect","clearTimeout","isConnected","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.teardownListeners();\n this.open = false;\n this.shouldRender = false;\n this.closing = false;\n this.positionReady = false;\n this.focused = false;\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 || !this.el.isConnected) 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":[]}