@pine-ds/core 4.4.3 → 4.5.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 (541) hide show
  1. package/components/attributes.js +1 -1
  2. package/components/closest.js +1 -1
  3. package/components/index.js +1 -1
  4. package/components/pds-avatar.js +1 -1
  5. package/components/pds-box2.js +1 -1
  6. package/components/pds-checkbox2.js +1 -1
  7. package/components/pds-chip2.js +1 -1
  8. package/components/pds-combobox.js +2 -2
  9. package/components/pds-copytext.js +1 -1
  10. package/components/pds-datepicker.js +1 -1
  11. package/components/pds-drawer-content.js +1 -1
  12. package/components/pds-drawer-footer.js +1 -1
  13. package/components/pds-drawer-header.js +1 -1
  14. package/components/pds-drawer.js +1 -1
  15. package/components/pds-dropdown-menu.js +1 -1
  16. package/components/pds-loader2.js +1 -1
  17. package/components/pds-modal-content.js +1 -1
  18. package/components/pds-modal-footer.js +1 -1
  19. package/components/pds-modal-header.js +1 -1
  20. package/components/pds-modal2.js +1 -1
  21. package/components/pds-popover.js +1 -1
  22. package/components/pds-progress.js +1 -1
  23. package/components/pds-radio-group.js +1 -1
  24. package/components/pds-radio.js +1 -1
  25. package/components/pds-row.js +1 -1
  26. package/components/pds-select.js +1 -1
  27. package/components/pds-sortable-item.js +1 -1
  28. package/components/pds-sortable.js +2 -2
  29. package/components/pds-switch.js +1 -1
  30. package/components/pds-table-head.js +1 -1
  31. package/components/pds-table-row.js +1 -1
  32. package/components/pds-tabpanel.js +1 -1
  33. package/components/pds-tabs.js +1 -1
  34. package/components/pds-tooltip.js +1 -1
  35. package/components/reflected-attribute-default.js +1 -0
  36. package/dist/cjs/attributes-DXvaSETR.js +178 -0
  37. package/dist/cjs/{index-D8Gl0bIB.js → index-BQjWfQXw.js} +10 -1
  38. package/dist/cjs/index.cjs.js +3 -0
  39. package/dist/cjs/keep-hydrated-iLS88j1Z.js +67 -0
  40. package/dist/cjs/loader.cjs.js +3 -2
  41. package/dist/cjs/mock-pds-modal.cjs.entry.js +2 -1
  42. package/dist/cjs/pds-accordion.cjs.entry.js +2 -1
  43. package/dist/cjs/pds-alert.cjs.entry.js +2 -1
  44. package/dist/cjs/pds-avatar.cjs.entry.js +19 -2
  45. package/dist/cjs/pds-box.cjs.entry.js +13 -2
  46. package/dist/cjs/pds-button.cjs.entry.js +2 -1
  47. package/dist/cjs/pds-checkbox.cjs.entry.js +13 -5
  48. package/dist/cjs/pds-chip.cjs.entry.js +12 -2
  49. package/dist/cjs/pds-combobox.cjs.entry.js +13 -7
  50. package/dist/cjs/pds-container.cjs.entry.js +2 -1
  51. package/dist/cjs/pds-copytext.cjs.entry.js +18 -2
  52. package/dist/cjs/pds-datepicker.cjs.entry.js +3 -2
  53. package/dist/cjs/pds-divider.cjs.entry.js +2 -1
  54. package/dist/cjs/pds-drawer-content.cjs.entry.js +3 -2
  55. package/dist/cjs/pds-drawer-footer.cjs.entry.js +3 -2
  56. package/dist/cjs/pds-drawer-header.cjs.entry.js +3 -2
  57. package/dist/cjs/pds-drawer.cjs.entry.js +4 -3
  58. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +2 -1
  59. package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +2 -1
  60. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +41 -10
  61. package/dist/cjs/pds-filter.cjs.entry.js +2 -1
  62. package/dist/cjs/pds-filters.cjs.entry.js +2 -1
  63. package/dist/cjs/pds-icon.cjs.entry.js +2 -1
  64. package/dist/cjs/pds-image.cjs.entry.js +2 -1
  65. package/dist/cjs/pds-input.cjs.entry.js +3 -2
  66. package/dist/cjs/pds-link.cjs.entry.js +2 -1
  67. package/dist/cjs/pds-loader.cjs.entry.js +29 -2
  68. package/dist/cjs/pds-modal-content.cjs.entry.js +4 -3
  69. package/dist/cjs/pds-modal-footer.cjs.entry.js +3 -2
  70. package/dist/cjs/pds-modal-header.cjs.entry.js +3 -2
  71. package/dist/cjs/pds-modal.cjs.entry.js +137 -50
  72. package/dist/cjs/pds-multiselect.cjs.entry.js +2 -1
  73. package/dist/cjs/pds-popover.cjs.entry.js +83 -14
  74. package/dist/cjs/pds-progress.cjs.entry.js +14 -2
  75. package/dist/cjs/pds-property.cjs.entry.js +2 -1
  76. package/dist/cjs/pds-radio-group.cjs.entry.js +5 -4
  77. package/dist/cjs/pds-radio.cjs.entry.js +13 -4
  78. package/dist/cjs/pds-row.cjs.entry.js +13 -2
  79. package/dist/cjs/pds-select.cjs.entry.js +15 -2
  80. package/dist/cjs/pds-sortable-item.cjs.entry.js +12 -2
  81. package/dist/cjs/pds-sortable.cjs.entry.js +13 -2
  82. package/dist/cjs/pds-switch.cjs.entry.js +14 -5
  83. package/dist/cjs/pds-tab.cjs.entry.js +2 -1
  84. package/dist/cjs/pds-table-body.cjs.entry.js +2 -1
  85. package/dist/cjs/pds-table-cell.cjs.entry.js +2 -1
  86. package/dist/cjs/pds-table-head-cell.cjs.entry.js +2 -1
  87. package/dist/cjs/pds-table-head.cjs.entry.js +2 -1
  88. package/dist/cjs/pds-table-row.cjs.entry.js +2 -1
  89. package/dist/cjs/pds-table.cjs.entry.js +2 -1
  90. package/dist/cjs/pds-tabpanel.cjs.entry.js +3 -2
  91. package/dist/cjs/pds-tabs.cjs.entry.js +15 -2
  92. package/dist/cjs/pds-text.cjs.entry.js +2 -1
  93. package/dist/cjs/pds-textarea.cjs.entry.js +3 -2
  94. package/dist/cjs/pds-toast.cjs.entry.js +2 -1
  95. package/dist/cjs/pds-tooltip.cjs.entry.js +4 -3
  96. package/dist/cjs/pine-core.cjs.js +3 -2
  97. package/dist/cjs/reflected-attribute-default-DVYHG6O1.js +44 -0
  98. package/dist/collection/collection-manifest.json +2 -1
  99. package/dist/collection/components/pds-avatar/pds-avatar.js +20 -3
  100. package/dist/collection/components/pds-box/pds-box.js +14 -1
  101. package/dist/collection/components/pds-checkbox/pds-checkbox.js +11 -4
  102. package/dist/collection/components/pds-chip/pds-chip.js +10 -1
  103. package/dist/collection/components/pds-combobox/pds-combobox.css +14 -2
  104. package/dist/collection/components/pds-combobox/pds-combobox.js +33 -5
  105. package/dist/collection/components/pds-combobox/stories/pds-combobox.stories.js +41 -0
  106. package/dist/collection/components/pds-copytext/pds-copytext.js +17 -2
  107. package/dist/collection/components/pds-datepicker/pds-datepicker.css +4 -2
  108. package/dist/collection/components/pds-drawer/pds-drawer-content/pds-drawer-content.js +2 -1
  109. package/dist/collection/components/pds-drawer/pds-drawer-footer/pds-drawer-footer.js +4 -1
  110. package/dist/collection/components/pds-drawer/pds-drawer-header/pds-drawer-header.js +4 -1
  111. package/dist/collection/components/pds-drawer/pds-drawer.js +3 -2
  112. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +39 -9
  113. package/dist/collection/components/pds-loader/pds-loader.js +29 -2
  114. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js +5 -2
  115. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js +4 -1
  116. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js +4 -1
  117. package/dist/collection/components/pds-modal/pds-modal.js +138 -49
  118. package/dist/collection/components/pds-popover/pds-popover.js +83 -14
  119. package/dist/collection/components/pds-progress/pds-progress.js +12 -1
  120. package/dist/collection/components/pds-radio/pds-radio.js +12 -3
  121. package/dist/collection/components/pds-radio-group/pds-radio-group.js +4 -3
  122. package/dist/collection/components/pds-row/pds-row.js +14 -1
  123. package/dist/collection/components/pds-select/pds-select.js +13 -1
  124. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +11 -1
  125. package/dist/collection/components/pds-sortable/pds-sortable.js +14 -1
  126. package/dist/collection/components/pds-switch/pds-switch.js +12 -4
  127. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js +3 -0
  128. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +4 -1
  129. package/dist/collection/components/pds-tabs/pds-tabs.js +13 -1
  130. package/dist/collection/components/pds-tooltip/pds-tooltip.js +3 -2
  131. package/dist/collection/global/pine-global.js +6 -0
  132. package/dist/collection/index.js +1 -0
  133. package/dist/collection/utils/attributes.js +90 -0
  134. package/dist/collection/utils/keep-hydrated.js +61 -0
  135. package/dist/collection/utils/reflected-attribute-default.js +40 -0
  136. package/dist/collection/utils/test/host-strip.js +50 -0
  137. package/dist/docs.json +129 -19
  138. package/dist/esm/attributes-CF5K2pxn.js +173 -0
  139. package/dist/esm/{index-bLhIfh0N.js → index-2HMD-zUO.js} +10 -1
  140. package/dist/esm/index.js +2 -0
  141. package/dist/esm/keep-hydrated-Dv7ssOTc.js +63 -0
  142. package/dist/esm/loader.js +4 -3
  143. package/dist/esm/mock-pds-modal.entry.js +2 -1
  144. package/dist/esm/pds-accordion.entry.js +2 -1
  145. package/dist/esm/pds-alert.entry.js +2 -1
  146. package/dist/esm/pds-avatar.entry.js +19 -2
  147. package/dist/esm/pds-box.entry.js +13 -2
  148. package/dist/esm/pds-button.entry.js +2 -1
  149. package/dist/esm/pds-checkbox.entry.js +13 -5
  150. package/dist/esm/pds-chip.entry.js +12 -2
  151. package/dist/esm/pds-combobox.entry.js +13 -7
  152. package/dist/esm/pds-container.entry.js +2 -1
  153. package/dist/esm/pds-copytext.entry.js +18 -2
  154. package/dist/esm/pds-datepicker.entry.js +3 -2
  155. package/dist/esm/pds-divider.entry.js +2 -1
  156. package/dist/esm/pds-drawer-content.entry.js +3 -2
  157. package/dist/esm/pds-drawer-footer.entry.js +3 -2
  158. package/dist/esm/pds-drawer-header.entry.js +3 -2
  159. package/dist/esm/pds-drawer.entry.js +4 -3
  160. package/dist/esm/pds-dropdown-menu-item.entry.js +2 -1
  161. package/dist/esm/pds-dropdown-menu-separator.entry.js +2 -1
  162. package/dist/esm/pds-dropdown-menu.entry.js +41 -10
  163. package/dist/esm/pds-filter.entry.js +2 -1
  164. package/dist/esm/pds-filters.entry.js +2 -1
  165. package/dist/esm/pds-icon.entry.js +2 -1
  166. package/dist/esm/pds-image.entry.js +2 -1
  167. package/dist/esm/pds-input.entry.js +3 -2
  168. package/dist/esm/pds-link.entry.js +2 -1
  169. package/dist/esm/pds-loader.entry.js +29 -2
  170. package/dist/esm/pds-modal-content.entry.js +4 -3
  171. package/dist/esm/pds-modal-footer.entry.js +3 -2
  172. package/dist/esm/pds-modal-header.entry.js +3 -2
  173. package/dist/esm/pds-modal.entry.js +137 -50
  174. package/dist/esm/pds-multiselect.entry.js +2 -1
  175. package/dist/esm/pds-popover.entry.js +83 -14
  176. package/dist/esm/pds-progress.entry.js +14 -2
  177. package/dist/esm/pds-property.entry.js +2 -1
  178. package/dist/esm/pds-radio-group.entry.js +5 -4
  179. package/dist/esm/pds-radio.entry.js +13 -4
  180. package/dist/esm/pds-row.entry.js +13 -2
  181. package/dist/esm/pds-select.entry.js +15 -2
  182. package/dist/esm/pds-sortable-item.entry.js +12 -2
  183. package/dist/esm/pds-sortable.entry.js +13 -2
  184. package/dist/esm/pds-switch.entry.js +14 -5
  185. package/dist/esm/pds-tab.entry.js +2 -1
  186. package/dist/esm/pds-table-body.entry.js +2 -1
  187. package/dist/esm/pds-table-cell.entry.js +2 -1
  188. package/dist/esm/pds-table-head-cell.entry.js +2 -1
  189. package/dist/esm/pds-table-head.entry.js +2 -1
  190. package/dist/esm/pds-table-row.entry.js +2 -1
  191. package/dist/esm/pds-table.entry.js +2 -1
  192. package/dist/esm/pds-tabpanel.entry.js +3 -2
  193. package/dist/esm/pds-tabs.entry.js +15 -2
  194. package/dist/esm/pds-text.entry.js +2 -1
  195. package/dist/esm/pds-textarea.entry.js +3 -2
  196. package/dist/esm/pds-toast.entry.js +2 -1
  197. package/dist/esm/pds-tooltip.entry.js +4 -3
  198. package/dist/esm/pine-core.js +4 -3
  199. package/dist/esm/reflected-attribute-default-t3idJwV0.js +42 -0
  200. package/dist/esm-es5/attributes-CF5K2pxn.js +1 -0
  201. package/dist/esm-es5/{index-bLhIfh0N.js → index-2HMD-zUO.js} +2 -2
  202. package/dist/esm-es5/index.js +1 -1
  203. package/dist/esm-es5/keep-hydrated-Dv7ssOTc.js +1 -0
  204. package/dist/esm-es5/loader.js +1 -1
  205. package/dist/esm-es5/mock-pds-modal.entry.js +1 -1
  206. package/dist/esm-es5/pds-accordion.entry.js +1 -1
  207. package/dist/esm-es5/pds-alert.entry.js +1 -1
  208. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  209. package/dist/esm-es5/pds-box.entry.js +1 -1
  210. package/dist/esm-es5/pds-button.entry.js +1 -1
  211. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  212. package/dist/esm-es5/pds-chip.entry.js +1 -1
  213. package/dist/esm-es5/pds-combobox.entry.js +2 -2
  214. package/dist/esm-es5/pds-container.entry.js +1 -1
  215. package/dist/esm-es5/pds-copytext.entry.js +1 -1
  216. package/dist/esm-es5/pds-datepicker.entry.js +1 -1
  217. package/dist/esm-es5/pds-divider.entry.js +1 -1
  218. package/dist/esm-es5/pds-drawer-content.entry.js +1 -1
  219. package/dist/esm-es5/pds-drawer-footer.entry.js +1 -1
  220. package/dist/esm-es5/pds-drawer-header.entry.js +1 -1
  221. package/dist/esm-es5/pds-drawer.entry.js +1 -1
  222. package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -1
  223. package/dist/esm-es5/pds-dropdown-menu-separator.entry.js +1 -1
  224. package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
  225. package/dist/esm-es5/pds-filter.entry.js +1 -1
  226. package/dist/esm-es5/pds-filters.entry.js +1 -1
  227. package/dist/esm-es5/pds-icon.entry.js +1 -1
  228. package/dist/esm-es5/pds-image.entry.js +1 -1
  229. package/dist/esm-es5/pds-input.entry.js +1 -1
  230. package/dist/esm-es5/pds-link.entry.js +1 -1
  231. package/dist/esm-es5/pds-loader.entry.js +1 -1
  232. package/dist/esm-es5/pds-modal-content.entry.js +1 -1
  233. package/dist/esm-es5/pds-modal-footer.entry.js +1 -1
  234. package/dist/esm-es5/pds-modal-header.entry.js +1 -1
  235. package/dist/esm-es5/pds-modal.entry.js +1 -1
  236. package/dist/esm-es5/pds-multiselect.entry.js +1 -1
  237. package/dist/esm-es5/pds-popover.entry.js +1 -1
  238. package/dist/esm-es5/pds-progress.entry.js +1 -1
  239. package/dist/esm-es5/pds-property.entry.js +1 -1
  240. package/dist/esm-es5/pds-radio-group.entry.js +1 -1
  241. package/dist/esm-es5/pds-radio.entry.js +1 -1
  242. package/dist/esm-es5/pds-row.entry.js +1 -1
  243. package/dist/esm-es5/pds-select.entry.js +1 -1
  244. package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
  245. package/dist/esm-es5/pds-sortable.entry.js +2 -2
  246. package/dist/esm-es5/pds-switch.entry.js +1 -1
  247. package/dist/esm-es5/pds-tab.entry.js +1 -1
  248. package/dist/esm-es5/pds-table-body.entry.js +1 -1
  249. package/dist/esm-es5/pds-table-cell.entry.js +1 -1
  250. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  251. package/dist/esm-es5/pds-table-head.entry.js +1 -1
  252. package/dist/esm-es5/pds-table-row.entry.js +1 -1
  253. package/dist/esm-es5/pds-table.entry.js +1 -1
  254. package/dist/esm-es5/pds-tabpanel.entry.js +1 -1
  255. package/dist/esm-es5/pds-tabs.entry.js +1 -1
  256. package/dist/esm-es5/pds-text.entry.js +1 -1
  257. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  258. package/dist/esm-es5/pds-toast.entry.js +1 -1
  259. package/dist/esm-es5/pds-tooltip.entry.js +1 -1
  260. package/dist/esm-es5/pine-core.js +1 -1
  261. package/dist/esm-es5/reflected-attribute-default-t3idJwV0.js +1 -0
  262. package/dist/pine-core/index.esm.js +1 -1
  263. package/dist/pine-core/p-0166c620.entry.js +1 -0
  264. package/dist/pine-core/p-02857936.entry.js +1 -0
  265. package/dist/pine-core/{p-5986f3c9.entry.js → p-04fe5da7.system.entry.js} +1 -1
  266. package/dist/pine-core/p-0de74105.entry.js +1 -0
  267. package/dist/pine-core/p-152245fa.system.entry.js +1 -0
  268. package/dist/pine-core/p-16c2aa63.entry.js +1 -0
  269. package/dist/pine-core/p-1b13f69c.system.entry.js +1 -0
  270. package/dist/pine-core/p-1cd0acf0.system.entry.js +1 -0
  271. package/dist/pine-core/p-1cf1fced.entry.js +1 -0
  272. package/dist/pine-core/p-1d75a9b1.system.entry.js +1 -0
  273. package/dist/pine-core/p-1e464117.entry.js +1 -0
  274. package/dist/pine-core/p-1ec4eeaf.system.entry.js +1 -0
  275. package/dist/pine-core/p-1f263c0b.system.entry.js +1 -0
  276. package/dist/pine-core/p-1f2e5958.entry.js +1 -0
  277. package/dist/pine-core/p-207c94da.entry.js +1 -0
  278. package/dist/pine-core/p-21115986.system.entry.js +1 -0
  279. package/dist/pine-core/p-22f041ee.system.entry.js +1 -0
  280. package/dist/pine-core/p-2357758d.system.entry.js +1 -0
  281. package/dist/pine-core/p-238e5171.system.entry.js +1 -0
  282. package/dist/pine-core/p-281efc69.entry.js +1 -0
  283. package/dist/pine-core/p-2ac9e90a.system.entry.js +1 -0
  284. package/dist/pine-core/p-2cb02706.entry.js +1 -0
  285. package/dist/pine-core/p-2f539379.system.entry.js +3 -0
  286. package/dist/pine-core/p-343546b1.system.entry.js +1 -0
  287. package/dist/pine-core/p-347ae53c.system.entry.js +1 -0
  288. package/dist/pine-core/p-34b575b6.entry.js +2 -0
  289. package/dist/pine-core/p-37d73369.system.entry.js +1 -0
  290. package/dist/pine-core/p-37d95be9.entry.js +1 -0
  291. package/dist/pine-core/p-3b1d8fae.entry.js +1 -0
  292. package/dist/pine-core/p-419f57c9.entry.js +1 -0
  293. package/dist/pine-core/p-4414d442.system.entry.js +1 -0
  294. package/dist/pine-core/p-45fcc5b7.entry.js +1 -0
  295. package/dist/pine-core/p-4c9cccdb.system.entry.js +8 -0
  296. package/dist/pine-core/p-4e05a4f0.entry.js +1 -0
  297. package/dist/pine-core/p-4e67e68e.entry.js +1 -0
  298. package/dist/pine-core/p-506d3e80.entry.js +1 -0
  299. package/dist/pine-core/p-5132b8a1.entry.js +1 -0
  300. package/dist/pine-core/p-51dff046.system.entry.js +1 -0
  301. package/dist/pine-core/p-539ef98c.entry.js +1 -0
  302. package/dist/pine-core/p-56576b6e.entry.js +1 -0
  303. package/dist/pine-core/p-5737182f.entry.js +1 -0
  304. package/dist/pine-core/p-585832b1.entry.js +1 -0
  305. package/dist/pine-core/p-59491f98.entry.js +1 -0
  306. package/dist/pine-core/p-5ac84b2f.entry.js +1 -0
  307. package/dist/pine-core/p-5b7f7760.entry.js +1 -0
  308. package/dist/pine-core/p-5bc670be.system.entry.js +1 -0
  309. package/dist/pine-core/p-5d014059.entry.js +1 -0
  310. package/dist/pine-core/p-5decd81f.entry.js +1 -0
  311. package/dist/pine-core/p-5e8d73d4.entry.js +1 -0
  312. package/dist/pine-core/p-622e91e3.entry.js +7 -0
  313. package/dist/pine-core/{p-d00c5b9c.system.entry.js → p-63119d23.entry.js} +1 -1
  314. package/dist/pine-core/p-63854c10.system.entry.js +1 -0
  315. package/dist/pine-core/p-650ccffb.entry.js +1 -0
  316. package/dist/pine-core/p-65e30a4c.entry.js +1 -0
  317. package/dist/pine-core/p-66cfef6d.system.entry.js +1 -0
  318. package/dist/pine-core/p-6d83ad2d.system.entry.js +1 -0
  319. package/dist/pine-core/p-70c6f0ed.system.entry.js +1 -0
  320. package/dist/pine-core/p-71e3a89e.system.entry.js +1 -0
  321. package/dist/pine-core/p-721297b5.system.entry.js +1 -0
  322. package/dist/pine-core/p-73bc6e9f.system.entry.js +1 -0
  323. package/dist/pine-core/p-798839f7.system.entry.js +1 -0
  324. package/dist/pine-core/p-7bbfb965.system.entry.js +1 -0
  325. package/dist/pine-core/p-7d01e719.entry.js +1 -0
  326. package/dist/pine-core/p-7e115d33.system.entry.js +1 -0
  327. package/dist/pine-core/p-8027db25.entry.js +1 -0
  328. package/dist/pine-core/p-834c678e.system.entry.js +1 -0
  329. package/dist/pine-core/p-87f91e02.system.entry.js +1 -0
  330. package/dist/pine-core/p-8b0fbeb3.entry.js +1 -0
  331. package/dist/pine-core/p-8b9d8fb5.system.entry.js +1 -0
  332. package/dist/pine-core/p-912487fa.entry.js +1 -0
  333. package/dist/pine-core/p-91f712f4.system.entry.js +1 -0
  334. package/dist/pine-core/p-93877d4a.entry.js +1 -0
  335. package/dist/pine-core/p-969488f5.system.entry.js +1 -0
  336. package/dist/pine-core/p-9835c74b.entry.js +1 -0
  337. package/dist/pine-core/p-99317375.system.entry.js +1 -0
  338. package/dist/pine-core/p-9a7ee7cb.system.entry.js +1 -0
  339. package/dist/pine-core/p-9b9f66b7.entry.js +1 -0
  340. package/dist/pine-core/p-9bcdfac2.entry.js +1 -0
  341. package/dist/pine-core/p-9d33bb05.entry.js +1 -0
  342. package/dist/pine-core/p-BJlg6wq7.system.js +2 -0
  343. package/dist/pine-core/p-BMFBF3sJ.system.js +1 -0
  344. package/dist/pine-core/p-Bkho_oFB.system.js +1 -0
  345. package/dist/pine-core/p-D2MUS7JO.js +1 -0
  346. package/dist/pine-core/p-D2yHYrxQ.system.js +1 -0
  347. package/dist/pine-core/p-DeIDZHrg.js +2 -0
  348. package/dist/pine-core/p-Dv7ssOTc.js +1 -0
  349. package/dist/pine-core/p-TyevV8iv.system.js +1 -0
  350. package/dist/pine-core/p-YQa3CeL9.system.js +1 -0
  351. package/dist/pine-core/p-a22091c4.system.entry.js +1 -0
  352. package/dist/pine-core/p-a6d09102.system.entry.js +1 -0
  353. package/dist/pine-core/p-a83a6618.system.entry.js +1 -0
  354. package/dist/pine-core/p-afd5e2d7.entry.js +1 -0
  355. package/dist/pine-core/p-b5838211.system.entry.js +1 -0
  356. package/dist/pine-core/p-ba1b79c7.system.entry.js +1 -0
  357. package/dist/pine-core/p-bd7da23e.system.entry.js +1 -0
  358. package/dist/pine-core/p-bde53290.system.entry.js +1 -0
  359. package/dist/pine-core/p-bdf68e53.system.entry.js +1 -0
  360. package/dist/pine-core/p-bef04e15.system.entry.js +1 -0
  361. package/dist/pine-core/p-bf1aea9f.system.entry.js +1 -0
  362. package/dist/pine-core/p-c00e46a5.system.entry.js +1 -0
  363. package/dist/pine-core/p-c8e89b61.system.entry.js +1 -0
  364. package/dist/pine-core/p-c9395f43.system.entry.js +1 -0
  365. package/dist/pine-core/p-d576e542.system.entry.js +1 -0
  366. package/dist/pine-core/p-d5dd5599.entry.js +1 -0
  367. package/dist/pine-core/p-d69cfaa4.entry.js +1 -0
  368. package/dist/pine-core/p-db4319fd.entry.js +1 -0
  369. package/dist/pine-core/p-dc81ffff.entry.js +1 -0
  370. package/dist/pine-core/p-e337f32c.system.entry.js +1 -0
  371. package/dist/pine-core/p-e46f7541.system.entry.js +1 -0
  372. package/dist/pine-core/p-e7ba30dd.system.entry.js +1 -0
  373. package/dist/pine-core/p-ed3dd3d2.entry.js +1 -0
  374. package/dist/pine-core/p-eee4f146.entry.js +1 -0
  375. package/dist/pine-core/p-f01e35e2.entry.js +1 -0
  376. package/dist/pine-core/p-f06ca8df.entry.js +1 -0
  377. package/dist/pine-core/p-f2e0da9a.entry.js +1 -0
  378. package/dist/pine-core/p-f30d6192.system.entry.js +1 -0
  379. package/dist/pine-core/p-fbea5703.entry.js +1 -0
  380. package/dist/pine-core/p-fc6ac917.entry.js +1 -0
  381. package/dist/pine-core/p-ffe276ef.entry.js +1 -0
  382. package/dist/pine-core/p-t3idJwV0.js +1 -0
  383. package/dist/pine-core/pine-core.esm.js +1 -1
  384. package/dist/pine-core/pine-core.js +1 -1
  385. package/dist/types/components/pds-avatar/pds-avatar.d.ts +3 -0
  386. package/dist/types/components/pds-box/pds-box.d.ts +7 -0
  387. package/dist/types/components/pds-checkbox/pds-checkbox.d.ts +2 -0
  388. package/dist/types/components/pds-chip/pds-chip.d.ts +2 -0
  389. package/dist/types/components/pds-combobox/pds-combobox.d.ts +5 -0
  390. package/dist/types/components/pds-copytext/pds-copytext.d.ts +3 -0
  391. package/dist/types/components/pds-drawer/pds-drawer-content/pds-drawer-content.d.ts +1 -0
  392. package/dist/types/components/pds-drawer/pds-drawer-footer/pds-drawer-footer.d.ts +3 -0
  393. package/dist/types/components/pds-drawer/pds-drawer-header/pds-drawer-header.d.ts +3 -0
  394. package/dist/types/components/pds-drawer/pds-drawer.d.ts +1 -0
  395. package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu.d.ts +4 -0
  396. package/dist/types/components/pds-loader/pds-loader.d.ts +5 -0
  397. package/dist/types/components/pds-modal/pds-modal-content/pds-modal-content.d.ts +3 -0
  398. package/dist/types/components/pds-modal/pds-modal-footer/pds-modal-footer.d.ts +3 -0
  399. package/dist/types/components/pds-modal/pds-modal-header/pds-modal-header.d.ts +3 -0
  400. package/dist/types/components/pds-modal/pds-modal.d.ts +9 -1
  401. package/dist/types/components/pds-popover/pds-popover.d.ts +15 -0
  402. package/dist/types/components/pds-progress/pds-progress.d.ts +4 -0
  403. package/dist/types/components/pds-radio/pds-radio.d.ts +3 -0
  404. package/dist/types/components/pds-radio-group/pds-radio-group.d.ts +1 -0
  405. package/dist/types/components/pds-row/pds-row.d.ts +7 -0
  406. package/dist/types/components/pds-select/pds-select.d.ts +2 -0
  407. package/dist/types/components/pds-sortable/pds-sortable-item/pds-sortable-item.d.ts +4 -0
  408. package/dist/types/components/pds-sortable/pds-sortable.d.ts +6 -0
  409. package/dist/types/components/pds-switch/pds-switch.d.ts +2 -0
  410. package/dist/types/components/pds-tabs/pds-tab/pds-tab.d.ts +3 -0
  411. package/dist/types/components/pds-tabs/pds-tabpanel/pds-tabpanel.d.ts +3 -0
  412. package/dist/types/components/pds-tabs/pds-tabs.d.ts +3 -0
  413. package/dist/types/components/pds-tooltip/pds-tooltip.d.ts +1 -0
  414. package/dist/types/components.d.ts +199 -0
  415. package/dist/types/global/pine-global.d.ts +2 -0
  416. package/dist/types/index.d.ts +1 -0
  417. package/dist/types/utils/attributes.d.ts +34 -0
  418. package/dist/types/utils/keep-hydrated.d.ts +29 -0
  419. package/dist/types/utils/reflected-attribute-default.d.ts +31 -0
  420. package/dist/types/utils/test/host-strip.d.ts +10 -0
  421. package/dist/vscode.html-data.json +7 -0
  422. package/hydrate/index.js +778 -202
  423. package/hydrate/index.mjs +778 -202
  424. package/package.json +2 -2
  425. package/dist/cjs/attributes-oNMnBEnP.js +0 -85
  426. package/dist/esm/attributes-C0M1gTKv.js +0 -82
  427. package/dist/esm-es5/attributes-C0M1gTKv.js +0 -1
  428. package/dist/pine-core/p-015d2ceb.entry.js +0 -1
  429. package/dist/pine-core/p-02a428af.system.entry.js +0 -1
  430. package/dist/pine-core/p-06534502.entry.js +0 -1
  431. package/dist/pine-core/p-0827c6a6.entry.js +0 -1
  432. package/dist/pine-core/p-085c92aa.system.entry.js +0 -1
  433. package/dist/pine-core/p-0af4685d.entry.js +0 -1
  434. package/dist/pine-core/p-0bfe152a.entry.js +0 -1
  435. package/dist/pine-core/p-0ce3bcf2.system.entry.js +0 -1
  436. package/dist/pine-core/p-1747c005.system.entry.js +0 -1
  437. package/dist/pine-core/p-1dd395d8.system.entry.js +0 -1
  438. package/dist/pine-core/p-2126b4e4.system.entry.js +0 -1
  439. package/dist/pine-core/p-23044953.system.entry.js +0 -1
  440. package/dist/pine-core/p-26d8c4f7.system.entry.js +0 -1
  441. package/dist/pine-core/p-28abc253.system.entry.js +0 -1
  442. package/dist/pine-core/p-2a00844f.entry.js +0 -1
  443. package/dist/pine-core/p-3653fd52.system.entry.js +0 -1
  444. package/dist/pine-core/p-3add97f7.system.entry.js +0 -1
  445. package/dist/pine-core/p-40928521.system.entry.js +0 -1
  446. package/dist/pine-core/p-40ebfe59.system.entry.js +0 -1
  447. package/dist/pine-core/p-468f0dab.system.entry.js +0 -1
  448. package/dist/pine-core/p-478e69d1.entry.js +0 -1
  449. package/dist/pine-core/p-495f791c.entry.js +0 -1
  450. package/dist/pine-core/p-4a43fbd9.entry.js +0 -1
  451. package/dist/pine-core/p-4d3f5098.system.entry.js +0 -1
  452. package/dist/pine-core/p-517e04f6.entry.js +0 -1
  453. package/dist/pine-core/p-517f9962.entry.js +0 -1
  454. package/dist/pine-core/p-563ba784.entry.js +0 -1
  455. package/dist/pine-core/p-569b07ed.system.entry.js +0 -1
  456. package/dist/pine-core/p-5bf397ca.entry.js +0 -1
  457. package/dist/pine-core/p-5c7c2ffa.entry.js +0 -1
  458. package/dist/pine-core/p-5e9396e2.system.entry.js +0 -1
  459. package/dist/pine-core/p-600be0e1.entry.js +0 -1
  460. package/dist/pine-core/p-601b646c.system.entry.js +0 -1
  461. package/dist/pine-core/p-60393d52.entry.js +0 -1
  462. package/dist/pine-core/p-60a15bf7.system.entry.js +0 -1
  463. package/dist/pine-core/p-60e687ac.entry.js +0 -1
  464. package/dist/pine-core/p-61ae5a4b.system.entry.js +0 -1
  465. package/dist/pine-core/p-62045f88.system.entry.js +0 -1
  466. package/dist/pine-core/p-62241978.entry.js +0 -1
  467. package/dist/pine-core/p-62974869.entry.js +0 -1
  468. package/dist/pine-core/p-63422f56.entry.js +0 -2
  469. package/dist/pine-core/p-63930a06.system.entry.js +0 -1
  470. package/dist/pine-core/p-6516adf7.system.entry.js +0 -1
  471. package/dist/pine-core/p-67227922.entry.js +0 -1
  472. package/dist/pine-core/p-686b526d.entry.js +0 -1
  473. package/dist/pine-core/p-69f60432.system.entry.js +0 -1
  474. package/dist/pine-core/p-6aaf945c.entry.js +0 -1
  475. package/dist/pine-core/p-6b25f349.system.entry.js +0 -1
  476. package/dist/pine-core/p-6eb2070a.entry.js +0 -1
  477. package/dist/pine-core/p-715b8e6b.entry.js +0 -1
  478. package/dist/pine-core/p-74b1b841.entry.js +0 -1
  479. package/dist/pine-core/p-7608e9b2.entry.js +0 -1
  480. package/dist/pine-core/p-773f5771.system.entry.js +0 -1
  481. package/dist/pine-core/p-77961987.system.entry.js +0 -1
  482. package/dist/pine-core/p-77e12080.system.entry.js +0 -1
  483. package/dist/pine-core/p-7a177548.system.entry.js +0 -1
  484. package/dist/pine-core/p-7fbb7037.entry.js +0 -1
  485. package/dist/pine-core/p-806f17de.system.entry.js +0 -1
  486. package/dist/pine-core/p-832cedb7.entry.js +0 -1
  487. package/dist/pine-core/p-847e5f00.system.entry.js +0 -1
  488. package/dist/pine-core/p-85981c5d.system.entry.js +0 -1
  489. package/dist/pine-core/p-86978a51.entry.js +0 -1
  490. package/dist/pine-core/p-871894e1.entry.js +0 -1
  491. package/dist/pine-core/p-893b02b7.entry.js +0 -1
  492. package/dist/pine-core/p-8961d112.system.entry.js +0 -3
  493. package/dist/pine-core/p-8d42f505.entry.js +0 -1
  494. package/dist/pine-core/p-9452adc4.entry.js +0 -1
  495. package/dist/pine-core/p-977db8b2.entry.js +0 -1
  496. package/dist/pine-core/p-9903eb37.system.entry.js +0 -1
  497. package/dist/pine-core/p-9b18314c.entry.js +0 -1
  498. package/dist/pine-core/p-9b262a9d.entry.js +0 -1
  499. package/dist/pine-core/p-9dbb8fe9.entry.js +0 -1
  500. package/dist/pine-core/p-BhQhw0S3.system.js +0 -1
  501. package/dist/pine-core/p-C0M1gTKv.js +0 -1
  502. package/dist/pine-core/p-CrXTJmBd.system.js +0 -2
  503. package/dist/pine-core/p-DO9XKAkv.system.js +0 -1
  504. package/dist/pine-core/p-G3CPPJEt.system.js +0 -1
  505. package/dist/pine-core/p-a44316ad.entry.js +0 -1
  506. package/dist/pine-core/p-ae125139.entry.js +0 -1
  507. package/dist/pine-core/p-af9bce53.entry.js +0 -1
  508. package/dist/pine-core/p-b2901e60.system.entry.js +0 -1
  509. package/dist/pine-core/p-b412473d.system.entry.js +0 -8
  510. package/dist/pine-core/p-b51cfa3b.entry.js +0 -1
  511. package/dist/pine-core/p-b62e08c2.system.entry.js +0 -1
  512. package/dist/pine-core/p-b802776b.system.entry.js +0 -1
  513. package/dist/pine-core/p-b823bde2.system.entry.js +0 -1
  514. package/dist/pine-core/p-b82a0693.entry.js +0 -1
  515. package/dist/pine-core/p-b852c82b.system.entry.js +0 -1
  516. package/dist/pine-core/p-b979105e.entry.js +0 -1
  517. package/dist/pine-core/p-bLhIfh0N.js +0 -2
  518. package/dist/pine-core/p-bb9d158c.system.entry.js +0 -1
  519. package/dist/pine-core/p-bd1bdb07.system.entry.js +0 -1
  520. package/dist/pine-core/p-c53e560a.system.entry.js +0 -1
  521. package/dist/pine-core/p-c5c46b65.entry.js +0 -1
  522. package/dist/pine-core/p-cbae27a4.system.entry.js +0 -1
  523. package/dist/pine-core/p-cd7deae5.entry.js +0 -1
  524. package/dist/pine-core/p-cd86ee3e.system.entry.js +0 -1
  525. package/dist/pine-core/p-cf5a484e.system.entry.js +0 -1
  526. package/dist/pine-core/p-cf99f7d8.system.entry.js +0 -1
  527. package/dist/pine-core/p-cff7013e.system.entry.js +0 -1
  528. package/dist/pine-core/p-d11e4956.entry.js +0 -1
  529. package/dist/pine-core/p-da7a7cca.entry.js +0 -1
  530. package/dist/pine-core/p-daaf653f.system.entry.js +0 -1
  531. package/dist/pine-core/p-de740b3e.system.entry.js +0 -1
  532. package/dist/pine-core/p-e1d541f7.entry.js +0 -1
  533. package/dist/pine-core/p-ea0e5253.entry.js +0 -7
  534. package/dist/pine-core/p-ea9468fb.entry.js +0 -1
  535. package/dist/pine-core/p-f22abb4d.system.entry.js +0 -1
  536. package/dist/pine-core/p-f2560935.entry.js +0 -1
  537. package/dist/pine-core/p-f279f435.system.entry.js +0 -1
  538. package/dist/pine-core/p-f5677949.system.entry.js +0 -1
  539. package/dist/pine-core/p-f6943cbf.entry.js +0 -1
  540. package/dist/pine-core/p-f794f7ad.entry.js +0 -1
  541. package/dist/pine-core/p-fe09b6fb.system.entry.js +0 -1
