@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.js CHANGED
@@ -3521,7 +3521,7 @@ class MockPdsModal {
3521
3521
  }; }
3522
3522
  }
3523
3523
 
3524
- /* pds-icons v9.12.0, ES Modules */
3524
+ /* pds-icons v9.13.0, ES Modules */
3525
3525
 
3526
3526
  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>";
3527
3527
  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>";
@@ -4518,7 +4518,8 @@ class PdsCheckbox {
4518
4518
  return classNames.join(' ');
4519
4519
  }
4520
4520
  connectedCallback() {
4521
- if (this.el.attachInternals) {
4521
+ // Initialize ElementInternals for form association (only once per element instance)
4522
+ if (this.el.attachInternals && !this.internals) {
4522
4523
  this.internals = this.el.attachInternals();
4523
4524
  }
4524
4525
  // Expose type property on the element instance to match native form element behavior
@@ -4559,9 +4560,9 @@ class PdsCheckbox {
4559
4560
  this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
4560
4561
  }
4561
4562
  render() {
4562
- 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 &&
4563
- hAsync("div", { key: 'c781a27975cdd7c4361fa9d29a06f915633f52ba', class: 'pds-checkbox__message', id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
4564
- 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)));
4563
+ 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 &&
4564
+ hAsync("div", { key: '30792c96b68346304a4ba10d050904f74f5811ca', class: 'pds-checkbox__message', id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
4565
+ 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)));
4565
4566
  }
4566
4567
  static get formAssociated() { return true; }
4567
4568
  get el() { return getElement(this); }
@@ -4721,8 +4722,9 @@ function getOppositeAxis(axis) {
4721
4722
  function getAxisLength(axis) {
4722
4723
  return axis === 'y' ? 'height' : 'width';
4723
4724
  }
4725
+ const yAxisSides = /*#__PURE__*/new Set(['top', 'bottom']);
4724
4726
  function getSideAxis(placement) {
4725
- return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';
4727
+ return yAxisSides.has(getSide(placement)) ? 'y' : 'x';
4726
4728
  }
4727
4729
  function getAlignmentAxis(placement) {
4728
4730
  return getOppositeAxis(getSideAxis(placement));
@@ -4747,19 +4749,19 @@ function getExpandedPlacements(placement) {
4747
4749
  function getOppositeAlignmentPlacement(placement) {
4748
4750
  return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);
4749
4751
  }
4752
+ const lrPlacement = ['left', 'right'];
4753
+ const rlPlacement = ['right', 'left'];
4754
+ const tbPlacement = ['top', 'bottom'];
4755
+ const btPlacement = ['bottom', 'top'];
4750
4756
  function getSideList(side, isStart, rtl) {
4751
- const lr = ['left', 'right'];
4752
- const rl = ['right', 'left'];
4753
- const tb = ['top', 'bottom'];
4754
- const bt = ['bottom', 'top'];
4755
4757
  switch (side) {
4756
4758
  case 'top':
4757
4759
  case 'bottom':
4758
- if (rtl) return isStart ? rl : lr;
4759
- return isStart ? lr : rl;
4760
+ if (rtl) return isStart ? rlPlacement : lrPlacement;
4761
+ return isStart ? lrPlacement : rlPlacement;
4760
4762
  case 'left':
4761
4763
  case 'right':
4762
- return isStart ? tb : bt;
4764
+ return isStart ? tbPlacement : btPlacement;
4763
4765
  default:
4764
4766
  return [];
4765
4767
  }
@@ -5097,10 +5099,11 @@ const flip$1 = function (options) {
5097
5099
  const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
5098
5100
  const nextPlacement = placements[nextIndex];
5099
5101
  if (nextPlacement) {
5100
- var _overflowsData$;
5101
5102
  const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;
5102
- const hasInitialMainAxisOverflow = ((_overflowsData$ = overflowsData[0]) == null ? void 0 : _overflowsData$.overflows[0]) > 0;
5103
- if (!ignoreCrossAxisOverflow || hasInitialMainAxisOverflow) {
5103
+ if (!ignoreCrossAxisOverflow ||
5104
+ // We leave the current main axis only if every placement on that axis
5105
+ // overflows the main axis.
5106
+ overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {
5104
5107
  // Try next placement and re-run the lifecycle.
5105
5108
  return {
5106
5109
  data: {
@@ -5157,6 +5160,8 @@ const flip$1 = function (options) {
5157
5160
  };
5158
5161
  };
5159
5162
 
5163
+ const originSides = /*#__PURE__*/new Set(['left', 'top']);
5164
+
5160
5165
  // For type backwards-compatibility, the `OffsetOptions` type was also
5161
5166
  // Derivable.
5162
5167
 
@@ -5170,7 +5175,7 @@ async function convertValueToCoords(state, options) {
5170
5175
  const side = getSide(placement);
5171
5176
  const alignment = getAlignment(placement);
5172
5177
  const isVertical = getSideAxis(placement) === 'y';
5173
- const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;
5178
+ const mainAxisMulti = originSides.has(side) ? -1 : 1;
5174
5179
  const crossAxisMulti = rtl && isVertical ? -1 : 1;
5175
5180
  const rawValue = evaluate(options, state);
5176
5181
 
@@ -5319,6 +5324,90 @@ const shift$1 = function (options) {
5319
5324
  };
5320
5325
  };
5321
5326
 
5327
+ /**
5328
+ * Provides data that allows you to change the size of the floating element —
5329
+ * for instance, prevent it from overflowing the clipping boundary or match the
5330
+ * width of the reference element.
5331
+ * @see https://floating-ui.com/docs/size
5332
+ */
5333
+ const size$1 = function (options) {
5334
+ if (options === void 0) {
5335
+ options = {};
5336
+ }
5337
+ return {
5338
+ name: 'size',
5339
+ options,
5340
+ async fn(state) {
5341
+ var _state$middlewareData, _state$middlewareData2;
5342
+ const {
5343
+ placement,
5344
+ rects,
5345
+ platform,
5346
+ elements
5347
+ } = state;
5348
+ const {
5349
+ apply = () => {},
5350
+ ...detectOverflowOptions
5351
+ } = evaluate(options, state);
5352
+ const overflow = await detectOverflow(state, detectOverflowOptions);
5353
+ const side = getSide(placement);
5354
+ const alignment = getAlignment(placement);
5355
+ const isYAxis = getSideAxis(placement) === 'y';
5356
+ const {
5357
+ width,
5358
+ height
5359
+ } = rects.floating;
5360
+ let heightSide;
5361
+ let widthSide;
5362
+ if (side === 'top' || side === 'bottom') {
5363
+ heightSide = side;
5364
+ widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';
5365
+ } else {
5366
+ widthSide = side;
5367
+ heightSide = alignment === 'end' ? 'top' : 'bottom';
5368
+ }
5369
+ const maximumClippingHeight = height - overflow.top - overflow.bottom;
5370
+ const maximumClippingWidth = width - overflow.left - overflow.right;
5371
+ const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);
5372
+ const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);
5373
+ const noShift = !state.middlewareData.shift;
5374
+ let availableHeight = overflowAvailableHeight;
5375
+ let availableWidth = overflowAvailableWidth;
5376
+ if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {
5377
+ availableWidth = maximumClippingWidth;
5378
+ }
5379
+ if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {
5380
+ availableHeight = maximumClippingHeight;
5381
+ }
5382
+ if (noShift && !alignment) {
5383
+ const xMin = max(overflow.left, 0);
5384
+ const xMax = max(overflow.right, 0);
5385
+ const yMin = max(overflow.top, 0);
5386
+ const yMax = max(overflow.bottom, 0);
5387
+ if (isYAxis) {
5388
+ availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));
5389
+ } else {
5390
+ availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));
5391
+ }
5392
+ }
5393
+ await apply({
5394
+ ...state,
5395
+ availableWidth,
5396
+ availableHeight
5397
+ });
5398
+ const nextDimensions = await platform.getDimensions(elements.floating);
5399
+ if (width !== nextDimensions.width || height !== nextDimensions.height) {
5400
+ return {
5401
+ reset: {
5402
+ rects: true
5403
+ }
5404
+ };
5405
+ }
5406
+ return {};
5407
+ }
5408
+ };
5409
+ };
5410
+
5322
5411
  function hasWindow() {
5323
5412
  return typeof window !== 'undefined';
5324
5413
  }
@@ -5363,6 +5452,7 @@ function isShadowRoot(value) {
5363
5452
  }
5364
5453
  return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;
5365
5454
  }
5455
+ const invalidOverflowDisplayValues = /*#__PURE__*/new Set(['inline', 'contents']);
5366
5456
  function isOverflowElement(element) {
5367
5457
  const {
5368
5458
  overflow,
@@ -5370,27 +5460,32 @@ function isOverflowElement(element) {
5370
5460
  overflowY,
5371
5461
  display
5372
5462
  } = getComputedStyle$1(element);
5373
- return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);
5463
+ return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);
5374
5464
  }
5465
+ const tableElements = /*#__PURE__*/new Set(['table', 'td', 'th']);
5375
5466
  function isTableElement(element) {
5376
- return ['table', 'td', 'th'].includes(getNodeName(element));
5467
+ return tableElements.has(getNodeName(element));
5377
5468
  }
5469
+ const topLayerSelectors = [':popover-open', ':modal'];
5378
5470
  function isTopLayer(element) {
5379
- return [':popover-open', ':modal'].some(selector => {
5471
+ return topLayerSelectors.some(selector => {
5380
5472
  try {
5381
5473
  return element.matches(selector);
5382
- } catch (e) {
5474
+ } catch (_e) {
5383
5475
  return false;
5384
5476
  }
5385
5477
  });
5386
5478
  }
5479
+ const transformProperties = ['transform', 'translate', 'scale', 'rotate', 'perspective'];
5480
+ const willChangeValues = ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'];
5481
+ const containValues = ['paint', 'layout', 'strict', 'content'];
5387
5482
  function isContainingBlock(elementOrCss) {
5388
5483
  const webkit = isWebKit();
5389
5484
  const css = isElement(elementOrCss) ? getComputedStyle$1(elementOrCss) : elementOrCss;
5390
5485
 
5391
5486
  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
5392
5487
  // https://drafts.csswg.org/css-transforms-2/#individual-transforms
5393
- 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));
5488
+ 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));
5394
5489
  }
