@pine-ds/core 4.0.0 → 4.2.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 (452) hide show
  1. package/components/index.d.ts +8 -0
  2. package/components/index.js +1 -1
  3. package/components/mock-pds-modal.js +1 -1
  4. package/components/pds-chip2.js +1 -1
  5. package/components/pds-copytext.js +1 -1
  6. package/components/pds-divider.js +1 -1
  7. package/components/pds-drawer-content.d.ts +11 -0
  8. package/components/pds-drawer-content.js +1 -0
  9. package/components/pds-drawer-footer.d.ts +11 -0
  10. package/components/pds-drawer-footer.js +1 -0
  11. package/components/pds-drawer-header.d.ts +11 -0
  12. package/components/pds-drawer-header.js +1 -0
  13. package/components/pds-drawer.d.ts +11 -0
  14. package/components/pds-drawer.js +1 -0
  15. package/components/pds-dropdown-menu-item.js +1 -1
  16. package/components/pds-dropdown-menu-separator.js +1 -1
  17. package/components/pds-dropdown-menu.js +1 -1
  18. package/components/pds-filter.js +1 -1
  19. package/components/pds-filters.js +1 -1
  20. package/components/pds-image.js +1 -1
  21. package/components/pds-input.js +1 -1
  22. package/components/pds-link2.js +1 -1
  23. package/components/pds-loader2.js +1 -1
  24. package/components/pds-modal-content.js +1 -1
  25. package/components/pds-modal-footer.js +1 -1
  26. package/components/pds-modal-header.js +1 -1
  27. package/components/pds-modal.js +1 -1
  28. package/components/pds-modal2.js +1 -0
  29. package/components/pds-multiselect.js +1 -1
  30. package/components/pds-popover.js +1 -1
  31. package/components/pds-progress.js +1 -1
  32. package/components/pds-property.js +1 -1
  33. package/components/pds-radio-group.js +1 -1
  34. package/components/pds-radio.js +1 -1
  35. package/components/pds-row.js +1 -1
  36. package/components/pds-select.js +1 -1
  37. package/components/pds-sortable-item.js +1 -1
  38. package/components/pds-sortable.js +1 -1
  39. package/components/pds-switch.js +1 -1
  40. package/components/pds-table-body.js +1 -1
  41. package/components/pds-table-cell2.js +1 -1
  42. package/components/pds-table-head-cell2.js +1 -1
  43. package/components/pds-table-head.js +1 -1
  44. package/components/pds-table-row.js +1 -1
  45. package/components/pds-tabpanel.js +1 -1
  46. package/components/pds-tabs.js +1 -1
  47. package/components/pds-text2.js +1 -1
  48. package/components/pds-textarea.js +1 -1
  49. package/components/pds-toast.js +1 -1
  50. package/components/pds-tooltip.js +1 -1
  51. package/components/truncation-tooltip.js +1 -1
  52. package/dist/cjs/{index-CKNNY-lQ.js → index-Bu3NXpbK.js} +1 -1
  53. package/dist/cjs/{index-BdFrBXCD.js → index-CuQil7H0.js} +1 -1
  54. package/dist/cjs/index.cjs.js +20 -0
  55. package/dist/cjs/loader.cjs.js +2 -2
  56. package/dist/cjs/mock-pds-modal.cjs.entry.js +2 -2
  57. package/dist/cjs/pds-accordion.cjs.entry.js +2 -2
  58. package/dist/cjs/pds-alert.cjs.entry.js +1 -1
  59. package/dist/cjs/pds-avatar.cjs.entry.js +2 -2
  60. package/dist/cjs/pds-box.cjs.entry.js +1 -1
  61. package/dist/cjs/pds-button.cjs.entry.js +2 -2
  62. package/dist/cjs/pds-checkbox.cjs.entry.js +2 -2
  63. package/dist/cjs/pds-chip.cjs.entry.js +18 -9
  64. package/dist/cjs/pds-combobox.cjs.entry.js +1 -1
  65. package/dist/cjs/pds-container.cjs.entry.js +1 -1
  66. package/dist/cjs/pds-copytext.cjs.entry.js +8 -4
  67. package/dist/cjs/pds-divider.cjs.entry.js +10 -3
  68. package/dist/cjs/pds-drawer-content.cjs.entry.js +23 -0
  69. package/dist/cjs/pds-drawer-footer.cjs.entry.js +23 -0
  70. package/dist/cjs/pds-drawer-header.cjs.entry.js +23 -0
  71. package/dist/cjs/pds-drawer.cjs.entry.js +137 -0
  72. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +2 -2
  73. package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +2 -2
  74. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +2 -2
  75. package/dist/cjs/pds-filter.cjs.entry.js +3 -3
  76. package/dist/cjs/pds-filters.cjs.entry.js +2 -2
  77. package/dist/cjs/pds-icon.cjs.entry.js +1 -1
  78. package/dist/cjs/pds-image.cjs.entry.js +3 -3
  79. package/dist/cjs/pds-input.cjs.entry.js +4 -4
  80. package/dist/cjs/pds-link.cjs.entry.js +4 -4
  81. package/dist/cjs/pds-loader.cjs.entry.js +2 -2
  82. package/dist/cjs/pds-modal-content.cjs.entry.js +3 -3
  83. package/dist/cjs/pds-modal-footer.cjs.entry.js +2 -2
  84. package/dist/cjs/pds-modal-header.cjs.entry.js +2 -2
  85. package/dist/cjs/pds-modal.cjs.entry.js +142 -11
  86. package/dist/cjs/pds-multiselect.cjs.entry.js +5 -5
  87. package/dist/cjs/pds-popover.cjs.entry.js +2 -2
  88. package/dist/cjs/pds-progress.cjs.entry.js +2 -2
  89. package/dist/cjs/pds-property.cjs.entry.js +2 -2
  90. package/dist/cjs/pds-radio-group.cjs.entry.js +5 -5
  91. package/dist/cjs/pds-radio.cjs.entry.js +5 -5
  92. package/dist/cjs/pds-row.cjs.entry.js +2 -2
  93. package/dist/cjs/pds-select.cjs.entry.js +3 -3
  94. package/dist/cjs/pds-sortable-item.cjs.entry.js +3 -3
  95. package/dist/cjs/pds-sortable.cjs.entry.js +2 -2
  96. package/dist/cjs/pds-switch.cjs.entry.js +6 -6
  97. package/dist/cjs/pds-tab.cjs.entry.js +1 -1
  98. package/dist/cjs/pds-table-body.cjs.entry.js +2 -2
  99. package/dist/cjs/pds-table-cell.cjs.entry.js +4 -4
  100. package/dist/cjs/pds-table-head-cell.cjs.entry.js +4 -4
  101. package/dist/cjs/pds-table-head.cjs.entry.js +2 -2
  102. package/dist/cjs/pds-table-row.cjs.entry.js +2 -2
  103. package/dist/cjs/pds-table.cjs.entry.js +1 -1
  104. package/dist/cjs/pds-tabpanel.cjs.entry.js +2 -2
  105. package/dist/cjs/pds-tabs.cjs.entry.js +2 -2
  106. package/dist/cjs/pds-text.cjs.entry.js +6 -24
  107. package/dist/cjs/pds-textarea.cjs.entry.js +6 -6
  108. package/dist/cjs/pds-toast.cjs.entry.js +4 -4
  109. package/dist/cjs/pds-tooltip.cjs.entry.js +3 -3
  110. package/dist/cjs/pine-core.cjs.js +2 -2
  111. package/dist/cjs/{truncation-tooltip-CVzAha5B.js → truncation-tooltip-Bps7_rUy.js} +51 -1
  112. package/dist/collection/collection-manifest.json +4 -0
  113. package/dist/collection/components/pds-chip/pds-chip.js +15 -6
  114. package/dist/collection/components/pds-copytext/pds-copytext.js +5 -1
  115. package/dist/collection/components/pds-divider/pds-divider.css +41 -0
  116. package/dist/collection/components/pds-divider/pds-divider.js +30 -1
  117. package/dist/collection/components/pds-divider/stories/pds-divider.stories.js +7 -0
  118. package/dist/collection/components/pds-drawer/pds-drawer-content/pds-drawer-content.css +22 -0
  119. package/dist/collection/components/pds-drawer/pds-drawer-content/pds-drawer-content.js +29 -0
  120. package/dist/collection/components/pds-drawer/pds-drawer-footer/pds-drawer-footer.css +15 -0
  121. package/dist/collection/components/pds-drawer/pds-drawer-footer/pds-drawer-footer.js +23 -0
  122. package/dist/collection/components/pds-drawer/pds-drawer-header/pds-drawer-header.css +15 -0
  123. package/dist/collection/components/pds-drawer/pds-drawer-header/pds-drawer-header.js +23 -0
  124. package/dist/collection/components/pds-drawer/pds-drawer.css +36 -0
  125. package/dist/collection/components/pds-drawer/pds-drawer.js +362 -0
  126. package/dist/collection/components/pds-drawer/stories/pds-drawer.stories.js +72 -0
  127. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js +1 -1
  128. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js +1 -1
  129. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +1 -1
  130. package/dist/collection/components/pds-filters/pds-filter/pds-filter.js +1 -1
  131. package/dist/collection/components/pds-filters/pds-filters.js +1 -1
  132. package/dist/collection/components/pds-image/pds-image.js +2 -2
  133. package/dist/collection/components/pds-input/pds-input.js +2 -2
  134. package/dist/collection/components/pds-link/pds-link.js +2 -2
  135. package/dist/collection/components/pds-loader/pds-loader.js +1 -1
  136. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js +2 -2
  137. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js +1 -1
  138. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js +1 -1
  139. package/dist/collection/components/pds-modal/pds-modal.js +164 -10
  140. package/dist/collection/components/pds-modal/test/mock-pds-modal.js +1 -1
  141. package/dist/collection/components/pds-multiselect/pds-multiselect.js +3 -3
  142. package/dist/collection/components/pds-popover/pds-popover.js +1 -1
  143. package/dist/collection/components/pds-progress/pds-progress.js +1 -1
  144. package/dist/collection/components/pds-property/pds-property.js +1 -1
  145. package/dist/collection/components/pds-radio/pds-radio.js +3 -3
  146. package/dist/collection/components/pds-radio-group/pds-radio-group.js +3 -3
  147. package/dist/collection/components/pds-row/pds-row.js +1 -1
  148. package/dist/collection/components/pds-select/pds-select.js +1 -1
  149. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +1 -1
  150. package/dist/collection/components/pds-sortable/pds-sortable.js +1 -1
  151. package/dist/collection/components/pds-switch/pds-switch.css +1 -1
  152. package/dist/collection/components/pds-switch/pds-switch.js +3 -3
  153. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js +1 -1
  154. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +3 -3
  155. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +1 -1
  156. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +2 -2
  157. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +1 -1
  158. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +1 -1
  159. package/dist/collection/components/pds-tabs/pds-tabs.js +1 -1
  160. package/dist/collection/components/pds-text/pds-text.js +2 -2
  161. package/dist/collection/components/pds-textarea/pds-textarea.js +4 -4
  162. package/dist/collection/components/pds-toast/pds-toast.js +3 -3
  163. package/dist/collection/components/pds-tooltip/pds-tooltip.js +2 -2
  164. package/dist/collection/index.js +1 -0
  165. package/dist/collection/utils/test/reduced-motion.js +78 -0
  166. package/dist/collection/utils/truncation-tooltip.js +51 -1
  167. package/dist/docs.json +419 -6
  168. package/dist/esm/{index-NNDTPCWx.js → index-CTLu1TM4.js} +1 -1
  169. package/dist/esm/{index-BjlFq0VD.js → index-DdPaBxPo.js} +1 -1
  170. package/dist/esm/index.js +19 -0
  171. package/dist/esm/loader.js +3 -3
  172. package/dist/esm/mock-pds-modal.entry.js +2 -2
  173. package/dist/esm/pds-accordion.entry.js +2 -2
  174. package/dist/esm/pds-alert.entry.js +1 -1
  175. package/dist/esm/pds-avatar.entry.js +2 -2
  176. package/dist/esm/pds-box.entry.js +1 -1
  177. package/dist/esm/pds-button.entry.js +2 -2
  178. package/dist/esm/pds-checkbox.entry.js +2 -2
  179. package/dist/esm/pds-chip.entry.js +18 -9
  180. package/dist/esm/pds-combobox.entry.js +1 -1
  181. package/dist/esm/pds-container.entry.js +1 -1
  182. package/dist/esm/pds-copytext.entry.js +8 -4
  183. package/dist/esm/pds-divider.entry.js +10 -3
  184. package/dist/esm/pds-drawer-content.entry.js +21 -0
  185. package/dist/esm/pds-drawer-footer.entry.js +21 -0
  186. package/dist/esm/pds-drawer-header.entry.js +21 -0
  187. package/dist/esm/pds-drawer.entry.js +135 -0
  188. package/dist/esm/pds-dropdown-menu-item.entry.js +2 -2
  189. package/dist/esm/pds-dropdown-menu-separator.entry.js +2 -2
  190. package/dist/esm/pds-dropdown-menu.entry.js +2 -2
  191. package/dist/esm/pds-filter.entry.js +3 -3
  192. package/dist/esm/pds-filters.entry.js +2 -2
  193. package/dist/esm/pds-icon.entry.js +1 -1
  194. package/dist/esm/pds-image.entry.js +3 -3
  195. package/dist/esm/pds-input.entry.js +4 -4
  196. package/dist/esm/pds-link.entry.js +4 -4
  197. package/dist/esm/pds-loader.entry.js +2 -2
  198. package/dist/esm/pds-modal-content.entry.js +3 -3
  199. package/dist/esm/pds-modal-footer.entry.js +2 -2
  200. package/dist/esm/pds-modal-header.entry.js +2 -2
  201. package/dist/esm/pds-modal.entry.js +142 -11
  202. package/dist/esm/pds-multiselect.entry.js +5 -5
  203. package/dist/esm/pds-popover.entry.js +2 -2
  204. package/dist/esm/pds-progress.entry.js +2 -2
  205. package/dist/esm/pds-property.entry.js +2 -2
  206. package/dist/esm/pds-radio-group.entry.js +5 -5
  207. package/dist/esm/pds-radio.entry.js +5 -5
  208. package/dist/esm/pds-row.entry.js +2 -2
  209. package/dist/esm/pds-select.entry.js +3 -3
  210. package/dist/esm/pds-sortable-item.entry.js +3 -3
  211. package/dist/esm/pds-sortable.entry.js +2 -2
  212. package/dist/esm/pds-switch.entry.js +6 -6
  213. package/dist/esm/pds-tab.entry.js +1 -1
  214. package/dist/esm/pds-table-body.entry.js +2 -2
  215. package/dist/esm/pds-table-cell.entry.js +4 -4
  216. package/dist/esm/pds-table-head-cell.entry.js +4 -4
  217. package/dist/esm/pds-table-head.entry.js +2 -2
  218. package/dist/esm/pds-table-row.entry.js +2 -2
  219. package/dist/esm/pds-table.entry.js +1 -1
  220. package/dist/esm/pds-tabpanel.entry.js +2 -2
  221. package/dist/esm/pds-tabs.entry.js +2 -2
  222. package/dist/esm/pds-text.entry.js +4 -22
  223. package/dist/esm/pds-textarea.entry.js +6 -6
  224. package/dist/esm/pds-toast.entry.js +4 -4
  225. package/dist/esm/pds-tooltip.entry.js +3 -3
  226. package/dist/esm/pine-core.js +3 -3
  227. package/dist/esm/{truncation-tooltip-Blk4GigP.js → truncation-tooltip-CdtEBn_5.js} +51 -1
  228. package/dist/esm-es5/{index-NNDTPCWx.js → index-CTLu1TM4.js} +1 -1
  229. package/dist/esm-es5/index.js +1 -0
  230. package/dist/esm-es5/loader.js +1 -1
  231. package/dist/esm-es5/mock-pds-modal.entry.js +1 -1
  232. package/dist/esm-es5/pds-accordion.entry.js +1 -1
  233. package/dist/esm-es5/pds-alert.entry.js +1 -1
  234. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  235. package/dist/esm-es5/pds-box.entry.js +1 -1
  236. package/dist/esm-es5/pds-button.entry.js +1 -1
  237. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  238. package/dist/esm-es5/pds-chip.entry.js +1 -1
  239. package/dist/esm-es5/pds-combobox.entry.js +1 -1
  240. package/dist/esm-es5/pds-container.entry.js +1 -1
  241. package/dist/esm-es5/pds-copytext.entry.js +1 -1
  242. package/dist/esm-es5/pds-divider.entry.js +1 -1
  243. package/dist/esm-es5/pds-drawer-content.entry.js +1 -0
  244. package/dist/esm-es5/pds-drawer-footer.entry.js +1 -0
  245. package/dist/esm-es5/pds-drawer-header.entry.js +1 -0
  246. package/dist/esm-es5/pds-drawer.entry.js +1 -0
  247. package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -1
  248. package/dist/esm-es5/pds-dropdown-menu-separator.entry.js +1 -1
  249. package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
  250. package/dist/esm-es5/pds-filter.entry.js +1 -1
  251. package/dist/esm-es5/pds-filters.entry.js +1 -1
  252. package/dist/esm-es5/pds-icon.entry.js +1 -1
  253. package/dist/esm-es5/pds-image.entry.js +1 -1
  254. package/dist/esm-es5/pds-input.entry.js +1 -1
  255. package/dist/esm-es5/pds-link.entry.js +1 -1
  256. package/dist/esm-es5/pds-loader.entry.js +1 -1
  257. package/dist/esm-es5/pds-modal-content.entry.js +1 -1
  258. package/dist/esm-es5/pds-modal-footer.entry.js +1 -1
  259. package/dist/esm-es5/pds-modal-header.entry.js +1 -1
  260. package/dist/esm-es5/pds-modal.entry.js +1 -1
  261. package/dist/esm-es5/pds-multiselect.entry.js +1 -1
  262. package/dist/esm-es5/pds-popover.entry.js +1 -1
  263. package/dist/esm-es5/pds-progress.entry.js +1 -1
  264. package/dist/esm-es5/pds-property.entry.js +1 -1
  265. package/dist/esm-es5/pds-radio-group.entry.js +1 -1
  266. package/dist/esm-es5/pds-radio.entry.js +1 -1
  267. package/dist/esm-es5/pds-row.entry.js +1 -1
  268. package/dist/esm-es5/pds-select.entry.js +1 -1
  269. package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
  270. package/dist/esm-es5/pds-sortable.entry.js +2 -2
  271. package/dist/esm-es5/pds-switch.entry.js +1 -1
  272. package/dist/esm-es5/pds-tab.entry.js +1 -1
  273. package/dist/esm-es5/pds-table-body.entry.js +1 -1
  274. package/dist/esm-es5/pds-table-cell.entry.js +1 -1
  275. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  276. package/dist/esm-es5/pds-table-head.entry.js +1 -1
  277. package/dist/esm-es5/pds-table-row.entry.js +1 -1
  278. package/dist/esm-es5/pds-table.entry.js +1 -1
  279. package/dist/esm-es5/pds-tabpanel.entry.js +1 -1
  280. package/dist/esm-es5/pds-tabs.entry.js +1 -1
  281. package/dist/esm-es5/pds-text.entry.js +1 -1
  282. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  283. package/dist/esm-es5/pds-toast.entry.js +1 -1
  284. package/dist/esm-es5/pds-tooltip.entry.js +1 -1
  285. package/dist/esm-es5/pine-core.js +1 -1
  286. package/dist/esm-es5/truncation-tooltip-CdtEBn_5.js +1 -0
  287. package/dist/pine-core/index.esm.js +1 -0
  288. package/dist/pine-core/p-02a47ebb.entry.js +1 -0
  289. package/dist/pine-core/{p-b3b44b80.entry.js → p-049681fc.entry.js} +1 -1
  290. package/dist/pine-core/p-053b0898.system.entry.js +1 -0
  291. package/dist/pine-core/p-09413b07.entry.js +1 -0
  292. package/dist/pine-core/{p-17d4a99a.system.entry.js → p-0ab735aa.system.entry.js} +1 -1
  293. package/dist/pine-core/p-12182cab.entry.js +1 -0
  294. package/dist/pine-core/{p-3170d53b.system.entry.js → p-12ec8186.system.entry.js} +1 -1
  295. package/dist/pine-core/p-15d3a4bc.system.entry.js +1 -0
  296. package/dist/pine-core/{p-606418b7.system.entry.js → p-1614c000.system.entry.js} +1 -1
  297. package/dist/pine-core/{p-6254d112.entry.js → p-17dc3f87.entry.js} +1 -1
  298. package/dist/pine-core/p-18a59cdd.system.entry.js +1 -0
  299. package/dist/pine-core/{p-2ec460e1.system.entry.js → p-1e2a9b5d.system.entry.js} +1 -1
  300. package/dist/pine-core/{p-6f82e8dc.system.entry.js → p-1f307e59.system.entry.js} +1 -1
  301. package/dist/pine-core/{p-f145e018.entry.js → p-2016c878.entry.js} +1 -1
  302. package/dist/pine-core/{p-5e6e8d4e.system.entry.js → p-222ff58e.system.entry.js} +1 -1
  303. package/dist/pine-core/{p-cd407bed.system.entry.js → p-2eb8d697.system.entry.js} +1 -1
  304. package/dist/pine-core/{p-bf759fc0.entry.js → p-31e1722e.entry.js} +1 -1
  305. package/dist/pine-core/p-324a7ae4.system.entry.js +1 -0
  306. package/dist/pine-core/{p-c35fe2e2.entry.js → p-32f10aa9.entry.js} +1 -1
  307. package/dist/pine-core/p-33c0f3c9.system.entry.js +1 -0
  308. package/dist/pine-core/{p-31679dbc.system.entry.js → p-3464b456.system.entry.js} +1 -1
  309. package/dist/pine-core/{p-69372e72.system.entry.js → p-34e38037.system.entry.js} +1 -1
  310. package/dist/pine-core/{p-2d1cc047.entry.js → p-3605a5f5.entry.js} +1 -1
  311. package/dist/pine-core/{p-c2688710.entry.js → p-376f8286.entry.js} +1 -1
  312. package/dist/pine-core/{p-292cf8f9.entry.js → p-3873f55b.entry.js} +1 -1
  313. package/dist/pine-core/{p-b0058cb0.entry.js → p-3aec9079.entry.js} +1 -1
  314. package/dist/pine-core/{p-464ec4eb.system.entry.js → p-3c229a00.system.entry.js} +1 -1
  315. package/dist/pine-core/{p-2fc127b4.system.entry.js → p-3c4236a8.system.entry.js} +1 -1
  316. package/dist/pine-core/{p-43ef94bc.entry.js → p-3e0c6384.entry.js} +1 -1
  317. package/dist/pine-core/p-3eca0b00.entry.js +1 -0
  318. package/dist/pine-core/{p-62f75f84.entry.js → p-3f12afb1.entry.js} +1 -1
  319. package/dist/pine-core/p-43338f77.system.entry.js +1 -0
  320. package/dist/pine-core/{p-b89583e7.system.entry.js → p-4661259e.system.entry.js} +1 -1
  321. package/dist/pine-core/{p-5c7a72aa.system.entry.js → p-4d388957.system.entry.js} +1 -1
  322. package/dist/pine-core/{p-7e065b59.entry.js → p-51b8490d.entry.js} +1 -1
  323. package/dist/pine-core/{p-d9cb26fe.system.entry.js → p-51dff5af.system.entry.js} +1 -1
  324. package/dist/pine-core/p-53a4852e.system.entry.js +1 -0
  325. package/dist/pine-core/{p-076aaa00.system.entry.js → p-56b34569.system.entry.js} +1 -1
  326. package/dist/pine-core/{p-a03c12a4.system.entry.js → p-5772f260.system.entry.js} +1 -1
  327. package/dist/pine-core/{p-3cece186.system.entry.js → p-585ad368.system.entry.js} +1 -1
  328. package/dist/pine-core/p-591fbff5.entry.js +1 -0
  329. package/dist/pine-core/{p-83e8f145.entry.js → p-5aea1082.entry.js} +1 -1
  330. package/dist/pine-core/{p-ff1e9a32.entry.js → p-5d585aa8.entry.js} +1 -1
  331. package/dist/pine-core/{p-1f20608e.system.entry.js → p-5dd393cd.system.entry.js} +1 -1
  332. package/dist/pine-core/p-613a64f1.entry.js +1 -0
  333. package/dist/pine-core/p-630f33d6.system.entry.js +1 -0
  334. package/dist/pine-core/{p-9374cf48.system.entry.js → p-63686e2a.system.entry.js} +1 -1
  335. package/dist/pine-core/{p-fef6694d.entry.js → p-6f7a7d55.entry.js} +1 -1
  336. package/dist/pine-core/{p-0a4f2d5f.system.entry.js → p-6fd863e5.system.entry.js} +1 -1
  337. package/dist/pine-core/{p-18ae43e3.entry.js → p-714bfdbd.entry.js} +1 -1
  338. package/dist/pine-core/{p-43268325.system.entry.js → p-76286a68.system.entry.js} +1 -1
  339. package/dist/pine-core/{p-43d6ab33.system.entry.js → p-7691a875.system.entry.js} +1 -1
  340. package/dist/pine-core/p-78fd593d.system.entry.js +1 -0
  341. package/dist/pine-core/{p-8c0040c4.entry.js → p-7b1e3e91.entry.js} +1 -1
  342. package/dist/pine-core/{p-7bac161d.entry.js → p-7e2b934d.entry.js} +1 -1
  343. package/dist/pine-core/p-7e44106e.entry.js +1 -0
  344. package/dist/pine-core/p-84ade640.entry.js +1 -0
  345. package/dist/pine-core/{p-24fcf841.system.entry.js → p-869ed1c0.system.entry.js} +1 -1
  346. package/dist/pine-core/p-86bc2a0c.entry.js +1 -0
  347. package/dist/pine-core/{p-caf73216.entry.js → p-8be301b6.entry.js} +1 -1
  348. package/dist/pine-core/{p-73b40545.system.entry.js → p-8cc270f0.system.entry.js} +1 -1
  349. package/dist/pine-core/p-8cea0d7a.system.entry.js +1 -0
  350. package/dist/pine-core/{p-b759dc21.entry.js → p-8eef80d5.entry.js} +1 -1
  351. package/dist/pine-core/p-9187c26c.system.entry.js +1 -0
  352. package/dist/pine-core/{p-2c5fe3d9.system.entry.js → p-92ef1608.system.entry.js} +1 -1
  353. package/dist/pine-core/{p-d12a93d6.entry.js → p-957dbb0c.entry.js} +1 -1
  354. package/dist/pine-core/p-B2nn1gSd.js +1 -0
  355. package/dist/pine-core/{p-CRCxGYgw.system.js → p-B2qvvB3q.system.js} +1 -1
  356. package/dist/pine-core/p-CTLu1TM4.js +2 -0
  357. package/dist/pine-core/{p-DVZjHa4_.system.js → p-DAIsVNlL.system.js} +1 -1
  358. package/dist/pine-core/p-Dr-FzkdE.system.js +1 -0
  359. package/dist/pine-core/p-G3CPPJEt.system.js +1 -0
  360. package/dist/pine-core/{p-1b8ac76c.system.entry.js → p-a11a9c40.system.entry.js} +1 -1
  361. package/dist/pine-core/p-a4a58477.entry.js +1 -0
  362. package/dist/pine-core/{p-6630f428.system.entry.js → p-a98bf89f.system.entry.js} +1 -1
  363. package/dist/pine-core/{p-ac2775b5.entry.js → p-ac0098fd.entry.js} +1 -1
  364. package/dist/pine-core/{p-8cb0eed9.entry.js → p-b109de2e.entry.js} +1 -1
  365. package/dist/pine-core/{p-cf389430.system.entry.js → p-b32e3174.system.entry.js} +1 -1
  366. package/dist/pine-core/{p-16f13b17.entry.js → p-b923a70b.entry.js} +1 -1
  367. package/dist/pine-core/p-be4a6cc2.entry.js +1 -0
  368. package/dist/pine-core/{p-f7cbdb81.system.entry.js → p-be819bff.system.entry.js} +1 -1
  369. package/dist/pine-core/{p-78cd9f97.system.entry.js → p-bf3afa16.system.entry.js} +1 -1
  370. package/dist/pine-core/{p-85f7428b.system.entry.js → p-c09dab1a.system.entry.js} +1 -1
  371. package/dist/pine-core/p-c0b3f2c1.system.entry.js +1 -0
  372. package/dist/pine-core/p-c1f8a187.entry.js +1 -0
  373. package/dist/pine-core/{p-47708864.entry.js → p-c5ce6dea.entry.js} +1 -1
  374. package/dist/pine-core/{p-6bc9b904.system.entry.js → p-c8bffb08.system.entry.js} +1 -1
  375. package/dist/pine-core/p-cf24ed1e.system.entry.js +1 -0
  376. package/dist/pine-core/{p-b1e5e8b1.system.entry.js → p-d0d2a886.system.entry.js} +1 -1
  377. package/dist/pine-core/{p-1e87e72a.entry.js → p-d12ef40d.entry.js} +1 -1
  378. package/dist/pine-core/{p-5d1228cb.entry.js → p-d21739eb.entry.js} +1 -1
  379. package/dist/pine-core/p-d280741f.entry.js +1 -0
  380. package/dist/pine-core/{p-ab0b992b.entry.js → p-d415bb01.entry.js} +2 -2
  381. package/dist/pine-core/p-d43db3ba.entry.js +1 -0
  382. package/dist/pine-core/{p-ec2c0e57.entry.js → p-d46adf7d.entry.js} +2 -2
  383. package/dist/pine-core/{p-419e711c.entry.js → p-d7865297.entry.js} +1 -1
  384. package/dist/pine-core/{p-8d6fd5a7.system.entry.js → p-d9ffb2d9.system.entry.js} +1 -1
  385. package/dist/pine-core/p-db5703f2.entry.js +1 -0
  386. package/dist/pine-core/p-dd6d9807.system.entry.js +1 -0
  387. package/dist/pine-core/p-e0da17aa.system.entry.js +1 -0
  388. package/dist/pine-core/{p-a8a1ae32.system.entry.js → p-e1653d75.system.entry.js} +1 -1
  389. package/dist/pine-core/{p-a0edb4ad.entry.js → p-e3600c53.entry.js} +1 -1
  390. package/dist/pine-core/{p-ebe218f8.entry.js → p-e3a7d2db.entry.js} +1 -1
  391. package/dist/pine-core/{p-b5c760c8.system.entry.js → p-e3cd4627.system.entry.js} +1 -1
  392. package/dist/pine-core/{p-950dd70e.system.entry.js → p-e410b0d8.system.entry.js} +1 -1
  393. package/dist/pine-core/p-e5bbe8cc.entry.js +1 -0
  394. package/dist/pine-core/{p-f6d1469d.entry.js → p-e95225cf.entry.js} +1 -1
  395. package/dist/pine-core/{p-43a1d9d7.entry.js → p-ed297f3e.entry.js} +1 -1
  396. package/dist/pine-core/{p-7153efaf.system.entry.js → p-f21aea90.system.entry.js} +1 -1
  397. package/dist/pine-core/{p-39c6e6c9.entry.js → p-f35596cd.entry.js} +1 -1
  398. package/dist/pine-core/{p-b9380ce8.entry.js → p-f7a5062f.entry.js} +1 -1
  399. package/dist/pine-core/{p-d70201bb.entry.js → p-f94667b5.entry.js} +1 -1
  400. package/dist/pine-core/p-fbf5f315.entry.js +1 -0
  401. package/dist/pine-core/{p-c3748812.system.entry.js → p-fec298bb.system.entry.js} +2 -2
  402. package/dist/pine-core/pine-core.css +1 -1
  403. package/dist/pine-core/pine-core.esm.js +1 -1
  404. package/dist/pine-core/pine-core.js +1 -1
  405. package/dist/types/components/pds-divider/pds-divider.d.ts +8 -0
  406. package/dist/types/components/pds-drawer/pds-drawer-content/pds-drawer-content.d.ts +11 -0
  407. package/dist/types/components/pds-drawer/pds-drawer-footer/pds-drawer-footer.d.ts +5 -0
  408. package/dist/types/components/pds-drawer/pds-drawer-header/pds-drawer-header.d.ts +5 -0
  409. package/dist/types/components/pds-drawer/pds-drawer.d.ts +78 -0
  410. package/dist/types/components/pds-modal/pds-modal.d.ts +38 -0
  411. package/dist/types/components/pds-table/pds-table-cell/pds-table-cell.d.ts +2 -1
  412. package/dist/types/components/pds-text/pds-text.d.ts +2 -1
  413. package/dist/types/components.d.ts +237 -4
  414. package/dist/types/index.d.ts +1 -0
  415. package/dist/types/utils/test/reduced-motion.d.ts +30 -0
  416. package/dist/types/utils/truncation-tooltip.d.ts +12 -0
  417. package/dist/vscode.html-data.json +147 -3
  418. package/hydrate/index.js +551 -103
  419. package/hydrate/index.mjs +551 -103
  420. package/package.json +7 -3
  421. package/dist/esm-es5/truncation-tooltip-Blk4GigP.js +0 -1
  422. package/dist/pine-core/p-08b0d298.entry.js +0 -1
  423. package/dist/pine-core/p-0a09ccbe.entry.js +0 -1
  424. package/dist/pine-core/p-20e0d06c.system.entry.js +0 -1
  425. package/dist/pine-core/p-36fc1ade.system.entry.js +0 -1
  426. package/dist/pine-core/p-73619cfc.system.entry.js +0 -1
  427. package/dist/pine-core/p-7803c5b6.system.entry.js +0 -1
  428. package/dist/pine-core/p-7ad6f313.entry.js +0 -1
  429. package/dist/pine-core/p-7b85115b.system.entry.js +0 -1
  430. package/dist/pine-core/p-7b97974e.system.entry.js +0 -1
  431. package/dist/pine-core/p-7e146a45.entry.js +0 -1
  432. package/dist/pine-core/p-8249e027.entry.js +0 -1
  433. package/dist/pine-core/p-86d12f3c.system.entry.js +0 -1
  434. package/dist/pine-core/p-8c85f53a.entry.js +0 -1
  435. package/dist/pine-core/p-92f648ba.entry.js +0 -1
  436. package/dist/pine-core/p-B1rytYxP.system.js +0 -1
  437. package/dist/pine-core/p-BNSGedhN.js +0 -1
  438. package/dist/pine-core/p-NNDTPCWx.js +0 -2
  439. package/dist/pine-core/p-YWpyar7R.system.js +0 -1
  440. package/dist/pine-core/p-af1e2778.entry.js +0 -1
  441. package/dist/pine-core/p-b6812452.system.entry.js +0 -1
  442. package/dist/pine-core/p-b8f288e8.entry.js +0 -1
  443. package/dist/pine-core/p-cd2370d0.system.entry.js +0 -1
  444. package/dist/pine-core/p-d281464e.entry.js +0 -1
  445. package/dist/pine-core/p-dc460e2d.system.entry.js +0 -1
  446. package/dist/pine-core/p-dcc4ee5e.entry.js +0 -1
  447. package/dist/pine-core/p-def5d3d3.entry.js +0 -1
  448. package/dist/pine-core/p-dfa70d20.entry.js +0 -1
  449. package/dist/pine-core/p-eed4b552.system.entry.js +0 -1
  450. /package/dist/esm-es5/{index-BjlFq0VD.js → index-DdPaBxPo.js} +0 -0
  451. /package/dist/pine-core/{p-WYNNo1N0.system.js → p--Llh7wKm.system.js} +0 -0
  452. /package/dist/pine-core/{p-BjlFq0VD.js → p-DdPaBxPo.js} +0 -0
