@pine-ds/core 3.14.0 → 3.14.2-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (526) 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/pds-checkbox2.js +5 -4
  9. package/components/pds-checkbox2.js.map +1 -1
  10. package/components/pds-combobox.js +69 -29
  11. package/components/pds-combobox.js.map +1 -1
  12. package/components/pds-dropdown-menu-item.js +1 -1
  13. package/components/pds-dropdown-menu-item.js.map +1 -1
  14. package/components/pds-dropdown-menu.js +3 -2
  15. package/components/pds-dropdown-menu.js.map +1 -1
  16. package/components/pds-filter.js +1 -1
  17. package/components/pds-filter.js.map +1 -1
  18. package/components/pds-input.js +3 -3
  19. package/components/pds-input.js.map +1 -1
  20. package/components/pds-loader2.js +2 -2
  21. package/components/pds-loader2.js.map +1 -1
  22. package/components/pds-multiselect.d.ts +11 -0
  23. package/components/pds-multiselect.js +667 -0
  24. package/components/pds-multiselect.js.map +1 -0
  25. package/components/pds-popover.js +1 -1
  26. package/components/pds-progress.js +1 -1
  27. package/components/pds-property.js +1 -1
  28. package/components/pds-radio-group.js +3 -3
  29. package/components/pds-radio.js +3 -3
  30. package/components/pds-row.js +1 -1
  31. package/components/pds-select.js +3 -3
  32. package/components/pds-select.js.map +1 -1
  33. package/components/pds-sortable-item.js +1 -1
  34. package/components/pds-sortable.js +1 -1
  35. package/components/pds-switch.js +5 -4
  36. package/components/pds-switch.js.map +1 -1
  37. package/components/pds-tab.js +4 -4
  38. package/components/pds-tab.js.map +1 -1
  39. package/components/pds-table-body.js +1 -1
  40. package/components/pds-table-cell2.js +2 -2
  41. package/components/pds-table-head-cell2.js +35 -6
  42. package/components/pds-table-head-cell2.js.map +1 -1
  43. package/components/pds-table-head.js +1 -1
  44. package/components/pds-table-row.js +1 -1
  45. package/components/pds-tabpanel.js +1 -1
  46. package/components/pds-tabs.js +1 -1
  47. package/components/pds-text2.js +1 -1
  48. package/components/pds-textarea.js +6 -6
  49. package/components/pds-textarea.js.map +1 -1
  50. package/components/pds-toast.js +3 -3
  51. package/components/pds-tooltip.js +2 -2
  52. package/dist/cjs/{floating-ui.dom-DTAy35nv.js → floating-ui.dom-Ca6tS7ef.js} +163 -41
  53. package/dist/cjs/floating-ui.dom-Ca6tS7ef.js.map +1 -0
  54. package/dist/cjs/{index-CMeuo765.js → index-BA--jsiy.js} +3 -3
  55. package/dist/cjs/index-BA--jsiy.js.map +1 -0
  56. package/dist/cjs/loader.cjs.js +1 -1
  57. package/dist/cjs/pds-accordion.cjs.entry.js +1 -1
  58. package/dist/cjs/pds-avatar.cjs.entry.js +1 -1
  59. package/dist/cjs/pds-button.cjs.entry.js +1 -1
  60. package/dist/cjs/pds-checkbox.cjs.entry.js +6 -5
  61. package/dist/cjs/pds-checkbox.entry.cjs.js.map +1 -1
  62. package/dist/cjs/pds-chip.cjs.entry.js +1 -1
  63. package/dist/cjs/pds-combobox.cjs.entry.js +70 -30
  64. package/dist/cjs/pds-combobox.entry.cjs.js.map +1 -1
  65. package/dist/cjs/pds-copytext.cjs.entry.js +1 -1
  66. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +1 -1
  67. package/dist/cjs/pds-dropdown-menu-item.entry.cjs.js.map +1 -1
  68. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +4 -3
  69. package/dist/cjs/pds-dropdown-menu.entry.cjs.js.map +1 -1
  70. package/dist/cjs/pds-filter.cjs.entry.js +2 -2
  71. package/dist/cjs/pds-filter.entry.cjs.js.map +1 -1
  72. package/dist/cjs/pds-input.cjs.entry.js +4 -4
  73. package/dist/cjs/pds-input.entry.cjs.js.map +1 -1
  74. package/dist/cjs/pds-link.cjs.entry.js +1 -1
  75. package/dist/cjs/pds-loader.cjs.entry.js +2 -2
  76. package/dist/cjs/pds-loader.entry.cjs.js.map +1 -1
  77. package/dist/cjs/pds-multiselect.cjs.entry.js +593 -0
  78. package/dist/cjs/pds-multiselect.entry.cjs.js.map +1 -0
  79. package/dist/cjs/pds-popover.cjs.entry.js +1 -1
  80. package/dist/cjs/pds-progress.cjs.entry.js +1 -1
  81. package/dist/cjs/pds-property.cjs.entry.js +1 -1
  82. package/dist/cjs/pds-radio-group.cjs.entry.js +4 -4
  83. package/dist/cjs/pds-radio.cjs.entry.js +4 -4
  84. package/dist/cjs/pds-row.cjs.entry.js +1 -1
  85. package/dist/cjs/pds-select.cjs.entry.js +4 -4
  86. package/dist/cjs/pds-select.entry.cjs.js.map +1 -1
  87. package/dist/cjs/pds-sortable-item.cjs.entry.js +2 -2
  88. package/dist/cjs/pds-sortable.cjs.entry.js +1 -1
  89. package/dist/cjs/pds-switch.cjs.entry.js +6 -5
  90. package/dist/cjs/pds-switch.entry.cjs.js.map +1 -1
  91. package/dist/cjs/pds-tab.cjs.entry.js +4 -4
  92. package/dist/cjs/pds-tab.entry.cjs.js.map +1 -1
  93. package/dist/cjs/pds-table-body.cjs.entry.js +1 -1
  94. package/dist/cjs/pds-table-cell.cjs.entry.js +2 -2
  95. package/dist/cjs/pds-table-head-cell.cjs.entry.js +33 -6
  96. package/dist/cjs/pds-table-head-cell.entry.cjs.js.map +1 -1
  97. package/dist/cjs/pds-table-head.cjs.entry.js +1 -1
  98. package/dist/cjs/pds-table-row.cjs.entry.js +1 -1
  99. package/dist/cjs/pds-tabpanel.cjs.entry.js +1 -1
  100. package/dist/cjs/pds-tabs.cjs.entry.js +1 -1
  101. package/dist/cjs/pds-text.cjs.entry.js +1 -1
  102. package/dist/cjs/pds-textarea.cjs.entry.js +7 -7
  103. package/dist/cjs/pds-textarea.entry.cjs.js.map +1 -1
  104. package/dist/cjs/pds-toast.cjs.entry.js +3 -3
  105. package/dist/cjs/pds-tooltip.cjs.entry.js +3 -3
  106. package/dist/cjs/pine-core.cjs.js +1 -1
  107. package/dist/collection/collection-manifest.json +1 -0
  108. package/dist/collection/components/pds-box/pds-box.css +0 -191
  109. package/dist/collection/components/pds-checkbox/pds-checkbox.js +5 -4
  110. package/dist/collection/components/pds-checkbox/pds-checkbox.js.map +1 -1
  111. package/dist/collection/components/pds-combobox/pds-combobox.js +4 -4
  112. package/dist/collection/components/pds-combobox/pds-combobox.js.map +1 -1
  113. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.css +3 -1
  114. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.css +1 -1
  115. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +2 -1
  116. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js.map +1 -1
  117. package/dist/collection/components/pds-filters/pds-filter/pds-filter.css +6 -2
  118. package/dist/collection/components/pds-input/pds-input.js +3 -3
  119. package/dist/collection/components/pds-input/pds-input.js.map +1 -1
  120. package/dist/collection/components/pds-loader/pds-loader.js +2 -2
  121. package/dist/collection/components/pds-loader/pds-loader.js.map +1 -1
  122. package/dist/collection/components/pds-multiselect/multiselect-interface.js +2 -0
  123. package/dist/collection/components/pds-multiselect/multiselect-interface.js.map +1 -0
  124. package/dist/collection/components/pds-multiselect/pds-multiselect.css +232 -0
  125. package/dist/collection/components/pds-multiselect/pds-multiselect.js +1153 -0
  126. package/dist/collection/components/pds-multiselect/pds-multiselect.js.map +1 -0
  127. package/dist/collection/components/pds-multiselect/stories/pds-multiselect.stories.js +371 -0
  128. package/dist/collection/components/pds-popover/pds-popover.js +1 -1
  129. package/dist/collection/components/pds-progress/pds-progress.js +1 -1
  130. package/dist/collection/components/pds-property/pds-property.js +1 -1
  131. package/dist/collection/components/pds-radio/pds-radio.js +3 -3
  132. package/dist/collection/components/pds-radio-group/pds-radio-group.js +3 -3
  133. package/dist/collection/components/pds-row/pds-row.js +1 -1
  134. package/dist/collection/components/pds-select/pds-select.js +3 -3
  135. package/dist/collection/components/pds-select/pds-select.js.map +1 -1
  136. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +1 -1
  137. package/dist/collection/components/pds-sortable/pds-sortable.js +1 -1
  138. package/dist/collection/components/pds-switch/pds-switch.js +5 -4
  139. package/dist/collection/components/pds-switch/pds-switch.js.map +1 -1
  140. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js +1 -1
  141. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +2 -2
  142. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +1 -1
  143. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +51 -6
  144. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js.map +1 -1
  145. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +1 -1
  146. package/dist/collection/components/pds-table/stories/pds-table.stories.js +32 -4
  147. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.css +6 -2
  148. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js +3 -3
  149. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +1 -1
  150. package/dist/collection/components/pds-tabs/pds-tabs.js +1 -1
  151. package/dist/collection/components/pds-text/pds-text.js +1 -1
  152. package/dist/collection/components/pds-textarea/pds-textarea.js +6 -6
  153. package/dist/collection/components/pds-textarea/pds-textarea.js.map +1 -1
  154. package/dist/collection/components/pds-toast/pds-toast.js +3 -3
  155. package/dist/collection/components/pds-tooltip/pds-tooltip.js +2 -2
  156. package/dist/docs.json +960 -174
  157. package/dist/esm/{floating-ui.dom-DbQzNDdQ.js → floating-ui.dom-BO6p966C.js} +163 -42
  158. package/dist/esm/floating-ui.dom-BO6p966C.js.map +1 -0
  159. package/dist/esm/{index-xbb79yLt.js → index-DY8eSueV.js} +3 -3
  160. package/dist/esm/index-DY8eSueV.js.map +1 -0
  161. package/dist/esm/loader.js +1 -1
  162. package/dist/esm/pds-accordion.entry.js +1 -1
  163. package/dist/esm/pds-avatar.entry.js +1 -1
  164. package/dist/esm/pds-button.entry.js +1 -1
  165. package/dist/esm/pds-checkbox.entry.js +6 -5
  166. package/dist/esm/pds-checkbox.entry.js.map +1 -1
  167. package/dist/esm/pds-chip.entry.js +1 -1
  168. package/dist/esm/pds-combobox.entry.js +70 -30
  169. package/dist/esm/pds-combobox.entry.js.map +1 -1
  170. package/dist/esm/pds-copytext.entry.js +1 -1
  171. package/dist/esm/pds-dropdown-menu-item.entry.js +1 -1
  172. package/dist/esm/pds-dropdown-menu-item.entry.js.map +1 -1
  173. package/dist/esm/pds-dropdown-menu.entry.js +4 -3
  174. package/dist/esm/pds-dropdown-menu.entry.js.map +1 -1
  175. package/dist/esm/pds-filter.entry.js +2 -2
  176. package/dist/esm/pds-filter.entry.js.map +1 -1
  177. package/dist/esm/pds-input.entry.js +4 -4
  178. package/dist/esm/pds-input.entry.js.map +1 -1
  179. package/dist/esm/pds-link.entry.js +1 -1
  180. package/dist/esm/pds-loader.entry.js +2 -2
  181. package/dist/esm/pds-loader.entry.js.map +1 -1
  182. package/dist/esm/pds-multiselect.entry.js +591 -0
  183. package/dist/esm/pds-multiselect.entry.js.map +1 -0
  184. package/dist/esm/pds-popover.entry.js +1 -1
  185. package/dist/esm/pds-progress.entry.js +1 -1
  186. package/dist/esm/pds-property.entry.js +1 -1
  187. package/dist/esm/pds-radio-group.entry.js +4 -4
  188. package/dist/esm/pds-radio.entry.js +4 -4
  189. package/dist/esm/pds-row.entry.js +1 -1
  190. package/dist/esm/pds-select.entry.js +4 -4
  191. package/dist/esm/pds-select.entry.js.map +1 -1
  192. package/dist/esm/pds-sortable-item.entry.js +2 -2
  193. package/dist/esm/pds-sortable.entry.js +1 -1
  194. package/dist/esm/pds-switch.entry.js +6 -5
  195. package/dist/esm/pds-switch.entry.js.map +1 -1
  196. package/dist/esm/pds-tab.entry.js +4 -4
  197. package/dist/esm/pds-tab.entry.js.map +1 -1
  198. package/dist/esm/pds-table-body.entry.js +1 -1
  199. package/dist/esm/pds-table-cell.entry.js +2 -2
  200. package/dist/esm/pds-table-head-cell.entry.js +33 -6
  201. package/dist/esm/pds-table-head-cell.entry.js.map +1 -1
  202. package/dist/esm/pds-table-head.entry.js +1 -1
  203. package/dist/esm/pds-table-row.entry.js +1 -1
  204. package/dist/esm/pds-tabpanel.entry.js +1 -1
  205. package/dist/esm/pds-tabs.entry.js +1 -1
  206. package/dist/esm/pds-text.entry.js +1 -1
  207. package/dist/esm/pds-textarea.entry.js +7 -7
  208. package/dist/esm/pds-textarea.entry.js.map +1 -1
  209. package/dist/esm/pds-toast.entry.js +3 -3
  210. package/dist/esm/pds-tooltip.entry.js +3 -3
  211. package/dist/esm/pine-core.js +1 -1
  212. package/dist/esm-es5/floating-ui.dom-BO6p966C.js +2 -0
  213. package/dist/esm-es5/floating-ui.dom-BO6p966C.js.map +1 -0
  214. package/dist/esm-es5/{index-xbb79yLt.js → index-DY8eSueV.js} +1 -1
  215. package/dist/esm-es5/index-DY8eSueV.js.map +1 -0
  216. package/dist/esm-es5/loader.js +1 -1
  217. package/dist/esm-es5/pds-accordion.entry.js +1 -1
  218. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  219. package/dist/esm-es5/pds-button.entry.js +1 -1
  220. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  221. package/dist/esm-es5/pds-checkbox.entry.js.map +1 -1
  222. package/dist/esm-es5/pds-chip.entry.js +1 -1
  223. package/dist/esm-es5/pds-combobox.entry.js +2 -2
  224. package/dist/esm-es5/pds-combobox.entry.js.map +1 -1
  225. package/dist/esm-es5/pds-copytext.entry.js +1 -1
  226. package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -1
  227. package/dist/esm-es5/pds-dropdown-menu-item.entry.js.map +1 -1
  228. package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
  229. package/dist/esm-es5/pds-dropdown-menu.entry.js.map +1 -1
  230. package/dist/esm-es5/pds-filter.entry.js +1 -1
  231. package/dist/esm-es5/pds-filter.entry.js.map +1 -1
  232. package/dist/esm-es5/pds-input.entry.js +1 -1
  233. package/dist/esm-es5/pds-input.entry.js.map +1 -1
  234. package/dist/esm-es5/pds-link.entry.js +1 -1
  235. package/dist/esm-es5/pds-loader.entry.js +1 -1
  236. package/dist/esm-es5/pds-loader.entry.js.map +1 -1
  237. package/dist/esm-es5/pds-multiselect.entry.js +2 -0
  238. package/dist/esm-es5/pds-multiselect.entry.js.map +1 -0
  239. package/dist/esm-es5/pds-popover.entry.js +1 -1
  240. package/dist/esm-es5/pds-progress.entry.js +1 -1
  241. package/dist/esm-es5/pds-property.entry.js +1 -1
  242. package/dist/esm-es5/pds-radio-group.entry.js +1 -1
  243. package/dist/esm-es5/pds-radio.entry.js +1 -1
  244. package/dist/esm-es5/pds-row.entry.js +1 -1
  245. package/dist/esm-es5/pds-select.entry.js +1 -1
  246. package/dist/esm-es5/pds-select.entry.js.map +1 -1
  247. package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
  248. package/dist/esm-es5/pds-sortable.entry.js +1 -1
  249. package/dist/esm-es5/pds-switch.entry.js +1 -1
  250. package/dist/esm-es5/pds-switch.entry.js.map +1 -1
  251. package/dist/esm-es5/pds-tab.entry.js +1 -1
  252. package/dist/esm-es5/pds-tab.entry.js.map +1 -1
  253. package/dist/esm-es5/pds-table-body.entry.js +1 -1
  254. package/dist/esm-es5/pds-table-cell.entry.js +1 -1
  255. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  256. package/dist/esm-es5/pds-table-head-cell.entry.js.map +1 -1
  257. package/dist/esm-es5/pds-table-head.entry.js +1 -1
  258. package/dist/esm-es5/pds-table-row.entry.js +1 -1
  259. package/dist/esm-es5/pds-tabpanel.entry.js +1 -1
  260. package/dist/esm-es5/pds-tabs.entry.js +1 -1
  261. package/dist/esm-es5/pds-text.entry.js +1 -1
  262. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  263. package/dist/esm-es5/pds-textarea.entry.js.map +1 -1
  264. package/dist/esm-es5/pds-toast.entry.js +1 -1
  265. package/dist/esm-es5/pds-tooltip.entry.js +1 -1
  266. package/dist/esm-es5/pine-core.js +1 -1
  267. package/dist/pine-core/p-02f48157.system.entry.js +2 -0
  268. package/dist/pine-core/{p-b30424e3.system.entry.js → p-063afa19.system.entry.js} +2 -2
  269. package/dist/pine-core/p-0sPVsRFU.system.js.map +1 -0
  270. package/dist/pine-core/{p-15202869.entry.js → p-10dbe3e2.entry.js} +2 -2
  271. package/dist/pine-core/{p-5b7ab891.entry.js → p-12360e47.entry.js} +2 -2
  272. package/dist/pine-core/{p-ac14c8e3.system.entry.js → p-137b3289.system.entry.js} +2 -2
  273. package/dist/pine-core/{p-a737df90.entry.js → p-154a32f4.entry.js} +2 -2
  274. package/dist/pine-core/{p-098cbcd7.system.entry.js → p-205ec2ac.system.entry.js} +2 -2
  275. package/dist/pine-core/{p-098cbcd7.system.entry.js.map → p-205ec2ac.system.entry.js.map} +1 -1
  276. package/dist/pine-core/{p-a847fad3.entry.js → p-2537aacb.entry.js} +2 -2
  277. package/dist/pine-core/{p-cd335ec2.system.entry.js → p-2fe330d0.system.entry.js} +2 -2
  278. package/dist/pine-core/p-30ea3668.system.entry.js +2 -0
  279. package/dist/pine-core/{p-1daf66d1.entry.js → p-31168da5.entry.js} +2 -2
  280. package/dist/pine-core/{p-732e2564.system.entry.js → p-325b3b0d.system.entry.js} +2 -2
  281. package/dist/pine-core/{p-4d25449c.entry.js → p-3440138d.entry.js} +2 -2
  282. package/dist/pine-core/{p-4d25449c.entry.js.map → p-3440138d.entry.js.map} +1 -1
  283. package/dist/pine-core/p-3c04c17e.system.entry.js +2 -0
  284. package/dist/pine-core/p-3c04c17e.system.entry.js.map +1 -0
  285. package/dist/pine-core/p-475bb340.entry.js +2 -0
  286. package/dist/pine-core/p-475bb340.entry.js.map +1 -0
  287. package/dist/pine-core/{p-CGo2P4Fr.system.js.map → p-4EbKXnVN.system.js.map} +1 -1
  288. package/dist/pine-core/{p-4SEjggIC.system.js.map → p-4alPHnzl.system.js.map} +1 -1
  289. package/dist/pine-core/{p-9bfaed7e.system.entry.js → p-4c23c75b.system.entry.js} +2 -2
  290. package/dist/pine-core/{p-bdf8bff3.system.entry.js → p-4d85945b.system.entry.js} +2 -2
  291. package/dist/pine-core/{p-3f8b0885.system.entry.js → p-4d9eee67.system.entry.js} +2 -2
  292. package/dist/pine-core/{p-4fD2iHS9.system.js.map → p-4f1cRPxE.system.js.map} +1 -1
  293. package/dist/pine-core/{p-e2104c31.entry.js → p-5040a872.entry.js} +2 -2
  294. package/dist/pine-core/p-51114c2b.system.entry.js +2 -0
  295. package/dist/pine-core/p-51114c2b.system.entry.js.map +1 -0
  296. package/dist/pine-core/p-5L_gsODn.system.js.map +1 -0
  297. package/dist/pine-core/{p-bbc349b3.system.entry.js → p-5b3ac18e.system.entry.js} +2 -2
  298. package/dist/pine-core/{p-bbc349b3.system.entry.js.map → p-5b3ac18e.system.entry.js.map} +1 -1
  299. package/dist/pine-core/{p-a08b60ae.entry.js → p-5b9110fe.entry.js} +2 -2
  300. package/dist/pine-core/{p-94b1997d.system.entry.js → p-5e92aa34.system.entry.js} +2 -2
  301. package/dist/pine-core/{p-41d89f20.entry.js → p-5f2865df.entry.js} +2 -2
  302. package/dist/pine-core/{p-41d89f20.entry.js.map → p-5f2865df.entry.js.map} +1 -1
  303. package/dist/pine-core/p-622f1342.system.entry.js +4 -0
  304. package/dist/pine-core/p-622f1342.system.entry.js.map +1 -0
  305. package/dist/pine-core/p-63269b89.entry.js +2 -0
  306. package/dist/pine-core/{p-ff182316.system.entry.js → p-6d2da3ca.system.entry.js} +2 -2
  307. package/dist/pine-core/{p-ff182316.system.entry.js.map → p-6d2da3ca.system.entry.js.map} +1 -1
  308. package/dist/pine-core/p-6e862168.system.entry.js +2 -0
  309. package/dist/pine-core/{p-dcc6ad67.system.entry.js.map → p-6e862168.system.entry.js.map} +1 -1
  310. package/dist/pine-core/{p-cf2e1c07.system.entry.js → p-70aa35fc.system.entry.js} +2 -2
  311. package/dist/pine-core/{p-fc0ee6da.entry.js → p-757c7b80.entry.js} +2 -2
  312. package/dist/pine-core/{p-1df25b57.system.entry.js → p-78ee2e08.system.entry.js} +2 -2
  313. package/dist/pine-core/{p-2319298c.system.entry.js → p-7b5c8248.system.entry.js} +2 -2
  314. package/dist/pine-core/{p-e3d76aa3.system.entry.js → p-7dd74fe2.system.entry.js} +2 -2
  315. package/dist/pine-core/p-7dd74fe2.system.entry.js.map +1 -0
  316. package/dist/pine-core/p-811e510d.system.entry.js +2 -0
  317. package/dist/pine-core/p-811e510d.system.entry.js.map +1 -0
  318. package/dist/pine-core/{p-f9ef2f74.system.entry.js → p-87eb8d4b.system.entry.js} +2 -2
  319. package/dist/pine-core/p-8b201c9a.system.entry.js +2 -0
  320. package/dist/pine-core/p-8b201c9a.system.entry.js.map +1 -0
  321. package/dist/pine-core/{p-711989de.entry.js → p-8c0fc8ff.entry.js} +2 -2
  322. package/dist/pine-core/p-8c0fc8ff.entry.js.map +1 -0
  323. package/dist/pine-core/p-8eb1c168.entry.js +2 -0
  324. package/dist/pine-core/{p-e5bc22b6.system.entry.js → p-8fdb10c4.system.entry.js} +2 -2
  325. package/dist/pine-core/{p-232e4282.system.entry.js → p-90615423.system.entry.js} +2 -2
  326. package/dist/pine-core/{p-f79f6f08.system.entry.js → p-932283cf.system.entry.js} +2 -2
  327. package/dist/pine-core/{p-0b05708b.entry.js → p-9ada659b.entry.js} +2 -2
  328. package/dist/pine-core/{p-4778ae70.entry.js → p-9bb6cc3d.entry.js} +2 -2
  329. package/dist/pine-core/{p-3f6b9520.entry.js → p-9c928c44.entry.js} +2 -2
  330. package/dist/pine-core/{p-dad604e4.system.entry.js → p-9e7cd072.system.entry.js} +2 -2
  331. package/dist/pine-core/p-9e7cd072.system.entry.js.map +1 -0
  332. package/dist/pine-core/{p-e8aad8dc.entry.js → p-9eccf7b9.entry.js} +2 -2
  333. package/dist/pine-core/{p-WhfStK1C.system.js.map → p-B0Otb6kF.system.js.map} +1 -1
  334. package/dist/pine-core/{p-CUmDvil2.system.js.map → p-BA95hFrH.system.js.map} +1 -1
  335. package/dist/pine-core/{p-B4EMeCRH.system.js.map → p-BHjZufAO.system.js.map} +1 -1
  336. package/dist/pine-core/{p-IH8oGXiE.system.js.map → p-BJtTt670.system.js.map} +1 -1
  337. package/dist/pine-core/p-BO6p966C.js +2 -0
  338. package/dist/pine-core/p-BO6p966C.js.map +1 -0
  339. package/dist/pine-core/{p-jBhqNO5u.system.js.map → p-BSRmAvMC.system.js.map} +1 -1
  340. package/dist/pine-core/{p-DyrNlfLT.system.js.map → p-BTe59phF.system.js.map} +1 -1
  341. package/dist/pine-core/{p-B0Y1Zs9b.system.js.map → p-Bn36FPag.system.js.map} +1 -1
  342. package/dist/pine-core/{p-DpeOrUYB.system.js.map → p-CG5jdxoZ.system.js.map} +1 -1
  343. package/dist/pine-core/{p-PMNjgK0C.system.js.map → p-CP2nsJcg.system.js.map} +1 -1
  344. package/dist/pine-core/{p-CKzDRRgx.system.js → p-CP48ADFM.system.js} +1 -1
  345. package/dist/pine-core/p-CP48ADFM.system.js.map +1 -0
  346. package/dist/pine-core/p-CR01VmO6.system.js.map +1 -0
  347. package/dist/pine-core/{p-CAnnMfDw.system.js.map → p-CSLo9qKS.system.js.map} +1 -1
  348. package/dist/pine-core/{p-DmVKABQy.system.js.map → p-CboCokff.system.js.map} +1 -1
  349. package/dist/pine-core/{p-r_cS5LMw.system.js.map → p-Civ2VHC7.system.js.map} +1 -1
  350. package/dist/pine-core/{p-ChiYqN-p.system.js.map → p-CmquVvkz.system.js.map} +1 -1
  351. package/dist/pine-core/{p-CXGuX44q.system.js.map → p-Cn_QqTXg.system.js.map} +1 -1
  352. package/dist/pine-core/{p-tHMXRB8d.system.js.map → p-CpyTw2IQ.system.js.map} +1 -1
  353. package/dist/pine-core/{p-Brpt0zl5.system.js.map → p-Ct9csNdF.system.js.map} +1 -1
  354. package/dist/pine-core/{p-B_Co5NfG.system.js.map → p-Cun139qe.system.js.map} +1 -1
  355. package/dist/pine-core/p-D2eS6fhD.system.js +2 -0
  356. package/dist/pine-core/p-D2eS6fhD.system.js.map +1 -0
  357. package/dist/pine-core/{p-CTfQ_9yC.system.js.map → p-DFXWnbHE.system.js.map} +1 -1
  358. package/dist/pine-core/{p-xbb79yLt.js → p-DY8eSueV.js} +1 -1
  359. package/dist/pine-core/p-DY8eSueV.js.map +1 -0
  360. package/dist/pine-core/p-DbNPEZgc.system.js.map +1 -0
  361. package/dist/pine-core/p-DieNsvcz.system.js.map +1 -0
  362. package/dist/pine-core/{p-DB45WSlG.system.js.map → p-DwQewDCV.system.js.map} +1 -1
  363. package/dist/pine-core/p-JAVnELnm.system.js +1 -1
  364. package/dist/pine-core/{p-DC2NZwtk.system.js.map → p-LM0mZTib.system.js.map} +1 -1
  365. package/dist/pine-core/{p-DAvCgWA9.system.js.map → p-Lk6DnEPT.system.js.map} +1 -1
  366. package/dist/pine-core/{p-Bjj4Pcbb.system.js.map → p-YqHO7iPZ.system.js.map} +1 -1
  367. package/dist/pine-core/{p-00568c20.system.entry.js → p-a07b8e45.system.entry.js} +2 -2
  368. package/dist/pine-core/{p-c5013d20.entry.js → p-a3cdff85.entry.js} +2 -2
  369. package/dist/pine-core/{p-a4b16b32.system.entry.js → p-a5b24b1d.system.entry.js} +2 -2
  370. package/dist/pine-core/{p-596acf65.entry.js → p-a99e8caf.entry.js} +2 -2
  371. package/dist/pine-core/p-aPfTGFhq.system.js.map +1 -0
  372. package/dist/pine-core/{p-646ac76d.entry.js → p-ab3b6e0c.entry.js} +2 -2
  373. package/dist/pine-core/p-ab3b6e0c.entry.js.map +1 -0
  374. package/dist/pine-core/{p-002fe322.system.entry.js → p-ac240034.system.entry.js} +2 -2
  375. package/dist/pine-core/{p-fe28b975.system.entry.js → p-ac56273a.system.entry.js} +2 -2
  376. package/dist/pine-core/{p-fe28b975.system.entry.js.map → p-ac56273a.system.entry.js.map} +1 -1
  377. package/dist/pine-core/p-b41465b8.entry.js +3 -0
  378. package/dist/pine-core/p-b41465b8.entry.js.map +1 -0
  379. package/dist/pine-core/{p-b02936d2.entry.js → p-ba623ced.entry.js} +2 -2
  380. package/dist/pine-core/p-ba623ced.entry.js.map +1 -0
  381. package/dist/pine-core/{p-f8fba315.entry.js → p-bc85016b.entry.js} +2 -2
  382. package/dist/pine-core/{p-61588eac.entry.js → p-bddc9c5a.entry.js} +2 -2
  383. package/dist/pine-core/p-bff9fb8e.entry.js +2 -0
  384. package/dist/pine-core/p-bff9fb8e.entry.js.map +1 -0
  385. package/dist/pine-core/{p--gPqixhD.system.js.map → p-bs74TBAh.system.js.map} +1 -1
  386. package/dist/pine-core/{p-7de73ac5.entry.js → p-c24d11c7.entry.js} +2 -2
  387. package/dist/pine-core/p-c292e5da.system.entry.js +2 -0
  388. package/dist/pine-core/{p-6bc7d67f.system.entry.js.map → p-c292e5da.system.entry.js.map} +1 -1
  389. package/dist/pine-core/p-c68bceb1.entry.js +2 -0
  390. package/dist/pine-core/{p-478d1107.entry.js.map → p-c68bceb1.entry.js.map} +1 -1
  391. package/dist/pine-core/{p-0ace9c16.entry.js → p-c7c00a27.entry.js} +2 -2
  392. package/dist/pine-core/{p-cb6c279a.system.entry.js → p-cac3128b.system.entry.js} +2 -2
  393. package/dist/pine-core/p-ccab748a.entry.js +2 -0
  394. package/dist/pine-core/p-ccab748a.entry.js.map +1 -0
  395. package/dist/pine-core/p-d41112ad.entry.js +2 -0
  396. package/dist/pine-core/{p-f82b464c.entry.js.map → p-d41112ad.entry.js.map} +1 -1
  397. package/dist/pine-core/{p-6cba6806.entry.js → p-d6302edd.entry.js} +2 -2
  398. package/dist/pine-core/{p-e011d7e5.entry.js → p-d9693048.entry.js} +2 -2
  399. package/dist/pine-core/{p-e011d7e5.entry.js.map → p-d9693048.entry.js.map} +1 -1
  400. package/dist/pine-core/{p-04294b28.system.entry.js → p-daa36570.system.entry.js} +2 -2
  401. package/dist/pine-core/{p-15650db8.entry.js → p-e6dc2297.entry.js} +2 -2
  402. package/dist/pine-core/{p-9f53eb94.system.entry.js → p-e8cf15d7.system.entry.js} +2 -2
  403. package/dist/pine-core/p-eb026745.entry.js +2 -0
  404. package/dist/pine-core/{p-95f2782c.entry.js → p-f47d6724.entry.js} +2 -2
  405. package/dist/pine-core/p-f47d6724.entry.js.map +1 -0
  406. package/dist/pine-core/{p-D8Jc24Qq.system.js.map → p-htODgUCV.system.js.map} +1 -1
  407. package/dist/pine-core/{p-DYq1Mef8.system.js.map → p-j0609tLE.system.js.map} +1 -1
  408. package/dist/pine-core/{p-DoP8Sl1O.system.js.map → p-rcUX-rt5.system.js.map} +1 -1
  409. package/dist/pine-core/p-ztsUkqit.system.js.map +1 -0
  410. package/dist/pine-core/pds-checkbox.entry.esm.js.map +1 -1
  411. package/dist/pine-core/pds-combobox.entry.esm.js.map +1 -1
  412. package/dist/pine-core/pds-dropdown-menu-item.entry.esm.js.map +1 -1
  413. package/dist/pine-core/pds-dropdown-menu.entry.esm.js.map +1 -1
  414. package/dist/pine-core/pds-filter.entry.esm.js.map +1 -1
  415. package/dist/pine-core/pds-input.entry.esm.js.map +1 -1
  416. package/dist/pine-core/pds-loader.entry.esm.js.map +1 -1
  417. package/dist/pine-core/pds-multiselect.entry.esm.js.map +1 -0
  418. package/dist/pine-core/pds-select.entry.esm.js.map +1 -1
  419. package/dist/pine-core/pds-switch.entry.esm.js.map +1 -1
  420. package/dist/pine-core/pds-tab.entry.esm.js.map +1 -1
  421. package/dist/pine-core/pds-table-head-cell.entry.esm.js.map +1 -1
  422. package/dist/pine-core/pds-textarea.entry.esm.js.map +1 -1
  423. package/dist/pine-core/pine-core.esm.js +1 -1
  424. package/dist/types/components/pds-loader/pds-loader.d.ts +1 -1
  425. package/dist/types/components/pds-multiselect/multiselect-interface.d.ts +24 -0
  426. package/dist/types/components/pds-multiselect/pds-multiselect.d.ts +175 -0
  427. package/dist/types/components/pds-table/pds-table-head-cell/pds-table-head-cell.d.ts +10 -0
  428. package/dist/types/components.d.ts +250 -0
  429. package/dist/vscode.html-data.json +156 -0
  430. package/hydrate/index.js +939 -118
  431. package/hydrate/index.mjs +939 -118
  432. package/package.json +5 -5
  433. package/dist/cjs/floating-ui.dom-DTAy35nv.js.map +0 -1
  434. package/dist/cjs/index-CMeuo765.js.map +0 -1
  435. package/dist/esm/floating-ui.dom-DbQzNDdQ.js.map +0 -1
  436. package/dist/esm/index-xbb79yLt.js.map +0 -1
  437. package/dist/esm-es5/floating-ui.dom-DbQzNDdQ.js +0 -2
  438. package/dist/esm-es5/floating-ui.dom-DbQzNDdQ.js.map +0 -1
  439. package/dist/esm-es5/index-xbb79yLt.js.map +0 -1
  440. package/dist/pine-core/p-43990889.entry.js +0 -2
  441. package/dist/pine-core/p-478d1107.entry.js +0 -2
  442. package/dist/pine-core/p-534e44cb.system.entry.js +0 -4
  443. package/dist/pine-core/p-534e44cb.system.entry.js.map +0 -1
  444. package/dist/pine-core/p-54a56826.entry.js +0 -3
  445. package/dist/pine-core/p-54a56826.entry.js.map +0 -1
  446. package/dist/pine-core/p-553e4543.entry.js +0 -2
  447. package/dist/pine-core/p-553e4543.entry.js.map +0 -1
  448. package/dist/pine-core/p-5f6cd30d.system.entry.js +0 -2
  449. package/dist/pine-core/p-5f6cd30d.system.entry.js.map +0 -1
  450. package/dist/pine-core/p-646ac76d.entry.js.map +0 -1
  451. package/dist/pine-core/p-6bc7d67f.system.entry.js +0 -2
  452. package/dist/pine-core/p-711989de.entry.js.map +0 -1
  453. package/dist/pine-core/p-8323fe69.system.entry.js +0 -2
  454. package/dist/pine-core/p-8323fe69.system.entry.js.map +0 -1
  455. package/dist/pine-core/p-95f2782c.entry.js.map +0 -1
  456. package/dist/pine-core/p-9e62c418.system.entry.js +0 -2
  457. package/dist/pine-core/p-9e62c418.system.entry.js.map +0 -1
  458. package/dist/pine-core/p-BOmQOnQe.system.js +0 -2
  459. package/dist/pine-core/p-BOmQOnQe.system.js.map +0 -1
  460. package/dist/pine-core/p-Bnp3zJ0T.system.js.map +0 -1
  461. package/dist/pine-core/p-CKzDRRgx.system.js.map +0 -1
  462. package/dist/pine-core/p-DSwKfctG.system.js.map +0 -1
  463. package/dist/pine-core/p-DbQzNDdQ.js +0 -2
  464. package/dist/pine-core/p-DbQzNDdQ.js.map +0 -1
  465. package/dist/pine-core/p-DfCCzxYg.system.js.map +0 -1
  466. package/dist/pine-core/p-X0_TH-op.system.js.map +0 -1
  467. package/dist/pine-core/p-XCTiWii8.system.js.map +0 -1
  468. package/dist/pine-core/p-ac2f9463.entry.js +0 -2
  469. package/dist/pine-core/p-ac2f9463.entry.js.map +0 -1
  470. package/dist/pine-core/p-b02936d2.entry.js.map +0 -1
  471. package/dist/pine-core/p-b59a0c6b.system.entry.js +0 -2
  472. package/dist/pine-core/p-d0e336b7.system.entry.js +0 -2
  473. package/dist/pine-core/p-dad604e4.system.entry.js.map +0 -1
  474. package/dist/pine-core/p-dcc6ad67.system.entry.js +0 -2
  475. package/dist/pine-core/p-e3d76aa3.system.entry.js.map +0 -1
  476. package/dist/pine-core/p-e7e25d42.entry.js +0 -2
  477. package/dist/pine-core/p-f82b464c.entry.js +0 -2
  478. package/dist/pine-core/p-f92055f3.entry.js +0 -2
  479. package/dist/pine-core/p-xbb79yLt.js.map +0 -1
  480. package/dist/pine-core/p-zgS7Vsk7.system.js.map +0 -1
  481. /package/dist/pine-core/{p-b59a0c6b.system.entry.js.map → p-02f48157.system.entry.js.map} +0 -0
  482. /package/dist/pine-core/{p-b30424e3.system.entry.js.map → p-063afa19.system.entry.js.map} +0 -0
  483. /package/dist/pine-core/{p-15202869.entry.js.map → p-10dbe3e2.entry.js.map} +0 -0
  484. /package/dist/pine-core/{p-5b7ab891.entry.js.map → p-12360e47.entry.js.map} +0 -0
  485. /package/dist/pine-core/{p-ac14c8e3.system.entry.js.map → p-137b3289.system.entry.js.map} +0 -0
  486. /package/dist/pine-core/{p-a737df90.entry.js.map → p-154a32f4.entry.js.map} +0 -0
  487. /package/dist/pine-core/{p-a847fad3.entry.js.map → p-2537aacb.entry.js.map} +0 -0
  488. /package/dist/pine-core/{p-cd335ec2.system.entry.js.map → p-2fe330d0.system.entry.js.map} +0 -0
  489. /package/dist/pine-core/{p-d0e336b7.system.entry.js.map → p-30ea3668.system.entry.js.map} +0 -0
  490. /package/dist/pine-core/{p-1daf66d1.entry.js.map → p-31168da5.entry.js.map} +0 -0
  491. /package/dist/pine-core/{p-732e2564.system.entry.js.map → p-325b3b0d.system.entry.js.map} +0 -0
  492. /package/dist/pine-core/{p-9bfaed7e.system.entry.js.map → p-4c23c75b.system.entry.js.map} +0 -0
  493. /package/dist/pine-core/{p-bdf8bff3.system.entry.js.map → p-4d85945b.system.entry.js.map} +0 -0
  494. /package/dist/pine-core/{p-3f8b0885.system.entry.js.map → p-4d9eee67.system.entry.js.map} +0 -0
  495. /package/dist/pine-core/{p-e2104c31.entry.js.map → p-5040a872.entry.js.map} +0 -0
  496. /package/dist/pine-core/{p-a08b60ae.entry.js.map → p-5b9110fe.entry.js.map} +0 -0
  497. /package/dist/pine-core/{p-94b1997d.system.entry.js.map → p-5e92aa34.system.entry.js.map} +0 -0
  498. /package/dist/pine-core/{p-43990889.entry.js.map → p-63269b89.entry.js.map} +0 -0
  499. /package/dist/pine-core/{p-cf2e1c07.system.entry.js.map → p-70aa35fc.system.entry.js.map} +0 -0
  500. /package/dist/pine-core/{p-fc0ee6da.entry.js.map → p-757c7b80.entry.js.map} +0 -0
  501. /package/dist/pine-core/{p-1df25b57.system.entry.js.map → p-78ee2e08.system.entry.js.map} +0 -0
  502. /package/dist/pine-core/{p-2319298c.system.entry.js.map → p-7b5c8248.system.entry.js.map} +0 -0
  503. /package/dist/pine-core/{p-f9ef2f74.system.entry.js.map → p-87eb8d4b.system.entry.js.map} +0 -0
  504. /package/dist/pine-core/{p-e7e25d42.entry.js.map → p-8eb1c168.entry.js.map} +0 -0
  505. /package/dist/pine-core/{p-e5bc22b6.system.entry.js.map → p-8fdb10c4.system.entry.js.map} +0 -0
  506. /package/dist/pine-core/{p-232e4282.system.entry.js.map → p-90615423.system.entry.js.map} +0 -0
  507. /package/dist/pine-core/{p-f79f6f08.system.entry.js.map → p-932283cf.system.entry.js.map} +0 -0
  508. /package/dist/pine-core/{p-0b05708b.entry.js.map → p-9ada659b.entry.js.map} +0 -0
  509. /package/dist/pine-core/{p-4778ae70.entry.js.map → p-9bb6cc3d.entry.js.map} +0 -0
  510. /package/dist/pine-core/{p-3f6b9520.entry.js.map → p-9c928c44.entry.js.map} +0 -0
  511. /package/dist/pine-core/{p-e8aad8dc.entry.js.map → p-9eccf7b9.entry.js.map} +0 -0
  512. /package/dist/pine-core/{p-00568c20.system.entry.js.map → p-a07b8e45.system.entry.js.map} +0 -0
  513. /package/dist/pine-core/{p-c5013d20.entry.js.map → p-a3cdff85.entry.js.map} +0 -0
  514. /package/dist/pine-core/{p-a4b16b32.system.entry.js.map → p-a5b24b1d.system.entry.js.map} +0 -0
  515. /package/dist/pine-core/{p-596acf65.entry.js.map → p-a99e8caf.entry.js.map} +0 -0
  516. /package/dist/pine-core/{p-002fe322.system.entry.js.map → p-ac240034.system.entry.js.map} +0 -0
  517. /package/dist/pine-core/{p-f8fba315.entry.js.map → p-bc85016b.entry.js.map} +0 -0
  518. /package/dist/pine-core/{p-61588eac.entry.js.map → p-bddc9c5a.entry.js.map} +0 -0
  519. /package/dist/pine-core/{p-7de73ac5.entry.js.map → p-c24d11c7.entry.js.map} +0 -0
  520. /package/dist/pine-core/{p-0ace9c16.entry.js.map → p-c7c00a27.entry.js.map} +0 -0
  521. /package/dist/pine-core/{p-cb6c279a.system.entry.js.map → p-cac3128b.system.entry.js.map} +0 -0
  522. /package/dist/pine-core/{p-6cba6806.entry.js.map → p-d6302edd.entry.js.map} +0 -0
  523. /package/dist/pine-core/{p-04294b28.system.entry.js.map → p-daa36570.system.entry.js.map} +0 -0
  524. /package/dist/pine-core/{p-15650db8.entry.js.map → p-e6dc2297.entry.js.map} +0 -0
  525. /package/dist/pine-core/{p-9f53eb94.system.entry.js.map → p-e8cf15d7.system.entry.js.map} +0 -0
  526. /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>";
