@pine-ds/core 4.1.0 → 4.2.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 (394) hide show
  1. package/components/index.d.ts +8 -0
  2. package/components/index.js +1 -1
  3. package/components/mock-pds-modal.js +1 -1
  4. package/components/pds-chip2.js +1 -1
  5. package/components/pds-copytext.js +1 -1
  6. package/components/pds-drawer-content.d.ts +11 -0
  7. package/components/pds-drawer-content.js +1 -0
  8. package/components/pds-drawer-footer.d.ts +11 -0
  9. package/components/pds-drawer-footer.js +1 -0
  10. package/components/pds-drawer-header.d.ts +11 -0
  11. package/components/pds-drawer-header.js +1 -0
  12. package/components/pds-drawer.d.ts +11 -0
  13. package/components/pds-drawer.js +1 -0
  14. package/components/pds-dropdown-menu-item.js +1 -1
  15. package/components/pds-dropdown-menu-separator.js +1 -1
  16. package/components/pds-dropdown-menu.js +1 -1
  17. package/components/pds-filter.js +1 -1
  18. package/components/pds-filters.js +1 -1
  19. package/components/pds-image.js +1 -1
  20. package/components/pds-input.js +1 -1
  21. package/components/pds-link2.js +1 -1
  22. package/components/pds-loader2.js +1 -1
  23. package/components/pds-modal-content.js +1 -1
  24. package/components/pds-modal-footer.js +1 -1
  25. package/components/pds-modal-header.js +1 -1
  26. package/components/pds-modal.js +1 -1
  27. package/components/pds-modal2.js +1 -0
  28. package/components/pds-multiselect.js +1 -1
  29. package/components/pds-popover.js +1 -1
  30. package/components/pds-progress.js +1 -1
  31. package/components/pds-property.js +1 -1
  32. package/components/pds-radio-group.js +1 -1
  33. package/components/pds-radio.js +1 -1
  34. package/components/pds-row.js +1 -1
  35. package/components/pds-select.js +1 -1
  36. package/components/pds-sortable-item.js +1 -1
  37. package/components/pds-sortable.js +2 -2
  38. package/components/pds-switch.js +1 -1
  39. package/components/pds-table-body.js +1 -1
  40. package/components/pds-table-cell2.js +1 -1
  41. package/components/pds-table-head-cell2.js +1 -1
  42. package/components/pds-table-head.js +1 -1
  43. package/components/pds-table-row.js +1 -1
  44. package/components/pds-tabpanel.js +1 -1
  45. package/components/pds-tabs.js +1 -1
  46. package/components/pds-text2.js +1 -1
  47. package/components/pds-textarea.js +1 -1
  48. package/components/pds-toast.js +1 -1
  49. package/components/pds-tooltip.js +1 -1
  50. package/components/truncation-tooltip.js +1 -1
  51. package/dist/cjs/{index-BMV0nzMk.js → index-Bu3NXpbK.js} +1 -1
  52. package/dist/cjs/index.cjs.js +20 -0
  53. package/dist/cjs/loader.cjs.js +1 -1
  54. package/dist/cjs/mock-pds-modal.cjs.entry.js +1 -1
  55. package/dist/cjs/pds-accordion.cjs.entry.js +1 -1
  56. package/dist/cjs/pds-avatar.cjs.entry.js +1 -1
  57. package/dist/cjs/pds-button.cjs.entry.js +1 -1
  58. package/dist/cjs/pds-checkbox.cjs.entry.js +1 -1
  59. package/dist/cjs/pds-chip.cjs.entry.js +17 -8
  60. package/dist/cjs/pds-copytext.cjs.entry.js +7 -3
  61. package/dist/cjs/pds-drawer-content.cjs.entry.js +23 -0
  62. package/dist/cjs/pds-drawer-footer.cjs.entry.js +23 -0
  63. package/dist/cjs/pds-drawer-header.cjs.entry.js +23 -0
  64. package/dist/cjs/pds-drawer.cjs.entry.js +137 -0
  65. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +1 -1
  66. package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +1 -1
  67. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +1 -1
  68. package/dist/cjs/pds-filter.cjs.entry.js +2 -2
  69. package/dist/cjs/pds-filters.cjs.entry.js +1 -1
  70. package/dist/cjs/pds-image.cjs.entry.js +2 -2
  71. package/dist/cjs/pds-input.cjs.entry.js +3 -3
  72. package/dist/cjs/pds-link.cjs.entry.js +3 -3
  73. package/dist/cjs/pds-loader.cjs.entry.js +1 -1
  74. package/dist/cjs/pds-modal-content.cjs.entry.js +2 -2
  75. package/dist/cjs/pds-modal-footer.cjs.entry.js +1 -1
  76. package/dist/cjs/pds-modal-header.cjs.entry.js +1 -1
  77. package/dist/cjs/pds-modal.cjs.entry.js +141 -10
  78. package/dist/cjs/pds-multiselect.cjs.entry.js +4 -4
  79. package/dist/cjs/pds-popover.cjs.entry.js +1 -1
  80. package/dist/cjs/pds-progress.cjs.entry.js +1 -1
  81. package/dist/cjs/pds-property.cjs.entry.js +1 -1
  82. package/dist/cjs/pds-radio-group.cjs.entry.js +4 -4
  83. package/dist/cjs/pds-radio.cjs.entry.js +4 -4
  84. package/dist/cjs/pds-row.cjs.entry.js +1 -1
  85. package/dist/cjs/pds-select.cjs.entry.js +2 -2
  86. package/dist/cjs/pds-sortable-item.cjs.entry.js +2 -2
  87. package/dist/cjs/pds-sortable.cjs.entry.js +1 -1
  88. package/dist/cjs/pds-switch.cjs.entry.js +5 -5
  89. package/dist/cjs/pds-table-body.cjs.entry.js +1 -1
  90. package/dist/cjs/pds-table-cell.cjs.entry.js +3 -3
  91. package/dist/cjs/pds-table-head-cell.cjs.entry.js +3 -3
  92. package/dist/cjs/pds-table-head.cjs.entry.js +1 -1
  93. package/dist/cjs/pds-table-row.cjs.entry.js +1 -1
  94. package/dist/cjs/pds-tabpanel.cjs.entry.js +1 -1
  95. package/dist/cjs/pds-tabs.cjs.entry.js +1 -1
  96. package/dist/cjs/pds-text.cjs.entry.js +5 -23
  97. package/dist/cjs/pds-textarea.cjs.entry.js +5 -5
  98. package/dist/cjs/pds-toast.cjs.entry.js +3 -3
  99. package/dist/cjs/pds-tooltip.cjs.entry.js +2 -2
  100. package/dist/cjs/pine-core.cjs.js +1 -1
  101. package/dist/cjs/{truncation-tooltip-CVzAha5B.js → truncation-tooltip-Bps7_rUy.js} +51 -1
  102. package/dist/collection/collection-manifest.json +4 -0
  103. package/dist/collection/components/pds-chip/pds-chip.js +15 -6
  104. package/dist/collection/components/pds-copytext/pds-copytext.js +5 -1
  105. package/dist/collection/components/pds-drawer/pds-drawer-content/pds-drawer-content.css +22 -0
  106. package/dist/collection/components/pds-drawer/pds-drawer-content/pds-drawer-content.js +29 -0
  107. package/dist/collection/components/pds-drawer/pds-drawer-footer/pds-drawer-footer.css +15 -0
  108. package/dist/collection/components/pds-drawer/pds-drawer-footer/pds-drawer-footer.js +23 -0
  109. package/dist/collection/components/pds-drawer/pds-drawer-header/pds-drawer-header.css +15 -0
  110. package/dist/collection/components/pds-drawer/pds-drawer-header/pds-drawer-header.js +23 -0
  111. package/dist/collection/components/pds-drawer/pds-drawer.css +36 -0
  112. package/dist/collection/components/pds-drawer/pds-drawer.js +362 -0
  113. package/dist/collection/components/pds-drawer/stories/pds-drawer.stories.js +72 -0
  114. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js +1 -1
  115. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js +1 -1
  116. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +1 -1
  117. package/dist/collection/components/pds-filters/pds-filter/pds-filter.js +1 -1
  118. package/dist/collection/components/pds-filters/pds-filters.js +1 -1
  119. package/dist/collection/components/pds-image/pds-image.js +2 -2
  120. package/dist/collection/components/pds-input/pds-input.js +2 -2
  121. package/dist/collection/components/pds-link/pds-link.js +2 -2
  122. package/dist/collection/components/pds-loader/pds-loader.js +1 -1
  123. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js +2 -2
  124. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js +1 -1
  125. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js +1 -1
  126. package/dist/collection/components/pds-modal/pds-modal.js +164 -10
  127. package/dist/collection/components/pds-modal/test/mock-pds-modal.js +1 -1
  128. package/dist/collection/components/pds-multiselect/pds-multiselect.js +3 -3
  129. package/dist/collection/components/pds-popover/pds-popover.js +1 -1
  130. package/dist/collection/components/pds-progress/pds-progress.js +1 -1
  131. package/dist/collection/components/pds-property/pds-property.js +1 -1
  132. package/dist/collection/components/pds-radio/pds-radio.js +3 -3
  133. package/dist/collection/components/pds-radio-group/pds-radio-group.js +3 -3
  134. package/dist/collection/components/pds-row/pds-row.js +1 -1
  135. package/dist/collection/components/pds-select/pds-select.js +1 -1
  136. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +1 -1
  137. package/dist/collection/components/pds-sortable/pds-sortable.js +1 -1
  138. package/dist/collection/components/pds-switch/pds-switch.css +1 -1
  139. package/dist/collection/components/pds-switch/pds-switch.js +3 -3
  140. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js +1 -1
  141. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +3 -3
  142. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +1 -1
  143. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +2 -2
  144. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +1 -1
  145. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +1 -1
  146. package/dist/collection/components/pds-tabs/pds-tabs.js +1 -1
  147. package/dist/collection/components/pds-text/pds-text.js +2 -2
  148. package/dist/collection/components/pds-textarea/pds-textarea.js +4 -4
  149. package/dist/collection/components/pds-toast/pds-toast.js +3 -3
  150. package/dist/collection/components/pds-tooltip/pds-tooltip.js +2 -2
  151. package/dist/collection/index.js +1 -0
  152. package/dist/collection/utils/test/reduced-motion.js +78 -0
  153. package/dist/collection/utils/truncation-tooltip.js +51 -1
  154. package/dist/docs.json +385 -5
  155. package/dist/esm/{index-Bu9gFIxM.js → index-DdPaBxPo.js} +1 -1
  156. package/dist/esm/index.js +19 -0
  157. package/dist/esm/loader.js +1 -1
  158. package/dist/esm/mock-pds-modal.entry.js +1 -1
  159. package/dist/esm/pds-accordion.entry.js +1 -1
  160. package/dist/esm/pds-avatar.entry.js +1 -1
  161. package/dist/esm/pds-button.entry.js +1 -1
  162. package/dist/esm/pds-checkbox.entry.js +1 -1
  163. package/dist/esm/pds-chip.entry.js +17 -8
  164. package/dist/esm/pds-copytext.entry.js +7 -3
  165. package/dist/esm/pds-drawer-content.entry.js +21 -0
  166. package/dist/esm/pds-drawer-footer.entry.js +21 -0
  167. package/dist/esm/pds-drawer-header.entry.js +21 -0
  168. package/dist/esm/pds-drawer.entry.js +135 -0
  169. package/dist/esm/pds-dropdown-menu-item.entry.js +1 -1
  170. package/dist/esm/pds-dropdown-menu-separator.entry.js +1 -1
  171. package/dist/esm/pds-dropdown-menu.entry.js +1 -1
  172. package/dist/esm/pds-filter.entry.js +2 -2
  173. package/dist/esm/pds-filters.entry.js +1 -1
  174. package/dist/esm/pds-image.entry.js +2 -2
  175. package/dist/esm/pds-input.entry.js +3 -3
  176. package/dist/esm/pds-link.entry.js +3 -3
  177. package/dist/esm/pds-loader.entry.js +1 -1
  178. package/dist/esm/pds-modal-content.entry.js +2 -2
  179. package/dist/esm/pds-modal-footer.entry.js +1 -1
  180. package/dist/esm/pds-modal-header.entry.js +1 -1
  181. package/dist/esm/pds-modal.entry.js +141 -10
  182. package/dist/esm/pds-multiselect.entry.js +4 -4
  183. package/dist/esm/pds-popover.entry.js +1 -1
  184. package/dist/esm/pds-progress.entry.js +1 -1
  185. package/dist/esm/pds-property.entry.js +1 -1
  186. package/dist/esm/pds-radio-group.entry.js +4 -4
  187. package/dist/esm/pds-radio.entry.js +4 -4
  188. package/dist/esm/pds-row.entry.js +1 -1
  189. package/dist/esm/pds-select.entry.js +2 -2
  190. package/dist/esm/pds-sortable-item.entry.js +2 -2
  191. package/dist/esm/pds-sortable.entry.js +1 -1
  192. package/dist/esm/pds-switch.entry.js +5 -5
  193. package/dist/esm/pds-table-body.entry.js +1 -1
  194. package/dist/esm/pds-table-cell.entry.js +3 -3
  195. package/dist/esm/pds-table-head-cell.entry.js +3 -3
  196. package/dist/esm/pds-table-head.entry.js +1 -1
  197. package/dist/esm/pds-table-row.entry.js +1 -1
  198. package/dist/esm/pds-tabpanel.entry.js +1 -1
  199. package/dist/esm/pds-tabs.entry.js +1 -1
  200. package/dist/esm/pds-text.entry.js +3 -21
  201. package/dist/esm/pds-textarea.entry.js +5 -5
  202. package/dist/esm/pds-toast.entry.js +3 -3
  203. package/dist/esm/pds-tooltip.entry.js +2 -2
  204. package/dist/esm/pine-core.js +1 -1
  205. package/dist/esm/{truncation-tooltip-Blk4GigP.js → truncation-tooltip-CdtEBn_5.js} +51 -1
  206. package/dist/esm-es5/index.js +1 -0
  207. package/dist/esm-es5/loader.js +1 -1
  208. package/dist/esm-es5/mock-pds-modal.entry.js +1 -1
  209. package/dist/esm-es5/pds-accordion.entry.js +1 -1
  210. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  211. package/dist/esm-es5/pds-button.entry.js +1 -1
  212. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  213. package/dist/esm-es5/pds-chip.entry.js +1 -1
  214. package/dist/esm-es5/pds-copytext.entry.js +1 -1
  215. package/dist/esm-es5/pds-drawer-content.entry.js +1 -0
  216. package/dist/esm-es5/pds-drawer-footer.entry.js +1 -0
  217. package/dist/esm-es5/pds-drawer-header.entry.js +1 -0
  218. package/dist/esm-es5/pds-drawer.entry.js +1 -0
  219. package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -1
  220. package/dist/esm-es5/pds-dropdown-menu-separator.entry.js +1 -1
  221. package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
  222. package/dist/esm-es5/pds-filter.entry.js +1 -1
  223. package/dist/esm-es5/pds-filters.entry.js +1 -1
  224. package/dist/esm-es5/pds-image.entry.js +1 -1
  225. package/dist/esm-es5/pds-input.entry.js +1 -1
  226. package/dist/esm-es5/pds-link.entry.js +1 -1
  227. package/dist/esm-es5/pds-loader.entry.js +1 -1
  228. package/dist/esm-es5/pds-modal-content.entry.js +1 -1
  229. package/dist/esm-es5/pds-modal-footer.entry.js +1 -1
  230. package/dist/esm-es5/pds-modal-header.entry.js +1 -1
  231. package/dist/esm-es5/pds-modal.entry.js +1 -1
  232. package/dist/esm-es5/pds-multiselect.entry.js +1 -1
  233. package/dist/esm-es5/pds-popover.entry.js +1 -1
  234. package/dist/esm-es5/pds-progress.entry.js +1 -1
  235. package/dist/esm-es5/pds-property.entry.js +1 -1
  236. package/dist/esm-es5/pds-radio-group.entry.js +1 -1
  237. package/dist/esm-es5/pds-radio.entry.js +1 -1
  238. package/dist/esm-es5/pds-row.entry.js +1 -1
  239. package/dist/esm-es5/pds-select.entry.js +1 -1
  240. package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
  241. package/dist/esm-es5/pds-sortable.entry.js +1 -1
  242. package/dist/esm-es5/pds-switch.entry.js +1 -1
  243. package/dist/esm-es5/pds-table-body.entry.js +1 -1
  244. package/dist/esm-es5/pds-table-cell.entry.js +1 -1
  245. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  246. package/dist/esm-es5/pds-table-head.entry.js +1 -1
  247. package/dist/esm-es5/pds-table-row.entry.js +1 -1
  248. package/dist/esm-es5/pds-tabpanel.entry.js +1 -1
  249. package/dist/esm-es5/pds-tabs.entry.js +1 -1
  250. package/dist/esm-es5/pds-text.entry.js +1 -1
  251. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  252. package/dist/esm-es5/pds-toast.entry.js +1 -1
  253. package/dist/esm-es5/pds-tooltip.entry.js +1 -1
  254. package/dist/esm-es5/pine-core.js +1 -1
  255. package/dist/esm-es5/truncation-tooltip-CdtEBn_5.js +1 -0
  256. package/dist/pine-core/index.esm.js +1 -0
  257. package/dist/pine-core/p-02a47ebb.entry.js +1 -0
  258. package/dist/pine-core/{p-6089d811.entry.js → p-049681fc.entry.js} +1 -1
  259. package/dist/pine-core/p-053b0898.system.entry.js +1 -0
  260. package/dist/pine-core/{p-b0531455.entry.js → p-09413b07.entry.js} +1 -1
  261. package/dist/pine-core/{p-ba8bd9dc.system.entry.js → p-0ab735aa.system.entry.js} +1 -1
  262. package/dist/pine-core/p-12182cab.entry.js +1 -0
  263. package/dist/pine-core/p-15d3a4bc.system.entry.js +1 -0
  264. package/dist/pine-core/{p-bba759f8.system.entry.js → p-1614c000.system.entry.js} +1 -1
  265. package/dist/pine-core/{p-c0753d9f.entry.js → p-17dc3f87.entry.js} +1 -1
  266. package/dist/pine-core/p-18a59cdd.system.entry.js +1 -0
  267. package/dist/pine-core/{p-c713ffc6.system.entry.js → p-1e2a9b5d.system.entry.js} +1 -1
  268. package/dist/pine-core/{p-ce63f726.system.entry.js → p-1f307e59.system.entry.js} +1 -1
  269. package/dist/pine-core/{p-056667f0.entry.js → p-2016c878.entry.js} +1 -1
  270. package/dist/pine-core/{p-bfa640f4.system.entry.js → p-2eb8d697.system.entry.js} +1 -1
  271. package/dist/pine-core/{p-af4a24d9.entry.js → p-31e1722e.entry.js} +1 -1
  272. package/dist/pine-core/{p-63f5f66f.system.entry.js → p-324a7ae4.system.entry.js} +1 -1
  273. package/dist/pine-core/{p-d157a33a.entry.js → p-32f10aa9.entry.js} +1 -1
  274. package/dist/pine-core/p-33c0f3c9.system.entry.js +1 -0
  275. package/dist/pine-core/{p-b17fa86a.system.entry.js → p-3464b456.system.entry.js} +1 -1
  276. package/dist/pine-core/{p-902b3e8b.system.entry.js → p-34e38037.system.entry.js} +1 -1
  277. package/dist/pine-core/{p-8e6a8a8e.entry.js → p-3605a5f5.entry.js} +1 -1
  278. package/dist/pine-core/{p-65557500.entry.js → p-376f8286.entry.js} +1 -1
  279. package/dist/pine-core/{p-0e89a189.entry.js → p-3873f55b.entry.js} +1 -1
  280. package/dist/pine-core/{p-a7eabc0c.system.entry.js → p-3c229a00.system.entry.js} +1 -1
  281. package/dist/pine-core/{p-46f0dda5.system.entry.js → p-3c4236a8.system.entry.js} +1 -1
  282. package/dist/pine-core/{p-afd07d5b.entry.js → p-3e0c6384.entry.js} +1 -1
  283. package/dist/pine-core/p-3eca0b00.entry.js +1 -0
  284. package/dist/pine-core/{p-0fcda1ec.entry.js → p-3f12afb1.entry.js} +1 -1
  285. package/dist/pine-core/p-43338f77.system.entry.js +1 -0
  286. package/dist/pine-core/{p-463eb0e6.system.entry.js → p-4661259e.system.entry.js} +1 -1
  287. package/dist/pine-core/{p-92c79ed4.system.entry.js → p-4d388957.system.entry.js} +1 -1
  288. package/dist/pine-core/{p-3050c66f.entry.js → p-51b8490d.entry.js} +1 -1
  289. package/dist/pine-core/{p-e16dfb32.system.entry.js → p-51dff5af.system.entry.js} +1 -1
  290. package/dist/pine-core/p-53a4852e.system.entry.js +1 -0
  291. package/dist/pine-core/{p-d54af26c.system.entry.js → p-56b34569.system.entry.js} +1 -1
  292. package/dist/pine-core/{p-cf72e9b1.system.entry.js → p-5772f260.system.entry.js} +1 -1
  293. package/dist/pine-core/{p-9fd1e8f4.system.entry.js → p-585ad368.system.entry.js} +1 -1
  294. package/dist/pine-core/p-591fbff5.entry.js +1 -0
  295. package/dist/pine-core/{p-2fd71a0c.entry.js → p-5aea1082.entry.js} +1 -1
  296. package/dist/pine-core/{p-460aa66f.system.entry.js → p-5dd393cd.system.entry.js} +1 -1
  297. package/dist/pine-core/p-613a64f1.entry.js +1 -0
  298. package/dist/pine-core/{p-e450eb27.system.entry.js → p-630f33d6.system.entry.js} +1 -1
  299. package/dist/pine-core/{p-33de0eb7.system.entry.js → p-63686e2a.system.entry.js} +1 -1
  300. package/dist/pine-core/{p-2d4b9253.entry.js → p-6f7a7d55.entry.js} +1 -1
  301. package/dist/pine-core/p-6fd863e5.system.entry.js +1 -0
  302. package/dist/pine-core/{p-8702635d.system.entry.js → p-76286a68.system.entry.js} +1 -1
  303. package/dist/pine-core/p-78fd593d.system.entry.js +1 -0
  304. package/dist/pine-core/{p-ae296598.entry.js → p-7e2b934d.entry.js} +1 -1
  305. package/dist/pine-core/p-7e44106e.entry.js +1 -0
  306. package/dist/pine-core/p-84ade640.entry.js +1 -0
  307. package/dist/pine-core/{p-eb4058ed.system.entry.js → p-869ed1c0.system.entry.js} +1 -1
  308. package/dist/pine-core/{p-9b68669f.entry.js → p-8be301b6.entry.js} +1 -1
  309. package/dist/pine-core/{p-08151143.system.entry.js → p-8cc270f0.system.entry.js} +1 -1
  310. package/dist/pine-core/p-8cea0d7a.system.entry.js +1 -0
  311. package/dist/pine-core/{p-3b9e77b3.entry.js → p-8eef80d5.entry.js} +1 -1
  312. package/dist/pine-core/{p-b255d3b7.entry.js → p-957dbb0c.entry.js} +1 -1
  313. package/dist/pine-core/p-B2nn1gSd.js +1 -0
  314. package/dist/pine-core/{p-CRCxGYgw.system.js → p-B2qvvB3q.system.js} +1 -1
  315. package/dist/pine-core/p-Dr-FzkdE.system.js +1 -1
  316. package/dist/pine-core/p-G3CPPJEt.system.js +1 -0
  317. package/dist/pine-core/{p-ce79321b.system.entry.js → p-a11a9c40.system.entry.js} +1 -1
  318. package/dist/pine-core/p-a4a58477.entry.js +1 -0
  319. package/dist/pine-core/{p-9a7294e7.system.entry.js → p-a98bf89f.system.entry.js} +1 -1
  320. package/dist/pine-core/{p-aecaff12.entry.js → p-ac0098fd.entry.js} +1 -1
  321. package/dist/pine-core/{p-228a9068.system.entry.js → p-b32e3174.system.entry.js} +1 -1
  322. package/dist/pine-core/{p-2af19aa7.entry.js → p-b923a70b.entry.js} +1 -1
  323. package/dist/pine-core/p-be4a6cc2.entry.js +1 -0
  324. package/dist/pine-core/{p-d804d37b.system.entry.js → p-be819bff.system.entry.js} +1 -1
  325. package/dist/pine-core/{p-85434de8.system.entry.js → p-c0b3f2c1.system.entry.js} +1 -1
  326. package/dist/pine-core/p-c1f8a187.entry.js +1 -0
  327. package/dist/pine-core/{p-4d6944aa.entry.js → p-c5ce6dea.entry.js} +1 -1
  328. package/dist/pine-core/{p-97198cb6.system.entry.js → p-c8bffb08.system.entry.js} +1 -1
  329. package/dist/pine-core/p-cf24ed1e.system.entry.js +1 -0
  330. package/dist/pine-core/{p-9487ff20.system.entry.js → p-d0d2a886.system.entry.js} +1 -1
  331. package/dist/pine-core/{p-f3683be8.entry.js → p-d12ef40d.entry.js} +1 -1
  332. package/dist/pine-core/{p-aa208514.entry.js → p-d21739eb.entry.js} +1 -1
  333. package/dist/pine-core/p-d280741f.entry.js +1 -0
  334. package/dist/pine-core/p-d43db3ba.entry.js +1 -0
  335. package/dist/pine-core/{p-1e952dbb.entry.js → p-d46adf7d.entry.js} +1 -1
  336. package/dist/pine-core/{p-7a1971ec.entry.js → p-d7865297.entry.js} +1 -1
  337. package/dist/pine-core/{p-226232a7.system.entry.js → p-d9ffb2d9.system.entry.js} +1 -1
  338. package/dist/pine-core/p-db5703f2.entry.js +1 -0
  339. package/dist/pine-core/p-dd6d9807.system.entry.js +1 -0
  340. package/dist/pine-core/p-e0da17aa.system.entry.js +1 -0
  341. package/dist/pine-core/{p-4923a3fe.entry.js → p-e3600c53.entry.js} +1 -1
  342. package/dist/pine-core/{p-a9e54964.entry.js → p-e3a7d2db.entry.js} +1 -1
  343. package/dist/pine-core/{p-04a30a2d.system.entry.js → p-e3cd4627.system.entry.js} +1 -1
  344. package/dist/pine-core/{p-1649dd61.system.entry.js → p-e410b0d8.system.entry.js} +1 -1
  345. package/dist/pine-core/p-e5bbe8cc.entry.js +1 -0
  346. package/dist/pine-core/{p-4dad0878.entry.js → p-e95225cf.entry.js} +1 -1
  347. package/dist/pine-core/{p-544ccf67.entry.js → p-ed297f3e.entry.js} +1 -1
  348. package/dist/pine-core/{p-fcf91f14.system.entry.js → p-f21aea90.system.entry.js} +1 -1
  349. package/dist/pine-core/{p-a3c4c0ee.entry.js → p-f7a5062f.entry.js} +1 -1
  350. package/dist/pine-core/p-f94667b5.entry.js +1 -0
  351. package/dist/pine-core/p-fbf5f315.entry.js +1 -0
  352. package/dist/pine-core/{p-7c18e9e8.system.entry.js → p-fec298bb.system.entry.js} +1 -1
  353. package/dist/pine-core/pine-core.esm.js +1 -1
  354. package/dist/types/components/pds-drawer/pds-drawer-content/pds-drawer-content.d.ts +11 -0
  355. package/dist/types/components/pds-drawer/pds-drawer-footer/pds-drawer-footer.d.ts +5 -0
  356. package/dist/types/components/pds-drawer/pds-drawer-header/pds-drawer-header.d.ts +5 -0
  357. package/dist/types/components/pds-drawer/pds-drawer.d.ts +78 -0
  358. package/dist/types/components/pds-modal/pds-modal.d.ts +38 -0
  359. package/dist/types/components/pds-table/pds-table-cell/pds-table-cell.d.ts +2 -1
  360. package/dist/types/components/pds-text/pds-text.d.ts +2 -1
  361. package/dist/types/components.d.ts +228 -4
  362. package/dist/types/index.d.ts +1 -0
  363. package/dist/types/utils/test/reduced-motion.d.ts +30 -0
  364. package/dist/types/utils/truncation-tooltip.d.ts +12 -0
  365. package/dist/vscode.html-data.json +139 -2
  366. package/hydrate/index.js +538 -101
  367. package/hydrate/index.mjs +538 -101
  368. package/package.json +7 -3
  369. package/dist/esm-es5/truncation-tooltip-Blk4GigP.js +0 -1
  370. package/dist/pine-core/p-0d73d473.entry.js +0 -1
  371. package/dist/pine-core/p-1ba361cb.entry.js +0 -1
  372. package/dist/pine-core/p-210f0994.system.entry.js +0 -1
  373. package/dist/pine-core/p-2e214db6.entry.js +0 -1
  374. package/dist/pine-core/p-3cdc1a5b.entry.js +0 -1
  375. package/dist/pine-core/p-4faff617.entry.js +0 -1
  376. package/dist/pine-core/p-50e0f726.system.entry.js +0 -1
  377. package/dist/pine-core/p-520f7a5b.entry.js +0 -1
  378. package/dist/pine-core/p-53999cd6.system.entry.js +0 -1
  379. package/dist/pine-core/p-5c239f0a.entry.js +0 -1
  380. package/dist/pine-core/p-611f68b7.system.entry.js +0 -1
  381. package/dist/pine-core/p-897fe88c.entry.js +0 -1
  382. package/dist/pine-core/p-9507eb49.system.entry.js +0 -1
  383. package/dist/pine-core/p-BNSGedhN.js +0 -1
  384. package/dist/pine-core/p-YWpyar7R.system.js +0 -1
  385. package/dist/pine-core/p-a53222f7.entry.js +0 -1
  386. package/dist/pine-core/p-a8ab4d9b.entry.js +0 -1
  387. package/dist/pine-core/p-b52deffb.entry.js +0 -1
  388. package/dist/pine-core/p-b6c2090f.system.entry.js +0 -1
  389. package/dist/pine-core/p-d27ef352.system.entry.js +0 -1
  390. package/dist/pine-core/p-e11795db.system.entry.js +0 -1
  391. package/dist/pine-core/p-f09ce49e.entry.js +0 -1
  392. /package/dist/esm-es5/{index-Bu9gFIxM.js → index-DdPaBxPo.js} +0 -0
  393. /package/dist/pine-core/{p-Bjc6fc_Y.system.js → p--Llh7wKm.system.js} +0 -0
  394. /package/dist/pine-core/{p-Bu9gFIxM.js → p-DdPaBxPo.js} +0 -0