@@ -1,5 +1,7 @@
1
- import { r as registerInstance, h, H as Host, a as getElement } from './index-bLhIfh0N.js';
1
+ import { r as registerInstance, h, H as Host, a as getElement } from './index-2HMD-zUO.js';
2
+ import { s as setAttributesIfChanged } from './attributes-CF5K2pxn.js';
2
3
  import { a as autoUpdate, c as computePosition, o as offset, f as flip, s as shift } from './floating-ui.dom-BPqJgIq6.js';
4
+ import './keep-hydrated-Dv7ssOTc.js';
3
5
 
4
6
  const pdsDropdownMenuCss = () => `:host{display:block}.is-hidden{display:none}.pds-dropdown-menu--panel{background-color:var(--pine-color-background-overlay);border-radius:var(--pine-dimension-xs);left:var(--pine-dimension-none);min-width:170px;padding:var(--pine-dimension-xs);position:fixed;z-index:var(--pine-z-index-overlay)}:host-context([data-theme=dark]) .pds-dropdown-menu--panel{border:var(--pine-border)}::slotted(a),::slotted(button){-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:var(--pine-dimension-xs) !important;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pine-color-text) !important;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;font:var(--pine-typography-body-medium) !important;gap:var(--pine-dimension-xs);margin:calc(var(--pine-border-width) + 2px) !important;padding:var(--pine-dimension-xs) !important;text-align:start;text-decoration:none !important;width:calc(100% - (var(--pine-border-width) + 2px) * 2)}::slotted(.destructive){color:var(--pine-color-danger) !important}::slotted([aria-disabled=true]),::slotted([disabled]:not([disabled=false])){cursor:not-allowed;opacity:0.5;pointer-events:none}`;