@@ -4516,7 +4516,8 @@ class PdsCheckbox {
4516
4516
  return classNames.join(' ');
4517
4517
  }
4518
4518
  connectedCallback() {
4519
- if (this.el.attachInternals) {
4519
+ // Initialize ElementInternals for form association (only once per element instance)
4520
+ if (this.el.attachInternals && !this.internals) {
4520
4521
  this.internals = this.el.attachInternals();
4521
4522
  }
4522
4523
  // Expose type property on the element instance to match native form element behavior
@@ -4557,9 +4558,9 @@ class PdsCheckbox {
4557
4558
  this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
4558
4559
  }
4559
4560
  render() {
4560
- return (hAsync(Host, { key: '03464c7d6a3dc475e266b5f913928d17b2a338d6', class: this.classNames() }, hAsync("label", { key: '194a98ecdaa1c2627c4a94a4aff9c3c83ddd3a0b', htmlFor: this.componentId }, hAsync("input", Object.assign({ key: '8878b64c34ad11dca1e90b72afb0cd30017d3bc2', type: "checkbox", "aria-describedby": assignDescription(this.componentId, this.invalid, this.errorMessage || this.helperMessage), "aria-invalid": this.invalid ? "true" : undefined, id: this.componentId, indeterminate: this.indeterminate, name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onChange: this.handleCheckboxChange, onInput: this.handleInput }, this.inheritedAttributes)), hAsync("span", { key: 'f3db09d434084bf96b5f1b0da8c095d6517d91b5', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), this.helperMessage &&
4561
- hAsync("div", { key: 'c781a27975cdd7c4361fa9d29a06f915633f52ba', class: 'pds-checkbox__message', id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
4562
- hAsync("div", { key: 'b586e97855401f21dcbd5822e4bad099b6a7dc2a', class: `pds-checkbox__message pds-checkbox__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: '98c8db2a196b84683aa777fd1a9a9291e30acf78', icon: danger, size: "small" }), this.errorMessage)));
4561
+ return (hAsync(Host, { key: '89542cef41ee75d43ed9595fa4c034d11015c2b2', class: this.classNames() }, hAsync("label", { key: 'c42bc84be20638bc54b39e19740831fd384dd51d', htmlFor: this.componentId }, hAsync("input", Object.assign({ key: 'f99059d69fec916a33deb4e4e2449cf62029e4ca', type: "checkbox", "aria-describedby": assignDescription(this.componentId, this.invalid, this.errorMessage || this.helperMessage), "aria-invalid": this.invalid ? "true" : undefined, id: this.componentId, indeterminate: this.indeterminate, name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onChange: this.handleCheckboxChange, onInput: this.handleInput }, this.inheritedAttributes)), hAsync("span", { key: '5482e147bbfb151b4984ee6fa52781d0533bea8c', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), this.helperMessage &&
4562
+ hAsync("div", { key: '30792c96b68346304a4ba10d050904f74f5811ca', class: 'pds-checkbox__message', id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
4563
+ hAsync("div", { key: 'd3ee96dc4d6a7dc8f0ce7453850f3211b10b6b9f', class: `pds-checkbox__message pds-checkbox__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: '0c4255a58ca7873bc23228e6097adc150006caa9', icon: danger, size: "small" }), this.errorMessage)));
4563
4564
  }
4564
4565
  static get formAssociated() { return true; }
4565
4566
  get el() { return getElement(this); }
@@ -4719,8 +4720,9 @@ function getOppositeAxis(axis) {
4719
4720
  function getAxisLength(axis) {
4720
4721
  return axis === 'y' ? 'height' : 'width';
4721
4722
  }
4723
+ const yAxisSides = /*#__PURE__*/new Set(['top', 'bottom']);
4722
4724
  function getSideAxis(placement) {
4723
- return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';
4725
+ return yAxisSides.has(getSide(placement)) ? 'y' : 'x';
4724
4726
  }
4725
4727
  function getAlignmentAxis(placement) {
4726
4728
  return getOppositeAxis(getSideAxis(placement));
@@ -4745,19 +4747,19 @@ function getExpandedPlacements(placement) {
4745
4747
  function getOppositeAlignmentPlacement(placement) {
4746
4748
  return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);
4747
4749
  }
4750
+ const lrPlacement = ['left', 'right'];
4751
+ const rlPlacement = ['right', 'left'];
4752
+ const tbPlacement = ['top', 'bottom'];
4753
+ const btPlacement = ['bottom', 'top'];
4748
4754
  function getSideList(side, isStart, rtl) {
4749
- const lr = ['left', 'right'];
4750
- const rl = ['right', 'left'];
4751
- const tb = ['top', 'bottom'];
4752
- const bt = ['bottom', 'top'];
4753
4755
  switch (side) {
4754
4756
  case 'top':
4755
4757
  case 'bottom':
4756
- if (rtl) return isStart ? rl : lr;
4757
- return isStart ? lr : rl;
4758
+ if (rtl) return isStart ? rlPlacement : lrPlacement;
4759
+ return isStart ? lrPlacement : rlPlacement;
4758
4760
  case 'left':
4759
4761
  case 'right':
4760
- return isStart ? tb : bt;
4762
+ return isStart ? tbPlacement : btPlacement;
4761
4763
  default:
4762
4764
  return [];
4763
4765
  }
@@ -5095,10 +5097,11 @@ const flip$1 = function (options) {
5095
5097
  const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
5096
5098
  const nextPlacement = placements[nextIndex];
5097
5099
  if (nextPlacement) {
5098
- var _overflowsData$;
5099
5100
  const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;
5100
- const hasInitialMainAxisOverflow = ((_overflowsData$ = overflowsData[0]) == null ? void 0 : _overflowsData$.overflows[0]) > 0;
5101
- if (!ignoreCrossAxisOverflow || hasInitialMainAxisOverflow) {
5101
+ if (!ignoreCrossAxisOverflow ||
5102
+ // We leave the current main axis only if every placement on that axis
5103
+ // overflows the main axis.
5104
+ overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {
5102
5105
  // Try next placement and re-run the lifecycle.
5103
5106
  return {
5104
5107
  data: {
@@ -5155,6 +5158,8 @@ const flip$1 = function (options) {
5155
5158
  };
5156
5159
  };
5157
5160
 
5161
+ const originSides = /*#__PURE__*/new Set(['left', 'top']);
5162
+
5158
5163
  // For type backwards-compatibility, the `OffsetOptions` type was also
5159
5164
  // Derivable.
5160
5165
 
@@ -5168,7 +5173,7 @@ async function convertValueToCoords(state, options) {
5168
5173
  const side = getSide(placement);
5169
5174
  const alignment = getAlignment(placement);
5170
5175
  const isVertical = getSideAxis(placement) === 'y';
5171
- const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;
5176
+ const mainAxisMulti = originSides.has(side) ? -1 : 1;
5172
5177
  const crossAxisMulti = rtl && isVertical ? -1 : 1;
5173
5178
  const rawValue = evaluate(options, state);
5174
5179
 
@@ -5317,6 +5322,90 @@ const shift$1 = function (options) {
5317
5322
  };
5318
5323
  };
5319
5324
 
5325
+ /**
5326
+ * Provides data that allows you to change the size of the floating element —
5327
+ * for instance, prevent it from overflowing the clipping boundary or match the
5328
+ * width of the reference element.
5329
+ * @see https://floating-ui.com/docs/size
5330
+ */
5331
+ const size$1 = function (options) {
5332
+ if (options === void 0) {
5333
+ options = {};
5334
+ }
5335
+ return {
5336
+ name: 'size',
5337
+ options,
5338
+ async fn(state) {
5339
+ var _state$middlewareData, _state$middlewareData2;
5340
+ const {
5341
+ placement,
5342
+ rects,
5343
+ platform,
5344
+ elements
5345
+ } = state;
5346
+ const {
5347
+ apply = () => {},
5348
+ ...detectOverflowOptions
5349
+ } = evaluate(options, state);
5350
+ const overflow = await detectOverflow(state, detectOverflowOptions);
5351
+ const side = getSide(placement);
5352
+ const alignment = getAlignment(placement);
5353
+ const isYAxis = getSideAxis(placement) === 'y';
5354
+ const {
5355
+ width,
5356
+ height
5357
+ } = rects.floating;
5358
+ let heightSide;
5359
+ let widthSide;
5360
+ if (side === 'top' || side === 'bottom') {
5361
+ heightSide = side;
5362
+ widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';
5363
+ } else {
5364
+ widthSide = side;
5365
+ heightSide = alignment === 'end' ? 'top' : 'bottom';
5366
+ }
5367
+ const maximumClippingHeight = height - overflow.top - overflow.bottom;
5368
+ const maximumClippingWidth = width - overflow.left - overflow.right;
5369
+ const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);
5370
+ const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);
5371
+ const noShift = !state.middlewareData.shift;
5372
+ let availableHeight = overflowAvailableHeight;
5373
+ let availableWidth = overflowAvailableWidth;
5374
+ if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {
5375
+ availableWidth = maximumClippingWidth;
5376
+ }
5377
+ if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {
5378
+ availableHeight = maximumClippingHeight;
5379
+ }
5380
+ if (noShift && !alignment) {
5381
+ const xMin = max(overflow.left, 0);
5382
+ const xMax = max(overflow.right, 0);
5383
+ const yMin = max(overflow.top, 0);
5384
+ const yMax = max(overflow.bottom, 0);
5385
+ if (isYAxis) {
5386
+ availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));
5387
+ } else {
5388
+ availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));
5389
+ }
5390
+ }
5391
+ await apply({
5392
+ ...state,
5393
+ availableWidth,
5394
+ availableHeight
5395
+ });
5396
+ const nextDimensions = await platform.getDimensions(elements.floating);
5397
+ if (width !== nextDimensions.width || height !== nextDimensions.height) {
5398
+ return {
5399
+ reset: {
5400
+ rects: true
5401
+ }
5402
+ };
5403
+ }
5404
+ return {};
5405
+ }
5406
+ };
5407
+ };
5408
+
5320
5409
  function hasWindow() {
5321
5410
  return typeof window !== 'undefined';
5322
5411
  }
@@ -5361,6 +5450,7 @@ function isShadowRoot(value) {
5361
5450
  }
5362
5451
  return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;
5363
5452
  }
5453
+ const invalidOverflowDisplayValues = /*#__PURE__*/new Set(['inline', 'contents']);
5364
5454
  function isOverflowElement(element) {
5365
5455
  const {
5366
5456
  overflow,
@@ -5368,27 +5458,32 @@ function isOverflowElement(element) {
5368
5458
  overflowY,
5369
5459
  display
5370
5460
  } = getComputedStyle$1(element);
5371
- return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);
5461
+ return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);
5372
5462
  }
5463
+ const tableElements = /*#__PURE__*/new Set(['table', 'td', 'th']);
5373
5464
  function isTableElement(element) {
5374
- return ['table', 'td', 'th'].includes(getNodeName(element));
5465
+ return tableElements.has(getNodeName(element));
5375
5466
  }
5467
+ const topLayerSelectors = [':popover-open', ':modal'];
5376
5468
  function isTopLayer(element) {
5377
- return [':popover-open', ':modal'].some(selector => {
5469
+ return topLayerSelectors.some(selector => {
5378
5470
  try {
5379
5471
  return element.matches(selector);
5380
- } catch (e) {
5472
+ } catch (_e) {
5381
5473
  return false;
5382
5474
  }
5383
5475
  });
5384
5476
  }
5477
+ const transformProperties = ['transform', 'translate', 'scale', 'rotate', 'perspective'];
5478
+ const willChangeValues = ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'];
5479
+ const containValues = ['paint', 'layout', 'strict', 'content'];
5385
5480
  function isContainingBlock(elementOrCss) {
5386
5481
  const webkit = isWebKit();
5387
5482
  const css = isElement(elementOrCss) ? getComputedStyle$1(elementOrCss) : elementOrCss;
5388
5483
 
5389
5484
  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
5390
5485
  // https://drafts.csswg.org/css-transforms-2/#individual-transforms
5391
- 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));
5486
+ 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));
5392
5487
  }
5393
5488
  function getContainingBlock(element) {
5394
5489
  let currentNode = getParentNode(element);
@@ -5406,8 +5501,9 @@ function isWebKit() {
5406
5501
  if (typeof CSS === 'undefined' || !CSS.supports) return false;
5407
5502
  return CSS.supports('-webkit-backdrop-filter', 'none');
5408
5503
  }
5504
+ const lastTraversableNodeNames = /*#__PURE__*/new Set(['html', 'body', '#document']);
5409
5505
  function isLastTraversableNode(node) {
5410
- return ['html', 'body', '#document'].includes(getNodeName(node));
5506
+ return lastTraversableNodeNames.has(getNodeName(node));
5411
5507
  }
5412
5508
  function getComputedStyle$1(element) {
5413
5509
  return getWindow(element).getComputedStyle(element);
@@ -5607,14 +5703,9 @@ function getWindowScrollBarX(element, rect) {
5607
5703
  return rect.left + leftScroll;
5608
5704
  }
5609
5705
 
5610
- function getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {
5611
- if (ignoreScrollbarX === void 0) {
5612
- ignoreScrollbarX = false;
5613
- }
5706
+ function getHTMLOffset(documentElement, scroll) {
5614
5707
  const htmlRect = documentElement.getBoundingClientRect();
5615
- const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :
5616
- // RTL <body> scrollbar.
5617
- getWindowScrollBarX(documentElement, htmlRect));
5708
+ const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);
5618
5709
  const y = htmlRect.top + scroll.scrollTop;
5619
5710
  return {
5620
5711
  x,
@@ -5653,7 +5744,7 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
5653
5744
  offsets.y = offsetRect.y + offsetParent.clientTop;
5654
5745
  }
5655
5746
  }
5656
- const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);
5747
+ const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
5657
5748
  return {
5658
5749
  width: rect.width * scale.x,
5659
5750
  height: rect.height * scale.y,
@@ -5687,6 +5778,10 @@ function getDocumentRect(element) {
5687
5778
  };
5688
5779
  }
5689
5780
 
5781
+ // Safety check: ensure the scrollbar space is reasonable in case this
5782
+ // calculation is affected by unusual styles.
5783
+ // Most scrollbars leave 15-18px of space.
5784
+ const SCROLLBAR_MAX = 25;
5690
5785
  function getViewportRect(element, strategy) {
5691
5786
  const win = getWindow(element);
5692
5787
  const html = getDocumentElement(element);
@@ -5704,6 +5799,24 @@ function getViewportRect(element, strategy) {
5704
5799
  y = visualViewport.offsetTop;
5705
5800
  }
5706
5801
  }
5802
+ const windowScrollbarX = getWindowScrollBarX(html);
5803
+ // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the
5804
+ // visual width of the <html> but this is not considered in the size
5805
+ // of `html.clientWidth`.
5806
+ if (windowScrollbarX <= 0) {
5807
+ const doc = html.ownerDocument;
5808
+ const body = doc.body;
5809
+ const bodyStyles = getComputedStyle(body);
5810
+ const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;
5811
+ const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);
5812
+ if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {
5813
+ width -= clippingStableScrollbarWidth;
5814
+ }
5815
+ } else if (windowScrollbarX <= SCROLLBAR_MAX) {
5816
+ // If the <body> scrollbar is on the left, the width needs to be extended
5817
+ // by the scrollbar amount so there isn't extra space on the right.
5818
+ width += windowScrollbarX;
5819
+ }
5707
5820
  return {
5708
5821
  width,
5709
5822
  height,
@@ -5712,6 +5825,7 @@ function getViewportRect(element, strategy) {
5712
5825
  };
5713
5826
  }
5714
5827
 
5828
+ const absoluteOrFixed = /*#__PURE__*/new Set(['absolute', 'fixed']);
5715
5829
  // Returns the inner client rect, subtracting scrollbars if present.
5716
5830
  function getInnerBoundingClientRect(element, strategy) {
5717
5831
  const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');
@@ -5776,7 +5890,7 @@ function getClippingElementAncestors(element, cache) {
5776
5890
  if (!currentNodeIsContaining && computedStyle.position === 'fixed') {
5777
5891
  currentContainingBlockComputedStyle = null;
5778
5892
  }
5779
- const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
5893
+ const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
5780
5894
  if (shouldDropCurrentNode) {
5781
5895
  // Drop non-containing blocks.
5782
5896
  result = result.filter(ancestor => ancestor !== currentNode);
@@ -6148,6 +6262,14 @@ const shift = shift$1;
6148
6262
  */
6149
6263
  const flip = flip$1;
6150
6264
 
6265
+ /**
6266
+ * Provides data that allows you to change the size of the floating element —
6267
+ * for instance, prevent it from overflowing the clipping boundary or match the
6268
+ * width of the reference element.
6269
+ * @see https://floating-ui.com/docs/size
6270
+ */
6271
+ const size = size$1;
6272
+
6151
6273
  /**
6152
6274
  * Computes the `x` and `y` coordinates that will place the floating element
6153
6275
  * next to a given reference element.
@@ -6171,7 +6293,7 @@ const computePosition = (reference, floating, options) => {
6171
6293
  });
6172
6294
  };
6173
6295
 
6174
- /*! @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 */
6296
+ /*! @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 */
6175
6297
 
6176
6298
  const {
6177
6299
  entries,
@@ -6200,12 +6322,18 @@ if (!seal) {
6200
6322
  };
6201
6323
  }
6202
6324
  if (!apply) {
6203
- apply = function apply(fun, thisValue, args) {
6204
- return fun.apply(thisValue, args);
6325
+ apply = function apply(func, thisArg) {
6326
+ for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
6327
+ args[_key - 2] = arguments[_key];
6328
+ }
6329
+ return func.apply(thisArg, args);
6205
6330
  };
6206
6331
  }
6207
6332
  if (!construct) {
6208
- construct = function construct(Func, args) {
6333
+ construct = function construct(Func) {
6334
+ for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
6335
+ args[_key2 - 1] = arguments[_key2];
6336
+ }
6209
6337
  return new Func(...args);
6210
6338
  };
6211
6339
  }
@@ -6234,8 +6362,8 @@ function unapply(func) {
6234
6362
  if (thisArg instanceof RegExp) {
6235
6363
  thisArg.lastIndex = 0;
6236
6364
  }
6237
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
6238
- args[_key - 1] = arguments[_key];
6365
+ for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
6366
+ args[_key3 - 1] = arguments[_key3];
6239
6367
  }
6240
6368
  return apply(func, thisArg, args);
6241
6369
  };
@@ -6246,12 +6374,12 @@ function unapply(func) {
6246
6374
  * @param func - The constructor function to be wrapped and called.
6247
6375
  * @returns A new function that constructs an instance of the given constructor function with the provided arguments.
6248
6376
  */
6249
- function unconstruct(func) {
6377
+ function unconstruct(Func) {
6250
6378
  return function () {
6251
- for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
6252
- args[_key2] = arguments[_key2];
6379
+ for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
6380
+ args[_key4] = arguments[_key4];
6253
6381
  }
6254
- return construct(func, args);
6382
+ return construct(Func, args);
6255
6383
  };
6256
6384
  }
6257
6385
  /**
@@ -6350,8 +6478,8 @@ function lookupGetter(object, prop) {
6350
6478
  return fallbackValue;
6351
6479
  }
6352
6480
 
6353
- 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']);
6354
- 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']);
6481
+ 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']);
6482
+ 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']);
6355
6483
  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']);
6356
6484
  // List of SVG elements that are disallowed by default.
6357
6485
  // We still need to know them so that we can do namespace
@@ -6364,8 +6492,8 @@ const mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mgly
6364
6492
  const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);
6365
6493
  const text = freeze(['#text']);
6366
6494
 
6367
- 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']);
6368
- 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']);
6495
+ 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']);
6496
+ 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']);
6369
6497
  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']);
6370
6498
  const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);
6371
6499
 
@@ -6463,7 +6591,7 @@ const _createHooksMap = function _createHooksMap() {
6463
6591
  function createDOMPurify() {
6464
6592
  let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();
6465
6593
  const DOMPurify = root => createDOMPurify(root);
6466
- DOMPurify.version = '3.2.6';
6594
+ DOMPurify.version = '3.3.1';
6467
6595
  DOMPurify.removed = [];
6468
6596
  if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {
6469
6597
  // Not running in a browser, provide a factory function
@@ -6574,6 +6702,21 @@ function createDOMPurify() {
6574
6702
  let FORBID_TAGS = null;
6575
6703
  /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */
6576
6704
  let FORBID_ATTR = null;
6705
+ /* Config object to store ADD_TAGS/ADD_ATTR functions (when used as functions) */
6706
+ const EXTRA_ELEMENT_HANDLING = Object.seal(create(null, {
6707
+ tagCheck: {
6708
+ writable: true,
6709
+ configurable: false,
6710
+ enumerable: true,
6711
+ value: null
6712
+ },
6713
+ attributeCheck: {
6714
+ writable: true,
6715
+ configurable: false,
6716
+ enumerable: true,
6717
+ value: null
6718
+ }
6719
+ }));
6577
6720
  /* Decide if ARIA attributes are okay */
6578
6721
  let ALLOW_ARIA_ATTR = true;
6579
6722
  /* Decide if custom data attributes are okay */
@@ -6766,16 +6909,24 @@ function createDOMPurify() {
6766
6909
  }
6767
6910
  /* Merge configuration parameters */
6768
6911
  if (cfg.ADD_TAGS) {
6769
- if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
6770
- ALLOWED_TAGS = clone$1(ALLOWED_TAGS);
6912
+ if (typeof cfg.ADD_TAGS === 'function') {
6913
+ EXTRA_ELEMENT_HANDLING.tagCheck = cfg.ADD_TAGS;
6914
+ } else {
6915
+ if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
6916
+ ALLOWED_TAGS = clone$1(ALLOWED_TAGS);
6917
+ }
6918
+ addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
6771
6919
  }
6772
- addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
6773
6920
  }
6774
6921
  if (cfg.ADD_ATTR) {
6775
- if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
6776
- ALLOWED_ATTR = clone$1(ALLOWED_ATTR);
6922
+ if (typeof cfg.ADD_ATTR === 'function') {
6923
+ EXTRA_ELEMENT_HANDLING.attributeCheck = cfg.ADD_ATTR;
6924
+ } else {
6925
+ if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
6926
+ ALLOWED_ATTR = clone$1(ALLOWED_ATTR);
6927
+ }
6928
+ addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
6777
6929
  }
6778
- addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
6779
6930
  }
6780
6931
  if (cfg.ADD_URI_SAFE_ATTR) {
6781
6932
  addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);
@@ -6786,6 +6937,12 @@ function createDOMPurify() {
6786
6937
  }
6787
6938
  addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);
6788
6939
  }
6940
+ if (cfg.ADD_FORBID_CONTENTS) {
6941
+ if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {
6942
+ FORBID_CONTENTS = clone$1(FORBID_CONTENTS);
6943
+ }
6944
+ addToSet(FORBID_CONTENTS, cfg.ADD_FORBID_CONTENTS, transformCaseFunc);
6945
+ }
6789
6946
  /* Add #text in case KEEP_CONTENT is set to true */
6790
6947
  if (KEEP_CONTENT) {
6791
6948
  ALLOWED_TAGS['#text'] = true;
@@ -7083,7 +7240,7 @@ function createDOMPurify() {
7083
7240
  return true;
7084
7241
  }
7085
7242
  /* Remove element if anything forbids its presence */
7086
- if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
7243
+ if (!(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName])) {
7087
7244
  /* Check if we have a custom element to handle */
7088
7245
  if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {
7089
7246
  if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {
@@ -7155,12 +7312,12 @@ function createDOMPurify() {
7155
7312
  (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)
7156
7313
  XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)
7157
7314
  We don't need to check the value; it's always URI safe. */
7158
- 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]) {
7315
+ 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]) {
7159
7316
  if (
7160
7317
  // First condition does a very basic check if a) it's basically a valid custom element tagname AND
7161
7318
  // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
7162
7319
  // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
7163
- _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)) ||
7320
+ _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)) ||
7164
7321
  // Alternative, second condition checks if it's an `is`-attribute, AND