@@ -0,0 +1,137 @@
1
+ 'use strict';
2
+
3
+ var index = require('./index-CuQil7H0.js');
4
+ var reconnectedContent = require('./reconnected-content-CpnEQcTp.js');
5
+
6
+ const pdsDrawerCss = () => `.pds-drawer__modal>.pds-modal__backdrop{-ms-flex-align:stretch;align-items:stretch;background-color:transparent;pointer-events:none}@supports ((-webkit-backdrop-filter: blur(3px)) or (backdrop-filter: blur(3px))){.pds-drawer__modal>.pds-modal__backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}}.pds-drawer__modal>.pds-modal__backdrop>.pds-modal{border-radius:0;height:100%;margin:0;max-height:100%;max-width:100%;pointer-events:auto;width:var(--pds-drawer-width, 500px)}.pds-drawer{display:contents}.pds-drawer.pds-drawer--end .pds-drawer__modal>.pds-modal__backdrop{-ms-flex-pack:end;justify-content:flex-end}.pds-drawer.pds-drawer--start .pds-drawer__modal>.pds-modal__backdrop{-ms-flex-pack:start;justify-content:flex-start}.pds-drawer.pds-drawer--sm{--pds-drawer-width:360px}.pds-drawer.pds-drawer--md{--pds-drawer-width:500px}`;
7
+
8
+ // Known selectors for content Pine components portal to document.body rather
9
+ // than rendering in place — pds-popover, pds-tooltip, pds-combobox's dropdown.
10
+ // A pointerdown landing on one of these is not "outside" the drawer in the
11
+ // sense light dismiss cares about: it belongs to an overlay something inside
12
+ // the drawer opened, even though it is not a DOM descendant of the drawer.
13
+ const PORTALED_OVERLAY_SELECTOR = '.pds-popover, .pds-tooltip, .pds-combobox-dropdown-portal';
14
+ const PdsDrawer = class {
15
+ constructor(hostRef) {
16
+ index.registerInstance(this, hostRef);
17
+ this.pdsDrawerOpen = index.createEvent(this, "pdsDrawerOpen");
18
+ this.pdsDrawerClose = index.createEvent(this, "pdsDrawerClose");
19
+ /**
20
+ * Whether the drawer is open
21
+ * @default false
22
+ */
23
+ this.open = false;
24
+ /**
25
+ * Which edge of the viewport the drawer is docked to. Logical, so this is
26
+ * free under RTL — `end` is the inline-end edge regardless of direction.
27
+ * @default 'end'
28
+ */
29
+ this.side = 'end';
30
+ /**
31
+ * The drawer's width.
32
+ * @default 'md'
33
+ */
34
+ this.size = 'md';
35
+ /**
36
+ * Whether the drawer content should be scrollable
37
+ * @default true
38
+ */
39
+ this.scrollable = true;
40
+ /**
41
+ * Whether the drawer can be dismissed with a pointerdown outside it.
42
+ * Replaces `pds-modal`'s `backdropDismiss` — there is no backdrop to click.
43
+ * This also gates Escape, matching how `backdropDismiss` gates Escape on
44
+ * `pds-modal` today: setting this to `false` means the close button is the
45
+ * only way out.
46
+ *
47
+ * A trigger outside the drawer should only ever set `open` to `true` and
48
+ * leave closing to the drawer itself. A toggle-style trigger (`open =
49
+ * !open`) fights light dismiss: clicking it while open closes the drawer
50
+ * on `pointerdown`, then the trigger's own click handler re-opens it.
51
+ * @default true
52
+ */
53
+ this.lightDismiss = true;
54
+ /**
55
+ * Whether to move focus into the drawer when it opens. `auto` is right for
56
+ * a drawer opened by a direct user action (a click, a deep link the user
57
+ * just navigated to). Set to `none` for a drawer that can open from a
58
+ * background event while the user is mid-task elsewhere on the page —
59
+ * moving focus there would interrupt them, and the page stays live under
60
+ * a non-modal drawer, so it is a genuine data-entry risk, not just an
61
+ * annoyance.
62
+ * @default 'auto'
63
+ */
64
+ this.initialFocus = 'auto';
65
+ }
66
+ // Unwraps a nested pds-modal left by a page-cache (Turbo, bfcache) reconnect
67
+ // — the same bug class fixed for pds-modal-header/-content/-footer. Every
68
+ // render wraps the slotted content in a fresh, marked pds-modal; a reconnect
69
+ // that restores a prior render's pds-modal in our light DOM ends up with
70
+ // that stale one nested inside the new one's content.
71
+ //
72
+ // The container has to be the inner `.pds-modal` content div, not the
73
+ // `<pds-modal>` tag itself — that tag's first child is always its own
74
+ // rendered `dialog.pds-modal__backdrop`, never another `<pds-modal>`, so a
75
+ // bare-tag check there never matches. The `.pds-drawer__modal` marker on
76
+ // the staleness selector (rather than the bare `pds-modal` tag) keeps this
77
+ // from also unwrapping a consumer's own nested pds-modal, like a confirm
78
+ // dialog placed first in the drawer's content — only a stale copy of our
79
+ // own wrapper carries that class.
80
+ componentDidRender() {
81
+ reconnectedContent.unwrapReconnectedContent(this.el.querySelector('pds-modal.pds-drawer__modal .pds-modal'), 'pds-modal.pds-drawer__modal', '.pds-modal');
82
+ }
83
+ // pds-modal closes itself (Escape, light dismiss, a consumer's close
84
+ // button toggling its own `open`) and only updates its own `open` prop —
85
+ // mirror that back onto ours so a consumer's binding stays correct, and
86
+ // re-emit as our own event rather than leaking pds-modal's event name.
87
+ // Both events bubble, so a nested pds-modal (a confirm dialog inside the
88
+ // drawer's own content) would otherwise trigger these too — only react to
89
+ // our own direct inner modal.
90
+ handleModalClose(e) {
91
+ if (e.target !== this.modalEl)
92
+ return;
93
+ this.open = false;
94
+ this.pdsDrawerClose.emit();
95
+ }
96
+ handleModalOpen(e) {
97
+ if (e.target !== this.modalEl)
98
+ return;
99
+ this.pdsDrawerOpen.emit();
100
+ }
101
+ // Light dismiss: a pointerdown anywhere outside the drawer closes it. This
102
+ // has to be a listener of our own, not pds-modal's backdrop-click handler —
103
+ // the backdrop is pointer-events:none out here (see pds-drawer.scss) so the
104
+ // page underneath stays genuinely clickable, which means a click there
105
+ // never reaches pds-modal's backdrop element at all.
106
+ handleOutsidePointerDown(e) {
107
+ if (!this.lightDismiss || !this.open)
108
+ return;
109
+ const target = e.target;
110
+ if (!target)
111
+ return;
112
+ if (this.el.contains(target))
113
+ return;
114
+ if (target.closest(PORTALED_OVERLAY_SELECTOR))
115
+ return;
116
+ // A sibling pds-modal — e.g. a confirm dialog opened from inside the
117
+ // drawer but mounted at the document root rather than nested in our own
118
+ // content — is neither a descendant of the drawer nor on the portaled
119
+ // list above, so without this it reads as "outside" and a click inside
120
+ // it (or on its own backdrop) would close the drawer underneath it. That
121
+ // modal already owns its own dismiss semantics; defer to them instead.
122
+ if (target.closest('pds-modal'))
123
+ return;
124
+ this.open = false;
125
+ }
126
+ render() {
127
+ return (index.h(index.Host, { key: '66e16ca7704243e8bb98002f042fa073ec43c38b', class: {
128
+ 'pds-drawer': true,
129
+ [`pds-drawer--${this.side}`]: true,
130
+ [`pds-drawer--${this.size}`]: true,
131
+ } }, index.h("pds-modal", { key: 'b52b8cb1892d52113920ab27344d9a969e6365b6', 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' }, index.h("slot", { key: 'c9ce43ca12a06c550bd130a0fa7572dec22c9c92' }))));
132
+ }
133
+ get el() { return index.getElement(this); }
134
+ };
135
+ PdsDrawer.style = pdsDrawerCss();
136
+
137
+ exports.pds_drawer = PdsDrawer;
@@ -76,7 +76,7 @@ const PdsDropdownMenuItem = class {
76
76
  }, 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 }, index.h("slot", null)));
77
77
  }