5
7
 
@@ -9,6 +11,7 @@ const PdsDropdownMenu = class {
9
11
  this.isOpen = false;
10
12
  this.menuItems = [];
11
13
  this.cleanupAutoUpdate = null;
14
+ this.triggerObserver = null;
12
15
  this.currentFocusIndex = -1;
13
16
  /**
14
17
  * The placement of the dropdown panel relative to the trigger.
@@ -19,10 +22,17 @@ const PdsDropdownMenu = class {
19
22
  // Get all elements assigned to this slot
20
23
  const assignedElements = this.slotEl.assignedElements();
21
24
  this.triggerEl = assignedElements[0];
22
- this.triggerEl.onclick = this.handleClick;
23
- // Add accessibility attributes to trigger
24
- this.triggerEl.setAttribute('aria-haspopup', 'menu');
25
- this.triggerEl.setAttribute('aria-expanded', 'false');
25
+ if (this.triggerEl) {
26
+ this.triggerEl.onclick = this.handleClick;
27
+ this.syncTriggerAria();
28
+ }
29
+ this.observeTrigger();
30
+ };
31
+ // Writes the trigger's ARIA from the menu's state, so the observer's own callback doesn't loop.
32
+ this.syncTriggerAria = () => {
33
+ if (!this.triggerEl)
34
+ return;
35
+ setAttributesIfChanged(this.triggerEl, { 'aria-haspopup': 'menu', 'aria-expanded': String(this.isOpen) });
26
36
  };
27
37
  this.handleSlotChange = (event) => {
28
38
  this.slotEl = event.target;
@@ -76,8 +86,7 @@ const PdsDropdownMenu = class {
76
86
  this.cleanupAutoUpdate = autoUpdate(this.triggerEl, this.panelEl, updatePosition);
77
87
  (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('pds-box').classList.remove('is-hidden');
78
88
  this.isOpen = true;
79
- // Update ARIA attributes
80
- this.triggerEl.setAttribute('aria-expanded', 'true');
89
+ this.syncTriggerAria();
81
90
  };
82
91
  // Close the dropdown
83
92
  this.closeDropdown = () => {
@@ -89,8 +98,7 @@ const PdsDropdownMenu = class {
89
98
  this.cleanupAutoUpdate();
90
99
  this.cleanupAutoUpdate = null;
91
100
  }
92
- // Update ARIA attributes
93
- this.triggerEl.setAttribute('aria-expanded', 'false');
101
+ this.syncTriggerAria();
94
102
  // Reset focus index
95
103
  this.currentFocusIndex = -1;
96
104
  // Return focus to trigger
@@ -107,12 +115,35 @@ const PdsDropdownMenu = class {
107
115
  var _a;
108
116
  this.panelEl = (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('pds-box');
109
117
  }
118
+ connectedCallback() {
119
+ // Moved within the page, the trigger slot doesn't change, so watch the same trigger again, and
120
+ // fix anything changed while the menu was detached and unobserved.
121
+ this.observeTrigger();
122
+ this.syncTriggerAria();
123
+ }
110
124
  disconnectedCallback() {
125
+ var _a;
111
126
  // Clean up auto-update when component is removed from DOM
112
127
  if (this.cleanupAutoUpdate) {
113
128
  this.cleanupAutoUpdate();
114
129
  this.cleanupAutoUpdate = null;
115
130
  }
131
+ (_a = this.triggerObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
132
+ this.triggerObserver = null;
133
+ }
134
+ // The trigger is the consumer's element, so anything can rewrite its attributes (a Turbo morph
135
+ // matches it to server HTML that has no ARIA). Put Pine's values back when that happens.
136
+ observeTrigger() {
137
+ var _a;
138
+ (_a = this.triggerObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
139
+ this.triggerObserver = null;
140
+ if (!this.triggerEl || typeof MutationObserver === 'undefined')
141
+ return;
142
+ this.triggerObserver = new MutationObserver(this.syncTriggerAria);
143
+ this.triggerObserver.observe(this.triggerEl, {
144
+ attributes: true,
145
+ attributeFilter: ['aria-haspopup', 'aria-expanded'],
146
+ });
116
147
  }
117
148
  // Outside clicks and scripted closes leave focus where it is; only focus in the menu or on its trigger returns.
118
149
  isFocusInMenu() {
@@ -314,7 +345,7 @@ const PdsDropdownMenu = class {
314
345
  }
315
346
  }
316
347
  render() {
317
- return (h(Host, { key: 'a49d859ea4b881c025620b3bad3157af8ceceb36', id: this.componentId }, h("slot", { key: '2669398c6b6f0ad4037ba34695b0880afa4c69b9', name: "trigger", onSlotchange: this.handleTriggerSlotChange }), h("pds-box", { key: 'e2a6d7892bfe4ead980df8f702e5387e62d6bd05', "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: '70fa9b2ac96f528ae0ebd28486b5a934fb705413', onSlotchange: this.handleSlotChange }))));
348
+ 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 }))));
318
349
  }
319
350
  get host() { return getElement(this); }
320
351
  };
@@ -1,6 +1,7 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-bLhIfh0N.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-2HMD-zUO.js';
2
2
  import { i as isRtlDirection } from './scroll-DtgUQhjl.js';
3
3
  import { t as trash, e as enlarge } from './index-DxI-61GK.js';
4
+ import './keep-hydrated-Dv7ssOTc.js';
4
5
 
5
6
  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)))}}`;
6
7
 
@@ -1,4 +1,5 @@
1
- import { r as registerInstance, h, H as Host } from './index-bLhIfh0N.js';
1
+ import { r as registerInstance, h, H as Host } from './index-2HMD-zUO.js';
2
+ import './keep-hydrated-Dv7ssOTc.js';
2
3
 
3
4
  const pdsFiltersCss = () => `:host{display:block}.pds-filters{-ms-flex-align:start;align-items:flex-start;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:var(--pine-dimension-100)}`;
4
5
 
@@ -1,4 +1,5 @@
1
- import { r as registerInstance, h, H as Host, a as getElement } from './index-bLhIfh0N.js';
1
+ import { r as registerInstance, h, H as Host, a as getElement } from './index-2HMD-zUO.js';
2
+ import './keep-hydrated-Dv7ssOTc.js';
2
3
 
3
4
  let missingAssetPathWarning = false;
4
5
  /**
@@ -1,4 +1,5 @@
1
- import { r as registerInstance, h, H as Host } from './index-bLhIfh0N.js';
1
+ import { r as registerInstance, h, H as Host } from './index-2HMD-zUO.js';
2
+ import './keep-hydrated-Dv7ssOTc.js';
2
3
 
3
4
  const pdsImageCss = () => `:host{--dimension-aspect-ratio:auto;display:inline-block}img{aspect-ratio:var(--dimension-aspect-ratio);display:block;height:auto;max-width:100%}`;
4
5
 
@@ -1,8 +1,9 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-bLhIfh0N.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-2HMD-zUO.js';
2
2
  import { i as isSpecTest, a as assignDescription, m as messageId } from './form-BuRbS7Hp.js';
3
- import { i as inheritAriaAttributes } from './attributes-C0M1gTKv.js';
3
+ import { i as inheritAriaAttributes } from './attributes-CF5K2pxn.js';
4
4
  import { c as cancelDebouncedEvent, d as debounceEvent, f as flushDebouncedEvent } from './utils-OYK5-nwe.js';
5
5
  import { b as danger } from './index-DxI-61GK.js';
6
+ import './keep-hydrated-Dv7ssOTc.js';
6
7
 
7
8
  const pdsInputTokensCss = () => `:host{--pine-input-color-background-danger:var(--pine-color-red-050)}`;
8
9
 
@@ -1,6 +1,7 @@
1
- import { r as registerInstance, h } from './index-bLhIfh0N.js';
1
+ import { r as registerInstance, h } from './index-2HMD-zUO.js';
2
2
  import { s as setColor } from './utils-OYK5-nwe.js';
3
3
  import { l as launch } from './index-DxI-61GK.js';
4
+ import './keep-hydrated-Dv7ssOTc.js';
4
5
 
5
6
  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}`;
6
7
 
@@ -1,10 +1,14 @@
1
- import { r as registerInstance, h, H as Host } from './index-bLhIfh0N.js';
1
+ import { r as registerInstance, h, H as Host, a as getElement } from './index-2HMD-zUO.js';
2
+ import { H as HostStylingKeeper } from './attributes-CF5K2pxn.js';
3
+ import { r as restoreReflectedDefault } from './reflected-attribute-default-t3idJwV0.js';
4
+ import './keep-hydrated-Dv7ssOTc.js';
2
5
 
3
6
  const pdsLoaderCss = () => `:host{--loader-color:var(--pine-color-primary);-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--pine-dimension-xs)}:host(.pds-loader--hidden),.pds-loader--hidden{border-width:0;clip:rect(0, 0, 0, 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pds-loader--spinner svg{--number-spinner-timing:2s;--number-spinner-path-timing:1.5s;-webkit-animation:rotate var(--number-spinner-timing) linear infinite;animation:rotate var(--number-spinner-timing) linear infinite;color:var(--loader-color)}.pds-loader__spinner-path{stroke-width:8px}@-webkit-keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.pds-loader--typing{--number-typing-timing:1s;--opacity-typing-dot-default:0.4;--opacity-typing-dot-active:1;-ms-flex-align:center;align-items:center;background-color:var(--pine-color-background-muted);border-radius:var(--pine-dimension-sm);-webkit-box-shadow:var(--pine-box-shadow);box-shadow:var(--pine-box-shadow);display:-ms-inline-flexbox;display:inline-flex;gap:var(--pine-dimension-2xs);margin-block:var(--pine-dimension-none);margin-inline:auto;padding-block:15px;padding-inline:20px;position:relative}.pds-loader--typing span{background-color:var(--pine-color-border-hover);block-size:6px;border-radius:var(--pine-border-radius-full);inline-size:6px;opacity:var(--opacity-typing-dot-default)}.pds-loader--typing span:nth-of-type(1){-webkit-animation:var(--number-typing-timing) typing infinite 0.3333s;animation:var(--number-typing-timing) typing infinite 0.3333s}.pds-loader--typing span:nth-of-type(2){-webkit-animation:var(--number-typing-timing) typing infinite 0.6666s;animation:var(--number-typing-timing) typing infinite 0.6666s}.pds-loader--typing span:nth-of-type(3){-webkit-animation:var(--number-typing-timing) typing infinite 0.9999s;animation:var(--number-typing-timing) typing infinite 0.9999s}@-webkit-keyframes typing{50%{opacity:var(--opacity-typing-dot-active);-webkit-transform:scale(1.25);transform:scale(1.25)}}@keyframes typing{50%{opacity:var(--opacity-typing-dot-active);-webkit-transform:scale(1.25);transform:scale(1.25)}}.pds-loader__label{--typography-label-default:var(--pine-font-weight-medium) var(--pine-font-size-body-md)/var(--pine-line-height-body) var(--pine-font-family-body);font:var(--typography-label-default)}`;
4
7
 
5
8
  const PdsLoader = class {
6
9
  constructor(hostRef) {
7
10
  registerInstance(this, hostRef);
11
+ this.hostKeeper = new HostStylingKeeper();
8
12
  /**
9
13
  * If false, the loader will be hidden.
10
14
  */
@@ -30,6 +34,15 @@ const PdsLoader = class {
30
34
  }
31
35
  };