5395
5490
  function getContainingBlock(element) {
5396
5491
  let currentNode = getParentNode(element);
@@ -5408,8 +5503,9 @@ function isWebKit() {
5408
5503
  if (typeof CSS === 'undefined' || !CSS.supports) return false;
5409
5504
  return CSS.supports('-webkit-backdrop-filter', 'none');
5410
5505
  }
5506
+ const lastTraversableNodeNames = /*#__PURE__*/new Set(['html', 'body', '#document']);
5411
5507
  function isLastTraversableNode(node) {
5412
- return ['html', 'body', '#document'].includes(getNodeName(node));
5508
+ return lastTraversableNodeNames.has(getNodeName(node));
5413
5509
  }
5414
5510
  function getComputedStyle$1(element) {
5415
5511
  return getWindow(element).getComputedStyle(element);
@@ -5609,14 +5705,9 @@ function getWindowScrollBarX(element, rect) {
5609
5705
  return rect.left + leftScroll;
5610
5706
  }
5611
5707
 
5612
- function getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {
5613
- if (ignoreScrollbarX === void 0) {
5614
- ignoreScrollbarX = false;
5615
- }
5708
+ function getHTMLOffset(documentElement, scroll) {
5616
5709
  const htmlRect = documentElement.getBoundingClientRect();
5617
- const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :
5618
- // RTL <body> scrollbar.
5619
- getWindowScrollBarX(documentElement, htmlRect));
5710
+ const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);
5620
5711
  const y = htmlRect.top + scroll.scrollTop;
5621
5712
  return {
5622
5713
  x,
@@ -5655,7 +5746,7 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
5655
5746
  offsets.y = offsetRect.y + offsetParent.clientTop;
5656
5747
  }
5657
5748
  }
5658
- const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);
5749
+ const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
5659
5750
  return {
5660
5751
  width: rect.width * scale.x,
5661
5752
  height: rect.height * scale.y,
@@ -5689,6 +5780,10 @@ function getDocumentRect(element) {
5689
5780
  };
5690
5781
  }
5691
5782
 
5783
+ // Safety check: ensure the scrollbar space is reasonable in case this
5784
+ // calculation is affected by unusual styles.
5785
+ // Most scrollbars leave 15-18px of space.
5786
+ const SCROLLBAR_MAX = 25;
5692
5787
  function getViewportRect(element, strategy) {
5693
5788
  const win = getWindow(element);
5694
5789
  const html = getDocumentElement(element);
@@ -5706,6 +5801,24 @@ function getViewportRect(element, strategy) {
5706
5801
  y = visualViewport.offsetTop;
5707
5802
  }
5708
5803
  }
5804
+ const windowScrollbarX = getWindowScrollBarX(html);
5805
+ // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the
5806
+ // visual width of the <html> but this is not considered in the size
5807
+ // of `html.clientWidth`.
5808
+ if (windowScrollbarX <= 0) {
5809
+ const doc = html.ownerDocument;
5810
+ const body = doc.body;
5811
+ const bodyStyles = getComputedStyle(body);
5812
+ const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;
5813
+ const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);
5814
+ if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {
5815
+ width -= clippingStableScrollbarWidth;
5816
+ }
5817
+ } else if (windowScrollbarX <= SCROLLBAR_MAX) {
5818
+ // If the <body> scrollbar is on the left, the width needs to be extended
5819
+ // by the scrollbar amount so there isn't extra space on the right.
5820
+ width += windowScrollbarX;
5821
+ }
5709
5822
  return {
5710
5823
  width,
5711
5824
  height,
@@ -5714,6 +5827,7 @@ function getViewportRect(element, strategy) {
5714
5827
  };
5715
5828
  }
5716
5829
 
5830
+ const absoluteOrFixed = /*#__PURE__*/new Set(['absolute', 'fixed']);
5717
5831
  // Returns the inner client rect, subtracting scrollbars if present.
5718
5832
  function getInnerBoundingClientRect(element, strategy) {
5719
5833
  const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');
@@ -5778,7 +5892,7 @@ function getClippingElementAncestors(element, cache) {
5778
5892
  if (!currentNodeIsContaining && computedStyle.position === 'fixed') {
5779
5893
  currentContainingBlockComputedStyle = null;
5780
5894
  }
5781
- const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
5895
+ const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
5782
5896
  if (shouldDropCurrentNode) {
5783
5897
  // Drop non-containing blocks.
5784
5898
  result = result.filter(ancestor => ancestor !== currentNode);
@@ -6150,6 +6264,14 @@ const shift = shift$1;
6150
6264
  */
6151
6265
  const flip = flip$1;
6152
6266
 
6267
+ /**
6268
+ * Provides data that allows you to change the size of the floating element —
6269
+ * for instance, prevent it from overflowing the clipping boundary or match the
6270
+ * width of the reference element.
6271
+ * @see https://floating-ui.com/docs/size
6272
+ */
6273
+ const size = size$1;
6274
+
6153
6275
  /**
6154
6276
  * Computes the `x` and `y` coordinates that will place the floating element
6155
6277
  * next to a given reference element.
@@ -6173,7 +6295,7 @@ const computePosition = (reference, floating, options) => {
6173
6295
  });
6174
6296
  };
6175
6297
 
6176
- /*! @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 */
6298
+ /*! @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 */
6177
6299
 
6178
6300
  const {
6179
6301
  entries,
@@ -6202,12 +6324,18 @@ if (!seal) {
6202
6324
  };
6203
6325
  }
6204
6326
  if (!apply) {
6205
- apply = function apply(fun, thisValue, args) {
6206
- return fun.apply(thisValue, args);
6327
+ apply = function apply(func, thisArg) {
6328
+ for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
6329
+ args[_key - 2] = arguments[_key];
6330
+ }
6331
+ return func.apply(thisArg, args);
6207
6332
  };
6208
6333
  }
6209
6334
  if (!construct) {
6210
- construct = function construct(Func, args) {
6335
+ construct = function construct(Func) {
6336
+ for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
6337
+ args[_key2 - 1] = arguments[_key2];
6338
+ }
6211
6339
  return new Func(...args);
6212
6340
  };
6213
6341
  }
@@ -6236,8 +6364,8 @@ function unapply(func) {
6236
6364
  if (thisArg instanceof RegExp) {
6237
6365
  thisArg.lastIndex = 0;
6238
6366
  }
6239
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
6240
- args[_key - 1] = arguments[_key];
6367
+ for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
6368
+ args[_key3 - 1] = arguments[_key3];
6241
6369
  }
6242
6370
  return apply(func, thisArg, args);
6243
6371
  };
@@ -6248,12 +6376,12 @@ function unapply(func) {
6248
6376
  * @param func - The constructor function to be wrapped and called.
6249
6377
  * @returns A new function that constructs an instance of the given constructor function with the provided arguments.
6250
6378
  */
6251
- function unconstruct(func) {
6379
+ function unconstruct(Func) {
6252
6380
  return function () {
6253
- for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
6254
- args[_key2] = arguments[_key2];
6381
+ for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
6382
+ args[_key4] = arguments[_key4];
6255
6383
  }
6256
- return construct(func, args);
6384
+ return construct(Func, args);
6257
6385
  };
6258
6386
  }
6259
6387
  /**
@@ -6352,8 +6480,8 @@ function lookupGetter(object, prop) {
6352
6480
  return fallbackValue;
6353
6481
  }
6354
6482
 
6355
- 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']);
6356
- 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']);
6483
+ 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']);
6484
+ 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']);
6357
6485
  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']);
6358
6486
  // List of SVG elements that are disallowed by default.
6359
6487
  // We still need to know them so that we can do namespace
@@ -6366,8 +6494,8 @@ const mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mgly
6366
6494
  const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);
6367
6495
  const text = freeze(['#text']);
6368
6496
 
6369
- 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']);
6370
- 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']);
6497
+ 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']);
6498
+ 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']);
6371
6499
  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']);
6372
6500
  const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);
6373
6501
 
@@ -6465,7 +6593,7 @@ const _createHooksMap = function _createHooksMap() {
6465
6593
  function createDOMPurify() {
6466
6594
  let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();
6467
6595
  const DOMPurify = root => createDOMPurify(root);
6468
- DOMPurify.version = '3.2.6';
6596
+ DOMPurify.version = '3.3.1';
6469
6597
  DOMPurify.removed = [];
6470
6598
  if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {
6471
6599
  // Not running in a browser, provide a factory function
@@ -6576,6 +6704,21 @@ function createDOMPurify() {
6576
6704
  let FORBID_TAGS = null;
6577
6705
  /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */
6578
6706
  let FORBID_ATTR = null;
6707
+ /* Config object to store ADD_TAGS/ADD_ATTR functions (when used as functions) */
6708
+ const EXTRA_ELEMENT_HANDLING = Object.seal(create(null, {
6709
+ tagCheck: {
6710
+ writable: true,
6711
+ configurable: false,
6712
+ enumerable: true,
6713
+ value: null
6714
+ },
6715
+ attributeCheck: {
6716
+ writable: true,
6717
+ configurable: false,
6718
+ enumerable: true,
6719
+ value: null
6720
+ }
6721
+ }));
6579
6722
  /* Decide if ARIA attributes are okay */
6580
6723
  let ALLOW_ARIA_ATTR = true;
6581
6724
  /* Decide if custom data attributes are okay */
@@ -6768,16 +6911,24 @@ function createDOMPurify() {
6768
6911
  }
6769
6912
  /* Merge configuration parameters */
6770
6913
  if (cfg.ADD_TAGS) {
6771
- if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
6772
- ALLOWED_TAGS = clone$1(ALLOWED_TAGS);
6914
+ if (typeof cfg.ADD_TAGS === 'function') {
6915
+ EXTRA_ELEMENT_HANDLING.tagCheck = cfg.ADD_TAGS;
6916
+ } else {
6917
+ if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
6918
+ ALLOWED_TAGS = clone$1(ALLOWED_TAGS);
6919
+ }
6920
+ addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
6773
6921
  }
6774
- addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
6775
6922
  }
6776
6923
  if (cfg.ADD_ATTR) {
6777
- if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
6778
- ALLOWED_ATTR = clone$1(ALLOWED_ATTR);
6924
+ if (typeof cfg.ADD_ATTR === 'function') {
6925
+ EXTRA_ELEMENT_HANDLING.attributeCheck = cfg.ADD_ATTR;
6926
+ } else {
6927
+ if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
6928
+ ALLOWED_ATTR = clone$1(ALLOWED_ATTR);
6929
+ }
6930
+ addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
6779
6931
  }
6780
- addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
6781
6932
  }
6782
6933
  if (cfg.ADD_URI_SAFE_ATTR) {
6783
6934
  addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);
@@ -6788,6 +6939,12 @@ function createDOMPurify() {
6788
6939
  }
6789
6940
  addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);