78
78
  render() {
79
- return (index.h(index.Host, { key: '5d27080b7e129f69255ecb9dd1fab183a8f7c5f6', 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()));
79
+ return (index.h(index.Host, { key: '2fd3c925ba2f1ead6d0a23c44ac87449e8dad521', 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()));
80
80
  }
81
81
  get host() { return index.getElement(this); }
82
82
  };
@@ -14,7 +14,7 @@ const PdsDropdownMenuSeparator = class {
14
14
  this.disabled = false;
15
15
  }
16
16
  render() {
17
- return (index.h(index.Host, { key: 'd0fbf00978860c7a449b5781db2f10dd7e99d1b1', id: this.componentId }, index.h("hr", { key: 'a566c55fc3f15c0dab81fc90f5cf35d77fc0e35c' })));
17
+ return (index.h(index.Host, { key: 'f55fc3b23a6ccb94a7ce865189e5d65abdd97d8c', id: this.componentId }, index.h("hr", { key: '784a1480881a27aec69c0a2b0afd06f103912544' })));
18
18
  }
19
19
  };
20
20
  PdsDropdownMenuSeparator.style = pdsDropdownMenuSeparatorCss();
@@ -309,7 +309,7 @@ const PdsDropdownMenu = class {
309
309
  }
310
310
  }