7165
7322
  // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
7166
7323
  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 {
@@ -7239,7 +7396,12 @@ function createDOMPurify() {
7239
7396
  value = SANITIZE_NAMED_PROPS_PREFIX + value;
7240
7397
  }
7241
7398
  /* Work around a security issue with comments inside attributes */
7242
- if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\/(style|title)/i, value)) {
7399
+ if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\/(style|title|textarea)/i, value)) {
7400
+ _removeAttribute(name, currentNode);
7401
+ continue;
7402
+ }
7403
+ /* Make sure we cannot easily use animated hrefs, even if animations are allowed */
7404
+ if (lcName === 'attributename' && stringMatch(value, 'href')) {
7243
7405
  _removeAttribute(name, currentNode);
7244
7406
  continue;
7245
7407
  }
@@ -7838,8 +8000,8 @@ class PdsCombobox {
7838
8000
  };
7839
8001
  }
7840
8002
  connectedCallback() {
7841
- // Initialize ElementInternals for form association
7842
- if (this.el.attachInternals) {
8003
+ // Initialize ElementInternals for form association (only once per element instance)
8004
+ if (this.el.attachInternals && !this.internals) {
7843
8005
  this.internals = this.el.attachInternals();
7844
8006
  }
7845
8007
  }
@@ -8537,10 +8699,10 @@ class PdsCombobox {
8537
8699
  }
8538
8700
  render() {
8539
8701
  const triggerClass = `pds-combobox__button-trigger pds-combobox__button-trigger--${this.triggerVariant}`;
8540
- return (hAsync(Host, { key: 'd62992abd6eae05cfff52cfc0272490ca6370291' }, hAsync("div", { key: 'affff971535065b7352daee494742bf7b65a61f4', class: "pds-combobox", tabIndex: -1, onFocusout: this.onComboboxFocusOut }, this.label && (hAsync("label", { key: 'c27f88928932bc4535698cb88595b1559cb22e55', htmlFor: this.componentId, class: "pds-combobox__label" }, hAsync("span", { key: '0b65e67897735819cb2a4dc7d6d7d355af2f28d5', class: this.hideLabel ? 'visually-hidden' : '' }, this.label))), this.trigger === 'input' ? (hAsync("div", { class: "pds-combobox__input-wrapper", style: { width: this.triggerWidth } }, hAsync("input", { ref: el => {
8702
+ return (hAsync(Host, { key: 'e4de3982f971380d983bcb587de64f8767d4fc2b' }, hAsync("div", { key: 'c0637dfa13b6482514cef29c18cda354002f6e3b', class: "pds-combobox", tabIndex: -1, onFocusout: this.onComboboxFocusOut }, this.label && (hAsync("label", { key: 'cdbb49f63298e0003fff9a9456d3a8bfc1ce9978', htmlFor: this.componentId, class: "pds-combobox__label" }, hAsync("span", { key: '9c20cf24390599408a0f16b6cbf944c8c337979e', class: this.hideLabel ? 'visually-hidden' : '' }, this.label))), this.trigger === 'input' ? (hAsync("div", { class: "pds-combobox__input-wrapper", style: { width: this.triggerWidth } }, hAsync("input", { ref: el => {
8541
8703
  this.inputEl = el;
8542
8704
  this.triggerEl = el;
8543
- }, class: "pds-combobox__input", type: "text", role: "combobox", "aria-autocomplete": "list", "aria-controls": "pds-combobox-listbox", "aria-activedescendant": this.isOpen && this.highlightedIndex >= 0 ? `pds-combobox-option-${this.highlightedIndex}` : undefined, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.hideLabel ? this.label : undefined, id: this.componentId, value: this.displayText, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput, onClick: this.handleInputClick, onKeyDown: this.handleKeyDown, autocomplete: "off", part: "input" }), hAsync("pds-icon", { icon: "enlarge", "aria-hidden": "true", class: "pds-combobox__input-icon" }))) : this.trigger === 'chip' ? (hAsync("div", { class: this.getChipTriggerClass(), style: { width: this.triggerWidth }, role: "combobox", "aria-haspopup": "listbox", "aria-controls": "pds-combobox-listbox", "aria-activedescendant": this.isOpen && this.highlightedIndex >= 0 ? `pds-combobox-option-${this.highlightedIndex}` : undefined, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.hideLabel ? this.label : undefined, id: this.componentId, tabIndex: this.disabled ? -1 : 0, onClick: this.onButtonTriggerClick, "data-layout": this.customTriggerContent, onKeyDown: this.onButtonTriggerKeyDown, onKeyUp: this.onButtonTriggerKeyUp, ref: el => (this.triggerEl = el), part: "chip-trigger" }, this.renderChipTriggerContent())) : (hAsync("div", { class: triggerClass, style: { width: this.triggerWidth }, role: "combobox", "aria-haspopup": "listbox", "aria-controls": "pds-combobox-listbox", "aria-activedescendant": this.isOpen && this.highlightedIndex >= 0 ? `pds-combobox-option-${this.highlightedIndex}` : undefined, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.hideLabel ? this.label : undefined, id: this.componentId, tabIndex: this.disabled ? -1 : 0, onClick: this.onButtonTriggerClick, "data-layout": this.customTriggerContent, onKeyDown: this.onButtonTriggerKeyDown, onKeyUp: this.onButtonTriggerKeyUp, ref: el => (this.triggerEl = el), part: "button-trigger" }, this.renderButtonTriggerContent())), hAsync("div", { key: '47c259c2bc5b6f4f1d249d9bddd476b11c5a90fe', style: { display: 'none' } }, hAsync("slot", { key: '83355a804fe978b6fb58838b4174bc815cf2f933', onSlotchange: () => this.updateOptions() })), this.renderDropdown())));
8705
+ }, class: "pds-combobox__input", type: "text", role: "combobox", "aria-autocomplete": "list", "aria-controls": "pds-combobox-listbox", "aria-activedescendant": this.isOpen && this.highlightedIndex >= 0 ? `pds-combobox-option-${this.highlightedIndex}` : undefined, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.hideLabel ? this.label : undefined, id: this.componentId, value: this.displayText, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput, onClick: this.handleInputClick, onKeyDown: this.handleKeyDown, autocomplete: "off", part: "input" }), hAsync("pds-icon", { icon: "enlarge", "aria-hidden": "true", class: "pds-combobox__input-icon" }))) : this.trigger === 'chip' ? (hAsync("div", { class: this.getChipTriggerClass(), style: { width: this.triggerWidth }, role: "combobox", "aria-haspopup": "listbox", "aria-controls": "pds-combobox-listbox", "aria-activedescendant": this.isOpen && this.highlightedIndex >= 0 ? `pds-combobox-option-${this.highlightedIndex}` : undefined, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.hideLabel ? this.label : undefined, id: this.componentId, tabIndex: this.disabled ? -1 : 0, onClick: this.onButtonTriggerClick, "data-layout": this.customTriggerContent, onKeyDown: this.onButtonTriggerKeyDown, onKeyUp: this.onButtonTriggerKeyUp, ref: el => (this.triggerEl = el), part: "chip-trigger" }, this.renderChipTriggerContent())) : (hAsync("div", { class: triggerClass, style: { width: this.triggerWidth }, role: "combobox", "aria-haspopup": "listbox", "aria-controls": "pds-combobox-listbox", "aria-activedescendant": this.isOpen && this.highlightedIndex >= 0 ? `pds-combobox-option-${this.highlightedIndex}` : undefined, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.hideLabel ? this.label : undefined, id: this.componentId, tabIndex: this.disabled ? -1 : 0, onClick: this.onButtonTriggerClick, "data-layout": this.customTriggerContent, onKeyDown: this.onButtonTriggerKeyDown, onKeyUp: this.onButtonTriggerKeyUp, ref: el => (this.triggerEl = el), part: "button-trigger" }, this.renderButtonTriggerContent())), hAsync("div", { key: 'e78fc8514f56f3383e8bfec095ee7b6c9712e19b', style: { display: 'none' } }, hAsync("slot", { key: '6684dc11fa0dfefcf295080732897f87f2e1c7ff', onSlotchange: () => this.updateOptions() })), this.renderDropdown())));
8544
8706
  }
8545
8707
  static get formAssociated() { return true; }
8546
8708
  get el() { return getElement(this); }
@@ -8698,7 +8860,7 @@ class PdsDivider {
8698
8860
  }; }
