@pine-ds/core 3.11.0 → 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 (922) 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/mock-pds-modal.js +1 -1
  6. package/components/mock-pds-modal.js.map +1 -1
  7. package/components/pds-accordion.js +1 -1
  8. package/components/pds-accordion.js.map +1 -1
  9. package/components/pds-alert.js +2 -2
  10. package/components/pds-alert.js.map +1 -1
  11. package/components/pds-avatar.js +1 -1
  12. package/components/pds-avatar.js.map +1 -1
  13. package/components/pds-box2.js +1 -1
  14. package/components/pds-box2.js.map +1 -1
  15. package/components/pds-button2.js +1 -1
  16. package/components/pds-button2.js.map +1 -1
  17. package/components/pds-checkbox2.js +2 -2
  18. package/components/pds-checkbox2.js.map +1 -1
  19. package/components/pds-chip2.js +2 -2
  20. package/components/pds-chip2.js.map +1 -1
  21. package/components/pds-combobox.js +1 -1
  22. package/components/pds-combobox.js.map +1 -1
  23. package/components/pds-copytext.js +2 -2
  24. package/components/pds-copytext.js.map +1 -1
  25. package/components/pds-dropdown-menu-item.js +1 -1
  26. package/components/pds-dropdown-menu-item.js.map +1 -1
  27. package/components/pds-dropdown-menu-separator.js +1 -1
  28. package/components/pds-dropdown-menu-separator.js.map +1 -1
  29. package/components/pds-dropdown-menu.js +30 -11
  30. package/components/pds-dropdown-menu.js.map +1 -1
  31. package/components/pds-filter.js +1 -1
  32. package/components/pds-filter.js.map +1 -1
  33. package/components/pds-input.js +2 -2
  34. package/components/pds-input.js.map +1 -1
  35. package/components/pds-link2.js +1 -1
  36. package/components/pds-link2.js.map +1 -1
  37. package/components/pds-loader2.js +1 -1
  38. package/components/pds-loader2.js.map +1 -1
  39. package/components/pds-modal-content.js +1 -1
  40. package/components/pds-modal-content.js.map +1 -1
  41. package/components/pds-popover.js +6 -3
  42. package/components/pds-popover.js.map +1 -1
  43. package/components/pds-progress.js +1 -1
  44. package/components/pds-progress.js.map +1 -1
  45. package/components/pds-radio-group.d.ts +11 -0
  46. package/components/pds-radio-group.js +211 -0
  47. package/components/pds-radio-group.js.map +1 -0
  48. package/components/pds-radio.js +10 -5
  49. package/components/pds-radio.js.map +1 -1
  50. package/components/pds-row.js +1 -1
  51. package/components/pds-select.js +3 -3
  52. package/components/pds-select.js.map +1 -1
  53. package/components/pds-sortable-item.js +2 -2
  54. package/components/pds-sortable.js +1 -1
  55. package/components/pds-sortable.js.map +1 -1
  56. package/components/pds-switch.js +5 -5
  57. package/components/pds-switch.js.map +1 -1
  58. package/components/pds-tab.js +4 -4
  59. package/components/pds-tab.js.map +1 -1
  60. package/components/pds-table-body.js +1 -1
  61. package/components/pds-table-cell2.js +2 -2
  62. package/components/pds-table-head-cell2.js +3 -3
  63. package/components/pds-table-head-cell2.js.map +1 -1
  64. package/components/pds-table-head.js +2 -2
  65. package/components/pds-table-head.js.map +1 -1
  66. package/components/pds-table-row.js +2 -2
  67. package/components/pds-table-row.js.map +1 -1
  68. package/components/pds-table.js +1 -1
  69. package/components/pds-table.js.map +1 -1
  70. package/components/pds-tabpanel.js +1 -1
  71. package/components/pds-tabs.js +2 -2
  72. package/components/pds-tabs.js.map +1 -1
  73. package/components/pds-text2.js +2 -2
  74. package/components/pds-text2.js.map +1 -1
  75. package/components/pds-textarea.js +6 -6
  76. package/components/pds-textarea.js.map +1 -1
  77. package/components/pds-toast.js +3 -3
  78. package/components/pds-tooltip.js +2 -2
  79. package/dist/cjs/{index-2Lf0E1JO.js → index-CI0W8NCh.js} +3 -3
  80. package/dist/cjs/index-CI0W8NCh.js.map +1 -0
  81. package/dist/cjs/loader.cjs.js +2 -2
  82. package/dist/cjs/mock-pds-modal.cjs.entry.js +2 -2
  83. package/dist/cjs/mock-pds-modal.entry.cjs.js.map +1 -1
  84. package/dist/cjs/pds-accordion.cjs.entry.js +2 -2
  85. package/dist/cjs/pds-accordion.entry.cjs.js.map +1 -1
  86. package/dist/cjs/pds-alert.cjs.entry.js +3 -3
  87. package/dist/cjs/pds-alert.entry.cjs.js.map +1 -1
  88. package/dist/cjs/pds-avatar.cjs.entry.js +2 -2
  89. package/dist/cjs/pds-avatar.entry.cjs.js.map +1 -1
  90. package/dist/cjs/pds-box.cjs.entry.js +2 -2
  91. package/dist/cjs/pds-box.entry.cjs.js.map +1 -1
  92. package/dist/cjs/pds-button.cjs.entry.js +2 -2
  93. package/dist/cjs/pds-button.entry.cjs.js.map +1 -1
  94. package/dist/cjs/pds-checkbox.cjs.entry.js +2 -2
  95. package/dist/cjs/pds-checkbox.entry.cjs.js.map +1 -1
  96. package/dist/cjs/pds-chip.cjs.entry.js +3 -3
  97. package/dist/cjs/pds-chip.entry.cjs.js.map +1 -1
  98. package/dist/cjs/pds-combobox.cjs.entry.js +2 -2
  99. package/dist/cjs/pds-combobox.entry.cjs.js.map +1 -1
  100. package/dist/cjs/pds-copytext.cjs.entry.js +3 -3
  101. package/dist/cjs/pds-copytext.entry.cjs.js.map +1 -1
  102. package/dist/cjs/pds-divider.cjs.entry.js +1 -1
  103. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +2 -2
  104. package/dist/cjs/pds-dropdown-menu-item.entry.cjs.js.map +1 -1
  105. package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +2 -2
  106. package/dist/cjs/pds-dropdown-menu-separator.entry.cjs.js.map +1 -1
  107. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +30 -11
  108. package/dist/cjs/pds-dropdown-menu.entry.cjs.js.map +1 -1
  109. package/dist/cjs/pds-filter.cjs.entry.js +2 -2
  110. package/dist/cjs/pds-filter.entry.cjs.js.map +1 -1
  111. package/dist/cjs/pds-filters.cjs.entry.js +1 -1
  112. package/dist/cjs/pds-icon.cjs.entry.js +1 -1
  113. package/dist/cjs/pds-image.cjs.entry.js +1 -1
  114. package/dist/cjs/pds-input.cjs.entry.js +2 -2
  115. package/dist/cjs/pds-input.entry.cjs.js.map +1 -1
  116. package/dist/cjs/pds-link.cjs.entry.js +2 -2
  117. package/dist/cjs/pds-link.entry.cjs.js.map +1 -1
  118. package/dist/cjs/pds-loader.cjs.entry.js +2 -2
  119. package/dist/cjs/pds-loader.entry.cjs.js.map +1 -1
  120. package/dist/cjs/pds-modal-content.cjs.entry.js +2 -2
  121. package/dist/cjs/pds-modal-content.entry.cjs.js.map +1 -1
  122. package/dist/cjs/pds-modal-footer.cjs.entry.js +1 -1
  123. package/dist/cjs/pds-modal-header.cjs.entry.js +1 -1
  124. package/dist/cjs/pds-modal.cjs.entry.js +1 -1
  125. package/dist/cjs/pds-popover.cjs.entry.js +7 -4
  126. package/dist/cjs/pds-popover.entry.cjs.js.map +1 -1
  127. package/dist/cjs/pds-progress.cjs.entry.js +2 -2
  128. package/dist/cjs/pds-progress.entry.cjs.js.map +1 -1
  129. package/dist/cjs/pds-property.cjs.entry.js +1 -1
  130. package/dist/cjs/pds-radio-group.cjs.entry.js +170 -0
  131. package/dist/cjs/pds-radio-group.entry.cjs.js.map +1 -0
  132. package/dist/cjs/pds-radio.cjs.entry.js +10 -5
  133. package/dist/cjs/pds-radio.entry.cjs.js.map +1 -1
  134. package/dist/cjs/pds-row.cjs.entry.js +2 -2
  135. package/dist/cjs/pds-select.cjs.entry.js +3 -3
  136. package/dist/cjs/pds-select.entry.cjs.js.map +1 -1
  137. package/dist/cjs/pds-sortable-item.cjs.entry.js +2 -2
  138. package/dist/cjs/pds-sortable.cjs.entry.js +2 -2
  139. package/dist/cjs/pds-sortable.entry.cjs.js.map +1 -1
  140. package/dist/cjs/pds-switch.cjs.entry.js +5 -5
  141. package/dist/cjs/pds-switch.entry.cjs.js.map +1 -1
  142. package/dist/cjs/pds-tab.cjs.entry.js +5 -5
  143. package/dist/cjs/pds-tab.entry.cjs.js.map +1 -1
  144. package/dist/cjs/pds-table-body.cjs.entry.js +2 -2
  145. package/dist/cjs/pds-table-cell.cjs.entry.js +3 -3
  146. package/dist/cjs/pds-table-head-cell.cjs.entry.js +4 -4
  147. package/dist/cjs/pds-table-head-cell.entry.cjs.js.map +1 -1
  148. package/dist/cjs/pds-table-head.cjs.entry.js +3 -3
  149. package/dist/cjs/pds-table-head.entry.cjs.js.map +1 -1
  150. package/dist/cjs/pds-table-row.cjs.entry.js +3 -3
  151. package/dist/cjs/pds-table-row.entry.cjs.js.map +1 -1
  152. package/dist/cjs/pds-table.cjs.entry.js +2 -2
  153. package/dist/cjs/pds-table.entry.cjs.js.map +1 -1
  154. package/dist/cjs/pds-tabpanel.cjs.entry.js +2 -2
  155. package/dist/cjs/pds-tabs.cjs.entry.js +3 -3
  156. package/dist/cjs/pds-tabs.entry.cjs.js.map +1 -1
  157. package/dist/cjs/pds-text.cjs.entry.js +3 -3
  158. package/dist/cjs/pds-text.entry.cjs.js.map +1 -1
  159. package/dist/cjs/pds-textarea.cjs.entry.js +6 -6
  160. package/dist/cjs/pds-textarea.entry.cjs.js.map +1 -1
  161. package/dist/cjs/pds-toast.cjs.entry.js +4 -4
  162. package/dist/cjs/pds-tooltip.cjs.entry.js +3 -3
  163. package/dist/cjs/pine-core.cjs.js +2 -2
  164. package/dist/collection/collection-manifest.json +1 -0
  165. package/dist/collection/components/_internal/pds-label/pds-label.js.map +1 -1
  166. package/dist/collection/components/pds-accordion/pds-accordion.css +1 -1
  167. package/dist/collection/components/pds-accordion/pds-accordion.js.map +1 -1
  168. package/dist/collection/components/pds-accordion/stories/pds-accordion.stories.js +0 -2
  169. package/dist/collection/components/pds-alert/pds-alert.css +1 -0
  170. package/dist/collection/components/pds-alert/pds-alert.js +1 -1
  171. package/dist/collection/components/pds-alert/pds-alert.js.map +1 -1
  172. package/dist/collection/components/pds-alert/stories/pds-alert.stories.js +3 -9
  173. package/dist/collection/components/pds-avatar/pds-avatar.css +3 -3
  174. package/dist/collection/components/pds-avatar/pds-avatar.js.map +1 -1
  175. package/dist/collection/components/pds-avatar/stories/pds-avatar.stories.js +0 -2
  176. package/dist/collection/components/pds-box/pds-box.css +754 -30
  177. package/dist/collection/components/pds-box/pds-box.js.map +1 -1
  178. package/dist/collection/components/pds-box/stories/pds-box.stories.js +0 -2
  179. package/dist/collection/components/pds-button/pds-button.css +11 -8
  180. package/dist/collection/components/pds-button/pds-button.js +9 -3
  181. package/dist/collection/components/pds-button/pds-button.js.map +1 -1
  182. package/dist/collection/components/pds-button/stories/pds-button.stories.js +2 -5
  183. package/dist/collection/components/pds-checkbox/checkbox-interface.js.map +1 -1
  184. package/dist/collection/components/pds-checkbox/pds-checkbox.css +3 -3
  185. package/dist/collection/components/pds-checkbox/pds-checkbox.js.map +1 -1
  186. package/dist/collection/components/pds-checkbox/stories/pds-checkbox.stories.js +1 -9
  187. package/dist/collection/components/pds-chip/pds-chip.css +3 -3
  188. package/dist/collection/components/pds-chip/pds-chip.js +3 -3
  189. package/dist/collection/components/pds-chip/pds-chip.js.map +1 -1
  190. package/dist/collection/components/pds-chip/stories/pds-chip.stories.js +3 -9
  191. package/dist/collection/components/pds-combobox/pds-combobox.css +7 -7
  192. package/dist/collection/components/pds-combobox/pds-combobox.js.map +1 -1
  193. package/dist/collection/components/pds-combobox/stories/pds-combobox.stories.js +2 -9
  194. package/dist/collection/components/pds-copytext/pds-copytext.css +1 -1
  195. package/dist/collection/components/pds-copytext/pds-copytext.js +3 -3
  196. package/dist/collection/components/pds-copytext/pds-copytext.js.map +1 -1
  197. package/dist/collection/components/pds-copytext/stories/pds-copytext.stories.js +3 -9
  198. package/dist/collection/components/pds-divider/pds-divider.js.map +1 -1
  199. package/dist/collection/components/pds-divider/stories/pds-divider.stories.js +0 -2
  200. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.css +2 -1
  201. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js.map +1 -1
  202. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.css +1 -1
  203. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js.map +1 -1
  204. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.css +4 -0
  205. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +32 -10
  206. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js.map +1 -1
  207. package/dist/collection/components/pds-dropdown-menu/stories/pds-dropdown-menu.stories.js +3 -9
  208. package/dist/collection/components/pds-filters/pds-filter/filter-interface.js.map +1 -1
  209. package/dist/collection/components/pds-filters/pds-filter/pds-filter.css +13 -13
  210. package/dist/collection/components/pds-filters/pds-filter/pds-filter.js.map +1 -1
  211. package/dist/collection/components/pds-filters/pds-filter/stories/pds-filter.stories.js +3 -9
  212. package/dist/collection/components/pds-filters/pds-filters.js.map +1 -1
  213. package/dist/collection/components/pds-filters/stories/pds-filters.stories.js +3 -9
  214. package/dist/collection/components/pds-image/pds-image.js.map +1 -1
  215. package/dist/collection/components/pds-image/stories/pds-image.stories.js +0 -2
  216. package/dist/collection/components/pds-input/input-interface.js.map +1 -1
  217. package/dist/collection/components/pds-input/pds-input.css +8 -2
  218. package/dist/collection/components/pds-input/pds-input.js.map +1 -1
  219. package/dist/collection/components/pds-input/stories/pds-input.stories.js +3 -13
  220. package/dist/collection/components/pds-link/pds-link.css +1 -1
  221. package/dist/collection/components/pds-link/pds-link.js.map +1 -1
  222. package/dist/collection/components/pds-link/stories/pds-link.stories.js +0 -2
  223. package/dist/collection/components/pds-loader/pds-loader.css +2 -2
  224. package/dist/collection/components/pds-loader/pds-loader.js.map +1 -1
  225. package/dist/collection/components/pds-loader/stories/pds-loader.stories.js +0 -2
  226. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.css +4 -4
  227. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js.map +1 -1
  228. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js.map +1 -1
  229. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js.map +1 -1
  230. package/dist/collection/components/pds-modal/pds-modal.js.map +1 -1
  231. package/dist/collection/components/pds-modal/stories/pds-modal.stories.js +3 -9
  232. package/dist/collection/components/pds-modal/test/mock-pds-modal.js +7 -7
  233. package/dist/collection/components/pds-modal/test/mock-pds-modal.js.map +1 -1
  234. package/dist/collection/components/pds-popover/pds-popover.js +6 -3
  235. package/dist/collection/components/pds-popover/pds-popover.js.map +1 -1
  236. package/dist/collection/components/pds-popover/popover-interface.js.map +1 -1
  237. package/dist/collection/components/pds-popover/stories/pds-popover.stories.js +3 -9
  238. package/dist/collection/components/pds-progress/pds-progress.css +4 -4
  239. package/dist/collection/components/pds-progress/pds-progress.js.map +1 -1
  240. package/dist/collection/components/pds-progress/stories/pds-progress.stories.js +0 -2
  241. package/dist/collection/components/pds-property/pds-property.js.map +1 -1
  242. package/dist/collection/components/pds-property/stories/pds-property.stories.js +0 -4
  243. package/dist/collection/components/pds-radio/pds-radio.css +49 -50
  244. package/dist/collection/components/pds-radio/pds-radio.js +8 -3
  245. package/dist/collection/components/pds-radio/pds-radio.js.map +1 -1
  246. package/dist/collection/components/pds-radio/stories/pds-radio.stories.js +4 -11
  247. package/dist/collection/components/pds-radio-group/pds-radio-group.css +43 -0
  248. package/dist/collection/components/pds-radio-group/pds-radio-group.js +431 -0
  249. package/dist/collection/components/pds-radio-group/pds-radio-group.js.map +1 -0
  250. package/dist/collection/components/pds-radio-group/radio-group-interface.js +2 -0
  251. package/dist/collection/components/pds-radio-group/radio-group-interface.js.map +1 -0
  252. package/dist/collection/components/pds-radio-group/stories/pds-radio-group.stories.js +134 -0
  253. package/dist/collection/components/pds-row/pds-row.js +1 -1
  254. package/dist/collection/components/pds-row/pds-row.js.map +1 -1
  255. package/dist/collection/components/pds-row/stories/pds-row.stories.js +0 -2
  256. package/dist/collection/components/pds-select/pds-select.css +8 -0
  257. package/dist/collection/components/pds-select/pds-select.js +1 -1
  258. package/dist/collection/components/pds-select/pds-select.js.map +1 -1
  259. package/dist/collection/components/pds-select/stories/pds-select.stories.js +3 -9
  260. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +1 -1
  261. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js.map +1 -1
  262. package/dist/collection/components/pds-sortable/pds-sortable-item/stories/pds-sortable-item.stories.js +0 -2
  263. package/dist/collection/components/pds-sortable/pds-sortable.js +10 -4
  264. package/dist/collection/components/pds-sortable/pds-sortable.js.map +1 -1
  265. package/dist/collection/components/pds-sortable/sortable-interface.js.map +1 -1
  266. package/dist/collection/components/pds-sortable/stories/pds-sortable.stories.js +3 -9
  267. package/dist/collection/components/pds-switch/pds-switch.css +1 -1
  268. package/dist/collection/components/pds-switch/pds-switch.js +3 -3
  269. package/dist/collection/components/pds-switch/pds-switch.js.map +1 -1
  270. package/dist/collection/components/pds-switch/stories/pds-switch.stories.js +3 -9
  271. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js +1 -1
  272. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js.map +1 -1
  273. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +2 -2
  274. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js.map +1 -1
  275. package/dist/collection/components/pds-table/pds-table-cell/stories/pds-table-cell.stories.js +0 -4
  276. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.css +1 -1
  277. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +1 -1
  278. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js.map +1 -1
  279. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.css +2 -2
  280. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +2 -2
  281. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js.map +1 -1
  282. package/dist/collection/components/pds-table/pds-table-head-cell/stories/pds-table-head-cell.stories.js +0 -4
  283. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.css +1 -1
  284. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +1 -1
  285. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js.map +1 -1
  286. package/dist/collection/components/pds-table/pds-table-row/stories/pds-table-row.stories.js +3 -9
  287. package/dist/collection/components/pds-table/pds-table.css +1 -1
  288. package/dist/collection/components/pds-table/pds-table.js.map +1 -1
  289. package/dist/collection/components/pds-table/stories/pds-table.stories.js +3 -9
  290. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.css +6 -3
  291. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js +3 -3
  292. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js.map +1 -1
  293. package/dist/collection/components/pds-tabs/pds-tab/stories/pds-tab.stories.js +0 -4
  294. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +1 -1
  295. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js.map +1 -1
  296. package/dist/collection/components/pds-tabs/pds-tabpanel/stories/pds-tabpanel.stories.js +0 -4
  297. package/dist/collection/components/pds-tabs/pds-tabs.css +2 -2
  298. package/dist/collection/components/pds-tabs/pds-tabs.js +1 -1
  299. package/dist/collection/components/pds-tabs/pds-tabs.js.map +1 -1
  300. package/dist/collection/components/pds-tabs/stories/pds-tabs.stories.js +3 -9
  301. package/dist/collection/components/pds-text/pds-text.css +1 -1
  302. package/dist/collection/components/pds-text/pds-text.js +1 -1
  303. package/dist/collection/components/pds-text/pds-text.js.map +1 -1
  304. package/dist/collection/components/pds-text/stories/pds-text.stories.js +17 -30
  305. package/dist/collection/components/pds-textarea/pds-textarea.css +8 -1
  306. package/dist/collection/components/pds-textarea/pds-textarea.js +4 -4
  307. package/dist/collection/components/pds-textarea/pds-textarea.js.map +1 -1
  308. package/dist/collection/components/pds-textarea/stories/pds-textarea.stories.js +3 -14
  309. package/dist/collection/components/pds-textarea/textarea-interface.js.map +1 -1
  310. package/dist/collection/components/pds-toast/pds-toast.js +3 -3
  311. package/dist/collection/components/pds-toast/pds-toast.js.map +1 -1
  312. package/dist/collection/components/pds-toast/stories/pds-toast.stories.js +3 -11
  313. package/dist/collection/components/pds-tooltip/pds-tooltip.js +2 -2
  314. package/dist/collection/components/pds-tooltip/pds-tooltip.js.map +1 -1
  315. package/dist/collection/components/pds-tooltip/stories/pds-tooltip.stories.js +3 -9
  316. package/dist/collection/global/pine-ui-global.js.map +1 -1
  317. package/dist/collection/index.js +1 -0
  318. package/dist/collection/index.js.map +1 -1
  319. package/dist/collection/utils/attributes.js.map +1 -1
  320. package/dist/collection/utils/closest.js.map +1 -1
  321. package/dist/collection/utils/form.js.map +1 -1
  322. package/dist/collection/utils/interfaces.js.map +1 -1
  323. package/dist/collection/utils/overlay.js.map +1 -1
  324. package/dist/collection/utils/types.js.map +1 -1
  325. package/dist/collection/utils/utils.js.map +1 -1
  326. package/dist/docs.json +391 -26
  327. package/dist/esm/{index-CvGEHHLR.js → index-CShvJnsl.js} +3 -3
  328. package/dist/{esm-es5/index-CvGEHHLR.js.map → esm/index-CShvJnsl.js.map} +1 -1
  329. package/dist/esm/{index-Bh07GI-d.js → index-DHPhrb5T.js} +3 -3
  330. package/dist/esm/index-DHPhrb5T.js.map +1 -0
  331. package/dist/esm/loader.js +3 -3
  332. package/dist/esm/mock-pds-modal.entry.js +2 -2
  333. package/dist/esm/mock-pds-modal.entry.js.map +1 -1
  334. package/dist/esm/pds-accordion.entry.js +3 -3
  335. package/dist/esm/pds-accordion.entry.js.map +1 -1
  336. package/dist/esm/pds-alert.entry.js +3 -3
  337. package/dist/esm/pds-alert.entry.js.map +1 -1
  338. package/dist/esm/pds-avatar.entry.js +3 -3
  339. package/dist/esm/pds-avatar.entry.js.map +1 -1
  340. package/dist/esm/pds-box.entry.js +2 -2
  341. package/dist/esm/pds-box.entry.js.map +1 -1
  342. package/dist/esm/pds-button.entry.js +3 -3
  343. package/dist/esm/pds-button.entry.js.map +1 -1
  344. package/dist/esm/pds-checkbox.entry.js +3 -3
  345. package/dist/esm/pds-checkbox.entry.js.map +1 -1
  346. package/dist/esm/pds-chip.entry.js +4 -4
  347. package/dist/esm/pds-chip.entry.js.map +1 -1
  348. package/dist/esm/pds-combobox.entry.js +2 -2
  349. package/dist/esm/pds-combobox.entry.js.map +1 -1
  350. package/dist/esm/pds-copytext.entry.js +4 -4
  351. package/dist/esm/pds-copytext.entry.js.map +1 -1
  352. package/dist/esm/pds-divider.entry.js +1 -1
  353. package/dist/esm/pds-dropdown-menu-item.entry.js +2 -2
  354. package/dist/esm/pds-dropdown-menu-item.entry.js.map +1 -1
  355. package/dist/esm/pds-dropdown-menu-separator.entry.js +2 -2
  356. package/dist/esm/pds-dropdown-menu-separator.entry.js.map +1 -1
  357. package/dist/esm/pds-dropdown-menu.entry.js +31 -12
  358. package/dist/esm/pds-dropdown-menu.entry.js.map +1 -1
  359. package/dist/esm/pds-filter.entry.js +3 -3
  360. package/dist/esm/pds-filter.entry.js.map +1 -1
  361. package/dist/esm/pds-filters.entry.js +1 -1
  362. package/dist/esm/pds-icon.entry.js +1 -1
  363. package/dist/esm/pds-image.entry.js +1 -1
  364. package/dist/esm/pds-input.entry.js +3 -3
  365. package/dist/esm/pds-input.entry.js.map +1 -1
  366. package/dist/esm/pds-link.entry.js +3 -3
  367. package/dist/esm/pds-link.entry.js.map +1 -1
  368. package/dist/esm/pds-loader.entry.js +2 -2
  369. package/dist/esm/pds-loader.entry.js.map +1 -1
  370. package/dist/esm/pds-modal-content.entry.js +2 -2
  371. package/dist/esm/pds-modal-content.entry.js.map +1 -1
  372. package/dist/esm/pds-modal-footer.entry.js +1 -1
  373. package/dist/esm/pds-modal-header.entry.js +1 -1
  374. package/dist/esm/pds-modal.entry.js +1 -1
  375. package/dist/esm/pds-popover.entry.js +7 -4
  376. package/dist/esm/pds-popover.entry.js.map +1 -1
  377. package/dist/esm/pds-progress.entry.js +2 -2
  378. package/dist/esm/pds-progress.entry.js.map +1 -1
  379. package/dist/esm/pds-property.entry.js +1 -1
  380. package/dist/esm/pds-radio-group.entry.js +168 -0
  381. package/dist/esm/pds-radio-group.entry.js.map +1 -0
  382. package/dist/esm/pds-radio.entry.js +11 -6
  383. package/dist/esm/pds-radio.entry.js.map +1 -1
  384. package/dist/esm/pds-row.entry.js +2 -2
  385. package/dist/esm/pds-select.entry.js +4 -4
  386. package/dist/esm/pds-select.entry.js.map +1 -1
  387. package/dist/esm/pds-sortable-item.entry.js +3 -3
  388. package/dist/esm/pds-sortable.entry.js +2 -2
  389. package/dist/esm/pds-sortable.entry.js.map +1 -1
  390. package/dist/esm/pds-switch.entry.js +6 -6
  391. package/dist/esm/pds-switch.entry.js.map +1 -1
  392. package/dist/esm/pds-tab.entry.js +5 -5
  393. package/dist/esm/pds-tab.entry.js.map +1 -1
  394. package/dist/esm/pds-table-body.entry.js +2 -2
  395. package/dist/esm/pds-table-cell.entry.js +3 -3
  396. package/dist/esm/pds-table-head-cell.entry.js +5 -5
  397. package/dist/esm/pds-table-head-cell.entry.js.map +1 -1
  398. package/dist/esm/pds-table-head.entry.js +3 -3
  399. package/dist/esm/pds-table-head.entry.js.map +1 -1
  400. package/dist/esm/pds-table-row.entry.js +3 -3
  401. package/dist/esm/pds-table-row.entry.js.map +1 -1
  402. package/dist/esm/pds-table.entry.js +2 -2
  403. package/dist/esm/pds-table.entry.js.map +1 -1
  404. package/dist/esm/pds-tabpanel.entry.js +2 -2
  405. package/dist/esm/pds-tabs.entry.js +3 -3
  406. package/dist/esm/pds-tabs.entry.js.map +1 -1
  407. package/dist/esm/pds-text.entry.js +3 -3
  408. package/dist/esm/pds-text.entry.js.map +1 -1
  409. package/dist/esm/pds-textarea.entry.js +7 -7
  410. package/dist/esm/pds-textarea.entry.js.map +1 -1
  411. package/dist/esm/pds-toast.entry.js +4 -4
  412. package/dist/esm/pds-tooltip.entry.js +3 -3
  413. package/dist/esm/pine-core.js +3 -3
  414. package/dist/esm-es5/{index-CvGEHHLR.js → index-CShvJnsl.js} +2 -2
  415. package/dist/{esm/index-CvGEHHLR.js.map → esm-es5/index-CShvJnsl.js.map} +1 -1
  416. package/dist/esm-es5/index-DHPhrb5T.js +3 -0
  417. package/dist/esm-es5/index-DHPhrb5T.js.map +1 -0
  418. package/dist/esm-es5/loader.js +1 -1
  419. package/dist/esm-es5/mock-pds-modal.entry.js +1 -1
  420. package/dist/esm-es5/mock-pds-modal.entry.js.map +1 -1
  421. package/dist/esm-es5/pds-accordion.entry.js +1 -1
  422. package/dist/esm-es5/pds-accordion.entry.js.map +1 -1
  423. package/dist/esm-es5/pds-alert.entry.js +1 -1
  424. package/dist/esm-es5/pds-alert.entry.js.map +1 -1
  425. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  426. package/dist/esm-es5/pds-avatar.entry.js.map +1 -1
  427. package/dist/esm-es5/pds-box.entry.js +1 -1
  428. package/dist/esm-es5/pds-box.entry.js.map +1 -1
  429. package/dist/esm-es5/pds-button.entry.js +1 -1
  430. package/dist/esm-es5/pds-button.entry.js.map +1 -1
  431. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  432. package/dist/esm-es5/pds-checkbox.entry.js.map +1 -1
  433. package/dist/esm-es5/pds-chip.entry.js +1 -1
  434. package/dist/esm-es5/pds-chip.entry.js.map +1 -1
  435. package/dist/esm-es5/pds-combobox.entry.js +2 -2
  436. package/dist/esm-es5/pds-combobox.entry.js.map +1 -1
  437. package/dist/esm-es5/pds-copytext.entry.js +1 -1
  438. package/dist/esm-es5/pds-copytext.entry.js.map +1 -1
  439. package/dist/esm-es5/pds-divider.entry.js +1 -1
  440. package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -1
  441. package/dist/esm-es5/pds-dropdown-menu-item.entry.js.map +1 -1
  442. package/dist/esm-es5/pds-dropdown-menu-separator.entry.js +1 -1
  443. package/dist/esm-es5/pds-dropdown-menu-separator.entry.js.map +1 -1
  444. package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
  445. package/dist/esm-es5/pds-dropdown-menu.entry.js.map +1 -1
  446. package/dist/esm-es5/pds-filter.entry.js +1 -1
  447. package/dist/esm-es5/pds-filter.entry.js.map +1 -1
  448. package/dist/esm-es5/pds-filters.entry.js +1 -1
  449. package/dist/esm-es5/pds-icon.entry.js +1 -1
  450. package/dist/esm-es5/pds-image.entry.js +1 -1
  451. package/dist/esm-es5/pds-input.entry.js +1 -1
  452. package/dist/esm-es5/pds-input.entry.js.map +1 -1
  453. package/dist/esm-es5/pds-link.entry.js +1 -1
  454. package/dist/esm-es5/pds-link.entry.js.map +1 -1
  455. package/dist/esm-es5/pds-loader.entry.js +1 -1
  456. package/dist/esm-es5/pds-loader.entry.js.map +1 -1
  457. package/dist/esm-es5/pds-modal-content.entry.js +1 -1
  458. package/dist/esm-es5/pds-modal-content.entry.js.map +1 -1
  459. package/dist/esm-es5/pds-modal-footer.entry.js +1 -1
  460. package/dist/esm-es5/pds-modal-header.entry.js +1 -1
  461. package/dist/esm-es5/pds-modal.entry.js +1 -1
  462. package/dist/esm-es5/pds-popover.entry.js +1 -1
  463. package/dist/esm-es5/pds-popover.entry.js.map +1 -1
  464. package/dist/esm-es5/pds-progress.entry.js +1 -1
  465. package/dist/esm-es5/pds-progress.entry.js.map +1 -1
  466. package/dist/esm-es5/pds-property.entry.js +1 -1
  467. package/dist/esm-es5/pds-radio-group.entry.js +2 -0
  468. package/dist/esm-es5/pds-radio-group.entry.js.map +1 -0
  469. package/dist/esm-es5/pds-radio.entry.js +1 -1
  470. package/dist/esm-es5/pds-radio.entry.js.map +1 -1
  471. package/dist/esm-es5/pds-row.entry.js +1 -1
  472. package/dist/esm-es5/pds-select.entry.js +1 -1
  473. package/dist/esm-es5/pds-select.entry.js.map +1 -1
  474. package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
  475. package/dist/esm-es5/pds-sortable.entry.js +2 -2
  476. package/dist/esm-es5/pds-sortable.entry.js.map +1 -1
  477. package/dist/esm-es5/pds-switch.entry.js +1 -1
  478. package/dist/esm-es5/pds-switch.entry.js.map +1 -1
  479. package/dist/esm-es5/pds-tab.entry.js +1 -1
  480. package/dist/esm-es5/pds-tab.entry.js.map +1 -1
  481. package/dist/esm-es5/pds-table-body.entry.js +1 -1
  482. package/dist/esm-es5/pds-table-cell.entry.js +1 -1
  483. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  484. package/dist/esm-es5/pds-table-head-cell.entry.js.map +1 -1
  485. package/dist/esm-es5/pds-table-head.entry.js +1 -1
  486. package/dist/esm-es5/pds-table-head.entry.js.map +1 -1
  487. package/dist/esm-es5/pds-table-row.entry.js +1 -1
  488. package/dist/esm-es5/pds-table-row.entry.js.map +1 -1
  489. package/dist/esm-es5/pds-table.entry.js +1 -1
  490. package/dist/esm-es5/pds-table.entry.js.map +1 -1
  491. package/dist/esm-es5/pds-tabpanel.entry.js +1 -1
  492. package/dist/esm-es5/pds-tabs.entry.js +1 -1
  493. package/dist/esm-es5/pds-tabs.entry.js.map +1 -1
  494. package/dist/esm-es5/pds-text.entry.js +1 -1
  495. package/dist/esm-es5/pds-text.entry.js.map +1 -1
  496. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  497. package/dist/esm-es5/pds-textarea.entry.js.map +1 -1
  498. package/dist/esm-es5/pds-toast.entry.js +1 -1
  499. package/dist/esm-es5/pds-tooltip.entry.js +1 -1
  500. package/dist/esm-es5/pine-core.js +1 -1
  501. package/dist/pine-core/mock-pds-modal.entry.esm.js.map +1 -1
  502. package/dist/pine-core/{p-37795a28.system.entry.js → p-00568c20.system.entry.js} +2 -2
  503. package/dist/pine-core/{p-53645ec6.system.entry.js → p-03209958.system.entry.js} +2 -2
  504. package/dist/pine-core/p-0398f6e3.entry.js +2 -0
  505. package/dist/pine-core/{p-d0efe5e1.entry.js.map → p-0398f6e3.entry.js.map} +1 -1
  506. package/dist/pine-core/p-04294b28.system.entry.js +2 -0
  507. package/dist/pine-core/{p-052eedc2.system.entry.js.map → p-04294b28.system.entry.js.map} +1 -1
  508. package/dist/pine-core/p-04a7b66c.system.entry.js +2 -0
  509. package/dist/pine-core/{p-a2c309fa.system.entry.js.map → p-04a7b66c.system.entry.js.map} +1 -1
  510. package/dist/pine-core/p-04f92b5a.system.entry.js +2 -0
  511. package/dist/pine-core/{p-1ac7cb0f.system.entry.js.map → p-04f92b5a.system.entry.js.map} +1 -1
  512. package/dist/pine-core/p-0869fe00.entry.js +2 -0
  513. package/dist/pine-core/p-0869fe00.entry.js.map +1 -0
  514. package/dist/pine-core/{p-1fbe221a.entry.js → p-0ace9c16.entry.js} +2 -2
  515. package/dist/pine-core/p-0b05708b.entry.js +2 -0
  516. package/dist/pine-core/{p-43b758af.entry.js.map → p-0b05708b.entry.js.map} +1 -1
  517. package/dist/pine-core/{p-e47fbd71.entry.js → p-10e0be55.entry.js} +2 -2
  518. package/dist/pine-core/{p-b0948892.system.entry.js → p-1df25b57.system.entry.js} +2 -2
  519. package/dist/pine-core/p-1f5ed7bb.system.entry.js +2 -0
  520. package/dist/pine-core/{p-e22c4870.system.entry.js.map → p-1f5ed7bb.system.entry.js.map} +1 -1
  521. package/dist/pine-core/{p-d6cff25a.entry.js → p-1fa303af.entry.js} +2 -2
  522. package/dist/pine-core/{p-996072ce.entry.js → p-2058a93a.entry.js} +2 -2
  523. package/dist/pine-core/p-227d5375.entry.js +2 -0
  524. package/dist/pine-core/{p-de4ebf0b.entry.js.map → p-227d5375.entry.js.map} +1 -1
  525. package/dist/pine-core/p-2319298c.system.entry.js +2 -0
  526. package/dist/pine-core/{p-5e1804a3.system.entry.js.map → p-2319298c.system.entry.js.map} +1 -1
  527. package/dist/pine-core/p-232e4282.system.entry.js +2 -0
  528. package/dist/pine-core/{p-49c5234f.system.entry.js.map → p-232e4282.system.entry.js.map} +1 -1
  529. package/dist/pine-core/{p-7bbe537d.system.entry.js → p-2d3da08b.system.entry.js} +2 -2
  530. package/dist/pine-core/{p-7a63e1ec.entry.js → p-2f6f60d9.entry.js} +2 -2
  531. package/dist/pine-core/p-372a6081.entry.js +2 -0
  532. package/dist/pine-core/{p-e25d2c53.entry.js.map → p-372a6081.entry.js.map} +1 -1
  533. package/dist/pine-core/p-3a231ae4.system.entry.js +2 -0
  534. package/dist/pine-core/{p-1c03ac40.system.entry.js.map → p-3a231ae4.system.entry.js.map} +1 -1
  535. package/dist/pine-core/{p-841a6445.entry.js → p-3f6b9520.entry.js} +2 -2
  536. package/dist/pine-core/{p-06f164fe.system.entry.js → p-3f8a5f3d.system.entry.js} +2 -2
  537. package/dist/pine-core/{p-ba1a4643.system.entry.js → p-3f8b0885.system.entry.js} +2 -2
  538. package/dist/pine-core/p-428a96f9.entry.js +2 -0
  539. package/dist/pine-core/{p-ac5eb57e.entry.js.map → p-428a96f9.entry.js.map} +1 -1
  540. package/dist/pine-core/{p-ba609b1e.entry.js → p-43990889.entry.js} +2 -2
  541. package/dist/pine-core/{p-6046e0b1.entry.js → p-43f1eead.entry.js} +2 -2
  542. package/dist/pine-core/p-4778ae70.entry.js +2 -0
  543. package/dist/pine-core/{p-a1ddcc69.entry.js.map → p-4778ae70.entry.js.map} +1 -1
  544. package/dist/pine-core/p-4c0797f2.entry.js +2 -0
  545. package/dist/pine-core/{p-3900b6f6.entry.js.map → p-4c0797f2.entry.js.map} +1 -1
  546. package/dist/pine-core/{p-D5MCs-6L.system.js.map → p-4fD2iHS9.system.js.map} +1 -1
  547. package/dist/pine-core/p-553e4543.entry.js +2 -0
  548. package/dist/pine-core/p-553e4543.entry.js.map +1 -0
  549. package/dist/pine-core/p-58fa5c8f.entry.js +2 -0
  550. package/dist/pine-core/{p-0837abe8.entry.js.map → p-58fa5c8f.entry.js.map} +1 -1
  551. package/dist/pine-core/{p-b151a37d.entry.js → p-596acf65.entry.js} +3 -3
  552. package/dist/pine-core/p-5D9wXQuJ.system.js +3 -0
  553. package/dist/pine-core/p-5D9wXQuJ.system.js.map +1 -0
  554. package/dist/pine-core/p-5b2b3e8a.entry.js +2 -0
  555. package/dist/pine-core/{p-7c2381c5.entry.js.map → p-5b2b3e8a.entry.js.map} +1 -1
  556. package/dist/pine-core/p-5d7c4fbb.entry.js +2 -0
  557. package/dist/pine-core/{p-730ea265.entry.js.map → p-5d7c4fbb.entry.js.map} +1 -1
  558. package/dist/pine-core/p-5f6cd30d.system.entry.js +2 -0
  559. package/dist/pine-core/p-5f6cd30d.system.entry.js.map +1 -0
  560. package/dist/pine-core/p-61588eac.entry.js +2 -0
  561. package/dist/pine-core/{p-55d120d1.entry.js.map → p-61588eac.entry.js.map} +1 -1
  562. package/dist/pine-core/p-65c566a2.system.entry.js +2 -0
  563. package/dist/pine-core/{p-1f28575b.system.entry.js.map → p-65c566a2.system.entry.js.map} +1 -1
  564. package/dist/pine-core/p-65db991d.entry.js +2 -0
  565. package/dist/pine-core/{p-1b299f58.entry.js.map → p-65db991d.entry.js.map} +1 -1
  566. package/dist/pine-core/p-66160018.entry.js +3 -0
  567. package/dist/pine-core/{p-bd11961c.entry.js.map → p-66160018.entry.js.map} +1 -1
  568. package/dist/pine-core/{p-f2344cb2.system.entry.js → p-670b1551.system.entry.js} +2 -2
  569. package/dist/pine-core/p-670b1551.system.entry.js.map +1 -0
  570. package/dist/pine-core/p-676f1f32.system.entry.js +2 -0
  571. package/dist/pine-core/p-676f1f32.system.entry.js.map +1 -0
  572. package/dist/pine-core/p-6ace63a3.system.entry.js +2 -0
  573. package/dist/pine-core/{p-4fe28624.system.entry.js.map → p-6ace63a3.system.entry.js.map} +1 -1
  574. package/dist/pine-core/p-6be19a23.system.entry.js +2 -0
  575. package/dist/pine-core/{p-c28c54c2.system.entry.js.map → p-6be19a23.system.entry.js.map} +1 -1
  576. package/dist/pine-core/{p-168b5a5b.system.entry.js → p-6dcd7876.system.entry.js} +2 -2
  577. package/dist/pine-core/p-6de73f62.entry.js +2 -0
  578. package/dist/pine-core/{p-1d3c4f2d.entry.js.map → p-6de73f62.entry.js.map} +1 -1
  579. package/dist/pine-core/p-711989de.entry.js +2 -0
  580. package/dist/pine-core/{p-2551ed1a.entry.js.map → p-711989de.entry.js.map} +1 -1
  581. package/dist/pine-core/p-7ccd2fd6.system.entry.js +2 -0
  582. package/dist/pine-core/{p-e715d22e.system.entry.js.map → p-7ccd2fd6.system.entry.js.map} +1 -1
  583. package/dist/pine-core/{p-ed214033.entry.js → p-7de73ac5.entry.js} +2 -2
  584. package/dist/pine-core/p-80017aa5.entry.js +2 -0
  585. package/dist/pine-core/{p-9f7318d7.entry.js.map → p-80017aa5.entry.js.map} +1 -1
  586. package/dist/pine-core/p-8007f4de.entry.js +2 -0
  587. package/dist/pine-core/p-8007f4de.entry.js.map +1 -0
  588. package/dist/pine-core/p-8323fe69.system.entry.js +2 -0
  589. package/dist/pine-core/{p-1ab0a7b1.system.entry.js.map → p-8323fe69.system.entry.js.map} +1 -1
  590. package/dist/pine-core/p-847fc77b.system.entry.js +2 -0
  591. package/dist/pine-core/{p-ab34c977.system.entry.js.map → p-847fc77b.system.entry.js.map} +1 -1
  592. package/dist/pine-core/{p-51e0ea73.entry.js → p-8c000d7c.entry.js} +2 -2
  593. package/dist/pine-core/p-8c7fdaf5.system.entry.js +2 -0
  594. package/dist/pine-core/{p-f38e87ad.system.entry.js.map → p-8c7fdaf5.system.entry.js.map} +1 -1
  595. package/dist/pine-core/p-91954848.entry.js +2 -0
  596. package/dist/pine-core/{p-6f5dfd01.entry.js.map → p-91954848.entry.js.map} +1 -1
  597. package/dist/pine-core/p-934229d8.entry.js +2 -0
  598. package/dist/pine-core/{p-4ea1a4fb.entry.js.map → p-934229d8.entry.js.map} +1 -1
  599. package/dist/pine-core/p-94788439.system.entry.js +2 -0
  600. package/dist/pine-core/{p-5565ee41.system.entry.js.map → p-94788439.system.entry.js.map} +1 -1
  601. package/dist/pine-core/{p-5a94e426.system.entry.js → p-94b1997d.system.entry.js} +2 -2
  602. package/dist/pine-core/{p-f74bcc1d.entry.js → p-9998c2a0.entry.js} +2 -2
  603. package/dist/pine-core/p-9f0f1389.entry.js +2 -0
  604. package/dist/pine-core/{p-a494b7d1.entry.js.map → p-9f0f1389.entry.js.map} +1 -1
  605. package/dist/pine-core/{p-CNOoGfj8.system.js.map → p-B0Y1Zs9b.system.js.map} +1 -1
  606. package/dist/pine-core/p-B1wJrRWz.system.js.map +1 -0
  607. package/dist/pine-core/p-BK-Kji1Y.system.js.map +1 -0
  608. package/dist/pine-core/p-BQImnLWy.system.js.map +1 -0
  609. package/dist/pine-core/p-BUwuPP5j.system.js.map +1 -0
  610. package/dist/pine-core/p-BVjyFx0r.system.js.map +1 -0
  611. package/dist/pine-core/p-BZj284A2.system.js.map +1 -0
  612. package/dist/pine-core/{p-BynWb21G.system.js.map → p-BjRES1T-.system.js.map} +1 -1
  613. package/dist/pine-core/p-Bp1qn6CS.system.js.map +1 -0
  614. package/dist/pine-core/{p-Btz7Q5Hx.system.js.map → p-Brpt0zl5.system.js.map} +1 -1
  615. package/dist/pine-core/p-C56crVDC.system.js.map +1 -0
  616. package/dist/pine-core/p-CAnnMfDw.system.js.map +1 -0
  617. package/dist/pine-core/{p-BMv60T1z.system.js.map → p-CI7DD4Gj.system.js.map} +1 -1
  618. package/dist/pine-core/p-CJJ3xfku.system.js.map +1 -0
  619. package/dist/pine-core/{p-CvGEHHLR.js → p-CShvJnsl.js} +2 -2
  620. package/dist/pine-core/{p-CvGEHHLR.js.map → p-CShvJnsl.js.map} +1 -1
  621. package/dist/pine-core/{p-CqtdHqyo.system.js.map → p-CUmDvil2.system.js.map} +1 -1
  622. package/dist/pine-core/p-CgF-S6vZ.system.js.map +1 -0
  623. package/dist/pine-core/{p-CoBzoZzZ.system.js.map → p-CijIWK3K.system.js.map} +1 -1
  624. package/dist/pine-core/{p-oqHEiE2W.system.js.map → p-ClPf_JF1.system.js.map} +1 -1
  625. package/dist/pine-core/p-CrjhL65U.system.js.map +1 -0
  626. package/dist/pine-core/p-CrzS8Mmy.system.js.map +1 -0
  627. package/dist/pine-core/p-CsVpJw_i.system.js.map +1 -0
  628. package/dist/pine-core/{p-DCLLstWD.system.js.map → p-Cwz8YTwo.system.js.map} +1 -1
  629. package/dist/pine-core/p-D2aexWnE.system.js.map +1 -0
  630. package/dist/pine-core/p-D8Jc24Qq.system.js.map +1 -0
  631. package/dist/pine-core/p-D8bibuWO.system.js.map +1 -0
  632. package/dist/pine-core/p-DBdgdjLr.system.js.map +1 -0
  633. package/dist/pine-core/p-DHPhrb5T.js +3 -0
  634. package/dist/pine-core/p-DHPhrb5T.js.map +1 -0
  635. package/dist/pine-core/p-DM7CGpRH.system.js.map +1 -0
  636. package/dist/pine-core/p-DYq1Mef8.system.js.map +1 -0
  637. package/dist/pine-core/p-D_LvnDUT.system.js.map +1 -0
  638. package/dist/pine-core/p-DaQV83Gx.system.js.map +1 -0
  639. package/dist/pine-core/{p-CbrMVAcu.system.js.map → p-DkNlmqjM.system.js.map} +1 -1
  640. package/dist/pine-core/{p-dWrReyPk.system.js.map → p-DmUcUg32.system.js.map} +1 -1
  641. package/dist/pine-core/p-DmVKABQy.system.js.map +1 -0
  642. package/dist/pine-core/{p-B9oQYxlC.system.js.map → p-DoP8Sl1O.system.js.map} +1 -1
  643. package/dist/pine-core/{p-BeaxER_z.system.js.map → p-DpOZDNuz.system.js.map} +1 -1
  644. package/dist/pine-core/{p-B8ftT2uA.system.js.map → p-DpeOrUYB.system.js.map} +1 -1
  645. package/dist/pine-core/p-Drfvoxcd.system.js.map +1 -0
  646. package/dist/pine-core/p-GKNvlYGa.system.js.map +1 -0
  647. package/dist/pine-core/{p-pStt9pIi.system.js.map → p-IH8oGXiE.system.js.map} +1 -1
  648. package/dist/pine-core/p-JAVnELnm.system.js +2 -0
  649. package/dist/pine-core/{p-Cua7cmvq.system.js.map → p-JAVnELnm.system.js.map} +1 -1
  650. package/dist/pine-core/p-PAmjcE4m.system.js.map +1 -0
  651. package/dist/pine-core/p-RO-Y2DRT.system.js.map +1 -0
  652. package/dist/pine-core/p-X0_TH-op.system.js.map +1 -0
  653. package/dist/pine-core/{p-e948a514.system.entry.js → p-a11c3642.system.entry.js} +2 -2
  654. package/dist/pine-core/p-a226ecdb.system.entry.js +2 -0
  655. package/dist/pine-core/{p-619a6667.system.entry.js.map → p-a226ecdb.system.entry.js.map} +1 -1
  656. package/dist/pine-core/p-a4b16b32.system.entry.js +2 -0
  657. package/dist/pine-core/{p-f70327de.system.entry.js.map → p-a4b16b32.system.entry.js.map} +1 -1
  658. package/dist/pine-core/p-a54f4dfd.system.entry.js +2 -0
  659. package/dist/pine-core/{p-6d9ca1ff.system.entry.js.map → p-a54f4dfd.system.entry.js.map} +1 -1
  660. package/dist/pine-core/{p-6448829b.system.entry.js → p-ac14c8e3.system.entry.js} +3 -3
  661. package/dist/pine-core/{p-1bf75b30.system.entry.js → p-ac186cd4.system.entry.js} +2 -2
  662. package/dist/pine-core/{p-fe23aa6f.system.entry.js → p-b59a0c6b.system.entry.js} +2 -2
  663. package/dist/pine-core/p-b59ac781.entry.js +2 -0
  664. package/dist/pine-core/{p-fb877b9d.entry.js.map → p-b59ac781.entry.js.map} +1 -1
  665. package/dist/pine-core/p-b64407a4.entry.js +2 -0
  666. package/dist/pine-core/{p-da23f4cf.entry.js.map → p-b64407a4.entry.js.map} +1 -1
  667. package/dist/pine-core/p-b6a503cc.system.entry.js +2 -0
  668. package/dist/pine-core/{p-7a12238d.system.entry.js.map → p-b6a503cc.system.entry.js.map} +1 -1
  669. package/dist/pine-core/p-b8047816.system.entry.js +2 -0
  670. package/dist/pine-core/{p-5a332f9e.system.entry.js.map → p-b8047816.system.entry.js.map} +1 -1
  671. package/dist/pine-core/p-b9a14564.system.entry.js +2 -0
  672. package/dist/pine-core/{p-eb3fe298.system.entry.js.map → p-b9a14564.system.entry.js.map} +1 -1
  673. package/dist/pine-core/p-bd53ca9a.system.entry.js +2 -0
  674. package/dist/pine-core/p-bd53ca9a.system.entry.js.map +1 -0
  675. package/dist/pine-core/{p-105951b7.system.entry.js → p-bdf8bff3.system.entry.js} +2 -2
  676. package/dist/pine-core/p-be647b2a.entry.js +2 -0
  677. package/dist/pine-core/{p-19e6bce5.entry.js.map → p-be647b2a.entry.js.map} +1 -1
  678. package/dist/pine-core/p-bee8d4b8.system.entry.js +4 -0
  679. package/dist/pine-core/{p-6e4be339.system.entry.js.map → p-bee8d4b8.system.entry.js.map} +1 -1
  680. package/dist/pine-core/{p-C2AG52JP.system.js.map → p-bkQbPz-z.system.js.map} +1 -1
  681. package/dist/pine-core/p-c08ab042.system.entry.js +2 -0
  682. package/dist/pine-core/p-c08ab042.system.entry.js.map +1 -0
  683. package/dist/pine-core/{p-1d83f560.entry.js → p-c5013d20.entry.js} +2 -2
  684. package/dist/pine-core/p-c9f97ccb.system.entry.js +2 -0
  685. package/dist/pine-core/p-c9f97ccb.system.entry.js.map +1 -0
  686. package/dist/pine-core/p-cd564179.entry.js +2 -0
  687. package/dist/pine-core/{p-a3503596.entry.js.map → p-cd564179.entry.js.map} +1 -1
  688. package/dist/pine-core/{p-01c4eac9.entry.js → p-cf4df489.entry.js} +2 -2
  689. package/dist/pine-core/p-cf910e8b.system.entry.js +2 -0
  690. package/dist/pine-core/p-cf910e8b.system.entry.js.map +1 -0
  691. package/dist/pine-core/p-d0e336b7.system.entry.js +2 -0
  692. package/dist/pine-core/{p-b07bb58f.system.entry.js → p-d1313dd6.system.entry.js} +2 -2
  693. package/dist/pine-core/p-dba5ca37.system.entry.js +2 -0
  694. package/dist/pine-core/p-dba5ca37.system.entry.js.map +1 -0
  695. package/dist/pine-core/p-dfcdd55d.system.entry.js +2 -0
  696. package/dist/pine-core/{p-ee6c07d6.system.entry.js.map → p-dfcdd55d.system.entry.js.map} +1 -1
  697. package/dist/pine-core/{p-2c3ede8e.entry.js → p-e08503a7.entry.js} +2 -2
  698. package/dist/pine-core/{p-2c3ede8e.entry.js.map → p-e08503a7.entry.js.map} +1 -1
  699. package/dist/pine-core/{p-fbf10641.entry.js → p-e0f21c22.entry.js} +2 -2
  700. package/dist/pine-core/{p-B7x-ddku.system.js → p-e50YjICS.system.js} +2 -2
  701. package/dist/pine-core/{p-B7x-ddku.system.js.map → p-e50YjICS.system.js.map} +1 -1
  702. package/dist/pine-core/p-e6b39ec1.entry.js +2 -0
  703. package/dist/pine-core/{p-73a6c002.entry.js.map → p-e6b39ec1.entry.js.map} +1 -1
  704. package/dist/pine-core/p-e7e25d42.entry.js +2 -0
  705. package/dist/pine-core/p-e837b577.entry.js +2 -0
  706. package/dist/pine-core/p-e837b577.entry.js.map +1 -0
  707. package/dist/pine-core/p-eUcBQ_fh.system.js.map +1 -0
  708. package/dist/pine-core/{p-5d379706.system.entry.js → p-ec32c44f.system.entry.js} +2 -2
  709. package/dist/pine-core/p-ejoWgOZK.system.js.map +1 -0
  710. package/dist/pine-core/p-f64ea4f7.entry.js +2 -0
  711. package/dist/pine-core/{p-239cbdb2.entry.js.map → p-f64ea4f7.entry.js.map} +1 -1
  712. package/dist/pine-core/p-f8fba315.entry.js +2 -0
  713. package/dist/pine-core/p-f8fba315.entry.js.map +1 -0
  714. package/dist/pine-core/{p-2f5d1411.entry.js → p-f92055f3.entry.js} +2 -2
  715. package/dist/pine-core/{p-4792d0c8.system.entry.js → p-fa21e054.system.entry.js} +2 -2
  716. package/dist/pine-core/p-qkIMFuAW.system.js.map +1 -0
  717. package/dist/pine-core/{p-CIoeutZO.system.js.map → p-tHMXRB8d.system.js.map} +1 -1
  718. package/dist/pine-core/p-zgS7Vsk7.system.js.map +1 -0
  719. package/dist/pine-core/pds-accordion.entry.esm.js.map +1 -1
  720. package/dist/pine-core/pds-alert.entry.esm.js.map +1 -1
  721. package/dist/pine-core/pds-avatar.entry.esm.js.map +1 -1
  722. package/dist/pine-core/pds-box.entry.esm.js.map +1 -1
  723. package/dist/pine-core/pds-button.entry.esm.js.map +1 -1
  724. package/dist/pine-core/pds-checkbox.entry.esm.js.map +1 -1
  725. package/dist/pine-core/pds-chip.entry.esm.js.map +1 -1
  726. package/dist/pine-core/pds-combobox.entry.esm.js.map +1 -1
  727. package/dist/pine-core/pds-copytext.entry.esm.js.map +1 -1
  728. package/dist/pine-core/pds-dropdown-menu-item.entry.esm.js.map +1 -1
  729. package/dist/pine-core/pds-dropdown-menu-separator.entry.esm.js.map +1 -1
  730. package/dist/pine-core/pds-dropdown-menu.entry.esm.js.map +1 -1
  731. package/dist/pine-core/pds-filter.entry.esm.js.map +1 -1
  732. package/dist/pine-core/pds-input.entry.esm.js.map +1 -1
  733. package/dist/pine-core/pds-link.entry.esm.js.map +1 -1
  734. package/dist/pine-core/pds-loader.entry.esm.js.map +1 -1
  735. package/dist/pine-core/pds-modal-content.entry.esm.js.map +1 -1
  736. package/dist/pine-core/pds-popover.entry.esm.js.map +1 -1
  737. package/dist/pine-core/pds-progress.entry.esm.js.map +1 -1
  738. package/dist/pine-core/pds-radio-group.entry.esm.js.map +1 -0
  739. package/dist/pine-core/pds-radio.entry.esm.js.map +1 -1
  740. package/dist/pine-core/pds-select.entry.esm.js.map +1 -1
  741. package/dist/pine-core/pds-sortable.entry.esm.js.map +1 -1
  742. package/dist/pine-core/pds-switch.entry.esm.js.map +1 -1
  743. package/dist/pine-core/pds-tab.entry.esm.js.map +1 -1
  744. package/dist/pine-core/pds-table-head-cell.entry.esm.js.map +1 -1
  745. package/dist/pine-core/pds-table-head.entry.esm.js.map +1 -1
  746. package/dist/pine-core/pds-table-row.entry.esm.js.map +1 -1
  747. package/dist/pine-core/pds-table.entry.esm.js.map +1 -1
  748. package/dist/pine-core/pds-tabs.entry.esm.js.map +1 -1
  749. package/dist/pine-core/pds-text.entry.esm.js.map +1 -1
  750. package/dist/pine-core/pds-textarea.entry.esm.js.map +1 -1
  751. package/dist/pine-core/pine-core.css +1 -1
  752. package/dist/pine-core/pine-core.esm.js +1 -1
  753. package/dist/pine-core/pine-core.js +1 -1
  754. package/dist/scripts/vscode-custom-data-generator.js +407 -0
  755. package/dist/scripts/vscode-custom-data-generator.js.map +1 -0
  756. package/dist/scripts/vscode-settings-patcher.cjs +89 -0
  757. package/dist/types/components/pds-button/pds-button.d.ts +1 -1
  758. package/dist/types/components/pds-chip/pds-chip.d.ts +1 -1
  759. package/dist/types/components/pds-copytext/pds-copytext.d.ts +1 -1
  760. package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu.d.ts +5 -0
  761. package/dist/types/components/pds-input/input-interface.d.ts +1 -1
  762. package/dist/types/components/pds-modal/test/mock-pds-modal.d.ts +3 -3
  763. package/dist/types/components/pds-popover/pds-popover.d.ts +1 -1
  764. package/dist/types/components/pds-radio-group/pds-radio-group.d.ts +72 -0
  765. package/dist/types/components/pds-radio-group/radio-group-interface.d.ts +5 -0
  766. package/dist/types/components/pds-sortable/pds-sortable.d.ts +2 -1
  767. package/dist/types/components/pds-sortable/sortable-interface.d.ts +2 -1
  768. package/dist/types/components.d.ts +142 -14
  769. package/dist/types/home/runner/work/pine/pine/libs/core/.stencil/scripts/vscode-custom-data-generator.d.ts +6 -0
  770. package/dist/types/index.d.ts +1 -0
  771. package/dist/vscode.html-data.json +9965 -0
  772. package/hydrate/index.js +292 -77
  773. package/hydrate/index.mjs +292 -77
  774. package/package.json +29 -15
  775. package/dist/cjs/index-2Lf0E1JO.js.map +0 -1
  776. package/dist/collection/stories/_helpers/index.js +0 -15
  777. package/dist/collection/stories/_helpers/index.js.map +0 -1
  778. package/dist/esm/index-Bh07GI-d.js.map +0 -1
  779. package/dist/esm-es5/index-Bh07GI-d.js +0 -3
  780. package/dist/esm-es5/index-Bh07GI-d.js.map +0 -1
  781. package/dist/pine-core/p-052eedc2.system.entry.js +0 -2
  782. package/dist/pine-core/p-0837abe8.entry.js +0 -2
  783. package/dist/pine-core/p-09cab3b5.system.entry.js +0 -2
  784. package/dist/pine-core/p-09cab3b5.system.entry.js.map +0 -1
  785. package/dist/pine-core/p-198fce07.system.entry.js +0 -2
  786. package/dist/pine-core/p-198fce07.system.entry.js.map +0 -1
  787. package/dist/pine-core/p-19e6bce5.entry.js +0 -2
  788. package/dist/pine-core/p-1W8OgEyK.system.js.map +0 -1
  789. package/dist/pine-core/p-1ab0a7b1.system.entry.js +0 -2
  790. package/dist/pine-core/p-1ac7cb0f.system.entry.js +0 -2
  791. package/dist/pine-core/p-1b299f58.entry.js +0 -2
  792. package/dist/pine-core/p-1c03ac40.system.entry.js +0 -2
  793. package/dist/pine-core/p-1d3c4f2d.entry.js +0 -2
  794. package/dist/pine-core/p-1f28575b.system.entry.js +0 -2
  795. package/dist/pine-core/p-239cbdb2.entry.js +0 -2
  796. package/dist/pine-core/p-2551ed1a.entry.js +0 -2
  797. package/dist/pine-core/p-285bc185.entry.js +0 -2
  798. package/dist/pine-core/p-2NVJY0Vc.system.js.map +0 -1
  799. package/dist/pine-core/p-3900b6f6.entry.js +0 -2
  800. package/dist/pine-core/p-43b758af.entry.js +0 -2
  801. package/dist/pine-core/p-49c5234f.system.entry.js +0 -2
  802. package/dist/pine-core/p-4HGk7WFM.system.js.map +0 -1
  803. package/dist/pine-core/p-4ea1a4fb.entry.js +0 -2
  804. package/dist/pine-core/p-4fe28624.system.entry.js +0 -2
  805. package/dist/pine-core/p-54e04c59.system.entry.js +0 -2
  806. package/dist/pine-core/p-54e04c59.system.entry.js.map +0 -1
  807. package/dist/pine-core/p-5565ee41.system.entry.js +0 -2
  808. package/dist/pine-core/p-55d120d1.entry.js +0 -2
  809. package/dist/pine-core/p-5a332f9e.system.entry.js +0 -2
  810. package/dist/pine-core/p-5e1804a3.system.entry.js +0 -2
  811. package/dist/pine-core/p-619a6667.system.entry.js +0 -2
  812. package/dist/pine-core/p-6d9ca1ff.system.entry.js +0 -2
  813. package/dist/pine-core/p-6e4be339.system.entry.js +0 -4
  814. package/dist/pine-core/p-6f5dfd01.entry.js +0 -2
  815. package/dist/pine-core/p-730ea265.entry.js +0 -2
  816. package/dist/pine-core/p-73a6c002.entry.js +0 -2
  817. package/dist/pine-core/p-7a12238d.system.entry.js +0 -2
  818. package/dist/pine-core/p-7c2381c5.entry.js +0 -2
  819. package/dist/pine-core/p-7c69ca77.entry.js +0 -2
  820. package/dist/pine-core/p-7c69ca77.entry.js.map +0 -1
  821. package/dist/pine-core/p-7ccd095b.entry.js +0 -2
  822. package/dist/pine-core/p-7ccd095b.entry.js.map +0 -1
  823. package/dist/pine-core/p-818dd3d8.system.entry.js +0 -2
  824. package/dist/pine-core/p-818dd3d8.system.entry.js.map +0 -1
  825. package/dist/pine-core/p-9f7318d7.entry.js +0 -2
  826. package/dist/pine-core/p-BCCWozKV.system.js.map +0 -1
  827. package/dist/pine-core/p-BCGaZxvq.system.js.map +0 -1
  828. package/dist/pine-core/p-BF6EelyL.system.js.map +0 -1
  829. package/dist/pine-core/p-BLpHPllL.system.js.map +0 -1
  830. package/dist/pine-core/p-Bh07GI-d.js +0 -3
  831. package/dist/pine-core/p-Bh07GI-d.js.map +0 -1
  832. package/dist/pine-core/p-Bhj5-yqf.system.js.map +0 -1
  833. package/dist/pine-core/p-BhoJR5O9.system.js.map +0 -1
  834. package/dist/pine-core/p-Bj1vPZM7.system.js.map +0 -1
  835. package/dist/pine-core/p-BnrgLbVq.system.js.map +0 -1
  836. package/dist/pine-core/p-BvtgWXBT.system.js.map +0 -1
  837. package/dist/pine-core/p-C4UrydrO.system.js.map +0 -1
  838. package/dist/pine-core/p-C6_QgODF.system.js.map +0 -1
  839. package/dist/pine-core/p-CSVIgMVz.system.js.map +0 -1
  840. package/dist/pine-core/p-CVjjaBaW.system.js.map +0 -1
  841. package/dist/pine-core/p-CVoRTJJv.system.js.map +0 -1
  842. package/dist/pine-core/p-CZsWy9_t.system.js +0 -3
  843. package/dist/pine-core/p-CZsWy9_t.system.js.map +0 -1
  844. package/dist/pine-core/p-ChQGk39M.system.js.map +0 -1
  845. package/dist/pine-core/p-CpcN1meO.system.js.map +0 -1
  846. package/dist/pine-core/p-CrpTd0PB.system.js.map +0 -1
  847. package/dist/pine-core/p-CtiVxXhr.system.js.map +0 -1
  848. package/dist/pine-core/p-CuF_eckL.system.js.map +0 -1
  849. package/dist/pine-core/p-Cua7cmvq.system.js +0 -2
  850. package/dist/pine-core/p-D-CArvsF.system.js.map +0 -1
  851. package/dist/pine-core/p-DCiTnlD3.system.js.map +0 -1
  852. package/dist/pine-core/p-DPmRw4fA.system.js.map +0 -1
  853. package/dist/pine-core/p-DTMMULoz.system.js.map +0 -1
  854. package/dist/pine-core/p-DvfECQRp.system.js.map +0 -1
  855. package/dist/pine-core/p-O9Boj8Mc.system.js.map +0 -1
  856. package/dist/pine-core/p-a1ddcc69.entry.js +0 -2
  857. package/dist/pine-core/p-a2c309fa.system.entry.js +0 -2
  858. package/dist/pine-core/p-a3503596.entry.js +0 -2
  859. package/dist/pine-core/p-a494b7d1.entry.js +0 -2
  860. package/dist/pine-core/p-ab34c977.system.entry.js +0 -2
  861. package/dist/pine-core/p-ac5eb57e.entry.js +0 -2
  862. package/dist/pine-core/p-bd11961c.entry.js +0 -3
  863. package/dist/pine-core/p-c28c54c2.system.entry.js +0 -2
  864. package/dist/pine-core/p-c7175497.entry.js +0 -2
  865. package/dist/pine-core/p-c7175497.entry.js.map +0 -1
  866. package/dist/pine-core/p-d0efe5e1.entry.js +0 -2
  867. package/dist/pine-core/p-da23f4cf.entry.js +0 -2
  868. package/dist/pine-core/p-db3b827e.system.entry.js +0 -2
  869. package/dist/pine-core/p-db3b827e.system.entry.js.map +0 -1
  870. package/dist/pine-core/p-de4ebf0b.entry.js +0 -2
  871. package/dist/pine-core/p-e22c4870.system.entry.js +0 -2
  872. package/dist/pine-core/p-e25d2c53.entry.js +0 -2
  873. package/dist/pine-core/p-e715d22e.system.entry.js +0 -2
  874. package/dist/pine-core/p-eb3fe298.system.entry.js +0 -2
  875. package/dist/pine-core/p-ee6c07d6.system.entry.js +0 -2
  876. package/dist/pine-core/p-f2344cb2.system.entry.js.map +0 -1
  877. package/dist/pine-core/p-f38e87ad.system.entry.js +0 -2
  878. package/dist/pine-core/p-f70327de.system.entry.js +0 -2
  879. package/dist/pine-core/p-f72243c4.entry.js +0 -2
  880. package/dist/pine-core/p-f72243c4.entry.js.map +0 -1
  881. package/dist/pine-core/p-fb877b9d.entry.js +0 -2
  882. package/dist/pine-core/p-fcde1f61.system.entry.js +0 -2
  883. package/dist/pine-core/p-fcde1f61.system.entry.js.map +0 -1
  884. package/dist/pine-core/p-fdf7a1db.system.entry.js +0 -2
  885. package/dist/pine-core/p-pKEraGuG.system.js.map +0 -1
  886. package/dist/pine-core/p-y8wq27x0.system.js.map +0 -1
  887. package/dist/pine-core/p-zZn2-0Xb.system.js.map +0 -1
  888. package/dist/types/stories/_helpers/index.d.ts +0 -12
  889. /package/dist/pine-core/{p-37795a28.system.entry.js.map → p-00568c20.system.entry.js.map} +0 -0
  890. /package/dist/pine-core/{p-53645ec6.system.entry.js.map → p-03209958.system.entry.js.map} +0 -0
  891. /package/dist/pine-core/{p-1fbe221a.entry.js.map → p-0ace9c16.entry.js.map} +0 -0
  892. /package/dist/pine-core/{p-e47fbd71.entry.js.map → p-10e0be55.entry.js.map} +0 -0
  893. /package/dist/pine-core/{p-b0948892.system.entry.js.map → p-1df25b57.system.entry.js.map} +0 -0
  894. /package/dist/pine-core/{p-d6cff25a.entry.js.map → p-1fa303af.entry.js.map} +0 -0
  895. /package/dist/pine-core/{p-996072ce.entry.js.map → p-2058a93a.entry.js.map} +0 -0
  896. /package/dist/pine-core/{p-7bbe537d.system.entry.js.map → p-2d3da08b.system.entry.js.map} +0 -0
  897. /package/dist/pine-core/{p-7a63e1ec.entry.js.map → p-2f6f60d9.entry.js.map} +0 -0
  898. /package/dist/pine-core/{p-841a6445.entry.js.map → p-3f6b9520.entry.js.map} +0 -0
  899. /package/dist/pine-core/{p-06f164fe.system.entry.js.map → p-3f8a5f3d.system.entry.js.map} +0 -0
  900. /package/dist/pine-core/{p-ba1a4643.system.entry.js.map → p-3f8b0885.system.entry.js.map} +0 -0
  901. /package/dist/pine-core/{p-ba609b1e.entry.js.map → p-43990889.entry.js.map} +0 -0
  902. /package/dist/pine-core/{p-6046e0b1.entry.js.map → p-43f1eead.entry.js.map} +0 -0
  903. /package/dist/pine-core/{p-b151a37d.entry.js.map → p-596acf65.entry.js.map} +0 -0
  904. /package/dist/pine-core/{p-168b5a5b.system.entry.js.map → p-6dcd7876.system.entry.js.map} +0 -0
  905. /package/dist/pine-core/{p-ed214033.entry.js.map → p-7de73ac5.entry.js.map} +0 -0
  906. /package/dist/pine-core/{p-51e0ea73.entry.js.map → p-8c000d7c.entry.js.map} +0 -0
  907. /package/dist/pine-core/{p-5a94e426.system.entry.js.map → p-94b1997d.system.entry.js.map} +0 -0
  908. /package/dist/pine-core/{p-f74bcc1d.entry.js.map → p-9998c2a0.entry.js.map} +0 -0
  909. /package/dist/pine-core/{p-e948a514.system.entry.js.map → p-a11c3642.system.entry.js.map} +0 -0
  910. /package/dist/pine-core/{p-6448829b.system.entry.js.map → p-ac14c8e3.system.entry.js.map} +0 -0
  911. /package/dist/pine-core/{p-1bf75b30.system.entry.js.map → p-ac186cd4.system.entry.js.map} +0 -0
  912. /package/dist/pine-core/{p-fe23aa6f.system.entry.js.map → p-b59a0c6b.system.entry.js.map} +0 -0
  913. /package/dist/pine-core/{p-105951b7.system.entry.js.map → p-bdf8bff3.system.entry.js.map} +0 -0
  914. /package/dist/pine-core/{p-1d83f560.entry.js.map → p-c5013d20.entry.js.map} +0 -0
  915. /package/dist/pine-core/{p-01c4eac9.entry.js.map → p-cf4df489.entry.js.map} +0 -0
  916. /package/dist/pine-core/{p-fdf7a1db.system.entry.js.map → p-d0e336b7.system.entry.js.map} +0 -0
  917. /package/dist/pine-core/{p-b07bb58f.system.entry.js.map → p-d1313dd6.system.entry.js.map} +0 -0
  918. /package/dist/pine-core/{p-fbf10641.entry.js.map → p-e0f21c22.entry.js.map} +0 -0
  919. /package/dist/pine-core/{p-285bc185.entry.js.map → p-e7e25d42.entry.js.map} +0 -0
  920. /package/dist/pine-core/{p-5d379706.system.entry.js.map → p-ec32c44f.system.entry.js.map} +0 -0
  921. /package/dist/pine-core/{p-2f5d1411.entry.js.map → p-f92055f3.entry.js.map} +0 -0
  922. /package/dist/pine-core/{p-4792d0c8.system.entry.js.map → p-fa21e054.system.entry.js.map} +0 -0
