@pine-ds/core 4.1.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 (394) 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-drawer-content.d.ts +11 -0
  7. package/components/pds-drawer-content.js +1 -0
  8. package/components/pds-drawer-footer.d.ts +11 -0
  9. package/components/pds-drawer-footer.js +1 -0
  10. package/components/pds-drawer-header.d.ts +11 -0
  11. package/components/pds-drawer-header.js +1 -0
  12. package/components/pds-drawer.d.ts +11 -0
  13. package/components/pds-drawer.js +1 -0
  14. package/components/pds-dropdown-menu-item.js +1 -1
  15. package/components/pds-dropdown-menu-separator.js +1 -1
  16. package/components/pds-dropdown-menu.js +1 -1
  17. package/components/pds-filter.js +1 -1
  18. package/components/pds-filters.js +1 -1
  19. package/components/pds-image.js +1 -1
  20. package/components/pds-input.js +1 -1
  21. package/components/pds-link2.js +1 -1
  22. package/components/pds-loader2.js +1 -1
  23. package/components/pds-modal-content.js +1 -1
  24. package/components/pds-modal-footer.js +1 -1
  25. package/components/pds-modal-header.js +1 -1
  26. package/components/pds-modal.js +1 -1
  27. package/components/pds-modal2.js +1 -0
  28. package/components/pds-multiselect.js +1 -1
  29. package/components/pds-popover.js +1 -1
  30. package/components/pds-progress.js +1 -1
  31. package/components/pds-property.js +1 -1
  32. package/components/pds-radio-group.js +1 -1
  33. package/components/pds-radio.js +1 -1
  34. package/components/pds-row.js +1 -1
  35. package/components/pds-select.js +1 -1
  36. package/components/pds-sortable-item.js +1 -1
  37. package/components/pds-sortable.js +2 -2
  38. package/components/pds-switch.js +1 -1
  39. package/components/pds-table-body.js +1 -1
  40. package/components/pds-table-cell2.js +1 -1
  41. package/components/pds-table-head-cell2.js +1 -1
  42. package/components/pds-table-head.js +1 -1
  43. package/components/pds-table-row.js +1 -1
  44. package/components/pds-tabpanel.js +1 -1
  45. package/components/pds-tabs.js +1 -1
  46. package/components/pds-text2.js +1 -1
  47. package/components/pds-textarea.js +1 -1
  48. package/components/pds-toast.js +1 -1
  49. package/components/pds-tooltip.js +1 -1
  50. package/components/truncation-tooltip.js +1 -1
  51. package/dist/cjs/{index-BMV0nzMk.js → index-Bu3NXpbK.js} +1 -1
  52. package/dist/cjs/index.cjs.js +20 -0
  53. package/dist/cjs/loader.cjs.js +1 -1
  54. package/dist/cjs/mock-pds-modal.cjs.entry.js +1 -1
  55. package/dist/cjs/pds-accordion.cjs.entry.js +1 -1
  56. package/dist/cjs/pds-avatar.cjs.entry.js +1 -1
  57. package/dist/cjs/pds-button.cjs.entry.js +1 -1
  58. package/dist/cjs/pds-checkbox.cjs.entry.js +1 -1
  59. package/dist/cjs/pds-chip.cjs.entry.js +17 -8
  60. package/dist/cjs/pds-copytext.cjs.entry.js +7 -3
  61. package/dist/cjs/pds-drawer-content.cjs.entry.js +23 -0
  62. package/dist/cjs/pds-drawer-footer.cjs.entry.js +23 -0
  63. package/dist/cjs/pds-drawer-header.cjs.entry.js +23 -0
  64. package/dist/cjs/pds-drawer.cjs.entry.js +137 -0
  65. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +1 -1
  66. package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +1 -1
  67. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +1 -1
  68. package/dist/cjs/pds-filter.cjs.entry.js +2 -2
  69. package/dist/cjs/pds-filters.cjs.entry.js +1 -1
  70. package/dist/cjs/pds-image.cjs.entry.js +2 -2
  71. package/dist/cjs/pds-input.cjs.entry.js +3 -3
  72. package/dist/cjs/pds-link.cjs.entry.js +3 -3
  73. package/dist/cjs/pds-loader.cjs.entry.js +1 -1
  74. package/dist/cjs/pds-modal-content.cjs.entry.js +2 -2
  75. package/dist/cjs/pds-modal-footer.cjs.entry.js +1 -1
  76. package/dist/cjs/pds-modal-header.cjs.entry.js +1 -1
  77. package/dist/cjs/pds-modal.cjs.entry.js +141 -10
  78. package/dist/cjs/pds-multiselect.cjs.entry.js +4 -4
  79. package/dist/cjs/pds-popover.cjs.entry.js +1 -1
  80. package/dist/cjs/pds-progress.cjs.entry.js +1 -1
  81. package/dist/cjs/pds-property.cjs.entry.js +1 -1
  82. package/dist/cjs/pds-radio-group.cjs.entry.js +4 -4
  83. package/dist/cjs/pds-radio.cjs.entry.js +4 -4
  84. package/dist/cjs/pds-row.cjs.entry.js +1 -1
  85. package/dist/cjs/pds-select.cjs.entry.js +2 -2
  86. package/dist/cjs/pds-sortable-item.cjs.entry.js +2 -2
  87. package/dist/cjs/pds-sortable.cjs.entry.js +1 -1
  88. package/dist/cjs/pds-switch.cjs.entry.js +5 -5
  89. package/dist/cjs/pds-table-body.cjs.entry.js +1 -1
  90. package/dist/cjs/pds-table-cell.cjs.entry.js +3 -3
  91. package/dist/cjs/pds-table-head-cell.cjs.entry.js +3 -3
  92. package/dist/cjs/pds-table-head.cjs.entry.js +1 -1
  93. package/dist/cjs/pds-table-row.cjs.entry.js +1 -1
  94. package/dist/cjs/pds-tabpanel.cjs.entry.js +1 -1
  95. package/dist/cjs/pds-tabs.cjs.entry.js +1 -1
  96. package/dist/cjs/pds-text.cjs.entry.js +5 -23
  97. package/dist/cjs/pds-textarea.cjs.entry.js +5 -5
  98. package/dist/cjs/pds-toast.cjs.entry.js +3 -3
  99. package/dist/cjs/pds-tooltip.cjs.entry.js +2 -2
  100. package/dist/cjs/pine-core.cjs.js +1 -1
  101. package/dist/cjs/{truncation-tooltip-CVzAha5B.js → truncation-tooltip-Bps7_rUy.js} +51 -1
  102. package/dist/collection/collection-manifest.json +4 -0
  103. package/dist/collection/components/pds-chip/pds-chip.js +15 -6
  104. package/dist/collection/components/pds-copytext/pds-copytext.js +5 -1
  105. package/dist/collection/components/pds-drawer/pds-drawer-content/pds-drawer-content.css +22 -0
  106. package/dist/collection/components/pds-drawer/pds-drawer-content/pds-drawer-content.js +29 -0
  107. package/dist/collection/components/pds-drawer/pds-drawer-footer/pds-drawer-footer.css +15 -0
  108. package/dist/collection/components/pds-drawer/pds-drawer-footer/pds-drawer-footer.js +23 -0
  109. package/dist/collection/components/pds-drawer/pds-drawer-header/pds-drawer-header.css +15 -0
  110. package/dist/collection/components/pds-drawer/pds-drawer-header/pds-drawer-header.js +23 -0
  111. package/dist/collection/components/pds-drawer/pds-drawer.css +36 -0
  112. package/dist/collection/components/pds-drawer/pds-drawer.js +362 -0
  113. package/dist/collection/components/pds-drawer/stories/pds-drawer.stories.js +72 -0
  114. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js +1 -1
  115. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js +1 -1
  116. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +1 -1
  117. package/dist/collection/components/pds-filters/pds-filter/pds-filter.js +1 -1
  118. package/dist/collection/components/pds-filters/pds-filters.js +1 -1
  119. package/dist/collection/components/pds-image/pds-image.js +2 -2
  120. package/dist/collection/components/pds-input/pds-input.js +2 -2
  121. package/dist/collection/components/pds-link/pds-link.js +2 -2
  122. package/dist/collection/components/pds-loader/pds-loader.js +1 -1
  123. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js +2 -2
  124. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js +1 -1
  125. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js +1 -1
  126. package/dist/collection/components/pds-modal/pds-modal.js +164 -10
  127. package/dist/collection/components/pds-modal/test/mock-pds-modal.js +1 -1
  128. package/dist/collection/components/pds-multiselect/pds-multiselect.js +3 -3
  129. package/dist/collection/components/pds-popover/pds-popover.js +1 -1
  130. package/dist/collection/components/pds-progress/pds-progress.js +1 -1
  131. package/dist/collection/components/pds-property/pds-property.js +1 -1
  132. package/dist/collection/components/pds-radio/pds-radio.js +3 -3
  133. package/dist/collection/components/pds-radio-group/pds-radio-group.js +3 -3
  134. package/dist/collection/components/pds-row/pds-row.js +1 -1
  135. package/dist/collection/components/pds-select/pds-select.js +1 -1
  136. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +1 -1
  137. package/dist/collection/components/pds-sortable/pds-sortable.js +1 -1
  138. package/dist/collection/components/pds-switch/pds-switch.css +1 -1
  139. package/dist/collection/components/pds-switch/pds-switch.js +3 -3
  140. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js +1 -1
  141. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +3 -3
  142. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +1 -1
  143. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +2 -2
  144. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +1 -1
  145. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +1 -1
  146. package/dist/collection/components/pds-tabs/pds-tabs.js +1 -1
  147. package/dist/collection/components/pds-text/pds-text.js +2 -2
  148. package/dist/collection/components/pds-textarea/pds-textarea.js +4 -4
  149. package/dist/collection/components/pds-toast/pds-toast.js +3 -3
  150. package/dist/collection/components/pds-tooltip/pds-tooltip.js +2 -2
  151. package/dist/collection/index.js +1 -0
  152. package/dist/collection/utils/test/reduced-motion.js +78 -0
  153. package/dist/collection/utils/truncation-tooltip.js +51 -1
  154. package/dist/docs.json +385 -5
  155. package/dist/esm/{index-Bu9gFIxM.js → index-DdPaBxPo.js} +1 -1
  156. package/dist/esm/index.js +19 -0
  157. package/dist/esm/loader.js +1 -1
  158. package/dist/esm/mock-pds-modal.entry.js +1 -1
  159. package/dist/esm/pds-accordion.entry.js +1 -1
  160. package/dist/esm/pds-avatar.entry.js +1 -1
  161. package/dist/esm/pds-button.entry.js +1 -1
  162. package/dist/esm/pds-checkbox.entry.js +1 -1
  163. package/dist/esm/pds-chip.entry.js +17 -8
  164. package/dist/esm/pds-copytext.entry.js +7 -3
  165. package/dist/esm/pds-drawer-content.entry.js +21 -0
  166. package/dist/esm/pds-drawer-footer.entry.js +21 -0
  167. package/dist/esm/pds-drawer-header.entry.js +21 -0
  168. package/dist/esm/pds-drawer.entry.js +135 -0
  169. package/dist/esm/pds-dropdown-menu-item.entry.js +1 -1
  170. package/dist/esm/pds-dropdown-menu-separator.entry.js +1 -1
  171. package/dist/esm/pds-dropdown-menu.entry.js +1 -1
  172. package/dist/esm/pds-filter.entry.js +2 -2
  173. package/dist/esm/pds-filters.entry.js +1 -1
  174. package/dist/esm/pds-image.entry.js +2 -2
  175. package/dist/esm/pds-input.entry.js +3 -3
  176. package/dist/esm/pds-link.entry.js +3 -3
  177. package/dist/esm/pds-loader.entry.js +1 -1
  178. package/dist/esm/pds-modal-content.entry.js +2 -2
  179. package/dist/esm/pds-modal-footer.entry.js +1 -1
  180. package/dist/esm/pds-modal-header.entry.js +1 -1
  181. package/dist/esm/pds-modal.entry.js +141 -10
  182. package/dist/esm/pds-multiselect.entry.js +4 -4
  183. package/dist/esm/pds-popover.entry.js +1 -1
  184. package/dist/esm/pds-progress.entry.js +1 -1
  185. package/dist/esm/pds-property.entry.js +1 -1
  186. package/dist/esm/pds-radio-group.entry.js +4 -4
  187. package/dist/esm/pds-radio.entry.js +4 -4
  188. package/dist/esm/pds-row.entry.js +1 -1
  189. package/dist/esm/pds-select.entry.js +2 -2
  190. package/dist/esm/pds-sortable-item.entry.js +2 -2
  191. package/dist/esm/pds-sortable.entry.js +1 -1
  192. package/dist/esm/pds-switch.entry.js +5 -5
  193. package/dist/esm/pds-table-body.entry.js +1 -1
  194. package/dist/esm/pds-table-cell.entry.js +3 -3
  195. package/dist/esm/pds-table-head-cell.entry.js +3 -3
  196. package/dist/esm/pds-table-head.entry.js +1 -1
  197. package/dist/esm/pds-table-row.entry.js +1 -1
  198. package/dist/esm/pds-tabpanel.entry.js +1 -1
  199. package/dist/esm/pds-tabs.entry.js +1 -1
  200. package/dist/esm/pds-text.entry.js +3 -21
  201. package/dist/esm/pds-textarea.entry.js +5 -5
  202. package/dist/esm/pds-toast.entry.js +3 -3
  203. package/dist/esm/pds-tooltip.entry.js +2 -2
  204. package/dist/esm/pine-core.js +1 -1
  205. package/dist/esm/{truncation-tooltip-Blk4GigP.js → truncation-tooltip-CdtEBn_5.js} +51 -1
  206. package/dist/esm-es5/index.js +1 -0
  207. package/dist/esm-es5/loader.js +1 -1
  208. package/dist/esm-es5/mock-pds-modal.entry.js +1 -1
  209. package/dist/esm-es5/pds-accordion.entry.js +1 -1
  210. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  211. package/dist/esm-es5/pds-button.entry.js +1 -1
  212. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  213. package/dist/esm-es5/pds-chip.entry.js +1 -1
  214. package/dist/esm-es5/pds-copytext.entry.js +1 -1
  215. package/dist/esm-es5/pds-drawer-content.entry.js +1 -0
  216. package/dist/esm-es5/pds-drawer-footer.entry.js +1 -0
  217. package/dist/esm-es5/pds-drawer-header.entry.js +1 -0
  218. package/dist/esm-es5/pds-drawer.entry.js +1 -0
  219. package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -1
  220. package/dist/esm-es5/pds-dropdown-menu-separator.entry.js +1 -1
  221. package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
  222. package/dist/esm-es5/pds-filter.entry.js +1 -1
  223. package/dist/esm-es5/pds-filters.entry.js +1 -1
  224. package/dist/esm-es5/pds-image.entry.js +1 -1
  225. package/dist/esm-es5/pds-input.entry.js +1 -1
  226. package/dist/esm-es5/pds-link.entry.js +1 -1
  227. package/dist/esm-es5/pds-loader.entry.js +1 -1
  228. package/dist/esm-es5/pds-modal-content.entry.js +1 -1
  229. package/dist/esm-es5/pds-modal-footer.entry.js +1 -1
  230. package/dist/esm-es5/pds-modal-header.entry.js +1 -1
  231. package/dist/esm-es5/pds-modal.entry.js +1 -1
  232. package/dist/esm-es5/pds-multiselect.entry.js +1 -1
  233. package/dist/esm-es5/pds-popover.entry.js +1 -1
  234. package/dist/esm-es5/pds-progress.entry.js +1 -1
  235. package/dist/esm-es5/pds-property.entry.js +1 -1
  236. package/dist/esm-es5/pds-radio-group.entry.js +1 -1
  237. package/dist/esm-es5/pds-radio.entry.js +1 -1
  238. package/dist/esm-es5/pds-row.entry.js +1 -1
  239. package/dist/esm-es5/pds-select.entry.js +1 -1
  240. package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
  241. package/dist/esm-es5/pds-sortable.entry.js +1 -1
  242. package/dist/esm-es5/pds-switch.entry.js +1 -1
  243. package/dist/esm-es5/pds-table-body.entry.js +1 -1
  244. package/dist/esm-es5/pds-table-cell.entry.js +1 -1
  245. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  246. package/dist/esm-es5/pds-table-head.entry.js +1 -1
  247. package/dist/esm-es5/pds-table-row.entry.js +1 -1
  248. package/dist/esm-es5/pds-tabpanel.entry.js +1 -1
  249. package/dist/esm-es5/pds-tabs.entry.js +1 -1
  250. package/dist/esm-es5/pds-text.entry.js +1 -1
  251. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  252. package/dist/esm-es5/pds-toast.entry.js +1 -1
  253. package/dist/esm-es5/pds-tooltip.entry.js +1 -1
  254. package/dist/esm-es5/pine-core.js +1 -1
  255. package/dist/esm-es5/truncation-tooltip-CdtEBn_5.js +1 -0
  256. package/dist/pine-core/index.esm.js +1 -0
  257. package/dist/pine-core/p-02a47ebb.entry.js +1 -0
  258. package/dist/pine-core/{p-6089d811.entry.js → p-049681fc.entry.js} +1 -1
  259. package/dist/pine-core/p-053b0898.system.entry.js +1 -0
  260. package/dist/pine-core/{p-b0531455.entry.js → p-09413b07.entry.js} +1 -1
  261. package/dist/pine-core/{p-ba8bd9dc.system.entry.js → p-0ab735aa.system.entry.js} +1 -1
  262. package/dist/pine-core/p-12182cab.entry.js +1 -0
  263. package/dist/pine-core/p-15d3a4bc.system.entry.js +1 -0
  264. package/dist/pine-core/{p-bba759f8.system.entry.js → p-1614c000.system.entry.js} +1 -1
  265. package/dist/pine-core/{p-c0753d9f.entry.js → p-17dc3f87.entry.js} +1 -1
  266. package/dist/pine-core/p-18a59cdd.system.entry.js +1 -0
  267. package/dist/pine-core/{p-c713ffc6.system.entry.js → p-1e2a9b5d.system.entry.js} +1 -1
  268. package/dist/pine-core/{p-ce63f726.system.entry.js → p-1f307e59.system.entry.js} +1 -1
  269. package/dist/pine-core/{p-056667f0.entry.js → p-2016c878.entry.js} +1 -1
  270. package/dist/pine-core/{p-bfa640f4.system.entry.js → p-2eb8d697.system.entry.js} +1 -1
  271. package/dist/pine-core/{p-af4a24d9.entry.js → p-31e1722e.entry.js} +1 -1
  272. package/dist/pine-core/{p-63f5f66f.system.entry.js → p-324a7ae4.system.entry.js} +1 -1
  273. package/dist/pine-core/{p-d157a33a.entry.js → p-32f10aa9.entry.js} +1 -1
  274. package/dist/pine-core/p-33c0f3c9.system.entry.js +1 -0
  275. package/dist/pine-core/{p-b17fa86a.system.entry.js → p-3464b456.system.entry.js} +1 -1
  276. package/dist/pine-core/{p-902b3e8b.system.entry.js → p-34e38037.system.entry.js} +1 -1
  277. package/dist/pine-core/{p-8e6a8a8e.entry.js → p-3605a5f5.entry.js} +1 -1
  278. package/dist/pine-core/{p-65557500.entry.js → p-376f8286.entry.js} +1 -1
  279. package/dist/pine-core/{p-0e89a189.entry.js → p-3873f55b.entry.js} +1 -1
  280. package/dist/pine-core/{p-a7eabc0c.system.entry.js → p-3c229a00.system.entry.js} +1 -1
  281. package/dist/pine-core/{p-46f0dda5.system.entry.js → p-3c4236a8.system.entry.js} +1 -1
  282. package/dist/pine-core/{p-afd07d5b.entry.js → p-3e0c6384.entry.js} +1 -1
  283. package/dist/pine-core/p-3eca0b00.entry.js +1 -0
  284. package/dist/pine-core/{p-0fcda1ec.entry.js → p-3f12afb1.entry.js} +1 -1
  285. package/dist/pine-core/p-43338f77.system.entry.js +1 -0
  286. package/dist/pine-core/{p-463eb0e6.system.entry.js → p-4661259e.system.entry.js} +1 -1
  287. package/dist/pine-core/{p-92c79ed4.system.entry.js → p-4d388957.system.entry.js} +1 -1
  288. package/dist/pine-core/{p-3050c66f.entry.js → p-51b8490d.entry.js} +1 -1
  289. package/dist/pine-core/{p-e16dfb32.system.entry.js → p-51dff5af.system.entry.js} +1 -1
  290. package/dist/pine-core/p-53a4852e.system.entry.js +1 -0
  291. package/dist/pine-core/{p-d54af26c.system.entry.js → p-56b34569.system.entry.js} +1 -1
  292. package/dist/pine-core/{p-cf72e9b1.system.entry.js → p-5772f260.system.entry.js} +1 -1
  293. package/dist/pine-core/{p-9fd1e8f4.system.entry.js → p-585ad368.system.entry.js} +1 -1
  294. package/dist/pine-core/p-591fbff5.entry.js +1 -0
  295. package/dist/pine-core/{p-2fd71a0c.entry.js → p-5aea1082.entry.js} +1 -1
  296. package/dist/pine-core/{p-460aa66f.system.entry.js → p-5dd393cd.system.entry.js} +1 -1
  297. package/dist/pine-core/p-613a64f1.entry.js +1 -0
  298. package/dist/pine-core/{p-e450eb27.system.entry.js → p-630f33d6.system.entry.js} +1 -1
  299. package/dist/pine-core/{p-33de0eb7.system.entry.js → p-63686e2a.system.entry.js} +1 -1
  300. package/dist/pine-core/{p-2d4b9253.entry.js → p-6f7a7d55.entry.js} +1 -1
  301. package/dist/pine-core/p-6fd863e5.system.entry.js +1 -0
  302. package/dist/pine-core/{p-8702635d.system.entry.js → p-76286a68.system.entry.js} +1 -1
  303. package/dist/pine-core/p-78fd593d.system.entry.js +1 -0
  304. package/dist/pine-core/{p-ae296598.entry.js → p-7e2b934d.entry.js} +1 -1
  305. package/dist/pine-core/p-7e44106e.entry.js +1 -0
  306. package/dist/pine-core/p-84ade640.entry.js +1 -0
  307. package/dist/pine-core/{p-eb4058ed.system.entry.js → p-869ed1c0.system.entry.js} +1 -1
  308. package/dist/pine-core/{p-9b68669f.entry.js → p-8be301b6.entry.js} +1 -1
  309. package/dist/pine-core/{p-08151143.system.entry.js → p-8cc270f0.system.entry.js} +1 -1
  310. package/dist/pine-core/p-8cea0d7a.system.entry.js +1 -0
  311. package/dist/pine-core/{p-3b9e77b3.entry.js → p-8eef80d5.entry.js} +1 -1
  312. package/dist/pine-core/{p-b255d3b7.entry.js → p-957dbb0c.entry.js} +1 -1
  313. package/dist/pine-core/p-B2nn1gSd.js +1 -0
  314. package/dist/pine-core/{p-CRCxGYgw.system.js → p-B2qvvB3q.system.js} +1 -1
  315. package/dist/pine-core/p-Dr-FzkdE.system.js +1 -1
  316. package/dist/pine-core/p-G3CPPJEt.system.js +1 -0
  317. package/dist/pine-core/{p-ce79321b.system.entry.js → p-a11a9c40.system.entry.js} +1 -1
  318. package/dist/pine-core/p-a4a58477.entry.js +1 -0
  319. package/dist/pine-core/{p-9a7294e7.system.entry.js → p-a98bf89f.system.entry.js} +1 -1
  320. package/dist/pine-core/{p-aecaff12.entry.js → p-ac0098fd.entry.js} +1 -1
  321. package/dist/pine-core/{p-228a9068.system.entry.js → p-b32e3174.system.entry.js} +1 -1
  322. package/dist/pine-core/{p-2af19aa7.entry.js → p-b923a70b.entry.js} +1 -1
  323. package/dist/pine-core/p-be4a6cc2.entry.js +1 -0
  324. package/dist/pine-core/{p-d804d37b.system.entry.js → p-be819bff.system.entry.js} +1 -1
  325. package/dist/pine-core/{p-85434de8.system.entry.js → p-c0b3f2c1.system.entry.js} +1 -1
  326. package/dist/pine-core/p-c1f8a187.entry.js +1 -0
  327. package/dist/pine-core/{p-4d6944aa.entry.js → p-c5ce6dea.entry.js} +1 -1
  328. package/dist/pine-core/{p-97198cb6.system.entry.js → p-c8bffb08.system.entry.js} +1 -1
  329. package/dist/pine-core/p-cf24ed1e.system.entry.js +1 -0
  330. package/dist/pine-core/{p-9487ff20.system.entry.js → p-d0d2a886.system.entry.js} +1 -1
  331. package/dist/pine-core/{p-f3683be8.entry.js → p-d12ef40d.entry.js} +1 -1
  332. package/dist/pine-core/{p-aa208514.entry.js → p-d21739eb.entry.js} +1 -1
  333. package/dist/pine-core/p-d280741f.entry.js +1 -0
  334. package/dist/pine-core/p-d43db3ba.entry.js +1 -0
  335. package/dist/pine-core/{p-1e952dbb.entry.js → p-d46adf7d.entry.js} +1 -1
  336. package/dist/pine-core/{p-7a1971ec.entry.js → p-d7865297.entry.js} +1 -1
  337. package/dist/pine-core/{p-226232a7.system.entry.js → p-d9ffb2d9.system.entry.js} +1 -1
  338. package/dist/pine-core/p-db5703f2.entry.js +1 -0
  339. package/dist/pine-core/p-dd6d9807.system.entry.js +1 -0
  340. package/dist/pine-core/p-e0da17aa.system.entry.js +1 -0
  341. package/dist/pine-core/{p-4923a3fe.entry.js → p-e3600c53.entry.js} +1 -1
  342. package/dist/pine-core/{p-a9e54964.entry.js → p-e3a7d2db.entry.js} +1 -1
  343. package/dist/pine-core/{p-04a30a2d.system.entry.js → p-e3cd4627.system.entry.js} +1 -1
  344. package/dist/pine-core/{p-1649dd61.system.entry.js → p-e410b0d8.system.entry.js} +1 -1
  345. package/dist/pine-core/p-e5bbe8cc.entry.js +1 -0
  346. package/dist/pine-core/{p-4dad0878.entry.js → p-e95225cf.entry.js} +1 -1
  347. package/dist/pine-core/{p-544ccf67.entry.js → p-ed297f3e.entry.js} +1 -1
  348. package/dist/pine-core/{p-fcf91f14.system.entry.js → p-f21aea90.system.entry.js} +1 -1
  349. package/dist/pine-core/{p-a3c4c0ee.entry.js → p-f7a5062f.entry.js} +1 -1
  350. package/dist/pine-core/p-f94667b5.entry.js +1 -0
  351. package/dist/pine-core/p-fbf5f315.entry.js +1 -0
  352. package/dist/pine-core/{p-7c18e9e8.system.entry.js → p-fec298bb.system.entry.js} +1 -1
  353. package/dist/pine-core/pine-core.esm.js +1 -1
  354. package/dist/types/components/pds-drawer/pds-drawer-content/pds-drawer-content.d.ts +11 -0
  355. package/dist/types/components/pds-drawer/pds-drawer-footer/pds-drawer-footer.d.ts +5 -0
  356. package/dist/types/components/pds-drawer/pds-drawer-header/pds-drawer-header.d.ts +5 -0
  357. package/dist/types/components/pds-drawer/pds-drawer.d.ts +78 -0
  358. package/dist/types/components/pds-modal/pds-modal.d.ts +38 -0
  359. package/dist/types/components/pds-table/pds-table-cell/pds-table-cell.d.ts +2 -1
  360. package/dist/types/components/pds-text/pds-text.d.ts +2 -1
  361. package/dist/types/components.d.ts +228 -4
  362. package/dist/types/index.d.ts +1 -0
  363. package/dist/types/utils/test/reduced-motion.d.ts +30 -0
  364. package/dist/types/utils/truncation-tooltip.d.ts +12 -0
  365. package/dist/vscode.html-data.json +139 -2
  366. package/hydrate/index.js +538 -101
  367. package/hydrate/index.mjs +538 -101
  368. package/package.json +7 -3
  369. package/dist/esm-es5/truncation-tooltip-Blk4GigP.js +0 -1
  370. package/dist/pine-core/p-0d73d473.entry.js +0 -1
  371. package/dist/pine-core/p-1ba361cb.entry.js +0 -1
  372. package/dist/pine-core/p-210f0994.system.entry.js +0 -1
  373. package/dist/pine-core/p-2e214db6.entry.js +0 -1
  374. package/dist/pine-core/p-3cdc1a5b.entry.js +0 -1
  375. package/dist/pine-core/p-4faff617.entry.js +0 -1
  376. package/dist/pine-core/p-50e0f726.system.entry.js +0 -1
  377. package/dist/pine-core/p-520f7a5b.entry.js +0 -1
  378. package/dist/pine-core/p-53999cd6.system.entry.js +0 -1
  379. package/dist/pine-core/p-5c239f0a.entry.js +0 -1
  380. package/dist/pine-core/p-611f68b7.system.entry.js +0 -1
  381. package/dist/pine-core/p-897fe88c.entry.js +0 -1
  382. package/dist/pine-core/p-9507eb49.system.entry.js +0 -1
  383. package/dist/pine-core/p-BNSGedhN.js +0 -1
  384. package/dist/pine-core/p-YWpyar7R.system.js +0 -1
  385. package/dist/pine-core/p-a53222f7.entry.js +0 -1
  386. package/dist/pine-core/p-a8ab4d9b.entry.js +0 -1
  387. package/dist/pine-core/p-b52deffb.entry.js +0 -1
  388. package/dist/pine-core/p-b6c2090f.system.entry.js +0 -1
  389. package/dist/pine-core/p-d27ef352.system.entry.js +0 -1
  390. package/dist/pine-core/p-e11795db.system.entry.js +0 -1
  391. package/dist/pine-core/p-f09ce49e.entry.js +0 -1
  392. /package/dist/esm-es5/{index-Bu9gFIxM.js → index-DdPaBxPo.js} +0 -0
  393. /package/dist/pine-core/{p-Bjc6fc_Y.system.js → p--Llh7wKm.system.js} +0 -0
  394. /package/dist/pine-core/{p-Bu9gFIxM.js → p-DdPaBxPo.js} +0 -0
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Fills the drawer panel's height by default — unlike `pds-modal-content`,
3
+ * which caps itself against the viewport for a centered, possibly-shorter
4
+ * modal, a drawer panel is already edge-to-edge, so its content can simply
5
+ * flex to fill whatever space the header and footer leave.
6
+ */
7
+ export declare class PdsDrawerContent {
8
+ el: HTMLPdsDrawerContentElement;
9
+ componentDidRender(): void;
10
+ render(): any;
11
+ }
@@ -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;
@@ -1149,6 +1149,63 @@ export namespace Components {
1149
1149
  */
1150
1150
  "vertical": boolean;
1151
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
+ }
1152
1209
  interface PdsDropdownMenu {
1153
1210
  /**
1154
1211
  * A unique identifier used for the underlying component `id` attribute.
@@ -1498,6 +1555,11 @@ export namespace Components {
1498
1555
  * A unique identifier used for the underlying component `id` attribute.
1499
1556
  */
1500
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;
1501
1563
  /**
1502
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.
1503
1565
  * @default false
@@ -2211,7 +2273,7 @@ export namespace Components {
2211
2273
  */
2212
2274
  "cellAlign"?: 'start' | 'center' | 'end' | 'justify';
2213
2275
  /**
2214
- * 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.
2215
2277
  */
2216
2278
  "truncate": boolean;
2217
2279
  }