6790
6941
  }
6942
+ if (cfg.ADD_FORBID_CONTENTS) {
6943
+ if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {
6944
+ FORBID_CONTENTS = clone$1(FORBID_CONTENTS);
6945
+ }
6946
+ addToSet(FORBID_CONTENTS, cfg.ADD_FORBID_CONTENTS, transformCaseFunc);
6947
+ }
6791
6948
  /* Add #text in case KEEP_CONTENT is set to true */
6792
6949
  if (KEEP_CONTENT) {
6793
6950
  ALLOWED_TAGS['#text'] = true;
@@ -7085,7 +7242,7 @@ function createDOMPurify() {
7085
7242
  return true;
7086
7243
  }
7087
7244
  /* Remove element if anything forbids its presence */
7088
- if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
7245
+ if (!(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName])) {
7089
7246
  /* Check if we have a custom element to handle */
7090
7247
  if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {
7091
7248
  if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {
@@ -7157,12 +7314,12 @@ function createDOMPurify() {
7157
7314
  (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)
7158
7315
  XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)
7159
7316
  We don't need to check the value; it's always URI safe. */
7160
- 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]) {
7317
+ 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]) {
7161
7318
  if (
7162
7319
  // First condition does a very basic check if a) it's basically a valid custom element tagname AND
7163
7320
  // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
7164
7321
  // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
7165
- _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)) ||
7322
+ _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)) ||
7166
7323
  // Alternative, second condition checks if it's an `is`-attribute, AND
7167
7324
  // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
7168
7325
  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 {
@@ -7241,7 +7398,12 @@ function createDOMPurify() {
7241
7398
  value = SANITIZE_NAMED_PROPS_PREFIX + value;
7242
7399
  }
7243
7400
  /* Work around a security issue with comments inside attributes */
7244
- if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\/(style|title)/i, value)) {
7401
+ if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\/(style|title|textarea)/i, value)) {
7402
+ _removeAttribute(name, currentNode);
7403
+ continue;
7404
+ }
7405
+ /* Make sure we cannot easily use animated hrefs, even if animations are allowed */
7406
+ if (lcName === 'attributename' && stringMatch(value, 'href')) {
7245
7407
  _removeAttribute(name, currentNode);
7246
7408
  continue;
7247
7409
  }
@@ -7840,8 +8002,8 @@ class PdsCombobox {
7840
8002
  };
7841
8003
  }
7842
8004
  connectedCallback() {
7843
- // Initialize ElementInternals for form association
7844
- if (this.el.attachInternals) {
8005
+ // Initialize ElementInternals for form association (only once per element instance)
8006
+ if (this.el.attachInternals && !this.internals) {
7845
8007
  this.internals = this.el.attachInternals();
7846
8008
  }
7847
8009
  }
@@ -8539,10 +8701,10 @@ class PdsCombobox {
8539
8701
  }
8540
8702
  render() {
8541
8703
  const triggerClass = `pds-combobox__button-trigger pds-combobox__button-trigger--${this.triggerVariant}`;
8542
- 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 => {
8704
+ 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 => {
8543
8705
  this.inputEl = el;
8544
8706
  this.triggerEl = el;
8545
- }, 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())));
8707
+ }, 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())));
8546
8708
  }
8547
8709
  static get formAssociated() { return true; }
8548
8710
  get el() { return getElement(this); }
@@ -8700,7 +8862,7 @@ class PdsDivider {
8700
8862
  }; }
8701
8863
  }
8702
8864
 
8703
- 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)}";
8865
+ 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)}";
8704
8866
 
8705
8867
  /**
8706
8868
  * @part menu-panel - Exposes the dropdown menu container for styling.
@@ -8755,6 +8917,7 @@ class PdsDropdownMenu {
8755
8917
  const updatePosition = () => {
8756
8918
  computePosition(this.triggerEl, this.panelEl, {
8757
8919
  placement: this.placement,
8920
+ strategy: 'fixed',
8758
8921
  middleware: [offset(6), flip(), shift({ padding: 5 })],
8759
8922
  }).then(({ x, y }) => {
8760
8923
  Object.assign(this.panelEl.style, {
@@ -8965,7 +9128,7 @@ class PdsDropdownMenu {
8965
9128
  }
8966
9129
  }
8967
9130
  render() {
8968
- 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 }))));
9131
+ 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 }))));
8969
9132
  }
8970
9133
  get host() { return getElement(this); }
8971
9134
  static get style() { return pdsDropdownMenuCss; }
@@ -8983,7 +9146,7 @@ class PdsDropdownMenu {
8983
9146
  }; }
8984
9147
  }
8985
9148
 
8986
- 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)}";
9149
+ 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)}";
8987
9150
 
8988
9151
  class PdsDropdownMenuItem {
8989
9152
  constructor(hostRef) {
@@ -9100,7 +9263,7 @@ class PdsDropdownMenuSeparator {
9100
9263
  }; }
9101
9264
  }
9102
9265
 
9103
- 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)))}}";
9266
+ 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)))}}";
9104
9267
 
9105
9268
  /**
9106
9269
  * Individual filter component with cross-browser popover positioning.
@@ -10266,8 +10429,8 @@ class PdsInput {
10266
10429
  this.originalPdsInput = this.pdsInput;
10267
10430
  }
10268
10431
  connectedCallback() {
10269
- // Initialize ElementInternals for form association
10270
- if (this.el.attachInternals) {
10432
+ // Initialize ElementInternals for form association (only once per element instance)
10433
+ if (this.el.attachInternals && !this.internals) {
10271
10434
  this.internals = this.el.attachInternals();
10272
10435
  }
10273
10436
  }
@@ -10372,7 +10535,7 @@ class PdsInput {
10372
10535
  'has-prepend': this.hasPrepend,
10373
10536
  'has-append': this.hasAppend,
10374
10537
  };
10375
- 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)))));
10538
+ 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)))));
10376
10539
  }
10377
10540
  static get formAssociated() { return true; }
10378
10541
  get el() { return getElement(this); }
@@ -10515,7 +10678,7 @@ class PdsLoader {
10515
10678
  * Determines the type of loader.
10516
10679
  */
10517
10680
  this.variant = 'spinner';
