@pine-ds/core 3.13.0 → 3.14.1

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 (592) hide show
  1. package/components/floating-ui.dom.js +161 -40
  2. package/components/floating-ui.dom.js.map +1 -1
  3. package/components/index.d.ts +2 -0
  4. package/components/index.js +1 -0
  5. package/components/index.js.map +1 -1
  6. package/components/index2.js +1 -1
  7. package/components/index2.js.map +1 -1
  8. package/components/mock-pds-modal.js.map +1 -1
  9. package/components/pds-avatar.js +18 -5
  10. package/components/pds-avatar.js.map +1 -1
  11. package/components/pds-button2.js.map +1 -1
  12. package/components/pds-checkbox2.js.map +1 -1
  13. package/components/pds-chip2.js.map +1 -1
  14. package/components/pds-combobox.js +66 -26
  15. package/components/pds-combobox.js.map +1 -1
  16. package/components/pds-dropdown-menu-item.js +1 -1
  17. package/components/pds-dropdown-menu-item.js.map +1 -1
  18. package/components/pds-dropdown-menu.js +3 -2
  19. package/components/pds-dropdown-menu.js.map +1 -1
  20. package/components/pds-filter.js +1 -1
  21. package/components/pds-filter.js.map +1 -1
  22. package/components/pds-input.js +6 -2
  23. package/components/pds-input.js.map +1 -1
  24. package/components/pds-modal.js.map +1 -1
  25. package/components/pds-multiselect.d.ts +11 -0
  26. package/components/pds-multiselect.js +666 -0
  27. package/components/pds-multiselect.js.map +1 -0
  28. package/components/pds-popover.js +1 -1
  29. package/components/pds-progress.js +1 -1
  30. package/components/pds-property.js +1 -1
  31. package/components/pds-radio-group.js +3 -3
  32. package/components/pds-radio.js +3 -3
  33. package/components/pds-radio.js.map +1 -1
  34. package/components/pds-row.js +1 -1
  35. package/components/pds-select.js +14 -2
  36. package/components/pds-select.js.map +1 -1
  37. package/components/pds-sortable-item.js +1 -1
  38. package/components/pds-sortable.js +1 -1
  39. package/components/pds-switch.js +3 -3
  40. package/components/pds-tab.js +4 -4
  41. package/components/pds-tab.js.map +1 -1
  42. package/components/pds-table-body.js +1 -1
  43. package/components/pds-table-cell2.js +2 -2
  44. package/components/pds-table-cell2.js.map +1 -1
  45. package/components/pds-table-head-cell2.js +47 -6
  46. package/components/pds-table-head-cell2.js.map +1 -1
  47. package/components/pds-table-head.js +1 -1
  48. package/components/pds-table-row.js +1 -1
  49. package/components/pds-table.js +44 -3
  50. package/components/pds-table.js.map +1 -1
  51. package/components/pds-tabpanel.js +1 -1
  52. package/components/pds-tabs.js +1 -1
  53. package/components/pds-text2.js +1 -1
  54. package/components/pds-textarea.js +8 -4
  55. package/components/pds-textarea.js.map +1 -1
  56. package/components/pds-toast.js +3 -3
  57. package/components/pds-tooltip.js +2 -2
  58. package/dist/cjs/{floating-ui.dom-DTAy35nv.js → floating-ui.dom-Ca6tS7ef.js} +163 -41
  59. package/dist/cjs/floating-ui.dom-Ca6tS7ef.js.map +1 -0
  60. package/dist/cjs/{index-CMeuo765.js → index-BA--jsiy.js} +3 -3
  61. package/dist/cjs/index-BA--jsiy.js.map +1 -0
  62. package/dist/cjs/loader.cjs.js +1 -1
  63. package/dist/cjs/mock-pds-modal.entry.cjs.js.map +1 -1
  64. package/dist/cjs/pds-accordion.cjs.entry.js +1 -1
  65. package/dist/cjs/pds-avatar.cjs.entry.js +18 -6
  66. package/dist/cjs/pds-avatar.entry.cjs.js.map +1 -1
  67. package/dist/cjs/pds-button.cjs.entry.js +1 -1
  68. package/dist/cjs/pds-button.entry.cjs.js.map +1 -1
  69. package/dist/cjs/pds-checkbox.cjs.entry.js +1 -1
  70. package/dist/cjs/pds-checkbox.entry.cjs.js.map +1 -1
  71. package/dist/cjs/pds-chip.cjs.entry.js +1 -1
  72. package/dist/cjs/pds-chip.entry.cjs.js.map +1 -1
  73. package/dist/cjs/pds-combobox.cjs.entry.js +67 -27
  74. package/dist/cjs/pds-combobox.entry.cjs.js.map +1 -1
  75. package/dist/cjs/pds-copytext.cjs.entry.js +1 -1
  76. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +1 -1
  77. package/dist/cjs/pds-dropdown-menu-item.entry.cjs.js.map +1 -1
  78. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +4 -3
  79. package/dist/cjs/pds-dropdown-menu.entry.cjs.js.map +1 -1
  80. package/dist/cjs/pds-filter.cjs.entry.js +2 -2
  81. package/dist/cjs/pds-filter.entry.cjs.js.map +1 -1
  82. package/dist/cjs/pds-input.cjs.entry.js +7 -3
  83. package/dist/cjs/pds-input.entry.cjs.js.map +1 -1
  84. package/dist/cjs/pds-link.cjs.entry.js +1 -1
  85. package/dist/cjs/pds-modal.entry.cjs.js.map +1 -1
  86. package/dist/cjs/pds-multiselect.cjs.entry.js +592 -0
  87. package/dist/cjs/pds-multiselect.entry.cjs.js.map +1 -0
  88. package/dist/cjs/pds-popover.cjs.entry.js +1 -1
  89. package/dist/cjs/pds-progress.cjs.entry.js +1 -1
  90. package/dist/cjs/pds-property.cjs.entry.js +1 -1
  91. package/dist/cjs/pds-radio-group.cjs.entry.js +4 -4
  92. package/dist/cjs/pds-radio.cjs.entry.js +4 -4
  93. package/dist/cjs/pds-radio.entry.cjs.js.map +1 -1
  94. package/dist/cjs/pds-row.cjs.entry.js +1 -1
  95. package/dist/cjs/pds-select.cjs.entry.js +15 -3
  96. package/dist/cjs/pds-select.entry.cjs.js.map +1 -1
  97. package/dist/cjs/pds-sortable-item.cjs.entry.js +2 -2
  98. package/dist/cjs/pds-sortable.cjs.entry.js +1 -1
  99. package/dist/cjs/pds-switch.cjs.entry.js +4 -4
  100. package/dist/cjs/pds-tab.cjs.entry.js +4 -4
  101. package/dist/cjs/pds-tab.entry.cjs.js.map +1 -1
  102. package/dist/cjs/pds-table-body.cjs.entry.js +1 -1
  103. package/dist/cjs/pds-table-cell.cjs.entry.js +2 -2
  104. package/dist/cjs/pds-table-cell.entry.cjs.js.map +1 -1
  105. package/dist/cjs/pds-table-head-cell.cjs.entry.js +44 -6
  106. package/dist/cjs/pds-table-head-cell.entry.cjs.js.map +1 -1
  107. package/dist/cjs/pds-table-head.cjs.entry.js +1 -1
  108. package/dist/cjs/pds-table-row.cjs.entry.js +1 -1
  109. package/dist/cjs/pds-table.cjs.entry.js +42 -3
  110. package/dist/cjs/pds-table.entry.cjs.js.map +1 -1
  111. package/dist/cjs/pds-tabpanel.cjs.entry.js +1 -1
  112. package/dist/cjs/pds-tabs.cjs.entry.js +1 -1
  113. package/dist/cjs/pds-text.cjs.entry.js +1 -1
  114. package/dist/cjs/pds-textarea.cjs.entry.js +9 -5
  115. package/dist/cjs/pds-textarea.entry.cjs.js.map +1 -1
  116. package/dist/cjs/pds-toast.cjs.entry.js +3 -3
  117. package/dist/cjs/pds-tooltip.cjs.entry.js +3 -3
  118. package/dist/cjs/pine-core.cjs.js +1 -1
  119. package/dist/collection/collection-manifest.json +1 -0
  120. package/dist/collection/components/pds-avatar/pds-avatar.css +14 -1
  121. package/dist/collection/components/pds-avatar/pds-avatar.js +39 -4
  122. package/dist/collection/components/pds-avatar/pds-avatar.js.map +1 -1
  123. package/dist/collection/components/pds-avatar/stories/pds-avatar.stories.js +15 -0
  124. package/dist/collection/components/pds-box/pds-box.css +0 -191
  125. package/dist/collection/components/pds-button/pds-button.css +3 -0
  126. package/dist/collection/components/pds-checkbox/pds-checkbox.css +2 -0
  127. package/dist/collection/components/pds-chip/pds-chip.css +7 -0
  128. package/dist/collection/components/pds-combobox/pds-combobox.css +6 -1
  129. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.css +7 -4
  130. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.css +1 -1
  131. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +2 -1
  132. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js.map +1 -1
  133. package/dist/collection/components/pds-filters/pds-filter/pds-filter.css +7 -3
  134. package/dist/collection/components/pds-input/pds-input.css +2 -2
  135. package/dist/collection/components/pds-input/pds-input.js +24 -1
  136. package/dist/collection/components/pds-input/pds-input.js.map +1 -1
  137. package/dist/collection/components/pds-modal/pds-modal.css +1 -0
  138. package/dist/collection/components/pds-multiselect/multiselect-interface.js +2 -0
  139. package/dist/collection/components/pds-multiselect/multiselect-interface.js.map +1 -0
  140. package/dist/collection/components/pds-multiselect/pds-multiselect.css +232 -0
  141. package/dist/collection/components/pds-multiselect/pds-multiselect.js +1152 -0
  142. package/dist/collection/components/pds-multiselect/pds-multiselect.js.map +1 -0
  143. package/dist/collection/components/pds-multiselect/stories/pds-multiselect.stories.js +371 -0
  144. package/dist/collection/components/pds-popover/pds-popover.js +1 -1
  145. package/dist/collection/components/pds-progress/pds-progress.js +1 -1
  146. package/dist/collection/components/pds-property/pds-property.js +1 -1
  147. package/dist/collection/components/pds-radio/pds-radio.css +1 -0
  148. package/dist/collection/components/pds-radio/pds-radio.js +3 -3
  149. package/dist/collection/components/pds-radio-group/pds-radio-group.js +3 -3
  150. package/dist/collection/components/pds-row/pds-row.js +1 -1
  151. package/dist/collection/components/pds-select/pds-select.css +2 -2
  152. package/dist/collection/components/pds-select/pds-select.js +71 -2
  153. package/dist/collection/components/pds-select/pds-select.js.map +1 -1
  154. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +1 -1
  155. package/dist/collection/components/pds-sortable/pds-sortable.js +1 -1
  156. package/dist/collection/components/pds-switch/pds-switch.js +3 -3
  157. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js +1 -1
  158. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.css +1 -0
  159. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +2 -2
  160. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +1 -1
  161. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.css +1 -0
  162. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +90 -6
  163. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js.map +1 -1
  164. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +1 -1
  165. package/dist/collection/components/pds-table/pds-table.css +2 -0
  166. package/dist/collection/components/pds-table/pds-table.js +84 -3
  167. package/dist/collection/components/pds-table/pds-table.js.map +1 -1
  168. package/dist/collection/components/pds-table/stories/pds-table.stories.js +109 -4
  169. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.css +6 -2
  170. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js +3 -3
  171. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +1 -1
  172. package/dist/collection/components/pds-tabs/pds-tabs.js +1 -1
  173. package/dist/collection/components/pds-text/pds-text.js +1 -1
  174. package/dist/collection/components/pds-textarea/pds-textarea.js +27 -4
  175. package/dist/collection/components/pds-textarea/pds-textarea.js.map +1 -1
  176. package/dist/collection/components/pds-toast/pds-toast.js +3 -3
  177. package/dist/collection/components/pds-tooltip/pds-tooltip.js +2 -2
  178. package/dist/docs.json +1130 -123
  179. package/dist/esm/{floating-ui.dom-DbQzNDdQ.js → floating-ui.dom-BO6p966C.js} +163 -42
  180. package/dist/esm/floating-ui.dom-BO6p966C.js.map +1 -0
  181. package/dist/esm/{index-xbb79yLt.js → index-DY8eSueV.js} +3 -3
  182. package/dist/esm/index-DY8eSueV.js.map +1 -0
  183. package/dist/esm/loader.js +1 -1
  184. package/dist/esm/mock-pds-modal.entry.js.map +1 -1
  185. package/dist/esm/pds-accordion.entry.js +1 -1
  186. package/dist/esm/pds-avatar.entry.js +18 -6
  187. package/dist/esm/pds-avatar.entry.js.map +1 -1
  188. package/dist/esm/pds-button.entry.js +1 -1
  189. package/dist/esm/pds-button.entry.js.map +1 -1
  190. package/dist/esm/pds-checkbox.entry.js +1 -1
  191. package/dist/esm/pds-checkbox.entry.js.map +1 -1
  192. package/dist/esm/pds-chip.entry.js +1 -1
  193. package/dist/esm/pds-chip.entry.js.map +1 -1
  194. package/dist/esm/pds-combobox.entry.js +67 -27
  195. package/dist/esm/pds-combobox.entry.js.map +1 -1
  196. package/dist/esm/pds-copytext.entry.js +1 -1
  197. package/dist/esm/pds-dropdown-menu-item.entry.js +1 -1
  198. package/dist/esm/pds-dropdown-menu-item.entry.js.map +1 -1
  199. package/dist/esm/pds-dropdown-menu.entry.js +4 -3
  200. package/dist/esm/pds-dropdown-menu.entry.js.map +1 -1
  201. package/dist/esm/pds-filter.entry.js +2 -2
  202. package/dist/esm/pds-filter.entry.js.map +1 -1
  203. package/dist/esm/pds-input.entry.js +7 -3
  204. package/dist/esm/pds-input.entry.js.map +1 -1
  205. package/dist/esm/pds-link.entry.js +1 -1
  206. package/dist/esm/pds-modal.entry.js.map +1 -1
  207. package/dist/esm/pds-multiselect.entry.js +590 -0
  208. package/dist/esm/pds-multiselect.entry.js.map +1 -0
  209. package/dist/esm/pds-popover.entry.js +1 -1
  210. package/dist/esm/pds-progress.entry.js +1 -1
  211. package/dist/esm/pds-property.entry.js +1 -1
  212. package/dist/esm/pds-radio-group.entry.js +4 -4
  213. package/dist/esm/pds-radio.entry.js +4 -4
  214. package/dist/esm/pds-radio.entry.js.map +1 -1
  215. package/dist/esm/pds-row.entry.js +1 -1
  216. package/dist/esm/pds-select.entry.js +15 -3
  217. package/dist/esm/pds-select.entry.js.map +1 -1
  218. package/dist/esm/pds-sortable-item.entry.js +2 -2
  219. package/dist/esm/pds-sortable.entry.js +1 -1
  220. package/dist/esm/pds-switch.entry.js +4 -4
  221. package/dist/esm/pds-tab.entry.js +4 -4
  222. package/dist/esm/pds-tab.entry.js.map +1 -1
  223. package/dist/esm/pds-table-body.entry.js +1 -1
  224. package/dist/esm/pds-table-cell.entry.js +2 -2
  225. package/dist/esm/pds-table-cell.entry.js.map +1 -1
  226. package/dist/esm/pds-table-head-cell.entry.js +44 -6
  227. package/dist/esm/pds-table-head-cell.entry.js.map +1 -1
  228. package/dist/esm/pds-table-head.entry.js +1 -1
  229. package/dist/esm/pds-table-row.entry.js +1 -1
  230. package/dist/esm/pds-table.entry.js +42 -3
  231. package/dist/esm/pds-table.entry.js.map +1 -1
  232. package/dist/esm/pds-tabpanel.entry.js +1 -1
  233. package/dist/esm/pds-tabs.entry.js +1 -1
  234. package/dist/esm/pds-text.entry.js +1 -1
  235. package/dist/esm/pds-textarea.entry.js +9 -5
  236. package/dist/esm/pds-textarea.entry.js.map +1 -1
  237. package/dist/esm/pds-toast.entry.js +3 -3
  238. package/dist/esm/pds-tooltip.entry.js +3 -3
  239. package/dist/esm/pine-core.js +1 -1
  240. package/dist/esm-es5/floating-ui.dom-BO6p966C.js +2 -0
  241. package/dist/esm-es5/floating-ui.dom-BO6p966C.js.map +1 -0
  242. package/dist/esm-es5/{index-xbb79yLt.js → index-DY8eSueV.js} +1 -1
  243. package/dist/esm-es5/index-DY8eSueV.js.map +1 -0
  244. package/dist/esm-es5/loader.js +1 -1
  245. package/dist/esm-es5/mock-pds-modal.entry.js.map +1 -1
  246. package/dist/esm-es5/pds-accordion.entry.js +1 -1
  247. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  248. package/dist/esm-es5/pds-avatar.entry.js.map +1 -1
  249. package/dist/esm-es5/pds-button.entry.js +1 -1
  250. package/dist/esm-es5/pds-button.entry.js.map +1 -1
  251. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  252. package/dist/esm-es5/pds-checkbox.entry.js.map +1 -1
  253. package/dist/esm-es5/pds-chip.entry.js +1 -1
  254. package/dist/esm-es5/pds-chip.entry.js.map +1 -1
  255. package/dist/esm-es5/pds-combobox.entry.js +2 -2
  256. package/dist/esm-es5/pds-combobox.entry.js.map +1 -1
  257. package/dist/esm-es5/pds-copytext.entry.js +1 -1
  258. package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -1
  259. package/dist/esm-es5/pds-dropdown-menu-item.entry.js.map +1 -1
  260. package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
  261. package/dist/esm-es5/pds-dropdown-menu.entry.js.map +1 -1
  262. package/dist/esm-es5/pds-filter.entry.js +1 -1
  263. package/dist/esm-es5/pds-filter.entry.js.map +1 -1
  264. package/dist/esm-es5/pds-input.entry.js +1 -1
  265. package/dist/esm-es5/pds-input.entry.js.map +1 -1
  266. package/dist/esm-es5/pds-link.entry.js +1 -1
  267. package/dist/esm-es5/pds-modal.entry.js.map +1 -1
  268. package/dist/esm-es5/pds-multiselect.entry.js +2 -0
  269. package/dist/esm-es5/pds-multiselect.entry.js.map +1 -0
  270. package/dist/esm-es5/pds-popover.entry.js +1 -1
  271. package/dist/esm-es5/pds-progress.entry.js +1 -1
  272. package/dist/esm-es5/pds-property.entry.js +1 -1
  273. package/dist/esm-es5/pds-radio-group.entry.js +1 -1
  274. package/dist/esm-es5/pds-radio.entry.js +1 -1
  275. package/dist/esm-es5/pds-radio.entry.js.map +1 -1
  276. package/dist/esm-es5/pds-row.entry.js +1 -1
  277. package/dist/esm-es5/pds-select.entry.js +1 -1
  278. package/dist/esm-es5/pds-select.entry.js.map +1 -1
  279. package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
  280. package/dist/esm-es5/pds-sortable.entry.js +1 -1
  281. package/dist/esm-es5/pds-switch.entry.js +1 -1
  282. package/dist/esm-es5/pds-tab.entry.js +1 -1
  283. package/dist/esm-es5/pds-tab.entry.js.map +1 -1
  284. package/dist/esm-es5/pds-table-body.entry.js +1 -1
  285. package/dist/esm-es5/pds-table-cell.entry.js +1 -1
  286. package/dist/esm-es5/pds-table-cell.entry.js.map +1 -1
  287. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  288. package/dist/esm-es5/pds-table-head-cell.entry.js.map +1 -1
  289. package/dist/esm-es5/pds-table-head.entry.js +1 -1
  290. package/dist/esm-es5/pds-table-row.entry.js +1 -1
  291. package/dist/esm-es5/pds-table.entry.js +1 -1
  292. package/dist/esm-es5/pds-table.entry.js.map +1 -1
  293. package/dist/esm-es5/pds-tabpanel.entry.js +1 -1
  294. package/dist/esm-es5/pds-tabs.entry.js +1 -1
  295. package/dist/esm-es5/pds-text.entry.js +1 -1
  296. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  297. package/dist/esm-es5/pds-textarea.entry.js.map +1 -1
  298. package/dist/esm-es5/pds-toast.entry.js +1 -1
  299. package/dist/esm-es5/pds-tooltip.entry.js +1 -1
  300. package/dist/esm-es5/pine-core.js +1 -1
  301. package/dist/pine-core/mock-pds-modal.entry.esm.js.map +1 -1
  302. package/dist/pine-core/p-02f48157.system.entry.js +2 -0
  303. package/dist/pine-core/{p-b30424e3.system.entry.js → p-063afa19.system.entry.js} +2 -2
  304. package/dist/pine-core/p-0sPVsRFU.system.js.map +1 -0
  305. package/dist/pine-core/{p-15202869.entry.js → p-10dbe3e2.entry.js} +2 -2
  306. package/dist/pine-core/{p-5b7ab891.entry.js → p-12360e47.entry.js} +2 -2
  307. package/dist/pine-core/{p-ac14c8e3.system.entry.js → p-137b3289.system.entry.js} +2 -2
  308. package/dist/pine-core/{p-a737df90.entry.js → p-154a32f4.entry.js} +2 -2
  309. package/dist/pine-core/p-1ca116fa.entry.js +3 -0
  310. package/dist/pine-core/p-1ca116fa.entry.js.map +1 -0
  311. package/dist/pine-core/p-2537aacb.entry.js +2 -0
  312. package/dist/pine-core/p-2537aacb.entry.js.map +1 -0
  313. package/dist/pine-core/p-2cd0d520.entry.js +2 -0
  314. package/dist/pine-core/p-2cd0d520.entry.js.map +1 -0
  315. package/dist/pine-core/{p-cd335ec2.system.entry.js → p-2fe330d0.system.entry.js} +2 -2
  316. package/dist/pine-core/p-30ea3668.system.entry.js +2 -0
  317. package/dist/pine-core/{p-1daf66d1.entry.js → p-31168da5.entry.js} +2 -2
  318. package/dist/pine-core/{p-732e2564.system.entry.js → p-325b3b0d.system.entry.js} +2 -2
  319. package/dist/pine-core/p-32c13896.system.entry.js +2 -0
  320. package/dist/pine-core/p-32c13896.system.entry.js.map +1 -0
  321. package/dist/pine-core/{p-95f2782c.entry.js → p-3f97a965.entry.js} +2 -2
  322. package/dist/pine-core/{p-ff182316.system.entry.js → p-40988b4d.system.entry.js} +2 -2
  323. package/dist/pine-core/{p-b02936d2.entry.js → p-415ba884.entry.js} +2 -2
  324. package/dist/pine-core/p-475bb340.entry.js +2 -0
  325. package/dist/pine-core/p-475bb340.entry.js.map +1 -0
  326. package/dist/pine-core/{p-CGo2P4Fr.system.js.map → p-4EbKXnVN.system.js.map} +1 -1
  327. package/dist/pine-core/p-4alPHnzl.system.js.map +1 -0
  328. package/dist/pine-core/{p-9bfaed7e.system.entry.js → p-4c23c75b.system.entry.js} +2 -2
  329. package/dist/pine-core/{p-bdf8bff3.system.entry.js → p-4d85945b.system.entry.js} +2 -2
  330. package/dist/pine-core/{p-3f8b0885.system.entry.js → p-4d9eee67.system.entry.js} +2 -2
  331. package/dist/pine-core/{p-4fD2iHS9.system.js.map → p-4f1cRPxE.system.js.map} +1 -1
  332. package/dist/pine-core/{p-e2104c31.entry.js → p-5040a872.entry.js} +2 -2
  333. package/dist/pine-core/p-51114c2b.system.entry.js +2 -0
  334. package/dist/pine-core/p-51114c2b.system.entry.js.map +1 -0
  335. package/dist/pine-core/{p-bbc349b3.system.entry.js → p-5b3ac18e.system.entry.js} +2 -2
  336. package/dist/pine-core/{p-bbc349b3.system.entry.js.map → p-5b3ac18e.system.entry.js.map} +1 -1
  337. package/dist/pine-core/{p-a08b60ae.entry.js → p-5b9110fe.entry.js} +2 -2
  338. package/dist/pine-core/p-5c982339.system.entry.js +2 -0
  339. package/dist/pine-core/p-5c982339.system.entry.js.map +1 -0
  340. package/dist/pine-core/{p-94b1997d.system.entry.js → p-5e92aa34.system.entry.js} +2 -2
  341. package/dist/pine-core/{p-41d89f20.entry.js → p-5f2865df.entry.js} +2 -2
  342. package/dist/pine-core/{p-41d89f20.entry.js.map → p-5f2865df.entry.js.map} +1 -1
  343. package/dist/pine-core/p-6321b70b.entry.js +2 -0
  344. package/dist/pine-core/p-6321b70b.entry.js.map +1 -0
  345. package/dist/pine-core/p-63269b89.entry.js +2 -0
  346. package/dist/pine-core/p-6e862168.system.entry.js +2 -0
  347. package/dist/pine-core/{p-b8047816.system.entry.js.map → p-6e862168.system.entry.js.map} +1 -1
  348. package/dist/pine-core/{p-cf2e1c07.system.entry.js → p-70aa35fc.system.entry.js} +2 -2
  349. package/dist/pine-core/{p-fc0ee6da.entry.js → p-757c7b80.entry.js} +2 -2
  350. package/dist/pine-core/{p-1df25b57.system.entry.js → p-78ee2e08.system.entry.js} +2 -2
  351. package/dist/pine-core/{p-2319298c.system.entry.js → p-7b5c8248.system.entry.js} +2 -2
  352. package/dist/pine-core/{p-dad604e4.system.entry.js → p-84c7f663.system.entry.js} +2 -2
  353. package/dist/pine-core/{p-f9ef2f74.system.entry.js → p-87eb8d4b.system.entry.js} +2 -2
  354. package/dist/pine-core/p-8b201c9a.system.entry.js +2 -0
  355. package/dist/pine-core/p-8b201c9a.system.entry.js.map +1 -0
  356. package/dist/pine-core/p-8eb1c168.entry.js +2 -0
  357. package/dist/pine-core/{p-e5bc22b6.system.entry.js → p-8fdb10c4.system.entry.js} +2 -2
  358. package/dist/pine-core/{p-232e4282.system.entry.js → p-90615423.system.entry.js} +2 -2
  359. package/dist/pine-core/{p-f79f6f08.system.entry.js → p-932283cf.system.entry.js} +2 -2
  360. package/dist/pine-core/{p-0b05708b.entry.js → p-9ada659b.entry.js} +2 -2
  361. package/dist/pine-core/{p-4778ae70.entry.js → p-9bb6cc3d.entry.js} +2 -2
  362. package/dist/pine-core/p-9c0ec80a.entry.js +2 -0
  363. package/dist/pine-core/p-9c0ec80a.entry.js.map +1 -0
  364. package/dist/pine-core/{p-3f6b9520.entry.js → p-9c928c44.entry.js} +2 -2
  365. package/dist/pine-core/p-9e4fc025.entry.js +2 -0
  366. package/dist/pine-core/p-9e4fc025.entry.js.map +1 -0
  367. package/dist/pine-core/{p-e8aad8dc.entry.js → p-9eccf7b9.entry.js} +2 -2
  368. package/dist/pine-core/p-B0Otb6kF.system.js.map +1 -0
  369. package/dist/pine-core/{p-CUmDvil2.system.js.map → p-BA95hFrH.system.js.map} +1 -1
  370. package/dist/pine-core/p-BCKPcTKX.system.js.map +1 -1
  371. package/dist/pine-core/p-BHjZufAO.system.js.map +1 -0
  372. package/dist/pine-core/{p-DC2NZwtk.system.js.map → p-BJE1EIse.system.js.map} +1 -1
  373. package/dist/pine-core/{p-IH8oGXiE.system.js.map → p-BJtTt670.system.js.map} +1 -1
  374. package/dist/pine-core/p-BO6p966C.js +2 -0
  375. package/dist/pine-core/p-BO6p966C.js.map +1 -0
  376. package/dist/pine-core/{p-jBhqNO5u.system.js.map → p-BSRmAvMC.system.js.map} +1 -1
  377. package/dist/pine-core/{p-DyrNlfLT.system.js.map → p-BTe59phF.system.js.map} +1 -1
  378. package/dist/pine-core/p-BmKJgY0X.system.js.map +1 -0
  379. package/dist/pine-core/{p-B0Y1Zs9b.system.js.map → p-Bn36FPag.system.js.map} +1 -1
  380. package/dist/pine-core/p-C48G0LPH.system.js.map +1 -1
  381. package/dist/pine-core/p-CBCT89qf.system.js.map +1 -0
  382. package/dist/pine-core/p-CCgKUhC7.system.js.map +1 -0
  383. package/dist/pine-core/p-CG5jdxoZ.system.js.map +1 -0
  384. package/dist/pine-core/{p-CKzDRRgx.system.js → p-CP48ADFM.system.js} +1 -1
  385. package/dist/pine-core/p-CP48ADFM.system.js.map +1 -0
  386. package/dist/pine-core/p-CR01VmO6.system.js.map +1 -0
  387. package/dist/pine-core/{p-CAnnMfDw.system.js.map → p-CSLo9qKS.system.js.map} +1 -1
  388. package/dist/pine-core/{p-DmVKABQy.system.js.map → p-CboCokff.system.js.map} +1 -1
  389. package/dist/pine-core/p-CfZCQYfD.system.js.map +1 -0
  390. package/dist/pine-core/{p-r_cS5LMw.system.js.map → p-Civ2VHC7.system.js.map} +1 -1
  391. package/dist/pine-core/{p-ChiYqN-p.system.js.map → p-CmquVvkz.system.js.map} +1 -1
  392. package/dist/pine-core/{p-tHMXRB8d.system.js.map → p-CpyTw2IQ.system.js.map} +1 -1
  393. package/dist/pine-core/{p-Brpt0zl5.system.js.map → p-Ct9csNdF.system.js.map} +1 -1
  394. package/dist/pine-core/{p-B_Co5NfG.system.js.map → p-Cun139qe.system.js.map} +1 -1
  395. package/dist/pine-core/p-D2eS6fhD.system.js +2 -0
  396. package/dist/pine-core/p-D2eS6fhD.system.js.map +1 -0
  397. package/dist/pine-core/p-DFXWnbHE.system.js.map +1 -0
  398. package/dist/pine-core/{p-xbb79yLt.js → p-DY8eSueV.js} +1 -1
  399. package/dist/pine-core/p-DY8eSueV.js.map +1 -0
  400. package/dist/pine-core/p-DaXZLSA0.system.js.map +1 -0
  401. package/dist/pine-core/{p-DB45WSlG.system.js.map → p-DwQewDCV.system.js.map} +1 -1
  402. package/dist/pine-core/p-JAVnELnm.system.js +1 -1
  403. package/dist/pine-core/{p-DAvCgWA9.system.js.map → p-Lk6DnEPT.system.js.map} +1 -1
  404. package/dist/pine-core/p-YqHO7iPZ.system.js.map +1 -0
  405. package/dist/pine-core/{p-00568c20.system.entry.js → p-a07b8e45.system.entry.js} +2 -2
  406. package/dist/pine-core/p-a3bCMZF8.system.js.map +1 -0
  407. package/dist/pine-core/{p-c5013d20.entry.js → p-a3cdff85.entry.js} +2 -2
  408. package/dist/pine-core/{p-a4b16b32.system.entry.js → p-a5b24b1d.system.entry.js} +2 -2
  409. package/dist/pine-core/{p-596acf65.entry.js → p-a99e8caf.entry.js} +2 -2
  410. package/dist/pine-core/p-ac240034.system.entry.js +2 -0
  411. package/dist/pine-core/p-ac240034.system.entry.js.map +1 -0
  412. package/dist/pine-core/p-b9650ed9.system.entry.js +2 -0
  413. package/dist/pine-core/p-b9650ed9.system.entry.js.map +1 -0
  414. package/dist/pine-core/{p-f8fba315.entry.js → p-bc85016b.entry.js} +2 -2
  415. package/dist/pine-core/{p-61588eac.entry.js → p-bddc9c5a.entry.js} +2 -2
  416. package/dist/pine-core/p-bs74TBAh.system.js.map +1 -0
  417. package/dist/pine-core/{p-7de73ac5.entry.js → p-c24d11c7.entry.js} +2 -2
  418. package/dist/pine-core/p-c292e5da.system.entry.js +2 -0
  419. package/dist/pine-core/{p-c03e2c5d.system.entry.js.map → p-c292e5da.system.entry.js.map} +1 -1
  420. package/dist/pine-core/p-c68bceb1.entry.js +2 -0
  421. package/dist/pine-core/{p-41cc9270.entry.js.map → p-c68bceb1.entry.js.map} +1 -1
  422. package/dist/pine-core/{p-0ace9c16.entry.js → p-c7c00a27.entry.js} +2 -2
  423. package/dist/pine-core/{p-cb6c279a.system.entry.js → p-cac3128b.system.entry.js} +2 -2
  424. package/dist/pine-core/p-ccab748a.entry.js +2 -0
  425. package/dist/pine-core/p-ccab748a.entry.js.map +1 -0
  426. package/dist/pine-core/{p-131a8cff.system.entry.js → p-cfb24f97.system.entry.js} +2 -2
  427. package/dist/pine-core/p-cfb24f97.system.entry.js.map +1 -0
  428. package/dist/pine-core/p-d41112ad.entry.js +2 -0
  429. package/dist/pine-core/{p-4c0797f2.entry.js.map → p-d41112ad.entry.js.map} +1 -1
  430. package/dist/pine-core/{p-6cba6806.entry.js → p-d6302edd.entry.js} +2 -2
  431. package/dist/pine-core/p-d98310b9.system.entry.js +2 -0
  432. package/dist/pine-core/p-d98310b9.system.entry.js.map +1 -0
  433. package/dist/pine-core/{p-04294b28.system.entry.js → p-daa36570.system.entry.js} +2 -2
  434. package/dist/pine-core/p-db06ad25.system.entry.js +4 -0
  435. package/dist/pine-core/p-db06ad25.system.entry.js.map +1 -0
  436. package/dist/pine-core/{p-15650db8.entry.js → p-e6dc2297.entry.js} +2 -2
  437. package/dist/pine-core/{p-9f53eb94.system.entry.js → p-e8cf15d7.system.entry.js} +2 -2
  438. package/dist/pine-core/p-eb026745.entry.js +2 -0
  439. package/dist/pine-core/p-fa05ea14.entry.js +2 -0
  440. package/dist/pine-core/p-fa05ea14.entry.js.map +1 -0
  441. package/dist/pine-core/{p-D8Jc24Qq.system.js.map → p-htODgUCV.system.js.map} +1 -1
  442. package/dist/pine-core/{p-DYq1Mef8.system.js.map → p-j0609tLE.system.js.map} +1 -1
  443. package/dist/pine-core/{p-DoP8Sl1O.system.js.map → p-rcUX-rt5.system.js.map} +1 -1
  444. package/dist/pine-core/p-uyztncxJ.system.js.map +1 -0
  445. package/dist/pine-core/pds-avatar.entry.esm.js.map +1 -1
  446. package/dist/pine-core/pds-button.entry.esm.js.map +1 -1
  447. package/dist/pine-core/pds-checkbox.entry.esm.js.map +1 -1
  448. package/dist/pine-core/pds-chip.entry.esm.js.map +1 -1
  449. package/dist/pine-core/pds-combobox.entry.esm.js.map +1 -1
  450. package/dist/pine-core/pds-dropdown-menu-item.entry.esm.js.map +1 -1
  451. package/dist/pine-core/pds-dropdown-menu.entry.esm.js.map +1 -1
  452. package/dist/pine-core/pds-filter.entry.esm.js.map +1 -1
  453. package/dist/pine-core/pds-input.entry.esm.js.map +1 -1
  454. package/dist/pine-core/pds-modal.entry.esm.js.map +1 -1
  455. package/dist/pine-core/pds-multiselect.entry.esm.js.map +1 -0
  456. package/dist/pine-core/pds-radio.entry.esm.js.map +1 -1
  457. package/dist/pine-core/pds-select.entry.esm.js.map +1 -1
  458. package/dist/pine-core/pds-tab.entry.esm.js.map +1 -1
  459. package/dist/pine-core/pds-table-cell.entry.esm.js.map +1 -1
  460. package/dist/pine-core/pds-table-head-cell.entry.esm.js.map +1 -1
  461. package/dist/pine-core/pds-table.entry.esm.js.map +1 -1
  462. package/dist/pine-core/pds-textarea.entry.esm.js.map +1 -1
  463. package/dist/pine-core/pine-core.esm.js +1 -1
  464. package/dist/types/components/pds-avatar/pds-avatar.d.ts +5 -0
  465. package/dist/types/components/pds-input/pds-input.d.ts +5 -0
  466. package/dist/types/components/pds-multiselect/multiselect-interface.d.ts +24 -0
  467. package/dist/types/components/pds-multiselect/pds-multiselect.d.ts +175 -0
  468. package/dist/types/components/pds-select/pds-select.d.ts +16 -1
  469. package/dist/types/components/pds-table/pds-table-head-cell/pds-table-head-cell.d.ts +16 -0
  470. package/dist/types/components/pds-table/pds-table.d.ts +17 -1
  471. package/dist/types/components/pds-textarea/pds-textarea.d.ts +5 -0
  472. package/dist/types/components.d.ts +309 -1
  473. package/dist/vscode.html-data.json +190 -5
  474. package/hydrate/index.js +1016 -112
  475. package/hydrate/index.mjs +1016 -112
  476. package/package.json +5 -5
  477. package/dist/cjs/floating-ui.dom-DTAy35nv.js.map +0 -1
  478. package/dist/cjs/index-CMeuo765.js.map +0 -1
  479. package/dist/esm/floating-ui.dom-DbQzNDdQ.js.map +0 -1
  480. package/dist/esm/index-xbb79yLt.js.map +0 -1
  481. package/dist/esm-es5/floating-ui.dom-DbQzNDdQ.js +0 -2
  482. package/dist/esm-es5/floating-ui.dom-DbQzNDdQ.js.map +0 -1
  483. package/dist/esm-es5/index-xbb79yLt.js.map +0 -1
  484. package/dist/pine-core/p--gPqixhD.system.js.map +0 -1
  485. package/dist/pine-core/p-0c84a3f4.entry.js +0 -2
  486. package/dist/pine-core/p-0c84a3f4.entry.js.map +0 -1
  487. package/dist/pine-core/p-0fdffed5.entry.js +0 -2
  488. package/dist/pine-core/p-0fdffed5.entry.js.map +0 -1
  489. package/dist/pine-core/p-1282026f.entry.js +0 -2
  490. package/dist/pine-core/p-1282026f.entry.js.map +0 -1
  491. package/dist/pine-core/p-131a8cff.system.entry.js.map +0 -1
  492. package/dist/pine-core/p-198abda7.system.entry.js +0 -2
  493. package/dist/pine-core/p-198abda7.system.entry.js.map +0 -1
  494. package/dist/pine-core/p-20f255e6.entry.js +0 -2
  495. package/dist/pine-core/p-20f255e6.entry.js.map +0 -1
  496. package/dist/pine-core/p-41cc9270.entry.js +0 -2
  497. package/dist/pine-core/p-43990889.entry.js +0 -2
  498. package/dist/pine-core/p-49c1eab0.entry.js +0 -2
  499. package/dist/pine-core/p-49c1eab0.entry.js.map +0 -1
  500. package/dist/pine-core/p-4c0797f2.entry.js +0 -2
  501. package/dist/pine-core/p-54a02bb5.system.entry.js +0 -2
  502. package/dist/pine-core/p-54a02bb5.system.entry.js.map +0 -1
  503. package/dist/pine-core/p-553e4543.entry.js +0 -2
  504. package/dist/pine-core/p-553e4543.entry.js.map +0 -1
  505. package/dist/pine-core/p-5f6cd30d.system.entry.js +0 -2
  506. package/dist/pine-core/p-5f6cd30d.system.entry.js.map +0 -1
  507. package/dist/pine-core/p-66160018.entry.js +0 -3
  508. package/dist/pine-core/p-66160018.entry.js.map +0 -1
  509. package/dist/pine-core/p-98824683.entry.js +0 -2
  510. package/dist/pine-core/p-98824683.entry.js.map +0 -1
  511. package/dist/pine-core/p-BOmQOnQe.system.js +0 -2
  512. package/dist/pine-core/p-BOmQOnQe.system.js.map +0 -1
  513. package/dist/pine-core/p-BOn7G6db.system.js.map +0 -1
  514. package/dist/pine-core/p-CKzDRRgx.system.js.map +0 -1
  515. package/dist/pine-core/p-CTfQ_9yC.system.js.map +0 -1
  516. package/dist/pine-core/p-CTjTtD1R.system.js.map +0 -1
  517. package/dist/pine-core/p-CXGuX44q.system.js.map +0 -1
  518. package/dist/pine-core/p-Ch7MRoFE.system.js.map +0 -1
  519. package/dist/pine-core/p-DQawTYre.system.js.map +0 -1
  520. package/dist/pine-core/p-DQs506y8.system.js.map +0 -1
  521. package/dist/pine-core/p-DbQzNDdQ.js +0 -2
  522. package/dist/pine-core/p-DbQzNDdQ.js.map +0 -1
  523. package/dist/pine-core/p-DpeOrUYB.system.js.map +0 -1
  524. package/dist/pine-core/p-RO-Y2DRT.system.js.map +0 -1
  525. package/dist/pine-core/p-WhfStK1C.system.js.map +0 -1
  526. package/dist/pine-core/p-X0_TH-op.system.js.map +0 -1
  527. package/dist/pine-core/p-b59a0c6b.system.entry.js +0 -2
  528. package/dist/pine-core/p-b8047816.system.entry.js +0 -2
  529. package/dist/pine-core/p-bee8d4b8.system.entry.js +0 -4
  530. package/dist/pine-core/p-bee8d4b8.system.entry.js.map +0 -1
  531. package/dist/pine-core/p-c03e2c5d.system.entry.js +0 -2
  532. package/dist/pine-core/p-c2d17093.system.entry.js +0 -2
  533. package/dist/pine-core/p-c2d17093.system.entry.js.map +0 -1
  534. package/dist/pine-core/p-d0e336b7.system.entry.js +0 -2
  535. package/dist/pine-core/p-e3d81bee.system.entry.js +0 -2
  536. package/dist/pine-core/p-e3d81bee.system.entry.js.map +0 -1
  537. package/dist/pine-core/p-e7e25d42.entry.js +0 -2
  538. package/dist/pine-core/p-e846b67f.system.entry.js +0 -2
  539. package/dist/pine-core/p-e846b67f.system.entry.js.map +0 -1
  540. package/dist/pine-core/p-f92055f3.entry.js +0 -2
  541. package/dist/pine-core/p-pw5cGGlu.system.js.map +0 -1
  542. package/dist/pine-core/p-qkIMFuAW.system.js.map +0 -1
  543. package/dist/pine-core/p-uv97KtT8.system.js.map +0 -1
  544. package/dist/pine-core/p-xbb79yLt.js.map +0 -1
  545. /package/dist/pine-core/{p-b59a0c6b.system.entry.js.map → p-02f48157.system.entry.js.map} +0 -0
  546. /package/dist/pine-core/{p-b30424e3.system.entry.js.map → p-063afa19.system.entry.js.map} +0 -0
  547. /package/dist/pine-core/{p-15202869.entry.js.map → p-10dbe3e2.entry.js.map} +0 -0
  548. /package/dist/pine-core/{p-5b7ab891.entry.js.map → p-12360e47.entry.js.map} +0 -0
  549. /package/dist/pine-core/{p-ac14c8e3.system.entry.js.map → p-137b3289.system.entry.js.map} +0 -0
  550. /package/dist/pine-core/{p-a737df90.entry.js.map → p-154a32f4.entry.js.map} +0 -0
  551. /package/dist/pine-core/{p-cd335ec2.system.entry.js.map → p-2fe330d0.system.entry.js.map} +0 -0
  552. /package/dist/pine-core/{p-d0e336b7.system.entry.js.map → p-30ea3668.system.entry.js.map} +0 -0
  553. /package/dist/pine-core/{p-1daf66d1.entry.js.map → p-31168da5.entry.js.map} +0 -0
  554. /package/dist/pine-core/{p-732e2564.system.entry.js.map → p-325b3b0d.system.entry.js.map} +0 -0
  555. /package/dist/pine-core/{p-95f2782c.entry.js.map → p-3f97a965.entry.js.map} +0 -0
  556. /package/dist/pine-core/{p-ff182316.system.entry.js.map → p-40988b4d.system.entry.js.map} +0 -0
  557. /package/dist/pine-core/{p-b02936d2.entry.js.map → p-415ba884.entry.js.map} +0 -0
  558. /package/dist/pine-core/{p-9bfaed7e.system.entry.js.map → p-4c23c75b.system.entry.js.map} +0 -0
  559. /package/dist/pine-core/{p-bdf8bff3.system.entry.js.map → p-4d85945b.system.entry.js.map} +0 -0
  560. /package/dist/pine-core/{p-3f8b0885.system.entry.js.map → p-4d9eee67.system.entry.js.map} +0 -0
  561. /package/dist/pine-core/{p-e2104c31.entry.js.map → p-5040a872.entry.js.map} +0 -0
  562. /package/dist/pine-core/{p-a08b60ae.entry.js.map → p-5b9110fe.entry.js.map} +0 -0
  563. /package/dist/pine-core/{p-94b1997d.system.entry.js.map → p-5e92aa34.system.entry.js.map} +0 -0
  564. /package/dist/pine-core/{p-43990889.entry.js.map → p-63269b89.entry.js.map} +0 -0
  565. /package/dist/pine-core/{p-cf2e1c07.system.entry.js.map → p-70aa35fc.system.entry.js.map} +0 -0
  566. /package/dist/pine-core/{p-fc0ee6da.entry.js.map → p-757c7b80.entry.js.map} +0 -0
  567. /package/dist/pine-core/{p-1df25b57.system.entry.js.map → p-78ee2e08.system.entry.js.map} +0 -0
  568. /package/dist/pine-core/{p-2319298c.system.entry.js.map → p-7b5c8248.system.entry.js.map} +0 -0
  569. /package/dist/pine-core/{p-dad604e4.system.entry.js.map → p-84c7f663.system.entry.js.map} +0 -0
  570. /package/dist/pine-core/{p-f9ef2f74.system.entry.js.map → p-87eb8d4b.system.entry.js.map} +0 -0
  571. /package/dist/pine-core/{p-e7e25d42.entry.js.map → p-8eb1c168.entry.js.map} +0 -0
  572. /package/dist/pine-core/{p-e5bc22b6.system.entry.js.map → p-8fdb10c4.system.entry.js.map} +0 -0
  573. /package/dist/pine-core/{p-232e4282.system.entry.js.map → p-90615423.system.entry.js.map} +0 -0
  574. /package/dist/pine-core/{p-f79f6f08.system.entry.js.map → p-932283cf.system.entry.js.map} +0 -0
  575. /package/dist/pine-core/{p-0b05708b.entry.js.map → p-9ada659b.entry.js.map} +0 -0
  576. /package/dist/pine-core/{p-4778ae70.entry.js.map → p-9bb6cc3d.entry.js.map} +0 -0
  577. /package/dist/pine-core/{p-3f6b9520.entry.js.map → p-9c928c44.entry.js.map} +0 -0
  578. /package/dist/pine-core/{p-e8aad8dc.entry.js.map → p-9eccf7b9.entry.js.map} +0 -0
  579. /package/dist/pine-core/{p-00568c20.system.entry.js.map → p-a07b8e45.system.entry.js.map} +0 -0
  580. /package/dist/pine-core/{p-c5013d20.entry.js.map → p-a3cdff85.entry.js.map} +0 -0
  581. /package/dist/pine-core/{p-a4b16b32.system.entry.js.map → p-a5b24b1d.system.entry.js.map} +0 -0
  582. /package/dist/pine-core/{p-596acf65.entry.js.map → p-a99e8caf.entry.js.map} +0 -0
  583. /package/dist/pine-core/{p-f8fba315.entry.js.map → p-bc85016b.entry.js.map} +0 -0
  584. /package/dist/pine-core/{p-61588eac.entry.js.map → p-bddc9c5a.entry.js.map} +0 -0
  585. /package/dist/pine-core/{p-7de73ac5.entry.js.map → p-c24d11c7.entry.js.map} +0 -0
  586. /package/dist/pine-core/{p-0ace9c16.entry.js.map → p-c7c00a27.entry.js.map} +0 -0
  587. /package/dist/pine-core/{p-cb6c279a.system.entry.js.map → p-cac3128b.system.entry.js.map} +0 -0
  588. /package/dist/pine-core/{p-6cba6806.entry.js.map → p-d6302edd.entry.js.map} +0 -0
  589. /package/dist/pine-core/{p-04294b28.system.entry.js.map → p-daa36570.system.entry.js.map} +0 -0
  590. /package/dist/pine-core/{p-15650db8.entry.js.map → p-e6dc2297.entry.js.map} +0 -0
  591. /package/dist/pine-core/{p-9f53eb94.system.entry.js.map → p-e8cf15d7.system.entry.js.map} +0 -0
  592. /package/dist/pine-core/{p-f92055f3.entry.js.map → p-eb026745.entry.js.map} +0 -0