8699
8861
  }
8700
8862
 
8701
- 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)}";
8863
+ 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)}";
8702
8864
 
8703
8865
  /**
8704
8866
  * @part menu-panel - Exposes the dropdown menu container for styling.
@@ -8753,6 +8915,7 @@ class PdsDropdownMenu {
8753
8915
  const updatePosition = () => {
8754
8916
  computePosition(this.triggerEl, this.panelEl, {
8755
8917
  placement: this.placement,
8918
+ strategy: 'fixed',
8756
8919
  middleware: [offset(6), flip(), shift({ padding: 5 })],
8757
8920
  }).then(({ x, y }) => {
8758
8921
  Object.assign(this.panelEl.style, {
@@ -8963,7 +9126,7 @@ class PdsDropdownMenu {
8963
9126
  }
8964
9127
  }
8965
9128
  render() {
8966
- 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 }))));
9129
+ 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 }))));
8967
9130
  }
8968
9131
  get host() { return getElement(this); }
8969
9132
  static get style() { return pdsDropdownMenuCss; }
@@ -8981,7 +9144,7 @@ class PdsDropdownMenu {
8981
9144
  }; }
8982
9145
  }
8983
9146
 
8984
- 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:calc(var(--pine-dimension-xs) * -1);padding:var(--pine-dimension-xs);text-decoration:none;width:calc(100% + var(--pine-dimension-xs) * 2)}";
9147
+ 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)}";
8985
9148
 
8986
9149
  class PdsDropdownMenuItem {
8987
9150
  constructor(hostRef) {
@@ -9098,7 +9261,7 @@ class PdsDropdownMenuSeparator {
9098
9261
  }; }
9099
9262
  }
9100
9263
 
9101
- 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}@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)))}}";
9264
+ 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)))}}";
9102
9265
 
9103
9266
  /**
9104
9267
  * Individual filter component with cross-browser popover positioning.
@@ -10264,8 +10427,8 @@ class PdsInput {
10264
10427
  this.originalPdsInput = this.pdsInput;
10265
10428
  }
10266
10429
  connectedCallback() {
10267
- // Initialize ElementInternals for form association
10268
- if (this.el.attachInternals) {
10430
+ // Initialize ElementInternals for form association (only once per element instance)
10431
+ if (this.el.attachInternals && !this.internals) {
10269
10432
  this.internals = this.el.attachInternals();
10270
10433
  }
10271
10434
  }
@@ -10370,7 +10533,7 @@ class PdsInput {
10370
10533
  'has-prepend': this.hasPrepend,
10371
10534
  'has-append': this.hasAppend,
10372
10535
  };
10373
- 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)))));
10536
+ return (hAsync(Host, { key: '03943f9ccb2b64d59e4df0276f9e04a9ea146aa1', "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: '3cc83e0ef17d4ae0278e30490ab4b2dbe0270209', class: "pds-input" }, label && (hAsync("div", { key: '5039b16a1ff68999f30014e259c40432ca7d1826', class: "pds-input__label-wrapper" }, hAsync("label", { key: '73d8511c3ac1b854a5052b4dbe2a65a14afe877e', htmlFor: componentId, class: "pds-input__label" }, hAsync("span", { key: 'f3b60b76cd9aae40d2195c92ffeb72192b1dac46', class: this.hideLabel ? 'visually-hidden' : '' }, label, this.required && hAsync("span", { key: '0744302392c40e03bb58fc818420e1d9658767c7', class: "pds-input__required-indicator" }, " *"))), !this.hideLabel && this.renderAction())), hAsync("div", { key: 'be0603300822d81b264fa03f280b1b3a3b1942a5', class: inputWrapperClasses }, this.renderPrepend(), this.renderPrefix(), hAsync("input", Object.assign({ key: '7a4efcc16452dbd236fa9f226b4283b138ea811a', 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: '048ced195153312a2a1b969f6095165b82fd1cb4', class: "pds-input__helper-message", id: messageId(componentId, 'helper') }, helperMessage)), errorMessage && (hAsync("p", { key: 'c61329eb7723cf146dcbefca3bd094582a6b73a6', class: "pds-input__error-message", id: messageId(componentId, 'error') }, hAsync("pds-icon", { key: '1ec4eebc73447e786a7db412937a06452c759635', icon: danger, size: "small" }), errorMessage)))));
10374
10537
  }
10375
10538
  static get formAssociated() { return true; }
10376
10539
  get el() { return getElement(this); }
@@ -10513,7 +10676,7 @@ class PdsLoader {
10513
10676
  * Determines the type of loader.
10514
10677
  */
