@ds-mo/ui 14.36.0 → 15.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (496) hide show
  1. package/NOTICE +6 -0
  2. package/README.md +7 -0
  3. package/dist/.package-ready.json +1 -1
  4. package/dist/agent-patterns.json +1 -1
  5. package/dist/agent.json +7485 -5096
  6. package/dist/angular/ds-conversation-list.d.ts +1 -1
  7. package/dist/angular/ds-conversation-list.js +3 -4
  8. package/dist/angular/ds-data-customize.d.ts +18 -0
  9. package/dist/angular/ds-data-customize.js +46 -0
  10. package/dist/angular/ds-data-filter.d.ts +50 -0
  11. package/dist/angular/{ds-table-filter.js → ds-data-filter.js} +10 -10
  12. package/dist/angular/ds-data-group.d.ts +29 -0
  13. package/dist/angular/{ds-table-group.js → ds-data-group.js} +10 -10
  14. package/dist/angular/ds-data-preferences.d.ts +39 -0
  15. package/dist/angular/{ds-table-preferences.js → ds-data-preferences.js} +15 -15
  16. package/dist/angular/ds-data-saved-views.d.ts +49 -0
  17. package/dist/angular/{ds-table-saved-views.js → ds-data-saved-views.js} +10 -10
  18. package/dist/angular/ds-data-search.d.ts +20 -0
  19. package/dist/angular/{ds-table-search.js → ds-data-search.js} +12 -12
  20. package/dist/angular/ds-data-sort.d.ts +16 -0
  21. package/dist/angular/{ds-table-sort.js → ds-data-sort.js} +12 -12
  22. package/dist/angular/ds-data-toolbar.d.ts +12 -0
  23. package/dist/angular/{ds-table-toolbar.js → ds-data-toolbar.js} +10 -10
  24. package/dist/angular/ds-table.d.ts +7 -7
  25. package/dist/angular/ds-table.js +6 -6
  26. package/dist/angular/index.d.ts +1 -1
  27. package/dist/angular/index.js +8 -7
  28. package/dist/angular/proxies.d.ts +8 -7
  29. package/dist/angular/proxies.js +8 -7
  30. package/dist/components/ds-agent-activity.js +1 -1
  31. package/dist/components/ds-agent-questionnaire.js +1 -1
  32. package/dist/components/ds-agent-response.js +1 -1
  33. package/dist/components/ds-agent-source-list.js +1 -1
  34. package/dist/components/ds-agent-tool-call.js +1 -1
  35. package/dist/components/ds-attachment-list.js +1 -1
  36. package/dist/components/ds-avatar.js +1 -1
  37. package/dist/components/ds-badge.js +1 -1
  38. package/dist/components/ds-banner.js +1 -1
  39. package/dist/components/ds-banner.js.map +1 -1
  40. package/dist/components/ds-bar-action.js +1 -1
  41. package/dist/components/ds-bar-nav.js +1 -1
  42. package/dist/components/ds-bar-page-title.js +1 -1
  43. package/dist/components/ds-bar-title.js +1 -1
  44. package/dist/components/ds-bar-workflow.js +1 -1
  45. package/dist/components/ds-breadcrumb.js +1 -1
  46. package/dist/components/ds-button-filled.js +1 -1
  47. package/dist/components/ds-button-inverted.js +1 -1
  48. package/dist/components/ds-button-unfilled.js +1 -1
  49. package/dist/components/ds-calendar.js +1 -1
  50. package/dist/components/ds-card-action-center.js +1 -1
  51. package/dist/components/ds-card-chart.js +1 -1
  52. package/dist/components/ds-card-chart.js.map +1 -1
  53. package/dist/components/ds-card-navigation.js +1 -1
  54. package/dist/components/ds-card-overview.js +1 -1
  55. package/dist/components/ds-card-overview.js.map +1 -1
  56. package/dist/components/ds-card-setting.js +1 -1
  57. package/dist/components/ds-card-setting.js.map +1 -1
  58. package/dist/components/ds-card-settings-scope.js +1 -1
  59. package/dist/components/ds-chart-legend.js +1 -1
  60. package/dist/components/ds-chart.js +1 -1
  61. package/dist/components/ds-chart.js.map +1 -1
  62. package/dist/components/ds-checkbox.js +1 -1
  63. package/dist/components/ds-chip.js +1 -1
  64. package/dist/components/ds-code-block.js +1 -1
  65. package/dist/components/ds-conversation-list-item.js +1 -1
  66. package/dist/components/ds-conversation-list-item.js.map +1 -1
  67. package/dist/components/ds-conversation-list-section.js +1 -1
  68. package/dist/components/ds-conversation-list.js +1 -1
  69. package/dist/components/ds-conversation-list.js.map +1 -1
  70. package/dist/components/ds-data-customize.d.ts +11 -0
  71. package/dist/components/ds-data-customize.js +2 -0
  72. package/dist/components/ds-data-customize.js.map +1 -0
  73. package/dist/components/{ds-table-group.d.ts → ds-data-filter.d.ts} +4 -4
  74. package/dist/components/ds-data-filter.js +2 -0
  75. package/dist/components/ds-data-filter.js.map +1 -0
  76. package/dist/components/{ds-table-sort.d.ts → ds-data-group.d.ts} +4 -4
  77. package/dist/components/ds-data-group.js +2 -0
  78. package/dist/components/{ds-table-saved-views.d.ts → ds-data-preferences.d.ts} +4 -4
  79. package/dist/components/ds-data-preferences.js +2 -0
  80. package/dist/components/ds-data-preferences.js.map +1 -0
  81. package/dist/components/ds-data-saved-views.d.ts +11 -0
  82. package/dist/components/ds-data-saved-views.js +2 -0
  83. package/dist/components/ds-data-saved-views.js.map +1 -0
  84. package/dist/components/{ds-table-search.d.ts → ds-data-search.d.ts} +4 -4
  85. package/dist/components/ds-data-search.js +2 -0
  86. package/dist/components/ds-data-search.js.map +1 -0
  87. package/dist/components/ds-data-sort.d.ts +11 -0
  88. package/dist/components/ds-data-sort.js +2 -0
  89. package/dist/components/ds-data-sort.js.map +1 -0
  90. package/dist/components/{ds-table-filter.d.ts → ds-data-toolbar.d.ts} +4 -4
  91. package/dist/components/ds-data-toolbar.js +2 -0
  92. package/dist/components/ds-data-toolbar.js.map +1 -0
  93. package/dist/components/ds-divider.js +1 -1
  94. package/dist/components/ds-empty-state.js +1 -1
  95. package/dist/components/ds-field.js +1 -1
  96. package/dist/components/ds-filter-menu.js +1 -1
  97. package/dist/components/ds-icon.js +1 -1
  98. package/dist/components/ds-input-date.js +1 -1
  99. package/dist/components/ds-input-time.js +1 -1
  100. package/dist/components/ds-input-time.js.map +1 -1
  101. package/dist/components/ds-input.js +1 -1
  102. package/dist/components/ds-markdown.js +1 -1
  103. package/dist/components/ds-menu.js +1 -1
  104. package/dist/components/ds-message-actions.js +1 -1
  105. package/dist/components/ds-message-bubble.js +1 -1
  106. package/dist/components/ds-message-composer.js +1 -1
  107. package/dist/components/ds-message-composer.js.map +1 -1
  108. package/dist/components/ds-message-scroller.js +1 -1
  109. package/dist/components/ds-message-scroller.js.map +1 -1
  110. package/dist/components/ds-message.js +1 -1
  111. package/dist/components/ds-mobile-bar-nav.js +1 -1
  112. package/dist/components/ds-mobile-header.js +1 -1
  113. package/dist/components/ds-mobile-section-switcher.js +1 -1
  114. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  115. package/dist/components/ds-modal.js +1 -1
  116. package/dist/components/ds-pagination.js +1 -1
  117. package/dist/components/ds-panel-nav.js +1 -1
  118. package/dist/components/ds-panel-sub-nav.js +1 -1
  119. package/dist/components/ds-panel-tool-header.js +1 -1
  120. package/dist/components/ds-panel-tool-search.js +1 -1
  121. package/dist/components/ds-panel-tools.js +1 -1
  122. package/dist/components/ds-paper-texture.js +1 -1
  123. package/dist/components/ds-radio.js +1 -1
  124. package/dist/components/ds-score.js +1 -1
  125. package/dist/components/ds-scroll-overlay.js +1 -1
  126. package/dist/components/ds-scroll-overlay.js.map +1 -1
  127. package/dist/components/ds-select.js +1 -1
  128. package/dist/components/ds-shell-app.js +1 -1
  129. package/dist/components/ds-shell-page.js +1 -1
  130. package/dist/components/ds-shell-tools.js +1 -1
  131. package/dist/components/ds-skeleton.js +1 -1
  132. package/dist/components/ds-slider.js +1 -1
  133. package/dist/components/ds-swatch-picker.js +1 -1
  134. package/dist/components/ds-switch.js +1 -1
  135. package/dist/components/ds-tab-group.js +1 -1
  136. package/dist/components/ds-table.js +1 -1
  137. package/dist/components/ds-table.js.map +1 -1
  138. package/dist/components/ds-tag.js +1 -1
  139. package/dist/components/ds-text.js +1 -1
  140. package/dist/components/ds-textarea.js +1 -1
  141. package/dist/components/ds-time-picker.js +1 -1
  142. package/dist/components/ds-toast.js +1 -1
  143. package/dist/components/ds-tooltip-chart.js +1 -1
  144. package/dist/components/ds-tooltip.js +1 -1
  145. package/dist/components/ds-typing-indicator.js +1 -1
  146. package/dist/components/index.d.ts +5 -5
  147. package/dist/components/{p-D8rpKod8.js → p-0FYD2bev.js} +2 -2
  148. package/dist/components/p-0qY_HDId.js +2 -0
  149. package/dist/components/{p-C0CE2v5D.js.map → p-0qY_HDId.js.map} +1 -1
  150. package/dist/components/{p-DK9Ex3aY.js → p-5URekSny.js} +2 -2
  151. package/dist/components/{p-Ds51RgCi.js → p-7V1AhetH.js} +2 -2
  152. package/dist/components/{p-C2JnoaWI.js → p-8yBdCXCn.js} +2 -2
  153. package/dist/components/{p-CQIh2yRP.js → p-BKZdqJQB.js} +2 -2
  154. package/dist/components/p-BKZdqJQB.js.map +1 -0
  155. package/dist/components/p-BYrBU_U9.js +2 -0
  156. package/dist/components/p-BYrBU_U9.js.map +1 -0
  157. package/dist/components/{p-ClJhuG5Y.js → p-B_jdoM7e.js} +2 -2
  158. package/dist/components/{p-ClJhuG5Y.js.map → p-B_jdoM7e.js.map} +1 -1
  159. package/dist/components/{p-su6y4hLK.js → p-BciTtTwx.js} +2 -2
  160. package/dist/components/{p-DgG9W9N4.js → p-BeNa6tw5.js} +2 -2
  161. package/dist/components/{p-DgG9W9N4.js.map → p-BeNa6tw5.js.map} +1 -1
  162. package/dist/components/p-BgQMEHRa.js +2 -0
  163. package/dist/components/{p-D7yBIPB6.js.map → p-BgQMEHRa.js.map} +1 -1
  164. package/dist/components/{p-CQ5RwY2C.js → p-BhJXmuRA.js} +2 -2
  165. package/dist/components/{p-neWTRxmf.js → p-Bm7rqs3C.js} +2 -2
  166. package/dist/components/{p-BV5T1hzN.js → p-Bn8I7iw6.js} +2 -2
  167. package/dist/components/{p-PmcUwTQ_.js → p-Bpd6YCo4.js} +2 -2
  168. package/dist/components/p-C-3YqeTb.js +2 -0
  169. package/dist/components/{p-TjXGRPik.js.map → p-C-3YqeTb.js.map} +1 -1
  170. package/dist/components/{p-B27_chI7.js → p-C6xVxqOn.js} +2 -2
  171. package/dist/components/{p-C4m8y9ki.js → p-CD4DZPy_.js} +2 -2
  172. package/dist/components/{p-CuwopElg.js → p-CGidq1iC.js} +2 -2
  173. package/dist/components/{p-CWog26I_.js → p-CNxvnQ6A.js} +2 -2
  174. package/dist/components/{p-2GVGhrh0.js → p-CUcUHwI3.js} +2 -2
  175. package/dist/components/{p-CbSUyv5B.js → p-CYzFfFcH.js} +2 -2
  176. package/dist/components/{p-8oRkhvjy.js → p-CdGXzRP8.js} +2 -2
  177. package/dist/components/p-CdgOLWX9.js +2 -0
  178. package/dist/components/p-CdgOLWX9.js.map +1 -0
  179. package/dist/components/{p-Jaqdfw4E.js → p-CiH4GG6r.js} +2 -2
  180. package/dist/components/{p-Cl9phSf0.js → p-CiJ1WR11.js} +2 -2
  181. package/dist/components/{p-Cus1Sigh.js → p-CmexIVnE.js} +2 -2
  182. package/dist/components/{p-Dryt3COt.js → p-Cqc2U1ZQ.js} +2 -2
  183. package/dist/components/{p-Dryt3COt.js.map → p-Cqc2U1ZQ.js.map} +1 -1
  184. package/dist/components/{p-DLXXGgmf.js → p-CzIpquvw.js} +2 -2
  185. package/dist/components/{p-tNQ0YulU.js → p-D0y7Sja6.js} +2 -2
  186. package/dist/components/{p-x1wf38q3.js → p-D1vQGJzc.js} +2 -2
  187. package/dist/components/{p-x1wf38q3.js.map → p-D1vQGJzc.js.map} +1 -1
  188. package/dist/components/{p-ji09W9el.js → p-D922f6Tb.js} +2 -2
  189. package/dist/components/{p-DtkLtKY0.js → p-DEW7r0U9.js} +2 -2
  190. package/dist/components/p-DEW7r0U9.js.map +1 -0
  191. package/dist/components/{p-CaNCGKEJ.js → p-DHICPS4n.js} +2 -2
  192. package/dist/components/{p-Cga6Ex0E.js → p-DOAybCp0.js} +2 -2
  193. package/dist/components/{p-CWPT3aOB.js → p-DVINzOoK.js} +2 -2
  194. package/dist/components/{p-CWPT3aOB.js.map → p-DVINzOoK.js.map} +1 -1
  195. package/dist/components/{p-7O-2D29W.js → p-DVOjjuXc.js} +2 -2
  196. package/dist/components/{p-CMQUuGvl.js → p-Dfs98tpL.js} +2 -2
  197. package/dist/components/{p-CMQUuGvl.js.map → p-Dfs98tpL.js.map} +1 -1
  198. package/dist/components/{p-DkikNSSO.js → p-Di5FH7eh.js} +2 -2
  199. package/dist/components/{p-DkikNSSO.js.map → p-Di5FH7eh.js.map} +1 -1
  200. package/dist/components/p-DjkUFlDW.js +2 -0
  201. package/dist/components/p-DjkUFlDW.js.map +1 -0
  202. package/dist/components/{p-DVd1TIxi.js → p-Dn9QHL4O.js} +2 -2
  203. package/dist/components/{p-C-dHtQMi.js → p-Do2FJd1y.js} +2 -2
  204. package/dist/components/{p-BWfzaSc3.js → p-DpoTwJAR.js} +2 -2
  205. package/dist/components/p-Dw9sE6Iw.js +2 -0
  206. package/dist/components/p-Dw9sE6Iw.js.map +1 -0
  207. package/dist/components/{p-BgLI9JoT.js → p-DwbcNDJF.js} +2 -2
  208. package/dist/components/p-Dzndkdx5.js +2 -0
  209. package/dist/components/{p-BOhpMUwO.js.map → p-Dzndkdx5.js.map} +1 -1
  210. package/dist/components/{p-DvzI2A_M.js → p-E5W27Fu_.js} +2 -2
  211. package/dist/components/{p-DkfM55x8.js → p-FIBCluwV.js} +2 -2
  212. package/dist/components/{p-DBwa1OXP.js → p-ZhP2tVmM.js} +2 -2
  213. package/dist/components/p-ZhP2tVmM.js.map +1 -0
  214. package/dist/components/p-aD5cw_m2.js +2 -0
  215. package/dist/components/p-aD5cw_m2.js.map +1 -0
  216. package/dist/components/{p-J5x-QtlD.js → p-etifxiDc.js} +2 -2
  217. package/dist/components/p-etifxiDc.js.map +1 -0
  218. package/dist/components/p-kDZ0sEII.js +2 -0
  219. package/dist/components/p-kDZ0sEII.js.map +1 -0
  220. package/dist/components/{p-rYePOPbJ.js → p-ljbw3UMZ.js} +2 -2
  221. package/dist/components/{p-DZ58Sg5a.js → p-vfCu7XSc.js} +2 -2
  222. package/dist/components/{p-Ce4zy8q1.js → p-xdmJCPCg.js} +2 -2
  223. package/dist/components/{p-CDJ2Ntcq.js → p-xtGGIZmU.js} +2 -2
  224. package/dist/docs/components.json +13115 -12615
  225. package/dist/lib/components/Icon/flag-icon-catalog.d.ts +2 -0
  226. package/dist/lib/components/Icon/icon-cache.d.ts +36 -4
  227. package/dist/lib/components/Icon/map-icon-catalog.d.ts +2 -0
  228. package/dist/lib/shell/index.js +2 -2
  229. package/dist/lib/shell/index.js.map +1 -1
  230. package/dist/lib/utils/index.js +68 -5
  231. package/dist/lib/utils/index.js.map +3 -3
  232. package/dist/lint/STYLELINT-LICENSE +20 -0
  233. package/dist/lint/THIRD-PARTY-NOTICES +553 -0
  234. package/dist/lint/index.d.ts +7 -0
  235. package/dist/lint/index.js +51385 -0
  236. package/dist/lint/types.d.ts +13 -0
  237. package/dist/mcp-data/registry/agent-activity.json +8 -3
  238. package/dist/mcp-data/registry/agent-questionnaire.json +8 -3
  239. package/dist/mcp-data/registry/agent-response.json +13 -2
  240. package/dist/mcp-data/registry/agent-source-list.json +7 -2
  241. package/dist/mcp-data/registry/agent-tool-call.json +8 -3
  242. package/dist/mcp-data/registry/attachment-list.json +7 -2
  243. package/dist/mcp-data/registry/avatar.json +22 -2
  244. package/dist/mcp-data/registry/badge.json +31 -3
  245. package/dist/mcp-data/registry/banner.json +29 -3
  246. package/dist/mcp-data/registry/bar-action.json +25 -2
  247. package/dist/mcp-data/registry/bar-nav.json +7 -2
  248. package/dist/mcp-data/registry/bar-page-title.json +25 -2
  249. package/dist/mcp-data/registry/bar-title.json +27 -2
  250. package/dist/mcp-data/registry/bar-workflow.json +25 -2
  251. package/dist/mcp-data/registry/breadcrumb.json +7 -2
  252. package/dist/mcp-data/registry/button-filled.json +69 -2
  253. package/dist/mcp-data/registry/button-inverted.json +65 -2
  254. package/dist/mcp-data/registry/button-unfilled.json +67 -2
  255. package/dist/mcp-data/registry/calendar.json +15 -2
  256. package/dist/mcp-data/registry/card-action-center.json +25 -2
  257. package/dist/mcp-data/registry/card-chart.json +38 -3
  258. package/dist/mcp-data/registry/card-navigation.json +37 -2
  259. package/dist/mcp-data/registry/card-overview.json +28 -3
  260. package/dist/mcp-data/registry/card-setting.json +36 -3
  261. package/dist/mcp-data/registry/card-settings-scope.json +25 -2
  262. package/dist/mcp-data/registry/chart-legend.json +7 -2
  263. package/dist/mcp-data/registry/chart.json +8 -3
  264. package/dist/mcp-data/registry/checkbox.json +39 -3
  265. package/dist/mcp-data/registry/chip.json +51 -2
  266. package/dist/mcp-data/registry/code-block.json +31 -2
  267. package/dist/mcp-data/registry/conversation-list-item.json +26 -3
  268. package/dist/mcp-data/registry/conversation-list-section.json +15 -2
  269. package/dist/mcp-data/registry/conversation-list.json +16 -33
  270. package/dist/mcp-data/registry/data-customize.json +399 -0
  271. package/dist/mcp-data/registry/{table-filter.json → data-filter.json} +59 -34
  272. package/dist/mcp-data/registry/data-group.json +383 -0
  273. package/dist/mcp-data/registry/data-preferences.json +591 -0
  274. package/dist/mcp-data/registry/data-saved-views.json +458 -0
  275. package/dist/mcp-data/registry/data-search.json +392 -0
  276. package/dist/mcp-data/registry/data-sort.json +279 -0
  277. package/dist/mcp-data/registry/data-toolbar.json +194 -0
  278. package/dist/mcp-data/registry/divider.json +7 -2
  279. package/dist/mcp-data/registry/empty-state.json +7 -2
  280. package/dist/mcp-data/registry/field.json +15 -2
  281. package/dist/mcp-data/registry/filter-menu.json +51 -4
  282. package/dist/mcp-data/registry/icon.json +34 -8
  283. package/dist/mcp-data/registry/input-date.json +49 -2
  284. package/dist/mcp-data/registry/input-time.json +49 -2
  285. package/dist/mcp-data/registry/input.json +50 -3
  286. package/dist/mcp-data/registry/loader.json +22 -2
  287. package/dist/mcp-data/registry/markdown.json +18 -2
  288. package/dist/mcp-data/registry/menu.json +29 -4
  289. package/dist/mcp-data/registry/message-actions.json +7 -2
  290. package/dist/mcp-data/registry/message-bubble.json +27 -2
  291. package/dist/mcp-data/registry/message-composer.json +26 -3
  292. package/dist/mcp-data/registry/message-scroller.json +13 -2
  293. package/dist/mcp-data/registry/message.json +7 -2
  294. package/dist/mcp-data/registry/mobile-bar-nav.json +26 -3
  295. package/dist/mcp-data/registry/mobile-header.json +27 -2
  296. package/dist/mcp-data/registry/mobile-section-switcher.json +27 -2
  297. package/dist/mcp-data/registry/mobile-sheet-nav.json +28 -3
  298. package/dist/mcp-data/registry/modal.json +25 -2
  299. package/dist/mcp-data/registry/pagination.json +7 -2
  300. package/dist/mcp-data/registry/panel-nav.json +29 -3
  301. package/dist/mcp-data/registry/panel-sub-nav.json +26 -1
  302. package/dist/mcp-data/registry/panel-tool-header.json +25 -2
  303. package/dist/mcp-data/registry/panel-tool-search.json +25 -2
  304. package/dist/mcp-data/registry/panel-tools.json +28 -4
  305. package/dist/mcp-data/registry/paper-texture.json +7 -2
  306. package/dist/mcp-data/registry/radio.json +36 -2
  307. package/dist/mcp-data/registry/registry.json +7465 -5073
  308. package/dist/mcp-data/registry/score.json +39 -2
  309. package/dist/mcp-data/registry/scroll-overlay.json +7 -2
  310. package/dist/mcp-data/registry/select.json +53 -2
  311. package/dist/mcp-data/registry/shell-app.json +27 -2
  312. package/dist/mcp-data/registry/shell-page.json +7 -2
  313. package/dist/mcp-data/registry/shell-tools.json +26 -2
  314. package/dist/mcp-data/registry/skeleton.json +42 -2
  315. package/dist/mcp-data/registry/slider.json +43 -2
  316. package/dist/mcp-data/registry/swatch-picker.json +25 -2
  317. package/dist/mcp-data/registry/switch.json +38 -2
  318. package/dist/mcp-data/registry/tab-group.json +50 -2
  319. package/dist/mcp-data/registry/table.json +173 -72
  320. package/dist/mcp-data/registry/tag.json +53 -2
  321. package/dist/mcp-data/registry/text.json +23 -2
  322. package/dist/mcp-data/registry/textarea.json +39 -2
  323. package/dist/mcp-data/registry/time-picker.json +15 -2
  324. package/dist/mcp-data/registry/toast.json +25 -2
  325. package/dist/mcp-data/registry/tooltip-chart.json +25 -2
  326. package/dist/mcp-data/registry/tooltip.json +27 -2
  327. package/dist/mcp-data/registry/typing-indicator.json +7 -2
  328. package/dist/react/components.d.ts +8 -7
  329. package/dist/react/components.js +8 -7
  330. package/dist/react/ds-data-customize.d.ts +13 -0
  331. package/dist/react/ds-data-customize.js +15 -0
  332. package/dist/react/ds-data-filter.d.ts +18 -0
  333. package/dist/react/{ds-table-filter.js → ds-data-filter.js} +5 -5
  334. package/dist/react/ds-data-group.d.ts +14 -0
  335. package/dist/react/{ds-table-group.js → ds-data-group.js} +5 -5
  336. package/dist/react/ds-data-preferences.d.ts +21 -0
  337. package/dist/react/{ds-table-preferences.js → ds-data-preferences.js} +6 -6
  338. package/dist/react/ds-data-saved-views.d.ts +17 -0
  339. package/dist/react/{ds-table-saved-views.js → ds-data-saved-views.js} +5 -5
  340. package/dist/react/ds-data-search.d.ts +14 -0
  341. package/dist/react/{ds-table-search.js → ds-data-search.js} +5 -5
  342. package/dist/react/ds-data-sort.d.ts +12 -0
  343. package/dist/react/ds-data-sort.js +12 -0
  344. package/dist/react/{ds-table-toolbar.d.ts → ds-data-toolbar.d.ts} +3 -3
  345. package/dist/react/ds-data-toolbar.js +12 -0
  346. package/dist/react/ds-table.d.ts +3 -3
  347. package/dist/react/ds-table.js +1 -1
  348. package/dist/styles/table.css +11 -11
  349. package/dist/types/components/ConversationList/ConversationList.d.ts +0 -7
  350. package/dist/types/components/DataCustomize/DataCustomize.d.ts +67 -0
  351. package/dist/types/components/{TableFilter/TableFilter.d.ts → DataFilter/DataFilter.d.ts} +2 -2
  352. package/dist/types/components/{TableGroup/TableGroup.d.ts → DataGroup/DataGroup.d.ts} +8 -8
  353. package/dist/types/components/{TablePreferences/TablePreferences.d.ts → DataPreferences/DataPreferences.d.ts} +29 -13
  354. package/dist/types/components/{TableSavedViews/TableSavedViews.d.ts → DataSavedViews/DataSavedViews.d.ts} +10 -10
  355. package/dist/types/components/DataSavedViews/data-saved-views-types.d.ts +24 -0
  356. package/dist/types/components/DataSavedViews/index.d.ts +2 -0
  357. package/dist/types/components/{TableSearch/TableSearch.d.ts → DataSearch/DataSearch.d.ts} +6 -6
  358. package/dist/types/components/{TableSearch/table-search-model.d.ts → DataSearch/data-search-model.d.ts} +6 -6
  359. package/dist/types/components/{TableSearch/table-search-types.d.ts → DataSearch/data-search-types.d.ts} +3 -3
  360. package/dist/types/components/{TableSort/TableSort.d.ts → DataSort/DataSort.d.ts} +7 -6
  361. package/dist/types/components/DataSort/data-sort-menu.d.ts +15 -0
  362. package/dist/types/components/{TableToolbar/TableToolbar.d.ts → DataToolbar/DataToolbar.d.ts} +3 -3
  363. package/dist/types/components/Icon/icon-cache.d.ts +36 -4
  364. package/dist/types/components/Icon/map-icon-catalog.d.ts +3 -0
  365. package/dist/types/components/PanelTools/PanelTools.d.ts +1 -1
  366. package/dist/types/components/Table/Table.d.ts +9 -9
  367. package/dist/types/components/Table/index.d.ts +1 -1
  368. package/dist/types/components/Table/table-action-menu.d.ts +1 -1
  369. package/dist/types/components/Table/table-body-renderer.d.ts +2 -2
  370. package/dist/types/components/Table/table-column-customizer.d.ts +9 -9
  371. package/dist/types/components/Table/table-group-load-controller.d.ts +2 -2
  372. package/dist/types/components/Table/table-model.d.ts +7 -7
  373. package/dist/types/components/Table/table-render-model.d.ts +3 -3
  374. package/dist/types/components/Table/table-types.d.ts +17 -36
  375. package/dist/types/components/Table/table-virtual-model.d.ts +2 -2
  376. package/dist/types/components.d.ts +3837 -3640
  377. package/dist/types/utils/data-field.d.ts +38 -0
  378. package/dist/types/utils/list-customizer.d.ts +38 -0
  379. package/dist/types/utils/table-caption-compact.d.ts +1 -1
  380. package/dist/vue/components.d.ts +8 -7
  381. package/dist/vue/components.js +8 -7
  382. package/dist/vue/ds-conversation-list.js +1 -3
  383. package/dist/vue/ds-data-customize.d.ts +3 -0
  384. package/dist/vue/ds-data-customize.js +23 -0
  385. package/dist/vue/{ds-table-group.d.ts → ds-data-filter.d.ts} +1 -1
  386. package/dist/vue/{ds-table-filter.js → ds-data-filter.js} +2 -2
  387. package/dist/vue/{ds-table-sort.d.ts → ds-data-group.d.ts} +1 -1
  388. package/dist/vue/{ds-table-group.js → ds-data-group.js} +2 -2
  389. package/dist/vue/{ds-table-saved-views.d.ts → ds-data-preferences.d.ts} +1 -1
  390. package/dist/vue/{ds-table-preferences.js → ds-data-preferences.js} +10 -7
  391. package/dist/vue/ds-data-saved-views.d.ts +3 -0
  392. package/dist/vue/{ds-table-saved-views.js → ds-data-saved-views.js} +2 -2
  393. package/dist/vue/{ds-table-filter.d.ts → ds-data-search.d.ts} +1 -1
  394. package/dist/vue/{ds-table-search.js → ds-data-search.js} +3 -3
  395. package/dist/vue/{ds-table-search.d.ts → ds-data-sort.d.ts} +1 -1
  396. package/dist/vue/{ds-table-sort.js → ds-data-sort.js} +3 -3
  397. package/dist/vue/ds-data-toolbar.d.ts +3 -0
  398. package/dist/vue/ds-data-toolbar.js +9 -0
  399. package/dist/vue/ds-table.js +4 -4
  400. package/package.json +34 -9
  401. package/dist/angular/ds-table-filter.d.ts +0 -50
  402. package/dist/angular/ds-table-group.d.ts +0 -29
  403. package/dist/angular/ds-table-preferences.d.ts +0 -39
  404. package/dist/angular/ds-table-saved-views.d.ts +0 -49
  405. package/dist/angular/ds-table-search.d.ts +0 -20
  406. package/dist/angular/ds-table-sort.d.ts +0 -16
  407. package/dist/angular/ds-table-toolbar.d.ts +0 -12
  408. package/dist/components/ds-table-filter.js +0 -2
  409. package/dist/components/ds-table-filter.js.map +0 -1
  410. package/dist/components/ds-table-group.js +0 -2
  411. package/dist/components/ds-table-preferences.d.ts +0 -11
  412. package/dist/components/ds-table-preferences.js +0 -2
  413. package/dist/components/ds-table-preferences.js.map +0 -1
  414. package/dist/components/ds-table-saved-views.js +0 -2
  415. package/dist/components/ds-table-saved-views.js.map +0 -1
  416. package/dist/components/ds-table-search.js +0 -2
  417. package/dist/components/ds-table-search.js.map +0 -1
  418. package/dist/components/ds-table-sort.js +0 -2
  419. package/dist/components/ds-table-sort.js.map +0 -1
  420. package/dist/components/ds-table-toolbar.d.ts +0 -11
  421. package/dist/components/ds-table-toolbar.js +0 -2
  422. package/dist/components/ds-table-toolbar.js.map +0 -1
  423. package/dist/components/p-BOhpMUwO.js +0 -2
  424. package/dist/components/p-C0CE2v5D.js +0 -2
  425. package/dist/components/p-CKarsuR2.js +0 -2
  426. package/dist/components/p-CKarsuR2.js.map +0 -1
  427. package/dist/components/p-CQIh2yRP.js.map +0 -1
  428. package/dist/components/p-Cea7rROU.js +0 -2
  429. package/dist/components/p-Cea7rROU.js.map +0 -1
  430. package/dist/components/p-D7yBIPB6.js +0 -2
  431. package/dist/components/p-DBwa1OXP.js.map +0 -1
  432. package/dist/components/p-DtkLtKY0.js.map +0 -1
  433. package/dist/components/p-J5x-QtlD.js.map +0 -1
  434. package/dist/components/p-KBrC9IG4.js +0 -2
  435. package/dist/components/p-KBrC9IG4.js.map +0 -1
  436. package/dist/components/p-MQ36mEgn.js +0 -2
  437. package/dist/components/p-MQ36mEgn.js.map +0 -1
  438. package/dist/components/p-TjXGRPik.js +0 -2
  439. package/dist/components/p-bM3LH3kc.js +0 -2
  440. package/dist/components/p-bM3LH3kc.js.map +0 -1
  441. package/dist/mcp-data/registry/table-group.json +0 -358
  442. package/dist/mcp-data/registry/table-preferences.json +0 -511
  443. package/dist/mcp-data/registry/table-saved-views.json +0 -433
  444. package/dist/mcp-data/registry/table-search.json +0 -366
  445. package/dist/mcp-data/registry/table-sort.json +0 -253
  446. package/dist/mcp-data/registry/table-toolbar.json +0 -180
  447. package/dist/react/ds-table-filter.d.ts +0 -18
  448. package/dist/react/ds-table-group.d.ts +0 -14
  449. package/dist/react/ds-table-preferences.d.ts +0 -21
  450. package/dist/react/ds-table-saved-views.d.ts +0 -17
  451. package/dist/react/ds-table-search.d.ts +0 -14
  452. package/dist/react/ds-table-sort.d.ts +0 -12
  453. package/dist/react/ds-table-sort.js +0 -12
  454. package/dist/react/ds-table-toolbar.js +0 -12
  455. package/dist/types/components/TableSavedViews/index.d.ts +0 -2
  456. package/dist/types/components/TableSavedViews/table-saved-views-types.d.ts +0 -24
  457. package/dist/types/components/TableSort/table-sort-menu.d.ts +0 -15
  458. package/dist/vue/ds-table-preferences.d.ts +0 -3
  459. package/dist/vue/ds-table-toolbar.d.ts +0 -3
  460. package/dist/vue/ds-table-toolbar.js +0 -9
  461. /package/dist/components/{ds-table-group.js.map → ds-data-group.js.map} +0 -0
  462. /package/dist/components/{p-D8rpKod8.js.map → p-0FYD2bev.js.map} +0 -0
  463. /package/dist/components/{p-DK9Ex3aY.js.map → p-5URekSny.js.map} +0 -0
  464. /package/dist/components/{p-Ds51RgCi.js.map → p-7V1AhetH.js.map} +0 -0
  465. /package/dist/components/{p-C2JnoaWI.js.map → p-8yBdCXCn.js.map} +0 -0
  466. /package/dist/components/{p-su6y4hLK.js.map → p-BciTtTwx.js.map} +0 -0
  467. /package/dist/components/{p-CQ5RwY2C.js.map → p-BhJXmuRA.js.map} +0 -0
  468. /package/dist/components/{p-neWTRxmf.js.map → p-Bm7rqs3C.js.map} +0 -0
  469. /package/dist/components/{p-BV5T1hzN.js.map → p-Bn8I7iw6.js.map} +0 -0
  470. /package/dist/components/{p-PmcUwTQ_.js.map → p-Bpd6YCo4.js.map} +0 -0
  471. /package/dist/components/{p-B27_chI7.js.map → p-C6xVxqOn.js.map} +0 -0
  472. /package/dist/components/{p-C4m8y9ki.js.map → p-CD4DZPy_.js.map} +0 -0
  473. /package/dist/components/{p-CuwopElg.js.map → p-CGidq1iC.js.map} +0 -0
  474. /package/dist/components/{p-CWog26I_.js.map → p-CNxvnQ6A.js.map} +0 -0
  475. /package/dist/components/{p-2GVGhrh0.js.map → p-CUcUHwI3.js.map} +0 -0
  476. /package/dist/components/{p-CbSUyv5B.js.map → p-CYzFfFcH.js.map} +0 -0
  477. /package/dist/components/{p-8oRkhvjy.js.map → p-CdGXzRP8.js.map} +0 -0
  478. /package/dist/components/{p-Jaqdfw4E.js.map → p-CiH4GG6r.js.map} +0 -0
  479. /package/dist/components/{p-Cl9phSf0.js.map → p-CiJ1WR11.js.map} +0 -0
  480. /package/dist/components/{p-Cus1Sigh.js.map → p-CmexIVnE.js.map} +0 -0
  481. /package/dist/components/{p-DLXXGgmf.js.map → p-CzIpquvw.js.map} +0 -0
  482. /package/dist/components/{p-tNQ0YulU.js.map → p-D0y7Sja6.js.map} +0 -0
  483. /package/dist/components/{p-ji09W9el.js.map → p-D922f6Tb.js.map} +0 -0
  484. /package/dist/components/{p-CaNCGKEJ.js.map → p-DHICPS4n.js.map} +0 -0
  485. /package/dist/components/{p-Cga6Ex0E.js.map → p-DOAybCp0.js.map} +0 -0
  486. /package/dist/components/{p-7O-2D29W.js.map → p-DVOjjuXc.js.map} +0 -0
  487. /package/dist/components/{p-DVd1TIxi.js.map → p-Dn9QHL4O.js.map} +0 -0
  488. /package/dist/components/{p-C-dHtQMi.js.map → p-Do2FJd1y.js.map} +0 -0
  489. /package/dist/components/{p-BWfzaSc3.js.map → p-DpoTwJAR.js.map} +0 -0
  490. /package/dist/components/{p-BgLI9JoT.js.map → p-DwbcNDJF.js.map} +0 -0
  491. /package/dist/components/{p-DvzI2A_M.js.map → p-E5W27Fu_.js.map} +0 -0
  492. /package/dist/components/{p-DkfM55x8.js.map → p-FIBCluwV.js.map} +0 -0
  493. /package/dist/components/{p-rYePOPbJ.js.map → p-ljbw3UMZ.js.map} +0 -0
  494. /package/dist/components/{p-DZ58Sg5a.js.map → p-vfCu7XSc.js.map} +0 -0
  495. /package/dist/components/{p-Ce4zy8q1.js.map → p-xdmJCPCg.js.map} +0 -0
  496. /package/dist/components/{p-CDJ2Ntcq.js.map → p-xtGGIZmU.js.map} +0 -0
