@ds-mo/ui 14.19.1 → 14.21.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 (272) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +1 -1
  3. package/dist/agent.json +405 -36
  4. package/dist/angular/ds-chip.d.ts +1 -1
  5. package/dist/angular/ds-chip.js +3 -3
  6. package/dist/angular/ds-filter-menu.d.ts +7 -1
  7. package/dist/angular/ds-filter-menu.js +7 -4
  8. package/dist/angular/ds-input.d.ts +1 -1
  9. package/dist/angular/ds-input.js +3 -3
  10. package/dist/angular/ds-tab-group.d.ts +1 -1
  11. package/dist/angular/ds-tab-group.js +3 -3
  12. package/dist/angular/ds-table-filter.d.ts +7 -1
  13. package/dist/angular/ds-table-filter.js +7 -4
  14. package/dist/angular/ds-table-group.d.ts +29 -0
  15. package/dist/angular/ds-table-group.js +48 -0
  16. package/dist/angular/ds-table-search.d.ts +20 -0
  17. package/dist/angular/ds-table-search.js +49 -0
  18. package/dist/angular/ds-table.d.ts +1 -1
  19. package/dist/angular/ds-table.js +3 -3
  20. package/dist/angular/index.d.ts +1 -1
  21. package/dist/angular/index.js +2 -0
  22. package/dist/angular/proxies.d.ts +2 -0
  23. package/dist/angular/proxies.js +2 -0
  24. package/dist/components/ds-agent-activity.js +1 -1
  25. package/dist/components/ds-agent-questionnaire.js +1 -1
  26. package/dist/components/ds-agent-response.js +1 -1
  27. package/dist/components/ds-agent-source-list.js +1 -1
  28. package/dist/components/ds-agent-tool-call.js +1 -1
  29. package/dist/components/ds-attachment-list.js +1 -1
  30. package/dist/components/ds-badge.js +1 -1
  31. package/dist/components/ds-banner.js +1 -1
  32. package/dist/components/ds-bar-action.js +1 -1
  33. package/dist/components/ds-bar-nav.js +1 -1
  34. package/dist/components/ds-bar-title.js +1 -1
  35. package/dist/components/ds-bar-workflow.js +1 -1
  36. package/dist/components/ds-breadcrumb.js +1 -1
  37. package/dist/components/ds-button-filled.js +1 -1
  38. package/dist/components/ds-button-unfilled.js +1 -1
  39. package/dist/components/ds-card-chart.js +1 -1
  40. package/dist/components/ds-card-overview.js +1 -1
  41. package/dist/components/ds-card-setting.js +1 -1
  42. package/dist/components/ds-chart-legend.js +1 -1
  43. package/dist/components/ds-chart.js +1 -1
  44. package/dist/components/ds-checkbox.js +1 -1
  45. package/dist/components/ds-chip.js +1 -1
  46. package/dist/components/ds-chip.js.map +1 -1
  47. package/dist/components/ds-code-block.js +1 -1
  48. package/dist/components/ds-conversation-list-item.js +1 -1
  49. package/dist/components/ds-conversation-list-section.js +1 -1
  50. package/dist/components/ds-empty-state.js +1 -1
  51. package/dist/components/ds-field.js +1 -1
  52. package/dist/components/ds-filter-menu.js +1 -1
  53. package/dist/components/ds-input.js +1 -1
  54. package/dist/components/ds-markdown.js +1 -1
  55. package/dist/components/ds-menu.js +1 -1
  56. package/dist/components/ds-message-actions.js +1 -1
  57. package/dist/components/ds-message-composer.js +1 -1
  58. package/dist/components/ds-message-scroller.js +1 -1
  59. package/dist/components/ds-message-scroller.js.map +1 -1
  60. package/dist/components/ds-message.js +1 -1
  61. package/dist/components/ds-mobile-bar-nav.js +1 -1
  62. package/dist/components/ds-mobile-header.js +1 -1
  63. package/dist/components/ds-mobile-section-switcher.js +1 -1
  64. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  65. package/dist/components/ds-modal.js +1 -1
  66. package/dist/components/ds-pagination.js +1 -1
  67. package/dist/components/ds-panel-nav.js +1 -1
  68. package/dist/components/ds-panel-sub-nav.js +1 -1
  69. package/dist/components/ds-panel-tool-header.js +1 -1
  70. package/dist/components/ds-panel-tool-search.js +1 -1
  71. package/dist/components/ds-panel-tool-search.js.map +1 -1
  72. package/dist/components/ds-panel-tools.js +1 -1
  73. package/dist/components/ds-paper-texture.js +1 -1
  74. package/dist/components/ds-radio.js +1 -1
  75. package/dist/components/ds-select.js +1 -1
  76. package/dist/components/ds-shell-app.js +1 -1
  77. package/dist/components/ds-shell-page.js +1 -1
  78. package/dist/components/ds-shell-tools.js +1 -1
  79. package/dist/components/ds-slider.js +1 -1
  80. package/dist/components/ds-swatch-picker.js +1 -1
  81. package/dist/components/ds-tab-group.js +1 -1
  82. package/dist/components/ds-table-filter.js +1 -1
  83. package/dist/components/ds-table-filter.js.map +1 -1
  84. package/dist/components/ds-table-group.d.ts +11 -0
  85. package/dist/components/ds-table-group.js +2 -0
  86. package/dist/components/ds-table-group.js.map +1 -0
  87. package/dist/components/ds-table-saved-views.js +1 -1
  88. package/dist/components/ds-table-search.d.ts +11 -0
  89. package/dist/components/ds-table-search.js +2 -0
  90. package/dist/components/ds-table-search.js.map +1 -0
  91. package/dist/components/ds-table-sort.js +1 -1
  92. package/dist/components/ds-table-sort.js.map +1 -1
  93. package/dist/components/ds-table-toolbar.js +1 -1
  94. package/dist/components/ds-table-toolbar.js.map +1 -1
  95. package/dist/components/ds-table.js +1 -1
  96. package/dist/components/ds-table.js.map +1 -1
  97. package/dist/components/ds-tag.js +1 -1
  98. package/dist/components/ds-text.js +1 -1
  99. package/dist/components/ds-toast.js +1 -1
  100. package/dist/components/ds-tooltip-chart.js +1 -1
  101. package/dist/components/ds-tooltip.js +1 -1
  102. package/dist/components/ds-typing-indicator.js +1 -1
  103. package/dist/components/{p-Bf7PZJPT.js → p-5Z4oYuiK.js} +2 -2
  104. package/dist/components/{p-DsgEY6mZ.js → p-6rB0eAda.js} +2 -2
  105. package/dist/components/{p-DZv2g9Pe.js → p-9ykZwPlI.js} +2 -2
  106. package/dist/components/{p-BHhmB9-4.js → p-B0kSlcaw.js} +2 -2
  107. package/dist/components/{p-BmlGeaY8.js → p-B1wMpt1z.js} +2 -2
  108. package/dist/components/p-BEttT0UB.js +2 -0
  109. package/dist/components/p-BEttT0UB.js.map +1 -0
  110. package/dist/components/p-BFit8o0r.js +2 -0
  111. package/dist/components/p-BFit8o0r.js.map +1 -0
  112. package/dist/components/{p-fRDzpfi9.js → p-BXv6RpoF.js} +2 -2
  113. package/dist/components/{p-CFsLF-ts.js → p-BbG7nOcz.js} +2 -2
  114. package/dist/components/{p-vrotWZxt.js → p-Bc_z1UwJ.js} +2 -2
  115. package/dist/components/{p-Bx5BSd6F.js → p-BcxidW9k.js} +2 -2
  116. package/dist/components/{p-BNq9fr9S.js → p-Bd8I2oXN.js} +2 -2
  117. package/dist/components/{p-D-MWvpg6.js → p-Bjq1KP_Y.js} +2 -2
  118. package/dist/components/p-Bjq1KP_Y.js.map +1 -0
  119. package/dist/components/{p-DW5Ita-P.js → p-BnTPuV3x.js} +2 -2
  120. package/dist/components/{p-DW5Ita-P.js.map → p-BnTPuV3x.js.map} +1 -1
  121. package/dist/components/p-BqVXMEJm.js +2 -0
  122. package/dist/components/p-BqVXMEJm.js.map +1 -0
  123. package/dist/components/{p-DdH7b4JF.js → p-CBymzuOO.js} +2 -2
  124. package/dist/components/{p-BjRD57w3.js → p-CE2b5GPu.js} +2 -2
  125. package/dist/components/{p-CRSwNbPk.js → p-CEnoPUn5.js} +2 -2
  126. package/dist/components/p-CFkZSDwI.js +2 -0
  127. package/dist/components/{p-CKtJ6FHM.js.map → p-CFkZSDwI.js.map} +1 -1
  128. package/dist/components/{p-Bb4KnRy0.js → p-CTH3dSYg.js} +2 -2
  129. package/dist/components/{p-1YHFQeI7.js → p-CUL5_8JM.js} +2 -2
  130. package/dist/components/{p-BubgDQlb.js → p-CZ144LS5.js} +2 -2
  131. package/dist/components/{p-B-HsfQOK.js → p-Cd1JnnVK.js} +2 -2
  132. package/dist/components/p-CeKa4VbU.js +2 -0
  133. package/dist/components/{p-Crz606uD.js.map → p-CeKa4VbU.js.map} +1 -1
  134. package/dist/components/{p-Bx1IHqJb.js → p-Cnsvgx1M.js} +2 -2
  135. package/dist/components/{p-BYFS2qWb.js → p-CpeJMKJ5.js} +2 -2
  136. package/dist/components/{p-Cxr0IQjC.js → p-CzbsTZt7.js} +2 -2
  137. package/dist/components/{p-D7v6Na7U.js → p-D36EmETH.js} +2 -2
  138. package/dist/components/{p-DFC0sRM-.js → p-DI8DUozc.js} +2 -2
  139. package/dist/components/{p-DIqT1m2r.js → p-DSy1oOnd.js} +2 -2
  140. package/dist/components/{p-DIqT1m2r.js.map → p-DSy1oOnd.js.map} +1 -1
  141. package/dist/components/{p-DQBT1Jkf.js → p-DbLLH3hr.js} +2 -2
  142. package/dist/components/{p-Drnyq8z7.js → p-Dit6JmAK.js} +2 -2
  143. package/dist/components/{p-caLOcQUK.js → p-DzPtYdXy.js} +2 -2
  144. package/dist/components/{p-Do8wbFff.js → p-XaCYqck3.js} +2 -2
  145. package/dist/components/{p-DKt_8s-U.js → p-Y5_MkCFn.js} +2 -2
  146. package/dist/components/{p-DBYCwq9L.js → p-YDxDyedE.js} +2 -2
  147. package/dist/components/{p-DmWoFSGs.js → p-_C-XRpCB.js} +2 -2
  148. package/dist/components/{p-Demfba7T.js → p-bHnk8t5I.js} +2 -2
  149. package/dist/components/p-hYjmOPCI.js +2 -0
  150. package/dist/components/p-hYjmOPCI.js.map +1 -0
  151. package/dist/components/{p-ChfVRPHw.js → p-pUOA3iDG.js} +2 -2
  152. package/dist/components/p-pnO8tAYB.js +2 -0
  153. package/dist/components/{p-Cp5Hr7Vz.js.map → p-pnO8tAYB.js.map} +1 -1
  154. package/dist/components/{p-B6WQre5D.js → p-pxN8JGEh.js} +2 -2
  155. package/dist/components/p-pxN8JGEh.js.map +1 -0
  156. package/dist/components/{p-BWwiCvep.js → p-rw0ZxIE4.js} +2 -2
  157. package/dist/components/{p-B4wTnsUL.js → p-w9fkkwL2.js} +2 -2
  158. package/dist/components/p-x5u5Ueli.js +2 -0
  159. package/dist/components/{p-BeA6Jv-3.js.map → p-x5u5Ueli.js.map} +1 -1
  160. package/dist/docs/components.json +1400 -44
  161. package/dist/lib/utils/date-filter-value.d.ts +57 -0
  162. package/dist/lib/utils/index.d.ts +2 -0
  163. package/dist/lib/utils/index.js +67 -0
  164. package/dist/lib/utils/index.js.map +3 -3
  165. package/dist/mcp-data/registry/button-filled.json +1 -0
  166. package/dist/mcp-data/registry/button-unfilled.json +1 -0
  167. package/dist/mcp-data/registry/chip.json +39 -2
  168. package/dist/mcp-data/registry/filter-menu.json +134 -14
  169. package/dist/mcp-data/registry/input.json +54 -2
  170. package/dist/mcp-data/registry/panel-tool-search.json +4 -5
  171. package/dist/mcp-data/registry/registry.json +410 -35
  172. package/dist/mcp-data/registry/select.json +1 -0
  173. package/dist/mcp-data/registry/tab-group.json +21 -2
  174. package/dist/mcp-data/registry/table-filter.json +83 -11
  175. package/dist/mcp-data/registry/table-group.json +301 -0
  176. package/dist/mcp-data/registry/table-search.json +343 -0
  177. package/dist/mcp-data/registry/table-sort.json +1 -1
  178. package/dist/mcp-data/registry/table-toolbar.json +7 -6
  179. package/dist/mcp-data/registry/table.json +55 -17
  180. package/dist/react/components.d.ts +2 -0
  181. package/dist/react/components.js +2 -0
  182. package/dist/react/ds-filter-menu.d.ts +2 -1
  183. package/dist/react/ds-filter-menu.js +1 -0
  184. package/dist/react/ds-table-filter.d.ts +2 -1
  185. package/dist/react/ds-table-filter.js +1 -0
  186. package/dist/react/ds-table-group.d.ts +14 -0
  187. package/dist/react/ds-table-group.js +16 -0
  188. package/dist/react/ds-table-search.d.ts +14 -0
  189. package/dist/react/ds-table-search.js +16 -0
  190. package/dist/styles/table.css +46 -0
  191. package/dist/types/components/Chip/Chip.d.ts +5 -0
  192. package/dist/types/components/FilterMenu/FilterMenu.d.ts +46 -1
  193. package/dist/types/components/FilterMenu/filter-menu-calendar.d.ts +13 -0
  194. package/dist/types/components/Input/Input.d.ts +6 -0
  195. package/dist/types/components/TabGroup/TabGroup.d.ts +2 -0
  196. package/dist/types/components/Table/Table.d.ts +6 -0
  197. package/dist/types/components/Table/index.d.ts +1 -1
  198. package/dist/types/components/Table/table-cell-model.d.ts +11 -1
  199. package/dist/types/components/Table/table-highlight.d.ts +12 -0
  200. package/dist/types/components/Table/table-model.d.ts +6 -5
  201. package/dist/types/components/Table/table-render-model.d.ts +1 -1
  202. package/dist/types/components/Table/table-row-view.d.ts +4 -1
  203. package/dist/types/components/Table/table-types.d.ts +22 -4
  204. package/dist/types/components/Table/table-virtual-model.d.ts +2 -0
  205. package/dist/types/components/TableFilter/TableFilter.d.ts +9 -1
  206. package/dist/types/components/TableGroup/TableGroup.d.ts +60 -0
  207. package/dist/types/components/TableSearch/TableSearch.d.ts +56 -0
  208. package/dist/types/components/TableSearch/table-search-model.d.ts +10 -0
  209. package/dist/types/components/TableSearch/table-search-types.d.ts +10 -0
  210. package/dist/types/components.d.ts +410 -8
  211. package/dist/types/utils/choice-list-parts.d.ts +11 -1
  212. package/dist/types/utils/date-filter-value.d.ts +58 -0
  213. package/dist/types/utils/index.d.ts +2 -0
  214. package/dist/types/utils/select-controller.d.ts +1 -1
  215. package/dist/vue/components.d.ts +2 -0
  216. package/dist/vue/components.js +2 -0
  217. package/dist/vue/ds-chip.js +2 -0
  218. package/dist/vue/ds-filter-menu.js +7 -0
  219. package/dist/vue/ds-input.js +3 -0
  220. package/dist/vue/ds-tab-group.js +1 -0
  221. package/dist/vue/ds-table-filter.js +5 -0
  222. package/dist/vue/ds-table-group.d.ts +3 -0
  223. package/dist/vue/ds-table-group.js +20 -0
  224. package/dist/vue/ds-table-search.d.ts +3 -0
  225. package/dist/vue/ds-table-search.js +22 -0
  226. package/dist/vue/ds-table.js +2 -0
  227. package/package.json +1 -1
  228. package/dist/components/p-B6WQre5D.js.map +0 -1
  229. package/dist/components/p-BeA6Jv-3.js +0 -2
  230. package/dist/components/p-CKtJ6FHM.js +0 -2
  231. package/dist/components/p-Cp5Hr7Vz.js +0 -2
  232. package/dist/components/p-CpUXubax.js +0 -2
  233. package/dist/components/p-CpUXubax.js.map +0 -1
  234. package/dist/components/p-Crz606uD.js +0 -2
  235. package/dist/components/p-D-MWvpg6.js.map +0 -1
  236. package/dist/components/p-DA5H_Iq_.js +0 -2
  237. package/dist/components/p-DA5H_Iq_.js.map +0 -1
  238. package/dist/components/p-Djxw2FjZ.js +0 -2
  239. package/dist/components/p-Djxw2FjZ.js.map +0 -1
  240. /package/dist/components/{p-Bf7PZJPT.js.map → p-5Z4oYuiK.js.map} +0 -0
  241. /package/dist/components/{p-DsgEY6mZ.js.map → p-6rB0eAda.js.map} +0 -0
  242. /package/dist/components/{p-DZv2g9Pe.js.map → p-9ykZwPlI.js.map} +0 -0
  243. /package/dist/components/{p-BHhmB9-4.js.map → p-B0kSlcaw.js.map} +0 -0
  244. /package/dist/components/{p-BmlGeaY8.js.map → p-B1wMpt1z.js.map} +0 -0
  245. /package/dist/components/{p-fRDzpfi9.js.map → p-BXv6RpoF.js.map} +0 -0
  246. /package/dist/components/{p-CFsLF-ts.js.map → p-BbG7nOcz.js.map} +0 -0
  247. /package/dist/components/{p-vrotWZxt.js.map → p-Bc_z1UwJ.js.map} +0 -0
  248. /package/dist/components/{p-Bx5BSd6F.js.map → p-BcxidW9k.js.map} +0 -0
  249. /package/dist/components/{p-BNq9fr9S.js.map → p-Bd8I2oXN.js.map} +0 -0
  250. /package/dist/components/{p-DdH7b4JF.js.map → p-CBymzuOO.js.map} +0 -0
  251. /package/dist/components/{p-BjRD57w3.js.map → p-CE2b5GPu.js.map} +0 -0
  252. /package/dist/components/{p-CRSwNbPk.js.map → p-CEnoPUn5.js.map} +0 -0
  253. /package/dist/components/{p-Bb4KnRy0.js.map → p-CTH3dSYg.js.map} +0 -0
  254. /package/dist/components/{p-1YHFQeI7.js.map → p-CUL5_8JM.js.map} +0 -0
  255. /package/dist/components/{p-BubgDQlb.js.map → p-CZ144LS5.js.map} +0 -0
  256. /package/dist/components/{p-B-HsfQOK.js.map → p-Cd1JnnVK.js.map} +0 -0
  257. /package/dist/components/{p-Bx1IHqJb.js.map → p-Cnsvgx1M.js.map} +0 -0
  258. /package/dist/components/{p-BYFS2qWb.js.map → p-CpeJMKJ5.js.map} +0 -0
  259. /package/dist/components/{p-Cxr0IQjC.js.map → p-CzbsTZt7.js.map} +0 -0
  260. /package/dist/components/{p-D7v6Na7U.js.map → p-D36EmETH.js.map} +0 -0
  261. /package/dist/components/{p-DFC0sRM-.js.map → p-DI8DUozc.js.map} +0 -0
  262. /package/dist/components/{p-DQBT1Jkf.js.map → p-DbLLH3hr.js.map} +0 -0
  263. /package/dist/components/{p-Drnyq8z7.js.map → p-Dit6JmAK.js.map} +0 -0
  264. /package/dist/components/{p-caLOcQUK.js.map → p-DzPtYdXy.js.map} +0 -0
  265. /package/dist/components/{p-Do8wbFff.js.map → p-XaCYqck3.js.map} +0 -0
  266. /package/dist/components/{p-DKt_8s-U.js.map → p-Y5_MkCFn.js.map} +0 -0
  267. /package/dist/components/{p-DBYCwq9L.js.map → p-YDxDyedE.js.map} +0 -0
  268. /package/dist/components/{p-DmWoFSGs.js.map → p-_C-XRpCB.js.map} +0 -0
  269. /package/dist/components/{p-Demfba7T.js.map → p-bHnk8t5I.js.map} +0 -0
  270. /package/dist/components/{p-ChfVRPHw.js.map → p-pUOA3iDG.js.map} +0 -0
  271. /package/dist/components/{p-BWwiCvep.js.map → p-rw0ZxIE4.js.map} +0 -0
  272. /package/dist/components/{p-B4wTnsUL.js.map → p-w9fkkwL2.js.map} +0 -0