@@ -2357,7 +2419,7 @@ export namespace Components {
2357
2419
  | 'strong'
2358
2420
  | 'em';
2359
2421
  /**
2360
- * 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.
2361
2423
  */
2362
2424
  "truncate"?: boolean;
2363
2425
  /**
@@ -2562,6 +2624,10 @@ export interface PdsCopytextCustomEvent<T> extends CustomEvent<T> {
2562
2624
  detail: T;
2563
2625
  target: HTMLPdsCopytextElement;
2564
2626
  }
2627
+ export interface PdsDrawerCustomEvent<T> extends CustomEvent<T> {
2628
+ detail: T;
2629
+ target: HTMLPdsDrawerElement;
2630
+ }
2565
2631
  export interface PdsDropdownMenuItemCustomEvent<T> extends CustomEvent<T> {
2566
2632
  detail: T;
2567
2633
  target: HTMLPdsDropdownMenuItemElement;
@@ -2804,6 +2870,57 @@ declare global {
2804
2870
  prototype: HTMLPdsDividerElement;
2805
2871
  new (): HTMLPdsDividerElement;
2806
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
+ };
2807
2924
  interface HTMLPdsDropdownMenuElement extends Components.PdsDropdownMenu, HTMLStencilElement {
2808
2925
  }
2809
2926
  var HTMLPdsDropdownMenuElement: {
@@ -3262,6 +3379,10 @@ declare global {
3262
3379
  "pds-container": HTMLPdsContainerElement;
3263
3380
  "pds-copytext": HTMLPdsCopytextElement;
3264
3381
  "pds-divider": HTMLPdsDividerElement;
3382
+ "pds-drawer": HTMLPdsDrawerElement;
3383
+ "pds-drawer-content": HTMLPdsDrawerContentElement;
3384
+ "pds-drawer-footer": HTMLPdsDrawerFooterElement;
3385
+ "pds-drawer-header": HTMLPdsDrawerHeaderElement;
3265
3386
  "pds-dropdown-menu": HTMLPdsDropdownMenuElement;
3266
3387
  "pds-dropdown-menu-item": HTMLPdsDropdownMenuItemElement;
3267
3388
  "pds-dropdown-menu-separator": HTMLPdsDropdownMenuSeparatorElement;
@@ -4455,6 +4576,71 @@ declare namespace LocalJSX {
4455
4576
  */
4456
4577
  "vertical"?: boolean;
4457
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
+ }
4458
4644
  interface PdsDropdownMenu {
4459
4645
  /**
4460
4646
  * A unique identifier used for the underlying component `id` attribute.
@@ -4828,6 +5014,11 @@ declare namespace LocalJSX {
4828
5014
  * A unique identifier used for the underlying component `id` attribute.
4829
5015
  */
4830
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;
4831
5022
  /**
4832
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.
4833
5024
  * @default false
@@ -5589,7 +5780,7 @@ declare namespace LocalJSX {
5589
5780
  */
5590
5781
  "cellAlign"?: 'start' | 'center' | 'end' | 'justify';
5591
5782
  /**
5592
- * 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.
5593
5784
  */
5594
5785
  "truncate"?: boolean;
5595
5786
  }