@@ -1,49 +0,0 @@
1
- import { ChangeDetectorRef, ElementRef, NgZone, EventEmitter } from '@angular/core';
2
- import type { Components } from '@ds-mo/ui/components';
3
- import type { DsTableSavedViewsCustomEvent } from '@ds-mo/ui/components';
4
- import type { TableSavedViewChangeDetail as IDsTableSavedViewsTableSavedViewChangeDetail } from '@ds-mo/ui/components';
5
- import type { TableSavedViewCreateDetail as IDsTableSavedViewsTableSavedViewCreateDetail } from '@ds-mo/ui/components';
6
- import type { TableSavedViewRenameDetail as IDsTableSavedViewsTableSavedViewRenameDetail } from '@ds-mo/ui/components';
7
- import type { TableSavedViewRemoveDetail as IDsTableSavedViewsTableSavedViewRemoveDetail } from '@ds-mo/ui/components';
8
- import type { TableSavedViewSaveDetail as IDsTableSavedViewsTableSavedViewSaveDetail } from '@ds-mo/ui/components';
9
- import type { TableSavedViewDiscardDetail as IDsTableSavedViewsTableSavedViewDiscardDetail } from '@ds-mo/ui/components';
10
- import * as i0 from "@angular/core";
11
- export declare class DsTableSavedViews {
12
- protected z: NgZone;
13
- protected el: HTMLDsTableSavedViewsElement;
14
- dsViewChange: EventEmitter<DsTableSavedViewsCustomEvent<IDsTableSavedViewsTableSavedViewChangeDetail>>;
15
- dsViewCreate: EventEmitter<DsTableSavedViewsCustomEvent<IDsTableSavedViewsTableSavedViewCreateDetail>>;
16
- dsViewRename: EventEmitter<DsTableSavedViewsCustomEvent<IDsTableSavedViewsTableSavedViewRenameDetail>>;
17
- dsViewRemove: EventEmitter<DsTableSavedViewsCustomEvent<IDsTableSavedViewsTableSavedViewRemoveDetail>>;
18
- dsViewSave: EventEmitter<DsTableSavedViewsCustomEvent<IDsTableSavedViewsTableSavedViewSaveDetail>>;
19
- dsViewDiscard: EventEmitter<DsTableSavedViewsCustomEvent<IDsTableSavedViewsTableSavedViewDiscardDetail>>;
20
- constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
21
- static ɵfac: i0.ɵɵFactoryDeclaration<DsTableSavedViews, never>;
22
- static ɵcmp: i0.ɵɵComponentDeclaration<DsTableSavedViews, "ds-table-saved-views", never, { "compact": { "alias": "compact"; "required": false; }; "createLabel": { "alias": "createLabel"; "required": false; }; "defaultViewId": { "alias": "defaultViewId"; "required": false; }; "defaultViewLabel": { "alias": "defaultViewLabel"; "required": false; }; "dirty": { "alias": "dirty"; "required": false; }; "hasBorder": { "alias": "hasBorder"; "required": false; }; "label": { "alias": "label"; "required": false; }; "triggerLabel": { "alias": "triggerLabel"; "required": false; }; "value": { "alias": "value"; "required": false; }; "views": { "alias": "views"; "required": false; }; }, { "dsViewChange": "dsViewChange"; "dsViewCreate": "dsViewCreate"; "dsViewRename": "dsViewRename"; "dsViewRemove": "dsViewRemove"; "dsViewSave": "dsViewSave"; "dsViewDiscard": "dsViewDiscard"; }, never, ["*"], true, never>;
23
- }
24
- export declare interface DsTableSavedViews extends Components.DsTableSavedViews {
25
- /**
26
- * Emitted when a view selection is requested.
27
- */
28
- dsViewChange: EventEmitter<DsTableSavedViewsCustomEvent<IDsTableSavedViewsTableSavedViewChangeDetail>>;
29
- /**
30
- * Emitted after a valid create-view name is submitted.
31
- */
32
- dsViewCreate: EventEmitter<DsTableSavedViewsCustomEvent<IDsTableSavedViewsTableSavedViewCreateDetail>>;
33
- /**
34
- * Emitted after a valid renamed view name is submitted.
35
- */
36
- dsViewRename: EventEmitter<DsTableSavedViewsCustomEvent<IDsTableSavedViewsTableSavedViewRenameDetail>>;
37
- /**
38
- * Emitted when a custom view removal is requested.
39
- */
40
- dsViewRemove: EventEmitter<DsTableSavedViewsCustomEvent<IDsTableSavedViewsTableSavedViewRemoveDetail>>;
41
- /**
42
- * Emitted when changes to the active custom view should replace its stored payload.
43
- */
44
- dsViewSave: EventEmitter<DsTableSavedViewsCustomEvent<IDsTableSavedViewsTableSavedViewSaveDetail>>;
45
- /**
46
- * Emitted when the active custom view's stored payload should be restored.
47
- */
48
- dsViewDiscard: EventEmitter<DsTableSavedViewsCustomEvent<IDsTableSavedViewsTableSavedViewDiscardDetail>>;
49
- }
@@ -1,20 +0,0 @@
1
- import { ChangeDetectorRef, ElementRef, NgZone, EventEmitter } from '@angular/core';
2
- import type { Components } from '@ds-mo/ui/components';
3
- import type { DsTableSearchCustomEvent } from '@ds-mo/ui/components';
4
- import type { TableSearchFieldsChangeDetail as IDsTableSearchTableSearchFieldsChangeDetail } from '@ds-mo/ui/components';
5
- import * as i0 from "@angular/core";
6
- export declare class DsTableSearch {
7
- protected z: NgZone;
8
- protected el: HTMLDsTableSearchElement;
9
- dsChange: EventEmitter<DsTableSearchCustomEvent<string>>;
10
- dsFieldsChange: EventEmitter<DsTableSearchCustomEvent<IDsTableSearchTableSearchFieldsChangeDetail>>;
11
- dsClear: EventEmitter<DsTableSearchCustomEvent<void>>;
12
- constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
13
- static ɵfac: i0.ɵɵFactoryDeclaration<DsTableSearch, never>;
14
- static ɵcmp: i0.ɵɵComponentDeclaration<DsTableSearch, "ds-table-search", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "clearLabel": { "alias": "clearLabel"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "fieldMenuLabel": { "alias": "fieldMenuLabel"; "required": false; }; "hasBorder": { "alias": "hasBorder"; "required": false; }; "isInactive": { "alias": "isInactive"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "selectedFieldIds": { "alias": "selectedFieldIds"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "dsChange": "dsChange"; "dsFieldsChange": "dsFieldsChange"; "dsClear": "dsClear"; }, never, ["*"], true, never>;
15
- }
16
- export declare interface DsTableSearch extends Components.DsTableSearch {
17
- dsChange: EventEmitter<DsTableSearchCustomEvent<string>>;
18
- dsFieldsChange: EventEmitter<DsTableSearchCustomEvent<IDsTableSearchTableSearchFieldsChangeDetail>>;
19
- dsClear: EventEmitter<DsTableSearchCustomEvent<void>>;
20
- }
@@ -1,16 +0,0 @@
1
- import { ChangeDetectorRef, ElementRef, NgZone, EventEmitter } from '@angular/core';
2
- import type { Components } from '@ds-mo/ui/components';
3
- import type { DsTableSortCustomEvent } from '@ds-mo/ui/components';
4
- import type { TableSortChangeDetail as IDsTableSortTableSortChangeDetail } from '@ds-mo/ui/components';
5
- import * as i0 from "@angular/core";
6
- export declare class DsTableSort {
7
- protected z: NgZone;
8
- protected el: HTMLDsTableSortElement;
9
- dsSortChange: EventEmitter<DsTableSortCustomEvent<IDsTableSortTableSortChangeDetail>>;
10
- constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
11
- static ɵfac: i0.ɵɵFactoryDeclaration<DsTableSort, never>;
12
- static ɵcmp: i0.ɵɵComponentDeclaration<DsTableSort, "ds-table-sort", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "hasBorder": { "alias": "hasBorder"; "required": false; }; "sort": { "alias": "sort"; "required": false; }; }, { "dsSortChange": "dsSortChange"; }, never, ["*"], true, never>;
13
- }
14
- export declare interface DsTableSort extends Components.DsTableSort {
15
- dsSortChange: EventEmitter<DsTableSortCustomEvent<IDsTableSortTableSortChangeDetail>>;
16
- }
@@ -1,12 +0,0 @@
1
- import { ChangeDetectorRef, ElementRef, NgZone } from '@angular/core';
2
- import type { Components } from '@ds-mo/ui/components';
3
- import * as i0 from "@angular/core";
4
- export declare class DsTableToolbar {
5
- protected z: NgZone;
6
- protected el: HTMLDsTableToolbarElement;
7
- constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
8
- static ɵfac: i0.ɵɵFactoryDeclaration<DsTableToolbar, never>;
9
- static ɵcmp: i0.ɵɵComponentDeclaration<DsTableToolbar, "ds-table-toolbar", never, { "borderless": { "alias": "borderless"; "required": false; }; "label": { "alias": "label"; "required": false; }; }, {}, never, ["*"], true, never>;
10
- }
11
- export declare interface DsTableToolbar extends Components.DsTableToolbar {
12
- }
@@ -1,2 +0,0 @@
1
- import{p as e,H as s,c as t,h as i,a,t as r}from"./index.js";import{d as l}from"./p-DBwa1OXP.js";import{d as o}from"./p-BOhpMUwO.js";import{d}from"./p-D8rpKod8.js";import{d as n}from"./p-Dryt3COt.js";import{d as c}from"./p-Ds51RgCi.js";import{d as h}from"./p-C0CE2v5D.js";import{d as m}from"./p-DtkLtKY0.js";import{d as f}from"./p-Cea7rROU.js";import{d as u}from"./p-DkikNSSO.js";import{d as p}from"./p-0XTyQNRG.js";import{d as b}from"./p-CaNCGKEJ.js";import{d as g}from"./p-ji09W9el.js";import{d as C}from"./p-BgLI9JoT.js";import{d as k}from"./p-CbSUyv5B.js";const E=()=>`.sc-ds-table-filter-h{display:inline-flex;min-inline-size:0;max-inline-size:var(--dimension-menu-width-xs)}ds-filter-menu.sc-ds-table-filter{min-inline-size:0;max-inline-size:100%;--ds-choice-popup-min-inline-size:var(--dimension-menu-width-xs)}`;const j=e(class e extends s{constructor(e){super();if(e!==false){this.__registerHost()}this.dsChange=t(this,"dsChange",7);this.dsClear=t(this,"dsClear",7);this.dsMatchModeChange=t(this,"dsMatchModeChange",7);this.dsActiveFilterChange=t(this,"dsActiveFilterChange",7);this.dsClose=t(this,"dsClose",7);this.dsOpenChange=t(this,"dsOpenChange",7);this.dsAfterClose=t(this,"dsAfterClose",7);this.open=false;this.hasBorder=true;this.filters=[];this.values={};this.matchModes={};this.label="Filter";this.ariaLabel=null;this.menuLabel=null;this.categoriesLabel="Filter categories";this.clearLabel="Clear";this.searchPlaceholder="Search";this.noResultsText="No results"}render(){const e=this.ariaLabel?.trim()||"Filter table";const s=this.menuLabel?.trim()||e;return i(a,{key:"57baefdcf42ea5b3dfe5635d18807ddabc978ff5"},i("ds-filter-menu",{key:"e41e0c964f2fbb9618cd14dedc69a2a9424cbaf5",neutralTrigger:true,applyRequired:true,open:this.open,triggerLabel:this.label,showSelectedCount:false,showIndicator:false,icon:"Filters",size:"md",width:"hug",hasBorder:this.hasBorder,activeFill:false,collapseLabel:true,align:"start","aria-label":e,filters:this.filters,values:this.values,matchModes:this.matchModes,activeFilterId:this.activeFilterId,menuLabel:s,categoriesLabel:this.categoriesLabel,clearLabel:this.clearLabel,searchPlaceholder:this.searchPlaceholder,noResultsText:this.noResultsText,footerLayout:"categories-clear",onDsChange:e=>this.forward(e,this.dsChange),onDsClear:e=>this.forward(e,this.dsClear),onDsMatchModeChange:e=>this.forward(e,this.dsMatchModeChange),onDsActiveFilterChange:e=>this.forward(e,this.dsActiveFilterChange),onDsClose:e=>this.forward(e,this.dsClose),onDsOpenChange:e=>{e.stopPropagation();this.open=e.detail;this.dsOpenChange.emit(e.detail)},onDsAfterClose:e=>this.forward(e,this.dsAfterClose)}))}forward(e,s){e.stopPropagation();s.emit(e.detail)}static get style(){return E()}},[2,"ds-table-filter",{open:[1028],hasBorder:[4,"has-border"],filters:[16],values:[16],matchModes:[16],activeFilterId:[1,"active-filter-id"],label:[1],ariaLabel:[1,"aria-label"],menuLabel:[1,"menu-label"],categoriesLabel:[1,"categories-label"],clearLabel:[1,"clear-label"],searchPlaceholder:[1,"search-placeholder"],noResultsText:[1,"no-results-text"]}]);function x(){if(typeof customElements==="undefined"){return}const e=["ds-table-filter","ds-badge","ds-button-unfilled","ds-calendar","ds-checkbox","ds-divider","ds-empty-state","ds-filter-menu","ds-icon","ds-input","ds-loader","ds-tab-group","ds-tag","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-table-filter":if(!customElements.get(r(e))){customElements.define(r(e),j)}break;case"ds-badge":if(!customElements.get(r(e))){l()}break;case"ds-button-unfilled":if(!customElements.get(r(e))){o()}break;case"ds-calendar":if(!customElements.get(r(e))){d()}break;case"ds-checkbox":if(!customElements.get(r(e))){n()}break;case"ds-divider":if(!customElements.get(r(e))){c()}break;case"ds-empty-state":if(!customElements.get(r(e))){h()}break;case"ds-filter-menu":if(!customElements.get(r(e))){m()}break;case"ds-icon":if(!customElements.get(r(e))){f()}break;case"ds-input":if(!customElements.get(r(e))){u()}break;case"ds-loader":if(!customElements.get(r(e))){p()}break;case"ds-tab-group":if(!customElements.get(r(e))){b()}break;case"ds-tag":if(!customElements.get(r(e))){g()}break;case"ds-text":if(!customElements.get(r(e))){C()}break;case"ds-tooltip":if(!customElements.get(r(e))){k()}break}}))}x();const v=j;const D=x;export{v as DsTableFilter,D as defineCustomElement};
2
- //# sourceMappingURL=ds-table-filter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["tableFilterCss","TableFilter","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","open","hasBorder","filters","values","matchModes","label","ariaLabel","menuLabel","categoriesLabel","clearLabel","searchPlaceholder","noResultsText","render","name","trim","menuName","h","Host","key","neutralTrigger","applyRequired","triggerLabel","showSelectedCount","showIndicator","icon","size","width","activeFill","collapseLabel","align","activeFilterId","footerLayout","onDsChange","event","forward","dsChange","onDsClear","dsClear","onDsMatchModeChange","dsMatchModeChange","onDsActiveFilterChange","dsActiveFilterChange","onDsClose","dsClose","onDsOpenChange","stopPropagation","detail","dsOpenChange","emit","onDsAfterClose","dsAfterClose","emitter"],"sources":["src/wc/components/TableFilter/TableFilter.css?tag=ds-table-filter&encapsulation=scoped","src/wc/components/TableFilter/TableFilter.tsx"],"sourcesContent":[":host {\n display: inline-flex;\n min-inline-size: 0;\n max-inline-size: var(--dimension-menu-width-xs);\n}\n\nds-filter-menu {\n min-inline-size: 0;\n max-inline-size: 100%;\n --ds-choice-popup-min-inline-size: var(--dimension-menu-width-xs);\n}\n","import { Component, Event, EventEmitter, h, Host, Prop } from '@stencil/core';\nimport type {\n FilterMenuChangeDetail,\n FilterMenuFilter,\n FilterMenuMatchModeChangeDetail,\n FilterMenuMatchModes,\n FilterMenuValues,\n} from '../FilterMenu/FilterMenu';\n\n@Component({\n tag: 'ds-table-filter',\n styleUrl: 'TableFilter.css',\n scoped: true,\n})\nexport class TableFilter {\n /** Controlled popup visibility. */\n @Prop({ mutable: true }) open: boolean = false;\n /** Product-owned filter categories and option definitions. */\n /** Show the trigger border. */\n @Prop() hasBorder: boolean = true;\n @Prop() filters: FilterMenuFilter[] = [];\n /** Controlled values keyed by filter id. */\n @Prop() values: FilterMenuValues = {};\n /** Controlled any/all match mode keyed by multiple-choice filter id. Defaults to any. */\n @Prop() matchModes: FilterMenuMatchModes = {};\n /** Controlled category shown in the option pane. */\n @Prop() activeFilterId: string | undefined;\n /** Visible trigger label. */\n @Prop() label: string = 'Filter';\n /** Accessible name for the trigger. Defaults to Filter table. */\n @Prop({ attribute: 'aria-label' }) ariaLabel: string | null = null;\n /** Accessible name for the non-modal filter dialog. Defaults to the trigger name. */\n @Prop() menuLabel: string | null = null;\n /** Accessible name for the category tab list. */\n @Prop() categoriesLabel: string = 'Filter categories';\n /** Footer action and date-clear accessible label. */\n @Prop() clearLabel: string = 'Clear';\n /** Placeholder shown in each non-date option search header. */\n @Prop() searchPlaceholder: string = 'Search';\n /** Empty-state text shown when an option search has no matches. */\n @Prop() noResultsText: string = 'No results';\n\n /** Requests a controlled value replacement without closing the popup. */\n @Event() dsChange!: EventEmitter<FilterMenuChangeDetail>;\n /** Requests that the consumer clear every filter value. */\n @Event() dsClear!: EventEmitter<void>;\n /** Requests a controlled any/all mode replacement for a multiple-choice filter. */\n @Event() dsMatchModeChange!: EventEmitter<FilterMenuMatchModeChangeDetail>;\n /** Requests a controlled active-category replacement. */\n @Event() dsActiveFilterChange!: EventEmitter<string>;\n /** Requests that the controlled popup close. */\n @Event() dsClose!: EventEmitter<void>;\n /** Emitted whenever trigger activation changes popup visibility. */\n @Event() dsOpenChange!: EventEmitter<boolean>;\n /** Emitted after exit motion and rendered popup removal complete. */\n @Event() dsAfterClose!: EventEmitter<void>;\n\n render() {\n const name = this.ariaLabel?.trim() || 'Filter table';\n const menuName = this.menuLabel?.trim() || name;\n\n return (\n <Host>\n <ds-filter-menu\n neutralTrigger\n applyRequired\n open={this.open}\n triggerLabel={this.label}\n showSelectedCount={false}\n showIndicator={false}\n icon=\"Filters\"\n size=\"md\"\n width=\"hug\"\n hasBorder={this.hasBorder}\n activeFill={false}\n collapseLabel={true}\n align=\"start\"\n aria-label={name}\n filters={this.filters}\n values={this.values}\n matchModes={this.matchModes}\n activeFilterId={this.activeFilterId}\n menuLabel={menuName}\n categoriesLabel={this.categoriesLabel}\n clearLabel={this.clearLabel}\n searchPlaceholder={this.searchPlaceholder}\n noResultsText={this.noResultsText}\n footerLayout=\"categories-clear\"\n onDsChange={event => this.forward(event, this.dsChange)}\n onDsClear={event => this.forward(event, this.dsClear)}\n onDsMatchModeChange={event => this.forward(event, this.dsMatchModeChange)}\n onDsActiveFilterChange={event => this.forward(event, this.dsActiveFilterChange)}\n onDsClose={event => this.forward(event, this.dsClose)}\n onDsOpenChange={event => {\n event.stopPropagation();\n this.open = event.detail;\n this.dsOpenChange.emit(event.detail);\n }}\n onDsAfterClose={event => this.forward(event, this.dsAfterClose)}\n />\n </Host>\n );\n }\n\n private forward<T>(event: CustomEvent<T>, emitter: EventEmitter<T>): void {\n event.stopPropagation();\n emitter.emit(event.detail);\n }\n}\n"],"mappings":"gjBAAA,MAAMA,EAAiB,IAAM,wP,MCchBC,EAAWC,EAAA,MAAAD,UAAAE,EALxB,WAAAC,CAAAC,G,uVAO2BC,KAAAC,KAAgB,MAGjCD,KAAAE,UAAqB,KACrBF,KAAAG,QAA8B,GAE9BH,KAAAI,OAA2B,GAE3BJ,KAAAK,WAAmC,GAInCL,KAAAM,MAAgB,SAEWN,KAAAO,UAA2B,KAEtDP,KAAAQ,UAA2B,KAE3BR,KAAAS,gBAA0B,oBAE1BT,KAAAU,WAAqB,QAErBV,KAAAW,kBAA4B,SAE5BX,KAAAY,cAAwB,YAoEjC,CAnDC,MAAAC,GACE,MAAMC,EAAOd,KAAKO,WAAWQ,QAAU,eACvC,MAAMC,EAAWhB,KAAKQ,WAAWO,QAAUD,EAE3C,OACEG,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,kBAAAE,IAAA,2CACEC,eAAc,KACdC,cAAa,KACbpB,KAAMD,KAAKC,KACXqB,aAActB,KAAKM,MACnBiB,kBAAmB,MACnBC,cAAe,MACfC,KAAK,UACLC,KAAK,KACLC,MAAM,MACNzB,UAAWF,KAAKE,UAChB0B,WAAY,MACZC,cAAe,KACfC,MAAM,QAAO,aACDhB,EACZX,QAASH,KAAKG,QACdC,OAAQJ,KAAKI,OACbC,WAAYL,KAAKK,WACjB0B,eAAgB/B,KAAK+B,eACrBvB,UAAWQ,EACXP,gBAAiBT,KAAKS,gBACtBC,WAAYV,KAAKU,WACjBC,kBAAmBX,KAAKW,kBACxBC,cAAeZ,KAAKY,cACpBoB,aAAa,mBACbC,WAAYC,GAASlC,KAAKmC,QAAQD,EAAOlC,KAAKoC,UAC9CC,UAAWH,GAASlC,KAAKmC,QAAQD,EAAOlC,KAAKsC,SAC7CC,oBAAqBL,GAASlC,KAAKmC,QAAQD,EAAOlC,KAAKwC,mBACvDC,uBAAwBP,GAASlC,KAAKmC,QAAQD,EAAOlC,KAAK0C,sBAC1DC,UAAWT,GAASlC,KAAKmC,QAAQD,EAAOlC,KAAK4C,SAC7CC,eAAgBX,IACdA,EAAMY,kBACN9C,KAAKC,KAAOiC,EAAMa,OAClB/C,KAAKgD,aAAaC,KAAKf,EAAMa,OAAO,EAEtCG,eAAgBhB,GAASlC,KAAKmC,QAAQD,EAAOlC,KAAKmD,gB,CAMlD,OAAAhB,CAAWD,EAAuBkB,GACxClB,EAAMY,kBACNM,EAAQH,KAAKf,EAAMa,O","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{T as o,d as s}from"./p-MQ36mEgn.js";const t=o;const m=s;export{t as DsTableGroup,m as defineCustomElement};
2
- //# sourceMappingURL=ds-table-group.js.map
@@ -1,11 +0,0 @@
1
- import type { Components, JSX } from "../types/components";
2
-
3
- interface DsTablePreferences extends Components.DsTablePreferences, HTMLElement {}
4
- export const DsTablePreferences: {
5
- prototype: DsTablePreferences;
6
- new (): DsTablePreferences;
7
- };
8
- /**
9
- * Used to define this component and all nested components recursively.
10
- */
11
- export const defineCustomElement: () => void;
@@ -1,2 +0,0 @@
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 d}from"./p-B8ZonS3S.js";import{t as n,n as h}from"./p-CKarsuR2.js";import{t as l,r as c,a as f}from"./p-KBrC9IG4.js";import{A as p}from"./p-etg-Uk1u.js";import{r as m}from"./p-CochmPyg.js";import{T as u}from"./p-CeXf9-X3.js";import{d as b}from"./p-DBwa1OXP.js";import{d as g}from"./p-BOhpMUwO.js";import{d as v}from"./p-D8rpKod8.js";import{d as k}from"./p-Dryt3COt.js";import{d as y}from"./p-Ds51RgCi.js";import{d as w}from"./p-C0CE2v5D.js";import{d as C}from"./p-DtkLtKY0.js";import{d as x}from"./p-Cea7rROU.js";import{d as j}from"./p-DkikNSSO.js";import{d as E}from"./p-0XTyQNRG.js";import{d as D}from"./p-CQIh2yRP.js";import{d as O}from"./p-BV5T1hzN.js";import{d as z}from"./p-tNQ0YulU.js";import{d as M}from"./p-CaNCGKEJ.js";import{d as P}from"./p-MQ36mEgn.js";import{d as R}from"./p-ji09W9el.js";import{d as B}from"./p-BgLI9JoT.js";import{d as S}from"./p-CbSUyv5B.js";const _=()=>`.sc-ds-table-preferences-h,.sc-ds-table-preferences:where(.ds-table),.sc-ds-table-preferences:where(.tooltip-popup),.sc-ds-table-preferences:where(.ds-radius){--ds-radius-control:var(--dimension-radius-025);--ds-radius-card:var(--dimension-radius-050);--ds-radius-modal:var(--dimension-radius-050);--ds-radius-menu:var(--dimension-radius-075);--ds-radius-tooltip-control:var(--dimension-radius-025);--ds-radius-tooltip-menu:var(--dimension-radius-075);--ds-radius-table:var(--dimension-radius-050)}.sc-ds-table-preferences-h{display:inline-flex}.table-preferences.sc-ds-table-preferences{position:fixed;margin:0;padding:0;border:0;border-radius:var(--ds-radius-menu);width:min(var(--dimension-menu-width-lg), calc(100vw - var(--dimension-space-200)));max-height:calc(100dvh - var(--dimension-space-400));display:flex;flex-direction:column;overflow:hidden;background:var(--color-background-primary);color:var(--color-foreground-secondary);box-shadow:var(--effect-shadow-elevated-floating)}.table-preferences.sc-ds-table-preferences::after{content:'';position:absolute;inset:0;border-radius:inherit;box-shadow:var(--effect-highlight-elevated-floating);pointer-events:none;z-index:4}.table-preferences__tabs.sc-ds-table-preferences{display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;flex:0 0 var(--dimension-size-500);min-block-size:var(--dimension-size-500);padding:var(--dimension-space-050);background:var(--color-background-primary);border-bottom:var(--dimension-stroke-width-012) solid var(--color-border-tertiary)}.table-preferences__body.sc-ds-table-preferences{min-height:0;overflow:auto;overscroll-behavior:contain}.sc-ds-table-preferences-h:has(.table-preferences-panel){display:flex;flex:1;min-height:0}.table-preferences-panel.sc-ds-table-preferences{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0}.table-preferences-panel.sc-ds-table-preferences .table-preferences__tabs.sc-ds-table-preferences{flex:0 0 auto;padding:var(--dimension-space-200)}`;let A=0;const F=e(class e extends s{constructor(e){super();if(e!==false){this.__registerHost()}this.dsCustomizeOptionChange=t(this,"dsCustomizeOptionChange",7);this.dsPreferencesTabChange=t(this,"dsPreferencesTabChange",7);this.dsFilterChange=t(this,"dsFilterChange",7);this.dsFilterMatchModeChange=t(this,"dsFilterMatchModeChange",7);this.dsActiveFilterChange=t(this,"dsActiveFilterChange",7);this.dsFiltersClear=t(this,"dsFiltersClear",7);this.dsSortChange=t(this,"dsSortChange",7);this.dsGroupChange=t(this,"dsGroupChange",7);this.dsGroupClear=t(this,"dsGroupClear",7);this.dsColumnsConfigChange=t(this,"dsColumnsConfigChange",7);this.hasBorder=true;this.filters=[];this.values={};this.matchModes={};this.columns=[];this.customizeOptions=[];this.customizeSections=[];this.sort=null;this.groupingOptions=[];this.grouping=null;this.hiddenColumnIds=[];this.columnOrder=[];this.embedded=false;this.activeTab="filters";this.label="Configure view";this.open=false;this.tab="filters";this.pos={x:0,y:0};this.ready=false;this.popupId=`ds-table-preferences-${++A}`;this.position=new o({getAnchor:()=>this.trigger??null,getPopup:()=>this.popup??null,getOwnerDocument:()=>this.el.ownerDocument,measure:(e,s)=>{const t=d(e);const i=m(u.space100,8);s.style.maxWidth=`${Math.max(0,Math.min(window.innerWidth,t?.width??window.innerWidth)-i*2)}px`;s.style.maxHeight=`${Math.max(0,Math.min(window.innerHeight,t?.height??window.innerHeight)-i*2)}px`;return{anchorRect:e.getBoundingClientRect(),popupWidth:s.offsetWidth,popupHeight:s.offsetHeight,side:"bottom",align:"end",sideOffsetPx:m(u.space050,4),alignOffsetPx:0,viewportPadPx:m(u.space100,8),viewportWidth:window.innerWidth,viewportHeight:window.innerHeight,collisionRect:t}},apply:({x:e,y:s})=>{this.pos={x:e,y:s}},onReady:()=>{this.ready=true},topLayer:true,observeResize:true,observeAnchorMotion:true,liveUpdate:"double-frame"});this.interaction=new p({getAnchor:()=>this.trigger??null,getPopup:()=>this.popup??null,getOwnerDocument:()=>this.el.ownerDocument,onOutsideActivation:()=>this.close()})}disconnectedCallback(){this.position.unobserve();this.interaction.disconnect()}close(){this.position.unobserve();this.interaction.disconnect();if(this.popup?.matches(":popover-open"))this.popup.hidePopover();this.open=false;void this.trigger?.setFocus()}toggle(){if(this.open){this.close();return}this.open=true;this.ready=false;this.position.observe();this.interaction.connect();this.position.schedule((async()=>{await(this.popup?.querySelector("ds-tab-group")?.componentOnReady?.());requestAnimationFrame((()=>{if(this.open)this.popup?.querySelector('[role="tab"][aria-selected="true"]')?.focus()}))}))}onKeydown(e){if(this.embedded||!this.open||e.defaultPrevented)return;if(e.key==="Escape"){e.preventDefault();e.stopPropagation();this.close()}else if(e.key==="Tab"&&this.interaction.tabLeavesPopup(e)){e.preventDefault();this.close();this.interaction.moveFocusAfterTab(e.shiftKey)}}forward(e,s){e.stopPropagation();s.emit(e.detail)}render(){const e=this.embedded?this.activeTab:this.tab;const s=["filters","sort","group","customize"].map((e=>({id:e,label:e==="filters"?"Filters":e[0].toUpperCase()+e.slice(1),panelId:`${this.popupId}-${e}`})));return i(a,{key:"8c5766c2c94b0c6199280f7d78cf97473688582d"},!this.embedded&&i("ds-tooltip",{key:"a47a74a041b141d100c332919bd15e04ba10272d",label:this.label,side:"bottom",size:"sm"},i("ds-button-unfilled",{key:"310a59cd435f271cf1ad2d0be1aae2805d57bfa4",hasBorder:this.hasBorder,ref:e=>{this.trigger=e},variant:"icon",icon:"Preferences",size:"md",ariaLabel:this.label,haspopup:"dialog",expanded:this.open,surfaceOpen:this.open,controls:this.popupId,onDsClick:()=>this.toggle()})),(this.open||this.embedded)&&i("div",{key:"48cf895c4681f6a4bb3688f74f9764c709d0c13c",ref:e=>{this.popup=e},id:this.popupId,popover:this.embedded?undefined:"manual",role:this.embedded?undefined:"dialog","aria-label":this.label,class:{"table-preferences":!this.embedded,"table-preferences-panel":this.embedded},style:this.embedded?undefined:{left:`${this.pos.x}px`,top:`${this.pos.y}px`,visibility:this.ready?"visible":"hidden"}},i("div",{key:"d5b1affdae12dbe6105db7589e644563865992aa",class:"table-preferences__tabs"},i("ds-tab-group",{key:"6ab6c93e94085884e0fb498548a0256b7ab4a727",ariaLabel:"Table preference sections",size:"md",presentation:this.embedded?"segmented":"tabs",width:this.embedded?"fill":"hug",tabs:s,value:e,onDsChange:e=>{e.stopPropagation();this.tab=e.detail;this.dsPreferencesTabChange.emit(this.tab)}})),i("div",{key:"54a6bb10b56cf65a06a7a01de46ed704f2cd3fc6",class:"table-preferences__body",id:`${this.popupId}-${e}`,role:"tabpanel","aria-label":s.find((s=>s.id===e))?.label},i("div",{key:"838284b4353e18fbf70303afe4c0c4b29f982b09",hidden:e!=="filters"},i("ds-filter-menu",{key:"c2fe42ab73f521ad82066cfcfea0603a006bb02b",embedded:true,vertical:this.embedded,applyRequired:!this.embedded,filters:this.filters,values:this.values,matchModes:this.matchModes,activeFilterId:this.activeFilterId,footerLayout:"categories-clear",onDsChange:e=>this.forward(e,this.dsFilterChange),onDsMatchModeChange:e=>this.forward(e,this.dsFilterMatchModeChange),onDsActiveFilterChange:e=>this.forward(e,this.dsActiveFilterChange),onDsClear:e=>this.forward(e,this.dsFiltersClear)})),e==="sort"&&i("ds-menu",{key:"0fa114b755792784ea28f450a668103da457964d",embedded:true,menuLabel:"Sort table",sections:n(this.sortColumns??this.columns,this.sort),onDsSelect:e=>{e.stopPropagation();this.dsSortChange.emit({sort:h(this.sortColumns??this.columns,this.sort,e.detail)})}}),e==="group"&&i("ds-table-group",{key:"1d7fe2a2a7e5bb648c6e6a1be921a62c7d8f04ae",embedded:true,vertical:this.embedded,options:this.groupingOptions,grouping:this.grouping,onDsGroupChange:e=>this.forward(e,this.dsGroupChange),onDsClear:e=>this.forward(e,this.dsGroupClear)}),e==="customize"&&i("ds-menu",{key:"ec05cda6c67dae8e2d761d5ea53e73fbf1aa2264",embedded:true,menuLabel:"Customize table",sections:[...this.columns.length?[{header:this.customizeOptions.length?"Columns":undefined,items:l(this.columns,this.hiddenColumnIds,this.columnOrder)}]:[],...this.customizeSections,...this.customizeOptions.length?[{header:"Options",items:this.customizeOptions}]:[]],onDsSelect:e=>{e.stopPropagation();if(!e.detail.value||e.detail.isInactive)return;if([...this.customizeOptions,...this.customizeSections.flatMap((e=>"items"in e?e.items:[]))].some((s=>s.value===e.detail.value))){this.dsCustomizeOptionChange.emit(e.detail.value);return}this.dsColumnsConfigChange.emit({hiddenColumnIds:f(this.columns,this.hiddenColumnIds,e.detail.value),columnOrder:c(this.columns,this.columnOrder)})},onDsReorder:e=>{e.stopPropagation();this.dsColumnsConfigChange.emit({hiddenColumnIds:this.hiddenColumnIds,columnOrder:e.detail.items.filter((e=>e.reorderable)).map((e=>e.value)).filter(Boolean)})}}))))}get el(){return this}static get style(){return _()}},[2,"ds-table-preferences",{hasBorder:[4,"has-border"],filters:[16],values:[16],matchModes:[16],activeFilterId:[1,"active-filter-id"],columns:[16],customizeOptions:[16],customizeSections:[16],sortColumns:[16],sort:[16],groupingOptions:[16],grouping:[16],hiddenColumnIds:[16],columnOrder:[16],embedded:[4],activeTab:[1,"active-tab"],label:[1],open:[32],tab:[32],pos:[32],ready:[32]},[[0,"keydown","onKeydown"]]]);function I(){if(typeof customElements==="undefined"){return}const e=["ds-table-preferences","ds-badge","ds-button-unfilled","ds-calendar","ds-checkbox","ds-divider","ds-empty-state","ds-filter-menu","ds-icon","ds-input","ds-loader","ds-menu","ds-swatch-picker","ds-switch","ds-tab-group","ds-table-group","ds-tag","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-table-preferences":if(!customElements.get(r(e))){customElements.define(r(e),F)}break;case"ds-badge":if(!customElements.get(r(e))){b()}break;case"ds-button-unfilled":if(!customElements.get(r(e))){g()}break;case"ds-calendar":if(!customElements.get(r(e))){v()}break;case"ds-checkbox":if(!customElements.get(r(e))){k()}break;case"ds-divider":if(!customElements.get(r(e))){y()}break;case"ds-empty-state":if(!customElements.get(r(e))){w()}break;case"ds-filter-menu":if(!customElements.get(r(e))){C()}break;case"ds-icon":if(!customElements.get(r(e))){x()}break;case"ds-input":if(!customElements.get(r(e))){j()}break;case"ds-loader":if(!customElements.get(r(e))){E()}break;case"ds-menu":if(!customElements.get(r(e))){D()}break;case"ds-swatch-picker":if(!customElements.get(r(e))){O()}break;case"ds-switch":if(!customElements.get(r(e))){z()}break;case"ds-tab-group":if(!customElements.get(r(e))){M()}break;case"ds-table-group":if(!customElements.get(r(e))){P()}break;case"ds-tag":if(!customElements.get(r(e))){R()}break;case"ds-text":if(!customElements.get(r(e))){B()}break;case"ds-tooltip":if(!customElements.get(r(e))){S()}break}}))}I();const $=F;const L=I;export{$ as DsTablePreferences,L as defineCustomElement};
2
- //# sourceMappingURL=ds-table-preferences.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["tablePreferencesCss","preferencesSequence","TablePreferences","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","hasBorder","filters","values","matchModes","columns","customizeOptions","customizeSections","sort","groupingOptions","grouping","hiddenColumnIds","columnOrder","embedded","activeTab","label","open","tab","pos","x","y","ready","popupId","position","AnchoredPositionController","getAnchor","trigger","getPopup","popup","getOwnerDocument","el","ownerDocument","measure","anchor","collisionRect","resolveAnchoredOverlayBoundaryRect","pad","resolveCssLengthPx","TOKEN_DEFAULTS","space100","style","maxWidth","Math","max","min","window","innerWidth","width","maxHeight","innerHeight","height","anchorRect","getBoundingClientRect","popupWidth","offsetWidth","popupHeight","offsetHeight","side","align","sideOffsetPx","space050","alignOffsetPx","viewportPadPx","viewportWidth","viewportHeight","apply","onReady","topLayer","observeResize","observeAnchorMotion","liveUpdate","interaction","AnchoredOverlayInteractionController","onOutsideActivation","close","disconnectedCallback","unobserve","disconnect","matches","hidePopover","setFocus","toggle","observe","connect","schedule","async","querySelector","componentOnReady","requestAnimationFrame","focus","onKeydown","event","defaultPrevented","key","preventDefault","stopPropagation","tabLeavesPopup","moveFocusAfterTab","shiftKey","forward","emitter","emit","detail","render","currentTab","tabs","map","id","toUpperCase","slice","panelId","h","Host","size","ref","variant","icon","ariaLabel","haspopup","expanded","surfaceOpen","controls","onDsClick","popover","undefined","role","class","left","top","visibility","presentation","value","onDsChange","dsPreferencesTabChange","find","hidden","vertical","applyRequired","activeFilterId","footerLayout","e","dsFilterChange","onDsMatchModeChange","dsFilterMatchModeChange","onDsActiveFilterChange","dsActiveFilterChange","onDsClear","dsFiltersClear","menuLabel","sections","tableSortMenuSections","sortColumns","onDsSelect","dsSortChange","nextTableSortStateFromMenuItem","options","onDsGroupChange","dsGroupChange","dsGroupClear","length","header","items","tableColumnCustomizerMenuItems","isInactive","flatMap","section","some","option","dsCustomizeOptionChange","dsColumnsConfigChange","toggleTableColumnHidden","resolveTableColumnOrder","onDsReorder","filter","item","reorderable","Boolean"],"sources":["src/wc/components/TablePreferences/TablePreferences.css?tag=ds-table-preferences&encapsulation=scoped","src/wc/components/TablePreferences/TablePreferences.tsx"],"sourcesContent":["@import '../../utils/radius.css';\n\n:host {\n display: inline-flex;\n}\n\n.table-preferences {\n position: fixed;\n margin: 0;\n padding: 0;\n border: 0;\n border-radius: var(--ds-radius-menu);\n width: min(var(--dimension-menu-width-lg), calc(100vw - var(--dimension-space-200)));\n max-height: calc(100dvh - var(--dimension-space-400));\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background: var(--color-background-primary);\n color: var(--color-foreground-secondary);\n box-shadow: var(--effect-shadow-elevated-floating);\n}\n\n.table-preferences::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: inherit;\n box-shadow: var(--effect-highlight-elevated-floating);\n pointer-events: none;\n z-index: 4;\n}\n\n.table-preferences__tabs {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n box-sizing: border-box;\n flex: 0 0 var(--dimension-size-500);\n min-block-size: var(--dimension-size-500);\n padding: var(--dimension-space-050);\n background: var(--color-background-primary);\n border-bottom: var(--dimension-stroke-width-012) solid var(--color-border-tertiary);\n}\n\n.table-preferences__body {\n min-height: 0;\n overflow: auto;\n overscroll-behavior: contain;\n}\n\n:host:has(.table-preferences-panel) {\n display: flex;\n flex: 1;\n min-height: 0;\n}\n.table-preferences-panel {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n min-width: 0;\n}\n.table-preferences-panel .table-preferences__tabs {\n flex: 0 0 auto;\n padding: var(--dimension-space-200);\n}\n","import type { MenuItemData, MenuSection } from '../Menu/menu-types';\nimport { resolveAnchoredOverlayBoundaryRect } from '../../utils/anchored-overlay-boundary';\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n} from '@stencil/core';\nimport type {\n FilterMenuFilter,\n FilterMenuValues,\n FilterMenuMatchModes,\n FilterMenuChangeDetail,\n FilterMenuMatchModeChangeDetail,\n} from '../FilterMenu/FilterMenu';\nimport type {\n TableColumn,\n TableSortState,\n TableSortChangeDetail,\n TableGroupingState,\n TableColumnsConfigChangeDetail,\n} from '../Table/table-types';\nimport type { TableGroupOption } from '../TableGroup/TableGroup';\nimport {\n tableSortMenuSections,\n nextTableSortStateFromMenuItem,\n} from '../TableSort/table-sort-menu';\nimport {\n tableColumnCustomizerMenuItems,\n toggleTableColumnHidden,\n resolveTableColumnOrder,\n} from '../Table/table-column-customizer';\nimport { AnchoredPositionController } from '../../utils/anchored-position-controller';\nimport { AnchoredOverlayInteractionController } from '../../utils/anchored-overlay-interaction-controller';\nimport { resolveCssLengthPx } from '../../utils/resolve-css-length-px';\nimport { TOKEN_DEFAULTS } from '../../utils/token-defaults';\n\nexport type PreferencesTab = 'filters' | 'sort' | 'group' | 'customize';\nlet preferencesSequence = 0;\n\n@Component({ tag: 'ds-table-preferences', styleUrl: 'TablePreferences.css', scoped: true })\nexport class TablePreferences {\n @Element() el!: HTMLElement;\n /** Show the trigger border. */\n @Prop() hasBorder: boolean = true;\n @Prop() filters: FilterMenuFilter[] = [];\n @Prop() values: FilterMenuValues = {};\n @Prop() matchModes: FilterMenuMatchModes = {};\n @Prop() activeFilterId: string | undefined;\n @Prop() columns: TableColumn[] = [];\n /** Additional toggle options in the column customizer. */\n @Prop() customizeOptions: MenuItemData[] = [];\n @Prop() customizeSections: MenuSection[] = [];\n @Event() dsCustomizeOptionChange!: EventEmitter<string>;\n /** Optional sort fields when they differ from customizable content. */\n @Prop() sortColumns?: TableColumn[];\n @Prop() sort: TableSortState | null = null;\n @Prop() groupingOptions: TableGroupOption[] = [];\n @Prop() grouping: TableGroupingState | null = null;\n @Prop() hiddenColumnIds: string[] = [];\n @Prop() columnOrder: string[] = [];\n /** Render shared content without its popup or trigger. */\n @Prop() embedded = false;\n @Prop() activeTab: PreferencesTab = 'filters';\n @Event() dsPreferencesTabChange!: EventEmitter<PreferencesTab>;\n @Prop() label = 'Configure view';\n @Event() dsFilterChange!: EventEmitter<FilterMenuChangeDetail>;\n @Event() dsFilterMatchModeChange!: EventEmitter<FilterMenuMatchModeChangeDetail>;\n @Event() dsActiveFilterChange!: EventEmitter<string>;\n @Event() dsFiltersClear!: EventEmitter<void>;\n @Event() dsSortChange!: EventEmitter<TableSortChangeDetail>;\n @Event() dsGroupChange!: EventEmitter<TableGroupingState>;\n @Event() dsGroupClear!: EventEmitter<void>;\n @Event() dsColumnsConfigChange!: EventEmitter<TableColumnsConfigChangeDetail>;\n @State() private open = false;\n @State() private tab: PreferencesTab = 'filters';\n @State() private pos = { x: 0, y: 0 };\n @State() private ready = false;\n private readonly popupId = `ds-table-preferences-${++preferencesSequence}`;\n private trigger?: HTMLDsButtonUnfilledElement;\n private popup?: HTMLElement;\n private readonly position = new AnchoredPositionController({\n getAnchor: () => this.trigger ?? null,\n getPopup: () => this.popup ?? null,\n getOwnerDocument: () => this.el.ownerDocument,\n measure: (anchor, popup) => {\n const collisionRect = resolveAnchoredOverlayBoundaryRect(anchor);\n const pad = resolveCssLengthPx(TOKEN_DEFAULTS.space100, 8);\n popup.style.maxWidth = `${Math.max(0, Math.min(window.innerWidth, collisionRect?.width ?? window.innerWidth) - pad * 2)}px`;\n popup.style.maxHeight = `${Math.max(0, Math.min(window.innerHeight, collisionRect?.height ?? window.innerHeight) - pad * 2)}px`;\n return {\n anchorRect: anchor.getBoundingClientRect(),\n popupWidth: popup.offsetWidth,\n popupHeight: popup.offsetHeight,\n side: 'bottom',\n align: 'end',\n sideOffsetPx: resolveCssLengthPx(TOKEN_DEFAULTS.space050, 4),\n alignOffsetPx: 0,\n viewportPadPx: resolveCssLengthPx(TOKEN_DEFAULTS.space100, 8),\n viewportWidth: window.innerWidth,\n viewportHeight: window.innerHeight,\n collisionRect,\n };\n },\n apply: ({ x, y }) => {\n this.pos = { x, y };\n },\n onReady: () => {\n this.ready = true;\n },\n topLayer: true,\n observeResize: true,\n observeAnchorMotion: true,\n liveUpdate: 'double-frame',\n });\n private readonly interaction = new AnchoredOverlayInteractionController({\n getAnchor: () => this.trigger ?? null,\n getPopup: () => this.popup ?? null,\n getOwnerDocument: () => this.el.ownerDocument,\n onOutsideActivation: () => this.close(),\n });\n disconnectedCallback() {\n this.position.unobserve();\n this.interaction.disconnect();\n }\n private close() {\n this.position.unobserve();\n this.interaction.disconnect();\n if (this.popup?.matches(':popover-open')) this.popup.hidePopover();\n this.open = false;\n void this.trigger?.setFocus();\n }\n private toggle() {\n if (this.open) {\n this.close();\n return;\n }\n this.open = true;\n this.ready = false;\n this.position.observe();\n this.interaction.connect();\n this.position.schedule(async () => {\n await this.popup?.querySelector('ds-tab-group')?.componentOnReady?.();\n requestAnimationFrame(() => {\n if (this.open)\n this.popup?.querySelector<HTMLElement>('[role=\"tab\"][aria-selected=\"true\"]')?.focus();\n });\n });\n }\n @Listen('keydown')\n onKeydown(event: KeyboardEvent) {\n if (this.embedded || !this.open || event.defaultPrevented) return;\n if (event.key === 'Escape') {\n event.preventDefault();\n event.stopPropagation();\n this.close();\n } else if (event.key === 'Tab' && this.interaction.tabLeavesPopup(event)) {\n event.preventDefault();\n this.close();\n this.interaction.moveFocusAfterTab(event.shiftKey);\n }\n }\n private forward<T>(event: CustomEvent<T>, emitter: EventEmitter<T>) {\n event.stopPropagation();\n emitter.emit(event.detail);\n }\n render() {\n const currentTab = this.embedded ? this.activeTab : this.tab;\n const tabs = ['filters', 'sort', 'group', 'customize'].map(id => ({\n id,\n label: id === 'filters' ? 'Filters' : id[0].toUpperCase() + id.slice(1),\n panelId: `${this.popupId}-${id}`,\n }));\n return (\n <Host>\n {!this.embedded && (\n <ds-tooltip label={this.label} side=\"bottom\" size=\"sm\">\n <ds-button-unfilled\n hasBorder={this.hasBorder}\n ref={el => {\n this.trigger = el;\n }}\n variant=\"icon\"\n icon=\"Preferences\"\n size=\"md\"\n ariaLabel={this.label}\n haspopup=\"dialog\"\n expanded={this.open}\n surfaceOpen={this.open}\n controls={this.popupId}\n onDsClick={() => this.toggle()}\n />\n </ds-tooltip>\n )}\n {(this.open || this.embedded) && (\n <div\n ref={el => {\n this.popup = el;\n }}\n id={this.popupId}\n popover={this.embedded ? undefined : 'manual'}\n role={this.embedded ? undefined : 'dialog'}\n aria-label={this.label}\n class={{\n 'table-preferences': !this.embedded,\n 'table-preferences-panel': this.embedded,\n }}\n style={\n this.embedded\n ? undefined\n : {\n left: `${this.pos.x}px`,\n top: `${this.pos.y}px`,\n visibility: this.ready ? 'visible' : 'hidden',\n }\n }\n >\n <div class=\"table-preferences__tabs\">\n <ds-tab-group\n ariaLabel=\"Table preference sections\"\n size=\"md\"\n presentation={this.embedded ? 'segmented' : 'tabs'}\n width={this.embedded ? 'fill' : 'hug'}\n tabs={tabs}\n value={currentTab}\n onDsChange={event => {\n event.stopPropagation();\n this.tab = event.detail as PreferencesTab;\n this.dsPreferencesTabChange.emit(this.tab);\n }}\n />\n </div>\n <div\n class=\"table-preferences__body\"\n id={`${this.popupId}-${currentTab}`}\n role=\"tabpanel\"\n aria-label={tabs.find(tab => tab.id === currentTab)?.label}\n >\n <div hidden={currentTab !== 'filters'}>\n <ds-filter-menu\n embedded\n vertical={this.embedded}\n applyRequired={!this.embedded}\n filters={this.filters}\n values={this.values}\n matchModes={this.matchModes}\n activeFilterId={this.activeFilterId}\n footerLayout=\"categories-clear\"\n onDsChange={e => this.forward(e, this.dsFilterChange)}\n onDsMatchModeChange={e => this.forward(e, this.dsFilterMatchModeChange)}\n onDsActiveFilterChange={e => this.forward(e, this.dsActiveFilterChange)}\n onDsClear={e => this.forward(e, this.dsFiltersClear)}\n />\n </div>\n {currentTab === 'sort' && (\n <ds-menu\n embedded\n menuLabel=\"Sort table\"\n sections={tableSortMenuSections(this.sortColumns ?? this.columns, this.sort)}\n onDsSelect={e => {\n e.stopPropagation();\n this.dsSortChange.emit({\n sort: nextTableSortStateFromMenuItem(\n this.sortColumns ?? this.columns,\n this.sort,\n e.detail\n ),\n });\n }}\n />\n )}\n {currentTab === 'group' && (\n <ds-table-group\n embedded\n vertical={this.embedded}\n options={this.groupingOptions}\n grouping={this.grouping}\n onDsGroupChange={e => this.forward(e, this.dsGroupChange)}\n onDsClear={e => this.forward(e, this.dsGroupClear)}\n />\n )}\n {currentTab === 'customize' && (\n <ds-menu\n embedded\n menuLabel=\"Customize table\"\n sections={[\n ...(this.columns.length\n ? [\n {\n header: this.customizeOptions.length ? 'Columns' : undefined,\n items: tableColumnCustomizerMenuItems(\n this.columns,\n this.hiddenColumnIds,\n this.columnOrder\n ),\n },\n ]\n : []),\n ...this.customizeSections,\n ...(this.customizeOptions.length\n ? [{ header: 'Options', items: this.customizeOptions }]\n : []),\n ]}\n onDsSelect={e => {\n e.stopPropagation();\n if (!e.detail.value || e.detail.isInactive) return;\n if (\n [\n ...this.customizeOptions,\n ...this.customizeSections.flatMap(section =>\n 'items' in section ? section.items : []\n ),\n ].some(option => option.value === e.detail.value)\n ) {\n this.dsCustomizeOptionChange.emit(e.detail.value);\n return;\n }\n this.dsColumnsConfigChange.emit({\n hiddenColumnIds: toggleTableColumnHidden(\n this.columns,\n this.hiddenColumnIds,\n e.detail.value\n ),\n columnOrder: resolveTableColumnOrder(this.columns, this.columnOrder),\n });\n }}\n onDsReorder={e => {\n e.stopPropagation();\n this.dsColumnsConfigChange.emit({\n hiddenColumnIds: this.hiddenColumnIds,\n columnOrder: e.detail.items\n .filter(item => item.reorderable)\n .map(item => item.value!)\n .filter(Boolean),\n });\n }}\n />\n )}\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{p as e,H as s,c as t,h as i,a,t as n}from"./index.js";import{d as o}from"./p-DBwa1OXP.js";import{d}from"./p-Jaqdfw4E.js";import{d as l}from"./p-BOhpMUwO.js";import{d as r}from"./p-Dryt3COt.js";import{d as h}from"./p-Ds51RgCi.js";import{d as c}from"./p-C0CE2v5D.js";import{d as m}from"./p-7O-2D29W.js";import{d as f}from"./p-Cea7rROU.js";import{d as u}from"./p-DkikNSSO.js";import{d as b}from"./p-0XTyQNRG.js";import{d as p}from"./p-CQIh2yRP.js";import{d as v}from"./p-DK9Ex3aY.js";import{d as w}from"./p-B27_chI7.js";import{d as g}from"./p-BV5T1hzN.js";import{d as k}from"./p-tNQ0YulU.js";import{d as D}from"./p-ji09W9el.js";import{d as E}from"./p-BgLI9JoT.js";import{d as y}from"./p-CbSUyv5B.js";const C=()=>`.sc-ds-table-saved-views-h{--ds-choice-popup-min-inline-size:var(--dimension-menu-width-xs);display:inline-block;min-inline-size:0;max-inline-size:var(--dimension-menu-width-xs)}ds-select.sc-ds-table-saved-views{display:block;min-inline-size:0;max-inline-size:100%}`;let j=0;const V=e(class e extends s{constructor(e){super();if(e!==false){this.__registerHost()}this.dsViewChange=t(this,"dsViewChange",7);this.dsViewCreate=t(this,"dsViewCreate",7);this.dsViewRename=t(this,"dsViewRename",7);this.dsViewRemove=t(this,"dsViewRemove",7);this.dsViewSave=t(this,"dsViewSave",7);this.dsViewDiscard=t(this,"dsViewDiscard",7);this.hasBorder=true;this.views=[];this.value="__default__";this.dirty=false;this.defaultViewId="__default__";this.defaultViewLabel="Default";this.label="Saved views";this.triggerLabel="Views";this.compact=false;this.createLabel="New view";this.actionViewId=null;this.actionMenuOpen=false;this.actionMenuInitialFocusVisible=false;this.dialogOpen=false;this.dialogMode="create";this.dialogViewId=null;this.nameDraft="";this.nameError="";this.componentId=`ds-table-saved-views-${++j}`;this.selectId=`${this.componentId}-select`;this.actionMenuId=`${this.componentId}-actions`;this.fieldId=`${this.componentId}-name-field`;this.inputId=`${this.componentId}-name-input`;this.actionItems=[{label:"Rename",value:"rename"},{label:"Remove",value:"remove",isDestructive:true}]}get selectedCustomView(){return this.views.find((e=>e.id===this.value))}get dialogView(){return this.views.find((e=>e.id===this.dialogViewId))}get sections(){const e=this.views.map((e=>({label:e.label,value:e.id,subtextActions:this.dirty&&e.id===this.selectedCustomView?.id?[{label:"Save",value:"save"},{label:"Discard",value:"discard",tone:"negative"}]:undefined,action:{label:`Options for ${e.label}`,controls:this.actionMenuId,expanded:this.actionViewId===e.id&&this.actionMenuOpen,surfaceOpen:this.actionViewId===e.id}})));const s={header:"Templates",options:[{label:this.defaultViewLabel,value:this.defaultViewId}],divider:e.length>0};return e.length>0?[s,{header:"Custom",options:e}]:[s]}handleViewChange(e){if(typeof e==="string")this.dsViewChange.emit({viewId:e})}handleSubtextAction(e){const s=this.selectedCustomView;if(!s||!this.dirty||e.value!==s.id)return;if(e.actionValue==="save")this.dsViewSave.emit({viewId:s.id});if(e.actionValue==="discard")this.dsViewDiscard.emit({viewId:s.id})}handleOptionAction(e){if(!this.views.some((s=>s.id===e.value)))return;this.actionMenuInitialFocusVisible=e.originalEvent.detail===0;if(this.actionViewId===e.value&&this.actionMenuOpen){this.actionMenuOpen=false;return}this.actionViewId=e.value;this.actionAnchorId=e.anchorId;this.actionMenuOpen=true}handleActionSelect(e){const s=this.actionViewId;this.actionMenuOpen=false;if(!s)return;if(e.detail.value==="rename")this.openDialog("rename",s);if(e.detail.value==="remove")this.dsViewRemove.emit({viewId:s})}openDialog(e,s=null){const t=e==="rename"?this.views.find((e=>e.id===s)):undefined;if(e==="rename"&&!t)return;this.dialogMode=e;this.dialogViewId=t?.id??null;this.nameDraft=t?.label??"";this.nameError="";this.dialogOpen=true;requestAnimationFrame((()=>{requestAnimationFrame((()=>{const e=this.el.querySelector(`#${this.inputId}`);void e?.setFocus?.()}))}))}validateName(){const e=this.nameDraft.trim();if(!e)return"View name is required.";const s=this.views.some((s=>s.id!==this.dialogViewId&&s.label.trim().toLocaleLowerCase()===e.toLocaleLowerCase()));if(s||this.defaultViewLabel.trim().toLocaleLowerCase()===e.toLocaleLowerCase()){return"A view with this name already exists."}return""}submitDialog(){const e=this.validateName();if(e){this.nameError=e;return}const s=this.nameDraft.trim();if(this.dialogMode==="rename"&&this.dialogView){this.dsViewRename.emit({viewId:this.dialogView.id,name:s})}else{this.dsViewCreate.emit({name:s})}this.dialogOpen=false}finishDialogClose(){if(this.dialogOpen)return;this.dialogViewId=null;this.nameDraft="";this.nameError="";const e=this.el.querySelector(`#${this.selectId}`);void e?.setFocus?.()}render(){return i(a,{key:"43fc7569a2b2e1109ac64134e65f541703e59e54"},i("ds-select",{key:"821730bb9f01d279ce66fb1dafb468c924267b2e",neutralTrigger:true,hasBorder:this.hasBorder,id:this.selectId,size:"md",icon:"ViewMenu",indicator:"none",collapseLabel:true,iconOnly:this.compact,width:"fill",placeholder:this.label,"aria-label":this.label,sections:this.sections,value:this.value,triggerLabel:this.selectedCustomView?undefined:this.triggerLabel,triggerLabelPlaceholder:!this.selectedCustomView,dot:this.dirty&&Boolean(this.selectedCustomView),footerActionLabel:this.createLabel,activeFill:false,allowClear:false,onDsChange:e=>this.handleViewChange(e.detail),onDsFooterAction:()=>this.openDialog("create"),onDsOptionSubtextAction:e=>this.handleSubtextAction(e.detail),onDsOptionAction:e=>this.handleOptionAction(e.detail)}),i("ds-menu",{key:"5409715aa5b78a0959842a2c17d3457425e9397c",id:this.actionMenuId,anchorId:this.actionAnchorId,menuLabel:"Saved view options",side:"bottom",align:"end",menuWidth:"max-content",minWidth:"0",items:this.actionItems,open:this.actionMenuOpen,initialFocusVisible:this.actionMenuInitialFocusVisible,onDsClose:()=>this.actionMenuOpen=false,onDsAfterClose:()=>{if(this.actionMenuOpen)return;this.actionViewId=null;this.actionAnchorId=undefined},onDsSelect:e=>this.handleActionSelect(e)}),i("ds-modal",{key:"475b272b4536c90b85b74812cc84c4fb26d6bc29",open:this.dialogOpen,heading:this.dialogMode==="rename"?"Rename view":"Save as new view",modalWidth:"sm",onDsClose:()=>this.dialogOpen=false,onDsAfterClose:()=>this.finishDialogClose()},i("ds-field",{key:"11e73766e31b14b7204ce0bad84cc7f1005b2d16",fieldId:this.fieldId,error:this.nameError.length>0,errorMessage:this.nameError},i("ds-input",{key:"8dc528f0a8c02d9d18f65e5e2727393300d0e8b8",id:this.inputId,size:"md","aria-label":"Name",placeholder:"Enter a unique name",value:this.nameDraft,autoFocus:true,onDsChange:e=>{this.nameDraft=e.detail;if(this.nameError)this.nameError=""},onKeyDown:e=>{if(e.key==="Enter")this.submitDialog()}})),i("ds-button-filled",{key:"5a896d09c946ea25061eac2b510225044651c9f6",slot:"footer",label:this.dialogMode==="rename"?"Rename":"Save",size:"md",onDsClick:()=>this.submitDialog()}),i("ds-button-unfilled",{key:"318cfaf66f4e147cffce3f17ed9d5d24c8928665",slot:"footer",label:"Cancel",size:"md",onDsClick:()=>this.dialogOpen=false})))}get el(){return this}static get style(){return C()}},[2,"ds-table-saved-views",{hasBorder:[4,"has-border"],views:[16],value:[1],dirty:[4],defaultViewId:[1,"default-view-id"],defaultViewLabel:[1,"default-view-label"],label:[1],triggerLabel:[1,"trigger-label"],compact:[4],createLabel:[1,"create-label"],actionViewId:[32],actionAnchorId:[32],actionMenuOpen:[32],actionMenuInitialFocusVisible:[32],dialogOpen:[32],dialogMode:[32],dialogViewId:[32],nameDraft:[32],nameError:[32]}]);function x(){if(typeof customElements==="undefined"){return}const e=["ds-table-saved-views","ds-badge","ds-button-filled","ds-button-unfilled","ds-checkbox","ds-divider","ds-empty-state","ds-field","ds-icon","ds-input","ds-loader","ds-menu","ds-modal","ds-select","ds-swatch-picker","ds-switch","ds-tag","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-table-saved-views":if(!customElements.get(n(e))){customElements.define(n(e),V)}break;case"ds-badge":if(!customElements.get(n(e))){o()}break;case"ds-button-filled":if(!customElements.get(n(e))){d()}break;case"ds-button-unfilled":if(!customElements.get(n(e))){l()}break;case"ds-checkbox":if(!customElements.get(n(e))){r()}break;case"ds-divider":if(!customElements.get(n(e))){h()}break;case"ds-empty-state":if(!customElements.get(n(e))){c()}break;case"ds-field":if(!customElements.get(n(e))){m()}break;case"ds-icon":if(!customElements.get(n(e))){f()}break;case"ds-input":if(!customElements.get(n(e))){u()}break;case"ds-loader":if(!customElements.get(n(e))){b()}break;case"ds-menu":if(!customElements.get(n(e))){p()}break;case"ds-modal":if(!customElements.get(n(e))){v()}break;case"ds-select":if(!customElements.get(n(e))){w()}break;case"ds-swatch-picker":if(!customElements.get(n(e))){g()}break;case"ds-switch":if(!customElements.get(n(e))){k()}break;case"ds-tag":if(!customElements.get(n(e))){D()}break;case"ds-text":if(!customElements.get(n(e))){E()}break;case"ds-tooltip":if(!customElements.get(n(e))){y()}break}}))}x();const I=V;const O=x;export{I as DsTableSavedViews,O as defineCustomElement};
2
- //# sourceMappingURL=ds-table-saved-views.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["tableSavedViewsCss","tableSavedViewsId","TableSavedViews","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","hasBorder","views","value","dirty","defaultViewId","defaultViewLabel","label","triggerLabel","compact","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","neutralTrigger","size","icon","indicator","collapseLabel","iconOnly","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","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","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 /** Show the trigger border. */\n @Prop() hasBorder: boolean = true;\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 /** Use an icon-only trigger in an explicitly compact toolbar. */\n @Prop() compact: boolean = false;\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 neutralTrigger\n hasBorder={this.hasBorder}\n id={this.selectId}\n size=\"md\"\n icon=\"ViewMenu\"\n indicator=\"none\"\n collapseLabel\n iconOnly={this.compact}\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 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 aria-label=\"Name\"\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 <ds-button-filled\n slot=\"footer\"\n label={this.dialogMode === 'rename' ? 'Rename' : 'Save'}\n size=\"md\"\n onDsClick={() => this.submitDialog()}\n />\n <ds-button-unfilled\n slot=\"footer\"\n label=\"Cancel\"\n size=\"md\"\n onDsClick={() => (this.dialogOpen = false)}\n />\n </ds-modal>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
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-B8ZonS3S.js";import{c as n,r as d,A as l}from"./p-etg-Uk1u.js";import{i as h}from"./p-KBrC9IG4.js";import{d as b}from"./p-DBwa1OXP.js";import{d as p}from"./p-BOhpMUwO.js";import{d as f}from"./p-BWfzaSc3.js";import{d as v}from"./p-C0CE2v5D.js";import{d as u}from"./p-Cea7rROU.js";import{d as m}from"./p-0XTyQNRG.js";import{d as g}from"./p-BgLI9JoT.js";import{d as x}from"./p-CbSUyv5B.js";import{r as y}from"./p-CochmPyg.js";import{T as w}from"./p-CeXf9-X3.js";function _(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 k(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 z(e,s){const t=new Set(s);return e.filter((e=>!t.has(e.id)))}function C(e,s){const t=s.trim().toLocaleLowerCase();if(!t)return[...e];return e.filter((e=>`${e.label} ${e.id}`.toLocaleLowerCase().includes(t)))}function F(e,s,t){if(s<=0)return-1;const i=e>=0&&e<s?e:0;return(i+t+s)%s}const I=()=>`.sc-ds-table-search-h,.sc-ds-table-search:where(.ds-table),.sc-ds-table-search:where(.tooltip-popup),.sc-ds-table-search:where(.ds-radius){--ds-radius-control:var(--dimension-radius-025);--ds-radius-card:var(--dimension-radius-050);--ds-radius-modal:var(--dimension-radius-050);--ds-radius-menu:var(--dimension-radius-075);--ds-radius-tooltip-control:var(--dimension-radius-025);--ds-radius-tooltip-menu:var(--dimension-radius-075);--ds-radius-table:var(--dimension-radius-050)}@media (forced-colors: active){.sc-ds-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(--ds-radius-control)}.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(--ds-radius-menu);box-shadow:var(--effect-shadow-elevated-floating);color:var(--color-foreground-secondary);animation:dsChoiceFadeIn var(--effect-motion-short-2) forwards;backface-visibility:hidden;will-change:transform;text-align:start}.ds-choice-popup.sc-ds-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}}@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-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)}.select-option-row.sc-ds-table-search{display:flex;flex-direction:column;min-width:0}.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.ds-control--xs.sc-ds-table-search:has(.ds-choice-item__subtext){padding-block:0}.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-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__clear.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__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)}}.table-search-host--borderless.sc-ds-table-search-h .table-search__control.sc-ds-table-search:not(:focus-within){--ds-interaction-border-width:0px}`;let T=0;const S=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.hasBorder=true;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=y(w.space050,w.space050);s.style.minWidth=`max(var(--ds-choice-popup-min-inline-size, ${w.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 k(this.searchFields,this.selectedFieldIds)}get availableFields(){return z(this.searchFields,this.selectedFieldIds)}get visibleFields(){return C(this.availableFields,this.menuQuery)}get searchFields(){return _(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=C(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=F(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.visibleFields;const t=this.menuOpen?this.menuQuery:this.value;const r=this.value.length>0||e.length>0;const o=e.length?`Search limited to ${e.map((e=>e.label)).join(" or ")}.`:"Search includes every available table field. Type slash to choose fields.";const c={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){c["max-height"]=`${Math.floor(this.availableHeight)}px`}return i(a,{key:"e14cea72edfb297872c6d6465fc96901ef07c182",class:{"table-search-host":true,"table-search-host--borderless":!this.hasBorder,"ds-control--md":true,"ds-control-inactive":this.isInactive},"data-filled":r?"":undefined,"data-expanded":this.menuOpen?"":undefined},i("div",{key:"3ed81244e7b220bc2d4b143758e7076998525d51",ref:e=>{this.controlEl=e??null},class:"table-search__control ds-control-frame ds-control--md ds-interaction-fill"},i("span",{key:"6b95cc9249b5d32ddb23b0c59ec681b03f37d7b3",class:"table-search__icon ds-control-icon-box ds-interaction-fill__content","aria-hidden":"true"},i("ds-icon",{key:"a774d0a2a50bec9d15e2302d93b9d217504ed7f6",name:"MagnifyingGlass",size:"md",color:"inherit"})),i("div",{key:"74abd746a767317c871eaaee77a870fdb0f19a45",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:"91270b0d4c2a8859f3690e6ab53f2a8613497b25",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:t,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)})),t.length>0&&!this.isInactive&&i("ds-button-unfilled",{key:"f4971f0e2c482a12b70f13369eb1e60b2cc2137f",class:"table-search__clear ds-interaction-fill__content",variant:"icon",size:"sm",icon:"CrossCircle",hasBorder:false,rounded:true,ariaLabel:this.clearLabel,onDsClick:()=>this.clearSearch()})),i("span",{key:"31d57f559ff2338cf167b52531ef14a17a48931a",id:this.descriptionId,class:"ds-visually-hidden"},o),i("span",{key:"bc1fe5be1a60e6ccf1fe54a5bb856d7e0eafcb50",class:"ds-visually-hidden","aria-live":"polite"},this.announcement),this.menuOpen&&i("div",{key:"e226bb87d52ff8be1b502f3c81faf03bba122ca8",popover:"manual",ref:e=>{this.popupEl=e??null},class:"table-search__popup ds-choice-popup",style:c},i("div",{key:"2bbf5a210197786899ee4ec9f9a412d4497e9580",id:this.listboxId,class:"table-search__list ds-choice-list",role:"listbox","aria-label":this.fieldMenuLabel},s.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))})),s.length===0&&i("div",{key:"0daf59663ba1815150c2d065fc28b42a57206ff8",class:"table-search__empty ds-choice-empty ds-empty-region"},i("ds-empty-state",{key:"352f9528de41ea40108292016b7cb36d75f4c061",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 I()}},[2,"ds-table-search",{hasBorder:[516,"has-border"],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 $(){if(typeof customElements==="undefined"){return}const e=["ds-table-search","ds-badge","ds-button-unfilled","ds-chip","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),S)}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-empty-state":if(!customElements.get(r(e))){v()}break;case"ds-icon":if(!customElements.get(r(e))){u()}break;case"ds-loader":if(!customElements.get(r(e))){m()}break;case"ds-text":if(!customElements.get(r(e))){g()}break;case"ds-tooltip":if(!customElements.get(r(e))){x()}break}}))}$();const j=S;const A=$;export{j as DsTableSearch,A as defineCustomElement};
2
- //# sourceMappingURL=ds-table-search.js.map
@@ -1 +0,0 @@
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","hasBorder","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","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","rounded","onDsClick","popover","index","active","onMouseDown","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/radius.css';\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__clear {\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__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\n:host(.table-search-host--borderless) .table-search__control:not(:focus-within) {\n --ds-interaction-border-width: 0px;\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 /** Show the resting field border; keyboard focus remains visible. */\n @Prop({ reflect: true }) hasBorder: boolean = true;\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 'table-search-host--borderless': !this.hasBorder,\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 {inputValue.length > 0 && !this.isInactive && (\n <ds-button-unfilled\n class=\"table-search__clear ds-interaction-fill__content\"\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 </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 +0,0 @@
1
- import{p as s,H as e,c as t,h as i,a,t as o}from"./index.js";import{a as n,t as r,n as l,b as c}from"./p-CKarsuR2.js";import{d}from"./p-DBwa1OXP.js";import{d as h}from"./p-BOhpMUwO.js";import{d as m}from"./p-Cea7rROU.js";import{d as u}from"./p-0XTyQNRG.js";import{d as f}from"./p-CQIh2yRP.js";import{d as p}from"./p-BV5T1hzN.js";import{d as b}from"./p-tNQ0YulU.js";import{d as k}from"./p-ji09W9el.js";import{d as E}from"./p-BgLI9JoT.js";import{d as g}from"./p-CbSUyv5B.js";const j=()=>`.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 w=0;const S=s(class s extends e{constructor(s){super();if(s!==false){this.__registerHost()}this.dsSortChange=t(this,"dsSortChange",3);this.hasBorder=true;this.columns=[];this.sort=null;this.ariaLabel=null;this.menuOpen=false;this.menuSurfaceOpen=false;this.initialFocusVisible=false;this.componentId=`ds-table-sort-${++w}`;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=n(this.columns);const e=this.ariaLabel?.trim()||"Sort table";return i(a,{key:"2aaa434afe09f41e63ec28bf70c1ee4c075ae604",hidden:s.length===0?true:undefined},s.length===0?null:i("ds-button-unfilled",{hasBorder:this.hasBorder,id:this.triggerId,variant:"icon-label",size:"md",icon:"ArrowsVertical",label:"Sort",labelEmphasis:false,pressScale:false,"aria-label":e,haspopup:"menu",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:r(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=l(this.columns,this.sort,s);if(c(this.sort,e))return;this.dsSortChange.emit({sort:e})}get el(){return this}static get style(){return j()}},[2,"ds-table-sort",{hasBorder:[4,"has-border"],columns:[16],sort:[16],ariaLabel:[1,"aria-label"],menuOpen:[32],menuSurfaceOpen:[32],initialFocusVisible:[32],setFocus:[64]}]);function x(){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),S)}break;case"ds-badge":if(!customElements.get(o(s))){d()}break;case"ds-button-unfilled":if(!customElements.get(o(s))){h()}break;case"ds-icon":if(!customElements.get(o(s))){m()}break;case"ds-loader":if(!customElements.get(o(s))){u()}break;case"ds-menu":if(!customElements.get(o(s))){f()}break;case"ds-swatch-picker":if(!customElements.get(o(s))){p()}break;case"ds-switch":if(!customElements.get(o(s))){b()}break;case"ds-tag":if(!customElements.get(o(s))){k()}break;case"ds-text":if(!customElements.get(o(s))){E()}break;case"ds-tooltip":if(!customElements.get(o(s))){g()}break}}))}x();const y=S;const C=x;export{y as DsTableSort,C as defineCustomElement};
2
- //# sourceMappingURL=ds-table-sort.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["tableSortCss","tableSortSeq","TableSort","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","hasBorder","columns","sort","ariaLabel","menuOpen","menuSurfaceOpen","initialFocusVisible","componentId","triggerId","menuId","setFocus","trigger","el","querySelector","CSS","escape","render","fields","tableSortFields","name","trim","h","Host","key","hidden","length","undefined","id","variant","size","icon","label","labelEmphasis","pressScale","haspopup","collapseLabel","expanded","surfaceOpen","controls","onDsClick","event","toggle","detail","open","anchorId","align","side","menuLabel","selectionMode","sections","tableSortMenuSections","onDsClose","close","onDsAfterClose","onDsSelect","handleSelect","fromKeyboard","item","next","nextTableSortStateFromMenuItem","tableSortStatesEqual","dsSortChange","emit"],"sources":["src/wc/components/TableSort/TableSort.css?tag=ds-table-sort&encapsulation=scoped","src/wc/components/TableSort/TableSort.tsx"],"sourcesContent":[":host {\n display: inline-flex;\n min-inline-size: 0;\n max-inline-size: var(--dimension-menu-width-xs);\n}\n\n:host([hidden]) {\n display: none;\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n} from '@stencil/core';\nimport type { MenuItemData } from '../Menu/menu-types';\nimport type { TableColumn, TableSortChangeDetail, TableSortState } from '../Table/table-types';\nimport {\n nextTableSortStateFromMenuItem,\n tableSortFields,\n tableSortMenuSections,\n tableSortStatesEqual,\n} from './table-sort-menu';\n\nlet tableSortSeq = 0;\n\n@Component({\n tag: 'ds-table-sort',\n styleUrl: 'TableSort.css',\n scoped: true,\n})\nexport class TableSort {\n @Element() private el!: HTMLElement;\n\n /** Catalog used to derive sortable fields, including compound header segments. */\n /** Show the trigger border. */\n @Prop() hasBorder: boolean = true;\n @Prop() columns: TableColumn[] = [];\n /** Controlled table sort. Header sorting and this menu share the same value. */\n @Prop() sort: TableSortState | null = null;\n /** Accessible name for the trigger and menu. */\n @Prop({ attribute: 'aria-label' }) ariaLabel: string | null = null;\n\n @Event({ bubbles: false }) dsSortChange!: EventEmitter<TableSortChangeDetail>;\n\n @State() private menuOpen = false;\n @State() private menuSurfaceOpen = false;\n @State() private initialFocusVisible = false;\n\n private readonly componentId = `ds-table-sort-${++tableSortSeq}`;\n private readonly triggerId = `${this.componentId}-trigger`;\n private readonly menuId = `${this.componentId}-menu`;\n\n @Method()\n async setFocus() {\n const trigger = this.el.querySelector<HTMLElement & { setFocus?: () => Promise<void> }>(\n `#${CSS.escape(this.triggerId)}`\n );\n await trigger?.setFocus?.();\n }\n\n render() {\n const fields = tableSortFields(this.columns);\n const name = this.ariaLabel?.trim() || 'Sort table';\n\n return (\n <Host hidden={fields.length === 0 ? true : undefined}>\n {fields.length === 0 ? null : (\n <ds-button-unfilled\n hasBorder={this.hasBorder}\n id={this.triggerId}\n variant=\"icon-label\"\n size=\"md\"\n icon=\"ArrowsVertical\"\n label=\"Sort\"\n labelEmphasis={false}\n pressScale={false}\n aria-label={name}\n haspopup=\"menu\"\n collapseLabel={true}\n expanded={this.menuOpen}\n surfaceOpen={this.menuSurfaceOpen}\n controls={this.menuId}\n onDsClick={(event: CustomEvent<MouseEvent>) => {\n this.toggle(event.detail.detail === 0);\n }}\n />\n )}\n {fields.length === 0 ? null : (\n <ds-menu\n id={this.menuId}\n open={this.menuOpen}\n anchorId={this.triggerId}\n align=\"start\"\n side=\"bottom\"\n menuLabel={name}\n selectionMode=\"none\"\n initialFocusVisible={this.initialFocusVisible}\n sections={tableSortMenuSections(this.columns, this.sort)}\n onDsClose={() => this.close()}\n onDsAfterClose={() => {\n if (!this.menuOpen) this.menuSurfaceOpen = false;\n }}\n onDsSelect={event => this.handleSelect(event.detail)}\n />\n )}\n </Host>\n );\n }\n\n private toggle(fromKeyboard = false): void {\n if (this.menuOpen) this.close();\n else this.open(fromKeyboard);\n }\n\n private open(fromKeyboard = false): void {\n if (this.menuOpen) return;\n this.initialFocusVisible = fromKeyboard;\n this.menuOpen = true;\n this.menuSurfaceOpen = true;\n }\n\n private close(): void {\n this.menuOpen = false;\n }\n\n private handleSelect(item: MenuItemData): void {\n const next = nextTableSortStateFromMenuItem(this.columns, this.sort, item);\n if (tableSortStatesEqual(this.sort, next)) return;\n this.dsSortChange.emit({ sort: next });\n }\n}\n"],"mappings":"ydAAA,MAAMA,EAAe,IAAM,qJCoB3B,IAAIC,EAAe,E,MAONC,EAASC,EAAA,MAAAD,UAAAE,EALtB,WAAAC,CAAAC,G,uFAUUC,KAAAC,UAAqB,KACrBD,KAAAE,QAAyB,GAEzBF,KAAAG,KAA8B,KAEHH,KAAAI,UAA2B,KAI7CJ,KAAAK,SAAW,MACXL,KAAAM,gBAAkB,MAClBN,KAAAO,oBAAsB,MAEtBP,KAAAQ,YAAc,mBAAmBd,IACjCM,KAAAS,UAAY,GAAGT,KAAKQ,sBACpBR,KAAAU,OAAS,GAAGV,KAAKQ,kBAgFnC,CA7EC,cAAMG,GACJ,MAAMC,EAAUZ,KAAKa,GAAGC,cACtB,IAAIC,IAAIC,OAAOhB,KAAKS,oBAEhBG,GAASD,a,CAGjB,MAAAM,GACE,MAAMC,EAASC,EAAgBnB,KAAKE,SACpC,MAAMkB,EAAOpB,KAAKI,WAAWiB,QAAU,aAEvC,OACEC,EAACC,EAAI,CAAAC,IAAA,2CAACC,OAAQP,EAAOQ,SAAW,EAAI,KAAOC,WACxCT,EAAOQ,SAAW,EAAI,KACrBJ,EAAA,sBACErB,UAAWD,KAAKC,UAChB2B,GAAI5B,KAAKS,UACToB,QAAQ,aACRC,KAAK,KACLC,KAAK,iBACLC,MAAM,OACNC,cAAe,MACfC,WAAY,MAAK,aACLd,EACZe,SAAS,OACTC,cAAe,KACfC,SAAUrC,KAAKK,SACfiC,YAAatC,KAAKM,gBAClBiC,SAAUvC,KAAKU,OACf8B,UAAYC,IACVzC,KAAK0C,OAAOD,EAAME,OAAOA,SAAW,EAAE,IAI3CzB,EAAOQ,SAAW,EAAI,KACrBJ,EAAA,WACEM,GAAI5B,KAAKU,OACTkC,KAAM5C,KAAKK,SACXwC,SAAU7C,KAAKS,UACfqC,MAAM,QACNC,KAAK,SACLC,UAAW5B,EACX6B,cAAc,OACd1C,oBAAqBP,KAAKO,oBAC1B2C,SAAUC,EAAsBnD,KAAKE,QAASF,KAAKG,MACnDiD,UAAW,IAAMpD,KAAKqD,QACtBC,eAAgB,KACd,IAAKtD,KAAKK,SAAUL,KAAKM,gBAAkB,KAAK,EAElDiD,WAAYd,GAASzC,KAAKwD,aAAaf,EAAME,U,CAO/C,MAAAD,CAAOe,EAAe,OAC5B,GAAIzD,KAAKK,SAAUL,KAAKqD,aACnBrD,KAAK4C,KAAKa,E,CAGT,IAAAb,CAAKa,EAAe,OAC1B,GAAIzD,KAAKK,SAAU,OACnBL,KAAKO,oBAAsBkD,EAC3BzD,KAAKK,SAAW,KAChBL,KAAKM,gBAAkB,I,CAGjB,KAAA+C,GACNrD,KAAKK,SAAW,K,CAGV,YAAAmD,CAAaE,GACnB,MAAMC,EAAOC,EAA+B5D,KAAKE,QAASF,KAAKG,KAAMuD,GACrE,GAAIG,EAAqB7D,KAAKG,KAAMwD,GAAO,OAC3C3D,KAAK8D,aAAaC,KAAK,CAAE5D,KAAMwD,G","ignoreList":[]}
@@ -1,11 +0,0 @@
1
- import type { Components, JSX } from "../types/components";
2
-
3
- interface DsTableToolbar extends Components.DsTableToolbar, HTMLElement {}
4
- export const DsTableToolbar: {
5
- prototype: DsTableToolbar;
6
- new (): DsTableToolbar;
7
- };
8
- /**
9
- * Used to define this component and all nested components recursively.
10
- */
11
- export const defineCustomElement: () => void;