package/hydrate/index.mjs CHANGED
@@ -3519,7 +3519,7 @@ class MockPdsModal {
3519
3519
  }; }
3520
3520
  }
3521
3521
 
3522
- /* pds-icons v9.12.0, ES Modules */
3522
+ /* pds-icons v9.13.0, ES Modules */
3523
3523
 
3524
3524
  const addCircle = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' class='pdsicon'><path fill-rule='evenodd' d='M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18M1 12C1 5.925 5.925 1 12 1s11 4.925 11 11-4.925 11-11 11S1 18.075 1 12m11-5a1 1 0 0 1 1 1v3h3a1 1 0 1 1 0 2h-3v3a1 1 0 1 1-2 0v-3H8a1 1 0 1 1 0-2h3V8a1 1 0 0 1 1-1'/></svg>";
3525
3525
  const caretDown = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' class='pdsicon'><path fill-rule='evenodd' d='M5.293 8.293a1 1 0 0 1 1.414 0L12 13.586l5.293-5.293a1 1 0 1 1 1.414 1.414l-6 6a1 1 0 0 1-1.414 0l-6-6a1 1 0 0 1 0-1.414'/></svg>";
@@ -3664,7 +3664,7 @@ class PdsAlert {
3664
3664
  }; }
3665
3665
  }
3666
3666
 
3667
- const pdsAvatarCss = ":host{display:inline-block}div{--color-background-container:var(--pine-color-grey-050);-ms-flex-align:center;align-items:center;background-color:var(--color-background-container);border-radius:var(--border-radius-admin-round, var(--pine-border-radius-full));display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;position:relative}:host(.pds-avatar--admin) div{--border-radius-admin-round:var(--pine-dimension-150);border-radius:var(--border-radius-admin-round)}:host(.pds-avatar--has-image) div{background:transparent}@supports selector(:has){div:has(img){background-color:transparent}}.pds-avatar__button{-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:var(--pine-dimension-none);border-radius:var(--pine-border-radius-full);cursor:pointer;display:-ms-flexbox;display:flex;padding:var(--pine-dimension-none)}.pds-avatar__button:focus-visible{outline:var(--pine-outline-focus)}.pds-avatar__badge{background-color:transparent;border:var(--pine-dimension-none);border-color:transparent;border-radius:var(--pine-border-radius-round);inset-block-end:var(--pine-dimension-none);inset-inline-end:var(--pine-dimension-none);position:absolute}img{border-radius:var(--border-radius-admin-round, var(--pine-border-radius-full));height:100%;-o-object-fit:cover;object-fit:cover;width:100%}";
3667
+ const pdsAvatarCss = ":host{display:inline-block}div{--color-background-container:var(--pine-color-background-container-hover);-ms-flex-align:center;align-items:center;background-color:var(--color-background-container);border-radius:var(--border-radius-admin-round, var(--pine-border-radius-full));display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;position:relative}:host(.pds-avatar--admin) div{--border-radius-admin-round:var(--pine-dimension-150);border-radius:var(--border-radius-admin-round)}:host(.pds-avatar--has-image) div{background:transparent}@supports selector(:has){div:has(img){background-color:transparent}}.pds-avatar__button{-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:var(--pine-dimension-none);border-radius:var(--pine-border-radius-full);cursor:pointer;display:-ms-flexbox;display:flex;padding:var(--pine-dimension-none)}.pds-avatar__button:focus-visible{outline:var(--pine-outline-focus)}.pds-avatar__badge{background-color:transparent;border:var(--pine-dimension-none);border-color:transparent;border-radius:var(--pine-border-radius-round);inset-block-end:var(--pine-dimension-none);inset-inline-end:var(--pine-dimension-none);position:absolute}img{border-radius:var(--border-radius-admin-round, var(--pine-border-radius-full));height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.pds-avatar__initials{color:var(--pine-color-brand);fill:var(--pine-color-brand);font-size:var(--pine-font-size-085);font-weight:var(--pine-font-weight-semi-bold);height:100%;text-align:center;width:100%}.pds-avatar__initials text{text-anchor:middle}";
3668
3668
 
3669
3669
  /**
3670
3670
  * @part image - The main image element that represents the avatar component.
@@ -3692,6 +3692,11 @@ class PdsAvatar {
3692
3692
  * @defaultValue null
3693
3693
  */
3694
3694
  this.image = null;
3695
+ /**
3696
+ * The initials to display in the avatar when no image is provided.
3697
+ * @defaultValue null
3698
+ */
3699
+ this.initials = null;
3695
3700
  /**
3696
3701
  * Size of the avatar. Value can be preset or custom.
3697
3702
  * @defaultValue lg
@@ -3721,15 +3726,22 @@ class PdsAvatar {
3721
3726
  // of all preset sizes found in Figma.
3722
3727
  // Used to allow icons to scale to container size
3723
3728
  && hAsync("pds-icon", { color: "var(--pine-color-purple-600)", class: "pds-avatar__badge", icon: checkCircleFilled, size: "33.53%" }));
3724
- this.renderIconOrImage = () => (this.image
3725
- ? hAsync("img", { alt: this.alt, src: this.image })
3729
+ this.renderIconOrImage = () => {
3730
+ if (this.image) {
3731
+ return hAsync("img", { alt: this.alt, src: this.image });
3732
+ }
3733
+ if (this.initials) {
3734
+ return (hAsync("svg", { class: "pds-avatar__initials", viewBox: "0 0 32 32" }, hAsync("text", { x: "16", y: "20" }, this.initials)));
3735
+ }
3726
3736
  // Percentage is average size of icon in relation to total avatar size
3727
3737
  // of all preset sizes found in Figma.
3728
3738
  // Used to allow icons to scale to container size
3729
- : hAsync("pds-icon", { color: "var(--pine-color-brand)", icon: userFilled, size: "33.53%" }));
3739
+ return hAsync("pds-icon", { color: "var(--pine-color-brand)", icon: userFilled, size: "33.53%" });
3740
+ };
3730
3741
  this.classNames = () => ({
3731
3742
  'pds-avatar': true,
3732
3743
  [`pds-avatar--has-image`]: this.image !== '' && this.image !== null, // Remove when FF supports :has selector
3744
+ [`pds-avatar--has-initials`]: this.initials !== '' && this.initials !== null,
3733
3745
  [`pds-avatar--${this.variant}`]: this.variant === 'admin'
3734
3746
  });
3735
3747
  }
@@ -3749,7 +3761,7 @@ class PdsAvatar {
3749
3761
  }
3750
3762
  }
3751
3763
  render() {
3752
- return (hAsync(Host, { key: '259ee077ffbd3eccd1992ad2963bea2f1dcce315', id: this.componentId, class: Object.assign({}, this.classNames()) }, this.renderAvatar()));
3764
+ return (hAsync(Host, { key: '4e659a1fce50577363ec034c63ef75b5b4ddd29b', id: this.componentId, class: Object.assign({}, this.classNames()) }, this.renderAvatar()));
3753
3765
  }
3754
3766
  static get style() { return pdsAvatarCss; }
3755
3767
  static get cmpMeta() { return {
@@ -3761,6 +3773,7 @@ class PdsAvatar {
3761
3773
  "componentId": [1, "component-id"],
3762
3774
  "dropdown": [4],
3763
3775
  "image": [1],
3776
+ "initials": [1],
3764
3777
  "size": [513],
3765
3778
  "variant": [513]
3766
3779
  },
@@ -4706,8 +4719,9 @@ function getOppositeAxis(axis) {
4706
4719
  function getAxisLength(axis) {
4707
4720
  return axis === 'y' ? 'height' : 'width';
4708
4721
  }
4722
+ const yAxisSides = /*#__PURE__*/new Set(['top', 'bottom']);
4709
4723
  function getSideAxis(placement) {
4710
- return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';
4724
+ return yAxisSides.has(getSide(placement)) ? 'y' : 'x';
4711
4725
  }
4712
4726
  function getAlignmentAxis(placement) {
4713
4727
  return getOppositeAxis(getSideAxis(placement));
@@ -4732,19 +4746,19 @@ function getExpandedPlacements(placement) {
4732
4746
  function getOppositeAlignmentPlacement(placement) {
4733
4747
  return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);
4734
4748
  }
4749
+ const lrPlacement = ['left', 'right'];
4750
+ const rlPlacement = ['right', 'left'];
4751
+ const tbPlacement = ['top', 'bottom'];
4752
+ const btPlacement = ['bottom', 'top'];
4735
4753
  function getSideList(side, isStart, rtl) {
4736
- const lr = ['left', 'right'];
4737
- const rl = ['right', 'left'];
4738
- const tb = ['top', 'bottom'];
4739
- const bt = ['bottom', 'top'];
4740
4754
  switch (side) {
4741
4755
  case 'top':
4742
4756
  case 'bottom':
4743
- if (rtl) return isStart ? rl : lr;
4744
- return isStart ? lr : rl;
4757
+ if (rtl) return isStart ? rlPlacement : lrPlacement;
4758
+ return isStart ? lrPlacement : rlPlacement;
4745
4759
  case 'left':
4746
4760
  case 'right':
4747
- return isStart ? tb : bt;
4761
+ return isStart ? tbPlacement : btPlacement;
4748
4762
  default:
4749
4763
  return [];
4750
4764
  }
@@ -5082,10 +5096,11 @@ const flip$1 = function (options) {
5082
5096
  const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
5083
5097
  const nextPlacement = placements[nextIndex];
5084
5098
  if (nextPlacement) {
5085
- var _overflowsData$;
5086
5099
  const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;
5087
- const hasInitialMainAxisOverflow = ((_overflowsData$ = overflowsData[0]) == null ? void 0 : _overflowsData$.overflows[0]) > 0;
5088
- if (!ignoreCrossAxisOverflow || hasInitialMainAxisOverflow) {
5100
+ if (!ignoreCrossAxisOverflow ||
5101
+ // We leave the current main axis only if every placement on that axis
5102
+ // overflows the main axis.
5103
+ overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {
5089
5104
  // Try next placement and re-run the lifecycle.
5090
5105
  return {
5091
5106
  data: {
@@ -5142,6 +5157,8 @@ const flip$1 = function (options) {
5142
5157
  };
5143
5158
  };
5144
5159
 
5160
+ const originSides = /*#__PURE__*/new Set(['left', 'top']);
5161
+
5145
5162
  // For type backwards-compatibility, the `OffsetOptions` type was also
5146
5163
  // Derivable.
5147
5164
 
@@ -5155,7 +5172,7 @@ async function convertValueToCoords(state, options) {
5155
5172
  const side = getSide(placement);
5156
5173
  const alignment = getAlignment(placement);
5157
5174
  const isVertical = getSideAxis(placement) === 'y';
5158
- const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;
5175
+ const mainAxisMulti = originSides.has(side) ? -1 : 1;
5159
5176
  const crossAxisMulti = rtl && isVertical ? -1 : 1;
5160
5177
  const rawValue = evaluate(options, state);
5161
5178
 
@@ -5304,6 +5321,90 @@ const shift$1 = function (options) {
5304
5321
  };
5305
5322
  };
5306
5323
 
5324
+ /**
5325
+ * Provides data that allows you to change the size of the floating element —
5326
+ * for instance, prevent it from overflowing the clipping boundary or match the
5327
+ * width of the reference element.
5328
+ * @see https://floating-ui.com/docs/size
5329
+ */
5330
+ const size$1 = function (options) {
5331
+ if (options === void 0) {
5332
+ options = {};
5333
+ }
5334
+ return {
5335
+ name: 'size',
5336
+ options,
5337
+ async fn(state) {
5338
+ var _state$middlewareData, _state$middlewareData2;
5339
+ const {
5340
+ placement,
5341
+ rects,
5342
+ platform,
5343
+ elements
5344
+ } = state;
5345
+ const {
5346
+ apply = () => {},
5347
+ ...detectOverflowOptions
5348
+ } = evaluate(options, state);
5349
+ const overflow = await detectOverflow(state, detectOverflowOptions);
5350
+ const side = getSide(placement);
5351
+ const alignment = getAlignment(placement);
5352
+ const isYAxis = getSideAxis(placement) === 'y';
5353
+ const {
5354
+ width,
5355
+ height
5356
+ } = rects.floating;
5357
+ let heightSide;
5358
+ let widthSide;
5359
+ if (side === 'top' || side === 'bottom') {
5360
+ heightSide = side;
5361
+ widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';
5362
+ } else {
5363
+ widthSide = side;
5364
+ heightSide = alignment === 'end' ? 'top' : 'bottom';
5365
+ }
5366
+ const maximumClippingHeight = height - overflow.top - overflow.bottom;
5367
+ const maximumClippingWidth = width - overflow.left - overflow.right;
5368
+ const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);
5369
+ const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);
5370
+ const noShift = !state.middlewareData.shift;
5371
+ let availableHeight = overflowAvailableHeight;
5372
+ let availableWidth = overflowAvailableWidth;
5373
+ if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {
5374
+ availableWidth = maximumClippingWidth;
5375
+ }
5376
+ if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {
5377
+ availableHeight = maximumClippingHeight;
5378
+ }
5379
+ if (noShift && !alignment) {
5380
+ const xMin = max(overflow.left, 0);
5381
+ const xMax = max(overflow.right, 0);
5382
+ const yMin = max(overflow.top, 0);
5383
+ const yMax = max(overflow.bottom, 0);
5384
+ if (isYAxis) {
5385
+ availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));
5386
+ } else {
5387
+ availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));
5388
+ }
5389
+ }
5390
+ await apply({
5391
+ ...state,
5392
+ availableWidth,
5393
+ availableHeight
5394
+ });
5395
+ const nextDimensions = await platform.getDimensions(elements.floating);
5396
+ if (width !== nextDimensions.width || height !== nextDimensions.height) {
5397
+ return {
5398
+ reset: {
5399
+ rects: true
5400
+ }
5401
+ };
5402
+ }
5403
+ return {};
5404
+ }
5405
+ };
5406
+ };
5407
+
5307
5408
  function hasWindow() {
5308
5409
  return typeof window !== 'undefined';
5309
5410
  }
@@ -5348,6 +5449,7 @@ function isShadowRoot(value) {
5348
5449
  }
5349
5450
  return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;
5350
5451
  }
5452
+ const invalidOverflowDisplayValues = /*#__PURE__*/new Set(['inline', 'contents']);
5351
5453
  function isOverflowElement(element) {
5352
5454
  const {
5353
5455
  overflow,
@@ -5355,27 +5457,32 @@ function isOverflowElement(element) {
5355
5457
  overflowY,
5356
5458
  display
5357
5459
  } = getComputedStyle$1(element);
5358
- return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);
5460
+ return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);
5359
5461
  }
5462
+ const tableElements = /*#__PURE__*/new Set(['table', 'td', 'th']);
5360
5463
  function isTableElement(element) {
5361
- return ['table', 'td', 'th'].includes(getNodeName(element));
5464
+ return tableElements.has(getNodeName(element));
5362
5465
  }
5466
+ const topLayerSelectors = [':popover-open', ':modal'];
5363
5467
  function isTopLayer(element) {
5364
- return [':popover-open', ':modal'].some(selector => {
5468
+ return topLayerSelectors.some(selector => {
5365
5469
  try {
5366
5470
  return element.matches(selector);
5367
- } catch (e) {
5471
+ } catch (_e) {
5368
5472
  return false;
5369
5473
  }
5370
5474
  });
5371
5475
  }
5476
+ const transformProperties = ['transform', 'translate', 'scale', 'rotate', 'perspective'];
5477
+ const willChangeValues = ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'];
5478
+ const containValues = ['paint', 'layout', 'strict', 'content'];
5372
5479
  function isContainingBlock(elementOrCss) {
5373
5480
  const webkit = isWebKit();
5374
5481
  const css = isElement(elementOrCss) ? getComputedStyle$1(elementOrCss) : elementOrCss;
5375
5482
 
5376
5483
  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
5377
5484
  // https://drafts.csswg.org/css-transforms-2/#individual-transforms
5378
- return ['transform', 'translate', 'scale', 'rotate', 'perspective'].some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));
5485
+ return transformProperties.some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || willChangeValues.some(value => (css.willChange || '').includes(value)) || containValues.some(value => (css.contain || '').includes(value));
5379
5486
  }
5380
5487
  function getContainingBlock(element) {
5381
5488
  let currentNode = getParentNode(element);
@@ -5393,8 +5500,9 @@ function isWebKit() {
5393
5500
  if (typeof CSS === 'undefined' || !CSS.supports) return false;
5394
5501
  return CSS.supports('-webkit-backdrop-filter', 'none');
5395
5502
  }
5503
+ const lastTraversableNodeNames = /*#__PURE__*/new Set(['html', 'body', '#document']);
5396
5504
  function isLastTraversableNode(node) {
5397
- return ['html', 'body', '#document'].includes(getNodeName(node));
5505
+ return lastTraversableNodeNames.has(getNodeName(node));
5398
5506
  }
5399
5507
  function getComputedStyle$1(element) {
5400
5508
  return getWindow(element).getComputedStyle(element);
@@ -5594,14 +5702,9 @@ function getWindowScrollBarX(element, rect) {
5594
5702
  return rect.left + leftScroll;
5595
5703
  }
5596
5704
 
5597
- function getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {
5598
- if (ignoreScrollbarX === void 0) {
5599
- ignoreScrollbarX = false;
5600
- }
5705
+ function getHTMLOffset(documentElement, scroll) {
5601
5706
  const htmlRect = documentElement.getBoundingClientRect();
5602
- const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :
5603
- // RTL <body> scrollbar.
5604
- getWindowScrollBarX(documentElement, htmlRect));
5707
+ const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);
5605
5708
  const y = htmlRect.top + scroll.scrollTop;
5606
5709
  return {
5607
5710
  x,
@@ -5640,7 +5743,7 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
5640
5743
  offsets.y = offsetRect.y + offsetParent.clientTop;
5641
5744
  }
5642
5745
  }
5643
- const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);
5746
+ const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
5644
5747
  return {
5645
5748
  width: rect.width * scale.x,
5646
5749
  height: rect.height * scale.y,
@@ -5674,6 +5777,10 @@ function getDocumentRect(element) {
5674
5777
  };
5675
5778
  }
5676
5779
 
5780
+ // Safety check: ensure the scrollbar space is reasonable in case this
5781
+ // calculation is affected by unusual styles.
5782
+ // Most scrollbars leave 15-18px of space.
5783
+ const SCROLLBAR_MAX = 25;
5677
5784
  function getViewportRect(element, strategy) {
5678
5785
  const win = getWindow(element);
5679
5786
  const html = getDocumentElement(element);
@@ -5691,6 +5798,24 @@ function getViewportRect(element, strategy) {
5691
5798
  y = visualViewport.offsetTop;
5692
5799
  }
5693
5800
  }
