@pine-ds/core 3.1.0 → 3.3.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 (705) hide show
  1. package/components/index.d.ts +20 -0
  2. package/components/index.js +10 -0
  3. package/components/index.js.map +1 -1
  4. package/components/index2.js +1 -1
  5. package/components/index2.js.map +1 -1
  6. package/components/mock-pds-modal.d.ts +11 -0
  7. package/components/mock-pds-modal.js +108 -0
  8. package/components/mock-pds-modal.js.map +1 -0
  9. package/components/pds-alert.d.ts +11 -0
  10. package/components/pds-alert.js +107 -0
  11. package/components/pds-alert.js.map +1 -0
  12. package/components/pds-avatar.js +1 -1
  13. package/components/pds-box.js +1 -110
  14. package/components/pds-box.js.map +1 -1
  15. package/components/pds-box2.js +115 -0
  16. package/components/pds-box2.js.map +1 -0
  17. package/components/pds-button2.js +1 -1
  18. package/components/pds-button2.js.map +1 -1
  19. package/components/pds-checkbox2.js +3 -3
  20. package/components/pds-chip.js +21 -6
  21. package/components/pds-chip.js.map +1 -1
  22. package/components/pds-copytext.js +1 -1
  23. package/components/pds-divider.js +1 -1
  24. package/components/pds-dropdown-menu-item.d.ts +11 -0
  25. package/components/pds-dropdown-menu-item.js +117 -0
  26. package/components/pds-dropdown-menu-item.js.map +1 -0
  27. package/components/pds-dropdown-menu-separator.d.ts +11 -0
  28. package/components/pds-dropdown-menu-separator.js +44 -0
  29. package/components/pds-dropdown-menu-separator.js.map +1 -0
  30. package/components/pds-dropdown-menu.d.ts +11 -0
  31. package/components/pds-dropdown-menu.js +1600 -0
  32. package/components/pds-dropdown-menu.js.map +1 -0
  33. package/components/pds-image.js +2 -2
  34. package/components/pds-input.js +98 -21
  35. package/components/pds-input.js.map +1 -1
  36. package/components/pds-link.js +1 -67
  37. package/components/pds-link.js.map +1 -1
  38. package/components/pds-link2.js +85 -0
  39. package/components/pds-link2.js.map +1 -0
  40. package/components/pds-loader2.js +1 -1
  41. package/components/pds-modal-content.d.ts +11 -0
  42. package/components/pds-modal-content.js +111 -0
  43. package/components/pds-modal-content.js.map +1 -0
  44. package/components/pds-modal-footer.d.ts +11 -0
  45. package/components/pds-modal-footer.js +35 -0
  46. package/components/pds-modal-footer.js.map +1 -0
  47. package/components/pds-modal-header.d.ts +11 -0
  48. package/components/pds-modal-header.js +35 -0
  49. package/components/pds-modal-header.js.map +1 -0
  50. package/components/pds-modal.d.ts +11 -0
  51. package/components/pds-modal.js +278 -0
  52. package/components/pds-modal.js.map +1 -0
  53. package/components/pds-popover.js +33 -1
  54. package/components/pds-popover.js.map +1 -1
  55. package/components/pds-progress.js +1 -1
  56. package/components/pds-radio.js +3 -3
  57. package/components/pds-row.js +1 -1
  58. package/components/pds-select.js +3 -3
  59. package/components/pds-select.js.map +1 -1
  60. package/components/pds-sortable-item.js +1 -1
  61. package/components/pds-sortable.js +1 -1
  62. package/components/pds-switch.js +3 -3
  63. package/components/pds-tab.js +3 -3
  64. package/components/pds-table-body.js +1 -1
  65. package/components/pds-table-cell2.js +2 -2
  66. package/components/pds-table-head-cell2.js +2 -2
  67. package/components/pds-table-head.js +1 -1
  68. package/components/pds-table-row.js +1 -1
  69. package/components/pds-table.js +1 -1
  70. package/components/pds-tabpanel.js +1 -1
  71. package/components/pds-tabs.js +1 -1
  72. package/components/pds-text.js +1 -53
  73. package/components/pds-text.js.map +1 -1
  74. package/components/pds-text2.js +58 -0
  75. package/components/pds-text2.js.map +1 -0
  76. package/components/pds-textarea.js +4 -4
  77. package/components/pds-toast.d.ts +11 -0
  78. package/components/pds-toast.js +137 -0
  79. package/components/pds-toast.js.map +1 -0
  80. package/components/pds-tooltip.js +299 -81
  81. package/components/pds-tooltip.js.map +1 -1
  82. package/components/utils.js +3 -2
  83. package/components/utils.js.map +1 -1
  84. package/dist/cjs/{index-CG2Rr2io.js → index-B0qLG6KJ.js} +3 -3
  85. package/dist/cjs/index-B0qLG6KJ.js.map +1 -0
  86. package/dist/cjs/loader.cjs.js +1 -1
  87. package/dist/cjs/mock-pds-modal.cjs.entry.js +86 -0
  88. package/dist/cjs/mock-pds-modal.cjs.entry.js.map +1 -0
  89. package/dist/cjs/mock-pds-modal.entry.cjs.js.map +1 -0
  90. package/dist/cjs/pds-accordion.cjs.entry.js +1 -1
  91. package/dist/cjs/pds-alert.cjs.entry.js +66 -0
  92. package/dist/cjs/pds-alert.cjs.entry.js.map +1 -0
  93. package/dist/cjs/pds-alert.entry.cjs.js.map +1 -0
  94. package/dist/cjs/pds-avatar.cjs.entry.js +2 -2
  95. package/dist/cjs/pds-box.cjs.entry.js +2 -2
  96. package/dist/cjs/pds-box.cjs.entry.js.map +1 -1
  97. package/dist/cjs/pds-box.entry.cjs.js.map +1 -1
  98. package/dist/cjs/pds-button.cjs.entry.js +3 -3
  99. package/dist/cjs/pds-button.cjs.entry.js.map +1 -1
  100. package/dist/cjs/pds-button.entry.cjs.js.map +1 -1
  101. package/dist/cjs/pds-checkbox.cjs.entry.js +4 -4
  102. package/dist/cjs/pds-chip.cjs.entry.js +21 -7
  103. package/dist/cjs/pds-chip.cjs.entry.js.map +1 -1
  104. package/dist/cjs/pds-chip.entry.cjs.js.map +1 -1
  105. package/dist/cjs/pds-copytext.cjs.entry.js +2 -2
  106. package/dist/cjs/pds-divider.cjs.entry.js +1 -1
  107. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +82 -0
  108. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js.map +1 -0
  109. package/dist/cjs/pds-dropdown-menu-item.entry.cjs.js.map +1 -0
  110. package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +25 -0
  111. package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js.map +1 -0
  112. package/dist/cjs/pds-dropdown-menu-separator.entry.cjs.js.map +1 -0
  113. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +1574 -0
  114. package/dist/cjs/pds-dropdown-menu.cjs.entry.js.map +1 -0
  115. package/dist/cjs/pds-dropdown-menu.entry.cjs.js.map +1 -0
  116. package/dist/cjs/pds-image.cjs.entry.js +2 -2
  117. package/dist/cjs/pds-input.cjs.entry.js +88 -21
  118. package/dist/cjs/pds-input.cjs.entry.js.map +1 -1
  119. package/dist/cjs/pds-input.entry.cjs.js.map +1 -1
  120. package/dist/cjs/pds-link.cjs.entry.js +16 -4
  121. package/dist/cjs/pds-link.cjs.entry.js.map +1 -1
  122. package/dist/cjs/pds-link.entry.cjs.js.map +1 -1
  123. package/dist/cjs/pds-loader.cjs.entry.js +1 -1
  124. package/dist/cjs/pds-modal-content.cjs.entry.js +93 -0
  125. package/dist/cjs/pds-modal-content.cjs.entry.js.map +1 -0
  126. package/dist/cjs/pds-modal-content.entry.cjs.js.map +1 -0
  127. package/dist/cjs/pds-modal-footer.cjs.entry.js +20 -0
  128. package/dist/cjs/pds-modal-footer.cjs.entry.js.map +1 -0
  129. package/dist/cjs/pds-modal-footer.entry.cjs.js.map +1 -0
  130. package/dist/cjs/pds-modal-header.cjs.entry.js +20 -0
  131. package/dist/cjs/pds-modal-header.cjs.entry.js.map +1 -0
  132. package/dist/cjs/pds-modal-header.entry.cjs.js.map +1 -0
  133. package/dist/cjs/pds-modal.cjs.entry.js +253 -0
  134. package/dist/cjs/pds-modal.cjs.entry.js.map +1 -0
  135. package/dist/cjs/pds-modal.entry.cjs.js.map +1 -0
  136. package/dist/cjs/pds-popover.cjs.entry.js +33 -1
  137. package/dist/cjs/pds-popover.cjs.entry.js.map +1 -1
  138. package/dist/cjs/pds-popover.entry.cjs.js.map +1 -1
  139. package/dist/cjs/pds-progress.cjs.entry.js +1 -1
  140. package/dist/cjs/pds-radio.cjs.entry.js +4 -4
  141. package/dist/cjs/pds-row.cjs.entry.js +1 -1
  142. package/dist/cjs/pds-select.cjs.entry.js +3 -4
  143. package/dist/cjs/pds-select.cjs.entry.js.map +1 -1
  144. package/dist/cjs/pds-select.entry.cjs.js.map +1 -1
  145. package/dist/cjs/pds-sortable-item.cjs.entry.js +2 -2
  146. package/dist/cjs/pds-sortable.cjs.entry.js +1 -1
  147. package/dist/cjs/pds-switch.cjs.entry.js +4 -4
  148. package/dist/cjs/pds-tab.cjs.entry.js +3 -3
  149. package/dist/cjs/pds-table-body.cjs.entry.js +1 -1
  150. package/dist/cjs/pds-table-cell.cjs.entry.js +2 -2
  151. package/dist/cjs/pds-table-head-cell.cjs.entry.js +3 -3
  152. package/dist/cjs/pds-table-head.cjs.entry.js +1 -1
  153. package/dist/cjs/pds-table-row.cjs.entry.js +1 -1
  154. package/dist/cjs/pds-table.cjs.entry.js +1 -1
  155. package/dist/cjs/pds-tabpanel.cjs.entry.js +1 -1
  156. package/dist/cjs/pds-tabs.cjs.entry.js +1 -1
  157. package/dist/cjs/pds-text.cjs.entry.js +2 -2
  158. package/dist/cjs/pds-text.cjs.entry.js.map +1 -1
  159. package/dist/cjs/pds-text.entry.cjs.js.map +1 -1
  160. package/dist/cjs/pds-textarea.cjs.entry.js +6 -6
  161. package/dist/cjs/pds-toast.cjs.entry.js +104 -0
  162. package/dist/cjs/pds-toast.cjs.entry.js.map +1 -0
  163. package/dist/cjs/pds-toast.entry.cjs.js.map +1 -0
  164. package/dist/cjs/pds-tooltip.cjs.entry.js +297 -79
  165. package/dist/cjs/pds-tooltip.cjs.entry.js.map +1 -1
  166. package/dist/cjs/pds-tooltip.entry.cjs.js.map +1 -1
  167. package/dist/cjs/pine-core.cjs.js +1 -1
  168. package/dist/cjs/{utils-CQKIgzWg.js → utils-jWx-Mf12.js} +5 -4
  169. package/dist/cjs/utils-jWx-Mf12.js.map +1 -0
  170. package/dist/collection/collection-manifest.json +10 -0
  171. package/dist/collection/components/pds-alert/pds-alert.css +108 -0
  172. package/dist/collection/components/pds-alert/pds-alert.js +198 -0
  173. package/dist/collection/components/pds-alert/pds-alert.js.map +1 -0
  174. package/dist/collection/components/pds-alert/pds-alert.tokens.css +32 -0
  175. package/dist/collection/components/pds-alert/stories/pds-alert.stories.js +97 -0
  176. package/dist/collection/components/pds-avatar/pds-avatar.js +1 -1
  177. package/dist/collection/components/pds-box/pds-box.js +8 -8
  178. package/dist/collection/components/pds-box/pds-box.js.map +1 -1
  179. package/dist/collection/components/pds-button/pds-button.css +17 -5
  180. package/dist/collection/components/pds-checkbox/pds-checkbox.js +3 -3
  181. package/dist/collection/components/pds-chip/pds-chip.css +48 -11
  182. package/dist/collection/components/pds-chip/pds-chip.js +42 -9
  183. package/dist/collection/components/pds-chip/pds-chip.js.map +1 -1
  184. package/dist/collection/components/pds-chip/stories/pds-chip.stories.js +18 -1
  185. package/dist/collection/components/pds-copytext/pds-copytext.js +1 -1
  186. package/dist/collection/components/pds-divider/pds-divider.js +1 -1
  187. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.css +68 -0
  188. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js +219 -0
  189. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js.map +1 -0
  190. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.css +4 -0
  191. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js +72 -0
  192. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js.map +1 -0
  193. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.css +16 -0
  194. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +328 -0
  195. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js.map +1 -0
  196. package/dist/collection/components/pds-dropdown-menu/stories/pds-dropdown-menu.stories.js +44 -0
  197. package/dist/collection/components/pds-image/pds-image.js +2 -2
  198. package/dist/collection/components/pds-input/pds-input.css +167 -43
  199. package/dist/collection/components/pds-input/pds-input.js +212 -21
  200. package/dist/collection/components/pds-input/pds-input.js.map +1 -1
  201. package/dist/collection/components/pds-input/stories/pds-input.stories.js +84 -0
  202. package/dist/collection/components/pds-link/pds-link.css +20 -1
  203. package/dist/collection/components/pds-link/pds-link.js +33 -2
  204. package/dist/collection/components/pds-link/pds-link.js.map +1 -1
  205. package/dist/collection/components/pds-link/stories/pds-link.stories.js +15 -2
  206. package/dist/collection/components/pds-loader/pds-loader.js +1 -1
  207. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.css +27 -0
  208. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js +125 -0
  209. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js.map +1 -0
  210. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.css +8 -0
  211. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js +18 -0
  212. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js.map +1 -0
  213. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.css +8 -0
  214. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js +18 -0
  215. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js.map +1 -0
  216. package/dist/collection/components/pds-modal/pds-modal.css +79 -0
  217. package/dist/collection/components/pds-modal/pds-modal.js +426 -0
  218. package/dist/collection/components/pds-modal/pds-modal.js.map +1 -0
  219. package/dist/collection/components/pds-modal/stories/pds-modal.stories.js +415 -0
  220. package/dist/collection/components/pds-modal/test/mock-pds-modal.js +256 -0
  221. package/dist/collection/components/pds-modal/test/mock-pds-modal.js.map +1 -0
  222. package/dist/collection/components/pds-popover/pds-popover.js +33 -1
  223. package/dist/collection/components/pds-popover/pds-popover.js.map +1 -1
  224. package/dist/collection/components/pds-progress/pds-progress.js +1 -1
  225. package/dist/collection/components/pds-radio/pds-radio.js +3 -3
  226. package/dist/collection/components/pds-row/pds-row.js +1 -1
  227. package/dist/collection/components/pds-select/pds-select.css +34 -4
  228. package/dist/collection/components/pds-select/pds-select.js +20 -2
  229. package/dist/collection/components/pds-select/pds-select.js.map +1 -1
  230. package/dist/collection/components/pds-select/stories/pds-select.stories.js +2 -0
  231. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +1 -1
  232. package/dist/collection/components/pds-sortable/pds-sortable.js +1 -1
  233. package/dist/collection/components/pds-switch/pds-switch.js +3 -3
  234. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js +1 -1
  235. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +2 -2
  236. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +1 -1
  237. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +2 -2
  238. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +1 -1
  239. package/dist/collection/components/pds-table/pds-table.js +1 -1
  240. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js +3 -3
  241. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +1 -1
  242. package/dist/collection/components/pds-tabs/pds-tabs.js +1 -1
  243. package/dist/collection/components/pds-text/pds-text.js +2 -2
  244. package/dist/collection/components/pds-text/pds-text.js.map +1 -1
  245. package/dist/collection/components/pds-textarea/pds-textarea.js +4 -4
  246. package/dist/collection/components/pds-toast/pds-toast.css +153 -0
  247. package/dist/collection/components/pds-toast/pds-toast.js +263 -0
  248. package/dist/collection/components/pds-toast/pds-toast.js.map +1 -0
  249. package/dist/collection/components/pds-toast/stories/pds-toast.stories.js +103 -0
  250. package/dist/collection/components/pds-tooltip/pds-tooltip.css +2 -12
  251. package/dist/collection/components/pds-tooltip/pds-tooltip.js +227 -26
  252. package/dist/collection/components/pds-tooltip/pds-tooltip.js.map +1 -1
  253. package/dist/collection/components/pds-tooltip/stories/pds-tooltip.stories.js +7 -3
  254. package/dist/collection/utils/interfaces.js +2 -0
  255. package/dist/collection/utils/interfaces.js.map +1 -0
  256. package/dist/collection/utils/overlay.js +66 -49
  257. package/dist/collection/utils/overlay.js.map +1 -1
  258. package/dist/collection/utils/utils.js +3 -2
  259. package/dist/collection/utils/utils.js.map +1 -1
  260. package/dist/docs.json +1816 -200
  261. package/dist/esm/{index-_4gljHh-.js → index-DpOSrebJ.js} +3 -3
  262. package/dist/esm/index-DpOSrebJ.js.map +1 -0
  263. package/dist/esm/loader.js +1 -1
  264. package/dist/esm/mock-pds-modal.entry.js +84 -0
  265. package/dist/esm/mock-pds-modal.entry.js.map +1 -0
  266. package/dist/esm/pds-accordion.entry.js +1 -1
  267. package/dist/esm/pds-alert.entry.js +64 -0
  268. package/dist/esm/pds-alert.entry.js.map +1 -0
  269. package/dist/esm/pds-avatar.entry.js +2 -2
  270. package/dist/esm/pds-box.entry.js +2 -2
  271. package/dist/esm/pds-box.entry.js.map +1 -1
  272. package/dist/esm/pds-button.entry.js +3 -3
  273. package/dist/esm/pds-button.entry.js.map +1 -1
  274. package/dist/esm/pds-checkbox.entry.js +4 -4
  275. package/dist/esm/pds-chip.entry.js +21 -7
  276. package/dist/esm/pds-chip.entry.js.map +1 -1
  277. package/dist/esm/pds-copytext.entry.js +2 -2
  278. package/dist/esm/pds-divider.entry.js +1 -1
  279. package/dist/esm/pds-dropdown-menu-item.entry.js +80 -0
  280. package/dist/esm/pds-dropdown-menu-item.entry.js.map +1 -0
  281. package/dist/esm/pds-dropdown-menu-separator.entry.js +23 -0
  282. package/dist/esm/pds-dropdown-menu-separator.entry.js.map +1 -0
  283. package/dist/esm/pds-dropdown-menu.entry.js +1572 -0
  284. package/dist/esm/pds-dropdown-menu.entry.js.map +1 -0
  285. package/dist/esm/pds-image.entry.js +2 -2
  286. package/dist/esm/pds-input.entry.js +88 -21
  287. package/dist/esm/pds-input.entry.js.map +1 -1
  288. package/dist/esm/pds-link.entry.js +16 -4
  289. package/dist/esm/pds-link.entry.js.map +1 -1
  290. package/dist/esm/pds-loader.entry.js +1 -1
  291. package/dist/esm/pds-modal-content.entry.js +91 -0
  292. package/dist/esm/pds-modal-content.entry.js.map +1 -0
  293. package/dist/esm/pds-modal-footer.entry.js +18 -0
  294. package/dist/esm/pds-modal-footer.entry.js.map +1 -0
  295. package/dist/esm/pds-modal-header.entry.js +18 -0
  296. package/dist/esm/pds-modal-header.entry.js.map +1 -0
  297. package/dist/esm/pds-modal.entry.js +251 -0
  298. package/dist/esm/pds-modal.entry.js.map +1 -0
  299. package/dist/esm/pds-popover.entry.js +33 -1
  300. package/dist/esm/pds-popover.entry.js.map +1 -1
  301. package/dist/esm/pds-progress.entry.js +1 -1
  302. package/dist/esm/pds-radio.entry.js +4 -4
  303. package/dist/esm/pds-row.entry.js +1 -1
  304. package/dist/esm/pds-select.entry.js +3 -4
  305. package/dist/esm/pds-select.entry.js.map +1 -1
  306. package/dist/esm/pds-sortable-item.entry.js +2 -2
  307. package/dist/esm/pds-sortable.entry.js +1 -1
  308. package/dist/esm/pds-switch.entry.js +4 -4
  309. package/dist/esm/pds-tab.entry.js +3 -3
  310. package/dist/esm/pds-table-body.entry.js +1 -1
  311. package/dist/esm/pds-table-cell.entry.js +2 -2
  312. package/dist/esm/pds-table-head-cell.entry.js +3 -3
  313. package/dist/esm/pds-table-head.entry.js +1 -1
  314. package/dist/esm/pds-table-row.entry.js +1 -1
  315. package/dist/esm/pds-table.entry.js +1 -1
  316. package/dist/esm/pds-tabpanel.entry.js +1 -1
  317. package/dist/esm/pds-tabs.entry.js +1 -1
  318. package/dist/esm/pds-text.entry.js +2 -2
  319. package/dist/esm/pds-text.entry.js.map +1 -1
  320. package/dist/esm/pds-textarea.entry.js +6 -6
  321. package/dist/esm/pds-toast.entry.js +102 -0
  322. package/dist/esm/pds-toast.entry.js.map +1 -0
  323. package/dist/esm/pds-tooltip.entry.js +297 -79
  324. package/dist/esm/pds-tooltip.entry.js.map +1 -1
  325. package/dist/esm/pine-core.js +1 -1
  326. package/dist/esm/{utils-Dw9B1JDC.js → utils-DkabwBZT.js} +5 -4
  327. package/dist/esm/utils-DkabwBZT.js.map +1 -0
  328. package/dist/esm-es5/{index-_4gljHh-.js → index-DpOSrebJ.js} +1 -1
  329. package/dist/esm-es5/index-DpOSrebJ.js.map +1 -0
  330. package/dist/esm-es5/loader.js +1 -1
  331. package/dist/esm-es5/mock-pds-modal.entry.js +2 -0
  332. package/dist/esm-es5/mock-pds-modal.entry.js.map +1 -0
  333. package/dist/esm-es5/pds-accordion.entry.js +1 -1
  334. package/dist/esm-es5/pds-alert.entry.js +2 -0
  335. package/dist/esm-es5/pds-alert.entry.js.map +1 -0
  336. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  337. package/dist/esm-es5/pds-box.entry.js +1 -1
  338. package/dist/esm-es5/pds-box.entry.js.map +1 -1
  339. package/dist/esm-es5/pds-button.entry.js +1 -1
  340. package/dist/esm-es5/pds-button.entry.js.map +1 -1
  341. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  342. package/dist/esm-es5/pds-chip.entry.js +1 -1
  343. package/dist/esm-es5/pds-chip.entry.js.map +1 -1
  344. package/dist/esm-es5/pds-copytext.entry.js +1 -1
  345. package/dist/esm-es5/pds-divider.entry.js +1 -1
  346. package/dist/esm-es5/pds-dropdown-menu-item.entry.js +2 -0
  347. package/dist/esm-es5/pds-dropdown-menu-item.entry.js.map +1 -0
  348. package/dist/esm-es5/pds-dropdown-menu-separator.entry.js +2 -0
  349. package/dist/esm-es5/pds-dropdown-menu-separator.entry.js.map +1 -0
  350. package/dist/esm-es5/pds-dropdown-menu.entry.js +2 -0
  351. package/dist/esm-es5/pds-dropdown-menu.entry.js.map +1 -0
  352. package/dist/esm-es5/pds-image.entry.js +1 -1
  353. package/dist/esm-es5/pds-input.entry.js +1 -1
  354. package/dist/esm-es5/pds-input.entry.js.map +1 -1
  355. package/dist/esm-es5/pds-link.entry.js +1 -1
  356. package/dist/esm-es5/pds-link.entry.js.map +1 -1
  357. package/dist/esm-es5/pds-loader.entry.js +1 -1
  358. package/dist/esm-es5/pds-modal-content.entry.js +2 -0
  359. package/dist/esm-es5/pds-modal-content.entry.js.map +1 -0
  360. package/dist/esm-es5/pds-modal-footer.entry.js +2 -0
  361. package/dist/esm-es5/pds-modal-footer.entry.js.map +1 -0
  362. package/dist/esm-es5/pds-modal-header.entry.js +2 -0
  363. package/dist/esm-es5/pds-modal-header.entry.js.map +1 -0
  364. package/dist/esm-es5/pds-modal.entry.js +2 -0
  365. package/dist/esm-es5/pds-modal.entry.js.map +1 -0
  366. package/dist/esm-es5/pds-popover.entry.js +1 -1
  367. package/dist/esm-es5/pds-popover.entry.js.map +1 -1
  368. package/dist/esm-es5/pds-progress.entry.js +1 -1
  369. package/dist/esm-es5/pds-radio.entry.js +1 -1
  370. package/dist/esm-es5/pds-row.entry.js +1 -1
  371. package/dist/esm-es5/pds-select.entry.js +1 -1
  372. package/dist/esm-es5/pds-select.entry.js.map +1 -1
  373. package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
  374. package/dist/esm-es5/pds-sortable.entry.js +1 -1
  375. package/dist/esm-es5/pds-switch.entry.js +1 -1
  376. package/dist/esm-es5/pds-tab.entry.js +1 -1
  377. package/dist/esm-es5/pds-table-body.entry.js +1 -1
  378. package/dist/esm-es5/pds-table-cell.entry.js +1 -1
  379. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  380. package/dist/esm-es5/pds-table-head.entry.js +1 -1
  381. package/dist/esm-es5/pds-table-row.entry.js +1 -1
  382. package/dist/esm-es5/pds-table.entry.js +1 -1
  383. package/dist/esm-es5/pds-tabpanel.entry.js +1 -1
  384. package/dist/esm-es5/pds-tabs.entry.js +1 -1
  385. package/dist/esm-es5/pds-text.entry.js +1 -1
  386. package/dist/esm-es5/pds-text.entry.js.map +1 -1
  387. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  388. package/dist/esm-es5/pds-toast.entry.js +2 -0
  389. package/dist/esm-es5/pds-toast.entry.js.map +1 -0
  390. package/dist/esm-es5/pds-tooltip.entry.js +1 -1
  391. package/dist/esm-es5/pds-tooltip.entry.js.map +1 -1
  392. package/dist/esm-es5/pine-core.js +1 -1
  393. package/dist/esm-es5/utils-DkabwBZT.js +2 -0
  394. package/dist/esm-es5/utils-DkabwBZT.js.map +1 -0
  395. package/dist/pine-core/mock-pds-modal.entry.esm.js.map +1 -0
  396. package/dist/pine-core/{p-BjCOR1Nn.system.js.map → p--YvWqEjm.system.js.map} +1 -1
  397. package/dist/pine-core/p-00599bd8.entry.js +2 -0
  398. package/dist/pine-core/p-00599bd8.entry.js.map +1 -0
  399. package/dist/pine-core/{p-a14c8ab4.system.entry.js → p-03d8cb4c.system.entry.js} +2 -2
  400. package/dist/pine-core/{p-f94703c9.entry.js → p-04195bdb.entry.js} +2 -2
  401. package/dist/pine-core/p-065208a1.system.entry.js +2 -0
  402. package/dist/pine-core/p-065208a1.system.entry.js.map +1 -0
  403. package/dist/pine-core/p-07f45626.entry.js +2 -0
  404. package/dist/pine-core/p-07f45626.entry.js.map +1 -0
  405. package/dist/pine-core/{p-0486ad57.entry.js → p-0a11384e.entry.js} +2 -2
  406. package/dist/pine-core/p-0a87e2fc.system.entry.js +2 -0
  407. package/dist/pine-core/p-0a87e2fc.system.entry.js.map +1 -0
  408. package/dist/pine-core/p-0c30661b.system.entry.js +2 -0
  409. package/dist/pine-core/p-0c30661b.system.entry.js.map +1 -0
  410. package/dist/pine-core/{p-82e05dcf.entry.js → p-10e2feff.entry.js} +2 -2
  411. package/dist/pine-core/{p-d2110923.system.entry.js → p-111e7da2.system.entry.js} +2 -2
  412. package/dist/pine-core/{p-1178485a.system.entry.js → p-13481ef5.system.entry.js} +2 -2
  413. package/dist/pine-core/{p-1178485a.system.entry.js.map → p-13481ef5.system.entry.js.map} +1 -1
  414. package/dist/pine-core/{p-68de979e.entry.js → p-19c01019.entry.js} +2 -2
  415. package/dist/pine-core/p-1d395d27.entry.js +2 -0
  416. package/dist/pine-core/p-1d395d27.entry.js.map +1 -0
  417. package/dist/pine-core/{p-4ff0838c.entry.js → p-2007a0b5.entry.js} +2 -2
  418. package/dist/pine-core/{p-fed4c0c0.system.entry.js → p-27c0ffda.system.entry.js} +2 -2
  419. package/dist/pine-core/p-35917a1a.entry.js +2 -0
  420. package/dist/pine-core/p-39a31730.system.entry.js +2 -0
  421. package/dist/pine-core/p-39a31730.system.entry.js.map +1 -0
  422. package/dist/pine-core/p-3D0orTx_.system.js.map +1 -0
  423. package/dist/pine-core/p-3ea415b0.entry.js +2 -0
  424. package/dist/pine-core/p-3ea415b0.entry.js.map +1 -0
  425. package/dist/pine-core/p-44f10d3c.entry.js +2 -0
  426. package/dist/pine-core/p-44f10d3c.entry.js.map +1 -0
  427. package/dist/pine-core/p-47a7a65b.entry.js +2 -0
  428. package/dist/pine-core/p-47a7a65b.entry.js.map +1 -0
  429. package/dist/pine-core/{p-ca09f86a.system.entry.js → p-4b2aab79.system.entry.js} +2 -2
  430. package/dist/pine-core/p-513c16c7.entry.js +2 -0
  431. package/dist/pine-core/p-513c16c7.entry.js.map +1 -0
  432. package/dist/pine-core/{p-950427b2.entry.js → p-51cc93b3.entry.js} +2 -2
  433. package/dist/pine-core/p-5367f477.system.entry.js +2 -0
  434. package/dist/pine-core/{p-ceb48b05.system.entry.js → p-593df966.system.entry.js} +2 -2
  435. package/dist/pine-core/p-5a437fcd.system.entry.js +2 -0
  436. package/dist/pine-core/p-5a437fcd.system.entry.js.map +1 -0
  437. package/dist/pine-core/p-5c4aceb7.entry.js +2 -0
  438. package/dist/pine-core/p-5c4aceb7.entry.js.map +1 -0
  439. package/dist/pine-core/{p-598ade79.entry.js → p-5e1e7762.entry.js} +2 -2
  440. package/dist/pine-core/{p-9cdd57de.entry.js → p-60fbeb1c.entry.js} +2 -2
  441. package/dist/pine-core/p-624db3d6.system.entry.js +2 -0
  442. package/dist/pine-core/p-624db3d6.system.entry.js.map +1 -0
  443. package/dist/pine-core/p-65a875f6.entry.js +2 -0
  444. package/dist/pine-core/p-65a875f6.entry.js.map +1 -0
  445. package/dist/pine-core/{p-c0f0b368.system.entry.js → p-6a7936e7.system.entry.js} +2 -2
  446. package/dist/pine-core/{p-a97952fc.system.entry.js → p-73412ca9.system.entry.js} +2 -2
  447. package/dist/pine-core/{p-a97952fc.system.entry.js.map → p-73412ca9.system.entry.js.map} +1 -1
  448. package/dist/pine-core/{p-b390c427.entry.js → p-76e35041.entry.js} +2 -2
  449. package/dist/pine-core/{p-12bee2e5.entry.js → p-76f7cf21.entry.js} +2 -2
  450. package/dist/pine-core/{p-103b62a1.system.entry.js → p-78327c08.system.entry.js} +2 -2
  451. package/dist/pine-core/{p-792355e6.entry.js → p-78f29270.entry.js} +2 -2
  452. package/dist/pine-core/p-79cb7835.system.entry.js +2 -0
  453. package/dist/pine-core/p-79cb7835.system.entry.js.map +1 -0
  454. package/dist/pine-core/{p-fd9aa739.system.entry.js → p-7bb3a5d4.system.entry.js} +2 -2
  455. package/dist/pine-core/{p-e88d58f4.entry.js → p-80f36506.entry.js} +2 -2
  456. package/dist/pine-core/{p-eda0dc79.entry.js → p-8180b641.entry.js} +2 -2
  457. package/dist/pine-core/{p-85073252.system.entry.js → p-833b2170.system.entry.js} +2 -2
  458. package/dist/pine-core/p-86329612.entry.js +2 -0
  459. package/dist/pine-core/p-86329612.entry.js.map +1 -0
  460. package/dist/pine-core/p-8b6b0db7.entry.js +2 -0
  461. package/dist/pine-core/p-8b6b0db7.entry.js.map +1 -0
  462. package/dist/pine-core/p-8f06b020.entry.js +2 -0
  463. package/dist/pine-core/p-8f06b020.entry.js.map +1 -0
  464. package/dist/pine-core/p-942fa145.system.entry.js +2 -0
  465. package/dist/pine-core/p-942fa145.system.entry.js.map +1 -0
  466. package/dist/pine-core/{p-1d92261f.system.entry.js → p-959c8247.system.entry.js} +2 -2
  467. package/dist/pine-core/{p-5763df39.system.entry.js → p-96e9774e.system.entry.js} +2 -2
  468. package/dist/pine-core/{p-e281ac09.entry.js → p-99b5e1a5.entry.js} +2 -2
  469. package/dist/pine-core/p-9c01e81b.system.entry.js +2 -0
  470. package/dist/pine-core/p-9c01e81b.system.entry.js.map +1 -0
  471. package/dist/pine-core/p-9db1f179.entry.js +2 -0
  472. package/dist/pine-core/p-9db1f179.entry.js.map +1 -0
  473. package/dist/pine-core/p-A4_UN20E.system.js.map +1 -0
  474. package/dist/pine-core/p-B2gfQpwn.system.js.map +1 -0
  475. package/dist/pine-core/{p-CDhmuxC9.system.js.map → p-B5JFBYFw.system.js.map} +1 -1
  476. package/dist/pine-core/p-B5LBNcOw.system.js.map +1 -0
  477. package/dist/pine-core/{p-BJyPFOn0.system.js.map → p-BE1qV1Jc.system.js.map} +1 -1
  478. package/dist/pine-core/p-BEYGfY83.system.js.map +1 -0
  479. package/dist/pine-core/{p-B46WXJMn.system.js.map → p-BHZ6CSg4.system.js.map} +1 -1
  480. package/dist/pine-core/p-BHp2IZGP.system.js.map +1 -0
  481. package/dist/pine-core/{p-BSINexOf.system.js.map → p-BISuGf0f.system.js.map} +1 -1
  482. package/dist/pine-core/p-BPQAcMLl.system.js.map +1 -0
  483. package/dist/pine-core/{p-9niWVsdd.system.js.map → p-BaAcO8Mz.system.js.map} +1 -1
  484. package/dist/pine-core/p-BcuE4ZrB.system.js.map +1 -0
  485. package/dist/pine-core/{p-C94EgDFz.system.js → p-BhPuKJbQ.system.js} +2 -2
  486. package/dist/pine-core/p-BhPuKJbQ.system.js.map +1 -0
  487. package/dist/pine-core/p-BsL2GDnH.system.js +1 -1
  488. package/dist/pine-core/{p-DEsea81X.system.js.map → p-BwHnCFqU.system.js.map} +1 -1
  489. package/dist/pine-core/{p-DVVPJPOu.system.js.map → p-BxBtA60x.system.js.map} +1 -1
  490. package/dist/pine-core/{p-kMnJefdU.system.js.map → p-C0oRS1F9.system.js.map} +1 -1
  491. package/dist/pine-core/{p-eKz-xVcI.system.js.map → p-C2d75seA.system.js.map} +1 -1
  492. package/dist/pine-core/{p-BgcVBzVE.system.js.map → p-CGABEyvz.system.js.map} +1 -1
  493. package/dist/pine-core/{p-DkJgkLjR.system.js.map → p-CIc_XeAg.system.js.map} +1 -1
  494. package/dist/pine-core/p-CNYB6FL-.system.js.map +1 -0
  495. package/dist/pine-core/{p-BW-n3jjz.system.js.map → p-CNkajx9x.system.js.map} +1 -1
  496. package/dist/pine-core/{p-Dz6toWDZ.system.js.map → p-CS2nVL5p.system.js.map} +1 -1
  497. package/dist/pine-core/{p-BFPxUBwH.system.js.map → p-CTPMEWZT.system.js.map} +1 -1
  498. package/dist/pine-core/{p-Cg0JSYH5.system.js.map → p-CTWkFhWu.system.js.map} +1 -1
  499. package/dist/pine-core/{p-BoNavS-S.system.js.map → p-CcsZC7UR.system.js.map} +1 -1
  500. package/dist/pine-core/{p-D8WAvG2e.system.js.map → p-CdzfTGbZ.system.js.map} +1 -1
  501. package/dist/pine-core/p-CkoeYrxa.system.js.map +1 -0
  502. package/dist/pine-core/p-ClVQjta4.system.js.map +1 -0
  503. package/dist/pine-core/{p-C0cdB2AV.system.js.map → p-D2UtaGL2.system.js.map} +1 -1
  504. package/dist/pine-core/{p-YuC61pNM.system.js.map → p-DGyATOIf.system.js.map} +1 -1
  505. package/dist/pine-core/p-DMeT5CsE.system.js.map +1 -0
  506. package/dist/pine-core/p-DVhX1_nD.system.js.map +1 -0
  507. package/dist/pine-core/p-DeW-6a7f.system.js.map +1 -0
  508. package/dist/pine-core/{p-Cj21y714.system.js.map → p-DgTp_KeO.system.js.map} +1 -1
  509. package/dist/pine-core/p-DjXmy34u.system.js.map +1 -0
  510. package/dist/pine-core/p-DkabwBZT.js +2 -0
  511. package/dist/pine-core/p-DkabwBZT.js.map +1 -0
  512. package/dist/pine-core/{p-_4gljHh-.js → p-DpOSrebJ.js} +1 -1
  513. package/dist/pine-core/p-DpOSrebJ.js.map +1 -0
  514. package/dist/pine-core/{p-B4W0_y2p.system.js → p-DyDReOdO.system.js} +1 -1
  515. package/dist/pine-core/p-DyDReOdO.system.js.map +1 -0
  516. package/dist/pine-core/{p-IK9NvSRG.system.js.map → p-EqAbQY8l.system.js.map} +1 -1
  517. package/dist/pine-core/p-Ke8SGZqs.system.js.map +1 -0
  518. package/dist/pine-core/{p-CmTz2SvK.system.js.map → p-Mqxw-gWj.system.js.map} +1 -1
  519. package/dist/pine-core/{p-BVNW4NmT.system.js.map → p-PPIMiuZX.system.js.map} +1 -1
  520. package/dist/pine-core/p-PkSWq78_.system.js.map +1 -0
  521. package/dist/pine-core/{p-w3zTyPF1.system.js.map → p-UhZHDNH2.system.js.map} +1 -1
  522. package/dist/pine-core/p-a52b1413.entry.js +2 -0
  523. package/dist/pine-core/p-a52b1413.entry.js.map +1 -0
  524. package/dist/pine-core/{p-7b6b354a.system.entry.js → p-a556a328.system.entry.js} +2 -2
  525. package/dist/pine-core/{p-c7d4f436.system.entry.js → p-a98cda38.system.entry.js} +2 -2
  526. package/dist/pine-core/{p-c838b6ef.system.entry.js → p-ab7e4700.system.entry.js} +2 -2
  527. package/dist/pine-core/{p-6147b1ea.system.entry.js → p-aeaae417.system.entry.js} +2 -2
  528. package/dist/pine-core/{p-b902f535.entry.js → p-b2820acd.entry.js} +2 -2
  529. package/dist/pine-core/{p-f439922f.entry.js → p-bf699bad.entry.js} +2 -2
  530. package/dist/pine-core/{p-f439922f.entry.js.map → p-bf699bad.entry.js.map} +1 -1
  531. package/dist/pine-core/p-c1909a5d.system.entry.js +2 -0
  532. package/dist/pine-core/{p-9d0c1b2e.system.entry.js.map → p-c1909a5d.system.entry.js.map} +1 -1
  533. package/dist/pine-core/{p-e045e337.system.entry.js → p-c551191a.system.entry.js} +2 -2
  534. package/dist/pine-core/p-c5e1ed09.system.entry.js +2 -0
  535. package/dist/pine-core/p-c5e1ed09.system.entry.js.map +1 -0
  536. package/dist/pine-core/{p-596e0292.system.entry.js → p-cc21ddcc.system.entry.js} +2 -2
  537. package/dist/pine-core/p-d0adaca0.system.entry.js +2 -0
  538. package/dist/pine-core/p-d0adaca0.system.entry.js.map +1 -0
  539. package/dist/pine-core/{p-6ad460a7.entry.js → p-d28768d1.entry.js} +2 -2
  540. package/dist/pine-core/{p-5c396e75.entry.js → p-d35b3494.entry.js} +2 -2
  541. package/dist/pine-core/{p-98181fa8.system.entry.js → p-d553e05c.system.entry.js} +2 -2
  542. package/dist/pine-core/{p-a952d40c.system.entry.js → p-d6d453d8.system.entry.js} +2 -2
  543. package/dist/pine-core/p-dcda4ff5.system.entry.js +2 -0
  544. package/dist/pine-core/p-dcda4ff5.system.entry.js.map +1 -0
  545. package/dist/pine-core/p-ddcc4932.entry.js +2 -0
  546. package/dist/pine-core/{p-ed8c3064.system.entry.js → p-de550d9e.system.entry.js} +2 -2
  547. package/dist/pine-core/p-dfd5a5b6.system.entry.js +2 -0
  548. package/dist/pine-core/p-dfd5a5b6.system.entry.js.map +1 -0
  549. package/dist/pine-core/p-e562ad73.system.entry.js +2 -0
  550. package/dist/pine-core/p-e562ad73.system.entry.js.map +1 -0
  551. package/dist/pine-core/p-e9f004c5.entry.js +2 -0
  552. package/dist/pine-core/p-e9f004c5.entry.js.map +1 -0
  553. package/dist/pine-core/p-ef9ed75a.system.entry.js +2 -0
  554. package/dist/pine-core/p-ef9ed75a.system.entry.js.map +1 -0
  555. package/dist/pine-core/{p-4b59cae8.entry.js → p-f256dd8a.entry.js} +2 -2
  556. package/dist/pine-core/{p-4b59cae8.entry.js.map → p-f256dd8a.entry.js.map} +1 -1
  557. package/dist/pine-core/{p-b68cb43d.system.entry.js → p-f46c4618.system.entry.js} +2 -2
  558. package/dist/pine-core/p-f4fff209.system.entry.js +2 -0
  559. package/dist/pine-core/p-f4fff209.system.entry.js.map +1 -0
  560. package/dist/pine-core/{p-3ce8eb9f.entry.js → p-f6b226df.entry.js} +2 -2
  561. package/dist/pine-core/{p-6a716bff.entry.js → p-f99c59a8.entry.js} +2 -2
  562. package/dist/pine-core/{p-1b81a8ec.entry.js → p-fb1eb0c4.entry.js} +2 -2
  563. package/dist/pine-core/{p-8305cd4d.entry.js → p-fb2fb435.entry.js} +2 -2
  564. package/dist/pine-core/p-fd1ef1e1.entry.js +2 -0
  565. package/dist/pine-core/p-fd1ef1e1.entry.js.map +1 -0
  566. package/dist/pine-core/p-fdf3a5ff.entry.js +2 -0
  567. package/dist/pine-core/{p-d5838288.entry.js.map → p-fdf3a5ff.entry.js.map} +1 -1
  568. package/dist/pine-core/p-fed5f55e.system.entry.js +2 -0
  569. package/dist/pine-core/pds-alert.entry.esm.js.map +1 -0
  570. package/dist/pine-core/pds-box.entry.esm.js.map +1 -1
  571. package/dist/pine-core/pds-button.entry.esm.js.map +1 -1
  572. package/dist/pine-core/pds-chip.entry.esm.js.map +1 -1
  573. package/dist/pine-core/pds-dropdown-menu-item.entry.esm.js.map +1 -0
  574. package/dist/pine-core/pds-dropdown-menu-separator.entry.esm.js.map +1 -0
  575. package/dist/pine-core/pds-dropdown-menu.entry.esm.js.map +1 -0
  576. package/dist/pine-core/pds-input.entry.esm.js.map +1 -1
  577. package/dist/pine-core/pds-link.entry.esm.js.map +1 -1
  578. package/dist/pine-core/pds-modal-content.entry.esm.js.map +1 -0
  579. package/dist/pine-core/pds-modal-footer.entry.esm.js.map +1 -0
  580. package/dist/pine-core/pds-modal-header.entry.esm.js.map +1 -0
  581. package/dist/pine-core/pds-modal.entry.esm.js.map +1 -0
  582. package/dist/pine-core/pds-popover.entry.esm.js.map +1 -1
  583. package/dist/pine-core/pds-select.entry.esm.js.map +1 -1
  584. package/dist/pine-core/pds-text.entry.esm.js.map +1 -1
  585. package/dist/pine-core/pds-toast.entry.esm.js.map +1 -0
  586. package/dist/pine-core/pds-tooltip.entry.esm.js.map +1 -1
  587. package/dist/pine-core/pine-core.esm.js +1 -1
  588. package/dist/types/components/pds-alert/pds-alert.d.ts +39 -0
  589. package/dist/types/components/pds-box/pds-box.d.ts +6 -6
  590. package/dist/types/components/pds-chip/pds-chip.d.ts +9 -1
  591. package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.d.ts +43 -0
  592. package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.d.ts +13 -0
  593. package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu.d.ts +33 -0
  594. package/dist/types/components/pds-input/pds-input.d.ts +57 -9
  595. package/dist/types/components/pds-link/pds-link.d.ts +5 -0
  596. package/dist/types/components/pds-modal/pds-modal-content/pds-modal-content.d.ts +25 -0
  597. package/dist/types/components/pds-modal/pds-modal-footer/pds-modal-footer.d.ts +3 -0
  598. package/dist/types/components/pds-modal/pds-modal-header/pds-modal-header.d.ts +3 -0
  599. package/dist/types/components/pds-modal/pds-modal.d.ts +72 -0
  600. package/dist/types/components/pds-modal/test/mock-pds-modal.d.ts +63 -0
  601. package/dist/types/components/pds-select/pds-select.d.ts +4 -0
  602. package/dist/types/components/pds-toast/pds-toast.d.ts +57 -0
  603. package/dist/types/components/pds-tooltip/pds-tooltip.d.ts +31 -3
  604. package/dist/types/components.d.ts +609 -20
  605. package/dist/types/utils/interfaces.d.ts +6 -0
  606. package/dist/types/utils/overlay.d.ts +3 -3
  607. package/dist/types/utils/utils.d.ts +1 -1
  608. package/hydrate/index.js +3030 -280
  609. package/hydrate/index.mjs +3030 -280
  610. package/package.json +6 -2
  611. package/dist/cjs/index-CG2Rr2io.js.map +0 -1
  612. package/dist/cjs/utils-CQKIgzWg.js.map +0 -1
  613. package/dist/esm/index-_4gljHh-.js.map +0 -1
  614. package/dist/esm/utils-Dw9B1JDC.js.map +0 -1
  615. package/dist/esm-es5/index-_4gljHh-.js.map +0 -1
  616. package/dist/esm-es5/utils-Dw9B1JDC.js +0 -2
  617. package/dist/esm-es5/utils-Dw9B1JDC.js.map +0 -1
  618. package/dist/pine-core/p-13b9ed06.system.entry.js +0 -2
  619. package/dist/pine-core/p-1d690915.entry.js +0 -2
  620. package/dist/pine-core/p-294f9b1f.entry.js +0 -2
  621. package/dist/pine-core/p-38246e2f.entry.js +0 -2
  622. package/dist/pine-core/p-38246e2f.entry.js.map +0 -1
  623. package/dist/pine-core/p-38d2498e.system.entry.js +0 -2
  624. package/dist/pine-core/p-38d2498e.system.entry.js.map +0 -1
  625. package/dist/pine-core/p-433c6687.system.entry.js +0 -2
  626. package/dist/pine-core/p-433c6687.system.entry.js.map +0 -1
  627. package/dist/pine-core/p-4ccd2d5e.entry.js +0 -2
  628. package/dist/pine-core/p-4ccd2d5e.entry.js.map +0 -1
  629. package/dist/pine-core/p-4e7ca704.entry.js +0 -2
  630. package/dist/pine-core/p-4e7ca704.entry.js.map +0 -1
  631. package/dist/pine-core/p-6260135d.system.entry.js +0 -2
  632. package/dist/pine-core/p-6260135d.system.entry.js.map +0 -1
  633. package/dist/pine-core/p-82151ac5.entry.js +0 -2
  634. package/dist/pine-core/p-82151ac5.entry.js.map +0 -1
  635. package/dist/pine-core/p-8337c77c.entry.js +0 -2
  636. package/dist/pine-core/p-8337c77c.entry.js.map +0 -1
  637. package/dist/pine-core/p-953f619f.system.entry.js +0 -2
  638. package/dist/pine-core/p-9d0c1b2e.system.entry.js +0 -2
  639. package/dist/pine-core/p-B4W0_y2p.system.js.map +0 -1
  640. package/dist/pine-core/p-Bu94kuQa.system.js.map +0 -1
  641. package/dist/pine-core/p-C94EgDFz.system.js.map +0 -1
  642. package/dist/pine-core/p-CdkqpuKd.system.js.map +0 -1
  643. package/dist/pine-core/p-CnoLHUtr.system.js.map +0 -1
  644. package/dist/pine-core/p-Cz3zRtiB.system.js.map +0 -1
  645. package/dist/pine-core/p-DFmUOrRG.system.js.map +0 -1
  646. package/dist/pine-core/p-DhwO1z4v.system.js.map +0 -1
  647. package/dist/pine-core/p-Dv_jWtcr.system.js.map +0 -1
  648. package/dist/pine-core/p-Dw9B1JDC.js +0 -2
  649. package/dist/pine-core/p-Dw9B1JDC.js.map +0 -1
  650. package/dist/pine-core/p-_4gljHh-.js.map +0 -1
  651. package/dist/pine-core/p-d3ab594c.system.entry.js +0 -2
  652. package/dist/pine-core/p-d3ab594c.system.entry.js.map +0 -1
  653. package/dist/pine-core/p-d5838288.entry.js +0 -2
  654. package/dist/pine-core/p-d78bec50.system.entry.js +0 -2
  655. package/dist/pine-core/p-d78bec50.system.entry.js.map +0 -1
  656. package/dist/pine-core/p-d8e02aa9.system.entry.js +0 -2
  657. package/dist/pine-core/p-d8e02aa9.system.entry.js.map +0 -1
  658. package/dist/pine-core/p-f4898d4f.entry.js +0 -2
  659. package/dist/pine-core/p-f4898d4f.entry.js.map +0 -1
  660. /package/dist/pine-core/{p-a14c8ab4.system.entry.js.map → p-03d8cb4c.system.entry.js.map} +0 -0
  661. /package/dist/pine-core/{p-f94703c9.entry.js.map → p-04195bdb.entry.js.map} +0 -0
  662. /package/dist/pine-core/{p-0486ad57.entry.js.map → p-0a11384e.entry.js.map} +0 -0
  663. /package/dist/pine-core/{p-82e05dcf.entry.js.map → p-10e2feff.entry.js.map} +0 -0
  664. /package/dist/pine-core/{p-d2110923.system.entry.js.map → p-111e7da2.system.entry.js.map} +0 -0
  665. /package/dist/pine-core/{p-68de979e.entry.js.map → p-19c01019.entry.js.map} +0 -0
  666. /package/dist/pine-core/{p-4ff0838c.entry.js.map → p-2007a0b5.entry.js.map} +0 -0
  667. /package/dist/pine-core/{p-fed4c0c0.system.entry.js.map → p-27c0ffda.system.entry.js.map} +0 -0
  668. /package/dist/pine-core/{p-294f9b1f.entry.js.map → p-35917a1a.entry.js.map} +0 -0
  669. /package/dist/pine-core/{p-ca09f86a.system.entry.js.map → p-4b2aab79.system.entry.js.map} +0 -0
  670. /package/dist/pine-core/{p-950427b2.entry.js.map → p-51cc93b3.entry.js.map} +0 -0
  671. /package/dist/pine-core/{p-953f619f.system.entry.js.map → p-5367f477.system.entry.js.map} +0 -0
  672. /package/dist/pine-core/{p-ceb48b05.system.entry.js.map → p-593df966.system.entry.js.map} +0 -0
  673. /package/dist/pine-core/{p-598ade79.entry.js.map → p-5e1e7762.entry.js.map} +0 -0
  674. /package/dist/pine-core/{p-9cdd57de.entry.js.map → p-60fbeb1c.entry.js.map} +0 -0
  675. /package/dist/pine-core/{p-c0f0b368.system.entry.js.map → p-6a7936e7.system.entry.js.map} +0 -0
  676. /package/dist/pine-core/{p-b390c427.entry.js.map → p-76e35041.entry.js.map} +0 -0
  677. /package/dist/pine-core/{p-12bee2e5.entry.js.map → p-76f7cf21.entry.js.map} +0 -0
  678. /package/dist/pine-core/{p-103b62a1.system.entry.js.map → p-78327c08.system.entry.js.map} +0 -0
  679. /package/dist/pine-core/{p-792355e6.entry.js.map → p-78f29270.entry.js.map} +0 -0
  680. /package/dist/pine-core/{p-fd9aa739.system.entry.js.map → p-7bb3a5d4.system.entry.js.map} +0 -0
  681. /package/dist/pine-core/{p-e88d58f4.entry.js.map → p-80f36506.entry.js.map} +0 -0
  682. /package/dist/pine-core/{p-eda0dc79.entry.js.map → p-8180b641.entry.js.map} +0 -0
  683. /package/dist/pine-core/{p-85073252.system.entry.js.map → p-833b2170.system.entry.js.map} +0 -0
  684. /package/dist/pine-core/{p-1d92261f.system.entry.js.map → p-959c8247.system.entry.js.map} +0 -0
  685. /package/dist/pine-core/{p-5763df39.system.entry.js.map → p-96e9774e.system.entry.js.map} +0 -0
  686. /package/dist/pine-core/{p-e281ac09.entry.js.map → p-99b5e1a5.entry.js.map} +0 -0
  687. /package/dist/pine-core/{p-7b6b354a.system.entry.js.map → p-a556a328.system.entry.js.map} +0 -0
  688. /package/dist/pine-core/{p-c7d4f436.system.entry.js.map → p-a98cda38.system.entry.js.map} +0 -0
  689. /package/dist/pine-core/{p-c838b6ef.system.entry.js.map → p-ab7e4700.system.entry.js.map} +0 -0
  690. /package/dist/pine-core/{p-6147b1ea.system.entry.js.map → p-aeaae417.system.entry.js.map} +0 -0
  691. /package/dist/pine-core/{p-b902f535.entry.js.map → p-b2820acd.entry.js.map} +0 -0
  692. /package/dist/pine-core/{p-e045e337.system.entry.js.map → p-c551191a.system.entry.js.map} +0 -0
  693. /package/dist/pine-core/{p-596e0292.system.entry.js.map → p-cc21ddcc.system.entry.js.map} +0 -0
  694. /package/dist/pine-core/{p-6ad460a7.entry.js.map → p-d28768d1.entry.js.map} +0 -0
  695. /package/dist/pine-core/{p-5c396e75.entry.js.map → p-d35b3494.entry.js.map} +0 -0
  696. /package/dist/pine-core/{p-98181fa8.system.entry.js.map → p-d553e05c.system.entry.js.map} +0 -0
  697. /package/dist/pine-core/{p-a952d40c.system.entry.js.map → p-d6d453d8.system.entry.js.map} +0 -0
  698. /package/dist/pine-core/{p-1d690915.entry.js.map → p-ddcc4932.entry.js.map} +0 -0
  699. /package/dist/pine-core/{p-ed8c3064.system.entry.js.map → p-de550d9e.system.entry.js.map} +0 -0
  700. /package/dist/pine-core/{p-b68cb43d.system.entry.js.map → p-f46c4618.system.entry.js.map} +0 -0
  701. /package/dist/pine-core/{p-3ce8eb9f.entry.js.map → p-f6b226df.entry.js.map} +0 -0
  702. /package/dist/pine-core/{p-6a716bff.entry.js.map → p-f99c59a8.entry.js.map} +0 -0
  703. /package/dist/pine-core/{p-1b81a8ec.entry.js.map → p-fb1eb0c4.entry.js.map} +0 -0
  704. /package/dist/pine-core/{p-8305cd4d.entry.js.map → p-fb2fb435.entry.js.map} +0 -0
  705. /package/dist/pine-core/{p-13b9ed06.system.entry.js.map → p-fed5f55e.system.entry.js.map} +0 -0
package/hydrate/index.js CHANGED
@@ -3073,7 +3073,104 @@ var registerHost = (elm, cmpMeta) => {
3073
3073
  };
3074
3074
  var styles = /* @__PURE__ */ new Map();
3075
3075
 
3076
- /* pds-icons v9.4.3, ES Modules */
3076
+ const pdsModalCss$1 = ".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 0.2s ease, visibility 0.2s ease;transition:opacity 0.2s ease, visibility 0.2s ease;visibility:hidden;width:100%;z-index:1000}@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:1001}.pds-modal__backdrop::-webkit-backdrop{background:transparent}.pds-modal__backdrop::-ms-backdrop{background:transparent}.pds-modal__backdrop::backdrop{background:transparent}.pds-modal__backdrop.open{opacity:1;visibility:visible}.pds-modal{background:var(--pine-color-background-container);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:calc(100vh - (6vh + 96px));width:100%}@media (min-width: 992px){.pds-modal{-webkit-margin-before:6vh;margin-block-start:6vh}}@media (min-width: 1200px){.pds-modal{-webkit-margin-before:8vh;margin-block-start:8vh}}.pds-modal--sm{max-width:520px}.pds-modal--md{max-width:700px}.pds-modal--lg{max-width:900px}.pds-modal--fullscreen{border-radius:0;height:100%;margin:0;max-height:100vh;max-width:100%}.pds-modal--fullscreen .pds-modal-content{-ms-flex:1;flex:1}";
3077
+
3078
+ /**
3079
+ * Mock PdsModal component for testing purposes
3080
+ * This component mimics the real PdsModal but without using the Popover API
3081
+ */
3082
+ class MockPdsModal {
3083
+ constructor(hostRef) {
3084
+ registerInstance(this, hostRef);
3085
+ this.pdsModalOpen = createEvent(this, "pdsModalOpen");
3086
+ this.pdsModalClose = createEvent(this, "pdsModalClose");
3087
+ this.pdsModalBackdropClick = createEvent(this, "pdsModalBackdropClick");
3088
+ /**
3089
+ * The size of the modal
3090
+ */
3091
+ this.size = 'md';
3092
+ // Modal content is always scrollable by default
3093
+ /**
3094
+ * Whether the modal can be dismissed by clicking the backdrop
3095
+ */
3096
+ this.backdropDismiss = true;
3097
+ // Native dialog element always closes on Escape key press, so no closeOnEsc property is needed
3098
+ /**
3099
+ * Whether the modal is open
3100
+ */
3101
+ this.open = false;
3102
+ }
3103
+ /**
3104
+ * Shows the modal
3105
+ */
3106
+ async showModal() {
3107
+ this.open = true;
3108
+ this.pdsModalOpen.emit();
3109
+ }
3110
+ /**
3111
+ * Hides the modal
3112
+ */
3113
+ async hideModal() {
3114
+ this.open = false;
3115
+ this.pdsModalClose.emit();
3116
+ }
3117
+ /**
3118
+ * Listen for click events on the backdrop
3119
+ */
3120
+ // Using direct method instead of @Listen to avoid ESLint warning
3121
+ handleBackdropClick(event) {
3122
+ const backdrop = this.el.querySelector('.pds-modal__backdrop');
3123
+ // Check if the click was directly on the backdrop (not on a child element)
3124
+ if (event.target === backdrop && this.backdropDismiss === true) {
3125
+ this.pdsModalBackdropClick.emit();
3126
+ this.hideModal();
3127
+ }
3128
+ }
3129
+ /**
3130
+ * Listen for keydown events to handle Escape key
3131
+ * Native dialog element always closes on Escape key press
3132
+ */
3133
+ // Using direct method instead of @Listen to avoid ESLint warning
3134
+ handleKeyDown(event) {
3135
+ if (event.key === 'Escape' && this.open === true) {
3136
+ this.hideModal();
3137
+ }
3138
+ }
3139
+ componentDidLoad() {
3140
+ // No need to do anything in componentDidLoad for the mock
3141
+ }
3142
+ render() {
3143
+ const modalClasses = {
3144
+ 'pds-modal': true,
3145
+ [`pds-modal--${this.size}`]: true,
3146
+ 'pds-modal--scrollable': true, // Always scrollable by default
3147
+ };
3148
+ const backdropClasses = {
3149
+ 'pds-modal__backdrop': true,
3150
+ 'open': this.open,
3151
+ };
3152
+ return (hAsync("div", { key: 'e61d355aaf75d5adc97a3e930f898e075f54d931', class: backdropClasses }, hAsync("div", { key: '059c930eb27b9420ca294b2a7c07e53b15ce1c91', class: modalClasses, role: "dialog", "aria-modal": "true", "aria-labelledby": this.componentId ? `${this.componentId}-heading` : null }, hAsync("div", { key: '9b2423c26eb6f015ee68f73805bd50965a32b5b0', class: "pds-modal__header" }, hAsync("slot", { key: '770d212b20667a1ea4dce88a345f4cbbed363e52', name: "header" })), hAsync("div", { key: '51821cd7d5323ae4543d354589ceabebf0c0ccb0', class: "pds-modal-content" }, hAsync("slot", { key: '475b5844c8f9ac44d7fc366b95ca282a908e0cbb' })), hAsync("div", { key: 'eb67b8e10942d51824296b82947025f8afee8a24', class: "pds-modal__footer" }, hAsync("slot", { key: 'b66c31cd4abfb8d30d5dc66735a367d99f149559', name: "footer" })))));
3153
+ }
3154
+ get el() { return getElement(this); }
3155
+ static get style() { return pdsModalCss$1; }
3156
+ static get cmpMeta() { return {
3157
+ "$flags$": 4,
3158
+ "$tagName$": "mock-pds-modal",
3159
+ "$members$": {
3160
+ "componentId": [1, "component-id"],
3161
+ "size": [1],
3162
+ "backdropDismiss": [4, "backdrop-dismiss"],
3163
+ "open": [1028],
3164
+ "showModal": [64],
3165
+ "hideModal": [64]
3166
+ },
3167
+ "$listeners$": undefined,
3168
+ "$lazyBundleId$": "-",
3169
+ "$attrsToReflect$": []
3170
+ }; }
3171
+ }
3172
+
3173
+ /* pds-icons v9.4.4, ES Modules */
3077
3174
 
3078
3175
  const caretDown = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' class='pdsicon'><path fill-rule='evenodd' d='M5.293 8.293a1 1 0 0 1 1.414 0L12 13.586l5.293-5.293a1 1 0 1 1 1.414 1.414l-6 6a1 1 0 0 1-1.414 0l-6-6a1 1 0 0 1 0-1.414'/></svg>";
3079
3176
  const checkCircleFilled = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' class='pdsicon'><path fill-rule='evenodd' d='M12 1C5.925 1 1 5.925 1 12s4.925 11 11 11 11-4.925 11-11S18.075 1 12 1m5.207 8.707a1 1 0 0 0-1.414-1.414L10.5 13.586l-2.293-2.293a1 1 0 0 0-1.414 1.414l3 3a1 1 0 0 0 1.414 0z'/></svg>";
@@ -3139,6 +3236,82 @@ class PdsAccordion {
3139
3236
  }; }
3140
3237
  }
3141
3238
 
3239
+ const pdsAlertTokensCss = ":host{--pine-alert-color-background:var(--pine-color-grey-150);--pine-alert-color-border:var(--pine-color-grey-300);--pine-alert-color-dismiss:var(--pine-color-grey-900);--pine-alert-color-dismiss-hover:var(--pine-color-grey-300);--pine-alert-color-icon:var(--pine-color-grey-700);--pine-alert-color-text:var(--pine-color-grey-950);--pine-alert-color-danger-background:var(--pine-color-red-150);--pine-alert-color-danger-border:var(--pine-color-red-300);--pine-alert-color-danger-dismiss:var(--pine-color-red-900);--pine-alert-color-danger-dismiss-hover:var(--pine-color-red-300);--pine-alert-color-danger-icon:var(--pine-color-red-700);--pine-alert-color-danger-text:var(--pine-color-red-950);--pine-alert-color-info-background:var(--pine-color-blue-150);--pine-alert-color-info-border:var(--pine-color-blue-300);--pine-alert-color-info-dismiss:var(--pine-color-blue-900);--pine-alert-color-info-dismiss-hover:var(--pine-color-blue-300);--pine-alert-color-info-icon:var(--pine-color-blue-700);--pine-alert-color-info-text:var(--pine-color-blue-950);--pine-alert-color-success-background:var(--pine-color-green-150);--pine-alert-color-success-border:var(--pine-color-green-300);--pine-alert-color-success-dismiss:var(--pine-color-green-900);--pine-alert-color-success-dismiss-hover:var(--pine-color-green-300);--pine-alert-color-success-icon:var(--pine-color-green-700);--pine-alert-color-success-text:var(--pine-color-green-950);--pine-alert-color-warning-background:var(--pine-color-yellow-150);--pine-alert-color-warning-border:var(--pine-color-yellow-300);--pine-alert-color-warning-dismiss:var(--pine-color-yellow-900);--pine-alert-color-warning-dismiss-hover:var(--pine-color-yellow-300);--pine-alert-color-warning-icon:var(--pine-color-yellow-700);--pine-alert-color-warning-text:var(--pine-color-yellow-950)}";
3240
+
3241
+ const pdsAlertCss = ":host{display:block;line-height:1;width:100%}.pds-alert__container{--pds-alert-icon-size:var(--pine-dimension-sm);--pds-alert-border-dismiss-outline:2px solid var(--pds-alert-color-dismiss);--pds-alert-background:var(--pine-alert-color-background);--pds-alert-border-color:var(--pine-alert-color-border);--pds-alert-color-icon:var(--pine-alert-color-icon);--pds-alert-color-text:var(--pine-alert-color-text);--pds-alert-color-dismiss:var(--pine-alert-color-dismiss);--pds-alert-background-dismiss-hover:var(--pine-alert-color-dismiss-hover)}.pds-alert__container--danger{--pds-alert-background:var(--pine-alert-color-danger-background);--pds-alert-border-color:var(--pine-alert-color-danger-border);--pds-alert-color-icon:var(--pine-alert-color-danger-icon);--pds-alert-color-text:var(--pine-alert-color-danger-text);--pds-alert-color-dismiss:var(--pine-alert-color-danger-dismiss);--pds-alert-background-dismiss-hover:var(--pine-alert-color-danger-dismiss-hover)}.pds-alert__container--info{--pds-alert-background:var(--pine-alert-color-info-background);--pds-alert-border-color:var(--pine-alert-color-info-border);--pds-alert-color-icon:var(--pine-alert-color-info-icon);--pds-alert-color-text:var(--pine-alert-color-info-text);--pds-alert-color-dismiss:var(--pine-alert-color-info-dismiss);--pds-alert-background-dismiss-hover:var(--pine-alert-color-info-dismiss-hover)}.pds-alert__container--success{--pds-alert-background:var(--pine-alert-color-success-background);--pds-alert-border-color:var(--pine-alert-color-success-border);--pds-alert-color-icon:var(--pine-alert-color-success-icon);--pds-alert-color-text:var(--pine-alert-color-success-text);--pds-alert-color-dismiss:var(--pine-alert-color-success-dismiss);--pds-alert-background-dismiss-hover:var(--pine-alert-color-success-dismiss-hover)}.pds-alert__container--warning{--pds-alert-background:var(--pine-alert-color-warning-background);--pds-alert-border-color:var(--pine-alert-color-warning-border);--pds-alert-color-icon:var(--pine-alert-color-warning-icon);--pds-alert-color-text:var(--pine-alert-color-warning-text);--pds-alert-color-dismiss:var(--pine-alert-color-warning-dismiss);--pds-alert-background-dismiss-hover:var(--pine-alert-color-warning-dismiss-hover)}.pds-alert__icon{-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs)}.pds-alert__icon--small{-webkit-margin-before:calc(var(--pine-dimension-2xs) / 2);margin-block-start:calc(var(--pine-dimension-2xs) / 2)}.pds-alert__content-wrapper{-ms-flex:1;flex:1;min-width:0;overflow:hidden;width:100%}.pds-alert__dismiss{-ms-flex-align:center;align-items:center;background:none;border:0;border-radius:var(--pine-border-radius-full);cursor:pointer;display:-ms-flexbox;display:flex;height:var(--pine-dimension-250);-ms-flex-pack:center;justify-content:center;padding:var(--pine-dimension-xs);width:var(--pine-dimension-250)}.pds-alert__dismiss:hover{background:var(--pds-alert-background-dismiss-hover);opacity:0.8}.pds-alert__dismiss:focus-visible{outline:var(--pds-alert-border-dismiss-outline)}.pds-alert__description--small{-ms-flex:1 1 auto;flex:1 1 auto;max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pds-alert__actions{-webkit-margin-before:var(--pine-dimension-sm);margin-block-start:var(--pine-dimension-sm)}.pds-alert__actions--small{-ms-flex-negative:0;flex-shrink:0;-webkit-margin-start:auto;margin-inline-start:auto;white-space:nowrap}";
3242
+
3243
+ /**
3244
+ * @slot actions - Slot for alert actions.
3245
+ */
3246
+ class PdsAlert {
3247
+ constructor(hostRef) {
3248
+ registerInstance(this, hostRef);
3249
+ this.pdsAlertDismissClick = createEvent(this, "pdsAlertDismissClick");
3250
+ /**
3251
+ * If true, the alert is displayed in a smaller size and description text is truncated. Heading is not displayed.
3252
+ */
3253
+ this.small = false;
3254
+ /**
3255
+ * If true, shows the dismiss button. If false, the dismiss button is hidden.
3256
+ * @defaultValue false
3257
+ */
3258
+ this.dismissible = false;
3259
+ /**
3260
+ * Sets the style variant of the alert.
3261
+ * @defaultValue 'default'
3262
+ */
3263
+ this.variant = 'default';
3264
+ this.hasActionsContent = false;
3265
+ this.handleCloseClick = () => {
3266
+ this.pdsAlertDismissClick.emit();
3267
+ };
3268
+ }
3269
+ componentWillRender() {
3270
+ // Check if the actions slot has any content.
3271
+ // If not, hide the actions container to prevent empty space.
3272
+ const actionsSlot = this.el.querySelector('[slot="actions"]');
3273
+ this.hasActionsContent = !!actionsSlot;
3274
+ }
3275
+ renderActions(isSmall) {
3276
+ return (hAsync("pds-box", { class: isSmall ? "pds-alert__actions--small" : "pds-alert__actions", gap: "sm", flex: isSmall ? "none" : undefined, "align-items": isSmall ? undefined : "center" }, hAsync("slot", { name: "actions" })));
3277
+ }
3278
+ renderContent() {
3279
+ if (this.small) {
3280
+ return (hAsync("pds-box", { display: "flex", gap: "md", "align-items": "center" }, hAsync("pds-text", { truncate: this.small, class: "pds-alert__description--small", color: "var(--pds-alert-color-text)", tag: "p" }, hAsync("slot", null)), this.hasActionsContent && this.renderActions(true)));
3281
+ }
3282
+ return (hAsync("div", null, hAsync("pds-text", { class: "pds-alert__description", color: "var(--pds-alert-color-text)", tag: "p" }, hAsync("slot", null)), this.hasActionsContent && this.renderActions(false)));
3283
+ }
3284
+ render() {
3285
+ const iconMap = {
3286
+ danger: 'warning-filled',
3287
+ default: 'info-circle-filled',
3288
+ info: 'info-circle-filled',
3289
+ success: 'check-circle-filled',
3290
+ warning: 'info-circle-filled',
3291
+ };
3292
+ // Get the icon name based on the current variant
3293
+ const iconName = iconMap[this.variant] || iconMap.default;
3294
+ return (hAsync(Host, { key: 'ccb4b954c20b4fedfe1336737a412753bf3c78a2', class: "pds-alert", id: this.componentId, variant: this.variant }, hAsync("pds-box", { key: '6feafdc553ab9854542cb53035486a0caa1f3348', class: `pds-alert__container pds-alert__container--${this.variant}`, "background-color": "var(--pds-alert-background)", "border-color": "var(--pds-alert-border-color)", "border-radius": "md", border: true, display: "block", padding: "md" }, hAsync("pds-box", { key: '86b160e97ac4724434b09cd832f7cdc61834a520', gap: "sm", display: "flex" }, hAsync("pds-icon", { key: 'c2f61f894b3f63915259e298dd9d973b719880c9', class: `pds-alert__icon ${this.small ? 'pds-alert__icon--small' : ''}`, color: "var(--pds-alert-color-icon)", icon: iconName, size: "var(--pds-alert-icon-size)" }), hAsync("pds-box", { key: '07926a4d7d6a1795edd2055ce9ae3d853982fe98', class: "pds-alert__content-wrapper", direction: "column", gap: "xs", flex: "grow" }, this.heading && !this.small && (hAsync("pds-text", { key: '2267241b05890cb4b955cd5418b26f30abd0503c', class: "pds-alert__heading", color: "var(--pds-alert-color-text)", size: "h5", tag: "h3", weight: "medium" }, this.heading)), this.renderContent()), this.dismissible && (hAsync("button", { key: 'bdc435db71e60d9233e97821ea10012f509cae26', class: "pds-alert__dismiss", type: "button", "aria-label": "Dismiss alert", onClick: this.handleCloseClick }, hAsync("pds-icon", { key: '22f013acfafafa6c32da9aa696bef8a8d3c633c0', icon: "remove", size: "var(--pds-alert-icon-size)", "aria-hidden": "true", color: "var(--pds-alert-color-dismiss)" })))))));
3295
+ }
3296
+ get el() { return getElement(this); }
3297
+ static get style() { return pdsAlertTokensCss + pdsAlertCss; }
3298
+ static get cmpMeta() { return {
3299
+ "$flags$": 9,
3300
+ "$tagName$": "pds-alert",
3301
+ "$members$": {
3302
+ "componentId": [1, "component-id"],
3303
+ "heading": [1],
3304
+ "small": [4],
3305
+ "dismissible": [4],
3306
+ "variant": [1],
3307
+ "hasActionsContent": [32]
3308
+ },
3309
+ "$listeners$": undefined,
3310
+ "$lazyBundleId$": "-",
3311
+ "$attrsToReflect$": []
3312
+ }; }
3313
+ }
3314
+
3142
3315
  const pdsAvatarCss = ":host{display:inline-block}div{--color-background-container:var(--pine-color-mercury-050);-ms-flex-align:center;align-items:center;background-color:var(--color-background-container);border-radius:var(--border-radius-admin-round, var(--pine-border-radius-full));display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;position:relative}:host(.pds-avatar--admin) div{--border-radius-admin-round:var(--pine-dimension-150);border-radius:var(--border-radius-admin-round)}:host(.pds-avatar--has-image) div{background:transparent}@supports selector(:has){div:has(img){background-color:transparent}}.pds-avatar__button{-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:var(--pine-dimension-none);border-radius:var(--pine-border-radius-full);cursor:pointer;display:-ms-flexbox;display:flex;padding:var(--pine-dimension-none)}.pds-avatar__button:focus-visible{outline:var(--pine-outline-focus)}.pds-avatar__badge{background-color:var(--pine-color-background-container);border:var(--pine-border);border-color:var(--pine-color-secondary);border-radius:var(--pine-border-radius-round);inset-block-end:var(--pine-dimension-none);inset-inline-end:var(--pine-dimension-none);position:absolute}img{border-radius:var(--border-radius-admin-round, var(--pine-border-radius-full));height:100%;-o-object-fit:cover;object-fit:cover;width:100%}";
3143
3316
 
3144
3317
  /**
@@ -3224,7 +3397,7 @@ class PdsAvatar {
3224
3397
  }
3225
3398
  }
3226
3399
  render() {
3227
- return (hAsync(Host, { key: '6c013c87792c77cf63a321d4b194b241c8c8f7f5', id: this.componentId, class: Object.assign({}, this.classNames()) }, this.renderAvatar()));
3400
+ return (hAsync(Host, { key: 'c19584898e4613085f6e6b8e227e7181eb4c8f1b', id: this.componentId, class: Object.assign({}, this.classNames()) }, this.renderAvatar()));
3228
3401
  }
3229
3402
  static get style() { return pdsAvatarCss; }
3230
3403
  static get cmpMeta() { return {
@@ -3296,8 +3469,8 @@ class PdsBox {
3296
3469
  this.sizeLg == undefined &&
3297
3470
  this.sizeXl == undefined ? 'pds-box' : ''}
3298
3471
  `;
3299
- const boxInlineStyles = Object.assign(Object.assign(Object.assign(Object.assign({}, (this.backgroundColor && { '--color-background-box': this.backgroundColor })), (this.borderColor && { '--color-border-box': this.borderColor })), (this.minHeight && { '--sizing-min-height-box': this.minHeight })), (this.minWidth && { '--sizing-min-height-box': this.minWidth }));
3300
- return (hAsync(Host, { key: '1beaea19e8828cb42b1ab21ffeaeceade3610682', class: boxClasses, style: boxInlineStyles }));
3472
+ const boxInlineStyles = Object.assign(Object.assign(Object.assign(Object.assign({}, (this.backgroundColor && { '--color-background-box': this.backgroundColor })), (this.borderColor && { '--color-border-box': this.borderColor })), (this.minHeight && { '--sizing-min-height-box': this.minHeight })), (this.minWidth && { '--sizing-min-width-box': this.minWidth }));
3473
+ return (hAsync(Host, { key: '5a16a73506e9322444b85626dc71dceacbfac263', class: boxClasses, style: boxInlineStyles }));
3301
3474
  }
3302
3475
  static get style() { return pdsBoxCss; }
3303
3476
  static get cmpMeta() { return {
@@ -3365,11 +3538,11 @@ const debounce = (func, wait = 0) => {
3365
3538
  timer = setTimeout(func, wait, ...args);
3366
3539
  };
3367
3540
  };
3368
- const setColor = (color) => {
3541
+ const setColor = (color, customColors) => {
3369
3542
  var _a;
3370
3543
  if (!color)
3371
3544
  return;
3372
- const colors = {
3545
+ const defaultColors = {
3373
3546
  primary: 'var(--pine-color-text-primary)',
3374
3547
  secondary: 'var(--pine-color-text-secondary)',
3375
3548
  neutral: 'var(--pine-color-text-neutral)',
@@ -3379,12 +3552,13 @@ const setColor = (color) => {
3379
3552
  success: 'var(--pine-color-text-success)',
3380
3553
  warning: 'var(--pine-color-text-warning)',
3381
3554
  };
3555
+ const colors = customColors || defaultColors;
3382
3556
  return {
3383
3557
  '--color': (_a = colors[color]) !== null && _a !== void 0 ? _a : (color.startsWith('--') ? `var(${color})` : color)
3384
3558
  };
3385
3559
  };
3386
3560
 
3387
- const pdsButtonCss = ":host{--button-dimension:40px;--color-border-default:transparent;--color-border-disabled:transparent;--color-border-focus:transparent;--color-border-hover:transparent;--button-loader-color:var(--color-text-default);display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}:host([full-width=true]){display:-ms-flexbox;display:flex;width:100%}:host([full-width=true]) button{-ms-flex-pack:center;justify-content:center;width:100%}:host([full-width=true]) .pds-button__content{-ms-flex-pack:center;justify-content:center;text-align:center}:host([loading=true]){cursor:wait;pointer-events:none}:host([disabled=true]){pointer-events:none}.pds-button{--pds-loader-color:var(--color-text-default);-ms-flex-align:center;align-items:center;background-color:var(--color-background-default);border:var(--pine-border);border-color:var(--color-border-default);border-radius:var(--pine-border-radius-full);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--color-text-default);cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-brand-label);letter-spacing:var(--pine-letter-spacing);min-height:var(--button-dimension);padding:var(--pine-dimension-xs) var(--pine-dimension-sm);text-decoration:none}.pds-button pds-icon{color:currentColor;fill:currentColor}.pds-button:hover{background-color:var(--color-background-hover);border-color:var(--color-border-hover)}.pds-button:focus-visible{border-color:var(--color-border-focus);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-button:disabled{background-color:var(--color-background-disabled);border-color:var(--color-border-disabled);color:var(--color-text-disabled);pointer-events:none}.pds-button--primary{--color-background-default:var(--pine-color-primary);--color-background-hover:var(--pine-color-primary-hover);--color-background-disabled:var(--pine-color-primary-disabled);--color-border-default:var(--pine-color-primary);--color-border-hover:var(--pine-color-primary-hover);--color-text-default:var(--pine-color-text-primary);--color-text-disabled:var(--pine-color-text-primary-disabled);--color-outline:var(--pine-color-focus-ring);--button-loader-color:var(--pine-color-text-primary)}.pds-button--accent{--color-background-default:var(--pine-color-accent);--color-background-hover:var(--pine-color-accent-hover);--color-background-disabled:var(--pine-color-accent-disabled);--color-border-default:var(--pine-color-accent);--color-border-hover:var(--pine-color-accent-hover);--color-text-default:var(--pine-color-text-primary);--color-text-disabled:var(--pine-color-text-accent-disabled);--color-outline:var(--pine-color-focus-ring);--button-loader-color:var(--pine-color-text-primary)}.pds-button--destructive{--color-background-default:var(--pine-color-danger);--color-background-hover:var(--pine-color-danger-hover);--color-background-disabled:var(--pine-color-danger-disabled);--color-border-default:var(--pine-color-danger);--color-border-hover:var(--pine-color-danger-hover);--color-text-default:var(--pine-color-text-primary);--color-text-disabled:var(--pine-color-text-danger-disabled);--color-outline:var(--pine-color-focus-ring-danger);--button-loader-color:var(--pine-color-text-primary)}.pds-button--destructive:focus-visible{outline-color:var(--pine-color-focus-ring-danger)}.pds-button--secondary,.pds-button--disclosure{--color-background-default:var(--pine-color-secondary);--color-background-hover:var(--pine-color-secondary-hover);--color-background-disabled:var(--pine-color-secondary-disabled);--color-border-disabled:var(--pine-color-border-disabled);--color-border-focus:var(--pine-color-border);--color-border-hover:var(--pine-color-border-hover);--color-border-default:var(--pine-color-border);--color-text-default:var(--pine-color-text-secondary);--color-text-disabled:var(--pine-color-text-secondary-disabled);--color-outline:var(--pine-color-focus-ring);--button-loader-color:var(--pine-color-text-secondary)}.pds-button--secondary:hover,.pds-button--disclosure:hover{background-color:var(--pine-color-secondary-hover)}.pds-button--unstyled{--color-background-default:transparent;--color-background-hover:transparent;--color-background-disabled:transparent;--color-text-default:inherit;--button-loader-color:inherit;border-width:var(--pine-dimension-none);margin:var(--pine-dimension-none);min-height:auto;padding:var(--pine-dimension-none);width:inherit}.pds-button__content{-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex;gap:var(--pine-dimension-xs);position:relative;width:100%}.pds-button__icon{display:-ms-inline-flexbox;display:inline-flex}.pds-button__text{-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex}.pds-button__icon--hidden,.pds-button__text--hidden{opacity:0}.pds-button__loader{height:var(--pine-dimension-250);left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);width:var(--pine-dimension-250)}.pds-button--loading{cursor:wait;pointer-events:none}.pds-button--loading .pds-button__loader pds-loader{--loader-color:var(--button-loader-color)}.pds-button--icon-only{-ms-flex-align:center;align-items:center;border-radius:var(--pine-border-radius-full);height:var(--button-dimension);-ms-flex-pack:center;justify-content:center;min-height:var(--button-dimension);min-width:var(--button-dimension);padding:var(--pine-dimension-xs);width:var(--button-dimension)}.pds-button--icon-only .pds-button__content{height:100%;-ms-flex-pack:center;justify-content:center;width:100%}.pds-button--icon-only .pds-button__text--hidden{border:0;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:0;position:absolute;white-space:nowrap;width:1px}";
3561
+ const pdsButtonCss = ":host{--pds-button-background:var(--color-background-default);--pds-button-border:var(--pine-border);--pds-button-border-radius:var(--pine-border-radius-full);--pds-button-border-radius-start-end:var(--pine-border-radius-full);--pds-button-border-radius-start-start:var(--pine-border-radius-full);--pds-button-border-radius-end-end:var(--pine-border-radius-full);--pds-button-border-radius-end-start:var(--pine-border-radius-full);--pds-button-min-height:40px;--color-border-default:transparent;--color-border-disabled:transparent;--color-border-focus:transparent;--color-border-hover:transparent;--button-loader-color:var(--color-text-default);display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}:host([full-width=true]){display:-ms-flexbox;display:flex;width:100%}:host([full-width=true]) button{-ms-flex-pack:center;justify-content:center;width:100%}:host([full-width=true]) .pds-button__content{-ms-flex-pack:center;justify-content:center;text-align:center}:host([loading=true]){cursor:wait;pointer-events:none}:host([disabled=true]){pointer-events:none}.pds-button{--pds-loader-color:var(--color-text-default);-ms-flex-align:center;align-items:center;background-color:var(--pds-button-background, var(--color-background-default));border:var(--pds-button-border);border-color:var(--color-border-default);border-end-end-radius:var(--pds-button-border-radius-end-end, var(--pds-button-border-radius));border-end-start-radius:var(--pds-button-border-radius-end-start, var(--pds-button-border-radius));border-radius:var(--pds-button-border-radius);border-start-end-radius:var(--pds-button-border-radius-start-end, var(--pds-button-border-radius));border-start-start-radius:var(--pds-button-border-radius-start-start, var(--pds-button-border-radius));-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--color-text-default);cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-brand-label);letter-spacing:var(--pine-letter-spacing);min-height:var(--pds-button-min-height);padding:var(--pine-dimension-xs) var(--pine-dimension-sm);position:relative;text-decoration:none}.pds-button pds-icon{color:currentColor;fill:currentColor}.pds-button:hover{background-color:var(--color-background-hover);border-color:var(--color-border-hover)}.pds-button:focus-visible{border-color:var(--color-border-focus);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-button:disabled{background-color:var(--color-background-disabled);border-color:var(--color-border-disabled);color:var(--color-text-disabled);pointer-events:none}.pds-button--primary{--color-background-default:var(--pine-color-primary);--color-background-hover:var(--pine-color-primary-hover);--color-background-disabled:var(--pine-color-primary-disabled);--color-border-default:var(--pine-color-primary);--color-border-hover:var(--pine-color-primary-hover);--color-text-default:var(--pine-color-text-primary);--color-text-disabled:var(--pine-color-text-primary-disabled);--color-outline:var(--pine-color-focus-ring);--button-loader-color:var(--pine-color-text-primary)}.pds-button--accent{--color-background-default:var(--pine-color-accent);--color-background-hover:var(--pine-color-accent-hover);--color-background-disabled:var(--pine-color-accent-disabled);--color-border-default:var(--pine-color-accent);--color-border-hover:var(--pine-color-accent-hover);--color-text-default:var(--pine-color-text-primary);--color-text-disabled:var(--pine-color-text-accent-disabled);--color-outline:var(--pine-color-focus-ring);--button-loader-color:var(--pine-color-text-primary)}.pds-button--destructive{--color-background-default:var(--pine-color-danger);--color-background-hover:var(--pine-color-danger-hover);--color-background-disabled:var(--pine-color-danger-disabled);--color-border-default:var(--pine-color-danger);--color-border-hover:var(--pine-color-danger-hover);--color-text-default:var(--pine-color-text-primary);--color-text-disabled:var(--pine-color-text-danger-disabled);--color-outline:var(--pine-color-focus-ring-danger);--button-loader-color:var(--pine-color-text-primary)}.pds-button--destructive:focus-visible{outline-color:var(--pine-color-focus-ring-danger)}.pds-button--secondary,.pds-button--disclosure{--color-background-default:var(--pine-color-secondary);--color-background-hover:var(--pine-color-secondary-hover);--color-background-disabled:var(--pine-color-secondary-disabled);--color-border-disabled:var(--pine-color-border-disabled);--color-border-focus:var(--pine-color-border);--color-border-hover:var(--pine-color-border-hover);--color-border-default:var(--pine-color-border);--color-text-default:var(--pine-color-text-secondary);--color-text-disabled:var(--pine-color-text-secondary-disabled);--color-outline:var(--pine-color-focus-ring);--button-loader-color:var(--pine-color-text-secondary)}.pds-button--secondary:hover,.pds-button--disclosure:hover{background-color:var(--pine-color-secondary-hover)}.pds-button--unstyled{--color-background-default:transparent;--color-background-hover:transparent;--color-background-disabled:transparent;--color-text-default:inherit;--button-loader-color:inherit;border-width:var(--pine-dimension-none);margin:var(--pine-dimension-none);min-height:auto;padding:var(--pine-dimension-none);width:inherit}.pds-button__content{-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex;gap:var(--pine-dimension-xs);position:relative;width:100%}.pds-button__icon{display:-ms-inline-flexbox;display:inline-flex}.pds-button__text{-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex}.pds-button__icon--hidden,.pds-button__text--hidden{opacity:0}.pds-button__loader{height:var(--pine-dimension-250);left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);width:var(--pine-dimension-250)}.pds-button--loading{cursor:wait;pointer-events:none}.pds-button--loading .pds-button__loader pds-loader{--loader-color:var(--button-loader-color)}.pds-button--icon-only{-ms-flex-align:center;align-items:center;border-radius:var(--pine-border-radius-full);height:var(--button-dimension);-ms-flex-pack:center;justify-content:center;min-height:var(--button-dimension);min-width:var(--button-dimension);padding:var(--pine-dimension-xs);width:var(--button-dimension)}.pds-button--icon-only .pds-button__content{height:100%;-ms-flex-pack:center;justify-content:center;width:100%}.pds-button--icon-only .pds-button__text--hidden{border:0;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:0;position:absolute;white-space:nowrap;width:1px}";
3388
3562
 
3389
3563
  /**
3390
3564
  * @part button - Exposes the button element for styling.
@@ -3703,9 +3877,9 @@ class PdsCheckbox {
3703
3877
  this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
3704
3878
  }
3705
3879
  render() {
3706
- return (hAsync(Host, { key: 'fd26da1a8eb089bc078f81a2ed1156d021e4a9f1', class: this.classNames() }, hAsync("label", { key: 'c4e97037b26ca7dd19e07f340f0a65617fa90a15', htmlFor: this.componentId }, hAsync("input", Object.assign({ key: '93a4ec08a7b53e86e169e1241985957182de9967', type: "checkbox", "aria-describedby": assignDescription(this.componentId, this.invalid, this.errorMessage || this.helperMessage), "aria-invalid": this.invalid ? "true" : undefined, id: this.componentId, indeterminate: this.indeterminate, name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onChange: this.handleCheckboxChange, onInput: this.handleInput }, this.inheritedAttributes)), hAsync("span", { key: '66d65cba307873dfa9c75715e2cc476dc908be9b', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), this.helperMessage &&
3707
- hAsync("div", { key: '58d25c13691c6aa9a7d5c4b754e85defbbb41dc7', class: 'pds-checkbox__message', id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
3708
- hAsync("div", { key: '7202d171fbe6cd86ae0048f05e72865fa100b633', class: `pds-checkbox__message pds-checkbox__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: '9b681c05249e3a0bc74baea6c33d9ad46664ed53', icon: danger, size: "small" }), this.errorMessage)));
3880
+ return (hAsync(Host, { key: 'a60ffb7c96f1d15735f263cb55cd982fbfcbe729', class: this.classNames() }, hAsync("label", { key: '6ed2c8670cded5165761374362d9f1e9f386a4d2', htmlFor: this.componentId }, hAsync("input", Object.assign({ key: '0661b30a9af3bd8ee83b2f3ceb249810a78f19a5', type: "checkbox", "aria-describedby": assignDescription(this.componentId, this.invalid, this.errorMessage || this.helperMessage), "aria-invalid": this.invalid ? "true" : undefined, id: this.componentId, indeterminate: this.indeterminate, name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onChange: this.handleCheckboxChange, onInput: this.handleInput }, this.inheritedAttributes)), hAsync("span", { key: 'b16d78ead4da7ebdffb0f37127bdacf8b1538f86', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), this.helperMessage &&
3881
+ hAsync("div", { key: '78e88b11ba9e2759264e08ff0ce9e16c9cf67170', class: 'pds-checkbox__message', id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
3882
+ hAsync("div", { key: '0ba7d2bd2b4f6c996eecdd103abe3fb6497e4376', class: `pds-checkbox__message pds-checkbox__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: '65a94316603638e5230de0644fc8ca60e9543b63', icon: danger, size: "small" }), this.errorMessage)));
3709
3883
  }
3710
3884
  get el() { return getElement(this); }
3711
3885
  static get watchers() { return {
@@ -3737,7 +3911,7 @@ class PdsCheckbox {
3737
3911
 
3738
3912
  const pdsChipTokensCss = ":host{--pine-chip-color-accent:var(--pine-color-purple-100);--pine-chip-color-accent-hover:var(--pine-color-purple-300);--pine-chip-color-accent-dot:var(--pine-color-purple-600);--pine-chip-color-danger:var(--pine-color-red-100);--pine-chip-color-danger-hover:var(--pine-color-red-300);--pine-chip-color-danger-dot:var(--pine-color-red-600);--pine-chip-color-info:var(--pine-color-blue-100);--pine-chip-color-info-hover:var(--pine-color-blue-300);--pine-chip-color-info-dot:var(--pine-color-blue-600);--pine-chip-color-neutral:var(--pine-color-grey-100);--pine-chip-color-neutral-hover:var(--pine-color-grey-300);--pine-chip-color-neutral-dot:var(--pine-color-grey-600);--pine-chip-color-success:var(--pine-color-green-100);--pine-chip-color-success-hover:var(--pine-color-green-300);--pine-chip-color-success-dot:var(--pine-color-green-600);--pine-chip-color-warning:var(--pine-color-yellow-100);--pine-chip-color-warning-hover:var(--pine-color-yellow-300);--pine-chip-color-warning-dot:var(--pine-color-yellow-600)}";
3739
3913
 
3740
- const pdsChipCss = ":host{--sizing-close:var(--pine-dimension-125);-ms-flex-align:center;align-items:center;border-radius:var(--pine-dimension-sm);display:-ms-inline-flexbox;display:inline-flex;padding-block:var(--pine-dimension-2xs);padding-inline:var(--pine-dimension-150)}:host(.pds-chip--accent){background:var(--pine-chip-color-accent);border:var(--pine-border-width) solid var(--pine-chip-color-accent-hover)}:host(.pds-chip--accent) .pds-chip__dot{background:var(--pine-chip-color-accent-dot)}:host(.pds-chip--accent) .pds-chip__label,:host(.pds-chip--accent) .pds-chip__button,:host(.pds-chip--accent) .pds-chip__close{color:var(--pine-color-text-accent);font-weight:var(--pine-font-weight-medium)}:host(.pds-chip--accent) .pds-chip__close:hover{background:var(--pine-chip-color-accent-hover)}:host(.pds-chip--accent.pds-chip--dropdown:hover){background:var(--pine-chip-color-accent-hover)}:host(.pds-chip--danger){background:var(--pine-chip-color-danger);border:var(--pine-border-width) solid var(--pine-chip-color-danger-hover)}:host(.pds-chip--danger) .pds-chip__dot{background:var(--pine-chip-color-danger-dot)}:host(.pds-chip--danger) .pds-chip__label,:host(.pds-chip--danger) .pds-chip__button,:host(.pds-chip--danger) .pds-chip__close{color:var(--pine-color-text-danger);font-weight:var(--pine-font-weight-medium)}:host(.pds-chip--danger) .pds-chip__close:hover{background:var(--pine-chip-color-danger-hover)}:host(.pds-chip--danger.pds-chip--dropdown:hover){background:var(--pine-chip-color-danger-hover)}:host(.pds-chip--info){background:var(--pine-chip-color-info);border:var(--pine-border-width) solid var(--pine-chip-color-info-hover)}:host(.pds-chip--info) .pds-chip__dot{background:var(--pine-chip-color-info-dot)}:host(.pds-chip--info) .pds-chip__label,:host(.pds-chip--info) .pds-chip__button,:host(.pds-chip--info) .pds-chip__close{color:var(--pine-color-text-info);font-weight:var(--pine-font-weight-medium)}:host(.pds-chip--info) .pds-chip__close:hover{background:var(--pine-chip-color-info-hover)}:host(.pds-chip--info.pds-chip--dropdown:hover){background:var(--pine-chip-color-info-hover)}:host(.pds-chip--neutral){background:var(--pine-chip-color-neutral);border:var(--pine-border-width) solid var(--pine-chip-color-neutral-hover)}:host(.pds-chip--neutral) .pds-chip__dot{background:var(--pine-chip-color-neutral-dot)}:host(.pds-chip--neutral) .pds-chip__label,:host(.pds-chip--neutral) .pds-chip__button,:host(.pds-chip--neutral) .pds-chip__close{color:var(--pine-color-text-neutral);font-weight:var(--pine-font-weight-medium)}:host(.pds-chip--neutral) .pds-chip__close:hover{background:var(--pine-chip-color-neutral-hover)}:host(.pds-chip--neutral.pds-chip--dropdown:hover){background:var(--pine-chip-color-neutral-hover)}:host(.pds-chip--success){background:var(--pine-chip-color-success);border:var(--pine-border-width) solid var(--pine-chip-color-success-hover)}:host(.pds-chip--success) .pds-chip__dot{background:var(--pine-chip-color-success-dot)}:host(.pds-chip--success) .pds-chip__label,:host(.pds-chip--success) .pds-chip__button,:host(.pds-chip--success) .pds-chip__close{color:var(--pine-color-text-success);font-weight:var(--pine-font-weight-medium)}:host(.pds-chip--success) .pds-chip__close:hover{background:var(--pine-chip-color-success-hover)}:host(.pds-chip--success.pds-chip--dropdown:hover){background:var(--pine-chip-color-success-hover)}:host(.pds-chip--warning){background:var(--pine-chip-color-warning);border:var(--pine-border-width) solid var(--pine-chip-color-warning-hover)}:host(.pds-chip--warning) .pds-chip__dot{background:var(--pine-chip-color-warning-dot)}:host(.pds-chip--warning) .pds-chip__label,:host(.pds-chip--warning) .pds-chip__button,:host(.pds-chip--warning) .pds-chip__close{color:var(--pine-color-text-warning);font-weight:var(--pine-font-weight-medium)}:host(.pds-chip--warning) .pds-chip__close:hover{background:var(--pine-chip-color-warning-hover)}:host(.pds-chip--warning.pds-chip--dropdown:hover){background:var(--pine-chip-color-warning-hover)}.pds-chip__dot{border:var(--pine-border-width) solid transparent;border-radius:var(--pine-border-radius-full);display:inline-block;height:var(--pine-dimension-2xs);-webkit-margin-after:var(--pine-dimension-025);margin-block-end:var(--pine-dimension-025);-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs);width:var(--pine-dimension-2xs)}.pds-chip__label{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex}.pds-chip__label,.pds-chip__button{font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing)}:host(.pds-chip--dropdown){padding:var(--pine-dimension-none)}:host(.pds-chip--dropdown) .pds-chip__dot{-webkit-margin-after:calc(var(--pine-dimension-025) / 4);margin-block-end:calc(var(--pine-dimension-025) / 4);-webkit-margin-before:var(--pine-dimension-025);margin-block-start:var(--pine-dimension-025)}.pds-chip__button{-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:var(--pine-dimension-none);border-radius:var(--pine-dimension-sm);cursor:pointer;display:-ms-flexbox;display:flex;padding:var(--pine-dimension-2xs) var(--pine-dimension-150)}.pds-chip__button:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-chip__button pds-icon{-webkit-margin-end:calc(var(--pine-dimension-025) * -1);margin-inline-end:calc(var(--pine-dimension-025) * -1);-webkit-margin-start:var(--pine-dimension-2xs);margin-inline-start:var(--pine-dimension-2xs)}.pds-chip__close{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:var(--pine-border-radius-full);height:var(--sizing-close);-webkit-margin-end:calc(var(--pine-dimension-xs) * -1);margin-inline-end:calc(var(--pine-dimension-xs) * -1);-webkit-margin-start:var(--pine-dimension-2xs);margin-inline-start:var(--pine-dimension-2xs);padding:var(--sizing-close);position:relative;width:var(--sizing-close)}.pds-chip__close pds-icon{left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}.pds-chip__close:focus-visible{outline:var(--pine-outline-focus)}:host(.pds-chip--large){padding-block:var(--pine-dimension-2xs);padding-inline:var(--pine-dimension-150)}:host(.pds-chip--large) .pds-chip__label,:host(.pds-chip--large) .pds-chip__button{font:var(--pine-typography-heading-6);letter-spacing:var(--pine-letter-spacing-heading-6)}:host(.pds-chip--large):has(.pds-chip__button){padding:var(--pine-dimension-none)}";
3914
+ const pdsChipCss = ":host{--sizing-close:var(--pine-dimension-125);-ms-flex-align:center;align-items:center;border-radius:var(--pine-dimension-sm);display:-ms-inline-flexbox;display:inline-flex;padding-block:var(--pine-dimension-025);padding-inline:var(--pine-dimension-150)}:host(.pds-chip--accent){background:var(--pine-chip-color-accent);border:var(--pine-border-width) solid var(--pine-chip-color-accent-hover)}:host(.pds-chip--accent) .pds-chip__dot{background:var(--pine-chip-color-accent-dot)}:host(.pds-chip--accent) .pds-chip__label,:host(.pds-chip--accent) .pds-chip__button,:host(.pds-chip--accent) .pds-chip__close{color:var(--pine-color-text-accent);font-weight:var(--pine-font-weight-medium)}:host(.pds-chip--accent) .pds-chip__close:hover{background:var(--pine-chip-color-accent-hover)}:host(.pds-chip--accent.pds-chip--dropdown:hover){background:var(--pine-chip-color-accent-hover)}:host(.pds-chip--danger){background:var(--pine-chip-color-danger);border:var(--pine-border-width) solid var(--pine-chip-color-danger-hover)}:host(.pds-chip--danger) .pds-chip__dot{background:var(--pine-chip-color-danger-dot)}:host(.pds-chip--danger) .pds-chip__label,:host(.pds-chip--danger) .pds-chip__button,:host(.pds-chip--danger) .pds-chip__close{color:var(--pine-color-text-danger);font-weight:var(--pine-font-weight-medium)}:host(.pds-chip--danger) .pds-chip__close:hover{background:var(--pine-chip-color-danger-hover)}:host(.pds-chip--danger.pds-chip--dropdown:hover){background:var(--pine-chip-color-danger-hover)}:host(.pds-chip--info){background:var(--pine-chip-color-info);border:var(--pine-border-width) solid var(--pine-chip-color-info-hover)}:host(.pds-chip--info) .pds-chip__dot{background:var(--pine-chip-color-info-dot)}:host(.pds-chip--info) .pds-chip__label,:host(.pds-chip--info) .pds-chip__button,:host(.pds-chip--info) .pds-chip__close{color:var(--pine-color-text-info);font-weight:var(--pine-font-weight-medium)}:host(.pds-chip--info) .pds-chip__close:hover{background:var(--pine-chip-color-info-hover)}:host(.pds-chip--info.pds-chip--dropdown:hover){background:var(--pine-chip-color-info-hover)}:host(.pds-chip--neutral){background:var(--pine-chip-color-neutral);border:var(--pine-border-width) solid var(--pine-chip-color-neutral-hover)}:host(.pds-chip--neutral) .pds-chip__dot{background:var(--pine-chip-color-neutral-dot)}:host(.pds-chip--neutral) .pds-chip__label,:host(.pds-chip--neutral) .pds-chip__button,:host(.pds-chip--neutral) .pds-chip__close{color:var(--pine-color-text-neutral);font-weight:var(--pine-font-weight-medium)}:host(.pds-chip--neutral) .pds-chip__close:hover{background:var(--pine-chip-color-neutral-hover)}:host(.pds-chip--neutral.pds-chip--dropdown:hover){background:var(--pine-chip-color-neutral-hover)}:host(.pds-chip--success){background:var(--pine-chip-color-success);border:var(--pine-border-width) solid var(--pine-chip-color-success-hover)}:host(.pds-chip--success) .pds-chip__dot{background:var(--pine-chip-color-success-dot)}:host(.pds-chip--success) .pds-chip__label,:host(.pds-chip--success) .pds-chip__button,:host(.pds-chip--success) .pds-chip__close{color:var(--pine-color-text-success);font-weight:var(--pine-font-weight-medium)}:host(.pds-chip--success) .pds-chip__close:hover{background:var(--pine-chip-color-success-hover)}:host(.pds-chip--success.pds-chip--dropdown:hover){background:var(--pine-chip-color-success-hover)}:host(.pds-chip--warning){background:var(--pine-chip-color-warning);border:var(--pine-border-width) solid var(--pine-chip-color-warning-hover)}:host(.pds-chip--warning) .pds-chip__dot{background:var(--pine-chip-color-warning-dot)}:host(.pds-chip--warning) .pds-chip__label,:host(.pds-chip--warning) .pds-chip__button,:host(.pds-chip--warning) .pds-chip__close{color:var(--pine-color-text-warning);font-weight:var(--pine-font-weight-medium)}:host(.pds-chip--warning) .pds-chip__close:hover{background:var(--pine-chip-color-warning-hover)}:host(.pds-chip--warning.pds-chip--dropdown:hover){background:var(--pine-chip-color-warning-hover)}.pds-chip__dot{border:var(--pine-border-width) solid transparent;border-radius:var(--pine-border-radius-full);display:inline-block;height:var(--pine-dimension-2xs);-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs);width:var(--pine-dimension-2xs)}.pds-chip__label{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex}.pds-chip__label pds-icon{-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs)}.pds-chip__label,.pds-chip__button{font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing)}:host(.pds-chip--dropdown){padding:var(--pine-dimension-none)}.pds-chip__button{-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:var(--pine-dimension-none);border-radius:var(--pine-dimension-sm);cursor:pointer;display:-ms-flexbox;display:flex;padding:var(--pine-dimension-025) var(--pine-dimension-150)}.pds-chip__button:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-chip__button pds-icon:first-child{-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs)}.pds-chip__button pds-icon:last-child{-webkit-margin-end:calc(var(--pine-dimension-025) * -1);margin-inline-end:calc(var(--pine-dimension-025) * -1);-webkit-margin-start:var(--pine-dimension-2xs);margin-inline-start:var(--pine-dimension-2xs)}.pds-chip__close{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:var(--pine-border-radius-full);height:var(--sizing-close);-webkit-margin-end:calc(var(--pine-dimension-xs) * -1);margin-inline-end:calc(var(--pine-dimension-xs) * -1);-webkit-margin-start:var(--pine-dimension-2xs);margin-inline-start:var(--pine-dimension-2xs);padding:var(--sizing-close);position:relative;width:var(--sizing-close)}.pds-chip__close pds-icon{left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}.pds-chip__close:focus-visible{outline:var(--pine-outline-focus)}:host(.pds-chip--large){padding-block:var(--pine-dimension-025);padding-inline:var(--pine-dimension-150)}:host(.pds-chip--large) .pds-chip__label,:host(.pds-chip--large) .pds-chip__button{font-family:var(--pine-font-family-heading);font-size:var(--pine-font-size-heading-6);font-weight:var(--pine-font-weight-medium);letter-spacing:var(--pine-letter-spacing-heading-6)}:host(.pds-chip--large.pds-chip--dropdown){padding:var(--pine-dimension-none)}:host(.pds-chip--large.pds-chip--dropdown) .pds-chip__button{padding:var(--pine-dimension-025) var(--pine-dimension-150)}:host(.pds-chip--brand){background:-webkit-gradient(linear, left top, right top, from(#FF3E14), to(#6B62F2));background:linear-gradient(90deg, #FF3E14 0%, #6B62F2 100%);border:0;padding:1px;position:relative}:host(.pds-chip--brand) .pds-chip__label{background:rgba(255, 255, 255, 0.9);border-radius:calc(var(--pine-dimension-sm) - 1px);color:var(--pine-color-text-neutral);font-weight:var(--pine-font-weight-medium);padding:var(--pine-dimension-025) var(--pine-dimension-150);position:relative;z-index:1}:host(.pds-chip--brand) .pds-chip__label pds-icon{-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs)}:host(.pds-chip--brand) .pds-chip__button,:host(.pds-chip--brand) .pds-chip__close{color:var(--pine-color-text-neutral);font-weight:var(--pine-font-weight-medium);position:relative;z-index:1}:host(.pds-chip--brand) .pds-chip__button pds-icon:first-child{-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs)}:host(.pds-chip--brand) .pds-chip__close:hover{background:rgba(255, 255, 255, 0.8)}";
3741
3915
 
3742
3916
  /**
3743
3917
  * @slot (default) - The chip's label text.
@@ -3748,6 +3922,7 @@ class PdsChip {
3748
3922
  this.pdsTagCloseClick = createEvent(this, "pdsTagCloseClick");
3749
3923
  /**
3750
3924
  * Determines whether a dot should be displayed on the chip.
3925
+ * Note: This prop is ignored when sentiment is 'brand'.
3751
3926
  * @defaultValue false
3752
3927
  */
3753
3928
  this.dot = false;
@@ -3763,6 +3938,7 @@ class PdsChip {
3763
3938
  this.sentiment = 'neutral';
3764
3939
  /**
3765
3940
  * Sets the style variant of the chip.
3941
+ * Note: This prop is ignored when sentiment is 'brand'.
3766
3942
  * @defaultValue 'text'
3767
3943
  */
3768
3944
  this.variant = 'text';
@@ -3775,21 +3951,33 @@ class PdsChip {
3775
3951
  if (this.large) {
3776
3952
  classNames.push('pds-chip--large');
3777
3953
  }
3778
- if (this.variant) {
3779
- classNames.push('pds-chip--' + this.variant);
3954
+ // For brand sentiment, always use text variant
3955
+ const effectiveVariant = this.sentiment === 'brand' ? 'text' : this.variant;
3956
+ if (effectiveVariant) {
3957
+ classNames.push('pds-chip--' + effectiveVariant);
3780
3958
  }
3781
3959
  if (this.sentiment) {
3782
3960
  classNames.push('pds-chip--' + this.sentiment);
3783
3961
  }
3784
3962
  return classNames.join(' ');
3785
3963
  }
3964
+ get effectiveVariant() {
3965
+ // For brand sentiment, force text variant behavior
3966
+ return this.sentiment === 'brand' ? 'text' : this.variant;
3967
+ }
3968
+ get iconSize() {
3969
+ // Icon size based on large prop
3970
+ return this.large ? '14px' : '12px';
3971
+ }
3786
3972
  setChipContent() {
3787
- const isDropdown = this.variant === 'dropdown';
3788
- const chipContent = isDropdown ? (hAsync("button", { class: "pds-chip__button", type: "button" }, this.dot && hAsync("i", { class: "pds-chip__dot", "aria-hidden": "true" }), hAsync("slot", null), hAsync("pds-icon", { icon: downSmall, size: "12px", "aria-hidden": "true" }))) : (hAsync("span", { class: "pds-chip__label" }, this.dot && hAsync("i", { class: "pds-chip__dot", "aria-hidden": "true" }), hAsync("slot", null)));
3973
+ const isDropdown = this.effectiveVariant === 'dropdown';
3974
+ // For brand sentiment, ignore dot prop
3975
+ const showDot = this.sentiment === 'brand' ? false : this.dot;
3976
+ const chipContent = isDropdown ? (hAsync("button", { class: "pds-chip__button", type: "button" }, this.icon && hAsync("pds-icon", { icon: this.icon, size: this.iconSize, "aria-hidden": "true" }), showDot && hAsync("i", { class: "pds-chip__dot", "aria-hidden": "true" }), hAsync("slot", null), hAsync("pds-icon", { icon: downSmall, size: this.iconSize, "aria-hidden": "true" }))) : (hAsync("span", { class: "pds-chip__label" }, this.icon && hAsync("pds-icon", { icon: this.icon, size: this.iconSize, "aria-hidden": "true" }), showDot && hAsync("i", { class: "pds-chip__dot", "aria-hidden": "true" }), hAsync("slot", null)));
3789
3977
  return chipContent;
3790
3978
  }
3791
3979
  render() {
3792
- return (hAsync(Host, { key: '965c426e2acb5bbd9d9dfb8a6b985127c5d8f7ca', class: this.classNames(), id: this.componentId }, this.setChipContent(), this.variant === 'tag' && (hAsync("button", { key: '8520d64334e93add5b44c4524f0629e8e4bbdf86', class: "pds-chip__close", type: "button", onClick: this.handleCloseClick, "aria-label": "Remove" }, hAsync("pds-icon", { key: '6cf276e3efd146ed63201b5854ffb3e2037fad9c', icon: remove, size: "12px" })))));
3980
+ return (hAsync(Host, { key: '87b74bdc74dcf3d0a7e9818a9643abcaac6ed732', class: this.classNames(), id: this.componentId }, this.setChipContent(), this.effectiveVariant === 'tag' && (hAsync("button", { key: '98644f17a57514b541cd00be5c0972e589f7c44e', class: "pds-chip__close", type: "button", onClick: this.handleCloseClick, "aria-label": "Remove" }, hAsync("pds-icon", { key: '056913f77f7179db7e8f6f8b69df18c4bd98b891', icon: remove, size: this.iconSize })))));
3793
3981
  }
3794
3982
  static get style() { return pdsChipTokensCss + pdsChipCss; }
3795
3983
  static get cmpMeta() { return {
@@ -3798,6 +3986,7 @@ class PdsChip {
3798
3986
  "$members$": {
3799
3987
  "componentId": [1, "component-id"],
3800
3988
  "dot": [4],
3989
+ "icon": [1],
3801
3990
  "large": [4],
3802
3991
  "sentiment": [1],
3803
3992
  "variant": [1]
@@ -3858,7 +4047,7 @@ class PdsCopytext {
3858
4047
  return classNames.join(' ');
3859
4048
  }
3860
4049
  render() {
3861
- return (hAsync(Host, { key: '1d8bc5dd4e234f7ae3f1700d4ad58816422ff967', class: this.classNames(), id: this.componentId }, hAsync("pds-button", { key: 'f1c42d6745efe6faff34ac0e538b589e1d709e41', type: "button", variant: "unstyled", onClick: this.handleClick }, hAsync("span", { key: '2ba277f52661fe3852cf07b089b6f0b978f513f9' }, this.value), hAsync("pds-icon", { key: '5730e7ad241b5ff56733db90c3580d1751c8ec4a', icon: copy, size: "16px" }))));
4050
+ return (hAsync(Host, { key: '46c38faeba9b70d2e510a4b6af08866577936478', class: this.classNames(), id: this.componentId }, hAsync("pds-button", { key: '6e28c11a9a7a57f4c256b0283b64ec655a897f65', type: "button", variant: "unstyled", onClick: this.handleClick }, hAsync("span", { key: '6818451171f85fd6ad63f07c69871082d3fcba4e' }, this.value), hAsync("pds-icon", { key: '05e683d7b28575d924d6af482e6ce4c3cfee3f05', icon: copy, size: "16px" }))));
3862
4051
  }
3863
4052
  static get style() { return pdsCopytextCss; }
3864
4053
  static get cmpMeta() { return {
@@ -3900,7 +4089,7 @@ class PdsDivider {
3900
4089
  return classNames.join(' ');
3901
4090
  }
3902
4091
  render() {
3903
- return (hAsync(Host, { key: '320aa3a83547a773630fbb1a1d8d9e57d3f54477', id: this.componentId }, hAsync("hr", { key: '1d1b7aaf8c783ecad6a1b5ad91bd258acb21046b', class: this.classNames() })));
4092
+ return (hAsync(Host, { key: 'ee48ee45e0463abbd3cb7aa686f8d86928830ccb', id: this.componentId }, hAsync("hr", { key: '4af739f85e502a7d9bff1b3581c283cb6ee53a0e', class: this.classNames() })));
3904
4093
  }
3905
4094
  static get style() { return pdsDividerCss; }
3906
4095
  static get cmpMeta() { return {
@@ -3917,94 +4106,1789 @@ class PdsDivider {
3917
4106
  }; }
3918
4107
  }
3919
4108
 
3920
- const getName = (iconName, icon) => {
3921
- if (!iconName && icon && !isSrc(icon)) {
3922
- iconName = icon;
3923
- }
3924
- if (isStr(iconName)) {
3925
- iconName = toLower(iconName);
3926
- }
3927
- if (!isStr(iconName) || iconName.trim() === '') {
3928
- return null;
3929
- }
3930
- const invalidChars = iconName.replace(/[a-z]|-|\d/gi, '');
3931
- if (invalidChars != '') {
3932
- return null;
3933
- }
3934
- return iconName;
4109
+ /**
4110
+ * Custom positioning reference element.
4111
+ * @see https://floating-ui.com/docs/virtual-elements
4112
+ */
4113
+
4114
+ const min = Math.min;
4115
+ const max = Math.max;
4116
+ const round = Math.round;
4117
+ const createCoords = v => ({
4118
+ x: v,
4119
+ y: v
4120
+ });
4121
+ const oppositeSideMap = {
4122
+ left: 'right',
4123
+ right: 'left',
4124
+ bottom: 'top',
4125
+ top: 'bottom'
3935
4126
  };
4127
+ const oppositeAlignmentMap = {
4128
+ start: 'end',
4129
+ end: 'start'
4130
+ };
4131
+ function clamp(start, value, end) {
4132
+ return max(start, min(value, end));
4133
+ }
4134
+ function evaluate(value, param) {
4135
+ return typeof value === 'function' ? value(param) : value;
4136
+ }
4137
+ function getSide(placement) {
4138
+ return placement.split('-')[0];
4139
+ }
4140
+ function getAlignment(placement) {
4141
+ return placement.split('-')[1];
4142
+ }
4143
+ function getOppositeAxis(axis) {
4144
+ return axis === 'x' ? 'y' : 'x';
4145
+ }
4146
+ function getAxisLength(axis) {
4147
+ return axis === 'y' ? 'height' : 'width';
4148
+ }
4149
+ function getSideAxis(placement) {
4150
+ return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';
4151
+ }
4152
+ function getAlignmentAxis(placement) {
4153
+ return getOppositeAxis(getSideAxis(placement));
4154
+ }
4155
+ function getAlignmentSides(placement, rects, rtl) {
4156
+ if (rtl === void 0) {
4157
+ rtl = false;
4158
+ }
4159
+ const alignment = getAlignment(placement);
4160
+ const alignmentAxis = getAlignmentAxis(placement);
4161
+ const length = getAxisLength(alignmentAxis);
4162
+ let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';
4163
+ if (rects.reference[length] > rects.floating[length]) {
4164
+ mainAlignmentSide = getOppositePlacement(mainAlignmentSide);
4165
+ }
4166
+ return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];
4167
+ }
4168
+ function getExpandedPlacements(placement) {
4169
+ const oppositePlacement = getOppositePlacement(placement);
4170
+ return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];
4171
+ }
4172
+ function getOppositeAlignmentPlacement(placement) {
4173
+ return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);
4174
+ }
4175
+ function getSideList(side, isStart, rtl) {
4176
+ const lr = ['left', 'right'];
4177
+ const rl = ['right', 'left'];
4178
+ const tb = ['top', 'bottom'];
4179
+ const bt = ['bottom', 'top'];
4180
+ switch (side) {
4181
+ case 'top':
4182
+ case 'bottom':
4183
+ if (rtl) return isStart ? rl : lr;
4184
+ return isStart ? lr : rl;
4185
+ case 'left':
4186
+ case 'right':
4187
+ return isStart ? tb : bt;
4188
+ default:
4189
+ return [];
4190
+ }
4191
+ }
4192
+ function getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {
4193
+ const alignment = getAlignment(placement);
4194
+ let list = getSideList(getSide(placement), direction === 'start', rtl);
4195
+ if (alignment) {
4196
+ list = list.map(side => side + "-" + alignment);
4197
+ if (flipAlignment) {
4198
+ list = list.concat(list.map(getOppositeAlignmentPlacement));
4199
+ }
4200
+ }
4201
+ return list;
4202
+ }
4203
+ function getOppositePlacement(placement) {
4204
+ return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);
4205
+ }
4206
+ function expandPaddingObject(padding) {
4207
+ return {
4208
+ top: 0,
4209
+ right: 0,
4210
+ bottom: 0,
4211
+ left: 0,
4212
+ ...padding
4213
+ };
4214
+ }
4215
+ function getPaddingObject(padding) {
4216
+ return typeof padding !== 'number' ? expandPaddingObject(padding) : {
4217
+ top: padding,
4218
+ right: padding,
4219
+ bottom: padding,
4220
+ left: padding
4221
+ };
4222
+ }
4223
+ function rectToClientRect(rect) {
4224
+ const {
4225
+ x,
4226
+ y,
4227
+ width,
4228
+ height
4229
+ } = rect;
4230
+ return {
4231
+ width,
4232
+ height,
4233
+ top: y,
4234
+ left: x,
4235
+ right: x + width,
4236
+ bottom: y + height,
4237
+ x,
4238
+ y
4239
+ };
4240
+ }
4241
+
4242
+ function computeCoordsFromPlacement(_ref, placement, rtl) {
4243
+ let {
4244
+ reference,
4245
+ floating
4246
+ } = _ref;
4247
+ const sideAxis = getSideAxis(placement);
4248
+ const alignmentAxis = getAlignmentAxis(placement);
4249
+ const alignLength = getAxisLength(alignmentAxis);
4250
+ const side = getSide(placement);
4251
+ const isVertical = sideAxis === 'y';
4252
+ const commonX = reference.x + reference.width / 2 - floating.width / 2;
4253
+ const commonY = reference.y + reference.height / 2 - floating.height / 2;
4254
+ const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;
4255
+ let coords;
4256
+ switch (side) {
4257
+ case 'top':
4258
+ coords = {
4259
+ x: commonX,
4260
+ y: reference.y - floating.height
4261
+ };
4262
+ break;
4263
+ case 'bottom':
4264
+ coords = {
4265
+ x: commonX,
4266
+ y: reference.y + reference.height
4267
+ };
4268
+ break;
4269
+ case 'right':
4270
+ coords = {
4271
+ x: reference.x + reference.width,
4272
+ y: commonY
4273
+ };
4274
+ break;
4275
+ case 'left':
4276
+ coords = {
4277
+ x: reference.x - floating.width,
4278
+ y: commonY
4279
+ };
4280
+ break;
4281
+ default:
4282
+ coords = {
4283
+ x: reference.x,
4284
+ y: reference.y
4285
+ };
4286
+ }
4287
+ switch (getAlignment(placement)) {
4288
+ case 'start':
4289
+ coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);
4290
+ break;
4291
+ case 'end':
4292
+ coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);
4293
+ break;
4294
+ }
4295
+ return coords;
4296
+ }
4297
+
3936
4298
  /**
3937
- * Returns `true` if the document or host element
3938
- * has a `dir` set to `rtl`. The host value will always
3939
- * take priority over the root document value.
4299
+ * Computes the `x` and `y` coordinates that will place the floating element
4300
+ * next to a given reference element.
4301
+ *
4302
+ * This export does not have any `platform` interface logic. You will need to
4303
+ * write one for the platform you are using Floating UI with.
3940
4304
  */
3941
- const isRTL = (hostEl) => {
3942
- if (hostEl) {
3943
- if (hostEl.dir !== '') {
3944
- return hostEl.dir.toLowerCase() === 'rtl';
4305
+ const computePosition$1 = async (reference, floating, config) => {
4306
+ const {
4307
+ placement = 'bottom',
4308
+ strategy = 'absolute',
4309
+ middleware = [],
4310
+ platform
4311
+ } = config;
4312
+ const validMiddleware = middleware.filter(Boolean);
4313
+ const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));
4314
+ let rects = await platform.getElementRects({
4315
+ reference,
4316
+ floating,
4317
+ strategy
4318
+ });
4319
+ let {
4320
+ x,
4321
+ y
4322
+ } = computeCoordsFromPlacement(rects, placement, rtl);
4323
+ let statefulPlacement = placement;
4324
+ let middlewareData = {};
4325
+ let resetCount = 0;
4326
+ for (let i = 0; i < validMiddleware.length; i++) {
4327
+ const {
4328
+ name,
4329
+ fn
4330
+ } = validMiddleware[i];
4331
+ const {
4332
+ x: nextX,
4333
+ y: nextY,
4334
+ data,
4335
+ reset
4336
+ } = await fn({
4337
+ x,
4338
+ y,
4339
+ initialPlacement: placement,
4340
+ placement: statefulPlacement,
4341
+ strategy,
4342
+ middlewareData,
4343
+ rects,
4344
+ platform,
4345
+ elements: {
4346
+ reference,
4347
+ floating
4348
+ }
4349
+ });
4350
+ x = nextX != null ? nextX : x;
4351
+ y = nextY != null ? nextY : y;
4352
+ middlewareData = {
4353
+ ...middlewareData,
4354
+ [name]: {
4355
+ ...middlewareData[name],
4356
+ ...data
4357
+ }
4358
+ };
4359
+ if (reset && resetCount <= 50) {
4360
+ resetCount++;
4361
+ if (typeof reset === 'object') {
4362
+ if (reset.placement) {
4363
+ statefulPlacement = reset.placement;
3945
4364
  }
4365
+ if (reset.rects) {
4366
+ rects = reset.rects === true ? await platform.getElementRects({
4367
+ reference,
4368
+ floating,
4369
+ strategy
4370
+ }) : reset.rects;
4371
+ }
4372
+ ({
4373
+ x,
4374
+ y
4375
+ } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));
4376
+ }
4377
+ i = -1;
3946
4378
  }
3947
- return (document === null || document === void 0 ? void 0 : document.dir.toLowerCase()) === 'rtl';
4379
+ }
4380
+ return {
4381
+ x,
4382
+ y,
4383
+ placement: statefulPlacement,
4384
+ strategy,
4385
+ middlewareData
4386
+ };
3948
4387
  };
3949
- const isSrc = (str) => str.length > 0 && /(\/|\.)/.test(str);
3950
- const isStr = (val) => typeof val === 'string'; // eslint-disable-line @typescript-eslint/no-explicit-any
3951
- const toLower = (val) => val.toLowerCase();
4388
+
3952
4389
  /**
3953
- * Elements inside of web components sometimes need to inherit global attributes
3954
- * set on the host. For example, the inner input in `pds-input` should inherit
3955
- * the `title` attribute that developers set directly on `pds-input`. This
3956
- * helper function should be called in componentWillLoad and assigned to a variable
3957
- * that is later used in the render function.
3958
- *
3959
- * This does not need to be reactive as changing attributes on the host element
3960
- * does not trigger a re-render.
4390
+ * Resolves with an object of overflow side offsets that determine how much the
4391
+ * element is overflowing a given clipping boundary on each side.
4392
+ * - positive = overflowing the boundary by that number of pixels
4393
+ * - negative = how many pixels left before it will overflow
4394
+ * - 0 = lies flush with the boundary
4395
+ * @see https://floating-ui.com/docs/detectOverflow
3961
4396
  */
3962
- const inheritAttributes = (el, attributes = []) => {
3963
- const attributeObject = {}; // eslint-disable-line @typescript-eslint/no-explicit-any
3964
- attributes.forEach(attr => {
3965
- if (el.hasAttribute(attr)) {
3966
- const value = el.getAttribute(attr);
3967
- if (value !== null) {
3968
- attributeObject[attr] = el.getAttribute(attr);
4397
+ async function detectOverflow(state, options) {
4398
+ var _await$platform$isEle;
4399
+ if (options === void 0) {
4400
+ options = {};
4401
+ }
4402
+ const {
4403
+ x,
4404
+ y,
4405
+ platform,
4406
+ rects,
4407
+ elements,
4408
+ strategy
4409
+ } = state;
4410
+ const {
4411
+ boundary = 'clippingAncestors',
4412
+ rootBoundary = 'viewport',
4413
+ elementContext = 'floating',
4414
+ altBoundary = false,
4415
+ padding = 0
4416
+ } = evaluate(options, state);
4417
+ const paddingObject = getPaddingObject(padding);
4418
+ const altContext = elementContext === 'floating' ? 'reference' : 'floating';
4419
+ const element = elements[altBoundary ? altContext : elementContext];
4420
+ const clippingClientRect = rectToClientRect(await platform.getClippingRect({
4421
+ element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),
4422
+ boundary,
4423
+ rootBoundary,
4424
+ strategy
4425
+ }));
4426
+ const rect = elementContext === 'floating' ? {
4427
+ x,
4428
+ y,
4429
+ width: rects.floating.width,
4430
+ height: rects.floating.height
4431
+ } : rects.reference;
4432
+ const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));
4433
+ const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {
4434
+ x: 1,
4435
+ y: 1
4436
+ } : {
4437
+ x: 1,
4438
+ y: 1
4439
+ };
4440
+ const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({
4441
+ elements,
4442
+ rect,
4443
+ offsetParent,
4444
+ strategy
4445
+ }) : rect);
4446
+ return {
4447
+ top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,
4448
+ bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,
4449
+ left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,
4450
+ right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x
4451
+ };
4452
+ }
4453
+
4454
+ /**
4455
+ * Optimizes the visibility of the floating element by flipping the `placement`
4456
+ * in order to keep it in view when the preferred placement(s) will overflow the
4457
+ * clipping boundary. Alternative to `autoPlacement`.
4458
+ * @see https://floating-ui.com/docs/flip
4459
+ */
4460
+ const flip$1 = function (options) {
4461
+ if (options === void 0) {
4462
+ options = {};
4463
+ }
4464
+ return {
4465
+ name: 'flip',
4466
+ options,
4467
+ async fn(state) {
4468
+ var _middlewareData$arrow, _middlewareData$flip;
4469
+ const {
4470
+ placement,
4471
+ middlewareData,
4472
+ rects,
4473
+ initialPlacement,
4474
+ platform,
4475
+ elements
4476
+ } = state;
4477
+ const {
4478
+ mainAxis: checkMainAxis = true,
4479
+ crossAxis: checkCrossAxis = true,
4480
+ fallbackPlacements: specifiedFallbackPlacements,
4481
+ fallbackStrategy = 'bestFit',
4482
+ fallbackAxisSideDirection = 'none',
4483
+ flipAlignment = true,
4484
+ ...detectOverflowOptions
4485
+ } = evaluate(options, state);
4486
+
4487
+ // If a reset by the arrow was caused due to an alignment offset being
4488
+ // added, we should skip any logic now since `flip()` has already done its
4489
+ // work.
4490
+ // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643
4491
+ if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
4492
+ return {};
4493
+ }
4494
+ const side = getSide(placement);
4495
+ const initialSideAxis = getSideAxis(initialPlacement);
4496
+ const isBasePlacement = getSide(initialPlacement) === initialPlacement;
4497
+ const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));
4498
+ const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));
4499
+ const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';
4500
+ if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {
4501
+ fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));
4502
+ }
4503
+ const placements = [initialPlacement, ...fallbackPlacements];
4504
+ const overflow = await detectOverflow(state, detectOverflowOptions);
4505
+ const overflows = [];
4506
+ let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];
4507
+ if (checkMainAxis) {
4508
+ overflows.push(overflow[side]);
4509
+ }
4510
+ if (checkCrossAxis) {
4511
+ const sides = getAlignmentSides(placement, rects, rtl);
4512
+ overflows.push(overflow[sides[0]], overflow[sides[1]]);
4513
+ }
4514
+ overflowsData = [...overflowsData, {
4515
+ placement,
4516
+ overflows
4517
+ }];
4518
+
4519
+ // One or more sides is overflowing.
4520
+ if (!overflows.every(side => side <= 0)) {
4521
+ var _middlewareData$flip2, _overflowsData$filter;
4522
+ const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
4523
+ const nextPlacement = placements[nextIndex];
4524
+ if (nextPlacement) {
4525
+ var _overflowsData$;
4526
+ const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;
4527
+ const hasInitialMainAxisOverflow = ((_overflowsData$ = overflowsData[0]) == null ? void 0 : _overflowsData$.overflows[0]) > 0;
4528
+ if (!ignoreCrossAxisOverflow || hasInitialMainAxisOverflow) {
4529
+ // Try next placement and re-run the lifecycle.
4530
+ return {
4531
+ data: {
4532
+ index: nextIndex,
4533
+ overflows: overflowsData
4534
+ },
4535
+ reset: {
4536
+ placement: nextPlacement
4537
+ }
4538
+ };
4539
+ }
4540
+ }
4541
+
4542
+ // First, find the candidates that fit on the mainAxis side of overflow,
4543
+ // then find the placement that fits the best on the main crossAxis side.
4544
+ let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;
4545
+
4546
+ // Otherwise fallback.
4547
+ if (!resetPlacement) {
4548
+ switch (fallbackStrategy) {
4549
+ case 'bestFit':
4550
+ {
4551
+ var _overflowsData$filter2;
4552
+ const placement = (_overflowsData$filter2 = overflowsData.filter(d => {
4553
+ if (hasFallbackAxisSideDirection) {
4554
+ const currentSideAxis = getSideAxis(d.placement);
4555
+ return currentSideAxis === initialSideAxis ||
4556
+ // Create a bias to the `y` side axis due to horizontal
4557
+ // reading directions favoring greater width.
4558
+ currentSideAxis === 'y';
4559
+ }
4560
+ return true;
4561
+ }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];
4562
+ if (placement) {
4563
+ resetPlacement = placement;
4564
+ }
4565
+ break;
4566
+ }
4567
+ case 'initialPlacement':
4568
+ resetPlacement = initialPlacement;
4569
+ break;
4570
+ }
4571
+ }
4572
+ if (placement !== resetPlacement) {
4573
+ return {
4574
+ reset: {
4575
+ placement: resetPlacement
3969
4576
  }
3970
- el.removeAttribute(attr);
4577
+ };
3971
4578
  }
3972
- });
3973
- return attributeObject;
4579
+ }
4580
+ return {};
4581
+ }
4582
+ };
3974
4583
  };
4584
+
4585
+ // For type backwards-compatibility, the `OffsetOptions` type was also
4586
+ // Derivable.
4587
+
4588
+ async function convertValueToCoords(state, options) {
4589
+ const {
4590
+ placement,
4591
+ platform,
4592
+ elements
4593
+ } = state;
4594
+ const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));
4595
+ const side = getSide(placement);
4596
+ const alignment = getAlignment(placement);
4597
+ const isVertical = getSideAxis(placement) === 'y';
4598
+ const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;
4599
+ const crossAxisMulti = rtl && isVertical ? -1 : 1;
4600
+ const rawValue = evaluate(options, state);
4601
+
4602
+ // eslint-disable-next-line prefer-const
4603
+ let {
4604
+ mainAxis,
4605
+ crossAxis,
4606
+ alignmentAxis
4607
+ } = typeof rawValue === 'number' ? {
4608
+ mainAxis: rawValue,
4609
+ crossAxis: 0,
4610
+ alignmentAxis: null
4611
+ } : {
4612
+ mainAxis: rawValue.mainAxis || 0,
4613
+ crossAxis: rawValue.crossAxis || 0,
4614
+ alignmentAxis: rawValue.alignmentAxis
4615
+ };
4616
+ if (alignment && typeof alignmentAxis === 'number') {
4617
+ crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;
4618
+ }
4619
+ return isVertical ? {
4620
+ x: crossAxis * crossAxisMulti,
4621
+ y: mainAxis * mainAxisMulti
4622
+ } : {
4623
+ x: mainAxis * mainAxisMulti,
4624
+ y: crossAxis * crossAxisMulti
4625
+ };
4626
+ }
4627
+
3975
4628
  /**
3976
- * Determines if an icon should be flipped when RTL is enabled
3977
- * @param iconName - The name of the icon to check
3978
- * @param hostEl - Optional host element to check for RTL direction
3979
- * @returns {boolean} - True if the icon should be flipped in RTL mode, false otherwise
4629
+ * Modifies the placement by translating the floating element along the
4630
+ * specified axes.
4631
+ * A number (shorthand for `mainAxis` or distance), or an axes configuration
4632
+ * object may be passed.
4633
+ * @see https://floating-ui.com/docs/offset
3980
4634
  */
3981
- const shouldRtlFlipIcon = (iconName, hostEl) => {
3982
- // First check if we're in RTL mode
3983
- const rtlEnabled = isRTL(hostEl);
3984
- // Only flip if we're in RTL mode and the icon is in the flip list
3985
- return rtlEnabled && ICONS_TO_FLIP.includes(iconName);
4635
+ const offset$1 = function (options) {
4636
+ if (options === void 0) {
4637
+ options = 0;
4638
+ }
4639
+ return {
4640
+ name: 'offset',
4641
+ options,
4642
+ async fn(state) {
4643
+ var _middlewareData$offse, _middlewareData$arrow;
4644
+ const {
4645
+ x,
4646
+ y,
4647
+ placement,
4648
+ middlewareData
4649
+ } = state;
4650
+ const diffCoords = await convertValueToCoords(state, options);
4651
+
4652
+ // If the placement is the same and the arrow caused an alignment offset
4653
+ // then we don't need to change the positioning coordinates.
4654
+ if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
4655
+ return {};
4656
+ }
4657
+ return {
4658
+ x: x + diffCoords.x,
4659
+ y: y + diffCoords.y,
4660
+ data: {
4661
+ ...diffCoords,
4662
+ placement
4663
+ }
4664
+ };
4665
+ }
4666
+ };
3986
4667
  };
4668
+
3987
4669
  /**
3988
- * Array of available icon names
4670
+ * Optimizes the visibility of the floating element by shifting it in order to
4671
+ * keep it in view when it will overflow the clipping boundary.
4672
+ * @see https://floating-ui.com/docs/shift
3989
4673
  */
3990
- const ICONS_TO_FLIP = [
3991
- 'align-horizontal-bottom',
3992
- 'align-horizontal-center',
3993
- 'align-horizontal-top',
3994
- 'align-left',
3995
- 'align-right',
3996
- 'align-vertical-left',
3997
- 'align-vertical-right',
3998
- 'arrow-corner',
3999
- 'arrow-left',
4000
- 'arrow-right',
4001
- 'calendar-schedule',
4002
- 'caret-left',
4003
- 'caret-right',
4004
- 'cart',
4005
- 'cart-add',
4006
- 'comment',
4007
- 'comment-no',
4674
+ const shift$1 = function (options) {
4675
+ if (options === void 0) {
4676
+ options = {};
4677
+ }
4678
+ return {
4679
+ name: 'shift',
4680
+ options,
4681
+ async fn(state) {
4682
+ const {
4683
+ x,
4684
+ y,
4685
+ placement
4686
+ } = state;
4687
+ const {
4688
+ mainAxis: checkMainAxis = true,
4689
+ crossAxis: checkCrossAxis = false,
4690
+ limiter = {
4691
+ fn: _ref => {
4692
+ let {
4693
+ x,
4694
+ y
4695
+ } = _ref;
4696
+ return {
4697
+ x,
4698
+ y
4699
+ };
4700
+ }
4701
+ },
4702
+ ...detectOverflowOptions
4703
+ } = evaluate(options, state);
4704
+ const coords = {
4705
+ x,
4706
+ y
4707
+ };
4708
+ const overflow = await detectOverflow(state, detectOverflowOptions);
4709
+ const crossAxis = getSideAxis(getSide(placement));
4710
+ const mainAxis = getOppositeAxis(crossAxis);
4711
+ let mainAxisCoord = coords[mainAxis];
4712
+ let crossAxisCoord = coords[crossAxis];
4713
+ if (checkMainAxis) {
4714
+ const minSide = mainAxis === 'y' ? 'top' : 'left';
4715
+ const maxSide = mainAxis === 'y' ? 'bottom' : 'right';
4716
+ const min = mainAxisCoord + overflow[minSide];
4717
+ const max = mainAxisCoord - overflow[maxSide];
4718
+ mainAxisCoord = clamp(min, mainAxisCoord, max);
4719
+ }
4720
+ if (checkCrossAxis) {
4721
+ const minSide = crossAxis === 'y' ? 'top' : 'left';
4722
+ const maxSide = crossAxis === 'y' ? 'bottom' : 'right';
4723
+ const min = crossAxisCoord + overflow[minSide];
4724
+ const max = crossAxisCoord - overflow[maxSide];
4725
+ crossAxisCoord = clamp(min, crossAxisCoord, max);
4726
+ }
4727
+ const limitedCoords = limiter.fn({
4728
+ ...state,
4729
+ [mainAxis]: mainAxisCoord,
4730
+ [crossAxis]: crossAxisCoord
4731
+ });
4732
+ return {
4733
+ ...limitedCoords,
4734
+ data: {
4735
+ x: limitedCoords.x - x,
4736
+ y: limitedCoords.y - y,
4737
+ enabled: {
4738
+ [mainAxis]: checkMainAxis,
4739
+ [crossAxis]: checkCrossAxis
4740
+ }
4741
+ }
4742
+ };
4743
+ }
4744
+ };
4745
+ };
4746
+
4747
+ function hasWindow() {
4748
+ return typeof window !== 'undefined';
4749
+ }
4750
+ function getNodeName(node) {
4751
+ if (isNode(node)) {
4752
+ return (node.nodeName || '').toLowerCase();
4753
+ }
4754
+ // Mocked nodes in testing environments may not be instances of Node. By
4755
+ // returning `#document` an infinite loop won't occur.
4756
+ // https://github.com/floating-ui/floating-ui/issues/2317
4757
+ return '#document';
4758
+ }
4759
+ function getWindow(node) {
4760
+ var _node$ownerDocument;
4761
+ return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;
4762
+ }
4763
+ function getDocumentElement(node) {
4764
+ var _ref;
4765
+ return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;
4766
+ }
4767
+ function isNode(value) {
4768
+ if (!hasWindow()) {
4769
+ return false;
4770
+ }
4771
+ return value instanceof Node || value instanceof getWindow(value).Node;
4772
+ }
4773
+ function isElement(value) {
4774
+ if (!hasWindow()) {
4775
+ return false;
4776
+ }
4777
+ return value instanceof Element || value instanceof getWindow(value).Element;
4778
+ }
4779
+ function isHTMLElement(value) {
4780
+ if (!hasWindow()) {
4781
+ return false;
4782
+ }
4783
+ return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;
4784
+ }
4785
+ function isShadowRoot(value) {
4786
+ if (!hasWindow() || typeof ShadowRoot === 'undefined') {
4787
+ return false;
4788
+ }
4789
+ return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;
4790
+ }
4791
+ function isOverflowElement(element) {
4792
+ const {
4793
+ overflow,
4794
+ overflowX,
4795
+ overflowY,
4796
+ display
4797
+ } = getComputedStyle$1(element);
4798
+ return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);
4799
+ }
4800
+ function isTableElement(element) {
4801
+ return ['table', 'td', 'th'].includes(getNodeName(element));
4802
+ }
4803
+ function isTopLayer(element) {
4804
+ return [':popover-open', ':modal'].some(selector => {
4805
+ try {
4806
+ return element.matches(selector);
4807
+ } catch (e) {
4808
+ return false;
4809
+ }
4810
+ });
4811
+ }
4812
+ function isContainingBlock(elementOrCss) {
4813
+ const webkit = isWebKit();
4814
+ const css = isElement(elementOrCss) ? getComputedStyle$1(elementOrCss) : elementOrCss;
4815
+
4816
+ // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
4817
+ // https://drafts.csswg.org/css-transforms-2/#individual-transforms
4818
+ return ['transform', 'translate', 'scale', 'rotate', 'perspective'].some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));
4819
+ }
4820
+ function getContainingBlock(element) {
4821
+ let currentNode = getParentNode(element);
4822
+ while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {
4823
+ if (isContainingBlock(currentNode)) {
4824
+ return currentNode;
4825
+ } else if (isTopLayer(currentNode)) {
4826
+ return null;
4827
+ }
4828
+ currentNode = getParentNode(currentNode);
4829
+ }
4830
+ return null;
4831
+ }
4832
+ function isWebKit() {
4833
+ if (typeof CSS === 'undefined' || !CSS.supports) return false;
4834
+ return CSS.supports('-webkit-backdrop-filter', 'none');
4835
+ }
4836
+ function isLastTraversableNode(node) {
4837
+ return ['html', 'body', '#document'].includes(getNodeName(node));
4838
+ }
4839
+ function getComputedStyle$1(element) {
4840
+ return getWindow(element).getComputedStyle(element);
4841
+ }
4842
+ function getNodeScroll(element) {
4843
+ if (isElement(element)) {
4844
+ return {
4845
+ scrollLeft: element.scrollLeft,
4846
+ scrollTop: element.scrollTop
4847
+ };
4848
+ }
4849
+ return {
4850
+ scrollLeft: element.scrollX,
4851
+ scrollTop: element.scrollY
4852
+ };
4853
+ }
4854
+ function getParentNode(node) {
4855
+ if (getNodeName(node) === 'html') {
4856
+ return node;
4857
+ }
4858
+ const result =
4859
+ // Step into the shadow DOM of the parent of a slotted node.
4860
+ node.assignedSlot ||
4861
+ // DOM Element detected.
4862
+ node.parentNode ||
4863
+ // ShadowRoot detected.
4864
+ isShadowRoot(node) && node.host ||
4865
+ // Fallback.
4866
+ getDocumentElement(node);
4867
+ return isShadowRoot(result) ? result.host : result;
4868
+ }
4869
+ function getNearestOverflowAncestor(node) {
4870
+ const parentNode = getParentNode(node);
4871
+ if (isLastTraversableNode(parentNode)) {
4872
+ return node.ownerDocument ? node.ownerDocument.body : node.body;
4873
+ }
4874
+ if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {
4875
+ return parentNode;
4876
+ }
4877
+ return getNearestOverflowAncestor(parentNode);
4878
+ }
4879
+ function getOverflowAncestors(node, list, traverseIframes) {
4880
+ var _node$ownerDocument2;
4881
+ if (list === void 0) {
4882
+ list = [];
4883
+ }
4884
+ const scrollableAncestor = getNearestOverflowAncestor(node);
4885
+ const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);
4886
+ const win = getWindow(scrollableAncestor);
4887
+ if (isBody) {
4888
+ return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], []);
4889
+ }
4890
+ return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, []));
4891
+ }
4892
+ function getFrameElement(win) {
4893
+ return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;
4894
+ }
4895
+
4896
+ function getCssDimensions(element) {
4897
+ const css = getComputedStyle$1(element);
4898
+ // In testing environments, the `width` and `height` properties are empty
4899
+ // strings for SVG elements, returning NaN. Fallback to `0` in this case.
4900
+ let width = parseFloat(css.width) || 0;
4901
+ let height = parseFloat(css.height) || 0;
4902
+ const hasOffset = isHTMLElement(element);
4903
+ const offsetWidth = hasOffset ? element.offsetWidth : width;
4904
+ const offsetHeight = hasOffset ? element.offsetHeight : height;
4905
+ const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;
4906
+ if (shouldFallback) {
4907
+ width = offsetWidth;
4908
+ height = offsetHeight;
4909
+ }
4910
+ return {
4911
+ width,
4912
+ height,
4913
+ $: shouldFallback
4914
+ };
4915
+ }
4916
+
4917
+ function unwrapElement(element) {
4918
+ return !isElement(element) ? element.contextElement : element;
4919
+ }
4920
+
4921
+ function getScale(element) {
4922
+ const domElement = unwrapElement(element);
4923
+ if (!isHTMLElement(domElement)) {
4924
+ return createCoords(1);
4925
+ }
4926
+ const rect = domElement.getBoundingClientRect();
4927
+ const {
4928
+ width,
4929
+ height,
4930
+ $
4931
+ } = getCssDimensions(domElement);
4932
+ let x = ($ ? round(rect.width) : rect.width) / width;
4933
+ let y = ($ ? round(rect.height) : rect.height) / height;
4934
+
4935
+ // 0, NaN, or Infinity should always fallback to 1.
4936
+
4937
+ if (!x || !Number.isFinite(x)) {
4938
+ x = 1;
4939
+ }
4940
+ if (!y || !Number.isFinite(y)) {
4941
+ y = 1;
4942
+ }
4943
+ return {
4944
+ x,
4945
+ y
4946
+ };
4947
+ }
4948
+
4949
+ const noOffsets = /*#__PURE__*/createCoords(0);
4950
+ function getVisualOffsets(element) {
4951
+ const win = getWindow(element);
4952
+ if (!isWebKit() || !win.visualViewport) {
4953
+ return noOffsets;
4954
+ }
4955
+ return {
4956
+ x: win.visualViewport.offsetLeft,
4957
+ y: win.visualViewport.offsetTop
4958
+ };
4959
+ }
4960
+ function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {
4961
+ if (isFixed === void 0) {
4962
+ isFixed = false;
4963
+ }
4964
+ if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {
4965
+ return false;
4966
+ }
4967
+ return isFixed;
4968
+ }
4969
+
4970
+ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {
4971
+ if (includeScale === void 0) {
4972
+ includeScale = false;
4973
+ }
4974
+ if (isFixedStrategy === void 0) {
4975
+ isFixedStrategy = false;
4976
+ }
4977
+ const clientRect = element.getBoundingClientRect();
4978
+ const domElement = unwrapElement(element);
4979
+ let scale = createCoords(1);
4980
+ if (includeScale) {
4981
+ if (offsetParent) {
4982
+ if (isElement(offsetParent)) {
4983
+ scale = getScale(offsetParent);
4984
+ }
4985
+ } else {
4986
+ scale = getScale(element);
4987
+ }
4988
+ }
4989
+ const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);
4990
+ let x = (clientRect.left + visualOffsets.x) / scale.x;
4991
+ let y = (clientRect.top + visualOffsets.y) / scale.y;
4992
+ let width = clientRect.width / scale.x;
4993
+ let height = clientRect.height / scale.y;
4994
+ if (domElement) {
4995
+ const win = getWindow(domElement);
4996
+ const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;
4997
+ let currentWin = win;
4998
+ let currentIFrame = getFrameElement(currentWin);
4999
+ while (currentIFrame && offsetParent && offsetWin !== currentWin) {
5000
+ const iframeScale = getScale(currentIFrame);
5001
+ const iframeRect = currentIFrame.getBoundingClientRect();
5002
+ const css = getComputedStyle$1(currentIFrame);
5003
+ const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;
5004
+ const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;
5005
+ x *= iframeScale.x;
5006
+ y *= iframeScale.y;
5007
+ width *= iframeScale.x;
5008
+ height *= iframeScale.y;
5009
+ x += left;
5010
+ y += top;
5011
+ currentWin = getWindow(currentIFrame);
5012
+ currentIFrame = getFrameElement(currentWin);
5013
+ }
5014
+ }
5015
+ return rectToClientRect({
5016
+ width,
5017
+ height,
5018
+ x,
5019
+ y
5020
+ });
5021
+ }
5022
+
5023
+ // If <html> has a CSS width greater than the viewport, then this will be
5024
+ // incorrect for RTL.
5025
+ function getWindowScrollBarX(element, rect) {
5026
+ const leftScroll = getNodeScroll(element).scrollLeft;
5027
+ if (!rect) {
5028
+ return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;
5029
+ }
5030
+ return rect.left + leftScroll;
5031
+ }
5032
+
5033
+ function getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {
5034
+ if (ignoreScrollbarX === void 0) {
5035
+ ignoreScrollbarX = false;
5036
+ }
5037
+ const htmlRect = documentElement.getBoundingClientRect();
5038
+ const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :
5039
+ // RTL <body> scrollbar.
5040
+ getWindowScrollBarX(documentElement, htmlRect));
5041
+ const y = htmlRect.top + scroll.scrollTop;
5042
+ return {
5043
+ x,
5044
+ y
5045
+ };
5046
+ }
5047
+
5048
+ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
5049
+ let {
5050
+ elements,
5051
+ rect,
5052
+ offsetParent,
5053
+ strategy
5054
+ } = _ref;
5055
+ const isFixed = strategy === 'fixed';
5056
+ const documentElement = getDocumentElement(offsetParent);
5057
+ const topLayer = elements ? isTopLayer(elements.floating) : false;
5058
+ if (offsetParent === documentElement || topLayer && isFixed) {
5059
+ return rect;
5060
+ }
5061
+ let scroll = {
5062
+ scrollLeft: 0,
5063
+ scrollTop: 0
5064
+ };
5065
+ let scale = createCoords(1);
5066
+ const offsets = createCoords(0);
5067
+ const isOffsetParentAnElement = isHTMLElement(offsetParent);
5068
+ if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
5069
+ if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {
5070
+ scroll = getNodeScroll(offsetParent);
5071
+ }
5072
+ if (isHTMLElement(offsetParent)) {
5073
+ const offsetRect = getBoundingClientRect(offsetParent);
5074
+ scale = getScale(offsetParent);
5075
+ offsets.x = offsetRect.x + offsetParent.clientLeft;
5076
+ offsets.y = offsetRect.y + offsetParent.clientTop;
5077
+ }
5078
+ }
5079
+ const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);
5080
+ return {
5081
+ width: rect.width * scale.x,
5082
+ height: rect.height * scale.y,
5083
+ x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,
5084
+ y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y
5085
+ };
5086
+ }
5087
+
5088
+ function getClientRects(element) {
5089
+ return Array.from(element.getClientRects());
5090
+ }
5091
+
5092
+ // Gets the entire size of the scrollable document area, even extending outside
5093
+ // of the `<html>` and `<body>` rect bounds if horizontally scrollable.
5094
+ function getDocumentRect(element) {
5095
+ const html = getDocumentElement(element);
5096
+ const scroll = getNodeScroll(element);
5097
+ const body = element.ownerDocument.body;
5098
+ const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);
5099
+ const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);
5100
+ let x = -scroll.scrollLeft + getWindowScrollBarX(element);
5101
+ const y = -scroll.scrollTop;
5102
+ if (getComputedStyle$1(body).direction === 'rtl') {
5103
+ x += max(html.clientWidth, body.clientWidth) - width;
5104
+ }
5105
+ return {
5106
+ width,
5107
+ height,
5108
+ x,
5109
+ y
5110
+ };
5111
+ }
5112
+
5113
+ function getViewportRect(element, strategy) {
5114
+ const win = getWindow(element);
5115
+ const html = getDocumentElement(element);
5116
+ const visualViewport = win.visualViewport;
5117
+ let width = html.clientWidth;
5118
+ let height = html.clientHeight;
5119
+ let x = 0;
5120
+ let y = 0;
5121
+ if (visualViewport) {
5122
+ width = visualViewport.width;
5123
+ height = visualViewport.height;
5124
+ const visualViewportBased = isWebKit();
5125
+ if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {
5126
+ x = visualViewport.offsetLeft;
5127
+ y = visualViewport.offsetTop;
5128
+ }
5129
+ }
5130
+ return {
5131
+ width,
5132
+ height,
5133
+ x,
5134
+ y
5135
+ };
5136
+ }
5137
+
5138
+ // Returns the inner client rect, subtracting scrollbars if present.
5139
+ function getInnerBoundingClientRect(element, strategy) {
5140
+ const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');
5141
+ const top = clientRect.top + element.clientTop;
5142
+ const left = clientRect.left + element.clientLeft;
5143
+ const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);
5144
+ const width = element.clientWidth * scale.x;
5145
+ const height = element.clientHeight * scale.y;
5146
+ const x = left * scale.x;
5147
+ const y = top * scale.y;
5148
+ return {
5149
+ width,
5150
+ height,
5151
+ x,
5152
+ y
5153
+ };
5154
+ }
5155
+ function getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {
5156
+ let rect;
5157
+ if (clippingAncestor === 'viewport') {
5158
+ rect = getViewportRect(element, strategy);
5159
+ } else if (clippingAncestor === 'document') {
5160
+ rect = getDocumentRect(getDocumentElement(element));
5161
+ } else if (isElement(clippingAncestor)) {
5162
+ rect = getInnerBoundingClientRect(clippingAncestor, strategy);
5163
+ } else {
5164
+ const visualOffsets = getVisualOffsets(element);
5165
+ rect = {
5166
+ x: clippingAncestor.x - visualOffsets.x,
5167
+ y: clippingAncestor.y - visualOffsets.y,
5168
+ width: clippingAncestor.width,
5169
+ height: clippingAncestor.height
5170
+ };
5171
+ }
5172
+ return rectToClientRect(rect);
5173
+ }
5174
+ function hasFixedPositionAncestor(element, stopNode) {
5175
+ const parentNode = getParentNode(element);
5176
+ if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {
5177
+ return false;
5178
+ }
5179
+ return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);
5180
+ }
5181
+
5182
+ // A "clipping ancestor" is an `overflow` element with the characteristic of
5183
+ // clipping (or hiding) child elements. This returns all clipping ancestors
5184
+ // of the given element up the tree.
5185
+ function getClippingElementAncestors(element, cache) {
5186
+ const cachedResult = cache.get(element);
5187
+ if (cachedResult) {
5188
+ return cachedResult;
5189
+ }
5190
+ let result = getOverflowAncestors(element, []).filter(el => isElement(el) && getNodeName(el) !== 'body');
5191
+ let currentContainingBlockComputedStyle = null;
5192
+ const elementIsFixed = getComputedStyle$1(element).position === 'fixed';
5193
+ let currentNode = elementIsFixed ? getParentNode(element) : element;
5194
+
5195
+ // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
5196
+ while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {
5197
+ const computedStyle = getComputedStyle$1(currentNode);
5198
+ const currentNodeIsContaining = isContainingBlock(currentNode);
5199
+ if (!currentNodeIsContaining && computedStyle.position === 'fixed') {
5200
+ currentContainingBlockComputedStyle = null;
5201
+ }
5202
+ const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
5203
+ if (shouldDropCurrentNode) {
5204
+ // Drop non-containing blocks.
5205
+ result = result.filter(ancestor => ancestor !== currentNode);
5206
+ } else {
5207
+ // Record last containing block for next iteration.
5208
+ currentContainingBlockComputedStyle = computedStyle;
5209
+ }
5210
+ currentNode = getParentNode(currentNode);
5211
+ }
5212
+ cache.set(element, result);
5213
+ return result;
5214
+ }
5215
+
5216
+ // Gets the maximum area that the element is visible in due to any number of
5217
+ // clipping ancestors.
5218
+ function getClippingRect(_ref) {
5219
+ let {
5220
+ element,
5221
+ boundary,
5222
+ rootBoundary,
5223
+ strategy
5224
+ } = _ref;
5225
+ const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);
5226
+ const clippingAncestors = [...elementClippingAncestors, rootBoundary];
5227
+ const firstClippingAncestor = clippingAncestors[0];
5228
+ const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {
5229
+ const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);
5230
+ accRect.top = max(rect.top, accRect.top);
5231
+ accRect.right = min(rect.right, accRect.right);
5232
+ accRect.bottom = min(rect.bottom, accRect.bottom);
5233
+ accRect.left = max(rect.left, accRect.left);
5234
+ return accRect;
5235
+ }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));
5236
+ return {
5237
+ width: clippingRect.right - clippingRect.left,
5238
+ height: clippingRect.bottom - clippingRect.top,
5239
+ x: clippingRect.left,
5240
+ y: clippingRect.top
5241
+ };
5242
+ }
5243
+
5244
+ function getDimensions(element) {
5245
+ const {
5246
+ width,
5247
+ height
5248
+ } = getCssDimensions(element);
5249
+ return {
5250
+ width,
5251
+ height
5252
+ };
5253
+ }
5254
+
5255
+ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
5256
+ const isOffsetParentAnElement = isHTMLElement(offsetParent);
5257
+ const documentElement = getDocumentElement(offsetParent);
5258
+ const isFixed = strategy === 'fixed';
5259
+ const rect = getBoundingClientRect(element, true, isFixed, offsetParent);
5260
+ let scroll = {
5261
+ scrollLeft: 0,
5262
+ scrollTop: 0
5263
+ };
5264
+ const offsets = createCoords(0);
5265
+
5266
+ // If the <body> scrollbar appears on the left (e.g. RTL systems). Use
5267
+ // Firefox with layout.scrollbar.side = 3 in about:config to test this.
5268
+ function setLeftRTLScrollbarOffset() {
5269
+ offsets.x = getWindowScrollBarX(documentElement);
5270
+ }
5271
+ if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
5272
+ if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {
5273
+ scroll = getNodeScroll(offsetParent);
5274
+ }
5275
+ if (isOffsetParentAnElement) {
5276
+ const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);
5277
+ offsets.x = offsetRect.x + offsetParent.clientLeft;
5278
+ offsets.y = offsetRect.y + offsetParent.clientTop;
5279
+ } else if (documentElement) {
5280
+ setLeftRTLScrollbarOffset();
5281
+ }
5282
+ }
5283
+ if (isFixed && !isOffsetParentAnElement && documentElement) {
5284
+ setLeftRTLScrollbarOffset();
5285
+ }
5286
+ const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
5287
+ const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;
5288
+ const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;
5289
+ return {
5290
+ x,
5291
+ y,
5292
+ width: rect.width,
5293
+ height: rect.height
5294
+ };
5295
+ }
5296
+
5297
+ function isStaticPositioned(element) {
5298
+ return getComputedStyle$1(element).position === 'static';
5299
+ }
5300
+
5301
+ function getTrueOffsetParent(element, polyfill) {
5302
+ if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {
5303
+ return null;
5304
+ }
5305
+ if (polyfill) {
5306
+ return polyfill(element);
5307
+ }
5308
+ let rawOffsetParent = element.offsetParent;
5309
+
5310
+ // Firefox returns the <html> element as the offsetParent if it's non-static,
5311
+ // while Chrome and Safari return the <body> element. The <body> element must
5312
+ // be used to perform the correct calculations even if the <html> element is
5313
+ // non-static.
5314
+ if (getDocumentElement(element) === rawOffsetParent) {
5315
+ rawOffsetParent = rawOffsetParent.ownerDocument.body;
5316
+ }
5317
+ return rawOffsetParent;
5318
+ }
5319
+
5320
+ // Gets the closest ancestor positioned element. Handles some edge cases,
5321
+ // such as table ancestors and cross browser bugs.
5322
+ function getOffsetParent(element, polyfill) {
5323
+ const win = getWindow(element);
5324
+ if (isTopLayer(element)) {
5325
+ return win;
5326
+ }
5327
+ if (!isHTMLElement(element)) {
5328
+ let svgOffsetParent = getParentNode(element);
5329
+ while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {
5330
+ if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {
5331
+ return svgOffsetParent;
5332
+ }
5333
+ svgOffsetParent = getParentNode(svgOffsetParent);
5334
+ }
5335
+ return win;
5336
+ }
5337
+ let offsetParent = getTrueOffsetParent(element, polyfill);
5338
+ while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {
5339
+ offsetParent = getTrueOffsetParent(offsetParent, polyfill);
5340
+ }
5341
+ if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {
5342
+ return win;
5343
+ }
5344
+ return offsetParent || getContainingBlock(element) || win;
5345
+ }
5346
+
5347
+ const getElementRects = async function (data) {
5348
+ const getOffsetParentFn = this.getOffsetParent || getOffsetParent;
5349
+ const getDimensionsFn = this.getDimensions;
5350
+ const floatingDimensions = await getDimensionsFn(data.floating);
5351
+ return {
5352
+ reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),
5353
+ floating: {
5354
+ x: 0,
5355
+ y: 0,
5356
+ width: floatingDimensions.width,
5357
+ height: floatingDimensions.height
5358
+ }
5359
+ };
5360
+ };
5361
+
5362
+ function isRTL$1(element) {
5363
+ return getComputedStyle$1(element).direction === 'rtl';
5364
+ }
5365
+
5366
+ const platform = {
5367
+ convertOffsetParentRelativeRectToViewportRelativeRect,
5368
+ getDocumentElement,
5369
+ getClippingRect,
5370
+ getOffsetParent,
5371
+ getElementRects,
5372
+ getClientRects,
5373
+ getDimensions,
5374
+ getScale,
5375
+ isElement,
5376
+ isRTL: isRTL$1
5377
+ };
5378
+
5379
+ /**
5380
+ * Modifies the placement by translating the floating element along the
5381
+ * specified axes.
5382
+ * A number (shorthand for `mainAxis` or distance), or an axes configuration
5383
+ * object may be passed.
5384
+ * @see https://floating-ui.com/docs/offset
5385
+ */
5386
+ const offset = offset$1;
5387
+
5388
+ /**
5389
+ * Optimizes the visibility of the floating element by shifting it in order to
5390
+ * keep it in view when it will overflow the clipping boundary.
5391
+ * @see https://floating-ui.com/docs/shift
5392
+ */
5393
+ const shift = shift$1;
5394
+
5395
+ /**
5396
+ * Optimizes the visibility of the floating element by flipping the `placement`
5397
+ * in order to keep it in view when the preferred placement(s) will overflow the
5398
+ * clipping boundary. Alternative to `autoPlacement`.
5399
+ * @see https://floating-ui.com/docs/flip
5400
+ */
5401
+ const flip = flip$1;
5402
+
5403
+ /**
5404
+ * Computes the `x` and `y` coordinates that will place the floating element
5405
+ * next to a given reference element.
5406
+ */
5407
+ const computePosition = (reference, floating, options) => {
5408
+ // This caches the expensive `getClippingElementAncestors` function so that
5409
+ // multiple lifecycle resets re-use the same result. It only lives for a
5410
+ // single call. If other functions become expensive, we can add them as well.
5411
+ const cache = new Map();
5412
+ const mergedOptions = {
5413
+ platform,
5414
+ ...options
5415
+ };
5416
+ const platformWithCache = {
5417
+ ...mergedOptions.platform,
5418
+ _c: cache
5419
+ };
5420
+ return computePosition$1(reference, floating, {
5421
+ ...mergedOptions,
5422
+ platform: platformWithCache
5423
+ });
5424
+ };
5425
+
5426
+ const pdsDropdownMenuCss = ":host{display:block}.is-hidden{display:none}.pds-dropdown-menu--panel{background-color:var(--pine-color-background-container);left:var(--pine-dimension-none);min-width:170px;padding:var(--pine-dimension-xs);position:absolute;z-index:9999}";
5427
+
5428
+ class PdsDropdownMenu {
5429
+ constructor(hostRef) {
5430
+ registerInstance(this, hostRef);
5431
+ this.isOpen = false;
5432
+ this.menuItems = [];
5433
+ this.currentFocusIndex = -1;
5434
+ /**
5435
+ * The placement of the dropdown panel relative to the trigger.
5436
+ */
5437
+ this.placement = 'bottom-start';
5438
+ this.handleTriggerSlotChange = (event) => {
5439
+ this.slotEl = event.target;
5440
+ // Get all elements assigned to this slot
5441
+ const assignedElements = this.slotEl.assignedElements();
5442
+ this.triggerEl = assignedElements[0];
5443
+ this.triggerEl.onclick = this.handleClick;
5444
+ // Add accessibility attributes to trigger
5445
+ this.triggerEl.setAttribute('aria-haspopup', 'menu');
5446
+ this.triggerEl.setAttribute('aria-expanded', 'false');
5447
+ };
5448
+ this.handleSlotChange = (event) => {
5449
+ this.slotEl = event.target;
5450
+ // Get all elements assigned to this slot
5451
+ const assignedElements = this.slotEl.assignedElements();
5452
+ // ensure assignedElements only contains pds-dropdown-menu-item or pds-dropdown-menu-separator
5453
+ // if there are other elements, throw an error
5454
+ const invalidElements = assignedElements.filter(el => el.tagName.toLowerCase() !== 'pds-dropdown-menu-item' && el.tagName.toLowerCase() !== 'pds-dropdown-menu-separator');
5455
+ if (invalidElements.length > 0) {
5456
+ throw new Error(`pds-dropdown-menu only accepts pds-dropdown-menu-item and pds-dropdown-menu-separator elements`);
5457
+ }
5458
+ // Store all menu items for keyboard navigation
5459
+ this.menuItems = assignedElements.filter(el => el.tagName.toLowerCase() === 'pds-dropdown-menu-item');
5460
+ };
5461
+ // Toggle dropdown open/closed
5462
+ this.toggleDropdown = () => {
5463
+ this.isOpen = !this.isOpen;
5464
+ if (this.isOpen) {
5465
+ this.openDropdown();
5466
+ }
5467
+ else {
5468
+ this.closeDropdown();
5469
+ }
5470
+ };
5471
+ // Open the dropdown and position it
5472
+ this.openDropdown = () => {
5473
+ var _a;
5474
+ computePosition(this.triggerEl, this.panelEl, {
5475
+ placement: this.placement,
5476
+ middleware: [offset(6), flip(), shift({ padding: 5 })],
5477
+ }).then(({ x, y }) => {
5478
+ Object.assign(this.panelEl.style, {
5479
+ left: `${x}px`,
5480
+ top: `${y}px`,
5481
+ });
5482
+ });
5483
+ (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('pds-box').classList.remove('is-hidden');
5484
+ this.isOpen = true;
5485
+ // Update ARIA attributes
5486
+ this.triggerEl.setAttribute('aria-expanded', 'true');
5487
+ };
5488
+ // Close the dropdown
5489
+ this.closeDropdown = () => {
5490
+ var _a;
5491
+ (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('pds-box').classList.add('is-hidden');
5492
+ this.isOpen = false;
5493
+ // Update ARIA attributes
5494
+ this.triggerEl.setAttribute('aria-expanded', 'false');
5495
+ // Reset focus index
5496
+ this.currentFocusIndex = -1;
5497
+ // Return focus to trigger
5498
+ this.triggerEl.focus();
5499
+ };
5500
+ // Handle click on the trigger element
5501
+ this.handleClick = () => {
5502
+ this.toggleDropdown();
5503
+ };
5504
+ }
5505
+ componentDidRender() {
5506
+ var _a;
5507
+ this.panelEl = (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('pds-box');
5508
+ }
5509
+ // Get the index of the currently focused menu item
5510
+ getFocusedItemIndex() {
5511
+ const activeElement = document.activeElement;
5512
+ if (!activeElement)
5513
+ return -1;
5514
+ return this.menuItems.findIndex(item => item === activeElement);
5515
+ }
5516
+ // Focus a specific menu item by index
5517
+ focusItemByIndex(index) {
5518
+ var _a, _b, _c, _d;
5519
+ if (index >= 0 && index < this.menuItems.length) {
5520
+ this.currentFocusIndex = index;
5521
+ // Focus the inner button/link instead of the host element
5522
+ const menuItem = this.menuItems[index];
5523
+ const innerButton = (_a = menuItem.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('button');
5524
+ const innerLink = (_d = (_c = (_b = menuItem.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('pds-link')) === null || _c === void 0 ? void 0 : _c.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('a');
5525
+ if (innerButton) {
5526
+ return innerButton.focus();
5527
+ }
5528
+ else if (innerLink) {
5529
+ return innerLink.focus();
5530
+ }
5531
+ else {
5532
+ // Fallback to focusing the host if we can't find the inner element
5533
+ menuItem.focus();
5534
+ }
5535
+ }
5536
+ }
5537
+ // Focus the next menu item
5538
+ focusNextItem() {
5539
+ let nextIndex = (this.currentFocusIndex + 1) % this.menuItems.length;
5540
+ // Skip disabled items
5541
+ let attempts = 0;
5542
+ const maxAttempts = this.menuItems.length;
5543
+ while (attempts < maxAttempts && this.menuItems[nextIndex].disabled) {
5544
+ nextIndex = (nextIndex + 1) % this.menuItems.length;
5545
+ attempts++;
5546
+ }
5547
+ // Only focus if we found a non-disabled item
5548
+ if (attempts < maxAttempts) {
5549
+ this.focusItemByIndex(nextIndex);
5550
+ }
5551
+ }
5552
+ // Focus the previous menu item
5553
+ focusPreviousItem() {
5554
+ let prevIndex = this.currentFocusIndex <= 0
5555
+ ? this.menuItems.length - 1
5556
+ : this.currentFocusIndex - 1;
5557
+ // Skip disabled items
5558
+ let attempts = 0;
5559
+ const maxAttempts = this.menuItems.length;
5560
+ while (attempts < maxAttempts && this.menuItems[prevIndex].disabled) {
5561
+ prevIndex = prevIndex <= 0 ? this.menuItems.length - 1 : prevIndex - 1;
5562
+ attempts++;
5563
+ }
5564
+ // Only focus if we found a non-disabled item
5565
+ if (attempts < maxAttempts) {
5566
+ this.focusItemByIndex(prevIndex);
5567
+ }
5568
+ }
5569
+ // Handle keyboard events for the dropdown
5570
+ handleKeyDown(event) {
5571
+ if (!this.isOpen)
5572
+ return;
5573
+ switch (event.key) {
5574
+ case 'Escape':
5575
+ event.preventDefault();
5576
+ this.closeDropdown();
5577
+ break;
5578
+ case 'ArrowDown':
5579
+ event.preventDefault();
5580
+ this.focusNextItem();
5581
+ break;
5582
+ case 'ArrowUp':
5583
+ event.preventDefault();
5584
+ this.focusPreviousItem();
5585
+ break;
5586
+ case 'Home':
5587
+ event.preventDefault();
5588
+ if (this.menuItems.length > 0) {
5589
+ // Find first non-disabled item
5590
+ let firstIndex = 0;
5591
+ while (firstIndex < this.menuItems.length && this.menuItems[firstIndex].disabled) {
5592
+ firstIndex++;
5593
+ }
5594
+ if (firstIndex < this.menuItems.length) {
5595
+ this.focusItemByIndex(firstIndex);
5596
+ }
5597
+ }
5598
+ break;
5599
+ case 'End':
5600
+ event.preventDefault();
5601
+ if (this.menuItems.length > 0) {
5602
+ // Find last non-disabled item
5603
+ let lastIndex = this.menuItems.length - 1;
5604
+ while (lastIndex >= 0 && this.menuItems[lastIndex].disabled) {
5605
+ lastIndex--;
5606
+ }
5607
+ if (lastIndex >= 0) {
5608
+ this.focusItemByIndex(lastIndex);
5609
+ }
5610
+ }
5611
+ break;
5612
+ case 'Tab':
5613
+ if (event.shiftKey) {
5614
+ // Let Shift+Tab navigate naturally from first item to trigger
5615
+ // For all other items, move to previous item
5616
+ const currentIndex = this.getFocusedItemIndex();
5617
+ if (currentIndex > 0) {
5618
+ // If not on first item, prevent default and go to previous item
5619
+ event.preventDefault();
5620
+ this.focusPreviousItem(); // Use our method that skips disabled items
5621
+ }
5622
+ // If on first item or no item, let natural tab order move back to trigger
5623
+ }
5624
+ else {
5625
+ // Forward Tab navigation
5626
+ const activeElement = document.activeElement;
5627
+ const isTriggerFocused = activeElement === this.triggerEl;
5628
+ const currentIndex = this.getFocusedItemIndex();
5629
+ if (isTriggerFocused && this.menuItems.length > 0) {
5630
+ // If trigger is focused, move to first non-disabled menu item
5631
+ event.preventDefault();
5632
+ // Find the first non-disabled item
5633
+ let firstFocusableIndex = 0;
5634
+ while (firstFocusableIndex < this.menuItems.length && this.menuItems[firstFocusableIndex].disabled) {
5635
+ firstFocusableIndex++;
5636
+ }
5637
+ if (firstFocusableIndex < this.menuItems.length) {
5638
+ this.focusItemByIndex(firstFocusableIndex);
5639
+ }
5640
+ }
5641
+ else if (currentIndex === -1 && this.menuItems.length > 0) {
5642
+ // If no menu item is focused, focus the first non-disabled one
5643
+ event.preventDefault();
5644
+ // Find the first non-disabled item
5645
+ let firstFocusableIndex = 0;
5646
+ while (firstFocusableIndex < this.menuItems.length && this.menuItems[firstFocusableIndex].disabled) {
5647
+ firstFocusableIndex++;
5648
+ }
5649
+ if (firstFocusableIndex < this.menuItems.length) {
5650
+ this.focusItemByIndex(firstFocusableIndex);
5651
+ }
5652
+ }
5653
+ else if (currentIndex !== -1) {
5654
+ // Use our method that skips disabled items
5655
+ event.preventDefault();
5656
+ this.focusNextItem();
5657
+ }
5658
+ }
5659
+ break;
5660
+ }
5661
+ }
5662
+ // Handle clicks outside the dropdown to close it
5663
+ handleWindowClick(event) {
5664
+ if (this.isOpen && !this.host.contains(event.target) && event.target !== this.triggerEl) {
5665
+ this.closeDropdown();
5666
+ }
5667
+ }
5668
+ render() {
5669
+ return (hAsync(Host, { key: '492d6a2baba8c0cf5e05a6c34b774900f5da6886', id: this.componentId }, hAsync("slot", { key: '9d57ee287cff289693c941410bcc62bb9fb1da95', name: "trigger", onSlotchange: this.handleTriggerSlotChange }), hAsync("pds-box", { key: '62ae569a3bf7f958c01cfe1a74d174e413763f72', "border-radius": "sm", display: "flex", direction: "column", class: "pds-dropdown-menu--panel is-hidden", shadow: "100", role: "menu", "aria-orientation": "vertical" }, hAsync("slot", { key: 'ea6d26124c06683e4fde23bc29f955cb04468d7a', onSlotchange: this.handleSlotChange }))));
5670
+ }
5671
+ get host() { return getElement(this); }
5672
+ static get style() { return pdsDropdownMenuCss; }
5673
+ static get cmpMeta() { return {
5674
+ "$flags$": 9,
5675
+ "$tagName$": "pds-dropdown-menu",
5676
+ "$members$": {
5677
+ "componentId": [1, "component-id"],
5678
+ "placement": [1],
5679
+ "currentFocusIndex": [32]
5680
+ },
5681
+ "$listeners$": [[8, "keydown", "handleKeyDown"], [8, "click", "handleWindowClick"]],
5682
+ "$lazyBundleId$": "-",
5683
+ "$attrsToReflect$": []
5684
+ }; }
5685
+ }
5686
+
5687
+ const pdsDropdownMenuItemCss = ":host{cursor:pointer;display:-ms-flexbox;display:flex;width:100%;}:host(.is-disabled){cursor:not-allowed !important;opacity:0.5 !important}:host(.is-disabled) .pds-dropdown-menu-item__content{cursor:not-allowed !important;pointer-events:none !important}.pds-dropdown-menu-item__content{-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:var(--pine-dimension-xs);display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;font:var(--pine-typography-body-medium);gap:var(--pine-dimension-xs);margin:calc(var(--pine-border-width) + 2px);padding:var(--pine-dimension-xs);text-align:start;width:100%;}.pds-dropdown-menu-item__content:hover{background-color:var(--pine-color-grey-150);color:var(--pine-color-text-hover)}.pds-dropdown-menu-item__content:focus,.pds-dropdown-menu-item__content:focus-visible,.pds-dropdown-menu-item__content.has-focus{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}:host(.destructive) .pds-dropdown-menu-item__content{-ms-flex-align:center;align-items:center;color:var(--pine-color-danger)}:host(.destructive) .pds-dropdown-menu-item__content:hover{background-color:var(--pine-color-danger-disabled);color:var(--pine-color-danger-hover)}:host(.destructive) .pds-dropdown-menu-item__content:focus,:host(.destructive) .pds-dropdown-menu-item__content:focus-visible,:host(.destructive) .pds-dropdown-menu-item__content.has-focus{background-color:var(--pine-color-danger-disabled);outline:var(--pine-outline-focus-danger);outline-offset:var(--pine-border-width)}pds-link::part(link):focus,pds-link::part(link):focus-visible{-webkit-box-shadow:none;box-shadow:none;outline:none}pds-link::part(link){display:block;margin-inline:calc(var(--pine-dimension-xs) * -1);padding-inline:var(--pine-dimension-xs);width:100%}";
5688
+
5689
+ class PdsDropdownMenuItem {
5690
+ constructor(hostRef) {
5691
+ registerInstance(this, hostRef);
5692
+ this.pdsClick = createEvent(this, "pdsClick");
5693
+ /**
5694
+ * It determines whether or not the dropdown-item is destructive.
5695
+ * @defaultValue false
5696
+ */
5697
+ this.destructive = false;
5698
+ /**
5699
+ * It determines whether or not the dropdown-item is disabled.
5700
+ * @defaultValue false
5701
+ */
5702
+ this.disabled = false;
5703
+ this.hasFocus = false;
5704
+ this.handleFocus = () => {
5705
+ this.hasFocus = true;
5706
+ };
5707
+ this.handleBlur = () => {
5708
+ this.hasFocus = false;
5709
+ };
5710
+ this.handleKeyDown = (event) => {
5711
+ // Handle keyboard events
5712
+ if (!this.disabled && (event.key === 'Enter')) {
5713
+ // Only prevent default for button elements or Space key
5714
+ // For links with Enter key, we want the default navigation behavior
5715
+ if (!this.href) {
5716
+ event.preventDefault();
5717
+ }
5718
+ this.handleClick();
5719
+ }
5720
+ };
5721
+ }
5722
+ /**
5723
+ * Trigger the click event
5724
+ */
5725
+ async clickItem() {
5726
+ this.handleClick();
5727
+ }
5728
+ ;
5729
+ handleClick() {
5730
+ var _a;
5731
+ // Filter only pds-dropdown-menu-item elements and find the index of the current item
5732
+ const menuItems = Array.from(this.host.parentNode.children).filter((child) => child.tagName.toLowerCase() === 'pds-dropdown-menu-item');
5733
+ const itemIndex = menuItems.indexOf(this.host);
5734
+ // Get the text content from the slotted content
5735
+ const content = ((_a = this.host.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
5736
+ this.pdsClick.emit({
5737
+ itemIndex,
5738
+ item: this.host,
5739
+ content
5740
+ });
5741
+ }
5742
+ renderElement() {
5743
+ if (this.href !== undefined) {
5744
+ return (hAsync("pds-link", { href: this.disabled ? null : this.href, class: {
5745
+ 'pds-dropdown-menu-item__content': true,
5746
+ 'has-focus': this.hasFocus
5747
+ }, tabIndex: this.disabled ? -1 : 0, onKeyDown: this.handleKeyDown, onFocus: this.handleFocus, onBlur: this.handleBlur, "aria-disabled": this.disabled ? 'true' : null }, hAsync("slot", null)));
5748
+ }
5749
+ return (hAsync("button", { class: {
5750
+ 'pds-dropdown-menu-item__content': true,
5751
+ 'has-focus': this.hasFocus
5752
+ }, tabIndex: this.disabled ? -1 : 0, type: "button", onKeyDown: this.handleKeyDown, onFocus: this.handleFocus, onBlur: this.handleBlur, disabled: this.disabled, "aria-disabled": this.disabled ? 'true' : null }, hAsync("slot", null)));
5753
+ }
5754
+ render() {
5755
+ return (hAsync(Host, { key: 'b27f62c0f1cfe56e777b1a875b93954d4c9da00d', 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()));
5756
+ }
5757
+ get host() { return getElement(this); }
5758
+ static get style() { return pdsDropdownMenuItemCss; }
5759
+ static get cmpMeta() { return {
5760
+ "$flags$": 9,
5761
+ "$tagName$": "pds-dropdown-menu-item",
5762
+ "$members$": {
5763
+ "componentId": [1, "component-id"],
5764
+ "destructive": [4],
5765
+ "disabled": [4],
5766
+ "href": [1],
5767
+ "hasFocus": [32],
5768
+ "clickItem": [64]
5769
+ },
5770
+ "$listeners$": undefined,
5771
+ "$lazyBundleId$": "-",
5772
+ "$attrsToReflect$": []
5773
+ }; }
5774
+ }
5775
+
5776
+ const pdsDropdownMenuSeparatorCss = ":host hr{border:1px solid var(--pine-color-border);margin-block:var(--pine-dimension-xs)}";
5777
+
5778
+ class PdsDropdownMenuSeparator {
5779
+ constructor(hostRef) {
5780
+ registerInstance(this, hostRef);
5781
+ /**
5782
+ * It determines whether or not the dropdown-item is disabled.
5783
+ * @defaultValue false
5784
+ */
5785
+ this.disabled = false;
5786
+ }
5787
+ render() {
5788
+ return (hAsync(Host, { key: '71b19470921b7848e5f0c44ef82aa0d9f8ef2017', id: this.componentId }, hAsync("hr", { key: 'efc84b6b3f3f35421c0af863fb2d4636e542773e' })));
5789
+ }
5790
+ static get style() { return pdsDropdownMenuSeparatorCss; }
5791
+ static get cmpMeta() { return {
5792
+ "$flags$": 9,
5793
+ "$tagName$": "pds-dropdown-menu-separator",
5794
+ "$members$": {
5795
+ "componentId": [1, "component-id"],
5796
+ "disabled": [4]
5797
+ },
5798
+ "$listeners$": undefined,
5799
+ "$lazyBundleId$": "-",
5800
+ "$attrsToReflect$": []
5801
+ }; }
5802
+ }
5803
+
5804
+ const getName = (iconName, icon) => {
5805
+ if (!iconName && icon && !isSrc(icon)) {
5806
+ iconName = icon;
5807
+ }
5808
+ if (isStr(iconName)) {
5809
+ iconName = toLower(iconName);
5810
+ }
5811
+ if (!isStr(iconName) || iconName.trim() === '') {
5812
+ return null;
5813
+ }
5814
+ const invalidChars = iconName.replace(/[a-z]|-|\d/gi, '');
5815
+ if (invalidChars != '') {
5816
+ return null;
5817
+ }
5818
+ return iconName;
5819
+ };
5820
+ /**
5821
+ * Returns `true` if the document or host element
5822
+ * has a `dir` set to `rtl`. The host value will always
5823
+ * take priority over the root document value.
5824
+ */
5825
+ const isRTL = (hostEl) => {
5826
+ if (hostEl) {
5827
+ if (hostEl.dir !== '') {
5828
+ return hostEl.dir.toLowerCase() === 'rtl';
5829
+ }
5830
+ }
5831
+ return (document === null || document === void 0 ? void 0 : document.dir.toLowerCase()) === 'rtl';
5832
+ };
5833
+ const isSrc = (str) => str.length > 0 && /(\/|\.)/.test(str);
5834
+ const isStr = (val) => typeof val === 'string'; // eslint-disable-line @typescript-eslint/no-explicit-any
5835
+ const toLower = (val) => val.toLowerCase();
5836
+ /**
5837
+ * Elements inside of web components sometimes need to inherit global attributes
5838
+ * set on the host. For example, the inner input in `pds-input` should inherit
5839
+ * the `title` attribute that developers set directly on `pds-input`. This
5840
+ * helper function should be called in componentWillLoad and assigned to a variable
5841
+ * that is later used in the render function.
5842
+ *
5843
+ * This does not need to be reactive as changing attributes on the host element
5844
+ * does not trigger a re-render.
5845
+ */
5846
+ const inheritAttributes = (el, attributes = []) => {
5847
+ const attributeObject = {}; // eslint-disable-line @typescript-eslint/no-explicit-any
5848
+ attributes.forEach(attr => {
5849
+ if (el.hasAttribute(attr)) {
5850
+ const value = el.getAttribute(attr);
5851
+ if (value !== null) {
5852
+ attributeObject[attr] = el.getAttribute(attr);
5853
+ }
5854
+ el.removeAttribute(attr);
5855
+ }
5856
+ });
5857
+ return attributeObject;
5858
+ };
5859
+ /**
5860
+ * Determines if an icon should be flipped when RTL is enabled
5861
+ * @param iconName - The name of the icon to check
5862
+ * @param hostEl - Optional host element to check for RTL direction
5863
+ * @returns {boolean} - True if the icon should be flipped in RTL mode, false otherwise
5864
+ */
5865
+ const shouldRtlFlipIcon = (iconName, hostEl) => {
5866
+ // First check if we're in RTL mode
5867
+ const rtlEnabled = isRTL(hostEl);
5868
+ // Only flip if we're in RTL mode and the icon is in the flip list
5869
+ return rtlEnabled && ICONS_TO_FLIP.includes(iconName);
5870
+ };
5871
+ /**
5872
+ * Array of available icon names
5873
+ */
5874
+ const ICONS_TO_FLIP = [
5875
+ 'align-horizontal-bottom',
5876
+ 'align-horizontal-center',
5877
+ 'align-horizontal-top',
5878
+ 'align-left',
5879
+ 'align-right',
5880
+ 'align-vertical-left',
5881
+ 'align-vertical-right',
5882
+ 'arrow-corner',
5883
+ 'arrow-left',
5884
+ 'arrow-right',
5885
+ 'calendar-schedule',
5886
+ 'caret-left',
5887
+ 'caret-right',
5888
+ 'cart',
5889
+ 'cart-add',
5890
+ 'comment',
5891
+ 'comment-no',
4008
5892
  'conversation',
4009
5893
  'copy',
4010
5894
  'copy-07',
@@ -4192,9 +6076,9 @@ class PdsImage {
4192
6076
  this.loading = 'eager';
4193
6077
  }
4194
6078
  render() {
4195
- return (hAsync(Host, { key: '043894e2963cd548dc165c5d877d217ebc28b1a4', class: {
6079
+ return (hAsync(Host, { key: 'a706be22398297ae7087239a3dc7474ae17ab358', class: {
4196
6080
  'pds-image': true,
4197
- }, id: this.componentId }, hAsync("img", { key: '1c0c68d060c938922f0df9d398943d033344a592', alt: this.alt, height: this.height, loading: this.loading, sizes: this.sizes, src: this.src, srcset: this.srcset, width: this.width })));
6081
+ }, id: this.componentId }, hAsync("img", { key: '37a465ed175ae298e174370246885fb6d7837112', alt: this.alt, height: this.height, loading: this.loading, sizes: this.sizes, src: this.src, srcset: this.srcset, width: this.width })));
4198
6082
  }
4199
6083
  static get style() { return pdsImageCss; }
4200
6084
  static get cmpMeta() { return {
@@ -4220,8 +6104,14 @@ const pdsInputTokensCss$1 = ":host{--pine-input-color-background-danger:var(--pi
4220
6104
 
4221
6105
  const labelCss$4 = ":host{display:inline-block}:host([aria-disabled=true]) label{color:var(--pine-color-text-label-disabled)}:host([aria-readonly=true]) label{color:var(--pine-color-text-label-readonly)}label{color:var(--pine-color-text-label);font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing)}";
4222
6106
 
4223
- const pdsInputCss = ":host{display:inline}:host([aria-readonly=true]) input{background-color:var(--pine-color-background-container-disabled);color:var(--pine-color-text-readonly)}.pds-input{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.pds-input__label{-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}.pds-input__field{background:var(--pine-color-background-container);border:1px solid var(--pine-color-border);border-radius:var(--pine-dimension-125);color:var(--pine-color-text-active);font:var(--pine-typography-body);letter-spacing:var(--pine-letter-spacing);padding:var(--pine-dimension-xs) var(--pine-dimension-sm);}.pds-input__field:hover:not(:disabled,.is-invalid){border:var(--pine-border-hover)}.pds-input__field:disabled{background-color:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-disabled);cursor:not-allowed;}.pds-input__field:disabled::-webkit-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-input__field:disabled::-moz-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-input__field:disabled::-moz-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-input__field:disabled:-ms-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-input__field:hover{border-color:var(--pine-color-border-hover)}.pds-input__field:focus-visible{border-color:var(--pine-color-border-active);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-input__field::-webkit-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-input__field::-moz-placeholder{color:var(--pine-color-text-placeholder)}.pds-input__field::-moz-placeholder{color:var(--pine-color-text-placeholder)}.pds-input__field:-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-input__field.is-invalid{background-color:var(--pine-input-color-background-danger);border-color:var(--pine-color-border-danger)}.pds-input__field.is-invalid:focus-visible{outline-color:var(--pine-color-focus-ring-danger)}.pds-input__error-message,.pds-input__helper-message{font:var(--pine-typography-body-sm-medium);-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs)}.pds-input__error-message{-ms-flex-align:center;align-items:center;color:var(--pine-color-text-message-danger);display:-ms-flexbox;display:flex;gap:var(--pine-dimension-2xs)}";
6107
+ const pdsInputCss = ":host{--pds-input-background:var(--pine-color-background-container);--pds-input-border-color:var(--pine-color-border);--pds-input-border-color-hover:var(--pine-color-border-hover);--pds-input-border-color-disabled:var(--pine-color-border-disabled);--pds-input-border-radius:var(--pine-dimension-125);--pds-input-border-width:var(--pine-border-width-thin);--pds-input-padding-x:var(--pine-dimension-150);--pds-input-padding-y:var(--pine-dimension-xs);--pds-input-font:var(--pine-typography-body);--pds-input-text-color:var(--pine-color-text-active);--pds-input-placeholder-color:var(--pine-color-text-placeholder);--pds-input-icon-color:var(--pine-color-text-secondary);--pds-input-disabled-background:var(--pine-color-background-container-disabled);--pds-input-disabled-text-color:var(--pine-color-text-disabled);--pds-input-error-color:var(--pine-color-text-message-danger);--pds-input-error-background:var(--pine-input-color-background-danger);--pds-input-error-border:var(--pine-color-border-danger);--pds-input-error-border-hover:var(--pine-color-border-danger-hover);--pds-input-addon-background:var(--pine-color-background-subtle);--pds-input-addon-color:var(--pine-color-text-secondary);--pds-input-field-min-height:calc(var(--pine-dimension-450) + 2px);--box-shadow-focus:0 0 0 1px #ffffff, 0 0 0 3px var(--pine-color-focus-ring);--box-shadow-focus-error:0 0 0 1px #ffffff, 0 0 0 3px var(--pine-color-focus-ring-danger);display:inline}:host pds-select::part(select){background-color:var(--pds-input-error-background);border-color:var(--pds-input-error-border)}:host::part(prefix),:host::part(suffix){-ms-flex-align:center;align-items:center;color:var(--pine-color-text-label-readonly);display:-ms-flexbox;display:flex;height:100%;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);white-space:nowrap;z-index:1}:host::part(prefix){border-end-start-radius:var(--pds-input-border-radius);-webkit-border-end:var(--pine-border-width-none);border-inline-end:var(--pine-border-width-none);border-start-start-radius:var(--pds-input-border-radius);left:var(--pds-input-padding-x)}:host::part(suffix){border-end-end-radius:var(--pds-input-border-radius);-webkit-border-start:var(--pine-border-width-none);border-inline-start:var(--pine-border-width-none);border-start-end-radius:var(--pds-input-border-radius);right:var(--pds-input-padding-x)}:host::part(prepend),:host::part(append){-ms-flex-align:center;align-items:center;background-color:var(--pds-input-addon-background);border:var(--pds-input-border-width) solid var(--pds-input-border-color);color:var(--pds-input-addon-color);display:-ms-flexbox;display:flex}:host::part(prepend){border-end-start-radius:var(--pds-input-border-radius);-webkit-border-end:var(--pine-border-width-none);border-inline-end:var(--pine-border-width-none);border-start-start-radius:var(--pds-input-border-radius)}:host::part(append){border-end-end-radius:var(--pds-input-border-radius);-webkit-border-start:var(--pine-border-width-none);border-inline-start:var(--pine-border-width-none);border-start-end-radius:var(--pds-input-border-radius)}:host([has-prepend]) ::slotted(pds-button[slot=prepend]){--pds-button-background:var(--pds-input-addon-background);--pds-button-border:var(--pine-border-width-none);--pds-button-border-radius-end-end:var(--pine-dimension-none);--pds-button-border-radius-start-end:var(--pine-dimension-none);--pds-button-min-height:var(--pine-dimension-450)}:host([has-append]) ::slotted(pds-button[slot=append]){--pds-button-background:var(--pds-input-addon-background);--pds-button-border:var(--pine-border-width-none);--pds-button-border-radius-end-start:var(--pine-dimension-none);--pds-button-border-radius-start-start:var(--pine-dimension-none);--pds-button-min-height:var(--pine-dimension-450)}:host([has-prepend]) ::slotted(pds-select[slot=prepend]){--pds-select-background:var(--pds-input-addon-background);--pds-select-border:var(--pine-border-width-none);--pds-select-border-radius-end-end:var(--pine-dimension-none);--pds-select-border-radius-start-end:var(--pine-dimension-none);--pds-select-min-height:var(--pine-dimension-450)}:host([has-append]) ::slotted(pds-select[slot=append]){--pds-select-background:var(--pds-input-addon-background);--pds-select-border:var(--pine-border-width-none);--pds-select-border-radius-end-start:var(--pine-dimension-none);--pds-select-border-radius-start-start:var(--pine-dimension-none);--pds-select-min-height:var(--pine-dimension-450)}:host([aria-readonly=true]) input{background-color:var(--pine-color-background-container-disabled);color:var(--pine-color-text-readonly)}:host([disabled=true])::part(prepend),:host([disabled=true])::part(append){background-color:var(--pds-input-disabled-background);border:var(--pds-input-border-width) solid var(--pds-input-border-color-disabled)}:host([invalid=true])::part(prepend),:host([invalid=true])::part(append){background-color:var(--pds-input-error-background);border:var(--pds-input-border-width) solid var(--pds-input-error-border)}.pds-input{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--pine-dimension-2xs)}.pds-input__label{color:var(--pine-color-text-active);font:var(--pine-typography-body-sm-medium);-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}.pds-input__field-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;position:relative;width:100%}.pds-input__field-wrapper.has-prefix .pds-input__field{-webkit-padding-start:calc(2 * var(--pds-input-padding-x) + var(--prefix-width, 1em));padding-inline-start:calc(2 * var(--pds-input-padding-x) + var(--prefix-width, 1em))}.pds-input__field-wrapper.has-suffix .pds-input__field{-webkit-padding-end:calc(2 * var(--pds-input-padding-x) + var(--suffix-width, 1em));padding-inline-end:calc(2 * var(--pds-input-padding-x) + var(--suffix-width, 1em))}.pds-input__field-wrapper.has-prepend .pds-input__field{border-end-start-radius:var(--pine-dimension-none);border-start-start-radius:var(--pine-dimension-none)}.pds-input__field-wrapper.has-append .pds-input__field{border-end-end-radius:var(--pine-dimension-none);border-start-end-radius:var(--pine-dimension-none)}.pds-input__field{background:var(--pds-input-background);border:var(--pds-input-border-width) solid var(--pds-input-border-color);border-radius:var(--pds-input-border-radius);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pds-input-text-color);-ms-flex:1;flex:1;font:var(--pds-input-font);letter-spacing:var(--pine-letter-spacing);min-height:var(--pds-input-field-min-height);min-width:var(--pine-dimension-none);padding:var(--pds-input-padding-y) var(--pds-input-padding-x);-webkit-transition:border-color 0.2s ease;transition:border-color 0.2s ease;width:100%}.pds-input__field:hover:not(:disabled){border-color:var(--pds-input-border-color-hover)}.pds-input__field:disabled{background:var(--pds-input-disabled-background);border-color:var(--pine-color-border-disabled);color:var(--pds-input-disabled-text-color);cursor:not-allowed}.pds-input__field:disabled::-webkit-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-input__field:disabled::-moz-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-input__field:disabled:-ms-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-input__field:disabled::-ms-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-input__field:disabled::placeholder{color:var(--pine-color-text-placeholder-disabled)}.has-error .pds-input__field:hover:not(:disabled){border-color:var(--pds-input-error-border-hover)}.pds-input__field:focus-visible:not(.has-error){border-color:var(--pine-color-border-active);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}:host([has-prepend]) .pds-input__field:focus-visible:not(.has-error),:host([has-append]) .pds-input__field:focus-visible:not(.has-error),:host([has-prefix]) .pds-input__field:focus-visible:not(.has-error),:host([has-suffix]) .pds-input__field:focus-visible:not(.has-error){outline-offset:var(--pine-dimension-none)}.pds-input__field::-webkit-input-placeholder{color:var(--pds-input-placeholder-color)}.pds-input__field::-moz-placeholder{color:var(--pds-input-placeholder-color)}.pds-input__field:-ms-input-placeholder{color:var(--pds-input-placeholder-color)}.pds-input__field::-ms-input-placeholder{color:var(--pds-input-placeholder-color)}.pds-input__field::placeholder{color:var(--pds-input-placeholder-color)}.has-error .pds-input__field{background-color:var(--pds-input-error-background);border-color:var(--pds-input-error-border)}.has-error .pds-input__field:focus-visible{outline-color:var(--pine-color-focus-ring-danger)}.pds-input__error-message,.pds-input__helper-message{font:var(--pine-typography-body-sm-medium);-webkit-margin-after:var(--pine-dimension-none);margin-block-end:var(--pine-dimension-none);-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs)}.pds-input__error-message{-ms-flex-align:center;align-items:center;color:var(--pds-input-error-color);display:-ms-flexbox;display:flex;gap:var(--pine-dimension-2xs)}";
4224
6108
 
6109
+ /**
6110
+ * @slot append - Content to be displayed after the input field
6111
+ * @slot prefix - Content that is displayed visually within the input field before the input field
6112
+ * @slot prepend - Content to be displayed before the input field
6113
+ * @slot suffix - Content that is displayed visually within the input field after the input field
6114
+ */
4225
6115
  class PdsInput {
4226
6116
  constructor(hostRef) {
4227
6117
  registerInstance(this, hostRef);
@@ -4231,6 +6121,22 @@ class PdsInput {
4231
6121
  this.pdsInput = createEvent(this, "pdsInput");
4232
6122
  this.inheritedAttributes = {};
4233
6123
  this.isComposing = false;
6124
+ /**
6125
+ * If true, the input has prefix content (non-focusable)
6126
+ */
6127
+ this.hasPrefix = false;
6128
+ /**
6129
+ * If true, the input has suffix content (non-focusable)
6130
+ */
6131
+ this.hasSuffix = false;
6132
+ /**
6133
+ * If true, the input has prepend content (focusable)
6134
+ */
6135
+ this.hasPrepend = false;
6136
+ /**
6137
+ * If true, the input has append content (focusable)
6138
+ */
6139
+ this.hasAppend = false;
4234
6140
  /**
4235
6141
  * Determines the type of control that will be displayed
4236
6142
  * `'email'`, `'number'`, `'password'`, `'tel'`, `'text'`, `'url'`
@@ -4287,6 +6193,62 @@ class PdsInput {
4287
6193
  this.nativeInput.focus();
4288
6194
  }
4289
6195
  }
6196
+ updateAddonWidths() {
6197
+ requestAnimationFrame(() => {
6198
+ if (this.prefixEl) {
6199
+ const prefixWidth = this.prefixEl.offsetWidth;
6200
+ this.el.style.setProperty('--prefix-width', `${prefixWidth}px`);
6201
+ }
6202
+ if (this.suffixEl) {
6203
+ const suffixWidth = this.suffixEl.offsetWidth;
6204
+ this.el.style.setProperty('--suffix-width', `${suffixWidth}px`);
6205
+ }
6206
+ });
6207
+ }
6208
+ renderPrefix() {
6209
+ const hasPrefix = this.el.querySelector('[slot="prefix"]') !== null;
6210
+ if (hasPrefix) {
6211
+ return (hAsync("div", { class: "pds-input__prefix", part: "prefix", ref: (el) => this.prefixEl = el }, hAsync("slot", { name: "prefix", onSlotchange: () => this.updateAddonWidths() })));
6212
+ }
6213
+ return null;
6214
+ }
6215
+ renderSuffix() {
6216
+ const hasSuffix = this.el.querySelector('[slot="suffix"]') !== null;
6217
+ if (hasSuffix) {
6218
+ return (hAsync("div", { class: "pds-input__suffix", part: "suffix", ref: (el) => this.suffixEl = el }, hAsync("slot", { name: "suffix", onSlotchange: () => this.updateAddonWidths() })));
6219
+ }
6220
+ return null;
6221
+ }
6222
+ renderPrepend() {
6223
+ const hasPrepend = this.el.querySelector('[slot="prepend"]') !== null;
6224
+ if (hasPrepend) {
6225
+ return (hAsync("div", { class: "pds-input__prepend", part: "prepend" }, hAsync("slot", { name: "prepend" })));
6226
+ }
6227
+ return null;
6228
+ }
6229
+ renderAppend() {
6230
+ const hasAppend = this.el.querySelector('[slot="append"]') !== null;
6231
+ if (hasAppend) {
6232
+ return (hAsync("div", { class: "pds-input__append", part: "append" }, hAsync("slot", { name: "append" })));
6233
+ }
6234
+ return null;
6235
+ }
6236
+ componentWillLoad() {
6237
+ this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
6238
+ this.hasPrefix = this.el.querySelector('[slot="prefix"]') !== null;
6239
+ this.hasSuffix = this.el.querySelector('[slot="suffix"]') !== null;
6240
+ this.hasPrepend = this.el.querySelector('[slot="prepend"]') !== null;
6241
+ this.hasAppend = this.el.querySelector('[slot="append"]') !== null;
6242
+ // Store the original pdsInput event emitter
6243
+ this.originalPdsInput = this.pdsInput;
6244
+ }
6245
+ componentDidLoad() {
6246
+ this.debounceChanged();
6247
+ this.updateAddonWidths();
6248
+ }
6249
+ componentDidUpdate() {
6250
+ this.updateAddonWidths();
6251
+ }
4290
6252
  debounceChanged() {
4291
6253
  const { pdsInput, debounce, originalPdsInput } = this;
4292
6254
  /**
@@ -4315,7 +6277,6 @@ class PdsInput {
4315
6277
  this.pdsChange.emit({ value: newValue, event });
4316
6278
  }
4317
6279
  /**
4318
- *
4319
6280
  * Emits a `pdsInput` event
4320
6281
  */
4321
6282
  emitInputChange(event) {
@@ -4324,24 +6285,20 @@ class PdsInput {
4324
6285
  const newValue = value == null ? value : value.toString();
4325
6286
  this.pdsInput.emit({ value: newValue, event });
4326
6287
  }
4327
- componentWillLoad() {
4328
- this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
4329
- }
4330
- componentDidLoad() {
4331
- this.debounceChanged();
4332
- }
4333
- inputClassNames() {
4334
- const classNames = ['pds-input__field'];
4335
- if (this.invalid && this.invalid === true) {
4336
- classNames.push('is-invalid');
4337
- }
4338
- return classNames.join(' ');
4339
- }
4340
6288
  render() {
4341
- return (hAsync(Host, { key: '6e4e04c4db43e707c0681e878c1b1f73deee86ae', "aria-disabled": this.disabled ? 'true' : null, "aria-readonly": this.readonly ? 'true' : null }, hAsync("div", { key: '6610ccb16fb657e6d97aca89b21ff2e2bc0e3fe1', class: "pds-input" }, this.label &&
4342
- hAsync("label", { key: 'd85cdc84dcd35abcd592e6374e1e3d080f97ab8c', class: "pds-input__label", htmlFor: this.componentId }, this.label), hAsync("input", Object.assign({ key: 'de33a9a5ca6901c9c745fcef9475557cfec1cf91', class: this.inputClassNames(), ref: (input) => this.nativeInput = input, "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage), "aria-invalid": this.invalid ? "true" : undefined, autocomplete: this.autocomplete, disabled: this.disabled, id: this.componentId, name: this.name, placeholder: this.placeholder, readOnly: this.readonly, required: this.required, type: this.type, value: this.value, onInput: this.onInputEvent, onChange: this.onChangeEvent, onBlur: this.onBlurEvent, onFocus: this.onFocusEvent, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd }, this.inheritedAttributes)), this.helperMessage &&
4343
- hAsync("p", { key: '0721204043319effd9ce7ee3fd42a81570ffbdcc', class: "pds-input__helper-message", id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
4344
- hAsync("p", { key: '68e71598657e55cb3ca4ad25a23b673bafe1eefb', class: "pds-input__error-message", id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: '9d3969d79ecd3ab4bd2a83ff775409b00f8eb3c9', icon: danger, size: "small" }), this.errorMessage))));
6289
+ const { componentId, disabled, errorMessage, helperMessage, invalid = false, label, } = this;
6290
+ const value = this.getValue();
6291
+ const inputWrapperClasses = {
6292
+ 'pds-input__field-wrapper': true,
6293
+ 'has-focus': this.hasFocus,
6294
+ 'has-error': invalid || !!errorMessage,
6295
+ 'is-disabled': disabled,
6296
+ 'has-prefix': this.hasPrefix,
6297
+ 'has-suffix': this.hasSuffix,
6298
+ 'has-prepend': this.hasPrepend,
6299
+ 'has-append': this.hasAppend,
6300
+ };
6301
+ return (hAsync(Host, { key: '6ae7251aeee049e0e4f3a66c7d947a3ceb7d2b26', "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 }, hAsync("div", { key: 'f397d329cf587b9bdf699a0c80a3bdb9c1de0b53', class: "pds-input" }, label && (hAsync("label", { key: '7e5523268dd59acb3fbf2bd659f319cc458166c0', htmlFor: componentId, class: "pds-input__label" }, label, this.required && hAsync("span", { key: 'f197ce55768d8409c9c7832af56e0a6bdc27e90a', class: "pds-input__required-indicator" }, " *"))), hAsync("div", { key: 'ad92476c65ad280622a8aa8c731609aff8ec51a4', class: inputWrapperClasses }, this.renderPrepend(), this.renderPrefix(), hAsync("input", Object.assign({ key: '187ee16cc7458af1dc06a7f424ce6bc2ffede359', ref: (input) => (this.nativeInput = input), class: "pds-input__field", "aria-describedby": assignDescription(componentId, invalid, helperMessage), "aria-invalid": invalid ? "true" : undefined, autocomplete: this.autocomplete, disabled: disabled, id: componentId, max: this.max, maxlength: this.maxlength, min: this.min, minlength: this.minlength, name: this.name, pattern: this.pattern, placeholder: this.placeholder, readOnly: this.readonly, required: this.required, step: this.step, type: this.type, value: value, onInput: this.onInputEvent, onChange: this.onChangeEvent, onBlur: this.onBlurEvent, onFocus: this.onFocusEvent, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd }, this.inheritedAttributes)), this.renderSuffix(), this.renderAppend()), helperMessage && (hAsync("p", { key: 'c11daa2e4ed085033d90a3e9185dd7beb259aa9e', class: "pds-input__helper-message", id: messageId(componentId, 'helper') }, helperMessage)), errorMessage && (hAsync("p", { key: 'd5adbb495bd7abd83655390e0d34cbdf527b656a', class: "pds-input__error-message", id: messageId(componentId, 'error') }, hAsync("pds-icon", { key: 'd1a80c2d7e6f8389488fe2c0bb6dd1923536588a', icon: danger, size: "small" }), errorMessage)))));
4345
6302
  }
4346
6303
  get el() { return getElement(this); }
4347
6304
  static get watchers() { return {
@@ -4361,12 +6318,22 @@ class PdsInput {
4361
6318
  "helperMessage": [1, "helper-message"],
4362
6319
  "invalid": [4],
4363
6320
  "label": [1],
6321
+ "max": [1],
6322
+ "maxlength": [1],
6323
+ "min": [1],
6324
+ "minlength": [1],
4364
6325
  "name": [1],
6326
+ "pattern": [1],
4365
6327
  "placeholder": [1],
4366
6328
  "readonly": [4],
4367
6329
  "required": [4],
6330
+ "step": [1],
4368
6331
  "type": [1],
4369
6332
  "value": [1032],
6333
+ "hasPrefix": [32],
6334
+ "hasSuffix": [32],
6335
+ "hasPrepend": [32],
6336
+ "hasAppend": [32],
4370
6337
  "hasFocus": [32],
4371
6338
  "setFocus": [64]
4372
6339
  },
@@ -4376,7 +6343,7 @@ class PdsInput {
4376
6343
  }; }
4377
6344
  }
4378
6345
 
4379
- 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(--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{text-decoration:none}.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(--pine-color-text-hover);text-decoration:underline}";
6346
+ 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(--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(--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-grey-150)}: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(--pine-color-text-hover);text-decoration:underline}";
4380
6347
 
4381
6348
  /**
4382
6349
  * @part link - Link element styles.
@@ -4409,22 +6376,362 @@ class PdsLink {
4409
6376
  if (this.variant) {
4410
6377
  classNames.push('pds-link--' + this.variant);
4411
6378
  }
4412
- return classNames.join(' ');
6379
+ return classNames.join(' ');
6380
+ }
6381
+ setLinkStyles() {
6382
+ if (!this.color)
6383
+ return;
6384
+ const linkColors = {
6385
+ secondary: 'var(--pine-color-text-primary)',
6386
+ accent: 'var(--pine-color-accent)',
6387
+ danger: 'var(--pine-color-danger)',
6388
+ };
6389
+ const linkStyles = setColor(this.color, linkColors);
6390
+ return linkStyles;
6391
+ }
6392
+ render() {
6393
+ return (hAsync("a", { key: 'f2b3e7f26b833f7b187fce6f36c392415e2499df', class: this.classNames(), href: this.href, id: this.componentId, part: "link", target: this.external ? '_blank' : undefined, style: this.setLinkStyles() }, hAsync("slot", { key: 'c85c0add786ab8a90f7cb0d12b75d65a51b8e313' }, this.href), this.external &&
6394
+ hAsync("pds-icon", { key: '2ce9fa8d29168659546bc95b0633815978142bbb', icon: launch, size: this.fontSize })));
6395
+ }
6396
+ static get style() { return pdsLinkCss; }
6397
+ static get cmpMeta() { return {
6398
+ "$flags$": 9,
6399
+ "$tagName$": "pds-link",
6400
+ "$members$": {
6401
+ "color": [1],
6402
+ "componentId": [1, "component-id"],
6403
+ "external": [4],
6404
+ "variant": [1],
6405
+ "fontSize": [1, "font-size"],
6406
+ "href": [1]
6407
+ },
6408
+ "$listeners$": undefined,
6409
+ "$lazyBundleId$": "-",
6410
+ "$attrsToReflect$": []
6411
+ }; }
6412
+ }
6413
+
6414
+ const pdsLoaderCss = ":host{--loader-color:var(--pine-color-brand);-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-container-disabled);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)}";
6415
+
6416
+ /**
6417
+ * @slot label - Default slot for Loader label text.
6418
+ */
6419
+ class PdsLoader {
6420
+ constructor(hostRef) {
6421
+ registerInstance(this, hostRef);
6422
+ /**
6423
+ * If false, the loader will be hidden.
6424
+ */
6425
+ this.isLoading = true;
6426
+ /**
6427
+ * Determines whether the loader should display a label.
6428
+ */
6429
+ this.showLabel = false;
6430
+ /**
6431
+ * Sets the size of the spinner loader. Value can be preset or custom.
6432
+ */
6433
+ this.size = 'md';
6434
+ /**
6435
+ * Determines the type of loader.
6436
+ */
6437
+ this.variant = 'spinner';
6438
+ this.style = () => {
6439
+ if (this.size !== undefined) {
6440
+ return {
6441
+ height: this.loaderSize(),
6442
+ width: this.loaderSize(),
6443
+ };
6444
+ }
6445
+ };
6446
+ }
6447
+ loaderSize() {
6448
+ const sizes = {
6449
+ xs: '24px',
6450
+ sm: '32px',
6451
+ md: '48px',
6452
+ lg: '64px',
6453
+ xl: '80px',
6454
+ };
6455
+ if (sizes[this.size]) {
6456
+ return sizes[this.size];
6457
+ }
6458
+ else {
6459
+ return this.size;
6460
+ }
6461
+ }
6462
+ render() {
6463
+ return (hAsync(Host, { key: '5f9677b6338e4b1d7df0ab3182c91ecae4c5c857', class: `pds-loader ${this.isLoading ? '' : 'pds-loader--hidden'}`, "aria-hidden": !this.isLoading, "aria-busy": this.isLoading, "aria-live": "polite" }, this.variant === 'spinner' && (hAsync("div", { key: '5083b0fd6d468439dd0faa4375107c2cddc49812', class: "pds-loader--spinner" }, hAsync("svg", { key: '689659c659901091215e3745e1778613dc8c64dc', style: this.style(), viewBox: "0 0 200 200", fill: "none" }, hAsync("defs", { key: '2f20b260a1155a966abb9f8d0541374d707d4c09' }, hAsync("linearGradient", { key: '2049a48645d6c02c3e5b4a659cb3767af297172a', id: "spinner-secondHalf" }, hAsync("stop", { key: '8a51fd7117b39505d6e40ded168c1a323f19d791', offset: "0%", "stop-opacity": "0", "stop-color": "currentColor" }), hAsync("stop", { key: '7a5273675a64eb794b8bbe513fa3fbfddb2b8b6b', offset: "100%", "stop-opacity": "0.5", "stop-color": "currentColor" })), hAsync("linearGradient", { key: '12ea88879ebbd8c207e9d5e5838505796c747fd6', id: "spinner-firstHalf" }, hAsync("stop", { key: '08a2198273017b0feeb16ec93a1a1daed34ada94', offset: "0%", "stop-opacity": "1", "stop-color": "currentColor" }), hAsync("stop", { key: '02ac704dd21ba49f579f0f305123b53333ae669e', offset: "100%", "stop-opacity": "0.5", "stop-color": "currentColor" }))), hAsync("g", { key: 'feb3d05f93da9f8d67181864d318678d2930b1dd', class: "pds-loader__spinner-path" }, hAsync("path", { key: 'dde73e34e0a78bdd87f33212eb21a25e0c212b4f', stroke: "url(#spinner-secondHalf)", d: "M 4 100 A 96 96 0 0 1 196 100" }), hAsync("path", { key: 'ce0c541df6294f6b08772d89cf791f0e6342ec0b', stroke: "url(#spinner-firstHalf)", d: "M 196 100 A 96 96 0 0 1 4 100" }), hAsync("path", { key: '25fae107003b2c9172131b54a97ecd9780ac4e42', stroke: "currentColor", "stroke-linecap": "round", d: "M 4 100 A 96 96 0 0 1 4 98" }))))), this.variant === 'typing' && (hAsync("div", { key: '7b467d87b5d4c0dbd96a277868bc587544259cff', class: "pds-loader--typing" }, hAsync("span", { key: '1e0833eec5fc48e990bbfa7ce4e724a1eee019ad' }), hAsync("span", { key: 'ef517f1aafca68e77fed199552a7a468ac8b37b2' }), hAsync("span", { key: 'b6379ba5b3e1fb88c5ce0478bb51bf4471bd6dd1' }))), hAsync("div", { key: '6148a67bddb3749b8778f5a97d381f01096fda23', class: `pds-loader__label ${this.showLabel ? '' : 'pds-loader--hidden'}` }, hAsync("slot", { key: '774fd7274d111b17afe9ef0740e64448c6fcd8d4', name: "label" }, "Loading..."))));
6464
+ }
6465
+ static get style() { return pdsLoaderCss; }
6466
+ static get cmpMeta() { return {
6467
+ "$flags$": 9,
6468
+ "$tagName$": "pds-loader",
6469
+ "$members$": {
6470
+ "isLoading": [4, "is-loading"],
6471
+ "showLabel": [4, "show-label"],
6472
+ "size": [513],
6473
+ "variant": [1]
6474
+ },
6475
+ "$listeners$": undefined,
6476
+ "$lazyBundleId$": "-",
6477
+ "$attrsToReflect$": [["size", "size"]]
6478
+ }; }
6479
+ }
6480
+
6481
+ 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 0.2s ease, visibility 0.2s ease;transition:opacity 0.2s ease, visibility 0.2s ease;visibility:hidden;width:100%;z-index:1000}@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:1001}.pds-modal__backdrop::-webkit-backdrop{background:transparent}.pds-modal__backdrop::-ms-backdrop{background:transparent}.pds-modal__backdrop::backdrop{background:transparent}.pds-modal__backdrop.open{opacity:1;visibility:visible}.pds-modal{background:var(--pine-color-background-container);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:calc(100vh - (6vh + 96px));width:100%}@media (min-width: 992px){.pds-modal{-webkit-margin-before:6vh;margin-block-start:6vh}}@media (min-width: 1200px){.pds-modal{-webkit-margin-before:8vh;margin-block-start:8vh}}.pds-modal--sm{max-width:520px}.pds-modal--md{max-width:700px}.pds-modal--lg{max-width:900px}.pds-modal--fullscreen{border-radius:0;height:100%;margin:0;max-height:100vh;max-width:100%}.pds-modal--fullscreen .pds-modal-content{-ms-flex:1;flex:1}";
6482
+
6483
+ class PdsModal {
6484
+ constructor(hostRef) {
6485
+ registerInstance(this, hostRef);
6486
+ this.pdsModalOpen = createEvent(this, "pdsModalOpen");
6487
+ this.pdsModalClose = createEvent(this, "pdsModalClose");
6488
+ this.focusableElements = [];
6489
+ /**
6490
+ * Whether the modal can be dismissed by clicking the backdrop
6491
+ * @default true
6492
+ */
6493
+ this.backdropDismiss = true;
6494
+ /**
6495
+ * Whether the modal is open
6496
+ * @default false
6497
+ */
6498
+ this.open = false;
6499
+ /**
6500
+ * The size of the modal
6501
+ * @default 'md'
6502
+ */
6503
+ this.size = 'md';
6504
+ /**
6505
+ * Stores the list of focusable elements in the modal
6506
+ */
6507
+ this.focusableElementsArray = [];
6508
+ this.handleBackdropClick = (e) => {
6509
+ if (!this.backdropDismiss || !this.open)
6510
+ return;
6511
+ if (e.target.classList.contains('pds-modal__backdrop')) {
6512
+ e.stopPropagation();
6513
+ // Only close if this is the innermost modal
6514
+ if (this.isInnermostModal()) {
6515
+ this.hideModal();
6516
+ }
6517
+ }
6518
+ };
6519
+ this.handleKeyDown = (e) => {
6520
+ // If the modal is not open, don't handle any keyboard events
6521
+ if (!this.open)
6522
+ return;
6523
+ // Handle Escape key to close the modal
6524
+ if (e.key === 'Escape') {
6525
+ // Only close if this is the innermost modal
6526
+ if (this.isInnermostModal()) {
6527
+ e.preventDefault();
6528
+ this.hideModal();
6529
+ }
6530
+ return;
6531
+ }
6532
+ // Handle Tab key for focus trapping
6533
+ if (e.key === 'Tab') {
6534
+ // If there are no focusable elements, do nothing
6535
+ if (this.focusableElements.length === 0)
6536
+ return;
6537
+ // Get the first and last focusable elements
6538
+ const firstFocusableElement = this.focusableElements[0];
6539
+ const lastFocusableElement = this.focusableElements[this.focusableElements.length - 1];
6540
+ // Get the current active element
6541
+ const activeElement = document.activeElement;
6542
+ // Check if we need to wrap focus
6543
+ const isFirstElement = activeElement === firstFocusableElement ||
6544
+ firstFocusableElement.contains(activeElement);
6545
+ const isLastElement = activeElement === lastFocusableElement ||
6546
+ lastFocusableElement.contains(activeElement);
6547
+ // If shift + tab is pressed and focus is on the first element, move to the last element
6548
+ if (e.shiftKey && isFirstElement) {
6549
+ e.preventDefault();
6550
+ this.focusElement(lastFocusableElement);
6551
+ }
6552
+ // If tab is pressed and focus is on the last element, move to the first element
6553
+ else if (!e.shiftKey && isLastElement) {
6554
+ e.preventDefault();
6555
+ this.focusElement(firstFocusableElement);
6556
+ }
6557
+ }
6558
+ };
6559
+ }
6560
+ componentDidLoad() {
6561
+ this.modalRef = this.el.querySelector('.pds-modal__backdrop');
6562
+ // Add keyboard event listener
6563
+ document.addEventListener('keydown', this.handleKeyDown);
6564
+ }
6565
+ disconnectedCallback() {
6566
+ // Clean up event listener
6567
+ document.removeEventListener('keydown', this.handleKeyDown);
6568
+ }
6569
+ handleOpenChange(newValue) {
6570
+ if (newValue) {
6571
+ this.showModal();
6572
+ }
6573
+ else {
6574
+ this.hideModal();
6575
+ }
6576
+ }
6577
+ /**
6578
+ * Updates the list of focusable elements in the modal
6579
+ */
6580
+ updateFocusableElements() {
6581
+ if (!this.modalRef)
6582
+ return;
6583
+ // Get all focusable elements within the modal
6584
+ const selector = [
6585
+ 'a[href]',
6586
+ 'button:not([disabled])',
6587
+ 'input:not([disabled])',
6588
+ 'select:not([disabled])',
6589
+ 'textarea:not([disabled])',
6590
+ '[tabindex]:not([tabindex="-1"])',
6591
+ 'pds-button:not([disabled])',
6592
+ 'pds-link:not([disabled])',
6593
+ 'pds-input:not([disabled])',
6594
+ 'pds-checkbox:not([disabled])',
6595
+ 'pds-radio:not([disabled])',
6596
+ 'pds-switch:not([disabled])',
6597
+ 'pds-select:not([disabled])',
6598
+ ].join(',');
6599
+ this.focusableElements = Array.from(this.modalRef.querySelectorAll(selector));
6600
+ // Filter out elements with display: none or visibility: hidden
6601
+ this.focusableElements = this.focusableElements.filter(el => {
6602
+ const style = window.getComputedStyle(el);
6603
+ return style.display !== 'none' && style.visibility !== 'hidden';
6604
+ });
6605
+ }
6606
+ /**
6607
+ * Sets focus to the first focusable element in the modal
6608
+ */
6609
+ setInitialFocus() {
6610
+ if (this.focusableElements.length === 0)
6611
+ return;
6612
+ // Focus the first focusable element
6613
+ const firstElement = this.focusableElements[0];
6614
+ // For web components, we need to ensure they're properly focused
6615
+ this.focusElement(firstElement);
6616
+ }
6617
+ /**
6618
+ * Helper method to focus an element, with special handling for web components
6619
+ */
6620
+ focusElement(element) {
6621
+ if (!element)
6622
+ return;
6623
+ try {
6624
+ // Try standard focus first
6625
+ element.focus();
6626
+ // Check if focus worked
6627
+ setTimeout(() => {
6628
+ if (document.activeElement !== element) {
6629
+ // For web components, try to find a focusable element inside
6630
+ if (element.shadowRoot) {
6631
+ const focusableInShadow = element.shadowRoot.querySelector('button, [tabindex], input, a[href]');
6632
+ if (focusableInShadow) {
6633
+ focusableInShadow.focus();
6634
+ }
6635
+ }
6636
+ }
6637
+ }, 0);
6638
+ }
6639
+ catch (error) {
6640
+ console.error('Error focusing element:', error);
6641
+ }
6642
+ }
6643
+ /**
6644
+ * Opens the modal
6645
+ */
6646
+ async showModal() {
6647
+ if (this.modalRef) {
6648
+ try {
6649
+ // Store the currently focused element to restore focus when modal closes
6650
+ this.previousActiveElement = document.activeElement;
6651
+ // Use native dialog showModal method which makes the rest of the page inert
6652
+ this.modalRef.showModal();
6653
+ this.open = true;
6654
+ // Update focusable elements and set initial focus
6655
+ // Using a longer timeout to ensure all components are fully rendered
6656
+ setTimeout(() => {
6657
+ this.updateFocusableElements();
6658
+ this.setInitialFocus();
6659
+ this.pdsModalOpen.emit();
6660
+ }, 100);
6661
+ }
6662
+ catch (error) {
6663
+ console.error('Failed to show modal:', error);
6664
+ }
6665
+ }
6666
+ }
6667
+ /**
6668
+ * Closes the modal
6669
+ */
6670
+ async hideModal() {
6671
+ if (this.modalRef) {
6672
+ try {
6673
+ this.modalRef.close();
6674
+ this.open = false;
6675
+ // Restore focus to the element that was focused before the modal was opened
6676
+ if (this.previousActiveElement && typeof this.previousActiveElement.focus === 'function') {
6677
+ this.previousActiveElement.focus();
6678
+ }
6679
+ this.pdsModalClose.emit();
6680
+ }
6681
+ catch (error) {
6682
+ console.error('Failed to hide modal:', error);
6683
+ }
6684
+ }
6685
+ }
6686
+ /**
6687
+ * Gets the z-index of a modal's backdrop element
6688
+ */
6689
+ getBackdropZIndex(modal) {
6690
+ const backdrop = modal.querySelector('.pds-modal__backdrop');
6691
+ return backdrop ? parseInt(getComputedStyle(backdrop).zIndex, 10) : -1;
6692
+ }
6693
+ /**
6694
+ * Checks if this modal is the innermost (highest z-index) modal
6695
+ */
6696
+ isInnermostModal() {
6697
+ // Find all open modals
6698
+ const openModals = Array.from(document.querySelectorAll('pds-modal')).filter(modal => modal.open);
6699
+ if (openModals.length === 0)
6700
+ return false;
6701
+ // Get this modal's backdrop element
6702
+ const thisBackdrop = this.el.querySelector('.pds-modal__backdrop');
6703
+ if (!thisBackdrop)
6704
+ return false;
6705
+ // Get computed z-index of all open modal backdrops
6706
+ const modalZIndexes = openModals.map(modal => this.getBackdropZIndex(modal));
6707
+ // Get the highest z-index
6708
+ const maxZIndex = Math.max(...modalZIndexes);
6709
+ // Check if this modal's backdrop has the highest z-index
6710
+ const thisZIndex = this.getBackdropZIndex(this.el);
6711
+ return thisZIndex === maxZIndex;
4413
6712
  }
4414
6713
  render() {
4415
- return (hAsync("a", { key: '7ac75452091305e238c20ef1fc2055fe2f34fb04', class: this.classNames(), href: this.href, id: this.componentId, target: this.external ? '_blank' : undefined, part: "link" }, hAsync("slot", { key: '8f21b34931f85867b91e7c6c3fcc1952b9c430cd' }, this.href), this.external &&
4416
- hAsync("pds-icon", { key: '60f1d607df5bf4cac7a9786f1560702719e73ff5', icon: launch, size: this.fontSize })));
6714
+ return (hAsync("dialog", { key: '6ec691cfcf4865baeeba14f097d5e647a3201dba', class: {
6715
+ 'pds-modal__backdrop': true,
6716
+ 'open': this.open
6717
+ }, "aria-modal": "true", "aria-labelledby": `${this.componentId}-heading`, onClick: this.handleBackdropClick }, hAsync("div", { key: 'b7c4681717bfc0d095653c7dcf1a0e42cf069e8b', class: `pds-modal pds-modal--${this.size} pds-modal--scrollable` }, hAsync("slot", { key: '9ca7f711579587c2f49fd19f81a488192d62ce72' }))));
4417
6718
  }
4418
- static get style() { return pdsLinkCss; }
6719
+ get el() { return getElement(this); }
6720
+ static get watchers() { return {
6721
+ "open": ["handleOpenChange"]
6722
+ }; }
6723
+ static get style() { return pdsModalCss; }
4419
6724
  static get cmpMeta() { return {
4420
- "$flags$": 9,
4421
- "$tagName$": "pds-link",
6725
+ "$flags$": 4,
6726
+ "$tagName$": "pds-modal",
4422
6727
  "$members$": {
6728
+ "backdropDismiss": [4, "backdrop-dismiss"],
4423
6729
  "componentId": [1, "component-id"],
4424
- "external": [4],
4425
- "variant": [1],
4426
- "fontSize": [1, "font-size"],
4427
- "href": [1]
6730
+ "open": [1028],
6731
+ "size": [1],
6732
+ "focusableElementsArray": [32],
6733
+ "showModal": [64],
6734
+ "hideModal": [64]
4428
6735
  },
4429
6736
  "$listeners$": undefined,
4430
6737
  "$lazyBundleId$": "-",
@@ -4432,70 +6739,139 @@ class PdsLink {
4432
6739
  }; }
4433
6740
  }
4434
6741
 
4435
- const pdsLoaderCss = ":host{--loader-color:var(--pine-color-brand);-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-container-disabled);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)}";
6742
+ const pdsModalContentCss = "pds-modal-content{display:block;-ms-flex:1 1 auto;flex:1 1 auto;overflow-y:auto;width:100%}pds-modal-content:has(.pds-modal-content--border-none){border:0}pds-modal-content:has(.pds-modal-content--border-both){-webkit-border-after:1px solid var(--pine-color-grey-200);border-block-end:1px solid var(--pine-color-grey-200);-webkit-border-before:1px solid var(--pine-color-grey-200);border-block-start:1px solid var(--pine-color-grey-200)}pds-modal-content:has(.pds-modal-content--border-top){-webkit-border-before:1px solid var(--pine-color-grey-200);border-block-start:1px solid var(--pine-color-grey-200)}pds-modal-content:has(.pds-modal-content--border-bottom){-webkit-border-after:1px solid var(--pine-color-grey-200);border-block-end:1px solid var(--pine-color-grey-200)}.pds-modal-content{display:block;-ms-flex:1 1 auto;flex:1 1 auto;min-height:0;overflow-y:auto;width:100%}";
4436
6743
 
4437
- /**
4438
- * @slot label - Default slot for Loader label text.
4439
- */
4440
- class PdsLoader {
6744
+ class PdsModalContent {
4441
6745
  constructor(hostRef) {
4442
6746
  registerInstance(this, hostRef);
4443
6747
  /**
4444
- * If false, the loader will be hidden.
4445
- */
4446
- this.isLoading = true;
4447
- /**
4448
- * Determines whether the loader should display a label.
4449
- */
4450
- this.showLabel = false;
4451
- /**
4452
- * Sets the size of the spinner loader. Value can be preset or custom.
4453
- */
4454
- this.size = 'md';
4455
- /**
4456
- * Determines the type of loader.
6748
+ * The border style for the content area. Automatically set based on available space of the modal content.
6749
+ * @default 'none'
4457
6750
  */
4458
- this.variant = 'spinner';
4459
- this.style = () => {
4460
- if (this.size !== undefined) {
4461
- return {
4462
- height: this.loaderSize(),
4463
- width: this.loaderSize(),
4464
- };
4465
- }
4466
- };
6751
+ this.border = 'none';
6752
+ this.contentMaxHeight = '60vh';
4467
6753
  }
4468
- loaderSize() {
4469
- const sizes = {
4470
- xs: '24px',
4471
- sm: '32px',
4472
- md: '48px',
4473
- lg: '64px',
4474
- xl: '80px',
4475
- };
4476
- if (sizes[this.size]) {
4477
- return sizes[this.size];
6754
+ componentDidLoad() {
6755
+ const slotContent = this.el.firstElementChild;
6756
+ const isScrollable = slotContent.scrollHeight > slotContent.clientHeight;
6757
+ this.border = isScrollable ? 'both' : 'none';
6758
+ this.calculateMaxHeight();
6759
+ window.addEventListener('resize', this.calculateMaxHeight.bind(this));
6760
+ }
6761
+ disconnectedCallback() {
6762
+ window.removeEventListener('resize', this.calculateMaxHeight.bind(this));
6763
+ if (this.mutationObserver) {
6764
+ this.mutationObserver.disconnect();
4478
6765
  }
4479
- else {
4480
- return this.size;
6766
+ }
6767
+ /**
6768
+ * Calculates the max-height based on header and footer heights
6769
+ */
6770
+ calculateMaxHeight() {
6771
+ // Find the modal element (parent of this component)
6772
+ const modalElement = this.el.closest('pds-modal');
6773
+ if (!modalElement)
6774
+ return;
6775
+ setTimeout(() => {
6776
+ // Find header and footer elements
6777
+ const headerElement = modalElement.querySelector('pds-modal-header');
6778
+ const footerElement = modalElement.querySelector('pds-modal-footer');
6779
+ // Get header and footer heights
6780
+ const headerHeight = headerElement ? headerElement.offsetHeight : 0;
6781
+ const footerHeight = footerElement ? footerElement.offsetHeight : 0;
6782
+ // Set the max-height as a calculation
6783
+ if (headerHeight > 0 || footerHeight > 0) {
6784
+ // Calculate the available height by subtracting:
6785
+ // 1. Header and footer heights
6786
+ // 2. Modal padding (48px)
6787
+ // 3. Additional space for modal positioning (6vh)
6788
+ // 4. Extra adjustment for perfect fit (50px)
6789
+ const viewportAdjustment = Math.round(window.innerHeight * 0.06); // 6vh approximation
6790
+ const totalReduction = headerHeight + footerHeight + 48 + viewportAdjustment + 50;
6791
+ // Set the content max height
6792
+ this.contentMaxHeight = `calc(100vh - ${totalReduction}px)`;
6793
+ // Apply the style directly to ensure it takes effect
6794
+ const contentElement = this.el.querySelector('.pds-modal-content');
6795
+ if (contentElement) {
6796
+ contentElement.style.maxHeight = this.contentMaxHeight;
6797
+ }
6798
+ }
6799
+ else {
6800
+ this.contentMaxHeight = '60vh'; // Default fallback
6801
+ }
6802
+ }, 100); // Delay to ensure DOM is fully rendered
6803
+ // Set up mutation observer if not already done
6804
+ if (!this.mutationObserver && modalElement) {
6805
+ this.mutationObserver = new MutationObserver(() => {
6806
+ this.calculateMaxHeight();
6807
+ });
6808
+ // Observe changes to the modal's children
6809
+ this.mutationObserver.observe(modalElement, {
6810
+ childList: true,
6811
+ subtree: true,
6812
+ attributes: true,
6813
+ attributeFilter: ['style', 'class']
6814
+ });
4481
6815
  }
4482
6816
  }
4483
6817
  render() {
4484
- return (hAsync(Host, { key: 'c01b34ac171a5581e1456737f17043cf8b47af8e', class: `pds-loader ${this.isLoading ? '' : 'pds-loader--hidden'}`, "aria-hidden": !this.isLoading, "aria-busy": this.isLoading, "aria-live": "polite" }, this.variant === 'spinner' && (hAsync("div", { key: 'ffd9e050fef503f1614c06896b8d888202df8656', class: "pds-loader--spinner" }, hAsync("svg", { key: '056b84ca6f89f6dc93f72d115c9cad3efa9f468d', style: this.style(), viewBox: "0 0 200 200", fill: "none" }, hAsync("defs", { key: '85bfeab6bc686de25e4156154273067fbcb3ba0b' }, hAsync("linearGradient", { key: 'd32d0c03f7f851cd56365af16298c4da0db74ec8', id: "spinner-secondHalf" }, hAsync("stop", { key: '1113756349854bc4ab581c0ce282dcd54def3891', offset: "0%", "stop-opacity": "0", "stop-color": "currentColor" }), hAsync("stop", { key: '0f649b9e828409cab1b67a26d9a35d35e9fe7b0a', offset: "100%", "stop-opacity": "0.5", "stop-color": "currentColor" })), hAsync("linearGradient", { key: '4aabb11799007ae40d7e112696809b35b652bb46', id: "spinner-firstHalf" }, hAsync("stop", { key: '9624d9de9eaba0f29264d3b76bc27287bbc1b68b', offset: "0%", "stop-opacity": "1", "stop-color": "currentColor" }), hAsync("stop", { key: '37fd5de86c5db30731b4dc39b1cd2cb6afbe7393', offset: "100%", "stop-opacity": "0.5", "stop-color": "currentColor" }))), hAsync("g", { key: '06ccf17d191612cd5566714e69299a9e749618da', class: "pds-loader__spinner-path" }, hAsync("path", { key: '9b5556b7c20e3c0f7effaa6d09120baa0b07e614', stroke: "url(#spinner-secondHalf)", d: "M 4 100 A 96 96 0 0 1 196 100" }), hAsync("path", { key: 'aacb689fcace08aa9bee3c3eb2ee1b571ed1b9ee', stroke: "url(#spinner-firstHalf)", d: "M 196 100 A 96 96 0 0 1 4 100" }), hAsync("path", { key: '875a3faf04e718f095d616db6a2cd1c7bcde2f14', stroke: "currentColor", "stroke-linecap": "round", d: "M 4 100 A 96 96 0 0 1 4 98" }))))), this.variant === 'typing' && (hAsync("div", { key: '515a530c8acd7807d45c3f54ff1d264002e3e627', class: "pds-loader--typing" }, hAsync("span", { key: 'bbb55e71064ab200ca388360a8a0986eda5b2008' }), hAsync("span", { key: '77f42ba8124be61565479f21ed9253d928da49b3' }), hAsync("span", { key: 'f8ef81fc9a9bf1a24f0bb3501c49291fe5028c5a' }))), hAsync("div", { key: 'fd73795dfb15359ff655ed6abf4b2e41faa079a7', class: `pds-loader__label ${this.showLabel ? '' : 'pds-loader--hidden'}` }, hAsync("slot", { key: 'cdfb46d54431a84b3ceaaaf94d48f69c42956c8d', name: "label" }, "Loading..."))));
6818
+ return (hAsync(Host, { key: '6b214e3462d8e1e1cb58d6c0075b3143e0db2d51' }, hAsync("div", { key: '2f6a2daeb09a99f096cd46230813fe1b9a6950e9', class: {
6819
+ 'pds-modal-content': true,
6820
+ [`pds-modal-content--border-${this.border}`]: true
6821
+ }, style: { maxHeight: this.contentMaxHeight }, tabindex: "-1" }, hAsync("slot", { key: '8392cc48a2dba0f32d4a83e642bd3f295832251b' }))));
4485
6822
  }
4486
- static get style() { return pdsLoaderCss; }
6823
+ get el() { return getElement(this); }
6824
+ static get style() { return pdsModalContentCss; }
4487
6825
  static get cmpMeta() { return {
4488
- "$flags$": 9,
4489
- "$tagName$": "pds-loader",
6826
+ "$flags$": 4,
6827
+ "$tagName$": "pds-modal-content",
4490
6828
  "$members$": {
4491
- "isLoading": [4, "is-loading"],
4492
- "showLabel": [4, "show-label"],
4493
- "size": [513],
4494
- "variant": [1]
6829
+ "border": [513],
6830
+ "contentMaxHeight": [32]
4495
6831
  },
4496
6832
  "$listeners$": undefined,
4497
6833
  "$lazyBundleId$": "-",
4498
- "$attrsToReflect$": [["size", "size"]]
6834
+ "$attrsToReflect$": [["border", "border"]]
6835
+ }; }
6836
+ }
6837
+
6838
+ const pdsModalFooterCss = "pds-modal-footer{display:block;width:100%}.pds-modal__footer{width:100%}";
6839
+
6840
+ class PdsModalFooter {
6841
+ constructor(hostRef) {
6842
+ registerInstance(this, hostRef);
6843
+ }
6844
+ render() {
6845
+ return (hAsync("footer", { key: '63d1121b84d10ea99354d07b029b7625d52d9095', class: "pds-modal__footer" }, hAsync("slot", { key: 'dd08fc600f122e422ccd3161bc558f3b9cc075f9' })));
6846
+ }
6847
+ static get style() { return pdsModalFooterCss; }
6848
+ static get cmpMeta() { return {
6849
+ "$flags$": 4,
6850
+ "$tagName$": "pds-modal-footer",
6851
+ "$members$": undefined,
6852
+ "$listeners$": undefined,
6853
+ "$lazyBundleId$": "-",
6854
+ "$attrsToReflect$": []
6855
+ }; }
6856
+ }
6857
+
6858
+ const pdsModalHeaderCss = "pds-modal-header{display:block;width:100%}.pds-modal__header{width:100%}";
6859
+
6860
+ class PdsModalHeader {
6861
+ constructor(hostRef) {
6862
+ registerInstance(this, hostRef);
6863
+ }
6864
+ render() {
6865
+ return (hAsync("header", { key: 'c832013aee204170c29336e931d36f1eda667f11', class: "pds-modal__header" }, hAsync("slot", { key: '19a76b689a8d8bf116f7061fd7c32415da4299e1' })));
6866
+ }
6867
+ static get style() { return pdsModalHeaderCss; }
6868
+ static get cmpMeta() { return {
6869
+ "$flags$": 4,
6870
+ "$tagName$": "pds-modal-header",
6871
+ "$members$": undefined,
6872
+ "$listeners$": undefined,
6873
+ "$lazyBundleId$": "-",
6874
+ "$attrsToReflect$": []
4499
6875
  }; }
4500
6876
  }
4501
6877
 
@@ -4553,27 +6929,59 @@ class PdsPopover {
4553
6929
  const offset = 8;
4554
6930
  switch (this.placement) {
4555
6931
  case 'top':
6932
+ top = triggerRect.top - popoverRect.height - offset;
6933
+ left = triggerRect.left + (triggerRect.width - popoverRect.width) / 2;
6934
+ break;
6935
+ case 'top-start':
4556
6936
  top = triggerRect.top - popoverRect.height - offset;
4557
6937
  left = triggerRect.left;
4558
6938
  break;
6939
+ case 'top-end':
6940
+ top = triggerRect.top - popoverRect.height - offset;
6941
+ left = triggerRect.right - popoverRect.width;
6942
+ break;
4559
6943
  case 'right':
6944
+ top = triggerRect.top + (triggerRect.height - popoverRect.height) / 2;
6945
+ left = triggerRect.right + offset;
6946
+ break;
6947
+ case 'right-start':
4560
6948
  top = triggerRect.top;
4561
6949
  left = triggerRect.right + offset;
4562
6950
  break;
6951
+ case 'right-end':
6952
+ top = triggerRect.bottom - popoverRect.height;
6953
+ left = triggerRect.right + offset;
6954
+ break;
4563
6955
  case 'bottom':
6956
+ top = triggerRect.bottom + offset;
6957
+ left = triggerRect.left + (triggerRect.width - popoverRect.width) / 2;
6958
+ break;
6959
+ case 'bottom-start':
4564
6960
  top = triggerRect.bottom + offset;
4565
6961
  left = triggerRect.left;
4566
6962
  break;
6963
+ case 'bottom-end':
6964
+ top = triggerRect.bottom + offset;
6965
+ left = triggerRect.right - popoverRect.width;
6966
+ break;
4567
6967
  case 'left':
6968
+ top = triggerRect.top + (triggerRect.height - popoverRect.height) / 2;
6969
+ left = triggerRect.left - popoverRect.width - offset;
6970
+ break;
6971
+ case 'left-start':
4568
6972
  top = triggerRect.top;
4569
6973
  left = triggerRect.left - popoverRect.width - offset;
4570
6974
  break;
6975
+ case 'left-end':
6976
+ top = triggerRect.bottom - popoverRect.height;
6977
+ left = triggerRect.left - popoverRect.width - offset;
6978
+ break;
4571
6979
  }
4572
6980
  popoverEl.style.top = `${top}px`;
4573
6981
  popoverEl.style.left = `${left}px`;
4574
6982
  }
4575
6983
  render() {
4576
- return (hAsync(Host, { key: '3bed0c38e97500efb2bffcef8321a6b38215c434' }, hAsync("button", { key: '0db59e1815568cb980ce0bbe5ef3502177015a1d', class: "pds-popover__trigger", popoverTarget: this.componentId, popoverTargetAction: this.popoverTargetAction, onClick: this.handleClick }, this.text), hAsync("div", { key: 'd8c70cd36614cb3fc83669a843b00af0d18b03d4', class: `pds-popover ${this.active ? 'pds-popover--active' : ''}`, id: this.componentId, popover: this.popoverType, style: { maxWidth: `${this.maxWidth}px` } }, hAsync("slot", { key: 'e7408b199525e88c0e975f9cc3e96200f82ea23e' }))));
6984
+ return (hAsync(Host, { key: '35e5f4c21884f02b17dcb920e5c7ba73b8bed849' }, hAsync("button", { key: '586880a84a4ad659a00500206e5b3c6c5e7e1a37', class: "pds-popover__trigger", popoverTarget: this.componentId, popoverTargetAction: this.popoverTargetAction, onClick: this.handleClick }, this.text), hAsync("div", { key: 'fcb97e9b4033eef58bdca4915572b986dabde43c', class: `pds-popover ${this.active ? 'pds-popover--active' : ''}`, id: this.componentId, popover: this.popoverType, style: { maxWidth: `${this.maxWidth}px` } }, hAsync("slot", { key: '1ffb626c69e06f17379ebf4ff4d5498f030909e8' }))));
4577
6985
  }
4578
6986
  get el() { return getElement(this); }
4579
6987
  static get style() { return pdsPopoverCss; }
@@ -4617,7 +7025,7 @@ class PdsProgress {
4617
7025
  this.showPercent = false;
4618
7026
  }
4619
7027
  render() {
4620
- return (hAsync(Host, { key: 'a0a7cde165c1acc884366dfe7a368db5d7c4150e', class: this.animated ? { 'is-animated': this.animated } : '' }, hAsync("div", { key: 'c2a8f262e0a6393448a0bc8a05dc49f30c451754', class: "pds-progress" }, hAsync("label", { key: '422c51d5b06ef6d99e23cb2721b861ba9611b1df', class: "pds-progress__label", htmlFor: this.componentId }, this.label), hAsync("progress", { key: '57081cc95c8bb44d6fa26cd7d1f7933108982165', id: this.componentId, max: "100", style: this.fillColor ? { '--color-progress-fill': this.fillColor } : {}, value: this.percent })), this.showPercent && hAsync("div", { key: '37b88967a8584b43407314b0ba70faf4e43a9e5a', class: "pds-progress__percentage" }, this.percent, "%")));
7028
+ return (hAsync(Host, { key: '2a7768cc769f62579bfee6d8f9e6109d10df0aaf', class: this.animated ? { 'is-animated': this.animated } : '' }, hAsync("div", { key: '1eef3758e8c6e470f8cdd170e8d6c49e25bf9aa3', class: "pds-progress" }, hAsync("label", { key: '5b75150a747a15379fdf0ee23b1be561e6d990e7', class: "pds-progress__label", htmlFor: this.componentId }, this.label), hAsync("progress", { key: 'e20ad7d705d97ac11173ae515332fc1620a96328', id: this.componentId, max: "100", style: this.fillColor ? { '--color-progress-fill': this.fillColor } : {}, value: this.percent })), this.showPercent && hAsync("div", { key: '8bafb39b5976149b80e720952e625f60f1e3c73c', class: "pds-progress__percentage" }, this.percent, "%")));
4621
7029
  }
4622
7030
  static get style() { return pdsProgressCss; }
4623
7031
  static get cmpMeta() { return {
@@ -4685,9 +7093,9 @@ class PdsRadio {
4685
7093
  return classNames.join(' ');
4686
7094
  }
4687
7095
  render() {
4688
- return (hAsync(Host, { key: '7366c979970c03d9c6b26d355ba2f14c2e040907', class: this.classNames() }, hAsync("label", { key: 'c48405dc725f4d7b0a027e66c3b0b04e72843445', htmlFor: this.componentId }, hAsync("input", { key: 'cd38a200a73572d2f07ada9bc1ec08cae0863044', "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage), "aria-invalid": this.invalid ? "true" : undefined, type: "radio", id: this.componentId, name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onChange: this.handleRadioChange }), hAsync("span", { key: 'a21fb68b4326afb2bf25b08cf6022cd26f3c83ba', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), this.helperMessage &&
4689
- hAsync("div", { key: 'b4c201465e085096ac5fac05e43b01cee045310e', class: 'pds-radio__message', id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
4690
- hAsync("div", { key: '2c0475efbe1ebedd762de9d432864f5dab8f0448', class: `pds-radio__message pds-radio__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: '40ece3a429d9475c17f262d772cdb7332a7089b2', icon: danger, size: "small" }), this.errorMessage)));
7096
+ return (hAsync(Host, { key: '8c215fa4193cf8bd246cd83edf97b8316685714e', class: this.classNames() }, hAsync("label", { key: '578530f26dd25f73ccbbb39c773290cd275920cf', htmlFor: this.componentId }, hAsync("input", { key: '9ab61a2683246fae862feb5e432a0872288b7a87', "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage), "aria-invalid": this.invalid ? "true" : undefined, type: "radio", id: this.componentId, name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onChange: this.handleRadioChange }), hAsync("span", { key: 'f48c47ddb347bf0d7388359665dbbf3abf1b4859', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), this.helperMessage &&
7097
+ hAsync("div", { key: 'b8dbb34af90eed82f69621ceaadd8da668f0b3de', class: 'pds-radio__message', id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
7098
+ hAsync("div", { key: 'e777e4f2397ba833aefb7e8cd4ab9a32ea93685a', class: `pds-radio__message pds-radio__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: '13bd73d91bb3d676757ac9f4dcfcef7d2a5fcc55', icon: danger, size: "small" }), this.errorMessage)));
4691
7099
  }
4692
7100
  static get style() { return labelCss$3 + pdsRadioCss; }
4693
7101
  static get cmpMeta() { return {
@@ -4749,7 +7157,7 @@ class PdsRow {
4749
7157
  })), (this.minHeight && {
4750
7158
  'min-height': this.minHeight,
4751
7159
  }));
4752
- return hAsync(Host, { key: 'e898a1a24bbb1177b024d2c87d9388b136c8bde9', class: `pds-row ${rowClasses}`, style: rowInlineStyles });
7160
+ return hAsync(Host, { key: '7641ed5798525661b1a100bfbce60ed271e76887', class: `pds-row ${rowClasses}`, style: rowInlineStyles });
4753
7161
  }
4754
7162
  static get style() { return pdsRowCss; }
4755
7163
  static get cmpMeta() { return {
@@ -4774,7 +7182,7 @@ const pdsSelectTokensCss = ":host{--pine-select-color-background-danger:var(--pi
4774
7182
 
4775
7183
  const labelCss$2 = ":host{display:inline-block}:host([aria-disabled=true]) label{color:var(--pine-color-text-label-disabled)}:host([aria-readonly=true]) label{color:var(--pine-color-text-label-readonly)}label{color:var(--pine-color-text-label);font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing)}";
4776
7184
 
4777
- const pdsSelectCss = ":host .hidden,:host :host([hidden]){display:none}.pds-select{display:grid;-ms-flex-direction:column;flex-direction:column;grid-template-areas:\"label label\" \"field field\" \"message message\";grid-template-columns:1fr minmax(2rem, -webkit-min-content);grid-template-columns:1fr minmax(2rem, min-content);grid-template-rows:-webkit-min-content -webkit-min-content -webkit-min-content;grid-template-rows:min-content min-content min-content;position:relative;width:100%}label{grid-area:label;-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--pine-color-background-container);border:var(--pine-border);border-radius:var(--pine-dimension-125);font:var(--pine-typography-body);grid-area:field;letter-spacing:var(--pine-letter-spacing);padding:var(--pine-dimension-xs) var(--pine-dimension-150);-webkit-padding-end:var(--pine-dimension-450);padding-inline-end:var(--pine-dimension-450);position:relative}select:hover{border-color:var(--pine-color-border-hover);cursor:pointer}select:focus-visible{border-color:var(--pine-color-border-active);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}select:disabled{background-color:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-disabled);cursor:not-allowed}select:has(~.pds-select__message .pds-select__error-message){background-color:var(--pine-select-color-background-danger);border-color:var(--pine-color-border-danger)}select:has(~.pds-select__message .pds-select__error-message):focus-visible{outline-color:var(--pine-color-focus-ring-danger)}:host(.is-invalid) select{background-color:var(--pine-select-color-background-danger);border-color:var(--pine-color-border-danger)}:host(.is-invalid) select:focus-visible{outline-color:var(--pine-color-focus-ring-danger)}.pds-select__error-message,.pds-select__helper-message{font:var(--pine-typography-body-sm-medium);-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs)}.pds-select__error-message{-ms-flex-align:center;align-items:center;color:var(--pine-color-text-message-danger);display:-ms-flexbox;display:flex;gap:var(--pine-dimension-2xs)}.pds-select__message{grid-area:message}.pds-select__select-icon{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;grid-column:-1/-2;grid-row:2/3;height:2.5rem;pointer-events:none;position:relative;z-index:1}";
7185
+ const pdsSelectCss = ":host{--pds-select-background:var(--pine-color-background-container);--pds-select-border:var(--pine-border);--pds-select-border-radius:var(--pine-dimension-125);--pds-select-border-radius-start-end:var(--pine-dimension-125);--pds-select-border-radius-start-start:var(--pine-dimension-125);--pds-select-border-radius-end-end:var(--pine-dimension-125);--pds-select-border-radius-end-start:var(--pine-dimension-125);--pds-select-min-height:36px;--box-shadow-focus:0 0 0 1px #ffffff, 0 0 0 3px var(--pine-color-focus-ring);--box-shadow-focus-error:0 0 0 1px #ffffff, 0 0 0 3px var(--pine-color-focus-ring-danger)}:host .hidden,:host :host([hidden]){display:none}.pds-select{display:grid;-ms-flex-direction:column;flex-direction:column;grid-template-areas:\"label label\" \"field field\" \"message message\";grid-template-columns:1fr minmax(2rem, -webkit-min-content);grid-template-columns:1fr minmax(2rem, min-content);grid-template-rows:-webkit-min-content -webkit-min-content -webkit-min-content;grid-template-rows:min-content min-content min-content;position:relative;width:100%}label{grid-area:label;-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--pds-select-background);border:var(--pds-select-border);border-radius:var(--pds-select-border-radius);border-bottom-left-radius:var(--pds-select-border-radius-end-start, var(--pds-select-border-radius));border-bottom-right-radius:var(--pds-select-border-radius-end-end, var(--pds-select-border-radius));border-top-left-radius:var(--pds-select-border-radius-start-start, var(--pds-select-border-radius));border-top-right-radius:var(--pds-select-border-radius-start-end, var(--pds-select-border-radius));font:var(--pine-typography-body);grid-area:field;letter-spacing:var(--pine-letter-spacing);min-height:var(--pds-select-min-height);padding:var(--pine-dimension-xs) var(--pine-dimension-150);-webkit-padding-end:var(--pine-dimension-450);padding-inline-end:var(--pine-dimension-450);position:relative}select:hover{border-color:var(--pine-color-border-hover);cursor:pointer}select:focus-visible{border-color:var(--pine-color-border-active);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}select:disabled{background-color:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-disabled);cursor:not-allowed}select:has(~.pds-select__message .pds-select__error-message){background-color:var(--pine-select-color-background-danger);border-color:var(--pine-color-border-danger)}select:has(~.pds-select__message .pds-select__error-message):focus-visible{outline-color:var(--pine-color-focus-ring-danger)}:host(.is-invalid) select{background-color:var(--pine-select-color-background-danger);border-color:var(--pine-color-border-danger)}:host(.is-invalid) select:focus-visible{outline-color:var(--pine-color-focus-ring-danger)}.pds-select__error-message,.pds-select__helper-message{font:var(--pine-typography-body-sm-medium);-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs)}.pds-select__error-message{-ms-flex-align:center;align-items:center;color:var(--pine-color-text-message-danger);display:-ms-flexbox;display:flex;gap:var(--pine-dimension-2xs)}.pds-select__message{grid-area:message}.pds-select__select-icon{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;grid-column:-1/-2;grid-row:2/3;height:var(--pds-select-min-height);pointer-events:none;position:relative;z-index:1}.visually-hidden{border:0;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:0;position:absolute;white-space:nowrap;width:1px}";
4778
7186
 
4779
7187
  class PdsSelect {
4780
7188
  constructor(hostRef) {
@@ -4890,8 +7298,7 @@ class PdsSelect {
4890
7298
  return classNames.join(' ');
4891
7299
  }
4892
7300
  render() {
4893
- return (hAsync(Host, { key: '6eea9a5492e4b7e415922bce0aa8f2295792a9e4', "aria-disabled": this.disabled ? 'true' : null, class: this.classNames() }, hAsync("div", { key: '3180e1eff494f846f395d9db6730926d86d1e54a', class: "pds-select" }, this.label &&
4894
- hAsync("label", { key: '90dc521ef10b81a9f58a0f0a2cfa4bc685312119', htmlFor: this.componentId }, this.label), hAsync("select", { key: 'd6576d25601de6c41893568927b64e530bf9f266', autocomplete: this.autocomplete || undefined, class: "pds-select__field", disabled: this.disabled, id: this.componentId, multiple: this.multiple, name: this.name, onChange: this.onSelectUpdate, required: this.required, ref: (el) => (this.selectEl = el) }), hAsync("div", { key: '87c53bb7bf315e170f60e5b58afcbf623d1aa65c', "aria-hidden": "true", class: "hidden", ref: (el) => (this.slotContainer = el) }, hAsync("slot", { key: '8cafbc8cc8e23de0ab69b9d6b7d23c896df530b6', onSlotchange: this.handleSlotChange })), this.renderMessages(), !this.multiple && hAsync("pds-icon", { key: '48758d321edbd38ff6bd31ddd1902627202e196e', class: "pds-select__select-icon", icon: enlarge }))));
7301
+ return (hAsync(Host, { key: 'c0a0b391e6b5c35d5d3d7fce9d1f92583c582aa5', "aria-disabled": this.disabled ? 'true' : null, class: this.classNames() }, hAsync("div", { key: '4f91cfcfcc570cf79d8e6a2f86d741f471489591', class: "pds-select" }, !this.hideLabel && (hAsync("label", { key: '21fa83cfdad6a46be1efa22ebc4df696ca49b7b1', htmlFor: this.componentId }, hAsync("span", { key: '760e46f98327c3b8e9ceb48ee158202ce42b8bb6', class: this.hideLabel ? 'visually-hidden' : '' }, this.label))), hAsync("select", { key: '78d92779624d84df9ae73515bbda74d9d44a8919', "aria-label": this.hideLabel ? this.label : undefined, autocomplete: this.autocomplete || undefined, class: "pds-select__field", disabled: this.disabled, id: this.componentId, multiple: this.multiple, name: this.name, onChange: this.onSelectUpdate, part: "select", required: this.required, ref: (el) => (this.selectEl = el) }), hAsync("div", { key: '9a75bf791747df08018d59de49855410c6dc2312', "aria-hidden": "true", class: "hidden", ref: (el) => (this.slotContainer = el) }, hAsync("slot", { key: '1a974b4e171971e922aa04e9a56d6e6f26635724', onSlotchange: this.handleSlotChange })), this.renderMessages(), !this.multiple && hAsync("pds-icon", { key: '9cbc569418617092229d660b34b2c17a2826c878', class: "pds-select__select-icon", icon: enlarge }))));
4895
7302
  }
4896
7303
  static get watchers() { return {
4897
7304
  "value": ["valueChanged"]
@@ -4905,6 +7312,7 @@ class PdsSelect {
4905
7312
  "componentId": [1, "component-id"],
4906
7313
  "disabled": [4],
4907
7314
  "errorMessage": [1, "error-message"],
7315
+ "hideLabel": [4, "hide-label"],
4908
7316
  "helperMessage": [1, "helper-message"],
4909
7317
  "invalid": [4],
4910
7318
  "label": [1],
@@ -7630,7 +10038,7 @@ class PdsSortable {
7630
10038
  Sortable.create(this.el, sortableOptions);
7631
10039
  }
7632
10040
  render() {
7633
- return (hAsync(Host, { key: 'd120089730b34d5e787a34439f5d308e0c476c7a', class: this.classNames(), id: this.componentId }, hAsync("slot", { key: 'b796c6aca1acde55085163049ecb869952cf8fb6' })));
10041
+ return (hAsync(Host, { key: 'c5353036ad9b108f742e55b1a28ebb449cf556d0', class: this.classNames(), id: this.componentId }, hAsync("slot", { key: 'cb71736fb3388f5829476c5b4802d5aa5f811ac7' })));
7634
10042
  }
7635
10043
  get el() { return getElement(this); }
7636
10044
  static get style() { return pdsSortableCss; }
@@ -7677,7 +10085,7 @@ class PdsSortableItem {
7677
10085
  }
7678
10086
  }
7679
10087
  render() {
7680
- return (hAsync(Host, { key: '1a5e7d46d027bf6aa95b9d688e390ab42a40cc8d', class: "pds-sortable-item", id: this.componentId }, this.showHandle && (hAsync("div", { key: 'a6653d963a7a8f39937507dd94042943b4627686', class: "pds-sortable-item__handle" }, hAsync("pds-icon", { key: 'a5c340eaf2f3f4d3fb4a0cc66371444d8844b078', icon: handle }))), hAsync("slot", { key: '647f24778a2450c040596c6bea279236b0148e0f' }), this.enableActions && (hAsync("div", { key: '7b8c76b0519c21fe0bd29cb5ef3f213296f30ef4', class: "pds-sortable-item__actions" }, hAsync("slot", { key: '636480cd939b04ed739a2e6a7dbc489680a18a57', name: "sortable-item-actions" })))));
10088
+ return (hAsync(Host, { key: 'b7817592ed6329f84e09ff5c5e200bc4305275bc', class: "pds-sortable-item", id: this.componentId }, this.showHandle && (hAsync("div", { key: 'c31df5f0c81bd684ac60690044e2409d0cbc7831', class: "pds-sortable-item__handle" }, hAsync("pds-icon", { key: 'ff764a5ef70560c073474a7a51f45dd89df53190', icon: handle }))), hAsync("slot", { key: 'e1f33a5e56b37405b7e46bff24dc91e4ece71870' }), this.enableActions && (hAsync("div", { key: '569563f7c7d5b069888a8c3ee8e50fd3d626b1b2', class: "pds-sortable-item__actions" }, hAsync("slot", { key: '9ca544725723703ddac0de3f0bb9a4b0884d1571', name: "sortable-item-actions" })))));
7681
10089
  }
7682
10090
  get el() { return getElement(this); }
7683
10091
  static get style() { return pdsSortableItemCss; }
@@ -7742,9 +10150,9 @@ class PdsSwitch {
7742
10150
  this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
7743
10151
  }
7744
10152
  render() {
7745
- return (hAsync(Host, { key: '1ccbfafc2087558aae2fe82c9a97c640a9c3ab66', class: this.switchClassNames(), "aria-disabled": this.disabled ? 'true' : null }, hAsync("label", { key: '9cd218cace5c432f57f03514c91c27ba32eeb97f', htmlFor: this.componentId }, hAsync("input", Object.assign({ key: 'ce995e0706a576dd36a4f1b31ca862ae614f7e2d', "aria-describedby": assignDescription(this.componentId, this.invalid, this.errorMessage || this.helperMessage), "aria-invalid": this.invalid ? "true" : undefined, checked: this.checked, class: "pds-switch__input", disabled: this.disabled, id: this.componentId, name: this.name ? this.name : this.componentId, onChange: this.onSwitchUpdate, required: this.required, type: "checkbox", value: this.value }, this.inheritedAttributes)), hAsync("span", { key: 'ea20d65944a429e24b8bd0ae58dafd7ece29e9a7', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), this.helperMessage &&
7746
- hAsync("div", { key: '45656b263c5169d0c6b60dd19e8537e0f12df342', class: `pds-switch__message`, id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
7747
- hAsync("div", { key: '53ca563b419ce20ff4f4c81c90eee8f687e355b8', class: `pds-switch__message pds-switch__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: 'b8e38204aea3e9e1c542d5c945f57d389d800b66', icon: danger, size: "small" }), this.errorMessage)));
10153
+ return (hAsync(Host, { key: 'c91cd6368fff2cbcc6b4974505d94139fa2722c5', class: this.switchClassNames(), "aria-disabled": this.disabled ? 'true' : null }, hAsync("label", { key: 'e46f5f6a8073236ec0d55b2bcc8087dc32ad5a68', htmlFor: this.componentId }, hAsync("input", Object.assign({ key: '9a2db3481c6c5e223819066df34bc220a139df03', "aria-describedby": assignDescription(this.componentId, this.invalid, this.errorMessage || this.helperMessage), "aria-invalid": this.invalid ? "true" : undefined, checked: this.checked, class: "pds-switch__input", disabled: this.disabled, id: this.componentId, name: this.name ? this.name : this.componentId, onChange: this.onSwitchUpdate, required: this.required, type: "checkbox", value: this.value }, this.inheritedAttributes)), hAsync("span", { key: 'c3b138eb7b6800d01e5676e94c17988c8a52d4b2', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), this.helperMessage &&
10154
+ hAsync("div", { key: 'fcaaa0ea30c8ad155a0b43004e77549abf888a57', class: `pds-switch__message`, id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
10155
+ hAsync("div", { key: '045311e393d47bebd536d8fbe220260d112ceb3f', class: `pds-switch__message pds-switch__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: '035488794764ffaee3275edfa9a3e9fad2d11ddb', icon: danger, size: "small" }), this.errorMessage)));
7748
10156
  }
7749
10157
  get el() { return getElement(this); }
7750
10158
  static get style() { return labelCss$1 + pdsSwitchCss; }
@@ -7786,9 +10194,9 @@ class PdsTab {
7786
10194
  this.pdsTabClick.emit([index, parentComponentId]);
7787
10195
  }
7788
10196
  render() {
7789
- const availabilityTabEdgeInlineStart = (hAsync("span", { key: 'f03f2a822bc603cf61483202ae9a249b8586ed02', class: "pds-tab-edge", role: "presentation" }));
7790
- const availabilityTabEdgeInlineEnd = (hAsync("span", { key: 'ccf11be9b997f174b555021cd50e07a4128c7182', class: "pds-tab-edge pds-tab-edge--end", role: "presentation" }));
7791
- return (hAsync(Host, { key: '8643374d23c0e3329f4f39f4ee5c025f95a06b30', variant: this.variant, slot: "tabs", index: this.index }, hAsync("button", { key: '469df7696312659dd0af97561fb92aad22f054c0', role: "tab", id: this.parentComponentId + "__" + this.name, "aria-controls": this.parentComponentId + "__" + this.name + "-panel", tabindex: this.selected ? "0" : "-1", "aria-selected": this.selected ? "true" : "false", class: this.selected ? "pds-tab is-active" : "pds-tab", onClick: this.onTabClick.bind(this, this.index, this.parentComponentId) }, this.variant === "availability" && availabilityTabEdgeInlineStart, this.variant === "availability" && availabilityTabEdgeInlineEnd, hAsync("div", { key: 'e759f2c4d52db51f0b92bf4424bcc42d6b266e37', class: "pds-tab__content" }, hAsync("slot", { key: '88226acf10ef132470aeefad0459dd377609b325' })))));
10197
+ const availabilityTabEdgeInlineStart = (hAsync("span", { key: 'cdf38229fcb4548cf188e401d8949f0fdddd8160', class: "pds-tab-edge", role: "presentation" }));
10198
+ const availabilityTabEdgeInlineEnd = (hAsync("span", { key: 'ffd68b6f2c2a521560495411455185d426d41446', class: "pds-tab-edge pds-tab-edge--end", role: "presentation" }));
10199
+ return (hAsync(Host, { key: 'afc723cff632012e447cecf9e4a2d7258b846d48', variant: this.variant, slot: "tabs", index: this.index }, hAsync("button", { key: 'f7f814b9ef9ac505a741ce74abd91934116f975f', role: "tab", id: this.parentComponentId + "__" + this.name, "aria-controls": this.parentComponentId + "__" + this.name + "-panel", tabindex: this.selected ? "0" : "-1", "aria-selected": this.selected ? "true" : "false", class: this.selected ? "pds-tab is-active" : "pds-tab", onClick: this.onTabClick.bind(this, this.index, this.parentComponentId) }, this.variant === "availability" && availabilityTabEdgeInlineStart, this.variant === "availability" && availabilityTabEdgeInlineEnd, hAsync("div", { key: '12fea0cfdf4a1e9acee497ff3e60cb276f6ae649', class: "pds-tab__content" }, hAsync("slot", { key: 'bf4455e277526a453111542ce7c80a0621135f18' })))));
7792
10200
  }
7793
10201
  get el() { return getElement(this); }
7794
10202
  static get style() { return pdsTabCss; }
@@ -7897,7 +10305,7 @@ class PdsTable {
7897
10305
  headerCheckbox.indeterminate = !allSelectedRows && !noneSelectedRows;
7898
10306
  }
7899
10307
  render() {
7900
- return (hAsync(Host, { key: '7208900f692fa61b763567f14cc505a9c0a8fd88', class: this.classNames(), id: this.componentId, role: "grid", selectable: this.selectable, tabindex: "0" }, hAsync("slot", { key: '03f938219c8e0efd224b69e41db95f9f1b8b91c5' })));
10308
+ return (hAsync(Host, { key: '8fbd30502d23962edf8977e9d23b8e990f043e23', class: this.classNames(), id: this.componentId, role: "grid", selectable: this.selectable, tabindex: "0" }, hAsync("slot", { key: '5041e5f588db255c747406c47bcfb3524cd58450' })));
7901
10309
  }
7902
10310
  get el() { return getElement(this); }
7903
10311
  static get style() { return pdsTableCss; }
@@ -7926,7 +10334,7 @@ class PdsTableBody {
7926
10334
  registerInstance(this, hostRef);
7927
10335
  }
7928
10336
  render() {
7929
- return (hAsync(Host, { key: 'c01028ed3108a0404ef3da77f1cf7a3b97a40b52', role: "rowgroup" }, hAsync("slot", { key: 'f8491f02e732d28b01bc9cf2436c6edca3cbfc0e' })));
10337
+ return (hAsync(Host, { key: 'ac8d361f2d78eb929c17523843d2ca0ac53f6789', role: "rowgroup" }, hAsync("slot", { key: '132782ab9466a9dbd4350247aae762d731e7aa71' })));
7930
10338
  }
7931
10339
  static get style() { return pdsTableBodyCss; }
7932
10340
  static get cmpMeta() { return {
@@ -7980,11 +10388,11 @@ class PdsTableCell {
7980
10388
  return classNames.join(' ');
7981
10389
  }
7982
10390
  render() {
7983
- return (hAsync(Host, { key: '4d7c288150875806711b91436c2673fb3cb55ee6', class: this.classNames(), role: "gridcell", style: this.tableRef &&
10391
+ return (hAsync(Host, { key: '801c1c1de26cb633280f308274861e8fd3629091', class: this.classNames(), role: "gridcell", style: this.tableRef &&
7984
10392
  this.tableRef.fixedColumn &&
7985
10393
  this.tableRef.selectable
7986
10394
  ? { '--fixed-cell-position': '40px' }
7987
- : {} }, hAsync("slot", { key: '817efadaba22b60410fffc5a41bcacc2d9656939' })));
10395
+ : {} }, hAsync("slot", { key: '0000fae3c9f199e3e80328afa7dd4347f429980b' })));
7988
10396
  }
7989
10397
  get hostElement() { return getElement(this); }
7990
10398
  static get style() { return pdsTableCellCss; }
@@ -8045,7 +10453,7 @@ class PdsTableHead {
8045
10453
  }
8046
10454
  }
8047
10455
  render() {
8048
- return (hAsync(Host, { key: '13fc9ae7847a0fcb938b335b8b3c3aa6d243e387', role: "row" }, this.tableRef && this.tableRef.selectable && (hAsync("pds-table-head-cell", { key: '960af222613758a88bd140a1d0aaec51114834df', part: this.tableRef.selectable ? 'checkbox-cell' : '' }, hAsync("pds-checkbox", { key: '1b3bead263f15861010c2229b50dc8bcf9a08524', componentId: this.generateUniqueId(), indeterminate: this.indeterminate, onInput: this.handleInput, label: "Select All Rows", hideLabel: true, checked: this.isSelected }))), hAsync("slot", { key: '922d1b7aa67a44c91bbc70cc4d0e07abcada73aa' })));
10456
+ return (hAsync(Host, { key: '38eaecd17a328791e5993d020a490f63f67cd9d5', role: "row" }, this.tableRef && this.tableRef.selectable && (hAsync("pds-table-head-cell", { key: '438086205f3e018f597c868e98f300d28c4f3384', part: this.tableRef.selectable ? 'checkbox-cell' : '' }, hAsync("pds-checkbox", { key: '835bbe3c1f3a0fcb217f62cf862b9ea80ddff38e', componentId: this.generateUniqueId(), indeterminate: this.indeterminate, onInput: this.handleInput, label: "Select All Rows", hideLabel: true, checked: this.isSelected }))), hAsync("slot", { key: 'aa5507016e20951eab86f62680720c54de5a5a86' })));
8049
10457
  }
8050
10458
  get hostElement() { return getElement(this); }
8051
10459
  static get style() { return pdsTableHeadCss; }
@@ -8127,11 +10535,11 @@ class PdsTableHeadCell {
8127
10535
  return classNames.join(' ');
8128
10536
  }
8129
10537
  render() {
8130
- return (hAsync(Host, { key: '8b7b8472a8e7f05e8f5b3c7cc3de2cd45c7f3f57', class: this.classNames(), role: "columnheader", onClick: this.toggleSort, style: this.tableRef &&
10538
+ return (hAsync(Host, { key: '2e75e9b8d1254ec21c786fd7e8304aaf38b26377', class: this.classNames(), role: "columnheader", onClick: this.toggleSort, style: this.tableRef &&
8131
10539
  this.tableRef.fixedColumn &&
8132
10540
  this.tableRef.selectable
8133
10541
  ? { '--fixed-cell-position': '40px' }
8134
- : {} }, hAsync("slot", { key: '86266623f850b38494eb9f2cbca9baf54e082d7e' }), this.sortable && (hAsync("pds-icon", { key: 'e1e7f058ecab154e50ae3200b75de55244b31428', icon: this.sortingDirection === 'asc' ? upSmall : downSmall }))));
10542
+ : {} }, hAsync("slot", { key: 'f9c7aae07eb7907a18dcf1a59813a2810341f2e9' }), this.sortable && (hAsync("pds-icon", { key: 'd24a2f2c1db5bb15216ba64bc5a7299e18c23626', icon: this.sortingDirection === 'asc' ? upSmall : downSmall }))));
8135
10543
  }
8136
10544
  get hostElement() { return getElement(this); }
8137
10545
  static get style() { return pdsTableHeadCellCss; }
@@ -8197,7 +10605,7 @@ class PdsTableRow {
8197
10605
  }
8198
10606
  }
8199
10607
  render() {
8200
- return (hAsync(Host, { key: '8dfdc0200b16d9db1988eb655540eeae40baaffc', class: this.classNames(), role: "row" }, this.tableRef && this.tableRef.selectable && (hAsync("pds-table-cell", { key: '120ea20f06308f95ea77e5c2f0664b673b367f3b', part: this.tableRef.fixedColumn ? 'checkbox-cell' : '', class: this.tableRef.selectable ? 'has-checkbox' : '' }, hAsync("pds-checkbox", { key: 'eaf6e41d00b5f5664d7ed99a993202c871822d0a', componentId: this.generateUniqueId(), onClick: this.handleClick, indeterminate: this.indeterminate, label: "Select Row", hideLabel: true, checked: this.isSelected }))), hAsync("slot", { key: 'e87e93a24e87b2a8faffd47fd4e4c1f22e63916c' })));
10608
+ return (hAsync(Host, { key: '651138280f94fd837a77e172c7e0ae5181ce8357', class: this.classNames(), role: "row" }, this.tableRef && this.tableRef.selectable && (hAsync("pds-table-cell", { key: '739cd15863b52d60f9a00bffcf0d900b1ce1f545', part: this.tableRef.fixedColumn ? 'checkbox-cell' : '', class: this.tableRef.selectable ? 'has-checkbox' : '' }, hAsync("pds-checkbox", { key: '2b2000bc223fa72e2be0edea25e72e4d26a98fa1', componentId: this.generateUniqueId(), onClick: this.handleClick, indeterminate: this.indeterminate, label: "Select Row", hideLabel: true, checked: this.isSelected }))), hAsync("slot", { key: '9d3be777c57b1ba4be066cc4ffa5496289fbdc02' })));
8201
10609
  }
8202
10610
  get hostElement() { return getElement(this); }
8203
10611
  static get style() { return pdsTableRowCss; }
@@ -8226,7 +10634,7 @@ class PdsTabpanel {
8226
10634
  this.selected = false; // eslint-disable-line @stencil-community/strict-mutable
8227
10635
  }
8228
10636
  render() {
8229
- return (hAsync(Host, { key: 'aef4969e26b1f6e98eebdba3bcfe7bebe2d75e52', slot: "tabpanels" }, hAsync("div", { key: 'e90ebc7253b40a7c9d5e120584e8887855d3730c', role: "tabpanel", id: this.parentComponentId + "__" + this.name + '-panel', tabindex: "0", "aria-labelledby": this.parentComponentId + "__" + this.name, class: this.selected ? "pds-tabpanel is-active" : "pds-tabpanel" }, hAsync("slot", { key: '79d03b545cf3fc73c54d660eb46661d5d1adbe64' }))));
10637
+ return (hAsync(Host, { key: '021d0c1f2fd740087bdd88069ac82455b8b5ede1', slot: "tabpanels" }, hAsync("div", { key: '036aca9a0a29ba7cfc8aa0132eab027898a661f2', role: "tabpanel", id: this.parentComponentId + "__" + this.name + '-panel', tabindex: "0", "aria-labelledby": this.parentComponentId + "__" + this.name, class: this.selected ? "pds-tabpanel is-active" : "pds-tabpanel" }, hAsync("slot", { key: 'd6b61e7b8af79204dbb5d3e421028715236a7bb1' }))));
8230
10638
  }
8231
10639
  get el() { return getElement(this); }
8232
10640
  static get style() { return pdsTabpanelCss; }
@@ -8327,7 +10735,7 @@ class PdsTabs {
8327
10735
  this.passPropsToChildren();
8328
10736
  }
8329
10737
  render() {
8330
- return (hAsync(Host, { key: '33e22ebb5d4ae476cef5c4c95cb455b1c54fd083', "active-tab-name": this.activeTabName, class: this.classNames(), id: this.componentId }, hAsync("div", { key: '7219b9019640a50cfae5442b36ece10aff6a5e51', class: "pds-tabs__tablist", role: "tablist", "aria-label": this.tablistLabel }, hAsync("slot", { key: '32e2c4f0a1feec88f3693c720019b548932687ff', name: "tabs" })), hAsync("slot", { key: '6235cfb2ef48346a96239c4a619c3ae900f6101e', name: "tabpanels" })));
10738
+ return (hAsync(Host, { key: 'ed163de5068114e7c7dd8314c7ed036859d0d0af', "active-tab-name": this.activeTabName, class: this.classNames(), id: this.componentId }, hAsync("div", { key: '4b0f2bce407b2ea5c7ceb1435f4f91531334557e', class: "pds-tabs__tablist", role: "tablist", "aria-label": this.tablistLabel }, hAsync("slot", { key: 'a61fb9bd35056f87233c1fec66dda175b201b265', name: "tabs" })), hAsync("slot", { key: 'd78cc498b17ddd84015174802e4eb18fc5053ec2', name: "tabpanels" })));
8331
10739
  }
8332
10740
  get el() { return getElement(this); }
8333
10741
  static get style() { return pdsTabsCss; }
@@ -8367,7 +10775,7 @@ class PdsText {
8367
10775
  ${this.weight !== undefined && this.weight.trim() !== '' ? `pds-text--weight-${this.weight}` : ''}
8368
10776
  ${this.decoration !== undefined && this.decoration.trim() !== '' ? `pds-text--decoration-${this.decoration}` : ''}
8369
10777
  `;
8370
- return (hAsync(Tag, { key: '1c2ed722c094e0c6181fac5ea3ba2a2ef6751b33', style: this.color && setColor(this.color), class: typeClasses }, hAsync("slot", { key: 'd1ba6f29df4f8b809a2a900c23c6c77480d3e3ca' })));
10778
+ return (hAsync(Tag, { key: '327e3b37535dd5eb28cf3ea0430e544261e570c0', style: this.color && setColor(this.color), class: typeClasses }, hAsync("slot", { key: '97010a619baa6fd4a45e79ab9354097e99af0ae2' })));
8371
10779
  }
8372
10780
  get el() { return getElement(this); }
8373
10781
  static get style() { return pdsTextCss; }
@@ -8383,11 +10791,11 @@ class PdsText {
8383
10791
  "size": [1],
8384
10792
  "weight": [1],
8385
10793
  "tag": [1],
8386
- "truncate": [4]
10794
+ "truncate": [516]
8387
10795
  },
8388
10796
  "$listeners$": undefined,
8389
10797
  "$lazyBundleId$": "-",
8390
- "$attrsToReflect$": []
10798
+ "$attrsToReflect$": [["truncate", "truncate"]]
8391
10799
  }; }
8392
10800
  }
8393
10801
 
@@ -8520,10 +10928,10 @@ class PdsTextarea {
8520
10928
  }
8521
10929
  render() {
8522
10930
  const value = this.getValue();
8523
- return (hAsync(Host, { key: '6c5edcf968b607f1fccc9992d1c4974e5be38e94', "aria-disabled": this.disabled ? 'true' : null, "aria-readonly": this.readonly ? 'true' : null }, hAsync("div", { key: 'f8d9eb6ec8ce7ed1a44c7802972a9bcb31d734a4', class: "pds-textarea" }, this.label &&
8524
- hAsync("label", { key: 'a7d3c200c40f61773b1139efe7ef86333975753e', htmlFor: this.componentId }, this.label), hAsync("textarea", Object.assign({ key: '178f1393bce68322ce0597dd072bc5a60062f855', ref: (el) => this.nativeTextarea = el, "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage), "aria-invalid": this.invalid ? "true" : undefined, autocomplete: this.autocomplete, class: this.textareaClassNames(), disabled: this.disabled, id: this.componentId, name: this.name, placeholder: this.placeholder, readOnly: this.readonly, required: this.required, rows: this.rows, onBlur: this.onBlur, onChange: this.onTextareaChange, onFocus: this.onFocus, onInput: this.onInput }, this.inheritedAttributes), value), this.helperMessage &&
8525
- hAsync("p", { key: 'a9d026ad670ae391a87d1ba6d183241ca2e52456', class: "pds-textarea__helper-message", id: messageId(this.componentId, 'helper') }, this.helperMessage), this.invalid &&
8526
- hAsync("p", { key: '0b794b20c024f40ee850183a797a8c3bcc0b600c', "aria-live": "assertive", class: "pds-textarea__error-message", id: messageId(this.componentId, 'error') }, hAsync("pds-icon", { key: '889e8d84f53be8f963fd250f60fb54b35f46c7b5', icon: danger, size: "small" }), this.errorMessage))));
10931
+ return (hAsync(Host, { key: 'ebbf2c30176e11c92f04de02cad236496bc50a44', "aria-disabled": this.disabled ? 'true' : null, "aria-readonly": this.readonly ? 'true' : null }, hAsync("div", { key: '687811120416068af1b6d23a5fa8af149674669b', class: "pds-textarea" }, this.label &&
10932
+ hAsync("label", { key: '40fa708e95ff63881f3d41646bf99841625631d6', htmlFor: this.componentId }, this.label), hAsync("textarea", Object.assign({ key: '543b7d6996b441b32f124f13025787c76340218d', ref: (el) => this.nativeTextarea = el, "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage), "aria-invalid": this.invalid ? "true" : undefined, autocomplete: this.autocomplete, class: this.textareaClassNames(), disabled: this.disabled, id: this.componentId, name: this.name, placeholder: this.placeholder, readOnly: this.readonly, required: this.required, rows: this.rows, onBlur: this.onBlur, onChange: this.onTextareaChange, onFocus: this.onFocus, onInput: this.onInput }, this.inheritedAttributes), value), this.helperMessage &&
10933
+ hAsync("p", { key: '47cd46e8c8c5daaa3ff6fa830e5dde3624403575', class: "pds-textarea__helper-message", id: messageId(this.componentId, 'helper') }, this.helperMessage), this.invalid &&
10934
+ hAsync("p", { key: 'd84d1aece21db4ef596c154919fe689d66f4bd66', "aria-live": "assertive", class: "pds-textarea__error-message", id: messageId(this.componentId, 'error') }, hAsync("pds-icon", { key: 'cb4627c36e25e14f6699ad0cfddd4bf8528755e0', icon: danger, size: "small" }), this.errorMessage))));
8527
10935
  }
8528
10936
  get el() { return getElement(this); }
8529
10937
  static get watchers() { return {
@@ -8558,75 +10966,205 @@ class PdsTextarea {
8558
10966
  }; }
8559
10967
  }
8560
10968
 
10969
+ const pdsToastCss = ":host{--animation-duration:0.3s;--animation-timing:cubic-bezier(0.4, 0, 0.2, 1);--padding-inline:var(--pine-dimension-md);--padding-inline-desktop:var(--pine-dimension-2xl);--sizing-height-default:68px;--sizing-min-width:calc(var(--sizing-total-width) - (var(--padding-inline) * 2));--sizing-min-width-desktop:calc(var(--sizing-total-width) - (var(--padding-inline-desktop) * 2));--sizing-total-width:350px;-webkit-box-sizing:border-box;box-sizing:border-box;display:block;font:var(--pine-typography-body-medium)}.pds-toast{-ms-flex-align:center;align-items:center;-webkit-animation:pds-toast-animate-in var(--animation-duration) var(--animation-timing);animation:pds-toast-animate-in var(--animation-duration) var(--animation-timing);background-color:var(--pine-color-primary);border-radius:var(--pine-dimension-xs);-webkit-box-shadow:var(--pine-box-shadow);box-shadow:var(--pine-box-shadow);color:var(--pine-color-text-primary);display:-ms-flexbox;display:flex;height:var(--sizing-height-default);-ms-flex-pack:start;justify-content:flex-start;-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs);max-width:90vw;min-width:var(--sizing-min-width);padding:0 var(--padding-inline);position:relative;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}@media screen and (max-width: 767px){.pds-toast{height:36px;max-width:calc(100vw - var(--pine-dimension-2xs) * 2);min-width:auto;padding-inline:var(--pine-dimension-2xs)}}.pds-toast--danger{background-color:var(--pine-color-danger)}.pds-toast--loading .pds-toast__loader{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-webkit-margin-end:var(--pine-dimension-sm);margin-inline-end:var(--pine-dimension-sm);position:relative}.pds-toast--loading .pds-toast__loader-spinner{-webkit-animation:pds-toast-rotate 2s linear infinite;animation:pds-toast-rotate 2s linear infinite;height:20px;width:20px}.pds-toast--loading .pds-toast__loader-path{-webkit-animation:pds-toast-dash 1.5s ease-in-out infinite;animation:pds-toast-dash 1.5s ease-in-out infinite;stroke-dasharray:1, 200;stroke-dashoffset:0;stroke-linecap:round}.pds-toast__icon{color:var(--pine-color-text-primary);display:-ms-inline-flexbox;display:inline-flex;-webkit-margin-end:var(--pine-dimension-sm);margin-inline-end:var(--pine-dimension-sm)}.pds-toast__message{font:var(--pine-typography-body-sm-medium);-webkit-margin-end:auto;margin-inline-end:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pds-toast__message ::slotted(a){color:var(--pine-color-text-primary);-webkit-margin-start:var(--pine-dimension-xs);margin-inline-start:var(--pine-dimension-xs);opacity:0.7;text-decoration:underline}.pds-toast__message ::slotted(a):hover,.pds-toast__message ::slotted(a):focus-visible{opacity:1}.pds-toast__message ::slotted(a):focus-visible{outline:2px solid var(--pine-color-text-primary);outline-offset:2px}.pds-toast__button{-ms-flex-align:center;align-items:center;background:none;border:0;border-radius:var(--pine-border-radius-full);color:inherit;cursor:pointer;display:-ms-inline-flexbox;display:inline-flex;-webkit-margin-start:var(--pine-dimension-md);margin-inline-start:var(--pine-dimension-md);opacity:0.7;padding:0;white-space:nowrap}.pds-toast__button:hover,.pds-toast__button:focus{opacity:1}.pds-toast__button:focus{outline:var(--pine-outline-focus);outline-offset:var(--pine-dimension-2xs)}@-webkit-keyframes pds-toast-animate-in{from{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes pds-toast-animate-in{from{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes pds-toast-animate-out{from{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes pds-toast-animate-out{from{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}}@-webkit-keyframes pds-toast-rotate{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes pds-toast-rotate{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes pds-toast-dash{0%{stroke-dasharray:1, 200;stroke-dashoffset:0}50%{stroke-dasharray:89, 200;stroke-dashoffset:-35}100%{stroke-dasharray:89, 200;stroke-dashoffset:-124}}@keyframes pds-toast-dash{0%{stroke-dasharray:1, 200;stroke-dashoffset:0}50%{stroke-dasharray:89, 200;stroke-dashoffset:-35}100%{stroke-dasharray:89, 200;stroke-dashoffset:-124}}:host([hidden]) .pds-toast,.pds-toast--animating-out{-webkit-animation:pds-toast-animate-out var(--animation-duration) var(--animation-timing) forwards;animation:pds-toast-animate-out var(--animation-duration) var(--animation-timing) forwards;pointer-events:none;}";
10970
+
10971
+ class PdsToast {
10972
+ constructor(hostRef) {
10973
+ registerInstance(this, hostRef);
10974
+ this.pdsToastDismissed = createEvent(this, "pdsToastDismissed");
10975
+ /**
10976
+ * Whether the toast can be dismissed manually via the close button.
10977
+ * Note: This only controls manual dismissal. Auto-dismissal via duration still applies.
10978
+ * @default true
10979
+ */
10980
+ this.dismissible = true;
10981
+ /**
10982
+ * The duration in milliseconds to show the toast before auto-dismissing.
10983
+ * Set to 0 to disable auto-dismiss.
10984
+ * @default 4500
10985
+ */
10986
+ this.duration = 4500;
10987
+ /**
10988
+ * The type of toast to display.
10989
+ * - default: Grey background (default)
10990
+ * - danger: Red background
10991
+ * - loading: With spinner animation
10992
+ * @default 'default'
10993
+ */
10994
+ this.type = 'default';
10995
+ /**
10996
+ * Whether the toast is currently visible.
10997
+ */
10998
+ this.isVisible = true;
10999
+ /**
11000
+ * Whether the toast is animating out.
11001
+ */
11002
+ this.isAnimatingOut = false;
11003
+ }
11004
+ componentDidLoad() {
11005
+ if (this.duration > 0) {
11006
+ this.startDismissTimer();
11007
+ }
11008
+ }
11009
+ disconnectedCallback() {
11010
+ this.cleanup();
11011
+ }
11012
+ handleDurationChange(newDuration) {
11013
+ if (this.dismissTimer) {
11014
+ window.clearTimeout(this.dismissTimer);
11015
+ this.dismissTimer = undefined;
11016
+ }
11017
+ if (newDuration > 0) {
11018
+ this.startDismissTimer();
11019
+ }
11020
+ }
11021
+ async dismiss() {
11022
+ // Start the animation out
11023
+ this.isAnimatingOut = true;
11024
+ // Wait for animation to complete before hiding and cleanup
11025
+ await new Promise((resolve) => setTimeout(resolve, 300)); // Match --animation-duration
11026
+ this.isVisible = false;
11027
+ this.cleanup();
11028
+ this.pdsToastDismissed.emit({ componentId: this.componentId });
11029
+ }
11030
+ // Private methods
11031
+ cleanup() {
11032
+ if (this.dismissTimer) {
11033
+ window.clearTimeout(this.dismissTimer);
11034
+ this.dismissTimer = undefined;
11035
+ }
11036
+ }
11037
+ startDismissTimer() {
11038
+ this.dismissTimer = window.setTimeout(() => {
11039
+ this.dismiss();
11040
+ }, this.duration);
11041
+ }
11042
+ renderIcon() {
11043
+ // Loading type takes priority
11044
+ if (this.type === 'loading') {
11045
+ return (hAsync("div", { class: "pds-toast__loader" }, hAsync("svg", { class: "pds-toast__loader-spinner", viewBox: "25 25 50 50", "aria-hidden": "true" }, hAsync("circle", { class: "pds-toast__loader-path", cx: "50", cy: "50", r: "20", fill: "none", stroke: "currentColor", "stroke-width": "4", "stroke-linecap": "round" }))));
11046
+ }
11047
+ // Return icon if provided, otherwise undefined (which renders as nothing)
11048
+ return this.icon && hAsync("pds-icon", { name: this.icon, class: "pds-toast__icon" });
11049
+ }
11050
+ render() {
11051
+ return (hAsync(Host, { key: 'dbb28e20be685c46f8c6cb2dd1a5f58f28e27589', hidden: !this.isVisible }, hAsync("div", { key: '471b6b387799754b92ad16baf70562e26c379616', class: {
11052
+ 'pds-toast': true,
11053
+ [`pds-toast--${this.type}`]: this.type !== 'default',
11054
+ 'pds-toast--animating-out': this.isAnimatingOut
11055
+ }, role: "alert", "aria-live": "polite" }, this.renderIcon(), hAsync("span", { key: '638faa5e37de1bae0e59c994de35e27960fc625b', class: "pds-toast__message" }, hAsync("slot", { key: 'e58c86bbe9a5467b6b362e0f67db4074b9cac0cb' })), this.dismissible && (hAsync("button", { key: '43bd64963222a78163b337b37e9d5ff888236b45', type: "button", class: "pds-toast__button", onClick: () => {
11056
+ this.dismiss();
11057
+ }, "aria-label": "Dismiss message" }, hAsync("pds-icon", { key: '0c924e96515a7934f51d80b4e57f97db5bfaed14', name: "remove" }))))));
11058
+ }
11059
+ static get watchers() { return {
11060
+ "duration": ["handleDurationChange"]
11061
+ }; }
11062
+ static get style() { return pdsToastCss; }
11063
+ static get cmpMeta() { return {
11064
+ "$flags$": 9,
11065
+ "$tagName$": "pds-toast",
11066
+ "$members$": {
11067
+ "componentId": [1, "component-id"],
11068
+ "dismissible": [4],
11069
+ "duration": [2],
11070
+ "icon": [1],
11071
+ "type": [1],
11072
+ "isVisible": [32],
11073
+ "isAnimatingOut": [32],
11074
+ "dismiss": [64]
11075
+ },
11076
+ "$listeners$": undefined,
11077
+ "$lazyBundleId$": "-",
11078
+ "$attrsToReflect$": []
11079
+ }; }
11080
+ }
11081
+
8561
11082
  const positionTooltip = ({ elem, elemPlacement, overlay, offset = 8 }) => {
8562
- if (elem == undefined)
8563
- return;
11083
+ if (elem === null || overlay === null)
11084
+ return false;
11085
+ if (typeof elemPlacement !== 'string' || elemPlacement.trim() === '') {
11086
+ return false;
11087
+ }
8564
11088
  const rect = elem.getBoundingClientRect();
8565
11089
  const contentRect = overlay.getBoundingClientRect();
8566
- // Exit the function if the placement is not set
8567
- if (!elemPlacement || elemPlacement == "")
8568
- return;
11090
+ // Reset styles
11091
+ overlay.style.top = '';
11092
+ overlay.style.left = '';
11093
+ overlay.style.right = '';
11094
+ overlay.style.bottom = '';
11095
+ overlay.style.transform = '';
11096
+ // Use fixed positioning for portal overlays
11097
+ overlay.style.position = 'fixed';
11098
+ // Detect if the trigger is a span with only text or a text node
11099
+ let isTextTrigger = false;
11100
+ if (elem.childNodes.length === 1 && elem.childNodes[0].nodeType === Node.TEXT_NODE) {
11101
+ isTextTrigger = true;
11102
+ }
11103
+ else if (elem.childNodes.length === 1 && elem.childNodes[0].nodeType === Node.ELEMENT_NODE) {
11104
+ const child = elem.childNodes[0];
11105
+ if (child.tagName === 'SPAN' && child.childNodes.length === 1 && child.childNodes[0].nodeType === Node.TEXT_NODE) {
11106
+ isTextTrigger = true;
11107
+ }
11108
+ }
8569
11109
  switch (true) {
8570
- case elemPlacement.includes("right"):
8571
- overlay.style.top = '50%';
8572
- overlay.style.left = `calc(${rect.width}px + ${offset}px)`;
8573
- overlay.style.transform = 'translateY(-50%)';
8574
- if (elemPlacement.includes("start")) {
8575
- overlay.style.top = '0';
8576
- overlay.style.transform = 'translateY(0)';
11110
+ case elemPlacement.includes('right'):
11111
+ if (isTextTrigger) {
11112
+ // Align to the bottom of the trigger for text triggers
11113
+ overlay.style.top = `${rect.bottom - contentRect.height / 2}px`;
11114
+ }
11115
+ else {
11116
+ overlay.style.top = `${rect.top + rect.height / 2 - contentRect.height / 2}px`;
11117
+ }
11118
+ overlay.style.left = `${rect.right + offset}px`;
11119
+ if (elemPlacement.includes('start')) {
11120
+ overlay.style.top = `${rect.top}px`;
8577
11121
  }
8578
- if (elemPlacement.includes("end")) {
8579
- overlay.style.bottom = '0';
8580
- overlay.style.top = 'initial';
8581
- overlay.style.transform = 'translateY(0)';
11122
+ if (elemPlacement.includes('end')) {
11123
+ overlay.style.top = `${rect.bottom - contentRect.height}px`;
8582
11124
  }
8583
11125
  break;
8584
- case elemPlacement.includes("left"):
8585
- overlay.style.top = '50%';
8586
- overlay.style.right = `calc(${rect.width}px + ${offset}px)`;
8587
- overlay.style.transform = 'translateY(-50%)';
8588
- if (elemPlacement.includes("start")) {
8589
- overlay.style.top = '0';
8590
- overlay.style.transform = 'translateY(0)';
11126
+ case elemPlacement.includes('left'):
11127
+ if (isTextTrigger) {
11128
+ overlay.style.top = `${rect.bottom - contentRect.height / 2}px`;
8591
11129
  }
8592
- if (elemPlacement.includes("end")) {
8593
- overlay.style.bottom = '0';
8594
- overlay.style.top = 'initial';
8595
- overlay.style.transform = 'translateY(0)';
11130
+ else {
11131
+ overlay.style.top = `${rect.top + rect.height / 2 - contentRect.height / 2}px`;
11132
+ }
11133
+ overlay.style.left = `${rect.left - contentRect.width - offset}px`;
11134
+ if (elemPlacement.includes('start')) {
11135
+ overlay.style.top = `${rect.top}px`;
11136
+ }
11137
+ if (elemPlacement.includes('end')) {
11138
+ overlay.style.top = `${rect.bottom - contentRect.height}px`;
8596
11139
  }
8597
11140
  break;
8598
- case elemPlacement.includes("bottom"):
8599
- overlay.style.top = `calc(${rect.height}px + ${offset}px)`;
8600
- overlay.style.left = '50%';
8601
- overlay.style.transform = 'translateX(-50%)';
8602
- if (elemPlacement.includes("start")) {
8603
- overlay.style.left = '0';
8604
- overlay.style.transform = 'translateX(0)';
11141
+ case elemPlacement.includes('bottom'):
11142
+ overlay.style.top = `${rect.bottom + offset}px`;
11143
+ overlay.style.left = `${rect.left + rect.width / 2 - contentRect.width / 2}px`;
11144
+ if (elemPlacement.includes('start')) {
11145
+ overlay.style.left = `${rect.left}px`;
8605
11146
  }
8606
- if (elemPlacement.includes("end")) {
8607
- overlay.style.left = 'initial';
8608
- overlay.style.right = '0';
8609
- overlay.style.transform = 'translateX(0)';
11147
+ if (elemPlacement.includes('end')) {
11148
+ overlay.style.left = `${rect.right - contentRect.width}px`;
11149
+ overlay.style.right = 'initial';
8610
11150
  }
8611
11151
  break;
8612
- case elemPlacement.includes("top"):
8613
- overlay.style.top = `calc((${contentRect.height}px + ${offset}px) * -1)`;
8614
- overlay.style.left = '50%';
8615
- overlay.style.transform = 'translateX(-50%)';
8616
- if (elemPlacement.includes("start")) {
8617
- overlay.style.left = '0';
8618
- overlay.style.transform = 'translateX(0)';
11152
+ case elemPlacement.includes('top'):
11153
+ overlay.style.top = `${rect.top - contentRect.height - offset}px`;
11154
+ overlay.style.left = `${rect.left + rect.width / 2 - contentRect.width / 2}px`;
11155
+ if (elemPlacement.includes('start')) {
11156
+ overlay.style.left = `${rect.left}px`;
8619
11157
  }
8620
- if (elemPlacement.includes("end")) {
8621
- overlay.style.left = 'initial';
8622
- overlay.style.right = '0';
8623
- overlay.style.transform = 'translateX(0)';
11158
+ if (elemPlacement.includes('end')) {
11159
+ overlay.style.left = `${rect.right - contentRect.width}px`;
11160
+ overlay.style.right = 'initial';
8624
11161
  }
8625
11162
  break;
8626
11163
  }
11164
+ return true;
8627
11165
  };
8628
11166
 
8629
- const pdsTooltipCss = ":host{--tooltip-border-width-arrow-down:var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow) 0;--tooltip-border-width-arrow-left:var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow) 0;--tooltip-border-width-arrow-right:var(--tooltip-sizing-arrow) 0 var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow);--tooltip-border-width-arrow-up:0 var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow);--tooltip-sizing-arrow:6px;--tooltip-sizing-arrow-offset:14px;--tooltip-dimension-max-width:320px;display:inline-block;position:relative}:host ::slotted(*){display:-ms-flexbox;display:flex}:host ::slotted([slot=content]){display:block;max-width:var(--tooltip-dimension-max-width);white-space:normal}.pds-tooltip__content{background-color:var(--pine-color-primary);border-radius:calc(var(--pine-dimension-xs) * 1.25);-webkit-box-shadow:var(--pine-box-shadow);box-shadow:var(--pine-box-shadow);color:var(--pine-color-text-primary);max-width:var(--tooltip-dimension-max-width);opacity:0;padding:var(--pine-dimension-xs) calc(var(--pine-dimension-md) / 2);position:absolute;visibility:hidden;width:-webkit-max-content;width:-moz-max-content;width:max-content}.pds-tooltip--is-open .pds-tooltip__content{opacity:1;visibility:visible;z-index:1}:host(.pds-tooltip--has-html-content) .pds-tooltip__content{width:auto}.pds-tooltip__content::after{border-color:transparent;border-right-color:transparent;border-style:solid;border-width:var(--tooltip-border-width-arrow-left);content:\"\";height:0;position:absolute;width:0}.pds-tooltip--right .pds-tooltip__content::after{border-inline-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-left);left:calc(var(--tooltip-sizing-arrow) * -1);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.pds-tooltip--right-end .pds-tooltip__content::after{border-inline-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-left);bottom:var(--tooltip-sizing-arrow-offset);left:calc(var(--tooltip-sizing-arrow) * -1);top:initial}.pds-tooltip--right-start .pds-tooltip__content::after{border-inline-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-left);left:calc(var(--tooltip-sizing-arrow) * -1);top:var(--tooltip-sizing-arrow-offset)}.pds-tooltip--top .pds-tooltip__content::after{border-block-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-down);bottom:calc(var(--tooltip-sizing-arrow) * -1);left:50%;top:initial;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.pds-tooltip--top-start .pds-tooltip__content::after{border-block-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-down);bottom:calc(var(--tooltip-sizing-arrow) * -1);left:var(--tooltip-sizing-arrow-offset);top:initial}.pds-tooltip--top-end .pds-tooltip__content::after{border-block-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-down);bottom:calc(var(--tooltip-sizing-arrow) * -1);left:initial;right:var(--tooltip-sizing-arrow-offset);top:initial}.pds-tooltip--left .pds-tooltip__content::after{border-inline-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-right);left:initial;right:calc(var(--tooltip-sizing-arrow) * -1);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.pds-tooltip--left-end .pds-tooltip__content::after{border-inline-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-right);bottom:var(--tooltip-sizing-arrow-offset);left:initial;right:calc(var(--tooltip-sizing-arrow) * -1);top:initial}.pds-tooltip--left-start .pds-tooltip__content::after{border-inline-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-right);left:initial;right:calc(var(--tooltip-sizing-arrow) * -1);top:var(--tooltip-sizing-arrow-offset)}.pds-tooltip--bottom .pds-tooltip__content::after{border-block-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-up);left:50%;top:calc(var(--tooltip-sizing-arrow) * -1);-webkit-transform:translateX(-50%);transform:translateX(-50%)}.pds-tooltip--bottom-end .pds-tooltip__content::after{border-block-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-up);left:initial;right:var(--tooltip-sizing-arrow-offset);top:calc(var(--tooltip-sizing-arrow) * -1)}.pds-tooltip--bottom-start .pds-tooltip__content::after{border-block-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-up);left:var(--tooltip-sizing-arrow-offset);top:calc(var(--tooltip-sizing-arrow) * -1)}.pds-tooltip--no-arrow .pds-tooltip__content::after{border-width:0}";
11167
+ const pdsTooltipCss = ".pds-tooltip{--tooltip-border-width-arrow-down:var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow) 0;--tooltip-border-width-arrow-left:var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow) 0;--tooltip-border-width-arrow-right:var(--tooltip-sizing-arrow) 0 var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow);--tooltip-border-width-arrow-up:0 var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow);--tooltip-sizing-arrow:6px;--tooltip-sizing-arrow-offset:14px;--tooltip-dimension-max-width:320px}.pds-tooltip__content{background-color:var(--pine-color-primary);border-radius:calc(var(--pine-dimension-xs) * 1.25);-webkit-box-shadow:var(--pine-box-shadow);box-shadow:var(--pine-box-shadow);color:var(--pine-color-text-primary);max-width:var(--tooltip-dimension-max-width);opacity:0;padding:var(--pine-dimension-xs) calc(var(--pine-dimension-md) / 2);position:absolute;visibility:hidden;width:-webkit-max-content;width:-moz-max-content;width:max-content}.pds-tooltip--is-open .pds-tooltip__content{opacity:1;visibility:visible;z-index:1}.pds-tooltip.pds-tooltip--has-html-content .pds-tooltip__content{width:auto}.pds-tooltip__content::after{border-color:transparent;border-right-color:transparent;border-style:solid;border-width:var(--tooltip-border-width-arrow-left);content:\"\";height:0;position:absolute;width:0}.pds-tooltip--right .pds-tooltip__content::after{border-inline-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-left);left:calc(var(--tooltip-sizing-arrow) * -1);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.pds-tooltip--right-end .pds-tooltip__content::after{border-inline-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-left);bottom:var(--tooltip-sizing-arrow-offset);left:calc(var(--tooltip-sizing-arrow) * -1);top:initial}.pds-tooltip--right-start .pds-tooltip__content::after{border-inline-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-left);left:calc(var(--tooltip-sizing-arrow) * -1);top:var(--tooltip-sizing-arrow-offset)}.pds-tooltip--top .pds-tooltip__content::after{border-block-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-down);bottom:calc(var(--tooltip-sizing-arrow) * -1);left:50%;top:initial;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.pds-tooltip--top-start .pds-tooltip__content::after{border-block-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-down);bottom:calc(var(--tooltip-sizing-arrow) * -1);left:var(--tooltip-sizing-arrow-offset);top:initial}.pds-tooltip--top-end .pds-tooltip__content::after{border-block-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-down);bottom:calc(var(--tooltip-sizing-arrow) * -1);left:initial;right:var(--tooltip-sizing-arrow-offset);top:initial}.pds-tooltip--left .pds-tooltip__content::after{border-inline-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-right);left:initial;right:calc(var(--tooltip-sizing-arrow) * -1);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.pds-tooltip--left-end .pds-tooltip__content::after{border-inline-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-right);bottom:var(--tooltip-sizing-arrow-offset);left:initial;right:calc(var(--tooltip-sizing-arrow) * -1);top:initial}.pds-tooltip--left-start .pds-tooltip__content::after{border-inline-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-right);left:initial;right:calc(var(--tooltip-sizing-arrow) * -1);top:var(--tooltip-sizing-arrow-offset)}.pds-tooltip--bottom .pds-tooltip__content::after{border-block-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-up);left:50%;top:calc(var(--tooltip-sizing-arrow) * -1);-webkit-transform:translateX(-50%);transform:translateX(-50%)}.pds-tooltip--bottom-end .pds-tooltip__content::after{border-block-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-up);left:initial;right:var(--tooltip-sizing-arrow-offset);top:calc(var(--tooltip-sizing-arrow) * -1)}.pds-tooltip--bottom-start .pds-tooltip__content::after{border-block-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-up);left:var(--tooltip-sizing-arrow-offset);top:calc(var(--tooltip-sizing-arrow) * -1)}.pds-tooltip--no-arrow .pds-tooltip__content::after{border-width:0}";
8630
11168
 
8631
11169
  /**
8632
11170
  * @slot (default) - The tooltip's target element
@@ -8635,6 +11173,18 @@ const pdsTooltipCss = ":host{--tooltip-border-width-arrow-down:var(--tooltip-siz
8635
11173
  class PdsTooltip {
8636
11174
  constructor(hostRef) {
8637
11175
  registerInstance(this, hostRef);
11176
+ /**
11177
+ * Internal state: true if the tooltip was opened by user interaction (hover/focus),
11178
+ * false if opened via the `opened` prop or currently closed.
11179
+ */
11180
+ this._isInteractiveOpen = false;
11181
+ this.portalEl = null;
11182
+ this.triggerEl = null;
11183
+ this.contentDiv = null;
11184
+ this.slotMutationObserver = null;
11185
+ this.overlayResizeObserver = null;
11186
+ this.currentPathname = '';
11187
+ this.pathnameCheckInterval = null;
8638
11188
  /**
8639
11189
  * Determines when the tooltip is open
8640
11190
  * @defaultValue false
@@ -8666,44 +11216,87 @@ class PdsTooltip {
8666
11216
  */
8667
11217
  this.opened = false;
8668
11218
  this.handleHide = () => {
11219
+ if (this.opened && !this._isInteractiveOpen) {
11220
+ return;
11221
+ }
8669
11222
  this.hideTooltip();
11223
+ this._isInteractiveOpen = false;
8670
11224
  };
8671
11225
  this.handleShow = () => {
11226
+ if (this.opened && !this._isInteractiveOpen) {
11227
+ return;
11228
+ }
11229
+ this._isInteractiveOpen = true;
8672
11230
  this.showTooltip();
8673
11231
  };
8674
11232
  this.handlePageShow = () => {
11233
+ if (this.opened && !this._isInteractiveOpen) {
11234
+ return;
11235
+ }
8675
11236
  this.opened = false;
11237
+ this._isInteractiveOpen = false;
11238
+ };
11239
+ this.handleScroll = () => {
11240
+ if (this.opened) {
11241
+ if (!this._isInteractiveOpen) {
11242
+ this.repositionPortal();
11243
+ }
11244
+ else {
11245
+ this.hideTooltip();
11246
+ this._isInteractiveOpen = false;
11247
+ }
11248
+ }
11249
+ };
11250
+ this.handleSpaNavigation = () => {
11251
+ if (this.opened && !this._isInteractiveOpen) {
11252
+ return;
11253
+ }
11254
+ this.hideTooltip();
11255
+ this._isInteractiveOpen = false;
11256
+ };
11257
+ this.checkPathnameChange = () => {
11258
+ if (window.location.pathname !== this.currentPathname) {
11259
+ this.currentPathname = window.location.pathname;
11260
+ this.handleSpaNavigation();
11261
+ }
8676
11262
  };
8677
11263
  }
8678
- handleOpenToggle() {
8679
- if (this.opened) {
8680
- this.handleShow();
8681
- }
8682
- else {
8683
- this.handleHide();
11264
+ handleOpenToggle(newValue, oldValue) {
11265
+ if (newValue === false && oldValue === true) {
11266
+ this._isInteractiveOpen = false;
8684
11267
  }
8685
11268
  }
8686
11269
  componentWillLoad() {
8687
- if (this.opened) {
8688
- this.showTooltip();
8689
- }
8690
- this.el.addEventListener('blur', this.handleHide, true);
8691
- this.el.addEventListener('focus', this.handleShow, true);
11270
+ this._isInteractiveOpen = false;
8692
11271
  }
8693
11272
  componentDidLoad() {
8694
- // fix for Safari iOS back button issue
8695
11273
  window.addEventListener('pageshow', this.handlePageShow);
11274
+ this.currentPathname = window.location.pathname;
11275
+ this.triggerEl = this.el.querySelector('.pds-tooltip__trigger');
11276
+ const contentSlotWrapper = this.el.querySelector('.pds-tooltip__content-slot-wrapper');
11277
+ if (contentSlotWrapper !== null) {
11278
+ this.slotMutationObserver = new MutationObserver(() => {
11279
+ if (this.opened && this.portalEl !== null) {
11280
+ this.removePortal();
11281
+ this.createPortal();
11282
+ }
11283
+ });
11284
+ this.slotMutationObserver.observe(contentSlotWrapper, { childList: true, subtree: false });
11285
+ }
8696
11286
  return () => {
8697
11287
  window.removeEventListener('pageshow', this.handlePageShow);
11288
+ if (this.slotMutationObserver !== null) {
11289
+ this.slotMutationObserver.disconnect();
11290
+ }
8698
11291
  };
8699
11292
  }
8700
- componentDidUpdate() {
8701
- if (this.opened) {
8702
- this.showTooltip();
8703
- }
8704
- }
8705
11293
  componentDidRender() {
8706
- positionTooltip({ elem: this.el, elemPlacement: this.placement, overlay: this.contentEl });
11294
+ if (this.opened && this.portalEl === null) {
11295
+ this.createPortal();
11296
+ }
11297
+ else if (!this.opened && this.portalEl !== null) {
11298
+ this.removePortal();
11299
+ }
8707
11300
  }
8708
11301
  /**
8709
11302
  * Shows the tooltip by enabling the opened property
@@ -8717,14 +11310,159 @@ class PdsTooltip {
8717
11310
  async hideTooltip() {
8718
11311
  this.opened = false;
8719
11312
  }
11313
+ /**
11314
+ * Determines the most accurate HTML element to use as the anchor for positioning the tooltip.
11315
+ * If `htmlContent` is false, it attempts to find the actual element slotted as the trigger.
11316
+ * Otherwise, or if no specific element is found, it defaults to the span wrapper around the trigger slot.
11317
+ * This helps with precise alignment.
11318
+ */
11319
+ determinePositioningAnchor() {
11320
+ let positioningAnchor = this.triggerEl;
11321
+ if (this.triggerEl !== null) {
11322
+ const children = this.triggerEl.childNodes;
11323
+ for (let i = 0; i < children.length; i++) {
11324
+ const childNode = children[i];
11325
+ if (childNode.nodeType === Node.ELEMENT_NODE) {
11326
+ positioningAnchor = childNode;
11327
+ break; // Found the first element, use it as the anchor
11328
+ }
11329
+ }
11330
+ }
11331
+ // If no ELEMENT_NODE is found within this.triggerEl (e.g., if trigger is just text),
11332
+ // positioningAnchor will correctly remain this.triggerEl (the span).
11333
+ return positioningAnchor;
11334
+ }
11335
+ /**
11336
+ * Centralized method to calculate and apply the tooltip's position.
11337
+ * Uses the determined anchor element and the current content dimensions.
11338
+ */
11339
+ repositionPortal() {
11340
+ const anchor = this.determinePositioningAnchor();
11341
+ if (anchor !== null && this.contentDiv !== null) {
11342
+ positionTooltip({ elem: anchor, elemPlacement: this.placement, overlay: this.contentDiv });
11343
+ const placementParts = this.placement.split('-');
11344
+ const primaryPlacement = placementParts[0];
11345
+ const isCardinalCenterPlacement = placementParts.length === 1;
11346
+ if (isCardinalCenterPlacement) {
11347
+ const anchorRect = anchor.getBoundingClientRect();
11348
+ const overlayRect = this.contentDiv.getBoundingClientRect();
11349
+ if (primaryPlacement === 'left' || primaryPlacement === 'right') {
11350
+ const currentOverlayTop = parseFloat(this.contentDiv.style.top || '0');
11351
+ const anchorCenterY = anchorRect.top + (anchorRect.height / 2);
11352
+ const overlayCenterY = overlayRect.top + (overlayRect.height / 2);
11353
+ const adjustmentY = anchorCenterY - overlayCenterY;
11354
+ if (Math.abs(adjustmentY) > 0.5) {
11355
+ this.contentDiv.style.top = `${currentOverlayTop + adjustmentY}px`;
11356
+ }
11357
+ }
11358
+ else if (primaryPlacement === 'top' || primaryPlacement === 'bottom') {
11359
+ const currentOverlayLeft = parseFloat(this.contentDiv.style.left || '0');
11360
+ const anchorCenterX = anchorRect.left + (anchorRect.width / 2);
11361
+ const overlayCenterX = overlayRect.left + (overlayRect.width / 2);
11362
+ const adjustmentX = anchorCenterX - overlayCenterX;
11363
+ if (Math.abs(adjustmentX) > 0.5) {
11364
+ this.contentDiv.style.left = `${currentOverlayLeft + adjustmentX}px`;
11365
+ }
11366
+ }
11367
+ }
11368
+ }
11369
+ }
11370
+ createPortal() {
11371
+ if (this.portalEl !== null)
11372
+ return;
11373
+ this.portalEl = document.createElement('div');
11374
+ this.portalEl.className = `pds-tooltip pds-tooltip--${this.placement} ${this.htmlContent ? 'pds-tooltip--has-html-content' : ''} ${this.opened ? 'pds-tooltip--is-open' : ''} ${this.hasArrow ? '' : 'pds-tooltip--no-arrow'}`;
11375
+ this.portalEl.style.position = 'fixed';
11376
+ this.portalEl.style.zIndex = '9999';
11377
+ if (this.portalEl.id === '') {
11378
+ this.portalEl.id = this.componentId || this.el.id || `pds-tooltip-portal-${PdsTooltip.instanceCounter++}`;
11379
+ }
11380
+ if (this.portalEl.getAttribute('id') !== this.portalEl.id) {
11381
+ this.portalEl.setAttribute('id', this.portalEl.id);
11382
+ }
11383
+ this.portalEl.setAttribute('role', 'tooltip');
11384
+ this.portalEl.setAttribute('aria-hidden', this.opened ? 'false' : 'true');
11385
+ this.portalEl.setAttribute('aria-live', this.opened ? 'polite' : 'off');
11386
+ this.portalEl.style.maxWidth = this.maxWidth;
11387
+ this.contentDiv = document.createElement('div');
11388
+ this.contentDiv.className = 'pds-tooltip__content';
11389
+ this.contentDiv.setAttribute('aria-hidden', this.opened ? 'false' : 'true');
11390
+ this.contentDiv.setAttribute('aria-live', this.opened ? 'polite' : 'off');
11391
+ this.contentDiv.setAttribute('role', 'tooltip');
11392
+ this.contentDiv.style.maxWidth = this.maxWidth;
11393
+ const contentSlotWrapper = this.el.querySelector('.pds-tooltip__content-slot-wrapper');
11394
+ const slottedContentContainer = contentSlotWrapper === null || contentSlotWrapper === void 0 ? void 0 : contentSlotWrapper.querySelector('[slot="content"]');
11395
+ let hasSlottedContent = false;
11396
+ if (slottedContentContainer !== null) {
11397
+ const childrenToClone = Array.from(slottedContentContainer.childNodes);
11398
+ if (childrenToClone.length > 0) {
11399
+ const hasMeaningfulNode = childrenToClone.some(node => {
11400
+ var _a;
11401
+ return node.nodeType === Node.ELEMENT_NODE ||
11402
+ (node.nodeType === Node.TEXT_NODE && ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim()) !== '');
11403
+ });
11404
+ if (hasMeaningfulNode) {
11405
+ hasSlottedContent = true;
11406
+ childrenToClone.forEach((node /*, index*/) => {
11407
+ var _a;
11408
+ if (node.nodeType === Node.ELEMENT_NODE || (node.nodeType === Node.TEXT_NODE && ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim()) !== '')) {
11409
+ this.contentDiv.appendChild(node.cloneNode(true));
11410
+ }
11411
+ });
11412
+ }
11413
+ }
11414
+ }
11415
+ if (!hasSlottedContent) {
11416
+ if (this.content !== '') {
11417
+ this.contentDiv.textContent = this.content;
11418
+ }
11419
+ }
11420
+ this.portalEl.appendChild(this.contentDiv);
11421
+ document.body.appendChild(this.portalEl);
11422
+ this.repositionPortal();
11423
+ if (this.contentDiv !== null) {
11424
+ this.overlayResizeObserver = new ResizeObserver(() => {
11425
+ this.repositionPortal();
11426
+ });
11427
+ this.overlayResizeObserver.observe(this.contentDiv);
11428
+ }
11429
+ // Add global listeners when portal is created
11430
+ window.addEventListener('scroll', this.handleScroll, true);
11431
+ window.addEventListener('popstate', this.handleSpaNavigation, true);
11432
+ window.addEventListener('hashchange', this.handleSpaNavigation, true);
11433
+ // Start pathname change detection
11434
+ this.pathnameCheckInterval = setInterval(this.checkPathnameChange, 100);
11435
+ // Add ARIA attribute to trigger, now that portalEl and its ID are confirmed
11436
+ if (this.triggerEl !== null && this.portalEl.id !== '') {
11437
+ this.triggerEl.setAttribute('aria-describedby', this.portalEl.id);
11438
+ }
11439
+ }
11440
+ removePortal() {
11441
+ if (this.overlayResizeObserver !== null && this.contentDiv !== null) {
11442
+ this.overlayResizeObserver.unobserve(this.contentDiv);
11443
+ this.overlayResizeObserver = null;
11444
+ }
11445
+ // Stop pathname change detection
11446
+ if (this.pathnameCheckInterval !== null) {
11447
+ clearInterval(this.pathnameCheckInterval);
11448
+ this.pathnameCheckInterval = null;
11449
+ }
11450
+ if (this.portalEl !== null) {
11451
+ window.removeEventListener('scroll', this.handleScroll, true);
11452
+ window.removeEventListener('popstate', this.handleSpaNavigation, true);
11453
+ window.removeEventListener('hashchange', this.handleSpaNavigation, true);
11454
+ document.body.removeChild(this.portalEl);
11455
+ this.portalEl = null;
11456
+ }
11457
+ // Remove ARIA attribute from trigger
11458
+ if (this.triggerEl !== null) {
11459
+ this.triggerEl.removeAttribute('aria-describedby');
11460
+ }
11461
+ this.contentDiv = null;
11462
+ }
8720
11463
  render() {
8721
- return (hAsync(Host, { key: '2732f2c81bc66814945206ddde15367e64a89ec2', onMouseEnter: this.handleShow, onMouseLeave: this.handleHide, onFocusin: this.handleShow, onFocusout: this.handleHide }, hAsync("div", { key: '58705f1fbb1d88b91337100ba32de07f7838be52', class: `
8722
- pds-tooltip
8723
- pds-tooltip--${this.placement}
8724
- ${this.htmlContent ? 'pds-tooltip--has-html-content' : ''}
8725
- ${this.opened ? 'pds-tooltip--is-open' : ''}
8726
- ${this.hasArrow ? '' : 'pds-tooltip--no-arrow'}
8727
- ` }, hAsync("span", { key: '33e96cb4f46ebc418f79971047a37fc5c3498e0d', "aria-describedby": this.componentId, class: "pds-tooltip__trigger" }, hAsync("slot", { key: 'cca7b5d50e2cbc0f839a46caa5a5dc8a79f1cb15' })), hAsync("div", { key: '22c666894f7835629e00e9c2c3964bcaf63000ae', class: "pds-tooltip__content", "aria-hidden": this.opened ? 'false' : 'true', "aria-live": this.opened ? 'polite' : 'off', id: this.componentId, ref: (el) => (this.contentEl = el), role: "tooltip", style: { maxWidth: this.maxWidth } }, hAsync("slot", { key: '83a805d9eef71ac261a03d56853ccc8ac7bfe818', name: "content" }), this.content))));
11464
+ const hostId = this.componentId || undefined;
11465
+ return (hAsync(Host, { key: '462d8c0b1b70de08c0a4f9fe0b3977fa3b4af461', id: hostId, class: { 'pds-tooltip--is-open': this.opened } }, hAsync("span", { key: 'dfb735da6e04d95701bc223bc054414d781c0f4a', class: "pds-tooltip__trigger", onMouseEnter: this.handleShow, onMouseLeave: this.handleHide, onFocus: this.handleShow, onBlur: this.handleHide, ref: el => this.triggerEl = el }, hAsync("slot", { key: 'f0e5970a1ba6d59045306b836468cd00a06b183f' })), hAsync("div", { key: '212ec606b29bd7a64a2ea3b1b4fae9746361a712', class: "pds-tooltip__content-slot-wrapper", style: { display: 'none' } }, hAsync("slot", { key: '035ea5b2dfec0ca7f1462c30053f8f455cb986f2', name: "content" }))));
8728
11466
  }
8729
11467
  get el() { return getElement(this); }
8730
11468
  static get watchers() { return {
@@ -8732,7 +11470,7 @@ class PdsTooltip {
8732
11470
  }; }
8733
11471
  static get style() { return pdsTooltipCss; }
8734
11472
  static get cmpMeta() { return {
8735
- "$flags$": 9,
11473
+ "$flags$": 4,
8736
11474
  "$tagName$": "pds-tooltip",
8737
11475
  "$members$": {
8738
11476
  "content": [1],
@@ -8742,6 +11480,7 @@ class PdsTooltip {
8742
11480
  "placement": [513],
8743
11481
  "maxWidth": [1, "max-width"],
8744
11482
  "opened": [1540],
11483
+ "_isInteractiveOpen": [32],
8745
11484
  "isOpen": [32],
8746
11485
  "showTooltip": [64],
8747
11486
  "hideTooltip": [64]
@@ -8751,9 +11490,12 @@ class PdsTooltip {
8751
11490
  "$attrsToReflect$": [["placement", "placement"], ["opened", "opened"]]
8752
11491
  }; }
8753
11492
  }
11493
+ PdsTooltip.instanceCounter = 0;
8754
11494
 
8755
11495
  registerComponents([
11496
+ MockPdsModal,
8756
11497
  PdsAccordion,
11498
+ PdsAlert,
8757
11499
  PdsAvatar,
8758
11500
  PdsBox,
8759
11501
  PdsButton,
@@ -8761,11 +11503,18 @@ registerComponents([
8761
11503
  PdsChip,
8762
11504
  PdsCopytext,
8763
11505
  PdsDivider,
11506
+ PdsDropdownMenu,
11507
+ PdsDropdownMenuItem,
11508
+ PdsDropdownMenuSeparator,
8764
11509
  PdsIcon,
8765
11510
  PdsImage,
8766
11511
  PdsInput,
8767
11512
  PdsLink,
8768
11513
  PdsLoader,
11514
+ PdsModal,
11515
+ PdsModalContent,
11516
+ PdsModalFooter,
11517
+ PdsModalHeader,
8769
11518
  PdsPopover,
8770
11519
  PdsProgress,
8771
11520
  PdsRadio,
@@ -8785,6 +11534,7 @@ registerComponents([
8785
11534
  PdsTabs,
8786
11535
  PdsText,
8787
11536
  PdsTextarea,
11537
+ PdsToast,
8788
11538
  PdsTooltip,
8789
11539
  ]);
8790
11540