@@ -0,0 +1,5 @@
1
+ export declare class PdsDrawerFooter {
2
+ el: HTMLPdsDrawerFooterElement;
3
+ componentDidRender(): void;
4
+ render(): any;
5
+ }
@@ -0,0 +1,5 @@
1
+ export declare class PdsDrawerHeader {
2
+ el: HTMLPdsDrawerHeaderElement;
3
+ componentDidRender(): void;
4
+ render(): any;
5
+ }
@@ -0,0 +1,78 @@
1
+ import { EventEmitter } from '../../stencil-public-runtime';
2
+ /**
3
+ * A non-modal side panel composed from `pds-modal`.
4
+ *
5
+ * Unlike `pds-modal`, the page stays interactive while a drawer is open: no
6
+ * dimming, no blur, no scroll lock, no click blocking. `pds-drawer` renders a
7
+ * `pds-modal` internally with `disableTopLayer` always on and its backdrop
8
+ * suppressed, and adds the edge, width and dismiss behavior a side panel
9
+ * needs on top. It does not reimplement focus, Escape or dialog semantics —
10
+ * those come from `pds-modal` unchanged.
11
+ */
12
+ export declare class PdsDrawer {
13
+ el: HTMLPdsDrawerElement;
14
+ private modalEl?;
15
+ componentDidRender(): void;
16
+ /**
17
+ * A unique identifier used for the underlying component `id` attribute.
18
+ */
19
+ componentId: string;
20
+ /**
21
+ * Whether the drawer is open
22
+ * @default false
23
+ */
24
+ open: boolean;
25
+ /**
26
+ * Which edge of the viewport the drawer is docked to. Logical, so this is
27
+ * free under RTL — `end` is the inline-end edge regardless of direction.
28
+ * @default 'end'
29
+ */
30
+ side: 'start' | 'end';
31
+ /**
32
+ * The drawer's width.
33
+ * @default 'md'
34
+ */
35
+ size: 'sm' | 'md';
36
+ /**
37
+ * Whether the drawer content should be scrollable
38
+ * @default true
39
+ */
40
+ scrollable: boolean;
41
+ /**
42
+ * Whether the drawer can be dismissed with a pointerdown outside it.
43
+ * Replaces `pds-modal`'s `backdropDismiss` — there is no backdrop to click.
44
+ * This also gates Escape, matching how `backdropDismiss` gates Escape on
45
+ * `pds-modal` today: setting this to `false` means the close button is the
46
+ * only way out.
47
+ *
48
+ * A trigger outside the drawer should only ever set `open` to `true` and
49
+ * leave closing to the drawer itself. A toggle-style trigger (`open =
50
+ * !open`) fights light dismiss: clicking it while open closes the drawer
51
+ * on `pointerdown`, then the trigger's own click handler re-opens it.
52
+ * @default true
53
+ */
54
+ lightDismiss: boolean;
55
+ /**
56
+ * Whether to move focus into the drawer when it opens. `auto` is right for
57
+ * a drawer opened by a direct user action (a click, a deep link the user
58
+ * just navigated to). Set to `none` for a drawer that can open from a
59
+ * background event while the user is mid-task elsewhere on the page —
60
+ * moving focus there would interrupt them, and the page stays live under
61
+ * a non-modal drawer, so it is a genuine data-entry risk, not just an
62
+ * annoyance.
63
+ * @default 'auto'
64
+ */
65
+ initialFocus: 'auto' | 'none';
66
+ /**
67
+ * Emitted when the drawer is opened
68
+ */
69
+ pdsDrawerOpen: EventEmitter<void>;
70
+ /**
71
+ * Emitted when the drawer is closed
72
+ */
73
+ pdsDrawerClose: EventEmitter<void>;
74
+ handleModalClose(e: CustomEvent<void>): void;
75
+ handleModalOpen(e: CustomEvent<void>): void;
76
+ handleOutsidePointerDown(e: PointerEvent): void;
77
+ render(): any;
78
+ }
@@ -38,6 +38,19 @@ export declare class PdsModal {
38
38
  * @default false
39
39
  */
40
40
  disableTopLayer: boolean;
41
+ /**
42
+ * Whether to skip moving focus into the modal when it opens — both our own
43
+ * `setInitialFocus()` and the browser's native "dialog focusing steps",
44
+ * which move focus into the dialog as soon as `show()`/`showModal()` is
45
+ * called regardless of application code. Focus return on close is
46
+ * unaffected either way. For a modal opened by something other than a
47
+ * direct user click — a redirect, a deep link, a background event —
48
+ * stealing focus on open can interrupt whatever the user was already
49
+ * doing. Default `false` preserves today's behavior for every existing
50
+ * consumer.
51
+ * @default false
52
+ */
53
+ disableInitialFocus: boolean;
41
54
  /**
42
55
  * Emitted when the modal is opened
43
56
  */
@@ -79,6 +92,31 @@ export declare class PdsModal {
79
92
  * Gets the z-index of a modal's backdrop element
80
93
  */
81
94
  private getBackdropZIndex;
95
+ /**
96
+ * Whether `active` sits inside a surface actually stacked above this modal.
97
+ *
98
+ * Used to decide whether an Escape keypress belongs to that surface instead
99
+ * of this modal. Focus being merely *outside* this modal is not enough on
100
+ * its own: in `disableTopLayer` mode the page stays interactive (that's the
101
+ * point of a non-modal usage like a drawer), so focus will routinely be on
102
+ * ordinary page content while the modal is open, and that must not be
103
+ * mistaken for "an overlay owns Escape."
104
+ *
105
+ * Two ways a surface can be above: it is itself promoted to the browser's
106
+ * top layer (a regular `showModal()` dialog, which paints above everything
107
+ * outside the top layer regardless of z-index — a sibling pds-modal opened
108
+ * over a `disableTopLayer` drawer typically shares the exact same z-index
109
+ * token, so a numeric comparison alone would miss it), or it has a higher
110
+ * z-index than this modal's own backdrop (a `disableTopLayer` overlay, or
111
+ * anything else deliberately raised above it).
112
+ *
113
+ * `topLayerDialog` / `topLayerDialogWasModal` come pre-snapshotted from the
114
+ * keydown event (see handleKeyDown) rather than being re-derived here: by
115
+ * the time a later sibling modal's listener runs, an earlier one may have
116
+ * already closed itself, which clears `:modal` — reading it live here would
117
+ * lose that evidence depending on listener order.
118
+ */
119
+ private isStackedAboveOverlay;
82
120
  /**
83
121
  * Checks if this modal is the innermost (highest z-index) modal
84
122
  */
@@ -17,7 +17,8 @@ export declare class PdsTableCell {
17
17
  /**
18
18
  * Truncates content to a max width and adds an ellipsis.
19
19
  * When text overflows, a tooltip showing the full text will appear on hover/focus.
20
- * Note: When truncate is enabled, the element automatically receives tabindex="0" for keyboard accessibility.
20
+ * Note: While the content is overflowing, the cell receives tabindex="0" so the
21
+ * tooltip can be reached by keyboard. Content that fits is left out of the tab order.
21
22
  */
22
23
  truncate: boolean;
23
24
  handleTruncateChange(newValue: boolean): void;
@@ -41,7 +41,8 @@ export declare class PdsText {
41
41
  /**
42
42
  * If set or `true`, the text will be truncated. Must add a `width` to the element.
43
43
  * When text overflows, a tooltip showing the full text will appear on hover/focus.
44
- * Note: When truncate is enabled, the element automatically receives tabindex="0" for keyboard accessibility.
44
+ * Note: While the text is overflowing, the element receives tabindex="0" so the
45
+ * tooltip can be reached by keyboard. Text that fits is left out of the tab order.
45
46
  */
46
47
  truncate?: boolean;
47
48
  handleTruncateChange(newValue: boolean): void;
@@ -1135,6 +1135,10 @@ export namespace Components {
1135
1135
  * A unique identifier used for the underlying component `id` attribute.
1136
1136
  */
1137
1137
  "componentId": string;
1138
+ /**
1139
+ * Text to be displayed as the divider label, centered between two lines. Ignored when `vertical` is `true`.
1140
+ */
1141
+ "label"?: string;
1138
1142
  /**
1139
1143
  * Adds offset margin/padding to expand the width (horizontal) or the height (vertical) of divider.
1140
1144
  */
@@ -1145,6 +1149,63 @@ export namespace Components {
1145
1149
  */
1146
1150
  "vertical": boolean;
1147
1151
  }
1152
+ /**
1153
+ * A non-modal side panel composed from `pds-modal`.
1154
+ * Unlike `pds-modal`, the page stays interactive while a drawer is open: no
1155
+ * dimming, no blur, no scroll lock, no click blocking. `pds-drawer` renders a
1156
+ * `pds-modal` internally with `disableTopLayer` always on and its backdrop
1157
+ * suppressed, and adds the edge, width and dismiss behavior a side panel
1158
+ * needs on top. It does not reimplement focus, Escape or dialog semantics —
1159
+ * those come from `pds-modal` unchanged.
1160
+ */
1161
+ interface PdsDrawer {
1162
+ /**
1163
+ * A unique identifier used for the underlying component `id` attribute.
1164
+ */
1165
+ "componentId": string;
1166
+ /**
1167
+ * Whether to move focus into the drawer when it opens. `auto` is right for a drawer opened by a direct user action (a click, a deep link the user just navigated to). Set to `none` for a drawer that can open from a background event while the user is mid-task elsewhere on the page — moving focus there would interrupt them, and the page stays live under a non-modal drawer, so it is a genuine data-entry risk, not just an annoyance.
1168
+ * @default 'auto'
1169
+ */
1170
+ "initialFocus": 'auto' | 'none';
1171
+ /**
1172
+ * Whether the drawer can be dismissed with a pointerdown outside it. Replaces `pds-modal`'s `backdropDismiss` — there is no backdrop to click. This also gates Escape, matching how `backdropDismiss` gates Escape on `pds-modal` today: setting this to `false` means the close button is the only way out. A trigger outside the drawer should only ever set `open` to `true` and leave closing to the drawer itself. A toggle-style trigger (`open = !open`) fights light dismiss: clicking it while open closes the drawer on `pointerdown`, then the trigger's own click handler re-opens it.
1173
+ * @default true
1174
+ */
1175
+ "lightDismiss": boolean;
1176
+ /**
1177
+ * Whether the drawer is open
1178
+ * @default false
1179
+ */
1180
+ "open": boolean;
1181
+ /**
1182
+ * Whether the drawer content should be scrollable
1183
+ * @default true
1184
+ */
1185
+ "scrollable": boolean;
1186
+ /**
1187
+ * Which edge of the viewport the drawer is docked to. Logical, so this is free under RTL — `end` is the inline-end edge regardless of direction.
1188
+ * @default 'end'
1189
+ */
1190
+ "side": 'start' | 'end';
1191
+ /**
1192
+ * The drawer's width.
1193
+ * @default 'md'
1194
+ */
1195
+ "size": 'sm' | 'md';
1196
+ }
1197
+ /**
1198
+ * Fills the drawer panel's height by default — unlike `pds-modal-content`,
1199
+ * which caps itself against the viewport for a centered, possibly-shorter
1200
+ * modal, a drawer panel is already edge-to-edge, so its content can simply
1201
+ * flex to fill whatever space the header and footer leave.
1202
+ */
1203
+ interface PdsDrawerContent {
1204
+ }
1205
+ interface PdsDrawerFooter {
1206
+ }
1207
+ interface PdsDrawerHeader {
1208
+ }
1148
1209
  interface PdsDropdownMenu {
1149
1210
  /**
1150
1211
  * A unique identifier used for the underlying component `id` attribute.
@@ -1494,6 +1555,11 @@ export namespace Components {
1494
1555
  * A unique identifier used for the underlying component `id` attribute.
1495
1556
  */
1496
1557
  "componentId": string;
1558
+ /**
1559
+ * Whether to skip moving focus into the modal when it opens — both our own `setInitialFocus()` and the browser's native "dialog focusing steps", which move focus into the dialog as soon as `show()`/`showModal()` is called regardless of application code. Focus return on close is unaffected either way. For a modal opened by something other than a direct user click — a redirect, a deep link, a background event — stealing focus on open can interrupt whatever the user was already doing. Default `false` preserves today's behavior for every existing consumer.
1560
+ * @default false
1561
+ */
1562
+ "disableInitialFocus": boolean;
1497
1563
  /**
1498
1564
  * Whether the modal opens outside the browser top layer as a non-modal dialog. When `true` it opens with `dialog.show()` instead of `dialog.showModal()`, so overlays rendered elsewhere in the DOM (file pickers, editor menus) can display above it via `z-index`. The page is not made inert and focus is not trapped in this mode. Read when the modal opens; changing it while the modal is open is not supported.
1499
1565
  * @default false
@@ -2207,7 +2273,7 @@ export namespace Components {
2207
2273
  */
2208
2274
  "cellAlign"?: 'start' | 'center' | 'end' | 'justify';
2209
2275
  /**
2210
- * Truncates content to a max width and adds an ellipsis. When text overflows, a tooltip showing the full text will appear on hover/focus. Note: When truncate is enabled, the element automatically receives tabindex="0" for keyboard accessibility.
2276
+ * Truncates content to a max width and adds an ellipsis. When text overflows, a tooltip showing the full text will appear on hover/focus. Note: While the content is overflowing, the cell receives tabindex="0" so the tooltip can be reached by keyboard. Content that fits is left out of the tab order.
2211
2277
  */
2212
2278
  "truncate": boolean;
2213
2279
  }
@@ -2353,7 +2419,7 @@ export namespace Components {
2353
2419
  | 'strong'
2354
2420
  | 'em';
2355
2421
  /**
2356
- * If set or `true`, the text will be truncated. Must add a `width` to the element. When text overflows, a tooltip showing the full text will appear on hover/focus. Note: When truncate is enabled, the element automatically receives tabindex="0" for keyboard accessibility.
2422
+ * If set or `true`, the text will be truncated. Must add a `width` to the element. When text overflows, a tooltip showing the full text will appear on hover/focus. Note: While the text is overflowing, the element receives tabindex="0" so the tooltip can be reached by keyboard. Text that fits is left out of the tab order.
2357
2423
  */
2358
2424
  "truncate"?: boolean;
2359
2425
  /**
@@ -2558,6 +2624,10 @@ export interface PdsCopytextCustomEvent<T> extends CustomEvent<T> {
2558
2624
  detail: T;
2559
2625
  target: HTMLPdsCopytextElement;
2560
2626
  }
2627
+ export interface PdsDrawerCustomEvent<T> extends CustomEvent<T> {
2628
+ detail: T;
2629
+ target: HTMLPdsDrawerElement;
2630
+ }
2561
2631
  export interface PdsDropdownMenuItemCustomEvent<T> extends CustomEvent<T> {
2562
2632
  detail: T;
2563
2633
  target: HTMLPdsDropdownMenuItemElement;
@@ -2800,6 +2870,57 @@ declare global {
2800
2870
  prototype: HTMLPdsDividerElement;
2801
2871
  new (): HTMLPdsDividerElement;
2802
2872
  };
2873
+ interface HTMLPdsDrawerElementEventMap {
2874
+ "pdsDrawerOpen": void;
2875
+ "pdsDrawerClose": void;
2876
+ }
2877
+ /**
2878
+ * A non-modal side panel composed from `pds-modal`.
2879
+ * Unlike `pds-modal`, the page stays interactive while a drawer is open: no
2880
+ * dimming, no blur, no scroll lock, no click blocking. `pds-drawer` renders a
2881
+ * `pds-modal` internally with `disableTopLayer` always on and its backdrop
2882
+ * suppressed, and adds the edge, width and dismiss behavior a side panel
2883
+ * needs on top. It does not reimplement focus, Escape or dialog semantics —
2884
+ * those come from `pds-modal` unchanged.
2885
+ */
2886
+ interface HTMLPdsDrawerElement extends Components.PdsDrawer, HTMLStencilElement {
2887
+ addEventListener<K extends keyof HTMLPdsDrawerElementEventMap>(type: K, listener: (this: HTMLPdsDrawerElement, ev: PdsDrawerCustomEvent<HTMLPdsDrawerElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2888
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2889
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2890
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
2891
+ removeEventListener<K extends keyof HTMLPdsDrawerElementEventMap>(type: K, listener: (this: HTMLPdsDrawerElement, ev: PdsDrawerCustomEvent<HTMLPdsDrawerElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
2892
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2893
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2894
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
2895
+ }
2896
+ var HTMLPdsDrawerElement: {
2897
+ prototype: HTMLPdsDrawerElement;
2898
+ new (): HTMLPdsDrawerElement;
2899
+ };
2900
+ /**
2901
+ * Fills the drawer panel's height by default — unlike `pds-modal-content`,
2902
+ * which caps itself against the viewport for a centered, possibly-shorter
2903
+ * modal, a drawer panel is already edge-to-edge, so its content can simply
2904
+ * flex to fill whatever space the header and footer leave.
2905
+ */
2906
+ interface HTMLPdsDrawerContentElement extends Components.PdsDrawerContent, HTMLStencilElement {
2907
+ }
2908
+ var HTMLPdsDrawerContentElement: {
2909
+ prototype: HTMLPdsDrawerContentElement;
2910
+ new (): HTMLPdsDrawerContentElement;
2911
+ };
2912
+ interface HTMLPdsDrawerFooterElement extends Components.PdsDrawerFooter, HTMLStencilElement {
2913
+ }
2914
+ var HTMLPdsDrawerFooterElement: {
2915
+ prototype: HTMLPdsDrawerFooterElement;
2916
+ new (): HTMLPdsDrawerFooterElement;
2917
+ };
2918
+ interface HTMLPdsDrawerHeaderElement extends Components.PdsDrawerHeader, HTMLStencilElement {
2919
+ }
2920
+ var HTMLPdsDrawerHeaderElement: {
2921
+ prototype: HTMLPdsDrawerHeaderElement;
2922
+ new (): HTMLPdsDrawerHeaderElement;
2923
+ };
2803
2924
  interface HTMLPdsDropdownMenuElement extends Components.PdsDropdownMenu, HTMLStencilElement {
2804
2925
  }
2805
2926
  var HTMLPdsDropdownMenuElement: {
@@ -3258,6 +3379,10 @@ declare global {
3258
3379
  "pds-container": HTMLPdsContainerElement;
3259
3380
  "pds-copytext": HTMLPdsCopytextElement;
3260
3381
  "pds-divider": HTMLPdsDividerElement;
3382
+ "pds-drawer": HTMLPdsDrawerElement;
3383
+ "pds-drawer-content": HTMLPdsDrawerContentElement;
3384
+ "pds-drawer-footer": HTMLPdsDrawerFooterElement;
3385
+ "pds-drawer-header": HTMLPdsDrawerHeaderElement;
3261
3386
  "pds-dropdown-menu": HTMLPdsDropdownMenuElement;
3262
3387
  "pds-dropdown-menu-item": HTMLPdsDropdownMenuItemElement;
3263
3388
  "pds-dropdown-menu-separator": HTMLPdsDropdownMenuSeparatorElement;
@@ -4437,6 +4562,10 @@ declare namespace LocalJSX {
4437
4562
  * A unique identifier used for the underlying component `id` attribute.
4438
4563
  */
4439
4564
  "componentId"?: string;
4565
+ /**
4566
+ * Text to be displayed as the divider label, centered between two lines. Ignored when `vertical` is `true`.
4567
+ */
4568
+ "label"?: string;
4440
4569
  /**
4441
4570
  * Adds offset margin/padding to expand the width (horizontal) or the height (vertical) of divider.
4442
4571
  */
@@ -4447,6 +4576,71 @@ declare namespace LocalJSX {
4447
4576
  */
4448
4577
  "vertical"?: boolean;
4449
4578
  }
4579
+ /**
4580
+ * A non-modal side panel composed from `pds-modal`.
4581
+ * Unlike `pds-modal`, the page stays interactive while a drawer is open: no
4582
+ * dimming, no blur, no scroll lock, no click blocking. `pds-drawer` renders a
4583
+ * `pds-modal` internally with `disableTopLayer` always on and its backdrop
4584
+ * suppressed, and adds the edge, width and dismiss behavior a side panel
4585
+ * needs on top. It does not reimplement focus, Escape or dialog semantics —
4586
+ * those come from `pds-modal` unchanged.
4587
+ */
4588
+ interface PdsDrawer {
4589
+ /**
4590
+ * A unique identifier used for the underlying component `id` attribute.
4591
+ */
4592
+ "componentId"?: string;
4593
+ /**
4594
+ * Whether to move focus into the drawer when it opens. `auto` is right for a drawer opened by a direct user action (a click, a deep link the user just navigated to). Set to `none` for a drawer that can open from a background event while the user is mid-task elsewhere on the page — moving focus there would interrupt them, and the page stays live under a non-modal drawer, so it is a genuine data-entry risk, not just an annoyance.
4595
+ * @default 'auto'
4596
+ */
4597
+ "initialFocus"?: 'auto' | 'none';
4598
+ /**
4599
+ * Whether the drawer can be dismissed with a pointerdown outside it. Replaces `pds-modal`'s `backdropDismiss` — there is no backdrop to click. This also gates Escape, matching how `backdropDismiss` gates Escape on `pds-modal` today: setting this to `false` means the close button is the only way out. A trigger outside the drawer should only ever set `open` to `true` and leave closing to the drawer itself. A toggle-style trigger (`open = !open`) fights light dismiss: clicking it while open closes the drawer on `pointerdown`, then the trigger's own click handler re-opens it.
4600
+ * @default true
4601
+ */
4602
+ "lightDismiss"?: boolean;
4603
+ /**
4604
+ * Emitted when the drawer is closed
4605
+ */
4606
+ "onPdsDrawerClose"?: (event: PdsDrawerCustomEvent<void>) => void;
4607
+ /**
4608
+ * Emitted when the drawer is opened
4609
+ */
4610
+ "onPdsDrawerOpen"?: (event: PdsDrawerCustomEvent<void>) => void;
4611
+ /**
4612
+ * Whether the drawer is open
4613
+ * @default false
4614
+ */
4615
+ "open"?: boolean;
4616
+ /**
4617
+ * Whether the drawer content should be scrollable
4618
+ * @default true
4619
+ */
4620
+ "scrollable"?: boolean;
4621
+ /**
4622
+ * Which edge of the viewport the drawer is docked to. Logical, so this is free under RTL — `end` is the inline-end edge regardless of direction.
4623
+ * @default 'end'
4624
+ */
4625
+ "side"?: 'start' | 'end';
4626
+ /**
4627
+ * The drawer's width.
4628
+ * @default 'md'
4629
+ */
4630
+ "size"?: 'sm' | 'md';
4631
+ }
4632
+ /**
4633
+ * Fills the drawer panel's height by default — unlike `pds-modal-content`,
4634
+ * which caps itself against the viewport for a centered, possibly-shorter
4635
+ * modal, a drawer panel is already edge-to-edge, so its content can simply
4636
+ * flex to fill whatever space the header and footer leave.
4637
+ */
4638
+ interface PdsDrawerContent {
4639
+ }
4640
+ interface PdsDrawerFooter {
4641
+ }
4642
+ interface PdsDrawerHeader {
4643
+ }
4450
4644
  interface PdsDropdownMenu {
4451
4645
  /**
4452
4646
  * A unique identifier used for the underlying component `id` attribute.
@@ -4820,6 +5014,11 @@ declare namespace LocalJSX {
4820
5014
  * A unique identifier used for the underlying component `id` attribute.
4821
5015
  */
4822
5016
  "componentId"?: string;
5017
+ /**
5018
+ * Whether to skip moving focus into the modal when it opens — both our own `setInitialFocus()` and the browser's native "dialog focusing steps", which move focus into the dialog as soon as `show()`/`showModal()` is called regardless of application code. Focus return on close is unaffected either way. For a modal opened by something other than a direct user click — a redirect, a deep link, a background event — stealing focus on open can interrupt whatever the user was already doing. Default `false` preserves today's behavior for every existing consumer.
5019
+ * @default false
5020
+ */
5021
+ "disableInitialFocus"?: boolean;
4823
5022
  /**
4824
5023
  * Whether the modal opens outside the browser top layer as a non-modal dialog. When `true` it opens with `dialog.show()` instead of `dialog.showModal()`, so overlays rendered elsewhere in the DOM (file pickers, editor menus) can display above it via `z-index`. The page is not made inert and focus is not trapped in this mode. Read when the modal opens; changing it while the modal is open is not supported.
4825
5024
  * @default false
@@ -5581,7 +5780,7 @@ declare namespace LocalJSX {
5581
5780
  */
5582
5781
  "cellAlign"?: 'start' | 'center' | 'end' | 'justify';
5583
5782
  /**
5584
- * Truncates content to a max width and adds an ellipsis. When text overflows, a tooltip showing the full text will appear on hover/focus. Note: When truncate is enabled, the element automatically receives tabindex="0" for keyboard accessibility.
5783
+ * Truncates content to a max width and adds an ellipsis. When text overflows, a tooltip showing the full text will appear on hover/focus. Note: While the content is overflowing, the cell receives tabindex="0" so the tooltip can be reached by keyboard. Content that fits is left out of the tab order.
5585
5784
  */
5586
5785
  "truncate"?: boolean;
5587
5786
  }
@@ -5719,7 +5918,7 @@ declare namespace LocalJSX {
5719
5918
  | 'strong'
5720
5919
  | 'em';
5721
5920
  /**
5722
- * If set or `true`, the text will be truncated. Must add a `width` to the element. When text overflows, a tooltip showing the full text will appear on hover/focus. Note: When truncate is enabled, the element automatically receives tabindex="0" for keyboard accessibility.
5921
+ * If set or `true`, the text will be truncated. Must add a `width` to the element. When text overflows, a tooltip showing the full text will appear on hover/focus. Note: While the text is overflowing, the element receives tabindex="0" so the tooltip can be reached by keyboard. Text that fits is left out of the tab order.
5723
5922
  */
5724
5923
  "truncate"?: boolean;
5725
5924
  /**
@@ -6159,9 +6358,19 @@ declare namespace LocalJSX {
6159
6358
  }
6160
6359
  interface PdsDividerAttributes {
6161
6360
  "componentId": string;
6361
+ "label": string;
6162
6362
  "offset": 'xxs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
6163
6363
  "vertical": boolean;
6164
6364
  }
6365
+ interface PdsDrawerAttributes {
6366
+ "componentId": string;
6367
+ "open": boolean;
6368
+ "side": 'start' | 'end';
6369
+ "size": 'sm' | 'md';
6370
+ "scrollable": boolean;
6371
+ "lightDismiss": boolean;
6372
+ "initialFocus": 'auto' | 'none';
6373
+ }
6165
6374
  interface PdsDropdownMenuAttributes {
6166
6375
  "componentId": string;
6167
6376
  "placement": PlacementType;
@@ -6260,6 +6469,7 @@ declare namespace LocalJSX {
6260
6469
  "size": 'sm' | 'md' | 'lg' | 'fullscreen';
6261
6470
  "scrollable": boolean;
6262
6471
  "disableTopLayer": boolean;
6472
+ "disableInitialFocus": boolean;
6263
6473
  }
6264
6474
  interface PdsModalContentAttributes {
6265
6475
  "border": 'none' | 'both' | 'top' | 'bottom';
@@ -6530,6 +6740,10 @@ declare namespace LocalJSX {
6530
6740
  "pds-container": Omit<PdsContainer, keyof PdsContainerAttributes> & { [K in keyof PdsContainer & keyof PdsContainerAttributes]?: PdsContainer[K] } & { [K in keyof PdsContainer & keyof PdsContainerAttributes as `attr:${K}`]?: PdsContainerAttributes[K] } & { [K in keyof PdsContainer & keyof PdsContainerAttributes as `prop:${K}`]?: PdsContainer[K] };
6531
6741
  "pds-copytext": Omit<PdsCopytext, keyof PdsCopytextAttributes> & { [K in keyof PdsCopytext & keyof PdsCopytextAttributes]?: PdsCopytext[K] } & { [K in keyof PdsCopytext & keyof PdsCopytextAttributes as `attr:${K}`]?: PdsCopytextAttributes[K] } & { [K in keyof PdsCopytext & keyof PdsCopytextAttributes as `prop:${K}`]?: PdsCopytext[K] } & OneOf<"value", PdsCopytext["value"], PdsCopytextAttributes["value"]>;
6532
6742
  "pds-divider": Omit<PdsDivider, keyof PdsDividerAttributes> & { [K in keyof PdsDivider & keyof PdsDividerAttributes]?: PdsDivider[K] } & { [K in keyof PdsDivider & keyof PdsDividerAttributes as `attr:${K}`]?: PdsDividerAttributes[K] } & { [K in keyof PdsDivider & keyof PdsDividerAttributes as `prop:${K}`]?: PdsDivider[K] };
6743
+ "pds-drawer": Omit<PdsDrawer, keyof PdsDrawerAttributes> & { [K in keyof PdsDrawer & keyof PdsDrawerAttributes]?: PdsDrawer[K] } & { [K in keyof PdsDrawer & keyof PdsDrawerAttributes as `attr:${K}`]?: PdsDrawerAttributes[K] } & { [K in keyof PdsDrawer & keyof PdsDrawerAttributes as `prop:${K}`]?: PdsDrawer[K] };
6744
+ "pds-drawer-content": PdsDrawerContent;
6745
+ "pds-drawer-footer": PdsDrawerFooter;
6746
+ "pds-drawer-header": PdsDrawerHeader;
6533
6747
  "pds-dropdown-menu": Omit<PdsDropdownMenu, keyof PdsDropdownMenuAttributes> & { [K in keyof PdsDropdownMenu & keyof PdsDropdownMenuAttributes]?: PdsDropdownMenu[K] } & { [K in keyof PdsDropdownMenu & keyof PdsDropdownMenuAttributes as `attr:${K}`]?: PdsDropdownMenuAttributes[K] } & { [K in keyof PdsDropdownMenu & keyof PdsDropdownMenuAttributes as `prop:${K}`]?: PdsDropdownMenu[K] };
6534
6748
  "pds-dropdown-menu-item": Omit<PdsDropdownMenuItem, keyof PdsDropdownMenuItemAttributes> & { [K in keyof PdsDropdownMenuItem & keyof PdsDropdownMenuItemAttributes]?: PdsDropdownMenuItem[K] } & { [K in keyof PdsDropdownMenuItem & keyof PdsDropdownMenuItemAttributes as `attr:${K}`]?: PdsDropdownMenuItemAttributes[K] } & { [K in keyof PdsDropdownMenuItem & keyof PdsDropdownMenuItemAttributes as `prop:${K}`]?: PdsDropdownMenuItem[K] };
6535
6749
  "pds-dropdown-menu-separator": Omit<PdsDropdownMenuSeparator, keyof PdsDropdownMenuSeparatorAttributes> & { [K in keyof PdsDropdownMenuSeparator & keyof PdsDropdownMenuSeparatorAttributes]?: PdsDropdownMenuSeparator[K] } & { [K in keyof PdsDropdownMenuSeparator & keyof PdsDropdownMenuSeparatorAttributes as `attr:${K}`]?: PdsDropdownMenuSeparatorAttributes[K] } & { [K in keyof PdsDropdownMenuSeparator & keyof PdsDropdownMenuSeparatorAttributes as `prop:${K}`]?: PdsDropdownMenuSeparator[K] };
@@ -6589,6 +6803,25 @@ declare module "@stencil/core" {
6589
6803
  "pds-container": LocalJSX.IntrinsicElements["pds-container"] & JSXBase.HTMLAttributes<HTMLPdsContainerElement>;
6590
6804
  "pds-copytext": LocalJSX.IntrinsicElements["pds-copytext"] & JSXBase.HTMLAttributes<HTMLPdsCopytextElement>;
6591
6805
  "pds-divider": LocalJSX.IntrinsicElements["pds-divider"] & JSXBase.HTMLAttributes<HTMLPdsDividerElement>;
6806
+ /**
6807
+ * A non-modal side panel composed from `pds-modal`.
6808
+ * Unlike `pds-modal`, the page stays interactive while a drawer is open: no
6809
+ * dimming, no blur, no scroll lock, no click blocking. `pds-drawer` renders a
6810
+ * `pds-modal` internally with `disableTopLayer` always on and its backdrop
6811
+ * suppressed, and adds the edge, width and dismiss behavior a side panel
6812
+ * needs on top. It does not reimplement focus, Escape or dialog semantics —
6813
+ * those come from `pds-modal` unchanged.
6814
+ */
6815
+ "pds-drawer": LocalJSX.IntrinsicElements["pds-drawer"] & JSXBase.HTMLAttributes<HTMLPdsDrawerElement>;
6816
+ /**
6817
+ * Fills the drawer panel's height by default — unlike `pds-modal-content`,
6818
+ * which caps itself against the viewport for a centered, possibly-shorter
6819
+ * modal, a drawer panel is already edge-to-edge, so its content can simply
6820
+ * flex to fill whatever space the header and footer leave.
6821
+ */
6822
+ "pds-drawer-content": LocalJSX.IntrinsicElements["pds-drawer-content"] & JSXBase.HTMLAttributes<HTMLPdsDrawerContentElement>;
6823
+ "pds-drawer-footer": LocalJSX.IntrinsicElements["pds-drawer-footer"] & JSXBase.HTMLAttributes<HTMLPdsDrawerFooterElement>;
6824
+ "pds-drawer-header": LocalJSX.IntrinsicElements["pds-drawer-header"] & JSXBase.HTMLAttributes<HTMLPdsDrawerHeaderElement>;
6592
6825
  "pds-dropdown-menu": LocalJSX.IntrinsicElements["pds-dropdown-menu"] & JSXBase.HTMLAttributes<HTMLPdsDropdownMenuElement>;
6593
6826
  "pds-dropdown-menu-item": LocalJSX.IntrinsicElements["pds-dropdown-menu-item"] & JSXBase.HTMLAttributes<HTMLPdsDropdownMenuItemElement>;
6594
6827
  "pds-dropdown-menu-separator": LocalJSX.IntrinsicElements["pds-dropdown-menu-separator"] & JSXBase.HTMLAttributes<HTMLPdsDropdownMenuSeparatorElement>;
@@ -1,2 +1,3 @@
1
1
  export * from './components';
2
+ export { TEXT_SIZES } from './utils/types';
2
3
  import '@pine-ds/icons';
@@ -0,0 +1,30 @@
1
+ import type { E2EPage } from '@stencil/core/testing';
2
+ /**
3
+ * Asserts that an element's `transition-duration` collapses to `0s` once the
4
+ * page emulates `prefers-reduced-motion: reduce`.
5
+ *
6
+ * This is the runtime counterpart to the `pine-design-system/no-hardcoded-motion`
7
+ * Stylelint rule: the rule can only see a component's *source* — that it
8
+ * references `var(--pine-motion-duration-*)` somewhere. It can't see whether
9
+ * that reference actually reaches the declaration that runs at render time
10
+ * (a `var()` could be shadowed, overridden, or simply never wired up right).
11
+ * This closes that gap by reading the real computed style before and after
12
+ * emulating the preference, so a target that *doesn't* zero out fails loudly
13
+ * here even if it fooled the lint rule.
14
+ *
15
+ * Usage:
16
+ *
17
+ * ```ts
18
+ * const page = await newE2EPage();
19
+ * await page.setContent('<pds-switch></pds-switch>');
20
+ * await expectRespectsReducedMotion(page, 'pds-switch', 'input', 'after');
21
+ * ```
22
+ *
23
+ * @param page Stencil E2E page.
24
+ * @param hostTag Custom element tag hosting the shadow root to read from.
25
+ * @param innerSelector Selector for the element within `hostTag`'s shadow
26
+ * root, or `null`/omitted to read `hostTag` itself.
27
+ * @param pseudoElement Pseudo-element to read from the target (e.g. `'after'`
28
+ * for `::after`), or `null`/omitted to read the element's own style.
29
+ */
30
+ export declare function expectRespectsReducedMotion(page: E2EPage, hostTag: string, innerSelector?: string | null, pseudoElement?: string | null): Promise<void>;
@@ -8,6 +8,16 @@ export interface TruncationTooltipOptions {
8
8
  getTooltipText: () => string;
9
9
  /** Tooltip placement preference (default: 'top') */
10
10
  placement?: PlacementType;
11
+ /**
12
+ * Whether to give `contentEl` a tab stop while its text is clipped (default: true).
13
+ *
14
+ * Set to `false` when `contentEl` already sits inside its own focusable
15
+ * control (e.g. a wrapping `<button>` or `<pds-button>`) that already
16
+ * receives focus and triggers this tooltip via `hostEl`'s `focusin`
17
+ * listener. Managing the tabindex there too would nest a second, nameless
18
+ * tab stop inside an already-interactive element.
19
+ */
20
+ manageTabIndex?: boolean;
11
21
  }
12
22
  /**
13
23
  * Sets up automatic tooltip behavior for a truncated element.
@@ -16,6 +26,8 @@ export interface TruncationTooltipOptions {
16
26
  * will display a tooltip showing the full text content. The tooltip is
17
27
  * rendered as a portal on document.body and positioned with Floating UI.
18
28
  *
29
+ * Also owns the element's `tabindex` while it is clipped — see syncTabIndex.
30
+ *
19
31
  * @returns A cleanup function that removes all listeners, observers, and DOM elements.
20
32
  */
21
33
  export declare function setupTruncationTooltip(options: TruncationTooltipOptions): () => void;