@@ -1,2 +1,2 @@
1
- import{__awaiter,__generator}from"tslib";import{r as registerInstance,c as createEvent,h,H as Host}from"./index-Bh07GI-d.js";import{a as copy}from"./index-CvGEHHLR.js";var pdsCopytextCss=":host(.pds-copytext){--copytext-color-background-hover:var(--pine-color-grey-200)}:host(.pds-copytext) pds-button{-ms-flex-align:center;align-items:center;background:var(--pine-color-secondary);border-radius:var(--pine-border-radius-full);border-width:var(--pine-dimension-none);display:-ms-inline-flexbox;display:inline-flex;font-family:var(--pine-font-family-heading);font-size:var(--pine-font-size-body-md);font-weight:var(--pine-font-weight-body-medium);letter-spacing:var(--pine-letter-spacing);line-height:var(--pine-line-height-body);max-width:100%}:host(.pds-copytext) pds-button::part(button){padding-block:var(--pine-dimension-2xs);padding-inline:var(--pine-dimension-xs)}:host(.pds-copytext) pds-button::part(button):hover{background-color:var(--copytext-color-background-hover);color:var(--pine-color-text-secondary-hover)}:host(.pds-copytext) pds-button span{font-weight:var(--pine-font-weight-medium);-webkit-margin-end:var(--pine-dimension-xs);margin-inline-end:var(--pine-dimension-xs);white-space:nowrap}:host(.pds-copytext) pds-button :nth-child(2){-ms-flex-negative:0;flex-shrink:0}:host(.pds-copytext):host(.pds-copytext--bordered){border-width:var(--pine-dimension-none);padding:var(--pine-dimension-none)}:host(.pds-copytext):host(.pds-copytext--bordered) pds-button{padding:var(--pine-dimension-none)}:host(.pds-copytext):host(.pds-copytext--bordered) pds-button::part(button){padding:var(--pine-dimension-none)}:host(.pds-copytext):host(.pds-copytext--bordered) pds-button::part(button):hover{background-color:transparent}:host(.pds-copytext):host(.pds-copytext--bordered) span{border:var(--pine-border);border-radius:var(--pine-border-radius-full);-webkit-margin-end:var(--pine-dimension-sm);margin-inline-end:var(--pine-dimension-sm);padding-block:var(--pine-dimension-xs);padding-inline:var(--pine-dimension-sm)}:host(.pds-copytext):host(.pds-copytext--bordered) :hover span{border:var(--pine-border-hover)}:host(.pds-copytext):host(.pds-copytext--full-width) pds-button,:host(.pds-copytext):host(.pds-copytext--truncated) pds-button{display:-ms-inline-flexbox;display:inline-flex;min-width:auto;width:100%}:host(.pds-copytext):host(.pds-copytext--full-width) pds-button::part(button-content),:host(.pds-copytext):host(.pds-copytext--full-width) pds-button::part(button-text),:host(.pds-copytext):host(.pds-copytext--truncated) pds-button::part(button-content),:host(.pds-copytext):host(.pds-copytext--truncated) pds-button::part(button-text){-ms-flex-negative:1;flex-shrink:1;width:100%}:host(.pds-copytext):host(.pds-copytext--full-width) pds-button span,:host(.pds-copytext):host(.pds-copytext--truncated) pds-button span{text-align:start;width:100%}:host(.pds-copytext):host(.pds-copytext--full-width) pds-button{-ms-flex-pack:justify;justify-content:space-between}:host(.pds-copytext):host(.pds-copytext--truncated) pds-button span{overflow:hidden;text-overflow:ellipsis}";var PdsCopytext=function(){function t(t){var e=this;registerInstance(this,t);this.pdsCopyTextClick=createEvent(this,"pdsCopyTextClick");this.border=true;this.fullWidth=false;this.truncate=false;this.copyToClipboard=function(t){return __awaiter(e,void 0,void 0,(function(){var e;return __generator(this,(function(o){switch(o.label){case 0:o.trys.push([0,3,,4]);if(!(typeof navigator.clipboard!=="undefined"))return[3,2];return[4,navigator.clipboard.writeText(t)];case 1:o.sent();this.pdsCopyTextClick.emit("Copied to clipboard");o.label=2;case 2:return[3,4];case 3:e=o.sent();this.pdsCopyTextClick.emit("Error writing text to clipboard: ".concat(e));return[3,4];case 4:return[2]}}))}))};this.handleClick=function(){e.copyToClipboard(e.value)}}t.prototype.classNames=function(){var t=["pds-copytext"];if(this.border){t.push("pds-copytext--bordered")}if(this.fullWidth){t.push("pds-copytext--full-width")}if(this.truncate){t.push("pds-copytext--truncated")}return t.join(" ")};t.prototype.render=function(){return h(Host,{key:"4e2807a9779817005eb3278473be655d7115923b",class:this.classNames(),id:this.componentId},h("pds-button",{key:"5a1ca42426b7c11e3bbc7667d42ba3aba8d9cc7d",type:"button",variant:"unstyled",onClick:this.handleClick},h("span",{key:"5d6be503f6a31e07af483134b4c3a5f8699f43c3"},this.value),h("pds-icon",{key:"6e1ad7232addedf1d34ed6a3fa1c8ddc11000ef3",icon:copy,size:"16px"})))};return t}();PdsCopytext.style=pdsCopytextCss;export{PdsCopytext as pds_copytext};
1
+ import{__awaiter,__generator}from"tslib";import{r as registerInstance,c as createEvent,h,H as Host}from"./index-DHPhrb5T.js";import{a as copy}from"./index-CShvJnsl.js";var pdsCopytextCss=":host(.pds-copytext){--copytext-color-background-hover:var(--pine-color-background-inset)}:host(.pds-copytext) pds-button{-ms-flex-align:center;align-items:center;background:var(--pine-color-secondary);border-radius:var(--pine-border-radius-full);border-width:var(--pine-dimension-none);display:-ms-inline-flexbox;display:inline-flex;font-family:var(--pine-font-family-heading);font-size:var(--pine-font-size-body-md);font-weight:var(--pine-font-weight-body-medium);letter-spacing:var(--pine-letter-spacing);line-height:var(--pine-line-height-body);max-width:100%}:host(.pds-copytext) pds-button::part(button){padding-block:var(--pine-dimension-2xs);padding-inline:var(--pine-dimension-xs)}:host(.pds-copytext) pds-button::part(button):hover{background-color:var(--copytext-color-background-hover);color:var(--pine-color-text-secondary-hover)}:host(.pds-copytext) pds-button span{font-weight:var(--pine-font-weight-medium);-webkit-margin-end:var(--pine-dimension-xs);margin-inline-end:var(--pine-dimension-xs);white-space:nowrap}:host(.pds-copytext) pds-button :nth-child(2){-ms-flex-negative:0;flex-shrink:0}:host(.pds-copytext):host(.pds-copytext--bordered){border-width:var(--pine-dimension-none);padding:var(--pine-dimension-none)}:host(.pds-copytext):host(.pds-copytext--bordered) pds-button{padding:var(--pine-dimension-none)}:host(.pds-copytext):host(.pds-copytext--bordered) pds-button::part(button){padding:var(--pine-dimension-none)}:host(.pds-copytext):host(.pds-copytext--bordered) pds-button::part(button):hover{background-color:transparent}:host(.pds-copytext):host(.pds-copytext--bordered) span{border:var(--pine-border);border-radius:var(--pine-border-radius-full);-webkit-margin-end:var(--pine-dimension-sm);margin-inline-end:var(--pine-dimension-sm);padding-block:var(--pine-dimension-xs);padding-inline:var(--pine-dimension-sm)}:host(.pds-copytext):host(.pds-copytext--bordered) :hover span{border:var(--pine-border-hover)}:host(.pds-copytext):host(.pds-copytext--full-width) pds-button,:host(.pds-copytext):host(.pds-copytext--truncated) pds-button{display:-ms-inline-flexbox;display:inline-flex;min-width:auto;width:100%}:host(.pds-copytext):host(.pds-copytext--full-width) pds-button::part(button-content),:host(.pds-copytext):host(.pds-copytext--full-width) pds-button::part(button-text),:host(.pds-copytext):host(.pds-copytext--truncated) pds-button::part(button-content),:host(.pds-copytext):host(.pds-copytext--truncated) pds-button::part(button-text){-ms-flex-negative:1;flex-shrink:1;width:100%}:host(.pds-copytext):host(.pds-copytext--full-width) pds-button span,:host(.pds-copytext):host(.pds-copytext--truncated) pds-button span{text-align:start;width:100%}:host(.pds-copytext):host(.pds-copytext--full-width) pds-button{-ms-flex-pack:justify;justify-content:space-between}:host(.pds-copytext):host(.pds-copytext--truncated) pds-button span{overflow:hidden;text-overflow:ellipsis}";var PdsCopytext=function(){function t(t){var e=this;registerInstance(this,t);this.pdsCopyTextClick=createEvent(this,"pdsCopyTextClick");this.border=true;this.fullWidth=false;this.truncate=false;this.copyToClipboard=function(t){return __awaiter(e,void 0,void 0,(function(){var e;return __generator(this,(function(o){switch(o.label){case 0:o.trys.push([0,3,,4]);if(!(typeof navigator.clipboard!=="undefined"))return[3,2];return[4,navigator.clipboard.writeText(t)];case 1:o.sent();this.pdsCopyTextClick.emit("Copied to clipboard");o.label=2;case 2:return[3,4];case 3:e=o.sent();this.pdsCopyTextClick.emit("Error writing text to clipboard: ".concat(e));return[3,4];case 4:return[2]}}))}))};this.handleClick=function(){e.copyToClipboard(e.value)}}t.prototype.classNames=function(){var t=["pds-copytext"];if(this.border){t.push("pds-copytext--bordered")}if(this.fullWidth){t.push("pds-copytext--full-width")}if(this.truncate){t.push("pds-copytext--truncated")}return t.join(" ")};t.prototype.render=function(){return h(Host,{key:"97cd9f18aa1a854f034e0d8068ffbebe5021003e",class:this.classNames(),id:this.componentId},h("pds-button",{key:"747127e595b31a1b184993cbb982a0a48eb29a81",type:"button",variant:"unstyled",onClick:this.handleClick},h("span",{key:"05ae61122384f3196215a9d55f564ae8e0c5e03e"},this.value),h("pds-icon",{key:"6b6dac8ee91a83c6b42d16e257cc0d71e807be24",icon:copy,size:"16px"})))};return t}();PdsCopytext.style=pdsCopytextCss;export{PdsCopytext as pds_copytext};
2
2
  //# sourceMappingURL=pds-copytext.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pds-copytext.entry.js","sources":["src/components/pds-copytext/pds-copytext.scss?tag=pds-copytext&encapsulation=shadow","src/components/pds-copytext/pds-copytext.tsx"],"sourcesContent":[":host(.pds-copytext) {\n // Update custom prop usage in Button before changing\n --copytext-color-background-hover: var(--pine-color-grey-200);\n\n\n pds-button {\n align-items: center;\n background: var(--pine-color-secondary);\n border-radius: var(--pine-border-radius-full);\n border-width: var(--pine-dimension-none);\n display: inline-flex;\n font-family: var(--pine-font-family-heading);\n font-size: var(--pine-font-size-body-md);\n font-weight: var(--pine-font-weight-body-medium);\n letter-spacing: var(--pine-letter-spacing);\n line-height: var(--pine-line-height-body);\n max-width: 100%;\n\n &::part(button) {\n padding-block: var(--pine-dimension-2xs);\n padding-inline: var(--pine-dimension-xs);\n }\n\n &::part(button):hover {\n // Update custom prop usage in Button before changing\n background-color: var(--copytext-color-background-hover);\n color: var(--pine-color-text-secondary-hover);\n }\n\n span {\n font-weight: var(--pine-font-weight-medium);\n margin-inline-end: var(--pine-dimension-xs);\n white-space: nowrap;\n }\n\n :nth-child(2) {\n flex-shrink: 0;\n }\n }\n\n // bordered\n\n &:host(.pds-copytext--bordered) {\n border-width: var(--pine-dimension-none);\n padding: var(--pine-dimension-none);\n\n pds-button {\n padding: var(--pine-dimension-none);\n\n &::part(button) {\n padding: var(--pine-dimension-none);\n }\n\n &::part(button):hover {\n background-color: transparent;\n }\n }\n\n span {\n border: var(--pine-border);\n border-radius: var(--pine-border-radius-full);\n margin-inline-end: var(--pine-dimension-sm);\n padding-block: var(--pine-dimension-xs);\n padding-inline: var(--pine-dimension-sm);\n }\n\n :hover {\n span {\n border: var(--pine-border-hover);\n }\n }\n }\n\n // full width and truncated\n &:host(.pds-copytext--full-width),\n &:host(.pds-copytext--truncated) {\n pds-button {\n display: inline-flex;\n min-width: auto;\n width: 100%;\n\n &::part(button-content),\n &::part(button-text) {\n flex-shrink: 1;\n width: 100%;\n }\n\n span {\n text-align: start;\n width: 100%;\n }\n }\n }\n\n // full width\n &:host(.pds-copytext--full-width) {\n pds-button {\n justify-content: space-between;\n }\n }\n\n // truncated\n &:host(.pds-copytext--truncated) {\n pds-button span {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n}\n","import { Component, Event, EventEmitter, Host, h, Prop } from '@stencil/core';\n\nimport { copy as copyIcon } from '@pine-ds/icons/icons';\n\n@Component({\n tag: 'pds-copytext',\n styleUrls: ['pds-copytext.scss'],\n shadow: true,\n})\nexport class PdsCopytext {\n /**\n * Determines whether `copytext` should have a visible border.\n * @defaultValue true\n */\n @Prop({ reflect: true }) border = true;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Determines whether `copytext` should expand to the full width of its container.\n * @defaultValue false\n */\n @Prop() fullWidth = false;\n\n /**\n * Determines whether the `value` should truncate and display with an ellipsis.\n * @defaultValue false\n */\n @Prop() truncate = false;\n\n /**\n * The string displayed that is also copied to the clipboard upon interaction.\n */\n @Prop() value!: string;\n\n /**\n * Event fired when copyText button is clicked.\n */\n @Event() pdsCopyTextClick: EventEmitter;\n\n private copyToClipboard = async (value: string) => {\n try {\n if (typeof navigator.clipboard !== 'undefined') {\n await navigator.clipboard.writeText(value);\n this.pdsCopyTextClick.emit('Copied to clipboard');\n }\n } catch (err) {\n this.pdsCopyTextClick.emit(`Error writing text to clipboard: ${err}`);\n }\n };\n\n private handleClick = () => {\n this.copyToClipboard(this.value);\n };\n\n private classNames() {\n const classNames = ['pds-copytext'];\n\n if (this.border) {\n classNames.push('pds-copytext--bordered');\n }\n\n if (this.fullWidth) {\n classNames.push('pds-copytext--full-width');\n }\n\n if (this.truncate) {\n classNames.push('pds-copytext--truncated');\n }\n\n return classNames.join(' ');\n }\n\n render() {\n return (\n <Host class={this.classNames()} id={this.componentId}>\n <pds-button type=\"button\" variant=\"unstyled\" onClick={this.handleClick}>\n <span>{this.value}</span>\n <pds-icon icon={copyIcon} size=\"16px\"></pds-icon>\n </pds-button>\n </Host>\n );\n }\n}\n"],"names":["copyIcon"],"mappings":";;;AAAA,MAAM,cAAc,GAAG,y1FAAy1F;;MCSn2F,WAAW,GAAA,MAAA;AALxB,IAAA,WAAA,CAAA,OAAA,EAAA;;;AAME;;;AAGG;AACsB,QAAA,IAAM,CAAA,MAAA,GAAG,IAAI;AAOtC;;;AAGG;AACK,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK;AAEzB;;;AAGG;AACK,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;AAYhB,QAAA,IAAA,CAAA,eAAe,GAAG,OAAO,KAAa,KAAI;AAChD,YAAA,IAAI;AACF,gBAAA,IAAI,OAAO,SAAS,CAAC,SAAS,KAAK,WAAW,EAAE;oBAC9C,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC;AAC1C,oBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,qBAAqB,CAAC;;;YAEnD,OAAO,GAAG,EAAE;gBACZ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAoC,iCAAA,EAAA,GAAG,CAAE,CAAA,CAAC;;AAEzE,SAAC;AAEO,QAAA,IAAW,CAAA,WAAA,GAAG,MAAK;AACzB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;AAClC,SAAC;AA8BF;IA5BS,UAAU,GAAA;AAChB,QAAA,MAAM,UAAU,GAAG,CAAC,cAAc,CAAC;AAEnC,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,UAAU,CAAC,IAAI,CAAC,wBAAwB,CAAC;;AAG3C,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,UAAU,CAAC,IAAI,CAAC,0BAA0B,CAAC;;AAG7C,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,UAAU,CAAC,IAAI,CAAC,yBAAyB,CAAC;;AAG5C,QAAA,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;;IAG7B,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,EAAA,EAClD,CAAA,CAAA,YAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAY,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,UAAU,EAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAA,EACpE,CAAO,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAA,IAAI,CAAC,KAAK,CAAQ,EACzB,CAAU,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAEA,IAAQ,EAAE,IAAI,EAAC,MAAM,EAAY,CAAA,CACtC,CACR;;;;;;;"}