32
36
  }
37
+ connectedCallback() {
38
+ this.hostKeeper.connect(this.el);
39
+ }
40
+ disconnectedCallback() {
41
+ this.hostKeeper.disconnect();
42
+ }
43
+ restoreSizeDefault(newValue) {
44
+ this.size = restoreReflectedDefault(this.el, 'size', newValue, 'md');
45
+ }
33
46
  loaderSize() {
34
47
  const sizes = {
35
48
  xs: '24px',
@@ -46,8 +59,22 @@ const PdsLoader = class {
46
59
  }
47
60
  }
48
61
  render() {
49
- return (h(Host, { key: '173f7ae2d2f49807144df2faa8d8a765f92da235', class: `pds-loader ${this.isLoading ? '' : 'pds-loader--hidden'}`, "aria-hidden": !this.isLoading, "aria-busy": this.isLoading, "aria-live": "polite" }, this.variant === 'spinner' && (h("div", { key: '05bc278d18ef2470d87676b3a53d691a6a9872dd', class: "pds-loader--spinner" }, h("svg", { key: 'fcfc87492dd5cdbc7bf471089a038bd8b057f6ec', style: this.getSvgStyle(), viewBox: "0 0 200 200", fill: "none", part: "loader-svg" }, h("defs", { key: 'd9f6aecc7e5a8b03e2d18f79125fd6190b27803c' }, h("linearGradient", { key: '7851a1b709bccac7704b3822e1aae292d3a68e2d', id: "spinner-secondHalf" }, h("stop", { key: '3d4a75792365cad4ea417794dca6c440859f8ce3', offset: "0%", "stop-opacity": "0", "stop-color": "currentColor" }), h("stop", { key: '7287acab80b1ea32f884cf69ceb19989603e0882', offset: "100%", "stop-opacity": "0.5", "stop-color": "currentColor" })), h("linearGradient", { key: '0ec8d95161c24d14773ebee01c189f269079b79d', id: "spinner-firstHalf" }, h("stop", { key: '2a7cea30b2bf2044a14f29f4d64728150669d048', offset: "0%", "stop-opacity": "1", "stop-color": "currentColor" }), h("stop", { key: '608bd5cc1c7b9014a5f183d9e06efe4a0c119616', offset: "100%", "stop-opacity": "0.5", "stop-color": "currentColor" }))), h("g", { key: '36016dc3bd8a2e4f03f4f287881bfe1b7ce15494', class: "pds-loader__spinner-path" }, h("path", { key: '9410bff29a42cd469ed0f52510a36f7d173b2247', stroke: "url(#spinner-secondHalf)", d: "M 4 100 A 96 96 0 0 1 196 100" }), h("path", { key: '66e8283575e53ca52edd12e95c6545406d39c361', stroke: "url(#spinner-firstHalf)", d: "M 196 100 A 96 96 0 0 1 4 100" }), h("path", { key: '1c8a7526bc763ac62f0e8c762ab47cb2bca0ec89', stroke: "currentColor", "stroke-linecap": "round", d: "M 4 100 A 96 96 0 0 1 4 98" }))))), this.variant === 'typing' && (h("div", { key: '2c8f9596beb8010778e0cf79f006970769da9795', class: "pds-loader--typing" }, h("span", { key: '587cd8da845d1223a5e8b2d199d049ccc1ed78aa' }), h("span", { key: '972f7844a5f2469adbb04b15ebf41e49eb5c0354' }), h("span", { key: '575511989d50f6d9436b846cadec1a5a4fa57c1e' }))), h("div", { key: '70f1b43a79a1d2605145a5ea6fe86e0a6059889d', class: `pds-loader__label ${this.showLabel ? '' : 'pds-loader--hidden'}` }, h("slot", { key: '9a981b8530200aa91916017180266edaea6da9ac', name: "label" }, "Loading..."))));
62
+ const hostClass = `pds-loader ${this.isLoading ? '' : 'pds-loader--hidden'}`;
63
+ // Explicit 'true': a boolean `true` lands as an empty value, which ARIA reads as unset.
64
+ const hostAttributes = {
65
+ 'aria-hidden': this.isLoading ? null : 'true',
66
+ 'aria-busy': this.isLoading ? 'true' : null,
67
+ 'aria-live': 'polite',
68
+ };
69
+ this.hostKeeper.record(hostClass, {}, hostAttributes);
70
+ 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..."))));
50
71
  }
72
+ get el() { return getElement(this); }
73
+ static get watchers() { return {
74
+ "size": [{
75
+ "restoreSizeDefault": 0
76
+ }]
77
+ }; }
51
78
  };