@@ -5727,7 +5918,7 @@ declare namespace LocalJSX {
5727
5918
  | 'strong'
5728
5919
  | 'em';
5729
5920
  /**
5730
- * 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.
5731
5922
  */
5732
5923
  "truncate"?: boolean;
5733
5924
  /**
@@ -6171,6 +6362,15 @@ declare namespace LocalJSX {
6171
6362
  "offset": 'xxs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
6172
6363
  "vertical": boolean;
6173
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
+ }
6174
6374
  interface PdsDropdownMenuAttributes {
6175
6375
  "componentId": string;
6176
6376
  "placement": PlacementType;
@@ -6269,6 +6469,7 @@ declare namespace LocalJSX {
6269
6469
  "size": 'sm' | 'md' | 'lg' | 'fullscreen';
6270
6470
  "scrollable": boolean;
6271
6471
  "disableTopLayer": boolean;
6472
+ "disableInitialFocus": boolean;
6272
6473
  }
6273
6474
  interface PdsModalContentAttributes {
6274
6475
  "border": 'none' | 'both' | 'top' | 'bottom';
@@ -6539,6 +6740,10 @@ declare namespace LocalJSX {
6539
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] };
6540
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"]>;
6541
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;
6542
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] };
6543
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] };
6544
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] };
@@ -6598,6 +6803,25 @@ declare module "@stencil/core" {
6598
6803
  "pds-container": LocalJSX.IntrinsicElements["pds-container"] & JSXBase.HTMLAttributes<HTMLPdsContainerElement>;
6599
6804
  "pds-copytext": LocalJSX.IntrinsicElements["pds-copytext"] & JSXBase.HTMLAttributes<HTMLPdsCopytextElement>;
6600
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>;
6601
6825
  "pds-dropdown-menu": LocalJSX.IntrinsicElements["pds-dropdown-menu"] & JSXBase.HTMLAttributes<HTMLPdsDropdownMenuElement>;
6602
6826
  "pds-dropdown-menu-item": LocalJSX.IntrinsicElements["pds-dropdown-menu-item"] & JSXBase.HTMLAttributes<HTMLPdsDropdownMenuItemElement>;
6603
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;