1
+ {"version":3,"file":"pds-copytext.entry.js","sources":["src/components/pds-copytext/pds-copytext.scss?tag=pds-copytext&encapsulation=shadow","src/components/pds-copytext/pds-copytext.tsx"],"sourcesContent":[":host(.pds-copytext) {\n // Update custom prop usage in Button before changing\n --copytext-color-background-hover: var(--pine-color-background-inset);\n\n\n pds-button {\n align-items: center;\n background: var(--pine-color-secondary);\n border-radius: var(--pine-border-radius-full);\n border-width: var(--pine-dimension-none);\n display: inline-flex;\n font-family: var(--pine-font-family-heading);\n font-size: var(--pine-font-size-body-md);\n font-weight: var(--pine-font-weight-body-medium);\n letter-spacing: var(--pine-letter-spacing);\n line-height: var(--pine-line-height-body);\n max-width: 100%;\n\n &::part(button) {\n padding-block: var(--pine-dimension-2xs);\n padding-inline: var(--pine-dimension-xs);\n }\n\n &::part(button):hover {\n // Update custom prop usage in Button before changing\n background-color: var(--copytext-color-background-hover);\n color: var(--pine-color-text-secondary-hover);\n }\n\n span {\n font-weight: var(--pine-font-weight-medium);\n margin-inline-end: var(--pine-dimension-xs);\n white-space: nowrap;\n }\n\n :nth-child(2) {\n flex-shrink: 0;\n }\n }\n\n // bordered\n\n &:host(.pds-copytext--bordered) {\n border-width: var(--pine-dimension-none);\n padding: var(--pine-dimension-none);\n\n pds-button {\n padding: var(--pine-dimension-none);\n\n &::part(button) {\n padding: var(--pine-dimension-none);\n }\n\n &::part(button):hover {\n background-color: transparent;\n }\n }\n\n span {\n border: var(--pine-border);\n border-radius: var(--pine-border-radius-full);\n margin-inline-end: var(--pine-dimension-sm);\n padding-block: var(--pine-dimension-xs);\n padding-inline: var(--pine-dimension-sm);\n }\n\n :hover {\n span {\n border: var(--pine-border-hover);\n }\n }\n }\n\n // full width and truncated\n &:host(.pds-copytext--full-width),\n &:host(.pds-copytext--truncated) {\n pds-button {\n display: inline-flex;\n min-width: auto;\n width: 100%;\n\n &::part(button-content),\n &::part(button-text) {\n flex-shrink: 1;\n width: 100%;\n }\n\n span {\n text-align: start;\n width: 100%;\n }\n }\n }\n\n // full width\n &:host(.pds-copytext--full-width) {\n pds-button {\n justify-content: space-between;\n }\n }\n\n // truncated\n &:host(.pds-copytext--truncated) {\n pds-button span {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n}\n","import { Component, Event, EventEmitter, Host, h, Prop } from '@stencil/core';\n\nimport { copy as copyIcon } from '@pine-ds/icons/icons';\n\n@Component({\n tag: 'pds-copytext',\n styleUrls: ['pds-copytext.scss'],\n shadow: true,\n})\nexport class PdsCopytext {\n /**\n * Determines whether `copytext` should have a visible border.\n * @defaultValue true\n */\n @Prop({ reflect: true }) border = true;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Determines whether `copytext` should expand to the full width of its container.\n * @defaultValue false\n */\n @Prop() fullWidth = false;\n\n /**\n * Determines whether the `value` should truncate and display with an ellipsis.\n * @defaultValue false\n */\n @Prop() truncate = false;\n\n /**\n * The string displayed that is also copied to the clipboard upon interaction.\n */\n @Prop() value!: string;\n\n /**\n * Event fired when copyText button is clicked.\n */\n @Event() pdsCopyTextClick: EventEmitter<string>;\n\n private copyToClipboard = async (value: string) => {\n try {\n if (typeof navigator.clipboard !== 'undefined') {\n await navigator.clipboard.writeText(value);\n this.pdsCopyTextClick.emit('Copied to clipboard');\n }\n } catch (err) {\n this.pdsCopyTextClick.emit(`Error writing text to clipboard: ${err}`);\n }\n };\n\n private handleClick = () => {\n this.copyToClipboard(this.value);\n };\n\n private classNames() {\n const classNames = ['pds-copytext'];\n\n if (this.border) {\n classNames.push('pds-copytext--bordered');\n }\n\n if (this.fullWidth) {\n classNames.push('pds-copytext--full-width');\n }\n\n if (this.truncate) {\n classNames.push('pds-copytext--truncated');\n }\n\n return classNames.join(' ');\n }\n\n render() {\n return (\n <Host class={this.classNames()} id={this.componentId}>\n <pds-button type=\"button\" variant=\"unstyled\" onClick={this.handleClick}>\n <span>{this.value}</span>\n <pds-icon icon={copyIcon} size=\"16px\"></pds-icon>\n </pds-button>\n </Host>\n );\n }\n}\n"],"names":["copyIcon"],"mappings":";;;AAAA,MAAM,cAAc,GAAG,i2FAAi2F;;MCS32F,WAAW,GAAA,MAAA;AALxB,IAAA,WAAA,CAAA,OAAA,EAAA;;;AAME;;;AAGG;AACsB,QAAA,IAAM,CAAA,MAAA,GAAG,IAAI;AAOtC;;;AAGG;AACK,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK;AAEzB;;;AAGG;AACK,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;AAYhB,QAAA,IAAA,CAAA,eAAe,GAAG,OAAO,KAAa,KAAI;AAChD,YAAA,IAAI;AACF,gBAAA,IAAI,OAAO,SAAS,CAAC,SAAS,KAAK,WAAW,EAAE;oBAC9C,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC;AAC1C,oBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,qBAAqB,CAAC;;;YAEnD,OAAO,GAAG,EAAE;gBACZ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAoC,iCAAA,EAAA,GAAG,CAAE,CAAA,CAAC;;AAEzE,SAAC;AAEO,QAAA,IAAW,CAAA,WAAA,GAAG,MAAK;AACzB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;AAClC,SAAC;AA8BF;IA5BS,UAAU,GAAA;AAChB,QAAA,MAAM,UAAU,GAAG,CAAC,cAAc,CAAC;AAEnC,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,UAAU,CAAC,IAAI,CAAC,wBAAwB,CAAC;;AAG3C,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,UAAU,CAAC,IAAI,CAAC,0BAA0B,CAAC;;AAG7C,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,UAAU,CAAC,IAAI,CAAC,yBAAyB,CAAC;;AAG5C,QAAA,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;;IAG7B,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,EAAA,EAClD,CAAA,CAAA,YAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAY,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,UAAU,EAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAA,EACpE,CAAO,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAA,IAAI,CAAC,KAAK,CAAQ,EACzB,CAAU,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAEA,IAAQ,EAAE,IAAI,EAAC,MAAM,EAAY,CAAA,CACtC,CACR;;;;;;;"}
@@ -1,2 +1,2 @@
1
- import{r as registerInstance,h,H as Host}from"./index-Bh07GI-d.js";var pdsDividerCss=".pds-divider{background:var(--pine-color-border);border:0;display:-ms-flexbox;display:flex;height:var(--pine-border-width);margin:0;width:100%}.pds-divider--vertical{height:100%;width:1px}.pds-divider--offset-xxs{margin:0 calc(var(--pine-dimension-2xs) * -1);padding:0 var(--pine-dimension-2xs)}.pds-divider--offset-xxs.pds-divider--vertical{margin:calc(var(--pine-dimension-2xs) * -1) 0;padding:var(--pine-dimension-2xs) 0}.pds-divider--offset-xs{margin:0 calc(var(--pine-dimension-xs) * -1);padding:0 var(--pine-dimension-xs)}.pds-divider--offset-xs.pds-divider--vertical{margin:calc(var(--pine-dimension-xs) * -1) 0;padding:var(--pine-dimension-xs) 0}.pds-divider--offset-sm{margin:0 calc(var(--pine-dimension-sm) * -1);padding:0 var(--pine-dimension-sm)}.pds-divider--offset-sm.pds-divider--vertical{margin:calc(var(--pine-dimension-sm) * -1) 0;padding:var(--pine-dimension-sm) 0}.pds-divider--offset-md{margin:0 calc(var(--pine-dimension-md) * -1);padding:0 var(--pine-dimension-md)}.pds-divider--offset-md.pds-divider--vertical{margin:calc(var(--pine-dimension-md) * -1) 0;padding:var(--pine-dimension-md) 0}.pds-divider--offset-lg{margin:0 calc(var(--pine-dimension-lg) * -1);padding:0 var(--pine-dimension-lg)}.pds-divider--offset-lg.pds-divider--vertical{margin:calc(var(--pine-dimension-lg) * -1) 0;padding:var(--pine-dimension-lg) 0}.pds-divider--offset-xl{margin:0 calc(var(--pine-dimension-xl) * -1);padding:0 var(--pine-dimension-xl)}.pds-divider--offset-xl.pds-divider--vertical{margin:calc(var(--pine-dimension-xl) * -1) 0;padding:var(--pine-dimension-xl) 0}.pds-divider--offset-xxl{margin:0 calc(var(--pine-dimension-2xl) * -1);padding:0 var(--pine-dimension-2xl)}.pds-divider--offset-xxl.pds-divider--vertical{margin:calc(var(--pine-dimension-2xl) * -1) 0;padding:var(--pine-dimension-2xl) 0}@media (max-width: 767px){.pds-divider--vertical{display:none}}";var PdsDivider=function(){function i(i){registerInstance(this,i);this.vertical=false}i.prototype.classNames=function(){var i=["pds-divider"];if(this.vertical){i.push("pds-divider--vertical")}if(this.offset){var d="pds-divider--offset-"+this.offset;i.push(d)}return i.join(" ")};i.prototype.render=function(){return h(Host,{key:"c3a01882db1119b8397353aaed193813cba0bfb8",id:this.componentId},h("hr",{key:"fe20a28dbd2f10cec125df4dbb4ba7a2837628f1",class:this.classNames()}))};return i}();PdsDivider.style=pdsDividerCss;export{PdsDivider as pds_divider};
1
+ import{r as registerInstance,h,H as Host}from"./index-DHPhrb5T.js";var pdsDividerCss=".pds-divider{background:var(--pine-color-border);border:0;display:-ms-flexbox;display:flex;height:var(--pine-border-width);margin:0;width:100%}.pds-divider--vertical{height:100%;width:1px}.pds-divider--offset-xxs{margin:0 calc(var(--pine-dimension-2xs) * -1);padding:0 var(--pine-dimension-2xs)}.pds-divider--offset-xxs.pds-divider--vertical{margin:calc(var(--pine-dimension-2xs) * -1) 0;padding:var(--pine-dimension-2xs) 0}.pds-divider--offset-xs{margin:0 calc(var(--pine-dimension-xs) * -1);padding:0 var(--pine-dimension-xs)}.pds-divider--offset-xs.pds-divider--vertical{margin:calc(var(--pine-dimension-xs) * -1) 0;padding:var(--pine-dimension-xs) 0}.pds-divider--offset-sm{margin:0 calc(var(--pine-dimension-sm) * -1);padding:0 var(--pine-dimension-sm)}.pds-divider--offset-sm.pds-divider--vertical{margin:calc(var(--pine-dimension-sm) * -1) 0;padding:var(--pine-dimension-sm) 0}.pds-divider--offset-md{margin:0 calc(var(--pine-dimension-md) * -1);padding:0 var(--pine-dimension-md)}.pds-divider--offset-md.pds-divider--vertical{margin:calc(var(--pine-dimension-md) * -1) 0;padding:var(--pine-dimension-md) 0}.pds-divider--offset-lg{margin:0 calc(var(--pine-dimension-lg) * -1);padding:0 var(--pine-dimension-lg)}.pds-divider--offset-lg.pds-divider--vertical{margin:calc(var(--pine-dimension-lg) * -1) 0;padding:var(--pine-dimension-lg) 0}.pds-divider--offset-xl{margin:0 calc(var(--pine-dimension-xl) * -1);padding:0 var(--pine-dimension-xl)}.pds-divider--offset-xl.pds-divider--vertical{margin:calc(var(--pine-dimension-xl) * -1) 0;padding:var(--pine-dimension-xl) 0}.pds-divider--offset-xxl{margin:0 calc(var(--pine-dimension-2xl) * -1);padding:0 var(--pine-dimension-2xl)}.pds-divider--offset-xxl.pds-divider--vertical{margin:calc(var(--pine-dimension-2xl) * -1) 0;padding:var(--pine-dimension-2xl) 0}@media (max-width: 767px){.pds-divider--vertical{display:none}}";var PdsDivider=function(){function i(i){registerInstance(this,i);this.vertical=false}i.prototype.classNames=function(){var i=["pds-divider"];if(this.vertical){i.push("pds-divider--vertical")}if(this.offset){var d="pds-divider--offset-"+this.offset;i.push(d)}return i.join(" ")};i.prototype.render=function(){return h(Host,{key:"c3a01882db1119b8397353aaed193813cba0bfb8",id:this.componentId},h("hr",{key:"fe20a28dbd2f10cec125df4dbb4ba7a2837628f1",class:this.classNames()}))};return i}();PdsDivider.style=pdsDividerCss;export{PdsDivider as pds_divider};
2
2
  //# sourceMappingURL=pds-divider.entry.js.map