52
79
  PdsLoader.style = pdsLoaderCss();
53
80
 
@@ -1,5 +1,6 @@
1
- import { r as registerInstance, h, H as Host, a as getElement } from './index-bLhIfh0N.js';
1
+ import { r as registerInstance, h, H as Host, a as getElement } from './index-2HMD-zUO.js';
2
2
  import { u as unwrapReconnectedContent } from './reconnected-content-RFpTWV6r.js';
3
+ import './keep-hydrated-Dv7ssOTc.js';
3
4
 
4
5
  const pdsModalContentCss = () => `pds-modal-content{display:block;-ms-flex:1 1 auto;flex:1 1 auto;width:100%}pds-modal-content:has(.pds-modal-content.pds-modal-content--border-none){border:0}pds-modal-content:has(.pds-modal-content.pds-modal-content--border-both){-webkit-border-after:1px solid var(--pine-color-border-subtle);border-block-end:1px solid var(--pine-color-border-subtle);-webkit-border-before:1px solid var(--pine-color-border-subtle);border-block-start:1px solid var(--pine-color-border-subtle)}pds-modal-content:has(.pds-modal-content.pds-modal-content--border-top){-webkit-border-before:1px solid var(--pine-color-border-subtle);border-block-start:1px solid var(--pine-color-border-subtle)}pds-modal-content:has(.pds-modal-content.pds-modal-content--border-bottom){-webkit-border-after:1px solid var(--pine-color-border-subtle);border-block-end:1px solid var(--pine-color-border-subtle)}.pds-modal-content{display:block;-ms-flex:1 1 auto;flex:1 1 auto;min-height:0;width:100%}`;
