@pine-ds/core 4.8.0 → 4.9.1

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 (555) 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-icon2.js +1 -1
  28. package/components/pds-image.js +1 -1
  29. package/components/pds-input2.js +1 -1
  30. package/components/pds-link2.js +1 -1
  31. package/components/pds-loader2.js +1 -1
  32. package/components/pds-modal-content.js +1 -1
  33. package/components/pds-modal-footer.js +1 -1
  34. package/components/pds-modal-header.js +1 -1
  35. package/components/pds-modal2.js +1 -1
  36. package/components/pds-multiselect.js +1 -1
  37. package/components/pds-popover.js +1 -1
  38. package/components/pds-progress.js +1 -1
  39. package/components/pds-property.js +1 -1
  40. package/components/pds-radio-group.js +1 -1
  41. package/components/pds-radio.js +1 -1
  42. package/components/pds-row.js +1 -1
  43. package/components/pds-select.js +1 -1
  44. package/components/pds-sortable-item.js +1 -1
  45. package/components/pds-sortable.js +2 -2
  46. package/components/pds-switch.js +1 -1
  47. package/components/pds-table-body.js +1 -1
  48. package/components/pds-table-cell2.js +1 -1
  49. package/components/pds-table-head-cell2.js +1 -1
  50. package/components/pds-table-head.js +1 -1
  51. package/components/pds-table-row.js +1 -1
  52. package/components/pds-tabpanel.js +1 -1
  53. package/components/pds-tabs.js +1 -1
  54. package/components/pds-text2.js +1 -1
  55. package/components/pds-textarea.js +1 -1
  56. package/components/pds-toast.js +1 -1
  57. package/components/pds-tooltip.js +1 -1
  58. package/components/portal-target.js +1 -0
  59. package/components/tabbable.js +1 -0
  60. package/components/truncation-tooltip.js +1 -1
  61. package/dist/cjs/{attributes-BJ7KBHql.js → attributes-CW49XqaL.js} +1 -1
  62. package/dist/cjs/{floating-ui.dom-Dc8Anyel.js → floating-ui.dom-Dw41zbyY.js} +1 -0
  63. package/dist/cjs/{index-Do70atou.js → index-BDnbr0DK.js} +1 -1
  64. package/dist/cjs/{index-jl_Q819j.js → index-D9iJuJCP.js} +13 -1
  65. package/dist/cjs/index.cjs.js +1 -1
  66. package/dist/cjs/{keep-hydrated-CiXgkEYd.js → keep-hydrated-AKoh0DG4.js} +1 -0
  67. package/dist/cjs/loader.cjs.js +3 -3
  68. package/dist/cjs/mock-pds-modal.cjs.entry.js +4 -4
  69. package/dist/cjs/pds-accordion.cjs.entry.js +3 -3
  70. package/dist/cjs/pds-alert.cjs.entry.js +17 -4
  71. package/dist/cjs/pds-avatar.cjs.entry.js +22 -12
  72. package/dist/cjs/pds-box.cjs.entry.js +4 -4
  73. package/dist/cjs/pds-button.cjs.entry.js +58 -26
  74. package/dist/cjs/pds-checkbox.cjs.entry.js +16 -8
  75. package/dist/cjs/pds-chip.cjs.entry.js +9 -11
  76. package/dist/cjs/pds-combobox.cjs.entry.js +41 -11
  77. package/dist/cjs/pds-container.cjs.entry.js +3 -3
  78. package/dist/cjs/pds-copytext.cjs.entry.js +8 -7
  79. package/dist/cjs/pds-datepicker.cjs.entry.js +8 -45
  80. package/dist/cjs/pds-divider.cjs.entry.js +3 -3
  81. package/dist/cjs/pds-drawer-content.cjs.entry.js +3 -3
  82. package/dist/cjs/pds-drawer-footer.cjs.entry.js +3 -3
  83. package/dist/cjs/pds-drawer-header.cjs.entry.js +3 -3
  84. package/dist/cjs/pds-drawer.cjs.entry.js +4 -4
  85. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +4 -4
  86. package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +3 -3
  87. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +5 -5
  88. package/dist/cjs/pds-filter.cjs.entry.js +4 -4
  89. package/dist/cjs/pds-filters.cjs.entry.js +3 -3
  90. package/dist/cjs/pds-icon.cjs.entry.js +55 -22
  91. package/dist/cjs/pds-image.cjs.entry.js +4 -4
  92. package/dist/cjs/pds-input.cjs.entry.js +6 -6
  93. package/dist/cjs/pds-link.cjs.entry.js +16 -7
  94. package/dist/cjs/pds-loader.cjs.entry.js +4 -4
  95. package/dist/cjs/pds-modal-content.cjs.entry.js +4 -4
  96. package/dist/cjs/pds-modal-footer.cjs.entry.js +3 -3
  97. package/dist/cjs/pds-modal-header.cjs.entry.js +3 -3
  98. package/dist/cjs/pds-modal.cjs.entry.js +9 -89
  99. package/dist/cjs/pds-multiselect.cjs.entry.js +13 -7
  100. package/dist/cjs/pds-popover.cjs.entry.js +230 -153
  101. package/dist/cjs/pds-progress.cjs.entry.js +4 -4
  102. package/dist/cjs/pds-property.cjs.entry.js +3 -3
  103. package/dist/cjs/pds-radio-group.cjs.entry.js +67 -6
  104. package/dist/cjs/pds-radio.cjs.entry.js +24 -11
  105. package/dist/cjs/pds-row.cjs.entry.js +4 -4
  106. package/dist/cjs/pds-select.cjs.entry.js +132 -21
  107. package/dist/cjs/pds-sortable-item.cjs.entry.js +5 -5
  108. package/dist/cjs/pds-sortable.cjs.entry.js +4 -4
  109. package/dist/cjs/pds-switch.cjs.entry.js +7 -7
  110. package/dist/cjs/pds-tab.cjs.entry.js +3 -3
  111. package/dist/cjs/pds-table-body.cjs.entry.js +3 -3
  112. package/dist/cjs/pds-table-cell.cjs.entry.js +7 -6
  113. package/dist/cjs/pds-table-head-cell.cjs.entry.js +5 -5
  114. package/dist/cjs/pds-table-head.cjs.entry.js +3 -3
  115. package/dist/cjs/pds-table-row.cjs.entry.js +3 -3
  116. package/dist/cjs/pds-table.cjs.entry.js +2 -2
  117. package/dist/cjs/pds-tabpanel.cjs.entry.js +4 -4
  118. package/dist/cjs/pds-tabs.cjs.entry.js +4 -4
  119. package/dist/cjs/pds-text.cjs.entry.js +31 -5
  120. package/dist/cjs/pds-textarea.cjs.entry.js +8 -8
  121. package/dist/cjs/pds-toast.cjs.entry.js +14 -8
  122. package/dist/cjs/pds-tooltip.cjs.entry.js +128 -46
  123. package/dist/cjs/pine-core.cjs.js +3 -3
  124. package/dist/cjs/portal-target-e8WQ6dLx.js +70 -0
  125. package/dist/cjs/tabbable-BrrrGvdG.js +86 -0
  126. package/dist/cjs/{truncation-tooltip-BtuiXLV0.js → truncation-tooltip-DdB78RIe.js} +44 -4
  127. package/dist/collection/components/pds-alert/pds-alert.css +13 -0
  128. package/dist/collection/components/pds-alert/pds-alert.js +36 -1
  129. package/dist/collection/components/pds-alert/stories/pds-alert.stories.js +4 -0
  130. package/dist/collection/components/pds-avatar/pds-avatar.js +41 -9
  131. package/dist/collection/components/pds-avatar/stories/pds-avatar.stories.js +2 -0
  132. package/dist/collection/components/pds-box/pds-box.js +1 -1
  133. package/dist/collection/components/pds-button/pds-button.js +13 -23
  134. package/dist/collection/components/pds-checkbox/pds-checkbox.css +79 -0
  135. package/dist/collection/components/pds-checkbox/pds-checkbox.js +36 -5
  136. package/dist/collection/components/pds-checkbox/stories/pds-checkbox.stories.js +38 -0
  137. package/dist/collection/components/pds-chip/pds-chip.js +2 -5
  138. package/dist/collection/components/pds-combobox/pds-combobox.css +33 -0
  139. package/dist/collection/components/pds-combobox/pds-combobox.js +60 -7
  140. package/dist/collection/components/pds-combobox/stories/pds-combobox.stories.js +44 -0
  141. package/dist/collection/components/pds-container/pds-container.js +1 -1
  142. package/dist/collection/components/pds-copytext/pds-copytext.js +1 -1
  143. package/dist/collection/components/pds-datepicker/calendar-portal.js +1 -38
  144. package/dist/collection/components/pds-datepicker/pds-datepicker.js +2 -2
  145. package/dist/collection/components/pds-divider/pds-divider.js +1 -1
  146. package/dist/collection/components/pds-drawer/pds-drawer-content/pds-drawer-content.js +1 -1
  147. package/dist/collection/components/pds-drawer/pds-drawer-footer/pds-drawer-footer.js +1 -1
  148. package/dist/collection/components/pds-drawer/pds-drawer-header/pds-drawer-header.js +1 -1
  149. package/dist/collection/components/pds-drawer/pds-drawer.js +2 -2
  150. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js +24 -2
  151. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js +1 -1
  152. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +1 -1
  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.css +1 -1
  159. package/dist/collection/components/pds-link/pds-link.js +34 -3
  160. package/dist/collection/components/pds-link/stories/pds-link.stories.js +51 -2
  161. package/dist/collection/components/pds-loader/pds-loader.js +1 -1
  162. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js +2 -2
  163. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js +1 -1
  164. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js +1 -1
  165. package/dist/collection/components/pds-modal/pds-modal.css +1 -1
  166. package/dist/collection/components/pds-modal/pds-modal.js +4 -84
  167. package/dist/collection/components/pds-modal/test/mock-pds-modal.js +1 -1
  168. package/dist/collection/components/pds-multiselect/pds-multiselect.js +9 -3
  169. package/dist/collection/components/pds-popover/pds-popover.css +6 -0
  170. package/dist/collection/components/pds-popover/pds-popover.js +226 -149
  171. package/dist/collection/components/pds-progress/pds-progress.js +1 -1
  172. package/dist/collection/components/pds-property/pds-property.js +1 -1
  173. package/dist/collection/components/pds-radio/pds-radio.css +57 -0
  174. package/dist/collection/components/pds-radio/pds-radio.js +45 -9
  175. package/dist/collection/components/pds-radio/stories/pds-radio.stories.js +15 -0
  176. package/dist/collection/components/pds-radio-group/pds-radio-group.js +65 -4
  177. package/dist/collection/components/pds-radio-group/stories/pds-radio-group.stories.js +45 -0
  178. package/dist/collection/components/pds-row/pds-row.js +1 -1
  179. package/dist/collection/components/pds-select/pds-select.js +128 -17
  180. package/dist/collection/components/pds-select/stories/pds-select.stories.js +2 -2
  181. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +1 -1
  182. package/dist/collection/components/pds-sortable/pds-sortable.js +1 -1
  183. package/dist/collection/components/pds-switch/pds-switch.js +3 -3
  184. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js +1 -1
  185. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +2 -2
  186. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +1 -1
  187. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +2 -2
  188. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +1 -1
  189. package/dist/collection/components/pds-table/stories/pds-table.stories.js +3 -3
  190. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +1 -1
  191. package/dist/collection/components/pds-tabs/pds-tabs.js +1 -1
  192. package/dist/collection/components/pds-text/pds-text.js +28 -3
  193. package/dist/collection/components/pds-text/stories/pds-text.stories.js +16 -0
  194. package/dist/collection/components/pds-textarea/pds-textarea.js +4 -4
  195. package/dist/collection/components/pds-textarea/stories/pds-textarea.stories.js +2 -2
  196. package/dist/collection/components/pds-toast/pds-toast.css +13 -0
  197. package/dist/collection/components/pds-toast/pds-toast.js +33 -5
  198. package/dist/collection/components/pds-toast/stories/pds-toast.stories.js +4 -1
  199. package/dist/collection/components/pds-tooltip/pds-tooltip.css +11 -0
  200. package/dist/collection/components/pds-tooltip/pds-tooltip.js +125 -42
  201. package/dist/collection/components/pds-tooltip/stories/pds-tooltip.stories.js +30 -0
  202. package/dist/collection/utils/aria-references.js +42 -0
  203. package/dist/collection/utils/portal-target.js +64 -0
  204. package/dist/collection/utils/tabbable.js +82 -0
  205. package/dist/collection/utils/truncation-tooltip.js +42 -3
  206. package/dist/docs.json +245 -8
  207. package/dist/esm/{attributes-WXw_I_uJ.js → attributes-DkeVeN0g.js} +1 -1
  208. package/dist/esm/{floating-ui.dom-BPqJgIq6.js → floating-ui.dom-Cuc0DYlm.js} +1 -1
  209. package/dist/esm/{index-Cw9J31qd.js → index-4_RRPJTO.js} +13 -2
  210. package/dist/esm/{index-BWDu62Mo.js → index-DvN3tyZp.js} +2 -2
  211. package/dist/esm/index.js +1 -1
  212. package/dist/esm/{keep-hydrated-BLG6RDBt.js → keep-hydrated-BgNaWLoS.js} +1 -1
  213. package/dist/esm/loader.js +4 -4
  214. package/dist/esm/mock-pds-modal.entry.js +4 -4
  215. package/dist/esm/pds-accordion.entry.js +3 -3
  216. package/dist/esm/pds-alert.entry.js +17 -4
  217. package/dist/esm/pds-avatar.entry.js +22 -12
  218. package/dist/esm/pds-box.entry.js +4 -4
  219. package/dist/esm/pds-button.entry.js +58 -26
  220. package/dist/esm/pds-checkbox.entry.js +16 -8
  221. package/dist/esm/pds-chip.entry.js +8 -10
  222. package/dist/esm/pds-combobox.entry.js +41 -11
  223. package/dist/esm/pds-container.entry.js +3 -3
  224. package/dist/esm/pds-copytext.entry.js +8 -7
  225. package/dist/esm/pds-datepicker.entry.js +7 -44
  226. package/dist/esm/pds-divider.entry.js +3 -3
  227. package/dist/esm/pds-drawer-content.entry.js +3 -3
  228. package/dist/esm/pds-drawer-footer.entry.js +3 -3
  229. package/dist/esm/pds-drawer-header.entry.js +3 -3
  230. package/dist/esm/pds-drawer.entry.js +4 -4
  231. package/dist/esm/pds-dropdown-menu-item.entry.js +4 -4
  232. package/dist/esm/pds-dropdown-menu-separator.entry.js +3 -3
  233. package/dist/esm/pds-dropdown-menu.entry.js +5 -5
  234. package/dist/esm/pds-filter.entry.js +4 -4
  235. package/dist/esm/pds-filters.entry.js +3 -3
  236. package/dist/esm/pds-icon.entry.js +55 -22
  237. package/dist/esm/pds-image.entry.js +4 -4
  238. package/dist/esm/pds-input.entry.js +6 -6
  239. package/dist/esm/pds-link.entry.js +16 -7
  240. package/dist/esm/pds-loader.entry.js +4 -4
  241. package/dist/esm/pds-modal-content.entry.js +4 -4
  242. package/dist/esm/pds-modal-footer.entry.js +3 -3
  243. package/dist/esm/pds-modal-header.entry.js +3 -3
  244. package/dist/esm/pds-modal.entry.js +7 -87
  245. package/dist/esm/pds-multiselect.entry.js +13 -7
  246. package/dist/esm/pds-popover.entry.js +230 -153
  247. package/dist/esm/pds-progress.entry.js +4 -4
  248. package/dist/esm/pds-property.entry.js +3 -3
  249. package/dist/esm/pds-radio-group.entry.js +67 -6
  250. package/dist/esm/pds-radio.entry.js +24 -11
  251. package/dist/esm/pds-row.entry.js +4 -4
  252. package/dist/esm/pds-select.entry.js +132 -21
  253. package/dist/esm/pds-sortable-item.entry.js +5 -5
  254. package/dist/esm/pds-sortable.entry.js +4 -4
  255. package/dist/esm/pds-switch.entry.js +7 -7
  256. package/dist/esm/pds-tab.entry.js +3 -3
  257. package/dist/esm/pds-table-body.entry.js +3 -3
  258. package/dist/esm/pds-table-cell.entry.js +7 -6
  259. package/dist/esm/pds-table-head-cell.entry.js +5 -5
  260. package/dist/esm/pds-table-head.entry.js +3 -3
  261. package/dist/esm/pds-table-row.entry.js +3 -3
  262. package/dist/esm/pds-table.entry.js +2 -2
  263. package/dist/esm/pds-tabpanel.entry.js +4 -4
  264. package/dist/esm/pds-tabs.entry.js +4 -4
  265. package/dist/esm/pds-text.entry.js +31 -5
  266. package/dist/esm/pds-textarea.entry.js +8 -8
  267. package/dist/esm/pds-toast.entry.js +14 -8
  268. package/dist/esm/pds-tooltip.entry.js +128 -46
  269. package/dist/esm/pine-core.js +4 -4
  270. package/dist/esm/portal-target-CKRzRKdO.js +66 -0
  271. package/dist/esm/tabbable-C6ZWpp3v.js +84 -0
  272. package/dist/esm/{truncation-tooltip-FaW67DiY.js → truncation-tooltip-CRSdYzpA.js} +44 -5
  273. package/dist/esm-es5/{attributes-WXw_I_uJ.js → attributes-DkeVeN0g.js} +1 -1
  274. package/dist/esm-es5/{floating-ui.dom-BPqJgIq6.js → floating-ui.dom-Cuc0DYlm.js} +1 -1
  275. package/dist/esm-es5/{index-Cw9J31qd.js → index-4_RRPJTO.js} +2 -2
  276. package/dist/esm-es5/{index-BWDu62Mo.js → index-DvN3tyZp.js} +1 -1
  277. package/dist/esm-es5/index.js +1 -1
  278. package/dist/esm-es5/{keep-hydrated-BLG6RDBt.js → keep-hydrated-BgNaWLoS.js} +1 -1
  279. package/dist/esm-es5/loader.js +1 -1
  280. package/dist/esm-es5/mock-pds-modal.entry.js +1 -1
  281. package/dist/esm-es5/pds-accordion.entry.js +1 -1
  282. package/dist/esm-es5/pds-alert.entry.js +1 -1
  283. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  284. package/dist/esm-es5/pds-box.entry.js +1 -1
  285. package/dist/esm-es5/pds-button.entry.js +1 -1
  286. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  287. package/dist/esm-es5/pds-chip.entry.js +1 -1
  288. package/dist/esm-es5/pds-combobox.entry.js +2 -2
  289. package/dist/esm-es5/pds-container.entry.js +1 -1
  290. package/dist/esm-es5/pds-copytext.entry.js +1 -1
  291. package/dist/esm-es5/pds-datepicker.entry.js +1 -1
  292. package/dist/esm-es5/pds-divider.entry.js +1 -1
  293. package/dist/esm-es5/pds-drawer-content.entry.js +1 -1
  294. package/dist/esm-es5/pds-drawer-footer.entry.js +1 -1
  295. package/dist/esm-es5/pds-drawer-header.entry.js +1 -1
  296. package/dist/esm-es5/pds-drawer.entry.js +1 -1
  297. package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -1
  298. package/dist/esm-es5/pds-dropdown-menu-separator.entry.js +1 -1
  299. package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
  300. package/dist/esm-es5/pds-filter.entry.js +1 -1
  301. package/dist/esm-es5/pds-filters.entry.js +1 -1
  302. package/dist/esm-es5/pds-icon.entry.js +1 -1
  303. package/dist/esm-es5/pds-image.entry.js +1 -1
  304. package/dist/esm-es5/pds-input.entry.js +1 -1
  305. package/dist/esm-es5/pds-link.entry.js +1 -1
  306. package/dist/esm-es5/pds-loader.entry.js +1 -1
  307. package/dist/esm-es5/pds-modal-content.entry.js +1 -1
  308. package/dist/esm-es5/pds-modal-footer.entry.js +1 -1
  309. package/dist/esm-es5/pds-modal-header.entry.js +1 -1
  310. package/dist/esm-es5/pds-modal.entry.js +1 -1
  311. package/dist/esm-es5/pds-multiselect.entry.js +1 -1
  312. package/dist/esm-es5/pds-popover.entry.js +1 -1
  313. package/dist/esm-es5/pds-progress.entry.js +1 -1
  314. package/dist/esm-es5/pds-property.entry.js +1 -1
  315. package/dist/esm-es5/pds-radio-group.entry.js +1 -1
  316. package/dist/esm-es5/pds-radio.entry.js +1 -1
  317. package/dist/esm-es5/pds-row.entry.js +1 -1
  318. package/dist/esm-es5/pds-select.entry.js +1 -1
  319. package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
  320. package/dist/esm-es5/pds-sortable.entry.js +2 -2
  321. package/dist/esm-es5/pds-switch.entry.js +1 -1
  322. package/dist/esm-es5/pds-tab.entry.js +1 -1
  323. package/dist/esm-es5/pds-table-body.entry.js +1 -1
  324. package/dist/esm-es5/pds-table-cell.entry.js +1 -1
  325. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  326. package/dist/esm-es5/pds-table-head.entry.js +1 -1
  327. package/dist/esm-es5/pds-table-row.entry.js +1 -1
  328. package/dist/esm-es5/pds-table.entry.js +1 -1
  329. package/dist/esm-es5/pds-tabpanel.entry.js +1 -1
  330. package/dist/esm-es5/pds-tabs.entry.js +1 -1
  331. package/dist/esm-es5/pds-text.entry.js +1 -1
  332. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  333. package/dist/esm-es5/pds-toast.entry.js +1 -1
  334. package/dist/esm-es5/pds-tooltip.entry.js +1 -1
  335. package/dist/esm-es5/pine-core.js +1 -1
  336. package/dist/esm-es5/portal-target-CKRzRKdO.js +1 -0
  337. package/dist/esm-es5/tabbable-C6ZWpp3v.js +1 -0
  338. package/dist/esm-es5/truncation-tooltip-CRSdYzpA.js +1 -0
  339. package/dist/pine-core/index.esm.js +1 -1
  340. package/dist/pine-core/{p-9880d251.system.entry.js → p-01f1cdaf.system.entry.js} +1 -1
  341. package/dist/pine-core/{p-138b278b.entry.js → p-07323107.entry.js} +1 -1
  342. package/dist/pine-core/p-08b8e941.entry.js +1 -0
  343. package/dist/pine-core/p-0d5f0ab5.system.entry.js +1 -0
  344. package/dist/pine-core/{p-8c8cc079.system.entry.js → p-1415c988.system.entry.js} +1 -1
  345. package/dist/pine-core/{p-9109b90a.entry.js → p-143b33a6.entry.js} +1 -1
  346. package/dist/pine-core/{p-b9d145f8.system.entry.js → p-14dedf01.system.entry.js} +1 -1
  347. package/dist/pine-core/{p-80e6f3a0.system.entry.js → p-19cf1d91.system.entry.js} +1 -1
  348. package/dist/pine-core/p-1ca8d183.entry.js +1 -0
  349. package/dist/pine-core/p-1cc39908.system.entry.js +1 -0
  350. package/dist/pine-core/p-1e3ef425.entry.js +1 -0
  351. package/dist/pine-core/{p-b914dde8.entry.js → p-1f62bb71.entry.js} +2 -2
  352. package/dist/pine-core/p-20079552.system.entry.js +1 -0
  353. package/dist/pine-core/p-2a18852f.entry.js +1 -0
  354. package/dist/pine-core/{p-ca4ee736.system.entry.js → p-2b9622c1.system.entry.js} +1 -1
  355. package/dist/pine-core/p-2dd30d12.entry.js +1 -0
  356. package/dist/pine-core/{p-cccfe60f.system.entry.js → p-3306dc5a.system.entry.js} +1 -1
  357. package/dist/pine-core/{p-BGLP3keB.js → p-35s7h-dk.js} +1 -1
  358. package/dist/pine-core/{p-8c588ca0.entry.js → p-3610cb3b.entry.js} +1 -1
  359. package/dist/pine-core/p-37718637.entry.js +1 -0
  360. package/dist/pine-core/p-383d84f4.entry.js +2 -0
  361. package/dist/pine-core/p-39276663.entry.js +1 -0
  362. package/dist/pine-core/{p-62433f32.entry.js → p-39e57657.entry.js} +1 -1
  363. package/dist/pine-core/p-3c229091.entry.js +1 -0
  364. package/dist/pine-core/p-3d34b967.system.entry.js +1 -0
  365. package/dist/pine-core/p-3e30a761.entry.js +1 -0
  366. package/dist/pine-core/{p-7a5b21d2.system.entry.js → p-3f8bd3fb.system.entry.js} +1 -1
  367. package/dist/pine-core/p-42d43c3f.system.entry.js +1 -0
  368. package/dist/pine-core/{p-f029b7da.system.entry.js → p-42f70f93.system.entry.js} +1 -1
  369. package/dist/pine-core/{p-d3d69ca4.system.entry.js → p-4a90b9c8.system.entry.js} +1 -1
  370. package/dist/pine-core/{p-ca0a8f5c.entry.js → p-4cfe922b.entry.js} +1 -1
  371. package/dist/pine-core/p-4d1a8803.entry.js +1 -0
  372. package/dist/pine-core/p-4d47023c.system.entry.js +1 -0
  373. package/dist/pine-core/p-4d98bc0c.system.entry.js +1 -0
  374. package/dist/pine-core/{p-c97bfac9.entry.js → p-50ddadbf.entry.js} +1 -1
  375. package/dist/pine-core/{p-0913f696.system.entry.js → p-548bce53.system.entry.js} +1 -1
  376. package/dist/pine-core/p-54f1e86f.system.entry.js +1 -0
  377. package/dist/pine-core/{p-631f5bcc.entry.js → p-590df41a.entry.js} +1 -1
  378. package/dist/pine-core/p-5946203c.entry.js +1 -0
  379. package/dist/pine-core/{p-11d98408.system.entry.js → p-5f181694.system.entry.js} +1 -1
  380. package/dist/pine-core/p-60a30975.system.entry.js +1 -0
  381. package/dist/pine-core/{p-9ab95438.entry.js → p-61cfdbb2.entry.js} +1 -1
  382. package/dist/pine-core/p-62aa6a78.system.entry.js +1 -0
  383. package/dist/pine-core/{p-ecc7a531.system.entry.js → p-63f85859.system.entry.js} +1 -1
  384. package/dist/pine-core/p-64bcb378.entry.js +1 -0
  385. package/dist/pine-core/{p-bdac8f2b.entry.js → p-67999353.entry.js} +1 -1
  386. package/dist/pine-core/{p-cb6a3e4c.system.entry.js → p-67f795d5.system.entry.js} +1 -1
  387. package/dist/pine-core/p-6a1aa8d3.entry.js +1 -0
  388. package/dist/pine-core/p-6f4ab1ea.system.entry.js +1 -0
  389. package/dist/pine-core/{p-acca5f7b.system.entry.js → p-724baba3.system.entry.js} +1 -1
  390. package/dist/pine-core/p-72659a0e.system.entry.js +1 -0
  391. package/dist/pine-core/{p-4bfc8b3e.system.entry.js → p-73efb1ed.system.entry.js} +1 -1
  392. package/dist/pine-core/p-7a51f15e.entry.js +1 -0
  393. package/dist/pine-core/p-7b978fff.system.entry.js +1 -0
  394. package/dist/pine-core/p-8436cbfb.entry.js +1 -0
  395. package/dist/pine-core/p-849ec281.system.entry.js +1 -0
  396. package/dist/pine-core/p-87a32ded.system.entry.js +1 -0
  397. package/dist/pine-core/p-89d38a82.system.entry.js +1 -0
  398. package/dist/pine-core/p-8ade17ce.entry.js +1 -0
  399. package/dist/pine-core/{p-4d03d1e2.system.entry.js → p-8afd5f5b.system.entry.js} +1 -1
  400. package/dist/pine-core/p-8e7f75e6.entry.js +1 -0
  401. package/dist/pine-core/{p-8f531063.entry.js → p-8fb520df.entry.js} +1 -1
  402. package/dist/pine-core/{p-9df5e204.entry.js → p-92115e88.entry.js} +1 -1
  403. package/dist/pine-core/p-93fd7dd8.system.entry.js +1 -0
  404. package/dist/pine-core/p-947582e1.entry.js +1 -0
  405. package/dist/pine-core/{p-2ac2457b.system.entry.js → p-94c9b7d1.system.entry.js} +1 -1
  406. package/dist/pine-core/p-973c3ac0.entry.js +1 -0
  407. package/dist/pine-core/p-97653e60.entry.js +1 -0
  408. package/dist/pine-core/{p-55224683.entry.js → p-97b73359.entry.js} +1 -1
  409. package/dist/pine-core/{p-b1548a20.entry.js → p-99530cb5.entry.js} +1 -1
  410. package/dist/pine-core/p-9a776443.entry.js +1 -0
  411. package/dist/pine-core/p-9b32727a.system.entry.js +1 -0
  412. package/dist/pine-core/{p-CGRdQc49.system.js → p-BK1sLRfg.system.js} +2 -2
  413. package/dist/pine-core/{p-COtCa1Md.system.js → p-BNTlHhoO.system.js} +1 -1
  414. package/dist/pine-core/p-BZ1l3LGl.system.js +1 -0
  415. package/dist/pine-core/p-BgNaWLoS.js +1 -0
  416. package/dist/pine-core/p-C6ZWpp3v.js +1 -0
  417. package/dist/pine-core/{p-Cy8cvR7I.system.js → p-CANeE7Ss.system.js} +1 -1
  418. package/dist/pine-core/p-CKRzRKdO.js +1 -0
  419. package/dist/pine-core/{p-XW4H0W6i.system.js → p-CNXspDYs.system.js} +1 -1
  420. package/dist/pine-core/{p-BPqJgIq6.js → p-Cuc0DYlm.js} +1 -1
  421. package/dist/pine-core/p-DQyF6v9Q.system.js +1 -0
  422. package/dist/pine-core/{p-BWDu62Mo.js → p-DvN3tyZp.js} +1 -1
  423. package/dist/pine-core/p-DwQ5Tjis.js +1 -0
  424. package/dist/pine-core/{p-CmSJytt1.js → p-M31tvpDN.js} +2 -2
  425. package/dist/pine-core/p-XK45dzWR.system.js +1 -0
  426. package/dist/pine-core/{p-1dc5a7e0.system.entry.js → p-a09c9c5e.system.entry.js} +1 -1
  427. package/dist/pine-core/p-a4ce12ef.entry.js +1 -0
  428. package/dist/pine-core/{p-57a2f927.entry.js → p-a594c41f.entry.js} +1 -1
  429. package/dist/pine-core/p-a9d96e22.entry.js +1 -0
  430. package/dist/pine-core/{p-047433a4.system.entry.js → p-ad5208a4.system.entry.js} +1 -1
  431. package/dist/pine-core/p-b3d4f97a.system.entry.js +3 -0
  432. package/dist/pine-core/{p-0b71ecb6.system.entry.js → p-bcc378ba.system.entry.js} +2 -2
  433. package/dist/pine-core/p-bd7dc317.system.entry.js +1 -0
  434. package/dist/pine-core/p-beb7a430.entry.js +1 -0
  435. package/dist/pine-core/p-bfa34194.entry.js +1 -0
  436. package/dist/pine-core/{p-5870b092.system.entry.js → p-c2afe4f3.system.entry.js} +1 -1
  437. package/dist/pine-core/p-c5e1eb3c.system.entry.js +1 -0
  438. package/dist/pine-core/p-c7a53c4f.entry.js +1 -0
  439. package/dist/pine-core/{p-5cfd4d41.system.entry.js → p-c8a0b562.system.entry.js} +1 -1
  440. package/dist/pine-core/{p-f1702281.entry.js → p-c9ae7964.entry.js} +1 -1
  441. package/dist/pine-core/{p-db17c626.system.entry.js → p-cb9baf78.system.entry.js} +1 -1
  442. package/dist/pine-core/{p-e5420660.entry.js → p-ce9fa14b.entry.js} +1 -1
  443. package/dist/pine-core/{p-332590c7.system.entry.js → p-d018dc60.system.entry.js} +1 -1
  444. package/dist/pine-core/p-d47b2a6a.system.entry.js +1 -0
  445. package/dist/pine-core/{p-b75b0d09.system.entry.js → p-d48fe5a0.system.entry.js} +1 -1
  446. package/dist/pine-core/p-d6f338e0.entry.js +1 -0
  447. package/dist/pine-core/{p-8191498f.system.entry.js → p-d920d759.system.entry.js} +1 -1
  448. package/dist/pine-core/{p-26642718.entry.js → p-d9719e37.entry.js} +1 -1
  449. package/dist/pine-core/{p-c483997a.entry.js → p-db7fb5a3.entry.js} +1 -1
  450. package/dist/pine-core/{p-9713fb36.entry.js → p-e1d1b5d8.entry.js} +1 -1
  451. package/dist/pine-core/p-e3de6a1d.entry.js +1 -0
  452. package/dist/pine-core/{p-d2c91e7a.entry.js → p-e7002cee.entry.js} +1 -1
  453. package/dist/pine-core/{p-86040cac.system.entry.js → p-e82f758f.system.entry.js} +1 -1
  454. package/dist/pine-core/p-e84fa9ed.entry.js +1 -0
  455. package/dist/pine-core/{p-ee0e30bf.system.entry.js → p-eb4f0daa.system.entry.js} +1 -1
  456. package/dist/pine-core/p-eeYeEogd.system.js +1 -0
  457. package/dist/pine-core/{p-0af0d752.system.entry.js → p-eecd9ad8.system.entry.js} +1 -1
  458. package/dist/pine-core/p-ef0eba9b.system.entry.js +1 -0
  459. package/dist/pine-core/p-ef3a855f.system.entry.js +1 -0
  460. package/dist/pine-core/{p-717323e4.entry.js → p-f018af99.entry.js} +1 -1
  461. package/dist/pine-core/{p-121612a7.system.entry.js → p-f11cce27.system.entry.js} +1 -1
  462. package/dist/pine-core/{p-4fd454f6.entry.js → p-f6f4fd42.entry.js} +1 -1
  463. package/dist/pine-core/{p-a939b471.entry.js → p-f71d71ca.entry.js} +1 -1
  464. package/dist/pine-core/p-f9063262.system.entry.js +1 -0
  465. package/dist/pine-core/p-f99bd77f.entry.js +1 -0
  466. package/dist/pine-core/{p-ClDiSG97.system.js → p-vFsJv75D.system.js} +1 -1
  467. package/dist/pine-core/p-wB2y8gR7.system.js +1 -0
  468. package/dist/pine-core/pine-core.esm.js +1 -1
  469. package/dist/pine-core/pine-core.js +1 -1
  470. package/dist/types/components/pds-alert/pds-alert.d.ts +10 -0
  471. package/dist/types/components/pds-avatar/pds-avatar.d.ts +8 -0
  472. package/dist/types/components/pds-button/pds-button.d.ts +2 -2
  473. package/dist/types/components/pds-checkbox/pds-checkbox.d.ts +7 -1
  474. package/dist/types/components/pds-combobox/pds-combobox.d.ts +9 -0
  475. package/dist/types/components/pds-datepicker/calendar-portal.d.ts +0 -7
  476. package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.d.ts +7 -0
  477. package/dist/types/components/pds-link/pds-link.d.ts +8 -0
  478. package/dist/types/components/pds-popover/pds-popover.d.ts +44 -20
  479. package/dist/types/components/pds-radio/pds-radio.d.ts +9 -3
  480. package/dist/types/components/pds-radio-group/pds-radio-group.d.ts +8 -0
  481. package/dist/types/components/pds-select/pds-select.d.ts +32 -4
  482. package/dist/types/components/pds-text/pds-text.d.ts +4 -0
  483. package/dist/types/components/pds-toast/pds-toast.d.ts +9 -0
  484. package/dist/types/components/pds-tooltip/pds-tooltip.d.ts +32 -0
  485. package/dist/types/components.d.ts +98 -10
  486. package/dist/types/utils/aria-references.d.ts +24 -0
  487. package/dist/types/utils/portal-target.d.ts +17 -0
  488. package/dist/types/utils/tabbable.d.ts +2 -0
  489. package/dist/types/utils/truncation-tooltip.d.ts +5 -2
  490. package/dist/vscode.html-data.json +82 -10
  491. package/hydrate/index.js +971 -408
  492. package/hydrate/index.mjs +971 -408
  493. package/package.json +2 -2
  494. package/dist/esm-es5/truncation-tooltip-FaW67DiY.js +0 -1
  495. package/dist/pine-core/p-0092444c.system.entry.js +0 -1
  496. package/dist/pine-core/p-00a50de5.system.entry.js +0 -3
  497. package/dist/pine-core/p-049f126a.entry.js +0 -1
  498. package/dist/pine-core/p-089c3e60.entry.js +0 -1
  499. package/dist/pine-core/p-158b2f51.entry.js +0 -1
  500. package/dist/pine-core/p-17f97f1a.entry.js +0 -1
  501. package/dist/pine-core/p-19ba2788.system.entry.js +0 -1
  502. package/dist/pine-core/p-208c7dbf.entry.js +0 -1
  503. package/dist/pine-core/p-25ea48d1.entry.js +0 -1
  504. package/dist/pine-core/p-295f64ea.entry.js +0 -1
  505. package/dist/pine-core/p-29cd4113.system.entry.js +0 -1
  506. package/dist/pine-core/p-2cb5483a.system.entry.js +0 -1
  507. package/dist/pine-core/p-36cb4bf6.entry.js +0 -1
  508. package/dist/pine-core/p-3c977d8d.system.entry.js +0 -1
  509. package/dist/pine-core/p-3d51891a.entry.js +0 -1
  510. package/dist/pine-core/p-432d5ec7.entry.js +0 -1
  511. package/dist/pine-core/p-44f546ae.entry.js +0 -1
  512. package/dist/pine-core/p-5442d983.system.entry.js +0 -1
  513. package/dist/pine-core/p-5833a072.system.entry.js +0 -1
  514. package/dist/pine-core/p-602c197f.entry.js +0 -1
  515. package/dist/pine-core/p-719542e1.system.entry.js +0 -1
  516. package/dist/pine-core/p-73f931a1.entry.js +0 -1
  517. package/dist/pine-core/p-75ee0403.entry.js +0 -1
  518. package/dist/pine-core/p-77395d62.system.entry.js +0 -1
  519. package/dist/pine-core/p-7a287635.system.entry.js +0 -1
  520. package/dist/pine-core/p-875b0436.system.entry.js +0 -1
  521. package/dist/pine-core/p-884cb31d.system.entry.js +0 -1
  522. package/dist/pine-core/p-8987fd45.system.entry.js +0 -1
  523. package/dist/pine-core/p-8cc302aa.system.entry.js +0 -1
  524. package/dist/pine-core/p-8e3ff75d.entry.js +0 -1
  525. package/dist/pine-core/p-90d5edc6.entry.js +0 -1
  526. package/dist/pine-core/p-91f60173.entry.js +0 -1
  527. package/dist/pine-core/p-9265497e.system.entry.js +0 -1
  528. package/dist/pine-core/p-94593f20.system.entry.js +0 -1
  529. package/dist/pine-core/p-99459e27.entry.js +0 -1
  530. package/dist/pine-core/p-99fdf70f.entry.js +0 -1
  531. package/dist/pine-core/p-9aaedded.entry.js +0 -1
  532. package/dist/pine-core/p-9dcd2cdb.entry.js +0 -1
  533. package/dist/pine-core/p-BLG6RDBt.js +0 -1
  534. package/dist/pine-core/p-BR5nujVX.system.js +0 -1
  535. package/dist/pine-core/p-CuSNnuFu.system.js +0 -1
  536. package/dist/pine-core/p-D04W0cAO.system.js +0 -1
  537. package/dist/pine-core/p-a0960b3d.system.entry.js +0 -1
  538. package/dist/pine-core/p-a1230a74.system.entry.js +0 -1
  539. package/dist/pine-core/p-a826f290.entry.js +0 -1
  540. package/dist/pine-core/p-acce8eb2.entry.js +0 -1
  541. package/dist/pine-core/p-aff411d0.entry.js +0 -1
  542. package/dist/pine-core/p-b182f806.entry.js +0 -2
  543. package/dist/pine-core/p-bb68431a.entry.js +0 -1
  544. package/dist/pine-core/p-be9b6e63.system.entry.js +0 -1
  545. package/dist/pine-core/p-bf30dec0.entry.js +0 -1
  546. package/dist/pine-core/p-c4e12f0a.entry.js +0 -1
  547. package/dist/pine-core/p-e0917a26.entry.js +0 -1
  548. package/dist/pine-core/p-e836a041.entry.js +0 -1
  549. package/dist/pine-core/p-ea340c55.system.entry.js +0 -1
  550. package/dist/pine-core/p-ea4d4741.system.entry.js +0 -1
  551. package/dist/pine-core/p-ea8f5d29.entry.js +0 -1
  552. package/dist/pine-core/p-eaf85be6.system.entry.js +0 -1
  553. package/dist/pine-core/p-ef13f665.system.entry.js +0 -1
  554. package/dist/pine-core/p-f3067d90.system.entry.js +0 -1
  555. package/dist/pine-core/p-jrkGLEPe.js +0 -1
