@pine-ds/core 3.11.1 → 3.12.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 (894) hide show
  1. package/components/index.d.ts +2 -0
  2. package/components/index.js +1 -0
  3. package/components/index.js.map +1 -1
  4. package/components/index2.js +1 -1
  5. package/components/pds-accordion.js +1 -1
  6. package/components/pds-accordion.js.map +1 -1
  7. package/components/pds-alert.js +2 -2
  8. package/components/pds-alert.js.map +1 -1
  9. package/components/pds-avatar.js +1 -1
  10. package/components/pds-avatar.js.map +1 -1
  11. package/components/pds-box2.js +1 -1
  12. package/components/pds-box2.js.map +1 -1
  13. package/components/pds-button2.js +1 -1
  14. package/components/pds-button2.js.map +1 -1
  15. package/components/pds-checkbox2.js +2 -2
  16. package/components/pds-checkbox2.js.map +1 -1
  17. package/components/pds-chip2.js +1 -1
  18. package/components/pds-chip2.js.map +1 -1
  19. package/components/pds-combobox.js +1 -1
  20. package/components/pds-combobox.js.map +1 -1
  21. package/components/pds-copytext.js +1 -1
  22. package/components/pds-copytext.js.map +1 -1
  23. package/components/pds-dropdown-menu-item.js +1 -1
  24. package/components/pds-dropdown-menu-item.js.map +1 -1
  25. package/components/pds-dropdown-menu-separator.js +1 -1
  26. package/components/pds-dropdown-menu-separator.js.map +1 -1
  27. package/components/pds-dropdown-menu.js +1 -1
  28. package/components/pds-dropdown-menu.js.map +1 -1
  29. package/components/pds-filter.js +1 -1
  30. package/components/pds-filter.js.map +1 -1
  31. package/components/pds-input.js +2 -2
  32. package/components/pds-input.js.map +1 -1
  33. package/components/pds-link2.js +1 -1
  34. package/components/pds-link2.js.map +1 -1
  35. package/components/pds-loader2.js +1 -1
  36. package/components/pds-loader2.js.map +1 -1
  37. package/components/pds-modal-content.js +1 -1
  38. package/components/pds-modal-content.js.map +1 -1
  39. package/components/pds-popover.js +6 -3
  40. package/components/pds-popover.js.map +1 -1
  41. package/components/pds-progress.js +1 -1
  42. package/components/pds-progress.js.map +1 -1
  43. package/components/pds-radio-group.d.ts +11 -0
  44. package/components/pds-radio-group.js +211 -0
  45. package/components/pds-radio-group.js.map +1 -0
  46. package/components/pds-radio.js +10 -5
  47. package/components/pds-radio.js.map +1 -1
  48. package/components/pds-row.js +1 -1
  49. package/components/pds-select.js +3 -3
  50. package/components/pds-select.js.map +1 -1
  51. package/components/pds-sortable-item.js +2 -2
  52. package/components/pds-sortable.js +1 -1
  53. package/components/pds-switch.js +5 -5
  54. package/components/pds-switch.js.map +1 -1
  55. package/components/pds-tab.js +4 -4
  56. package/components/pds-tab.js.map +1 -1
  57. package/components/pds-table-body.js +1 -1
  58. package/components/pds-table-cell2.js +2 -2
  59. package/components/pds-table-head-cell2.js +3 -3
  60. package/components/pds-table-head-cell2.js.map +1 -1
  61. package/components/pds-table-head.js +2 -2
  62. package/components/pds-table-head.js.map +1 -1
  63. package/components/pds-table-row.js +2 -2
  64. package/components/pds-table-row.js.map +1 -1
  65. package/components/pds-table.js +1 -1
  66. package/components/pds-table.js.map +1 -1
  67. package/components/pds-tabpanel.js +1 -1
  68. package/components/pds-tabs.js +2 -2
  69. package/components/pds-tabs.js.map +1 -1
  70. package/components/pds-text2.js +2 -2
  71. package/components/pds-text2.js.map +1 -1
  72. package/components/pds-textarea.js +6 -6
  73. package/components/pds-textarea.js.map +1 -1
  74. package/components/pds-toast.js +3 -3
  75. package/components/pds-tooltip.js +2 -2
  76. package/dist/cjs/{index-2Lf0E1JO.js → index-CI0W8NCh.js} +3 -3
  77. package/dist/cjs/index-CI0W8NCh.js.map +1 -0
  78. package/dist/cjs/loader.cjs.js +2 -2
  79. package/dist/cjs/mock-pds-modal.cjs.entry.js +1 -1
  80. package/dist/cjs/pds-accordion.cjs.entry.js +2 -2
  81. package/dist/cjs/pds-accordion.entry.cjs.js.map +1 -1
  82. package/dist/cjs/pds-alert.cjs.entry.js +3 -3
  83. package/dist/cjs/pds-alert.entry.cjs.js.map +1 -1
  84. package/dist/cjs/pds-avatar.cjs.entry.js +2 -2
  85. package/dist/cjs/pds-avatar.entry.cjs.js.map +1 -1
  86. package/dist/cjs/pds-box.cjs.entry.js +2 -2
  87. package/dist/cjs/pds-box.entry.cjs.js.map +1 -1
  88. package/dist/cjs/pds-button.cjs.entry.js +2 -2
  89. package/dist/cjs/pds-button.entry.cjs.js.map +1 -1
  90. package/dist/cjs/pds-checkbox.cjs.entry.js +2 -2
  91. package/dist/cjs/pds-checkbox.entry.cjs.js.map +1 -1
  92. package/dist/cjs/pds-chip.cjs.entry.js +2 -2
  93. package/dist/cjs/pds-chip.entry.cjs.js.map +1 -1
  94. package/dist/cjs/pds-combobox.cjs.entry.js +2 -2
  95. package/dist/cjs/pds-combobox.entry.cjs.js.map +1 -1
  96. package/dist/cjs/pds-copytext.cjs.entry.js +2 -2
  97. package/dist/cjs/pds-copytext.entry.cjs.js.map +1 -1
  98. package/dist/cjs/pds-divider.cjs.entry.js +1 -1
  99. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +2 -2
  100. package/dist/cjs/pds-dropdown-menu-item.entry.cjs.js.map +1 -1
  101. package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +2 -2
  102. package/dist/cjs/pds-dropdown-menu-separator.entry.cjs.js.map +1 -1
  103. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +2 -2
  104. package/dist/cjs/pds-dropdown-menu.entry.cjs.js.map +1 -1
  105. package/dist/cjs/pds-filter.cjs.entry.js +2 -2
  106. package/dist/cjs/pds-filter.entry.cjs.js.map +1 -1
  107. package/dist/cjs/pds-filters.cjs.entry.js +1 -1
  108. package/dist/cjs/pds-icon.cjs.entry.js +1 -1
  109. package/dist/cjs/pds-image.cjs.entry.js +1 -1
  110. package/dist/cjs/pds-input.cjs.entry.js +2 -2
  111. package/dist/cjs/pds-input.entry.cjs.js.map +1 -1
  112. package/dist/cjs/pds-link.cjs.entry.js +2 -2
  113. package/dist/cjs/pds-link.entry.cjs.js.map +1 -1
  114. package/dist/cjs/pds-loader.cjs.entry.js +2 -2
  115. package/dist/cjs/pds-loader.entry.cjs.js.map +1 -1
  116. package/dist/cjs/pds-modal-content.cjs.entry.js +2 -2
  117. package/dist/cjs/pds-modal-content.entry.cjs.js.map +1 -1
  118. package/dist/cjs/pds-modal-footer.cjs.entry.js +1 -1
  119. package/dist/cjs/pds-modal-header.cjs.entry.js +1 -1
  120. package/dist/cjs/pds-modal.cjs.entry.js +1 -1
  121. package/dist/cjs/pds-popover.cjs.entry.js +7 -4
  122. package/dist/cjs/pds-popover.entry.cjs.js.map +1 -1
  123. package/dist/cjs/pds-progress.cjs.entry.js +2 -2
  124. package/dist/cjs/pds-progress.entry.cjs.js.map +1 -1
  125. package/dist/cjs/pds-property.cjs.entry.js +1 -1
  126. package/dist/cjs/pds-radio-group.cjs.entry.js +170 -0
  127. package/dist/cjs/pds-radio-group.entry.cjs.js.map +1 -0
  128. package/dist/cjs/pds-radio.cjs.entry.js +10 -5
  129. package/dist/cjs/pds-radio.entry.cjs.js.map +1 -1
  130. package/dist/cjs/pds-row.cjs.entry.js +2 -2
  131. package/dist/cjs/pds-select.cjs.entry.js +3 -3
  132. package/dist/cjs/pds-select.entry.cjs.js.map +1 -1
  133. package/dist/cjs/pds-sortable-item.cjs.entry.js +2 -2
  134. package/dist/cjs/pds-sortable.cjs.entry.js +2 -2
  135. package/dist/cjs/pds-switch.cjs.entry.js +5 -5
  136. package/dist/cjs/pds-switch.entry.cjs.js.map +1 -1
  137. package/dist/cjs/pds-tab.cjs.entry.js +5 -5
  138. package/dist/cjs/pds-tab.entry.cjs.js.map +1 -1
  139. package/dist/cjs/pds-table-body.cjs.entry.js +2 -2
  140. package/dist/cjs/pds-table-cell.cjs.entry.js +3 -3
  141. package/dist/cjs/pds-table-head-cell.cjs.entry.js +4 -4
  142. package/dist/cjs/pds-table-head-cell.entry.cjs.js.map +1 -1
  143. package/dist/cjs/pds-table-head.cjs.entry.js +3 -3
  144. package/dist/cjs/pds-table-head.entry.cjs.js.map +1 -1
  145. package/dist/cjs/pds-table-row.cjs.entry.js +3 -3
  146. package/dist/cjs/pds-table-row.entry.cjs.js.map +1 -1
  147. package/dist/cjs/pds-table.cjs.entry.js +2 -2
  148. package/dist/cjs/pds-table.entry.cjs.js.map +1 -1
  149. package/dist/cjs/pds-tabpanel.cjs.entry.js +2 -2
  150. package/dist/cjs/pds-tabs.cjs.entry.js +3 -3
  151. package/dist/cjs/pds-tabs.entry.cjs.js.map +1 -1
  152. package/dist/cjs/pds-text.cjs.entry.js +3 -3
  153. package/dist/cjs/pds-text.entry.cjs.js.map +1 -1
  154. package/dist/cjs/pds-textarea.cjs.entry.js +6 -6
  155. package/dist/cjs/pds-textarea.entry.cjs.js.map +1 -1
  156. package/dist/cjs/pds-toast.cjs.entry.js +4 -4
  157. package/dist/cjs/pds-tooltip.cjs.entry.js +3 -3
  158. package/dist/cjs/pine-core.cjs.js +2 -2
  159. package/dist/collection/collection-manifest.json +1 -0
  160. package/dist/collection/components/_internal/pds-label/pds-label.js.map +1 -1
  161. package/dist/collection/components/pds-accordion/pds-accordion.css +1 -1
  162. package/dist/collection/components/pds-accordion/pds-accordion.js.map +1 -1
  163. package/dist/collection/components/pds-accordion/stories/pds-accordion.stories.js +0 -2
  164. package/dist/collection/components/pds-alert/pds-alert.css +1 -0
  165. package/dist/collection/components/pds-alert/pds-alert.js +1 -1
  166. package/dist/collection/components/pds-alert/pds-alert.js.map +1 -1
  167. package/dist/collection/components/pds-alert/stories/pds-alert.stories.js +3 -9
  168. package/dist/collection/components/pds-avatar/pds-avatar.css +3 -3
  169. package/dist/collection/components/pds-avatar/pds-avatar.js.map +1 -1
  170. package/dist/collection/components/pds-avatar/stories/pds-avatar.stories.js +0 -2
  171. package/dist/collection/components/pds-box/pds-box.css +754 -30
  172. package/dist/collection/components/pds-box/pds-box.js.map +1 -1
  173. package/dist/collection/components/pds-box/stories/pds-box.stories.js +0 -2
  174. package/dist/collection/components/pds-button/pds-button.css +11 -8
  175. package/dist/collection/components/pds-button/pds-button.js.map +1 -1
  176. package/dist/collection/components/pds-button/stories/pds-button.stories.js +2 -5
  177. package/dist/collection/components/pds-checkbox/checkbox-interface.js.map +1 -1
  178. package/dist/collection/components/pds-checkbox/pds-checkbox.css +3 -3
  179. package/dist/collection/components/pds-checkbox/pds-checkbox.js.map +1 -1
  180. package/dist/collection/components/pds-checkbox/stories/pds-checkbox.stories.js +1 -9
  181. package/dist/collection/components/pds-chip/pds-chip.css +3 -3
  182. package/dist/collection/components/pds-chip/pds-chip.js.map +1 -1
  183. package/dist/collection/components/pds-chip/stories/pds-chip.stories.js +3 -9
  184. package/dist/collection/components/pds-combobox/pds-combobox.css +7 -7
  185. package/dist/collection/components/pds-combobox/pds-combobox.js.map +1 -1
  186. package/dist/collection/components/pds-combobox/stories/pds-combobox.stories.js +2 -9
  187. package/dist/collection/components/pds-copytext/pds-copytext.css +1 -1
  188. package/dist/collection/components/pds-copytext/pds-copytext.js.map +1 -1
  189. package/dist/collection/components/pds-copytext/stories/pds-copytext.stories.js +3 -9
  190. package/dist/collection/components/pds-divider/pds-divider.js.map +1 -1
  191. package/dist/collection/components/pds-divider/stories/pds-divider.stories.js +0 -2
  192. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.css +2 -1
  193. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js.map +1 -1
  194. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.css +1 -1
  195. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js.map +1 -1
  196. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.css +4 -0
  197. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js.map +1 -1
  198. package/dist/collection/components/pds-dropdown-menu/stories/pds-dropdown-menu.stories.js +3 -9
  199. package/dist/collection/components/pds-filters/pds-filter/filter-interface.js.map +1 -1
  200. package/dist/collection/components/pds-filters/pds-filter/pds-filter.css +13 -13
  201. package/dist/collection/components/pds-filters/pds-filter/pds-filter.js.map +1 -1
  202. package/dist/collection/components/pds-filters/pds-filter/stories/pds-filter.stories.js +3 -9
  203. package/dist/collection/components/pds-filters/pds-filters.js.map +1 -1
  204. package/dist/collection/components/pds-filters/stories/pds-filters.stories.js +3 -9
  205. package/dist/collection/components/pds-image/pds-image.js.map +1 -1
  206. package/dist/collection/components/pds-image/stories/pds-image.stories.js +0 -2
  207. package/dist/collection/components/pds-input/input-interface.js.map +1 -1
  208. package/dist/collection/components/pds-input/pds-input.css +8 -2
  209. package/dist/collection/components/pds-input/pds-input.js.map +1 -1
  210. package/dist/collection/components/pds-input/stories/pds-input.stories.js +3 -13
  211. package/dist/collection/components/pds-link/pds-link.css +1 -1
  212. package/dist/collection/components/pds-link/pds-link.js.map +1 -1
  213. package/dist/collection/components/pds-link/stories/pds-link.stories.js +0 -2
  214. package/dist/collection/components/pds-loader/pds-loader.css +2 -2
  215. package/dist/collection/components/pds-loader/pds-loader.js.map +1 -1
  216. package/dist/collection/components/pds-loader/stories/pds-loader.stories.js +0 -2
  217. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.css +4 -4
  218. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js.map +1 -1
  219. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js.map +1 -1
  220. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js.map +1 -1
  221. package/dist/collection/components/pds-modal/pds-modal.js.map +1 -1
  222. package/dist/collection/components/pds-modal/stories/pds-modal.stories.js +3 -9
  223. package/dist/collection/components/pds-modal/test/mock-pds-modal.js.map +1 -1
  224. package/dist/collection/components/pds-popover/pds-popover.js +6 -3
  225. package/dist/collection/components/pds-popover/pds-popover.js.map +1 -1
  226. package/dist/collection/components/pds-popover/popover-interface.js.map +1 -1
  227. package/dist/collection/components/pds-popover/stories/pds-popover.stories.js +3 -9
  228. package/dist/collection/components/pds-progress/pds-progress.css +4 -4
  229. package/dist/collection/components/pds-progress/pds-progress.js.map +1 -1
  230. package/dist/collection/components/pds-progress/stories/pds-progress.stories.js +0 -2
  231. package/dist/collection/components/pds-property/pds-property.js.map +1 -1
  232. package/dist/collection/components/pds-property/stories/pds-property.stories.js +0 -4
  233. package/dist/collection/components/pds-radio/pds-radio.css +49 -50
  234. package/dist/collection/components/pds-radio/pds-radio.js +8 -3
  235. package/dist/collection/components/pds-radio/pds-radio.js.map +1 -1
  236. package/dist/collection/components/pds-radio/stories/pds-radio.stories.js +4 -11
  237. package/dist/collection/components/pds-radio-group/pds-radio-group.css +43 -0
  238. package/dist/collection/components/pds-radio-group/pds-radio-group.js +431 -0
  239. package/dist/collection/components/pds-radio-group/pds-radio-group.js.map +1 -0
  240. package/dist/collection/components/pds-radio-group/radio-group-interface.js +2 -0
  241. package/dist/collection/components/pds-radio-group/radio-group-interface.js.map +1 -0
  242. package/dist/collection/components/pds-radio-group/stories/pds-radio-group.stories.js +134 -0
  243. package/dist/collection/components/pds-row/pds-row.js +1 -1
  244. package/dist/collection/components/pds-row/pds-row.js.map +1 -1
  245. package/dist/collection/components/pds-row/stories/pds-row.stories.js +0 -2
  246. package/dist/collection/components/pds-select/pds-select.css +8 -0
  247. package/dist/collection/components/pds-select/pds-select.js +1 -1
  248. package/dist/collection/components/pds-select/pds-select.js.map +1 -1
  249. package/dist/collection/components/pds-select/stories/pds-select.stories.js +3 -9
  250. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +1 -1
  251. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js.map +1 -1
  252. package/dist/collection/components/pds-sortable/pds-sortable-item/stories/pds-sortable-item.stories.js +0 -2
  253. package/dist/collection/components/pds-sortable/pds-sortable.js +1 -1
  254. package/dist/collection/components/pds-sortable/pds-sortable.js.map +1 -1
  255. package/dist/collection/components/pds-sortable/sortable-interface.js.map +1 -1
  256. package/dist/collection/components/pds-sortable/stories/pds-sortable.stories.js +3 -9
  257. package/dist/collection/components/pds-switch/pds-switch.css +1 -1
  258. package/dist/collection/components/pds-switch/pds-switch.js +3 -3
  259. package/dist/collection/components/pds-switch/pds-switch.js.map +1 -1
  260. package/dist/collection/components/pds-switch/stories/pds-switch.stories.js +3 -9
  261. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js +1 -1
  262. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js.map +1 -1
  263. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +2 -2
  264. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js.map +1 -1
  265. package/dist/collection/components/pds-table/pds-table-cell/stories/pds-table-cell.stories.js +0 -4
  266. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.css +1 -1
  267. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +1 -1
  268. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js.map +1 -1
  269. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.css +2 -2
  270. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +2 -2
  271. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js.map +1 -1
  272. package/dist/collection/components/pds-table/pds-table-head-cell/stories/pds-table-head-cell.stories.js +0 -4
  273. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.css +1 -1
  274. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +1 -1
  275. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js.map +1 -1
  276. package/dist/collection/components/pds-table/pds-table-row/stories/pds-table-row.stories.js +3 -9
  277. package/dist/collection/components/pds-table/pds-table.css +1 -1
  278. package/dist/collection/components/pds-table/pds-table.js.map +1 -1
  279. package/dist/collection/components/pds-table/stories/pds-table.stories.js +3 -9
  280. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.css +6 -3
  281. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js +3 -3
  282. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js.map +1 -1
  283. package/dist/collection/components/pds-tabs/pds-tab/stories/pds-tab.stories.js +0 -4
  284. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +1 -1
  285. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js.map +1 -1
  286. package/dist/collection/components/pds-tabs/pds-tabpanel/stories/pds-tabpanel.stories.js +0 -4
  287. package/dist/collection/components/pds-tabs/pds-tabs.css +2 -2
  288. package/dist/collection/components/pds-tabs/pds-tabs.js +1 -1
  289. package/dist/collection/components/pds-tabs/pds-tabs.js.map +1 -1
  290. package/dist/collection/components/pds-tabs/stories/pds-tabs.stories.js +3 -9
  291. package/dist/collection/components/pds-text/pds-text.css +1 -1
  292. package/dist/collection/components/pds-text/pds-text.js +1 -1
  293. package/dist/collection/components/pds-text/pds-text.js.map +1 -1
  294. package/dist/collection/components/pds-text/stories/pds-text.stories.js +17 -30
  295. package/dist/collection/components/pds-textarea/pds-textarea.css +8 -1
  296. package/dist/collection/components/pds-textarea/pds-textarea.js +4 -4
  297. package/dist/collection/components/pds-textarea/pds-textarea.js.map +1 -1
  298. package/dist/collection/components/pds-textarea/stories/pds-textarea.stories.js +3 -14
  299. package/dist/collection/components/pds-textarea/textarea-interface.js.map +1 -1
  300. package/dist/collection/components/pds-toast/pds-toast.js +3 -3
  301. package/dist/collection/components/pds-toast/pds-toast.js.map +1 -1
  302. package/dist/collection/components/pds-toast/stories/pds-toast.stories.js +3 -11
  303. package/dist/collection/components/pds-tooltip/pds-tooltip.js +2 -2
  304. package/dist/collection/components/pds-tooltip/pds-tooltip.js.map +1 -1
  305. package/dist/collection/components/pds-tooltip/stories/pds-tooltip.stories.js +3 -9
  306. package/dist/collection/global/pine-ui-global.js.map +1 -1
  307. package/dist/collection/index.js +1 -0
  308. package/dist/collection/index.js.map +1 -1
  309. package/dist/collection/utils/attributes.js.map +1 -1
  310. package/dist/collection/utils/closest.js.map +1 -1
  311. package/dist/collection/utils/form.js.map +1 -1
  312. package/dist/collection/utils/interfaces.js.map +1 -1
  313. package/dist/collection/utils/overlay.js.map +1 -1
  314. package/dist/collection/utils/types.js.map +1 -1
  315. package/dist/collection/utils/utils.js.map +1 -1
  316. package/dist/docs.json +334 -1
  317. package/dist/esm/{index-CvGEHHLR.js → index-CShvJnsl.js} +3 -3
  318. package/dist/{esm-es5/index-CvGEHHLR.js.map → esm/index-CShvJnsl.js.map} +1 -1
  319. package/dist/esm/{index-Bh07GI-d.js → index-DHPhrb5T.js} +3 -3
  320. package/dist/esm/index-DHPhrb5T.js.map +1 -0
  321. package/dist/esm/loader.js +3 -3
  322. package/dist/esm/mock-pds-modal.entry.js +1 -1
  323. package/dist/esm/pds-accordion.entry.js +3 -3
  324. package/dist/esm/pds-accordion.entry.js.map +1 -1
  325. package/dist/esm/pds-alert.entry.js +3 -3
  326. package/dist/esm/pds-alert.entry.js.map +1 -1
  327. package/dist/esm/pds-avatar.entry.js +3 -3
  328. package/dist/esm/pds-avatar.entry.js.map +1 -1
  329. package/dist/esm/pds-box.entry.js +2 -2
  330. package/dist/esm/pds-box.entry.js.map +1 -1
  331. package/dist/esm/pds-button.entry.js +3 -3
  332. package/dist/esm/pds-button.entry.js.map +1 -1
  333. package/dist/esm/pds-checkbox.entry.js +3 -3
  334. package/dist/esm/pds-checkbox.entry.js.map +1 -1
  335. package/dist/esm/pds-chip.entry.js +3 -3
  336. package/dist/esm/pds-chip.entry.js.map +1 -1
  337. package/dist/esm/pds-combobox.entry.js +2 -2
  338. package/dist/esm/pds-combobox.entry.js.map +1 -1
  339. package/dist/esm/pds-copytext.entry.js +3 -3
  340. package/dist/esm/pds-copytext.entry.js.map +1 -1
  341. package/dist/esm/pds-divider.entry.js +1 -1
  342. package/dist/esm/pds-dropdown-menu-item.entry.js +2 -2
  343. package/dist/esm/pds-dropdown-menu-item.entry.js.map +1 -1
  344. package/dist/esm/pds-dropdown-menu-separator.entry.js +2 -2
  345. package/dist/esm/pds-dropdown-menu-separator.entry.js.map +1 -1
  346. package/dist/esm/pds-dropdown-menu.entry.js +2 -2
  347. package/dist/esm/pds-dropdown-menu.entry.js.map +1 -1
  348. package/dist/esm/pds-filter.entry.js +3 -3
  349. package/dist/esm/pds-filter.entry.js.map +1 -1
  350. package/dist/esm/pds-filters.entry.js +1 -1
  351. package/dist/esm/pds-icon.entry.js +1 -1
  352. package/dist/esm/pds-image.entry.js +1 -1
  353. package/dist/esm/pds-input.entry.js +3 -3
  354. package/dist/esm/pds-input.entry.js.map +1 -1
  355. package/dist/esm/pds-link.entry.js +3 -3
  356. package/dist/esm/pds-link.entry.js.map +1 -1
  357. package/dist/esm/pds-loader.entry.js +2 -2
  358. package/dist/esm/pds-loader.entry.js.map +1 -1
  359. package/dist/esm/pds-modal-content.entry.js +2 -2
  360. package/dist/esm/pds-modal-content.entry.js.map +1 -1
  361. package/dist/esm/pds-modal-footer.entry.js +1 -1
  362. package/dist/esm/pds-modal-header.entry.js +1 -1
  363. package/dist/esm/pds-modal.entry.js +1 -1
  364. package/dist/esm/pds-popover.entry.js +7 -4
  365. package/dist/esm/pds-popover.entry.js.map +1 -1
  366. package/dist/esm/pds-progress.entry.js +2 -2
  367. package/dist/esm/pds-progress.entry.js.map +1 -1
  368. package/dist/esm/pds-property.entry.js +1 -1
  369. package/dist/esm/pds-radio-group.entry.js +168 -0
  370. package/dist/esm/pds-radio-group.entry.js.map +1 -0
  371. package/dist/esm/pds-radio.entry.js +11 -6
  372. package/dist/esm/pds-radio.entry.js.map +1 -1
  373. package/dist/esm/pds-row.entry.js +2 -2
  374. package/dist/esm/pds-select.entry.js +4 -4
  375. package/dist/esm/pds-select.entry.js.map +1 -1
  376. package/dist/esm/pds-sortable-item.entry.js +3 -3
  377. package/dist/esm/pds-sortable.entry.js +2 -2
  378. package/dist/esm/pds-switch.entry.js +6 -6
  379. package/dist/esm/pds-switch.entry.js.map +1 -1
  380. package/dist/esm/pds-tab.entry.js +5 -5
  381. package/dist/esm/pds-tab.entry.js.map +1 -1
  382. package/dist/esm/pds-table-body.entry.js +2 -2
  383. package/dist/esm/pds-table-cell.entry.js +3 -3
  384. package/dist/esm/pds-table-head-cell.entry.js +5 -5
  385. package/dist/esm/pds-table-head-cell.entry.js.map +1 -1
  386. package/dist/esm/pds-table-head.entry.js +3 -3
  387. package/dist/esm/pds-table-head.entry.js.map +1 -1
  388. package/dist/esm/pds-table-row.entry.js +3 -3
  389. package/dist/esm/pds-table-row.entry.js.map +1 -1
  390. package/dist/esm/pds-table.entry.js +2 -2
  391. package/dist/esm/pds-table.entry.js.map +1 -1
  392. package/dist/esm/pds-tabpanel.entry.js +2 -2
  393. package/dist/esm/pds-tabs.entry.js +3 -3
  394. package/dist/esm/pds-tabs.entry.js.map +1 -1
  395. package/dist/esm/pds-text.entry.js +3 -3
  396. package/dist/esm/pds-text.entry.js.map +1 -1
  397. package/dist/esm/pds-textarea.entry.js +7 -7
  398. package/dist/esm/pds-textarea.entry.js.map +1 -1
  399. package/dist/esm/pds-toast.entry.js +4 -4
  400. package/dist/esm/pds-tooltip.entry.js +3 -3
  401. package/dist/esm/pine-core.js +3 -3
  402. package/dist/esm-es5/{index-CvGEHHLR.js → index-CShvJnsl.js} +2 -2
  403. package/dist/{esm/index-CvGEHHLR.js.map → esm-es5/index-CShvJnsl.js.map} +1 -1
  404. package/dist/esm-es5/index-DHPhrb5T.js +3 -0
  405. package/dist/esm-es5/index-DHPhrb5T.js.map +1 -0
  406. package/dist/esm-es5/loader.js +1 -1
  407. package/dist/esm-es5/mock-pds-modal.entry.js +1 -1
  408. package/dist/esm-es5/pds-accordion.entry.js +1 -1
  409. package/dist/esm-es5/pds-accordion.entry.js.map +1 -1
  410. package/dist/esm-es5/pds-alert.entry.js +1 -1
  411. package/dist/esm-es5/pds-alert.entry.js.map +1 -1
  412. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  413. package/dist/esm-es5/pds-avatar.entry.js.map +1 -1
  414. package/dist/esm-es5/pds-box.entry.js +1 -1
  415. package/dist/esm-es5/pds-box.entry.js.map +1 -1
  416. package/dist/esm-es5/pds-button.entry.js +1 -1
  417. package/dist/esm-es5/pds-button.entry.js.map +1 -1
  418. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  419. package/dist/esm-es5/pds-checkbox.entry.js.map +1 -1
  420. package/dist/esm-es5/pds-chip.entry.js +1 -1
  421. package/dist/esm-es5/pds-chip.entry.js.map +1 -1
  422. package/dist/esm-es5/pds-combobox.entry.js +2 -2
  423. package/dist/esm-es5/pds-combobox.entry.js.map +1 -1
  424. package/dist/esm-es5/pds-copytext.entry.js +1 -1
  425. package/dist/esm-es5/pds-copytext.entry.js.map +1 -1
  426. package/dist/esm-es5/pds-divider.entry.js +1 -1
  427. package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -1
  428. package/dist/esm-es5/pds-dropdown-menu-item.entry.js.map +1 -1
  429. package/dist/esm-es5/pds-dropdown-menu-separator.entry.js +1 -1
  430. package/dist/esm-es5/pds-dropdown-menu-separator.entry.js.map +1 -1
  431. package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
  432. package/dist/esm-es5/pds-dropdown-menu.entry.js.map +1 -1
  433. package/dist/esm-es5/pds-filter.entry.js +1 -1
  434. package/dist/esm-es5/pds-filter.entry.js.map +1 -1
  435. package/dist/esm-es5/pds-filters.entry.js +1 -1
  436. package/dist/esm-es5/pds-icon.entry.js +1 -1
  437. package/dist/esm-es5/pds-image.entry.js +1 -1
  438. package/dist/esm-es5/pds-input.entry.js +1 -1
  439. package/dist/esm-es5/pds-input.entry.js.map +1 -1
  440. package/dist/esm-es5/pds-link.entry.js +1 -1
  441. package/dist/esm-es5/pds-link.entry.js.map +1 -1
  442. package/dist/esm-es5/pds-loader.entry.js +1 -1
  443. package/dist/esm-es5/pds-loader.entry.js.map +1 -1
  444. package/dist/esm-es5/pds-modal-content.entry.js +1 -1
  445. package/dist/esm-es5/pds-modal-content.entry.js.map +1 -1
  446. package/dist/esm-es5/pds-modal-footer.entry.js +1 -1
  447. package/dist/esm-es5/pds-modal-header.entry.js +1 -1
  448. package/dist/esm-es5/pds-modal.entry.js +1 -1
  449. package/dist/esm-es5/pds-popover.entry.js +1 -1
  450. package/dist/esm-es5/pds-popover.entry.js.map +1 -1
  451. package/dist/esm-es5/pds-progress.entry.js +1 -1
  452. package/dist/esm-es5/pds-progress.entry.js.map +1 -1
  453. package/dist/esm-es5/pds-property.entry.js +1 -1
  454. package/dist/esm-es5/pds-radio-group.entry.js +2 -0
  455. package/dist/esm-es5/pds-radio-group.entry.js.map +1 -0
  456. package/dist/esm-es5/pds-radio.entry.js +1 -1
  457. package/dist/esm-es5/pds-radio.entry.js.map +1 -1
  458. package/dist/esm-es5/pds-row.entry.js +1 -1
  459. package/dist/esm-es5/pds-select.entry.js +1 -1
  460. package/dist/esm-es5/pds-select.entry.js.map +1 -1
  461. package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
  462. package/dist/esm-es5/pds-sortable.entry.js +2 -2
  463. package/dist/esm-es5/pds-switch.entry.js +1 -1
  464. package/dist/esm-es5/pds-switch.entry.js.map +1 -1
  465. package/dist/esm-es5/pds-tab.entry.js +1 -1
  466. package/dist/esm-es5/pds-tab.entry.js.map +1 -1
  467. package/dist/esm-es5/pds-table-body.entry.js +1 -1
  468. package/dist/esm-es5/pds-table-cell.entry.js +1 -1
  469. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  470. package/dist/esm-es5/pds-table-head-cell.entry.js.map +1 -1
  471. package/dist/esm-es5/pds-table-head.entry.js +1 -1
  472. package/dist/esm-es5/pds-table-head.entry.js.map +1 -1
  473. package/dist/esm-es5/pds-table-row.entry.js +1 -1
  474. package/dist/esm-es5/pds-table-row.entry.js.map +1 -1
  475. package/dist/esm-es5/pds-table.entry.js +1 -1
  476. package/dist/esm-es5/pds-table.entry.js.map +1 -1
  477. package/dist/esm-es5/pds-tabpanel.entry.js +1 -1
  478. package/dist/esm-es5/pds-tabs.entry.js +1 -1
  479. package/dist/esm-es5/pds-tabs.entry.js.map +1 -1
  480. package/dist/esm-es5/pds-text.entry.js +1 -1
  481. package/dist/esm-es5/pds-text.entry.js.map +1 -1
  482. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  483. package/dist/esm-es5/pds-textarea.entry.js.map +1 -1
  484. package/dist/esm-es5/pds-toast.entry.js +1 -1
  485. package/dist/esm-es5/pds-tooltip.entry.js +1 -1
  486. package/dist/esm-es5/pine-core.js +1 -1
  487. package/dist/pine-core/{p-37795a28.system.entry.js → p-00568c20.system.entry.js} +2 -2
  488. package/dist/pine-core/{p-53645ec6.system.entry.js → p-03209958.system.entry.js} +2 -2
  489. package/dist/pine-core/p-0398f6e3.entry.js +2 -0
  490. package/dist/pine-core/{p-d0efe5e1.entry.js.map → p-0398f6e3.entry.js.map} +1 -1
  491. package/dist/pine-core/p-04294b28.system.entry.js +2 -0
  492. package/dist/pine-core/{p-052eedc2.system.entry.js.map → p-04294b28.system.entry.js.map} +1 -1
  493. package/dist/pine-core/p-04a7b66c.system.entry.js +2 -0
  494. package/dist/pine-core/{p-a2c309fa.system.entry.js.map → p-04a7b66c.system.entry.js.map} +1 -1
  495. package/dist/pine-core/p-04f92b5a.system.entry.js +2 -0
  496. package/dist/pine-core/{p-1ac7cb0f.system.entry.js.map → p-04f92b5a.system.entry.js.map} +1 -1
  497. package/dist/pine-core/p-0869fe00.entry.js +2 -0
  498. package/dist/pine-core/p-0869fe00.entry.js.map +1 -0
  499. package/dist/pine-core/{p-1fbe221a.entry.js → p-0ace9c16.entry.js} +2 -2
  500. package/dist/pine-core/p-0b05708b.entry.js +2 -0
  501. package/dist/pine-core/{p-43b758af.entry.js.map → p-0b05708b.entry.js.map} +1 -1
  502. package/dist/pine-core/{p-e47fbd71.entry.js → p-10e0be55.entry.js} +2 -2
  503. package/dist/pine-core/{p-b0948892.system.entry.js → p-1df25b57.system.entry.js} +2 -2
  504. package/dist/pine-core/p-1f5ed7bb.system.entry.js +2 -0
  505. package/dist/pine-core/{p-e22c4870.system.entry.js.map → p-1f5ed7bb.system.entry.js.map} +1 -1
  506. package/dist/pine-core/{p-d6cff25a.entry.js → p-1fa303af.entry.js} +2 -2
  507. package/dist/pine-core/{p-996072ce.entry.js → p-2058a93a.entry.js} +2 -2
  508. package/dist/pine-core/p-227d5375.entry.js +2 -0
  509. package/dist/pine-core/{p-de4ebf0b.entry.js.map → p-227d5375.entry.js.map} +1 -1
  510. package/dist/pine-core/p-2319298c.system.entry.js +2 -0
  511. package/dist/pine-core/{p-5e1804a3.system.entry.js.map → p-2319298c.system.entry.js.map} +1 -1
  512. package/dist/pine-core/p-232e4282.system.entry.js +2 -0
  513. package/dist/pine-core/{p-49c5234f.system.entry.js.map → p-232e4282.system.entry.js.map} +1 -1
  514. package/dist/pine-core/{p-c5cda159.system.entry.js → p-2d3da08b.system.entry.js} +2 -2
  515. package/dist/pine-core/{p-7a63e1ec.entry.js → p-2f6f60d9.entry.js} +2 -2
  516. package/dist/pine-core/p-372a6081.entry.js +2 -0
  517. package/dist/pine-core/{p-e25d2c53.entry.js.map → p-372a6081.entry.js.map} +1 -1
  518. package/dist/pine-core/p-3a231ae4.system.entry.js +2 -0
  519. package/dist/pine-core/{p-1c03ac40.system.entry.js.map → p-3a231ae4.system.entry.js.map} +1 -1
  520. package/dist/pine-core/{p-841a6445.entry.js → p-3f6b9520.entry.js} +2 -2
  521. package/dist/pine-core/{p-06f164fe.system.entry.js → p-3f8a5f3d.system.entry.js} +2 -2
  522. package/dist/pine-core/{p-ba1a4643.system.entry.js → p-3f8b0885.system.entry.js} +2 -2
  523. package/dist/pine-core/p-428a96f9.entry.js +2 -0
  524. package/dist/pine-core/{p-0ea23735.entry.js.map → p-428a96f9.entry.js.map} +1 -1
  525. package/dist/pine-core/{p-ba609b1e.entry.js → p-43990889.entry.js} +2 -2
  526. package/dist/pine-core/{p-fc832660.entry.js → p-43f1eead.entry.js} +2 -2
  527. package/dist/pine-core/p-4778ae70.entry.js +2 -0
  528. package/dist/pine-core/{p-a1ddcc69.entry.js.map → p-4778ae70.entry.js.map} +1 -1
  529. package/dist/pine-core/p-4c0797f2.entry.js +2 -0
  530. package/dist/pine-core/{p-3900b6f6.entry.js.map → p-4c0797f2.entry.js.map} +1 -1
  531. package/dist/pine-core/{p-D5MCs-6L.system.js.map → p-4fD2iHS9.system.js.map} +1 -1
  532. package/dist/pine-core/p-553e4543.entry.js +2 -0
  533. package/dist/pine-core/{p-c85b0d07.entry.js.map → p-553e4543.entry.js.map} +1 -1
  534. package/dist/pine-core/p-58fa5c8f.entry.js +2 -0
  535. package/dist/pine-core/{p-0837abe8.entry.js.map → p-58fa5c8f.entry.js.map} +1 -1
  536. package/dist/pine-core/{p-535a91bd.entry.js → p-596acf65.entry.js} +3 -3
  537. package/dist/pine-core/p-5D9wXQuJ.system.js +3 -0
  538. package/dist/pine-core/p-5D9wXQuJ.system.js.map +1 -0
  539. package/dist/pine-core/p-5b2b3e8a.entry.js +2 -0
  540. package/dist/pine-core/{p-7c2381c5.entry.js.map → p-5b2b3e8a.entry.js.map} +1 -1
  541. package/dist/pine-core/p-5d7c4fbb.entry.js +2 -0
  542. package/dist/pine-core/{p-730ea265.entry.js.map → p-5d7c4fbb.entry.js.map} +1 -1
  543. package/dist/pine-core/p-5f6cd30d.system.entry.js +2 -0
  544. package/dist/pine-core/{p-c751ad1d.system.entry.js.map → p-5f6cd30d.system.entry.js.map} +1 -1
  545. package/dist/pine-core/p-61588eac.entry.js +2 -0
  546. package/dist/pine-core/{p-55d120d1.entry.js.map → p-61588eac.entry.js.map} +1 -1
  547. package/dist/pine-core/p-65c566a2.system.entry.js +2 -0
  548. package/dist/pine-core/{p-1f28575b.system.entry.js.map → p-65c566a2.system.entry.js.map} +1 -1
  549. package/dist/pine-core/p-65db991d.entry.js +2 -0
  550. package/dist/pine-core/{p-1b299f58.entry.js.map → p-65db991d.entry.js.map} +1 -1
  551. package/dist/pine-core/p-66160018.entry.js +3 -0
  552. package/dist/pine-core/{p-bd11961c.entry.js.map → p-66160018.entry.js.map} +1 -1
  553. package/dist/pine-core/{p-f2344cb2.system.entry.js → p-670b1551.system.entry.js} +2 -2
  554. package/dist/pine-core/p-670b1551.system.entry.js.map +1 -0
  555. package/dist/pine-core/p-676f1f32.system.entry.js +2 -0
  556. package/dist/pine-core/p-676f1f32.system.entry.js.map +1 -0
  557. package/dist/pine-core/p-6ace63a3.system.entry.js +2 -0
  558. package/dist/pine-core/{p-0a29a0a4.system.entry.js.map → p-6ace63a3.system.entry.js.map} +1 -1
  559. package/dist/pine-core/p-6be19a23.system.entry.js +2 -0
  560. package/dist/pine-core/{p-c28c54c2.system.entry.js.map → p-6be19a23.system.entry.js.map} +1 -1
  561. package/dist/pine-core/{p-168b5a5b.system.entry.js → p-6dcd7876.system.entry.js} +2 -2
  562. package/dist/pine-core/p-6de73f62.entry.js +2 -0
  563. package/dist/pine-core/{p-1d3c4f2d.entry.js.map → p-6de73f62.entry.js.map} +1 -1
  564. package/dist/pine-core/p-711989de.entry.js +2 -0
  565. package/dist/pine-core/{p-2551ed1a.entry.js.map → p-711989de.entry.js.map} +1 -1
  566. package/dist/pine-core/p-7ccd2fd6.system.entry.js +2 -0
  567. package/dist/pine-core/{p-e715d22e.system.entry.js.map → p-7ccd2fd6.system.entry.js.map} +1 -1
  568. package/dist/pine-core/{p-ed214033.entry.js → p-7de73ac5.entry.js} +2 -2
  569. package/dist/pine-core/p-80017aa5.entry.js +2 -0
  570. package/dist/pine-core/{p-9f7318d7.entry.js.map → p-80017aa5.entry.js.map} +1 -1
  571. package/dist/pine-core/p-8007f4de.entry.js +2 -0
  572. package/dist/pine-core/p-8007f4de.entry.js.map +1 -0
  573. package/dist/pine-core/p-8323fe69.system.entry.js +2 -0
  574. package/dist/pine-core/{p-1ab0a7b1.system.entry.js.map → p-8323fe69.system.entry.js.map} +1 -1
  575. package/dist/pine-core/p-847fc77b.system.entry.js +2 -0
  576. package/dist/pine-core/{p-ab34c977.system.entry.js.map → p-847fc77b.system.entry.js.map} +1 -1
  577. package/dist/pine-core/{p-51e0ea73.entry.js → p-8c000d7c.entry.js} +2 -2
  578. package/dist/pine-core/p-8c7fdaf5.system.entry.js +2 -0
  579. package/dist/pine-core/{p-f38e87ad.system.entry.js.map → p-8c7fdaf5.system.entry.js.map} +1 -1
  580. package/dist/pine-core/p-91954848.entry.js +2 -0
  581. package/dist/pine-core/{p-6f5dfd01.entry.js.map → p-91954848.entry.js.map} +1 -1
  582. package/dist/pine-core/p-934229d8.entry.js +2 -0
  583. package/dist/pine-core/{p-4ea1a4fb.entry.js.map → p-934229d8.entry.js.map} +1 -1
  584. package/dist/pine-core/p-94788439.system.entry.js +2 -0
  585. package/dist/pine-core/{p-c0fef05c.system.entry.js.map → p-94788439.system.entry.js.map} +1 -1
  586. package/dist/pine-core/{p-5a94e426.system.entry.js → p-94b1997d.system.entry.js} +2 -2
  587. package/dist/pine-core/{p-f74bcc1d.entry.js → p-9998c2a0.entry.js} +2 -2
  588. package/dist/pine-core/p-9f0f1389.entry.js +2 -0
  589. package/dist/pine-core/{p-a494b7d1.entry.js.map → p-9f0f1389.entry.js.map} +1 -1
  590. package/dist/pine-core/{p-DAxIps70.system.js.map → p-B0Y1Zs9b.system.js.map} +1 -1
  591. package/dist/pine-core/p-B1wJrRWz.system.js.map +1 -0
  592. package/dist/pine-core/p-BK-Kji1Y.system.js.map +1 -0
  593. package/dist/pine-core/p-BQImnLWy.system.js.map +1 -0
  594. package/dist/pine-core/p-BUwuPP5j.system.js.map +1 -0
  595. package/dist/pine-core/p-BVjyFx0r.system.js.map +1 -0
  596. package/dist/pine-core/p-BZj284A2.system.js.map +1 -0
  597. package/dist/pine-core/{p-BynWb21G.system.js.map → p-BjRES1T-.system.js.map} +1 -1
  598. package/dist/pine-core/p-Bp1qn6CS.system.js.map +1 -0
  599. package/dist/pine-core/{p-Btz7Q5Hx.system.js.map → p-Brpt0zl5.system.js.map} +1 -1
  600. package/dist/pine-core/p-C56crVDC.system.js.map +1 -0
  601. package/dist/pine-core/p-CAnnMfDw.system.js.map +1 -0
  602. package/dist/pine-core/{p-BMv60T1z.system.js.map → p-CI7DD4Gj.system.js.map} +1 -1
  603. package/dist/pine-core/p-CJJ3xfku.system.js.map +1 -0
  604. package/dist/pine-core/{p-CvGEHHLR.js → p-CShvJnsl.js} +2 -2
  605. package/dist/pine-core/{p-CvGEHHLR.js.map → p-CShvJnsl.js.map} +1 -1
  606. package/dist/pine-core/{p-CqtdHqyo.system.js.map → p-CUmDvil2.system.js.map} +1 -1
  607. package/dist/pine-core/p-CgF-S6vZ.system.js.map +1 -0
  608. package/dist/pine-core/{p-CoBzoZzZ.system.js.map → p-CijIWK3K.system.js.map} +1 -1
  609. package/dist/pine-core/{p-oqHEiE2W.system.js.map → p-ClPf_JF1.system.js.map} +1 -1
  610. package/dist/pine-core/p-CrjhL65U.system.js.map +1 -0
  611. package/dist/pine-core/p-CrzS8Mmy.system.js.map +1 -0
  612. package/dist/pine-core/p-CsVpJw_i.system.js.map +1 -0
  613. package/dist/pine-core/{p-DCLLstWD.system.js.map → p-Cwz8YTwo.system.js.map} +1 -1
  614. package/dist/pine-core/p-D2aexWnE.system.js.map +1 -0
  615. package/dist/pine-core/p-D8Jc24Qq.system.js.map +1 -0
  616. package/dist/pine-core/p-D8bibuWO.system.js.map +1 -0
  617. package/dist/pine-core/p-DBdgdjLr.system.js.map +1 -0
  618. package/dist/pine-core/p-DHPhrb5T.js +3 -0
  619. package/dist/pine-core/p-DHPhrb5T.js.map +1 -0
  620. package/dist/pine-core/p-DM7CGpRH.system.js.map +1 -0
  621. package/dist/pine-core/p-DYq1Mef8.system.js.map +1 -0
  622. package/dist/pine-core/p-D_LvnDUT.system.js.map +1 -0
  623. package/dist/pine-core/p-DaQV83Gx.system.js.map +1 -0
  624. package/dist/pine-core/{p-CbrMVAcu.system.js.map → p-DkNlmqjM.system.js.map} +1 -1
  625. package/dist/pine-core/{p-dWrReyPk.system.js.map → p-DmUcUg32.system.js.map} +1 -1
  626. package/dist/pine-core/p-DmVKABQy.system.js.map +1 -0
  627. package/dist/pine-core/{p-B9oQYxlC.system.js.map → p-DoP8Sl1O.system.js.map} +1 -1
  628. package/dist/pine-core/{p-BeaxER_z.system.js.map → p-DpOZDNuz.system.js.map} +1 -1
  629. package/dist/pine-core/{p-B8ftT2uA.system.js.map → p-DpeOrUYB.system.js.map} +1 -1
  630. package/dist/pine-core/p-Drfvoxcd.system.js.map +1 -0
  631. package/dist/pine-core/{p-l33dh9cy.system.js.map → p-GKNvlYGa.system.js.map} +1 -1
  632. package/dist/pine-core/{p-pStt9pIi.system.js.map → p-IH8oGXiE.system.js.map} +1 -1
  633. package/dist/pine-core/p-JAVnELnm.system.js +2 -0
  634. package/dist/pine-core/{p-Cua7cmvq.system.js.map → p-JAVnELnm.system.js.map} +1 -1
  635. package/dist/pine-core/p-PAmjcE4m.system.js.map +1 -0
  636. package/dist/pine-core/p-RO-Y2DRT.system.js.map +1 -0
  637. package/dist/pine-core/{p-YAyZ2OFh.system.js.map → p-X0_TH-op.system.js.map} +1 -1
  638. package/dist/pine-core/{p-e948a514.system.entry.js → p-a11c3642.system.entry.js} +2 -2
  639. package/dist/pine-core/p-a226ecdb.system.entry.js +2 -0
  640. package/dist/pine-core/{p-619a6667.system.entry.js.map → p-a226ecdb.system.entry.js.map} +1 -1
  641. package/dist/pine-core/p-a4b16b32.system.entry.js +2 -0
  642. package/dist/pine-core/{p-f70327de.system.entry.js.map → p-a4b16b32.system.entry.js.map} +1 -1
  643. package/dist/pine-core/p-a54f4dfd.system.entry.js +2 -0
  644. package/dist/pine-core/{p-6d9ca1ff.system.entry.js.map → p-a54f4dfd.system.entry.js.map} +1 -1
  645. package/dist/pine-core/{p-1956a234.system.entry.js → p-ac14c8e3.system.entry.js} +3 -3
  646. package/dist/pine-core/{p-1bf75b30.system.entry.js → p-ac186cd4.system.entry.js} +2 -2
  647. package/dist/pine-core/{p-fe23aa6f.system.entry.js → p-b59a0c6b.system.entry.js} +2 -2
  648. package/dist/pine-core/p-b59ac781.entry.js +2 -0
  649. package/dist/pine-core/{p-fb877b9d.entry.js.map → p-b59ac781.entry.js.map} +1 -1
  650. package/dist/pine-core/p-b64407a4.entry.js +2 -0
  651. package/dist/pine-core/{p-b9135a30.entry.js.map → p-b64407a4.entry.js.map} +1 -1
  652. package/dist/pine-core/p-b6a503cc.system.entry.js +2 -0
  653. package/dist/pine-core/{p-7a12238d.system.entry.js.map → p-b6a503cc.system.entry.js.map} +1 -1
  654. package/dist/pine-core/p-b8047816.system.entry.js +2 -0
  655. package/dist/pine-core/{p-5a332f9e.system.entry.js.map → p-b8047816.system.entry.js.map} +1 -1
  656. package/dist/pine-core/p-b9a14564.system.entry.js +2 -0
  657. package/dist/pine-core/{p-eb3fe298.system.entry.js.map → p-b9a14564.system.entry.js.map} +1 -1
  658. package/dist/pine-core/p-bd53ca9a.system.entry.js +2 -0
  659. package/dist/pine-core/p-bd53ca9a.system.entry.js.map +1 -0
  660. package/dist/pine-core/{p-105951b7.system.entry.js → p-bdf8bff3.system.entry.js} +2 -2
  661. package/dist/pine-core/p-be647b2a.entry.js +2 -0
  662. package/dist/pine-core/{p-19e6bce5.entry.js.map → p-be647b2a.entry.js.map} +1 -1
  663. package/dist/pine-core/p-bee8d4b8.system.entry.js +4 -0
  664. package/dist/pine-core/{p-6e4be339.system.entry.js.map → p-bee8d4b8.system.entry.js.map} +1 -1
  665. package/dist/pine-core/{p-C2AG52JP.system.js.map → p-bkQbPz-z.system.js.map} +1 -1
  666. package/dist/pine-core/p-c08ab042.system.entry.js +2 -0
  667. package/dist/pine-core/p-c08ab042.system.entry.js.map +1 -0
  668. package/dist/pine-core/{p-1d83f560.entry.js → p-c5013d20.entry.js} +2 -2
  669. package/dist/pine-core/p-c9f97ccb.system.entry.js +2 -0
  670. package/dist/pine-core/p-c9f97ccb.system.entry.js.map +1 -0
  671. package/dist/pine-core/p-cd564179.entry.js +2 -0
  672. package/dist/pine-core/{p-a3503596.entry.js.map → p-cd564179.entry.js.map} +1 -1
  673. package/dist/pine-core/{p-01c4eac9.entry.js → p-cf4df489.entry.js} +2 -2
  674. package/dist/pine-core/p-cf910e8b.system.entry.js +2 -0
  675. package/dist/pine-core/p-cf910e8b.system.entry.js.map +1 -0
  676. package/dist/pine-core/p-d0e336b7.system.entry.js +2 -0
  677. package/dist/pine-core/{p-b07bb58f.system.entry.js → p-d1313dd6.system.entry.js} +2 -2
  678. package/dist/pine-core/p-dba5ca37.system.entry.js +2 -0
  679. package/dist/pine-core/p-dba5ca37.system.entry.js.map +1 -0
  680. package/dist/pine-core/p-dfcdd55d.system.entry.js +2 -0
  681. package/dist/pine-core/{p-ee6c07d6.system.entry.js.map → p-dfcdd55d.system.entry.js.map} +1 -1
  682. package/dist/pine-core/{p-2c3ede8e.entry.js → p-e08503a7.entry.js} +2 -2
  683. package/dist/pine-core/{p-2c3ede8e.entry.js.map → p-e08503a7.entry.js.map} +1 -1
  684. package/dist/pine-core/{p-fbf10641.entry.js → p-e0f21c22.entry.js} +2 -2
  685. package/dist/pine-core/{p-B7x-ddku.system.js → p-e50YjICS.system.js} +2 -2
  686. package/dist/pine-core/{p-B7x-ddku.system.js.map → p-e50YjICS.system.js.map} +1 -1
  687. package/dist/pine-core/p-e6b39ec1.entry.js +2 -0
  688. package/dist/pine-core/{p-73a6c002.entry.js.map → p-e6b39ec1.entry.js.map} +1 -1
  689. package/dist/pine-core/p-e7e25d42.entry.js +2 -0
  690. package/dist/pine-core/p-e837b577.entry.js +2 -0
  691. package/dist/pine-core/p-e837b577.entry.js.map +1 -0
  692. package/dist/pine-core/p-eUcBQ_fh.system.js.map +1 -0
  693. package/dist/pine-core/{p-5d379706.system.entry.js → p-ec32c44f.system.entry.js} +2 -2
  694. package/dist/pine-core/p-ejoWgOZK.system.js.map +1 -0
  695. package/dist/pine-core/p-f64ea4f7.entry.js +2 -0
  696. package/dist/pine-core/{p-239cbdb2.entry.js.map → p-f64ea4f7.entry.js.map} +1 -1
  697. package/dist/pine-core/p-f8fba315.entry.js +2 -0
  698. package/dist/pine-core/p-f8fba315.entry.js.map +1 -0
  699. package/dist/pine-core/{p-2f5d1411.entry.js → p-f92055f3.entry.js} +2 -2
  700. package/dist/pine-core/{p-4792d0c8.system.entry.js → p-fa21e054.system.entry.js} +2 -2
  701. package/dist/pine-core/p-qkIMFuAW.system.js.map +1 -0
  702. package/dist/pine-core/{p-CIoeutZO.system.js.map → p-tHMXRB8d.system.js.map} +1 -1
  703. package/dist/pine-core/p-zgS7Vsk7.system.js.map +1 -0
  704. package/dist/pine-core/pds-accordion.entry.esm.js.map +1 -1
  705. package/dist/pine-core/pds-alert.entry.esm.js.map +1 -1
  706. package/dist/pine-core/pds-avatar.entry.esm.js.map +1 -1
  707. package/dist/pine-core/pds-box.entry.esm.js.map +1 -1
  708. package/dist/pine-core/pds-button.entry.esm.js.map +1 -1
  709. package/dist/pine-core/pds-checkbox.entry.esm.js.map +1 -1
  710. package/dist/pine-core/pds-chip.entry.esm.js.map +1 -1
  711. package/dist/pine-core/pds-combobox.entry.esm.js.map +1 -1
  712. package/dist/pine-core/pds-copytext.entry.esm.js.map +1 -1
  713. package/dist/pine-core/pds-dropdown-menu-item.entry.esm.js.map +1 -1
  714. package/dist/pine-core/pds-dropdown-menu-separator.entry.esm.js.map +1 -1
  715. package/dist/pine-core/pds-dropdown-menu.entry.esm.js.map +1 -1
  716. package/dist/pine-core/pds-filter.entry.esm.js.map +1 -1
  717. package/dist/pine-core/pds-input.entry.esm.js.map +1 -1
  718. package/dist/pine-core/pds-link.entry.esm.js.map +1 -1
  719. package/dist/pine-core/pds-loader.entry.esm.js.map +1 -1
  720. package/dist/pine-core/pds-modal-content.entry.esm.js.map +1 -1
  721. package/dist/pine-core/pds-popover.entry.esm.js.map +1 -1
  722. package/dist/pine-core/pds-progress.entry.esm.js.map +1 -1
  723. package/dist/pine-core/pds-radio-group.entry.esm.js.map +1 -0
  724. package/dist/pine-core/pds-radio.entry.esm.js.map +1 -1
  725. package/dist/pine-core/pds-select.entry.esm.js.map +1 -1
  726. package/dist/pine-core/pds-switch.entry.esm.js.map +1 -1
  727. package/dist/pine-core/pds-tab.entry.esm.js.map +1 -1
  728. package/dist/pine-core/pds-table-head-cell.entry.esm.js.map +1 -1
  729. package/dist/pine-core/pds-table-head.entry.esm.js.map +1 -1
  730. package/dist/pine-core/pds-table-row.entry.esm.js.map +1 -1
  731. package/dist/pine-core/pds-table.entry.esm.js.map +1 -1
  732. package/dist/pine-core/pds-tabs.entry.esm.js.map +1 -1
  733. package/dist/pine-core/pds-text.entry.esm.js.map +1 -1
  734. package/dist/pine-core/pds-textarea.entry.esm.js.map +1 -1
  735. package/dist/pine-core/pine-core.css +1 -1
  736. package/dist/pine-core/pine-core.esm.js +1 -1
  737. package/dist/pine-core/pine-core.js +1 -1
  738. package/dist/scripts/vscode-custom-data-generator.js +407 -0
  739. package/dist/scripts/vscode-custom-data-generator.js.map +1 -0
  740. package/dist/scripts/vscode-settings-patcher.cjs +89 -0
  741. package/dist/types/components/pds-popover/pds-popover.d.ts +1 -1
  742. package/dist/types/components/pds-radio-group/pds-radio-group.d.ts +72 -0
  743. package/dist/types/components/pds-radio-group/radio-group-interface.d.ts +5 -0
  744. package/dist/types/components.d.ts +124 -0
  745. package/dist/types/home/runner/work/pine/pine/libs/core/.stencil/scripts/vscode-custom-data-generator.d.ts +6 -0
  746. package/dist/types/index.d.ts +1 -0
  747. package/dist/vscode.html-data.json +9965 -0
  748. package/hydrate/index.js +258 -65
  749. package/hydrate/index.mjs +258 -65
  750. package/package.json +29 -15
  751. package/dist/cjs/index-2Lf0E1JO.js.map +0 -1
  752. package/dist/collection/stories/_helpers/index.js +0 -15
  753. package/dist/collection/stories/_helpers/index.js.map +0 -1
  754. package/dist/esm/index-Bh07GI-d.js.map +0 -1
  755. package/dist/esm-es5/index-Bh07GI-d.js +0 -3
  756. package/dist/esm-es5/index-Bh07GI-d.js.map +0 -1
  757. package/dist/pine-core/p-052eedc2.system.entry.js +0 -2
  758. package/dist/pine-core/p-0837abe8.entry.js +0 -2
  759. package/dist/pine-core/p-09cab3b5.system.entry.js +0 -2
  760. package/dist/pine-core/p-09cab3b5.system.entry.js.map +0 -1
  761. package/dist/pine-core/p-0a29a0a4.system.entry.js +0 -2
  762. package/dist/pine-core/p-0ea23735.entry.js +0 -2
  763. package/dist/pine-core/p-198fce07.system.entry.js +0 -2
  764. package/dist/pine-core/p-198fce07.system.entry.js.map +0 -1
  765. package/dist/pine-core/p-19e6bce5.entry.js +0 -2
  766. package/dist/pine-core/p-1W8OgEyK.system.js.map +0 -1
  767. package/dist/pine-core/p-1ab0a7b1.system.entry.js +0 -2
  768. package/dist/pine-core/p-1ac7cb0f.system.entry.js +0 -2
  769. package/dist/pine-core/p-1b299f58.entry.js +0 -2
  770. package/dist/pine-core/p-1c03ac40.system.entry.js +0 -2
  771. package/dist/pine-core/p-1d3c4f2d.entry.js +0 -2
  772. package/dist/pine-core/p-1f28575b.system.entry.js +0 -2
  773. package/dist/pine-core/p-239cbdb2.entry.js +0 -2
  774. package/dist/pine-core/p-2551ed1a.entry.js +0 -2
  775. package/dist/pine-core/p-285bc185.entry.js +0 -2
  776. package/dist/pine-core/p-3900b6f6.entry.js +0 -2
  777. package/dist/pine-core/p-43b758af.entry.js +0 -2
  778. package/dist/pine-core/p-49c5234f.system.entry.js +0 -2
  779. package/dist/pine-core/p-4HGk7WFM.system.js.map +0 -1
  780. package/dist/pine-core/p-4ea1a4fb.entry.js +0 -2
  781. package/dist/pine-core/p-55d120d1.entry.js +0 -2
  782. package/dist/pine-core/p-5a332f9e.system.entry.js +0 -2
  783. package/dist/pine-core/p-5e1804a3.system.entry.js +0 -2
  784. package/dist/pine-core/p-619a6667.system.entry.js +0 -2
  785. package/dist/pine-core/p-6d9ca1ff.system.entry.js +0 -2
  786. package/dist/pine-core/p-6e4be339.system.entry.js +0 -4
  787. package/dist/pine-core/p-6f5dfd01.entry.js +0 -2
  788. package/dist/pine-core/p-730ea265.entry.js +0 -2
  789. package/dist/pine-core/p-73a6c002.entry.js +0 -2
  790. package/dist/pine-core/p-7a12238d.system.entry.js +0 -2
  791. package/dist/pine-core/p-7c2381c5.entry.js +0 -2
  792. package/dist/pine-core/p-7c69ca77.entry.js +0 -2
  793. package/dist/pine-core/p-7c69ca77.entry.js.map +0 -1
  794. package/dist/pine-core/p-818dd3d8.system.entry.js +0 -2
  795. package/dist/pine-core/p-818dd3d8.system.entry.js.map +0 -1
  796. package/dist/pine-core/p-9f7318d7.entry.js +0 -2
  797. package/dist/pine-core/p-BCCWozKV.system.js.map +0 -1
  798. package/dist/pine-core/p-BCGaZxvq.system.js.map +0 -1
  799. package/dist/pine-core/p-BF6EelyL.system.js.map +0 -1
  800. package/dist/pine-core/p-BLpHPllL.system.js.map +0 -1
  801. package/dist/pine-core/p-Bh07GI-d.js +0 -3
  802. package/dist/pine-core/p-Bh07GI-d.js.map +0 -1
  803. package/dist/pine-core/p-BhoJR5O9.system.js.map +0 -1
  804. package/dist/pine-core/p-Bj1vPZM7.system.js.map +0 -1
  805. package/dist/pine-core/p-BnrgLbVq.system.js.map +0 -1
  806. package/dist/pine-core/p-BvtgWXBT.system.js.map +0 -1
  807. package/dist/pine-core/p-C4UrydrO.system.js.map +0 -1
  808. package/dist/pine-core/p-C6_QgODF.system.js.map +0 -1
  809. package/dist/pine-core/p-CSVIgMVz.system.js.map +0 -1
  810. package/dist/pine-core/p-CVjjaBaW.system.js.map +0 -1
  811. package/dist/pine-core/p-CZsWy9_t.system.js +0 -3
  812. package/dist/pine-core/p-CZsWy9_t.system.js.map +0 -1
  813. package/dist/pine-core/p-ChQGk39M.system.js.map +0 -1
  814. package/dist/pine-core/p-CpcN1meO.system.js.map +0 -1
  815. package/dist/pine-core/p-CrpTd0PB.system.js.map +0 -1
  816. package/dist/pine-core/p-CtiVxXhr.system.js.map +0 -1
  817. package/dist/pine-core/p-Cua7cmvq.system.js +0 -2
  818. package/dist/pine-core/p-D-CArvsF.system.js.map +0 -1
  819. package/dist/pine-core/p-DCiTnlD3.system.js.map +0 -1
  820. package/dist/pine-core/p-DPmRw4fA.system.js.map +0 -1
  821. package/dist/pine-core/p-DTMMULoz.system.js.map +0 -1
  822. package/dist/pine-core/p-Dez3UWhA.system.js.map +0 -1
  823. package/dist/pine-core/p-DvfECQRp.system.js.map +0 -1
  824. package/dist/pine-core/p-Dy_B3NK5.system.js.map +0 -1
  825. package/dist/pine-core/p-O9Boj8Mc.system.js.map +0 -1
  826. package/dist/pine-core/p-a1ddcc69.entry.js +0 -2
  827. package/dist/pine-core/p-a2c309fa.system.entry.js +0 -2
  828. package/dist/pine-core/p-a3503596.entry.js +0 -2
  829. package/dist/pine-core/p-a494b7d1.entry.js +0 -2
  830. package/dist/pine-core/p-ab34c977.system.entry.js +0 -2
  831. package/dist/pine-core/p-b9135a30.entry.js +0 -2
  832. package/dist/pine-core/p-bd11961c.entry.js +0 -3
  833. package/dist/pine-core/p-c0fef05c.system.entry.js +0 -2
  834. package/dist/pine-core/p-c28c54c2.system.entry.js +0 -2
  835. package/dist/pine-core/p-c7175497.entry.js +0 -2
  836. package/dist/pine-core/p-c7175497.entry.js.map +0 -1
  837. package/dist/pine-core/p-c751ad1d.system.entry.js +0 -2
  838. package/dist/pine-core/p-c85b0d07.entry.js +0 -2
  839. package/dist/pine-core/p-d0efe5e1.entry.js +0 -2
  840. package/dist/pine-core/p-db3b827e.system.entry.js +0 -2
  841. package/dist/pine-core/p-db3b827e.system.entry.js.map +0 -1
  842. package/dist/pine-core/p-de4ebf0b.entry.js +0 -2
  843. package/dist/pine-core/p-e22c4870.system.entry.js +0 -2
  844. package/dist/pine-core/p-e25d2c53.entry.js +0 -2
  845. package/dist/pine-core/p-e715d22e.system.entry.js +0 -2
  846. package/dist/pine-core/p-eb3fe298.system.entry.js +0 -2
  847. package/dist/pine-core/p-ee6c07d6.system.entry.js +0 -2
  848. package/dist/pine-core/p-f2344cb2.system.entry.js.map +0 -1
  849. package/dist/pine-core/p-f38e87ad.system.entry.js +0 -2
  850. package/dist/pine-core/p-f70327de.system.entry.js +0 -2
  851. package/dist/pine-core/p-f72243c4.entry.js +0 -2
  852. package/dist/pine-core/p-f72243c4.entry.js.map +0 -1
  853. package/dist/pine-core/p-fb877b9d.entry.js +0 -2
  854. package/dist/pine-core/p-fcde1f61.system.entry.js +0 -2
  855. package/dist/pine-core/p-fcde1f61.system.entry.js.map +0 -1
  856. package/dist/pine-core/p-fdf7a1db.system.entry.js +0 -2
  857. package/dist/pine-core/p-pKEraGuG.system.js.map +0 -1
  858. package/dist/pine-core/p-y8wq27x0.system.js.map +0 -1
  859. package/dist/pine-core/p-zZn2-0Xb.system.js.map +0 -1
  860. package/dist/types/stories/_helpers/index.d.ts +0 -12
  861. /package/dist/pine-core/{p-37795a28.system.entry.js.map → p-00568c20.system.entry.js.map} +0 -0
  862. /package/dist/pine-core/{p-53645ec6.system.entry.js.map → p-03209958.system.entry.js.map} +0 -0
  863. /package/dist/pine-core/{p-1fbe221a.entry.js.map → p-0ace9c16.entry.js.map} +0 -0
  864. /package/dist/pine-core/{p-e47fbd71.entry.js.map → p-10e0be55.entry.js.map} +0 -0
  865. /package/dist/pine-core/{p-b0948892.system.entry.js.map → p-1df25b57.system.entry.js.map} +0 -0
  866. /package/dist/pine-core/{p-d6cff25a.entry.js.map → p-1fa303af.entry.js.map} +0 -0
  867. /package/dist/pine-core/{p-996072ce.entry.js.map → p-2058a93a.entry.js.map} +0 -0
  868. /package/dist/pine-core/{p-c5cda159.system.entry.js.map → p-2d3da08b.system.entry.js.map} +0 -0
  869. /package/dist/pine-core/{p-7a63e1ec.entry.js.map → p-2f6f60d9.entry.js.map} +0 -0
  870. /package/dist/pine-core/{p-841a6445.entry.js.map → p-3f6b9520.entry.js.map} +0 -0
  871. /package/dist/pine-core/{p-06f164fe.system.entry.js.map → p-3f8a5f3d.system.entry.js.map} +0 -0
  872. /package/dist/pine-core/{p-ba1a4643.system.entry.js.map → p-3f8b0885.system.entry.js.map} +0 -0
  873. /package/dist/pine-core/{p-ba609b1e.entry.js.map → p-43990889.entry.js.map} +0 -0
  874. /package/dist/pine-core/{p-fc832660.entry.js.map → p-43f1eead.entry.js.map} +0 -0
  875. /package/dist/pine-core/{p-535a91bd.entry.js.map → p-596acf65.entry.js.map} +0 -0
  876. /package/dist/pine-core/{p-168b5a5b.system.entry.js.map → p-6dcd7876.system.entry.js.map} +0 -0
  877. /package/dist/pine-core/{p-ed214033.entry.js.map → p-7de73ac5.entry.js.map} +0 -0
  878. /package/dist/pine-core/{p-51e0ea73.entry.js.map → p-8c000d7c.entry.js.map} +0 -0
  879. /package/dist/pine-core/{p-5a94e426.system.entry.js.map → p-94b1997d.system.entry.js.map} +0 -0
  880. /package/dist/pine-core/{p-f74bcc1d.entry.js.map → p-9998c2a0.entry.js.map} +0 -0
  881. /package/dist/pine-core/{p-e948a514.system.entry.js.map → p-a11c3642.system.entry.js.map} +0 -0
  882. /package/dist/pine-core/{p-1956a234.system.entry.js.map → p-ac14c8e3.system.entry.js.map} +0 -0
  883. /package/dist/pine-core/{p-1bf75b30.system.entry.js.map → p-ac186cd4.system.entry.js.map} +0 -0
  884. /package/dist/pine-core/{p-fe23aa6f.system.entry.js.map → p-b59a0c6b.system.entry.js.map} +0 -0
  885. /package/dist/pine-core/{p-105951b7.system.entry.js.map → p-bdf8bff3.system.entry.js.map} +0 -0
  886. /package/dist/pine-core/{p-1d83f560.entry.js.map → p-c5013d20.entry.js.map} +0 -0
  887. /package/dist/pine-core/{p-01c4eac9.entry.js.map → p-cf4df489.entry.js.map} +0 -0
  888. /package/dist/pine-core/{p-fdf7a1db.system.entry.js.map → p-d0e336b7.system.entry.js.map} +0 -0
  889. /package/dist/pine-core/{p-b07bb58f.system.entry.js.map → p-d1313dd6.system.entry.js.map} +0 -0
  890. /package/dist/pine-core/{p-fbf10641.entry.js.map → p-e0f21c22.entry.js.map} +0 -0
  891. /package/dist/pine-core/{p-285bc185.entry.js.map → p-e7e25d42.entry.js.map} +0 -0
  892. /package/dist/pine-core/{p-5d379706.system.entry.js.map → p-ec32c44f.system.entry.js.map} +0 -0
  893. /package/dist/pine-core/{p-2f5d1411.entry.js.map → p-f92055f3.entry.js.map} +0 -0
  894. /package/dist/pine-core/{p-4792d0c8.system.entry.js.map → p-fa21e054.system.entry.js.map} +0 -0
