@ds-mo/ui 14.27.1 → 14.29.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 (338) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +28 -18
  3. package/dist/agent.json +436 -33
  4. package/dist/angular/ds-button-filled.d.ts +1 -1
  5. package/dist/angular/ds-button-filled.js +3 -3
  6. package/dist/angular/ds-button-unfilled.d.ts +1 -1
  7. package/dist/angular/ds-button-unfilled.js +3 -3
  8. package/dist/angular/ds-card-navigation.d.ts +20 -0
  9. package/dist/angular/ds-card-navigation.js +42 -0
  10. package/dist/angular/ds-card-settings-scope.d.ts +19 -0
  11. package/dist/angular/ds-card-settings-scope.js +42 -0
  12. package/dist/angular/ds-menu.d.ts +1 -1
  13. package/dist/angular/ds-menu.js +3 -3
  14. package/dist/angular/ds-mobile-bar-nav.d.ts +1 -1
  15. package/dist/angular/ds-mobile-bar-nav.js +3 -3
  16. package/dist/angular/ds-mobile-header.d.ts +1 -1
  17. package/dist/angular/ds-mobile-header.js +3 -3
  18. package/dist/angular/ds-mobile-section-switcher.d.ts +1 -1
  19. package/dist/angular/ds-mobile-section-switcher.js +3 -3
  20. package/dist/angular/ds-mobile-sheet-nav.d.ts +7 -1
  21. package/dist/angular/ds-mobile-sheet-nav.js +7 -4
  22. package/dist/angular/ds-panel-nav.d.ts +1 -1
  23. package/dist/angular/ds-panel-nav.js +3 -3
  24. package/dist/angular/ds-panel-tool-header.d.ts +1 -1
  25. package/dist/angular/ds-panel-tool-header.js +3 -3
  26. package/dist/angular/ds-panel-tool-search.d.ts +1 -1
  27. package/dist/angular/ds-panel-tool-search.js +3 -3
  28. package/dist/angular/ds-table.d.ts +1 -1
  29. package/dist/angular/ds-table.js +3 -3
  30. package/dist/angular/ds-tag.d.ts +1 -1
  31. package/dist/angular/ds-tag.js +3 -3
  32. package/dist/angular/index.d.ts +1 -1
  33. package/dist/angular/index.js +2 -0
  34. package/dist/angular/proxies.d.ts +2 -0
  35. package/dist/angular/proxies.js +2 -0
  36. package/dist/components/ds-agent-activity.js +1 -1
  37. package/dist/components/ds-agent-questionnaire.js +1 -1
  38. package/dist/components/ds-agent-response.js +1 -1
  39. package/dist/components/ds-agent-source-list.js +1 -1
  40. package/dist/components/ds-agent-tool-call.js +1 -1
  41. package/dist/components/ds-attachment-list.js +1 -1
  42. package/dist/components/ds-badge.js +1 -1
  43. package/dist/components/ds-banner.js +1 -1
  44. package/dist/components/ds-bar-action.js +1 -1
  45. package/dist/components/ds-bar-nav.js +1 -1
  46. package/dist/components/ds-bar-title.js +1 -1
  47. package/dist/components/ds-bar-workflow.js +1 -1
  48. package/dist/components/ds-breadcrumb.js +1 -1
  49. package/dist/components/ds-button-filled.js +1 -1
  50. package/dist/components/ds-button-unfilled.js +1 -1
  51. package/dist/components/ds-card-chart.js +1 -1
  52. package/dist/components/ds-card-navigation.d.ts +11 -0
  53. package/dist/components/ds-card-navigation.js +2 -0
  54. package/dist/components/ds-card-navigation.js.map +1 -0
  55. package/dist/components/ds-card-overview.js +1 -1
  56. package/dist/components/ds-card-overview.js.map +1 -1
  57. package/dist/components/ds-card-setting.js +1 -1
  58. package/dist/components/ds-card-settings-scope.d.ts +11 -0
  59. package/dist/components/ds-card-settings-scope.js +2 -0
  60. package/dist/components/ds-card-settings-scope.js.map +1 -0
  61. package/dist/components/ds-chart-legend.js +1 -1
  62. package/dist/components/ds-chart-legend.js.map +1 -1
  63. package/dist/components/ds-chart.js +1 -1
  64. package/dist/components/ds-checkbox.js +1 -1
  65. package/dist/components/ds-chip.js +1 -1
  66. package/dist/components/ds-code-block.js +1 -1
  67. package/dist/components/ds-conversation-list-item.js +1 -1
  68. package/dist/components/ds-conversation-list-item.js.map +1 -1
  69. package/dist/components/ds-conversation-list-section.js +1 -1
  70. package/dist/components/ds-conversation-list.js +1 -1
  71. package/dist/components/ds-divider.js +1 -1
  72. package/dist/components/ds-empty-state.js +1 -1
  73. package/dist/components/ds-field.js +1 -1
  74. package/dist/components/ds-filter-menu.js +1 -1
  75. package/dist/components/ds-input.js +1 -1
  76. package/dist/components/ds-markdown.js +1 -1
  77. package/dist/components/ds-menu.js +1 -1
  78. package/dist/components/ds-message-actions.js +1 -1
  79. package/dist/components/ds-message-bubble.js +1 -1
  80. package/dist/components/ds-message-composer.js +1 -1
  81. package/dist/components/ds-message-scroller.js +1 -1
  82. package/dist/components/ds-message.js +1 -1
  83. package/dist/components/ds-mobile-bar-nav.js +1 -1
  84. package/dist/components/ds-mobile-header.js +1 -1
  85. package/dist/components/ds-mobile-section-switcher.js +1 -1
  86. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  87. package/dist/components/ds-modal.js +1 -1
  88. package/dist/components/ds-pagination.js +1 -1
  89. package/dist/components/ds-panel-nav.js +1 -1
  90. package/dist/components/ds-panel-sub-nav.js +1 -1
  91. package/dist/components/ds-panel-sub-nav.js.map +1 -1
  92. package/dist/components/ds-panel-tool-header.js +1 -1
  93. package/dist/components/ds-panel-tool-search.js +1 -1
  94. package/dist/components/ds-panel-tool-search.js.map +1 -1
  95. package/dist/components/ds-panel-tools.js +1 -1
  96. package/dist/components/ds-paper-texture.js +1 -1
  97. package/dist/components/ds-radio.js +1 -1
  98. package/dist/components/ds-score.js +1 -1
  99. package/dist/components/ds-scroll-overlay.js +1 -1
  100. package/dist/components/ds-select.js +1 -1
  101. package/dist/components/ds-shell-app.js +1 -1
  102. package/dist/components/ds-shell-app.js.map +1 -1
  103. package/dist/components/ds-shell-page.js +1 -1
  104. package/dist/components/ds-shell-tools.js +1 -1
  105. package/dist/components/ds-skeleton.js +1 -1
  106. package/dist/components/ds-slider.js +1 -1
  107. package/dist/components/ds-swatch-picker.js +1 -1
  108. package/dist/components/ds-switch.js +1 -1
  109. package/dist/components/ds-tab-group.js +1 -1
  110. package/dist/components/ds-table-filter.js +1 -1
  111. package/dist/components/ds-table-group.js +1 -1
  112. package/dist/components/ds-table-group.js.map +1 -1
  113. package/dist/components/ds-table-saved-views.js +1 -1
  114. package/dist/components/ds-table-saved-views.js.map +1 -1
  115. package/dist/components/ds-table-search.js +1 -1
  116. package/dist/components/ds-table-search.js.map +1 -1
  117. package/dist/components/ds-table-sort.js +1 -1
  118. package/dist/components/ds-table-sort.js.map +1 -1
  119. package/dist/components/ds-table-toolbar.js +1 -1
  120. package/dist/components/ds-table.js +1 -1
  121. package/dist/components/ds-table.js.map +1 -1
  122. package/dist/components/ds-tag.js +1 -1
  123. package/dist/components/ds-text.js +1 -1
  124. package/dist/components/ds-textarea.js +1 -1
  125. package/dist/components/ds-textarea.js.map +1 -1
  126. package/dist/components/ds-toast.js +1 -1
  127. package/dist/components/ds-tooltip-chart.js +1 -1
  128. package/dist/components/ds-tooltip.js +1 -1
  129. package/dist/components/ds-typing-indicator.js +1 -1
  130. package/dist/components/p--yvQzZoO.js +2 -0
  131. package/dist/components/p--yvQzZoO.js.map +1 -0
  132. package/dist/components/{p-Is1lFmwp.js → p-1gt8QlyW.js} +2 -2
  133. package/dist/components/p-B5AZd41L.js +2 -0
  134. package/dist/components/p-B5AZd41L.js.map +1 -0
  135. package/dist/components/p-B5eMVBlz.js +2 -0
  136. package/dist/components/p-B5eMVBlz.js.map +1 -0
  137. package/dist/components/{p-Q7AOgrg5.js → p-BCFpqnAg.js} +2 -2
  138. package/dist/components/p-BFHWoNH3.js +2 -0
  139. package/dist/components/{p-BVz-r3g0.js.map → p-BFHWoNH3.js.map} +1 -1
  140. package/dist/components/p-BGnRFtBa.js +2 -0
  141. package/dist/components/p-BGnRFtBa.js.map +1 -0
  142. package/dist/components/p-BIDGQ4tc.js +2 -0
  143. package/dist/components/p-BIDGQ4tc.js.map +1 -0
  144. package/dist/components/{p-Ctnm9NJP.js → p-BLTHIBsE.js} +2 -2
  145. package/dist/components/{p-C68oSTb1.js → p-BXT2opmZ.js} +2 -2
  146. package/dist/components/p-BZDQLjE0.js +2 -0
  147. package/dist/components/p-BZDQLjE0.js.map +1 -0
  148. package/dist/components/{p-Q0dkeoJ6.js → p-BdC7wxhu.js} +2 -2
  149. package/dist/components/{p-Q0dkeoJ6.js.map → p-BdC7wxhu.js.map} +1 -1
  150. package/dist/components/p-BfVlFinS.js +2 -0
  151. package/dist/components/{p-CQjUOHiN.js.map → p-BfVlFinS.js.map} +1 -1
  152. package/dist/components/{p-DGkn8FwV.js → p-Bl5wd3v3.js} +2 -2
  153. package/dist/components/p-BmRHJ_jo.js +2 -0
  154. package/dist/components/p-BmRHJ_jo.js.map +1 -0
  155. package/dist/components/{p-Bb9dA7sl.js → p-BpB2EF9g.js} +2 -2
  156. package/dist/components/{p-2wIPUcSL.js → p-BwAWZAHk.js} +2 -2
  157. package/dist/components/{p-B3sRZBZk.js → p-By5TDnbF.js} +2 -2
  158. package/dist/components/{p-BVpn_e-r.js → p-CDXcINTO.js} +2 -2
  159. package/dist/components/p-CDXcINTO.js.map +1 -0
  160. package/dist/components/{p-B3Z5sQin.js → p-CE8gsv7V.js} +2 -2
  161. package/dist/components/p-CLcwh1kq.js +2 -0
  162. package/dist/components/p-CLcwh1kq.js.map +1 -0
  163. package/dist/components/{p-DW8ssbfI.js → p-CN8PQLZu.js} +2 -2
  164. package/dist/components/p-CcK3UiTu.js +2 -0
  165. package/dist/components/{p-1604KY3B.js.map → p-CcK3UiTu.js.map} +1 -1
  166. package/dist/components/{p-CaF5WCci.js → p-Cocq-utR.js} +2 -2
  167. package/dist/components/p-Cr5vn5JO.js +2 -0
  168. package/dist/components/{p-to8BxxgT.js.map → p-Cr5vn5JO.js.map} +1 -1
  169. package/dist/components/{p-Cf5Ai4xx.js → p-Crd3PEUx.js} +2 -2
  170. package/dist/components/{p-Cf5Ai4xx.js.map → p-Crd3PEUx.js.map} +1 -1
  171. package/dist/components/{p-BZiGtBBk.js → p-Ct90k-nz.js} +2 -2
  172. package/dist/components/p-Cx2dWjaW.js +2 -0
  173. package/dist/components/p-Cx2dWjaW.js.map +1 -0
  174. package/dist/components/p-CyoLh8su.js +2 -0
  175. package/dist/components/p-CyoLh8su.js.map +1 -0
  176. package/dist/components/{p-BXDLR072.js → p-CysCSinT.js} +2 -2
  177. package/dist/components/{p-BXDLR072.js.map → p-CysCSinT.js.map} +1 -1
  178. package/dist/components/p-CzbsTZt7.js.map +1 -1
  179. package/dist/components/p-D1pPq-y0.js +2 -0
  180. package/dist/components/p-D1pPq-y0.js.map +1 -0
  181. package/dist/components/{p-VT-5XDkB.js → p-DDOuPq-N.js} +2 -2
  182. package/dist/components/{p-DkxOEFHN.js → p-DF8W85Tz.js} +2 -2
  183. package/dist/components/{p-DDqRCDXh.js → p-DSJSnQ1U.js} +2 -2
  184. package/dist/components/{p-Cr6pDY-e.js → p-DYK0slTb.js} +2 -2
  185. package/dist/components/{p-D9wZlB_N.js → p-D_QtZZR8.js} +2 -2
  186. package/dist/components/{p-Bv6FSDPR.js → p-DbDYEEWq.js} +2 -2
  187. package/dist/components/{p-BEXkJ9lg.js → p-DnQN0pLp.js} +2 -2
  188. package/dist/components/{p-DIqAdmui.js → p-FiM3rF7B.js} +2 -2
  189. package/dist/components/p-GbtafFds.js +2 -0
  190. package/dist/components/p-GbtafFds.js.map +1 -0
  191. package/dist/components/{p-WFo1x6dN.js → p-Hzz2j1Je.js} +2 -2
  192. package/dist/components/{p-B9esvbYk.js → p-K39w53Bw.js} +2 -2
  193. package/dist/components/p-K39w53Bw.js.map +1 -0
  194. package/dist/components/{p-DQQsS9Rx.js → p-aMyflqva.js} +2 -2
  195. package/dist/components/{p-DZcIt_JJ.js → p-dgep63_i.js} +2 -2
  196. package/dist/components/p-frKsmPQn.js +2 -0
  197. package/dist/components/p-frKsmPQn.js.map +1 -0
  198. package/dist/components/{p-BMzn2Cmw.js → p-rSC7ZUpy.js} +2 -2
  199. package/dist/docs/components.json +1025 -44
  200. package/dist/lib/components/ButtonFilled/ButtonFilled.d.ts +11 -3
  201. package/dist/lib/components/PanelTools/panel-tools-types.d.ts +2 -0
  202. package/dist/lib/components/ShellApp/shell-app-types.d.ts +2 -0
  203. package/dist/lib/shell/index.js.map +1 -1
  204. package/dist/lib/utils/choice-list.d.ts +2 -0
  205. package/dist/mcp-data/registry/bar-nav.json +7 -2
  206. package/dist/mcp-data/registry/bar-title.json +8 -3
  207. package/dist/mcp-data/registry/button-filled.json +26 -5
  208. package/dist/mcp-data/registry/button-unfilled.json +27 -6
  209. package/dist/mcp-data/registry/card-navigation.json +255 -0
  210. package/dist/mcp-data/registry/card-settings-scope.json +314 -0
  211. package/dist/mcp-data/registry/filter-menu.json +7 -2
  212. package/dist/mcp-data/registry/menu.json +21 -2
  213. package/dist/mcp-data/registry/mobile-bar-nav.json +20 -1
  214. package/dist/mcp-data/registry/mobile-header.json +23 -3
  215. package/dist/mcp-data/registry/mobile-section-switcher.json +50 -6
  216. package/dist/mcp-data/registry/mobile-sheet-nav.json +40 -3
  217. package/dist/mcp-data/registry/panel-nav.json +27 -6
  218. package/dist/mcp-data/registry/panel-tool-header.json +23 -2
  219. package/dist/mcp-data/registry/panel-tool-search.json +23 -2
  220. package/dist/mcp-data/registry/panel-tools.json +7 -2
  221. package/dist/mcp-data/registry/registry.json +441 -32
  222. package/dist/mcp-data/registry/select.json +8 -3
  223. package/dist/mcp-data/registry/shell-app.json +14 -8
  224. package/dist/mcp-data/registry/shell-tools.json +7 -2
  225. package/dist/mcp-data/registry/table-group.json +7 -2
  226. package/dist/mcp-data/registry/table-saved-views.json +7 -2
  227. package/dist/mcp-data/registry/table-search.json +7 -2
  228. package/dist/mcp-data/registry/table-sort.json +7 -2
  229. package/dist/mcp-data/registry/table.json +24 -3
  230. package/dist/mcp-data/registry/tag.json +24 -3
  231. package/dist/react/components.d.ts +2 -0
  232. package/dist/react/components.js +2 -0
  233. package/dist/react/ds-card-navigation.d.ts +12 -0
  234. package/dist/react/ds-card-navigation.js +12 -0
  235. package/dist/react/ds-card-settings-scope.d.ts +12 -0
  236. package/dist/react/ds-card-settings-scope.js +12 -0
  237. package/dist/react/ds-mobile-sheet-nav.d.ts +2 -1
  238. package/dist/react/ds-mobile-sheet-nav.js +1 -0
  239. package/dist/styles/table.css +1 -0
  240. package/dist/types/components/BarTitle/BarTitle.d.ts +3 -0
  241. package/dist/types/components/ButtonFilled/ButtonFilled.d.ts +11 -3
  242. package/dist/types/components/ButtonUnfilled/ButtonUnfilled.d.ts +11 -5
  243. package/dist/types/components/CardNavigation/CardNavigation.d.ts +31 -0
  244. package/dist/types/components/CardNavigation/index.d.ts +2 -0
  245. package/dist/types/components/CardSettingsScope/CardSettingsScope.d.ts +33 -0
  246. package/dist/types/components/CardSettingsScope/index.d.ts +2 -0
  247. package/dist/types/components/Menu/Menu.d.ts +4 -0
  248. package/dist/types/components/MobileBarNav/MobileBarNav.d.ts +2 -0
  249. package/dist/types/components/MobileHeader/MobileHeader.d.ts +3 -0
  250. package/dist/types/components/MobileSectionSwitcher/MobileSectionSwitcher.d.ts +19 -0
  251. package/dist/types/components/MobileSheetNav/MobileSheetNav.d.ts +15 -2
  252. package/dist/types/components/PanelNav/PanelNav.d.ts +4 -1
  253. package/dist/types/components/PanelToolHeader/PanelToolHeader.d.ts +2 -0
  254. package/dist/types/components/PanelToolSearch/PanelToolSearch.d.ts +2 -0
  255. package/dist/types/components/PanelTools/panel-tools-types.d.ts +2 -0
  256. package/dist/types/components/ShellApp/ShellApp.d.ts +5 -2
  257. package/dist/types/components/ShellApp/shell-app-types.d.ts +2 -0
  258. package/dist/types/components/Table/Table.d.ts +10 -0
  259. package/dist/types/components/Table/table-row-view.d.ts +6 -1
  260. package/dist/types/components/TableSort/TableSort.d.ts +1 -0
  261. package/dist/types/components/Tag/Tag.d.ts +3 -0
  262. package/dist/types/components.d.ts +369 -8
  263. package/dist/types/utils/choice-list.d.ts +2 -0
  264. package/dist/vue/components.d.ts +2 -0
  265. package/dist/vue/components.js +2 -0
  266. package/dist/vue/ds-button-filled.js +1 -0
  267. package/dist/vue/ds-button-unfilled.js +1 -0
  268. package/dist/vue/ds-card-navigation.d.ts +3 -0
  269. package/dist/vue/ds-card-navigation.js +15 -0
  270. package/dist/vue/ds-card-settings-scope.d.ts +3 -0
  271. package/dist/vue/ds-card-settings-scope.js +20 -0
  272. package/dist/vue/ds-menu.js +1 -0
  273. package/dist/vue/ds-mobile-bar-nav.js +1 -0
  274. package/dist/vue/ds-mobile-header.js +1 -0
  275. package/dist/vue/ds-mobile-section-switcher.js +2 -0
  276. package/dist/vue/ds-mobile-sheet-nav.js +3 -0
  277. package/dist/vue/ds-panel-nav.js +1 -0
  278. package/dist/vue/ds-panel-tool-header.js +1 -0
  279. package/dist/vue/ds-panel-tool-search.js +1 -0
  280. package/dist/vue/ds-table.js +1 -0
  281. package/dist/vue/ds-tag.js +1 -0
  282. package/package.json +1 -1
  283. package/dist/components/p-1604KY3B.js +0 -2
  284. package/dist/components/p-537t6oRD.js +0 -2
  285. package/dist/components/p-537t6oRD.js.map +0 -1
  286. package/dist/components/p-6_CNVbqa.js +0 -2
  287. package/dist/components/p-6_CNVbqa.js.map +0 -1
  288. package/dist/components/p-B9esvbYk.js.map +0 -1
  289. package/dist/components/p-BIGpc__9.js +0 -2
  290. package/dist/components/p-BIGpc__9.js.map +0 -1
  291. package/dist/components/p-BRLDf-NK.js +0 -2
  292. package/dist/components/p-BRLDf-NK.js.map +0 -1
  293. package/dist/components/p-BUh2GkPJ.js +0 -2
  294. package/dist/components/p-BUh2GkPJ.js.map +0 -1
  295. package/dist/components/p-BVpn_e-r.js.map +0 -1
  296. package/dist/components/p-BVz-r3g0.js +0 -2
  297. package/dist/components/p-Bjt_8sLe.js +0 -2
  298. package/dist/components/p-Bjt_8sLe.js.map +0 -1
  299. package/dist/components/p-BssZ4SbT.js +0 -2
  300. package/dist/components/p-BssZ4SbT.js.map +0 -1
  301. package/dist/components/p-CGQnHNuW.js +0 -2
  302. package/dist/components/p-CGQnHNuW.js.map +0 -1
  303. package/dist/components/p-CQjUOHiN.js +0 -2
  304. package/dist/components/p-Cy1oWIaV.js +0 -2
  305. package/dist/components/p-Cy1oWIaV.js.map +0 -1
  306. package/dist/components/p-DQsFmleZ.js +0 -2
  307. package/dist/components/p-DQsFmleZ.js.map +0 -1
  308. package/dist/components/p-DlbhmXjH.js +0 -2
  309. package/dist/components/p-DlbhmXjH.js.map +0 -1
  310. package/dist/components/p-GEi3hDJQ.js +0 -2
  311. package/dist/components/p-GEi3hDJQ.js.map +0 -1
  312. package/dist/components/p-LMmrjmI_.js +0 -2
  313. package/dist/components/p-LMmrjmI_.js.map +0 -1
  314. package/dist/components/p-to8BxxgT.js +0 -2
  315. /package/dist/components/{p-Is1lFmwp.js.map → p-1gt8QlyW.js.map} +0 -0
  316. /package/dist/components/{p-Q7AOgrg5.js.map → p-BCFpqnAg.js.map} +0 -0
  317. /package/dist/components/{p-Ctnm9NJP.js.map → p-BLTHIBsE.js.map} +0 -0
  318. /package/dist/components/{p-C68oSTb1.js.map → p-BXT2opmZ.js.map} +0 -0
  319. /package/dist/components/{p-DGkn8FwV.js.map → p-Bl5wd3v3.js.map} +0 -0
  320. /package/dist/components/{p-Bb9dA7sl.js.map → p-BpB2EF9g.js.map} +0 -0
  321. /package/dist/components/{p-2wIPUcSL.js.map → p-BwAWZAHk.js.map} +0 -0
  322. /package/dist/components/{p-B3sRZBZk.js.map → p-By5TDnbF.js.map} +0 -0
  323. /package/dist/components/{p-B3Z5sQin.js.map → p-CE8gsv7V.js.map} +0 -0
  324. /package/dist/components/{p-DW8ssbfI.js.map → p-CN8PQLZu.js.map} +0 -0
  325. /package/dist/components/{p-CaF5WCci.js.map → p-Cocq-utR.js.map} +0 -0
  326. /package/dist/components/{p-BZiGtBBk.js.map → p-Ct90k-nz.js.map} +0 -0
  327. /package/dist/components/{p-VT-5XDkB.js.map → p-DDOuPq-N.js.map} +0 -0
  328. /package/dist/components/{p-DkxOEFHN.js.map → p-DF8W85Tz.js.map} +0 -0
  329. /package/dist/components/{p-DDqRCDXh.js.map → p-DSJSnQ1U.js.map} +0 -0
  330. /package/dist/components/{p-Cr6pDY-e.js.map → p-DYK0slTb.js.map} +0 -0
  331. /package/dist/components/{p-D9wZlB_N.js.map → p-D_QtZZR8.js.map} +0 -0
  332. /package/dist/components/{p-Bv6FSDPR.js.map → p-DbDYEEWq.js.map} +0 -0
  333. /package/dist/components/{p-BEXkJ9lg.js.map → p-DnQN0pLp.js.map} +0 -0
  334. /package/dist/components/{p-DIqAdmui.js.map → p-FiM3rF7B.js.map} +0 -0
  335. /package/dist/components/{p-WFo1x6dN.js.map → p-Hzz2j1Je.js.map} +0 -0
  336. /package/dist/components/{p-DQQsS9Rx.js.map → p-aMyflqva.js.map} +0 -0
  337. /package/dist/components/{p-DZcIt_JJ.js.map → p-dgep63_i.js.map} +0 -0
  338. /package/dist/components/{p-BMzn2Cmw.js.map → p-rSC7ZUpy.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["tableSavedViewsCss","tableSavedViewsId","TableSavedViews","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","views","value","dirty","defaultViewId","defaultViewLabel","label","triggerLabel","createLabel","actionViewId","actionMenuOpen","actionMenuInitialFocusVisible","dialogOpen","dialogMode","dialogViewId","nameDraft","nameError","componentId","selectId","actionMenuId","fieldId","inputId","actionItems","isDestructive","selectedCustomView","find","view","id","dialogView","sections","custom","map","subtextActions","tone","undefined","action","controls","expanded","templates","header","options","divider","length","handleViewChange","dsViewChange","emit","viewId","handleSubtextAction","detail","actionValue","dsViewSave","dsViewDiscard","handleOptionAction","some","originalEvent","actionAnchorId","anchorId","handleActionSelect","event","openDialog","dsViewRemove","mode","item","requestAnimationFrame","input","el","querySelector","setFocus","validateName","name","trim","duplicate","toLocaleLowerCase","submitDialog","error","dsViewRename","dsViewCreate","finishDialogClose","select","render","h","Host","key","size","width","placeholder","triggerLabelPlaceholder","dot","Boolean","footerActionLabel","activeFill","allowClear","onDsChange","onDsFooterAction","onDsOptionSubtextAction","onDsOptionAction","menuLabel","side","align","menuWidth","minWidth","items","open","initialFocusVisible","onDsClose","onDsAfterClose","onDsSelect","heading","modalWidth","errorMessage","autoFocus","onKeyDown","slot","class","onDsClick"],"sources":["src/wc/components/TableSavedViews/TableSavedViews.css?tag=ds-table-saved-views&encapsulation=scoped","src/wc/components/TableSavedViews/TableSavedViews.tsx"],"sourcesContent":[":host {\n --ds-choice-popup-min-inline-size: var(--dimension-menu-width-xs);\n\n display: inline-block;\n min-inline-size: 0;\n max-inline-size: var(--dimension-menu-width-xs);\n}\n\nds-select {\n display: block;\n min-inline-size: 0;\n max-inline-size: 100%;\n}\n\n.table-saved-views__dialog-actions {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: var(--dimension-space-100);\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Prop, State } from '@stencil/core';\nimport type { MenuItemData } from '../Menu/menu-types';\nimport type {\n SelectOptionActionDetail,\n SelectOptionSubtextActionDetail,\n SelectValue,\n} from '../Select/Select';\nimport type {\n TableSavedView,\n TableSavedViewChangeDetail,\n TableSavedViewCreateDetail,\n TableSavedViewDiscardDetail,\n TableSavedViewRemoveDetail,\n TableSavedViewRenameDetail,\n TableSavedViewSaveDetail,\n} from './table-saved-views-types';\n\ntype SavedViewDialogMode = 'create' | 'rename';\n\nlet tableSavedViewsId = 0;\n\n@Component({\n tag: 'ds-table-saved-views',\n styleUrl: 'TableSavedViews.css',\n scoped: true,\n})\nexport class TableSavedViews {\n @Element() el!: HTMLElement;\n\n /** Application-owned custom saved views. Assign arrays through the JavaScript property. */\n @Prop() views: TableSavedView[] = [];\n /** ID of the controlled active view, including the default view ID. */\n @Prop() value: string = '__default__';\n /** Whether the current table state differs from the selected custom view. Ignored for the default view. */\n @Prop() dirty: boolean = false;\n /** ID used for the built-in default view. */\n @Prop() defaultViewId: string = '__default__';\n /** Label used for the built-in default view. */\n @Prop() defaultViewLabel: string = 'Default';\n /** Accessible name for the saved-views select. */\n @Prop() label: string = 'Saved views';\n /** Trigger label shown while the default view is selected. */\n @Prop() triggerLabel: string = 'Views';\n /** Footer action label that opens the create-view dialog. */\n @Prop() createLabel: string = 'New view';\n\n /** Emitted when a view selection is requested. */\n @Event() dsViewChange!: EventEmitter<TableSavedViewChangeDetail>;\n /** Emitted after a valid create-view name is submitted. */\n @Event() dsViewCreate!: EventEmitter<TableSavedViewCreateDetail>;\n /** Emitted after a valid renamed view name is submitted. */\n @Event() dsViewRename!: EventEmitter<TableSavedViewRenameDetail>;\n /** Emitted when a custom view removal is requested. */\n @Event() dsViewRemove!: EventEmitter<TableSavedViewRemoveDetail>;\n /** Emitted when changes to the active custom view should replace its stored payload. */\n @Event() dsViewSave!: EventEmitter<TableSavedViewSaveDetail>;\n /** Emitted when the active custom view's stored payload should be restored. */\n @Event() dsViewDiscard!: EventEmitter<TableSavedViewDiscardDetail>;\n\n @State() private actionViewId: string | null = null;\n @State() private actionAnchorId: string | undefined;\n @State() private actionMenuOpen = false;\n @State() private actionMenuInitialFocusVisible = false;\n @State() private dialogOpen = false;\n @State() private dialogMode: SavedViewDialogMode = 'create';\n @State() private dialogViewId: string | null = null;\n @State() private nameDraft = '';\n @State() private nameError = '';\n\n private readonly componentId = `ds-table-saved-views-${++tableSavedViewsId}`;\n private readonly selectId = `${this.componentId}-select`;\n private readonly actionMenuId = `${this.componentId}-actions`;\n private readonly fieldId = `${this.componentId}-name-field`;\n private readonly inputId = `${this.componentId}-name-input`;\n private readonly actionItems: MenuItemData[] = [\n { label: 'Rename', value: 'rename' },\n { label: 'Remove', value: 'remove', isDestructive: true },\n ];\n\n private get selectedCustomView(): TableSavedView | undefined {\n return this.views.find(view => view.id === this.value);\n }\n\n private get dialogView(): TableSavedView | undefined {\n return this.views.find(view => view.id === this.dialogViewId);\n }\n\n private get sections() {\n const custom = this.views.map(view => ({\n label: view.label,\n value: view.id,\n subtextActions:\n this.dirty && view.id === this.selectedCustomView?.id\n ? [\n { label: 'Save', value: 'save' },\n { label: 'Discard', value: 'discard', tone: 'negative' as const },\n ]\n : undefined,\n action: {\n label: `Options for ${view.label}`,\n controls: this.actionMenuId,\n expanded: this.actionViewId === view.id && this.actionMenuOpen,\n },\n }));\n const templates = {\n header: 'Templates',\n options: [{ label: this.defaultViewLabel, value: this.defaultViewId }],\n divider: custom.length > 0,\n };\n return custom.length > 0 ? [templates, { header: 'Custom', options: custom }] : [templates];\n }\n\n private handleViewChange(value: SelectValue) {\n if (typeof value === 'string') this.dsViewChange.emit({ viewId: value });\n }\n\n private handleSubtextAction(detail: SelectOptionSubtextActionDetail) {\n const view = this.selectedCustomView;\n if (!view || !this.dirty || detail.value !== view.id) return;\n if (detail.actionValue === 'save') this.dsViewSave.emit({ viewId: view.id });\n if (detail.actionValue === 'discard') this.dsViewDiscard.emit({ viewId: view.id });\n }\n\n private handleOptionAction(detail: SelectOptionActionDetail) {\n if (!this.views.some(view => view.id === detail.value)) return;\n this.actionMenuInitialFocusVisible = detail.originalEvent.detail === 0;\n if (this.actionViewId === detail.value && this.actionMenuOpen) {\n this.actionMenuOpen = false;\n return;\n }\n this.actionViewId = detail.value;\n this.actionAnchorId = detail.anchorId;\n this.actionMenuOpen = true;\n }\n\n private handleActionSelect(event: CustomEvent<MenuItemData>) {\n const viewId = this.actionViewId;\n this.actionMenuOpen = false;\n if (!viewId) return;\n if (event.detail.value === 'rename') this.openDialog('rename', viewId);\n if (event.detail.value === 'remove') this.dsViewRemove.emit({ viewId });\n }\n\n private openDialog(mode: SavedViewDialogMode, viewId: string | null = null) {\n const view = mode === 'rename' ? this.views.find(item => item.id === viewId) : undefined;\n if (mode === 'rename' && !view) return;\n this.dialogMode = mode;\n this.dialogViewId = view?.id ?? null;\n this.nameDraft = view?.label ?? '';\n this.nameError = '';\n this.dialogOpen = true;\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n const input = this.el.querySelector<HTMLElement & { setFocus?: () => Promise<void> }>(\n `#${this.inputId}`\n );\n void input?.setFocus?.();\n });\n });\n }\n\n private validateName(): string {\n const name = this.nameDraft.trim();\n if (!name) return 'View name is required.';\n const duplicate = this.views.some(\n view =>\n view.id !== this.dialogViewId &&\n view.label.trim().toLocaleLowerCase() === name.toLocaleLowerCase()\n );\n if (\n duplicate ||\n this.defaultViewLabel.trim().toLocaleLowerCase() === name.toLocaleLowerCase()\n ) {\n return 'A view with this name already exists.';\n }\n return '';\n }\n\n private submitDialog() {\n const error = this.validateName();\n if (error) {\n this.nameError = error;\n return;\n }\n const name = this.nameDraft.trim();\n if (this.dialogMode === 'rename' && this.dialogView) {\n this.dsViewRename.emit({ viewId: this.dialogView.id, name });\n } else {\n this.dsViewCreate.emit({ name });\n }\n this.dialogOpen = false;\n }\n\n private finishDialogClose() {\n if (this.dialogOpen) return;\n this.dialogViewId = null;\n this.nameDraft = '';\n this.nameError = '';\n const select = this.el.querySelector<HTMLElement & { setFocus?: () => Promise<void> }>(\n `#${this.selectId}`\n );\n void select?.setFocus?.();\n }\n\n render() {\n return (\n <Host>\n <ds-select\n id={this.selectId}\n size=\"md\"\n width=\"fill\"\n placeholder={this.label}\n aria-label={this.label}\n sections={this.sections}\n value={this.value}\n triggerLabel={this.selectedCustomView ? undefined : this.triggerLabel}\n triggerLabelPlaceholder={!this.selectedCustomView}\n dot={this.dirty && Boolean(this.selectedCustomView)}\n footerActionLabel={this.createLabel}\n activeFill={false}\n allowClear={false}\n onDsChange={(event: CustomEvent<SelectValue>) => this.handleViewChange(event.detail)}\n onDsFooterAction={() => this.openDialog('create')}\n onDsOptionSubtextAction={(event: CustomEvent<SelectOptionSubtextActionDetail>) =>\n this.handleSubtextAction(event.detail)\n }\n onDsOptionAction={(event: CustomEvent<SelectOptionActionDetail>) =>\n this.handleOptionAction(event.detail)\n }\n />\n\n <ds-menu\n id={this.actionMenuId}\n anchorId={this.actionAnchorId}\n menuLabel=\"Saved view options\"\n side=\"bottom\"\n align=\"end\"\n menuWidth=\"max-content\"\n minWidth=\"0\"\n items={this.actionItems}\n open={this.actionMenuOpen}\n initialFocusVisible={this.actionMenuInitialFocusVisible}\n onDsClose={() => (this.actionMenuOpen = false)}\n onDsAfterClose={() => {\n if (this.actionMenuOpen) return;\n this.actionViewId = null;\n this.actionAnchorId = undefined;\n }}\n onDsSelect={(event: CustomEvent<MenuItemData>) => this.handleActionSelect(event)}\n />\n\n <ds-modal\n open={this.dialogOpen}\n heading={this.dialogMode === 'rename' ? 'Rename view' : 'Save as new view'}\n modalWidth=\"sm\"\n onDsClose={() => (this.dialogOpen = false)}\n onDsAfterClose={() => this.finishDialogClose()}\n >\n <ds-field\n label=\"Name\"\n fieldId={this.fieldId}\n error={this.nameError.length > 0}\n errorMessage={this.nameError}\n >\n <ds-input\n id={this.inputId}\n size=\"md\"\n placeholder=\"Enter a unique name\"\n value={this.nameDraft}\n autoFocus={true}\n onDsChange={(event: CustomEvent<string>) => {\n this.nameDraft = event.detail;\n if (this.nameError) this.nameError = '';\n }}\n onKeyDown={(event: KeyboardEvent) => {\n if (event.key === 'Enter') this.submitDialog();\n }}\n />\n </ds-field>\n\n <div slot=\"footer\" class=\"table-saved-views__dialog-actions\">\n <ds-button-filled\n label={this.dialogMode === 'rename' ? 'Rename' : 'Save'}\n size=\"md\"\n onDsClick={() => this.submitDialog()}\n />\n <ds-button-unfilled\n label=\"Cancel\"\n size=\"md\"\n onDsClick={() => (this.dialogOpen = false)}\n />\n </div>\n </ds-modal>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["tableSavedViewsCss","tableSavedViewsId","TableSavedViews","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","views","value","dirty","defaultViewId","defaultViewLabel","label","triggerLabel","createLabel","actionViewId","actionMenuOpen","actionMenuInitialFocusVisible","dialogOpen","dialogMode","dialogViewId","nameDraft","nameError","componentId","selectId","actionMenuId","fieldId","inputId","actionItems","isDestructive","selectedCustomView","find","view","id","dialogView","sections","custom","map","subtextActions","tone","undefined","action","controls","expanded","surfaceOpen","templates","header","options","divider","length","handleViewChange","dsViewChange","emit","viewId","handleSubtextAction","detail","actionValue","dsViewSave","dsViewDiscard","handleOptionAction","some","originalEvent","actionAnchorId","anchorId","handleActionSelect","event","openDialog","dsViewRemove","mode","item","requestAnimationFrame","input","el","querySelector","setFocus","validateName","name","trim","duplicate","toLocaleLowerCase","submitDialog","error","dsViewRename","dsViewCreate","finishDialogClose","select","render","h","Host","key","size","width","placeholder","triggerLabelPlaceholder","dot","Boolean","footerActionLabel","activeFill","allowClear","onDsChange","onDsFooterAction","onDsOptionSubtextAction","onDsOptionAction","menuLabel","side","align","menuWidth","minWidth","items","open","initialFocusVisible","onDsClose","onDsAfterClose","onDsSelect","heading","modalWidth","errorMessage","autoFocus","onKeyDown","slot","class","onDsClick"],"sources":["src/wc/components/TableSavedViews/TableSavedViews.css?tag=ds-table-saved-views&encapsulation=scoped","src/wc/components/TableSavedViews/TableSavedViews.tsx"],"sourcesContent":[":host {\n --ds-choice-popup-min-inline-size: var(--dimension-menu-width-xs);\n\n display: inline-block;\n min-inline-size: 0;\n max-inline-size: var(--dimension-menu-width-xs);\n}\n\nds-select {\n display: block;\n min-inline-size: 0;\n max-inline-size: 100%;\n}\n\n.table-saved-views__dialog-actions {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: var(--dimension-space-100);\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Prop, State } from '@stencil/core';\nimport type { MenuItemData } from '../Menu/menu-types';\nimport type {\n SelectOptionActionDetail,\n SelectOptionSubtextActionDetail,\n SelectValue,\n} from '../Select/Select';\nimport type {\n TableSavedView,\n TableSavedViewChangeDetail,\n TableSavedViewCreateDetail,\n TableSavedViewDiscardDetail,\n TableSavedViewRemoveDetail,\n TableSavedViewRenameDetail,\n TableSavedViewSaveDetail,\n} from './table-saved-views-types';\n\ntype SavedViewDialogMode = 'create' | 'rename';\n\nlet tableSavedViewsId = 0;\n\n@Component({\n tag: 'ds-table-saved-views',\n styleUrl: 'TableSavedViews.css',\n scoped: true,\n})\nexport class TableSavedViews {\n @Element() el!: HTMLElement;\n\n /** Application-owned custom saved views. Assign arrays through the JavaScript property. */\n @Prop() views: TableSavedView[] = [];\n /** ID of the controlled active view, including the default view ID. */\n @Prop() value: string = '__default__';\n /** Whether the current table state differs from the selected custom view. Ignored for the default view. */\n @Prop() dirty: boolean = false;\n /** ID used for the built-in default view. */\n @Prop() defaultViewId: string = '__default__';\n /** Label used for the built-in default view. */\n @Prop() defaultViewLabel: string = 'Default';\n /** Accessible name for the saved-views select. */\n @Prop() label: string = 'Saved views';\n /** Trigger label shown while the default view is selected. */\n @Prop() triggerLabel: string = 'Views';\n /** Footer action label that opens the create-view dialog. */\n @Prop() createLabel: string = 'New view';\n\n /** Emitted when a view selection is requested. */\n @Event() dsViewChange!: EventEmitter<TableSavedViewChangeDetail>;\n /** Emitted after a valid create-view name is submitted. */\n @Event() dsViewCreate!: EventEmitter<TableSavedViewCreateDetail>;\n /** Emitted after a valid renamed view name is submitted. */\n @Event() dsViewRename!: EventEmitter<TableSavedViewRenameDetail>;\n /** Emitted when a custom view removal is requested. */\n @Event() dsViewRemove!: EventEmitter<TableSavedViewRemoveDetail>;\n /** Emitted when changes to the active custom view should replace its stored payload. */\n @Event() dsViewSave!: EventEmitter<TableSavedViewSaveDetail>;\n /** Emitted when the active custom view's stored payload should be restored. */\n @Event() dsViewDiscard!: EventEmitter<TableSavedViewDiscardDetail>;\n\n @State() private actionViewId: string | null = null;\n @State() private actionAnchorId: string | undefined;\n @State() private actionMenuOpen = false;\n @State() private actionMenuInitialFocusVisible = false;\n @State() private dialogOpen = false;\n @State() private dialogMode: SavedViewDialogMode = 'create';\n @State() private dialogViewId: string | null = null;\n @State() private nameDraft = '';\n @State() private nameError = '';\n\n private readonly componentId = `ds-table-saved-views-${++tableSavedViewsId}`;\n private readonly selectId = `${this.componentId}-select`;\n private readonly actionMenuId = `${this.componentId}-actions`;\n private readonly fieldId = `${this.componentId}-name-field`;\n private readonly inputId = `${this.componentId}-name-input`;\n private readonly actionItems: MenuItemData[] = [\n { label: 'Rename', value: 'rename' },\n { label: 'Remove', value: 'remove', isDestructive: true },\n ];\n\n private get selectedCustomView(): TableSavedView | undefined {\n return this.views.find(view => view.id === this.value);\n }\n\n private get dialogView(): TableSavedView | undefined {\n return this.views.find(view => view.id === this.dialogViewId);\n }\n\n private get sections() {\n const custom = this.views.map(view => ({\n label: view.label,\n value: view.id,\n subtextActions:\n this.dirty && view.id === this.selectedCustomView?.id\n ? [\n { label: 'Save', value: 'save' },\n { label: 'Discard', value: 'discard', tone: 'negative' as const },\n ]\n : undefined,\n action: {\n label: `Options for ${view.label}`,\n controls: this.actionMenuId,\n expanded: this.actionViewId === view.id && this.actionMenuOpen,\n surfaceOpen: this.actionViewId === view.id,\n },\n }));\n const templates = {\n header: 'Templates',\n options: [{ label: this.defaultViewLabel, value: this.defaultViewId }],\n divider: custom.length > 0,\n };\n return custom.length > 0 ? [templates, { header: 'Custom', options: custom }] : [templates];\n }\n\n private handleViewChange(value: SelectValue) {\n if (typeof value === 'string') this.dsViewChange.emit({ viewId: value });\n }\n\n private handleSubtextAction(detail: SelectOptionSubtextActionDetail) {\n const view = this.selectedCustomView;\n if (!view || !this.dirty || detail.value !== view.id) return;\n if (detail.actionValue === 'save') this.dsViewSave.emit({ viewId: view.id });\n if (detail.actionValue === 'discard') this.dsViewDiscard.emit({ viewId: view.id });\n }\n\n private handleOptionAction(detail: SelectOptionActionDetail) {\n if (!this.views.some(view => view.id === detail.value)) return;\n this.actionMenuInitialFocusVisible = detail.originalEvent.detail === 0;\n if (this.actionViewId === detail.value && this.actionMenuOpen) {\n this.actionMenuOpen = false;\n return;\n }\n this.actionViewId = detail.value;\n this.actionAnchorId = detail.anchorId;\n this.actionMenuOpen = true;\n }\n\n private handleActionSelect(event: CustomEvent<MenuItemData>) {\n const viewId = this.actionViewId;\n this.actionMenuOpen = false;\n if (!viewId) return;\n if (event.detail.value === 'rename') this.openDialog('rename', viewId);\n if (event.detail.value === 'remove') this.dsViewRemove.emit({ viewId });\n }\n\n private openDialog(mode: SavedViewDialogMode, viewId: string | null = null) {\n const view = mode === 'rename' ? this.views.find(item => item.id === viewId) : undefined;\n if (mode === 'rename' && !view) return;\n this.dialogMode = mode;\n this.dialogViewId = view?.id ?? null;\n this.nameDraft = view?.label ?? '';\n this.nameError = '';\n this.dialogOpen = true;\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n const input = this.el.querySelector<HTMLElement & { setFocus?: () => Promise<void> }>(\n `#${this.inputId}`\n );\n void input?.setFocus?.();\n });\n });\n }\n\n private validateName(): string {\n const name = this.nameDraft.trim();\n if (!name) return 'View name is required.';\n const duplicate = this.views.some(\n view =>\n view.id !== this.dialogViewId &&\n view.label.trim().toLocaleLowerCase() === name.toLocaleLowerCase()\n );\n if (\n duplicate ||\n this.defaultViewLabel.trim().toLocaleLowerCase() === name.toLocaleLowerCase()\n ) {\n return 'A view with this name already exists.';\n }\n return '';\n }\n\n private submitDialog() {\n const error = this.validateName();\n if (error) {\n this.nameError = error;\n return;\n }\n const name = this.nameDraft.trim();\n if (this.dialogMode === 'rename' && this.dialogView) {\n this.dsViewRename.emit({ viewId: this.dialogView.id, name });\n } else {\n this.dsViewCreate.emit({ name });\n }\n this.dialogOpen = false;\n }\n\n private finishDialogClose() {\n if (this.dialogOpen) return;\n this.dialogViewId = null;\n this.nameDraft = '';\n this.nameError = '';\n const select = this.el.querySelector<HTMLElement & { setFocus?: () => Promise<void> }>(\n `#${this.selectId}`\n );\n void select?.setFocus?.();\n }\n\n render() {\n return (\n <Host>\n <ds-select\n id={this.selectId}\n size=\"md\"\n width=\"fill\"\n placeholder={this.label}\n aria-label={this.label}\n sections={this.sections}\n value={this.value}\n triggerLabel={this.selectedCustomView ? undefined : this.triggerLabel}\n triggerLabelPlaceholder={!this.selectedCustomView}\n dot={this.dirty && Boolean(this.selectedCustomView)}\n footerActionLabel={this.createLabel}\n activeFill={false}\n allowClear={false}\n onDsChange={(event: CustomEvent<SelectValue>) => this.handleViewChange(event.detail)}\n onDsFooterAction={() => this.openDialog('create')}\n onDsOptionSubtextAction={(event: CustomEvent<SelectOptionSubtextActionDetail>) =>\n this.handleSubtextAction(event.detail)\n }\n onDsOptionAction={(event: CustomEvent<SelectOptionActionDetail>) =>\n this.handleOptionAction(event.detail)\n }\n />\n\n <ds-menu\n id={this.actionMenuId}\n anchorId={this.actionAnchorId}\n menuLabel=\"Saved view options\"\n side=\"bottom\"\n align=\"end\"\n menuWidth=\"max-content\"\n minWidth=\"0\"\n items={this.actionItems}\n open={this.actionMenuOpen}\n initialFocusVisible={this.actionMenuInitialFocusVisible}\n onDsClose={() => (this.actionMenuOpen = false)}\n onDsAfterClose={() => {\n if (this.actionMenuOpen) return;\n this.actionViewId = null;\n this.actionAnchorId = undefined;\n }}\n onDsSelect={(event: CustomEvent<MenuItemData>) => this.handleActionSelect(event)}\n />\n\n <ds-modal\n open={this.dialogOpen}\n heading={this.dialogMode === 'rename' ? 'Rename view' : 'Save as new view'}\n modalWidth=\"sm\"\n onDsClose={() => (this.dialogOpen = false)}\n onDsAfterClose={() => this.finishDialogClose()}\n >\n <ds-field\n label=\"Name\"\n fieldId={this.fieldId}\n error={this.nameError.length > 0}\n errorMessage={this.nameError}\n >\n <ds-input\n id={this.inputId}\n size=\"md\"\n placeholder=\"Enter a unique name\"\n value={this.nameDraft}\n autoFocus={true}\n onDsChange={(event: CustomEvent<string>) => {\n this.nameDraft = event.detail;\n if (this.nameError) this.nameError = '';\n }}\n onKeyDown={(event: KeyboardEvent) => {\n if (event.key === 'Enter') this.submitDialog();\n }}\n />\n </ds-field>\n\n <div slot=\"footer\" class=\"table-saved-views__dialog-actions\">\n <ds-button-filled\n label={this.dialogMode === 'rename' ? 'Rename' : 'Save'}\n size=\"md\"\n onDsClick={() => this.submitDialog()}\n />\n <ds-button-unfilled\n label=\"Cancel\"\n size=\"md\"\n onDsClick={() => (this.dialogOpen = false)}\n />\n </div>\n </ds-modal>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{p as e,H as s,c as t,h as i,a,t as r}from"./index.js";import{A as o,r as c}from"./p-DjF2m7bf.js";import{c as n,r as d,A as l}from"./p-etg-Uk1u.js";import{i as h}from"./p-BMERUCe1.js";import{d as b}from"./p-BMzn2Cmw.js";import{d as p}from"./p-6_CNVbqa.js";import{d as f}from"./p-CQjUOHiN.js";import{d as v}from"./p-Bv6FSDPR.js";import{d as m}from"./p-BVz-r3g0.js";import{d as u}from"./p-Cea7rROU.js";import{d as g}from"./p-0XTyQNRG.js";import{d as x}from"./p-DQQsS9Rx.js";import{d as y}from"./p-DW8ssbfI.js";import{r as w}from"./p-CochmPyg.js";import{T as _}from"./p-CUL5_8JM.js";function k(e){const s=[];const t=new Set;for(const i of e){if(h(i)||i.searchable===false)continue;const e=i.headerSegments??[];if(e.length>0){for(const i of e){const e=i.sortKey.trim();const a=i.dataLabel?.trim()||i.label.trim()||e;if(!e||!a||i.searchable===false||t.has(e))continue;t.add(e);s.push({id:e,label:a})}continue}const a=i.id.trim();const r=i.dataLabel?.trim()||i.header.trim()||i.headerLabel?.trim()||a;if(!a||!r||t.has(a))continue;t.add(a);s.push({id:a,label:r})}return s}function z(e,s){const t=new Map(e.map((e=>[e.id,e])));const i=[];const a=new Set;for(const e of s){if(a.has(e))continue;const s=t.get(e);if(!s)continue;a.add(e);i.push(s)}return i}function C(e,s){const t=new Set(s);return e.filter((e=>!t.has(e.id)))}function F(e,s){const t=s.trim().toLocaleLowerCase();if(!t)return[...e];return e.filter((e=>`${e.label} ${e.id}`.toLocaleLowerCase().includes(t)))}function I(e,s,t){if(s<=0)return-1;const i=e>=0&&e<s?e:0;return(i+t+s)%s}const j=()=>`@media (forced-colors: active){.sc-ds-table-search:root,.sc-ds-table-search-h,.ds-forced-colors-scope.sc-ds-table-search{--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-table-search-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-table-search-h,.ds-focus-ring.sc-ds-table-search,.ds-focus-ring-inset.sc-ds-table-search-h,.ds-focus-ring-inset.sc-ds-table-search{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-table-search-h:focus-visible,.ds-focus-ring.sc-ds-table-search: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-table-search-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-table-search{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-table-search-h:focus-visible,.ds-focus-ring-inset.sc-ds-table-search:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-table-search-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-table-search: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-table-search-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-table-search{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-table-search-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-table-search::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-table-search-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){.sc-ds-table-search:root,.sc-ds-table-search-h,.ds-forced-colors-scope.sc-ds-table-search{--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-table-search:root,.sc-ds-table-search-h,.ds-forced-colors-scope.sc-ds-table-search{--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-table-search-h,.ds-interaction-fill.sc-ds-table-search{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-table-search-h::before,.ds-interaction-fill.sc-ds-table-search::before,.ds-interaction-fill.sc-ds-table-search-h::after,.ds-interaction-fill.sc-ds-table-search::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;cursor:inherit;transition:none}.ds-interaction-fill.sc-ds-table-search-h::before,.ds-interaction-fill.sc-ds-table-search::before{z-index:1}.ds-interaction-fill.sc-ds-table-search-h::after,.ds-interaction-fill.sc-ds-table-search::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-table-search-h,.ds-interaction-fill--bordered.sc-ds-table-search{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-table-search-h::before,.ds-interaction-fill--selected.sc-ds-table-search::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-table-search-h,.ds-interaction-fill--selected.sc-ds-table-search{--ds-interaction-dot-ring:var(--ds-interaction-active)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-table-search-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-table-search:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}}.ds-interaction-fill.sc-ds-table-search-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-table-search:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill--grouped.sc-ds-table-search-h::after,.ds-interaction-fill--grouped.sc-ds-table-search::after,.ds-interaction-fill--grouped.sc-ds-table-search-h:active:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-table-search:active:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill--grouped.sc-ds-table-search-h:hover:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-table-search:hover:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}}.ds-interaction-fill--grouped.sc-ds-table-search-h,.ds-interaction-fill--grouped.sc-ds-table-search{--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-table-search-h>.ds-interaction-fill__content.sc-ds-table-search,.ds-interaction-fill.sc-ds-table-search>.ds-interaction-fill__content.sc-ds-table-search,.ds-interaction-fill__content.sc-ds-table-search{position:relative;z-index:2;cursor:inherit}.ds-interaction-fill--on-faint.sc-ds-table-search-h,.ds-interaction-fill--on-faint.sc-ds-table-search{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-table-search-h,.ds-interaction-fill--on-medium.sc-ds-table-search{--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-table-search-h,.ds-interaction-fill--on-bold.sc-ds-table-search{--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-table-search-h,.ds-interaction-fill--on-strong.sc-ds-table-search{--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-table-search-h,.ds-interaction-fill--on-translucent.sc-ds-table-search{--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-table-search-h,.ds-interaction-fill--on-inverted.sc-ds-table-search{--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-table-search-h,.ds-interaction-fill--on-media.sc-ds-table-search{--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-table-search-h,.ds-interaction-fill--on-always-dark.sc-ds-table-search{--ds-interaction-hover:var(--color-always-dark-interaction-hover);--ds-interaction-pressed:var(--color-always-dark-interaction-pressed);--ds-interaction-active:var(--color-always-dark-interaction-active-brand);--ds-focus-ring-color:var(--color-always-dark-interaction-focus)}.ds-interaction-fill--on-navigation.sc-ds-table-search-h,.ds-interaction-fill--on-navigation.sc-ds-table-search{--ds-interaction-hover:var(--color-navigation-interaction-hover);--ds-interaction-pressed:var(--color-navigation-interaction-pressed);--ds-interaction-active:var(--color-navigation-interaction-active);--ds-focus-ring-color:var(--color-navigation-interaction-focus)}@media (forced-colors: active){.ds-interaction-fill.sc-ds-table-search-h::after,.ds-interaction-fill.sc-ds-table-search::after{box-shadow:none;outline:var(--ds-interaction-border-width) solid var(--ds-forced-color-control-boundary);outline-offset:calc(-1 * var(--ds-interaction-border-width))}.ds-interaction-fill--selected.sc-ds-table-search-h::before,.ds-interaction-fill--selected.sc-ds-table-search::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-table-search-h:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill.sc-ds-table-search: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-table-search:root,.sc-ds-table-search-h,.ds-forced-colors-scope.sc-ds-table-search{--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-table-search-h,.ds-control-inactive.sc-ds-table-search{opacity:var(--effect-opacity-medium);pointer-events:none;cursor:not-allowed}@media (forced-colors: active){.ds-control-inactive.sc-ds-table-search-h,.ds-control-inactive.sc-ds-table-search{color:var(--ds-forced-color-disabled);opacity:1}}.ds-control--lg.sc-ds-table-search,.ds-control--lg.sc-ds-table-search-h,.ds-control--md.sc-ds-table-search-h,.ds-control--md.sc-ds-table-search,.ds-control--sm.sc-ds-table-search-h,.ds-control--sm.sc-ds-table-search,.ds-control--xs.sc-ds-table-search-h,.ds-control--xs.sc-ds-table-search{--ds-control-radius:var(--dimension-radius-025)}.ds-control--lg.sc-ds-table-search-h,.ds-control--lg.sc-ds-table-search{--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-table-search-h,.ds-control--md.sc-ds-table-search{--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-table-search-h,.ds-control--sm.sc-ds-table-search{--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-table-search-h,.ds-control--xs.sc-ds-table-search{--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-table-search-h,.ds-chrome-space--sm.sc-ds-table-search{--ds-chrome-padding:var(--dimension-space-050);--ds-chrome-gap:var(--dimension-space-050)}.ds-chrome-space--md.sc-ds-table-search-h,.ds-chrome-space--md.sc-ds-table-search{--ds-chrome-padding:var(--dimension-space-100);--ds-chrome-gap:var(--dimension-space-100)}.ds-chrome-space--lg.sc-ds-table-search-h,.ds-chrome-space--lg.sc-ds-table-search{--ds-chrome-padding:var(--dimension-space-200);--ds-chrome-gap:var(--dimension-space-200)}.ds-chrome-row.sc-ds-table-search-h,.ds-chrome-row.sc-ds-table-search,.ds-chrome-column.sc-ds-table-search-h,.ds-chrome-column.sc-ds-table-search,.ds-chrome-grid.sc-ds-table-search-h,.ds-chrome-grid.sc-ds-table-search{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-table-search-h,.ds-chrome-row.sc-ds-table-search{flex-direction:row;align-items:center}.ds-chrome-column.sc-ds-table-search-h,.ds-chrome-column.sc-ds-table-search{flex-direction:column}.ds-chrome-grid.sc-ds-table-search-h,.ds-chrome-grid.sc-ds-table-search{display:grid;align-items:center}.ds-control-frame.sc-ds-table-search{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-table-search{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-table-search{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-table-search{min-width:0;padding-inline:var(--ds-control-label-inset, var(--dimension-space-025))}.ds-control-label-dot.sc-ds-table-search{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-table-search{position:absolute;inset-block-start:0;inset-inline-end:0;pointer-events:none}.ds-empty-region.sc-ds-table-search{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-table-search{padding:var(--dimension-space-200)}.sc-ds-table-search:where(.ds-text-decoration,.ds-text-action).sc-ds-table-search{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-table-search{--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-table-search{--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-table-search{--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-table-search{--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-table-search:hover{text-decoration-line:underline}}@media (forced-colors: active){.ds-text-action.sc-ds-table-search{text-decoration-line:underline;text-decoration-color:currentcolor}}.ds-choice-popup.sc-ds-table-search{box-sizing:border-box;display:flex;flex-direction:column;min-width:var(--ds-choice-popup-min-inline-size, var(--dimension-menu-width-xs));max-width:min(var(--dimension-panel-width-lg), calc(100vw - var(--dimension-space-200)));max-height:calc(100vh - var(--dimension-space-200));overflow:hidden;inset:auto;margin:0;padding:0;border:0;background-color:var(--color-background-primary);border-radius:var(--dimension-radius-075);box-shadow:var(--effect-shadow-elevated-floating);color:var(--color-foreground-secondary);animation:dsChoiceFadeIn var(--effect-motion-short-2) forwards;backface-visibility:hidden;will-change:transform;text-align:start}.ds-choice-popup.sc-ds-table-search::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-table-search{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-table-search{animation:none;opacity:1}.ds-choice-popup--closing.sc-ds-table-search{opacity:0}}.ds-choice-list.sc-ds-table-search{display:flex;flex-direction:column;min-height:0;overflow-y:auto;overscroll-behavior:contain}.ds-choice-section--divided.sc-ds-table-search{border-bottom:var(--dimension-stroke-width-015) solid var(--color-border-tertiary)}ds-text.ds-choice-section__header.sc-ds-table-search{text-align:start;-webkit-user-select:none;user-select:none}.ds-choice-section--headed-after-first.sc-ds-table-search{margin-block-start:var(--dimension-space-050)}.ds-choice-item.sc-ds-table-search{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-table-search:has(.ds-choice-item__subtext){height:auto;min-height:var(--ds-control-height, var(--dimension-size-400));padding-block:var(--ds-control-padding-inline, var(--dimension-space-075));align-items:flex-start}.ds-choice-item__content.sc-ds-table-search{display:flex;flex:1;flex-direction:column;gap:var(--dimension-space-025);min-width:0}ds-text.ds-choice-item__label.sc-ds-table-search{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ds-text.ds-choice-item__subtext.sc-ds-table-search{display:-webkit-box;overflow:hidden;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.ds-choice-item__icon.sc-ds-table-search,.ds-choice-item__suffix.sc-ds-table-search{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-table-search .ds-choice-item__icon.sc-ds-table-search{color:var(--color-foreground-primary)}.ds-choice-item__tag.sc-ds-table-search{flex-shrink:0;pointer-events:none}.ds-choice-empty.sc-ds-table-search,.ds-choice-loading.sc-ds-table-search{min-height:var(--dimension-size-600);padding:var(--dimension-space-100)}.ds-choice-footer.sc-ds-table-search{position:relative;box-sizing:border-box;padding-block:var(--dimension-space-050)}.ds-choice-footer.sc-ds-table-search::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-table-search{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-table-search,.ds-choice-footer__summary-measure.sc-ds-table-search,.ds-choice-footer__clear.sc-ds-table-search ds-text.sc-ds-table-search,.ds-choice-footer__action.sc-ds-table-search ds-text.sc-ds-table-search{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-table-search,.ds-choice-footer__summary-measure.sc-ds-table-search,.ds-choice-footer__clear.sc-ds-table-search,.ds-choice-footer__action.sc-ds-table-search{white-space:nowrap}.ds-choice-footer__summary-measure.sc-ds-table-search{position:absolute;visibility:hidden;pointer-events:none}.ds-choice-footer__clear.sc-ds-table-search,.ds-choice-footer__action.sc-ds-table-search{appearance:none;display:inline-flex;align-items:center;padding:0;border:0;border-radius:var(--dimension-radius-025);background:transparent;cursor:default}@media (forced-colors: active){.ds-choice-popup.sc-ds-table-search{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-table-search::after{box-shadow:none}.ds-choice-section--divided.sc-ds-table-search{border-bottom-color:var(--ds-forced-color-content)}.ds-choice-footer.sc-ds-table-search::before{background-color:var(--ds-forced-color-content)}}.ds-control--lg.ds-control--inset.sc-ds-table-search-h,.ds-control--lg.ds-control--inset.sc-ds-table-search{--ds-control-height:calc(var(--dimension-size-500) - var(--dimension-space-050));--ds-control-padding-inline:calc(var(--dimension-space-100) - var(--dimension-space-025))}.ds-control--md.ds-control--inset.sc-ds-table-search-h,.ds-control--md.ds-control--inset.sc-ds-table-search{--ds-control-height:calc(var(--dimension-size-400) - var(--dimension-space-050));--ds-control-padding-inline:calc(var(--dimension-space-075) - var(--dimension-space-025))}.ds-control--sm.ds-control--inset.sc-ds-table-search-h,.ds-control--sm.ds-control--inset.sc-ds-table-search{--ds-control-height:calc(var(--dimension-size-300) - var(--dimension-space-050));--ds-control-padding-inline:calc(var(--dimension-space-050) - var(--dimension-space-025))}.ds-control--xs.ds-control--inset.sc-ds-table-search-h,.ds-control--xs.ds-control--inset.sc-ds-table-search{--ds-control-height:calc(var(--dimension-size-200) - var(--dimension-space-050));--ds-control-padding-inline:calc(var(--dimension-space-025) - var(--dimension-space-025))}.ds-control--lg.ds-control--inset-double.sc-ds-table-search-h,.ds-control--lg.ds-control--inset-double.sc-ds-table-search{--ds-control-height:calc(var(--dimension-size-500) - var(--dimension-space-100));--ds-control-padding-inline:calc(var(--dimension-space-100) - var(--dimension-space-050))}.ds-control--md.ds-control--inset-double.sc-ds-table-search-h,.ds-control--md.ds-control--inset-double.sc-ds-table-search{--ds-control-height:calc(var(--dimension-size-400) - var(--dimension-space-100));--ds-control-padding-inline:calc(var(--dimension-space-075) - var(--dimension-space-050))}.ds-control--sm.ds-control--inset-double.sc-ds-table-search-h,.ds-control--sm.ds-control--inset-double.sc-ds-table-search{--ds-control-height:calc(var(--dimension-size-300) - var(--dimension-space-100));--ds-control-padding-inline:calc(var(--dimension-space-050) - var(--dimension-space-050))}.ds-text--display-medium.sc-ds-table-search-h,.ds-text--display-medium.sc-ds-table-search{font-size:var(--typography-fontsize-3xl);line-height:var(--typography-lineheight-3xl)}.ds-text--display-small.sc-ds-table-search-h,.ds-text--display-small.sc-ds-table-search{font-size:var(--typography-fontsize-2xl);line-height:var(--typography-lineheight-2xl)}.ds-text--title-large.sc-ds-table-search-h,.ds-text--title-large.sc-ds-table-search{font-size:var(--typography-fontsize-xl);line-height:var(--typography-lineheight-xl)}.ds-text--title-medium.sc-ds-table-search-h,.ds-text--title-medium.sc-ds-table-search{font-size:var(--typography-fontsize-lg);line-height:var(--typography-lineheight-lg)}.ds-text--title-small.sc-ds-table-search-h,.ds-text--title-small.sc-ds-table-search{font-size:var(--typography-fontsize-md);line-height:var(--typography-lineheight-md)}.ds-text--body-large.sc-ds-table-search-h,.ds-text--body-large.sc-ds-table-search{font-size:var(--typography-fontsize-lg);line-height:var(--typography-lineheight-lg)}.ds-text--body-medium.sc-ds-table-search-h,.ds-text--body-medium.sc-ds-table-search{font-size:var(--typography-fontsize-md);line-height:var(--typography-lineheight-md)}.ds-text--body-small.sc-ds-table-search-h,.ds-text--body-small.sc-ds-table-search{font-size:var(--typography-fontsize-sm);line-height:var(--typography-lineheight-sm)}.ds-text--caption.sc-ds-table-search-h,.ds-text--caption.sc-ds-table-search{font-size:var(--typography-fontsize-xs);line-height:var(--typography-lineheight-xs);text-transform:uppercase}.ds-text--display-medium.ds-text--emphasis.sc-ds-table-search-h,.ds-text--display-small.ds-text--emphasis.sc-ds-table-search-h,.ds-text--display-medium.ds-text--emphasis.sc-ds-table-search,.ds-text--display-small.ds-text--emphasis.sc-ds-table-search{font-weight:var(--typography-weight-bold);letter-spacing:var(--typography-letterspacing-negative-double)}.ds-text--display-medium.ds-text--regular.sc-ds-table-search-h,.ds-text--display-small.ds-text--regular.sc-ds-table-search-h,.ds-text--display-medium.ds-text--regular.sc-ds-table-search,.ds-text--display-small.ds-text--regular.sc-ds-table-search{font-weight:var(--typography-weight-semibold);letter-spacing:var(--typography-letterspacing-negative)}.ds-text--title-large.ds-text--emphasis.sc-ds-table-search-h,.ds-text--title-large.ds-text--emphasis.sc-ds-table-search{font-weight:var(--typography-weight-semibold);letter-spacing:var(--typography-letterspacing-negative-double)}.ds-text--title-large.ds-text--regular.sc-ds-table-search-h,.ds-text--title-large.ds-text--regular.sc-ds-table-search{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-negative)}.ds-text--title-medium.ds-text--emphasis.sc-ds-table-search-h,.ds-text--title-small.ds-text--emphasis.sc-ds-table-search-h,.ds-text--title-medium.ds-text--emphasis.sc-ds-table-search,.ds-text--title-small.ds-text--emphasis.sc-ds-table-search{font-weight:var(--typography-weight-semibold);letter-spacing:var(--typography-letterspacing-negative)}.ds-text--title-medium.ds-text--regular.sc-ds-table-search-h,.ds-text--title-small.ds-text--regular.sc-ds-table-search-h,.ds-text--title-medium.ds-text--regular.sc-ds-table-search,.ds-text--title-small.ds-text--regular.sc-ds-table-search{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-negative-half)}.ds-text--body-large.ds-text--emphasis.sc-ds-table-search-h,.ds-text--body-medium.ds-text--emphasis.sc-ds-table-search-h,.ds-text--body-large.ds-text--emphasis.sc-ds-table-search,.ds-text--body-medium.ds-text--emphasis.sc-ds-table-search{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-negative)}.ds-text--body-large.ds-text--regular.sc-ds-table-search-h,.ds-text--body-medium.ds-text--regular.sc-ds-table-search-h,.ds-text--body-large.ds-text--regular.sc-ds-table-search,.ds-text--body-medium.ds-text--regular.sc-ds-table-search{font-weight:var(--typography-weight-regular);letter-spacing:var(--typography-letterspacing-negative-half)}.ds-text--body-small.ds-text--emphasis.sc-ds-table-search-h,.ds-text--body-small.ds-text--emphasis.sc-ds-table-search{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-negative-half)}.ds-text--body-small.ds-text--regular.sc-ds-table-search-h,.ds-text--body-small.ds-text--regular.sc-ds-table-search{font-weight:var(--typography-weight-regular);letter-spacing:var(--typography-letterspacing-none)}.ds-text--caption.ds-text--emphasis.sc-ds-table-search-h,.ds-text--caption.ds-text--emphasis.sc-ds-table-search{font-weight:var(--typography-weight-semibold);letter-spacing:var(--typography-letterspacing-positive)}.ds-text--caption.ds-text--regular.sc-ds-table-search-h,.ds-text--caption.ds-text--regular.sc-ds-table-search{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-positive)}.ds-visually-hidden.sc-ds-table-search-h,.ds-visually-hidden.sc-ds-table-search{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.table-search-host.sc-ds-table-search-h{display:inline-flex;box-sizing:border-box;inline-size:100%;min-inline-size:0;--ds-table-search-foreground:var(--color-foreground-primary);--ds-table-search-adornment:var(--color-foreground-secondary);--ds-table-search-placeholder:var(--color-foreground-secondary);--ds-table-search-placeholder-active:var(--color-foreground-quaternary);--ds-table-search-border:var(--color-border-secondary)}.table-search__control.sc-ds-table-search{inline-size:100%;min-inline-size:0;padding-inline-end:var(--dimension-space-050);overflow:hidden;border:0;background:transparent;color:var(--ds-table-search-foreground);--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--ds-table-search-border)}.table-search__control.sc-ds-table-search:focus-within{--ds-interaction-border-width:var(--dimension-stroke-width-018);--ds-interaction-border-color:var(--color-border-bold-brand)}.ds-control-inactive.sc-ds-table-search-h .table-search__control.sc-ds-table-search::after{background:transparent}.table-search__icon.sc-ds-table-search,.table-search__actions.sc-ds-table-search{position:relative;z-index:2;flex:none}.table-search__icon.sc-ds-table-search{color:var(--ds-table-search-adornment)}.table-search__editor.sc-ds-table-search{position:relative;z-index:2;display:flex;flex:1 1 auto;align-items:center;min-inline-size:0;block-size:100%;gap:var(--dimension-space-050);overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.table-search__editor.sc-ds-table-search::-webkit-scrollbar{display:none}.table-search__chip.sc-ds-table-search{flex:none;max-inline-size:var(--dimension-panel-width-2xs)}.table-search__input.sc-ds-table-search{appearance:none;box-sizing:border-box;flex:1 0 var(--dimension-size-600);min-inline-size:var(--dimension-size-600);block-size:100%;margin:0;padding:0;border:0;outline:0;background:transparent;color:var(--ds-table-search-foreground);text-overflow:ellipsis}.table-search__input.sc-ds-table-search::-webkit-search-cancel-button,.table-search__input.sc-ds-table-search::-webkit-search-decoration{display:none}.table-search__input.sc-ds-table-search::placeholder{color:var(--ds-table-search-placeholder)}.table-search__input.sc-ds-table-search:focus::placeholder{color:var(--ds-table-search-placeholder-active)}.table-search__actions.sc-ds-table-search{display:flex;align-items:center;gap:var(--dimension-space-050)}.table-search__clear.sc-ds-table-search,.table-search__slash.sc-ds-table-search,.table-search__action-divider.sc-ds-table-search{flex:none}.table-search__slash.sc-ds-table-search{color:var(--ds-table-search-adornment)}.table-search__popup.sc-ds-table-search{--ds-choice-popup-min-inline-size:var(--dimension-menu-width-xs)}.table-search__list.sc-ds-table-search{padding:var(--dimension-space-050)}.table-search__option.sc-ds-table-search{flex:none;inline-size:100%}@media (forced-colors: active){.table-search__control.sc-ds-table-search:focus-within::after{outline-color:var(--ds-forced-color-selected)}}`;let T=0;const $=e(class e extends s{constructor(e){super();if(e!==false){this.__registerHost()}this.dsChange=t(this,"dsChange",3);this.dsFieldsChange=t(this,"dsFieldsChange",3);this.dsClear=t(this,"dsClear",3);this.value="";this.columns=[];this.selectedFieldIds=[];this.placeholder="Search";this.ariaLabel="Search table";this.clearLabel="Clear search";this.fieldMenuLabel="Choose search fields";this.isInactive=false;this.menuOpen=false;this.menuQuery="";this.activeIndex=0;this.focusRingVisible=false;this.position={x:0,y:0};this.positionReady=false;this.availableHeight=null;this.announcement="";this.componentId=`ds-table-search-${++T}`;this.inputId=`${this.componentId}-input`;this.listboxId=`${this.componentId}-listbox`;this.descriptionId=`${this.componentId}-description`;this.inputEl=null;this.controlEl=null;this.popupEl=null;this.positionController=new o({getAnchor:()=>this.controlEl,getPopup:()=>this.popupEl,getOwnerDocument:()=>this.el.ownerDocument,measure:(e,s)=>{if(!this.menuOpen||!s.isConnected)return null;const t=w(_.space050,_.space050);s.style.minWidth=`max(var(--ds-choice-popup-min-inline-size, ${_.menuWidthXs}), ${n(e.offsetWidth,t)}px)`;const i=e.getBoundingClientRect();return{anchorRect:i,popupWidth:s.offsetWidth,popupHeight:s.offsetHeight,side:"bottom",align:"start",sideOffsetPx:t,alignOffsetPx:d({align:"start",alignOffsetPx:0,sectionInsetPx:t}),viewportPadPx:t,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight,collisionRect:c(e)}},apply:({x:e,y:s,availableHeight:t})=>{this.position={x:e,y:s};this.availableHeight=t},onReady:()=>{this.positionReady=true},topLayer:true,liveUpdate:"frame",observeResize:true,observeAnchorMotion:true});this.interactionController=new l({getAnchor:()=>this.controlEl,getPopup:()=>this.popupEl,getOwnerDocument:()=>this.el.ownerDocument,onOutsideActivation:()=>this.closeMenu()})}disconnectedCallback(){this.closeMenu()}syncAvailableFields(){const e=this.availableFields.length;if(e===0){this.closeMenu();return}if(this.activeIndex>=e)this.activeIndex=e-1}syncInactive(e){if(e)this.closeMenu()}async setFocus(){this.inputEl?.focus()}get selectedFields(){return z(this.searchFields,this.selectedFieldIds)}get availableFields(){return C(this.searchFields,this.selectedFieldIds)}get visibleFields(){return F(this.availableFields,this.menuQuery)}get searchFields(){return k(this.columns)}get activeOptionId(){return this.menuOpen&&this.activeIndex>=0?`${this.componentId}-option-${this.activeIndex}`:undefined}openMenu(e){if(this.isInactive||this.menuOpen||this.availableFields.length===0)return;this.menuQuery="";if(this.inputEl)this.inputEl.value="";this.activeIndex=0;this.focusRingVisible=e;this.positionReady=false;this.menuOpen=true;requestAnimationFrame((()=>{if(!this.menuOpen)return;this.interactionController.connect();this.positionController.observe();this.positionController.schedule()}))}closeMenu(){if(!this.menuOpen&&!this.popupEl)return;if(this.popupEl?.matches(":popover-open"))this.popupEl.hidePopover();this.positionController.unobserve();this.interactionController.disconnect();this.popupEl=null;this.positionReady=false;this.availableHeight=null;this.menuOpen=false;this.menuQuery=""}handleInput(e){const s=e.target.value;if(this.menuOpen){this.menuQuery=s;this.activeIndex=F(this.availableFields,s).length?0:-1;this.focusRingVisible=false;this.positionController.schedule();return}this.dsChange.emit(s)}selectField(e){this.dsFieldsChange.emit({selectedFieldIds:[...this.selectedFieldIds,e.id]});this.announcement=`${e.label} search field added.`;this.closeMenu();requestAnimationFrame((()=>this.inputEl?.focus({preventScroll:true})))}removeLastField(){const e=this.selectedFields;const s=e[e.length-1];if(!s)return;this.dsFieldsChange.emit({selectedFieldIds:this.selectedFieldIds.filter((e=>e!==s.id))});this.announcement=`${s.label} search field removed.`}removeField(e){this.dsFieldsChange.emit({selectedFieldIds:this.selectedFieldIds.filter((s=>s!==e.id))});this.announcement=`${e.label} search field removed.`;requestAnimationFrame((()=>this.inputEl?.focus({preventScroll:true})))}clearSearch(){if(this.value)this.dsChange.emit("");if(this.selectedFieldIds.length)this.dsFieldsChange.emit({selectedFieldIds:[]});this.dsClear.emit();this.announcement="Search cleared.";this.closeMenu();requestAnimationFrame((()=>this.inputEl?.focus({preventScroll:true})))}handleKeyDown(e){if(e.key==="/"&&!this.menuOpen&&!e.altKey&&!e.ctrlKey&&!e.metaKey){e.preventDefault();this.openMenu(true);return}if(e.key==="Backspace"&&this.menuOpen&&this.menuQuery.length===0){e.preventDefault();this.closeMenu();return}if(e.key==="Backspace"&&this.value.length===0){if(this.selectedFields.length){e.preventDefault();this.removeLastField()}return}if(!this.menuOpen)return;if(e.key==="Escape"){e.preventDefault();this.closeMenu();return}if(e.key==="ArrowDown"||e.key==="ArrowUp"){e.preventDefault();this.focusRingVisible=true;this.activeIndex=I(this.activeIndex,this.visibleFields.length,e.key==="ArrowDown"?1:-1);this.el.querySelector(`#${CSS.escape(this.activeOptionId??"")}`)?.scrollIntoView({block:"nearest"});return}if(e.key==="Enter"){const s=this.visibleFields[this.activeIndex];if(!s)return;e.preventDefault();this.selectField(s);return}if(e.key==="Tab")this.closeMenu()}render(){const e=this.selectedFields;const s=this.availableFields;const t=this.visibleFields;const r=this.menuOpen?this.menuQuery:this.value;const o=this.value.length>0||e.length>0;const c=e.length?`Search limited to ${e.map((e=>e.label)).join(" or ")}.`:"Search includes every available table field. Type slash to choose fields.";const n={position:"fixed",left:"0",top:"0",transform:`translate(${Math.round(this.position.x)}px, ${Math.round(this.position.y)}px)`,zIndex:"var(--dimension-z-index-floating)",visibility:this.positionReady?"visible":"hidden"};if(this.availableHeight!==null){n["max-height"]=`${Math.floor(this.availableHeight)}px`}return i(a,{key:"13585b279a0702ce769cc30c90901ed051851198",class:{"table-search-host":true,"ds-control--md":true,"ds-control-inactive":this.isInactive},"data-filled":o?"":undefined,"data-expanded":this.menuOpen?"":undefined},i("div",{key:"aa03b12ed4354e70fb02e8805945f2f57ce2d15d",ref:e=>{this.controlEl=e??null},class:"table-search__control ds-control-frame ds-control--md ds-interaction-fill"},i("span",{key:"cc4610915e159d7c4a6ffd8ab92971611772d162",class:"table-search__icon ds-control-icon-box ds-interaction-fill__content","aria-hidden":"true"},i("ds-icon",{key:"62b6a953aeac492d63048c29025737b63e77ab78",name:"MagnifyingGlass",size:"md",color:"inherit"})),i("div",{key:"8c63a2b646caa93c9cc7eee5eacd5fe0586e20c2",class:"table-search__editor ds-interaction-fill__content"},e.map((e=>i("ds-chip",{class:"table-search__chip",key:e.id,label:e.label,size:"md",state:"default",isInset:true,insetDepth:"double",isInactive:this.isInactive,onDsRemove:()=>this.removeField(e)}))),i("input",{key:"44c7777b353af1519814f47a7eb7b73c0f973a4b",ref:e=>{this.inputEl=e??null},id:this.inputId,class:"table-search__input ds-text--body-medium ds-text--regular",type:"search",role:"combobox",value:r,placeholder:this.placeholder,disabled:this.isInactive,"aria-label":this.ariaLabel,"aria-describedby":this.descriptionId,"aria-haspopup":"listbox","aria-expanded":String(this.menuOpen),"aria-controls":this.menuOpen?this.listboxId:undefined,"aria-activedescendant":this.activeOptionId,"aria-keyshortcuts":"/",autoComplete:"off",autoCapitalize:"none",autoCorrect:"off",spellcheck:false,onInput:e=>this.handleInput(e),onKeyDown:e=>this.handleKeyDown(e)})),this.searchFields.length>0&&i("div",{key:"f95f5207858ceb300b24ce64b6e629306579db6c",class:"table-search__actions ds-interaction-fill__content"},r.length>0&&!this.isInactive&&i("ds-button-unfilled",{key:"0d3fad8a08c7accd8cf0555b4f57b522e753d6bc",class:"table-search__clear",variant:"icon",size:"sm",icon:"CrossCircle",hasBorder:false,rounded:true,ariaLabel:this.clearLabel,onDsClick:()=>this.clearSearch()}),r.length>0&&!this.isInactive&&i("ds-divider",{key:"f2f3c02956599ce4368c7e7223f3c64a0e4a939d",class:"table-search__action-divider",orientation:"vertical",length:"var(--dimension-size-200)"}),i("ds-button-unfilled",{key:"0c6b5a245476ff97145ab34db0328dff99c2050b",class:"table-search__slash",variant:"label",size:"md",label:"/",labelEmphasis:false,isInset:true,insetDepth:"double",hasBorder:false,ariaLabel:this.fieldMenuLabel,focusTabIndex:-1,haspopup:"listbox",controls:this.menuOpen?this.listboxId:undefined,expanded:this.menuOpen,isInactive:this.isInactive||s.length===0,onMouseDown:e=>e.preventDefault(),onDsClick:()=>{this.inputEl?.focus({preventScroll:true});this.openMenu(false)}}))),i("span",{key:"65a1be5684207cdce818cc6a940dc97ff2f89b4f",id:this.descriptionId,class:"ds-visually-hidden"},c),i("span",{key:"a8ee6c3a260a40456186ea915b629c3c0d58e1e5",class:"ds-visually-hidden","aria-live":"polite"},this.announcement),this.menuOpen&&i("div",{key:"3600c5576b6c1b551c4f90c5058c18d8e4a2a142",popover:"manual",ref:e=>{this.popupEl=e??null},class:"table-search__popup ds-choice-popup",style:n},i("div",{key:"fd4f4bb867ba2a7cb1907d474303b1a11545bf8d",id:this.listboxId,class:"table-search__list ds-choice-list",role:"listbox","aria-label":this.fieldMenuLabel},t.map(((e,s)=>{const t=s===this.activeIndex;return i("div",{id:`${this.componentId}-option-${s}`,key:e.id,class:{"table-search__option":true,"ds-choice-item":true,"ds-control-frame":true,"ds-control--md":true,"ds-focus-ring-inset":true,"ds-focus-ring--visible":t&&this.focusRingVisible,"ds-interaction-fill":true,"ds-interaction-fill--selected":t},role:"option","aria-selected":String(t),onMouseDown:e=>e.preventDefault(),onMouseMove:()=>{this.focusRingVisible=false;this.activeIndex=s},onClick:()=>this.selectField(e)},i("ds-text",{class:"ds-choice-item__label ds-control-label-box ds-interaction-fill__content",as:"span",variant:"text-body-medium",color:t?"primary":"secondary"},e.label))})),t.length===0&&i("div",{key:"d71b036fbc57f029d4cc44266e3a61ee7f33f6ec",class:"table-search__empty ds-choice-empty ds-empty-region"},i("ds-empty-state",{key:"2ff57f0a81221da6f7e65abb5e2435931d10aa22",body:"No matching data points"})))))}get el(){return this}static get watchers(){return{columns:[{syncAvailableFields:0}],selectedFieldIds:[{syncAvailableFields:0}],isInactive:[{syncInactive:0}]}}static get style(){return j()}},[2,"ds-table-search",{value:[1],columns:[16],selectedFieldIds:[16],placeholder:[1],ariaLabel:[1,"aria-label"],clearLabel:[1,"clear-label"],fieldMenuLabel:[1,"field-menu-label"],isInactive:[4,"is-inactive"],menuOpen:[32],menuQuery:[32],activeIndex:[32],focusRingVisible:[32],position:[32],positionReady:[32],availableHeight:[32],announcement:[32],setFocus:[64]},undefined,{columns:[{syncAvailableFields:0}],selectedFieldIds:[{syncAvailableFields:0}],isInactive:[{syncInactive:0}]}]);function S(){if(typeof customElements==="undefined"){return}const e=["ds-table-search","ds-badge","ds-button-unfilled","ds-chip","ds-divider","ds-empty-state","ds-icon","ds-loader","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-table-search":if(!customElements.get(r(e))){customElements.define(r(e),$)}break;case"ds-badge":if(!customElements.get(r(e))){b()}break;case"ds-button-unfilled":if(!customElements.get(r(e))){p()}break;case"ds-chip":if(!customElements.get(r(e))){f()}break;case"ds-divider":if(!customElements.get(r(e))){v()}break;case"ds-empty-state":if(!customElements.get(r(e))){m()}break;case"ds-icon":if(!customElements.get(r(e))){u()}break;case"ds-loader":if(!customElements.get(r(e))){g()}break;case"ds-text":if(!customElements.get(r(e))){x()}break;case"ds-tooltip":if(!customElements.get(r(e))){y()}break}}))}S();const A=$;const D=S;export{A as DsTableSearch,D as defineCustomElement};
1
+ import{p as e,H as s,c as t,h as i,a,t as r}from"./index.js";import{A as o,r as c}from"./p-DjF2m7bf.js";import{c as n,r as d,A as l}from"./p-etg-Uk1u.js";import{i as h}from"./p-BMERUCe1.js";import{d as b}from"./p-rSC7ZUpy.js";import{d as p}from"./p--yvQzZoO.js";import{d as f}from"./p-BfVlFinS.js";import{d as v}from"./p-DbDYEEWq.js";import{d as u}from"./p-BFHWoNH3.js";import{d as m}from"./p-Cea7rROU.js";import{d as g}from"./p-0XTyQNRG.js";import{d as x}from"./p-aMyflqva.js";import{d as y}from"./p-CN8PQLZu.js";import{r as w}from"./p-CochmPyg.js";import{T as _}from"./p-CUL5_8JM.js";function k(e){const s=[];const t=new Set;for(const i of e){if(h(i)||i.searchable===false)continue;const e=i.headerSegments??[];if(e.length>0){for(const i of e){const e=i.sortKey.trim();const a=i.dataLabel?.trim()||i.label.trim()||e;if(!e||!a||i.searchable===false||t.has(e))continue;t.add(e);s.push({id:e,label:a})}continue}const a=i.id.trim();const r=i.dataLabel?.trim()||i.header.trim()||i.headerLabel?.trim()||a;if(!a||!r||t.has(a))continue;t.add(a);s.push({id:a,label:r})}return s}function z(e,s){const t=new Map(e.map((e=>[e.id,e])));const i=[];const a=new Set;for(const e of s){if(a.has(e))continue;const s=t.get(e);if(!s)continue;a.add(e);i.push(s)}return i}function C(e,s){const t=new Set(s);return e.filter((e=>!t.has(e.id)))}function F(e,s){const t=s.trim().toLocaleLowerCase();if(!t)return[...e];return e.filter((e=>`${e.label} ${e.id}`.toLocaleLowerCase().includes(t)))}function I(e,s,t){if(s<=0)return-1;const i=e>=0&&e<s?e:0;return(i+t+s)%s}const T=()=>`@media (forced-colors: active){.sc-ds-table-search:root,.sc-ds-table-search-h,.ds-forced-colors-scope.sc-ds-table-search{--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-table-search-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-table-search-h,.ds-focus-ring.sc-ds-table-search,.ds-focus-ring-inset.sc-ds-table-search-h,.ds-focus-ring-inset.sc-ds-table-search{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-table-search-h:focus-visible,.ds-focus-ring.sc-ds-table-search: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-table-search-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-table-search{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-table-search-h:focus-visible,.ds-focus-ring-inset.sc-ds-table-search:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-table-search-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-table-search: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-table-search-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-table-search{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-table-search-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-table-search::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-table-search-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){.sc-ds-table-search:root,.sc-ds-table-search-h,.ds-forced-colors-scope.sc-ds-table-search{--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-table-search:root,.sc-ds-table-search-h,.ds-forced-colors-scope.sc-ds-table-search{--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-table-search-h,.ds-interaction-fill.sc-ds-table-search{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-table-search-h::before,.ds-interaction-fill.sc-ds-table-search::before,.ds-interaction-fill.sc-ds-table-search-h::after,.ds-interaction-fill.sc-ds-table-search::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;cursor:inherit;transition:none}.ds-interaction-fill.sc-ds-table-search-h::before,.ds-interaction-fill.sc-ds-table-search::before{z-index:1}.ds-interaction-fill.sc-ds-table-search-h::after,.ds-interaction-fill.sc-ds-table-search::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-table-search-h,.ds-interaction-fill--bordered.sc-ds-table-search{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-table-search-h::before,.ds-interaction-fill--selected.sc-ds-table-search::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-table-search-h,.ds-interaction-fill--selected.sc-ds-table-search{--ds-interaction-dot-ring:var(--ds-interaction-active)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-table-search-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-table-search:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}}.ds-interaction-fill.sc-ds-table-search-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-table-search:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill--grouped.sc-ds-table-search-h::after,.ds-interaction-fill--grouped.sc-ds-table-search::after,.ds-interaction-fill--grouped.sc-ds-table-search-h:active:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-table-search:active:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill--grouped.sc-ds-table-search-h:hover:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-table-search:hover:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}}.ds-interaction-fill--grouped.sc-ds-table-search-h,.ds-interaction-fill--grouped.sc-ds-table-search{--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-table-search-h>.ds-interaction-fill__content.sc-ds-table-search,.ds-interaction-fill.sc-ds-table-search>.ds-interaction-fill__content.sc-ds-table-search,.ds-interaction-fill__content.sc-ds-table-search{position:relative;z-index:2;cursor:inherit}.ds-interaction-fill--on-faint.sc-ds-table-search-h,.ds-interaction-fill--on-faint.sc-ds-table-search{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-table-search-h,.ds-interaction-fill--on-medium.sc-ds-table-search{--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-table-search-h,.ds-interaction-fill--on-bold.sc-ds-table-search{--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-table-search-h,.ds-interaction-fill--on-strong.sc-ds-table-search{--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-table-search-h,.ds-interaction-fill--on-translucent.sc-ds-table-search{--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-table-search-h,.ds-interaction-fill--on-inverted.sc-ds-table-search{--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-table-search-h,.ds-interaction-fill--on-media.sc-ds-table-search{--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-table-search-h,.ds-interaction-fill--on-always-dark.sc-ds-table-search{--ds-interaction-hover:var(--color-always-dark-interaction-hover);--ds-interaction-pressed:var(--color-always-dark-interaction-pressed);--ds-interaction-active:var(--color-always-dark-interaction-active-brand);--ds-focus-ring-color:var(--color-always-dark-interaction-focus)}.ds-interaction-fill--on-navigation.sc-ds-table-search-h,.ds-interaction-fill--on-navigation.sc-ds-table-search{--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-table-search-h:not(:disabled)::after,.ds-interaction-fill.ds-interaction-fill--surface-open.sc-ds-table-search:not(:disabled)::after{background:var(--ds-interaction-pressed)}@media (forced-colors: active){.ds-interaction-fill.sc-ds-table-search-h::after,.ds-interaction-fill.sc-ds-table-search::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-table-search-h:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill--surface-open.sc-ds-table-search: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-table-search-h::before,.ds-interaction-fill--selected.sc-ds-table-search::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-table-search-h:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill.sc-ds-table-search: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-table-search:root,.sc-ds-table-search-h,.ds-forced-colors-scope.sc-ds-table-search{--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-table-search-h,.ds-control-inactive.sc-ds-table-search{opacity:var(--effect-opacity-medium);pointer-events:none;cursor:not-allowed}@media (forced-colors: active){.ds-control-inactive.sc-ds-table-search-h,.ds-control-inactive.sc-ds-table-search{color:var(--ds-forced-color-disabled);opacity:1}}.ds-control--lg.sc-ds-table-search,.ds-control--lg.sc-ds-table-search-h,.ds-control--md.sc-ds-table-search-h,.ds-control--md.sc-ds-table-search,.ds-control--sm.sc-ds-table-search-h,.ds-control--sm.sc-ds-table-search,.ds-control--xs.sc-ds-table-search-h,.ds-control--xs.sc-ds-table-search{--ds-control-radius:var(--dimension-radius-025)}.ds-control--lg.sc-ds-table-search-h,.ds-control--lg.sc-ds-table-search{--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-table-search-h,.ds-control--md.sc-ds-table-search{--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-table-search-h,.ds-control--sm.sc-ds-table-search{--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-table-search-h,.ds-control--xs.sc-ds-table-search{--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-table-search-h,.ds-chrome-space--sm.sc-ds-table-search{--ds-chrome-padding:var(--dimension-space-050);--ds-chrome-gap:var(--dimension-space-050)}.ds-chrome-space--md.sc-ds-table-search-h,.ds-chrome-space--md.sc-ds-table-search{--ds-chrome-padding:var(--dimension-space-100);--ds-chrome-gap:var(--dimension-space-100)}.ds-chrome-space--lg.sc-ds-table-search-h,.ds-chrome-space--lg.sc-ds-table-search{--ds-chrome-padding:var(--dimension-space-200);--ds-chrome-gap:var(--dimension-space-200)}.ds-chrome-row.sc-ds-table-search-h,.ds-chrome-row.sc-ds-table-search,.ds-chrome-column.sc-ds-table-search-h,.ds-chrome-column.sc-ds-table-search,.ds-chrome-grid.sc-ds-table-search-h,.ds-chrome-grid.sc-ds-table-search{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-table-search-h,.ds-chrome-row.sc-ds-table-search{flex-direction:row;align-items:center}.ds-chrome-column.sc-ds-table-search-h,.ds-chrome-column.sc-ds-table-search{flex-direction:column}.ds-chrome-grid.sc-ds-table-search-h,.ds-chrome-grid.sc-ds-table-search{display:grid;align-items:center}.ds-control-frame.sc-ds-table-search{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-table-search{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-table-search{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-table-search{min-width:0;padding-inline:var(--ds-control-label-inset, var(--dimension-space-025))}.ds-control-label-dot.sc-ds-table-search{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-table-search{position:absolute;inset-block-start:0;inset-inline-end:0;pointer-events:none}.ds-empty-region.sc-ds-table-search{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-table-search{padding:var(--dimension-space-200)}.sc-ds-table-search:where(.ds-text-decoration,.ds-text-action).sc-ds-table-search{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-table-search{--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-table-search{--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-table-search{--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-table-search{--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-table-search:hover{text-decoration-line:underline}}@media (forced-colors: active){.ds-text-action.sc-ds-table-search{text-decoration-line:underline;text-decoration-color:currentcolor}}.ds-choice-popup.sc-ds-table-search{box-sizing:border-box;display:flex;flex-direction:column;min-width:var(--ds-choice-popup-min-inline-size, var(--dimension-menu-width-xs));max-width:min(var(--dimension-panel-width-lg), calc(100vw - var(--dimension-space-200)));max-height:calc(100vh - var(--dimension-space-200));overflow:hidden;inset:auto;margin:0;padding:0;border:0;background-color:var(--color-background-primary);border-radius:var(--dimension-radius-075);box-shadow:var(--effect-shadow-elevated-floating);color:var(--color-foreground-secondary);animation:dsChoiceFadeIn var(--effect-motion-short-2) forwards;backface-visibility:hidden;will-change:transform;text-align:start}.ds-choice-popup.sc-ds-table-search::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-table-search{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-table-search{animation:none;opacity:1}.ds-choice-popup--closing.sc-ds-table-search{opacity:0}}.ds-choice-list.sc-ds-table-search{display:flex;flex-direction:column;min-height:0;overflow-y:auto;overscroll-behavior:contain}.ds-choice-section--divided.sc-ds-table-search{border-bottom:var(--dimension-stroke-width-015) solid var(--color-border-tertiary)}ds-text.ds-choice-section__header.sc-ds-table-search{text-align:start;-webkit-user-select:none;user-select:none}.ds-choice-section--headed-after-first.sc-ds-table-search{margin-block-start:var(--dimension-space-050)}.ds-choice-item.sc-ds-table-search{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-table-search:has(.ds-choice-item__subtext){height:auto;min-height:var(--ds-control-height, var(--dimension-size-400));padding-block:var(--ds-control-padding-inline, var(--dimension-space-075));align-items:flex-start}.ds-choice-item__content.sc-ds-table-search{display:flex;flex:1;flex-direction:column;gap:var(--dimension-space-025);min-width:0}ds-text.ds-choice-item__label.sc-ds-table-search{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ds-text.ds-choice-item__subtext.sc-ds-table-search{display:-webkit-box;overflow:hidden;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.ds-choice-item__icon.sc-ds-table-search,.ds-choice-item__suffix.sc-ds-table-search{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-table-search .ds-choice-item__icon.sc-ds-table-search{color:var(--color-foreground-primary)}.ds-choice-item__tag.sc-ds-table-search{flex-shrink:0;pointer-events:none}.ds-choice-empty.sc-ds-table-search,.ds-choice-loading.sc-ds-table-search{min-height:var(--dimension-size-600);padding:var(--dimension-space-100)}.ds-choice-footer.sc-ds-table-search{position:relative;box-sizing:border-box;padding-block:var(--dimension-space-050)}.ds-choice-footer.sc-ds-table-search::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-table-search{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-table-search,.ds-choice-footer__summary-measure.sc-ds-table-search,.ds-choice-footer__clear.sc-ds-table-search ds-text.sc-ds-table-search,.ds-choice-footer__action.sc-ds-table-search ds-text.sc-ds-table-search{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-table-search,.ds-choice-footer__summary-measure.sc-ds-table-search,.ds-choice-footer__clear.sc-ds-table-search,.ds-choice-footer__action.sc-ds-table-search{white-space:nowrap}.ds-choice-footer__summary-measure.sc-ds-table-search{position:absolute;visibility:hidden;pointer-events:none}.ds-choice-footer__clear.sc-ds-table-search,.ds-choice-footer__action.sc-ds-table-search{appearance:none;display:inline-flex;align-items:center;padding:0;border:0;border-radius:var(--dimension-radius-025);background:transparent;cursor:default}@media (forced-colors: active){.ds-choice-popup.sc-ds-table-search{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-table-search::after{box-shadow:none}.ds-choice-section--divided.sc-ds-table-search{border-bottom-color:var(--ds-forced-color-content)}.ds-choice-footer.sc-ds-table-search::before{background-color:var(--ds-forced-color-content)}}.ds-control--lg.ds-control--inset.sc-ds-table-search-h,.ds-control--lg.ds-control--inset.sc-ds-table-search{--ds-control-height:calc(var(--dimension-size-500) - var(--dimension-space-050));--ds-control-padding-inline:calc(var(--dimension-space-100) - var(--dimension-space-025))}.ds-control--md.ds-control--inset.sc-ds-table-search-h,.ds-control--md.ds-control--inset.sc-ds-table-search{--ds-control-height:calc(var(--dimension-size-400) - var(--dimension-space-050));--ds-control-padding-inline:calc(var(--dimension-space-075) - var(--dimension-space-025))}.ds-control--sm.ds-control--inset.sc-ds-table-search-h,.ds-control--sm.ds-control--inset.sc-ds-table-search{--ds-control-height:calc(var(--dimension-size-300) - var(--dimension-space-050));--ds-control-padding-inline:calc(var(--dimension-space-050) - var(--dimension-space-025))}.ds-control--xs.ds-control--inset.sc-ds-table-search-h,.ds-control--xs.ds-control--inset.sc-ds-table-search{--ds-control-height:calc(var(--dimension-size-200) - var(--dimension-space-050));--ds-control-padding-inline:calc(var(--dimension-space-025) - var(--dimension-space-025))}.ds-control--lg.ds-control--inset-double.sc-ds-table-search-h,.ds-control--lg.ds-control--inset-double.sc-ds-table-search{--ds-control-height:calc(var(--dimension-size-500) - var(--dimension-space-100));--ds-control-padding-inline:calc(var(--dimension-space-100) - var(--dimension-space-050))}.ds-control--md.ds-control--inset-double.sc-ds-table-search-h,.ds-control--md.ds-control--inset-double.sc-ds-table-search{--ds-control-height:calc(var(--dimension-size-400) - var(--dimension-space-100));--ds-control-padding-inline:calc(var(--dimension-space-075) - var(--dimension-space-050))}.ds-control--sm.ds-control--inset-double.sc-ds-table-search-h,.ds-control--sm.ds-control--inset-double.sc-ds-table-search{--ds-control-height:calc(var(--dimension-size-300) - var(--dimension-space-100));--ds-control-padding-inline:calc(var(--dimension-space-050) - var(--dimension-space-050))}.ds-text--display-medium.sc-ds-table-search-h,.ds-text--display-medium.sc-ds-table-search{font-size:var(--typography-fontsize-3xl);line-height:var(--typography-lineheight-3xl)}.ds-text--display-small.sc-ds-table-search-h,.ds-text--display-small.sc-ds-table-search{font-size:var(--typography-fontsize-2xl);line-height:var(--typography-lineheight-2xl)}.ds-text--title-large.sc-ds-table-search-h,.ds-text--title-large.sc-ds-table-search{font-size:var(--typography-fontsize-xl);line-height:var(--typography-lineheight-xl)}.ds-text--title-medium.sc-ds-table-search-h,.ds-text--title-medium.sc-ds-table-search{font-size:var(--typography-fontsize-lg);line-height:var(--typography-lineheight-lg)}.ds-text--title-small.sc-ds-table-search-h,.ds-text--title-small.sc-ds-table-search{font-size:var(--typography-fontsize-md);line-height:var(--typography-lineheight-md)}.ds-text--body-large.sc-ds-table-search-h,.ds-text--body-large.sc-ds-table-search{font-size:var(--typography-fontsize-lg);line-height:var(--typography-lineheight-lg)}.ds-text--body-medium.sc-ds-table-search-h,.ds-text--body-medium.sc-ds-table-search{font-size:var(--typography-fontsize-md);line-height:var(--typography-lineheight-md)}.ds-text--body-small.sc-ds-table-search-h,.ds-text--body-small.sc-ds-table-search{font-size:var(--typography-fontsize-sm);line-height:var(--typography-lineheight-sm)}.ds-text--caption.sc-ds-table-search-h,.ds-text--caption.sc-ds-table-search{font-size:var(--typography-fontsize-xs);line-height:var(--typography-lineheight-xs);text-transform:uppercase}.ds-text--display-medium.ds-text--emphasis.sc-ds-table-search-h,.ds-text--display-small.ds-text--emphasis.sc-ds-table-search-h,.ds-text--display-medium.ds-text--emphasis.sc-ds-table-search,.ds-text--display-small.ds-text--emphasis.sc-ds-table-search{font-weight:var(--typography-weight-bold);letter-spacing:var(--typography-letterspacing-negative-double)}.ds-text--display-medium.ds-text--regular.sc-ds-table-search-h,.ds-text--display-small.ds-text--regular.sc-ds-table-search-h,.ds-text--display-medium.ds-text--regular.sc-ds-table-search,.ds-text--display-small.ds-text--regular.sc-ds-table-search{font-weight:var(--typography-weight-semibold);letter-spacing:var(--typography-letterspacing-negative)}.ds-text--title-large.ds-text--emphasis.sc-ds-table-search-h,.ds-text--title-large.ds-text--emphasis.sc-ds-table-search{font-weight:var(--typography-weight-semibold);letter-spacing:var(--typography-letterspacing-negative-double)}.ds-text--title-large.ds-text--regular.sc-ds-table-search-h,.ds-text--title-large.ds-text--regular.sc-ds-table-search{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-negative)}.ds-text--title-medium.ds-text--emphasis.sc-ds-table-search-h,.ds-text--title-small.ds-text--emphasis.sc-ds-table-search-h,.ds-text--title-medium.ds-text--emphasis.sc-ds-table-search,.ds-text--title-small.ds-text--emphasis.sc-ds-table-search{font-weight:var(--typography-weight-semibold);letter-spacing:var(--typography-letterspacing-negative)}.ds-text--title-medium.ds-text--regular.sc-ds-table-search-h,.ds-text--title-small.ds-text--regular.sc-ds-table-search-h,.ds-text--title-medium.ds-text--regular.sc-ds-table-search,.ds-text--title-small.ds-text--regular.sc-ds-table-search{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-negative-half)}.ds-text--body-large.ds-text--emphasis.sc-ds-table-search-h,.ds-text--body-medium.ds-text--emphasis.sc-ds-table-search-h,.ds-text--body-large.ds-text--emphasis.sc-ds-table-search,.ds-text--body-medium.ds-text--emphasis.sc-ds-table-search{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-negative)}.ds-text--body-large.ds-text--regular.sc-ds-table-search-h,.ds-text--body-medium.ds-text--regular.sc-ds-table-search-h,.ds-text--body-large.ds-text--regular.sc-ds-table-search,.ds-text--body-medium.ds-text--regular.sc-ds-table-search{font-weight:var(--typography-weight-regular);letter-spacing:var(--typography-letterspacing-negative-half)}.ds-text--body-small.ds-text--emphasis.sc-ds-table-search-h,.ds-text--body-small.ds-text--emphasis.sc-ds-table-search{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-negative-half)}.ds-text--body-small.ds-text--regular.sc-ds-table-search-h,.ds-text--body-small.ds-text--regular.sc-ds-table-search{font-weight:var(--typography-weight-regular);letter-spacing:var(--typography-letterspacing-none)}.ds-text--caption.ds-text--emphasis.sc-ds-table-search-h,.ds-text--caption.ds-text--emphasis.sc-ds-table-search{font-weight:var(--typography-weight-semibold);letter-spacing:var(--typography-letterspacing-positive)}.ds-text--caption.ds-text--regular.sc-ds-table-search-h,.ds-text--caption.ds-text--regular.sc-ds-table-search{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-positive)}.ds-visually-hidden.sc-ds-table-search-h,.ds-visually-hidden.sc-ds-table-search{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.table-search-host.sc-ds-table-search-h{display:inline-flex;box-sizing:border-box;inline-size:100%;min-inline-size:0;--ds-table-search-foreground:var(--color-foreground-primary);--ds-table-search-adornment:var(--color-foreground-secondary);--ds-table-search-placeholder:var(--color-foreground-secondary);--ds-table-search-placeholder-active:var(--color-foreground-quaternary);--ds-table-search-border:var(--color-border-secondary)}.table-search__control.sc-ds-table-search{inline-size:100%;min-inline-size:0;padding-inline-end:var(--dimension-space-050);overflow:hidden;border:0;background:transparent;color:var(--ds-table-search-foreground);--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--ds-table-search-border)}.table-search__control.sc-ds-table-search:focus-within{--ds-interaction-border-width:var(--dimension-stroke-width-018);--ds-interaction-border-color:var(--color-border-bold-brand)}.ds-control-inactive.sc-ds-table-search-h .table-search__control.sc-ds-table-search::after{background:transparent}.table-search__icon.sc-ds-table-search,.table-search__actions.sc-ds-table-search{position:relative;z-index:2;flex:none}.table-search__icon.sc-ds-table-search{color:var(--ds-table-search-adornment)}.table-search__editor.sc-ds-table-search{position:relative;z-index:2;display:flex;flex:1 1 auto;align-items:center;min-inline-size:0;block-size:100%;gap:var(--dimension-space-050);overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.table-search__editor.sc-ds-table-search::-webkit-scrollbar{display:none}.table-search__chip.sc-ds-table-search{flex:none;max-inline-size:var(--dimension-panel-width-2xs)}.table-search__input.sc-ds-table-search{appearance:none;box-sizing:border-box;flex:1 0 var(--dimension-size-600);min-inline-size:var(--dimension-size-600);block-size:100%;margin:0;padding:0;border:0;outline:0;background:transparent;color:var(--ds-table-search-foreground);text-overflow:ellipsis}.table-search__input.sc-ds-table-search::-webkit-search-cancel-button,.table-search__input.sc-ds-table-search::-webkit-search-decoration{display:none}.table-search__input.sc-ds-table-search::placeholder{color:var(--ds-table-search-placeholder)}.table-search__input.sc-ds-table-search:focus::placeholder{color:var(--ds-table-search-placeholder-active)}.table-search__actions.sc-ds-table-search{display:flex;align-items:center;gap:var(--dimension-space-050)}.table-search__clear.sc-ds-table-search,.table-search__slash.sc-ds-table-search,.table-search__action-divider.sc-ds-table-search{flex:none}.table-search__slash.sc-ds-table-search{color:var(--ds-table-search-adornment)}.table-search__popup.sc-ds-table-search{--ds-choice-popup-min-inline-size:var(--dimension-menu-width-xs)}.table-search__list.sc-ds-table-search{padding:var(--dimension-space-050)}.table-search__option.sc-ds-table-search{flex:none;inline-size:100%}@media (forced-colors: active){.table-search__control.sc-ds-table-search:focus-within::after{outline-color:var(--ds-forced-color-selected)}}`;let j=0;const $=e(class e extends s{constructor(e){super();if(e!==false){this.__registerHost()}this.dsChange=t(this,"dsChange",3);this.dsFieldsChange=t(this,"dsFieldsChange",3);this.dsClear=t(this,"dsClear",3);this.value="";this.columns=[];this.selectedFieldIds=[];this.placeholder="Search";this.ariaLabel="Search table";this.clearLabel="Clear search";this.fieldMenuLabel="Choose search fields";this.isInactive=false;this.menuOpen=false;this.menuQuery="";this.activeIndex=0;this.focusRingVisible=false;this.position={x:0,y:0};this.positionReady=false;this.availableHeight=null;this.announcement="";this.componentId=`ds-table-search-${++j}`;this.inputId=`${this.componentId}-input`;this.listboxId=`${this.componentId}-listbox`;this.descriptionId=`${this.componentId}-description`;this.inputEl=null;this.controlEl=null;this.popupEl=null;this.positionController=new o({getAnchor:()=>this.controlEl,getPopup:()=>this.popupEl,getOwnerDocument:()=>this.el.ownerDocument,measure:(e,s)=>{if(!this.menuOpen||!s.isConnected)return null;const t=w(_.space050,_.space050);s.style.minWidth=`max(var(--ds-choice-popup-min-inline-size, ${_.menuWidthXs}), ${n(e.offsetWidth,t)}px)`;const i=e.getBoundingClientRect();return{anchorRect:i,popupWidth:s.offsetWidth,popupHeight:s.offsetHeight,side:"bottom",align:"start",sideOffsetPx:t,alignOffsetPx:d({align:"start",alignOffsetPx:0,sectionInsetPx:t}),viewportPadPx:t,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight,collisionRect:c(e)}},apply:({x:e,y:s,availableHeight:t})=>{this.position={x:e,y:s};this.availableHeight=t},onReady:()=>{this.positionReady=true},topLayer:true,liveUpdate:"frame",observeResize:true,observeAnchorMotion:true});this.interactionController=new l({getAnchor:()=>this.controlEl,getPopup:()=>this.popupEl,getOwnerDocument:()=>this.el.ownerDocument,onOutsideActivation:()=>this.closeMenu()})}disconnectedCallback(){this.closeMenu()}syncAvailableFields(){const e=this.availableFields.length;if(e===0){this.closeMenu();return}if(this.activeIndex>=e)this.activeIndex=e-1}syncInactive(e){if(e)this.closeMenu()}async setFocus(){this.inputEl?.focus()}get selectedFields(){return z(this.searchFields,this.selectedFieldIds)}get availableFields(){return C(this.searchFields,this.selectedFieldIds)}get visibleFields(){return F(this.availableFields,this.menuQuery)}get searchFields(){return k(this.columns)}get activeOptionId(){return this.menuOpen&&this.activeIndex>=0?`${this.componentId}-option-${this.activeIndex}`:undefined}openMenu(e){if(this.isInactive||this.menuOpen||this.availableFields.length===0)return;this.menuQuery="";if(this.inputEl)this.inputEl.value="";this.activeIndex=0;this.focusRingVisible=e;this.positionReady=false;this.menuOpen=true;requestAnimationFrame((()=>{if(!this.menuOpen)return;this.interactionController.connect();this.positionController.observe();this.positionController.schedule()}))}closeMenu(){if(!this.menuOpen&&!this.popupEl)return;if(this.popupEl?.matches(":popover-open"))this.popupEl.hidePopover();this.positionController.unobserve();this.interactionController.disconnect();this.popupEl=null;this.positionReady=false;this.availableHeight=null;this.menuOpen=false;this.menuQuery=""}handleInput(e){const s=e.target.value;if(this.menuOpen){this.menuQuery=s;this.activeIndex=F(this.availableFields,s).length?0:-1;this.focusRingVisible=false;this.positionController.schedule();return}this.dsChange.emit(s)}selectField(e){this.dsFieldsChange.emit({selectedFieldIds:[...this.selectedFieldIds,e.id]});this.announcement=`${e.label} search field added.`;this.closeMenu();requestAnimationFrame((()=>this.inputEl?.focus({preventScroll:true})))}removeLastField(){const e=this.selectedFields;const s=e[e.length-1];if(!s)return;this.dsFieldsChange.emit({selectedFieldIds:this.selectedFieldIds.filter((e=>e!==s.id))});this.announcement=`${s.label} search field removed.`}removeField(e){this.dsFieldsChange.emit({selectedFieldIds:this.selectedFieldIds.filter((s=>s!==e.id))});this.announcement=`${e.label} search field removed.`;requestAnimationFrame((()=>this.inputEl?.focus({preventScroll:true})))}clearSearch(){if(this.value)this.dsChange.emit("");if(this.selectedFieldIds.length)this.dsFieldsChange.emit({selectedFieldIds:[]});this.dsClear.emit();this.announcement="Search cleared.";this.closeMenu();requestAnimationFrame((()=>this.inputEl?.focus({preventScroll:true})))}handleKeyDown(e){if(e.key==="/"&&!this.menuOpen&&!e.altKey&&!e.ctrlKey&&!e.metaKey){e.preventDefault();this.openMenu(true);return}if(e.key==="Backspace"&&this.menuOpen&&this.menuQuery.length===0){e.preventDefault();this.closeMenu();return}if(e.key==="Backspace"&&this.value.length===0){if(this.selectedFields.length){e.preventDefault();this.removeLastField()}return}if(!this.menuOpen)return;if(e.key==="Escape"){e.preventDefault();this.closeMenu();return}if(e.key==="ArrowDown"||e.key==="ArrowUp"){e.preventDefault();this.focusRingVisible=true;this.activeIndex=I(this.activeIndex,this.visibleFields.length,e.key==="ArrowDown"?1:-1);this.el.querySelector(`#${CSS.escape(this.activeOptionId??"")}`)?.scrollIntoView({block:"nearest"});return}if(e.key==="Enter"){const s=this.visibleFields[this.activeIndex];if(!s)return;e.preventDefault();this.selectField(s);return}if(e.key==="Tab")this.closeMenu()}render(){const e=this.selectedFields;const s=this.availableFields;const t=this.visibleFields;const r=this.menuOpen?this.menuQuery:this.value;const o=this.value.length>0||e.length>0;const c=e.length?`Search limited to ${e.map((e=>e.label)).join(" or ")}.`:"Search includes every available table field. Type slash to choose fields.";const n={position:"fixed",left:"0",top:"0",transform:`translate(${Math.round(this.position.x)}px, ${Math.round(this.position.y)}px)`,zIndex:"var(--dimension-z-index-floating)",visibility:this.positionReady?"visible":"hidden"};if(this.availableHeight!==null){n["max-height"]=`${Math.floor(this.availableHeight)}px`}return i(a,{key:"be38223dfa6accca30941142ccfd8e1da5df5687",class:{"table-search-host":true,"ds-control--md":true,"ds-control-inactive":this.isInactive},"data-filled":o?"":undefined,"data-expanded":this.menuOpen?"":undefined},i("div",{key:"b3c63851a175a1148617519af8113bff306da0e6",ref:e=>{this.controlEl=e??null},class:"table-search__control ds-control-frame ds-control--md ds-interaction-fill"},i("span",{key:"8b42e2ffb77a3998d8315a971e8abf67002588c5",class:"table-search__icon ds-control-icon-box ds-interaction-fill__content","aria-hidden":"true"},i("ds-icon",{key:"25e055c8686b6c16082cdc87fe322af11c824a32",name:"MagnifyingGlass",size:"md",color:"inherit"})),i("div",{key:"5bd50ef92829e8dbe5cef2e6ac91149dd06ee832",class:"table-search__editor ds-interaction-fill__content"},e.map((e=>i("ds-chip",{class:"table-search__chip",key:e.id,label:e.label,size:"md",state:"default",isInset:true,insetDepth:"double",isInactive:this.isInactive,onDsRemove:()=>this.removeField(e)}))),i("input",{key:"835f01992b1f27030d9c62c005e13c56a15c01ff",ref:e=>{this.inputEl=e??null},id:this.inputId,class:"table-search__input ds-text--body-medium ds-text--regular",type:"search",role:"combobox",value:r,placeholder:this.placeholder,disabled:this.isInactive,"aria-label":this.ariaLabel,"aria-describedby":this.descriptionId,"aria-haspopup":"listbox","aria-expanded":String(this.menuOpen),"aria-controls":this.menuOpen?this.listboxId:undefined,"aria-activedescendant":this.activeOptionId,"aria-keyshortcuts":"/",autoComplete:"off",autoCapitalize:"none",autoCorrect:"off",spellcheck:false,onInput:e=>this.handleInput(e),onKeyDown:e=>this.handleKeyDown(e)})),this.searchFields.length>0&&i("div",{key:"d5476fe6b39b60cee1dac952be4b9dd79849f894",class:"table-search__actions ds-interaction-fill__content"},r.length>0&&!this.isInactive&&i("ds-button-unfilled",{key:"1d4780f0901a0e106351cae47f8a809e3f7fef9f",class:"table-search__clear",variant:"icon",size:"sm",icon:"CrossCircle",hasBorder:false,rounded:true,ariaLabel:this.clearLabel,onDsClick:()=>this.clearSearch()}),r.length>0&&!this.isInactive&&i("ds-divider",{key:"48cdf7ac96cde7a5eee5fec73542ca3cbfc4103c",class:"table-search__action-divider",orientation:"vertical",length:"var(--dimension-size-200)"}),i("ds-button-unfilled",{key:"0fe05c3188fefc28582dc7789ec4a55da39efa80",class:"table-search__slash",variant:"label",size:"md",label:"/",labelEmphasis:false,isInset:true,insetDepth:"double",hasBorder:false,ariaLabel:this.fieldMenuLabel,focusTabIndex:-1,haspopup:"listbox",controls:this.menuOpen?this.listboxId:undefined,expanded:this.menuOpen,surfaceOpen:this.menuOpen,isInactive:this.isInactive||s.length===0,onMouseDown:e=>e.preventDefault(),onDsClick:()=>{this.inputEl?.focus({preventScroll:true});this.openMenu(false)}}))),i("span",{key:"038c4c762e59e61482ecbc45a227d87d94c1982c",id:this.descriptionId,class:"ds-visually-hidden"},c),i("span",{key:"16396cf7a16c2315d2dc71667e5994d25607fcb2",class:"ds-visually-hidden","aria-live":"polite"},this.announcement),this.menuOpen&&i("div",{key:"975666e3b250d0e868cd67f105f951ac0a08e150",popover:"manual",ref:e=>{this.popupEl=e??null},class:"table-search__popup ds-choice-popup",style:n},i("div",{key:"2139eff61fce7d9332c723fcf9ed69a747c075a4",id:this.listboxId,class:"table-search__list ds-choice-list",role:"listbox","aria-label":this.fieldMenuLabel},t.map(((e,s)=>{const t=s===this.activeIndex;return i("div",{id:`${this.componentId}-option-${s}`,key:e.id,class:{"table-search__option":true,"ds-choice-item":true,"ds-control-frame":true,"ds-control--md":true,"ds-focus-ring-inset":true,"ds-focus-ring--visible":t&&this.focusRingVisible,"ds-interaction-fill":true,"ds-interaction-fill--selected":t},role:"option","aria-selected":String(t),onMouseDown:e=>e.preventDefault(),onMouseMove:()=>{this.focusRingVisible=false;this.activeIndex=s},onClick:()=>this.selectField(e)},i("ds-text",{class:"ds-choice-item__label ds-control-label-box ds-interaction-fill__content",as:"span",variant:"text-body-medium",color:t?"primary":"secondary"},e.label))})),t.length===0&&i("div",{key:"8de94c4b6b68048f8e47a931ff8c6189274ddd98",class:"table-search__empty ds-choice-empty ds-empty-region"},i("ds-empty-state",{key:"2ed6fede01cecb16a972c369cc2b50125780b957",body:"No matching data points"})))))}get el(){return this}static get watchers(){return{columns:[{syncAvailableFields:0}],selectedFieldIds:[{syncAvailableFields:0}],isInactive:[{syncInactive:0}]}}static get style(){return T()}},[2,"ds-table-search",{value:[1],columns:[16],selectedFieldIds:[16],placeholder:[1],ariaLabel:[1,"aria-label"],clearLabel:[1,"clear-label"],fieldMenuLabel:[1,"field-menu-label"],isInactive:[4,"is-inactive"],menuOpen:[32],menuQuery:[32],activeIndex:[32],focusRingVisible:[32],position:[32],positionReady:[32],availableHeight:[32],announcement:[32],setFocus:[64]},undefined,{columns:[{syncAvailableFields:0}],selectedFieldIds:[{syncAvailableFields:0}],isInactive:[{syncInactive:0}]}]);function S(){if(typeof customElements==="undefined"){return}const e=["ds-table-search","ds-badge","ds-button-unfilled","ds-chip","ds-divider","ds-empty-state","ds-icon","ds-loader","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-table-search":if(!customElements.get(r(e))){customElements.define(r(e),$)}break;case"ds-badge":if(!customElements.get(r(e))){b()}break;case"ds-button-unfilled":if(!customElements.get(r(e))){p()}break;case"ds-chip":if(!customElements.get(r(e))){f()}break;case"ds-divider":if(!customElements.get(r(e))){v()}break;case"ds-empty-state":if(!customElements.get(r(e))){u()}break;case"ds-icon":if(!customElements.get(r(e))){m()}break;case"ds-loader":if(!customElements.get(r(e))){g()}break;case"ds-text":if(!customElements.get(r(e))){x()}break;case"ds-tooltip":if(!customElements.get(r(e))){y()}break}}))}S();const A=$;const E=S;export{A as DsTableSearch,E as defineCustomElement};
2
2
  //# sourceMappingURL=ds-table-search.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["tableSearchFields","columns","resolved","seen","Set","column","isTableActionColumn","searchable","segments","headerSegments","length","segment","id","sortKey","trim","label","dataLabel","has","add","push","header","headerLabel","selectedTableSearchFields","fields","selectedFieldIds","byId","Map","map","field","selected","fieldId","get","availableTableSearchFields","filter","filterTableSearchFields","query","normalizedQuery","toLocaleLowerCase","includes","nextTableSearchActiveIndex","currentIndex","optionCount","direction","safeIndex","tableSearchCss","tableSearchSequence","TableSearch","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","value","placeholder","ariaLabel","clearLabel","fieldMenuLabel","isInactive","menuOpen","menuQuery","activeIndex","focusRingVisible","position","x","y","positionReady","availableHeight","announcement","componentId","inputId","listboxId","descriptionId","inputEl","controlEl","popupEl","positionController","AnchoredPositionController","getAnchor","getPopup","getOwnerDocument","el","ownerDocument","measure","anchor","popup","isConnected","inset","resolveCssLengthPx","TOKEN_DEFAULTS","space050","style","minWidth","menuWidthXs","choicePopupMinWidth","offsetWidth","anchorRect","getBoundingClientRect","popupWidth","popupHeight","offsetHeight","side","align","sideOffsetPx","alignOffsetPx","resolveChoicePopupAlignOffset","sectionInsetPx","viewportPadPx","viewportWidth","window","innerWidth","viewportHeight","innerHeight","collisionRect","resolveAnchoredOverlayBoundaryRect","apply","onReady","topLayer","liveUpdate","observeResize","observeAnchorMotion","interactionController","AnchoredOverlayInteractionController","onOutsideActivation","closeMenu","disconnectedCallback","syncAvailableFields","count","availableFields","syncInactive","setFocus","focus","selectedFields","searchFields","visibleFields","activeOptionId","undefined","openMenu","fromKeyboard","requestAnimationFrame","connect","observe","schedule","matches","hidePopover","unobserve","disconnect","handleInput","event","nextValue","target","dsChange","emit","selectField","dsFieldsChange","preventScroll","removeLastField","removed","removeField","clearSearch","dsClear","handleKeyDown","key","altKey","ctrlKey","metaKey","preventDefault","querySelector","CSS","escape","scrollIntoView","block","render","available","visible","inputValue","hasValue","description","join","popupStyle","left","top","transform","Math","round","zIndex","visibility","floor","h","Host","class","ref","element","name","size","color","state","isInset","insetDepth","onDsRemove","type","role","disabled","String","autoComplete","autoCapitalize","autoCorrect","spellcheck","onInput","onKeyDown","variant","icon","hasBorder","rounded","onDsClick","orientation","labelEmphasis","focusTabIndex","haspopup","controls","expanded","onMouseDown","popover","index","active","onMouseMove","onClick","as","body"],"sources":["src/wc/components/TableSearch/table-search-model.ts","src/wc/components/TableSearch/TableSearch.css?tag=ds-table-search&encapsulation=scoped","src/wc/components/TableSearch/TableSearch.tsx"],"sourcesContent":["import { isTableActionColumn } from '../Table/table-column-customizer';\nimport type { TableColumn } from '../Table/table-types';\nimport type { TableSearchField } from './table-search-types';\n\n/** Searchable data points from the table catalog, including compound header segments. */\nexport function tableSearchFields(columns: readonly TableColumn[]): TableSearchField[] {\n const resolved: TableSearchField[] = [];\n const seen = new Set<string>();\n\n for (const column of columns) {\n if (isTableActionColumn(column) || column.searchable === false) continue;\n const segments = column.headerSegments ?? [];\n if (segments.length > 0) {\n for (const segment of segments) {\n const id = segment.sortKey.trim();\n const label = segment.dataLabel?.trim() || segment.label.trim() || id;\n if (!id || !label || segment.searchable === false || seen.has(id)) continue;\n seen.add(id);\n resolved.push({ id, label });\n }\n continue;\n }\n\n const id = column.id.trim();\n const label =\n column.dataLabel?.trim() || column.header.trim() || column.headerLabel?.trim() || id;\n if (!id || !label || seen.has(id)) continue;\n seen.add(id);\n resolved.push({ id, label });\n }\n\n return resolved;\n}\n\nexport function selectedTableSearchFields(\n fields: readonly TableSearchField[],\n selectedFieldIds: string[]\n): TableSearchField[] {\n const byId = new Map(fields.map(field => [field.id, field]));\n const selected: TableSearchField[] = [];\n const seen = new Set<string>();\n\n for (const fieldId of selectedFieldIds) {\n if (seen.has(fieldId)) continue;\n const field = byId.get(fieldId);\n if (!field) continue;\n seen.add(fieldId);\n selected.push(field);\n }\n\n return selected;\n}\n\nexport function availableTableSearchFields(\n fields: readonly TableSearchField[],\n selectedFieldIds: string[]\n): TableSearchField[] {\n const selected = new Set(selectedFieldIds);\n return fields.filter(field => !selected.has(field.id));\n}\n\n/** Matches the field-picker query against the complete visible label and canonical identity. */\nexport function filterTableSearchFields(\n fields: readonly TableSearchField[],\n query: string\n): TableSearchField[] {\n const normalizedQuery = query.trim().toLocaleLowerCase();\n if (!normalizedQuery) return [...fields];\n\n return fields.filter(field =>\n `${field.label} ${field.id}`.toLocaleLowerCase().includes(normalizedQuery)\n );\n}\n\nexport function nextTableSearchActiveIndex(\n currentIndex: number,\n optionCount: number,\n direction: 1 | -1\n): number {\n if (optionCount <= 0) return -1;\n const safeIndex = currentIndex >= 0 && currentIndex < optionCount ? currentIndex : 0;\n return (safeIndex + direction + optionCount) % optionCount;\n}\n","@import '../../utils/choice-list.css';\n@import '../../utils/control-density-inset.css';\n@import '../../utils/typography.css';\n@import '../../utils/visually-hidden.css';\n\n:host(.table-search-host) {\n display: inline-flex;\n box-sizing: border-box;\n inline-size: 100%;\n min-inline-size: 0;\n --ds-table-search-foreground: var(--color-foreground-primary);\n --ds-table-search-adornment: var(--color-foreground-secondary);\n --ds-table-search-placeholder: var(--color-foreground-secondary);\n --ds-table-search-placeholder-active: var(--color-foreground-quaternary);\n --ds-table-search-border: var(--color-border-secondary);\n}\n\n.table-search__control {\n inline-size: 100%;\n min-inline-size: 0;\n padding-inline-end: var(--dimension-space-050);\n overflow: hidden;\n border: 0;\n background: transparent;\n color: var(--ds-table-search-foreground);\n --ds-interaction-border-width: var(--dimension-stroke-width-012);\n --ds-interaction-border-color: var(--ds-table-search-border);\n}\n\n.table-search__control:focus-within {\n --ds-interaction-border-width: var(--dimension-stroke-width-018);\n --ds-interaction-border-color: var(--color-border-bold-brand);\n}\n\n:host(.ds-control-inactive) .table-search__control::after {\n background: transparent;\n}\n\n.table-search__icon,\n.table-search__actions {\n position: relative;\n z-index: 2;\n flex: none;\n}\n\n.table-search__icon {\n color: var(--ds-table-search-adornment);\n}\n\n.table-search__editor {\n position: relative;\n z-index: 2;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n min-inline-size: 0;\n block-size: 100%;\n gap: var(--dimension-space-050);\n overflow-x: auto;\n overflow-y: hidden;\n scrollbar-width: none;\n}\n\n.table-search__editor::-webkit-scrollbar {\n display: none;\n}\n\n.table-search__chip {\n flex: none;\n max-inline-size: var(--dimension-panel-width-2xs);\n}\n\n.table-search__input {\n appearance: none;\n box-sizing: border-box;\n flex: 1 0 var(--dimension-size-600);\n min-inline-size: var(--dimension-size-600);\n block-size: 100%;\n margin: 0;\n padding: 0;\n border: 0;\n outline: 0;\n background: transparent;\n color: var(--ds-table-search-foreground);\n text-overflow: ellipsis;\n}\n\n.table-search__input::-webkit-search-cancel-button,\n.table-search__input::-webkit-search-decoration {\n display: none;\n}\n\n.table-search__input::placeholder {\n color: var(--ds-table-search-placeholder);\n}\n\n.table-search__input:focus::placeholder {\n color: var(--ds-table-search-placeholder-active);\n}\n\n.table-search__actions {\n display: flex;\n align-items: center;\n gap: var(--dimension-space-050);\n}\n\n.table-search__clear,\n.table-search__slash,\n.table-search__action-divider {\n flex: none;\n}\n\n.table-search__slash {\n color: var(--ds-table-search-adornment);\n}\n\n.table-search__popup {\n --ds-choice-popup-min-inline-size: var(--dimension-menu-width-xs);\n}\n\n.table-search__list {\n padding: var(--dimension-space-050);\n}\n\n.table-search__option {\n flex: none;\n inline-size: 100%;\n}\n\n@media (forced-colors: active) {\n .table-search__control:focus-within::after {\n outline-color: var(--ds-forced-color-selected);\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport {\n choicePopupMinWidth,\n resolveChoicePopupAlignOffset,\n resolveCssLengthPx,\n TOKEN_DEFAULTS,\n} from '../../utils';\nimport { AnchoredPositionController } from '../../utils/anchored-position-controller';\nimport { AnchoredOverlayInteractionController } from '../../utils/anchored-overlay-interaction-controller';\nimport { resolveAnchoredOverlayBoundaryRect } from '../../utils/anchored-overlay-boundary';\nimport {\n availableTableSearchFields,\n filterTableSearchFields,\n nextTableSearchActiveIndex,\n selectedTableSearchFields,\n tableSearchFields,\n} from './table-search-model';\nimport type { TableColumn } from '../Table/table-types';\nimport type { TableSearchField, TableSearchFieldsChangeDetail } from './table-search-types';\n\nlet tableSearchSequence = 0;\n\n@Component({\n tag: 'ds-table-search',\n styleUrl: 'TableSearch.css',\n scoped: true,\n})\nexport class TableSearch {\n @Element() private el!: HTMLElement;\n\n /** Controlled free-text query. */\n @Prop() value: string = '';\n /** Table column catalog used to derive searchable data points and their complete labels. */\n @Prop() columns: TableColumn[] = [];\n /** Controlled ordered field scopes rendered as Tags. */\n @Prop() selectedFieldIds: string[] = [];\n @Prop() placeholder: string = 'Search';\n @Prop({ attribute: 'aria-label' }) ariaLabel: string = 'Search table';\n @Prop() clearLabel: string = 'Clear search';\n @Prop() fieldMenuLabel: string = 'Choose search fields';\n @Prop() isInactive: boolean = false;\n\n @Event({ bubbles: false }) dsChange!: EventEmitter<string>;\n @Event({ bubbles: false }) dsFieldsChange!: EventEmitter<TableSearchFieldsChangeDetail>;\n @Event({ bubbles: false }) dsClear!: EventEmitter<void>;\n\n @State() private menuOpen = false;\n @State() private menuQuery = '';\n @State() private activeIndex = 0;\n @State() private focusRingVisible = false;\n @State() private position = { x: 0, y: 0 };\n @State() private positionReady = false;\n @State() private availableHeight: number | null = null;\n @State() private announcement = '';\n\n private readonly componentId = `ds-table-search-${++tableSearchSequence}`;\n private readonly inputId = `${this.componentId}-input`;\n private readonly listboxId = `${this.componentId}-listbox`;\n private readonly descriptionId = `${this.componentId}-description`;\n private inputEl: HTMLInputElement | null = null;\n private controlEl: HTMLElement | null = null;\n private popupEl: HTMLElement | null = null;\n\n private readonly positionController = new AnchoredPositionController({\n getAnchor: () => this.controlEl,\n getPopup: () => this.popupEl,\n getOwnerDocument: () => this.el.ownerDocument,\n measure: (anchor, popup) => {\n if (!this.menuOpen || !popup.isConnected) return null;\n const inset = resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050);\n popup.style.minWidth = `max(var(--ds-choice-popup-min-inline-size, ${TOKEN_DEFAULTS.menuWidthXs}), ${choicePopupMinWidth(anchor.offsetWidth, inset)}px)`;\n const anchorRect = anchor.getBoundingClientRect();\n return {\n anchorRect,\n popupWidth: popup.offsetWidth,\n popupHeight: popup.offsetHeight,\n side: 'bottom',\n align: 'start',\n sideOffsetPx: inset,\n alignOffsetPx: resolveChoicePopupAlignOffset({\n align: 'start',\n alignOffsetPx: 0,\n sectionInsetPx: inset,\n }),\n viewportPadPx: inset,\n viewportWidth: window.innerWidth,\n viewportHeight: window.innerHeight,\n collisionRect: resolveAnchoredOverlayBoundaryRect(anchor),\n };\n },\n apply: ({ x, y, availableHeight }) => {\n this.position = { x, y };\n this.availableHeight = availableHeight;\n },\n onReady: () => {\n this.positionReady = true;\n },\n topLayer: true,\n liveUpdate: 'frame',\n observeResize: true,\n observeAnchorMotion: true,\n });\n\n private readonly interactionController = new AnchoredOverlayInteractionController({\n getAnchor: () => this.controlEl,\n getPopup: () => this.popupEl,\n getOwnerDocument: () => this.el.ownerDocument,\n onOutsideActivation: () => this.closeMenu(),\n });\n\n disconnectedCallback(): void {\n this.closeMenu();\n }\n\n @Watch('columns')\n @Watch('selectedFieldIds')\n syncAvailableFields(): void {\n const count = this.availableFields.length;\n if (count === 0) {\n this.closeMenu();\n return;\n }\n if (this.activeIndex >= count) this.activeIndex = count - 1;\n }\n\n @Watch('isInactive')\n syncInactive(isInactive: boolean): void {\n if (isInactive) this.closeMenu();\n }\n\n @Method()\n async setFocus(): Promise<void> {\n this.inputEl?.focus();\n }\n\n private get selectedFields(): TableSearchField[] {\n return selectedTableSearchFields(this.searchFields, this.selectedFieldIds);\n }\n\n private get availableFields(): TableSearchField[] {\n return availableTableSearchFields(this.searchFields, this.selectedFieldIds);\n }\n\n private get visibleFields(): TableSearchField[] {\n return filterTableSearchFields(this.availableFields, this.menuQuery);\n }\n\n private get searchFields(): TableSearchField[] {\n return tableSearchFields(this.columns);\n }\n\n private get activeOptionId(): string | undefined {\n return this.menuOpen && this.activeIndex >= 0\n ? `${this.componentId}-option-${this.activeIndex}`\n : undefined;\n }\n\n private openMenu(fromKeyboard: boolean): void {\n if (this.isInactive || this.menuOpen || this.availableFields.length === 0) return;\n this.menuQuery = '';\n // The native value can be ahead of the controlled prop when slash follows input\n // in the same frame, so clear it before the queued render can skip an equal value.\n if (this.inputEl) this.inputEl.value = '';\n this.activeIndex = 0;\n this.focusRingVisible = fromKeyboard;\n this.positionReady = false;\n this.menuOpen = true;\n requestAnimationFrame(() => {\n if (!this.menuOpen) return;\n this.interactionController.connect();\n this.positionController.observe();\n this.positionController.schedule();\n });\n }\n\n private closeMenu(): void {\n if (!this.menuOpen && !this.popupEl) return;\n if (this.popupEl?.matches(':popover-open')) this.popupEl.hidePopover();\n this.positionController.unobserve();\n this.interactionController.disconnect();\n this.popupEl = null;\n this.positionReady = false;\n this.availableHeight = null;\n this.menuOpen = false;\n this.menuQuery = '';\n }\n\n private handleInput(event: Event): void {\n const nextValue = (event.target as HTMLInputElement).value;\n if (this.menuOpen) {\n this.menuQuery = nextValue;\n this.activeIndex = filterTableSearchFields(this.availableFields, nextValue).length ? 0 : -1;\n this.focusRingVisible = false;\n this.positionController.schedule();\n return;\n }\n\n this.dsChange.emit(nextValue);\n }\n\n private selectField(field: TableSearchField): void {\n this.dsFieldsChange.emit({ selectedFieldIds: [...this.selectedFieldIds, field.id] });\n this.announcement = `${field.label} search field added.`;\n this.closeMenu();\n requestAnimationFrame(() => this.inputEl?.focus({ preventScroll: true }));\n }\n\n private removeLastField(): void {\n const selected = this.selectedFields;\n const removed = selected[selected.length - 1];\n if (!removed) return;\n this.dsFieldsChange.emit({\n selectedFieldIds: this.selectedFieldIds.filter(fieldId => fieldId !== removed.id),\n });\n this.announcement = `${removed.label} search field removed.`;\n }\n\n private removeField(field: TableSearchField): void {\n this.dsFieldsChange.emit({\n selectedFieldIds: this.selectedFieldIds.filter(fieldId => fieldId !== field.id),\n });\n this.announcement = `${field.label} search field removed.`;\n requestAnimationFrame(() => this.inputEl?.focus({ preventScroll: true }));\n }\n\n private clearSearch(): void {\n if (this.value) this.dsChange.emit('');\n if (this.selectedFieldIds.length) this.dsFieldsChange.emit({ selectedFieldIds: [] });\n this.dsClear.emit();\n this.announcement = 'Search cleared.';\n this.closeMenu();\n requestAnimationFrame(() => this.inputEl?.focus({ preventScroll: true }));\n }\n\n private handleKeyDown(event: KeyboardEvent): void {\n if (event.key === '/' && !this.menuOpen && !event.altKey && !event.ctrlKey && !event.metaKey) {\n event.preventDefault();\n this.openMenu(true);\n return;\n }\n\n if (event.key === 'Backspace' && this.menuOpen && this.menuQuery.length === 0) {\n event.preventDefault();\n this.closeMenu();\n return;\n }\n\n if (event.key === 'Backspace' && this.value.length === 0) {\n if (this.selectedFields.length) {\n event.preventDefault();\n this.removeLastField();\n }\n return;\n }\n\n if (!this.menuOpen) return;\n\n if (event.key === 'Escape') {\n event.preventDefault();\n this.closeMenu();\n return;\n }\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n this.focusRingVisible = true;\n this.activeIndex = nextTableSearchActiveIndex(\n this.activeIndex,\n this.visibleFields.length,\n event.key === 'ArrowDown' ? 1 : -1\n );\n this.el\n .querySelector<HTMLElement>(`#${CSS.escape(this.activeOptionId ?? '')}`)\n ?.scrollIntoView({ block: 'nearest' });\n return;\n }\n\n if (event.key === 'Enter') {\n const field = this.visibleFields[this.activeIndex];\n if (!field) return;\n event.preventDefault();\n this.selectField(field);\n return;\n }\n\n if (event.key === 'Tab') this.closeMenu();\n }\n\n render() {\n const selected = this.selectedFields;\n const available = this.availableFields;\n const visible = this.visibleFields;\n const inputValue = this.menuOpen ? this.menuQuery : this.value;\n const hasValue = this.value.length > 0 || selected.length > 0;\n const description = selected.length\n ? `Search limited to ${selected.map(field => field.label).join(' or ')}.`\n : 'Search includes every available table field. Type slash to choose fields.';\n const popupStyle: Record<string, string> = {\n position: 'fixed',\n left: '0',\n top: '0',\n transform: `translate(${Math.round(this.position.x)}px, ${Math.round(this.position.y)}px)`,\n zIndex: 'var(--dimension-z-index-floating)',\n visibility: this.positionReady ? 'visible' : 'hidden',\n };\n if (this.availableHeight !== null) {\n popupStyle['max-height'] = `${Math.floor(this.availableHeight)}px`;\n }\n\n return (\n <Host\n class={{\n 'table-search-host': true,\n 'ds-control--md': true,\n 'ds-control-inactive': this.isInactive,\n }}\n data-filled={hasValue ? '' : undefined}\n data-expanded={this.menuOpen ? '' : undefined}\n >\n <div\n ref={element => {\n this.controlEl = element ?? null;\n }}\n class=\"table-search__control ds-control-frame ds-control--md ds-interaction-fill\"\n >\n <span\n class=\"table-search__icon ds-control-icon-box ds-interaction-fill__content\"\n aria-hidden=\"true\"\n >\n <ds-icon name=\"MagnifyingGlass\" size=\"md\" color=\"inherit\" />\n </span>\n <div class=\"table-search__editor ds-interaction-fill__content\">\n {selected.map(field => (\n <ds-chip\n class=\"table-search__chip\"\n key={field.id}\n label={field.label}\n size=\"md\"\n state=\"default\"\n isInset\n insetDepth=\"double\"\n isInactive={this.isInactive}\n onDsRemove={() => this.removeField(field)}\n />\n ))}\n <input\n ref={element => {\n this.inputEl = element ?? null;\n }}\n id={this.inputId}\n class=\"table-search__input ds-text--body-medium ds-text--regular\"\n type=\"search\"\n role=\"combobox\"\n value={inputValue}\n placeholder={this.placeholder}\n disabled={this.isInactive}\n aria-label={this.ariaLabel}\n aria-describedby={this.descriptionId}\n aria-haspopup=\"listbox\"\n aria-expanded={String(this.menuOpen)}\n aria-controls={this.menuOpen ? this.listboxId : undefined}\n aria-activedescendant={this.activeOptionId}\n aria-keyshortcuts=\"/\"\n autoComplete=\"off\"\n autoCapitalize=\"none\"\n autoCorrect=\"off\"\n spellcheck={false}\n onInput={event => this.handleInput(event)}\n onKeyDown={event => this.handleKeyDown(event)}\n />\n </div>\n {this.searchFields.length > 0 && (\n <div class=\"table-search__actions ds-interaction-fill__content\">\n {inputValue.length > 0 && !this.isInactive && (\n <ds-button-unfilled\n class=\"table-search__clear\"\n variant=\"icon\"\n size=\"sm\"\n icon=\"CrossCircle\"\n hasBorder={false}\n rounded\n ariaLabel={this.clearLabel}\n onDsClick={() => this.clearSearch()}\n />\n )}\n {inputValue.length > 0 && !this.isInactive && (\n <ds-divider\n class=\"table-search__action-divider\"\n orientation=\"vertical\"\n length=\"var(--dimension-size-200)\"\n />\n )}\n <ds-button-unfilled\n class=\"table-search__slash\"\n variant=\"label\"\n size=\"md\"\n label=\"/\"\n labelEmphasis={false}\n isInset\n insetDepth=\"double\"\n hasBorder={false}\n ariaLabel={this.fieldMenuLabel}\n focusTabIndex={-1}\n haspopup=\"listbox\"\n controls={this.menuOpen ? this.listboxId : undefined}\n expanded={this.menuOpen}\n isInactive={this.isInactive || available.length === 0}\n onMouseDown={(event: MouseEvent) => event.preventDefault()}\n onDsClick={() => {\n this.inputEl?.focus({ preventScroll: true });\n this.openMenu(false);\n }}\n />\n </div>\n )}\n </div>\n <span id={this.descriptionId} class=\"ds-visually-hidden\">\n {description}\n </span>\n <span class=\"ds-visually-hidden\" aria-live=\"polite\">\n {this.announcement}\n </span>\n {this.menuOpen && (\n <div\n popover=\"manual\"\n ref={element => {\n this.popupEl = element ?? null;\n }}\n class=\"table-search__popup ds-choice-popup\"\n style={popupStyle}\n >\n <div\n id={this.listboxId}\n class=\"table-search__list ds-choice-list\"\n role=\"listbox\"\n aria-label={this.fieldMenuLabel}\n >\n {visible.map((field, index) => {\n const active = index === this.activeIndex;\n return (\n /* eslint-disable-next-line local/prefer-direct-ds-text -- The option owns listbox semantics and pointer interaction while ds-text remains its typography child. */\n <div\n id={`${this.componentId}-option-${index}`}\n key={field.id}\n class={{\n 'table-search__option': true,\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 role=\"option\"\n aria-selected={String(active)}\n onMouseDown={event => event.preventDefault()}\n onMouseMove={() => {\n this.focusRingVisible = false;\n this.activeIndex = index;\n }}\n onClick={() => this.selectField(field)}\n >\n <ds-text\n class=\"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 {field.label}\n </ds-text>\n </div>\n );\n })}\n {visible.length === 0 && (\n <div class=\"table-search__empty ds-choice-empty ds-empty-region\">\n <ds-empty-state body=\"No matching data points\" />\n </div>\n )}\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["tableSearchFields","columns","resolved","seen","Set","column","isTableActionColumn","searchable","segments","headerSegments","length","segment","id","sortKey","trim","label","dataLabel","has","add","push","header","headerLabel","selectedTableSearchFields","fields","selectedFieldIds","byId","Map","map","field","selected","fieldId","get","availableTableSearchFields","filter","filterTableSearchFields","query","normalizedQuery","toLocaleLowerCase","includes","nextTableSearchActiveIndex","currentIndex","optionCount","direction","safeIndex","tableSearchCss","tableSearchSequence","TableSearch","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","value","placeholder","ariaLabel","clearLabel","fieldMenuLabel","isInactive","menuOpen","menuQuery","activeIndex","focusRingVisible","position","x","y","positionReady","availableHeight","announcement","componentId","inputId","listboxId","descriptionId","inputEl","controlEl","popupEl","positionController","AnchoredPositionController","getAnchor","getPopup","getOwnerDocument","el","ownerDocument","measure","anchor","popup","isConnected","inset","resolveCssLengthPx","TOKEN_DEFAULTS","space050","style","minWidth","menuWidthXs","choicePopupMinWidth","offsetWidth","anchorRect","getBoundingClientRect","popupWidth","popupHeight","offsetHeight","side","align","sideOffsetPx","alignOffsetPx","resolveChoicePopupAlignOffset","sectionInsetPx","viewportPadPx","viewportWidth","window","innerWidth","viewportHeight","innerHeight","collisionRect","resolveAnchoredOverlayBoundaryRect","apply","onReady","topLayer","liveUpdate","observeResize","observeAnchorMotion","interactionController","AnchoredOverlayInteractionController","onOutsideActivation","closeMenu","disconnectedCallback","syncAvailableFields","count","availableFields","syncInactive","setFocus","focus","selectedFields","searchFields","visibleFields","activeOptionId","undefined","openMenu","fromKeyboard","requestAnimationFrame","connect","observe","schedule","matches","hidePopover","unobserve","disconnect","handleInput","event","nextValue","target","dsChange","emit","selectField","dsFieldsChange","preventScroll","removeLastField","removed","removeField","clearSearch","dsClear","handleKeyDown","key","altKey","ctrlKey","metaKey","preventDefault","querySelector","CSS","escape","scrollIntoView","block","render","available","visible","inputValue","hasValue","description","join","popupStyle","left","top","transform","Math","round","zIndex","visibility","floor","h","Host","class","ref","element","name","size","color","state","isInset","insetDepth","onDsRemove","type","role","disabled","String","autoComplete","autoCapitalize","autoCorrect","spellcheck","onInput","onKeyDown","variant","icon","hasBorder","rounded","onDsClick","orientation","labelEmphasis","focusTabIndex","haspopup","controls","expanded","surfaceOpen","onMouseDown","popover","index","active","onMouseMove","onClick","as","body"],"sources":["src/wc/components/TableSearch/table-search-model.ts","src/wc/components/TableSearch/TableSearch.css?tag=ds-table-search&encapsulation=scoped","src/wc/components/TableSearch/TableSearch.tsx"],"sourcesContent":["import { isTableActionColumn } from '../Table/table-column-customizer';\nimport type { TableColumn } from '../Table/table-types';\nimport type { TableSearchField } from './table-search-types';\n\n/** Searchable data points from the table catalog, including compound header segments. */\nexport function tableSearchFields(columns: readonly TableColumn[]): TableSearchField[] {\n const resolved: TableSearchField[] = [];\n const seen = new Set<string>();\n\n for (const column of columns) {\n if (isTableActionColumn(column) || column.searchable === false) continue;\n const segments = column.headerSegments ?? [];\n if (segments.length > 0) {\n for (const segment of segments) {\n const id = segment.sortKey.trim();\n const label = segment.dataLabel?.trim() || segment.label.trim() || id;\n if (!id || !label || segment.searchable === false || seen.has(id)) continue;\n seen.add(id);\n resolved.push({ id, label });\n }\n continue;\n }\n\n const id = column.id.trim();\n const label =\n column.dataLabel?.trim() || column.header.trim() || column.headerLabel?.trim() || id;\n if (!id || !label || seen.has(id)) continue;\n seen.add(id);\n resolved.push({ id, label });\n }\n\n return resolved;\n}\n\nexport function selectedTableSearchFields(\n fields: readonly TableSearchField[],\n selectedFieldIds: string[]\n): TableSearchField[] {\n const byId = new Map(fields.map(field => [field.id, field]));\n const selected: TableSearchField[] = [];\n const seen = new Set<string>();\n\n for (const fieldId of selectedFieldIds) {\n if (seen.has(fieldId)) continue;\n const field = byId.get(fieldId);\n if (!field) continue;\n seen.add(fieldId);\n selected.push(field);\n }\n\n return selected;\n}\n\nexport function availableTableSearchFields(\n fields: readonly TableSearchField[],\n selectedFieldIds: string[]\n): TableSearchField[] {\n const selected = new Set(selectedFieldIds);\n return fields.filter(field => !selected.has(field.id));\n}\n\n/** Matches the field-picker query against the complete visible label and canonical identity. */\nexport function filterTableSearchFields(\n fields: readonly TableSearchField[],\n query: string\n): TableSearchField[] {\n const normalizedQuery = query.trim().toLocaleLowerCase();\n if (!normalizedQuery) return [...fields];\n\n return fields.filter(field =>\n `${field.label} ${field.id}`.toLocaleLowerCase().includes(normalizedQuery)\n );\n}\n\nexport function nextTableSearchActiveIndex(\n currentIndex: number,\n optionCount: number,\n direction: 1 | -1\n): number {\n if (optionCount <= 0) return -1;\n const safeIndex = currentIndex >= 0 && currentIndex < optionCount ? currentIndex : 0;\n return (safeIndex + direction + optionCount) % optionCount;\n}\n","@import '../../utils/choice-list.css';\n@import '../../utils/control-density-inset.css';\n@import '../../utils/typography.css';\n@import '../../utils/visually-hidden.css';\n\n:host(.table-search-host) {\n display: inline-flex;\n box-sizing: border-box;\n inline-size: 100%;\n min-inline-size: 0;\n --ds-table-search-foreground: var(--color-foreground-primary);\n --ds-table-search-adornment: var(--color-foreground-secondary);\n --ds-table-search-placeholder: var(--color-foreground-secondary);\n --ds-table-search-placeholder-active: var(--color-foreground-quaternary);\n --ds-table-search-border: var(--color-border-secondary);\n}\n\n.table-search__control {\n inline-size: 100%;\n min-inline-size: 0;\n padding-inline-end: var(--dimension-space-050);\n overflow: hidden;\n border: 0;\n background: transparent;\n color: var(--ds-table-search-foreground);\n --ds-interaction-border-width: var(--dimension-stroke-width-012);\n --ds-interaction-border-color: var(--ds-table-search-border);\n}\n\n.table-search__control:focus-within {\n --ds-interaction-border-width: var(--dimension-stroke-width-018);\n --ds-interaction-border-color: var(--color-border-bold-brand);\n}\n\n:host(.ds-control-inactive) .table-search__control::after {\n background: transparent;\n}\n\n.table-search__icon,\n.table-search__actions {\n position: relative;\n z-index: 2;\n flex: none;\n}\n\n.table-search__icon {\n color: var(--ds-table-search-adornment);\n}\n\n.table-search__editor {\n position: relative;\n z-index: 2;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n min-inline-size: 0;\n block-size: 100%;\n gap: var(--dimension-space-050);\n overflow-x: auto;\n overflow-y: hidden;\n scrollbar-width: none;\n}\n\n.table-search__editor::-webkit-scrollbar {\n display: none;\n}\n\n.table-search__chip {\n flex: none;\n max-inline-size: var(--dimension-panel-width-2xs);\n}\n\n.table-search__input {\n appearance: none;\n box-sizing: border-box;\n flex: 1 0 var(--dimension-size-600);\n min-inline-size: var(--dimension-size-600);\n block-size: 100%;\n margin: 0;\n padding: 0;\n border: 0;\n outline: 0;\n background: transparent;\n color: var(--ds-table-search-foreground);\n text-overflow: ellipsis;\n}\n\n.table-search__input::-webkit-search-cancel-button,\n.table-search__input::-webkit-search-decoration {\n display: none;\n}\n\n.table-search__input::placeholder {\n color: var(--ds-table-search-placeholder);\n}\n\n.table-search__input:focus::placeholder {\n color: var(--ds-table-search-placeholder-active);\n}\n\n.table-search__actions {\n display: flex;\n align-items: center;\n gap: var(--dimension-space-050);\n}\n\n.table-search__clear,\n.table-search__slash,\n.table-search__action-divider {\n flex: none;\n}\n\n.table-search__slash {\n color: var(--ds-table-search-adornment);\n}\n\n.table-search__popup {\n --ds-choice-popup-min-inline-size: var(--dimension-menu-width-xs);\n}\n\n.table-search__list {\n padding: var(--dimension-space-050);\n}\n\n.table-search__option {\n flex: none;\n inline-size: 100%;\n}\n\n@media (forced-colors: active) {\n .table-search__control:focus-within::after {\n outline-color: var(--ds-forced-color-selected);\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport {\n choicePopupMinWidth,\n resolveChoicePopupAlignOffset,\n resolveCssLengthPx,\n TOKEN_DEFAULTS,\n} from '../../utils';\nimport { AnchoredPositionController } from '../../utils/anchored-position-controller';\nimport { AnchoredOverlayInteractionController } from '../../utils/anchored-overlay-interaction-controller';\nimport { resolveAnchoredOverlayBoundaryRect } from '../../utils/anchored-overlay-boundary';\nimport {\n availableTableSearchFields,\n filterTableSearchFields,\n nextTableSearchActiveIndex,\n selectedTableSearchFields,\n tableSearchFields,\n} from './table-search-model';\nimport type { TableColumn } from '../Table/table-types';\nimport type { TableSearchField, TableSearchFieldsChangeDetail } from './table-search-types';\n\nlet tableSearchSequence = 0;\n\n@Component({\n tag: 'ds-table-search',\n styleUrl: 'TableSearch.css',\n scoped: true,\n})\nexport class TableSearch {\n @Element() private el!: HTMLElement;\n\n /** Controlled free-text query. */\n @Prop() value: string = '';\n /** Table column catalog used to derive searchable data points and their complete labels. */\n @Prop() columns: TableColumn[] = [];\n /** Controlled ordered field scopes rendered as Tags. */\n @Prop() selectedFieldIds: string[] = [];\n @Prop() placeholder: string = 'Search';\n @Prop({ attribute: 'aria-label' }) ariaLabel: string = 'Search table';\n @Prop() clearLabel: string = 'Clear search';\n @Prop() fieldMenuLabel: string = 'Choose search fields';\n @Prop() isInactive: boolean = false;\n\n @Event({ bubbles: false }) dsChange!: EventEmitter<string>;\n @Event({ bubbles: false }) dsFieldsChange!: EventEmitter<TableSearchFieldsChangeDetail>;\n @Event({ bubbles: false }) dsClear!: EventEmitter<void>;\n\n @State() private menuOpen = false;\n @State() private menuQuery = '';\n @State() private activeIndex = 0;\n @State() private focusRingVisible = false;\n @State() private position = { x: 0, y: 0 };\n @State() private positionReady = false;\n @State() private availableHeight: number | null = null;\n @State() private announcement = '';\n\n private readonly componentId = `ds-table-search-${++tableSearchSequence}`;\n private readonly inputId = `${this.componentId}-input`;\n private readonly listboxId = `${this.componentId}-listbox`;\n private readonly descriptionId = `${this.componentId}-description`;\n private inputEl: HTMLInputElement | null = null;\n private controlEl: HTMLElement | null = null;\n private popupEl: HTMLElement | null = null;\n\n private readonly positionController = new AnchoredPositionController({\n getAnchor: () => this.controlEl,\n getPopup: () => this.popupEl,\n getOwnerDocument: () => this.el.ownerDocument,\n measure: (anchor, popup) => {\n if (!this.menuOpen || !popup.isConnected) return null;\n const inset = resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050);\n popup.style.minWidth = `max(var(--ds-choice-popup-min-inline-size, ${TOKEN_DEFAULTS.menuWidthXs}), ${choicePopupMinWidth(anchor.offsetWidth, inset)}px)`;\n const anchorRect = anchor.getBoundingClientRect();\n return {\n anchorRect,\n popupWidth: popup.offsetWidth,\n popupHeight: popup.offsetHeight,\n side: 'bottom',\n align: 'start',\n sideOffsetPx: inset,\n alignOffsetPx: resolveChoicePopupAlignOffset({\n align: 'start',\n alignOffsetPx: 0,\n sectionInsetPx: inset,\n }),\n viewportPadPx: inset,\n viewportWidth: window.innerWidth,\n viewportHeight: window.innerHeight,\n collisionRect: resolveAnchoredOverlayBoundaryRect(anchor),\n };\n },\n apply: ({ x, y, availableHeight }) => {\n this.position = { x, y };\n this.availableHeight = availableHeight;\n },\n onReady: () => {\n this.positionReady = true;\n },\n topLayer: true,\n liveUpdate: 'frame',\n observeResize: true,\n observeAnchorMotion: true,\n });\n\n private readonly interactionController = new AnchoredOverlayInteractionController({\n getAnchor: () => this.controlEl,\n getPopup: () => this.popupEl,\n getOwnerDocument: () => this.el.ownerDocument,\n onOutsideActivation: () => this.closeMenu(),\n });\n\n disconnectedCallback(): void {\n this.closeMenu();\n }\n\n @Watch('columns')\n @Watch('selectedFieldIds')\n syncAvailableFields(): void {\n const count = this.availableFields.length;\n if (count === 0) {\n this.closeMenu();\n return;\n }\n if (this.activeIndex >= count) this.activeIndex = count - 1;\n }\n\n @Watch('isInactive')\n syncInactive(isInactive: boolean): void {\n if (isInactive) this.closeMenu();\n }\n\n @Method()\n async setFocus(): Promise<void> {\n this.inputEl?.focus();\n }\n\n private get selectedFields(): TableSearchField[] {\n return selectedTableSearchFields(this.searchFields, this.selectedFieldIds);\n }\n\n private get availableFields(): TableSearchField[] {\n return availableTableSearchFields(this.searchFields, this.selectedFieldIds);\n }\n\n private get visibleFields(): TableSearchField[] {\n return filterTableSearchFields(this.availableFields, this.menuQuery);\n }\n\n private get searchFields(): TableSearchField[] {\n return tableSearchFields(this.columns);\n }\n\n private get activeOptionId(): string | undefined {\n return this.menuOpen && this.activeIndex >= 0\n ? `${this.componentId}-option-${this.activeIndex}`\n : undefined;\n }\n\n private openMenu(fromKeyboard: boolean): void {\n if (this.isInactive || this.menuOpen || this.availableFields.length === 0) return;\n this.menuQuery = '';\n // The native value can be ahead of the controlled prop when slash follows input\n // in the same frame, so clear it before the queued render can skip an equal value.\n if (this.inputEl) this.inputEl.value = '';\n this.activeIndex = 0;\n this.focusRingVisible = fromKeyboard;\n this.positionReady = false;\n this.menuOpen = true;\n requestAnimationFrame(() => {\n if (!this.menuOpen) return;\n this.interactionController.connect();\n this.positionController.observe();\n this.positionController.schedule();\n });\n }\n\n private closeMenu(): void {\n if (!this.menuOpen && !this.popupEl) return;\n if (this.popupEl?.matches(':popover-open')) this.popupEl.hidePopover();\n this.positionController.unobserve();\n this.interactionController.disconnect();\n this.popupEl = null;\n this.positionReady = false;\n this.availableHeight = null;\n this.menuOpen = false;\n this.menuQuery = '';\n }\n\n private handleInput(event: Event): void {\n const nextValue = (event.target as HTMLInputElement).value;\n if (this.menuOpen) {\n this.menuQuery = nextValue;\n this.activeIndex = filterTableSearchFields(this.availableFields, nextValue).length ? 0 : -1;\n this.focusRingVisible = false;\n this.positionController.schedule();\n return;\n }\n\n this.dsChange.emit(nextValue);\n }\n\n private selectField(field: TableSearchField): void {\n this.dsFieldsChange.emit({ selectedFieldIds: [...this.selectedFieldIds, field.id] });\n this.announcement = `${field.label} search field added.`;\n this.closeMenu();\n requestAnimationFrame(() => this.inputEl?.focus({ preventScroll: true }));\n }\n\n private removeLastField(): void {\n const selected = this.selectedFields;\n const removed = selected[selected.length - 1];\n if (!removed) return;\n this.dsFieldsChange.emit({\n selectedFieldIds: this.selectedFieldIds.filter(fieldId => fieldId !== removed.id),\n });\n this.announcement = `${removed.label} search field removed.`;\n }\n\n private removeField(field: TableSearchField): void {\n this.dsFieldsChange.emit({\n selectedFieldIds: this.selectedFieldIds.filter(fieldId => fieldId !== field.id),\n });\n this.announcement = `${field.label} search field removed.`;\n requestAnimationFrame(() => this.inputEl?.focus({ preventScroll: true }));\n }\n\n private clearSearch(): void {\n if (this.value) this.dsChange.emit('');\n if (this.selectedFieldIds.length) this.dsFieldsChange.emit({ selectedFieldIds: [] });\n this.dsClear.emit();\n this.announcement = 'Search cleared.';\n this.closeMenu();\n requestAnimationFrame(() => this.inputEl?.focus({ preventScroll: true }));\n }\n\n private handleKeyDown(event: KeyboardEvent): void {\n if (event.key === '/' && !this.menuOpen && !event.altKey && !event.ctrlKey && !event.metaKey) {\n event.preventDefault();\n this.openMenu(true);\n return;\n }\n\n if (event.key === 'Backspace' && this.menuOpen && this.menuQuery.length === 0) {\n event.preventDefault();\n this.closeMenu();\n return;\n }\n\n if (event.key === 'Backspace' && this.value.length === 0) {\n if (this.selectedFields.length) {\n event.preventDefault();\n this.removeLastField();\n }\n return;\n }\n\n if (!this.menuOpen) return;\n\n if (event.key === 'Escape') {\n event.preventDefault();\n this.closeMenu();\n return;\n }\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n this.focusRingVisible = true;\n this.activeIndex = nextTableSearchActiveIndex(\n this.activeIndex,\n this.visibleFields.length,\n event.key === 'ArrowDown' ? 1 : -1\n );\n this.el\n .querySelector<HTMLElement>(`#${CSS.escape(this.activeOptionId ?? '')}`)\n ?.scrollIntoView({ block: 'nearest' });\n return;\n }\n\n if (event.key === 'Enter') {\n const field = this.visibleFields[this.activeIndex];\n if (!field) return;\n event.preventDefault();\n this.selectField(field);\n return;\n }\n\n if (event.key === 'Tab') this.closeMenu();\n }\n\n render() {\n const selected = this.selectedFields;\n const available = this.availableFields;\n const visible = this.visibleFields;\n const inputValue = this.menuOpen ? this.menuQuery : this.value;\n const hasValue = this.value.length > 0 || selected.length > 0;\n const description = selected.length\n ? `Search limited to ${selected.map(field => field.label).join(' or ')}.`\n : 'Search includes every available table field. Type slash to choose fields.';\n const popupStyle: Record<string, string> = {\n position: 'fixed',\n left: '0',\n top: '0',\n transform: `translate(${Math.round(this.position.x)}px, ${Math.round(this.position.y)}px)`,\n zIndex: 'var(--dimension-z-index-floating)',\n visibility: this.positionReady ? 'visible' : 'hidden',\n };\n if (this.availableHeight !== null) {\n popupStyle['max-height'] = `${Math.floor(this.availableHeight)}px`;\n }\n\n return (\n <Host\n class={{\n 'table-search-host': true,\n 'ds-control--md': true,\n 'ds-control-inactive': this.isInactive,\n }}\n data-filled={hasValue ? '' : undefined}\n data-expanded={this.menuOpen ? '' : undefined}\n >\n <div\n ref={element => {\n this.controlEl = element ?? null;\n }}\n class=\"table-search__control ds-control-frame ds-control--md ds-interaction-fill\"\n >\n <span\n class=\"table-search__icon ds-control-icon-box ds-interaction-fill__content\"\n aria-hidden=\"true\"\n >\n <ds-icon name=\"MagnifyingGlass\" size=\"md\" color=\"inherit\" />\n </span>\n <div class=\"table-search__editor ds-interaction-fill__content\">\n {selected.map(field => (\n <ds-chip\n class=\"table-search__chip\"\n key={field.id}\n label={field.label}\n size=\"md\"\n state=\"default\"\n isInset\n insetDepth=\"double\"\n isInactive={this.isInactive}\n onDsRemove={() => this.removeField(field)}\n />\n ))}\n <input\n ref={element => {\n this.inputEl = element ?? null;\n }}\n id={this.inputId}\n class=\"table-search__input ds-text--body-medium ds-text--regular\"\n type=\"search\"\n role=\"combobox\"\n value={inputValue}\n placeholder={this.placeholder}\n disabled={this.isInactive}\n aria-label={this.ariaLabel}\n aria-describedby={this.descriptionId}\n aria-haspopup=\"listbox\"\n aria-expanded={String(this.menuOpen)}\n aria-controls={this.menuOpen ? this.listboxId : undefined}\n aria-activedescendant={this.activeOptionId}\n aria-keyshortcuts=\"/\"\n autoComplete=\"off\"\n autoCapitalize=\"none\"\n autoCorrect=\"off\"\n spellcheck={false}\n onInput={event => this.handleInput(event)}\n onKeyDown={event => this.handleKeyDown(event)}\n />\n </div>\n {this.searchFields.length > 0 && (\n <div class=\"table-search__actions ds-interaction-fill__content\">\n {inputValue.length > 0 && !this.isInactive && (\n <ds-button-unfilled\n class=\"table-search__clear\"\n variant=\"icon\"\n size=\"sm\"\n icon=\"CrossCircle\"\n hasBorder={false}\n rounded\n ariaLabel={this.clearLabel}\n onDsClick={() => this.clearSearch()}\n />\n )}\n {inputValue.length > 0 && !this.isInactive && (\n <ds-divider\n class=\"table-search__action-divider\"\n orientation=\"vertical\"\n length=\"var(--dimension-size-200)\"\n />\n )}\n <ds-button-unfilled\n class=\"table-search__slash\"\n variant=\"label\"\n size=\"md\"\n label=\"/\"\n labelEmphasis={false}\n isInset\n insetDepth=\"double\"\n hasBorder={false}\n ariaLabel={this.fieldMenuLabel}\n focusTabIndex={-1}\n haspopup=\"listbox\"\n controls={this.menuOpen ? this.listboxId : undefined}\n expanded={this.menuOpen}\n surfaceOpen={this.menuOpen}\n isInactive={this.isInactive || available.length === 0}\n onMouseDown={(event: MouseEvent) => event.preventDefault()}\n onDsClick={() => {\n this.inputEl?.focus({ preventScroll: true });\n this.openMenu(false);\n }}\n />\n </div>\n )}\n </div>\n <span id={this.descriptionId} class=\"ds-visually-hidden\">\n {description}\n </span>\n <span class=\"ds-visually-hidden\" aria-live=\"polite\">\n {this.announcement}\n </span>\n {this.menuOpen && (\n <div\n popover=\"manual\"\n ref={element => {\n this.popupEl = element ?? null;\n }}\n class=\"table-search__popup ds-choice-popup\"\n style={popupStyle}\n >\n <div\n id={this.listboxId}\n class=\"table-search__list ds-choice-list\"\n role=\"listbox\"\n aria-label={this.fieldMenuLabel}\n >\n {visible.map((field, index) => {\n const active = index === this.activeIndex;\n return (\n /* eslint-disable-next-line local/prefer-direct-ds-text -- The option owns listbox semantics and pointer interaction while ds-text remains its typography child. */\n <div\n id={`${this.componentId}-option-${index}`}\n key={field.id}\n class={{\n 'table-search__option': true,\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 role=\"option\"\n aria-selected={String(active)}\n onMouseDown={event => event.preventDefault()}\n onMouseMove={() => {\n this.focusRingVisible = false;\n this.activeIndex = index;\n }}\n onClick={() => this.selectField(field)}\n >\n <ds-text\n class=\"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 {field.label}\n </ds-text>\n </div>\n );\n })}\n {visible.length === 0 && (\n <div class=\"table-search__empty ds-choice-empty ds-empty-region\">\n <ds-empty-state body=\"No matching data points\" />\n </div>\n )}\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{p as s,H as e,c as t,h as i,a as n,t as o}from"./index.js";import{i as r}from"./p-BMERUCe1.js";import{d as l}from"./p-BMzn2Cmw.js";import{d as a}from"./p-6_CNVbqa.js";import{d as c}from"./p-Cea7rROU.js";import{d}from"./p-0XTyQNRG.js";import{d as u}from"./p-DlbhmXjH.js";import{d as m}from"./p-Q7AOgrg5.js";import{d as f}from"./p-DGkn8FwV.js";import{d as h}from"./p-BIGpc__9.js";import{d as b}from"./p-DQQsS9Rx.js";import{d as p}from"./p-DW8ssbfI.js";const g="direction:asc";const k="direction:desc";const E="field:";function w(s){const e=[];const t=new Set;for(const i of s){if(r(i)||!i.sortable)continue;const s=i.headerSegments?.filter((s=>s.sortKey.trim()))??[];if(s.length>0){for(const i of s){if(t.has(i.sortKey))continue;t.add(i.sortKey);e.push({id:i.sortKey,label:i.dataLabel?.trim()||i.label.trim()||i.sortKey})}continue}if(t.has(i.id))continue;t.add(i.id);e.push({id:i.id,label:i.dataLabel?.trim()||i.header.trim()||i.headerLabel?.trim()||i.id})}return e}function j(s,e){const t=w(s);return[{header:"Data",items:t.map((s=>({label:s.label,value:`${E}${encodeURIComponent(s.id)}`,isSelected:e?.columnId===s.id})))},{header:"Direction",items:[{label:"Ascending",value:g,icon:"ArrowUp",isSelected:e?.direction==="asc"},{label:"Descending",value:k,icon:"ArrowDown",isSelected:e?.direction==="desc"}]}]}function S(s,e){if(s===e)return true;if(!s||!e)return false;return s.columnId===e.columnId&&s.direction===e.direction}function D(s,e,t){const i=w(s);if(i.length===0)return e??null;if(t.value===g||t.value===k){const s=t.value===g?"asc":"desc";const n=i.some((s=>s.id===e?.columnId))?e.columnId:i[0].id;return{columnId:n,direction:s}}if(!t.value?.startsWith(E))return e??null;let n;try{n=decodeURIComponent(t.value.slice(E.length))}catch{return e??null}if(!i.some((s=>s.id===n)))return e??null;if(e?.columnId===n)return e??null;return{columnId:n,direction:e?.direction??"asc"}}const x=()=>`.sc-ds-table-sort-h{display:inline-flex;min-inline-size:0;max-inline-size:var(--dimension-menu-width-xs)}[hidden].sc-ds-table-sort-h{display:none}`;let C=0;const y=s(class s extends e{constructor(s){super();if(s!==false){this.__registerHost()}this.dsSortChange=t(this,"dsSortChange",3);this.columns=[];this.sort=null;this.ariaLabel=null;this.menuOpen=false;this.initialFocusVisible=false;this.componentId=`ds-table-sort-${++C}`;this.triggerId=`${this.componentId}-trigger`;this.menuId=`${this.componentId}-menu`}async setFocus(){const s=this.el.querySelector(`#${CSS.escape(this.triggerId)}`);await(s?.setFocus?.())}render(){const s=w(this.columns);const e=this.ariaLabel?.trim()||"Sort table";return i(n,{key:"dcbc9380d1ece45053cd5b1d69899c333963af08",hidden:s.length===0?true:undefined},s.length===0?null:i("ds-button-unfilled",{id:this.triggerId,variant:"icon-label",size:"md",icon:"ArrowsVertical",label:"Sort",labelEmphasis:false,pressScale:false,"aria-label":e,hasMenu:true,collapseLabel:true,expanded:this.menuOpen,controls:this.menuId,onDsClick:s=>{this.toggle(s.detail.detail===0)}}),s.length===0?null:i("ds-menu",{id:this.menuId,open:this.menuOpen,anchorId:this.triggerId,align:"start",side:"bottom",menuLabel:e,selectionMode:"none",initialFocusVisible:this.initialFocusVisible,sections:j(this.columns,this.sort),onDsClose:()=>this.close(),onDsSelect:s=>this.handleSelect(s.detail)}))}toggle(s=false){if(this.menuOpen)this.close();else this.open(s)}open(s=false){if(this.menuOpen)return;this.initialFocusVisible=s;this.menuOpen=true}close(){this.menuOpen=false}handleSelect(s){const e=D(this.columns,this.sort,s);if(S(this.sort,e))return;this.dsSortChange.emit({sort:e})}get el(){return this}static get style(){return x()}},[2,"ds-table-sort",{columns:[16],sort:[16],ariaLabel:[1,"aria-label"],menuOpen:[32],initialFocusVisible:[32],setFocus:[64]}]);function I(){if(typeof customElements==="undefined"){return}const s=["ds-table-sort","ds-badge","ds-button-unfilled","ds-icon","ds-loader","ds-menu","ds-swatch-picker","ds-switch","ds-tag","ds-text","ds-tooltip"];s.forEach((s=>{switch(s){case"ds-table-sort":if(!customElements.get(o(s))){customElements.define(o(s),y)}break;case"ds-badge":if(!customElements.get(o(s))){l()}break;case"ds-button-unfilled":if(!customElements.get(o(s))){a()}break;case"ds-icon":if(!customElements.get(o(s))){c()}break;case"ds-loader":if(!customElements.get(o(s))){d()}break;case"ds-menu":if(!customElements.get(o(s))){u()}break;case"ds-swatch-picker":if(!customElements.get(o(s))){m()}break;case"ds-switch":if(!customElements.get(o(s))){f()}break;case"ds-tag":if(!customElements.get(o(s))){h()}break;case"ds-text":if(!customElements.get(o(s))){b()}break;case"ds-tooltip":if(!customElements.get(o(s))){p()}break}}))}I();const R=y;const $=I;export{R as DsTableSort,$ as defineCustomElement};
