@pine-ds/core 4.7.2 → 4.9.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 (536) hide show
  1. package/components/attributes.js +1 -1
  2. package/components/floating-ui.dom.js +1 -1
  3. package/components/index.js +1 -1
  4. package/components/index2.js +1 -1
  5. package/components/keep-hydrated.js +1 -0
  6. package/components/mock-pds-modal.js +1 -1
  7. package/components/pds-alert.js +1 -1
  8. package/components/pds-avatar.js +1 -1
  9. package/components/pds-box2.js +1 -1
  10. package/components/pds-button2.js +1 -1
  11. package/components/pds-checkbox2.js +1 -1
  12. package/components/pds-chip2.js +1 -1
  13. package/components/pds-combobox.js +1 -1
  14. package/components/pds-container.js +1 -1
  15. package/components/pds-copytext.js +1 -1
  16. package/components/pds-datepicker.js +1 -1
  17. package/components/pds-divider.js +1 -1
  18. package/components/pds-drawer-content.js +1 -1
  19. package/components/pds-drawer-footer.js +1 -1
  20. package/components/pds-drawer-header.js +1 -1
  21. package/components/pds-drawer.js +1 -1
  22. package/components/pds-dropdown-menu-item.js +1 -1
  23. package/components/pds-dropdown-menu-separator.js +1 -1
  24. package/components/pds-dropdown-menu.js +1 -1
  25. package/components/pds-filter.js +1 -1
  26. package/components/pds-filters.js +1 -1
  27. package/components/pds-image.js +1 -1
  28. package/components/pds-input2.js +1 -1
  29. package/components/pds-link2.js +1 -1
  30. package/components/pds-loader2.js +1 -1
  31. package/components/pds-modal-content.js +1 -1
  32. package/components/pds-modal-footer.js +1 -1
  33. package/components/pds-modal-header.js +1 -1
  34. package/components/pds-modal2.js +1 -1
  35. package/components/pds-multiselect.js +1 -1
  36. package/components/pds-popover.js +1 -1
  37. package/components/pds-progress.js +1 -1
  38. package/components/pds-property.js +1 -1
  39. package/components/pds-radio-group.js +1 -1
  40. package/components/pds-radio.js +1 -1
  41. package/components/pds-row.js +1 -1
  42. package/components/pds-select.js +1 -1
  43. package/components/pds-sortable-item.js +1 -1
  44. package/components/pds-sortable.js +2 -2
  45. package/components/pds-switch.js +1 -1
  46. package/components/pds-table-body.js +1 -1
  47. package/components/pds-table-cell2.js +1 -1
  48. package/components/pds-table-head-cell2.js +1 -1
  49. package/components/pds-table-head.js +1 -1
  50. package/components/pds-table-row.js +1 -1
  51. package/components/pds-tabpanel.js +1 -1
  52. package/components/pds-tabs.js +1 -1
  53. package/components/pds-text2.js +1 -1
  54. package/components/pds-textarea.js +1 -1
  55. package/components/pds-toast.js +1 -1
  56. package/components/pds-tooltip.js +1 -1
  57. package/components/tabbable.js +1 -0
  58. package/components/truncation-tooltip.js +1 -1
  59. package/dist/cjs/{attributes-BJ7KBHql.js → attributes-CW49XqaL.js} +1 -1
  60. package/dist/cjs/{floating-ui.dom-Dc8Anyel.js → floating-ui.dom-Dw41zbyY.js} +1 -0
  61. package/dist/cjs/{index-jl_Q819j.js → index-BsWY_xEJ.js} +1 -1
  62. package/dist/cjs/{index-5Azb8EQG.js → index-Do70atou.js} +1 -1
  63. package/dist/cjs/index.cjs.js +1 -1
  64. package/dist/cjs/{keep-hydrated-CiXgkEYd.js → keep-hydrated-AKoh0DG4.js} +1 -0
  65. package/dist/cjs/loader.cjs.js +3 -3
  66. package/dist/cjs/mock-pds-modal.cjs.entry.js +3 -3
  67. package/dist/cjs/pds-accordion.cjs.entry.js +3 -3
  68. package/dist/cjs/pds-alert.cjs.entry.js +17 -4
  69. package/dist/cjs/pds-avatar.cjs.entry.js +23 -13
  70. package/dist/cjs/pds-box.cjs.entry.js +4 -4
  71. package/dist/cjs/pds-button.cjs.entry.js +80 -45
  72. package/dist/cjs/pds-checkbox.cjs.entry.js +16 -8
  73. package/dist/cjs/pds-chip.cjs.entry.js +8 -8
  74. package/dist/cjs/pds-combobox.cjs.entry.js +43 -13
  75. package/dist/cjs/pds-container.cjs.entry.js +3 -3
  76. package/dist/cjs/pds-copytext.cjs.entry.js +7 -7
  77. package/dist/cjs/pds-datepicker.cjs.entry.js +6 -6
  78. package/dist/cjs/pds-divider.cjs.entry.js +3 -3
  79. package/dist/cjs/pds-drawer-content.cjs.entry.js +3 -3
  80. package/dist/cjs/pds-drawer-footer.cjs.entry.js +3 -3
  81. package/dist/cjs/pds-drawer-header.cjs.entry.js +3 -3
  82. package/dist/cjs/pds-drawer.cjs.entry.js +4 -4
  83. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +34 -5
  84. package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +3 -3
  85. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +8 -8
  86. package/dist/cjs/pds-filter.cjs.entry.js +4 -4
  87. package/dist/cjs/pds-filters.cjs.entry.js +3 -3
  88. package/dist/cjs/pds-icon.cjs.entry.js +2 -2
  89. package/dist/cjs/pds-image.cjs.entry.js +4 -4
  90. package/dist/cjs/pds-input.cjs.entry.js +6 -6
  91. package/dist/cjs/pds-link.cjs.entry.js +15 -6
  92. package/dist/cjs/pds-loader.cjs.entry.js +4 -4
  93. package/dist/cjs/pds-modal-content.cjs.entry.js +34 -32
  94. package/dist/cjs/pds-modal-footer.cjs.entry.js +3 -3
  95. package/dist/cjs/pds-modal-header.cjs.entry.js +3 -3
  96. package/dist/cjs/pds-modal.cjs.entry.js +9 -89
  97. package/dist/cjs/pds-multiselect.cjs.entry.js +9 -9
  98. package/dist/cjs/pds-popover.cjs.entry.js +416 -163
  99. package/dist/cjs/pds-progress.cjs.entry.js +4 -4
  100. package/dist/cjs/pds-property.cjs.entry.js +3 -3
  101. package/dist/cjs/pds-radio-group.cjs.entry.js +6 -6
  102. package/dist/cjs/pds-radio.cjs.entry.js +24 -11
  103. package/dist/cjs/pds-row.cjs.entry.js +4 -4
  104. package/dist/cjs/pds-select.cjs.entry.js +132 -21
  105. package/dist/cjs/pds-sortable-item.cjs.entry.js +5 -5
  106. package/dist/cjs/pds-sortable.cjs.entry.js +4 -4
  107. package/dist/cjs/pds-switch.cjs.entry.js +7 -7
  108. package/dist/cjs/pds-tab.cjs.entry.js +3 -3
  109. package/dist/cjs/pds-table-body.cjs.entry.js +3 -3
  110. package/dist/cjs/pds-table-cell.cjs.entry.js +6 -6
  111. package/dist/cjs/pds-table-head-cell.cjs.entry.js +5 -5
  112. package/dist/cjs/pds-table-head.cjs.entry.js +3 -3
  113. package/dist/cjs/pds-table-row.cjs.entry.js +3 -3
  114. package/dist/cjs/pds-table.cjs.entry.js +2 -2
  115. package/dist/cjs/pds-tabpanel.cjs.entry.js +4 -4
  116. package/dist/cjs/pds-tabs.cjs.entry.js +4 -4
  117. package/dist/cjs/pds-text.cjs.entry.js +5 -5
  118. package/dist/cjs/pds-textarea.cjs.entry.js +8 -8
  119. package/dist/cjs/pds-toast.cjs.entry.js +14 -8
  120. package/dist/cjs/pds-tooltip.cjs.entry.js +115 -44
  121. package/dist/cjs/pine-core.cjs.js +3 -3
  122. package/dist/cjs/tabbable-CddSt_Hi.js +85 -0
  123. package/dist/cjs/{truncation-tooltip-DO9xli2e.js → truncation-tooltip-O5nQmXPw.js} +32 -7
  124. package/dist/collection/components/pds-alert/pds-alert.css +13 -0
  125. package/dist/collection/components/pds-alert/pds-alert.js +36 -1
  126. package/dist/collection/components/pds-alert/stories/pds-alert.stories.js +4 -0
  127. package/dist/collection/components/pds-avatar/pds-avatar.js +42 -10
  128. package/dist/collection/components/pds-avatar/stories/pds-avatar.stories.js +2 -0
  129. package/dist/collection/components/pds-box/pds-box.js +1 -1
  130. package/dist/collection/components/pds-button/pds-button.js +36 -44
  131. package/dist/collection/components/pds-button/stories/pds-button.stories.js +3 -3
  132. package/dist/collection/components/pds-checkbox/pds-checkbox.css +79 -0
  133. package/dist/collection/components/pds-checkbox/pds-checkbox.js +36 -5
  134. package/dist/collection/components/pds-checkbox/stories/pds-checkbox.stories.js +38 -0
  135. package/dist/collection/components/pds-chip/pds-chip.js +2 -2
  136. package/dist/collection/components/pds-combobox/pds-combobox.css +33 -0
  137. package/dist/collection/components/pds-combobox/pds-combobox.js +62 -9
  138. package/dist/collection/components/pds-combobox/stories/pds-combobox.stories.js +44 -0
  139. package/dist/collection/components/pds-container/pds-container.js +1 -1
  140. package/dist/collection/components/pds-copytext/pds-copytext.js +1 -1
  141. package/dist/collection/components/pds-datepicker/pds-datepicker.js +2 -2
  142. package/dist/collection/components/pds-datepicker/stories/pds-datepicker.stories.js +1 -1
  143. package/dist/collection/components/pds-divider/pds-divider.js +1 -1
  144. package/dist/collection/components/pds-drawer/pds-drawer-content/pds-drawer-content.js +1 -1
  145. package/dist/collection/components/pds-drawer/pds-drawer-footer/pds-drawer-footer.js +1 -1
  146. package/dist/collection/components/pds-drawer/pds-drawer-header/pds-drawer-header.js +1 -1
  147. package/dist/collection/components/pds-drawer/pds-drawer.js +2 -2
  148. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.css +8 -0
  149. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js +81 -7
  150. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js +1 -1
  151. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +4 -4
  152. package/dist/collection/components/pds-dropdown-menu/stories/pds-dropdown-menu.stories.js +39 -0
  153. package/dist/collection/components/pds-filters/pds-filter/pds-filter.js +1 -1
  154. package/dist/collection/components/pds-filters/pds-filters.js +1 -1
  155. package/dist/collection/components/pds-image/pds-image.js +2 -2
  156. package/dist/collection/components/pds-input/pds-input.js +2 -2
  157. package/dist/collection/components/pds-input/stories/pds-input.stories.js +6 -6
  158. package/dist/collection/components/pds-link/pds-link.js +34 -3
  159. package/dist/collection/components/pds-link/stories/pds-link.stories.js +3 -2
  160. package/dist/collection/components/pds-loader/pds-loader.js +1 -1
  161. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js +32 -30
  162. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js +1 -1
  163. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js +1 -1
  164. package/dist/collection/components/pds-modal/pds-modal.js +5 -85
  165. package/dist/collection/components/pds-modal/test/mock-pds-modal.js +1 -1
  166. package/dist/collection/components/pds-multiselect/pds-multiselect.js +5 -5
  167. package/dist/collection/components/pds-popover/pds-popover.css +6 -0
  168. package/dist/collection/components/pds-popover/pds-popover.js +465 -159
  169. package/dist/collection/components/pds-popover/stories/pds-popover.stories.js +31 -0
  170. package/dist/collection/components/pds-progress/pds-progress.js +1 -1
  171. package/dist/collection/components/pds-property/pds-property.js +1 -1
  172. package/dist/collection/components/pds-radio/pds-radio.css +57 -0
  173. package/dist/collection/components/pds-radio/pds-radio.js +45 -9
  174. package/dist/collection/components/pds-radio/stories/pds-radio.stories.js +15 -0
  175. package/dist/collection/components/pds-radio-group/pds-radio-group.js +3 -3
  176. package/dist/collection/components/pds-radio-group/stories/pds-radio-group.stories.js +45 -0
  177. package/dist/collection/components/pds-row/pds-row.js +1 -1
  178. package/dist/collection/components/pds-select/pds-select.js +128 -17
  179. package/dist/collection/components/pds-select/stories/pds-select.stories.js +2 -2
  180. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +1 -1
  181. package/dist/collection/components/pds-sortable/pds-sortable.js +1 -1
  182. package/dist/collection/components/pds-switch/pds-switch.js +3 -3
  183. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js +1 -1
  184. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +2 -2
  185. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +1 -1
  186. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +2 -2
  187. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +1 -1
  188. package/dist/collection/components/pds-table/stories/pds-table.stories.js +4 -4
  189. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +1 -1
  190. package/dist/collection/components/pds-tabs/pds-tabs.js +1 -1
  191. package/dist/collection/components/pds-text/pds-text.js +1 -1
  192. package/dist/collection/components/pds-text/stories/pds-text.stories.js +1 -1
  193. package/dist/collection/components/pds-textarea/pds-textarea.js +4 -4
  194. package/dist/collection/components/pds-textarea/stories/pds-textarea.stories.js +2 -2
  195. package/dist/collection/components/pds-toast/pds-toast.css +13 -0
  196. package/dist/collection/components/pds-toast/pds-toast.js +33 -5
  197. package/dist/collection/components/pds-toast/stories/pds-toast.stories.js +4 -1
  198. package/dist/collection/components/pds-tooltip/pds-tooltip.js +113 -41
  199. package/dist/collection/utils/aria-references.js +42 -0
  200. package/dist/collection/utils/tabbable.js +81 -0
  201. package/dist/collection/utils/truncation-tooltip.js +31 -6
  202. package/dist/docs.json +367 -13
  203. package/dist/esm/{attributes-WXw_I_uJ.js → attributes-DkeVeN0g.js} +1 -1
  204. package/dist/esm/{floating-ui.dom-BPqJgIq6.js → floating-ui.dom-Cuc0DYlm.js} +1 -1
  205. package/dist/esm/{index-Cw9J31qd.js → index-BFSwd-GQ.js} +1 -1
  206. package/dist/esm/{index-BJXk71tO.js → index-m3pqpeWg.js} +2 -2
  207. package/dist/esm/index.js +1 -1
  208. package/dist/esm/{keep-hydrated-BLG6RDBt.js → keep-hydrated-BgNaWLoS.js} +1 -1
  209. package/dist/esm/loader.js +4 -4
  210. package/dist/esm/mock-pds-modal.entry.js +3 -3
  211. package/dist/esm/pds-accordion.entry.js +3 -3
  212. package/dist/esm/pds-alert.entry.js +17 -4
  213. package/dist/esm/pds-avatar.entry.js +23 -13
  214. package/dist/esm/pds-box.entry.js +4 -4
  215. package/dist/esm/pds-button.entry.js +80 -45
  216. package/dist/esm/pds-checkbox.entry.js +16 -8
  217. package/dist/esm/pds-chip.entry.js +8 -8
  218. package/dist/esm/pds-combobox.entry.js +43 -13
  219. package/dist/esm/pds-container.entry.js +3 -3
  220. package/dist/esm/pds-copytext.entry.js +7 -7
  221. package/dist/esm/pds-datepicker.entry.js +6 -6
  222. package/dist/esm/pds-divider.entry.js +3 -3
  223. package/dist/esm/pds-drawer-content.entry.js +3 -3
  224. package/dist/esm/pds-drawer-footer.entry.js +3 -3
  225. package/dist/esm/pds-drawer-header.entry.js +3 -3
  226. package/dist/esm/pds-drawer.entry.js +4 -4
  227. package/dist/esm/pds-dropdown-menu-item.entry.js +34 -5
  228. package/dist/esm/pds-dropdown-menu-separator.entry.js +3 -3
  229. package/dist/esm/pds-dropdown-menu.entry.js +8 -8
  230. package/dist/esm/pds-filter.entry.js +4 -4
  231. package/dist/esm/pds-filters.entry.js +3 -3
  232. package/dist/esm/pds-icon.entry.js +2 -2
  233. package/dist/esm/pds-image.entry.js +4 -4
  234. package/dist/esm/pds-input.entry.js +6 -6
  235. package/dist/esm/pds-link.entry.js +15 -6
  236. package/dist/esm/pds-loader.entry.js +4 -4
  237. package/dist/esm/pds-modal-content.entry.js +34 -32
  238. package/dist/esm/pds-modal-footer.entry.js +3 -3
  239. package/dist/esm/pds-modal-header.entry.js +3 -3
  240. package/dist/esm/pds-modal.entry.js +7 -87
  241. package/dist/esm/pds-multiselect.entry.js +9 -9
  242. package/dist/esm/pds-popover.entry.js +416 -163
  243. package/dist/esm/pds-progress.entry.js +4 -4
  244. package/dist/esm/pds-property.entry.js +3 -3
  245. package/dist/esm/pds-radio-group.entry.js +6 -6
  246. package/dist/esm/pds-radio.entry.js +24 -11
  247. package/dist/esm/pds-row.entry.js +4 -4
  248. package/dist/esm/pds-select.entry.js +132 -21
  249. package/dist/esm/pds-sortable-item.entry.js +5 -5
  250. package/dist/esm/pds-sortable.entry.js +4 -4
  251. package/dist/esm/pds-switch.entry.js +7 -7
  252. package/dist/esm/pds-tab.entry.js +3 -3
  253. package/dist/esm/pds-table-body.entry.js +3 -3
  254. package/dist/esm/pds-table-cell.entry.js +6 -6
  255. package/dist/esm/pds-table-head-cell.entry.js +5 -5
  256. package/dist/esm/pds-table-head.entry.js +3 -3
  257. package/dist/esm/pds-table-row.entry.js +3 -3
  258. package/dist/esm/pds-table.entry.js +2 -2
  259. package/dist/esm/pds-tabpanel.entry.js +4 -4
  260. package/dist/esm/pds-tabs.entry.js +4 -4
  261. package/dist/esm/pds-text.entry.js +5 -5
  262. package/dist/esm/pds-textarea.entry.js +8 -8
  263. package/dist/esm/pds-toast.entry.js +14 -8
  264. package/dist/esm/pds-tooltip.entry.js +115 -44
  265. package/dist/esm/pine-core.js +4 -4
  266. package/dist/esm/tabbable-DCKBKRUy.js +83 -0
  267. package/dist/esm/{truncation-tooltip-DRXsdKk1.js → truncation-tooltip-D_gvhB9r.js} +32 -7
  268. package/dist/esm-es5/{attributes-WXw_I_uJ.js → attributes-DkeVeN0g.js} +1 -1
  269. package/dist/esm-es5/{floating-ui.dom-BPqJgIq6.js → floating-ui.dom-Cuc0DYlm.js} +1 -1
  270. package/dist/esm-es5/{index-Cw9J31qd.js → index-BFSwd-GQ.js} +2 -2
  271. package/dist/esm-es5/{index-BJXk71tO.js → index-m3pqpeWg.js} +1 -1
  272. package/dist/esm-es5/index.js +1 -1
  273. package/dist/esm-es5/{keep-hydrated-BLG6RDBt.js → keep-hydrated-BgNaWLoS.js} +1 -1
  274. package/dist/esm-es5/loader.js +1 -1
  275. package/dist/esm-es5/mock-pds-modal.entry.js +1 -1
  276. package/dist/esm-es5/pds-accordion.entry.js +1 -1
  277. package/dist/esm-es5/pds-alert.entry.js +1 -1
  278. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  279. package/dist/esm-es5/pds-box.entry.js +1 -1
  280. package/dist/esm-es5/pds-button.entry.js +1 -1
  281. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  282. package/dist/esm-es5/pds-chip.entry.js +1 -1
  283. package/dist/esm-es5/pds-combobox.entry.js +2 -2
  284. package/dist/esm-es5/pds-container.entry.js +1 -1
  285. package/dist/esm-es5/pds-copytext.entry.js +1 -1
  286. package/dist/esm-es5/pds-datepicker.entry.js +1 -1
  287. package/dist/esm-es5/pds-divider.entry.js +1 -1
  288. package/dist/esm-es5/pds-drawer-content.entry.js +1 -1
  289. package/dist/esm-es5/pds-drawer-footer.entry.js +1 -1
  290. package/dist/esm-es5/pds-drawer-header.entry.js +1 -1
  291. package/dist/esm-es5/pds-drawer.entry.js +1 -1
  292. package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -1
  293. package/dist/esm-es5/pds-dropdown-menu-separator.entry.js +1 -1
  294. package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
  295. package/dist/esm-es5/pds-filter.entry.js +1 -1
  296. package/dist/esm-es5/pds-filters.entry.js +1 -1
  297. package/dist/esm-es5/pds-icon.entry.js +1 -1
  298. package/dist/esm-es5/pds-image.entry.js +1 -1
  299. package/dist/esm-es5/pds-input.entry.js +1 -1
  300. package/dist/esm-es5/pds-link.entry.js +1 -1
  301. package/dist/esm-es5/pds-loader.entry.js +1 -1
  302. package/dist/esm-es5/pds-modal-content.entry.js +1 -1
  303. package/dist/esm-es5/pds-modal-footer.entry.js +1 -1
  304. package/dist/esm-es5/pds-modal-header.entry.js +1 -1
  305. package/dist/esm-es5/pds-modal.entry.js +1 -1
  306. package/dist/esm-es5/pds-multiselect.entry.js +1 -1
  307. package/dist/esm-es5/pds-popover.entry.js +1 -1
  308. package/dist/esm-es5/pds-progress.entry.js +1 -1
  309. package/dist/esm-es5/pds-property.entry.js +1 -1
  310. package/dist/esm-es5/pds-radio-group.entry.js +1 -1
  311. package/dist/esm-es5/pds-radio.entry.js +1 -1
  312. package/dist/esm-es5/pds-row.entry.js +1 -1
  313. package/dist/esm-es5/pds-select.entry.js +1 -1
  314. package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
  315. package/dist/esm-es5/pds-sortable.entry.js +2 -2
  316. package/dist/esm-es5/pds-switch.entry.js +1 -1
  317. package/dist/esm-es5/pds-tab.entry.js +1 -1
  318. package/dist/esm-es5/pds-table-body.entry.js +1 -1
  319. package/dist/esm-es5/pds-table-cell.entry.js +1 -1
  320. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  321. package/dist/esm-es5/pds-table-head.entry.js +1 -1
  322. package/dist/esm-es5/pds-table-row.entry.js +1 -1
  323. package/dist/esm-es5/pds-table.entry.js +1 -1
  324. package/dist/esm-es5/pds-tabpanel.entry.js +1 -1
  325. package/dist/esm-es5/pds-tabs.entry.js +1 -1
  326. package/dist/esm-es5/pds-text.entry.js +1 -1
  327. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  328. package/dist/esm-es5/pds-toast.entry.js +1 -1
  329. package/dist/esm-es5/pds-tooltip.entry.js +1 -1
  330. package/dist/esm-es5/pine-core.js +1 -1
  331. package/dist/esm-es5/tabbable-DCKBKRUy.js +1 -0
  332. package/dist/esm-es5/truncation-tooltip-D_gvhB9r.js +1 -0
  333. package/dist/pine-core/index.esm.js +1 -1
  334. package/dist/pine-core/p-001d4b86.entry.js +1 -0
  335. package/dist/pine-core/p-06279b93.system.entry.js +1 -0
  336. package/dist/pine-core/{p-b75b0d09.system.entry.js → p-0790dd0d.system.entry.js} +1 -1
  337. package/dist/pine-core/p-079c39d1.entry.js +1 -0
  338. package/dist/pine-core/p-07b4524e.entry.js +1 -0
  339. package/dist/pine-core/{p-b60ac7eb.system.entry.js → p-08bbd3e6.system.entry.js} +1 -1
  340. package/dist/pine-core/{p-c5c9ed36.system.entry.js → p-0bd61097.system.entry.js} +1 -1
  341. package/dist/pine-core/p-0c60f577.system.entry.js +1 -0
  342. package/dist/pine-core/{p-6d603d16.system.entry.js → p-110b4051.system.entry.js} +1 -1
  343. package/dist/pine-core/p-11e7d660.entry.js +1 -0
  344. package/dist/pine-core/p-14d872d3.entry.js +1 -0
  345. package/dist/pine-core/p-17fc76e7.system.entry.js +1 -0
  346. package/dist/pine-core/{p-0913f696.system.entry.js → p-1e5648bf.system.entry.js} +1 -1
  347. package/dist/pine-core/{p-e803f629.system.entry.js → p-22ae92f7.system.entry.js} +1 -1
  348. package/dist/pine-core/p-239774c9.entry.js +1 -0
  349. package/dist/pine-core/{p-0b71ecb6.system.entry.js → p-25bf2f26.system.entry.js} +2 -2
  350. package/dist/pine-core/{p-e7a95a49.system.entry.js → p-272b24ad.system.entry.js} +1 -1
  351. package/dist/pine-core/{p-d2c91e7a.entry.js → p-2c0047cd.entry.js} +1 -1
  352. package/dist/pine-core/p-2d5b1deb.entry.js +1 -0
  353. package/dist/pine-core/{p-e8cb76e8.entry.js → p-3556f6ad.entry.js} +1 -1
  354. package/dist/pine-core/{p-BGLP3keB.js → p-35s7h-dk.js} +1 -1
  355. package/dist/pine-core/{p-080cb087.system.entry.js → p-38b87aa2.system.entry.js} +1 -1
  356. package/dist/pine-core/{p-355e4cf9.entry.js → p-3afb1208.entry.js} +1 -1
  357. package/dist/pine-core/p-3b5b8f73.entry.js +1 -0
  358. package/dist/pine-core/{p-8c8cc079.system.entry.js → p-3cc19ea8.system.entry.js} +1 -1
  359. package/dist/pine-core/{p-bd67156b.system.entry.js → p-3ce7e72e.system.entry.js} +1 -1
  360. package/dist/pine-core/p-3f62581a.system.entry.js +1 -0
  361. package/dist/pine-core/p-414faecf.entry.js +1 -0
  362. package/dist/pine-core/p-463a29fa.entry.js +1 -0
  363. package/dist/pine-core/{p-f029b7da.system.entry.js → p-4ee44585.system.entry.js} +1 -1
  364. package/dist/pine-core/p-50af67ea.system.entry.js +1 -0
  365. package/dist/pine-core/p-5133e8be.system.entry.js +1 -0
  366. package/dist/pine-core/p-55fce29e.entry.js +1 -0
  367. package/dist/pine-core/{p-77395d62.system.entry.js → p-568a9a79.system.entry.js} +1 -1
  368. package/dist/pine-core/p-5967d9fa.system.entry.js +1 -0
  369. package/dist/pine-core/{p-5870b092.system.entry.js → p-5c46553f.system.entry.js} +1 -1
  370. package/dist/pine-core/{p-f0d24298.system.entry.js → p-5ce5836e.system.entry.js} +1 -1
  371. package/dist/pine-core/p-5f3242c8.system.entry.js +1 -0
  372. package/dist/pine-core/{p-80e6f3a0.system.entry.js → p-60d27247.system.entry.js} +1 -1
  373. package/dist/pine-core/{p-bd26a5e8.entry.js → p-60e3b1af.entry.js} +1 -1
  374. package/dist/pine-core/{p-ca0a8f5c.entry.js → p-64283f7b.entry.js} +1 -1
  375. package/dist/pine-core/p-6602b4d0.entry.js +1 -0
  376. package/dist/pine-core/p-6845867f.system.entry.js +1 -0
  377. package/dist/pine-core/{p-1ee86d87.system.entry.js → p-68fdfb8f.system.entry.js} +1 -1
  378. package/dist/pine-core/p-6b6ae1be.entry.js +1 -0
  379. package/dist/pine-core/{p-e5420660.entry.js → p-6d64e6c7.entry.js} +1 -1
  380. package/dist/pine-core/{p-3a959459.system.entry.js → p-6dad76cb.system.entry.js} +1 -1
  381. package/dist/pine-core/p-6f34ad9c.entry.js +1 -0
  382. package/dist/pine-core/{p-55224683.entry.js → p-7073146f.entry.js} +1 -1
  383. package/dist/pine-core/{p-f1702281.entry.js → p-735b3631.entry.js} +1 -1
  384. package/dist/pine-core/p-7a14473e.entry.js +1 -0
  385. package/dist/pine-core/{p-9880d251.system.entry.js → p-7a19477e.system.entry.js} +1 -1
  386. package/dist/pine-core/{p-88ff1604.entry.js → p-7d3a20ba.entry.js} +1 -1
  387. package/dist/pine-core/{p-a939b471.entry.js → p-7fcf3d37.entry.js} +1 -1
  388. package/dist/pine-core/{p-26642718.entry.js → p-87642228.entry.js} +1 -1
  389. package/dist/pine-core/p-89fefe36.entry.js +1 -0
  390. package/dist/pine-core/p-8b97dd57.system.entry.js +1 -0
  391. package/dist/pine-core/{p-0092444c.system.entry.js → p-9201b497.system.entry.js} +1 -1
  392. package/dist/pine-core/{p-ebd0bff2.entry.js → p-92a8cf7d.entry.js} +1 -1
  393. package/dist/pine-core/{p-e836a041.entry.js → p-94597b73.entry.js} +1 -1
  394. package/dist/pine-core/p-9713d6a5.system.entry.js +1 -0
  395. package/dist/pine-core/p-97be00f4.system.entry.js +1 -0
  396. package/dist/pine-core/{p-2ac2457b.system.entry.js → p-98843402.system.entry.js} +1 -1
  397. package/dist/pine-core/{p-b914dde8.entry.js → p-98cc327b.entry.js} +2 -2
  398. package/dist/pine-core/p-9a8971e2.system.entry.js +1 -0
  399. package/dist/pine-core/p-9a8d2985.system.entry.js +3 -0
  400. package/dist/pine-core/{p-cfc52b95.system.entry.js → p-9dbc017f.system.entry.js} +1 -1
  401. package/dist/pine-core/p-9fbcba0d.entry.js +1 -0
  402. package/dist/pine-core/p-9fe4a64a.entry.js +1 -0
  403. package/dist/pine-core/{p-COtCa1Md.system.js → p-BNTlHhoO.system.js} +1 -1
  404. package/dist/pine-core/p-BZ1l3LGl.system.js +1 -0
  405. package/dist/pine-core/p-BgNaWLoS.js +1 -0
  406. package/dist/pine-core/{p-CmSJytt1.js → p-BplEmwUQ.js} +2 -2
  407. package/dist/pine-core/{p-Cy8cvR7I.system.js → p-CANeE7Ss.system.js} +1 -1
  408. package/dist/pine-core/{p-XW4H0W6i.system.js → p-CNXspDYs.system.js} +1 -1
  409. package/dist/pine-core/{p-JtdHT_W5.js → p-CirzxZ33.js} +1 -1
  410. package/dist/pine-core/{p-CGRdQc49.system.js → p-CjRCtzPD.system.js} +2 -2
  411. package/dist/pine-core/{p-BPqJgIq6.js → p-Cuc0DYlm.js} +1 -1
  412. package/dist/pine-core/p-D52aRqFx.system.js +1 -0
  413. package/dist/pine-core/p-DCKBKRUy.js +1 -0
  414. package/dist/pine-core/p-DXO1yd32.system.js +1 -0
  415. package/dist/pine-core/{p-n3_ytl_p.system.js → p-DaCT2ssj.system.js} +1 -1
  416. package/dist/pine-core/p-a2078add.entry.js +1 -0
  417. package/dist/pine-core/{p-97d0b89e.system.entry.js → p-a48b025a.system.entry.js} +1 -1
  418. package/dist/pine-core/{p-9713fb36.entry.js → p-a7d25143.entry.js} +1 -1
  419. package/dist/pine-core/{p-9dcd2cdb.entry.js → p-ad3b1ec3.entry.js} +1 -1
  420. package/dist/pine-core/p-b017eb99.system.entry.js +1 -0
  421. package/dist/pine-core/p-b037dcbd.system.entry.js +1 -0
  422. package/dist/pine-core/{p-db17c626.system.entry.js → p-b243767b.system.entry.js} +1 -1
  423. package/dist/pine-core/{p-341c38f1.system.entry.js → p-b33ad96e.system.entry.js} +1 -1
  424. package/dist/pine-core/p-b6edfdfe.entry.js +2 -0
  425. package/dist/pine-core/{p-8191498f.system.entry.js → p-b7cbd913.system.entry.js} +1 -1
  426. package/dist/pine-core/{p-8f531063.entry.js → p-b9d71b76.entry.js} +1 -1
  427. package/dist/pine-core/p-bcf57566.entry.js +1 -0
  428. package/dist/pine-core/{p-4fd454f6.entry.js → p-bda7e3be.entry.js} +1 -1
  429. package/dist/pine-core/p-bdde1e53.entry.js +1 -0
  430. package/dist/pine-core/{p-cb6a3e4c.system.entry.js → p-be3b4f12.system.entry.js} +1 -1
  431. package/dist/pine-core/{p-b1548a20.entry.js → p-bfdfbe9f.entry.js} +1 -1
  432. package/dist/pine-core/p-c02a32ec.entry.js +1 -0
  433. package/dist/pine-core/p-c1da80e5.entry.js +1 -0
  434. package/dist/pine-core/{p-d8570b4b.system.entry.js → p-c233866c.system.entry.js} +1 -1
  435. package/dist/pine-core/{p-fc25b956.system.entry.js → p-cb560aab.system.entry.js} +1 -1
  436. package/dist/pine-core/{p-02088776.entry.js → p-ce554098.entry.js} +1 -1
  437. package/dist/pine-core/p-ced6a814.system.entry.js +1 -0
  438. package/dist/pine-core/{p-0a84d220.entry.js → p-d7930540.entry.js} +1 -1
  439. package/dist/pine-core/{p-11d98408.system.entry.js → p-d7db749a.system.entry.js} +1 -1
  440. package/dist/pine-core/{p-7a5b21d2.system.entry.js → p-d8bedb58.system.entry.js} +1 -1
  441. package/dist/pine-core/{p-1dc5a7e0.system.entry.js → p-d9243653.system.entry.js} +1 -1
  442. package/dist/pine-core/{p-9ab95438.entry.js → p-d94ebe84.entry.js} +1 -1
  443. package/dist/pine-core/{p-9109b90a.entry.js → p-de176bd9.entry.js} +1 -1
  444. package/dist/pine-core/{p-57a2f927.entry.js → p-dea2a254.entry.js} +1 -1
  445. package/dist/pine-core/p-dfadfcd1.entry.js +1 -0
  446. package/dist/pine-core/{p-1437585e.system.entry.js → p-e1fdd53a.system.entry.js} +1 -1
  447. package/dist/pine-core/{p-4435fff6.system.entry.js → p-e70cb112.system.entry.js} +1 -1
  448. package/dist/pine-core/{p-01aa382c.system.entry.js → p-e9a53a88.system.entry.js} +1 -1
  449. package/dist/pine-core/p-eb93cc6e.entry.js +1 -0
  450. package/dist/pine-core/{p-4d03d1e2.system.entry.js → p-ebf0c51b.system.entry.js} +1 -1
  451. package/dist/pine-core/p-ebf74c43.system.entry.js +1 -0
  452. package/dist/pine-core/{p-cde8eb81.entry.js → p-ee449a4b.entry.js} +1 -1
  453. package/dist/pine-core/p-ef4d8fea.entry.js +1 -0
  454. package/dist/pine-core/p-f09f27ab.system.entry.js +1 -0
  455. package/dist/pine-core/{p-ff3de72e.entry.js → p-f2c487e6.entry.js} +1 -1
  456. package/dist/pine-core/p-f549f2bc.entry.js +1 -0
  457. package/dist/pine-core/p-fc743f6e.entry.js +1 -0
  458. package/dist/pine-core/{p-BJXk71tO.js → p-m3pqpeWg.js} +1 -1
  459. package/dist/pine-core/p-wXfuz0Bd.system.js +1 -0
  460. package/dist/pine-core/pine-core.esm.js +1 -1
  461. package/dist/pine-core/pine-core.js +1 -1
  462. package/dist/types/components/pds-alert/pds-alert.d.ts +10 -0
  463. package/dist/types/components/pds-avatar/pds-avatar.d.ts +8 -0
  464. package/dist/types/components/pds-button/pds-button.d.ts +5 -6
  465. package/dist/types/components/pds-checkbox/pds-checkbox.d.ts +7 -1
  466. package/dist/types/components/pds-combobox/pds-combobox.d.ts +9 -0
  467. package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.d.ts +20 -3
  468. package/dist/types/components/pds-link/pds-link.d.ts +8 -0
  469. package/dist/types/components/pds-modal/pds-modal-content/pds-modal-content.d.ts +2 -0
  470. package/dist/types/components/pds-popover/pds-popover.d.ts +87 -21
  471. package/dist/types/components/pds-radio/pds-radio.d.ts +9 -3
  472. package/dist/types/components/pds-select/pds-select.d.ts +32 -4
  473. package/dist/types/components/pds-toast/pds-toast.d.ts +9 -0
  474. package/dist/types/components/pds-tooltip/pds-tooltip.d.ts +31 -0
  475. package/dist/types/components.d.ts +139 -18
  476. package/dist/types/utils/aria-references.d.ts +24 -0
  477. package/dist/types/utils/tabbable.d.ts +2 -0
  478. package/dist/types/utils/truncation-tooltip.d.ts +4 -4
  479. package/dist/types/utils/types.d.ts +1 -0
  480. package/dist/vscode.html-data.json +129 -14
  481. package/hydrate/index.js +1040 -416
  482. package/hydrate/index.mjs +1040 -416
  483. package/package.json +2 -2
  484. package/dist/esm-es5/truncation-tooltip-DRXsdKk1.js +0 -1
  485. package/dist/pine-core/p-049f126a.entry.js +0 -1
  486. package/dist/pine-core/p-153ba77b.entry.js +0 -1
  487. package/dist/pine-core/p-208c7dbf.entry.js +0 -1
  488. package/dist/pine-core/p-258770cf.system.entry.js +0 -1
  489. package/dist/pine-core/p-2cb5483a.system.entry.js +0 -1
  490. package/dist/pine-core/p-432d5ec7.entry.js +0 -1
  491. package/dist/pine-core/p-5442d983.system.entry.js +0 -1
  492. package/dist/pine-core/p-576cf904.system.entry.js +0 -1
  493. package/dist/pine-core/p-5c90091e.system.entry.js +0 -1
  494. package/dist/pine-core/p-602c197f.entry.js +0 -1
  495. package/dist/pine-core/p-645a482b.system.entry.js +0 -1
  496. package/dist/pine-core/p-72865997.entry.js +0 -1
  497. package/dist/pine-core/p-75ee0403.entry.js +0 -1
  498. package/dist/pine-core/p-7a287635.system.entry.js +0 -1
  499. package/dist/pine-core/p-7bf6563a.system.entry.js +0 -1
  500. package/dist/pine-core/p-7fa66cad.entry.js +0 -1
  501. package/dist/pine-core/p-80a698ae.entry.js +0 -1
  502. package/dist/pine-core/p-82cf4ec6.entry.js +0 -1
  503. package/dist/pine-core/p-86040cac.system.entry.js +0 -1
  504. package/dist/pine-core/p-875b0436.system.entry.js +0 -1
  505. package/dist/pine-core/p-8cc302aa.system.entry.js +0 -1
  506. package/dist/pine-core/p-8d292b48.entry.js +0 -1
  507. package/dist/pine-core/p-92ae6082.entry.js +0 -1
  508. package/dist/pine-core/p-94593f20.system.entry.js +0 -1
  509. package/dist/pine-core/p-993d1043.entry.js +0 -1
  510. package/dist/pine-core/p-99459e27.entry.js +0 -1
  511. package/dist/pine-core/p-BLG6RDBt.js +0 -1
  512. package/dist/pine-core/p-BR5nujVX.system.js +0 -1
  513. package/dist/pine-core/p-CuSNnuFu.system.js +0 -1
  514. package/dist/pine-core/p-a0960b3d.system.entry.js +0 -1
  515. package/dist/pine-core/p-a1230a74.system.entry.js +0 -1
  516. package/dist/pine-core/p-a19cd59c.entry.js +0 -1
  517. package/dist/pine-core/p-a787b34a.system.entry.js +0 -1
  518. package/dist/pine-core/p-a826f290.entry.js +0 -1
  519. package/dist/pine-core/p-aa032a5e.system.entry.js +0 -1
  520. package/dist/pine-core/p-acce8eb2.entry.js +0 -1
  521. package/dist/pine-core/p-b69f04b7.entry.js +0 -1
  522. package/dist/pine-core/p-bb68431a.entry.js +0 -1
  523. package/dist/pine-core/p-bb73ad66.entry.js +0 -2
  524. package/dist/pine-core/p-beb23781.entry.js +0 -1
  525. package/dist/pine-core/p-bf30dec0.entry.js +0 -1
  526. package/dist/pine-core/p-c36b490e.entry.js +0 -1
  527. package/dist/pine-core/p-c81d8ac8.entry.js +0 -1
  528. package/dist/pine-core/p-ca0d48e8.entry.js +0 -1
  529. package/dist/pine-core/p-cfd012d4.entry.js +0 -1
  530. package/dist/pine-core/p-e0917a26.entry.js +0 -1
  531. package/dist/pine-core/p-e836f3ec.system.entry.js +0 -3
  532. package/dist/pine-core/p-ea4d4741.system.entry.js +0 -1
  533. package/dist/pine-core/p-f2c253d8.entry.js +0 -1
  534. package/dist/pine-core/p-f474d7de.entry.js +0 -1
  535. package/dist/pine-core/p-f77905aa.system.entry.js +0 -1
  536. package/dist/pine-core/p-qhdoK1Jp.system.js +0 -1