10515
10678
  this.variant = 'spinner';
10516
- this.style = () => {
10679
+ this.getSvgStyle = () => {
10517
10680
  if (this.size !== undefined) {
10518
10681
  return {
10519
10682
  height: this.loaderSize(),
@@ -10538,7 +10701,7 @@ class PdsLoader {
10538
10701
  }
10539
10702
  }
10540
10703
  render() {
10541
- return (hAsync(Host, { key: 'd648f1d95f06915b3192955f78c9a4ba459adf3d', class: `pds-loader ${this.isLoading ? '' : 'pds-loader--hidden'}`, "aria-hidden": !this.isLoading, "aria-busy": this.isLoading, "aria-live": "polite" }, this.variant === 'spinner' && (hAsync("div", { key: 'a1152f82ddffc3ff18ac23f522432e73eaa4051e', class: "pds-loader--spinner" }, hAsync("svg", { key: 'd313737376105c1d74fd8bd006d18499294e99d7', style: this.style(), viewBox: "0 0 200 200", fill: "none", part: "loader-svg" }, hAsync("defs", { key: '756278ffc85e9aaeb91ba451ad21810131431f99' }, hAsync("linearGradient", { key: '17c8edf68002c4d73012eb040dbe1a349199894d', id: "spinner-secondHalf" }, hAsync("stop", { key: '3610ebe3ac877590905e61de933c564a89ef2342', offset: "0%", "stop-opacity": "0", "stop-color": "currentColor" }), hAsync("stop", { key: 'bce6d94cebf01f7f5a5bd46477dace921390ed35', offset: "100%", "stop-opacity": "0.5", "stop-color": "currentColor" })), hAsync("linearGradient", { key: '3ea22a61e3a871fe09df54f07c7f51cff8f84fb0', id: "spinner-firstHalf" }, hAsync("stop", { key: '40a3dc4d486b9caa23f219503fd70cca44421d33', offset: "0%", "stop-opacity": "1", "stop-color": "currentColor" }), hAsync("stop", { key: 'ecc86f15149dd7fbd49311463c28ca2e2e7106ed', offset: "100%", "stop-opacity": "0.5", "stop-color": "currentColor" }))), hAsync("g", { key: '0a9f8307abd79d39d665b94c7b7273f8768b2d89', class: "pds-loader__spinner-path" }, hAsync("path", { key: '8c87a83b7fb89345d5357559c3b5485d08b89518', stroke: "url(#spinner-secondHalf)", d: "M 4 100 A 96 96 0 0 1 196 100" }), hAsync("path", { key: 'b4a1aebf06c2b47fcdeb8b822ea27d893c855280', stroke: "url(#spinner-firstHalf)", d: "M 196 100 A 96 96 0 0 1 4 100" }), hAsync("path", { key: '5a1880eba9eec32622b2353d78bef605519d7235', stroke: "currentColor", "stroke-linecap": "round", d: "M 4 100 A 96 96 0 0 1 4 98" }))))), this.variant === 'typing' && (hAsync("div", { key: '4864108fd2d7aa7c163302950e54083901cdf5d7', class: "pds-loader--typing" }, hAsync("span", { key: '6b71380af9b30e99a4819e081d0e7b7d8f2f9eb2' }), hAsync("span", { key: '8f64d209593c813e71a4858c9ccb0aaa2c4eef4a' }), hAsync("span", { key: '15ccbc6661214218f15d624bced8370609c6c232' }))), hAsync("div", { key: 'd26ce663fbf08163764e70236b742b3d12c4b950', class: `pds-loader__label ${this.showLabel ? '' : 'pds-loader--hidden'}` }, hAsync("slot", { key: '10562b45b4917c88dda50d5ebe24169421a193dc', name: "label" }, "Loading..."))));
10704
+ return (hAsync(Host, { key: 'fc312fc9ebf973506190e693cd251f25e37f3d0a', class: `pds-loader ${this.isLoading ? '' : 'pds-loader--hidden'}`, "aria-hidden": !this.isLoading, "aria-busy": this.isLoading, "aria-live": "polite" }, this.variant === 'spinner' && (hAsync("div", { key: 'c9eab32510368d1fd6db7669b3db640c229911f2', class: "pds-loader--spinner" }, hAsync("svg", { key: '359d9f171378064c6121e583efe09eace3377e44', style: this.getSvgStyle(), viewBox: "0 0 200 200", fill: "none", part: "loader-svg" }, hAsync("defs", { key: '263409d92ab95fa34df4e879934e04e6a587f23b' }, hAsync("linearGradient", { key: 'e9b32747efcb60bbebd8734fdd2c2d5a400974c1', id: "spinner-secondHalf" }, hAsync("stop", { key: 'db61c891cf635b72e36a152b944b6c9ce3569be3', offset: "0%", "stop-opacity": "0", "stop-color": "currentColor" }), hAsync("stop", { key: 'fb964af08941ad174ecaf0c329d79e25fff45a9c', offset: "100%", "stop-opacity": "0.5", "stop-color": "currentColor" })), hAsync("linearGradient", { key: '89d815d1f076ffe82d189d51fce14fb48ecb0926', id: "spinner-firstHalf" }, hAsync("stop", { key: '43b753f80ab136d38635a6ab921899fc8fd3a6b2', offset: "0%", "stop-opacity": "1", "stop-color": "currentColor" }), hAsync("stop", { key: '7ce201ac86ae5cd291f8fba22f1e6517d53af025', offset: "100%", "stop-opacity": "0.5", "stop-color": "currentColor" }))), hAsync("g", { key: 'ea7e594df07f7d634fa2142785f0791b21a71d41', class: "pds-loader__spinner-path" }, hAsync("path", { key: '8ac8cead5078716ca9169150be8c0c64ecedc854', stroke: "url(#spinner-secondHalf)", d: "M 4 100 A 96 96 0 0 1 196 100" }), hAsync("path", { key: 'c4ed3d7f386ac59dcb540b369f52925b216ea950', stroke: "url(#spinner-firstHalf)", d: "M 196 100 A 96 96 0 0 1 4 100" }), hAsync("path", { key: 'ecc2e2b7240c23e35af8b9aa049ac45dff43ac9f', stroke: "currentColor", "stroke-linecap": "round", d: "M 4 100 A 96 96 0 0 1 4 98" }))))), this.variant === 'typing' && (hAsync("div", { key: '8cb7180432a6cca86c7fcc2af3f1e05afb751a9d', class: "pds-loader--typing" }, hAsync("span", { key: 'c09247cbcf86fef899f206bee1458a1388cbdd39' }), hAsync("span", { key: '07bdfe8ab1971fa20544022412e2141721111506' }), hAsync("span", { key: '9444f7ed6a13475694e1eda50b891ff63fb91297' }))), hAsync("div", { key: '3b717ff6b9f38f9710ca0556ebbc66bd86b7e1b6', class: `pds-loader__label ${this.showLabel ? '' : 'pds-loader--hidden'}` }, hAsync("slot", { key: 'ab65224fab189a30d0cf18caf086c621cbd78eaa', name: "label" }, "Loading..."))));
10542
10705
  }
10543
10706
  static get style() { return pdsLoaderCss; }
10544
10707
  static get cmpMeta() { return {
@@ -11065,6 +11228,633 @@ class PdsModalHeader {
11065
11228
  }; }
11066
11229
  }
11067
11230
 
11231
+ 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}";
11232
+
11233
+ /**
11234
+ * @slot (default) - Static option elements for the multiselect
11235
+ * @slot empty - Custom empty state message when no options match
11236
+ * @slot loading - Custom loading indicator
11237
+ */
11238
+ class PdsMultiselect {
11239
+ constructor(hostRef) {
11240
+ registerInstance(this, hostRef);
11241
+ this.pdsMultiselectChange = createEvent(this, "pdsMultiselectChange");
11242
+ this.pdsMultiselectSearch = createEvent(this, "pdsMultiselectSearch");
11243
+ this.pdsMultiselectLoadOptions = createEvent(this, "pdsMultiselectLoadOptions");
11244
+ /**
11245
+ * Placeholder text for the input field.
11246
+ */
11247
+ this.placeholder = 'Select...';
11248
+ /**
11249
+ * Array of selected option values.
11250
+ */
11251
+ this.value = [];
11252
+ /**
11253
+ * Determines whether or not the multiselect is disabled.
11254
+ */
11255
+ this.disabled = false;
11256
+ /**
11257
+ * HTTP method for async requests.
11258
+ */
11259
+ this.asyncMethod = 'GET';
11260
+ /**
11261
+ * Debounce delay in milliseconds for search/fetch.
11262
+ */
11263
+ this.debounce = 300;
11264
+ /**
11265
+ * Maximum height of the dropdown before scrolling.
11266
+ */
11267
+ this.maxHeight = '300px';
11268
+ /**
11269
+ * Width of the trigger button (and reference for dropdown positioning).
11270
+ */
11271
+ this.triggerWidth = '100%';
11272
+ /**
11273
+ * Minimum width of the dropdown panel.
11274
+ */
11275
+ this.minWidth = '250px';
11276
+ /**
11277
+ * Visually hides the label but keeps it accessible.
11278
+ */
11279
+ this.hideLabel = false;
11280
+ /**
11281
+ * If true, the multiselect is required.
11282
+ */
11283
+ this.required = false;
11284
+ /**
11285
+ * Whether the component is currently loading async options.
11286
+ */
11287
+ this.loading = false;
11288
+ // Internal state
11289
+ this.isOpen = false;
11290
+ this.searchQuery = '';
11291
+ this.highlightedIndex = -1;
11292
+ this.internalOptions = [];
11293
+ this.selectedItems = [];
11294
+ this.currentPage = 1;
11295
+ this.hasMore = false;
11296
+ // Flag to prevent focusout from closing during open transition
11297
+ this.isOpening = false;
11298
+ this.handleTriggerClick = () => {
11299
+ if (this.disabled)
11300
+ return;
11301
+ if (this.isOpen) {
11302
+ this.closeDropdown();
11303
+ }
11304
+ else {
11305
+ this.openDropdown();
11306
+ }
11307
+ };
11308
+ this.handleTriggerKeyDown = (e) => {
11309
+ switch (e.key) {
11310
+ case 'ArrowDown':
11311
+ case 'ArrowUp':
11312
+ case 'Enter':
11313
+ case ' ':
11314
+ e.preventDefault();
11315
+ if (!this.isOpen) {
11316
+ this.openDropdown();
11317
+ }
11318
+ break;
11319
+ }
11320
+ };
11321
+ this.handleSearchInputChange = (e) => {
11322
+ const target = e.target;
11323
+ this.searchQuery = target.value;
11324
+ this.highlightedIndex = -1;
11325
+ // Emit search event for consumer-managed async
11326
+ this.pdsMultiselectSearch.emit({ query: this.searchQuery });
11327
+ // Fetch from async URL if configured
11328
+ if (this.asyncUrl) {
11329
+ this.debouncedFetchAsyncOptions(this.searchQuery, 1);
11330
+ }
11331
+ };
11332
+ this.handleSearchInputKeyDown = (e) => {
11333
+ const filteredOptions = this.getFilteredOptions();
11334
+ switch (e.key) {
11335
+ case 'ArrowDown':
11336
+ e.preventDefault();
11337
+ this.highlightedIndex = Math.min(this.highlightedIndex + 1, filteredOptions.length - 1);
11338
+ this.scrollOptionIntoView();
11339
+ break;
11340
+ case 'ArrowUp':
11341
+ e.preventDefault();
11342
+ this.highlightedIndex = Math.max(this.highlightedIndex - 1, 0);
11343
+ this.scrollOptionIntoView();
11344
+ break;
11345
+ case 'Enter':
11346
+ e.preventDefault();
11347
+ if (this.highlightedIndex >= 0) {
11348
+ const option = filteredOptions[this.highlightedIndex];
11349
+ if (option) {
11350
+ this.selectOption(option);
11351
+ }
11352
+ }
11353
+ break;
11354
+ // Escape is handled by the global @Listen('keydown') handler
11355
+ case 'Tab':
11356
+ this.closeDropdown();
11357
+ break;
11358
+ }
11359
+ };
11360
+ this.handleContainerFocusOut = () => {
11361
+ // Use setTimeout to delay the check - this allows click events and focus transitions to complete
11362
+ // before we decide to close the dropdown
11363
+ setTimeout(() => {
11364
+ var _a;
11365
+ // Don't close if we're in the middle of opening or already closed
11366
+ if (!this.isOpen || this.isOpening)
11367
+ return;
11368
+ const activeElement = document.activeElement;
11369
+ // Check if focus is within our component's shadow root
11370
+ const isInShadowRoot = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.contains(activeElement);
11371
+ // Also check if focus is on the host element itself
11372
+ const isOnHost = activeElement === this.el;
11373
+ if (!isInShadowRoot && !isOnHost) {
11374
+ this.closeDropdown();
11375
+ }
11376
+ }, 0);
11377
+ };
11378
+ this.handleOptionMouseDown = (option) => (e) => {
11379
+ e.preventDefault(); // Prevent focus change
11380
+ this.toggleOption(option);
11381
+ };
11382
+ this.handleOptionMouseEnter = (index) => () => {
11383
+ this.highlightedIndex = index;
11384
+ };
11385
+ this.handleScroll = (e) => {
11386
+ if (!this.asyncUrl || !this.hasMore || this.loading)
11387
+ return;
11388
+ const target = e.target;
11389
+ const scrollBottom = target.scrollHeight - target.scrollTop - target.clientHeight;
11390
+ // Load more when near bottom (within 50px)
11391
+ if (scrollBottom < 50) {
11392
+ this.pdsMultiselectLoadOptions.emit({
11393
+ query: this.searchQuery,
11394
+ page: this.currentPage + 1,
11395
+ });
11396
+ this.debouncedFetchAsyncOptions(this.searchQuery, this.currentPage + 1);
11397
+ }
11398
+ };
11399
+ }
11400
+ connectedCallback() {
11401
+ // Initialize ElementInternals for form association (only once per element instance)
11402
+ if (this.el.attachInternals && !this.internals) {
11403
+ this.internals = this.el.attachInternals();
11404
+ }
11405
+ }
11406
+ componentWillLoad() {
11407
+ this.originalSearchEmitter = this.pdsMultiselectSearch;
11408
+ this.syncSelectedItems();
11409
+ }
11410
+ componentDidLoad() {
11411
+ this.setupDebounce();
11412
+ this.setupMutationObserver();
11413
+ this.setupSlotChangeListener();
11414
+ this.updateFormValue();
11415
+ // Ensure preselected values sync after DOM is fully ready
11416
+ // This handles cases where slot content loads after initial render (e.g., in docs/MDX)
11417
+ requestAnimationFrame(() => {
11418
+ this.updateOptionsFromSlot();
11419
+ this.syncSelectedItems();
11420
+ });
11421
+ }
11422
+ setupSlotChangeListener() {
11423
+ var _a;
11424
+ const slot = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot:not([name])');
11425
+ if (slot) {
11426
+ slot.addEventListener('slotchange', () => {
11427
+ this.updateOptionsFromSlot();
11428
+ this.syncSelectedItems();
11429
+ });
11430
+ // Also call it immediately in case content is already slotted
11431
+ this.updateOptionsFromSlot();
11432
+ }
11433
+ }
11434
+ disconnectedCallback() {
11435
+ var _a, _b;
11436
+ (_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
11437
+ (_b = this.cleanupAutoUpdate) === null || _b === void 0 ? void 0 : _b.call(this);
11438
+ this.clearAsyncFetchState();
11439
+ }
11440
+ setupDebounce() {
11441
+ const { pdsMultiselectSearch, debounce, originalSearchEmitter } = this;
11442
+ this.pdsMultiselectSearch = debounce === undefined
11443
+ ? originalSearchEmitter !== null && originalSearchEmitter !== void 0 ? originalSearchEmitter : pdsMultiselectSearch
11444
+ : debounceEvent(pdsMultiselectSearch, debounce);
11445
+ }
11446
+ valueChanged(newValue) {
11447
+ // Handle JSON string values (from HTML attributes)
11448
+ if (typeof newValue === 'string') {
11449
+ try {
11450
+ const parsed = JSON.parse(newValue);
11451
+ if (Array.isArray(parsed)) {
11452
+ this.value = parsed;
11453
+ return; // The assignment will trigger this watcher again with the array
11454
+ }
11455
+ }
11456
+ catch (_a) {
11457
+ // Not valid JSON, treat as single value
11458
+ this.value = newValue ? [newValue] : [];
11459
+ return;
11460
+ }
11461
+ }
11462
+ this.syncSelectedItems();
11463
+ this.updateFormValue();
11464
+ }
11465
+ optionsChanged() {
11466
+ if (this.options) {
11467
+ this.internalOptions = [...this.options];
11468
+ }
11469
+ }
11470
+ internalOptionsChanged() {
11471
+ // Re-sync selected items when options become available
11472
+ // This handles the case where value is set before options are loaded (e.g., from slot)
11473
+ this.syncSelectedItems();
11474
+ }
11475
+ /**
11476
+ * Sets focus on the trigger button.
11477
+ */
11478
+ async setFocus() {
11479
+ var _a;
11480
+ (_a = this.triggerEl) === null || _a === void 0 ? void 0 : _a.focus();
11481
+ }
11482
+ /**
11483
+ * Handle global keyboard events for accessibility.
11484
+ * Closes dropdown on Escape key press regardless of focus location.
11485
+ */
11486
+ handleWindowKeyDown(event) {
11487
+ var _a;
11488
+ if (!this.isOpen)
11489
+ return;
11490
+ if (event.key === 'Escape') {
11491
+ event.preventDefault();
11492
+ this.closeDropdown();
11493
+ (_a = this.triggerEl) === null || _a === void 0 ? void 0 : _a.focus();
11494
+ }
11495
+ }
11496
+ setupMutationObserver() {
11497
+ this.observer = new MutationObserver(() => {
11498
+ this.updateOptionsFromSlot();
11499
+ });
11500
+ this.observer.observe(this.el, {
11501
+ childList: true,
11502
+ subtree: true,
11503
+ });
11504
+ }
11505
+ updateOptionsFromSlot() {
11506
+ var _a;
11507
+ const slot = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot:not([name])');
11508
+ if (!slot)
11509
+ return;
11510
+ const options = slot.assignedElements({ flatten: true })
11511
+ .filter((el) => el.tagName === 'OPTION')
11512
+ .map(opt => ({
11513
+ id: opt.value,
11514
+ text: opt.textContent || opt.value,
11515
+ }));
11516
+ // Only update if we actually found options AND we're not using async/external options
11517
+ // Don't clear internalOptions if slot returns empty (might be mid-DOM-update)
11518
+ if (options.length > 0 && !this.asyncUrl && !this.options) {
11519
+ this.internalOptions = options;
11520
+ }
11521
+ }
11522
+ clearAsyncFetchState() {
11523
+ var _a;
11524
+ if (this.fetchDebounceTimer !== undefined) {
11525
+ window.clearTimeout(this.fetchDebounceTimer);
11526
+ this.fetchDebounceTimer = undefined;
11527
+ }
11528
+ (_a = this.abortController) === null || _a === void 0 ? void 0 : _a.abort();
11529
+ this.abortController = undefined;
11530
+ }
11531
+ debouncedFetchAsyncOptions(query, page = 1) {
11532
+ var _a;
11533
+ if (!this.asyncUrl)
11534
+ return;
11535
+ if (this.fetchDebounceTimer !== undefined) {
11536
+ window.clearTimeout(this.fetchDebounceTimer);
11537
+ }
11538
+ const delay = Math.max(0, (_a = this.debounce) !== null && _a !== void 0 ? _a : 0);
11539
+ this.fetchDebounceTimer = window.setTimeout(() => {
11540
+ this.fetchDebounceTimer = undefined;
11541
+ this.fetchOptions(query, page);
11542
+ }, delay);
11543
+ }
11544
+ syncSelectedItems() {
11545
+ // Ensure value is an array (may be string from HTML attribute)
11546
+ const valueArray = this.ensureValueArray();
11547
+ const allOptions = this.getAllOptions();
11548
+ this.selectedItems = valueArray
11549
+ .map(val => allOptions.find(opt => String(opt.id) === String(val)))
11550
+ .filter((opt) => opt !== undefined);
11551
+ }
11552
+ ensureValueArray() {
11553
+ // Handle JSON string values passed via HTML attribute
11554
+ if (typeof this.value === 'string') {
11555
+ try {
11556
+ const parsed = JSON.parse(this.value);
11557
+ if (Array.isArray(parsed)) {
11558
+ this.value = parsed;
11559
+ return parsed;
11560
+ }
11561
+ }
11562
+ catch (_a) {
11563
+ // Not valid JSON, treat as single value
11564
+ const singleValue = this.value;
11565
+ this.value = singleValue ? [singleValue] : [];
11566
+ return this.value;
11567
+ }
11568
+ }
11569
+ return Array.isArray(this.value) ? this.value : [];
11570
+ }
11571
+ getAllOptions() {
11572
+ return this.options || this.internalOptions;
11573
+ }
11574
+ getFilteredOptions() {
11575
+ const allOptions = this.getAllOptions();
11576
+ const query = this.searchQuery.toLowerCase();
11577
+ return allOptions.filter(opt => {
11578
+ // Filter by search query only - don't filter out selected items
11579
+ if (query) {
11580
+ return opt.text.toLowerCase().includes(query);
11581
+ }
11582
+ return true;
11583
+ });
11584
+ }
11585
+ updateFormValue() {
11586
+ var _a;
11587
+ if ((_a = this.internals) === null || _a === void 0 ? void 0 : _a.setFormValue) {
11588
+ // Ensure value is an array before iterating
11589
+ const valueArray = this.ensureValueArray();
11590
+ // Submit as multiple values with same name (native select multiple behavior)
11591
+ const formData = new FormData();
11592
+ valueArray.forEach(val => {
11593
+ if (this.name) {
11594
+ formData.append(this.name, val);
11595
+ }
11596
+ });
11597
+ this.internals.setFormValue(formData);
11598
+ // Update validity state for required validation
11599
+ if (this.required && valueArray.length === 0) {
11600
+ this.internals.setValidity({ valueMissing: true }, 'Please select at least one option.', this.triggerEl);
11601
+ }
11602
+ else {
11603
+ this.internals.setValidity({});
11604
+ }
11605
+ }
11606
+ }
11607
+ async fetchOptions(query, page = 1) {
11608
+ var _a;
11609
+ if (!this.asyncUrl)
11610
+ return;
11611
+ (_a = this.abortController) === null || _a === void 0 ? void 0 : _a.abort();
11612
+ this.abortController = new AbortController();
11613
+ this.loading = true;
11614
+ try {
11615
+ const url = new URL(this.asyncUrl, window.location.origin);
11616
+ if (this.asyncMethod === 'GET') {
11617
+ url.searchParams.set('search', query);
11618
+ url.searchParams.set('page', String(page));
11619
+ }
11620
+ const response = await fetch(url.toString(), Object.assign({ method: this.asyncMethod, signal: this.abortController.signal, headers: {
11621
+ 'Content-Type': 'application/json',
11622
+ 'Accept': 'application/json',
11623
+ } }, (this.asyncMethod === 'POST' && {
11624
+ body: JSON.stringify({ search: query, page }),
11625
+ })));
11626
+ if (!response.ok)
11627
+ throw new Error('Failed to fetch options');
11628
+ const data = await response.json();
11629
+ const formattedResults = data.results.map(item => {
11630
+ if (this.formatResult) {
11631
+ return this.formatResult(item);
11632
+ }
11633
+ return Object.assign({ id: item.id, text: item.text }, item);
11634
+ });
11635
+ if (page === 1) {
11636
+ this.internalOptions = formattedResults;
11637
+ }
11638
+ else {
11639
+ this.internalOptions = [...this.internalOptions, ...formattedResults];
11640
+ }
11641
+ this.hasMore = data.totalCount ? this.internalOptions.length < data.totalCount : false;
11642
+ this.currentPage = page;
11643
+ }
11644
+ catch (error) {
11645
+ if (error.name !== 'AbortError') {
11646
+ console.error('PdsMultiselect: Failed to fetch options', error);
11647
+ }
11648
+ }
11649
+ finally {
11650
+ this.loading = false;
11651
+ }
11652
+ }
11653
+ openDropdown() {
11654
+ if (this.disabled)
11655
+ return;
11656
+ this.isOpening = true;
11657
+ this.isOpen = true;
11658
+ this.highlightedIndex = -1;
11659
+ // Trigger initial fetch if async
11660
+ if (this.asyncUrl && this.internalOptions.length === 0) {
11661
+ this.debouncedFetchAsyncOptions(this.searchQuery, 1);
11662
+ }
11663
+ requestAnimationFrame(() => {
11664
+ var _a;
11665
+ this.positionDropdown();
11666
+ // Focus the search input after the panel is positioned
11667
+ (_a = this.searchInputEl) === null || _a === void 0 ? void 0 : _a.focus();
11668
+ // Clear the opening flag after focus has moved
11669
+ setTimeout(() => {
11670
+ this.isOpening = false;
11671
+ }, 50);
11672
+ });
11673
+ }
11674
+ closeDropdown() {
11675
+ this.isOpen = false;
11676
+ this.highlightedIndex = -1;
11677
+ this.searchQuery = '';
11678
+ // Clean up auto-update
11679
+ if (this.cleanupAutoUpdate) {
11680
+ this.cleanupAutoUpdate();
11681
+ this.cleanupAutoUpdate = undefined;
11682
+ }
11683
+ }
11684
+ positionDropdown() {
11685
+ if (!this.containerEl || !this.panelEl)
11686
+ return;
11687
+ const referenceEl = this.triggerEl || this.containerEl;
11688
+ const { minWidth, panelWidth } = this;
11689
+ const updatePosition = () => {
11690
+ computePosition(referenceEl, this.panelEl, {
11691
+ placement: 'bottom-start',
11692
+ strategy: 'absolute',
11693
+ middleware: [
11694
+ offset(12),
11695
+ flip(),
11696
+ shift({ padding: 8 }),
11697
+ size({
11698
+ apply: ({ rects, elements }) => {
11699
+ Object.assign(elements.floating.style, {
11700
+ width: panelWidth !== null && panelWidth !== void 0 ? panelWidth : `${rects.reference.width}px`,
11701
+ minWidth,
11702
+ });
11703
+ },
11704
+ }),
11705
+ ],
11706
+ }).then(({ x, y }) => {
11707
+ if (this.panelEl) {
11708
+ this.panelEl.style.left = `${x}px`;
11709
+ this.panelEl.style.top = `${y}px`;
11710
+ }
11711
+ });
11712
+ };
11713
+ // Initial position
11714
+ updatePosition();
11715
+ // Set up auto-update for window resize and scroll
11716
+ const cleanupAutoUpdate = autoUpdate(referenceEl, this.panelEl, updatePosition);
11717
+ this.cleanupAutoUpdate = () => {
11718
+ cleanupAutoUpdate();
11719
+ this.clearAsyncFetchState();
11720
+ };
11721
+ }
11722
+ scrollOptionIntoView() {
11723
+ requestAnimationFrame(() => {
11724
+ var _a;
11725
+ const highlighted = (_a = this.listboxEl) === null || _a === void 0 ? void 0 : _a.querySelector(`[data-index="${this.highlightedIndex}"]`);
11726
+ highlighted === null || highlighted === void 0 ? void 0 : highlighted.scrollIntoView({ block: 'nearest', behavior: 'smooth' });
11727
+ });
11728
+ }
11729
+ toggleOption(option) {
11730
+ var _a;
11731
+ const isSelected = this.value.includes(String(option.id));
11732
+ if (isSelected) {
11733
+ // Remove from selection
11734
+ const newValue = this.value.filter(v => v !== String(option.id));
11735
+ this.value = newValue;
11736
+ const newSelectedItems = this.selectedItems.filter(item => String(item.id) !== String(option.id));
11737
+ this.pdsMultiselectChange.emit({
11738
+ values: newValue,
11739
+ items: newSelectedItems,
11740
+ });
11741
+ }
11742
+ else {
11743
+ // Add to selection
11744
+ if (this.maxSelections && this.value.length >= this.maxSelections) {
11745
+ return;
11746
+ }
11747
+ const newValue = [...this.value, String(option.id)];
11748
+ this.value = newValue;
11749
+ const newSelectedItems = [...this.selectedItems, option];
11750
+ this.pdsMultiselectChange.emit({
11751
+ values: newValue,
11752
+ items: newSelectedItems,
11753
+ });
11754
+ }
11755
+ // Keep focus on search input, don't close dropdown
11756
+ (_a = this.searchInputEl) === null || _a === void 0 ? void 0 : _a.focus();
11757
+ }
11758
+ selectOption(option) {
11759
+ // For keyboard navigation - toggle the option
11760
+ this.toggleOption(option);
11761
+ }
11762
+ renderSelectedItemsList() {
11763
+ if (this.selectedItems.length === 0)
11764
+ return null;
11765
+ 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))))));
11766
+ }
11767
+ renderDropdown() {
11768
+ if (!this.isOpen)
11769
+ return null;
11770
+ const filteredOptions = this.getFilteredOptions();
11771
+ const valueArray = this.ensureValueArray();
11772
+ const hasSlottedEmpty = !!this.el.querySelector('[slot="empty"]');
11773
+ const hasSlottedLoading = !!this.el.querySelector('[slot="loading"]');
11774
+ 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) => {
11775
+ const isSelected = valueArray.includes(String(option.id));
11776
+ const isHighlighted = index === this.highlightedIndex;
11777
+ const optionId = `${this.componentId}-option-${index}`;
11778
+ return (hAsync("li", { key: String(option.id), id: optionId, class: {
11779
+ 'pds-multiselect__option': true,
11780
+ 'pds-multiselect__option--highlighted': isHighlighted,
11781
+ 'pds-multiselect__option--selected': isSelected,
11782
+ }, 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' } })));
11783
+ }), this.hasMore && !this.loading && (hAsync("li", { class: "pds-multiselect__load-more", role: "presentation" }, hAsync("pds-loader", { size: "small" }))))));
11784
+ }
11785
+ getTriggerText() {
11786
+ const count = this.selectedItems.length;
11787
+ if (count === 0) {
11788
+ return this.placeholder || 'Select...';
11789
+ }
11790
+ return `${count} item${count === 1 ? '' : 's'}`;
11791
+ }
11792
+ render() {
11793
+ const hasSelections = this.selectedItems.length > 0;
11794
+ return (hAsync(Host, { key: 'e7d872fd9bedb03390eaf8a2bd9c5d6ba1cc7ecc', "aria-disabled": this.disabled ? 'true' : null }, hAsync("div", { key: '141dee3c657dd17d3389d4a25979d0f748e36361', class: "pds-multiselect" }, this.label && (hAsync("label", { key: '386114a823424506857a1e927a2538e88d3c82f5', htmlFor: this.componentId, class: {
11795
+ 'pds-multiselect__label': true,
11796
+ 'visually-hidden': this.hideLabel,
11797
+ } }, this.label)), hAsync("div", { key: '9fc18bf93f981ee7f72f31c20f43f5251ed647e4', class: "pds-multiselect__wrapper", ref: el => (this.containerEl = el), onFocusout: this.handleContainerFocusOut, style: { width: this.triggerWidth } }, hAsync("button", { key: '74e8eb5ef5984307dce779ef63d54e49e07497ea', ref: el => (this.triggerEl = el), type: "button", class: {
11798
+ 'pds-multiselect__trigger': true,
11799
+ 'pds-multiselect__trigger--open': this.isOpen,
11800
+ 'pds-multiselect__trigger--disabled': this.disabled,
11801
+ 'pds-multiselect__trigger--invalid': this.invalid || !!this.errorMessage,
11802
+ 'pds-multiselect__trigger--has-value': hasSelections,
11803
+ }, 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: 'fb7f9b9fffd46839ddc4ab0bb549b61de191f76c', class: {
11804
+ 'pds-multiselect__trigger-text': true,
11805
+ 'pds-multiselect__trigger-text--placeholder': !hasSelections,
11806
+ } }, this.getTriggerText()), hAsync("pds-icon", { key: '354e1c57758350d73557a6c94d0b31eb6732f12a', class: "pds-multiselect__icon", icon: enlarge })), this.renderDropdown()), this.helperMessage && !this.errorMessage && (hAsync("p", { key: '3709f184a7972e1acfd3826faefc4ba139a8d518', class: "pds-multiselect__helper", id: messageId(this.componentId, 'helper') }, this.helperMessage)), this.errorMessage && (hAsync("p", { key: '8029b58286455b7b4789a4336a79c324ca91ad74', class: "pds-multiselect__error", id: messageId(this.componentId, 'error') }, hAsync("pds-icon", { key: 'cd781f3caed8b81deef2ce43f0a4406b6ed2d53c', icon: danger, size: "small" }), this.errorMessage)), hAsync("div", { key: '7c303f4d64247b41b9e88892cfb8c02acd5d8d59', style: { display: 'none' } }, hAsync("slot", { key: 'e9b384038e67bb951613933bbf68fd2b2efc71ef' })))));
11807
+ }
11808
+ static get formAssociated() { return true; }
11809
+ get el() { return getElement(this); }
11810
+ static get watchers() { return {
11811
+ "debounce": ["setupDebounce"],
11812
+ "value": ["valueChanged"],
11813
+ "options": ["optionsChanged"],
11814
+ "internalOptions": ["internalOptionsChanged"]
11815
+ }; }
11816
+ static get style() { return pdsMultiselectCss; }
11817
+ static get cmpMeta() { return {
11818
+ "$flags$": 329,
11819
+ "$tagName$": "pds-multiselect",
11820
+ "$members$": {
11821
+ "componentId": [1, "component-id"],
11822
+ "label": [1],
11823
+ "placeholder": [1],
11824
+ "name": [1],
11825
+ "value": [1040],
11826
+ "disabled": [4],
11827
+ "asyncUrl": [1, "async-url"],
11828
+ "asyncMethod": [1, "async-method"],
11829
+ "debounce": [2],
11830
+ "maxSelections": [2, "max-selections"],
11831
+ "maxHeight": [1, "max-height"],
11832
+ "triggerWidth": [1, "trigger-width"],
11833
+ "minWidth": [1, "min-width"],
11834
+ "panelWidth": [1, "panel-width"],
11835
+ "hideLabel": [4, "hide-label"],
11836
+ "errorMessage": [1, "error-message"],
11837
+ "helperMessage": [1, "helper-message"],
11838
+ "invalid": [4],
11839
+ "required": [4],
11840
+ "loading": [1028],
11841
+ "options": [16],
11842
+ "formatResult": [16],
11843
+ "isOpen": [32],
11844
+ "searchQuery": [32],
11845
+ "highlightedIndex": [32],
11846
+ "internalOptions": [32],
11847
+ "selectedItems": [32],
11848
+ "currentPage": [32],
11849
+ "hasMore": [32],
11850
+ "setFocus": [64]
11851
+ },
11852
+ "$listeners$": [[8, "keydown", "handleWindowKeyDown"]],
11853
+ "$lazyBundleId$": "-",
11854
+ "$attrsToReflect$": []
11855
+ }; }
11856
+ }
11857
+
11068
11858
  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}";
