@ds-mo/ui 15.4.0 → 15.5.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 (477) hide show
  1. package/NOTICE +7 -1
  2. package/dist/.package-ready.json +1 -1
  3. package/dist/agent-patterns.json +1 -1
  4. package/dist/agent.json +64 -8
  5. package/dist/angular/boolean-value-accessor.js +3 -3
  6. package/dist/angular/ds-agent-activity.js +3 -3
  7. package/dist/angular/ds-agent-questionnaire.js +3 -3
  8. package/dist/angular/ds-agent-response.js +3 -3
  9. package/dist/angular/ds-agent-source-list.js +3 -3
  10. package/dist/angular/ds-agent-tool-call.js +3 -3
  11. package/dist/angular/ds-attachment-list.js +3 -3
  12. package/dist/angular/ds-avatar.js +3 -3
  13. package/dist/angular/ds-badge.js +3 -3
  14. package/dist/angular/ds-banner.js +3 -3
  15. package/dist/angular/ds-bar-action.js +3 -3
  16. package/dist/angular/ds-bar-nav.js +3 -3
  17. package/dist/angular/ds-bar-page-title.js +3 -3
  18. package/dist/angular/ds-bar-title.js +3 -3
  19. package/dist/angular/ds-bar-workflow.js +3 -3
  20. package/dist/angular/ds-breadcrumb.js +3 -3
  21. package/dist/angular/ds-button-filled.js +3 -3
  22. package/dist/angular/ds-button-inverted.js +3 -3
  23. package/dist/angular/ds-button-unfilled.js +3 -3
  24. package/dist/angular/ds-calendar.js +3 -3
  25. package/dist/angular/ds-card-action-center.js +3 -3
  26. package/dist/angular/ds-card-chart.js +3 -3
  27. package/dist/angular/ds-card-navigation.js +3 -3
  28. package/dist/angular/ds-card-overview.js +3 -3
  29. package/dist/angular/ds-card-setting.js +3 -3
  30. package/dist/angular/ds-card-settings-scope.js +3 -3
  31. package/dist/angular/ds-chart-legend.js +3 -3
  32. package/dist/angular/ds-chart.js +3 -3
  33. package/dist/angular/ds-checkbox-group.js +3 -3
  34. package/dist/angular/ds-checkbox.d.ts +1 -1
  35. package/dist/angular/ds-checkbox.js +5 -5
  36. package/dist/angular/ds-chip.js +3 -3
  37. package/dist/angular/ds-code-block.js +3 -3
  38. package/dist/angular/ds-conversation-list-item.js +3 -3
  39. package/dist/angular/ds-conversation-list-section.js +3 -3
  40. package/dist/angular/ds-conversation-list.js +3 -3
  41. package/dist/angular/ds-data-customize.js +3 -3
  42. package/dist/angular/ds-data-filter.js +3 -3
  43. package/dist/angular/ds-data-group.js +3 -3
  44. package/dist/angular/ds-data-preferences.js +3 -3
  45. package/dist/angular/ds-data-saved-views.js +3 -3
  46. package/dist/angular/ds-data-search.js +3 -3
  47. package/dist/angular/ds-data-sort.js +3 -3
  48. package/dist/angular/ds-data-toolbar.js +3 -3
  49. package/dist/angular/ds-divider.js +3 -3
  50. package/dist/angular/ds-empty-state.js +3 -3
  51. package/dist/angular/ds-field.js +3 -3
  52. package/dist/angular/ds-filter-menu.js +3 -3
  53. package/dist/angular/ds-icon.js +3 -3
  54. package/dist/angular/ds-inline-banner-settings.js +3 -3
  55. package/dist/angular/ds-input-date.js +3 -3
  56. package/dist/angular/ds-input-time.js +3 -3
  57. package/dist/angular/ds-input.js +3 -3
  58. package/dist/angular/ds-loader.js +3 -3
  59. package/dist/angular/ds-map-cluster-marker.js +3 -3
  60. package/dist/angular/ds-map-entity-marker.js +3 -3
  61. package/dist/angular/ds-markdown.js +3 -3
  62. package/dist/angular/ds-menu.js +3 -3
  63. package/dist/angular/ds-message-actions.js +3 -3
  64. package/dist/angular/ds-message-bubble.js +3 -3
  65. package/dist/angular/ds-message-composer.js +3 -3
  66. package/dist/angular/ds-message-scroller.js +3 -3
  67. package/dist/angular/ds-message.js +3 -3
  68. package/dist/angular/ds-mobile-bar-nav.js +3 -3
  69. package/dist/angular/ds-mobile-header.js +3 -3
  70. package/dist/angular/ds-mobile-section-switcher.js +3 -3
  71. package/dist/angular/ds-mobile-sheet-nav.js +3 -3
  72. package/dist/angular/ds-modal.js +3 -3
  73. package/dist/angular/ds-pagination.js +3 -3
  74. package/dist/angular/ds-panel-nav.js +3 -3
  75. package/dist/angular/ds-panel-sub-nav.js +3 -3
  76. package/dist/angular/ds-panel-tool-header.js +3 -3
  77. package/dist/angular/ds-panel-tool-search.js +3 -3
  78. package/dist/angular/ds-panel-tools.js +3 -3
  79. package/dist/angular/ds-paper-texture.js +3 -3
  80. package/dist/angular/ds-radio-tile.js +3 -3
  81. package/dist/angular/ds-radio.js +3 -3
  82. package/dist/angular/ds-score.js +3 -3
  83. package/dist/angular/ds-scroll-overlay.js +3 -3
  84. package/dist/angular/ds-select.d.ts +1 -1
  85. package/dist/angular/ds-select.js +5 -5
  86. package/dist/angular/ds-setting-row-checkbox.js +3 -3
  87. package/dist/angular/ds-setting-row-radio.js +3 -3
  88. package/dist/angular/ds-setting-row-toggle.js +3 -3
  89. package/dist/angular/ds-shell-app.js +3 -3
  90. package/dist/angular/ds-shell-page.js +3 -3
  91. package/dist/angular/ds-shell-tools.js +3 -3
  92. package/dist/angular/ds-skeleton.js +3 -3
  93. package/dist/angular/ds-slider.js +3 -3
  94. package/dist/angular/ds-swatch-picker.js +3 -3
  95. package/dist/angular/ds-switch.js +3 -3
  96. package/dist/angular/ds-tab-group.js +3 -3
  97. package/dist/angular/ds-table.d.ts +7 -1
  98. package/dist/angular/ds-table.js +13 -7
  99. package/dist/angular/ds-tag.js +3 -3
  100. package/dist/angular/ds-text.js +3 -3
  101. package/dist/angular/ds-textarea.js +3 -3
  102. package/dist/angular/ds-time-picker.js +3 -3
  103. package/dist/angular/ds-toast.js +3 -3
  104. package/dist/angular/ds-tooltip-chart.js +3 -3
  105. package/dist/angular/ds-tooltip.js +3 -3
  106. package/dist/angular/ds-typing-indicator.js +3 -3
  107. package/dist/angular/number-value-accessor.js +3 -3
  108. package/dist/angular/radio-value-accessor.js +3 -3
  109. package/dist/angular/select-value-accessor.js +3 -3
  110. package/dist/angular/text-value-accessor.js +3 -3
  111. package/dist/angular/value-accessor.js +3 -3
  112. package/dist/components/THIRD-PARTY-NOTICES +1791 -0
  113. package/dist/components/bundled-dependencies.json +478 -0
  114. package/dist/components/ds-agent-activity.js +1 -1
  115. package/dist/components/ds-agent-questionnaire.js +1 -1
  116. package/dist/components/ds-agent-response.js +1 -1
  117. package/dist/components/ds-agent-source-list.js +1 -1
  118. package/dist/components/ds-agent-tool-call.js +1 -1
  119. package/dist/components/ds-attachment-list.js +1 -1
  120. package/dist/components/ds-avatar.js +1 -1
  121. package/dist/components/ds-banner.js +1 -1
  122. package/dist/components/ds-banner.js.map +1 -1
  123. package/dist/components/ds-bar-nav.js +1 -1
  124. package/dist/components/ds-bar-page-title.js +1 -1
  125. package/dist/components/ds-bar-title.js +1 -1
  126. package/dist/components/ds-bar-workflow.js +1 -1
  127. package/dist/components/ds-breadcrumb.js +1 -1
  128. package/dist/components/ds-button-filled.js +1 -1
  129. package/dist/components/ds-button-inverted.js +1 -1
  130. package/dist/components/ds-button-unfilled.js +1 -1
  131. package/dist/components/ds-calendar.js +1 -1
  132. package/dist/components/ds-card-action-center.js +1 -1
  133. package/dist/components/ds-card-chart.js +1 -1
  134. package/dist/components/ds-card-navigation.js +1 -1
  135. package/dist/components/ds-card-overview.js +1 -1
  136. package/dist/components/ds-card-overview.js.map +1 -1
  137. package/dist/components/ds-card-setting.js +1 -1
  138. package/dist/components/ds-chart-legend.js +1 -1
  139. package/dist/components/ds-chart-legend.js.map +1 -1
  140. package/dist/components/ds-chart.js +1 -1
  141. package/dist/components/ds-chart.js.map +1 -1
  142. package/dist/components/ds-checkbox.js +1 -1
  143. package/dist/components/ds-chip.js +1 -1
  144. package/dist/components/ds-code-block.js +1 -1
  145. package/dist/components/ds-conversation-list.js +1 -1
  146. package/dist/components/ds-conversation-list.js.map +1 -1
  147. package/dist/components/ds-data-customize.js +1 -1
  148. package/dist/components/ds-data-filter.js +1 -1
  149. package/dist/components/ds-data-group.js +1 -1
  150. package/dist/components/ds-data-preferences.js +1 -1
  151. package/dist/components/ds-data-preferences.js.map +1 -1
  152. package/dist/components/ds-data-saved-views.js +1 -1
  153. package/dist/components/ds-data-search.js +1 -1
  154. package/dist/components/ds-data-sort.js +1 -1
  155. package/dist/components/ds-data-toolbar.js +1 -1
  156. package/dist/components/ds-divider.js +1 -1
  157. package/dist/components/ds-empty-state.js +1 -1
  158. package/dist/components/ds-filter-menu.js +1 -1
  159. package/dist/components/ds-icon.js +1 -1
  160. package/dist/components/ds-input-date.js +1 -1
  161. package/dist/components/ds-input-date.js.map +1 -1
  162. package/dist/components/ds-input-time.js +1 -1
  163. package/dist/components/ds-input-time.js.map +1 -1
  164. package/dist/components/ds-input.js +1 -1
  165. package/dist/components/ds-map-entity-marker.js +1 -1
  166. package/dist/components/ds-markdown.js +1 -1
  167. package/dist/components/ds-menu.js +1 -1
  168. package/dist/components/ds-message-actions.js +1 -1
  169. package/dist/components/ds-message-bubble.js +1 -1
  170. package/dist/components/ds-message-composer.js +1 -1
  171. package/dist/components/ds-message-scroller.js +1 -1
  172. package/dist/components/ds-message.js +1 -1
  173. package/dist/components/ds-mobile-bar-nav.js +1 -1
  174. package/dist/components/ds-mobile-header.js +1 -1
  175. package/dist/components/ds-mobile-section-switcher.js +1 -1
  176. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  177. package/dist/components/ds-modal.js +1 -1
  178. package/dist/components/ds-pagination.js +1 -1
  179. package/dist/components/ds-panel-nav.js +1 -1
  180. package/dist/components/ds-panel-sub-nav.js +1 -1
  181. package/dist/components/ds-panel-tool-header.js +1 -1
  182. package/dist/components/ds-panel-tool-search.js +1 -1
  183. package/dist/components/ds-panel-tools.js +1 -1
  184. package/dist/components/ds-radio-tile.js +1 -1
  185. package/dist/components/ds-radio-tile.js.map +1 -1
  186. package/dist/components/ds-radio.js +1 -1
  187. package/dist/components/ds-scroll-overlay.js +1 -1
  188. package/dist/components/ds-scroll-overlay.js.map +1 -1
  189. package/dist/components/ds-select.js +1 -1
  190. package/dist/components/ds-setting-row-toggle.js +1 -1
  191. package/dist/components/ds-shell-app.js +1 -1
  192. package/dist/components/ds-shell-app.js.map +1 -1
  193. package/dist/components/ds-shell-page.js +1 -1
  194. package/dist/components/ds-shell-tools.js +1 -1
  195. package/dist/components/ds-slider.js +1 -1
  196. package/dist/components/ds-slider.js.map +1 -1
  197. package/dist/components/ds-switch.js +1 -1
  198. package/dist/components/ds-tab-group.js +1 -1
  199. package/dist/components/ds-table.js +1 -1
  200. package/dist/components/ds-table.js.map +1 -1
  201. package/dist/components/ds-tag.js +1 -1
  202. package/dist/components/ds-textarea.js +1 -1
  203. package/dist/components/ds-textarea.js.map +1 -1
  204. package/dist/components/ds-time-picker.js +1 -1
  205. package/dist/components/ds-toast.js +1 -1
  206. package/dist/components/ds-tooltip-chart.js +1 -1
  207. package/dist/components/ds-tooltip.js +1 -1
  208. package/dist/components/p--STJbKuN.js +2 -0
  209. package/dist/components/p--STJbKuN.js.map +1 -0
  210. package/dist/components/{p-Co1rUdOR.js → p--pJyciTI.js} +2 -2
  211. package/dist/components/p--pJyciTI.js.map +1 -0
  212. package/dist/components/p-02k7d7BH.js +2 -0
  213. package/dist/components/p-02k7d7BH.js.map +1 -0
  214. package/dist/components/{p-CZNZTcYS.js → p-5-gQbIIz.js} +2 -2
  215. package/dist/components/{p-DRdoGSGX.js → p-7MwoWtTJ.js} +2 -2
  216. package/dist/components/p-B0uO3-Dp.js +2 -0
  217. package/dist/components/p-B0uO3-Dp.js.map +1 -0
  218. package/dist/components/p-B6TX55c5.js +2 -0
  219. package/dist/components/p-B6TX55c5.js.map +1 -0
  220. package/dist/components/p-B95UP66y.js +2 -0
  221. package/dist/components/p-B95UP66y.js.map +1 -0
  222. package/dist/components/p-BGSG6xIS.js +2 -0
  223. package/dist/components/p-BGSG6xIS.js.map +1 -0
  224. package/dist/components/p-BNarCFJZ.js +2 -0
  225. package/dist/components/p-BNarCFJZ.js.map +1 -0
  226. package/dist/components/{p-DJDbskZf.js → p-BO5URdZF.js} +2 -2
  227. package/dist/components/{p-DmSnHVW6.js → p-BVxK8ce0.js} +2 -2
  228. package/dist/components/{p-B0EpvBDs.js → p-BYeG0b5N.js} +2 -2
  229. package/dist/components/p-BcpIK9S6.js +2 -0
  230. package/dist/components/p-BcpIK9S6.js.map +1 -0
  231. package/dist/components/p-Bf-BphXP.js +2 -0
  232. package/dist/components/p-Bf-BphXP.js.map +1 -0
  233. package/dist/components/{p-Bk3poU91.js → p-BmIllmq2.js} +2 -2
  234. package/dist/components/p-BmIllmq2.js.map +1 -0
  235. package/dist/components/p-Bq_ypMSy.js +2 -0
  236. package/dist/components/p-Bq_ypMSy.js.map +1 -0
  237. package/dist/components/p-ByLH5RAD.js +2 -0
  238. package/dist/components/p-ByLH5RAD.js.map +1 -0
  239. package/dist/components/{p-DzvTC27M.js → p-C1ZfBbJ_.js} +2 -2
  240. package/dist/components/p-C1ZfBbJ_.js.map +1 -0
  241. package/dist/components/p-C1oczmAc.js +2 -0
  242. package/dist/components/p-C1oczmAc.js.map +1 -0
  243. package/dist/components/p-C5BBIDVm.js +2 -0
  244. package/dist/components/p-C5BBIDVm.js.map +1 -0
  245. package/dist/components/{p-CJ1NnOEW.js → p-CA3iQ1ME.js} +2 -2
  246. package/dist/components/p-CE6MaXBg.js +2 -0
  247. package/dist/components/p-CE6MaXBg.js.map +1 -0
  248. package/dist/components/p-CXGjCWSh.js +2 -0
  249. package/dist/components/p-CXGjCWSh.js.map +1 -0
  250. package/dist/components/{p-DYQa1DVF.js → p-C_9VGgPf.js} +2 -2
  251. package/dist/components/p-CbrDF2gA.js +2 -0
  252. package/dist/components/p-CbrDF2gA.js.map +1 -0
  253. package/dist/components/{p-7TVdPhGR.js → p-CgQB8Ct5.js} +2 -2
  254. package/dist/components/{p-D6FRqNhN.js → p-D-J7GgjY.js} +2 -2
  255. package/dist/components/{p-DSZPO06T.js → p-D9_iDlkT.js} +2 -2
  256. package/dist/components/{p-BwdnVqAY.js → p-DEYCF-oJ.js} +2 -2
  257. package/dist/components/p-DGVZhrMd.js +2 -0
  258. package/dist/components/p-DGVZhrMd.js.map +1 -0
  259. package/dist/components/{p-C8V4lkVy.js → p-DKGW3gRa.js} +2 -2
  260. package/dist/components/p-DPFg5d4_.js +2 -0
  261. package/dist/components/p-DPFg5d4_.js.map +1 -0
  262. package/dist/components/{p-C4huuwed.js → p-DR_8IPn9.js} +2 -2
  263. package/dist/components/p-DXL5D30P.js +2 -0
  264. package/dist/components/p-DXL5D30P.js.map +1 -0
  265. package/dist/components/{p-B0BQCVkq.js → p-D_iZPukF.js} +2 -2
  266. package/dist/components/{p-JBki_jyY.js → p-DfMTDFcE.js} +2 -2
  267. package/dist/components/{p-MOJmB6vX.js → p-Dg6hnCc2.js} +2 -2
  268. package/dist/components/{p-DXk1eml1.js → p-DjbT9kKm.js} +2 -2
  269. package/dist/components/p-Dka0lUI_.js +2 -0
  270. package/dist/components/p-Dka0lUI_.js.map +1 -0
  271. package/dist/components/p-DlsjHRU3.js +2 -0
  272. package/dist/components/p-DlsjHRU3.js.map +1 -0
  273. package/dist/components/{p-_IqSPt5V.js → p-Dr5rkAhe.js} +2 -2
  274. package/dist/components/p-DuCCuJKI.js +2 -0
  275. package/dist/components/p-DuCCuJKI.js.map +1 -0
  276. package/dist/components/{p-DIQiHX0q.js → p-DvGrsLgt.js} +2 -2
  277. package/dist/components/{p-Doa2blZT.js → p-PtxCwf5S.js} +2 -2
  278. package/dist/components/p-PzYJqN8B.js +2 -0
  279. package/dist/components/p-PzYJqN8B.js.map +1 -0
  280. package/dist/components/p-S1Ct3FJV.js +2 -0
  281. package/dist/components/p-S1Ct3FJV.js.map +1 -0
  282. package/dist/components/p-YC7UM4jH.js +2 -0
  283. package/dist/components/p-YC7UM4jH.js.map +1 -0
  284. package/dist/components/{p-B9TM6FqC.js → p-d76Ry5nh.js} +2 -2
  285. package/dist/components/p-ioGH5SoA.js +2 -0
  286. package/dist/components/p-ioGH5SoA.js.map +1 -0
  287. package/dist/components/p-jp7hwRtC.js +2 -0
  288. package/dist/components/p-jp7hwRtC.js.map +1 -0
  289. package/dist/components/{p-BFHpU-uU.js → p-kwS-vkau.js} +2 -2
  290. package/dist/components/{p-DjkUFlDW.js → p-pPtjNRqC.js} +3 -2
  291. package/dist/components/p-pPtjNRqC.js.map +1 -0
  292. package/dist/components/{p-B39iJO8F.js → p-rmPIcWED.js} +2 -2
  293. package/dist/components/p-t2Ebn8si.js +2 -0
  294. package/dist/components/p-t2Ebn8si.js.map +1 -0
  295. package/dist/components/p-wRhYxngW.js +2 -0
  296. package/dist/components/p-wRhYxngW.js.map +1 -0
  297. package/dist/docs/components.json +477 -82
  298. package/dist/lib/components/Icon/icon-cache.d.ts +6 -0
  299. package/dist/lib/utils/clock-time.d.ts +1 -0
  300. package/dist/lib/utils/date-filter-value.d.ts +2 -0
  301. package/dist/lib/utils/form-association.d.ts +2 -1
  302. package/dist/lib/utils/format-percentage.d.ts +1 -1
  303. package/dist/lib/utils/index.js +113 -93
  304. package/dist/lib/utils/index.js.map +4 -4
  305. package/dist/lib/utils/intl-formatters.d.ts +3 -0
  306. package/dist/lib/utils/resolve-css-length-px.d.ts +4 -3
  307. package/dist/lint/THIRD-PARTY-NOTICES +97 -40
  308. package/dist/lint/bundled-dependencies.json +162 -0
  309. package/dist/lint/index.js +1341 -1333
  310. package/dist/mcp/THIRD-PARTY-NOTICES +470 -0
  311. package/dist/mcp/bundled-dependencies.json +29 -0
  312. package/dist/mcp-data/registry/agent-tool-call.json +1 -1
  313. package/dist/mcp-data/registry/banner.json +1 -1
  314. package/dist/mcp-data/registry/bar-nav.json +1 -1
  315. package/dist/mcp-data/registry/bar-page-title.json +1 -1
  316. package/dist/mcp-data/registry/breadcrumb.json +1 -1
  317. package/dist/mcp-data/registry/calendar.json +4 -4
  318. package/dist/mcp-data/registry/card-overview.json +1 -1
  319. package/dist/mcp-data/registry/chart.json +3 -3
  320. package/dist/mcp-data/registry/checkbox.json +17 -1
  321. package/dist/mcp-data/registry/conversation-list.json +1 -1
  322. package/dist/mcp-data/registry/data-group.json +1 -1
  323. package/dist/mcp-data/registry/data-preferences.json +1 -1
  324. package/dist/mcp-data/registry/filter-menu.json +1 -1
  325. package/dist/mcp-data/registry/icon.json +6 -5
  326. package/dist/mcp-data/registry/input-date.json +1 -1
  327. package/dist/mcp-data/registry/input-time.json +1 -1
  328. package/dist/mcp-data/registry/markdown.json +1 -1
  329. package/dist/mcp-data/registry/menu.json +1 -1
  330. package/dist/mcp-data/registry/message.json +4 -4
  331. package/dist/mcp-data/registry/mobile-section-switcher.json +1 -1
  332. package/dist/mcp-data/registry/modal.json +1 -1
  333. package/dist/mcp-data/registry/panel-nav.json +1 -1
  334. package/dist/mcp-data/registry/radio-tile.json +1 -1
  335. package/dist/mcp-data/registry/radio.json +1 -1
  336. package/dist/mcp-data/registry/registry.json +63 -7
  337. package/dist/mcp-data/registry/scroll-overlay.json +1 -1
  338. package/dist/mcp-data/registry/select.json +70 -3
  339. package/dist/mcp-data/registry/shell-app.json +1 -1
  340. package/dist/mcp-data/registry/slider.json +3 -3
  341. package/dist/mcp-data/registry/switch.json +1 -1
  342. package/dist/mcp-data/registry/table.json +140 -14
  343. package/dist/mcp-data/registry/tooltip-chart.json +1 -1
  344. package/dist/react/ds-table.d.ts +3 -1
  345. package/dist/react/ds-table.js +2 -0
  346. package/dist/styles/table.css +405 -8
  347. package/dist/types/components/AgentToolCall/AgentToolCall.d.ts +3 -0
  348. package/dist/types/components/Banner/Banner.d.ts +1 -0
  349. package/dist/types/components/BarNav/BarNav.d.ts +4 -0
  350. package/dist/types/components/BarPageTitle/BarPageTitle.d.ts +4 -0
  351. package/dist/types/components/Breadcrumb/Breadcrumb.d.ts +5 -0
  352. package/dist/types/components/Calendar/Calendar.d.ts +2 -0
  353. package/dist/types/components/CardOverview/CardOverview.d.ts +3 -0
  354. package/dist/types/components/Chart/Chart.d.ts +7 -1
  355. package/dist/types/components/Checkbox/Checkbox.d.ts +3 -0
  356. package/dist/types/components/ConversationList/ConversationList.d.ts +3 -0
  357. package/dist/types/components/DataGroup/DataGroup.d.ts +3 -0
  358. package/dist/types/components/DataPreferences/DataPreferences.d.ts +1 -0
  359. package/dist/types/components/FilterMenu/FilterMenu.d.ts +1 -0
  360. package/dist/types/components/Icon/icon-cache.d.ts +6 -0
  361. package/dist/types/components/Icon/icon-svg.d.ts +10 -24
  362. package/dist/types/components/Markdown/Markdown.d.ts +4 -0
  363. package/dist/types/components/Menu/Menu.d.ts +3 -0
  364. package/dist/types/components/Message/Message.d.ts +1 -1
  365. package/dist/types/components/MobileSectionSwitcher/MobileSectionSwitcher.d.ts +5 -0
  366. package/dist/types/components/Modal/Modal.d.ts +3 -0
  367. package/dist/types/components/PanelNav/PanelNav.d.ts +8 -1
  368. package/dist/types/components/Radio/Radio.d.ts +1 -0
  369. package/dist/types/components/ScrollOverlay/ScrollOverlay.d.ts +1 -0
  370. package/dist/types/components/Select/Select.d.ts +8 -0
  371. package/dist/types/components/ShellApp/ShellApp.d.ts +3 -0
  372. package/dist/types/components/Slider/Slider.d.ts +1 -1
  373. package/dist/types/components/Switch/Switch.d.ts +2 -0
  374. package/dist/types/components/Table/Table.d.ts +35 -0
  375. package/dist/types/components/Table/index.d.ts +1 -1
  376. package/dist/types/components/Table/table-body-renderer.d.ts +1 -0
  377. package/dist/types/components/Table/table-cell-editor.d.ts +4 -0
  378. package/dist/types/components/Table/table-grid-model.d.ts +23 -0
  379. package/dist/types/components/Table/table-layout-controller.d.ts +1 -0
  380. package/dist/types/components/Table/table-model.d.ts +1 -1
  381. package/dist/types/components/Table/table-review-fixtures.d.ts +10 -0
  382. package/dist/types/components/Table/table-row-view.d.ts +11 -2
  383. package/dist/types/components/Table/table-skeleton-view.d.ts +3 -1
  384. package/dist/types/components/Table/table-structure.d.ts +38 -0
  385. package/dist/types/components/Table/table-types.d.ts +71 -1
  386. package/dist/types/components/Table/table-virtual-controller.d.ts +1 -0
  387. package/dist/types/components/TooltipChart/TooltipChart.d.ts +4 -0
  388. package/dist/types/components.d.ts +98 -12
  389. package/dist/types/shell/chrome-transition.d.ts +1 -0
  390. package/dist/types/utils/anchored-position-controller.d.ts +2 -0
  391. package/dist/types/utils/clock-time.d.ts +1 -0
  392. package/dist/types/utils/connection-tasks.d.ts +13 -0
  393. package/dist/types/utils/date-filter-value.d.ts +2 -0
  394. package/dist/types/utils/form-association.d.ts +2 -1
  395. package/dist/types/utils/format-percentage.d.ts +1 -1
  396. package/dist/types/utils/intl-formatters.d.ts +4 -0
  397. package/dist/types/utils/resolve-css-length-px.d.ts +4 -3
  398. package/dist/types/utils/select-controller.d.ts +1 -0
  399. package/dist/vue/THIRD-PARTY-NOTICES +14 -0
  400. package/dist/vue/bundled-dependencies.json +13 -0
  401. package/dist/vue/ds-checkbox.js +1 -0
  402. package/dist/vue/ds-select.js +4 -0
  403. package/dist/vue/ds-table.js +8 -0
  404. package/package.json +16 -11
  405. package/dist/components/p-B8ZonS3S.js +0 -2
  406. package/dist/components/p-B8ZonS3S.js.map +0 -1
  407. package/dist/components/p-BDdlJZyL.js +0 -2
  408. package/dist/components/p-BDdlJZyL.js.map +0 -1
  409. package/dist/components/p-BERXvOCf.js +0 -2
  410. package/dist/components/p-BERXvOCf.js.map +0 -1
  411. package/dist/components/p-BQspV5U7.js +0 -2
  412. package/dist/components/p-BQspV5U7.js.map +0 -1
  413. package/dist/components/p-BhjqYTiY.js +0 -2
  414. package/dist/components/p-BhjqYTiY.js.map +0 -1
  415. package/dist/components/p-BjtXYFhw.js +0 -2
  416. package/dist/components/p-BjtXYFhw.js.map +0 -1
  417. package/dist/components/p-Bk3poU91.js.map +0 -1
  418. package/dist/components/p-BxduVc5g.js +0 -2
  419. package/dist/components/p-BxduVc5g.js.map +0 -1
  420. package/dist/components/p-C0qN3PSb.js +0 -2
  421. package/dist/components/p-C0qN3PSb.js.map +0 -1
  422. package/dist/components/p-CPamUzaj.js +0 -2
  423. package/dist/components/p-CPamUzaj.js.map +0 -1
  424. package/dist/components/p-CUDocY23.js +0 -2
  425. package/dist/components/p-CUDocY23.js.map +0 -1
  426. package/dist/components/p-CX6ZxUQT.js +0 -2
  427. package/dist/components/p-CX6ZxUQT.js.map +0 -1
  428. package/dist/components/p-Cgn-BORA.js +0 -2
  429. package/dist/components/p-Cgn-BORA.js.map +0 -1
  430. package/dist/components/p-Ck1hgD6g.js +0 -2
  431. package/dist/components/p-Ck1hgD6g.js.map +0 -1
  432. package/dist/components/p-Co1rUdOR.js.map +0 -1
  433. package/dist/components/p-CochmPyg.js +0 -2
  434. package/dist/components/p-CochmPyg.js.map +0 -1
  435. package/dist/components/p-DCyJ3_PL.js +0 -2
  436. package/dist/components/p-DCyJ3_PL.js.map +0 -1
  437. package/dist/components/p-DVEx-Xg9.js +0 -2
  438. package/dist/components/p-DVEx-Xg9.js.map +0 -1
  439. package/dist/components/p-DYsE6HLk.js +0 -2
  440. package/dist/components/p-DYsE6HLk.js.map +0 -1
  441. package/dist/components/p-DebLYW7A.js +0 -2
  442. package/dist/components/p-DebLYW7A.js.map +0 -1
  443. package/dist/components/p-DjkUFlDW.js.map +0 -1
  444. package/dist/components/p-Dnt5xUBD.js +0 -2
  445. package/dist/components/p-Dnt5xUBD.js.map +0 -1
  446. package/dist/components/p-Dyqd-cub.js +0 -2
  447. package/dist/components/p-Dyqd-cub.js.map +0 -1
  448. package/dist/components/p-DzvTC27M.js.map +0 -1
  449. package/dist/components/p-g0jsfEXz.js +0 -2
  450. package/dist/components/p-g0jsfEXz.js.map +0 -1
  451. package/dist/components/p-pp1IQN4Z.js +0 -2
  452. package/dist/components/p-pp1IQN4Z.js.map +0 -1
  453. package/dist/components/p-rCeztgVn.js +0 -2
  454. package/dist/components/p-rCeztgVn.js.map +0 -1
  455. /package/dist/components/{p-CZNZTcYS.js.map → p-5-gQbIIz.js.map} +0 -0
  456. /package/dist/components/{p-DRdoGSGX.js.map → p-7MwoWtTJ.js.map} +0 -0
  457. /package/dist/components/{p-DJDbskZf.js.map → p-BO5URdZF.js.map} +0 -0
  458. /package/dist/components/{p-DmSnHVW6.js.map → p-BVxK8ce0.js.map} +0 -0
  459. /package/dist/components/{p-B0EpvBDs.js.map → p-BYeG0b5N.js.map} +0 -0
  460. /package/dist/components/{p-CJ1NnOEW.js.map → p-CA3iQ1ME.js.map} +0 -0
  461. /package/dist/components/{p-DYQa1DVF.js.map → p-C_9VGgPf.js.map} +0 -0
  462. /package/dist/components/{p-7TVdPhGR.js.map → p-CgQB8Ct5.js.map} +0 -0
  463. /package/dist/components/{p-D6FRqNhN.js.map → p-D-J7GgjY.js.map} +0 -0
  464. /package/dist/components/{p-DSZPO06T.js.map → p-D9_iDlkT.js.map} +0 -0
  465. /package/dist/components/{p-BwdnVqAY.js.map → p-DEYCF-oJ.js.map} +0 -0
  466. /package/dist/components/{p-C8V4lkVy.js.map → p-DKGW3gRa.js.map} +0 -0
  467. /package/dist/components/{p-C4huuwed.js.map → p-DR_8IPn9.js.map} +0 -0
  468. /package/dist/components/{p-B0BQCVkq.js.map → p-D_iZPukF.js.map} +0 -0
  469. /package/dist/components/{p-JBki_jyY.js.map → p-DfMTDFcE.js.map} +0 -0
  470. /package/dist/components/{p-MOJmB6vX.js.map → p-Dg6hnCc2.js.map} +0 -0
  471. /package/dist/components/{p-DXk1eml1.js.map → p-DjbT9kKm.js.map} +0 -0
  472. /package/dist/components/{p-_IqSPt5V.js.map → p-Dr5rkAhe.js.map} +0 -0
  473. /package/dist/components/{p-DIQiHX0q.js.map → p-DvGrsLgt.js.map} +0 -0
  474. /package/dist/components/{p-Doa2blZT.js.map → p-PtxCwf5S.js.map} +0 -0
  475. /package/dist/components/{p-B9TM6FqC.js.map → p-d76Ry5nh.js.map} +0 -0
  476. /package/dist/components/{p-BFHpU-uU.js.map → p-kwS-vkau.js.map} +0 -0
  477. /package/dist/components/{p-B39iJO8F.js.map → p-rmPIcWED.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["agentToolCallCss","STATUS_LABELS","preparing","queued","running","success","error","denied","canceled","AgentToolCall","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","name","label","state","open","hasSummary","hasResult","hasPlainTextResult","hasDetails","hasLoaded","handleToggle","event","dsOpenChange","emit","currentTarget","componentWillLoad","syncSlots","connectedCallback","observeSlots","componentDidLoad","el","isConnected","slotObserver","disconnect","MutationObserver","observe","childList","subtree","characterData","attributes","attributeFilter","disconnectedCallback","undefined","Boolean","querySelector","result","childElementCount","textContent","trim","serialize","value","JSON","stringify","String","active","includes","expandable","input","output","renderStatusIcon","h","size","color","renderSummary","class","as","variant","emphasis","statusLabel","renderGenericDetails","render","Host","key","onToggle"],"sources":["src/wc/components/AgentToolCall/AgentToolCall.css?tag=ds-agent-tool-call&encapsulation=scoped","src/wc/components/AgentToolCall/AgentToolCall.tsx"],"sourcesContent":["@import '../../utils/forced-colors.css';\n\n:host {\n display: block;\n min-width: 0;\n}\n\n.agent-tool {\n min-width: 0;\n color: var(--color-foreground-secondary);\n}\n\ndetails {\n margin: 0;\n}\n\nsummary,\n.agent-tool__row {\n min-width: 0;\n padding: var(--dimension-space-050) 0;\n}\n\nsummary {\n cursor: pointer;\n list-style: none;\n}\n\nsummary::-webkit-details-marker {\n display: none;\n}\n\n.agent-tool__summary-content {\n display: grid;\n align-items: center;\n grid-template-columns: auto minmax(0, 1fr) auto;\n gap: var(--dimension-space-075);\n min-width: 0;\n}\n\n.agent-tool__status-icon {\n display: flex;\n align-items: center;\n color: var(--color-foreground-faint-neutral);\n}\n\n.agent-tool--preparing .agent-tool__status-icon,\n.agent-tool--queued .agent-tool__status-icon,\n.agent-tool--running .agent-tool__status-icon {\n color: var(--color-foreground-faint-brand);\n}\n\n.agent-tool--waiting-for-user .agent-tool__status-icon {\n color: var(--color-foreground-bold-warning);\n}\n\n.agent-tool--error .agent-tool__status-icon,\n.agent-tool--denied .agent-tool__status-icon {\n color: var(--color-foreground-bold-negative);\n}\n\n.agent-tool__title {\n display: flex;\n align-items: baseline;\n flex-wrap: wrap;\n gap: var(--dimension-space-025) var(--dimension-space-075);\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n.agent-tool__chevron {\n transition: none;\n}\n\ndetails[open] .agent-tool__chevron {\n transform: rotate(90deg);\n}\n\n.agent-tool__details,\n.agent-tool__diagnostics {\n display: grid;\n gap: var(--dimension-space-075);\n}\n\n.agent-tool__details {\n padding: var(--dimension-space-050) 0 var(--dimension-space-100)\n calc(var(--dimension-size-200) + var(--dimension-space-075));\n}\n\n.agent-tool__diagnostics section {\n display: grid;\n gap: var(--dimension-space-025);\n}\n\npre {\n max-width: 100%;\n margin: 0;\n padding: var(--dimension-space-075);\n overflow: auto;\n border-radius: var(--dimension-radius-050);\n background: var(--color-background-secondary);\n color: var(--color-foreground-primary);\n font-family: var(\n --typography-font-family-code,\n 'Fira Code',\n ui-monospace,\n 'SFMono-Regular',\n 'Cascadia Code',\n 'Roboto Mono',\n Menlo,\n Monaco,\n Consolas,\n 'Liberation Mono',\n monospace\n );\n font-variant-ligatures: var(--ds-code-font-variant-ligatures, normal);\n font-weight: var(--typography-weight-regular);\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n}\n\n.agent-tool__result {\n min-width: 0;\n padding-block: var(--dimension-space-050);\n}\n\n.agent-tool__result--plain-text {\n font-family: var(--typography-font-family-ui);\n font-size: var(--typography-fontsize-md);\n font-weight: var(--typography-weight-regular);\n line-height: var(--typography-lineheight-md);\n letter-spacing: var(--typography-letterspacing-negative-half);\n}\n\nsummary:focus-visible {\n border-radius: var(--dimension-radius-025);\n outline: var(--dimension-stroke-width-025) solid var(--color-border-bold-brand);\n outline-offset: var(--dimension-space-025);\n}\n\n@media (prefers-reduced-motion: no-preference) {\n .agent-tool__chevron {\n transition: transform var(--effect-motion-short-2);\n }\n}\n\n@media (forced-colors: active) {\n summary:focus-visible {\n outline-color: var(--ds-forced-color-selected);\n }\n\n .agent-tool--error .agent-tool__summary-content,\n .agent-tool--denied .agent-tool__summary-content {\n border-inline-start: var(--dimension-stroke-width-025) solid var(--ds-forced-color-content);\n padding-inline-start: var(--dimension-space-050);\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Prop, State } from '@stencil/core';\nimport type { AgentToolState } from '../conversation-types';\n\nconst STATUS_LABELS: Record<AgentToolState, string> = {\n preparing: 'Preparing',\n queued: 'Queued',\n running: 'Running',\n 'waiting-for-user': 'Waiting for your response',\n success: 'Completed',\n error: 'Failed',\n denied: 'Permission denied',\n canceled: 'Canceled',\n};\n\n@Component({ tag: 'ds-agent-tool-call', styleUrl: 'AgentToolCall.css', scoped: true })\nexport class AgentToolCall {\n @Element() el!: HTMLElement;\n\n @Prop() name: string = '';\n @Prop() label: string = '';\n @Prop() state: AgentToolState = 'queued';\n @Prop() statusLabel?: string;\n @Prop() input?: unknown;\n @Prop() output?: unknown;\n @Prop() error?: string;\n @Prop() open: boolean = false;\n\n @Event() dsOpenChange!: EventEmitter<{ open: boolean }>;\n\n @State() private hasSummary = false;\n @State() private hasResult = false;\n @State() private hasPlainTextResult = false;\n @State() private hasDetails = false;\n\n private slotObserver?: MutationObserver;\n private hasLoaded = false;\n\n componentWillLoad() {\n this.syncSlots();\n }\n\n connectedCallback() {\n if (this.hasLoaded) this.observeSlots();\n }\n\n componentDidLoad() {\n this.hasLoaded = true;\n this.observeSlots();\n }\n\n private observeSlots() {\n if (!this.el.isConnected) return;\n this.slotObserver?.disconnect();\n this.syncSlots();\n this.slotObserver = new MutationObserver(() => {\n if (this.el.isConnected) this.syncSlots();\n });\n this.slotObserver.observe(this.el, {\n childList: true,\n // Scoped slots relocate authored children beneath the rendered wrappers.\n subtree: true,\n characterData: true,\n attributes: true,\n attributeFilter: ['slot'],\n });\n }\n\n disconnectedCallback() {\n this.slotObserver?.disconnect();\n this.slotObserver = undefined;\n }\n\n private syncSlots() {\n this.hasSummary = Boolean(this.el.querySelector('[slot=\"summary\"]'));\n const result = this.el.querySelector<HTMLElement>('[slot=\"result\"]');\n this.hasResult = Boolean(result);\n this.hasPlainTextResult = Boolean(\n result && result.childElementCount === 0 && result.textContent?.trim()\n );\n this.hasDetails = Boolean(this.el.querySelector('[slot=\"details\"]'));\n }\n\n private serialize(value: unknown) {\n if (value === undefined) return '';\n if (typeof value === 'string') return value;\n try {\n return JSON.stringify(value, null, 2);\n } catch {\n return String(value);\n }\n }\n\n private get active(): boolean {\n return ['preparing', 'queued', 'running'].includes(this.state);\n }\n\n private get expandable(): boolean {\n return (\n this.hasDetails ||\n this.input !== undefined ||\n this.output !== undefined ||\n Boolean(this.error)\n );\n }\n\n private renderStatusIcon() {\n if (this.active) return <ds-loader size=\"xs\" color=\"inherit\" />;\n if (this.state === 'success') {\n return <ds-icon name=\"Check\" size=\"xs\" color=\"inherit\" />;\n }\n if (this.state === 'waiting-for-user') {\n return <ds-icon name=\"Clock\" size=\"xs\" color=\"inherit\" />;\n }\n return <ds-icon name=\"ExclamationTriangle\" size=\"xs\" color=\"inherit\" />;\n }\n\n private renderSummary(expandable: boolean) {\n return (\n <span class=\"agent-tool__summary-content\">\n <span class=\"agent-tool__status-icon\" aria-hidden=\"true\">\n {this.renderStatusIcon()}\n </span>\n <span class=\"agent-tool__title\">\n {this.hasSummary ? (\n <slot name=\"summary\" />\n ) : (\n <ds-text as=\"span\" variant=\"text-body-small\" emphasis>\n {this.label || this.name}\n </ds-text>\n )}\n <ds-text\n class=\"agent-tool__state-label\"\n as=\"span\"\n variant=\"text-caption\"\n color={['error', 'denied'].includes(this.state) ? 'negative' : 'secondary'}\n >\n {this.statusLabel ?? STATUS_LABELS[this.state]}\n </ds-text>\n </span>\n {expandable ? (\n <ds-icon class=\"agent-tool__chevron\" name=\"ChevronRight\" size=\"xs\" color=\"inherit\" />\n ) : null}\n </span>\n );\n }\n\n private renderGenericDetails() {\n return (\n <div class=\"agent-tool__diagnostics\">\n {this.input !== undefined ? (\n <section>\n <ds-text variant=\"text-caption\" emphasis>\n Input\n </ds-text>\n <pre>{this.serialize(this.input)}</pre>\n </section>\n ) : null}\n {this.output !== undefined ? (\n <section>\n <ds-text variant=\"text-caption\" emphasis>\n Output\n </ds-text>\n <pre>{this.serialize(this.output)}</pre>\n </section>\n ) : null}\n {this.error ? (\n <section>\n <ds-text variant=\"text-caption\" emphasis>\n Error\n </ds-text>\n <pre>{this.error}</pre>\n </section>\n ) : null}\n </div>\n );\n }\n\n private handleToggle = (event: Event) => {\n this.dsOpenChange.emit({ open: (event.currentTarget as HTMLDetailsElement).open });\n };\n\n render() {\n const expandable = this.expandable;\n return (\n <Host>\n <div class={`agent-tool agent-tool--${this.state}`}>\n {expandable ? (\n <details open={this.open} onToggle={this.handleToggle}>\n <summary>{this.renderSummary(true)}</summary>\n <div class=\"agent-tool__details\">\n {this.hasDetails ? <slot name=\"details\" /> : this.renderGenericDetails()}\n </div>\n </details>\n ) : (\n <div class=\"agent-tool__row\">{this.renderSummary(false)}</div>\n )}\n {this.hasResult ? (\n <div\n class={{\n 'agent-tool__result': true,\n 'agent-tool__result--plain-text': this.hasPlainTextResult,\n }}\n >\n <slot name=\"result\" />\n </div>\n ) : null}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{p as e,H as i,c as t,h as s,a as n,t as r}from"./index.js";import{o,d}from"./p-D-J7GgjY.js";import{A as a,r as c}from"./p-CE6MaXBg.js";import{C as l}from"./p-DlsjHRU3.js";import{A as u}from"./p-CwUXroLs.js";import{C as f,a as h,d as m}from"./p-DEYCF-oJ.js";import{c as p}from"./p-Cxr0IQjC.js";import{d as g}from"./p-CwdRaJER.js";import{p as v,D as b,d as x,a as _}from"./p-BcpIK9S6.js";import{d as y}from"./p--pJyciTI.js";import{d as w}from"./p-DfMTDFcE.js";import{d as k}from"./p-D_iZPukF.js";import{d as z}from"./p-5-gQbIIz.js";import{d as C}from"./p-pPtjNRqC.js";import{d as I}from"./p-0XTyQNRG.js";import{d as j}from"./p-7MwoWtTJ.js";import{d as D}from"./p-d76Ry5nh.js";import{d as O}from"./p-D8OWhnID.js";import{d as $}from"./p-DvGrsLgt.js";import{a as F,b as P,T}from"./p-CeXf9-X3.js";import{r as A}from"./p-ioGH5SoA.js";import{r as E}from"./p-DhKvqh5G.js";import{C as L}from"./p-CuwopElg.js";import{c as R}from"./p-DuFm-ieS.js";const S=()=>`.sc-ds-filter-menu-h,.sc-ds-filter-menu:where(.ds-table),.sc-ds-filter-menu:where(.tooltip-popup),.sc-ds-filter-menu:where(.ds-radius){--ds-radius-control:var(--dimension-radius-025);--ds-radius-card:var(--dimension-radius-050);--ds-radius-modal:var(--dimension-radius-050);--ds-radius-menu:var(--dimension-radius-075);--ds-radius-tooltip-control:var(--dimension-radius-025);--ds-radius-tooltip-menu:var(--dimension-radius-075);--ds-radius-table:var(--dimension-radius-050)}@media (forced-colors: active){.sc-ds-filter-menu:root,.sc-ds-filter-menu-h,.ds-forced-colors-scope.sc-ds-filter-menu{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.sc-ds-filter-menu-h{--ds-focus-ring-width:var(--dimension-stroke-width-025, 2px);--ds-focus-ring-offset:var(--dimension-space-025, 2px);--ds-focus-ring-color:var(--color-interaction-focus)}.ds-focus-ring.sc-ds-filter-menu-h,.ds-focus-ring.sc-ds-filter-menu,.ds-focus-ring-inset.sc-ds-filter-menu-h,.ds-focus-ring-inset.sc-ds-filter-menu{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-filter-menu-h:focus-visible,.ds-focus-ring.sc-ds-filter-menu:focus-visible{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}.ds-focus-ring.ds-focus-ring--visible.sc-ds-filter-menu-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-filter-menu{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}.ds-focus-ring-inset.sc-ds-filter-menu-h:focus-visible,.ds-focus-ring-inset.sc-ds-filter-menu:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-filter-menu-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-filter-menu:focus-visible::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-filter-menu-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-filter-menu{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-filter-menu-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-filter-menu::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}@media (forced-colors: active){.sc-ds-filter-menu-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){.sc-ds-filter-menu:root,.sc-ds-filter-menu-h,.ds-forced-colors-scope.sc-ds-filter-menu{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}@media (forced-colors: active){.sc-ds-filter-menu:root,.sc-ds-filter-menu-h,.ds-forced-colors-scope.sc-ds-filter-menu{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.ds-interaction-fill.sc-ds-filter-menu-h,.ds-interaction-fill.sc-ds-filter-menu{position:var(--ds-interaction-position, relative);z-index:var(--ds-interaction-z-index, 0);cursor:default;--ds-interaction-hover:var(--color-interaction-hover);--ds-interaction-pressed:var(--color-interaction-pressed);--ds-interaction-active:var(--color-interaction-active-brand);--ds-interaction-border-width:0px;--ds-interaction-border-color:transparent;--ds-interaction-divider-width:0px;--ds-interaction-divider-color:transparent;--ds-interaction-divider-inline-start-width:0px;--ds-interaction-divider-inline-start-color:transparent;--ds-interaction-divider-inline-end-width:0px;--ds-interaction-divider-inline-end-color:transparent}.ds-interaction-fill.sc-ds-filter-menu-h::before,.ds-interaction-fill.sc-ds-filter-menu::before,.ds-interaction-fill.sc-ds-filter-menu-h::after,.ds-interaction-fill.sc-ds-filter-menu::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;cursor:inherit;transition:none}.ds-interaction-fill.sc-ds-filter-menu-h::before,.ds-interaction-fill.sc-ds-filter-menu::before{z-index:1}.ds-interaction-fill.sc-ds-filter-menu-h::after,.ds-interaction-fill.sc-ds-filter-menu::after{z-index:3;box-shadow:inset 0 calc(-1 * var(--ds-interaction-divider-width)) 0 var(--ds-interaction-divider-color), inset var(--ds-interaction-divider-inline-start-width) 0 0 var(--ds-interaction-divider-inline-start-color), inset calc(-1 * var(--ds-interaction-divider-inline-end-width)) 0 0 var(--ds-interaction-divider-inline-end-color), inset 0 0 0 var(--ds-interaction-border-width) var(--ds-interaction-border-color)}.ds-interaction-fill--bordered.sc-ds-filter-menu-h,.ds-interaction-fill--bordered.sc-ds-filter-menu{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-filter-menu-h::before,.ds-interaction-fill--selected.sc-ds-filter-menu::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-filter-menu-h,.ds-interaction-fill--selected.sc-ds-filter-menu{--ds-interaction-dot-ring:var(--ds-interaction-active)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-filter-menu-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-filter-menu:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}}.ds-interaction-fill.sc-ds-filter-menu-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-filter-menu:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill--grouped.sc-ds-filter-menu-h::after,.ds-interaction-fill--grouped.sc-ds-filter-menu::after,.ds-interaction-fill--grouped.sc-ds-filter-menu-h:active:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-filter-menu:active:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill--grouped.sc-ds-filter-menu-h:hover:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-filter-menu:hover:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}}.ds-interaction-fill--grouped.sc-ds-filter-menu-h,.ds-interaction-fill--grouped.sc-ds-filter-menu{--ds-interaction-divider-width:var(--ds-interaction-group-divider-width, 0px);--ds-interaction-divider-color:var(--ds-interaction-group-divider-color, transparent);--ds-interaction-divider-inline-start-width:var( --ds-interaction-group-divider-inline-start-width, 0px );--ds-interaction-divider-inline-start-color:var( --ds-interaction-group-divider-inline-start-color, transparent );--ds-interaction-divider-inline-end-width:var( --ds-interaction-group-divider-inline-end-width, 0px );--ds-interaction-divider-inline-end-color:var( --ds-interaction-group-divider-inline-end-color, transparent )}.ds-interaction-fill.sc-ds-filter-menu-h>.ds-interaction-fill__content.sc-ds-filter-menu,.ds-interaction-fill.sc-ds-filter-menu>.ds-interaction-fill__content.sc-ds-filter-menu,.ds-interaction-fill__content.sc-ds-filter-menu{position:relative;z-index:2;cursor:inherit}.ds-interaction-fill--on-faint.sc-ds-filter-menu-h,.ds-interaction-fill--on-faint.sc-ds-filter-menu{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-filter-menu-h,.ds-interaction-fill--on-medium.sc-ds-filter-menu{--ds-interaction-hover:var(--color-interaction-on-medium-background-hover);--ds-interaction-pressed:var(--color-interaction-on-medium-background-pressed);--ds-interaction-active:var(--color-interaction-on-medium-background-active);--ds-focus-ring-color:var(--color-interaction-on-medium-background-focus)}.ds-interaction-fill--on-bold.sc-ds-filter-menu-h,.ds-interaction-fill--on-bold.sc-ds-filter-menu{--ds-interaction-hover:var(--color-interaction-on-bold-background-hover);--ds-interaction-pressed:var(--color-interaction-on-bold-background-pressed);--ds-interaction-active:var(--color-interaction-on-bold-background-active);--ds-focus-ring-color:var(--color-interaction-on-bold-background-focus)}.ds-interaction-fill--on-strong.sc-ds-filter-menu-h,.ds-interaction-fill--on-strong.sc-ds-filter-menu{--ds-interaction-hover:var(--color-interaction-on-strong-background-hover);--ds-interaction-pressed:var(--color-interaction-on-strong-background-pressed);--ds-interaction-active:var(--color-interaction-on-strong-background-active);--ds-focus-ring-color:var(--color-interaction-on-strong-background-focus)}.ds-interaction-fill--on-translucent.sc-ds-filter-menu-h,.ds-interaction-fill--on-translucent.sc-ds-filter-menu{--ds-interaction-hover:var(--color-translucent-interaction-hover);--ds-interaction-pressed:var(--color-translucent-interaction-pressed);--ds-interaction-active:var(--color-translucent-interaction-active-brand);--ds-focus-ring-color:var(--color-translucent-interaction-focus)}.ds-interaction-fill--on-inverted.sc-ds-filter-menu-h,.ds-interaction-fill--on-inverted.sc-ds-filter-menu{--ds-interaction-hover:var(--color-inverted-interaction-hover);--ds-interaction-pressed:var(--color-inverted-interaction-pressed);--ds-interaction-active:var(--color-inverted-interaction-active-brand);--ds-focus-ring-color:var(--color-inverted-interaction-focus)}.ds-interaction-fill--on-media.sc-ds-filter-menu-h,.ds-interaction-fill--on-media.sc-ds-filter-menu{--ds-interaction-hover:var(--color-media-interaction-hover);--ds-interaction-pressed:var(--color-media-interaction-pressed);--ds-interaction-active:var(--color-media-interaction-active);--ds-focus-ring-color:var(--color-media-interaction-focus)}.ds-interaction-fill--on-always-dark.sc-ds-filter-menu-h,.ds-interaction-fill--on-always-dark.sc-ds-filter-menu{--ds-interaction-hover:var(--color-always-dark-interaction-hover);--ds-interaction-pressed:var(--color-always-dark-interaction-pressed);--ds-interaction-active:var(--color-always-dark-interaction-active-brand);--ds-focus-ring-color:var(--color-always-dark-interaction-focus)}.ds-interaction-fill--on-chrome.sc-ds-filter-menu-h,.ds-interaction-fill--on-chrome.sc-ds-filter-menu{--ds-interaction-hover:var(--color-chrome-interaction-hover);--ds-interaction-pressed:var(--color-chrome-interaction-pressed);--ds-interaction-active:var(--color-chrome-interaction-active);--ds-focus-ring-color:var(--color-chrome-interaction-focus)}.ds-interaction-fill--on-navigation.sc-ds-filter-menu-h,.ds-interaction-fill--on-navigation.sc-ds-filter-menu{--ds-interaction-hover:var(--color-navigation-interaction-hover);--ds-interaction-pressed:var(--color-navigation-interaction-pressed);--ds-interaction-active:var(--color-navigation-interaction-active);--ds-focus-ring-color:var(--color-navigation-interaction-focus)}.ds-interaction-fill.ds-interaction-fill--surface-open.sc-ds-filter-menu-h:not(:disabled)::after,.ds-interaction-fill.ds-interaction-fill--surface-open.sc-ds-filter-menu:not(:disabled)::after{background:var(--ds-interaction-pressed)}@media (forced-colors: active){.ds-interaction-fill.sc-ds-filter-menu-h::after,.ds-interaction-fill.sc-ds-filter-menu::after{box-shadow:none;outline:var(--ds-interaction-border-width) solid var(--ds-forced-color-control-boundary);outline-offset:calc(-1 * var(--ds-interaction-border-width))}.ds-interaction-fill--surface-open.sc-ds-filter-menu-h:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill--surface-open.sc-ds-filter-menu:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after{outline:var(--dimension-stroke-width-025) dashed var(--ds-forced-color-control-boundary);outline-offset:calc(-1 * var(--dimension-stroke-width-025))}.ds-interaction-fill--selected.sc-ds-filter-menu-h::before,.ds-interaction-fill--selected.sc-ds-filter-menu::before{background:transparent;outline:var(--dimension-stroke-width-025) solid var(--ds-forced-color-selected);outline-offset:calc(-1 * var(--dimension-stroke-width-025))}}@media (forced-colors: active) and (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-filter-menu-h:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill.sc-ds-filter-menu:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after{outline-color:var(--ds-forced-color-selected);outline-width:var(--dimension-stroke-width-012)}}@media (forced-colors: active){.sc-ds-filter-menu:root,.sc-ds-filter-menu-h,.ds-forced-colors-scope.sc-ds-filter-menu{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.ds-control-inactive.sc-ds-filter-menu-h,.ds-control-inactive.sc-ds-filter-menu{opacity:var(--effect-opacity-medium);pointer-events:none;cursor:not-allowed}@media (forced-colors: active){.ds-control-inactive.sc-ds-filter-menu-h,.ds-control-inactive.sc-ds-filter-menu{color:var(--ds-forced-color-disabled);opacity:1}}.ds-control--lg.sc-ds-filter-menu,.ds-control--lg.sc-ds-filter-menu-h,.ds-control--md.sc-ds-filter-menu-h,.ds-control--md.sc-ds-filter-menu,.ds-control--sm.sc-ds-filter-menu-h,.ds-control--sm.sc-ds-filter-menu,.ds-control--xs.sc-ds-filter-menu-h,.ds-control--xs.sc-ds-filter-menu{--ds-control-radius:var(--ds-radius-control)}.ds-control--lg.sc-ds-filter-menu-h,.ds-control--lg.sc-ds-filter-menu{--ds-control-height:var(--dimension-size-500);--ds-control-icon:var(--dimension-iconography-lg);--ds-control-padding-inline:var(--dimension-space-100);--ds-control-label-inset:var(--dimension-space-050);--ds-control-gap:var(--dimension-space-050)}.ds-control--md.sc-ds-filter-menu-h,.ds-control--md.sc-ds-filter-menu{--ds-control-height:var(--dimension-size-400);--ds-control-icon:var(--dimension-iconography-md);--ds-control-padding-inline:var(--dimension-space-075);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-050)}.ds-control--sm.sc-ds-filter-menu-h,.ds-control--sm.sc-ds-filter-menu{--ds-control-height:var(--dimension-size-300);--ds-control-icon:var(--dimension-iconography-sm);--ds-control-padding-inline:var(--dimension-space-050);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-025)}.ds-control--xs.sc-ds-filter-menu-h,.ds-control--xs.sc-ds-filter-menu{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0}.ds-chrome-space--sm.sc-ds-filter-menu-h,.ds-chrome-space--sm.sc-ds-filter-menu{--ds-chrome-padding:var(--dimension-space-050);--ds-chrome-gap:var(--dimension-space-050)}.ds-chrome-space--md.sc-ds-filter-menu-h,.ds-chrome-space--md.sc-ds-filter-menu{--ds-chrome-padding:var(--dimension-space-100);--ds-chrome-gap:var(--dimension-space-100)}.ds-chrome-space--lg.sc-ds-filter-menu-h,.ds-chrome-space--lg.sc-ds-filter-menu{--ds-chrome-padding:var(--dimension-space-200);--ds-chrome-gap:var(--dimension-space-200)}.ds-chrome-row.sc-ds-filter-menu-h,.ds-chrome-row.sc-ds-filter-menu,.ds-chrome-column.sc-ds-filter-menu-h,.ds-chrome-column.sc-ds-filter-menu,.ds-chrome-grid.sc-ds-filter-menu-h,.ds-chrome-grid.sc-ds-filter-menu{display:flex;box-sizing:border-box;gap:var(--ds-chrome-gap, var(--dimension-space-100));padding:var(--ds-chrome-padding, var(--dimension-space-100))}.ds-chrome-row.sc-ds-filter-menu-h,.ds-chrome-row.sc-ds-filter-menu{flex-direction:row;align-items:center}.ds-chrome-column.sc-ds-filter-menu-h,.ds-chrome-column.sc-ds-filter-menu{flex-direction:column}.ds-chrome-grid.sc-ds-filter-menu-h,.ds-chrome-grid.sc-ds-filter-menu{display:grid;align-items:center}.ds-control-frame.sc-ds-filter-menu{display:inline-flex;align-items:center;box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));padding-inline:var(--ds-control-padding-inline, var(--dimension-space-075));gap:var(--ds-control-gap, var(--dimension-space-050));border-radius:var(--ds-control-radius, var(--dimension-radius-025))}.ds-control-section-heading.sc-ds-filter-menu{display:flex;align-items:center;box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));padding-inline:calc( var(--ds-control-padding-inline, var(--dimension-space-075)) + var(--ds-control-label-inset, var(--dimension-space-025)) )}.ds-control-icon-box.sc-ds-filter-menu{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ds-control-icon, var(--dimension-iconography-md));height:var(--ds-control-icon, var(--dimension-iconography-md))}.ds-control-label-box.sc-ds-filter-menu{min-width:0;padding-inline:var(--ds-control-label-inset, var(--dimension-space-025))}.ds-control-label-dot.sc-ds-filter-menu{position:relative;padding-inline-end:calc( var(--ds-control-label-inset, var(--dimension-space-025)) + var(--ds-control-gap, var(--dimension-space-050)) )}.ds-control-label-dot__badge.sc-ds-filter-menu{position:absolute;inset-block-start:0;inset-inline-end:0;pointer-events:none}.ds-empty-region.sc-ds-filter-menu{display:flex;flex:1 1 auto;align-items:center;justify-content:center;box-sizing:border-box;min-width:0;min-height:0}.ds-empty-region--padded.sc-ds-filter-menu{padding:var(--dimension-space-200)}.sc-ds-filter-menu:where(.ds-text-decoration,.ds-text-action).sc-ds-filter-menu{text-decoration-color:var(--ds-text-decoration-color, var(--color-foreground-tertiary));text-decoration-thickness:var(--ds-text-decoration-thickness, var(--dimension-stroke-width-012));text-underline-offset:var(--ds-text-decoration-offset, var(--dimension-space-025))}.ds-text-action.sc-ds-filter-menu{--ds-text-action-foreground:var(--color-foreground-bold-brand);--ds-text-decoration-color:var(--ds-text-action-foreground);color:var(--ds-text-action-foreground);text-decoration-line:none}.ds-text-action--on-medium.sc-ds-filter-menu{--ds-text-action-foreground:var(--color-foreground-on-medium-background-primary);--ds-text-decoration-color:var(--color-foreground-on-medium-background-secondary);text-decoration-line:underline}.ds-text-action--on-strong.sc-ds-filter-menu{--ds-text-action-foreground:var(--color-foreground-on-strong-background-primary);--ds-text-decoration-color:var(--color-foreground-on-strong-background-secondary);text-decoration-line:underline}.ds-text-action--on-bold.sc-ds-filter-menu{--ds-text-action-foreground:var(--color-foreground-on-bold-background-primary);--ds-text-decoration-color:var(--color-foreground-on-bold-background-secondary);text-decoration-line:underline}@media (hover: hover) and (pointer: fine){.ds-text-action.sc-ds-filter-menu:hover{text-decoration-line:underline}}@media (forced-colors: active){.ds-text-action.sc-ds-filter-menu{text-decoration-line:underline;text-decoration-color:currentcolor}}.ds-choice-popup.sc-ds-filter-menu{box-sizing:border-box;display:flex;flex-direction:column;min-width:var(--ds-choice-popup-min-inline-size, var(--dimension-menu-width-xs));max-width:min(var(--dimension-panel-width-lg), calc(100vw - var(--dimension-space-200)));max-height:calc(100vh - var(--dimension-space-200));overflow:hidden;inset:auto;margin:0;padding:0;border:0;background-color:var(--color-background-primary);border-radius:var(--ds-radius-menu);box-shadow:var(--effect-shadow-elevated-floating);color:var(--color-foreground-secondary);animation:dsChoiceFadeIn var(--effect-motion-short-2) forwards;backface-visibility:hidden;will-change:transform;text-align:start}.ds-choice-popup.sc-ds-filter-menu::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:var(--effect-highlight-elevated-floating)}.ds-choice-popup--closing.sc-ds-filter-menu{animation:dsChoiceFadeOut var(--effect-motion-short-2) forwards}@keyframes dsChoiceFadeIn{from{opacity:0;transform:inherit scale(0.97)}to{opacity:1}}@keyframes dsChoiceFadeOut{from{opacity:1}to{opacity:0}}@media (prefers-reduced-motion: reduce){.ds-choice-popup.sc-ds-filter-menu{animation:none;opacity:1}.ds-choice-popup--closing.sc-ds-filter-menu{opacity:0}}@media (forced-colors: active){.ds-choice-popup.sc-ds-filter-menu{outline:var(--dimension-stroke-width-012) solid var(--ds-forced-color-content);outline-offset:calc(-1 * var(--dimension-stroke-width-012))}.ds-choice-popup.sc-ds-filter-menu::after{box-shadow:none}}.ds-choice-list.sc-ds-filter-menu{display:flex;flex-direction:column;min-height:0;overflow-y:auto;overscroll-behavior:contain}.ds-choice-section--divided.sc-ds-filter-menu{border-bottom:var(--dimension-stroke-width-015) solid var(--color-border-tertiary)}ds-text.ds-choice-section__header.sc-ds-filter-menu{text-align:start;-webkit-user-select:none;user-select:none}.ds-choice-section--headed-after-first.sc-ds-filter-menu{margin-block-start:var(--dimension-space-050)}.select-option-row.sc-ds-filter-menu{display:flex;flex-direction:column;min-width:0}.ds-choice-item.sc-ds-filter-menu{width:100%;border:none;border-radius:var(--ds-control-radius, var(--dimension-radius-025));background:transparent;cursor:default;-webkit-user-select:none;user-select:none;text-align:left;color:inherit}.ds-choice-item.sc-ds-filter-menu:has(.ds-choice-item__subtext){height:auto;min-height:var(--ds-control-height, var(--dimension-size-400));padding-block:var(--ds-control-padding-inline, var(--dimension-space-075));align-items:flex-start}.ds-choice-item.ds-control--xs.sc-ds-filter-menu:has(.ds-choice-item__subtext){padding-block:0}.ds-choice-item__content.sc-ds-filter-menu{display:flex;flex:1;flex-direction:column;gap:var(--dimension-space-025);min-width:0}ds-text.ds-choice-item__label.sc-ds-filter-menu{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ds-text.ds-choice-item__subtext.sc-ds-filter-menu{display:-webkit-box;overflow:hidden;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.ds-choice-item__icon.sc-ds-filter-menu,.ds-choice-item__suffix.sc-ds-filter-menu{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ds-control-icon, var(--dimension-iconography-md));height:var(--ds-control-icon, var(--dimension-iconography-md));pointer-events:none}.ds-choice-item.ds-interaction-fill--selected.sc-ds-filter-menu .ds-choice-item__icon.sc-ds-filter-menu{color:var(--color-foreground-primary)}.ds-choice-item__tag.sc-ds-filter-menu{flex-shrink:0;pointer-events:none}.ds-choice-empty.sc-ds-filter-menu,.ds-choice-loading.sc-ds-filter-menu{min-height:var(--dimension-size-600);padding:var(--dimension-space-100)}.ds-choice-footer.sc-ds-filter-menu{position:relative;box-sizing:border-box;padding-block:var(--dimension-space-050)}.ds-choice-footer.sc-ds-filter-menu::before{content:'';position:absolute;inset:0 0 auto;height:var(--dimension-stroke-width-012);background-color:var(--color-border-tertiary);pointer-events:none}.ds-choice-footer__content.sc-ds-filter-menu{display:flex;align-items:center;justify-content:space-between;column-gap:var(--dimension-space-050);box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400))}.ds-choice-footer__summary.sc-ds-filter-menu,.ds-choice-footer__summary-measure.sc-ds-filter-menu,.ds-choice-footer__clear.sc-ds-filter-menu ds-text.sc-ds-filter-menu,.ds-choice-footer__action.sc-ds-filter-menu ds-text.sc-ds-filter-menu{padding-inline:calc( var(--dimension-space-050) + var(--ds-control-padding-inline, var(--dimension-space-075)) + var(--ds-control-label-inset, var(--dimension-space-025)) )}.ds-choice-footer__summary.sc-ds-filter-menu,.ds-choice-footer__summary-measure.sc-ds-filter-menu,.ds-choice-footer__clear.sc-ds-filter-menu,.ds-choice-footer__action.sc-ds-filter-menu{white-space:nowrap}.ds-choice-footer__summary-measure.sc-ds-filter-menu{position:absolute;visibility:hidden;pointer-events:none}.ds-choice-footer__clear.sc-ds-filter-menu,.ds-choice-footer__action.sc-ds-filter-menu{appearance:none;display:inline-flex;align-items:center;padding:0;border:0;border-radius:var(--dimension-radius-025);background:transparent;cursor:default}@media (forced-colors: active){.ds-choice-section--divided.sc-ds-filter-menu{border-bottom-color:var(--ds-forced-color-content)}.ds-choice-footer.sc-ds-filter-menu::before{background-color:var(--ds-forced-color-content)}}.ds-control--lg.sc-ds-filter-menu,.ds-control--lg.sc-ds-filter-menu-h,.ds-control--md.sc-ds-filter-menu-h,.ds-control--md.sc-ds-filter-menu,.ds-control--sm.sc-ds-filter-menu-h,.ds-control--sm.sc-ds-filter-menu,.ds-control--xs.sc-ds-filter-menu-h,.ds-control--xs.sc-ds-filter-menu{--ds-control-radius:var(--ds-radius-control)}.ds-control--lg.sc-ds-filter-menu-h,.ds-control--lg.sc-ds-filter-menu{--ds-control-height:var(--dimension-size-500);--ds-control-icon:var(--dimension-iconography-lg);--ds-control-padding-inline:var(--dimension-space-100);--ds-control-label-inset:var(--dimension-space-050);--ds-control-gap:var(--dimension-space-050)}.ds-control--md.sc-ds-filter-menu-h,.ds-control--md.sc-ds-filter-menu{--ds-control-height:var(--dimension-size-400);--ds-control-icon:var(--dimension-iconography-md);--ds-control-padding-inline:var(--dimension-space-075);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-050)}.ds-control--sm.sc-ds-filter-menu-h,.ds-control--sm.sc-ds-filter-menu{--ds-control-height:var(--dimension-size-300);--ds-control-icon:var(--dimension-iconography-sm);--ds-control-padding-inline:var(--dimension-space-050);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-025)}.ds-control--xs.sc-ds-filter-menu-h,.ds-control--xs.sc-ds-filter-menu{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0}.ds-chrome-header.sc-ds-filter-menu{display:flex;align-items:center;box-sizing:border-box;min-width:0;min-block-size:var(--dimension-size-600);padding:var(--dimension-space-100);gap:var(--dimension-space-100)}.ds-chrome-header--wrapping.sc-ds-filter-menu{flex-wrap:wrap}.ds-chrome-header--bounded.sc-ds-filter-menu{border-block-end:var(--dimension-stroke-width-012) solid var(--color-border-tertiary)}.ds-chrome-header__leading.sc-ds-filter-menu,.ds-chrome-header__trailing.sc-ds-filter-menu{display:flex;align-items:center;flex:0 0 auto;min-width:0}.ds-chrome-header__trailing.sc-ds-filter-menu{margin-inline-start:auto;gap:var(--dimension-space-100)}.ds-chrome-header__copy.sc-ds-filter-menu{display:flex;flex:1 1 0;min-width:0;padding:var(--ds-control-padding-inline, var(--dimension-space-075));box-sizing:border-box}.ds-chrome-header__copy--wrapping.sc-ds-filter-menu{align-items:baseline;flex-wrap:wrap;column-gap:var(--dimension-space-100);row-gap:var(--dimension-space-050)}.ds-chrome-header__copy--stacked.sc-ds-filter-menu{align-items:stretch;flex-direction:column;gap:var(--dimension-space-050)}.ds-chrome-header__heading.sc-ds-filter-menu,.ds-chrome-header__description.sc-ds-filter-menu{width:auto;min-width:0;padding-inline:var(--ds-control-label-inset, var(--dimension-space-025));box-sizing:border-box}.ds-chrome-header__heading.sc-ds-filter-menu{flex:0 1 auto}.ds-chrome-header__copy--wrapping.sc-ds-filter-menu .ds-chrome-header__description.sc-ds-filter-menu{flex:1 1 var(--dimension-card-width-xs)}.ds-control-frame.sc-ds-filter-menu{display:inline-flex;align-items:center;box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));padding-inline:var(--ds-control-padding-inline, var(--dimension-space-075));gap:var(--ds-control-gap, var(--dimension-space-050));border-radius:var(--ds-control-radius, var(--dimension-radius-025))}.ds-control-section-heading.sc-ds-filter-menu{display:flex;align-items:center;box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));padding-inline:calc( var(--ds-control-padding-inline, var(--dimension-space-075)) + var(--ds-control-label-inset, var(--dimension-space-025)) )}.ds-control-icon-box.sc-ds-filter-menu{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ds-control-icon, var(--dimension-iconography-md));height:var(--ds-control-icon, var(--dimension-iconography-md))}.ds-control-label-box.sc-ds-filter-menu{min-width:0;padding-inline:var(--ds-control-label-inset, var(--dimension-space-025))}.ds-control-label-dot.sc-ds-filter-menu{position:relative;padding-inline-end:calc( var(--ds-control-label-inset, var(--dimension-space-025)) + var(--ds-control-gap, var(--dimension-space-050)) )}.ds-control-label-dot__badge.sc-ds-filter-menu{position:absolute;inset-block-start:0;inset-inline-end:0;pointer-events:none}.ds-control-width--hug.sc-ds-filter-menu-h,.ds-control-width--hug.sc-ds-filter-menu{width:fit-content;max-width:100%;flex:0 0 auto}.ds-control-width--fill.sc-ds-filter-menu-h,.ds-control-width--fill.sc-ds-filter-menu{width:100%;min-width:0;flex:1 1 auto;align-self:stretch}.ds-select-trigger-host.sc-ds-filter-menu-h{display:inline-flex;position:relative;min-inline-size:0;outline:none;--ds-select-fg:var(--color-foreground-secondary);--ds-select-fg-active:var(--color-foreground-primary);--ds-select-prefix-fg:var(--ds-select-fg);--ds-select-chevron-fg:var(--ds-select-fg);--ds-select-border:var(--color-border-secondary)}.ds-control-width--fill.sc-ds-filter-menu-h .trigger.sc-ds-filter-menu{width:100%}.trigger.sc-ds-filter-menu{justify-content:flex-start;box-sizing:border-box;inline-size:100%;max-inline-size:100%;min-inline-size:0;background:transparent;border:none;border-radius:var(--ds-control-radius, var(--dimension-radius-025));color:var(--ds-select-fg);cursor:default;font-family:inherit;-webkit-user-select:none;user-select:none;overflow:hidden;transition:color var(--effect-motion-short-2)}.trigger--bordered.sc-ds-filter-menu{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--ds-select-border)}.trigger--rounded.sc-ds-filter-menu{--ds-control-radius:var(--dimension-radius-half)}.trigger--has-value.sc-ds-filter-menu .trigger__label-box.sc-ds-filter-menu{color:var(--ds-select-fg-active)}.trigger--label-placeholder.sc-ds-filter-menu .trigger__label-box.sc-ds-filter-menu{color:var(--ds-select-fg)}.trigger__prefix.sc-ds-filter-menu,.trigger__chevron.sc-ds-filter-menu{position:relative;z-index:2}.trigger__prefix.sc-ds-filter-menu{color:var(--ds-select-prefix-fg)}.trigger__chevron.sc-ds-filter-menu{color:var(--ds-select-chevron-fg)}.trigger__label-box.sc-ds-filter-menu{position:relative;z-index:2;display:flex;align-items:center;flex:1 1 auto;overflow:hidden;text-align:left;color:inherit;transition:color var(--effect-motion-short-2)}.trigger__label-content.sc-ds-filter-menu{display:inline-flex;align-items:center;flex:1 1 auto;max-width:100%;min-width:0;overflow:hidden}.trigger__label.sc-ds-filter-menu{flex:1 1 auto;min-width:0;max-width:100%;overflow:hidden}.ds-select-trigger-host--background-medium.sc-ds-filter-menu-h{--ds-select-fg:var(--color-foreground-on-medium-background-secondary);--ds-select-fg-active:var(--color-foreground-on-medium-background-primary);--ds-select-border:var(--color-border-on-medium-background-secondary)}.ds-select-trigger-host--background-bold.sc-ds-filter-menu-h{--ds-select-fg:var(--color-foreground-on-bold-background-secondary);--ds-select-fg-active:var(--color-foreground-on-bold-background-primary);--ds-select-border:var(--color-border-on-bold-background-secondary)}.ds-select-trigger-host--background-strong.sc-ds-filter-menu-h{--ds-select-fg:var(--color-foreground-on-strong-background-secondary);--ds-select-fg-active:var(--color-foreground-on-strong-background-primary);--ds-select-border:var(--color-border-on-strong-background-secondary)}.ds-select-trigger-host--background-translucent.sc-ds-filter-menu-h{--ds-select-fg:var(--color-translucent-foreground-secondary);--ds-select-fg-active:var(--color-translucent-foreground-primary);--ds-select-border:var(--color-translucent-border-secondary)}.ds-select-trigger-host--background-inverted.sc-ds-filter-menu-h{--ds-select-fg:var(--color-inverted-foreground-secondary);--ds-select-fg-active:var(--color-inverted-foreground-primary);--ds-select-border:var(--color-inverted-border-secondary)}.ds-select-trigger-host--background-media.sc-ds-filter-menu-h{--ds-select-fg:var(--color-media-foreground-secondary);--ds-select-fg-active:var(--color-media-foreground-primary);--ds-select-border:var(--color-media-border-secondary)}.ds-select-trigger-host--background-always-dark.sc-ds-filter-menu-h{--ds-select-fg:var(--color-always-dark-foreground-secondary);--ds-select-fg-active:var(--color-always-dark-foreground-primary);--ds-select-border:var(--color-always-dark-border-secondary)}.select-search.sc-ds-filter-menu{position:relative;box-sizing:border-box;padding:var(--dimension-space-050);background:transparent}.select-search.sc-ds-filter-menu::after{content:'';position:absolute;inset:auto 0 0;height:var(--dimension-stroke-width-012);background-color:var(--color-border-tertiary);pointer-events:none}.select-search.sc-ds-filter-menu:focus-within::after{height:var(--dimension-stroke-width-018);background-color:var(--color-border-bold-brand)}.select-search--without-focus-boundary.sc-ds-filter-menu::after{display:none}.select-search__control.sc-ds-filter-menu{display:flex;width:100%;min-width:0}.ds-table-caption-control.sc-ds-filter-menu-h{--ds-choice-popup-min-inline-size:var(--dimension-menu-width-xs)}.ds-table-caption-control.ds-table-caption-control--compact.sc-ds-filter-menu-h{flex:0 0 auto;width:var(--ds-control-height, var(--dimension-size-400));height:var(--ds-control-height, var(--dimension-size-400));min-width:var(--ds-control-height, var(--dimension-size-400));min-height:var(--ds-control-height, var(--dimension-size-400));max-width:var(--ds-control-height, var(--dimension-size-400));inline-size:var(--ds-control-height, var(--dimension-size-400));min-inline-size:var(--ds-control-height, var(--dimension-size-400));max-inline-size:var(--ds-control-height, var(--dimension-size-400))}.ds-table-caption-control.ds-table-caption-control--compact.sc-ds-filter-menu-h .trigger.sc-ds-filter-menu{justify-content:center;inline-size:100%;min-inline-size:100%;height:100%;padding-inline:0}.ds-table-caption-control.ds-table-caption-control--compact.sc-ds-filter-menu-h .trigger--has-value.sc-ds-filter-menu:not(.trigger--label-placeholder){--ds-select-prefix-fg:var(--ds-select-fg-active)}@container ds-table (max-width: 899px){.sc-ds-filter-menu-h.ds-table-caption-control{flex:0 0 auto;inline-size:var(--ds-control-height, var(--dimension-size-400));min-inline-size:var(--ds-control-height, var(--dimension-size-400));max-inline-size:var(--ds-control-height, var(--dimension-size-400))}.sc-ds-filter-menu-h.ds-table-caption-control .trigger{justify-content:center;inline-size:100%;min-inline-size:100%;padding-inline:0}.sc-ds-filter-menu-h.ds-table-caption-control .trigger--has-value:not(.trigger--label-placeholder){--ds-select-prefix-fg:var(--ds-select-fg-active)}}.filter-menu-host--external-trigger.sc-ds-filter-menu-h{display:contents}.filter-menu.sc-ds-filter-menu{display:flex;min-height:0;flex-direction:column;color:var(--color-foreground-secondary)}.filter-menu__body.sc-ds-filter-menu{display:grid;grid-template-columns:var(--dimension-menu-width-xs) var(--dimension-menu-width-sm);min-height:calc(var(--dimension-size-800) * 4 + var(--dimension-space-150));max-height:calc(100vh - var(--dimension-size-800) - var(--dimension-size-600))}.filter-menu__category-pane.sc-ds-filter-menu{display:flex;min-width:0;min-height:0;flex-direction:column;border-inline-end:var(--dimension-stroke-width-012) solid var(--color-border-tertiary)}.filter-menu__categories.sc-ds-filter-menu{flex:1 1 auto;min-width:0}.filter-menu__category-section.sc-ds-filter-menu{display:flex;min-width:0;flex-direction:column}.filter-menu__category-section.ds-choice-section--divided.sc-ds-filter-menu{padding-block-end:var(--dimension-space-050)}.filter-menu__category.sc-ds-filter-menu{justify-content:space-between;width:100%;border:0;background:transparent;color:var(--color-foreground-secondary);cursor:default;text-align:start}.filter-menu__category--active.sc-ds-filter-menu{color:var(--color-foreground-primary)}.filter-menu__category-dot-box.sc-ds-filter-menu{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ds-control-icon, var(--dimension-iconography-md));height:var(--ds-control-icon, var(--dimension-iconography-md));pointer-events:none}.filter-menu__options.sc-ds-filter-menu{display:flex;min-width:0;min-height:0;flex-direction:column;overflow:hidden}.filter-menu__options-content.sc-ds-filter-menu{display:flex;min-width:0;min-height:0;flex:1 1 auto;flex-direction:column;overflow:auto}.filter-menu__option-search.sc-ds-filter-menu{position:relative;flex:0 0 var(--dimension-size-500);min-width:0;min-height:var(--dimension-size-500);background:transparent}.filter-menu__option-search.sc-ds-filter-menu::after{content:'';position:absolute;inset:auto 0 0;height:var(--dimension-stroke-width-012);background-color:var(--color-border-tertiary);pointer-events:none}.filter-menu__option-search.sc-ds-filter-menu .select-search.sc-ds-filter-menu{height:100%;background:transparent}.filter-menu__options--date.sc-ds-filter-menu,.filter-menu__option-list--date.sc-ds-filter-menu,.filter-menu__date.sc-ds-filter-menu{display:flex;min-width:0;min-height:0;flex-direction:column}.filter-menu__option-list--date.sc-ds-filter-menu,.filter-menu__date.sc-ds-filter-menu{flex:1 1 auto}.filter-menu__date-header.sc-ds-filter-menu{flex:0 0 var(--dimension-size-500);justify-content:center;min-block-size:var(--dimension-size-500);padding:var(--dimension-space-050);background:var(--color-background-secondary)}.filter-menu__date-body.sc-ds-filter-menu{display:flex;flex:1 1 auto;min-height:0;flex-direction:column}.filter-menu__date-relative.sc-ds-filter-menu{flex:1 1 auto}.filter-menu__date-body.sc-ds-filter-menu>ds-calendar.sc-ds-filter-menu{flex:1 1 auto;min-width:0;min-height:0}.filter-menu__footer.sc-ds-filter-menu{flex:0 0 auto}.filter-menu__footer--categories-clear.sc-ds-filter-menu .ds-choice-footer__content.sc-ds-filter-menu{justify-content:flex-start}.filter-menu__footer--categories-clear[aria-hidden='true'].sc-ds-filter-menu::before{visibility:hidden}.ds-choice-footer__content.sc-ds-filter-menu:has(.filter-menu__apply){column-gap:var(--dimension-space-100)}.filter-menu__apply.sc-ds-filter-menu ds-text.sc-ds-filter-menu{padding-right:0}.filter-menu__action-separator.sc-ds-filter-menu+.filter-menu__clear.sc-ds-filter-menu ds-text.sc-ds-filter-menu{padding-left:0}.filter-menu__apply.sc-ds-filter-menu{color:var(--color-foreground-bold-brand)}.filter-menu__apply.sc-ds-filter-menu:disabled{color:var(--color-foreground-tertiary);text-decoration-line:none}.filter-menu__clear.sc-ds-filter-menu{--ds-text-action-foreground:var(--color-foreground-bold-negative);color:var(--ds-text-action-foreground)}.filter-menu__match-mode-footer.sc-ds-filter-menu{flex:0 0 auto}.filter-menu__match-mode-content.sc-ds-filter-menu{justify-content:flex-start;padding-inline:calc( var(--dimension-space-050) + var(--ds-control-padding-inline, var(--dimension-space-075)) + var(--ds-control-label-inset, var(--dimension-space-025)) )}.filter-menu__match-mode-toggle.sc-ds-filter-menu{appearance:none;display:inline-flex;align-items:center;padding:0;border:0;border-radius:var(--dimension-radius-025);background:transparent;cursor:default}@media (forced-colors: active){.filter-menu__category-pane.sc-ds-filter-menu{border-inline-end-color:var(--ds-forced-color-content)}}.data-preferences-embedded.sc-ds-filter-menu{display:flex;flex-direction:column;min-width:0;min-height:0;color:var(--color-foreground-secondary)}.data-preferences-embedded.sc-ds-filter-menu .filter-menu__body.sc-ds-filter-menu{grid-template-columns:min(var(--dimension-menu-width-xs), 40%) minmax(0, 1fr)}.filter-menu-vertical__section.sc-ds-filter-menu{border-bottom:var(--dimension-stroke-width-012) solid var(--color-border-tertiary)}.filter-menu-vertical__section.sc-ds-filter-menu>summary.sc-ds-filter-menu{cursor:default;padding:var(--dimension-space-200)}.filter-menu-vertical__section.sc-ds-filter-menu>summary.sc-ds-filter-menu ds-text.sc-ds-filter-menu{display:inline}.filter-menu-vertical__section.sc-ds-filter-menu>summary.sc-ds-filter-menu{display:flex;align-items:center;gap:var(--dimension-space-100);list-style:none}.filter-menu-vertical__section.sc-ds-filter-menu>summary.sc-ds-filter-menu::-webkit-details-marker{display:none}.filter-menu-vertical__section.sc-ds-filter-menu:not([open]) .filter-menu-vertical__chevron.sc-ds-filter-menu{transform:rotate(-90deg)}`;let M=0;const H={lg:"lg",md:"md",sm:"sm",xs:"xs"};const K=[{id:"relative",label:"Relative"},{id:"range",label:"Range"}];const B=b.map((e=>({label:e.label,value:_(e.value)})));const G=e(class e extends i{constructor(e){super();if(e!==false){this.__registerHost()}this.dsChange=t(this,"dsChange",7);this.dsClear=t(this,"dsClear",7);this.dsMatchModeChange=t(this,"dsMatchModeChange",7);this.dsActiveFilterChange=t(this,"dsActiveFilterChange",7);this.dsClose=t(this,"dsClose",7);this.dsOpenChange=t(this,"dsOpenChange",7);this.dsAfterClose=t(this,"dsAfterClose",7);this.embedded=false;this.vertical=false;this.open=false;this.triggerLabel="Filters";this.showSelectedCount=true;this.icon="Filters";this.size="md";this.width="hug";this.showIndicator=true;this.hasBorder=true;this.neutralTrigger=false;this.applyRequired=false;this.activeFill=false;this.collapseLabel=false;this.ariaLabel=null;this.filters=[];this.values={};this.matchModes={};this.side="bottom";this.align="end";this.sideOffset=F.space050;this.alignOffset=0;this.menuWidth=F.menuWidthLg;this.menuLabel="Filters";this.categoriesLabel="Filter categories";this.clearLabel="Clear";this.searchPlaceholder="Search";this.noResultsText="No results";this.footerLayout="summary";this.initialFocusVisible=false;this.shouldRender=false;this.closing=false;this.positionReady=false;this.pos={x:0,y:0};this.focusRingVisible=false;this.activeOptionIndex=0;this.captionCompact=false;this.dateModeByFilter={};this.optionQueryByFilter={};this.generatedId=`ds-filter-menu-${++M}`;this.triggerElement=null;this.pendingInitialFocusVisible=false;this.closeTimer=null;this.hasLoaded=false;this.tasks=new l((()=>this.el.isConnected));this.closingSnapshot=null;this.position=new a({getAnchor:()=>this.resolvedAnchor,getPopup:()=>this.el.querySelector(".filter-menu-popup"),getOwnerDocument:()=>this.el.ownerDocument,measure:(e,i)=>{if(!this.open)return null;const t=e.getBoundingClientRect();const s=A(T.space050,T.space050);return{anchorRect:t,popupWidth:i.offsetWidth||this.popupFallbackWidth,popupHeight:i.offsetHeight||this.popupFallbackHeight,side:this.side,align:this.align,sideOffsetPx:A(this.sideOffset,T.space050),alignOffsetPx:E({align:this.align,alignOffsetPx:A(this.alignOffset,0),sectionInsetPx:s}),viewportPadPx:this.viewportPad,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight,collisionRect:c(e,this.boundary)}},apply:({x:e,y:i})=>{this.pos={x:e,y:i}},onReady:()=>{this.positionReady=true},liveUpdate:"double-frame",observeResize:true,topLayer:true});this.interaction=new u({getAnchor:()=>this.resolvedAnchor,getPopup:()=>this.el.querySelector(".filter-menu-popup"),getOwnerDocument:()=>this.el.ownerDocument,onOutsideActivation:()=>this.close()})}changeValue(e){if(this.applyRequired)this.draftValues={...this.draftValues??this.values,[e.filterId]:e.value};else this.dsChange.emit(e)}changeMode(e){if(this.applyRequired)this.draftModes={...this.draftModes??this.matchModes,[e.filterId]:e.mode};else this.dsMatchModeChange.emit(e)}get hasPendingChanges(){const e=e=>Array.isArray(e)?e.length?[...e].sort():undefined:e||undefined;const i=this.draftValues??this.values;const t=this.draftModes??this.matchModes;return this.filters.some((s=>JSON.stringify(e(i[s.id]))!==JSON.stringify(e(this.values[s.id]))||(t[s.id]??"any")!==(this.matchModes[s.id]??"any")))}applyDraft(){if(!this.hasPendingChanges)return;if(this.draftValues&&Object.keys(this.draftValues).length===0){this.dsClear.emit()}else if(this.draftValues){for(const e of new Set([...Object.keys(this.values),...Object.keys(this.draftValues)])){if(JSON.stringify(this.values[e])!==JSON.stringify(this.draftValues[e]))this.dsChange.emit({filterId:e,value:this.draftValues[e]??(Array.isArray(this.values[e])?[]:typeof this.values[e]==="boolean"?false:"")})}}if(this.draftModes){for(const e of new Set([...Object.keys(this.matchModes),...Object.keys(this.draftModes)])){const i=this.draftModes[e]??"any";if((this.matchModes[e]??"any")!==i)this.dsMatchModeChange.emit({filterId:e,mode:i})}}}componentDidLoad(){this.hasLoaded=true;this.syncCaptionCompactObserver();if(this.open)this.onOpenChange(true)}connectedCallback(){if(!this.hasLoaded)return;this.syncCaptionCompactObserver();if(this.open)this.onOpenChange(true)}disconnectedCallback(){this.disconnectCaptionCompactObserver();this.position.unobserve();this.teardownListeners();this.shouldRender=false;this.closing=false;this.positionReady=false;this.closingSnapshot=null;this.pendingInitialFocusVisible=false;if(!this.open){this.dateModeByFilter={};this.optionQueryByFilter={}}}onCollapseLabelChange(){this.syncCaptionCompactObserver()}onOpenChange(e){if(!e){this.draftValues=undefined;this.draftModes=undefined}if(this.embedded||!this.hasLoaded||!this.el.isConnected)return;if(e){this.teardownListeners();this.closingSnapshot=null;this.shouldRender=true;this.closing=false;this.positionReady=false;this.focusRingVisible=this.pendingInitialFocusVisible||this.initialFocusVisible;this.setupListeners();this.position.schedule((()=>this.focusInitialCategory()));return}if(!this.shouldRender||this.closing)return;this.position.cancel();this.captureClosingSnapshot();this.closing=true;this.teardownListeners();const i=P(T.motionShort2,T.animationDurationShort3);if(i<=0){this.finishClose();return}this.closeTimer=setTimeout((()=>this.finishClose()),i)}onPositionInputChange(){if(this.open&&this.el.isConnected)this.position.schedule()}handleKeyDown(e){if(this.embedded&&(e.key==="Escape"||e.key==="Tab"))return;if(!this.shouldRender&&!this.embedded||this.closing)return;if(e.key==="Escape"){e.preventDefault();this.close();return}if(e.key!=="Tab"||!this.tabLeavesPopup(e))return;e.preventDefault();this.close(false);this.interaction.moveFocusAfterTab(e.shiftKey)}get resolvedAnchor(){if(this.anchor)return this.anchor;if(this.anchorId)return document.getElementById(this.anchorId);return this.triggerElement}get usesInternalTrigger(){return!this.embedded&&!this.anchor&&!this.anchorId}get viewportPad(){return A(T.space050,T.space050)}get popupFallbackWidth(){return A(T.menuWidthLg,T.menuWidthLg)}get popupFallbackHeight(){return A(T.menuFallbackHeight,T.menuFallbackHeight)}setupListeners(){this.interaction.connect();this.position.observe()}teardownListeners(){this.tasks.cancel();this.position.unobserve();this.interaction.disconnect();if(this.closeTimer){clearTimeout(this.closeTimer);this.closeTimer=null}}close(e=true){this.captureClosingSnapshot();if(e)this.interaction.focusAnchor();this.dsOpenChange.emit(false);this.dsClose.emit();this.open=false;this.onOpenChange(false)}toggleFromTrigger(e){if(this.open){this.close();return}this.pendingInitialFocusVisible=e.detail===0;this.open=true;this.dsOpenChange.emit(true);this.onOpenChange(true)}handleTriggerKeyDown(e){if(e.key!=="ArrowDown"||this.open)return;e.preventDefault();this.pendingInitialFocusVisible=true;this.open=true;this.dsOpenChange.emit(true);this.onOpenChange(true)}finishClose(){if(this.open||!this.closing||!this.el.isConnected)return;const e=this.el.querySelector(".filter-menu-popup");if(e?.matches(":popover-open"))e.hidePopover();this.shouldRender=false;this.closing=false;this.closingSnapshot=null;this.closeTimer=null;this.dateModeByFilter={};this.optionQueryByFilter={};this.dsAfterClose.emit()}captureClosingSnapshot(){if(this.closingSnapshot)return;this.closingSnapshot={filters:this.filters.map((e=>({...e,options:e.options?.map((e=>({...e})))}))),values:Object.fromEntries(Object.entries(this.values).map((([e,i])=>[e,Array.isArray(i)?[...i]:i]))),matchModes:{...this.matchModes},activeFilterId:this.activeFilterId}}focusInitialCategory(){this.tasks.frame((()=>{this.el.querySelector('.filter-menu__category[tabindex="0"]')?.focus();this.pendingInitialFocusVisible=false}))}tabLeavesPopup(e){return this.interaction.tabLeavesPopup(e)}selectedFilter(e,i){return e.find((e=>e.id===i))??e[0]}selectedCount(e,i){const t=i[e.id];if(e.kind==="multiple")return Array.isArray(t)?t.length:0;if(e.kind==="boolean")return t===true?1:0;return typeof t==="string"&&t.length>0?1:0}totalSelected(e,i){return e.reduce(((e,t)=>e+this.selectedCount(t,i)),0)}activeFilterCount(e,i){return e.filter((e=>this.selectedCount(e,i)>0)).length}selectCategory(e,i=false){this.activeOptionIndex=0;this.dsActiveFilterChange.emit(e);if(!i)return;this.tasks.frame((()=>{this.el.querySelector(`[data-filter-category="${e}"]`)?.focus()}))}handleCategoryKeyDown(e,i,t){const s=i.findIndex((e=>e.id===t));let n;if(e.key==="ArrowDown")n=(s+1)%i.length;else if(e.key==="ArrowUp")n=(s-1+i.length)%i.length;else if(e.key==="Home")n=0;else if(e.key==="End")n=i.length-1;else if(e.key==="ArrowRight"){e.preventDefault();this.tasks.frame((()=>{this.el.querySelector('.filter-menu__options [role="option"], .filter-menu__options [data-date-option], .filter-menu__options input')?.focus()}));return}else return;e.preventDefault();this.focusRingVisible=true;this.selectCategory(i[n].id,true)}handlePanelKeyDown(e,i){if(e.key!=="ArrowLeft")return;e.preventDefault();this.el.querySelector(`[data-filter-category="${i}"]`)?.focus()}handleOptionKeyDown(e,i,t,s,n,r=i.options??[]){if(e.key==="ArrowLeft"){this.handlePanelKeyDown(e,i.id);return}if(e.key==="Enter"||e.key===" "){e.preventDefault();this.selectOption(i,t,n);return}if(!["ArrowDown","ArrowUp","Home","End"].includes(e.key))return;e.preventDefault();const o=r.map(((e,i)=>({candidate:e,optionIndex:i}))).filter((({candidate:e})=>!e.isInactive)).map((({optionIndex:e})=>e));if(!o.length)return;const d=o.indexOf(s);let a;if(e.key==="Home")a=o[0];else if(e.key==="End")a=o[o.length-1];else{const i=e.key==="ArrowDown"?1:-1;const t=d>=0?d:i===1?-1:0;a=o[(t+i+o.length)%o.length]}this.activeOptionIndex=a;this.focusRingVisible=true;this.tasks.frame((()=>{this.el.querySelector(`#${this.generatedId}-${i.id}-option-${a}`)?.focus()}))}optionMatchesQuery(e,i){const t=i.trim().toLocaleLowerCase();if(!t)return true;return`${e.label} ${e.description??""}`.toLocaleLowerCase().includes(t)}visibleOptions(e,i=this.optionQueryByFilter[e.id]??""){if(e.kind==="boolean"){const t=this.booleanOption(e);return this.optionMatchesQuery(t,i)?[t]:[]}return(e.options??[]).filter((e=>this.optionMatchesQuery(e,i)))}booleanOption(e){return{label:e.fieldLabel??e.label,value:"true",description:e.description}}setOptionQuery(e,i){const t=this.visibleOptions(e,i);const s=t.findIndex((e=>!e.isInactive));this.activeOptionIndex=s;this.focusRingVisible=false;this.optionQueryByFilter={...this.optionQueryByFilter,[e.id]:i};this.tasks.frame((()=>{const e=this.el.querySelector(".filter-menu__options-content");if(e)e.scrollTop=0;this.position.schedule()}))}handleOptionSearchKeyDown(e,i){if(e.key!=="ArrowDown"&&e.key!=="ArrowUp")return;const t=this.visibleOptions(i);const s=t.map(((e,i)=>({option:e,index:i}))).filter((({option:e})=>!e.isInactive)).map((({index:e})=>e));if(!s.length)return;e.preventDefault();const n=e.key==="ArrowDown"?s[0]:s[s.length-1];this.activeOptionIndex=n;this.focusRingVisible=true;this.tasks.frame((()=>{this.el.querySelector(`#${this.generatedId}-${i.id}-option-${n}`)?.focus()}))}toggleMultiple(e,i,t,s){if(i.isInactive)return;const n=Array.isArray(s[e.id])?s[e.id]:[];const r=new Set(n);if(t)r.add(i.value);else r.delete(i.value);const o=(e.options??[]).map((e=>e.value)).filter((e=>r.has(e)));this.changeValue({filterId:e.id,value:o})}selectOption(e,i,t){if(i.isInactive)return;if(e.kind==="single"){this.changeValue({filterId:e.id,value:i.value});return}const s=Array.isArray(t[e.id])?t[e.id].includes(i.value):false;this.toggleMultiple(e,i,!s,t)}dateMode(e,i){return this.dateModeByFilter[e]??v(i)?.kind??"relative"}setDateMode(e,i){if(i!=="range"&&i!=="relative")return;this.dateModeByFilter={...this.dateModeByFilter,[e.id]:i};this.activeOptionIndex=0}renderRelativeDateOptions(e,i){const t={...e,kind:"single",options:B};return s("div",{class:"filter-menu__date-relative ds-choice-list ds-chrome-column ds-chrome-space--sm",role:"listbox","aria-label":"Relative date"},B.map(((n,r)=>s(f,{size:"md",id:`${this.generatedId}-${e.id}-relative-${r}`,option:n,selected:i===n.value,active:r===this.activeOptionIndex,focusRingVisible:this.focusRingVisible,usesSubtext:false,tabIndex:r===this.activeOptionIndex?0:-1,onFocus:()=>{this.activeOptionIndex=r},onKeyDown:s=>this.handleOptionKeyDown(s,t,n,r,{[e.id]:i}),onHover:()=>{this.focusRingVisible=false;this.activeOptionIndex=r},onSelect:()=>this.changeValue({filterId:e.id,value:n.value})}))))}renderDateCalendar(e,i){return s("ds-calendar",{selectionMode:"range",value:typeof i==="string"?i:"",onDsChange:i=>{i.stopPropagation();this.changeValue({filterId:e.id,value:i.detail})}})}renderDateFilter(e,i){const t=this.dateMode(e.id,i);return s("div",{class:"filter-menu__date"},s("header",{class:"filter-menu__date-header ds-chrome-header ds-chrome-header--bounded"},s("ds-tab-group",{ariaLabel:"Date filter mode",size:"md",width:"fill",hasContainer:false,value:t,tabs:K,onDsChange:i=>{i.stopPropagation();this.setDateMode(e,i.detail)}})),s("div",{class:"filter-menu__date-body"},t==="relative"?this.renderRelativeDateOptions(e,i):this.renderDateCalendar(e,i)))}renderOptionSearch(e){return s("div",{class:"filter-menu__option-search"},s(h,{size:"md",hasFocusBoundary:false,hasInteractionFill:false,value:this.optionQueryByFilter[e.id]??"",placeholder:this.searchPlaceholder,ariaLabel:`Search ${e.label} options`,controls:`${this.generatedId}-${e.id}-options`,inputRef:()=>undefined,clearLabel:`Clear ${e.label} search`,onValueChange:i=>this.setOptionQuery(e,i),onKeyDown:i=>this.handleOptionSearchKeyDown(i,e)}))}renderNoOptionResults(){return s("div",{class:"ds-choice-empty ds-empty-region",role:"option","aria-selected":"false","aria-disabled":"true","aria-label":this.noResultsText,"aria-live":"polite"},s("ds-empty-state",{body:this.noResultsText}))}renderOptions(e,i){const t=i[e.id];if(e.kind==="multiple"||e.kind==="single"){const n=Array.isArray(t)?t:[];const r=e.options??[];const o=this.visibleOptions(e);const d=p(r.map((e=>({label:e.label,value:e.value,subtext:e.description}))));if(!o.length)return this.renderNoOptionResults();return o.map(((r,a)=>{const c=e.kind==="multiple"?n.includes(r.value):t===r.value;return s(f,{size:"md",id:`${this.generatedId}-${e.id}-option-${a}`,option:{label:r.label,value:r.value,subtext:r.description,isInactive:r.isInactive},selected:c,active:a===this.activeOptionIndex,focusRingVisible:this.focusRingVisible,usesSubtext:d,tabIndex:a===this.activeOptionIndex?0:-1,leading:e.kind==="multiple"?s("span",{class:"ds-choice-item__icon ds-control-icon-box ds-interaction-fill__content","aria-hidden":"true"},s("ds-checkbox",{label:"",size:"md",checked:c,presentation:true})):undefined,onFocus:()=>{this.activeOptionIndex=a},onKeyDown:t=>this.handleOptionKeyDown(t,e,r,a,i,o),onHover:()=>{this.focusRingVisible=false;this.activeOptionIndex=a},onSelect:()=>this.selectOption(e,r,i)})}))}if(e.kind==="boolean"){const[i]=this.visibleOptions(e);if(!i)return this.renderNoOptionResults();return s(f,{size:"md",id:`${this.generatedId}-${e.id}-option-0`,option:{label:i.label,value:i.value,subtext:i.description},selected:t===true,active:true,focusRingVisible:this.focusRingVisible,usesSubtext:Boolean(i.description),tabIndex:0,leading:s("span",{class:"ds-choice-item__icon ds-control-icon-box ds-interaction-fill__content","aria-hidden":"true"},s("ds-checkbox",{label:"",size:"md",checked:t===true,presentation:true})),onKeyDown:i=>{if(i.key==="ArrowLeft")this.handlePanelKeyDown(i,e.id);else if(i.key==="Enter"||i.key===" "){i.preventDefault();this.changeValue({filterId:e.id,value:t!==true})}},onHover:()=>{this.focusRingVisible=false},onSelect:()=>this.changeValue({filterId:e.id,value:t!==true})})}return this.renderDateFilter(e,t)}get captionIconOnly(){return this.collapseLabel&&this.captionCompact&&this.usesInternalTrigger&&Boolean(this.icon)}syncCaptionCompactObserver(){this.disconnectCaptionCompactObserver();if(!this.el.isConnected)return;if(!this.collapseLabel){if(this.captionCompact)this.captionCompact=false;return}this.captionCompactDisconnect=o(this.el,(e=>{if(this.captionCompact!==e)this.captionCompact=e}))}disconnectCaptionCompactObserver(){this.captionCompactDisconnect?.();this.captionCompactDisconnect=undefined}renderCaptionTooltip(e,i){if(!this.collapseLabel)return e;return s("ds-tooltip",{label:i,side:"top",size:"sm"},e)}renderFooter(e,i){const t=this.totalSelected(this.filters,this.values);if(this.applyRequired&&e===0&&t===0)return null;return s("div",{class:{"filter-menu__footer":true,"filter-menu__footer--categories-clear":i,"ds-choice-footer":true},"aria-hidden":!this.applyRequired&&i&&e===0&&!this.draftValues&&!this.draftModes?"true":undefined},s("div",{class:"ds-choice-footer__content ds-control--md"},!i?s("ds-text",{class:"ds-choice-footer__summary",as:"span",variant:"text-body-medium",color:"secondary","aria-live":"polite"},e," selected"):null,this.applyRequired?s("button",{class:"filter-menu__apply ds-choice-footer__clear ds-text-action",type:"button",disabled:!this.hasPendingChanges,onClick:()=>this.applyDraft()},s("ds-text",{as:"span",variant:"text-body-medium",color:"inherit"},"Apply")):null,this.applyRequired&&(e>0||t>0)?s("ds-text",{class:"filter-menu__action-separator",as:"span",variant:"text-body-medium",color:"tertiary","aria-hidden":"true"},"·"):null,e>0||this.applyRequired&&t>0?s("button",{class:"filter-menu__clear ds-choice-footer__clear ds-text-action",type:"button",onClick:()=>{if(this.applyRequired){this.draftValues={};this.draftModes={}}this.dsClear.emit()}},s("ds-text",{as:"span",variant:"text-body-medium",color:"inherit"},this.clearLabel)):null))}renderMatchModeFooter(e,i){const t=i[e.id]==="all"?"all":"any";const n=t==="any"?"all":"any";return s("div",{class:"filter-menu__match-mode-footer ds-choice-footer"},s("div",{class:"filter-menu__match-mode-content ds-choice-footer__content ds-control--md"},s("ds-text",{as:"span",variant:"text-body-medium",color:"secondary"},"Limit results to"),s("button",{class:"filter-menu__match-mode-toggle ds-text-action ds-focus-ring",type:"button","aria-label":`Limit ${e.label} results to ${n} selected`,onClick:()=>this.changeMode({filterId:e.id,mode:n}),onKeyDown:i=>this.handlePanelKeyDown(i,e.id)},s("ds-text",{as:"span",variant:"text-body-medium",color:"inherit"},t)),s("ds-text",{as:"span",variant:"text-body-medium",color:"secondary"},"selected")))}render(){if(this.vertical)return s(n,{class:"filter-menu-vertical"},this.filters.map((e=>s("details",{open:true,key:e.id,class:"filter-menu-vertical__section"},s("summary",null,s("ds-icon",{class:"filter-menu-vertical__chevron",name:"ChevronDown",size:"md"}),s("ds-text",{variant:"text-body-medium",emphasis:true},e.label)),e.kind!=="date"&&this.renderOptionSearch(e),s("div",{id:`${this.generatedId}-${e.id}-options`,role:e.kind==="date"?undefined:"listbox","aria-label":e.label,"aria-multiselectable":e.kind==="multiple"?"true":undefined,class:"ds-choice-list ds-chrome-column ds-chrome-space--sm"},this.renderOptions(e,this.values)),e.kind==="multiple"&&this.renderMatchModeFooter(e,this.matchModes)))));const e=this.closing&&this.closingSnapshot?this.closingSnapshot:{filters:this.filters,values:this.draftValues??this.values,matchModes:this.draftModes??this.matchModes,activeFilterId:this.activeFilterId};const i=this.selectedFilter(e.filters,e.activeFilterId);const t=this.totalSelected(e.filters,e.values);const r=this.activeFilterCount(e.filters,e.values);const o=r>0;const d=this.footerLayout==="categories-clear";const a=`${this.triggerLabel}${this.showSelectedCount&&o?` · ${r}`:""}`;const c=L[this.size];const l=H[this.size];const u=`${this.generatedId}-popup`;const f={position:"fixed",left:"0",top:"0",width:this.menuWidth,transform:`translate(${Math.round(this.pos.x)}px, ${Math.round(this.pos.y)}px)`,zIndex:"9998",visibility:this.positionReady?"visible":"hidden"};return s(n,{class:{"filter-menu-host":true,"filter-menu-host--external-trigger":!this.usesInternalTrigger,"ds-select-trigger-host":this.usesInternalTrigger,[`ds-control--${this.size}`]:true,"ds-table-caption-control":this.collapseLabel,"ds-table-caption-control--compact":this.captionIconOnly,...R(this.width)}},this.usesInternalTrigger?this.renderCaptionTooltip(s("button",{ref:e=>{this.triggerElement=e??null},id:this.inputId??`${this.generatedId}-trigger`,type:"button",class:{trigger:true,"ds-control-frame":true,"ds-focus-ring-inset":true,"ds-interaction-fill":true,"ds-interaction-fill--selected":this.activeFill&&o,"trigger--expanded":this.open||this.closing,"ds-interaction-fill--surface-open":this.open||this.closing,"trigger--bordered":this.hasBorder,"trigger--has-value":o&&!this.neutralTrigger,[`ds-control--${this.size}`]:true},role:"combobox","aria-haspopup":"dialog","aria-expanded":String(this.open),"aria-controls":this.open?u:undefined,"aria-label":this.ariaLabel??this.menuLabel,onClick:e=>this.toggleFromTrigger(e),onKeyDown:e=>this.handleTriggerKeyDown(e)},this.icon?s("span",{class:"trigger__prefix ds-control-icon-box ds-interaction-fill__content","aria-hidden":"true"},s("ds-icon",{name:this.icon,size:l,color:"inherit"})):null,this.captionIconOnly?null:s("ds-text",{class:"trigger__label-box trigger__label trigger__label-content ds-control-label-box ds-interaction-fill__content",as:"span",variant:c,color:"inherit",lineTruncation:1},a),this.captionIconOnly||!this.showIndicator?null:s("span",{class:"trigger__chevron ds-control-icon-box ds-interaction-fill__content","aria-hidden":"true"},s("ds-icon",{name:"ChevronDown",size:l,color:"inherit"}))),this.captionIconOnly?a:""):null,this.shouldRender||this.embedded?s("div",{id:u,popover:this.embedded?undefined:"manual",class:{"filter-menu-popup":true,"ds-choice-popup":!this.embedded,"data-preferences-embedded":this.embedded,"ds-choice-popup--closing":this.closing},style:this.embedded?undefined:f,role:"dialog","aria-label":this.menuLabel},i?s("div",{class:"filter-menu"},s("div",{class:"filter-menu__body"},s("div",{class:"filter-menu__category-pane"},s("div",{class:"filter-menu__categories ds-choice-list ds-chrome-column ds-chrome-space--sm",role:"tablist","aria-label":this.categoriesLabel,"aria-orientation":"vertical"},e.filters.map((t=>{const n=t.id===i.id;const r=this.selectedCount(t,e.values);return s("div",{key:t.id,class:{"filter-menu__category-section":true,"ds-choice-section--divided":Boolean(t.divider)}},s("button",{id:`${this.generatedId}-${t.id}-tab`,type:"button",role:"tab","data-filter-category":t.id,class:{"filter-menu__category":true,"filter-menu__category--active":n,"ds-choice-item":true,"ds-control-frame":true,"ds-control--md":true,"ds-focus-ring-inset":true,"ds-focus-ring--visible":n&&this.focusRingVisible,"ds-interaction-fill":true,"ds-interaction-fill--selected":n},"aria-selected":String(n),"aria-controls":`${this.generatedId}-panel`,tabIndex:n?0:-1,onMouseDown:()=>{this.focusRingVisible=false},onClick:()=>this.selectCategory(t.id),onKeyDown:i=>this.handleCategoryKeyDown(i,e.filters,t.id)},s("ds-text",{class:"ds-choice-item__content ds-choice-item__label ds-control-label-box ds-interaction-fill__content",as:"span",variant:"text-body-medium",color:n?"primary":"secondary"},t.label),r>0&&t.kind==="date"?s("span",{class:"filter-menu__category-dot-box ds-interaction-fill__content","aria-hidden":"true"},s("ds-badge",{variant:"dot",hasRing:false,label:""})):r>0?s("ds-tag",{class:"ds-choice-item__tag ds-interaction-fill__content",label:String(r),size:"sm",intent:"brand",contrast:"bold",isInset:true,rounded:true}):null))}))),d?this.renderFooter(t,true):null),s("div",{id:`${this.generatedId}-panel`,class:{"filter-menu__options":true,"filter-menu__options--date":i.kind==="date"},role:"tabpanel","aria-labelledby":`${this.generatedId}-${i.id}-tab`},i.kind==="date"?null:this.renderOptionSearch(i),s("div",{class:"filter-menu__options-content"},i.kind==="date"?s("div",{key:i.id,class:"filter-menu__option-list--date"},this.renderOptions(i,e.values)):s("div",{id:`${this.generatedId}-${i.id}-options`,key:i.id,class:"filter-menu__option-list ds-choice-list ds-chrome-column ds-chrome-space--sm",role:"listbox","aria-label":i.label,"aria-multiselectable":i.kind==="multiple"?"true":undefined},this.renderOptions(i,e.values))),i.kind==="multiple"?this.renderMatchModeFooter(i,e.matchModes):null)),!d&&t>0?this.renderFooter(t,false):null):null):null)}get el(){return this}static get watchers(){return{collapseLabel:[{onCollapseLabelChange:0}],open:[{onOpenChange:0}],anchor:[{onPositionInputChange:0}],anchorId:[{onPositionInputChange:0}],boundary:[{onPositionInputChange:0}],side:[{onPositionInputChange:0}],align:[{onPositionInputChange:0}],sideOffset:[{onPositionInputChange:0}],alignOffset:[{onPositionInputChange:0}],menuWidth:[{onPositionInputChange:0}]}}static get style(){return S()}},[2,"ds-filter-menu",{embedded:[4],vertical:[4],open:[1028],triggerLabel:[1,"trigger-label"],showSelectedCount:[4,"show-selected-count"],icon:[1],size:[1],width:[1],showIndicator:[4,"show-indicator"],hasBorder:[4,"has-border"],neutralTrigger:[4,"neutral-trigger"],applyRequired:[4,"apply-required"],activeFill:[4,"active-fill"],collapseLabel:[516,"collapse-label"],inputId:[1,"input-id"],ariaLabel:[1,"aria-label"],filters:[16],values:[16],matchModes:[16],activeFilterId:[1,"active-filter-id"],anchor:[16],anchorId:[1,"anchor-id"],boundary:[16],side:[1],align:[1],sideOffset:[8,"side-offset"],alignOffset:[8,"align-offset"],menuWidth:[1,"menu-width"],menuLabel:[1,"menu-label"],categoriesLabel:[1,"categories-label"],clearLabel:[1,"clear-label"],searchPlaceholder:[1,"search-placeholder"],noResultsText:[1,"no-results-text"],footerLayout:[1,"footer-layout"],initialFocusVisible:[4,"initial-focus-visible"],draftValues:[32],draftModes:[32],shouldRender:[32],closing:[32],positionReady:[32],pos:[32],focusRingVisible:[32],activeOptionIndex:[32],captionCompact:[32],dateModeByFilter:[32],optionQueryByFilter:[32]},[[0,"keydown","handleKeyDown"]],{collapseLabel:[{onCollapseLabelChange:0}],open:[{onOpenChange:0}],anchor:[{onPositionInputChange:0}],anchorId:[{onPositionInputChange:0}],boundary:[{onPositionInputChange:0}],side:[{onPositionInputChange:0}],align:[{onPositionInputChange:0}],sideOffset:[{onPositionInputChange:0}],alignOffset:[{onPositionInputChange:0}],menuWidth:[{onPositionInputChange:0}]}]);function J(){if(typeof customElements==="undefined"){return}const e=["ds-filter-menu","ds-badge","ds-button-unfilled","ds-calendar","ds-checkbox","ds-chip","ds-divider","ds-empty-state","ds-icon","ds-input","ds-loader","ds-tab-group","ds-tag","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-filter-menu":if(!customElements.get(r(e))){customElements.define(r(e),G)}break;case"ds-badge":if(!customElements.get(r(e))){g()}break;case"ds-button-unfilled":if(!customElements.get(r(e))){d()}break;case"ds-calendar":if(!customElements.get(r(e))){x()}break;case"ds-checkbox":if(!customElements.get(r(e))){y()}break;case"ds-chip":if(!customElements.get(r(e))){w()}break;case"ds-divider":if(!customElements.get(r(e))){k()}break;case"ds-empty-state":if(!customElements.get(r(e))){z()}break;case"ds-icon":if(!customElements.get(r(e))){C()}break;case"ds-input":if(!customElements.get(r(e))){m()}break;case"ds-loader":if(!customElements.get(r(e))){I()}break;case"ds-tab-group":if(!customElements.get(r(e))){j()}break;case"ds-tag":if(!customElements.get(r(e))){D()}break;case"ds-text":if(!customElements.get(r(e))){O()}break;case"ds-tooltip":if(!customElements.get(r(e))){$()}break}}))}J();export{G as F,J as d};
2
+ //# sourceMappingURL=p-Bq_ypMSy.js.map
@@ -0,0 +1 @@
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","tasks","ConnectionTasks","el","isConnected","closingSnapshot","position","AnchoredPositionController","getAnchor","resolvedAnchor","getPopup","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","frame","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.data-preferences-embedded {\n display: flex;\n flex-direction: column;\n min-width: 0;\n min-height: 0;\n color: var(--color-foreground-secondary);\n}\n\n.data-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 { ConnectionTasks } from '../../utils/connection-tasks';\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 readonly tasks = new ConnectionTasks(() => this.el.isConnected);\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 this.shouldRender = false;\n this.closing = false;\n this.positionReady = false;\n this.closingSnapshot = null;\n this.pendingInitialFocusVisible = false;\n if (!this.open) {\n this.dateModeByFilter = {};\n this.optionQueryByFilter = {};\n }\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 || !this.hasLoaded || !this.el.isConnected) 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 || this.closing) 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.el.isConnected) 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.tasks.cancel();\n this.position.unobserve();\n this.interaction.disconnect();\n if (this.closeTimer) {\n clearTimeout(this.closeTimer);\n this.closeTimer = null;\n }\n }\n\n private close(restoreFocus = true) {\n this.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 if (this.open || !this.closing || !this.el.isConnected) return;\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 this.tasks.frame(() => {\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 this.tasks.frame(() => {\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 this.tasks.frame(() => {\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 this.tasks.frame(() => {\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 this.tasks.frame(() => {\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 this.tasks.frame(() => {\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.el.isConnected) return;\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 'data-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":[]}