311
311
  render() {
312
- return (index.h(index.Host, { key: '30914965241f7e8e5af32e8576c651802026a996', id: this.componentId }, index.h("slot", { key: 'ec995c9437083ca28058b974df91491b0e634a07', name: "trigger", onSlotchange: this.handleTriggerSlotChange }), index.h("pds-box", { key: '590a22e556d4df23eb33cbe2fa2bda296ce59b01', "border-radius": "sm", display: "flex", direction: "column", class: "pds-dropdown-menu--panel is-hidden", shadow: "100", role: "menu", "aria-orientation": "vertical", part: "menu-panel" }, index.h("slot", { key: '9b0d67a3cf63b33eb73d3e451b365dc4354a323c', onSlotchange: this.handleSlotChange }))));
312
+ return (index.h(index.Host, { key: '7907da6a04530d01bbbd0256f0b609fa53e0a774', id: this.componentId }, index.h("slot", { key: '2bf060c4dec082d4175a7cde759221fd4b20d706', name: "trigger", onSlotchange: this.handleTriggerSlotChange }), index.h("pds-box", { key: '0d81eddee58fda631eb6a39cba0e7ad0d69c02d8', "border-radius": "sm", display: "flex", direction: "column", class: "pds-dropdown-menu--panel is-hidden", shadow: "100", role: "menu", "aria-orientation": "vertical", part: "menu-panel" }, index.h("slot", { key: '831485d66af711edc9491078827455762795bb64', onSlotchange: this.handleSlotChange }))));
313
313
  }