5801
+ const windowScrollbarX = getWindowScrollBarX(html);
5802
+ // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the
5803
+ // visual width of the <html> but this is not considered in the size
5804
+ // of `html.clientWidth`.
5805
+ if (windowScrollbarX <= 0) {
5806
+ const doc = html.ownerDocument;
5807
+ const body = doc.body;
5808
+ const bodyStyles = getComputedStyle(body);
5809
+ const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;
5810
+ const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);
5811
+ if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {
5812
+ width -= clippingStableScrollbarWidth;
5813
+ }
5814
+ } else if (windowScrollbarX <= SCROLLBAR_MAX) {
5815
+ // If the <body> scrollbar is on the left, the width needs to be extended
5816
+ // by the scrollbar amount so there isn't extra space on the right.
5817
+ width += windowScrollbarX;
5818
+ }
5694
5819
  return {
5695
5820
  width,
5696
5821
  height,
@@ -5699,6 +5824,7 @@ function getViewportRect(element, strategy) {
5699
5824
  };
5700
5825
  }
5701
5826
 
5827
+ const absoluteOrFixed = /*#__PURE__*/new Set(['absolute', 'fixed']);
5702
5828
  // Returns the inner client rect, subtracting scrollbars if present.
5703
5829
  function getInnerBoundingClientRect(element, strategy) {
5704
5830
  const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');
@@ -5763,7 +5889,7 @@ function getClippingElementAncestors(element, cache) {
5763
5889
  if (!currentNodeIsContaining && computedStyle.position === 'fixed') {
5764
5890
  currentContainingBlockComputedStyle = null;
5765
5891
  }
5766
- const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
5892
+ const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
5767
5893
  if (shouldDropCurrentNode) {
5768
5894
  // Drop non-containing blocks.
5769
5895
  result = result.filter(ancestor => ancestor !== currentNode);
@@ -6135,6 +6261,14 @@ const shift = shift$1;
6135
6261
  */
6136
6262
  const flip = flip$1;
6137
6263
 
6264
+ /**
6265
+ * Provides data that allows you to change the size of the floating element —
6266
+ * for instance, prevent it from overflowing the clipping boundary or match the
6267
+ * width of the reference element.
6268
+ * @see https://floating-ui.com/docs/size
6269
+ */
6270
+ const size = size$1;
6271
+
6138
6272
  /**
6139
6273
  * Computes the `x` and `y` coordinates that will place the floating element
6140
6274
  * next to a given reference element.
@@ -6158,7 +6292,7 @@ const computePosition = (reference, floating, options) => {
6158
6292
  });
6159
6293
  };
6160
6294
 
6161
- /*! @license DOMPurify 3.2.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.6/LICENSE */
6295
+ /*! @license DOMPurify 3.3.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.1/LICENSE */
6162
6296
 
6163
6297
  const {
6164
6298
  entries,
@@ -6187,12 +6321,18 @@ if (!seal) {
6187
6321
  };
6188
6322
  }
6189
6323
  if (!apply) {
6190
- apply = function apply(fun, thisValue, args) {
6191
- return fun.apply(thisValue, args);
6324
+ apply = function apply(func, thisArg) {
6325
+ for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
6326
+ args[_key - 2] = arguments[_key];
6327
+ }
6328
+ return func.apply(thisArg, args);
6192
6329
  };
6193
6330
  }
6194
6331
  if (!construct) {
6195
- construct = function construct(Func, args) {
6332
+ construct = function construct(Func) {
6333
+ for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
6334
+ args[_key2 - 1] = arguments[_key2];
6335
+ }
6196
6336
  return new Func(...args);
6197
6337
  };
6198
6338
  }
@@ -6221,8 +6361,8 @@ function unapply(func) {
6221
6361
  if (thisArg instanceof RegExp) {
6222
6362
  thisArg.lastIndex = 0;
6223
6363
  }
6224
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
6225
- args[_key - 1] = arguments[_key];
6364
+ for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
6365
+ args[_key3 - 1] = arguments[_key3];
6226
6366
  }
6227
6367
  return apply(func, thisArg, args);
6228
6368
  };
@@ -6233,12 +6373,12 @@ function unapply(func) {
6233
6373
  * @param func - The constructor function to be wrapped and called.
6234
6374
  * @returns A new function that constructs an instance of the given constructor function with the provided arguments.
6235
6375
  */
6236
- function unconstruct(func) {
6376
+ function unconstruct(Func) {
6237
6377
  return function () {
6238
- for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
6239
- args[_key2] = arguments[_key2];
6378
+ for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
6379
+ args[_key4] = arguments[_key4];
6240
6380
  }
6241
- return construct(func, args);
6381
+ return construct(Func, args);
6242
6382
  };
6243
6383
  }
6244
6384
  /**
@@ -6337,8 +6477,8 @@ function lookupGetter(object, prop) {
6337
6477
  return fallbackValue;
6338
6478
  }
6339
6479
 
6340
- const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);
6341
- const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);
6480
+ const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'search', 'section', 'select', 'shadow', 'slot', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);
6481
+ const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'enterkeyhint', 'exportparts', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'inputmode', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'part', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);
6342
6482
  const svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);
6343
6483
  // List of SVG elements that are disallowed by default.
6344
6484
  // We still need to know them so that we can do namespace
@@ -6351,8 +6491,8 @@ const mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mgly
6351
6491
  const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);
6352
6492
  const text = freeze(['#text']);
6353
6493
 
6354
- const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);
6355
- const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);
6494
+ const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'exportparts', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inert', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'part', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);
6495
+ const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'mask-type', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);
6356
6496
  const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);
6357
6497
  const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);
6358
6498
 
@@ -6450,7 +6590,7 @@ const _createHooksMap = function _createHooksMap() {
6450
6590
  function createDOMPurify() {
6451
6591
  let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();
6452
6592
  const DOMPurify = root => createDOMPurify(root);
6453
- DOMPurify.version = '3.2.6';
6593
+ DOMPurify.version = '3.3.1';
6454
6594
  DOMPurify.removed = [];
6455
6595
  if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {
6456
6596
  // Not running in a browser, provide a factory function
@@ -6561,6 +6701,21 @@ function createDOMPurify() {
6561
6701
  let FORBID_TAGS = null;
6562
6702
  /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */
6563
6703
  let FORBID_ATTR = null;
6704
+ /* Config object to store ADD_TAGS/ADD_ATTR functions (when used as functions) */
6705
+ const EXTRA_ELEMENT_HANDLING = Object.seal(create(null, {
6706
+ tagCheck: {
6707
+ writable: true,
6708
+ configurable: false,
6709
+ enumerable: true,
6710
+ value: null
6711
+ },
6712
+ attributeCheck: {
6713
+ writable: true,
6714
+ configurable: false,
6715
+ enumerable: true,
6716
+ value: null
6717
+ }
6718
+ }));
6564
6719
  /* Decide if ARIA attributes are okay */
6565
6720
  let ALLOW_ARIA_ATTR = true;
6566
6721
  /* Decide if custom data attributes are okay */
@@ -6753,16 +6908,24 @@ function createDOMPurify() {
6753
6908
  }
6754
6909
  /* Merge configuration parameters */
6755
6910
  if (cfg.ADD_TAGS) {
6756
- if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
6757
- ALLOWED_TAGS = clone$1(ALLOWED_TAGS);
6911
+ if (typeof cfg.ADD_TAGS === 'function') {
6912
+ EXTRA_ELEMENT_HANDLING.tagCheck = cfg.ADD_TAGS;
6913
+ } else {
6914
+ if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
6915
+ ALLOWED_TAGS = clone$1(ALLOWED_TAGS);
6916
+ }
6917
+ addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
6758
6918
  }
6759
- addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
6760
6919
  }
6761
6920
  if (cfg.ADD_ATTR) {
6762
- if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
6763
- ALLOWED_ATTR = clone$1(ALLOWED_ATTR);
6921
+ if (typeof cfg.ADD_ATTR === 'function') {
6922
+ EXTRA_ELEMENT_HANDLING.attributeCheck = cfg.ADD_ATTR;
6923
+ } else {
6924
+ if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
6925
+ ALLOWED_ATTR = clone$1(ALLOWED_ATTR);
6926
+ }
6927
+ addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
6764
6928
  }
6765
- addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
6766
6929
  }
6767
6930
  if (cfg.ADD_URI_SAFE_ATTR) {
6768
6931
  addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);
@@ -6773,6 +6936,12 @@ function createDOMPurify() {
6773
6936
  }
6774
6937
  addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);
6775
6938
  }
6939
+ if (cfg.ADD_FORBID_CONTENTS) {
6940
+ if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {
6941
+ FORBID_CONTENTS = clone$1(FORBID_CONTENTS);
6942
+ }
6943
+ addToSet(FORBID_CONTENTS, cfg.ADD_FORBID_CONTENTS, transformCaseFunc);
6944
+ }
6776
6945
  /* Add #text in case KEEP_CONTENT is set to true */
