@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,20 +1,22 @@
1
1
  import { Host, h } from "@stencil/core";
2
2
  import { closest, containsComposed } from "../../utils/closest";
3
3
  import { unwrapReconnectedContent } from "../../utils/reconnected-content";
4
- // Known selectors for content Pine components portal to document.body rather
5
- // than rendering in place — pds-popover, pds-tooltip, pds-combobox's dropdown.
4
+ // Known selectors for content Pine components portal out of place rather than
5
+ // rendering where they are — pds-tooltip and pds-combobox's dropdown in
6
+ // document.body, pds-popover in the body or the open dialog it's in.
6
7
  // A pointerdown landing on one of these is not "outside" the drawer in the
7
8
  // sense light dismiss cares about: it belongs to an overlay something inside
8
9
  // the drawer opened, even though it is not a DOM descendant of the drawer.
9
10
  const PORTALED_OVERLAY_SELECTOR = '.pds-popover, .pds-tooltip, .pds-combobox-dropdown-portal';
10
11
  /**
11
- * A non-modal side panel composed from `pds-modal`.
12
+ * A side panel composed from `pds-modal`, non-modal by default.
12
13
  *
13
- * Unlike `pds-modal`, the page stays interactive while a drawer is open: no
14
- * dimming, no blur, no scroll lock, no click blocking. `pds-drawer` renders a
15
- * `pds-modal` internally with `disableTopLayer` always on and its backdrop
16
- * suppressed, and adds the edge, width and dismiss behavior a side panel
17
- * needs on top. It does not reimplement focus, Escape or dialog semantics —
14
+ * By default, unlike `pds-modal`, the page stays interactive while a drawer
15
+ * is open: no dimming, no blur, no scroll lock, no click blocking.
16
+ * `pds-drawer` renders a `pds-modal` internally with `disableTopLayer` on and
17
+ * its backdrop suppressed, and adds the edge, width and dismiss behavior a
18
+ * side panel needs on top. With `modal`, it opens that `pds-modal` in the top
19
+ * layer instead and keeps its backdrop. It does not reimplement focus, Escape or dialog semantics —
18
20
  * those come from `pds-modal` unchanged.
19
21
  * @lightDom renders-markup
20
22
  */