11069
11859
 
11070
11860
  /**
@@ -11625,7 +12415,7 @@ class PdsPopover {
11625
12415
  }, 16); // ~1 frame at 60fps
11626
12416
  }
11627
12417
  render() {
11628
- 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 }))));
12418
+ 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 }))));
11629
12419
  }
11630
12420
  get el() { return getElement(this); }
11631
12421
  static get style() { return pdsPopoverCss; }
@@ -11675,7 +12465,7 @@ class PdsProgress {
11675
12465
  this.showPercent = false;
11676
12466
  }
11677
12467
  render() {
11678
- 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, "%")));
12468
+ 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, "%")));
11679
12469
  }
11680
12470
  static get style() { return pdsProgressCss; }
11681
12471
  static get cmpMeta() { return {
@@ -11709,7 +12499,7 @@ class PdsProperty {
11709
12499
  this.icon = 'star';
11710
12500
  }
11711
12501
  render() {
11712
- 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' }))));
12502
+ 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' }))));
11713
12503
  }
11714
12504
  static get style() { return pdsPropertyCss; }
11715
12505
  static get cmpMeta() { return {
@@ -11810,11 +12600,11 @@ class PdsRadio {
11810
12600
  }
11811
12601
  render() {
11812
12602
  const renderLabelAndMessages = () => [
11813
- 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)),
12603
+ 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)),
11814
12604
  this.helperMessage && (hAsync("div", { key: `${this.componentId}-helper`, class: 'pds-radio__message', id: messageId(this.componentId, 'helper') }, this.helperMessage)),
11815
- 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))
12605
+ 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))
11816
12606
  ];
11817
- 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())));
12607
+ 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())));
11818
12608
  }
11819
12609
  get el() { return getElement(this); }
11820
12610
  static get style() { return labelCss$3 + pdsRadioCss; }
@@ -11989,13 +12779,13 @@ class PdsRadioGroup {
11989
12779
  render() {
11990
12780
  const gapValue = this.getGapValue();
11991
12781
  const ariaDescribedBy = this.getAriaDescribedBy();
11992
- return (hAsync(Host, { key: '3354fc555d3158c26d8bc8d63f372bc98bec959b', class: this.classNames(), id: this._groupId, role: "group", "aria-describedby": ariaDescribedBy, style: {
12782
+ return (hAsync(Host, { key: '4172c83d182d274660aca1f09cb3cf0a822623bc', class: this.classNames(), id: this._groupId, role: "group", "aria-describedby": ariaDescribedBy, style: {
11993
12783
  '--pds-radio-group-gap': gapValue,
11994
- } }, this.groupLabel && (hAsync("div", { key: '64961e1a1857bb1c31ed97f20f4a1b04731ea3cf', class: "pds-radio-group__label" }, this.groupLabel)), hAsync("div", { key: '2525254fbbaf39fd0c59a830e5a3115ddce0326b', class: {
12784
+ } }, this.groupLabel && (hAsync("div", { key: '9487046d8ce5f89535f220816192f63063eba7da', class: "pds-radio-group__label" }, this.groupLabel)), hAsync("div", { key: '691b01627a001a5be54e41ecfef7d0c182be30fb', class: {
11995
12785
  'pds-radio-group__radios': true,
11996
12786
  'pds-radio-group__radios--row': this.direction === 'row',
11997
12787
  'pds-radio-group__radios--column': this.direction === 'column',
11998
- } }, 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))));
12788
+ } }, 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))));
11999
12789
  }
12000
12790
  get el() { return getElement(this); }
12001
12791
  static get watchers() { return {
@@ -12085,7 +12875,7 @@ class PdsRow {
12085
12875
  })), (this.minHeight && {
12086
12876
  'min-height': this.minHeight,
12087
12877
  }));
12088
- return hAsync(Host, { key: 'b0bcc4fc7f67525fb9bae45d31b0ea3df2bda47f', class: `pds-row ${rowClasses}`, style: rowInlineStyles });
12878
+ return hAsync(Host, { key: '6e6e95f69cf5a84c481399737f9f5c68117aabd9', class: `pds-row ${rowClasses}`, style: rowInlineStyles });
12089
12879
  }
12090
12880
  static get style() { return pdsRowCss; }
12091
12881
  static get cmpMeta() { return {
@@ -12206,8 +12996,8 @@ class PdsSelect {
12206
12996
  this._type = this.multiple ? 'select-multiple' : 'select-one';
12207
12997
  }
12208
12998
  connectedCallback() {
12209
- // Initialize ElementInternals for form association
12210
- if (this.el.attachInternals) {
12999
+ // Initialize ElementInternals for form association (only once per element instance)
13000
+ if (this.el.attachInternals && !this.internals) {
12211
13001
  this.internals = this.el.attachInternals();
12212
13002
  }
12213
13003
  // Expose type property on the element instance to match native form element behavior
@@ -12338,7 +13128,7 @@ class PdsSelect {
12338
13128
  }
12339
13129
  render() {
12340
13130
  const hasAction = this.el.querySelector('[slot="action"]') !== null;
12341
- return (hAsync(Host, { key: '354ed4b85725971579610ef241ab23c97c2c9ee0', "aria-disabled": this.disabled ? 'true' : null, class: this.classNames(), "has-action": hasAction && !this.hideLabel ? 'true' : null }, hAsync("div", { key: '59f097884c42ed63e1905a2f66292f74739ff8d5', class: "pds-select" }, !this.hideLabel && (hAsync("div", { key: 'd828471e10b9f9d9019865fba759c93907b0a878', class: "pds-select__label-wrapper" }, hAsync("label", { key: '396b3a6eb54a9c90f3682eac87ba5289f0ca054f', htmlFor: this.componentId }, hAsync("span", { key: '8eca7e638b4f98d234276c88a215262e6043afaf', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), hasAction && this.renderAction())), hAsync("select", { key: '56abb05d6082cd813fb93af2c5f889ee06657669', "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: 'd7462a47c8642256156bb8c8a1036240795f4d95', "aria-hidden": "true", class: "hidden", ref: (el) => (this.slotContainer = el) }, hAsync("slot", { key: 'abc72dc5c7a3a771fff88b187a37a8b8f81f62de', onSlotchange: this.handleSlotChange })), this.renderMessages(), !this.multiple && hAsync("pds-icon", { key: '56dd01b36f12c6e30adff410d95f1ef76731fbbc', class: "pds-select__select-icon", icon: enlarge }))));
13131
+ return (hAsync(Host, { key: '722b36080f7c091e3a60d47d193d532b3bea50c3', "aria-disabled": this.disabled ? 'true' : null, class: this.classNames(), "has-action": hasAction && !this.hideLabel ? 'true' : null }, hAsync("div", { key: '90c0a9e4c39c462bea9b54e05ab0f9d10fdc4c74', class: "pds-select" }, !this.hideLabel && (hAsync("div", { key: '00604945aefe3706bda0f216757cd0247da6592b', class: "pds-select__label-wrapper" }, hAsync("label", { key: '71f5ed9b0d1fe5c2ac8b3ad43e9e053dba149068', htmlFor: this.componentId }, hAsync("span", { key: '346701454cec9e398f93919316f69605f73be895', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), hasAction && this.renderAction())), hAsync("select", { key: '929364187a6bd6b8b8267c28e3304e0514b13125', "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: '31cf48ef3bf95442eb9798d87fe0e6ba0330a5cb', "aria-hidden": "true", class: "hidden", ref: (el) => (this.slotContainer = el) }, hAsync("slot", { key: '3ed8926bce5949bc493c7a9ecfbed182704ee8d7', onSlotchange: this.handleSlotChange })), this.renderMessages(), !this.multiple && hAsync("pds-icon", { key: '3ab55ff62a6be2742668d8f963bd6c436e450dd2', class: "pds-select__select-icon", icon: enlarge }))));
12342
13132
  }
12343
13133
  static get formAssociated() { return true; }
12344
13134
  get el() { return getElement(this); }
@@ -15082,7 +15872,7 @@ class PdsSortable {
15082
15872
  Sortable.create(this.el, sortableOptions);
15083
15873
  }
15084
15874
  render() {
15085
- return (hAsync(Host, { key: '4f1335560e5082991c6f3dffcf30d83f89b2c20c', class: this.classNames(), id: this.componentId }, hAsync("slot", { key: '848505cc4b31df36c57c2db8690d1ce93df17b92' })));
15875
+ return (hAsync(Host, { key: 'b01f12d7d2973ce2fa513a468be3634e38241171', class: this.classNames(), id: this.componentId }, hAsync("slot", { key: '7d9dff192e9b6a01e71c41d9250c0245ca548658' })));
15086
15876
  }
15087
15877
  get el() { return getElement(this); }
15088
15878
  static get style() { return pdsSortableCss; }
@@ -15129,7 +15919,7 @@ class PdsSortableItem {
15129
15919
  }
15130
15920
  }
15131
15921
  render() {
15132
- 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" })))));
15922
+ 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" })))));
15133
15923
  }
15134
15924
  get el() { return getElement(this); }
15135
15925
  static get style() { return pdsSortableItemCss; }
@@ -15193,7 +15983,8 @@ class PdsSwitch {
15193
15983
  };
15194
15984
  }
15195
15985
  connectedCallback() {
15196
- if (this.el.attachInternals) {
15986
+ // Initialize ElementInternals for form association (only once per element instance)
15987
+ if (this.el.attachInternals && !this.internals) {
15197
15988
  this.internals = this.el.attachInternals();
15198
15989
  }
15199
15990
  // Expose type property on the element instance to match native form element behavior
@@ -15234,9 +16025,9 @@ class PdsSwitch {
15234
16025
  this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
15235
16026
  }
15236
16027
  render() {
15237
- 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 &&
15238
- hAsync("div", { key: '8a1eee8b5afcac6bb9a3399424aaf6d3995050cf', class: `pds-switch__message`, id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
15239
- 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)));
16028
+ return (hAsync(Host, { key: 'f8025b631f550d179392c16b8a6fd2995d02db30', class: this.switchClassNames(), "aria-disabled": this.disabled ? 'true' : null }, hAsync("label", { key: 'f732f24b29e461e06de507d73ee930a2613d4763', htmlFor: this.componentId }, hAsync("input", Object.assign({ key: 'f8848c91248fa80dc717d0e1c331a2cf42354b26', "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: '1e9ce74d091e835d5f3adfc21b37a10257b84492', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), this.helperMessage &&
16029
+ hAsync("div", { key: 'c7973e1d05121a75d8a5e1398baa0d96ac96d18c', class: `pds-switch__message`, id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
16030
+ hAsync("div", { key: '4487146144a4eb5f1e87923f10a7e562b17c5968', class: `pds-switch__message pds-switch__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: '0d3edf376b939ee900496aebab9e4faf62d8f7e5', icon: danger, size: "small" }), this.errorMessage)));
15240
16031
  }
15241
16032
  static get formAssociated() { return true; }
15242
16033
  get el() { return getElement(this); }
@@ -15266,7 +16057,7 @@ class PdsSwitch {
15266
16057
  }; }
15267
16058
  }
15268
16059
 
15269
- 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)}";
16060
+ 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)}";
15270
16061
 
15271
16062
  class PdsTab {
15272
16063
  constructor(hostRef) {
@@ -15297,9 +16088,9 @@ class PdsTab {
15297
16088
  return classes.filter(Boolean).join(' ');
15298
16089
  }
15299
16090
  render() {
15300
- const availabilityTabEdgeInlineStart = (hAsync("span", { key: '7a70cf5b681ec05215920417c4ba590fed238f63', class: "pds-tab-edge", role: "presentation" }));
15301
- const availabilityTabEdgeInlineEnd = (hAsync("span", { key: '21a1422bb00a6221f7db1b0e77abcd024eec60cd', class: "pds-tab-edge pds-tab-edge--end", role: "presentation" }));
15302
- 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' })))));
16091
+ const availabilityTabEdgeInlineStart = (hAsync("span", { key: 'e8e263009d29fea16f1cf51de545f07d3529568d', class: "pds-tab-edge", role: "presentation" }));
16092
+ const availabilityTabEdgeInlineEnd = (hAsync("span", { key: 'f492586e916cddbbdf04c3a2cdb84ad0d669df36', class: "pds-tab-edge pds-tab-edge--end", role: "presentation" }));
16093
+ 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' })))));
15303
16094
  }
15304
16095
  get el() { return getElement(this); }
15305
16096
  static get style() { return pdsTabCss; }
@@ -15587,7 +16378,7 @@ class PdsTableBody {
15587
16378
  registerInstance(this, hostRef);
15588
16379
  }
15589
16380
  render() {
15590
- return (hAsync(Host, { key: '299a00424cf34acb2d2cbddf2c51c853558f270d', role: "rowgroup", part: "body" }, hAsync("slot", { key: '718b97595d037cf6c19e8bfb2a9702a2a3fc1058' })));
16381
+ return (hAsync(Host, { key: '1f6ce73abaf0ecb3f592f754bedef557c7ea197d', role: "rowgroup", part: "body" }, hAsync("slot", { key: '4a9758bb6c17de60cb345216d9b3e7c58cd44499' })));
15591
16382
  }
15592
16383
  static get style() { return pdsTableBodyCss; }
15593
16384
  static get cmpMeta() { return {
@@ -15698,11 +16489,11 @@ class PdsTableCell {
15698
16489
  return classNames.join(' ');
15699
16490
  }
15700
16491
  render() {
15701
- return (hAsync(Host, { key: '996bf5f70f450e57b0c44023ddf5f44f6af8e367', class: this.classNames(), role: "gridcell", part: "cell", style: this.tableRef &&
16492
+ return (hAsync(Host, { key: '102c412e68bd877ee88866d2c66838d62cb7cab2', class: this.classNames(), role: "gridcell", part: "cell", style: this.tableRef &&
15702
16493
  this.tableRef.fixedColumn &&
15703
16494
  this.tableRef.selectable
15704
16495
  ? { '--fixed-cell-position': '40px' }
15705
- : {} }, hAsync("slot", { key: 'f6e5fc35adeb18fa939534f3b409b282d121a797' })));
16496
+ : {} }, hAsync("slot", { key: 'fae2d378d6e1c5c3abb34cb4a75b74930d56965c' })));
15706
16497
  }
15707
16498
  get hostElement() { return getElement(this); }
15708
16499
  static get style() { return pdsTableCellCss; }
@@ -15774,7 +16565,7 @@ class PdsTableHead {
15774
16565
  }
15775
16566
  }
15776
16567
  render() {
15777
- 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' })));
16568
+ 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' })));
15778
16569
  }
15779
16570
  get hostElement() { return getElement(this); }
15780
16571
  static get style() { return pdsTableHeadCss; }
@@ -15825,6 +16616,11 @@ class PdsTableHeadCell {
15825
16616
  * @defaultValue false
15826
16617
  */