@@ -22,6 +22,7 @@ export default {
22
22
  trigger: 'input',
23
23
  triggerVariant: 'secondary',
24
24
  triggerWidth: 'fit-content',
25
+ truncate: false,
25
26
  chipSentiment: 'neutral',
26
27
  chipLarge: false,
27
28
  chipIcon: null,
@@ -55,6 +56,7 @@ const BaseTemplate = (args) => html`
55
56
  trigger=${args.trigger}
56
57
  trigger-variant=${args.triggerVariant}
57
58
  trigger-width=${args.triggerWidth}
59
+ truncate=${args.truncate}
58
60
  chip-sentiment=${args.chipSentiment}
59
61
  chip-large=${args.chipLarge}
60
62
  chip-icon=${args.chipIcon}
@@ -604,6 +606,48 @@ OptionIconsWithGroups.args = {
604
606
  ],
605
607
  };
606
608
 
609
+ // truncate: a long label in the trigger and the options, without it (wrapping, as by default) and
610
+ // with it (one line, with an ellipsis). Options with an icon and in a group truncate too.
611
+ const truncateOptions = [
612
+ { id: 'onboarding', text: 'Assessment for the quarterly onboarding cohort', icon: 'assessment' },
613
+ { id: 'contact', text: 'Contact who joined during the spring membership launch', icon: 'contact' },
614
+ { id: 'broadcast', text: 'Broadcast to everyone who joined the spring membership launch', group: 'Email', groupIcon: 'mail' },
615
+ { id: 'sequence', text: 'Sequence', group: 'Email' },
616
+ { id: 'tag', text: 'Tag', icon: 'hashtag' },
617
+ ];
618
+
619
+ export const Truncate = (args) => html`
620
+ <div style="display: flex; gap: 48px; min-height: 360px;">
621
+ ${[false, true].map(truncate => html`
622
+ <pds-combobox
623
+ component-id=${`combobox-truncate-${truncate ? 'on' : 'off'}`}
624
+ label=${truncate ? 'With truncate' : 'Without truncate'}
625
+ trigger=${args.trigger}
626
+ trigger-shape=${args.triggerShape}
627
+ trigger-variant=${args.triggerVariant}
628
+ mode="select-only"
629
+ trigger-width=${args.triggerWidth}
630
+ dropdown-width=${args.triggerWidth}
631
+ value=${args.value}
632
+ ?truncate=${truncate}
633
+ .options=${args.options}
634
+ ></pds-combobox>`)}
635
+ </div>`;
636
+
637
+ Truncate.args = {
638
+ trigger: 'button',
639
+ triggerShape: 'input',
640
+ triggerVariant: 'secondary',
641
+ triggerWidth: '240px',
642
+ value: 'onboarding',
643
+ options: truncateOptions,
644
+ };
645
+
646
+ Truncate.argTypes = {
647
+ trigger: { control: 'select', options: ['input', 'button'] },
648
+ triggerShape: { control: 'select', options: ['pill', 'input'] },
649
+ };
650
+
607
651
  // A large action catalog: many groups, a button trigger and panel search. The narrower widths
608
652
  // leave room for the flyout beside the dropdown on a narrow canvas.
609
653
  export const GroupDisplayActionCatalog = (args) => html`
@@ -25,7 +25,7 @@ export class PdsContainer {
25
25
  hostStyle['--pine-container-max-width'] = customSize;
26
26
  if (!this.centered)
27
27
  hostStyle['margin-inline'] = '0';
28
- return (h(Host, { key: '8a9b10b5d0e348b73f8a6bd7933083c596df10d8', class: { [`pds-container--${this.size}`]: isNamed }, style: Object.keys(hostStyle).length ? hostStyle : undefined }, h(Tag, { key: '55fb22be49377c4cccf08381e7cf954a3f097d08', part: "container" }, h("slot", { key: '4cd9c4fa74a2c6a056e076ab67a0279c395b5c79' }))));
28
+ return (h(Host, { key: '8a01369c4d1817dd083b1ac714ff7c02920f817e', class: { [`pds-container--${this.size}`]: isNamed }, style: Object.keys(hostStyle).length ? hostStyle : undefined }, h(Tag, { key: '7428cb0040896dc11004065cf91ae9d3c3a99c49', part: "container" }, h("slot", { key: '5a5b5bbc87c03afc23f1c9a0523fced8c0795efb' }))));
29
29
  }
30
30
  static get is() { return "pds-container"; }
31
31
  static get encapsulation() { return "shadow"; }
@@ -107,7 +107,7 @@ export class PdsCopytext {
107
107
  render() {
108
108
  const hostClass = this.classNames();
109
109
  this.hostKeeper.record(hostClass);
110
- return (h(Host, { key: 'a3517b135fc3e3677e30b6ad5811c1170a819b65', class: hostClass, id: this.componentId }, h("pds-button", { key: '02f56bed02ed3963a3d80a92148d6619a845224a', type: "button", variant: "unstyled", onClick: this.handleClick }, h("span", { key: '95fd1284e3d227b74dab613eb71f5385c3a0be29', ref: (el) => this.valueSpanEl = el }, this.value), h("pds-icon", { key: '21af67a8c9165e56d2d2b0cf19df7c7e3f290c72', "aria-hidden": "true", icon: copyIcon, size: "16px" }))));
110
+ return (h(Host, { key: '35d74eaecedd432f7852545522f9ce72396f9ab9', class: hostClass, id: this.componentId }, h("pds-button", { key: '9550ce2fb21166e9726b08b5928036244c7b729e', type: "button", variant: "unstyled", onClick: this.handleClick }, h("span", { key: '47af45448759c911ca4ca03d0158088289b622e0', ref: (el) => this.valueSpanEl = el }, this.value), h("pds-icon", { key: '3ddab7c3e7063843cd606ffb19481cae3792db43', "aria-hidden": "true", icon: copyIcon, size: "16px" }))));
111
111
  }
112
112
  static get is() { return "pds-copytext"; }
113
113
  static get encapsulation() { return "shadow"; }
@@ -1309,14 +1309,14 @@ export class PdsDatepicker {
1309
1309
  }
1310
1310
  render() {
1311
1311
  const locale = this.resolvedLocale;
1312
- return (h(Host, { key: '82ffd88b7741a90edc28b66a7384178eb2a9a86c', class: { 'pds-datepicker--range': this.range, 'pds-datepicker--time': this.timePicker }, "full-width": this.fullWidth ? 'true' : null, onFocusin: this.onHostFocusIn, onFocusout: this.onHostFocusOut }, h("pds-input", { key: 'f2b9aad64d1fe8d94327cc3d4f87cd6904eb3076', ref: (el) => (this.inputEl = el), componentId: this.baseId, label: this.label, hideLabel: this.hideLabel, helperMessage: this.helperMessage, errorMessage: this.errorMessage, invalid: this.invalid || !!this.textError || !!this.valueError(), disabled: this.disabled, readonly: this.readonly, required: this.required, placeholder: this.fieldPlaceholder, fullWidth: this.fullWidth, autocomplete: "off", value: this.text, onClick: this.onFieldClick, onPdsInput: this.onTextInput, onPdsChange: this.onTextChange, onPdsKeyDown: this.onTextKeyDown, onPdsFocus: this.stopInnerEvent, onPdsBlur: this.stopInnerEvent }, this.clearable && !!this.value && this.isInteractive && (h("button", {
1312
+ return (h(Host, { key: 'a761f0ca6eeedcac3e4bd90760aa9781cd37dcdc', class: { 'pds-datepicker--range': this.range, 'pds-datepicker--time': this.timePicker }, "full-width": this.fullWidth ? 'true' : null, onFocusin: this.onHostFocusIn, onFocusout: this.onHostFocusOut }, h("pds-input", { key: '2eb04f9fd4e2f7a2437145d250c629c2cc8a0bf6', ref: (el) => (this.inputEl = el), componentId: this.baseId, label: this.label, hideLabel: this.hideLabel, helperMessage: this.helperMessage, errorMessage: this.errorMessage, invalid: this.invalid || !!this.textError || !!this.valueError(), disabled: this.disabled, readonly: this.readonly, required: this.required, placeholder: this.fieldPlaceholder, fullWidth: this.fullWidth, autocomplete: "off", value: this.text, onClick: this.onFieldClick, onPdsInput: this.onTextInput, onPdsChange: this.onTextChange, onPdsKeyDown: this.onTextKeyDown, onPdsFocus: this.stopInnerEvent, onPdsBlur: this.stopInnerEvent }, this.clearable && !!this.value && this.isInteractive && (h("button", {
1313
1313
  // Keyed, as is the calendar button: when Clear appears after a pick, the focused
1314
1314
  // calendar button must stay that button rather than be reused as Clear.
1315
1315
  key: "clear", slot: "suffix", type: "button", class: "pds-datepicker__clear", ref: (el) => (this.clearEl = el), "aria-label": this.label ? `${this.clearLabel} ${this.label}` : this.clearLabel,
1316
1316
  // Out of the tab order, as a native search field's clear button is: Tab from a field
1317
1317
  // just emptied would land on it as the change removes it, dropping focus to the page.
1318
1318
  tabindex: "-1", onMouseDown: this.onClearMouseDown, onClick: this.onClearClick
1319
- }, h("pds-icon", { key: 'f2c784e9d6577d4900b7641ee58aa43f5922fc75', icon: remove, "aria-hidden": "true" }))), h("button", { key: "trigger", slot: "suffix", type: "button", class: "pds-datepicker__trigger", ref: (el) => (this.triggerEl = el), "aria-label": this.triggerAccessibleName(locale), "aria-haspopup": "dialog", "aria-expanded": this.isOpen ? 'true' : 'false', disabled: !this.isInteractive, onClick: this.onTriggerClick, onKeyDown: this.onTriggerKeyDown }, h("pds-icon", { key: '98b2e773240c8ea2bbd5a1acfa3c9ba74cb7917b', icon: calendarSimple, "aria-hidden": "true" }))), this.isOpen && this.renderCalendar(locale)));
1319
+ }, h("pds-icon", { key: '98c325fbba8ea78b2d409bc77099db3206738508', icon: remove, "aria-hidden": "true" }))), h("button", { key: "trigger", slot: "suffix", type: "button", class: "pds-datepicker__trigger", ref: (el) => (this.triggerEl = el), "aria-label": this.triggerAccessibleName(locale), "aria-haspopup": "dialog", "aria-expanded": this.isOpen ? 'true' : 'false', disabled: !this.isInteractive, onClick: this.onTriggerClick, onKeyDown: this.onTriggerKeyDown }, h("pds-icon", { key: 'cb8483febe1b485058b7bb4271b749981a7747a1', icon: calendarSimple, "aria-hidden": "true" }))), this.isOpen && this.renderCalendar(locale)));
1320
1320
  }
1321
1321
  static get is() { return "pds-datepicker"; }
1322
1322
  static get encapsulation() { return "shadow"; }
@@ -93,7 +93,7 @@ WithValue.args = {
93
93
 
94
94
  export const MinAndMax = BaseTemplate.bind({});
95
95
  MinAndMax.args = {
96
- componentId: 'pds-datepicker-range-example',
96
+ componentId: 'pds-datepicker-min-max-example',
97
97
  helperMessage: 'Pick a day between October 5 and November 20.',
98
98
  label: 'Delivery date',
99
99
  max: '2026-11-20',
@@ -29,7 +29,7 @@ export class PdsDivider {
29
29
  return classNames.join(' ');
30
30
  }
31
31
  render() {
32
- return (h(Host, { key: 'ef2a5ee85e8f37036be5b8df490683636ffb66f0', id: this.componentId }, this.hasLabel ? (h("div", { class: this.classNames(), role: "separator", "aria-label": this.label }, h("span", { class: "pds-divider__label", part: "label", "aria-hidden": "true" }, this.label))) : (h("hr", { class: this.classNames() }))));
32
+ return (h(Host, { key: '072cc8552bd33c4a00d216f15a5a848cfc97fd92', id: this.componentId }, this.hasLabel ? (h("div", { class: this.classNames(), role: "separator", "aria-label": this.label }, h("span", { class: "pds-divider__label", part: "label", "aria-hidden": "true" }, this.label))) : (h("hr", { class: this.classNames() }))));
33
33
  }
34
34
  static get is() { return "pds-divider"; }
35
35
  static get encapsulation() { return "shadow"; }
@@ -13,7 +13,7 @@ export class PdsDrawerContent {
13
13
  unwrapReconnectedContent(this.el.querySelector('.pds-drawer-content'), '.pds-drawer-content');
14
14
  }
15
15
  render() {
16
- return (h("div", { key: 'f307939ab0a94f6a0d8a3675c658def0ded68b98', class: "pds-drawer-content" }, h("slot", { key: 'dadac08ac15bb8ded98ea982511e2d57bea9bdca' })));
16
+ return (h("div", { key: 'b15b087506c1292f9d67e531e8d935069749c09d', class: "pds-drawer-content" }, h("slot", { key: '9c60ca75c7905e7e994f9c41eee213b962afb833' })));
17
17
  }
18
18
  static get is() { return "pds-drawer-content"; }
19
19
  static get originalStyleUrls() {
@@ -9,7 +9,7 @@ export class PdsDrawerFooter {
9
9
  unwrapReconnectedContent(this.el.querySelector('.pds-drawer__footer'), '.pds-drawer__footer');
10
10
  }
11
11
  render() {
12
- return (h("footer", { key: 'b58c68d88b467e8baa3682d16f97076d06ea2414', class: "pds-drawer__footer" }, h("slot", { key: 'ff2306202c14029b397d40b5bb3d672a8aa571c0' })));
12
+ return (h("footer", { key: 'a4eec0aff617c605b94f8d3b9ec1e2d98cded6fb', class: "pds-drawer__footer" }, h("slot", { key: '6dc379c940e37edfd05d99728be9dff58ca1d717' })));
13
13
  }
14
14
  static get is() { return "pds-drawer-footer"; }
15
15
  static get originalStyleUrls() {
@@ -9,7 +9,7 @@ export class PdsDrawerHeader {
9
9
  unwrapReconnectedContent(this.el.querySelector('.pds-drawer__header'), '.pds-drawer__header');
10
10
  }
11
11
  render() {
12
- return (h("header", { key: '280e6ca734317d5733e4c595431c8070eff13d58', class: "pds-drawer__header" }, h("slot", { key: 'cc6af6084600c4dc60d7bd99e040376abdf5ffe3' })));
12
+ return (h("header", { key: '6b9338e5dbf7a7e580c11b28c95ca53693528382', class: "pds-drawer__header" }, h("slot", { key: '0990fbcf94c0c438b98cf1e8945f1e2fd9aa33dc' })));
13
13
  }
14
14
  static get is() { return "pds-drawer-header"; }
15
15
  static get originalStyleUrls() {
@@ -148,11 +148,11 @@ export class PdsDrawer {
148
148
  this.open = false;
149
149
  }
150
150
  render() {
151
- return (h(Host, { key: '287bf043c991209488eb1b617031acffb59ff9af', class: {
151
+ return (h(Host, { key: '7cf13256457914e48e8fde422832a2a52ee0c13b', class: {
152
152
  'pds-drawer': true,
153
153
  [`pds-drawer--${this.side}`]: true,
154
154
  [`pds-drawer--${this.size}`]: true,
155
- } }, h("pds-modal", { key: 'cd86fb552353f5cc12fb36fc956033432a91847c', class: { 'pds-drawer__modal': true, 'pds-drawer__modal--modal': this.modal }, ref: (el) => (this.modalEl = el), componentId: this.componentId, open: this.open, scrollable: this.scrollable, disableTopLayer: !this.modal, backdropDismiss: this.lightDismiss, disableInitialFocus: !this.modal && this.initialFocus === 'none' }, h("slot", { key: '56bbe9b5c26b10b07c0f503ba147899a57a5de85' }))));
155
+ } }, h("pds-modal", { key: 'd4ceb5b4c0b03930aa3d001ae1bbbfbf449bde33', class: { 'pds-drawer__modal': true, 'pds-drawer__modal--modal': this.modal }, ref: (el) => (this.modalEl = el), componentId: this.componentId, open: this.open, scrollable: this.scrollable, disableTopLayer: !this.modal, backdropDismiss: this.lightDismiss, disableInitialFocus: !this.modal && this.initialFocus === 'none' }, h("slot", { key: '41bfdea76282b333ca6950048999cb9d94e69438' }))));
156
156
  }
157
157
  static get is() { return "pds-drawer"; }
158
158
  static get originalStyleUrls() {
@@ -42,6 +42,14 @@
42
42
  outline-offset: var(--pine-border-width);
43
43
  }
44
44
 
45
+ :host(.is-informational) {
46
+ cursor: default;
47
+ }
48
+ :host(.is-informational) .pds-dropdown-menu-item__content:hover {
49
+ background-color: transparent;
50
+ color: var(--pine-color-text);
51
+ }
52
+
45
53
  :host(.destructive) .pds-dropdown-menu-item__content {
46
54
  --pds-context-link-color: var(--pine-color-danger);
47
55
  --pds-context-link-color-hover: var(--pine-color-danger-hover);
@@ -1,6 +1,6 @@
1
1
  import { h, Host } from "@stencil/core";
2
2
  /**
3
- * @part button
3
+ * @part button - Exposes the item's inner element for styling. Appears on button and informational items, not on links.
4
4
  */
5
5
  export class PdsDropdownMenuItem {
6
6
  constructor() {
@@ -14,9 +14,17 @@ export class PdsDropdownMenuItem {
14
14
  * @defaultValue false
15
15
  */
16
16
  this.disabled = false;
17
+ /**
18
+ * It determines whether or not the dropdown-item is informational: text that the arrow keys
19
+ * reach but that can't be activated. Takes precedence over `href` and `destructive`.
20
+ * Screen readers announce it as dimmed or unavailable, the same way as a disabled item.
21
+ * @defaultValue false
22
+ */
23
+ this.informational = false;
17
24
  /**
18
25
  * Determines whether the link should open in a new tab and display an external icon.
19
26
  * This is a simpler alternative to using `target="_blank"` for the common case.
27
+ * Ignored when `informational` is set.
20
28
  * @defaultValue false
21
29
  */
22
30
  this.external = false;
@@ -27,6 +35,12 @@ export class PdsDropdownMenuItem {
27
35
  this.handleBlur = () => {
28
36
  this.hasFocus = false;
29
37
  };
38
+ // Space would otherwise scroll the page, since nothing in the item takes the key.
39
+ this.handleInformationalKeyDown = (event) => {
40
+ if (event.key === ' ') {
41
+ event.preventDefault();
42
+ }
43
+ };
30
44
  this.handleKeyDown = (event) => {
31
45
  // Handle keyboard events
32
46
  if (!this.disabled && (event.key === 'Enter')) {
@@ -48,6 +62,8 @@ export class PdsDropdownMenuItem {
48
62
  ;
49
63
  handleClick() {
50
64
  var _a;
65
+ if (this.informational)
66
+ return;
51
67
  // Filter only pds-dropdown-menu-item elements and find the index of the current item
52
68
  const menuItems = Array.from(this.host.parentNode.children).filter((child) => child.tagName.toLowerCase() === 'pds-dropdown-menu-item');
53
69
  const itemIndex = menuItems.indexOf(this.host);
@@ -60,8 +76,14 @@ export class PdsDropdownMenuItem {
60
76
  });
61
77
  }
62
78
  renderElement() {
79
+ if (this.informational) {
80
+ return (h("div", { class: {
81
+ 'pds-dropdown-menu-item__content': true,
82
+ 'has-focus': this.hasFocus
83
+ }, role: "menuitem", "aria-disabled": "true", part: "button", tabIndex: this.disabled ? -1 : 0, onKeyDown: this.handleInformationalKeyDown, onFocus: this.handleFocus, onBlur: this.handleBlur }, h("slot", null)));
84
+ }
63
85
  if (this.href != null) {
64
- return (h("pds-link", { download: this.download, href: this.disabled ? null : this.href, external: this.external, target: this.target, class: {
86
+ return (h("pds-link", { download: this.download, href: this.disabled ? null : this.href, external: this.external, externalLabel: this.externalLabel, target: this.target, class: {
65
87
  'pds-dropdown-menu-item__content': true,
66
88
  'has-focus': this.hasFocus
67
89
  }, tabIndex: this.disabled ? -1 : 0, onKeyDown: this.handleKeyDown, onFocus: this.handleFocus, onBlur: this.handleBlur, "aria-disabled": this.disabled ? 'true' : null }, h("slot", null)));
@@ -72,7 +94,14 @@ export class PdsDropdownMenuItem {
72
94
  }, tabIndex: this.disabled ? -1 : 0, type: "button", part: "button", onKeyDown: this.handleKeyDown, onFocus: this.handleFocus, onBlur: this.handleBlur, disabled: this.disabled, "aria-disabled": this.disabled ? 'true' : null }, h("slot", null)));
73
95
  }
74
96
  render() {
75
- return (h(Host, { key: '2d499a06768bdc4b9a34774d16c1f1e10804b3d5', 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()));
97
+ return (h(Host, { key: 'a69947d99160783919f711d7c53e0592694f9565', id: this.componentId, class: {
98
+ 'is-disabled': this.disabled,
99
+ 'is-informational': this.informational,
100
+ 'destructive': !this.disabled && !this.informational && this.destructive
101
+ }, onClick: () => !this.disabled && this.handleClick(), role: "none",
102
+ // ARIA ignores role="none" on focusable elements, so a focusable host would sit between
103
+ // the menu and the informational menuitem as an unexpected child.
104
+ tabIndex: this.informational ? null : -1, "aria-disabled": this.disabled && !this.informational ? 'true' : null }, this.renderElement()));
76
105
  }
77
106
  static get is() { return "pds-dropdown-menu-item"; }
78
107
  static get encapsulation() { return "shadow"; }
@@ -165,7 +194,7 @@ export class PdsDropdownMenuItem {
165
194
  "optional": true,
166
195
  "docs": {
167
196
  "tags": [],
168
- "text": "Prompts the user to save the linked URL instead of navigating to it.\nIt can be used without a value to download with the default filename,\nor with a string value to suggest a specific filename for the download.\nOnly applies when href is set."
197
+ "text": "Prompts the user to save the linked URL instead of navigating to it.\nIt can be used without a value to download with the default filename,\nor with a string value to suggest a specific filename for the download.\nOnly applies when href is set. Ignored when `informational` is set."
169
198
  },
170
199
  "getter": false,
171
200
  "setter": false,
@@ -184,13 +213,36 @@ export class PdsDropdownMenuItem {
184
213
  "optional": false,
185
214
  "docs": {
186
215
  "tags": [],
187
- "text": "If provided, renders the dropdown-item as an anchor (`<a>`) element instead of a button."
216
+ "text": "If provided, renders the dropdown-item as an anchor (`<a>`) element instead of a button.\nIgnored when `informational` is set."
188
217
  },
189
218
  "getter": false,
190
219
  "setter": false,
191
220
  "reflect": false,
192
221
  "attribute": "href"
193
222
  },
223
+ "informational": {
224
+ "type": "boolean",
225
+ "mutable": false,
226
+ "complexType": {
227
+ "original": "boolean",
228
+ "resolved": "boolean",
229
+ "references": {}
230
+ },
231
+ "required": false,
232
+ "optional": false,
233
+ "docs": {
234
+ "tags": [{
235
+ "name": "defaultValue",
236
+ "text": "false"
237
+ }],
238
+ "text": "It determines whether or not the dropdown-item is informational: text that the arrow keys\nreach but that can't be activated. Takes precedence over `href` and `destructive`.\nScreen readers announce it as dimmed or unavailable, the same way as a disabled item."
239
+ },
240
+ "getter": false,
241
+ "setter": false,
242
+ "reflect": true,
243
+ "attribute": "informational",
244
+ "defaultValue": "false"
245
+ },
194
246
  "external": {
195
247
  "type": "boolean",
196
248
  "mutable": false,
@@ -206,7 +258,7 @@ export class PdsDropdownMenuItem {
206
258
  "name": "defaultValue",
207
259
  "text": "false"
208
260
  }],
209
- "text": "Determines whether the link should open in a new tab and display an external icon.\nThis is a simpler alternative to using `target=\"_blank\"` for the common case."
261
+ "text": "Determines whether the link should open in a new tab and display an external icon.\nThis is a simpler alternative to using `target=\"_blank\"` for the common case.\nIgnored when `informational` is set."
210
262
  },
211
263
  "getter": false,
212
264
  "setter": false,
@@ -214,6 +266,28 @@ export class PdsDropdownMenuItem {
214
266
  "attribute": "external",
215
267
  "defaultValue": "false"
216
268
  },
269
+ "externalLabel": {
270
+ "type": "string",
271
+ "mutable": false,
272
+ "complexType": {
273
+ "original": "string",
274
+ "resolved": "string",
275
+ "references": {}
276
+ },
277
+ "required": false,
278
+ "optional": true,
279
+ "docs": {
280
+ "tags": [{
281
+ "name": "defaultValue",
282
+ "text": "'(opens in a new tab)'"
283
+ }],
284
+ "text": "Accessible label for the external-link icon, passed to the inner\n`pds-link`. Pass a translated string to localize it; defaults to English.\nPass an empty string to make the icon decorative."
285
+ },
286
+ "getter": false,
287
+ "setter": false,
288
+ "reflect": false,
289
+ "attribute": "external-label"
290
+ },
217
291
  "target": {
218
292
  "type": "string",
219
293
  "mutable": false,
@@ -229,7 +303,7 @@ export class PdsDropdownMenuItem {
229
303
  "name": "defaultValue",
230
304
  "text": "undefined"
231
305
  }],
232
- "text": "Specifies where to open the linked document when href is provided.\nTakes precedence over the `external` prop if both are set.\nOnly applies when href is set."
306
+ "text": "Specifies where to open the linked document when href is provided.\nTakes precedence over the `external` prop if both are set.\nOnly applies when href is set. Ignored when `informational` is set."
233
307
  },
234
308
  "getter": false,
235
309
  "setter": false,
@@ -8,7 +8,7 @@ export class PdsDropdownMenuSeparator {
8
8
  this.disabled = false;
9
9
  }
10
10
  render() {
11
- return (h(Host, { key: '60407a2edc8b4667d39cbd1ba9a859d09b0b8ff1', id: this.componentId }, h("hr", { key: '8485d1c8508c5fe5e3635505f25e278f45f45b82' })));
11
+ return (h(Host, { key: '72f29c5015d2379d9986c90ec966f34f41298226', id: this.componentId }, h("hr", { key: '72c2155d0fbee6346f3f38997009a7d9e14ad0c8' })));
12
12
  }
13
13
  static get is() { return "pds-dropdown-menu-separator"; }
14
14
  static get encapsulation() { return "shadow"; }
@@ -201,11 +201,11 @@ export class PdsDropdownMenu {
201
201
  if (tagName === 'pds-dropdown-menu-item') {
202
202
  // For pds-dropdown-menu-item, focus the inner element
203
203
  const menuItem = item;
204
- const innerButton = (_a = menuItem.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('button');
204
+ const innerControl = (_a = menuItem.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('button, [role="menuitem"]');
205
205
  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'))
206
206
  || ((_e = menuItem.shadowRoot) === null || _e === void 0 ? void 0 : _e.querySelector('a'));
207
- if (innerButton) {
208
- innerButton.focus();
207
+ if (innerControl) {
208
+ innerControl.focus();
209
209
  }
210
210
  else if (innerLink) {
211
211
  innerLink.focus();
@@ -357,7 +357,7 @@ export class PdsDropdownMenu {
357
357
  }
358
358
  }
359
359
  render() {
360
- return (h(Host, { key: '18dac4d59ea236fe171f4c16f6571cb1547059c6', id: this.componentId }, h("slot", { key: '95201a75a33ccb70dbd51a5cf9d78c76ebf26f65', name: "trigger", onSlotchange: this.handleTriggerSlotChange }), h("pds-box", { key: '7fc588f40f607ad81ad70bf74a525d078d32a80b', "border-radius": "sm", display: "flex", direction: "column", class: "pds-dropdown-menu--panel is-hidden", shadow: "100", part: "menu-panel" }, h("div", { key: '73d13d94edccb68db7b703f930b50f729334efa8', class: { 'pds-dropdown-menu__header': true, 'is-hidden': !this.hasHeader } }, h("slot", { key: '7066f3a6f71c8961326f38f0509f1c0cc17098ae', name: "header", onSlotchange: this.handleHeaderSlotChange })), h("div", { key: '9f07ec488b688c58c6422b575015ccd364075fe8', class: "pds-dropdown-menu__items", role: "menu", "aria-orientation": "vertical" }, h("slot", { key: 'd0aad3f9ac3b58779669411523adbb8878dec61c', onSlotchange: this.handleSlotChange })))));
360
+ return (h(Host, { key: '0ed3d8ee889a5423ca9de66a86791d084f75abf0', id: this.componentId }, h("slot", { key: '6bab71652d6afe094075623d3a48641a4d89b232', name: "trigger", onSlotchange: this.handleTriggerSlotChange }), h("pds-box", { key: 'fcef0667f999ae5b8cd03eb94a0db0be7be502cb', "border-radius": "sm", display: "flex", direction: "column", class: "pds-dropdown-menu--panel is-hidden", shadow: "100", part: "menu-panel" }, h("div", { key: 'c78d5bd7e48c5483b12171341271f9132f4b2ff9', class: { 'pds-dropdown-menu__header': true, 'is-hidden': !this.hasHeader } }, h("slot", { key: '6464994260720d6046da548f4aad0896965cc47c', name: "header", onSlotchange: this.handleHeaderSlotChange })), h("div", { key: '3e97dfc4e1911f91ce8917faf981d436e71e5c24', class: "pds-dropdown-menu__items", role: "menu", "aria-orientation": "vertical" }, h("slot", { key: 'dfd77a8b73df5ce9eef3e661d3f9501cb8bfdba2', onSlotchange: this.handleSlotChange })))));
361
361
  }
362
362
  static get is() { return "pds-dropdown-menu"; }
363
363
  static get encapsulation() { return "shadow"; }
@@ -36,3 +36,42 @@ Default.args = {
36
36
  componentId: 'base-dropdown',
37
37
  placement: 'bottom-start',
38
38
  }
39
+
40
+ const InformationalTemplate = (args) => html`
41
+ <div style="height: 200px">
42
+ <pds-dropdown-menu
43
+ component-id=${args.componentId}
44
+ placement=${args.placement}
45
+ >
46
+ <pds-button slot="trigger" variant="secondary">Used on</pds-button>
47
+ <pds-dropdown-menu-item href="#products">3 products</pds-dropdown-menu-item>
48
+ <pds-dropdown-menu-item informational>2 forms</pds-dropdown-menu-item>
49
+ <pds-dropdown-menu-item href="#emails">5 emails</pds-dropdown-menu-item>
50
+ <pds-dropdown-menu-item informational href="#pages">1 page</pds-dropdown-menu-item>
51
+ </pds-dropdown-menu>
52
+ </div>`;
53
+
54
+ export const Informational = InformationalTemplate.bind();
55
+ Informational.args = {
56
+ componentId: 'informational-dropdown',
57
+ placement: 'bottom-start',
58
+ }
59
+
60
+ const InformationalOnlyTemplate = (args) => html`
61
+ <div style="height: 200px">
62
+ <pds-dropdown-menu
63
+ component-id=${args.componentId}
64
+ placement=${args.placement}
65
+ >
66
+ <pds-button slot="trigger" variant="secondary">Used on</pds-button>
67
+ <pds-dropdown-menu-item informational>3 products</pds-dropdown-menu-item>
68
+ <pds-dropdown-menu-item informational>2 forms</pds-dropdown-menu-item>
69
+ <pds-dropdown-menu-item informational>5 emails</pds-dropdown-menu-item>
70
+ </pds-dropdown-menu>
71
+ </div>`;
72
+
73
+ export const InformationalOnly = InformationalOnlyTemplate.bind();
74
+ InformationalOnly.args = {
75
+ componentId: 'informational-only-dropdown',
76
+ placement: 'bottom-start',
77
+ }
@@ -485,7 +485,7 @@ export class PdsFilter {
485
485
  return null;
486
486
  }
487
487
  render() {
488
- return (h(Host, { key: '3cae951aee1f9c75f3e207cf6c68633a23f8f6dc', id: this.componentId }, h("button", { key: 'f4c644710dc936248995be9a49cef8ad13031d61', class: this.getTriggerClasses(), type: "button", popoverTarget: this.variant !== 'clear' ? `${this.componentId}-popover` : undefined, popoverTargetAction: this.variant !== 'clear' ? 'toggle' : undefined, onKeyDown: this.variant === 'clear' ? this.handleKeyDown : undefined, onClick: (event) => this.handleClick(event), part: "button", "aria-expanded": this.isOpen ? 'true' : 'false', "aria-haspopup": this.variant !== 'clear' ? 'true' : undefined, "aria-controls": this.variant !== 'clear' ? `${this.componentId}-popover` : undefined }, h("span", { key: '2dd87e53f363118becc762051ea1be664258b8b6', class: "pds-filter__button-content", part: "button-content" }, this.renderIcon(), this.text && (h("span", { key: '733ceb5e07198e844fbdc1af294d2046c4c571d8', class: "pds-filter__button-text", part: "button-text" }, this.text)), this.renderDropdownIcon())), this.variant !== 'clear' && (h("div", { key: 'beb65a21192c6f5c16703aec7ab9a92ea378ef3c', ref: el => this.popoverEl = el, id: `${this.componentId}-popover`, class: "pds-filter__popover", popover: "auto", part: "popover" }, h("slot", { key: '5a481cc6b143b059a5fc33d377abe5ab79aefb4e' })))));
488
+ return (h(Host, { key: '9b2286e9a0d7f88b7f6bc90f8444185cfec832c8', id: this.componentId }, h("button", { key: '968953600d615f2739757a91422dafdb817c9a6f', class: this.getTriggerClasses(), type: "button", popoverTarget: this.variant !== 'clear' ? `${this.componentId}-popover` : undefined, popoverTargetAction: this.variant !== 'clear' ? 'toggle' : undefined, onKeyDown: this.variant === 'clear' ? this.handleKeyDown : undefined, onClick: (event) => this.handleClick(event), part: "button", "aria-expanded": this.isOpen ? 'true' : 'false', "aria-haspopup": this.variant !== 'clear' ? 'true' : undefined, "aria-controls": this.variant !== 'clear' ? `${this.componentId}-popover` : undefined }, h("span", { key: 'ee479f7e510ffcb54f7857cb7d1345f2a5c1d76a', class: "pds-filter__button-content", part: "button-content" }, this.renderIcon(), this.text && (h("span", { key: 'e98aa8b915a2460f3c7d49e20ec7d43853ee5f9f', class: "pds-filter__button-text", part: "button-text" }, this.text)), this.renderDropdownIcon())), this.variant !== 'clear' && (h("div", { key: '3084babfba2d96880b2829a60d2ef00140a6813b', ref: el => this.popoverEl = el, id: `${this.componentId}-popover`, class: "pds-filter__popover", popover: "auto", part: "popover" }, h("slot", { key: 'e901488be75a18bedc6b2c42be5c398fd2cf2a29' })))));
489
489
  }
490
490
  static get is() { return "pds-filter"; }
491
491
  static get encapsulation() { return "shadow"; }
@@ -4,7 +4,7 @@ import { Host, h } from "@stencil/core";
4
4
  */
5
5
  export class PdsFilters {
6
6
  render() {
7
- return (h(Host, { key: '8688235fe7cdea1b4fc540156ff21bb9711b41b6', id: this.componentId }, h("div", { key: 'e51a37977df8c31f99b28d8c7e4bedb0d63e53c6', class: "pds-filters" }, h("slot", { key: '8ce936da4d3f0213408090bc3eeb011920f9aa6c' }))));
7
+ return (h(Host, { key: '6f785fc222e3b5b7cf932f704b56aa7f1f52ead3', id: this.componentId }, h("div", { key: '0ffd2894cdeb1e632228b4c3fa523069dcffa4b2', class: "pds-filters" }, h("slot", { key: 'a3f42dedcda1b0fec78a33793d085791d9b9fc5c' }))));
8
8
  }
9
9
  static get is() { return "pds-filters"; }
10
10
  static get encapsulation() { return "shadow"; }
@@ -15,9 +15,9 @@ export class PdsImage {
15
15
  this.loading = 'eager';
16
16
  }
17
17
  render() {
18
- return (h(Host, { key: '1e8bb3882c2a629004ce1441e85d5c5a75a84e98', class: {
18
+ return (h(Host, { key: '6d2d48c468c39f53d67e63999dd83f3ad61053b5', class: {
19
19
  'pds-image': true,
20
- }, id: this.componentId }, h("img", { key: 'b50b19d51431d45027c7a918a4ba4c38493741d5', alt: this.alt, height: this.height, loading: this.loading, sizes: this.sizes, src: this.src, srcset: this.srcset, width: this.width })));
20
+ }, id: this.componentId }, h("img", { key: '393cc584586e37e8d5b602fbdcda1783bf80cf9b', alt: this.alt, height: this.height, loading: this.loading, sizes: this.sizes, src: this.src, srcset: this.srcset, width: this.width })));
21
21
  }
22
22
  static get is() { return "pds-image"; }
23
23
  static get encapsulation() { return "shadow"; }
@@ -289,10 +289,10 @@ export class PdsInput {
289
289
  'has-prepend': this.hasPrepend,
290
290
  'has-append': this.hasAppend,
291
291
  };
292
- return (h(Host, { key: '75eb8bc6cda5e947f8677ebefe7995688f03f947', "aria-disabled": this.disabled ? 'true' : null, "aria-readonly": this.readonly ? 'true' : null, "has-prefix": this.hasPrefix ? 'true' : null, "has-suffix": this.hasSuffix ? 'true' : null, "has-prepend": this.hasPrepend ? 'true' : null, "has-append": this.hasAppend ? 'true' : null, "has-action": this.hasAction && !this.hideLabel ? 'true' : null, "full-width": this.fullWidth ? 'true' : null }, h("div", { key: '93d7f90b9a64daccea1533abc08a8cb18825b828', class: "pds-input" }, label && (h("div", { key: '948109b3bfa1a1b8171572da9160425e3e35a7a6', class: {
292
+ return (h(Host, { key: '1706e29a68d25a8bb83c36d6bddace04a448f6f5', "aria-disabled": this.disabled ? 'true' : null, "aria-readonly": this.readonly ? 'true' : null, "has-prefix": this.hasPrefix ? 'true' : null, "has-suffix": this.hasSuffix ? 'true' : null, "has-prepend": this.hasPrepend ? 'true' : null, "has-append": this.hasAppend ? 'true' : null, "has-action": this.hasAction && !this.hideLabel ? 'true' : null, "full-width": this.fullWidth ? 'true' : null }, h("div", { key: '1488b6ea995c4ffc4068757f566494c0ac073950', class: "pds-input" }, label && (h("div", { key: 'e2fe4e461e626648ec51882e92e02fea179e3e13', class: {
293
293
  'pds-input__label-wrapper': true,
294
294
  'visually-hidden': this.hideLabel,
295
- } }, h("label", { key: 'bb0e6c6febb97ad4aa3942ac5e67ac42dc1bde0a', htmlFor: componentId, class: "pds-input__label" }, h("span", { key: 'c6a122f829aa3b92ccb715c3f3975f6baadb3028' }, label, this.required && h("span", { key: 'dce7d1a9c010a545992734bd238e9f6a4ca7b4ce', class: "pds-input__required-indicator" }, " *"))), !this.hideLabel && this.renderAction())), h("div", { key: '1b92ab5d649a4a9cf8112ea9b8a8a1095714f6d0', class: inputWrapperClasses }, this.renderPrepend(), this.renderPrefix(), h("input", Object.assign({ key: 'bc3c4b907312149d375bb78f9912e4501da59348', ref: (input) => (this.nativeInput = input), class: "pds-input__field", "aria-describedby": assignDescription(componentId, invalid, helperMessage, errorMessage), "aria-invalid": invalid ? "true" : undefined, autocomplete: this.autocomplete, disabled: disabled, id: componentId, max: this.max, maxlength: this.maxlength, min: this.min, minlength: this.minlength, name: this.name, pattern: this.pattern, placeholder: this.placeholder, readOnly: this.readonly, required: this.required, step: this.step, type: this.type, value: value, onInput: this.onInputEvent, onChange: this.onChangeEvent, onBlur: this.onBlurEvent, onFocus: this.onFocusEvent, onKeyDown: this.onKeyDownEvent, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd }, this.inheritedAttributes)), this.renderSuffix(), this.renderAppend()), helperMessage && (h("p", { key: 'f7bcbafc17a20310d602fce14a0adad522acbcb1', class: "pds-input__helper-message", id: messageId(componentId, 'helper') }, helperMessage)), errorMessage && (h("p", { key: 'bbbd6dc3203b89e5759587147de74d2ce3ce6177', class: "pds-input__error-message", id: messageId(componentId, 'error') }, h("pds-icon", { key: '68a6a92c82c1756ad99f431e0cb56756e3cdf75c', "aria-hidden": "true", icon: danger, size: "small" }), errorMessage)))));
295
+ } }, h("label", { key: 'c926a6fbb3130afdc6c86d509b92fb6650391c4b', htmlFor: componentId, class: "pds-input__label" }, h("span", { key: 'dbbaf9d0db49f949f69f1faf848e7c6193e32793' }, label, this.required && h("span", { key: '42e6325a0f5ee276ed92cf2eb71942c268c3d1aa', class: "pds-input__required-indicator" }, " *"))), !this.hideLabel && this.renderAction())), h("div", { key: '4715743733f2d7d3e4edf9ac4ab6d69ffde04d00', class: inputWrapperClasses }, this.renderPrepend(), this.renderPrefix(), h("input", Object.assign({ key: '438ac0fc6d497a8227c83e628d29d4633ffc208a', ref: (input) => (this.nativeInput = input), class: "pds-input__field", "aria-describedby": assignDescription(componentId, invalid, helperMessage, errorMessage), "aria-invalid": invalid ? "true" : undefined, autocomplete: this.autocomplete, disabled: disabled, id: componentId, max: this.max, maxlength: this.maxlength, min: this.min, minlength: this.minlength, name: this.name, pattern: this.pattern, placeholder: this.placeholder, readOnly: this.readonly, required: this.required, step: this.step, type: this.type, value: value, onInput: this.onInputEvent, onChange: this.onChangeEvent, onBlur: this.onBlurEvent, onFocus: this.onFocusEvent, onKeyDown: this.onKeyDownEvent, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd }, this.inheritedAttributes)), this.renderSuffix(), this.renderAppend()), helperMessage && (h("p", { key: '43b5c3a332072f19a38be316565602932c61504d', class: "pds-input__helper-message", id: messageId(componentId, 'helper') }, helperMessage)), errorMessage && (h("p", { key: '54fd4fc2dcbc645377edbe4d04cfd82c7d1591e8', class: "pds-input__error-message", id: messageId(componentId, 'error') }, h("pds-icon", { key: '2bd509a575ec5c7a548955dd7f706d7c1d42557e', "aria-hidden": "true", icon: danger, size: "small" }), errorMessage)))));
296
296
  }
297
297
  static get is() { return "pds-input"; }
298
298
  static get encapsulation() { return "shadow"; }
@@ -211,8 +211,8 @@ export const withSuffixButton = (args) => html`<pds-input
211
211
  ?required=${args.required}
212
212
  type="text"
213
213
  value="${args.value}">
214
- <pds-button slot="suffix" variant="unstyled" class="pds-input__suffix">
215
- <pds-icon name="search" size="small"></pds-icon>
214
+ <pds-button slot="suffix" variant="unstyled" class="pds-input__suffix" aria-label="Submit search">
215
+ <pds-icon name="search" size="small" aria-hidden="true"></pds-icon>
216
216
  </pds-button>
217
217
  </pds-input>`;
218
218
 
@@ -355,8 +355,8 @@ export const withPrependAndSuffix = (args) => html`<pds-input
355
355
  <option value="EUR">EUR</option>
356
356
  <option value="GBP">GBP</option>
357
357
  </pds-select>
358
- <pds-button slot="suffix" variant="unstyled" class="pds-input__suffix">
359
- <pds-icon name="remove-circle" size="small"></pds-icon>
358
+ <pds-button slot="suffix" variant="unstyled" class="pds-input__suffix" aria-label="Clear amount">
359
+ <pds-icon name="remove-circle" size="small" aria-hidden="true"></pds-icon>
360
360
  </pds-button>
361
361
  </pds-input>`;
362
362
 
@@ -399,7 +399,7 @@ export const withActionButton = (args) => html`<pds-input
399
399
  ?required=${args.required}
400
400
  type="text"
401
401
  value="${args.value}">
402
- <pds-button slot="action" variant="unstyled">
403
- <pds-icon name="question-circle"></pds-icon>
402
+ <pds-button slot="action" variant="unstyled" aria-label="Help with username">
403
+ <pds-icon name="question-circle" aria-hidden="true"></pds-icon>
404
404
  </pds-button>
405
405
  </pds-input>`;
@@ -1,6 +1,8 @@
1
1
  import { h } from "@stencil/core";
2
2
  import { setColor } from "../../utils/utils";
3
3
  import { launch } from "@pine-ds/icons/icons";
4
+ // Used when `externalLabel` is unset; an empty string hides the icon instead.
5
+ const DEFAULT_EXTERNAL_LABEL = '(opens in a new tab)';
4
6
  /**
5
7
  * @part link - Link element styles.
6
8
  * @slot (default) - Text content placed between the opening and closing tags. If no text is provided, the **href** will be used as a fallback.
@@ -53,11 +55,18 @@ export class PdsLink {
53
55
  return linkStyles;
54
56
  }
55
57
  render() {
58
+ var _a;
56
59
  const targetValue = this.target || (this.external ? '_blank' : undefined);
57
60
  const showExternalIcon = this.external;
58
- const relValue = targetValue === '_blank' ? 'noopener noreferrer' : undefined;
59
- return (h("a", { key: '3b6f9d19d7f50d0606cf5f3c3a97b85ee4aa63b0', class: this.classNames(), download: this.download, href: this.href, id: this.componentId, part: "link", "aria-current": this.active ? 'page' : undefined, target: targetValue, rel: relValue, style: this.setLinkStyles(), "data-turbo": this.turbo || undefined, "data-turbo-frame": this.turboFrame || undefined, "data-turbo-action": this.turboAction || undefined, "data-turbo-method": this.turboMethod || undefined, "data-turbo-confirm": this.turboConfirm || undefined, "data-turbo-stream": this.turboStream || undefined, "data-turbo-prefetch": this.turboPrefetch || undefined, "data-turbo-preload": this.turboPreload || undefined }, h("slot", { key: 'a265f1c4c9b6ff089b23906d8f650bfd65b25013' }, this.href), showExternalIcon &&
60
- h("pds-icon", { key: '9553a8256b6811296ea4b762e32662c1a2f4aecf', icon: launch, size: this.fontSize })));
61
+ const opensInNewTab = targetValue === '_blank';
62
+ const relValue = opensInNewTab ? 'noopener noreferrer' : undefined;
63
+ // A `target` other than _blank overrides `external`, and then the label
64
+ // would be false, so the icon is decorative there, as it is when the
65
+ // label is empty.
66
+ const externalLabel = (_a = this.externalLabel) !== null && _a !== void 0 ? _a : DEFAULT_EXTERNAL_LABEL;
67
+ const externalIconLabel = opensInNewTab && externalLabel !== '' ? externalLabel : undefined;
68
+ return (h("a", { key: 'ae7928aa6dce42657545a1d17581818d3724746f', class: this.classNames(), download: this.download, href: this.href, id: this.componentId, part: "link", "aria-current": this.active ? 'page' : undefined, target: targetValue, rel: relValue, style: this.setLinkStyles(), "data-turbo": this.turbo || undefined, "data-turbo-frame": this.turboFrame || undefined, "data-turbo-action": this.turboAction || undefined, "data-turbo-method": this.turboMethod || undefined, "data-turbo-confirm": this.turboConfirm || undefined, "data-turbo-stream": this.turboStream || undefined, "data-turbo-prefetch": this.turboPrefetch || undefined, "data-turbo-preload": this.turboPreload || undefined }, h("slot", { key: 'e61374c58fddec869f2f5dda54634a0b1ba9f345' }, this.href), showExternalIcon &&
69
+ h("pds-icon", { key: '161657146e5f3ce360480c573ea8f14c9012cb1f', icon: launch, size: this.fontSize, "aria-label": externalIconLabel, "aria-hidden": externalIconLabel === undefined ? 'true' : undefined })));
61
70
  }
62
71
  static get is() { return "pds-link"; }
63
72
  static get encapsulation() { return "shadow"; }
@@ -179,6 +188,28 @@ export class PdsLink {
179
188
  "attribute": "external",
180
189
  "defaultValue": "false"
181
190
  },
191
+ "externalLabel": {
192
+ "type": "string",
193
+ "mutable": false,
194
+ "complexType": {
195
+ "original": "string",
196
+ "resolved": "string",
197
+ "references": {}
198
+ },
199
+ "required": false,
200
+ "optional": true,
201
+ "docs": {
202
+ "tags": [{
203
+ "name": "defaultValue",
204
+ "text": "'(opens in a new tab)'"
205
+ }],
206
+ "text": "Accessible label for the icon that `external` shows, appended to the\nlink's name. It isn't announced when `target` keeps the link in the same\ntab. Pass a translated string to localize it; defaults to English. Pass an\nempty string to make the icon decorative."
207
+ },
208
+ "getter": false,
209
+ "setter": false,
210
+ "reflect": false,
211
+ "attribute": "external-label"
212
+ },
182
213
  "target": {
183
214
  "type": "string",
184
215
  "mutable": false,