@@ -42,8 +44,18 @@ export class PdsDrawer {
42
44
  */
43
45
  this.scrollable = true;
44
46
  /**
45
- * Whether the drawer can be dismissed with a pointerdown outside it.
46
- * Replaces `pds-modal`'s `backdropDismiss` — there is no backdrop to click.
47
+ * Whether the drawer is modal. A modal drawer dims the page behind it with a
48
+ * backdrop, makes the page inert, and keeps focus inside the drawer, like
49
+ * `pds-modal`. Use it for a task the page should wait on. Leave it off for a
50
+ * panel people work alongside the page. Read when the drawer opens; changing
51
+ * it while the drawer is open is not supported.
52
+ * @default false
53
+ */
54
+ this.modal = false;
55
+ /**
56
+ * Whether the drawer can be dismissed with a pointerdown outside it (in a
57
+ * `modal` drawer, a click on its backdrop).
58
+ * Replaces `pds-modal`'s `backdropDismiss`.
47
59
  * This also gates Escape, matching how `backdropDismiss` gates Escape on
48
60
  * `pds-modal` today: setting this to `false` means the close button is the
49
61
  * only way out.
@@ -62,7 +74,8 @@ export class PdsDrawer {
62
74
  * background event while the user is mid-task elsewhere on the page —
63
75
  * moving focus there would interrupt them, and the page stays live under
64
76
  * a non-modal drawer, so it is a genuine data-entry risk, not just an
65
- * annoyance.
77
+ * annoyance. A `modal` drawer ignores `none`: the page behind it is inert,
78
+ * so focus starts in the drawer.
66
79
  * @default 'auto'
67
80
  */
68
81
  this.initialFocus = 'auto';
@@ -108,7 +121,8 @@ export class PdsDrawer {
108
121
  // page underneath stays genuinely clickable, which means a click there
109
122
  // never reaches pds-modal's backdrop element at all.
110
123
  handleOutsidePointerDown(e) {
111
- if (!this.lightDismiss || !this.open)
124
+ // A modal drawer's backdrop takes the click instead, through pds-modal.
125
+ if (this.modal || !this.lightDismiss || !this.open)
112
126
  return;
113
127
  const target = e.target;
114
128
  if (!target)
@@ -118,7 +132,7 @@ export class PdsDrawer {
118
132
  if (target.closest(PORTALED_OVERLAY_SELECTOR))
119
133
  return;
120
134
  // A datepicker's portaled calendar counts as inside only when its datepicker is in the drawer,
121
- // or in an overlay portaled from it (a pds-popover in the drawer puts its content on the body).
135
+ // or in an overlay portaled from it (a pds-popover in the drawer puts its content beside it).
122
136
  const calendar = target.closest('.pds-datepicker-calendar-portal');
123
137
  const owner = calendar === null || calendar === void 0 ? void 0 : calendar.pdsDatepicker;
124
138
  if (owner && (containsComposed(this.el, owner) || closest(PORTALED_OVERLAY_SELECTOR, owner)))
@@ -134,11 +148,11 @@ export class PdsDrawer {
134
148
  this.open = false;
135
149
  }
136
150
  render() {
137
- return (h(Host, { key: '166bc90b45d29f64f11b6840e7c6ae798bf14261', class: {
151
+ return (h(Host, { key: '287bf043c991209488eb1b617031acffb59ff9af', class: {
138
152
  'pds-drawer': true,
139
153
  [`pds-drawer--${this.side}`]: true,
140
154
  [`pds-drawer--${this.size}`]: true,
141
- } }, h("pds-modal", { key: '2faa1cee1f34a85e9df0cabb8e78803982414982', class: "pds-drawer__modal", ref: (el) => (this.modalEl = el), componentId: this.componentId, open: this.open, scrollable: this.scrollable, disableTopLayer: true, backdropDismiss: this.lightDismiss, disableInitialFocus: this.initialFocus === 'none' }, h("slot", { key: '93968e612756c398f6d1faf9383f6c88c420da28' }))));
155
+ } }, h("pds-modal", { key: 'cd86fb552353f5cc12fb36fc956033432a91847c', class: { 'pds-drawer__modal': true, 'pds-drawer__modal--modal': this.modal }, ref: (el) => (this.modalEl = el), componentId: this.componentId, open: this.open, scrollable: this.scrollable, disableTopLayer: !this.modal, backdropDismiss: this.lightDismiss, disableInitialFocus: !this.modal && this.initialFocus === 'none' }, h("slot", { key: '56bbe9b5c26b10b07c0f503ba147899a57a5de85' }))));
142
156
  }
143
157
  static get is() { return "pds-drawer"; }
144
158
  static get originalStyleUrls() {
@@ -264,6 +278,29 @@ export class PdsDrawer {
264
278
  "attribute": "scrollable",
265
279
  "defaultValue": "true"
266
280
  },
281
+ "modal": {
282
+ "type": "boolean",
283
+ "mutable": false,
284
+ "complexType": {
285
+ "original": "boolean",
286
+ "resolved": "boolean",
287
+ "references": {}
288
+ },
289
+ "required": false,
290
+ "optional": false,
291
+ "docs": {
292
+ "tags": [{
293
+ "name": "default",
294
+ "text": "false"
295
+ }],
296
+ "text": "Whether the drawer is modal. A modal drawer dims the page behind it with a\nbackdrop, makes the page inert, and keeps focus inside the drawer, like\n`pds-modal`. Use it for a task the page should wait on. Leave it off for a\npanel people work alongside the page. Read when the drawer opens; changing\nit while the drawer is open is not supported."
297
+ },
298
+ "getter": false,
299
+ "setter": false,
300
+ "reflect": false,
301
+ "attribute": "modal",
302
+ "defaultValue": "false"
303
+ },
267
304
  "lightDismiss": {
268
305
  "type": "boolean",
269
306
  "mutable": false,
@@ -279,7 +316,7 @@ export class PdsDrawer {
279
316
  "name": "default",
280
317
  "text": "true"
281
318
  }],
282
- "text": "Whether the drawer can be dismissed with a pointerdown outside it.\nReplaces `pds-modal`'s `backdropDismiss` \u2014 there is no backdrop to click.\nThis also gates Escape, matching how `backdropDismiss` gates Escape on\n`pds-modal` today: setting this to `false` means the close button is the\nonly way out.\n\nA trigger outside the drawer should only ever set `open` to `true` and\nleave closing to the drawer itself. A toggle-style trigger (`open =\n!open`) fights light dismiss: clicking it while open closes the drawer\non `pointerdown`, then the trigger's own click handler re-opens it."
319
+ "text": "Whether the drawer can be dismissed with a pointerdown outside it (in a\n`modal` drawer, a click on its backdrop).\nReplaces `pds-modal`'s `backdropDismiss`.\nThis also gates Escape, matching how `backdropDismiss` gates Escape on\n`pds-modal` today: setting this to `false` means the close button is the\nonly way out.\n\nA trigger outside the drawer should only ever set `open` to `true` and\nleave closing to the drawer itself. A toggle-style trigger (`open =\n!open`) fights light dismiss: clicking it while open closes the drawer\non `pointerdown`, then the trigger's own click handler re-opens it."
283
320
  },
284
321
  "getter": false,
285
322
  "setter": false,
@@ -302,7 +339,7 @@ export class PdsDrawer {
302
339
  "name": "default",
303
340
  "text": "'auto'"
304
341
  }],
305
- "text": "Whether to move focus into the drawer when it opens. `auto` is right for\na drawer opened by a direct user action (a click, a deep link the user\njust navigated to). Set to `none` for a drawer that can open from a\nbackground event while the user is mid-task elsewhere on the page \u2014\nmoving focus there would interrupt them, and the page stays live under\na non-modal drawer, so it is a genuine data-entry risk, not just an\nannoyance."
342
+ "text": "Whether to move focus into the drawer when it opens. `auto` is right for\na drawer opened by a direct user action (a click, a deep link the user\njust navigated to). Set to `none` for a drawer that can open from a\nbackground event while the user is mid-task elsewhere on the page \u2014\nmoving focus there would interrupt them, and the page stays live under\na non-modal drawer, so it is a genuine data-entry risk, not just an\nannoyance. A `modal` drawer ignores `none`: the page behind it is inert,\nso focus starts in the drawer."
306
343
  },
307
344
  "getter": false,
308
345
  "setter": false,
@@ -9,6 +9,7 @@ export default {
9
9
  size: 'md',
10
10
  scrollable: true,
11
11
  lightDismiss: true,
12
+ modal: false,
12
13
  initialFocus: 'auto',
13
14
  open: false,
14
15
  },
@@ -28,12 +29,13 @@ const BaseTemplate = (args) => html`
28
29
  size="${args.size}"
29
30
  scrollable="${args.scrollable}"
30
31
  light-dismiss="${args.lightDismiss}"
32
+ ?modal=${args.modal}
31
33
  initial-focus="${args.initialFocus}"
32
34
  ?open=${args.open}
33
35
  >
34
36
  <pds-drawer-header>
35
37
  <pds-box align-items="center" justify-content="space-between" fit>
36
- <pds-text tag="h2" size="h4">Drawer Title</pds-text>
38
+ <pds-text tag="h2" size="h4" id="${args.componentId}-heading">Drawer Title</pds-text>
37
39
  <pds-button
38
40
  class="pds-drawer__close"
39
41
  variant="unstyled"
@@ -70,3 +72,6 @@ StartSide.args = { side: 'start' };
70
72
 
71
73
  export const Small = BaseTemplate.bind({});
72
74
  Small.args = { size: 'sm' };
75
+
76
+ export const Modal = BaseTemplate.bind({});
77
+ Modal.args = { modal: true, componentId: 'drawer-modal-demo' };
@@ -72,7 +72,7 @@ export class PdsDropdownMenuItem {
72
72
  }, tabIndex: this.disabled ? -1 : 0, type: "button", part: "button", onKeyDown: this.handleKeyDown, onFocus: this.handleFocus, onBlur: this.handleBlur, disabled: this.disabled, "aria-disabled": this.disabled ? 'true' : null }, h("slot", null)));
73
73
  }
74
74
  render() {
75
- return (h(Host, { key: 'cf22f97df3869d59820ba0deff9a21bfee2628b8', id: this.componentId, class: { 'is-disabled': this.disabled, 'destructive': !this.disabled && this.destructive }, onClick: () => !this.disabled && this.handleClick(), role: "none", tabIndex: -1, "aria-disabled": this.disabled ? 'true' : null }, this.renderElement()));
75
+ return (h(Host, { key: '33bd645d7c9547e3fd07429cf795302e6a482296', id: this.componentId, class: { 'is-disabled': this.disabled, 'destructive': !this.disabled && this.destructive }, onClick: () => !this.disabled && this.handleClick(), role: "none", tabIndex: -1, "aria-disabled": this.disabled ? 'true' : null }, this.renderElement()));
76
76
  }
77
77
  static get is() { return "pds-dropdown-menu-item"; }
78
78
  static get encapsulation() { return "shadow"; }
@@ -8,7 +8,7 @@ export class PdsDropdownMenuSeparator {
8
8
  this.disabled = false;
9
9
  }
10
10
  render() {
11
- return (h(Host, { key: '63bd5fd3112b1030d1e86b331a659ab3a92dd387', id: this.componentId }, h("hr", { key: '0a8504d34a9b91db03abdddd86ce918c00534410' })));
11
+ return (h(Host, { key: '60407a2edc8b4667d39cbd1ba9a859d09b0b8ff1', id: this.componentId }, h("hr", { key: '8485d1c8508c5fe5e3635505f25e278f45f45b82' })));
12
12
  }
13
13
  static get is() { return "pds-dropdown-menu-separator"; }
14
14
  static get encapsulation() { return "shadow"; }
@@ -19,8 +19,22 @@
19
19
  border: var(--pine-border);
20
20
  }
21
21
 
22
- ::slotted(a),
23
- ::slotted(button) {
22
+ .pds-dropdown-menu__header {
23
+ border-block-end: var(--pine-border-width-thin) solid var(--pine-color-border);
24
+ margin-block-end: var(--pine-dimension-xs);
25
+ margin-inline: calc(var(--pine-dimension-xs) * -1);
26
+ padding-block-end: var(--pine-dimension-xs);
27
+ padding-inline: calc(var(--pine-dimension-xs) * 2 + var(--pine-border-width) + 2px);
28
+ text-align: start;
29
+ }
30
+
31
+ .pds-dropdown-menu__items {
32
+ display: flex;
33
+ flex-direction: column;
34
+ }
35
+
36
+ ::slotted(a:not([slot=header])),
37
+ ::slotted(button:not([slot=header])) {
24
38
  align-items: center;
25
39
  appearance: none;
26
40
  background: transparent;
@@ -40,12 +54,12 @@
40
54
  width: calc(100% - (var(--pine-border-width) + 2px) * 2);
41
55
  }
42
56
 
43
- ::slotted(.destructive) {
57
+ ::slotted(.destructive:not([slot=header])) {
44
58
  color: var(--pine-color-danger) !important;
45
59
  }
46
60
 
47
- ::slotted([aria-disabled=true]),
48
- ::slotted([disabled]:not([disabled=false])) {
61
+ ::slotted([aria-disabled=true]:not([slot=header])),
62
+ ::slotted([disabled]:not([disabled=false]):not([slot=header])) {
49
63
  cursor: not-allowed;
50
64
  opacity: 0.5;
51
65
  pointer-events: none;
@@ -1,7 +1,9 @@
1
1
  import { Host, h } from "@stencil/core";
2
2
  import { setAttributesIfChanged } from "../../utils/attributes";
3
+ import { limitRestores } from "../../utils/keep-hydrated";
3
4
  import { computePosition, flip, offset, shift, autoUpdate, } from "@floating-ui/dom";
4
5
  /**
6
+ * @slot header - Non-interactive content displayed above the menu items inside the dropdown panel. It renders outside the menu role, so assistive tech reads it as plain content rather than as a menu item.
5
7
  * @part menu-panel - Exposes the dropdown menu container for styling.
6
8
  */
7
9
  export class PdsDropdownMenu {
@@ -11,6 +13,7 @@ export class PdsDropdownMenu {
11
13
  this.cleanupAutoUpdate = null;
12
14
  this.triggerObserver = null;
13
15
  this.currentFocusIndex = -1;
16
+ this.hasHeader = false;
14
17
  /**
15
18
  * The placement of the dropdown panel relative to the trigger.
16
19
  */
@@ -29,8 +32,11 @@ export class PdsDropdownMenu {
29
32
  // Writes the trigger's ARIA from the menu's state, so the observer's own callback doesn't loop.
30
33
  this.syncTriggerAria = () => {
31
34
  if (!this.triggerEl)
32
- return;
33
- setAttributesIfChanged(this.triggerEl, { 'aria-haspopup': 'menu', 'aria-expanded': String(this.isOpen) });
35
+ return false;
36
+ return setAttributesIfChanged(this.triggerEl, { 'aria-haspopup': 'menu', 'aria-expanded': String(this.isOpen) });
37
+ };
38
+ this.handleHeaderSlotChange = (event) => {
39
+ this.hasHeader = event.target.assignedElements().length > 0;
34
40
  };
35
41
  this.handleSlotChange = (event) => {
36
42
  this.slotEl = event.target;
@@ -109,6 +115,9 @@ export class PdsDropdownMenu {
109
115
  this.toggleDropdown();
110
116
  };
111
117
  }
118
+ componentWillLoad() {
119
+ this.hasHeader = Array.from(this.host.children).some(el => el.getAttribute('slot') === 'header');
120
+ }
112
121
  componentDidRender() {
113
122
  var _a;
114
123
  this.panelEl = (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('pds-box');
@@ -137,7 +146,8 @@ export class PdsDropdownMenu {
137
146
  this.triggerObserver = null;
138
147
  if (!this.triggerEl || typeof MutationObserver === 'undefined')
139
148
  return;
140
- this.triggerObserver = new MutationObserver(this.syncTriggerAria);
149
+ // Capped against a script that keeps undoing it; opening and closing still write it directly.
150
+ this.triggerObserver = new MutationObserver(limitRestores(this.syncTriggerAria, 'pds-dropdown-menu: stopped restoring its trigger ARIA, as another script keeps changing it. It may be wrong until the menu opens or closes.', this.triggerEl));
141
151
  this.triggerObserver.observe(this.triggerEl, {
142
152
  attributes: true,
143
153
  attributeFilter: ['aria-haspopup', 'aria-expanded'],
@@ -243,15 +253,19 @@ export class PdsDropdownMenu {
243
253
  this.focusItemByIndex(prevIndex);
244
254
  }
245
255
  }
256
+ // Escape is taken in document's capture phase, before a modal around the menu hears it on
257
+ // document and closes too.
258
+ handleEscapeKeyDown(event) {
259
+ if (!this.isOpen || event.key !== 'Escape' || event.defaultPrevented)
260
+ return;
261
+ event.preventDefault();
262
+ this.closeDropdown();
263
+ }
246
264
  // Handle keyboard events for the dropdown
247
265
  handleKeyDown(event) {
248
266
  if (!this.isOpen)
249
267
  return;
250
268
  switch (event.key) {
251
- case 'Escape':
252
- event.preventDefault();
253
- this.closeDropdown();
254
- break;
255
269
  case 'ArrowDown':
256
270
  event.preventDefault();
257
271
  this.focusNextItem();
@@ -343,7 +357,7 @@ export class PdsDropdownMenu {
343
357
  }
344
358
  }
345
359
  render() {
346
- return (h(Host, { key: '9d67972cf15c22bc666c32b86dcd8f143160ee0a', id: this.componentId }, h("slot", { key: 'e9cbc0612ce0e8c2bf55e1dc7930eda075fcc173', name: "trigger", onSlotchange: this.handleTriggerSlotChange }), h("pds-box", { key: '6fed3f11cf962a97f8ebb3cc69bd76efb425c464', "border-radius": "sm", display: "flex", direction: "column", class: "pds-dropdown-menu--panel is-hidden", shadow: "100", role: "menu", "aria-orientation": "vertical", part: "menu-panel" }, h("slot", { key: 'b8757512713b913f3ee56d9518897e7ed3c3b830', onSlotchange: this.handleSlotChange }))));
360
+ return (h(Host, { key: '18dac4d59ea236fe171f4c16f6571cb1547059c6', id: this.componentId }, h("slot", { key: '95201a75a33ccb70dbd51a5cf9d78c76ebf26f65', name: "trigger", onSlotchange: this.handleTriggerSlotChange }), h("pds-box", { key: '7fc588f40f607ad81ad70bf74a525d078d32a80b', "border-radius": "sm", display: "flex", direction: "column", class: "pds-dropdown-menu--panel is-hidden", shadow: "100", part: "menu-panel" }, h("div", { key: '73d13d94edccb68db7b703f930b50f729334efa8', class: { 'pds-dropdown-menu__header': true, 'is-hidden': !this.hasHeader } }, h("slot", { key: '7066f3a6f71c8961326f38f0509f1c0cc17098ae', name: "header", onSlotchange: this.handleHeaderSlotChange })), h("div", { key: '9f07ec488b688c58c6422b575015ccd364075fe8', class: "pds-dropdown-menu__items", role: "menu", "aria-orientation": "vertical" }, h("slot", { key: 'd0aad3f9ac3b58779669411523adbb8878dec61c', onSlotchange: this.handleSlotChange })))));
347
361
  }
348
362
  static get is() { return "pds-dropdown-menu"; }
349
363
  static get encapsulation() { return "shadow"; }
@@ -409,12 +423,19 @@ export class PdsDropdownMenu {
409
423
  }
410
424
  static get states() {
411
425
  return {
412
- "currentFocusIndex": {}
426
+ "currentFocusIndex": {},
427
+ "hasHeader": {}
413
428
  };
414
429
  }
415
430
  static get elementRef() { return "host"; }
416
431
  static get listeners() {
417
432
  return [{
433
+ "name": "keydown",
434
+ "method": "handleEscapeKeyDown",
435
+ "target": "document",
436
+ "capture": true,
437
+ "passive": false
438
+ }, {
418
439
  "name": "keydown",
419
440
  "method": "handleKeyDown",
420
441
  "target": "window",
@@ -485,7 +485,7 @@ export class PdsFilter {
485
485
  return null;
486
486
  }
487
487
  render() {
488
- return (h(Host, { key: '4abb55453c9ab4cd49b21a23047aa5ee4ab70056', id: this.componentId }, h("button", { key: 'e6b6bd81ca3f9d23f490219cf8e81f0bdf511798', class: this.getTriggerClasses(), type: "button", popoverTarget: this.variant !== 'clear' ? `${this.componentId}-popover` : undefined, popoverTargetAction: this.variant !== 'clear' ? 'toggle' : undefined, onKeyDown: this.variant === 'clear' ? this.handleKeyDown : undefined, onClick: (event) => this.handleClick(event), part: "button", "aria-expanded": this.isOpen ? 'true' : 'false', "aria-haspopup": this.variant !== 'clear' ? 'true' : undefined, "aria-controls": this.variant !== 'clear' ? `${this.componentId}-popover` : undefined }, h("span", { key: '4cea081451f50508cef36e90d4c88cbd94933287', class: "pds-filter__button-content", part: "button-content" }, this.renderIcon(), this.text && (h("span", { key: '479f84087e7969fa555475b240f5e70ce5bcf136', class: "pds-filter__button-text", part: "button-text" }, this.text)), this.renderDropdownIcon())), this.variant !== 'clear' && (h("div", { key: '85aec3d5d7b33a0cfb3602412238830929902eb1', ref: el => this.popoverEl = el, id: `${this.componentId}-popover`, class: "pds-filter__popover", popover: "auto", part: "popover" }, h("slot", { key: 'ede4c3866bfdce974e0d21c6e6a3ae22aee47d2c' })))));
488
+ return (h(Host, { key: '3cae951aee1f9c75f3e207cf6c68633a23f8f6dc', id: this.componentId }, h("button", { key: 'f4c644710dc936248995be9a49cef8ad13031d61', class: this.getTriggerClasses(), type: "button", popoverTarget: this.variant !== 'clear' ? `${this.componentId}-popover` : undefined, popoverTargetAction: this.variant !== 'clear' ? 'toggle' : undefined, onKeyDown: this.variant === 'clear' ? this.handleKeyDown : undefined, onClick: (event) => this.handleClick(event), part: "button", "aria-expanded": this.isOpen ? 'true' : 'false', "aria-haspopup": this.variant !== 'clear' ? 'true' : undefined, "aria-controls": this.variant !== 'clear' ? `${this.componentId}-popover` : undefined }, h("span", { key: '2dd87e53f363118becc762051ea1be664258b8b6', class: "pds-filter__button-content", part: "button-content" }, this.renderIcon(), this.text && (h("span", { key: '733ceb5e07198e844fbdc1af294d2046c4c571d8', class: "pds-filter__button-text", part: "button-text" }, this.text)), this.renderDropdownIcon())), this.variant !== 'clear' && (h("div", { key: 'beb65a21192c6f5c16703aec7ab9a92ea378ef3c', ref: el => this.popoverEl = el, id: `${this.componentId}-popover`, class: "pds-filter__popover", popover: "auto", part: "popover" }, h("slot", { key: '5a481cc6b143b059a5fc33d377abe5ab79aefb4e' })))));
489
489
  }
490
490
  static get is() { return "pds-filter"; }
491
491
  static get encapsulation() { return "shadow"; }
@@ -4,7 +4,7 @@ import { Host, h } from "@stencil/core";
4
4
  */
5
5
  export class PdsFilters {
6
6
  render() {
7
- return (h(Host, { key: '5587c41a5ca93cc48399d7c1af0762d4a3516b4d', id: this.componentId }, h("div", { key: '43ee499b9c3f49b52cf18beee8ac5cf97b8ad49a', class: "pds-filters" }, h("slot", { key: '79a452042d7aa7e0492d80fd773f71fb820c2211' }))));
7
+ return (h(Host, { key: '8688235fe7cdea1b4fc540156ff21bb9711b41b6', id: this.componentId }, h("div", { key: 'e51a37977df8c31f99b28d8c7e4bedb0d63e53c6', class: "pds-filters" }, h("slot", { key: '8ce936da4d3f0213408090bc3eeb011920f9aa6c' }))));
8
8
  }
9
9
  static get is() { return "pds-filters"; }
10
10
  static get encapsulation() { return "shadow"; }
@@ -15,9 +15,9 @@ export class PdsImage {
15
15
  this.loading = 'eager';
16
16
  }
17
17
  render() {
18
- return (h(Host, { key: 'fff1a796e59b8e666069e56390e174d7d2861f03', class: {
18
+ return (h(Host, { key: '1e8bb3882c2a629004ce1441e85d5c5a75a84e98', class: {
19
19
  'pds-image': true,
20
- }, id: this.componentId }, h("img", { key: 'dbeda9da5adca51c58ec5a807cde673d6b479d0f', alt: this.alt, height: this.height, loading: this.loading, sizes: this.sizes, src: this.src, srcset: this.srcset, width: this.width })));
20
+ }, id: this.componentId }, h("img", { key: 'b50b19d51431d45027c7a918a4ba4c38493741d5', alt: this.alt, height: this.height, loading: this.loading, sizes: this.sizes, src: this.src, srcset: this.srcset, width: this.width })));
21
21
  }
22
22
  static get is() { return "pds-image"; }
23
23
  static get encapsulation() { return "shadow"; }
@@ -289,10 +289,10 @@ export class PdsInput {
289
289
  'has-prepend': this.hasPrepend,
290
290
  'has-append': this.hasAppend,
291
291
  };
292
- return (h(Host, { key: '8c0829cc3502e5fa1fe52584d84b9345fcb0f3fd', "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 }, h("div", { key: 'cf754e6fc72d2cf900e541a469a8e0ba62851538', class: "pds-input" }, label && (h("div", { key: 'f55793898eb2840322ec9a79daed186420ef0d90', class: {
292
+ return (h(Host, { key: '75eb8bc6cda5e947f8677ebefe7995688f03f947', "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 }, h("div", { key: '93d7f90b9a64daccea1533abc08a8cb18825b828', class: "pds-input" }, label && (h("div", { key: '948109b3bfa1a1b8171572da9160425e3e35a7a6', class: {
293
293
  'pds-input__label-wrapper': true,
294
294
  'visually-hidden': this.hideLabel,
295
- } }, h("label", { key: '2a7deac2a9443b1a648133a799b69414b96314e3', htmlFor: componentId, class: "pds-input__label" }, h("span", { key: '75dc7787e0132c4f62272307867a8066f9cf6ce2' }, label, this.required && h("span", { key: 'c7c413addd2b3f275031596598b030c02f647969', class: "pds-input__required-indicator" }, " *"))), !this.hideLabel && this.renderAction())), h("div", { key: 'eaf09d07c4fbc84ef835d2c7b4f00e252394f5ed', class: inputWrapperClasses }, this.renderPrepend(), this.renderPrefix(), h("input", Object.assign({ key: 'dca2390b44e430f0ab1d29daa4ce630ac3b12881', ref: (input) => (this.nativeInput = input), class: "pds-input__field", "aria-describedby": assignDescription(componentId, invalid, helperMessage, errorMessage), "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 && (h("p", { key: '0bd7859f44185ed0c1478833518cb5829ffea4ad', class: "pds-input__helper-message", id: messageId(componentId, 'helper') }, helperMessage)), errorMessage && (h("p", { key: 'c40016f5bb03e292e01430c2940aff0ebb98abb5', class: "pds-input__error-message", id: messageId(componentId, 'error') }, h("pds-icon", { key: '54985d775ddf951b50cae4796b7847e98de7434f', "aria-hidden": "true", icon: danger, size: "small" }), errorMessage)))));
295
+ } }, h("label", { key: 'bb0e6c6febb97ad4aa3942ac5e67ac42dc1bde0a', htmlFor: componentId, class: "pds-input__label" }, h("span", { key: 'c6a122f829aa3b92ccb715c3f3975f6baadb3028' }, label, this.required && h("span", { key: 'dce7d1a9c010a545992734bd238e9f6a4ca7b4ce', class: "pds-input__required-indicator" }, " *"))), !this.hideLabel && this.renderAction())), h("div", { key: '1b92ab5d649a4a9cf8112ea9b8a8a1095714f6d0', class: inputWrapperClasses }, this.renderPrepend(), this.renderPrefix(), h("input", Object.assign({ key: 'bc3c4b907312149d375bb78f9912e4501da59348', ref: (input) => (this.nativeInput = input), class: "pds-input__field", "aria-describedby": assignDescription(componentId, invalid, helperMessage, errorMessage), "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 && (h("p", { key: 'f7bcbafc17a20310d602fce14a0adad522acbcb1', class: "pds-input__helper-message", id: messageId(componentId, 'helper') }, helperMessage)), errorMessage && (h("p", { key: 'bbbd6dc3203b89e5759587147de74d2ce3ce6177', class: "pds-input__error-message", id: messageId(componentId, 'error') }, h("pds-icon", { key: '68a6a92c82c1756ad99f431e0cb56756e3cdf75c', "aria-hidden": "true", icon: danger, size: "small" }), errorMessage)))));
296
296
  }
297
297
  static get is() { return "pds-input"; }
298
298
  static get encapsulation() { return "shadow"; }
@@ -56,8 +56,8 @@ export class PdsLink {
56
56
  const targetValue = this.target || (this.external ? '_blank' : undefined);
57
57
  const showExternalIcon = this.external;
58
58
  const relValue = targetValue === '_blank' ? 'noopener noreferrer' : undefined;
59
- return (h("a", { key: '4757dc775fb132ea1fed93fed8e3cd18c77d45af', class: this.classNames(), download: this.download, href: this.href, id: this.componentId, part: "link", "aria-current": this.active ? 'page' : undefined, target: targetValue, rel: relValue, style: this.setLinkStyles(), "data-turbo": this.turbo || undefined, "data-turbo-frame": this.turboFrame || undefined, "data-turbo-action": this.turboAction || undefined, "data-turbo-method": this.turboMethod || undefined, "data-turbo-confirm": this.turboConfirm || undefined, "data-turbo-stream": this.turboStream || undefined, "data-turbo-prefetch": this.turboPrefetch || undefined, "data-turbo-preload": this.turboPreload || undefined }, h("slot", { key: '88e5a1ef3b0fc384f7449979029fa45c627aab99' }, this.href), showExternalIcon &&
60
- h("pds-icon", { key: '6f1b9cf0dab342ea09c1f52c605228ef4d04f829', icon: launch, size: this.fontSize })));
59
+ return (h("a", { key: '3b6f9d19d7f50d0606cf5f3c3a97b85ee4aa63b0', class: this.classNames(), download: this.download, href: this.href, id: this.componentId, part: "link", "aria-current": this.active ? 'page' : undefined, target: targetValue, rel: relValue, style: this.setLinkStyles(), "data-turbo": this.turbo || undefined, "data-turbo-frame": this.turboFrame || undefined, "data-turbo-action": this.turboAction || undefined, "data-turbo-method": this.turboMethod || undefined, "data-turbo-confirm": this.turboConfirm || undefined, "data-turbo-stream": this.turboStream || undefined, "data-turbo-prefetch": this.turboPrefetch || undefined, "data-turbo-preload": this.turboPreload || undefined }, h("slot", { key: 'a265f1c4c9b6ff089b23906d8f650bfd65b25013' }, this.href), showExternalIcon &&
60
+ h("pds-icon", { key: '9553a8256b6811296ea4b762e32662c1a2f4aecf', icon: launch, size: this.fontSize })));
61
61
  }
62
62
  static get is() { return "pds-link"; }
63
63
  static get encapsulation() { return "shadow"; }
@@ -66,7 +66,7 @@ export class PdsLoader {
66
66
  'aria-live': 'polite',
67
67
  };
68
68
  this.hostKeeper.record(hostClass, {}, hostAttributes);
69
- return (h(Host, Object.assign({ key: '81f97b8a6adf4d2c0e5516aa2af9054e200629e1', class: hostClass }, hostAttributes), this.variant === 'spinner' && (h("div", { key: '6e25806c83d6ddeb1141acdd083654867c6ff8a2', class: "pds-loader--spinner" }, h("svg", { key: '4798f27facfcf57da8d408319527fc6083489107', style: this.getSvgStyle(), viewBox: "0 0 200 200", fill: "none", part: "loader-svg" }, h("defs", { key: '0c64abfabc18ccd51ef41017e088f6ec10736d61' }, h("linearGradient", { key: '3aa61edf6250dc827bf925938b69008860f96596', id: "spinner-secondHalf" }, h("stop", { key: '2693d8a866492ef4ca98cbc4beb5f9f1a34a8b52', offset: "0%", "stop-opacity": "0", "stop-color": "currentColor" }), h("stop", { key: 'ae229fdc73733e4d6ab15a6663e67b574bd49b40', offset: "100%", "stop-opacity": "0.5", "stop-color": "currentColor" })), h("linearGradient", { key: '8ddbb46a1a387113d74a82cc4e3e0e9c7e12d573', id: "spinner-firstHalf" }, h("stop", { key: 'd166a3c1ae37c3afa898351683b07f5c4d0ee906', offset: "0%", "stop-opacity": "1", "stop-color": "currentColor" }), h("stop", { key: 'e4c9790bc9a645d752aa56c238fb8708310208b5', offset: "100%", "stop-opacity": "0.5", "stop-color": "currentColor" }))), h("g", { key: '8b3897ff925d4207f9060e2fb69afa657b1b8fe3', class: "pds-loader__spinner-path" }, h("path", { key: '603ef195d1fc64d2059d9fbfeb9b14e2bdb1cabe', stroke: "url(#spinner-secondHalf)", d: "M 4 100 A 96 96 0 0 1 196 100" }), h("path", { key: 'a649ac9538248f5a22d48008377e18f4407efad9', stroke: "url(#spinner-firstHalf)", d: "M 196 100 A 96 96 0 0 1 4 100" }), h("path", { key: '37f3772b61d1459959cc4d8c0b5c729dbd6953ff', stroke: "currentColor", "stroke-linecap": "round", d: "M 4 100 A 96 96 0 0 1 4 98" }))))), this.variant === 'typing' && (h("div", { key: 'e510c2e6498a5542ce6e6573fdc03e8770121cd7', class: "pds-loader--typing" }, h("span", { key: 'bbf4f5a328175f06b221d9abc73118505a09455d' }), h("span", { key: '9a7e80b28e1455ef9d0c1bdb330a6425a3037709' }), h("span", { key: 'f8aa1eb4f822a6d0e2a14a982bbe99866a97815b' }))), h("div", { key: '3492189495798a2ea861d0dcb460f1b25d43d565', class: `pds-loader__label ${this.showLabel ? '' : 'pds-loader--hidden'}` }, h("slot", { key: 'c1a19415b513a2a5f76a53d64b0ef5fbb4a5d100', name: "label" }, "Loading..."))));
69
+ return (h(Host, Object.assign({ key: 'c42c1aeec5c8db9a1065f35492734a8cb265f3ce', class: hostClass }, hostAttributes), this.variant === 'spinner' && (h("div", { key: 'dc1b7943709d03e02467cca0817fb6a7ad5ed10a', class: "pds-loader--spinner" }, h("svg", { key: 'db38e607541ac1eb91be87b2cd0240341c8fb51d', style: this.getSvgStyle(), viewBox: "0 0 200 200", fill: "none", part: "loader-svg" }, h("defs", { key: 'd734ef70b0039758a25881c22bb3e6453ac40012' }, h("linearGradient", { key: '697627f516c5f7b4cd5351dd39de231c0cb9e429', id: "spinner-secondHalf" }, h("stop", { key: '03082c0ec354685eebf7d0132202d54b083d26df', offset: "0%", "stop-opacity": "0", "stop-color": "currentColor" }), h("stop", { key: '181b661b36aeb44943e20dec513f7265a9487004', offset: "100%", "stop-opacity": "0.5", "stop-color": "currentColor" })), h("linearGradient", { key: '67f6c51aefe99bcbfdb741290337364501fc4fcb', id: "spinner-firstHalf" }, h("stop", { key: 'cb6adf27ecb06b42ba572a702153de960491b0b6', offset: "0%", "stop-opacity": "1", "stop-color": "currentColor" }), h("stop", { key: 'aeebabfa1ac00391937388feefa120bd0bb4d26c', offset: "100%", "stop-opacity": "0.5", "stop-color": "currentColor" }))), h("g", { key: 'f06ca75e4df171b6db426fce9bc34076cfee5bca', class: "pds-loader__spinner-path" }, h("path", { key: 'a278b37de8f77a1000efecb62b89e3f751712a98', stroke: "url(#spinner-secondHalf)", d: "M 4 100 A 96 96 0 0 1 196 100" }), h("path", { key: 'a035add4d01b60bcebf7625c8730d6a41ddf40ff', stroke: "url(#spinner-firstHalf)", d: "M 196 100 A 96 96 0 0 1 4 100" }), h("path", { key: '1189c8299d33a2a6bb6a8345b60f22bf4ad9beee', stroke: "currentColor", "stroke-linecap": "round", d: "M 4 100 A 96 96 0 0 1 4 98" }))))), this.variant === 'typing' && (h("div", { key: '39826fae20e8826d9c73cf57ba938583d610e1ea', class: "pds-loader--typing" }, h("span", { key: '8f2b837c79548a1080710a7cc30c3be3a051e1dd' }), h("span", { key: '8efb1193ef51f110950861767eccc3896e90b81e' }), h("span", { key: '366f2d205adbb043691c253cff17d2d29d56a2cc' }))), h("div", { key: 'aeaa4aa12863b34088e84fd2791c2ce32dc05248', class: `pds-loader__label ${this.showLabel ? '' : 'pds-loader--hidden'}` }, h("slot", { key: '7a8ec45aed1cd6f9e60f4db2ec5376439fa41c81', name: "label" }, "Loading..."))));
70
70
  }
71
71
  static get is() { return "pds-loader"; }
72
72
  static get encapsulation() { return "shadow"; }
@@ -181,10 +181,10 @@ export class PdsModalContent {
181
181
  render() {
182
182
  // Only apply max-height style if it's not 'none'
183
183
  const styleObj = this.contentMaxHeight !== 'none' ? { maxHeight: this.contentMaxHeight } : {};
184
- return (h(Host, { key: 'f66dbdd08d6af3f87b0a6e8f30e1948b2f674e34' }, h("div", { key: 'ac0469cbfe48002d5bc7f401e0dc30926cfd4421', class: {
184
+ return (h(Host, { key: 'd41d5632eb6a2dafe921546af60f835d3545cc4f' }, h("div", { key: '741ac9f28149039ecf5051142a939ab62ef26a87', class: {
185
185
  'pds-modal-content': true,
186
186
  [`pds-modal-content--border-${this.border}`]: true
187
- }, style: styleObj, tabindex: "-1" }, h("slot", { key: '26a8a45ab4dcd0349da68304fa3cacc64603208a' }))));
187
+ }, style: styleObj, tabindex: "-1" }, h("slot", { key: '090a52e9425d4df61c2d8216cc19f0925babdffe' }))));
188
188
  }
189
189
  static get is() { return "pds-modal-content"; }
190
190
  static get originalStyleUrls() {
@@ -9,7 +9,7 @@ export class PdsModalFooter {
9
9
  unwrapReconnectedContent(this.el.querySelector('.pds-modal__footer'), '.pds-modal__footer');
10
10
  }
11
11
  render() {
12
- return (h("footer", { key: '1148892c2d6b9a461f6c04a670fceda76c1be53a', class: "pds-modal__footer" }, h("slot", { key: 'ccd754674c82c415f8c056c9dda6327df35dbd03' })));
12
+ return (h("footer", { key: '030153b84f1ea1cb133c9ccec3ad86583995974f', class: "pds-modal__footer" }, h("slot", { key: '3a479e7047f3e845a65c37d60539648c8ff78602' })));
13
13
  }
14
14
  static get is() { return "pds-modal-footer"; }
15
15
  static get originalStyleUrls() {
@@ -9,7 +9,7 @@ export class PdsModalHeader {
9
9
  unwrapReconnectedContent(this.el.querySelector('.pds-modal__header'), '.pds-modal__header');
10
10
  }
11
11
  render() {
12
- return (h("header", { key: '030153b84f1ea1cb133c9ccec3ad86583995974f', class: "pds-modal__header" }, h("slot", { key: '3a479e7047f3e845a65c37d60539648c8ff78602' })));
12
+ return (h("header", { key: 'ee3ac5fb9b00a943aa86c3434ea07291b74d776c', class: "pds-modal__header" }, h("slot", { key: '0b0f7ff257635723099c536648a826be8dcc05e7' })));
13
13
  }
14
14
  static get is() { return "pds-modal-header"; }
15
15
  static get originalStyleUrls() {