10518
- this.style = () => {
10681
+ this.getSvgStyle = () => {
10519
10682
  if (this.size !== undefined) {
10520
10683
  return {
10521
10684
  height: this.loaderSize(),
@@ -10540,7 +10703,7 @@ class PdsLoader {
10540
10703
  }
10541
10704
  }
10542
10705
  render() {
10543
- 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..."))));
10706
+ 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..."))));
10544
10707
  }
10545
10708
  static get style() { return pdsLoaderCss; }
10546
10709
  static get cmpMeta() { return {
@@ -11067,6 +11230,633 @@ class PdsModalHeader {
11067
11230
  }; }
11068
11231
  }
11069
11232
 
11233
+ 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}";
11234
+
11235
+ /**
11236
+ * @slot (default) - Static option elements for the multiselect
11237
+ * @slot empty - Custom empty state message when no options match
11238
+ * @slot loading - Custom loading indicator
11239
+ */
11240
+ class PdsMultiselect {
11241
+ constructor(hostRef) {
11242
+ registerInstance(this, hostRef);
11243
+ this.pdsMultiselectChange = createEvent(this, "pdsMultiselectChange");
11244
+ this.pdsMultiselectSearch = createEvent(this, "pdsMultiselectSearch");
11245
+ this.pdsMultiselectLoadOptions = createEvent(this, "pdsMultiselectLoadOptions");
11246
+ /**
11247
+ * Placeholder text for the input field.
11248
+ */
11249
+ this.placeholder = 'Select...';
11250
+ /**
11251
+ * Array of selected option values.
11252
+ */
11253
+ this.value = [];
11254
+ /**
11255
+ * Determines whether or not the multiselect is disabled.
11256
+ */
11257
+ this.disabled = false;
11258
+ /**
11259
+ * HTTP method for async requests.
11260
+ */
11261
+ this.asyncMethod = 'GET';
11262
+ /**
11263
+ * Debounce delay in milliseconds for search/fetch.
11264
+ */
11265
+ this.debounce = 300;
11266
+ /**
11267
+ * Maximum height of the dropdown before scrolling.
11268
+ */
11269
+ this.maxHeight = '300px';
11270
+ /**
11271
+ * Width of the trigger button (and reference for dropdown positioning).
11272
+ */
11273
+ this.triggerWidth = '100%';
11274
+ /**
11275
+ * Minimum width of the dropdown panel.
11276
+ */
11277
+ this.minWidth = '250px';
11278
+ /**
11279
+ * Visually hides the label but keeps it accessible.
11280
+ */
11281
+ this.hideLabel = false;
11282
+ /**
11283
+ * If true, the multiselect is required.
11284
+ */
11285
+ this.required = false;
11286
+ /**
11287
+ * Whether the component is currently loading async options.
11288
+ */
11289
+ this.loading = false;
11290
+ // Internal state
11291
+ this.isOpen = false;
11292
+ this.searchQuery = '';
11293
+ this.highlightedIndex = -1;
11294
+ this.internalOptions = [];
11295
+ this.selectedItems = [];
11296
+ this.currentPage = 1;
11297
+ this.hasMore = false;
11298
+ // Flag to prevent focusout from closing during open transition
11299
+ this.isOpening = false;
11300
+ this.handleTriggerClick = () => {
11301
+ if (this.disabled)
11302
+ return;
11303
+ if (this.isOpen) {
11304
+ this.closeDropdown();
11305
+ }
11306
+ else {
11307
+ this.openDropdown();
11308
+ }
11309
+ };
11310
+ this.handleTriggerKeyDown = (e) => {
11311
+ switch (e.key) {
11312
+ case 'ArrowDown':
11313
+ case 'ArrowUp':
11314
+ case 'Enter':
11315
+ case ' ':
11316
+ e.preventDefault();
11317
+ if (!this.isOpen) {
11318
+ this.openDropdown();
11319
+ }
11320
+ break;
11321
+ }
11322
+ };
11323
+ this.handleSearchInputChange = (e) => {
11324
+ const target = e.target;
11325
+ this.searchQuery = target.value;
11326
+ this.highlightedIndex = -1;
11327
+ // Emit search event for consumer-managed async
11328
+ this.pdsMultiselectSearch.emit({ query: this.searchQuery });
11329
+ // Fetch from async URL if configured
11330
+ if (this.asyncUrl) {
11331
+ this.debouncedFetchAsyncOptions(this.searchQuery, 1);
11332
+ }
11333
+ };
11334
+ this.handleSearchInputKeyDown = (e) => {
11335
+ const filteredOptions = this.getFilteredOptions();
11336
+ switch (e.key) {
11337
+ case 'ArrowDown':
11338
+ e.preventDefault();
11339
+ this.highlightedIndex = Math.min(this.highlightedIndex + 1, filteredOptions.length - 1);
11340
+ this.scrollOptionIntoView();
11341
+ break;
11342
+ case 'ArrowUp':
11343
+ e.preventDefault();
11344
+ this.highlightedIndex = Math.max(this.highlightedIndex - 1, 0);
11345
+ this.scrollOptionIntoView();
11346
+ break;
11347
+ case 'Enter':
11348
+ e.preventDefault();
11349
+ if (this.highlightedIndex >= 0) {
11350
+ const option = filteredOptions[this.highlightedIndex];
11351
+ if (option) {
11352
+ this.selectOption(option);
11353
+ }
11354
+ }
11355
+ break;
11356
+ // Escape is handled by the global @Listen('keydown') handler
11357
+ case 'Tab':
11358
+ this.closeDropdown();
11359
+ break;
11360
+ }
11361
+ };
11362
+ this.handleContainerFocusOut = () => {
11363
+ // Use setTimeout to delay the check - this allows click events and focus transitions to complete
11364
+ // before we decide to close the dropdown
11365
+ setTimeout(() => {
11366
+ var _a;
11367
+ // Don't close if we're in the middle of opening or already closed
11368
+ if (!this.isOpen || this.isOpening)
11369
+ return;
11370
+ const activeElement = document.activeElement;
11371
+ // Check if focus is within our component's shadow root
11372
+ const isInShadowRoot = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.contains(activeElement);
11373
+ // Also check if focus is on the host element itself
11374
+ const isOnHost = activeElement === this.el;
11375
+ if (!isInShadowRoot && !isOnHost) {
11376
+ this.closeDropdown();
11377
+ }
11378
+ }, 0);
11379
+ };
11380
+ this.handleOptionMouseDown = (option) => (e) => {
11381
+ e.preventDefault(); // Prevent focus change
11382
+ this.toggleOption(option);
11383
+ };
11384
+ this.handleOptionMouseEnter = (index) => () => {
11385
+ this.highlightedIndex = index;
11386
+ };
11387
+ this.handleScroll = (e) => {
11388
+ if (!this.asyncUrl || !this.hasMore || this.loading)
11389
+ return;
11390
+ const target = e.target;
11391
+ const scrollBottom = target.scrollHeight - target.scrollTop - target.clientHeight;
11392
+ // Load more when near bottom (within 50px)
11393
+ if (scrollBottom < 50) {
11394
+ this.pdsMultiselectLoadOptions.emit({
11395
+ query: this.searchQuery,
11396
+ page: this.currentPage + 1,
11397
+ });
11398
+ this.debouncedFetchAsyncOptions(this.searchQuery, this.currentPage + 1);
11399
+ }
11400
+ };
11401
+ }
11402
+ connectedCallback() {
11403
+ // Initialize ElementInternals for form association (only once per element instance)
11404
+ if (this.el.attachInternals && !this.internals) {
11405
+ this.internals = this.el.attachInternals();
11406
+ }
11407
+ }
11408
+ componentWillLoad() {
11409
+ this.originalSearchEmitter = this.pdsMultiselectSearch;
11410
+ this.syncSelectedItems();
11411
+ }
11412
+ componentDidLoad() {
11413
+ this.setupDebounce();
11414
+ this.setupMutationObserver();
11415
+ this.setupSlotChangeListener();
11416
+ this.updateFormValue();
11417
+ // Ensure preselected values sync after DOM is fully ready
11418
+ // This handles cases where slot content loads after initial render (e.g., in docs/MDX)
11419
+ requestAnimationFrame(() => {
11420
+ this.updateOptionsFromSlot();
11421
+ this.syncSelectedItems();
11422
+ });
11423
+ }
11424
+ setupSlotChangeListener() {
11425
+ var _a;
11426
+ const slot = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot:not([name])');
11427
+ if (slot) {
11428
+ slot.addEventListener('slotchange', () => {
11429
+ this.updateOptionsFromSlot();
11430
+ this.syncSelectedItems();
11431
+ });
11432
+ // Also call it immediately in case content is already slotted
11433
+ this.updateOptionsFromSlot();
11434
+ }
11435
+ }
11436
+ disconnectedCallback() {
11437
+ var _a, _b;
11438
+ (_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
11439
+ (_b = this.cleanupAutoUpdate) === null || _b === void 0 ? void 0 : _b.call(this);
11440
+ this.clearAsyncFetchState();
11441
+ }
11442
+ setupDebounce() {
11443
+ const { pdsMultiselectSearch, debounce, originalSearchEmitter } = this;
11444
+ this.pdsMultiselectSearch = debounce === undefined
11445
+ ? originalSearchEmitter !== null && originalSearchEmitter !== void 0 ? originalSearchEmitter : pdsMultiselectSearch
11446
+ : debounceEvent(pdsMultiselectSearch, debounce);
11447
+ }
11448
+ valueChanged(newValue) {
11449
+ // Handle JSON string values (from HTML attributes)
11450
+ if (typeof newValue === 'string') {
11451
+ try {
11452
+ const parsed = JSON.parse(newValue);
11453
+ if (Array.isArray(parsed)) {
11454
+ this.value = parsed;
11455
+ return; // The assignment will trigger this watcher again with the array
11456
+ }
11457
+ }
11458
+ catch (_a) {
11459
+ // Not valid JSON, treat as single value
11460
+ this.value = newValue ? [newValue] : [];
11461
+ return;
11462
+ }
11463
+ }
11464
+ this.syncSelectedItems();
11465
+ this.updateFormValue();
11466
+ }
11467
+ optionsChanged() {
11468
+ if (this.options) {
11469
+ this.internalOptions = [...this.options];
11470
+ }
11471
+ }
11472
+ internalOptionsChanged() {
11473
+ // Re-sync selected items when options become available
11474
+ // This handles the case where value is set before options are loaded (e.g., from slot)
11475
+ this.syncSelectedItems();
11476
+ }
11477
+ /**
11478
+ * Sets focus on the trigger button.
11479
+ */
11480
+ async setFocus() {
11481
+ var _a;
11482
+ (_a = this.triggerEl) === null || _a === void 0 ? void 0 : _a.focus();
11483
+ }
11484
+ /**
11485
+ * Handle global keyboard events for accessibility.
11486
+ * Closes dropdown on Escape key press regardless of focus location.
11487
+ */
11488
+ handleWindowKeyDown(event) {
11489
+ var _a;
11490
+ if (!this.isOpen)
11491
+ return;
11492
+ if (event.key === 'Escape') {
11493
+ event.preventDefault();
11494
+ this.closeDropdown();
11495
+ (_a = this.triggerEl) === null || _a === void 0 ? void 0 : _a.focus();
11496
+ }
11497
+ }
11498
+ setupMutationObserver() {
11499
+ this.observer = new MutationObserver(() => {
11500
+ this.updateOptionsFromSlot();
11501
+ });
11502
+ this.observer.observe(this.el, {
11503
+ childList: true,
11504
+ subtree: true,
11505
+ });
11506
+ }
11507
+ updateOptionsFromSlot() {
11508
+ var _a;
11509
+ const slot = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot:not([name])');
11510
+ if (!slot)
11511
+ return;
11512
+ const options = slot.assignedElements({ flatten: true })
11513
+ .filter((el) => el.tagName === 'OPTION')
11514
+ .map(opt => ({
11515
+ id: opt.value,
11516
+ text: opt.textContent || opt.value,
11517
+ }));
11518
+ // Only update if we actually found options AND we're not using async/external options
11519
+ // Don't clear internalOptions if slot returns empty (might be mid-DOM-update)
11520
+ if (options.length > 0 && !this.asyncUrl && !this.options) {
11521
+ this.internalOptions = options;
11522
+ }
11523
+ }
11524
+ clearAsyncFetchState() {
11525
+ var _a;
11526
+ if (this.fetchDebounceTimer !== undefined) {
11527
+ window.clearTimeout(this.fetchDebounceTimer);
11528
+ this.fetchDebounceTimer = undefined;
11529
+ }
11530
+ (_a = this.abortController) === null || _a === void 0 ? void 0 : _a.abort();
11531
+ this.abortController = undefined;
11532
+ }
11533
+ debouncedFetchAsyncOptions(query, page = 1) {
11534
+ var _a;
11535
+ if (!this.asyncUrl)
11536
+ return;
11537
+ if (this.fetchDebounceTimer !== undefined) {
11538
+ window.clearTimeout(this.fetchDebounceTimer);
11539
+ }
11540
+ const delay = Math.max(0, (_a = this.debounce) !== null && _a !== void 0 ? _a : 0);
11541
+ this.fetchDebounceTimer = window.setTimeout(() => {
11542
+ this.fetchDebounceTimer = undefined;
11543
+ this.fetchOptions(query, page);
11544
+ }, delay);
11545
+ }
11546
+ syncSelectedItems() {
11547
+ // Ensure value is an array (may be string from HTML attribute)
11548
+ const valueArray = this.ensureValueArray();
11549
+ const allOptions = this.getAllOptions();
11550
+ this.selectedItems = valueArray
11551
+ .map(val => allOptions.find(opt => String(opt.id) === String(val)))
11552
+ .filter((opt) => opt !== undefined);
11553
+ }
11554
+ ensureValueArray() {
11555
+ // Handle JSON string values passed via HTML attribute
11556
+ if (typeof this.value === 'string') {
11557
+ try {
11558
+ const parsed = JSON.parse(this.value);
11559
+ if (Array.isArray(parsed)) {
11560
+ this.value = parsed;
11561
+ return parsed;
11562
+ }
11563
+ }
11564
+ catch (_a) {
11565
+ // Not valid JSON, treat as single value
11566
+ const singleValue = this.value;
11567
+ this.value = singleValue ? [singleValue] : [];
11568
+ return this.value;
11569
+ }
11570
+ }
11571
+ return Array.isArray(this.value) ? this.value : [];
11572
+ }
11573
+ getAllOptions() {
11574
+ return this.options || this.internalOptions;
11575
+ }
11576
+ getFilteredOptions() {
11577
+ const allOptions = this.getAllOptions();
11578
+ const query = this.searchQuery.toLowerCase();
11579
+ return allOptions.filter(opt => {
11580
+ // Filter by search query only - don't filter out selected items
11581
+ if (query) {
11582
+ return opt.text.toLowerCase().includes(query);
11583
+ }
11584
+ return true;
11585
+ });
11586
+ }
11587
+ updateFormValue() {
11588
+ var _a;
11589
+ if ((_a = this.internals) === null || _a === void 0 ? void 0 : _a.setFormValue) {
11590
+ // Ensure value is an array before iterating
11591
+ const valueArray = this.ensureValueArray();
11592
+ // Submit as multiple values with same name (native select multiple behavior)
11593
+ const formData = new FormData();
11594
+ valueArray.forEach(val => {
11595
+ if (this.name) {
11596
+ formData.append(this.name, val);
11597
+ }
11598
+ });
11599
+ this.internals.setFormValue(formData);
11600
+ // Update validity state for required validation
11601
+ if (this.required && valueArray.length === 0) {
11602
+ this.internals.setValidity({ valueMissing: true }, 'Please select at least one option.', this.triggerEl);
11603
+ }
11604
+ else {
11605
+ this.internals.setValidity({});
11606
+ }
11607
+ }
11608
+ }
11609
+ async fetchOptions(query, page = 1) {
11610
+ var _a;
11611
+ if (!this.asyncUrl)
11612
+ return;
11613
+ (_a = this.abortController) === null || _a === void 0 ? void 0 : _a.abort();
11614
+ this.abortController = new AbortController();
11615
+ this.loading = true;
11616
+ try {
11617
+ const url = new URL(this.asyncUrl, window.location.origin);
11618
+ if (this.asyncMethod === 'GET') {
11619
+ url.searchParams.set('search', query);
11620
+ url.searchParams.set('page', String(page));
11621
+ }
11622
+ const response = await fetch(url.toString(), Object.assign({ method: this.asyncMethod, signal: this.abortController.signal, headers: {
11623
+ 'Content-Type': 'application/json',
11624
+ 'Accept': 'application/json',
11625
+ } }, (this.asyncMethod === 'POST' && {
11626
+ body: JSON.stringify({ search: query, page }),
11627
+ })));
11628
+ if (!response.ok)
11629
+ throw new Error('Failed to fetch options');
11630
+ const data = await response.json();
11631
+ const formattedResults = data.results.map(item => {
11632
+ if (this.formatResult) {
11633
+ return this.formatResult(item);
11634
+ }
11635
+ return Object.assign({ id: item.id, text: item.text }, item);
11636
+ });
11637
+ if (page === 1) {
11638
+ this.internalOptions = formattedResults;
11639
+ }
11640
+ else {
11641
+ this.internalOptions = [...this.internalOptions, ...formattedResults];
11642
+ }
11643
+ this.hasMore = data.totalCount ? this.internalOptions.length < data.totalCount : false;
11644
+ this.currentPage = page;
11645
+ }
11646
+ catch (error) {
11647
+ if (error.name !== 'AbortError') {
11648
+ console.error('PdsMultiselect: Failed to fetch options', error);
11649
+ }
11650
+ }
11651
+ finally {
11652
+ this.loading = false;
11653
+ }
11654
+ }
11655
+ openDropdown() {
11656
+ if (this.disabled)
11657
+ return;
11658
+ this.isOpening = true;
11659
+ this.isOpen = true;
11660
+ this.highlightedIndex = -1;
11661
+ // Trigger initial fetch if async
11662
+ if (this.asyncUrl && this.internalOptions.length === 0) {
11663
+ this.debouncedFetchAsyncOptions(this.searchQuery, 1);
11664
+ }
11665
+ requestAnimationFrame(() => {
11666
+ var _a;
11667
+ this.positionDropdown();
11668
+ // Focus the search input after the panel is positioned
11669
+ (_a = this.searchInputEl) === null || _a === void 0 ? void 0 : _a.focus();
11670
+ // Clear the opening flag after focus has moved
11671
+ setTimeout(() => {
11672
+ this.isOpening = false;
11673
+ }, 50);
11674
+ });
11675
+ }
11676
+ closeDropdown() {
11677
+ this.isOpen = false;
11678
+ this.highlightedIndex = -1;
11679
+ this.searchQuery = '';
11680
+ // Clean up auto-update
11681
+ if (this.cleanupAutoUpdate) {
11682
+ this.cleanupAutoUpdate();
11683
+ this.cleanupAutoUpdate = undefined;
11684
+ }
11685
+ }
11686
+ positionDropdown() {
11687
+ if (!this.containerEl || !this.panelEl)
11688
+ return;
11689
+ const referenceEl = this.triggerEl || this.containerEl;
11690
+ const { minWidth, panelWidth } = this;
11691
+ const updatePosition = () => {
11692
+ computePosition(referenceEl, this.panelEl, {
11693
+ placement: 'bottom-start',
11694
+ strategy: 'absolute',
11695
+ middleware: [
11696
+ offset(12),
11697
+ flip(),
11698
+ shift({ padding: 8 }),
11699
+ size({
11700
+ apply: ({ rects, elements }) => {
11701
+ Object.assign(elements.floating.style, {
11702
+ width: panelWidth !== null && panelWidth !== void 0 ? panelWidth : `${rects.reference.width}px`,
11703
+ minWidth,
11704
+ });
11705
+ },
11706
+ }),
11707
+ ],
11708
+ }).then(({ x, y }) => {
11709
+ if (this.panelEl) {
11710
+ this.panelEl.style.left = `${x}px`;
11711
+ this.panelEl.style.top = `${y}px`;
11712
+ }
11713
+ });
11714
+ };
11715
+ // Initial position
11716
+ updatePosition();
11717
+ // Set up auto-update for window resize and scroll
11718
+ const cleanupAutoUpdate = autoUpdate(referenceEl, this.panelEl, updatePosition);
11719
+ this.cleanupAutoUpdate = () => {
11720
+ cleanupAutoUpdate();
11721
+ this.clearAsyncFetchState();
11722
+ };
11723
+ }
11724
+ scrollOptionIntoView() {
11725
+ requestAnimationFrame(() => {
11726
+ var _a;
11727
+ const highlighted = (_a = this.listboxEl) === null || _a === void 0 ? void 0 : _a.querySelector(`[data-index="${this.highlightedIndex}"]`);
11728
+ highlighted === null || highlighted === void 0 ? void 0 : highlighted.scrollIntoView({ block: 'nearest', behavior: 'smooth' });
11729
+ });
11730
+ }
11731
+ toggleOption(option) {
11732
+ var _a;
11733
+ const isSelected = this.value.includes(String(option.id));
11734
+ if (isSelected) {
11735
+ // Remove from selection
11736
+ const newValue = this.value.filter(v => v !== String(option.id));
11737
+ this.value = newValue;
11738
+ const newSelectedItems = this.selectedItems.filter(item => String(item.id) !== String(option.id));
11739
+ this.pdsMultiselectChange.emit({
11740
+ values: newValue,
11741
+ items: newSelectedItems,
11742
+ });
11743
+ }
11744
+ else {
11745
+ // Add to selection
11746
+ if (this.maxSelections && this.value.length >= this.maxSelections) {
11747
+ return;
11748
+ }
11749
+ const newValue = [...this.value, String(option.id)];
11750
+ this.value = newValue;
11751
+ const newSelectedItems = [...this.selectedItems, option];
11752
+ this.pdsMultiselectChange.emit({
11753
+ values: newValue,
11754
+ items: newSelectedItems,
11755
+ });
11756
+ }
11757
+ // Keep focus on search input, don't close dropdown
11758
+ (_a = this.searchInputEl) === null || _a === void 0 ? void 0 : _a.focus();
11759
+ }
11760
+ selectOption(option) {
11761
+ // For keyboard navigation - toggle the option
11762
+ this.toggleOption(option);
11763
+ }
11764
+ renderSelectedItemsList() {
11765
+ if (this.selectedItems.length === 0)
11766
+ return null;
11767
+ 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))))));
11768
+ }
11769
+ renderDropdown() {
11770
+ if (!this.isOpen)
11771
+ return null;
11772
+ const filteredOptions = this.getFilteredOptions();
11773
+ const valueArray = this.ensureValueArray();
11774
+ const hasSlottedEmpty = !!this.el.querySelector('[slot="empty"]');
11775
+ const hasSlottedLoading = !!this.el.querySelector('[slot="loading"]');
11776
+ 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) => {
11777
+ const isSelected = valueArray.includes(String(option.id));
11778
+ const isHighlighted = index === this.highlightedIndex;
11779
+ const optionId = `${this.componentId}-option-${index}`;
11780
+ return (hAsync("li", { key: String(option.id), id: optionId, class: {
11781
+ 'pds-multiselect__option': true,
11782
+ 'pds-multiselect__option--highlighted': isHighlighted,
11783
+ 'pds-multiselect__option--selected': isSelected,
11784
+ }, 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' } })));
11785
+ }), this.hasMore && !this.loading && (hAsync("li", { class: "pds-multiselect__load-more", role: "presentation" }, hAsync("pds-loader", { size: "small" }))))));
11786
+ }
11787
+ getTriggerText() {
11788
+ const count = this.selectedItems.length;
11789
+ if (count === 0) {
11790
+ return this.placeholder || 'Select...';
11791
+ }
11792
+ return `${count} item${count === 1 ? '' : 's'}`;
11793
+ }
11794
+ render() {
11795
+ const hasSelections = this.selectedItems.length > 0;
11796
+ 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: {
11797
+ 'pds-multiselect__label': true,
11798
+ 'visually-hidden': this.hideLabel,
11799
+ } }, 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: {
11800
+ 'pds-multiselect__trigger': true,
11801
+ 'pds-multiselect__trigger--open': this.isOpen,
11802
+ 'pds-multiselect__trigger--disabled': this.disabled,
11803
+ 'pds-multiselect__trigger--invalid': this.invalid || !!this.errorMessage,
11804
+ 'pds-multiselect__trigger--has-value': hasSelections,
11805
+ }, 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: {
11806
+ 'pds-multiselect__trigger-text': true,
11807
+ 'pds-multiselect__trigger-text--placeholder': !hasSelections,
11808
+ } }, 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' })))));
11809
+ }
11810
+ static get formAssociated() { return true; }
11811
+ get el() { return getElement(this); }
11812
+ static get watchers() { return {
11813
+ "debounce": ["setupDebounce"],
11814
+ "value": ["valueChanged"],
11815
+ "options": ["optionsChanged"],
11816
+ "internalOptions": ["internalOptionsChanged"]
11817
+ }; }
11818
+ static get style() { return pdsMultiselectCss; }
11819
+ static get cmpMeta() { return {
11820
+ "$flags$": 329,
11821
+ "$tagName$": "pds-multiselect",
11822
+ "$members$": {
11823
+ "componentId": [1, "component-id"],
11824
+ "label": [1],
11825
+ "placeholder": [1],
11826
+ "name": [1],
11827
+ "value": [1040],
11828
+ "disabled": [4],
11829
+ "asyncUrl": [1, "async-url"],
11830
+ "asyncMethod": [1, "async-method"],
11831
+ "debounce": [2],
11832
+ "maxSelections": [2, "max-selections"],
11833
+ "maxHeight": [1, "max-height"],
11834
+ "triggerWidth": [1, "trigger-width"],
11835
+ "minWidth": [1, "min-width"],
11836
+ "panelWidth": [1, "panel-width"],
11837
+ "hideLabel": [4, "hide-label"],
11838
+ "errorMessage": [1, "error-message"],
11839
+ "helperMessage": [1, "helper-message"],
11840
+ "invalid": [4],
11841
+ "required": [4],
11842
+ "loading": [1028],
11843
+ "options": [16],
11844
+ "formatResult": [16],
11845
+ "isOpen": [32],
11846
+ "searchQuery": [32],
11847
+ "highlightedIndex": [32],
11848
+ "internalOptions": [32],
11849
+ "selectedItems": [32],
11850
+ "currentPage": [32],
11851
+ "hasMore": [32],
11852
+ "setFocus": [64]
11853
+ },
11854
+ "$listeners$": [[8, "keydown", "handleWindowKeyDown"]],
11855
+ "$lazyBundleId$": "-",
11856
+ "$attrsToReflect$": []
11857
+ }; }
11858
+ }
11859
+
11070
11860
  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}";