314
314
  get host() { return index.getElement(this); }
315
315
  };
@@ -2,7 +2,7 @@
2
2
 
3
3
  var index = require('./index-CuQil7H0.js');
4
4
  var scroll = require('./scroll-2XcoE_6Q.js');
5
- var index$1 = require('./index-BMV0nzMk.js');
5
+ var index$1 = require('./index-Bu3NXpbK.js');
6
6
 
7
7
  const pdsFilterCss = () => `:host{--box-shadow-focus:0 0 0 1px var(--pine-color-background-container), 0 0 0 3px var(--pine-color-focus-ring);display:inline-block;position:relative}.pds-filter__trigger{-ms-flex-align:center;align-items:center;anchor-name:--filter-trigger;background:var(--pine-color-background-container);border:var(--pine-border);border-radius:var(--pine-dimension-100);-webkit-box-shadow:var(--pine-box-shadow-050);box-shadow:var(--pine-box-shadow-050);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pine-color-text-tertiary);cursor:pointer;display:-ms-inline-flexbox;display:inline-flex;font-family:var(--pine-font-family-inter);font-size:var(--pine-font-size-100);font-weight:var(--pine-font-weight-400);gap:var(--pine-dimension-050);letter-spacing:var(--pine-letter-spacing-114);line-height:var(--pine-line-height-150);padding:var(--pine-dimension-025) var(--pine-dimension-125);position:relative;-webkit-transition:all var(--pine-motion-duration-base) ease;transition:all var(--pine-motion-duration-base) ease}.pds-filter__trigger pds-icon{block-size:var(--pine-font-size-100);color:var(--pine-color-text-secondary);-ms-flex-negative:0;flex-shrink:0;inline-size:var(--pine-font-size-100)}.pds-filter__trigger:hover,.pds-filter__trigger.pds-filter__trigger--open{background-color:var(--pine-color-background-subtle);border-color:var(--pine-color-border-hover);color:var(--pine-color-text-hover)}.pds-filter__trigger:hover pds-icon,.pds-filter__trigger.pds-filter__trigger--open pds-icon{color:var(--pine-color-text-secondary)}.pds-filter__trigger:focus-visible{-webkit-box-shadow:var(--box-shadow-focus);box-shadow:var(--box-shadow-focus);outline:none}.pds-filter__trigger:disabled{cursor:not-allowed;opacity:0.5}.pds-filter__trigger--selected{background-color:var(--pine-color-purple-050);border-color:var(--pine-color-purple-500);color:var(--pine-color-purple-600)}.pds-filter__trigger--selected pds-icon{color:var(--pine-color-purple-600)}.pds-filter__trigger--selected:hover,.pds-filter__trigger--selected.pds-filter__trigger--open{background-color:var(--pine-color-purple-100);border-color:var(--pine-color-purple-500);color:var(--pine-color-purple-600)}.pds-filter__trigger--selected:hover pds-icon,.pds-filter__trigger--selected.pds-filter__trigger--open pds-icon{color:var(--pine-color-purple-600)}.pds-filter__trigger--selected:focus-visible{-webkit-box-shadow:var(--box-shadow-focus);box-shadow:var(--box-shadow-focus);outline:none}.pds-filter__trigger--more{background-color:var(--pine-color-background-container-hover);border:var(--pine-border-width-thin) dashed var(--pine-color-border);color:var(--pine-color-text-tertiary)}.pds-filter__trigger--more pds-icon{color:var(--pine-color-text-secondary)}.pds-filter__trigger--more:hover,.pds-filter__trigger--more.pds-filter__trigger--open{background-color:var(--pine-color-background-subtle);border-color:var(--pine-color-border-hover);color:var(--pine-color-text-hover)}.pds-filter__trigger--more:hover pds-icon,.pds-filter__trigger--more.pds-filter__trigger--open pds-icon{color:var(--pine-color-text-secondary)}.pds-filter__trigger--more:focus-visible{-webkit-box-shadow:var(--box-shadow-focus);box-shadow:var(--box-shadow-focus);outline:none}.pds-filter__trigger--clear{background:transparent;border:var(--pine-border-width-thin) solid transparent;border-radius:var(--pine-dimension-100);-webkit-box-shadow:none;box-shadow:none;color:var(--pine-color-purple-600)}.pds-filter__trigger--clear pds-icon{color:var(--pine-color-purple-600)}.pds-filter__trigger--clear:hover{background-color:var(--pine-color-purple-100);border-color:var(--pine-color-purple-100);color:var(--pine-color-purple-600)}.pds-filter__trigger--clear:hover pds-icon{color:var(--pine-color-purple-600)}.pds-filter__trigger--clear:focus-visible{-webkit-box-shadow:var(--box-shadow-focus);box-shadow:var(--box-shadow-focus);outline:none}.pds-filter__button-content{-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex;gap:var(--pine-dimension-050);max-inline-size:148px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pds-filter__button-text{line-height:var(--pine-line-height-150);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pds-filter__dropdown-icon{block-size:var(--pine-dimension-200);-ms-flex-negative:0;flex-shrink:0;inline-size:var(--pine-dimension-200)}.pds-filter__popover{background-color:var(--pine-color-background-overlay);border:0;border-radius:var(--pine-dimension-100);-webkit-box-shadow:var(--pine-box-shadow-100);box-shadow:var(--pine-box-shadow-100);display:none;inline-size:228px;inset:unset;padding:var(--pine-dimension-100);z-index:var(--pine-z-index-overlay);}.pds-filter__popover:popover-open,.pds-filter__popover.is-open{display:block}.pds-filter__popover{}@supports (anchor-name: --test){.pds-filter__popover{inset-block-start:calc(anchor(--filter-trigger bottom) + var(--pine-dimension-100));inset-inline-start:anchor(--filter-trigger start);position:fixed;position-anchor:--filter-trigger;}.pds-filter__popover.popover-flip-horizontal{inset-inline-end:anchor(--filter-trigger end);inset-inline-start:auto}.pds-filter__popover.popover-flip-vertical{inset-block-start:anchor(--filter-trigger top);-webkit-transform:translateY(calc(-100% - var(--pine-dimension-100)));transform:translateY(calc(-100% - var(--pine-dimension-100)))}.pds-filter__popover.popover-flip-horizontal.popover-flip-vertical{inset-block-start:anchor(--filter-trigger top);inset-inline-end:anchor(--filter-trigger end);inset-inline-start:auto;-webkit-transform:translateY(calc(-100% - var(--pine-dimension-100)));transform:translateY(calc(-100% - var(--pine-dimension-100)))}.pds-filter__popover{}.pds-filter__popover.is-open.popover-flip-horizontal{inset-inline-end:anchor(--filter-trigger end);inset-inline-start:auto}.pds-filter__popover.is-open.popover-flip-vertical{inset-block-start:anchor(--filter-trigger top);-webkit-transform:translateY(calc(-100% - var(--pine-dimension-100)));transform:translateY(calc(-100% - var(--pine-dimension-100)))}.pds-filter__popover.is-open.popover-flip-horizontal.popover-flip-vertical{inset-block-start:anchor(--filter-trigger top);inset-inline-end:anchor(--filter-trigger end);inset-inline-start:auto;-webkit-transform:translateY(calc(-100% - var(--pine-dimension-100)));transform:translateY(calc(-100% - var(--pine-dimension-100)))}}`;
8
8
 
@@ -480,7 +480,7 @@ const PdsFilter = class {
480
480
  return null;
481
481
  }
482
482
  render() {
483
- return (index.h(index.Host, { key: '6d40e2462bf70dcd26c0e3c5ab6f12e86c65ac49', id: this.componentId }, index.h("button", { key: '2d45a9b8ae4fd3a4d1ecc04c29ccf83fe5756e50', 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 }, index.h("span", { key: 'b80e2c8c4f92d17c37fa5a0c1fcc3f778f788483', class: "pds-filter__button-content", part: "button-content" }, this.renderIcon(), this.text && (index.h("span", { key: '5faa099b94200071325ab8fb1b122437a81dcf61', class: "pds-filter__button-text", part: "button-text" }, this.text)), this.renderDropdownIcon())), this.variant !== 'clear' && (index.h("div", { key: '063bc00fedda0fba5ba4af759404f3ae23b2b6ad', ref: el => this.popoverEl = el, id: `${this.componentId}-popover`, class: "pds-filter__popover", popover: "auto", part: "popover" }, index.h("slot", { key: '9790cd0c8cd6a594aab094aeaa469dbcddc98d87' })))));
483
+ return (index.h(index.Host, { key: 'bd03de5e8461e3aba4d6f014e2d64d9aada0c0e1', id: this.componentId }, index.h("button", { key: 'f35cb4aec14b1ed3b61d33c412cbfc89ba19cba3', 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 }, index.h("span", { key: 'b3635542048ac52d290917260181d7313eddaff2', class: "pds-filter__button-content", part: "button-content" }, this.renderIcon(), this.text && (index.h("span", { key: '0c5ef7f7655ddbee33a695703ce192f082b21bf1', class: "pds-filter__button-text", part: "button-text" }, this.text)), this.renderDropdownIcon())), this.variant !== 'clear' && (index.h("div", { key: 'e75c75d8e9e4596d7f0642e4e1f91deae3f2b9fa', ref: el => this.popoverEl = el, id: `${this.componentId}-popover`, class: "pds-filter__popover", popover: "auto", part: "popover" }, index.h("slot", { key: 'bef66af716be823ed3ac36d39a4532785df07f6b' })))));
484
484
  }
485
485
  get el() { return index.getElement(this); }
486
486
  };
@@ -9,7 +9,7 @@ const PdsFilters = class {
9
9
  index.registerInstance(this, hostRef);
10
10
  }
11
11
  render() {
12
- return (index.h(index.Host, { key: '0f4dc3d5ecf71992a4c13f85fec62d4b60f3c6d1', id: this.componentId }, index.h("div", { key: 'ee3edc3d752c70d7888028b45dcb1c89f297803c', class: "pds-filters" }, index.h("slot", { key: 'de693eedf74a029a0a279855cd2602420891ef10' }))));
12
+ return (index.h(index.Host, { key: '492357b36ec8ca8552f76aea6a4e4baf01ee92d5', id: this.componentId }, index.h("div", { key: 'fbf56c5452b4b0627a95008a601ccd6ace59417c', class: "pds-filters" }, index.h("slot", { key: 'c0e1d6b7b86ff39425d26dc75bf950283a371f71' }))));
13
13
  }