@@ -1,2 +1,2 @@
1
- import{__awaiter,__generator}from"tslib";import{r as registerInstance,c as createEvent,h,H as Host,a as getElement}from"./index-Bh07GI-d.js";var pdsDropdownMenuItemCss=":host{cursor:pointer;display:-ms-flexbox;display:flex;width:100%;}:host(.is-disabled){cursor:not-allowed !important;opacity:0.5 !important}:host(.is-disabled) .pds-dropdown-menu-item__content{cursor:not-allowed !important;pointer-events:none !important}.pds-dropdown-menu-item__content{-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:var(--pine-dimension-xs);display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;font:var(--pine-typography-body-medium);gap:var(--pine-dimension-xs);margin:calc(var(--pine-border-width) + 2px);padding:var(--pine-dimension-xs);text-align:start;width:100%;}.pds-dropdown-menu-item__content:hover{background-color:var(--pine-color-grey-150);color:var(--pine-color-text-hover)}.pds-dropdown-menu-item__content:focus,.pds-dropdown-menu-item__content:focus-visible,.pds-dropdown-menu-item__content.has-focus{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}:host(.destructive) .pds-dropdown-menu-item__content{-ms-flex-align:center;align-items:center;color:var(--pine-color-danger)}:host(.destructive) .pds-dropdown-menu-item__content:hover{background-color:var(--pine-color-danger-disabled);color:var(--pine-color-danger-hover)}:host(.destructive) .pds-dropdown-menu-item__content:focus,:host(.destructive) .pds-dropdown-menu-item__content:focus-visible,:host(.destructive) .pds-dropdown-menu-item__content.has-focus{background-color:var(--pine-color-danger-disabled);outline:var(--pine-outline-focus-danger);outline-offset:var(--pine-border-width)}pds-link::part(link):focus,pds-link::part(link):focus-visible{-webkit-box-shadow:none;box-shadow:none;outline:none}pds-link::part(link){display:block;margin-inline:calc(var(--pine-dimension-xs) * -1);padding-inline:var(--pine-dimension-xs);width:100%}";var PdsDropdownMenuItem=function(){function n(n){var e=this;registerInstance(this,n);this.pdsClick=createEvent(this,"pdsClick");this.destructive=false;this.disabled=false;this.hasFocus=false;this.handleFocus=function(){e.hasFocus=true};this.handleBlur=function(){e.hasFocus=false};this.handleKeyDown=function(n){if(!e.disabled&&n.key==="Enter"){if(!e.href){n.preventDefault()}e.handleClick()}}}n.prototype.clickItem=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(n){this.handleClick();return[2]}))}))};n.prototype.handleClick=function(){var n;var e=Array.from(this.host.parentNode.children).filter((function(n){return n.tagName.toLowerCase()==="pds-dropdown-menu-item"}));var t=e.indexOf(this.host);var o=((n=this.host.textContent)===null||n===void 0?void 0:n.trim())||"";this.pdsClick.emit({itemIndex:t,item:this.host,content:o})};n.prototype.renderElement=function(){if(this.href!==undefined){return h("pds-link",{href:this.disabled?null:this.href,class:{"pds-dropdown-menu-item__content":true,"has-focus":this.hasFocus},tabIndex:this.disabled?-1:0,onKeyDown:this.handleKeyDown,onFocus:this.handleFocus,onBlur:this.handleBlur,"aria-disabled":this.disabled?"true":null},h("slot",null))}return h("button",{class:{"pds-dropdown-menu-item__content":true,"has-focus":this.hasFocus},tabIndex:this.disabled?-1:0,type:"button",onKeyDown:this.handleKeyDown,onFocus:this.handleFocus,onBlur:this.handleBlur,disabled:this.disabled,"aria-disabled":this.disabled?"true":null},h("slot",null))};n.prototype.render=function(){var n=this;return h(Host,{key:"89c2973b952f2a2d0b7054817c0532f8654ae279",id:this.componentId,class:{"is-disabled":this.disabled,destructive:!this.disabled&&this.destructive},onClick:function(){return!n.disabled&&n.handleClick()},role:"none",tabIndex:-1,"aria-disabled":this.disabled?"true":null},this.renderElement())};Object.defineProperty(n.prototype,"host",{get:function(){return getElement(this)},enumerable:false,configurable:true});return n}();PdsDropdownMenuItem.style=pdsDropdownMenuItemCss;export{PdsDropdownMenuItem as pds_dropdown_menu_item};
1
+ import{__awaiter,__generator}from"tslib";import{r as registerInstance,c as createEvent,h,H as Host,a as getElement}from"./index-DHPhrb5T.js";var pdsDropdownMenuItemCss=":host{cursor:pointer;display:-ms-flexbox;display:flex;width:100%;}:host(.is-disabled){cursor:not-allowed !important;opacity:0.5 !important}:host(.is-disabled) .pds-dropdown-menu-item__content{cursor:not-allowed !important;pointer-events:none !important}.pds-dropdown-menu-item__content{-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:var(--pine-dimension-xs);color:var(--pine-color-text);display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;font:var(--pine-typography-body-medium);gap:var(--pine-dimension-xs);margin:calc(var(--pine-border-width) + 2px);padding:var(--pine-dimension-xs);text-align:start;width:100%;}.pds-dropdown-menu-item__content:hover{background-color:var(--pine-color-background-muted);color:var(--pine-color-text-hover)}.pds-dropdown-menu-item__content:focus,.pds-dropdown-menu-item__content:focus-visible,.pds-dropdown-menu-item__content.has-focus{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}:host(.destructive) .pds-dropdown-menu-item__content{-ms-flex-align:center;align-items:center;color:var(--pine-color-danger)}:host(.destructive) .pds-dropdown-menu-item__content:hover{background-color:var(--pine-color-danger-disabled);color:var(--pine-color-danger-hover)}:host(.destructive) .pds-dropdown-menu-item__content:focus,:host(.destructive) .pds-dropdown-menu-item__content:focus-visible,:host(.destructive) .pds-dropdown-menu-item__content.has-focus{background-color:var(--pine-color-danger-disabled);outline:var(--pine-outline-focus-danger);outline-offset:var(--pine-border-width)}pds-link::part(link):focus,pds-link::part(link):focus-visible{-webkit-box-shadow:none;box-shadow:none;outline:none}pds-link::part(link){display:block;margin-inline:calc(var(--pine-dimension-xs) * -1);padding-inline:var(--pine-dimension-xs);width:100%}";var PdsDropdownMenuItem=function(){function n(n){var e=this;registerInstance(this,n);this.pdsClick=createEvent(this,"pdsClick");this.destructive=false;this.disabled=false;this.hasFocus=false;this.handleFocus=function(){e.hasFocus=true};this.handleBlur=function(){e.hasFocus=false};this.handleKeyDown=function(n){if(!e.disabled&&n.key==="Enter"){if(!e.href){n.preventDefault()}e.handleClick()}}}n.prototype.clickItem=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(n){this.handleClick();return[2]}))}))};n.prototype.handleClick=function(){var n;var e=Array.from(this.host.parentNode.children).filter((function(n){return n.tagName.toLowerCase()==="pds-dropdown-menu-item"}));var t=e.indexOf(this.host);var o=((n=this.host.textContent)===null||n===void 0?void 0:n.trim())||"";this.pdsClick.emit({itemIndex:t,item:this.host,content:o})};n.prototype.renderElement=function(){if(this.href!==undefined){return h("pds-link",{href:this.disabled?null:this.href,class:{"pds-dropdown-menu-item__content":true,"has-focus":this.hasFocus},tabIndex:this.disabled?-1:0,onKeyDown:this.handleKeyDown,onFocus:this.handleFocus,onBlur:this.handleBlur,"aria-disabled":this.disabled?"true":null},h("slot",null))}return h("button",{class:{"pds-dropdown-menu-item__content":true,"has-focus":this.hasFocus},tabIndex:this.disabled?-1:0,type:"button",onKeyDown:this.handleKeyDown,onFocus:this.handleFocus,onBlur:this.handleBlur,disabled:this.disabled,"aria-disabled":this.disabled?"true":null},h("slot",null))};n.prototype.render=function(){var n=this;return h(Host,{key:"89c2973b952f2a2d0b7054817c0532f8654ae279",id:this.componentId,class:{"is-disabled":this.disabled,destructive:!this.disabled&&this.destructive},onClick:function(){return!n.disabled&&n.handleClick()},role:"none",tabIndex:-1,"aria-disabled":this.disabled?"true":null},this.renderElement())};Object.defineProperty(n.prototype,"host",{get:function(){return getElement(this)},enumerable:false,configurable:true});return n}();PdsDropdownMenuItem.style=pdsDropdownMenuItemCss;export{PdsDropdownMenuItem as pds_dropdown_menu_item};
2
2
  //# sourceMappingURL=pds-dropdown-menu-item.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pds-dropdown-menu-item.entry.js","sources":["src/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.scss?tag=pds-dropdown-menu-item&encapsulation=shadow","src/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.tsx"],"sourcesContent":[":host {\n cursor: pointer;\n display: flex;\n width: 100%; /* Ensure the host takes full width */\n}\n\n/* Make the disabled styles more specific and add !important to ensure they apply */\n:host(.is-disabled) {\n cursor: not-allowed !important;\n opacity: 0.5 !important;\n\n .pds-dropdown-menu-item__content {\n cursor: not-allowed !important;\n pointer-events: none !important;\n }\n}\n\n.pds-dropdown-menu-item__content {\n align-items: center;\n appearance: none;\n background: transparent;\n border: 0;\n border-radius: var(--pine-dimension-xs);\n display: flex;\n flex-grow: 1; /* Make it grow to fill available space */\n font: var(--pine-typography-body-medium);\n gap: var(--pine-dimension-xs);\n margin: calc(var(--pine-border-width) + 2px);\n padding: var(--pine-dimension-xs);\n text-align: start; /* Ensure text aligns properly */\n width: 100%; /* Ensure full width */\n\n &:hover {\n background-color: var(--pine-color-grey-150);\n color: var(--pine-color-text-hover);\n }\n\n /* Focus styles applied via class + browser focus */\n &:focus,\n &:focus-visible,\n &.has-focus {\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-border-width);\n }\n\n}\n\n:host(.destructive) {\n .pds-dropdown-menu-item__content {\n align-items: center;\n color: var(--pine-color-danger);\n\n &:hover {\n background-color: var(--pine-color-danger-disabled);\n color: var(--pine-color-danger-hover);\n }\n\n &:focus,\n &:focus-visible,\n &.has-focus {\n background-color: var(--pine-color-danger-disabled);\n outline: var(--pine-outline-focus-danger);\n outline-offset: var(--pine-border-width);\n }\n }\n}\n\n/* Remove outline on contained links using the custom property */\npds-link::part(link):focus,\npds-link::part(link):focus-visible {\n box-shadow: none;\n outline: none;\n}\n\npds-link::part(link) {\n display: block;\n margin-inline: calc(var(--pine-dimension-xs) * -1);\n padding-inline: var(--pine-dimension-xs);\n width: 100%\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State } from '@stencil/core';\nimport type { BasePdsProps } from '@utils/interfaces';\n\n@Component({\n tag: 'pds-dropdown-menu-item',\n styleUrl: 'pds-dropdown-menu-item.scss',\n shadow: true,\n})\nexport class PdsDropdownMenuItem implements BasePdsProps {\n @Element() host: HTMLPdsDropdownMenuItemElement;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * It determines whether or not the dropdown-item is destructive.\n * @defaultValue false\n */\n @Prop() destructive: boolean = false;\n\n /**\n * It determines whether or not the dropdown-item is disabled.\n * @defaultValue false\n */\n @Prop() disabled: boolean = false;\n\n\n /**\n * If provided, renders the dropdown-item as an anchor (`<a>`) element instead of a button.\n */\n @Prop() href: string | undefined;\n\n /**\n * Emitted when the dropdown-item is clicked.\n *\n */\n @Event() pdsClick: EventEmitter<{itemIndex: number, item: HTMLPdsDropdownMenuItemElement, content: string}>;\n\n /**\n * Trigger the click event\n */\n @Method()\n async clickItem() {\n this.handleClick();\n };\n\n\n private handleClick() {\n // Filter only pds-dropdown-menu-item elements and find the index of the current item\n const menuItems = Array.from(this.host.parentNode.children).filter(\n (child) => child.tagName.toLowerCase() === 'pds-dropdown-menu-item'\n );\n const itemIndex = menuItems.indexOf(this.host);\n\n // Get the text content from the slotted content\n const content = this.host.textContent?.trim() || '';\n\n this.pdsClick.emit({\n itemIndex,\n item: this.host,\n content\n });\n }\n\n @State() hasFocus: boolean = false;\n\n private handleFocus = () => {\n this.hasFocus = true;\n }\n\n private handleBlur = () => {\n this.hasFocus = false;\n }\n\n private renderElement() {\n if (this.href !== undefined) {\n return (\n <pds-link\n href={this.disabled ? null : this.href}\n class={{\n 'pds-dropdown-menu-item__content': true,\n 'has-focus': this.hasFocus\n }}\n tabIndex={this.disabled ? -1 : 0}\n onKeyDown={this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n aria-disabled={this.disabled ? 'true' : null}\n >\n <slot></slot>\n </pds-link>\n );\n }\n\n return (\n <button\n class={{\n 'pds-dropdown-menu-item__content': true,\n 'has-focus': this.hasFocus\n }}\n tabIndex={this.disabled ? -1 : 0}\n type=\"button\"\n onKeyDown={this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n disabled={this.disabled}\n aria-disabled={this.disabled ? 'true' : null}\n >\n <slot></slot>\n </button>\n );\n }\n\n private handleKeyDown = (event: KeyboardEvent) => {\n // Handle keyboard events\n if (!this.disabled && (event.key === 'Enter')) {\n // Only prevent default for button elements or Space key\n // For links with Enter key, we want the default navigation behavior\n if (!this.href) {\n event.preventDefault();\n }\n this.handleClick();\n }\n }\n\n render() {\n return (\n <Host id={this.componentId}\n class={{ 'is-disabled': this.disabled, 'destructive': !this.disabled && this.destructive }}\n onClick={() => !this.disabled && this.handleClick()}\n role=\"none\"\n tabIndex={-1}\n aria-disabled={this.disabled ? 'true' : null}\n >\n {this.renderElement()}\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pds-dropdown-menu-item.entry.js","sources":["src/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.scss?tag=pds-dropdown-menu-item&encapsulation=shadow","src/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.tsx"],"sourcesContent":[":host {\n cursor: pointer;\n display: flex;\n width: 100%; /* Ensure the host takes full width */\n}\n\n/* Make the disabled styles more specific and add !important to ensure they apply */\n:host(.is-disabled) {\n cursor: not-allowed !important;\n opacity: 0.5 !important;\n\n .pds-dropdown-menu-item__content {\n cursor: not-allowed !important;\n pointer-events: none !important;\n }\n}\n\n.pds-dropdown-menu-item__content {\n align-items: center;\n appearance: none;\n background: transparent;\n border: 0;\n border-radius: var(--pine-dimension-xs);\n color: var(--pine-color-text);\n display: flex;\n flex-grow: 1; /* Make it grow to fill available space */\n font: var(--pine-typography-body-medium);\n gap: var(--pine-dimension-xs);\n margin: calc(var(--pine-border-width) + 2px);\n padding: var(--pine-dimension-xs);\n text-align: start; /* Ensure text aligns properly */\n width: 100%; /* Ensure full width */\n\n &:hover {\n background-color: var(--pine-color-background-muted);\n color: var(--pine-color-text-hover);\n }\n\n /* Focus styles applied via class + browser focus */\n &:focus,\n &:focus-visible,\n &.has-focus {\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-border-width);\n }\n\n}\n\n:host(.destructive) {\n .pds-dropdown-menu-item__content {\n align-items: center;\n color: var(--pine-color-danger);\n\n &:hover {\n background-color: var(--pine-color-danger-disabled);\n color: var(--pine-color-danger-hover);\n }\n\n &:focus,\n &:focus-visible,\n &.has-focus {\n background-color: var(--pine-color-danger-disabled);\n outline: var(--pine-outline-focus-danger);\n outline-offset: var(--pine-border-width);\n }\n }\n}\n\n/* Remove outline on contained links using the custom property */\npds-link::part(link):focus,\npds-link::part(link):focus-visible {\n box-shadow: none;\n outline: none;\n}\n\npds-link::part(link) {\n display: block;\n margin-inline: calc(var(--pine-dimension-xs) * -1);\n padding-inline: var(--pine-dimension-xs);\n width: 100%\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State } from '@stencil/core';\nimport type { BasePdsProps } from '@utils/interfaces';\n\n@Component({\n tag: 'pds-dropdown-menu-item',\n styleUrl: 'pds-dropdown-menu-item.scss',\n shadow: true,\n})\nexport class PdsDropdownMenuItem implements BasePdsProps {\n @Element() host: HTMLPdsDropdownMenuItemElement;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * It determines whether or not the dropdown-item is destructive.\n * @defaultValue false\n */\n @Prop() destructive: boolean = false;\n\n /**\n * It determines whether or not the dropdown-item is disabled.\n * @defaultValue false\n */\n @Prop() disabled: boolean = false;\n\n\n /**\n * If provided, renders the dropdown-item as an anchor (`<a>`) element instead of a button.\n */\n @Prop() href: string | undefined;\n\n /**\n * Emitted when the dropdown-item is clicked.\n *\n */\n @Event() pdsClick: EventEmitter<{itemIndex: number, item: HTMLPdsDropdownMenuItemElement, content: string}>;\n\n /**\n * Trigger the click event\n */\n @Method()\n async clickItem() {\n this.handleClick();\n };\n\n\n private handleClick() {\n // Filter only pds-dropdown-menu-item elements and find the index of the current item\n const menuItems = Array.from(this.host.parentNode.children).filter(\n (child) => child.tagName.toLowerCase() === 'pds-dropdown-menu-item'\n );\n const itemIndex = menuItems.indexOf(this.host);\n\n // Get the text content from the slotted content\n const content = this.host.textContent?.trim() || '';\n\n this.pdsClick.emit({\n itemIndex,\n item: this.host,\n content\n });\n }\n\n @State() hasFocus: boolean = false;\n\n private handleFocus = () => {\n this.hasFocus = true;\n }\n\n private handleBlur = () => {\n this.hasFocus = false;\n }\n\n private renderElement() {\n if (this.href !== undefined) {\n return (\n <pds-link\n href={this.disabled ? null : this.href}\n class={{\n 'pds-dropdown-menu-item__content': true,\n 'has-focus': this.hasFocus\n }}\n tabIndex={this.disabled ? -1 : 0}\n onKeyDown={this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n aria-disabled={this.disabled ? 'true' : null}\n >\n <slot></slot>\n </pds-link>\n );\n }\n\n return (\n <button\n class={{\n 'pds-dropdown-menu-item__content': true,\n 'has-focus': this.hasFocus\n }}\n tabIndex={this.disabled ? -1 : 0}\n type=\"button\"\n onKeyDown={this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n disabled={this.disabled}\n aria-disabled={this.disabled ? 'true' : null}\n >\n <slot></slot>\n </button>\n );\n }\n\n private handleKeyDown = (event: KeyboardEvent) => {\n // Handle keyboard events\n if (!this.disabled && (event.key === 'Enter')) {\n // Only prevent default for button elements or Space key\n // For links with Enter key, we want the default navigation behavior\n if (!this.href) {\n event.preventDefault();\n }\n this.handleClick();\n }\n }\n\n render() {\n return (\n <Host id={this.componentId}\n class={{ 'is-disabled': this.disabled, 'destructive': !this.disabled && this.destructive }}\n onClick={() => !this.disabled && this.handleClick()}\n role=\"none\"\n tabIndex={-1}\n aria-disabled={this.disabled ? 'true' : null}\n >\n {this.renderElement()}\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{r as registerInstance,h,H as Host}from"./index-Bh07GI-d.js";var pdsDropdownMenuSeparatorCss=":host hr{border:0;border-top:1px solid var(--pine-color-border);height:0;margin-block:var(--pine-dimension-xs);margin-inline:calc(var(--pine-dimension-xs) * -1)}";var PdsDropdownMenuSeparator=function(){function r(r){registerInstance(this,r);this.disabled=false}r.prototype.render=function(){return h(Host,{key:"1058ea61d2ad7c311ee162b909df2531f3589e4c",id:this.componentId},h("hr",{key:"a8c2f69ef5fba5ea4ea74553fe72544e31eafb1b"}))};return r}();PdsDropdownMenuSeparator.style=pdsDropdownMenuSeparatorCss;export{PdsDropdownMenuSeparator as pds_dropdown_menu_separator};