11071
11861
 
11072
11862
  /**
@@ -11627,7 +12417,7 @@ class PdsPopover {
11627
12417
  }, 16); // ~1 frame at 60fps
11628
12418
  }
11629
12419
  render() {
11630
- 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 }))));
12420
+ 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 }))));
11631
12421
  }
11632
12422
  get el() { return getElement(this); }
11633
12423
  static get style() { return pdsPopoverCss; }
@@ -11677,7 +12467,7 @@ class PdsProgress {
11677
12467
  this.showPercent = false;
11678
12468
  }
11679
12469
  render() {
11680
- 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, "%")));
12470
+ 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, "%")));
11681
12471
  }
11682
12472
  static get style() { return pdsProgressCss; }
11683
12473
  static get cmpMeta() { return {
@@ -11711,7 +12501,7 @@ class PdsProperty {
11711
12501
  this.icon = 'star';
11712
12502
  }
11713
12503
  render() {
11714
- 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' }))));
12504
+ 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' }))));
11715
12505
  }
11716
12506
  static get style() { return pdsPropertyCss; }
11717
12507
  static get cmpMeta() { return {
@@ -11812,11 +12602,11 @@ class PdsRadio {
11812
12602
  }
11813
12603
  render() {
11814
12604
  const renderLabelAndMessages = () => [
11815
- 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)),
12605
+ 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)),
11816
12606
  this.helperMessage && (hAsync("div", { key: `${this.componentId}-helper`, class: 'pds-radio__message', id: messageId(this.componentId, 'helper') }, this.helperMessage)),
11817
- 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))
12607
+ 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))
11818
12608
  ];
11819
- 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())));
12609
+ 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())));
11820
12610
  }
11821
12611
  get el() { return getElement(this); }
11822
12612
  static get style() { return labelCss$3 + pdsRadioCss; }
@@ -11991,13 +12781,13 @@ class PdsRadioGroup {
11991
12781
  render() {
11992
12782
  const gapValue = this.getGapValue();
11993
12783
  const ariaDescribedBy = this.getAriaDescribedBy();
11994
- return (hAsync(Host, { key: '3354fc555d3158c26d8bc8d63f372bc98bec959b', class: this.classNames(), id: this._groupId, role: "group", "aria-describedby": ariaDescribedBy, style: {
12784
+ return (hAsync(Host, { key: '4172c83d182d274660aca1f09cb3cf0a822623bc', class: this.classNames(), id: this._groupId, role: "group", "aria-describedby": ariaDescribedBy, style: {
11995
12785
  '--pds-radio-group-gap': gapValue,
11996
- } }, this.groupLabel && (hAsync("div", { key: '64961e1a1857bb1c31ed97f20f4a1b04731ea3cf', class: "pds-radio-group__label" }, this.groupLabel)), hAsync("div", { key: '2525254fbbaf39fd0c59a830e5a3115ddce0326b', class: {
12786
+ } }, this.groupLabel && (hAsync("div", { key: '9487046d8ce5f89535f220816192f63063eba7da', class: "pds-radio-group__label" }, this.groupLabel)), hAsync("div", { key: '691b01627a001a5be54e41ecfef7d0c182be30fb', class: {
11997
12787
  'pds-radio-group__radios': true,
11998
12788
  'pds-radio-group__radios--row': this.direction === 'row',
11999
12789
  'pds-radio-group__radios--column': this.direction === 'column',
12000
- } }, 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))));
12790
+ } }, 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))));
12001
12791
  }
12002
12792
  get el() { return getElement(this); }
12003
12793
  static get watchers() { return {
@@ -12087,7 +12877,7 @@ class PdsRow {
12087
12877
  })), (this.minHeight && {
12088
12878
  'min-height': this.minHeight,
12089
12879
  }));
12090
- return hAsync(Host, { key: 'b0bcc4fc7f67525fb9bae45d31b0ea3df2bda47f', class: `pds-row ${rowClasses}`, style: rowInlineStyles });
12880
+ return hAsync(Host, { key: '6e6e95f69cf5a84c481399737f9f5c68117aabd9', class: `pds-row ${rowClasses}`, style: rowInlineStyles });
12091
12881
  }
12092
12882
  static get style() { return pdsRowCss; }
12093
12883
  static get cmpMeta() { return {
@@ -12208,8 +12998,8 @@ class PdsSelect {
12208
12998
  this._type = this.multiple ? 'select-multiple' : 'select-one';
12209
12999
  }
12210
13000
  connectedCallback() {
12211
- // Initialize ElementInternals for form association
12212
- if (this.el.attachInternals) {
13001
+ // Initialize ElementInternals for form association (only once per element instance)
13002
+ if (this.el.attachInternals && !this.internals) {
12213
13003
  this.internals = this.el.attachInternals();
12214
13004
  }
12215
13005
  // Expose type property on the element instance to match native form element behavior
@@ -12340,7 +13130,7 @@ class PdsSelect {
12340
13130
  }
12341
13131
  render() {
12342
13132
  const hasAction = this.el.querySelector('[slot="action"]') !== null;
12343
- 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 }))));
13133
+ 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 }))));
12344
13134
  }
12345
13135
  static get formAssociated() { return true; }
12346
13136
  get el() { return getElement(this); }
@@ -15084,7 +15874,7 @@ class PdsSortable {
15084
15874
  Sortable.create(this.el, sortableOptions);
15085
15875
  }
15086
15876
  render() {
15087
- return (hAsync(Host, { key: '4f1335560e5082991c6f3dffcf30d83f89b2c20c', class: this.classNames(), id: this.componentId }, hAsync("slot", { key: '848505cc4b31df36c57c2db8690d1ce93df17b92' })));
15877
+ return (hAsync(Host, { key: 'b01f12d7d2973ce2fa513a468be3634e38241171', class: this.classNames(), id: this.componentId }, hAsync("slot", { key: '7d9dff192e9b6a01e71c41d9250c0245ca548658' })));
15088
15878
  }
15089
15879
  get el() { return getElement(this); }
15090
15880
  static get style() { return pdsSortableCss; }
@@ -15131,7 +15921,7 @@ class PdsSortableItem {
15131
15921
  }
15132
15922
  }
15133
15923
  render() {
15134
- 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" })))));
15924
+ 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" })))));
15135
15925
  }
15136
15926
  get el() { return getElement(this); }
15137
15927
  static get style() { return pdsSortableItemCss; }
@@ -15195,7 +15985,8 @@ class PdsSwitch {
15195
15985
  };
15196
15986
  }
15197
15987
  connectedCallback() {
15198
- if (this.el.attachInternals) {
15988
+ // Initialize ElementInternals for form association (only once per element instance)
15989
+ if (this.el.attachInternals && !this.internals) {
15199
15990
  this.internals = this.el.attachInternals();
15200
15991
  }
15201
15992
  // Expose type property on the element instance to match native form element behavior
@@ -15236,9 +16027,9 @@ class PdsSwitch {
15236
16027
  this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
15237
16028
  }
15238
16029
  render() {
15239
- 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 &&
15240
- hAsync("div", { key: '8a1eee8b5afcac6bb9a3399424aaf6d3995050cf', class: `pds-switch__message`, id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
15241
- 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)));
16030
+ 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 &&
16031
+ hAsync("div", { key: 'c7973e1d05121a75d8a5e1398baa0d96ac96d18c', class: `pds-switch__message`, id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
16032
+ 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)));
15242
16033
  }
15243
16034
  static get formAssociated() { return true; }
15244
16035
  get el() { return getElement(this); }
@@ -15268,7 +16059,7 @@ class PdsSwitch {
15268
16059
  }; }
15269
16060
  }
15270
16061
 
15271
- 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)}";
16062
+ 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)}";
15272
16063
 
15273
16064
  class PdsTab {
15274
16065
  constructor(hostRef) {
@@ -15299,9 +16090,9 @@ class PdsTab {
15299
16090
  return classes.filter(Boolean).join(' ');
15300
16091
  }
15301
16092
  render() {
15302
- const availabilityTabEdgeInlineStart = (hAsync("span", { key: '7a70cf5b681ec05215920417c4ba590fed238f63', class: "pds-tab-edge", role: "presentation" }));
15303
- const availabilityTabEdgeInlineEnd = (hAsync("span", { key: '21a1422bb00a6221f7db1b0e77abcd024eec60cd', class: "pds-tab-edge pds-tab-edge--end", role: "presentation" }));
15304
- 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' })))));
16093
+ const availabilityTabEdgeInlineStart = (hAsync("span", { key: 'e8e263009d29fea16f1cf51de545f07d3529568d', class: "pds-tab-edge", role: "presentation" }));
16094
+ const availabilityTabEdgeInlineEnd = (hAsync("span", { key: 'f492586e916cddbbdf04c3a2cdb84ad0d669df36', class: "pds-tab-edge pds-tab-edge--end", role: "presentation" }));
16095
+ 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' })))));
15305
16096
  }
15306
16097
  get el() { return getElement(this); }
15307
16098
  static get style() { return pdsTabCss; }
@@ -15589,7 +16380,7 @@ class PdsTableBody {
15589
16380
  registerInstance(this, hostRef);
15590
16381
  }
15591
16382
  render() {
15592
- return (hAsync(Host, { key: '299a00424cf34acb2d2cbddf2c51c853558f270d', role: "rowgroup", part: "body" }, hAsync("slot", { key: '718b97595d037cf6c19e8bfb2a9702a2a3fc1058' })));
16383
+ return (hAsync(Host, { key: '1f6ce73abaf0ecb3f592f754bedef557c7ea197d', role: "rowgroup", part: "body" }, hAsync("slot", { key: '4a9758bb6c17de60cb345216d9b3e7c58cd44499' })));
15593
16384
  }
15594
16385
  static get style() { return pdsTableBodyCss; }
15595
16386
  static get cmpMeta() { return {
@@ -15700,11 +16491,11 @@ class PdsTableCell {
15700
16491
  return classNames.join(' ');
15701
16492
  }
15702
16493
  render() {
15703
- return (hAsync(Host, { key: '996bf5f70f450e57b0c44023ddf5f44f6af8e367', class: this.classNames(), role: "gridcell", part: "cell", style: this.tableRef &&
16494
+ return (hAsync(Host, { key: '102c412e68bd877ee88866d2c66838d62cb7cab2', class: this.classNames(), role: "gridcell", part: "cell", style: this.tableRef &&
15704
16495
  this.tableRef.fixedColumn &&
15705
16496
  this.tableRef.selectable
15706
16497
  ? { '--fixed-cell-position': '40px' }
15707
- : {} }, hAsync("slot", { key: 'f6e5fc35adeb18fa939534f3b409b282d121a797' })));
16498
+ : {} }, hAsync("slot", { key: 'fae2d378d6e1c5c3abb34cb4a75b74930d56965c' })));
15708
16499
  }
15709
16500
  get hostElement() { return getElement(this); }
15710
16501
  static get style() { return pdsTableCellCss; }
@@ -15776,7 +16567,7 @@ class PdsTableHead {
15776
16567
  }
15777
16568
  }
15778
16569
  render() {
15779
- 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' })));
16570
+ 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' })));
15780
16571
  }
15781
16572
  get hostElement() { return getElement(this); }
15782
16573
  static get style() { return pdsTableHeadCss; }
@@ -15827,6 +16618,11 @@ class PdsTableHeadCell {
15827
16618
  * @defaultValue false
15828
16619
  */