14
14
  };
15
15
  PdsFilters.style = pdsFiltersCss();
@@ -21,9 +21,9 @@ const PdsImage = class {
21
21
  this.loading = 'eager';
22
22
  }
23
23
  render() {
24
- return (index.h(index.Host, { key: 'dbc144927d78e2eb380639eeb8b243133a4b5379', class: {
24
+ return (index.h(index.Host, { key: '0c0f463a1b616ccc485b8086a0210c5d9d2b065c', class: {
25
25
  'pds-image': true,
26
- }, id: this.componentId }, index.h("img", { key: '259c1cd7ffdf4e5dd7c0ef178d28f1f835b57642', alt: this.alt, height: this.height, loading: this.loading, sizes: this.sizes, src: this.src, srcset: this.srcset, width: this.width })));
26
+ }, id: this.componentId }, index.h("img", { key: '2ac4ef66ebbb39d488ce68f06b590a5fad180811', alt: this.alt, height: this.height, loading: this.loading, sizes: this.sizes, src: this.src, srcset: this.srcset, width: this.width })));
27
27
  }
28
28
  };
29
29
  PdsImage.style = pdsImageCss();
@@ -4,7 +4,7 @@ var index = require('./index-CuQil7H0.js');
4
4
  var form = require('./form-MhwfKTuo.js');
5
5
  var attributes = require('./attributes-oNMnBEnP.js');
6
6
  var utils = require('./utils-7jx8T2mW.js');
7
- var index$1 = require('./index-BMV0nzMk.js');
7
+ var index$1 = require('./index-Bu3NXpbK.js');
8
8
 
9
9
  const pdsInputTokensCss = () => `:host{--pine-input-color-background-danger:var(--pine-color-red-050)}`;
10
10
 
@@ -294,10 +294,10 @@ const PdsInput = class {
294
294
  'has-prepend': this.hasPrepend,
295
295
  'has-append': this.hasAppend,
296
296
  };
297
- return (index.h(index.Host, { key: '8f15b61e4a6336246aefca1112c280265996630a', "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 }, index.h("div", { key: '9e45a632a63b813f2f097ef903db9e97f6b88b16', class: "pds-input" }, label && (index.h("div", { key: 'e9e3710cfa43372a71bbf2440110cd43336c16e3', class: {
297
+ return (index.h(index.Host, { key: 'b67b80853cbf1f1e84c3ce6d2ff7e63f480c5b8d', "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 }, index.h("div", { key: '27a60a963cfa1a96391b55800eba27743a2527f4', class: "pds-input" }, label && (index.h("div", { key: '3f8ce2b254feea4b6fe9ea74318f1e6c27a75927', class: {
298
298
  'pds-input__label-wrapper': true,
299
299
  'visually-hidden': this.hideLabel,
300
- } }, index.h("label", { key: '0717152167b9f8776e23bb95d0b3ebdc58a27e8e', htmlFor: componentId, class: "pds-input__label" }, index.h("span", { key: 'cf350936ac9981da1773c7320d5092da2d8aa5c6' }, label, this.required && index.h("span", { key: '115e170ee93a5bc2c4c396aaf235fd0e6ae09a13', class: "pds-input__required-indicator" }, " *"))), !this.hideLabel && this.renderAction())), index.h("div", { key: '00839202f48a22c6a6f00fa706eee81314dc1c04', class: inputWrapperClasses }, this.renderPrepend(), this.renderPrefix(), index.h("input", Object.assign({ key: 'cb2234ebf58e2148ea6b4b711ff09338722d4457', ref: (input) => (this.nativeInput = input), class: "pds-input__field", "aria-describedby": form.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 && (index.h("p", { key: 'e322e25b5d6d8fe9c7292087127d7d44c0a27046', class: "pds-input__helper-message", id: form.messageId(componentId, 'helper') }, helperMessage)), errorMessage && (index.h("p", { key: 'e3a982cf8312fa2a16360a4667fa5286ce304e68', class: "pds-input__error-message", id: form.messageId(componentId, 'error') }, index.h("pds-icon", { key: 'ffa236865ab93013f54ea0bf2f993a3c3631e919', "aria-hidden": "true", icon: index$1.danger, size: "small" }), errorMessage)))));
300
+ } }, index.h("label", { key: '1c290cde5a9100b11fe3059725866506d089e834', htmlFor: componentId, class: "pds-input__label" }, index.h("span", { key: '2ebc8dafa48d6d855be5b8e1aa3bdd417d6250f3' }, label, this.required && index.h("span", { key: '73f7d22b13739daff6aa104c140208c5b1a86d10', class: "pds-input__required-indicator" }, " *"))), !this.hideLabel && this.renderAction())), index.h("div", { key: '4ea0b3335abbdf920ca064aa5866a060ef18c2ad', class: inputWrapperClasses }, this.renderPrepend(), this.renderPrefix(), index.h("input", Object.assign({ key: '4acf340fdcf40968e9c46b6a240f8a9008998c11', ref: (input) => (this.nativeInput = input), class: "pds-input__field", "aria-describedby": form.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 && (index.h("p", { key: 'f1969fe3a5f3aba65f44fcdaddd5a12d90db7fb1', class: "pds-input__helper-message", id: form.messageId(componentId, 'helper') }, helperMessage)), errorMessage && (index.h("p", { key: 'd4df1ceff95d5db7f2d927e9fcb848444570f9a2', class: "pds-input__error-message", id: form.messageId(componentId, 'error') }, index.h("pds-icon", { key: 'f69182919903aab42b7641d9a0082861f551a214', "aria-hidden": "true", icon: index$1.danger, size: "small" }), errorMessage)))));
301
301
  }
302
302
  static get formAssociated() { return true; }
303
303
  get el() { return index.getElement(this); }
@@ -2,7 +2,7 @@
2
2
 
3
3
  var index = require('./index-CuQil7H0.js');
4
4
  var utils = require('./utils-7jx8T2mW.js');
5
- var index$1 = require('./index-BMV0nzMk.js');
5
+ var index$1 = require('./index-Bu3NXpbK.js');
6
6
 
7
7
  const pdsLinkCss = () => `:host{display:inline}:host pds-icon{-webkit-margin-start:var(--pine-dimension-2xs);margin-inline-start:var(--pine-dimension-2xs)}.pds-link{-ms-flex-align:center;align-items:center;color:var(--color, var(--pds-context-link-color, var(--pine-color-text)));display:-ms-inline-flexbox;display:inline-flex;font-weight:var(--pine-font-weight-medium)}.pds-link:focus-visible{border-radius:var(--pine-dimension-2xs);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width-thick);position:relative}.pds-link:hover{color:var(--color, var(--pds-context-link-color-hover, var(--pine-color-text-hover)));text-decoration:none}:host([color=secondary]) .pds-link{color:var(--pine-color-text-primary)}:host([color=secondary]) .pds-link:hover{color:var(--pine-color-text-inverse-secondary)}:host([color=accent]) .pds-link{color:var(--pine-color-accent)}:host([color=accent]) .pds-link:hover{color:var(--pine-color-accent-hover)}:host([color=danger]) .pds-link{color:var(--pine-color-danger)}:host([color=danger]) .pds-link:hover{color:var(--pine-color-danger-hover)}.pds-link--sm{font-size:var(--pine-font-size-body-xs)}.pds-link--sm pds-icon{height:var(--pine-dimension-xs);width:var(--pine-dimension-xs)}.pds-link--md{font-size:var(--pine-font-size-body-sm)}.pds-link--md pds-icon{height:var(--pine-dimension-xs);width:var(--pine-dimension-xs)}.pds-link--lg{font-size:var(--pine-font-size-body-md)}.pds-link--lg pds-icon{height:var(--pine-dimension-sm);width:var(--pine-dimension-sm)}.pds-link--plain{text-decoration:none}.pds-link--plain:hover{color:var(--color, var(--pds-context-link-color-hover, var(--pine-color-text-hover)));text-decoration:underline}:host([active]) .pds-link{color:var(--pds-context-link-color, var(--pine-color-text-strong));text-decoration:underline}:host([active]) .pds-link:hover{color:var(--pds-context-link-color-hover, var(--pine-color-text-strong));text-decoration:underline}`;
8
8
 
@@ -58,8 +58,8 @@ const PdsLink = class {
58
58
  const targetValue = this.target || (this.external ? '_blank' : undefined);
59
59
  const showExternalIcon = this.external;
60
60
  const relValue = targetValue === '_blank' ? 'noopener noreferrer' : undefined;
61
- return (index.h("a", { key: '532bc4afd39f637b021556875a1744dd85d4a227', 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 }, index.h("slot", { key: '854b411525e89363fbc13fb3119c4f04e611d0a0' }, this.href), showExternalIcon &&
62
- index.h("pds-icon", { key: 'c670f8c1f46bd55b6ebd735a98c0dbff8eb24076', icon: index$1.launch, size: this.fontSize })));
61
+ return (index.h("a", { key: '9e2d6cc4f2697bd11db4fd7ddd6f9e42ef28cf8c', 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 }, index.h("slot", { key: 'f48dd74f1921400553845ea3b03720749b1a6737' }, this.href), showExternalIcon &&
62
+ index.h("pds-icon", { key: '299d4f31ec32b614fd9f4d1c19acae63ee7a9169', icon: index$1.launch, size: this.fontSize })));
63
63
  }
64
64
  };
65
65
  PdsLink.style = pdsLinkCss();
@@ -48,7 +48,7 @@ const PdsLoader = class {
48
48
  }
49
49
  }