@@ -1,15 +1,25 @@
1
1
  import { FunctionalComponent, VNode } from '../stencil-public-runtime';
2
2
  import type { ChoiceOption } from './choice-list';
3
3
  import { type ControlSize } from './control-text';
4
+ interface ChoiceListSectionProps {
5
+ size?: ControlSize;
6
+ heading?: string;
7
+ ariaLabel: string;
8
+ className?: string;
9
+ }
10
+ /** Shared listbox anatomy used when an owning surface composes choice lists directly. */
11
+ export declare const ChoiceListSection: FunctionalComponent<ChoiceListSectionProps>;
4
12
  interface ChoiceSearchProps {
5
13
  size?: ControlSize;
14
+ hasFocusBoundary?: boolean;
15
+ hasInteractionFill?: boolean;
6
16
  value: string;
7
17
  placeholder: string;
8
18
  ariaLabel?: string;
9
19
  controls?: string;
10
20
  activeDescendant?: string;
11
21
  disabled?: boolean;
12
- inputRef: (element: HTMLInputElement | null) => void;
22
+ inputRef: (element: HTMLDsInputElement | null) => void;
13
23
  clearLabel: string;
14
24
  onValueChange: (value: string) => void;
15
25
  onClear?: () => void;
@@ -0,0 +1,58 @@
1
+ export declare const DATE_FILTER_RELATIVE_PRESETS: readonly [{
2
+ readonly label: "Today";
3
+ readonly value: "today";
4
+ readonly days: 1;
5
+ readonly offset: 0;
6
+ }, {
7
+ readonly label: "Yesterday";
8
+ readonly value: "yesterday";
9
+ readonly days: 1;
10
+ readonly offset: -1;
11
+ }, {
12
+ readonly label: "Last 7 days";
13
+ readonly value: "last-7-days";
14
+ readonly days: 7;
15
+ readonly offset: 0;
16
+ }, {
17
+ readonly label: "Last 14 days";
18
+ readonly value: "last-14-days";
19
+ readonly days: 14;
20
+ readonly offset: 0;
21
+ }, {
22
+ readonly label: "Last 30 days";
23
+ readonly value: "last-30-days";
24
+ readonly days: 30;
25
+ readonly offset: 0;
26
+ }, {
27
+ readonly label: "Last 60 days";
28
+ readonly value: "last-60-days";
29
+ readonly days: 60;
30
+ readonly offset: 0;
31
+ }, {
32
+ readonly label: "Last 90 days";
33
+ readonly value: "last-90-days";
34
+ readonly days: 90;
35
+ readonly offset: 0;
36
+ }];
37
+ export type DateFilterRelativePreset = (typeof DATE_FILTER_RELATIVE_PRESETS)[number]['value'];
38
+ export type DateFilterRelativeValue = `relative:${DateFilterRelativePreset}`;
39
+ export type DateFilterRangeValue = `range:${string}/${string}`;
40
+ export type DateFilterValue = DateFilterRelativeValue | DateFilterRangeValue;
41
+ export interface DateFilterRange {
42
+ start: string;
43
+ end: string;
44
+ }
45
+ export type ParsedDateFilterValue = {
46
+ kind: 'relative';
47
+ preset: DateFilterRelativePreset;
48
+ } | ({
49
+ kind: 'range';
50
+ } & DateFilterRange);
51
+ export declare function isIsoCalendarDate(value: string): boolean;
52
+ export declare function shiftIsoCalendarDate(value: string, days: number): string;
53
+ export declare function dateFilterRelativeValue(preset: DateFilterRelativePreset): DateFilterRelativeValue;
54
+ export declare function dateFilterRangeValue(start: string, end?: string): DateFilterRangeValue;
55
+ export declare function parseDateFilterValue(value: unknown): ParsedDateFilterValue | null;
56
+ export declare function normalizeDateFilterValue(value: unknown): DateFilterValue | '';
57
+ export declare function resolveDateFilterRange(value: unknown, referenceDate: string): DateFilterRange | null;
58
+ //# sourceMappingURL=date-filter-value.d.ts.map
@@ -25,4 +25,6 @@ export { CONTROL_SUPPORTING_TEXT_VARIANT, CONTROL_TEXT_VARIANT } from './control
25
25
  export type { ControlInsetDepth, ControlSize } from './control-text';
26
26
  export { choicePopupMinWidth, resolveChoicePopupAlignOffset } from './choice-popup-alignment';
27
27
  export type { ChoicePopupAnchorAlignment } from './choice-popup-alignment';
28
+ export { DATE_FILTER_RELATIVE_PRESETS, dateFilterRangeValue, dateFilterRelativeValue, isIsoCalendarDate, normalizeDateFilterValue, parseDateFilterValue, resolveDateFilterRange, shiftIsoCalendarDate, } from './date-filter-value';
29
+ export type { DateFilterRange, DateFilterRangeValue, DateFilterRelativePreset, DateFilterRelativeValue, DateFilterValue, ParsedDateFilterValue, } from './date-filter-value';
28
30
  //# sourceMappingURL=index.d.ts.map
@@ -42,7 +42,7 @@ export declare class SelectController<T extends ChoiceOption> {
42
42
  get activeOptionId(): string | undefined;
43
43
  setTriggerElement: (element: HTMLButtonElement | null) => void;
44
44
  setPopupElement: (element: HTMLDivElement | null) => void;
45
- setSearchElement: (element: HTMLInputElement | null) => void;
45
+ setSearchElement: (element: HTMLDsInputElement | null) => void;
46
46
  connect(): void;
47
47
  disconnect(): void;
48
48
  setFocus(): void;
@@ -68,7 +68,9 @@ export { DsSwitch } from './ds-switch.js';
68
68
  export { DsTabGroup } from './ds-tab-group.js';
69
69
  export { DsTable } from './ds-table.js';
70
70
  export { DsTableFilter } from './ds-table-filter.js';
71
+ export { DsTableGroup } from './ds-table-group.js';
71
72
  export { DsTableSavedViews } from './ds-table-saved-views.js';
73
+ export { DsTableSearch } from './ds-table-search.js';
72
74
  export { DsTableSort } from './ds-table-sort.js';
73
75
  export { DsTableToolbar } from './ds-table-toolbar.js';
74
76
  export { DsTag } from './ds-tag.js';
@@ -70,7 +70,9 @@ export { DsSwitch } from './ds-switch.js';
70
70
  export { DsTabGroup } from './ds-tab-group.js';
71
71
  export { DsTable } from './ds-table.js';
72
72
  export { DsTableFilter } from './ds-table-filter.js';
73
+ export { DsTableGroup } from './ds-table-group.js';
73
74
  export { DsTableSavedViews } from './ds-table-saved-views.js';
75
+ export { DsTableSearch } from './ds-table-search.js';
74
76
  export { DsTableSort } from './ds-table-sort.js';
75
77
  export { DsTableToolbar } from './ds-table-toolbar.js';
76
78
  export { DsTag } from './ds-tag.js';
@@ -7,6 +7,8 @@ export const DsChip = /*@__PURE__*/ defineContainer('ds-chip', defineDsChip, [
7
7
  'label',
8
8
  'state',
9
9
  'size',
10
+ 'isInset',
11
+ 'insetDepth',
10
12
  'rounded',
11
13
  'maxWidth',
12
14
  'isInactive',
@@ -6,6 +6,7 @@ import { defineCustomElement as defineDsFilterMenu } from '@ds-mo/ui/components/
6
6
  export const DsFilterMenu = /*@__PURE__*/ defineContainer('ds-filter-menu', defineDsFilterMenu, [
7
7
  'open',
8
8
  'triggerLabel',
9
+ 'showSelectedCount',
9
10
  'icon',
10
11
  'size',
11
12
  'width',
@@ -16,6 +17,7 @@ export const DsFilterMenu = /*@__PURE__*/ defineContainer('ds-filter-menu', defi
16
17
  'ariaLabel',
17
18
  'filters',
18
19
  'values',
20
+ 'matchModes',
19
21
  'activeFilterId',
20
22
  'anchor',
21
23
  'anchorId',
@@ -28,9 +30,13 @@ export const DsFilterMenu = /*@__PURE__*/ defineContainer('ds-filter-menu', defi
28
30
  'menuLabel',
29
31
  'categoriesLabel',
30
32
  'clearLabel',
33
+ 'searchPlaceholder',
34
+ 'noResultsText',
35
+ 'footerLayout',
31
36
  'initialFocusVisible',
32
37
  'dsChange',
33
38
  'dsClear',
39
+ 'dsMatchModeChange',
34
40
  'dsActiveFilterChange',
35
41
  'dsClose',
36
42
  'dsOpenChange',
@@ -38,6 +44,7 @@ export const DsFilterMenu = /*@__PURE__*/ defineContainer('ds-filter-menu', defi
38
44
  ], [
39
45
  'dsChange',
40
46
  'dsClear',
47
+ 'dsMatchModeChange',
41
48
  'dsActiveFilterChange',
42
49
  'dsClose',
43
50
  'dsOpenChange',
@@ -24,6 +24,7 @@ export const DsInput = /*@__PURE__*/ defineContainer('ds-input', defineDsInput,
24
24
  'size',
25
25
  'width',
26
26
  'hasBorder',
27
+ 'hasInteractionFill',
27
28
  'icon',
28
29
  'isInactive',
29
30
  'autoFocus',
@@ -33,6 +34,8 @@ export const DsInput = /*@__PURE__*/ defineContainer('ds-input', defineDsInput,
33
34
  'ariaLabel',
34
35
  'ariaLabelledby',
35
36
  'ariaDescribedby',
37
+ 'ariaControls',
38
+ 'ariaActiveDescendant',
36
39
  'dsChange',
37
40
  'dsClear'
38
41
  ], [
@@ -8,6 +8,7 @@ export const DsTabGroup = /*@__PURE__*/ defineContainer('ds-tab-group', defineDs
8
8
  'tabs',
9
9
  'size',
10
10
  'width',
11
+ 'hasContainer',
11
12
  'background',
12
13
  'ariaLabel',
13
14
  'ariaLabelledby',
@@ -7,14 +7,18 @@ export const DsTableFilter = /*@__PURE__*/ defineContainer('ds-table-filter', de
7
7
  'open',
8
8
  'filters',
9
9
  'values',
10
+ 'matchModes',
10
11
  'activeFilterId',
11
12
  'label',
12
13
  'ariaLabel',
13
14
  'menuLabel',
14
15
  'categoriesLabel',
15
16
  'clearLabel',
17
+ 'searchPlaceholder',
18
+ 'noResultsText',
16
19
  'dsChange',
17
20
  'dsClear',
21
+ 'dsMatchModeChange',
18
22
  'dsActiveFilterChange',
19
23
  'dsClose',
20
24
  'dsOpenChange',
@@ -22,6 +26,7 @@ export const DsTableFilter = /*@__PURE__*/ defineContainer('ds-table-filter', de
22
26
  ], [
23
27
  'dsChange',
24
28
  'dsClear',
29
+ 'dsMatchModeChange',
25
30
  'dsActiveFilterChange',
26
31
  'dsClose',
27
32
  'dsOpenChange',
@@ -0,0 +1,3 @@
1
+ import { type StencilVueComponent } from './vue-runtime.js';
2
+ import type { JSX } from '@ds-mo/ui/components';
3
+ export declare const DsTableGroup: StencilVueComponent<JSX.DsTableGroup>;
@@ -0,0 +1,20 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ /* auto-generated vue proxies */
4
+ import { defineContainer } from './vue-runtime.js';
5
+ import { defineCustomElement as defineDsTableGroup } from '@ds-mo/ui/components/ds-table-group.js';
6
+ export const DsTableGroup = /*@__PURE__*/ defineContainer('ds-table-group', defineDsTableGroup, [
7
+ 'options',
8
+ 'grouping',
9
+ 'ariaLabel',
10
+ 'open',
11
+ 'emptyMessage',
12
+ 'clearLabel',
13
+ 'dsGroupChange',
14
+ 'dsClear',
15
+ 'dsOpenChange'
16
+ ], [
17
+ 'dsGroupChange',
18
+ 'dsClear',
19
+ 'dsOpenChange'
20
+ ]);
@@ -0,0 +1,3 @@
1
+ import { type StencilVueComponent } from './vue-runtime.js';
2
+ import type { JSX } from '@ds-mo/ui/components';
3
+ export declare const DsTableSearch: StencilVueComponent<JSX.DsTableSearch>;
@@ -0,0 +1,22 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ /* auto-generated vue proxies */
4
+ import { defineContainer } from './vue-runtime.js';
5
+ import { defineCustomElement as defineDsTableSearch } from '@ds-mo/ui/components/ds-table-search.js';
6
+ export const DsTableSearch = /*@__PURE__*/ defineContainer('ds-table-search', defineDsTableSearch, [
7
+ 'value',
8
+ 'columns',
9
+ 'selectedFieldIds',
10
+ 'placeholder',
11
+ 'ariaLabel',
12
+ 'clearLabel',
13
+ 'fieldMenuLabel',
14
+ 'isInactive',
15
+ 'dsChange',
16
+ 'dsFieldsChange',
17
+ 'dsClear'
18
+ ], [
19
+ 'dsChange',
20
+ 'dsFieldsChange',
21
+ 'dsClear'
22
+ ]);
@@ -10,6 +10,8 @@ export const DsTable = /*@__PURE__*/ defineContainer('ds-table', defineDsTable,
10
10
  'grouping',
11
11
  'sort',
12
12
  'collapsedGroupIds',
13
+ 'highlightTerms',
14
+ 'highlightFieldIds',
13
15
  'caption',
14
16
  'captionVisibility',
15
17
  'columnCustomizer',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ds-mo/ui",
3
- "version": "14.19.1",
3
+ "version": "14.21.0",
4
4
  "description": "CompoMo — composable web components styled with TokoMo design tokens",
5
5
  "keywords": [
6
6
  "web-components",
@@ -1 +0,0 @@
1
- {"version":3,"names":["inputCss","ICON_SIZE","lg","md","sm","xs","CLEAR_BUTTON_SIZE","idCounter","Input","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","generatedId","errorId","value","disabled","readOnly","required","requiredMessage","DEFAULT_REQUIRED_MESSAGE","clearLabel","type","textAlign","inputMode","enterKeyHint","size","width","hasBorder","isInactive","autoFocus","error","ariaLabel","initialValue","formDisabled","hasSuffix","focused","touched","handleInput","e","target","dsChange","emit","handleFocus","handleBlur","handleClear","dsClear","inputEl","focus","handleNumericStep","direction","input","numericStepDisabled","previous","stepUp","stepDown","preventScroll","componentWillLoad","Boolean","el","querySelector","syncFormValue","componentDidRender","inactive","setFormControlValue","internals","missing","length","setRequiredValidity","formDisabledCallback","formResetCallback","formStateRestoreCallback","state","restoreStringFormState","setFocus","trim","Number","isFinite","max","undefined","min","renderNumericStepper","incrementDisabled","decrementDisabled","h","class","tabIndex","onClick","name","color","render","inputId","filled","dirty","showClear","showError","errorMessage","textVariant","CONTROL_TEXT_VARIANT","iconSize","numeric","describedBy","ariaDescribedby","filter","join","Host","key","controlWidthClass","icon","ref","element","id","placeholder","step","autoComplete","replace","ariaLabelledby","onInput","onFocus","onBlur","variant","rounded","onDsClick","as","textId","role"],"sources":["src/wc/components/Input/Input.css?tag=ds-input&encapsulation=scoped","src/wc/components/Input/Input.tsx"],"sourcesContent":["@import '../../utils/interaction-fill.css';\n@import '../../utils/focus-ring.css';\n@import '../../utils/control-inactive.css';\n@import '../../utils/control-density.css';\n@import '../../utils/control-parts.css';\n@import '../../utils/control-width.css';\n@import '../../utils/field-stack.css';\n@import '../../utils/typography.css';\n@import '../../utils/forced-colors.css';\n\n:host(.input-host) {\n display: inline-flex;\n --ds-input-fg: var(--color-foreground-primary);\n --ds-input-placeholder: var(--color-foreground-secondary);\n --ds-input-placeholder-active: var(--color-foreground-quaternary);\n --ds-input-adornment-fg: var(--color-foreground-secondary);\n --ds-input-border: var(--color-border-secondary);\n --ds-input-stepper-fg: var(--color-foreground-secondary);\n}\n\n:host(.ds-control-width--fill),\n:host(.ds-control-width--fill) .input-control {\n width: 100%;\n}\n\n.input-control {\n overflow: hidden;\n background: transparent;\n border: none;\n border-radius: var(--ds-control-radius, var(--dimension-radius-025));\n color: var(--ds-input-fg);\n}\n\n.input-control--bordered {\n --ds-interaction-border-width: var(--dimension-stroke-width-012);\n --ds-interaction-border-color: var(--ds-input-border);\n}\n\n.input-control--error {\n --ds-interaction-border-width: var(--dimension-stroke-width-018);\n --ds-interaction-border-color: var(--color-border-bold-negative);\n}\n\n.input-control--bordered:focus-within:not(.input-control--error) {\n --ds-interaction-border-width: var(--dimension-stroke-width-018);\n --ds-interaction-border-color: var(--color-border-bold-brand);\n}\n\n:host(.ds-control-inactive) .input-control::after {\n background: transparent;\n}\n\n.native-input {\n position: relative;\n z-index: 2;\n flex: 1 1 auto;\n min-width: 0;\n height: 100%;\n background: transparent;\n border: none;\n border-radius: inherit;\n outline: none;\n color: var(--ds-input-fg);\n font-family: inherit;\n text-overflow: ellipsis;\n -webkit-appearance: none;\n appearance: none;\n}\n\n.native-input--align-start {\n text-align: start;\n}\n\n.native-input--align-end {\n text-align: end;\n}\n\n/* Replace engine-specific number arrows with one density-aware inset stepper. */\n.native-input[type='number'] {\n -moz-appearance: textfield;\n}\n\n.native-input[type='number']::-webkit-inner-spin-button,\n.native-input[type='number']::-webkit-outer-spin-button {\n margin: 0;\n -webkit-appearance: none;\n}\n\n.input-control--number.input-control--align-start {\n padding-inline-end: var(--dimension-space-025);\n}\n\n.input-control--number.input-control--align-end {\n padding-inline-start: var(--dimension-space-025);\n}\n\n.input-control__number-stepper {\n position: relative;\n z-index: 2;\n display: grid;\n grid-template-rows: repeat(2, minmax(0, 1fr));\n flex: 0 0 var(--ds-control-icon);\n width: var(--ds-control-icon);\n height: calc(var(--ds-control-height) - var(--dimension-space-050));\n overflow: hidden;\n border-radius: var(--ds-control-radius, var(--dimension-radius-025));\n color: var(--ds-input-stepper-fg);\n}\n\n.input-control__number-step {\n all: unset;\n position: relative;\n z-index: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n min-width: 0;\n min-height: 0;\n overflow: hidden;\n color: inherit;\n cursor: default;\n}\n\n.input-control__number-step--increment {\n border-radius: var(--ds-control-radius, var(--dimension-radius-025))\n var(--ds-control-radius, var(--dimension-radius-025)) 0 0;\n}\n\n.input-control__number-step--decrement {\n border-radius: 0 0 var(--ds-control-radius, var(--dimension-radius-025))\n var(--ds-control-radius, var(--dimension-radius-025));\n}\n\n.input-control__number-step:disabled {\n color: var(--color-foreground-quaternary);\n}\n\n.input-control__number-step-icon {\n flex-shrink: 0;\n}\n\n.native-input:disabled {\n cursor: not-allowed;\n}\n\n.native-input:read-only:not(:disabled) {\n cursor: default;\n}\n\n.native-input::placeholder {\n color: var(--ds-input-placeholder);\n}\n\n.native-input:focus::placeholder {\n color: var(--ds-input-placeholder-active);\n}\n\n.native-input[type='search']::-webkit-search-cancel-button,\n.native-input[type='search']::-webkit-search-decoration {\n display: none;\n}\n\n.input-control__prefix,\n.input-control__suffix {\n position: relative;\n z-index: 2;\n color: var(--ds-input-adornment-fg);\n}\n\n.input-control__suffix--empty {\n display: none;\n}\n\n/* The input frame owns the nested clear action's cross-axis alignment. */\n.input-control > .input-control__clear {\n position: relative;\n z-index: 2;\n flex-shrink: 0;\n align-self: center;\n}\n\n.input-control.ds-control--lg:has(.input-control__clear),\n.input-control.ds-control--md:has(.input-control__clear),\n.input-control.ds-control--sm:has(.input-control__clear) {\n padding-right: var(--dimension-space-050);\n}\n\n.input-control.ds-control--xs:has(.input-control__clear) {\n padding-right: 0;\n}\n\n.error-text {\n width: 100%;\n}\n\n@media (forced-colors: active) {\n .input-control__number-step:disabled {\n color: var(--ds-forced-color-disabled);\n }\n\n .input-control--bordered:focus-within:not(.input-control--error)::after {\n outline-color: var(--ds-forced-color-selected);\n }\n\n .input-control--error::after {\n outline-style: dashed;\n }\n}\n","import {\n AttachInternals,\n Component,\n Prop,\n State,\n Event,\n EventEmitter,\n Element,\n Method,\n Watch,\n h,\n Host,\n} from '@stencil/core';\nimport {\n controlWidthClass,\n CONTROL_TEXT_VARIANT,\n DEFAULT_REQUIRED_MESSAGE,\n restoreStringFormState,\n setFormControlValue,\n setRequiredValidity,\n type ControlWidth,\n} from '../../utils';\n\nexport type InputType = 'text' | 'email' | 'tel' | 'url' | 'search' | 'password' | 'number';\nexport type InputSize = 'lg' | 'md' | 'sm' | 'xs';\nexport type InputWidth = ControlWidth;\nexport type InputTextAlign = 'start' | 'end';\n\nconst ICON_SIZE: Record<InputSize, 'lg' | 'md' | 'sm' | 'xs'> = {\n lg: 'lg',\n md: 'md',\n sm: 'sm',\n xs: 'xs',\n};\n\nconst CLEAR_BUTTON_SIZE: Record<InputSize, 'md' | 'sm' | 'xs'> = {\n lg: 'md',\n md: 'sm',\n sm: 'xs',\n xs: 'xs',\n};\n\nlet idCounter = 0;\n\n@Component({\n tag: 'ds-input',\n styleUrl: 'Input.css',\n scoped: true,\n formAssociated: true,\n})\nexport class Input {\n @Element() el!: HTMLElement;\n @AttachInternals() internals!: ElementInternals;\n\n private generatedId = `ds-input-${++idCounter}`;\n private errorId = `${this.generatedId}-error`;\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 /** Keeps the value focusable and submittable while preventing edits. */\n @Prop({ reflect: true }) readOnly: boolean = false;\n @Prop({ reflect: true }) required: boolean = false;\n @Prop() requiredMessage: string = DEFAULT_REQUIRED_MESSAGE;\n @Prop() clearLabel: string = 'Clear';\n @Prop() placeholder: string | undefined;\n @Prop() type: InputType = 'text';\n /** Minimum accepted value when type is number. */\n @Prop() min: number | undefined;\n /** Maximum accepted value when type is number. */\n @Prop() max: number | undefined;\n /** Numeric increment used by native stepping and constraint validation. */\n @Prop() step: number | undefined;\n /** Align the editable value; number steppers follow the same inline edge. */\n @Prop() textAlign: InputTextAlign = 'start';\n /** Native browser autofill hint. */\n @Prop({ attribute: 'autocomplete' }) autoComplete: string | undefined;\n /** Preferred virtual keyboard without changing the value semantics. */\n @Prop({ attribute: 'inputmode' }) inputMode: string = '';\n /** Preferred virtual-keyboard action label. */\n @Prop({ attribute: 'enterkeyhint' }) enterKeyHint: string = '';\n /** Control density. */\n @Prop() size: InputSize = 'md';\n /** Width fit — fill the parent (default) or hug the available content. */\n @Prop() width: InputWidth = 'fill';\n /** Show the standard inset border, including focused and invalid strokes. */\n @Prop() hasBorder: boolean = true;\n /** Optional leading icon name. */\n @Prop() icon: string | undefined;\n @Prop() isInactive: boolean = false;\n @Prop() autoFocus: boolean = false;\n @Prop() error: boolean = false;\n @Prop() errorMessage: string | undefined;\n /** Associates the internal input with an external <label>. */\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 @Event() dsClear!: EventEmitter<void>;\n\n private initialValue = '';\n private inputEl?: HTMLInputElement;\n @State() private formDisabled = false;\n @State() private hasSuffix = false;\n @State() private focused = false;\n @State() private touched = false;\n\n componentWillLoad() {\n this.initialValue = this.value;\n this.hasSuffix = Boolean(this.el.querySelector('[slot=\"suffix\"]'));\n this.syncFormValue();\n }\n\n componentDidRender() {\n const hasSuffix = Boolean(this.el.querySelector('[slot=\"suffix\"]'));\n if (hasSuffix !== this.hasSuffix) this.hasSuffix = hasSuffix;\n }\n\n @Watch('value')\n @Watch('disabled')\n @Watch('isInactive')\n @Watch('required')\n syncFormValue() {\n const inactive = this.isInactive || this.disabled || this.formDisabled;\n setFormControlValue(this.internals, this.value, { inactive });\n const missing = this.required && !inactive && this.value.length === 0;\n setRequiredValidity(this.internals, missing, this.requiredMessage);\n }\n\n formDisabledCallback(disabled: boolean) {\n this.formDisabled = disabled;\n this.syncFormValue();\n }\n\n formResetCallback() {\n this.value = this.initialValue;\n }\n\n formStateRestoreCallback(state: string | File | FormData | null) {\n this.value = restoreStringFormState(state);\n }\n\n @Method()\n async setFocus() {\n this.inputEl?.focus();\n }\n\n private handleInput = (e: Event) => {\n this.value = (e.target as HTMLInputElement).value;\n this.dsChange.emit(this.value);\n };\n\n private handleFocus = () => {\n this.focused = true;\n };\n\n private handleBlur = () => {\n this.focused = false;\n this.touched = true;\n };\n\n private handleClear = () => {\n this.value = '';\n this.dsChange.emit('');\n this.dsClear.emit();\n this.inputEl?.focus();\n };\n\n private numericStepDisabled(direction: 1 | -1): boolean {\n if (this.value.trim() === '') return false;\n const value = Number(this.value);\n if (!Number.isFinite(value)) return false;\n if (direction > 0 && this.max !== undefined) return value >= this.max;\n if (direction < 0 && this.min !== undefined) return value <= this.min;\n return false;\n }\n\n private handleNumericStep = (direction: 1 | -1) => {\n const input = this.inputEl;\n if (!input || input.disabled || input.readOnly || this.numericStepDisabled(direction)) return;\n\n const previous = input.value;\n if (direction > 0) input.stepUp();\n else input.stepDown();\n input.focus({ preventScroll: true });\n if (input.value === previous) return;\n\n this.value = input.value;\n this.dsChange.emit(this.value);\n };\n\n private renderNumericStepper(inactive: boolean) {\n const incrementDisabled = inactive || this.readOnly || this.numericStepDisabled(1);\n const decrementDisabled = inactive || this.readOnly || this.numericStepDisabled(-1);\n\n return (\n <span class=\"input-control__number-stepper\">\n <button\n type=\"button\"\n class=\"input-control__number-step input-control__number-step--increment ds-focus-ring-inset ds-interaction-fill\"\n disabled={incrementDisabled}\n tabIndex={-1}\n aria-hidden=\"true\"\n onClick={() => this.handleNumericStep(1)}\n >\n <ds-icon\n class=\"input-control__number-step-icon ds-interaction-fill__content\"\n name=\"ChevronUp\"\n size=\"xs\"\n color=\"inherit\"\n />\n </button>\n <button\n type=\"button\"\n class=\"input-control__number-step input-control__number-step--decrement ds-focus-ring-inset ds-interaction-fill\"\n disabled={decrementDisabled}\n tabIndex={-1}\n aria-hidden=\"true\"\n onClick={() => this.handleNumericStep(-1)}\n >\n <ds-icon\n class=\"input-control__number-step-icon ds-interaction-fill__content\"\n name=\"ChevronDown\"\n size=\"xs\"\n color=\"inherit\"\n />\n </button>\n </span>\n );\n }\n\n render() {\n const inputId = this.inputId ?? this.generatedId;\n const inactive = this.isInactive || this.disabled || this.formDisabled;\n const filled = this.value.length > 0;\n const dirty = this.value !== this.initialValue;\n const showClear = this.type === 'search' && filled && !inactive && !this.readOnly;\n const showError = this.error && Boolean(this.errorMessage);\n const textVariant = CONTROL_TEXT_VARIANT[this.size];\n const iconSize = ICON_SIZE[this.size];\n const numeric = this.type === 'number';\n\n const describedBy =\n [this.ariaDescribedby, showError ? this.errorId : undefined].filter(Boolean).join(' ') ||\n undefined;\n\n return (\n <Host\n class={{\n 'input-host': true,\n 'ds-field-stack': true,\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.error ? '' : 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 class={{\n 'input-control': true,\n 'input-control--number': numeric,\n 'input-control--align-start': this.textAlign === 'start',\n 'input-control--align-end': this.textAlign === 'end',\n 'ds-control-frame': true,\n 'input-control--bordered': this.hasBorder,\n 'input-control--error': this.hasBorder && this.error,\n 'ds-interaction-fill': true,\n [`ds-control--${this.size}`]: true,\n }}\n >\n {numeric && this.textAlign === 'end' && this.renderNumericStepper(inactive)}\n {this.icon && (\n <span\n class=\"input-control__prefix ds-control-icon-box ds-interaction-fill__content\"\n aria-hidden=\"true\"\n >\n <ds-icon name={this.icon} size={iconSize} color=\"inherit\" />\n </span>\n )}\n <input\n ref={element => {\n this.inputEl = element;\n }}\n type={this.type}\n id={inputId}\n value={this.value}\n placeholder={this.placeholder}\n min={numeric ? this.min : undefined}\n max={numeric ? this.max : undefined}\n step={numeric ? this.step : undefined}\n disabled={inactive}\n readOnly={this.readOnly}\n required={this.required}\n autoFocus={this.autoFocus}\n autoComplete={this.autoComplete}\n inputMode={this.inputMode || undefined}\n enterKeyHint={this.enterKeyHint || undefined}\n class={`native-input native-input--align-${this.textAlign} ds-control-label-box ds-text--${textVariant.replace('text-', '')} ds-text--regular ds-interaction-fill__content`}\n aria-label={this.ariaLabel}\n aria-labelledby={this.ariaLabelledby}\n aria-describedby={describedBy}\n aria-invalid={this.error ? 'true' : undefined}\n onInput={this.handleInput}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n />\n <span\n class={{\n 'input-control__suffix': true,\n 'ds-control-icon-box': true,\n 'input-control__suffix--empty': !this.hasSuffix,\n }}\n >\n <slot name=\"suffix\" />\n </span>\n {showClear && (\n <ds-button-unfilled\n class=\"input-control__clear\"\n variant=\"icon\"\n size={CLEAR_BUTTON_SIZE[this.size]}\n icon=\"CrossCircle\"\n hasBorder={false}\n rounded\n ariaLabel={this.clearLabel}\n onDsClick={this.handleClear}\n />\n )}\n {numeric && this.textAlign === 'start' && this.renderNumericStepper(inactive)}\n </div>\n {showError && (\n <ds-text\n class=\"error-text\"\n as=\"div\"\n variant=\"text-body-small\"\n color=\"negative\"\n textId={this.errorId}\n role=\"alert\"\n >\n {this.errorMessage}\n </ds-text>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{p as t,t as e,H as a,h as i,a as s}from"./index.js";import{d as n}from"./p-Cea7rROU.js";import{d as r}from"./p-0XTyQNRG.js";import{d}from"./p-B-HsfQOK.js";const c=()=>`.ds-visually-hidden.sc-ds-agent-activity-h,.ds-visually-hidden.sc-ds-agent-activity{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.sc-ds-agent-activity-h{display:block}.agent-activity.sc-ds-agent-activity{margin:0}summary.sc-ds-agent-activity{align-items:center;color:var(--color-foreground-secondary);cursor:default;display:flex;gap:var(--dimension-space-050);list-style:none;padding:var(--dimension-space-025) 0}summary.sc-ds-agent-activity::-webkit-details-marker{display:none}details[open].sc-ds-agent-activity summary.sc-ds-agent-activity ds-icon.sc-ds-agent-activity{transform:rotate(90deg)}ds-text.agent-activity__summary-label.sc-ds-agent-activity{min-width:0}ol.sc-ds-agent-activity{display:grid;gap:var(--dimension-space-075);list-style:none;margin:0;padding:var(--dimension-space-100) 0 0 var(--dimension-space-200)}.agent-activity__item.sc-ds-agent-activity{align-items:start;display:grid;gap:var(--dimension-space-050);grid-template-columns:auto minmax(0, 1fr)}.agent-activity__marker.sc-ds-agent-activity{align-items:center;color:var(--color-foreground-faint-neutral);display:flex;padding-block-start:var(--dimension-space-025)}.agent-activity__item--active.sc-ds-agent-activity .agent-activity__marker.sc-ds-agent-activity{color:var(--color-foreground-faint-brand)}.agent-activity__item--error.sc-ds-agent-activity .agent-activity__marker.sc-ds-agent-activity{color:var(--color-foreground-bold-negative)}.agent-activity__item.sc-ds-agent-activity span.sc-ds-agent-activity:last-child{display:grid;gap:var(--dimension-space-025)}.agent-activity__pending-dot.sc-ds-agent-activity{width:var(--dimension-size-050);height:var(--dimension-size-050);border-radius:var(--dimension-radius-half);background:currentColor}@media (prefers-reduced-motion: no-preference){summary.sc-ds-agent-activity ds-icon.sc-ds-agent-activity{transition:transform var(--effect-motion-short-2)}}`;const o=t(class t extends a{constructor(t){super();if(t!==false){this.__registerHost()}this.items=[];this.heading="Activity";this.open=false;this.expanded=false;this.handleToggle=t=>{this.expanded=t.currentTarget.open}}componentWillLoad(){this.expanded=this.open}handleOpenChange(t){this.expanded=t}get currentItem(){return this.items.find((t=>t.state==="active"))??this.items.find((t=>t.state==="error"))??[...this.items].reverse().find((t=>t.state==="complete"))??this.items.find((t=>t.state==="pending"))}stateLabel(t){if(t.state==="active")return"In progress";if(t.state==="complete")return"Complete";if(t.state==="error")return"Error";return"Pending"}render(){return i(s,{key:"1b58f942830ddf809ddfee04d0caad173c35db9f"},i("details",{key:"51a120a5329ff1ab1d9fb1150e8c2873f667d840",class:"agent-activity",open:this.open,onToggle:this.handleToggle},i("summary",{key:"6fb41a6dda5a267a90a40b29ea4f27768339c9e9"},i("ds-icon",{key:"6c0668d23c506078557f45d430115e9e99ad3207",name:"ChevronRight",size:"xs",color:"inherit"}),i("ds-text",{key:"7647363b15516c46dd8e83963237ce0d9381ecf1",class:"agent-activity__summary-label",variant:"text-body-small",shimmer:!this.expanded&&this.currentItem?.state==="active"},this.expanded?this.heading:this.currentItem?.label??this.heading)),i("ol",{key:"8b02aaa4d8008f0324643c9af214ed6cbcfdd95d"},this.items.map((t=>i("li",{class:`agent-activity__item agent-activity__item--${t.state}`},i("span",{class:"agent-activity__marker","aria-hidden":"true"},t.state==="active"?i("ds-loader",{size:"xs",color:"inherit"}):t.state==="pending"?i("span",{class:"agent-activity__pending-dot"}):i("ds-icon",{name:t.state==="error"?"ErrorTriangle":"Check",size:"xs",color:"inherit"})),i("span",null,i("ds-text",{variant:"text-body-small",shimmer:t.state==="active"},t.label),t.detail?i("ds-text",{variant:"text-caption",color:"secondary"},t.detail):null,i("span",{class:"agent-activity__state ds-visually-hidden"},this.stateLabel(t)))))))))}static get watchers(){return{open:[{handleOpenChange:0}]}}static get style(){return c()}},[2,"ds-agent-activity",{items:[16],heading:[1],open:[4],expanded:[32]},undefined,{open:[{handleOpenChange:0}]}]);function l(){if(typeof customElements==="undefined"){return}const t=["ds-agent-activity","ds-icon","ds-loader","ds-text"];t.forEach((t=>{switch(t){case"ds-agent-activity":if(!customElements.get(e(t))){customElements.define(e(t),o)}break;case"ds-icon":if(!customElements.get(e(t))){n()}break;case"ds-loader":if(!customElements.get(e(t))){r()}break;case"ds-text":if(!customElements.get(e(t))){d()}break}}))}l();export{o as A,l as d};
2
- //# sourceMappingURL=p-BeA6Jv-3.js.map
@@ -1,2 +0,0 @@
1
- import{p as e,H as i,c as n,h as s,a as o,t}from"./index.js";import{A as r,r as c,c as d}from"./p-DCbKsABt.js";import{c as a,r as l,A as u}from"./p-etg-Uk1u.js";import{d as h}from"./p-caLOcQUK.js";import{d as m}from"./p-Cea7rROU.js";import{d as f}from"./p-Do8wbFff.js";import{d as p}from"./p-DGkn8FwV.js";import{d as v}from"./p-DQBT1Jkf.js";import{d as g}from"./p-B-HsfQOK.js";import{a as b,b as x,T as w}from"./p-1YHFQeI7.js";import{r as _}from"./p-CochmPyg.js";import{a as y,C as k}from"./p-CuwopElg.js";function C(e){return"variant"in e&&e.variant==="swatch-picker"}function P(e){return C(e)}function A(e){return e.map((e=>{if(C(e)){return{...e,...e.options?{options:e.options.map((e=>({...e})))}:{},...e.sections?{sections:e.sections.map((e=>({...e,options:e.options.map((e=>({...e})))})))}:{}}}return{...e,items:e.items.map((e=>({...e})))}}))}function z(e,i){if(!e[i]?.reorderable)return null;let n=i;while(n>0&&e[n-1]?.reorderable)n-=1;let s=i;while(s<e.length-1&&e[s+1]?.reorderable)s+=1;return{start:n,end:s}}function I(e,i,n){const s=z(e,i);if(!s)return null;const o=Math.min(Math.max(n,s.start),s.end+1);let t=o;if(i<t)t-=1;if(t===i||t<s.start||t>s.end)return null;const r=[...e];const[c]=r.splice(i,1);r.splice(t,0,c);return r}function T(e,i,n){if(n===0)return null;return I(e,i,i+(n<0?n:n+1))}function O(e,i){let n=i;for(let i=0;i<e.length;i+=1){const s=e[i];if(P(s))continue;if(n<s.items.length){return{sectionIndex:i,itemIndex:n,items:s.items}}n-=s.items.length}return null}function D(e,i,n,s){const o=e[i];if(!o)return null;const t=n.indexOf(o);if(t<0){const e=o.value;const t=e?n.findIndex((i=>i.value===e)):-1;if(t<0)return null;return{item:o,fromIndex:i,toIndex:t,sectionIndex:s,items:n}}return{item:o,fromIndex:i,toIndex:t,sectionIndex:s,items:n}}const H=()=>`@media (forced-colors: active){.sc-ds-menu:root,.sc-ds-menu-h,.ds-forced-colors-scope.sc-ds-menu{--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-menu-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-menu-h,.ds-focus-ring.sc-ds-menu,.ds-focus-ring-inset.sc-ds-menu-h,.ds-focus-ring-inset.sc-ds-menu{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-menu-h:focus-visible,.ds-focus-ring.sc-ds-menu: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-menu-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-menu{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-menu-h:focus-visible,.ds-focus-ring-inset.sc-ds-menu:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-menu-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-menu: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-menu-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-menu{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-menu-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-menu::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-menu-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){.sc-ds-menu:root,.sc-ds-menu-h,.ds-forced-colors-scope.sc-ds-menu{--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}}@media (forced-colors: active){.sc-ds-menu:root,.sc-ds-menu-h,.ds-forced-colors-scope.sc-ds-menu{--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-menu-h,.ds-interaction-fill.sc-ds-menu{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-menu-h::before,.ds-interaction-fill.sc-ds-menu::before,.ds-interaction-fill.sc-ds-menu-h::after,.ds-interaction-fill.sc-ds-menu::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;cursor:inherit;transition:none}.ds-interaction-fill.sc-ds-menu-h::before,.ds-interaction-fill.sc-ds-menu::before{z-index:1}.ds-interaction-fill.sc-ds-menu-h::after,.ds-interaction-fill.sc-ds-menu::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-menu-h,.ds-interaction-fill--bordered.sc-ds-menu{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-menu-h::before,.ds-interaction-fill--selected.sc-ds-menu::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-menu-h,.ds-interaction-fill--selected.sc-ds-menu{--ds-interaction-dot-ring:var(--ds-interaction-active)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-menu-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-menu:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}}.ds-interaction-fill.sc-ds-menu-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-menu:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill--grouped.sc-ds-menu-h::after,.ds-interaction-fill--grouped.sc-ds-menu::after,.ds-interaction-fill--grouped.sc-ds-menu-h:active:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-menu:active:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill--grouped.sc-ds-menu-h:hover:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-menu:hover:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}}.ds-interaction-fill--grouped.sc-ds-menu-h,.ds-interaction-fill--grouped.sc-ds-menu{--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-menu-h>.ds-interaction-fill__content.sc-ds-menu,.ds-interaction-fill.sc-ds-menu>.ds-interaction-fill__content.sc-ds-menu,.ds-interaction-fill__content.sc-ds-menu{position:relative;z-index:2;cursor:inherit}.ds-interaction-fill--on-faint.sc-ds-menu-h,.ds-interaction-fill--on-faint.sc-ds-menu{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-menu-h,.ds-interaction-fill--on-medium.sc-ds-menu{--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-menu-h,.ds-interaction-fill--on-bold.sc-ds-menu{--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-menu-h,.ds-interaction-fill--on-strong.sc-ds-menu{--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-menu-h,.ds-interaction-fill--on-translucent.sc-ds-menu{--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-menu-h,.ds-interaction-fill--on-inverted.sc-ds-menu{--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-menu-h,.ds-interaction-fill--on-media.sc-ds-menu{--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-menu-h,.ds-interaction-fill--on-always-dark.sc-ds-menu{--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-navigation.sc-ds-menu-h,.ds-interaction-fill--on-navigation.sc-ds-menu{--ds-interaction-hover:var(--color-navigation-interaction-hover);--ds-interaction-pressed:var(--color-navigation-interaction-pressed);--ds-interaction-active:var(--color-navigation-interaction-active);--ds-focus-ring-color:var(--color-navigation-interaction-focus)}@media (forced-colors: active){.ds-interaction-fill.sc-ds-menu-h::after,.ds-interaction-fill.sc-ds-menu::after{box-shadow:none;outline:var(--ds-interaction-border-width) solid var(--ds-forced-color-control-boundary);outline-offset:calc(-1 * var(--ds-interaction-border-width))}.ds-interaction-fill--selected.sc-ds-menu-h::before,.ds-interaction-fill--selected.sc-ds-menu::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-menu-h:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill.sc-ds-menu: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-menu:root,.sc-ds-menu-h,.ds-forced-colors-scope.sc-ds-menu{--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-menu-h,.ds-control-inactive.sc-ds-menu{opacity:var(--effect-opacity-medium);pointer-events:none;cursor:not-allowed}@media (forced-colors: active){.ds-control-inactive.sc-ds-menu-h,.ds-control-inactive.sc-ds-menu{color:var(--ds-forced-color-disabled);opacity:1}}.ds-control--lg.sc-ds-menu,.ds-control--lg.sc-ds-menu-h,.ds-control--md.sc-ds-menu-h,.ds-control--md.sc-ds-menu,.ds-control--sm.sc-ds-menu-h,.ds-control--sm.sc-ds-menu,.ds-control--xs.sc-ds-menu-h,.ds-control--xs.sc-ds-menu{--ds-control-radius:var(--dimension-radius-025)}.ds-control--lg.sc-ds-menu-h,.ds-control--lg.sc-ds-menu{--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-menu-h,.ds-control--md.sc-ds-menu{--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-menu-h,.ds-control--sm.sc-ds-menu{--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-menu-h,.ds-control--xs.sc-ds-menu{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0}.ds-chrome-space--sm.sc-ds-menu-h,.ds-chrome-space--sm.sc-ds-menu{--ds-chrome-padding:var(--dimension-space-050);--ds-chrome-gap:var(--dimension-space-050)}.ds-chrome-space--md.sc-ds-menu-h,.ds-chrome-space--md.sc-ds-menu{--ds-chrome-padding:var(--dimension-space-100);--ds-chrome-gap:var(--dimension-space-100)}.ds-chrome-space--lg.sc-ds-menu-h,.ds-chrome-space--lg.sc-ds-menu{--ds-chrome-padding:var(--dimension-space-200);--ds-chrome-gap:var(--dimension-space-200)}.ds-chrome-row.sc-ds-menu-h,.ds-chrome-row.sc-ds-menu,.ds-chrome-column.sc-ds-menu-h,.ds-chrome-column.sc-ds-menu,.ds-chrome-grid.sc-ds-menu-h,.ds-chrome-grid.sc-ds-menu{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-menu-h,.ds-chrome-row.sc-ds-menu{flex-direction:row;align-items:center}.ds-chrome-column.sc-ds-menu-h,.ds-chrome-column.sc-ds-menu{flex-direction:column}.ds-chrome-grid.sc-ds-menu-h,.ds-chrome-grid.sc-ds-menu{display:grid;align-items:center}.ds-control-frame.sc-ds-menu{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-menu{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-menu{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-menu{min-width:0;padding-inline:var(--ds-control-label-inset, var(--dimension-space-025))}.ds-control-label-dot.sc-ds-menu{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-menu{position:absolute;inset-block-start:0;inset-inline-end:0;pointer-events:none}.ds-empty-region.sc-ds-menu{display:flex;flex:1 1 auto;align-items:center;justify-content:center;box-sizing:border-box;min-width:0;min-height:0}.ds-empty-region--padded.sc-ds-menu{padding:var(--dimension-space-200)}.sc-ds-menu:where(.ds-text-decoration,.ds-text-action).sc-ds-menu{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-action.sc-ds-menu{--ds-text-action-foreground:var(--color-foreground-bold-brand);--ds-text-decoration-color:var(--ds-text-action-foreground);color:var(--ds-text-action-foreground);text-decoration-line:none}.ds-text-action--on-medium.sc-ds-menu{--ds-text-action-foreground:var(--color-foreground-on-medium-background-primary);--ds-text-decoration-color:var(--color-foreground-on-medium-background-secondary);text-decoration-line:underline}.ds-text-action--on-strong.sc-ds-menu{--ds-text-action-foreground:var(--color-foreground-on-strong-background-primary);--ds-text-decoration-color:var(--color-foreground-on-strong-background-secondary);text-decoration-line:underline}.ds-text-action--on-bold.sc-ds-menu{--ds-text-action-foreground:var(--color-foreground-on-bold-background-primary);--ds-text-decoration-color:var(--color-foreground-on-bold-background-secondary);text-decoration-line:underline}@media (hover: hover) and (pointer: fine){.ds-text-action.sc-ds-menu:hover{text-decoration-line:underline}}@media (forced-colors: active){.ds-text-action.sc-ds-menu{text-decoration-line:underline;text-decoration-color:currentcolor}}.ds-choice-popup.sc-ds-menu{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(--dimension-radius-075);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-menu::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-menu{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-menu{animation:none;opacity:1}.ds-choice-popup--closing.sc-ds-menu{opacity:0}}.ds-choice-list.sc-ds-menu{display:flex;flex-direction:column;min-height:0;overflow-y:auto;overscroll-behavior:contain}.ds-choice-section--divided.sc-ds-menu{border-bottom:var(--dimension-stroke-width-015) solid var(--color-border-tertiary)}ds-text.ds-choice-section__header.sc-ds-menu{text-align:start;-webkit-user-select:none;user-select:none}.ds-choice-section--headed-after-first.sc-ds-menu{margin-block-start:var(--dimension-space-050)}.ds-choice-item.sc-ds-menu{width:100%;border:none;border-radius:var(--ds-control-radius, var(--dimension-radius-025));background:transparent;cursor:default;-webkit-user-select:none;user-select:none;text-align:left;color:inherit}.ds-choice-item.sc-ds-menu:has(.ds-choice-item__subtext){height:auto;min-height:var(--ds-control-height, var(--dimension-size-400));padding-block:var(--ds-control-padding-inline, var(--dimension-space-075));align-items:flex-start}.ds-choice-item__content.sc-ds-menu{display:flex;flex:1;flex-direction:column;gap:var(--dimension-space-025);min-width:0}ds-text.ds-choice-item__label.sc-ds-menu{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ds-text.ds-choice-item__subtext.sc-ds-menu{display:-webkit-box;overflow:hidden;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.ds-choice-item__icon.sc-ds-menu,.ds-choice-item__suffix.sc-ds-menu{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));pointer-events:none}.ds-choice-item.ds-interaction-fill--selected.sc-ds-menu .ds-choice-item__icon.sc-ds-menu{color:var(--color-foreground-primary)}.ds-choice-item__tag.sc-ds-menu{flex-shrink:0;pointer-events:none}.ds-choice-empty.sc-ds-menu,.ds-choice-loading.sc-ds-menu{min-height:var(--dimension-size-600);padding:var(--dimension-space-100)}.ds-choice-footer.sc-ds-menu{position:relative;box-sizing:border-box;padding-block:var(--dimension-space-050)}.ds-choice-footer.sc-ds-menu::before{content:'';position:absolute;inset:0 0 auto;height:var(--dimension-stroke-width-012);background-color:var(--color-border-tertiary);pointer-events:none}.ds-choice-footer__content.sc-ds-menu{display:flex;align-items:center;justify-content:space-between;column-gap:var(--dimension-space-050);box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400))}.ds-choice-footer__summary.sc-ds-menu,.ds-choice-footer__summary-measure.sc-ds-menu,.ds-choice-footer__clear.sc-ds-menu ds-text.sc-ds-menu,.ds-choice-footer__action.sc-ds-menu ds-text.sc-ds-menu{padding-inline:calc( var(--dimension-space-050) + var(--ds-control-padding-inline, var(--dimension-space-075)) + var(--ds-control-label-inset, var(--dimension-space-025)) )}.ds-choice-footer__summary.sc-ds-menu,.ds-choice-footer__summary-measure.sc-ds-menu,.ds-choice-footer__clear.sc-ds-menu,.ds-choice-footer__action.sc-ds-menu{white-space:nowrap}.ds-choice-footer__summary-measure.sc-ds-menu{position:absolute;visibility:hidden;pointer-events:none}.ds-choice-footer__clear.sc-ds-menu,.ds-choice-footer__action.sc-ds-menu{appearance:none;display:inline-flex;align-items:center;padding:0;border:0;border-radius:var(--dimension-radius-025);background:transparent;cursor:default}@media (forced-colors: active){.ds-choice-popup.sc-ds-menu{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-menu::after{box-shadow:none}.ds-choice-section--divided.sc-ds-menu{border-bottom-color:var(--ds-forced-color-content)}.ds-choice-footer.sc-ds-menu::before{background-color:var(--ds-forced-color-content)}}.ds-visually-hidden.sc-ds-menu-h,.ds-visually-hidden.sc-ds-menu{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-menu:root,.sc-ds-menu-h,.ds-forced-colors-scope.sc-ds-menu{--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}}.menu-item--destructive.sc-ds-menu .menu-item__label.sc-ds-menu{color:var(--color-foreground-bold-negative) !important}.menu-item__dot-box.sc-ds-menu{display: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));pointer-events:none}.menu-item__switch.sc-ds-menu{flex-shrink:0;margin-inline-start:calc( var(--dimension-space-100) - var(--ds-control-gap, var(--dimension-space-050)) )}.menu-item.sc-ds-menu>.menu-item__handle.sc-ds-menu{pointer-events:auto;cursor:grab;touch-action:none}.menu-item.sc-ds-menu>.menu-item__handle.sc-ds-menu:active,.menu-item--dragging.sc-ds-menu>.menu-item__handle.sc-ds-menu{cursor:grabbing}.menu-item--dragging.sc-ds-menu{opacity:var(--effect-opacity-medium)}.menu-item__drop-rail.sc-ds-menu{position:absolute;z-index:var(--dimension-z-index-raised);inset-inline:var(--dimension-space-050);block-size:var(--dimension-stroke-width-025);border-radius:var(--dimension-radius-half);background:var(--color-border-bold-brand);pointer-events:none}.menu-item__drop-rail--before.sc-ds-menu{inset-block-start:calc(-1 * var(--dimension-space-025));transform:translateY(-50%)}.menu-item__drop-rail--after.sc-ds-menu{inset-block-end:calc(-1 * var(--dimension-space-025));transform:translateY(50%)}@media (forced-colors: active){.menu-item__drop-rail.sc-ds-menu{background:var(--ds-forced-color-selected)}}`;const M={lg:"md",md:"sm",sm:"xs",xs:"xs"};const j=e(class e extends i{constructor(e){super();if(e!==false){this.__registerHost()}this.dsClose=n(this,"dsClose",7);this.dsAfterClose=n(this,"dsAfterClose",7);this.dsSelect=n(this,"dsSelect",7);this.dsSwatchSelect=n(this,"dsSwatchSelect",7);this.dsReorder=n(this,"dsReorder",7);this.open=false;this.items=[];this.size="md";this.selectionMode="none";this.sections=[];this.side="bottom";this.align="start";this.anchorAlignment="choice-cell";this.sideOffset=b.space050;this.alignOffset=0;this.initialFocusVisible=false;this.menuLabel="Menu";this.shouldRender=false;this.closing=false;this.pos={x:0,y:0};this.focusedIndex=0;this.positionReady=false;this.availableHeight=null;this.focusRingVisible=false;this.reorderFromFlat=null;this.reorderInsertBefore=null;this.reorderAnnouncement="";this.closeTimer=null;this.suppressItemClick=false;this.reorderPointer=null;this.position=new r({getAnchor:()=>this.resolvedAnchor??null,getPopup:()=>this.el.querySelector(".menu-popup"),getOwnerDocument:()=>this.el.ownerDocument,measure:(e,i)=>{if(!this.open)return null;const n=e.getBoundingClientRect();const s=this.viewportPadPx;if(!this.minWidth){if(this.anchorAlignment==="choice-cell"&&(this.side==="top"||this.side==="bottom")){i.style.minWidth=`max(var(--dimension-menu-width-xs), ${a(n.width,s)}px)`}else{i.style.removeProperty("min-width")}}const o=this.viewportPadPx;const t=i.querySelector(".ds-choice-list");const r=Math.min(Math.max(i.offsetHeight,t?.scrollHeight??0),window.innerHeight-o*2);const u={anchorRect:n,popupWidth:i.offsetWidth||this.popupFallbackWidthPx,popupHeight:r||this.popupFallbackHeightPx,side:this.side,align:this.align,sideOffsetPx:this.sideOffsetPx,alignOffsetPx:l({align:this.align,alignOffsetPx:this.alignOffsetPx,sectionInsetPx:s,anchorAlignment:this.anchorAlignment}),viewportPadPx:o,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight,collisionRect:c(e,this.boundary)};const h=d(u);return{...u,popupHeight:Math.min(u.popupHeight,h.availableHeight)}},apply:({x:e,y:i,availableHeight:n})=>{this.pos={x:e,y:i};this.availableHeight=n},onReady:()=>{this.positionReady=true},liveUpdate:"double-frame",topLayer:true,observeResize:true,observeAnchorMotion:true});this.interaction=new u({getAnchor:()=>this.resolvedAnchor,getPopup:()=>this.el.querySelector(".menu-popup"),getOwnerDocument:()=>this.el.ownerDocument,onOutsideActivation:()=>this.close()});this.lastRenderedSections=[];this.closingSections=null;this.onReorderPointerMove=e=>{const i=this.reorderPointer;if(!i||e.pointerId!==i.pointerId)return;const n=this.activeSections[i.sectionIndex];if(!n||P(n))return;const s=this.resolveReorderInsertBefore(e.clientY,i.sectionIndex,i.fromIndex,n.items);if(s!==this.reorderInsertBefore)this.reorderInsertBefore=s};this.onReorderPointerUp=e=>{const i=this.reorderPointer;if(!i||e.pointerId!==i.pointerId)return;const n=this.activeSections[i.sectionIndex];const s=this.reorderInsertBefore;this.clearReorderPointer();queueMicrotask((()=>{this.suppressItemClick=false}));if(!n||P(n)||s===null)return;const o=I(n.items,i.fromIndex,s);if(!o)return;this.emitReorder(n.items,i.fromIndex,o,i.sectionIndex)};this.onReorderPointerCancel=e=>{if(!this.reorderPointer||e.pointerId!==this.reorderPointer.pointerId)return;this.clearReorderPointer();queueMicrotask((()=>{this.suppressItemClick=false}))}}componentDidLoad(){if(this.open)this.onOpenChange(true)}disconnectedCallback(){this.cancelPositionRetry();this.cancelLivePositionUpdate();this.clearReorderPointer();this.teardownListeners()}onOpenChange(e){if(e){this.teardownListeners();this.closingSections=null;this.shouldRender=true;this.closing=false;this.positionReady=false;this.availableHeight=null;this.focusRingVisible=this.initialFocusVisible;this.setupListeners();this.schedulePositionUpdate((()=>{this.focusInitialItem()}))}else if(this.shouldRender){this.positionReadyCallback=undefined;this.cancelPositionRetry();this.captureClosingSections();this.closing=true;this.teardownListeners();const e=this.closeAnimationMs;if(e<=0){this.finishClose();return}this.closeTimer=setTimeout((()=>{this.closeTimer=null;this.finishClose()}),e)}}onAnchorChange(){if(this.open)this.schedulePositionUpdate()}onPositionPropsChange(){if(this.open)this.schedulePositionUpdate()}get viewportPadPx(){return _(w.space050,w.space050)}get sideOffsetPx(){return _(this.sideOffset,w.space050)}get alignOffsetPx(){return _(this.alignOffset,0)}get popupFallbackWidthPx(){return _(w.menuWidthXs,w.menuWidthXs)}get popupFallbackHeightPx(){return _(w.menuFallbackHeight,w.menuFallbackHeight)}get closeAnimationMs(){return x(w.motionShort2,w.animationDurationShort3)}finishClose(){const e=this.el.querySelector(".menu-popup");if(e?.matches(":popover-open"))e.hidePopover();this.shouldRender=false;this.closing=false;this.lastRenderedSections=[];this.closingSections=null;this.clearReorderPointer();this.reorderAnnouncement="";this.dsAfterClose.emit()}captureClosingSections(){if(this.closingSections)return;const e=this.lastRenderedSections.length?this.lastRenderedSections:this.activeSections;this.closingSections=A(e)}get resolvedAnchor(){if(this.anchor)return this.anchor;if(this.anchorId)return document.getElementById(this.anchorId);return null}compositeTabLeavesPopup(e){return this.interaction.tabLeavesPopup(e)}get activeSections(){if(this.sections.length>0)return this.sections;if(this.items.length>0)return[{items:this.items}];return[]}get flatItems(){return this.activeSections.flatMap((e=>P(e)?[]:e.items))}get hasCompositeSections(){return this.activeSections.some(P)}cancelPositionRetry(){this.position.cancel()}cancelLivePositionUpdate(){this.position.cancel()}scheduleLivePositionUpdate(){this.position.scheduleLiveUpdate()}schedulePositionUpdate(e){if(!this.open)return;this.positionReady=false;if(e)this.positionReadyCallback=e;const i=this.positionReadyCallback;this.position.schedule((()=>{if(this.positionReadyCallback===i){this.positionReadyCallback=undefined}i?.()}))}calculatePosition(){return this.position.update()}focusInitialItem(){if(this.hasCompositeSections){requestAnimationFrame((()=>{this.el.querySelector('.menu-popup [tabindex="0"]')?.focus()}));return}const e=this.flatItems;const i=e.findIndex((e=>e.isSelected&&!e.isInactive));const n=e.findIndex((e=>!e.isInactive||!!e.reorderable));this.focusedIndex=i>=0?i:n>=0?n:0;requestAnimationFrame((()=>{const e=this.el.querySelectorAll(".menu-item");e[this.focusedIndex]?.focus()}))}setupListeners(){this.interaction.connect();this.position.observe()}teardownListeners(){this.position.unobserve();this.interaction.disconnect();if(this.closeTimer){clearTimeout(this.closeTimer);this.closeTimer=null}}close(e=true){this.captureClosingSections();if(e)this.interaction.focusAnchor();this.dsClose.emit();this.open=false;this.onOpenChange(false)}handleKeyDown(e){if(!this.shouldRender||this.closing)return;if(e.key==="Escape"){e.preventDefault();this.close();return}if(e.key==="Tab"){if(this.hasCompositeSections&&!this.compositeTabLeavesPopup(e))return;e.preventDefault();this.close(false);this.interaction.moveFocusAfterTab(e.shiftKey);return}if(this.hasCompositeSections)return;if((e.key==="ArrowUp"||e.key==="ArrowDown")&&e.altKey&&!e.ctrlKey&&!e.shiftKey){this.handleReorderKey(e);return}const i=this.flatItems;const n=i.map(((e,i)=>({it:e,i}))).filter((({it:e})=>!e.isInactive||!!e.reorderable)).map((({i:e})=>e));if(!n.length)return;const s=n.indexOf(this.focusedIndex);const o=s<0?0:s;switch(e.key){case"ArrowDown":e.preventDefault();e.stopPropagation();this.focusRingVisible=true;this.focusedIndex=n[(o+1)%n.length];this.focusItem(this.focusedIndex);break;case"ArrowUp":e.preventDefault();e.stopPropagation();this.focusRingVisible=true;this.focusedIndex=n[(o-1+n.length)%n.length];this.focusItem(this.focusedIndex);break;case"Home":e.preventDefault();e.stopPropagation();this.focusRingVisible=true;this.focusedIndex=n[0];this.focusItem(this.focusedIndex);break;case"End":e.preventDefault();e.stopPropagation();this.focusRingVisible=true;this.focusedIndex=n[n.length-1];this.focusItem(this.focusedIndex);break}}focusItem(e){const i=this.el.querySelectorAll(".menu-item");i[e]?.focus()}handleItemClick(e){if(this.suppressItemClick){this.suppressItemClick=false;return}if(e.isInactive)return;this.captureClosingSections();this.dsSelect.emit(e)}handleSwatchSelect(e){this.dsSwatchSelect.emit(e)}handleReorderKey(e){const i=O(this.activeSections,this.focusedIndex);if(!i||!i.items[i.itemIndex]?.reorderable)return;const n=T(i.items,i.itemIndex,e.key==="ArrowUp"?-1:1);if(!n)return;e.preventDefault();e.stopPropagation();this.emitReorder(i.items,i.itemIndex,n,i.sectionIndex)}emitReorder(e,i,n,s){const o=D(e,i,n,s);if(!o)return;this.focusedIndex=this.flatIndexFor(s,o.toIndex);this.announceReorder(o);this.dsReorder.emit(o)}flatIndexFor(e,i){let n=0;for(let s=0;s<this.activeSections.length;s+=1){const o=this.activeSections[s];if(P(o))continue;if(s===e)return n+i;n+=o.items.length}return i}announceReorder(e){const i=z(e.items,e.toIndex);const n=i?i.end-i.start+1:e.items.length;const s=i?e.toIndex-i.start+1:e.toIndex+1;this.reorderAnnouncement=`${e.item.label} moved to position ${s} of ${n}`}onReorderPointerDown(e,i,n,s){if(e.button!==0)return;const o=this.activeSections[i];if(!o||P(o))return;if(!o.items[n]?.reorderable)return;e.preventDefault();e.stopPropagation();this.suppressItemClick=true;this.focusRingVisible=false;this.focusedIndex=s;this.focusItem(s);this.reorderPointer={pointerId:e.pointerId,sectionIndex:i,fromIndex:n};this.reorderFromFlat=s;this.reorderInsertBefore=n;window.addEventListener("pointermove",this.onReorderPointerMove);window.addEventListener("pointerup",this.onReorderPointerUp);window.addEventListener("pointercancel",this.onReorderPointerCancel)}resolveReorderInsertBefore(e,i,n,s){const o=z(s,n);if(!o)return n;const t=[...this.el.querySelectorAll(".menu-item")];const r=this.flatIndexFor(i,0);let c=o.end+1;for(let i=o.start;i<=o.end;i+=1){const n=t[r+i];if(!n)continue;const s=n.getBoundingClientRect();if(e<s.top+s.height/2){c=i;break}}return Math.min(Math.max(c,o.start),o.end+1)}clearReorderPointer(){if(this.reorderPointer){window.removeEventListener("pointermove",this.onReorderPointerMove);window.removeEventListener("pointerup",this.onReorderPointerUp);window.removeEventListener("pointercancel",this.onReorderPointerCancel)}this.reorderPointer=null;this.reorderFromFlat=null;this.reorderInsertBefore=null}render(){if(!this.shouldRender)return s(o,{style:{display:"contents"}});const e=this.closing?this.closingSections??this.lastRenderedSections:this.activeSections;const i=e.some(P);if(!this.closing){this.lastRenderedSections=A(e);this.closingSections=null}let n=0;const t=this.reorderFromFlat===null?null:O(e,this.reorderFromFlat);const r=t?z(t.items,t.itemIndex):null;const c={position:"fixed",left:"0",top:"0",transform:`translate(${Math.round(this.pos.x)}px, ${Math.round(this.pos.y)}px)`,zIndex:"9998",visibility:this.positionReady?"visible":"hidden"};if(this.menuWidth)c["width"]=this.menuWidth;if(this.minWidth)c["min-width"]=this.minWidth;if(this.availableHeight!==null){c["max-height"]=`${Math.floor(this.availableHeight)}px`}return s(o,{style:{display:"contents"}},s("div",{popover:"manual",class:{"menu-popup":true,"menu-popup--closing":this.closing,"ds-choice-popup":true,"ds-choice-popup--closing":this.closing},style:c,role:i?"dialog":"menu","aria-label":this.menuLabel,"aria-orientation":i?undefined:"vertical"},s("div",{class:"ds-choice-list"},e.map(((o,c)=>s("div",{key:c,class:{"menu-section":true,"menu-section--divided":c<e.length-1,"menu-section--swatch-picker":P(o),"ds-choice-section":true,"ds-chrome-column":true,"ds-chrome-space--sm":true,"ds-choice-section--divided":c<e.length-1,"ds-choice-section--headed-after-first":c>0&&Boolean(o.header)},role:o.header?"group":undefined,"aria-label":o.header},o.header&&s("ds-text",{class:`section-header ds-choice-section__header ds-control-section-heading ds-control--${this.size}`,as:"span",variant:y[this.size],emphasis:true,color:"primary","aria-hidden":"true"},s("span",{class:"ds-choice-section__header-label"},o.header)),C(o)?s("ds-swatch-picker",{value:o.value,groupLabel:o.groupLabel??o.header??"Swatch options",options:o.options??[],sections:o.sections??[],onDsChange:e=>{e.stopPropagation();this.handleSwatchSelect(e.detail)}}):o.items.map(((e,d)=>{const a=n++;const l=this.focusedIndex===a;const u=!i&&this.selectionMode==="single"&&!e.showSwitch;const h=o.items.some((e=>e.reorderable||!!e.icon));const m=!!e.isInactive&&!e.reorderable;const f=this.reorderFromFlat===a;const p=t?.sectionIndex===c&&r!==null&&d<=r.end&&this.reorderInsertBefore===d;const v=t?.sectionIndex===c&&r!==null&&this.reorderInsertBefore===r.end+1&&d===r.end;return s("button",{key:e.value??`${c}-${e.label}`,type:"button",class:{"menu-item":true,"ds-choice-item":true,"ds-control-frame":true,[`ds-control--${this.size}`]:true,"ds-focus-ring-inset":true,"ds-focus-ring--visible":l&&this.focusRingVisible,"ds-interaction-fill":!m,"ds-interaction-fill--selected":!!e.isSelected&&!m,"menu-item--selected":!!e.isSelected,"menu-item--switch":!!e.showSwitch,"ds-control-inactive":m,"menu-item--destructive":!!e.isDestructive,"menu-item--focused":l,"menu-item--dragging":f},role:i?undefined:e.showSwitch?"menuitemcheckbox":u?"menuitemradio":"menuitem","aria-checked":!i&&e.showSwitch?String(!!e.switchValue):u?String(!!e.isSelected):undefined,"aria-pressed":i?String(e.showSwitch?!!e.switchValue:!!e.isSelected):undefined,"aria-current":!i&&!e.showSwitch&&!u&&e.isSelected?"true":undefined,"aria-description":e.reorderable?e.isInactive?"Visibility cannot be changed. Alt + Arrow Up or Alt + Arrow Down moves this row.":"Drag to reorder. Alt + Arrow Up or Alt + Arrow Down moves this row.":undefined,"aria-disabled":e.isInactive?"true":undefined,disabled:m,tabIndex:i?0:l?0:-1,onMouseDown:()=>{this.focusRingVisible=false},onClick:()=>this.handleItemClick(e),onFocus:()=>{this.focusedIndex=a}},(p||v)&&s("span",{class:{"menu-item__drop-rail":true,"menu-item__drop-rail--before":p,"menu-item__drop-rail--after":v},"data-menu-drop-rail":true,"aria-hidden":"true"}),e.reorderable?s("span",{class:"menu-item__handle ds-choice-item__icon ds-control-icon-box ds-interaction-fill__content","data-menu-handle":true,"aria-hidden":"true",onPointerDown:e=>this.onReorderPointerDown(e,c,d,a),onClick:e=>{e.preventDefault();e.stopPropagation()}},s("ds-icon",{name:"Drag",size:this.size,color:"inherit"})):h&&e.icon?s("span",{class:"menu-item__icon ds-choice-item__icon ds-control-icon-box ds-interaction-fill__content","aria-hidden":"true"},s("ds-icon",{name:e.icon,size:this.size,color:"inherit"})):h?s("span",{class:"menu-item__icon-spacer ds-choice-item__icon ds-control-icon-box","aria-hidden":"true"}):null,s("div",{class:"menu-item__content ds-choice-item__content ds-interaction-fill__content"},s("ds-text",{class:"menu-item__label ds-choice-item__label ds-control-label-box",as:"span",variant:k[this.size],color:e.isSelected?"primary":"secondary"},e.label),e.subtext&&s("ds-text",{class:"menu-item__subtext ds-choice-item__subtext ds-control-label-box",as:"span",variant:y[this.size],color:"secondary"},e.subtext)),e.tag&&s("ds-tag",{class:"ds-choice-item__tag ds-interaction-fill__content",label:e.tag.label,size:M[this.size],intent:e.tag.intent??"neutral",contrast:e.tag.contrast??"faint",rounded:e.tag.rounded??false,isInset:true}),e.dot&&s("span",{class:"menu-item__dot-box ds-interaction-fill__content","aria-hidden":"true"},s("ds-badge",{class:"menu-item__dot",variant:"dot",hasRing:false,label:""})),e.showSwitch&&s("ds-switch",{class:"menu-item__switch ds-interaction-fill__content",size:this.size,checked:!!e.switchValue,isInactive:!!e.isInactive,presentation:true}))}))))))),s("div",{class:"ds-visually-hidden",role:"status","aria-live":"polite"},this.reorderAnnouncement))}get el(){return this}static get watchers(){return{open:[{onOpenChange:0}],anchor:[{onAnchorChange:0}],anchorId:[{onAnchorChange:0}],boundary:[{onAnchorChange:0}],side:[{onPositionPropsChange:0}],align:[{onPositionPropsChange:0}],anchorAlignment:[{onPositionPropsChange:0}],sideOffset:[{onPositionPropsChange:0}],alignOffset:[{onPositionPropsChange:0}]}}static get style(){return H()}},[2,"ds-menu",{open:[1028],items:[16],size:[1],selectionMode:[1,"selection-mode"],sections:[16],side:[1],align:[1],anchorAlignment:[1,"anchor-alignment"],sideOffset:[8,"side-offset"],alignOffset:[8,"align-offset"],menuWidth:[1,"menu-width"],minWidth:[1,"min-width"],anchor:[16],anchorId:[1,"anchor-id"],boundary:[16],initialFocusVisible:[4,"initial-focus-visible"],menuLabel:[1,"menu-label"],shouldRender:[32],closing:[32],pos:[32],focusedIndex:[32],positionReady:[32],availableHeight:[32],focusRingVisible:[32],reorderFromFlat:[32],reorderInsertBefore:[32],reorderAnnouncement:[32]},[[0,"keydown","handleKeyDown"]],{open:[{onOpenChange:0}],anchor:[{onAnchorChange:0}],anchorId:[{onAnchorChange:0}],boundary:[{onAnchorChange:0}],side:[{onPositionPropsChange:0}],align:[{onPositionPropsChange:0}],anchorAlignment:[{onPositionPropsChange:0}],sideOffset:[{onPositionPropsChange:0}],alignOffset:[{onPositionPropsChange:0}]}]);function R(){if(typeof customElements==="undefined"){return}const e=["ds-menu","ds-badge","ds-icon","ds-swatch-picker","ds-switch","ds-tag","ds-text"];e.forEach((e=>{switch(e){case"ds-menu":if(!customElements.get(t(e))){customElements.define(t(e),j)}break;case"ds-badge":if(!customElements.get(t(e))){h()}break;case"ds-icon":if(!customElements.get(t(e))){m()}break;case"ds-swatch-picker":if(!customElements.get(t(e))){f()}break;case"ds-switch":if(!customElements.get(t(e))){p()}break;case"ds-tag":if(!customElements.get(t(e))){v()}break;case"ds-text":if(!customElements.get(t(e))){g()}break}}))}R();export{j as M,R as d};
2
- //# sourceMappingURL=p-CKtJ6FHM.js.map
@@ -1,2 +0,0 @@
1
- import{p as t,H as o,h as i,a as s,t as n}from"./index.js";import{A as e,r}from"./p-DCbKsABt.js";import{d}from"./p-B-HsfQOK.js";import{a,T as l,r as c,b as h}from"./p-1YHFQeI7.js";import{r as p}from"./p-CochmPyg.js";import{C as u}from"./p-CuwopElg.js";const m=new Set(["⌘","⇧","⌥","⌃"]);const f={alt:"⌥",cmd:"⌘",command:"⌘",control:"⌃",ctrl:"⌃",option:"⌥",shift:"⇧"};function g(t){return f[t.toLowerCase()]??t}function v(t){const o=t.trim();if(!o)return[];if(o.includes("+")){return o.split("+").map((t=>t.trim())).filter(Boolean).map(g)}if(/\s/.test(o)){return o.split(/\s+/).filter(Boolean).map(g)}const i=Array.from(o);const s=[];while(i.length>1&&m.has(i[0])){s.push(i.shift())}s.push(i.join(""));return s}const y=()=>`.ds-control--lg.sc-ds-tooltip,.ds-control--lg.sc-ds-tooltip-h,.ds-control--md.sc-ds-tooltip-h,.ds-control--md.sc-ds-tooltip,.ds-control--sm.sc-ds-tooltip-h,.ds-control--sm.sc-ds-tooltip,.ds-control--xs.sc-ds-tooltip-h,.ds-control--xs.sc-ds-tooltip{--ds-control-radius:var(--dimension-radius-025)}.ds-control--lg.sc-ds-tooltip-h,.ds-control--lg.sc-ds-tooltip{--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-tooltip-h,.ds-control--md.sc-ds-tooltip{--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-tooltip-h,.ds-control--sm.sc-ds-tooltip{--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-tooltip-h,.ds-control--xs.sc-ds-tooltip{--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--lg.sc-ds-tooltip,.ds-control--lg.sc-ds-tooltip-h,.ds-control--md.sc-ds-tooltip-h,.ds-control--md.sc-ds-tooltip,.ds-control--sm.sc-ds-tooltip-h,.ds-control--sm.sc-ds-tooltip,.ds-control--xs.sc-ds-tooltip-h,.ds-control--xs.sc-ds-tooltip{--ds-control-radius:var(--dimension-radius-025)}.ds-control--lg.sc-ds-tooltip-h,.ds-control--lg.sc-ds-tooltip{--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-tooltip-h,.ds-control--md.sc-ds-tooltip{--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-tooltip-h,.ds-control--sm.sc-ds-tooltip{--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-tooltip-h,.ds-control--xs.sc-ds-tooltip{--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}.key-hint-group.sc-ds-tooltip{display:inline-flex;align-items:center;gap:var(--dimension-stroke-width-012);width:max-content;flex-shrink:0}.key-hint.sc-ds-tooltip{box-sizing:border-box;min-width:var(--ds-control-icon, var(--dimension-iconography-md));width:var(--ds-control-icon, var(--dimension-iconography-md));height:var(--ds-control-icon, var(--dimension-iconography-md));padding-inline:0;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background-color:var(--color-background-secondary);border:var(--dimension-stroke-width-015) solid var(--color-border-tertiary);border-bottom-width:var(--dimension-stroke-width-025);border-radius:var(--dimension-radius-025);color:var(--color-foreground-secondary)}.key-hint--wide.sc-ds-tooltip{width:calc(var(--ds-control-icon, var(--dimension-iconography-md)) * 1.5)}.key-hint__label.sc-ds-tooltip{display:inline-flex;width:max-content;min-width:max-content;font-family:var(--typography-font-family-ui);font-size:var(--typography-fontsize-xs);line-height:1;font-weight:var(--typography-weight-regular);letter-spacing:0;text-transform:uppercase;color:inherit}.ds-control--xs.sc-ds-tooltip .key-hint__label.sc-ds-tooltip{font-size:calc(var(--typography-fontsize-xs) * 0.78)}@media (forced-colors: active){.sc-ds-tooltip:root,.sc-ds-tooltip-h,.ds-forced-colors-scope.sc-ds-tooltip{--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}}.tooltip-popup.sc-ds-tooltip{box-sizing:border-box;background-color:var(--color-background-primary);border-radius:var(--ds-control-radius, var(--dimension-radius-025));box-shadow:var(--effect-elevation-elevated-floating);white-space:nowrap;pointer-events:none;animation:tooltipFadeIn var(--effect-motion-short-2) forwards;will-change:transform;backface-visibility:hidden}.tooltip-popup--instant.sc-ds-tooltip{animation:none;opacity:1}.tooltip-popup--closing.sc-ds-tooltip{animation:tooltipFadeOut var(--effect-motion-short-3) forwards}.tooltip-inner.sc-ds-tooltip{box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));display:flex;align-items:center;gap:var(--ds-control-gap, var(--dimension-space-050));padding:0 var(--ds-control-padding-inline, var(--dimension-space-075))}.tooltip-inner.sc-ds-tooltip>ds-text.sc-ds-tooltip{flex-shrink:0;min-width:max-content;max-width:none;padding:0 var(--ds-control-label-inset, var(--dimension-space-025));color:var(--color-foreground-primary)}.tooltip-popup--wrap.sc-ds-tooltip{white-space:normal;max-inline-size:var(--dimension-panel-width-xs)}.tooltip-popup--wrap.sc-ds-tooltip .tooltip-inner.sc-ds-tooltip{height:auto;min-height:var(--ds-control-height, var(--dimension-size-400));padding-block:var(--dimension-space-050);align-items:flex-start}.tooltip-popup--wrap.sc-ds-tooltip .tooltip-inner.sc-ds-tooltip>ds-text.sc-ds-tooltip{flex:1 1 auto;min-width:0;max-width:100%;white-space:normal}@keyframes tooltipFadeIn{from{opacity:0}to{opacity:1}}@keyframes tooltipFadeOut{from{opacity:1}to{opacity:0}}@media (prefers-reduced-motion: reduce){.tooltip-popup.sc-ds-tooltip,.tooltip-popup--instant.sc-ds-tooltip{animation:none;opacity:1}.tooltip-popup--closing.sc-ds-tooltip{animation:none;opacity:0}}@media (forced-colors: active){.tooltip-popup.sc-ds-tooltip{box-shadow:none;outline:var(--dimension-stroke-width-012) solid var(--ds-forced-color-content);outline-offset:calc(-1 * var(--dimension-stroke-width-012))}}`;const b={md:l.size400,sm:l.size300,xs:l.size200};let x=0;let w=0;let C=null;function O(t){const o=document.createElement("ds-text");o.as="span";o.variant=t.variant;o.emphasis=t.emphasis??false;o.color=t.color??"inherit";if(t.wrap)o.wrap=t.wrap;o.textContent=t.text;return o}function k(t,o=false){t.style.flexShrink=o?"1":"0";t.style.minWidth=o?"0":"max-content";t.style.maxWidth=o?"100%":"none";t.style.whiteSpace=o?"normal":"";t.style.padding="0 var(--ds-control-label-inset, var(--dimension-space-025))";t.style.color="var(--color-foreground-primary)"}const P=t(class t extends o{constructor(t){super();if(t!==false){this.__registerHost()}this.size="md";this.side="top";this.align="center";this.sideOffset=a.space050;this.alignOffset=0;this.delay=l.animationDelayMedium3;this.shortcutKeyPosition="end";this.describedBy=true;this.wrapLabel=false;this.tooltipId=`ds-tooltip-${++w}`;this.delayTimer=null;this.closeTimer=null;this.anchor=null;this.popupEl=null;this.anchorObserver=null;this.didLoad=false;this.position=new e({getAnchor:()=>this.anchor,getPopup:()=>this.popupEl,getOwnerDocument:()=>this.el.ownerDocument,measure:(t,o)=>({anchorRect:t.getBoundingClientRect(),popupWidth:o.offsetWidth||this.tooltipFallbackWidthPx,popupHeight:o.offsetHeight||this.tooltipFallbackHeightPx,side:this.side,align:this.align,sideOffsetPx:this.sideOffsetPx,alignOffsetPx:this.alignOffsetPx,viewportPadPx:this.viewportPadPx,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight,collisionRect:r(t,this.boundary)}),apply:({x:t,y:o,resolvedSide:i})=>{if(!this.popupEl)return;this.popupEl.dataset.side=i;this.popupEl.style.transform=`translate(${Math.round(t)}px, ${Math.round(o)}px)`},liveUpdate:"frame",observeResize:true});this.skipEnterAnimation=false;this.isOpen=false;this.programmaticAnchor=false;this.lastInteractionWasKeyboard=false;this.pointerEnterHandler=t=>{if(t.pointerType==="touch")return;this.show()};this.pointerLeaveHandler=t=>{if(t.pointerType==="touch")return;this.hide()};this.pointerDownHandler=t=>{this.lastInteractionWasKeyboard=false;if(t.pointerType==="touch"&&(this.isOpen||this.popupEl))this.hideInstant()};this.keyDownHandler=()=>{this.lastInteractionWasKeyboard=true};this.focusHandler=()=>{if(this.lastInteractionWasKeyboard||this.anchor?.matches(":focus-visible"))this.show()};this.blurHandler=t=>{const o=t.relatedTarget;if(o&&this.anchor?.contains(o))return;this.hide()};this.escapeHandler=t=>{if(t.key!=="Escape"||!this.isOpen)return;t.preventDefault();this.hide()};this.handleSlotChange=()=>{if(this.programmaticAnchor)return;const t=this.el.querySelector("slot");const o=t?.assignedElements?.()[0]??this.el.firstElementChild;if(o===this.anchor||o?.tagName==="SLOT")return;if(this.isOpen||this.popupEl)this.hideInstant();this.unbindAnchor();this.bindAnchor()}}connectedCallback(){if(!this.didLoad)return;this.connectAnchor()}componentDidLoad(){this.didLoad=true;this.connectAnchor()}connectAnchor(){this.bindAnchor();if(this.anchorObserver)return;this.anchorObserver=new MutationObserver((()=>this.handleSlotChange()));this.anchorObserver.observe(this.el,{childList:true})}disconnectedCallback(){if(C===this)C=null;this.anchorObserver?.disconnect();this.anchorObserver=null;this.unbindAnchor();this.clearTimers();this.destroyPopup()}onContentOrPositionChange(){if(!this.label?.trim()){if(this.isOpen||this.popupEl)this.hideInstant();return}if(!this.popupEl||!this.isOpen)return;this.renderPopupContent();this.schedulePosition()}get viewportPadPx(){return p(l.space050,l.space050)}get sideOffsetPx(){return p(this.sideOffset,l.space050)}get alignOffsetPx(){return p(this.alignOffset,0)}get hoverDelayMs(){return c(this.delay,l.animationDelayMedium3)}get instantReopenMs(){return c(l.animationDurationMedium1,l.animationDurationMedium1)}get fadeOutMs(){return h(l.motionShort3,l.animationDurationShort3)}get tooltipFallbackWidthPx(){return p(l.tooltipFallbackWidth,l.tooltipFallbackWidth)}get tooltipFallbackHeightPx(){const t=b[this.size];return p(t,t)}async presentFrom(t,o){if(o!=null)this.label=o;if(!this.label?.trim()){this.hide();return}const i=this.anchor===t;if(!i){this.unbindAnchor();this.anchor=t;this.programmaticAnchor=true;if(this.popupEl&&this.describedBy)this.linkDescribedBy()}if(this.popupEl){this.renderPopupContent();this.schedulePosition();return}if(this.delayTimer&&i)return;this.show()}async dismiss(){this.hide()}bindAnchor(){if(this.programmaticAnchor)return;const t=this.el.querySelector("slot");const o=t?.assignedElements?.()??[];const i=o[0]??this.el.firstElementChild;if(!i||i.tagName==="SLOT"||i===this.anchor)return;this.anchor=i;i.addEventListener("pointerenter",this.pointerEnterHandler);i.addEventListener("pointerleave",this.pointerLeaveHandler);i.addEventListener("pointerdown",this.pointerDownHandler);i.addEventListener("keydown",this.keyDownHandler);i.addEventListener("focusin",this.focusHandler);i.addEventListener("focusout",this.blurHandler)}unbindAnchor(){if(!this.anchor)return;this.unlinkDescribedBy();if(!this.programmaticAnchor){this.anchor.removeEventListener("pointerenter",this.pointerEnterHandler);this.anchor.removeEventListener("pointerleave",this.pointerLeaveHandler);this.anchor.removeEventListener("pointerdown",this.pointerDownHandler);this.anchor.removeEventListener("keydown",this.keyDownHandler);this.anchor.removeEventListener("focusin",this.focusHandler);this.anchor.removeEventListener("focusout",this.blurHandler)}this.anchor=null;this.programmaticAnchor=false}linkDescribedBy(){if(!this.describedBy||!this.anchor||!this.popupEl)return;const t=new Set((this.anchor.getAttribute("aria-describedby")??"").split(/\s+/).filter(Boolean));t.add(this.tooltipId);this.anchor.setAttribute("aria-describedby",Array.from(t).join(" "))}unlinkDescribedBy(){if(!this.anchor)return;const t=(this.anchor.getAttribute("aria-describedby")??"").split(/\s+/).filter((t=>t&&t!==this.tooltipId));if(t.length)this.anchor.setAttribute("aria-describedby",t.join(" "));else this.anchor.removeAttribute("aria-describedby")}clearTimers(){if(this.delayTimer){clearTimeout(this.delayTimer);this.delayTimer=null}if(this.closeTimer){clearTimeout(this.closeTimer);this.closeTimer=null}}setupOpenListeners(){this.position.observe();document.addEventListener("keydown",this.escapeHandler)}teardownOpenListeners(){this.position.unobserve();document.removeEventListener("keydown",this.escapeHandler)}destroyPopup(){this.teardownOpenListeners();this.unlinkDescribedBy();if(!this.popupEl)return;this.popupEl.remove();this.popupEl=null}schedulePosition(){if(!this.popupEl)return;const t=()=>{const t=this.popupEl?.querySelector(":scope > .tooltip-inner > ds-text");if(t instanceof o)k(t,this.wrapLabel)};requestAnimationFrame((()=>{t();this.position.update();requestAnimationFrame((()=>{t();this.position.update()}))}));this.position.observeResizeTargets()}hideInstant(){this.clearTimers();x=Date.now();if(C===this)C=null;this.destroyPopup();this.isOpen=false;this.skipEnterAnimation=false}show(){if(!this.label?.trim())return;this.clearTimers();let t=Date.now()-x<this.instantReopenMs;if(C&&C!==this){C.hideInstant();t=true}C=this;this.skipEnterAnimation=t;if(t){this.mountPopup();return}this.delayTimer=setTimeout((()=>{this.delayTimer=null;if(!this.label?.trim())return;this.mountPopup()}),this.hoverDelayMs)}hide(){this.clearTimers();if(!this.popupEl&&!this.isOpen)return;x=Date.now();if(!this.popupEl){this.isOpen=false;return}this.popupEl.classList.remove("tooltip-popup--instant");this.popupEl.classList.add("tooltip-popup--closing");if(this.fadeOutMs===0){if(C===this)C=null;this.destroyPopup();this.isOpen=false;this.skipEnterAnimation=false;return}this.closeTimer=setTimeout((()=>{this.closeTimer=null;if(C===this)C=null;this.destroyPopup();this.isOpen=false;this.skipEnterAnimation=false}),this.fadeOutMs)}mountPopup(){if(!this.popupEl){const t=document.createElement("div");t.id=this.tooltipId;t.setAttribute("role","tooltip");t.className="tooltip-popup ds-forced-colors-scope sc-ds-tooltip";Object.assign(t.style,{position:"fixed",left:"0",top:"0",zIndex:"var(--dimension-z-index-tooltip)",pointerEvents:"none"});document.body.appendChild(t);this.popupEl=t}this.setupOpenListeners();this.linkDescribedBy();this.popupEl.classList.toggle("tooltip-popup--instant",this.skipEnterAnimation);this.popupEl.classList.toggle("tooltip-popup--wrap",this.wrapLabel);this.popupEl.classList.remove("tooltip-popup--closing");this.renderPopupContent();this.schedulePosition();this.isOpen=true}renderPopupContent(){if(!this.popupEl)return;this.popupEl.classList.toggle("tooltip-popup--wrap",this.wrapLabel);const t=u[this.size];const o=this.size==="md"?"ds-control--md":this.size==="sm"?"ds-control--sm":"ds-control--xs";const i="sc-ds-tooltip";const s=document.createElement("div");s.className=`tooltip-inner ${o} ${i}`;const n=t=>{if(!this.shortcutKey||this.shortcutKeyPosition!==t)return;const o=document.createElement("span");o.className=`key-hint-group ${i}`;o.setAttribute("aria-hidden","true");for(const t of v(this.shortcutKey)){const s=document.createElement("span");const n=Array.from(t).length>1?" key-hint--wide":"";s.className=`key-hint${n} ${i}`;const e=document.createElement("span");e.className=`key-hint__label ${i}`;e.textContent=t;s.appendChild(e);o.appendChild(s)}s.appendChild(o)};n("start");const e=O({variant:t,wrap:this.wrapLabel?"wrap":"nowrap",text:this.label});k(e,this.wrapLabel);s.appendChild(e);n("end");this.popupEl.replaceChildren(s)}render(){return i(s,{key:"fbd840d2f87c116ca501c5423fe69a2cc2aa100e",style:{display:"contents"}},i("slot",{key:"1487014ae314d02c6aae43d1da070981e3d9f685",onSlotchange:this.handleSlotChange}))}get el(){return this}static get watchers(){return{label:[{onContentOrPositionChange:0}],size:[{onContentOrPositionChange:0}],side:[{onContentOrPositionChange:0}],align:[{onContentOrPositionChange:0}],sideOffset:[{onContentOrPositionChange:0}],alignOffset:[{onContentOrPositionChange:0}],boundary:[{onContentOrPositionChange:0}],shortcutKey:[{onContentOrPositionChange:0}],shortcutKeyPosition:[{onContentOrPositionChange:0}],wrapLabel:[{onContentOrPositionChange:0}]}}static get style(){return y()}},[262,"ds-tooltip",{label:[1],size:[1],side:[1],align:[1],sideOffset:[8,"side-offset"],alignOffset:[8,"align-offset"],boundary:[1],delay:[8],shortcutKey:[1,"shortcut-key"],shortcutKeyPosition:[1,"shortcut-key-position"],describedBy:[4,"described-by"],wrapLabel:[4,"wrap-label"],presentFrom:[64],dismiss:[64]},undefined,{label:[{onContentOrPositionChange:0}],size:[{onContentOrPositionChange:0}],side:[{onContentOrPositionChange:0}],align:[{onContentOrPositionChange:0}],sideOffset:[{onContentOrPositionChange:0}],alignOffset:[{onContentOrPositionChange:0}],boundary:[{onContentOrPositionChange:0}],shortcutKey:[{onContentOrPositionChange:0}],shortcutKeyPosition:[{onContentOrPositionChange:0}],wrapLabel:[{onContentOrPositionChange:0}]}]);function z(){if(typeof customElements==="undefined"){return}const t=["ds-tooltip","ds-text"];t.forEach((t=>{switch(t){case"ds-tooltip":if(!customElements.get(n(t))){customElements.define(n(t),P)}break;case"ds-text":if(!customElements.get(n(t))){d()}break}}))}z();export{P as T,z as d};
2
- //# sourceMappingURL=p-Cp5Hr7Vz.js.map