@pine-ds/core 4.5.0 → 4.7.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 (478) hide show
  1. package/components/attributes.js +1 -1
  2. package/components/mock-pds-modal.js +1 -1
  3. package/components/pds-combobox.js +1 -1
  4. package/components/pds-container.js +1 -1
  5. package/components/pds-copytext.js +1 -1
  6. package/components/pds-datepicker.js +1 -1
  7. package/components/pds-divider.js +1 -1
  8. package/components/pds-drawer-content.js +1 -1
  9. package/components/pds-drawer-footer.js +1 -1
  10. package/components/pds-drawer-header.js +1 -1
  11. package/components/pds-drawer.js +1 -1
  12. package/components/pds-dropdown-menu-item.js +1 -1
  13. package/components/pds-dropdown-menu-separator.js +1 -1
  14. package/components/pds-dropdown-menu.js +1 -1
  15. package/components/pds-filter.js +1 -1
  16. package/components/pds-filters.js +1 -1
  17. package/components/pds-icon2.js +1 -1
  18. package/components/pds-image.js +1 -1
  19. package/components/pds-input2.js +1 -1
  20. package/components/pds-link2.js +1 -1
  21. package/components/pds-loader2.js +1 -1
  22. package/components/pds-modal-content.js +1 -1
  23. package/components/pds-modal-footer.js +1 -1
  24. package/components/pds-modal-header.js +1 -1
  25. package/components/pds-modal2.js +1 -1
  26. package/components/pds-multiselect.js +1 -1
  27. package/components/pds-popover.js +1 -1
  28. package/components/pds-progress.js +1 -1
  29. package/components/pds-property.js +1 -1
  30. package/components/pds-radio-group.js +1 -1
  31. package/components/pds-radio.js +1 -1
  32. package/components/pds-row.js +1 -1
  33. package/components/pds-select.js +1 -1
  34. package/components/pds-sortable-item.js +1 -1
  35. package/components/pds-sortable.js +1 -1
  36. package/components/pds-switch.js +1 -1
  37. package/components/pds-tab.js +1 -1
  38. package/components/pds-table-body.js +1 -1
  39. package/components/pds-table-cell2.js +1 -1
  40. package/components/pds-table-head-cell2.js +1 -1
  41. package/components/pds-table-head.js +1 -1
  42. package/components/pds-table-row.js +1 -1
  43. package/components/pds-tabpanel.js +1 -1
  44. package/components/pds-tabs.js +1 -1
  45. package/components/pds-text2.js +1 -1
  46. package/components/pds-textarea.js +1 -1
  47. package/components/pds-toast.js +1 -1
  48. package/components/pds-tooltip.js +1 -1
  49. package/dist/cjs/{attributes-DXvaSETR.js → attributes-BJ7KBHql.js} +18 -11
  50. package/dist/cjs/{index-D-QQKB0y.js → index-5Azb8EQG.js} +1 -1
  51. package/dist/cjs/{index-BQjWfQXw.js → index-jl_Q819j.js} +1 -1
  52. package/dist/cjs/index.cjs.js +1 -1
  53. package/dist/cjs/keep-hydrated-CiXgkEYd.js +196 -0
  54. package/dist/cjs/loader.cjs.js +3 -3
  55. package/dist/cjs/mock-pds-modal.cjs.entry.js +3 -3
  56. package/dist/cjs/pds-accordion.cjs.entry.js +3 -3
  57. package/dist/cjs/pds-alert.cjs.entry.js +2 -2
  58. package/dist/cjs/pds-avatar.cjs.entry.js +3 -3
  59. package/dist/cjs/pds-box.cjs.entry.js +3 -3
  60. package/dist/cjs/pds-button.cjs.entry.js +3 -3
  61. package/dist/cjs/pds-checkbox.cjs.entry.js +4 -4
  62. package/dist/cjs/pds-chip.cjs.entry.js +4 -4
  63. package/dist/cjs/pds-combobox.cjs.entry.js +187 -28
  64. package/dist/cjs/pds-container.cjs.entry.js +3 -3
  65. package/dist/cjs/pds-copytext.cjs.entry.js +5 -5
  66. package/dist/cjs/pds-datepicker.cjs.entry.js +5 -5
  67. package/dist/cjs/pds-divider.cjs.entry.js +3 -3
  68. package/dist/cjs/pds-drawer-content.cjs.entry.js +3 -3
  69. package/dist/cjs/pds-drawer-footer.cjs.entry.js +3 -3
  70. package/dist/cjs/pds-drawer-header.cjs.entry.js +3 -3
  71. package/dist/cjs/pds-drawer.cjs.entry.js +25 -12
  72. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +3 -3
  73. package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +3 -3
  74. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +24 -12
  75. package/dist/cjs/pds-filter.cjs.entry.js +4 -4
  76. package/dist/cjs/pds-filters.cjs.entry.js +3 -3
  77. package/dist/cjs/pds-icon.cjs.entry.js +27 -4
  78. package/dist/cjs/pds-image.cjs.entry.js +4 -4
  79. package/dist/cjs/pds-input.cjs.entry.js +6 -6
  80. package/dist/cjs/pds-link.cjs.entry.js +5 -5
  81. package/dist/cjs/pds-loader.cjs.entry.js +4 -4
  82. package/dist/cjs/pds-modal-content.cjs.entry.js +4 -4
  83. package/dist/cjs/pds-modal-footer.cjs.entry.js +3 -3
  84. package/dist/cjs/pds-modal-header.cjs.entry.js +3 -3
  85. package/dist/cjs/pds-modal.cjs.entry.js +118 -33
  86. package/dist/cjs/pds-multiselect.cjs.entry.js +9 -8
  87. package/dist/cjs/pds-popover.cjs.entry.js +227 -37
  88. package/dist/cjs/pds-progress.cjs.entry.js +4 -4
  89. package/dist/cjs/pds-property.cjs.entry.js +3 -3
  90. package/dist/cjs/pds-radio-group.cjs.entry.js +6 -6
  91. package/dist/cjs/pds-radio.cjs.entry.js +7 -7
  92. package/dist/cjs/pds-row.cjs.entry.js +4 -4
  93. package/dist/cjs/pds-select.cjs.entry.js +5 -5
  94. package/dist/cjs/pds-sortable-item.cjs.entry.js +5 -5
  95. package/dist/cjs/pds-sortable.cjs.entry.js +4 -4
  96. package/dist/cjs/pds-switch.cjs.entry.js +7 -7
  97. package/dist/cjs/pds-tab.cjs.entry.js +13 -2
  98. package/dist/cjs/pds-table-body.cjs.entry.js +3 -3
  99. package/dist/cjs/pds-table-cell.cjs.entry.js +4 -4
  100. package/dist/cjs/pds-table-head-cell.cjs.entry.js +5 -5
  101. package/dist/cjs/pds-table-head.cjs.entry.js +3 -3
  102. package/dist/cjs/pds-table-row.cjs.entry.js +3 -3
  103. package/dist/cjs/pds-table.cjs.entry.js +2 -2
  104. package/dist/cjs/pds-tabpanel.cjs.entry.js +15 -3
  105. package/dist/cjs/pds-tabs.cjs.entry.js +111 -7
  106. package/dist/cjs/pds-text.cjs.entry.js +3 -3
  107. package/dist/cjs/pds-textarea.cjs.entry.js +8 -8
  108. package/dist/cjs/pds-toast.cjs.entry.js +5 -5
  109. package/dist/cjs/pds-tooltip.cjs.entry.js +4 -4
  110. package/dist/cjs/pine-core.cjs.js +3 -3
  111. package/dist/collection/components/pds-combobox/grouped-options-panel.js +21 -3
  112. package/dist/collection/components/pds-combobox/pds-combobox.css +42 -13
  113. package/dist/collection/components/pds-combobox/pds-combobox.js +166 -23
  114. package/dist/collection/components/pds-combobox/stories/pds-combobox.stories.js +45 -0
  115. package/dist/collection/components/pds-container/pds-container.js +1 -1
  116. package/dist/collection/components/pds-copytext/pds-copytext.js +1 -1
  117. package/dist/collection/components/pds-datepicker/pds-datepicker.js +2 -2
  118. package/dist/collection/components/pds-divider/pds-divider.js +1 -1
  119. package/dist/collection/components/pds-drawer/pds-drawer-content/pds-drawer-content.js +1 -1
  120. package/dist/collection/components/pds-drawer/pds-drawer-footer/pds-drawer-footer.js +1 -1
  121. package/dist/collection/components/pds-drawer/pds-drawer-header/pds-drawer-header.js +1 -1
  122. package/dist/collection/components/pds-drawer/pds-drawer.css +4 -1
  123. package/dist/collection/components/pds-drawer/pds-drawer.js +54 -17
  124. package/dist/collection/components/pds-drawer/stories/pds-drawer.stories.js +6 -1
  125. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js +1 -1
  126. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js +1 -1
  127. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.css +19 -5
  128. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +30 -9
  129. package/dist/collection/components/pds-filters/pds-filter/pds-filter.js +1 -1
  130. package/dist/collection/components/pds-filters/pds-filters.js +1 -1
  131. package/dist/collection/components/pds-image/pds-image.js +2 -2
  132. package/dist/collection/components/pds-input/pds-input.js +2 -2
  133. package/dist/collection/components/pds-link/pds-link.js +2 -2
  134. package/dist/collection/components/pds-loader/pds-loader.js +1 -1
  135. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js +2 -2
  136. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js +1 -1
  137. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js +1 -1
  138. package/dist/collection/components/pds-modal/pds-modal.js +117 -32
  139. package/dist/collection/components/pds-modal/test/mock-pds-modal.js +1 -1
  140. package/dist/collection/components/pds-multiselect/pds-multiselect.js +8 -7
  141. package/dist/collection/components/pds-popover/pds-popover.js +185 -35
  142. package/dist/collection/components/pds-progress/pds-progress.js +1 -1
  143. package/dist/collection/components/pds-property/pds-property.js +1 -1
  144. package/dist/collection/components/pds-radio/pds-radio.js +3 -3
  145. package/dist/collection/components/pds-radio-group/pds-radio-group.js +3 -3
  146. package/dist/collection/components/pds-row/pds-row.js +1 -1
  147. package/dist/collection/components/pds-select/pds-select.js +1 -1
  148. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +1 -1
  149. package/dist/collection/components/pds-sortable/pds-sortable.js +1 -1
  150. package/dist/collection/components/pds-switch/pds-switch.js +3 -3
  151. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js +1 -1
  152. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +2 -2
  153. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +1 -1
  154. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +2 -2
  155. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +1 -1
  156. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js +11 -0
  157. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +13 -1
  158. package/dist/collection/components/pds-tabs/pds-tabs.js +111 -7
  159. package/dist/collection/components/pds-text/pds-text.js +1 -1
  160. package/dist/collection/components/pds-textarea/pds-textarea.js +4 -4
  161. package/dist/collection/components/pds-toast/pds-toast.js +3 -3
  162. package/dist/collection/components/pds-tooltip/pds-tooltip.js +2 -2
  163. package/dist/collection/utils/attributes.js +18 -11
  164. package/dist/collection/utils/css.js +41 -0
  165. package/dist/collection/utils/keep-hydrated.js +133 -6
  166. package/dist/docs.json +56 -12
  167. package/dist/esm/{attributes-CF5K2pxn.js → attributes-WXw_I_uJ.js} +18 -11
  168. package/dist/esm/{index-DxI-61GK.js → index-BJXk71tO.js} +1 -1
  169. package/dist/esm/{index-2HMD-zUO.js → index-Cw9J31qd.js} +1 -1
  170. package/dist/esm/index.js +1 -1
  171. package/dist/esm/keep-hydrated-BLG6RDBt.js +190 -0
  172. package/dist/esm/loader.js +4 -4
  173. package/dist/esm/mock-pds-modal.entry.js +3 -3
  174. package/dist/esm/pds-accordion.entry.js +3 -3
  175. package/dist/esm/pds-alert.entry.js +2 -2
  176. package/dist/esm/pds-avatar.entry.js +3 -3
  177. package/dist/esm/pds-box.entry.js +3 -3
  178. package/dist/esm/pds-button.entry.js +3 -3
  179. package/dist/esm/pds-checkbox.entry.js +4 -4
  180. package/dist/esm/pds-chip.entry.js +4 -4
  181. package/dist/esm/pds-combobox.entry.js +187 -28
  182. package/dist/esm/pds-container.entry.js +3 -3
  183. package/dist/esm/pds-copytext.entry.js +5 -5
  184. package/dist/esm/pds-datepicker.entry.js +5 -5
  185. package/dist/esm/pds-divider.entry.js +3 -3
  186. package/dist/esm/pds-drawer-content.entry.js +3 -3
  187. package/dist/esm/pds-drawer-footer.entry.js +3 -3
  188. package/dist/esm/pds-drawer-header.entry.js +3 -3
  189. package/dist/esm/pds-drawer.entry.js +25 -12
  190. package/dist/esm/pds-dropdown-menu-item.entry.js +3 -3
  191. package/dist/esm/pds-dropdown-menu-separator.entry.js +3 -3
  192. package/dist/esm/pds-dropdown-menu.entry.js +24 -12
  193. package/dist/esm/pds-filter.entry.js +4 -4
  194. package/dist/esm/pds-filters.entry.js +3 -3
  195. package/dist/esm/pds-icon.entry.js +27 -4
  196. package/dist/esm/pds-image.entry.js +4 -4
  197. package/dist/esm/pds-input.entry.js +6 -6
  198. package/dist/esm/pds-link.entry.js +5 -5
  199. package/dist/esm/pds-loader.entry.js +4 -4
  200. package/dist/esm/pds-modal-content.entry.js +4 -4
  201. package/dist/esm/pds-modal-footer.entry.js +3 -3
  202. package/dist/esm/pds-modal-header.entry.js +3 -3
  203. package/dist/esm/pds-modal.entry.js +118 -33
  204. package/dist/esm/pds-multiselect.entry.js +9 -8
  205. package/dist/esm/pds-popover.entry.js +228 -38
  206. package/dist/esm/pds-progress.entry.js +4 -4
  207. package/dist/esm/pds-property.entry.js +3 -3
  208. package/dist/esm/pds-radio-group.entry.js +6 -6
  209. package/dist/esm/pds-radio.entry.js +7 -7
  210. package/dist/esm/pds-row.entry.js +4 -4
  211. package/dist/esm/pds-select.entry.js +5 -5
  212. package/dist/esm/pds-sortable-item.entry.js +5 -5
  213. package/dist/esm/pds-sortable.entry.js +4 -4
  214. package/dist/esm/pds-switch.entry.js +7 -7
  215. package/dist/esm/pds-tab.entry.js +13 -2
  216. package/dist/esm/pds-table-body.entry.js +3 -3
  217. package/dist/esm/pds-table-cell.entry.js +4 -4
  218. package/dist/esm/pds-table-head-cell.entry.js +5 -5
  219. package/dist/esm/pds-table-head.entry.js +3 -3
  220. package/dist/esm/pds-table-row.entry.js +3 -3
  221. package/dist/esm/pds-table.entry.js +2 -2
  222. package/dist/esm/pds-tabpanel.entry.js +15 -3
  223. package/dist/esm/pds-tabs.entry.js +111 -7
  224. package/dist/esm/pds-text.entry.js +3 -3
  225. package/dist/esm/pds-textarea.entry.js +8 -8
  226. package/dist/esm/pds-toast.entry.js +5 -5
  227. package/dist/esm/pds-tooltip.entry.js +4 -4
  228. package/dist/esm/pine-core.js +4 -4
  229. package/dist/esm-es5/attributes-WXw_I_uJ.js +1 -0
  230. package/dist/esm-es5/{index-2HMD-zUO.js → index-Cw9J31qd.js} +2 -2
  231. package/dist/esm-es5/index.js +1 -1
  232. package/dist/esm-es5/keep-hydrated-BLG6RDBt.js +1 -0
  233. package/dist/esm-es5/loader.js +1 -1
  234. package/dist/esm-es5/mock-pds-modal.entry.js +1 -1
  235. package/dist/esm-es5/pds-accordion.entry.js +1 -1
  236. package/dist/esm-es5/pds-alert.entry.js +1 -1
  237. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  238. package/dist/esm-es5/pds-box.entry.js +1 -1
  239. package/dist/esm-es5/pds-button.entry.js +1 -1
  240. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  241. package/dist/esm-es5/pds-chip.entry.js +1 -1
  242. package/dist/esm-es5/pds-combobox.entry.js +2 -2
  243. package/dist/esm-es5/pds-container.entry.js +1 -1
  244. package/dist/esm-es5/pds-copytext.entry.js +1 -1
  245. package/dist/esm-es5/pds-datepicker.entry.js +1 -1
  246. package/dist/esm-es5/pds-divider.entry.js +1 -1
  247. package/dist/esm-es5/pds-drawer-content.entry.js +1 -1
  248. package/dist/esm-es5/pds-drawer-footer.entry.js +1 -1
  249. package/dist/esm-es5/pds-drawer-header.entry.js +1 -1
  250. package/dist/esm-es5/pds-drawer.entry.js +1 -1
  251. package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -1
  252. package/dist/esm-es5/pds-dropdown-menu-separator.entry.js +1 -1
  253. package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
  254. package/dist/esm-es5/pds-filter.entry.js +1 -1
  255. package/dist/esm-es5/pds-filters.entry.js +1 -1
  256. package/dist/esm-es5/pds-icon.entry.js +1 -1
  257. package/dist/esm-es5/pds-image.entry.js +1 -1
  258. package/dist/esm-es5/pds-input.entry.js +1 -1
  259. package/dist/esm-es5/pds-link.entry.js +1 -1
  260. package/dist/esm-es5/pds-loader.entry.js +1 -1
  261. package/dist/esm-es5/pds-modal-content.entry.js +1 -1
  262. package/dist/esm-es5/pds-modal-footer.entry.js +1 -1
  263. package/dist/esm-es5/pds-modal-header.entry.js +1 -1
  264. package/dist/esm-es5/pds-modal.entry.js +1 -1
  265. package/dist/esm-es5/pds-multiselect.entry.js +1 -1
  266. package/dist/esm-es5/pds-popover.entry.js +1 -1
  267. package/dist/esm-es5/pds-progress.entry.js +1 -1
  268. package/dist/esm-es5/pds-property.entry.js +1 -1
  269. package/dist/esm-es5/pds-radio-group.entry.js +1 -1
  270. package/dist/esm-es5/pds-radio.entry.js +1 -1
  271. package/dist/esm-es5/pds-row.entry.js +1 -1
  272. package/dist/esm-es5/pds-select.entry.js +1 -1
  273. package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
  274. package/dist/esm-es5/pds-sortable.entry.js +2 -2
  275. package/dist/esm-es5/pds-switch.entry.js +1 -1
  276. package/dist/esm-es5/pds-tab.entry.js +1 -1
  277. package/dist/esm-es5/pds-table-body.entry.js +1 -1
  278. package/dist/esm-es5/pds-table-cell.entry.js +1 -1
  279. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  280. package/dist/esm-es5/pds-table-head.entry.js +1 -1
  281. package/dist/esm-es5/pds-table-row.entry.js +1 -1
  282. package/dist/esm-es5/pds-table.entry.js +1 -1
  283. package/dist/esm-es5/pds-tabpanel.entry.js +1 -1
  284. package/dist/esm-es5/pds-tabs.entry.js +1 -1
  285. package/dist/esm-es5/pds-text.entry.js +1 -1
  286. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  287. package/dist/esm-es5/pds-toast.entry.js +1 -1
  288. package/dist/esm-es5/pds-tooltip.entry.js +1 -1
  289. package/dist/esm-es5/pine-core.js +1 -1
  290. package/dist/pine-core/index.esm.js +1 -1
  291. package/dist/pine-core/{p-9a7ee7cb.system.entry.js → p-0092444c.system.entry.js} +1 -1
  292. package/dist/pine-core/{p-d576e542.system.entry.js → p-01aa382c.system.entry.js} +1 -1
  293. package/dist/pine-core/{p-d69cfaa4.entry.js → p-02088776.entry.js} +1 -1
  294. package/dist/pine-core/p-049f126a.entry.js +1 -0
  295. package/dist/pine-core/{p-8b9d8fb5.system.entry.js → p-080cb087.system.entry.js} +1 -1
  296. package/dist/pine-core/{p-99317375.system.entry.js → p-0913f696.system.entry.js} +1 -1
  297. package/dist/pine-core/{p-5737182f.entry.js → p-0a84d220.entry.js} +1 -1
  298. package/dist/pine-core/{p-4c9cccdb.system.entry.js → p-0b71ecb6.system.entry.js} +2 -2
  299. package/dist/pine-core/{p-37d73369.system.entry.js → p-1437585e.system.entry.js} +1 -1
  300. package/dist/pine-core/p-153ba77b.entry.js +1 -0
  301. package/dist/pine-core/{p-22f041ee.system.entry.js → p-1ee86d87.system.entry.js} +1 -1
  302. package/dist/pine-core/{p-5decd81f.entry.js → p-208c7dbf.entry.js} +1 -1
  303. package/dist/pine-core/p-21fe6ee1.system.entry.js +1 -0
  304. package/dist/pine-core/p-24fbbb74.system.entry.js +1 -0
  305. package/dist/pine-core/{p-51dff046.system.entry.js → p-258770cf.system.entry.js} +1 -1
  306. package/dist/pine-core/{p-1f2e5958.entry.js → p-258d5e83.entry.js} +1 -1
  307. package/dist/pine-core/{p-4e05a4f0.entry.js → p-26642718.entry.js} +1 -1
  308. package/dist/pine-core/{p-1b13f69c.system.entry.js → p-2ac2457b.system.entry.js} +1 -1
  309. package/dist/pine-core/p-2cb5483a.system.entry.js +1 -0
  310. package/dist/pine-core/{p-1f263c0b.system.entry.js → p-341c38f1.system.entry.js} +1 -1
  311. package/dist/pine-core/{p-bd7da23e.system.entry.js → p-3a959459.system.entry.js} +1 -1
  312. package/dist/pine-core/{p-1e464117.entry.js → p-432d5ec7.entry.js} +1 -1
  313. package/dist/pine-core/{p-0de74105.entry.js → p-4849fda7.entry.js} +1 -1
  314. package/dist/pine-core/{p-f30d6192.system.entry.js → p-4d03d1e2.system.entry.js} +1 -1
  315. package/dist/pine-core/{p-2cb02706.entry.js → p-4de8f333.entry.js} +1 -1
  316. package/dist/pine-core/{p-152245fa.system.entry.js → p-4f94b4f1.system.entry.js} +1 -1
  317. package/dist/pine-core/{p-66cfef6d.system.entry.js → p-4fa63723.system.entry.js} +1 -1
  318. package/dist/pine-core/p-4fd454f6.entry.js +1 -0
  319. package/dist/pine-core/{p-70c6f0ed.system.entry.js → p-5442d983.system.entry.js} +1 -1
  320. package/dist/pine-core/{p-8027db25.entry.js → p-550c2fd3.entry.js} +1 -1
  321. package/dist/pine-core/{p-7d01e719.entry.js → p-55224683.entry.js} +1 -1
  322. package/dist/pine-core/{p-65e30a4c.entry.js → p-57a2f927.entry.js} +1 -1
  323. package/dist/pine-core/{p-721297b5.system.entry.js → p-5870b092.system.entry.js} +1 -1
  324. package/dist/pine-core/p-5a10784e.system.entry.js +3 -0
  325. package/dist/pine-core/{p-6d83ad2d.system.entry.js → p-5c90091e.system.entry.js} +1 -1
  326. package/dist/pine-core/p-602c197f.entry.js +1 -0
  327. package/dist/pine-core/{p-45fcc5b7.entry.js → p-6bf853c9.entry.js} +1 -1
  328. package/dist/pine-core/{p-5d014059.entry.js → p-6d3610f9.entry.js} +1 -1
  329. package/dist/pine-core/{p-343546b1.system.entry.js → p-6eec23a7.system.entry.js} +1 -1
  330. package/dist/pine-core/{p-5132b8a1.entry.js → p-72865997.entry.js} +1 -1
  331. package/dist/pine-core/p-74a05bcc.entry.js +1 -0
  332. package/dist/pine-core/p-75ee0403.entry.js +1 -0
  333. package/dist/pine-core/p-77395d62.system.entry.js +1 -0
  334. package/dist/pine-core/p-7a287635.system.entry.js +1 -0
  335. package/dist/pine-core/p-7a5b21d2.system.entry.js +1 -0
  336. package/dist/pine-core/{p-a83a6618.system.entry.js → p-7bf6563a.system.entry.js} +1 -1
  337. package/dist/pine-core/{p-71e3a89e.system.entry.js → p-8191498f.system.entry.js} +1 -1
  338. package/dist/pine-core/{p-0166c620.entry.js → p-82cf4ec6.entry.js} +1 -1
  339. package/dist/pine-core/{p-16c2aa63.entry.js → p-84e9b7da.entry.js} +1 -1
  340. package/dist/pine-core/{p-bdf68e53.system.entry.js → p-86040cac.system.entry.js} +1 -1
  341. package/dist/pine-core/p-875b0436.system.entry.js +1 -0
  342. package/dist/pine-core/{p-87f91e02.system.entry.js → p-8c8cc079.system.entry.js} +1 -1
  343. package/dist/pine-core/{p-ba1b79c7.system.entry.js → p-8cc302aa.system.entry.js} +1 -1
  344. package/dist/pine-core/{p-5b7f7760.entry.js → p-8d292b48.entry.js} +1 -1
  345. package/dist/pine-core/{p-650ccffb.entry.js → p-8f531063.entry.js} +1 -1
  346. package/dist/pine-core/p-9109b90a.entry.js +1 -0
  347. package/dist/pine-core/p-92ae6082.entry.js +1 -0
  348. package/dist/pine-core/p-94593f20.system.entry.js +1 -0
  349. package/dist/pine-core/p-945fb0b1.entry.js +1 -0
  350. package/dist/pine-core/{p-04fe5da7.system.entry.js → p-9880d251.system.entry.js} +1 -1
  351. package/dist/pine-core/p-99459e27.entry.js +1 -0
  352. package/dist/pine-core/{p-9835c74b.entry.js → p-9ab95438.entry.js} +1 -1
  353. package/dist/pine-core/{p-a6d09102.system.entry.js → p-9af131d6.system.entry.js} +1 -1
  354. package/dist/pine-core/{p-59491f98.entry.js → p-9dcd2cdb.entry.js} +1 -1
  355. package/dist/pine-core/{p-c00e46a5.system.entry.js → p-9e0f920a.system.entry.js} +1 -1
  356. package/dist/pine-core/p-BGLP3keB.js +1 -0
  357. package/dist/pine-core/p-BLG6RDBt.js +1 -0
  358. package/dist/pine-core/p-BR5nujVX.system.js +1 -0
  359. package/dist/pine-core/{p-BJlg6wq7.system.js → p-CGRdQc49.system.js} +2 -2
  360. package/dist/pine-core/{p-DeIDZHrg.js → p-CmSJytt1.js} +2 -2
  361. package/dist/pine-core/p-CuSNnuFu.system.js +1 -0
  362. package/dist/pine-core/{p-YQa3CeL9.system.js → p-Cy8cvR7I.system.js} +1 -1
  363. package/dist/pine-core/p-XW4H0W6i.system.js +1 -0
  364. package/dist/pine-core/p-a0344e30.entry.js +2 -0
  365. package/dist/pine-core/p-a0960b3d.system.entry.js +1 -0
  366. package/dist/pine-core/p-a1230a74.system.entry.js +1 -0
  367. package/dist/pine-core/{p-fbea5703.entry.js → p-a19cd59c.entry.js} +1 -1
  368. package/dist/pine-core/p-a787b34a.system.entry.js +1 -0
  369. package/dist/pine-core/p-a826f290.entry.js +1 -0
  370. package/dist/pine-core/{p-1ec4eeaf.system.entry.js → p-a85a6ab9.system.entry.js} +1 -1
  371. package/dist/pine-core/p-acce8eb2.entry.js +1 -0
  372. package/dist/pine-core/p-b1548a20.entry.js +1 -0
  373. package/dist/pine-core/p-b60ac7eb.system.entry.js +1 -0
  374. package/dist/pine-core/{p-93877d4a.entry.js → p-b69f04b7.entry.js} +1 -1
  375. package/dist/pine-core/p-b75b0d09.system.entry.js +1 -0
  376. package/dist/pine-core/{p-02857936.entry.js → p-b8e8a4ce.entry.js} +1 -1
  377. package/dist/pine-core/{p-622e91e3.entry.js → p-b914dde8.entry.js} +2 -2
  378. package/dist/pine-core/{p-5bc670be.system.entry.js → p-ba1f65c2.system.entry.js} +1 -1
  379. package/dist/pine-core/p-bb68431a.entry.js +1 -0
  380. package/dist/pine-core/{p-c8e89b61.system.entry.js → p-bd67156b.system.entry.js} +1 -1
  381. package/dist/pine-core/{p-db4319fd.entry.js → p-beb23781.entry.js} +1 -1
  382. package/dist/pine-core/p-bf30dec0.entry.js +1 -0
  383. package/dist/pine-core/p-bf5887e8.system.entry.js +1 -0
  384. package/dist/pine-core/{p-91f712f4.system.entry.js → p-bf7ee3b7.system.entry.js} +1 -1
  385. package/dist/pine-core/{p-b5838211.system.entry.js → p-c5c9ed36.system.entry.js} +1 -1
  386. package/dist/pine-core/{p-21115986.system.entry.js → p-cb6a3e4c.system.entry.js} +1 -1
  387. package/dist/pine-core/{p-1cf1fced.entry.js → p-cde8eb81.entry.js} +1 -1
  388. package/dist/pine-core/{p-1d75a9b1.system.entry.js → p-cf08a6dd.system.entry.js} +1 -1
  389. package/dist/pine-core/p-cfd012d4.entry.js +1 -0
  390. package/dist/pine-core/{p-5e8d73d4.entry.js → p-d2c91e7a.entry.js} +1 -1
  391. package/dist/pine-core/{p-7bbfb965.system.entry.js → p-db17c626.system.entry.js} +1 -1
  392. package/dist/pine-core/p-e0917a26.entry.js +1 -0
  393. package/dist/pine-core/p-e21ff692.entry.js +1 -0
  394. package/dist/pine-core/p-e5420660.entry.js +1 -0
  395. package/dist/pine-core/{p-585832b1.entry.js → p-e800a2b1.entry.js} +1 -1
  396. package/dist/pine-core/{p-8b0fbeb3.entry.js → p-e836a041.entry.js} +1 -1
  397. package/dist/pine-core/{p-506d3e80.entry.js → p-e8cb76e8.entry.js} +1 -1
  398. package/dist/pine-core/p-ea4d4741.system.entry.js +1 -0
  399. package/dist/pine-core/{p-419f57c9.entry.js → p-eb5465ce.entry.js} +1 -1
  400. package/dist/pine-core/{p-63119d23.entry.js → p-ebd0bff2.entry.js} +1 -1
  401. package/dist/pine-core/p-f029b7da.system.entry.js +1 -0
  402. package/dist/pine-core/{p-e337f32c.system.entry.js → p-f0d24298.system.entry.js} +1 -1
  403. package/dist/pine-core/{p-9b9f66b7.entry.js → p-f1702281.entry.js} +1 -1
  404. package/dist/pine-core/{p-238e5171.system.entry.js → p-f25e4731.system.entry.js} +1 -1
  405. package/dist/pine-core/{p-37d95be9.entry.js → p-f2c253d8.entry.js} +1 -1
  406. package/dist/pine-core/{p-a22091c4.system.entry.js → p-f77905aa.system.entry.js} +1 -1
  407. package/dist/pine-core/{p-bef04e15.system.entry.js → p-fc25b956.system.entry.js} +1 -1
  408. package/dist/pine-core/{p-f06ca8df.entry.js → p-ff3de72e.entry.js} +1 -1
  409. package/dist/pine-core/pine-core.esm.js +1 -1
  410. package/dist/pine-core/pine-core.js +1 -1
  411. package/dist/types/components/pds-combobox/combobox-interface.d.ts +8 -1
  412. package/dist/types/components/pds-combobox/grouped-options-panel.d.ts +7 -1
  413. package/dist/types/components/pds-combobox/pds-combobox.d.ts +32 -0
  414. package/dist/types/components/pds-drawer/pds-drawer.d.ts +21 -9
  415. package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu.d.ts +5 -0
  416. package/dist/types/components/pds-modal/pds-modal.d.ts +10 -3
  417. package/dist/types/components/pds-multiselect/pds-multiselect.d.ts +2 -1
  418. package/dist/types/components/pds-popover/pds-popover.d.ts +31 -1
  419. package/dist/types/components/pds-tabs/pds-tab/pds-tab.d.ts +3 -0
  420. package/dist/types/components/pds-tabs/pds-tabpanel/pds-tabpanel.d.ts +3 -0
  421. package/dist/types/components/pds-tabs/pds-tabs.d.ts +14 -2
  422. package/dist/types/components.d.ts +50 -35
  423. package/dist/types/utils/attributes.d.ts +2 -2
  424. package/dist/types/utils/css.d.ts +7 -0
  425. package/dist/types/utils/keep-hydrated.d.ts +29 -2
  426. package/dist/vscode.html-data.json +13 -6
  427. package/hydrate/index.js +961 -213
  428. package/hydrate/index.mjs +961 -213
  429. package/package.json +2 -2
  430. package/dist/cjs/keep-hydrated-iLS88j1Z.js +0 -67
  431. package/dist/esm/keep-hydrated-Dv7ssOTc.js +0 -63
  432. package/dist/esm-es5/attributes-CF5K2pxn.js +0 -1
  433. package/dist/esm-es5/keep-hydrated-Dv7ssOTc.js +0 -1
  434. package/dist/pine-core/p-1cd0acf0.system.entry.js +0 -1
  435. package/dist/pine-core/p-207c94da.entry.js +0 -1
  436. package/dist/pine-core/p-2357758d.system.entry.js +0 -1
  437. package/dist/pine-core/p-281efc69.entry.js +0 -1
  438. package/dist/pine-core/p-2ac9e90a.system.entry.js +0 -1
  439. package/dist/pine-core/p-2f539379.system.entry.js +0 -3
  440. package/dist/pine-core/p-347ae53c.system.entry.js +0 -1
  441. package/dist/pine-core/p-34b575b6.entry.js +0 -2
  442. package/dist/pine-core/p-3b1d8fae.entry.js +0 -1
  443. package/dist/pine-core/p-4414d442.system.entry.js +0 -1
  444. package/dist/pine-core/p-4e67e68e.entry.js +0 -1
  445. package/dist/pine-core/p-539ef98c.entry.js +0 -1
  446. package/dist/pine-core/p-56576b6e.entry.js +0 -1
  447. package/dist/pine-core/p-5ac84b2f.entry.js +0 -1
  448. package/dist/pine-core/p-63854c10.system.entry.js +0 -1
  449. package/dist/pine-core/p-73bc6e9f.system.entry.js +0 -1
  450. package/dist/pine-core/p-798839f7.system.entry.js +0 -1
  451. package/dist/pine-core/p-7e115d33.system.entry.js +0 -1
  452. package/dist/pine-core/p-834c678e.system.entry.js +0 -1
  453. package/dist/pine-core/p-912487fa.entry.js +0 -1
  454. package/dist/pine-core/p-969488f5.system.entry.js +0 -1
  455. package/dist/pine-core/p-9bcdfac2.entry.js +0 -1
  456. package/dist/pine-core/p-9d33bb05.entry.js +0 -1
  457. package/dist/pine-core/p-BMFBF3sJ.system.js +0 -1
  458. package/dist/pine-core/p-D2MUS7JO.js +0 -1
  459. package/dist/pine-core/p-D2yHYrxQ.system.js +0 -1
  460. package/dist/pine-core/p-Dv7ssOTc.js +0 -1
  461. package/dist/pine-core/p-TyevV8iv.system.js +0 -1
  462. package/dist/pine-core/p-afd5e2d7.entry.js +0 -1
  463. package/dist/pine-core/p-bde53290.system.entry.js +0 -1
  464. package/dist/pine-core/p-bf1aea9f.system.entry.js +0 -1
  465. package/dist/pine-core/p-c9395f43.system.entry.js +0 -1
  466. package/dist/pine-core/p-d5dd5599.entry.js +0 -1
  467. package/dist/pine-core/p-dc81ffff.entry.js +0 -1
  468. package/dist/pine-core/p-e46f7541.system.entry.js +0 -1
  469. package/dist/pine-core/p-e7ba30dd.system.entry.js +0 -1
  470. package/dist/pine-core/p-ed3dd3d2.entry.js +0 -1
  471. package/dist/pine-core/p-eee4f146.entry.js +0 -1
  472. package/dist/pine-core/p-f01e35e2.entry.js +0 -1
  473. package/dist/pine-core/p-f2e0da9a.entry.js +0 -1
  474. package/dist/pine-core/p-fc6ac917.entry.js +0 -1
  475. package/dist/pine-core/p-ffe276ef.entry.js +0 -1
  476. /package/dist/esm-es5/{index-DxI-61GK.js → index-BJXk71tO.js} +0 -0
  477. /package/dist/pine-core/{p-DxI-61GK.js → p-BJXk71tO.js} +0 -0
  478. /package/dist/pine-core/{p-CnO10OxH.system.js → p-n3_ytl_p.system.js} +0 -0