6777
6946
  if (KEEP_CONTENT) {
6778
6947
  ALLOWED_TAGS['#text'] = true;
@@ -7070,7 +7239,7 @@ function createDOMPurify() {
7070
7239
  return true;
7071
7240
  }
7072
7241
  /* Remove element if anything forbids its presence */
7073
- if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
7242
+ if (!(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName])) {
7074
7243
  /* Check if we have a custom element to handle */
7075
7244
  if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {
7076
7245
  if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {
@@ -7142,12 +7311,12 @@ function createDOMPurify() {
7142
7311
  (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)
7143
7312
  XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)
7144
7313
  We don't need to check the value; it's always URI safe. */
7145
- if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {
7314
+ if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (EXTRA_ELEMENT_HANDLING.attributeCheck instanceof Function && EXTRA_ELEMENT_HANDLING.attributeCheck(lcName, lcTag)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {
7146
7315
  if (
7147
7316
  // First condition does a very basic check if a) it's basically a valid custom element tagname AND
7148
7317
  // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
7149
7318
  // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
7150
- _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) ||
7319
+ _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName, lcTag)) ||
7151
7320
  // Alternative, second condition checks if it's an `is`-attribute, AND
7152
7321
  // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
7153
7322
  lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {
@@ -7226,7 +7395,12 @@ function createDOMPurify() {
7226
7395
  value = SANITIZE_NAMED_PROPS_PREFIX + value;
7227
7396
  }
7228
7397
  /* Work around a security issue with comments inside attributes */
7229
- if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\/(style|title)/i, value)) {
7398
+ if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\/(style|title|textarea)/i, value)) {
7399
+ _removeAttribute(name, currentNode);
7400
+ continue;
7401
+ }
7402
+ /* Make sure we cannot easily use animated hrefs, even if animations are allowed */
7403
+ if (lcName === 'attributename' && stringMatch(value, 'href')) {
7230
7404
  _removeAttribute(name, currentNode);
7231
7405
  continue;
7232
7406
  }
@@ -7493,7 +7667,7 @@ function createDOMPurify() {
7493
7667
  }
7494
7668
  var purify = createDOMPurify();
7495
7669
 
7496
- const pdsComboboxCss = ":host{display:block}:host([disabled=true]) .pds-combobox__input-icon{color:var(--pine-color-text-disabled);pointer-events:none}.pds-combobox{position:relative}.pds-combobox__label{color:var(--pine-color-text-label);display:block;font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing);-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}.pds-combobox__input-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;position:relative;width:100%}.pds-combobox__input{background:var(--pine-color-background-container);border:var(--pine-border);border-radius:var(--pine-dimension-125);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pine-color-text-strong);-ms-flex:1;flex:1;font:var(--pine-typography-body-medium);padding:var(--pine-dimension-xs) var(--pine-dimension-450) var(--pine-dimension-xs) var(--pine-dimension-150);-webkit-transition:border-color 0.2s ease;transition:border-color 0.2s ease;width:100%}.pds-combobox__input:hover:not(:disabled){border-color:var(--pine-color-border-hover)}.pds-combobox__input:disabled{background:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-disabled);cursor:not-allowed}.pds-combobox__input:disabled::-webkit-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled::-moz-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled:-ms-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled::-ms-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled::placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:focus-visible{border-color:var(--pine-color-border-active);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-combobox__input::-webkit-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input::-moz-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input:-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input::-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input::placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input-icon{color:var(--pine-color-text-secondary);pointer-events:none;position:absolute;right:var(--pine-dimension-150);z-index:var(--pine-z-index-raised)}.pds-combobox__listbox{background:var(--pine-color-background-container);border:0;border-radius:var(--pine-dimension-125);-webkit-box-shadow:var(--pine-box-shadow);box-shadow:var(--pine-box-shadow);list-style:none;margin:0;min-width:220px;overflow-y:auto;padding:var(--pine-dimension-xs);position:absolute;z-index:var(--pine-z-index-raised)}.pds-combobox__option{-ms-flex-align:center;align-items:center;background:transparent;border-radius:var(--pine-dimension-125);color:var(--pine-color-text-secondary);cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-medium);-ms-flex-pack:justify;justify-content:space-between;padding:var(--pine-dimension-xs) var(--pine-dimension-sm);position:relative;-webkit-transition:background 0.15s;transition:background 0.15s}.pds-combobox__option[aria-selected=true]{background:var(--pine-color-background-muted)}.pds-combobox__option:focus-visible{outline:0}.pds-combobox__option .pds-combobox__option--layout .pds-combobox__option-layout-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__option .pds-combobox__option--chip .pds-combobox__option-chip{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__option:last-child{-webkit-margin-after:0;margin-block-end:0}.pds-combobox__option--highlighted,.pds-combobox__option[selected],.pds-combobox__option--selected{background:var(--pine-color-background-muted)}.pds-combobox__option-check{color:currentColor;font-size:var(--pine-dimension-150);-webkit-margin-start:var(--pine-dimension-150);margin-inline-start:var(--pine-dimension-150)}.pds-combobox__group-label{color:var(--pine-color-text-tertiary);cursor:default;font:var(--pine-typography-heading-caption);-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs);-webkit-margin-before:var(--pine-dimension-150);margin-block-start:var(--pine-dimension-150);padding:var(--pine-dimension-2xs) var(--pine-dimension-sm);text-transform:uppercase}.pds-combobox__group-label:first-child{-webkit-margin-before:0;margin-block-start:0}.pds-combobox__button-trigger{-ms-flex-align:center;align-items:center;background:var(--color-background-default, var(--pine-color-secondary));border:var(--pine-border);border-radius:var(--pine-border-radius-full);color:var(--color-text-default, #ffffff);cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-medium);-ms-flex-pack:justify;justify-content:space-between;min-height:var(--pine-dimension-450);outline:none;padding:0 var(--pine-dimension-sm);-webkit-transition:border-color 0.15s, background 0.15s, -webkit-box-shadow 0.15s;transition:border-color 0.15s, background 0.15s, -webkit-box-shadow 0.15s;transition:border-color 0.15s, box-shadow 0.15s, background 0.15s;transition:border-color 0.15s, box-shadow 0.15s, background 0.15s, -webkit-box-shadow 0.15s;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.pds-combobox__button-trigger .pds-combobox__button-trigger-layout-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1}.pds-combobox__button-trigger .trigger-content{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__button-trigger:focus-visible{border-color:var(--color-border-focus, var(--pine-color-border));-webkit-box-shadow:0 0 0 2px var(--color-outline, var(--pine-color-focus-ring));box-shadow:0 0 0 2px var(--color-outline, var(--pine-color-focus-ring))}.pds-combobox__button-trigger:hover{background:var(--color-background-hover, var(--pine-color-secondary-hover));border-color:var(--color-border-hover, var(--pine-color-border-hover))}.pds-combobox__button-trigger[aria-disabled=true],.pds-combobox__button-trigger:disabled{background:var(--color-background-disabled, var(--pine-color-secondary-disabled));border-color:var(--color-border-disabled, var(--pine-color-border-disabled));color:var(--color-text-disabled, var(--pine-color-text-secondary-disabled));cursor:not-allowed;opacity:0.6}.pds-combobox__button-trigger-label{color:inherit;-ms-flex:1 1 auto;flex:1 1 auto;text-align:start}.pds-combobox__button-trigger-chevron{color:currentColor;-webkit-margin-start:var(--pine-dimension-150);margin-inline-start:var(--pine-dimension-150)}.pds-combobox__button-trigger--primary{--color-background-default:var(--pine-color-primary);--color-background-hover:var(--pine-color-primary-hover);--color-background-disabled:var(--pine-color-primary-disabled);--color-border-default:var(--pine-color-primary);--color-border-hover:var(--pine-color-primary-hover);--color-border-disabled:var(--pine-color-primary-disabled);--color-border-focus:var(--pine-color-primary);--color-text-default:var(--pine-color-text-primary);--color-text-disabled:var(--pine-color-text-primary-disabled);--color-outline:var(--pine-color-focus-ring)}.pds-combobox__button-trigger--accent{--color-background-default:var(--pine-color-accent);--color-background-hover:var(--pine-color-accent-hover);--color-background-disabled:var(--pine-color-accent-disabled);--color-border-default:var(--pine-color-accent);--color-border-hover:var(--pine-color-accent-hover);--color-border-disabled:var(--pine-color-accent-disabled);--color-border-focus:var(--pine-color-accent);--color-text-default:var(--pine-color-white);--color-text-disabled:var(--pine-color-text-accent-disabled);--color-outline:var(--pine-color-focus-ring)}.pds-combobox__button-trigger--secondary{--color-background-default:var(--pine-color-secondary);--color-background-hover:var(--pine-color-secondary-hover);--color-background-disabled:var(--pine-color-secondary-disabled);--color-border-default:var(--pine-color-border);--color-border-hover:var(--pine-color-border-hover);--color-border-disabled:var(--pine-color-border-disabled);--color-border-focus:var(--pine-color-border);--color-text-default:var(--pine-color-text-secondary);--color-text-disabled:var(--pine-color-text-secondary-disabled);--color-outline:var(--pine-color-focus-ring)}.pds-combobox__button-trigger--destructive{--color-background-default:var(--pine-color-danger);--color-background-hover:var(--pine-color-danger-hover);--color-background-disabled:var(--pine-color-danger-disabled);--color-border-default:var(--pine-color-danger);--color-border-hover:var(--pine-color-danger-hover);--color-border-disabled:var(--pine-color-danger-disabled);--color-border-focus:var(--pine-color-danger);--color-text-default:var(--pine-color-white);--color-text-disabled:var(--pine-color-text-danger-disabled);--color-outline:var(--pine-color-focus-ring-danger)}.visually-hidden{border:0;clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[data-layout]{border-radius:var(--pine-dimension-125);padding-block:var(--pine-dimension-xs)}.pds-combobox__chip-trigger{-ms-flex-align:center;align-items:center;border-radius:var(--pine-dimension-sm);cursor:pointer;display:-ms-inline-flexbox;display:inline-flex;font:var(--pine-typography-body-medium);-ms-flex-pack:justify;justify-content:space-between;outline:none;padding-block:var(--pine-dimension-025);padding-inline:var(--pine-dimension-150);-webkit-transition:all 0.15s ease;transition:all 0.15s ease;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.pds-combobox__chip-trigger .pds-combobox__chip-trigger-layout-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1}.pds-combobox__chip-trigger .trigger-content{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__chip-trigger:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-combobox__chip-trigger[aria-disabled=true]{cursor:not-allowed;opacity:0.6}.pds-combobox__chip-trigger-label{color:inherit;-ms-flex:1 1 auto;flex:1 1 auto;text-align:start}.pds-combobox__chip-trigger-chevron{color:currentColor;-webkit-margin-start:var(--pine-dimension-150);margin-inline-start:var(--pine-dimension-150)}.pds-combobox__chip-trigger-icon{-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs)}.pds-combobox__chip-trigger--neutral,.pds-combobox__chip-trigger--accent,.pds-combobox__chip-trigger--success,.pds-combobox__chip-trigger--warning,.pds-combobox__chip-trigger--danger,.pds-combobox__chip-trigger--info{background:var(--chip-bg);border:var(--pine-border-width) solid var(--chip-border);color:var(--chip-text)}.pds-combobox__chip-trigger--neutral:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--accent:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--success:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--warning:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--danger:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--info:hover:not([aria-disabled=true]){background:var(--chip-bg-hover)}.pds-combobox__chip-trigger--neutral:focus-visible,.pds-combobox__chip-trigger--accent:focus-visible,.pds-combobox__chip-trigger--success:focus-visible,.pds-combobox__chip-trigger--warning:focus-visible,.pds-combobox__chip-trigger--danger:focus-visible,.pds-combobox__chip-trigger--info:focus-visible{border-color:var(--chip-border)}.pds-combobox__chip-trigger--neutral{--chip-bg:var(--pine-chip-color-neutral);--chip-bg-hover:var(--pine-chip-color-neutral-hover);--chip-border:var(--pine-chip-color-neutral-hover);--chip-text:var(--pine-color-text-neutral)}.pds-combobox__chip-trigger--accent{--chip-bg:var(--pine-chip-color-accent);--chip-bg-hover:var(--pine-chip-color-accent-hover);--chip-border:var(--pine-chip-color-accent-hover);--chip-text:var(--pine-color-text-accent)}.pds-combobox__chip-trigger--success{--chip-bg:var(--pine-chip-color-success);--chip-bg-hover:var(--pine-chip-color-success-hover);--chip-border:var(--pine-chip-color-success-hover);--chip-text:var(--pine-color-text-success)}.pds-combobox__chip-trigger--warning{--chip-bg:var(--pine-chip-color-warning);--chip-bg-hover:var(--pine-chip-color-warning-hover);--chip-border:var(--pine-chip-color-warning-hover);--chip-text:var(--pine-color-text-warning)}.pds-combobox__chip-trigger--danger{--chip-bg:var(--pine-chip-color-danger);--chip-bg-hover:var(--pine-chip-color-danger-hover);--chip-border:var(--pine-chip-color-danger-hover);--chip-text:var(--pine-color-text-danger)}.pds-combobox__chip-trigger--info{--chip-bg:var(--pine-chip-color-info);--chip-bg-hover:var(--pine-chip-color-info-hover);--chip-border:var(--pine-chip-color-info-hover);--chip-text:var(--pine-color-text-info)}.pds-combobox__chip-trigger--brand{background:-webkit-gradient(linear, left top, right top, from(#FF3E14), to(#6B62F2));background:linear-gradient(90deg, #FF3E14 0%, #6B62F2 100%);border:0;color:var(--pine-color-text-neutral);padding:1px;position:relative}.pds-combobox__chip-trigger--brand .pds-combobox__chip-trigger-label{background:rgba(255, 255, 255, 0.9);border-radius:calc(var(--pine-dimension-sm) - 1px);color:var(--pine-color-text-neutral);font-weight:var(--pine-font-weight-medium);padding:var(--pine-dimension-025) var(--pine-dimension-150);position:relative;z-index:1}.pds-combobox__chip-trigger--brand .pds-combobox__chip-trigger-chevron{position:relative;z-index:1}.pds-combobox__chip-trigger--brand:hover:not([aria-disabled=true]) .pds-combobox__chip-trigger-label{background:rgba(255, 255, 255, 0.8)}.pds-combobox__chip-trigger--dropdown:not(.pds-combobox__chip-trigger--brand){padding:var(--pine-dimension-none)}.pds-combobox__chip-trigger--dropdown:not(.pds-combobox__chip-trigger--brand) .pds-combobox__chip-trigger-label{padding:var(--pine-dimension-025) var(--pine-dimension-150)}.pds-combobox__chip-trigger--large .pds-combobox__chip-trigger-label{font-family:var(--pine-font-family-heading);font-size:var(--pine-font-size-heading-6);font-weight:var(--pine-font-weight-medium);letter-spacing:var(--pine-letter-spacing-heading-6)}.pds-combobox__chip-trigger--dot .pds-combobox__chip-trigger-label::before{border:var(--pine-border-width) solid transparent;border-radius:var(--pine-border-radius-full);content:\"\";display:inline-block;height:var(--pine-dimension-2xs);-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs);width:var(--pine-dimension-2xs)}";
7670
+ const pdsComboboxCss = ":host{display:block}:host([disabled=true]) .pds-combobox__input-icon{color:var(--pine-color-text-disabled);pointer-events:none}.pds-combobox{position:relative}.pds-combobox__label{color:var(--pine-color-text-label);display:block;font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing);-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}.pds-combobox__input-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;position:relative;width:100%}.pds-combobox__input{background:var(--pine-color-background-container);border:var(--pine-border);border-radius:var(--pine-dimension-125);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pine-color-text-strong);-ms-flex:1;flex:1;font:var(--pine-typography-body-medium);padding:var(--pine-dimension-xs) var(--pine-dimension-450) var(--pine-dimension-xs) var(--pine-dimension-150);-webkit-transition:border-color 0.2s ease;transition:border-color 0.2s ease;width:100%}.pds-combobox__input:hover:not(:disabled){border-color:var(--pine-color-border-hover)}.pds-combobox__input:disabled{background:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-disabled);cursor:not-allowed}.pds-combobox__input:disabled::-webkit-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled::-moz-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled:-ms-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled::-ms-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled::placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:focus-visible{border-color:var(--pine-color-border-active);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-combobox__input::-webkit-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input::-moz-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input:-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input::-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input::placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input-icon{color:var(--pine-color-text-secondary);pointer-events:none;position:absolute;right:var(--pine-dimension-150);z-index:var(--pine-z-index-raised)}.pds-combobox__listbox{background:var(--pine-color-background-container);border:0;border-radius:var(--pine-dimension-125);-webkit-box-shadow:var(--pine-box-shadow);box-shadow:var(--pine-box-shadow);list-style:none;margin:0;min-width:220px;overflow-y:auto;padding:var(--pine-dimension-xs);position:absolute;z-index:var(--pine-z-index-raised)}.pds-combobox__option{-ms-flex-align:center;align-items:center;background:transparent;border-radius:var(--pine-dimension-125);color:var(--pine-color-text-secondary);cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-medium);-ms-flex-pack:justify;justify-content:space-between;padding:var(--pine-dimension-xs) var(--pine-dimension-sm);position:relative;-webkit-transition:background 0.15s;transition:background 0.15s}.pds-combobox__option[aria-selected=true]{background:var(--pine-color-background-muted)}.pds-combobox__option:focus-visible{outline:0}.pds-combobox__option .pds-combobox__option--layout .pds-combobox__option-layout-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__option .pds-combobox__option--chip .pds-combobox__option-chip{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__option:last-child{-webkit-margin-after:0;margin-block-end:0}.pds-combobox__option--highlighted,.pds-combobox__option[selected],.pds-combobox__option--selected{background:var(--pine-color-background-muted)}.pds-combobox__option-check{color:currentColor;font-size:var(--pine-dimension-150);-webkit-margin-start:var(--pine-dimension-150);margin-inline-start:var(--pine-dimension-150)}.pds-combobox__group-label{color:var(--pine-color-text-tertiary);cursor:default;font:var(--pine-typography-heading-caption);-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs);-webkit-margin-before:var(--pine-dimension-150);margin-block-start:var(--pine-dimension-150);padding:var(--pine-dimension-2xs) var(--pine-dimension-sm);text-transform:uppercase}.pds-combobox__group-label:first-child{-webkit-margin-before:0;margin-block-start:0}.pds-combobox__button-trigger{-ms-flex-align:center;align-items:center;background:var(--color-background-default, var(--pine-color-secondary));border:var(--pine-border);border-radius:var(--pine-border-radius-full);color:var(--color-text-default, var(--pine-color-text-inverse-emphasis));cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-medium);-ms-flex-pack:justify;justify-content:space-between;min-height:var(--pine-dimension-450);outline:none;padding:0 var(--pine-dimension-sm);-webkit-transition:border-color 0.15s, background 0.15s, -webkit-box-shadow 0.15s;transition:border-color 0.15s, background 0.15s, -webkit-box-shadow 0.15s;transition:border-color 0.15s, box-shadow 0.15s, background 0.15s;transition:border-color 0.15s, box-shadow 0.15s, background 0.15s, -webkit-box-shadow 0.15s;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.pds-combobox__button-trigger .pds-combobox__button-trigger-layout-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1}.pds-combobox__button-trigger .trigger-content{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__button-trigger:focus-visible{border-color:var(--color-border-focus, var(--pine-color-border));-webkit-box-shadow:0 0 0 2px var(--color-outline, var(--pine-color-focus-ring));box-shadow:0 0 0 2px var(--color-outline, var(--pine-color-focus-ring))}.pds-combobox__button-trigger:hover{background:var(--color-background-hover, var(--pine-color-secondary-hover));border-color:var(--color-border-hover, var(--pine-color-border-hover))}.pds-combobox__button-trigger[aria-disabled=true],.pds-combobox__button-trigger:disabled{background:var(--color-background-disabled, var(--pine-color-secondary-disabled));border-color:var(--color-border-disabled, var(--pine-color-border-disabled));color:var(--color-text-disabled, var(--pine-color-text-secondary-disabled));cursor:not-allowed;opacity:0.6}.pds-combobox__button-trigger-label{color:inherit;-ms-flex:1 1 auto;flex:1 1 auto;text-align:start}.pds-combobox__button-trigger-chevron{color:currentColor;-webkit-margin-start:var(--pine-dimension-150);margin-inline-start:var(--pine-dimension-150)}.pds-combobox__button-trigger--primary{--color-background-default:var(--pine-color-primary);--color-background-hover:var(--pine-color-primary-hover);--color-background-disabled:var(--pine-color-primary-disabled);--color-border-default:var(--pine-color-primary);--color-border-hover:var(--pine-color-primary-hover);--color-border-disabled:var(--pine-color-primary-disabled);--color-border-focus:var(--pine-color-primary);--color-text-default:var(--pine-color-text-primary);--color-text-disabled:var(--pine-color-text-primary-disabled);--color-outline:var(--pine-color-focus-ring)}.pds-combobox__button-trigger--accent{--color-background-default:var(--pine-color-accent);--color-background-hover:var(--pine-color-accent-hover);--color-background-disabled:var(--pine-color-accent-disabled);--color-border-default:var(--pine-color-accent);--color-border-hover:var(--pine-color-accent-hover);--color-border-disabled:var(--pine-color-accent-disabled);--color-border-focus:var(--pine-color-accent);--color-text-default:var(--pine-color-white);--color-text-disabled:var(--pine-color-text-accent-disabled);--color-outline:var(--pine-color-focus-ring)}.pds-combobox__button-trigger--secondary{--color-background-default:var(--pine-color-secondary);--color-background-hover:var(--pine-color-secondary-hover);--color-background-disabled:var(--pine-color-secondary-disabled);--color-border-default:var(--pine-color-border);--color-border-hover:var(--pine-color-border-hover);--color-border-disabled:var(--pine-color-border-disabled);--color-border-focus:var(--pine-color-border);--color-text-default:var(--pine-color-text-secondary);--color-text-disabled:var(--pine-color-text-secondary-disabled);--color-outline:var(--pine-color-focus-ring)}.pds-combobox__button-trigger--destructive{--color-background-default:var(--pine-color-danger);--color-background-hover:var(--pine-color-danger-hover);--color-background-disabled:var(--pine-color-danger-disabled);--color-border-default:var(--pine-color-danger);--color-border-hover:var(--pine-color-danger-hover);--color-border-disabled:var(--pine-color-danger-disabled);--color-border-focus:var(--pine-color-danger);--color-text-default:var(--pine-color-white);--color-text-disabled:var(--pine-color-text-danger-disabled);--color-outline:var(--pine-color-focus-ring-danger)}.visually-hidden{border:0;clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[data-layout]{border-radius:var(--pine-dimension-125);padding-block:var(--pine-dimension-xs)}.pds-combobox__chip-trigger{-ms-flex-align:center;align-items:center;border-radius:var(--pine-dimension-sm);cursor:pointer;display:-ms-inline-flexbox;display:inline-flex;font:var(--pine-typography-body-medium);-ms-flex-pack:justify;justify-content:space-between;outline:none;padding-block:var(--pine-dimension-025);padding-inline:var(--pine-dimension-150);-webkit-transition:all 0.15s ease;transition:all 0.15s ease;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.pds-combobox__chip-trigger .pds-combobox__chip-trigger-layout-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1}.pds-combobox__chip-trigger .trigger-content{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__chip-trigger:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-combobox__chip-trigger[aria-disabled=true]{cursor:not-allowed;opacity:0.6}.pds-combobox__chip-trigger-label{color:inherit;-ms-flex:1 1 auto;flex:1 1 auto;text-align:start}.pds-combobox__chip-trigger-chevron{color:currentColor;-webkit-margin-start:var(--pine-dimension-150);margin-inline-start:var(--pine-dimension-150)}.pds-combobox__chip-trigger-icon{-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs)}.pds-combobox__chip-trigger--neutral,.pds-combobox__chip-trigger--accent,.pds-combobox__chip-trigger--success,.pds-combobox__chip-trigger--warning,.pds-combobox__chip-trigger--danger,.pds-combobox__chip-trigger--info{background:var(--chip-bg);border:var(--pine-border-width) solid var(--chip-border);color:var(--chip-text)}.pds-combobox__chip-trigger--neutral:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--accent:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--success:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--warning:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--danger:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--info:hover:not([aria-disabled=true]){background:var(--chip-bg-hover)}.pds-combobox__chip-trigger--neutral:focus-visible,.pds-combobox__chip-trigger--accent:focus-visible,.pds-combobox__chip-trigger--success:focus-visible,.pds-combobox__chip-trigger--warning:focus-visible,.pds-combobox__chip-trigger--danger:focus-visible,.pds-combobox__chip-trigger--info:focus-visible{border-color:var(--chip-border)}.pds-combobox__chip-trigger--neutral{--chip-bg:var(--pine-chip-color-neutral);--chip-bg-hover:var(--pine-chip-color-neutral-hover);--chip-border:var(--pine-chip-color-neutral-hover);--chip-text:var(--pine-color-text-neutral)}.pds-combobox__chip-trigger--accent{--chip-bg:var(--pine-chip-color-accent);--chip-bg-hover:var(--pine-chip-color-accent-hover);--chip-border:var(--pine-chip-color-accent-hover);--chip-text:var(--pine-color-text-accent)}.pds-combobox__chip-trigger--success{--chip-bg:var(--pine-chip-color-success);--chip-bg-hover:var(--pine-chip-color-success-hover);--chip-border:var(--pine-chip-color-success-hover);--chip-text:var(--pine-color-text-success)}.pds-combobox__chip-trigger--warning{--chip-bg:var(--pine-chip-color-warning);--chip-bg-hover:var(--pine-chip-color-warning-hover);--chip-border:var(--pine-chip-color-warning-hover);--chip-text:var(--pine-color-text-warning)}.pds-combobox__chip-trigger--danger{--chip-bg:var(--pine-chip-color-danger);--chip-bg-hover:var(--pine-chip-color-danger-hover);--chip-border:var(--pine-chip-color-danger-hover);--chip-text:var(--pine-color-text-danger)}.pds-combobox__chip-trigger--info{--chip-bg:var(--pine-chip-color-info);--chip-bg-hover:var(--pine-chip-color-info-hover);--chip-border:var(--pine-chip-color-info-hover);--chip-text:var(--pine-color-text-info)}.pds-combobox__chip-trigger--brand{background:-webkit-gradient(linear, left top, right top, from(#FF3E14), to(#6B62F2));background:linear-gradient(90deg, #FF3E14 0%, #6B62F2 100%);border:0;color:var(--pine-color-text-neutral);padding:1px;position:relative}.pds-combobox__chip-trigger--brand .pds-combobox__chip-trigger-label{background:rgba(255, 255, 255, 0.9);border-radius:calc(var(--pine-dimension-sm) - 1px);color:var(--pine-color-text-neutral);font-weight:var(--pine-font-weight-medium);padding:var(--pine-dimension-025) var(--pine-dimension-150);position:relative;z-index:1}.pds-combobox__chip-trigger--brand .pds-combobox__chip-trigger-chevron{position:relative;z-index:1}.pds-combobox__chip-trigger--brand:hover:not([aria-disabled=true]) .pds-combobox__chip-trigger-label{background:rgba(255, 255, 255, 0.8)}.pds-combobox__chip-trigger--dropdown:not(.pds-combobox__chip-trigger--brand){padding:var(--pine-dimension-none)}.pds-combobox__chip-trigger--dropdown:not(.pds-combobox__chip-trigger--brand) .pds-combobox__chip-trigger-label{padding:var(--pine-dimension-025) var(--pine-dimension-150)}.pds-combobox__chip-trigger--large .pds-combobox__chip-trigger-label{font-family:var(--pine-font-family-heading);font-size:var(--pine-font-size-heading-6);font-weight:var(--pine-font-weight-medium);letter-spacing:var(--pine-letter-spacing-heading-6)}.pds-combobox__chip-trigger--dot .pds-combobox__chip-trigger-label::before{border:var(--pine-border-width) solid transparent;border-radius:var(--pine-border-radius-full);content:\"\";display:inline-block;height:var(--pine-dimension-2xs);-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs);width:var(--pine-dimension-2xs)}";
7497
7671
 
7498
7672
  /**
7499
7673
  * @slot option - Option elements for the combobox dropdown
@@ -8685,7 +8859,7 @@ class PdsDivider {
8685
8859
  }; }
8686
8860
  }
8687
8861
 
8688
- const pdsDropdownMenuCss = ":host{display:block}.is-hidden{display:none}.pds-dropdown-menu--panel{background-color:var(--pine-color-background-container);border-radius:var(--pine-dimension-xs);left:var(--pine-dimension-none);min-width:170px;padding:var(--pine-dimension-xs);position:absolute;z-index:var(--pine-z-index-overlay)}:host-context([data-theme=dark]) .pds-dropdown-menu--panel{border:var(--pine-border)}";
8862
+ const pdsDropdownMenuCss = ":host{display:block}.is-hidden{display:none}.pds-dropdown-menu--panel{background-color:var(--pine-color-background-container);border-radius:var(--pine-dimension-xs);left:var(--pine-dimension-none);min-width:170px;padding:var(--pine-dimension-xs);position:fixed;z-index:var(--pine-z-index-overlay)}:host-context([data-theme=dark]) .pds-dropdown-menu--panel{border:var(--pine-border)}";
8689
8863
 
8690
8864
  /**
8691
8865
  * @part menu-panel - Exposes the dropdown menu container for styling.
@@ -8740,6 +8914,7 @@ class PdsDropdownMenu {
8740
8914
  const updatePosition = () => {
8741
8915
  computePosition(this.triggerEl, this.panelEl, {
8742
8916
  placement: this.placement,
8917
+ strategy: 'fixed',
8743
8918
  middleware: [offset(6), flip(), shift({ padding: 5 })],
8744
8919
  }).then(({ x, y }) => {
8745
8920
  Object.assign(this.panelEl.style, {
@@ -8950,7 +9125,7 @@ class PdsDropdownMenu {
8950
9125
  }
8951
9126
  }
8952
9127
  render() {
8953
- return (hAsync(Host, { key: 'eb2a28bf9bfdb6ec228612be375a79caddf12da0', id: this.componentId }, hAsync("slot", { key: 'c8a38cfba87a89e450c44b79bda17f558d5d6e58', name: "trigger", onSlotchange: this.handleTriggerSlotChange }), hAsync("pds-box", { key: '8d6c33a1c3d3462738b7762df6008097e78bfbf5', "border-radius": "sm", display: "flex", direction: "column", class: "pds-dropdown-menu--panel is-hidden", shadow: "100", role: "menu", "aria-orientation": "vertical", part: "menu-panel" }, hAsync("slot", { key: '76d6b8a46ddaf907781d0810d3a4195953f1cdaf', onSlotchange: this.handleSlotChange }))));
9128
+ return (hAsync(Host, { key: '9ae650f3d8026060386ac3c3e766e7cc3c7ecc07', id: this.componentId }, hAsync("slot", { key: '598502f3a1fc16df488fb9808f453a72e630cede', name: "trigger", onSlotchange: this.handleTriggerSlotChange }), hAsync("pds-box", { key: '5be72ded41caad2d9a9569d0aeabf7d22cf1b44c', "border-radius": "sm", display: "flex", direction: "column", class: "pds-dropdown-menu--panel is-hidden", shadow: "100", role: "menu", "aria-orientation": "vertical", part: "menu-panel" }, hAsync("slot", { key: '93b2d89a1e3714ac7895be71bc44583ce4cd3243', onSlotchange: this.handleSlotChange }))));
8954
9129
  }
8955
9130
  get host() { return getElement(this); }
8956
9131
  static get style() { return pdsDropdownMenuCss; }
@@ -8968,7 +9143,7 @@ class PdsDropdownMenu {
8968
9143
  }; }
8969
9144
  }
8970
9145
 
8971
- const pdsDropdownMenuItemCss = ":host{cursor:pointer;display:-ms-flexbox;display:flex;width:100%;}:host(.is-disabled){cursor:not-allowed !important;opacity:0.5 !important}:host(.is-disabled) .pds-dropdown-menu-item__content{cursor:not-allowed !important;pointer-events:none !important}.pds-dropdown-menu-item__content{-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:var(--pine-dimension-xs);color:var(--pine-color-text);display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;font:var(--pine-typography-body-medium);gap:var(--pine-dimension-xs);margin:calc(var(--pine-border-width) + 2px);padding:var(--pine-dimension-xs);text-align:start;width:100%;}.pds-dropdown-menu-item__content:hover{background-color:var(--pine-color-background-muted);color:var(--pine-color-text-hover)}.pds-dropdown-menu-item__content:focus,.pds-dropdown-menu-item__content:focus-visible,.pds-dropdown-menu-item__content.has-focus{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}:host(.destructive) .pds-dropdown-menu-item__content{-ms-flex-align:center;align-items:center;color:var(--pine-color-danger)}:host(.destructive) .pds-dropdown-menu-item__content:hover{background-color:var(--pine-color-danger-disabled);color:var(--pine-color-danger-hover)}:host(.destructive) .pds-dropdown-menu-item__content:focus,:host(.destructive) .pds-dropdown-menu-item__content:focus-visible,:host(.destructive) .pds-dropdown-menu-item__content.has-focus{background-color:var(--pine-color-danger-disabled);outline:var(--pine-outline-focus-danger);outline-offset:var(--pine-border-width)}pds-link::part(link):focus,pds-link::part(link):focus-visible{-webkit-box-shadow:none;box-shadow:none;outline:none}pds-link::part(link){display:block;margin-inline:calc(var(--pine-dimension-xs) * -1);padding-inline:var(--pine-dimension-xs);width:100%}";
9146
+ const pdsDropdownMenuItemCss = ":host{cursor:pointer;display:-ms-flexbox;display:flex;width:100%;}:host(.is-disabled){cursor:not-allowed !important;opacity:0.5 !important}:host(.is-disabled) .pds-dropdown-menu-item__content{cursor:not-allowed !important;pointer-events:none !important}.pds-dropdown-menu-item__content{-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:var(--pine-dimension-xs);color:var(--pine-color-text);display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;font:var(--pine-typography-body-medium);gap:var(--pine-dimension-xs);margin:calc(var(--pine-border-width) + 2px);padding:var(--pine-dimension-xs);text-align:start;width:100%;}.pds-dropdown-menu-item__content:hover{background-color:var(--pine-color-background-muted);color:var(--pine-color-text-hover)}.pds-dropdown-menu-item__content{}.pds-dropdown-menu-item__content:focus,.pds-dropdown-menu-item__content:focus-visible,.pds-dropdown-menu-item__content.has-focus{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}:host(.destructive) .pds-dropdown-menu-item__content{-ms-flex-align:center;align-items:center;color:var(--pine-color-danger)}:host(.destructive) .pds-dropdown-menu-item__content:hover{background-color:var(--pine-color-danger-disabled);color:var(--pine-color-danger-hover)}:host(.destructive) .pds-dropdown-menu-item__content:focus,:host(.destructive) .pds-dropdown-menu-item__content:focus-visible,:host(.destructive) .pds-dropdown-menu-item__content.has-focus{background-color:var(--pine-color-danger-disabled);outline:var(--pine-outline-focus-danger);outline-offset:var(--pine-border-width)}pds-link::part(link):focus,pds-link::part(link):focus-visible{-webkit-box-shadow:none;box-shadow:none;outline:none}pds-link::part(link){display:block;margin:calc(var(--pine-dimension-xs) * -1);padding:var(--pine-dimension-xs);text-decoration:none;width:calc(100% + var(--pine-dimension-xs) * 2)}";
8972
9147
 
8973
9148
  class PdsDropdownMenuItem {
8974
9149
  constructor(hostRef) {
@@ -9085,7 +9260,7 @@ class PdsDropdownMenuSeparator {
9085
9260
  }; }
9086
9261
  }
9087
9262
 
9088
- const pdsFilterCss = ":host{--box-shadow-focus:0 0 0 1px var(--pine-color-white), 0 0 0 3px var(--pine-color-focus-ring);display:inline-block;position:relative}.pds-filter__trigger{-ms-flex-align:center;align-items:center;anchor-name:--filter-trigger;background:var(--pine-color-background-container);border:var(--pine-border);border-radius:var(--pine-dimension-100);-webkit-box-shadow:var(--pine-box-shadow-050);box-shadow:var(--pine-box-shadow-050);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pine-color-text-tertiary);cursor:pointer;display:-ms-inline-flexbox;display:inline-flex;font-family:var(--pine-font-family-inter);font-size:var(--pine-font-size-100);font-weight:var(--pine-font-weight-400);gap:var(--pine-dimension-050);letter-spacing:var(--pine-letter-spacing-114);line-height:var(--pine-line-height-150);padding:var(--pine-dimension-025) var(--pine-dimension-125);position:relative;-webkit-transition:all 0.2s ease;transition:all 0.2s ease}.pds-filter__trigger pds-icon{block-size:var(--pine-font-size-100);color:var(--pine-color-text-secondary);-ms-flex-negative:0;flex-shrink:0;inline-size:var(--pine-font-size-100)}.pds-filter__trigger:hover,.pds-filter__trigger.pds-filter__trigger--open{background-color:var(--pine-color-background-subtle);border-color:var(--pine-color-border-hover);color:var(--pine-color-text-hover)}.pds-filter__trigger:hover pds-icon,.pds-filter__trigger.pds-filter__trigger--open pds-icon{color:var(--pine-color-text-secondary)}.pds-filter__trigger:focus-visible{-webkit-box-shadow:var(--box-shadow-focus);box-shadow:var(--box-shadow-focus);outline:none}.pds-filter__trigger:disabled{cursor:not-allowed;opacity:0.5}.pds-filter__trigger--selected{background-color:var(--pine-color-purple-050);border-color:var(--pine-color-purple-500);color:var(--pine-color-purple-600)}.pds-filter__trigger--selected pds-icon{color:var(--pine-color-purple-600)}.pds-filter__trigger--selected:hover,.pds-filter__trigger--selected.pds-filter__trigger--open{background-color:var(--pine-color-purple-100);border-color:var(--pine-color-purple-500);color:var(--pine-color-purple-600)}.pds-filter__trigger--selected:hover pds-icon,.pds-filter__trigger--selected.pds-filter__trigger--open pds-icon{color:var(--pine-color-purple-600)}.pds-filter__trigger--selected:focus-visible{-webkit-box-shadow:var(--box-shadow-focus);box-shadow:var(--box-shadow-focus);outline:none}.pds-filter__trigger--more{background-color:var(--pine-color-background-container-hover);border:var(--pine-border-width-thin) dashed var(--pine-color-border);color:var(--pine-color-text-tertiary)}.pds-filter__trigger--more pds-icon{color:var(--pine-color-text-secondary)}.pds-filter__trigger--more:hover,.pds-filter__trigger--more.pds-filter__trigger--open{background-color:var(--pine-color-background-subtle);border-color:var(--pine-color-border-hover);color:var(--pine-color-text-hover)}.pds-filter__trigger--more:hover pds-icon,.pds-filter__trigger--more.pds-filter__trigger--open pds-icon{color:var(--pine-color-text-secondary)}.pds-filter__trigger--more:focus-visible{-webkit-box-shadow:var(--box-shadow-focus);box-shadow:var(--box-shadow-focus);outline:none}.pds-filter__trigger--clear{background:transparent;border:var(--pine-border-width-thin) solid transparent;border-radius:var(--pine-dimension-100);-webkit-box-shadow:none;box-shadow:none;color:var(--pine-color-purple-600)}.pds-filter__trigger--clear pds-icon{color:var(--pine-color-purple-600)}.pds-filter__trigger--clear:hover{background-color:var(--pine-color-purple-100);border-color:var(--pine-color-purple-100);color:var(--pine-color-purple-600)}.pds-filter__trigger--clear:hover pds-icon{color:var(--pine-color-purple-600)}.pds-filter__trigger--clear:focus-visible{-webkit-box-shadow:var(--box-shadow-focus);box-shadow:var(--box-shadow-focus);outline:none}.pds-filter__button-content{-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex;gap:var(--pine-dimension-050);max-inline-size:148px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pds-filter__button-text{line-height:var(--pine-line-height-150);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pds-filter__dropdown-icon{block-size:var(--pine-dimension-200);-ms-flex-negative:0;flex-shrink:0;inline-size:var(--pine-dimension-200)}.pds-filter__popover{background-color:var(--pine-color-background-container);border:0;border-radius:var(--pine-dimension-100);-webkit-box-shadow:var(--pine-box-shadow-100);box-shadow:var(--pine-box-shadow-100);display:none;inline-size:228px;inset:unset;padding:var(--pine-dimension-100);z-index:var(--pine-z-index-overlay);}.pds-filter__popover:popover-open,.pds-filter__popover.is-open{display:block}@supports (anchor-name: --test){.pds-filter__popover{inset-block-start:calc(anchor(--filter-trigger bottom) + var(--pine-dimension-100));inset-inline-start:anchor(--filter-trigger left);position:fixed;position-anchor:--filter-trigger;}.pds-filter__popover.popover-flip-horizontal{inset-inline-start:anchor(--filter-trigger right);-webkit-transform:translateX(-100%);transform:translateX(-100%)}.pds-filter__popover.popover-flip-vertical{inset-block-start:anchor(--filter-trigger top);-webkit-transform:translateY(calc(-100% - var(--pine-dimension-100)));transform:translateY(calc(-100% - var(--pine-dimension-100)))}.pds-filter__popover.popover-flip-horizontal.popover-flip-vertical{inset-block-start:anchor(--filter-trigger top);inset-inline-start:anchor(--filter-trigger right);-webkit-transform:translate(-100%, calc(-100% - var(--pine-dimension-100)));transform:translate(-100%, calc(-100% - var(--pine-dimension-100)))}.pds-filter__popover.is-open.popover-flip-horizontal{inset-inline-start:anchor(--filter-trigger right);-webkit-transform:translateX(-100%);transform:translateX(-100%)}.pds-filter__popover.is-open.popover-flip-vertical{inset-block-start:anchor(--filter-trigger top);-webkit-transform:translateY(calc(-100% - var(--pine-dimension-100)));transform:translateY(calc(-100% - var(--pine-dimension-100)))}.pds-filter__popover.is-open.popover-flip-horizontal.popover-flip-vertical{inset-block-start:anchor(--filter-trigger top);inset-inline-start:anchor(--filter-trigger right);-webkit-transform:translate(-100%, calc(-100% - var(--pine-dimension-100)));transform:translate(-100%, calc(-100% - var(--pine-dimension-100)))}}";
9263
+ const pdsFilterCss = ":host{--box-shadow-focus:0 0 0 1px var(--pine-color-background-container), 0 0 0 3px var(--pine-color-focus-ring);display:inline-block;position:relative}.pds-filter__trigger{-ms-flex-align:center;align-items:center;anchor-name:--filter-trigger;background:var(--pine-color-background-container);border:var(--pine-border);border-radius:var(--pine-dimension-100);-webkit-box-shadow:var(--pine-box-shadow-050);box-shadow:var(--pine-box-shadow-050);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pine-color-text-tertiary);cursor:pointer;display:-ms-inline-flexbox;display:inline-flex;font-family:var(--pine-font-family-inter);font-size:var(--pine-font-size-100);font-weight:var(--pine-font-weight-400);gap:var(--pine-dimension-050);letter-spacing:var(--pine-letter-spacing-114);line-height:var(--pine-line-height-150);padding:var(--pine-dimension-025) var(--pine-dimension-125);position:relative;-webkit-transition:all 0.2s ease;transition:all 0.2s ease}.pds-filter__trigger pds-icon{block-size:var(--pine-font-size-100);color:var(--pine-color-text-secondary);-ms-flex-negative:0;flex-shrink:0;inline-size:var(--pine-font-size-100)}.pds-filter__trigger:hover,.pds-filter__trigger.pds-filter__trigger--open{background-color:var(--pine-color-background-subtle);border-color:var(--pine-color-border-hover);color:var(--pine-color-text-hover)}.pds-filter__trigger:hover pds-icon,.pds-filter__trigger.pds-filter__trigger--open pds-icon{color:var(--pine-color-text-secondary)}.pds-filter__trigger:focus-visible{-webkit-box-shadow:var(--box-shadow-focus);box-shadow:var(--box-shadow-focus);outline:none}.pds-filter__trigger:disabled{cursor:not-allowed;opacity:0.5}.pds-filter__trigger--selected{background-color:var(--pine-color-purple-050);border-color:var(--pine-color-purple-500);color:var(--pine-color-purple-600)}.pds-filter__trigger--selected pds-icon{color:var(--pine-color-purple-600)}.pds-filter__trigger--selected:hover,.pds-filter__trigger--selected.pds-filter__trigger--open{background-color:var(--pine-color-purple-100);border-color:var(--pine-color-purple-500);color:var(--pine-color-purple-600)}.pds-filter__trigger--selected:hover pds-icon,.pds-filter__trigger--selected.pds-filter__trigger--open pds-icon{color:var(--pine-color-purple-600)}.pds-filter__trigger--selected:focus-visible{-webkit-box-shadow:var(--box-shadow-focus);box-shadow:var(--box-shadow-focus);outline:none}.pds-filter__trigger--more{background-color:var(--pine-color-background-container-hover);border:var(--pine-border-width-thin) dashed var(--pine-color-border);color:var(--pine-color-text-tertiary)}.pds-filter__trigger--more pds-icon{color:var(--pine-color-text-secondary)}.pds-filter__trigger--more:hover,.pds-filter__trigger--more.pds-filter__trigger--open{background-color:var(--pine-color-background-subtle);border-color:var(--pine-color-border-hover);color:var(--pine-color-text-hover)}.pds-filter__trigger--more:hover pds-icon,.pds-filter__trigger--more.pds-filter__trigger--open pds-icon{color:var(--pine-color-text-secondary)}.pds-filter__trigger--more:focus-visible{-webkit-box-shadow:var(--box-shadow-focus);box-shadow:var(--box-shadow-focus);outline:none}.pds-filter__trigger--clear{background:transparent;border:var(--pine-border-width-thin) solid transparent;border-radius:var(--pine-dimension-100);-webkit-box-shadow:none;box-shadow:none;color:var(--pine-color-purple-600)}.pds-filter__trigger--clear pds-icon{color:var(--pine-color-purple-600)}.pds-filter__trigger--clear:hover{background-color:var(--pine-color-purple-100);border-color:var(--pine-color-purple-100);color:var(--pine-color-purple-600)}.pds-filter__trigger--clear:hover pds-icon{color:var(--pine-color-purple-600)}.pds-filter__trigger--clear:focus-visible{-webkit-box-shadow:var(--box-shadow-focus);box-shadow:var(--box-shadow-focus);outline:none}.pds-filter__button-content{-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex;gap:var(--pine-dimension-050);max-inline-size:148px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pds-filter__button-text{line-height:var(--pine-line-height-150);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pds-filter__dropdown-icon{block-size:var(--pine-dimension-200);-ms-flex-negative:0;flex-shrink:0;inline-size:var(--pine-dimension-200)}.pds-filter__popover{background-color:var(--pine-color-background-container);border:0;border-radius:var(--pine-dimension-100);-webkit-box-shadow:var(--pine-box-shadow-100);box-shadow:var(--pine-box-shadow-100);display:none;inline-size:228px;inset:unset;padding:var(--pine-dimension-100);z-index:var(--pine-z-index-overlay);}.pds-filter__popover:popover-open,.pds-filter__popover.is-open{display:block}.pds-filter__popover{}@supports (anchor-name: --test){.pds-filter__popover{inset-block-start:calc(anchor(--filter-trigger bottom) + var(--pine-dimension-100));inset-inline-start:anchor(--filter-trigger left);position:fixed;position-anchor:--filter-trigger;}.pds-filter__popover.popover-flip-horizontal{inset-inline-start:anchor(--filter-trigger right);-webkit-transform:translateX(-100%);transform:translateX(-100%)}.pds-filter__popover.popover-flip-vertical{inset-block-start:anchor(--filter-trigger top);-webkit-transform:translateY(calc(-100% - var(--pine-dimension-100)));transform:translateY(calc(-100% - var(--pine-dimension-100)))}.pds-filter__popover.popover-flip-horizontal.popover-flip-vertical{inset-block-start:anchor(--filter-trigger top);inset-inline-start:anchor(--filter-trigger right);-webkit-transform:translate(-100%, calc(-100% - var(--pine-dimension-100)));transform:translate(-100%, calc(-100% - var(--pine-dimension-100)))}.pds-filter__popover{}.pds-filter__popover.is-open.popover-flip-horizontal{inset-inline-start:anchor(--filter-trigger right);-webkit-transform:translateX(-100%);transform:translateX(-100%)}.pds-filter__popover.is-open.popover-flip-vertical{inset-block-start:anchor(--filter-trigger top);-webkit-transform:translateY(calc(-100% - var(--pine-dimension-100)));transform:translateY(calc(-100% - var(--pine-dimension-100)))}.pds-filter__popover.is-open.popover-flip-horizontal.popover-flip-vertical{inset-block-start:anchor(--filter-trigger top);inset-inline-start:anchor(--filter-trigger right);-webkit-transform:translate(-100%, calc(-100% - var(--pine-dimension-100)));transform:translate(-100%, calc(-100% - var(--pine-dimension-100)))}}";
9089
9264
 
9090
9265
  /**
9091
9266
  * Individual filter component with cross-browser popover positioning.
@@ -10095,7 +10270,7 @@ const pdsInputTokensCss$1 = ":host{--pine-input-color-background-danger:var(--pi
10095
10270
 
10096
10271
  const labelCss$4 = ":host{display:inline-block}:host([aria-disabled=true]) label{color:var(--pine-color-text-label-disabled)}:host([aria-readonly=true]) label{color:var(--pine-color-text-label-readonly)}label{color:var(--pine-color-text-label);font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing)}";
10097
10272
 
10098
- const pdsInputCss = ":host{--pds-input-background:var(--pine-color-background-container);--pds-input-border-color:var(--pine-color-border);--pds-input-border-color-hover:var(--pine-color-border-hover);--pds-input-border-color-disabled:var(--pine-color-border-disabled);--pds-input-border-radius:var(--pine-dimension-125);--pds-input-border-width:var(--pine-border-width-thin);--pds-input-padding-x:var(--pine-dimension-150);--pds-input-padding-y:calc(var(--pine-dimension-xs) - var(--pine-border-width));--pds-input-font:var(--pine-typography-body);--pds-input-text-color:var(--pine-color-text-strong);--pds-input-placeholder-color:var(--pine-color-text-placeholder);--pds-input-icon-color:var(--pine-color-text-secondary);--pds-input-disabled-background:var(--pine-color-background-container-disabled);--pds-input-disabled-text-color:var(--pine-color-text-disabled);--pds-input-error-color:var(--pine-color-text-message-danger);--pds-input-error-background:var(--pine-input-color-background-danger);--pds-input-error-border:var(--pine-color-border-danger);--pds-input-error-border-hover:var(--pine-color-border-danger-hover);--pds-input-addon-background:var(--pine-color-background-subtle);--pds-input-addon-color:var(--pine-color-text-secondary);--pds-input-field-min-height:var(--pine-dimension-450);--box-shadow-focus:0 0 0 1px #ffffff, 0 0 0 3px var(--pine-color-focus-ring);--box-shadow-focus-error:0 0 0 1px #ffffff, 0 0 0 3px var(--pine-color-focus-ring-danger);display:inline}:host pds-select::part(select){background-color:var(--pds-input-error-background);border-color:var(--pds-input-error-border)}:host::part(prefix),:host::part(suffix){-ms-flex-align:center;align-items:center;color:var(--pine-color-text-label-readonly);display:-ms-flexbox;display:flex;height:100%;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);white-space:nowrap;z-index:var(--pine-z-index-raised)}:host::part(prefix){border-end-start-radius:var(--pds-input-border-radius);-webkit-border-end:var(--pine-border-width-none);border-inline-end:var(--pine-border-width-none);border-start-start-radius:var(--pds-input-border-radius);left:var(--pds-input-padding-x)}:host::part(suffix){border-end-end-radius:var(--pds-input-border-radius);-webkit-border-start:var(--pine-border-width-none);border-inline-start:var(--pine-border-width-none);border-start-end-radius:var(--pds-input-border-radius);right:var(--pds-input-padding-x)}:host::part(prepend),:host::part(append){-ms-flex-align:center;align-items:center;background-color:var(--pds-input-addon-background);border:var(--pds-input-border-width) solid var(--pds-input-border-color);color:var(--pds-input-addon-color);display:-ms-flexbox;display:flex;overflow:visible}:host::part(prepend){border-end-start-radius:var(--pds-input-border-radius);-webkit-border-end:var(--pine-border-width-none);border-inline-end:var(--pine-border-width-none);border-start-start-radius:var(--pds-input-border-radius)}:host::part(append){border-end-end-radius:var(--pds-input-border-radius);-webkit-border-start:var(--pine-border-width-none);border-inline-start:var(--pine-border-width-none);border-start-end-radius:var(--pds-input-border-radius)}:host([has-prepend]) ::slotted(pds-button[slot=prepend]){--pds-button-background:var(--pds-input-addon-background);--pds-button-border:var(--pine-border-width-none);--pds-button-border-radius:var(--pine-dimension-none);--pds-button-border-radius-end-end:var(--pine-dimension-none);--pds-button-border-radius-start-end:var(--pine-dimension-none);--pds-button-border-radius-start-start:var(--pds-input-border-radius);--pds-button-border-radius-end-start:var(--pds-input-border-radius);--pds-button-min-height:calc(var(--pine-dimension-450) - calc(2 * var(--pine-border-width)));--pds-button-box-shadow-focus:0 0 0 3px var(--pine-color-focus-ring);--pds-button-outline-focus:none}:host([has-append]) ::slotted(pds-button[slot=append]){--pds-button-background:var(--pds-input-addon-background);--pds-button-border:var(--pine-border-width-none);--pds-button-border-radius:var(--pine-dimension-none);--pds-button-border-radius-end-start:var(--pine-dimension-none);--pds-button-border-radius-start-start:var(--pine-dimension-none);--pds-button-border-radius-start-end:var(--pds-input-border-radius);--pds-button-border-radius-end-end:var(--pds-input-border-radius);--pds-button-min-height:calc(var(--pine-dimension-450) - calc(2 * var(--pine-border-width)));--pds-button-box-shadow-focus:0 0 0 3px var(--pine-color-focus-ring);--pds-button-outline-focus:none}:host([has-prepend]) ::slotted(pds-select[slot=prepend]){--pds-select-background:var(--pds-input-addon-background);--pds-select-border:var(--pine-border-width-none);--pds-select-border-radius-end-end:var(--pine-dimension-none);--pds-select-border-radius-start-end:var(--pine-dimension-none);--pds-select-min-height:calc(var(--pine-dimension-450) - calc(2 * var(--pine-border-width)))}:host([has-append]) ::slotted(pds-select[slot=append]){--pds-select-background:var(--pds-input-addon-background);--pds-select-border:var(--pine-border-width-none);--pds-select-border-radius-end-start:var(--pine-dimension-none);--pds-select-border-radius-start-start:var(--pine-dimension-none);--pds-select-min-height:calc(var(--pine-dimension-450) - calc(2 * var(--pine-border-width)))}:host([aria-readonly=true]) input{background-color:var(--pine-color-background-container-disabled);color:var(--pine-color-text-readonly)}:host([disabled=true])::part(prepend),:host([disabled=true])::part(append){background-color:var(--pds-input-disabled-background);border:var(--pds-input-border-width) solid var(--pds-input-border-color-disabled)}:host([full-width=true]){width:100%}:host([invalid=true])::part(prepend),:host([invalid=true])::part(append){background-color:var(--pds-input-error-background);border:var(--pds-input-border-width) solid var(--pds-input-error-border)}:host([highlight]:not([disabled]):not([aria-disabled=true]):not([invalid]):not([aria-readonly=true])){--pds-input-background:var(--pine-color-accent-disabled);--pds-input-border-color:var(--pine-color-accent);--pds-input-border-color-hover:var(--pine-color-accent-hover);--pds-input-text-color:var(--pine-color-text-accent)}:host([highlight]:not([disabled]):not([aria-disabled=true]):not([invalid]):not([aria-readonly=true]))::part(prefix),:host([highlight]:not([disabled]):not([aria-disabled=true]):not([invalid]):not([aria-readonly=true]))::part(suffix){color:var(--pine-color-text-accent)}:host([highlight]:not([disabled]):not([aria-disabled=true]):not([invalid]):not([aria-readonly=true])) .pds-input__field:focus-visible{outline-color:var(--pine-color-focus-ring)}.pds-input{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.pds-input__label-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}.pds-input__label{color:var(--pine-color-text-strong);-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}.pds-input__label-wrapper .pds-input__label{-webkit-margin-after:0;margin-block-end:0}.pds-input__action{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs);-webkit-margin-start:var(--pine-dimension-xs);margin-inline-start:var(--pine-dimension-xs)}.pds-input__field-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;position:relative;width:100%}.pds-input__field-wrapper.has-prefix .pds-input__field{-webkit-padding-start:calc(2 * var(--pds-input-padding-x) + var(--prefix-width, 1em));padding-inline-start:calc(2 * var(--pds-input-padding-x) + var(--prefix-width, 1em))}.pds-input__field-wrapper.has-suffix .pds-input__field{-webkit-padding-end:calc(2 * var(--pds-input-padding-x) + var(--suffix-width, 1em));padding-inline-end:calc(2 * var(--pds-input-padding-x) + var(--suffix-width, 1em))}.pds-input__field-wrapper.has-prepend .pds-input__field{border-end-start-radius:var(--pine-dimension-none);border-start-start-radius:var(--pine-dimension-none)}.pds-input__field-wrapper.has-append .pds-input__field{border-end-end-radius:var(--pine-dimension-none);border-start-end-radius:var(--pine-dimension-none)}.pds-input__field{background:var(--pds-input-background);border:var(--pds-input-border-width) solid var(--pds-input-border-color);border-radius:var(--pds-input-border-radius);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pds-input-text-color);-ms-flex:1;flex:1;font:var(--pds-input-font);letter-spacing:var(--pine-letter-spacing);min-height:var(--pds-input-field-min-height);min-width:var(--pine-dimension-none);padding:var(--pds-input-padding-y) var(--pds-input-padding-x);-webkit-transition:border-color 0.2s ease;transition:border-color 0.2s ease;width:100%}.pds-input__field:hover:not(:disabled){border-color:var(--pds-input-border-color-hover)}.pds-input__field:disabled{background:var(--pds-input-disabled-background);border-color:var(--pine-color-border-disabled);color:var(--pds-input-disabled-text-color);cursor:not-allowed}.pds-input__field:disabled::-webkit-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-input__field:disabled::-moz-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-input__field:disabled:-ms-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-input__field:disabled::-ms-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-input__field:disabled::placeholder{color:var(--pine-color-text-placeholder-disabled)}.has-error .pds-input__field:hover:not(:disabled){border-color:var(--pds-input-error-border-hover)}:host-context([data-theme=dark]) .has-error .pds-input__field:hover:not(:disabled){border-color:var(--pine-color-red-950)}.pds-input__field:focus-visible:not(.has-error){border-color:var(--pine-color-border-active);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width);position:relative;z-index:1}:host([has-prepend]) .pds-input__field:focus-visible:not(.has-error),:host([has-append]) .pds-input__field:focus-visible:not(.has-error),:host([has-prefix]) .pds-input__field:focus-visible:not(.has-error),:host([has-suffix]) .pds-input__field:focus-visible:not(.has-error){outline-offset:var(--pine-dimension-none)}.pds-input__field::-webkit-input-placeholder{color:var(--pds-input-placeholder-color)}.pds-input__field::-moz-placeholder{color:var(--pds-input-placeholder-color)}.pds-input__field:-ms-input-placeholder{color:var(--pds-input-placeholder-color)}.pds-input__field::-ms-input-placeholder{color:var(--pds-input-placeholder-color)}.pds-input__field::placeholder{color:var(--pds-input-placeholder-color)}.has-error .pds-input__field{background-color:var(--pds-input-error-background);border-color:var(--pds-input-error-border)}:host-context([data-theme=dark]) .has-error .pds-input__field{background-color:var(--pine-color-red-950)}.has-error .pds-input__field:focus-visible{outline-color:var(--pine-color-focus-ring-danger);position:relative;z-index:1}.pds-input__error-message,.pds-input__helper-message{color:var(--pine-color-text-message);font:var(--pine-typography-body-sm-medium);-webkit-margin-after:var(--pine-dimension-none);margin-block-end:var(--pine-dimension-none);-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs)}.pds-input__error-message{color:var(--pds-input-error-color);display:-ms-flexbox;display:flex;gap:var(--pine-dimension-2xs)}.pds-input__error-message pds-icon{-webkit-margin-before:var(--pine-dimension-025);margin-block-start:var(--pine-dimension-025)}.visually-hidden{border:0;clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}";
10273
+ const pdsInputCss = ":host{--pds-input-background:var(--pine-color-background-container);--pds-input-border-color:var(--pine-color-border);--pds-input-border-color-hover:var(--pine-color-border-hover);--pds-input-border-color-disabled:var(--pine-color-border-disabled);--pds-input-border-radius:var(--pine-dimension-125);--pds-input-border-width:var(--pine-border-width-thin);--pds-input-padding-x:var(--pine-dimension-150);--pds-input-padding-y:calc(var(--pine-dimension-xs) - var(--pine-border-width));--pds-input-font:var(--pine-typography-body);--pds-input-text-color:var(--pine-color-text-strong);--pds-input-placeholder-color:var(--pine-color-text-placeholder);--pds-input-icon-color:var(--pine-color-text-secondary);--pds-input-disabled-background:var(--pine-color-background-container-disabled);--pds-input-disabled-text-color:var(--pine-color-text-disabled);--pds-input-error-color:var(--pine-color-text-message-danger);--pds-input-error-background:var(--pine-input-color-background-danger);--pds-input-error-border:var(--pine-color-border-danger);--pds-input-error-border-hover:var(--pine-color-border-danger-hover);--pds-input-addon-background:var(--pine-color-background-subtle);--pds-input-addon-color:var(--pine-color-text-secondary);--pds-input-field-min-height:var(--pine-dimension-450);--box-shadow-focus:0 0 0 1px var(--pine-color-background-container), 0 0 0 3px var(--pine-color-focus-ring);--box-shadow-focus-error:0 0 0 1px var(--pine-color-background-container), 0 0 0 3px var(--pine-color-focus-ring-danger);display:inline}:host pds-select::part(select){background-color:var(--pds-input-error-background);border-color:var(--pds-input-error-border)}:host::part(prefix),:host::part(suffix){-ms-flex-align:center;align-items:center;color:var(--pine-color-text-label-readonly);display:-ms-flexbox;display:flex;height:100%;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);white-space:nowrap;z-index:var(--pine-z-index-raised)}:host::part(prefix){border-end-start-radius:var(--pds-input-border-radius);-webkit-border-end:var(--pine-border-width-none);border-inline-end:var(--pine-border-width-none);border-start-start-radius:var(--pds-input-border-radius);left:var(--pds-input-padding-x)}:host::part(suffix){border-end-end-radius:var(--pds-input-border-radius);-webkit-border-start:var(--pine-border-width-none);border-inline-start:var(--pine-border-width-none);border-start-end-radius:var(--pds-input-border-radius);right:var(--pds-input-padding-x)}:host::part(prepend),:host::part(append){-ms-flex-align:center;align-items:center;background-color:var(--pds-input-addon-background);border:var(--pds-input-border-width) solid var(--pds-input-border-color);color:var(--pds-input-addon-color);display:-ms-flexbox;display:flex;overflow:visible}:host::part(prepend){border-end-start-radius:var(--pds-input-border-radius);-webkit-border-end:var(--pine-border-width-none);border-inline-end:var(--pine-border-width-none);border-start-start-radius:var(--pds-input-border-radius)}:host::part(append){border-end-end-radius:var(--pds-input-border-radius);-webkit-border-start:var(--pine-border-width-none);border-inline-start:var(--pine-border-width-none);border-start-end-radius:var(--pds-input-border-radius)}:host([has-prepend]) ::slotted(pds-button[slot=prepend]){--pds-button-background:var(--pds-input-addon-background);--pds-button-border:var(--pine-border-width-none);--pds-button-border-radius:var(--pine-dimension-none);--pds-button-border-radius-end-end:var(--pine-dimension-none);--pds-button-border-radius-start-end:var(--pine-dimension-none);--pds-button-border-radius-start-start:var(--pds-input-border-radius);--pds-button-border-radius-end-start:var(--pds-input-border-radius);--pds-button-min-height:calc(var(--pine-dimension-450) - calc(2 * var(--pine-border-width)));--pds-button-box-shadow-focus:0 0 0 3px var(--pine-color-focus-ring);--pds-button-outline-focus:none}:host([has-append]) ::slotted(pds-button[slot=append]){--pds-button-background:var(--pds-input-addon-background);--pds-button-border:var(--pine-border-width-none);--pds-button-border-radius:var(--pine-dimension-none);--pds-button-border-radius-end-start:var(--pine-dimension-none);--pds-button-border-radius-start-start:var(--pine-dimension-none);--pds-button-border-radius-start-end:var(--pds-input-border-radius);--pds-button-border-radius-end-end:var(--pds-input-border-radius);--pds-button-min-height:calc(var(--pine-dimension-450) - calc(2 * var(--pine-border-width)));--pds-button-box-shadow-focus:0 0 0 3px var(--pine-color-focus-ring);--pds-button-outline-focus:none}:host([has-prepend]) ::slotted(pds-select[slot=prepend]){--pds-select-background:var(--pds-input-addon-background);--pds-select-border:var(--pine-border-width-none);--pds-select-border-radius-end-end:var(--pine-dimension-none);--pds-select-border-radius-start-end:var(--pine-dimension-none);--pds-select-min-height:calc(var(--pine-dimension-450) - calc(2 * var(--pine-border-width)))}:host([has-append]) ::slotted(pds-select[slot=append]){--pds-select-background:var(--pds-input-addon-background);--pds-select-border:var(--pine-border-width-none);--pds-select-border-radius-end-start:var(--pine-dimension-none);--pds-select-border-radius-start-start:var(--pine-dimension-none);--pds-select-min-height:calc(var(--pine-dimension-450) - calc(2 * var(--pine-border-width)))}:host([aria-readonly=true]) input{background-color:var(--pine-color-background-container-disabled);color:var(--pine-color-text-readonly)}:host([disabled=true])::part(prepend),:host([disabled=true])::part(append){background-color:var(--pds-input-disabled-background);border:var(--pds-input-border-width) solid var(--pds-input-border-color-disabled)}:host([full-width=true]){width:100%}:host([invalid=true])::part(prepend),:host([invalid=true])::part(append){background-color:var(--pds-input-error-background);border:var(--pds-input-border-width) solid var(--pds-input-error-border)}:host([highlight]:not([disabled]):not([aria-disabled=true]):not([invalid]):not([aria-readonly=true])){--pds-input-background:var(--pine-color-accent-disabled);--pds-input-border-color:var(--pine-color-accent);--pds-input-border-color-hover:var(--pine-color-accent-hover);--pds-input-text-color:var(--pine-color-text-accent)}:host([highlight]:not([disabled]):not([aria-disabled=true]):not([invalid]):not([aria-readonly=true]))::part(prefix),:host([highlight]:not([disabled]):not([aria-disabled=true]):not([invalid]):not([aria-readonly=true]))::part(suffix){color:var(--pine-color-text-accent)}:host([highlight]:not([disabled]):not([aria-disabled=true]):not([invalid]):not([aria-readonly=true])) .pds-input__field:focus-visible{outline-color:var(--pine-color-focus-ring)}.pds-input{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.pds-input__label-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}.pds-input__label{color:var(--pine-color-text-strong);-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}.pds-input__label-wrapper .pds-input__label{-webkit-margin-after:0;margin-block-end:0}.pds-input__action{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs);-webkit-margin-start:var(--pine-dimension-xs);margin-inline-start:var(--pine-dimension-xs)}.pds-input__field-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;position:relative;width:100%}.pds-input__field-wrapper.has-prefix .pds-input__field{-webkit-padding-start:calc(2 * var(--pds-input-padding-x) + var(--prefix-width, 1em));padding-inline-start:calc(2 * var(--pds-input-padding-x) + var(--prefix-width, 1em))}.pds-input__field-wrapper.has-suffix .pds-input__field{-webkit-padding-end:calc(2 * var(--pds-input-padding-x) + var(--suffix-width, 1em));padding-inline-end:calc(2 * var(--pds-input-padding-x) + var(--suffix-width, 1em))}.pds-input__field-wrapper.has-prepend .pds-input__field{border-end-start-radius:var(--pine-dimension-none);border-start-start-radius:var(--pine-dimension-none)}.pds-input__field-wrapper.has-append .pds-input__field{border-end-end-radius:var(--pine-dimension-none);border-start-end-radius:var(--pine-dimension-none)}.pds-input__field{background:var(--pds-input-background);border:var(--pds-input-border-width) solid var(--pds-input-border-color);border-radius:var(--pds-input-border-radius);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pds-input-text-color);-ms-flex:1;flex:1;font:var(--pds-input-font);letter-spacing:var(--pine-letter-spacing);min-height:var(--pds-input-field-min-height);min-width:var(--pine-dimension-none);padding:var(--pds-input-padding-y) var(--pds-input-padding-x);-webkit-transition:border-color 0.2s ease;transition:border-color 0.2s ease;width:100%}.pds-input__field:hover:not(:disabled){border-color:var(--pds-input-border-color-hover)}.pds-input__field:disabled{background:var(--pds-input-disabled-background);border-color:var(--pine-color-border-disabled);color:var(--pds-input-disabled-text-color);cursor:not-allowed}.pds-input__field:disabled::-webkit-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-input__field:disabled::-moz-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-input__field:disabled:-ms-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-input__field:disabled::-ms-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-input__field:disabled::placeholder{color:var(--pine-color-text-placeholder-disabled)}.has-error .pds-input__field:hover:not(:disabled){border-color:var(--pds-input-error-border-hover)}:host-context([data-theme=dark]) .has-error .pds-input__field:hover:not(:disabled){border-color:var(--pine-color-red-950)}.pds-input__field:focus-visible:not(.has-error){border-color:var(--pine-color-border-active);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width);position:relative;z-index:1}:host([has-prepend]) .pds-input__field:focus-visible:not(.has-error),:host([has-append]) .pds-input__field:focus-visible:not(.has-error),:host([has-prefix]) .pds-input__field:focus-visible:not(.has-error),:host([has-suffix]) .pds-input__field:focus-visible:not(.has-error){outline-offset:var(--pine-dimension-none)}.pds-input__field::-webkit-input-placeholder{color:var(--pds-input-placeholder-color)}.pds-input__field::-moz-placeholder{color:var(--pds-input-placeholder-color)}.pds-input__field:-ms-input-placeholder{color:var(--pds-input-placeholder-color)}.pds-input__field::-ms-input-placeholder{color:var(--pds-input-placeholder-color)}.pds-input__field::placeholder{color:var(--pds-input-placeholder-color)}.has-error .pds-input__field{background-color:var(--pds-input-error-background);border-color:var(--pds-input-error-border)}:host-context([data-theme=dark]) .has-error .pds-input__field{background-color:var(--pine-color-red-950)}.has-error .pds-input__field:focus-visible{outline-color:var(--pine-color-focus-ring-danger);position:relative;z-index:1}.pds-input__error-message,.pds-input__helper-message{color:var(--pine-color-text-message);font:var(--pine-typography-body-sm-medium);-webkit-margin-after:var(--pine-dimension-none);margin-block-end:var(--pine-dimension-none);-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs)}.pds-input__error-message{color:var(--pds-input-error-color);display:-ms-flexbox;display:flex;gap:var(--pine-dimension-2xs)}.pds-input__error-message pds-icon{-webkit-margin-before:var(--pine-dimension-025);margin-block-start:var(--pine-dimension-025)}.visually-hidden{border:0;clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}";
10099
10274
 
10100
10275
  /**
10101
10276
  * @slot append - Content to be displayed after the input field
@@ -10111,6 +10286,7 @@ class PdsInput {
10111
10286
  this.pdsChange = createEvent(this, "pdsChange");
10112
10287
  this.pdsFocus = createEvent(this, "pdsFocus");
10113
10288
  this.pdsInput = createEvent(this, "pdsInput");
10289
+ this.pdsKeyDown = createEvent(this, "pdsKeyDown");
10114
10290
  this.inheritedAttributes = {};
10115
10291
  this.isComposing = false;
10116
10292
  /**
@@ -10179,6 +10355,9 @@ class PdsInput {
10179
10355
  this.onCompositionEnd = () => {
10180
10356
  this.isComposing = false;
10181
10357
  };
10358
+ this.onKeyDownEvent = (ev) => {
10359
+ this.pdsKeyDown.emit(ev);
10360
+ };
10182
10361
  }
10183
10362
  /**
10184
10363
  * Sets focus on the native `input` in the `pds-input`. Use this method instead of the global
@@ -10353,7 +10532,7 @@ class PdsInput {
10353
10532
  'has-prepend': this.hasPrepend,
10354
10533
  'has-append': this.hasAppend,
10355
10534
  };
10356
- return (hAsync(Host, { key: '0d467b2414d99894effb67209c034f6623f9776b', "aria-disabled": this.disabled ? 'true' : null, "aria-readonly": this.readonly ? 'true' : null, "has-prefix": this.hasPrefix ? 'true' : null, "has-suffix": this.hasSuffix ? 'true' : null, "has-prepend": this.hasPrepend ? 'true' : null, "has-append": this.hasAppend ? 'true' : null, "has-action": this.hasAction && !this.hideLabel ? 'true' : null, "full-width": this.fullWidth ? 'true' : null }, hAsync("div", { key: '8d16365611e4831c18e1b86900f7c122562cd846', class: "pds-input" }, label && (hAsync("div", { key: '8855edd2da8d1f684fd67f901a159fb6d3db58d9', class: "pds-input__label-wrapper" }, hAsync("label", { key: 'c761a6f511d01b24f177eff1db27dd96cea2b939', htmlFor: componentId, class: "pds-input__label" }, hAsync("span", { key: 'e3f8f7e71c7e49b138b3b10c07efa2a90a7de22e', class: this.hideLabel ? 'visually-hidden' : '' }, label, this.required && hAsync("span", { key: '94e0d362bdf53a7d8e5efb0b3b1f0ba8b9588a74', class: "pds-input__required-indicator" }, " *"))), !this.hideLabel && this.renderAction())), hAsync("div", { key: '3625024f654df87566cd76521d5fd6e1fda7004e', class: inputWrapperClasses }, this.renderPrepend(), this.renderPrefix(), hAsync("input", Object.assign({ key: '271e4fd1004c65c8463a4508324f45d341c36414', ref: (input) => (this.nativeInput = input), class: "pds-input__field", "aria-describedby": assignDescription(componentId, invalid, helperMessage), "aria-invalid": invalid ? "true" : undefined, autocomplete: this.autocomplete, disabled: disabled, id: componentId, max: this.max, maxlength: this.maxlength, min: this.min, minlength: this.minlength, name: this.name, pattern: this.pattern, placeholder: this.placeholder, readOnly: this.readonly, required: this.required, step: this.step, type: this.type, value: value, onInput: this.onInputEvent, onChange: this.onChangeEvent, onBlur: this.onBlurEvent, onFocus: this.onFocusEvent, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd }, this.inheritedAttributes)), this.renderSuffix(), this.renderAppend()), helperMessage && (hAsync("p", { key: '64e2efb4ed95507d9bcf54c3616780af58c05675', class: "pds-input__helper-message", id: messageId(componentId, 'helper') }, helperMessage)), errorMessage && (hAsync("p", { key: '3ab683996ffa0331a108e028979b172078b4c6ef', class: "pds-input__error-message", id: messageId(componentId, 'error') }, hAsync("pds-icon", { key: 'c8b357bd7757ae50d665928b9130b14128860721', icon: danger, size: "small" }), errorMessage)))));
10535
+ return (hAsync(Host, { key: 'fcc0801e5ac89d7b5c7e38a8a70734db502f6d91', "aria-disabled": this.disabled ? 'true' : null, "aria-readonly": this.readonly ? 'true' : null, "has-prefix": this.hasPrefix ? 'true' : null, "has-suffix": this.hasSuffix ? 'true' : null, "has-prepend": this.hasPrepend ? 'true' : null, "has-append": this.hasAppend ? 'true' : null, "has-action": this.hasAction && !this.hideLabel ? 'true' : null, "full-width": this.fullWidth ? 'true' : null }, hAsync("div", { key: '076fb06ace92f171376e8f32ded2224ae56c52c7', class: "pds-input" }, label && (hAsync("div", { key: '506ef1a3521611459feb42cf4f8be7605fa068f2', class: "pds-input__label-wrapper" }, hAsync("label", { key: '91f6ecbfda932e6e67861c3e6c012b0b6341b5d1', htmlFor: componentId, class: "pds-input__label" }, hAsync("span", { key: 'ca869e6bb2177a0e182205b39f0e0c77178518f6', class: this.hideLabel ? 'visually-hidden' : '' }, label, this.required && hAsync("span", { key: 'b73467056eb402e769a3aa693f224f5650a4a905', class: "pds-input__required-indicator" }, " *"))), !this.hideLabel && this.renderAction())), hAsync("div", { key: 'a708d73a39a69ff42bc2dc25bfaaadfe143aa757', class: inputWrapperClasses }, this.renderPrepend(), this.renderPrefix(), hAsync("input", Object.assign({ key: '35e3bccf2a1ad4360d5faaf46a47f6f96149963f', ref: (input) => (this.nativeInput = input), class: "pds-input__field", "aria-describedby": assignDescription(componentId, invalid, helperMessage), "aria-invalid": invalid ? "true" : undefined, autocomplete: this.autocomplete, disabled: disabled, id: componentId, max: this.max, maxlength: this.maxlength, min: this.min, minlength: this.minlength, name: this.name, pattern: this.pattern, placeholder: this.placeholder, readOnly: this.readonly, required: this.required, step: this.step, type: this.type, value: value, onInput: this.onInputEvent, onChange: this.onChangeEvent, onBlur: this.onBlurEvent, onFocus: this.onFocusEvent, onKeyDown: this.onKeyDownEvent, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd }, this.inheritedAttributes)), this.renderSuffix(), this.renderAppend()), helperMessage && (hAsync("p", { key: '25e5765269ca8715cb5bebd544d6dd9b35e11d0f', class: "pds-input__helper-message", id: messageId(componentId, 'helper') }, helperMessage)), errorMessage && (hAsync("p", { key: 'c9f9f94b8ff6662ed4219c0b18289791af16dd59', class: "pds-input__error-message", id: messageId(componentId, 'error') }, hAsync("pds-icon", { key: '8e0ef62d5aa030b4d56428f84fedc93b0de1f84a', icon: danger, size: "small" }), errorMessage)))));
10357
10536
  }
10358
10537
  static get formAssociated() { return true; }
10359
10538
  get el() { return getElement(this); }
@@ -11048,6 +11227,632 @@ class PdsModalHeader {
11048
11227
  }; }
11049
11228
  }
11050
11229
 
11230
+ const pdsMultiselectCss = ":host{display:block}:host([aria-disabled=true]) .pds-multiselect__trigger{background:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-disabled);cursor:not-allowed}:host([aria-disabled=true]) .pds-multiselect__icon{color:var(--pine-color-text-disabled)}.pds-multiselect{position:relative}.pds-multiselect__label{color:var(--pine-color-text-label);display:block;font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing);-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}.pds-multiselect__wrapper{position:relative}.pds-multiselect__trigger{-ms-flex-align:center;align-items:center;background:var(--pine-color-background-container);border:var(--pine-border);border-radius:var(--pine-dimension-125);cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body);gap:var(--pine-dimension-xs);-ms-flex-pack:justify;justify-content:space-between;letter-spacing:var(--pine-letter-spacing);min-height:var(--pine-dimension-550);padding:var(--pine-dimension-xs) var(--pine-dimension-sm);position:relative;text-align:start;-webkit-transition:border-color 0.2s ease, -webkit-box-shadow 0.2s ease;transition:border-color 0.2s ease, -webkit-box-shadow 0.2s ease;transition:border-color 0.2s ease, box-shadow 0.2s ease;transition:border-color 0.2s ease, box-shadow 0.2s ease, -webkit-box-shadow 0.2s ease;width:100%}.pds-multiselect__trigger:hover:not(.pds-multiselect__trigger--disabled){border-color:var(--pine-color-border-hover)}.pds-multiselect__trigger:focus:not(.pds-multiselect__trigger--disabled){border-color:var(--pine-color-border-active);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-multiselect__trigger.pds-multiselect__trigger--open{border-color:var(--pine-color-border-active)}.pds-multiselect__trigger.pds-multiselect__trigger--invalid{background-color:var(--pine-color-red-050);border-color:var(--pine-color-border-danger)}.pds-multiselect__trigger.pds-multiselect__trigger--invalid:focus{outline-color:var(--pine-color-focus-ring-danger)}.pds-multiselect__trigger.pds-multiselect__trigger--disabled{background:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-disabled);cursor:not-allowed}.pds-multiselect__trigger-text{color:var(--pine-color-text-strong);-ms-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pds-multiselect__trigger-text.pds-multiselect__trigger-text--placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__trigger--disabled .pds-multiselect__trigger-text{color:var(--pine-color-text-disabled)}.pds-multiselect__icon{color:var(--pine-color-icon);-ms-flex-negative:var(--pine-dimension-none);flex-shrink:var(--pine-dimension-none)}.pds-multiselect__panel{background:var(--pine-color-background-container);border-radius:var(--pine-dimension-125);-webkit-box-shadow:var(--pine-box-shadow);box-shadow:var(--pine-box-shadow);-webkit-box-sizing:border-box;box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;position:absolute;z-index:var(--pine-z-index-raised)}.pds-multiselect__search{-ms-flex-align:center;align-items:center;-webkit-border-after:var(--pine-border);border-block-end:var(--pine-border);border-block-end-color:var(--pine-color-border-subtle);display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs);padding:var(--pine-dimension-xs) var(--pine-dimension-sm)}.pds-multiselect__search pds-icon{color:var(--pine-color-text-muted);-ms-flex-negative:var(--pine-dimension-none);flex-shrink:var(--pine-dimension-none)}.pds-multiselect__search-input{background:transparent;border:var(--pine-dimension-none);color:var(--pine-color-text-strong);-ms-flex:1;flex:1;font:var(--pine-typography-body);letter-spacing:var(--pine-letter-spacing);min-width:var(--pine-dimension-none);outline:none}.pds-multiselect__search-input::-webkit-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__search-input::-moz-placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__search-input:-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__search-input::-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__search-input::placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__selected-section{-webkit-border-after:var(--pine-border);border-block-end:var(--pine-border);border-block-end-color:var(--pine-color-border-subtle);padding:var(--pine-dimension-xs)}.pds-multiselect__selected-list{list-style:none;margin:var(--pine-dimension-none);padding:var(--pine-dimension-none)}.pds-multiselect__selected-item{color:var(--pine-color-text-strong);font:var(--pine-typography-body);letter-spacing:var(--pine-letter-spacing);overflow:hidden;padding:var(--pine-dimension-2xs) var(--pine-dimension-xs);text-overflow:ellipsis;white-space:nowrap}.pds-multiselect__listbox{background:transparent;border:var(--pine-dimension-none);-webkit-box-sizing:border-box;box-sizing:border-box;list-style:none;margin:var(--pine-dimension-none);overflow-y:auto;padding:var(--pine-dimension-xs)}.pds-multiselect__option{-ms-flex-align:center;align-items:center;background:transparent;border-radius:var(--pine-dimension-xs);cursor:pointer;display:-ms-flexbox;display:flex;padding:var(--pine-dimension-2xs) var(--pine-dimension-xs);-webkit-transition:background 0.15s;transition:background 0.15s}.pds-multiselect__option pds-checkbox{pointer-events:none;width:100%}.pds-multiselect__option:hover,.pds-multiselect__option.pds-multiselect__option--highlighted{background:var(--pine-color-background-muted)}.pds-multiselect__option:focus-visible{outline:var(--pine-dimension-none)}.pds-multiselect__empty,.pds-multiselect__loading{-ms-flex-align:center;align-items:center;color:var(--pine-color-text-muted);display:-ms-flexbox;display:flex;font:var(--pine-typography-body);-ms-flex-pack:center;justify-content:center;padding:var(--pine-dimension-sm)}.pds-multiselect__load-more{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding:var(--pine-dimension-xs)}.pds-multiselect__helper{color:var(--pine-color-text-message);font:var(--pine-typography-body-sm);-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs);-webkit-margin-start:var(--pine-dimension-none);margin-inline-start:var(--pine-dimension-none)}.pds-multiselect__error{-ms-flex-align:start;align-items:flex-start;color:var(--pine-color-text-message-danger);display:-ms-flexbox;display:flex;font:var(--pine-typography-body-sm);gap:var(--pine-dimension-2xs);-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs);-webkit-margin-start:var(--pine-dimension-none);margin-inline-start:var(--pine-dimension-none)}.pds-multiselect__error pds-icon{-ms-flex-negative:var(--pine-dimension-none);flex-shrink:var(--pine-dimension-none);-webkit-margin-before:var(--pine-dimension-025);margin-block-start:var(--pine-dimension-025)}.visually-hidden{border:var(--pine-dimension-none);clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:var(--pine-dimension-none);position:absolute;white-space:nowrap;width:1px}";
11231
+
11232
+ /**
11233
+ * @slot (default) - Static option elements for the multiselect
11234
+ * @slot empty - Custom empty state message when no options match
11235
+ * @slot loading - Custom loading indicator
11236
+ */
11237
+ class PdsMultiselect {
11238
+ constructor(hostRef) {
11239
+ registerInstance(this, hostRef);
11240
+ this.pdsMultiselectChange = createEvent(this, "pdsMultiselectChange");
11241
+ this.pdsMultiselectSearch = createEvent(this, "pdsMultiselectSearch");
11242
+ this.pdsMultiselectLoadOptions = createEvent(this, "pdsMultiselectLoadOptions");
11243
+ /**
11244
+ * Placeholder text for the input field.
11245
+ */
11246
+ this.placeholder = 'Select...';
11247
+ /**
11248
+ * Array of selected option values.
11249
+ */
11250
+ this.value = [];
11251
+ /**
11252
+ * Determines whether or not the multiselect is disabled.
11253
+ */
11254
+ this.disabled = false;
11255
+ /**
11256
+ * HTTP method for async requests.
11257
+ */
11258
+ this.asyncMethod = 'GET';
11259
+ /**
11260
+ * Debounce delay in milliseconds for search/fetch.
11261
+ */
11262
+ this.debounce = 300;
11263
+ /**
11264
+ * Maximum height of the dropdown before scrolling.
11265
+ */
11266
+ this.maxHeight = '300px';
11267
+ /**
11268
+ * Width of the trigger button (and reference for dropdown positioning).
11269
+ */
11270
+ this.triggerWidth = '100%';
11271
+ /**
11272
+ * Minimum width of the dropdown panel.
11273
+ */
11274
+ this.minWidth = '250px';
11275
+ /**
11276
+ * Visually hides the label but keeps it accessible.
11277
+ */
11278
+ this.hideLabel = false;
11279
+ /**
11280
+ * If true, the multiselect is required.
11281
+ */
11282
+ this.required = false;
11283
+ /**
11284
+ * Whether the component is currently loading async options.
11285
+ */
11286
+ this.loading = false;
11287
+ // Internal state
11288
+ this.isOpen = false;
11289
+ this.searchQuery = '';
11290
+ this.highlightedIndex = -1;
11291
+ this.internalOptions = [];
11292
+ this.selectedItems = [];
11293
+ this.currentPage = 1;
11294
+ this.hasMore = false;
11295
+ // Flag to prevent focusout from closing during open transition
11296
+ this.isOpening = false;
11297
+ this.handleTriggerClick = () => {
11298
+ if (this.disabled)
11299
+ return;
11300
+ if (this.isOpen) {
11301
+ this.closeDropdown();
11302
+ }
11303
+ else {
11304
+ this.openDropdown();
11305
+ }
11306
+ };
11307
+ this.handleTriggerKeyDown = (e) => {
11308
+ switch (e.key) {
11309
+ case 'ArrowDown':
11310
+ case 'ArrowUp':
11311
+ case 'Enter':
11312
+ case ' ':
11313
+ e.preventDefault();
11314
+ if (!this.isOpen) {
11315
+ this.openDropdown();
11316
+ }
11317
+ break;
11318
+ }
11319
+ };
11320
+ this.handleSearchInputChange = (e) => {
11321
+ const target = e.target;
11322
+ this.searchQuery = target.value;
11323
+ this.highlightedIndex = -1;
11324
+ // Emit search event for consumer-managed async
11325
+ this.pdsMultiselectSearch.emit({ query: this.searchQuery });
11326
+ // Fetch from async URL if configured
11327
+ if (this.asyncUrl) {
11328
+ this.debouncedFetchAsyncOptions(this.searchQuery, 1);
11329
+ }
11330
+ };
11331
+ this.handleSearchInputKeyDown = (e) => {
11332
+ const filteredOptions = this.getFilteredOptions();
11333
+ switch (e.key) {
11334
+ case 'ArrowDown':
11335
+ e.preventDefault();
11336
+ this.highlightedIndex = Math.min(this.highlightedIndex + 1, filteredOptions.length - 1);
11337
+ this.scrollOptionIntoView();
11338
+ break;
11339
+ case 'ArrowUp':
11340
+ e.preventDefault();
11341
+ this.highlightedIndex = Math.max(this.highlightedIndex - 1, 0);
11342
+ this.scrollOptionIntoView();
11343
+ break;
11344
+ case 'Enter':
11345
+ e.preventDefault();
11346
+ if (this.highlightedIndex >= 0) {
11347
+ const option = filteredOptions[this.highlightedIndex];
11348
+ if (option) {
11349
+ this.selectOption(option);
11350
+ }
11351
+ }
11352
+ break;
11353
+ // Escape is handled by the global @Listen('keydown') handler
11354
+ case 'Tab':
11355
+ this.closeDropdown();
11356
+ break;
11357
+ }
11358
+ };
11359
+ this.handleContainerFocusOut = () => {
11360
+ // Use setTimeout to delay the check - this allows click events and focus transitions to complete
11361
+ // before we decide to close the dropdown
11362
+ setTimeout(() => {
11363
+ var _a;
11364
+ // Don't close if we're in the middle of opening or already closed
11365
+ if (!this.isOpen || this.isOpening)
11366
+ return;
11367
+ const activeElement = document.activeElement;
11368
+ // Check if focus is within our component's shadow root
11369
+ const isInShadowRoot = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.contains(activeElement);
11370
+ // Also check if focus is on the host element itself
11371
+ const isOnHost = activeElement === this.el;
11372
+ if (!isInShadowRoot && !isOnHost) {
11373
+ this.closeDropdown();
11374
+ }
11375
+ }, 0);
11376
+ };
11377
+ this.handleOptionMouseDown = (option) => (e) => {
11378
+ e.preventDefault(); // Prevent focus change
11379
+ this.toggleOption(option);
11380
+ };
11381
+ this.handleOptionMouseEnter = (index) => () => {
11382
+ this.highlightedIndex = index;
11383
+ };
11384
+ this.handleScroll = (e) => {
11385
+ if (!this.asyncUrl || !this.hasMore || this.loading)
11386
+ return;
11387
+ const target = e.target;
11388
+ const scrollBottom = target.scrollHeight - target.scrollTop - target.clientHeight;
11389
+ // Load more when near bottom (within 50px)
11390
+ if (scrollBottom < 50) {
11391
+ this.pdsMultiselectLoadOptions.emit({
11392
+ query: this.searchQuery,
11393
+ page: this.currentPage + 1,
11394
+ });
11395
+ this.debouncedFetchAsyncOptions(this.searchQuery, this.currentPage + 1);
11396
+ }
11397
+ };
11398
+ }
11399
+ connectedCallback() {
11400
+ if (this.el.attachInternals) {
11401
+ this.internals = this.el.attachInternals();
11402
+ }
11403
+ }
11404
+ componentWillLoad() {
11405
+ this.originalSearchEmitter = this.pdsMultiselectSearch;
11406
+ this.syncSelectedItems();
11407
+ }
11408
+ componentDidLoad() {
11409
+ this.setupDebounce();
11410
+ this.setupMutationObserver();
11411
+ this.setupSlotChangeListener();
11412
+ this.updateFormValue();
11413
+ // Ensure preselected values sync after DOM is fully ready
11414
+ // This handles cases where slot content loads after initial render (e.g., in docs/MDX)
11415
+ requestAnimationFrame(() => {
11416
+ this.updateOptionsFromSlot();
11417
+ this.syncSelectedItems();
11418
+ });
11419
+ }
11420
+ setupSlotChangeListener() {
11421
+ var _a;
11422
+ const slot = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot:not([name])');
11423
+ if (slot) {
11424
+ slot.addEventListener('slotchange', () => {
11425
+ this.updateOptionsFromSlot();
11426
+ this.syncSelectedItems();
11427
+ });
11428
+ // Also call it immediately in case content is already slotted
11429
+ this.updateOptionsFromSlot();
11430
+ }
11431
+ }
11432
+ disconnectedCallback() {
11433
+ var _a, _b;
11434
+ (_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
11435
+ (_b = this.cleanupAutoUpdate) === null || _b === void 0 ? void 0 : _b.call(this);
11436
+ this.clearAsyncFetchState();
11437
+ }
11438
+ setupDebounce() {
11439
+ const { pdsMultiselectSearch, debounce, originalSearchEmitter } = this;
11440
+ this.pdsMultiselectSearch = debounce === undefined
11441
+ ? originalSearchEmitter !== null && originalSearchEmitter !== void 0 ? originalSearchEmitter : pdsMultiselectSearch
11442
+ : debounceEvent(pdsMultiselectSearch, debounce);
11443
+ }
11444
+ valueChanged(newValue) {
11445
+ // Handle JSON string values (from HTML attributes)
11446
+ if (typeof newValue === 'string') {
11447
+ try {
11448
+ const parsed = JSON.parse(newValue);
11449
+ if (Array.isArray(parsed)) {
11450
+ this.value = parsed;
11451
+ return; // The assignment will trigger this watcher again with the array
11452
+ }
11453
+ }
11454
+ catch (_a) {
11455
+ // Not valid JSON, treat as single value
11456
+ this.value = newValue ? [newValue] : [];
11457
+ return;
11458
+ }
11459
+ }
11460
+ this.syncSelectedItems();
11461
+ this.updateFormValue();
11462
+ }
11463
+ optionsChanged() {
11464
+ if (this.options) {
11465
+ this.internalOptions = [...this.options];
11466
+ }
11467
+ }
11468
+ internalOptionsChanged() {
11469
+ // Re-sync selected items when options become available
11470
+ // This handles the case where value is set before options are loaded (e.g., from slot)
11471
+ this.syncSelectedItems();
11472
+ }
11473
+ /**
11474
+ * Sets focus on the trigger button.
11475
+ */
11476
+ async setFocus() {
11477
+ var _a;
11478
+ (_a = this.triggerEl) === null || _a === void 0 ? void 0 : _a.focus();
11479
+ }
11480
+ /**
11481
+ * Handle global keyboard events for accessibility.
11482
+ * Closes dropdown on Escape key press regardless of focus location.
11483
+ */
11484
+ handleWindowKeyDown(event) {
11485
+ var _a;
11486
+ if (!this.isOpen)
11487
+ return;
11488
+ if (event.key === 'Escape') {
11489
+ event.preventDefault();
11490
+ this.closeDropdown();
11491
+ (_a = this.triggerEl) === null || _a === void 0 ? void 0 : _a.focus();
11492
+ }
11493
+ }
11494
+ setupMutationObserver() {
11495
+ this.observer = new MutationObserver(() => {
11496
+ this.updateOptionsFromSlot();
11497
+ });
11498
+ this.observer.observe(this.el, {
11499
+ childList: true,
11500
+ subtree: true,
11501
+ });
11502
+ }
11503
+ updateOptionsFromSlot() {
11504
+ var _a;
11505
+ const slot = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot:not([name])');
11506
+ if (!slot)
11507
+ return;
11508
+ const options = slot.assignedElements({ flatten: true })
11509
+ .filter((el) => el.tagName === 'OPTION')
11510
+ .map(opt => ({
11511
+ id: opt.value,
11512
+ text: opt.textContent || opt.value,
11513
+ }));
11514
+ // Only update if we actually found options AND we're not using async/external options
11515
+ // Don't clear internalOptions if slot returns empty (might be mid-DOM-update)
11516
+ if (options.length > 0 && !this.asyncUrl && !this.options) {
11517
+ this.internalOptions = options;
11518
+ }
11519
+ }
11520
+ clearAsyncFetchState() {
11521
+ var _a;
11522
+ if (this.fetchDebounceTimer !== undefined) {
11523
+ window.clearTimeout(this.fetchDebounceTimer);
11524
+ this.fetchDebounceTimer = undefined;
11525
+ }
11526
+ (_a = this.abortController) === null || _a === void 0 ? void 0 : _a.abort();
11527
+ this.abortController = undefined;
11528
+ }
11529
+ debouncedFetchAsyncOptions(query, page = 1) {
11530
+ var _a;
11531
+ if (!this.asyncUrl)
11532
+ return;
11533
+ if (this.fetchDebounceTimer !== undefined) {
11534
+ window.clearTimeout(this.fetchDebounceTimer);
11535
+ }
11536
+ const delay = Math.max(0, (_a = this.debounce) !== null && _a !== void 0 ? _a : 0);
11537
+ this.fetchDebounceTimer = window.setTimeout(() => {
11538
+ this.fetchDebounceTimer = undefined;
11539
+ this.fetchOptions(query, page);
11540
+ }, delay);
11541
+ }
11542
+ syncSelectedItems() {
11543
+ // Ensure value is an array (may be string from HTML attribute)
11544
+ const valueArray = this.ensureValueArray();
11545
+ const allOptions = this.getAllOptions();
11546
+ this.selectedItems = valueArray
11547
+ .map(val => allOptions.find(opt => String(opt.id) === String(val)))
11548
+ .filter((opt) => opt !== undefined);
11549
+ }
11550
+ ensureValueArray() {
11551
+ // Handle JSON string values passed via HTML attribute
11552
+ if (typeof this.value === 'string') {
11553
+ try {
11554
+ const parsed = JSON.parse(this.value);
11555
+ if (Array.isArray(parsed)) {
11556
+ this.value = parsed;
11557
+ return parsed;
11558
+ }
11559
+ }
11560
+ catch (_a) {
11561
+ // Not valid JSON, treat as single value
11562
+ const singleValue = this.value;
11563
+ this.value = singleValue ? [singleValue] : [];
11564
+ return this.value;
11565
+ }
11566
+ }
11567
+ return Array.isArray(this.value) ? this.value : [];
11568
+ }
11569
+ getAllOptions() {
11570
+ return this.options || this.internalOptions;
11571
+ }
11572
+ getFilteredOptions() {
11573
+ const allOptions = this.getAllOptions();
11574
+ const query = this.searchQuery.toLowerCase();
11575
+ return allOptions.filter(opt => {
11576
+ // Filter by search query only - don't filter out selected items
11577
+ if (query) {
11578
+ return opt.text.toLowerCase().includes(query);
11579
+ }
11580
+ return true;
11581
+ });
11582
+ }
11583
+ updateFormValue() {
11584
+ var _a;
11585
+ if ((_a = this.internals) === null || _a === void 0 ? void 0 : _a.setFormValue) {
11586
+ // Ensure value is an array before iterating
11587
+ const valueArray = this.ensureValueArray();
11588
+ // Submit as multiple values with same name (native select multiple behavior)
11589
+ const formData = new FormData();
11590
+ valueArray.forEach(val => {
11591
+ if (this.name) {
11592
+ formData.append(this.name, val);
11593
+ }
11594
+ });
11595
+ this.internals.setFormValue(formData);
11596
+ // Update validity state for required validation
11597
+ if (this.required && valueArray.length === 0) {
11598
+ this.internals.setValidity({ valueMissing: true }, 'Please select at least one option.', this.triggerEl);
11599
+ }
11600
+ else {
11601
+ this.internals.setValidity({});
11602
+ }
11603
+ }
11604
+ }
11605
+ async fetchOptions(query, page = 1) {
11606
+ var _a;
11607
+ if (!this.asyncUrl)
11608
+ return;
11609
+ (_a = this.abortController) === null || _a === void 0 ? void 0 : _a.abort();
11610
+ this.abortController = new AbortController();
11611
+ this.loading = true;
11612
+ try {
11613
+ const url = new URL(this.asyncUrl, window.location.origin);
11614
+ if (this.asyncMethod === 'GET') {
11615
+ url.searchParams.set('search', query);
11616
+ url.searchParams.set('page', String(page));
11617
+ }
11618
+ const response = await fetch(url.toString(), Object.assign({ method: this.asyncMethod, signal: this.abortController.signal, headers: {
11619
+ 'Content-Type': 'application/json',
11620
+ 'Accept': 'application/json',
11621
+ } }, (this.asyncMethod === 'POST' && {
11622
+ body: JSON.stringify({ search: query, page }),
11623
+ })));
11624
+ if (!response.ok)
11625
+ throw new Error('Failed to fetch options');
11626
+ const data = await response.json();
11627
+ const formattedResults = data.results.map(item => {
11628
+ if (this.formatResult) {
11629
+ return this.formatResult(item);
11630
+ }
11631
+ return Object.assign({ id: item.id, text: item.text }, item);
11632
+ });
11633
+ if (page === 1) {
11634
+ this.internalOptions = formattedResults;
11635
+ }
11636
+ else {
11637
+ this.internalOptions = [...this.internalOptions, ...formattedResults];
11638
+ }
11639
+ this.hasMore = data.totalCount ? this.internalOptions.length < data.totalCount : false;
11640
+ this.currentPage = page;
11641
+ }
11642
+ catch (error) {
11643
+ if (error.name !== 'AbortError') {
11644
+ console.error('PdsMultiselect: Failed to fetch options', error);
11645
+ }
11646
+ }
11647
+ finally {
11648
+ this.loading = false;
11649
+ }
11650
+ }
11651
+ openDropdown() {
11652
+ if (this.disabled)
11653
+ return;
11654
+ this.isOpening = true;
11655
+ this.isOpen = true;
11656
+ this.highlightedIndex = -1;
11657
+ // Trigger initial fetch if async
11658
+ if (this.asyncUrl && this.internalOptions.length === 0) {
11659
+ this.debouncedFetchAsyncOptions(this.searchQuery, 1);
11660
+ }
11661
+ requestAnimationFrame(() => {
11662
+ var _a;
11663
+ this.positionDropdown();
11664
+ // Focus the search input after the panel is positioned
11665
+ (_a = this.searchInputEl) === null || _a === void 0 ? void 0 : _a.focus();
11666
+ // Clear the opening flag after focus has moved
11667
+ setTimeout(() => {
11668
+ this.isOpening = false;
11669
+ }, 50);
11670
+ });
11671
+ }
11672
+ closeDropdown() {
11673
+ this.isOpen = false;
11674
+ this.highlightedIndex = -1;
11675
+ this.searchQuery = '';
11676
+ // Clean up auto-update
11677
+ if (this.cleanupAutoUpdate) {
11678
+ this.cleanupAutoUpdate();
11679
+ this.cleanupAutoUpdate = undefined;
11680
+ }
11681
+ }
11682
+ positionDropdown() {
11683
+ if (!this.containerEl || !this.panelEl)
11684
+ return;
11685
+ const referenceEl = this.triggerEl || this.containerEl;
11686
+ const { minWidth, panelWidth } = this;
11687
+ const updatePosition = () => {
11688
+ computePosition(referenceEl, this.panelEl, {
11689
+ placement: 'bottom-start',
11690
+ strategy: 'absolute',
11691
+ middleware: [
11692
+ offset(12),
11693
+ flip(),
11694
+ shift({ padding: 8 }),
11695
+ size({
11696
+ apply: ({ rects, elements }) => {
11697
+ Object.assign(elements.floating.style, {
11698
+ width: panelWidth !== null && panelWidth !== void 0 ? panelWidth : `${rects.reference.width}px`,
11699
+ minWidth,
11700
+ });
11701
+ },
11702
+ }),
11703
+ ],
11704
+ }).then(({ x, y }) => {
11705
+ if (this.panelEl) {
11706
+ this.panelEl.style.left = `${x}px`;
11707
+ this.panelEl.style.top = `${y}px`;
11708
+ }
11709
+ });
11710
+ };
11711
+ // Initial position
11712
+ updatePosition();
11713
+ // Set up auto-update for window resize and scroll
11714
+ const cleanupAutoUpdate = autoUpdate(referenceEl, this.panelEl, updatePosition);
11715
+ this.cleanupAutoUpdate = () => {
11716
+ cleanupAutoUpdate();
11717
+ this.clearAsyncFetchState();
11718
+ };
11719
+ }
11720
+ scrollOptionIntoView() {
11721
+ requestAnimationFrame(() => {
11722
+ var _a;
11723
+ const highlighted = (_a = this.listboxEl) === null || _a === void 0 ? void 0 : _a.querySelector(`[data-index="${this.highlightedIndex}"]`);
11724
+ highlighted === null || highlighted === void 0 ? void 0 : highlighted.scrollIntoView({ block: 'nearest', behavior: 'smooth' });
11725
+ });
11726
+ }
11727
+ toggleOption(option) {
11728
+ var _a;
11729
+ const isSelected = this.value.includes(String(option.id));
11730
+ if (isSelected) {
11731
+ // Remove from selection
11732
+ const newValue = this.value.filter(v => v !== String(option.id));
11733
+ this.value = newValue;
11734
+ const newSelectedItems = this.selectedItems.filter(item => String(item.id) !== String(option.id));
11735
+ this.pdsMultiselectChange.emit({
11736
+ values: newValue,
11737
+ items: newSelectedItems,
11738
+ });
11739
+ }
11740
+ else {
11741
+ // Add to selection
11742
+ if (this.maxSelections && this.value.length >= this.maxSelections) {
11743
+ return;
11744
+ }
11745
+ const newValue = [...this.value, String(option.id)];
11746
+ this.value = newValue;
11747
+ const newSelectedItems = [...this.selectedItems, option];
11748
+ this.pdsMultiselectChange.emit({
11749
+ values: newValue,
11750
+ items: newSelectedItems,
11751
+ });
11752
+ }
11753
+ // Keep focus on search input, don't close dropdown
11754
+ (_a = this.searchInputEl) === null || _a === void 0 ? void 0 : _a.focus();
11755
+ }
11756
+ selectOption(option) {
11757
+ // For keyboard navigation - toggle the option
11758
+ this.toggleOption(option);
11759
+ }
11760
+ renderSelectedItemsList() {
11761
+ if (this.selectedItems.length === 0)
11762
+ return null;
11763
+ return (hAsync("div", { class: "pds-multiselect__selected-section" }, hAsync("ul", { class: "pds-multiselect__selected-list", role: "list" }, this.selectedItems.map(item => (hAsync("li", { key: String(item.id), class: "pds-multiselect__selected-item" }, item.text))))));
11764
+ }
11765
+ renderDropdown() {
11766
+ if (!this.isOpen)
11767
+ return null;
11768
+ const filteredOptions = this.getFilteredOptions();
11769
+ const valueArray = this.ensureValueArray();
11770
+ const hasSlottedEmpty = !!this.el.querySelector('[slot="empty"]');
11771
+ const hasSlottedLoading = !!this.el.querySelector('[slot="loading"]');
11772
+ return (hAsync("div", { class: "pds-multiselect__panel", ref: el => (this.panelEl = el), style: { minWidth: this.minWidth } }, hAsync("div", { class: "pds-multiselect__search" }, hAsync("pds-icon", { name: "search", size: "small" }), hAsync("input", { ref: el => (this.searchInputEl = el), type: "text", class: "pds-multiselect__search-input", placeholder: "Find...", value: this.searchQuery, "aria-label": "Search options", "aria-controls": `${this.componentId}-listbox`, "aria-activedescendant": this.highlightedIndex >= 0 ? `${this.componentId}-option-${this.highlightedIndex}` : undefined, role: "combobox", "aria-haspopup": "listbox", "aria-expanded": "true", "aria-autocomplete": "list", autocomplete: "off", onInput: this.handleSearchInputChange, onKeyDown: this.handleSearchInputKeyDown })), this.renderSelectedItemsList(), hAsync("ul", { class: "pds-multiselect__listbox", role: "listbox", "aria-multiselectable": "true", "aria-label": this.label || 'Options', id: `${this.componentId}-listbox`, ref: el => (this.listboxEl = el), style: { maxHeight: this.maxHeight }, onScroll: this.handleScroll }, this.loading && (hAsync("li", { class: "pds-multiselect__loading", role: "presentation" }, hasSlottedLoading ? (hAsync("slot", { name: "loading" })) : (hAsync("pds-loader", { size: "small" })))), !this.loading && filteredOptions.length === 0 && (hAsync("li", { class: "pds-multiselect__empty", role: "presentation" }, hasSlottedEmpty ? (hAsync("slot", { name: "empty" })) : (hAsync("span", null, "No options found")))), filteredOptions.map((option, index) => {
11773
+ const isSelected = valueArray.includes(String(option.id));
11774
+ const isHighlighted = index === this.highlightedIndex;
11775
+ const optionId = `${this.componentId}-option-${index}`;
11776
+ return (hAsync("li", { key: String(option.id), id: optionId, class: {
11777
+ 'pds-multiselect__option': true,
11778
+ 'pds-multiselect__option--highlighted': isHighlighted,
11779
+ 'pds-multiselect__option--selected': isSelected,
11780
+ }, role: "option", "aria-selected": isSelected ? 'true' : 'false', "data-index": index, onMouseDown: this.handleOptionMouseDown(option), onMouseEnter: this.handleOptionMouseEnter(index) }, hAsync("pds-checkbox", { componentId: `${this.componentId}-checkbox-${index}`, checked: isSelected, label: option.text, style: { pointerEvents: 'none' } })));
11781
+ }), this.hasMore && !this.loading && (hAsync("li", { class: "pds-multiselect__load-more", role: "presentation" }, hAsync("pds-loader", { size: "small" }))))));
11782
+ }
11783
+ getTriggerText() {
11784
+ const count = this.selectedItems.length;
11785
+ if (count === 0) {
11786
+ return this.placeholder || 'Select...';
11787
+ }
11788
+ return `${count} item${count === 1 ? '' : 's'}`;
11789
+ }
11790
+ render() {
11791
+ const hasSelections = this.selectedItems.length > 0;
11792
+ return (hAsync(Host, { key: '0d8a40829a0a7f2cf89d9fbe036c0880d17652c0', "aria-disabled": this.disabled ? 'true' : null }, hAsync("div", { key: '375297b4cc85ca3afd28965b2138fcd144a42474', class: "pds-multiselect" }, this.label && (hAsync("label", { key: '3976caded352614dbae48b710d8615f2c46fe688', htmlFor: this.componentId, class: {
11793
+ 'pds-multiselect__label': true,
11794
+ 'visually-hidden': this.hideLabel,
11795
+ } }, this.label)), hAsync("div", { key: 'ec02d5c84873688d155be28b0cdd8c495d60d796', class: "pds-multiselect__wrapper", ref: el => (this.containerEl = el), onFocusout: this.handleContainerFocusOut, style: { width: this.triggerWidth } }, hAsync("button", { key: '87c5a8847d26e18425389dd8fd8f1f198263a7c0', ref: el => (this.triggerEl = el), type: "button", class: {
11796
+ 'pds-multiselect__trigger': true,
11797
+ 'pds-multiselect__trigger--open': this.isOpen,
11798
+ 'pds-multiselect__trigger--disabled': this.disabled,
11799
+ 'pds-multiselect__trigger--invalid': this.invalid || !!this.errorMessage,
11800
+ 'pds-multiselect__trigger--has-value': hasSelections,
11801
+ }, id: this.componentId, disabled: this.disabled, "aria-required": this.required ? 'true' : undefined, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-haspopup": "listbox", "aria-describedby": assignDescription(this.componentId, this.invalid || !!this.errorMessage, this.errorMessage || this.helperMessage), "aria-invalid": this.invalid || !!this.errorMessage ? 'true' : undefined, onClick: this.handleTriggerClick, onKeyDown: this.handleTriggerKeyDown }, hAsync("span", { key: '4660140f3fa4201b5706b6e4870e463ed718cd0d', class: {
11802
+ 'pds-multiselect__trigger-text': true,
11803
+ 'pds-multiselect__trigger-text--placeholder': !hasSelections,
11804
+ } }, this.getTriggerText()), hAsync("pds-icon", { key: 'dbba532de1a4b915c64b3b79d414cf3b53203c5f', class: "pds-multiselect__icon", icon: enlarge })), this.renderDropdown()), this.helperMessage && !this.errorMessage && (hAsync("p", { key: '0524ae0fabff8365f9bf61ab71878c6d3bec362d', class: "pds-multiselect__helper", id: messageId(this.componentId, 'helper') }, this.helperMessage)), this.errorMessage && (hAsync("p", { key: 'e014047181cb25a40fae151797406cdd726ee3ea', class: "pds-multiselect__error", id: messageId(this.componentId, 'error') }, hAsync("pds-icon", { key: '45cd498f7f60b4b15193e16a6521bb2324cca06d', icon: danger, size: "small" }), this.errorMessage)), hAsync("div", { key: 'fc24922ae45ef799a34f5fa696cd7a5e4e1d945f', style: { display: 'none' } }, hAsync("slot", { key: '0c3a84477eabf0779e84feaf2b936b3ca7ad9606' })))));
11805
+ }
11806
+ static get formAssociated() { return true; }
11807
+ get el() { return getElement(this); }
11808
+ static get watchers() { return {
11809
+ "debounce": ["setupDebounce"],
11810
+ "value": ["valueChanged"],
11811
+ "options": ["optionsChanged"],
11812
+ "internalOptions": ["internalOptionsChanged"]
11813
+ }; }
11814
+ static get style() { return pdsMultiselectCss; }
11815
+ static get cmpMeta() { return {
11816
+ "$flags$": 329,
11817
+ "$tagName$": "pds-multiselect",
11818
+ "$members$": {
11819
+ "componentId": [1, "component-id"],
11820
+ "label": [1],
11821
+ "placeholder": [1],
11822
+ "name": [1],
11823
+ "value": [1040],
11824
+ "disabled": [4],
11825
+ "asyncUrl": [1, "async-url"],
11826
+ "asyncMethod": [1, "async-method"],
11827
+ "debounce": [2],
11828
+ "maxSelections": [2, "max-selections"],
11829
+ "maxHeight": [1, "max-height"],
11830
+ "triggerWidth": [1, "trigger-width"],
11831
+ "minWidth": [1, "min-width"],
11832
+ "panelWidth": [1, "panel-width"],
11833
+ "hideLabel": [4, "hide-label"],
11834
+ "errorMessage": [1, "error-message"],
11835
+ "helperMessage": [1, "helper-message"],
11836
+ "invalid": [4],
11837
+ "required": [4],
11838
+ "loading": [1028],
11839
+ "options": [16],
11840
+ "formatResult": [16],
11841
+ "isOpen": [32],
11842
+ "searchQuery": [32],
11843
+ "highlightedIndex": [32],
11844
+ "internalOptions": [32],
11845
+ "selectedItems": [32],
11846
+ "currentPage": [32],
11847
+ "hasMore": [32],
11848
+ "setFocus": [64]
11849
+ },
11850
+ "$listeners$": [[8, "keydown", "handleWindowKeyDown"]],
11851
+ "$lazyBundleId$": "-",
11852
+ "$attrsToReflect$": []
11853
+ }; }
11854
+ }
11855
+
11051
11856
  const pdsPopoverCss = ":host{--sizing-max-width-default:352px;display:inline-block}:host .pds-popover__trigger-wrapper{display:inline-block}:host .pds-popover__content-slot-wrapper{display:none}";
11052
11857
 
11053
11858
  /**
@@ -11608,7 +12413,7 @@ class PdsPopover {
11608
12413
  }, 16); // ~1 frame at 60fps
11609
12414
  }
11610
12415
  render() {
11611
- return (hAsync(Host, { key: 'b1484c81cc8e6101f58fa03cf79828662416e984', id: this.componentId }, hAsync("span", { key: '19b65573bbe0ad094ef20462c78c0ab92d3721b3', class: "pds-popover__trigger-wrapper" }, hAsync("slot", { key: '11ee8ad1af28541067aad875ddbe82f8af362154', name: "trigger", onSlotchange: this.handleTriggerSlotChange })), hAsync("div", { key: 'e909a772c03c28930f273e46be01b1f765e5a160', class: "pds-popover__content-slot-wrapper" }, hAsync("slot", { key: '53684906fb81c13ebfbeacae66c2d34ffb009205', onSlotchange: this.handleContentSlotChange }))));
12416
+ return (hAsync(Host, { key: '4cdcc590173cf0edc4412b611277d7cce152c567', id: this.componentId }, hAsync("span", { key: '5136bc20db4630da4264d389e6ff2d25353900c6', class: "pds-popover__trigger-wrapper" }, hAsync("slot", { key: '7127a728bc5b6458d339c54cdd795d9768219479', name: "trigger", onSlotchange: this.handleTriggerSlotChange })), hAsync("div", { key: '3ffd0aca1500b59f8e577c063d3ff766fc95a550', class: "pds-popover__content-slot-wrapper" }, hAsync("slot", { key: '30093c1e7d9a94c5297386f07eb921be85e59a97', onSlotchange: this.handleContentSlotChange }))));
11612
12417
  }
11613
12418
  get el() { return getElement(this); }
11614
12419
  static get style() { return pdsPopoverCss; }
@@ -11658,7 +12463,7 @@ class PdsProgress {
11658
12463
  this.showPercent = false;
11659
12464
  }
11660
12465
  render() {
11661
- return (hAsync(Host, { key: '1d0872d18cc7c89d0f4c2b1690ac7a09801129ae', class: this.animated ? { 'is-animated': this.animated } : '' }, hAsync("div", { key: '556576ec3925f99d1104e9fe7709d5f3a756a8d6', class: "pds-progress" }, hAsync("label", { key: 'eca8e33f036dc1a17175fc2db7dde7be947aadab', class: "pds-progress__label", htmlFor: this.componentId }, this.label), hAsync("progress", { key: 'b0c21fbb91236684e5351f5622db54ef54716dc8', id: this.componentId, max: "100", style: this.fillColor ? { '--color-progress-fill': this.fillColor } : {}, value: this.percent })), this.showPercent && hAsync("div", { key: '5eec8cc0979d86e2740f21a95c64a7f945f4c84a', class: "pds-progress__percentage" }, this.percent, "%")));
12466
+ return (hAsync(Host, { key: '5ba399b7d026ddcee0b6b3c2626baa2cb175afab', class: this.animated ? { 'is-animated': this.animated } : '' }, hAsync("div", { key: '020ea8e805013e36fedb9c9aa67f06792878297c', class: "pds-progress" }, hAsync("label", { key: '18d751a8526bdde6e3e907a3d1e3755eb3c3c99d', class: "pds-progress__label", htmlFor: this.componentId }, this.label), hAsync("progress", { key: '1f3c07efa8ba71744133c49fd90bfaa5d62752e9', id: this.componentId, max: "100", style: this.fillColor ? { '--color-progress-fill': this.fillColor } : {}, value: this.percent })), this.showPercent && hAsync("div", { key: '768d517ffb6fa3ece02533eba0da3fa015530293', class: "pds-progress__percentage" }, this.percent, "%")));
11662
12467
  }
11663
12468
  static get style() { return pdsProgressCss; }
11664
12469
  static get cmpMeta() { return {
@@ -11692,7 +12497,7 @@ class PdsProperty {
11692
12497
  this.icon = 'star';
11693
12498
  }
11694
12499
  render() {
11695
- return (hAsync(Host, { key: '9f1076beddaabaf20026bde9381f5fc484289a84', id: this.componentId }, hAsync("pds-box", { key: '7be27ac25227ad3a1222b37a11b1932a9d0cce81', "align-items": "center", gap: "xs" }, hAsync("pds-icon", { key: '898a412a10fc25ed7ad0b4ec4241bdc489d99784', icon: this.icon, size: "var(--pine-dimension-sm)", "aria-hidden": "true" }), hAsync("slot", { key: 'f51046da5cdb725605cac3302996f4828b9f9958' }))));
12500
+ return (hAsync(Host, { key: '8caea739a84ede1f76b0564fb76183530c9ac0b7', id: this.componentId }, hAsync("pds-box", { key: 'a539e91af082e31d64cfca1a73bc94c1660f6960', "align-items": "center", gap: "xs" }, hAsync("pds-icon", { key: 'f3ac971b857c1b236b8e3d7345633d3846c21bea', icon: this.icon, size: "var(--pine-dimension-sm)", "aria-hidden": "true" }), hAsync("slot", { key: 'c2e88b899f814084998bd63eabdd43204e5fafad' }))));
11696
12501
  }
11697
12502
  static get style() { return pdsPropertyCss; }
11698
12503
  static get cmpMeta() { return {
@@ -11793,11 +12598,11 @@ class PdsRadio {
11793
12598
  }
11794
12599
  render() {
11795
12600
  const renderLabelAndMessages = () => [
11796
- hAsync("label", { htmlFor: this.componentId, key: `${this.componentId}-label` }, hAsync("input", { key: 'c2361c9041baae2cf222314101f390fbf19266fd', "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage), "aria-invalid": this.invalid ? "true" : undefined, type: "radio", id: this.componentId, name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onChange: this.handleRadioChange, class: this.hasImage() ? 'visually-hidden' : '' }), hAsync("span", { key: 'ce704f1c12d7e9a214f2a93499bd065037631586', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)),
12601
+ hAsync("label", { htmlFor: this.componentId, key: `${this.componentId}-label` }, hAsync("input", { key: 'f2f2f199931f721f52dacdbe419ff78fdc7d0eff', "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage), "aria-invalid": this.invalid ? "true" : undefined, type: "radio", id: this.componentId, name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onChange: this.handleRadioChange, class: this.hasImage() ? 'visually-hidden' : '' }), hAsync("span", { key: 'e51195a03fa69e1bda7cdd7a5a6518833162be8e', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)),
11797
12602
  this.helperMessage && (hAsync("div", { key: `${this.componentId}-helper`, class: 'pds-radio__message', id: messageId(this.componentId, 'helper') }, this.helperMessage)),
11798
- this.errorMessage && (hAsync("div", { key: `${this.componentId}-error`, class: `pds-radio__message pds-radio__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: '138adf48418372b3ca28ab4b6998e74f7a2de8b2', icon: danger, size: "small" }), this.errorMessage))
12603
+ this.errorMessage && (hAsync("div", { key: `${this.componentId}-error`, class: `pds-radio__message pds-radio__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: '519b558a41aafa223dbbc1f4e40d4de27f26aa69', icon: danger, size: "small" }), this.errorMessage))
11799
12604
  ];
11800
- return (hAsync(Host, { key: '25a216197228fc211ab2fd3ce3ee767e34d90ac0', class: this.classNames() }, this.hasImage() && (hAsync("div", { key: 'b19b9c38cd8ba864328c4d4a3e0402b38b096f44', class: "pds-radio__image-container", part: "image-container" }, hAsync("slot", { key: '72723bbd792394d1f358acf6a3a6969c6ac4012d', name: "image", onSlotchange: () => (this._hasImage = this.hasImageSlot()) }))), this.hasImage() ? (hAsync("div", { class: "pds-radio__content-wrapper" }, renderLabelAndMessages())) : (renderLabelAndMessages())));
12605
+ return (hAsync(Host, { key: 'edf88fa769c7d87e86b36a4a9476d460b8ea7105', class: this.classNames() }, this.hasImage() && (hAsync("div", { key: '09c2eb9d72e87550a557cd7fbaf69e9b16636940', class: "pds-radio__image-container", part: "image-container" }, hAsync("slot", { key: 'd0f939ea5bb07f2b0cdb2bb8c8576fdf2c03b196', name: "image", onSlotchange: () => (this._hasImage = this.hasImageSlot()) }))), this.hasImage() ? (hAsync("div", { class: "pds-radio__content-wrapper" }, renderLabelAndMessages())) : (renderLabelAndMessages())));
11801
12606
  }
11802
12607
  get el() { return getElement(this); }
11803
12608
  static get style() { return labelCss$3 + pdsRadioCss; }
@@ -11972,13 +12777,13 @@ class PdsRadioGroup {
11972
12777
  render() {
11973
12778
  const gapValue = this.getGapValue();
11974
12779
  const ariaDescribedBy = this.getAriaDescribedBy();
11975
- return (hAsync(Host, { key: '3354fc555d3158c26d8bc8d63f372bc98bec959b', class: this.classNames(), id: this._groupId, role: "group", "aria-describedby": ariaDescribedBy, style: {
12780
+ return (hAsync(Host, { key: '4172c83d182d274660aca1f09cb3cf0a822623bc', class: this.classNames(), id: this._groupId, role: "group", "aria-describedby": ariaDescribedBy, style: {
11976
12781
  '--pds-radio-group-gap': gapValue,
11977
- } }, this.groupLabel && (hAsync("div", { key: '64961e1a1857bb1c31ed97f20f4a1b04731ea3cf', class: "pds-radio-group__label" }, this.groupLabel)), hAsync("div", { key: '2525254fbbaf39fd0c59a830e5a3115ddce0326b', class: {
12782
+ } }, this.groupLabel && (hAsync("div", { key: '9487046d8ce5f89535f220816192f63063eba7da', class: "pds-radio-group__label" }, this.groupLabel)), hAsync("div", { key: '691b01627a001a5be54e41ecfef7d0c182be30fb', class: {
11978
12783
  'pds-radio-group__radios': true,
11979
12784
  'pds-radio-group__radios--row': this.direction === 'row',
11980
12785
  'pds-radio-group__radios--column': this.direction === 'column',
11981
- } }, hAsync("slot", { key: '484340d3d920532b32a821322dee3b391429cfae', onSlotchange: () => this.updateChildRadios() })), this.helperMessage && (hAsync("div", { key: '41a0d1105d5f23296382f228d7a2c8b31b3a863a', class: "pds-radio-group__message", id: messageId(this._groupId, 'helper') }, this.helperMessage)), this.errorMessage && (hAsync("div", { key: '31e67f67b1525426c449abe8daaf8d1af8957b14', class: "pds-radio-group__message pds-radio-group__message--error", id: messageId(this._groupId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: 'f5ac7ac61e9a5b2fd2a14ee334b3417d9fbd52ca', icon: danger, size: "small" }), this.errorMessage))));
12786
+ } }, hAsync("slot", { key: 'b92f475d38f0eb35dcb0a5c20bbc9442db64559d', onSlotchange: () => this.updateChildRadios() })), this.helperMessage && (hAsync("div", { key: 'fb2b8e6c06ea02ee5b7203c26cd30901dde7752d', class: "pds-radio-group__message", id: messageId(this._groupId, 'helper') }, this.helperMessage)), this.errorMessage && (hAsync("div", { key: 'cd496c7eea405bc4cf76462326e2309bce5b1d7f', class: "pds-radio-group__message pds-radio-group__message--error", id: messageId(this._groupId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: '7a76c505dd8c9673b2c6ac8b652bede5ec5557c6', icon: danger, size: "small" }), this.errorMessage))));
11982
12787
  }
11983
12788
  get el() { return getElement(this); }
11984
12789
  static get watchers() { return {
@@ -12068,7 +12873,7 @@ class PdsRow {
12068
12873
  })), (this.minHeight && {
12069
12874
  'min-height': this.minHeight,
12070
12875
  }));
12071
- return hAsync(Host, { key: 'b0bcc4fc7f67525fb9bae45d31b0ea3df2bda47f', class: `pds-row ${rowClasses}`, style: rowInlineStyles });
12876
+ return hAsync(Host, { key: '6e6e95f69cf5a84c481399737f9f5c68117aabd9', class: `pds-row ${rowClasses}`, style: rowInlineStyles });
12072
12877
  }
12073
12878
  static get style() { return pdsRowCss; }
12074
12879
  static get cmpMeta() { return {
@@ -12095,7 +12900,7 @@ const pdsSelectTokensCss = ":host{--pine-select-color-background-danger:var(--pi
12095
12900
 
12096
12901
  const labelCss$2 = ":host{display:inline-block}:host([aria-disabled=true]) label{color:var(--pine-color-text-label-disabled)}:host([aria-readonly=true]) label{color:var(--pine-color-text-label-readonly)}label{color:var(--pine-color-text-label);font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing)}";
12097
12902
 
12098
- const pdsSelectCss = ":host{--pds-select-background:var(--pine-color-background-container);--pds-select-border:var(--pine-border);--pds-select-border-radius:var(--pine-dimension-125);--pds-select-border-radius-start-end:var(--pine-dimension-125);--pds-select-border-radius-start-start:var(--pine-dimension-125);--pds-select-border-radius-end-end:var(--pine-dimension-125);--pds-select-border-radius-end-start:var(--pine-dimension-125);--pds-select-min-height:36px;--box-shadow-focus:0 0 0 1px #ffffff, 0 0 0 3px var(--pine-color-focus-ring);--box-shadow-focus-error:0 0 0 1px #ffffff, 0 0 0 3px var(--pine-color-focus-ring-danger)}:host .hidden,:host :host([hidden]){display:none}.pds-select{color:var(--pine-color-text);display:grid;-ms-flex-direction:column;flex-direction:column;grid-template-areas:\"label label\" \"field field\" \"message message\";grid-template-columns:1fr minmax(2rem, -webkit-min-content);grid-template-columns:1fr minmax(2rem, min-content);grid-template-rows:-webkit-min-content -webkit-min-content -webkit-min-content;grid-template-rows:min-content min-content min-content;position:relative;width:100%}.pds-select__label-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;grid-area:label;-ms-flex-pack:justify;justify-content:space-between;-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}.pds-select__action{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs);-webkit-margin-start:var(--pine-dimension-xs);margin-inline-start:var(--pine-dimension-xs)}label{-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}.pds-select__label-wrapper label{-webkit-margin-after:0;margin-block-end:0}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--pds-select-background);border:var(--pds-select-border);border-radius:var(--pds-select-border-radius);border-bottom-left-radius:var(--pds-select-border-radius-end-start, var(--pds-select-border-radius));border-bottom-right-radius:var(--pds-select-border-radius-end-end, var(--pds-select-border-radius));border-top-left-radius:var(--pds-select-border-radius-start-start, var(--pds-select-border-radius));border-top-right-radius:var(--pds-select-border-radius-start-end, var(--pds-select-border-radius));color:var(--pine-color-text);font:var(--pine-typography-body);grid-area:field;letter-spacing:var(--pine-letter-spacing);min-height:var(--pds-select-min-height);padding:calc(var(--pine-dimension-xs) - var(--pine-border-width)) var(--pine-dimension-150);-webkit-padding-end:var(--pine-dimension-450);padding-inline-end:var(--pine-dimension-450);position:relative}select:hover{border-color:var(--pine-color-border-hover);cursor:pointer}select:focus-visible{border-color:var(--pine-color-border-active);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}select:disabled{background-color:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-disabled);cursor:not-allowed}select:has(~.pds-select__message .pds-select__error-message){background-color:var(--pine-select-color-background-danger);border-color:var(--pine-color-border-danger)}:host-context([data-theme=dark]) select:has(~.pds-select__message .pds-select__error-message){background-color:var(--pine-color-red-950)}select:has(~.pds-select__message .pds-select__error-message):focus-visible{outline-color:var(--pine-color-focus-ring-danger)}:host(.is-invalid) select{background-color:var(--pine-select-color-background-danger);border-color:var(--pine-color-border-danger)}:host-context([data-theme=dark]) :host(.is-invalid) select{background-color:var(--pine-color-red-950)}:host(.is-invalid) select:focus-visible{outline-color:var(--pine-color-focus-ring-danger)}:host([highlight]:not(.is-disabled):not(.is-invalid)) select{background-color:var(--pine-color-accent-disabled);border-color:var(--pine-color-accent);color:var(--pine-color-text-accent)}:host([highlight]:not(.is-disabled):not(.is-invalid)) select:hover:not(:disabled){border-color:var(--pine-color-accent-hover)}:host([highlight]:not(.is-disabled):not(.is-invalid)) select:focus-visible{outline-color:var(--pine-color-focus-ring)}:host([highlight]:not(.is-disabled):not(.is-invalid)) .pds-select__select-icon{color:var(--pine-color-text-accent)}.pds-select__error-message,.pds-select__helper-message{color:var(--pine-color-text-message);font:var(--pine-typography-body-sm-medium);-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs)}.pds-select__error-message{color:var(--pine-color-text-message-danger);display:-ms-flexbox;display:flex;gap:var(--pine-dimension-2xs)}.pds-select__error-message pds-icon{-webkit-margin-before:var(--pine-dimension-025);margin-block-start:var(--pine-dimension-025)}.pds-select__message{grid-area:message}.pds-select__select-icon{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;grid-column:-1/-2;grid-row:2/3;height:var(--pds-select-min-height);pointer-events:none;position:relative;z-index:var(--pine-z-index-raised)}.visually-hidden{border:0;clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}";
12903
+ const pdsSelectCss = ":host{--pds-select-background:var(--pine-color-background-container);--pds-select-border:var(--pine-border);--pds-select-border-radius:var(--pine-dimension-125);--pds-select-border-radius-start-end:var(--pine-dimension-125);--pds-select-border-radius-start-start:var(--pine-dimension-125);--pds-select-border-radius-end-end:var(--pine-dimension-125);--pds-select-border-radius-end-start:var(--pine-dimension-125);--pds-select-min-height:36px;--box-shadow-focus:0 0 0 1px var(--pine-color-background-container), 0 0 0 3px var(--pine-color-focus-ring);--box-shadow-focus-error:0 0 0 1px var(--pine-color-background-container), 0 0 0 3px var(--pine-color-focus-ring-danger)}:host .hidden,:host :host([hidden]){display:none}.pds-select{color:var(--pine-color-text);display:grid;-ms-flex-direction:column;flex-direction:column;grid-template-areas:\"label label\" \"field field\" \"message message\";grid-template-columns:1fr minmax(2rem, -webkit-min-content);grid-template-columns:1fr minmax(2rem, min-content);grid-template-rows:-webkit-min-content -webkit-min-content -webkit-min-content;grid-template-rows:min-content min-content min-content;position:relative;width:100%}.pds-select__label-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;grid-area:label;-ms-flex-pack:justify;justify-content:space-between;-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}.pds-select__action{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs);-webkit-margin-start:var(--pine-dimension-xs);margin-inline-start:var(--pine-dimension-xs)}label{-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}.pds-select__label-wrapper label{-webkit-margin-after:0;margin-block-end:0}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--pds-select-background);border:var(--pds-select-border);border-radius:var(--pds-select-border-radius);border-bottom-left-radius:var(--pds-select-border-radius-end-start, var(--pds-select-border-radius));border-bottom-right-radius:var(--pds-select-border-radius-end-end, var(--pds-select-border-radius));border-top-left-radius:var(--pds-select-border-radius-start-start, var(--pds-select-border-radius));border-top-right-radius:var(--pds-select-border-radius-start-end, var(--pds-select-border-radius));color:var(--pine-color-text);font:var(--pine-typography-body);grid-area:field;letter-spacing:var(--pine-letter-spacing);min-height:var(--pds-select-min-height);padding:calc(var(--pine-dimension-xs) - var(--pine-border-width)) var(--pine-dimension-150);-webkit-padding-end:var(--pine-dimension-450);padding-inline-end:var(--pine-dimension-450);position:relative}select:hover{border-color:var(--pine-color-border-hover);cursor:pointer}select:focus-visible{border-color:var(--pine-color-border-active);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}select:disabled{background-color:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-disabled);cursor:not-allowed}select:has(~.pds-select__message .pds-select__error-message){background-color:var(--pine-select-color-background-danger);border-color:var(--pine-color-border-danger)}:host-context([data-theme=dark]) select:has(~.pds-select__message .pds-select__error-message){background-color:var(--pine-color-red-950)}select:has(~.pds-select__message .pds-select__error-message):focus-visible{outline-color:var(--pine-color-focus-ring-danger)}:host(.is-invalid) select{background-color:var(--pine-select-color-background-danger);border-color:var(--pine-color-border-danger)}:host-context([data-theme=dark]) :host(.is-invalid) select{background-color:var(--pine-color-red-950)}:host(.is-invalid) select:focus-visible{outline-color:var(--pine-color-focus-ring-danger)}:host([highlight]:not(.is-disabled):not(.is-invalid)) select{background-color:var(--pine-color-accent-disabled);border-color:var(--pine-color-accent);color:var(--pine-color-text-accent)}:host([highlight]:not(.is-disabled):not(.is-invalid)) select:hover:not(:disabled){border-color:var(--pine-color-accent-hover)}:host([highlight]:not(.is-disabled):not(.is-invalid)) select:focus-visible{outline-color:var(--pine-color-focus-ring)}:host([highlight]:not(.is-disabled):not(.is-invalid)) .pds-select__select-icon{color:var(--pine-color-text-accent)}.pds-select__error-message,.pds-select__helper-message{color:var(--pine-color-text-message);font:var(--pine-typography-body-sm-medium);-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs)}.pds-select__error-message{color:var(--pine-color-text-message-danger);display:-ms-flexbox;display:flex;gap:var(--pine-dimension-2xs)}.pds-select__error-message pds-icon{-webkit-margin-before:var(--pine-dimension-025);margin-block-start:var(--pine-dimension-025)}.pds-select__message{grid-area:message}.pds-select__select-icon{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;grid-column:-1/-2;grid-row:2/3;height:var(--pds-select-min-height);pointer-events:none;position:relative;z-index:var(--pine-z-index-raised)}.visually-hidden{border:0;clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}";
12099
12904
 
12100
12905
  /**
12101
12906
  * @slot action - Content to be displayed in the label area, typically for help icons or links
@@ -12104,6 +12909,9 @@ class PdsSelect {
12104
12909
  constructor(hostRef) {
12105
12910
  registerInstance(this, hostRef);
12106
12911
  this.pdsSelectChange = createEvent(this, "pdsSelectChange");
12912
+ this.pdsBlur = createEvent(this, "pdsBlur");
12913
+ this.pdsFocus = createEvent(this, "pdsFocus");
12914
+ this.pdsKeyDown = createEvent(this, "pdsKeyDown");
12107
12915
  this._type = 'select-one';
12108
12916
  /**
12109
12917
  * Indicates whether or not the select field is disabled.
@@ -12136,6 +12944,15 @@ class PdsSelect {
12136
12944
  }
12137
12945
  this.pdsSelectChange.emit(e);
12138
12946
  };
12947
+ this.onBlur = (ev) => {
12948
+ this.pdsBlur.emit(ev);
12949
+ };
12950
+ this.onFocus = (ev) => {
12951
+ this.pdsFocus.emit(ev);
12952
+ };
12953
+ this.onKeyDown = (ev) => {
12954
+ this.pdsKeyDown.emit(ev);
12955
+ };
12139
12956
  /**
12140
12957
  * Handles the change event for the slot element.
12141
12958
  * This method is triggered when the slot content changes.
@@ -12309,7 +13126,7 @@ class PdsSelect {
12309
13126
  }
12310
13127
  render() {
12311
13128
  const hasAction = this.el.querySelector('[slot="action"]') !== null;
12312
- return (hAsync(Host, { key: 'a9139d93b3e1057646643bce5cef8f5bd072615d', "aria-disabled": this.disabled ? 'true' : null, class: this.classNames(), "has-action": hasAction && !this.hideLabel ? 'true' : null }, hAsync("div", { key: '14d7461f057934efdf78d9db06a0a56dd7f58564', class: "pds-select" }, !this.hideLabel && (hAsync("div", { key: '5f4d16ba16d7a3eab2ab04cc1b62f0b221078d6b', class: "pds-select__label-wrapper" }, hAsync("label", { key: 'df577d4a6d3ae08b9da868deb16962d43b1b1051', htmlFor: this.componentId }, hAsync("span", { key: 'd79d03a5324354310518dbf05a57a1ffa5c16a1d', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), hasAction && this.renderAction())), hAsync("select", { key: '930837a21d20551e3a4110f7329ea08b93dcdca8', "aria-label": this.hideLabel ? this.label : undefined, autocomplete: this.autocomplete || undefined, class: "pds-select__field", disabled: this.disabled, id: this.componentId, multiple: this.multiple, name: this.name, onChange: this.onSelectUpdate, part: "select", required: this.required, ref: (el) => (this.selectEl = el) }), hAsync("div", { key: '1265a08cb7c8b953e136430ec444f9d3c72bb6e0', "aria-hidden": "true", class: "hidden", ref: (el) => (this.slotContainer = el) }, hAsync("slot", { key: 'e1038e19520ac144b5f2416a1ea0e9c6d5be5d88', onSlotchange: this.handleSlotChange })), this.renderMessages(), !this.multiple && hAsync("pds-icon", { key: 'ecd39b109ec38d9e61c8c3d0281c01d8fc25da12', class: "pds-select__select-icon", icon: enlarge }))));
13129
+ return (hAsync(Host, { key: 'ce2ea014cb9651d4702eddc57a873684bd30aecb', "aria-disabled": this.disabled ? 'true' : null, class: this.classNames(), "has-action": hasAction && !this.hideLabel ? 'true' : null }, hAsync("div", { key: '960c12bb9cc16261ddd54f381dc633a72724847d', class: "pds-select" }, !this.hideLabel && (hAsync("div", { key: '599ab73596c72413778aeb54148105d28556c7b6', class: "pds-select__label-wrapper" }, hAsync("label", { key: '04a9c836822bc80013d022e5e91f025ac304c34b', htmlFor: this.componentId }, hAsync("span", { key: '5b01e324cc15017672682af17126bcc5942b0d6a', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), hasAction && this.renderAction())), hAsync("select", { key: 'f13a0bfa5b6e7b34e7edcf9b807e90bbdcc8da95', "aria-label": this.hideLabel ? this.label : undefined, autocomplete: this.autocomplete || undefined, class: "pds-select__field", disabled: this.disabled, id: this.componentId, multiple: this.multiple, name: this.name, onBlur: this.onBlur, onChange: this.onSelectUpdate, onFocus: this.onFocus, onKeyDown: this.onKeyDown, part: "select", required: this.required, ref: (el) => (this.selectEl = el) }), hAsync("div", { key: 'cd01ea77340c9d1ffdf61494a64138c9361a93a1', "aria-hidden": "true", class: "hidden", ref: (el) => (this.slotContainer = el) }, hAsync("slot", { key: '34c97591724950d7e4a5dfcb35b1945f2d457dbb', onSlotchange: this.handleSlotChange })), this.renderMessages(), !this.multiple && hAsync("pds-icon", { key: '7179c3c86292e79839fa245d7ed5b050295893cc', class: "pds-select__select-icon", icon: enlarge }))));
12313
13130
  }
12314
13131
  static get formAssociated() { return true; }
12315
13132
  get el() { return getElement(this); }
@@ -15053,7 +15870,7 @@ class PdsSortable {
15053
15870
  Sortable.create(this.el, sortableOptions);
15054
15871
  }
15055
15872
  render() {
15056
- return (hAsync(Host, { key: '4f1335560e5082991c6f3dffcf30d83f89b2c20c', class: this.classNames(), id: this.componentId }, hAsync("slot", { key: '848505cc4b31df36c57c2db8690d1ce93df17b92' })));
15873
+ return (hAsync(Host, { key: 'b01f12d7d2973ce2fa513a468be3634e38241171', class: this.classNames(), id: this.componentId }, hAsync("slot", { key: '7d9dff192e9b6a01e71c41d9250c0245ca548658' })));
15057
15874
  }
15058
15875
  get el() { return getElement(this); }
15059
15876
  static get style() { return pdsSortableCss; }
@@ -15100,7 +15917,7 @@ class PdsSortableItem {
15100
15917
  }
15101
15918
  }
15102
15919
  render() {
15103
- return (hAsync(Host, { key: '3af6da44189e50cffdbcfa4c82a6dba1fe33ff0e', class: "pds-sortable-item", id: this.componentId }, this.showHandle && (hAsync("div", { key: '19925b01cabdcb7e9f06b3e3445b95cb171ee69e', class: "pds-sortable-item__handle" }, hAsync("pds-icon", { key: 'ac514e4506528afd794b1df3574091bc311b3469', icon: handle }))), hAsync("slot", { key: '37acfdce5241144a4e5c804f7fb407ad5f7bc7d1' }), this.enableActions && (hAsync("div", { key: '64679ea0a82688c111efaec9a1370b1bd83480d3', class: "pds-sortable-item__actions" }, hAsync("slot", { key: 'a2bb4a9bf2e4900f5f2c12b2d6e0bcc3a49a9042', name: "sortable-item-actions" })))));
15920
+ return (hAsync(Host, { key: 'c2b286104572c25626e9c1ae419c2526ac1eb9a1', class: "pds-sortable-item", id: this.componentId }, this.showHandle && (hAsync("div", { key: '29354af0cc9ca6623794e3abf7b9419edd0a8e8f', class: "pds-sortable-item__handle" }, hAsync("pds-icon", { key: '17a662d94426e292c3a25c4567f3714f207e2383', icon: handle }))), hAsync("slot", { key: 'a3cee3d4c8dbb213e7a1d9bbf6fdce59fa8b796d' }), this.enableActions && (hAsync("div", { key: '8b314f938ed53ab6680b020bd38aa6dbee804aad', class: "pds-sortable-item__actions" }, hAsync("slot", { key: '60fe3c241349d91d6325e67bf2a63fe1f7858fc8', name: "sortable-item-actions" })))));
15104
15921
  }
15105
15922
  get el() { return getElement(this); }
15106
15923
  static get style() { return pdsSortableItemCss; }
@@ -15205,9 +16022,9 @@ class PdsSwitch {
15205
16022
  this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
15206
16023
  }
15207
16024
  render() {
15208
- return (hAsync(Host, { key: '15737c5ac3c492efc88e29f5e63496ed07ab5fe6', class: this.switchClassNames(), "aria-disabled": this.disabled ? 'true' : null }, hAsync("label", { key: '30278cef4ab6bdc51e65f20e19883c3354c9b23a', htmlFor: this.componentId }, hAsync("input", Object.assign({ key: '598b641ab1a6c8dadad4df275513b1e910fd0167', "aria-describedby": assignDescription(this.componentId, this.invalid, this.errorMessage || this.helperMessage), "aria-invalid": this.invalid ? "true" : undefined, checked: this.checked, class: "pds-switch__input", disabled: this.disabled, id: this.componentId, name: this.name ? this.name : this.componentId, onChange: this.onSwitchUpdate, required: this.required, type: "checkbox", value: this.value }, this.inheritedAttributes)), hAsync("span", { key: '4d8a1c874d6cfe8bfac9ccc06ca03a6c8c25864e', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), this.helperMessage &&
15209
- hAsync("div", { key: '8a1eee8b5afcac6bb9a3399424aaf6d3995050cf', class: `pds-switch__message`, id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
15210
- hAsync("div", { key: '1a6b5bbb1e90a745c928b297262dcf705d429a8e', class: `pds-switch__message pds-switch__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: '055e7011ba1ec1379396baab41e10c03111567d3', icon: danger, size: "small" }), this.errorMessage)));
16025
+ return (hAsync(Host, { key: '9854669943e6649187ce91c8a129d2dd9f100e85', class: this.switchClassNames(), "aria-disabled": this.disabled ? 'true' : null }, hAsync("label", { key: '11d9a6deb7223a77981da4a7145059255e9a5629', htmlFor: this.componentId }, hAsync("input", Object.assign({ key: '525888746cd4181d8216878352b0ddfe0a16a64d', "aria-describedby": assignDescription(this.componentId, this.invalid, this.errorMessage || this.helperMessage), "aria-invalid": this.invalid ? "true" : undefined, checked: this.checked, class: "pds-switch__input", disabled: this.disabled, id: this.componentId, name: this.name ? this.name : this.componentId, onChange: this.onSwitchUpdate, required: this.required, type: "checkbox", value: this.value }, this.inheritedAttributes)), hAsync("span", { key: '11dbfd6f30488217164949130d5629aea305a65c', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), this.helperMessage &&
16026
+ hAsync("div", { key: 'c8cbe1e266de9a67772d37bf1c25439f36705c2b', class: `pds-switch__message`, id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
16027
+ hAsync("div", { key: 'f1155010ae7aca24a7e860d8b67897254e32db00', class: `pds-switch__message pds-switch__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: '530e2a963f9051ee3d044dc9a82b673613a93f5c', icon: danger, size: "small" }), this.errorMessage)));
15211
16028
  }
15212
16029
  static get formAssociated() { return true; }
15213
16030
  get el() { return getElement(this); }
@@ -15237,7 +16054,7 @@ class PdsSwitch {
15237
16054
  }; }
15238
16055
  }
15239
16056
 
15240
- const pdsTabCss = "pds-tab{-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex;position:relative}.pds-tabs--pill pds-tab{-ms-flex:1;flex:1}.pds-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:var(--pine-border-width-none);-webkit-box-shadow:none;box-shadow:none;color:inherit;cursor:pointer;font-family:inherit;padding:var(--pine-dimension-none);-ms-flex-align:center;align-items:center;color:var(--pine-color-text-secondary);display:-ms-inline-flexbox;display:inline-flex;position:relative;text-decoration:none;white-space:nowrap}.pds-tab.is-active,.pds-tab[aria-selected=true]{color:var(--pine-color-text)}.pds-tab.is-active .pds-tab__content::after,.pds-tab[aria-selected=true] .pds-tab__content::after{opacity:1}.pds-tab:hover:not(:disabled){color:var(--pine-color-text)}.pds-tab:focus{outline:none}.pds-tab:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-tab:disabled,.pds-tab.is-disabled{color:var(--pine-color-text-disabled);cursor:not-allowed;pointer-events:none}.pds-tab .pds-tab__content{font-family:var(--pine-font-family-body);font-size:var(--pine-font-size);font-weight:var(--pine-font-weight-medium);letter-spacing:var(--pine-letter-spacing);line-height:var(--pine-line-height-body);-webkit-padding-after:11px;padding-block-end:11px;position:relative}.pds-tab .pds-tab__content::after{background-color:var(--pine-color-brand);content:\"\";height:3px;inset-block-end:var(--pine-dimension-none);inset-inline-end:var(--pine-dimension-none);inset-inline-start:var(--pine-dimension-none);opacity:0;position:absolute}.pds-tab .pds-tab-edge{display:none}.pds-tabs--availability{--color-background-tab:transparent}.pds-tabs--availability .pds-tab{background-color:var(--color-background-tab);border-radius:calc(var(--pine-dimension-xs) * 1.25) calc(var(--pine-dimension-xs) * 1.25) var(--pine-dimension-none) var(--pine-dimension-none);color:var(--pine-color-text-secondary);padding:8px 16px 13px}.pds-tabs--availability .pds-tab.is-active,.pds-tabs--availability .pds-tab[aria-selected=true]{--color-background-tab:var(--pine-color-secondary);color:var(--pine-color-text)}.pds-tabs--availability .pds-tab.is-active .pds-tab__content::after,.pds-tabs--availability .pds-tab[aria-selected=true] .pds-tab__content::after{opacity:1}.pds-tabs--availability .pds-tab.is-active .pds-tab-edge,.pds-tabs--availability .pds-tab[aria-selected=true] .pds-tab-edge{z-index:var(--pine-z-index-raised)}.pds-tabs--availability .pds-tab:hover:not(.is-active,[aria-selected=true],:disabled){--color-background-tab:var(--pine-color-secondary-hover);color:var(--pine-color-text)}.pds-tabs--availability .pds-tab:focus-visible{color:var(--pine-color-text-secondary)}.pds-tabs--availability .pds-tab:disabled,.pds-tabs--availability .pds-tab.is-disabled{--color-background-tab:transparent;color:var(--pine-color-text-disabled)}.pds-tabs--availability .pds-tab__content{-webkit-padding-after:7px;padding-block-end:7px}.pds-tabs--availability .pds-tab-edge{bottom:0;display:block;height:8px;inset-inline-end:100%;overflow:hidden;position:absolute;width:8px}.pds-tabs--availability .pds-tab-edge::before{border-radius:50%;bottom:0;-webkit-box-shadow:4px 4px 0 0 var(--color-background-tab);box-shadow:4px 4px 0 0 var(--color-background-tab);content:\"\";display:block;height:200%;inset-inline-end:0;position:absolute;width:200%}.pds-tabs--availability .pds-tab-edge--end{inset-inline-end:unset;inset-inline-start:100%}.pds-tabs--availability .pds-tab-edge--end::before{-webkit-box-shadow:-4px 4px 0 0 var(--color-background-tab);box-shadow:-4px 4px 0 0 var(--color-background-tab);inset-inline-end:unset;inset-inline-start:0}.pds-tabs--filter .pds-tab{background-color:var(--pine-color-background-muted);border-radius:50px;color:var(--pine-color-text);padding:6px 15px}.pds-tabs--filter .pds-tab.is-active,.pds-tabs--filter .pds-tab[aria-selected=true]{background-color:var(--pine-color-primary);color:var(--pine-color-text-primary)}.pds-tabs--filter .pds-tab.is-active:hover:not(:disabled),.pds-tabs--filter .pds-tab[aria-selected=true]:hover:not(:disabled){background-color:var(--pine-color-primary-hover)}.pds-tabs--filter .pds-tab:hover:not(.is-active,[aria-selected=true],:disabled){background-color:var(--pine-color-border-disabled)}.pds-tabs--filter .pds-tab:disabled,.pds-tabs--filter .pds-tab.is-disabled{background-color:transparent;color:var(--pine-color-text-disabled)}.pds-tabs--filter .pds-tab:disabled.is-active,.pds-tabs--filter .pds-tab:disabled[aria-selected=true],.pds-tabs--filter .pds-tab.is-disabled.is-active,.pds-tabs--filter .pds-tab.is-disabled[aria-selected=true]{background-color:var(--pine-color-primary-disabled)}.pds-tabs--filter .pds-tab__content{-webkit-padding-after:var(--pine-dimension-none);padding-block-end:var(--pine-dimension-none)}.pds-tabs--filter .pds-tab__content::after{content:unset}.pds-tabs--pill{--color-background-tab:transparent}.pds-tabs--pill .pds-tab{background-color:var(--color-background-tab);border:var(--pine-border-width-thin) solid transparent;border-radius:var(--pine-dimension-xs);color:var(--pine-color-text-muted);-ms-flex:1;flex:1;height:34px;-ms-flex-pack:center;justify-content:center}.pds-tabs--pill .pds-tab .pds-tab__content{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-webkit-padding-after:0;padding-block-end:0}.pds-tabs--pill .pds-tab.is-active,.pds-tabs--pill .pds-tab[aria-selected=true]{--color-background-tab:var(--pine-color-background-container);border-color:var(--pine-color-border);-webkit-box-shadow:var(--pine-box-shadow-100);box-shadow:var(--pine-box-shadow-100);color:var(--pine-color-text-active);}.pds-tabs--pill .pds-tab.is-active:focus-visible,.pds-tabs--pill .pds-tab[aria-selected=true]:focus-visible{border-color:var(--color-border-focus);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-tabs--pill .pds-tab.is-active .pds-tab__content::after,.pds-tabs--pill .pds-tab[aria-selected=true] .pds-tab__content::after{opacity:0}.pds-tabs--pill .pds-tab:disabled,.pds-tabs--pill .pds-tab.is-disabled{color:var(--pine-color-text-disabled)}";
16057
+ const pdsTabCss = "pds-tab{-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex;position:relative}.pds-tabs--pill pds-tab{-ms-flex:1;flex:1}.pds-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:var(--pine-border-width-none);-webkit-box-shadow:none;box-shadow:none;color:inherit;cursor:pointer;font-family:inherit;padding:var(--pine-dimension-none);-ms-flex-align:center;align-items:center;color:var(--pine-color-text-secondary);display:-ms-inline-flexbox;display:inline-flex;position:relative;text-decoration:none;white-space:nowrap}.pds-tab.is-active,.pds-tab[aria-selected=true]{color:var(--pine-color-text)}.pds-tab.is-active .pds-tab__content::after,.pds-tab[aria-selected=true] .pds-tab__content::after{opacity:1}.pds-tab:hover:not(:disabled){color:var(--pine-color-text)}.pds-tab:focus{outline:none}.pds-tab:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-tab:disabled,.pds-tab.is-disabled{color:var(--pine-color-text-disabled);cursor:not-allowed;pointer-events:none}.pds-tab .pds-tab__content{font-family:var(--pine-font-family-body);font-size:var(--pine-font-size);font-weight:var(--pine-font-weight-medium);letter-spacing:var(--pine-letter-spacing);line-height:var(--pine-line-height-body);-webkit-padding-after:11px;padding-block-end:11px;position:relative}.pds-tab .pds-tab__content::after{background-color:var(--pine-color-brand);content:\"\";height:3px;inset-block-end:var(--pine-dimension-none);inset-inline-end:var(--pine-dimension-none);inset-inline-start:var(--pine-dimension-none);opacity:0;position:absolute}.pds-tab .pds-tab-edge{display:none}.pds-tabs--availability{--color-background-tab:transparent}.pds-tabs--availability .pds-tab{background-color:var(--color-background-tab);border-radius:calc(var(--pine-dimension-xs) * 1.25) calc(var(--pine-dimension-xs) * 1.25) var(--pine-dimension-none) var(--pine-dimension-none);color:var(--pine-color-text-secondary);padding:8px 16px 13px}.pds-tabs--availability .pds-tab.is-active,.pds-tabs--availability .pds-tab[aria-selected=true]{--color-background-tab:var(--pine-color-secondary);color:var(--pine-color-text)}.pds-tabs--availability .pds-tab.is-active .pds-tab__content::after,.pds-tabs--availability .pds-tab[aria-selected=true] .pds-tab__content::after{opacity:1}.pds-tabs--availability .pds-tab.is-active .pds-tab-edge,.pds-tabs--availability .pds-tab[aria-selected=true] .pds-tab-edge{z-index:var(--pine-z-index-raised)}.pds-tabs--availability .pds-tab:hover:not(.is-active,[aria-selected=true],:disabled){--color-background-tab:var(--pine-color-secondary-hover);color:var(--pine-color-text)}.pds-tabs--availability .pds-tab:focus-visible{color:var(--pine-color-text-secondary)}.pds-tabs--availability .pds-tab:disabled,.pds-tabs--availability .pds-tab.is-disabled{--color-background-tab:transparent;color:var(--pine-color-text-disabled)}.pds-tabs--availability .pds-tab__content{-webkit-padding-after:7px;padding-block-end:7px}.pds-tabs--availability .pds-tab-edge{bottom:0;display:block;height:8px;inset-inline-end:100%;overflow:hidden;position:absolute;width:8px}.pds-tabs--availability .pds-tab-edge::before{border-radius:50%;bottom:0;-webkit-box-shadow:4px 4px 0 0 var(--color-background-tab);box-shadow:4px 4px 0 0 var(--color-background-tab);content:\"\";display:block;height:200%;inset-inline-end:0;position:absolute;width:200%}.pds-tabs--availability .pds-tab-edge--end{inset-inline-end:unset;inset-inline-start:100%}.pds-tabs--availability .pds-tab-edge--end::before{-webkit-box-shadow:-4px 4px 0 0 var(--color-background-tab);box-shadow:-4px 4px 0 0 var(--color-background-tab);inset-inline-end:unset;inset-inline-start:0}.pds-tabs--filter .pds-tab{background-color:var(--pine-color-background-muted);border-radius:50px;color:var(--pine-color-text);padding:6px 15px}.pds-tabs--filter .pds-tab.is-active,.pds-tabs--filter .pds-tab[aria-selected=true]{background-color:var(--pine-color-primary);color:var(--pine-color-text-primary)}.pds-tabs--filter .pds-tab.is-active:hover:not(:disabled),.pds-tabs--filter .pds-tab[aria-selected=true]:hover:not(:disabled){background-color:var(--pine-color-primary-hover)}.pds-tabs--filter .pds-tab:hover:not(.is-active,[aria-selected=true],:disabled){background-color:var(--pine-color-border-disabled)}.pds-tabs--filter .pds-tab:disabled,.pds-tabs--filter .pds-tab.is-disabled{background-color:transparent;color:var(--pine-color-text-disabled)}.pds-tabs--filter .pds-tab:disabled.is-active,.pds-tabs--filter .pds-tab:disabled[aria-selected=true],.pds-tabs--filter .pds-tab.is-disabled.is-active,.pds-tabs--filter .pds-tab.is-disabled[aria-selected=true]{background-color:var(--pine-color-primary-disabled)}.pds-tabs--filter .pds-tab__content{-webkit-padding-after:var(--pine-dimension-none);padding-block-end:var(--pine-dimension-none)}.pds-tabs--filter .pds-tab__content::after{content:unset}.pds-tabs--pill{--color-background-tab:transparent}.pds-tabs--pill .pds-tab{background-color:var(--color-background-tab);border:var(--pine-border-width-thin) solid transparent;border-radius:var(--pine-dimension-xs);color:var(--pine-color-text-muted);-ms-flex:1;flex:1;height:34px;-ms-flex-pack:center;justify-content:center}.pds-tabs--pill .pds-tab .pds-tab__content{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-webkit-padding-after:0;padding-block-end:0}.pds-tabs--pill .pds-tab.is-active,.pds-tabs--pill .pds-tab[aria-selected=true]{--color-background-tab:var(--pine-color-background-container);border-color:var(--pine-color-border);-webkit-box-shadow:var(--pine-box-shadow-100);box-shadow:var(--pine-box-shadow-100);color:var(--pine-color-text-active)}.pds-tabs--pill .pds-tab.is-active:focus-visible,.pds-tabs--pill .pds-tab[aria-selected=true]:focus-visible{border-color:var(--color-border-focus);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-tabs--pill .pds-tab.is-active,.pds-tabs--pill .pds-tab[aria-selected=true]{}.pds-tabs--pill .pds-tab.is-active .pds-tab__content::after,.pds-tabs--pill .pds-tab[aria-selected=true] .pds-tab__content::after{opacity:0}.pds-tabs--pill .pds-tab.is-active,.pds-tabs--pill .pds-tab[aria-selected=true]{}.pds-tabs--pill .pds-tab:disabled,.pds-tabs--pill .pds-tab.is-disabled{color:var(--pine-color-text-disabled)}";
15241
16058
 
15242
16059
  class PdsTab {
15243
16060
  constructor(hostRef) {
@@ -15268,9 +16085,9 @@ class PdsTab {
15268
16085
  return classes.filter(Boolean).join(' ');
15269
16086
  }
15270
16087
  render() {
15271
- const availabilityTabEdgeInlineStart = (hAsync("span", { key: '7a70cf5b681ec05215920417c4ba590fed238f63', class: "pds-tab-edge", role: "presentation" }));
15272
- const availabilityTabEdgeInlineEnd = (hAsync("span", { key: '21a1422bb00a6221f7db1b0e77abcd024eec60cd', class: "pds-tab-edge pds-tab-edge--end", role: "presentation" }));
15273
- return (hAsync(Host, { key: 'bcf73da727080cdb5b9ec7356768dd2cefab44ae', variant: this.variant, slot: "tabs", index: this.index }, hAsync("button", { key: '25e140fc63a8ddaa44d08198f14d568bca83f16a', role: "tab", id: this.parentComponentId + "__" + this.name, "aria-controls": this.parentComponentId + "__" + this.name + "-panel", tabindex: this.disabled ? "-1" : (this.selected ? "0" : "-1"), "aria-selected": this.selected ? "true" : "false", "aria-disabled": this.disabled ? "true" : null, disabled: this.disabled, class: this.classNames(), onClick: this.onTabClick.bind(this, this.index, this.parentComponentId) }, this.variant === "availability" && availabilityTabEdgeInlineStart, this.variant === "availability" && availabilityTabEdgeInlineEnd, hAsync("div", { key: '002252b89b74bf2ab26bb33331f4296a22a4cf70', class: "pds-tab__content" }, hAsync("slot", { key: '1f67182b80504391a87509567cb68ca8ff6f9b22' })))));
16088
+ const availabilityTabEdgeInlineStart = (hAsync("span", { key: 'e8e263009d29fea16f1cf51de545f07d3529568d', class: "pds-tab-edge", role: "presentation" }));
16089
+ const availabilityTabEdgeInlineEnd = (hAsync("span", { key: 'f492586e916cddbbdf04c3a2cdb84ad0d669df36', class: "pds-tab-edge pds-tab-edge--end", role: "presentation" }));
16090
+ return (hAsync(Host, { key: 'ec4c47883d2a1721d7986a152f787852352cb058', variant: this.variant, slot: "tabs", index: this.index }, hAsync("button", { key: '2f2436892e5cf20e777bf9624c022a88177776dd', role: "tab", id: this.parentComponentId + "__" + this.name, "aria-controls": this.parentComponentId + "__" + this.name + "-panel", tabindex: this.disabled ? "-1" : (this.selected ? "0" : "-1"), "aria-selected": this.selected ? "true" : "false", "aria-disabled": this.disabled ? "true" : null, disabled: this.disabled, class: this.classNames(), onClick: this.onTabClick.bind(this, this.index, this.parentComponentId) }, this.variant === "availability" && availabilityTabEdgeInlineStart, this.variant === "availability" && availabilityTabEdgeInlineEnd, hAsync("div", { key: '202d34facfc70b5ca3ef6dfb9d9a2f36a09747d2', class: "pds-tab__content" }, hAsync("slot", { key: '002cc5de784ff0cd01b06688c2205a490c47d27b' })))));
15274
16091
  }
15275
16092
  get el() { return getElement(this); }
15276
16093
  static get style() { return pdsTabCss; }
@@ -15308,6 +16125,12 @@ class PdsTable {
15308
16125
  * @defaultValue false
15309
16126
  */
15310
16127
  this.rowDividers = false;
16128
+ /**
16129
+ * The direction to sort the default column on initial load.
16130
+ * Only applies if `defaultSortColumn` is set.
16131
+ * @defaultValue 'asc'
16132
+ */
16133
+ this.defaultSortDirection = 'asc';
15311
16134
  /**
15312
16135
  * The name of the column being sorted.
15313
16136
  * @defaultValue null
@@ -15319,13 +16142,41 @@ class PdsTable {
15319
16142
  */
15320
16143
  this.sortingDirection = 'asc';
15321
16144
  }