15829
16620
  this.hasHeadBackground = false;
16621
+ /**
16622
+ * Determines if this column is the currently active sorted column.
16623
+ * @defaultValue false
16624
+ */
16625
+ this.isActive = false;
15830
16626
  /**
15831
16627
  * Handles scroll events to update fixed column shadow state.
15832
16628
  * Updates the tableScrolling state to control CSS classes for fixed column shadows.
@@ -15845,12 +16641,25 @@ class PdsTableHeadCell {
15845
16641
  };
15846
16642
  this.toggleSort = () => {
15847
16643
  if (this.sortable) {
16644
+ // Guard: return early if tableRef is not available
16645
+ if (!this.tableRef) {
16646
+ return;
16647
+ }
15848
16648
  const column = this.hostElement.innerText.trim();
16649
+ // Always toggle the direction (preserves original behavior)
15849
16650
  this.sortingDirection = this.sortingDirection === 'asc' ? 'desc' : 'asc';
15850
- this.tableRef.querySelectorAll('pds-table-head-cell').forEach((headCell) => {
15851
- headCell.classList.remove('is-active');
16651
+ // Reset all OTHER head cells to inactive state (skip the current one)
16652
+ this.tableRef.querySelectorAll('pds-table-head-cell').forEach(async (headCell) => {
16653
+ // Skip clearing the current cell
16654
+ if (headCell !== this.hostElement) {
16655
+ const headCellComponent = headCell;
16656
+ await headCellComponent.clearActiveSort();
16657
+ }
15852
16658
  });
15853
- this.hostElement.classList.toggle('is-active');
16659
+ // Mark this column as active
16660
+ this.isActive = true;
16661
+ this.hostElement.classList.add('is-active');
16662
+ // Emit the sort event with the current direction
15854
16663
  this.pdsTableSort.emit({ column, direction: this.sortingDirection });
15855
16664
  }
15856
16665
  };
@@ -15864,8 +16673,17 @@ class PdsTableHeadCell {
15864
16673
  if (!this.sortable)
15865
16674
  return;
15866
16675
  this.sortingDirection = direction;
16676
+ this.isActive = true;
15867
16677
  this.hostElement.classList.add('is-active');
15868
16678
  }
16679
+ /**
16680
+ * Clears the active sort state from this column.
16681
+ * Used internally when another column becomes active.
16682
+ */
16683
+ async clearActiveSort() {
16684
+ this.isActive = false;
16685
+ this.hostElement.classList.remove('is-active');
16686
+ }
15869
16687
  componentWillLoad() {
15870
16688
  // Set initial references and state before first render
15871
16689
  this.tableRef = this.hostElement.closest('pds-table');
@@ -15970,11 +16788,11 @@ class PdsTableHeadCell {
15970
16788
  return classNames.join(' ');
15971
16789
  }
15972
16790
  render() {
15973
- return (hAsync(Host, { key: '18228c7b1950668f12f983d9e5364bbf2deb3f1a', class: this.classNames(), role: "columnheader", onClick: this.toggleSort, part: "head-cell", style: this.tableRef &&
16791
+ return (hAsync(Host, { key: '7e85fb5e6b5fc1022034db9e4c94ca13dfc56257', class: this.classNames(), role: "columnheader", onClick: this.toggleSort, part: "head-cell", style: this.tableRef &&
15974
16792
  this.tableRef.fixedColumn &&
15975
16793
  this.tableRef.selectable
15976
16794
  ? { '--fixed-cell-position': '40px' }
15977
- : {} }, hAsync("slot", { key: '283f5e031cc8fe521c25af8060ce51c3ebaffa93' }), this.sortable && (hAsync("pds-icon", { key: 'a7e172c6fbf1185ab9885af04bcf2f2449370e6b', icon: this.sortingDirection === 'asc' ? upSmall : downSmall, part: "sort-icon" }))));
16795
+ : {} }, hAsync("slot", { key: '97d2b9621f7d61ad42719a4cc9f640a1210d78dc' }), this.sortable && this.isActive && (hAsync("pds-icon", { key: 'd80efe9b417ae34bf50f65b0e9cb15bcc9aabd40', icon: this.sortingDirection === 'asc' ? upSmall : downSmall, part: "sort-icon" }))));
15978
16796
  }
15979
16797
  get hostElement() { return getElement(this); }
15980
16798
  static get style() { return pdsTableHeadCellCss; }
@@ -15989,7 +16807,9 @@ class PdsTableHeadCell {
15989
16807
  "isSelected": [32],
15990
16808
  "hasHeadBorder": [32],
15991
16809
  "hasHeadBackground": [32],
15992
- "setActiveSort": [64]
16810
+ "isActive": [32],
16811
+ "setActiveSort": [64],
16812
+ "clearActiveSort": [64]
15993
16813
  },
15994
16814
  "$listeners$": undefined,
15995
16815
  "$lazyBundleId$": "-",
@@ -16138,7 +16958,7 @@ class PdsTableRow {
16138
16958
  }
16139
16959
  }
