@pine-ds/core 4.0.0-mercury.0 → 4.1.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 (1346) hide show
  1. package/components/attributes.js +1 -0
  2. package/components/closest.js +1 -11
  3. package/components/floating-ui.dom.js +1 -0
  4. package/components/form.js +1 -0
  5. package/components/i18n-format.js +1 -0
  6. package/components/index.d.ts +41 -0
  7. package/components/index.js +1 -33
  8. package/components/index2.js +1 -14
  9. package/components/mock-pds-modal.d.ts +11 -0
  10. package/components/mock-pds-modal.js +1 -0
  11. package/components/pds-accordion.js +1 -68
  12. package/components/pds-alert.d.ts +11 -0
  13. package/components/pds-alert.js +1 -0
  14. package/components/pds-avatar.js +1 -103
  15. package/components/pds-box.js +1 -124
  16. package/components/pds-box2.js +1 -0
  17. package/components/pds-button.js +1 -8
  18. package/components/pds-button2.js +1 -84
  19. package/components/pds-checkbox.js +1 -8
  20. package/components/pds-checkbox2.js +1 -101
  21. package/components/pds-chip.js +1 -78
  22. package/components/pds-chip2.js +1 -0
  23. package/components/pds-combobox.d.ts +11 -0
  24. package/components/pds-combobox.js +2 -0
  25. package/components/pds-container.d.ts +11 -0
  26. package/components/pds-container.js +1 -0
  27. package/components/pds-copytext.js +1 -88
  28. package/components/pds-divider.js +1 -54
  29. package/components/pds-dropdown-menu-item.d.ts +11 -0
  30. package/components/pds-dropdown-menu-item.js +1 -0
  31. package/components/pds-dropdown-menu-separator.d.ts +11 -0
  32. package/components/pds-dropdown-menu-separator.js +1 -0
  33. package/components/pds-dropdown-menu.d.ts +11 -0
  34. package/components/pds-dropdown-menu.js +1 -0
  35. package/components/pds-filter.d.ts +11 -0
  36. package/components/pds-filter.js +1 -0
  37. package/components/pds-filters.d.ts +11 -0
  38. package/components/pds-filters.js +1 -0
  39. package/components/pds-icon.js +1 -8
  40. package/components/pds-icon2.js +1 -370
  41. package/components/pds-image.js +1 -55
  42. package/components/pds-input.js +1 -72
  43. package/components/pds-link.js +1 -65
  44. package/components/pds-link2.js +1 -0
  45. package/components/pds-loader.js +1 -68
  46. package/components/pds-loader2.js +1 -0
  47. package/components/pds-modal-content.d.ts +11 -0
  48. package/components/pds-modal-content.js +1 -0
  49. package/components/pds-modal-footer.d.ts +11 -0
  50. package/components/pds-modal-footer.js +1 -0
  51. package/components/pds-modal-header.d.ts +11 -0
  52. package/components/pds-modal-header.js +1 -0
  53. package/components/pds-modal.d.ts +11 -0
  54. package/components/pds-modal.js +1 -0
  55. package/components/pds-multiselect.d.ts +11 -0
  56. package/components/pds-multiselect.js +1 -0
  57. package/components/pds-popover.d.ts +11 -0
  58. package/components/pds-popover.js +1 -0
  59. package/components/pds-progress.js +1 -49
  60. package/components/pds-property.d.ts +11 -0
  61. package/components/pds-property.js +1 -0
  62. package/components/pds-radio-group.d.ts +11 -0
  63. package/components/pds-radio-group.js +1 -0
  64. package/components/pds-radio.js +1 -78
  65. package/components/pds-row.js +1 -72
  66. package/components/pds-select.d.ts +11 -0
  67. package/components/pds-select.js +1 -0
  68. package/components/pds-sortable-item.js +1 -58
  69. package/components/pds-sortable.js +3 -2718
  70. package/components/pds-switch.js +1 -82
  71. package/components/pds-tab.js +1 -53
  72. package/components/pds-table-body.js +1 -36
  73. package/components/pds-table-cell.js +1 -8
  74. package/components/pds-table-cell2.js +1 -72
  75. package/components/pds-table-head-cell.js +1 -8
  76. package/components/pds-table-head-cell2.js +1 -98
  77. package/components/pds-table-head.js +1 -90
  78. package/components/pds-table-row.js +1 -95
  79. package/components/pds-table.js +1 -124
  80. package/components/pds-tabpanel.js +1 -45
  81. package/components/pds-tabs.js +1 -119
  82. package/components/pds-text.d.ts +11 -0
  83. package/components/pds-text.js +1 -0
  84. package/components/pds-text2.js +1 -0
  85. package/components/pds-textarea.js +1 -82
  86. package/components/pds-toast.d.ts +11 -0
  87. package/components/pds-toast.js +1 -0
  88. package/components/pds-tooltip.js +1 -178
  89. package/components/reconnected-content.js +1 -0
  90. package/components/scroll.js +1 -0
  91. package/components/truncation-tooltip.js +1 -0
  92. package/components/utils.js +1 -0
  93. package/dist/cjs/attributes-oNMnBEnP.js +85 -0
  94. package/dist/cjs/closest-BZXvuB_Y.js +11 -0
  95. package/dist/cjs/floating-ui.dom-BZk7Blsu.js +1635 -0
  96. package/dist/cjs/form-MhwfKTuo.js +69 -0
  97. package/dist/cjs/i18n-format-CrpIhahc.js +64 -0
  98. package/dist/cjs/index-BMV0nzMk.js +31 -0
  99. package/dist/cjs/index-CuQil7H0.js +2926 -0
  100. package/dist/cjs/index.cjs.js +0 -4
  101. package/dist/cjs/loader.cjs.js +3 -8
  102. package/dist/cjs/mock-pds-modal.cjs.entry.js +91 -0
  103. package/dist/cjs/pds-accordion.cjs.entry.js +15 -14
  104. package/dist/cjs/pds-alert.cjs.entry.js +74 -0
  105. package/dist/cjs/pds-avatar.cjs.entry.js +92 -25
  106. package/dist/cjs/pds-box.cjs.entry.js +111 -38
  107. package/dist/cjs/pds-button.cjs.entry.js +169 -25
  108. package/dist/cjs/pds-checkbox.cjs.entry.js +66 -26
  109. package/dist/cjs/pds-chip.cjs.entry.js +157 -23
  110. package/dist/cjs/pds-combobox.cjs.entry.js +2905 -0
  111. package/dist/cjs/pds-container.cjs.entry.js +36 -0
  112. package/dist/cjs/pds-copytext.cjs.entry.js +72 -17
  113. package/dist/cjs/pds-divider.cjs.entry.js +15 -11
  114. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +85 -0
  115. package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +22 -0
  116. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +318 -0
  117. package/dist/cjs/pds-filter.cjs.entry.js +489 -0
  118. package/dist/cjs/pds-filters.cjs.entry.js +17 -0
  119. package/dist/cjs/pds-icon.cjs.entry.js +273 -40
  120. package/dist/cjs/pds-image.cjs.entry.js +15 -16
  121. package/dist/cjs/pds-input.cjs.entry.js +296 -26
  122. package/dist/cjs/pds-link.cjs.entry.js +41 -13
  123. package/dist/cjs/pds-loader.cjs.entry.js +21 -14
  124. package/dist/cjs/pds-modal-content.cjs.entry.js +196 -0
  125. package/dist/cjs/pds-modal-footer.cjs.entry.js +23 -0
  126. package/dist/cjs/pds-modal-header.cjs.entry.js +23 -0
  127. package/dist/cjs/pds-modal.cjs.entry.js +297 -0
  128. package/dist/cjs/pds-multiselect.cjs.entry.js +1068 -0
  129. package/dist/cjs/pds-popover.cjs.entry.js +571 -0
  130. package/dist/cjs/pds-progress.cjs.entry.js +16 -12
  131. package/dist/cjs/pds-property.cjs.entry.js +21 -0
  132. package/dist/cjs/pds-radio-group.cjs.entry.js +193 -0
  133. package/dist/cjs/pds-radio.cjs.entry.js +79 -23
  134. package/dist/cjs/pds-row.cjs.entry.js +35 -17
  135. package/dist/cjs/pds-select.cjs.entry.js +256 -0
  136. package/dist/cjs/pds-sortable-item.cjs.entry.js +26 -11
  137. package/dist/cjs/pds-sortable.cjs.entry.js +139 -117
  138. package/dist/cjs/pds-switch.cjs.entry.js +78 -26
  139. package/dist/cjs/pds-tab.cjs.entry.js +66 -16
  140. package/dist/cjs/pds-table-body.cjs.entry.js +4 -9
  141. package/dist/cjs/pds-table-cell.cjs.entry.js +107 -17
  142. package/dist/cjs/pds-table-head-cell.cjs.entry.js +169 -26
  143. package/dist/cjs/pds-table-head.cjs.entry.js +16 -13
  144. package/dist/cjs/pds-table-row.cjs.entry.js +103 -16
  145. package/dist/cjs/pds-table.cjs.entry.js +178 -22
  146. package/dist/cjs/pds-tabpanel.cjs.entry.js +19 -13
  147. package/dist/cjs/pds-tabs.cjs.entry.js +88 -17
  148. package/dist/cjs/pds-text.cjs.entry.js +122 -0
  149. package/dist/cjs/pds-textarea.cjs.entry.js +311 -29
  150. package/dist/cjs/pds-toast.cjs.entry.js +145 -0
  151. package/dist/cjs/pds-tooltip.cjs.entry.js +318 -109
  152. package/dist/cjs/pine-core.cjs.js +7 -10
  153. package/dist/cjs/reconnected-content-CpnEQcTp.js +29 -0
  154. package/dist/cjs/scroll-2XcoE_6Q.js +79 -0
  155. package/dist/cjs/truncation-tooltip-CVzAha5B.js +246 -0
  156. package/dist/cjs/utils-7jx8T2mW.js +76 -0
  157. package/dist/collection/collection-manifest.json +23 -2
  158. package/dist/collection/components/_internal/pds-label/pds-label.js +0 -1
  159. package/dist/collection/components/pds-accordion/pds-accordion.css +24 -29
  160. package/dist/collection/components/pds-accordion/pds-accordion.js +35 -8
  161. package/dist/collection/components/pds-accordion/stories/pds-accordion.stories.js +12 -18
  162. package/dist/collection/components/pds-alert/pds-alert.css +131 -0
  163. package/dist/collection/components/pds-alert/pds-alert.js +255 -0
  164. package/dist/collection/components/pds-alert/pds-alert.tokens.css +85 -0
  165. package/dist/collection/components/pds-alert/stories/pds-alert.stories.js +110 -0
  166. package/dist/collection/components/pds-avatar/pds-avatar.css +56 -23
  167. package/dist/collection/components/pds-avatar/pds-avatar.js +226 -24
  168. package/dist/collection/components/pds-avatar/stories/pds-avatar.stories.js +38 -2
  169. package/dist/collection/components/pds-box/pds-box.css +5435 -263
  170. package/dist/collection/components/pds-box/pds-box.js +2796 -231
  171. package/dist/collection/components/pds-box/stories/pds-box.stories.js +20 -6
  172. package/dist/collection/components/pds-button/pds-button.css +256 -93
  173. package/dist/collection/components/pds-button/pds-button.js +404 -39
  174. package/dist/collection/components/pds-button/stories/pds-button.stories.js +228 -16
  175. package/dist/collection/components/pds-checkbox/checkbox-interface.js +0 -1
  176. package/dist/collection/components/pds-checkbox/pds-checkbox.css +68 -58
  177. package/dist/collection/components/pds-checkbox/pds-checkbox.js +112 -46
  178. package/dist/collection/components/pds-checkbox/stories/pds-checkbox.stories.js +8 -16
  179. package/dist/collection/components/pds-chip/pds-chip.css +185 -114
  180. package/dist/collection/components/pds-chip/pds-chip.js +330 -60
  181. package/dist/collection/components/pds-chip/pds-chip.tokens.css +53 -0
  182. package/dist/collection/components/pds-chip/stories/pds-chip.stories.js +109 -24
  183. package/dist/collection/components/pds-combobox/combobox-interface.js +1 -0
  184. package/dist/collection/components/pds-combobox/pds-combobox.css +499 -0
  185. package/dist/collection/components/pds-combobox/pds-combobox.js +2347 -0
  186. package/dist/collection/components/pds-combobox/stories/pds-combobox.stories.js +485 -0
  187. package/dist/collection/components/pds-container/pds-container.css +26 -0
  188. package/dist/collection/components/pds-container/pds-container.js +111 -0
  189. package/dist/collection/components/pds-container/stories/pds-container.stories.js +89 -0
  190. package/dist/collection/components/pds-copytext/pds-copytext.css +39 -51
  191. package/dist/collection/components/pds-copytext/pds-copytext.js +90 -21
  192. package/dist/collection/components/pds-copytext/stories/pds-copytext.stories.js +6 -12
  193. package/dist/collection/components/pds-divider/pds-divider.css +71 -40
  194. package/dist/collection/components/pds-divider/pds-divider.js +46 -10
  195. package/dist/collection/components/pds-divider/stories/pds-divider.stories.js +7 -2
  196. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.css +76 -0
  197. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js +291 -0
  198. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.css +7 -0
  199. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js +71 -0
  200. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.css +52 -0
  201. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +394 -0
  202. package/dist/collection/components/pds-dropdown-menu/stories/pds-dropdown-menu.stories.js +38 -0
  203. package/dist/collection/components/pds-filters/pds-filter/filter-interface.js +1 -0
  204. package/dist/collection/components/pds-filters/pds-filter/pds-filter.css +199 -0
  205. package/dist/collection/components/pds-filters/pds-filter/pds-filter.js +739 -0
  206. package/dist/collection/components/pds-filters/pds-filter/stories/pds-filter.stories.js +87 -0
  207. package/dist/collection/components/pds-filters/pds-filters.css +10 -0
  208. package/dist/collection/components/pds-filters/pds-filters.js +44 -0
  209. package/dist/collection/components/pds-filters/stories/pds-filters.stories.js +34 -0
  210. package/dist/collection/components/pds-icon/stories/pds-icon.stories.js +2 -2
  211. package/dist/collection/components/pds-image/pds-image.css +3 -2
  212. package/dist/collection/components/pds-image/pds-image.js +54 -29
  213. package/dist/collection/components/pds-image/stories/pds-image.stories.js +8 -8
  214. package/dist/collection/components/pds-input/input-interface.js +1 -0
  215. package/dist/collection/components/pds-input/pds-input.css +275 -63
  216. package/dist/collection/components/pds-input/pds-input.js +678 -56
  217. package/dist/collection/components/pds-input/pds-input.tokens.css +3 -0
  218. package/dist/collection/components/pds-input/stories/pds-input.stories.js +309 -14
  219. package/dist/collection/components/pds-link/pds-link.css +45 -30
  220. package/dist/collection/components/pds-link/pds-link.js +305 -19
  221. package/dist/collection/components/pds-link/stories/pds-link.stories.js +29 -4
  222. package/dist/collection/components/pds-loader/pds-loader.css +17 -30
  223. package/dist/collection/components/pds-loader/pds-loader.js +31 -11
  224. package/dist/collection/components/pds-loader/stories/pds-loader.stories.js +3 -5
  225. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.css +25 -0
  226. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js +230 -0
  227. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.css +8 -0
  228. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js +23 -0
  229. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.css +8 -0
  230. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js +23 -0
  231. package/dist/collection/components/pds-modal/pds-modal.css +122 -0
  232. package/dist/collection/components/pds-modal/pds-modal.js +516 -0
  233. package/dist/collection/components/pds-modal/stories/pds-modal.stories.js +731 -0
  234. package/dist/collection/components/pds-modal/test/mock-pds-modal.js +286 -0
  235. package/dist/collection/components/pds-multiselect/multiselect-interface.js +1 -0
  236. package/dist/collection/components/pds-multiselect/pds-multiselect.css +324 -0
  237. package/dist/collection/components/pds-multiselect/pds-multiselect.js +2153 -0
  238. package/dist/collection/components/pds-multiselect/stories/pds-multiselect.stories.js +731 -0
  239. package/dist/collection/components/pds-popover/pds-popover.css +10 -0
  240. package/dist/collection/components/pds-popover/pds-popover.js +802 -0
  241. package/dist/collection/components/pds-popover/popover-interface.js +1 -0
  242. package/dist/collection/components/pds-popover/stories/pds-popover.stories.js +86 -0
  243. package/dist/collection/components/pds-progress/pds-progress.css +11 -24
  244. package/dist/collection/components/pds-progress/pds-progress.js +34 -14
  245. package/dist/collection/components/pds-progress/stories/pds-progress.stories.js +2 -4
  246. package/dist/collection/components/pds-property/pds-property.css +4 -0
  247. package/dist/collection/components/pds-property/pds-property.js +70 -0
  248. package/dist/collection/components/pds-property/stories/pds-property.stories.js +16 -0
  249. package/dist/collection/components/pds-radio/pds-radio.css +219 -54
  250. package/dist/collection/components/pds-radio/pds-radio.js +179 -51
  251. package/dist/collection/components/pds-radio/stories/pds-radio.stories.js +47 -15
  252. package/dist/collection/components/pds-radio-group/pds-radio-group.css +45 -0
  253. package/dist/collection/components/pds-radio-group/pds-radio-group.js +447 -0
  254. package/dist/collection/components/pds-radio-group/radio-group-interface.js +1 -0
  255. package/dist/collection/components/pds-radio-group/stories/pds-radio-group.stories.js +134 -0
  256. package/dist/collection/components/pds-row/pds-row.css +10 -9
  257. package/dist/collection/components/pds-row/pds-row.js +115 -26
  258. package/dist/collection/components/pds-row/stories/pds-row.stories.js +16 -14
  259. package/dist/collection/components/pds-select/pds-select.css +168 -0
  260. package/dist/collection/components/pds-select/pds-select.js +602 -0
  261. package/dist/collection/components/pds-select/pds-select.tokens.css +3 -0
  262. package/dist/collection/components/pds-select/stories/pds-select.stories.js +205 -0
  263. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.css +26 -26
  264. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +32 -7
  265. package/dist/collection/components/pds-sortable/pds-sortable-item/stories/pds-sortable-item.stories.js +0 -2
  266. package/dist/collection/components/pds-sortable/pds-sortable.css +2 -4
  267. package/dist/collection/components/pds-sortable/pds-sortable.js +77 -12
  268. package/dist/collection/components/pds-sortable/sortable-interface.js +0 -1
  269. package/dist/collection/components/pds-sortable/stories/pds-sortable.stories.js +22 -13
  270. package/dist/collection/components/pds-switch/pds-switch.css +56 -58
  271. package/dist/collection/components/pds-switch/pds-switch.js +142 -70
  272. package/dist/collection/components/pds-switch/stories/pds-switch.stories.js +11 -28
  273. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js +1 -2
  274. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.css +36 -19
  275. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +128 -13
  276. package/dist/collection/components/pds-table/pds-table-cell/stories/pds-table-cell.stories.js +22 -7
  277. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.css +22 -5
  278. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +71 -11
  279. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.css +46 -25
  280. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +236 -20
  281. package/dist/collection/components/pds-table/pds-table-head-cell/stories/pds-table-head-cell.stories.js +12 -7
  282. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.css +14 -5
  283. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +114 -13
  284. package/dist/collection/components/pds-table/pds-table-row/stories/pds-table-row.stories.js +3 -9
  285. package/dist/collection/components/pds-table/pds-table.css +98 -17
  286. package/dist/collection/components/pds-table/pds-table.js +285 -41
  287. package/dist/collection/components/pds-table/stories/pds-table.stories.js +297 -27
  288. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.css +102 -60
  289. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js +226 -18
  290. package/dist/collection/components/pds-tabs/pds-tab/stories/pds-tab.stories.js +15 -0
  291. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.css +15 -2
  292. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +53 -12
  293. package/dist/collection/components/pds-tabs/pds-tabpanel/stories/pds-tabpanel.stories.js +15 -0
  294. package/dist/collection/components/pds-tabs/pds-tabs.css +31 -11
  295. package/dist/collection/components/pds-tabs/pds-tabs.js +180 -25
  296. package/dist/collection/components/pds-tabs/stories/pds-tabs.stories.js +69 -26
  297. package/dist/collection/components/pds-text/pds-text.css +207 -0
  298. package/dist/collection/components/pds-text/pds-text.js +293 -0
  299. package/dist/collection/components/pds-text/stories/pds-text.stories.js +125 -0
  300. package/dist/collection/components/pds-textarea/pds-textarea.css +127 -57
  301. package/dist/collection/components/pds-textarea/pds-textarea.js +591 -57
  302. package/dist/collection/components/pds-textarea/stories/pds-textarea.stories.js +112 -25
  303. package/dist/collection/components/pds-textarea/textarea-interface.js +0 -1
  304. package/dist/collection/components/pds-toast/pds-toast.css +153 -0
  305. package/dist/collection/components/pds-toast/pds-toast.js +330 -0
  306. package/dist/collection/components/pds-toast/stories/pds-toast.stories.js +95 -0
  307. package/dist/collection/components/pds-tooltip/pds-tooltip.css +63 -81
  308. package/dist/collection/components/pds-tooltip/pds-tooltip.js +366 -78
  309. package/dist/collection/components/pds-tooltip/stories/pds-tooltip.stories.js +22 -24
  310. package/dist/collection/global/pine-ui-global.js +0 -1
  311. package/dist/collection/global/styles/utils/label.css +17 -0
  312. package/dist/collection/i18n/i18n-format.js +59 -0
  313. package/dist/collection/i18n/index.js +1 -0
  314. package/dist/collection/index.js +1 -1
  315. package/dist/collection/utils/attributes.js +83 -0
  316. package/dist/collection/utils/closest.js +0 -1
  317. package/dist/collection/utils/form.js +41 -8
  318. package/dist/collection/utils/interfaces.js +1 -0
  319. package/dist/collection/utils/overlay.js +66 -50
  320. package/dist/collection/utils/reconnected-content.js +25 -0
  321. package/dist/collection/utils/scroll.js +77 -0
  322. package/dist/collection/utils/test/axe.js +106 -0
  323. package/dist/collection/utils/test/reconnect-safety.js +31 -0
  324. package/dist/collection/utils/truncation-tooltip.js +241 -0
  325. package/dist/collection/utils/types.js +18 -2
  326. package/dist/collection/utils/utils.js +66 -4
  327. package/dist/docs.d.ts +45 -0
  328. package/dist/docs.json +22531 -3270
  329. package/dist/esm/attributes-C0M1gTKv.js +82 -0
  330. package/dist/esm/closest-DnUJodVd.js +9 -0
  331. package/dist/esm/floating-ui.dom-DDtwbwIl.js +1628 -0
  332. package/dist/esm/form-BuRbS7Hp.js +63 -0
  333. package/dist/esm/i18n-format-BKsJZTyn.js +61 -0
  334. package/dist/esm/index-Bu9gFIxM.js +17 -0
  335. package/dist/esm/index-CTLu1TM4.js +2915 -0
  336. package/dist/esm/index.js +0 -2
  337. package/dist/esm/loader.js +3 -6
  338. package/dist/esm/mock-pds-modal.entry.js +89 -0
  339. package/dist/esm/pds-accordion.entry.js +15 -12
  340. package/dist/esm/pds-alert.entry.js +72 -0
  341. package/dist/esm/pds-avatar.entry.js +92 -23
  342. package/dist/esm/pds-box.entry.js +111 -36
  343. package/dist/esm/pds-button.entry.js +168 -22
  344. package/dist/esm/pds-checkbox.entry.js +67 -25
  345. package/dist/esm/pds-chip.entry.js +158 -22
  346. package/dist/esm/pds-combobox.entry.js +2903 -0
  347. package/dist/esm/pds-container.entry.js +34 -0
  348. package/dist/esm/pds-copytext.entry.js +72 -15
  349. package/dist/esm/pds-divider.entry.js +15 -9
  350. package/dist/esm/pds-dropdown-menu-item.entry.js +83 -0
  351. package/dist/esm/pds-dropdown-menu-separator.entry.js +20 -0
  352. package/dist/esm/pds-dropdown-menu.entry.js +316 -0
  353. package/dist/esm/pds-filter.entry.js +487 -0
  354. package/dist/esm/pds-filters.entry.js +15 -0
  355. package/dist/esm/pds-icon.entry.js +273 -38
  356. package/dist/esm/pds-image.entry.js +15 -14
  357. package/dist/esm/pds-input.entry.js +297 -25
  358. package/dist/esm/pds-link.entry.js +41 -11
  359. package/dist/esm/pds-loader.entry.js +21 -12
  360. package/dist/esm/pds-modal-content.entry.js +194 -0
  361. package/dist/esm/pds-modal-footer.entry.js +21 -0
  362. package/dist/esm/pds-modal-header.entry.js +21 -0
  363. package/dist/esm/pds-modal.entry.js +295 -0
  364. package/dist/esm/pds-multiselect.entry.js +1066 -0
  365. package/dist/esm/pds-popover.entry.js +569 -0
  366. package/dist/esm/pds-progress.entry.js +16 -10
  367. package/dist/esm/pds-property.entry.js +19 -0
  368. package/dist/esm/pds-radio-group.entry.js +191 -0
  369. package/dist/esm/pds-radio.entry.js +80 -22
  370. package/dist/esm/pds-row.entry.js +35 -15
  371. package/dist/esm/pds-select.entry.js +254 -0
  372. package/dist/esm/pds-sortable-item.entry.js +26 -9
  373. package/dist/esm/pds-sortable.entry.js +139 -115
  374. package/dist/esm/pds-switch.entry.js +79 -25
  375. package/dist/esm/pds-tab.entry.js +66 -14
  376. package/dist/esm/pds-table-body.entry.js +4 -7
  377. package/dist/esm/pds-table-cell.entry.js +107 -15
  378. package/dist/esm/pds-table-head-cell.entry.js +169 -24
  379. package/dist/esm/pds-table-head.entry.js +16 -11
  380. package/dist/esm/pds-table-row.entry.js +103 -14
  381. package/dist/esm/pds-table.entry.js +178 -20
  382. package/dist/esm/pds-tabpanel.entry.js +19 -11
  383. package/dist/esm/pds-tabs.entry.js +88 -15
  384. package/dist/esm/pds-text.entry.js +120 -0
  385. package/dist/esm/pds-textarea.entry.js +312 -28
  386. package/dist/esm/pds-toast.entry.js +143 -0
  387. package/dist/esm/pds-tooltip.entry.js +318 -107
  388. package/dist/esm/pine-core.js +5 -7
  389. package/dist/esm/reconnected-content-RFpTWV6r.js +27 -0
  390. package/dist/esm/scroll-DtgUQhjl.js +75 -0
  391. package/dist/esm/truncation-tooltip-Blk4GigP.js +244 -0
  392. package/dist/esm/utils-tJa4KYNO.js +71 -0
  393. package/dist/esm-es5/attributes-C0M1gTKv.js +1 -0
  394. package/dist/esm-es5/closest-DnUJodVd.js +1 -0
  395. package/dist/esm-es5/floating-ui.dom-DDtwbwIl.js +1 -0
  396. package/dist/esm-es5/form-BuRbS7Hp.js +1 -0
  397. package/dist/esm-es5/i18n-format-BKsJZTyn.js +1 -0
  398. package/dist/esm-es5/index-Bu9gFIxM.js +1 -0
  399. package/dist/esm-es5/index-CTLu1TM4.js +2 -0
  400. package/dist/esm-es5/index.js +0 -2
  401. package/dist/esm-es5/loader.js +1 -2
  402. package/dist/esm-es5/mock-pds-modal.entry.js +1 -0
  403. package/dist/esm-es5/pds-accordion.entry.js +1 -2
  404. package/dist/esm-es5/pds-alert.entry.js +1 -0
  405. package/dist/esm-es5/pds-avatar.entry.js +1 -2
  406. package/dist/esm-es5/pds-box.entry.js +1 -2
  407. package/dist/esm-es5/pds-button.entry.js +1 -2
  408. package/dist/esm-es5/pds-checkbox.entry.js +1 -2
  409. package/dist/esm-es5/pds-chip.entry.js +1 -2
  410. package/dist/esm-es5/pds-combobox.entry.js +2 -0
  411. package/dist/esm-es5/pds-container.entry.js +1 -0
  412. package/dist/esm-es5/pds-copytext.entry.js +1 -2
  413. package/dist/esm-es5/pds-divider.entry.js +1 -2
  414. package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -0
  415. package/dist/esm-es5/pds-dropdown-menu-separator.entry.js +1 -0
  416. package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -0
  417. package/dist/esm-es5/pds-filter.entry.js +1 -0
  418. package/dist/esm-es5/pds-filters.entry.js +1 -0
  419. package/dist/esm-es5/pds-icon.entry.js +1 -2
  420. package/dist/esm-es5/pds-image.entry.js +1 -2
  421. package/dist/esm-es5/pds-input.entry.js +1 -2
  422. package/dist/esm-es5/pds-link.entry.js +1 -2
  423. package/dist/esm-es5/pds-loader.entry.js +1 -2
  424. package/dist/esm-es5/pds-modal-content.entry.js +1 -0
  425. package/dist/esm-es5/pds-modal-footer.entry.js +1 -0
  426. package/dist/esm-es5/pds-modal-header.entry.js +1 -0
  427. package/dist/esm-es5/pds-modal.entry.js +1 -0
  428. package/dist/esm-es5/pds-multiselect.entry.js +1 -0
  429. package/dist/esm-es5/pds-popover.entry.js +1 -0
  430. package/dist/esm-es5/pds-progress.entry.js +1 -2
  431. package/dist/esm-es5/pds-property.entry.js +1 -0
  432. package/dist/esm-es5/pds-radio-group.entry.js +1 -0
  433. package/dist/esm-es5/pds-radio.entry.js +1 -2
  434. package/dist/esm-es5/pds-row.entry.js +1 -2
  435. package/dist/esm-es5/pds-select.entry.js +1 -0
  436. package/dist/esm-es5/pds-sortable-item.entry.js +1 -2
  437. package/dist/esm-es5/pds-sortable.entry.js +3 -4
  438. package/dist/esm-es5/pds-switch.entry.js +1 -2
  439. package/dist/esm-es5/pds-tab.entry.js +1 -2
  440. package/dist/esm-es5/pds-table-body.entry.js +1 -2
  441. package/dist/esm-es5/pds-table-cell.entry.js +1 -2
  442. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -2
  443. package/dist/esm-es5/pds-table-head.entry.js +1 -2
  444. package/dist/esm-es5/pds-table-row.entry.js +1 -2
  445. package/dist/esm-es5/pds-table.entry.js +1 -2
  446. package/dist/esm-es5/pds-tabpanel.entry.js +1 -2
  447. package/dist/esm-es5/pds-tabs.entry.js +1 -2
  448. package/dist/esm-es5/pds-text.entry.js +1 -0
  449. package/dist/esm-es5/pds-textarea.entry.js +1 -2
  450. package/dist/esm-es5/pds-toast.entry.js +1 -0
  451. package/dist/esm-es5/pds-tooltip.entry.js +1 -2
  452. package/dist/esm-es5/pine-core.js +1 -2
  453. package/dist/esm-es5/reconnected-content-RFpTWV6r.js +1 -0
  454. package/dist/esm-es5/scroll-DtgUQhjl.js +1 -0
  455. package/dist/esm-es5/truncation-tooltip-Blk4GigP.js +1 -0
  456. package/dist/esm-es5/utils-tJa4KYNO.js +1 -0
  457. package/dist/pine-core/index.esm.js +0 -2
  458. package/dist/pine-core/p-04a30a2d.system.entry.js +1 -0
  459. package/dist/pine-core/p-056667f0.entry.js +1 -0
  460. package/dist/pine-core/p-08151143.system.entry.js +1 -0
  461. package/dist/pine-core/p-0d73d473.entry.js +1 -0
  462. package/dist/pine-core/p-0e89a189.entry.js +1 -0
  463. package/dist/pine-core/p-0fcda1ec.entry.js +1 -0
  464. package/dist/pine-core/p-12ec8186.system.entry.js +1 -0
  465. package/dist/pine-core/p-1649dd61.system.entry.js +1 -0
  466. package/dist/pine-core/p-1ba361cb.entry.js +1 -0
  467. package/dist/pine-core/p-1e952dbb.entry.js +7 -0
  468. package/dist/pine-core/p-210f0994.system.entry.js +1 -0
  469. package/dist/pine-core/p-222ff58e.system.entry.js +1 -0
  470. package/dist/pine-core/p-226232a7.system.entry.js +1 -0
  471. package/dist/pine-core/p-228a9068.system.entry.js +1 -0
  472. package/dist/pine-core/p-2af19aa7.entry.js +1 -0
  473. package/dist/pine-core/p-2d4b9253.entry.js +1 -0
  474. package/dist/pine-core/p-2e214db6.entry.js +1 -0
  475. package/dist/pine-core/p-2fd71a0c.entry.js +1 -0
  476. package/dist/pine-core/p-3050c66f.entry.js +1 -0
  477. package/dist/pine-core/p-33de0eb7.system.entry.js +1 -0
  478. package/dist/pine-core/p-3aec9079.entry.js +1 -0
  479. package/dist/pine-core/p-3b9e77b3.entry.js +1 -0
  480. package/dist/pine-core/p-3cdc1a5b.entry.js +1 -0
  481. package/dist/pine-core/p-460aa66f.system.entry.js +1 -0
  482. package/dist/pine-core/p-463eb0e6.system.entry.js +1 -0
  483. package/dist/pine-core/p-46f0dda5.system.entry.js +1 -0
  484. package/dist/pine-core/p-4923a3fe.entry.js +1 -0
  485. package/dist/pine-core/p-4d6944aa.entry.js +1 -0
  486. package/dist/pine-core/p-4dad0878.entry.js +1 -0
  487. package/dist/pine-core/p-4faff617.entry.js +1 -0
  488. package/dist/pine-core/p-50e0f726.system.entry.js +1 -0
  489. package/dist/pine-core/p-520f7a5b.entry.js +1 -0
  490. package/dist/pine-core/p-53999cd6.system.entry.js +1 -0
  491. package/dist/pine-core/p-544ccf67.entry.js +1 -0
  492. package/dist/pine-core/p-5c239f0a.entry.js +1 -0
  493. package/dist/pine-core/p-5d585aa8.entry.js +1 -0
  494. package/dist/pine-core/p-6089d811.entry.js +1 -0
  495. package/dist/pine-core/p-611f68b7.system.entry.js +1 -0
  496. package/dist/pine-core/p-63f5f66f.system.entry.js +1 -0
  497. package/dist/pine-core/p-65557500.entry.js +1 -0
  498. package/dist/pine-core/p-714bfdbd.entry.js +1 -0
  499. package/dist/pine-core/p-7691a875.system.entry.js +3 -0
  500. package/dist/pine-core/p-7a1971ec.entry.js +1 -0
  501. package/dist/pine-core/p-7b1e3e91.entry.js +1 -0
  502. package/dist/pine-core/p-7c18e9e8.system.entry.js +8 -0
  503. package/dist/pine-core/p-85434de8.system.entry.js +1 -0
  504. package/dist/pine-core/p-86bc2a0c.entry.js +1 -0
  505. package/dist/pine-core/p-8702635d.system.entry.js +1 -0
  506. package/dist/pine-core/p-897fe88c.entry.js +1 -0
  507. package/dist/pine-core/p-8e6a8a8e.entry.js +1 -0
  508. package/dist/pine-core/p-902b3e8b.system.entry.js +1 -0
  509. package/dist/pine-core/p-9187c26c.system.entry.js +1 -0
  510. package/dist/pine-core/p-92c79ed4.system.entry.js +1 -0
  511. package/dist/pine-core/p-92ef1608.system.entry.js +1 -0
  512. package/dist/pine-core/p-9487ff20.system.entry.js +1 -0
  513. package/dist/pine-core/p-9507eb49.system.entry.js +1 -0
  514. package/dist/pine-core/p-97198cb6.system.entry.js +1 -0
  515. package/dist/pine-core/p-9a7294e7.system.entry.js +1 -0
  516. package/dist/pine-core/p-9b68669f.entry.js +1 -0
  517. package/dist/pine-core/p-9fd1e8f4.system.entry.js +1 -0
  518. package/dist/pine-core/p-BG6uGRQj.system.js +1 -0
  519. package/dist/pine-core/p-BKsJZTyn.js +1 -0
  520. package/dist/pine-core/p-BNSGedhN.js +1 -0
  521. package/dist/pine-core/p-BbXp4qBM.system.js +1 -0
  522. package/dist/pine-core/p-BhQhw0S3.system.js +1 -0
  523. package/dist/pine-core/p-Bjc6fc_Y.system.js +1 -0
  524. package/dist/pine-core/p-BrLs99ML.system.js +1 -0
  525. package/dist/pine-core/p-Bu9gFIxM.js +1 -0
  526. package/dist/pine-core/p-BuRbS7Hp.js +1 -0
  527. package/dist/pine-core/p-BxIzb-Wc.system.js +1 -0
  528. package/dist/pine-core/p-C0M1gTKv.js +1 -0
  529. package/dist/pine-core/p-CRCxGYgw.system.js +1 -0
  530. package/dist/pine-core/p-CTLu1TM4.js +2 -0
  531. package/dist/pine-core/p-Cr7-rJtJ.system.js +1 -0
  532. package/dist/pine-core/p-DAIsVNlL.system.js +2 -0
  533. package/dist/pine-core/p-DDtwbwIl.js +1 -0
  534. package/dist/pine-core/p-DVra397g.system.js +1 -0
  535. package/dist/pine-core/p-DnUJodVd.js +1 -0
  536. package/dist/pine-core/p-Dr-FzkdE.system.js +1 -0
  537. package/dist/pine-core/p-DtgUQhjl.js +1 -0
  538. package/dist/pine-core/p-RFpTWV6r.js +1 -0
  539. package/dist/pine-core/p-YWpyar7R.system.js +1 -0
  540. package/dist/pine-core/p-a3c4c0ee.entry.js +1 -0
  541. package/dist/pine-core/p-a53222f7.entry.js +1 -0
  542. package/dist/pine-core/p-a7eabc0c.system.entry.js +1 -0
  543. package/dist/pine-core/p-a8ab4d9b.entry.js +1 -0
  544. package/dist/pine-core/p-a9e54964.entry.js +1 -0
  545. package/dist/pine-core/p-aa208514.entry.js +1 -0
  546. package/dist/pine-core/p-ae296598.entry.js +1 -0
  547. package/dist/pine-core/p-aecaff12.entry.js +1 -0
  548. package/dist/pine-core/p-af4a24d9.entry.js +1 -0
  549. package/dist/pine-core/p-afd07d5b.entry.js +1 -0
  550. package/dist/pine-core/p-b0531455.entry.js +1 -0
  551. package/dist/pine-core/p-b109de2e.entry.js +1 -0
  552. package/dist/pine-core/p-b17fa86a.system.entry.js +1 -0
  553. package/dist/pine-core/p-b255d3b7.entry.js +1 -0
  554. package/dist/pine-core/p-b52deffb.entry.js +1 -0
  555. package/dist/pine-core/p-b6c2090f.system.entry.js +1 -0
  556. package/dist/pine-core/p-ba8bd9dc.system.entry.js +1 -0
  557. package/dist/pine-core/p-bba759f8.system.entry.js +1 -0
  558. package/dist/pine-core/p-bf3afa16.system.entry.js +1 -0
  559. package/dist/pine-core/p-bfa640f4.system.entry.js +1 -0
  560. package/dist/pine-core/p-c0753d9f.entry.js +1 -0
  561. package/dist/pine-core/p-c09dab1a.system.entry.js +1 -0
  562. package/dist/pine-core/p-c713ffc6.system.entry.js +1 -0
  563. package/dist/pine-core/p-ce63f726.system.entry.js +1 -0
  564. package/dist/pine-core/p-ce79321b.system.entry.js +1 -0
  565. package/dist/pine-core/p-cf72e9b1.system.entry.js +1 -0
  566. package/dist/pine-core/p-d157a33a.entry.js +1 -0
  567. package/dist/pine-core/p-d27ef352.system.entry.js +1 -0
  568. package/dist/pine-core/p-d415bb01.entry.js +2 -0
  569. package/dist/pine-core/p-d54af26c.system.entry.js +1 -0
  570. package/dist/pine-core/p-d804d37b.system.entry.js +1 -0
  571. package/dist/pine-core/p-e11795db.system.entry.js +1 -0
  572. package/dist/pine-core/p-e1653d75.system.entry.js +1 -0
  573. package/dist/pine-core/p-e16dfb32.system.entry.js +1 -0
  574. package/dist/pine-core/p-e450eb27.system.entry.js +1 -0
  575. package/dist/pine-core/p-eb4058ed.system.entry.js +1 -0
  576. package/dist/pine-core/p-f09ce49e.entry.js +1 -0
  577. package/dist/pine-core/p-f35596cd.entry.js +1 -0
  578. package/dist/pine-core/p-f3683be8.entry.js +1 -0
  579. package/dist/pine-core/p-fcf91f14.system.entry.js +1 -0
  580. package/dist/pine-core/p-kYMYDfJY.system.js +1 -0
  581. package/dist/pine-core/p-tJa4KYNO.js +1 -0
  582. package/dist/pine-core/pine-core.css +1 -1
  583. package/dist/pine-core/pine-core.esm.js +1 -2
  584. package/dist/pine-core/pine-core.js +1 -1
  585. package/dist/scripts/vscode-custom-data-generator.js +406 -0
  586. package/dist/scripts/vscode-settings-patcher.cjs +89 -0
  587. package/dist/types/components/pds-accordion/pds-accordion.d.ts +8 -0
  588. package/dist/types/components/pds-alert/pds-alert.d.ts +51 -0
  589. package/dist/types/components/pds-avatar/pds-avatar.d.ts +38 -0
  590. package/dist/types/components/pds-box/pds-box.d.ts +475 -14
  591. package/dist/types/components/pds-button/pds-button.d.ts +70 -12
  592. package/dist/types/components/pds-checkbox/pds-checkbox.d.ts +11 -1
  593. package/dist/types/components/pds-chip/pds-chip.d.ts +62 -13
  594. package/dist/types/components/pds-combobox/combobox-interface.d.ts +23 -0
  595. package/dist/types/components/pds-combobox/pds-combobox.d.ts +372 -0
  596. package/dist/types/components/pds-container/pds-container.d.ts +22 -0
  597. package/dist/types/components/pds-copytext/pds-copytext.d.ts +14 -4
  598. package/dist/types/components/pds-divider/pds-divider.d.ts +9 -1
  599. package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.d.ts +66 -0
  600. package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.d.ts +13 -0
  601. package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu.d.ts +39 -0
  602. package/dist/types/components/pds-filters/pds-filter/filter-interface.d.ts +19 -0
  603. package/dist/types/components/pds-filters/pds-filter/pds-filter.d.ts +133 -0
  604. package/dist/types/components/pds-filters/pds-filters.d.ts +11 -0
  605. package/dist/types/components/pds-image/pds-image.d.ts +7 -3
  606. package/dist/types/components/pds-input/input-interface.d.ts +12 -0
  607. package/dist/types/components/pds-input/pds-input.d.ts +163 -8
  608. package/dist/types/components/pds-link/pds-link.d.ts +73 -11
  609. package/dist/types/components/pds-loader/pds-loader.d.ts +2 -1
  610. package/dist/types/components/pds-modal/pds-modal-content/pds-modal-content.d.ts +38 -0
  611. package/dist/types/components/pds-modal/pds-modal-footer/pds-modal-footer.d.ts +5 -0
  612. package/dist/types/components/pds-modal/pds-modal-header/pds-modal-header.d.ts +5 -0
  613. package/dist/types/components/pds-modal/pds-modal.d.ts +88 -0
  614. package/dist/types/components/pds-modal/test/mock-pds-modal.d.ts +68 -0
  615. package/dist/types/components/pds-multiselect/multiselect-interface.d.ts +42 -0
  616. package/dist/types/components/pds-multiselect/pds-multiselect.d.ts +326 -0
  617. package/dist/types/components/pds-popover/pds-popover.d.ts +179 -0
  618. package/dist/types/components/pds-popover/popover-interface.d.ts +4 -0
  619. package/dist/types/components/pds-property/pds-property.d.ts +14 -0
  620. package/dist/types/components/pds-radio/pds-radio.d.ts +30 -9
  621. package/dist/types/components/pds-radio-group/pds-radio-group.d.ts +73 -0
  622. package/dist/types/components/pds-radio-group/radio-group-interface.d.ts +5 -0
  623. package/dist/types/components/pds-row/pds-row.d.ts +10 -2
  624. package/dist/types/components/pds-select/pds-select.d.ts +146 -0
  625. package/dist/types/components/pds-sortable/pds-sortable-item/pds-sortable-item.d.ts +1 -0
  626. package/dist/types/components/pds-sortable/pds-sortable.d.ts +10 -2
  627. package/dist/types/components/pds-sortable/sortable-interface.d.ts +3 -1
  628. package/dist/types/components/pds-switch/pds-switch.d.ts +24 -19
  629. package/dist/types/components/pds-table/pds-table-cell/pds-table-cell.d.ts +26 -1
  630. package/dist/types/components/pds-table/pds-table-head/pds-table-head.d.ts +15 -2
  631. package/dist/types/components/pds-table/pds-table-head-cell/pds-table-head-cell.d.ts +52 -2
  632. package/dist/types/components/pds-table/pds-table-row/pds-table-row.d.ts +23 -4
  633. package/dist/types/components/pds-table/pds-table.d.ts +62 -10
  634. package/dist/types/components/pds-tabs/pds-tab/pds-tab.d.ts +49 -0
  635. package/dist/types/components/pds-tabs/pds-tabpanel/pds-tabpanel.d.ts +6 -0
  636. package/dist/types/components/pds-tabs/pds-tabs.d.ts +27 -3
  637. package/dist/types/components/pds-text/pds-text.d.ts +55 -0
  638. package/dist/types/components/pds-textarea/pds-textarea.d.ts +138 -15
  639. package/dist/types/components/pds-textarea/textarea-interface.d.ts +5 -1
  640. package/dist/types/components/pds-toast/pds-toast.d.ts +70 -0
  641. package/dist/types/components/pds-tooltip/pds-tooltip.d.ts +45 -19
  642. package/dist/types/components.d.ts +5600 -1197
  643. package/dist/types/home/runner/work/pine/pine/libs/core/.stencil/scripts/vscode-custom-data-generator.d.ts +6 -0
  644. package/dist/types/i18n/i18n-format.d.ts +38 -0
  645. package/dist/types/i18n/index.d.ts +2 -0
  646. package/dist/types/index.d.ts +1 -0
  647. package/dist/types/stencil-public-runtime.d.ts +195 -8
  648. package/dist/types/utils/attributes.d.ts +10 -0
  649. package/dist/types/utils/form.d.ts +23 -1
  650. package/dist/types/utils/interfaces.d.ts +6 -0
  651. package/dist/types/utils/overlay.d.ts +3 -3
  652. package/dist/types/utils/reconnected-content.d.ts +14 -0
  653. package/dist/types/utils/scroll.d.ts +21 -0
  654. package/dist/types/utils/test/axe.d.ts +81 -0
  655. package/dist/types/utils/test/reconnect-safety.d.ts +11 -0
  656. package/dist/types/utils/truncation-tooltip.d.ts +21 -0
  657. package/dist/types/utils/types.d.ts +8 -2
  658. package/dist/types/utils/utils.d.ts +14 -2
  659. package/dist/vscode.html-data.json +10944 -0
  660. package/hydrate/index.d.ts +58 -7
  661. package/hydrate/index.js +21570 -3575
  662. package/hydrate/index.mjs +21568 -3575
  663. package/package.json +47 -25
  664. package/readme.md +1 -1
  665. package/components/closest.js.map +0 -1
  666. package/components/index.js.map +0 -1
  667. package/components/index2.js.map +0 -1
  668. package/components/pds-accordion.js.map +0 -1
  669. package/components/pds-avatar.js.map +0 -1
  670. package/components/pds-box.js.map +0 -1
  671. package/components/pds-button.js.map +0 -1
  672. package/components/pds-button2.js.map +0 -1
  673. package/components/pds-checkbox.js.map +0 -1
  674. package/components/pds-checkbox2.js.map +0 -1
  675. package/components/pds-chip.js.map +0 -1
  676. package/components/pds-copytext.js.map +0 -1
  677. package/components/pds-divider.js.map +0 -1
  678. package/components/pds-icon.js.map +0 -1
  679. package/components/pds-icon2.js.map +0 -1
  680. package/components/pds-image.js.map +0 -1
  681. package/components/pds-input.js.map +0 -1
  682. package/components/pds-label.js +0 -39
  683. package/components/pds-label.js.map +0 -1
  684. package/components/pds-link.js.map +0 -1
  685. package/components/pds-loader.js.map +0 -1
  686. package/components/pds-progress.js.map +0 -1
  687. package/components/pds-radio.js.map +0 -1
  688. package/components/pds-row.js.map +0 -1
  689. package/components/pds-sortable-item.js.map +0 -1
  690. package/components/pds-sortable.js.map +0 -1
  691. package/components/pds-switch.js.map +0 -1
  692. package/components/pds-tab.js.map +0 -1
  693. package/components/pds-table-body.js.map +0 -1
  694. package/components/pds-table-cell.js.map +0 -1
  695. package/components/pds-table-cell2.js.map +0 -1
  696. package/components/pds-table-head-cell.js.map +0 -1
  697. package/components/pds-table-head-cell2.js.map +0 -1
  698. package/components/pds-table-head.js.map +0 -1
  699. package/components/pds-table-row.js.map +0 -1
  700. package/components/pds-table.js.map +0 -1
  701. package/components/pds-tabpanel.js.map +0 -1
  702. package/components/pds-tabs.js.map +0 -1
  703. package/components/pds-textarea.js.map +0 -1
  704. package/components/pds-tooltip.js.map +0 -1
  705. package/dist/cjs/app-globals-3a1e7e63.js +0 -7
  706. package/dist/cjs/app-globals-3a1e7e63.js.map +0 -1
  707. package/dist/cjs/closest-b45138d3.js +0 -13
  708. package/dist/cjs/closest-b45138d3.js.map +0 -1
  709. package/dist/cjs/index-46fb0736.js +0 -1956
  710. package/dist/cjs/index-46fb0736.js.map +0 -1
  711. package/dist/cjs/index-de3f0730.js +0 -24
  712. package/dist/cjs/index-de3f0730.js.map +0 -1
  713. package/dist/cjs/index.cjs.js.map +0 -1
  714. package/dist/cjs/loader.cjs.js.map +0 -1
  715. package/dist/cjs/pds-accordion.cjs.entry.js.map +0 -1
  716. package/dist/cjs/pds-avatar.cjs.entry.js.map +0 -1
  717. package/dist/cjs/pds-box.cjs.entry.js.map +0 -1
  718. package/dist/cjs/pds-button.cjs.entry.js.map +0 -1
  719. package/dist/cjs/pds-checkbox.cjs.entry.js.map +0 -1
  720. package/dist/cjs/pds-chip.cjs.entry.js.map +0 -1
  721. package/dist/cjs/pds-copytext.cjs.entry.js.map +0 -1
  722. package/dist/cjs/pds-divider.cjs.entry.js.map +0 -1
  723. package/dist/cjs/pds-icon.cjs.entry.js.map +0 -1
  724. package/dist/cjs/pds-image.cjs.entry.js.map +0 -1
  725. package/dist/cjs/pds-input.cjs.entry.js.map +0 -1
  726. package/dist/cjs/pds-label-7aabdc4e.js +0 -44
  727. package/dist/cjs/pds-label-7aabdc4e.js.map +0 -1
  728. package/dist/cjs/pds-link.cjs.entry.js.map +0 -1
  729. package/dist/cjs/pds-loader.cjs.entry.js.map +0 -1
  730. package/dist/cjs/pds-progress.cjs.entry.js.map +0 -1
  731. package/dist/cjs/pds-radio.cjs.entry.js.map +0 -1
  732. package/dist/cjs/pds-row.cjs.entry.js.map +0 -1
  733. package/dist/cjs/pds-sortable-item.cjs.entry.js.map +0 -1
  734. package/dist/cjs/pds-sortable.cjs.entry.js.map +0 -1
  735. package/dist/cjs/pds-switch.cjs.entry.js.map +0 -1
  736. package/dist/cjs/pds-tab.cjs.entry.js.map +0 -1
  737. package/dist/cjs/pds-table-body.cjs.entry.js.map +0 -1
  738. package/dist/cjs/pds-table-cell.cjs.entry.js.map +0 -1
  739. package/dist/cjs/pds-table-head-cell.cjs.entry.js.map +0 -1
  740. package/dist/cjs/pds-table-head.cjs.entry.js.map +0 -1
  741. package/dist/cjs/pds-table-row.cjs.entry.js.map +0 -1
  742. package/dist/cjs/pds-table.cjs.entry.js.map +0 -1
  743. package/dist/cjs/pds-tabpanel.cjs.entry.js.map +0 -1
  744. package/dist/cjs/pds-tabs.cjs.entry.js.map +0 -1
  745. package/dist/cjs/pds-textarea.cjs.entry.js.map +0 -1
  746. package/dist/cjs/pds-tooltip.cjs.entry.js.map +0 -1
  747. package/dist/cjs/pine-core.cjs.js.map +0 -1
  748. package/dist/collection/components/_internal/pds-label/pds-label.js.map +0 -1
  749. package/dist/collection/components/pds-accordion/pds-accordion.js.map +0 -1
  750. package/dist/collection/components/pds-avatar/pds-avatar.js.map +0 -1
  751. package/dist/collection/components/pds-box/pds-box.js.map +0 -1
  752. package/dist/collection/components/pds-button/pds-button.js.map +0 -1
  753. package/dist/collection/components/pds-checkbox/checkbox-interface.js.map +0 -1
  754. package/dist/collection/components/pds-checkbox/pds-checkbox.js.map +0 -1
  755. package/dist/collection/components/pds-chip/pds-chip.js.map +0 -1
  756. package/dist/collection/components/pds-copytext/pds-copytext.js.map +0 -1
  757. package/dist/collection/components/pds-divider/pds-divider.js.map +0 -1
  758. package/dist/collection/components/pds-image/pds-image.js.map +0 -1
  759. package/dist/collection/components/pds-input/pds-input.js.map +0 -1
  760. package/dist/collection/components/pds-link/pds-link.js.map +0 -1
  761. package/dist/collection/components/pds-loader/pds-loader.js.map +0 -1
  762. package/dist/collection/components/pds-progress/pds-progress.js.map +0 -1
  763. package/dist/collection/components/pds-radio/pds-radio.js.map +0 -1
  764. package/dist/collection/components/pds-row/pds-row.js.map +0 -1
  765. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js.map +0 -1
  766. package/dist/collection/components/pds-sortable/pds-sortable.js.map +0 -1
  767. package/dist/collection/components/pds-sortable/sortable-interface.js.map +0 -1
  768. package/dist/collection/components/pds-switch/pds-switch.js.map +0 -1
  769. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js.map +0 -1
  770. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js.map +0 -1
  771. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js.map +0 -1
  772. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js.map +0 -1
  773. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js.map +0 -1
  774. package/dist/collection/components/pds-table/pds-table.js.map +0 -1
  775. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js.map +0 -1
  776. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js.map +0 -1
  777. package/dist/collection/components/pds-tabs/pds-tabs.js.map +0 -1
  778. package/dist/collection/components/pds-textarea/pds-textarea.js.map +0 -1
  779. package/dist/collection/components/pds-textarea/textarea-interface.js.map +0 -1
  780. package/dist/collection/components/pds-tooltip/pds-tooltip.js.map +0 -1
  781. package/dist/collection/global/pine-ui-global.js.map +0 -1
  782. package/dist/collection/index.js.map +0 -1
  783. package/dist/collection/stories/_helpers/index.js +0 -15
  784. package/dist/collection/stories/_helpers/index.js.map +0 -1
  785. package/dist/collection/utils/closest.js.map +0 -1
  786. package/dist/collection/utils/form.js.map +0 -1
  787. package/dist/collection/utils/overlay.js.map +0 -1
  788. package/dist/collection/utils/types.js.map +0 -1
  789. package/dist/collection/utils/utils.js.map +0 -1
  790. package/dist/esm/app-globals-0f993ce5.js +0 -5
  791. package/dist/esm/app-globals-0f993ce5.js.map +0 -1
  792. package/dist/esm/closest-d2d192be.js +0 -11
  793. package/dist/esm/closest-d2d192be.js.map +0 -1
  794. package/dist/esm/index-2a33b470.js +0 -1927
  795. package/dist/esm/index-2a33b470.js.map +0 -1
  796. package/dist/esm/index-a1e2f9af.js +0 -14
  797. package/dist/esm/index-a1e2f9af.js.map +0 -1
  798. package/dist/esm/index.js.map +0 -1
  799. package/dist/esm/loader.js.map +0 -1
  800. package/dist/esm/pds-accordion.entry.js.map +0 -1
  801. package/dist/esm/pds-avatar.entry.js.map +0 -1
  802. package/dist/esm/pds-box.entry.js.map +0 -1
  803. package/dist/esm/pds-button.entry.js.map +0 -1
  804. package/dist/esm/pds-checkbox.entry.js.map +0 -1
  805. package/dist/esm/pds-chip.entry.js.map +0 -1
  806. package/dist/esm/pds-copytext.entry.js.map +0 -1
  807. package/dist/esm/pds-divider.entry.js.map +0 -1
  808. package/dist/esm/pds-icon.entry.js.map +0 -1
  809. package/dist/esm/pds-image.entry.js.map +0 -1
  810. package/dist/esm/pds-input.entry.js.map +0 -1
  811. package/dist/esm/pds-label-31a5848b.js +0 -39
  812. package/dist/esm/pds-label-31a5848b.js.map +0 -1
  813. package/dist/esm/pds-link.entry.js.map +0 -1
  814. package/dist/esm/pds-loader.entry.js.map +0 -1
  815. package/dist/esm/pds-progress.entry.js.map +0 -1
  816. package/dist/esm/pds-radio.entry.js.map +0 -1
  817. package/dist/esm/pds-row.entry.js.map +0 -1
  818. package/dist/esm/pds-sortable-item.entry.js.map +0 -1
  819. package/dist/esm/pds-sortable.entry.js.map +0 -1
  820. package/dist/esm/pds-switch.entry.js.map +0 -1
  821. package/dist/esm/pds-tab.entry.js.map +0 -1
  822. package/dist/esm/pds-table-body.entry.js.map +0 -1
  823. package/dist/esm/pds-table-cell.entry.js.map +0 -1
  824. package/dist/esm/pds-table-head-cell.entry.js.map +0 -1
  825. package/dist/esm/pds-table-head.entry.js.map +0 -1
  826. package/dist/esm/pds-table-row.entry.js.map +0 -1
  827. package/dist/esm/pds-table.entry.js.map +0 -1
  828. package/dist/esm/pds-tabpanel.entry.js.map +0 -1
  829. package/dist/esm/pds-tabs.entry.js.map +0 -1
  830. package/dist/esm/pds-textarea.entry.js.map +0 -1
  831. package/dist/esm/pds-tooltip.entry.js.map +0 -1
  832. package/dist/esm/pine-core.js.map +0 -1
  833. package/dist/esm-es5/app-globals-0f993ce5.js +0 -2
  834. package/dist/esm-es5/app-globals-0f993ce5.js.map +0 -1
  835. package/dist/esm-es5/closest-d2d192be.js +0 -2
  836. package/dist/esm-es5/closest-d2d192be.js.map +0 -1
  837. package/dist/esm-es5/index-2a33b470.js +0 -3
  838. package/dist/esm-es5/index-2a33b470.js.map +0 -1
  839. package/dist/esm-es5/index-a1e2f9af.js +0 -2
  840. package/dist/esm-es5/index-a1e2f9af.js.map +0 -1
  841. package/dist/esm-es5/index.js.map +0 -1
  842. package/dist/esm-es5/loader.js.map +0 -1
  843. package/dist/esm-es5/pds-accordion.entry.js.map +0 -1
  844. package/dist/esm-es5/pds-avatar.entry.js.map +0 -1
  845. package/dist/esm-es5/pds-box.entry.js.map +0 -1
  846. package/dist/esm-es5/pds-button.entry.js.map +0 -1
  847. package/dist/esm-es5/pds-checkbox.entry.js.map +0 -1
  848. package/dist/esm-es5/pds-chip.entry.js.map +0 -1
  849. package/dist/esm-es5/pds-copytext.entry.js.map +0 -1
  850. package/dist/esm-es5/pds-divider.entry.js.map +0 -1
  851. package/dist/esm-es5/pds-icon.entry.js.map +0 -1
  852. package/dist/esm-es5/pds-image.entry.js.map +0 -1
  853. package/dist/esm-es5/pds-input.entry.js.map +0 -1
  854. package/dist/esm-es5/pds-label-31a5848b.js +0 -2
  855. package/dist/esm-es5/pds-label-31a5848b.js.map +0 -1
  856. package/dist/esm-es5/pds-link.entry.js.map +0 -1
  857. package/dist/esm-es5/pds-loader.entry.js.map +0 -1
  858. package/dist/esm-es5/pds-progress.entry.js.map +0 -1
  859. package/dist/esm-es5/pds-radio.entry.js.map +0 -1
  860. package/dist/esm-es5/pds-row.entry.js.map +0 -1
  861. package/dist/esm-es5/pds-sortable-item.entry.js.map +0 -1
  862. package/dist/esm-es5/pds-sortable.entry.js.map +0 -1
  863. package/dist/esm-es5/pds-switch.entry.js.map +0 -1
  864. package/dist/esm-es5/pds-tab.entry.js.map +0 -1
  865. package/dist/esm-es5/pds-table-body.entry.js.map +0 -1
  866. package/dist/esm-es5/pds-table-cell.entry.js.map +0 -1
  867. package/dist/esm-es5/pds-table-head-cell.entry.js.map +0 -1
  868. package/dist/esm-es5/pds-table-head.entry.js.map +0 -1
  869. package/dist/esm-es5/pds-table-row.entry.js.map +0 -1
  870. package/dist/esm-es5/pds-table.entry.js.map +0 -1
  871. package/dist/esm-es5/pds-tabpanel.entry.js.map +0 -1
  872. package/dist/esm-es5/pds-tabs.entry.js.map +0 -1
  873. package/dist/esm-es5/pds-textarea.entry.js.map +0 -1
  874. package/dist/esm-es5/pds-tooltip.entry.js.map +0 -1
  875. package/dist/esm-es5/pine-core.js.map +0 -1
  876. package/dist/pine-core/index.esm.js.map +0 -1
  877. package/dist/pine-core/p-06c33261.system.entry.js +0 -2
  878. package/dist/pine-core/p-06c33261.system.entry.js.map +0 -1
  879. package/dist/pine-core/p-07f80cb6.entry.js +0 -2
  880. package/dist/pine-core/p-07f80cb6.entry.js.map +0 -1
  881. package/dist/pine-core/p-09b1c7f1.system.entry.js +0 -2
  882. package/dist/pine-core/p-09b1c7f1.system.entry.js.map +0 -1
  883. package/dist/pine-core/p-0a4b1ce9.system.entry.js +0 -2
  884. package/dist/pine-core/p-0a4b1ce9.system.entry.js.map +0 -1
  885. package/dist/pine-core/p-0b541f88.js +0 -3
  886. package/dist/pine-core/p-0b541f88.js.map +0 -1
  887. package/dist/pine-core/p-0b77685e.js +0 -2
  888. package/dist/pine-core/p-0b77685e.js.map +0 -1
  889. package/dist/pine-core/p-0d6fafef.system.entry.js +0 -2
  890. package/dist/pine-core/p-0d6fafef.system.entry.js.map +0 -1
  891. package/dist/pine-core/p-0e1c0d03.entry.js +0 -8
  892. package/dist/pine-core/p-0e1c0d03.entry.js.map +0 -1
  893. package/dist/pine-core/p-0e936138.entry.js +0 -2
  894. package/dist/pine-core/p-0e936138.entry.js.map +0 -1
  895. package/dist/pine-core/p-143795e5.system.entry.js +0 -2
  896. package/dist/pine-core/p-143795e5.system.entry.js.map +0 -1
  897. package/dist/pine-core/p-1f2b0be3.system.entry.js +0 -2
  898. package/dist/pine-core/p-1f2b0be3.system.entry.js.map +0 -1
  899. package/dist/pine-core/p-224a435b.system.js +0 -2
  900. package/dist/pine-core/p-224a435b.system.js.map +0 -1
  901. package/dist/pine-core/p-31056348.system.entry.js +0 -2
  902. package/dist/pine-core/p-31056348.system.entry.js.map +0 -1
  903. package/dist/pine-core/p-32498622.system.entry.js +0 -2
  904. package/dist/pine-core/p-32498622.system.entry.js.map +0 -1
  905. package/dist/pine-core/p-3261fdf5.system.entry.js +0 -2
  906. package/dist/pine-core/p-3261fdf5.system.entry.js.map +0 -1
  907. package/dist/pine-core/p-32e41e3d.system.entry.js +0 -2
  908. package/dist/pine-core/p-32e41e3d.system.entry.js.map +0 -1
  909. package/dist/pine-core/p-34631565.system.js +0 -2
  910. package/dist/pine-core/p-34631565.system.js.map +0 -1
  911. package/dist/pine-core/p-3aa152c6.entry.js +0 -2
  912. package/dist/pine-core/p-3aa152c6.entry.js.map +0 -1
  913. package/dist/pine-core/p-3ba3d44c.entry.js +0 -2
  914. package/dist/pine-core/p-3ba3d44c.entry.js.map +0 -1
  915. package/dist/pine-core/p-46161cec.entry.js +0 -2
  916. package/dist/pine-core/p-46161cec.entry.js.map +0 -1
  917. package/dist/pine-core/p-4f69a7b7.entry.js +0 -2
  918. package/dist/pine-core/p-4f69a7b7.entry.js.map +0 -1
  919. package/dist/pine-core/p-50a23474.entry.js +0 -2
  920. package/dist/pine-core/p-50a23474.entry.js.map +0 -1
  921. package/dist/pine-core/p-511bf308.entry.js +0 -2
  922. package/dist/pine-core/p-511bf308.entry.js.map +0 -1
  923. package/dist/pine-core/p-52515d64.system.entry.js +0 -2
  924. package/dist/pine-core/p-52515d64.system.entry.js.map +0 -1
  925. package/dist/pine-core/p-56ba5cbf.system.js +0 -2
  926. package/dist/pine-core/p-56ba5cbf.system.js.map +0 -1
  927. package/dist/pine-core/p-5a384517.entry.js +0 -2
  928. package/dist/pine-core/p-5a384517.entry.js.map +0 -1
  929. package/dist/pine-core/p-5bee6677.system.entry.js +0 -2
  930. package/dist/pine-core/p-5bee6677.system.entry.js.map +0 -1
  931. package/dist/pine-core/p-5df76e04.system.js +0 -2
  932. package/dist/pine-core/p-5df76e04.system.js.map +0 -1
  933. package/dist/pine-core/p-62ec9a0f.system.entry.js +0 -2
  934. package/dist/pine-core/p-62ec9a0f.system.entry.js.map +0 -1
  935. package/dist/pine-core/p-6a7a864f.entry.js +0 -2
  936. package/dist/pine-core/p-6a7a864f.entry.js.map +0 -1
  937. package/dist/pine-core/p-6ae2f0f5.entry.js +0 -2
  938. package/dist/pine-core/p-6ae2f0f5.entry.js.map +0 -1
  939. package/dist/pine-core/p-6d9edf7d.system.entry.js +0 -2
  940. package/dist/pine-core/p-6d9edf7d.system.entry.js.map +0 -1
  941. package/dist/pine-core/p-6e146962.entry.js +0 -2
  942. package/dist/pine-core/p-6e146962.entry.js.map +0 -1
  943. package/dist/pine-core/p-6ff9ebfa.entry.js +0 -2
  944. package/dist/pine-core/p-6ff9ebfa.entry.js.map +0 -1
  945. package/dist/pine-core/p-701ba882.entry.js +0 -2
  946. package/dist/pine-core/p-701ba882.entry.js.map +0 -1
  947. package/dist/pine-core/p-73eb1722.entry.js +0 -2
  948. package/dist/pine-core/p-73eb1722.entry.js.map +0 -1
  949. package/dist/pine-core/p-78c6c37a.system.entry.js +0 -2
  950. package/dist/pine-core/p-78c6c37a.system.entry.js.map +0 -1
  951. package/dist/pine-core/p-79ca4ab9.system.entry.js +0 -2
  952. package/dist/pine-core/p-79ca4ab9.system.entry.js.map +0 -1
  953. package/dist/pine-core/p-7c33a02e.entry.js +0 -2
  954. package/dist/pine-core/p-7c33a02e.entry.js.map +0 -1
  955. package/dist/pine-core/p-7dac515e.system.entry.js +0 -2
  956. package/dist/pine-core/p-7dac515e.system.entry.js.map +0 -1
  957. package/dist/pine-core/p-7ea6838b.system.entry.js +0 -2
  958. package/dist/pine-core/p-7ea6838b.system.entry.js.map +0 -1
  959. package/dist/pine-core/p-7ebfdef4.system.entry.js +0 -2
  960. package/dist/pine-core/p-7ebfdef4.system.entry.js.map +0 -1
  961. package/dist/pine-core/p-829777e4.system.entry.js +0 -2
  962. package/dist/pine-core/p-829777e4.system.entry.js.map +0 -1
  963. package/dist/pine-core/p-8317c6c2.js +0 -2
  964. package/dist/pine-core/p-8317c6c2.js.map +0 -1
  965. package/dist/pine-core/p-8469b65a.entry.js +0 -2
  966. package/dist/pine-core/p-8469b65a.entry.js.map +0 -1
  967. package/dist/pine-core/p-8d8de5fd.entry.js +0 -2
  968. package/dist/pine-core/p-8d8de5fd.entry.js.map +0 -1
  969. package/dist/pine-core/p-8df8debd.entry.js +0 -2
  970. package/dist/pine-core/p-8df8debd.entry.js.map +0 -1
  971. package/dist/pine-core/p-8f73bf14.system.entry.js +0 -2
  972. package/dist/pine-core/p-8f73bf14.system.entry.js.map +0 -1
  973. package/dist/pine-core/p-8fbec4fe.system.js +0 -2
  974. package/dist/pine-core/p-8fbec4fe.system.js.map +0 -1
  975. package/dist/pine-core/p-909b305c.system.entry.js +0 -2
  976. package/dist/pine-core/p-909b305c.system.entry.js.map +0 -1
  977. package/dist/pine-core/p-936d96ec.system.entry.js +0 -9
  978. package/dist/pine-core/p-936d96ec.system.entry.js.map +0 -1
  979. package/dist/pine-core/p-9583e6d5.entry.js +0 -2
  980. package/dist/pine-core/p-9583e6d5.entry.js.map +0 -1
  981. package/dist/pine-core/p-96c750d1.entry.js +0 -2
  982. package/dist/pine-core/p-96c750d1.entry.js.map +0 -1
  983. package/dist/pine-core/p-a03e587c.entry.js +0 -2
  984. package/dist/pine-core/p-a03e587c.entry.js.map +0 -1
  985. package/dist/pine-core/p-a79a8159.entry.js +0 -2
  986. package/dist/pine-core/p-a79a8159.entry.js.map +0 -1
  987. package/dist/pine-core/p-a962fe8e.entry.js +0 -2
  988. package/dist/pine-core/p-a962fe8e.entry.js.map +0 -1
  989. package/dist/pine-core/p-ad4238c9.system.entry.js +0 -2
  990. package/dist/pine-core/p-ad4238c9.system.entry.js.map +0 -1
  991. package/dist/pine-core/p-af7df3c2.system.entry.js +0 -2
  992. package/dist/pine-core/p-af7df3c2.system.entry.js.map +0 -1
  993. package/dist/pine-core/p-b18b20f4.system.js +0 -2
  994. package/dist/pine-core/p-b18b20f4.system.js.map +0 -1
  995. package/dist/pine-core/p-b4518566.entry.js +0 -2
  996. package/dist/pine-core/p-b4518566.entry.js.map +0 -1
  997. package/dist/pine-core/p-b5c7e02a.entry.js +0 -2
  998. package/dist/pine-core/p-b5c7e02a.entry.js.map +0 -1
  999. package/dist/pine-core/p-bc20946b.system.entry.js +0 -2
  1000. package/dist/pine-core/p-bc20946b.system.entry.js.map +0 -1
  1001. package/dist/pine-core/p-c52d0465.system.entry.js +0 -2
  1002. package/dist/pine-core/p-c52d0465.system.entry.js.map +0 -1
  1003. package/dist/pine-core/p-c84cc2f8.system.entry.js +0 -2
  1004. package/dist/pine-core/p-c84cc2f8.system.entry.js.map +0 -1
  1005. package/dist/pine-core/p-ca239d59.system.entry.js +0 -2
  1006. package/dist/pine-core/p-ca239d59.system.entry.js.map +0 -1
  1007. package/dist/pine-core/p-e1255160.js +0 -2
  1008. package/dist/pine-core/p-e1255160.js.map +0 -1
  1009. package/dist/pine-core/p-e4b3115c.entry.js +0 -2
  1010. package/dist/pine-core/p-e4b3115c.entry.js.map +0 -1
  1011. package/dist/pine-core/p-e60fccc0.js +0 -2
  1012. package/dist/pine-core/p-e60fccc0.js.map +0 -1
  1013. package/dist/pine-core/p-eb56f262.system.entry.js +0 -2
  1014. package/dist/pine-core/p-eb56f262.system.entry.js.map +0 -1
  1015. package/dist/pine-core/p-ec484bf6.entry.js +0 -2
  1016. package/dist/pine-core/p-ec484bf6.entry.js.map +0 -1
  1017. package/dist/pine-core/p-f59d4a46.entry.js +0 -2
  1018. package/dist/pine-core/p-f59d4a46.entry.js.map +0 -1
  1019. package/dist/pine-core/p-f74c489d.system.js +0 -3
  1020. package/dist/pine-core/p-f74c489d.system.js.map +0 -1
  1021. package/dist/pine-core/pine-core.esm.js.map +0 -1
  1022. package/dist/pine-core/svg/access-key.svg +0 -1
  1023. package/dist/pine-core/svg/add-circle.svg +0 -1
  1024. package/dist/pine-core/svg/add-image.svg +0 -1
  1025. package/dist/pine-core/svg/add-small.svg +0 -1
  1026. package/dist/pine-core/svg/add-square.svg +0 -1
  1027. package/dist/pine-core/svg/add.svg +0 -1
  1028. package/dist/pine-core/svg/advanced.svg +0 -1
  1029. package/dist/pine-core/svg/ai-sparkle.svg +0 -1
  1030. package/dist/pine-core/svg/ai-writer-filled.svg +0 -1
  1031. package/dist/pine-core/svg/ai-writer.svg +0 -1
  1032. package/dist/pine-core/svg/align-center.svg +0 -1
  1033. package/dist/pine-core/svg/align-justify.svg +0 -1
  1034. package/dist/pine-core/svg/align-left.svg +0 -1
  1035. package/dist/pine-core/svg/align-right.svg +0 -1
  1036. package/dist/pine-core/svg/app-store.svg +0 -1
  1037. package/dist/pine-core/svg/archive.svg +0 -1
  1038. package/dist/pine-core/svg/arrow-corner.svg +0 -1
  1039. package/dist/pine-core/svg/arrow-down.svg +0 -1
  1040. package/dist/pine-core/svg/arrow-left.svg +0 -1
  1041. package/dist/pine-core/svg/arrow-right.svg +0 -1
  1042. package/dist/pine-core/svg/arrow-up.svg +0 -1
  1043. package/dist/pine-core/svg/assessment.svg +0 -1
  1044. package/dist/pine-core/svg/at-sign.svg +0 -1
  1045. package/dist/pine-core/svg/attach.svg +0 -1
  1046. package/dist/pine-core/svg/automations.svg +0 -1
  1047. package/dist/pine-core/svg/ban.svg +0 -1
  1048. package/dist/pine-core/svg/bank.svg +0 -1
  1049. package/dist/pine-core/svg/bar-chart-10-tone.svg +0 -1
  1050. package/dist/pine-core/svg/bell-01-tone.svg +0 -1
  1051. package/dist/pine-core/svg/bell.svg +0 -1
  1052. package/dist/pine-core/svg/block.svg +0 -1
  1053. package/dist/pine-core/svg/blog-filled.svg +0 -1
  1054. package/dist/pine-core/svg/blog.svg +0 -1
  1055. package/dist/pine-core/svg/bold.svg +0 -1
  1056. package/dist/pine-core/svg/broadcast.svg +0 -1
  1057. package/dist/pine-core/svg/bulb.svg +0 -1
  1058. package/dist/pine-core/svg/button.svg +0 -1
  1059. package/dist/pine-core/svg/calendar-date.svg +0 -1
  1060. package/dist/pine-core/svg/calendar-schedule.svg +0 -1
  1061. package/dist/pine-core/svg/calendar-simple.svg +0 -1
  1062. package/dist/pine-core/svg/card-amex.svg +0 -1
  1063. package/dist/pine-core/svg/card-android.svg +0 -1
  1064. package/dist/pine-core/svg/card-apple.svg +0 -1
  1065. package/dist/pine-core/svg/card-diners-club.svg +0 -1
  1066. package/dist/pine-core/svg/card-discover.svg +0 -1
  1067. package/dist/pine-core/svg/card-generic.svg +0 -1
  1068. package/dist/pine-core/svg/card-gpay.svg +0 -1
  1069. package/dist/pine-core/svg/card-mastercard.svg +0 -1
  1070. package/dist/pine-core/svg/card-paypal.svg +0 -1
  1071. package/dist/pine-core/svg/card-stripe.svg +0 -1
  1072. package/dist/pine-core/svg/card-update.svg +0 -1
  1073. package/dist/pine-core/svg/card-visa.svg +0 -1
  1074. package/dist/pine-core/svg/caret-down.svg +0 -1
  1075. package/dist/pine-core/svg/caret-left.svg +0 -1
  1076. package/dist/pine-core/svg/caret-right.svg +0 -1
  1077. package/dist/pine-core/svg/caret-up.svg +0 -1
  1078. package/dist/pine-core/svg/cart-add.svg +0 -1
  1079. package/dist/pine-core/svg/cart.svg +0 -1
  1080. package/dist/pine-core/svg/certificate.svg +0 -1
  1081. package/dist/pine-core/svg/chart-filled.svg +0 -1
  1082. package/dist/pine-core/svg/chart.svg +0 -1
  1083. package/dist/pine-core/svg/check-circle-filled.svg +0 -1
  1084. package/dist/pine-core/svg/check-circle.svg +0 -1
  1085. package/dist/pine-core/svg/check.svg +0 -1
  1086. package/dist/pine-core/svg/circle-1.svg +0 -1
  1087. package/dist/pine-core/svg/circle-2.svg +0 -1
  1088. package/dist/pine-core/svg/circle-3.svg +0 -1
  1089. package/dist/pine-core/svg/circle-4.svg +0 -1
  1090. package/dist/pine-core/svg/circle-5.svg +0 -1
  1091. package/dist/pine-core/svg/circle-6.svg +0 -1
  1092. package/dist/pine-core/svg/circle-7.svg +0 -1
  1093. package/dist/pine-core/svg/circle-8.svg +0 -1
  1094. package/dist/pine-core/svg/circle-9.svg +0 -1
  1095. package/dist/pine-core/svg/circle-a.svg +0 -1
  1096. package/dist/pine-core/svg/circle-b.svg +0 -1
  1097. package/dist/pine-core/svg/circle-dashed.svg +0 -1
  1098. package/dist/pine-core/svg/clapperboard-tone.svg +0 -1
  1099. package/dist/pine-core/svg/clock.svg +0 -1
  1100. package/dist/pine-core/svg/closed-captions.svg +0 -1
  1101. package/dist/pine-core/svg/cloud-upload.svg +0 -1
  1102. package/dist/pine-core/svg/code-block.svg +0 -1
  1103. package/dist/pine-core/svg/code.svg +0 -1
  1104. package/dist/pine-core/svg/color.svg +0 -1
  1105. package/dist/pine-core/svg/columns.svg +0 -1
  1106. package/dist/pine-core/svg/comment-no.svg +0 -1
  1107. package/dist/pine-core/svg/comment.svg +0 -1
  1108. package/dist/pine-core/svg/connect.svg +0 -1
  1109. package/dist/pine-core/svg/contact.svg +0 -1
  1110. package/dist/pine-core/svg/conversation.svg +0 -1
  1111. package/dist/pine-core/svg/copy.svg +0 -1
  1112. package/dist/pine-core/svg/coupon.svg +0 -1
  1113. package/dist/pine-core/svg/course-filled.svg +0 -1
  1114. package/dist/pine-core/svg/course.svg +0 -1
  1115. package/dist/pine-core/svg/creator-studio-filled.svg +0 -1
  1116. package/dist/pine-core/svg/creator-studio.svg +0 -1
  1117. package/dist/pine-core/svg/credit-card-02-tone.svg +0 -1
  1118. package/dist/pine-core/svg/cube-01-tone.svg +0 -1
  1119. package/dist/pine-core/svg/cursor-pointer.svg +0 -1
  1120. package/dist/pine-core/svg/cursor.svg +0 -1
  1121. package/dist/pine-core/svg/custom-field.svg +0 -1
  1122. package/dist/pine-core/svg/customize.svg +0 -1
  1123. package/dist/pine-core/svg/danger-filled.svg +0 -1
  1124. package/dist/pine-core/svg/danger.svg +0 -1
  1125. package/dist/pine-core/svg/delete-circle.svg +0 -1
  1126. package/dist/pine-core/svg/delete-key.svg +0 -1
  1127. package/dist/pine-core/svg/delete-x.svg +0 -1
  1128. package/dist/pine-core/svg/dollar.svg +0 -1
  1129. package/dist/pine-core/svg/dot-menu-horizontal.svg +0 -1
  1130. package/dist/pine-core/svg/dots-horizontal-tone.svg +0 -1
  1131. package/dist/pine-core/svg/down-small.svg +0 -1
  1132. package/dist/pine-core/svg/download.svg +0 -1
  1133. package/dist/pine-core/svg/downsell.svg +0 -1
  1134. package/dist/pine-core/svg/draft.svg +0 -1
  1135. package/dist/pine-core/svg/drawer-collapse.svg +0 -1
  1136. package/dist/pine-core/svg/drawer-expand.svg +0 -1
  1137. package/dist/pine-core/svg/drop.svg +0 -1
  1138. package/dist/pine-core/svg/duplicate.svg +0 -1
  1139. package/dist/pine-core/svg/editor-filled.svg +0 -1
  1140. package/dist/pine-core/svg/editor.svg +0 -1
  1141. package/dist/pine-core/svg/email-activity.svg +0 -1
  1142. package/dist/pine-core/svg/emoji.svg +0 -1
  1143. package/dist/pine-core/svg/enlarge-vertical.svg +0 -1
  1144. package/dist/pine-core/svg/enlarge.svg +0 -1
  1145. package/dist/pine-core/svg/expand.svg +0 -1
  1146. package/dist/pine-core/svg/favorite.svg +0 -1
  1147. package/dist/pine-core/svg/feedback.svg +0 -1
  1148. package/dist/pine-core/svg/file-02.svg +0 -1
  1149. package/dist/pine-core/svg/file-money.svg +0 -1
  1150. package/dist/pine-core/svg/file.svg +0 -1
  1151. package/dist/pine-core/svg/filter.svg +0 -1
  1152. package/dist/pine-core/svg/flag.svg +0 -1
  1153. package/dist/pine-core/svg/flash-filled.svg +0 -1
  1154. package/dist/pine-core/svg/flash.svg +0 -1
  1155. package/dist/pine-core/svg/floppy-disk.svg +0 -1
  1156. package/dist/pine-core/svg/folder-group.svg +0 -1
  1157. package/dist/pine-core/svg/folder.svg +0 -1
  1158. package/dist/pine-core/svg/form-field.svg +0 -1
  1159. package/dist/pine-core/svg/form-filled.svg +0 -1
  1160. package/dist/pine-core/svg/form.svg +0 -1
  1161. package/dist/pine-core/svg/fullscreen.svg +0 -1
  1162. package/dist/pine-core/svg/funnel.svg +0 -1
  1163. package/dist/pine-core/svg/gear-filled.svg +0 -1
  1164. package/dist/pine-core/svg/gear.svg +0 -1
  1165. package/dist/pine-core/svg/grant-offer.svg +0 -1
  1166. package/dist/pine-core/svg/handle-2-vertical.svg +0 -1
  1167. package/dist/pine-core/svg/handle-2.svg +0 -1
  1168. package/dist/pine-core/svg/handle.svg +0 -1
  1169. package/dist/pine-core/svg/hashtag.svg +0 -1
  1170. package/dist/pine-core/svg/hd-video.svg +0 -1
  1171. package/dist/pine-core/svg/heading-1.svg +0 -1
  1172. package/dist/pine-core/svg/heading-2.svg +0 -1
  1173. package/dist/pine-core/svg/heading-3.svg +0 -1
  1174. package/dist/pine-core/svg/heading-4.svg +0 -1
  1175. package/dist/pine-core/svg/heading-5.svg +0 -1
  1176. package/dist/pine-core/svg/heading-6.svg +0 -1
  1177. package/dist/pine-core/svg/heading-large.svg +0 -1
  1178. package/dist/pine-core/svg/heading-small.svg +0 -1
  1179. package/dist/pine-core/svg/headset-tone.svg +0 -1
  1180. package/dist/pine-core/svg/headset.svg +0 -1
  1181. package/dist/pine-core/svg/help-filled.svg +0 -1
  1182. package/dist/pine-core/svg/help.svg +0 -1
  1183. package/dist/pine-core/svg/home-02-tone.svg +0 -1
  1184. package/dist/pine-core/svg/home-alt.svg +0 -1
  1185. package/dist/pine-core/svg/home-filled.svg +0 -1
  1186. package/dist/pine-core/svg/home.svg +0 -1
  1187. package/dist/pine-core/svg/horizontal-line.svg +0 -1
  1188. package/dist/pine-core/svg/image.svg +0 -1
  1189. package/dist/pine-core/svg/info-circle-filled.svg +0 -1
  1190. package/dist/pine-core/svg/info-circle.svg +0 -1
  1191. package/dist/pine-core/svg/ios-battery.svg +0 -1
  1192. package/dist/pine-core/svg/ios-data.svg +0 -1
  1193. package/dist/pine-core/svg/ios-wifi.svg +0 -1
  1194. package/dist/pine-core/svg/italic.svg +0 -1
  1195. package/dist/pine-core/svg/kajabi-filled.svg +0 -1
  1196. package/dist/pine-core/svg/kajabi.svg +0 -1
  1197. package/dist/pine-core/svg/klarna.svg +0 -1
  1198. package/dist/pine-core/svg/lab.svg +0 -1
  1199. package/dist/pine-core/svg/launch.svg +0 -1
  1200. package/dist/pine-core/svg/layout-grid.svg +0 -1
  1201. package/dist/pine-core/svg/layout-list.svg +0 -1
  1202. package/dist/pine-core/svg/left-small.svg +0 -1
  1203. package/dist/pine-core/svg/list-bullet.svg +0 -1
  1204. package/dist/pine-core/svg/list-details.svg +0 -1
  1205. package/dist/pine-core/svg/list-numbers.svg +0 -1
  1206. package/dist/pine-core/svg/location.svg +0 -1
  1207. package/dist/pine-core/svg/lock-alt.svg +0 -1
  1208. package/dist/pine-core/svg/lock.svg +0 -1
  1209. package/dist/pine-core/svg/logo-afterpay.svg +0 -1
  1210. package/dist/pine-core/svg/logo-facebook-round.svg +0 -1
  1211. package/dist/pine-core/svg/logo-facebook.svg +0 -1
  1212. package/dist/pine-core/svg/logo-instagram.svg +0 -1
  1213. package/dist/pine-core/svg/logo-linkedin.svg +0 -1
  1214. package/dist/pine-core/svg/logo-tiktok.svg +0 -1
  1215. package/dist/pine-core/svg/logo-twitter-x.svg +0 -1
  1216. package/dist/pine-core/svg/logo-twitter.svg +0 -1
  1217. package/dist/pine-core/svg/logo-youtube.svg +0 -1
  1218. package/dist/pine-core/svg/loop.svg +0 -1
  1219. package/dist/pine-core/svg/mail-01-tone.svg +0 -1
  1220. package/dist/pine-core/svg/mail-filled.svg +0 -1
  1221. package/dist/pine-core/svg/mail-open.svg +0 -1
  1222. package/dist/pine-core/svg/mail.svg +0 -1
  1223. package/dist/pine-core/svg/map.svg +0 -1
  1224. package/dist/pine-core/svg/mapped.svg +0 -1
  1225. package/dist/pine-core/svg/margin-left.svg +0 -1
  1226. package/dist/pine-core/svg/margin-right.svg +0 -1
  1227. package/dist/pine-core/svg/marker-filled.svg +0 -1
  1228. package/dist/pine-core/svg/marker.svg +0 -1
  1229. package/dist/pine-core/svg/megaphone-filled.svg +0 -1
  1230. package/dist/pine-core/svg/megaphone.svg +0 -1
  1231. package/dist/pine-core/svg/menu-alt.svg +0 -1
  1232. package/dist/pine-core/svg/menu-bordered.svg +0 -1
  1233. package/dist/pine-core/svg/menu.svg +0 -1
  1234. package/dist/pine-core/svg/merge.svg +0 -1
  1235. package/dist/pine-core/svg/microphone-off.svg +0 -1
  1236. package/dist/pine-core/svg/microphone.svg +0 -1
  1237. package/dist/pine-core/svg/monitor-03-tone.svg +0 -1
  1238. package/dist/pine-core/svg/monitor-filled.svg +0 -1
  1239. package/dist/pine-core/svg/monitor.svg +0 -1
  1240. package/dist/pine-core/svg/more-menu-filled.svg +0 -1
  1241. package/dist/pine-core/svg/more-menu.svg +0 -1
  1242. package/dist/pine-core/svg/move-left.svg +0 -1
  1243. package/dist/pine-core/svg/move-right.svg +0 -1
  1244. package/dist/pine-core/svg/multi-pay.svg +0 -1
  1245. package/dist/pine-core/svg/newsletter-2.svg +0 -1
  1246. package/dist/pine-core/svg/newsletter.svg +0 -1
  1247. package/dist/pine-core/svg/one-off-session.svg +0 -1
  1248. package/dist/pine-core/svg/one-time.svg +0 -1
  1249. package/dist/pine-core/svg/packages.svg +0 -1
  1250. package/dist/pine-core/svg/pause-circle.svg +0 -1
  1251. package/dist/pine-core/svg/pause.svg +0 -1
  1252. package/dist/pine-core/svg/payout.svg +0 -1
  1253. package/dist/pine-core/svg/pen.svg +0 -1
  1254. package/dist/pine-core/svg/phone-02-tone.svg +0 -1
  1255. package/dist/pine-core/svg/phone-portrait.svg +0 -1
  1256. package/dist/pine-core/svg/phone-toolbar-filled.svg +0 -1
  1257. package/dist/pine-core/svg/phone-toolbar.svg +0 -1
  1258. package/dist/pine-core/svg/play-circle.svg +0 -1
  1259. package/dist/pine-core/svg/play-outline.svg +0 -1
  1260. package/dist/pine-core/svg/play-store.svg +0 -1
  1261. package/dist/pine-core/svg/play.svg +0 -1
  1262. package/dist/pine-core/svg/plug.svg +0 -1
  1263. package/dist/pine-core/svg/premium.svg +0 -1
  1264. package/dist/pine-core/svg/present.svg +0 -1
  1265. package/dist/pine-core/svg/preview-off.svg +0 -1
  1266. package/dist/pine-core/svg/preview-on.svg +0 -1
  1267. package/dist/pine-core/svg/product-filled.svg +0 -1
  1268. package/dist/pine-core/svg/product.svg +0 -1
  1269. package/dist/pine-core/svg/question-circle.svg +0 -1
  1270. package/dist/pine-core/svg/quote.svg +0 -1
  1271. package/dist/pine-core/svg/redo.svg +0 -1
  1272. package/dist/pine-core/svg/refresh.svg +0 -1
  1273. package/dist/pine-core/svg/remove-circle.svg +0 -1
  1274. package/dist/pine-core/svg/remove.svg +0 -1
  1275. package/dist/pine-core/svg/rename.svg +0 -1
  1276. package/dist/pine-core/svg/reset-password.svg +0 -1
  1277. package/dist/pine-core/svg/restore.svg +0 -1
  1278. package/dist/pine-core/svg/right-small.svg +0 -1
  1279. package/dist/pine-core/svg/rocket-filled.svg +0 -1
  1280. package/dist/pine-core/svg/rocket.svg +0 -1
  1281. package/dist/pine-core/svg/round-dollar.svg +0 -1
  1282. package/dist/pine-core/svg/rows.svg +0 -1
  1283. package/dist/pine-core/svg/scissor.svg +0 -1
  1284. package/dist/pine-core/svg/screen-share-off.svg +0 -1
  1285. package/dist/pine-core/svg/screen-share-on.svg +0 -1
  1286. package/dist/pine-core/svg/search-md-tone.svg +0 -1
  1287. package/dist/pine-core/svg/search-small.svg +0 -1
  1288. package/dist/pine-core/svg/search.svg +0 -1
  1289. package/dist/pine-core/svg/send-message.svg +0 -1
  1290. package/dist/pine-core/svg/sequences.svg +0 -1
  1291. package/dist/pine-core/svg/settings-01-tone.svg +0 -1
  1292. package/dist/pine-core/svg/share.svg +0 -1
  1293. package/dist/pine-core/svg/skipped.svg +0 -1
  1294. package/dist/pine-core/svg/slash-divider.svg +0 -1
  1295. package/dist/pine-core/svg/speaker.svg +0 -1
  1296. package/dist/pine-core/svg/stack.svg +0 -1
  1297. package/dist/pine-core/svg/star.svg +0 -1
  1298. package/dist/pine-core/svg/stars-01-tone.svg +0 -1
  1299. package/dist/pine-core/svg/stop.svg +0 -1
  1300. package/dist/pine-core/svg/stopwatch.svg +0 -1
  1301. package/dist/pine-core/svg/strikethrough.svg +0 -1
  1302. package/dist/pine-core/svg/subscript.svg +0 -1
  1303. package/dist/pine-core/svg/subscriptions.svg +0 -1
  1304. package/dist/pine-core/svg/super-admin.svg +0 -1
  1305. package/dist/pine-core/svg/superscript.svg +0 -1
  1306. package/dist/pine-core/svg/sync.svg +0 -1
  1307. package/dist/pine-core/svg/tablet-landscape.svg +0 -1
  1308. package/dist/pine-core/svg/tablet-portrait.svg +0 -1
  1309. package/dist/pine-core/svg/tag-filled.svg +0 -1
  1310. package/dist/pine-core/svg/tag.svg +0 -1
  1311. package/dist/pine-core/svg/text-styles.svg +0 -1
  1312. package/dist/pine-core/svg/theme-store-filled.svg +0 -1
  1313. package/dist/pine-core/svg/theme-store.svg +0 -1
  1314. package/dist/pine-core/svg/thumb-down-filled.svg +0 -1
  1315. package/dist/pine-core/svg/thumb-down.svg +0 -1
  1316. package/dist/pine-core/svg/thumb-up-filled.svg +0 -1
  1317. package/dist/pine-core/svg/thumb-up.svg +0 -1
  1318. package/dist/pine-core/svg/trash.svg +0 -1
  1319. package/dist/pine-core/svg/trophy-filled.svg +0 -1
  1320. package/dist/pine-core/svg/trophy.svg +0 -1
  1321. package/dist/pine-core/svg/underline.svg +0 -1
  1322. package/dist/pine-core/svg/undo.svg +0 -1
  1323. package/dist/pine-core/svg/unlock.svg +0 -1
  1324. package/dist/pine-core/svg/unmapped.svg +0 -1
  1325. package/dist/pine-core/svg/up-small.svg +0 -1
  1326. package/dist/pine-core/svg/upload.svg +0 -1
  1327. package/dist/pine-core/svg/url.svg +0 -1
  1328. package/dist/pine-core/svg/user-circle-filled.svg +0 -1
  1329. package/dist/pine-core/svg/user-circle.svg +0 -1
  1330. package/dist/pine-core/svg/user-filled.svg +0 -1
  1331. package/dist/pine-core/svg/user-star-filled.svg +0 -1
  1332. package/dist/pine-core/svg/user-star.svg +0 -1
  1333. package/dist/pine-core/svg/user.svg +0 -1
  1334. package/dist/pine-core/svg/users-02-tone.svg +0 -1
  1335. package/dist/pine-core/svg/users-alt.svg +0 -1
  1336. package/dist/pine-core/svg/users-filled.svg +0 -1
  1337. package/dist/pine-core/svg/users.svg +0 -1
  1338. package/dist/pine-core/svg/video-off.svg +0 -1
  1339. package/dist/pine-core/svg/video-on.svg +0 -1
  1340. package/dist/pine-core/svg/warning-filled.svg +0 -1
  1341. package/dist/pine-core/svg/warning.svg +0 -1
  1342. package/dist/pine-core/svg/window-paragraph.svg +0 -1
  1343. package/dist/pine-core/svg/world.svg +0 -1
  1344. package/dist/pine-core/svg/wrench.svg +0 -1
  1345. package/dist/types/stories/_helpers/index.d.ts +0 -12
  1346. package/loader/package.json +0 -11