15322
- componentWillLoad() {
15323
- this.sortingColumn = null;
15324
- }
15325
16145
  componentDidLoad() {
15326
16146
  if (this.responsive) {
15327
16147
  this.setupResponsiveScrolling();
15328
16148
  }
16149
+ // Apply default sort if specified
16150
+ if (this.defaultSortColumn) {
16151
+ void this.applyDefaultSort().catch((err) => {
16152
+ console.warn('Failed to apply default sort.', err);
16153
+ });
16154
+ }
16155
+ }
16156
+ /**
16157
+ * Applies the default sort configuration on initial load.
16158
+ * Finds the matching column header and activates its sort state.
16159
+ * @private
16160
+ */
16161
+ async applyDefaultSort() {
16162
+ var _a;
16163
+ // Normalize direction to handle invalid HTML attribute values
16164
+ const direction = this.defaultSortDirection === 'desc' ? 'desc' : 'asc';
16165
+ // Find the matching sortable header cell
16166
+ const columnHeaderCells = Array.from(this.el.querySelectorAll('pds-table-head-cell[sortable]'));
16167
+ const matchingCell = columnHeaderCells.find((cell) => { var _a; return ((_a = cell.textContent) !== null && _a !== void 0 ? _a : '').trim() === this.defaultSortColumn; });
16168
+ if (matchingCell) {
16169
+ const columnName = ((_a = matchingCell.textContent) !== null && _a !== void 0 ? _a : '').trim();
16170
+ // Sort the table data
16171
+ this.sortTable(columnName, direction);
16172
+ this.sortingColumn = columnName;
16173
+ this.sortingDirection = direction;
16174
+ // Activate the visual state on the header cell
16175
+ await matchingCell.setActiveSort(direction);
16176
+ }
16177
+ else {
16178
+ console.warn(`Default sort column "${this.defaultSortColumn}" not found.`);
16179
+ }
15329
16180
  }
