@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,2153 @@
1
+ import { h, Host } from "@stencil/core";
2
+ import { computePosition, flip, offset, shift, size, autoUpdate } from "@floating-ui/dom";
3
+ import { debounceEvent } from "../../utils/utils";
4
+ import { isSpecTest, messageId, assignDescription } from "../../utils/form";
5
+ import { danger, enlarge } from "@pine-ds/icons/icons";
6
+ import { formatMessage, pluralize } from "../../i18n";
7
+ /**
8
+ * @slot (default) - Static option elements for the multiselect
9
+ * @slot empty - Custom empty state message when no options match
10
+ * @slot loading - Custom loading indicator
11
+ * @part trigger - The trigger surface that opens the dropdown panel
12
+ * @part pill-toggle - The chevron button inside the inline pill trigger
13
+ */
14
+ export class PdsMultiselect {
15
+ constructor() {
16
+ /**
17
+ * Placeholder text for the input field. Pass a translated string to localize it; defaults to English.
18
+ * @defaultValue 'Select...'
19
+ */
20
+ this.placeholder = 'Select...';
21
+ /**
22
+ * Placeholder text for the search input inside the dropdown panel. Pass a translated string to localize it; defaults to English.
23
+ * @defaultValue 'Find...'
24
+ */
25
+ this.searchPlaceholder = 'Find...';
26
+ /**
27
+ * Accessible label for the search input. Pass a translated string to localize it; defaults to English.
28
+ * @defaultValue 'Search options'
29
+ */
30
+ this.searchOptionsLabel = 'Search options';
31
+ /**
32
+ * Accessible label for the selected-items region. Pass a translated string to localize it; defaults to English.
33
+ * @defaultValue 'Selected items'
34
+ */
35
+ this.selectedItemsLabel = 'Selected items';
36
+ /**
37
+ * Accessible label for the options listbox (falls back to this when `label` is unset). Pass a translated string to localize it; defaults to English.
38
+ * @defaultValue 'Options'
39
+ */
40
+ this.optionsLabel = 'Options';
41
+ /**
42
+ * Text shown when no options match the search. Pass a translated string to localize it; defaults to English.
43
+ * @defaultValue 'No options found'
44
+ */
45
+ this.noOptionsFoundLabel = 'No options found';
46
+ /**
47
+ * Visible label for the create-new-option row. Pass a translated string to localize it; `{text}` is interpolated.
48
+ * @defaultValue 'Add "{text}"'
49
+ */
50
+ this.createOptionLabel = 'Add "{text}"';
51
+ /**
52
+ * Accessible label for the create-new-option row. Pass a translated string to localize it; `{text}` is interpolated.
53
+ * @defaultValue 'Create new tag: {text}'
54
+ */
55
+ this.createOptionAriaLabel = 'Create new tag: {text}';
56
+ /**
57
+ * Screen-reader announcement when an item is removed. Pass a translated string to localize it; `{item}` is interpolated.
58
+ * @defaultValue '{item} removed'
59
+ */
60
+ this.itemRemovedLabel = '{item} removed';
61
+ /**
62
+ * Accessible label for the remove button on each selected-item pill. Pass a translated string to localize it; defaults to English.
63
+ * @defaultValue 'Remove'
64
+ */
65
+ this.pillRemoveLabel = 'Remove';
66
+ /**
67
+ * Singular form of the selected-count trigger text. Pass a translated string to localize it; `{count}` is interpolated.
68
+ * @defaultValue '{count} item'
69
+ */
70
+ this.selectedCountLabelOne = '{count} item';
71
+ /**
72
+ * 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.
73
+ * @defaultValue '{count} items'
74
+ */
75
+ this.selectedCountLabelOther = '{count} items';
76
+ /**
77
+ * Whether to close the panel after an option is selected.
78
+ * Defaults to `false` (panel stays open for multi-select).
79
+ */
80
+ this.closePanelOnSelect = false;
81
+ /**
82
+ * Array of selected option values.
83
+ */
84
+ this.value = [];
85
+ /**
86
+ * Determines whether or not the multiselect is disabled.
87
+ */
88
+ this.disabled = false;
89
+ /**
90
+ * HTTP method for async requests.
91
+ */
92
+ this.asyncMethod = 'GET';
93
+ /**
94
+ * Debounce delay in milliseconds for search/fetch.
95
+ */
96
+ this.debounce = 300;
97
+ /**
98
+ * Timeout in milliseconds for async fetch requests.
99
+ */
100
+ this.fetchTimeout = 30000;
101
+ /**
102
+ * Maximum height of the dropdown before scrolling.
103
+ */
104
+ this.maxHeight = '300px';
105
+ /**
106
+ * Width of the trigger button (and reference for dropdown positioning).
107
+ */
108
+ this.triggerWidth = '100%';
109
+ /**
110
+ * Minimum width of the dropdown panel.
111
+ */
112
+ this.minWidth = '250px';
113
+ /**
114
+ * Visually hides the label but keeps it accessible.
115
+ */
116
+ this.hideLabel = false;
117
+ /**
118
+ * Hides the selected items summary section in the dropdown panel.
119
+ */
120
+ this.hideSelectedItems = false;
121
+ /**
122
+ * Display mode for selected items outside the dropdown panel.
123
+ * `'count'` shows "N item(s)" text in the trigger (default). `'pill'` renders
124
+ * selected items as dismissible pds-chip tags.
125
+ * @default 'count'
126
+ */
127
+ this.selectedDisplay = 'count';
128
+ /**
129
+ * Position of pill chips when `selectedDisplay` is `'pill'`.
130
+ * `'inline'` places chips inside the trigger; `'below'` places chips in a
131
+ * flex-wrap row directly below the trigger.
132
+ * @default 'inline'
133
+ */
134
+ this.pillPosition = 'inline';
135
+ /**
136
+ * Maximum chips shown inline before collapsing to a "+N more" badge.
137
+ * Only applies when `selectedDisplay='pill'` and `pillPosition='inline'`.
138
+ * @default 3
139
+ */
140
+ this.maxInlinePills = 3;
141
+ /**
142
+ * If true, the multiselect is required.
143
+ */
144
+ this.required = false;
145
+ /**
146
+ * Whether the component is currently loading async options.
147
+ */
148
+ this.loading = false;
149
+ /**
150
+ * CSRF header name for authenticated requests. Defaults to `X-CSRF-Token`.
151
+ */
152
+ this.csrfHeaderName = 'X-CSRF-Token';
153
+ // Internal state
154
+ this.isOpen = false;
155
+ this.searchQuery = '';
156
+ this.highlightedIndex = -1;
157
+ this.internalOptions = [];
158
+ this.selectedItems = [];
159
+ this.currentPage = 1;
160
+ this.hasMore = false;
161
+ this.creating = false;
162
+ this.removalAnnouncement = '';
163
+ // Flag to prevent focusout from closing during open transition
164
+ this.isOpening = false;
165
+ // Flag to suppress dismiss event when panel closes due to selection (not user dismissal)
166
+ this.isClosingViaSelection = false;
167
+ // Flag to track if initial async fetch has been triggered (prevents double fetch)
168
+ this.initialAsyncFetchTriggered = false;
169
+ // Flag to track if value changed during loading and needs resolution after fetch completes
170
+ this.pendingUnresolvedFetch = false;
171
+ this.handleTriggerClick = (e) => {
172
+ if (this.disabled)
173
+ return;
174
+ // In inline-pill mode, ignore clicks that originated inside a pds-chip.
175
+ // Chip close-button clicks are handled by handlePillRemove; chip body clicks should not toggle the panel.
176
+ if (e && this.selectedDisplay === 'pill' && this.pillPosition === 'inline') {
177
+ const fromChip = e.composedPath().some(el => { var _a; return ((_a = el.tagName) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'pds-chip'; });
178
+ if (fromChip)
179
+ return;
180
+ }
181
+ if (this.isOpen) {
182
+ this.closeDropdown();
183
+ }
184
+ else {
185
+ this.openDropdown();
186
+ }
187
+ };
188
+ this.handleTriggerKeyDown = (e) => {
189
+ // Ignore keydown events that bubbled from child elements (e.g. chip close buttons).
190
+ // Only handle keys when the trigger itself is the event target.
191
+ if (e.target !== this.triggerEl)
192
+ return;
193
+ switch (e.key) {
194
+ case 'ArrowDown':
195
+ case 'ArrowUp':
196
+ case 'Enter':
197
+ case ' ':
198
+ e.preventDefault();
199
+ if (!this.isOpen) {
200
+ this.openDropdown();
201
+ }
202
+ break;
203
+ }
204
+ };
205
+ this.handleSearchInputChange = (e) => {
206
+ const target = e.target;
207
+ this.searchQuery = target.value;
208
+ this.highlightedIndex = -1;
209
+ // Emit search event for consumer-managed async
210
+ this.pdsMultiselectSearch.emit({ query: this.searchQuery });
211
+ // Fetch from async URL if configured
212
+ if (this.asyncUrl) {
213
+ this.debouncedFetchAsyncOptions(this.searchQuery, 1);
214
+ }
215
+ };
216
+ this.handleSearchInputKeyDown = (e) => {
217
+ var _a, _b, _c;
218
+ const filteredOptions = this.getFilteredOptions();
219
+ switch (e.key) {
220
+ case 'ArrowDown': {
221
+ e.preventDefault();
222
+ let nextIndex = this.highlightedIndex + 1;
223
+ while (nextIndex < filteredOptions.length && ((_a = filteredOptions[nextIndex]) === null || _a === void 0 ? void 0 : _a.disabled)) {
224
+ nextIndex++;
225
+ }
226
+ if (nextIndex < filteredOptions.length) {
227
+ this.highlightedIndex = nextIndex;
228
+ this.scrollOptionIntoView();
229
+ }
230
+ break;
231
+ }
232
+ case 'ArrowUp': {
233
+ e.preventDefault();
234
+ // Clamp to 0 so ArrowUp from uninitialised state (-1) attempts the first option;
235
+ // stays at -1 if that option is disabled.
236
+ let prevIndex = Math.max(this.highlightedIndex - 1, 0);
237
+ while (prevIndex > 0 && ((_b = filteredOptions[prevIndex]) === null || _b === void 0 ? void 0 : _b.disabled)) {
238
+ prevIndex--;
239
+ }
240
+ if (!((_c = filteredOptions[prevIndex]) === null || _c === void 0 ? void 0 : _c.disabled)) {
241
+ this.highlightedIndex = prevIndex;
242
+ this.scrollOptionIntoView();
243
+ }
244
+ break;
245
+ }
246
+ case 'Enter':
247
+ e.preventDefault();
248
+ if (this.highlightedIndex >= 0) {
249
+ const option = filteredOptions[this.highlightedIndex];
250
+ if (option) {
251
+ this.selectOption(option);
252
+ }
253
+ }
254
+ break;
255
+ // Escape is handled by the global @Listen('keydown') handler
256
+ case 'Tab':
257
+ this.closeDropdown();
258
+ break;
259
+ }
260
+ };
261
+ this.handleContainerFocusOut = () => {
262
+ // Use setTimeout to delay the check - this allows click events and focus transitions to complete
263
+ // before we decide to close the dropdown
264
+ setTimeout(() => {
265
+ var _a;
266
+ // Don't close if we're in the middle of opening, already closed,
267
+ // or closing due to a selection (not a user dismissal)
268
+ if (!this.isOpen || this.isOpening || this.isClosingViaSelection)
269
+ return;
270
+ const activeElement = document.activeElement;
271
+ // Check if focus is within our component's shadow root
272
+ const isInShadowRoot = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.contains(activeElement);
273
+ // Also check if focus is on the host element itself
274
+ const isOnHost = activeElement === this.el;
275
+ if (!isInShadowRoot && !isOnHost) {
276
+ this.pdsMultiselectDismiss.emit();
277
+ this.closeDropdown();
278
+ }
279
+ }, 0);
280
+ };
281
+ this.handleOptionMouseDown = (option) => (e) => {
282
+ e.preventDefault(); // Prevent focus change
283
+ this.toggleOption(option);
284
+ };
285
+ this.handleOptionMouseEnter = (index, option) => () => {
286
+ if (option.disabled)
287
+ return;
288
+ this.highlightedIndex = index;
289
+ };
290
+ this.handleScroll = (e) => {
291
+ if (!this.asyncUrl || !this.hasMore || this.loading)
292
+ return;
293
+ const target = e.target;
294
+ const scrollBottom = target.scrollHeight - target.scrollTop - target.clientHeight;
295
+ // Load more when near bottom (within 50px)
296
+ if (scrollBottom < 50) {
297
+ this.pdsMultiselectLoadOptions.emit({
298
+ query: this.searchQuery,
299
+ page: this.currentPage + 1,
300
+ });
301
+ this.debouncedFetchAsyncOptions(this.searchQuery, this.currentPage + 1);
302
+ }
303
+ };
304
+ this.handlePillRemove = (item) => () => {
305
+ var _a, _b;
306
+ if (this.disabled)
307
+ return;
308
+ const optionId = String(item.id);
309
+ this.value = this.value.filter(v => v !== optionId);
310
+ this.syncSelectedItems();
311
+ this.pdsMultiselectChange.emit({ values: this.value, items: this.selectedItems });
312
+ // Clear first so screen readers re-announce even when the same item is removed twice
313
+ this.removalAnnouncement = '';
314
+ queueMicrotask(() => { this.removalAnnouncement = formatMessage(this.itemRemovedLabel, { item: item.text }); });
315
+ this.isClosingViaSelection = true;
316
+ if (this.isOpen) {
317
+ (_a = this.searchInputEl) === null || _a === void 0 ? void 0 : _a.focus();
318
+ }
319
+ else {
320
+ (_b = this.triggerEl) === null || _b === void 0 ? void 0 : _b.focus();
321
+ }
322
+ setTimeout(() => { this.isClosingViaSelection = false; }, 0);
323
+ };
324
+ }
325
+ connectedCallback() {
326
+ // Initialize ElementInternals for form association (only once per element instance)
327
+ if (this.el.attachInternals && !this.internals) {
328
+ this.internals = this.el.attachInternals();
329
+ }
330
+ }
331
+ componentWillLoad() {
332
+ this.originalSearchEmitter = this.pdsMultiselectSearch;
333
+ this.syncSelectedItems();
334
+ }
335
+ componentDidLoad() {
336
+ this.setupDebounce();
337
+ this.setupMutationObserver();
338
+ this.setupSlotChangeListener();
339
+ this.updateFormValue();
340
+ // Ensure preselected values sync after DOM is fully ready
341
+ // This handles cases where slot content loads after initial render (e.g., in docs/MDX)
342
+ requestAnimationFrame(() => {
343
+ this.updateOptionsFromSlot();
344
+ this.syncSelectedItems();
345
+ });
346
+ // If we have preselected values and asyncUrl, fetch options to resolve them
347
+ // This ensures the trigger shows "X items" instead of placeholder on initial render
348
+ if (this.asyncUrl && this.ensureValueArray().length > 0) {
349
+ this.initialAsyncFetchTriggered = true;
350
+ this.fetchOptions('', 1);
351
+ }
352
+ }
353
+ setupSlotChangeListener() {
354
+ var _a;
355
+ const slot = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot:not([name])');
356
+ if (slot) {
357
+ slot.addEventListener('slotchange', () => {
358
+ this.updateOptionsFromSlot();
359
+ this.syncSelectedItems();
360
+ });
361
+ // Also call it immediately in case content is already slotted
362
+ this.updateOptionsFromSlot();
363
+ }
364
+ }
365
+ disconnectedCallback() {
366
+ var _a, _b;
367
+ (_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
368
+ (_b = this.cleanupAutoUpdate) === null || _b === void 0 ? void 0 : _b.call(this);
369
+ this.clearAsyncFetchState();
370
+ }
371
+ setupDebounce() {
372
+ const { pdsMultiselectSearch, debounce, originalSearchEmitter } = this;
373
+ this.pdsMultiselectSearch = debounce === undefined
374
+ ? originalSearchEmitter !== null && originalSearchEmitter !== void 0 ? originalSearchEmitter : pdsMultiselectSearch
375
+ : debounceEvent(pdsMultiselectSearch, debounce);
376
+ }
377
+ valueChanged(newValue) {
378
+ // Handle JSON string values (from HTML attributes)
379
+ if (typeof newValue === 'string') {
380
+ try {
381
+ const parsed = JSON.parse(newValue);
382
+ if (Array.isArray(parsed)) {
383
+ this.value = parsed;
384
+ return; // The assignment will trigger this watcher again with the array
385
+ }
386
+ }
387
+ catch (_a) {
388
+ // Not valid JSON, treat as single value
389
+ this.value = newValue ? [newValue] : [];
390
+ return;
391
+ }
392
+ }
393
+ this.syncSelectedItems();
394
+ this.updateFormValue();
395
+ // If using asyncUrl and some values couldn't be resolved, fetch options
396
+ // This handles programmatic value changes where the options aren't loaded yet
397
+ if (this.asyncUrl) {
398
+ const valueArray = this.ensureValueArray();
399
+ const hasUnresolvedValues = valueArray.length > 0 && this.selectedItems.length < valueArray.length;
400
+ if (hasUnresolvedValues) {
401
+ if (this.loading) {
402
+ // Mark that we need to re-check after current fetch completes
403
+ this.pendingUnresolvedFetch = true;
404
+ }
405
+ else {
406
+ this.fetchOptions('', 1);
407
+ }
408
+ }
409
+ }
410
+ }
411
+ optionsChanged() {
412
+ if (this.options) {
413
+ this.internalOptions = [...this.options];
414
+ }
415
+ }
416
+ internalOptionsChanged() {
417
+ // Re-sync selected items when options become available
418
+ // This handles the case where value is set before options are loaded (e.g., from slot)
419
+ this.syncSelectedItems();
420
+ }
421
+ /**
422
+ * Sets focus on the trigger button.
423
+ */
424
+ async setFocus() {
425
+ var _a;
426
+ (_a = this.triggerEl) === null || _a === void 0 ? void 0 : _a.focus();
427
+ }
428
+ /**
429
+ * Clears all selected values and resets the component.
430
+ */
431
+ async clear() {
432
+ const hadValues = this.value.length > 0 || this.searchQuery !== '';
433
+ this.value = [];
434
+ this.searchQuery = '';
435
+ this.syncSelectedItems();
436
+ this.updateFormValue();
437
+ if (hadValues) {
438
+ this.pdsMultiselectChange.emit({ values: [], items: [] });
439
+ }
440
+ }
441
+ /**
442
+ * Handle global keyboard events for accessibility.
443
+ * Closes dropdown on Escape key press regardless of focus location.
444
+ */
445
+ handleWindowKeyDown(event) {
446
+ var _a;
447
+ if (!this.isOpen)
448
+ return;
449
+ if (event.key === 'Escape') {
450
+ event.preventDefault();
451
+ this.pdsMultiselectDismiss.emit();
452
+ this.closeDropdown();
453
+ (_a = this.triggerEl) === null || _a === void 0 ? void 0 : _a.focus();
454
+ }
455
+ }
456
+ setupMutationObserver() {
457
+ this.observer = new MutationObserver(() => {
458
+ this.updateOptionsFromSlot();
459
+ });
460
+ this.observer.observe(this.el, {
461
+ childList: true,
462
+ subtree: true,
463
+ });
464
+ }
465
+ updateOptionsFromSlot() {
466
+ var _a;
467
+ const slot = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot:not([name])');
468
+ if (!slot)
469
+ return;
470
+ const options = [];
471
+ slot.assignedElements({ flatten: true }).forEach(el => {
472
+ var _a;
473
+ if (el.tagName === 'OPTGROUP') {
474
+ const optgroup = el;
475
+ const groupLabel = optgroup.label;
476
+ const groupDisabled = optgroup.disabled;
477
+ optgroup.querySelectorAll('option').forEach((opt) => {
478
+ var _a;
479
+ const option = {
480
+ id: opt.value,
481
+ text: ((_a = opt.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || opt.value,
482
+ disabled: opt.disabled || groupDisabled || undefined,
483
+ };
484
+ if (groupLabel) {
485
+ option.group = groupLabel;
486
+ }
487
+ options.push(option);
488
+ });
489
+ }
490
+ else if (el.tagName === 'OPTION') {
491
+ const opt = el;
492
+ options.push({
493
+ id: opt.value,
494
+ text: ((_a = opt.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || opt.value,
495
+ disabled: opt.disabled || undefined,
496
+ });
497
+ }
498
+ });
499
+ // Only update if we actually found options AND we're not using async/external options
500
+ // Don't clear internalOptions if slot returns empty (might be mid-DOM-update)
501
+ if (options.length > 0 && !this.asyncUrl && !this.options) {
502
+ this.internalOptions = options;
503
+ }
504
+ }
505
+ clearAsyncFetchState() {
506
+ var _a;
507
+ if (this.fetchDebounceTimer !== undefined) {
508
+ window.clearTimeout(this.fetchDebounceTimer);
509
+ this.fetchDebounceTimer = undefined;
510
+ }
511
+ if (this.fetchTimeoutTimer !== undefined) {
512
+ window.clearTimeout(this.fetchTimeoutTimer);
513
+ this.fetchTimeoutTimer = undefined;
514
+ }
515
+ (_a = this.abortController) === null || _a === void 0 ? void 0 : _a.abort();
516
+ this.abortController = undefined;
517
+ }
518
+ debouncedFetchAsyncOptions(query, page = 1) {
519
+ var _a;
520
+ if (!this.asyncUrl)
521
+ return;
522
+ if (this.fetchDebounceTimer !== undefined) {
523
+ window.clearTimeout(this.fetchDebounceTimer);
524
+ }
525
+ const delay = Math.max(0, (_a = this.debounce) !== null && _a !== void 0 ? _a : 0);
526
+ this.fetchDebounceTimer = window.setTimeout(() => {
527
+ this.fetchDebounceTimer = undefined;
528
+ this.fetchOptions(query, page);
529
+ }, delay);
530
+ }
531
+ syncSelectedItems() {
532
+ // Ensure value is an array (may be string from HTML attribute)
533
+ const valueArray = this.ensureValueArray();
534
+ const allOptions = this.getAllOptions();
535
+ // Map values to options, preserving existing selectedItems for values not yet in options
536
+ const newSelectedItems = [];
537
+ const existingItemsMap = new Map(this.selectedItems.map(item => [String(item.id), item]));
538
+ valueArray.forEach(val => {
539
+ // First try to find in available options
540
+ const option = allOptions.find(opt => String(opt.id) === String(val));
541
+ if (option) {
542
+ newSelectedItems.push(option);
543
+ }
544
+ else if (existingItemsMap.has(String(val))) {
545
+ // If not in options but exists in current selectedItems, preserve it
546
+ // This handles the case where async data hasn't loaded yet or newly created items
547
+ newSelectedItems.push(existingItemsMap.get(String(val)));
548
+ }
549
+ // Note: We don't create placeholders for values without matching options.
550
+ // This ensures selectedItems remains empty until options are actually loaded,
551
+ // which matches the expected behavior for preselected values.
552
+ });
553
+ this.selectedItems = newSelectedItems;
554
+ }
555
+ ensureValueArray() {
556
+ // Handle JSON string values passed via HTML attribute
557
+ if (typeof this.value === 'string') {
558
+ try {
559
+ const parsed = JSON.parse(this.value);
560
+ if (Array.isArray(parsed)) {
561
+ this.value = parsed;
562
+ return parsed;
563
+ }
564
+ }
565
+ catch (_a) {
566
+ // Not valid JSON, treat as single value
567
+ const singleValue = this.value;
568
+ this.value = singleValue ? [singleValue] : [];
569
+ return this.value;
570
+ }
571
+ }
572
+ return Array.isArray(this.value) ? this.value : [];
573
+ }
574
+ getAllOptions() {
575
+ return this.options || this.internalOptions;
576
+ }
577
+ getFilteredOptions() {
578
+ const allOptions = this.getAllOptions();
579
+ const query = this.searchQuery.toLowerCase();
580
+ const filtered = allOptions.filter(opt => {
581
+ // Filter by search query only - don't filter out selected items
582
+ if (query) {
583
+ return opt.text.toLowerCase().includes(query);
584
+ }
585
+ return true;
586
+ });
587
+ // Add create option if enabled and no matches found
588
+ if (this.createUrl && this.searchQuery.trim() && filtered.length === 0) {
589
+ return [{
590
+ id: '__create__',
591
+ text: this.searchQuery.trim(),
592
+ isCreateOption: true,
593
+ }];
594
+ }
595
+ return filtered;
596
+ }
597
+ updateFormValue() {
598
+ var _a;
599
+ if (isSpecTest())
600
+ return;
601
+ if ((_a = this.internals) === null || _a === void 0 ? void 0 : _a.setFormValue) {
602
+ // Ensure value is an array before iterating
603
+ const valueArray = this.ensureValueArray();
604
+ // Submit as multiple values with same name (native select multiple behavior)
605
+ const formData = new FormData();
606
+ valueArray.forEach(val => {
607
+ if (this.name) {
608
+ formData.append(this.name, val);
609
+ }
610
+ });
611
+ this.internals.setFormValue(formData);
612
+ // Update validity state for required validation
613
+ if (this.required && valueArray.length === 0) {
614
+ this.internals.setValidity({ valueMissing: true }, 'Please select at least one option.', this.triggerEl);
615
+ }
616
+ else {
617
+ this.internals.setValidity({});
618
+ }
619
+ }
620
+ }
621
+ getCsrfToken() {
622
+ // Use provided token if available
623
+ if (this.csrfToken) {
624
+ return this.csrfToken;
625
+ }
626
+ // Try to read from meta tag
627
+ const metaTag = document.querySelector('meta[name="csrf-token"]');
628
+ return (metaTag === null || metaTag === void 0 ? void 0 : metaTag.content) || null;
629
+ }
630
+ async fetchOptions(query, page = 1) {
631
+ var _a;
632
+ if (!this.asyncUrl)
633
+ return;
634
+ // Abort any pending request and clear existing timeout
635
+ (_a = this.abortController) === null || _a === void 0 ? void 0 : _a.abort();
636
+ if (this.fetchTimeoutTimer !== undefined) {
637
+ window.clearTimeout(this.fetchTimeoutTimer);
638
+ this.fetchTimeoutTimer = undefined;
639
+ }
640
+ this.abortController = new AbortController();
641
+ this.loading = true;
642
+ // Set up timeout for fetch request
643
+ this.fetchTimeoutTimer = window.setTimeout(() => {
644
+ var _a;
645
+ (_a = this.abortController) === null || _a === void 0 ? void 0 : _a.abort();
646
+ this.fetchTimeoutTimer = undefined;
647
+ }, this.fetchTimeout);
648
+ try {
649
+ // Guard against malformed asyncUrl
650
+ let url;
651
+ try {
652
+ url = new URL(this.asyncUrl, window.location.origin);
653
+ }
654
+ catch (urlError) {
655
+ throw new TypeError(`Invalid asyncUrl: ${this.asyncUrl}`);
656
+ }
657
+ if (this.asyncMethod === 'GET') {
658
+ url.searchParams.set('search', query);
659
+ url.searchParams.set('page', String(page));
660
+ }
661
+ const csrfToken = this.getCsrfToken();
662
+ const headers = {
663
+ 'Content-Type': 'application/json',
664
+ 'Accept': 'application/json',
665
+ };
666
+ if (csrfToken) {
667
+ const headerName = this.csrfHeaderName || 'X-CSRF-Token';
668
+ headers[headerName] = csrfToken;
669
+ }
670
+ const response = await fetch(url.toString(), Object.assign({ method: this.asyncMethod, signal: this.abortController.signal, headers }, (this.asyncMethod === 'POST' && {
671
+ body: JSON.stringify({ search: query, page }),
672
+ })));
673
+ // Clear timeout on successful response
674
+ if (this.fetchTimeoutTimer !== undefined) {
675
+ window.clearTimeout(this.fetchTimeoutTimer);
676
+ this.fetchTimeoutTimer = undefined;
677
+ }
678
+ if (!response.ok)
679
+ throw new Error('Failed to fetch options');
680
+ const data = await response.json();
681
+ const formattedResults = data.results.map(item => {
682
+ // If formatResult is provided, use it
683
+ if (this.formatResult) {
684
+ return this.formatResult(item);
685
+ }
686
+ // Defensive check: ensure item is an object before spreading
687
+ if (typeof item === 'object' && item !== null) {
688
+ return Object.assign({ id: item.id, text: item.text }, item);
689
+ }
690
+ // Handle primitives by converting to safe shape
691
+ return {
692
+ id: String(item),
693
+ text: String(item),
694
+ };
695
+ });
696
+ if (page === 1) {
697
+ this.internalOptions = formattedResults;
698
+ }
699
+ else {
700
+ this.internalOptions = [...this.internalOptions, ...formattedResults];
701
+ }
702
+ this.hasMore = data.totalCount ? this.internalOptions.length < data.totalCount : false;
703
+ this.currentPage = page;
704
+ }
705
+ catch (error) {
706
+ // Clear timeout on error
707
+ if (this.fetchTimeoutTimer !== undefined) {
708
+ window.clearTimeout(this.fetchTimeoutTimer);
709
+ this.fetchTimeoutTimer = undefined;
710
+ }
711
+ if (error.name !== 'AbortError') {
712
+ console.error('PdsMultiselect: Failed to fetch options', error);
713
+ }
714
+ }
715
+ finally {
716
+ this.loading = false;
717
+ // Check if value changed during loading and still has unresolved values
718
+ if (this.pendingUnresolvedFetch) {
719
+ this.pendingUnresolvedFetch = false;
720
+ const valueArray = this.ensureValueArray();
721
+ const hasUnresolvedValues = valueArray.length > 0 && this.selectedItems.length < valueArray.length;
722
+ if (hasUnresolvedValues) {
723
+ this.fetchOptions('', 1);
724
+ }
725
+ }
726
+ }
727
+ }
728
+ async createOption(query) {
729
+ if (!this.createUrl || !query.trim())
730
+ return;
731
+ // Reentrancy guard: prevent duplicate POSTs if creation is already in-flight
732
+ if (this.creating)
733
+ return;
734
+ this.creating = true;
735
+ try {
736
+ const url = new URL(this.createUrl, window.location.origin);
737
+ const csrfToken = this.getCsrfToken();
738
+ const headers = {
739
+ 'Content-Type': 'application/json',
740
+ 'Accept': 'application/json',
741
+ };
742
+ if (csrfToken) {
743
+ const headerName = this.csrfHeaderName || 'X-CSRF-Token';
744
+ headers[headerName] = csrfToken;
745
+ }
746
+ const response = await fetch(url.toString(), {
747
+ method: 'POST',
748
+ headers,
749
+ body: JSON.stringify({ text: query.trim() }),
750
+ });
751
+ if (!response.ok)
752
+ throw new Error('Failed to create option');
753
+ const data = await response.json();
754
+ const newOption = Object.assign({ id: data.id, text: data.text }, data);
755
+ // Add to internal options first
756
+ this.internalOptions = [...this.internalOptions, newOption];
757
+ // Select the new option
758
+ this.value = [...this.value, String(newOption.id)];
759
+ // Sync selected items to update display with new option
760
+ this.syncSelectedItems();
761
+ // Emit create event
762
+ this.pdsMultiselectCreate.emit({
763
+ query: query.trim(),
764
+ newOption,
765
+ });
766
+ // Emit change event with synced items
767
+ this.pdsMultiselectChange.emit({
768
+ values: this.value,
769
+ items: this.selectedItems,
770
+ });
771
+ // Clear search and keep dropdown open
772
+ this.searchQuery = '';
773
+ this.highlightedIndex = -1;
774
+ // Focus back on search input
775
+ requestAnimationFrame(() => {
776
+ var _a;
777
+ (_a = this.searchInputEl) === null || _a === void 0 ? void 0 : _a.focus();
778
+ });
779
+ }
780
+ catch (error) {
781
+ console.error('PdsMultiselect: Failed to create option', error);
782
+ }
783
+ finally {
784
+ this.creating = false;
785
+ }
786
+ }
787
+ openDropdown() {
788
+ if (this.disabled)
789
+ return;
790
+ this.isOpening = true;
791
+ this.isOpen = true;
792
+ this.highlightedIndex = -1;
793
+ // Trigger initial fetch if async (skip if already fetching from componentDidLoad)
794
+ if (this.asyncUrl && this.internalOptions.length === 0 && !this.initialAsyncFetchTriggered) {
795
+ this.debouncedFetchAsyncOptions(this.searchQuery, 1);
796
+ }
797
+ // Reset the flag so subsequent opens can fetch if needed
798
+ this.initialAsyncFetchTriggered = false;
799
+ requestAnimationFrame(() => {
800
+ var _a;
801
+ this.positionDropdown();
802
+ // Focus the search input after the panel is positioned
803
+ (_a = this.searchInputEl) === null || _a === void 0 ? void 0 : _a.focus();
804
+ // Clear the opening flag after focus has moved
805
+ setTimeout(() => {
806
+ this.isOpening = false;
807
+ }, 50);
808
+ });
809
+ }
810
+ closeDropdown() {
811
+ this.isOpen = false;
812
+ this.highlightedIndex = -1;
813
+ this.searchQuery = '';
814
+ // Reset the selection-close guard after the focusout handler's setTimeout has resolved
815
+ if (this.isClosingViaSelection) {
816
+ setTimeout(() => {
817
+ this.isClosingViaSelection = false;
818
+ }, 0);
819
+ }
820
+ // Clean up auto-update
821
+ if (this.cleanupAutoUpdate) {
822
+ this.cleanupAutoUpdate();
823
+ this.cleanupAutoUpdate = undefined;
824
+ }
825
+ }
826
+ positionDropdown() {
827
+ if (!this.containerEl || !this.panelEl)
828
+ return;
829
+ // In inline pill mode, triggerEl is the small chevron button — use the full-width
830
+ // wrapper div as the Floating UI reference so the panel aligns with the whole trigger.
831
+ const referenceEl = this.pillInlineTriggerEl || this.triggerEl || this.containerEl;
832
+ const { minWidth, panelWidth } = this;
833
+ const updatePosition = () => {
834
+ computePosition(referenceEl, this.panelEl, {
835
+ placement: 'bottom-start',
836
+ strategy: 'absolute',
837
+ middleware: [
838
+ offset(12),
839
+ flip(),
840
+ shift({ padding: 8 }),
841
+ size({
842
+ apply: ({ rects, elements }) => {
843
+ Object.assign(elements.floating.style, {
844
+ width: panelWidth !== null && panelWidth !== void 0 ? panelWidth : `${rects.reference.width}px`,
845
+ minWidth,
846
+ });
847
+ },
848
+ }),
849
+ ],
850
+ }).then(({ x, y }) => {
851
+ if (this.panelEl) {
852
+ this.panelEl.style.left = `${x}px`;
853
+ this.panelEl.style.top = `${y}px`;
854
+ }
855
+ });
856
+ };
857
+ // Initial position
858
+ updatePosition();
859
+ // Set up auto-update for window resize and scroll
860
+ const cleanupAutoUpdate = autoUpdate(referenceEl, this.panelEl, updatePosition);
861
+ this.cleanupAutoUpdate = () => {
862
+ cleanupAutoUpdate();
863
+ this.clearAsyncFetchState();
864
+ };
865
+ }
866
+ scrollOptionIntoView() {
867
+ requestAnimationFrame(() => {
868
+ var _a;
869
+ const highlighted = (_a = this.listboxEl) === null || _a === void 0 ? void 0 : _a.querySelector(`[data-index="${this.highlightedIndex}"]`);
870
+ highlighted === null || highlighted === void 0 ? void 0 : highlighted.scrollIntoView({ block: 'nearest', behavior: 'smooth' });
871
+ });
872
+ }
873
+ toggleOption(option) {
874
+ var _a, _b;
875
+ if (option.disabled)
876
+ return;
877
+ // Handle create option
878
+ if (option.isCreateOption) {
879
+ // Prevent multiple create calls while one is in-flight
880
+ if (!this.creating) {
881
+ this.createOption(this.searchQuery);
882
+ }
883
+ return;
884
+ }
885
+ const optionId = String(option.id);
886
+ const isSelected = this.value.includes(optionId);
887
+ if (isSelected) {
888
+ // Remove from selection
889
+ this.value = this.value.filter(v => v !== optionId);
890
+ }
891
+ else {
892
+ // Add to selection
893
+ if (this.maxSelections && this.value.length >= this.maxSelections) {
894
+ return;
895
+ }
896
+ this.value = [...this.value, optionId];
897
+ }
898
+ // Sync selected items to ensure no duplicates and accurate state
899
+ this.syncSelectedItems();
900
+ // Emit change event with synced items
901
+ this.pdsMultiselectChange.emit({
902
+ values: this.value,
903
+ items: this.selectedItems,
904
+ });
905
+ if (this.closePanelOnSelect) {
906
+ this.isClosingViaSelection = true;
907
+ this.closeDropdown();
908
+ (_a = this.triggerEl) === null || _a === void 0 ? void 0 : _a.focus();
909
+ }
910
+ else {
911
+ // Keep focus on search input, don't close dropdown
912
+ (_b = this.searchInputEl) === null || _b === void 0 ? void 0 : _b.focus();
913
+ }
914
+ }
915
+ selectOption(option) {
916
+ // For keyboard navigation - toggle the option
917
+ this.toggleOption(option);
918
+ }
919
+ getGroupedRenderItems(filteredOptions) {
920
+ const items = [];
921
+ let currentGroup = null;
922
+ filteredOptions.forEach((option, index) => {
923
+ const group = option.group;
924
+ if (group !== undefined) {
925
+ if (!currentGroup || currentGroup.group !== group) {
926
+ currentGroup = { type: 'group', group, options: [] };
927
+ items.push(currentGroup);
928
+ }
929
+ currentGroup.options.push({ option, index });
930
+ }
931
+ else {
932
+ currentGroup = null;
933
+ items.push({ type: 'option', option, index });
934
+ }
935
+ });
936
+ return items;
937
+ }
938
+ renderOption(option, index, valueArray) {
939
+ const isSelected = valueArray.includes(String(option.id));
940
+ const isCreateOption = option.isCreateOption;
941
+ const isDisabled = option.disabled;
942
+ const isHighlighted = index === this.highlightedIndex && !isCreateOption;
943
+ const optionId = `${this.componentId}-option-${index}`;
944
+ const isCreateDisabled = isCreateOption && this.creating;
945
+ return (h("li", { key: String(option.id), id: optionId, class: {
946
+ 'pds-multiselect__option': true,
947
+ 'pds-multiselect__option--highlighted': isHighlighted,
948
+ 'pds-multiselect__option--selected': isSelected,
949
+ 'pds-multiselect__option--create': isCreateOption,
950
+ 'pds-multiselect__option--disabled': isDisabled || isCreateDisabled,
951
+ }, 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' } }))));
952
+ }
953
+ renderSelectedItemsList() {
954
+ if (this.hideSelectedItems || this.selectedItems.length === 0)
955
+ return null;
956
+ 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))))));
957
+ }
958
+ renderDropdown() {
959
+ if (!this.isOpen)
960
+ return null;
961
+ const filteredOptions = this.getFilteredOptions();
962
+ const valueArray = this.ensureValueArray();
963
+ const hasSlottedEmpty = !!this.el.querySelector('[slot="empty"]');
964
+ const hasSlottedLoading = !!this.el.querySelector('[slot="loading"]');
965
+ 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) => {
966
+ if (item.type === 'group') {
967
+ 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)))));
968
+ }
969
+ return this.renderOption(item.option, item.index, valueArray);
970
+ }), this.hasMore && !this.loading && (h("li", { class: "pds-multiselect__load-more", role: "presentation" }, h("pds-loader", { size: "small" }))))));
971
+ }
972
+ renderInlinePills() {
973
+ const hasSelections = this.selectedItems.length > 0;
974
+ if (!hasSelections) {
975
+ return (h("span", { class: "pds-multiselect__trigger-text pds-multiselect__trigger-text--placeholder" }, this.placeholder || 'Select...'));
976
+ }
977
+ const variant = this.disabled ? 'text' : 'tag';
978
+ const visibleItems = this.selectedItems.slice(0, Math.max(1, this.maxInlinePills));
979
+ const overflowCount = this.selectedItems.length - visibleItems.length;
980
+ 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))));
981
+ }
982
+ renderBelowPills() {
983
+ if (this.selectedItems.length === 0)
984
+ return null;
985
+ const variant = this.disabled ? 'text' : 'tag';
986
+ 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)))));
987
+ }
988
+ getTriggerText() {
989
+ const count = this.selectedItems.length;
990
+ if (count === 0 || (this.selectedDisplay === 'pill' && this.pillPosition === 'below')) {
991
+ // Fall back to a non-empty string: the trigger's accessible name comes from
992
+ // this text, so an empty/undefined placeholder must never leave it nameless
993
+ // (WCAG 4.1.2). The prop is localizable; this last-resort default is not.
994
+ return this.placeholder || 'Select...';
995
+ }
996
+ return pluralize(this.el, count, this.resolveCountForms());
997
+ }
998
+ /**
999
+ * The `one`/`other` props are the ergonomic English defaults; `selectedCountLabels`
1000
+ * (object or JSON-string attribute) layers full CLDR forms on top for locales
1001
+ * that need `few`/`many`/`two`/`zero`. Malformed JSON degrades to the defaults.
1002
+ */
1003
+ resolveCountForms() {
1004
+ const base = {
1005
+ one: this.selectedCountLabelOne,
1006
+ other: this.selectedCountLabelOther,
1007
+ };
1008
+ const extra = this.selectedCountLabels;
1009
+ if (!extra)
1010
+ return base;
1011
+ if (typeof extra === 'string') {
1012
+ try {
1013
+ const parsed = JSON.parse(extra);
1014
+ return parsed && typeof parsed === 'object' ? Object.assign(Object.assign({}, base), parsed) : base;
1015
+ }
1016
+ catch (_a) {
1017
+ return base; // not valid JSON → fall back to the English-shape defaults
1018
+ }
1019
+ }
1020
+ return Object.assign(Object.assign({}, base), extra);
1021
+ }
1022
+ render() {
1023
+ const hasSelections = this.selectedItems.length > 0;
1024
+ 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: {
1025
+ 'pds-multiselect__label': true,
1026
+ 'visually-hidden': this.hideLabel,
1027
+ } }, 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: {
1028
+ 'pds-multiselect__trigger': true,
1029
+ 'pds-multiselect__trigger--open': this.isOpen,
1030
+ 'pds-multiselect__trigger--disabled': this.disabled,
1031
+ 'pds-multiselect__trigger--invalid': this.invalid || !!this.errorMessage,
1032
+ 'pds-multiselect__trigger--has-value': hasSelections,
1033
+ 'pds-multiselect__trigger--pill-inline': true,
1034
+ }, 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: {
1035
+ 'pds-multiselect__trigger': true,
1036
+ 'pds-multiselect__trigger--open': this.isOpen,
1037
+ 'pds-multiselect__trigger--disabled': this.disabled,
1038
+ 'pds-multiselect__trigger--invalid': this.invalid || !!this.errorMessage,
1039
+ 'pds-multiselect__trigger--has-value': hasSelections,
1040
+ }, 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: {
1041
+ 'pds-multiselect__trigger-text': true,
1042
+ 'pds-multiselect__trigger-text--placeholder': !hasSelections || (this.selectedDisplay === 'pill' && this.pillPosition === 'below'),
1043
+ } }, 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' })))));
1044
+ }
1045
+ static get is() { return "pds-multiselect"; }
1046
+ static get encapsulation() { return "shadow"; }
1047
+ static get formAssociated() { return true; }
1048
+ static get originalStyleUrls() {
1049
+ return {
1050
+ "$": ["pds-multiselect.scss"]
1051
+ };
1052
+ }
1053
+ static get styleUrls() {
1054
+ return {
1055
+ "$": ["pds-multiselect.css"]
1056
+ };
1057
+ }
1058
+ static get properties() {
1059
+ return {
1060
+ "componentId": {
1061
+ "type": "string",
1062
+ "mutable": false,
1063
+ "complexType": {
1064
+ "original": "string",
1065
+ "resolved": "string",
1066
+ "references": {}
1067
+ },
1068
+ "required": true,
1069
+ "optional": false,
1070
+ "docs": {
1071
+ "tags": [],
1072
+ "text": "A unique identifier used for the underlying component `id` attribute."
1073
+ },
1074
+ "getter": false,
1075
+ "setter": false,
1076
+ "reflect": false,
1077
+ "attribute": "component-id"
1078
+ },
1079
+ "label": {
1080
+ "type": "string",
1081
+ "mutable": false,
1082
+ "complexType": {
1083
+ "original": "string",
1084
+ "resolved": "string",
1085
+ "references": {}
1086
+ },
1087
+ "required": false,
1088
+ "optional": true,
1089
+ "docs": {
1090
+ "tags": [],
1091
+ "text": "Text to be displayed as the multiselect label."
1092
+ },
1093
+ "getter": false,
1094
+ "setter": false,
1095
+ "reflect": false,
1096
+ "attribute": "label"
1097
+ },
1098
+ "placeholder": {
1099
+ "type": "string",
1100
+ "mutable": false,
1101
+ "complexType": {
1102
+ "original": "string",
1103
+ "resolved": "string",
1104
+ "references": {}
1105
+ },
1106
+ "required": false,
1107
+ "optional": false,
1108
+ "docs": {
1109
+ "tags": [{
1110
+ "name": "defaultValue",
1111
+ "text": "'Select...'"
1112
+ }],
1113
+ "text": "Placeholder text for the input field. Pass a translated string to localize it; defaults to English."
1114
+ },
1115
+ "getter": false,
1116
+ "setter": false,
1117
+ "reflect": false,
1118
+ "attribute": "placeholder",
1119
+ "defaultValue": "'Select...'"
1120
+ },
1121
+ "searchPlaceholder": {
1122
+ "type": "string",
1123
+ "mutable": false,
1124
+ "complexType": {
1125
+ "original": "string",
1126
+ "resolved": "string",
1127
+ "references": {}
1128
+ },
1129
+ "required": false,
1130
+ "optional": false,
1131
+ "docs": {
1132
+ "tags": [{
1133
+ "name": "defaultValue",
1134
+ "text": "'Find...'"
1135
+ }],
1136
+ "text": "Placeholder text for the search input inside the dropdown panel. Pass a translated string to localize it; defaults to English."
1137
+ },
1138
+ "getter": false,
1139
+ "setter": false,
1140
+ "reflect": false,
1141
+ "attribute": "search-placeholder",
1142
+ "defaultValue": "'Find...'"
1143
+ },
1144
+ "searchOptionsLabel": {
1145
+ "type": "string",
1146
+ "mutable": false,
1147
+ "complexType": {
1148
+ "original": "string",
1149
+ "resolved": "string",
1150
+ "references": {}
1151
+ },
1152
+ "required": false,
1153
+ "optional": false,
1154
+ "docs": {
1155
+ "tags": [{
1156
+ "name": "defaultValue",
1157
+ "text": "'Search options'"
1158
+ }],
1159
+ "text": "Accessible label for the search input. Pass a translated string to localize it; defaults to English."
1160
+ },
1161
+ "getter": false,
1162
+ "setter": false,
1163
+ "reflect": false,
1164
+ "attribute": "search-options-label",
1165
+ "defaultValue": "'Search options'"
1166
+ },
1167
+ "selectedItemsLabel": {
1168
+ "type": "string",
1169
+ "mutable": false,
1170
+ "complexType": {
1171
+ "original": "string",
1172
+ "resolved": "string",
1173
+ "references": {}
1174
+ },
1175
+ "required": false,
1176
+ "optional": false,
1177
+ "docs": {
1178
+ "tags": [{
1179
+ "name": "defaultValue",
1180
+ "text": "'Selected items'"
1181
+ }],
1182
+ "text": "Accessible label for the selected-items region. Pass a translated string to localize it; defaults to English."
1183
+ },
1184
+ "getter": false,
1185
+ "setter": false,
1186
+ "reflect": false,
1187
+ "attribute": "selected-items-label",
1188
+ "defaultValue": "'Selected items'"
1189
+ },
1190
+ "optionsLabel": {
1191
+ "type": "string",
1192
+ "mutable": false,
1193
+ "complexType": {
1194
+ "original": "string",
1195
+ "resolved": "string",
1196
+ "references": {}
1197
+ },
1198
+ "required": false,
1199
+ "optional": false,
1200
+ "docs": {
1201
+ "tags": [{
1202
+ "name": "defaultValue",
1203
+ "text": "'Options'"
1204
+ }],
1205
+ "text": "Accessible label for the options listbox (falls back to this when `label` is unset). Pass a translated string to localize it; defaults to English."
1206
+ },
1207
+ "getter": false,
1208
+ "setter": false,
1209
+ "reflect": false,
1210
+ "attribute": "options-label",
1211
+ "defaultValue": "'Options'"
1212
+ },
1213
+ "noOptionsFoundLabel": {
1214
+ "type": "string",
1215
+ "mutable": false,
1216
+ "complexType": {
1217
+ "original": "string",
1218
+ "resolved": "string",
1219
+ "references": {}
1220
+ },
1221
+ "required": false,
1222
+ "optional": false,
1223
+ "docs": {
1224
+ "tags": [{
1225
+ "name": "defaultValue",
1226
+ "text": "'No options found'"
1227
+ }],
1228
+ "text": "Text shown when no options match the search. Pass a translated string to localize it; defaults to English."
1229
+ },
1230
+ "getter": false,
1231
+ "setter": false,
1232
+ "reflect": false,
1233
+ "attribute": "no-options-found-label",
1234
+ "defaultValue": "'No options found'"
1235
+ },
1236
+ "createOptionLabel": {
1237
+ "type": "string",
1238
+ "mutable": false,
1239
+ "complexType": {
1240
+ "original": "string",
1241
+ "resolved": "string",
1242
+ "references": {}
1243
+ },
1244
+ "required": false,
1245
+ "optional": false,
1246
+ "docs": {
1247
+ "tags": [{
1248
+ "name": "defaultValue",
1249
+ "text": "'Add \"{text}\"'"
1250
+ }],
1251
+ "text": "Visible label for the create-new-option row. Pass a translated string to localize it; `{text}` is interpolated."
1252
+ },
1253
+ "getter": false,
1254
+ "setter": false,
1255
+ "reflect": false,
1256
+ "attribute": "create-option-label",
1257
+ "defaultValue": "'Add \"{text}\"'"
1258
+ },
1259
+ "createOptionAriaLabel": {
1260
+ "type": "string",
1261
+ "mutable": false,
1262
+ "complexType": {
1263
+ "original": "string",
1264
+ "resolved": "string",
1265
+ "references": {}
1266
+ },
1267
+ "required": false,
1268
+ "optional": false,
1269
+ "docs": {
1270
+ "tags": [{
1271
+ "name": "defaultValue",
1272
+ "text": "'Create new tag: {text}'"
1273
+ }],
1274
+ "text": "Accessible label for the create-new-option row. Pass a translated string to localize it; `{text}` is interpolated."
1275
+ },
1276
+ "getter": false,
1277
+ "setter": false,
1278
+ "reflect": false,
1279
+ "attribute": "create-option-aria-label",
1280
+ "defaultValue": "'Create new tag: {text}'"
1281
+ },
1282
+ "itemRemovedLabel": {
1283
+ "type": "string",
1284
+ "mutable": false,
1285
+ "complexType": {
1286
+ "original": "string",
1287
+ "resolved": "string",
1288
+ "references": {}
1289
+ },
1290
+ "required": false,
1291
+ "optional": false,
1292
+ "docs": {
1293
+ "tags": [{
1294
+ "name": "defaultValue",
1295
+ "text": "'{item} removed'"
1296
+ }],
1297
+ "text": "Screen-reader announcement when an item is removed. Pass a translated string to localize it; `{item}` is interpolated."
1298
+ },
1299
+ "getter": false,
1300
+ "setter": false,
1301
+ "reflect": false,
1302
+ "attribute": "item-removed-label",
1303
+ "defaultValue": "'{item} removed'"
1304
+ },
1305
+ "pillRemoveLabel": {
1306
+ "type": "string",
1307
+ "mutable": false,
1308
+ "complexType": {
1309
+ "original": "string",
1310
+ "resolved": "string",
1311
+ "references": {}
1312
+ },
1313
+ "required": false,
1314
+ "optional": false,
1315
+ "docs": {
1316
+ "tags": [{
1317
+ "name": "defaultValue",
1318
+ "text": "'Remove'"
1319
+ }],
1320
+ "text": "Accessible label for the remove button on each selected-item pill. Pass a translated string to localize it; defaults to English."
1321
+ },
1322
+ "getter": false,
1323
+ "setter": false,
1324
+ "reflect": false,
1325
+ "attribute": "pill-remove-label",
1326
+ "defaultValue": "'Remove'"
1327
+ },
1328
+ "selectedCountLabelOne": {
1329
+ "type": "string",
1330
+ "mutable": false,
1331
+ "complexType": {
1332
+ "original": "string",
1333
+ "resolved": "string",
1334
+ "references": {}
1335
+ },
1336
+ "required": false,
1337
+ "optional": false,
1338
+ "docs": {
1339
+ "tags": [{
1340
+ "name": "defaultValue",
1341
+ "text": "'{count} item'"
1342
+ }],
1343
+ "text": "Singular form of the selected-count trigger text. Pass a translated string to localize it; `{count}` is interpolated."
1344
+ },
1345
+ "getter": false,
1346
+ "setter": false,
1347
+ "reflect": false,
1348
+ "attribute": "selected-count-label-one",
1349
+ "defaultValue": "'{count} item'"
1350
+ },
1351
+ "selectedCountLabelOther": {
1352
+ "type": "string",
1353
+ "mutable": false,
1354
+ "complexType": {
1355
+ "original": "string",
1356
+ "resolved": "string",
1357
+ "references": {}
1358
+ },
1359
+ "required": false,
1360
+ "optional": false,
1361
+ "docs": {
1362
+ "tags": [{
1363
+ "name": "defaultValue",
1364
+ "text": "'{count} items'"
1365
+ }],
1366
+ "text": "Plural (and fallback) form of the selected-count trigger text \u2014 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."
1367
+ },
1368
+ "getter": false,
1369
+ "setter": false,
1370
+ "reflect": false,
1371
+ "attribute": "selected-count-label-other",
1372
+ "defaultValue": "'{count} items'"
1373
+ },
1374
+ "selectedCountLabels": {
1375
+ "type": "string",
1376
+ "mutable": false,
1377
+ "complexType": {
1378
+ "original": "PluralForms | string",
1379
+ "resolved": "\"few\" | \"many\" | \"one\" | \"other\" | \"two\" | \"zero\" | string",
1380
+ "references": {
1381
+ "PluralForms": {
1382
+ "location": "import",
1383
+ "path": "../../i18n",
1384
+ "id": "src/i18n/index.ts::PluralForms",
1385
+ "referenceLocation": "PluralForms"
1386
+ }
1387
+ }
1388
+ },
1389
+ "required": false,
1390
+ "optional": true,
1391
+ "docs": {
1392
+ "tags": [{
1393
+ "name": "defaultValue",
1394
+ "text": "undefined"
1395
+ }],
1396
+ "text": "Full CLDR plural forms for the selected-count trigger text, for locales with more than the English `one`/`other` categories (e.g. Polish `few`/`many`, Arabic `zero`/`two`). Accepts an object property or a JSON string attribute keyed by CLDR category \u2014 `{ one, other, few, many, two, zero }`. Any form omitted here falls back to `selectedCountLabelOne`/`selectedCountLabelOther`. `{count}` is interpolated."
1397
+ },
1398
+ "getter": false,
1399
+ "setter": false,
1400
+ "reflect": false,
1401
+ "attribute": "selected-count-labels"
1402
+ },
1403
+ "closePanelOnSelect": {
1404
+ "type": "boolean",
1405
+ "mutable": false,
1406
+ "complexType": {
1407
+ "original": "boolean",
1408
+ "resolved": "boolean",
1409
+ "references": {}
1410
+ },
1411
+ "required": false,
1412
+ "optional": false,
1413
+ "docs": {
1414
+ "tags": [],
1415
+ "text": "Whether to close the panel after an option is selected.\nDefaults to `false` (panel stays open for multi-select)."
1416
+ },
1417
+ "getter": false,
1418
+ "setter": false,
1419
+ "reflect": false,
1420
+ "attribute": "close-panel-on-select",
1421
+ "defaultValue": "false"
1422
+ },
1423
+ "name": {
1424
+ "type": "string",
1425
+ "mutable": false,
1426
+ "complexType": {
1427
+ "original": "string",
1428
+ "resolved": "string",
1429
+ "references": {}
1430
+ },
1431
+ "required": false,
1432
+ "optional": true,
1433
+ "docs": {
1434
+ "tags": [],
1435
+ "text": "Specifies the name. Submitted with the form as part of a name/value pair."
1436
+ },
1437
+ "getter": false,
1438
+ "setter": false,
1439
+ "reflect": false,
1440
+ "attribute": "name"
1441
+ },
1442
+ "value": {
1443
+ "type": "unknown",
1444
+ "mutable": true,
1445
+ "complexType": {
1446
+ "original": "string[]",
1447
+ "resolved": "string[]",
1448
+ "references": {}
1449
+ },
1450
+ "required": false,
1451
+ "optional": false,
1452
+ "docs": {
1453
+ "tags": [],
1454
+ "text": "Array of selected option values."
1455
+ },
1456
+ "getter": false,
1457
+ "setter": false,
1458
+ "defaultValue": "[]"
1459
+ },
1460
+ "disabled": {
1461
+ "type": "boolean",
1462
+ "mutable": false,
1463
+ "complexType": {
1464
+ "original": "boolean",
1465
+ "resolved": "boolean",
1466
+ "references": {}
1467
+ },
1468
+ "required": false,
1469
+ "optional": false,
1470
+ "docs": {
1471
+ "tags": [],
1472
+ "text": "Determines whether or not the multiselect is disabled."
1473
+ },
1474
+ "getter": false,
1475
+ "setter": false,
1476
+ "reflect": false,
1477
+ "attribute": "disabled",
1478
+ "defaultValue": "false"
1479
+ },
1480
+ "asyncUrl": {
1481
+ "type": "string",
1482
+ "mutable": false,
1483
+ "complexType": {
1484
+ "original": "string",
1485
+ "resolved": "string",
1486
+ "references": {}
1487
+ },
1488
+ "required": false,
1489
+ "optional": true,
1490
+ "docs": {
1491
+ "tags": [],
1492
+ "text": "URL endpoint for async data fetching."
1493
+ },
1494
+ "getter": false,
1495
+ "setter": false,
1496
+ "reflect": false,
1497
+ "attribute": "async-url"
1498
+ },
1499
+ "asyncMethod": {
1500
+ "type": "string",
1501
+ "mutable": false,
1502
+ "complexType": {
1503
+ "original": "'GET' | 'POST'",
1504
+ "resolved": "\"GET\" | \"POST\"",
1505
+ "references": {}
1506
+ },
1507
+ "required": false,
1508
+ "optional": false,
1509
+ "docs": {
1510
+ "tags": [],
1511
+ "text": "HTTP method for async requests."
1512
+ },
1513
+ "getter": false,
1514
+ "setter": false,
1515
+ "reflect": false,
1516
+ "attribute": "async-method",
1517
+ "defaultValue": "'GET'"
1518
+ },
1519
+ "debounce": {
1520
+ "type": "number",
1521
+ "mutable": false,
1522
+ "complexType": {
1523
+ "original": "number",
1524
+ "resolved": "number",
1525
+ "references": {}
1526
+ },
1527
+ "required": false,
1528
+ "optional": false,
1529
+ "docs": {
1530
+ "tags": [],
1531
+ "text": "Debounce delay in milliseconds for search/fetch."
1532
+ },
1533
+ "getter": false,
1534
+ "setter": false,
1535
+ "reflect": false,
1536
+ "attribute": "debounce",
1537
+ "defaultValue": "300"
1538
+ },
1539
+ "fetchTimeout": {
1540
+ "type": "number",
1541
+ "mutable": false,
1542
+ "complexType": {
1543
+ "original": "number",
1544
+ "resolved": "number",
1545
+ "references": {}
1546
+ },
1547
+ "required": false,
1548
+ "optional": false,
1549
+ "docs": {
1550
+ "tags": [],
1551
+ "text": "Timeout in milliseconds for async fetch requests."
1552
+ },
1553
+ "getter": false,
1554
+ "setter": false,
1555
+ "reflect": false,
1556
+ "attribute": "fetch-timeout",
1557
+ "defaultValue": "30000"
1558
+ },
1559
+ "maxSelections": {
1560
+ "type": "number",
1561
+ "mutable": false,
1562
+ "complexType": {
1563
+ "original": "number",
1564
+ "resolved": "number",
1565
+ "references": {}
1566
+ },
1567
+ "required": false,
1568
+ "optional": true,
1569
+ "docs": {
1570
+ "tags": [],
1571
+ "text": "Maximum number of selections allowed."
1572
+ },
1573
+ "getter": false,
1574
+ "setter": false,
1575
+ "reflect": false,
1576
+ "attribute": "max-selections"
1577
+ },
1578
+ "maxHeight": {
1579
+ "type": "string",
1580
+ "mutable": false,
1581
+ "complexType": {
1582
+ "original": "string",
1583
+ "resolved": "string",
1584
+ "references": {}
1585
+ },
1586
+ "required": false,
1587
+ "optional": false,
1588
+ "docs": {
1589
+ "tags": [],
1590
+ "text": "Maximum height of the dropdown before scrolling."
1591
+ },
1592
+ "getter": false,
1593
+ "setter": false,
1594
+ "reflect": false,
1595
+ "attribute": "max-height",
1596
+ "defaultValue": "'300px'"
1597
+ },
1598
+ "triggerWidth": {
1599
+ "type": "string",
1600
+ "mutable": false,
1601
+ "complexType": {
1602
+ "original": "string",
1603
+ "resolved": "string",
1604
+ "references": {}
1605
+ },
1606
+ "required": false,
1607
+ "optional": false,
1608
+ "docs": {
1609
+ "tags": [],
1610
+ "text": "Width of the trigger button (and reference for dropdown positioning)."
1611
+ },
1612
+ "getter": false,
1613
+ "setter": false,
1614
+ "reflect": false,
1615
+ "attribute": "trigger-width",
1616
+ "defaultValue": "'100%'"
1617
+ },
1618
+ "minWidth": {
1619
+ "type": "string",
1620
+ "mutable": false,
1621
+ "complexType": {
1622
+ "original": "string",
1623
+ "resolved": "string",
1624
+ "references": {}
1625
+ },
1626
+ "required": false,
1627
+ "optional": false,
1628
+ "docs": {
1629
+ "tags": [],
1630
+ "text": "Minimum width of the dropdown panel."
1631
+ },
1632
+ "getter": false,
1633
+ "setter": false,
1634
+ "reflect": false,
1635
+ "attribute": "min-width",
1636
+ "defaultValue": "'250px'"
1637
+ },
1638
+ "panelWidth": {
1639
+ "type": "string",
1640
+ "mutable": false,
1641
+ "complexType": {
1642
+ "original": "string",
1643
+ "resolved": "string",
1644
+ "references": {}
1645
+ },
1646
+ "required": false,
1647
+ "optional": true,
1648
+ "docs": {
1649
+ "tags": [],
1650
+ "text": "Width of the dropdown panel. Defaults to the trigger width."
1651
+ },
1652
+ "getter": false,
1653
+ "setter": false,
1654
+ "reflect": false,
1655
+ "attribute": "panel-width"
1656
+ },
1657
+ "hideLabel": {
1658
+ "type": "boolean",
1659
+ "mutable": false,
1660
+ "complexType": {
1661
+ "original": "boolean",
1662
+ "resolved": "boolean",
1663
+ "references": {}
1664
+ },
1665
+ "required": false,
1666
+ "optional": false,
1667
+ "docs": {
1668
+ "tags": [],
1669
+ "text": "Visually hides the label but keeps it accessible."
1670
+ },
1671
+ "getter": false,
1672
+ "setter": false,
1673
+ "reflect": false,
1674
+ "attribute": "hide-label",
1675
+ "defaultValue": "false"
1676
+ },
1677
+ "hideSelectedItems": {
1678
+ "type": "boolean",
1679
+ "mutable": false,
1680
+ "complexType": {
1681
+ "original": "boolean",
1682
+ "resolved": "boolean",
1683
+ "references": {}
1684
+ },
1685
+ "required": false,
1686
+ "optional": false,
1687
+ "docs": {
1688
+ "tags": [],
1689
+ "text": "Hides the selected items summary section in the dropdown panel."
1690
+ },
1691
+ "getter": false,
1692
+ "setter": false,
1693
+ "reflect": false,
1694
+ "attribute": "hide-selected-items",
1695
+ "defaultValue": "false"
1696
+ },
1697
+ "selectedDisplay": {
1698
+ "type": "string",
1699
+ "mutable": false,
1700
+ "complexType": {
1701
+ "original": "'count' | 'pill'",
1702
+ "resolved": "\"count\" | \"pill\"",
1703
+ "references": {}
1704
+ },
1705
+ "required": false,
1706
+ "optional": false,
1707
+ "docs": {
1708
+ "tags": [{
1709
+ "name": "default",
1710
+ "text": "'count'"
1711
+ }],
1712
+ "text": "Display mode for selected items outside the dropdown panel.\n`'count'` shows \"N item(s)\" text in the trigger (default). `'pill'` renders\nselected items as dismissible pds-chip tags."
1713
+ },
1714
+ "getter": false,
1715
+ "setter": false,
1716
+ "reflect": false,
1717
+ "attribute": "selected-display",
1718
+ "defaultValue": "'count'"
1719
+ },
1720
+ "pillPosition": {
1721
+ "type": "string",
1722
+ "mutable": false,
1723
+ "complexType": {
1724
+ "original": "'inline' | 'below'",
1725
+ "resolved": "\"below\" | \"inline\"",
1726
+ "references": {}
1727
+ },
1728
+ "required": false,
1729
+ "optional": false,
1730
+ "docs": {
1731
+ "tags": [{
1732
+ "name": "default",
1733
+ "text": "'inline'"
1734
+ }],
1735
+ "text": "Position of pill chips when `selectedDisplay` is `'pill'`.\n`'inline'` places chips inside the trigger; `'below'` places chips in a\nflex-wrap row directly below the trigger."
1736
+ },
1737
+ "getter": false,
1738
+ "setter": false,
1739
+ "reflect": false,
1740
+ "attribute": "pill-position",
1741
+ "defaultValue": "'inline'"
1742
+ },
1743
+ "maxInlinePills": {
1744
+ "type": "number",
1745
+ "mutable": false,
1746
+ "complexType": {
1747
+ "original": "number",
1748
+ "resolved": "number",
1749
+ "references": {}
1750
+ },
1751
+ "required": false,
1752
+ "optional": false,
1753
+ "docs": {
1754
+ "tags": [{
1755
+ "name": "default",
1756
+ "text": "3"
1757
+ }],
1758
+ "text": "Maximum chips shown inline before collapsing to a \"+N more\" badge.\nOnly applies when `selectedDisplay='pill'` and `pillPosition='inline'`."
1759
+ },
1760
+ "getter": false,
1761
+ "setter": false,
1762
+ "reflect": false,
1763
+ "attribute": "max-inline-pills",
1764
+ "defaultValue": "3"
1765
+ },
1766
+ "errorMessage": {
1767
+ "type": "string",
1768
+ "mutable": false,
1769
+ "complexType": {
1770
+ "original": "string",
1771
+ "resolved": "string",
1772
+ "references": {}
1773
+ },
1774
+ "required": false,
1775
+ "optional": true,
1776
+ "docs": {
1777
+ "tags": [],
1778
+ "text": "Error message to display."
1779
+ },
1780
+ "getter": false,
1781
+ "setter": false,
1782
+ "reflect": false,
1783
+ "attribute": "error-message"
1784
+ },
1785
+ "helperMessage": {
1786
+ "type": "string",
1787
+ "mutable": false,
1788
+ "complexType": {
1789
+ "original": "string",
1790
+ "resolved": "string",
1791
+ "references": {}
1792
+ },
1793
+ "required": false,
1794
+ "optional": true,
1795
+ "docs": {
1796
+ "tags": [],
1797
+ "text": "Helper message to display below the input."
1798
+ },
1799
+ "getter": false,
1800
+ "setter": false,
1801
+ "reflect": false,
1802
+ "attribute": "helper-message"
1803
+ },
1804
+ "invalid": {
1805
+ "type": "boolean",
1806
+ "mutable": false,
1807
+ "complexType": {
1808
+ "original": "boolean",
1809
+ "resolved": "boolean",
1810
+ "references": {}
1811
+ },
1812
+ "required": false,
1813
+ "optional": true,
1814
+ "docs": {
1815
+ "tags": [],
1816
+ "text": "If true, the multiselect is in an invalid state."
1817
+ },
1818
+ "getter": false,
1819
+ "setter": false,
1820
+ "reflect": false,
1821
+ "attribute": "invalid"
1822
+ },
1823
+ "required": {
1824
+ "type": "boolean",
1825
+ "mutable": false,
1826
+ "complexType": {
1827
+ "original": "boolean",
1828
+ "resolved": "boolean",
1829
+ "references": {}
1830
+ },
1831
+ "required": false,
1832
+ "optional": false,
1833
+ "docs": {
1834
+ "tags": [],
1835
+ "text": "If true, the multiselect is required."
1836
+ },
1837
+ "getter": false,
1838
+ "setter": false,
1839
+ "reflect": false,
1840
+ "attribute": "required",
1841
+ "defaultValue": "false"
1842
+ },
1843
+ "loading": {
1844
+ "type": "boolean",
1845
+ "mutable": true,
1846
+ "complexType": {
1847
+ "original": "boolean",
1848
+ "resolved": "boolean",
1849
+ "references": {}
1850
+ },
1851
+ "required": false,
1852
+ "optional": false,
1853
+ "docs": {
1854
+ "tags": [],
1855
+ "text": "Whether the component is currently loading async options."
1856
+ },
1857
+ "getter": false,
1858
+ "setter": false,
1859
+ "reflect": false,
1860
+ "attribute": "loading",
1861
+ "defaultValue": "false"
1862
+ },
1863
+ "options": {
1864
+ "type": "unknown",
1865
+ "mutable": false,
1866
+ "complexType": {
1867
+ "original": "MultiselectOption[]",
1868
+ "resolved": "MultiselectOption[]",
1869
+ "references": {
1870
+ "MultiselectOption": {
1871
+ "location": "import",
1872
+ "path": "./multiselect-interface",
1873
+ "id": "src/components/pds-multiselect/multiselect-interface.ts::MultiselectOption",
1874
+ "referenceLocation": "MultiselectOption"
1875
+ }
1876
+ }
1877
+ },
1878
+ "required": false,
1879
+ "optional": true,
1880
+ "docs": {
1881
+ "tags": [],
1882
+ "text": "Options provided externally (for consumer-managed async).\nWhen using `group` on options, keep each group block contiguous in the array.\nThe same `group` label appearing again after other items produces a separate header (same as native `<optgroup>`)."
1883
+ },
1884
+ "getter": false,
1885
+ "setter": false
1886
+ },
1887
+ "formatResult": {
1888
+ "type": "unknown",
1889
+ "mutable": false,
1890
+ "complexType": {
1891
+ "original": "(item: unknown) => MultiselectOption",
1892
+ "resolved": "(item: unknown) => MultiselectOption",
1893
+ "references": {
1894
+ "MultiselectOption": {
1895
+ "location": "import",
1896
+ "path": "./multiselect-interface",
1897
+ "id": "src/components/pds-multiselect/multiselect-interface.ts::MultiselectOption",
1898
+ "referenceLocation": "MultiselectOption"
1899
+ }
1900
+ }
1901
+ },
1902
+ "required": false,
1903
+ "optional": true,
1904
+ "docs": {
1905
+ "tags": [],
1906
+ "text": "Function to format async results. Receives raw API response item."
1907
+ },
1908
+ "getter": false,
1909
+ "setter": false
1910
+ },
1911
+ "createUrl": {
1912
+ "type": "string",
1913
+ "mutable": false,
1914
+ "complexType": {
1915
+ "original": "string",
1916
+ "resolved": "string",
1917
+ "references": {}
1918
+ },
1919
+ "required": false,
1920
+ "optional": true,
1921
+ "docs": {
1922
+ "tags": [],
1923
+ "text": "URL endpoint for creating new options. When set, shows \"Add\" option when no matches found."
1924
+ },
1925
+ "getter": false,
1926
+ "setter": false,
1927
+ "reflect": false,
1928
+ "attribute": "create-url"
1929
+ },
1930
+ "csrfToken": {
1931
+ "type": "string",
1932
+ "mutable": false,
1933
+ "complexType": {
1934
+ "original": "string",
1935
+ "resolved": "string",
1936
+ "references": {}
1937
+ },
1938
+ "required": false,
1939
+ "optional": true,
1940
+ "docs": {
1941
+ "tags": [],
1942
+ "text": "CSRF token for authenticated requests. If not provided, attempts to read from meta tag."
1943
+ },
1944
+ "getter": false,
1945
+ "setter": false,
1946
+ "reflect": false,
1947
+ "attribute": "csrf-token"
1948
+ },
1949
+ "csrfHeaderName": {
1950
+ "type": "string",
1951
+ "mutable": false,
1952
+ "complexType": {
1953
+ "original": "string",
1954
+ "resolved": "string",
1955
+ "references": {}
1956
+ },
1957
+ "required": false,
1958
+ "optional": true,
1959
+ "docs": {
1960
+ "tags": [],
1961
+ "text": "CSRF header name for authenticated requests. Defaults to `X-CSRF-Token`."
1962
+ },
1963
+ "getter": false,
1964
+ "setter": false,
1965
+ "reflect": false,
1966
+ "attribute": "csrf-header-name",
1967
+ "defaultValue": "'X-CSRF-Token'"
1968
+ }
1969
+ };
1970
+ }
1971
+ static get states() {
1972
+ return {
1973
+ "isOpen": {},
1974
+ "searchQuery": {},
1975
+ "highlightedIndex": {},
1976
+ "internalOptions": {},
1977
+ "selectedItems": {},
1978
+ "currentPage": {},
1979
+ "hasMore": {},
1980
+ "creating": {},
1981
+ "removalAnnouncement": {}
1982
+ };
1983
+ }
1984
+ static get events() {
1985
+ return [{
1986
+ "method": "pdsMultiselectChange",
1987
+ "name": "pdsMultiselectChange",
1988
+ "bubbles": true,
1989
+ "cancelable": true,
1990
+ "composed": true,
1991
+ "docs": {
1992
+ "tags": [],
1993
+ "text": "Emitted when selection changes."
1994
+ },
1995
+ "complexType": {
1996
+ "original": "MultiselectChangeEventDetail",
1997
+ "resolved": "MultiselectChangeEventDetail",
1998
+ "references": {
1999
+ "MultiselectChangeEventDetail": {
2000
+ "location": "import",
2001
+ "path": "./multiselect-interface",
2002
+ "id": "src/components/pds-multiselect/multiselect-interface.ts::MultiselectChangeEventDetail",
2003
+ "referenceLocation": "MultiselectChangeEventDetail"
2004
+ }
2005
+ }
2006
+ }
2007
+ }, {
2008
+ "method": "pdsMultiselectSearch",
2009
+ "name": "pdsMultiselectSearch",
2010
+ "bubbles": true,
2011
+ "cancelable": true,
2012
+ "composed": true,
2013
+ "docs": {
2014
+ "tags": [],
2015
+ "text": "Emitted on search input (for consumer-managed async)."
2016
+ },
2017
+ "complexType": {
2018
+ "original": "MultiselectSearchEventDetail",
2019
+ "resolved": "MultiselectSearchEventDetail",
2020
+ "references": {
2021
+ "MultiselectSearchEventDetail": {
2022
+ "location": "import",
2023
+ "path": "./multiselect-interface",
2024
+ "id": "src/components/pds-multiselect/multiselect-interface.ts::MultiselectSearchEventDetail",
2025
+ "referenceLocation": "MultiselectSearchEventDetail"
2026
+ }
2027
+ }
2028
+ }
2029
+ }, {
2030
+ "method": "pdsMultiselectLoadOptions",
2031
+ "name": "pdsMultiselectLoadOptions",
2032
+ "bubbles": true,
2033
+ "cancelable": true,
2034
+ "composed": true,
2035
+ "docs": {
2036
+ "tags": [],
2037
+ "text": "Emitted to request more options (pagination)."
2038
+ },
2039
+ "complexType": {
2040
+ "original": "MultiselectLoadOptionsEventDetail",
2041
+ "resolved": "MultiselectLoadOptionsEventDetail",
2042
+ "references": {
2043
+ "MultiselectLoadOptionsEventDetail": {
2044
+ "location": "import",
2045
+ "path": "./multiselect-interface",
2046
+ "id": "src/components/pds-multiselect/multiselect-interface.ts::MultiselectLoadOptionsEventDetail",
2047
+ "referenceLocation": "MultiselectLoadOptionsEventDetail"
2048
+ }
2049
+ }
2050
+ }
2051
+ }, {
2052
+ "method": "pdsMultiselectCreate",
2053
+ "name": "pdsMultiselectCreate",
2054
+ "bubbles": true,
2055
+ "cancelable": true,
2056
+ "composed": true,
2057
+ "docs": {
2058
+ "tags": [],
2059
+ "text": "Emitted when a new option is created."
2060
+ },
2061
+ "complexType": {
2062
+ "original": "MultiselectCreateEventDetail",
2063
+ "resolved": "MultiselectCreateEventDetail",
2064
+ "references": {
2065
+ "MultiselectCreateEventDetail": {
2066
+ "location": "import",
2067
+ "path": "./multiselect-interface",
2068
+ "id": "src/components/pds-multiselect/multiselect-interface.ts::MultiselectCreateEventDetail",
2069
+ "referenceLocation": "MultiselectCreateEventDetail"
2070
+ }
2071
+ }
2072
+ }
2073
+ }, {
2074
+ "method": "pdsMultiselectDismiss",
2075
+ "name": "pdsMultiselectDismiss",
2076
+ "bubbles": true,
2077
+ "cancelable": true,
2078
+ "composed": true,
2079
+ "docs": {
2080
+ "tags": [],
2081
+ "text": "Emitted when the dropdown is dismissed via Escape key or click outside.\n\nThis event fires only when the user explicitly dismisses the panel without making a selection:\n- \u2705 Fires: Pressing Escape key while dropdown is open\n- \u2705 Fires: Clicking outside the component while dropdown is open\n- \u274C Does NOT fire: When panel closes due to selection (including when `closePanelOnSelect` is true)\n- \u274C Does NOT fire: When panel closes programmatically via `closeDropdown()`\n\nEquivalent to Sage's `onEscapeHook`. Use this to restore parent UI state or run cleanup when the user cancels their interaction."
2082
+ },
2083
+ "complexType": {
2084
+ "original": "void",
2085
+ "resolved": "void",
2086
+ "references": {}
2087
+ }
2088
+ }];
2089
+ }
2090
+ static get methods() {
2091
+ return {
2092
+ "setFocus": {
2093
+ "complexType": {
2094
+ "signature": "() => Promise<void>",
2095
+ "parameters": [],
2096
+ "references": {
2097
+ "Promise": {
2098
+ "location": "global",
2099
+ "id": "global::Promise"
2100
+ }
2101
+ },
2102
+ "return": "Promise<void>"
2103
+ },
2104
+ "docs": {
2105
+ "text": "Sets focus on the trigger button.",
2106
+ "tags": []
2107
+ }
2108
+ },
2109
+ "clear": {
2110
+ "complexType": {
2111
+ "signature": "() => Promise<void>",
2112
+ "parameters": [],
2113
+ "references": {
2114
+ "Promise": {
2115
+ "location": "global",
2116
+ "id": "global::Promise"
2117
+ }
2118
+ },
2119
+ "return": "Promise<void>"
2120
+ },
2121
+ "docs": {
2122
+ "text": "Clears all selected values and resets the component.",
2123
+ "tags": []
2124
+ }
2125
+ }
2126
+ };
2127
+ }
2128
+ static get elementRef() { return "el"; }
2129
+ static get watchers() {
2130
+ return [{
2131
+ "propName": "debounce",
2132
+ "methodName": "setupDebounce"
2133
+ }, {
2134
+ "propName": "value",
2135
+ "methodName": "valueChanged"
2136
+ }, {
2137
+ "propName": "options",
2138
+ "methodName": "optionsChanged"
2139
+ }, {
2140
+ "propName": "internalOptions",
2141
+ "methodName": "internalOptionsChanged"
2142
+ }];
2143
+ }
2144
+ static get listeners() {
2145
+ return [{
2146
+ "name": "keydown",
2147
+ "method": "handleWindowKeyDown",
2148
+ "target": "window",
2149
+ "capture": false,
2150
+ "passive": false
2151
+ }];
2152
+ }
2153
+ }