@pine-ds/core 3.27.0 → 3.29.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 (353) hide show
  1. package/components/i18n-format.js +1 -0
  2. package/components/pds-alert.js +1 -1
  3. package/components/pds-avatar.js +1 -1
  4. package/components/pds-chip2.js +1 -1
  5. package/components/pds-link2.js +1 -1
  6. package/components/pds-multiselect.js +1 -1
  7. package/components/pds-tab.js +1 -1
  8. package/components/pds-tabpanel.js +1 -1
  9. package/components/pds-tabs.js +1 -1
  10. package/components/pds-text2.js +1 -1
  11. package/components/pds-textarea.js +1 -1
  12. package/components/pds-toast.js +1 -1
  13. package/components/pds-tooltip.js +1 -1
  14. package/dist/cjs/i18n-format-CrpIhahc.js +64 -0
  15. package/dist/cjs/{index-DBhfI2Jq.js → index-BdFrBXCD.js} +5 -1
  16. package/dist/cjs/{index-DGBoDsAL.js → index-CKNNY-lQ.js} +1 -1
  17. package/dist/cjs/loader.cjs.js +2 -2
  18. package/dist/cjs/mock-pds-modal.cjs.entry.js +1 -1
  19. package/dist/cjs/pds-accordion.cjs.entry.js +2 -2
  20. package/dist/cjs/pds-alert.cjs.entry.js +8 -2
  21. package/dist/cjs/pds-avatar.cjs.entry.js +45 -8
  22. package/dist/cjs/pds-box.cjs.entry.js +1 -1
  23. package/dist/cjs/pds-button.cjs.entry.js +2 -2
  24. package/dist/cjs/pds-checkbox.cjs.entry.js +2 -2
  25. package/dist/cjs/pds-chip.cjs.entry.js +10 -5
  26. package/dist/cjs/pds-combobox.cjs.entry.js +1 -1
  27. package/dist/cjs/pds-container.cjs.entry.js +1 -1
  28. package/dist/cjs/pds-copytext.cjs.entry.js +2 -2
  29. package/dist/cjs/pds-divider.cjs.entry.js +1 -1
  30. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +1 -1
  31. package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +1 -1
  32. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +1 -1
  33. package/dist/cjs/pds-filter.cjs.entry.js +2 -2
  34. package/dist/cjs/pds-filters.cjs.entry.js +1 -1
  35. package/dist/cjs/pds-icon.cjs.entry.js +1 -1
  36. package/dist/cjs/pds-image.cjs.entry.js +1 -1
  37. package/dist/cjs/pds-input.cjs.entry.js +2 -2
  38. package/dist/cjs/pds-link.cjs.entry.js +12 -5
  39. package/dist/cjs/pds-loader.cjs.entry.js +1 -1
  40. package/dist/cjs/pds-modal-content.cjs.entry.js +1 -1
  41. package/dist/cjs/pds-modal-footer.cjs.entry.js +1 -1
  42. package/dist/cjs/pds-modal-header.cjs.entry.js +1 -1
  43. package/dist/cjs/pds-modal.cjs.entry.js +1 -1
  44. package/dist/cjs/pds-multiselect.cjs.entry.js +93 -14
  45. package/dist/cjs/pds-popover.cjs.entry.js +1 -1
  46. package/dist/cjs/pds-progress.cjs.entry.js +1 -1
  47. package/dist/cjs/pds-property.cjs.entry.js +1 -1
  48. package/dist/cjs/pds-radio-group.cjs.entry.js +2 -2
  49. package/dist/cjs/pds-radio.cjs.entry.js +2 -2
  50. package/dist/cjs/pds-row.cjs.entry.js +1 -1
  51. package/dist/cjs/pds-select.cjs.entry.js +2 -2
  52. package/dist/cjs/pds-sortable-item.cjs.entry.js +2 -2
  53. package/dist/cjs/pds-sortable.cjs.entry.js +1 -1
  54. package/dist/cjs/pds-switch.cjs.entry.js +2 -2
  55. package/dist/cjs/pds-tab.cjs.entry.js +41 -6
  56. package/dist/cjs/pds-table-body.cjs.entry.js +1 -1
  57. package/dist/cjs/pds-table-cell.cjs.entry.js +1 -1
  58. package/dist/cjs/pds-table-head-cell.cjs.entry.js +2 -2
  59. package/dist/cjs/pds-table-head.cjs.entry.js +1 -1
  60. package/dist/cjs/pds-table-row.cjs.entry.js +1 -1
  61. package/dist/cjs/pds-table.cjs.entry.js +1 -1
  62. package/dist/cjs/pds-tabpanel.cjs.entry.js +8 -3
  63. package/dist/cjs/pds-tabs.cjs.entry.js +74 -3
  64. package/dist/cjs/pds-text.cjs.entry.js +2 -2
  65. package/dist/cjs/pds-textarea.cjs.entry.js +14 -7
  66. package/dist/cjs/pds-toast.cjs.entry.js +10 -4
  67. package/dist/cjs/pds-tooltip.cjs.entry.js +3 -3
  68. package/dist/cjs/pine-core.cjs.js +2 -2
  69. package/dist/collection/components/pds-alert/pds-alert.js +30 -1
  70. package/dist/collection/components/pds-avatar/pds-avatar.css +29 -0
  71. package/dist/collection/components/pds-avatar/pds-avatar.js +133 -5
  72. package/dist/collection/components/pds-avatar/stories/pds-avatar.stories.js +23 -0
  73. package/dist/collection/components/pds-button/pds-button.js +1 -1
  74. package/dist/collection/components/pds-button/stories/pds-button.stories.js +25 -0
  75. package/dist/collection/components/pds-chip/pds-chip.js +31 -3
  76. package/dist/collection/components/pds-link/pds-link.css +10 -0
  77. package/dist/collection/components/pds-link/pds-link.js +32 -2
  78. package/dist/collection/components/pds-link/stories/pds-link.stories.js +14 -0
  79. package/dist/collection/components/pds-multiselect/pds-multiselect.js +358 -17
  80. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.css +4 -4
  81. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js +161 -5
  82. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.css +9 -0
  83. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +29 -1
  84. package/dist/collection/components/pds-tabs/pds-tabs.css +14 -0
  85. package/dist/collection/components/pds-tabs/pds-tabs.js +146 -4
  86. package/dist/collection/components/pds-tabs/stories/pds-tabs.stories.js +43 -0
  87. package/dist/collection/components/pds-text/pds-text.js +1 -1
  88. package/dist/collection/components/pds-textarea/pds-textarea.js +35 -5
  89. package/dist/collection/components/pds-toast/pds-toast.js +32 -3
  90. package/dist/collection/components/pds-tooltip/pds-tooltip.js +2 -2
  91. package/dist/collection/i18n/i18n-format.js +59 -0
  92. package/dist/collection/i18n/index.js +1 -0
  93. package/dist/docs.json +866 -13
  94. package/dist/esm/i18n-format-BKsJZTyn.js +61 -0
  95. package/dist/esm/{index-D4ys0pep.js → index-BjlFq0VD.js} +1 -1
  96. package/dist/esm/{index-CaRgVPt7.js → index-NNDTPCWx.js} +5 -2
  97. package/dist/esm/loader.js +3 -3
  98. package/dist/esm/mock-pds-modal.entry.js +1 -1
  99. package/dist/esm/pds-accordion.entry.js +2 -2
  100. package/dist/esm/pds-alert.entry.js +8 -2
  101. package/dist/esm/pds-avatar.entry.js +45 -8
  102. package/dist/esm/pds-box.entry.js +1 -1
  103. package/dist/esm/pds-button.entry.js +2 -2
  104. package/dist/esm/pds-checkbox.entry.js +2 -2
  105. package/dist/esm/pds-chip.entry.js +10 -5
  106. package/dist/esm/pds-combobox.entry.js +1 -1
  107. package/dist/esm/pds-container.entry.js +1 -1
  108. package/dist/esm/pds-copytext.entry.js +2 -2
  109. package/dist/esm/pds-divider.entry.js +1 -1
  110. package/dist/esm/pds-dropdown-menu-item.entry.js +1 -1
  111. package/dist/esm/pds-dropdown-menu-separator.entry.js +1 -1
  112. package/dist/esm/pds-dropdown-menu.entry.js +1 -1
  113. package/dist/esm/pds-filter.entry.js +2 -2
  114. package/dist/esm/pds-filters.entry.js +1 -1
  115. package/dist/esm/pds-icon.entry.js +1 -1
  116. package/dist/esm/pds-image.entry.js +1 -1
  117. package/dist/esm/pds-input.entry.js +2 -2
  118. package/dist/esm/pds-link.entry.js +12 -5
  119. package/dist/esm/pds-loader.entry.js +1 -1
  120. package/dist/esm/pds-modal-content.entry.js +1 -1
  121. package/dist/esm/pds-modal-footer.entry.js +1 -1
  122. package/dist/esm/pds-modal-header.entry.js +1 -1
  123. package/dist/esm/pds-modal.entry.js +1 -1
  124. package/dist/esm/pds-multiselect.entry.js +93 -14
  125. package/dist/esm/pds-popover.entry.js +1 -1
  126. package/dist/esm/pds-progress.entry.js +1 -1
  127. package/dist/esm/pds-property.entry.js +1 -1
  128. package/dist/esm/pds-radio-group.entry.js +2 -2
  129. package/dist/esm/pds-radio.entry.js +2 -2
  130. package/dist/esm/pds-row.entry.js +1 -1
  131. package/dist/esm/pds-select.entry.js +2 -2
  132. package/dist/esm/pds-sortable-item.entry.js +2 -2
  133. package/dist/esm/pds-sortable.entry.js +1 -1
  134. package/dist/esm/pds-switch.entry.js +2 -2
  135. package/dist/esm/pds-tab.entry.js +41 -6
  136. package/dist/esm/pds-table-body.entry.js +1 -1
  137. package/dist/esm/pds-table-cell.entry.js +1 -1
  138. package/dist/esm/pds-table-head-cell.entry.js +2 -2
  139. package/dist/esm/pds-table-head.entry.js +1 -1
  140. package/dist/esm/pds-table-row.entry.js +1 -1
  141. package/dist/esm/pds-table.entry.js +1 -1
  142. package/dist/esm/pds-tabpanel.entry.js +8 -3
  143. package/dist/esm/pds-tabs.entry.js +74 -3
  144. package/dist/esm/pds-text.entry.js +2 -2
  145. package/dist/esm/pds-textarea.entry.js +14 -7
  146. package/dist/esm/pds-toast.entry.js +10 -4
  147. package/dist/esm/pds-tooltip.entry.js +3 -3
  148. package/dist/esm/pine-core.js +3 -3
  149. package/dist/esm-es5/i18n-format-BKsJZTyn.js +1 -0
  150. package/dist/esm-es5/{index-CaRgVPt7.js → index-NNDTPCWx.js} +2 -2
  151. package/dist/esm-es5/loader.js +1 -1
  152. package/dist/esm-es5/mock-pds-modal.entry.js +1 -1
  153. package/dist/esm-es5/pds-accordion.entry.js +1 -1
  154. package/dist/esm-es5/pds-alert.entry.js +1 -1
  155. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  156. package/dist/esm-es5/pds-box.entry.js +1 -1
  157. package/dist/esm-es5/pds-button.entry.js +1 -1
  158. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  159. package/dist/esm-es5/pds-chip.entry.js +1 -1
  160. package/dist/esm-es5/pds-combobox.entry.js +2 -2
  161. package/dist/esm-es5/pds-container.entry.js +1 -1
  162. package/dist/esm-es5/pds-copytext.entry.js +1 -1
  163. package/dist/esm-es5/pds-divider.entry.js +1 -1
  164. package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -1
  165. package/dist/esm-es5/pds-dropdown-menu-separator.entry.js +1 -1
  166. package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
  167. package/dist/esm-es5/pds-filter.entry.js +1 -1
  168. package/dist/esm-es5/pds-filters.entry.js +1 -1
  169. package/dist/esm-es5/pds-icon.entry.js +1 -1
  170. package/dist/esm-es5/pds-image.entry.js +1 -1
  171. package/dist/esm-es5/pds-input.entry.js +1 -1
  172. package/dist/esm-es5/pds-link.entry.js +1 -1
  173. package/dist/esm-es5/pds-loader.entry.js +1 -1
  174. package/dist/esm-es5/pds-modal-content.entry.js +1 -1
  175. package/dist/esm-es5/pds-modal-footer.entry.js +1 -1
  176. package/dist/esm-es5/pds-modal-header.entry.js +1 -1
  177. package/dist/esm-es5/pds-modal.entry.js +1 -1
  178. package/dist/esm-es5/pds-multiselect.entry.js +1 -1
  179. package/dist/esm-es5/pds-popover.entry.js +1 -1
  180. package/dist/esm-es5/pds-progress.entry.js +1 -1
  181. package/dist/esm-es5/pds-property.entry.js +1 -1
  182. package/dist/esm-es5/pds-radio-group.entry.js +1 -1
  183. package/dist/esm-es5/pds-radio.entry.js +1 -1
  184. package/dist/esm-es5/pds-row.entry.js +1 -1
  185. package/dist/esm-es5/pds-select.entry.js +1 -1
  186. package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
  187. package/dist/esm-es5/pds-sortable.entry.js +1 -1
  188. package/dist/esm-es5/pds-switch.entry.js +1 -1
  189. package/dist/esm-es5/pds-tab.entry.js +1 -1
  190. package/dist/esm-es5/pds-table-body.entry.js +1 -1
  191. package/dist/esm-es5/pds-table-cell.entry.js +1 -1
  192. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  193. package/dist/esm-es5/pds-table-head.entry.js +1 -1
  194. package/dist/esm-es5/pds-table-row.entry.js +1 -1
  195. package/dist/esm-es5/pds-table.entry.js +1 -1
  196. package/dist/esm-es5/pds-tabpanel.entry.js +1 -1
  197. package/dist/esm-es5/pds-tabs.entry.js +1 -1
  198. package/dist/esm-es5/pds-text.entry.js +1 -1
  199. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  200. package/dist/esm-es5/pds-toast.entry.js +1 -1
  201. package/dist/esm-es5/pds-tooltip.entry.js +1 -1
  202. package/dist/esm-es5/pine-core.js +1 -1
  203. package/dist/pine-core/p-02805a93.system.entry.js +1 -0
  204. package/dist/pine-core/{p-e70c9002.entry.js → p-02977c6f.entry.js} +1 -1
  205. package/dist/pine-core/{p-4e49712d.entry.js → p-054f7011.entry.js} +1 -1
  206. package/dist/pine-core/{p-571d6bef.system.entry.js → p-076aaa00.system.entry.js} +1 -1
  207. package/dist/pine-core/{p-3fa80c5a.system.entry.js → p-092a72d2.system.entry.js} +1 -1
  208. package/dist/pine-core/p-0a09ccbe.entry.js +1 -0
  209. package/dist/pine-core/p-0a4f2d5f.system.entry.js +1 -0
  210. package/dist/pine-core/{p-f2cf8e76.entry.js → p-0d6daa35.entry.js} +1 -1
  211. package/dist/pine-core/p-12154189.system.entry.js +1 -0
  212. package/dist/pine-core/{p-44f58d33.system.entry.js → p-1deded6e.system.entry.js} +1 -1
  213. package/dist/pine-core/{p-fa81009f.system.entry.js → p-1f20608e.system.entry.js} +1 -1
  214. package/dist/pine-core/{p-27ac77c3.entry.js → p-1fb985bb.entry.js} +1 -1
  215. package/dist/pine-core/{p-855dfc31.system.entry.js → p-20e0d06c.system.entry.js} +1 -1
  216. package/dist/pine-core/p-24fcf841.system.entry.js +1 -0
  217. package/dist/pine-core/{p-c273210a.entry.js → p-292cf8f9.entry.js} +1 -1
  218. package/dist/pine-core/{p-db1572a3.entry.js → p-2a74b396.entry.js} +1 -1
  219. package/dist/pine-core/p-2d1cc047.entry.js +1 -0
  220. package/dist/pine-core/{p-002c420f.system.entry.js → p-2ec460e1.system.entry.js} +1 -1
  221. package/dist/pine-core/{p-e0cfb931.system.entry.js → p-2fc127b4.system.entry.js} +1 -1
  222. package/dist/pine-core/{p-d09ae46d.system.entry.js → p-3170d53b.system.entry.js} +1 -1
  223. package/dist/pine-core/{p-0451fdf7.entry.js → p-39ad92fc.entry.js} +1 -1
  224. package/dist/pine-core/{p-974bf0c5.entry.js → p-39c6e6c9.entry.js} +1 -1
  225. package/dist/pine-core/{p-d5c1f85e.system.entry.js → p-3c6300a8.system.entry.js} +1 -1
  226. package/dist/pine-core/{p-b0b6acdb.system.entry.js → p-3e3b3bf6.system.entry.js} +1 -1
  227. package/dist/pine-core/{p-52f7115b.entry.js → p-43a1d9d7.entry.js} +1 -1
  228. package/dist/pine-core/{p-13ec2343.entry.js → p-43ef94bc.entry.js} +1 -1
  229. package/dist/pine-core/{p-618ba6d5.system.entry.js → p-464ec4eb.system.entry.js} +1 -1
  230. package/dist/pine-core/{p-ee6f914c.entry.js → p-47708864.entry.js} +1 -1
  231. package/dist/pine-core/{p-ccb889d8.system.entry.js → p-507e831f.system.entry.js} +1 -1
  232. package/dist/pine-core/p-5c229a7f.entry.js +1 -0
  233. package/dist/pine-core/{p-5c6c2f79.system.entry.js → p-5c7a72aa.system.entry.js} +1 -1
  234. package/dist/pine-core/{p-71ca8845.system.entry.js → p-5e6e8d4e.system.entry.js} +1 -1
  235. package/dist/pine-core/{p-3ad9bcef.system.entry.js → p-5f4d2c5c.system.entry.js} +1 -1
  236. package/dist/pine-core/{p-6a2373d0.system.entry.js → p-606418b7.system.entry.js} +1 -1
  237. package/dist/pine-core/{p-22bfa998.entry.js → p-6254d112.entry.js} +1 -1
  238. package/dist/pine-core/{p-5a2df1e2.entry.js → p-62f75f84.entry.js} +1 -1
  239. package/dist/pine-core/{p-835d9f18.system.entry.js → p-69e47ffc.system.entry.js} +1 -1
  240. package/dist/pine-core/p-6f82e8dc.system.entry.js +1 -0
  241. package/dist/pine-core/{p-b1b317a5.entry.js → p-6fb68ad1.entry.js} +1 -1
  242. package/dist/pine-core/{p-1e3beca4.system.entry.js → p-7153efaf.system.entry.js} +1 -1
  243. package/dist/pine-core/{p-a982ac91.system.entry.js → p-72a1b563.system.entry.js} +1 -1
  244. package/dist/pine-core/{p-7aca41d9.system.entry.js → p-7803c5b6.system.entry.js} +1 -1
  245. package/dist/pine-core/{p-74e06c8d.system.entry.js → p-78cd9f97.system.entry.js} +1 -1
  246. package/dist/pine-core/{p-edf4e4eb.system.entry.js → p-79598750.system.entry.js} +1 -1
  247. package/dist/pine-core/p-7a7954b2.system.entry.js +1 -0
  248. package/dist/pine-core/{p-3ba36512.system.entry.js → p-7b85115b.system.entry.js} +1 -1
  249. package/dist/pine-core/{p-83eb33d4.entry.js → p-7bac161d.entry.js} +1 -1
  250. package/dist/pine-core/{p-bdf18687.entry.js → p-7d15b65e.entry.js} +1 -1
  251. package/dist/pine-core/p-7e065b59.entry.js +1 -0
  252. package/dist/pine-core/p-82af7d58.system.entry.js +1 -0
  253. package/dist/pine-core/{p-73b81009.entry.js → p-83e8f145.entry.js} +1 -1
  254. package/dist/pine-core/{p-cce6dcf0.system.entry.js → p-85f7428b.system.entry.js} +1 -1
  255. package/dist/pine-core/{p-ae840ec4.entry.js → p-87ba6d2b.entry.js} +1 -1
  256. package/dist/pine-core/p-8c0040c4.entry.js +1 -0
  257. package/dist/pine-core/{p-a659cce1.entry.js → p-8c85f53a.entry.js} +1 -1
  258. package/dist/pine-core/{p-20f39b93.system.entry.js → p-8d6fd5a7.system.entry.js} +1 -1
  259. package/dist/pine-core/{p-7247fb4f.entry.js → p-902b5790.entry.js} +1 -1
  260. package/dist/pine-core/{p-3f19666c.entry.js → p-92f648ba.entry.js} +1 -1
  261. package/dist/pine-core/{p-e620e492.system.entry.js → p-9374cf48.system.entry.js} +1 -1
  262. package/dist/pine-core/p-978b848b.system.entry.js +1 -0
  263. package/dist/pine-core/{p-babd0607.system.entry.js → p-9aaee1e9.system.entry.js} +1 -1
  264. package/dist/pine-core/p-9ba86e34.entry.js +1 -0
  265. package/dist/pine-core/{p-4abec102.system.entry.js → p-9f041a63.system.entry.js} +2 -2
  266. package/dist/pine-core/p-B1rytYxP.system.js +1 -0
  267. package/dist/pine-core/p-BKsJZTyn.js +1 -0
  268. package/dist/pine-core/p-Cr7-rJtJ.system.js +1 -0
  269. package/dist/pine-core/{p-CdwliqhD.system.js → p-DVZjHa4_.system.js} +2 -2
  270. package/dist/pine-core/p-NNDTPCWx.js +2 -0
  271. package/dist/pine-core/{p-ba88ff60.system.entry.js → p-a03c12a4.system.entry.js} +1 -1
  272. package/dist/pine-core/p-a9ef5295.entry.js +1 -0
  273. package/dist/pine-core/{p-334b7c30.entry.js → p-ac2775b5.entry.js} +1 -1
  274. package/dist/pine-core/{p-a1750a54.entry.js → p-b0058cb0.entry.js} +1 -1
  275. package/dist/pine-core/p-b0674b8d.entry.js +1 -0
  276. package/dist/pine-core/{p-1e1804ed.system.entry.js → p-b5c760c8.system.entry.js} +1 -1
  277. package/dist/pine-core/{p-3a1b7302.system.entry.js → p-b6812452.system.entry.js} +1 -1
  278. package/dist/pine-core/{p-2b0cb8c4.system.entry.js → p-b89583e7.system.entry.js} +1 -1
  279. package/dist/pine-core/{p-5584a56b.entry.js → p-b9380ce8.entry.js} +1 -1
  280. package/dist/pine-core/{p-568bb210.system.entry.js → p-ba54470a.system.entry.js} +1 -1
  281. package/dist/pine-core/{p-7a4da839.entry.js → p-bf759fc0.entry.js} +1 -1
  282. package/dist/pine-core/{p-791d357a.entry.js → p-c1932447.entry.js} +1 -1
  283. package/dist/pine-core/{p-cce83ef0.entry.js → p-c2688710.entry.js} +1 -1
  284. package/dist/pine-core/{p-46de2438.entry.js → p-c35fe2e2.entry.js} +1 -1
  285. package/dist/pine-core/{p-ef71710b.system.entry.js → p-c3748812.system.entry.js} +2 -2
  286. package/dist/pine-core/{p-59a5dd77.system.entry.js → p-c52ad43b.system.entry.js} +1 -1
  287. package/dist/pine-core/{p-3876b9be.entry.js → p-ce715993.entry.js} +1 -1
  288. package/dist/pine-core/{p-587a15ee.system.entry.js → p-cf389430.system.entry.js} +1 -1
  289. package/dist/pine-core/{p-7874fe2b.entry.js → p-d037308b.entry.js} +1 -1
  290. package/dist/pine-core/{p-52e9ec4f.entry.js → p-d281464e.entry.js} +1 -1
  291. package/dist/pine-core/{p-04f8b32a.entry.js → p-d70201bb.entry.js} +1 -1
  292. package/dist/pine-core/{p-9865431f.system.entry.js → p-d9cb26fe.system.entry.js} +1 -1
  293. package/dist/pine-core/{p-44388b8f.system.entry.js → p-dc460e2d.system.entry.js} +1 -1
  294. package/dist/pine-core/p-dc48f603.entry.js +1 -0
  295. package/dist/pine-core/{p-01dba061.entry.js → p-dcc4ee5e.entry.js} +1 -1
  296. package/dist/pine-core/{p-f366f064.entry.js → p-def5d3d3.entry.js} +1 -1
  297. package/dist/pine-core/p-e0fb06ea.system.entry.js +1 -0
  298. package/dist/pine-core/p-e4b69d10.entry.js +1 -0
  299. package/dist/pine-core/{p-ae2b466a.system.entry.js → p-e81b4d04.system.entry.js} +1 -1
  300. package/dist/pine-core/{p-c3a99f39.entry.js → p-eb42ca18.entry.js} +1 -1
  301. package/dist/pine-core/{p-59c60e5b.entry.js → p-ebe218f8.entry.js} +1 -1
  302. package/dist/pine-core/{p-889fce8a.entry.js → p-ec2c0e57.entry.js} +2 -2
  303. package/dist/pine-core/{p-fb68e503.system.entry.js → p-eed4b552.system.entry.js} +1 -1
  304. package/dist/pine-core/p-f6d1469d.entry.js +1 -0
  305. package/dist/pine-core/{p-65fb166c.system.entry.js → p-fb10caff.system.entry.js} +1 -1
  306. package/dist/pine-core/{p-0bf56f61.entry.js → p-ff1e9a32.entry.js} +1 -1
  307. package/dist/pine-core/p-ff3399ed.entry.js +1 -0
  308. package/dist/pine-core/pine-core.css +1 -1
  309. package/dist/pine-core/pine-core.esm.js +1 -1
  310. package/dist/pine-core/pine-core.js +1 -1
  311. package/dist/types/components/pds-alert/pds-alert.d.ts +6 -0
  312. package/dist/types/components/pds-avatar/pds-avatar.d.ts +30 -0
  313. package/dist/types/components/pds-button/pds-button.d.ts +1 -1
  314. package/dist/types/components/pds-chip/pds-chip.d.ts +5 -0
  315. package/dist/types/components/pds-link/pds-link.d.ts +7 -0
  316. package/dist/types/components/pds-multiselect/pds-multiselect.d.ts +67 -4
  317. package/dist/types/components/pds-tabs/pds-tab/pds-tab.d.ts +42 -0
  318. package/dist/types/components/pds-tabs/pds-tabpanel/pds-tabpanel.d.ts +5 -0
  319. package/dist/types/components/pds-tabs/pds-tabs.d.ts +25 -2
  320. package/dist/types/components/pds-textarea/pds-textarea.d.ts +6 -0
  321. package/dist/types/components/pds-toast/pds-toast.d.ts +6 -0
  322. package/dist/types/components.d.ts +321 -14
  323. package/dist/types/i18n/i18n-format.d.ts +38 -0
  324. package/dist/types/i18n/index.d.ts +2 -0
  325. package/hydrate/index.js +402 -53
  326. package/hydrate/index.mjs +402 -53
  327. package/package.json +3 -2
  328. package/dist/pine-core/p-003f91b1.system.entry.js +0 -1
  329. package/dist/pine-core/p-006398c3.system.entry.js +0 -1
  330. package/dist/pine-core/p-190ba1df.entry.js +0 -1
  331. package/dist/pine-core/p-638e9cb3.entry.js +0 -1
  332. package/dist/pine-core/p-63e0d4a5.system.entry.js +0 -1
  333. package/dist/pine-core/p-68121613.system.entry.js +0 -1
  334. package/dist/pine-core/p-6c5aacad.entry.js +0 -1
  335. package/dist/pine-core/p-73dd2a2b.entry.js +0 -1
  336. package/dist/pine-core/p-7520a715.system.entry.js +0 -1
  337. package/dist/pine-core/p-7766e970.entry.js +0 -1
  338. package/dist/pine-core/p-7b71f1bf.system.entry.js +0 -1
  339. package/dist/pine-core/p-7b954dbf.entry.js +0 -1
  340. package/dist/pine-core/p-8065c732.entry.js +0 -1
  341. package/dist/pine-core/p-829c52dc.entry.js +0 -1
  342. package/dist/pine-core/p-C61CFP22.system.js +0 -1
  343. package/dist/pine-core/p-CaRgVPt7.js +0 -2
  344. package/dist/pine-core/p-a739bdfa.entry.js +0 -1
  345. package/dist/pine-core/p-ab957ace.system.entry.js +0 -1
  346. package/dist/pine-core/p-b88be8be.entry.js +0 -1
  347. package/dist/pine-core/p-e291db30.entry.js +0 -1
  348. package/dist/pine-core/p-e77c5c08.system.entry.js +0 -1
  349. package/dist/pine-core/p-f2315f2a.entry.js +0 -1
  350. package/dist/pine-core/p-f928817f.system.entry.js +0 -1
  351. /package/dist/esm-es5/{index-D4ys0pep.js → index-BjlFq0VD.js} +0 -0
  352. /package/dist/pine-core/{p-D4ys0pep.js → p-BjlFq0VD.js} +0 -0
  353. /package/dist/pine-core/{p-C62JIZmE.system.js → p-WYNNo1N0.system.js} +0 -0
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-DBhfI2Jq.js');
3
+ var index = require('./index-BdFrBXCD.js');
4
4
 