15330
16181
  disconnectedCallback() {
15331
16182
  if (this._teardownResponsive) {
@@ -15428,6 +16279,9 @@ class PdsTable {
15428
16279
  }
15429
16280
  sortTable(column, direction) {
15430
16281
  const tableBody = this.el.querySelector('pds-table-body');
16282
+ // Return early if no table body exists
16283
+ if (!tableBody)
16284
+ return;
15431
16285
  // Get the rows in the table body
15432
16286
  const tableRows = Array.from(tableBody.querySelectorAll('pds-table-row'));
15433
16287
  // Find the column index based on the column name
@@ -15456,6 +16310,8 @@ class PdsTable {
15456
16310
  });
15457
16311
  }
15458
16312
  handleTableSort(event) {
16313
+ if (event.defaultPrevented)
16314
+ return;
15459
16315
  const { direction } = event.detail;
15460
16316
  this.sortTable(event.detail.column, direction);
15461
16317
  this.sortingColumn = event.detail.column;
@@ -15501,6 +16357,8 @@ class PdsTable {
15501
16357
  "fixedColumn": [4, "fixed-column"],
15502
16358
  "selectable": [4],
15503
16359
  "rowDividers": [516, "row-dividers"],
16360
+ "defaultSortColumn": [1, "default-sort-column"],
16361
+ "defaultSortDirection": [1, "default-sort-direction"],
15504
16362
  "sortingColumn": [32],
15505
16363
  "sortingDirection": [32]
15506
16364
  },
@@ -15517,7 +16375,7 @@ class PdsTableBody {
15517
16375
  registerInstance(this, hostRef);
15518
16376
  }
15519
16377
  render() {
15520
- return (hAsync(Host, { key: '299a00424cf34acb2d2cbddf2c51c853558f270d', role: "rowgroup", part: "body" }, hAsync("slot", { key: '718b97595d037cf6c19e8bfb2a9702a2a3fc1058' })));
16378
+ return (hAsync(Host, { key: '1f6ce73abaf0ecb3f592f754bedef557c7ea197d', role: "rowgroup", part: "body" }, hAsync("slot", { key: '4a9758bb6c17de60cb345216d9b3e7c58cd44499' })));
15521
16379
  }
15522
16380
  static get style() { return pdsTableBodyCss; }
15523
16381
  static get cmpMeta() { return {
@@ -15628,11 +16486,11 @@ class PdsTableCell {
15628
16486
  return classNames.join(' ');
15629
16487
  }
15630
16488
  render() {
15631
- return (hAsync(Host, { key: '996bf5f70f450e57b0c44023ddf5f44f6af8e367', class: this.classNames(), role: "gridcell", part: "cell", style: this.tableRef &&
16489
+ return (hAsync(Host, { key: '102c412e68bd877ee88866d2c66838d62cb7cab2', class: this.classNames(), role: "gridcell", part: "cell", style: this.tableRef &&
15632
16490
  this.tableRef.fixedColumn &&
15633
16491
  this.tableRef.selectable
15634
16492
  ? { '--fixed-cell-position': '40px' }
15635
- : {} }, hAsync("slot", { key: 'f6e5fc35adeb18fa939534f3b409b282d121a797' })));
16493
+ : {} }, hAsync("slot", { key: 'fae2d378d6e1c5c3abb34cb4a75b74930d56965c' })));
15636
16494
  }
15637
16495
  get hostElement() { return getElement(this); }
15638
16496
  static get style() { return pdsTableCellCss; }
@@ -15704,7 +16562,7 @@ class PdsTableHead {
15704
16562
  }
15705
16563
  }
15706
16564
  render() {
15707
- return (hAsync(Host, { key: 'ebcbe90052f2f4b5aa6e3a09a7b23c46e5aba90f', role: "row", part: "head" }, this.tableRef && this.tableRef.selectable && (hAsync("pds-table-head-cell", { key: 'cd43463e58db8244439d07b3826534a70028c1a4', part: this.tableRef.selectable ? 'checkbox-cell' : '' }, hAsync("pds-checkbox", { key: 'd6f4e05806a2c823188bc01fdc7a299aab9bf7d7', componentId: this.generateUniqueId(), indeterminate: this.indeterminate, onInput: this.handleInput, label: "Select All Rows", hideLabel: true, checked: this.isSelected, part: "select-all-checkbox" }))), hAsync("slot", { key: '8f86dd51b56f5c37cdcfbd3b2513b0e92c6e4c14' })));
16565
+ return (hAsync(Host, { key: 'b68c0d7259cfced019c138dc4504c142e7e12ff9', role: "row", part: "head" }, this.tableRef && this.tableRef.selectable && (hAsync("pds-table-head-cell", { key: '90c91ee525359986e7878e8ae647411bf9b4a637', part: this.tableRef.selectable ? 'checkbox-cell' : '' }, hAsync("pds-checkbox", { key: 'd79ebef09df3424ed36d8838ecdc5ca6a0029c8a', componentId: this.generateUniqueId(), indeterminate: this.indeterminate, onInput: this.handleInput, label: "Select All Rows", hideLabel: true, checked: this.isSelected, part: "select-all-checkbox" }))), hAsync("slot", { key: '17eca8a861fceb73b8d957ab0d5ba2cf7b256b55' })));
15708
16566
  }
15709
16567
  get hostElement() { return getElement(this); }
15710
16568
  static get style() { return pdsTableHeadCss; }
@@ -15755,6 +16613,11 @@ class PdsTableHeadCell {
15755
16613
  * @defaultValue false
15756
16614
  */
15757
16615
  this.hasHeadBackground = false;
16616
+ /**
16617
+ * Determines if this column is the currently active sorted column.
16618
+ * @defaultValue false
16619
+ */
16620
+ this.isActive = false;
15758
16621
  /**
15759
16622
  * Handles scroll events to update fixed column shadow state.
15760
16623
  * Updates the tableScrolling state to control CSS classes for fixed column shadows.
@@ -15773,16 +16636,49 @@ class PdsTableHeadCell {
15773
16636
  };
15774
16637
  this.toggleSort = () => {
15775
16638
  if (this.sortable) {
16639
+ // Guard: return early if tableRef is not available
16640
+ if (!this.tableRef) {
16641
+ return;
16642
+ }
15776
16643
  const column = this.hostElement.innerText.trim();
16644
+ // Always toggle the direction (preserves original behavior)
15777
16645
  this.sortingDirection = this.sortingDirection === 'asc' ? 'desc' : 'asc';
15778
- this.tableRef.querySelectorAll('pds-table-head-cell').forEach((headCell) => {
15779
- headCell.classList.remove('is-active');
16646
+ // Reset all OTHER head cells to inactive state (skip the current one)
16647
+ this.tableRef.querySelectorAll('pds-table-head-cell').forEach(async (headCell) => {
16648
+ // Skip clearing the current cell
16649
+ if (headCell !== this.hostElement) {
16650
+ const headCellComponent = headCell;
16651
+ await headCellComponent.clearActiveSort();
16652
+ }
15780
16653
  });
15781
- this.hostElement.classList.toggle('is-active');
16654
+ // Mark this column as active
16655
+ this.isActive = true;
16656
+ this.hostElement.classList.add('is-active');
16657
+ // Emit the sort event with the current direction
15782
16658
  this.pdsTableSort.emit({ column, direction: this.sortingDirection });
15783
16659
  }
15784
16660
  };
15785
16661
  }
16662
+ /**
16663
+ * Programmatically sets this column as the active sort column with the specified direction.
16664
+ * Used by pds-table to apply a default sort on initial load.
16665
+ * @param direction - The sort direction to apply ('asc' or 'desc')
16666
+ */
16667
+ async setActiveSort(direction) {
16668
+ if (!this.sortable)
16669
+ return;
16670
+ this.sortingDirection = direction;
16671
+ this.isActive = true;
16672
+ this.hostElement.classList.add('is-active');
16673
+ }
16674
+ /**
16675
+ * Clears the active sort state from this column.
16676
+ * Used internally when another column becomes active.
16677
+ */
16678
+ async clearActiveSort() {
16679
+ this.isActive = false;
16680
+ this.hostElement.classList.remove('is-active');
16681
+ }
15786
16682
  componentWillLoad() {
15787
16683
  // Set initial references and state before first render
15788
16684
  this.tableRef = this.hostElement.closest('pds-table');
@@ -15887,11 +16783,11 @@ class PdsTableHeadCell {
15887
16783
  return classNames.join(' ');
15888
16784
  }
15889
16785
  render() {
15890
- return (hAsync(Host, { key: '7e7976ee53daac21144a0a572e5ed7787bcc33b7', class: this.classNames(), role: "columnheader", onClick: this.toggleSort, part: "head-cell", style: this.tableRef &&
16786
+ return (hAsync(Host, { key: '7e85fb5e6b5fc1022034db9e4c94ca13dfc56257', class: this.classNames(), role: "columnheader", onClick: this.toggleSort, part: "head-cell", style: this.tableRef &&
15891
16787
  this.tableRef.fixedColumn &&
15892
16788
  this.tableRef.selectable
15893
16789
  ? { '--fixed-cell-position': '40px' }
15894
- : {} }, hAsync("slot", { key: 'e5ea1d7684f1ff15da069765dbc19a3167c6dd20' }), this.sortable && (hAsync("pds-icon", { key: '3404301d664b6604a3d7f8b6ae4a460cf2c9deb3', icon: this.sortingDirection === 'asc' ? upSmall : downSmall, part: "sort-icon" }))));
16790
+ : {} }, hAsync("slot", { key: '97d2b9621f7d61ad42719a4cc9f640a1210d78dc' }), this.sortable && this.isActive && (hAsync("pds-icon", { key: 'd80efe9b417ae34bf50f65b0e9cb15bcc9aabd40', icon: this.sortingDirection === 'asc' ? upSmall : downSmall, part: "sort-icon" }))));
15895
16791
  }
15896
16792
  get hostElement() { return getElement(this); }
15897
16793
  static get style() { return pdsTableHeadCellCss; }
@@ -15905,7 +16801,10 @@ class PdsTableHeadCell {
15905
16801
  "tableScrolling": [32],
15906
16802
  "isSelected": [32],
15907
16803
  "hasHeadBorder": [32],
15908
- "hasHeadBackground": [32]
16804
+ "hasHeadBackground": [32],
16805
+ "isActive": [32],
16806
+ "setActiveSort": [64],
16807
+ "clearActiveSort": [64]
15909
16808
  },
15910
16809
  "$listeners$": undefined,
15911
16810
  "$lazyBundleId$": "-",
@@ -16054,7 +16953,7 @@ class PdsTableRow {
16054
16953
  }
16055
16954
  }
16056
16955
  render() {
16057
- return (hAsync(Host, { key: 'dedf37f2841e51a325b6c414d3e7ec0072bdf78f', class: this.classNames(), role: "row", part: "row" }, this.tableRef && this.tableRef.selectable && (hAsync("pds-table-cell", { key: '3e9295398c8f48cb7aa78d10daf5201ae8f86e9f', part: this.tableRef.fixedColumn ? 'checkbox-cell' : 'checkbox-cell', class: this.tableRef.selectable ? 'has-checkbox' : '' }, hAsync("pds-checkbox", { key: 'b786f181988110d3e3d47928da9290dfd79f5fbd', componentId: this.generateUniqueId(), onClick: this.handleClick, indeterminate: this.indeterminate, label: "Select Row", hideLabel: true, checked: this.isSelected, part: "row-checkbox" }))), hAsync("slot", { key: 'd37e3d44d34f81553060185d96fb44a55a40edc8' })));
16956
+ return (hAsync(Host, { key: '900905bc103a54d3f13b59a66cfd53178de0da49', class: this.classNames(), role: "row", part: "row" }, this.tableRef && this.tableRef.selectable && (hAsync("pds-table-cell", { key: 'f5a5a0426f15182e278b052090c71f45e8848347', part: this.tableRef.fixedColumn ? 'checkbox-cell' : 'checkbox-cell', class: this.tableRef.selectable ? 'has-checkbox' : '' }, hAsync("pds-checkbox", { key: '1fd91b0d4bf412dc3a2705fcb5909e42a54bde56', componentId: this.generateUniqueId(), onClick: this.handleClick, indeterminate: this.indeterminate, label: "Select Row", hideLabel: true, checked: this.isSelected, part: "row-checkbox" }))), hAsync("slot", { key: '17a60a0251a36613cc8631efe780020d4a5e1167' })));
16058
16957
  }
16059
16958
  get hostElement() { return getElement(this); }
16060
16959
  static get style() { return pdsTableRowCss; }
@@ -16085,7 +16984,7 @@ class PdsTabpanel {
16085
16984
  this.selected = false; // eslint-disable-line @stencil-community/strict-mutable
16086
16985
  }
16087
16986
  render() {
16088
- return (hAsync(Host, { key: 'f7a2009fbf7cb1da7aaed92c64fd4e80b83c9ad3', slot: "tabpanels" }, hAsync("div", { key: '696804cadb97707558ef8c4a7cb90529fbf14c87', role: "tabpanel", id: this.parentComponentId + "__" + this.name + '-panel', tabindex: "0", "aria-labelledby": this.parentComponentId + "__" + this.name, class: this.selected ? "pds-tabpanel is-active" : "pds-tabpanel" }, hAsync("slot", { key: '25b1a21995505a25af429038d2b3394063db723f' }))));
16987
+ return (hAsync(Host, { key: '0f64285738a96afa3cf2e1134201e942cf04b0ee', slot: "tabpanels" }, hAsync("div", { key: 'f677ed3b377ce2f5f6868831369338829af89868', role: "tabpanel", id: this.parentComponentId + "__" + this.name + '-panel', tabindex: "0", "aria-labelledby": this.parentComponentId + "__" + this.name, class: this.selected ? "pds-tabpanel is-active" : "pds-tabpanel" }, hAsync("slot", { key: '46a236b465f387508aa494ecf80aa146cecd4ade' }))));
16089
16988
  }
16090
16989
  get el() { return getElement(this); }
16091
16990
  static get style() { return pdsTabpanelCss; }
@@ -16197,7 +17096,7 @@ class PdsTabs {
16197
17096
  this.passPropsToChildren();
16198
17097
  }
16199
17098
  render() {
16200
- return (hAsync(Host, { key: '94465ebf3e3a10ff9171a8bd890cab85cff52636', "active-tab-name": this.activeTabName, class: this.classNames(), id: this.componentId }, hAsync("div", { key: '3af742499e795c9b4c89d0537aa45679e02cc3b7', class: "pds-tabs__tablist", role: "tablist", "aria-label": this.tablistLabel, part: "tab-list" }, hAsync("slot", { key: '655e6686afd2bc5823c69259f8ee0ba943905ecd', name: "tabs" })), hAsync("slot", { key: '7fdebe4e77cb52ad481ca12af0796db825d31365', name: "tabpanels" })));
17099
+ return (hAsync(Host, { key: 'fee342f0fbc06387fd964a518c0e97a091d1aded', "active-tab-name": this.activeTabName, class: this.classNames(), id: this.componentId }, hAsync("div", { key: '7512b1d02a8320aad1e2934428dec970ff0c1743', class: "pds-tabs__tablist", role: "tablist", "aria-label": this.tablistLabel, part: "tab-list" }, hAsync("slot", { key: 'dccf28dad2d084185e5f1b0f1f1eeab1c77cd541', name: "tabs" })), hAsync("slot", { key: 'bd8b9040808925ea5f1c73c06d636f35c297b4b7', name: "tabpanels" })));
16201
17100
  }
16202
17101
  get el() { return getElement(this); }
16203
17102
  static get style() { return pdsTabsCss; }
@@ -16240,7 +17139,7 @@ class PdsText {
16240
17139
  ${this.weight !== undefined && this.weight.trim() !== '' ? `pds-text--weight-${this.weight}` : ''}
16241
17140
  ${this.decoration !== undefined && this.decoration.trim() !== '' ? `pds-text--decoration-${this.decoration}` : ''}
16242
17141
  `;
16243
- return (hAsync(Tag, { key: '42a62bfa709c5d093d6559ed073486b6a74e6bf5', style: this.color && setColor(this.color), class: typeClasses, part: "content" }, hAsync("slot", { key: '46dd8be0670070f381bad21df56307595a5c94c9' })));
17142
+ return (hAsync(Tag, { key: '5f7d43603c8d412a375d2e49818b363b5e9a142b', style: this.color && setColor(this.color), class: typeClasses, part: "content" }, hAsync("slot", { key: '702d5065297e0405295aa941cd39dba38787519e' })));
16244
17143
  }
16245
17144
  get el() { return getElement(this); }
16246
17145
  static get style() { return pdsTextCss; }
@@ -16280,6 +17179,7 @@ class PdsTextarea {
16280
17179
  this.pdsFocus = createEvent(this, "pdsFocus");
16281
17180
  this.pdsInput = createEvent(this, "pdsInput");
16282
17181
  this.pdsTextareaChange = createEvent(this, "pdsTextareaChange");
17182
+ this.pdsKeyDown = createEvent(this, "pdsKeyDown");
16283
17183
  this.inheritedAttributes = {};
16284
17184
  this._type = 'textarea';
16285
17185
  /**
@@ -16349,6 +17249,9 @@ class PdsTextarea {
16349
17249
  this.onTextareaChange = (ev) => {
16350
17250
  this.emitValueChange(ev);
16351
17251
  };
17252
+ this.onKeyDown = (ev) => {
17253
+ this.pdsKeyDown.emit(ev);
17254
+ };
16352
17255
  }
16353
17256
  /**
16354
17257
  * Sets focus on the native `textarea` in the `pds-textarea`. Use this method instead of the global
@@ -16561,10 +17464,10 @@ class PdsTextarea {
16561
17464
  }
16562
17465
  render() {
16563
17466
  const value = this.getValue();
16564
- return (hAsync(Host, { key: '8e14fed28b2edd75aef6c5a1991518bb8b11931d', "aria-disabled": this.disabled ? 'true' : null, "aria-readonly": this.readonly ? 'true' : null, "has-action": this.hasAction && !this.hideLabel ? 'true' : null }, hAsync("div", { key: '4dcf8471267223b0cd1f6e7b6dd2072550b3ac8b', class: "pds-textarea" }, this.label &&
16565
- hAsync("div", { key: '520d616798b2223a979955ed268378bc5ffd1571', class: "pds-textarea__label-wrapper" }, hAsync("label", { key: 'b04566b03b0c809b4b6c639d75774d845a021636', htmlFor: this.componentId }, hAsync("span", { key: 'a6b92315f11a7cf15c9aa2db0cd7d8a824ff88ae', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), !this.hideLabel && this.renderAction()), hAsync("div", { key: 'b4cebca68b014c837fa8415a8f67f611b150b083', class: "pds-textarea__field-wrapper" }, hAsync("textarea", Object.assign({ key: 'ac49811c463709ed2918324005ec8f4285fb76f2', ref: (el) => this.nativeTextarea = el, "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage), "aria-invalid": this.invalid ? "true" : undefined, autocomplete: this.autocomplete, class: this.textareaClassNames(), disabled: this.disabled, id: this.componentId, maxlength: this.maxLength, name: this.name, placeholder: this.placeholder, readOnly: this.readonly, required: this.required, rows: this.rows, onBlur: this.onBlur, onChange: this.onTextareaChange, onFocus: this.onFocus, onInput: this.onInput }, this.inheritedAttributes), value), this.renderCharacterCounter()), this.helperMessage &&
16566
- hAsync("p", { key: '7a4cc4c278d39c675a5e6e3d0b4a917d63441cd1', class: "pds-textarea__helper-message", id: messageId(this.componentId, 'helper') }, this.helperMessage), this.invalid &&
16567
- hAsync("p", { key: 'd02251c55ef2baf92fd66c92a16154b805494b6c', "aria-live": "assertive", class: "pds-textarea__error-message", id: messageId(this.componentId, 'error') }, hAsync("pds-icon", { key: 'd7632ac66b16c0c306f245a23d379689d65e8010', icon: danger, size: "small" }), this.errorMessage))));
17467
+ return (hAsync(Host, { key: '3c78b9f124cf82fd48b2cbc29122c458d9918962', "aria-disabled": this.disabled ? 'true' : null, "aria-readonly": this.readonly ? 'true' : null, "has-action": this.hasAction && !this.hideLabel ? 'true' : null }, hAsync("div", { key: '58ecb566c248304e19c33fab2431cf6062a203d7', class: "pds-textarea" }, this.label &&
17468
+ hAsync("div", { key: 'ad2c21f27492d374c4f56fed0f203f72bc3a4a6e', class: "pds-textarea__label-wrapper" }, hAsync("label", { key: 'f966575088fe5699951c7762938cb80304bb0df5', htmlFor: this.componentId }, hAsync("span", { key: 'ad9370de15d0c41e065d99d3b9859eb8b343424a', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), !this.hideLabel && this.renderAction()), hAsync("div", { key: 'e76662a380252b0813c0b00d42bfaa4239c063dd', class: "pds-textarea__field-wrapper" }, hAsync("textarea", Object.assign({ key: '4f9b3250d888b9da284a5583b5042df4f25b66f5', ref: (el) => this.nativeTextarea = el, "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage), "aria-invalid": this.invalid ? "true" : undefined, autocomplete: this.autocomplete, class: this.textareaClassNames(), disabled: this.disabled, id: this.componentId, maxlength: this.maxLength, name: this.name, placeholder: this.placeholder, readOnly: this.readonly, required: this.required, rows: this.rows, onBlur: this.onBlur, onChange: this.onTextareaChange, onFocus: this.onFocus, onInput: this.onInput, onKeyDown: this.onKeyDown }, this.inheritedAttributes), value), this.renderCharacterCounter()), this.helperMessage &&
17469
+ hAsync("p", { key: '5c53c22d2682d1960b31b2bc40ad6a83d445dda2', class: "pds-textarea__helper-message", id: messageId(this.componentId, 'helper') }, this.helperMessage), this.invalid &&
17470
+ hAsync("p", { key: '74c79c4a218977a01932d1b94206b68867787064', "aria-live": "assertive", class: "pds-textarea__error-message", id: messageId(this.componentId, 'error') }, hAsync("pds-icon", { key: 'c8118c35e1f6f6bcba281dd00e8abf8109827f30', icon: danger, size: "small" }), this.errorMessage))));
16568
17471
  }
16569
17472
  static get formAssociated() { return true; }
16570
17473
  get el() { return getElement(this); }
@@ -16687,13 +17590,13 @@ class PdsToast {
16687
17590
  return this.icon && hAsync("pds-icon", { name: this.icon, class: "pds-toast__icon" });
16688
17591
  }
16689
17592
  render() {
16690
- return (hAsync(Host, { key: 'ff9523170d34f742f8301e8d3ce3810bacb7d183', hidden: !this.isVisible }, hAsync("div", { key: '67e0639a0158eb8c325064a9c3f97aaa3b538d90', class: {
17593
+ return (hAsync(Host, { key: 'bcc7fe0ad3b7823a940249fccfce30edfc1e808d', hidden: !this.isVisible }, hAsync("div", { key: '5265cbbdf05278cbd565e34f63b6c9566ec14290', class: {
16691
17594
  'pds-toast': true,
16692
17595
  [`pds-toast--${this.type}`]: this.type !== 'default',
16693
17596
  'pds-toast--animating-out': this.isAnimatingOut
16694
- }, role: "alert", "aria-live": "polite" }, this.renderIcon(), hAsync("span", { key: '5387b71901592b69a7465ec10c3f3508e170b1c1', class: "pds-toast__message" }, hAsync("slot", { key: 'a9bb352ae8ad478fb65298c357bc20efa1877a6b' })), this.dismissible && (hAsync("button", { key: 'c1d15b41455304e689c3736ed3d3429321f8c1a7', type: "button", class: "pds-toast__button", onClick: () => {
17597
+ }, role: "alert", "aria-live": "polite" }, this.renderIcon(), hAsync("span", { key: 'd650b57fb5cddeb369d8245b239423575da63cd8', class: "pds-toast__message" }, hAsync("slot", { key: 'd4e2d6b6136b75dfd97a37da4588c8c51ca4bcd0' })), this.dismissible && (hAsync("button", { key: 'c89170f321c47b83096a01aaa8012298dc3ca440', type: "button", class: "pds-toast__button", onClick: () => {
16695
17598
  this.dismiss();
16696
- }, "aria-label": "Dismiss message" }, hAsync("pds-icon", { key: '0f9e43ed08a253531f3dc698c92f861ca1bd6063', name: "remove" }))))));
17599
+ }, "aria-label": "Dismiss message" }, hAsync("pds-icon", { key: '359c0c05ddd6db8e7711fc0212bf80569106ecf4', name: "remove" }))))));
16697
17600
  }
16698
17601
  static get watchers() { return {
16699
17602
  "duration": ["handleDurationChange"]
@@ -17033,9 +17936,9 @@ class PdsTooltip {
17033
17936
  }
17034
17937
  render() {
17035
17938
  const hostId = this.componentId || undefined;
17036
- return (hAsync(Host, { key: '19cd2c26c96f21f39d0bca90d3b74f8c282e74e1', id: hostId, class: { 'pds-tooltip--is-open': this.opened } }, hAsync("span", { key: '4288caabd5c37d90d4c82c430a9eb0a17653b2ad', class: "pds-tooltip__trigger", onMouseEnter: this.handleShow, onMouseLeave: this.handleHide,
17939
+ return (hAsync(Host, { key: '41dffb4751c1e40789de07ec5b2f96202cedb82c', id: hostId, class: { 'pds-tooltip--is-open': this.opened } }, hAsync("span", { key: '156d6e9d23d3194caa387db9de35226d2d5fd02f', class: "pds-tooltip__trigger", onMouseEnter: this.handleShow, onMouseLeave: this.handleHide,
17037
17940
  /* focusin/out bubble; ensure keyboard users see tooltips */
17038
- onFocusin: this.handleShow, onFocusout: this.handleHide, ref: el => this.triggerEl = el }, hAsync("slot", { key: 'd937b6ee8a11c4a4d9f31daf147b598b5ab56c2d' })), hAsync("div", { key: '6b31410657ddfce5275abc03a2e0a3c2692efc2a', class: "pds-tooltip__content-slot-wrapper", hidden: true }, hAsync("slot", { key: '2d5ed8babb0a44c1340028dfedc5ee8694da4bfc', name: "content" }))));
17941
+ onFocusin: this.handleShow, onFocusout: this.handleHide, ref: el => this.triggerEl = el }, hAsync("slot", { key: 'e67bae6e3c9726c39d193e5771c0e66818575c65' })), hAsync("div", { key: '60ec7b351e574b2e2fc8b0b8c8b87f4977e6eed7', class: "pds-tooltip__content-slot-wrapper", hidden: true }, hAsync("slot", { key: 'b66966dba3d142401e588b7437689c0f6386cfcd', name: "content" }))));
17039
17942
  }
17040
17943
  get el() { return getElement(this); }
17041
17944
  static get watchers() { return {
@@ -17090,6 +17993,7 @@ registerComponents([
17090
17993
  PdsModalContent,
17091
17994
  PdsModalFooter,
17092
17995
  PdsModalHeader,
17996
+ PdsMultiselect,
17093
17997
  PdsPopover,
17094
17998
  PdsProgress,
17095
17999
  PdsProperty,