5
6
 
@@ -182,10 +183,10 @@ const PdsModalContent = class {
182
183
  render() {
183
184
  // Only apply max-height style if it's not 'none'
184
185
  const styleObj = this.contentMaxHeight !== 'none' ? { maxHeight: this.contentMaxHeight } : {};
185
- return (h(Host, { key: '3e8352c946c3646a485ca505e11de3ace3906435' }, h("div", { key: 'd1fb3cb8f2c7ce0c3b19787152d93c1a0ac84b72', class: {
186
+ return (h(Host, { key: 'f66dbdd08d6af3f87b0a6e8f30e1948b2f674e34' }, h("div", { key: 'ac0469cbfe48002d5bc7f401e0dc30926cfd4421', class: {
186
187
  'pds-modal-content': true,
187
188
  [`pds-modal-content--border-${this.border}`]: true
188
- }, style: styleObj, tabindex: "-1" }, h("slot", { key: '6d263b4960a3cffe985ee3af6d6e22e97ded4b7e' }))));
189
+ }, style: styleObj, tabindex: "-1" }, h("slot", { key: '26a8a45ab4dcd0349da68304fa3cacc64603208a' }))));
189
190
  }
190
191
  get el() { return getElement(this); }
191
192
  };
@@ -1,5 +1,6 @@
1
- import { r as registerInstance, h, a as getElement } from './index-bLhIfh0N.js';
1
+ import { r as registerInstance, h, a as getElement } from './index-2HMD-zUO.js';
2
2
  import { u as unwrapReconnectedContent } from './reconnected-content-RFpTWV6r.js';
3
+ import './keep-hydrated-Dv7ssOTc.js';
3
4
 
4
5
  const pdsModalFooterCss = () => `pds-modal-footer{display:block;width:100%}.pds-modal__footer{width:100%}`;
5
6
 
@@ -12,7 +13,7 @@ const PdsModalFooter = class {
12
13
  unwrapReconnectedContent(this.el.querySelector('.pds-modal__footer'), '.pds-modal__footer');
13
14
  }
14
15
  render() {
15
- return (h("footer", { key: 'ed10ed9c8ab3a472ec9e4d20683c4c209877a6c2', class: "pds-modal__footer" }, h("slot", { key: '35765b1624e35dfc540620b7fca20dba3a5c2ca7' })));
16
+ return (h("footer", { key: '1148892c2d6b9a461f6c04a670fceda76c1be53a', class: "pds-modal__footer" }, h("slot", { key: 'ccd754674c82c415f8c056c9dda6327df35dbd03' })));
16
17
  }
17
18
  get el() { return getElement(this); }
18
19
  };
@@ -1,5 +1,6 @@
1
- import { r as registerInstance, h, a as getElement } from './index-bLhIfh0N.js';
1
+ import { r as registerInstance, h, a as getElement } from './index-2HMD-zUO.js';
2
2
  import { u as unwrapReconnectedContent } from './reconnected-content-RFpTWV6r.js';
3
+ import './keep-hydrated-Dv7ssOTc.js';
3
4
 
4
5
  const pdsModalHeaderCss = () => `pds-modal-header{display:block;width:100%}.pds-modal__header{width:100%}`;
5
6
 
@@ -12,7 +13,7 @@ const PdsModalHeader = class {
12
13
  unwrapReconnectedContent(this.el.querySelector('.pds-modal__header'), '.pds-modal__header');
13
14
  }
14
15
  render() {
15
- return (h("header", { key: '247373607b807a1428d5b3e7726bd88b6c23776b', class: "pds-modal__header" }, h("slot", { key: '75e7cbf018c82809d23ad4095546af2cd5a01823' })));
16
+ return (h("header", { key: '030153b84f1ea1cb133c9ccec3ad86583995974f', class: "pds-modal__header" }, h("slot", { key: '3a479e7047f3e845a65c37d60539648c8ff78602' })));
16
17
  }
17
18
  get el() { return getElement(this); }
18
19
  };
@@ -1,5 +1,7 @@
1
- import { r as registerInstance, c as createEvent, h, a as getElement } from './index-bLhIfh0N.js';
1
+ import { r as registerInstance, c as createEvent, h, a as getElement } from './index-2HMD-zUO.js';
2
+ import { a as closest } from './closest-DHPzKMVS.js';
2
3
  import { u as unwrapReconnectedContent } from './reconnected-content-RFpTWV6r.js';
4
+ import './keep-hydrated-Dv7ssOTc.js';
3
5
 
4
6
  const pdsModalCss = () => `.pds-modal__backdrop{-ms-flex-align:start;align-items:flex-start;background-color:rgba(0, 0, 0, 0.4);border:0;display:-ms-flexbox;display:flex;height:100%;inset:0;-ms-flex-pack:center;justify-content:center;margin:0;max-height:100%;max-width:100%;opacity:0;padding:0;position:fixed;-webkit-transition:opacity var(--pine-motion-duration-base) var(--pine-motion-easing-in), visibility var(--pine-motion-duration-base) var(--pine-motion-easing-in);transition:opacity var(--pine-motion-duration-base) var(--pine-motion-easing-in), visibility var(--pine-motion-duration-base) var(--pine-motion-easing-in);visibility:hidden;width:100%;z-index:var(--pine-z-index-modal)}@supports ((-webkit-backdrop-filter: blur(3px)) or (backdrop-filter: blur(3px))){.pds-modal__backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}}pds-modal .pds-modal__backdrop{z-index:var(--pine-z-index-priority)}.pds-modal__backdrop::-webkit-backdrop{background:transparent}.pds-modal__backdrop::-ms-backdrop{background:transparent}.pds-modal__backdrop::backdrop{background:transparent}.pds-modal__backdrop[aria-modal=false]{overflow:auto;-ms-scroll-chaining:none;overscroll-behavior:contain}@supports ((-webkit-backdrop-filter: blur(3px)) or (backdrop-filter: blur(3px))){.pds-modal__backdrop[aria-modal=false]{-webkit-backdrop-filter:none;backdrop-filter:none}.pds-modal__backdrop[aria-modal=false]::before{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);content:"";inset:0;position:fixed;z-index:-1}}.pds-modal__backdrop.open{opacity:1;-webkit-transition-timing-function:var(--pine-motion-easing-out);transition-timing-function:var(--pine-motion-easing-out);visibility:visible}.pds-modal{background:var(--pine-color-background-overlay);border-radius:var(--pine-dimension-sm);-webkit-box-shadow:var(--pine-box-shadow-400);box-shadow:var(--pine-box-shadow-400);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin:var(--pine-dimension-md);max-height:none;width:100%}.pds-modal.pds-modal--scrollable{max-height:calc(100vh - (5vh + 96px))}@supports (height: 100dvh){.pds-modal.pds-modal--scrollable{max-height:calc(100dvh - (5dvh + 96px))}}@media (min-width: 992px){.pds-modal{-webkit-margin-before:6vh;margin-block-start:6vh}@supports (height: 100dvh){.pds-modal{-webkit-margin-before:6dvh;margin-block-start:6dvh}}}@media (min-width: 1200px){.pds-modal{-webkit-margin-before:8vh;margin-block-start:8vh}@supports (height: 100dvh){.pds-modal{-webkit-margin-before:8dvh;margin-block-start:8dvh}}}.pds-modal--sm{max-width:520px}.pds-modal--md{max-width:700px}.pds-modal--lg{max-width:900px}.pds-modal--custom{max-width:var(--pds-modal-max-width, 700px)}.pds-modal--fullscreen{border-radius:0;height:100%;margin:0;max-height:100vh;max-width:100%}@supports (height: 100dvh){.pds-modal--fullscreen{max-height:100dvh}}.pds-modal--fullscreen.pds-modal--scrollable{max-height:100vh}@supports (height: 100dvh){.pds-modal--fullscreen.pds-modal--scrollable{max-height:100dvh}}.pds-modal--fullscreen .pds-modal-content{-ms-flex:1;flex:1}.pds-modal--scrollable pds-modal-content{-webkit-border-after:1px solid transparent;border-block-end:1px solid transparent;-webkit-border-before:1px solid transparent;border-block-start:1px solid transparent;overflow-y:auto}.pds-modal:not(.pds-modal--scrollable) pds-modal-content{overflow-y:visible}`;
5
7
 
@@ -7,6 +9,89 @@ const PRESET_SIZES = ['sm', 'md', 'lg', 'fullscreen'];
7
9
  const isCustomLength = (value) => /^[a-z0-9.%+\-*/(), ]+$/i.test(value) &&
8
10
  /\d/.test(value) &&
9
11
  (typeof CSS === 'undefined' || CSS.supports('max-width', value));