@@ -1,13 +1,65 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-BQjWfQXw.js');
3
+ var index = require('./index-jl_Q819j.js');
4
4
  var closest = require('./closest-D0qyYtJ3.js');
5
5
  var reflectedAttributeDefault = require('./reflected-attribute-default-DVYHG6O1.js');
6
- var attributes = require('./attributes-DXvaSETR.js');
7
- require('./keep-hydrated-iLS88j1Z.js');
6
+ var attributes = require('./attributes-BJ7KBHql.js');
7
+ var keepHydrated = require('./keep-hydrated-CiXgkEYd.js');
8
+
9
+ /**
10
+ * Escapes a string so it's safe to interpolate into a CSS identifier (an id selector like `#${id}`)
11
+ * or into CSS text (a stylesheet rule referencing that id). Equivalent to the native `CSS.escape`,
12
+ * reimplemented because Stencil's unit-test DOM (`newSpecPage`'s mock-doc) doesn't provide it.
13
+ * @param value - The string to escape, e.g. a consumer-supplied id
14
+ */
15
+ const cssEscape = (value) => {
16
+ const string = String(value);
17
+ const length = string.length;
18
+ const firstCodeUnit = string.charCodeAt(0);
19
+ let result = '';
20
+ for (let index = 0; index < length; index++) {
21
+ const codeUnit = string.charCodeAt(index);
22
+ if (codeUnit === 0x0000) {
23
+ result += '�';
24
+ continue;
25
+ }
26
+ if ((codeUnit >= 0x0001 && codeUnit <= 0x001f) ||
27
+ codeUnit === 0x007f ||
28
+ (index === 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||
29
+ (index === 1 && codeUnit >= 0x0030 && codeUnit <= 0x0039 && firstCodeUnit === 0x002d)) {
30
+ result += `\\${codeUnit.toString(16)} `;
31
+ continue;
32
+ }
33
+ if (index === 0 && length === 1 && codeUnit === 0x002d) {
34
+ result += `\\${string.charAt(index)}`;
35
+ continue;
36
+ }
37
+ if (codeUnit >= 0x0080 ||
38
+ codeUnit === 0x002d ||
39
+ codeUnit === 0x005f ||
40
+ (codeUnit >= 0x0030 && codeUnit <= 0x0039) ||
41
+ (codeUnit >= 0x0041 && codeUnit <= 0x005a) ||
42
+ (codeUnit >= 0x0061 && codeUnit <= 0x007a)) {
43
+ result += string.charAt(index);
44
+ continue;
45
+ }
46
+ result += `\\${string.charAt(index)}`;
47
+ }
48
+ return result;
49
+ };
8
50
 
9
51
  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}`;
10
52
 
53
+ /** Open auto popovers, in the order they opened: Escape goes to the last one it applies to. */
54
+ const openAutoPopovers = [];
55
+ /** The focused element, followed down through shadow roots to the control that has focus. */
56
+ function deepActiveElement() {
57
+ var _a;
58
+ let active = document.activeElement;
59
+ while ((_a = active === null || active === void 0 ? void 0 : active.shadowRoot) === null || _a === void 0 ? void 0 : _a.activeElement)
60
+ active = active.shadowRoot.activeElement;
61
+ return active;
62
+ }
11
63
  const PdsPopover = class {
12
64
  constructor(hostRef) {
13
65
  index.registerInstance(this, hostRef);
@@ -39,7 +91,7 @@ const PdsPopover = class {
39
91
  */
40
92
  this.triggerObserver = null;
41
93
  /**
42
- * Portal element rendered in document.body
94
+ * Portal element: in document.body, or in the open dialog the popover is in
43
95
  */
44
96
  this.portalEl = null;
45
97
  /**
@@ -135,6 +187,26 @@ const PdsPopover = class {
135
187
  break;
136
188
  }
137
189
  };
190
+ /** The focus style copied into a shadow root the panel opened in, which `document.head` can't reach. */
191
+ this.shadowFocusStyle = null;
192
+ /** The dialog the panel was opened in, closed along with it. */
193
+ this.watchedDialog = null;
194
+ this.onDialogClose = () => {
195
+ this.hide();
196
+ };
197
+ /**
198
+ * Inside a dialog, the panel can sit in a form that wraps the dialog, which a body portal never
199
+ * did. A submit from the panel (a button in it, or Enter in a field in it) is stopped, so the
200
+ * panel behaves as it does in the body.
201
+ */
202
+ this.handleSubmitFromPanel = (event) => {
203
+ if (!this.portalEl || !closest.containsComposed(event.target, this.portalEl))
204
+ return;
205
+ if (closest.containsComposed(this.portalEl, event.submitter) || closest.containsComposed(this.portalEl, deepActiveElement())) {
206
+ event.preventDefault();
207
+ event.stopPropagation();
208
+ }
209
+ };
138
210
  }
139
211
  restorePlacementDefault(newValue) {
140
212
  this.placement = reflectedAttributeDefault.restoreReflectedDefault(this.el, 'placement', newValue, 'right');
@@ -171,7 +243,8 @@ const PdsPopover = class {
171
243
  this.triggerObserver = null;
172
244
  if (this.triggerEl == null || typeof MutationObserver === 'undefined')
173
245
  return;
174
- this.triggerObserver = new MutationObserver(() => this.linkTriggerToPortal());
246
+ // Capped against a script that keeps undoing it; opening and closing still write it directly.
247
+ this.triggerObserver = new MutationObserver(keepHydrated.limitRestores(() => this.linkTriggerToPortal(), 'pds-popover: stopped restoring its trigger ARIA, as another script keeps changing it. It may be wrong until the popover opens or closes.', this.triggerEl));
175
248
  this.triggerObserver.observe(this.triggerEl, {
176
249
  attributes: true,
177
250
  attributeFilter: ['aria-expanded', 'aria-controls'],
@@ -181,9 +254,9 @@ const PdsPopover = class {
181
254
  // This mirrors the native Popover API's accessibility behavior
182
255
  linkTriggerToPortal() {
183
256
  if (this.triggerEl == null || this.portalEl == null)
184
- return;
257
+ return false;
185
258
  // Skips values already in place, so the trigger observer's own callback doesn't loop.
186
- attributes.setAttributesIfChanged(this.triggerEl, { 'aria-expanded': String(this.active), 'aria-controls': this.portalEl.id });
259
+ return attributes.setAttributesIfChanged(this.triggerEl, { 'aria-expanded': String(this.active), 'aria-controls': this.portalEl.id });
187
260
  }
188
261
  // componentDidLoad doesn't run again when a popover comes back, so rebuild whatever
189
262
  // disconnectedCallback tore down. Each step is a no-op when nothing was.
@@ -196,19 +269,23 @@ const PdsPopover = class {
196
269
  (_a = this.triggerEl) === null || _a === void 0 ? void 0 : _a.addEventListener('click', this.handleTriggerClick);
197
270
  this.observeTrigger();
198
271
  this.linkTriggerToPortal();
199
- // Still open after a move: the trigger moved, so the portal follows it.
272
+ // Still open after a move: the trigger moved, so the portal follows it, into the dialog it
273
+ // is in now, if any.
200
274
  if (this.active) {
275
+ this.placePortal();
201
276
  requestAnimationFrame(() => this.handlePopoverPositioning());
202
277
  }
203
278
  }
204
279
  disconnectedCallback() {
205
280
  var _a;
206
281
  // Moved in one operation (a DOM morph, or a framework reparenting it), the popover is
207
- // already back in the page. Its portal is in <body>, untouched, so it stays open, with focus
208
- // where it was.
282
+ // already back in the page. Its portal is outside the popover, so it stays open, with focus
283
+ // where it was; connectedCallback moves it to follow the popover.
209
284
  if (this.el.isConnected)
210
285
  return;
211
286
  this.isComponentMounted = false;
287
+ this.unwatchDialogClose();
288
+ this.forgetOpen();
212
289
  // Open, the content sits in the portal; put it back before the portal goes. Only listeners on
213
290
  // the popover itself hear the close event now, but those are the ones mirroring its state.
214
291
  if (this.active) {
@@ -229,6 +306,7 @@ const PdsPopover = class {
229
306
  // Clean up all event listeners
230
307
  this.removeLightDismissListeners();
231
308
  this.removeScrollAndResizeListeners();
309
+ document.removeEventListener('submit', this.handleSubmitFromPanel, true);
232
310
  // Clear any pending debounce timers
233
311
  this.clearDebounceTimers();
234
312
  // Remove portal from DOM
@@ -273,9 +351,6 @@ const PdsPopover = class {
273
351
  else {
274
352
  this.portalEl.id = `${this.componentId}-portal`;
275
353
  }
276
- // Add accessibility attributes for screen readers
277
- // Note: Native Popover API doesn't add a specific role, keeping semantic HTML
278
- this.portalEl.setAttribute('aria-modal', 'false'); // Not a modal, can interact with rest of page
279
354
  // Append to body
280
355
  document.body.appendChild(this.portalEl);
281
356
  // Add global focus styles to match Pine design system
@@ -290,22 +365,25 @@ const PdsPopover = class {
290
365
  if (!this.portalEl)
291
366
  return;
292
367
  const portalId = this.portalEl.id;
368
+ // componentId comes from the consumer, so it can carry characters cssEscape needs to
369
+ // neutralize before the id is used as a selector or interpolated into stylesheet text.
370
+ const escapedPortalId = cssEscape(portalId);
293
371
  // Check if style element already exists
294
- const existingStyle = document.querySelector(`style[data-pds-popover-focus="${portalId}"]`);
372
+ const existingStyle = document.querySelector(`style[data-pds-popover-focus="${escapedPortalId}"]`);
295
373
  if (existingStyle)
296
374
  return;
297
375
  // Create style element with Pine's focus ring styles and dark mode border
298
376
  const styleEl = document.createElement('style');
299
377
  styleEl.setAttribute('data-pds-popover-focus', portalId);
300
378
  styleEl.textContent = `
