@ds-mo/ui 14.36.0 → 15.1.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 (496) hide show
  1. package/NOTICE +6 -0
  2. package/README.md +7 -0
  3. package/dist/.package-ready.json +1 -1
  4. package/dist/agent-patterns.json +1 -1
  5. package/dist/agent.json +7485 -5096
  6. package/dist/angular/ds-conversation-list.d.ts +1 -1
  7. package/dist/angular/ds-conversation-list.js +3 -4
  8. package/dist/angular/ds-data-customize.d.ts +18 -0
  9. package/dist/angular/ds-data-customize.js +46 -0
  10. package/dist/angular/ds-data-filter.d.ts +50 -0
  11. package/dist/angular/{ds-table-filter.js → ds-data-filter.js} +10 -10
  12. package/dist/angular/ds-data-group.d.ts +29 -0
  13. package/dist/angular/{ds-table-group.js → ds-data-group.js} +10 -10
  14. package/dist/angular/ds-data-preferences.d.ts +39 -0
  15. package/dist/angular/{ds-table-preferences.js → ds-data-preferences.js} +15 -15
  16. package/dist/angular/ds-data-saved-views.d.ts +49 -0
  17. package/dist/angular/{ds-table-saved-views.js → ds-data-saved-views.js} +10 -10
  18. package/dist/angular/ds-data-search.d.ts +20 -0
  19. package/dist/angular/{ds-table-search.js → ds-data-search.js} +12 -12
  20. package/dist/angular/ds-data-sort.d.ts +16 -0
  21. package/dist/angular/{ds-table-sort.js → ds-data-sort.js} +12 -12
  22. package/dist/angular/ds-data-toolbar.d.ts +12 -0
  23. package/dist/angular/{ds-table-toolbar.js → ds-data-toolbar.js} +10 -10
  24. package/dist/angular/ds-table.d.ts +7 -7
  25. package/dist/angular/ds-table.js +6 -6
  26. package/dist/angular/index.d.ts +1 -1
  27. package/dist/angular/index.js +8 -7
  28. package/dist/angular/proxies.d.ts +8 -7
  29. package/dist/angular/proxies.js +8 -7
  30. package/dist/components/ds-agent-activity.js +1 -1
  31. package/dist/components/ds-agent-questionnaire.js +1 -1
  32. package/dist/components/ds-agent-response.js +1 -1
  33. package/dist/components/ds-agent-source-list.js +1 -1
  34. package/dist/components/ds-agent-tool-call.js +1 -1
  35. package/dist/components/ds-attachment-list.js +1 -1
  36. package/dist/components/ds-avatar.js +1 -1
  37. package/dist/components/ds-badge.js +1 -1
  38. package/dist/components/ds-banner.js +1 -1
  39. package/dist/components/ds-banner.js.map +1 -1
  40. package/dist/components/ds-bar-action.js +1 -1
  41. package/dist/components/ds-bar-nav.js +1 -1
  42. package/dist/components/ds-bar-page-title.js +1 -1
  43. package/dist/components/ds-bar-title.js +1 -1
  44. package/dist/components/ds-bar-workflow.js +1 -1
  45. package/dist/components/ds-breadcrumb.js +1 -1
  46. package/dist/components/ds-button-filled.js +1 -1
  47. package/dist/components/ds-button-inverted.js +1 -1
  48. package/dist/components/ds-button-unfilled.js +1 -1
  49. package/dist/components/ds-calendar.js +1 -1
  50. package/dist/components/ds-card-action-center.js +1 -1
  51. package/dist/components/ds-card-chart.js +1 -1
  52. package/dist/components/ds-card-chart.js.map +1 -1
  53. package/dist/components/ds-card-navigation.js +1 -1
  54. package/dist/components/ds-card-overview.js +1 -1
  55. package/dist/components/ds-card-overview.js.map +1 -1
  56. package/dist/components/ds-card-setting.js +1 -1
  57. package/dist/components/ds-card-setting.js.map +1 -1
  58. package/dist/components/ds-card-settings-scope.js +1 -1
  59. package/dist/components/ds-chart-legend.js +1 -1
  60. package/dist/components/ds-chart.js +1 -1
  61. package/dist/components/ds-chart.js.map +1 -1
  62. package/dist/components/ds-checkbox.js +1 -1
  63. package/dist/components/ds-chip.js +1 -1
  64. package/dist/components/ds-code-block.js +1 -1
  65. package/dist/components/ds-conversation-list-item.js +1 -1
  66. package/dist/components/ds-conversation-list-item.js.map +1 -1
  67. package/dist/components/ds-conversation-list-section.js +1 -1
  68. package/dist/components/ds-conversation-list.js +1 -1
  69. package/dist/components/ds-conversation-list.js.map +1 -1
  70. package/dist/components/ds-data-customize.d.ts +11 -0
  71. package/dist/components/ds-data-customize.js +2 -0
  72. package/dist/components/ds-data-customize.js.map +1 -0
  73. package/dist/components/{ds-table-group.d.ts → ds-data-filter.d.ts} +4 -4
  74. package/dist/components/ds-data-filter.js +2 -0
  75. package/dist/components/ds-data-filter.js.map +1 -0
  76. package/dist/components/{ds-table-sort.d.ts → ds-data-group.d.ts} +4 -4
  77. package/dist/components/ds-data-group.js +2 -0
  78. package/dist/components/{ds-table-saved-views.d.ts → ds-data-preferences.d.ts} +4 -4
  79. package/dist/components/ds-data-preferences.js +2 -0
  80. package/dist/components/ds-data-preferences.js.map +1 -0
  81. package/dist/components/ds-data-saved-views.d.ts +11 -0
  82. package/dist/components/ds-data-saved-views.js +2 -0
  83. package/dist/components/ds-data-saved-views.js.map +1 -0
  84. package/dist/components/{ds-table-search.d.ts → ds-data-search.d.ts} +4 -4
  85. package/dist/components/ds-data-search.js +2 -0
  86. package/dist/components/ds-data-search.js.map +1 -0
  87. package/dist/components/ds-data-sort.d.ts +11 -0
  88. package/dist/components/ds-data-sort.js +2 -0
  89. package/dist/components/ds-data-sort.js.map +1 -0
  90. package/dist/components/{ds-table-filter.d.ts → ds-data-toolbar.d.ts} +4 -4
  91. package/dist/components/ds-data-toolbar.js +2 -0
  92. package/dist/components/ds-data-toolbar.js.map +1 -0
  93. package/dist/components/ds-divider.js +1 -1
  94. package/dist/components/ds-empty-state.js +1 -1
  95. package/dist/components/ds-field.js +1 -1
  96. package/dist/components/ds-filter-menu.js +1 -1
  97. package/dist/components/ds-icon.js +1 -1
  98. package/dist/components/ds-input-date.js +1 -1
  99. package/dist/components/ds-input-time.js +1 -1
  100. package/dist/components/ds-input-time.js.map +1 -1
  101. package/dist/components/ds-input.js +1 -1
  102. package/dist/components/ds-markdown.js +1 -1
  103. package/dist/components/ds-menu.js +1 -1
  104. package/dist/components/ds-message-actions.js +1 -1
  105. package/dist/components/ds-message-bubble.js +1 -1
  106. package/dist/components/ds-message-composer.js +1 -1
  107. package/dist/components/ds-message-composer.js.map +1 -1
  108. package/dist/components/ds-message-scroller.js +1 -1
  109. package/dist/components/ds-message-scroller.js.map +1 -1
  110. package/dist/components/ds-message.js +1 -1
  111. package/dist/components/ds-mobile-bar-nav.js +1 -1
  112. package/dist/components/ds-mobile-header.js +1 -1
  113. package/dist/components/ds-mobile-section-switcher.js +1 -1
  114. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  115. package/dist/components/ds-modal.js +1 -1
  116. package/dist/components/ds-pagination.js +1 -1
  117. package/dist/components/ds-panel-nav.js +1 -1
  118. package/dist/components/ds-panel-sub-nav.js +1 -1
  119. package/dist/components/ds-panel-tool-header.js +1 -1
  120. package/dist/components/ds-panel-tool-search.js +1 -1
  121. package/dist/components/ds-panel-tools.js +1 -1
  122. package/dist/components/ds-paper-texture.js +1 -1
  123. package/dist/components/ds-radio.js +1 -1
  124. package/dist/components/ds-score.js +1 -1
  125. package/dist/components/ds-scroll-overlay.js +1 -1
  126. package/dist/components/ds-scroll-overlay.js.map +1 -1
  127. package/dist/components/ds-select.js +1 -1
  128. package/dist/components/ds-shell-app.js +1 -1
  129. package/dist/components/ds-shell-page.js +1 -1
  130. package/dist/components/ds-shell-tools.js +1 -1
  131. package/dist/components/ds-skeleton.js +1 -1
  132. package/dist/components/ds-slider.js +1 -1
  133. package/dist/components/ds-swatch-picker.js +1 -1
  134. package/dist/components/ds-switch.js +1 -1
  135. package/dist/components/ds-tab-group.js +1 -1
  136. package/dist/components/ds-table.js +1 -1
  137. package/dist/components/ds-table.js.map +1 -1
  138. package/dist/components/ds-tag.js +1 -1
  139. package/dist/components/ds-text.js +1 -1
  140. package/dist/components/ds-textarea.js +1 -1
  141. package/dist/components/ds-time-picker.js +1 -1
  142. package/dist/components/ds-toast.js +1 -1
  143. package/dist/components/ds-tooltip-chart.js +1 -1
  144. package/dist/components/ds-tooltip.js +1 -1
  145. package/dist/components/ds-typing-indicator.js +1 -1
  146. package/dist/components/index.d.ts +5 -5
  147. package/dist/components/{p-D8rpKod8.js → p-0FYD2bev.js} +2 -2
  148. package/dist/components/p-0qY_HDId.js +2 -0
  149. package/dist/components/{p-C0CE2v5D.js.map → p-0qY_HDId.js.map} +1 -1
  150. package/dist/components/{p-DK9Ex3aY.js → p-5URekSny.js} +2 -2
  151. package/dist/components/{p-Ds51RgCi.js → p-7V1AhetH.js} +2 -2
  152. package/dist/components/{p-C2JnoaWI.js → p-8yBdCXCn.js} +2 -2
  153. package/dist/components/{p-CQIh2yRP.js → p-BKZdqJQB.js} +2 -2
  154. package/dist/components/p-BKZdqJQB.js.map +1 -0
  155. package/dist/components/p-BYrBU_U9.js +2 -0
  156. package/dist/components/p-BYrBU_U9.js.map +1 -0
  157. package/dist/components/{p-ClJhuG5Y.js → p-B_jdoM7e.js} +2 -2
  158. package/dist/components/{p-ClJhuG5Y.js.map → p-B_jdoM7e.js.map} +1 -1
  159. package/dist/components/{p-su6y4hLK.js → p-BciTtTwx.js} +2 -2
  160. package/dist/components/{p-DgG9W9N4.js → p-BeNa6tw5.js} +2 -2
  161. package/dist/components/{p-DgG9W9N4.js.map → p-BeNa6tw5.js.map} +1 -1
  162. package/dist/components/p-BgQMEHRa.js +2 -0
  163. package/dist/components/{p-D7yBIPB6.js.map → p-BgQMEHRa.js.map} +1 -1
  164. package/dist/components/{p-CQ5RwY2C.js → p-BhJXmuRA.js} +2 -2
  165. package/dist/components/{p-neWTRxmf.js → p-Bm7rqs3C.js} +2 -2
  166. package/dist/components/{p-BV5T1hzN.js → p-Bn8I7iw6.js} +2 -2
  167. package/dist/components/{p-PmcUwTQ_.js → p-Bpd6YCo4.js} +2 -2
  168. package/dist/components/p-C-3YqeTb.js +2 -0
  169. package/dist/components/{p-TjXGRPik.js.map → p-C-3YqeTb.js.map} +1 -1
  170. package/dist/components/{p-B27_chI7.js → p-C6xVxqOn.js} +2 -2
  171. package/dist/components/{p-C4m8y9ki.js → p-CD4DZPy_.js} +2 -2
  172. package/dist/components/{p-CuwopElg.js → p-CGidq1iC.js} +2 -2
  173. package/dist/components/{p-CWog26I_.js → p-CNxvnQ6A.js} +2 -2
  174. package/dist/components/{p-2GVGhrh0.js → p-CUcUHwI3.js} +2 -2
  175. package/dist/components/{p-CbSUyv5B.js → p-CYzFfFcH.js} +2 -2
  176. package/dist/components/{p-8oRkhvjy.js → p-CdGXzRP8.js} +2 -2
  177. package/dist/components/p-CdgOLWX9.js +2 -0
  178. package/dist/components/p-CdgOLWX9.js.map +1 -0
  179. package/dist/components/{p-Jaqdfw4E.js → p-CiH4GG6r.js} +2 -2
  180. package/dist/components/{p-Cl9phSf0.js → p-CiJ1WR11.js} +2 -2
  181. package/dist/components/{p-Cus1Sigh.js → p-CmexIVnE.js} +2 -2
  182. package/dist/components/{p-Dryt3COt.js → p-Cqc2U1ZQ.js} +2 -2
  183. package/dist/components/{p-Dryt3COt.js.map → p-Cqc2U1ZQ.js.map} +1 -1
  184. package/dist/components/{p-DLXXGgmf.js → p-CzIpquvw.js} +2 -2
  185. package/dist/components/{p-tNQ0YulU.js → p-D0y7Sja6.js} +2 -2
  186. package/dist/components/{p-x1wf38q3.js → p-D1vQGJzc.js} +2 -2
  187. package/dist/components/{p-x1wf38q3.js.map → p-D1vQGJzc.js.map} +1 -1
  188. package/dist/components/{p-ji09W9el.js → p-D922f6Tb.js} +2 -2
  189. package/dist/components/{p-DtkLtKY0.js → p-DEW7r0U9.js} +2 -2
  190. package/dist/components/p-DEW7r0U9.js.map +1 -0
  191. package/dist/components/{p-CaNCGKEJ.js → p-DHICPS4n.js} +2 -2
  192. package/dist/components/{p-Cga6Ex0E.js → p-DOAybCp0.js} +2 -2
  193. package/dist/components/{p-CWPT3aOB.js → p-DVINzOoK.js} +2 -2
  194. package/dist/components/{p-CWPT3aOB.js.map → p-DVINzOoK.js.map} +1 -1
  195. package/dist/components/{p-7O-2D29W.js → p-DVOjjuXc.js} +2 -2
  196. package/dist/components/{p-CMQUuGvl.js → p-Dfs98tpL.js} +2 -2
  197. package/dist/components/{p-CMQUuGvl.js.map → p-Dfs98tpL.js.map} +1 -1
  198. package/dist/components/{p-DkikNSSO.js → p-Di5FH7eh.js} +2 -2
  199. package/dist/components/{p-DkikNSSO.js.map → p-Di5FH7eh.js.map} +1 -1
  200. package/dist/components/p-DjkUFlDW.js +2 -0
  201. package/dist/components/p-DjkUFlDW.js.map +1 -0
  202. package/dist/components/{p-DVd1TIxi.js → p-Dn9QHL4O.js} +2 -2
  203. package/dist/components/{p-C-dHtQMi.js → p-Do2FJd1y.js} +2 -2
  204. package/dist/components/{p-BWfzaSc3.js → p-DpoTwJAR.js} +2 -2
  205. package/dist/components/p-Dw9sE6Iw.js +2 -0
  206. package/dist/components/p-Dw9sE6Iw.js.map +1 -0
  207. package/dist/components/{p-BgLI9JoT.js → p-DwbcNDJF.js} +2 -2
  208. package/dist/components/p-Dzndkdx5.js +2 -0
  209. package/dist/components/{p-BOhpMUwO.js.map → p-Dzndkdx5.js.map} +1 -1
  210. package/dist/components/{p-DvzI2A_M.js → p-E5W27Fu_.js} +2 -2
  211. package/dist/components/{p-DkfM55x8.js → p-FIBCluwV.js} +2 -2
  212. package/dist/components/{p-DBwa1OXP.js → p-ZhP2tVmM.js} +2 -2
  213. package/dist/components/p-ZhP2tVmM.js.map +1 -0
  214. package/dist/components/p-aD5cw_m2.js +2 -0
  215. package/dist/components/p-aD5cw_m2.js.map +1 -0
  216. package/dist/components/{p-J5x-QtlD.js → p-etifxiDc.js} +2 -2
  217. package/dist/components/p-etifxiDc.js.map +1 -0
  218. package/dist/components/p-kDZ0sEII.js +2 -0
  219. package/dist/components/p-kDZ0sEII.js.map +1 -0
  220. package/dist/components/{p-rYePOPbJ.js → p-ljbw3UMZ.js} +2 -2
  221. package/dist/components/{p-DZ58Sg5a.js → p-vfCu7XSc.js} +2 -2
  222. package/dist/components/{p-Ce4zy8q1.js → p-xdmJCPCg.js} +2 -2
  223. package/dist/components/{p-CDJ2Ntcq.js → p-xtGGIZmU.js} +2 -2
  224. package/dist/docs/components.json +13115 -12615
  225. package/dist/lib/components/Icon/flag-icon-catalog.d.ts +2 -0
  226. package/dist/lib/components/Icon/icon-cache.d.ts +36 -4
  227. package/dist/lib/components/Icon/map-icon-catalog.d.ts +2 -0
  228. package/dist/lib/shell/index.js +2 -2
  229. package/dist/lib/shell/index.js.map +1 -1
  230. package/dist/lib/utils/index.js +68 -5
  231. package/dist/lib/utils/index.js.map +3 -3
  232. package/dist/lint/STYLELINT-LICENSE +20 -0
  233. package/dist/lint/THIRD-PARTY-NOTICES +553 -0
  234. package/dist/lint/index.d.ts +7 -0
  235. package/dist/lint/index.js +51385 -0
  236. package/dist/lint/types.d.ts +13 -0
  237. package/dist/mcp-data/registry/agent-activity.json +8 -3
  238. package/dist/mcp-data/registry/agent-questionnaire.json +8 -3
  239. package/dist/mcp-data/registry/agent-response.json +13 -2
  240. package/dist/mcp-data/registry/agent-source-list.json +7 -2
  241. package/dist/mcp-data/registry/agent-tool-call.json +8 -3
  242. package/dist/mcp-data/registry/attachment-list.json +7 -2
  243. package/dist/mcp-data/registry/avatar.json +22 -2
  244. package/dist/mcp-data/registry/badge.json +31 -3
  245. package/dist/mcp-data/registry/banner.json +29 -3
  246. package/dist/mcp-data/registry/bar-action.json +25 -2
  247. package/dist/mcp-data/registry/bar-nav.json +7 -2
  248. package/dist/mcp-data/registry/bar-page-title.json +25 -2
  249. package/dist/mcp-data/registry/bar-title.json +27 -2
  250. package/dist/mcp-data/registry/bar-workflow.json +25 -2
  251. package/dist/mcp-data/registry/breadcrumb.json +7 -2
  252. package/dist/mcp-data/registry/button-filled.json +69 -2
  253. package/dist/mcp-data/registry/button-inverted.json +65 -2
  254. package/dist/mcp-data/registry/button-unfilled.json +67 -2
  255. package/dist/mcp-data/registry/calendar.json +15 -2
  256. package/dist/mcp-data/registry/card-action-center.json +25 -2
  257. package/dist/mcp-data/registry/card-chart.json +38 -3
  258. package/dist/mcp-data/registry/card-navigation.json +37 -2
  259. package/dist/mcp-data/registry/card-overview.json +28 -3
  260. package/dist/mcp-data/registry/card-setting.json +36 -3
  261. package/dist/mcp-data/registry/card-settings-scope.json +25 -2
  262. package/dist/mcp-data/registry/chart-legend.json +7 -2
  263. package/dist/mcp-data/registry/chart.json +8 -3
  264. package/dist/mcp-data/registry/checkbox.json +39 -3
  265. package/dist/mcp-data/registry/chip.json +51 -2
  266. package/dist/mcp-data/registry/code-block.json +31 -2
  267. package/dist/mcp-data/registry/conversation-list-item.json +26 -3
  268. package/dist/mcp-data/registry/conversation-list-section.json +15 -2
  269. package/dist/mcp-data/registry/conversation-list.json +16 -33
  270. package/dist/mcp-data/registry/data-customize.json +399 -0
  271. package/dist/mcp-data/registry/{table-filter.json → data-filter.json} +59 -34
  272. package/dist/mcp-data/registry/data-group.json +383 -0
  273. package/dist/mcp-data/registry/data-preferences.json +591 -0
  274. package/dist/mcp-data/registry/data-saved-views.json +458 -0
  275. package/dist/mcp-data/registry/data-search.json +392 -0
  276. package/dist/mcp-data/registry/data-sort.json +279 -0
  277. package/dist/mcp-data/registry/data-toolbar.json +194 -0
  278. package/dist/mcp-data/registry/divider.json +7 -2
  279. package/dist/mcp-data/registry/empty-state.json +7 -2
  280. package/dist/mcp-data/registry/field.json +15 -2
  281. package/dist/mcp-data/registry/filter-menu.json +51 -4
  282. package/dist/mcp-data/registry/icon.json +34 -8
  283. package/dist/mcp-data/registry/input-date.json +49 -2
  284. package/dist/mcp-data/registry/input-time.json +49 -2
  285. package/dist/mcp-data/registry/input.json +50 -3
  286. package/dist/mcp-data/registry/loader.json +22 -2
  287. package/dist/mcp-data/registry/markdown.json +18 -2
  288. package/dist/mcp-data/registry/menu.json +29 -4
  289. package/dist/mcp-data/registry/message-actions.json +7 -2
  290. package/dist/mcp-data/registry/message-bubble.json +27 -2
  291. package/dist/mcp-data/registry/message-composer.json +26 -3
  292. package/dist/mcp-data/registry/message-scroller.json +13 -2
  293. package/dist/mcp-data/registry/message.json +7 -2
  294. package/dist/mcp-data/registry/mobile-bar-nav.json +26 -3
  295. package/dist/mcp-data/registry/mobile-header.json +27 -2
  296. package/dist/mcp-data/registry/mobile-section-switcher.json +27 -2
  297. package/dist/mcp-data/registry/mobile-sheet-nav.json +28 -3
  298. package/dist/mcp-data/registry/modal.json +25 -2
  299. package/dist/mcp-data/registry/pagination.json +7 -2
  300. package/dist/mcp-data/registry/panel-nav.json +29 -3
  301. package/dist/mcp-data/registry/panel-sub-nav.json +26 -1
  302. package/dist/mcp-data/registry/panel-tool-header.json +25 -2
  303. package/dist/mcp-data/registry/panel-tool-search.json +25 -2
  304. package/dist/mcp-data/registry/panel-tools.json +28 -4
  305. package/dist/mcp-data/registry/paper-texture.json +7 -2
  306. package/dist/mcp-data/registry/radio.json +36 -2
  307. package/dist/mcp-data/registry/registry.json +7465 -5073
  308. package/dist/mcp-data/registry/score.json +39 -2
  309. package/dist/mcp-data/registry/scroll-overlay.json +7 -2
  310. package/dist/mcp-data/registry/select.json +53 -2
  311. package/dist/mcp-data/registry/shell-app.json +27 -2
  312. package/dist/mcp-data/registry/shell-page.json +7 -2
  313. package/dist/mcp-data/registry/shell-tools.json +26 -2
  314. package/dist/mcp-data/registry/skeleton.json +42 -2
  315. package/dist/mcp-data/registry/slider.json +43 -2
  316. package/dist/mcp-data/registry/swatch-picker.json +25 -2
  317. package/dist/mcp-data/registry/switch.json +38 -2
  318. package/dist/mcp-data/registry/tab-group.json +50 -2
  319. package/dist/mcp-data/registry/table.json +173 -72
  320. package/dist/mcp-data/registry/tag.json +53 -2
  321. package/dist/mcp-data/registry/text.json +23 -2
  322. package/dist/mcp-data/registry/textarea.json +39 -2
  323. package/dist/mcp-data/registry/time-picker.json +15 -2
  324. package/dist/mcp-data/registry/toast.json +25 -2
  325. package/dist/mcp-data/registry/tooltip-chart.json +25 -2
  326. package/dist/mcp-data/registry/tooltip.json +27 -2
  327. package/dist/mcp-data/registry/typing-indicator.json +7 -2
  328. package/dist/react/components.d.ts +8 -7
  329. package/dist/react/components.js +8 -7
  330. package/dist/react/ds-data-customize.d.ts +13 -0
  331. package/dist/react/ds-data-customize.js +15 -0
  332. package/dist/react/ds-data-filter.d.ts +18 -0
  333. package/dist/react/{ds-table-filter.js → ds-data-filter.js} +5 -5
  334. package/dist/react/ds-data-group.d.ts +14 -0
  335. package/dist/react/{ds-table-group.js → ds-data-group.js} +5 -5
  336. package/dist/react/ds-data-preferences.d.ts +21 -0
  337. package/dist/react/{ds-table-preferences.js → ds-data-preferences.js} +6 -6
  338. package/dist/react/ds-data-saved-views.d.ts +17 -0
  339. package/dist/react/{ds-table-saved-views.js → ds-data-saved-views.js} +5 -5
  340. package/dist/react/ds-data-search.d.ts +14 -0
  341. package/dist/react/{ds-table-search.js → ds-data-search.js} +5 -5
  342. package/dist/react/ds-data-sort.d.ts +12 -0
  343. package/dist/react/ds-data-sort.js +12 -0
  344. package/dist/react/{ds-table-toolbar.d.ts → ds-data-toolbar.d.ts} +3 -3
  345. package/dist/react/ds-data-toolbar.js +12 -0
  346. package/dist/react/ds-table.d.ts +3 -3
  347. package/dist/react/ds-table.js +1 -1
  348. package/dist/styles/table.css +11 -11
  349. package/dist/types/components/ConversationList/ConversationList.d.ts +0 -7
  350. package/dist/types/components/DataCustomize/DataCustomize.d.ts +67 -0
  351. package/dist/types/components/{TableFilter/TableFilter.d.ts → DataFilter/DataFilter.d.ts} +2 -2
  352. package/dist/types/components/{TableGroup/TableGroup.d.ts → DataGroup/DataGroup.d.ts} +8 -8
  353. package/dist/types/components/{TablePreferences/TablePreferences.d.ts → DataPreferences/DataPreferences.d.ts} +29 -13
  354. package/dist/types/components/{TableSavedViews/TableSavedViews.d.ts → DataSavedViews/DataSavedViews.d.ts} +10 -10
  355. package/dist/types/components/DataSavedViews/data-saved-views-types.d.ts +24 -0
  356. package/dist/types/components/DataSavedViews/index.d.ts +2 -0
  357. package/dist/types/components/{TableSearch/TableSearch.d.ts → DataSearch/DataSearch.d.ts} +6 -6
  358. package/dist/types/components/{TableSearch/table-search-model.d.ts → DataSearch/data-search-model.d.ts} +6 -6
  359. package/dist/types/components/{TableSearch/table-search-types.d.ts → DataSearch/data-search-types.d.ts} +3 -3
  360. package/dist/types/components/{TableSort/TableSort.d.ts → DataSort/DataSort.d.ts} +7 -6
  361. package/dist/types/components/DataSort/data-sort-menu.d.ts +15 -0
  362. package/dist/types/components/{TableToolbar/TableToolbar.d.ts → DataToolbar/DataToolbar.d.ts} +3 -3
  363. package/dist/types/components/Icon/icon-cache.d.ts +36 -4
  364. package/dist/types/components/Icon/map-icon-catalog.d.ts +3 -0
  365. package/dist/types/components/PanelTools/PanelTools.d.ts +1 -1
  366. package/dist/types/components/Table/Table.d.ts +9 -9
  367. package/dist/types/components/Table/index.d.ts +1 -1
  368. package/dist/types/components/Table/table-action-menu.d.ts +1 -1
  369. package/dist/types/components/Table/table-body-renderer.d.ts +2 -2
  370. package/dist/types/components/Table/table-column-customizer.d.ts +9 -9
  371. package/dist/types/components/Table/table-group-load-controller.d.ts +2 -2
  372. package/dist/types/components/Table/table-model.d.ts +7 -7
  373. package/dist/types/components/Table/table-render-model.d.ts +3 -3
  374. package/dist/types/components/Table/table-types.d.ts +17 -36
  375. package/dist/types/components/Table/table-virtual-model.d.ts +2 -2
  376. package/dist/types/components.d.ts +3837 -3640
  377. package/dist/types/utils/data-field.d.ts +38 -0
  378. package/dist/types/utils/list-customizer.d.ts +38 -0
  379. package/dist/types/utils/table-caption-compact.d.ts +1 -1
  380. package/dist/vue/components.d.ts +8 -7
  381. package/dist/vue/components.js +8 -7
  382. package/dist/vue/ds-conversation-list.js +1 -3
  383. package/dist/vue/ds-data-customize.d.ts +3 -0
  384. package/dist/vue/ds-data-customize.js +23 -0
  385. package/dist/vue/{ds-table-group.d.ts → ds-data-filter.d.ts} +1 -1
  386. package/dist/vue/{ds-table-filter.js → ds-data-filter.js} +2 -2
  387. package/dist/vue/{ds-table-sort.d.ts → ds-data-group.d.ts} +1 -1
  388. package/dist/vue/{ds-table-group.js → ds-data-group.js} +2 -2
  389. package/dist/vue/{ds-table-saved-views.d.ts → ds-data-preferences.d.ts} +1 -1
  390. package/dist/vue/{ds-table-preferences.js → ds-data-preferences.js} +10 -7
  391. package/dist/vue/ds-data-saved-views.d.ts +3 -0
  392. package/dist/vue/{ds-table-saved-views.js → ds-data-saved-views.js} +2 -2
  393. package/dist/vue/{ds-table-filter.d.ts → ds-data-search.d.ts} +1 -1
  394. package/dist/vue/{ds-table-search.js → ds-data-search.js} +3 -3
  395. package/dist/vue/{ds-table-search.d.ts → ds-data-sort.d.ts} +1 -1
  396. package/dist/vue/{ds-table-sort.js → ds-data-sort.js} +3 -3
  397. package/dist/vue/ds-data-toolbar.d.ts +3 -0
  398. package/dist/vue/ds-data-toolbar.js +9 -0
  399. package/dist/vue/ds-table.js +4 -4
  400. package/package.json +34 -9
  401. package/dist/angular/ds-table-filter.d.ts +0 -50
  402. package/dist/angular/ds-table-group.d.ts +0 -29
  403. package/dist/angular/ds-table-preferences.d.ts +0 -39
  404. package/dist/angular/ds-table-saved-views.d.ts +0 -49
  405. package/dist/angular/ds-table-search.d.ts +0 -20
  406. package/dist/angular/ds-table-sort.d.ts +0 -16
  407. package/dist/angular/ds-table-toolbar.d.ts +0 -12
  408. package/dist/components/ds-table-filter.js +0 -2
  409. package/dist/components/ds-table-filter.js.map +0 -1
  410. package/dist/components/ds-table-group.js +0 -2
  411. package/dist/components/ds-table-preferences.d.ts +0 -11
  412. package/dist/components/ds-table-preferences.js +0 -2
  413. package/dist/components/ds-table-preferences.js.map +0 -1
  414. package/dist/components/ds-table-saved-views.js +0 -2
  415. package/dist/components/ds-table-saved-views.js.map +0 -1
  416. package/dist/components/ds-table-search.js +0 -2
  417. package/dist/components/ds-table-search.js.map +0 -1
  418. package/dist/components/ds-table-sort.js +0 -2
  419. package/dist/components/ds-table-sort.js.map +0 -1
  420. package/dist/components/ds-table-toolbar.d.ts +0 -11
  421. package/dist/components/ds-table-toolbar.js +0 -2
  422. package/dist/components/ds-table-toolbar.js.map +0 -1
  423. package/dist/components/p-BOhpMUwO.js +0 -2
  424. package/dist/components/p-C0CE2v5D.js +0 -2
  425. package/dist/components/p-CKarsuR2.js +0 -2
  426. package/dist/components/p-CKarsuR2.js.map +0 -1
  427. package/dist/components/p-CQIh2yRP.js.map +0 -1
  428. package/dist/components/p-Cea7rROU.js +0 -2
  429. package/dist/components/p-Cea7rROU.js.map +0 -1
  430. package/dist/components/p-D7yBIPB6.js +0 -2
  431. package/dist/components/p-DBwa1OXP.js.map +0 -1
  432. package/dist/components/p-DtkLtKY0.js.map +0 -1
  433. package/dist/components/p-J5x-QtlD.js.map +0 -1
  434. package/dist/components/p-KBrC9IG4.js +0 -2
  435. package/dist/components/p-KBrC9IG4.js.map +0 -1
  436. package/dist/components/p-MQ36mEgn.js +0 -2
  437. package/dist/components/p-MQ36mEgn.js.map +0 -1
  438. package/dist/components/p-TjXGRPik.js +0 -2
  439. package/dist/components/p-bM3LH3kc.js +0 -2
  440. package/dist/components/p-bM3LH3kc.js.map +0 -1
  441. package/dist/mcp-data/registry/table-group.json +0 -358
  442. package/dist/mcp-data/registry/table-preferences.json +0 -511
  443. package/dist/mcp-data/registry/table-saved-views.json +0 -433
  444. package/dist/mcp-data/registry/table-search.json +0 -366
  445. package/dist/mcp-data/registry/table-sort.json +0 -253
  446. package/dist/mcp-data/registry/table-toolbar.json +0 -180
  447. package/dist/react/ds-table-filter.d.ts +0 -18
  448. package/dist/react/ds-table-group.d.ts +0 -14
  449. package/dist/react/ds-table-preferences.d.ts +0 -21
  450. package/dist/react/ds-table-saved-views.d.ts +0 -17
  451. package/dist/react/ds-table-search.d.ts +0 -14
  452. package/dist/react/ds-table-sort.d.ts +0 -12
  453. package/dist/react/ds-table-sort.js +0 -12
  454. package/dist/react/ds-table-toolbar.js +0 -12
  455. package/dist/types/components/TableSavedViews/index.d.ts +0 -2
  456. package/dist/types/components/TableSavedViews/table-saved-views-types.d.ts +0 -24
  457. package/dist/types/components/TableSort/table-sort-menu.d.ts +0 -15
  458. package/dist/vue/ds-table-preferences.d.ts +0 -3
  459. package/dist/vue/ds-table-toolbar.d.ts +0 -3
  460. package/dist/vue/ds-table-toolbar.js +0 -9
  461. /package/dist/components/{ds-table-group.js.map → ds-data-group.js.map} +0 -0
  462. /package/dist/components/{p-D8rpKod8.js.map → p-0FYD2bev.js.map} +0 -0
  463. /package/dist/components/{p-DK9Ex3aY.js.map → p-5URekSny.js.map} +0 -0
  464. /package/dist/components/{p-Ds51RgCi.js.map → p-7V1AhetH.js.map} +0 -0
  465. /package/dist/components/{p-C2JnoaWI.js.map → p-8yBdCXCn.js.map} +0 -0
  466. /package/dist/components/{p-su6y4hLK.js.map → p-BciTtTwx.js.map} +0 -0
  467. /package/dist/components/{p-CQ5RwY2C.js.map → p-BhJXmuRA.js.map} +0 -0
  468. /package/dist/components/{p-neWTRxmf.js.map → p-Bm7rqs3C.js.map} +0 -0
  469. /package/dist/components/{p-BV5T1hzN.js.map → p-Bn8I7iw6.js.map} +0 -0
  470. /package/dist/components/{p-PmcUwTQ_.js.map → p-Bpd6YCo4.js.map} +0 -0
  471. /package/dist/components/{p-B27_chI7.js.map → p-C6xVxqOn.js.map} +0 -0
  472. /package/dist/components/{p-C4m8y9ki.js.map → p-CD4DZPy_.js.map} +0 -0
  473. /package/dist/components/{p-CuwopElg.js.map → p-CGidq1iC.js.map} +0 -0
  474. /package/dist/components/{p-CWog26I_.js.map → p-CNxvnQ6A.js.map} +0 -0
  475. /package/dist/components/{p-2GVGhrh0.js.map → p-CUcUHwI3.js.map} +0 -0
  476. /package/dist/components/{p-CbSUyv5B.js.map → p-CYzFfFcH.js.map} +0 -0
  477. /package/dist/components/{p-8oRkhvjy.js.map → p-CdGXzRP8.js.map} +0 -0
  478. /package/dist/components/{p-Jaqdfw4E.js.map → p-CiH4GG6r.js.map} +0 -0
  479. /package/dist/components/{p-Cl9phSf0.js.map → p-CiJ1WR11.js.map} +0 -0
  480. /package/dist/components/{p-Cus1Sigh.js.map → p-CmexIVnE.js.map} +0 -0
  481. /package/dist/components/{p-DLXXGgmf.js.map → p-CzIpquvw.js.map} +0 -0
  482. /package/dist/components/{p-tNQ0YulU.js.map → p-D0y7Sja6.js.map} +0 -0
  483. /package/dist/components/{p-ji09W9el.js.map → p-D922f6Tb.js.map} +0 -0
  484. /package/dist/components/{p-CaNCGKEJ.js.map → p-DHICPS4n.js.map} +0 -0
  485. /package/dist/components/{p-Cga6Ex0E.js.map → p-DOAybCp0.js.map} +0 -0
  486. /package/dist/components/{p-7O-2D29W.js.map → p-DVOjjuXc.js.map} +0 -0
  487. /package/dist/components/{p-DVd1TIxi.js.map → p-Dn9QHL4O.js.map} +0 -0
  488. /package/dist/components/{p-C-dHtQMi.js.map → p-Do2FJd1y.js.map} +0 -0
  489. /package/dist/components/{p-BWfzaSc3.js.map → p-DpoTwJAR.js.map} +0 -0
  490. /package/dist/components/{p-BgLI9JoT.js.map → p-DwbcNDJF.js.map} +0 -0
  491. /package/dist/components/{p-DvzI2A_M.js.map → p-E5W27Fu_.js.map} +0 -0
  492. /package/dist/components/{p-DkfM55x8.js.map → p-FIBCluwV.js.map} +0 -0
  493. /package/dist/components/{p-rYePOPbJ.js.map → p-ljbw3UMZ.js.map} +0 -0
  494. /package/dist/components/{p-DZ58Sg5a.js.map → p-vfCu7XSc.js.map} +0 -0
  495. /package/dist/components/{p-Ce4zy8q1.js.map → p-xdmJCPCg.js.map} +0 -0
  496. /package/dist/components/{p-CDJ2Ntcq.js.map → p-xtGGIZmU.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["flagIconLoaders","FlagAustria","import","then","m","FlagBelgium","FlagBulgaria","FlagCanada","FlagCroatia","FlagCyprus","FlagCzechRepublic","FlagDenmark","FlagEU","FlagEstonia","FlagFinland","FlagFrance","FlagGermany","FlagGreece","FlagHungary","FlagIreland","FlagItaly","FlagLatvia","FlagLithuania","FlagLuxembourg","FlagMalta","FlagMexico","FlagNetherlands","FlagPoland","FlagPortugal","FlagRomania","FlagSlovakia","FlagSlovenia","FlagSpain","FlagSweden","FlagUnitedKingdom","FlagUnitedStates","systemIconLoaders","AI","AIChip","AINew","AISparkle","AUX","AUXFilled","AndroidFilled","ArrowDown","ArrowLeft","ArrowPath","ArrowRight","ArrowUp","ArrowsDiagonal","ArrowsDiff","ArrowsDiffDisabled","ArrowsVertical","AtSign","Avatar","BackslashBrackets","BatteryCharging","BatteryEmpty","BatteryFull","BatteryHalf","BatteryLow","Beaker","Bell","BellCircle","BellExclamation","BellFilled","BellRinging","BellWifi","BlackWhite","BlankUI","Bluetooth","Bolt","BoltFilled","Bookmark","Box","Braces","BracketsCircle","Bug","BuildingFacility","BuildingHome","BuildingOffice","BuildingPublic","BuildingShop","Bulb","Calculator","Calendar","CalendarClock","CameraA","CameraB","Card","CardPerson","Cart","Chart","Check","CheckCircle","CheckCircleFilled","CheckDouble","ChevronDown","ChevronDownUp","ChevronLeft","ChevronLeftDouble","ChevronRight","ChevronRightDouble","ChevronUp","ChevronUpDown","Circle","CircleArrow","CircleArrowsDiff","CircleArrowsDiffDisabled","CircleConcentricFilled","CircleConcentricThree","CircleConcentricTwo","CircleExclamation","CircleExclamationFilled","CircleFastForward","CircleFilled","CircleGrid","CirclePlay","CircleQuestion","CircleSlash","Clipboard","ClipboardCheck","Clock","ClockDefer","ClockFilled","ClockSixteenHour","Cloud","CloudEllipses","CloudLightning","CloudRain","CloudRainSun","CloudSun","CloudWind","Cluster","Coin","CoinStack","CoinStackGeneral","Compass","Copy","Crop","Cross","CrossCircle","CrossCircleFilled","Cube","Cup","CursorPointer","CursorPointerMinus","CursorPointerPlus","Dashboard","DeviceAIDashcamPlus","DeviceAssetTracker","DeviceDVR","DeviceDashcam","DeviceDashcamLiveStream","DeviceDoorSensor","DeviceMobile","DeviceMobileTwo","DeviceOmnicam","DeviceSensor","DeviceTablet","DeviceVehicleGateway","Devices","Document","DocumentArrow","DocumentChart","DocumentDollar","DocumentGear","DocumentInverted","DocumentPencil","DocumentPlus","DocumentQuestion","DocumentReceipt","DocumentStacked","Dot","DotFilled","DotPath","Download","Drag","Ellipses","Email","Engine","Enter","EntityAsset","EntityAssetFilled","EntityDriver","EntityDriverFilled","EntityTravelGroup","EntityTravelGroupFilled","EntityVehicle","EntityVehicleCharging","EntityVehicleChargingFilled","EntityVehicleFilled","EntityVehicleImmobilized","EntityVehicleImmobilizedFilled","ErrorTriangle","ErrorTriangleFilled","ErrorTriangleSimpleFilled","Export","ExternalLink","Eye","EyeDisabled","EyeLock","FastForward","FastForwardSkip","Filters","FitToScreen","Flag","FlagFilled","FloppyDisk","Folder","FolderFilled","FuelPump","FullScreen","FullScreenExit","Gauge","GaugeTemperature","Gear","GearCheck","Geofence","GeofenceCircle","GeofenceDiamond","GeofenceSquare","GlobeNetwork","GlobeWorldMap","Graph","GraphArrow","GraphBars","GraphDecreasing","GraphIncreasing","Hamburger","HandHeart","HandOpen","Headset","History","HourGlass","Image","Import","ImportClock","Inbox","IosFilled","Jerrycan","KeyA","KeyB","KeyCmd","KeyShift","LED","Layers","Leaf","LeftCollapse","LeftCollapseB","LeftExpand","LeftExpandB","LeftTurnSignal","LetterB","LetterC","LetterI","License","LicensePlate","Lifebuoy","Link","List","Loads","LocationPin","LocationPinArrows","LocationPinDisabled","LocationPinDollar","LockClosed","LockClosedFilled","LockOpen","Logout","Logs","LogsMagnifyingGlass","MagnifyingGlass","MagnifyingGlassGraph","MagnifyingGlassZoomIn","MagnifyingGlassZoomOut","MapNavigation","MapPage","MapPin","MarkRead","Match","MessageBubble","MessageBubbleStack","Messaging","Mic","MicMute","Minimize","Monitor","Notification","NumberTen","OctagonSubtract","Odometer","OverviewAI","PanelCollapse","PanelExpand","Paperclip","PaperplaneSend","Paragraph","ParagraphCheck","ParagraphPencil","Pause","PauseFilled","Pencil","PencilSquiggle","Person","PersonAt","PersonConnect","PersonFrame","PersonGear","PersonGroup","PersonGroupArrows","PersonGroupThree","PersonManager","PersonShield","PersonStar","Phone","PhoneDisconnect","PicmanFilled","Pin","PipBottomLeft","PipBottomRight","PipTopLeft","PipTopRight","Play","PlayFilled","Plug","Plus","PlusCircle","Preferences","Printer","PunchCard","Puzzle","PuzzleJoined","Redo","Refresh","Restore","RewardRibbon","Rewind","RewindSkip","RewindSkipFilled","RightCollapse","RightCollapseB","RightExpand","RightExpandB","RightTurnSignal","Rotate","Satellite","Scan","Scissor","Scope","Seatbelt","SeatbeltBuckle","SectionList","Shapes","ShareCircles","ShareCirclesFilled","SharePaperplane","Shield","ShieldCheck","ShieldCheckmarkFilled","ShieldCircle","ShieldCircleFilled","ShieldCross","ShieldCrossFilled","ShieldFilled","ShieldLock","ShieldLockFilled","ShieldPerson","ShoppingBag","Snowflake","SpeakerPhone","SpeedometerArrow","SpeedometerLeft","SpeedometerRight","SpikeCirclePercentage","SpikeCirclePercentageFilled","Square","SquareArrowTopRight","SquareCheck","SquareCheckFilled","SquareDollar","SquareDollarFilled","SquareDottedMinus","SquareFilled","SquareGrid","SquarePencil","SquarePlus","SquareSubtract","SquareSubtractFilled","Star","StarFilled","Stopwatch","Street","Subtract","SubtractCircle","SubtractCircleFilled","Table","Tag","Target","TargetDollar","Text","ThemeDark","ThemeLight","ThumbsDown","ThumbsDownFilled","ThumbsUp","ThumbsUpFilled","TirePressure","Toggle","TrafficLight","Trash","Trophy","TurnSignal","TurnSignalFilled","Undo","Upgrade","Upload","VehicleTrailer","VehicleTruck","VehicleTruckMagnifyingGlass","Video","ViewMenu","Volume","VolumeFilled","VolumeMute","VolumeMuteFilled","WandSparkle","Waveform","Webhooks","Whistle","WifiHorizontal","WifiTower","WifiVertical","WifiVerticalFilled","WifiVerticalFilledDisabled","WorkflowA","WorkflowB","Wrench","ZoomBackOut","CACHE_KEY","Symbol","for","iconCacheKey","name","flag","iconCache","g","globalThis","Map","FORBIDDEN_ELEMENTS","Set","isValidIconSvgElement","el","has","localName","toLowerCase","attr","getAttributeNames","lower","startsWith","value","getAttribute","i","children","length","isValidIconSvgRoot","root","parseIconSvg","svg","DOMParser","doc","parseFromString","querySelector","documentElement","iconCss","Icon","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","size","color","loadToken","renderedSvg","resolveSvg","key","token","cached","get","undefined","loaders","loader","Object","prototype","hasOwnProperty","call","set","catch","componentWillLoad","updateSvg","container","replaceChildren","removeAttribute","setAttribute","style","display","flexShrink","width","height","onIconChange","componentDidRender","render","isCustomColor","cls","icon","h","Host","alignItems","justifyContent","class","role","label"],"sources":["src/wc/components/Icon/flag-icon-catalog.ts","src/wc/components/Icon/system-icon-catalog.ts","src/wc/components/Icon/icon-cache.ts","src/wc/components/Icon/icon-svg.ts","src/wc/components/Icon/Icon.css?tag=ds-icon&encapsulation=scoped","src/wc/components/Icon/Icon.tsx"],"sourcesContent":["/** Auto-generated by scripts/generate-icon-catalog.mjs — do not edit. */\n\nexport const flagIconLoaders: Record<string, () => Promise<string>> = {\n FlagAustria: () => import('@ds-mo/icons/svg/flags/FlagAustria').then(m => m.FlagAustria),\n FlagBelgium: () => import('@ds-mo/icons/svg/flags/FlagBelgium').then(m => m.FlagBelgium),\n FlagBulgaria: () => import('@ds-mo/icons/svg/flags/FlagBulgaria').then(m => m.FlagBulgaria),\n FlagCanada: () => import('@ds-mo/icons/svg/flags/FlagCanada').then(m => m.FlagCanada),\n FlagCroatia: () => import('@ds-mo/icons/svg/flags/FlagCroatia').then(m => m.FlagCroatia),\n FlagCyprus: () => import('@ds-mo/icons/svg/flags/FlagCyprus').then(m => m.FlagCyprus),\n FlagCzechRepublic: () => import('@ds-mo/icons/svg/flags/FlagCzechRepublic').then(m => m.FlagCzechRepublic),\n FlagDenmark: () => import('@ds-mo/icons/svg/flags/FlagDenmark').then(m => m.FlagDenmark),\n FlagEU: () => import('@ds-mo/icons/svg/flags/FlagEU').then(m => m.FlagEU),\n FlagEstonia: () => import('@ds-mo/icons/svg/flags/FlagEstonia').then(m => m.FlagEstonia),\n FlagFinland: () => import('@ds-mo/icons/svg/flags/FlagFinland').then(m => m.FlagFinland),\n FlagFrance: () => import('@ds-mo/icons/svg/flags/FlagFrance').then(m => m.FlagFrance),\n FlagGermany: () => import('@ds-mo/icons/svg/flags/FlagGermany').then(m => m.FlagGermany),\n FlagGreece: () => import('@ds-mo/icons/svg/flags/FlagGreece').then(m => m.FlagGreece),\n FlagHungary: () => import('@ds-mo/icons/svg/flags/FlagHungary').then(m => m.FlagHungary),\n FlagIreland: () => import('@ds-mo/icons/svg/flags/FlagIreland').then(m => m.FlagIreland),\n FlagItaly: () => import('@ds-mo/icons/svg/flags/FlagItaly').then(m => m.FlagItaly),\n FlagLatvia: () => import('@ds-mo/icons/svg/flags/FlagLatvia').then(m => m.FlagLatvia),\n FlagLithuania: () => import('@ds-mo/icons/svg/flags/FlagLithuania').then(m => m.FlagLithuania),\n FlagLuxembourg: () => import('@ds-mo/icons/svg/flags/FlagLuxembourg').then(m => m.FlagLuxembourg),\n FlagMalta: () => import('@ds-mo/icons/svg/flags/FlagMalta').then(m => m.FlagMalta),\n FlagMexico: () => import('@ds-mo/icons/svg/flags/FlagMexico').then(m => m.FlagMexico),\n FlagNetherlands: () => import('@ds-mo/icons/svg/flags/FlagNetherlands').then(m => m.FlagNetherlands),\n FlagPoland: () => import('@ds-mo/icons/svg/flags/FlagPoland').then(m => m.FlagPoland),\n FlagPortugal: () => import('@ds-mo/icons/svg/flags/FlagPortugal').then(m => m.FlagPortugal),\n FlagRomania: () => import('@ds-mo/icons/svg/flags/FlagRomania').then(m => m.FlagRomania),\n FlagSlovakia: () => import('@ds-mo/icons/svg/flags/FlagSlovakia').then(m => m.FlagSlovakia),\n FlagSlovenia: () => import('@ds-mo/icons/svg/flags/FlagSlovenia').then(m => m.FlagSlovenia),\n FlagSpain: () => import('@ds-mo/icons/svg/flags/FlagSpain').then(m => m.FlagSpain),\n FlagSweden: () => import('@ds-mo/icons/svg/flags/FlagSweden').then(m => m.FlagSweden),\n FlagUnitedKingdom: () => import('@ds-mo/icons/svg/flags/FlagUnitedKingdom').then(m => m.FlagUnitedKingdom),\n FlagUnitedStates: () => import('@ds-mo/icons/svg/flags/FlagUnitedStates').then(m => m.FlagUnitedStates),\n};\n","/** Auto-generated by scripts/generate-icon-catalog.mjs — do not edit. */\n\nexport const systemIconLoaders: Record<string, () => Promise<string>> = {\n AI: () => import('@ds-mo/icons/svg/AI').then(m => m.AI),\n AIChip: () => import('@ds-mo/icons/svg/AIChip').then(m => m.AIChip),\n AINew: () => import('@ds-mo/icons/svg/AINew').then(m => m.AINew),\n AISparkle: () => import('@ds-mo/icons/svg/AISparkle').then(m => m.AISparkle),\n AUX: () => import('@ds-mo/icons/svg/AUX').then(m => m.AUX),\n AUXFilled: () => import('@ds-mo/icons/svg/AUXFilled').then(m => m.AUXFilled),\n AndroidFilled: () => import('@ds-mo/icons/svg/AndroidFilled').then(m => m.AndroidFilled),\n ArrowDown: () => import('@ds-mo/icons/svg/ArrowDown').then(m => m.ArrowDown),\n ArrowLeft: () => import('@ds-mo/icons/svg/ArrowLeft').then(m => m.ArrowLeft),\n ArrowPath: () => import('@ds-mo/icons/svg/ArrowPath').then(m => m.ArrowPath),\n ArrowRight: () => import('@ds-mo/icons/svg/ArrowRight').then(m => m.ArrowRight),\n ArrowUp: () => import('@ds-mo/icons/svg/ArrowUp').then(m => m.ArrowUp),\n ArrowsDiagonal: () => import('@ds-mo/icons/svg/ArrowsDiagonal').then(m => m.ArrowsDiagonal),\n ArrowsDiff: () => import('@ds-mo/icons/svg/ArrowsDiff').then(m => m.ArrowsDiff),\n ArrowsDiffDisabled: () => import('@ds-mo/icons/svg/ArrowsDiffDisabled').then(m => m.ArrowsDiffDisabled),\n ArrowsVertical: () => import('@ds-mo/icons/svg/ArrowsVertical').then(m => m.ArrowsVertical),\n AtSign: () => import('@ds-mo/icons/svg/AtSign').then(m => m.AtSign),\n Avatar: () => import('@ds-mo/icons/svg/Avatar').then(m => m.Avatar),\n BackslashBrackets: () => import('@ds-mo/icons/svg/BackslashBrackets').then(m => m.BackslashBrackets),\n BatteryCharging: () => import('@ds-mo/icons/svg/BatteryCharging').then(m => m.BatteryCharging),\n BatteryEmpty: () => import('@ds-mo/icons/svg/BatteryEmpty').then(m => m.BatteryEmpty),\n BatteryFull: () => import('@ds-mo/icons/svg/BatteryFull').then(m => m.BatteryFull),\n BatteryHalf: () => import('@ds-mo/icons/svg/BatteryHalf').then(m => m.BatteryHalf),\n BatteryLow: () => import('@ds-mo/icons/svg/BatteryLow').then(m => m.BatteryLow),\n Beaker: () => import('@ds-mo/icons/svg/Beaker').then(m => m.Beaker),\n Bell: () => import('@ds-mo/icons/svg/Bell').then(m => m.Bell),\n BellCircle: () => import('@ds-mo/icons/svg/BellCircle').then(m => m.BellCircle),\n BellExclamation: () => import('@ds-mo/icons/svg/BellExclamation').then(m => m.BellExclamation),\n BellFilled: () => import('@ds-mo/icons/svg/BellFilled').then(m => m.BellFilled),\n BellRinging: () => import('@ds-mo/icons/svg/BellRinging').then(m => m.BellRinging),\n BellWifi: () => import('@ds-mo/icons/svg/BellWifi').then(m => m.BellWifi),\n BlackWhite: () => import('@ds-mo/icons/svg/BlackWhite').then(m => m.BlackWhite),\n BlankUI: () => import('@ds-mo/icons/svg/BlankUI').then(m => m.BlankUI),\n Bluetooth: () => import('@ds-mo/icons/svg/Bluetooth').then(m => m.Bluetooth),\n Bolt: () => import('@ds-mo/icons/svg/Bolt').then(m => m.Bolt),\n BoltFilled: () => import('@ds-mo/icons/svg/BoltFilled').then(m => m.BoltFilled),\n Bookmark: () => import('@ds-mo/icons/svg/Bookmark').then(m => m.Bookmark),\n Box: () => import('@ds-mo/icons/svg/Box').then(m => m.Box),\n Braces: () => import('@ds-mo/icons/svg/Braces').then(m => m.Braces),\n BracketsCircle: () => import('@ds-mo/icons/svg/BracketsCircle').then(m => m.BracketsCircle),\n Bug: () => import('@ds-mo/icons/svg/Bug').then(m => m.Bug),\n BuildingFacility: () => import('@ds-mo/icons/svg/BuildingFacility').then(m => m.BuildingFacility),\n BuildingHome: () => import('@ds-mo/icons/svg/BuildingHome').then(m => m.BuildingHome),\n BuildingOffice: () => import('@ds-mo/icons/svg/BuildingOffice').then(m => m.BuildingOffice),\n BuildingPublic: () => import('@ds-mo/icons/svg/BuildingPublic').then(m => m.BuildingPublic),\n BuildingShop: () => import('@ds-mo/icons/svg/BuildingShop').then(m => m.BuildingShop),\n Bulb: () => import('@ds-mo/icons/svg/Bulb').then(m => m.Bulb),\n Calculator: () => import('@ds-mo/icons/svg/Calculator').then(m => m.Calculator),\n Calendar: () => import('@ds-mo/icons/svg/Calendar').then(m => m.Calendar),\n CalendarClock: () => import('@ds-mo/icons/svg/CalendarClock').then(m => m.CalendarClock),\n CameraA: () => import('@ds-mo/icons/svg/CameraA').then(m => m.CameraA),\n CameraB: () => import('@ds-mo/icons/svg/CameraB').then(m => m.CameraB),\n Card: () => import('@ds-mo/icons/svg/Card').then(m => m.Card),\n CardPerson: () => import('@ds-mo/icons/svg/CardPerson').then(m => m.CardPerson),\n Cart: () => import('@ds-mo/icons/svg/Cart').then(m => m.Cart),\n Chart: () => import('@ds-mo/icons/svg/Chart').then(m => m.Chart),\n Check: () => import('@ds-mo/icons/svg/Check').then(m => m.Check),\n CheckCircle: () => import('@ds-mo/icons/svg/CheckCircle').then(m => m.CheckCircle),\n CheckCircleFilled: () => import('@ds-mo/icons/svg/CheckCircleFilled').then(m => m.CheckCircleFilled),\n CheckDouble: () => import('@ds-mo/icons/svg/CheckDouble').then(m => m.CheckDouble),\n ChevronDown: () => import('@ds-mo/icons/svg/ChevronDown').then(m => m.ChevronDown),\n ChevronDownUp: () => import('@ds-mo/icons/svg/ChevronDownUp').then(m => m.ChevronDownUp),\n ChevronLeft: () => import('@ds-mo/icons/svg/ChevronLeft').then(m => m.ChevronLeft),\n ChevronLeftDouble: () => import('@ds-mo/icons/svg/ChevronLeftDouble').then(m => m.ChevronLeftDouble),\n ChevronRight: () => import('@ds-mo/icons/svg/ChevronRight').then(m => m.ChevronRight),\n ChevronRightDouble: () => import('@ds-mo/icons/svg/ChevronRightDouble').then(m => m.ChevronRightDouble),\n ChevronUp: () => import('@ds-mo/icons/svg/ChevronUp').then(m => m.ChevronUp),\n ChevronUpDown: () => import('@ds-mo/icons/svg/ChevronUpDown').then(m => m.ChevronUpDown),\n Circle: () => import('@ds-mo/icons/svg/Circle').then(m => m.Circle),\n CircleArrow: () => import('@ds-mo/icons/svg/CircleArrow').then(m => m.CircleArrow),\n CircleArrowsDiff: () => import('@ds-mo/icons/svg/CircleArrowsDiff').then(m => m.CircleArrowsDiff),\n CircleArrowsDiffDisabled: () => import('@ds-mo/icons/svg/CircleArrowsDiffDisabled').then(m => m.CircleArrowsDiffDisabled),\n CircleConcentricFilled: () => import('@ds-mo/icons/svg/CircleConcentricFilled').then(m => m.CircleConcentricFilled),\n CircleConcentricThree: () => import('@ds-mo/icons/svg/CircleConcentricThree').then(m => m.CircleConcentricThree),\n CircleConcentricTwo: () => import('@ds-mo/icons/svg/CircleConcentricTwo').then(m => m.CircleConcentricTwo),\n CircleExclamation: () => import('@ds-mo/icons/svg/CircleExclamation').then(m => m.CircleExclamation),\n CircleExclamationFilled: () => import('@ds-mo/icons/svg/CircleExclamationFilled').then(m => m.CircleExclamationFilled),\n CircleFastForward: () => import('@ds-mo/icons/svg/CircleFastForward').then(m => m.CircleFastForward),\n CircleFilled: () => import('@ds-mo/icons/svg/CircleFilled').then(m => m.CircleFilled),\n CircleGrid: () => import('@ds-mo/icons/svg/CircleGrid').then(m => m.CircleGrid),\n CirclePlay: () => import('@ds-mo/icons/svg/CirclePlay').then(m => m.CirclePlay),\n CircleQuestion: () => import('@ds-mo/icons/svg/CircleQuestion').then(m => m.CircleQuestion),\n CircleSlash: () => import('@ds-mo/icons/svg/CircleSlash').then(m => m.CircleSlash),\n Clipboard: () => import('@ds-mo/icons/svg/Clipboard').then(m => m.Clipboard),\n ClipboardCheck: () => import('@ds-mo/icons/svg/ClipboardCheck').then(m => m.ClipboardCheck),\n Clock: () => import('@ds-mo/icons/svg/Clock').then(m => m.Clock),\n ClockDefer: () => import('@ds-mo/icons/svg/ClockDefer').then(m => m.ClockDefer),\n ClockFilled: () => import('@ds-mo/icons/svg/ClockFilled').then(m => m.ClockFilled),\n ClockSixteenHour: () => import('@ds-mo/icons/svg/ClockSixteenHour').then(m => m.ClockSixteenHour),\n Cloud: () => import('@ds-mo/icons/svg/Cloud').then(m => m.Cloud),\n CloudEllipses: () => import('@ds-mo/icons/svg/CloudEllipses').then(m => m.CloudEllipses),\n CloudLightning: () => import('@ds-mo/icons/svg/CloudLightning').then(m => m.CloudLightning),\n CloudRain: () => import('@ds-mo/icons/svg/CloudRain').then(m => m.CloudRain),\n CloudRainSun: () => import('@ds-mo/icons/svg/CloudRainSun').then(m => m.CloudRainSun),\n CloudSun: () => import('@ds-mo/icons/svg/CloudSun').then(m => m.CloudSun),\n CloudWind: () => import('@ds-mo/icons/svg/CloudWind').then(m => m.CloudWind),\n Cluster: () => import('@ds-mo/icons/svg/Cluster').then(m => m.Cluster),\n Coin: () => import('@ds-mo/icons/svg/Coin').then(m => m.Coin),\n CoinStack: () => import('@ds-mo/icons/svg/CoinStack').then(m => m.CoinStack),\n CoinStackGeneral: () => import('@ds-mo/icons/svg/CoinStackGeneral').then(m => m.CoinStackGeneral),\n Compass: () => import('@ds-mo/icons/svg/Compass').then(m => m.Compass),\n Copy: () => import('@ds-mo/icons/svg/Copy').then(m => m.Copy),\n Crop: () => import('@ds-mo/icons/svg/Crop').then(m => m.Crop),\n Cross: () => import('@ds-mo/icons/svg/Cross').then(m => m.Cross),\n CrossCircle: () => import('@ds-mo/icons/svg/CrossCircle').then(m => m.CrossCircle),\n CrossCircleFilled: () => import('@ds-mo/icons/svg/CrossCircleFilled').then(m => m.CrossCircleFilled),\n Cube: () => import('@ds-mo/icons/svg/Cube').then(m => m.Cube),\n Cup: () => import('@ds-mo/icons/svg/Cup').then(m => m.Cup),\n CursorPointer: () => import('@ds-mo/icons/svg/CursorPointer').then(m => m.CursorPointer),\n CursorPointerMinus: () => import('@ds-mo/icons/svg/CursorPointerMinus').then(m => m.CursorPointerMinus),\n CursorPointerPlus: () => import('@ds-mo/icons/svg/CursorPointerPlus').then(m => m.CursorPointerPlus),\n Dashboard: () => import('@ds-mo/icons/svg/Dashboard').then(m => m.Dashboard),\n DeviceAIDashcamPlus: () => import('@ds-mo/icons/svg/DeviceAIDashcamPlus').then(m => m.DeviceAIDashcamPlus),\n DeviceAssetTracker: () => import('@ds-mo/icons/svg/DeviceAssetTracker').then(m => m.DeviceAssetTracker),\n DeviceDVR: () => import('@ds-mo/icons/svg/DeviceDVR').then(m => m.DeviceDVR),\n DeviceDashcam: () => import('@ds-mo/icons/svg/DeviceDashcam').then(m => m.DeviceDashcam),\n DeviceDashcamLiveStream: () => import('@ds-mo/icons/svg/DeviceDashcamLiveStream').then(m => m.DeviceDashcamLiveStream),\n DeviceDoorSensor: () => import('@ds-mo/icons/svg/DeviceDoorSensor').then(m => m.DeviceDoorSensor),\n DeviceMobile: () => import('@ds-mo/icons/svg/DeviceMobile').then(m => m.DeviceMobile),\n DeviceMobileTwo: () => import('@ds-mo/icons/svg/DeviceMobileTwo').then(m => m.DeviceMobileTwo),\n DeviceOmnicam: () => import('@ds-mo/icons/svg/DeviceOmnicam').then(m => m.DeviceOmnicam),\n DeviceSensor: () => import('@ds-mo/icons/svg/DeviceSensor').then(m => m.DeviceSensor),\n DeviceTablet: () => import('@ds-mo/icons/svg/DeviceTablet').then(m => m.DeviceTablet),\n DeviceVehicleGateway: () => import('@ds-mo/icons/svg/DeviceVehicleGateway').then(m => m.DeviceVehicleGateway),\n Devices: () => import('@ds-mo/icons/svg/Devices').then(m => m.Devices),\n Document: () => import('@ds-mo/icons/svg/Document').then(m => m.Document),\n DocumentArrow: () => import('@ds-mo/icons/svg/DocumentArrow').then(m => m.DocumentArrow),\n DocumentChart: () => import('@ds-mo/icons/svg/DocumentChart').then(m => m.DocumentChart),\n DocumentDollar: () => import('@ds-mo/icons/svg/DocumentDollar').then(m => m.DocumentDollar),\n DocumentGear: () => import('@ds-mo/icons/svg/DocumentGear').then(m => m.DocumentGear),\n DocumentInverted: () => import('@ds-mo/icons/svg/DocumentInverted').then(m => m.DocumentInverted),\n DocumentPencil: () => import('@ds-mo/icons/svg/DocumentPencil').then(m => m.DocumentPencil),\n DocumentPlus: () => import('@ds-mo/icons/svg/DocumentPlus').then(m => m.DocumentPlus),\n DocumentQuestion: () => import('@ds-mo/icons/svg/DocumentQuestion').then(m => m.DocumentQuestion),\n DocumentReceipt: () => import('@ds-mo/icons/svg/DocumentReceipt').then(m => m.DocumentReceipt),\n DocumentStacked: () => import('@ds-mo/icons/svg/DocumentStacked').then(m => m.DocumentStacked),\n Dot: () => import('@ds-mo/icons/svg/Dot').then(m => m.Dot),\n DotFilled: () => import('@ds-mo/icons/svg/DotFilled').then(m => m.DotFilled),\n DotPath: () => import('@ds-mo/icons/svg/DotPath').then(m => m.DotPath),\n Download: () => import('@ds-mo/icons/svg/Download').then(m => m.Download),\n Drag: () => import('@ds-mo/icons/svg/Drag').then(m => m.Drag),\n Ellipses: () => import('@ds-mo/icons/svg/Ellipses').then(m => m.Ellipses),\n Email: () => import('@ds-mo/icons/svg/Email').then(m => m.Email),\n Engine: () => import('@ds-mo/icons/svg/Engine').then(m => m.Engine),\n Enter: () => import('@ds-mo/icons/svg/Enter').then(m => m.Enter),\n EntityAsset: () => import('@ds-mo/icons/svg/EntityAsset').then(m => m.EntityAsset),\n EntityAssetFilled: () => import('@ds-mo/icons/svg/EntityAssetFilled').then(m => m.EntityAssetFilled),\n EntityDriver: () => import('@ds-mo/icons/svg/EntityDriver').then(m => m.EntityDriver),\n EntityDriverFilled: () => import('@ds-mo/icons/svg/EntityDriverFilled').then(m => m.EntityDriverFilled),\n EntityTravelGroup: () => import('@ds-mo/icons/svg/EntityTravelGroup').then(m => m.EntityTravelGroup),\n EntityTravelGroupFilled: () => import('@ds-mo/icons/svg/EntityTravelGroupFilled').then(m => m.EntityTravelGroupFilled),\n EntityVehicle: () => import('@ds-mo/icons/svg/EntityVehicle').then(m => m.EntityVehicle),\n EntityVehicleCharging: () => import('@ds-mo/icons/svg/EntityVehicleCharging').then(m => m.EntityVehicleCharging),\n EntityVehicleChargingFilled: () => import('@ds-mo/icons/svg/EntityVehicleChargingFilled').then(m => m.EntityVehicleChargingFilled),\n EntityVehicleFilled: () => import('@ds-mo/icons/svg/EntityVehicleFilled').then(m => m.EntityVehicleFilled),\n EntityVehicleImmobilized: () => import('@ds-mo/icons/svg/EntityVehicleImmobilized').then(m => m.EntityVehicleImmobilized),\n EntityVehicleImmobilizedFilled: () => import('@ds-mo/icons/svg/EntityVehicleImmobilizedFilled').then(m => m.EntityVehicleImmobilizedFilled),\n ErrorTriangle: () => import('@ds-mo/icons/svg/ErrorTriangle').then(m => m.ErrorTriangle),\n ErrorTriangleFilled: () => import('@ds-mo/icons/svg/ErrorTriangleFilled').then(m => m.ErrorTriangleFilled),\n ErrorTriangleSimpleFilled: () => import('@ds-mo/icons/svg/ErrorTriangleSimpleFilled').then(m => m.ErrorTriangleSimpleFilled),\n Export: () => import('@ds-mo/icons/svg/Export').then(m => m.Export),\n ExternalLink: () => import('@ds-mo/icons/svg/ExternalLink').then(m => m.ExternalLink),\n Eye: () => import('@ds-mo/icons/svg/Eye').then(m => m.Eye),\n EyeDisabled: () => import('@ds-mo/icons/svg/EyeDisabled').then(m => m.EyeDisabled),\n EyeLock: () => import('@ds-mo/icons/svg/EyeLock').then(m => m.EyeLock),\n FastForward: () => import('@ds-mo/icons/svg/FastForward').then(m => m.FastForward),\n FastForwardSkip: () => import('@ds-mo/icons/svg/FastForwardSkip').then(m => m.FastForwardSkip),\n Filters: () => import('@ds-mo/icons/svg/Filters').then(m => m.Filters),\n FitToScreen: () => import('@ds-mo/icons/svg/FitToScreen').then(m => m.FitToScreen),\n Flag: () => import('@ds-mo/icons/svg/Flag').then(m => m.Flag),\n FlagFilled: () => import('@ds-mo/icons/svg/FlagFilled').then(m => m.FlagFilled),\n FloppyDisk: () => import('@ds-mo/icons/svg/FloppyDisk').then(m => m.FloppyDisk),\n Folder: () => import('@ds-mo/icons/svg/Folder').then(m => m.Folder),\n FolderFilled: () => import('@ds-mo/icons/svg/FolderFilled').then(m => m.FolderFilled),\n FuelPump: () => import('@ds-mo/icons/svg/FuelPump').then(m => m.FuelPump),\n FullScreen: () => import('@ds-mo/icons/svg/FullScreen').then(m => m.FullScreen),\n FullScreenExit: () => import('@ds-mo/icons/svg/FullScreenExit').then(m => m.FullScreenExit),\n Gauge: () => import('@ds-mo/icons/svg/Gauge').then(m => m.Gauge),\n GaugeTemperature: () => import('@ds-mo/icons/svg/GaugeTemperature').then(m => m.GaugeTemperature),\n Gear: () => import('@ds-mo/icons/svg/Gear').then(m => m.Gear),\n GearCheck: () => import('@ds-mo/icons/svg/GearCheck').then(m => m.GearCheck),\n Geofence: () => import('@ds-mo/icons/svg/Geofence').then(m => m.Geofence),\n GeofenceCircle: () => import('@ds-mo/icons/svg/GeofenceCircle').then(m => m.GeofenceCircle),\n GeofenceDiamond: () => import('@ds-mo/icons/svg/GeofenceDiamond').then(m => m.GeofenceDiamond),\n GeofenceSquare: () => import('@ds-mo/icons/svg/GeofenceSquare').then(m => m.GeofenceSquare),\n GlobeNetwork: () => import('@ds-mo/icons/svg/GlobeNetwork').then(m => m.GlobeNetwork),\n GlobeWorldMap: () => import('@ds-mo/icons/svg/GlobeWorldMap').then(m => m.GlobeWorldMap),\n Graph: () => import('@ds-mo/icons/svg/Graph').then(m => m.Graph),\n GraphArrow: () => import('@ds-mo/icons/svg/GraphArrow').then(m => m.GraphArrow),\n GraphBars: () => import('@ds-mo/icons/svg/GraphBars').then(m => m.GraphBars),\n GraphDecreasing: () => import('@ds-mo/icons/svg/GraphDecreasing').then(m => m.GraphDecreasing),\n GraphIncreasing: () => import('@ds-mo/icons/svg/GraphIncreasing').then(m => m.GraphIncreasing),\n Hamburger: () => import('@ds-mo/icons/svg/Hamburger').then(m => m.Hamburger),\n HandHeart: () => import('@ds-mo/icons/svg/HandHeart').then(m => m.HandHeart),\n HandOpen: () => import('@ds-mo/icons/svg/HandOpen').then(m => m.HandOpen),\n Headset: () => import('@ds-mo/icons/svg/Headset').then(m => m.Headset),\n History: () => import('@ds-mo/icons/svg/History').then(m => m.History),\n HourGlass: () => import('@ds-mo/icons/svg/HourGlass').then(m => m.HourGlass),\n Image: () => import('@ds-mo/icons/svg/Image').then(m => m.Image),\n Import: () => import('@ds-mo/icons/svg/Import').then(m => m.Import),\n ImportClock: () => import('@ds-mo/icons/svg/ImportClock').then(m => m.ImportClock),\n Inbox: () => import('@ds-mo/icons/svg/Inbox').then(m => m.Inbox),\n IosFilled: () => import('@ds-mo/icons/svg/IosFilled').then(m => m.IosFilled),\n Jerrycan: () => import('@ds-mo/icons/svg/Jerrycan').then(m => m.Jerrycan),\n KeyA: () => import('@ds-mo/icons/svg/KeyA').then(m => m.KeyA),\n KeyB: () => import('@ds-mo/icons/svg/KeyB').then(m => m.KeyB),\n KeyCmd: () => import('@ds-mo/icons/svg/KeyCmd').then(m => m.KeyCmd),\n KeyShift: () => import('@ds-mo/icons/svg/KeyShift').then(m => m.KeyShift),\n LED: () => import('@ds-mo/icons/svg/LED').then(m => m.LED),\n Layers: () => import('@ds-mo/icons/svg/Layers').then(m => m.Layers),\n Leaf: () => import('@ds-mo/icons/svg/Leaf').then(m => m.Leaf),\n LeftCollapse: () => import('@ds-mo/icons/svg/LeftCollapse').then(m => m.LeftCollapse),\n LeftCollapseB: () => import('@ds-mo/icons/svg/LeftCollapseB').then(m => m.LeftCollapseB),\n LeftExpand: () => import('@ds-mo/icons/svg/LeftExpand').then(m => m.LeftExpand),\n LeftExpandB: () => import('@ds-mo/icons/svg/LeftExpandB').then(m => m.LeftExpandB),\n LeftTurnSignal: () => import('@ds-mo/icons/svg/LeftTurnSignal').then(m => m.LeftTurnSignal),\n LetterB: () => import('@ds-mo/icons/svg/LetterB').then(m => m.LetterB),\n LetterC: () => import('@ds-mo/icons/svg/LetterC').then(m => m.LetterC),\n LetterI: () => import('@ds-mo/icons/svg/LetterI').then(m => m.LetterI),\n License: () => import('@ds-mo/icons/svg/License').then(m => m.License),\n LicensePlate: () => import('@ds-mo/icons/svg/LicensePlate').then(m => m.LicensePlate),\n Lifebuoy: () => import('@ds-mo/icons/svg/Lifebuoy').then(m => m.Lifebuoy),\n Link: () => import('@ds-mo/icons/svg/Link').then(m => m.Link),\n List: () => import('@ds-mo/icons/svg/List').then(m => m.List),\n Loads: () => import('@ds-mo/icons/svg/Loads').then(m => m.Loads),\n LocationPin: () => import('@ds-mo/icons/svg/LocationPin').then(m => m.LocationPin),\n LocationPinArrows: () => import('@ds-mo/icons/svg/LocationPinArrows').then(m => m.LocationPinArrows),\n LocationPinDisabled: () => import('@ds-mo/icons/svg/LocationPinDisabled').then(m => m.LocationPinDisabled),\n LocationPinDollar: () => import('@ds-mo/icons/svg/LocationPinDollar').then(m => m.LocationPinDollar),\n LockClosed: () => import('@ds-mo/icons/svg/LockClosed').then(m => m.LockClosed),\n LockClosedFilled: () => import('@ds-mo/icons/svg/LockClosedFilled').then(m => m.LockClosedFilled),\n LockOpen: () => import('@ds-mo/icons/svg/LockOpen').then(m => m.LockOpen),\n Logout: () => import('@ds-mo/icons/svg/Logout').then(m => m.Logout),\n Logs: () => import('@ds-mo/icons/svg/Logs').then(m => m.Logs),\n LogsMagnifyingGlass: () => import('@ds-mo/icons/svg/LogsMagnifyingGlass').then(m => m.LogsMagnifyingGlass),\n MagnifyingGlass: () => import('@ds-mo/icons/svg/MagnifyingGlass').then(m => m.MagnifyingGlass),\n MagnifyingGlassGraph: () => import('@ds-mo/icons/svg/MagnifyingGlassGraph').then(m => m.MagnifyingGlassGraph),\n MagnifyingGlassZoomIn: () => import('@ds-mo/icons/svg/MagnifyingGlassZoomIn').then(m => m.MagnifyingGlassZoomIn),\n MagnifyingGlassZoomOut: () => import('@ds-mo/icons/svg/MagnifyingGlassZoomOut').then(m => m.MagnifyingGlassZoomOut),\n MapNavigation: () => import('@ds-mo/icons/svg/MapNavigation').then(m => m.MapNavigation),\n MapPage: () => import('@ds-mo/icons/svg/MapPage').then(m => m.MapPage),\n MapPin: () => import('@ds-mo/icons/svg/MapPin').then(m => m.MapPin),\n MarkRead: () => import('@ds-mo/icons/svg/MarkRead').then(m => m.MarkRead),\n Match: () => import('@ds-mo/icons/svg/Match').then(m => m.Match),\n MessageBubble: () => import('@ds-mo/icons/svg/MessageBubble').then(m => m.MessageBubble),\n MessageBubbleStack: () => import('@ds-mo/icons/svg/MessageBubbleStack').then(m => m.MessageBubbleStack),\n Messaging: () => import('@ds-mo/icons/svg/Messaging').then(m => m.Messaging),\n Mic: () => import('@ds-mo/icons/svg/Mic').then(m => m.Mic),\n MicMute: () => import('@ds-mo/icons/svg/MicMute').then(m => m.MicMute),\n Minimize: () => import('@ds-mo/icons/svg/Minimize').then(m => m.Minimize),\n Monitor: () => import('@ds-mo/icons/svg/Monitor').then(m => m.Monitor),\n Notification: () => import('@ds-mo/icons/svg/Notification').then(m => m.Notification),\n NumberTen: () => import('@ds-mo/icons/svg/NumberTen').then(m => m.NumberTen),\n OctagonSubtract: () => import('@ds-mo/icons/svg/OctagonSubtract').then(m => m.OctagonSubtract),\n Odometer: () => import('@ds-mo/icons/svg/Odometer').then(m => m.Odometer),\n OverviewAI: () => import('@ds-mo/icons/svg/OverviewAI').then(m => m.OverviewAI),\n PanelCollapse: () => import('@ds-mo/icons/svg/PanelCollapse').then(m => m.PanelCollapse),\n PanelExpand: () => import('@ds-mo/icons/svg/PanelExpand').then(m => m.PanelExpand),\n Paperclip: () => import('@ds-mo/icons/svg/Paperclip').then(m => m.Paperclip),\n PaperplaneSend: () => import('@ds-mo/icons/svg/PaperplaneSend').then(m => m.PaperplaneSend),\n Paragraph: () => import('@ds-mo/icons/svg/Paragraph').then(m => m.Paragraph),\n ParagraphCheck: () => import('@ds-mo/icons/svg/ParagraphCheck').then(m => m.ParagraphCheck),\n ParagraphPencil: () => import('@ds-mo/icons/svg/ParagraphPencil').then(m => m.ParagraphPencil),\n Pause: () => import('@ds-mo/icons/svg/Pause').then(m => m.Pause),\n PauseFilled: () => import('@ds-mo/icons/svg/PauseFilled').then(m => m.PauseFilled),\n Pencil: () => import('@ds-mo/icons/svg/Pencil').then(m => m.Pencil),\n PencilSquiggle: () => import('@ds-mo/icons/svg/PencilSquiggle').then(m => m.PencilSquiggle),\n Person: () => import('@ds-mo/icons/svg/Person').then(m => m.Person),\n PersonAt: () => import('@ds-mo/icons/svg/PersonAt').then(m => m.PersonAt),\n PersonConnect: () => import('@ds-mo/icons/svg/PersonConnect').then(m => m.PersonConnect),\n PersonFrame: () => import('@ds-mo/icons/svg/PersonFrame').then(m => m.PersonFrame),\n PersonGear: () => import('@ds-mo/icons/svg/PersonGear').then(m => m.PersonGear),\n PersonGroup: () => import('@ds-mo/icons/svg/PersonGroup').then(m => m.PersonGroup),\n PersonGroupArrows: () => import('@ds-mo/icons/svg/PersonGroupArrows').then(m => m.PersonGroupArrows),\n PersonGroupThree: () => import('@ds-mo/icons/svg/PersonGroupThree').then(m => m.PersonGroupThree),\n PersonManager: () => import('@ds-mo/icons/svg/PersonManager').then(m => m.PersonManager),\n PersonShield: () => import('@ds-mo/icons/svg/PersonShield').then(m => m.PersonShield),\n PersonStar: () => import('@ds-mo/icons/svg/PersonStar').then(m => m.PersonStar),\n Phone: () => import('@ds-mo/icons/svg/Phone').then(m => m.Phone),\n PhoneDisconnect: () => import('@ds-mo/icons/svg/PhoneDisconnect').then(m => m.PhoneDisconnect),\n PicmanFilled: () => import('@ds-mo/icons/svg/PicmanFilled').then(m => m.PicmanFilled),\n Pin: () => import('@ds-mo/icons/svg/Pin').then(m => m.Pin),\n PipBottomLeft: () => import('@ds-mo/icons/svg/PipBottomLeft').then(m => m.PipBottomLeft),\n PipBottomRight: () => import('@ds-mo/icons/svg/PipBottomRight').then(m => m.PipBottomRight),\n PipTopLeft: () => import('@ds-mo/icons/svg/PipTopLeft').then(m => m.PipTopLeft),\n PipTopRight: () => import('@ds-mo/icons/svg/PipTopRight').then(m => m.PipTopRight),\n Play: () => import('@ds-mo/icons/svg/Play').then(m => m.Play),\n PlayFilled: () => import('@ds-mo/icons/svg/PlayFilled').then(m => m.PlayFilled),\n Plug: () => import('@ds-mo/icons/svg/Plug').then(m => m.Plug),\n Plus: () => import('@ds-mo/icons/svg/Plus').then(m => m.Plus),\n PlusCircle: () => import('@ds-mo/icons/svg/PlusCircle').then(m => m.PlusCircle),\n Preferences: () => import('@ds-mo/icons/svg/Preferences').then(m => m.Preferences),\n Printer: () => import('@ds-mo/icons/svg/Printer').then(m => m.Printer),\n PunchCard: () => import('@ds-mo/icons/svg/PunchCard').then(m => m.PunchCard),\n Puzzle: () => import('@ds-mo/icons/svg/Puzzle').then(m => m.Puzzle),\n PuzzleJoined: () => import('@ds-mo/icons/svg/PuzzleJoined').then(m => m.PuzzleJoined),\n Redo: () => import('@ds-mo/icons/svg/Redo').then(m => m.Redo),\n Refresh: () => import('@ds-mo/icons/svg/Refresh').then(m => m.Refresh),\n Restore: () => import('@ds-mo/icons/svg/Restore').then(m => m.Restore),\n RewardRibbon: () => import('@ds-mo/icons/svg/RewardRibbon').then(m => m.RewardRibbon),\n Rewind: () => import('@ds-mo/icons/svg/Rewind').then(m => m.Rewind),\n RewindSkip: () => import('@ds-mo/icons/svg/RewindSkip').then(m => m.RewindSkip),\n RewindSkipFilled: () => import('@ds-mo/icons/svg/RewindSkipFilled').then(m => m.RewindSkipFilled),\n RightCollapse: () => import('@ds-mo/icons/svg/RightCollapse').then(m => m.RightCollapse),\n RightCollapseB: () => import('@ds-mo/icons/svg/RightCollapseB').then(m => m.RightCollapseB),\n RightExpand: () => import('@ds-mo/icons/svg/RightExpand').then(m => m.RightExpand),\n RightExpandB: () => import('@ds-mo/icons/svg/RightExpandB').then(m => m.RightExpandB),\n RightTurnSignal: () => import('@ds-mo/icons/svg/RightTurnSignal').then(m => m.RightTurnSignal),\n Rotate: () => import('@ds-mo/icons/svg/Rotate').then(m => m.Rotate),\n Satellite: () => import('@ds-mo/icons/svg/Satellite').then(m => m.Satellite),\n Scan: () => import('@ds-mo/icons/svg/Scan').then(m => m.Scan),\n Scissor: () => import('@ds-mo/icons/svg/Scissor').then(m => m.Scissor),\n Scope: () => import('@ds-mo/icons/svg/Scope').then(m => m.Scope),\n Seatbelt: () => import('@ds-mo/icons/svg/Seatbelt').then(m => m.Seatbelt),\n SeatbeltBuckle: () => import('@ds-mo/icons/svg/SeatbeltBuckle').then(m => m.SeatbeltBuckle),\n SectionList: () => import('@ds-mo/icons/svg/SectionList').then(m => m.SectionList),\n Shapes: () => import('@ds-mo/icons/svg/Shapes').then(m => m.Shapes),\n ShareCircles: () => import('@ds-mo/icons/svg/ShareCircles').then(m => m.ShareCircles),\n ShareCirclesFilled: () => import('@ds-mo/icons/svg/ShareCirclesFilled').then(m => m.ShareCirclesFilled),\n SharePaperplane: () => import('@ds-mo/icons/svg/SharePaperplane').then(m => m.SharePaperplane),\n Shield: () => import('@ds-mo/icons/svg/Shield').then(m => m.Shield),\n ShieldCheck: () => import('@ds-mo/icons/svg/ShieldCheck').then(m => m.ShieldCheck),\n ShieldCheckmarkFilled: () => import('@ds-mo/icons/svg/ShieldCheckmarkFilled').then(m => m.ShieldCheckmarkFilled),\n ShieldCircle: () => import('@ds-mo/icons/svg/ShieldCircle').then(m => m.ShieldCircle),\n ShieldCircleFilled: () => import('@ds-mo/icons/svg/ShieldCircleFilled').then(m => m.ShieldCircleFilled),\n ShieldCross: () => import('@ds-mo/icons/svg/ShieldCross').then(m => m.ShieldCross),\n ShieldCrossFilled: () => import('@ds-mo/icons/svg/ShieldCrossFilled').then(m => m.ShieldCrossFilled),\n ShieldFilled: () => import('@ds-mo/icons/svg/ShieldFilled').then(m => m.ShieldFilled),\n ShieldLock: () => import('@ds-mo/icons/svg/ShieldLock').then(m => m.ShieldLock),\n ShieldLockFilled: () => import('@ds-mo/icons/svg/ShieldLockFilled').then(m => m.ShieldLockFilled),\n ShieldPerson: () => import('@ds-mo/icons/svg/ShieldPerson').then(m => m.ShieldPerson),\n ShoppingBag: () => import('@ds-mo/icons/svg/ShoppingBag').then(m => m.ShoppingBag),\n Snowflake: () => import('@ds-mo/icons/svg/Snowflake').then(m => m.Snowflake),\n SpeakerPhone: () => import('@ds-mo/icons/svg/SpeakerPhone').then(m => m.SpeakerPhone),\n SpeedometerArrow: () => import('@ds-mo/icons/svg/SpeedometerArrow').then(m => m.SpeedometerArrow),\n SpeedometerLeft: () => import('@ds-mo/icons/svg/SpeedometerLeft').then(m => m.SpeedometerLeft),\n SpeedometerRight: () => import('@ds-mo/icons/svg/SpeedometerRight').then(m => m.SpeedometerRight),\n SpikeCirclePercentage: () => import('@ds-mo/icons/svg/SpikeCirclePercentage').then(m => m.SpikeCirclePercentage),\n SpikeCirclePercentageFilled: () => import('@ds-mo/icons/svg/SpikeCirclePercentageFilled').then(m => m.SpikeCirclePercentageFilled),\n Square: () => import('@ds-mo/icons/svg/Square').then(m => m.Square),\n SquareArrowTopRight: () => import('@ds-mo/icons/svg/SquareArrowTopRight').then(m => m.SquareArrowTopRight),\n SquareCheck: () => import('@ds-mo/icons/svg/SquareCheck').then(m => m.SquareCheck),\n SquareCheckFilled: () => import('@ds-mo/icons/svg/SquareCheckFilled').then(m => m.SquareCheckFilled),\n SquareDollar: () => import('@ds-mo/icons/svg/SquareDollar').then(m => m.SquareDollar),\n SquareDollarFilled: () => import('@ds-mo/icons/svg/SquareDollarFilled').then(m => m.SquareDollarFilled),\n SquareDottedMinus: () => import('@ds-mo/icons/svg/SquareDottedMinus').then(m => m.SquareDottedMinus),\n SquareFilled: () => import('@ds-mo/icons/svg/SquareFilled').then(m => m.SquareFilled),\n SquareGrid: () => import('@ds-mo/icons/svg/SquareGrid').then(m => m.SquareGrid),\n SquarePencil: () => import('@ds-mo/icons/svg/SquarePencil').then(m => m.SquarePencil),\n SquarePlus: () => import('@ds-mo/icons/svg/SquarePlus').then(m => m.SquarePlus),\n SquareSubtract: () => import('@ds-mo/icons/svg/SquareSubtract').then(m => m.SquareSubtract),\n SquareSubtractFilled: () => import('@ds-mo/icons/svg/SquareSubtractFilled').then(m => m.SquareSubtractFilled),\n Star: () => import('@ds-mo/icons/svg/Star').then(m => m.Star),\n StarFilled: () => import('@ds-mo/icons/svg/StarFilled').then(m => m.StarFilled),\n Stopwatch: () => import('@ds-mo/icons/svg/Stopwatch').then(m => m.Stopwatch),\n Street: () => import('@ds-mo/icons/svg/Street').then(m => m.Street),\n Subtract: () => import('@ds-mo/icons/svg/Subtract').then(m => m.Subtract),\n SubtractCircle: () => import('@ds-mo/icons/svg/SubtractCircle').then(m => m.SubtractCircle),\n SubtractCircleFilled: () => import('@ds-mo/icons/svg/SubtractCircleFilled').then(m => m.SubtractCircleFilled),\n Table: () => import('@ds-mo/icons/svg/Table').then(m => m.Table),\n Tag: () => import('@ds-mo/icons/svg/Tag').then(m => m.Tag),\n Target: () => import('@ds-mo/icons/svg/Target').then(m => m.Target),\n TargetDollar: () => import('@ds-mo/icons/svg/TargetDollar').then(m => m.TargetDollar),\n Text: () => import('@ds-mo/icons/svg/Text').then(m => m.Text),\n ThemeDark: () => import('@ds-mo/icons/svg/ThemeDark').then(m => m.ThemeDark),\n ThemeLight: () => import('@ds-mo/icons/svg/ThemeLight').then(m => m.ThemeLight),\n ThumbsDown: () => import('@ds-mo/icons/svg/ThumbsDown').then(m => m.ThumbsDown),\n ThumbsDownFilled: () => import('@ds-mo/icons/svg/ThumbsDownFilled').then(m => m.ThumbsDownFilled),\n ThumbsUp: () => import('@ds-mo/icons/svg/ThumbsUp').then(m => m.ThumbsUp),\n ThumbsUpFilled: () => import('@ds-mo/icons/svg/ThumbsUpFilled').then(m => m.ThumbsUpFilled),\n TirePressure: () => import('@ds-mo/icons/svg/TirePressure').then(m => m.TirePressure),\n Toggle: () => import('@ds-mo/icons/svg/Toggle').then(m => m.Toggle),\n TrafficLight: () => import('@ds-mo/icons/svg/TrafficLight').then(m => m.TrafficLight),\n Trash: () => import('@ds-mo/icons/svg/Trash').then(m => m.Trash),\n Trophy: () => import('@ds-mo/icons/svg/Trophy').then(m => m.Trophy),\n TurnSignal: () => import('@ds-mo/icons/svg/TurnSignal').then(m => m.TurnSignal),\n TurnSignalFilled: () => import('@ds-mo/icons/svg/TurnSignalFilled').then(m => m.TurnSignalFilled),\n Undo: () => import('@ds-mo/icons/svg/Undo').then(m => m.Undo),\n Upgrade: () => import('@ds-mo/icons/svg/Upgrade').then(m => m.Upgrade),\n Upload: () => import('@ds-mo/icons/svg/Upload').then(m => m.Upload),\n VehicleTrailer: () => import('@ds-mo/icons/svg/VehicleTrailer').then(m => m.VehicleTrailer),\n VehicleTruck: () => import('@ds-mo/icons/svg/VehicleTruck').then(m => m.VehicleTruck),\n VehicleTruckMagnifyingGlass: () => import('@ds-mo/icons/svg/VehicleTruckMagnifyingGlass').then(m => m.VehicleTruckMagnifyingGlass),\n Video: () => import('@ds-mo/icons/svg/Video').then(m => m.Video),\n ViewMenu: () => import('@ds-mo/icons/svg/ViewMenu').then(m => m.ViewMenu),\n Volume: () => import('@ds-mo/icons/svg/Volume').then(m => m.Volume),\n VolumeFilled: () => import('@ds-mo/icons/svg/VolumeFilled').then(m => m.VolumeFilled),\n VolumeMute: () => import('@ds-mo/icons/svg/VolumeMute').then(m => m.VolumeMute),\n VolumeMuteFilled: () => import('@ds-mo/icons/svg/VolumeMuteFilled').then(m => m.VolumeMuteFilled),\n WandSparkle: () => import('@ds-mo/icons/svg/WandSparkle').then(m => m.WandSparkle),\n Waveform: () => import('@ds-mo/icons/svg/Waveform').then(m => m.Waveform),\n Webhooks: () => import('@ds-mo/icons/svg/Webhooks').then(m => m.Webhooks),\n Whistle: () => import('@ds-mo/icons/svg/Whistle').then(m => m.Whistle),\n WifiHorizontal: () => import('@ds-mo/icons/svg/WifiHorizontal').then(m => m.WifiHorizontal),\n WifiTower: () => import('@ds-mo/icons/svg/WifiTower').then(m => m.WifiTower),\n WifiVertical: () => import('@ds-mo/icons/svg/WifiVertical').then(m => m.WifiVertical),\n WifiVerticalFilled: () => import('@ds-mo/icons/svg/WifiVerticalFilled').then(m => m.WifiVerticalFilled),\n WifiVerticalFilledDisabled: () => import('@ds-mo/icons/svg/WifiVerticalFilledDisabled').then(m => m.WifiVerticalFilledDisabled),\n WorkflowA: () => import('@ds-mo/icons/svg/WorkflowA').then(m => m.WorkflowA),\n WorkflowB: () => import('@ds-mo/icons/svg/WorkflowB').then(m => m.WorkflowB),\n Wrench: () => import('@ds-mo/icons/svg/Wrench').then(m => m.Wrench),\n ZoomBackOut: () => import('@ds-mo/icons/svg/ZoomBackOut').then(m => m.ZoomBackOut),\n};\n","/**\n * Shared SVG glyph cache for ds-icon.\n *\n * Keyed on a global symbol so every module instance (the compiled Stencil chunk\n * inside dist/components and any direct source import, e.g. via `@ds-mo/ui/utils`)\n * reads and writes the same cache. Without this, `registerIcons` called from an\n * app would fill a different Map than the one ds-icon resolves from.\n */\nconst CACHE_KEY = Symbol.for('ds-mo.icon-svg-cache');\n\ntype IconCacheMap = Map<string, string>;\n\ntype GlobalWithIconCache = { [CACHE_KEY]?: IconCacheMap };\n\nexport function iconCacheKey(name: string, flag: boolean): string {\n return flag ? `flag:${name}` : `system:${name}`;\n}\n\nexport function iconCache(): IconCacheMap {\n const g = globalThis as GlobalWithIconCache;\n return (g[CACHE_KEY] ??= new Map());\n}\n\n/**\n * Pre-register glyphs so ds-icon renders them synchronously — no lazy-chunk\n * fetch, no first-paint pop-in. Import the SVG strings from `@ds-mo/icons`\n * in the app (statically, so they ship in the app's own bundle):\n *\n * ```ts\n * import { Bell } from '@ds-mo/icons/svg/Bell';\n * import { FlagUnitedStates } from '@ds-mo/icons/svg/flags/FlagUnitedStates';\n * import { registerIcons } from '@ds-mo/ui/utils';\n *\n * registerIcons({ Bell });\n * registerIcons({ FlagUnitedStates });\n * ```\n *\n * Icons that are not registered still work — they lazy-load on first render\n * and stay cached afterwards.\n */\nexport function registerIcons(icons: Record<string, string>, options?: { flag?: boolean }): void {\n const cache = iconCache();\n for (const [name, svg] of Object.entries(icons)) {\n const flag = options?.flag ?? name.startsWith('Flag');\n cache.set(iconCacheKey(name, flag), svg);\n }\n}\n","/**\n * Glyph markup validation + Trusted-Types-safe parsing for ds-icon.\n *\n * Glyphs normally come from the trusted @ds-mo/icons build pipeline, but\n * `registerIcons` accepts arbitrary app-provided strings and injection is a\n * sink — so every glyph is validated at the render boundary. Injection uses\n * parsed DOM nodes (never innerHTML), which keeps ds-icon working under a\n * strict CSP with `require-trusted-types-for 'script'`.\n */\n\n/** Structural view of an element so the walk is unit-testable without a DOM. */\nexport interface IconSvgElementLike {\n localName: string;\n getAttributeNames(): string[];\n getAttribute(name: string): string | null;\n children: ArrayLike<IconSvgElementLike>;\n}\n\n/** Elements that can execute or embed foreign content — never valid in a glyph. */\nconst FORBIDDEN_ELEMENTS = new Set([\n 'script',\n 'foreignobject',\n 'iframe',\n 'object',\n 'embed',\n 'animation', // SVG 1.2 external-content element (distinct from animate/animateTransform)\n]);\n\nfunction isValidIconSvgElement(el: IconSvgElementLike): boolean {\n if (FORBIDDEN_ELEMENTS.has(el.localName.toLowerCase())) return false;\n\n for (const attr of el.getAttributeNames()) {\n const lower = attr.toLowerCase();\n // Event handler attributes (onclick, onload, …) — any casing.\n if (lower.startsWith('on')) return false;\n // References must stay internal (#gradient-id); rejects javascript:, data:,\n // and external URLs on <use>, <a>, <image>, …\n if (lower === 'href' || lower === 'xlink:href') {\n const value = el.getAttribute(attr) ?? '';\n if (!value.startsWith('#')) return false;\n }\n }\n\n for (let i = 0; i < el.children.length; i++) {\n if (!isValidIconSvgElement(el.children[i])) return false;\n }\n\n return true;\n}\n\n/** True when `root` is an `<svg>` whose whole tree passes validation. */\nexport function isValidIconSvgRoot(root: IconSvgElementLike | null): boolean {\n return root != null && root.localName === 'svg' && isValidIconSvgElement(root);\n}\n\n/**\n * Parse + validate glyph markup. Returns a detached `<svg>` element ready to\n * append (appending adopts it into the document), or `null` when the markup\n * is not well-formed XML, not rooted at `<svg>`, or fails validation —\n * ds-icon renders an empty fixed-size box in that case.\n */\nexport function parseIconSvg(svg: string): SVGElement | null {\n if (typeof DOMParser === 'undefined') return null;\n\n const doc = new DOMParser().parseFromString(svg, 'image/svg+xml');\n // Malformed XML yields a parsererror document (root or nested, per browser).\n if (doc.querySelector('parsererror')) return null;\n\n const root = doc.documentElement as unknown as IconSvgElementLike;\n if (!isValidIconSvgRoot(root)) return null;\n\n return doc.documentElement as unknown as SVGElement;\n}\n","/* ── Base icon ───────────────────────────────────────────────────────────── */\n\n.icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n line-height: 0;\n color: inherit;\n /* Explicit size so the SVG (width/height: 100% via JS) has a defined container */\n width: var(--_icon-sz, var(--dimension-iconography-md));\n height: var(--_icon-sz, var(--dimension-iconography-md));\n}\n\n.icon__svg {\n display: contents;\n line-height: 0;\n}\n\n/* SVG width/height are set via inline style in updateSvg() because Stencil's\n scoped CSS cannot reach innerHTML-injected elements (they lack the sc-* class). */\n\n/* ── Sizes ───────────────────────────────────────────────────────────────── */\n\n.icon--size-xs {\n --_icon-sz: var(--dimension-iconography-xs);\n}\n.icon--size-sm {\n --_icon-sz: var(--dimension-iconography-sm);\n}\n.icon--size-md {\n --_icon-sz: var(--dimension-iconography-md);\n}\n.icon--size-lg {\n --_icon-sz: var(--dimension-iconography-lg);\n}\n.icon--size-xl {\n --_icon-sz: var(--dimension-iconography-xl);\n}\n.icon--size-2xl {\n --_icon-sz: var(--dimension-iconography-2xl);\n}\n.icon--size-3xl {\n --_icon-sz: var(--dimension-iconography-3xl);\n}\n\n/* ── Colors — hierarchy ──────────────────────────────────────────────────── */\n\n.icon--color-primary {\n color: var(--color-foreground-primary);\n}\n.icon--color-secondary {\n color: var(--color-foreground-secondary);\n}\n.icon--color-tertiary {\n color: var(--color-foreground-tertiary);\n}\n.icon--color-quaternary {\n color: var(--color-foreground-quaternary);\n}\n.icon--color-inherit {\n color: inherit;\n}\n\n/* ── Colors — intent (bold contrast default) ─────────────────────────────── */\n\n.icon--color-brand {\n color: var(--color-foreground-bold-brand);\n}\n.icon--color-negative {\n color: var(--color-foreground-bold-negative);\n}\n.icon--color-positive {\n color: var(--color-foreground-bold-positive);\n}\n.icon--color-warning {\n color: var(--color-foreground-bold-warning);\n}\n.icon--color-caution {\n color: var(--color-foreground-bold-caution);\n}\n.icon--color-ai {\n color: var(--color-foreground-bold-ai);\n}\n.icon--color-guide {\n color: var(--color-foreground-bold-guide);\n}\n.icon--color-neutral {\n color: var(--color-foreground-bold-neutral);\n}\n\n/* ── Colors — intent faint ───────────────────────────────────────────────── */\n\n.icon--color-faint-brand {\n color: var(--color-foreground-faint-brand);\n}\n.icon--color-faint-negative {\n color: var(--color-foreground-faint-negative);\n}\n.icon--color-faint-positive {\n color: var(--color-foreground-faint-positive);\n}\n.icon--color-faint-warning {\n color: var(--color-foreground-faint-warning);\n}\n.icon--color-faint-caution {\n color: var(--color-foreground-faint-caution);\n}\n.icon--color-faint-ai {\n color: var(--color-foreground-faint-ai);\n}\n.icon--color-faint-neutral {\n color: var(--color-foreground-faint-neutral);\n}\n\n/* ── Colors — intent medium ─────────────────────────────────────────────── */\n\n.icon--color-medium-brand {\n color: var(--color-foreground-medium-brand);\n}\n.icon--color-medium-negative {\n color: var(--color-foreground-medium-negative);\n}\n.icon--color-medium-positive {\n color: var(--color-foreground-medium-positive);\n}\n.icon--color-medium-warning {\n color: var(--color-foreground-medium-warning);\n}\n.icon--color-medium-caution {\n color: var(--color-foreground-medium-caution);\n}\n.icon--color-medium-ai {\n color: var(--color-foreground-medium-ai);\n}\n.icon--color-medium-neutral {\n color: var(--color-foreground-medium-neutral);\n}\n\n/* ── Colors — intent bold (explicit) ────────────────────────────────────── */\n\n.icon--color-bold-brand {\n color: var(--color-foreground-bold-brand);\n}\n.icon--color-bold-negative {\n color: var(--color-foreground-bold-negative);\n}\n.icon--color-bold-positive {\n color: var(--color-foreground-bold-positive);\n}\n.icon--color-bold-warning {\n color: var(--color-foreground-bold-warning);\n}\n.icon--color-bold-caution {\n color: var(--color-foreground-bold-caution);\n}\n.icon--color-bold-ai {\n color: var(--color-foreground-bold-ai);\n}\n.icon--color-bold-neutral {\n color: var(--color-foreground-bold-neutral);\n}\n\n/* ── Colors — intent strong ──────────────────────────────────────────────── */\n\n.icon--color-strong-brand {\n color: var(--color-foreground-strong-brand);\n}\n.icon--color-strong-negative {\n color: var(--color-foreground-strong-negative);\n}\n.icon--color-strong-positive {\n color: var(--color-foreground-strong-positive);\n}\n.icon--color-strong-warning {\n color: var(--color-foreground-strong-warning);\n}\n.icon--color-strong-caution {\n color: var(--color-foreground-strong-caution);\n}\n.icon--color-strong-ai {\n color: var(--color-foreground-strong-ai);\n}\n.icon--color-strong-neutral {\n color: var(--color-foreground-strong-neutral);\n}\n\n/* ── Colors — contextual ────────────────────────────────────────────────── */\n\n.icon--color-on-strong {\n color: var(--color-foreground-on-strong-background-primary);\n}\n.icon--color-on-bold {\n color: var(--color-foreground-on-bold-background-primary);\n}\n","import { Component, Prop, Element, State, Watch, h, Host } from '@stencil/core';\nimport { flagIconLoaders } from './flag-icon-catalog';\nimport { systemIconLoaders } from './system-icon-catalog';\nimport { iconCache, iconCacheKey } from './icon-cache';\nimport { parseIconSvg } from './icon-svg';\n\nexport type IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl';\n\nexport type IconColorToken =\n // Hierarchy\n | 'primary'\n | 'secondary'\n | 'tertiary'\n | 'quaternary'\n // Intent — bold contrast (default)\n | 'brand'\n | 'negative'\n | 'positive'\n | 'warning'\n | 'caution'\n | 'ai'\n | 'guide'\n | 'neutral'\n // Intent — faint\n | 'faint-brand'\n | 'faint-negative'\n | 'faint-positive'\n | 'faint-warning'\n | 'faint-caution'\n | 'faint-ai'\n | 'faint-neutral'\n // Intent — medium\n | 'medium-brand'\n | 'medium-negative'\n | 'medium-positive'\n | 'medium-warning'\n | 'medium-caution'\n | 'medium-ai'\n | 'medium-neutral'\n // Intent — bold (explicit)\n | 'bold-brand'\n | 'bold-negative'\n | 'bold-positive'\n | 'bold-warning'\n | 'bold-caution'\n | 'bold-ai'\n | 'bold-neutral'\n // Intent — strong\n | 'strong-brand'\n | 'strong-negative'\n | 'strong-positive'\n | 'strong-warning'\n | 'strong-caution'\n | 'strong-ai'\n | 'strong-neutral'\n // Contextual\n | 'on-strong'\n | 'on-bold'\n // Pass-through\n | 'inherit';\n\nexport type IconColor = IconColorToken | `var(--${string})`;\n\n@Component({\n tag: 'ds-icon',\n styleUrl: 'Icon.css',\n scoped: true,\n})\nexport class Icon {\n @Element() el!: HTMLElement;\n\n /** Exact canonical IcoMo export name, including the `Flag` prefix for flags. */\n @Prop() name: string = '';\n /** Iconography size token. Maps to `--dimension-iconography-{size}`. Default `md` = 20 px. */\n @Prop() size: IconSize = 'md';\n /**\n * Semantic foreground color token, or a raw CSS var reference. `tertiary`\n * and the still-fainter `quaternary` are restricted to icons inside genuinely\n * inactive/disabled UI or to purely decorative icons; informative icons must\n * retain sufficient contrast.\n */\n @Prop() color: IconColor = 'inherit';\n /** Accessible label. Sets `role=\"img\"` and `aria-label`. Omit for decorative icons. */\n @Prop() label: string | undefined;\n\n /** Resolved SVG markup — set synchronously on cache hit, async after a lazy load. */\n @State() private svg: string = '';\n\n /** Guards against out-of-order async resolutions when `name`/`flag` change quickly. */\n private loadToken = 0;\n\n /**\n * Cache hit → render synchronously (pre-registered via `registerIcons` or\n * previously loaded). Miss → fire the per-icon lazy loader; the glyph pops in\n * when the (tiny, per-icon) chunk resolves and stays cached for every other\n * ds-icon instance.\n */\n private resolveSvg() {\n const flag = this.name.startsWith('Flag');\n const key = iconCacheKey(this.name, flag);\n const token = ++this.loadToken;\n\n const cached = iconCache().get(key);\n if (cached !== undefined) {\n this.svg = cached;\n return;\n }\n\n // Own-key lookup only: names resolve by exact canonical IcoMo export key —\n // never meta.json aliases (not in the maps) and never inherited prototype\n // keys ('constructor', 'toString', …) that a bare index access would hit.\n const loaders = flag ? flagIconLoaders : systemIconLoaders;\n const loader = Object.prototype.hasOwnProperty.call(loaders, this.name)\n ? loaders[this.name]\n : undefined;\n if (!loader) {\n this.svg = '';\n return;\n }\n\n loader()\n .then(svg => {\n iconCache().set(key, svg);\n if (token === this.loadToken) this.svg = svg;\n })\n .catch(() => {\n if (token === this.loadToken) this.svg = '';\n });\n }\n\n componentWillLoad() {\n // Fire-and-forget: do not return the promise — a cache miss must not block\n // the parent render tree on a network fetch.\n this.resolveSvg();\n }\n\n /** Last markup injected into the DOM — skips redundant re-parse on unrelated re-renders. */\n private renderedSvg: string | null = null;\n\n private updateSvg() {\n const container = this.el.querySelector<HTMLElement>('.icon__svg');\n if (!container) return;\n if (this.svg === this.renderedSvg) return;\n this.renderedSvg = this.svg;\n\n // Validate + inject as parsed DOM nodes — never innerHTML. Keeps ds-icon\n // Trusted-Types compatible and rejects executable/foreign content in\n // glyph strings (registerIcons accepts app-provided markup).\n const svg = this.svg ? parseIconSvg(this.svg) : null;\n if (!svg) {\n container.replaceChildren();\n return;\n }\n\n // Stencil's scoped CSS cannot reach injected elements (no sc-* class).\n // Apply width/height as inline styles so sizing works regardless of scope class.\n svg.removeAttribute('width');\n svg.removeAttribute('height');\n // Prevent SVG from being natively focusable (Firefox/IE default) while\n // sitting inside an aria-hidden parent — fixes aria-hidden-focus violation.\n svg.setAttribute('focusable', 'false');\n svg.setAttribute('aria-hidden', 'true');\n svg.style.display = 'block';\n svg.style.flexShrink = '0';\n svg.style.width = '100%';\n svg.style.height = '100%';\n container.replaceChildren(svg);\n }\n\n @Watch('name')\n onIconChange() {\n this.resolveSvg();\n }\n\n componentDidRender() {\n this.updateSvg();\n }\n\n render() {\n const isCustomColor = typeof this.color === 'string' && this.color.startsWith('var(--');\n\n const cls: Record<string, boolean> = {\n icon: true,\n [`icon--size-${this.size}`]: true,\n [`icon--color-${this.color}`]: !!this.color && !isCustomColor && this.color !== 'inherit',\n 'icon--color-inherit': this.color === 'inherit',\n };\n\n const style = isCustomColor ? { color: this.color as string } : undefined;\n\n return (\n <Host style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center' }}>\n <span\n class={cls}\n style={style}\n role={this.label ? 'img' : 'presentation'}\n aria-label={this.label}\n aria-hidden={!this.label ? 'true' : undefined}\n >\n <span class=\"icon__svg\" />\n </span>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{p as e,H as o,h as s,a as t,t as a}from"./index.js";import{C as i}from"./p-BnhGV__o.js";import{d as c}from"./p-DBwa1OXP.js";import{d}from"./p-BOhpMUwO.js";import{d as n}from"./p-Cea7rROU.js";import{d as r}from"./p-0XTyQNRG.js";import{d as l}from"./p-BgLI9JoT.js";import{d as f}from"./p-CbSUyv5B.js";const b=()=>`.sc-ds-code-block-h{display:block;width:100%;min-width:0;box-sizing:border-box;-webkit-user-select:none;user-select:none}.code-block.sc-ds-code-block{width:100%;min-width:0;margin:0;overflow:hidden;border-radius:var(--dimension-radius-050);background:var(--color-background-strong-neutral);color:var(--color-foreground-faint-neutral);box-sizing:border-box}.code-block__header.sc-ds-code-block{display:flex;align-items:center;justify-content:space-between;gap:var(--dimension-space-100);min-height:var(--dimension-size-400);padding:var(--dimension-space-050) var(--dimension-space-100);background:var(--color-background-strong-neutral);box-sizing:border-box}pre.sc-ds-code-block{margin:0;padding:var(--dimension-space-150);overflow:auto;font-family:var( --typography-font-family-code, 'Fira Code', ui-monospace, 'SFMono-Regular', 'Cascadia Code', 'Roboto Mono', Menlo, Monaco, Consolas, 'Liberation Mono', monospace );font-size:var(--typography-fontsize-sm);font-variant-ligatures:var(--ds-code-font-variant-ligatures, normal);font-weight:var(--typography-weight-regular);line-height:var(--typography-lineheight-sm);letter-spacing:var(--typography-letterspacing-none);tab-size:2;-webkit-user-select:text;user-select:text}code.sc-ds-code-block{font:inherit;white-space:pre}`;const p=e(class e extends o{constructor(e){super();if(e!==false){this.__registerHost()}this.code="";this.language="";this.filename="";this.copied=false;this.copyFeedback=new i((e=>{this.copied=e}));this.copy=async()=>{await this.copyFeedback.copy(this.code)}}connectedCallback(){this.copyFeedback.connect()}handleCodeChange(){this.copyFeedback.reset()}disconnectedCallback(){this.copyFeedback.disconnect()}render(){const e=this.filename||this.language||"Code";return s(t,{key:"556ecb986f06ba06ce39c7439131c49eb6eae9b0"},s("figure",{key:"6bf3dadce5637e86e00e0286c72c828817550821",class:"code-block"},s("figcaption",{key:"d09590086c419c3e0f07a12116dcf1ceb354a854",class:"code-block__header"},s("ds-text",{key:"39e0f39dbb61796252919c7b2ff75ffcfdeaa7f7",as:"span",variant:"text-caption",emphasis:true,color:"on-strong"},e),s("ds-tooltip",{key:"f1d121d370b048895fc0b226b278efc4615ee09c",label:this.copied?"Copied":"Copy code",side:"bottom",size:"sm"},s("ds-button-unfilled",{key:"cc4710a7f7def1144d28776feae1410becce3add",variant:"icon",icon:this.copied?"Check":"Copy",size:"xs","aria-label":this.copied?"Copied":"Copy code",hasBorder:false,onDsClick:this.copy}))),s("pre",{key:"ef8f1c96b231389f07c03a0994789b080ee1a659"},s("code",{key:"47e45d3180c6ecd949f5525c95be24988df232da"},this.code))))}static get watchers(){return{code:[{handleCodeChange:0}]}}static get style(){return b()}},[2,"ds-code-block",{code:[1],language:[1],filename:[1],copied:[32]},undefined,{code:[{handleCodeChange:0}]}]);function m(){if(typeof customElements==="undefined"){return}const e=["ds-code-block","ds-badge","ds-button-unfilled","ds-icon","ds-loader","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-code-block":if(!customElements.get(a(e))){customElements.define(a(e),p)}break;case"ds-badge":if(!customElements.get(a(e))){c()}break;case"ds-button-unfilled":if(!customElements.get(a(e))){d()}break;case"ds-icon":if(!customElements.get(a(e))){n()}break;case"ds-loader":if(!customElements.get(a(e))){r()}break;case"ds-text":if(!customElements.get(a(e))){l()}break;case"ds-tooltip":if(!customElements.get(a(e))){f()}break}}))}m();export{p as C,m as d};
2
- //# sourceMappingURL=p-D7yBIPB6.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["badgeCss","SURFACE_RING","primary","secondary","faint","medium","bold","strong","translucent","inverted","media","navigation","Badge","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","variant","count","max","surface","hasRing","render","isDot","h","Host","style","display","String","ring","background","class","badge","gradientBackground","as","emphasis","color","label"],"sources":["src/wc/components/Badge/Badge.css?tag=ds-badge&encapsulation=scoped","src/wc/components/Badge/Badge.tsx"],"sourcesContent":["@import '../../utils/visually-hidden.css';\n@import '../../utils/forced-colors.css';\n\n:host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n container-name: ds-badge-gradient;\n pointer-events: none;\n vertical-align: middle;\n\n --_badge-bg: var(--color-background-bold-brand);\n --_badge-fg: var(--color-foreground-on-bold-background-primary);\n --_badge-ring: var(--color-background-secondary);\n --_badge-ring-width: var(--dimension-stroke-width-018);\n --_badge-gradient-context: var(--ds-shell-gradient-context, flat);\n}\n\n:host(.badge--force-gradient-background) {\n --_badge-gradient-context: gradient;\n}\n\n:host(.badge--force-flat-background) {\n --_badge-gradient-context: flat;\n}\n\n.badge__mark {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n box-sizing: border-box;\n color: var(--_badge-fg);\n background: var(--_badge-bg);\n box-shadow: 0 0 0 var(--_badge-ring-width) var(--_badge-ring);\n white-space: nowrap;\n}\n\n:host(.badge--no-ring) {\n --_badge-ring-width: 0;\n}\n\n:host(.badge--dot) .badge__mark {\n width: var(--dimension-size-075);\n height: var(--dimension-size-075);\n border-radius: var(--dimension-radius-half);\n}\n\n:host(.badge--counter) .badge__mark {\n width: auto;\n min-width: var(--dimension-size-150);\n height: var(--dimension-size-150);\n padding: 0 var(--dimension-space-025);\n border-radius: var(--dimension-radius-half);\n}\n\n/* Shell gradient ring — base fill + wash donut (option 3). */\n@container ds-badge-gradient style(--_badge-gradient-context: gradient) {\n /* Match the scoped base rule's specificity; Stencil does not yet scope style-query selectors. */\n .badge__mark.badge__mark {\n position: relative;\n z-index: 0;\n box-shadow: none;\n isolation: isolate;\n }\n\n .badge__mark::before,\n .badge__mark::after {\n content: '';\n position: absolute;\n inset: calc(-1 * var(--_badge-ring-width));\n border-radius: inherit;\n box-sizing: border-box;\n padding: var(--_badge-ring-width);\n pointer-events: none;\n /* stylelint-disable color-no-hex -- mask luminance stops for ring cutout, not theme colors */\n -webkit-mask:\n linear-gradient(#fff 0 0) content-box,\n linear-gradient(#fff 0 0);\n -webkit-mask-composite: xor;\n mask:\n linear-gradient(#fff 0 0) content-box,\n linear-gradient(#fff 0 0);\n /* stylelint-enable color-no-hex */\n mask-composite: exclude;\n }\n\n .badge__mark::before {\n z-index: -2;\n background-color: var(--_badge-ring);\n }\n\n .badge__mark::after {\n z-index: -1;\n background-image: var(--ds-shell-gradient-image, none);\n background-size: var(--ds-shell-gradient-size, auto);\n background-position: 0 0;\n background-repeat: no-repeat;\n background-attachment: fixed;\n opacity: var(--ds-shell-gradient-opacity, 1);\n }\n}\n\n@media (forced-colors: active) {\n .badge__mark {\n color: var(--ds-forced-color-on-selected);\n background: var(--ds-forced-color-selected);\n box-shadow: none;\n outline: var(--_badge-ring-width) solid var(--ds-forced-color-surface);\n }\n\n .badge__mark::before,\n .badge__mark::after {\n display: none;\n }\n}\n","import { Component, Prop, h, Host } from '@stencil/core';\n\nexport type BadgeVariant = 'counter' | 'dot';\nexport type BadgeSurface =\n | 'primary'\n | 'secondary'\n | 'faint'\n | 'medium'\n | 'bold'\n | 'strong'\n | 'translucent'\n | 'inverted'\n | 'media'\n | 'navigation'\n | 'always-dark';\n\nconst SURFACE_RING: Record<BadgeSurface, string> = {\n primary: 'var(--color-background-primary)',\n secondary: 'var(--color-background-secondary)',\n faint: 'var(--color-background-faint-neutral)',\n medium: 'var(--color-background-medium-neutral)',\n bold: 'var(--color-background-bold-neutral)',\n strong: 'var(--color-background-strong-neutral)',\n translucent: 'var(--color-translucent-translucent)',\n inverted: 'var(--color-inverted-background)',\n media: 'var(--color-media-background)',\n navigation: 'var(--color-navigation-background)',\n 'always-dark': 'var(--color-always-dark-background)',\n};\n\n@Component({\n tag: 'ds-badge',\n styleUrl: 'Badge.css',\n scoped: true,\n})\nexport class Badge {\n /** Render as a compact counter or notification dot. */\n @Prop() variant: BadgeVariant = 'counter';\n\n /** Count shown for counter badges. Count 0 hides the badge. */\n @Prop() count: number = 0;\n\n /** Highest count shown before compacting to \"{max}+\". */\n @Prop() max: number = 9;\n\n /** Immediate backing surface matched by the ring around either variant. */\n @Prop() surface: BadgeSurface = 'primary';\n\n /** Direct ring background override for component-local surfaces. */\n @Prop() background: string | undefined;\n\n /** Show the separation ring when the badge overlaps an icon or other content. */\n @Prop() hasRing: boolean = true;\n\n /**\n * Ring samples the shell gradient stack (base fill + wash) instead of a flat\n * `box-shadow`. Omit to inherit ShellApp context; set true or false to override.\n *\n * The attribute must NOT start with `on` — Stencil's setAccessor routes any\n * unknown `on*` member down the event-listener path during attribute\n * reflection, calling addEventListener with a non-listener and throwing.\n */\n @Prop({ attribute: 'gradient-background', reflect: true }) gradientBackground?: boolean;\n\n /** Contextual supplemental text. Omit when the owner hides the badge from assistive technology. */\n @Prop() label: string | undefined;\n\n render() {\n const isDot = this.variant === 'dot';\n\n if (!isDot && this.count <= 0) return <Host style={{ display: 'none' }} />;\n\n const display = this.count > this.max ? `${this.max}+` : String(this.count);\n const ring = this.background ?? SURFACE_RING[this.surface];\n\n return (\n <Host\n class={{\n badge: true,\n 'badge--counter': !isDot,\n 'badge--dot': isDot,\n 'badge--no-ring': !this.hasRing,\n 'badge--force-gradient-background': this.gradientBackground === true,\n 'badge--force-flat-background': this.gradientBackground === false,\n }}\n style={{ '--_badge-ring': ring }}\n >\n <span class=\"badge__mark\" aria-hidden=\"true\">\n {!isDot && (\n <ds-text as=\"span\" variant=\"text-caption\" emphasis color=\"inherit\">\n {display}\n </ds-text>\n )}\n </span>\n {this.label && <span class=\"badge__a11y ds-visually-hidden\">{this.label}</span>}\n </Host>\n );\n }\n}\n"],"mappings":"+FAAA,MAAMA,EAAW,IAAM,k8FCgBvB,MAAMC,EAA6C,CACjDC,QAAS,kCACTC,UAAW,oCACXC,MAAO,wCACPC,OAAQ,yCACRC,KAAM,uCACNC,OAAQ,yCACRC,YAAa,uCACbC,SAAU,mCACVC,MAAO,gCACPC,WAAY,qCACZ,cAAe,uC,MAQJC,EAAKC,EAAA,MAAAD,UAAAE,EALlB,WAAAC,CAAAC,G,4CAOUC,KAAAC,QAAwB,UAGxBD,KAAAE,MAAgB,EAGhBF,KAAAG,IAAc,EAGdH,KAAAI,QAAwB,UAMxBJ,KAAAK,QAAmB,IA8C5B,CA/BC,MAAAC,GACE,MAAMC,EAAQP,KAAKC,UAAY,MAE/B,IAAKM,GAASP,KAAKE,OAAS,EAAG,OAAOM,EAACC,EAAI,CAACC,MAAO,CAAEC,QAAS,UAE9D,MAAMA,EAAUX,KAAKE,MAAQF,KAAKG,IAAM,GAAGH,KAAKG,OAASS,OAAOZ,KAAKE,OACrE,MAAMW,EAAOb,KAAKc,YAAc9B,EAAagB,KAAKI,SAElD,OACEI,EAACC,EAAI,CACHM,MAAO,CACLC,MAAO,KACP,kBAAmBT,EACnB,aAAcA,EACd,kBAAmBP,KAAKK,QACxB,mCAAoCL,KAAKiB,qBAAuB,KAChE,+BAAgCjB,KAAKiB,qBAAuB,OAE9DP,MAAO,CAAE,gBAAiBG,IAE1BL,EAAA,QAAMO,MAAM,cAAa,cAAa,SAClCR,GACAC,EAAA,WAASU,GAAG,OAAOjB,QAAQ,eAAekB,SAAQ,KAACC,MAAM,WACtDT,IAINX,KAAKqB,OAASb,EAAA,QAAMO,MAAM,kCAAkCf,KAAKqB,O","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["filterMenuCss","filterMenuId","ICON_SIZE","lg","md","sm","xs","DATE_MODE_TABS","id","label","RELATIVE_DATE_OPTIONS","DATE_FILTER_RELATIVE_PRESETS","map","preset","value","dateFilterRelativeValue","FilterMenu","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","embedded","vertical","open","triggerLabel","showSelectedCount","icon","size","width","showIndicator","hasBorder","neutralTrigger","applyRequired","activeFill","collapseLabel","ariaLabel","filters","values","matchModes","side","align","sideOffset","TOKEN_CSS_LENGTHS","space050","alignOffset","menuWidth","menuWidthLg","menuLabel","categoriesLabel","clearLabel","searchPlaceholder","noResultsText","footerLayout","initialFocusVisible","shouldRender","closing","positionReady","pos","x","y","focusRingVisible","activeOptionIndex","captionCompact","dateModeByFilter","optionQueryByFilter","generatedId","triggerElement","pendingInitialFocusVisible","closeTimer","hasLoaded","closingSnapshot","position","AnchoredPositionController","getAnchor","resolvedAnchor","getPopup","el","querySelector","getOwnerDocument","ownerDocument","measure","anchor","popup","anchorRect","getBoundingClientRect","sectionInsetPx","resolveCssLengthPx","TOKEN_DEFAULTS","popupWidth","offsetWidth","popupFallbackWidth","popupHeight","offsetHeight","popupFallbackHeight","sideOffsetPx","alignOffsetPx","resolveChoicePopupAlignOffset","viewportPadPx","viewportPad","viewportWidth","window","innerWidth","viewportHeight","innerHeight","collisionRect","resolveAnchoredOverlayBoundaryRect","boundary","apply","onReady","liveUpdate","observeResize","topLayer","interaction","AnchoredOverlayInteractionController","onOutsideActivation","close","changeValue","detail","draftValues","filterId","dsChange","emit","changeMode","draftModes","mode","dsMatchModeChange","hasPendingChanges","normalize","Array","isArray","length","sort","undefined","modes","some","filter","JSON","stringify","applyDraft","Object","keys","dsClear","Set","componentDidLoad","syncCaptionCompactObserver","onOpenChange","connectedCallback","disconnectedCallback","disconnectCaptionCompactObserver","unobserve","teardownListeners","onCollapseLabelChange","isOpen","setupListeners","schedule","focusInitialCategory","cancel","captureClosingSnapshot","duration","resolveMotionTimeMs","motionShort2","animationDurationShort3","finishClose","setTimeout","onPositionInputChange","handleKeyDown","event","key","preventDefault","tabLeavesPopup","moveFocusAfterTab","shiftKey","anchorId","document","getElementById","usesInternalTrigger","menuFallbackHeight","connect","observe","disconnect","clearTimeout","restoreFocus","focusAnchor","dsOpenChange","dsClose","toggleFromTrigger","handleTriggerKeyDown","matches","hidePopover","dsAfterClose","options","option","fromEntries","entries","activeFilterId","requestAnimationFrame","focus","selectedFilter","find","selectedCount","kind","totalSelected","reduce","total","activeFilterCount","selectCategory","dsActiveFilterChange","handleCategoryKeyDown","currentIndex","findIndex","nextIndex","handlePanelKeyDown","handleOptionKeyDown","index","visibleOptions","selectOption","includes","enabled","candidate","optionIndex","isInactive","current","indexOf","next","direction","start","optionMatchesQuery","query","normalized","trim","toLocaleLowerCase","description","booleanOption","fieldLabel","setOptionQuery","firstEnabled","content","scrollTop","handleOptionSearchKeyDown","toggleMultiple","checked","selected","add","delete","ordered","has","dateMode","parseDateFilterValue","setDateMode","renderRelativeDateOptions","relativeFilter","h","class","role","ChoiceOptionRow","active","usesSubtext","tabIndex","onFocus","onKeyDown","onHover","onSelect","renderDateCalendar","selectionMode","onDsChange","stopPropagation","renderDateFilter","hasContainer","tabs","renderOptionSearch","ChoiceSearch","hasFocusBoundary","hasInteractionFill","placeholder","controls","inputRef","onValueChange","renderNoOptionResults","body","renderOptions","allOptions","choiceListUsesSubtext","subtext","isSelected","leading","presentation","Boolean","captionIconOnly","captionCompactDisconnect","observeTableCaptionCompact","compact","renderCaptionTooltip","trigger","renderFooter","categoriesClear","appliedCount","as","variant","color","type","disabled","onClick","renderMatchModeFooter","nextMode","render","Host","name","emphasis","state","activeFilter","hasActiveFilters","categoriesClearFooter","textVariant","CONTROL_TEXT_VARIANT","iconSize","popupId","popupStyle","left","top","transform","Math","round","zIndex","visibility","controlWidthClass","ref","element","inputId","String","lineTruncation","popover","style","count","divider","onMouseDown","hasRing","intent","contrast","isInset","rounded"],"sources":["src/wc/components/FilterMenu/FilterMenu.css?tag=ds-filter-menu&encapsulation=scoped","src/wc/components/FilterMenu/FilterMenu.tsx"],"sourcesContent":["@import '../../utils/radius.css';\n@import '../../utils/choice-list.css';\n@import '../../utils/chrome-header.css';\n@import '../../utils/control-parts.css';\n@import '../../utils/control-width.css';\n@import '../../utils/select-trigger.css';\n@import '../../utils/search-control.css';\n@import '../../utils/table-caption-control.css';\n\n:host(.filter-menu-host--external-trigger) {\n display: contents;\n}\n\n.filter-menu {\n display: flex;\n min-height: 0;\n flex-direction: column;\n color: var(--color-foreground-secondary);\n}\n\n.filter-menu__body {\n display: grid;\n grid-template-columns: var(--dimension-menu-width-xs) var(--dimension-menu-width-sm);\n min-height: calc(var(--dimension-size-800) * 4 + var(--dimension-space-150));\n max-height: calc(100vh - var(--dimension-size-800) - var(--dimension-size-600));\n}\n\n.filter-menu__category-pane {\n display: flex;\n min-width: 0;\n min-height: 0;\n flex-direction: column;\n border-inline-end: var(--dimension-stroke-width-012) solid var(--color-border-tertiary);\n}\n\n.filter-menu__categories {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.filter-menu__category-section {\n display: flex;\n min-width: 0;\n flex-direction: column;\n}\n\n.filter-menu__category-section.ds-choice-section--divided {\n padding-block-end: var(--dimension-space-050);\n}\n\n.filter-menu__category {\n justify-content: space-between;\n width: 100%;\n border: 0;\n background: transparent;\n color: var(--color-foreground-secondary);\n cursor: default;\n text-align: start;\n}\n\n.filter-menu__category--active {\n color: var(--color-foreground-primary);\n}\n\n.filter-menu__category-dot-box {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: var(--ds-control-icon, var(--dimension-iconography-md));\n height: var(--ds-control-icon, var(--dimension-iconography-md));\n pointer-events: none;\n}\n\n.filter-menu__options {\n display: flex;\n min-width: 0;\n min-height: 0;\n flex-direction: column;\n overflow: hidden;\n}\n\n.filter-menu__options-content {\n display: flex;\n min-width: 0;\n min-height: 0;\n flex: 1 1 auto;\n flex-direction: column;\n overflow: auto;\n}\n\n.filter-menu__option-search {\n position: relative;\n flex: 0 0 var(--dimension-size-500);\n min-width: 0;\n min-height: var(--dimension-size-500);\n background: transparent;\n}\n\n.filter-menu__option-search::after {\n content: '';\n position: absolute;\n inset: auto 0 0;\n height: var(--dimension-stroke-width-012);\n background-color: var(--color-border-tertiary);\n pointer-events: none;\n}\n\n.filter-menu__option-search .select-search {\n height: 100%;\n background: transparent;\n}\n\n.filter-menu__options--date,\n.filter-menu__option-list--date,\n.filter-menu__date {\n display: flex;\n min-width: 0;\n min-height: 0;\n flex-direction: column;\n}\n\n.filter-menu__option-list--date,\n.filter-menu__date {\n flex: 1 1 auto;\n}\n\n.filter-menu__date-header {\n flex: 0 0 var(--dimension-size-500);\n justify-content: center;\n min-block-size: var(--dimension-size-500);\n padding: var(--dimension-space-050);\n background: var(--color-background-secondary);\n}\n\n.filter-menu__date-body {\n display: flex;\n flex: 1 1 auto;\n min-height: 0;\n flex-direction: column;\n}\n\n.filter-menu__date-relative {\n flex: 1 1 auto;\n}\n\n.filter-menu__date-body > ds-calendar {\n flex: 1 1 auto;\n min-width: 0;\n min-height: 0;\n}\n\n.filter-menu__footer {\n flex: 0 0 auto;\n}\n\n.filter-menu__footer--categories-clear .ds-choice-footer__content {\n justify-content: flex-start;\n}\n\n.filter-menu__footer--categories-clear[aria-hidden='true']::before {\n visibility: hidden;\n}\n\n.ds-choice-footer__content:has(.filter-menu__apply) {\n column-gap: var(--dimension-space-100);\n}\n\n.filter-menu__apply ds-text {\n padding-right: 0;\n}\n\n.filter-menu__action-separator + .filter-menu__clear ds-text {\n padding-left: 0;\n}\n\n.filter-menu__apply {\n color: var(--color-foreground-bold-brand);\n}\n\n.filter-menu__apply:disabled {\n color: var(--color-foreground-tertiary);\n text-decoration-line: none;\n}\n\n.filter-menu__clear {\n --ds-text-action-foreground: var(--color-foreground-bold-negative);\n\n color: var(--ds-text-action-foreground);\n}\n\n.filter-menu__match-mode-footer {\n flex: 0 0 auto;\n}\n\n.filter-menu__match-mode-content {\n justify-content: flex-start;\n padding-inline: calc(\n var(--dimension-space-050) + var(--ds-control-padding-inline, var(--dimension-space-075)) +\n var(--ds-control-label-inset, var(--dimension-space-025))\n );\n}\n\n.filter-menu__match-mode-toggle {\n appearance: none;\n display: inline-flex;\n align-items: center;\n padding: 0;\n border: 0;\n border-radius: var(--dimension-radius-025);\n background: transparent;\n cursor: default;\n}\n\n@media (forced-colors: active) {\n .filter-menu__category-pane {\n border-inline-end-color: var(--ds-forced-color-content);\n }\n}\n\n.table-preferences-embedded {\n display: flex;\n flex-direction: column;\n min-width: 0;\n min-height: 0;\n color: var(--color-foreground-secondary);\n}\n\n.table-preferences-embedded .filter-menu__body {\n grid-template-columns: min(var(--dimension-menu-width-xs), 40%) minmax(0, 1fr);\n}\n\n.filter-menu-vertical__section {\n border-bottom: var(--dimension-stroke-width-012) solid var(--color-border-tertiary);\n}\n.filter-menu-vertical__section > summary {\n cursor: default;\n padding: var(--dimension-space-200);\n}\n.filter-menu-vertical__section > summary ds-text {\n display: inline;\n}\n\n.filter-menu-vertical__section > summary {\n display: flex;\n align-items: center;\n gap: var(--dimension-space-100);\n list-style: none;\n}\n.filter-menu-vertical__section > summary::-webkit-details-marker {\n display: none;\n}\n.filter-menu-vertical__section:not([open]) .filter-menu-vertical__chevron {\n transform: rotate(-90deg);\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n type VNode,\n Watch,\n} from '@stencil/core';\nimport {\n CONTROL_TEXT_VARIANT,\n DATE_FILTER_RELATIVE_PRESETS,\n controlWidthClass,\n dateFilterRelativeValue,\n parseDateFilterValue,\n resolveChoicePopupAlignOffset,\n resolveCssLengthPx,\n resolveMotionTimeMs,\n TOKEN_CSS_LENGTHS,\n TOKEN_DEFAULTS,\n type ControlWidth,\n} from '../../utils';\nimport { observeTableCaptionCompact } from '../../utils/table-caption-compact';\nimport type { AnchoredAlign, AnchoredSide } from '../../utils/anchored-position';\nimport { AnchoredPositionController } from '../../utils/anchored-position-controller';\nimport { AnchoredOverlayInteractionController } from '../../utils/anchored-overlay-interaction-controller';\nimport { resolveAnchoredOverlayBoundaryRect } from '../../utils/anchored-overlay-boundary';\nimport { ChoiceOptionRow, ChoiceSearch } from '../../utils/choice-list-parts';\nimport { choiceListUsesSubtext } from '../../utils/choice-list';\n\nexport type FilterMenuFilterKind = 'single' | 'multiple' | 'boolean' | 'date';\nexport type FilterMenuSize = 'lg' | 'md' | 'sm' | 'xs';\nexport type FilterMenuWidth = ControlWidth;\nexport type FilterMenuFooterLayout = 'summary' | 'categories-clear';\nexport type FilterMenuMatchMode = 'any' | 'all';\ntype FilterMenuDateMode = 'range' | 'relative';\n\nexport interface FilterMenuOption {\n label: string;\n value: string;\n description?: string;\n isInactive?: boolean;\n}\n\nexport interface FilterMenuFilter {\n id: string;\n label: string;\n kind: FilterMenuFilterKind;\n options?: FilterMenuOption[];\n description?: string;\n fieldLabel?: string;\n /** Draw a standard menu-section divider after this category. */\n divider?: boolean;\n}\n\nexport type FilterMenuValue = string[] | boolean | string;\nexport type FilterMenuValues = Record<string, FilterMenuValue | undefined>;\nexport type FilterMenuMatchModes = Record<string, FilterMenuMatchMode | undefined>;\n\nexport interface FilterMenuChangeDetail {\n filterId: string;\n value: FilterMenuValue;\n}\n\nexport interface FilterMenuMatchModeChangeDetail {\n filterId: string;\n mode: FilterMenuMatchMode;\n}\n\nlet filterMenuId = 0;\n\nconst ICON_SIZE: Record<FilterMenuSize, 'lg' | 'md' | 'sm' | 'xs'> = {\n lg: 'lg',\n md: 'md',\n sm: 'sm',\n xs: 'xs',\n};\n\nconst DATE_MODE_TABS = [\n { id: 'relative', label: 'Relative' },\n { id: 'range', label: 'Range' },\n];\n\nconst RELATIVE_DATE_OPTIONS: FilterMenuOption[] = DATE_FILTER_RELATIVE_PRESETS.map(preset => ({\n label: preset.label,\n value: dateFilterRelativeValue(preset.value),\n}));\n\n@Component({\n tag: 'ds-filter-menu',\n styleUrl: 'FilterMenu.css',\n scoped: true,\n})\nexport class FilterMenu {\n @Element() el!: HTMLElement;\n\n /** Controlled popup visibility. */\n /** Render content inside a parent-owned surface; the parent owns dismissal and positioning. */\n @Prop() embedded: boolean = false;\n /** Stacked, collapsible sections for a configuration panel. */\n @Prop() vertical: boolean = false;\n @Prop({ mutable: true }) open: boolean = false;\n /** Select trigger text. */\n @Prop() triggerLabel: string = 'Filters';\n /** Append the active-filter count to the visible trigger label. */\n @Prop() showSelectedCount: boolean = true;\n /** Optional select trigger prefix icon name. */\n @Prop() icon: string | undefined = 'Filters';\n /** Select trigger density. */\n @Prop() size: FilterMenuSize = 'md';\n /** Select trigger width fit. */\n @Prop() width: FilterMenuWidth = 'hug';\n /** Show the surface-aware inset border around the select trigger. */\n /** Show the trigger chevron. */\n @Prop() showIndicator: boolean = true;\n @Prop() hasBorder: boolean = true;\n /** Show selected interaction fill when one or more criteria are active. */\n /** Keep trigger colors neutral when a value is selected. */\n @Prop() neutralTrigger: boolean = false;\n /** Stage filter edits until Apply is pressed. */\n @Prop() applyRequired: boolean = false;\n @State() private draftValues?: FilterMenuValues;\n @State() private draftModes?: FilterMenuMatchModes;\n\n private changeValue(detail: FilterMenuChangeDetail): void {\n if (this.applyRequired)\n this.draftValues = { ...(this.draftValues ?? this.values), [detail.filterId]: detail.value };\n else this.dsChange.emit(detail);\n }\n private changeMode(detail: FilterMenuMatchModeChangeDetail): void {\n if (this.applyRequired)\n this.draftModes = { ...(this.draftModes ?? this.matchModes), [detail.filterId]: detail.mode };\n else this.dsMatchModeChange.emit(detail);\n }\n private get hasPendingChanges(): boolean {\n const normalize = (value: FilterMenuValue | undefined) =>\n Array.isArray(value) ? (value.length ? [...value].sort() : undefined) : value || undefined;\n const values = this.draftValues ?? this.values;\n const modes = this.draftModes ?? this.matchModes;\n return this.filters.some(\n filter =>\n JSON.stringify(normalize(values[filter.id])) !==\n JSON.stringify(normalize(this.values[filter.id])) ||\n (modes[filter.id] ?? 'any') !== (this.matchModes[filter.id] ?? 'any')\n );\n }\n private applyDraft(): void {\n if (!this.hasPendingChanges) return;\n if (this.draftValues && Object.keys(this.draftValues).length === 0) {\n this.dsClear.emit();\n } else if (this.draftValues) {\n for (const id of new Set([...Object.keys(this.values), ...Object.keys(this.draftValues)])) {\n if (JSON.stringify(this.values[id]) !== JSON.stringify(this.draftValues[id]))\n this.dsChange.emit({\n filterId: id,\n value:\n this.draftValues[id] ??\n (Array.isArray(this.values[id])\n ? []\n : typeof this.values[id] === 'boolean'\n ? false\n : ''),\n });\n }\n }\n if (this.draftModes) {\n for (const filterId of new Set([\n ...Object.keys(this.matchModes),\n ...Object.keys(this.draftModes),\n ])) {\n const mode = this.draftModes[filterId] ?? 'any';\n if ((this.matchModes[filterId] ?? 'any') !== mode)\n this.dsMatchModeChange.emit({ filterId, mode });\n }\n }\n }\n @Prop() activeFill: boolean = false;\n /**\n * Opt into table-caption icon-only chrome below 900px. The trigger omits its\n * visible label and chevron; keep an accessible name via aria-label.\n */\n @Prop({ reflect: true }) collapseLabel: boolean = false;\n /** ID applied to the internal select trigger. */\n @Prop() inputId: string | undefined;\n /** Direct accessible name for the internal select trigger. */\n @Prop({ attribute: 'aria-label' }) ariaLabel: string | null = null;\n /** Product-owned filter categories and option definitions. */\n @Prop() filters: FilterMenuFilter[] = [];\n /** Controlled values keyed by filter id. */\n @Prop() values: FilterMenuValues = {};\n /** Controlled any/all match mode keyed by multiple-choice filter id. Defaults to any. */\n @Prop() matchModes: FilterMenuMatchModes = {};\n /** Controlled category shown in the option pane. */\n @Prop() activeFilterId: string | undefined;\n /** External trigger element to position against. */\n @Prop() anchor: HTMLElement | undefined;\n /** ID of the external trigger element used for positioning and focus return. */\n @Prop() anchorId: string | undefined;\n /** Explicit collision owner; otherwise the nearest data-ds-overlay-boundary ancestor is used. */\n @Prop() boundary: HTMLElement | undefined;\n /** Preferred popup side; collision handling may flip it. */\n @Prop() side: AnchoredSide = 'bottom';\n /** Cross-axis alignment against the trigger. */\n @Prop() align: AnchoredAlign = 'end';\n /** Gap between trigger and popup — number in px or a TokoMo length. */\n @Prop() sideOffset: number | string = TOKEN_CSS_LENGTHS.space050;\n /** Cross-axis offset — number in px or a TokoMo length. */\n @Prop() alignOffset: number | string = 0;\n /** Popup width. It remains clamped to its collision boundary by the component recipe. */\n @Prop() menuWidth: string = TOKEN_CSS_LENGTHS.menuWidthLg;\n /** Accessible name for the non-modal filter dialog. */\n @Prop() menuLabel: string = 'Filters';\n /** Accessible name for the category tab list. */\n @Prop() categoriesLabel: string = 'Filter categories';\n /** Footer action and date-clear accessible label. */\n @Prop() clearLabel: string = 'Clear';\n /** Placeholder shown in each non-date option search header. */\n @Prop() searchPlaceholder: string = 'Search';\n /** Empty-state text shown when an option search has no matches. */\n @Prop() noResultsText: string = 'No results';\n /** Footer recipe: full-width selected summary or reserved category-pane Clear action. */\n @Prop() footerLayout: FilterMenuFooterLayout = 'summary';\n /** Show a visible focus ring on initial entry after keyboard activation. */\n @Prop() initialFocusVisible: boolean = false;\n\n @State() private shouldRender = false;\n @State() private closing = false;\n @State() private positionReady = false;\n @State() private pos: { x: number; y: number } = { x: 0, y: 0 };\n @State() private focusRingVisible = false;\n @State() private activeOptionIndex = 0;\n @State() private captionCompact = false;\n @State() private dateModeByFilter: Record<string, FilterMenuDateMode> = {};\n @State() private optionQueryByFilter: Record<string, string> = {};\n\n /** Requests a controlled value replacement without closing the popup. */\n @Event() dsChange!: EventEmitter<FilterMenuChangeDetail>;\n /** Requests that the consumer clear every filter value. */\n @Event() dsClear!: EventEmitter<void>;\n /** Requests a controlled any/all mode replacement for a multiple-choice filter. */\n @Event() dsMatchModeChange!: EventEmitter<FilterMenuMatchModeChangeDetail>;\n /** Requests a controlled active-category replacement. */\n @Event() dsActiveFilterChange!: EventEmitter<string>;\n /** Requests that the controlled popup close. */\n @Event() dsClose!: EventEmitter<void>;\n /** Emitted whenever internal select-trigger activation changes popup visibility. */\n @Event() dsOpenChange!: EventEmitter<boolean>;\n /** Emitted after exit motion and rendered popup removal complete. */\n @Event() dsAfterClose!: EventEmitter<void>;\n\n private readonly generatedId = `ds-filter-menu-${++filterMenuId}`;\n private triggerElement: HTMLButtonElement | null = null;\n private pendingInitialFocusVisible = false;\n private closeTimer: ReturnType<typeof setTimeout> | null = null;\n private captionCompactDisconnect: (() => void) | undefined;\n private hasLoaded = false;\n private closingSnapshot: {\n filters: FilterMenuFilter[];\n values: FilterMenuValues;\n matchModes: FilterMenuMatchModes;\n activeFilterId: string | undefined;\n } | null = null;\n\n private readonly position = new AnchoredPositionController({\n getAnchor: () => this.resolvedAnchor,\n getPopup: () => this.el.querySelector<HTMLElement>('.filter-menu-popup'),\n getOwnerDocument: () => this.el.ownerDocument,\n measure: (anchor, popup) => {\n if (!this.open) return null;\n const anchorRect = anchor.getBoundingClientRect();\n const sectionInsetPx = resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050);\n return {\n anchorRect,\n popupWidth: popup.offsetWidth || this.popupFallbackWidth,\n popupHeight: popup.offsetHeight || this.popupFallbackHeight,\n side: this.side,\n align: this.align,\n sideOffsetPx: resolveCssLengthPx(this.sideOffset, TOKEN_DEFAULTS.space050),\n alignOffsetPx: resolveChoicePopupAlignOffset({\n align: this.align,\n alignOffsetPx: resolveCssLengthPx(this.alignOffset, 0),\n sectionInsetPx,\n }),\n viewportPadPx: this.viewportPad,\n viewportWidth: window.innerWidth,\n viewportHeight: window.innerHeight,\n collisionRect: resolveAnchoredOverlayBoundaryRect(anchor, this.boundary),\n };\n },\n apply: ({ x, y }) => {\n this.pos = { x, y };\n },\n onReady: () => {\n this.positionReady = true;\n },\n liveUpdate: 'double-frame',\n observeResize: true,\n topLayer: true,\n });\n private readonly interaction = new AnchoredOverlayInteractionController({\n getAnchor: () => this.resolvedAnchor,\n getPopup: () => this.el.querySelector<HTMLElement>('.filter-menu-popup'),\n getOwnerDocument: () => this.el.ownerDocument,\n onOutsideActivation: () => this.close(),\n });\n\n componentDidLoad() {\n this.hasLoaded = true;\n this.syncCaptionCompactObserver();\n if (this.open) this.onOpenChange(true);\n }\n\n connectedCallback() {\n if (!this.hasLoaded) return;\n this.syncCaptionCompactObserver();\n if (this.open) this.onOpenChange(true);\n }\n\n disconnectedCallback() {\n this.disconnectCaptionCompactObserver();\n this.position.unobserve();\n this.teardownListeners();\n }\n\n @Watch('collapseLabel')\n onCollapseLabelChange() {\n this.syncCaptionCompactObserver();\n }\n\n @Watch('open')\n onOpenChange(isOpen: boolean) {\n if (!isOpen) {\n this.draftValues = undefined;\n this.draftModes = undefined;\n }\n if (this.embedded) return;\n if (isOpen) {\n this.teardownListeners();\n this.closingSnapshot = null;\n this.shouldRender = true;\n this.closing = false;\n this.positionReady = false;\n this.focusRingVisible = this.pendingInitialFocusVisible || this.initialFocusVisible;\n this.setupListeners();\n this.position.schedule(() => this.focusInitialCategory());\n return;\n }\n\n if (!this.shouldRender) return;\n this.position.cancel();\n this.captureClosingSnapshot();\n this.closing = true;\n this.teardownListeners();\n const duration = resolveMotionTimeMs(\n TOKEN_DEFAULTS.motionShort2,\n TOKEN_DEFAULTS.animationDurationShort3\n );\n if (duration <= 0) {\n this.finishClose();\n return;\n }\n this.closeTimer = setTimeout(() => this.finishClose(), duration);\n }\n\n @Watch('anchor')\n @Watch('anchorId')\n @Watch('boundary')\n @Watch('side')\n @Watch('align')\n @Watch('sideOffset')\n @Watch('alignOffset')\n @Watch('menuWidth')\n onPositionInputChange() {\n if (this.open) this.position.schedule();\n }\n\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n if (this.embedded && (event.key === 'Escape' || event.key === 'Tab')) return;\n if ((!this.shouldRender && !this.embedded) || this.closing) return;\n if (event.key === 'Escape') {\n event.preventDefault();\n this.close();\n return;\n }\n if (event.key !== 'Tab' || !this.tabLeavesPopup(event)) return;\n event.preventDefault();\n this.close(false);\n this.interaction.moveFocusAfterTab(event.shiftKey);\n }\n\n private get resolvedAnchor(): HTMLElement | null {\n if (this.anchor) return this.anchor;\n if (this.anchorId) return document.getElementById(this.anchorId);\n return this.triggerElement;\n }\n\n private get usesInternalTrigger(): boolean {\n return !this.embedded && !this.anchor && !this.anchorId;\n }\n\n private get viewportPad(): number {\n return resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050);\n }\n\n private get popupFallbackWidth(): number {\n return resolveCssLengthPx(TOKEN_DEFAULTS.menuWidthLg, TOKEN_DEFAULTS.menuWidthLg);\n }\n\n private get popupFallbackHeight(): number {\n return resolveCssLengthPx(TOKEN_DEFAULTS.menuFallbackHeight, TOKEN_DEFAULTS.menuFallbackHeight);\n }\n\n private setupListeners() {\n this.interaction.connect();\n this.position.observe();\n }\n\n private teardownListeners() {\n this.position.unobserve();\n this.interaction.disconnect();\n if (this.closeTimer) {\n clearTimeout(this.closeTimer);\n this.closeTimer = null;\n }\n }\n\n private close(restoreFocus = true) {\n this.captureClosingSnapshot();\n if (restoreFocus) this.interaction.focusAnchor();\n this.dsOpenChange.emit(false);\n this.dsClose.emit();\n this.open = false;\n this.onOpenChange(false);\n }\n\n private toggleFromTrigger(event: MouseEvent) {\n if (this.open) {\n this.close();\n return;\n }\n this.pendingInitialFocusVisible = event.detail === 0;\n this.open = true;\n this.dsOpenChange.emit(true);\n this.onOpenChange(true);\n }\n\n private handleTriggerKeyDown(event: KeyboardEvent) {\n if (event.key !== 'ArrowDown' || this.open) return;\n event.preventDefault();\n this.pendingInitialFocusVisible = true;\n this.open = true;\n this.dsOpenChange.emit(true);\n this.onOpenChange(true);\n }\n\n private finishClose() {\n const popup = this.el.querySelector<HTMLElement>('.filter-menu-popup');\n if (popup?.matches(':popover-open')) popup.hidePopover();\n this.shouldRender = false;\n this.closing = false;\n this.closingSnapshot = null;\n this.closeTimer = null;\n this.dateModeByFilter = {};\n this.optionQueryByFilter = {};\n this.dsAfterClose.emit();\n }\n\n private captureClosingSnapshot() {\n if (this.closingSnapshot) return;\n this.closingSnapshot = {\n filters: this.filters.map(filter => ({\n ...filter,\n options: filter.options?.map(option => ({ ...option })),\n })),\n values: Object.fromEntries(\n Object.entries(this.values).map(([key, value]) => [\n key,\n Array.isArray(value) ? [...value] : value,\n ])\n ),\n matchModes: { ...this.matchModes },\n activeFilterId: this.activeFilterId,\n };\n }\n\n private focusInitialCategory() {\n requestAnimationFrame(() => {\n this.el.querySelector<HTMLElement>('.filter-menu__category[tabindex=\"0\"]')?.focus();\n this.pendingInitialFocusVisible = false;\n });\n }\n\n private tabLeavesPopup(event: KeyboardEvent): boolean {\n return this.interaction.tabLeavesPopup(event);\n }\n\n private selectedFilter(filters: FilterMenuFilter[], activeFilterId: string | undefined) {\n return filters.find(filter => filter.id === activeFilterId) ?? filters[0];\n }\n\n private selectedCount(filter: FilterMenuFilter, values: FilterMenuValues): number {\n const value = values[filter.id];\n if (filter.kind === 'multiple') return Array.isArray(value) ? value.length : 0;\n if (filter.kind === 'boolean') return value === true ? 1 : 0;\n return typeof value === 'string' && value.length > 0 ? 1 : 0;\n }\n\n private totalSelected(filters: FilterMenuFilter[], values: FilterMenuValues): number {\n return filters.reduce((total, filter) => total + this.selectedCount(filter, values), 0);\n }\n\n private activeFilterCount(filters: FilterMenuFilter[], values: FilterMenuValues): number {\n return filters.filter(filter => this.selectedCount(filter, values) > 0).length;\n }\n\n private selectCategory(filterId: string, focus = false) {\n this.activeOptionIndex = 0;\n this.dsActiveFilterChange.emit(filterId);\n if (!focus) return;\n requestAnimationFrame(() => {\n this.el.querySelector<HTMLElement>(`[data-filter-category=\"${filterId}\"]`)?.focus();\n });\n }\n\n private handleCategoryKeyDown(\n event: KeyboardEvent,\n filters: FilterMenuFilter[],\n filterId: string\n ) {\n const currentIndex = filters.findIndex(filter => filter.id === filterId);\n let nextIndex: number;\n if (event.key === 'ArrowDown') nextIndex = (currentIndex + 1) % filters.length;\n else if (event.key === 'ArrowUp')\n nextIndex = (currentIndex - 1 + filters.length) % filters.length;\n else if (event.key === 'Home') nextIndex = 0;\n else if (event.key === 'End') nextIndex = filters.length - 1;\n else if (event.key === 'ArrowRight') {\n event.preventDefault();\n requestAnimationFrame(() => {\n this.el\n .querySelector<HTMLElement>(\n '.filter-menu__options [role=\"option\"], .filter-menu__options [data-date-option], .filter-menu__options input'\n )\n ?.focus();\n });\n return;\n } else return;\n\n event.preventDefault();\n this.focusRingVisible = true;\n this.selectCategory(filters[nextIndex].id, true);\n }\n\n private handlePanelKeyDown(event: KeyboardEvent, filterId: string) {\n if (event.key !== 'ArrowLeft') return;\n event.preventDefault();\n this.el.querySelector<HTMLElement>(`[data-filter-category=\"${filterId}\"]`)?.focus();\n }\n\n private handleOptionKeyDown(\n event: KeyboardEvent,\n filter: FilterMenuFilter,\n option: FilterMenuOption,\n index: number,\n values: FilterMenuValues,\n visibleOptions: FilterMenuOption[] = filter.options ?? []\n ) {\n if (event.key === 'ArrowLeft') {\n this.handlePanelKeyDown(event, filter.id);\n return;\n }\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.selectOption(filter, option, values);\n return;\n }\n if (!['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key)) return;\n event.preventDefault();\n const enabled = visibleOptions\n .map((candidate, optionIndex) => ({ candidate, optionIndex }))\n .filter(({ candidate }) => !candidate.isInactive)\n .map(({ optionIndex }) => optionIndex);\n if (!enabled.length) return;\n const current = enabled.indexOf(index);\n let next: number;\n if (event.key === 'Home') next = enabled[0];\n else if (event.key === 'End') next = enabled[enabled.length - 1];\n else {\n const direction = event.key === 'ArrowDown' ? 1 : -1;\n const start = current >= 0 ? current : direction === 1 ? -1 : 0;\n next = enabled[(start + direction + enabled.length) % enabled.length];\n }\n this.activeOptionIndex = next;\n this.focusRingVisible = true;\n requestAnimationFrame(() => {\n this.el\n .querySelector<HTMLElement>(`#${this.generatedId}-${filter.id}-option-${next}`)\n ?.focus();\n });\n }\n\n private optionMatchesQuery(option: FilterMenuOption, query: string): boolean {\n const normalized = query.trim().toLocaleLowerCase();\n if (!normalized) return true;\n return `${option.label} ${option.description ?? ''}`.toLocaleLowerCase().includes(normalized);\n }\n\n private visibleOptions(\n filter: FilterMenuFilter,\n query = this.optionQueryByFilter[filter.id] ?? ''\n ) {\n if (filter.kind === 'boolean') {\n const option = this.booleanOption(filter);\n return this.optionMatchesQuery(option, query) ? [option] : [];\n }\n return (filter.options ?? []).filter(option => this.optionMatchesQuery(option, query));\n }\n\n private booleanOption(filter: FilterMenuFilter): FilterMenuOption {\n return {\n label: filter.fieldLabel ?? filter.label,\n value: 'true',\n description: filter.description,\n };\n }\n\n private setOptionQuery(filter: FilterMenuFilter, value: string) {\n const visibleOptions = this.visibleOptions(filter, value);\n const firstEnabled = visibleOptions.findIndex(option => !option.isInactive);\n this.activeOptionIndex = firstEnabled;\n this.focusRingVisible = false;\n this.optionQueryByFilter = { ...this.optionQueryByFilter, [filter.id]: value };\n requestAnimationFrame(() => {\n const content = this.el.querySelector<HTMLElement>('.filter-menu__options-content');\n if (content) content.scrollTop = 0;\n this.position.schedule();\n });\n }\n\n private handleOptionSearchKeyDown(event: KeyboardEvent, filter: FilterMenuFilter) {\n if (event.key !== 'ArrowDown' && event.key !== 'ArrowUp') return;\n const visibleOptions = this.visibleOptions(filter);\n const enabled = visibleOptions\n .map((option, index) => ({ option, index }))\n .filter(({ option }) => !option.isInactive)\n .map(({ index }) => index);\n if (!enabled.length) return;\n event.preventDefault();\n const next = event.key === 'ArrowDown' ? enabled[0] : enabled[enabled.length - 1];\n this.activeOptionIndex = next;\n this.focusRingVisible = true;\n requestAnimationFrame(() => {\n this.el\n .querySelector<HTMLElement>(`#${this.generatedId}-${filter.id}-option-${next}`)\n ?.focus();\n });\n }\n\n private toggleMultiple(\n filter: FilterMenuFilter,\n option: FilterMenuOption,\n checked: boolean,\n values: FilterMenuValues\n ) {\n if (option.isInactive) return;\n const current = Array.isArray(values[filter.id]) ? (values[filter.id] as string[]) : [];\n const selected = new Set(current);\n if (checked) selected.add(option.value);\n else selected.delete(option.value);\n const ordered = (filter.options ?? [])\n .map(candidate => candidate.value)\n .filter(value => selected.has(value));\n this.changeValue({ filterId: filter.id, value: ordered });\n }\n\n private selectOption(\n filter: FilterMenuFilter,\n option: FilterMenuOption,\n values: FilterMenuValues\n ) {\n if (option.isInactive) return;\n if (filter.kind === 'single') {\n this.changeValue({ filterId: filter.id, value: option.value });\n return;\n }\n const selected = Array.isArray(values[filter.id])\n ? (values[filter.id] as string[]).includes(option.value)\n : false;\n this.toggleMultiple(filter, option, !selected, values);\n }\n\n private dateMode(filterId: string, value: FilterMenuValue | undefined): FilterMenuDateMode {\n return this.dateModeByFilter[filterId] ?? parseDateFilterValue(value)?.kind ?? 'relative';\n }\n\n private setDateMode(filter: FilterMenuFilter, mode: string) {\n if (mode !== 'range' && mode !== 'relative') return;\n this.dateModeByFilter = { ...this.dateModeByFilter, [filter.id]: mode };\n this.activeOptionIndex = 0;\n }\n\n private renderRelativeDateOptions(filter: FilterMenuFilter, value: FilterMenuValue | undefined) {\n const relativeFilter: FilterMenuFilter = {\n ...filter,\n kind: 'single',\n options: RELATIVE_DATE_OPTIONS,\n };\n return (\n <div\n class=\"filter-menu__date-relative ds-choice-list ds-chrome-column ds-chrome-space--sm\"\n role=\"listbox\"\n aria-label=\"Relative date\"\n >\n {RELATIVE_DATE_OPTIONS.map((option, index) => (\n <ChoiceOptionRow\n size=\"md\"\n id={`${this.generatedId}-${filter.id}-relative-${index}`}\n option={option}\n selected={value === option.value}\n active={index === this.activeOptionIndex}\n focusRingVisible={this.focusRingVisible}\n usesSubtext={false}\n tabIndex={index === this.activeOptionIndex ? 0 : -1}\n onFocus={() => {\n this.activeOptionIndex = index;\n }}\n onKeyDown={(event: KeyboardEvent) =>\n this.handleOptionKeyDown(event, relativeFilter, option, index, {\n [filter.id]: value,\n })\n }\n onHover={() => {\n this.focusRingVisible = false;\n this.activeOptionIndex = index;\n }}\n onSelect={() => this.changeValue({ filterId: filter.id, value: option.value })}\n />\n ))}\n </div>\n );\n }\n\n private renderDateCalendar(filter: FilterMenuFilter, value: FilterMenuValue | undefined) {\n return (\n <ds-calendar\n selectionMode=\"range\"\n value={typeof value === 'string' ? value : ''}\n onDsChange={(event: CustomEvent<string>) => {\n event.stopPropagation();\n this.changeValue({ filterId: filter.id, value: event.detail });\n }}\n />\n );\n }\n\n private renderDateFilter(filter: FilterMenuFilter, value: FilterMenuValue | undefined) {\n const mode = this.dateMode(filter.id, value);\n return (\n <div class=\"filter-menu__date\">\n <header class=\"filter-menu__date-header ds-chrome-header ds-chrome-header--bounded\">\n <ds-tab-group\n ariaLabel=\"Date filter mode\"\n size=\"md\"\n width=\"fill\"\n hasContainer={false}\n value={mode}\n tabs={DATE_MODE_TABS}\n onDsChange={(event: CustomEvent<string>) => {\n event.stopPropagation();\n this.setDateMode(filter, event.detail);\n }}\n />\n </header>\n <div class=\"filter-menu__date-body\">\n {mode === 'relative'\n ? this.renderRelativeDateOptions(filter, value)\n : this.renderDateCalendar(filter, value)}\n </div>\n </div>\n );\n }\n\n private renderOptionSearch(filter: FilterMenuFilter) {\n return (\n <div class=\"filter-menu__option-search\">\n <ChoiceSearch\n size=\"md\"\n hasFocusBoundary={false}\n hasInteractionFill={false}\n value={this.optionQueryByFilter[filter.id] ?? ''}\n placeholder={this.searchPlaceholder}\n ariaLabel={`Search ${filter.label} options`}\n controls={`${this.generatedId}-${filter.id}-options`}\n inputRef={() => undefined}\n clearLabel={`Clear ${filter.label} search`}\n onValueChange={value => this.setOptionQuery(filter, value)}\n onKeyDown={(event: KeyboardEvent) => this.handleOptionSearchKeyDown(event, filter)}\n />\n </div>\n );\n }\n\n private renderNoOptionResults() {\n return (\n <div\n class=\"ds-choice-empty ds-empty-region\"\n role=\"option\"\n aria-selected=\"false\"\n aria-disabled=\"true\"\n aria-label={this.noResultsText}\n aria-live=\"polite\"\n >\n <ds-empty-state body={this.noResultsText} />\n </div>\n );\n }\n\n private renderOptions(filter: FilterMenuFilter, values: FilterMenuValues) {\n const value = values[filter.id];\n if (filter.kind === 'multiple' || filter.kind === 'single') {\n const selected = Array.isArray(value) ? value : [];\n const allOptions = filter.options ?? [];\n const options = this.visibleOptions(filter);\n const usesSubtext = choiceListUsesSubtext(\n allOptions.map(option => ({\n label: option.label,\n value: option.value,\n subtext: option.description,\n }))\n );\n if (!options.length) return this.renderNoOptionResults();\n return options.map((option, index) => {\n const isSelected =\n filter.kind === 'multiple' ? selected.includes(option.value) : value === option.value;\n return (\n <ChoiceOptionRow\n size=\"md\"\n id={`${this.generatedId}-${filter.id}-option-${index}`}\n option={{\n label: option.label,\n value: option.value,\n subtext: option.description,\n isInactive: option.isInactive,\n }}\n selected={isSelected}\n active={index === this.activeOptionIndex}\n focusRingVisible={this.focusRingVisible}\n usesSubtext={usesSubtext}\n tabIndex={index === this.activeOptionIndex ? 0 : -1}\n leading={\n filter.kind === 'multiple' ? (\n <span\n class=\"ds-choice-item__icon ds-control-icon-box ds-interaction-fill__content\"\n aria-hidden=\"true\"\n >\n <ds-checkbox label=\"\" size=\"md\" checked={isSelected} presentation />\n </span>\n ) : undefined\n }\n onFocus={() => {\n this.activeOptionIndex = index;\n }}\n onKeyDown={(event: KeyboardEvent) =>\n this.handleOptionKeyDown(event, filter, option, index, values, options)\n }\n onHover={() => {\n this.focusRingVisible = false;\n this.activeOptionIndex = index;\n }}\n onSelect={() => this.selectOption(filter, option, values)}\n />\n );\n });\n }\n\n if (filter.kind === 'boolean') {\n const [option] = this.visibleOptions(filter);\n if (!option) return this.renderNoOptionResults();\n return (\n <ChoiceOptionRow\n size=\"md\"\n id={`${this.generatedId}-${filter.id}-option-0`}\n option={{\n label: option.label,\n value: option.value,\n subtext: option.description,\n }}\n selected={value === true}\n active\n focusRingVisible={this.focusRingVisible}\n usesSubtext={Boolean(option.description)}\n tabIndex={0}\n leading={\n <span\n class=\"ds-choice-item__icon ds-control-icon-box ds-interaction-fill__content\"\n aria-hidden=\"true\"\n >\n <ds-checkbox label=\"\" size=\"md\" checked={value === true} presentation />\n </span>\n }\n onKeyDown={(event: KeyboardEvent) => {\n if (event.key === 'ArrowLeft') this.handlePanelKeyDown(event, filter.id);\n else if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.changeValue({ filterId: filter.id, value: value !== true });\n }\n }}\n onHover={() => {\n this.focusRingVisible = false;\n }}\n onSelect={() => this.changeValue({ filterId: filter.id, value: value !== true })}\n />\n );\n }\n\n return this.renderDateFilter(filter, value);\n }\n\n private get captionIconOnly(): boolean {\n return (\n this.collapseLabel && this.captionCompact && this.usesInternalTrigger && Boolean(this.icon)\n );\n }\n\n private syncCaptionCompactObserver(): void {\n this.disconnectCaptionCompactObserver();\n if (!this.collapseLabel) {\n if (this.captionCompact) this.captionCompact = false;\n return;\n }\n this.captionCompactDisconnect = observeTableCaptionCompact(this.el, compact => {\n if (this.captionCompact !== compact) this.captionCompact = compact;\n });\n }\n\n private disconnectCaptionCompactObserver(): void {\n this.captionCompactDisconnect?.();\n this.captionCompactDisconnect = undefined;\n }\n\n private renderCaptionTooltip(trigger: VNode, label: string): VNode {\n if (!this.collapseLabel) return trigger;\n return (\n <ds-tooltip label={label} side=\"top\" size=\"sm\">\n {trigger}\n </ds-tooltip>\n );\n }\n\n private renderFooter(totalSelected: number, categoriesClear: boolean) {\n const appliedCount = this.totalSelected(this.filters, this.values);\n if (this.applyRequired && totalSelected === 0 && appliedCount === 0) return null;\n return (\n <div\n class={{\n 'filter-menu__footer': true,\n 'filter-menu__footer--categories-clear': categoriesClear,\n 'ds-choice-footer': true,\n }}\n aria-hidden={\n !this.applyRequired &&\n categoriesClear &&\n totalSelected === 0 &&\n !this.draftValues &&\n !this.draftModes\n ? 'true'\n : undefined\n }\n >\n <div class=\"ds-choice-footer__content ds-control--md\">\n {!categoriesClear ? (\n <ds-text\n class=\"ds-choice-footer__summary\"\n as=\"span\"\n variant=\"text-body-medium\"\n color=\"secondary\"\n aria-live=\"polite\"\n >\n {totalSelected} selected\n </ds-text>\n ) : null}\n {this.applyRequired ? (\n <button\n class=\"filter-menu__apply ds-choice-footer__clear ds-text-action\"\n type=\"button\"\n disabled={!this.hasPendingChanges}\n onClick={() => this.applyDraft()}\n >\n <ds-text as=\"span\" variant=\"text-body-medium\" color=\"inherit\">\n Apply\n </ds-text>\n </button>\n ) : null}\n {this.applyRequired && (totalSelected > 0 || appliedCount > 0) ? (\n <ds-text\n class=\"filter-menu__action-separator\"\n as=\"span\"\n variant=\"text-body-medium\"\n color=\"tertiary\"\n aria-hidden=\"true\"\n >\n ·\n </ds-text>\n ) : null}\n {totalSelected > 0 || (this.applyRequired && appliedCount > 0) ? (\n <button\n class=\"filter-menu__clear ds-choice-footer__clear ds-text-action\"\n type=\"button\"\n onClick={() => {\n if (this.applyRequired) {\n this.draftValues = {};\n this.draftModes = {};\n }\n this.dsClear.emit();\n }}\n >\n <ds-text as=\"span\" variant=\"text-body-medium\" color=\"inherit\">\n {this.clearLabel}\n </ds-text>\n </button>\n ) : null}\n </div>\n </div>\n );\n }\n\n private renderMatchModeFooter(filter: FilterMenuFilter, matchModes: FilterMenuMatchModes) {\n const mode: FilterMenuMatchMode = matchModes[filter.id] === 'all' ? 'all' : 'any';\n const nextMode: FilterMenuMatchMode = mode === 'any' ? 'all' : 'any';\n return (\n <div class=\"filter-menu__match-mode-footer ds-choice-footer\">\n <div class=\"filter-menu__match-mode-content ds-choice-footer__content ds-control--md\">\n <ds-text as=\"span\" variant=\"text-body-medium\" color=\"secondary\">\n Limit results to\n </ds-text>\n <button\n class=\"filter-menu__match-mode-toggle ds-text-action ds-focus-ring\"\n type=\"button\"\n aria-label={`Limit ${filter.label} results to ${nextMode} selected`}\n onClick={() => this.changeMode({ filterId: filter.id, mode: nextMode })}\n onKeyDown={(event: KeyboardEvent) => this.handlePanelKeyDown(event, filter.id)}\n >\n <ds-text as=\"span\" variant=\"text-body-medium\" color=\"inherit\">\n {mode}\n </ds-text>\n </button>\n <ds-text as=\"span\" variant=\"text-body-medium\" color=\"secondary\">\n selected\n </ds-text>\n </div>\n </div>\n );\n }\n\n render() {\n if (this.vertical)\n return (\n <Host class=\"filter-menu-vertical\">\n {this.filters.map(filter => (\n <details open key={filter.id} class=\"filter-menu-vertical__section\">\n <summary>\n <ds-icon class=\"filter-menu-vertical__chevron\" name=\"ChevronDown\" size=\"md\" />\n <ds-text variant=\"text-body-medium\" emphasis>\n {filter.label}\n </ds-text>\n </summary>\n {filter.kind !== 'date' && this.renderOptionSearch(filter)}\n <div\n id={`${this.generatedId}-${filter.id}-options`}\n role={filter.kind === 'date' ? undefined : 'listbox'}\n aria-label={filter.label}\n aria-multiselectable={filter.kind === 'multiple' ? 'true' : undefined}\n class=\"ds-choice-list ds-chrome-column ds-chrome-space--sm\"\n >\n {this.renderOptions(filter, this.values)}\n </div>\n {filter.kind === 'multiple' && this.renderMatchModeFooter(filter, this.matchModes)}\n </details>\n ))}\n </Host>\n );\n const state =\n this.closing && this.closingSnapshot\n ? this.closingSnapshot\n : {\n filters: this.filters,\n values: this.draftValues ?? this.values,\n matchModes: this.draftModes ?? this.matchModes,\n activeFilterId: this.activeFilterId,\n };\n const activeFilter = this.selectedFilter(state.filters, state.activeFilterId);\n const totalSelected = this.totalSelected(state.filters, state.values);\n const activeFilterCount = this.activeFilterCount(state.filters, state.values);\n const hasActiveFilters = activeFilterCount > 0;\n const categoriesClearFooter = this.footerLayout === 'categories-clear';\n const label = `${this.triggerLabel}${\n this.showSelectedCount && hasActiveFilters ? ` · ${activeFilterCount}` : ''\n }`;\n const textVariant = CONTROL_TEXT_VARIANT[this.size];\n const iconSize = ICON_SIZE[this.size];\n const popupId = `${this.generatedId}-popup`;\n const popupStyle: Record<string, string> = {\n position: 'fixed',\n left: '0',\n top: '0',\n width: this.menuWidth,\n transform: `translate(${Math.round(this.pos.x)}px, ${Math.round(this.pos.y)}px)`,\n zIndex: '9998',\n visibility: this.positionReady ? 'visible' : 'hidden',\n };\n\n return (\n <Host\n class={{\n 'filter-menu-host': true,\n 'filter-menu-host--external-trigger': !this.usesInternalTrigger,\n 'ds-select-trigger-host': this.usesInternalTrigger,\n [`ds-control--${this.size}`]: true,\n 'ds-table-caption-control': this.collapseLabel,\n 'ds-table-caption-control--compact': this.captionIconOnly,\n ...controlWidthClass(this.width),\n }}\n >\n {this.usesInternalTrigger\n ? this.renderCaptionTooltip(\n <button\n ref={element => {\n this.triggerElement = (element as HTMLButtonElement) ?? null;\n }}\n id={this.inputId ?? `${this.generatedId}-trigger`}\n type=\"button\"\n class={{\n trigger: true,\n 'ds-control-frame': true,\n 'ds-focus-ring-inset': true,\n 'ds-interaction-fill': true,\n 'ds-interaction-fill--selected': this.activeFill && hasActiveFilters,\n 'trigger--expanded': this.open || this.closing,\n 'ds-interaction-fill--surface-open': this.open || this.closing,\n 'trigger--bordered': this.hasBorder,\n 'trigger--has-value': hasActiveFilters && !this.neutralTrigger,\n [`ds-control--${this.size}`]: true,\n }}\n role=\"combobox\"\n aria-haspopup=\"dialog\"\n aria-expanded={String(this.open)}\n aria-controls={this.open ? popupId : undefined}\n aria-label={this.ariaLabel ?? this.menuLabel}\n onClick={(event: MouseEvent) => this.toggleFromTrigger(event)}\n onKeyDown={(event: KeyboardEvent) => this.handleTriggerKeyDown(event)}\n >\n {this.icon ? (\n <span\n class=\"trigger__prefix ds-control-icon-box ds-interaction-fill__content\"\n aria-hidden=\"true\"\n >\n <ds-icon name={this.icon} size={iconSize} color=\"inherit\" />\n </span>\n ) : null}\n {this.captionIconOnly ? null : (\n <ds-text\n class=\"trigger__label-box trigger__label trigger__label-content ds-control-label-box ds-interaction-fill__content\"\n as=\"span\"\n variant={textVariant}\n color=\"inherit\"\n lineTruncation={1}\n >\n {label}\n </ds-text>\n )}\n {this.captionIconOnly || !this.showIndicator ? null : (\n <span\n class=\"trigger__chevron ds-control-icon-box ds-interaction-fill__content\"\n aria-hidden=\"true\"\n >\n <ds-icon name=\"ChevronDown\" size={iconSize} color=\"inherit\" />\n </span>\n )}\n </button>,\n this.captionIconOnly ? label : ''\n )\n : null}\n\n {this.shouldRender || this.embedded ? (\n <div\n id={popupId}\n popover={this.embedded ? undefined : 'manual'}\n class={{\n 'filter-menu-popup': true,\n 'ds-choice-popup': !this.embedded,\n 'table-preferences-embedded': this.embedded,\n 'ds-choice-popup--closing': this.closing,\n }}\n style={this.embedded ? undefined : popupStyle}\n role=\"dialog\"\n aria-label={this.menuLabel}\n >\n {activeFilter ? (\n <div class=\"filter-menu\">\n <div class=\"filter-menu__body\">\n <div class=\"filter-menu__category-pane\">\n <div\n class=\"filter-menu__categories ds-choice-list ds-chrome-column ds-chrome-space--sm\"\n role=\"tablist\"\n aria-label={this.categoriesLabel}\n aria-orientation=\"vertical\"\n >\n {state.filters.map(filter => {\n const active = filter.id === activeFilter.id;\n const count = this.selectedCount(filter, state.values);\n return (\n <div\n key={filter.id}\n class={{\n 'filter-menu__category-section': true,\n 'ds-choice-section--divided': Boolean(filter.divider),\n }}\n >\n <button\n id={`${this.generatedId}-${filter.id}-tab`}\n type=\"button\"\n role=\"tab\"\n data-filter-category={filter.id}\n class={{\n 'filter-menu__category': true,\n 'filter-menu__category--active': active,\n 'ds-choice-item': true,\n 'ds-control-frame': true,\n 'ds-control--md': true,\n 'ds-focus-ring-inset': true,\n 'ds-focus-ring--visible': active && this.focusRingVisible,\n 'ds-interaction-fill': true,\n 'ds-interaction-fill--selected': active,\n }}\n aria-selected={String(active)}\n aria-controls={`${this.generatedId}-panel`}\n tabIndex={active ? 0 : -1}\n onMouseDown={() => {\n this.focusRingVisible = false;\n }}\n onClick={() => this.selectCategory(filter.id)}\n onKeyDown={(event: KeyboardEvent) =>\n this.handleCategoryKeyDown(event, state.filters, filter.id)\n }\n >\n <ds-text\n class=\"ds-choice-item__content ds-choice-item__label ds-control-label-box ds-interaction-fill__content\"\n as=\"span\"\n variant=\"text-body-medium\"\n color={active ? 'primary' : 'secondary'}\n >\n {filter.label}\n </ds-text>\n {count > 0 && filter.kind === 'date' ? (\n <span\n class=\"filter-menu__category-dot-box ds-interaction-fill__content\"\n aria-hidden=\"true\"\n >\n <ds-badge variant=\"dot\" hasRing={false} label=\"\" />\n </span>\n ) : count > 0 ? (\n <ds-tag\n class=\"ds-choice-item__tag ds-interaction-fill__content\"\n label={String(count)}\n size=\"sm\"\n intent=\"brand\"\n contrast=\"bold\"\n isInset\n rounded\n />\n ) : null}\n </button>\n </div>\n );\n })}\n </div>\n {categoriesClearFooter ? this.renderFooter(totalSelected, true) : null}\n </div>\n\n <div\n id={`${this.generatedId}-panel`}\n class={{\n 'filter-menu__options': true,\n 'filter-menu__options--date': activeFilter.kind === 'date',\n }}\n role=\"tabpanel\"\n aria-labelledby={`${this.generatedId}-${activeFilter.id}-tab`}\n >\n {activeFilter.kind === 'date' ? null : this.renderOptionSearch(activeFilter)}\n <div class=\"filter-menu__options-content\">\n {activeFilter.kind === 'date' ? (\n <div key={activeFilter.id} class=\"filter-menu__option-list--date\">\n {this.renderOptions(activeFilter, state.values)}\n </div>\n ) : (\n <div\n id={`${this.generatedId}-${activeFilter.id}-options`}\n key={activeFilter.id}\n class=\"filter-menu__option-list ds-choice-list ds-chrome-column ds-chrome-space--sm\"\n role=\"listbox\"\n aria-label={activeFilter.label}\n aria-multiselectable={\n activeFilter.kind === 'multiple' ? 'true' : undefined\n }\n >\n {this.renderOptions(activeFilter, state.values)}\n </div>\n )}\n </div>\n {activeFilter.kind === 'multiple'\n ? this.renderMatchModeFooter(activeFilter, state.matchModes)\n : null}\n </div>\n </div>\n\n {!categoriesClearFooter && totalSelected > 0\n ? this.renderFooter(totalSelected, false)\n : null}\n </div>\n ) : null}\n </div>\n ) : null}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}