@@ -8,7 +8,7 @@
8
8
  --pds-input-padding-x: var(--pine-dimension-150);
9
9
  --pds-input-padding-y: calc(var(--pine-dimension-xs) - var(--pine-border-width));
10
10
  --pds-input-font: var(--pine-typography-body);
11
- --pds-input-text-color: var(--pine-color-text-active);
11
+ --pds-input-text-color: var(--pine-color-text-strong);
12
12
  --pds-input-placeholder-color: var(--pine-color-text-placeholder);
13
13
  --pds-input-icon-color: var(--pine-color-text-secondary);
14
14
  --pds-input-disabled-background: var(--pine-color-background-container-disabled);
@@ -161,7 +161,7 @@
161
161
  }
162
162
 
163
163
  .pds-input__label {
164
- color: var(--pine-color-text-active);
164
+ color: var(--pine-color-text-strong);
165
165
  margin-block-end: var(--pine-dimension-2xs);
166
166
  }
167
167
 
@@ -227,6 +227,9 @@
227
227
  .has-error .pds-input__field:hover:not(:disabled) {
228
228
  border-color: var(--pds-input-error-border-hover);
229
229
  }
230
+ :host-context([data-theme=dark]) .has-error .pds-input__field:hover:not(:disabled) {
231
+ border-color: var(--pine-color-red-950);
232
+ }
230
233
  .pds-input__field:focus-visible:not(.has-error) {
231
234
  border-color: var(--pine-color-border-active);
232
235
  outline: var(--pine-outline-focus);
@@ -244,6 +247,9 @@
244
247
  background-color: var(--pds-input-error-background);
245
248
  border-color: var(--pds-input-error-border);
246
249
  }