1
+ import{r as registerInstance,h,H as Host}from"./index-DHPhrb5T.js";var pdsDropdownMenuSeparatorCss=":host hr{border:0;border-top:var(--pine-border-width-thin) solid var(--pine-color-border);height:0;margin-block:var(--pine-dimension-xs);margin-inline:calc(var(--pine-dimension-xs) * -1)}";var PdsDropdownMenuSeparator=function(){function r(r){registerInstance(this,r);this.disabled=false}r.prototype.render=function(){return h(Host,{key:"1058ea61d2ad7c311ee162b909df2531f3589e4c",id:this.componentId},h("hr",{key:"a8c2f69ef5fba5ea4ea74553fe72544e31eafb1b"}))};return r}();PdsDropdownMenuSeparator.style=pdsDropdownMenuSeparatorCss;export{PdsDropdownMenuSeparator as pds_dropdown_menu_separator};
2
2
  //# sourceMappingURL=pds-dropdown-menu-separator.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pds-dropdown-menu-separator.entry.js","sources":["src/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.scss?tag=pds-dropdown-menu-separator&encapsulation=shadow","src/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.tsx"],"sourcesContent":[":host {\n hr {\n border: 0;\n border-top: 1px solid var(--pine-color-border);\n height: 0;\n margin-block: var(--pine-dimension-xs);\n margin-inline: calc(var(--pine-dimension-xs) * -1);\n }\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\nimport type { BasePdsProps } from '@utils/interfaces';\n\n@Component({\n tag: 'pds-dropdown-menu-separator',\n styleUrl: 'pds-dropdown-menu-separator.scss',\n shadow: true,\n})\nexport class PdsDropdownMenuSeparator implements BasePdsProps {\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * It determines whether or not the dropdown-item is disabled.\n * @defaultValue false\n */\n @Prop() disabled: boolean = false;\n\n\n render() {\n return (\n <Host id={this.componentId}>\n <hr/>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;AAAA,MAAM,2BAA2B,GAAG,mKAAmK;;MCQ1L,wBAAwB,GAAA,MAAA;AALrC,IAAA,WAAA,CAAA,OAAA,EAAA;;AAWE;;;AAGG;AACK,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAUlC;IAPC,MAAM,GAAA;AACJ,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAC,EAAE,EAAE,IAAI,CAAC,WAAW,EAAA,EACxB,CAAK,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACA;;;;;;;"}