1
+ import{p as s,H as e,c as t,h as i,a as n,t as o}from"./index.js";import{i as r}from"./p-BMERUCe1.js";import{d as a}from"./p-rSC7ZUpy.js";import{d as l}from"./p--yvQzZoO.js";import{d as c}from"./p-Cea7rROU.js";import{d}from"./p-0XTyQNRG.js";import{d as u}from"./p-D1pPq-y0.js";import{d as f}from"./p-BCFpqnAg.js";import{d as m}from"./p-Bl5wd3v3.js";import{d as h}from"./p-BGnRFtBa.js";import{d as p}from"./p-aMyflqva.js";import{d as b}from"./p-CN8PQLZu.js";const g="direction:asc";const k="direction:desc";const E="field:";function S(s){const e=[];const t=new Set;for(const i of s){if(r(i)||!i.sortable)continue;const s=i.headerSegments?.filter((s=>s.sortKey.trim()))??[];if(s.length>0){for(const i of s){if(t.has(i.sortKey))continue;t.add(i.sortKey);e.push({id:i.sortKey,label:i.dataLabel?.trim()||i.label.trim()||i.sortKey})}continue}if(t.has(i.id))continue;t.add(i.id);e.push({id:i.id,label:i.dataLabel?.trim()||i.header.trim()||i.headerLabel?.trim()||i.id})}return e}function w(s,e){const t=S(s);return[{header:"Data",items:t.map((s=>({label:s.label,value:`${E}${encodeURIComponent(s.id)}`,isSelected:e?.columnId===s.id})))},{header:"Direction",items:[{label:"Ascending",value:g,icon:"ArrowUp",isSelected:e?.direction==="asc"},{label:"Descending",value:k,icon:"ArrowDown",isSelected:e?.direction==="desc"}]}]}function j(s,e){if(s===e)return true;if(!s||!e)return false;return s.columnId===e.columnId&&s.direction===e.direction}function y(s,e,t){const i=S(s);if(i.length===0)return e??null;if(t.value===g||t.value===k){const s=t.value===g?"asc":"desc";const n=i.some((s=>s.id===e?.columnId))?e.columnId:i[0].id;return{columnId:n,direction:s}}if(!t.value?.startsWith(E))return e??null;let n;try{n=decodeURIComponent(t.value.slice(E.length))}catch{return e??null}if(!i.some((s=>s.id===n)))return e??null;if(e?.columnId===n)return e??null;return{columnId:n,direction:e?.direction??"asc"}}const C=()=>`.sc-ds-table-sort-h{display:inline-flex;min-inline-size:0;max-inline-size:var(--dimension-menu-width-xs)}[hidden].sc-ds-table-sort-h{display:none}`;let x=0;const D=s(class s extends e{constructor(s){super();if(s!==false){this.__registerHost()}this.dsSortChange=t(this,"dsSortChange",3);this.columns=[];this.sort=null;this.ariaLabel=null;this.menuOpen=false;this.menuSurfaceOpen=false;this.initialFocusVisible=false;this.componentId=`ds-table-sort-${++x}`;this.triggerId=`${this.componentId}-trigger`;this.menuId=`${this.componentId}-menu`}async setFocus(){const s=this.el.querySelector(`#${CSS.escape(this.triggerId)}`);await(s?.setFocus?.())}render(){const s=S(this.columns);const e=this.ariaLabel?.trim()||"Sort table";return i(n,{key:"dc10d9d95053c2747cc2d9afdc740f3fdd4590db",hidden:s.length===0?true:undefined},s.length===0?null:i("ds-button-unfilled",{id:this.triggerId,variant:"icon-label",size:"md",icon:"ArrowsVertical",label:"Sort",labelEmphasis:false,pressScale:false,"aria-label":e,hasMenu:true,collapseLabel:true,expanded:this.menuOpen,surfaceOpen:this.menuSurfaceOpen,controls:this.menuId,onDsClick:s=>{this.toggle(s.detail.detail===0)}}),s.length===0?null:i("ds-menu",{id:this.menuId,open:this.menuOpen,anchorId:this.triggerId,align:"start",side:"bottom",menuLabel:e,selectionMode:"none",initialFocusVisible:this.initialFocusVisible,sections:w(this.columns,this.sort),onDsClose:()=>this.close(),onDsAfterClose:()=>{if(!this.menuOpen)this.menuSurfaceOpen=false},onDsSelect:s=>this.handleSelect(s.detail)}))}toggle(s=false){if(this.menuOpen)this.close();else this.open(s)}open(s=false){if(this.menuOpen)return;this.initialFocusVisible=s;this.menuOpen=true;this.menuSurfaceOpen=true}close(){this.menuOpen=false}handleSelect(s){const e=y(this.columns,this.sort,s);if(j(this.sort,e))return;this.dsSortChange.emit({sort:e})}get el(){return this}static get style(){return C()}},[2,"ds-table-sort",{columns:[16],sort:[16],ariaLabel:[1,"aria-label"],menuOpen:[32],menuSurfaceOpen:[32],initialFocusVisible:[32],setFocus:[64]}]);function v(){if(typeof customElements==="undefined"){return}const s=["ds-table-sort","ds-badge","ds-button-unfilled","ds-icon","ds-loader","ds-menu","ds-swatch-picker","ds-switch","ds-tag","ds-text","ds-tooltip"];s.forEach((s=>{switch(s){case"ds-table-sort":if(!customElements.get(o(s))){customElements.define(o(s),D)}break;case"ds-badge":if(!customElements.get(o(s))){a()}break;case"ds-button-unfilled":if(!customElements.get(o(s))){l()}break;case"ds-icon":if(!customElements.get(o(s))){c()}break;case"ds-loader":if(!customElements.get(o(s))){d()}break;case"ds-menu":if(!customElements.get(o(s))){u()}break;case"ds-swatch-picker":if(!customElements.get(o(s))){f()}break;case"ds-switch":if(!customElements.get(o(s))){m()}break;case"ds-tag":if(!customElements.get(o(s))){h()}break;case"ds-text":if(!customElements.get(o(s))){p()}break;case"ds-tooltip":if(!customElements.get(o(s))){b()}break}}))}v();const A=D;const F=v;export{A as DsTableSort,F as defineCustomElement};
2
2
  //# sourceMappingURL=ds-table-sort.js.map