5
- const pdsTabCss = () => `pds-tab{-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex;position:relative}.pds-tabs--pill pds-tab{-ms-flex:1;flex:1}.pds-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:var(--pine-border-width-none);-webkit-box-shadow:none;box-shadow:none;color:inherit;cursor:pointer;font-family:inherit;padding:var(--pine-dimension-none);-ms-flex-align:center;align-items:center;color:var(--pine-color-text-secondary);display:-ms-inline-flexbox;display:inline-flex;position:relative;text-decoration:none;white-space:nowrap}.pds-tab.is-active,.pds-tab[aria-selected=true]{color:var(--pine-color-text)}.pds-tab.is-active .pds-tab__content::after,.pds-tab[aria-selected=true] .pds-tab__content::after{opacity:1}.pds-tab:hover:not(:disabled){color:var(--pine-color-text)}.pds-tab:focus{outline:none}.pds-tab:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-tab:disabled,.pds-tab.is-disabled{color:var(--pine-color-text-disabled);cursor:not-allowed}.pds-tab .pds-tab__content{font-family:var(--pine-font-family-body);font-size:var(--pine-font-size);font-weight:var(--pine-font-weight-medium);letter-spacing:var(--pine-letter-spacing);line-height:var(--pine-line-height-body);-webkit-padding-after:11px;padding-block-end:11px;position:relative}.pds-tab .pds-tab__content::after{background-color:var(--pine-color-brand);content:"";height:3px;inset-block-end:var(--pine-dimension-none);inset-inline-end:var(--pine-dimension-none);inset-inline-start:var(--pine-dimension-none);opacity:0;position:absolute}.pds-tab .pds-tab-edge{display:none}.pds-tabs--availability{--color-background-tab:transparent}.pds-tabs--availability .pds-tab{background-color:var(--color-background-tab);border-radius:calc(var(--pine-dimension-xs) * 1.25) calc(var(--pine-dimension-xs) * 1.25) var(--pine-dimension-none) var(--pine-dimension-none);color:var(--pine-color-text-secondary);padding:8px 16px 13px}.pds-tabs--availability .pds-tab.is-active,.pds-tabs--availability .pds-tab[aria-selected=true]{--color-background-tab:var(--pine-color-secondary);color:var(--pine-color-text)}.pds-tabs--availability .pds-tab.is-active .pds-tab__content::after,.pds-tabs--availability .pds-tab[aria-selected=true] .pds-tab__content::after{opacity:1}.pds-tabs--availability .pds-tab.is-active .pds-tab-edge,.pds-tabs--availability .pds-tab[aria-selected=true] .pds-tab-edge{z-index:var(--pine-z-index-raised)}.pds-tabs--availability .pds-tab:hover:not(.is-active,[aria-selected=true],:disabled){--color-background-tab:var(--pine-color-secondary-hover);color:var(--pine-color-text)}.pds-tabs--availability .pds-tab:focus-visible{color:var(--pine-color-text-secondary)}.pds-tabs--availability .pds-tab:disabled,.pds-tabs--availability .pds-tab.is-disabled{--color-background-tab:transparent;color:var(--pine-color-text-disabled)}.pds-tabs--availability .pds-tab__content{-webkit-padding-after:7px;padding-block-end:7px}.pds-tabs--availability .pds-tab-edge{bottom:0;display:block;height:8px;inset-inline-end:100%;overflow:hidden;position:absolute;width:8px}.pds-tabs--availability .pds-tab-edge::before{border-radius:50%;bottom:0;-webkit-box-shadow:4px 4px 0 0 var(--color-background-tab);box-shadow:4px 4px 0 0 var(--color-background-tab);content:"";display:block;height:200%;inset-inline-end:0;position:absolute;width:200%}.pds-tabs--availability .pds-tab-edge--end{inset-inline-end:unset;inset-inline-start:100%}.pds-tabs--availability .pds-tab-edge--end::before{-webkit-box-shadow:-4px 4px 0 0 var(--color-background-tab);box-shadow:-4px 4px 0 0 var(--color-background-tab);inset-inline-end:unset;inset-inline-start:0}.pds-tabs--filter .pds-tab{background-color:var(--pine-color-background-muted);border-radius:50px;color:var(--pine-color-text);padding:6px 15px}.pds-tabs--filter .pds-tab.is-active,.pds-tabs--filter .pds-tab[aria-selected=true]{background-color:var(--pine-color-primary);color:var(--pine-color-text-primary)}.pds-tabs--filter .pds-tab.is-active:hover:not(:disabled),.pds-tabs--filter .pds-tab[aria-selected=true]:hover:not(:disabled){background-color:var(--pine-color-primary-hover)}.pds-tabs--filter .pds-tab:hover:not(.is-active,[aria-selected=true],:disabled){background-color:var(--pine-color-border-disabled)}.pds-tabs--filter .pds-tab:disabled,.pds-tabs--filter .pds-tab.is-disabled{background-color:transparent;color:var(--pine-color-text-disabled)}.pds-tabs--filter .pds-tab:disabled.is-active,.pds-tabs--filter .pds-tab:disabled[aria-selected=true],.pds-tabs--filter .pds-tab.is-disabled.is-active,.pds-tabs--filter .pds-tab.is-disabled[aria-selected=true]{background-color:var(--pine-color-primary-disabled)}.pds-tabs--filter .pds-tab__content{-webkit-padding-after:var(--pine-dimension-none);padding-block-end:var(--pine-dimension-none)}.pds-tabs--filter .pds-tab__content::after{content:unset}.pds-tabs--pill{--color-background-tab:transparent}.pds-tabs--pill .pds-tab{background-color:var(--color-background-tab);border:var(--pine-border-width-thin) solid transparent;border-radius:var(--pine-dimension-xs);color:var(--pine-color-text-muted);-ms-flex:1;flex:1;height:34px;-ms-flex-pack:center;justify-content:center}.pds-tabs--pill .pds-tab .pds-tab__content{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-webkit-padding-after:0;padding-block-end:0}.pds-tabs--pill .pds-tab.is-active,.pds-tabs--pill .pds-tab[aria-selected=true]{--color-background-tab:var(--pine-color-background-container);border-color:var(--pine-color-border);-webkit-box-shadow:var(--pine-box-shadow-100);box-shadow:var(--pine-box-shadow-100);color:var(--pine-color-text-active)}.pds-tabs--pill .pds-tab.is-active:focus-visible,.pds-tabs--pill .pds-tab[aria-selected=true]:focus-visible{border-color:var(--color-border-focus);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-tabs--pill .pds-tab.is-active,.pds-tabs--pill .pds-tab[aria-selected=true]{}.pds-tabs--pill .pds-tab.is-active .pds-tab__content::after,.pds-tabs--pill .pds-tab[aria-selected=true] .pds-tab__content::after{opacity:0}.pds-tabs--pill .pds-tab.is-active,.pds-tabs--pill .pds-tab[aria-selected=true]{}.pds-tabs--pill .pds-tab:disabled,.pds-tabs--pill .pds-tab.is-disabled{color:var(--pine-color-text-disabled)}`;
5
+ const pdsTabCss = () => `pds-tab{-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex;position:relative}.pds-tabs--pill pds-tab{-ms-flex:1;flex:1}.pds-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:var(--pine-border-width-none);-webkit-box-shadow:none;box-shadow:none;color:inherit;cursor:pointer;font-family:inherit;padding:var(--pine-dimension-none);-ms-flex-align:center;align-items:center;color:var(--pine-color-text-secondary);display:-ms-inline-flexbox;display:inline-flex;position:relative;text-decoration:none;white-space:nowrap}.pds-tab.is-active,.pds-tab[aria-selected=true]{color:var(--pine-color-text)}.pds-tab.is-active .pds-tab__content::after,.pds-tab[aria-selected=true] .pds-tab__content::after{opacity:1}.pds-tab:hover:not(:disabled,.is-disabled){color:var(--pine-color-text)}.pds-tab:focus{outline:none}.pds-tab:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-tab:disabled,.pds-tab.is-disabled{color:var(--pine-color-text-disabled);cursor:not-allowed}.pds-tab .pds-tab__content{font-family:var(--pine-font-family-body);font-size:var(--pine-font-size);font-weight:var(--pine-font-weight-medium);letter-spacing:var(--pine-letter-spacing);line-height:var(--pine-line-height-body);-webkit-padding-after:11px;padding-block-end:11px;position:relative}.pds-tab .pds-tab__content::after{background-color:var(--pine-color-brand);content:"";height:3px;inset-block-end:var(--pine-dimension-none);inset-inline-end:var(--pine-dimension-none);inset-inline-start:var(--pine-dimension-none);opacity:0;position:absolute}.pds-tab .pds-tab-edge{display:none}.pds-tabs--availability{--color-background-tab:transparent}.pds-tabs--availability .pds-tab{background-color:var(--color-background-tab);border-radius:calc(var(--pine-dimension-xs) * 1.25) calc(var(--pine-dimension-xs) * 1.25) var(--pine-dimension-none) var(--pine-dimension-none);color:var(--pine-color-text-secondary);padding:8px 16px 13px}.pds-tabs--availability .pds-tab.is-active,.pds-tabs--availability .pds-tab[aria-selected=true]{--color-background-tab:var(--pine-color-secondary);color:var(--pine-color-text)}.pds-tabs--availability .pds-tab.is-active .pds-tab__content::after,.pds-tabs--availability .pds-tab[aria-selected=true] .pds-tab__content::after{opacity:1}.pds-tabs--availability .pds-tab.is-active .pds-tab-edge,.pds-tabs--availability .pds-tab[aria-selected=true] .pds-tab-edge{z-index:var(--pine-z-index-raised)}.pds-tabs--availability .pds-tab:hover:not(.is-active,[aria-selected=true],:disabled,.is-disabled){--color-background-tab:var(--pine-color-secondary-hover);color:var(--pine-color-text)}.pds-tabs--availability .pds-tab:focus-visible{color:var(--pine-color-text-secondary)}.pds-tabs--availability .pds-tab:disabled,.pds-tabs--availability .pds-tab.is-disabled{--color-background-tab:transparent;color:var(--pine-color-text-disabled)}.pds-tabs--availability .pds-tab__content{-webkit-padding-after:7px;padding-block-end:7px}.pds-tabs--availability .pds-tab-edge{bottom:0;display:block;height:8px;inset-inline-end:100%;overflow:hidden;position:absolute;width:8px}.pds-tabs--availability .pds-tab-edge::before{border-radius:50%;bottom:0;-webkit-box-shadow:4px 4px 0 0 var(--color-background-tab);box-shadow:4px 4px 0 0 var(--color-background-tab);content:"";display:block;height:200%;inset-inline-end:0;position:absolute;width:200%}.pds-tabs--availability .pds-tab-edge--end{inset-inline-end:unset;inset-inline-start:100%}.pds-tabs--availability .pds-tab-edge--end::before{-webkit-box-shadow:-4px 4px 0 0 var(--color-background-tab);box-shadow:-4px 4px 0 0 var(--color-background-tab);inset-inline-end:unset;inset-inline-start:0}.pds-tabs--filter .pds-tab{background-color:var(--pine-color-background-muted);border-radius:50px;color:var(--pine-color-text);padding:6px 15px}.pds-tabs--filter .pds-tab.is-active,.pds-tabs--filter .pds-tab[aria-selected=true]{background-color:var(--pine-color-primary);color:var(--pine-color-text-primary)}.pds-tabs--filter .pds-tab.is-active:hover:not(:disabled,.is-disabled),.pds-tabs--filter .pds-tab[aria-selected=true]:hover:not(:disabled,.is-disabled){background-color:var(--pine-color-primary-hover)}.pds-tabs--filter .pds-tab:hover:not(.is-active,[aria-selected=true],:disabled,.is-disabled){background-color:var(--pine-color-border-disabled)}.pds-tabs--filter .pds-tab:disabled,.pds-tabs--filter .pds-tab.is-disabled{background-color:transparent;color:var(--pine-color-text-disabled)}.pds-tabs--filter .pds-tab:disabled.is-active,.pds-tabs--filter .pds-tab:disabled[aria-selected=true],.pds-tabs--filter .pds-tab.is-disabled.is-active,.pds-tabs--filter .pds-tab.is-disabled[aria-selected=true]{background-color:var(--pine-color-primary-disabled)}.pds-tabs--filter .pds-tab__content{-webkit-padding-after:var(--pine-dimension-none);padding-block-end:var(--pine-dimension-none)}.pds-tabs--filter .pds-tab__content::after{content:unset}.pds-tabs--pill{--color-background-tab:transparent}.pds-tabs--pill .pds-tab{background-color:var(--color-background-tab);border:var(--pine-border-width-thin) solid transparent;border-radius:var(--pine-dimension-xs);color:var(--pine-color-text-muted);-ms-flex:1;flex:1;height:34px;-ms-flex-pack:center;justify-content:center}.pds-tabs--pill .pds-tab .pds-tab__content{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-webkit-padding-after:0;padding-block-end:0}.pds-tabs--pill .pds-tab.is-active,.pds-tabs--pill .pds-tab[aria-selected=true]{--color-background-tab:var(--pine-color-background-container);border-color:var(--pine-color-border);-webkit-box-shadow:var(--pine-box-shadow-100);box-shadow:var(--pine-box-shadow-100);color:var(--pine-color-text-active)}.pds-tabs--pill .pds-tab.is-active:focus-visible,.pds-tabs--pill .pds-tab[aria-selected=true]:focus-visible{border-color:var(--color-border-focus);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-tabs--pill .pds-tab.is-active,.pds-tabs--pill .pds-tab[aria-selected=true]{}.pds-tabs--pill .pds-tab.is-active .pds-tab__content::after,.pds-tabs--pill .pds-tab[aria-selected=true] .pds-tab__content::after{opacity:0}.pds-tabs--pill .pds-tab.is-active,.pds-tabs--pill .pds-tab[aria-selected=true]{}.pds-tabs--pill .pds-tab:disabled,.pds-tabs--pill .pds-tab.is-disabled{color:var(--pine-color-text-disabled)}`;
6
6
 