50
50
  render() {
51
- return (index.h(index.Host, { key: '288e980a91a4a05984ec7d16c198cff227a2e676', class: `pds-loader ${this.isLoading ? '' : 'pds-loader--hidden'}`, "aria-hidden": !this.isLoading, "aria-busy": this.isLoading, "aria-live": "polite" }, this.variant === 'spinner' && (index.h("div", { key: 'dc8643b932182b540ce93dd87dad10f07174d59f', class: "pds-loader--spinner" }, index.h("svg", { key: '2cec5ddfdf9772c0d20ce11a6bf070d0bc06a53b', style: this.getSvgStyle(), viewBox: "0 0 200 200", fill: "none", part: "loader-svg" }, index.h("defs", { key: 'f2554f75fe1bd3e0e3afc1947220d3c004184e84' }, index.h("linearGradient", { key: 'edef079f8b959604ec9f911739a78801c5f285c0', id: "spinner-secondHalf" }, index.h("stop", { key: '337a53ea77d19e9dfd3a5d43f01f6886c71f190b', offset: "0%", "stop-opacity": "0", "stop-color": "currentColor" }), index.h("stop", { key: 'ca2e6363e2feece31ba1a4b2de0d3ec66c4c45f9', offset: "100%", "stop-opacity": "0.5", "stop-color": "currentColor" })), index.h("linearGradient", { key: '5458cf7f8e9e35e23dfc5aa4e5f7ef5c7b9d142d', id: "spinner-firstHalf" }, index.h("stop", { key: '7cbb4bc34f8792e648c8bf1bfe6db8e319bf68cf', offset: "0%", "stop-opacity": "1", "stop-color": "currentColor" }), index.h("stop", { key: 'febbf165e3da7d328dfa35cf5930a8069fea604e', offset: "100%", "stop-opacity": "0.5", "stop-color": "currentColor" }))), index.h("g", { key: 'a2becedb247748508013f80c9dbd6eccc6818e6f', class: "pds-loader__spinner-path" }, index.h("path", { key: '2df230f57210ee7c10ff22d99d3fd8a1dd17b217', stroke: "url(#spinner-secondHalf)", d: "M 4 100 A 96 96 0 0 1 196 100" }), index.h("path", { key: 'b85ae9aebe39f99d1d06a3e03e8ef7027fa8a866', stroke: "url(#spinner-firstHalf)", d: "M 196 100 A 96 96 0 0 1 4 100" }), index.h("path", { key: '9f0508fdf50f6274e2b0656565585198f6105b68', stroke: "currentColor", "stroke-linecap": "round", d: "M 4 100 A 96 96 0 0 1 4 98" }))))), this.variant === 'typing' && (index.h("div", { key: '0520d0113a7b4498692e523c273616d67b90f042', class: "pds-loader--typing" }, index.h("span", { key: 'a1083f20b9cd04d1ba685aafd736fcd154dc597f' }), index.h("span", { key: '9eab7a6bfcca61861cbdd01953b2aa0762770b80' }), index.h("span", { key: 'd4599150cd603fcfe6b2f50044a0ed867fad6070' }))), index.h("div", { key: 'b37bc877a5fd6cd7249b10bca48ac50eb31f4f40', class: `pds-loader__label ${this.showLabel ? '' : 'pds-loader--hidden'}` }, index.h("slot", { key: '689ca4190506689ca6c92b61ada5c96a2a1427ab', name: "label" }, "Loading..."))));
51
+ return (index.h(index.Host, { key: 'ce5b09477f57aad1a09ce3a38b81b64f673944b2', class: `pds-loader ${this.isLoading ? '' : 'pds-loader--hidden'}`, "aria-hidden": !this.isLoading, "aria-busy": this.isLoading, "aria-live": "polite" }, this.variant === 'spinner' && (index.h("div", { key: 'd193dfdaa527debff73705cef65e3d7f7a9a69ae', class: "pds-loader--spinner" }, index.h("svg", { key: 'c881ff2ee1d5d92ac55300bd13e9d066f7a3970f', style: this.getSvgStyle(), viewBox: "0 0 200 200", fill: "none", part: "loader-svg" }, index.h("defs", { key: '998920cdc820cc4e60df39bda5707e0b6bd5d0fe' }, index.h("linearGradient", { key: '02028f6ac070703f8b96b1723c4d2c07670e73bb', id: "spinner-secondHalf" }, index.h("stop", { key: 'b3120c2a597d8f646e791b1ac09a262486fb29cc', offset: "0%", "stop-opacity": "0", "stop-color": "currentColor" }), index.h("stop", { key: '932056b587b5e3191952506d9411c68375af6620', offset: "100%", "stop-opacity": "0.5", "stop-color": "currentColor" })), index.h("linearGradient", { key: '14540856cb968c220f71537c012a8c415d39af85', id: "spinner-firstHalf" }, index.h("stop", { key: 'c94d634b1dffa0c5301b8cb2c0b6e81fdb34429e', offset: "0%", "stop-opacity": "1", "stop-color": "currentColor" }), index.h("stop", { key: 'b6477c000c01728a60a7fd8e182f24da4b554128', offset: "100%", "stop-opacity": "0.5", "stop-color": "currentColor" }))), index.h("g", { key: '810f7c7bcd8e33bd2bed70932ed174eef48ae711', class: "pds-loader__spinner-path" }, index.h("path", { key: '4e54f348c563cca7e14790a34a58dacbda452824', stroke: "url(#spinner-secondHalf)", d: "M 4 100 A 96 96 0 0 1 196 100" }), index.h("path", { key: '3968c60f27ec619aabc74a278026abdd94d4510f', stroke: "url(#spinner-firstHalf)", d: "M 196 100 A 96 96 0 0 1 4 100" }), index.h("path", { key: '171fe08e0aec1f207704a0395388ccc57ea045d4', stroke: "currentColor", "stroke-linecap": "round", d: "M 4 100 A 96 96 0 0 1 4 98" }))))), this.variant === 'typing' && (index.h("div", { key: '60cf0b871807eb49ce73d3e63f00f5914c9c9eec', class: "pds-loader--typing" }, index.h("span", { key: 'dfbdcc1fe558803d39caa56bb57763269c061661' }), index.h("span", { key: '0c343f36a8d71bdc07306b3c879016686da94199' }), index.h("span", { key: 'f2a30e560ef0c9ac26c596dbaad33eeb0e4f7ff3' }))), index.h("div", { key: '0fa18b15a3962df872fd28136caf258cd09cafdb', class: `pds-loader__label ${this.showLabel ? '' : 'pds-loader--hidden'}` }, index.h("slot", { key: 'e8eabec0c6d24d3ad962ecee9e0ed6e0e0b4adc0', name: "label" }, "Loading..."))));
52
52
  }
53
53
  };
54
54
  PdsLoader.style = pdsLoaderCss();
@@ -184,10 +184,10 @@ const PdsModalContent = class {
184
184
  render() {
185
185
  // Only apply max-height style if it's not 'none'
186
186
  const styleObj = this.contentMaxHeight !== 'none' ? { maxHeight: this.contentMaxHeight } : {};
187
- return (index.h(index.Host, { key: '3e8e95b159205c5c8183eb7f6c60d358290e0896' }, index.h("div", { key: '97988c0bbcbf256fc3369ccedefe854dd196ef82', class: {
187
+ return (index.h(index.Host, { key: '7bd0f26425c71e4551ae21e38d57d2124dabfc50' }, index.h("div", { key: '120e6947e734e44883af975991781f338acd7dbc', class: {
188
188
  'pds-modal-content': true,
189
189
  [`pds-modal-content--border-${this.border}`]: true
190
- }, style: styleObj, tabindex: "-1" }, index.h("slot", { key: 'c76eb4759b7bf4898845b65768908c896fe64f4e' }))));
190
+ }, style: styleObj, tabindex: "-1" }, index.h("slot", { key: '6f2c8d44a69df8ecc1214e00604023274cee2790' }))));
191
191
  }
192
192
  get el() { return index.getElement(this); }
193
193
  };
@@ -14,7 +14,7 @@ const PdsModalFooter = class {
14
14
  reconnectedContent.unwrapReconnectedContent(this.el.querySelector('.pds-modal__footer'), '.pds-modal__footer');
15
15
  }
16
16
  render() {
17
- return (index.h("footer", { key: '63bb557978ea69aa658026f7be24433b946b2ee6', class: "pds-modal__footer" }, index.h("slot", { key: '158a929229b0efa8720f869756076203f297c744' })));
17
+ return (index.h("footer", { key: 'f344716ed1fbd77b447e10c9b78565918dc17be0', class: "pds-modal__footer" }, index.h("slot", { key: 'ba85cf6f7f56c8f8a8ff6d24c5fa647722140fda' })));
18
18
  }
19
19
  get el() { return index.getElement(this); }
20
20
  };
@@ -14,7 +14,7 @@ const PdsModalHeader = class {
14
14
  reconnectedContent.unwrapReconnectedContent(this.el.querySelector('.pds-modal__header'), '.pds-modal__header');
15
15
  }
16
16
  render() {
17
- return (index.h("header", { key: 'ae4277052c04a1804e0e73f2873e636ea4cb890c', class: "pds-modal__header" }, index.h("slot", { key: '5c4a7b463835de451c9c3f15e0ac669bf32aee23' })));
17
+ return (index.h("header", { key: '0490ac7854089dad4666e2a6509ae730f805f97f', class: "pds-modal__header" }, index.h("slot", { key: 'b76e5a970d3f17411b9e9e5debd981298f2290d1' })));
18
18
  }
19
19
  get el() { return index.getElement(this); }
20
20
  };
@@ -41,6 +41,19 @@ const PdsModal = class {
41
41
  * @default false
42
42
  */
43
43
  this.disableTopLayer = false;
44
+ /**
45
+ * Whether to skip moving focus into the modal when it opens — both our own
46
+ * `setInitialFocus()` and the browser's native "dialog focusing steps",
47
+ * which move focus into the dialog as soon as `show()`/`showModal()` is
48
+ * called regardless of application code. Focus return on close is
49
+ * unaffected either way. For a modal opened by something other than a
50
+ * direct user click — a redirect, a deep link, a background event —
51
+ * stealing focus on open can interrupt whatever the user was already
52
+ * doing. Default `false` preserves today's behavior for every existing
53
+ * consumer.
54
+ * @default false
55
+ */
56
+ this.disableInitialFocus = false;
44
57
  /**
45
58
  * Stores the list of focusable elements in the modal
46
59
  */
@@ -57,16 +70,41 @@ const PdsModal = class {
57
70
  }
58
71
  };