@@ -0,0 +1,1066 @@
1
+ import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-CTLu1TM4.js';
2
+ import { a as autoUpdate, c as computePosition, o as offset, f as flip, s as shift, b as size } from './floating-ui.dom-DDtwbwIl.js';
3
+ import { d as debounceEvent } from './utils-tJa4KYNO.js';
4
+ import { i as isSpecTest, a as assignDescription, m as messageId } from './form-BuRbS7Hp.js';
5
+ import { e as enlarge, b as danger } from './index-Bu9gFIxM.js';
6
+ import { f as formatMessage, p as pluralize } from './i18n-format-BKsJZTyn.js';
7
+
8
+ const pdsMultiselectCss = () => `:host{display:block}:host([aria-disabled=true]) .pds-multiselect__trigger{background:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-disabled);cursor:not-allowed}:host([aria-disabled=true]) .pds-multiselect__icon{color:var(--pine-color-text-disabled)}.pds-multiselect{position:relative}.pds-multiselect__label{color:var(--pine-color-text-label);display:block;font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing);-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}.pds-multiselect__wrapper{position:relative}.pds-multiselect__trigger{-ms-flex-align:center;align-items:center;background:var(--pine-color-background-container);border:var(--pine-border);border-radius:var(--pine-dimension-125);cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-medium);gap:var(--pine-dimension-xs);-ms-flex-pack:justify;justify-content:space-between;letter-spacing:var(--pine-letter-spacing);min-height:var(--pine-dimension-450);padding:var(--pine-dimension-xs) var(--pine-dimension-sm);position:relative;text-align:start;-webkit-transition:border-color var(--pine-motion-duration-base) ease, -webkit-box-shadow var(--pine-motion-duration-base) ease;transition:border-color var(--pine-motion-duration-base) ease, -webkit-box-shadow var(--pine-motion-duration-base) ease;transition:border-color var(--pine-motion-duration-base) ease, box-shadow var(--pine-motion-duration-base) ease;transition:border-color var(--pine-motion-duration-base) ease, box-shadow var(--pine-motion-duration-base) ease, -webkit-box-shadow var(--pine-motion-duration-base) ease;width:100%}.pds-multiselect__trigger:hover:not(.pds-multiselect__trigger--disabled){border-color:var(--pine-color-border-hover)}.pds-multiselect__trigger:focus:not(.pds-multiselect__trigger--disabled){border-color:var(--pine-color-border-active);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-multiselect__trigger.pds-multiselect__trigger--open{border-color:var(--pine-color-border-active)}.pds-multiselect__trigger.pds-multiselect__trigger--invalid{background-color:var(--pine-color-red-050);border-color:var(--pine-color-border-danger)}.pds-multiselect__trigger.pds-multiselect__trigger--invalid:focus{outline-color:var(--pine-color-focus-ring-danger)}.pds-multiselect__trigger.pds-multiselect__trigger--disabled{background:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-disabled);cursor:not-allowed}.pds-multiselect__trigger-text{color:var(--pine-color-text-strong);-ms-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pds-multiselect__trigger-text.pds-multiselect__trigger-text--placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__trigger--disabled .pds-multiselect__trigger-text{color:var(--pine-color-text-disabled)}.pds-multiselect__icon{color:var(--pine-color-icon);-ms-flex-negative:var(--pine-dimension-none);flex-shrink:var(--pine-dimension-none)}.pds-multiselect__pill-list{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:var(--pine-dimension-2xs)}.pds-multiselect__pill-list--inline{-ms-flex:1;flex:1;min-width:0}.pds-multiselect__pill-list--below{-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs)}.pds-multiselect__pill-overflow{color:var(--pine-color-text-muted);font:var(--pine-typography-body-sm-medium);white-space:nowrap}.pds-multiselect__trigger--pill-inline{-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:var(--pine-dimension-2xs);min-height:var(--pine-dimension-450);padding:var(--pine-dimension-2xs) var(--pine-dimension-sm)}.pds-multiselect__trigger--pill-inline.pds-multiselect__trigger--open{border-color:var(--pine-color-border-active)}.pds-multiselect__trigger--pill-inline:focus-within:not(.pds-multiselect__trigger--disabled){border-color:var(--pine-color-border-active);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-multiselect__trigger--pill-inline.pds-multiselect__trigger--invalid:focus-within{outline-color:var(--pine-color-focus-ring-danger)}.pds-multiselect__pill-toggle{-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border-width:0;cursor:pointer;display:-ms-flexbox;display:flex;padding:0}.pds-multiselect__pill-toggle:focus{outline:3px solid transparent}.pds-multiselect__trigger--disabled .pds-multiselect__pill-toggle{cursor:not-allowed;pointer-events:none}.pds-multiselect__panel{background:var(--pine-color-background-overlay);border-radius:var(--pine-dimension-125);-webkit-box-shadow:var(--pine-box-shadow);box-shadow:var(--pine-box-shadow);-webkit-box-sizing:border-box;box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;position:absolute;z-index:var(--pine-z-index-raised)}.pds-multiselect__search{-ms-flex-align:center;align-items:center;-webkit-border-after:var(--pine-border);border-block-end:var(--pine-border);border-block-end-color:var(--pine-color-border-subtle);display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs);padding:var(--pine-dimension-xs) var(--pine-dimension-sm)}.pds-multiselect__search pds-icon{color:var(--pine-color-text-muted);-ms-flex-negative:var(--pine-dimension-none);flex-shrink:var(--pine-dimension-none)}.pds-multiselect__search-input{background:transparent;border:var(--pine-dimension-none);color:var(--pine-color-text-strong);-ms-flex:1;flex:1;font:var(--pine-typography-body);letter-spacing:var(--pine-letter-spacing);min-width:var(--pine-dimension-none);outline:none}.pds-multiselect__search-input::-webkit-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__search-input::-moz-placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__search-input:-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__search-input::-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__search-input::placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__selected-section{-webkit-border-after:var(--pine-border);border-block-end:var(--pine-border);border-block-end-color:var(--pine-color-border-subtle);padding:var(--pine-dimension-xs)}.pds-multiselect__selected-list{list-style:none;margin:var(--pine-dimension-none);padding:var(--pine-dimension-none)}.pds-multiselect__selected-item{color:var(--pine-color-text-strong);font:var(--pine-typography-body);letter-spacing:var(--pine-letter-spacing);overflow:hidden;padding:var(--pine-dimension-2xs) var(--pine-dimension-xs);text-overflow:ellipsis;white-space:nowrap}.pds-multiselect__listbox{background:transparent;border:var(--pine-dimension-none);-webkit-box-sizing:border-box;box-sizing:border-box;list-style:none;margin:var(--pine-dimension-none);overflow-y:auto;padding:var(--pine-dimension-xs)}.pds-multiselect__group-header{color:var(--pine-color-text-muted);display:block;font:var(--pine-typography-body-sm-medium);letter-spacing:var(--pine-letter-spacing);padding:var(--pine-dimension-sm) var(--pine-dimension-xs) var(--pine-dimension-2xs);text-transform:uppercase}.pds-multiselect__listbox>li:first-child>.pds-multiselect__group-header{-webkit-padding-before:var(--pine-dimension-xs);padding-block-start:var(--pine-dimension-xs)}.pds-multiselect__group-list{list-style:none;margin:var(--pine-dimension-none);padding:var(--pine-dimension-none)}.pds-multiselect__option{-ms-flex-align:center;align-items:center;background:transparent;border-radius:var(--pine-dimension-xs);cursor:pointer;display:-ms-flexbox;display:flex;padding:var(--pine-dimension-2xs) var(--pine-dimension-xs);-webkit-transition:background 0.15s;transition:background 0.15s}.pds-multiselect__option pds-checkbox{pointer-events:none;width:100%}.pds-multiselect__option:hover:not(.pds-multiselect__option--disabled),.pds-multiselect__option.pds-multiselect__option--highlighted:not(.pds-multiselect__option--disabled){background:var(--pine-color-background-muted)}.pds-multiselect__option.pds-multiselect__option--disabled{cursor:not-allowed;opacity:0.5}.pds-multiselect__option:focus-visible{outline:var(--pine-dimension-none)}.pds-multiselect__create-option{color:var(--pine-color-text-strong);width:100%}.pds-multiselect__create-option pds-icon{color:var(--pine-color-text-muted);-ms-flex-negative:var(--pine-dimension-none);flex-shrink:var(--pine-dimension-none)}.pds-multiselect__empty,.pds-multiselect__loading{-ms-flex-align:center;align-items:center;color:var(--pine-color-text-muted);display:-ms-flexbox;display:flex;font:var(--pine-typography-body);-ms-flex-pack:center;justify-content:center;padding:var(--pine-dimension-sm)}.pds-multiselect__load-more{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding:var(--pine-dimension-xs)}.pds-multiselect__helper{color:var(--pine-color-text-message);font:var(--pine-typography-body-sm-medium);-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs);-webkit-margin-start:var(--pine-dimension-none);margin-inline-start:var(--pine-dimension-none)}.pds-multiselect__error{-ms-flex-align:start;align-items:flex-start;color:var(--pine-color-text-message-danger);display:-ms-flexbox;display:flex;font:var(--pine-typography-body-sm-medium);gap:var(--pine-dimension-2xs);-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs);-webkit-margin-start:var(--pine-dimension-none);margin-inline-start:var(--pine-dimension-none)}.pds-multiselect__error pds-icon{-ms-flex-negative:var(--pine-dimension-none);flex-shrink:var(--pine-dimension-none);-webkit-margin-before:var(--pine-dimension-025);margin-block-start:var(--pine-dimension-025)}.visually-hidden{border:var(--pine-dimension-none);clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:var(--pine-dimension-none);position:absolute;white-space:nowrap;width:1px}`;
9
+
10
+ const PdsMultiselect = class {
11
+ constructor(hostRef) {
12
+ registerInstance(this, hostRef);
13
+ this.pdsMultiselectChange = createEvent(this, "pdsMultiselectChange");
14
+ this.pdsMultiselectSearch = createEvent(this, "pdsMultiselectSearch");
15
+ this.pdsMultiselectLoadOptions = createEvent(this, "pdsMultiselectLoadOptions");
16
+ this.pdsMultiselectCreate = createEvent(this, "pdsMultiselectCreate");
17
+ this.pdsMultiselectDismiss = createEvent(this, "pdsMultiselectDismiss");
18
+ /**
19
+ * Placeholder text for the input field. Pass a translated string to localize it; defaults to English.
20
+ * @defaultValue 'Select...'
21
+ */
22
+ this.placeholder = 'Select...';
23
+ /**
24
+ * Placeholder text for the search input inside the dropdown panel. Pass a translated string to localize it; defaults to English.
25
+ * @defaultValue 'Find...'
26
+ */
27
+ this.searchPlaceholder = 'Find...';
28
+ /**
29
+ * Accessible label for the search input. Pass a translated string to localize it; defaults to English.
30
+ * @defaultValue 'Search options'
31
+ */
32
+ this.searchOptionsLabel = 'Search options';
33
+ /**
34
+ * Accessible label for the selected-items region. Pass a translated string to localize it; defaults to English.
35
+ * @defaultValue 'Selected items'
36
+ */
37
+ this.selectedItemsLabel = 'Selected items';
38
+ /**
39
+ * Accessible label for the options listbox (falls back to this when `label` is unset). Pass a translated string to localize it; defaults to English.
40
+ * @defaultValue 'Options'
41
+ */
42
+ this.optionsLabel = 'Options';
43
+ /**
44
+ * Text shown when no options match the search. Pass a translated string to localize it; defaults to English.
45
+ * @defaultValue 'No options found'
46
+ */
47
+ this.noOptionsFoundLabel = 'No options found';
48
+ /**
49
+ * Visible label for the create-new-option row. Pass a translated string to localize it; `{text}` is interpolated.
50
+ * @defaultValue 'Add "{text}"'
51
+ */
52
+ this.createOptionLabel = 'Add "{text}"';
53
+ /**
54
+ * Accessible label for the create-new-option row. Pass a translated string to localize it; `{text}` is interpolated.
55
+ * @defaultValue 'Create new tag: {text}'
56
+ */
57
+ this.createOptionAriaLabel = 'Create new tag: {text}';
58
+ /**
59
+ * Screen-reader announcement when an item is removed. Pass a translated string to localize it; `{item}` is interpolated.
60
+ * @defaultValue '{item} removed'
61
+ */
62
+ this.itemRemovedLabel = '{item} removed';
63
+ /**
64
+ * Accessible label for the remove button on each selected-item pill. Pass a translated string to localize it; defaults to English.
65
+ * @defaultValue 'Remove'
66
+ */
67
+ this.pillRemoveLabel = 'Remove';
68
+ /**
69
+ * Singular form of the selected-count trigger text. Pass a translated string to localize it; `{count}` is interpolated.
70
+ * @defaultValue '{count} item'
71
+ */
72
+ this.selectedCountLabelOne = '{count} item';
73
+ /**
74
+ * Plural (and fallback) form of the selected-count trigger text — used for English and any locale whose selected plural category isn't supplied via `selectedCountLabels`. Pass a translated string to localize it; `{count}` is interpolated.
75
+ * @defaultValue '{count} items'
76
+ */
77
+ this.selectedCountLabelOther = '{count} items';
78
+ /**
79
+ * Whether to close the panel after an option is selected.
80
+ * Defaults to `false` (panel stays open for multi-select).
81
+ */
82
+ this.closePanelOnSelect = false;
83
+ /**
84
+ * Array of selected option values.
85
+ */
86
+ this.value = [];
87
+ /**
88
+ * Determines whether or not the multiselect is disabled.
89
+ */
90
+ this.disabled = false;
91
+ /**
92
+ * HTTP method for async requests.
93
+ */
94
+ this.asyncMethod = 'GET';
95
+ /**
96
+ * Debounce delay in milliseconds for search/fetch.
97
+ */
98
+ this.debounce = 300;
99
+ /**
100
+ * Timeout in milliseconds for async fetch requests.
101
+ */
102
+ this.fetchTimeout = 30000;
103
+ /**
104
+ * Maximum height of the dropdown before scrolling.
105
+ */
106
+ this.maxHeight = '300px';
107
+ /**
108
+ * Width of the trigger button (and reference for dropdown positioning).
109
+ */
110
+ this.triggerWidth = '100%';
111
+ /**
112
+ * Minimum width of the dropdown panel.
113
+ */
114
+ this.minWidth = '250px';
115
+ /**
116
+ * Visually hides the label but keeps it accessible.
117
+ */
118
+ this.hideLabel = false;
119
+ /**
120
+ * Hides the selected items summary section in the dropdown panel.
121
+ */
122
+ this.hideSelectedItems = false;
123
+ /**
124
+ * Display mode for selected items outside the dropdown panel.
125
+ * `'count'` shows "N item(s)" text in the trigger (default). `'pill'` renders
126
+ * selected items as dismissible pds-chip tags.
127
+ * @default 'count'
128
+ */
129
+ this.selectedDisplay = 'count';
130
+ /**
131
+ * Position of pill chips when `selectedDisplay` is `'pill'`.
132
+ * `'inline'` places chips inside the trigger; `'below'` places chips in a
133
+ * flex-wrap row directly below the trigger.
134
+ * @default 'inline'
135
+ */
136
+ this.pillPosition = 'inline';
137
+ /**
138
+ * Maximum chips shown inline before collapsing to a "+N more" badge.
139
+ * Only applies when `selectedDisplay='pill'` and `pillPosition='inline'`.
140
+ * @default 3
141
+ */
142
+ this.maxInlinePills = 3;
143
+ /**
144
+ * If true, the multiselect is required.
145
+ */
146
+ this.required = false;
147
+ /**
148
+ * Whether the component is currently loading async options.
149
+ */
150
+ this.loading = false;
151
+ /**
152
+ * CSRF header name for authenticated requests. Defaults to `X-CSRF-Token`.
153
+ */
154
+ this.csrfHeaderName = 'X-CSRF-Token';
155
+ // Internal state
156
+ this.isOpen = false;
157
+ this.searchQuery = '';
158
+ this.highlightedIndex = -1;
159
+ this.internalOptions = [];
160
+ this.selectedItems = [];
161
+ this.currentPage = 1;
162
+ this.hasMore = false;
163
+ this.creating = false;
164
+ this.removalAnnouncement = '';
165
+ // Flag to prevent focusout from closing during open transition
166
+ this.isOpening = false;
167
+ // Flag to suppress dismiss event when panel closes due to selection (not user dismissal)
168
+ this.isClosingViaSelection = false;
169
+ // Flag to track if initial async fetch has been triggered (prevents double fetch)
170
+ this.initialAsyncFetchTriggered = false;
171
+ // Flag to track if value changed during loading and needs resolution after fetch completes
172
+ this.pendingUnresolvedFetch = false;
173
+ this.handleTriggerClick = (e) => {
174
+ if (this.disabled)
175
+ return;
176
+ // In inline-pill mode, ignore clicks that originated inside a pds-chip.
177
+ // Chip close-button clicks are handled by handlePillRemove; chip body clicks should not toggle the panel.
178
+ if (e && this.selectedDisplay === 'pill' && this.pillPosition === 'inline') {
179
+ const fromChip = e.composedPath().some(el => { var _a; return ((_a = el.tagName) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'pds-chip'; });
180
+ if (fromChip)
181
+ return;
182
+ }
183
+ if (this.isOpen) {
184
+ this.closeDropdown();
185
+ }
186
+ else {
187
+ this.openDropdown();
188
+ }
189
+ };
190
+ this.handleTriggerKeyDown = (e) => {
191
+ // Ignore keydown events that bubbled from child elements (e.g. chip close buttons).
192
+ // Only handle keys when the trigger itself is the event target.
193
+ if (e.target !== this.triggerEl)
194
+ return;
195
+ switch (e.key) {
196
+ case 'ArrowDown':
197
+ case 'ArrowUp':
198
+ case 'Enter':
199
+ case ' ':
200
+ e.preventDefault();
201
+ if (!this.isOpen) {
202
+ this.openDropdown();
203
+ }
204
+ break;
205
+ }
206
+ };
207
+ this.handleSearchInputChange = (e) => {
208
+ const target = e.target;
209
+ this.searchQuery = target.value;
210
+ this.highlightedIndex = -1;
211
+ // Emit search event for consumer-managed async
212
+ this.pdsMultiselectSearch.emit({ query: this.searchQuery });
213
+ // Fetch from async URL if configured
214
+ if (this.asyncUrl) {
215
+ this.debouncedFetchAsyncOptions(this.searchQuery, 1);
216
+ }
217
+ };
218
+ this.handleSearchInputKeyDown = (e) => {
219
+ var _a, _b, _c;
220
+ const filteredOptions = this.getFilteredOptions();
221
+ switch (e.key) {
222
+ case 'ArrowDown': {
223
+ e.preventDefault();
224
+ let nextIndex = this.highlightedIndex + 1;
225
+ while (nextIndex < filteredOptions.length && ((_a = filteredOptions[nextIndex]) === null || _a === void 0 ? void 0 : _a.disabled)) {
226
+ nextIndex++;
227
+ }
228
+ if (nextIndex < filteredOptions.length) {
229
+ this.highlightedIndex = nextIndex;
230
+ this.scrollOptionIntoView();
231
+ }
232
+ break;
233
+ }
234
+ case 'ArrowUp': {
235
+ e.preventDefault();
236
+ // Clamp to 0 so ArrowUp from uninitialised state (-1) attempts the first option;
237
+ // stays at -1 if that option is disabled.
238
+ let prevIndex = Math.max(this.highlightedIndex - 1, 0);
239
+ while (prevIndex > 0 && ((_b = filteredOptions[prevIndex]) === null || _b === void 0 ? void 0 : _b.disabled)) {
240
+ prevIndex--;
241
+ }
242
+ if (!((_c = filteredOptions[prevIndex]) === null || _c === void 0 ? void 0 : _c.disabled)) {
243
+ this.highlightedIndex = prevIndex;
244
+ this.scrollOptionIntoView();
245
+ }
246
+ break;
247
+ }
248
+ case 'Enter':
249
+ e.preventDefault();
250
+ if (this.highlightedIndex >= 0) {
251
+ const option = filteredOptions[this.highlightedIndex];
252
+ if (option) {
253
+ this.selectOption(option);
254
+ }
255
+ }
256
+ break;
257
+ // Escape is handled by the global @Listen('keydown') handler
258
+ case 'Tab':
259
+ this.closeDropdown();
260
+ break;
261
+ }
262
+ };
263
+ this.handleContainerFocusOut = () => {
264
+ // Use setTimeout to delay the check - this allows click events and focus transitions to complete
265
+ // before we decide to close the dropdown
266
+ setTimeout(() => {
267
+ var _a;
268
+ // Don't close if we're in the middle of opening, already closed,
269
+ // or closing due to a selection (not a user dismissal)
270
+ if (!this.isOpen || this.isOpening || this.isClosingViaSelection)
271
+ return;
272
+ const activeElement = document.activeElement;
273
+ // Check if focus is within our component's shadow root
274
+ const isInShadowRoot = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.contains(activeElement);
275
+ // Also check if focus is on the host element itself
276
+ const isOnHost = activeElement === this.el;
277
+ if (!isInShadowRoot && !isOnHost) {
278
+ this.pdsMultiselectDismiss.emit();
279
+ this.closeDropdown();
280
+ }
281
+ }, 0);
282
+ };
283
+ this.handleOptionMouseDown = (option) => (e) => {
284
+ e.preventDefault(); // Prevent focus change
285
+ this.toggleOption(option);
286
+ };
287
+ this.handleOptionMouseEnter = (index, option) => () => {
288
+ if (option.disabled)
289
+ return;
290
+ this.highlightedIndex = index;
291
+ };
292
+ this.handleScroll = (e) => {
293
+ if (!this.asyncUrl || !this.hasMore || this.loading)
294
+ return;
295
+ const target = e.target;
296
+ const scrollBottom = target.scrollHeight - target.scrollTop - target.clientHeight;
297
+ // Load more when near bottom (within 50px)
298
+ if (scrollBottom < 50) {
299
+ this.pdsMultiselectLoadOptions.emit({
300
+ query: this.searchQuery,
301
+ page: this.currentPage + 1,
302
+ });
303
+ this.debouncedFetchAsyncOptions(this.searchQuery, this.currentPage + 1);
304
+ }
305
+ };
306
+ this.handlePillRemove = (item) => () => {
307
+ var _a, _b;
308
+ if (this.disabled)
309
+ return;
310
+ const optionId = String(item.id);
311
+ this.value = this.value.filter(v => v !== optionId);
312
+ this.syncSelectedItems();
313
+ this.pdsMultiselectChange.emit({ values: this.value, items: this.selectedItems });
314
+ // Clear first so screen readers re-announce even when the same item is removed twice
315
+ this.removalAnnouncement = '';
316
+ queueMicrotask(() => { this.removalAnnouncement = formatMessage(this.itemRemovedLabel, { item: item.text }); });
317
+ this.isClosingViaSelection = true;
318
+ if (this.isOpen) {
319
+ (_a = this.searchInputEl) === null || _a === void 0 ? void 0 : _a.focus();
320
+ }
321
+ else {
322
+ (_b = this.triggerEl) === null || _b === void 0 ? void 0 : _b.focus();
323
+ }
324
+ setTimeout(() => { this.isClosingViaSelection = false; }, 0);
325
+ };
326
+ }
327
+ connectedCallback() {
328
+ // Initialize ElementInternals for form association (only once per element instance)
329
+ if (this.el.attachInternals && !this.internals) {
330
+ this.internals = this.el.attachInternals();
331
+ }
332
+ }
333
+ componentWillLoad() {
334
+ this.originalSearchEmitter = this.pdsMultiselectSearch;
335
+ this.syncSelectedItems();
336
+ }
337
+ componentDidLoad() {
338
+ this.setupDebounce();
339
+ this.setupMutationObserver();
340
+ this.setupSlotChangeListener();
341
+ this.updateFormValue();
342
+ // Ensure preselected values sync after DOM is fully ready
343
+ // This handles cases where slot content loads after initial render (e.g., in docs/MDX)
344
+ requestAnimationFrame(() => {
345
+ this.updateOptionsFromSlot();
346
+ this.syncSelectedItems();
347
+ });
348
+ // If we have preselected values and asyncUrl, fetch options to resolve them
349
+ // This ensures the trigger shows "X items" instead of placeholder on initial render
350
+ if (this.asyncUrl && this.ensureValueArray().length > 0) {
351
+ this.initialAsyncFetchTriggered = true;
352
+ this.fetchOptions('', 1);
353
+ }
354
+ }
355
+ setupSlotChangeListener() {
356
+ var _a;
357
+ const slot = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot:not([name])');
358
+ if (slot) {
359
+ slot.addEventListener('slotchange', () => {
360
+ this.updateOptionsFromSlot();
361
+ this.syncSelectedItems();
362
+ });
363
+ // Also call it immediately in case content is already slotted
364
+ this.updateOptionsFromSlot();
365
+ }
366
+ }
367
+ disconnectedCallback() {
368
+ var _a, _b;
369
+ (_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
370
+ (_b = this.cleanupAutoUpdate) === null || _b === void 0 ? void 0 : _b.call(this);
371
+ this.clearAsyncFetchState();
372
+ }
373
+ setupDebounce() {
374
+ const { pdsMultiselectSearch, debounce, originalSearchEmitter } = this;
375
+ this.pdsMultiselectSearch = debounce === undefined
376
+ ? originalSearchEmitter !== null && originalSearchEmitter !== void 0 ? originalSearchEmitter : pdsMultiselectSearch
377
+ : debounceEvent(pdsMultiselectSearch, debounce);
378
+ }
379
+ valueChanged(newValue) {
380
+ // Handle JSON string values (from HTML attributes)
381
+ if (typeof newValue === 'string') {
382
+ try {
383
+ const parsed = JSON.parse(newValue);
384
+ if (Array.isArray(parsed)) {
385
+ this.value = parsed;
386
+ return; // The assignment will trigger this watcher again with the array
387
+ }
388
+ }
389
+ catch (_a) {
390
+ // Not valid JSON, treat as single value
391
+ this.value = newValue ? [newValue] : [];
392
+ return;
393
+ }
394
+ }
395
+ this.syncSelectedItems();
396
+ this.updateFormValue();
397
+ // If using asyncUrl and some values couldn't be resolved, fetch options
398
+ // This handles programmatic value changes where the options aren't loaded yet
399
+ if (this.asyncUrl) {
400
+ const valueArray = this.ensureValueArray();
401
+ const hasUnresolvedValues = valueArray.length > 0 && this.selectedItems.length < valueArray.length;
402
+ if (hasUnresolvedValues) {
403
+ if (this.loading) {
404
+ // Mark that we need to re-check after current fetch completes
405
+ this.pendingUnresolvedFetch = true;
406
+ }
407
+ else {
408
+ this.fetchOptions('', 1);
409
+ }
410
+ }
411
+ }
412
+ }
413
+ optionsChanged() {
414
+ if (this.options) {
415
+ this.internalOptions = [...this.options];
416
+ }
417
+ }
418
+ internalOptionsChanged() {
419
+ // Re-sync selected items when options become available
420
+ // This handles the case where value is set before options are loaded (e.g., from slot)
421
+ this.syncSelectedItems();
422
+ }
423
+ /**
424
+ * Sets focus on the trigger button.
425
+ */
426
+ async setFocus() {
427
+ var _a;
428
+ (_a = this.triggerEl) === null || _a === void 0 ? void 0 : _a.focus();
429
+ }
430
+ /**
431
+ * Clears all selected values and resets the component.
432
+ */
433
+ async clear() {
434
+ const hadValues = this.value.length > 0 || this.searchQuery !== '';
435
+ this.value = [];
436
+ this.searchQuery = '';
437
+ this.syncSelectedItems();
438
+ this.updateFormValue();
439
+ if (hadValues) {
440
+ this.pdsMultiselectChange.emit({ values: [], items: [] });
441
+ }
442
+ }
443
+ /**
444
+ * Handle global keyboard events for accessibility.
445
+ * Closes dropdown on Escape key press regardless of focus location.
446
+ */
447
+ handleWindowKeyDown(event) {
448
+ var _a;
449
+ if (!this.isOpen)
450
+ return;
451
+ if (event.key === 'Escape') {
452
+ event.preventDefault();
453
+ this.pdsMultiselectDismiss.emit();
454
+ this.closeDropdown();
455
+ (_a = this.triggerEl) === null || _a === void 0 ? void 0 : _a.focus();
456
+ }
457
+ }
458
+ setupMutationObserver() {
459
+ this.observer = new MutationObserver(() => {
460
+ this.updateOptionsFromSlot();
461
+ });
462
+ this.observer.observe(this.el, {
463
+ childList: true,
464
+ subtree: true,
465
+ });
466
+ }
467
+ updateOptionsFromSlot() {
468
+ var _a;
469
+ const slot = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot:not([name])');
470
+ if (!slot)
471
+ return;
472
+ const options = [];
473
+ slot.assignedElements({ flatten: true }).forEach(el => {
474
+ var _a;
475
+ if (el.tagName === 'OPTGROUP') {
476
+ const optgroup = el;
477
+ const groupLabel = optgroup.label;
478
+ const groupDisabled = optgroup.disabled;
479
+ optgroup.querySelectorAll('option').forEach((opt) => {
480
+ var _a;
481
+ const option = {
482
+ id: opt.value,
483
+ text: ((_a = opt.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || opt.value,
484
+ disabled: opt.disabled || groupDisabled || undefined,
485
+ };
486
+ if (groupLabel) {
487
+ option.group = groupLabel;
488
+ }
489
+ options.push(option);
490
+ });
491
+ }
492
+ else if (el.tagName === 'OPTION') {
493
+ const opt = el;
494
+ options.push({
495
+ id: opt.value,
496
+ text: ((_a = opt.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || opt.value,
497
+ disabled: opt.disabled || undefined,
498
+ });
499
+ }
500
+ });
501
+ // Only update if we actually found options AND we're not using async/external options
502
+ // Don't clear internalOptions if slot returns empty (might be mid-DOM-update)
503
+ if (options.length > 0 && !this.asyncUrl && !this.options) {
504
+ this.internalOptions = options;
505
+ }
506
+ }
507
+ clearAsyncFetchState() {
508
+ var _a;
509
+ if (this.fetchDebounceTimer !== undefined) {
510
+ window.clearTimeout(this.fetchDebounceTimer);
511
+ this.fetchDebounceTimer = undefined;
512
+ }
513
+ if (this.fetchTimeoutTimer !== undefined) {
514
+ window.clearTimeout(this.fetchTimeoutTimer);
515
+ this.fetchTimeoutTimer = undefined;
516
+ }
517
+ (_a = this.abortController) === null || _a === void 0 ? void 0 : _a.abort();
518
+ this.abortController = undefined;
519
+ }
520
+ debouncedFetchAsyncOptions(query, page = 1) {
521
+ var _a;
522
+ if (!this.asyncUrl)
523
+ return;
524
+ if (this.fetchDebounceTimer !== undefined) {
525
+ window.clearTimeout(this.fetchDebounceTimer);
526
+ }
527
+ const delay = Math.max(0, (_a = this.debounce) !== null && _a !== void 0 ? _a : 0);
528
+ this.fetchDebounceTimer = window.setTimeout(() => {
529
+ this.fetchDebounceTimer = undefined;
530
+ this.fetchOptions(query, page);
531
+ }, delay);
532
+ }
533
+ syncSelectedItems() {
534
+ // Ensure value is an array (may be string from HTML attribute)
535
+ const valueArray = this.ensureValueArray();
536
+ const allOptions = this.getAllOptions();
537
+ // Map values to options, preserving existing selectedItems for values not yet in options
538
+ const newSelectedItems = [];
539
+ const existingItemsMap = new Map(this.selectedItems.map(item => [String(item.id), item]));
540
+ valueArray.forEach(val => {
541
+ // First try to find in available options
542
+ const option = allOptions.find(opt => String(opt.id) === String(val));
543
+ if (option) {
544
+ newSelectedItems.push(option);
545
+ }
546
+ else if (existingItemsMap.has(String(val))) {
547
+ // If not in options but exists in current selectedItems, preserve it
548
+ // This handles the case where async data hasn't loaded yet or newly created items
549
+ newSelectedItems.push(existingItemsMap.get(String(val)));
550
+ }
551
+ // Note: We don't create placeholders for values without matching options.
552
+ // This ensures selectedItems remains empty until options are actually loaded,
553
+ // which matches the expected behavior for preselected values.
554
+ });
555
+ this.selectedItems = newSelectedItems;
556
+ }
557
+ ensureValueArray() {
558
+ // Handle JSON string values passed via HTML attribute
559
+ if (typeof this.value === 'string') {
560
+ try {
561
+ const parsed = JSON.parse(this.value);
562
+ if (Array.isArray(parsed)) {
563
+ this.value = parsed;
564
+ return parsed;
565
+ }
566
+ }
567
+ catch (_a) {
568
+ // Not valid JSON, treat as single value
569
+ const singleValue = this.value;
570
+ this.value = singleValue ? [singleValue] : [];
571
+ return this.value;
572
+ }
573
+ }
574
+ return Array.isArray(this.value) ? this.value : [];
575
+ }
576
+ getAllOptions() {
577
+ return this.options || this.internalOptions;
578
+ }
579
+ getFilteredOptions() {
580
+ const allOptions = this.getAllOptions();
581
+ const query = this.searchQuery.toLowerCase();
582
+ const filtered = allOptions.filter(opt => {
583
+ // Filter by search query only - don't filter out selected items
584
+ if (query) {
585
+ return opt.text.toLowerCase().includes(query);
586
+ }
587
+ return true;
588
+ });
589
+ // Add create option if enabled and no matches found
590
+ if (this.createUrl && this.searchQuery.trim() && filtered.length === 0) {
591
+ return [{
592
+ id: '__create__',
593
+ text: this.searchQuery.trim(),
594
+ isCreateOption: true,
595
+ }];
596
+ }
597
+ return filtered;
598
+ }
599
+ updateFormValue() {
600
+ var _a;
601
+ if (isSpecTest())
602
+ return;
603
+ if ((_a = this.internals) === null || _a === void 0 ? void 0 : _a.setFormValue) {
604
+ // Ensure value is an array before iterating
605
+ const valueArray = this.ensureValueArray();
606
+ // Submit as multiple values with same name (native select multiple behavior)
607
+ const formData = new FormData();
608
+ valueArray.forEach(val => {
609
+ if (this.name) {
610
+ formData.append(this.name, val);
611
+ }
612
+ });
613
+ this.internals.setFormValue(formData);
614
+ // Update validity state for required validation
615
+ if (this.required && valueArray.length === 0) {
616
+ this.internals.setValidity({ valueMissing: true }, 'Please select at least one option.', this.triggerEl);
617
+ }
618
+ else {
619
+ this.internals.setValidity({});
620
+ }
621
+ }
622
+ }
623
+ getCsrfToken() {
624
+ // Use provided token if available
625
+ if (this.csrfToken) {
626
+ return this.csrfToken;
627
+ }
628
+ // Try to read from meta tag
629
+ const metaTag = document.querySelector('meta[name="csrf-token"]');
630
+ return (metaTag === null || metaTag === void 0 ? void 0 : metaTag.content) || null;
631
+ }
632
+ async fetchOptions(query, page = 1) {
633
+ var _a;
634
+ if (!this.asyncUrl)
635
+ return;
636
+ // Abort any pending request and clear existing timeout
637
+ (_a = this.abortController) === null || _a === void 0 ? void 0 : _a.abort();
638
+ if (this.fetchTimeoutTimer !== undefined) {
639
+ window.clearTimeout(this.fetchTimeoutTimer);
640
+ this.fetchTimeoutTimer = undefined;
641
+ }
642
+ this.abortController = new AbortController();
643
+ this.loading = true;
644
+ // Set up timeout for fetch request
645
+ this.fetchTimeoutTimer = window.setTimeout(() => {
646
+ var _a;
647
+ (_a = this.abortController) === null || _a === void 0 ? void 0 : _a.abort();
648
+ this.fetchTimeoutTimer = undefined;
649
+ }, this.fetchTimeout);
650
+ try {
651
+ // Guard against malformed asyncUrl
652
+ let url;
653
+ try {
654
+ url = new URL(this.asyncUrl, window.location.origin);
655
+ }
656
+ catch (urlError) {
657
+ throw new TypeError(`Invalid asyncUrl: ${this.asyncUrl}`);
658
+ }
659
+ if (this.asyncMethod === 'GET') {
660
+ url.searchParams.set('search', query);
661
+ url.searchParams.set('page', String(page));
662
+ }
663
+ const csrfToken = this.getCsrfToken();
664
+ const headers = {
665
+ 'Content-Type': 'application/json',
666
+ 'Accept': 'application/json',
667
+ };
668
+ if (csrfToken) {
669
+ const headerName = this.csrfHeaderName || 'X-CSRF-Token';
670
+ headers[headerName] = csrfToken;
671
+ }
672
+ const response = await fetch(url.toString(), Object.assign({ method: this.asyncMethod, signal: this.abortController.signal, headers }, (this.asyncMethod === 'POST' && {
673
+ body: JSON.stringify({ search: query, page }),
674
+ })));
675
+ // Clear timeout on successful response
676
+ if (this.fetchTimeoutTimer !== undefined) {
677
+ window.clearTimeout(this.fetchTimeoutTimer);
678
+ this.fetchTimeoutTimer = undefined;
679
+ }
680
+ if (!response.ok)
681
+ throw new Error('Failed to fetch options');
682
+ const data = await response.json();
683
+ const formattedResults = data.results.map(item => {
684
+ // If formatResult is provided, use it
685
+ if (this.formatResult) {
686
+ return this.formatResult(item);
687
+ }
688
+ // Defensive check: ensure item is an object before spreading
689
+ if (typeof item === 'object' && item !== null) {
690
+ return Object.assign({ id: item.id, text: item.text }, item);
691
+ }
692
+ // Handle primitives by converting to safe shape
693
+ return {
694
+ id: String(item),
695
+ text: String(item),
696
+ };
697
+ });
698
+ if (page === 1) {
699
+ this.internalOptions = formattedResults;
700
+ }
701
+ else {
702
+ this.internalOptions = [...this.internalOptions, ...formattedResults];
703
+ }
704
+ this.hasMore = data.totalCount ? this.internalOptions.length < data.totalCount : false;
705
+ this.currentPage = page;
706
+ }
707
+ catch (error) {
708
+ // Clear timeout on error
709
+ if (this.fetchTimeoutTimer !== undefined) {
710
+ window.clearTimeout(this.fetchTimeoutTimer);
711
+ this.fetchTimeoutTimer = undefined;
712
+ }
713
+ if (error.name !== 'AbortError') {
714
+ console.error('PdsMultiselect: Failed to fetch options', error);
715
+ }
716
+ }
717
+ finally {
718
+ this.loading = false;
719
+ // Check if value changed during loading and still has unresolved values
720
+ if (this.pendingUnresolvedFetch) {
721
+ this.pendingUnresolvedFetch = false;
722
+ const valueArray = this.ensureValueArray();
723
+ const hasUnresolvedValues = valueArray.length > 0 && this.selectedItems.length < valueArray.length;
724
+ if (hasUnresolvedValues) {
725
+ this.fetchOptions('', 1);
726
+ }
727
+ }
728
+ }
729
+ }
730
+ async createOption(query) {
731
+ if (!this.createUrl || !query.trim())
732
+ return;
733
+ // Reentrancy guard: prevent duplicate POSTs if creation is already in-flight
734
+ if (this.creating)
735
+ return;
736
+ this.creating = true;
737
+ try {
738
+ const url = new URL(this.createUrl, window.location.origin);
739
+ const csrfToken = this.getCsrfToken();
740
+ const headers = {
741
+ 'Content-Type': 'application/json',
742
+ 'Accept': 'application/json',
743
+ };
744
+ if (csrfToken) {
745
+ const headerName = this.csrfHeaderName || 'X-CSRF-Token';
746
+ headers[headerName] = csrfToken;
747
+ }
748
+ const response = await fetch(url.toString(), {
749
+ method: 'POST',
750
+ headers,
751
+ body: JSON.stringify({ text: query.trim() }),
752
+ });
753
+ if (!response.ok)
754
+ throw new Error('Failed to create option');
755
+ const data = await response.json();
756
+ const newOption = Object.assign({ id: data.id, text: data.text }, data);
757
+ // Add to internal options first
758
+ this.internalOptions = [...this.internalOptions, newOption];
759
+ // Select the new option
760
+ this.value = [...this.value, String(newOption.id)];
761
+ // Sync selected items to update display with new option
762
+ this.syncSelectedItems();
763
+ // Emit create event
764
+ this.pdsMultiselectCreate.emit({
765
+ query: query.trim(),
766
+ newOption,
767
+ });
768
+ // Emit change event with synced items
769
+ this.pdsMultiselectChange.emit({
770
+ values: this.value,
771
+ items: this.selectedItems,
772
+ });
773
+ // Clear search and keep dropdown open
774
+ this.searchQuery = '';
775
+ this.highlightedIndex = -1;
776
+ // Focus back on search input
777
+ requestAnimationFrame(() => {
778
+ var _a;
779
+ (_a = this.searchInputEl) === null || _a === void 0 ? void 0 : _a.focus();
780
+ });
781
+ }
782
+ catch (error) {
783
+ console.error('PdsMultiselect: Failed to create option', error);
784
+ }
785
+ finally {
786
+ this.creating = false;
787
+ }
788
+ }
789
+ openDropdown() {
790
+ if (this.disabled)
791
+ return;
792
+ this.isOpening = true;
793
+ this.isOpen = true;
794
+ this.highlightedIndex = -1;
795
+ // Trigger initial fetch if async (skip if already fetching from componentDidLoad)
796
+ if (this.asyncUrl && this.internalOptions.length === 0 && !this.initialAsyncFetchTriggered) {
797
+ this.debouncedFetchAsyncOptions(this.searchQuery, 1);
798
+ }
799
+ // Reset the flag so subsequent opens can fetch if needed
800
+ this.initialAsyncFetchTriggered = false;
801
+ requestAnimationFrame(() => {
802
+ var _a;
803
+ this.positionDropdown();
804
+ // Focus the search input after the panel is positioned
805
+ (_a = this.searchInputEl) === null || _a === void 0 ? void 0 : _a.focus();
806
+ // Clear the opening flag after focus has moved
807
+ setTimeout(() => {
808
+ this.isOpening = false;
809
+ }, 50);
810
+ });
811
+ }
812
+ closeDropdown() {
813
+ this.isOpen = false;
814
+ this.highlightedIndex = -1;
815
+ this.searchQuery = '';
816
+ // Reset the selection-close guard after the focusout handler's setTimeout has resolved
817
+ if (this.isClosingViaSelection) {
818
+ setTimeout(() => {
819
+ this.isClosingViaSelection = false;
820
+ }, 0);
821
+ }
822
+ // Clean up auto-update
823
+ if (this.cleanupAutoUpdate) {
824
+ this.cleanupAutoUpdate();
825
+ this.cleanupAutoUpdate = undefined;
826
+ }
827
+ }
828
+ positionDropdown() {
829
+ if (!this.containerEl || !this.panelEl)
830
+ return;
831
+ // In inline pill mode, triggerEl is the small chevron button — use the full-width
832
+ // wrapper div as the Floating UI reference so the panel aligns with the whole trigger.
833
+ const referenceEl = this.pillInlineTriggerEl || this.triggerEl || this.containerEl;
834
+ const { minWidth, panelWidth } = this;
835
+ const updatePosition = () => {
836
+ computePosition(referenceEl, this.panelEl, {
837
+ placement: 'bottom-start',
838
+ strategy: 'absolute',
839
+ middleware: [
840
+ offset(12),
841
+ flip(),
842
+ shift({ padding: 8 }),
843
+ size({
844
+ apply: ({ rects, elements }) => {
845
+ Object.assign(elements.floating.style, {
846
+ width: panelWidth !== null && panelWidth !== void 0 ? panelWidth : `${rects.reference.width}px`,
847
+ minWidth,
848
+ });
849
+ },
850
+ }),
851
+ ],
852
+ }).then(({ x, y }) => {
853
+ if (this.panelEl) {
854
+ this.panelEl.style.left = `${x}px`;
855
+ this.panelEl.style.top = `${y}px`;
856
+ }
857
+ });
858
+ };
859
+ // Initial position
860
+ updatePosition();
861
+ // Set up auto-update for window resize and scroll
862
+ const cleanupAutoUpdate = autoUpdate(referenceEl, this.panelEl, updatePosition);
863
+ this.cleanupAutoUpdate = () => {
864
+ cleanupAutoUpdate();
865
+ this.clearAsyncFetchState();
866
+ };
867
+ }
868
+ scrollOptionIntoView() {
869
+ requestAnimationFrame(() => {
870
+ var _a;
871
+ const highlighted = (_a = this.listboxEl) === null || _a === void 0 ? void 0 : _a.querySelector(`[data-index="${this.highlightedIndex}"]`);
872
+ highlighted === null || highlighted === void 0 ? void 0 : highlighted.scrollIntoView({ block: 'nearest', behavior: 'smooth' });
873
+ });
874
+ }
875
+ toggleOption(option) {
876
+ var _a, _b;
877
+ if (option.disabled)
878
+ return;
879
+ // Handle create option
880
+ if (option.isCreateOption) {
881
+ // Prevent multiple create calls while one is in-flight
882
+ if (!this.creating) {
883
+ this.createOption(this.searchQuery);
884
+ }
885
+ return;
886
+ }
887
+ const optionId = String(option.id);
888
+ const isSelected = this.value.includes(optionId);
889
+ if (isSelected) {
890
+ // Remove from selection
891
+ this.value = this.value.filter(v => v !== optionId);
892
+ }
893
+ else {
894
+ // Add to selection
895
+ if (this.maxSelections && this.value.length >= this.maxSelections) {
896
+ return;
897
+ }
898
+ this.value = [...this.value, optionId];
899
+ }
900
+ // Sync selected items to ensure no duplicates and accurate state
901
+ this.syncSelectedItems();
902
+ // Emit change event with synced items
903
+ this.pdsMultiselectChange.emit({
904
+ values: this.value,
905
+ items: this.selectedItems,
906
+ });
907
+ if (this.closePanelOnSelect) {
908
+ this.isClosingViaSelection = true;
909
+ this.closeDropdown();
910
+ (_a = this.triggerEl) === null || _a === void 0 ? void 0 : _a.focus();
911
+ }
912
+ else {
913
+ // Keep focus on search input, don't close dropdown
914
+ (_b = this.searchInputEl) === null || _b === void 0 ? void 0 : _b.focus();
915
+ }
916
+ }
917
+ selectOption(option) {
918
+ // For keyboard navigation - toggle the option
919
+ this.toggleOption(option);
920
+ }
921
+ getGroupedRenderItems(filteredOptions) {
922
+ const items = [];
923
+ let currentGroup = null;
924
+ filteredOptions.forEach((option, index) => {
925
+ const group = option.group;
926
+ if (group !== undefined) {
927
+ if (!currentGroup || currentGroup.group !== group) {
928
+ currentGroup = { type: 'group', group, options: [] };
929
+ items.push(currentGroup);
930
+ }
931
+ currentGroup.options.push({ option, index });
932
+ }
933
+ else {
934
+ currentGroup = null;
935
+ items.push({ type: 'option', option, index });
936
+ }
937
+ });
938
+ return items;
939
+ }
940
+ renderOption(option, index, valueArray) {
941
+ const isSelected = valueArray.includes(String(option.id));
942
+ const isCreateOption = option.isCreateOption;
943
+ const isDisabled = option.disabled;
944
+ const isHighlighted = index === this.highlightedIndex && !isCreateOption;
945
+ const optionId = `${this.componentId}-option-${index}`;
946
+ const isCreateDisabled = isCreateOption && this.creating;
947
+ return (h("li", { key: String(option.id), id: optionId, class: {
948
+ 'pds-multiselect__option': true,
949
+ 'pds-multiselect__option--highlighted': isHighlighted,
950
+ 'pds-multiselect__option--selected': isSelected,
951
+ 'pds-multiselect__option--create': isCreateOption,
952
+ 'pds-multiselect__option--disabled': isDisabled || isCreateDisabled,
953
+ }, role: "option", "aria-selected": isSelected ? 'true' : 'false', "aria-disabled": isDisabled || isCreateDisabled ? 'true' : undefined, "aria-label": isCreateOption ? formatMessage(this.createOptionAriaLabel, { text: option.text }) : undefined, "data-index": index, onMouseDown: this.handleOptionMouseDown(option), onMouseEnter: this.handleOptionMouseEnter(index, option) }, isCreateOption ? (h("pds-box", { class: "pds-multiselect__create-option", "align-items": "center", gap: "xs" }, h("pds-icon", { name: "add", size: "small" }), h("pds-text", null, formatMessage(this.createOptionLabel, { text: option.text })))) : (h("pds-checkbox", { componentId: `${this.componentId}-checkbox-${index}`, checked: isSelected, label: option.text, disabled: isDisabled, style: { pointerEvents: 'none' } }))));
954
+ }
955
+ renderSelectedItemsList() {
956
+ if (this.hideSelectedItems || this.selectedItems.length === 0)
957
+ return null;
958
+ return (h("div", { class: "pds-multiselect__selected-section" }, h("ul", { class: "pds-multiselect__selected-list", role: "list" }, this.selectedItems.map(item => (h("li", { key: String(item.id), class: "pds-multiselect__selected-item" }, item.text))))));
959
+ }
960
+ renderDropdown() {
961
+ if (!this.isOpen)
962
+ return null;
963
+ const filteredOptions = this.getFilteredOptions();
964
+ const valueArray = this.ensureValueArray();
965
+ const hasSlottedEmpty = !!this.el.querySelector('[slot="empty"]');
966
+ const hasSlottedLoading = !!this.el.querySelector('[slot="loading"]');
967
+ return (h("div", { class: "pds-multiselect__panel", ref: el => (this.panelEl = el), style: { minWidth: this.minWidth } }, h("div", { class: "pds-multiselect__search" }, h("pds-icon", { name: "search", size: "small" }), h("input", { ref: el => (this.searchInputEl = el), type: "text", class: "pds-multiselect__search-input", placeholder: this.searchPlaceholder, value: this.searchQuery, "aria-label": this.searchOptionsLabel, "aria-controls": `${this.componentId}-listbox`, "aria-activedescendant": this.highlightedIndex >= 0 ? `${this.componentId}-option-${this.highlightedIndex}` : undefined, role: "combobox", "aria-haspopup": "listbox", "aria-expanded": "true", "aria-autocomplete": "list", autocomplete: "off", onInput: this.handleSearchInputChange, onKeyDown: this.handleSearchInputKeyDown })), this.renderSelectedItemsList(), h("ul", { class: "pds-multiselect__listbox", role: "listbox", "aria-multiselectable": "true", "aria-label": this.label || this.optionsLabel, id: `${this.componentId}-listbox`, ref: el => (this.listboxEl = el), style: { maxHeight: this.maxHeight }, onScroll: this.handleScroll }, this.loading && (h("li", { class: "pds-multiselect__loading", role: "presentation" }, hasSlottedLoading ? (h("slot", { name: "loading" })) : (h("pds-loader", { size: "small" })))), !this.loading && filteredOptions.length === 0 && (h("li", { class: "pds-multiselect__empty", role: "presentation" }, hasSlottedEmpty ? (h("slot", { name: "empty" })) : (h("span", null, this.noOptionsFoundLabel)))), this.getGroupedRenderItems(filteredOptions).map((item, itemIndex) => {
968
+ if (item.type === 'group') {
969
+ return (h("li", { key: `group-${itemIndex}`, role: "group", "aria-label": item.group, class: "pds-multiselect__group" }, h("span", { class: "pds-multiselect__group-header", "aria-hidden": "true" }, item.group), h("ul", { class: "pds-multiselect__group-list", role: "presentation" }, item.options.map(({ option, index }) => this.renderOption(option, index, valueArray)))));
970
+ }
971
+ return this.renderOption(item.option, item.index, valueArray);
972
+ }), this.hasMore && !this.loading && (h("li", { class: "pds-multiselect__load-more", role: "presentation" }, h("pds-loader", { size: "small" }))))));
973
+ }
974
+ renderInlinePills() {
975
+ const hasSelections = this.selectedItems.length > 0;
976
+ if (!hasSelections) {
977
+ return (h("span", { class: "pds-multiselect__trigger-text pds-multiselect__trigger-text--placeholder" }, this.placeholder || 'Select...'));
978
+ }
979
+ const variant = this.disabled ? 'text' : 'tag';
980
+ const visibleItems = this.selectedItems.slice(0, Math.max(1, this.maxInlinePills));
981
+ const overflowCount = this.selectedItems.length - visibleItems.length;
982
+ return (h("div", { class: "pds-multiselect__pill-list pds-multiselect__pill-list--inline", "aria-label": this.selectedItemsLabel }, visibleItems.map(item => (h("pds-chip", { key: String(item.id), "component-id": `${this.componentId}-pill-${item.id}`, variant: variant, size: "sm", sentiment: "neutral", "dismiss-label": this.pillRemoveLabel, onPdsTagCloseClick: this.handlePillRemove(item) }, item.text))), overflowCount > 0 && (h("span", { class: "pds-multiselect__pill-overflow" }, "+", overflowCount))));
983
+ }
984
+ renderBelowPills() {
985
+ if (this.selectedItems.length === 0)
986
+ return null;
987
+ const variant = this.disabled ? 'text' : 'tag';
988
+ return (h("div", { class: "pds-multiselect__pill-list pds-multiselect__pill-list--below", "aria-label": this.selectedItemsLabel }, this.selectedItems.map(item => (h("pds-chip", { key: String(item.id), "component-id": `${this.componentId}-pill-${item.id}`, variant: variant, size: "md", sentiment: "neutral", "dismiss-label": this.pillRemoveLabel, onPdsTagCloseClick: this.handlePillRemove(item) }, item.text)))));
989
+ }
990
+ getTriggerText() {
991
+ const count = this.selectedItems.length;
992
+ if (count === 0 || (this.selectedDisplay === 'pill' && this.pillPosition === 'below')) {
993
+ // Fall back to a non-empty string: the trigger's accessible name comes from
994
+ // this text, so an empty/undefined placeholder must never leave it nameless
995
+ // (WCAG 4.1.2). The prop is localizable; this last-resort default is not.
996
+ return this.placeholder || 'Select...';
997
+ }
998
+ return pluralize(this.el, count, this.resolveCountForms());
999
+ }
1000
+ /**
1001
+ * The `one`/`other` props are the ergonomic English defaults; `selectedCountLabels`
1002
+ * (object or JSON-string attribute) layers full CLDR forms on top for locales
1003
+ * that need `few`/`many`/`two`/`zero`. Malformed JSON degrades to the defaults.
1004
+ */
1005
+ resolveCountForms() {
1006
+ const base = {
1007
+ one: this.selectedCountLabelOne,
1008
+ other: this.selectedCountLabelOther,
1009
+ };
1010
+ const extra = this.selectedCountLabels;
1011
+ if (!extra)
1012
+ return base;
1013
+ if (typeof extra === 'string') {
1014
+ try {
1015
+ const parsed = JSON.parse(extra);
1016
+ return parsed && typeof parsed === 'object' ? Object.assign(Object.assign({}, base), parsed) : base;
1017
+ }
1018
+ catch (_a) {
1019
+ return base; // not valid JSON → fall back to the English-shape defaults
1020
+ }
1021
+ }
1022
+ return Object.assign(Object.assign({}, base), extra);
1023
+ }
1024
+ render() {
1025
+ const hasSelections = this.selectedItems.length > 0;
1026
+ return (h(Host, { key: 'a27955b3d4a7723dc92af6f9f1a4c56da5d392c6', "aria-disabled": this.disabled ? 'true' : null }, h("div", { key: '1bbea74e106b5980427610e9cbe27e2b686ded53', class: "pds-multiselect", onFocusout: this.handleContainerFocusOut }, this.label && (h("label", { key: 'a1ba54ded3bf660d234ce430056d1b70058d4e47', id: `${this.componentId}-label`, htmlFor: this.componentId, class: {
1027
+ 'pds-multiselect__label': true,
1028
+ 'visually-hidden': this.hideLabel,
1029
+ } }, this.label)), h("div", { key: '74cd041317c59042452dd9b3e9d165cc88be5ecc', class: "pds-multiselect__wrapper", ref: el => (this.containerEl = el), style: { width: this.triggerWidth } }, this.selectedDisplay === 'pill' && this.pillPosition === 'inline' ? (h("div", { ref: el => (this.pillInlineTriggerEl = el || undefined), part: "trigger", class: {
1030
+ 'pds-multiselect__trigger': true,
1031
+ 'pds-multiselect__trigger--open': this.isOpen,
1032
+ 'pds-multiselect__trigger--disabled': this.disabled,
1033
+ 'pds-multiselect__trigger--invalid': this.invalid || !!this.errorMessage,
1034
+ 'pds-multiselect__trigger--has-value': hasSelections,
1035
+ 'pds-multiselect__trigger--pill-inline': true,
1036
+ }, onClick: this.handleTriggerClick }, this.renderInlinePills(), h("button", { ref: el => (this.triggerEl = el), type: "button", id: this.componentId, part: "pill-toggle", class: "pds-multiselect__pill-toggle", disabled: this.disabled, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-haspopup": "listbox", "aria-labelledby": this.label ? `${this.componentId}-label` : undefined, "aria-required": this.required ? 'true' : undefined, "aria-describedby": assignDescription(this.componentId, this.invalid || !!this.errorMessage, this.helperMessage, this.errorMessage), "aria-invalid": this.invalid || !!this.errorMessage ? 'true' : undefined, onKeyDown: this.handleTriggerKeyDown }, h("pds-icon", { class: "pds-multiselect__icon", icon: enlarge })))) : (h("button", { ref: el => (this.triggerEl = el), type: "button", part: "trigger", class: {
1037
+ 'pds-multiselect__trigger': true,
1038
+ 'pds-multiselect__trigger--open': this.isOpen,
1039
+ 'pds-multiselect__trigger--disabled': this.disabled,
1040
+ 'pds-multiselect__trigger--invalid': this.invalid || !!this.errorMessage,
1041
+ 'pds-multiselect__trigger--has-value': hasSelections,
1042
+ }, id: this.componentId, disabled: this.disabled, "aria-required": this.required ? 'true' : undefined, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-haspopup": "listbox", "aria-describedby": assignDescription(this.componentId, this.invalid || !!this.errorMessage, this.helperMessage, this.errorMessage), "aria-invalid": this.invalid || !!this.errorMessage ? 'true' : undefined, onClick: this.handleTriggerClick, onKeyDown: this.handleTriggerKeyDown }, h("span", { class: {
1043
+ 'pds-multiselect__trigger-text': true,
1044
+ 'pds-multiselect__trigger-text--placeholder': !hasSelections || (this.selectedDisplay === 'pill' && this.pillPosition === 'below'),
1045
+ } }, this.getTriggerText()), h("pds-icon", { class: "pds-multiselect__icon", icon: enlarge }))), this.renderDropdown()), this.selectedDisplay === 'pill' && this.pillPosition === 'below' && this.renderBelowPills(), h("span", { key: '38056bbcdb0b865e9fe0b249ac3ee2c2adb089d4', class: "visually-hidden", "aria-live": "polite", "aria-atomic": "true" }, this.removalAnnouncement), this.helperMessage && !(this.errorMessage && this.errorMessage.length > 0) && (h("p", { key: '7a576cc360d15e0ec38aeb4c0665a7308e7b1506', class: "pds-multiselect__helper", id: messageId(this.componentId, 'helper') }, this.helperMessage)), this.errorMessage && (h("p", { key: '7dadb8425fa729316867a6d9ddb49d2553d82308', class: "pds-multiselect__error", id: messageId(this.componentId, 'error') }, h("pds-icon", { key: 'fc295c5b5110b009a1d6372411c1faf32df9b620', icon: danger, size: "small" }), this.errorMessage)), h("div", { key: '173c9f6953442fdedfdfa71264bcc3781b827701', style: { display: 'none' } }, h("slot", { key: 'e31cb390048516ee400d2875ad993cd6ae07b146' })))));
1046
+ }
1047
+ static get formAssociated() { return true; }
1048
+ get el() { return getElement(this); }
1049
+ static get watchers() { return {
1050
+ "debounce": [{
1051
+ "setupDebounce": 0
1052
+ }],
1053
+ "value": [{
1054
+ "valueChanged": 0
1055
+ }],
1056
+ "options": [{
1057
+ "optionsChanged": 0
1058
+ }],
1059
+ "internalOptions": [{
1060
+ "internalOptionsChanged": 0
1061
+ }]
1062
+ }; }
1063
+ };
1064
+ PdsMultiselect.style = pdsMultiselectCss();
1065
+
1066
+ export { PdsMultiselect as pds_multiselect };