@ds-mo/ui 15.6.0 → 15.8.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 (297) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +1 -1
  3. package/dist/agent.json +328 -5
  4. package/dist/angular/ds-navigation-tab-group.d.ts +15 -0
  5. package/dist/angular/ds-navigation-tab-group.js +42 -0
  6. package/dist/angular/ds-select-toggle.d.ts +15 -0
  7. package/dist/angular/ds-select-toggle.js +42 -0
  8. package/dist/angular/ds-table.d.ts +1 -1
  9. package/dist/angular/ds-table.js +3 -3
  10. package/dist/angular/index.d.ts +1 -1
  11. package/dist/angular/index.js +2 -0
  12. package/dist/angular/proxies.d.ts +2 -0
  13. package/dist/angular/proxies.js +2 -0
  14. package/dist/components/ds-agent-activity.js +1 -1
  15. package/dist/components/ds-agent-questionnaire.js +1 -1
  16. package/dist/components/ds-agent-response.js +1 -1
  17. package/dist/components/ds-agent-source-list.js +1 -1
  18. package/dist/components/ds-agent-tool-call.js +1 -1
  19. package/dist/components/ds-attachment-list.js +1 -1
  20. package/dist/components/ds-avatar.js +1 -1
  21. package/dist/components/ds-avatar.js.map +1 -1
  22. package/dist/components/ds-badge.js +1 -1
  23. package/dist/components/ds-banner.js +1 -1
  24. package/dist/components/ds-bar-action.js +1 -1
  25. package/dist/components/ds-bar-action.js.map +1 -1
  26. package/dist/components/ds-bar-nav.js +1 -1
  27. package/dist/components/ds-bar-page-title.js +1 -1
  28. package/dist/components/ds-bar-title.js +1 -1
  29. package/dist/components/ds-bar-workflow.js +1 -1
  30. package/dist/components/ds-bar-workflow.js.map +1 -1
  31. package/dist/components/ds-breadcrumb.js +1 -1
  32. package/dist/components/ds-button-filled.js +1 -1
  33. package/dist/components/ds-button-inverted.js +1 -1
  34. package/dist/components/ds-button-unfilled.js +1 -1
  35. package/dist/components/ds-calendar.js +1 -1
  36. package/dist/components/ds-card-action-center.js +1 -1
  37. package/dist/components/ds-card-chart.js +1 -1
  38. package/dist/components/ds-card-navigation.js +1 -1
  39. package/dist/components/ds-card-overview.js +1 -1
  40. package/dist/components/ds-card-setting.js +1 -1
  41. package/dist/components/ds-card-settings-scope.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-group.js +1 -1
  45. package/dist/components/ds-checkbox.js +1 -1
  46. package/dist/components/ds-chip.js +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-item.js.map +1 -1
  50. package/dist/components/ds-conversation-list-section.js +1 -1
  51. package/dist/components/ds-conversation-list.js +1 -1
  52. package/dist/components/ds-data-customize.js +1 -1
  53. package/dist/components/ds-data-filter.js +1 -1
  54. package/dist/components/ds-data-group.js +1 -1
  55. package/dist/components/ds-data-preferences.js +1 -1
  56. package/dist/components/ds-data-preferences.js.map +1 -1
  57. package/dist/components/ds-data-saved-views.js +1 -1
  58. package/dist/components/ds-data-search.js +1 -1
  59. package/dist/components/ds-data-search.js.map +1 -1
  60. package/dist/components/ds-data-sort.js +1 -1
  61. package/dist/components/ds-data-toolbar.js +1 -1
  62. package/dist/components/ds-empty-state.js +1 -1
  63. package/dist/components/ds-field.js +1 -1
  64. package/dist/components/ds-filter-menu.js +1 -1
  65. package/dist/components/ds-icon.js +1 -1
  66. package/dist/components/ds-inline-banner-settings.js +1 -1
  67. package/dist/components/ds-input-date.js +1 -1
  68. package/dist/components/ds-input-time.js +1 -1
  69. package/dist/components/ds-input.js +1 -1
  70. package/dist/components/ds-map-cluster-marker.js +1 -1
  71. package/dist/components/ds-map-entity-marker.js +1 -1
  72. package/dist/components/ds-markdown.js +1 -1
  73. package/dist/components/ds-menu.js +1 -1
  74. package/dist/components/ds-message-actions.js +1 -1
  75. package/dist/components/ds-message-composer.js +1 -1
  76. package/dist/components/ds-message-scroller.js +1 -1
  77. package/dist/components/ds-message.js +1 -1
  78. package/dist/components/ds-mobile-bar-nav.js +1 -1
  79. package/dist/components/ds-mobile-header.js +1 -1
  80. package/dist/components/ds-mobile-section-switcher.js +1 -1
  81. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  82. package/dist/components/ds-modal.js +1 -1
  83. package/dist/components/ds-navigation-tab-group.d.ts +11 -0
  84. package/dist/components/ds-navigation-tab-group.js +2 -0
  85. package/dist/components/ds-navigation-tab-group.js.map +1 -0
  86. package/dist/components/ds-pagination.js +1 -1
  87. package/dist/components/ds-panel-nav.js +1 -1
  88. package/dist/components/ds-panel-sub-nav.js +1 -1
  89. package/dist/components/ds-panel-tool-header.js +1 -1
  90. package/dist/components/ds-panel-tool-search.js +1 -1
  91. package/dist/components/ds-panel-tool-search.js.map +1 -1
  92. package/dist/components/ds-panel-tools.js +1 -1
  93. package/dist/components/ds-paper-texture.js +1 -1
  94. package/dist/components/ds-radio-tile.js +1 -1
  95. package/dist/components/ds-radio.js +1 -1
  96. package/dist/components/ds-score.js +1 -1
  97. package/dist/components/ds-select-toggle.d.ts +11 -0
  98. package/dist/components/ds-select-toggle.js +2 -0
  99. package/dist/components/ds-select-toggle.js.map +1 -0
  100. package/dist/components/ds-select.js +1 -1
  101. package/dist/components/ds-setting-row-checkbox.js +1 -1
  102. package/dist/components/ds-setting-row-radio.js +1 -1
  103. package/dist/components/ds-setting-row-radio.js.map +1 -1
  104. package/dist/components/ds-setting-row-toggle.js +1 -1
  105. package/dist/components/ds-shell-app.js +1 -1
  106. package/dist/components/ds-shell-app.js.map +1 -1
  107. package/dist/components/ds-shell-page.js +1 -1
  108. package/dist/components/ds-shell-tools.js +1 -1
  109. package/dist/components/ds-skeleton.js +1 -1
  110. package/dist/components/ds-slider.js +1 -1
  111. package/dist/components/ds-slider.js.map +1 -1
  112. package/dist/components/ds-swatch-picker.js +1 -1
  113. package/dist/components/ds-switch.js +1 -1
  114. package/dist/components/ds-tab-group.js +1 -1
  115. package/dist/components/ds-table.js +1 -1
  116. package/dist/components/ds-table.js.map +1 -1
  117. package/dist/components/ds-tag.js +1 -1
  118. package/dist/components/ds-text.js +1 -1
  119. package/dist/components/ds-textarea.js +1 -1
  120. package/dist/components/ds-time-picker.js +1 -1
  121. package/dist/components/ds-toast.js +1 -1
  122. package/dist/components/ds-tooltip-chart.js +1 -1
  123. package/dist/components/ds-tooltip.js +1 -1
  124. package/dist/components/ds-typing-indicator.js +1 -1
  125. package/dist/components/{p--pJyciTI.js → p--_bPiNCd.js} +2 -2
  126. package/dist/components/{p-UJMEz8_O.js → p-3SCy1PHa.js} +2 -2
  127. package/dist/components/{p-kwS-vkau.js → p-5aZVNYQz.js} +2 -2
  128. package/dist/components/{p-BVxK8ce0.js → p-B1dnisok.js} +2 -2
  129. package/dist/components/{p-BZY40-pE.js → p-B7EfrM6C.js} +2 -2
  130. package/dist/components/{p-DObhRLBa.js → p-B9ZhRwE3.js} +2 -2
  131. package/dist/components/{p-Dr5rkAhe.js → p-BAcdqJaa.js} +2 -2
  132. package/dist/components/{p-DbW8S5qe.js → p-BJf49edB.js} +2 -2
  133. package/dist/components/{p-S1Ct3FJV.js → p-BNN9KkXe.js} +2 -2
  134. package/dist/components/{p-7MwoWtTJ.js → p-BREDkBUv.js} +2 -2
  135. package/dist/components/p-BREDkBUv.js.map +1 -0
  136. package/dist/components/{p-pPtjNRqC.js → p-BVsVUnAw.js} +2 -2
  137. package/dist/components/p-BVsVUnAw.js.map +1 -0
  138. package/dist/components/{p-CwdRaJER.js → p-BWJb2rih.js} +2 -2
  139. package/dist/components/{p-d76Ry5nh.js → p-BWnL2SWn.js} +2 -2
  140. package/dist/components/{p-D8OWhnID.js → p-BbvAWFJA.js} +2 -2
  141. package/dist/components/p-BcmJBzB6.js +2 -0
  142. package/dist/components/{p-5-gQbIIz.js.map → p-BcmJBzB6.js.map} +1 -1
  143. package/dist/components/p-BjD1eFx6.js +2 -0
  144. package/dist/components/{p-DYtVsnDS.js.map → p-BjD1eFx6.js.map} +1 -1
  145. package/dist/components/{p-DKGW3gRa.js → p-Bjm-Rk_x.js} +2 -2
  146. package/dist/components/{p-CSxwWcwW.js → p-Bls48_RF.js} +2 -2
  147. package/dist/components/{p-OJ5WeR05.js → p-BqZWKYsS.js} +2 -2
  148. package/dist/components/p-C2e7BkNn.js +2 -0
  149. package/dist/components/p-C2e7BkNn.js.map +1 -0
  150. package/dist/components/p-C4YUkrr0.js +2 -0
  151. package/dist/components/{p-CUYLGe5d.js.map → p-C4YUkrr0.js.map} +1 -1
  152. package/dist/components/{p-BnuNaXR2.js → p-C4t7HnfZ.js} +2 -2
  153. package/dist/components/p-C62g3d5y.js +2 -0
  154. package/dist/components/{p-DdFeWC-e.js.map → p-C62g3d5y.js.map} +1 -1
  155. package/dist/components/p-C6EXrs1S.js +2 -0
  156. package/dist/components/{p-B3o9zn3Y.js.map → p-C6EXrs1S.js.map} +1 -1
  157. package/dist/components/{p-C1ZfBbJ_.js → p-C7_awFtr.js} +2 -2
  158. package/dist/components/p-CCoJ7CBB.js +2 -0
  159. package/dist/components/{p-BNarCFJZ.js.map → p-CCoJ7CBB.js.map} +1 -1
  160. package/dist/components/p-CG4vPDhg.js +2 -0
  161. package/dist/components/{p-BR9Pjp15.js.map → p-CG4vPDhg.js.map} +1 -1
  162. package/dist/components/{p-CElsKlxj.js → p-CJSIvfpo.js} +2 -2
  163. package/dist/components/{p-CElsKlxj.js.map → p-CJSIvfpo.js.map} +1 -1
  164. package/dist/components/p-CJuc20pQ.js +2 -0
  165. package/dist/components/p-CJuc20pQ.js.map +1 -0
  166. package/dist/components/{p-DVsGfz7J.js → p-CWAeg9jl.js} +2 -2
  167. package/dist/components/p-CWc6Blcp.js +2 -0
  168. package/dist/components/{p-B95UP66y.js.map → p-CWc6Blcp.js.map} +1 -1
  169. package/dist/components/{p-BmIllmq2.js → p-CantpOo3.js} +2 -2
  170. package/dist/components/p-D-TeAVxE.js +2 -0
  171. package/dist/components/{p-DcxY_pdJ.js.map → p-D-TeAVxE.js.map} +1 -1
  172. package/dist/components/{p-YC7UM4jH.js → p-D1tmszmN.js} +2 -2
  173. package/dist/components/p-D3JCih82.js +2 -0
  174. package/dist/components/{p-wXKIVUTn.js.map → p-D3JCih82.js.map} +1 -1
  175. package/dist/components/p-DHpcv_Os.js +2 -0
  176. package/dist/components/{p-xMBaOeKa.js.map → p-DHpcv_Os.js.map} +1 -1
  177. package/dist/components/p-DWXpMWIp.js +2 -0
  178. package/dist/components/{p-DP07JCed.js.map → p-DWXpMWIp.js.map} +1 -1
  179. package/dist/components/{p-C6kUn-vb.js → p-DagrkX2v.js} +2 -2
  180. package/dist/components/{p-CaFXrn_8.js → p-DcMbWqTd.js} +2 -2
  181. package/dist/components/{p-B-pkoIX9.js → p-DiyL2sI5.js} +2 -2
  182. package/dist/components/p-Dkh_40bl.js +2 -0
  183. package/dist/components/p-Dkh_40bl.js.map +1 -0
  184. package/dist/components/{p-DXL5D30P.js → p-Du8LT8JS.js} +2 -2
  185. package/dist/components/p-Dvw7N7TH.js +2 -0
  186. package/dist/components/{p-CgQB8Ct5.js.map → p-Dvw7N7TH.js.map} +1 -1
  187. package/dist/components/{p-DfMTDFcE.js → p-IfsszNF0.js} +2 -2
  188. package/dist/components/{p-CbCN9ew9.js → p-QGtBlTMt.js} +2 -2
  189. package/dist/components/p-QU4czL2k.js +2 -0
  190. package/dist/components/p-QU4czL2k.js.map +1 -0
  191. package/dist/components/{p-leZFu-cd.js → p-SXaH5TeC.js} +2 -2
  192. package/dist/components/{p-leZFu-cd.js.map → p-SXaH5TeC.js.map} +1 -1
  193. package/dist/components/p-Tf6odBOV.js +2 -0
  194. package/dist/components/{p-DYGllrVT.js.map → p-Tf6odBOV.js.map} +1 -1
  195. package/dist/components/p-UWU23pbX.js +2 -0
  196. package/dist/components/{p-KA8srEed.js.map → p-UWU23pbX.js.map} +1 -1
  197. package/dist/components/p-YFjXYN8s.js +2 -0
  198. package/dist/components/{p-Ouk6FCxc.js.map → p-YFjXYN8s.js.map} +1 -1
  199. package/dist/components/{p-B9y6azEw.js → p-eKnJNQtL.js} +2 -2
  200. package/dist/components/p-kL4EOsx5.js +2 -0
  201. package/dist/components/p-kL4EOsx5.js.map +1 -0
  202. package/dist/components/{p-DSmDyI2o.js → p-n_OBbh94.js} +2 -2
  203. package/dist/components/{p-CIMyD_6H.js → p-topqlGsI.js} +2 -2
  204. package/dist/components/{p-HfZ1gI2q.js → p-zopMP2ze.js} +2 -2
  205. package/dist/components/{p-HfZ1gI2q.js.map → p-zopMP2ze.js.map} +1 -1
  206. package/dist/docs/components.json +683 -7
  207. package/dist/lib/shell/index.js.map +2 -2
  208. package/dist/lib/shell/shell-responsive.d.ts +2 -0
  209. package/dist/lint/index.js +1 -1
  210. package/dist/mcp-data/registry/data-preferences.json +1 -1
  211. package/dist/mcp-data/registry/data-sort.json +1 -1
  212. package/dist/mcp-data/registry/navigation-tab-group.json +279 -0
  213. package/dist/mcp-data/registry/registry.json +333 -4
  214. package/dist/mcp-data/registry/select-toggle.json +351 -0
  215. package/dist/mcp-data/registry/shell-app.json +2 -1
  216. package/dist/mcp-data/registry/slider.json +6 -5
  217. package/dist/mcp-data/registry/switch.json +2 -2
  218. package/dist/mcp-data/registry/tab-group.json +14 -8
  219. package/dist/mcp-data/registry/table.json +22 -3
  220. package/dist/react/components.d.ts +2 -0
  221. package/dist/react/components.js +2 -0
  222. package/dist/react/ds-navigation-tab-group.d.ts +12 -0
  223. package/dist/react/ds-navigation-tab-group.js +12 -0
  224. package/dist/react/ds-select-toggle.d.ts +12 -0
  225. package/dist/react/ds-select-toggle.js +12 -0
  226. package/dist/styles/table.css +8 -0
  227. package/dist/types/components/NavigationTabGroup/NavigationTabGroup.d.ts +16 -0
  228. package/dist/types/components/SelectToggle/SelectToggle.d.ts +46 -0
  229. package/dist/types/components/ShellApp/ShellApp.d.ts +1 -0
  230. package/dist/types/components/Slider/Slider.d.ts +1 -1
  231. package/dist/types/components/TabGroup/TabGroup.d.ts +2 -2
  232. package/dist/types/components/Table/Table.d.ts +3 -0
  233. package/dist/types/components.d.ts +237 -15
  234. package/dist/types/shell/shell-responsive.d.ts +2 -0
  235. package/dist/vue/components.d.ts +2 -0
  236. package/dist/vue/components.js +2 -0
  237. package/dist/vue/ds-navigation-tab-group.d.ts +3 -0
  238. package/dist/vue/ds-navigation-tab-group.js +16 -0
  239. package/dist/vue/ds-select-toggle.d.ts +3 -0
  240. package/dist/vue/ds-select-toggle.js +19 -0
  241. package/dist/vue/ds-table.js +1 -0
  242. package/package.json +1 -1
  243. package/dist/components/p-5-gQbIIz.js +0 -2
  244. package/dist/components/p-7MwoWtTJ.js.map +0 -1
  245. package/dist/components/p-B3o9zn3Y.js +0 -2
  246. package/dist/components/p-B95UP66y.js +0 -2
  247. package/dist/components/p-BNarCFJZ.js +0 -2
  248. package/dist/components/p-BR9Pjp15.js +0 -2
  249. package/dist/components/p-Bf-BphXP.js +0 -2
  250. package/dist/components/p-Bf-BphXP.js.map +0 -1
  251. package/dist/components/p-BqipGGua.js +0 -2
  252. package/dist/components/p-BqipGGua.js.map +0 -1
  253. package/dist/components/p-CUYLGe5d.js +0 -2
  254. package/dist/components/p-CgGcgMjs.js +0 -2
  255. package/dist/components/p-CgGcgMjs.js.map +0 -1
  256. package/dist/components/p-CgQB8Ct5.js +0 -2
  257. package/dist/components/p-DP07JCed.js +0 -2
  258. package/dist/components/p-DYGllrVT.js +0 -2
  259. package/dist/components/p-DYtVsnDS.js +0 -2
  260. package/dist/components/p-DcxY_pdJ.js +0 -2
  261. package/dist/components/p-DdFeWC-e.js +0 -2
  262. package/dist/components/p-DlCLfwP4.js +0 -2
  263. package/dist/components/p-DlCLfwP4.js.map +0 -1
  264. package/dist/components/p-KA8srEed.js +0 -2
  265. package/dist/components/p-Ouk6FCxc.js +0 -2
  266. package/dist/components/p-pPtjNRqC.js.map +0 -1
  267. package/dist/components/p-wXKIVUTn.js +0 -2
  268. package/dist/components/p-xMBaOeKa.js +0 -2
  269. /package/dist/components/{p--pJyciTI.js.map → p--_bPiNCd.js.map} +0 -0
  270. /package/dist/components/{p-UJMEz8_O.js.map → p-3SCy1PHa.js.map} +0 -0
  271. /package/dist/components/{p-kwS-vkau.js.map → p-5aZVNYQz.js.map} +0 -0
  272. /package/dist/components/{p-BVxK8ce0.js.map → p-B1dnisok.js.map} +0 -0
  273. /package/dist/components/{p-BZY40-pE.js.map → p-B7EfrM6C.js.map} +0 -0
  274. /package/dist/components/{p-DObhRLBa.js.map → p-B9ZhRwE3.js.map} +0 -0
  275. /package/dist/components/{p-Dr5rkAhe.js.map → p-BAcdqJaa.js.map} +0 -0
  276. /package/dist/components/{p-DbW8S5qe.js.map → p-BJf49edB.js.map} +0 -0
  277. /package/dist/components/{p-S1Ct3FJV.js.map → p-BNN9KkXe.js.map} +0 -0
  278. /package/dist/components/{p-CwdRaJER.js.map → p-BWJb2rih.js.map} +0 -0
  279. /package/dist/components/{p-d76Ry5nh.js.map → p-BWnL2SWn.js.map} +0 -0
  280. /package/dist/components/{p-D8OWhnID.js.map → p-BbvAWFJA.js.map} +0 -0
  281. /package/dist/components/{p-DKGW3gRa.js.map → p-Bjm-Rk_x.js.map} +0 -0
  282. /package/dist/components/{p-CSxwWcwW.js.map → p-Bls48_RF.js.map} +0 -0
  283. /package/dist/components/{p-OJ5WeR05.js.map → p-BqZWKYsS.js.map} +0 -0
  284. /package/dist/components/{p-BnuNaXR2.js.map → p-C4t7HnfZ.js.map} +0 -0
  285. /package/dist/components/{p-C1ZfBbJ_.js.map → p-C7_awFtr.js.map} +0 -0
  286. /package/dist/components/{p-DVsGfz7J.js.map → p-CWAeg9jl.js.map} +0 -0
  287. /package/dist/components/{p-BmIllmq2.js.map → p-CantpOo3.js.map} +0 -0
  288. /package/dist/components/{p-YC7UM4jH.js.map → p-D1tmszmN.js.map} +0 -0
  289. /package/dist/components/{p-C6kUn-vb.js.map → p-DagrkX2v.js.map} +0 -0
  290. /package/dist/components/{p-CaFXrn_8.js.map → p-DcMbWqTd.js.map} +0 -0
  291. /package/dist/components/{p-B-pkoIX9.js.map → p-DiyL2sI5.js.map} +0 -0
  292. /package/dist/components/{p-DXL5D30P.js.map → p-Du8LT8JS.js.map} +0 -0
  293. /package/dist/components/{p-DfMTDFcE.js.map → p-IfsszNF0.js.map} +0 -0
  294. /package/dist/components/{p-CbCN9ew9.js.map → p-QGtBlTMt.js.map} +0 -0
  295. /package/dist/components/{p-B9y6azEw.js.map → p-eKnJNQtL.js.map} +0 -0
  296. /package/dist/components/{p-DSmDyI2o.js.map → p-n_OBbh94.js.map} +0 -0
  297. /package/dist/components/{p-CIMyD_6H.js.map → p-topqlGsI.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_PAGE_SIZE_OPTIONS","nonNegativeInteger","value","Number","isFinite","Math","max","trunc","positiveInteger","fallback","resolvePaginationState","state","pageSize","pageSizeMode","totalItems","totalPages","ceil","pageIndex","min","options","pageSizeOptions","length","map","filter","Set","sort","left","right","firstItem","lastItem","paginationCss","paginationId","Pagination","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","fitToPage","fitToPageInactive","fitPageSizeLabel","fitPageSizeTriggerLabel","itemLabel","pageSizeLabel","label","showFirstLastButtons","loading","tableCompact","pageSizeControlId","hasLoaded","componentDidLoad","syncTableCompactObserver","connectedCallback","disconnectedCallback","tableCompactDisconnect","undefined","observeTableCaptionCompact","el","compact","requestPage","resolvedState","dsChange","emit","fitPageSize","resolvedFitPageSize","ariaLabel","previousPageIndex","previousPageSize","previousPageSizeMode","reason","requestPageSize","nextMode","handleKeyDown","event","defaultPrevented","altKey","ctrlKey","metaKey","shiftKey","fromChoiceControl","composedPath","some","node","tagName","includes","key","preventDefault","render","atStart","atEnd","page","announcedRange","announcedPage","pageSizeAriaLabel","String","push","isInactive","h","Host","class","pagination","onKeyDown","as","variant","color","id","size","inputId","ariaLabelledby","triggerLabel","indicator","allowClear","activeFill","hasBorder","onDsChange","stopPropagation","detail","orientation","icon","onDsClick","fontFeature","role"],"sources":["src/wc/components/Pagination/pagination-model.ts","src/wc/components/Pagination/Pagination.css?tag=ds-pagination&encapsulation=scoped","src/wc/components/Pagination/Pagination.tsx"],"sourcesContent":["import type { PaginationPageSizeMode, PaginationState } from './pagination-types';\n\nexport const DEFAULT_PAGE_SIZE_OPTIONS = [25, 50, 100, 200] as const;\n\nexport interface ResolvedPaginationState {\n pageIndex: number;\n pageSize: number;\n pageSizeMode: PaginationPageSizeMode;\n totalItems: number;\n totalPages: number;\n firstItem: number;\n lastItem: number;\n pageSizeOptions: number[];\n}\n\nfunction nonNegativeInteger(value: number): number {\n return Number.isFinite(value) ? Math.max(0, Math.trunc(value)) : 0;\n}\n\nfunction positiveInteger(value: number, fallback: number): number {\n return Number.isFinite(value) && value > 0 ? Math.trunc(value) : fallback;\n}\n\nexport function resolvePaginationState(\n state: Pick<\n PaginationState,\n 'pageIndex' | 'pageSize' | 'pageSizeMode' | 'totalItems' | 'pageSizeOptions'\n >\n): ResolvedPaginationState {\n const pageSize = positiveInteger(state.pageSize, DEFAULT_PAGE_SIZE_OPTIONS[0]);\n const pageSizeMode = state.pageSizeMode === 'fit' ? 'fit' : 'fixed';\n const totalItems = nonNegativeInteger(state.totalItems);\n const totalPages = Math.max(1, Math.ceil(totalItems / pageSize));\n const pageIndex = Math.min(nonNegativeInteger(state.pageIndex), totalPages - 1);\n const options = (\n state.pageSizeOptions?.length ? state.pageSizeOptions : DEFAULT_PAGE_SIZE_OPTIONS\n )\n .map(value => positiveInteger(value, 0))\n .filter(value => value > 0);\n const pageSizeOptions = [\n ...new Set(pageSizeMode === 'fixed' ? [...options, pageSize] : options),\n ].sort((left, right) => left - right);\n const firstItem = totalItems === 0 ? 0 : pageIndex * pageSize + 1;\n const lastItem = totalItems === 0 ? 0 : Math.min(totalItems, firstItem + pageSize - 1);\n\n return {\n pageIndex,\n pageSize,\n pageSizeMode,\n totalItems,\n totalPages,\n firstItem,\n lastItem,\n pageSizeOptions,\n };\n}\n","@import '../../utils/visually-hidden.css';\n\n:host {\n display: block;\n box-sizing: border-box;\n min-width: 0;\n max-width: 100%;\n overflow-x: auto;\n scrollbar-width: none;\n}\n\n:host::-webkit-scrollbar {\n display: none;\n}\n\n.pagination,\n.pagination__page-size,\n.pagination__navigation {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n}\n\n.pagination {\n width: max-content;\n min-width: 100%;\n gap: var(--dimension-space-100);\n}\n\n.pagination__page-size,\n.pagination__navigation {\n flex: 0 0 auto;\n}\n\n.pagination__page-size {\n gap: 0;\n}\n\n.pagination__navigation {\n gap: var(--dimension-space-050);\n}\n\n.pagination__page,\n.pagination__label {\n display: inline-flex;\n align-items: center;\n flex: 0 0 auto;\n white-space: nowrap;\n}\n\n.pagination .pagination__page-size-select {\n --ds-select-fg-active: var(--color-foreground-secondary);\n}\n\n.pagination__page {\n justify-content: center;\n min-inline-size: 0;\n padding-inline: var(--dimension-space-100);\n}\n\n.pagination--table-compact .pagination__boundary {\n display: none;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Prop, State } from '@stencil/core';\nimport { observeTableCaptionCompact } from '../../utils/table-caption-compact';\nimport { resolvePaginationState } from './pagination-model';\nimport type { PaginationChangeDetail, PaginationPageSizeMode } from './pagination-types';\n\nlet paginationId = 0;\n\n@Component({\n tag: 'ds-pagination',\n styleUrl: 'Pagination.css',\n scoped: true,\n})\nexport class Pagination {\n @Element() el!: HTMLElement;\n\n /** Controlled zero-based page index. */\n @Prop() pageIndex: number = 0;\n /** Controlled number of top-level items on a full page. */\n @Prop() pageSize: number = 25;\n /** Whether pageSize is a fixed choice or a measured Fit snapshot. */\n @Prop() pageSizeMode: PaginationPageSizeMode = 'fixed';\n /** Controlled total number of top-level items across every page. */\n @Prop() totalItems: number = 0;\n /** Available page sizes. Assign arrays through JavaScript. */\n @Prop() pageSizeOptions: number[] = [25, 50, 100, 200];\n /** Include the Fit to page choice. */\n @Prop() fitToPage: boolean = false;\n /** Keep the Fit to page choice visible but unavailable. */\n @Prop() fitToPageInactive: boolean = false;\n /** Effective whole-item capacity to request when Fit is selected. */\n @Prop() fitPageSize: number | undefined;\n /** Full choice-list label for Fit. */\n @Prop() fitPageSizeLabel: string = 'Fit to page';\n /** Compact closed-trigger label while Fit is selected. */\n @Prop() fitPageSizeTriggerLabel: string = 'Fit';\n /** Localized plural noun used by assistive range announcements. */\n @Prop() itemLabel: string = 'items';\n /** Visible page-size control label. */\n @Prop() pageSizeLabel: string = 'Items';\n /** Accessible page-size control label. Defaults to “{pageSizeLabel} per page”. */\n @Prop() pageSizeAriaLabel: string | undefined;\n /** Accessible name for the pagination navigation region. */\n @Prop() label: string = 'Pagination';\n /** Include direct first-page and last-page controls. */\n @Prop() showFirstLastButtons: boolean = false;\n /** Prevent interaction while the owner replaces the current data page. */\n @Prop() loading: boolean = false;\n\n /** Emits the complete next controlled state after a page or page-size request. */\n @Event() dsChange!: EventEmitter<PaginationChangeDetail>;\n\n @State() private tableCompact = false;\n\n private readonly pageSizeControlId = `ds-pagination-${++paginationId}-page-size`;\n private tableCompactDisconnect: (() => void) | undefined;\n private hasLoaded = false;\n\n componentDidLoad(): void {\n this.hasLoaded = true;\n this.syncTableCompactObserver();\n }\n\n connectedCallback(): void {\n if (this.hasLoaded) this.syncTableCompactObserver();\n }\n\n disconnectedCallback(): void {\n this.tableCompactDisconnect?.();\n this.tableCompactDisconnect = undefined;\n }\n\n private syncTableCompactObserver(): void {\n this.tableCompactDisconnect?.();\n this.tableCompactDisconnect = observeTableCaptionCompact(this.el, compact => {\n if (this.tableCompact !== compact) this.tableCompact = compact;\n });\n }\n\n private requestPage(pageIndex: number): void {\n const state = this.resolvedState;\n if (\n this.loading ||\n pageIndex === state.pageIndex ||\n pageIndex < 0 ||\n pageIndex >= state.totalPages\n ) {\n return;\n }\n this.dsChange.emit({\n pageIndex,\n pageSize: state.pageSize,\n pageSizeMode: state.pageSizeMode,\n totalItems: state.totalItems,\n pageSizeOptions: state.pageSizeOptions,\n fitToPage: this.fitToPage,\n fitToPageInactive: this.fitToPageInactive,\n fitPageSize: this.resolvedFitPageSize,\n fitPageSizeLabel: this.fitPageSizeLabel,\n fitPageSizeTriggerLabel: this.fitPageSizeTriggerLabel,\n itemLabel: this.itemLabel,\n pageSizeLabel: this.pageSizeLabel,\n ariaLabel: this.label,\n showFirstLastButtons: this.showFirstLastButtons,\n previousPageIndex: state.pageIndex,\n previousPageSize: state.pageSize,\n previousPageSizeMode: state.pageSizeMode,\n reason: 'page',\n });\n }\n\n private requestPageSize(value: string | string[]): void {\n if (this.loading || typeof value !== 'string' || (value === 'fit' && this.fitToPageInactive))\n return;\n const state = this.resolvedState;\n const nextMode: PaginationPageSizeMode = value === 'fit' ? 'fit' : 'fixed';\n const pageSize = nextMode === 'fit' ? this.resolvedFitPageSize : Number(value);\n if (!pageSize || (pageSize === state.pageSize && nextMode === state.pageSizeMode)) return;\n this.dsChange.emit({\n pageIndex: 0,\n pageSize: Math.trunc(pageSize),\n pageSizeMode: nextMode,\n totalItems: state.totalItems,\n pageSizeOptions: state.pageSizeOptions,\n fitToPage: this.fitToPage,\n fitToPageInactive: this.fitToPageInactive,\n fitPageSize: this.resolvedFitPageSize,\n fitPageSizeLabel: this.fitPageSizeLabel,\n fitPageSizeTriggerLabel: this.fitPageSizeTriggerLabel,\n itemLabel: this.itemLabel,\n pageSizeLabel: this.pageSizeLabel,\n ariaLabel: this.label,\n showFirstLastButtons: this.showFirstLastButtons,\n previousPageIndex: state.pageIndex,\n previousPageSize: state.pageSize,\n previousPageSizeMode: state.pageSizeMode,\n reason: 'page-size',\n });\n }\n\n private handleKeyDown(event: KeyboardEvent): void {\n if (\n event.defaultPrevented ||\n event.altKey ||\n event.ctrlKey ||\n event.metaKey ||\n event.shiftKey\n ) {\n return;\n }\n const fromChoiceControl = event\n .composedPath()\n .some(\n node =>\n node instanceof HTMLElement &&\n (node.tagName === 'DS-SELECT' || ['INPUT', 'SELECT', 'TEXTAREA'].includes(node.tagName))\n );\n if (fromChoiceControl || (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight')) return;\n const state = this.resolvedState;\n const pageIndex = event.key === 'ArrowLeft' ? state.pageIndex - 1 : state.pageIndex + 1;\n if (this.loading || pageIndex < 0 || pageIndex >= state.totalPages) return;\n event.preventDefault();\n this.requestPage(pageIndex);\n }\n\n private get resolvedFitPageSize(): number | undefined {\n return Number.isFinite(this.fitPageSize) && Number(this.fitPageSize) > 0\n ? Math.trunc(Number(this.fitPageSize))\n : undefined;\n }\n\n private get resolvedState() {\n return resolvePaginationState({\n pageIndex: this.pageIndex,\n pageSize: this.pageSize,\n pageSizeMode: this.pageSizeMode,\n totalItems: this.totalItems,\n pageSizeOptions: this.pageSizeOptions,\n });\n }\n\n render() {\n const state = this.resolvedState;\n const atStart = state.pageIndex === 0;\n const atEnd = state.pageIndex === state.totalPages - 1;\n const page = `${state.pageIndex + 1} of ${state.totalPages}`;\n const announcedRange = `${state.firstItem}–${state.lastItem} of ${state.totalItems}`;\n const announcedPage = `Page ${state.pageIndex + 1} of ${state.totalPages}`;\n const pageSizeAriaLabel = this.pageSizeAriaLabel ?? `${this.pageSizeLabel} per page`;\n const options: Array<{ label: string; value: string; isInactive?: boolean }> =\n state.pageSizeOptions.map(value => ({ label: String(value), value: String(value) }));\n if (this.fitToPage) {\n options.push({\n label: this.fitPageSizeLabel,\n value: 'fit',\n isInactive: this.fitToPageInactive || this.resolvedFitPageSize === undefined,\n });\n }\n\n return (\n <Host>\n <nav\n class={{\n pagination: true,\n 'pagination--table-compact': this.tableCompact,\n }}\n aria-label={this.label}\n aria-busy={this.loading ? 'true' : undefined}\n onKeyDown={event => this.handleKeyDown(event)}\n >\n <div class=\"pagination__page-size\">\n <ds-text\n class=\"pagination__label\"\n as=\"span\"\n variant=\"text-body-medium\"\n color=\"secondary\"\n aria-hidden=\"true\"\n >\n {this.pageSizeLabel}:\n </ds-text>\n <span id={`${this.pageSizeControlId}-label`} class=\"ds-visually-hidden\">\n {pageSizeAriaLabel}\n </span>\n <ds-select\n class=\"pagination__page-size-select\"\n size=\"md\"\n inputId={this.pageSizeControlId}\n ariaLabelledby={`${this.pageSizeControlId}-label`}\n options={options}\n value={state.pageSizeMode === 'fit' ? 'fit' : String(state.pageSize)}\n triggerLabel={state.pageSizeMode === 'fit' ? this.fitPageSizeTriggerLabel : undefined}\n indicator=\"up-down\"\n allowClear={false}\n activeFill={false}\n hasBorder={false}\n isInactive={this.loading}\n onDsChange={event => {\n event.stopPropagation();\n this.requestPageSize(event.detail);\n }}\n />\n </div>\n <ds-divider\n class=\"pagination__divider\"\n orientation=\"vertical\"\n length=\"var(--dimension-size-250)\"\n />\n <div class=\"pagination__navigation\">\n {this.showFirstLastButtons ? (\n <ds-button-unfilled\n class=\"pagination__boundary\"\n variant=\"icon\"\n size=\"md\"\n icon=\"ChevronLeftDouble\"\n ariaLabel=\"First page\"\n hasBorder={false}\n isInactive={this.loading || atStart}\n onDsClick={() => this.requestPage(0)}\n />\n ) : null}\n <ds-button-unfilled\n variant=\"icon\"\n size=\"md\"\n icon=\"ChevronLeft\"\n ariaLabel=\"Previous page\"\n hasBorder={false}\n isInactive={this.loading || atStart}\n onDsClick={() => this.requestPage(state.pageIndex - 1)}\n />\n <ds-text\n class=\"pagination__page\"\n as=\"span\"\n variant=\"text-body-medium\"\n color=\"secondary\"\n fontFeature=\"tabular-nums\"\n >\n {page}\n </ds-text>\n <ds-button-unfilled\n variant=\"icon\"\n size=\"md\"\n icon=\"ChevronRight\"\n ariaLabel=\"Next page\"\n hasBorder={false}\n isInactive={this.loading || atEnd}\n onDsClick={() => this.requestPage(state.pageIndex + 1)}\n />\n {this.showFirstLastButtons ? (\n <ds-button-unfilled\n class=\"pagination__boundary\"\n variant=\"icon\"\n size=\"md\"\n icon=\"ChevronRightDouble\"\n ariaLabel=\"Last page\"\n hasBorder={false}\n isInactive={this.loading || atEnd}\n onDsClick={() => this.requestPage(state.totalPages - 1)}\n />\n ) : null}\n </div>\n <span class=\"ds-visually-hidden\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\">\n {announcedRange} {this.itemLabel}. {announcedPage}.\n </span>\n </nav>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["DEFAULT_PAGE_SIZE_OPTIONS","nonNegativeInteger","value","Number","isFinite","Math","max","trunc","positiveInteger","fallback","resolvePaginationState","state","pageSize","pageSizeMode","totalItems","totalPages","ceil","pageIndex","min","options","pageSizeOptions","length","map","filter","Set","sort","left","right","firstItem","lastItem","paginationCss","paginationId","Pagination","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","fitToPage","fitToPageInactive","fitPageSizeLabel","fitPageSizeTriggerLabel","itemLabel","pageSizeLabel","label","showFirstLastButtons","loading","tableCompact","pageSizeControlId","hasLoaded","componentDidLoad","syncTableCompactObserver","connectedCallback","disconnectedCallback","tableCompactDisconnect","undefined","observeTableCaptionCompact","el","compact","requestPage","resolvedState","dsChange","emit","fitPageSize","resolvedFitPageSize","ariaLabel","previousPageIndex","previousPageSize","previousPageSizeMode","reason","requestPageSize","nextMode","handleKeyDown","event","defaultPrevented","altKey","ctrlKey","metaKey","shiftKey","fromChoiceControl","composedPath","some","node","tagName","includes","key","preventDefault","render","atStart","atEnd","page","announcedRange","announcedPage","pageSizeAriaLabel","String","push","isInactive","h","Host","class","pagination","onKeyDown","as","variant","color","id","size","inputId","ariaLabelledby","triggerLabel","indicator","allowClear","activeFill","hasBorder","onDsChange","stopPropagation","detail","orientation","icon","onDsClick","fontFeature","role"],"sources":["src/wc/components/Pagination/pagination-model.ts","src/wc/components/Pagination/Pagination.css?tag=ds-pagination&encapsulation=scoped","src/wc/components/Pagination/Pagination.tsx"],"sourcesContent":["import type { PaginationPageSizeMode, PaginationState } from './pagination-types';\n\nexport const DEFAULT_PAGE_SIZE_OPTIONS = [25, 50, 100, 200] as const;\n\nexport interface ResolvedPaginationState {\n pageIndex: number;\n pageSize: number;\n pageSizeMode: PaginationPageSizeMode;\n totalItems: number;\n totalPages: number;\n firstItem: number;\n lastItem: number;\n pageSizeOptions: number[];\n}\n\nfunction nonNegativeInteger(value: number): number {\n return Number.isFinite(value) ? Math.max(0, Math.trunc(value)) : 0;\n}\n\nfunction positiveInteger(value: number, fallback: number): number {\n return Number.isFinite(value) && value > 0 ? Math.trunc(value) : fallback;\n}\n\nexport function resolvePaginationState(\n state: Pick<\n PaginationState,\n 'pageIndex' | 'pageSize' | 'pageSizeMode' | 'totalItems' | 'pageSizeOptions'\n >\n): ResolvedPaginationState {\n const pageSize = positiveInteger(state.pageSize, DEFAULT_PAGE_SIZE_OPTIONS[0]);\n const pageSizeMode = state.pageSizeMode === 'fit' ? 'fit' : 'fixed';\n const totalItems = nonNegativeInteger(state.totalItems);\n const totalPages = Math.max(1, Math.ceil(totalItems / pageSize));\n const pageIndex = Math.min(nonNegativeInteger(state.pageIndex), totalPages - 1);\n const options = (\n state.pageSizeOptions?.length ? state.pageSizeOptions : DEFAULT_PAGE_SIZE_OPTIONS\n )\n .map(value => positiveInteger(value, 0))\n .filter(value => value > 0);\n const pageSizeOptions = [\n ...new Set(pageSizeMode === 'fixed' ? [...options, pageSize] : options),\n ].sort((left, right) => left - right);\n const firstItem = totalItems === 0 ? 0 : pageIndex * pageSize + 1;\n const lastItem = totalItems === 0 ? 0 : Math.min(totalItems, firstItem + pageSize - 1);\n\n return {\n pageIndex,\n pageSize,\n pageSizeMode,\n totalItems,\n totalPages,\n firstItem,\n lastItem,\n pageSizeOptions,\n };\n}\n","@import '../../utils/visually-hidden.css';\n\n:host {\n display: block;\n box-sizing: border-box;\n min-width: 0;\n max-width: 100%;\n overflow-x: auto;\n scrollbar-width: none;\n}\n\n:host::-webkit-scrollbar {\n display: none;\n}\n\n.pagination,\n.pagination__page-size,\n.pagination__navigation {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n}\n\n.pagination {\n width: max-content;\n min-width: 100%;\n gap: var(--dimension-space-100);\n}\n\n.pagination__page-size,\n.pagination__navigation {\n flex: 0 0 auto;\n}\n\n.pagination__page-size {\n gap: 0;\n}\n\n.pagination__navigation {\n gap: var(--dimension-space-050);\n}\n\n.pagination__page,\n.pagination__label {\n display: inline-flex;\n align-items: center;\n flex: 0 0 auto;\n white-space: nowrap;\n}\n\n.pagination .pagination__page-size-select {\n --ds-select-fg-active: var(--color-foreground-secondary);\n}\n\n.pagination__page {\n justify-content: center;\n min-inline-size: 0;\n padding-inline: var(--dimension-space-100);\n}\n\n.pagination--table-compact .pagination__boundary {\n display: none;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Prop, State } from '@stencil/core';\nimport { observeTableCaptionCompact } from '../../utils/table-caption-compact';\nimport { resolvePaginationState } from './pagination-model';\nimport type { PaginationChangeDetail, PaginationPageSizeMode } from './pagination-types';\n\nlet paginationId = 0;\n\n@Component({\n tag: 'ds-pagination',\n styleUrl: 'Pagination.css',\n scoped: true,\n})\nexport class Pagination {\n @Element() el!: HTMLElement;\n\n /** Controlled zero-based page index. */\n @Prop() pageIndex: number = 0;\n /** Controlled number of top-level items on a full page. */\n @Prop() pageSize: number = 25;\n /** Whether pageSize is a fixed choice or a measured Fit snapshot. */\n @Prop() pageSizeMode: PaginationPageSizeMode = 'fixed';\n /** Controlled total number of top-level items across every page. */\n @Prop() totalItems: number = 0;\n /** Available page sizes. Assign arrays through JavaScript. */\n @Prop() pageSizeOptions: number[] = [25, 50, 100, 200];\n /** Include the Fit to page choice. */\n @Prop() fitToPage: boolean = false;\n /** Keep the Fit to page choice visible but unavailable. */\n @Prop() fitToPageInactive: boolean = false;\n /** Effective whole-item capacity to request when Fit is selected. */\n @Prop() fitPageSize: number | undefined;\n /** Full choice-list label for Fit. */\n @Prop() fitPageSizeLabel: string = 'Fit to page';\n /** Compact closed-trigger label while Fit is selected. */\n @Prop() fitPageSizeTriggerLabel: string = 'Fit';\n /** Localized plural noun used by assistive range announcements. */\n @Prop() itemLabel: string = 'items';\n /** Visible page-size control label. */\n @Prop() pageSizeLabel: string = 'Items';\n /** Accessible page-size control label. Defaults to “{pageSizeLabel} per page”. */\n @Prop() pageSizeAriaLabel: string | undefined;\n /** Accessible name for the pagination navigation region. */\n @Prop() label: string = 'Pagination';\n /** Include direct first-page and last-page controls. */\n @Prop() showFirstLastButtons: boolean = false;\n /** Prevent interaction while the owner replaces the current data page. */\n @Prop() loading: boolean = false;\n\n /** Emits the complete next controlled state after a page or page-size request. */\n @Event() dsChange!: EventEmitter<PaginationChangeDetail>;\n\n @State() private tableCompact = false;\n\n private readonly pageSizeControlId = `ds-pagination-${++paginationId}-page-size`;\n private tableCompactDisconnect: (() => void) | undefined;\n private hasLoaded = false;\n\n componentDidLoad(): void {\n this.hasLoaded = true;\n this.syncTableCompactObserver();\n }\n\n connectedCallback(): void {\n if (this.hasLoaded) this.syncTableCompactObserver();\n }\n\n disconnectedCallback(): void {\n this.tableCompactDisconnect?.();\n this.tableCompactDisconnect = undefined;\n }\n\n private syncTableCompactObserver(): void {\n this.tableCompactDisconnect?.();\n this.tableCompactDisconnect = observeTableCaptionCompact(this.el, compact => {\n if (this.tableCompact !== compact) this.tableCompact = compact;\n });\n }\n\n private requestPage(pageIndex: number): void {\n const state = this.resolvedState;\n if (\n this.loading ||\n pageIndex === state.pageIndex ||\n pageIndex < 0 ||\n pageIndex >= state.totalPages\n ) {\n return;\n }\n this.dsChange.emit({\n pageIndex,\n pageSize: state.pageSize,\n pageSizeMode: state.pageSizeMode,\n totalItems: state.totalItems,\n pageSizeOptions: state.pageSizeOptions,\n fitToPage: this.fitToPage,\n fitToPageInactive: this.fitToPageInactive,\n fitPageSize: this.resolvedFitPageSize,\n fitPageSizeLabel: this.fitPageSizeLabel,\n fitPageSizeTriggerLabel: this.fitPageSizeTriggerLabel,\n itemLabel: this.itemLabel,\n pageSizeLabel: this.pageSizeLabel,\n ariaLabel: this.label,\n showFirstLastButtons: this.showFirstLastButtons,\n previousPageIndex: state.pageIndex,\n previousPageSize: state.pageSize,\n previousPageSizeMode: state.pageSizeMode,\n reason: 'page',\n });\n }\n\n private requestPageSize(value: string | string[]): void {\n if (this.loading || typeof value !== 'string' || (value === 'fit' && this.fitToPageInactive))\n return;\n const state = this.resolvedState;\n const nextMode: PaginationPageSizeMode = value === 'fit' ? 'fit' : 'fixed';\n const pageSize = nextMode === 'fit' ? this.resolvedFitPageSize : Number(value);\n if (!pageSize || (pageSize === state.pageSize && nextMode === state.pageSizeMode)) return;\n this.dsChange.emit({\n pageIndex: 0,\n pageSize: Math.trunc(pageSize),\n pageSizeMode: nextMode,\n totalItems: state.totalItems,\n pageSizeOptions: state.pageSizeOptions,\n fitToPage: this.fitToPage,\n fitToPageInactive: this.fitToPageInactive,\n fitPageSize: this.resolvedFitPageSize,\n fitPageSizeLabel: this.fitPageSizeLabel,\n fitPageSizeTriggerLabel: this.fitPageSizeTriggerLabel,\n itemLabel: this.itemLabel,\n pageSizeLabel: this.pageSizeLabel,\n ariaLabel: this.label,\n showFirstLastButtons: this.showFirstLastButtons,\n previousPageIndex: state.pageIndex,\n previousPageSize: state.pageSize,\n previousPageSizeMode: state.pageSizeMode,\n reason: 'page-size',\n });\n }\n\n private handleKeyDown(event: KeyboardEvent): void {\n if (\n event.defaultPrevented ||\n event.altKey ||\n event.ctrlKey ||\n event.metaKey ||\n event.shiftKey\n ) {\n return;\n }\n const fromChoiceControl = event\n .composedPath()\n .some(\n node =>\n node instanceof HTMLElement &&\n (node.tagName === 'DS-SELECT' || ['INPUT', 'SELECT', 'TEXTAREA'].includes(node.tagName))\n );\n if (fromChoiceControl || (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight')) return;\n const state = this.resolvedState;\n const pageIndex = event.key === 'ArrowLeft' ? state.pageIndex - 1 : state.pageIndex + 1;\n if (this.loading || pageIndex < 0 || pageIndex >= state.totalPages) return;\n event.preventDefault();\n this.requestPage(pageIndex);\n }\n\n private get resolvedFitPageSize(): number | undefined {\n return Number.isFinite(this.fitPageSize) && Number(this.fitPageSize) > 0\n ? Math.trunc(Number(this.fitPageSize))\n : undefined;\n }\n\n private get resolvedState() {\n return resolvePaginationState({\n pageIndex: this.pageIndex,\n pageSize: this.pageSize,\n pageSizeMode: this.pageSizeMode,\n totalItems: this.totalItems,\n pageSizeOptions: this.pageSizeOptions,\n });\n }\n\n render() {\n const state = this.resolvedState;\n const atStart = state.pageIndex === 0;\n const atEnd = state.pageIndex === state.totalPages - 1;\n const page = `${state.pageIndex + 1} of ${state.totalPages}`;\n const announcedRange = `${state.firstItem}–${state.lastItem} of ${state.totalItems}`;\n const announcedPage = `Page ${state.pageIndex + 1} of ${state.totalPages}`;\n const pageSizeAriaLabel = this.pageSizeAriaLabel ?? `${this.pageSizeLabel} per page`;\n const options: Array<{ label: string; value: string; isInactive?: boolean }> =\n state.pageSizeOptions.map(value => ({ label: String(value), value: String(value) }));\n if (this.fitToPage) {\n options.push({\n label: this.fitPageSizeLabel,\n value: 'fit',\n isInactive: this.fitToPageInactive || this.resolvedFitPageSize === undefined,\n });\n }\n\n return (\n <Host>\n <nav\n class={{\n pagination: true,\n 'pagination--table-compact': this.tableCompact,\n }}\n aria-label={this.label}\n aria-busy={this.loading ? 'true' : undefined}\n onKeyDown={event => this.handleKeyDown(event)}\n >\n <div class=\"pagination__page-size\">\n <ds-text\n class=\"pagination__label\"\n as=\"span\"\n variant=\"text-body-medium\"\n color=\"secondary\"\n aria-hidden=\"true\"\n >\n {this.pageSizeLabel}:\n </ds-text>\n <span id={`${this.pageSizeControlId}-label`} class=\"ds-visually-hidden\">\n {pageSizeAriaLabel}\n </span>\n <ds-select\n class=\"pagination__page-size-select\"\n size=\"md\"\n inputId={this.pageSizeControlId}\n ariaLabelledby={`${this.pageSizeControlId}-label`}\n options={options}\n value={state.pageSizeMode === 'fit' ? 'fit' : String(state.pageSize)}\n triggerLabel={state.pageSizeMode === 'fit' ? this.fitPageSizeTriggerLabel : undefined}\n indicator=\"up-down\"\n allowClear={false}\n activeFill={false}\n hasBorder={false}\n isInactive={this.loading}\n onDsChange={event => {\n event.stopPropagation();\n this.requestPageSize(event.detail);\n }}\n />\n </div>\n <ds-divider\n class=\"pagination__divider\"\n orientation=\"vertical\"\n length=\"var(--dimension-size-250)\"\n />\n <div class=\"pagination__navigation\">\n {this.showFirstLastButtons ? (\n <ds-button-unfilled\n class=\"pagination__boundary\"\n variant=\"icon\"\n size=\"md\"\n icon=\"ChevronLeftDouble\"\n ariaLabel=\"First page\"\n hasBorder={false}\n isInactive={this.loading || atStart}\n onDsClick={() => this.requestPage(0)}\n />\n ) : null}\n <ds-button-unfilled\n variant=\"icon\"\n size=\"md\"\n icon=\"ChevronLeft\"\n ariaLabel=\"Previous page\"\n hasBorder={false}\n isInactive={this.loading || atStart}\n onDsClick={() => this.requestPage(state.pageIndex - 1)}\n />\n <ds-text\n class=\"pagination__page\"\n as=\"span\"\n variant=\"text-body-medium\"\n color=\"secondary\"\n fontFeature=\"tabular-nums\"\n >\n {page}\n </ds-text>\n <ds-button-unfilled\n variant=\"icon\"\n size=\"md\"\n icon=\"ChevronRight\"\n ariaLabel=\"Next page\"\n hasBorder={false}\n isInactive={this.loading || atEnd}\n onDsClick={() => this.requestPage(state.pageIndex + 1)}\n />\n {this.showFirstLastButtons ? (\n <ds-button-unfilled\n class=\"pagination__boundary\"\n variant=\"icon\"\n size=\"md\"\n icon=\"ChevronRightDouble\"\n ariaLabel=\"Last page\"\n hasBorder={false}\n isInactive={this.loading || atEnd}\n onDsClick={() => this.requestPage(state.totalPages - 1)}\n />\n ) : null}\n </div>\n <span class=\"ds-visually-hidden\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\">\n {announcedRange} {this.itemLabel}. {announcedPage}.\n </span>\n </nav>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{p as e,H as i,c as s,h as n,a as o,t}from"./index.js";import{A as r,r as d,c,d as a}from"./p-BJf49edB.js";import{C as l}from"./p-DlsjHRU3.js";import{A as u}from"./p-CwUXroLs.js";import{d as h}from"./p-BWJb2rih.js";import{d as m}from"./p-kL4EOsx5.js";import{d as f}from"./p-BVsVUnAw.js";import{d as p}from"./p-0XTyQNRG.js";import{d as v}from"./p-eKnJNQtL.js";import{d as g}from"./p-C2e7BkNn.js";import{d as b}from"./p-BWnL2SWn.js";import{d as x}from"./p-BbvAWFJA.js";import{a as w,b as _,T as y}from"./p-CeXf9-X3.js";import{c as k,r as C}from"./p-DhKvqh5G.js";import{r as P}from"./p-ioGH5SoA.js";import{C as z,a as A}from"./p-CuwopElg.js";function I(e){return"variant"in e&&e.variant==="swatch-picker"}function T(e){return I(e)}function D(e){return e.map((e=>{if(I(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,...e.trailingToggle?{trailingToggle:{...e.trailingToggle}}:{},...e.trailingActions?{trailingActions:e.trailingActions.map((e=>({...e})))}:{}})))}}))}function B(e,i){if(!e[i]?.reorderable)return null;let s=i;while(s>0&&e[s-1]?.reorderable)s-=1;let n=i;while(n<e.length-1&&e[n+1]?.reorderable)n+=1;return{start:s,end:n}}function j(e,i,s){const n=B(e,i);if(!n)return null;const o=Math.min(Math.max(s,n.start),n.end+1);let t=o;if(i<t)t-=1;if(t===i||t<n.start||t>n.end)return null;const r=[...e];const[d]=r.splice(i,1);r.splice(t,0,d);return r}function H(e,i,s){if(s===0)return null;return j(e,i,i+(s<0?s:s+1))}function O(e,i){let s=i;for(let i=0;i<e.length;i+=1){const n=e[i];if(T(n))continue;if(s<n.items.length){return{sectionIndex:i,itemIndex:s,items:n.items}}s-=n.items.length}return null}function M(e,i,s,n){const o=e[i];if(!o)return null;const t=s.indexOf(o);if(t<0){const e=o.value;const t=e?s.findIndex((i=>i.value===e)):-1;if(t<0)return null;return{item:o,fromIndex:i,toIndex:t,sectionIndex:n,items:s}}return{item:o,fromIndex:i,toIndex:t,sectionIndex:n,items:s}}const R=()=>`.sc-ds-menu-h,.sc-ds-menu:where(.ds-table),.sc-ds-menu:where(.tooltip-popup),.sc-ds-menu:where(.ds-radius){--ds-radius-control:var(--dimension-radius-025);--ds-radius-card:var(--dimension-radius-050);--ds-radius-modal:var(--dimension-radius-050);--ds-radius-menu:var(--dimension-radius-075);--ds-radius-tooltip-control:var(--dimension-radius-025);--ds-radius-tooltip-menu:var(--dimension-radius-075);--ds-radius-table:var(--dimension-radius-050)}@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-chrome.sc-ds-menu-h,.ds-interaction-fill--on-chrome.sc-ds-menu{--ds-interaction-hover:var(--color-chrome-interaction-hover);--ds-interaction-pressed:var(--color-chrome-interaction-pressed);--ds-interaction-active:var(--color-chrome-interaction-active);--ds-focus-ring-color:var(--color-chrome-interaction-focus)}.ds-interaction-fill--on-navigation.sc-ds-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)}.ds-interaction-fill.ds-interaction-fill--surface-open.sc-ds-menu-h:not(:disabled)::after,.ds-interaction-fill.ds-interaction-fill--surface-open.sc-ds-menu:not(:disabled)::after{background:var(--ds-interaction-pressed)}@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--surface-open.sc-ds-menu-h:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill--surface-open.sc-ds-menu:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after{outline:var(--dimension-stroke-width-025) dashed var(--ds-forced-color-control-boundary);outline-offset:calc(-1 * var(--dimension-stroke-width-025))}.ds-interaction-fill--selected.sc-ds-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(--ds-radius-control)}.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(--ds-chrome-space-sm-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(--ds-radius-menu);box-shadow:var(--effect-shadow-elevated-floating);color:var(--color-foreground-secondary);animation:dsChoiceFadeIn var(--effect-motion-short-2) forwards;backface-visibility:hidden;will-change:transform;text-align:start}.ds-choice-popup.sc-ds-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}}@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-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)}.select-option-row.sc-ds-menu{display:flex;flex-direction:column;min-width:0}.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.ds-control--xs.sc-ds-menu:has(.ds-choice-item__subtext){padding-block:0}.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-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-empty.sc-ds-menu{padding:var(--dimension-space-200);box-sizing:border-box;overflow-wrap:anywhere}.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-row.sc-ds-menu{display:contents}.menu-item-row--trailing-toggle.sc-ds-menu{display:flex;align-items:center;min-width:0}.menu-item-row--actions.sc-ds-menu{display:flex;align-items:center;min-width:0;padding-inline-end:var(--dimension-space-025)}.menu-item-row--trailing-toggle.sc-ds-menu>.menu-item.sc-ds-menu{flex:1;min-width:0;width:auto}.menu-item-row__trailing-toggle.sc-ds-menu{display:inline-flex;align-items:center;flex-shrink:0}.menu-item-row__divider.sc-ds-menu{flex-shrink:0;width:var(--dimension-stroke-width-012);height:var(--dimension-size-250);margin-inline:var(--dimension-space-025);background:var(--color-border-tertiary)}.menu-item-row__trailing-toggle.sc-ds-menu>ds-button-unfilled.sc-ds-menu{flex-shrink:0}.menu-item-row__actions.sc-ds-menu,.menu-item-row__action.sc-ds-menu{display:inline-flex;align-items:center;flex-shrink:0}.menu-item-row__action.sc-ds-menu>ds-button-unfilled.sc-ds-menu{flex-shrink:0}.menu-subsection-divider.sc-ds-menu{display:block;flex-shrink:0;height:var(--dimension-stroke-width-012);margin-inline:calc( var(--ds-control-padding-inline, var(--dimension-space-075)) + var(--ds-control-label-inset, var(--dimension-space-025)) );background:var(--color-border-tertiary)}.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--action-row.sc-ds-menu{--ds-menu-action-handle-size:calc( var(--ds-control-height, var(--dimension-size-400)) - var(--dimension-space-050) );width:var(--ds-menu-action-handle-size);height:var(--ds-menu-action-handle-size);margin-inline:calc( (var(--ds-control-icon, var(--dimension-iconography-md)) - var(--ds-menu-action-handle-size)) / 2 );border-radius:var(--ds-control-radius, var(--dimension-radius-025))}.menu-item.sc-ds-menu>.menu-item__handle--inactive.sc-ds-menu{color:var(--color-foreground-quaternary);pointer-events:none;cursor:default;touch-action:auto}.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-row__divider.sc-ds-menu{background:var(--ds-forced-color-content)}.menu-subsection-divider.sc-ds-menu{background:var(--ds-forced-color-content)}.menu-item__drop-rail.sc-ds-menu{background:var(--ds-forced-color-selected)}}.data-preferences-embedded.sc-ds-menu{display:flex;flex-direction:column;min-width:0;min-height:0;color:var(--color-foreground-secondary)}`;let E=0;const S={lg:"md",md:"sm",sm:"xs",xs:"xs"};const $=e(class e extends i{constructor(e){super();if(e!==false){this.__registerHost()}this.dsClose=s(this,"dsClose",7);this.dsAfterClose=s(this,"dsAfterClose",7);this.dsSelect=s(this,"dsSelect",7);this.dsItemToggle=s(this,"dsItemToggle",7);this.dsSwatchSelect=s(this,"dsSwatchSelect",7);this.dsReorder=s(this,"dsReorder",7);this.embedded=false;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=w.space050;this.alignOffset=0;this.initialFocusVisible=false;this.menuLabel="Menu";this.emptyMessage="";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.loaded=false;this.tasks=new l((()=>this.el.isConnected));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 s=e.getBoundingClientRect();const n=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), ${k(s.width,n)}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 a={anchorRect:s,popupWidth:i.offsetWidth||this.popupFallbackWidthPx,popupHeight:r||this.popupFallbackHeightPx,side:this.side,align:this.align,sideOffsetPx:this.sideOffsetPx,alignOffsetPx:C({align:this.align,alignOffsetPx:this.alignOffsetPx,sectionInsetPx:n,anchorAlignment:this.anchorAlignment}),viewportPadPx:o,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight,collisionRect:d(e,this.boundary)};const l=c(a);return{...a,popupHeight:Math.min(a.popupHeight,l.availableHeight)}},apply:({x:e,y:i,availableHeight:s})=>{this.pos={x:e,y:i};this.availableHeight=s},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.emptyMessageId=`ds-menu-empty-${++E}`;this.lastRenderedEmptyMessage="";this.onReorderPointerMove=e=>{const i=this.reorderPointer;if(!i||e.pointerId!==i.pointerId)return;const s=this.activeSections[i.sectionIndex];if(!s||T(s))return;const n=this.resolveReorderInsertBefore(e.clientY,i.sectionIndex,i.fromIndex,s.items);if(n!==this.reorderInsertBefore)this.reorderInsertBefore=n};this.onReorderPointerUp=e=>{const i=this.reorderPointer;if(!i||e.pointerId!==i.pointerId)return;const s=this.activeSections[i.sectionIndex];const n=this.reorderInsertBefore;this.clearReorderPointer();this.tasks.microtask((()=>{this.suppressItemClick=false}));if(!s||T(s)||n===null)return;const o=j(s.items,i.fromIndex,n);if(!o)return;this.emitReorder(s.items,i.fromIndex,o,i.sectionIndex)};this.onReorderPointerCancel=e=>{if(!this.reorderPointer||e.pointerId!==this.reorderPointer.pointerId)return;this.clearReorderPointer();this.tasks.microtask((()=>{this.suppressItemClick=false}))}}componentDidLoad(){this.loaded=true;if(this.open)this.onOpenChange(true)}connectedCallback(){if(this.loaded&&this.open)this.onOpenChange(true)}disconnectedCallback(){this.cancelPositionRetry();this.cancelLivePositionUpdate();this.clearReorderPointer();this.teardownListeners();this.positionReadyCallback=undefined;this.shouldRender=false;this.closing=false;this.positionReady=false;this.closingSections=null;this.lastRenderedSections=[];this.suppressItemClick=false;this.reorderAnnouncement=""}onOpenChange(e){if(this.embedded||!this.loaded||!this.el.isConnected)return;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.closing){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 P(y.space050,y.space050)}get sideOffsetPx(){return P(this.sideOffset,y.space050)}get alignOffsetPx(){return P(this.alignOffset,0)}get popupFallbackWidthPx(){return P(y.menuWidthXs,y.menuWidthXs)}get popupFallbackHeightPx(){return P(y.menuFallbackHeight,y.menuFallbackHeight)}get closeAnimationMs(){return _(y.motionShort2,y.animationDurationShort3)}finishClose(){if(this.open||!this.closing||!this.el.isConnected)return;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=D(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=>T(e)?[]:e.items))}get hasCompositeSections(){return this.sectionsHaveCompositeControls(this.activeSections)}sectionsHaveCompositeControls(e){return e.some((e=>T(e)||e.items.some((e=>Boolean(e.trailingToggle||e.trailingActions?.length)))))}sectionUsesInsetDivider(e){return Boolean(e&&!T(e)&&e.insetDividerBefore)}cancelPositionRetry(){this.position.cancel()}cancelLivePositionUpdate(){this.position.cancel()}scheduleLivePositionUpdate(){this.position.scheduleLiveUpdate()}schedulePositionUpdate(e){if(!this.open||!this.el.isConnected)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&&!this.flatItems.length&&this.emptyMessage.trim()){this.tasks.frame((()=>{if(this.open)this.el.querySelector(".menu-popup")?.focus()}));return}if(this.hasCompositeSections){this.tasks.frame((()=>{this.el.querySelector('.menu-popup [tabindex="0"]')?.focus()}));return}const e=this.flatItems;const i=e.findIndex((e=>e.isSelected&&!e.isInactive));const s=e.findIndex((e=>!e.isInactive||!!e.reorderable));this.focusedIndex=i>=0?i:s>=0?s:0;this.tasks.frame((()=>{const e=this.el.querySelectorAll(".menu-item");e[this.focusedIndex]?.focus()}))}setupListeners(){this.interaction.connect();this.position.observe()}teardownListeners(){this.tasks.cancel();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.embedded&&(e.key==="Escape"||e.key==="Tab"))return;if(!this.shouldRender&&!this.embedded||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((e.key==="ArrowUp"||e.key==="ArrowDown")&&e.altKey&&!e.ctrlKey&&!e.shiftKey&&e.target.closest(".menu-item")){this.handleReorderKey(e);return}if(this.hasCompositeSections)return;const i=this.flatItems;const s=i.map(((e,i)=>({it:e,i}))).filter((({it:e})=>!e.isInactive||!!e.reorderable)).map((({i:e})=>e));if(!s.length)return;const n=s.indexOf(this.focusedIndex);const o=n<0?0:n;switch(e.key){case"ArrowDown":e.preventDefault();e.stopPropagation();this.focusRingVisible=true;this.focusedIndex=s[(o+1)%s.length];this.focusItem(this.focusedIndex);break;case"ArrowUp":e.preventDefault();e.stopPropagation();this.focusRingVisible=true;this.focusedIndex=s[(o-1+s.length)%s.length];this.focusItem(this.focusedIndex);break;case"Home":e.preventDefault();e.stopPropagation();this.focusRingVisible=true;this.focusedIndex=s[0];this.focusItem(this.focusedIndex);break;case"End":e.preventDefault();e.stopPropagation();this.focusRingVisible=true;this.focusedIndex=s[s.length-1];this.focusItem(this.focusedIndex);break}}focusItem(e){const i=this.el.querySelectorAll(".menu-item");const s=i[e];if(!s)return;if(s.matches("button"))s.focus();else s.querySelector('[tabindex="0"]')?.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 s=H(i.items,i.itemIndex,e.key==="ArrowUp"?-1:1);if(!s)return;e.preventDefault();e.stopPropagation();this.emitReorder(i.items,i.itemIndex,s,i.sectionIndex)}emitReorder(e,i,s,n){const o=M(e,i,s,n);if(!o)return;this.focusedIndex=this.flatIndexFor(n,o.toIndex);this.announceReorder(o);this.dsReorder.emit(o)}flatIndexFor(e,i){let s=0;for(let n=0;n<this.activeSections.length;n+=1){const o=this.activeSections[n];if(T(o))continue;if(n===e)return s+i;s+=o.items.length}return i}announceReorder(e){const i=B(e.items,e.toIndex);const s=i?i.end-i.start+1:e.items.length;const n=i?e.toIndex-i.start+1:e.toIndex+1;this.reorderAnnouncement=`${e.item.label} moved to position ${n} of ${s}`}onReorderPointerDown(e,i,s,n){if(e.button!==0)return;const o=this.activeSections[i];if(!o||T(o))return;if(!o.items[s]?.reorderable)return;e.preventDefault();e.stopPropagation();this.suppressItemClick=true;this.focusRingVisible=false;this.focusedIndex=n;this.focusItem(n);this.reorderPointer={pointerId:e.pointerId,sectionIndex:i,fromIndex:s};this.reorderFromFlat=n;this.reorderInsertBefore=s;window.addEventListener("pointermove",this.onReorderPointerMove);window.addEventListener("pointerup",this.onReorderPointerUp);window.addEventListener("pointercancel",this.onReorderPointerCancel)}resolveReorderInsertBefore(e,i,s,n){const o=B(n,s);if(!o)return s;const t=[...this.el.querySelectorAll(".menu-item")];const r=this.flatIndexFor(i,0);let d=o.end+1;for(let i=o.start;i<=o.end;i+=1){const s=t[r+i];if(!s)continue;const n=s.getBoundingClientRect();if(e<n.top+n.height/2){d=i;break}}return Math.min(Math.max(d,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&&!this.embedded)return n(o,{style:{display:"contents"}});const e=this.closing?this.closingSections??this.lastRenderedSections:this.activeSections;const i=this.sectionsHaveCompositeControls(e);const s=this.closing?this.lastRenderedEmptyMessage:this.emptyMessage.trim();const t=Boolean(s)&&!i&&e.every((e=>!T(e)&&e.items.length===0));if(!this.closing){this.lastRenderedEmptyMessage=s;this.lastRenderedSections=D(e);this.closingSections=null}let r=0;const d=this.reorderFromFlat===null?null:O(e,this.reorderFromFlat);const c=d?B(d.items,d.itemIndex):null;const a={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)a["width"]=this.menuWidth;if(this.minWidth)a["min-width"]=this.minWidth;if(this.availableHeight!==null){a["max-height"]=`${Math.floor(this.availableHeight)}px`}return n(o,{style:{display:"contents"}},n("div",{popover:this.embedded?undefined:"manual",class:{"menu-popup":true,"menu-popup--closing":this.closing,"ds-choice-popup":!this.embedded,"data-preferences-embedded":this.embedded,"ds-choice-popup--closing":this.closing,"ds-focus-ring":t,"ds-focus-ring--visible":t&&this.focusRingVisible},style:this.embedded?undefined:a,role:i||t?"dialog":"menu","aria-label":this.menuLabel,"aria-orientation":i||t?undefined:"vertical","aria-describedby":t?this.emptyMessageId:undefined,tabIndex:t?-1:undefined},n("div",{class:"ds-choice-list"},t?n("ds-text",{textId:this.emptyMessageId,class:"menu-empty",as:"p",variant:z[this.size],color:"secondary"},s):e.map(((s,o)=>n("div",{key:o,class:{"menu-section":true,"menu-section--divided":o<e.length-1&&!this.sectionUsesInsetDivider(e[o+1]),"menu-section--swatch-picker":T(s),"ds-choice-section":true,"ds-chrome-column":true,"ds-chrome-space--sm":true,"ds-choice-section--divided":o<e.length-1&&!this.sectionUsesInsetDivider(e[o+1]),"ds-choice-section--headed-after-first":o>0&&!T(s)&&Boolean(s.header||s.subheader)},role:s.header||!T(s)&&s.subheader?"group":undefined,"aria-label":!T(s)&&s.subheader?s.subheader:s.header},!T(s)&&s.insetDividerBefore&&n("span",{class:"menu-subsection-divider","aria-hidden":"true"}),s.header&&n("ds-text",{class:`section-header ds-choice-section__header ds-control-section-heading ds-control--${this.size}`,as:"span",variant:A[this.size],emphasis:true,color:"primary","aria-hidden":"true"},n("span",{class:"ds-choice-section__header-label"},s.header)),!I(s)&&s.subheader&&n("ds-text",{class:`section-subheader ds-choice-section__header ds-control-section-heading ds-control--${this.size}`,as:"span",variant:"text-caption",emphasis:true,color:"secondary","aria-hidden":"true"},n("span",{class:"ds-choice-section__header-label"},s.subheader)),I(s)?n("ds-swatch-picker",{value:s.value,groupLabel:s.groupLabel??s.header??"Swatch options",options:s.options??[],sections:s.sections??[],onDsChange:e=>{e.stopPropagation();this.handleSwatchSelect(e.detail)}}):s.items.map(((e,t)=>{const a=r++;const l=this.focusedIndex===a;const u=!i&&this.selectionMode==="single"&&!e.showSwitch;const h=s.items.some((e=>e.reorderable||e.reorderHandleInactive||!!e.icon));const m=!!e.isInactive&&!e.reorderable;const f=this.reorderFromFlat===a;const p=d?.sectionIndex===o&&c!==null&&t<=c.end&&this.reorderInsertBefore===t;const v=d?.sectionIndex===o&&c!==null&&this.reorderInsertBefore===c.end+1&&t===c.end;if(e.trailingActions?.length){return n("div",{key:e.value??`${o}-${e.label}`,class:{"menu-item-row":true,"menu-item-row--actions":true,"menu-item":true,"ds-choice-item":true,"ds-control-frame":true,[`ds-control--${this.size}`]:true,"menu-item--dragging":f},role:"group","aria-label":e.label,onMouseDown:()=>{this.focusRingVisible=false},onFocusin:()=>{this.focusedIndex=a}},(p||v)&&n("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||e.reorderHandleInactive?n("span",{class:{"menu-item__handle":true,"menu-item__handle--action-row":true,"menu-item__handle--inactive":Boolean(e.reorderHandleInactive),"ds-interaction-fill":Boolean(e.reorderable),"ds-choice-item__icon":true,"ds-control-icon-box":true},"data-menu-handle":true,"aria-hidden":"true",onPointerDown:e.reorderable?e=>this.onReorderPointerDown(e,o,t,a):undefined},n("ds-icon",{class:"ds-interaction-fill__content",name:"DragDots",size:this.size,color:"inherit"})):h&&e.icon?n("span",{class:"menu-item__icon ds-choice-item__icon ds-control-icon-box","aria-hidden":"true"},n("ds-icon",{name:e.icon,size:this.size,color:"inherit"})):h?n("span",{class:"menu-item__icon-spacer ds-choice-item__icon ds-control-icon-box","aria-hidden":"true"}):null,n("div",{class:"menu-item__content ds-choice-item__content"},n("ds-text",{class:"menu-item__label ds-choice-item__label ds-control-label-box",as:"span",variant:z[this.size],color:"secondary"},e.label),e.subtext&&n("ds-text",{class:"menu-item__subtext ds-choice-item__subtext ds-control-label-box",as:"span",variant:A[this.size],color:"secondary"},e.subtext)),n("span",{class:"menu-item-row__actions"},e.trailingActions.map(((i,s)=>n("span",{class:"menu-item-row__action",key:i.id},s>0&&n("span",{class:"menu-item-row__divider","aria-hidden":"true"}),n("ds-button-unfilled",{variant:"icon",icon:i.icon,size:"md",ariaLabel:i.label,hasBorder:false,pressScale:false,isInset:true,insetDepth:"single",isInactive:i.isInactive??false,focusTabIndex:0,onDsClick:s=>{s.stopPropagation();this.dsItemToggle.emit({item:e,action:i,pressed:false})}}))))))}return n("div",{key:e.value??`${o}-${e.label}`,class:{"menu-item-row":true,"menu-item-row--trailing-toggle":Boolean(e.trailingToggle)}},n("button",{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||this.embedded&&a===0?0:l?0:-1,onMouseDown:()=>{this.focusRingVisible=false},onClick:()=>this.handleItemClick(e),onFocus:()=>{this.focusedIndex=a}},(p||v)&&n("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||e.reorderHandleInactive?n("span",{class:{"menu-item__handle":true,"menu-item__handle--inactive":Boolean(e.reorderHandleInactive),"ds-choice-item__icon":true,"ds-control-icon-box":true,"ds-interaction-fill__content":true},"data-menu-handle":true,"aria-hidden":"true",onPointerDown:e.reorderable?e=>this.onReorderPointerDown(e,o,t,a):undefined,onClick:e.reorderable?e=>{e.preventDefault();e.stopPropagation()}:undefined},n("ds-icon",{name:"DragDots",size:this.size,color:"inherit"})):h&&e.icon?n("span",{class:"menu-item__icon ds-choice-item__icon ds-control-icon-box ds-interaction-fill__content","aria-hidden":"true"},n("ds-icon",{name:e.icon,size:this.size,color:"inherit"})):h?n("span",{class:"menu-item__icon-spacer ds-choice-item__icon ds-control-icon-box","aria-hidden":"true"}):null,n("div",{class:"menu-item__content ds-choice-item__content ds-interaction-fill__content"},n("ds-text",{class:"menu-item__label ds-choice-item__label ds-control-label-box",as:"span",variant:z[this.size],color:e.isSelected?"primary":"secondary"},e.label),e.subtext&&n("ds-text",{class:"menu-item__subtext ds-choice-item__subtext ds-control-label-box",as:"span",variant:A[this.size],color:"secondary"},e.subtext)),e.tag&&n("ds-tag",{class:"ds-choice-item__tag ds-interaction-fill__content",label:e.tag.label,size:S[this.size],intent:e.tag.intent??"neutral",contrast:e.tag.contrast??"faint",rounded:e.tag.rounded??false,isInset:true}),e.dot&&n("span",{class:"menu-item__dot-box ds-interaction-fill__content","aria-hidden":"true"},n("ds-badge",{class:"menu-item__dot",variant:"dot",hasRing:false,label:""})),e.showSwitch&&n("ds-switch",{class:"menu-item__switch ds-interaction-fill__content",size:this.size,checked:!!e.switchValue,isInactive:!!e.isInactive,presentation:true})),e.trailingToggle&&n("span",{class:"menu-item-row__trailing-toggle"},n("span",{class:"menu-item-row__divider","aria-hidden":"true"}),n("ds-button-unfilled",{variant:"icon",icon:e.trailingToggle.icon,size:this.size,ariaLabel:e.trailingToggle.label,hasBorder:false,pressScale:false,pressed:e.trailingToggle.pressed,isInactive:e.trailingToggle.isInactive??false,onDsChange:i=>{i.stopPropagation();this.dsItemToggle.emit({item:e,pressed:i.detail})}})))}))))))),n("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 R()}},[2,"ds-menu",{embedded:[4],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"],emptyMessage:[1,"empty-message"],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 L(){if(typeof customElements==="undefined"){return}const e=["ds-menu","ds-badge","ds-button-unfilled","ds-icon","ds-loader","ds-swatch-picker","ds-switch","ds-tag","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-menu":if(!customElements.get(t(e))){customElements.define(t(e),$)}break;case"ds-badge":if(!customElements.get(t(e))){h()}break;case"ds-button-unfilled":if(!customElements.get(t(e))){m()}break;case"ds-icon":if(!customElements.get(t(e))){f()}break;case"ds-loader":if(!customElements.get(t(e))){p()}break;case"ds-swatch-picker":if(!customElements.get(t(e))){v()}break;case"ds-switch":if(!customElements.get(t(e))){g()}break;case"ds-tag":if(!customElements.get(t(e))){b()}break;case"ds-text":if(!customElements.get(t(e))){x()}break;case"ds-tooltip":if(!customElements.get(t(e))){a()}break}}))}L();export{$ as M,L as d};
2
+ //# sourceMappingURL=p-DHpcv_Os.js.map