16140
16960
  render() {
16141
- 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' })));
16961
+ 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' })));
16142
16962
  }
16143
16963
  get hostElement() { return getElement(this); }
16144
16964
  static get style() { return pdsTableRowCss; }
@@ -16169,7 +16989,7 @@ class PdsTabpanel {
16169
16989
  this.selected = false; // eslint-disable-line @stencil-community/strict-mutable
16170
16990
  }
16171
16991
  render() {
16172
- 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' }))));
16992
+ 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' }))));
16173
16993
  }
16174
16994
  get el() { return getElement(this); }
16175
16995
  static get style() { return pdsTabpanelCss; }
@@ -16281,7 +17101,7 @@ class PdsTabs {
16281
17101
  this.passPropsToChildren();
16282
17102
  }
16283
17103
  render() {
16284
- 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" })));
17104
+ 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" })));
16285
17105
  }
16286
17106
  get el() { return getElement(this); }
16287
17107
  static get style() { return pdsTabsCss; }
@@ -16324,7 +17144,7 @@ class PdsText {
16324
17144
  ${this.weight !== undefined && this.weight.trim() !== '' ? `pds-text--weight-${this.weight}` : ''}
16325
17145
  ${this.decoration !== undefined && this.decoration.trim() !== '' ? `pds-text--decoration-${this.decoration}` : ''}
16326
17146
  `;
16327
- return (hAsync(Tag, { key: '42a62bfa709c5d093d6559ed073486b6a74e6bf5', style: this.color && setColor(this.color), class: typeClasses, part: "content" }, hAsync("slot", { key: '46dd8be0670070f381bad21df56307595a5c94c9' })));
17147
+ return (hAsync(Tag, { key: '5f7d43603c8d412a375d2e49818b363b5e9a142b', style: this.color && setColor(this.color), class: typeClasses, part: "content" }, hAsync("slot", { key: '702d5065297e0405295aa941cd39dba38787519e' })));
16328
17148
  }
16329
17149
  get el() { return getElement(this); }
16330
17150
  static get style() { return pdsTextCss; }
@@ -16512,8 +17332,8 @@ class PdsTextarea {
16512
17332
  }
16513
17333
  connectedCallback() {
16514
17334
  this.debounceChanged();
16515
- // Initialize ElementInternals for form association
16516
- if (this.el.attachInternals) {
17335
+ // Initialize ElementInternals for form association (only once per element instance)
17336
+ if (this.el.attachInternals && !this.internals) {
16517
17337
  this.internals = this.el.attachInternals();
16518
17338
  }
16519
17339
  }
@@ -16649,10 +17469,10 @@ class PdsTextarea {
16649
17469
  }
16650
17470
  render() {
16651
17471
  const value = this.getValue();
16652
- 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 &&
16653
- 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 &&
16654
- hAsync("p", { key: 'abcdf1ef2aa24d0057e5b0c212c06b5324f0dd9b', class: "pds-textarea__helper-message", id: messageId(this.componentId, 'helper') }, this.helperMessage), this.invalid &&
16655
- 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))));
17472
+ 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 &&
17473
+ 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 &&
17474
+ hAsync("p", { key: 'e9e848434ad237c6aeef144dbf7e23dee57caf55', class: "pds-textarea__helper-message", id: messageId(this.componentId, 'helper') }, this.helperMessage), this.invalid &&
17475
+ 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))));
16656
17476
  }
16657
17477
  static get formAssociated() { return true; }
16658
17478
  get el() { return getElement(this); }
@@ -16775,13 +17595,13 @@ class PdsToast {
16775
17595
  return this.icon && hAsync("pds-icon", { name: this.icon, class: "pds-toast__icon" });
16776
17596
  }
16777
17597
  render() {
16778
- return (hAsync(Host, { key: 'ff9523170d34f742f8301e8d3ce3810bacb7d183', hidden: !this.isVisible }, hAsync("div", { key: '67e0639a0158eb8c325064a9c3f97aaa3b538d90', class: {
17598
+ return (hAsync(Host, { key: 'bcc7fe0ad3b7823a940249fccfce30edfc1e808d', hidden: !this.isVisible }, hAsync("div", { key: '5265cbbdf05278cbd565e34f63b6c9566ec14290', class: {
16779
17599
  'pds-toast': true,
16780
17600
  [`pds-toast--${this.type}`]: this.type !== 'default',
16781
17601
  'pds-toast--animating-out': this.isAnimatingOut
16782
- }, 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: () => {
17602
+ }, 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: () => {
16783
17603
  this.dismiss();
16784
- }, "aria-label": "Dismiss message" }, hAsync("pds-icon", { key: '0f9e43ed08a253531f3dc698c92f861ca1bd6063', name: "remove" }))))));
17604
+ }, "aria-label": "Dismiss message" }, hAsync("pds-icon", { key: '359c0c05ddd6db8e7711fc0212bf80569106ecf4', name: "remove" }))))));
16785
17605
  }
16786
17606
  static get watchers() { return {
16787
17607
  "duration": ["handleDurationChange"]
@@ -17121,9 +17941,9 @@ class PdsTooltip {
17121
17941
  }
17122
17942
  render() {
17123
17943
  const hostId = this.componentId || undefined;
17124
- 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,
17944
+ 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,
17125
17945
  /* focusin/out bubble; ensure keyboard users see tooltips */
17126
- 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" }))));
17946
+ 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" }))));
17127
17947
  }
17128
17948
  get el() { return getElement(this); }
17129
17949
  static get watchers() { return {
@@ -17178,6 +17998,7 @@ registerComponents([
17178
17998
  PdsModalContent,
17179
17999
  PdsModalFooter,
17180
18000
  PdsModalHeader,
18001
+ PdsMultiselect,
17181
18002
  PdsPopover,
17182
18003
  PdsProgress,
17183
18004
  PdsProperty,