301
- #${portalId}:focus {
379
+ #${escapedPortalId}:focus {
302
380
  outline: var(--pine-outline-focus, 2px solid var(--pine-color-focus-ring, #6366f1)) !important;
303
381
  outline-offset: var(--pine-border-width, 1px);
304
382
  }
305
- #${portalId}:focus:not(:focus-visible) {
383
+ #${escapedPortalId}:focus:not(:focus-visible) {
306
384
  outline: none;
307
385
  }
308
- [data-theme="dark"] #${portalId} {
386
+ [data-theme="dark"] #${escapedPortalId} {
309
387
  border: var(--pine-border);
310
388
  }
311
389
  `;
@@ -356,7 +434,27 @@ const PdsPopover = class {
356
434
  // Clear tracking array
357
435
  this.movedNodes = [];
358
436
  }
437
+ copyFocusStylesInto(root) {
438
+ var _a, _b, _c;
439
+ // Outside a shadow root the document's own style applies, so drop a copy left in one.
440
+ if (!(root instanceof ShadowRoot)) {
441
+ (_a = this.shadowFocusStyle) === null || _a === void 0 ? void 0 : _a.remove();
442
+ this.shadowFocusStyle = null;
443
+ return;
444
+ }
445
+ if (((_b = this.shadowFocusStyle) === null || _b === void 0 ? void 0 : _b.parentNode) === root || !this.portalEl)
446
+ return;
447
+ const source = document.querySelector(`style[data-pds-popover-focus="${cssEscape(this.portalEl.id)}"]`);
448
+ if (!source)
449
+ return;
450
+ (_c = this.shadowFocusStyle) === null || _c === void 0 ? void 0 : _c.remove();
451
+ this.shadowFocusStyle = source.cloneNode(true);
452
+ root.appendChild(this.shadowFocusStyle);
453
+ }
359
454
  removePortal() {
455
+ var _a;
456
+ (_a = this.shadowFocusStyle) === null || _a === void 0 ? void 0 : _a.remove();
457
+ this.shadowFocusStyle = null;
360
458
  if (this.portalEl) {
361
459
  // Remove the portal element from DOM
362
460
  if (this.portalEl.parentNode) {
@@ -364,7 +462,7 @@ const PdsPopover = class {
364
462
  }
365
463
  // Remove the associated focus style element
366
464
  const portalId = this.portalEl.id;
367
- const styleEl = document.querySelector(`style[data-pds-popover-focus="${portalId}"]`);
465
+ const styleEl = document.querySelector(`style[data-pds-popover-focus="${cssEscape(portalId)}"]`);
368
466
  if (styleEl && styleEl.parentNode) {
369
467
  styleEl.parentNode.removeChild(styleEl);
370
468
  }
@@ -381,9 +479,13 @@ const PdsPopover = class {
381
479
  // Record open timestamp to prevent immediate close from opening click
382
480
  this.openTimestamp = Date.now();
383
481
  this.linkTriggerToPortal();
482
+ this.placePortal();
384
483
  // Update portal content with latest slot content
385
484
  this.updatePortalContent();
386
- // Show portal
485
+ // Show portal. The attribute tells a modal around it that this popover takes Escape first; only
486
+ // an auto popover listens for Escape.
487
+ if (this.popoverType === 'auto')
488
+ this.portalEl.setAttribute('data-pds-popover-open', '');
387
489
  this.portalEl.style.display = 'block';
388
490
  this.portalEl.style.opacity = '1';
389
491
  this.portalEl.style.visibility = 'visible';
@@ -395,8 +497,10 @@ const PdsPopover = class {
395
497
  });
396
498
  // Add scroll and resize listeners for repositioning (always)
397
499
  this.addScrollAndResizeListeners();
500
+ document.addEventListener('submit', this.handleSubmitFromPanel, true);
398
501
  // Add document listeners for light dismiss and escape key (auto type only)
399
502
  if (this.popoverType === 'auto') {
503
+ openAutoPopovers.push(this);
400
504
  this.addLightDismissListeners();
401
505
  }
402
506
  // Emit open event
@@ -412,12 +516,16 @@ const PdsPopover = class {
412
516
  if (!this.active || !this.portalEl)
413
517
  return;
414
518
  this.active = false;
415
- // Restoring the content drops its focus to the body, so check where focus is first.
416
- const focusWasInside = this.portalEl.contains(document.activeElement);
519
+ this.unwatchDialogClose();
520
+ // Restoring the content drops its focus to the body, so check where focus is first. In a
521
+ // shadow root, document.activeElement is only its host.
522
+ const focusWasInside = closest.containsComposed(this.portalEl, deepActiveElement());
417
523
  this.linkTriggerToPortal();
418
524
  // Restore content back to original slot positions
419
525
  this.restorePortalContent();
420
- // Hide portal
526
+ // Hide portal. The dark-mode border set in a shadow root is worked out again on the next open.
527
+ this.portalEl.style.border = '';
528
+ this.portalEl.removeAttribute('data-pds-popover-open');
421
529
  this.portalEl.style.display = 'none';
422
530
  this.portalEl.style.opacity = '0';
423
531
  this.portalEl.style.visibility = 'hidden';
@@ -427,8 +535,10 @@ const PdsPopover = class {
427
535
  this.returnFocusToTrigger();
428
536
  }
429
537
  // Remove all listeners
538
+ this.forgetOpen();
430
539
  this.removeLightDismissListeners();
431
540
  this.removeScrollAndResizeListeners();
541
+ document.removeEventListener('submit', this.handleSubmitFromPanel, true);
432
542
  // Clear any pending timers
433
543
  this.clearDebounceTimers();
434
544
  // Emit close event
@@ -448,6 +558,59 @@ const PdsPopover = class {
448
558
  this.show();
449
559
  }
450
560
  }
561
+ /**
562
+ * Puts the panel where it shows above everything around the popover. In an open dialog, it goes
563
+ * inside it: a modal dialog sits in the top layer above the body and makes the rest of the page
564
+ * inert, and a non-modal one sits above it by z-index. Right after the popover, it's next in the
565
+ * Tab order. In another component's slot, though, it would have no slot to render in, and in a
566
+ * form its buttons would submit it, so there it goes at the end of the dialog.
567
+ */
568
+ placePortal() {
569
+ var _a, _b;
570
+ if (!this.portalEl)
571
+ return;
572
+ const dialog = closest.closest('dialog[open]', this.el);
573
+ if (!dialog) {
574
+ this.unwatchDialogClose();
575
+ this.portalEl.style.border = '';
576
+ if (this.portalEl.parentElement !== document.body)
577
+ document.body.appendChild(this.portalEl);
578
+ this.copyFocusStylesInto(document);
579
+ return;
580
+ }
581
+ const form = closest.closest('form', this.el);
582
+ const besidePopover = !((_a = this.el.parentElement) === null || _a === void 0 ? void 0 : _a.shadowRoot) && !(form && closest.containsComposed(dialog, form));
583
+ if (besidePopover) {
584
+ if (this.el.nextElementSibling !== this.portalEl)
585
+ (_b = this.el.parentNode) === null || _b === void 0 ? void 0 : _b.insertBefore(this.portalEl, this.el.nextSibling);
586
+ }
587
+ else if (this.portalEl.parentNode !== dialog) {
588
+ dialog.appendChild(this.portalEl);
589
+ }
590
+ this.watchDialogClose(dialog);
591
+ const root = this.portalEl.getRootNode();
592
+ this.copyFocusStylesInto(root);
593
+ // In a shadow root, the copied dark-mode rule can't see a [data-theme="dark"] on the page.
594
+ this.portalEl.style.border = root instanceof ShadowRoot && closest.closest('[data-theme="dark"]', this.el) ? 'var(--pine-border)' : '';
595
+ }
596
+ forgetOpen() {
597
+ const index = openAutoPopovers.indexOf(this);
598
+ if (index >= 0)
599
+ openAutoPopovers.splice(index, 1);
600
+ }
601
+ /**
602
+ * Whether an Escape is this popover's. One from a dialog the popover isn't in belongs to that
603
+ * dialog when it's above it: a top-layer dialog or a pds-modal. A plain non-modal dialog inside
604
+ * the popover's modal doesn't close on Escape, so the popover takes it.
605
+ */
606
+ takesEscapeFrom(event) {
607
+ var _a, _b;
608
+ const origin = ((_b = (_a = event.composedPath) === null || _a === void 0 ? void 0 : _a.call(event)[0]) !== null && _b !== void 0 ? _b : event.target);
609
+ const dialog = closest.closest('dialog[open]', origin);
610
+ if (!dialog || closest.containsComposed(dialog, this.portalEl))
611
+ return true;
612
+ return !(dialog.classList.contains('pds-modal__backdrop') || dialog.matches(':modal'));
613
+ }
451
614
  /**
452
615
  * Adds light dismiss listeners (click outside and escape key)
453
616
  */
@@ -456,6 +619,19 @@ const PdsPopover = class {
456
619
  document.addEventListener('click', this.boundClickOutsideHandler, true);
457
620
  document.addEventListener('keydown', this.boundEscapeKeyHandler);
458
621
  }
622
+ /** Closes the popover when the dialog it opened in closes, so it isn't left open inside. */
623
+ watchDialogClose(dialog) {
624
+ if (this.watchedDialog === dialog)
625
+ return;
626
+ this.unwatchDialogClose();
627
+ this.watchedDialog = dialog;
628
+ dialog.addEventListener('close', this.onDialogClose);
629
+ }
630
+ unwatchDialogClose() {
631
+ var _a;
632
+ (_a = this.watchedDialog) === null || _a === void 0 ? void 0 : _a.removeEventListener('close', this.onDialogClose);
633
+ this.watchedDialog = null;
634
+ }
459
635
  /**
460
636
  * Removes light dismiss listeners
461
637
  */
@@ -481,7 +657,7 @@ const PdsPopover = class {
481
657
  * Handles clicks outside the popover for light dismiss (auto type only)
482
658
  */
483
659
  handleClickOutside(event) {
484
- var _a, _b, _c, _d;
660
+ var _a, _b;
485
661
  // Ignore events that occurred at or before the popover opened
486
662
  // This prevents the opening click from immediately closing the popover
487
663
  // Convert event.timeStamp (DOMHighResTimeStamp from performance.now()) to epoch time
@@ -492,16 +668,18 @@ const PdsPopover = class {
492
668
  if (eventTime <= this.openTimestamp) {
493
669
  return;
494
670
  }
495
- const target = event.target;
671
+ // In a shadow root, event.target is only its host.
672
+ const target = ((_b = (_a = event.composedPath) === null || _a === void 0 ? void 0 : _a.call(event)[0]) !== null && _b !== void 0 ? _b : event.target);
496
673
  // A datepicker's calendar is portaled to the body: a click in the calendar of a datepicker
497
- // inside this popover, in its content or its trigger, isn't outside it.
498
- const calendar = (_b = (_a = target).closest) === null || _b === void 0 ? void 0 : _b.call(_a, '.pds-datepicker-calendar-portal');
674
+ // inside this popover, in its content or its trigger, isn't outside it. The target can be
675
+ // inside the calendar's shadow root, so look up across it.
676
+ const calendar = closest.closest('.pds-datepicker-calendar-portal', target);
499
677
  const owner = calendar === null || calendar === void 0 ? void 0 : calendar.pdsDatepicker;
500
678
  if (owner && (closest.containsComposed(this.portalEl, owner) || closest.containsComposed(this.triggerEl, owner)))
501
679
  return;
502
680
  // Check if click is outside both the popover portal and the trigger
503
- const clickedInsidePopover = (_c = this.portalEl) === null || _c === void 0 ? void 0 : _c.contains(target);
504
- const clickedInsideTrigger = (_d = this.triggerEl) === null || _d === void 0 ? void 0 : _d.contains(target);
681
+ const clickedInsidePopover = closest.containsComposed(this.portalEl, target);
682
+ const clickedInsideTrigger = closest.containsComposed(this.triggerEl, target);
505
683
  if (!clickedInsidePopover && !clickedInsideTrigger) {
506
684
  this.hide();
507
685
  }
@@ -522,14 +700,19 @@ const PdsPopover = class {
522
700
  * Mirrors native Popover API: Escape closes and returns focus to trigger
523
701
  */
524
702
  handleEscapeKey(event) {
525
- if (event.key === 'Escape') {
526
- // Prevent default Escape behavior and stop propagation
527
- // This mirrors native Popover API which handles Escape exclusively
528
- event.preventDefault();
529
- event.stopPropagation();
530
- // Close popover and return focus to trigger
531
- this.hide();
532
- }
703
+ // A control inside that closes on Escape (a datepicker, a combobox) has handled it already.
704
+ if (event.key !== 'Escape' || event.defaultPrevented)
705
+ return;
706
+ // Like the native Popover API, Escape closes only the top popover: the last one opened that
707
+ // it applies to. Every open popover hears it, so each checks whether it's that one.
708
+ const top = [...openAutoPopovers].reverse().find(popover => popover.takesEscapeFrom(event));
709
+ if (top !== this)
710
+ return;
711
+ // Take the key, so the dialog or modal around it doesn't close too.
712
+ event.preventDefault();
713
+ event.stopPropagation();
714
+ // Close popover and return focus to trigger
715
+ this.hide();
533
716
  }
534
717
  /**
535
718
  * Handles scroll events to reposition the popover (debounced for performance)
@@ -634,13 +817,20 @@ const PdsPopover = class {
634
817
  }
635
818
  this.portalEl.style.top = `${top}px`;
636
819
  this.portalEl.style.left = `${left}px`;
820
+ // `position: fixed` measures from the viewport unless an ancestor becomes its containing block,
821
+ // as a modal dialog does with its backdrop filter. Shift by however far it landed from the spot.
822
+ const placed = this.portalEl.getBoundingClientRect();
823
+ if (Math.abs(placed.top - top) > 0.5 || Math.abs(placed.left - left) > 0.5) {
824
+ this.portalEl.style.top = `${2 * top - placed.top}px`;
825
+ this.portalEl.style.left = `${2 * left - placed.left}px`;
826
+ }
637
827
  // Reset the repositioning guard after a short delay
638
828
  setTimeout(() => {
639
829
  this.isRepositioning = false;
640
830
  }, 16); // ~1 frame at 60fps
641
831
  }
642
832
  render() {
643
- return (index.h(index.Host, { key: '66347d4922274d25504e5be134b36f05a3f12fdc', id: this.componentId }, index.h("span", { key: '8f29d54d58cf0c66f86470c77c676716f1ab056f', class: "pds-popover__trigger-wrapper" }, index.h("slot", { key: '5c89b687cfc01e67d3c11835e77755de88f03584', name: "trigger", onSlotchange: this.handleTriggerSlotChange })), index.h("div", { key: '0ca9aff3021720098d86ec29eb69cbf149ef79a9', class: "pds-popover__content-slot-wrapper" }, index.h("slot", { key: 'b73c3324d3322c41c68161e9ada51499c0e49cb0', onSlotchange: this.handleContentSlotChange }))));
833
+ return (index.h(index.Host, { key: 'da8a0c715df1199231b1265085f3f9ae0234032d', id: this.componentId }, index.h("span", { key: 'f35023492399420829cec2e88556462f5ac1663e', class: "pds-popover__trigger-wrapper" }, index.h("slot", { key: '38ebe92eebb87665467b3f92ff94dc8095450063', name: "trigger", onSlotchange: this.handleTriggerSlotChange })), index.h("div", { key: '8917930f4520544d14bbd68b4c7936dd60af19e3', class: "pds-popover__content-slot-wrapper" }, index.h("slot", { key: '28d3f9112256edd95721a79a7072a9e35a3712bf', onSlotchange: this.handleContentSlotChange }))));
644
834
  }
645
835
  get el() { return index.getElement(this); }
646
836
  static get watchers() { return {
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-BQjWfQXw.js');
4
- var attributes = require('./attributes-DXvaSETR.js');
3
+ var index = require('./index-jl_Q819j.js');
4
+ var attributes = require('./attributes-BJ7KBHql.js');
5
5
  var utils = require('./utils-BhRmyxT8.js');
6
- require('./keep-hydrated-iLS88j1Z.js');
6
+ require('./keep-hydrated-CiXgkEYd.js');
7
7
 
8
8
  const pdsProgressCss = () => `:host{--color-progress-fill:var(--pine-color-primary);--sizing-progress-bar-width:100%;-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:var(--sizing-progress-bar-width)}@-webkit-keyframes progressBar{0%{width:0}100%{width:var(--sizing-progress-bar-width)}}@keyframes progressBar{0%{width:0}100%{width:var(--sizing-progress-bar-width)}}.pds-progress{-ms-flex-align:center;align-items:center;background-color:var(--pine-color-background-muted);border-radius:var(--pine-dimension-2xs);display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;height:var(--pine-dimension-xs);position:relative;width:100%}:host(.is-animated) progress,:host(.is-animated) progress::-webkit-progress-bar{-webkit-animation:progressBar 3s ease;animation:progressBar 3s ease;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}progress,progress::-webkit-progress-bar{background-color:transparent;border:0;height:var(--pine-dimension-xs);width:100%}progress::-webkit-progress-value{background:var(--color-progress-fill, var(--pine-color-primary));border-radius:var(--pine-dimension-2xs)}progress::-moz-progress-bar{background:var(--color-progress-fill, var(--pine-color-primary));border-radius:var(--pine-dimension-2xs)}.pds-progress__label{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pds-progress__percentage{font-weight:var(--pine-font-weight-medium);-webkit-margin-start:calc(var(--pine-dimension-md) / 2);margin-inline-start:calc(var(--pine-dimension-md) / 2)}`;
9
9
 
@@ -37,7 +37,7 @@ const PdsProgress = class {
37
37
  const normalizedFillColor = utils.normalizeColorValue(this.fillColor);
38
38
  const hostClass = this.animated ? { 'is-animated': this.animated } : '';
39
39
  this.hostKeeper.record(hostClass);
40
- return (index.h(index.Host, { key: '5573a5c48eee2f7968835db92afdaebb73c1b85e', class: hostClass }, index.h("div", { key: 'bb5cf260495be798f4272673884336022c28441e', class: "pds-progress" }, index.h("label", { key: '017efa649ada73ec724b930e06bbf1ab19a18f61', class: "pds-progress__label", htmlFor: this.componentId }, this.label), index.h("progress", { key: 'e648d910b072b7b2ca1c4a92c0832bf6e2ef5406', id: this.componentId, max: "100", style: normalizedFillColor ? { '--color-progress-fill': normalizedFillColor } : {}, value: this.percent })), this.showPercent && index.h("div", { key: '1f9f1733ff2cd6e2ec81e9a46759ff451cf158f7', class: "pds-progress__percentage" }, this.percent, "%")));
40
+ return (index.h(index.Host, { key: 'a224e1e9bc50433553ab8bf4b0d772f01148ee76', class: hostClass }, index.h("div", { key: '261742044f3d68c204cbf640cc4447eb6d74df11', class: "pds-progress" }, index.h("label", { key: 'd686bdc6ab450bf8c14dd56077525a3139593f46', class: "pds-progress__label", htmlFor: this.componentId }, this.label), index.h("progress", { key: 'c716e977a952a628aec600fa680aa9c3b8d0e996', id: this.componentId, max: "100", style: normalizedFillColor ? { '--color-progress-fill': normalizedFillColor } : {}, value: this.percent })), this.showPercent && index.h("div", { key: '44176a580b435f69993be4a60ee2e888b87e10fb', class: "pds-progress__percentage" }, this.percent, "%")));
41
41
  }
42
42
  get el() { return index.getElement(this); }
43
43
  };
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-BQjWfQXw.js');
4
- require('./keep-hydrated-iLS88j1Z.js');
3
+ var index = require('./index-jl_Q819j.js');
4
+ require('./keep-hydrated-CiXgkEYd.js');
5
5
 
6
6
  const pdsPropertyCss = () => `:host{color:var(--pine-color-text-message);font:var(--pine-typography-body-medium)}`;
7
7
 
@@ -14,7 +14,7 @@ const PdsProperty = class {
14
14
  this.icon = 'star';
15
15
  }
16
16
  render() {
17
- return (index.h(index.Host, { key: '0f6195faaaf3adb11ad14f09a36c78f94e2bdf65', id: this.componentId }, index.h("pds-box", { key: '0a9670c0e38065f5fbe035b81703e21155396ff8', "align-items": "center", gap: "xs" }, index.h("pds-icon", { key: '13b497e8670bc5210a752b8c24b9fd6397b1a8c9', icon: this.icon, size: "var(--pine-dimension-sm)", "aria-hidden": "true" }), index.h("slot", { key: 'a9b3cf5fd830b7551f68866a62341670f8b61b34' }))));
17
+ return (index.h(index.Host, { key: 'd599b62be4bacf1d89afcc26b14fc93bdc9bb3a4', id: this.componentId }, index.h("pds-box", { key: 'd7f80f6598615c761d672893c8acab09bd9ea33f', "align-items": "center", gap: "xs" }, index.h("pds-icon", { key: '15a6a6545c2cd2332bd830451106b7b08adc39ff', icon: this.icon, size: "var(--pine-dimension-sm)", "aria-hidden": "true" }), index.h("slot", { key: '4e5661563b99ec56189447faabcdd1ae631159b2' }))));
18
18
  }
19
19
  };
20
20
  PdsProperty.style = pdsPropertyCss();
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-BQjWfQXw.js');
3
+ var index = require('./index-jl_Q819j.js');
4
4
  var form = require('./form-MhwfKTuo.js');
5
- var index$1 = require('./index-D-QQKB0y.js');
6
- require('./keep-hydrated-iLS88j1Z.js');
5
+ var index$1 = require('./index-5Azb8EQG.js');
6
+ require('./keep-hydrated-CiXgkEYd.js');
7
7
 
8
8
  const pdsRadioGroupCss = () => `.sc-pds-radio-group-h{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--pine-dimension-sm)}.is-invalid.sc-pds-radio-group-h .pds-radio-group__message--error.sc-pds-radio-group{color:var(--pine-color-text-message-danger)}.pds-radio-group__label.sc-pds-radio-group{color:var(--pine-color-text-label);font:var(--pine-typography-heading-6);font-weight:var(--pine-font-weight-medium);letter-spacing:var(--pine-letter-spacing-heading-6)}.pds-radio-group__radios.sc-pds-radio-group{display:-ms-flexbox;display:flex;gap:var(--pds-radio-group-gap, var(--pine-dimension-xs))}.pds-radio-group__radios--row.sc-pds-radio-group{-ms-flex-align:start;align-items:flex-start;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.pds-radio-group__radios--column.sc-pds-radio-group{-ms-flex-direction:column;flex-direction:column}.pds-radio-group__message.sc-pds-radio-group{color:var(--pine-color-text-message);font:var(--pine-typography-body);width:100%}.pds-radio-group__message--error.sc-pds-radio-group{display:-ms-flexbox;display:flex;gap:var(--pine-dimension-2xs)}.pds-radio-group__message--error.sc-pds-radio-group pds-icon.sc-pds-radio-group{-webkit-margin-before:var(--pine-dimension-050);margin-block-start:var(--pine-dimension-050)}`;
9
9
 
@@ -165,13 +165,13 @@ const PdsRadioGroup = class {
165
165
  render() {
166
166
  const gapValue = this.getGapValue();
167
167
  const ariaDescribedBy = this.getAriaDescribedBy();
168
- return (index.h(index.Host, { key: '9dc78eb36bbc1b872f4320203dbbc64e43816ebf', class: this.classNames(), id: this._groupId, role: "group", "aria-describedby": ariaDescribedBy, style: {
168
+ return (index.h(index.Host, { key: 'bf8063c1a99e272bb3f6bc647998a6ef103f8a71', class: this.classNames(), id: this._groupId, role: "group", "aria-describedby": ariaDescribedBy, style: {
169
169
  '--pds-radio-group-gap': gapValue,
170
- } }, this.groupLabel && (index.h("div", { key: '7b6f95608dcf356b141ef5d590ff3070f83b5975', class: "pds-radio-group__label" }, this.groupLabel)), index.h("div", { key: '6e1a634c9b81ca3f3bbbe9c6590bcd4efc97e6ea', class: {
170
+ } }, this.groupLabel && (index.h("div", { key: '8564ed3f8f99cdc1a0e5b189aacc6960923eb5f7', class: "pds-radio-group__label" }, this.groupLabel)), index.h("div", { key: '2309c9373790182cde030c1dbda88fa3bdcaaf12', class: {
171
171
  'pds-radio-group__radios': true,
172
172
  'pds-radio-group__radios--row': this.direction === 'row',
173
173
  'pds-radio-group__radios--column': this.direction === 'column',
174
- } }, index.h("slot", { key: 'b5b16148f3c77d425a50b7ada8a822e9919ef5c5', onSlotchange: () => this.updateChildRadios() })), this.helperMessage && (index.h("div", { key: 'ca6b98f926b8d7a53fda630170ac037c99f5ee85', class: "pds-radio-group__message", id: form.messageId(this._groupId, 'helper') }, this.helperMessage)), this.errorMessage && (index.h("div", { key: '37b57e2622370364e619ea090712a7b79fe79501', class: "pds-radio-group__message pds-radio-group__message--error", id: form.messageId(this._groupId, 'error'), "aria-live": "assertive" }, index.h("pds-icon", { key: '6a362d048a67312b1b227f71cc4b8f821ae0817e', icon: index$1.danger, size: "small" }), this.errorMessage))));
174
+ } }, index.h("slot", { key: 'd88dde3c631e25c01bc7b6d3ef5d517255fabd1a', onSlotchange: () => this.updateChildRadios() })), this.helperMessage && (index.h("div", { key: 'a229214ed01663b0fc34f35e27c7148b4eb412ab', class: "pds-radio-group__message", id: form.messageId(this._groupId, 'helper') }, this.helperMessage)), this.errorMessage && (index.h("div", { key: 'dc092f2e6dbef0cb369cf00a6eccf9a095a0313d', class: "pds-radio-group__message pds-radio-group__message--error", id: form.messageId(this._groupId, 'error'), "aria-live": "assertive" }, index.h("pds-icon", { key: 'd242da328731e55fa52d8e624fdfc750bfa6cce4', icon: index$1.danger, size: "small" }), this.errorMessage))));
175
175
  }
176
176
  get el() { return index.getElement(this); }
177
177
  static get watchers() { return {
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-BQjWfQXw.js');
4
- var attributes = require('./attributes-DXvaSETR.js');
3
+ var index = require('./index-jl_Q819j.js');
4
+ var attributes = require('./attributes-BJ7KBHql.js');
5
5
  var form = require('./form-MhwfKTuo.js');
6
- var index$1 = require('./index-D-QQKB0y.js');
7
- require('./keep-hydrated-iLS88j1Z.js');
6
+ var index$1 = require('./index-5Azb8EQG.js');
7
+ require('./keep-hydrated-CiXgkEYd.js');
8
8
 
9
9
  const labelCss = () => `.sc-pds-radio-h{display:inline-block}[aria-disabled=true].sc-pds-radio-h label.sc-pds-radio{color:var(--pine-color-text-label-disabled)}[aria-readonly=true].sc-pds-radio-h label.sc-pds-radio{color:var(--pine-color-text-label-readonly)}label.sc-pds-radio{color:var(--pine-color-text-label);font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing)}`;
10
10
 
@@ -104,13 +104,13 @@ const PdsRadio = class {
104
104
  }
105
105
  render() {
106
106
  const renderLabelAndMessages = () => [
107
- index.h("label", { htmlFor: this.componentId, key: `${this.componentId}-label` }, index.h("input", { key: 'add893cd82f79b9398589bd5c0a72d5ae4a90475', "aria-describedby": form.assignDescription(this.componentId, this.invalid, this.helperMessage, this.errorMessage), "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' : '' }), index.h("span", { key: 'b58eed8681d1932397d38ffe82515987e6486e08', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)),
107
+ index.h("label", { htmlFor: this.componentId, key: `${this.componentId}-label` }, index.h("input", { key: 'ccd618855831bcee309e815f2cd2712fd4e8fe1f', "aria-describedby": form.assignDescription(this.componentId, this.invalid, this.helperMessage, this.errorMessage), "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' : '' }), index.h("span", { key: '2e372a880c28f48fb804bac2518208082c141fad', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)),
108
108
  this.helperMessage && (index.h("div", { key: `${this.componentId}-helper`, class: 'pds-radio__message', id: form.messageId(this.componentId, 'helper') }, this.helperMessage)),
109
- this.errorMessage && (index.h("div", { key: `${this.componentId}-error`, class: `pds-radio__message pds-radio__message--error`, id: form.messageId(this.componentId, 'error'), "aria-live": "assertive" }, index.h("pds-icon", { key: '7374924219e59eab46a7ced9e7062c3e674b4451', icon: index$1.danger, size: "small" }), this.errorMessage))
109
+ this.errorMessage && (index.h("div", { key: `${this.componentId}-error`, class: `pds-radio__message pds-radio__message--error`, id: form.messageId(this.componentId, 'error'), "aria-live": "assertive" }, index.h("pds-icon", { key: '889d502575f6a162f450b6b58d76a6f6f1c74e4b', icon: index$1.danger, size: "small" }), this.errorMessage))
110
110
  ];
111
111
  const hostClass = this.classNames();
112
112
  this.hostKeeper.record(hostClass);
113
- return (index.h(index.Host, { key: '24269923f168d1d39ebfc1994619736f0dc8087a', class: hostClass }, this.hasImage() && (index.h("div", { key: '74a72bef89aa012047cbf3a1744fcd33f13bb464', class: "pds-radio__image-container", part: "image-container" }, index.h("slot", { key: '99dbcfdac86cb7c012fd44eab607217e21304bab', name: "image", onSlotchange: () => (this._hasImage = this.hasImageSlot()) }))), this.hasImage() ? (index.h("div", { class: "pds-radio__content-wrapper" }, renderLabelAndMessages())) : (renderLabelAndMessages())));
113
+ return (index.h(index.Host, { key: '374003032b28407581a55f1fb0a304c49acf3c16', class: hostClass }, this.hasImage() && (index.h("div", { key: '7eeb516267de1afcfa85fc7567999db488c2f4f5', class: "pds-radio__image-container", part: "image-container" }, index.h("slot", { key: 'a312fea06f0c015bffab3bb392ff04d4913fd1c0', name: "image", onSlotchange: () => (this._hasImage = this.hasImageSlot()) }))), this.hasImage() ? (index.h("div", { class: "pds-radio__content-wrapper" }, renderLabelAndMessages())) : (renderLabelAndMessages())));
114
114
  }
115
115
  get el() { return index.getElement(this); }
116
116
  };
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-BQjWfQXw.js');
4
- var attributes = require('./attributes-DXvaSETR.js');
5
- require('./keep-hydrated-iLS88j1Z.js');
3
+ var index = require('./index-jl_Q819j.js');
4
+ var attributes = require('./attributes-BJ7KBHql.js');
5
+ require('./keep-hydrated-CiXgkEYd.js');
6
6
 
7
7
  const pdsRowCss = () => `:host{--row-gap-y:var(--pine-dimension-125);--row-gap-x:var(--pine-dimension-125);display:block;-webkit-margin-after:calc(var(--row-gap-y) * -1);margin-block-end:calc(var(--row-gap-y) * -1);-webkit-margin-before:calc(var(--row-gap-y) * -1);margin-block-start:calc(var(--row-gap-y) * -1);-webkit-margin-end:calc(var(--row-gap-x) * -0.5);margin-inline-end:calc(var(--row-gap-x) * -0.5);-webkit-margin-start:calc(var(--row-gap-x) * -0.5);margin-inline-start:calc(var(--row-gap-x) * -0.5)}.pds-row{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-margin-after:calc(var(--row-gap-y) * -1);margin-block-end:calc(var(--row-gap-y) * -1);-webkit-margin-before:calc(var(--row-gap-y) * -1);margin-block-start:calc(var(--row-gap-y) * -1);-webkit-margin-end:calc(var(--row-gap-x) * -1);margin-inline-end:calc(var(--row-gap-x) * -1);-webkit-margin-start:calc(var(--row-gap-x) * -1);margin-inline-start:calc(var(--row-gap-x) * -1)}@layer layout{.pds-row>*{-webkit-padding-after:calc(var(--row-gap-y));padding-block-end:calc(var(--row-gap-y));-webkit-padding-before:calc(var(--row-gap-y));padding-block-start:calc(var(--row-gap-y));-webkit-padding-end:calc(var(--row-gap-x));padding-inline-end:calc(var(--row-gap-x));-webkit-padding-start:calc(var(--row-gap-x));padding-inline-start:calc(var(--row-gap-x))}}.pds-row--no-wrap{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.pds-row--border{border:var(--pine-border)}.pds-justify-content-start{-ms-flex-pack:start;justify-content:start}.pds-justify-content-center{-ms-flex-pack:center;justify-content:center}.pds-justify-content-end{-ms-flex-pack:end;justify-content:end}.pds-justify-content-space-between{-ms-flex-pack:justify;justify-content:space-between}.pds-justify-content-space-around{-ms-flex-pack:distribute;justify-content:space-around}.pds-justify-content-space-evenly{-ms-flex-pack:space-evenly;justify-content:space-evenly}.pds-align-items-start{-ms-flex-align:start;align-items:start}.pds-align-items-center{-ms-flex-align:center;align-items:center}.pds-align-items-end{-ms-flex-align:end;align-items:end}.pds-align-items-stretch{-ms-flex-align:stretch;align-items:stretch}.pds-align-items-baseline{-ms-flex-align:baseline;align-items:baseline}`;
8
8
 
@@ -71,7 +71,7 @@ const PdsRow = class {
71
71
  'min-height': this.minHeight,
72
72
  }));
73
73
  this.hostKeeper.record(`pds-row ${rowClasses}`, rowInlineStyles);
74
- return index.h(index.Host, { key: 'ee3a32ae1376919c7c2d1fcf186a1b7c272ee085', class: `pds-row ${rowClasses}`, style: rowInlineStyles });
74
+ return index.h(index.Host, { key: '78a505fef7132f9545916155d2485a6d2df8f4a5', class: `pds-row ${rowClasses}`, style: rowInlineStyles });
75
75
  }
76
76
  get el() { return index.getElement(this); }
77
77
  };
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-BQjWfQXw.js');
4
- var attributes = require('./attributes-DXvaSETR.js');
3
+ var index = require('./index-jl_Q819j.js');
4
+ var attributes = require('./attributes-BJ7KBHql.js');
5
5
  var form = require('./form-MhwfKTuo.js');
6
- var index$1 = require('./index-D-QQKB0y.js');
7
- require('./keep-hydrated-iLS88j1Z.js');
6
+ var index$1 = require('./index-5Azb8EQG.js');
7
+ require('./keep-hydrated-CiXgkEYd.js');
8
8
 
9
9
  const pdsSelectTokensCss = () => `:host{--pine-select-color-background-danger:var(--pine-color-red-050)}`;
10
10
 
@@ -251,7 +251,7 @@ const PdsSelect = class {
251
251
  'has-action': hasAction && !this.hideLabel ? 'true' : null,
252
252
  };
253
253
  this.hostKeeper.record(hostClass, {}, hostAttributes);
254
- return (index.h(index.Host, Object.assign({ key: 'c99bfc000ad351298e154554a8b22635b1abb718', class: hostClass }, hostAttributes), index.h("div", { key: '35374b150cbef745c6a6068ba5a2fde0803c0314', class: "pds-select" }, !this.hideLabel && (index.h("div", { key: 'a3b9bae451c5c384606790a29bf8ab5fc70427c0', class: "pds-select__label-wrapper" }, index.h("label", { key: '80d7740a05a6d3cce6d51224169eb6c2501c4896', htmlFor: this.componentId }, index.h("span", { key: 'a51c02d7c84f75bb168889dab50cae807271c63d', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), hasAction && this.renderAction())), index.h("select", { key: '11444dad795bd02c008252a60e701125861e4af0', "aria-describedby": form.assignDescription(this.componentId, this.isInvalid(), this.helperMessage, this.errorMessage), "aria-invalid": this.isInvalid() ? 'true' : undefined, "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) }), index.h("div", { key: 'ce54fa1df287d96a7503bb19cd2ba6c74a6da638', "aria-hidden": "true", class: "hidden", ref: (el) => (this.slotContainer = el) }, index.h("slot", { key: '22c55e78999076a37d43fb708dabc7379dd4cee3', onSlotchange: this.handleSlotChange })), this.renderMessages(), !this.multiple && index.h("pds-icon", { key: '45628074fbcdb259b8bba42299082423309a6968', "aria-hidden": "true", class: "pds-select__select-icon", icon: index$1.enlarge }))));
254
+ return (index.h(index.Host, Object.assign({ key: '343ed671e67dd1d6f9eb284b07e06d59877c64e9', class: hostClass }, hostAttributes), index.h("div", { key: '650aed0869b02f658feb16ee99f17e1cd22e5a8e', class: "pds-select" }, !this.hideLabel && (index.h("div", { key: '74739461acbea33c92279ec8ec9042d6af1773c1', class: "pds-select__label-wrapper" }, index.h("label", { key: '1ad96ffd243000358edfbd79054ee770e1ba97d3', htmlFor: this.componentId }, index.h("span", { key: 'b832868db4f9cd4fd2f8313054d2e96e106189ab', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), hasAction && this.renderAction())), index.h("select", { key: 'e83c1a1a0a5646fc8abf9e50bc374f52b56be773', "aria-describedby": form.assignDescription(this.componentId, this.isInvalid(), this.helperMessage, this.errorMessage), "aria-invalid": this.isInvalid() ? 'true' : undefined, "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) }), index.h("div", { key: 'a34880120b88124b5122350856d023368f96abf7', "aria-hidden": "true", class: "hidden", ref: (el) => (this.slotContainer = el) }, index.h("slot", { key: 'df6abaf6a630761a32b263813181ff3453757e0d', onSlotchange: this.handleSlotChange })), this.renderMessages(), !this.multiple && index.h("pds-icon", { key: 'f9197284ef9965d693242a652b583f48bc3d7097', "aria-hidden": "true", class: "pds-select__select-icon", icon: index$1.enlarge }))));
255
255
  }
256
256
  static get formAssociated() { return true; }
257
257
  get el() { return index.getElement(this); }