12
+ const TABBABLE = [
13
+ 'a[href]',
14
+ 'area[href]',
15
+ 'button',
16
+ 'input:not([type="hidden"])',
17
+ 'select',
18
+ 'textarea',
19
+ 'iframe',
20
+ 'summary',
21
+ '[contenteditable]:not([contenteditable="false"])',
22
+ '[tabindex]',
23
+ ].join(',');
24
+ /**
25
+ * Collects the tabbable elements under `root` in focus order, walking into open shadow roots and
26
+ * following slots, so a component's own controls (the input inside pds-combobox or pds-textarea)
27
+ * count without being registered here by tag name. Positive tabindex values are not reordered,
28
+ * and a closed shadow root can't be seen into.
29
+ */
30
+ function collectTabbable(root, found) {
31
+ for (const child of Array.from(root.children))
32
+ visitTabbable(child, found);
33
+ }
34
+ // An editing host reports tabIndex -1 but is still a Tab stop; editable content inside it is not.
35
+ const isTabStop = (el) => { var _a; return el.tabIndex >= 0 || (el.isContentEditable && !el.hasAttribute('tabindex') && !((_a = el.parentElement) === null || _a === void 0 ? void 0 : _a.isContentEditable)); };
36
+ function visitTabbable(el, found) {
37
+ var _a, _b, _c, _d;
38
+ if (el.hasAttribute('inert'))
39
+ return;
40
+ if (el.localName === 'slot') {
41
+ const slot = el;
42
+ // Fallback content renders only when nothing at all is assigned, text included.
43
+ if (((_b = (_a = slot.assignedNodes) === null || _a === void 0 ? void 0 : _a.call(slot, { flatten: true })) !== null && _b !== void 0 ? _b : []).length === 0)
44
+ return collectTabbable(el, found);
45
+ for (const slotted of slot.assignedElements({ flatten: true }))
46
+ visitTabbable(slotted, found);
47
+ return;
48
+ }
49
+ // A delegatesFocus host passes focus to its first control, which the walk below finds.
50
+ const delegates = ((_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.delegatesFocus) === true;
51
+ if (el instanceof HTMLElement && !delegates && isTabStop(el) && el.matches(TABBABLE) && !el.matches(':disabled')) {
52
+ found.push(el);
53
+ }
54
+ // A shadow host's light children render only through its slots, which the walk reaches.
55
+ collectTabbable((_d = el.shadowRoot) !== null && _d !== void 0 ? _d : el, found);
56
+ }
57
+ /** The element as a radio in a named group, or `null`. */
58
+ const groupedRadio = (el) => el instanceof HTMLInputElement && el.type === 'radio' && el.name !== '' ? el : null;
59
+ /**
60
+ * Keeps one radio per named group, as the browser does: the checked one, or the first. The others
61
+ * are reached with the arrow keys, so they can't be the first or last stop of the trap.
62
+ */
63
+ function oneRadioPerGroup(elements) {
64
+ // Radios group by name and form within one tree, so each shadow root starts its own groups.
65
+ const groups = [];
66
+ for (const el of elements) {
67
+ const radio = groupedRadio(el);
68
+ if (radio === null)
69
+ continue;
70
+ const group = groups.find(([first]) => first.name === radio.name && first.form === radio.form && first.getRootNode() === radio.getRootNode());
71
+ if (group)
72
+ group.push(radio);
73
+ else
74
+ groups.push([radio]);
75
+ }
76
+ const stops = new Set(groups.map((radios) => { var _a; return (_a = radios.find((radio) => radio.checked)) !== null && _a !== void 0 ? _a : radios[0]; }));
77
+ return elements.filter((el) => groupedRadio(el) === null || stops.has(el));
78
+ }
79
+ /** Whether `node` is `ancestor` or inside it, crossing shadow roots, which `Node.contains` doesn't. */
80
+ function containsComposed(ancestor, node) {
81
+ for (let current = node; current; current = current instanceof ShadowRoot ? current.host : current.parentNode) {
82
+ if (current === ancestor)
83
+ return true;
84
+ }
85
+ return false;
86
+ }
87
+ /** The focused element, followed down through shadow roots to the control that has focus. */
88
+ function deepActiveElement() {
89
+ var _a;
90
+ let active = document.activeElement;
91
+ while ((_a = active === null || active === void 0 ? void 0 : active.shadowRoot) === null || _a === void 0 ? void 0 : _a.activeElement)
92
+ active = active.shadowRoot.activeElement;
93
+ return active;
94
+ }
10
95
  const PdsModal = class {
11
96
  constructor(hostRef) {
12
97
  registerInstance(this, hostRef);
@@ -126,6 +211,17 @@ const PdsModal = class {
126
211
  // disableTopLayer), so do not trap Tab here.
127
212
  if (this.disableTopLayer)
128
213
  return;
214
+ // A control inside that handles Tab itself (a popup with its own trap) has already moved
215
+ // focus. This holds only when it listens on its own element, which runs before this
216
+ // document listener; one listening on document too would race it.
217
+ if (e.defaultPrevented)
218
+ return;
219
+ // Every open modal hears this keydown. When focus is in a modal dialog opened above this one,
220
+ // that dialog traps Tab: this modal's list also holds its controls, so it would wrap first. A
221
+ // non-modal dialog inside (a disableTopLayer modal) doesn't trap, so this one still does.
222
+ const activeElement = deepActiveElement();
223
+ if (!activeElement || this.modalDialogAbove(activeElement))
224
+ return;
129
225
  // Content can change while the modal is open (rows fetched in, sections shown), so the
130
226
  // first and last elements are read now rather than from the list taken on opening.
131
227
  this.updateFocusableElements();
@@ -135,13 +231,13 @@ const PdsModal = class {
135
231
  // Get the first and last focusable elements
136
232
  const firstFocusableElement = this.focusableElements[0];
137
233
  const lastFocusableElement = this.focusableElements[this.focusableElements.length - 1];
138
- // Get the current active element
139
- const activeElement = document.activeElement;
140
- // Check if we need to wrap focus
141
- const isFirstElement = activeElement === firstFocusableElement ||
142
- firstFocusableElement.contains(activeElement);
143
- const isLastElement = activeElement === lastFocusableElement ||
144
- lastFocusableElement.contains(activeElement);
234
+ // activeElement is the control inside any shadow root, as the list holds, not the host
235
+ // document.activeElement reports. It's matched to its own stop first, so a stop inside a
236
+ // listed host isn't taken for that host; a focused node that isn't a stop counts as the
237
+ // innermost stop it sits in.
238
+ const stop = this.stopIndex(activeElement);
239
+ const isFirstElement = stop === 0;
240
+ const isLastElement = stop === this.focusableElements.length - 1;
145
241
  // If shift + tab is pressed and focus is on the first element, move to the last element
146
242
  if (e.shiftKey && isFirstElement) {
147
243
  e.preventDefault();
@@ -198,23 +294,8 @@ const PdsModal = class {
198
294
  updateFocusableElements() {
199
295
  if (!this.modalRef)
200
296
  return;
201
- // Get all focusable elements within the modal
202
- const selector = [
203
- 'a[href]',
204
- 'button:not([disabled])',
205
- 'input:not([disabled])',
206
- 'select:not([disabled])',
207
- 'textarea:not([disabled])',
208
- '[tabindex]:not([tabindex="-1"])',
209
- 'pds-button:not([disabled])',
210
- 'pds-link:not([disabled])',
211
- 'pds-input:not([disabled])',
212
- 'pds-checkbox:not([disabled])',
213
- 'pds-radio:not([disabled])',
214
- 'pds-switch:not([disabled])',
215
- 'pds-select:not([disabled])',
216
- ].join(',');
217
- this.focusableElements = Array.from(this.modalRef.querySelectorAll(selector));
297
+ this.focusableElements = [];
298
+ collectTabbable(this.modalRef, this.focusableElements);
218
299
  // checkVisibility() also drops an element inside a hidden ancestor, whose own computed
219
300
  // display isn't none; such an element can't take focus, so it can't anchor the trap.
220
301
  this.focusableElements = this.focusableElements.filter(el => {
@@ -223,6 +304,7 @@ const PdsModal = class {
223
304
  const style = window.getComputedStyle(el);
224
305
  return style.display !== 'none' && style.visibility !== 'hidden';
225
306
  });
307
+ this.focusableElements = oneRadioPerGroup(this.focusableElements);
226
308
  }
227
309
  /**
228
310
  * Sets focus to the first focusable element in the modal
@@ -236,30 +318,11 @@ const PdsModal = class {
236
318
  this.focusElement(firstElement);
237
319
  }
238
320
  /**
239
- * Helper method to focus an element, with special handling for web components
321
+ * Focuses an element from the list. It holds the controls themselves, inside any shadow root,
322
+ * so they take focus directly.
240
323
  */
241
324
  focusElement(element) {
242
- if (!element)
243
- return;
244
- try {
245
- // Try standard focus first
246
- element.focus();
247
- // Check if focus worked
248
- setTimeout(() => {
249
- if (document.activeElement !== element) {
250
- // For web components, try to find a focusable element inside
251
- if (element.shadowRoot) {
252
- const focusableInShadow = element.shadowRoot.querySelector('button, [tabindex], input, a[href]');
253
- if (focusableInShadow) {
254
- focusableInShadow.focus();
255
- }
256
- }
257
- }
258
- }, 0);
259
- }
260
- catch (error) {
261
- console.error('Error focusing element:', error);
262
- }
325
+ element === null || element === void 0 ? void 0 : element.focus();
263
326
  }
264
327
  /**
265
328
  * Opens the modal
@@ -422,6 +485,30 @@ const PdsModal = class {
422
485
  const thisZIndex = this.getBackdropZIndex(this.el);
423
486
  return thisZIndex === maxZIndex;
424
487
  }
488
+ /** Whether a modal dialog other than this one sits between the focused element and this modal. */
489
+ modalDialogAbove(active) {
490
+ var _a;
491
+ for (let dialog = closest('dialog[open]', active); dialog instanceof HTMLElement;) {
492
+ if (dialog === this.modalRef)
493
+ return false;
494
+ if (dialog.matches(':modal'))
495
+ return true;
496
+ // Up from this dialog, across a shadow root; past the document root, closest() gives nothing.
497
+ dialog = closest('dialog[open]', (_a = dialog.parentElement) !== null && _a !== void 0 ? _a : dialog.getRootNode().host);
498
+ }
499
+ return false;
500
+ }
501
+ /** The focused element's place in the list: its own stop, or the innermost stop it sits in. */
502
+ stopIndex(active) {
503
+ const own = this.focusableElements.indexOf(active);
504
+ if (own >= 0)
505
+ return own;
506
+ for (let i = this.focusableElements.length - 1; i >= 0; i--) {
507
+ if (containsComposed(this.focusableElements[i], active))
508
+ return i;
509
+ }
510
+ return -1;
511
+ }
425
512
  resolveSize() {
426
513
  var _a;
427
514
  const size = ((_a = this.size) !== null && _a !== void 0 ? _a : '').trim() || 'md';
@@ -436,14 +523,14 @@ const PdsModal = class {
436
523
  }
437
524
  render() {
438
525
  const [sizeClass = 'md', customSize] = this.resolveSize();
439
- return (h("dialog", { key: 'aa352ccc057e4d6183f8c17349bc71857208a928', class: {
526
+ return (h("dialog", { key: 'b6714c7e77d80bf2370f2170ffce029abe147d81', class: {
440
527
  'pds-modal__backdrop': true,
441
528
  'open': this.open
442
- }, "aria-modal": this.disableTopLayer ? 'false' : 'true', "aria-labelledby": `${this.componentId}-heading`, onClick: this.handleBackdropClick }, h("div", { key: '12799824edbeea42a6f7f91e0172c6ecbde93337', class: {
529
+ }, "aria-modal": this.disableTopLayer ? 'false' : 'true', "aria-labelledby": `${this.componentId}-heading`, onClick: this.handleBackdropClick }, h("div", { key: '8c3319f53dd8c79c9e952785277e9e82e28b651e', class: {
443
530
  'pds-modal': true,
444
531
  [`pds-modal--${sizeClass}`]: true,
445
532
  'pds-modal--scrollable': this.scrollable
446
- }, style: customSize !== undefined ? { '--pds-modal-max-width': customSize } : undefined, part: "modal" }, h("slot", { key: 'f517c6466d65f141fba2d41cfe36d1b8d5f29930' }))));
533
+ }, style: customSize !== undefined ? { '--pds-modal-max-width': customSize } : undefined, part: "modal" }, h("slot", { key: '8c6f9cc1a20b515659344ad041512de52761800d' }))));
447
534
  }
448
535
  get el() { return getElement(this); }
449
536
  static get watchers() { return {
@@ -1,9 +1,10 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-bLhIfh0N.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-2HMD-zUO.js';
2
2
  import { a as autoUpdate, c as computePosition, o as offset, f as flip, s as shift, b as size } from './floating-ui.dom-BPqJgIq6.js';
3
3
  import { c as cancelDebouncedEvent, d as debounceEvent, f as flushDebouncedEvent } from './utils-OYK5-nwe.js';
4
4
  import { i as isSpecTest, a as assignDescription, m as messageId } from './form-BuRbS7Hp.js';
5
5
  import { e as enlarge, b as danger } from './index-DxI-61GK.js';
6
6
  import { f as formatMessage, p as pluralize } from './i18n-format-BJgZHCWe.js';
7
+ import './keep-hydrated-Dv7ssOTc.js';
7
8
 
8
9
  const pdsMultiselectCss = () => `:host{display:block}:host([aria-disabled=true]) .pds-multiselect__trigger{background:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-disabled);cursor:not-allowed}:host([aria-disabled=true]) .pds-multiselect__icon{color:var(--pine-color-text-disabled)}.pds-multiselect{position:relative}.pds-multiselect__label{color:var(--pine-color-text-label);display:block;font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing);-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}.pds-multiselect__wrapper{position:relative}.pds-multiselect__trigger{-ms-flex-align:center;align-items:center;background:var(--pine-color-background-container);border:var(--pine-border);border-radius:var(--pine-dimension-125);cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-medium);gap:var(--pine-dimension-xs);-ms-flex-pack:justify;justify-content:space-between;letter-spacing:var(--pine-letter-spacing);min-height:var(--pine-dimension-450);padding:var(--pine-dimension-xs) var(--pine-dimension-sm);position:relative;text-align:start;-webkit-transition:border-color var(--pine-motion-duration-base) ease, -webkit-box-shadow var(--pine-motion-duration-base) ease;transition:border-color var(--pine-motion-duration-base) ease, -webkit-box-shadow var(--pine-motion-duration-base) ease;transition:border-color var(--pine-motion-duration-base) ease, box-shadow var(--pine-motion-duration-base) ease;transition:border-color var(--pine-motion-duration-base) ease, box-shadow var(--pine-motion-duration-base) ease, -webkit-box-shadow var(--pine-motion-duration-base) ease;width:100%}.pds-multiselect__trigger:hover:not(.pds-multiselect__trigger--disabled){border-color:var(--pine-color-border-hover)}.pds-multiselect__trigger:focus:not(.pds-multiselect__trigger--disabled){border-color:var(--pine-color-border-active);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-multiselect__trigger.pds-multiselect__trigger--open{border-color:var(--pine-color-border-active)}.pds-multiselect__trigger.pds-multiselect__trigger--invalid{background-color:var(--pine-color-red-050);border-color:var(--pine-color-border-danger)}.pds-multiselect__trigger.pds-multiselect__trigger--invalid:focus{outline-color:var(--pine-color-focus-ring-danger)}.pds-multiselect__trigger.pds-multiselect__trigger--disabled{background:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-disabled);cursor:not-allowed}.pds-multiselect__trigger-text{color:var(--pine-color-text-strong);-ms-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pds-multiselect__trigger-text.pds-multiselect__trigger-text--placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__trigger--disabled .pds-multiselect__trigger-text{color:var(--pine-color-text-disabled)}.pds-multiselect__icon{color:var(--pine-color-icon);-ms-flex-negative:var(--pine-dimension-none);flex-shrink:var(--pine-dimension-none)}.pds-multiselect__pill-list{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:var(--pine-dimension-2xs)}.pds-multiselect__pill-list--inline{-ms-flex:1;flex:1;min-width:0}.pds-multiselect__pill-list--below{-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs)}.pds-multiselect__pill-overflow{color:var(--pine-color-text-muted);font:var(--pine-typography-body-sm-medium);white-space:nowrap}.pds-multiselect__trigger--pill-inline{-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:var(--pine-dimension-2xs);min-height:var(--pine-dimension-450);padding:var(--pine-dimension-2xs) var(--pine-dimension-sm)}.pds-multiselect__trigger--pill-inline.pds-multiselect__trigger--open{border-color:var(--pine-color-border-active)}.pds-multiselect__trigger--pill-inline:focus-within:not(.pds-multiselect__trigger--disabled){border-color:var(--pine-color-border-active);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-multiselect__trigger--pill-inline.pds-multiselect__trigger--invalid:focus-within{outline-color:var(--pine-color-focus-ring-danger)}.pds-multiselect__pill-toggle{-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border-width:0;cursor:pointer;display:-ms-flexbox;display:flex;padding:0}.pds-multiselect__pill-toggle:focus{outline:3px solid transparent}.pds-multiselect__trigger--disabled .pds-multiselect__pill-toggle{cursor:not-allowed;pointer-events:none}.pds-multiselect__panel{background:var(--pine-color-background-overlay);border-radius:var(--pine-dimension-125);-webkit-box-shadow:var(--pine-box-shadow);box-shadow:var(--pine-box-shadow);-webkit-box-sizing:border-box;box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;position:fixed;z-index:var(--pine-z-index-raised)}.pds-multiselect__search{-ms-flex-align:center;align-items:center;-webkit-border-after:var(--pine-border);border-block-end:var(--pine-border);border-block-end-color:var(--pine-color-border-subtle);display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs);padding:var(--pine-dimension-xs) var(--pine-dimension-sm)}.pds-multiselect__search pds-icon{color:var(--pine-color-text-muted);-ms-flex-negative:var(--pine-dimension-none);flex-shrink:var(--pine-dimension-none)}.pds-multiselect__search-input{background:transparent;border:var(--pine-dimension-none);color:var(--pine-color-text-strong);-ms-flex:1;flex:1;font:var(--pine-typography-body);letter-spacing:var(--pine-letter-spacing);min-width:var(--pine-dimension-none);outline:none}.pds-multiselect__search-input::-webkit-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__search-input::-moz-placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__search-input:-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__search-input::-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__search-input::placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__selected-section{-webkit-border-after:var(--pine-border);border-block-end:var(--pine-border);border-block-end-color:var(--pine-color-border-subtle);padding:var(--pine-dimension-xs)}.pds-multiselect__selected-list{list-style:none;margin:var(--pine-dimension-none);padding:var(--pine-dimension-none)}.pds-multiselect__selected-item{color:var(--pine-color-text-strong);font:var(--pine-typography-body);letter-spacing:var(--pine-letter-spacing);overflow:hidden;padding:var(--pine-dimension-2xs) var(--pine-dimension-xs);text-overflow:ellipsis;white-space:nowrap}.pds-multiselect__listbox{background:transparent;border:var(--pine-dimension-none);-webkit-box-sizing:border-box;box-sizing:border-box;list-style:none;margin:var(--pine-dimension-none);overflow-y:auto;padding:var(--pine-dimension-xs)}.pds-multiselect__group-header{color:var(--pine-color-text-muted);display:block;font:var(--pine-typography-body-sm-medium);letter-spacing:var(--pine-letter-spacing);padding:var(--pine-dimension-sm) var(--pine-dimension-xs) var(--pine-dimension-2xs);text-transform:uppercase}.pds-multiselect__listbox>li:first-child>.pds-multiselect__group-header{-webkit-padding-before:var(--pine-dimension-xs);padding-block-start:var(--pine-dimension-xs)}.pds-multiselect__group-list{list-style:none;margin:var(--pine-dimension-none);padding:var(--pine-dimension-none)}.pds-multiselect__option{-ms-flex-align:center;align-items:center;background:transparent;border-radius:var(--pine-dimension-xs);cursor:pointer;display:-ms-flexbox;display:flex;padding:var(--pine-dimension-2xs) var(--pine-dimension-xs);-webkit-transition:background 0.15s;transition:background 0.15s}.pds-multiselect__option pds-checkbox{pointer-events:none;width:100%}.pds-multiselect__option:hover:not(.pds-multiselect__option--disabled),.pds-multiselect__option.pds-multiselect__option--highlighted:not(.pds-multiselect__option--disabled){background:var(--pine-color-background-muted)}.pds-multiselect__option.pds-multiselect__option--disabled{cursor:not-allowed;opacity:0.5}.pds-multiselect__option:focus-visible{outline:var(--pine-dimension-none)}.pds-multiselect__option-action{-ms-flex-align:center;align-items:center;block-size:var(--pine-dimension-md);color:var(--pine-color-icon);cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0;inline-size:var(--pine-dimension-md);-ms-flex-pack:center;justify-content:center;-webkit-margin-start:var(--pine-dimension-xs);margin-inline-start:var(--pine-dimension-xs)}.pds-multiselect__create-option{color:var(--pine-color-text-strong);width:100%}.pds-multiselect__create-option pds-icon{color:var(--pine-color-text-muted);-ms-flex-negative:var(--pine-dimension-none);flex-shrink:var(--pine-dimension-none)}.pds-multiselect__empty,.pds-multiselect__loading{-ms-flex-align:center;align-items:center;color:var(--pine-color-text-muted);display:-ms-flexbox;display:flex;font:var(--pine-typography-body);-ms-flex-pack:center;justify-content:center;padding:var(--pine-dimension-sm)}.pds-multiselect__load-more{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding:var(--pine-dimension-xs)}.pds-multiselect__footer{-webkit-border-before:var(--pine-border);border-block-start:var(--pine-border);border-block-start-color:var(--pine-color-border-subtle);padding:var(--pine-dimension-xs) var(--pine-dimension-sm)}.pds-multiselect__helper{color:var(--pine-color-text-message);font:var(--pine-typography-body-sm-medium);-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs);-webkit-margin-start:var(--pine-dimension-none);margin-inline-start:var(--pine-dimension-none)}.pds-multiselect__error{-ms-flex-align:start;align-items:flex-start;color:var(--pine-color-text-message-danger);display:-ms-flexbox;display:flex;font:var(--pine-typography-body-sm-medium);gap:var(--pine-dimension-2xs);-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs);-webkit-margin-start:var(--pine-dimension-none);margin-inline-start:var(--pine-dimension-none)}.pds-multiselect__error pds-icon{-ms-flex-negative:var(--pine-dimension-none);flex-shrink:var(--pine-dimension-none);-webkit-margin-before:var(--pine-dimension-025);margin-block-start:var(--pine-dimension-025)}.visually-hidden{border:var(--pine-dimension-none);clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:var(--pine-dimension-none);position:absolute;white-space:nowrap;width:1px}`;
9
10