15827
16618
  this.hasHeadBackground = false;
16619
+ /**
16620
+ * Determines if this column is the currently active sorted column.
16621
+ * @defaultValue false
16622
+ */
16623
+ this.isActive = false;
15828
16624
  /**
15829
16625
  * Handles scroll events to update fixed column shadow state.
15830
16626
  * Updates the tableScrolling state to control CSS classes for fixed column shadows.
@@ -15843,12 +16639,25 @@ class PdsTableHeadCell {
15843
16639
  };
15844
16640
  this.toggleSort = () => {
15845
16641
  if (this.sortable) {
16642
+ // Guard: return early if tableRef is not available
16643
+ if (!this.tableRef) {
16644
+ return;
16645
+ }
15846
16646
  const column = this.hostElement.innerText.trim();
16647
+ // Always toggle the direction (preserves original behavior)
15847
16648
  this.sortingDirection = this.sortingDirection === 'asc' ? 'desc' : 'asc';
15848
- this.tableRef.querySelectorAll('pds-table-head-cell').forEach((headCell) => {
15849
- headCell.classList.remove('is-active');
16649
+ // Reset all OTHER head cells to inactive state (skip the current one)
16650
+ this.tableRef.querySelectorAll('pds-table-head-cell').forEach(async (headCell) => {
16651
+ // Skip clearing the current cell
16652
+ if (headCell !== this.hostElement) {
16653
+ const headCellComponent = headCell;
16654
+ await headCellComponent.clearActiveSort();
16655
+ }
15850
16656
  });
15851
- this.hostElement.classList.toggle('is-active');
16657
+ // Mark this column as active
16658
+ this.isActive = true;
16659
+ this.hostElement.classList.add('is-active');
16660
+ // Emit the sort event with the current direction
15852
16661
  this.pdsTableSort.emit({ column, direction: this.sortingDirection });
15853
16662
  }
15854
16663
  };
@@ -15862,8 +16671,17 @@ class PdsTableHeadCell {
15862
16671
  if (!this.sortable)
15863
16672
  return;
15864
16673
  this.sortingDirection = direction;
16674
+ this.isActive = true;
15865
16675
  this.hostElement.classList.add('is-active');
15866
16676
  }
16677
+ /**
16678
+ * Clears the active sort state from this column.
16679
+ * Used internally when another column becomes active.
16680
+ */
16681
+ async clearActiveSort() {
16682
+ this.isActive = false;
16683
+ this.hostElement.classList.remove('is-active');
16684
+ }
15867
16685
  componentWillLoad() {
15868
16686
  // Set initial references and state before first render
15869
16687
  this.tableRef = this.hostElement.closest('pds-table');
@@ -15968,11 +16786,11 @@ class PdsTableHeadCell {
15968
16786
  return classNames.join(' ');
15969
16787
  }
15970
16788
  render() {
15971
- return (hAsync(Host, { key: '18228c7b1950668f12f983d9e5364bbf2deb3f1a', class: this.classNames(), role: "columnheader", onClick: this.toggleSort, part: "head-cell", style: this.tableRef &&
16789
+ return (hAsync(Host, { key: '7e85fb5e6b5fc1022034db9e4c94ca13dfc56257', class: this.classNames(), role: "columnheader", onClick: this.toggleSort, part: "head-cell", style: this.tableRef &&
15972
16790
  this.tableRef.fixedColumn &&
15973
16791
  this.tableRef.selectable
15974
16792
  ? { '--fixed-cell-position': '40px' }
15975
- : {} }, hAsync("slot", { key: '283f5e031cc8fe521c25af8060ce51c3ebaffa93' }), this.sortable && (hAsync("pds-icon", { key: 'a7e172c6fbf1185ab9885af04bcf2f2449370e6b', icon: this.sortingDirection === 'asc' ? upSmall : downSmall, part: "sort-icon" }))));
16793
+ : {} }, hAsync("slot", { key: '97d2b9621f7d61ad42719a4cc9f640a1210d78dc' }), this.sortable && this.isActive && (hAsync("pds-icon", { key: 'd80efe9b417ae34bf50f65b0e9cb15bcc9aabd40', icon: this.sortingDirection === 'asc' ? upSmall : downSmall, part: "sort-icon" }))));
15976
16794
  }
15977
16795
  get hostElement() { return getElement(this); }
15978
16796
  static get style() { return pdsTableHeadCellCss; }
@@ -15987,7 +16805,9 @@ class PdsTableHeadCell {
15987
16805
  "isSelected": [32],
15988
16806
  "hasHeadBorder": [32],
15989
16807
  "hasHeadBackground": [32],
15990
- "setActiveSort": [64]
16808
+ "isActive": [32],
16809
+ "setActiveSort": [64],
16810
+ "clearActiveSort": [64]
15991
16811
  },
15992
16812
  "$listeners$": undefined,
15993
16813
  "$lazyBundleId$": "-",
@@ -16136,7 +16956,7 @@ class PdsTableRow {
16136
16956
  }
16137
16957
  }