250
+ :host-context([data-theme=dark]) .has-error .pds-input__field {
251
+ background-color: var(--pine-color-red-950);
252
+ }
247
253
  .has-error .pds-input__field:focus-visible {
248
254
  outline-color: var(--pine-color-focus-ring-danger);
249
255
  position: relative;
@@ -1 +1 @@
1
- {"version":3,"file":"pds-input.js","sourceRoot":"","sources":["../../../src/components/pds-input/pds-input.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch } from '@stencil/core';\nimport { assignDescription, messageId } from '../../utils/form';\nimport { inheritAriaAttributes } from '@utils/attributes';\nimport type { Attributes } from '@utils/attributes';\nimport { InputChangeEventDetail, InputInputEventDetail } from './input-interface';\nimport { debounceEvent } from '@utils/utils';\nimport { danger } from '@pine-ds/icons/icons';\n\n/**\n * @slot append - Content to be displayed after the input field\n * @slot prefix - Content that is displayed visually within the input field before the input field\n * @slot prepend - Content to be displayed before the input field\n * @slot suffix - Content that is displayed visually within the input field after the input field\n * @slot action - Content to be displayed in the label area, typically for help icons or links\n */\n@Component({\n tag: 'pds-input',\n styleUrls: ['pds-input.tokens.scss', '../../global/styles/utils/label.scss', 'pds-input.scss'],\n shadow: true,\n formAssociated: true,\n})\nexport class PdsInput {\n\n private nativeInput?: HTMLInputElement;\n private inheritedAttributes: Attributes = {};\n private isComposing = false;\n private prefixEl?: HTMLElement;\n private suffixEl?: HTMLElement;\n private focusedValue?: string | number | null;\n private originalPdsInput?: EventEmitter<InputInputEventDetail>;\n private internals?: ElementInternals;\n\n @Element() el!: HTMLPdsInputElement;\n\n /**\n * If true, the input has prefix content (non-focusable)\n */\n @State() hasPrefix = false;\n\n /**\n * If true, the input has suffix content (non-focusable)\n */\n @State() hasSuffix = false;\n\n /**\n * If true, the input has prepend content (focusable)\n */\n @State() hasPrepend = false;\n\n /**\n * If true, the input has append content (focusable)\n */\n @State() hasAppend = false;\n\n /**\n * If true, the input has action content in the label area\n */\n @State() hasAction = false;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() pdsBlur!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the value has changed.\n *\n * This event will not emit when programmatically setting the `value` property.\n */\n @Event() pdsChange!: EventEmitter<InputChangeEventDetail>;\n\n /**\n * Emitted when the input has focus.\n */\n @Event() pdsFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when a keyboard input occurs.\n */\n @Event() pdsInput: EventEmitter<InputInputEventDetail>;\n\n /**\n * Sets focus on the native `input` in the `pds-input`. Use this method instead of the global\n * `input.focus()`.\n */\n @Method()\n async setFocus() {\n if (this.nativeInput) {\n this.nativeInput.focus();\n }\n }\n\n\n /**\n * Specifies if and how the browser provides `autocomplete` assistance for the field.\n */\n @Prop() autocomplete: string;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Sets the number of milliseconds to wait before updating the value.\n */\n @Prop() debounce?: number;\n\n /**\n * Determines whether or not the input field is disabled.\n */\n @Prop() disabled?: boolean;\n\n /**\n * Specifies the error message and provides an error-themed treatment to the field.\n */\n @Prop() errorMessage?: string;\n\n /**\n * Displays a message or hint below the input field.\n */\n @Prop() helperMessage?: string;\n\n /**\n * Determines whether or not the input field is invalid or throws an error.\n */\n @Prop() invalid?: boolean;\n\n /**\n * Text to be displayed as the input label.\n */\n @Prop() label?: string;\n\n /**\n * Visually hides the label text for instances where only the input should be displayed. Label remains accessible to assistive technology such as screen readers.\n * Note: When true, the action slot is also hidden to maintain a minimal UI.\n */\n @Prop() hideLabel: boolean;\n\n /**\n * Specifies the maximum value for the input field.\n */\n @Prop() max?: string;\n\n /**\n * Specifies the maximum number of characters allowed in the input field.\n */\n @Prop() maxlength?: string;\n\n /**\n * Specifies the minimum value for the input field.\n */\n @Prop() min?: string;\n\n /**\n * Specifies the minimum number of characters allowed in the input field.\n */\n @Prop() minlength?: string;\n\n /**\n * Specifies the name. Submitted with the form name/value pair.\n */\n @Prop() name?: string;\n\n /**\n * Specifies the regular expression that the input value is checked against.\n */\n @Prop() pattern?: string;\n\n /**\n * Specifies a short hint that describes the expected value of the input field.\n */\n @Prop() placeholder?: string;\n\n /**\n * Determines whether or not the input field is readonly.\n */\n @Prop() readonly?: boolean;\n\n /**\n * Determines whether or not the input field is required.\n */\n @Prop() required?: boolean;\n\n /**\n * Works with the `min` and `max` attributes to define increments for the input field.\n */\n @Prop() step?: string;\n\n /**\n * Determines the type of control that will be displayed\n * `'email'`, `'number'`, `'password'`, `'tel'`, `'text'`, `'url'`\n * @defaultValue \"text\"\n */\n @Prop() type = 'text';\n\n /**\n * The value of the input.\n */\n @Prop({mutable: true}) value?: string | number | null = '';\n\n /**\n * Determines whether or not the input field takes full width of its container.\n */\n @Prop() fullWidth?: boolean;\n\n /**\n * Applies highlight styling to the input field.\n */\n @Prop({ reflect: true }) highlight?: boolean;\n\n /**\n * Determines if the input has focus.\n */\n @State() hasFocus = false;\n\n private updateAddonWidths() {\n requestAnimationFrame(() => {\n if (this.prefixEl) {\n const prefixWidth = this.prefixEl.offsetWidth;\n this.el.style.setProperty('--prefix-width', `${prefixWidth}px`);\n }\n\n if (this.suffixEl) {\n const suffixWidth = this.suffixEl.offsetWidth;\n this.el.style.setProperty('--suffix-width', `${suffixWidth}px`);\n }\n });\n }\n\n private renderPrefix() {\n const hasPrefix = this.el.querySelector('[slot=\"prefix\"]') !== null;\n if (hasPrefix) {\n return (\n <div class=\"pds-input__prefix\" part=\"prefix\" ref={(el) => this.prefixEl = el as HTMLElement}>\n <slot name=\"prefix\" onSlotchange={() => this.updateAddonWidths()}></slot>\n </div>\n );\n }\n return null;\n }\n\n private renderSuffix() {\n const hasSuffix = this.el.querySelector('[slot=\"suffix\"]') !== null;\n if (hasSuffix) {\n return (\n <div class=\"pds-input__suffix\" part=\"suffix\" ref={(el) => this.suffixEl = el as HTMLElement}>\n <slot name=\"suffix\" onSlotchange={() => this.updateAddonWidths()}></slot>\n </div>\n );\n }\n return null;\n }\n\n private renderPrepend() {\n const hasPrepend = this.el.querySelector('[slot=\"prepend\"]') !== null;\n if (hasPrepend) {\n return (\n <div class=\"pds-input__prepend\" part=\"prepend\">\n <slot name=\"prepend\"></slot>\n </div>\n );\n }\n return null;\n }\n\n private renderAppend() {\n const hasAppend = this.el.querySelector('[slot=\"append\"]') !== null;\n if (hasAppend) {\n return (\n <div class=\"pds-input__append\" part=\"append\">\n <slot name=\"append\"></slot>\n </div>\n );\n }\n return null;\n }\n\n private renderAction() {\n const hasAction = this.el.querySelector('[slot=\"action\"]') !== null;\n if (hasAction) {\n return (\n <div class=\"pds-input__action\" part=\"action\">\n <slot name=\"action\"></slot>\n </div>\n );\n }\n return null;\n }\n\n componentWillLoad() {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el)\n };\n this.hasPrefix = this.el.querySelector('[slot=\"prefix\"]') !== null;\n this.hasSuffix = this.el.querySelector('[slot=\"suffix\"]') !== null;\n this.hasPrepend = this.el.querySelector('[slot=\"prepend\"]') !== null;\n this.hasAppend = this.el.querySelector('[slot=\"append\"]') !== null;\n this.hasAction = this.el.querySelector('[slot=\"action\"]') !== null;\n\n // Store the original pdsInput event emitter\n this.originalPdsInput = this.pdsInput;\n }\n\n connectedCallback() {\n // Initialize ElementInternals for form association\n if (this.el.attachInternals) {\n this.internals = this.el.attachInternals();\n }\n }\n\n componentDidLoad() {\n this.debounceChanged();\n this.updateAddonWidths();\n // Set initial form value\n this.updateFormValue();\n }\n\n componentDidUpdate() {\n this.updateAddonWidths();\n }\n\n @Watch('debounce')\n protected debounceChanged() {\n const { pdsInput, debounce, originalPdsInput } = this;\n\n /**\n * If debounce is undefined, we have to manually revert the pdsInput emitter in case\n * debounce used to be set to a number. Otherwise, the event would stay debounced.\n */\n this.pdsInput = debounce === undefined ? originalPdsInput ?? pdsInput : debounceEvent(pdsInput, debounce);\n }\n\n @Watch('value')\n protected valueChanged() {\n const nativeInput = this.nativeInput;\n const value = this.getValue();\n\n if (nativeInput && nativeInput.value !== value && !this.isComposing) {\n nativeInput.value = value;\n }\n\n // Update form value when value changes\n this.updateFormValue();\n }\n\n private getValue(): string {\n return typeof this.value === 'number' ? this.value.toString() : (this.value || '').toString();\n }\n\n private onInputEvent = (ev: Event) => {\n const input = ev.target as HTMLInputElement | null;\n if (input) {\n this.value = input.value || '';\n }\n this.emitInputChange(ev);\n };\n\n private onChangeEvent = (ev: Event) => {\n this.emitValueChange(ev);\n };\n\n private onBlurEvent = (ev: FocusEvent) => {\n this.hasFocus = false;\n\n if (this.focusedValue !== this.value) {\n /**\n * Emits the `pdsChange` event when the input value\n * is different than the value when the input was focused.\n */\n this.emitValueChange(ev);\n }\n\n this.pdsBlur.emit(ev);\n };\n\n private onFocusEvent = (ev: FocusEvent) => {\n this.hasFocus = true;\n this.focusedValue = this.value;\n\n this.pdsFocus.emit(ev);\n };\n\n private onCompositionStart = () => {\n this.isComposing = true;\n }\n\n private onCompositionEnd = () => {\n this.isComposing = false;\n }\n\n /**\n * Emits a pdsChange event\n */\n private emitValueChange(event?: Event) {\n const { value } = this;\n const newValue = value == null ? value : value.toString();\n\n this.focusedValue = newValue;\n this.pdsChange.emit({ value: newValue, event });\n }\n\n /**\n * Emits a `pdsInput` event\n */\n private emitInputChange(event?: Event) {\n const { value } = this;\n\n // Checks for both null and undefined values\n const newValue = value == null ? value : value.toString();\n\n this.pdsInput.emit({ value: newValue, event });\n }\n\n /**\n * Updates the form value using ElementInternals API\n */\n private updateFormValue() {\n if (this.internals && this.internals.setFormValue) {\n const value = this.getValue();\n this.internals.setFormValue(value || null);\n\n // Set validity based on native input validation\n if (this.nativeInput && this.internals && this.internals.setValidity) {\n this.internals.setValidity(\n this.nativeInput.validity,\n this.nativeInput.validationMessage,\n this.nativeInput\n );\n }\n }\n }\n\n /**\n * Form Associated Custom Elements API: Called when the form is reset\n */\n formResetCallback() {\n this.value = '';\n this.updateFormValue();\n }\n\n /**\n * Form Associated Custom Elements API: Called when the form is disabled\n */\n formDisabledCallback(disabled: boolean) {\n this.disabled = disabled;\n }\n\n /**\n * Form Associated Custom Elements API: Called to restore form state\n */\n formStateRestoreCallback(state: string | FormData | null) {\n if (typeof state === 'string') {\n this.value = state;\n } else if (state instanceof FormData && this.name) {\n // Extract value from FormData using the input's name\n const value = state.get(this.name);\n if (typeof value === 'string') {\n this.value = value;\n }\n }\n }\n\n render() {\n const {\n componentId,\n disabled,\n errorMessage,\n helperMessage,\n invalid = false,\n label,\n } = this;\n\n const value = this.getValue();\n\n const inputWrapperClasses = {\n 'pds-input__field-wrapper': true,\n 'has-focus': this.hasFocus,\n 'has-error': invalid || !!errorMessage,\n 'is-disabled': disabled,\n 'has-prefix': this.hasPrefix,\n 'has-suffix': this.hasSuffix,\n 'has-prepend': this.hasPrepend,\n 'has-append': this.hasAppend,\n };\n\n return (\n <Host\n aria-disabled={this.disabled ? 'true' : null}\n aria-readonly={this.readonly ? 'true' : null}\n has-prefix={this.hasPrefix ? 'true' : null}\n has-suffix={this.hasSuffix ? 'true' : null}\n has-prepend={this.hasPrepend ? 'true' : null}\n has-append={this.hasAppend ? 'true' : null}\n has-action={this.hasAction && !this.hideLabel ? 'true' : null}\n full-width={this.fullWidth ? 'true' : null}\n >\n <div class=\"pds-input\">\n {label && (\n <div class=\"pds-input__label-wrapper\">\n <label htmlFor={componentId} class=\"pds-input__label\">\n <span class={this.hideLabel ? 'visually-hidden' : ''}>\n {label}\n {this.required && <span class=\"pds-input__required-indicator\"> *</span>}\n </span>\n </label>\n {!this.hideLabel && this.renderAction()}\n </div>\n )}\n\n <div class={inputWrapperClasses}>\n {this.renderPrepend()}\n {this.renderPrefix()}\n <input\n ref={(input) => (this.nativeInput = input)}\n class=\"pds-input__field\"\n aria-describedby={assignDescription(componentId, invalid, helperMessage)}\n aria-invalid={invalid ? \"true\" : undefined}\n autocomplete={this.autocomplete}\n disabled={disabled}\n id={componentId}\n max={this.max}\n maxlength={this.maxlength}\n min={this.min}\n minlength={this.minlength}\n name={this.name}\n pattern={this.pattern}\n placeholder={this.placeholder}\n readOnly={this.readonly}\n required={this.required}\n step={this.step}\n type={this.type}\n value={value}\n onInput={this.onInputEvent}\n onChange={this.onChangeEvent}\n onBlur={this.onBlurEvent}\n onFocus={this.onFocusEvent}\n onCompositionstart={this.onCompositionStart}\n onCompositionend={this.onCompositionEnd}\n {...this.inheritedAttributes}\n />\n {this.renderSuffix()}\n {this.renderAppend()}\n </div>\n\n {helperMessage && (\n <p class=\"pds-input__helper-message\" id={messageId(componentId, 'helper')}>\n {helperMessage}\n </p>\n )}\n\n {errorMessage && (\n <p class=\"pds-input__error-message\" id={messageId(componentId, 'error')}>\n <pds-icon icon={danger} size=\"small\" />\n {errorMessage}\n </p>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"pds-input.js","sourceRoot":"","sources":["../../../../src/components/pds-input/pds-input.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch } from '@stencil/core';\nimport { assignDescription, messageId } from '../../utils/form';\nimport { inheritAriaAttributes } from '@utils/attributes';\nimport type { Attributes } from '@utils/attributes';\nimport { InputChangeEventDetail, InputInputEventDetail } from './input-interface';\nimport { debounceEvent } from '@utils/utils';\nimport { danger } from '@pine-ds/icons/icons';\n\n/**\n * @slot append - Content to be displayed after the input field\n * @slot prefix - Content that is displayed visually within the input field before the input field\n * @slot prepend - Content to be displayed before the input field\n * @slot suffix - Content that is displayed visually within the input field after the input field\n * @slot action - Content to be displayed in the label area, typically for help icons or links\n */\n@Component({\n tag: 'pds-input',\n styleUrls: ['pds-input.tokens.scss', '../../global/styles/utils/label.scss', 'pds-input.scss'],\n shadow: true,\n formAssociated: true,\n})\nexport class PdsInput {\n\n private nativeInput?: HTMLInputElement;\n private inheritedAttributes: Attributes = {};\n private isComposing = false;\n private prefixEl?: HTMLElement;\n private suffixEl?: HTMLElement;\n private focusedValue?: string | number | null;\n private originalPdsInput?: EventEmitter<InputInputEventDetail>;\n private internals?: ElementInternals;\n\n @Element() el!: HTMLPdsInputElement;\n\n /**\n * If true, the input has prefix content (non-focusable)\n */\n @State() hasPrefix = false;\n\n /**\n * If true, the input has suffix content (non-focusable)\n */\n @State() hasSuffix = false;\n\n /**\n * If true, the input has prepend content (focusable)\n */\n @State() hasPrepend = false;\n\n /**\n * If true, the input has append content (focusable)\n */\n @State() hasAppend = false;\n\n /**\n * If true, the input has action content in the label area\n */\n @State() hasAction = false;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() pdsBlur!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the value has changed.\n *\n * This event will not emit when programmatically setting the `value` property.\n */\n @Event() pdsChange!: EventEmitter<InputChangeEventDetail>;\n\n /**\n * Emitted when the input has focus.\n */\n @Event() pdsFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when a keyboard input occurs.\n */\n @Event() pdsInput: EventEmitter<InputInputEventDetail>;\n\n /**\n * Sets focus on the native `input` in the `pds-input`. Use this method instead of the global\n * `input.focus()`.\n */\n @Method()\n async setFocus() {\n if (this.nativeInput) {\n this.nativeInput.focus();\n }\n }\n\n\n /**\n * Specifies if and how the browser provides `autocomplete` assistance for the field.\n */\n @Prop() autocomplete: string;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Sets the number of milliseconds to wait before updating the value.\n */\n @Prop() debounce?: number;\n\n /**\n * Determines whether or not the input field is disabled.\n */\n @Prop() disabled?: boolean;\n\n /**\n * Specifies the error message and provides an error-themed treatment to the field.\n */\n @Prop() errorMessage?: string;\n\n /**\n * Displays a message or hint below the input field.\n */\n @Prop() helperMessage?: string;\n\n /**\n * Determines whether or not the input field is invalid or throws an error.\n */\n @Prop() invalid?: boolean;\n\n /**\n * Text to be displayed as the input label.\n */\n @Prop() label?: string;\n\n /**\n * Visually hides the label text for instances where only the input should be displayed. Label remains accessible to assistive technology such as screen readers.\n * Note: When true, the action slot is also hidden to maintain a minimal UI.\n */\n @Prop() hideLabel: boolean;\n\n /**\n * Specifies the maximum value for the input field.\n */\n @Prop() max?: string;\n\n /**\n * Specifies the maximum number of characters allowed in the input field.\n */\n @Prop() maxlength?: string;\n\n /**\n * Specifies the minimum value for the input field.\n */\n @Prop() min?: string;\n\n /**\n * Specifies the minimum number of characters allowed in the input field.\n */\n @Prop() minlength?: string;\n\n /**\n * Specifies the name. Submitted with the form name/value pair.\n */\n @Prop() name?: string;\n\n /**\n * Specifies the regular expression that the input value is checked against.\n */\n @Prop() pattern?: string;\n\n /**\n * Specifies a short hint that describes the expected value of the input field.\n */\n @Prop() placeholder?: string;\n\n /**\n * Determines whether or not the input field is readonly.\n */\n @Prop() readonly?: boolean;\n\n /**\n * Determines whether or not the input field is required.\n */\n @Prop() required?: boolean;\n\n /**\n * Works with the `min` and `max` attributes to define increments for the input field.\n */\n @Prop() step?: string;\n\n /**\n * Determines the type of control that will be displayed\n * `'email'`, `'number'`, `'password'`, `'tel'`, `'text'`, `'url'`\n * @defaultValue \"text\"\n */\n @Prop() type = 'text';\n\n /**\n * The value of the input.\n */\n @Prop({mutable: true}) value?: string | number | null = '';\n\n /**\n * Determines whether or not the input field takes full width of its container.\n */\n @Prop() fullWidth?: boolean;\n\n /**\n * Applies highlight styling to the input field.\n */\n @Prop({ reflect: true }) highlight?: boolean;\n\n /**\n * Determines if the input has focus.\n */\n @State() hasFocus = false;\n\n private updateAddonWidths() {\n requestAnimationFrame(() => {\n if (this.prefixEl) {\n const prefixWidth = this.prefixEl.offsetWidth;\n this.el.style.setProperty('--prefix-width', `${prefixWidth}px`);\n }\n\n if (this.suffixEl) {\n const suffixWidth = this.suffixEl.offsetWidth;\n this.el.style.setProperty('--suffix-width', `${suffixWidth}px`);\n }\n });\n }\n\n private renderPrefix() {\n const hasPrefix = this.el.querySelector('[slot=\"prefix\"]') !== null;\n if (hasPrefix) {\n return (\n <div class=\"pds-input__prefix\" part=\"prefix\" ref={(el) => this.prefixEl = el as HTMLElement}>\n <slot name=\"prefix\" onSlotchange={() => this.updateAddonWidths()}></slot>\n </div>\n );\n }\n return null;\n }\n\n private renderSuffix() {\n const hasSuffix = this.el.querySelector('[slot=\"suffix\"]') !== null;\n if (hasSuffix) {\n return (\n <div class=\"pds-input__suffix\" part=\"suffix\" ref={(el) => this.suffixEl = el as HTMLElement}>\n <slot name=\"suffix\" onSlotchange={() => this.updateAddonWidths()}></slot>\n </div>\n );\n }\n return null;\n }\n\n private renderPrepend() {\n const hasPrepend = this.el.querySelector('[slot=\"prepend\"]') !== null;\n if (hasPrepend) {\n return (\n <div class=\"pds-input__prepend\" part=\"prepend\">\n <slot name=\"prepend\"></slot>\n </div>\n );\n }\n return null;\n }\n\n private renderAppend() {\n const hasAppend = this.el.querySelector('[slot=\"append\"]') !== null;\n if (hasAppend) {\n return (\n <div class=\"pds-input__append\" part=\"append\">\n <slot name=\"append\"></slot>\n </div>\n );\n }\n return null;\n }\n\n private renderAction() {\n const hasAction = this.el.querySelector('[slot=\"action\"]') !== null;\n if (hasAction) {\n return (\n <div class=\"pds-input__action\" part=\"action\">\n <slot name=\"action\"></slot>\n </div>\n );\n }\n return null;\n }\n\n componentWillLoad() {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el)\n };\n this.hasPrefix = this.el.querySelector('[slot=\"prefix\"]') !== null;\n this.hasSuffix = this.el.querySelector('[slot=\"suffix\"]') !== null;\n this.hasPrepend = this.el.querySelector('[slot=\"prepend\"]') !== null;\n this.hasAppend = this.el.querySelector('[slot=\"append\"]') !== null;\n this.hasAction = this.el.querySelector('[slot=\"action\"]') !== null;\n\n // Store the original pdsInput event emitter\n this.originalPdsInput = this.pdsInput;\n }\n\n connectedCallback() {\n // Initialize ElementInternals for form association\n if (this.el.attachInternals) {\n this.internals = this.el.attachInternals();\n }\n }\n\n componentDidLoad() {\n this.debounceChanged();\n this.updateAddonWidths();\n // Set initial form value\n this.updateFormValue();\n }\n\n componentDidUpdate() {\n this.updateAddonWidths();\n }\n\n @Watch('debounce')\n protected debounceChanged() {\n const { pdsInput, debounce, originalPdsInput } = this;\n\n /**\n * If debounce is undefined, we have to manually revert the pdsInput emitter in case\n * debounce used to be set to a number. Otherwise, the event would stay debounced.\n */\n this.pdsInput = debounce === undefined ? originalPdsInput ?? pdsInput : debounceEvent(pdsInput, debounce);\n }\n\n @Watch('value')\n protected valueChanged() {\n const nativeInput = this.nativeInput;\n const value = this.getValue();\n\n if (nativeInput && nativeInput.value !== value && !this.isComposing) {\n nativeInput.value = value;\n }\n\n // Update form value when value changes\n this.updateFormValue();\n }\n\n private getValue(): string {\n return typeof this.value === 'number' ? this.value.toString() : (this.value || '').toString();\n }\n\n private onInputEvent = (ev: Event) => {\n const input = ev.target as HTMLInputElement | null;\n if (input) {\n this.value = input.value || '';\n }\n this.emitInputChange(ev);\n };\n\n private onChangeEvent = (ev: Event) => {\n this.emitValueChange(ev);\n };\n\n private onBlurEvent = (ev: FocusEvent) => {\n this.hasFocus = false;\n\n if (this.focusedValue !== this.value) {\n /**\n * Emits the `pdsChange` event when the input value\n * is different than the value when the input was focused.\n */\n this.emitValueChange(ev);\n }\n\n this.pdsBlur.emit(ev);\n };\n\n private onFocusEvent = (ev: FocusEvent) => {\n this.hasFocus = true;\n this.focusedValue = this.value;\n\n this.pdsFocus.emit(ev);\n };\n\n private onCompositionStart = () => {\n this.isComposing = true;\n }\n\n private onCompositionEnd = () => {\n this.isComposing = false;\n }\n\n /**\n * Emits a pdsChange event\n */\n private emitValueChange(event?: Event) {\n const { value } = this;\n const newValue = value == null ? value : value.toString();\n\n this.focusedValue = newValue;\n this.pdsChange.emit({ value: newValue, event });\n }\n\n /**\n * Emits a `pdsInput` event\n */\n private emitInputChange(event?: Event) {\n const { value } = this;\n\n // Checks for both null and undefined values\n const newValue = value == null ? value : value.toString();\n\n this.pdsInput.emit({ value: newValue, event });\n }\n\n /**\n * Updates the form value using ElementInternals API\n */\n private updateFormValue() {\n if (this.internals && this.internals.setFormValue) {\n const value = this.getValue();\n this.internals.setFormValue(value || null);\n\n // Set validity based on native input validation\n if (this.nativeInput && this.internals && this.internals.setValidity) {\n this.internals.setValidity(\n this.nativeInput.validity,\n this.nativeInput.validationMessage,\n this.nativeInput\n );\n }\n }\n }\n\n /**\n * Form Associated Custom Elements API: Called when the form is reset\n */\n formResetCallback() {\n this.value = '';\n this.updateFormValue();\n }\n\n /**\n * Form Associated Custom Elements API: Called when the form is disabled\n */\n formDisabledCallback(disabled: boolean) {\n this.disabled = disabled;\n }\n\n /**\n * Form Associated Custom Elements API: Called to restore form state\n */\n formStateRestoreCallback(state: string | FormData | null) {\n if (typeof state === 'string') {\n this.value = state;\n } else if (state instanceof FormData && this.name) {\n // Extract value from FormData using the input's name\n const value = state.get(this.name);\n if (typeof value === 'string') {\n this.value = value;\n }\n }\n }\n\n render() {\n const {\n componentId,\n disabled,\n errorMessage,\n helperMessage,\n invalid = false,\n label,\n } = this;\n\n const value = this.getValue();\n\n const inputWrapperClasses = {\n 'pds-input__field-wrapper': true,\n 'has-focus': this.hasFocus,\n 'has-error': invalid || !!errorMessage,\n 'is-disabled': disabled,\n 'has-prefix': this.hasPrefix,\n 'has-suffix': this.hasSuffix,\n 'has-prepend': this.hasPrepend,\n 'has-append': this.hasAppend,\n };\n\n return (\n <Host\n aria-disabled={this.disabled ? 'true' : null}\n aria-readonly={this.readonly ? 'true' : null}\n has-prefix={this.hasPrefix ? 'true' : null}\n has-suffix={this.hasSuffix ? 'true' : null}\n has-prepend={this.hasPrepend ? 'true' : null}\n has-append={this.hasAppend ? 'true' : null}\n has-action={this.hasAction && !this.hideLabel ? 'true' : null}\n full-width={this.fullWidth ? 'true' : null}\n >\n <div class=\"pds-input\">\n {label && (\n <div class=\"pds-input__label-wrapper\">\n <label htmlFor={componentId} class=\"pds-input__label\">\n <span class={this.hideLabel ? 'visually-hidden' : ''}>\n {label}\n {this.required && <span class=\"pds-input__required-indicator\"> *</span>}\n </span>\n </label>\n {!this.hideLabel && this.renderAction()}\n </div>\n )}\n\n <div class={inputWrapperClasses}>\n {this.renderPrepend()}\n {this.renderPrefix()}\n <input\n ref={(input) => (this.nativeInput = input)}\n class=\"pds-input__field\"\n aria-describedby={assignDescription(componentId, invalid, helperMessage)}\n aria-invalid={invalid ? \"true\" : undefined}\n autocomplete={this.autocomplete}\n disabled={disabled}\n id={componentId}\n max={this.max}\n maxlength={this.maxlength}\n min={this.min}\n minlength={this.minlength}\n name={this.name}\n pattern={this.pattern}\n placeholder={this.placeholder}\n readOnly={this.readonly}\n required={this.required}\n step={this.step}\n type={this.type}\n value={value}\n onInput={this.onInputEvent}\n onChange={this.onChangeEvent}\n onBlur={this.onBlurEvent}\n onFocus={this.onFocusEvent}\n onCompositionstart={this.onCompositionStart}\n onCompositionend={this.onCompositionEnd}\n {...this.inheritedAttributes}\n />\n {this.renderSuffix()}\n {this.renderAppend()}\n </div>\n\n {helperMessage && (\n <p class=\"pds-input__helper-message\" id={messageId(componentId, 'helper')}>\n {helperMessage}\n </p>\n )}\n\n {errorMessage && (\n <p class=\"pds-input__error-message\" id={messageId(componentId, 'error')}>\n <pds-icon icon={danger} size=\"small\" />\n {errorMessage}\n </p>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1,9 +1,8 @@
1
1
  import { html } from 'lit';
2
- import { extractArgTypes } from '@pxtrn/storybook-addon-docs-stencil';
3
- import { withActions } from '@storybook/addon-actions/decorator';
2
+
4
3
 
5
4
  export default {
6
- argTypes: extractArgTypes('pds-input'),
5
+
7
6
  args: {
8
7
  autocomplete: null,
9
8
  debounce: null,
@@ -27,17 +26,8 @@ export default {
27
26
  type: 'text'
28
27
  },
29
28
  component: 'pds-input',
30
- parameters: {
31
- actions: {
32
- handles: [
33
- 'oninput', 'pdsInput',
34
- 'onchange', 'pdsChange',
35
- 'onblur', 'pdsBlur',
36
- 'onFocus', 'pdsFocus'],
37
- },
38
- },
29
+ parameters: {},
39
30
  title: 'components/Input',
40
- decorators: [withActions],
41
31
  }
42
32
 
43
33
  const BaseTemplate = (args) => html`<pds-input
@@ -25,7 +25,7 @@
25
25
  color: var(--pine-color-text-primary);
26
26
  }
27
27
  :host([color=secondary]) .pds-link:hover {
28
- color: var(--pine-color-grey-150);
28
+ color: var(--pine-color-text-inverse-secondary);
29
29
  }
30
30
  :host([color=accent]) .pds-link {
31
31
  color: var(--pine-color-accent);
@@ -1 +1 @@
1
- {"version":3,"file":"pds-link.js","sourceRoot":"","sources":["../../../src/components/pds-link/pds-link.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C;;;GAGG;AAMH,MAAM,OAAO,OAAO;IALpB;QAgBE;;;WAGG;QACK,aAAQ,GAAG,KAAK,CAAC;QAEzB;;;WAGG;QACK,YAAO,GAAuB,QAAQ,CAAC;QAE/C;;;WAGG;QACK,aAAQ,GAAuB,IAAI,CAAC;KAqD7C;IA9CS,UAAU;QAChB,MAAM,UAAU,GAAG,CAAC,UAAU,CAAC,CAAC;QAEhC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,UAAU,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,UAAU,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExB,MAAM,UAAU,GAAG;YACjB,SAAS,EAAE,gCAAgC;YAC3C,MAAM,EAAE,0BAA0B;YAClC,MAAM,EAAE,0BAA0B;SACnC,CAAA;QAED,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAEpD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM;QAEJ,OAAO,CACL,0DACE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EACxB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,EAAE,EAAE,IAAI,CAAC,WAAW,EACpB,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAC5C,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE;YAE3B,+DAAO,IAAI,CAAC,IAAI,CAAQ;YACvB,IAAI,CAAC,QAAQ;gBACZ,iEAAU,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,GAAa,CAExD,CACL,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Prop } from '@stencil/core';\nimport { setColor } from '../../utils/utils';\n\nimport { launch } from '@pine-ds/icons/icons';\n\n/**\n * @part link - Link element styles.\n * @slot (default) - Text content placed between the opening and closing tags. If no text is provided, the **href** will be used as a fallback.\n */\n@Component({\n tag: 'pds-link',\n styleUrls: ['pds-link.scss'],\n shadow: true,\n})\nexport class PdsLink {\n /**\n * Sets the link color.\n */\n @Prop() color?: string;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Determines whether the link should open in a new tab.\n * @defaultValue false\n */\n @Prop() external = false;\n\n /**\n * Sets the link variant styles.\n * @defaultValue inline\n */\n @Prop() variant: 'inline' | 'plain' = 'inline';\n\n /**\n * The font size of the link's text.\n * @defaultValue lg\n */\n @Prop() fontSize: 'sm' | 'md' | 'lg' = 'lg';\n\n /**\n * The hyperlink's destination URL. If no text is provided in the custom slot, the href will be used.\n */\n @Prop() href!: string;\n\n private classNames() {\n const classNames = ['pds-link'];\n\n if (this.fontSize) {\n classNames.push('pds-link--' + this.fontSize);\n }\n\n if (this.variant) {\n classNames.push('pds-link--' + this.variant);\n }\n\n return classNames.join(' ');\n }\n\n private setLinkStyles() {\n if (!this.color) return;\n\n const linkColors = {\n secondary: 'var(--pine-color-text-primary)',\n accent: 'var(--pine-color-accent)',\n danger: 'var(--pine-color-danger)',\n }\n\n const linkStyles = setColor(this.color, linkColors);\n\n return linkStyles;\n }\n\n render() {\n\n return (\n <a\n class={this.classNames()}\n href={this.href}\n id={this.componentId}\n part=\"link\"\n target={this.external ? '_blank' : undefined}\n style={this.setLinkStyles()}\n >\n <slot>{this.href}</slot>\n {this.external &&\n <pds-icon icon={launch} size={this.fontSize}></pds-icon>\n }\n </a>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"pds-link.js","sourceRoot":"","sources":["../../../../src/components/pds-link/pds-link.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C;;;GAGG;AAMH,MAAM,OAAO,OAAO;IALpB;QAgBE;;;WAGG;QACK,aAAQ,GAAG,KAAK,CAAC;QAEzB;;;WAGG;QACK,YAAO,GAAuB,QAAQ,CAAC;QAE/C;;;WAGG;QACK,aAAQ,GAAuB,IAAI,CAAC;KAqD7C;IA9CS,UAAU;QAChB,MAAM,UAAU,GAAG,CAAC,UAAU,CAAC,CAAC;QAEhC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,UAAU,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,UAAU,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExB,MAAM,UAAU,GAAG;YACjB,SAAS,EAAE,gCAAgC;YAC3C,MAAM,EAAE,0BAA0B;YAClC,MAAM,EAAE,0BAA0B;SACnC,CAAA;QAED,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAEpD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM;QAEJ,OAAO,CACL,0DACE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EACxB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,EAAE,EAAE,IAAI,CAAC,WAAW,EACpB,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAC5C,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE;YAE3B,+DAAO,IAAI,CAAC,IAAI,CAAQ;YACvB,IAAI,CAAC,QAAQ;gBACZ,iEAAU,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,GAAa,CAExD,CACL,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Prop } from '@stencil/core';\nimport { setColor } from '../../utils/utils';\n\nimport { launch } from '@pine-ds/icons/icons';\n\n/**\n * @part link - Link element styles.\n * @slot (default) - Text content placed between the opening and closing tags. If no text is provided, the **href** will be used as a fallback.\n */\n@Component({\n tag: 'pds-link',\n styleUrls: ['pds-link.scss'],\n shadow: true,\n})\nexport class PdsLink {\n /**\n * Sets the link color.\n */\n @Prop() color?: string;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Determines whether the link should open in a new tab.\n * @defaultValue false\n */\n @Prop() external = false;\n\n /**\n * Sets the link variant styles.\n * @defaultValue inline\n */\n @Prop() variant: 'inline' | 'plain' = 'inline';\n\n /**\n * The font size of the link's text.\n * @defaultValue lg\n */\n @Prop() fontSize: 'sm' | 'md' | 'lg' = 'lg';\n\n /**\n * The hyperlink's destination URL. If no text is provided in the custom slot, the href will be used.\n */\n @Prop() href!: string;\n\n private classNames() {\n const classNames = ['pds-link'];\n\n if (this.fontSize) {\n classNames.push('pds-link--' + this.fontSize);\n }\n\n if (this.variant) {\n classNames.push('pds-link--' + this.variant);\n }\n\n return classNames.join(' ');\n }\n\n private setLinkStyles() {\n if (!this.color) return;\n\n const linkColors = {\n secondary: 'var(--pine-color-text-primary)',\n accent: 'var(--pine-color-accent)',\n danger: 'var(--pine-color-danger)',\n }\n\n const linkStyles = setColor(this.color, linkColors);\n\n return linkStyles;\n }\n\n render() {\n\n return (\n <a\n class={this.classNames()}\n href={this.href}\n id={this.componentId}\n part=\"link\"\n target={this.external ? '_blank' : undefined}\n style={this.setLinkStyles()}\n >\n <slot>{this.href}</slot>\n {this.external &&\n <pds-icon icon={launch} size={this.fontSize}></pds-icon>\n }\n </a>\n );\n }\n}\n"]}
@@ -1,8 +1,6 @@
1
1
  import { html } from 'lit';
2
- import { extractArgTypes } from '@pxtrn/storybook-addon-docs-stencil';
3
2
 
4
3
  export default {
5
- argTypes: extractArgTypes('pds-link'),
6
4
  args: { href: '#some-anchor' },
7
5
  argTypes: {
8
6
  variant: {
@@ -1,5 +1,5 @@
1
1
  :host {
2
- --loader-color: var(--pine-color-brand);
2
+ --loader-color: var(--pine-color-primary);
3
3
  align-items: center;
4
4
  display: flex;
5
5
  flex-direction: column;
@@ -40,7 +40,7 @@
40
40
  --opacity-typing-dot-default: 0.4;
41
41
  --opacity-typing-dot-active: 1;
42
42
  align-items: center;
43
- background-color: var(--pine-color-background-container-disabled);
43
+ background-color: var(--pine-color-background-muted);
44
44
  border-radius: var(--pine-dimension-sm);
45
45
  box-shadow: var(--pine-box-shadow);
46
46
  display: inline-flex;
@@ -1 +1 @@
1
- {"version":3,"file":"pds-loader.js","sourceRoot":"","sources":["../../../src/components/pds-loader/pds-loader.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Prop } from '@stencil/core';\n\n/**\n * @part loader-svg - Exposes the spinner SVG element for color customization.\n * @slot label - Default slot for Loader label text.\n */\n\n@Component({\n tag: 'pds-loader',\n styleUrls: ['pds-loader.scss'],\n shadow: true,\n})\nexport class PdsLoader {\n /**\n * If false, the loader will be hidden.\n */\n @Prop() isLoading: boolean = true;\n\n /**\n * Determines whether the loader should display a label.\n */\n @Prop() showLabel?: boolean = false;\n\n /**\n * Sets the size of the spinner loader. Value can be preset or custom.\n */\n @Prop({ reflect: true }) size?:\n | 'xs' // 24px\n | 'sm' // 32px\n | 'md' // 48px\n | 'lg' // 64px\n | 'xl' // 80px\n | string = 'md';\n\n /**\n * Determines the type of loader.\n */\n @Prop() variant: 'spinner' | 'typing' = 'spinner';\n\n private loaderSize() {\n const sizes: { [key: string]: string } = {\n xs: '24px',\n sm: '32px',\n md: '48px',\n lg: '64px',\n xl: '80px',\n };\n\n if (sizes[this.size]) {\n return sizes[this.size];\n } else {\n return this.size;\n }\n }\n\n private style = () => {\n if (this.size !== undefined) {\n return {\n height: this.loaderSize(),\n width: this.loaderSize(),\n };\n }\n };\n\n render() {\n return (\n <Host class={`pds-loader ${this.isLoading ? '' : 'pds-loader--hidden'}`} aria-hidden={!this.isLoading} aria-busy={this.isLoading} aria-live=\"polite\">\n {this.variant === 'spinner' && (\n <div class=\"pds-loader--spinner\">\n <svg style={this.style()} viewBox=\"0 0 200 200\" fill=\"none\" part=\"loader-svg\">\n <defs>\n <linearGradient id=\"spinner-secondHalf\">\n <stop offset=\"0%\" stop-opacity=\"0\" stop-color=\"currentColor\" />\n <stop offset=\"100%\" stop-opacity=\"0.5\" stop-color=\"currentColor\" />\n </linearGradient>\n <linearGradient id=\"spinner-firstHalf\">\n <stop offset=\"0%\" stop-opacity=\"1\" stop-color=\"currentColor\" />\n <stop offset=\"100%\" stop-opacity=\"0.5\" stop-color=\"currentColor\" />\n </linearGradient>\n </defs>\n\n <g class=\"pds-loader__spinner-path\">\n <path stroke=\"url(#spinner-secondHalf)\" d=\"M 4 100 A 96 96 0 0 1 196 100\" />\n <path stroke=\"url(#spinner-firstHalf)\" d=\"M 196 100 A 96 96 0 0 1 4 100\" />\n\n <path stroke=\"currentColor\" stroke-linecap=\"round\" d=\"M 4 100 A 96 96 0 0 1 4 98\" />\n </g>\n </svg>\n </div>\n )}\n\n {this.variant === 'typing' && (\n <div class=\"pds-loader--typing\">\n <span></span>\n <span></span>\n <span></span>\n </div>\n )}\n\n <div class={`pds-loader__label ${this.showLabel ? '' : 'pds-loader--hidden'}`}>\n <slot name=\"label\">Loading...</slot>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"pds-loader.js","sourceRoot":"","sources":["../../../../src/components/pds-loader/pds-loader.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Prop } from '@stencil/core';\n\n/**\n * @part loader-svg - Exposes the spinner SVG element for color customization.\n * @slot label - Default slot for Loader label text.\n */\n\n@Component({\n tag: 'pds-loader',\n styleUrls: ['pds-loader.scss'],\n shadow: true,\n})\nexport class PdsLoader {\n /**\n * If false, the loader will be hidden.\n */\n @Prop() isLoading: boolean = true;\n\n /**\n * Determines whether the loader should display a label.\n */\n @Prop() showLabel?: boolean = false;\n\n /**\n * Sets the size of the spinner loader. Value can be preset or custom.\n */\n @Prop({ reflect: true }) size?:\n | 'xs' // 24px\n | 'sm' // 32px\n | 'md' // 48px\n | 'lg' // 64px\n | 'xl' // 80px\n | string = 'md';\n\n /**\n * Determines the type of loader.\n */\n @Prop() variant: 'spinner' | 'typing' = 'spinner';\n\n private loaderSize() {\n const sizes: { [key: string]: string } = {\n xs: '24px',\n sm: '32px',\n md: '48px',\n lg: '64px',\n xl: '80px',\n };\n\n if (sizes[this.size]) {\n return sizes[this.size];\n } else {\n return this.size;\n }\n }\n\n private style = () => {\n if (this.size !== undefined) {\n return {\n height: this.loaderSize(),\n width: this.loaderSize(),\n };\n }\n };\n\n render() {\n return (\n <Host class={`pds-loader ${this.isLoading ? '' : 'pds-loader--hidden'}`} aria-hidden={!this.isLoading} aria-busy={this.isLoading} aria-live=\"polite\">\n {this.variant === 'spinner' && (\n <div class=\"pds-loader--spinner\">\n <svg style={this.style()} viewBox=\"0 0 200 200\" fill=\"none\" part=\"loader-svg\">\n <defs>\n <linearGradient id=\"spinner-secondHalf\">\n <stop offset=\"0%\" stop-opacity=\"0\" stop-color=\"currentColor\" />\n <stop offset=\"100%\" stop-opacity=\"0.5\" stop-color=\"currentColor\" />\n </linearGradient>\n <linearGradient id=\"spinner-firstHalf\">\n <stop offset=\"0%\" stop-opacity=\"1\" stop-color=\"currentColor\" />\n <stop offset=\"100%\" stop-opacity=\"0.5\" stop-color=\"currentColor\" />\n </linearGradient>\n </defs>\n\n <g class=\"pds-loader__spinner-path\">\n <path stroke=\"url(#spinner-secondHalf)\" d=\"M 4 100 A 96 96 0 0 1 196 100\" />\n <path stroke=\"url(#spinner-firstHalf)\" d=\"M 196 100 A 96 96 0 0 1 4 100\" />\n\n <path stroke=\"currentColor\" stroke-linecap=\"round\" d=\"M 4 100 A 96 96 0 0 1 4 98\" />\n </g>\n </svg>\n </div>\n )}\n\n {this.variant === 'typing' && (\n <div class=\"pds-loader--typing\">\n <span></span>\n <span></span>\n <span></span>\n </div>\n )}\n\n <div class={`pds-loader__label ${this.showLabel ? '' : 'pds-loader--hidden'}`}>\n <slot name=\"label\">Loading...</slot>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1,8 +1,6 @@
1
1
  import { html } from 'lit';
2
- import { extractArgTypes } from '@pxtrn/storybook-addon-docs-stencil';
3
2
 
4
3
  export default {
5
- argTypes: extractArgTypes('pds-loader'),
6
4
  component: 'pds-loader',
7
5
  title: 'components/Loader',
8
6
  args: {
@@ -7,14 +7,14 @@ pds-modal-content:has(.pds-modal-content.pds-modal-content--border-none) {
7
7
  border: 0;
8
8
  }
9
9
  pds-modal-content:has(.pds-modal-content.pds-modal-content--border-both) {
10
- border-block-end: 1px solid var(--pine-color-grey-200);
11
- border-block-start: 1px solid var(--pine-color-grey-200);
10
+ border-block-end: 1px solid var(--pine-color-border-subtle);
11
+ border-block-start: 1px solid var(--pine-color-border-subtle);
12
12
  }
13
13
  pds-modal-content:has(.pds-modal-content.pds-modal-content--border-top) {
14
- border-block-start: 1px solid var(--pine-color-grey-200);
14
+ border-block-start: 1px solid var(--pine-color-border-subtle);
15
15
  }
16
16
  pds-modal-content:has(.pds-modal-content.pds-modal-content--border-bottom) {
17
- border-block-end: 1px solid var(--pine-color-grey-200);
17
+ border-block-end: 1px solid var(--pine-color-border-subtle);
18
18
  }
19
19
 
20
20
  .pds-modal-content {
@@ -1 +1 @@
1
- {"version":3,"file":"pds-modal-content.js","sourceRoot":"","sources":["../../../../src/components/pds-modal/pds-modal-content/pds-modal-content.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAMzE,MAAM,OAAO,eAAe;IAJ5B;QAQE;;;WAGG;QACsB,WAAM,GAAuC,MAAM,CAAC;QAEpE,qBAAgB,GAAW,MAAM,CAAC;QAE3C;;WAEG;QACK,kBAAa,GAAG,KAAK,CAAC;KAgO/B;IA9NC,iBAAiB;QACf,+DAA+D;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,kBAAkB,GAAG,UAAU,KAAK,IAAI,CAAC;QAE/C,4EAA4E;QAC5E,IAAI,CAAC,aAAa,GAAG,kBAAkB,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC;IACpE,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,yBAAyB;QACzB,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEhE,sFAAsF;QACtF,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,UAAU,CAAC,GAAG,EAAE;gBACd,kFAAkF;gBAClF,OAAO,CAAC,GAAG,CAAC,kDAAkD,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBACzE,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjE,mDAAmD;gBACnD,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,GAAG,CAAC,CAAC;YAC9C,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,oBAAoB;QAClB,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEnE,iDAAiD;QACjD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;QACrC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,YAAY;QAClB,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED;;OAEG;IACK,YAAY;QAClB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,oEAAoE;QACpE,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7C,CAAC;IAOD;;OAEG;IACK,aAAa;QACnB,2DAA2D;QAC3D,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,oDAAoD;QACpD,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,CAAC,YAAY;YAAE,OAAO;QAE1B,iDAAiD;QACjD,MAAM,iBAAiB,GAAG,YAAY,CAAC,UAAU,KAAK,KAAK,CAAC;QAC5D,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,OAAO;QACT,CAAC;QAED,8EAA8E;QAC9E,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC;QAElC,0CAA0C;QAC1C,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,YAAY,GAAG,iBAAiB,CAAC,YAAY,CAAC;QAE5F,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,OAAO;QACT,CAAC;QAED,qDAAqD;QACrD,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,iBAAiB,CAAC;QACpE,MAAM,YAAY,GAAG,SAAS,GAAG,YAAY,CAAC;QAE9C,oEAAoE;QACpE,MAAM,SAAS,GAAG,CAAC,CAAC;QACpB,MAAM,OAAO,GAAG,SAAS,IAAI,SAAS,CAAC;QACvC,MAAM,UAAU,GAAG,YAAY,IAAI,YAAY,GAAG,SAAS,CAAC;QAE5D,uCAAuC;QACvC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE;YAC3B,SAAS;YACT,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,OAAO;YACP,UAAU;YACV,aAAa,EAAE,IAAI,CAAC,MAAM;SAC3B,CAAC,CAAC;QAEH,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;YAC1B,0CAA0C;YAC1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACzD,CAAC;aAAM,IAAI,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;YAClC,kCAAkC;YAClC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QACjD,CAAC;aAAM,IAAI,CAAC,OAAO,IAAI,UAAU,EAAE,CAAC;YAClC,kCAAkC;YAClC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,+BAA+B;YAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED;;OAEG;IACK,kBAAkB;QACxB,oDAAoD;QACpD,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,CAAC,YAAY;YAAE,OAAO;QAE1B,0CAA0C;QAC1C,MAAM,YAAY,GAAG,YAAY,CAAC,UAAU,KAAK,KAAK,CAAC;QAEvD,UAAU,CAAC,GAAG,EAAE;YACd,iEAAiE;YACjE,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;gBAC/B,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,oBAAoB,CAAgB,CAAC;gBAClF,IAAI,cAAc,EAAE,CAAC;oBACnB,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC1C,CAAC;gBACD,OAAO;YACT,CAAC;YAED,kCAAkC;YAClC,MAAM,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;YACrE,MAAM,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;YAErE,gCAAgC;YAChC,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YACpE,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAEpE,sCAAsC;YACtC,IAAI,YAAY,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;gBACzC,iDAAiD;gBACjD,+BAA+B;gBAC/B,0BAA0B;gBAC1B,kDAAkD;gBAClD,6CAA6C;gBAC7C,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,oBAAoB;gBACtF,MAAM,cAAc,GAAG,YAAY,GAAG,YAAY,GAAG,EAAE,GAAG,kBAAkB,GAAG,EAAE,CAAC;gBAElF,6BAA6B;gBAC7B,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,cAAc,KAAK,CAAC;gBAE5D,qDAAqD;gBACrD,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,oBAAoB,CAAgB,CAAC;gBAClF,IAAI,cAAc,EAAE,CAAC;oBACnB,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBACzD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,CAAC,mBAAmB;YACrD,CAAC;YAED,6DAA6D;YAC7D,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,GAAG,CAAC,CAAC;QAC9C,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,wCAAwC;QAEjD,+CAA+C;QAC/C,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,YAAY,EAAE,CAAC;YAC3C,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAE;gBAChD,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,0CAA0C;YAC1C,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,YAAY,EAAE;gBAC1C,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,IAAI;gBAChB,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;aACpC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,MAAM;QACJ,iDAAiD;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAE9F,OAAO,CACL,EAAC,IAAI;YACH,4DACE,KAAK,EAAE;oBACL,mBAAmB,EAAE,IAAI;oBACzB,CAAC,6BAA6B,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI;iBACnD,EACD,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAC,IAAI;gBAEb,8DAAa,CACT,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Host, Prop, Element, State } from '@stencil/core';\n\n@Component({\n tag: 'pds-modal-content',\n styleUrl: 'pds-modal-content.scss',\n})\nexport class PdsModalContent {\n\n @Element() el: HTMLPdsModalContentElement;\n\n /**\n * The border style for the content area. When not explicitly set, automatically determined based on scroll state.\n * @default 'none'\n */\n @Prop({ reflect: true }) border: 'none' | 'both' | 'top' | 'bottom' = 'none';\n\n @State() contentMaxHeight: string = 'none';\n\n /**\n * Tracks whether the border prop was explicitly set by the user\n */\n private userSetBorder = false;\n\n componentWillLoad() {\n // Check if border was explicitly set via attribute or property\n const borderAttr = this.el.getAttribute('border');\n const hasBorderAttribute = borderAttr !== null;\n\n // If border attribute exists or border prop is not the default, user set it\n this.userSetBorder = hasBorderAttribute || this.border !== 'none';\n }\n\n componentDidLoad() {\n this.calculateMaxHeight();\n\n // Set up resize listener\n window.addEventListener('resize', this.handleResize.bind(this));\n\n // Only set up scroll listener for border updates if borders are managed automatically\n if (!this.userSetBorder) {\n setTimeout(() => {\n // The scroll happens on the component element itself (this.el), not the inner div\n console.log('Setting up scroll listener on component element:', this.el);\n this.el.addEventListener('scroll', this.handleScroll.bind(this));\n // Initial border update after everything is set up\n setTimeout(() => this.updateBorders(), 100);\n }, 100);\n }\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.handleResize.bind(this));\n\n // Clean up scroll listener only if it was set up\n if (!this.userSetBorder) {\n this.el.removeEventListener('scroll', this.handleScroll.bind(this));\n }\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n }\n\n /**\n * Handle scroll events\n */\n private handleScroll() {\n console.log('Scroll event fired!');\n this.updateBorders();\n }\n\n /**\n * Handle resize events\n */\n private handleResize() {\n this.calculateMaxHeight();\n // Update borders after resize as content scrollability might change\n setTimeout(() => this.updateBorders(), 50);\n }\n\n /**\n * Calculates the max-height based on header and footer heights\n */\n private mutationObserver: MutationObserver;\n\n /**\n * Updates border visibility based on scroll state (only if not user-defined)\n */\n private updateBorders() {\n // If user explicitly set a border value, don't override it\n if (this.userSetBorder) {\n return;\n }\n\n // Find the modal element (parent of this component)\n const modalElement = this.el.closest('pds-modal');\n if (!modalElement) return;\n\n // Only apply border logic if modal is scrollable\n const isModalScrollable = modalElement.scrollable !== false;\n if (!isModalScrollable) {\n this.border = 'none';\n return;\n }\n\n // The scrollable element is the component itself (this.el), not the inner div\n const scrollableElement = this.el;\n\n // Check if content is actually scrollable\n const isContentScrollable = scrollableElement.scrollHeight > scrollableElement.clientHeight;\n\n if (!isContentScrollable) {\n this.border = 'none';\n return;\n }\n\n // Determine border position based on scroll position\n const { scrollTop, scrollHeight, clientHeight } = scrollableElement;\n const scrollBottom = scrollTop + clientHeight;\n\n // More generous tolerance for scroll detection (3px instead of 1px)\n const tolerance = 3;\n const isAtTop = scrollTop <= tolerance;\n const isAtBottom = scrollBottom >= scrollHeight - tolerance;\n\n // Debug logging (can be removed later)\n console.log('Border Debug:', {\n scrollTop,\n scrollHeight,\n clientHeight,\n scrollBottom,\n isAtTop,\n isAtBottom,\n currentBorder: this.border\n });\n\n if (isAtTop && isAtBottom) {\n // Content fits exactly, no borders needed\n this.border = 'none';\n console.log('Content fits exactly, no borders needed');\n } else if (isAtTop && !isAtBottom) {\n // At top, show bottom border only\n this.border = 'bottom';\n console.log('At top, show bottom border only');\n } else if (!isAtTop && isAtBottom) {\n // At bottom, show top border only\n this.border = 'top';\n console.log('At bottom, show top border only');\n } else {\n // In middle, show both borders\n this.border = 'both';\n console.log('In middle, show both borders');\n }\n }\n\n /**\n * Calculates the max-height based on header and footer heights\n */\n private calculateMaxHeight() {\n // Find the modal element (parent of this component)\n const modalElement = this.el.closest('pds-modal');\n if (!modalElement) return;\n\n // Check if the parent modal is scrollable\n const isScrollable = modalElement.scrollable !== false;\n\n setTimeout(() => {\n // If modal is not scrollable, don't apply max-height constraints\n if (!isScrollable) {\n this.contentMaxHeight = 'none';\n const contentElement = this.el.querySelector('.pds-modal-content') as HTMLElement;\n if (contentElement) {\n contentElement.style.maxHeight = 'none';\n }\n return;\n }\n\n // Find header and footer elements\n const headerElement = modalElement.querySelector('pds-modal-header');\n const footerElement = modalElement.querySelector('pds-modal-footer');\n\n // Get header and footer heights\n const headerHeight = headerElement ? headerElement.offsetHeight : 0;\n const footerHeight = footerElement ? footerElement.offsetHeight : 0;\n\n // Set the max-height as a calculation\n if (headerHeight > 0 || footerHeight > 0) {\n // Calculate the available height by subtracting:\n // 1. Header and footer heights\n // 2. Modal padding (48px)\n // 3. Additional space for modal positioning (6vh)\n // 4. Extra adjustment for perfect fit (50px)\n const viewportAdjustment = Math.round(window.innerHeight * 0.06); // 6vh approximation\n const totalReduction = headerHeight + footerHeight + 48 + viewportAdjustment + 50;\n\n // Set the content max height\n this.contentMaxHeight = `calc(100vh - ${totalReduction}px)`;\n\n // Apply the style directly to ensure it takes effect\n const contentElement = this.el.querySelector('.pds-modal-content') as HTMLElement;\n if (contentElement) {\n contentElement.style.maxHeight = this.contentMaxHeight;\n }\n } else {\n this.contentMaxHeight = 'none'; // Default fallback\n }\n\n // Update borders after height calculations with longer delay\n setTimeout(() => this.updateBorders(), 150);\n }, 100); // Delay to ensure DOM is fully rendered\n\n // Set up mutation observer if not already done\n if (!this.mutationObserver && modalElement) {\n this.mutationObserver = new MutationObserver(() => {\n this.calculateMaxHeight();\n });\n\n // Observe changes to the modal's children\n this.mutationObserver.observe(modalElement, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['style', 'class']\n });\n }\n }\n render() {\n // Only apply max-height style if it's not 'none'\n const styleObj = this.contentMaxHeight !== 'none' ? { maxHeight: this.contentMaxHeight } : {};\n\n return (\n <Host>\n <div\n class={{\n 'pds-modal-content': true,\n [`pds-modal-content--border-${this.border}`]: true\n }}\n style={styleObj}\n tabindex=\"-1\"\n >\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"pds-modal-content.js","sourceRoot":"","sources":["../../../../../src/components/pds-modal/pds-modal-content/pds-modal-content.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Host, Prop, Element, State } from '@stencil/core';\n\n@Component({\n tag: 'pds-modal-content',\n styleUrl: 'pds-modal-content.scss',\n})\nexport class PdsModalContent {\n\n @Element() el: HTMLPdsModalContentElement;\n\n /**\n * The border style for the content area. When not explicitly set, automatically determined based on scroll state.\n * @default 'none'\n */\n @Prop({ reflect: true }) border: 'none' | 'both' | 'top' | 'bottom' = 'none';\n\n @State() contentMaxHeight: string = 'none';\n\n /**\n * Tracks whether the border prop was explicitly set by the user\n */\n private userSetBorder = false;\n\n componentWillLoad() {\n // Check if border was explicitly set via attribute or property\n const borderAttr = this.el.getAttribute('border');\n const hasBorderAttribute = borderAttr !== null;\n\n // If border attribute exists or border prop is not the default, user set it\n this.userSetBorder = hasBorderAttribute || this.border !== 'none';\n }\n\n componentDidLoad() {\n this.calculateMaxHeight();\n\n // Set up resize listener\n window.addEventListener('resize', this.handleResize.bind(this));\n\n // Only set up scroll listener for border updates if borders are managed automatically\n if (!this.userSetBorder) {\n setTimeout(() => {\n // The scroll happens on the component element itself (this.el), not the inner div\n console.log('Setting up scroll listener on component element:', this.el);\n this.el.addEventListener('scroll', this.handleScroll.bind(this));\n // Initial border update after everything is set up\n setTimeout(() => this.updateBorders(), 100);\n }, 100);\n }\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.handleResize.bind(this));\n\n // Clean up scroll listener only if it was set up\n if (!this.userSetBorder) {\n this.el.removeEventListener('scroll', this.handleScroll.bind(this));\n }\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n }\n\n /**\n * Handle scroll events\n */\n private handleScroll() {\n console.log('Scroll event fired!');\n this.updateBorders();\n }\n\n /**\n * Handle resize events\n */\n private handleResize() {\n this.calculateMaxHeight();\n // Update borders after resize as content scrollability might change\n setTimeout(() => this.updateBorders(), 50);\n }\n\n /**\n * Calculates the max-height based on header and footer heights\n */\n private mutationObserver: MutationObserver;\n\n /**\n * Updates border visibility based on scroll state (only if not user-defined)\n */\n private updateBorders() {\n // If user explicitly set a border value, don't override it\n if (this.userSetBorder) {\n return;\n }\n\n // Find the modal element (parent of this component)\n const modalElement = this.el.closest('pds-modal');\n if (!modalElement) return;\n\n // Only apply border logic if modal is scrollable\n const isModalScrollable = modalElement.scrollable !== false;\n if (!isModalScrollable) {\n this.border = 'none';\n return;\n }\n\n // The scrollable element is the component itself (this.el), not the inner div\n const scrollableElement = this.el;\n\n // Check if content is actually scrollable\n const isContentScrollable = scrollableElement.scrollHeight > scrollableElement.clientHeight;\n\n if (!isContentScrollable) {\n this.border = 'none';\n return;\n }\n\n // Determine border position based on scroll position\n const { scrollTop, scrollHeight, clientHeight } = scrollableElement;\n const scrollBottom = scrollTop + clientHeight;\n\n // More generous tolerance for scroll detection (3px instead of 1px)\n const tolerance = 3;\n const isAtTop = scrollTop <= tolerance;\n const isAtBottom = scrollBottom >= scrollHeight - tolerance;\n\n // Debug logging (can be removed later)\n console.log('Border Debug:', {\n scrollTop,\n scrollHeight,\n clientHeight,\n scrollBottom,\n isAtTop,\n isAtBottom,\n currentBorder: this.border\n });\n\n if (isAtTop && isAtBottom) {\n // Content fits exactly, no borders needed\n this.border = 'none';\n console.log('Content fits exactly, no borders needed');\n } else if (isAtTop && !isAtBottom) {\n // At top, show bottom border only\n this.border = 'bottom';\n console.log('At top, show bottom border only');\n } else if (!isAtTop && isAtBottom) {\n // At bottom, show top border only\n this.border = 'top';\n console.log('At bottom, show top border only');\n } else {\n // In middle, show both borders\n this.border = 'both';\n console.log('In middle, show both borders');\n }\n }\n\n /**\n * Calculates the max-height based on header and footer heights\n */\n private calculateMaxHeight() {\n // Find the modal element (parent of this component)\n const modalElement = this.el.closest('pds-modal');\n if (!modalElement) return;\n\n // Check if the parent modal is scrollable\n const isScrollable = modalElement.scrollable !== false;\n\n setTimeout(() => {\n // If modal is not scrollable, don't apply max-height constraints\n if (!isScrollable) {\n this.contentMaxHeight = 'none';\n const contentElement = this.el.querySelector('.pds-modal-content') as HTMLElement;\n if (contentElement) {\n contentElement.style.maxHeight = 'none';\n }\n return;\n }\n\n // Find header and footer elements\n const headerElement = modalElement.querySelector('pds-modal-header');\n const footerElement = modalElement.querySelector('pds-modal-footer');\n\n // Get header and footer heights\n const headerHeight = headerElement ? headerElement.offsetHeight : 0;\n const footerHeight = footerElement ? footerElement.offsetHeight : 0;\n\n // Set the max-height as a calculation\n if (headerHeight > 0 || footerHeight > 0) {\n // Calculate the available height by subtracting:\n // 1. Header and footer heights\n // 2. Modal padding (48px)\n // 3. Additional space for modal positioning (6vh)\n // 4. Extra adjustment for perfect fit (50px)\n const viewportAdjustment = Math.round(window.innerHeight * 0.06); // 6vh approximation\n const totalReduction = headerHeight + footerHeight + 48 + viewportAdjustment + 50;\n\n // Set the content max height\n this.contentMaxHeight = `calc(100vh - ${totalReduction}px)`;\n\n // Apply the style directly to ensure it takes effect\n const contentElement = this.el.querySelector('.pds-modal-content') as HTMLElement;\n if (contentElement) {\n contentElement.style.maxHeight = this.contentMaxHeight;\n }\n } else {\n this.contentMaxHeight = 'none'; // Default fallback\n }\n\n // Update borders after height calculations with longer delay\n setTimeout(() => this.updateBorders(), 150);\n }, 100); // Delay to ensure DOM is fully rendered\n\n // Set up mutation observer if not already done\n if (!this.mutationObserver && modalElement) {\n this.mutationObserver = new MutationObserver(() => {\n this.calculateMaxHeight();\n });\n\n // Observe changes to the modal's children\n this.mutationObserver.observe(modalElement, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['style', 'class']\n });\n }\n }\n render() {\n // Only apply max-height style if it's not 'none'\n const styleObj = this.contentMaxHeight !== 'none' ? { maxHeight: this.contentMaxHeight } : {};\n\n return (\n <Host>\n <div\n class={{\n 'pds-modal-content': true,\n [`pds-modal-content--border-${this.border}`]: true\n }}\n style={styleObj}\n tabindex=\"-1\"\n >\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"pds-modal-footer.js","sourceRoot":"","sources":["../../../../src/components/pds-modal/pds-modal-footer/pds-modal-footer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAO7C,MAAM,OAAO,cAAc;IACzB,MAAM;QACJ,OAAO,CACL,+DAAQ,KAAK,EAAC,mBAAmB;YAC/B,8DAAa,CACN,CACV,CAAC;IACJ,CAAC;;;;;;;;CACF","sourcesContent":["import { Component, h } from '@stencil/core';\n\n@Component({\n tag: 'pds-modal-footer',\n styleUrl: 'pds-modal-footer.scss',\n shadow: false,\n})\nexport class PdsModalFooter {\n render() {\n return (\n <footer class=\"pds-modal__footer\">\n <slot></slot>\n </footer>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"pds-modal-footer.js","sourceRoot":"","sources":["../../../../../src/components/pds-modal/pds-modal-footer/pds-modal-footer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAO7C,MAAM,OAAO,cAAc;IACzB,MAAM;QACJ,OAAO,CACL,+DAAQ,KAAK,EAAC,mBAAmB;YAC/B,8DAAa,CACN,CACV,CAAC;IACJ,CAAC;;;;;;;;CACF","sourcesContent":["import { Component, h } from '@stencil/core';\n\n@Component({\n tag: 'pds-modal-footer',\n styleUrl: 'pds-modal-footer.scss',\n shadow: false,\n})\nexport class PdsModalFooter {\n render() {\n return (\n <footer class=\"pds-modal__footer\">\n <slot></slot>\n </footer>\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"pds-modal-header.js","sourceRoot":"","sources":["../../../../src/components/pds-modal/pds-modal-header/pds-modal-header.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAO7C,MAAM,OAAO,cAAc;IACzB,MAAM;QACJ,OAAO,CACL,+DAAQ,KAAK,EAAC,mBAAmB;YAC/B,8DAAa,CACN,CACV,CAAC;IACJ,CAAC;;;;;;;;CACF","sourcesContent":["import { Component, h } from '@stencil/core';\n\n@Component({\n tag: 'pds-modal-header',\n styleUrl: 'pds-modal-header.scss',\n shadow: false,\n})\nexport class PdsModalHeader {\n render() {\n return (\n <header class=\"pds-modal__header\">\n <slot></slot>\n </header>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"pds-modal-header.js","sourceRoot":"","sources":["../../../../../src/components/pds-modal/pds-modal-header/pds-modal-header.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAO7C,MAAM,OAAO,cAAc;IACzB,MAAM;QACJ,OAAO,CACL,+DAAQ,KAAK,EAAC,mBAAmB;YAC/B,8DAAa,CACN,CACV,CAAC;IACJ,CAAC;;;;;;;;CACF","sourcesContent":["import { Component, h } from '@stencil/core';\n\n@Component({\n tag: 'pds-modal-header',\n styleUrl: 'pds-modal-header.scss',\n shadow: false,\n})\nexport class PdsModalHeader {\n render() {\n return (\n <header class=\"pds-modal__header\">\n <slot></slot>\n </header>\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"pds-modal.js","sourceRoot":"","sources":["../../../src/components/pds-modal/pds-modal.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core';\n\n@Component({\n tag: 'pds-modal',\n styleUrl: 'pds-modal.scss',\n shadow: false\n})\nexport class PdsModal {\n private modalRef: HTMLDialogElement;\n private previousActiveElement: HTMLElement;\n private focusableElements: HTMLElement[] = [];\n\n @Element() el: HTMLPdsModalElement;\n\n /**\n * Whether the modal can be dismissed by clicking the backdrop\n * @default true\n */\n @Prop() backdropDismiss = true;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Whether the modal is open\n * @default false\n */\n @Prop({ mutable: true }) open = false;\n\n /**\n * The size of the modal\n * @default 'md'\n */\n @Prop() size: 'sm' | 'md' | 'lg' | 'fullscreen' = 'md';\n\n /**\n * Whether the modal content should be scrollable\n * @default true\n */\n @Prop() scrollable = true;\n\n /**\n * Emitted when the modal is opened\n */\n @Event() pdsModalOpen: EventEmitter<void>;\n\n /**\n * Emitted when the modal is closed\n */\n @Event() pdsModalClose: EventEmitter<void>;\n\n /**\n * Stores the list of focusable elements in the modal\n */\n @State() focusableElementsArray: HTMLElement[] = [];\n\n componentDidLoad() {\n this.modalRef = this.el.querySelector('.pds-modal__backdrop') as HTMLDialogElement;\n // Add keyboard event listener\n document.addEventListener('keydown', this.handleKeyDown);\n }\n\n disconnectedCallback() {\n // Clean up event listener\n document.removeEventListener('keydown', this.handleKeyDown);\n }\n\n @Watch('open')\n handleOpenChange(newValue: boolean) {\n if (newValue) {\n this.showModal();\n } else {\n this.hideModal();\n }\n }\n\n /**\n * Updates the list of focusable elements in the modal\n */\n private updateFocusableElements() {\n if (!this.modalRef) return;\n\n // Get all focusable elements within the modal\n const selector = [\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n 'pds-button:not([disabled])',\n 'pds-link:not([disabled])',\n 'pds-input:not([disabled])',\n 'pds-checkbox:not([disabled])',\n 'pds-radio:not([disabled])',\n 'pds-switch:not([disabled])',\n 'pds-select:not([disabled])',\n ].join(',');\n\n this.focusableElements = Array.from(\n this.modalRef.querySelectorAll(selector)\n ) as HTMLElement[];\n\n // Filter out elements with display: none or visibility: hidden\n this.focusableElements = this.focusableElements.filter(el => {\n const style = window.getComputedStyle(el);\n return style.display !== 'none' && style.visibility !== 'hidden';\n });\n }\n\n /**\n * Sets focus to the first focusable element in the modal\n */\n private setInitialFocus() {\n if (this.focusableElements.length === 0) return;\n\n // Focus the first focusable element\n const firstElement = this.focusableElements[0];\n\n // For web components, we need to ensure they're properly focused\n this.focusElement(firstElement);\n }\n\n /**\n * Helper method to focus an element, with special handling for web components\n */\n private focusElement(element: HTMLElement) {\n if (!element) return;\n\n try {\n // Try standard focus first\n element.focus();\n\n // Check if focus worked\n setTimeout(() => {\n if (document.activeElement !== element) {\n // For web components, try to find a focusable element inside\n if (element.shadowRoot) {\n const focusableInShadow = element.shadowRoot.querySelector(\n 'button, [tabindex], input, a[href]'\n ) as HTMLElement;\n\n if (focusableInShadow) {\n focusableInShadow.focus();\n }\n }\n }\n }, 0);\n } catch (error) {\n console.error('Error focusing element:', error);\n }\n }\n\n /**\n * Opens the modal\n */\n @Method()\n async showModal() {\n if (this.modalRef) {\n try {\n // Store the currently focused element to restore focus when modal closes\n this.previousActiveElement = document.activeElement as HTMLElement;\n\n // Use native dialog showModal method which makes the rest of the page inert\n this.modalRef.showModal();\n this.open = true;\n\n // Update focusable elements and set initial focus\n // Using a longer timeout to ensure all components are fully rendered\n setTimeout(() => {\n this.updateFocusableElements();\n this.setInitialFocus();\n this.pdsModalOpen.emit();\n }, 100);\n } catch (error) {\n console.error('Failed to show modal:', error);\n }\n }\n }\n\n /**\n * Closes the modal\n */\n @Method()\n async hideModal() {\n if (this.modalRef) {\n try {\n this.modalRef.close();\n this.open = false;\n\n // Restore focus to the element that was focused before the modal was opened\n if (this.previousActiveElement && typeof this.previousActiveElement.focus === 'function') {\n this.previousActiveElement.focus();\n }\n\n this.pdsModalClose.emit();\n } catch (error) {\n console.error('Failed to hide modal:', error);\n }\n }\n }\n\n private handleBackdropClick = (e: MouseEvent) => {\n if (!this.backdropDismiss || !this.open) return;\n\n if ((e.target as HTMLElement).classList.contains('pds-modal__backdrop')) {\n e.stopPropagation();\n\n // Only close if this is the innermost modal\n if (this.isInnermostModal()) {\n this.hideModal();\n }\n }\n };\n\n /**\n * Gets the z-index of a modal's backdrop element\n */\n private getBackdropZIndex(modal: Element): number {\n const backdrop = modal.querySelector('.pds-modal__backdrop');\n return backdrop ? parseInt(getComputedStyle(backdrop).zIndex, 10) : -1;\n }\n\n /**\n * Checks if this modal is the innermost (highest z-index) modal\n */\n private isInnermostModal(): boolean {\n // Find all open modals\n const openModals = Array.from(document.querySelectorAll('pds-modal')).filter(\n modal => modal.open\n );\n\n if (openModals.length === 0) return false;\n\n // Get this modal's backdrop element\n const thisBackdrop = this.el.querySelector('.pds-modal__backdrop');\n if (!thisBackdrop) return false;\n\n // Get computed z-index of all open modal backdrops\n const modalZIndexes = openModals.map(modal => this.getBackdropZIndex(modal));\n\n // Get the highest z-index\n const maxZIndex = Math.max(...modalZIndexes);\n\n // Check if this modal's backdrop has the highest z-index\n const thisZIndex = this.getBackdropZIndex(this.el);\n return thisZIndex === maxZIndex;\n }\n\n private handleKeyDown = (e: KeyboardEvent) => {\n // If the modal is not open, don't handle any keyboard events\n if (!this.open) return;\n\n // Handle Escape key to close the modal\n if (e.key === 'Escape') {\n // Only close if this is the innermost modal\n if (this.isInnermostModal()) {\n e.preventDefault();\n this.hideModal();\n }\n return;\n }\n\n // Handle Tab key for focus trapping\n if (e.key === 'Tab') {\n // If there are no focusable elements, do nothing\n if (this.focusableElements.length === 0) return;\n\n // Get the first and last focusable elements\n const firstFocusableElement = this.focusableElements[0];\n const lastFocusableElement = this.focusableElements[this.focusableElements.length - 1];\n\n // Get the current active element\n const activeElement = document.activeElement;\n\n // Check if we need to wrap focus\n const isFirstElement = activeElement === firstFocusableElement ||\n firstFocusableElement.contains(activeElement as Node);\n\n const isLastElement = activeElement === lastFocusableElement ||\n lastFocusableElement.contains(activeElement as Node);\n\n // If shift + tab is pressed and focus is on the first element, move to the last element\n if (e.shiftKey && isFirstElement) {\n e.preventDefault();\n this.focusElement(lastFocusableElement);\n }\n // If tab is pressed and focus is on the last element, move to the first element\n else if (!e.shiftKey && isLastElement) {\n e.preventDefault();\n this.focusElement(firstFocusableElement);\n }\n }\n };\n\n render() {\n return (\n <dialog\n class={{\n 'pds-modal__backdrop': true,\n 'open': this.open\n }}\n aria-modal=\"true\"\n aria-labelledby={`${this.componentId}-heading`}\n onClick={this.handleBackdropClick}\n >\n <div\n class={{\n 'pds-modal': true,\n [`pds-modal--${this.size}`]: true,\n 'pds-modal--scrollable': this.scrollable\n }}\n >\n <slot></slot>\n </div>\n </dialog>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"pds-modal.js","sourceRoot":"","sources":["../../../../src/components/pds-modal/pds-modal.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core';\n\n@Component({\n tag: 'pds-modal',\n styleUrl: 'pds-modal.scss',\n shadow: false\n})\nexport class PdsModal {\n private modalRef: HTMLDialogElement;\n private previousActiveElement: HTMLElement;\n private focusableElements: HTMLElement[] = [];\n\n @Element() el: HTMLPdsModalElement;\n\n /**\n * Whether the modal can be dismissed by clicking the backdrop\n * @default true\n */\n @Prop() backdropDismiss = true;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Whether the modal is open\n * @default false\n */\n @Prop({ mutable: true }) open = false;\n\n /**\n * The size of the modal\n * @default 'md'\n */\n @Prop() size: 'sm' | 'md' | 'lg' | 'fullscreen' = 'md';\n\n /**\n * Whether the modal content should be scrollable\n * @default true\n */\n @Prop() scrollable = true;\n\n /**\n * Emitted when the modal is opened\n */\n @Event() pdsModalOpen: EventEmitter<void>;\n\n /**\n * Emitted when the modal is closed\n */\n @Event() pdsModalClose: EventEmitter<void>;\n\n /**\n * Stores the list of focusable elements in the modal\n */\n @State() focusableElementsArray: HTMLElement[] = [];\n\n componentDidLoad() {\n this.modalRef = this.el.querySelector('.pds-modal__backdrop') as HTMLDialogElement;\n // Add keyboard event listener\n document.addEventListener('keydown', this.handleKeyDown);\n }\n\n disconnectedCallback() {\n // Clean up event listener\n document.removeEventListener('keydown', this.handleKeyDown);\n }\n\n @Watch('open')\n handleOpenChange(newValue: boolean) {\n if (newValue) {\n this.showModal();\n } else {\n this.hideModal();\n }\n }\n\n /**\n * Updates the list of focusable elements in the modal\n */\n private updateFocusableElements() {\n if (!this.modalRef) return;\n\n // Get all focusable elements within the modal\n const selector = [\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n 'pds-button:not([disabled])',\n 'pds-link:not([disabled])',\n 'pds-input:not([disabled])',\n 'pds-checkbox:not([disabled])',\n 'pds-radio:not([disabled])',\n 'pds-switch:not([disabled])',\n 'pds-select:not([disabled])',\n ].join(',');\n\n this.focusableElements = Array.from(\n this.modalRef.querySelectorAll(selector)\n ) as HTMLElement[];\n\n // Filter out elements with display: none or visibility: hidden\n this.focusableElements = this.focusableElements.filter(el => {\n const style = window.getComputedStyle(el);\n return style.display !== 'none' && style.visibility !== 'hidden';\n });\n }\n\n /**\n * Sets focus to the first focusable element in the modal\n */\n private setInitialFocus() {\n if (this.focusableElements.length === 0) return;\n\n // Focus the first focusable element\n const firstElement = this.focusableElements[0];\n\n // For web components, we need to ensure they're properly focused\n this.focusElement(firstElement);\n }\n\n /**\n * Helper method to focus an element, with special handling for web components\n */\n private focusElement(element: HTMLElement) {\n if (!element) return;\n\n try {\n // Try standard focus first\n element.focus();\n\n // Check if focus worked\n setTimeout(() => {\n if (document.activeElement !== element) {\n // For web components, try to find a focusable element inside\n if (element.shadowRoot) {\n const focusableInShadow = element.shadowRoot.querySelector(\n 'button, [tabindex], input, a[href]'\n ) as HTMLElement;\n\n if (focusableInShadow) {\n focusableInShadow.focus();\n }\n }\n }\n }, 0);\n } catch (error) {\n console.error('Error focusing element:', error);\n }\n }\n\n /**\n * Opens the modal\n */\n @Method()\n async showModal() {\n if (this.modalRef) {\n try {\n // Store the currently focused element to restore focus when modal closes\n this.previousActiveElement = document.activeElement as HTMLElement;\n\n // Use native dialog showModal method which makes the rest of the page inert\n this.modalRef.showModal();\n this.open = true;\n\n // Update focusable elements and set initial focus\n // Using a longer timeout to ensure all components are fully rendered\n setTimeout(() => {\n this.updateFocusableElements();\n this.setInitialFocus();\n this.pdsModalOpen.emit();\n }, 100);\n } catch (error) {\n console.error('Failed to show modal:', error);\n }\n }\n }\n\n /**\n * Closes the modal\n */\n @Method()\n async hideModal() {\n if (this.modalRef) {\n try {\n this.modalRef.close();\n this.open = false;\n\n // Restore focus to the element that was focused before the modal was opened\n if (this.previousActiveElement && typeof this.previousActiveElement.focus === 'function') {\n this.previousActiveElement.focus();\n }\n\n this.pdsModalClose.emit();\n } catch (error) {\n console.error('Failed to hide modal:', error);\n }\n }\n }\n\n private handleBackdropClick = (e: MouseEvent) => {\n if (!this.backdropDismiss || !this.open) return;\n\n if ((e.target as HTMLElement).classList.contains('pds-modal__backdrop')) {\n e.stopPropagation();\n\n // Only close if this is the innermost modal\n if (this.isInnermostModal()) {\n this.hideModal();\n }\n }\n };\n\n /**\n * Gets the z-index of a modal's backdrop element\n */\n private getBackdropZIndex(modal: Element): number {\n const backdrop = modal.querySelector('.pds-modal__backdrop');\n return backdrop ? parseInt(getComputedStyle(backdrop).zIndex, 10) : -1;\n }\n\n /**\n * Checks if this modal is the innermost (highest z-index) modal\n */\n private isInnermostModal(): boolean {\n // Find all open modals\n const openModals = Array.from(document.querySelectorAll('pds-modal')).filter(\n modal => modal.open\n );\n\n if (openModals.length === 0) return false;\n\n // Get this modal's backdrop element\n const thisBackdrop = this.el.querySelector('.pds-modal__backdrop');\n if (!thisBackdrop) return false;\n\n // Get computed z-index of all open modal backdrops\n const modalZIndexes = openModals.map(modal => this.getBackdropZIndex(modal));\n\n // Get the highest z-index\n const maxZIndex = Math.max(...modalZIndexes);\n\n // Check if this modal's backdrop has the highest z-index\n const thisZIndex = this.getBackdropZIndex(this.el);\n return thisZIndex === maxZIndex;\n }\n\n private handleKeyDown = (e: KeyboardEvent) => {\n // If the modal is not open, don't handle any keyboard events\n if (!this.open) return;\n\n // Handle Escape key to close the modal\n if (e.key === 'Escape') {\n // Only close if this is the innermost modal\n if (this.isInnermostModal()) {\n e.preventDefault();\n this.hideModal();\n }\n return;\n }\n\n // Handle Tab key for focus trapping\n if (e.key === 'Tab') {\n // If there are no focusable elements, do nothing\n if (this.focusableElements.length === 0) return;\n\n // Get the first and last focusable elements\n const firstFocusableElement = this.focusableElements[0];\n const lastFocusableElement = this.focusableElements[this.focusableElements.length - 1];\n\n // Get the current active element\n const activeElement = document.activeElement;\n\n // Check if we need to wrap focus\n const isFirstElement = activeElement === firstFocusableElement ||\n firstFocusableElement.contains(activeElement as Node);\n\n const isLastElement = activeElement === lastFocusableElement ||\n lastFocusableElement.contains(activeElement as Node);\n\n // If shift + tab is pressed and focus is on the first element, move to the last element\n if (e.shiftKey && isFirstElement) {\n e.preventDefault();\n this.focusElement(lastFocusableElement);\n }\n // If tab is pressed and focus is on the last element, move to the first element\n else if (!e.shiftKey && isLastElement) {\n e.preventDefault();\n this.focusElement(firstFocusableElement);\n }\n }\n };\n\n render() {\n return (\n <dialog\n class={{\n 'pds-modal__backdrop': true,\n 'open': this.open\n }}\n aria-modal=\"true\"\n aria-labelledby={`${this.componentId}-heading`}\n onClick={this.handleBackdropClick}\n >\n <div\n class={{\n 'pds-modal': true,\n [`pds-modal--${this.size}`]: true,\n 'pds-modal--scrollable': this.scrollable\n }}\n >\n <slot></slot>\n </div>\n </dialog>\n );\n }\n}\n"]}
@@ -1,11 +1,9 @@
1
1
  import { html } from 'lit';
2
- import { extractArgTypes } from '@pxtrn/storybook-addon-docs-stencil';
3
- import { withActions } from '@storybook/addon-actions/decorator';
2
+
4
3
 
5
4
  export default {
6
- argTypes: extractArgTypes('pds-modal'),
5
+
7
6
  component: 'pds-modal',
8
- decorators: [withActions],
9
7
  title: 'components/Modal',
10
8
  args: {
11
9
  backdropDismiss: true,
@@ -14,11 +12,7 @@ export default {
14
12
  scrollable: true,
15
13
  size: 'md',
16
14
  },
17
- parameters: {
18
- actions: {
19
- handles: ['pdsModalOpen', 'pdsModalClose'],
20
- }
21
- }
15
+ parameters: {}
22
16
  }
23
17
 
24
18
  const BaseTemplate = (args) => html`
@@ -1 +1 @@
1
- {"version":3,"file":"mock-pds-modal.js","sourceRoot":"","sources":["../../../../src/components/pds-modal/test/mock-pds-modal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAgB,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAWzF;;;GAGG;AAMH,MAAM,OAAO,YAAY;IALzB;QAaE;;WAEG;QACK,SAAI,GAAsC,IAAI,CAAC;QAEvD;;;WAGG;QACK,eAAU,GAAG,IAAI,CAAC;QAE1B;;WAEG;QACK,oBAAe,GAAG,IAAI,CAAC;QAE/B,+FAA+F;QAE/F;;WAEG;QACsB,SAAI,GAAG,KAAK,CAAC;KAkGvC;IA/EC;;OAEG;IAEH,KAAK,CAAC,SAAS;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IAEH,KAAK,CAAC,SAAS;QACb,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,iEAAiE;IACjE,mBAAmB,CAAC,KAAiB;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC;QAC/D,2EAA2E;QAC3E,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;YAC/D,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;YAClC,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,iEAAiE;IACjE,aAAa,CAAC,KAAoB;QAChC,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACjD,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,0DAA0D;IAC5D,CAAC;IAED,MAAM;QACJ,MAAM,YAAY,GAAG;YACnB,WAAW,EAAE,IAAI;YACjB,CAAC,cAAc,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;YACjC,uBAAuB,EAAE,IAAI,CAAC,UAAU;SACzC,CAAC;QAEF,MAAM,eAAe,GAAG;YACtB,qBAAqB,EAAE,IAAI;YAC3B,MAAM,EAAE,IAAI,CAAC,IAAI;SAClB,CAAC;QAEF,OAAO,CACL,4DAAK,KAAK,EAAE,eAAe;YACzB,4DACE,KAAK,EAAE,YAAY,EACnB,IAAI,EAAC,QAAQ,gBACF,MAAM,qBACA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,UAAU,CAAC,CAAC,CAAC,IAAI;gBAExE,4DAAK,KAAK,EAAC,mBAAmB;oBAC5B,6DAAM,IAAI,EAAC,QAAQ,GAAQ,CACvB;gBACN,4DAAK,KAAK,EAAC,mBAAmB;oBAC5B,8DAAa,CACT;gBACN,4DAAK,KAAK,EAAC,mBAAmB;oBAC5B,6DAAM,IAAI,EAAC,QAAQ,GAAQ,CACvB,CACF,CACF,CACP,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, Event, EventEmitter, Method, Element, h } from '@stencil/core';\n\n// Define the element interface for the mock component\ninterface HTMLMockPdsModalElement extends HTMLElement {\n open: boolean;\n showModal: () => Promise<void>;\n hideModal: () => Promise<void>;\n handleBackdropClick: (event: MouseEvent) => void;\n handleKeyDown: (event: KeyboardEvent) => void;\n}\n\n/**\n * Mock PdsModal component for testing purposes\n * This component mimics the real PdsModal but without using the Popover API\n */\n@Component({\n tag: 'mock-pds-modal',\n styleUrl: '../pds-modal.scss',\n shadow: false,\n})\nexport class MockPdsModal {\n @Element() el!: HTMLMockPdsModalElement;\n\n /**\n * The ID of the modal component\n */\n @Prop() componentId?: string;\n\n /**\n * The size of the modal\n */\n @Prop() size: 'sm' | 'md' | 'lg' | 'fullscreen' = 'md';\n\n /**\n * Whether the modal content should be scrollable\n * @default true\n */\n @Prop() scrollable = true;\n\n /**\n * Whether the modal can be dismissed by clicking the backdrop\n */\n @Prop() backdropDismiss = true;\n\n // Native dialog element always closes on Escape key press, so no closeOnEsc property is needed\n\n /**\n * Whether the modal is open\n */\n @Prop({ mutable: true }) open = false;\n\n // No need for modalRef in the mock implementation\n\n /**\n * Event emitted when the modal is opened\n */\n @Event() pdsModalOpen: EventEmitter<void>;\n\n /**\n * Event emitted when the modal is closed\n */\n @Event() pdsModalClose: EventEmitter<void>;\n\n /**\n * Event emitted when the backdrop is clicked\n */\n @Event() pdsModalBackdropClick: EventEmitter<void>;\n\n /**\n * Shows the modal\n */\n @Method()\n async showModal() {\n this.open = true;\n this.pdsModalOpen.emit();\n }\n\n /**\n * Hides the modal\n */\n @Method()\n async hideModal() {\n this.open = false;\n this.pdsModalClose.emit();\n }\n\n /**\n * Listen for click events on the backdrop\n */\n // Using direct method instead of @Listen to avoid ESLint warning\n handleBackdropClick(event: MouseEvent) {\n const backdrop = this.el.querySelector('.pds-modal__backdrop');\n // Check if the click was directly on the backdrop (not on a child element)\n if (event.target === backdrop && this.backdropDismiss === true) {\n this.pdsModalBackdropClick.emit();\n this.hideModal();\n }\n }\n\n /**\n * Listen for keydown events to handle Escape key\n * Native dialog element always closes on Escape key press\n */\n // Using direct method instead of @Listen to avoid ESLint warning\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape' && this.open === true) {\n this.hideModal();\n }\n }\n\n componentDidLoad() {\n // No need to do anything in componentDidLoad for the mock\n }\n\n render() {\n const modalClasses = {\n 'pds-modal': true,\n [`pds-modal--${this.size}`]: true,\n 'pds-modal--scrollable': this.scrollable\n };\n\n const backdropClasses = {\n 'pds-modal__backdrop': true,\n 'open': this.open,\n };\n\n return (\n <div class={backdropClasses}>\n <div\n class={modalClasses}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={this.componentId ? `${this.componentId}-heading` : null}\n >\n <div class=\"pds-modal__header\">\n <slot name=\"header\"></slot>\n </div>\n <div class=\"pds-modal-content\">\n <slot></slot>\n </div>\n <div class=\"pds-modal__footer\">\n <slot name=\"footer\"></slot>\n </div>\n </div>\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"mock-pds-modal.js","sourceRoot":"","sources":["../../../../../src/components/pds-modal/test/mock-pds-modal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAgB,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAWzF;;;GAGG;AAMH,MAAM,OAAO,YAAY;IALzB;QAaE;;WAEG;QACK,SAAI,GAAsC,IAAI,CAAC;QAEvD;;;WAGG;QACK,eAAU,GAAG,IAAI,CAAC;QAE1B;;WAEG;QACK,oBAAe,GAAG,IAAI,CAAC;QAE/B,+FAA+F;QAE/F;;WAEG;QACsB,SAAI,GAAG,KAAK,CAAC;KAkGvC;IA/EC;;OAEG;IAEH,KAAK,CAAC,SAAS;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IAEH,KAAK,CAAC,SAAS;QACb,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,iEAAiE;IACjE,mBAAmB,CAAC,KAAiB;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC;QAC/D,2EAA2E;QAC3E,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;YAC/D,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;YAClC,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,iEAAiE;IACjE,aAAa,CAAC,KAAoB;QAChC,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACjD,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,0DAA0D;IAC5D,CAAC;IAED,MAAM;QACJ,MAAM,YAAY,GAAG;YACnB,WAAW,EAAE,IAAI;YACjB,CAAC,cAAc,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;YACjC,uBAAuB,EAAE,IAAI,CAAC,UAAU;SACzC,CAAC;QAEF,MAAM,eAAe,GAAG;YACtB,qBAAqB,EAAE,IAAI;YAC3B,MAAM,EAAE,IAAI,CAAC,IAAI;SAClB,CAAC;QAEF,OAAO,CACL,4DAAK,KAAK,EAAE,eAAe;YACzB,4DACE,KAAK,EAAE,YAAY,EACnB,IAAI,EAAC,QAAQ,gBACF,MAAM,qBACA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,UAAU,CAAC,CAAC,CAAC,IAAI;gBAExE,4DAAK,KAAK,EAAC,mBAAmB;oBAC5B,6DAAM,IAAI,EAAC,QAAQ,GAAQ,CACvB;gBACN,4DAAK,KAAK,EAAC,mBAAmB;oBAC5B,8DAAa,CACT;gBACN,4DAAK,KAAK,EAAC,mBAAmB;oBAC5B,6DAAM,IAAI,EAAC,QAAQ,GAAQ,CACvB,CACF,CACF,CACP,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, Event, EventEmitter, Method, Element, h } from '@stencil/core';\n\n// Define the element interface for the mock component\ninterface HTMLMockPdsModalElement extends HTMLElement {\n open: boolean;\n showModal: () => Promise<void>;\n hideModal: () => Promise<void>;\n handleBackdropClick: (event: MouseEvent) => void;\n handleKeyDown: (event: KeyboardEvent) => void;\n}\n\n/**\n * Mock PdsModal component for testing purposes\n * This component mimics the real PdsModal but without using the Popover API\n */\n@Component({\n tag: 'mock-pds-modal',\n styleUrl: '../pds-modal.scss',\n shadow: false,\n})\nexport class MockPdsModal {\n @Element() el!: HTMLMockPdsModalElement;\n\n /**\n * The ID of the modal component\n */\n @Prop() componentId?: string;\n\n /**\n * The size of the modal\n */\n @Prop() size: 'sm' | 'md' | 'lg' | 'fullscreen' = 'md';\n\n /**\n * Whether the modal content should be scrollable\n * @default true\n */\n @Prop() scrollable = true;\n\n /**\n * Whether the modal can be dismissed by clicking the backdrop\n */\n @Prop() backdropDismiss = true;\n\n // Native dialog element always closes on Escape key press, so no closeOnEsc property is needed\n\n /**\n * Whether the modal is open\n */\n @Prop({ mutable: true }) open = false;\n\n // No need for modalRef in the mock implementation\n\n /**\n * Event emitted when the modal is opened\n */\n @Event() pdsModalOpen: EventEmitter<void>;\n\n /**\n * Event emitted when the modal is closed\n */\n @Event() pdsModalClose: EventEmitter<void>;\n\n /**\n * Event emitted when the backdrop is clicked\n */\n @Event() pdsModalBackdropClick: EventEmitter<void>;\n\n /**\n * Shows the modal\n */\n @Method()\n async showModal() {\n this.open = true;\n this.pdsModalOpen.emit();\n }\n\n /**\n * Hides the modal\n */\n @Method()\n async hideModal() {\n this.open = false;\n this.pdsModalClose.emit();\n }\n\n /**\n * Listen for click events on the backdrop\n */\n // Using direct method instead of @Listen to avoid ESLint warning\n handleBackdropClick(event: MouseEvent) {\n const backdrop = this.el.querySelector('.pds-modal__backdrop');\n // Check if the click was directly on the backdrop (not on a child element)\n if (event.target === backdrop && this.backdropDismiss === true) {\n this.pdsModalBackdropClick.emit();\n this.hideModal();\n }\n }\n\n /**\n * Listen for keydown events to handle Escape key\n * Native dialog element always closes on Escape key press\n */\n // Using direct method instead of @Listen to avoid ESLint warning\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape' && this.open === true) {\n this.hideModal();\n }\n }\n\n componentDidLoad() {\n // No need to do anything in componentDidLoad for the mock\n }\n\n render() {\n const modalClasses = {\n 'pds-modal': true,\n [`pds-modal--${this.size}`]: true,\n 'pds-modal--scrollable': this.scrollable\n };\n\n const backdropClasses = {\n 'pds-modal__backdrop': true,\n 'open': this.open,\n };\n\n return (\n <div class={backdropClasses}>\n <div\n class={modalClasses}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={this.componentId ? `${this.componentId}-heading` : null}\n >\n <div class=\"pds-modal__header\">\n <slot name=\"header\"></slot>\n </div>\n <div class=\"pds-modal-content\">\n <slot></slot>\n </div>\n <div class=\"pds-modal__footer\">\n <slot name=\"footer\"></slot>\n </div>\n </div>\n </div>\n );\n }\n}\n"]}
@@ -201,7 +201,7 @@ export class PdsPopover {
201
201
  this.addPortalFocusStyles();
202
202
  }
203
203
  /**
204
- * Adds Pine design system focus styles to the portal element
204
+ * Adds Pine design system focus styles and dark mode border to the portal element
205
205
  * Uses CSS variables from Pine's design tokens
206
206
  */
207
207
  addPortalFocusStyles() {
@@ -212,7 +212,7 @@ export class PdsPopover {
212
212
  const existingStyle = document.querySelector(`style[data-pds-popover-focus="${portalId}"]`);
213
213
  if (existingStyle)
214
214
  return;
215
- // Create style element with Pine's focus ring styles
215
+ // Create style element with Pine's focus ring styles and dark mode border
216
216
  const styleEl = document.createElement('style');
217
217
  styleEl.setAttribute('data-pds-popover-focus', portalId);
218
218
  styleEl.textContent = `
@@ -223,6 +223,9 @@ export class PdsPopover {
223
223
  #${portalId}:focus:not(:focus-visible) {
224
224
  outline: none;
225
225
  }
226
+ [data-theme="dark"] #${portalId} {
227
+ border: var(--pine-border);
228
+ }
226
229
  `;
227
230
  document.head.appendChild(styleEl);
228
231
  }
@@ -551,7 +554,7 @@ export class PdsPopover {
551
554
  }, 16); // ~1 frame at 60fps
552
555
  }
553
556
  render() {
554
- return (h(Host, { key: 'f77eaf0e122faeb6cd3e6bd55313498afb0039b4', id: this.componentId }, h("span", { key: '6a44717df3ed98a600756a01528cb1139478d0d3', class: "pds-popover__trigger-wrapper" }, h("slot", { key: '7c535ad2329988da7166f4fa669266fe31ff3dfa', name: "trigger", onSlotchange: this.handleTriggerSlotChange })), h("div", { key: 'bd387d0e42d90f7339645c47f53b73bc0e345b7d', class: "pds-popover__content-slot-wrapper" }, h("slot", { key: '98bd73611af2ecf0facdc77949a68db2106a4f12', onSlotchange: this.handleContentSlotChange }))));
557
+ return (h(Host, { key: 'b1484c81cc8e6101f58fa03cf79828662416e984', id: this.componentId }, h("span", { key: '19b65573bbe0ad094ef20462c78c0ab92d3721b3', class: "pds-popover__trigger-wrapper" }, h("slot", { key: '11ee8ad1af28541067aad875ddbe82f8af362154', name: "trigger", onSlotchange: this.handleTriggerSlotChange })), h("div", { key: 'e909a772c03c28930f273e46be01b1f765e5a160', class: "pds-popover__content-slot-wrapper" }, h("slot", { key: '53684906fb81c13ebfbeacae66c2d34ffb009205', onSlotchange: this.handleContentSlotChange }))));
555
558
  }
556
559
  static get is() { return "pds-popover"; }
557
560
  static get encapsulation() { return "shadow"; }