7
7
  const PdsTab = class {
8
8
  constructor(hostRef) {
@@ -13,6 +13,13 @@ const PdsTab = class {
13
13
  * @defaultValue false
14
14
  */
15
15
  this.disabled = false;
16
+ /**
17
+ * Marks this tab as the current one in navigation mode (`href` set). Applies
18
+ * the active treatment and `aria-current="page"`. Ignored in panel mode, where
19
+ * the active tab is derived from the parent's `activeTabName`.
20
+ * @defaultValue false
21
+ */
22
+ this.active = false;
16
23
  /**
17
24
  * Keeps track of the tabpanel selected state, this property is passed by parent component
18
25
  */
@@ -24,18 +31,46 @@ const PdsTab = class {
24
31
  return;
25
32
  this.pdsTabClick.emit([index, parentComponentId]);
26
33
  }
34
+ // An empty string is treated as "no destination" everywhere (isNav fallback,
35
+ // href attribute, role) so a nav tab never renders `href=""` (which would
36
+ // navigate to the current page).
37
+ get hasHref() {
38
+ return this.href != null && this.href !== '';
39
+ }
40
+ get isNav() {
41
+ var _a;
42
+ // The parent `pds-tabs` is authoritative when present (via `navMode`), so its
43
+ // tabs share one mode. Standalone, fall back to a usable `href`.
44
+ return (_a = this.navMode) !== null && _a !== void 0 ? _a : this.hasHref;
45
+ }
46
+ get isActive() {
47
+ // Navigation mode is server-driven via `active`; panel mode is parent-driven
48
+ // via `selected` (from `activeTabName`).
49
+ return this.isNav ? this.active : this.selected;
50
+ }
27
51
  classNames() {
28
52
  const classes = [
29
53
  'pds-tab',
30
- this.selected && 'is-active',
54
+ this.isActive && 'is-active',
31
55
  this.disabled && 'is-disabled',
32
56
  ];
33
57
  return classes.filter(Boolean).join(' ');
34
58
  }
35
59
  render() {
36
- const availabilityTabEdgeInlineStart = (index.h("span", { key: '934d84846bd84471047f9ab7503e5bb151426cbc', class: "pds-tab-edge", role: "presentation" }));
37
- const availabilityTabEdgeInlineEnd = (index.h("span", { key: 'e35b9da7b312ed95dab7bf803c40a22b3485ee05', class: "pds-tab-edge pds-tab-edge--end", role: "presentation" }));
38
- return (index.h(index.Host, { key: '310188521230d3e16cff23b857769c4b5d04fd8d', variant: this.variant, slot: "tabs", index: this.index }, index.h("button", { key: '9df38c2aa1fa29487fdce62ce7dc5f67df6bcde1', role: "tab", id: this.parentComponentId + "__" + this.name, "aria-controls": this.parentComponentId + "__" + this.name + "-panel", tabindex: this.disabled ? "-1" : (this.selected ? "0" : "-1"), "aria-selected": this.selected ? "true" : "false", "aria-disabled": this.disabled ? "true" : null, disabled: this.disabled, class: this.classNames(), onClick: this.onTabClick.bind(this, this.index, this.parentComponentId) }, this.variant === "availability" && availabilityTabEdgeInlineStart, this.variant === "availability" && availabilityTabEdgeInlineEnd, index.h("div", { key: '4936599dd547f236880ea9a0ccabc4b50836d1d5', class: "pds-tab__content" }, index.h("slot", { key: '567388faf912bb307676cea9a4626ce9669087dd' })))));
60
+ const availabilityTabEdgeInlineStart = (index.h("span", { class: "pds-tab-edge", role: "presentation" }));
61
+ const availabilityTabEdgeInlineEnd = (index.h("span", { class: "pds-tab-edge pds-tab-edge--end", role: "presentation" }));
62
+ const content = (index.h(index.Fragment, null, this.variant === "availability" && availabilityTabEdgeInlineStart, this.variant === "availability" && availabilityTabEdgeInlineEnd, index.h("div", { class: "pds-tab__content" }, index.h("slot", null))));
63
+ // Navigation mode: a real anchor, so keyboard activation and navigation are
64
+ // native (and Turbo-driven when framed) with no controller — and the current
65
+ // item carries `aria-current="page"` rather than `role="tab"`/`aria-selected`.
66
+ if (this.isNav) {
67
+ return (index.h(index.Host, { variant: this.variant, slot: "tabs", index: this.index }, index.h("a", { href: this.disabled || !this.hasHref ? undefined : this.href,
68
+ // An anchor without an href (disabled, or forced into nav mode with no
69
+ // usable href) loses its implicit link role; restore it explicitly so
70
+ // assistive tech still announces the item rather than as plain text.
71
+ role: this.disabled || !this.hasHref ? "link" : undefined, id: this.parentComponentId + "__" + this.name, class: this.classNames(), target: this.target, rel: this.target === "_blank" ? "noopener noreferrer" : undefined, "aria-current": this.isActive ? "page" : undefined, "aria-disabled": this.disabled ? "true" : null, "data-turbo-frame": this.turboFrame || undefined, "data-turbo-action": this.turboAction || undefined }, content)));
72
+ }
73
+ return (index.h(index.Host, { variant: this.variant, slot: "tabs", index: this.index }, index.h("button", { role: "tab", id: this.parentComponentId + "__" + this.name, "aria-controls": this.parentComponentId + "__" + this.name + "-panel", tabindex: this.disabled ? "-1" : (this.selected ? "0" : "-1"), "aria-selected": this.selected ? "true" : "false", "aria-disabled": this.disabled ? "true" : null, disabled: this.disabled, class: this.classNames(), onClick: this.onTabClick.bind(this, this.index, this.parentComponentId) }, content)));
39
74
  }
40
75
  get el() { return index.getElement(this); }
41
76
  };
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-DBhfI2Jq.js');
3
+ var index = require('./index-BdFrBXCD.js');
4
4
 
5
5
  const pdsTableBodyCss = () => `:host{border-color:inherit;display:table-row-group;vertical-align:middle}`;
6
6
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-DBhfI2Jq.js');
3
+ var index = require('./index-BdFrBXCD.js');
4
4
  var scroll = require('./scroll-2XcoE_6Q.js');
5
5
  var truncationTooltip = require('./truncation-tooltip-CVzAha5B.js');
6
6
  require('./floating-ui.dom-BZk7Blsu.js');
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-DBhfI2Jq.js');
4
- var index$1 = require('./index-DGBoDsAL.js');
3
+ var index = require('./index-BdFrBXCD.js');
4
+ var index$1 = require('./index-CKNNY-lQ.js');
5
5
  var scroll = require('./scroll-2XcoE_6Q.js');
6
6
 
7
7
  const pdsTableHeadCellCss = () => `:host{--border-head-cell-default:var(--pine-border-width-thin) solid var(--pine-color-border-subtle);--box-shadow-default:3px 3px 6px -2px rgba(0, 0, 0, 0.1);-webkit-border-after:var(--border-head-cell-default);border-block-end:var(--border-head-cell-default);color:var(--pine-color-text);display:table-cell;font-family:var(--pine-font-family-body);font-size:var(--pine-font-size);font-weight:var(--pine-font-weight-regular);letter-spacing:var(--pine-letter-spacing);line-height:var(--pine-line-height-body);padding:var(--pine-dimension-sm);position:relative;text-align:start;vertical-align:inherit}:host(.is-compact){padding-block:var(--pine-dimension-2xs)}:host(.is-fixed){background:var(--pine-color-background-container);inset-inline-start:var(--pine-dimension-none);position:-webkit-sticky;position:sticky;z-index:var(--pine-z-index-raised)}:host(.is-fixed.has-head-background){background-color:var(--pine-color-background-subtle)}:host(.has-head-border){-webkit-border-before:var(--border-head-cell-default);border-block-start:var(--border-head-cell-default)}:host-context([dir=rtl]){--box-shadow-default:-3px 3px 6px -2px rgba(0, 0, 0, 0.1)}:host(.has-scrolled.is-fixed){-webkit-box-shadow:var(--box-shadow-default);box-shadow:var(--box-shadow-default)}:host(.is-sortable){cursor:pointer}:host(.is-sortable) pds-icon{-webkit-margin-start:var(--pine-dimension-2xs);margin-inline-start:var(--pine-dimension-2xs);-webkit-padding-before:2px;padding-block-start:2px;position:absolute}:host(.is-sortable:hover),:host(.is-active){color:var(--pine-color-text-strong)}:host(.pds-table-head-cell--align-start){text-align:start}:host(.pds-table-head-cell--align-center){text-align:center}:host(.pds-table-head-cell--align-end){text-align:end}:host(.pds-table-head-cell--align-justify){text-align:justify}`;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-DBhfI2Jq.js');
3
+ var index = require('./index-BdFrBXCD.js');
4
4
  var closest = require('./closest-BZXvuB_Y.js');
5
5
 
6
6
  const pdsTableHeadCss = () => `:host{--border-head-default:var(--pine-border-width-thin) solid var(--pine-color-background-subtle);border-color:inherit;-webkit-box-sizing:border-box;box-sizing:border-box;display:table-header-group;vertical-align:middle}:host::part(checkbox-cell){background-color:var(--pine-color-background-container);inset-inline-start:var(--pine-dimension-none);position:-webkit-sticky;position:sticky;z-index:var(--pine-z-index-raised)}:host pds-table-checkbox-cell{-webkit-border-after:var(--border-head-default);border-block-end:var(--border-head-default)}:host([border]){-webkit-border-after:var(--pine-border-width-thin) solid var(--pine-color-border-subtle);border-block-end:var(--pine-border-width-thin) solid var(--pine-color-border-subtle);-webkit-border-before:var(--pine-border-width-thin) solid var(--pine-color-border-subtle);border-block-start:var(--pine-border-width-thin) solid var(--pine-color-border-subtle)}:host([border]) pds-table-head-cell{-webkit-border-after:var(--pine-border-width-thin) solid var(--pine-color-border-subtle);border-block-end:var(--pine-border-width-thin) solid var(--pine-color-border-subtle);-webkit-border-before:var(--pine-border-width-thin) solid var(--pine-color-border-subtle);border-block-start:var(--pine-border-width-thin) solid var(--pine-color-border-subtle)}:host([background]){background-color:var(--pine-color-background-subtle)}:host([background]) pds-table-head-cell{background-color:var(--pine-color-background-subtle)}`;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-DBhfI2Jq.js');
3
+ var index = require('./index-BdFrBXCD.js');
4
4
  var closest = require('./closest-BZXvuB_Y.js');
5
5
 
6
6
  const pdsTableRowCss = () => `:host{--color-background-interactive:var(--pine-color-background-subtle);border-color:inherit;display:table-row;vertical-align:inherit}:host::part(checkbox-cell){background-color:var(--pine-color-background-container);inset-inline-start:var(--pine-dimension-none);position:-webkit-sticky;position:sticky;z-index:var(--pine-z-index-raised)}:host(:hover),:host(:hover)::part(checkbox-cell),:host(:hover) ::slotted(pds-table-cell),:host(.is-selected),:host(.is-selected)::part(checkbox-cell),:host(.is-selected) ::slotted(pds-table-cell){background:var(--color-background-interactive)}:host(.has-divider) ::slotted(pds-table-cell),:host(.has-divider) pds-table-cell{-webkit-border-after:var(--pine-border-width-thin) solid var(--pine-color-border-subtle);border-block-end:var(--pine-border-width-thin) solid var(--pine-color-border-subtle)}:host(.has-divider.is-last-row) ::slotted(pds-table-cell),:host(.has-divider.is-last-row) pds-table-cell{-webkit-border-after:0;border-block-end:0}`;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-DBhfI2Jq.js');
3
+ var index = require('./index-BdFrBXCD.js');
4
4
  var scroll = require('./scroll-2XcoE_6Q.js');
5
5
 
6
6
  const pdsTableCss = () => `@charset "UTF-8";:host{--color-background-default:var(--pine-color-background-container);background:var(--color-background-default);border-collapse:separate;border-radius:inherit;-webkit-box-sizing:border-box;box-sizing:border-box;display:table;isolation:isolate;width:100%}:host(:focus-visible){outline:var(--pine-outline-focus)}:host(.pds-table-responsive-host){border-radius:inherit;-webkit-box-sizing:border-box !important;box-sizing:border-box !important;display:block !important;max-width:100% !important;overflow:hidden !important;position:relative !important;width:100% !important}.pds-table-responsive-container{border-radius:inherit;-webkit-box-sizing:border-box !important;box-sizing:border-box !important;overflow-x:auto !important;overflow-y:visible !important;position:relative !important;width:100% !important}.pds-table-responsive-wrapper{border-radius:inherit;-webkit-box-sizing:border-box !important;box-sizing:border-box !important;display:block !important;position:relative !important;width:100% !important}.pds-table-responsive-wrapper .pds-table{display:table !important;min-width:-webkit-max-content !important;min-width:-moz-max-content !important;min-width:max-content !important;table-layout:auto !important;white-space:nowrap !important;width:100% !important}.scroll-shadow-left,.scroll-shadow-right{height:100%;opacity:0;pointer-events:none;position:absolute;top:0;-webkit-transition:opacity 0.1s ease;transition:opacity 0.1s ease;width:4px;z-index:var(--pine-z-index)}.scroll-shadow-left{background:-webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.1)), to(transparent));background:linear-gradient(to right, rgba(0, 0, 0, 0.1), transparent);border-end-start-radius:inherit;border-start-start-radius:inherit;inset-inline-start:0}:host-context([dir=rtl]) .scroll-shadow-left{background:-webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.1)), to(transparent));background:linear-gradient(to left, rgba(0, 0, 0, 0.1), transparent)}.scroll-shadow-right{background:-webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.1)), to(transparent));background:linear-gradient(to left, rgba(0, 0, 0, 0.1), transparent);border-end-end-radius:inherit;border-start-end-radius:inherit;inset-inline-end:0}:host-context([dir=rtl]) .scroll-shadow-right{background:-webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.1)), to(transparent));background:linear-gradient(to right, rgba(0, 0, 0, 0.1), transparent)}`;
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-DBhfI2Jq.js');
3
+ var index = require('./index-BdFrBXCD.js');
4
4
 
5
- const pdsTabpanelCss = () => `:host{display:block}.pds-tabpanel{display:none;margin-top:var(--tabs-dimension-panel-margin-top);padding:var(--tabs-dimension-panel-padding)}.pds-tabpanel:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-tabpanel.is-active{display:block}`;
5
+ const pdsTabpanelCss = () => `:host{display:block}:host(.pds-tabpanel--stretch-active){-ms-flex:1 1 auto;flex:1 1 auto;min-block-size:0}:host(.pds-tabpanel--stretch-active) .pds-tabpanel.is-active{block-size:100%}.pds-tabpanel{display:none;margin-top:var(--tabs-dimension-panel-margin-top);padding:var(--tabs-dimension-panel-padding)}.pds-tabpanel:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-tabpanel.is-active{display:block}`;
6
6
 
7
7
  const PdsTabpanel = class {
8
8
  constructor(hostRef) {
@@ -12,9 +12,14 @@ const PdsTabpanel = class {
12
12
  */
13
13
  /** @internal */
14
14
  this.selected = false; // eslint-disable-line @stencil-community/strict-mutable
15
+ /**
16
+ * Keeps track of the parent `stretch` state so the active panel can fill height, this property is passed by parent component
17
+ */
18
+ /** @internal */
19
+ this.stretch = false;
15
20
  }
16
21
  render() {
17
- return (index.h(index.Host, { key: '6ba83ea71c899d61f67884780731591a05aa1894', slot: "tabpanels" }, index.h("div", { key: 'abaa610f7a68a3977303e08f1221976ae2840272', 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" }, index.h("slot", { key: 'b80ecc1380f424d545b31843b53de1b2854e9f28' }))));
22
+ return (index.h(index.Host, { key: '88dfc12ce8b2413824e6d3425aa38674fa14c764', slot: "tabpanels", class: this.stretch && this.selected ? "pds-tabpanel--stretch-active" : undefined }, index.h("div", { key: 'bcfe8be6480dc253b10d63d6e37caacec4a8fe7f', 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" }, index.h("slot", { key: '96ee87a0917e5f538a5c053045a5d6821684cf3a' }))));
18
23
  }
19
24
  get el() { return index.getElement(this); }
20
25
  };
@@ -1,12 +1,31 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-DBhfI2Jq.js');
3
+ var index = require('./index-BdFrBXCD.js');
4
4
 
5
- const pdsTabsCss = () => `:host{--tabs-dimension-panel-margin-top:var(--pine-dimension-none);--tabs-dimension-panel-padding:0;display:block}.pds-tabs__tablist{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:var(--pine-dimension-md)}:host(.pds-tabs--availability) .pds-tabs__tablist{gap:var(--pine-dimension-xs)}:host(.pds-tabs--filter) .pds-tabs__tablist{gap:var(--pine-dimension-sm)}:host(.pds-tabs--pill) .pds-tabs__tablist{background-color:var(--pine-color-background-app);border:var(--pine-border-width-thin) solid var(--pine-color-border-subtle);border-radius:var(--pine-dimension-100);display:-ms-inline-flexbox;display:inline-flex;display:-ms-flexbox;display:flex;gap:0;height:var(--pine-dimension-450)}`;
5
+ const pdsTabsCss = () => `:host{--tabs-dimension-panel-margin-top:var(--pine-dimension-none);--tabs-dimension-panel-padding:0;display:block}.pds-tabs__tablist{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:var(--pine-dimension-md)}:host(.pds-tabs--divider) .pds-tabs__tablist{-webkit-border-after:var(--pine-border-width-thin) solid var(--pine-color-border-subtle);border-block-end:var(--pine-border-width-thin) solid var(--pine-color-border-subtle)}:host(.pds-tabs--stretch){block-size:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}:host(.pds-tabs--stretch) .pds-tabs__tablist{-ms-flex:0 0 auto;flex:0 0 auto}:host(.pds-tabs--availability) .pds-tabs__tablist{gap:var(--pine-dimension-xs)}:host(.pds-tabs--filter) .pds-tabs__tablist{gap:var(--pine-dimension-sm)}:host(.pds-tabs--pill) .pds-tabs__tablist{background-color:var(--pine-color-background-app);border:var(--pine-border-width-thin) solid var(--pine-color-border-subtle);border-radius:var(--pine-dimension-100);display:-ms-inline-flexbox;display:inline-flex;display:-ms-flexbox;display:flex;gap:0;height:var(--pine-dimension-450)}`;
6
6
 
7
7
  const PdsTabs = class {
8
8
  constructor(hostRef) {
9
9
  index.registerInstance(this, hostRef);
10
+ /**
11
+ * Adds a divider rule beneath the tab list.
12
+ * @defaultValue false
13
+ */
14
+ this.divider = false;
15
+ /**
16
+ * Stretches the component so the active tab panel fills the remaining height.
17
+ * Requires the component to have a constrained height (e.g. a flex parent).
18
+ * @defaultValue false
19
+ */
20
+ this.stretch = false;
21
+ /**
22
+ * Renders the tab strip as navigation instead of an in-page panel switcher: each
23
+ * `pds-tab` becomes an `<a href>` inside a `<nav>` landmark (with `aria-current`
24
+ * on the `active` tab) rather than a `role="tab"` button over a `pds-tabpanel`.
25
+ * Give every `pds-tab` an `href` and omit `pds-tabpanel`s.
26
+ * @defaultValue false
27
+ */
28
+ this.nav = false;
10
29
  }
11
30
  tabClickHandler(event) {
12
31
  if (this.componentId === event.detail[1]) {
@@ -15,6 +34,10 @@ const PdsTabs = class {
15
34
  }
16
35
  }
17
36
  handleKeyDown(ev) {
37
+ // Navigation mode uses real links: Tab moves focus, Enter follows the href.
38
+ // The roving/arrow model is a panel-mode (role=tab) concern only.
39
+ if (this.isNav)
40
+ return;
18
41
  const keySet = ["ArrowLeft", "ArrowRight", "Home", "End"];
19
42
  // Only handle keyboard navigation if the event originated from a tab button
20
43
  // that belongs to THIS tabs component
@@ -27,6 +50,32 @@ const PdsTabs = class {
27
50
  this.moveActiveTab(ev.key);
28
51
  }
29
52
  }
53
+ // Navigation mode is an explicit, single source of truth: `nav` drives both the
54
+ // container (<nav> of links vs role=tablist of buttons) and every child tab (via
55
+ // `navMode`), so the tabs present when the strip initializes can't mix the two.
56
+ // (Child discovery is load-time only, like `variant`/`id`; tabs added after load
57
+ // aren't managed.)
58
+ get isNav() {
59
+ return !!this.nav;
60
+ }
61
+ // `nav` and per-tab `href` should agree. Warn on the two authoring mistakes
62
+ // rather than silently rendering a link with no destination, or ignoring an href.
63
+ warnOnNavConfig() {
64
+ var _a;
65
+ if (!((_a = this.tabs) === null || _a === void 0 ? void 0 : _a.length))
66
+ return;
67
+ // An empty `href=""` is not a usable destination, so it counts as missing.
68
+ const withHref = this.tabs.filter((tab) => {
69
+ const href = tab.getAttribute('href');
70
+ return href != null && href !== '';
71
+ }).length;
72
+ if (this.nav && withHref < this.tabs.length) {
73
+ console.warn('pds-tabs: `nav` is set, so every pds-tab needs an `href`.');
74
+ }
75
+ else if (!this.nav && withHref > 0) {
76
+ console.warn('pds-tabs: a pds-tab has an `href` but `nav` is not set — add `nav` to pds-tabs for navigation mode; the href is ignored in panel mode.');
77
+ }
78
+ }
30
79
  moveActiveTab(key) {
31
80
  const firstTabNumber = 0;
32
81
  const lastTabNumber = this.tabs.length - 1;
@@ -65,13 +114,25 @@ const PdsTabs = class {
65
114
  child['index'] = index;
66
115
  }
67
116
  passPropsToChildren() {
117
+ var _a;
118
+ // Panel mode needs a selected tab so the tablist stays keyboard-reachable
119
+ // (an all-unselected tablist has every button at tabindex="-1"). Default to
120
+ // the first ENABLED tab when the consumer omits `activeTabName` — a disabled
121
+ // tab is itself tabindex="-1", so selecting it would recreate the trap. Nav
122
+ // mode has no roving/selection, so it's left unset there.
123
+ if (!this.nav && this.activeTabName == null && this.tabs.length) {
124
+ const firstEnabled = (_a = this.tabs.find((tab) => !tab.disabled)) !== null && _a !== void 0 ? _a : this.tabs[0];
125
+ this.activeTabName = firstEnabled.name;
126
+ }
68
127
  this.tabs.forEach((child, index) => {
69
128
  if (this.activeTabName === child.name)
70
129
  this.activeTabIndex = index;
71
130
  this.propGeneration(child, index);
131
+ child.navMode = this.nav;
72
132
  });
73
133
  this.tabPanels.forEach((child) => {
74
134
  this.propGeneration(child);
135
+ child.stretch = this.stretch;
75
136
  });
76
137
  }
77
138
  classNames() {
@@ -80,17 +141,27 @@ const PdsTabs = class {
80
141
  const variantClassName = `pds-tabs--${this.variant}`;
81
142
  className += ' ' + variantClassName;
82
143
  }
144
+ if (this.divider) {
145
+ className += ' pds-tabs--divider';
146
+ }
147
+ if (this.stretch) {
148
+ className += ' pds-tabs--stretch';
149
+ }
83
150
  return className;
84
151
  }
85
152
  ;
86
153
  componentWillLoad() {
87
154
  this.findAllChildren();
155
+ this.warnOnNavConfig();
88
156
  }
89
157
  componentWillRender() {
90
158
  this.passPropsToChildren();
91
159
  }
92
160
  render() {
93
- return (index.h(index.Host, { key: '213dfbe8f2828b430ab81dce23f43c2137206861', "active-tab-name": this.activeTabName, class: this.classNames(), id: this.componentId }, index.h("div", { key: '68989e852e2eeed180f91e5ac901c4318d6c0d70', class: "pds-tabs__tablist", role: "tablist", "aria-label": this.tablistLabel, part: "tab-list" }, index.h("slot", { key: '4a06996745c049fdaf830460e8d57caefd50900b', name: "tabs" })), index.h("slot", { key: 'e0558392bff0955defb133b36dd4e7360f33acce', name: "tabpanels" })));
161
+ // Navigation mode: a <nav> landmark of links (aria-current marks the current
162
+ // page). Panel mode: the ARIA tablist of role=tab buttons over tabpanels.
163
+ const tabList = this.isNav ? (index.h("nav", { class: "pds-tabs__tablist", "aria-label": this.tablistLabel || undefined, part: "tab-list" }, index.h("slot", { name: "tabs" }))) : (index.h("div", { class: "pds-tabs__tablist", role: "tablist", "aria-label": this.tablistLabel, part: "tab-list" }, index.h("slot", { name: "tabs" })));
164
+ return (index.h(index.Host, { key: '97bb6d788bd7bdf393b46eaecea612d9b0c9dee4', "active-tab-name": this.activeTabName, class: this.classNames(), id: this.componentId }, tabList, index.h("slot", { key: '252855bfa496bc3e04fbe6dc0bcb7597c7360407', name: "tabpanels" })));
94
165
  }
95
166
  get el() { return index.getElement(this); }
96
167
  };
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-DBhfI2Jq.js');
3
+ var index = require('./index-BdFrBXCD.js');
4
4
  var utils = require('./utils-7jx8T2mW.js');
5
5
  var truncationTooltip = require('./truncation-tooltip-CVzAha5B.js');
6
6
  require('./floating-ui.dom-BZk7Blsu.js');
@@ -105,7 +105,7 @@ const PdsText = class {
105
105
  ? `pds-text--decoration-${this.decoration}`
106
106
  : ''}
107
107
  `;
108
- return (index.h(Tag, { key: '36278c42c1669a3d2ff3ac2973727c03f2498023', ref: (el) => (this.contentEl = el), style: this.color && utils.setColor(this.color), class: typeClasses, part: "content", tabIndex: this.truncate ? 0 : undefined }, index.h("slot", { key: 'cb3c83b54cb84fe485fd14c7073148fc037d78cd' })));
108
+ return (index.h(Tag, { key: '9ae3d5a57202ca1308c69b76645168fc8e18953b', ref: (el) => (this.contentEl = el), style: this.color && utils.setColor(this.color), class: typeClasses, part: "content", tabIndex: this.truncate ? 0 : undefined }, index.h("slot", { key: 'e6c95b8240690a9c83927e206096bbd7615dd4d2' })));
109
109
  }
110
110
  get el() { return index.getElement(this); }
111
111
  static get watchers() { return {
@@ -1,10 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-DBhfI2Jq.js');
3
+ var index = require('./index-BdFrBXCD.js');
4
4
  var form = require('./form-CpM5Z8q7.js');
5
5
  var utils = require('./utils-7jx8T2mW.js');
6
6
  var attributes = require('./attributes-oNMnBEnP.js');
7
- var index$1 = require('./index-DGBoDsAL.js');
7
+ var index$1 = require('./index-CKNNY-lQ.js');
8
+ var i18nFormat = require('./i18n-format-CrpIhahc.js');
8
9
 
9
10
  const labelCss = () => `: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)}`;
10
11
 
@@ -55,6 +56,12 @@ const PdsTextarea = class {
55
56
  * If true, the textarea has action content in the label area
56
57
  */
57
58
  this.hasAction = false;
59
+ /**
60
+ * Template for the character-counter's accessible label. Pass a translated
61
+ * string to localize it; `{current}` and `{max}` are interpolated.
62
+ * @defaultValue '{current} of {max} characters'
63
+ */
64
+ this.characterCountLabel = '{current} of {max} characters';
58
65
  this.onBlur = (ev) => {
59
66
  this.hasFocus = false;
60
67
  if (this.focusedValue !== this.value) {
@@ -252,7 +259,7 @@ const PdsTextarea = class {
252
259
  return null;
253
260
  }
254
261
  const currentLength = this.getValue().length;
255
- return (index.h("div", { class: "pds-textarea__character-counter", ref: (el) => this.characterCounter = el, role: "status", "aria-live": "polite", "aria-label": `${currentLength} of ${this.maxLength} characters` }, currentLength, " / ", this.maxLength));
262
+ return (index.h("div", { class: "pds-textarea__character-counter", ref: (el) => this.characterCounter = el, role: "status", "aria-live": "polite", "aria-label": i18nFormat.formatMessage(this.characterCountLabel, { current: currentLength, max: this.maxLength }) }, currentLength, " / ", this.maxLength));
256
263
  }
257
264
  renderAction() {
258
265
  const hasAction = this.el.querySelector('[slot="action"]') !== null;
@@ -306,10 +313,10 @@ const PdsTextarea = class {
306
313
  }
307
314
  render() {
308
315
  const value = this.getValue();
309
- return (index.h(index.Host, { key: '09726ef6454fe84a5c8d0ea25c6e8a7a6da128f9', "aria-disabled": this.disabled ? 'true' : null, "aria-readonly": this.readonly ? 'true' : null, "has-action": this.hasAction && !this.hideLabel ? 'true' : null }, index.h("div", { key: '6244104f11d26b25a908fbaf13a815988a3c33d9', class: "pds-textarea" }, this.label &&
310
- index.h("div", { key: '5dd7f6caedd7ebf5ecaacf8d111ec5e2426e84ae', class: "pds-textarea__label-wrapper" }, index.h("label", { key: 'd19f62cd28612423abf0d5696ff1cd88f39d32fe', htmlFor: this.componentId }, index.h("span", { key: '37f4e9e34ae3205bafa5f1bc8574a98d3a90060d', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), !this.hideLabel && this.renderAction()), index.h("div", { key: '4c3c8fadc5596630485ee1775f5d87d77c11d95b', class: "pds-textarea__field-wrapper" }, index.h("textarea", Object.assign({ key: 'a60be5f3d362cb9bcd2ecf5af16ffc467fc8322a', ref: (el) => this.nativeTextarea = el, "aria-describedby": form.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, maxlength: this.maxLength, 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, onKeyDown: this.onKeyDown }, this.inheritedAttributes), value), this.renderCharacterCounter()), this.helperMessage &&
311
- index.h("p", { key: 'ae03337ef85ac2a3995e967fe671e0ad2c352710', class: "pds-textarea__helper-message", id: form.messageId(this.componentId, 'helper') }, this.helperMessage), this.invalid &&
312
- index.h("p", { key: 'a2bda9a477e7d2b81862833da43158a626d8cc6f', "aria-live": "assertive", class: "pds-textarea__error-message", id: form.messageId(this.componentId, 'error') }, index.h("pds-icon", { key: '5ac785e8012aeb49dd0b1c5823233671531b0a7a', icon: index$1.danger, size: "small" }), this.errorMessage))));
316
+ return (index.h(index.Host, { key: 'd13869d989752c76c80a46ebb0291df2c0546cc2', "aria-disabled": this.disabled ? 'true' : null, "aria-readonly": this.readonly ? 'true' : null, "has-action": this.hasAction && !this.hideLabel ? 'true' : null }, index.h("div", { key: '19454f642896485dc22bc5dac8b6ed3b4ae5627a', class: "pds-textarea" }, this.label &&
317
+ index.h("div", { key: 'def9e117ba3667a542e8cec32c2eabfa701c3305', class: "pds-textarea__label-wrapper" }, index.h("label", { key: '893a1db325ece460c627e72b765289098823e49e', htmlFor: this.componentId }, index.h("span", { key: 'd047f17441aa81800057d7403af15f6e38c53f6c', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), !this.hideLabel && this.renderAction()), index.h("div", { key: '7d0f2fab56fee9b9d9e0facabc7e607cb6bee23b', class: "pds-textarea__field-wrapper" }, index.h("textarea", Object.assign({ key: 'a3ecb78c5b8f42f8350abe623bacb55be6c4a0c0', ref: (el) => this.nativeTextarea = el, "aria-describedby": form.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, maxlength: this.maxLength, 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, onKeyDown: this.onKeyDown }, this.inheritedAttributes), value), this.renderCharacterCounter()), this.helperMessage &&
318
+ index.h("p", { key: 'b5229a6ef0b2c4ee5dcb820ce2b9bbf6334adef8', class: "pds-textarea__helper-message", id: form.messageId(this.componentId, 'helper') }, this.helperMessage), this.invalid &&
319
+ index.h("p", { key: '8e6dfa97496d553b8e1e2a50c1221fad3ddb539a', "aria-live": "assertive", class: "pds-textarea__error-message", id: form.messageId(this.componentId, 'error') }, index.h("pds-icon", { key: 'f3ed2677239e6d135480cf55d1d908936d746322', icon: index$1.danger, size: "small" }), this.errorMessage))));
313
320
  }
314
321
  static get formAssociated() { return true; }
315
322
  get el() { return index.getElement(this); }
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-DBhfI2Jq.js');
3
+ var index = require('./index-BdFrBXCD.js');
4
4
 
5
5
  const pdsToastCss = () => `:host{--animation-duration:var(--pine-motion-duration-slow);--animation-timing:var(--pine-motion-easing-in-out);--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;}`;
6
6
 
@@ -30,6 +30,12 @@ const PdsToast = class {
30
30
  * @default 'default'
31
31
  */
32
32
  this.type = 'default';
33
+ /**
34
+ * Accessible label for the dismiss button. Pass a translated string to
35
+ * localize it; defaults to English.
36
+ * @defaultValue 'Dismiss message'
37
+ */
38
+ this.dismissLabel = 'Dismiss message';
33
39
  /**
34
40
  * Whether the toast is currently visible.
35
41
  */
@@ -119,13 +125,13 @@ const PdsToast = class {
119
125
  return this.icon && index.h("pds-icon", { name: this.icon, class: "pds-toast__icon" });
120
126
  }
121
127
  render() {
122
- return (index.h(index.Host, { key: '7768cbf398d4592b774734abdf5e9f1f4d4fb7e8', hidden: !this.isVisible }, index.h("div", { key: 'c17b00c76bd42d1040b8ef08a354e10346a79aa4', class: {
128
+ return (index.h(index.Host, { key: '87c9b15656a2765eb9e722c85dba5c5edbe07c42', hidden: !this.isVisible }, index.h("div", { key: 'bd8b26ef0c33b96603313bce74505953d8fe7410', class: {
123
129
  'pds-toast': true,
124
130
  [`pds-toast--${this.type}`]: this.type !== 'default',
125
131
  'pds-toast--animating-out': this.isAnimatingOut
126
- }, role: "alert", "aria-live": "polite" }, this.renderIcon(), index.h("span", { key: 'cb7066fd49ae8674d5de80ecde21e63eecbcdf29', class: "pds-toast__message" }, index.h("slot", { key: '5c08d8b5cc54e02bed2906c2d52b894301fdca5d' })), this.dismissible && (index.h("button", { key: '4edd83a8521f76a2abddfe64caaac932962745ff', type: "button", part: "dismiss", class: "pds-toast__button", onClick: () => {
132
+ }, role: "alert", "aria-live": "polite" }, this.renderIcon(), index.h("span", { key: '5f7fd6b70fe130d8b0915da07640bec01b3b2bcb', class: "pds-toast__message" }, index.h("slot", { key: '4aa0cf737b420ae51297126b423b44d2a8610226' })), this.dismissible && (index.h("button", { key: 'a8b8e5e9ba956b2d9cca284d114afa37b80570cf', type: "button", part: "dismiss", class: "pds-toast__button", onClick: () => {
127
133
  this.dismiss();
128
- }, "aria-label": "Dismiss message" }, index.h("pds-icon", { key: 'c5cf65f889bfcd85e3fdab437539e7ee3f6e0465', name: "remove" }))))));
134
+ }, "aria-label": this.dismissLabel }, index.h("pds-icon", { key: 'dac8f2099b2ab8a68d208aac288d48019df6d7e7', name: "remove" }))))));
129
135
  }
130
136
  get el() { return index.getElement(this); }
131
137
  static get watchers() { return {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-DBhfI2Jq.js');
3
+ var index = require('./index-BdFrBXCD.js');
4
4
  var floatingUi_dom = require('./floating-ui.dom-BZk7Blsu.js');
5
5
 
6
6
  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:relative;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:var(--pine-z-index-raised)}.pds-tooltip.pds-tooltip--has-html-content .pds-tooltip__content{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.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}`;
@@ -314,9 +314,9 @@ const PdsTooltip = class {
314
314
  }
315
315
  render() {
316
316
  const hostId = this.componentId || undefined;
317
- return (index.h(index.Host, { key: '4e6188e03c2f1d33e571b96a3006a585840716bd', id: hostId, class: { 'pds-tooltip--is-open': this.opened } }, index.h("span", { key: '0b82d180295421c32548577fb2038422b8ebd3be', class: "pds-tooltip__trigger", onMouseEnter: this.handleShow, onMouseLeave: this.handleHide,
317
+ return (index.h(index.Host, { key: '6af9c969e0dae4f3969cba2153797a1bccfc6d21', id: hostId, class: { 'pds-tooltip--is-open': this.opened } }, index.h("span", { key: '97c48a8b8d626ee913412bd55aefb17f36fad401', class: "pds-tooltip__trigger", onMouseEnter: this.handleShow, onMouseLeave: this.handleHide,
318
318
  /* focusin/out bubble; ensure keyboard users see tooltips */
319
- onFocusin: this.handleShow, onFocusout: this.handleHide, ref: el => this.triggerEl = el }, index.h("slot", { key: '661014ee46b11bcc906e7b64ef8c8a5739d459f0' })), index.h("div", { key: '1861ce9b260f5f7d2eb0a1f337dadd63a0dfee97', class: "pds-tooltip__content-slot-wrapper", hidden: true }, index.h("slot", { key: '963fb263c72fba432c2b672a2c3e85ca524f2b67', name: "content" }))));
319
+ onFocusin: this.handleShow, onFocusout: this.handleHide, ref: el => this.triggerEl = el }, index.h("slot", { key: '37715fc0bf525695a62af1944ff853228080302a' })), index.h("div", { key: 'a9a925b1de9ea45d2f6b9f39ec5e386537313217', class: "pds-tooltip__content-slot-wrapper", hidden: true }, index.h("slot", { key: '1486b30af21dc69758d7dc9890cbaf227bafffc7', name: "content" }))));
320
320
  }
321
321
  get el() { return index.getElement(this); }
322
322
  static get watchers() { return {