59
72
  this.handleKeyDown = (e) => {
73
+ var _a, _b, _c;
60
74
  // If the modal is not open, don't handle any keyboard events
61
75
  if (!this.open)
62
76
  return;
63
77
  // Handle Escape key to close the modal
64
78
  if (e.key === 'Escape') {
65
- // In non-top-layer mode, focus can move into an overlay stacked above the
66
- // modal (the reason disableTopLayer exists). If that overlay owns focus,
67
- // leave Escape to it rather than dismissing this modal out from under it.
68
- const active = document.activeElement;
69
- if (this.disableTopLayer && active && active !== document.body && !this.el.contains(active)) {
79
+ // Every open pds-modal shares this document-level listener for the
80
+ // same keydown event. Whichever one runs first can synchronously move
81
+ // focus (hideModal() restores it), which would make a later instance's
82
+ // own read of document.activeElement reflect that side effect instead
83
+ // of where focus actually was when the key was pressed — stacking two
84
+ // sibling modals closing on one Escape instead of just the top one.
85
+ // That alone isn't enough, though: isStackedAboveOverlay's `:modal`
86
+ // check reads LIVE top-layer state, and hideModal()'s close() clears it
87
+ // synchronously — so whichever sibling's listener runs first (DOM
88
+ // order, not z-index) can close itself and erase the very evidence a
89
+ // later listener needs to recognize it was stacked above. Snapshot that
90
+ // determination too, in the same first-listener-wins block, before any
91
+ // instance has had a chance to act on this keypress.
92
+ const eventSnapshot = e;
93
+ if (!('__pdsActiveElementAtEscape' in eventSnapshot)) {
94
+ const activeAtDispatch = document.activeElement;
95
+ eventSnapshot.__pdsActiveElementAtEscape = activeAtDispatch;
96
+ const topLayerDialog = (_a = activeAtDispatch === null || activeAtDispatch === void 0 ? void 0 : activeAtDispatch.closest('dialog')) !== null && _a !== void 0 ? _a : null;
97
+ eventSnapshot.__pdsTopLayerDialogAtEscape = topLayerDialog;
98
+ eventSnapshot.__pdsTopLayerDialogWasModalAtEscape = !!(topLayerDialog && topLayerDialog.matches(':modal'));
99
+ }
100
+ // Leave Escape to a genuinely stacked-above overlay (disableTopLayer's
101
+ // reason for existing) — not just to anything outside this modal.
102
+ const active = eventSnapshot.__pdsActiveElementAtEscape;
103
+ if (this.disableTopLayer &&
104
+ active &&
105
+ active !== document.body &&
106
+ !this.el.contains(active) &&
107
+ this.isStackedAboveOverlay(active, (_b = eventSnapshot.__pdsTopLayerDialogAtEscape) !== null && _b !== void 0 ? _b : null, (_c = eventSnapshot.__pdsTopLayerDialogWasModalAtEscape) !== null && _c !== void 0 ? _c : false)) {
70
108
  return;
71
109
  }
72
110
  // Always prevent native dialog close behavior
@@ -114,6 +152,16 @@ const PdsModal = class {
114
152
  this.modalRef = this.el.querySelector('.pds-modal__backdrop');
115
153
  // Add keyboard event listener
116
154
  document.addEventListener('keydown', this.handleKeyDown);
155
+ // @Watch('open') only fires on a later change, not the prop's initial
156
+ // value — a modal mounted with `open` already true (static markup, or a
157
+ // framework passing it on first render) would otherwise never call
158
+ // show()/showModal(): the panel still appears, since that's driven by the
159
+ // `open` CSS class, but the native <dialog> itself was never opened, so
160
+ // there's no top-layer promotion, no dialog focusing steps, and no
161
+ // focusable-elements list or previousActiveElement captured.
162
+ if (this.open) {
163
+ this.showModal();
164
+ }
117
165
  }
118
166
  // Unwraps a nested dialog.pds-modal__backdrop left by a page-cache (Turbo, bfcache) reconnect.
119
167
  componentDidRender() {
@@ -219,8 +267,39 @@ const PdsModal = class {
219
267
  // Update focusable elements and set initial focus
220
268
  // Using a longer timeout to ensure all components are fully rendered
221
269
  setTimeout(() => {
270
+ var _a, _b;
222
271
  this.updateFocusableElements();
223
- this.setInitialFocus();
272
+ if (this.disableInitialFocus) {
273
+ // show()/showModal() also move focus into the dialog natively (the
274
+ // HTML spec's "dialog focusing steps") — that native step isn't
275
+ // necessarily done by the time this task runs either, so counter it
276
+ // here, in the same deferred slot setInitialFocus() below uses for
277
+ // the same reason, rather than racing it synchronously above.
278
+ //
279
+ // disableInitialFocus exists for a drawer that can open in the
280
+ // background while the user is mid-task elsewhere — by the time
281
+ // this runs, they may have already clicked into something of
282
+ // their own outside the dialog. Only act if focus is still where
283
+ // the native steps (or nothing) left it, so that isn't stolen.
284
+ const activeElement = document.activeElement;
285
+ const focusAlreadyClaimedElsewhere = activeElement !== null && activeElement !== document.body && !((_a = this.modalRef) === null || _a === void 0 ? void 0 : _a.contains(activeElement));
286
+ if (!focusAlreadyClaimedElsewhere) {
287
+ if (this.previousActiveElement !== document.body && typeof ((_b = this.previousActiveElement) === null || _b === void 0 ? void 0 : _b.focus) === 'function') {
288
+ this.previousActiveElement.focus();
289
+ }
290
+ else if (activeElement instanceof HTMLElement) {
291
+ // Nothing was focused before opening (previousActiveElement is
292
+ // body), so there's nothing to restore focus to — body.focus()
293
+ // would be a no-op and leave focus wherever the native focusing
294
+ // steps put it, inside the dialog. Blur that instead so focus
295
+ // ends up nowhere, matching the state before opening.
296
+ activeElement.blur();
297
+ }
298
+ }
299
+ }
300
+ else {
301
+ this.setInitialFocus();
302
+ }
224
303
  this.pdsModalOpen.emit();
225
304
  }, 100);
226
305
  }
@@ -235,10 +314,22 @@ const PdsModal = class {
235
314
  async hideModal() {
236
315
  if (this.modalRef) {
237
316
  try {
317
+ // Capture before close(): with the async task queue, a prop change
318
+ // that triggers hideModal() (e.g. light dismiss setting `open` false
319
+ // on a pointerdown elsewhere) doesn't run until the next frame — by
320
+ // then the browser has already moved focus to whatever the user's
321
+ // click actually landed on. Restoring previousActiveElement in that
322
+ // case would steal focus back from a real new destination; only
323
+ // restore it when focus is still inside the modal (or nowhere, i.e.
324
+ // document.body), meaning nothing else has claimed it since.
325
+ const activeElement = document.activeElement;
326
+ const focusAlreadyMovedElsewhere = activeElement !== null && activeElement !== document.body && !this.modalRef.contains(activeElement);
238
327
  this.modalRef.close();
239
328
  this.open = false;
240
329
  // Restore focus to the element that was focused before the modal was opened
241
- if (this.previousActiveElement && typeof this.previousActiveElement.focus === 'function') {
330
+ if (!focusAlreadyMovedElsewhere &&
331
+ this.previousActiveElement &&
332
+ typeof this.previousActiveElement.focus === 'function') {
242
333
  this.previousActiveElement.focus();
243
334
  }
244
335
  this.pdsModalClose.emit();
@@ -255,6 +346,46 @@ const PdsModal = class {
255
346
  const backdrop = modal.querySelector('.pds-modal__backdrop');
256
347
  return backdrop ? parseInt(getComputedStyle(backdrop).zIndex, 10) : -1;
257
348
  }
349
+ /**
350
+ * Whether `active` sits inside a surface actually stacked above this modal.
351
+ *
352
+ * Used to decide whether an Escape keypress belongs to that surface instead
353
+ * of this modal. Focus being merely *outside* this modal is not enough on
354
+ * its own: in `disableTopLayer` mode the page stays interactive (that's the
355
+ * point of a non-modal usage like a drawer), so focus will routinely be on
356
+ * ordinary page content while the modal is open, and that must not be
357
+ * mistaken for "an overlay owns Escape."
358
+ *
359
+ * Two ways a surface can be above: it is itself promoted to the browser's
360
+ * top layer (a regular `showModal()` dialog, which paints above everything
361
+ * outside the top layer regardless of z-index — a sibling pds-modal opened
362
+ * over a `disableTopLayer` drawer typically shares the exact same z-index
363
+ * token, so a numeric comparison alone would miss it), or it has a higher
364
+ * z-index than this modal's own backdrop (a `disableTopLayer` overlay, or
365
+ * anything else deliberately raised above it).
366
+ *
367
+ * `topLayerDialog` / `topLayerDialogWasModal` come pre-snapshotted from the
368
+ * keydown event (see handleKeyDown) rather than being re-derived here: by
369
+ * the time a later sibling modal's listener runs, an earlier one may have
370
+ * already closed itself, which clears `:modal` — reading it live here would
371
+ * lose that evidence depending on listener order.
372
+ */
373
+ isStackedAboveOverlay(active, topLayerDialog, topLayerDialogWasModal) {
374
+ if (topLayerDialog && topLayerDialog !== this.modalRef && topLayerDialogWasModal) {
375
+ return true;
376
+ }
377
+ const ownZIndex = this.getBackdropZIndex(this.el);
378
+ let node = active;
379
+ while (node && node !== document.body) {
380
+ const style = getComputedStyle(node);
381
+ const zIndex = parseInt(style.zIndex, 10);
382
+ if (style.position !== 'static' && !isNaN(zIndex) && zIndex > ownZIndex) {
383
+ return true;
384
+ }
385
+ node = node.parentElement;
386
+ }
387
+ return false;
388
+ }
258
389
  /**
259
390
  * Checks if this modal is the innermost (highest z-index) modal
260
391
  */
@@ -276,14 +407,14 @@ const PdsModal = class {
276
407
  return thisZIndex === maxZIndex;
277
408
  }
278
409
  render() {
279
- return (index.h("dialog", { key: '65d204a57e193022eb475c113438a40fc77cf545', class: {
410
+ return (index.h("dialog", { key: 'f35044ec9bca1189069faf083c824d8144800053', class: {
280
411
  'pds-modal__backdrop': true,
281
412
  'open': this.open
282
- }, "aria-modal": this.disableTopLayer ? 'false' : 'true', "aria-labelledby": `${this.componentId}-heading`, onClick: this.handleBackdropClick }, index.h("div", { key: 'a9f07a30f8b4d13ef7ac33068756f0fb03173e27', class: {
413
+ }, "aria-modal": this.disableTopLayer ? 'false' : 'true', "aria-labelledby": `${this.componentId}-heading`, onClick: this.handleBackdropClick }, index.h("div", { key: '99a53b36e160ac14dfd6d598aeaa94114855dacc', class: {
283
414
  'pds-modal': true,
284
415
  [`pds-modal--${this.size}`]: true,
285
416
  'pds-modal--scrollable': this.scrollable
286
- }, part: "modal" }, index.h("slot", { key: '8505057bef9b4ed60e51422b05fea08cefce4a4b' }))));
417
+ }, part: "modal" }, index.h("slot", { key: 'cfee7bdf3620d606b1d3130f4ebed4caa83084f1' }))));
287
418
  }
288
419
  get el() { return index.getElement(this); }
289
420
  static get watchers() { return {