16138
16958
  render() {
16139
- 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' })));
16959
+ 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' })));
16140
16960
  }
16141
16961
  get hostElement() { return getElement(this); }
16142
16962
  static get style() { return pdsTableRowCss; }
@@ -16167,7 +16987,7 @@ class PdsTabpanel {
16167
16987
  this.selected = false; // eslint-disable-line @stencil-community/strict-mutable
16168
16988
  }
16169
16989
  render() {
16170
- 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' }))));
16990
+ 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' }))));
16171
16991
  }
16172
16992
  get el() { return getElement(this); }
16173
16993
  static get style() { return pdsTabpanelCss; }
@@ -16279,7 +17099,7 @@ class PdsTabs {
16279
17099
  this.passPropsToChildren();
16280
17100
  }
16281
17101
  render() {
16282
- 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" })));
17102
+ 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" })));
16283
17103
  }
16284
17104
  get el() { return getElement(this); }
16285
17105
  static get style() { return pdsTabsCss; }
@@ -16322,7 +17142,7 @@ class PdsText {
16322
17142
  ${this.weight !== undefined && this.weight.trim() !== '' ? `pds-text--weight-${this.weight}` : ''}
16323
17143
  ${this.decoration !== undefined && this.decoration.trim() !== '' ? `pds-text--decoration-${this.decoration}` : ''}
16324
17144
  `;
16325
- return (hAsync(Tag, { key: '42a62bfa709c5d093d6559ed073486b6a74e6bf5', style: this.color && setColor(this.color), class: typeClasses, part: "content" }, hAsync("slot", { key: '46dd8be0670070f381bad21df56307595a5c94c9' })));
17145
+ return (hAsync(Tag, { key: '5f7d43603c8d412a375d2e49818b363b5e9a142b', style: this.color && setColor(this.color), class: typeClasses, part: "content" }, hAsync("slot", { key: '702d5065297e0405295aa941cd39dba38787519e' })));
16326
17146
  }
16327
17147
  get el() { return getElement(this); }
16328
17148
  static get style() { return pdsTextCss; }
@@ -16510,8 +17330,8 @@ class PdsTextarea {
16510
17330
  }
16511
17331
  connectedCallback() {
16512
17332
  this.debounceChanged();
16513
- // Initialize ElementInternals for form association
16514
- if (this.el.attachInternals) {
17333
+ // Initialize ElementInternals for form association (only once per element instance)
17334
+ if (this.el.attachInternals && !this.internals) {
16515
17335
  this.internals = this.el.attachInternals();
16516
17336
  }
16517
17337
  }
@@ -16647,10 +17467,10 @@ class PdsTextarea {
16647
17467
  }
16648
17468
  render() {
16649
17469
  const value = this.getValue();
16650
- return (hAsync(Host, { key: '294f37b2751fd4fbc16e7b2cca62d1a5200b7f4e', "aria-disabled": this.disabled ? 'true' : null, "aria-readonly": this.readonly ? 'true' : null, "has-action": this.hasAction && !this.hideLabel ? 'true' : null }, hAsync("div", { key: 'b785c5740642dafcdb771f3a9ffb933d8ada3f4e', class: "pds-textarea" }, this.label &&
16651
- hAsync("div", { key: '31ad1d39efe78fc7a29e48d4a8d228a97422eba9', class: "pds-textarea__label-wrapper" }, hAsync("label", { key: 'e37a18d36bffa47f00d5d3376df45b3f35c3e8a3', htmlFor: this.componentId }, hAsync("span", { key: 'fc2d376e1dc976c3004f6ab225c921ebc7e46dd4', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), !this.hideLabel && this.renderAction()), hAsync("div", { key: '7b5db43c23fb9a2ddb3ebec0b684953a4b043ea1', class: "pds-textarea__field-wrapper" }, hAsync("textarea", Object.assign({ key: '81355164c2b01ab7ef5d6adcb3f92a59eec2692f', 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 &&
16652
- hAsync("p", { key: 'abcdf1ef2aa24d0057e5b0c212c06b5324f0dd9b', class: "pds-textarea__helper-message", id: messageId(this.componentId, 'helper') }, this.helperMessage), this.invalid &&
16653
- hAsync("p", { key: '1c526c2aae382caabe83ff5e3dadd7510371a656', "aria-live": "assertive", class: "pds-textarea__error-message", id: messageId(this.componentId, 'error') }, hAsync("pds-icon", { key: 'e8a0960b0e2dbacfe46113b3f1162e35d301afac', icon: danger, size: "small" }), this.errorMessage))));
17470
+ return (hAsync(Host, { key: '89ecd4a781f49c6db2efcb993ea5ce2cdcabab95', "aria-disabled": this.disabled ? 'true' : null, "aria-readonly": this.readonly ? 'true' : null, "has-action": this.hasAction && !this.hideLabel ? 'true' : null }, hAsync("div", { key: '3970d9a4d469103ea6355b79642a67ea6be748df', class: "pds-textarea" }, this.label &&
17471
+ hAsync("div", { key: '74763078aefb4130859e2dac108c09ec70b7c57e', class: "pds-textarea__label-wrapper" }, hAsync("label", { key: 'b40e73f522b76424a69b8423544deb3442d3d508', htmlFor: this.componentId }, hAsync("span", { key: '176b4c9fc6e41e0744a9a5e384b25c29ff759d6f', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), !this.hideLabel && this.renderAction()), hAsync("div", { key: 'f2b0730430d5c3830193c5af859a5e5e6665017a', class: "pds-textarea__field-wrapper" }, hAsync("textarea", Object.assign({ key: '293a1b5fd1c5f7c58077ecd7967d28001b8d423c', 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 &&
17472
+ hAsync("p", { key: 'e9e848434ad237c6aeef144dbf7e23dee57caf55', class: "pds-textarea__helper-message", id: messageId(this.componentId, 'helper') }, this.helperMessage), this.invalid &&
17473
+ hAsync("p", { key: 'f1069f927a6d475a6b7dfa0f17eedcb04ed821ad', "aria-live": "assertive", class: "pds-textarea__error-message", id: messageId(this.componentId, 'error') }, hAsync("pds-icon", { key: 'ad1105ae8d86d760d981a2fe3f888b219eaaa91e', icon: danger, size: "small" }), this.errorMessage))));
16654
17474
  }
16655
17475
  static get formAssociated() { return true; }
16656
17476
  get el() { return getElement(this); }
@@ -16773,13 +17593,13 @@ class PdsToast {
16773
17593
  return this.icon && hAsync("pds-icon", { name: this.icon, class: "pds-toast__icon" });
16774
17594
  }
16775
17595
  render() {
16776
- return (hAsync(Host, { key: 'ff9523170d34f742f8301e8d3ce3810bacb7d183', hidden: !this.isVisible }, hAsync("div", { key: '67e0639a0158eb8c325064a9c3f97aaa3b538d90', class: {
17596
+ return (hAsync(Host, { key: 'bcc7fe0ad3b7823a940249fccfce30edfc1e808d', hidden: !this.isVisible }, hAsync("div", { key: '5265cbbdf05278cbd565e34f63b6c9566ec14290', class: {
16777
17597
  'pds-toast': true,
16778
17598
  [`pds-toast--${this.type}`]: this.type !== 'default',
16779
17599
  'pds-toast--animating-out': this.isAnimatingOut
16780
- }, 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: () => {
17600
+ }, 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: () => {
16781
17601
  this.dismiss();
16782
- }, "aria-label": "Dismiss message" }, hAsync("pds-icon", { key: '0f9e43ed08a253531f3dc698c92f861ca1bd6063', name: "remove" }))))));
17602
+ }, "aria-label": "Dismiss message" }, hAsync("pds-icon", { key: '359c0c05ddd6db8e7711fc0212bf80569106ecf4', name: "remove" }))))));
16783
17603
  }
16784
17604
  static get watchers() { return {
16785
17605
  "duration": ["handleDurationChange"]
@@ -17119,9 +17939,9 @@ class PdsTooltip {
17119
17939
  }
17120
17940
  render() {
17121
17941
  const hostId = this.componentId || undefined;
17122
- 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,
17942
+ 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,
17123
17943
  /* focusin/out bubble; ensure keyboard users see tooltips */
17124
- 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" }))));
17944
+ 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" }))));
17125
17945
  }
17126
17946
  get el() { return getElement(this); }
17127
17947
  static get watchers() { return {
@@ -17176,6 +17996,7 @@ registerComponents([
17176
17996
  PdsModalContent,
17177
17997
  PdsModalFooter,
17178
17998
  PdsModalHeader,
17999
+ PdsMultiselect,
17179
18000
  PdsPopover,
17180
18001
  PdsProgress,
17181
18002
  PdsProperty,