@@ -0,0 +1,42 @@
1
+ /**
2
+ * The ARIA attributes that take ID references, and the element-reflection property each is forwarded
3
+ * through. An ID on a host can't reach an element inside its shadow root, so a component that
4
+ * delegates focus forwards the elements the IDs point at instead. A browser without ARIA element
5
+ * reflection gets none of them.
6
+ */
7
+ export const ARIA_REFERENCE_PROPERTIES = {
8
+ 'aria-controls': 'ariaControlsElements',
9
+ 'aria-describedby': 'ariaDescribedByElements',
10
+ 'aria-labelledby': 'ariaLabelledByElements',
11
+ };
12
+ export const ARIA_REFERENCE_ATTRIBUTES = Object.keys(ARIA_REFERENCE_PROPERTIES);
13
+ /**
14
+ * Finds an element by ID in the host's tree, then in each shadow root that contains it, so a host
15
+ * inside another component's shadow root still reaches, say, a popover portal on document.body.
16
+ * The closest root wins when an ID repeats.
17
+ */
18
+ export const findInAncestorRoots = (host, id) => {
19
+ let root = host.getRootNode();
20
+ while (root instanceof ShadowRoot) {
21
+ const found = root.getElementById(id);
22
+ if (found)
23
+ return found;
24
+ root = root.host.getRootNode();
25
+ }
26
+ return root instanceof Document ? root.getElementById(id) : null;
27
+ };
28
+ /**
29
+ * Points the target's reflected ARIA properties at the elements the host's ID-reference attributes
30
+ * name, or clears them. Run it again whenever the attributes or the referenced elements may have
31
+ * changed: element references don't follow an ID to a node added or replaced later.
32
+ */
33
+ export const forwardAriaReferences = (host, target) => {
34
+ Object.entries(ARIA_REFERENCE_PROPERTIES).forEach(([attribute, property]) => {
35
+ var _a, _b;
36
+ if (!(property in target))
37
+ return;
38
+ const ids = (_b = (_a = host.getAttribute(attribute)) === null || _a === void 0 ? void 0 : _a.split(/\s+/).filter(Boolean)) !== null && _b !== void 0 ? _b : [];
39
+ const referenced = ids.map((id) => findInAncestorRoots(host, id)).filter((el) => el !== null);
40
+ target[property] = referenced.length > 0 ? referenced : null;
41
+ });
42
+ };
@@ -0,0 +1,64 @@
1
+ /**
2
+ * The native `<dialog>` or open `popover` (as pds-filter's) an element sits in, so a popup portaled
3
+ * there shares its top layer and a click in it isn't outside it; otherwise `document.body`.
4
+ * `closest()` stops at shadow boundaries and misses one that only wraps slotted content, so this
5
+ * walks assigned slots and shadow hosts, as pds-combobox does. `isHost` picks which ancestor counts.
6
+ */
7
+ export function findPortalTarget(from, isHost = isOpenDialogOrPopover) {
8
+ const seen = new Set();
9
+ let current = from;
10
+ while (current && !seen.has(current)) {
11
+ seen.add(current);
12
+ if (current.nodeType === Node.ELEMENT_NODE && isHost(current)) {
13
+ return current;
14
+ }
15
+ const assigned = current.nodeType === Node.ELEMENT_NODE ? current.assignedSlot : null;
16
+ if (assigned) {
17
+ current = assigned;
18
+ continue;
19
+ }
20
+ const parent = current.parentNode;
21
+ current = parent instanceof ShadowRoot ? parent.host : parent;
22
+ }
23
+ return document.body;
24
+ }
25
+ /**
26
+ * A modal dialog or open popover, which paints in the top layer above anything in the body, that
27
+ * sits in the document itself: the document's stylesheets don't reach into a shadow root.
28
+ */
29
+ export function isTopLayerInDocument(el) {
30
+ if (el.getRootNode() !== el.ownerDocument)
31
+ return false;
32
+ return matchesSafely(el, ':modal') || matchesSafely(el, ':popover-open');
33
+ }
34
+ /**
35
+ * Calls `onClose` once `host` leaves the top layer (its dialog closes or its popover hides), and
36
+ * returns a function that stops listening.
37
+ */
38
+ export function onTopLayerClose(host, onClose) {
39
+ const check = () => {
40
+ if (!isTopLayerInDocument(host))
41
+ onClose();
42
+ };
43
+ host.addEventListener('close', check);
44
+ host.addEventListener('toggle', check);
45
+ return () => {
46
+ host.removeEventListener('close', check);
47
+ host.removeEventListener('toggle', check);
48
+ };
49
+ }
50
+ function isOpenDialogOrPopover(el) {
51
+ // Only an open dialog: inside a closed one, the popup would be hidden with it.
52
+ if (el.localName === 'dialog')
53
+ return el.open;
54
+ return el.hasAttribute('popover') && matchesSafely(el, ':popover-open');
55
+ }
56
+ function matchesSafely(el, selector) {
57
+ try {
58
+ return el.matches(selector);
59
+ }
60
+ catch (_a) {
61
+ // A browser without the selector (no Popover API, or no :modal): no top layer to share.
62
+ return false;
63
+ }
64
+ }
@@ -0,0 +1,82 @@
1
+ const TABBABLE = [
2
+ 'a[href]',
3
+ 'area[href]',
4
+ 'button',
5
+ 'input:not([type="hidden"])',
6
+ 'select',
7
+ 'textarea',
8
+ 'iframe',
9
+ 'summary',
10
+ '[contenteditable]:not([contenteditable="false"])',
11
+ '[tabindex]',
12
+ ].join(',');
13
+ /**
14
+ * Collects the tabbable elements under `root` in focus order, walking into open shadow roots and
15
+ * following slots, so a component's own controls (the input inside pds-combobox or pds-textarea)
16
+ * count without being registered here by tag name. Positive tabindex values are not reordered,
17
+ * and a closed shadow root can't be seen into.
18
+ */
19
+ function collectTabbable(root, found) {
20
+ for (const child of Array.from(root.children))
21
+ visitTabbable(child, found);
22
+ }
23
+ // An editing host reports tabIndex -1 but is still a Tab stop; editable content inside it is not.
24
+ const isTabStop = (el) => { var _a; return el.tabIndex >= 0 || (el.isContentEditable && !el.hasAttribute('tabindex') && !((_a = el.parentElement) === null || _a === void 0 ? void 0 : _a.isContentEditable)); };
25
+ function visitTabbable(el, found) {
26
+ var _a, _b, _c, _d;
27
+ // A tooltip portaled into a dialog only describes the control that has focus; it's never a stop of its own.
28
+ if (el.hasAttribute('inert') || el.getAttribute('role') === 'tooltip')
29
+ return;
30
+ if (el.localName === 'slot') {
31
+ const slot = el;
32
+ // Fallback content renders only when nothing at all is assigned, text included.
33
+ if (((_b = (_a = slot.assignedNodes) === null || _a === void 0 ? void 0 : _a.call(slot, { flatten: true })) !== null && _b !== void 0 ? _b : []).length === 0)
34
+ return collectTabbable(el, found);
35
+ for (const slotted of slot.assignedElements({ flatten: true }))
36
+ visitTabbable(slotted, found);
37
+ return;
38
+ }
39
+ // A delegatesFocus host passes focus to its first control, which the walk below finds.
40
+ const delegates = ((_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.delegatesFocus) === true;
41
+ if (el instanceof HTMLElement && !delegates && isTabStop(el) && el.matches(TABBABLE) && !el.matches(':disabled')) {
42
+ found.push(el);
43
+ }
44
+ // A shadow host's light children render only through its slots, which the walk reaches.
45
+ collectTabbable((_d = el.shadowRoot) !== null && _d !== void 0 ? _d : el, found);
46
+ }
47
+ /** The element as a radio in a named group, or `null`. */
48
+ const groupedRadio = (el) => el instanceof HTMLInputElement && el.type === 'radio' && el.name !== '' ? el : null;
49
+ /**
50
+ * Keeps one radio per named group, as the browser does: the checked one, or the first. The others
51
+ * are reached with the arrow keys, so they can't be the first or last stop of the trap.
52
+ */
53
+ function oneRadioPerGroup(elements) {
54
+ // Radios group by name and form within one tree, so each shadow root starts its own groups.
55
+ const groups = [];
56
+ for (const el of elements) {
57
+ const radio = groupedRadio(el);
58
+ if (radio === null)
59
+ continue;
60
+ const group = groups.find(([first]) => first.name === radio.name && first.form === radio.form && first.getRootNode() === radio.getRootNode());
61
+ if (group)
62
+ group.push(radio);
63
+ else
64
+ groups.push([radio]);
65
+ }
66
+ const stops = new Set(groups.map((radios) => { var _a; return (_a = radios.find((radio) => radio.checked)) !== null && _a !== void 0 ? _a : radios[0]; }));
67
+ return elements.filter((el) => groupedRadio(el) === null || stops.has(el));
68
+ }
69
+ /** The controls Tab reaches in `root`, in order: visible ones, and one radio per group. */
70
+ export function tabbableIn(root) {
71
+ const found = [];
72
+ collectTabbable(root, found);
73
+ // checkVisibility() also drops an element inside a hidden ancestor, whose own computed
74
+ // display isn't none; such an element can't take focus.
75
+ const visible = found.filter(el => {
76
+ if (typeof el.checkVisibility === 'function')
77
+ return el.checkVisibility({ checkVisibilityCSS: true });
78
+ const style = window.getComputedStyle(el);
79
+ return style.display !== 'none' && style.visibility !== 'hidden';
80
+ });
81
+ return oneRadioPerGroup(visible);
82
+ }
@@ -1,4 +1,8 @@
1
1
  import { computePosition, flip, offset, shift, } from "@floating-ui/dom";
2
+ import { findPortalTarget, isTopLayerInDocument, onTopLayerClose } from "./portal-target";
3
+ // Controls that clipped text can sit inside that already take focus, so the text adds no tab stop of its own.
4
+ // Not any `[tabindex]`: a focusable scroll region full of chips would show every chip's tooltip at once.
5
+ export const FOCUSABLE_WRAPPER = 'a[href], button, summary, pds-button, pds-link, pds-tab, pds-dropdown-menu-item, [role="option"]';
2
6
  /** CSS class prefix used for truncation tooltip portal elements */
3
7
  const TOOLTIP_CLASS = 'pds-truncation-tooltip';
4
8
  /**
@@ -8,7 +12,8 @@ const TOOLTIP_CLASS = 'pds-truncation-tooltip';
8
12
  *
9
13
  * Z-Index Strategy:
10
14
  * Uses --pine-z-index-nuclear (9999) to ensure tooltips appear above all other UI elements.
11
- * This is necessary because tooltips are portaled to document.body and must overlay:
15
+ * This is necessary because tooltips are portaled to document.body, or into the modal dialog or
16
+ * open popover around the host (the top layer, which no z-index reaches from the body), and must overlay:
12
17
  * - Modal dialogs
13
18
  * - Dropdown menus
14
19
  * - Other floating UI elements
@@ -48,6 +53,15 @@ function injectStyles() {
48
53
  opacity: 1;
49
54
  visibility: visible;
50
55
  }
56
+ :is(dialog, [popover]) > .${TOOLTIP_CLASS} {
57
+ font-style: normal;
58
+ font-weight: normal;
59
+ text-align: start;
60
+ text-indent: 0;
61
+ text-transform: none;
62
+ white-space: normal;
63
+ word-spacing: normal;
64
+ }
51
65
  `;
52
66
  document.head.appendChild(style);
53
67
  }
@@ -74,7 +88,8 @@ function isFocusVisible(el) {
74
88
  *
75
89
  * When the element's text overflows, hovering the host element or giving it
76
90
  * keyboard focus will display a tooltip showing the full text content. The
77
- * tooltip is rendered as a portal on document.body and positioned with Floating UI.
91
+ * tooltip is rendered as a portal on document.body, or in the modal dialog or open popover around
92
+ * the host, and positioned with Floating UI.
78
93
  *
79
94
  * Also owns the element's `tabindex` while it is clipped — see syncTabIndex.
80
95
  *
@@ -84,6 +99,7 @@ export function setupTruncationTooltip(options) {
84
99
  const { hostEl, contentEl, getTooltipText, placement = 'top', reference = hostEl, manageTabIndex = true, focusEl = hostEl } = options;
85
100
  injectStyles();
86
101
  let portalEl = null;
102
+ let stopWatchingPortalHost = null;
87
103
  let isHovering = false;
88
104
  let isHoveringPortal = false;
89
105
  let isFocused = false;
@@ -162,7 +178,11 @@ export function setupTruncationTooltip(options) {
162
178
  contentDiv.className = `${TOOLTIP_CLASS}__content`;
163
179
  contentDiv.textContent = text.trim();
164
180
  portalEl.appendChild(contentDiv);
165
- document.body.appendChild(portalEl);
181
+ const portalHost = findPortalTarget(hostEl, isTopLayerInDocument);
182
+ portalHost.appendChild(portalEl);
183
+ // Closing that host moves no pointer, so a tooltip opened by touch would outlive it unseen.
184
+ if (portalHost !== document.body)
185
+ stopWatchingPortalHost = onTopLayerClose(portalHost, closeWithPortalHost);
166
186
  // Allow the user to hover into the tooltip to select/copy text
167
187
  portalEl.addEventListener('mouseenter', handlePortalMouseEnter);
168
188
  portalEl.addEventListener('mouseleave', handlePortalMouseLeave);
@@ -201,6 +221,10 @@ export function setupTruncationTooltip(options) {
201
221
  }
202
222
  }
203
223
  function removePortal() {
224
+ if (stopWatchingPortalHost !== null) {
225
+ stopWatchingPortalHost();
226
+ stopWatchingPortalHost = null;
227
+ }
204
228
  if (portalEl) {
205
229
  portalEl.removeEventListener('mouseenter', handlePortalMouseEnter);
206
230
  portalEl.removeEventListener('mouseleave', handlePortalMouseLeave);
@@ -234,6 +258,14 @@ export function setupTruncationTooltip(options) {
234
258
  return;
235
259
  removePortal();
236
260
  }
261
+ // Hover and focus can't outlast a host that's no longer shown, so none of them keeps it open.
262
+ function closeWithPortalHost() {
263
+ isHovering = false;
264
+ isHoveringPortal = false;
265
+ isFocused = false;
266
+ cancelHideTimeout();
267
+ removePortal();
268
+ }
237
269
  /**
238
270
  * Schedules tooltip removal after a short delay.
239
271
  *
@@ -265,11 +297,18 @@ export function setupTruncationTooltip(options) {
265
297
  isHoveringPortal = false;
266
298
  scheduleHide();
267
299
  }
300
+ // A second tab stop inside focusEl, such as another clipped text, bubbles its focus here too. Its event.target is
301
+ // retargeted to the stop's outermost element in focusEl's tree, which sits beside hostEl rather than around or in it.
302
+ function isFocusForHost(target) {
303
+ return focusEl === hostEl || target === focusEl || target.contains(hostEl) || hostEl.contains(target);
304
+ }
268
305
  // Keyboard focus only: focus from a click would pin the tooltip open after the pointer leaves.
269
306
  // Events from inside a shadow root arrive retargeted to its host, so test the innermost target.
270
307
  function showForVisibleFocus(event) {
271
308
  if (!isFocusVisible(event.composedPath()[0]))
272
309
  return;
310
+ if (!isFocusForHost(event.target))
311
+ return;
273
312
  isFocused = true;
274
313
  showTooltip();
275
314
  }
package/dist/docs.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2026-10-27T18:27:39",
2
+ "timestamp": "2026-11-04T18:16:35",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.43.5",
@@ -565,6 +565,34 @@
565
565
  "getter": false,
566
566
  "setter": false
567
567
  },
568
+ {
569
+ "name": "severityLabel",
570
+ "type": "string",
571
+ "complexType": {
572
+ "original": "string",
573
+ "resolved": "string",
574
+ "references": {}
575
+ },
576
+ "mutable": false,
577
+ "attr": "severity-label",
578
+ "reflectToAttr": false,
579
+ "docs": "Accessible label announcing the alert's severity, read before the heading\nand message. Pass a translated string to localize it; defaults to English\nfor each variant (`Error`, `Info`, `Success`, `Warning`). The `default`\nvariant has no severity and announces none unless this is set; pass an\nempty string to announce none for any variant.",
580
+ "docsTags": [
581
+ {
582
+ "name": "defaultValue",
583
+ "text": "undefined"
584
+ }
585
+ ],
586
+ "values": [
587
+ {
588
+ "type": "string"
589
+ }
590
+ ],
591
+ "optional": true,
592
+ "required": false,
593
+ "getter": false,
594
+ "setter": false
595
+ },
568
596
  {
569
597
  "name": "small",
570
598
  "type": "boolean",
@@ -771,6 +799,34 @@
771
799
  "getter": false,
772
800
  "setter": false
773
801
  },
802
+ {
803
+ "name": "badgeLabel",
804
+ "type": "string",
805
+ "complexType": {
806
+ "original": "string",
807
+ "resolved": "string",
808
+ "references": {}
809
+ },
810
+ "mutable": false,
811
+ "attr": "badge-label",
812
+ "reflectToAttr": false,
813
+ "docs": "Accessible label for the badge icon. Pass a translated string to localize\nit; defaults to English. Pass an empty string to make the badge\ndecorative. Has no effect on dropdown avatars, where the trigger's\n`triggerLabel` owns the accessible name.",
814
+ "docsTags": [
815
+ {
816
+ "name": "defaultValue",
817
+ "text": "'Verified'"
818
+ }
819
+ ],
820
+ "values": [
821
+ {
822
+ "type": "string"
823
+ }
824
+ ],
825
+ "optional": true,
826
+ "required": false,
827
+ "getter": false,
828
+ "setter": false
829
+ },
774
830
  {
775
831
  "name": "componentId",
776
832
  "type": "string",
@@ -12663,7 +12719,7 @@
12663
12719
  "mutable": false,
12664
12720
  "attr": "hide-label",
12665
12721
  "reflectToAttr": false,
12666
- "docs": "Visually hides the label text for instances where only the checkbox should be displayed. Label remains accessible to assistive technology such as screen readers.",
12722
+ "docs": "Visually hides the label text for instances where only the checkbox should be displayed. Label remains accessible to assistive technology such as screen readers. Ignored when `variant` is `pill`.",
12667
12723
  "docsTags": [],
12668
12724
  "values": [
12669
12725
  {
@@ -12686,7 +12742,7 @@
12686
12742
  "mutable": true,
12687
12743
  "attr": "indeterminate",
12688
12744
  "reflectToAttr": false,
12689
- "docs": "If `true`, the checkbox will visually appear as indeterminate.\nOnly JavaScript can set the objects `indeterminate` property. See [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#indeterminate_state_checkboxes).",
12745
+ "docs": "If `true`, the checkbox will visually appear as indeterminate.\nOnly JavaScript can set the objects `indeterminate` property. See [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#indeterminate_state_checkboxes).\nHas no visual style when `variant` is `pill`.",
12690
12746
  "docsTags": [],
12691
12747
  "values": [
12692
12748
  {
@@ -12812,6 +12868,40 @@
12812
12868
  "required": false,
12813
12869
  "getter": false,
12814
12870
  "setter": false
12871
+ },
12872
+ {
12873
+ "name": "variant",
12874
+ "type": "\"default\" | \"pill\"",
12875
+ "complexType": {
12876
+ "original": "'default' | 'pill'",
12877
+ "resolved": "\"default\" | \"pill\"",
12878
+ "references": {}
12879
+ },
12880
+ "mutable": false,
12881
+ "attr": "variant",
12882
+ "reflectToAttr": false,
12883
+ "docs": "Sets the style variant of the checkbox. `pill` renders the label as a pill-shaped choice; the native input still handles keyboard, form, and screen reader behavior.",
12884
+ "docsTags": [
12885
+ {
12886
+ "name": "defaultValue",
12887
+ "text": "default"
12888
+ }
12889
+ ],
12890
+ "default": "'default'",
12891
+ "values": [
12892
+ {
12893
+ "value": "default",
12894
+ "type": "string"
12895
+ },
12896
+ {
12897
+ "value": "pill",
12898
+ "type": "string"
12899
+ }
12900
+ ],
12901
+ "optional": false,
12902
+ "required": false,
12903
+ "getter": false,
12904
+ "setter": false
12815
12905
  }
12816
12906
  ],
12817
12907
  "methods": [],
@@ -14609,6 +14699,35 @@
14609
14699
  "getter": false,
14610
14700
  "setter": false
14611
14701
  },
14702
+ {
14703
+ "name": "truncate",
14704
+ "type": "boolean",
14705
+ "complexType": {
14706
+ "original": "boolean",
14707
+ "resolved": "boolean",
14708
+ "references": {}
14709
+ },
14710
+ "mutable": false,
14711
+ "attr": "truncate",
14712
+ "reflectToAttr": true,
14713
+ "docs": "Determines whether the button trigger's label and the option labels should truncate and display with an ellipsis.\nWhen a label overflows, a `title` showing the full label will appear on hover.\nChip options, custom layouts and group rows aren't affected.",
14714
+ "docsTags": [
14715
+ {
14716
+ "name": "defaultValue",
14717
+ "text": "false"
14718
+ }
14719
+ ],
14720
+ "default": "false",
14721
+ "values": [
14722
+ {
14723
+ "type": "boolean"
14724
+ }
14725
+ ],
14726
+ "optional": false,
14727
+ "required": false,
14728
+ "getter": false,
14729
+ "setter": false
14730
+ },
14612
14731
  {
14613
14732
  "name": "value",
14614
14733
  "type": "string",
@@ -17435,6 +17554,34 @@
17435
17554
  "getter": false,
17436
17555
  "setter": false
17437
17556
  },
17557
+ {
17558
+ "name": "externalLabel",
17559
+ "type": "string",
17560
+ "complexType": {
17561
+ "original": "string",
17562
+ "resolved": "string",
17563
+ "references": {}
17564
+ },
17565
+ "mutable": false,
17566
+ "attr": "external-label",
17567
+ "reflectToAttr": false,
17568
+ "docs": "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.",
17569
+ "docsTags": [
17570
+ {
17571
+ "name": "defaultValue",
17572
+ "text": "'(opens in a new tab)'"
17573
+ }
17574
+ ],
17575
+ "values": [
17576
+ {
17577
+ "type": "string"
17578
+ }
17579
+ ],
17580
+ "optional": true,
17581
+ "required": false,
17582
+ "getter": false,
17583
+ "setter": false
17584
+ },
17438
17585
  {
17439
17586
  "name": "href",
17440
17587
  "type": "string",
@@ -19200,6 +19347,34 @@
19200
19347
  "getter": false,
19201
19348
  "setter": false
19202
19349
  },
19350
+ {
19351
+ "name": "externalLabel",
19352
+ "type": "string",
19353
+ "complexType": {
19354
+ "original": "string",
19355
+ "resolved": "string",
19356
+ "references": {}
19357
+ },
19358
+ "mutable": false,
19359
+ "attr": "external-label",
19360
+ "reflectToAttr": false,
19361
+ "docs": "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.",
19362
+ "docsTags": [
19363
+ {
19364
+ "name": "defaultValue",
19365
+ "text": "'(opens in a new tab)'"
19366
+ }
19367
+ ],
19368
+ "values": [
19369
+ {
19370
+ "type": "string"
19371
+ }
19372
+ ],
19373
+ "optional": true,
19374
+ "required": false,
19375
+ "getter": false,
19376
+ "setter": false
19377
+ },
19203
19378
  {
19204
19379
  "name": "fontSize",
19205
19380
  "type": "\"lg\" | \"md\" | \"sm\"",
@@ -22576,7 +22751,7 @@
22576
22751
  "docsTags": [
22577
22752
  {
22578
22753
  "name": "slot",
22579
- "text": "image - Custom image content to display instead of the default radio input"
22754
+ "text": "image - Custom image content to display instead of the default radio input. Ignored when `variant` is `pill`."
22580
22755
  },
22581
22756
  {
22582
22757
  "name": "part",
@@ -22704,7 +22879,7 @@
22704
22879
  "mutable": false,
22705
22880
  "attr": "has-border",
22706
22881
  "reflectToAttr": false,
22707
- "docs": "Adds a border around the radio component for better visual separation.",
22882
+ "docs": "Adds a border around the radio component for better visual separation. Ignored when `variant` is `pill`.",
22708
22883
  "docsTags": [
22709
22884
  {
22710
22885
  "name": "defaultValue",
@@ -22756,7 +22931,7 @@
22756
22931
  "mutable": false,
22757
22932
  "attr": "hide-label",
22758
22933
  "reflectToAttr": false,
22759
- "docs": "Visually hides the label text for instances where only the radio should be displayed. Label remains accessible to assistive technology such as screen readers.",
22934
+ "docs": "Visually hides the label text for instances where only the radio should be displayed. Label remains accessible to assistive technology such as screen readers. Ignored when `variant` is `pill`.",
22760
22935
  "docsTags": [],
22761
22936
  "values": [
22762
22937
  {
@@ -22894,6 +23069,40 @@
22894
23069
  "required": false,
22895
23070
  "getter": false,
22896
23071
  "setter": false
23072
+ },
23073
+ {
23074
+ "name": "variant",
23075
+ "type": "\"default\" | \"pill\"",
23076
+ "complexType": {
23077
+ "original": "'default' | 'pill'",
23078
+ "resolved": "\"default\" | \"pill\"",
23079
+ "references": {}
23080
+ },
23081
+ "mutable": false,
23082
+ "attr": "variant",
23083
+ "reflectToAttr": false,
23084
+ "docs": "Sets the style variant of the radio. `pill` renders the label as a pill-shaped choice; the native input still handles keyboard, form, and screen reader behavior.",
23085
+ "docsTags": [
23086
+ {
23087
+ "name": "defaultValue",
23088
+ "text": "default"
23089
+ }
23090
+ ],
23091
+ "default": "'default'",
23092
+ "values": [
23093
+ {
23094
+ "value": "default",
23095
+ "type": "string"
23096
+ },
23097
+ {
23098
+ "value": "pill",
23099
+ "type": "string"
23100
+ }
23101
+ ],
23102
+ "optional": false,
23103
+ "required": false,
23104
+ "getter": false,
23105
+ "setter": false
22897
23106
  }
22898
23107
  ],
22899
23108
  "methods": [],
@@ -22918,7 +23127,7 @@
22918
23127
  "slots": [
22919
23128
  {
22920
23129
  "name": "image",
22921
- "docs": "Custom image content to display instead of the default radio input"
23130
+ "docs": "Custom image content to display instead of the default radio input. Ignored when `variant` is `pill`."
22922
23131
  }
22923
23132
  ],
22924
23133
  "parts": [
@@ -26715,7 +26924,7 @@
26715
26924
  "mutable": false,
26716
26925
  "attr": "truncate",
26717
26926
  "reflectToAttr": true,
26718
- "docs": "If set or `true`, the text will be truncated. Must add a `width` to the element.\nWhen text overflows, a tooltip showing the full text will appear on hover/focus.\nNote: While the text is overflowing, the element receives tabindex=\"0\" so the\ntooltip can be reached by keyboard. Text that fits is left out of the tab order.",
26927
+ "docs": "If set or `true`, the text will be truncated. Must add a `width` to the element.\nWhen text overflows, a tooltip showing the full text will appear on hover/focus.\nNote: While the text is overflowing, the element receives tabindex=\"0\" so the\ntooltip can be reached by keyboard. Text that fits is left out of the tab order.\nInside a link or button (including `pds-button`, `pds-link`, `pds-tab`, and\n`pds-dropdown-menu-item`) that holds no other truncated text or `pds-chip` with a\n`max-width`, no tab stop is added; the tooltip appears when that control receives\nkeyboard focus.",
26719
26928
  "docsTags": [],
26720
26929
  "values": [
26721
26930
  {
@@ -27566,6 +27775,34 @@
27566
27775
  "getter": false,
27567
27776
  "setter": false
27568
27777
  },
27778
+ {
27779
+ "name": "severityLabel",
27780
+ "type": "string",
27781
+ "complexType": {
27782
+ "original": "string",
27783
+ "resolved": "string",
27784
+ "references": {}
27785
+ },
27786
+ "mutable": false,
27787
+ "attr": "severity-label",
27788
+ "reflectToAttr": false,
27789
+ "docs": "Accessible label announcing the toast's severity, read before the message.\nPass a translated string to localize it; defaults to English (`Error`) for\nthe `danger` type. Other types announce none unless this is set; pass an\nempty string to announce none.",
27790
+ "docsTags": [
27791
+ {
27792
+ "name": "defaultValue",
27793
+ "text": "undefined"
27794
+ }
27795
+ ],
27796
+ "values": [
27797
+ {
27798
+ "type": "string"
27799
+ }
27800
+ ],
27801
+ "optional": true,
27802
+ "required": false,
27803
+ "getter": false,
27804
+ "setter": false
27805
+ },
27569
27806
  {
27570
27807
  "name": "type",
27571
27808
  "type": "\"danger\" | \"default\" | \"loading\"",
@@ -1,4 +1,4 @@
1
- import { c as classNamesOf, l as limitRestores, H as HOST_RESTORE, s as stencilClassesOf } from './keep-hydrated-BLG6RDBt.js';
1
+ import { c as classNamesOf, l as limitRestores, H as HOST_RESTORE, s as stencilClassesOf } from './keep-hydrated-BgNaWLoS.js';
2
2
 
3
3
  /**
4
4
  * Sets each attribute whose current value differs, and leaves the rest alone. A `MutationObserver`
@@ -1703,4 +1703,4 @@ const computePosition = (reference, floating, options) => {
1703
1703
  });
1704
1704
  };
1705
1705
 
1706
- export { autoUpdate as a, size as b, computePosition as c, flip as f, hide as h, offset as o, shift as s };
1706
+ export { autoUpdate as a, size as b, computePosition as c, flip as f, hide as h, offset as o, platform as p, shift as s };