1
+ {"version":3,"file":"pds-dropdown-menu-separator.entry.js","sources":["src/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.scss?tag=pds-dropdown-menu-separator&encapsulation=shadow","src/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.tsx"],"sourcesContent":[":host {\n hr {\n border: 0;\n border-top: var(--pine-border-width-thin) solid var(--pine-color-border);\n height: 0;\n margin-block: var(--pine-dimension-xs);\n margin-inline: calc(var(--pine-dimension-xs) * -1);\n }\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\nimport type { BasePdsProps } from '@utils/interfaces';\n\n@Component({\n tag: 'pds-dropdown-menu-separator',\n styleUrl: 'pds-dropdown-menu-separator.scss',\n shadow: true,\n})\nexport class PdsDropdownMenuSeparator implements BasePdsProps {\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * It determines whether or not the dropdown-item is disabled.\n * @defaultValue false\n */\n @Prop() disabled: boolean = false;\n\n\n render() {\n return (\n <Host id={this.componentId}>\n <hr/>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;AAAA,MAAM,2BAA2B,GAAG,6LAA6L;;MCQpN,wBAAwB,GAAA,MAAA;AALrC,IAAA,WAAA,CAAA,OAAA,EAAA;;AAWE;;;AAGG;AACK,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAUlC;IAPC,MAAM,GAAA;AACJ,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAC,EAAE,EAAE,IAAI,CAAC,WAAW,EAAA,EACxB,CAAK,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACA;;;;;;;"}
@@ -1,2 +1,2 @@
1
- import{r as registerInstance,h,H as Host,a as getElement}from"./index-Bh07GI-d.js";import{c as computePosition,o as offset,f as flip,s as shift}from"./floating-ui.dom-DbQzNDdQ.js";var pdsDropdownMenuCss=":host{display:block}.is-hidden{display:none}.pds-dropdown-menu--panel{background-color:var(--pine-color-background-container);left:var(--pine-dimension-none);min-width:170px;padding:var(--pine-dimension-xs);position:absolute;z-index:var(--pine-z-index-overlay)}";var PdsDropdownMenu=function(){function i(i){var t=this;registerInstance(this,i);this.isOpen=false;this.menuItems=[];this.currentFocusIndex=-1;this.placement="bottom-start";this.handleTriggerSlotChange=function(i){t.slotEl=i.target;var s=t.slotEl.assignedElements();t.triggerEl=s[0];t.triggerEl.onclick=t.handleClick;t.triggerEl.setAttribute("aria-haspopup","menu");t.triggerEl.setAttribute("aria-expanded","false")};this.handleSlotChange=function(i){t.slotEl=i.target;var s=t.slotEl.assignedElements();var e=s.filter((function(i){return i.tagName.toLowerCase()!=="pds-dropdown-menu-item"&&i.tagName.toLowerCase()!=="pds-dropdown-menu-separator"}));if(e.length>0){throw new Error("pds-dropdown-menu only accepts pds-dropdown-menu-item and pds-dropdown-menu-separator elements")}t.menuItems=s.filter((function(i){return i.tagName.toLowerCase()==="pds-dropdown-menu-item"}))};this.toggleDropdown=function(){t.isOpen=!t.isOpen;if(t.isOpen){t.openDropdown()}else{t.closeDropdown()}};this.openDropdown=function(){var i;computePosition(t.triggerEl,t.panelEl,{placement:t.placement,middleware:[offset(6),flip(),shift({padding:5})]}).then((function(i){var s=i.x,e=i.y;Object.assign(t.panelEl.style,{left:"".concat(s,"px"),top:"".concat(e,"px")})}));(i=t.host.shadowRoot)===null||i===void 0?void 0:i.querySelector("pds-box").classList.remove("is-hidden");t.isOpen=true;t.triggerEl.setAttribute("aria-expanded","true")};this.closeDropdown=function(){var i;(i=t.host.shadowRoot)===null||i===void 0?void 0:i.querySelector("pds-box").classList.add("is-hidden");t.isOpen=false;t.triggerEl.setAttribute("aria-expanded","false");t.currentFocusIndex=-1;t.triggerEl.focus()};this.handleClick=function(){t.toggleDropdown()}}i.prototype.componentDidRender=function(){var i;this.panelEl=(i=this.host.shadowRoot)===null||i===void 0?void 0:i.querySelector("pds-box")};i.prototype.getFocusedItemIndex=function(){var i=document.activeElement;if(!i)return-1;return this.menuItems.findIndex((function(t){return t===i}))};i.prototype.focusItemByIndex=function(i){var t,s,e,n;if(i>=0&&i<this.menuItems.length){this.currentFocusIndex=i;var o=this.menuItems[i];var r=(t=o.shadowRoot)===null||t===void 0?void 0:t.querySelector("button");var a=(n=(e=(s=o.shadowRoot)===null||s===void 0?void 0:s.querySelector("pds-link"))===null||e===void 0?void 0:e.shadowRoot)===null||n===void 0?void 0:n.querySelector("a");if(r){return r.focus()}else if(a){return a.focus()}else{o.focus()}}};i.prototype.focusNextItem=function(){var i=(this.currentFocusIndex+1)%this.menuItems.length;var t=0;var s=this.menuItems.length;while(t<s&&this.menuItems[i].disabled){i=(i+1)%this.menuItems.length;t++}if(t<s){this.focusItemByIndex(i)}};i.prototype.focusPreviousItem=function(){var i=this.currentFocusIndex<=0?this.menuItems.length-1:this.currentFocusIndex-1;var t=0;var s=this.menuItems.length;while(t<s&&this.menuItems[i].disabled){i=i<=0?this.menuItems.length-1:i-1;t++}if(t<s){this.focusItemByIndex(i)}};i.prototype.handleKeyDown=function(i){if(!this.isOpen)return;switch(i.key){case"Escape":i.preventDefault();this.closeDropdown();break;case"ArrowDown":i.preventDefault();this.focusNextItem();break;case"ArrowUp":i.preventDefault();this.focusPreviousItem();break;case"Home":i.preventDefault();if(this.menuItems.length>0){var t=0;while(t<this.menuItems.length&&this.menuItems[t].disabled){t++}if(t<this.menuItems.length){this.focusItemByIndex(t)}}break;case"End":i.preventDefault();if(this.menuItems.length>0){var s=this.menuItems.length-1;while(s>=0&&this.menuItems[s].disabled){s--}if(s>=0){this.focusItemByIndex(s)}}break;case"Tab":if(i.shiftKey){var e=this.getFocusedItemIndex();if(e>0){i.preventDefault();this.focusPreviousItem()}}else{var n=document.activeElement;var o=n===this.triggerEl;var e=this.getFocusedItemIndex();if(o&&this.menuItems.length>0){i.preventDefault();var r=0;while(r<this.menuItems.length&&this.menuItems[r].disabled){r++}if(r<this.menuItems.length){this.focusItemByIndex(r)}}else if(e===-1&&this.menuItems.length>0){i.preventDefault();var r=0;while(r<this.menuItems.length&&this.menuItems[r].disabled){r++}if(r<this.menuItems.length){this.focusItemByIndex(r)}}else if(e!==-1){i.preventDefault();this.focusNextItem()}}break}};i.prototype.handleWindowClick=function(i){if(this.isOpen&&!this.host.contains(i.target)&&i.target!==this.triggerEl){this.closeDropdown()}};i.prototype.render=function(){return h(Host,{key:"c2f9a74589c43a84f1e07a38748453bbc6cd7c8d",id:this.componentId},h("slot",{key:"b3cd9b14b17f9f34b524f459c06506aa551602d2",name:"trigger",onSlotchange:this.handleTriggerSlotChange}),h("pds-box",{key:"3657c4884b745ba3e0a0f04030e46a004fcf00ac","border-radius":"sm",display:"flex",direction:"column",class:"pds-dropdown-menu--panel is-hidden",shadow:"100",role:"menu","aria-orientation":"vertical"},h("slot",{key:"fb77e6214ecd67e83babee0404bbf052c8d27714",onSlotchange:this.handleSlotChange})))};Object.defineProperty(i.prototype,"host",{get:function(){return getElement(this)},enumerable:false,configurable:true});return i}();PdsDropdownMenu.style=pdsDropdownMenuCss;export{PdsDropdownMenu as pds_dropdown_menu};
1
+ import{r as registerInstance,h,H as Host,a as getElement}from"./index-DHPhrb5T.js";import{a as autoUpdate,c as computePosition,o as offset,f as flip,s as shift}from"./floating-ui.dom-DbQzNDdQ.js";var pdsDropdownMenuCss=":host{display:block}.is-hidden{display:none}.pds-dropdown-menu--panel{background-color:var(--pine-color-background-container);border-radius:var(--pine-dimension-xs);left:var(--pine-dimension-none);min-width:170px;padding:var(--pine-dimension-xs);position:absolute;z-index:var(--pine-z-index-overlay)}:host-context([data-theme=dark]) .pds-dropdown-menu--panel{border:var(--pine-border)}";var PdsDropdownMenu=function(){function i(i){var t=this;registerInstance(this,i);this.isOpen=false;this.menuItems=[];this.cleanupAutoUpdate=null;this.currentFocusIndex=-1;this.placement="bottom-start";this.handleTriggerSlotChange=function(i){t.slotEl=i.target;var e=t.slotEl.assignedElements();t.triggerEl=e[0];t.triggerEl.onclick=t.handleClick;t.triggerEl.setAttribute("aria-haspopup","menu");t.triggerEl.setAttribute("aria-expanded","false")};this.handleSlotChange=function(i){t.slotEl=i.target;var e=t.slotEl.assignedElements();var n=e.filter((function(i){return i.tagName.toLowerCase()!=="pds-dropdown-menu-item"&&i.tagName.toLowerCase()!=="pds-dropdown-menu-separator"}));if(n.length>0){throw new Error("pds-dropdown-menu only accepts pds-dropdown-menu-item and pds-dropdown-menu-separator elements")}t.menuItems=e.filter((function(i){return i.tagName.toLowerCase()==="pds-dropdown-menu-item"}))};this.toggleDropdown=function(){t.isOpen=!t.isOpen;if(t.isOpen){t.openDropdown()}else{t.closeDropdown()}};this.openDropdown=function(){var i;var e=function(){computePosition(t.triggerEl,t.panelEl,{placement:t.placement,middleware:[offset(6),flip(),shift({padding:5})]}).then((function(i){var e=i.x,n=i.y;Object.assign(t.panelEl.style,{left:"".concat(e,"px"),top:"".concat(n,"px")})}))};e();t.cleanupAutoUpdate=autoUpdate(t.triggerEl,t.panelEl,e);(i=t.host.shadowRoot)===null||i===void 0?void 0:i.querySelector("pds-box").classList.remove("is-hidden");t.isOpen=true;t.triggerEl.setAttribute("aria-expanded","true")};this.closeDropdown=function(){var i;(i=t.host.shadowRoot)===null||i===void 0?void 0:i.querySelector("pds-box").classList.add("is-hidden");t.isOpen=false;if(t.cleanupAutoUpdate){t.cleanupAutoUpdate();t.cleanupAutoUpdate=null}t.triggerEl.setAttribute("aria-expanded","false");t.currentFocusIndex=-1;t.triggerEl.focus()};this.handleClick=function(){t.toggleDropdown()}}i.prototype.componentDidRender=function(){var i;this.panelEl=(i=this.host.shadowRoot)===null||i===void 0?void 0:i.querySelector("pds-box")};i.prototype.disconnectedCallback=function(){if(this.cleanupAutoUpdate){this.cleanupAutoUpdate();this.cleanupAutoUpdate=null}};i.prototype.getFocusedItemIndex=function(){var i=document.activeElement;if(!i)return-1;return this.menuItems.findIndex((function(t){return t===i}))};i.prototype.focusItemByIndex=function(i){var t,e,n,s;if(i>=0&&i<this.menuItems.length){this.currentFocusIndex=i;var o=this.menuItems[i];var a=(t=o.shadowRoot)===null||t===void 0?void 0:t.querySelector("button");var r=(s=(n=(e=o.shadowRoot)===null||e===void 0?void 0:e.querySelector("pds-link"))===null||n===void 0?void 0:n.shadowRoot)===null||s===void 0?void 0:s.querySelector("a");if(a){return a.focus()}else if(r){return r.focus()}else{o.focus()}}};i.prototype.focusNextItem=function(){var i=(this.currentFocusIndex+1)%this.menuItems.length;var t=0;var e=this.menuItems.length;while(t<e&&this.menuItems[i].disabled){i=(i+1)%this.menuItems.length;t++}if(t<e){this.focusItemByIndex(i)}};i.prototype.focusPreviousItem=function(){var i=this.currentFocusIndex<=0?this.menuItems.length-1:this.currentFocusIndex-1;var t=0;var e=this.menuItems.length;while(t<e&&this.menuItems[i].disabled){i=i<=0?this.menuItems.length-1:i-1;t++}if(t<e){this.focusItemByIndex(i)}};i.prototype.handleKeyDown=function(i){if(!this.isOpen)return;switch(i.key){case"Escape":i.preventDefault();this.closeDropdown();break;case"ArrowDown":i.preventDefault();this.focusNextItem();break;case"ArrowUp":i.preventDefault();this.focusPreviousItem();break;case"Home":i.preventDefault();if(this.menuItems.length>0){var t=0;while(t<this.menuItems.length&&this.menuItems[t].disabled){t++}if(t<this.menuItems.length){this.focusItemByIndex(t)}}break;case"End":i.preventDefault();if(this.menuItems.length>0){var e=this.menuItems.length-1;while(e>=0&&this.menuItems[e].disabled){e--}if(e>=0){this.focusItemByIndex(e)}}break;case"Tab":if(i.shiftKey){var n=this.getFocusedItemIndex();if(n>0){i.preventDefault();this.focusPreviousItem()}}else{var s=document.activeElement;var o=s===this.triggerEl;var n=this.getFocusedItemIndex();if(o&&this.menuItems.length>0){i.preventDefault();var a=0;while(a<this.menuItems.length&&this.menuItems[a].disabled){a++}if(a<this.menuItems.length){this.focusItemByIndex(a)}}else if(n===-1&&this.menuItems.length>0){i.preventDefault();var a=0;while(a<this.menuItems.length&&this.menuItems[a].disabled){a++}if(a<this.menuItems.length){this.focusItemByIndex(a)}}else if(n!==-1){i.preventDefault();this.focusNextItem()}}break}};i.prototype.handleWindowClick=function(i){if(this.isOpen&&!this.host.contains(i.target)&&i.target!==this.triggerEl){this.closeDropdown()}};i.prototype.render=function(){return h(Host,{key:"eb2a28bf9bfdb6ec228612be375a79caddf12da0",id:this.componentId},h("slot",{key:"c8a38cfba87a89e450c44b79bda17f558d5d6e58",name:"trigger",onSlotchange:this.handleTriggerSlotChange}),h("pds-box",{key:"8d6c33a1c3d3462738b7762df6008097e78bfbf5","border-radius":"sm",display:"flex",direction:"column",class:"pds-dropdown-menu--panel is-hidden",shadow:"100",role:"menu","aria-orientation":"vertical",part:"menu-panel"},h("slot",{key:"76d6b8a46ddaf907781d0810d3a4195953f1cdaf",onSlotchange:this.handleSlotChange})))};Object.defineProperty(i.prototype,"host",{get:function(){return getElement(this)},enumerable:false,configurable:true});return i}();PdsDropdownMenu.style=pdsDropdownMenuCss;export{PdsDropdownMenu as pds_dropdown_menu};
2
2
  //# sourceMappingURL=pds-dropdown-menu.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pds-dropdown-menu.entry.js","sources":["src/components/pds-dropdown-menu/pds-dropdown-menu.scss?tag=pds-dropdown-menu&encapsulation=shadow","src/components/pds-dropdown-menu/pds-dropdown-menu.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.is-hidden {\n display: none;\n}\n\n.pds-dropdown-menu--panel {\n background-color: var(--pine-color-background-container);\n left: var(--pine-dimension-none);\n min-width: 170px;\n padding: var(--pine-dimension-xs);\n position: absolute;\n z-index: var(--pine-z-index-overlay);\n}\n","import { Component, Element, Host, h, Prop, Listen, State } from '@stencil/core';\nimport type { BasePdsProps } from '@utils/interfaces';\nimport { PlacementType } from '@utils/types';\nimport { computePosition,\n flip,\n offset,\n shift,\n} from '@floating-ui/dom';\n\n@Component({\n tag: 'pds-dropdown-menu',\n styleUrl: 'pds-dropdown-menu.scss',\n shadow: true,\n})\nexport class PdsDropdownMenu implements BasePdsProps {\n private slotEl: HTMLSlotElement;\n private triggerEl: HTMLElement;\n private panelEl: HTMLPdsBoxElement;\n private isOpen: boolean = false;\n private menuItems: HTMLPdsDropdownMenuItemElement[] = [];\n\n @Element() host: HTMLPdsDropdownMenuElement;\n\n @State() currentFocusIndex: number = -1;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * The placement of the dropdown panel relative to the trigger.\n */\n @Prop() placement: PlacementType = 'bottom-start';\n\n componentDidRender() {\n this.panelEl = this.host.shadowRoot?.querySelector('pds-box') as HTMLPdsBoxElement;\n }\n\n private handleTriggerSlotChange = (event: Event) => {\n this.slotEl = event.target as HTMLSlotElement;\n\n // Get all elements assigned to this slot\n const assignedElements = this.slotEl.assignedElements();\n\n this.triggerEl = assignedElements[0] as HTMLElement;\n this.triggerEl.onclick = this.handleClick;\n\n // Add accessibility attributes to trigger\n this.triggerEl.setAttribute('aria-haspopup', 'menu');\n this.triggerEl.setAttribute('aria-expanded', 'false');\n }\n\n private handleSlotChange = (event: Event) => {\n this.slotEl = event.target as HTMLSlotElement;\n\n // Get all elements assigned to this slot\n const assignedElements = this.slotEl.assignedElements();\n\n // ensure assignedElements only contains pds-dropdown-menu-item or pds-dropdown-menu-separator\n // if there are other elements, throw an error\n const invalidElements = assignedElements.filter(el => el.tagName.toLowerCase() !== 'pds-dropdown-menu-item' && el.tagName.toLowerCase() !== 'pds-dropdown-menu-separator');\n if (invalidElements.length > 0) {\n throw new Error(`pds-dropdown-menu only accepts pds-dropdown-menu-item and pds-dropdown-menu-separator elements`);\n }\n\n // Store all menu items for keyboard navigation\n this.menuItems = assignedElements.filter(\n el => el.tagName.toLowerCase() === 'pds-dropdown-menu-item'\n ) as HTMLPdsDropdownMenuItemElement[];\n }\n\n // Toggle dropdown open/closed\n private toggleDropdown = () => {\n this.isOpen = !this.isOpen;\n\n if (this.isOpen) {\n this.openDropdown();\n } else {\n this.closeDropdown();\n }\n }\n\n // Open the dropdown and position it\n private openDropdown = () => {\n computePosition(this.triggerEl, this.panelEl as HTMLElement, {\n placement: this.placement,\n middleware: [offset(6), flip(), shift({padding: 5})],\n }).then(({ x, y }) => {\n Object.assign(this.panelEl.style, {\n left: `${x}px`,\n top: `${y}px`,\n });\n });\n\n this.host.shadowRoot?.querySelector('pds-box').classList.remove('is-hidden');\n this.isOpen = true;\n\n // Update ARIA attributes\n this.triggerEl.setAttribute('aria-expanded', 'true');\n }\n\n // Close the dropdown\n private closeDropdown = () => {\n this.host.shadowRoot?.querySelector('pds-box').classList.add('is-hidden');\n this.isOpen = false;\n\n // Update ARIA attributes\n this.triggerEl.setAttribute('aria-expanded', 'false');\n\n // Reset focus index\n this.currentFocusIndex = -1;\n\n // Return focus to trigger\n this.triggerEl.focus();\n }\n\n // Handle click on the trigger element\n private handleClick = () => {\n this.toggleDropdown();\n }\n\n // Get the index of the currently focused menu item\n private getFocusedItemIndex(): number {\n const activeElement = document.activeElement as HTMLPdsDropdownMenuItemElement | null;\n if (!activeElement) return -1;\n return this.menuItems.findIndex(item => item === activeElement);\n }\n\n // Focus a specific menu item by index\n private focusItemByIndex(index: number): void {\n if (index >= 0 && index < this.menuItems.length) {\n this.currentFocusIndex = index;\n\n // Focus the inner button/link instead of the host element\n const menuItem = this.menuItems[index];\n const innerButton = menuItem.shadowRoot?.querySelector('button');\n const innerLink = menuItem.shadowRoot?.querySelector('pds-link')?.shadowRoot?.querySelector('a');\n\n if (innerButton) {\n return innerButton.focus();\n } else if (innerLink) {\n return innerLink.focus();\n } else {\n // Fallback to focusing the host if we can't find the inner element\n menuItem.focus();\n }\n }\n }\n\n // Focus the next menu item\n private focusNextItem(): void {\n let nextIndex = (this.currentFocusIndex + 1) % this.menuItems.length;\n\n // Skip disabled items\n let attempts = 0;\n const maxAttempts = this.menuItems.length;\n\n while (attempts < maxAttempts && this.menuItems[nextIndex].disabled) {\n nextIndex = (nextIndex + 1) % this.menuItems.length;\n attempts++;\n }\n\n // Only focus if we found a non-disabled item\n if (attempts < maxAttempts) {\n this.focusItemByIndex(nextIndex);\n }\n }\n\n // Focus the previous menu item\n private focusPreviousItem(): void {\n let prevIndex = this.currentFocusIndex <= 0\n ? this.menuItems.length - 1\n : this.currentFocusIndex - 1;\n\n // Skip disabled items\n let attempts = 0;\n const maxAttempts = this.menuItems.length;\n\n while (attempts < maxAttempts && this.menuItems[prevIndex].disabled) {\n prevIndex = prevIndex <= 0 ? this.menuItems.length - 1 : prevIndex - 1;\n attempts++;\n }\n\n // Only focus if we found a non-disabled item\n if (attempts < maxAttempts) {\n this.focusItemByIndex(prevIndex);\n }\n }\n\n // Handle keyboard events for the dropdown\n @Listen('keydown', { target: 'window' })\n handleKeyDown(event: KeyboardEvent) {\n if (!this.isOpen) return;\n\n switch (event.key) {\n case 'Escape':\n event.preventDefault();\n this.closeDropdown();\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n this.focusNextItem();\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n this.focusPreviousItem();\n break;\n\n case 'Home':\n event.preventDefault();\n if (this.menuItems.length > 0) {\n // Find first non-disabled item\n let firstIndex = 0;\n while (firstIndex < this.menuItems.length && this.menuItems[firstIndex].disabled) {\n firstIndex++;\n }\n if (firstIndex < this.menuItems.length) {\n this.focusItemByIndex(firstIndex);\n }\n }\n break;\n\n case 'End':\n event.preventDefault();\n if (this.menuItems.length > 0) {\n // Find last non-disabled item\n let lastIndex = this.menuItems.length - 1;\n while (lastIndex >= 0 && this.menuItems[lastIndex].disabled) {\n lastIndex--;\n }\n if (lastIndex >= 0) {\n this.focusItemByIndex(lastIndex);\n }\n }\n break;\n\n case 'Tab':\n if (event.shiftKey) {\n // Let Shift+Tab navigate naturally from first item to trigger\n // For all other items, move to previous item\n const currentIndex = this.getFocusedItemIndex();\n\n if (currentIndex > 0) {\n // If not on first item, prevent default and go to previous item\n event.preventDefault();\n this.focusPreviousItem(); // Use our method that skips disabled items\n }\n // If on first item or no item, let natural tab order move back to trigger\n } else {\n // Forward Tab navigation\n const activeElement = document.activeElement;\n const isTriggerFocused = activeElement === this.triggerEl;\n const currentIndex = this.getFocusedItemIndex();\n\n if (isTriggerFocused && this.menuItems.length > 0) {\n // If trigger is focused, move to first non-disabled menu item\n event.preventDefault();\n\n // Find the first non-disabled item\n let firstFocusableIndex = 0;\n while (firstFocusableIndex < this.menuItems.length && this.menuItems[firstFocusableIndex].disabled) {\n firstFocusableIndex++;\n }\n\n if (firstFocusableIndex < this.menuItems.length) {\n this.focusItemByIndex(firstFocusableIndex);\n }\n } else if (currentIndex === -1 && this.menuItems.length > 0) {\n // If no menu item is focused, focus the first non-disabled one\n event.preventDefault();\n\n // Find the first non-disabled item\n let firstFocusableIndex = 0;\n while (firstFocusableIndex < this.menuItems.length && this.menuItems[firstFocusableIndex].disabled) {\n firstFocusableIndex++;\n }\n\n if (firstFocusableIndex < this.menuItems.length) {\n this.focusItemByIndex(firstFocusableIndex);\n }\n } else if (currentIndex !== -1) {\n // Use our method that skips disabled items\n event.preventDefault();\n this.focusNextItem();\n }\n }\n break;\n }\n }\n\n // Handle clicks outside the dropdown to close it\n @Listen('click', { target: 'window' })\n handleWindowClick(event: MouseEvent) {\n if (this.isOpen && !this.host.contains(event.target as Node) && event.target !== this.triggerEl) {\n this.closeDropdown();\n }\n }\n\n\n render() {\n return (\n <Host id={this.componentId}>\n <slot\n name=\"trigger\"\n onSlotchange={this.handleTriggerSlotChange}\n ></slot>\n <pds-box\n border-radius=\"sm\"\n display=\"flex\"\n direction=\"column\"\n class=\"pds-dropdown-menu--panel is-hidden\"\n shadow=\"100\"\n role=\"menu\"\n aria-orientation=\"vertical\"\n >\n <slot onSlotchange={this.handleSlotChange}></slot>\n </pds-box>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pds-dropdown-menu.entry.js","sources":["src/components/pds-dropdown-menu/pds-dropdown-menu.scss?tag=pds-dropdown-menu&encapsulation=shadow","src/components/pds-dropdown-menu/pds-dropdown-menu.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.is-hidden {\n display: none;\n}\n\n.pds-dropdown-menu--panel {\n background-color: var(--pine-color-background-container);\n border-radius: var(--pine-dimension-xs);\n left: var(--pine-dimension-none);\n min-width: 170px;\n padding: var(--pine-dimension-xs);\n position: absolute;\n z-index: var(--pine-z-index-overlay);\n\n :host-context([data-theme=\"dark\"]) & {\n border: var(--pine-border);\n }\n}\n","import { Component, Element, Host, h, Prop, Listen, State } from '@stencil/core';\nimport type { BasePdsProps } from '@utils/interfaces';\nimport { PlacementType } from '@utils/types';\nimport { computePosition,\n flip,\n offset,\n shift,\n autoUpdate,\n} from '@floating-ui/dom';\n\n/**\n * @part menu-panel - Exposes the dropdown menu container for styling.\n */\n@Component({\n tag: 'pds-dropdown-menu',\n styleUrl: 'pds-dropdown-menu.scss',\n shadow: true,\n})\nexport class PdsDropdownMenu implements BasePdsProps {\n private slotEl: HTMLSlotElement;\n private triggerEl: HTMLElement;\n private panelEl: HTMLPdsBoxElement;\n private isOpen: boolean = false;\n private menuItems: HTMLPdsDropdownMenuItemElement[] = [];\n private cleanupAutoUpdate: (() => void) | null = null;\n\n @Element() host: HTMLPdsDropdownMenuElement;\n\n @State() currentFocusIndex: number = -1;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * The placement of the dropdown panel relative to the trigger.\n */\n @Prop() placement: PlacementType = 'bottom-start';\n\n componentDidRender() {\n this.panelEl = this.host.shadowRoot?.querySelector('pds-box') as HTMLPdsBoxElement;\n }\n\n disconnectedCallback() {\n // Clean up auto-update when component is removed from DOM\n if (this.cleanupAutoUpdate) {\n this.cleanupAutoUpdate();\n this.cleanupAutoUpdate = null;\n }\n }\n\n private handleTriggerSlotChange = (event: Event) => {\n this.slotEl = event.target as HTMLSlotElement;\n\n // Get all elements assigned to this slot\n const assignedElements = this.slotEl.assignedElements();\n\n this.triggerEl = assignedElements[0] as HTMLElement;\n this.triggerEl.onclick = this.handleClick;\n\n // Add accessibility attributes to trigger\n this.triggerEl.setAttribute('aria-haspopup', 'menu');\n this.triggerEl.setAttribute('aria-expanded', 'false');\n }\n\n private handleSlotChange = (event: Event) => {\n this.slotEl = event.target as HTMLSlotElement;\n\n // Get all elements assigned to this slot\n const assignedElements = this.slotEl.assignedElements();\n\n // ensure assignedElements only contains pds-dropdown-menu-item or pds-dropdown-menu-separator\n // if there are other elements, throw an error\n const invalidElements = assignedElements.filter(el => el.tagName.toLowerCase() !== 'pds-dropdown-menu-item' && el.tagName.toLowerCase() !== 'pds-dropdown-menu-separator');\n if (invalidElements.length > 0) {\n throw new Error(`pds-dropdown-menu only accepts pds-dropdown-menu-item and pds-dropdown-menu-separator elements`);\n }\n\n // Store all menu items for keyboard navigation\n this.menuItems = assignedElements.filter(\n el => el.tagName.toLowerCase() === 'pds-dropdown-menu-item'\n ) as HTMLPdsDropdownMenuItemElement[];\n }\n\n // Toggle dropdown open/closed\n private toggleDropdown = () => {\n this.isOpen = !this.isOpen;\n\n if (this.isOpen) {\n this.openDropdown();\n } else {\n this.closeDropdown();\n }\n }\n\n // Open the dropdown and position it\n private openDropdown = () => {\n const updatePosition = () => {\n computePosition(this.triggerEl, this.panelEl as HTMLElement, {\n placement: this.placement,\n middleware: [offset(6), flip(), shift({padding: 5})],\n }).then(({ x, y }) => {\n Object.assign(this.panelEl.style, {\n left: `${x}px`,\n top: `${y}px`,\n });\n });\n };\n\n // Initial position\n updatePosition();\n\n // Set up auto-update for window resize and scroll\n this.cleanupAutoUpdate = autoUpdate(\n this.triggerEl,\n this.panelEl as HTMLElement,\n updatePosition\n );\n\n this.host.shadowRoot?.querySelector('pds-box').classList.remove('is-hidden');\n this.isOpen = true;\n\n // Update ARIA attributes\n this.triggerEl.setAttribute('aria-expanded', 'true');\n }\n\n // Close the dropdown\n private closeDropdown = () => {\n this.host.shadowRoot?.querySelector('pds-box').classList.add('is-hidden');\n this.isOpen = false;\n\n // Clean up auto-update\n if (this.cleanupAutoUpdate) {\n this.cleanupAutoUpdate();\n this.cleanupAutoUpdate = null;\n }\n\n // Update ARIA attributes\n this.triggerEl.setAttribute('aria-expanded', 'false');\n\n // Reset focus index\n this.currentFocusIndex = -1;\n\n // Return focus to trigger\n this.triggerEl.focus();\n }\n\n // Handle click on the trigger element\n private handleClick = () => {\n this.toggleDropdown();\n }\n\n // Get the index of the currently focused menu item\n private getFocusedItemIndex(): number {\n const activeElement = document.activeElement as HTMLPdsDropdownMenuItemElement | null;\n if (!activeElement) return -1;\n return this.menuItems.findIndex(item => item === activeElement);\n }\n\n // Focus a specific menu item by index\n private focusItemByIndex(index: number): void {\n if (index >= 0 && index < this.menuItems.length) {\n this.currentFocusIndex = index;\n\n // Focus the inner button/link instead of the host element\n const menuItem = this.menuItems[index];\n const innerButton = menuItem.shadowRoot?.querySelector('button');\n const innerLink = menuItem.shadowRoot?.querySelector('pds-link')?.shadowRoot?.querySelector('a');\n\n if (innerButton) {\n return innerButton.focus();\n } else if (innerLink) {\n return innerLink.focus();\n } else {\n // Fallback to focusing the host if we can't find the inner element\n menuItem.focus();\n }\n }\n }\n\n // Focus the next menu item\n private focusNextItem(): void {\n let nextIndex = (this.currentFocusIndex + 1) % this.menuItems.length;\n\n // Skip disabled items\n let attempts = 0;\n const maxAttempts = this.menuItems.length;\n\n while (attempts < maxAttempts && this.menuItems[nextIndex].disabled) {\n nextIndex = (nextIndex + 1) % this.menuItems.length;\n attempts++;\n }\n\n // Only focus if we found a non-disabled item\n if (attempts < maxAttempts) {\n this.focusItemByIndex(nextIndex);\n }\n }\n\n // Focus the previous menu item\n private focusPreviousItem(): void {\n let prevIndex = this.currentFocusIndex <= 0\n ? this.menuItems.length - 1\n : this.currentFocusIndex - 1;\n\n // Skip disabled items\n let attempts = 0;\n const maxAttempts = this.menuItems.length;\n\n while (attempts < maxAttempts && this.menuItems[prevIndex].disabled) {\n prevIndex = prevIndex <= 0 ? this.menuItems.length - 1 : prevIndex - 1;\n attempts++;\n }\n\n // Only focus if we found a non-disabled item\n if (attempts < maxAttempts) {\n this.focusItemByIndex(prevIndex);\n }\n }\n\n // Handle keyboard events for the dropdown\n @Listen('keydown', { target: 'window' })\n handleKeyDown(event: KeyboardEvent) {\n if (!this.isOpen) return;\n\n switch (event.key) {\n case 'Escape':\n event.preventDefault();\n this.closeDropdown();\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n this.focusNextItem();\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n this.focusPreviousItem();\n break;\n\n case 'Home':\n event.preventDefault();\n if (this.menuItems.length > 0) {\n // Find first non-disabled item\n let firstIndex = 0;\n while (firstIndex < this.menuItems.length && this.menuItems[firstIndex].disabled) {\n firstIndex++;\n }\n if (firstIndex < this.menuItems.length) {\n this.focusItemByIndex(firstIndex);\n }\n }\n break;\n\n case 'End':\n event.preventDefault();\n if (this.menuItems.length > 0) {\n // Find last non-disabled item\n let lastIndex = this.menuItems.length - 1;\n while (lastIndex >= 0 && this.menuItems[lastIndex].disabled) {\n lastIndex--;\n }\n if (lastIndex >= 0) {\n this.focusItemByIndex(lastIndex);\n }\n }\n break;\n\n case 'Tab':\n if (event.shiftKey) {\n // Let Shift+Tab navigate naturally from first item to trigger\n // For all other items, move to previous item\n const currentIndex = this.getFocusedItemIndex();\n\n if (currentIndex > 0) {\n // If not on first item, prevent default and go to previous item\n event.preventDefault();\n this.focusPreviousItem(); // Use our method that skips disabled items\n }\n // If on first item or no item, let natural tab order move back to trigger\n } else {\n // Forward Tab navigation\n const activeElement = document.activeElement;\n const isTriggerFocused = activeElement === this.triggerEl;\n const currentIndex = this.getFocusedItemIndex();\n\n if (isTriggerFocused && this.menuItems.length > 0) {\n // If trigger is focused, move to first non-disabled menu item\n event.preventDefault();\n\n // Find the first non-disabled item\n let firstFocusableIndex = 0;\n while (firstFocusableIndex < this.menuItems.length && this.menuItems[firstFocusableIndex].disabled) {\n firstFocusableIndex++;\n }\n\n if (firstFocusableIndex < this.menuItems.length) {\n this.focusItemByIndex(firstFocusableIndex);\n }\n } else if (currentIndex === -1 && this.menuItems.length > 0) {\n // If no menu item is focused, focus the first non-disabled one\n event.preventDefault();\n\n // Find the first non-disabled item\n let firstFocusableIndex = 0;\n while (firstFocusableIndex < this.menuItems.length && this.menuItems[firstFocusableIndex].disabled) {\n firstFocusableIndex++;\n }\n\n if (firstFocusableIndex < this.menuItems.length) {\n this.focusItemByIndex(firstFocusableIndex);\n }\n } else if (currentIndex !== -1) {\n // Use our method that skips disabled items\n event.preventDefault();\n this.focusNextItem();\n }\n }\n break;\n }\n }\n\n // Handle clicks outside the dropdown to close it\n @Listen('click', { target: 'window' })\n handleWindowClick(event: MouseEvent) {\n if (this.isOpen && !this.host.contains(event.target as Node) && event.target !== this.triggerEl) {\n this.closeDropdown();\n }\n }\n\n\n render() {\n return (\n <Host id={this.componentId}>\n <slot\n name=\"trigger\"\n onSlotchange={this.handleTriggerSlotChange}\n ></slot>\n <pds-box\n border-radius=\"sm\"\n display=\"flex\"\n direction=\"column\"\n class=\"pds-dropdown-menu--panel is-hidden\"\n shadow=\"100\"\n role=\"menu\"\n aria-orientation=\"vertical\"\n part=\"menu-panel\"\n >\n <slot onSlotchange={this.handleSlotChange}></slot>\n </pds-box>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{__awaiter,__generator}from"tslib";import{r as registerInstance,c as createEvent,h,H as Host,a as getElement}from"./index-Bh07GI-d.js";import{t as trash,e as enlarge}from"./index-CvGEHHLR.js";var pdsFilterCss=":host{--box-shadow-focus:0 0 0 1px var(--pine-color-white), 0 0 0 3px var(--pine-color-focus-ring);display:inline-block;position:relative}.pds-filter__trigger{-ms-flex-align:center;align-items:center;anchor-name:--filter-trigger;background:var(--pine-color-background-container);border:var(--pine-border-width-thin) solid var(--pine-color-border);border-radius:var(--pine-dimension-100);-webkit-box-shadow:var(--pine-box-shadow-050);box-shadow:var(--pine-box-shadow-050);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pine-color-text-placeholder);cursor:pointer;display:-ms-inline-flexbox;display:inline-flex;font-family:var(--pine-font-family-inter);font-size:var(--pine-font-size-100);font-weight:var(--pine-font-weight-400);gap:var(--pine-dimension-050);letter-spacing:var(--pine-letter-spacing-114);line-height:var(--pine-line-height-150);padding:var(--pine-dimension-025) var(--pine-dimension-125);position:relative;-webkit-transition:all 0.2s ease;transition:all 0.2s ease}.pds-filter__trigger pds-icon{block-size:var(--pine-font-size-100);color:var(--pine-color-grey-800);-ms-flex-negative:0;flex-shrink:0;inline-size:var(--pine-font-size-100)}.pds-filter__trigger:hover,.pds-filter__trigger.pds-filter__trigger--open{background-color:var(--pine-color-grey-100);border-color:var(--pine-color-grey-400);color:var(--pine-color-text-hover)}.pds-filter__trigger:hover pds-icon,.pds-filter__trigger.pds-filter__trigger--open pds-icon{color:var(--pine-color-grey-800)}.pds-filter__trigger:focus-visible{-webkit-box-shadow:var(--box-shadow-focus);box-shadow:var(--box-shadow-focus);outline:none}.pds-filter__trigger:disabled{cursor:not-allowed;opacity:0.5}.pds-filter__trigger--selected{background-color:var(--pine-color-purple-050);border-color:var(--pine-color-purple-500);color:var(--pine-color-purple-600)}.pds-filter__trigger--selected pds-icon{color:var(--pine-color-purple-600)}.pds-filter__trigger--selected:hover,.pds-filter__trigger--selected.pds-filter__trigger--open{background-color:var(--pine-color-purple-100);border-color:var(--pine-color-purple-500);color:var(--pine-color-purple-600)}.pds-filter__trigger--selected:hover pds-icon,.pds-filter__trigger--selected.pds-filter__trigger--open pds-icon{color:var(--pine-color-purple-600)}.pds-filter__trigger--selected:focus-visible{-webkit-box-shadow:var(--box-shadow-focus);box-shadow:var(--box-shadow-focus);outline:none}.pds-filter__trigger--more{background-color:var(--pine-color-grey-050);border:var(--pine-border-width-thin) dashed var(--pine-color-grey-300);color:var(--pine-color-text-placeholder)}.pds-filter__trigger--more pds-icon{color:var(--pine-color-grey-800)}.pds-filter__trigger--more:hover,.pds-filter__trigger--more.pds-filter__trigger--open{background-color:var(--pine-color-grey-100);border-color:var(--pine-color-grey-400);color:var(--pine-color-text-hover)}.pds-filter__trigger--more:hover pds-icon,.pds-filter__trigger--more.pds-filter__trigger--open pds-icon{color:var(--pine-color-grey-800)}.pds-filter__trigger--more:focus-visible{-webkit-box-shadow:var(--box-shadow-focus);box-shadow:var(--box-shadow-focus);outline:none}.pds-filter__trigger--clear{background:transparent;border:var(--pine-border-width-thin) solid transparent;border-radius:var(--pine-dimension-100);-webkit-box-shadow:none;box-shadow:none;color:var(--pine-color-purple-600)}.pds-filter__trigger--clear pds-icon{color:var(--pine-color-purple-600)}.pds-filter__trigger--clear:hover{background-color:var(--pine-color-purple-100);border-color:var(--pine-color-purple-100);color:var(--pine-color-purple-600)}.pds-filter__trigger--clear:hover pds-icon{color:var(--pine-color-purple-600)}.pds-filter__trigger--clear:focus-visible{-webkit-box-shadow:var(--box-shadow-focus);box-shadow:var(--box-shadow-focus);outline:none}.pds-filter__button-content{-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex;gap:var(--pine-dimension-050);max-inline-size:148px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pds-filter__button-text{line-height:var(--pine-line-height-150);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pds-filter__dropdown-icon{block-size:var(--pine-dimension-200);-ms-flex-negative:0;flex-shrink:0;inline-size:var(--pine-dimension-200)}.pds-filter__popover{background-color:var(--pine-color-background-container);border:0;border-radius:var(--pine-dimension-100);-webkit-box-shadow:var(--pine-box-shadow-100);box-shadow:var(--pine-box-shadow-100);display:none;inline-size:228px;inset:unset;padding:var(--pine-dimension-100);z-index:var(--pine-z-index-overlay);}.pds-filter__popover:popover-open,.pds-filter__popover.is-open{display:block}@supports (anchor-name: --test){.pds-filter__popover{inset-block-start:calc(anchor(--filter-trigger bottom) + var(--pine-dimension-100));inset-inline-start:anchor(--filter-trigger left);position:fixed;position-anchor:--filter-trigger;}.pds-filter__popover.popover-flip-horizontal{inset-inline-start:anchor(--filter-trigger right);-webkit-transform:translateX(-100%);transform:translateX(-100%)}.pds-filter__popover.popover-flip-vertical{inset-block-start:anchor(--filter-trigger top);-webkit-transform:translateY(calc(-100% - var(--pine-dimension-100)));transform:translateY(calc(-100% - var(--pine-dimension-100)))}.pds-filter__popover.popover-flip-horizontal.popover-flip-vertical{inset-block-start:anchor(--filter-trigger top);inset-inline-start:anchor(--filter-trigger right);-webkit-transform:translate(-100%, calc(-100% - var(--pine-dimension-100)));transform:translate(-100%, calc(-100% - var(--pine-dimension-100)))}.pds-filter__popover.is-open.popover-flip-horizontal{inset-inline-start:anchor(--filter-trigger right);-webkit-transform:translateX(-100%);transform:translateX(-100%)}.pds-filter__popover.is-open.popover-flip-vertical{inset-block-start:anchor(--filter-trigger top);-webkit-transform:translateY(calc(-100% - var(--pine-dimension-100)));transform:translateY(calc(-100% - var(--pine-dimension-100)))}.pds-filter__popover.is-open.popover-flip-horizontal.popover-flip-vertical{inset-block-start:anchor(--filter-trigger top);inset-inline-start:anchor(--filter-trigger right);-webkit-transform:translate(-100%, calc(-100% - var(--pine-dimension-100)));transform:translate(-100%, calc(-100% - var(--pine-dimension-100)))}}";var PdsFilter=function(){function e(e){var r=this;registerInstance(this,e);this.pdsFilterOpen=createEvent(this,"pdsFilterOpen");this.pdsFilterClose=createEvent(this,"pdsFilterClose");this.pdsFilterClear=createEvent(this,"pdsFilterClear");this.scrollRAF=null;this.lastScrollTime=0;this.variant="default";this.isOpen=false;this.handleNativePopoverToggle=function(e){var i=e.target;if(i&&i.id==="".concat(r.componentId,"-popover")){var t=false;try{t=i.matches(":popover-open")}catch(e){t=i.style.display==="block"}r.isOpen=t;if(r.isOpen){setTimeout((function(){return r.adjustPopoverPosition()}),0);r.pdsFilterOpen.emit({componentId:r.componentId,variant:r.variant,text:r.text})}else{r.pdsFilterClose.emit({componentId:r.componentId,variant:r.variant,text:r.text})}}};this.handleKeyDown=function(e){if(r.variant==="clear"&&(e.key==="Enter"||e.key===" ")){e.preventDefault();r.handleClick()}};this.handleClick=function(e){if(r.variant==="clear"){r.pdsFilterClear.emit({componentId:r.componentId,text:r.text});return}r.closeOtherPopovers();var i=HTMLElement.prototype.showPopover&&!navigator.userAgent.includes("Firefox");if(!i){if(e){e.preventDefault()}setTimeout((function(){if(r.popoverEl!=null){r.isOpen=!r.isOpen;if(r.isOpen){r.popoverEl.style.display="block";r.popoverEl.classList.add("is-open");r.adjustPopoverPosition();r.pdsFilterOpen.emit({componentId:r.componentId,variant:r.variant,text:r.text})}else{r.popoverEl.style.display="none";r.popoverEl.classList.remove("is-open");r.pdsFilterClose.emit({componentId:r.componentId,variant:r.variant,text:r.text})}}}),0)}}}e.prototype.disconnectedCallback=function(){if(this.scrollRAF){cancelAnimationFrame(this.scrollRAF);this.scrollRAF=null}this.lastScrollTime=0;if(this.popoverEl){var e=HTMLElement.prototype.showPopover&&!navigator.userAgent.includes("Firefox");if(e){this.popoverEl.removeEventListener("toggle",this.handleNativePopoverToggle)}}if(this.isOpen&&this.popoverEl){try{this.popoverEl.hidePopover()}catch(e){this.popoverEl.style.display="none";this.popoverEl.classList.remove("is-open")}}};e.prototype.componentDidRender=function(){if(this.popoverEl){var e=HTMLElement.prototype.showPopover&&!navigator.userAgent.includes("Firefox");if(e){this.popoverEl.removeEventListener("toggle",this.handleNativePopoverToggle);this.popoverEl.addEventListener("toggle",this.handleNativePopoverToggle)}}};e.prototype.handleWindowResize=function(){var e=this;if(this.isOpen){setTimeout((function(){return e.adjustPopoverPosition()}),16)}};e.prototype.handleWindowScroll=function(){var e=this;if(this.isOpen){var r="anchorName"in document.documentElement.style;var i=performance.now();var t=r?66:33;if(i-this.lastScrollTime<t){return}this.lastScrollTime=i;if(this.scrollRAF){cancelAnimationFrame(this.scrollRAF)}this.scrollRAF=requestAnimationFrame((function(){if(e.isOpen&&e.popoverEl&&e.el.isConnected){e.adjustPopoverPosition()}e.scrollRAF=null}))}};e.prototype.closeOtherPopovers=function(){var e=this;var r=document.querySelectorAll("pds-filter");r.forEach((function(r){var i;if(r===e.el)return;var t=(i=r.shadowRoot)===null||i===void 0?void 0:i.querySelector(".pds-filter__popover");if(t){var o=false;try{o=t.matches(":popover-open")}catch(e){o=t.style.display==="block"}if(o){try{t.hidePopover()}catch(e){t.style.display="none";t.classList.remove("is-open")}}}}))};e.prototype.adjustPopoverPosition=function(){var e;if(!this.popoverEl||this.variant==="clear")return;var r=(e=this.el.shadowRoot)===null||e===void 0?void 0:e.querySelector(".pds-filter__trigger");if(!r)return;var i=r.getBoundingClientRect();var t=window.innerWidth;var o=window.innerHeight;var n="anchorName"in document.documentElement.style;var a=228;var s=this.popoverEl.getBoundingClientRect().height||200;var l=20;var p=i.left+a+l>t;var c=i.bottom+8+s+l>o;if(n){this.popoverEl.classList.remove("popover-flip-horizontal","popover-flip-vertical");if(p){this.popoverEl.classList.add("popover-flip-horizontal")}if(c){this.popoverEl.classList.add("popover-flip-vertical")}}else{var f=i.left;var d=i.bottom+8;var h="top left";if(p){var v=this.popoverEl.getBoundingClientRect().width||a;f=i.right-v;h="top right"}if(c){d=i.top-s-8;h=h.replace("top","bottom")}this.popoverEl.style.cssText="\n position: fixed;\n left: ".concat(f,"px;\n top: ").concat(d,"px;\n z-index: var(--pine-z-index-overlay);\n transform-origin: ").concat(h,";\n ")}};e.prototype.showFilter=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){if(this.variant==="clear"){console.warn("Clear variant does not support showFilter method");return[2]}if(this.popoverEl!=null){try{this.popoverEl.showPopover()}catch(e){this.popoverEl.style.display="block";this.popoverEl.classList.add("is-open")}}return[2]}))}))};e.prototype.hideFilter=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){if(this.variant==="clear"){console.warn("Clear variant does not support hideFilter method");return[2]}if(this.popoverEl!=null){try{this.popoverEl.hidePopover()}catch(e){this.popoverEl.style.display="none";this.popoverEl.classList.remove("is-open")}}return[2]}))}))};e.prototype.handlePopoverToggle=function(e){var r=this;var i=e.target;var t=HTMLElement.prototype.showPopover&&!navigator.userAgent.includes("Firefox");if(!t&&i&&i.id==="".concat(this.componentId,"-popover")){var o=false;try{o=i.matches(":popover-open")}catch(e){o=i.style.display==="block"}this.isOpen=o;if(this.isOpen){setTimeout((function(){return r.adjustPopoverPosition()}),0);this.pdsFilterOpen.emit({componentId:this.componentId,variant:this.variant,text:this.text})}else{this.pdsFilterClose.emit({componentId:this.componentId,variant:this.variant,text:this.text})}}};e.prototype.handleDocumentClick=function(e){var r=this;if(!this.el.contains(e.target)&&this.isOpen&&this.variant!=="clear"){setTimeout((function(){if(r.popoverEl&&r.isOpen){var e=HTMLElement.prototype.showPopover&&!navigator.userAgent.includes("Firefox");var i=false;if(e){try{i=!r.popoverEl.matches(":popover-open")}catch(e){i=r.popoverEl.style.display!=="block"}}else{i=true}if(i){r.isOpen=false;if(!e){r.popoverEl.style.display="none";r.popoverEl.classList.remove("is-open")}r.pdsFilterClose.emit({componentId:r.componentId,variant:r.variant,text:r.text})}}}),0)}};e.prototype.handleEscapeKey=function(e){var r=this;if(e.key==="Escape"&&this.isOpen&&this.variant!=="clear"){setTimeout((function(){if(r.popoverEl&&r.isOpen){var e=HTMLElement.prototype.showPopover&&!navigator.userAgent.includes("Firefox");var i=false;if(e){try{i=!r.popoverEl.matches(":popover-open")}catch(e){i=r.popoverEl.style.display!=="block"}}else{i=true}if(i){r.isOpen=false;if(!e){r.popoverEl.style.display="none";r.popoverEl.classList.remove("is-open")}r.pdsFilterClose.emit({componentId:r.componentId,variant:r.variant,text:r.text})}}}),0)}};e.prototype.getIcon=function(){if(this.variant==="clear"){return trash}return this.icon};e.prototype.getTriggerClasses=function(){var e=["pds-filter__trigger"];e.push("pds-filter__trigger--".concat(this.variant));if(this.isOpen&&this.variant!=="clear"){e.push("pds-filter__trigger--open")}return e.join(" ")};e.prototype.renderIcon=function(){var e=this.getIcon();if(e==null||e==="")return null;return h("pds-icon",{icon:e,size:"var(--pine-font-size-100)","aria-hidden":"true",part:"icon"})};e.prototype.renderDropdownIcon=function(){if(this.variant==="selected"){return h("pds-icon",{icon:enlarge,size:"var(--pine-dimension-200)","aria-hidden":"true",class:"pds-filter__dropdown-icon",part:"icon"})}return null};e.prototype.render=function(){var e=this;return h(Host,{key:"e70f7bf3612c5c8abe7445ba3a4e53391a68de9e",id:this.componentId},h("button",{key:"2cba723795c43509762f75cb4b6607ce547f7c39",class:this.getTriggerClasses(),type:"button",popoverTarget:this.variant!=="clear"?"".concat(this.componentId,"-popover"):undefined,popoverTargetAction:this.variant!=="clear"?"toggle":undefined,onKeyDown:this.variant==="clear"?this.handleKeyDown:undefined,onClick:function(r){return e.handleClick(r)},part:"button","aria-expanded":this.isOpen?"true":"false","aria-haspopup":this.variant!=="clear"?"true":undefined,"aria-controls":this.variant!=="clear"?"".concat(this.componentId,"-popover"):undefined},h("span",{key:"8244dd35cc74c6f0138be2d3495d94b97f60474f",class:"pds-filter__button-content",part:"button-content"},this.renderIcon(),this.text&&h("span",{key:"d97c085d1df1ca13ccaf1f26ca2dac81bdfb105a",class:"pds-filter__button-text",part:"button-text"},this.text),this.renderDropdownIcon())),this.variant!=="clear"&&h("div",{key:"0b9daf4591ea20db06813ce4c39442d69af3fda1",ref:function(r){return e.popoverEl=r},id:"".concat(this.componentId,"-popover"),class:"pds-filter__popover",popover:"auto",part:"popover"},h("slot",{key:"f4499fe2d5a6a169318fe65cbbc558565c8644f9"})))};Object.defineProperty(e.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});return e}();PdsFilter.style=pdsFilterCss;export{PdsFilter as pds_filter};
1
+ import{__awaiter,__generator}from"tslib";import{r as registerInstance,c as createEvent,h,H as Host,a as getElement}from"./index-DHPhrb5T.js";import{t as trash,e as enlarge}from"./index-CShvJnsl.js";var pdsFilterCss=":host{--box-shadow-focus:0 0 0 1px var(--pine-color-white), 0 0 0 3px var(--pine-color-focus-ring);display:inline-block;position:relative}.pds-filter__trigger{-ms-flex-align:center;align-items:center;anchor-name:--filter-trigger;background:var(--pine-color-background-container);border:var(--pine-border);border-radius:var(--pine-dimension-100);-webkit-box-shadow:var(--pine-box-shadow-050);box-shadow:var(--pine-box-shadow-050);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pine-color-text-tertiary);cursor:pointer;display:-ms-inline-flexbox;display:inline-flex;font-family:var(--pine-font-family-inter);font-size:var(--pine-font-size-100);font-weight:var(--pine-font-weight-400);gap:var(--pine-dimension-050);letter-spacing:var(--pine-letter-spacing-114);line-height:var(--pine-line-height-150);padding:var(--pine-dimension-025) var(--pine-dimension-125);position:relative;-webkit-transition:all 0.2s ease;transition:all 0.2s ease}.pds-filter__trigger pds-icon{block-size:var(--pine-font-size-100);color:var(--pine-color-text-secondary);-ms-flex-negative:0;flex-shrink:0;inline-size:var(--pine-font-size-100)}.pds-filter__trigger:hover,.pds-filter__trigger.pds-filter__trigger--open{background-color:var(--pine-color-background-subtle);border-color:var(--pine-color-border-hover);color:var(--pine-color-text-hover)}.pds-filter__trigger:hover pds-icon,.pds-filter__trigger.pds-filter__trigger--open pds-icon{color:var(--pine-color-text-secondary)}.pds-filter__trigger:focus-visible{-webkit-box-shadow:var(--box-shadow-focus);box-shadow:var(--box-shadow-focus);outline:none}.pds-filter__trigger:disabled{cursor:not-allowed;opacity:0.5}.pds-filter__trigger--selected{background-color:var(--pine-color-purple-050);border-color:var(--pine-color-purple-500);color:var(--pine-color-purple-600)}.pds-filter__trigger--selected pds-icon{color:var(--pine-color-purple-600)}.pds-filter__trigger--selected:hover,.pds-filter__trigger--selected.pds-filter__trigger--open{background-color:var(--pine-color-purple-100);border-color:var(--pine-color-purple-500);color:var(--pine-color-purple-600)}.pds-filter__trigger--selected:hover pds-icon,.pds-filter__trigger--selected.pds-filter__trigger--open pds-icon{color:var(--pine-color-purple-600)}.pds-filter__trigger--selected:focus-visible{-webkit-box-shadow:var(--box-shadow-focus);box-shadow:var(--box-shadow-focus);outline:none}.pds-filter__trigger--more{background-color:var(--pine-color-background-container-hover);border:var(--pine-border-width-thin) dashed var(--pine-color-border);color:var(--pine-color-text-tertiary)}.pds-filter__trigger--more pds-icon{color:var(--pine-color-text-secondary)}.pds-filter__trigger--more:hover,.pds-filter__trigger--more.pds-filter__trigger--open{background-color:var(--pine-color-background-subtle);border-color:var(--pine-color-border-hover);color:var(--pine-color-text-hover)}.pds-filter__trigger--more:hover pds-icon,.pds-filter__trigger--more.pds-filter__trigger--open pds-icon{color:var(--pine-color-text-secondary)}.pds-filter__trigger--more:focus-visible{-webkit-box-shadow:var(--box-shadow-focus);box-shadow:var(--box-shadow-focus);outline:none}.pds-filter__trigger--clear{background:transparent;border:var(--pine-border-width-thin) solid transparent;border-radius:var(--pine-dimension-100);-webkit-box-shadow:none;box-shadow:none;color:var(--pine-color-purple-600)}.pds-filter__trigger--clear pds-icon{color:var(--pine-color-purple-600)}.pds-filter__trigger--clear:hover{background-color:var(--pine-color-purple-100);border-color:var(--pine-color-purple-100);color:var(--pine-color-purple-600)}.pds-filter__trigger--clear:hover pds-icon{color:var(--pine-color-purple-600)}.pds-filter__trigger--clear:focus-visible{-webkit-box-shadow:var(--box-shadow-focus);box-shadow:var(--box-shadow-focus);outline:none}.pds-filter__button-content{-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex;gap:var(--pine-dimension-050);max-inline-size:148px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pds-filter__button-text{line-height:var(--pine-line-height-150);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pds-filter__dropdown-icon{block-size:var(--pine-dimension-200);-ms-flex-negative:0;flex-shrink:0;inline-size:var(--pine-dimension-200)}.pds-filter__popover{background-color:var(--pine-color-background-container);border:0;border-radius:var(--pine-dimension-100);-webkit-box-shadow:var(--pine-box-shadow-100);box-shadow:var(--pine-box-shadow-100);display:none;inline-size:228px;inset:unset;padding:var(--pine-dimension-100);z-index:var(--pine-z-index-overlay);}.pds-filter__popover:popover-open,.pds-filter__popover.is-open{display:block}@supports (anchor-name: --test){.pds-filter__popover{inset-block-start:calc(anchor(--filter-trigger bottom) + var(--pine-dimension-100));inset-inline-start:anchor(--filter-trigger left);position:fixed;position-anchor:--filter-trigger;}.pds-filter__popover.popover-flip-horizontal{inset-inline-start:anchor(--filter-trigger right);-webkit-transform:translateX(-100%);transform:translateX(-100%)}.pds-filter__popover.popover-flip-vertical{inset-block-start:anchor(--filter-trigger top);-webkit-transform:translateY(calc(-100% - var(--pine-dimension-100)));transform:translateY(calc(-100% - var(--pine-dimension-100)))}.pds-filter__popover.popover-flip-horizontal.popover-flip-vertical{inset-block-start:anchor(--filter-trigger top);inset-inline-start:anchor(--filter-trigger right);-webkit-transform:translate(-100%, calc(-100% - var(--pine-dimension-100)));transform:translate(-100%, calc(-100% - var(--pine-dimension-100)))}.pds-filter__popover.is-open.popover-flip-horizontal{inset-inline-start:anchor(--filter-trigger right);-webkit-transform:translateX(-100%);transform:translateX(-100%)}.pds-filter__popover.is-open.popover-flip-vertical{inset-block-start:anchor(--filter-trigger top);-webkit-transform:translateY(calc(-100% - var(--pine-dimension-100)));transform:translateY(calc(-100% - var(--pine-dimension-100)))}.pds-filter__popover.is-open.popover-flip-horizontal.popover-flip-vertical{inset-block-start:anchor(--filter-trigger top);inset-inline-start:anchor(--filter-trigger right);-webkit-transform:translate(-100%, calc(-100% - var(--pine-dimension-100)));transform:translate(-100%, calc(-100% - var(--pine-dimension-100)))}}";var PdsFilter=function(){function e(e){var r=this;registerInstance(this,e);this.pdsFilterOpen=createEvent(this,"pdsFilterOpen");this.pdsFilterClose=createEvent(this,"pdsFilterClose");this.pdsFilterClear=createEvent(this,"pdsFilterClear");this.scrollRAF=null;this.lastScrollTime=0;this.variant="default";this.isOpen=false;this.handleNativePopoverToggle=function(e){var i=e.target;if(i&&i.id==="".concat(r.componentId,"-popover")){var t=false;try{t=i.matches(":popover-open")}catch(e){t=i.style.display==="block"}r.isOpen=t;if(r.isOpen){setTimeout((function(){return r.adjustPopoverPosition()}),0);r.pdsFilterOpen.emit({componentId:r.componentId,variant:r.variant,text:r.text})}else{r.pdsFilterClose.emit({componentId:r.componentId,variant:r.variant,text:r.text})}}};this.handleKeyDown=function(e){if(r.variant==="clear"&&(e.key==="Enter"||e.key===" ")){e.preventDefault();r.handleClick()}};this.handleClick=function(e){if(r.variant==="clear"){r.pdsFilterClear.emit({componentId:r.componentId,text:r.text});return}r.closeOtherPopovers();var i=HTMLElement.prototype.showPopover&&!navigator.userAgent.includes("Firefox");if(!i){if(e){e.preventDefault()}setTimeout((function(){if(r.popoverEl!=null){r.isOpen=!r.isOpen;if(r.isOpen){r.popoverEl.style.display="block";r.popoverEl.classList.add("is-open");r.adjustPopoverPosition();r.pdsFilterOpen.emit({componentId:r.componentId,variant:r.variant,text:r.text})}else{r.popoverEl.style.display="none";r.popoverEl.classList.remove("is-open");r.pdsFilterClose.emit({componentId:r.componentId,variant:r.variant,text:r.text})}}}),0)}}}e.prototype.disconnectedCallback=function(){if(this.scrollRAF){cancelAnimationFrame(this.scrollRAF);this.scrollRAF=null}this.lastScrollTime=0;if(this.popoverEl){var e=HTMLElement.prototype.showPopover&&!navigator.userAgent.includes("Firefox");if(e){this.popoverEl.removeEventListener("toggle",this.handleNativePopoverToggle)}}if(this.isOpen&&this.popoverEl){try{this.popoverEl.hidePopover()}catch(e){this.popoverEl.style.display="none";this.popoverEl.classList.remove("is-open")}}};e.prototype.componentDidRender=function(){if(this.popoverEl){var e=HTMLElement.prototype.showPopover&&!navigator.userAgent.includes("Firefox");if(e){this.popoverEl.removeEventListener("toggle",this.handleNativePopoverToggle);this.popoverEl.addEventListener("toggle",this.handleNativePopoverToggle)}}};e.prototype.handleWindowResize=function(){var e=this;if(this.isOpen){setTimeout((function(){return e.adjustPopoverPosition()}),16)}};e.prototype.handleWindowScroll=function(){var e=this;if(this.isOpen){var r="anchorName"in document.documentElement.style;var i=performance.now();var t=r?66:33;if(i-this.lastScrollTime<t){return}this.lastScrollTime=i;if(this.scrollRAF){cancelAnimationFrame(this.scrollRAF)}this.scrollRAF=requestAnimationFrame((function(){if(e.isOpen&&e.popoverEl&&e.el.isConnected){e.adjustPopoverPosition()}e.scrollRAF=null}))}};e.prototype.closeOtherPopovers=function(){var e=this;var r=document.querySelectorAll("pds-filter");r.forEach((function(r){var i;if(r===e.el)return;var t=(i=r.shadowRoot)===null||i===void 0?void 0:i.querySelector(".pds-filter__popover");if(t){var o=false;try{o=t.matches(":popover-open")}catch(e){o=t.style.display==="block"}if(o){try{t.hidePopover()}catch(e){t.style.display="none";t.classList.remove("is-open")}}}}))};e.prototype.adjustPopoverPosition=function(){var e;if(!this.popoverEl||this.variant==="clear")return;var r=(e=this.el.shadowRoot)===null||e===void 0?void 0:e.querySelector(".pds-filter__trigger");if(!r)return;var i=r.getBoundingClientRect();var t=window.innerWidth;var o=window.innerHeight;var n="anchorName"in document.documentElement.style;var a=228;var s=this.popoverEl.getBoundingClientRect().height||200;var l=20;var p=i.left+a+l>t;var c=i.bottom+8+s+l>o;if(n){this.popoverEl.classList.remove("popover-flip-horizontal","popover-flip-vertical");if(p){this.popoverEl.classList.add("popover-flip-horizontal")}if(c){this.popoverEl.classList.add("popover-flip-vertical")}}else{var d=i.left;var f=i.bottom+8;var h="top left";if(p){var v=this.popoverEl.getBoundingClientRect().width||a;d=i.right-v;h="top right"}if(c){f=i.top-s-8;h=h.replace("top","bottom")}this.popoverEl.style.cssText="\n position: fixed;\n left: ".concat(d,"px;\n top: ").concat(f,"px;\n z-index: var(--pine-z-index-overlay);\n transform-origin: ").concat(h,";\n ")}};e.prototype.showFilter=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){if(this.variant==="clear"){console.warn("Clear variant does not support showFilter method");return[2]}if(this.popoverEl!=null){try{this.popoverEl.showPopover()}catch(e){this.popoverEl.style.display="block";this.popoverEl.classList.add("is-open")}}return[2]}))}))};e.prototype.hideFilter=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){if(this.variant==="clear"){console.warn("Clear variant does not support hideFilter method");return[2]}if(this.popoverEl!=null){try{this.popoverEl.hidePopover()}catch(e){this.popoverEl.style.display="none";this.popoverEl.classList.remove("is-open")}}return[2]}))}))};e.prototype.handlePopoverToggle=function(e){var r=this;var i=e.target;var t=HTMLElement.prototype.showPopover&&!navigator.userAgent.includes("Firefox");if(!t&&i&&i.id==="".concat(this.componentId,"-popover")){var o=false;try{o=i.matches(":popover-open")}catch(e){o=i.style.display==="block"}this.isOpen=o;if(this.isOpen){setTimeout((function(){return r.adjustPopoverPosition()}),0);this.pdsFilterOpen.emit({componentId:this.componentId,variant:this.variant,text:this.text})}else{this.pdsFilterClose.emit({componentId:this.componentId,variant:this.variant,text:this.text})}}};e.prototype.handleDocumentClick=function(e){var r=this;if(!this.el.contains(e.target)&&this.isOpen&&this.variant!=="clear"){setTimeout((function(){if(r.popoverEl&&r.isOpen){var e=HTMLElement.prototype.showPopover&&!navigator.userAgent.includes("Firefox");var i=false;if(e){try{i=!r.popoverEl.matches(":popover-open")}catch(e){i=r.popoverEl.style.display!=="block"}}else{i=true}if(i){r.isOpen=false;if(!e){r.popoverEl.style.display="none";r.popoverEl.classList.remove("is-open")}r.pdsFilterClose.emit({componentId:r.componentId,variant:r.variant,text:r.text})}}}),0)}};e.prototype.handleEscapeKey=function(e){var r=this;if(e.key==="Escape"&&this.isOpen&&this.variant!=="clear"){setTimeout((function(){if(r.popoverEl&&r.isOpen){var e=HTMLElement.prototype.showPopover&&!navigator.userAgent.includes("Firefox");var i=false;if(e){try{i=!r.popoverEl.matches(":popover-open")}catch(e){i=r.popoverEl.style.display!=="block"}}else{i=true}if(i){r.isOpen=false;if(!e){r.popoverEl.style.display="none";r.popoverEl.classList.remove("is-open")}r.pdsFilterClose.emit({componentId:r.componentId,variant:r.variant,text:r.text})}}}),0)}};e.prototype.getIcon=function(){if(this.variant==="clear"){return trash}return this.icon};e.prototype.getTriggerClasses=function(){var e=["pds-filter__trigger"];e.push("pds-filter__trigger--".concat(this.variant));if(this.isOpen&&this.variant!=="clear"){e.push("pds-filter__trigger--open")}return e.join(" ")};e.prototype.renderIcon=function(){var e=this.getIcon();if(e==null||e==="")return null;return h("pds-icon",{icon:e,size:"var(--pine-font-size-100)","aria-hidden":"true",part:"icon"})};e.prototype.renderDropdownIcon=function(){if(this.variant==="selected"){return h("pds-icon",{icon:enlarge,size:"var(--pine-dimension-200)","aria-hidden":"true",class:"pds-filter__dropdown-icon",part:"icon"})}return null};e.prototype.render=function(){var e=this;return h(Host,{key:"e70f7bf3612c5c8abe7445ba3a4e53391a68de9e",id:this.componentId},h("button",{key:"2cba723795c43509762f75cb4b6607ce547f7c39",class:this.getTriggerClasses(),type:"button",popoverTarget:this.variant!=="clear"?"".concat(this.componentId,"-popover"):undefined,popoverTargetAction:this.variant!=="clear"?"toggle":undefined,onKeyDown:this.variant==="clear"?this.handleKeyDown:undefined,onClick:function(r){return e.handleClick(r)},part:"button","aria-expanded":this.isOpen?"true":"false","aria-haspopup":this.variant!=="clear"?"true":undefined,"aria-controls":this.variant!=="clear"?"".concat(this.componentId,"-popover"):undefined},h("span",{key:"8244dd35cc74c6f0138be2d3495d94b97f60474f",class:"pds-filter__button-content",part:"button-content"},this.renderIcon(),this.text&&h("span",{key:"d97c085d1df1ca13ccaf1f26ca2dac81bdfb105a",class:"pds-filter__button-text",part:"button-text"},this.text),this.renderDropdownIcon())),this.variant!=="clear"&&h("div",{key:"0b9daf4591ea20db06813ce4c39442d69af3fda1",ref:function(r){return e.popoverEl=r},id:"".concat(this.componentId,"-popover"),class:"pds-filter__popover",popover:"auto",part:"popover"},h("slot",{key:"f4499fe2d5a6a169318fe65cbbc558565c8644f9"})))};Object.defineProperty(e.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});return e}();PdsFilter.style=pdsFilterCss;export{PdsFilter as pds_filter};
2
2
  //# sourceMappingURL=pds-filter.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pds-filter.entry.js","sources":["src/components/pds-filters/pds-filter/pds-filter.scss?tag=pds-filter&encapsulation=shadow","src/components/pds-filters/pds-filter/pds-filter.tsx"],"sourcesContent":[":host {\n --box-shadow-focus: 0 0 0 1px var(--pine-color-white), 0 0 0 3px var(--pine-color-focus-ring);\n\n display: inline-block;\n position: relative;\n}\n\n.pds-filter__trigger {\n align-items: center;\n /* stylelint-disable-next-line property-no-unknown */\n anchor-name: --filter-trigger;\n background: var(--pine-color-background-container);\n border: var(--pine-border-width-thin) solid var(--pine-color-border);\n border-radius: var(--pine-dimension-100);\n box-shadow: var(--pine-box-shadow-050);\n box-sizing: border-box;\n color: var(--pine-color-text-placeholder);\n cursor: pointer;\n display: inline-flex;\n font-family: var(--pine-font-family-inter);\n font-size: var(--pine-font-size-100);\n font-weight: var(--pine-font-weight-400);\n gap: var(--pine-dimension-050);\n letter-spacing: var(--pine-letter-spacing-114);\n line-height: var(--pine-line-height-150);\n padding: var(--pine-dimension-025) var(--pine-dimension-125);\n position: relative;\n transition: all 0.2s ease;\n\n pds-icon {\n block-size: var(--pine-font-size-100);\n color: var(--pine-color-grey-800);\n flex-shrink: 0;\n inline-size: var(--pine-font-size-100);\n }\n\n &:hover,\n &.pds-filter__trigger--open {\n background-color: var(--pine-color-grey-100);\n border-color: var(--pine-color-grey-400);\n color: var(--pine-color-text-hover);\n\n pds-icon {\n color: var(--pine-color-grey-800);\n }\n }\n\n &:focus-visible {\n box-shadow: var(--box-shadow-focus);\n outline: none;\n }\n\n &:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n}\n\n.pds-filter__trigger--selected {\n background-color: var(--pine-color-purple-050);\n border-color: var(--pine-color-purple-500);\n color: var(--pine-color-purple-600);\n\n pds-icon {\n color: var(--pine-color-purple-600);\n }\n\n &:hover,\n &.pds-filter__trigger--open {\n background-color: var(--pine-color-purple-100);\n border-color: var(--pine-color-purple-500);\n color: var(--pine-color-purple-600);\n\n pds-icon {\n color: var(--pine-color-purple-600);\n }\n }\n\n &:focus-visible {\n box-shadow: var(--box-shadow-focus);\n outline: none;\n }\n}\n\n.pds-filter__trigger--more {\n background-color: var(--pine-color-grey-050);\n border: var(--pine-border-width-thin) dashed var(--pine-color-grey-300);\n color: var(--pine-color-text-placeholder);\n\n pds-icon {\n color: var(--pine-color-grey-800);\n }\n\n &:hover,\n &.pds-filter__trigger--open {\n background-color: var(--pine-color-grey-100);\n border-color: var(--pine-color-grey-400);\n color: var(--pine-color-text-hover);\n\n pds-icon {\n color: var(--pine-color-grey-800);\n }\n }\n\n &:focus-visible {\n box-shadow: var(--box-shadow-focus);\n outline: none;\n }\n}\n\n.pds-filter__trigger--clear {\n background: transparent;\n border: var(--pine-border-width-thin) solid transparent;\n border-radius: var(--pine-dimension-100);\n box-shadow: none;\n color: var(--pine-color-purple-600);\n\n pds-icon {\n color: var(--pine-color-purple-600);\n }\n\n &:hover {\n background-color: var(--pine-color-purple-100);\n border-color: var(--pine-color-purple-100);\n color: var(--pine-color-purple-600);\n\n pds-icon {\n color: var(--pine-color-purple-600);\n }\n }\n\n &:focus-visible {\n box-shadow: var(--box-shadow-focus);\n outline: none;\n }\n}\n\n.pds-filter__button-content {\n align-items: center;\n display: inline-flex;\n gap: var(--pine-dimension-050);\n max-inline-size: 148px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.pds-filter__button-text {\n line-height: var(--pine-line-height-150);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.pds-filter__dropdown-icon {\n block-size: var(--pine-dimension-200);\n flex-shrink: 0;\n inline-size: var(--pine-dimension-200);\n}\n\n\n.pds-filter__popover {\n background-color: var(--pine-color-background-container);\n border: 0;\n border-radius: var(--pine-dimension-100);\n box-shadow: var(--pine-box-shadow-100);\n display: none;\n inline-size: 228px;\n inset: unset;\n padding: var(--pine-dimension-100);\n z-index: var(--pine-z-index-overlay);\n\n /* stylelint-disable-next-line selector-pseudo-class-no-unknown */\n &:popover-open,\n &.is-open {\n display: block;\n }\n\n /* Modern browsers: CSS anchor positioning with JavaScript-controlled flipping */\n @supports (anchor-name: --test) {\n inset-block-start: calc(anchor(--filter-trigger bottom) + var(--pine-dimension-100));\n inset-inline-start: anchor(--filter-trigger left);\n position: fixed; /* Anchor positioning requires fixed positioning */\n /* stylelint-disable-next-line property-no-unknown */\n position-anchor: --filter-trigger;\n\n /* CSS position-try disabled for precise JavaScript-controlled flipping */\n\n /* Flipping classes applied by JavaScript for precise control */\n &.popover-flip-horizontal {\n inset-inline-start: anchor(--filter-trigger right);\n transform: translateX(-100%);\n }\n\n &.popover-flip-vertical {\n inset-block-start: anchor(--filter-trigger top);\n transform: translateY(calc(-100% - var(--pine-dimension-100)));\n }\n\n &.popover-flip-horizontal.popover-flip-vertical {\n inset-block-start: anchor(--filter-trigger top);\n inset-inline-start: anchor(--filter-trigger right);\n transform: translate(-100%, calc(-100% - var(--pine-dimension-100)));\n }\n\n /* Ensure fallback class works with flipping in modern browsers */\n &.is-open.popover-flip-horizontal {\n inset-inline-start: anchor(--filter-trigger right);\n transform: translateX(-100%);\n }\n\n &.is-open.popover-flip-vertical {\n inset-block-start: anchor(--filter-trigger top);\n transform: translateY(calc(-100% - var(--pine-dimension-100)));\n }\n\n &.is-open.popover-flip-horizontal.popover-flip-vertical {\n inset-block-start: anchor(--filter-trigger top);\n inset-inline-start: anchor(--filter-trigger right);\n transform: translate(-100%, calc(-100% - var(--pine-dimension-100)));\n }\n\n }\n}\n","import { Component, Element, Event, EventEmitter, Host, h, Prop, State, Method, Listen } from '@stencil/core';\nimport type { BasePdsProps } from '@utils/interfaces';\nimport type { PdsFilterOpenEventDetail, PdsFilterCloseEventDetail, PdsFilterClearEventDetail, PdsFilterVariant } from './filter-interface';\n\nimport { enlarge, trash } from '@pine-ds/icons/icons';\n\n/**\n * Individual filter component with cross-browser popover positioning.\n *\n * Uses a hybrid approach for optimal cross-browser compatibility:\n * - Modern browsers: CSS anchor positioning + JavaScript flip classes\n * - Fallback browsers: JavaScript positioning with viewport boundary detection\n *\n * @part button - Exposes the trigger button element for styling.\n * @part button-content - Exposes the button content container for styling.\n * @part button-text - Exposes the button text for styling.\n * @part icon - Exposes the icon component for styling.\n * @part popover - Exposes the popover container for styling.\n * @slot (default) - Popover content that will be displayed when the filter is open.\n */\n\n@Component({\n tag: 'pds-filter',\n styleUrl: 'pds-filter.scss',\n shadow: true,\n})\nexport class PdsFilter implements BasePdsProps {\n @Element() el!: HTMLPdsFilterElement;\n\n private popoverEl: HTMLElement;\n private scrollRAF: number | null = null;\n private lastScrollTime = 0;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * The variant style of the filter trigger.\n * @defaultValue 'default'\n */\n @Prop() variant: PdsFilterVariant = 'default';\n\n /**\n * The name of the icon to display in the trigger button.\n * For 'clear' variant, this is ignored as it always shows trash icon.\n */\n @Prop() icon?: string;\n\n /**\n * The text content displayed in the trigger button.\n */\n @Prop() text?: string;\n\n\n /**\n * State to track if the popover is open.\n */\n @State() isOpen = false;\n\n /**\n * Event emitted when the filter popover is opened.\n */\n @Event() pdsFilterOpen: EventEmitter<PdsFilterOpenEventDetail>;\n\n /**\n * Event emitted when the filter popover is closed.\n */\n @Event() pdsFilterClose: EventEmitter<PdsFilterCloseEventDetail>;\n\n /**\n * Event emitted when the clear variant is clicked.\n */\n @Event() pdsFilterClear: EventEmitter<PdsFilterClearEventDetail>;\n\n\n /**\n * Component lifecycle: Clean up when disconnected from DOM.\n * Prevents memory leaks by canceling pending operations and closing popovers.\n */\n disconnectedCallback() {\n // Cancel pending animation frames\n if (this.scrollRAF) {\n cancelAnimationFrame(this.scrollRAF);\n this.scrollRAF = null;\n }\n\n this.lastScrollTime = 0;\n\n // Clean up native popover event listeners\n if (this.popoverEl) {\n const supportsPopoverAPI = HTMLElement.prototype.showPopover && !navigator.userAgent.includes('Firefox');\n if (supportsPopoverAPI) {\n this.popoverEl.removeEventListener('toggle', this.handleNativePopoverToggle);\n }\n }\n\n // Ensure popover is closed\n if (this.isOpen && this.popoverEl) {\n try {\n this.popoverEl.hidePopover();\n } catch (error) {\n this.popoverEl.style.display = 'none';\n this.popoverEl.classList.remove('is-open');\n }\n }\n }\n\n\n componentDidRender() {\n // Note: popoverEl is set via ref callback in render method\n // For browsers with native popover API, we need direct element listeners\n // since the document listener may not capture native popover toggle events\n if (this.popoverEl) {\n const supportsPopoverAPI = HTMLElement.prototype.showPopover && !navigator.userAgent.includes('Firefox');\n\n if (supportsPopoverAPI) {\n // Remove any existing listeners to avoid duplicates\n this.popoverEl.removeEventListener('toggle', this.handleNativePopoverToggle);\n // Add direct listener for native popover events\n this.popoverEl.addEventListener('toggle', this.handleNativePopoverToggle);\n }\n }\n }\n\n /**\n * Handle native popover toggle events directly on the element\n * This is needed for browsers with native Popover API support\n */\n private handleNativePopoverToggle = (event: Event) => {\n const target = event.target as HTMLElement;\n\n if (target && target.id === `${this.componentId}-popover`) {\n // Check current popover state\n let isCurrentlyOpen = false;\n try {\n isCurrentlyOpen = target.matches(':popover-open');\n } catch (error) {\n // Fallback if :popover-open selector isn't supported\n isCurrentlyOpen = target.style.display === 'block';\n }\n\n // Update state\n this.isOpen = isCurrentlyOpen;\n\n if (this.isOpen) {\n setTimeout(() => this.adjustPopoverPosition(), 0);\n\n this.pdsFilterOpen.emit({\n componentId: this.componentId,\n variant: this.variant,\n text: this.text,\n });\n } else {\n this.pdsFilterClose.emit({\n componentId: this.componentId,\n variant: this.variant,\n text: this.text,\n });\n }\n }\n };\n\n /**\n * Reposition popovers on window resize.\n */\n @Listen('resize', { target: 'window' })\n handleWindowResize() {\n if (this.isOpen) {\n setTimeout(() => this.adjustPopoverPosition(), 16);\n }\n }\n\n /**\n * Reposition popovers on scroll with performance throttling.\n */\n @Listen('scroll', { target: 'window', passive: true })\n handleWindowScroll() {\n if (this.isOpen) {\n const supportsAnchorPositioning = \"anchorName\" in document.documentElement.style;\n const now = performance.now();\n\n const throttleMs = supportsAnchorPositioning ? 66 : 33;\n if (now - this.lastScrollTime < throttleMs) {\n return;\n }\n\n this.lastScrollTime = now;\n\n if (this.scrollRAF) {\n cancelAnimationFrame(this.scrollRAF);\n }\n\n this.scrollRAF = requestAnimationFrame(() => {\n if (this.isOpen && this.popoverEl && this.el.isConnected) {\n this.adjustPopoverPosition();\n }\n this.scrollRAF = null;\n });\n }\n }\n\n /**\n * Closes other open filter popovers to ensure only one is open at a time.\n */\n private closeOtherPopovers() {\n const allFilters = document.querySelectorAll('pds-filter');\n\n allFilters.forEach((filter) => {\n if (filter === this.el) return;\n\n const popover = filter.shadowRoot?.querySelector('.pds-filter__popover') as HTMLElement;\n\n if (popover) {\n // Check for popover API support to avoid crashes\n let isPopoverOpen = false;\n try {\n isPopoverOpen = popover.matches(':popover-open');\n } catch (error) {\n // Fallback if :popover-open selector isn't supported\n isPopoverOpen = popover.style.display === 'block';\n }\n\n if (isPopoverOpen) {\n try {\n popover.hidePopover();\n } catch (error) {\n popover.style.display = 'none';\n popover.classList.remove('is-open');\n }\n }\n }\n });\n }\n\n /**\n * Adjusts popover position to keep it within viewport bounds.\n * Uses CSS anchor positioning for modern browsers, JavaScript for fallback browsers.\n */\n private adjustPopoverPosition() {\n if (!this.popoverEl || this.variant === 'clear') return;\n\n const triggerEl = this.el.shadowRoot?.querySelector('.pds-filter__trigger') as HTMLElement;\n if (!triggerEl) return;\n\n const triggerRect = triggerEl.getBoundingClientRect();\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n\n const supportsAnchorPositioning = \"anchorName\" in document.documentElement.style;\n\n // Get dimensions for boundary detection\n const popoverWidth = 228;\n const popoverHeight = this.popoverEl.getBoundingClientRect().height || 200;\n\n // Boundary detection for flipping\n const bufferSpace = 20;\n const wouldOverflowRight = (triggerRect.left + popoverWidth + bufferSpace) > viewportWidth;\n const wouldOverflowBottom = (triggerRect.bottom + 8 + popoverHeight + bufferSpace) > viewportHeight;\n\n if (supportsAnchorPositioning) {\n // Modern browsers: CSS anchor positioning + JavaScript-controlled flipping\n this.popoverEl.classList.remove('popover-flip-horizontal', 'popover-flip-vertical');\n\n if (wouldOverflowRight) {\n this.popoverEl.classList.add('popover-flip-horizontal');\n }\n\n if (wouldOverflowBottom) {\n this.popoverEl.classList.add('popover-flip-vertical');\n }\n\n } else {\n // Fallback browsers: JavaScript positioning with boundary detection\n let left = triggerRect.left;\n let top = triggerRect.bottom + 8;\n let transformOrigin = 'top left';\n\n // Apply horizontal flipping if needed\n if (wouldOverflowRight) {\n const actualPopoverWidth = this.popoverEl.getBoundingClientRect().width || popoverWidth;\n left = triggerRect.right - actualPopoverWidth;\n transformOrigin = 'top right';\n }\n\n // Apply vertical flipping if needed\n if (wouldOverflowBottom) {\n top = triggerRect.top - popoverHeight - 8;\n transformOrigin = transformOrigin.replace('top', 'bottom');\n }\n\n // Apply positioning in single DOM write for performance\n this.popoverEl.style.cssText = `\n position: fixed;\n left: ${left}px;\n top: ${top}px;\n z-index: var(--pine-z-index-overlay);\n transform-origin: ${transformOrigin};\n `;\n }\n }\n\n /**\n * Opens the filter popover programmatically.\n * Note: Clear variant does not support popover functionality.\n */\n @Method()\n async showFilter() {\n if (this.variant === 'clear') {\n console.warn('Clear variant does not support showFilter method');\n return;\n }\n\n if (this.popoverEl != null) {\n try {\n this.popoverEl.showPopover();\n } catch (error) {\n // Fallback for testing environment where showPopover is not available\n this.popoverEl.style.display = 'block';\n this.popoverEl.classList.add('is-open');\n }\n }\n }\n\n /**\n * Closes the filter popover programmatically.\n * Note: Clear variant does not support popover functionality.\n */\n @Method()\n async hideFilter() {\n if (this.variant === 'clear') {\n console.warn('Clear variant does not support hideFilter method');\n return;\n }\n\n if (this.popoverEl != null) {\n try {\n this.popoverEl.hidePopover();\n } catch (error) {\n // Fallback for testing environment where hidePopover is not available\n this.popoverEl.style.display = 'none';\n this.popoverEl.classList.remove('is-open');\n }\n }\n }\n\n /**\n * Listen for popover toggle events for browsers without native Popover API (fallback).\n * Native API browsers use direct element listeners to avoid conflicts.\n */\n @Listen('toggle', { target: 'document' })\n handlePopoverToggle(event: Event) {\n const target = event.target as HTMLElement;\n const supportsPopoverAPI = HTMLElement.prototype.showPopover && !navigator.userAgent.includes('Firefox');\n\n // Only handle events for fallback browsers (Firefox) to avoid duplicate handling\n if (!supportsPopoverAPI && target && target.id === `${this.componentId}-popover`) {\n // Check for popover API support to avoid crashes\n let isCurrentlyOpen = false;\n try {\n isCurrentlyOpen = target.matches(':popover-open');\n } catch (error) {\n // Fallback if :popover-open selector isn't supported\n isCurrentlyOpen = target.style.display === 'block';\n }\n\n // Update state\n this.isOpen = isCurrentlyOpen;\n\n if (this.isOpen) {\n setTimeout(() => this.adjustPopoverPosition(), 0);\n\n this.pdsFilterOpen.emit({\n componentId: this.componentId,\n variant: this.variant,\n text: this.text,\n });\n } else {\n this.pdsFilterClose.emit({\n componentId: this.componentId,\n variant: this.variant,\n text: this.text,\n });\n }\n }\n }\n\n /**\n * Listen for clicks to detect outside dismissal.\n */\n @Listen('click', { target: 'document' })\n handleDocumentClick(event: Event) {\n // Check if click is outside and popover gets closed\n if (!this.el.contains(event.target as Node) && this.isOpen && this.variant !== 'clear') {\n setTimeout(() => {\n if (this.popoverEl && this.isOpen) {\n // Check for popover API support to avoid crashes\n const supportsPopoverAPI = HTMLElement.prototype.showPopover && !navigator.userAgent.includes('Firefox');\n\n let popoverIsClosed = false;\n if (supportsPopoverAPI) {\n try {\n popoverIsClosed = !this.popoverEl.matches(':popover-open');\n } catch (error) {\n // Fallback if :popover-open selector isn't supported\n popoverIsClosed = this.popoverEl.style.display !== 'block';\n }\n } else {\n // Manual fallback - assume popover was closed by outside click\n popoverIsClosed = true;\n }\n\n if (popoverIsClosed) {\n this.isOpen = false;\n if (!supportsPopoverAPI) {\n this.popoverEl.style.display = 'none';\n this.popoverEl.classList.remove('is-open');\n }\n this.pdsFilterClose.emit({\n componentId: this.componentId,\n variant: this.variant,\n text: this.text,\n });\n }\n }\n }, 0);\n }\n }\n\n /**\n * Listen for Escape key to ensure close event fires.\n */\n @Listen('keydown', { target: 'document' })\n handleEscapeKey(event: KeyboardEvent) {\n if (event.key === 'Escape' && this.isOpen && this.variant !== 'clear') {\n // Check if popover was closed by Escape\n setTimeout(() => {\n if (this.popoverEl && this.isOpen) {\n // Check for popover API support to avoid crashes\n const supportsPopoverAPI = HTMLElement.prototype.showPopover && !navigator.userAgent.includes('Firefox');\n\n let popoverIsClosed = false;\n if (supportsPopoverAPI) {\n try {\n popoverIsClosed = !this.popoverEl.matches(':popover-open');\n } catch (error) {\n // Fallback if :popover-open selector isn't supported\n popoverIsClosed = this.popoverEl.style.display !== 'block';\n }\n } else {\n // Manual fallback - assume popover was closed by Escape\n popoverIsClosed = true;\n }\n\n if (popoverIsClosed) {\n this.isOpen = false;\n if (!supportsPopoverAPI) {\n this.popoverEl.style.display = 'none';\n this.popoverEl.classList.remove('is-open');\n }\n this.pdsFilterClose.emit({\n componentId: this.componentId,\n variant: this.variant,\n text: this.text,\n });\n }\n }\n }, 0);\n }\n }\n\n /**\n * Handle keyboard interactions for clear variant only.\n */\n private handleKeyDown = (event: KeyboardEvent) => {\n // Only handle clear variant manually, let native API handle everything else\n if (this.variant === 'clear' && (event.key === 'Enter' || event.key === ' ')) {\n event.preventDefault();\n this.handleClick();\n }\n };\n\n /**\n * Handle trigger button click. Clear variant emits event, others toggle popover.\n */\n private handleClick = (event?: Event) => {\n if (this.variant === 'clear') {\n this.pdsFilterClear.emit({\n componentId: this.componentId,\n text: this.text,\n });\n return;\n }\n\n this.closeOtherPopovers();\n\n // Check for popover API support\n const supportsPopoverAPI = HTMLElement.prototype.showPopover && !navigator.userAgent.includes('Firefox');\n\n if (!supportsPopoverAPI) {\n // Manual fallback for browsers without popover API support\n // Prevent default to avoid conflicts with any native behavior\n if (event) {\n event.preventDefault();\n }\n\n setTimeout(() => {\n if (this.popoverEl != null) {\n this.isOpen = !this.isOpen;\n if (this.isOpen) {\n this.popoverEl.style.display = 'block';\n this.popoverEl.classList.add('is-open');\n this.adjustPopoverPosition();\n this.pdsFilterOpen.emit({\n componentId: this.componentId,\n variant: this.variant,\n text: this.text,\n });\n } else {\n this.popoverEl.style.display = 'none';\n this.popoverEl.classList.remove('is-open');\n this.pdsFilterClose.emit({\n componentId: this.componentId,\n variant: this.variant,\n text: this.text,\n });\n }\n }\n }, 0);\n }\n // For browsers with native popover API, let the native behavior handle the toggle\n // The toggle event listener will capture the state change and emit events\n };\n\n /**\n * Get the appropriate icon for the variant.\n */\n private getIcon() {\n if (this.variant === 'clear') {\n return trash;\n }\n return this.icon;\n }\n\n /**\n * Get CSS classes for the trigger button.\n */\n private getTriggerClasses() {\n const classes = ['pds-filter__trigger'];\n classes.push(`pds-filter__trigger--${this.variant}`);\n\n if (this.isOpen && this.variant !== 'clear') {\n classes.push('pds-filter__trigger--open');\n }\n\n return classes.join(' ');\n }\n\n /**\n * Render the trigger icon.\n */\n private renderIcon() {\n const iconToRender = this.getIcon();\n if (iconToRender == null || iconToRender === '') return null;\n\n return (\n <pds-icon\n icon={iconToRender}\n size=\"var(--pine-font-size-100)\"\n aria-hidden=\"true\"\n part=\"icon\"\n />\n );\n }\n\n /**\n * Render the dropdown icon for selected variant.\n */\n private renderDropdownIcon() {\n if (this.variant === 'selected') {\n return (\n <pds-icon\n icon={enlarge}\n size=\"var(--pine-dimension-200)\"\n aria-hidden=\"true\"\n class=\"pds-filter__dropdown-icon\"\n part=\"icon\"\n />\n );\n }\n return null;\n }\n\n render() {\n return (\n <Host id={this.componentId}>\n <button\n class={this.getTriggerClasses()}\n type=\"button\"\n popoverTarget={this.variant !== 'clear' ? `${this.componentId}-popover` : undefined}\n popoverTargetAction={this.variant !== 'clear' ? 'toggle' : undefined}\n onKeyDown={this.variant === 'clear' ? this.handleKeyDown : undefined}\n onClick={(event) => this.handleClick(event)}\n part=\"button\"\n aria-expanded={this.isOpen ? 'true' : 'false'}\n aria-haspopup={this.variant !== 'clear' ? 'true' : undefined}\n aria-controls={this.variant !== 'clear' ? `${this.componentId}-popover` : undefined}\n >\n <span class=\"pds-filter__button-content\" part=\"button-content\">\n {this.renderIcon()}\n {this.text && (\n <span class=\"pds-filter__button-text\" part=\"button-text\">\n {this.text}\n </span>\n )}\n {this.renderDropdownIcon()}\n </span>\n </button>\n\n {this.variant !== 'clear' && (\n <div\n ref={el => this.popoverEl = el}\n id={`${this.componentId}-popover`}\n class=\"pds-filter__popover\"\n popover=\"auto\"\n part=\"popover\"\n >\n <slot />\n </div>\n )}\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pds-filter.entry.js","sources":["src/components/pds-filters/pds-filter/pds-filter.scss?tag=pds-filter&encapsulation=shadow","src/components/pds-filters/pds-filter/pds-filter.tsx"],"sourcesContent":[":host {\n --box-shadow-focus: 0 0 0 1px var(--pine-color-white), 0 0 0 3px var(--pine-color-focus-ring);\n\n display: inline-block;\n position: relative;\n}\n\n.pds-filter__trigger {\n align-items: center;\n /* stylelint-disable-next-line property-no-unknown */\n anchor-name: --filter-trigger;\n background: var(--pine-color-background-container);\n border: var(--pine-border);\n border-radius: var(--pine-dimension-100);\n box-shadow: var(--pine-box-shadow-050);\n box-sizing: border-box;\n color: var(--pine-color-text-tertiary);\n cursor: pointer;\n display: inline-flex;\n font-family: var(--pine-font-family-inter);\n font-size: var(--pine-font-size-100);\n font-weight: var(--pine-font-weight-400);\n gap: var(--pine-dimension-050);\n letter-spacing: var(--pine-letter-spacing-114);\n line-height: var(--pine-line-height-150);\n padding: var(--pine-dimension-025) var(--pine-dimension-125);\n position: relative;\n transition: all 0.2s ease;\n\n pds-icon {\n block-size: var(--pine-font-size-100);\n color: var(--pine-color-text-secondary);\n flex-shrink: 0;\n inline-size: var(--pine-font-size-100);\n }\n\n &:hover,\n &.pds-filter__trigger--open {\n background-color: var(--pine-color-background-subtle);\n border-color: var(--pine-color-border-hover);\n color: var(--pine-color-text-hover);\n\n pds-icon {\n color: var(--pine-color-text-secondary);\n }\n }\n\n &:focus-visible {\n box-shadow: var(--box-shadow-focus);\n outline: none;\n }\n\n &:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n}\n\n.pds-filter__trigger--selected {\n background-color: var(--pine-color-purple-050);\n border-color: var(--pine-color-purple-500);\n color: var(--pine-color-purple-600);\n\n pds-icon {\n color: var(--pine-color-purple-600);\n }\n\n &:hover,\n &.pds-filter__trigger--open {\n background-color: var(--pine-color-purple-100);\n border-color: var(--pine-color-purple-500);\n color: var(--pine-color-purple-600);\n\n pds-icon {\n color: var(--pine-color-purple-600);\n }\n }\n\n &:focus-visible {\n box-shadow: var(--box-shadow-focus);\n outline: none;\n }\n}\n\n.pds-filter__trigger--more {\n background-color: var(--pine-color-background-container-hover);\n border: var(--pine-border-width-thin) dashed var(--pine-color-border);\n color: var(--pine-color-text-tertiary);\n\n pds-icon {\n color: var(--pine-color-text-secondary);\n }\n\n &:hover,\n &.pds-filter__trigger--open {\n background-color: var(--pine-color-background-subtle);\n border-color: var(--pine-color-border-hover);\n color: var(--pine-color-text-hover);\n\n pds-icon {\n color: var(--pine-color-text-secondary);\n }\n }\n\n &:focus-visible {\n box-shadow: var(--box-shadow-focus);\n outline: none;\n }\n}\n\n.pds-filter__trigger--clear {\n background: transparent;\n border: var(--pine-border-width-thin) solid transparent;\n border-radius: var(--pine-dimension-100);\n box-shadow: none;\n color: var(--pine-color-purple-600);\n\n pds-icon {\n color: var(--pine-color-purple-600);\n }\n\n &:hover {\n background-color: var(--pine-color-purple-100);\n border-color: var(--pine-color-purple-100);\n color: var(--pine-color-purple-600);\n\n pds-icon {\n color: var(--pine-color-purple-600);\n }\n }\n\n &:focus-visible {\n box-shadow: var(--box-shadow-focus);\n outline: none;\n }\n}\n\n.pds-filter__button-content {\n align-items: center;\n display: inline-flex;\n gap: var(--pine-dimension-050);\n max-inline-size: 148px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.pds-filter__button-text {\n line-height: var(--pine-line-height-150);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.pds-filter__dropdown-icon {\n block-size: var(--pine-dimension-200);\n flex-shrink: 0;\n inline-size: var(--pine-dimension-200);\n}\n\n\n.pds-filter__popover {\n background-color: var(--pine-color-background-container);\n border: 0;\n border-radius: var(--pine-dimension-100);\n box-shadow: var(--pine-box-shadow-100);\n display: none;\n inline-size: 228px;\n inset: unset;\n padding: var(--pine-dimension-100);\n z-index: var(--pine-z-index-overlay);\n\n /* stylelint-disable-next-line selector-pseudo-class-no-unknown */\n &:popover-open,\n &.is-open {\n display: block;\n }\n\n /* Modern browsers: CSS anchor positioning with JavaScript-controlled flipping */\n @supports (anchor-name: --test) {\n inset-block-start: calc(anchor(--filter-trigger bottom) + var(--pine-dimension-100));\n inset-inline-start: anchor(--filter-trigger left);\n position: fixed; /* Anchor positioning requires fixed positioning */\n /* stylelint-disable-next-line property-no-unknown */\n position-anchor: --filter-trigger;\n\n /* CSS position-try disabled for precise JavaScript-controlled flipping */\n\n /* Flipping classes applied by JavaScript for precise control */\n &.popover-flip-horizontal {\n inset-inline-start: anchor(--filter-trigger right);\n transform: translateX(-100%);\n }\n\n &.popover-flip-vertical {\n inset-block-start: anchor(--filter-trigger top);\n transform: translateY(calc(-100% - var(--pine-dimension-100)));\n }\n\n &.popover-flip-horizontal.popover-flip-vertical {\n inset-block-start: anchor(--filter-trigger top);\n inset-inline-start: anchor(--filter-trigger right);\n transform: translate(-100%, calc(-100% - var(--pine-dimension-100)));\n }\n\n /* Ensure fallback class works with flipping in modern browsers */\n &.is-open.popover-flip-horizontal {\n inset-inline-start: anchor(--filter-trigger right);\n transform: translateX(-100%);\n }\n\n &.is-open.popover-flip-vertical {\n inset-block-start: anchor(--filter-trigger top);\n transform: translateY(calc(-100% - var(--pine-dimension-100)));\n }\n\n &.is-open.popover-flip-horizontal.popover-flip-vertical {\n inset-block-start: anchor(--filter-trigger top);\n inset-inline-start: anchor(--filter-trigger right);\n transform: translate(-100%, calc(-100% - var(--pine-dimension-100)));\n }\n\n }\n}\n","import { Component, Element, Event, EventEmitter, Host, h, Prop, State, Method, Listen } from '@stencil/core';\nimport type { BasePdsProps } from '@utils/interfaces';\nimport type { PdsFilterOpenEventDetail, PdsFilterCloseEventDetail, PdsFilterClearEventDetail, PdsFilterVariant } from './filter-interface';\n\nimport { enlarge, trash } from '@pine-ds/icons/icons';\n\n/**\n * Individual filter component with cross-browser popover positioning.\n *\n * Uses a hybrid approach for optimal cross-browser compatibility:\n * - Modern browsers: CSS anchor positioning + JavaScript flip classes\n * - Fallback browsers: JavaScript positioning with viewport boundary detection\n *\n * @part button - Exposes the trigger button element for styling.\n * @part button-content - Exposes the button content container for styling.\n * @part button-text - Exposes the button text for styling.\n * @part icon - Exposes the icon component for styling.\n * @part popover - Exposes the popover container for styling.\n * @slot (default) - Popover content that will be displayed when the filter is open.\n */\n\n@Component({\n tag: 'pds-filter',\n styleUrl: 'pds-filter.scss',\n shadow: true,\n})\nexport class PdsFilter implements BasePdsProps {\n @Element() el!: HTMLPdsFilterElement;\n\n private popoverEl: HTMLElement;\n private scrollRAF: number | null = null;\n private lastScrollTime = 0;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * The variant style of the filter trigger.\n * @defaultValue 'default'\n */\n @Prop() variant: PdsFilterVariant = 'default';\n\n /**\n * The name of the icon to display in the trigger button.\n * For 'clear' variant, this is ignored as it always shows trash icon.\n */\n @Prop() icon?: string;\n\n /**\n * The text content displayed in the trigger button.\n */\n @Prop() text?: string;\n\n\n /**\n * State to track if the popover is open.\n */\n @State() isOpen = false;\n\n /**\n * Event emitted when the filter popover is opened.\n */\n @Event() pdsFilterOpen: EventEmitter<PdsFilterOpenEventDetail>;\n\n /**\n * Event emitted when the filter popover is closed.\n */\n @Event() pdsFilterClose: EventEmitter<PdsFilterCloseEventDetail>;\n\n /**\n * Event emitted when the clear variant is clicked.\n */\n @Event() pdsFilterClear: EventEmitter<PdsFilterClearEventDetail>;\n\n\n /**\n * Component lifecycle: Clean up when disconnected from DOM.\n * Prevents memory leaks by canceling pending operations and closing popovers.\n */\n disconnectedCallback() {\n // Cancel pending animation frames\n if (this.scrollRAF) {\n cancelAnimationFrame(this.scrollRAF);\n this.scrollRAF = null;\n }\n\n this.lastScrollTime = 0;\n\n // Clean up native popover event listeners\n if (this.popoverEl) {\n const supportsPopoverAPI = HTMLElement.prototype.showPopover && !navigator.userAgent.includes('Firefox');\n if (supportsPopoverAPI) {\n this.popoverEl.removeEventListener('toggle', this.handleNativePopoverToggle);\n }\n }\n\n // Ensure popover is closed\n if (this.isOpen && this.popoverEl) {\n try {\n this.popoverEl.hidePopover();\n } catch (error) {\n this.popoverEl.style.display = 'none';\n this.popoverEl.classList.remove('is-open');\n }\n }\n }\n\n\n componentDidRender() {\n // Note: popoverEl is set via ref callback in render method\n // For browsers with native popover API, we need direct element listeners\n // since the document listener may not capture native popover toggle events\n if (this.popoverEl) {\n const supportsPopoverAPI = HTMLElement.prototype.showPopover && !navigator.userAgent.includes('Firefox');\n\n if (supportsPopoverAPI) {\n // Remove any existing listeners to avoid duplicates\n this.popoverEl.removeEventListener('toggle', this.handleNativePopoverToggle);\n // Add direct listener for native popover events\n this.popoverEl.addEventListener('toggle', this.handleNativePopoverToggle);\n }\n }\n }\n\n /**\n * Handle native popover toggle events directly on the element\n * This is needed for browsers with native Popover API support\n */\n private handleNativePopoverToggle = (event: Event) => {\n const target = event.target as HTMLElement;\n\n if (target && target.id === `${this.componentId}-popover`) {\n // Check current popover state\n let isCurrentlyOpen = false;\n try {\n isCurrentlyOpen = target.matches(':popover-open');\n } catch (error) {\n // Fallback if :popover-open selector isn't supported\n isCurrentlyOpen = target.style.display === 'block';\n }\n\n // Update state\n this.isOpen = isCurrentlyOpen;\n\n if (this.isOpen) {\n setTimeout(() => this.adjustPopoverPosition(), 0);\n\n this.pdsFilterOpen.emit({\n componentId: this.componentId,\n variant: this.variant,\n text: this.text,\n });\n } else {\n this.pdsFilterClose.emit({\n componentId: this.componentId,\n variant: this.variant,\n text: this.text,\n });\n }\n }\n };\n\n /**\n * Reposition popovers on window resize.\n */\n @Listen('resize', { target: 'window' })\n handleWindowResize() {\n if (this.isOpen) {\n setTimeout(() => this.adjustPopoverPosition(), 16);\n }\n }\n\n /**\n * Reposition popovers on scroll with performance throttling.\n */\n @Listen('scroll', { target: 'window', passive: true })\n handleWindowScroll() {\n if (this.isOpen) {\n const supportsAnchorPositioning = \"anchorName\" in document.documentElement.style;\n const now = performance.now();\n\n const throttleMs = supportsAnchorPositioning ? 66 : 33;\n if (now - this.lastScrollTime < throttleMs) {\n return;\n }\n\n this.lastScrollTime = now;\n\n if (this.scrollRAF) {\n cancelAnimationFrame(this.scrollRAF);\n }\n\n this.scrollRAF = requestAnimationFrame(() => {\n if (this.isOpen && this.popoverEl && this.el.isConnected) {\n this.adjustPopoverPosition();\n }\n this.scrollRAF = null;\n });\n }\n }\n\n /**\n * Closes other open filter popovers to ensure only one is open at a time.\n */\n private closeOtherPopovers() {\n const allFilters = document.querySelectorAll('pds-filter');\n\n allFilters.forEach((filter) => {\n if (filter === this.el) return;\n\n const popover = filter.shadowRoot?.querySelector('.pds-filter__popover') as HTMLElement;\n\n if (popover) {\n // Check for popover API support to avoid crashes\n let isPopoverOpen = false;\n try {\n isPopoverOpen = popover.matches(':popover-open');\n } catch (error) {\n // Fallback if :popover-open selector isn't supported\n isPopoverOpen = popover.style.display === 'block';\n }\n\n if (isPopoverOpen) {\n try {\n popover.hidePopover();\n } catch (error) {\n popover.style.display = 'none';\n popover.classList.remove('is-open');\n }\n }\n }\n });\n }\n\n /**\n * Adjusts popover position to keep it within viewport bounds.\n * Uses CSS anchor positioning for modern browsers, JavaScript for fallback browsers.\n */\n private adjustPopoverPosition() {\n if (!this.popoverEl || this.variant === 'clear') return;\n\n const triggerEl = this.el.shadowRoot?.querySelector('.pds-filter__trigger') as HTMLElement;\n if (!triggerEl) return;\n\n const triggerRect = triggerEl.getBoundingClientRect();\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n\n const supportsAnchorPositioning = \"anchorName\" in document.documentElement.style;\n\n // Get dimensions for boundary detection\n const popoverWidth = 228;\n const popoverHeight = this.popoverEl.getBoundingClientRect().height || 200;\n\n // Boundary detection for flipping\n const bufferSpace = 20;\n const wouldOverflowRight = (triggerRect.left + popoverWidth + bufferSpace) > viewportWidth;\n const wouldOverflowBottom = (triggerRect.bottom + 8 + popoverHeight + bufferSpace) > viewportHeight;\n\n if (supportsAnchorPositioning) {\n // Modern browsers: CSS anchor positioning + JavaScript-controlled flipping\n this.popoverEl.classList.remove('popover-flip-horizontal', 'popover-flip-vertical');\n\n if (wouldOverflowRight) {\n this.popoverEl.classList.add('popover-flip-horizontal');\n }\n\n if (wouldOverflowBottom) {\n this.popoverEl.classList.add('popover-flip-vertical');\n }\n\n } else {\n // Fallback browsers: JavaScript positioning with boundary detection\n let left = triggerRect.left;\n let top = triggerRect.bottom + 8;\n let transformOrigin = 'top left';\n\n // Apply horizontal flipping if needed\n if (wouldOverflowRight) {\n const actualPopoverWidth = this.popoverEl.getBoundingClientRect().width || popoverWidth;\n left = triggerRect.right - actualPopoverWidth;\n transformOrigin = 'top right';\n }\n\n // Apply vertical flipping if needed\n if (wouldOverflowBottom) {\n top = triggerRect.top - popoverHeight - 8;\n transformOrigin = transformOrigin.replace('top', 'bottom');\n }\n\n // Apply positioning in single DOM write for performance\n this.popoverEl.style.cssText = `\n position: fixed;\n left: ${left}px;\n top: ${top}px;\n z-index: var(--pine-z-index-overlay);\n transform-origin: ${transformOrigin};\n `;\n }\n }\n\n /**\n * Opens the filter popover programmatically.\n * Note: Clear variant does not support popover functionality.\n */\n @Method()\n async showFilter() {\n if (this.variant === 'clear') {\n console.warn('Clear variant does not support showFilter method');\n return;\n }\n\n if (this.popoverEl != null) {\n try {\n this.popoverEl.showPopover();\n } catch (error) {\n // Fallback for testing environment where showPopover is not available\n this.popoverEl.style.display = 'block';\n this.popoverEl.classList.add('is-open');\n }\n }\n }\n\n /**\n * Closes the filter popover programmatically.\n * Note: Clear variant does not support popover functionality.\n */\n @Method()\n async hideFilter() {\n if (this.variant === 'clear') {\n console.warn('Clear variant does not support hideFilter method');\n return;\n }\n\n if (this.popoverEl != null) {\n try {\n this.popoverEl.hidePopover();\n } catch (error) {\n // Fallback for testing environment where hidePopover is not available\n this.popoverEl.style.display = 'none';\n this.popoverEl.classList.remove('is-open');\n }\n }\n }\n\n /**\n * Listen for popover toggle events for browsers without native Popover API (fallback).\n * Native API browsers use direct element listeners to avoid conflicts.\n */\n @Listen('toggle', { target: 'document' })\n handlePopoverToggle(event: Event) {\n const target = event.target as HTMLElement;\n const supportsPopoverAPI = HTMLElement.prototype.showPopover && !navigator.userAgent.includes('Firefox');\n\n // Only handle events for fallback browsers (Firefox) to avoid duplicate handling\n if (!supportsPopoverAPI && target && target.id === `${this.componentId}-popover`) {\n // Check for popover API support to avoid crashes\n let isCurrentlyOpen = false;\n try {\n isCurrentlyOpen = target.matches(':popover-open');\n } catch (error) {\n // Fallback if :popover-open selector isn't supported\n isCurrentlyOpen = target.style.display === 'block';\n }\n\n // Update state\n this.isOpen = isCurrentlyOpen;\n\n if (this.isOpen) {\n setTimeout(() => this.adjustPopoverPosition(), 0);\n\n this.pdsFilterOpen.emit({\n componentId: this.componentId,\n variant: this.variant,\n text: this.text,\n });\n } else {\n this.pdsFilterClose.emit({\n componentId: this.componentId,\n variant: this.variant,\n text: this.text,\n });\n }\n }\n }\n\n /**\n * Listen for clicks to detect outside dismissal.\n */\n @Listen('click', { target: 'document' })\n handleDocumentClick(event: Event) {\n // Check if click is outside and popover gets closed\n if (!this.el.contains(event.target as Node) && this.isOpen && this.variant !== 'clear') {\n setTimeout(() => {\n if (this.popoverEl && this.isOpen) {\n // Check for popover API support to avoid crashes\n const supportsPopoverAPI = HTMLElement.prototype.showPopover && !navigator.userAgent.includes('Firefox');\n\n let popoverIsClosed = false;\n if (supportsPopoverAPI) {\n try {\n popoverIsClosed = !this.popoverEl.matches(':popover-open');\n } catch (error) {\n // Fallback if :popover-open selector isn't supported\n popoverIsClosed = this.popoverEl.style.display !== 'block';\n }\n } else {\n // Manual fallback - assume popover was closed by outside click\n popoverIsClosed = true;\n }\n\n if (popoverIsClosed) {\n this.isOpen = false;\n if (!supportsPopoverAPI) {\n this.popoverEl.style.display = 'none';\n this.popoverEl.classList.remove('is-open');\n }\n this.pdsFilterClose.emit({\n componentId: this.componentId,\n variant: this.variant,\n text: this.text,\n });\n }\n }\n }, 0);\n }\n }\n\n /**\n * Listen for Escape key to ensure close event fires.\n */\n @Listen('keydown', { target: 'document' })\n handleEscapeKey(event: KeyboardEvent) {\n if (event.key === 'Escape' && this.isOpen && this.variant !== 'clear') {\n // Check if popover was closed by Escape\n setTimeout(() => {\n if (this.popoverEl && this.isOpen) {\n // Check for popover API support to avoid crashes\n const supportsPopoverAPI = HTMLElement.prototype.showPopover && !navigator.userAgent.includes('Firefox');\n\n let popoverIsClosed = false;\n if (supportsPopoverAPI) {\n try {\n popoverIsClosed = !this.popoverEl.matches(':popover-open');\n } catch (error) {\n // Fallback if :popover-open selector isn't supported\n popoverIsClosed = this.popoverEl.style.display !== 'block';\n }\n } else {\n // Manual fallback - assume popover was closed by Escape\n popoverIsClosed = true;\n }\n\n if (popoverIsClosed) {\n this.isOpen = false;\n if (!supportsPopoverAPI) {\n this.popoverEl.style.display = 'none';\n this.popoverEl.classList.remove('is-open');\n }\n this.pdsFilterClose.emit({\n componentId: this.componentId,\n variant: this.variant,\n text: this.text,\n });\n }\n }\n }, 0);\n }\n }\n\n /**\n * Handle keyboard interactions for clear variant only.\n */\n private handleKeyDown = (event: KeyboardEvent) => {\n // Only handle clear variant manually, let native API handle everything else\n if (this.variant === 'clear' && (event.key === 'Enter' || event.key === ' ')) {\n event.preventDefault();\n this.handleClick();\n }\n };\n\n /**\n * Handle trigger button click. Clear variant emits event, others toggle popover.\n */\n private handleClick = (event?: Event) => {\n if (this.variant === 'clear') {\n this.pdsFilterClear.emit({\n componentId: this.componentId,\n text: this.text,\n });\n return;\n }\n\n this.closeOtherPopovers();\n\n // Check for popover API support\n const supportsPopoverAPI = HTMLElement.prototype.showPopover && !navigator.userAgent.includes('Firefox');\n\n if (!supportsPopoverAPI) {\n // Manual fallback for browsers without popover API support\n // Prevent default to avoid conflicts with any native behavior\n if (event) {\n event.preventDefault();\n }\n\n setTimeout(() => {\n if (this.popoverEl != null) {\n this.isOpen = !this.isOpen;\n if (this.isOpen) {\n this.popoverEl.style.display = 'block';\n this.popoverEl.classList.add('is-open');\n this.adjustPopoverPosition();\n this.pdsFilterOpen.emit({\n componentId: this.componentId,\n variant: this.variant,\n text: this.text,\n });\n } else {\n this.popoverEl.style.display = 'none';\n this.popoverEl.classList.remove('is-open');\n this.pdsFilterClose.emit({\n componentId: this.componentId,\n variant: this.variant,\n text: this.text,\n });\n }\n }\n }, 0);\n }\n // For browsers with native popover API, let the native behavior handle the toggle\n // The toggle event listener will capture the state change and emit events\n };\n\n /**\n * Get the appropriate icon for the variant.\n */\n private getIcon() {\n if (this.variant === 'clear') {\n return trash;\n }\n return this.icon;\n }\n\n /**\n * Get CSS classes for the trigger button.\n */\n private getTriggerClasses() {\n const classes = ['pds-filter__trigger'];\n classes.push(`pds-filter__trigger--${this.variant}`);\n\n if (this.isOpen && this.variant !== 'clear') {\n classes.push('pds-filter__trigger--open');\n }\n\n return classes.join(' ');\n }\n\n /**\n * Render the trigger icon.\n */\n private renderIcon() {\n const iconToRender = this.getIcon();\n if (iconToRender == null || iconToRender === '') return null;\n\n return (\n <pds-icon\n icon={iconToRender}\n size=\"var(--pine-font-size-100)\"\n aria-hidden=\"true\"\n part=\"icon\"\n />\n );\n }\n\n /**\n * Render the dropdown icon for selected variant.\n */\n private renderDropdownIcon() {\n if (this.variant === 'selected') {\n return (\n <pds-icon\n icon={enlarge}\n size=\"var(--pine-dimension-200)\"\n aria-hidden=\"true\"\n class=\"pds-filter__dropdown-icon\"\n part=\"icon\"\n />\n );\n }\n return null;\n }\n\n render() {\n return (\n <Host id={this.componentId}>\n <button\n class={this.getTriggerClasses()}\n type=\"button\"\n popoverTarget={this.variant !== 'clear' ? `${this.componentId}-popover` : undefined}\n popoverTargetAction={this.variant !== 'clear' ? 'toggle' : undefined}\n onKeyDown={this.variant === 'clear' ? this.handleKeyDown : undefined}\n onClick={(event) => this.handleClick(event)}\n part=\"button\"\n aria-expanded={this.isOpen ? 'true' : 'false'}\n aria-haspopup={this.variant !== 'clear' ? 'true' : undefined}\n aria-controls={this.variant !== 'clear' ? `${this.componentId}-popover` : undefined}\n >\n <span class=\"pds-filter__button-content\" part=\"button-content\">\n {this.renderIcon()}\n {this.text && (\n <span class=\"pds-filter__button-text\" part=\"button-text\">\n {this.text}\n </span>\n )}\n {this.renderDropdownIcon()}\n </span>\n </button>\n\n {this.variant !== 'clear' && (\n <div\n ref={el => this.popoverEl = el}\n id={`${this.componentId}-popover`}\n class=\"pds-filter__popover\"\n popover=\"auto\"\n part=\"popover\"\n >\n <slot />\n </div>\n )}\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}