@pine-ds/core 3.13.0 → 3.14.1

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 (592) hide show
  1. package/components/floating-ui.dom.js +161 -40
  2. package/components/floating-ui.dom.js.map +1 -1
  3. package/components/index.d.ts +2 -0
  4. package/components/index.js +1 -0
  5. package/components/index.js.map +1 -1
  6. package/components/index2.js +1 -1
  7. package/components/index2.js.map +1 -1
  8. package/components/mock-pds-modal.js.map +1 -1
  9. package/components/pds-avatar.js +18 -5
  10. package/components/pds-avatar.js.map +1 -1
  11. package/components/pds-button2.js.map +1 -1
  12. package/components/pds-checkbox2.js.map +1 -1
  13. package/components/pds-chip2.js.map +1 -1
  14. package/components/pds-combobox.js +66 -26
  15. package/components/pds-combobox.js.map +1 -1
  16. package/components/pds-dropdown-menu-item.js +1 -1
  17. package/components/pds-dropdown-menu-item.js.map +1 -1
  18. package/components/pds-dropdown-menu.js +3 -2
  19. package/components/pds-dropdown-menu.js.map +1 -1
  20. package/components/pds-filter.js +1 -1
  21. package/components/pds-filter.js.map +1 -1
  22. package/components/pds-input.js +6 -2
  23. package/components/pds-input.js.map +1 -1
  24. package/components/pds-modal.js.map +1 -1
  25. package/components/pds-multiselect.d.ts +11 -0
  26. package/components/pds-multiselect.js +666 -0
  27. package/components/pds-multiselect.js.map +1 -0
  28. package/components/pds-popover.js +1 -1
  29. package/components/pds-progress.js +1 -1
  30. package/components/pds-property.js +1 -1
  31. package/components/pds-radio-group.js +3 -3
  32. package/components/pds-radio.js +3 -3
  33. package/components/pds-radio.js.map +1 -1
  34. package/components/pds-row.js +1 -1
  35. package/components/pds-select.js +14 -2
  36. package/components/pds-select.js.map +1 -1
  37. package/components/pds-sortable-item.js +1 -1
  38. package/components/pds-sortable.js +1 -1
  39. package/components/pds-switch.js +3 -3
  40. package/components/pds-tab.js +4 -4
  41. package/components/pds-tab.js.map +1 -1
  42. package/components/pds-table-body.js +1 -1
  43. package/components/pds-table-cell2.js +2 -2
  44. package/components/pds-table-cell2.js.map +1 -1
  45. package/components/pds-table-head-cell2.js +47 -6
  46. package/components/pds-table-head-cell2.js.map +1 -1
  47. package/components/pds-table-head.js +1 -1
  48. package/components/pds-table-row.js +1 -1
  49. package/components/pds-table.js +44 -3
  50. package/components/pds-table.js.map +1 -1
  51. package/components/pds-tabpanel.js +1 -1
  52. package/components/pds-tabs.js +1 -1
  53. package/components/pds-text2.js +1 -1
  54. package/components/pds-textarea.js +8 -4
  55. package/components/pds-textarea.js.map +1 -1
  56. package/components/pds-toast.js +3 -3
  57. package/components/pds-tooltip.js +2 -2
  58. package/dist/cjs/{floating-ui.dom-DTAy35nv.js → floating-ui.dom-Ca6tS7ef.js} +163 -41
  59. package/dist/cjs/floating-ui.dom-Ca6tS7ef.js.map +1 -0
  60. package/dist/cjs/{index-CMeuo765.js → index-BA--jsiy.js} +3 -3
  61. package/dist/cjs/index-BA--jsiy.js.map +1 -0
  62. package/dist/cjs/loader.cjs.js +1 -1
  63. package/dist/cjs/mock-pds-modal.entry.cjs.js.map +1 -1
  64. package/dist/cjs/pds-accordion.cjs.entry.js +1 -1
  65. package/dist/cjs/pds-avatar.cjs.entry.js +18 -6
  66. package/dist/cjs/pds-avatar.entry.cjs.js.map +1 -1
  67. package/dist/cjs/pds-button.cjs.entry.js +1 -1
  68. package/dist/cjs/pds-button.entry.cjs.js.map +1 -1
  69. package/dist/cjs/pds-checkbox.cjs.entry.js +1 -1
  70. package/dist/cjs/pds-checkbox.entry.cjs.js.map +1 -1
  71. package/dist/cjs/pds-chip.cjs.entry.js +1 -1
  72. package/dist/cjs/pds-chip.entry.cjs.js.map +1 -1
  73. package/dist/cjs/pds-combobox.cjs.entry.js +67 -27
  74. package/dist/cjs/pds-combobox.entry.cjs.js.map +1 -1
  75. package/dist/cjs/pds-copytext.cjs.entry.js +1 -1
  76. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +1 -1
  77. package/dist/cjs/pds-dropdown-menu-item.entry.cjs.js.map +1 -1
  78. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +4 -3
  79. package/dist/cjs/pds-dropdown-menu.entry.cjs.js.map +1 -1
  80. package/dist/cjs/pds-filter.cjs.entry.js +2 -2
  81. package/dist/cjs/pds-filter.entry.cjs.js.map +1 -1
  82. package/dist/cjs/pds-input.cjs.entry.js +7 -3
  83. package/dist/cjs/pds-input.entry.cjs.js.map +1 -1
  84. package/dist/cjs/pds-link.cjs.entry.js +1 -1
  85. package/dist/cjs/pds-modal.entry.cjs.js.map +1 -1
  86. package/dist/cjs/pds-multiselect.cjs.entry.js +592 -0
  87. package/dist/cjs/pds-multiselect.entry.cjs.js.map +1 -0
  88. package/dist/cjs/pds-popover.cjs.entry.js +1 -1
  89. package/dist/cjs/pds-progress.cjs.entry.js +1 -1
  90. package/dist/cjs/pds-property.cjs.entry.js +1 -1
  91. package/dist/cjs/pds-radio-group.cjs.entry.js +4 -4
  92. package/dist/cjs/pds-radio.cjs.entry.js +4 -4
  93. package/dist/cjs/pds-radio.entry.cjs.js.map +1 -1
  94. package/dist/cjs/pds-row.cjs.entry.js +1 -1
  95. package/dist/cjs/pds-select.cjs.entry.js +15 -3
  96. package/dist/cjs/pds-select.entry.cjs.js.map +1 -1
  97. package/dist/cjs/pds-sortable-item.cjs.entry.js +2 -2
  98. package/dist/cjs/pds-sortable.cjs.entry.js +1 -1
  99. package/dist/cjs/pds-switch.cjs.entry.js +4 -4
  100. package/dist/cjs/pds-tab.cjs.entry.js +4 -4
  101. package/dist/cjs/pds-tab.entry.cjs.js.map +1 -1
  102. package/dist/cjs/pds-table-body.cjs.entry.js +1 -1
  103. package/dist/cjs/pds-table-cell.cjs.entry.js +2 -2
  104. package/dist/cjs/pds-table-cell.entry.cjs.js.map +1 -1
  105. package/dist/cjs/pds-table-head-cell.cjs.entry.js +44 -6
  106. package/dist/cjs/pds-table-head-cell.entry.cjs.js.map +1 -1
  107. package/dist/cjs/pds-table-head.cjs.entry.js +1 -1
  108. package/dist/cjs/pds-table-row.cjs.entry.js +1 -1
  109. package/dist/cjs/pds-table.cjs.entry.js +42 -3
  110. package/dist/cjs/pds-table.entry.cjs.js.map +1 -1
  111. package/dist/cjs/pds-tabpanel.cjs.entry.js +1 -1
  112. package/dist/cjs/pds-tabs.cjs.entry.js +1 -1
  113. package/dist/cjs/pds-text.cjs.entry.js +1 -1
  114. package/dist/cjs/pds-textarea.cjs.entry.js +9 -5
  115. package/dist/cjs/pds-textarea.entry.cjs.js.map +1 -1
  116. package/dist/cjs/pds-toast.cjs.entry.js +3 -3
  117. package/dist/cjs/pds-tooltip.cjs.entry.js +3 -3
  118. package/dist/cjs/pine-core.cjs.js +1 -1
  119. package/dist/collection/collection-manifest.json +1 -0
  120. package/dist/collection/components/pds-avatar/pds-avatar.css +14 -1
  121. package/dist/collection/components/pds-avatar/pds-avatar.js +39 -4
  122. package/dist/collection/components/pds-avatar/pds-avatar.js.map +1 -1
  123. package/dist/collection/components/pds-avatar/stories/pds-avatar.stories.js +15 -0
  124. package/dist/collection/components/pds-box/pds-box.css +0 -191
  125. package/dist/collection/components/pds-button/pds-button.css +3 -0
  126. package/dist/collection/components/pds-checkbox/pds-checkbox.css +2 -0
  127. package/dist/collection/components/pds-chip/pds-chip.css +7 -0
  128. package/dist/collection/components/pds-combobox/pds-combobox.css +6 -1
  129. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.css +7 -4
  130. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.css +1 -1
  131. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +2 -1
  132. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js.map +1 -1
  133. package/dist/collection/components/pds-filters/pds-filter/pds-filter.css +7 -3
  134. package/dist/collection/components/pds-input/pds-input.css +2 -2
  135. package/dist/collection/components/pds-input/pds-input.js +24 -1
  136. package/dist/collection/components/pds-input/pds-input.js.map +1 -1
  137. package/dist/collection/components/pds-modal/pds-modal.css +1 -0
  138. package/dist/collection/components/pds-multiselect/multiselect-interface.js +2 -0
  139. package/dist/collection/components/pds-multiselect/multiselect-interface.js.map +1 -0
  140. package/dist/collection/components/pds-multiselect/pds-multiselect.css +232 -0
  141. package/dist/collection/components/pds-multiselect/pds-multiselect.js +1152 -0
  142. package/dist/collection/components/pds-multiselect/pds-multiselect.js.map +1 -0
  143. package/dist/collection/components/pds-multiselect/stories/pds-multiselect.stories.js +371 -0
  144. package/dist/collection/components/pds-popover/pds-popover.js +1 -1
  145. package/dist/collection/components/pds-progress/pds-progress.js +1 -1
  146. package/dist/collection/components/pds-property/pds-property.js +1 -1
  147. package/dist/collection/components/pds-radio/pds-radio.css +1 -0
  148. package/dist/collection/components/pds-radio/pds-radio.js +3 -3
  149. package/dist/collection/components/pds-radio-group/pds-radio-group.js +3 -3
  150. package/dist/collection/components/pds-row/pds-row.js +1 -1
  151. package/dist/collection/components/pds-select/pds-select.css +2 -2
  152. package/dist/collection/components/pds-select/pds-select.js +71 -2
  153. package/dist/collection/components/pds-select/pds-select.js.map +1 -1
  154. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +1 -1
  155. package/dist/collection/components/pds-sortable/pds-sortable.js +1 -1
  156. package/dist/collection/components/pds-switch/pds-switch.js +3 -3
  157. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js +1 -1
  158. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.css +1 -0
  159. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +2 -2
  160. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +1 -1
  161. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.css +1 -0
  162. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +90 -6
  163. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js.map +1 -1
  164. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +1 -1
  165. package/dist/collection/components/pds-table/pds-table.css +2 -0
  166. package/dist/collection/components/pds-table/pds-table.js +84 -3
  167. package/dist/collection/components/pds-table/pds-table.js.map +1 -1
  168. package/dist/collection/components/pds-table/stories/pds-table.stories.js +109 -4
  169. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.css +6 -2
  170. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js +3 -3
  171. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +1 -1
  172. package/dist/collection/components/pds-tabs/pds-tabs.js +1 -1
  173. package/dist/collection/components/pds-text/pds-text.js +1 -1
  174. package/dist/collection/components/pds-textarea/pds-textarea.js +27 -4
  175. package/dist/collection/components/pds-textarea/pds-textarea.js.map +1 -1
  176. package/dist/collection/components/pds-toast/pds-toast.js +3 -3
  177. package/dist/collection/components/pds-tooltip/pds-tooltip.js +2 -2
  178. package/dist/docs.json +1130 -123
  179. package/dist/esm/{floating-ui.dom-DbQzNDdQ.js → floating-ui.dom-BO6p966C.js} +163 -42
  180. package/dist/esm/floating-ui.dom-BO6p966C.js.map +1 -0
  181. package/dist/esm/{index-xbb79yLt.js → index-DY8eSueV.js} +3 -3
  182. package/dist/esm/index-DY8eSueV.js.map +1 -0
  183. package/dist/esm/loader.js +1 -1
  184. package/dist/esm/mock-pds-modal.entry.js.map +1 -1
  185. package/dist/esm/pds-accordion.entry.js +1 -1
  186. package/dist/esm/pds-avatar.entry.js +18 -6
  187. package/dist/esm/pds-avatar.entry.js.map +1 -1
  188. package/dist/esm/pds-button.entry.js +1 -1
  189. package/dist/esm/pds-button.entry.js.map +1 -1
  190. package/dist/esm/pds-checkbox.entry.js +1 -1
  191. package/dist/esm/pds-checkbox.entry.js.map +1 -1
  192. package/dist/esm/pds-chip.entry.js +1 -1
  193. package/dist/esm/pds-chip.entry.js.map +1 -1
  194. package/dist/esm/pds-combobox.entry.js +67 -27
  195. package/dist/esm/pds-combobox.entry.js.map +1 -1
  196. package/dist/esm/pds-copytext.entry.js +1 -1
  197. package/dist/esm/pds-dropdown-menu-item.entry.js +1 -1
  198. package/dist/esm/pds-dropdown-menu-item.entry.js.map +1 -1
  199. package/dist/esm/pds-dropdown-menu.entry.js +4 -3
  200. package/dist/esm/pds-dropdown-menu.entry.js.map +1 -1
  201. package/dist/esm/pds-filter.entry.js +2 -2
  202. package/dist/esm/pds-filter.entry.js.map +1 -1
  203. package/dist/esm/pds-input.entry.js +7 -3
  204. package/dist/esm/pds-input.entry.js.map +1 -1
  205. package/dist/esm/pds-link.entry.js +1 -1
  206. package/dist/esm/pds-modal.entry.js.map +1 -1
  207. package/dist/esm/pds-multiselect.entry.js +590 -0
  208. package/dist/esm/pds-multiselect.entry.js.map +1 -0
  209. package/dist/esm/pds-popover.entry.js +1 -1
  210. package/dist/esm/pds-progress.entry.js +1 -1
  211. package/dist/esm/pds-property.entry.js +1 -1
  212. package/dist/esm/pds-radio-group.entry.js +4 -4
  213. package/dist/esm/pds-radio.entry.js +4 -4
  214. package/dist/esm/pds-radio.entry.js.map +1 -1
  215. package/dist/esm/pds-row.entry.js +1 -1
  216. package/dist/esm/pds-select.entry.js +15 -3
  217. package/dist/esm/pds-select.entry.js.map +1 -1
  218. package/dist/esm/pds-sortable-item.entry.js +2 -2
  219. package/dist/esm/pds-sortable.entry.js +1 -1
  220. package/dist/esm/pds-switch.entry.js +4 -4
  221. package/dist/esm/pds-tab.entry.js +4 -4
  222. package/dist/esm/pds-tab.entry.js.map +1 -1
  223. package/dist/esm/pds-table-body.entry.js +1 -1
  224. package/dist/esm/pds-table-cell.entry.js +2 -2
  225. package/dist/esm/pds-table-cell.entry.js.map +1 -1
  226. package/dist/esm/pds-table-head-cell.entry.js +44 -6
  227. package/dist/esm/pds-table-head-cell.entry.js.map +1 -1
  228. package/dist/esm/pds-table-head.entry.js +1 -1
  229. package/dist/esm/pds-table-row.entry.js +1 -1
  230. package/dist/esm/pds-table.entry.js +42 -3
  231. package/dist/esm/pds-table.entry.js.map +1 -1
  232. package/dist/esm/pds-tabpanel.entry.js +1 -1
  233. package/dist/esm/pds-tabs.entry.js +1 -1
  234. package/dist/esm/pds-text.entry.js +1 -1
  235. package/dist/esm/pds-textarea.entry.js +9 -5
  236. package/dist/esm/pds-textarea.entry.js.map +1 -1
  237. package/dist/esm/pds-toast.entry.js +3 -3
  238. package/dist/esm/pds-tooltip.entry.js +3 -3
  239. package/dist/esm/pine-core.js +1 -1
  240. package/dist/esm-es5/floating-ui.dom-BO6p966C.js +2 -0
  241. package/dist/esm-es5/floating-ui.dom-BO6p966C.js.map +1 -0
  242. package/dist/esm-es5/{index-xbb79yLt.js → index-DY8eSueV.js} +1 -1
  243. package/dist/esm-es5/index-DY8eSueV.js.map +1 -0
  244. package/dist/esm-es5/loader.js +1 -1
  245. package/dist/esm-es5/mock-pds-modal.entry.js.map +1 -1
  246. package/dist/esm-es5/pds-accordion.entry.js +1 -1
  247. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  248. package/dist/esm-es5/pds-avatar.entry.js.map +1 -1
  249. package/dist/esm-es5/pds-button.entry.js +1 -1
  250. package/dist/esm-es5/pds-button.entry.js.map +1 -1
  251. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  252. package/dist/esm-es5/pds-checkbox.entry.js.map +1 -1
  253. package/dist/esm-es5/pds-chip.entry.js +1 -1
  254. package/dist/esm-es5/pds-chip.entry.js.map +1 -1
  255. package/dist/esm-es5/pds-combobox.entry.js +2 -2
  256. package/dist/esm-es5/pds-combobox.entry.js.map +1 -1
  257. package/dist/esm-es5/pds-copytext.entry.js +1 -1
  258. package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -1
  259. package/dist/esm-es5/pds-dropdown-menu-item.entry.js.map +1 -1
  260. package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
  261. package/dist/esm-es5/pds-dropdown-menu.entry.js.map +1 -1
  262. package/dist/esm-es5/pds-filter.entry.js +1 -1
  263. package/dist/esm-es5/pds-filter.entry.js.map +1 -1
  264. package/dist/esm-es5/pds-input.entry.js +1 -1
  265. package/dist/esm-es5/pds-input.entry.js.map +1 -1
  266. package/dist/esm-es5/pds-link.entry.js +1 -1
  267. package/dist/esm-es5/pds-modal.entry.js.map +1 -1
  268. package/dist/esm-es5/pds-multiselect.entry.js +2 -0
  269. package/dist/esm-es5/pds-multiselect.entry.js.map +1 -0
  270. package/dist/esm-es5/pds-popover.entry.js +1 -1
  271. package/dist/esm-es5/pds-progress.entry.js +1 -1
  272. package/dist/esm-es5/pds-property.entry.js +1 -1
  273. package/dist/esm-es5/pds-radio-group.entry.js +1 -1
  274. package/dist/esm-es5/pds-radio.entry.js +1 -1
  275. package/dist/esm-es5/pds-radio.entry.js.map +1 -1
  276. package/dist/esm-es5/pds-row.entry.js +1 -1
  277. package/dist/esm-es5/pds-select.entry.js +1 -1
  278. package/dist/esm-es5/pds-select.entry.js.map +1 -1
  279. package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
  280. package/dist/esm-es5/pds-sortable.entry.js +1 -1
  281. package/dist/esm-es5/pds-switch.entry.js +1 -1
  282. package/dist/esm-es5/pds-tab.entry.js +1 -1
  283. package/dist/esm-es5/pds-tab.entry.js.map +1 -1
  284. package/dist/esm-es5/pds-table-body.entry.js +1 -1
  285. package/dist/esm-es5/pds-table-cell.entry.js +1 -1
  286. package/dist/esm-es5/pds-table-cell.entry.js.map +1 -1
  287. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  288. package/dist/esm-es5/pds-table-head-cell.entry.js.map +1 -1
  289. package/dist/esm-es5/pds-table-head.entry.js +1 -1
  290. package/dist/esm-es5/pds-table-row.entry.js +1 -1
  291. package/dist/esm-es5/pds-table.entry.js +1 -1
  292. package/dist/esm-es5/pds-table.entry.js.map +1 -1
  293. package/dist/esm-es5/pds-tabpanel.entry.js +1 -1
  294. package/dist/esm-es5/pds-tabs.entry.js +1 -1
  295. package/dist/esm-es5/pds-text.entry.js +1 -1
  296. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  297. package/dist/esm-es5/pds-textarea.entry.js.map +1 -1
  298. package/dist/esm-es5/pds-toast.entry.js +1 -1
  299. package/dist/esm-es5/pds-tooltip.entry.js +1 -1
  300. package/dist/esm-es5/pine-core.js +1 -1
  301. package/dist/pine-core/mock-pds-modal.entry.esm.js.map +1 -1
  302. package/dist/pine-core/p-02f48157.system.entry.js +2 -0
  303. package/dist/pine-core/{p-b30424e3.system.entry.js → p-063afa19.system.entry.js} +2 -2
  304. package/dist/pine-core/p-0sPVsRFU.system.js.map +1 -0
  305. package/dist/pine-core/{p-15202869.entry.js → p-10dbe3e2.entry.js} +2 -2
  306. package/dist/pine-core/{p-5b7ab891.entry.js → p-12360e47.entry.js} +2 -2
  307. package/dist/pine-core/{p-ac14c8e3.system.entry.js → p-137b3289.system.entry.js} +2 -2
  308. package/dist/pine-core/{p-a737df90.entry.js → p-154a32f4.entry.js} +2 -2
  309. package/dist/pine-core/p-1ca116fa.entry.js +3 -0
  310. package/dist/pine-core/p-1ca116fa.entry.js.map +1 -0
  311. package/dist/pine-core/p-2537aacb.entry.js +2 -0
  312. package/dist/pine-core/p-2537aacb.entry.js.map +1 -0
  313. package/dist/pine-core/p-2cd0d520.entry.js +2 -0
  314. package/dist/pine-core/p-2cd0d520.entry.js.map +1 -0
  315. package/dist/pine-core/{p-cd335ec2.system.entry.js → p-2fe330d0.system.entry.js} +2 -2
  316. package/dist/pine-core/p-30ea3668.system.entry.js +2 -0
  317. package/dist/pine-core/{p-1daf66d1.entry.js → p-31168da5.entry.js} +2 -2
  318. package/dist/pine-core/{p-732e2564.system.entry.js → p-325b3b0d.system.entry.js} +2 -2
  319. package/dist/pine-core/p-32c13896.system.entry.js +2 -0
  320. package/dist/pine-core/p-32c13896.system.entry.js.map +1 -0
  321. package/dist/pine-core/{p-95f2782c.entry.js → p-3f97a965.entry.js} +2 -2
  322. package/dist/pine-core/{p-ff182316.system.entry.js → p-40988b4d.system.entry.js} +2 -2
  323. package/dist/pine-core/{p-b02936d2.entry.js → p-415ba884.entry.js} +2 -2
  324. package/dist/pine-core/p-475bb340.entry.js +2 -0
  325. package/dist/pine-core/p-475bb340.entry.js.map +1 -0
  326. package/dist/pine-core/{p-CGo2P4Fr.system.js.map → p-4EbKXnVN.system.js.map} +1 -1
  327. package/dist/pine-core/p-4alPHnzl.system.js.map +1 -0
  328. package/dist/pine-core/{p-9bfaed7e.system.entry.js → p-4c23c75b.system.entry.js} +2 -2
  329. package/dist/pine-core/{p-bdf8bff3.system.entry.js → p-4d85945b.system.entry.js} +2 -2
  330. package/dist/pine-core/{p-3f8b0885.system.entry.js → p-4d9eee67.system.entry.js} +2 -2
  331. package/dist/pine-core/{p-4fD2iHS9.system.js.map → p-4f1cRPxE.system.js.map} +1 -1
  332. package/dist/pine-core/{p-e2104c31.entry.js → p-5040a872.entry.js} +2 -2
  333. package/dist/pine-core/p-51114c2b.system.entry.js +2 -0
  334. package/dist/pine-core/p-51114c2b.system.entry.js.map +1 -0
  335. package/dist/pine-core/{p-bbc349b3.system.entry.js → p-5b3ac18e.system.entry.js} +2 -2
  336. package/dist/pine-core/{p-bbc349b3.system.entry.js.map → p-5b3ac18e.system.entry.js.map} +1 -1
  337. package/dist/pine-core/{p-a08b60ae.entry.js → p-5b9110fe.entry.js} +2 -2
  338. package/dist/pine-core/p-5c982339.system.entry.js +2 -0
  339. package/dist/pine-core/p-5c982339.system.entry.js.map +1 -0
  340. package/dist/pine-core/{p-94b1997d.system.entry.js → p-5e92aa34.system.entry.js} +2 -2
  341. package/dist/pine-core/{p-41d89f20.entry.js → p-5f2865df.entry.js} +2 -2
  342. package/dist/pine-core/{p-41d89f20.entry.js.map → p-5f2865df.entry.js.map} +1 -1
  343. package/dist/pine-core/p-6321b70b.entry.js +2 -0
  344. package/dist/pine-core/p-6321b70b.entry.js.map +1 -0
  345. package/dist/pine-core/p-63269b89.entry.js +2 -0
  346. package/dist/pine-core/p-6e862168.system.entry.js +2 -0
  347. package/dist/pine-core/{p-b8047816.system.entry.js.map → p-6e862168.system.entry.js.map} +1 -1
  348. package/dist/pine-core/{p-cf2e1c07.system.entry.js → p-70aa35fc.system.entry.js} +2 -2
  349. package/dist/pine-core/{p-fc0ee6da.entry.js → p-757c7b80.entry.js} +2 -2
  350. package/dist/pine-core/{p-1df25b57.system.entry.js → p-78ee2e08.system.entry.js} +2 -2
  351. package/dist/pine-core/{p-2319298c.system.entry.js → p-7b5c8248.system.entry.js} +2 -2
  352. package/dist/pine-core/{p-dad604e4.system.entry.js → p-84c7f663.system.entry.js} +2 -2
  353. package/dist/pine-core/{p-f9ef2f74.system.entry.js → p-87eb8d4b.system.entry.js} +2 -2
  354. package/dist/pine-core/p-8b201c9a.system.entry.js +2 -0
  355. package/dist/pine-core/p-8b201c9a.system.entry.js.map +1 -0
  356. package/dist/pine-core/p-8eb1c168.entry.js +2 -0
  357. package/dist/pine-core/{p-e5bc22b6.system.entry.js → p-8fdb10c4.system.entry.js} +2 -2
  358. package/dist/pine-core/{p-232e4282.system.entry.js → p-90615423.system.entry.js} +2 -2
  359. package/dist/pine-core/{p-f79f6f08.system.entry.js → p-932283cf.system.entry.js} +2 -2
  360. package/dist/pine-core/{p-0b05708b.entry.js → p-9ada659b.entry.js} +2 -2
  361. package/dist/pine-core/{p-4778ae70.entry.js → p-9bb6cc3d.entry.js} +2 -2
  362. package/dist/pine-core/p-9c0ec80a.entry.js +2 -0
  363. package/dist/pine-core/p-9c0ec80a.entry.js.map +1 -0
  364. package/dist/pine-core/{p-3f6b9520.entry.js → p-9c928c44.entry.js} +2 -2
  365. package/dist/pine-core/p-9e4fc025.entry.js +2 -0
  366. package/dist/pine-core/p-9e4fc025.entry.js.map +1 -0
  367. package/dist/pine-core/{p-e8aad8dc.entry.js → p-9eccf7b9.entry.js} +2 -2
  368. package/dist/pine-core/p-B0Otb6kF.system.js.map +1 -0
  369. package/dist/pine-core/{p-CUmDvil2.system.js.map → p-BA95hFrH.system.js.map} +1 -1
  370. package/dist/pine-core/p-BCKPcTKX.system.js.map +1 -1
  371. package/dist/pine-core/p-BHjZufAO.system.js.map +1 -0
  372. package/dist/pine-core/{p-DC2NZwtk.system.js.map → p-BJE1EIse.system.js.map} +1 -1
  373. package/dist/pine-core/{p-IH8oGXiE.system.js.map → p-BJtTt670.system.js.map} +1 -1
  374. package/dist/pine-core/p-BO6p966C.js +2 -0
  375. package/dist/pine-core/p-BO6p966C.js.map +1 -0
  376. package/dist/pine-core/{p-jBhqNO5u.system.js.map → p-BSRmAvMC.system.js.map} +1 -1
  377. package/dist/pine-core/{p-DyrNlfLT.system.js.map → p-BTe59phF.system.js.map} +1 -1
  378. package/dist/pine-core/p-BmKJgY0X.system.js.map +1 -0
  379. package/dist/pine-core/{p-B0Y1Zs9b.system.js.map → p-Bn36FPag.system.js.map} +1 -1
  380. package/dist/pine-core/p-C48G0LPH.system.js.map +1 -1
  381. package/dist/pine-core/p-CBCT89qf.system.js.map +1 -0
  382. package/dist/pine-core/p-CCgKUhC7.system.js.map +1 -0
  383. package/dist/pine-core/p-CG5jdxoZ.system.js.map +1 -0
  384. package/dist/pine-core/{p-CKzDRRgx.system.js → p-CP48ADFM.system.js} +1 -1
  385. package/dist/pine-core/p-CP48ADFM.system.js.map +1 -0
  386. package/dist/pine-core/p-CR01VmO6.system.js.map +1 -0
  387. package/dist/pine-core/{p-CAnnMfDw.system.js.map → p-CSLo9qKS.system.js.map} +1 -1
  388. package/dist/pine-core/{p-DmVKABQy.system.js.map → p-CboCokff.system.js.map} +1 -1
  389. package/dist/pine-core/p-CfZCQYfD.system.js.map +1 -0
  390. package/dist/pine-core/{p-r_cS5LMw.system.js.map → p-Civ2VHC7.system.js.map} +1 -1
  391. package/dist/pine-core/{p-ChiYqN-p.system.js.map → p-CmquVvkz.system.js.map} +1 -1
  392. package/dist/pine-core/{p-tHMXRB8d.system.js.map → p-CpyTw2IQ.system.js.map} +1 -1
  393. package/dist/pine-core/{p-Brpt0zl5.system.js.map → p-Ct9csNdF.system.js.map} +1 -1
  394. package/dist/pine-core/{p-B_Co5NfG.system.js.map → p-Cun139qe.system.js.map} +1 -1
  395. package/dist/pine-core/p-D2eS6fhD.system.js +2 -0
  396. package/dist/pine-core/p-D2eS6fhD.system.js.map +1 -0
  397. package/dist/pine-core/p-DFXWnbHE.system.js.map +1 -0
  398. package/dist/pine-core/{p-xbb79yLt.js → p-DY8eSueV.js} +1 -1
  399. package/dist/pine-core/p-DY8eSueV.js.map +1 -0
  400. package/dist/pine-core/p-DaXZLSA0.system.js.map +1 -0
  401. package/dist/pine-core/{p-DB45WSlG.system.js.map → p-DwQewDCV.system.js.map} +1 -1
  402. package/dist/pine-core/p-JAVnELnm.system.js +1 -1
  403. package/dist/pine-core/{p-DAvCgWA9.system.js.map → p-Lk6DnEPT.system.js.map} +1 -1
  404. package/dist/pine-core/p-YqHO7iPZ.system.js.map +1 -0
  405. package/dist/pine-core/{p-00568c20.system.entry.js → p-a07b8e45.system.entry.js} +2 -2
  406. package/dist/pine-core/p-a3bCMZF8.system.js.map +1 -0
  407. package/dist/pine-core/{p-c5013d20.entry.js → p-a3cdff85.entry.js} +2 -2
  408. package/dist/pine-core/{p-a4b16b32.system.entry.js → p-a5b24b1d.system.entry.js} +2 -2
  409. package/dist/pine-core/{p-596acf65.entry.js → p-a99e8caf.entry.js} +2 -2
  410. package/dist/pine-core/p-ac240034.system.entry.js +2 -0
  411. package/dist/pine-core/p-ac240034.system.entry.js.map +1 -0
  412. package/dist/pine-core/p-b9650ed9.system.entry.js +2 -0
  413. package/dist/pine-core/p-b9650ed9.system.entry.js.map +1 -0
  414. package/dist/pine-core/{p-f8fba315.entry.js → p-bc85016b.entry.js} +2 -2
  415. package/dist/pine-core/{p-61588eac.entry.js → p-bddc9c5a.entry.js} +2 -2
  416. package/dist/pine-core/p-bs74TBAh.system.js.map +1 -0
  417. package/dist/pine-core/{p-7de73ac5.entry.js → p-c24d11c7.entry.js} +2 -2
  418. package/dist/pine-core/p-c292e5da.system.entry.js +2 -0
  419. package/dist/pine-core/{p-c03e2c5d.system.entry.js.map → p-c292e5da.system.entry.js.map} +1 -1
  420. package/dist/pine-core/p-c68bceb1.entry.js +2 -0
  421. package/dist/pine-core/{p-41cc9270.entry.js.map → p-c68bceb1.entry.js.map} +1 -1
  422. package/dist/pine-core/{p-0ace9c16.entry.js → p-c7c00a27.entry.js} +2 -2
  423. package/dist/pine-core/{p-cb6c279a.system.entry.js → p-cac3128b.system.entry.js} +2 -2
  424. package/dist/pine-core/p-ccab748a.entry.js +2 -0
  425. package/dist/pine-core/p-ccab748a.entry.js.map +1 -0
  426. package/dist/pine-core/{p-131a8cff.system.entry.js → p-cfb24f97.system.entry.js} +2 -2
  427. package/dist/pine-core/p-cfb24f97.system.entry.js.map +1 -0
  428. package/dist/pine-core/p-d41112ad.entry.js +2 -0
  429. package/dist/pine-core/{p-4c0797f2.entry.js.map → p-d41112ad.entry.js.map} +1 -1
  430. package/dist/pine-core/{p-6cba6806.entry.js → p-d6302edd.entry.js} +2 -2
  431. package/dist/pine-core/p-d98310b9.system.entry.js +2 -0
  432. package/dist/pine-core/p-d98310b9.system.entry.js.map +1 -0
  433. package/dist/pine-core/{p-04294b28.system.entry.js → p-daa36570.system.entry.js} +2 -2
  434. package/dist/pine-core/p-db06ad25.system.entry.js +4 -0
  435. package/dist/pine-core/p-db06ad25.system.entry.js.map +1 -0
  436. package/dist/pine-core/{p-15650db8.entry.js → p-e6dc2297.entry.js} +2 -2
  437. package/dist/pine-core/{p-9f53eb94.system.entry.js → p-e8cf15d7.system.entry.js} +2 -2
  438. package/dist/pine-core/p-eb026745.entry.js +2 -0
  439. package/dist/pine-core/p-fa05ea14.entry.js +2 -0
  440. package/dist/pine-core/p-fa05ea14.entry.js.map +1 -0
  441. package/dist/pine-core/{p-D8Jc24Qq.system.js.map → p-htODgUCV.system.js.map} +1 -1
  442. package/dist/pine-core/{p-DYq1Mef8.system.js.map → p-j0609tLE.system.js.map} +1 -1
  443. package/dist/pine-core/{p-DoP8Sl1O.system.js.map → p-rcUX-rt5.system.js.map} +1 -1
  444. package/dist/pine-core/p-uyztncxJ.system.js.map +1 -0
  445. package/dist/pine-core/pds-avatar.entry.esm.js.map +1 -1
  446. package/dist/pine-core/pds-button.entry.esm.js.map +1 -1
  447. package/dist/pine-core/pds-checkbox.entry.esm.js.map +1 -1
  448. package/dist/pine-core/pds-chip.entry.esm.js.map +1 -1
  449. package/dist/pine-core/pds-combobox.entry.esm.js.map +1 -1
  450. package/dist/pine-core/pds-dropdown-menu-item.entry.esm.js.map +1 -1
  451. package/dist/pine-core/pds-dropdown-menu.entry.esm.js.map +1 -1
  452. package/dist/pine-core/pds-filter.entry.esm.js.map +1 -1
  453. package/dist/pine-core/pds-input.entry.esm.js.map +1 -1
  454. package/dist/pine-core/pds-modal.entry.esm.js.map +1 -1
  455. package/dist/pine-core/pds-multiselect.entry.esm.js.map +1 -0
  456. package/dist/pine-core/pds-radio.entry.esm.js.map +1 -1
  457. package/dist/pine-core/pds-select.entry.esm.js.map +1 -1
  458. package/dist/pine-core/pds-tab.entry.esm.js.map +1 -1
  459. package/dist/pine-core/pds-table-cell.entry.esm.js.map +1 -1
  460. package/dist/pine-core/pds-table-head-cell.entry.esm.js.map +1 -1
  461. package/dist/pine-core/pds-table.entry.esm.js.map +1 -1
  462. package/dist/pine-core/pds-textarea.entry.esm.js.map +1 -1
  463. package/dist/pine-core/pine-core.esm.js +1 -1
  464. package/dist/types/components/pds-avatar/pds-avatar.d.ts +5 -0
  465. package/dist/types/components/pds-input/pds-input.d.ts +5 -0
  466. package/dist/types/components/pds-multiselect/multiselect-interface.d.ts +24 -0
  467. package/dist/types/components/pds-multiselect/pds-multiselect.d.ts +175 -0
  468. package/dist/types/components/pds-select/pds-select.d.ts +16 -1
  469. package/dist/types/components/pds-table/pds-table-head-cell/pds-table-head-cell.d.ts +16 -0
  470. package/dist/types/components/pds-table/pds-table.d.ts +17 -1
  471. package/dist/types/components/pds-textarea/pds-textarea.d.ts +5 -0
  472. package/dist/types/components.d.ts +309 -1
  473. package/dist/vscode.html-data.json +190 -5
  474. package/hydrate/index.js +1016 -112
  475. package/hydrate/index.mjs +1016 -112
  476. package/package.json +5 -5
  477. package/dist/cjs/floating-ui.dom-DTAy35nv.js.map +0 -1
  478. package/dist/cjs/index-CMeuo765.js.map +0 -1
  479. package/dist/esm/floating-ui.dom-DbQzNDdQ.js.map +0 -1
  480. package/dist/esm/index-xbb79yLt.js.map +0 -1
  481. package/dist/esm-es5/floating-ui.dom-DbQzNDdQ.js +0 -2
  482. package/dist/esm-es5/floating-ui.dom-DbQzNDdQ.js.map +0 -1
  483. package/dist/esm-es5/index-xbb79yLt.js.map +0 -1
  484. package/dist/pine-core/p--gPqixhD.system.js.map +0 -1
  485. package/dist/pine-core/p-0c84a3f4.entry.js +0 -2
  486. package/dist/pine-core/p-0c84a3f4.entry.js.map +0 -1
  487. package/dist/pine-core/p-0fdffed5.entry.js +0 -2
  488. package/dist/pine-core/p-0fdffed5.entry.js.map +0 -1
  489. package/dist/pine-core/p-1282026f.entry.js +0 -2
  490. package/dist/pine-core/p-1282026f.entry.js.map +0 -1
  491. package/dist/pine-core/p-131a8cff.system.entry.js.map +0 -1
  492. package/dist/pine-core/p-198abda7.system.entry.js +0 -2
  493. package/dist/pine-core/p-198abda7.system.entry.js.map +0 -1
  494. package/dist/pine-core/p-20f255e6.entry.js +0 -2
  495. package/dist/pine-core/p-20f255e6.entry.js.map +0 -1
  496. package/dist/pine-core/p-41cc9270.entry.js +0 -2
  497. package/dist/pine-core/p-43990889.entry.js +0 -2
  498. package/dist/pine-core/p-49c1eab0.entry.js +0 -2
  499. package/dist/pine-core/p-49c1eab0.entry.js.map +0 -1
  500. package/dist/pine-core/p-4c0797f2.entry.js +0 -2
  501. package/dist/pine-core/p-54a02bb5.system.entry.js +0 -2
  502. package/dist/pine-core/p-54a02bb5.system.entry.js.map +0 -1
  503. package/dist/pine-core/p-553e4543.entry.js +0 -2
  504. package/dist/pine-core/p-553e4543.entry.js.map +0 -1
  505. package/dist/pine-core/p-5f6cd30d.system.entry.js +0 -2
  506. package/dist/pine-core/p-5f6cd30d.system.entry.js.map +0 -1
  507. package/dist/pine-core/p-66160018.entry.js +0 -3
  508. package/dist/pine-core/p-66160018.entry.js.map +0 -1
  509. package/dist/pine-core/p-98824683.entry.js +0 -2
  510. package/dist/pine-core/p-98824683.entry.js.map +0 -1
  511. package/dist/pine-core/p-BOmQOnQe.system.js +0 -2
  512. package/dist/pine-core/p-BOmQOnQe.system.js.map +0 -1
  513. package/dist/pine-core/p-BOn7G6db.system.js.map +0 -1
  514. package/dist/pine-core/p-CKzDRRgx.system.js.map +0 -1
  515. package/dist/pine-core/p-CTfQ_9yC.system.js.map +0 -1
  516. package/dist/pine-core/p-CTjTtD1R.system.js.map +0 -1
  517. package/dist/pine-core/p-CXGuX44q.system.js.map +0 -1
  518. package/dist/pine-core/p-Ch7MRoFE.system.js.map +0 -1
  519. package/dist/pine-core/p-DQawTYre.system.js.map +0 -1
  520. package/dist/pine-core/p-DQs506y8.system.js.map +0 -1
  521. package/dist/pine-core/p-DbQzNDdQ.js +0 -2
  522. package/dist/pine-core/p-DbQzNDdQ.js.map +0 -1
  523. package/dist/pine-core/p-DpeOrUYB.system.js.map +0 -1
  524. package/dist/pine-core/p-RO-Y2DRT.system.js.map +0 -1
  525. package/dist/pine-core/p-WhfStK1C.system.js.map +0 -1
  526. package/dist/pine-core/p-X0_TH-op.system.js.map +0 -1
  527. package/dist/pine-core/p-b59a0c6b.system.entry.js +0 -2
  528. package/dist/pine-core/p-b8047816.system.entry.js +0 -2
  529. package/dist/pine-core/p-bee8d4b8.system.entry.js +0 -4
  530. package/dist/pine-core/p-bee8d4b8.system.entry.js.map +0 -1
  531. package/dist/pine-core/p-c03e2c5d.system.entry.js +0 -2
  532. package/dist/pine-core/p-c2d17093.system.entry.js +0 -2
  533. package/dist/pine-core/p-c2d17093.system.entry.js.map +0 -1
  534. package/dist/pine-core/p-d0e336b7.system.entry.js +0 -2
  535. package/dist/pine-core/p-e3d81bee.system.entry.js +0 -2
  536. package/dist/pine-core/p-e3d81bee.system.entry.js.map +0 -1
  537. package/dist/pine-core/p-e7e25d42.entry.js +0 -2
  538. package/dist/pine-core/p-e846b67f.system.entry.js +0 -2
  539. package/dist/pine-core/p-e846b67f.system.entry.js.map +0 -1
  540. package/dist/pine-core/p-f92055f3.entry.js +0 -2
  541. package/dist/pine-core/p-pw5cGGlu.system.js.map +0 -1
  542. package/dist/pine-core/p-qkIMFuAW.system.js.map +0 -1
  543. package/dist/pine-core/p-uv97KtT8.system.js.map +0 -1
  544. package/dist/pine-core/p-xbb79yLt.js.map +0 -1
  545. /package/dist/pine-core/{p-b59a0c6b.system.entry.js.map → p-02f48157.system.entry.js.map} +0 -0
  546. /package/dist/pine-core/{p-b30424e3.system.entry.js.map → p-063afa19.system.entry.js.map} +0 -0
  547. /package/dist/pine-core/{p-15202869.entry.js.map → p-10dbe3e2.entry.js.map} +0 -0
  548. /package/dist/pine-core/{p-5b7ab891.entry.js.map → p-12360e47.entry.js.map} +0 -0
  549. /package/dist/pine-core/{p-ac14c8e3.system.entry.js.map → p-137b3289.system.entry.js.map} +0 -0
  550. /package/dist/pine-core/{p-a737df90.entry.js.map → p-154a32f4.entry.js.map} +0 -0
  551. /package/dist/pine-core/{p-cd335ec2.system.entry.js.map → p-2fe330d0.system.entry.js.map} +0 -0
  552. /package/dist/pine-core/{p-d0e336b7.system.entry.js.map → p-30ea3668.system.entry.js.map} +0 -0
  553. /package/dist/pine-core/{p-1daf66d1.entry.js.map → p-31168da5.entry.js.map} +0 -0
  554. /package/dist/pine-core/{p-732e2564.system.entry.js.map → p-325b3b0d.system.entry.js.map} +0 -0
  555. /package/dist/pine-core/{p-95f2782c.entry.js.map → p-3f97a965.entry.js.map} +0 -0
  556. /package/dist/pine-core/{p-ff182316.system.entry.js.map → p-40988b4d.system.entry.js.map} +0 -0
  557. /package/dist/pine-core/{p-b02936d2.entry.js.map → p-415ba884.entry.js.map} +0 -0
  558. /package/dist/pine-core/{p-9bfaed7e.system.entry.js.map → p-4c23c75b.system.entry.js.map} +0 -0
  559. /package/dist/pine-core/{p-bdf8bff3.system.entry.js.map → p-4d85945b.system.entry.js.map} +0 -0
  560. /package/dist/pine-core/{p-3f8b0885.system.entry.js.map → p-4d9eee67.system.entry.js.map} +0 -0
  561. /package/dist/pine-core/{p-e2104c31.entry.js.map → p-5040a872.entry.js.map} +0 -0
  562. /package/dist/pine-core/{p-a08b60ae.entry.js.map → p-5b9110fe.entry.js.map} +0 -0
  563. /package/dist/pine-core/{p-94b1997d.system.entry.js.map → p-5e92aa34.system.entry.js.map} +0 -0
  564. /package/dist/pine-core/{p-43990889.entry.js.map → p-63269b89.entry.js.map} +0 -0
  565. /package/dist/pine-core/{p-cf2e1c07.system.entry.js.map → p-70aa35fc.system.entry.js.map} +0 -0
  566. /package/dist/pine-core/{p-fc0ee6da.entry.js.map → p-757c7b80.entry.js.map} +0 -0
  567. /package/dist/pine-core/{p-1df25b57.system.entry.js.map → p-78ee2e08.system.entry.js.map} +0 -0
  568. /package/dist/pine-core/{p-2319298c.system.entry.js.map → p-7b5c8248.system.entry.js.map} +0 -0
  569. /package/dist/pine-core/{p-dad604e4.system.entry.js.map → p-84c7f663.system.entry.js.map} +0 -0
  570. /package/dist/pine-core/{p-f9ef2f74.system.entry.js.map → p-87eb8d4b.system.entry.js.map} +0 -0
  571. /package/dist/pine-core/{p-e7e25d42.entry.js.map → p-8eb1c168.entry.js.map} +0 -0
  572. /package/dist/pine-core/{p-e5bc22b6.system.entry.js.map → p-8fdb10c4.system.entry.js.map} +0 -0
  573. /package/dist/pine-core/{p-232e4282.system.entry.js.map → p-90615423.system.entry.js.map} +0 -0
  574. /package/dist/pine-core/{p-f79f6f08.system.entry.js.map → p-932283cf.system.entry.js.map} +0 -0
  575. /package/dist/pine-core/{p-0b05708b.entry.js.map → p-9ada659b.entry.js.map} +0 -0
  576. /package/dist/pine-core/{p-4778ae70.entry.js.map → p-9bb6cc3d.entry.js.map} +0 -0
  577. /package/dist/pine-core/{p-3f6b9520.entry.js.map → p-9c928c44.entry.js.map} +0 -0
  578. /package/dist/pine-core/{p-e8aad8dc.entry.js.map → p-9eccf7b9.entry.js.map} +0 -0
  579. /package/dist/pine-core/{p-00568c20.system.entry.js.map → p-a07b8e45.system.entry.js.map} +0 -0
  580. /package/dist/pine-core/{p-c5013d20.entry.js.map → p-a3cdff85.entry.js.map} +0 -0
  581. /package/dist/pine-core/{p-a4b16b32.system.entry.js.map → p-a5b24b1d.system.entry.js.map} +0 -0
  582. /package/dist/pine-core/{p-596acf65.entry.js.map → p-a99e8caf.entry.js.map} +0 -0
  583. /package/dist/pine-core/{p-f8fba315.entry.js.map → p-bc85016b.entry.js.map} +0 -0
  584. /package/dist/pine-core/{p-61588eac.entry.js.map → p-bddc9c5a.entry.js.map} +0 -0
  585. /package/dist/pine-core/{p-7de73ac5.entry.js.map → p-c24d11c7.entry.js.map} +0 -0
  586. /package/dist/pine-core/{p-0ace9c16.entry.js.map → p-c7c00a27.entry.js.map} +0 -0
  587. /package/dist/pine-core/{p-cb6c279a.system.entry.js.map → p-cac3128b.system.entry.js.map} +0 -0
  588. /package/dist/pine-core/{p-6cba6806.entry.js.map → p-d6302edd.entry.js.map} +0 -0
  589. /package/dist/pine-core/{p-04294b28.system.entry.js.map → p-daa36570.system.entry.js.map} +0 -0
  590. /package/dist/pine-core/{p-15650db8.entry.js.map → p-e6dc2297.entry.js.map} +0 -0
  591. /package/dist/pine-core/{p-9f53eb94.system.entry.js.map → p-e8cf15d7.system.entry.js.map} +0 -0
  592. /package/dist/pine-core/{p-f92055f3.entry.js.map → p-eb026745.entry.js.map} +0 -0
@@ -0,0 +1,1152 @@
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 { messageId, assignDescription } from "../../utils/form";
5
+ import { danger, enlarge } from "@pine-ds/icons/icons";
6
+ /**
7
+ * @slot (default) - Static option elements for the multiselect
8
+ * @slot empty - Custom empty state message when no options match
9
+ * @slot loading - Custom loading indicator
10
+ */
11
+ export class PdsMultiselect {
12
+ constructor() {
13
+ /**
14
+ * Placeholder text for the input field.
15
+ */
16
+ this.placeholder = 'Select...';
17
+ /**
18
+ * Array of selected option values.
19
+ */
20
+ this.value = [];
21
+ /**
22
+ * Determines whether or not the multiselect is disabled.
23
+ */
24
+ this.disabled = false;
25
+ /**
26
+ * HTTP method for async requests.
27
+ */
28
+ this.asyncMethod = 'GET';
29
+ /**
30
+ * Debounce delay in milliseconds for search/fetch.
31
+ */
32
+ this.debounce = 300;
33
+ /**
34
+ * Maximum height of the dropdown before scrolling.
35
+ */
36
+ this.maxHeight = '300px';
37
+ /**
38
+ * Width of the trigger button (and reference for dropdown positioning).
39
+ */
40
+ this.triggerWidth = '100%';
41
+ /**
42
+ * Minimum width of the dropdown panel.
43
+ */
44
+ this.minWidth = '250px';
45
+ /**
46
+ * Visually hides the label but keeps it accessible.
47
+ */
48
+ this.hideLabel = false;
49
+ /**
50
+ * If true, the multiselect is required.
51
+ */
52
+ this.required = false;
53
+ /**
54
+ * Whether the component is currently loading async options.
55
+ */
56
+ this.loading = false;
57
+ // Internal state
58
+ this.isOpen = false;
59
+ this.searchQuery = '';
60
+ this.highlightedIndex = -1;
61
+ this.internalOptions = [];
62
+ this.selectedItems = [];
63
+ this.currentPage = 1;
64
+ this.hasMore = false;
65
+ // Flag to prevent focusout from closing during open transition
66
+ this.isOpening = false;
67
+ this.handleTriggerClick = () => {
68
+ if (this.disabled)
69
+ return;
70
+ if (this.isOpen) {
71
+ this.closeDropdown();
72
+ }
73
+ else {
74
+ this.openDropdown();
75
+ }
76
+ };
77
+ this.handleTriggerKeyDown = (e) => {
78
+ switch (e.key) {
79
+ case 'ArrowDown':
80
+ case 'ArrowUp':
81
+ case 'Enter':
82
+ case ' ':
83
+ e.preventDefault();
84
+ if (!this.isOpen) {
85
+ this.openDropdown();
86
+ }
87
+ break;
88
+ }
89
+ };
90
+ this.handleSearchInputChange = (e) => {
91
+ const target = e.target;
92
+ this.searchQuery = target.value;
93
+ this.highlightedIndex = -1;
94
+ // Emit search event for consumer-managed async
95
+ this.pdsMultiselectSearch.emit({ query: this.searchQuery });
96
+ // Fetch from async URL if configured
97
+ if (this.asyncUrl) {
98
+ this.debouncedFetchAsyncOptions(this.searchQuery, 1);
99
+ }
100
+ };
101
+ this.handleSearchInputKeyDown = (e) => {
102
+ const filteredOptions = this.getFilteredOptions();
103
+ switch (e.key) {
104
+ case 'ArrowDown':
105
+ e.preventDefault();
106
+ this.highlightedIndex = Math.min(this.highlightedIndex + 1, filteredOptions.length - 1);
107
+ this.scrollOptionIntoView();
108
+ break;
109
+ case 'ArrowUp':
110
+ e.preventDefault();
111
+ this.highlightedIndex = Math.max(this.highlightedIndex - 1, 0);
112
+ this.scrollOptionIntoView();
113
+ break;
114
+ case 'Enter':
115
+ e.preventDefault();
116
+ if (this.highlightedIndex >= 0) {
117
+ const option = filteredOptions[this.highlightedIndex];
118
+ if (option) {
119
+ this.selectOption(option);
120
+ }
121
+ }
122
+ break;
123
+ // Escape is handled by the global @Listen('keydown') handler
124
+ case 'Tab':
125
+ this.closeDropdown();
126
+ break;
127
+ }
128
+ };
129
+ this.handleContainerFocusOut = () => {
130
+ // Use setTimeout to delay the check - this allows click events and focus transitions to complete
131
+ // before we decide to close the dropdown
132
+ setTimeout(() => {
133
+ var _a;
134
+ // Don't close if we're in the middle of opening or already closed
135
+ if (!this.isOpen || this.isOpening)
136
+ return;
137
+ const activeElement = document.activeElement;
138
+ // Check if focus is within our component's shadow root
139
+ const isInShadowRoot = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.contains(activeElement);
140
+ // Also check if focus is on the host element itself
141
+ const isOnHost = activeElement === this.el;
142
+ if (!isInShadowRoot && !isOnHost) {
143
+ this.closeDropdown();
144
+ }
145
+ }, 0);
146
+ };
147
+ this.handleOptionMouseDown = (option) => (e) => {
148
+ e.preventDefault(); // Prevent focus change
149
+ this.toggleOption(option);
150
+ };
151
+ this.handleOptionMouseEnter = (index) => () => {
152
+ this.highlightedIndex = index;
153
+ };
154
+ this.handleScroll = (e) => {
155
+ if (!this.asyncUrl || !this.hasMore || this.loading)
156
+ return;
157
+ const target = e.target;
158
+ const scrollBottom = target.scrollHeight - target.scrollTop - target.clientHeight;
159
+ // Load more when near bottom (within 50px)
160
+ if (scrollBottom < 50) {
161
+ this.pdsMultiselectLoadOptions.emit({
162
+ query: this.searchQuery,
163
+ page: this.currentPage + 1,
164
+ });
165
+ this.debouncedFetchAsyncOptions(this.searchQuery, this.currentPage + 1);
166
+ }
167
+ };
168
+ }
169
+ connectedCallback() {
170
+ if (this.el.attachInternals) {
171
+ this.internals = this.el.attachInternals();
172
+ }
173
+ }
174
+ componentWillLoad() {
175
+ this.originalSearchEmitter = this.pdsMultiselectSearch;
176
+ this.syncSelectedItems();
177
+ }
178
+ componentDidLoad() {
179
+ this.setupDebounce();
180
+ this.setupMutationObserver();
181
+ this.setupSlotChangeListener();
182
+ this.updateFormValue();
183
+ // Ensure preselected values sync after DOM is fully ready
184
+ // This handles cases where slot content loads after initial render (e.g., in docs/MDX)
185
+ requestAnimationFrame(() => {
186
+ this.updateOptionsFromSlot();
187
+ this.syncSelectedItems();
188
+ });
189
+ }
190
+ setupSlotChangeListener() {
191
+ var _a;
192
+ const slot = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot:not([name])');
193
+ if (slot) {
194
+ slot.addEventListener('slotchange', () => {
195
+ this.updateOptionsFromSlot();
196
+ this.syncSelectedItems();
197
+ });
198
+ // Also call it immediately in case content is already slotted
199
+ this.updateOptionsFromSlot();
200
+ }
201
+ }
202
+ disconnectedCallback() {
203
+ var _a, _b;
204
+ (_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
205
+ (_b = this.cleanupAutoUpdate) === null || _b === void 0 ? void 0 : _b.call(this);
206
+ this.clearAsyncFetchState();
207
+ }
208
+ setupDebounce() {
209
+ const { pdsMultiselectSearch, debounce, originalSearchEmitter } = this;
210
+ this.pdsMultiselectSearch = debounce === undefined
211
+ ? originalSearchEmitter !== null && originalSearchEmitter !== void 0 ? originalSearchEmitter : pdsMultiselectSearch
212
+ : debounceEvent(pdsMultiselectSearch, debounce);
213
+ }
214
+ valueChanged(newValue) {
215
+ // Handle JSON string values (from HTML attributes)
216
+ if (typeof newValue === 'string') {
217
+ try {
218
+ const parsed = JSON.parse(newValue);
219
+ if (Array.isArray(parsed)) {
220
+ this.value = parsed;
221
+ return; // The assignment will trigger this watcher again with the array
222
+ }
223
+ }
224
+ catch (_a) {
225
+ // Not valid JSON, treat as single value
226
+ this.value = newValue ? [newValue] : [];
227
+ return;
228
+ }
229
+ }
230
+ this.syncSelectedItems();
231
+ this.updateFormValue();
232
+ }
233
+ optionsChanged() {
234
+ if (this.options) {
235
+ this.internalOptions = [...this.options];
236
+ }
237
+ }
238
+ internalOptionsChanged() {
239
+ // Re-sync selected items when options become available
240
+ // This handles the case where value is set before options are loaded (e.g., from slot)
241
+ this.syncSelectedItems();
242
+ }
243
+ /**
244
+ * Sets focus on the trigger button.
245
+ */
246
+ async setFocus() {
247
+ var _a;
248
+ (_a = this.triggerEl) === null || _a === void 0 ? void 0 : _a.focus();
249
+ }
250
+ /**
251
+ * Handle global keyboard events for accessibility.
252
+ * Closes dropdown on Escape key press regardless of focus location.
253
+ */
254
+ handleWindowKeyDown(event) {
255
+ var _a;
256
+ if (!this.isOpen)
257
+ return;
258
+ if (event.key === 'Escape') {
259
+ event.preventDefault();
260
+ this.closeDropdown();
261
+ (_a = this.triggerEl) === null || _a === void 0 ? void 0 : _a.focus();
262
+ }
263
+ }
264
+ setupMutationObserver() {
265
+ this.observer = new MutationObserver(() => {
266
+ this.updateOptionsFromSlot();
267
+ });
268
+ this.observer.observe(this.el, {
269
+ childList: true,
270
+ subtree: true,
271
+ });
272
+ }
273
+ updateOptionsFromSlot() {
274
+ var _a;
275
+ const slot = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot:not([name])');
276
+ if (!slot)
277
+ return;
278
+ const options = slot.assignedElements({ flatten: true })
279
+ .filter((el) => el.tagName === 'OPTION')
280
+ .map(opt => ({
281
+ id: opt.value,
282
+ text: opt.textContent || opt.value,
283
+ }));
284
+ // Only update if we actually found options AND we're not using async/external options
285
+ // Don't clear internalOptions if slot returns empty (might be mid-DOM-update)
286
+ if (options.length > 0 && !this.asyncUrl && !this.options) {
287
+ this.internalOptions = options;
288
+ }
289
+ }
290
+ clearAsyncFetchState() {
291
+ var _a;
292
+ if (this.fetchDebounceTimer !== undefined) {
293
+ window.clearTimeout(this.fetchDebounceTimer);
294
+ this.fetchDebounceTimer = undefined;
295
+ }
296
+ (_a = this.abortController) === null || _a === void 0 ? void 0 : _a.abort();
297
+ this.abortController = undefined;
298
+ }
299
+ debouncedFetchAsyncOptions(query, page = 1) {
300
+ var _a;
301
+ if (!this.asyncUrl)
302
+ return;
303
+ if (this.fetchDebounceTimer !== undefined) {
304
+ window.clearTimeout(this.fetchDebounceTimer);
305
+ }
306
+ const delay = Math.max(0, (_a = this.debounce) !== null && _a !== void 0 ? _a : 0);
307
+ this.fetchDebounceTimer = window.setTimeout(() => {
308
+ this.fetchDebounceTimer = undefined;
309
+ this.fetchOptions(query, page);
310
+ }, delay);
311
+ }
312
+ syncSelectedItems() {
313
+ // Ensure value is an array (may be string from HTML attribute)
314
+ const valueArray = this.ensureValueArray();
315
+ const allOptions = this.getAllOptions();
316
+ this.selectedItems = valueArray
317
+ .map(val => allOptions.find(opt => String(opt.id) === String(val)))
318
+ .filter((opt) => opt !== undefined);
319
+ }
320
+ ensureValueArray() {
321
+ // Handle JSON string values passed via HTML attribute
322
+ if (typeof this.value === 'string') {
323
+ try {
324
+ const parsed = JSON.parse(this.value);
325
+ if (Array.isArray(parsed)) {
326
+ this.value = parsed;
327
+ return parsed;
328
+ }
329
+ }
330
+ catch (_a) {
331
+ // Not valid JSON, treat as single value
332
+ const singleValue = this.value;
333
+ this.value = singleValue ? [singleValue] : [];
334
+ return this.value;
335
+ }
336
+ }
337
+ return Array.isArray(this.value) ? this.value : [];
338
+ }
339
+ getAllOptions() {
340
+ return this.options || this.internalOptions;
341
+ }
342
+ getFilteredOptions() {
343
+ const allOptions = this.getAllOptions();
344
+ const query = this.searchQuery.toLowerCase();
345
+ return allOptions.filter(opt => {
346
+ // Filter by search query only - don't filter out selected items
347
+ if (query) {
348
+ return opt.text.toLowerCase().includes(query);
349
+ }
350
+ return true;
351
+ });
352
+ }
353
+ updateFormValue() {
354
+ var _a;
355
+ if ((_a = this.internals) === null || _a === void 0 ? void 0 : _a.setFormValue) {
356
+ // Ensure value is an array before iterating
357
+ const valueArray = this.ensureValueArray();
358
+ // Submit as multiple values with same name (native select multiple behavior)
359
+ const formData = new FormData();
360
+ valueArray.forEach(val => {
361
+ if (this.name) {
362
+ formData.append(this.name, val);
363
+ }
364
+ });
365
+ this.internals.setFormValue(formData);
366
+ // Update validity state for required validation
367
+ if (this.required && valueArray.length === 0) {
368
+ this.internals.setValidity({ valueMissing: true }, 'Please select at least one option.', this.triggerEl);
369
+ }
370
+ else {
371
+ this.internals.setValidity({});
372
+ }
373
+ }
374
+ }
375
+ async fetchOptions(query, page = 1) {
376
+ var _a;
377
+ if (!this.asyncUrl)
378
+ return;
379
+ (_a = this.abortController) === null || _a === void 0 ? void 0 : _a.abort();
380
+ this.abortController = new AbortController();
381
+ this.loading = true;
382
+ try {
383
+ const url = new URL(this.asyncUrl, window.location.origin);
384
+ if (this.asyncMethod === 'GET') {
385
+ url.searchParams.set('search', query);
386
+ url.searchParams.set('page', String(page));
387
+ }
388
+ const response = await fetch(url.toString(), Object.assign({ method: this.asyncMethod, signal: this.abortController.signal, headers: {
389
+ 'Content-Type': 'application/json',
390
+ 'Accept': 'application/json',
391
+ } }, (this.asyncMethod === 'POST' && {
392
+ body: JSON.stringify({ search: query, page }),
393
+ })));
394
+ if (!response.ok)
395
+ throw new Error('Failed to fetch options');
396
+ const data = await response.json();
397
+ const formattedResults = data.results.map(item => {
398
+ if (this.formatResult) {
399
+ return this.formatResult(item);
400
+ }
401
+ return Object.assign({ id: item.id, text: item.text }, item);
402
+ });
403
+ if (page === 1) {
404
+ this.internalOptions = formattedResults;
405
+ }
406
+ else {
407
+ this.internalOptions = [...this.internalOptions, ...formattedResults];
408
+ }
409
+ this.hasMore = data.totalCount ? this.internalOptions.length < data.totalCount : false;
410
+ this.currentPage = page;
411
+ }
412
+ catch (error) {
413
+ if (error.name !== 'AbortError') {
414
+ console.error('PdsMultiselect: Failed to fetch options', error);
415
+ }
416
+ }
417
+ finally {
418
+ this.loading = false;
419
+ }
420
+ }
421
+ openDropdown() {
422
+ if (this.disabled)
423
+ return;
424
+ this.isOpening = true;
425
+ this.isOpen = true;
426
+ this.highlightedIndex = -1;
427
+ // Trigger initial fetch if async
428
+ if (this.asyncUrl && this.internalOptions.length === 0) {
429
+ this.debouncedFetchAsyncOptions(this.searchQuery, 1);
430
+ }
431
+ requestAnimationFrame(() => {
432
+ var _a;
433
+ this.positionDropdown();
434
+ // Focus the search input after the panel is positioned
435
+ (_a = this.searchInputEl) === null || _a === void 0 ? void 0 : _a.focus();
436
+ // Clear the opening flag after focus has moved
437
+ setTimeout(() => {
438
+ this.isOpening = false;
439
+ }, 50);
440
+ });
441
+ }
442
+ closeDropdown() {
443
+ this.isOpen = false;
444
+ this.highlightedIndex = -1;
445
+ this.searchQuery = '';
446
+ // Clean up auto-update
447
+ if (this.cleanupAutoUpdate) {
448
+ this.cleanupAutoUpdate();
449
+ this.cleanupAutoUpdate = undefined;
450
+ }
451
+ }
452
+ positionDropdown() {
453
+ if (!this.containerEl || !this.panelEl)
454
+ return;
455
+ const referenceEl = this.triggerEl || this.containerEl;
456
+ const { minWidth, panelWidth } = this;
457
+ const updatePosition = () => {
458
+ computePosition(referenceEl, this.panelEl, {
459
+ placement: 'bottom-start',
460
+ strategy: 'absolute',
461
+ middleware: [
462
+ offset(12),
463
+ flip(),
464
+ shift({ padding: 8 }),
465
+ size({
466
+ apply: ({ rects, elements }) => {
467
+ Object.assign(elements.floating.style, {
468
+ width: panelWidth !== null && panelWidth !== void 0 ? panelWidth : `${rects.reference.width}px`,
469
+ minWidth,
470
+ });
471
+ },
472
+ }),
473
+ ],
474
+ }).then(({ x, y }) => {
475
+ if (this.panelEl) {
476
+ this.panelEl.style.left = `${x}px`;
477
+ this.panelEl.style.top = `${y}px`;
478
+ }
479
+ });
480
+ };
481
+ // Initial position
482
+ updatePosition();
483
+ // Set up auto-update for window resize and scroll
484
+ const cleanupAutoUpdate = autoUpdate(referenceEl, this.panelEl, updatePosition);
485
+ this.cleanupAutoUpdate = () => {
486
+ cleanupAutoUpdate();
487
+ this.clearAsyncFetchState();
488
+ };
489
+ }
490
+ scrollOptionIntoView() {
491
+ requestAnimationFrame(() => {
492
+ var _a;
493
+ const highlighted = (_a = this.listboxEl) === null || _a === void 0 ? void 0 : _a.querySelector(`[data-index="${this.highlightedIndex}"]`);
494
+ highlighted === null || highlighted === void 0 ? void 0 : highlighted.scrollIntoView({ block: 'nearest', behavior: 'smooth' });
495
+ });
496
+ }
497
+ toggleOption(option) {
498
+ var _a;
499
+ const isSelected = this.value.includes(String(option.id));
500
+ if (isSelected) {
501
+ // Remove from selection
502
+ const newValue = this.value.filter(v => v !== String(option.id));
503
+ this.value = newValue;
504
+ const newSelectedItems = this.selectedItems.filter(item => String(item.id) !== String(option.id));
505
+ this.pdsMultiselectChange.emit({
506
+ values: newValue,
507
+ items: newSelectedItems,
508
+ });
509
+ }
510
+ else {
511
+ // Add to selection
512
+ if (this.maxSelections && this.value.length >= this.maxSelections) {
513
+ return;
514
+ }
515
+ const newValue = [...this.value, String(option.id)];
516
+ this.value = newValue;
517
+ const newSelectedItems = [...this.selectedItems, option];
518
+ this.pdsMultiselectChange.emit({
519
+ values: newValue,
520
+ items: newSelectedItems,
521
+ });
522
+ }
523
+ // Keep focus on search input, don't close dropdown
524
+ (_a = this.searchInputEl) === null || _a === void 0 ? void 0 : _a.focus();
525
+ }
526
+ selectOption(option) {
527
+ // For keyboard navigation - toggle the option
528
+ this.toggleOption(option);
529
+ }
530
+ renderSelectedItemsList() {
531
+ if (this.selectedItems.length === 0)
532
+ return null;
533
+ 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))))));
534
+ }
535
+ renderDropdown() {
536
+ if (!this.isOpen)
537
+ return null;
538
+ const filteredOptions = this.getFilteredOptions();
539
+ const valueArray = this.ensureValueArray();
540
+ const hasSlottedEmpty = !!this.el.querySelector('[slot="empty"]');
541
+ const hasSlottedLoading = !!this.el.querySelector('[slot="loading"]');
542
+ 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: "Find...", value: this.searchQuery, "aria-label": "Search options", "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 || 'Options', 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, "No options found")))), filteredOptions.map((option, index) => {
543
+ const isSelected = valueArray.includes(String(option.id));
544
+ const isHighlighted = index === this.highlightedIndex;
545
+ const optionId = `${this.componentId}-option-${index}`;
546
+ return (h("li", { key: String(option.id), id: optionId, class: {
547
+ 'pds-multiselect__option': true,
548
+ 'pds-multiselect__option--highlighted': isHighlighted,
549
+ 'pds-multiselect__option--selected': isSelected,
550
+ }, role: "option", "aria-selected": isSelected ? 'true' : 'false', "data-index": index, onMouseDown: this.handleOptionMouseDown(option), onMouseEnter: this.handleOptionMouseEnter(index) }, h("pds-checkbox", { componentId: `${this.componentId}-checkbox-${index}`, checked: isSelected, label: option.text, style: { pointerEvents: 'none' } })));
551
+ }), this.hasMore && !this.loading && (h("li", { class: "pds-multiselect__load-more", role: "presentation" }, h("pds-loader", { size: "small" }))))));
552
+ }
553
+ getTriggerText() {
554
+ const count = this.selectedItems.length;
555
+ if (count === 0) {
556
+ return this.placeholder || 'Select...';
557
+ }
558
+ return `${count} item${count === 1 ? '' : 's'}`;
559
+ }
560
+ render() {
561
+ const hasSelections = this.selectedItems.length > 0;
562
+ return (h(Host, { key: '0d8a40829a0a7f2cf89d9fbe036c0880d17652c0', "aria-disabled": this.disabled ? 'true' : null }, h("div", { key: '375297b4cc85ca3afd28965b2138fcd144a42474', class: "pds-multiselect" }, this.label && (h("label", { key: '3976caded352614dbae48b710d8615f2c46fe688', htmlFor: this.componentId, class: {
563
+ 'pds-multiselect__label': true,
564
+ 'visually-hidden': this.hideLabel,
565
+ } }, this.label)), h("div", { key: 'ec02d5c84873688d155be28b0cdd8c495d60d796', class: "pds-multiselect__wrapper", ref: el => (this.containerEl = el), onFocusout: this.handleContainerFocusOut, style: { width: this.triggerWidth } }, h("button", { key: '87c5a8847d26e18425389dd8fd8f1f198263a7c0', ref: el => (this.triggerEl = el), type: "button", class: {
566
+ 'pds-multiselect__trigger': true,
567
+ 'pds-multiselect__trigger--open': this.isOpen,
568
+ 'pds-multiselect__trigger--disabled': this.disabled,
569
+ 'pds-multiselect__trigger--invalid': this.invalid || !!this.errorMessage,
570
+ 'pds-multiselect__trigger--has-value': hasSelections,
571
+ }, 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.errorMessage || this.helperMessage), "aria-invalid": this.invalid || !!this.errorMessage ? 'true' : undefined, onClick: this.handleTriggerClick, onKeyDown: this.handleTriggerKeyDown }, h("span", { key: '4660140f3fa4201b5706b6e4870e463ed718cd0d', class: {
572
+ 'pds-multiselect__trigger-text': true,
573
+ 'pds-multiselect__trigger-text--placeholder': !hasSelections,
574
+ } }, this.getTriggerText()), h("pds-icon", { key: 'dbba532de1a4b915c64b3b79d414cf3b53203c5f', class: "pds-multiselect__icon", icon: enlarge })), this.renderDropdown()), this.helperMessage && !this.errorMessage && (h("p", { key: '0524ae0fabff8365f9bf61ab71878c6d3bec362d', class: "pds-multiselect__helper", id: messageId(this.componentId, 'helper') }, this.helperMessage)), this.errorMessage && (h("p", { key: 'e014047181cb25a40fae151797406cdd726ee3ea', class: "pds-multiselect__error", id: messageId(this.componentId, 'error') }, h("pds-icon", { key: '45cd498f7f60b4b15193e16a6521bb2324cca06d', icon: danger, size: "small" }), this.errorMessage)), h("div", { key: 'fc24922ae45ef799a34f5fa696cd7a5e4e1d945f', style: { display: 'none' } }, h("slot", { key: '0c3a84477eabf0779e84feaf2b936b3ca7ad9606' })))));
575
+ }
576
+ static get is() { return "pds-multiselect"; }
577
+ static get encapsulation() { return "shadow"; }
578
+ static get formAssociated() { return true; }
579
+ static get originalStyleUrls() {
580
+ return {
581
+ "$": ["pds-multiselect.scss"]
582
+ };
583
+ }
584
+ static get styleUrls() {
585
+ return {
586
+ "$": ["pds-multiselect.css"]
587
+ };
588
+ }
589
+ static get properties() {
590
+ return {
591
+ "componentId": {
592
+ "type": "string",
593
+ "mutable": false,
594
+ "complexType": {
595
+ "original": "string",
596
+ "resolved": "string",
597
+ "references": {}
598
+ },
599
+ "required": true,
600
+ "optional": false,
601
+ "docs": {
602
+ "tags": [],
603
+ "text": "A unique identifier used for the underlying component `id` attribute."
604
+ },
605
+ "getter": false,
606
+ "setter": false,
607
+ "reflect": false,
608
+ "attribute": "component-id"
609
+ },
610
+ "label": {
611
+ "type": "string",
612
+ "mutable": false,
613
+ "complexType": {
614
+ "original": "string",
615
+ "resolved": "string",
616
+ "references": {}
617
+ },
618
+ "required": false,
619
+ "optional": true,
620
+ "docs": {
621
+ "tags": [],
622
+ "text": "Text to be displayed as the multiselect label."
623
+ },
624
+ "getter": false,
625
+ "setter": false,
626
+ "reflect": false,
627
+ "attribute": "label"
628
+ },
629
+ "placeholder": {
630
+ "type": "string",
631
+ "mutable": false,
632
+ "complexType": {
633
+ "original": "string",
634
+ "resolved": "string",
635
+ "references": {}
636
+ },
637
+ "required": false,
638
+ "optional": true,
639
+ "docs": {
640
+ "tags": [],
641
+ "text": "Placeholder text for the input field."
642
+ },
643
+ "getter": false,
644
+ "setter": false,
645
+ "reflect": false,
646
+ "attribute": "placeholder",
647
+ "defaultValue": "'Select...'"
648
+ },
649
+ "name": {
650
+ "type": "string",
651
+ "mutable": false,
652
+ "complexType": {
653
+ "original": "string",
654
+ "resolved": "string",
655
+ "references": {}
656
+ },
657
+ "required": false,
658
+ "optional": true,
659
+ "docs": {
660
+ "tags": [],
661
+ "text": "Specifies the name. Submitted with the form as part of a name/value pair."
662
+ },
663
+ "getter": false,
664
+ "setter": false,
665
+ "reflect": false,
666
+ "attribute": "name"
667
+ },
668
+ "value": {
669
+ "type": "unknown",
670
+ "mutable": true,
671
+ "complexType": {
672
+ "original": "string[]",
673
+ "resolved": "string[]",
674
+ "references": {}
675
+ },
676
+ "required": false,
677
+ "optional": false,
678
+ "docs": {
679
+ "tags": [],
680
+ "text": "Array of selected option values."
681
+ },
682
+ "getter": false,
683
+ "setter": false,
684
+ "defaultValue": "[]"
685
+ },
686
+ "disabled": {
687
+ "type": "boolean",
688
+ "mutable": false,
689
+ "complexType": {
690
+ "original": "boolean",
691
+ "resolved": "boolean",
692
+ "references": {}
693
+ },
694
+ "required": false,
695
+ "optional": false,
696
+ "docs": {
697
+ "tags": [],
698
+ "text": "Determines whether or not the multiselect is disabled."
699
+ },
700
+ "getter": false,
701
+ "setter": false,
702
+ "reflect": false,
703
+ "attribute": "disabled",
704
+ "defaultValue": "false"
705
+ },
706
+ "asyncUrl": {
707
+ "type": "string",
708
+ "mutable": false,
709
+ "complexType": {
710
+ "original": "string",
711
+ "resolved": "string",
712
+ "references": {}
713
+ },
714
+ "required": false,
715
+ "optional": true,
716
+ "docs": {
717
+ "tags": [],
718
+ "text": "URL endpoint for async data fetching."
719
+ },
720
+ "getter": false,
721
+ "setter": false,
722
+ "reflect": false,
723
+ "attribute": "async-url"
724
+ },
725
+ "asyncMethod": {
726
+ "type": "string",
727
+ "mutable": false,
728
+ "complexType": {
729
+ "original": "'GET' | 'POST'",
730
+ "resolved": "\"GET\" | \"POST\"",
731
+ "references": {}
732
+ },
733
+ "required": false,
734
+ "optional": false,
735
+ "docs": {
736
+ "tags": [],
737
+ "text": "HTTP method for async requests."
738
+ },
739
+ "getter": false,
740
+ "setter": false,
741
+ "reflect": false,
742
+ "attribute": "async-method",
743
+ "defaultValue": "'GET'"
744
+ },
745
+ "debounce": {
746
+ "type": "number",
747
+ "mutable": false,
748
+ "complexType": {
749
+ "original": "number",
750
+ "resolved": "number",
751
+ "references": {}
752
+ },
753
+ "required": false,
754
+ "optional": false,
755
+ "docs": {
756
+ "tags": [],
757
+ "text": "Debounce delay in milliseconds for search/fetch."
758
+ },
759
+ "getter": false,
760
+ "setter": false,
761
+ "reflect": false,
762
+ "attribute": "debounce",
763
+ "defaultValue": "300"
764
+ },
765
+ "maxSelections": {
766
+ "type": "number",
767
+ "mutable": false,
768
+ "complexType": {
769
+ "original": "number",
770
+ "resolved": "number",
771
+ "references": {}
772
+ },
773
+ "required": false,
774
+ "optional": true,
775
+ "docs": {
776
+ "tags": [],
777
+ "text": "Maximum number of selections allowed."
778
+ },
779
+ "getter": false,
780
+ "setter": false,
781
+ "reflect": false,
782
+ "attribute": "max-selections"
783
+ },
784
+ "maxHeight": {
785
+ "type": "string",
786
+ "mutable": false,
787
+ "complexType": {
788
+ "original": "string",
789
+ "resolved": "string",
790
+ "references": {}
791
+ },
792
+ "required": false,
793
+ "optional": false,
794
+ "docs": {
795
+ "tags": [],
796
+ "text": "Maximum height of the dropdown before scrolling."
797
+ },
798
+ "getter": false,
799
+ "setter": false,
800
+ "reflect": false,
801
+ "attribute": "max-height",
802
+ "defaultValue": "'300px'"
803
+ },
804
+ "triggerWidth": {
805
+ "type": "string",
806
+ "mutable": false,
807
+ "complexType": {
808
+ "original": "string",
809
+ "resolved": "string",
810
+ "references": {}
811
+ },
812
+ "required": false,
813
+ "optional": false,
814
+ "docs": {
815
+ "tags": [],
816
+ "text": "Width of the trigger button (and reference for dropdown positioning)."
817
+ },
818
+ "getter": false,
819
+ "setter": false,
820
+ "reflect": false,
821
+ "attribute": "trigger-width",
822
+ "defaultValue": "'100%'"
823
+ },
824
+ "minWidth": {
825
+ "type": "string",
826
+ "mutable": false,
827
+ "complexType": {
828
+ "original": "string",
829
+ "resolved": "string",
830
+ "references": {}
831
+ },
832
+ "required": false,
833
+ "optional": false,
834
+ "docs": {
835
+ "tags": [],
836
+ "text": "Minimum width of the dropdown panel."
837
+ },
838
+ "getter": false,
839
+ "setter": false,
840
+ "reflect": false,
841
+ "attribute": "min-width",
842
+ "defaultValue": "'250px'"
843
+ },
844
+ "panelWidth": {
845
+ "type": "string",
846
+ "mutable": false,
847
+ "complexType": {
848
+ "original": "string",
849
+ "resolved": "string",
850
+ "references": {}
851
+ },
852
+ "required": false,
853
+ "optional": true,
854
+ "docs": {
855
+ "tags": [],
856
+ "text": "Width of the dropdown panel. Defaults to the trigger width."
857
+ },
858
+ "getter": false,
859
+ "setter": false,
860
+ "reflect": false,
861
+ "attribute": "panel-width"
862
+ },
863
+ "hideLabel": {
864
+ "type": "boolean",
865
+ "mutable": false,
866
+ "complexType": {
867
+ "original": "boolean",
868
+ "resolved": "boolean",
869
+ "references": {}
870
+ },
871
+ "required": false,
872
+ "optional": false,
873
+ "docs": {
874
+ "tags": [],
875
+ "text": "Visually hides the label but keeps it accessible."
876
+ },
877
+ "getter": false,
878
+ "setter": false,
879
+ "reflect": false,
880
+ "attribute": "hide-label",
881
+ "defaultValue": "false"
882
+ },
883
+ "errorMessage": {
884
+ "type": "string",
885
+ "mutable": false,
886
+ "complexType": {
887
+ "original": "string",
888
+ "resolved": "string",
889
+ "references": {}
890
+ },
891
+ "required": false,
892
+ "optional": true,
893
+ "docs": {
894
+ "tags": [],
895
+ "text": "Error message to display."
896
+ },
897
+ "getter": false,
898
+ "setter": false,
899
+ "reflect": false,
900
+ "attribute": "error-message"
901
+ },
902
+ "helperMessage": {
903
+ "type": "string",
904
+ "mutable": false,
905
+ "complexType": {
906
+ "original": "string",
907
+ "resolved": "string",
908
+ "references": {}
909
+ },
910
+ "required": false,
911
+ "optional": true,
912
+ "docs": {
913
+ "tags": [],
914
+ "text": "Helper message to display below the input."
915
+ },
916
+ "getter": false,
917
+ "setter": false,
918
+ "reflect": false,
919
+ "attribute": "helper-message"
920
+ },
921
+ "invalid": {
922
+ "type": "boolean",
923
+ "mutable": false,
924
+ "complexType": {
925
+ "original": "boolean",
926
+ "resolved": "boolean",
927
+ "references": {}
928
+ },
929
+ "required": false,
930
+ "optional": true,
931
+ "docs": {
932
+ "tags": [],
933
+ "text": "If true, the multiselect is in an invalid state."
934
+ },
935
+ "getter": false,
936
+ "setter": false,
937
+ "reflect": false,
938
+ "attribute": "invalid"
939
+ },
940
+ "required": {
941
+ "type": "boolean",
942
+ "mutable": false,
943
+ "complexType": {
944
+ "original": "boolean",
945
+ "resolved": "boolean",
946
+ "references": {}
947
+ },
948
+ "required": false,
949
+ "optional": false,
950
+ "docs": {
951
+ "tags": [],
952
+ "text": "If true, the multiselect is required."
953
+ },
954
+ "getter": false,
955
+ "setter": false,
956
+ "reflect": false,
957
+ "attribute": "required",
958
+ "defaultValue": "false"
959
+ },
960
+ "loading": {
961
+ "type": "boolean",
962
+ "mutable": true,
963
+ "complexType": {
964
+ "original": "boolean",
965
+ "resolved": "boolean",
966
+ "references": {}
967
+ },
968
+ "required": false,
969
+ "optional": false,
970
+ "docs": {
971
+ "tags": [],
972
+ "text": "Whether the component is currently loading async options."
973
+ },
974
+ "getter": false,
975
+ "setter": false,
976
+ "reflect": false,
977
+ "attribute": "loading",
978
+ "defaultValue": "false"
979
+ },
980
+ "options": {
981
+ "type": "unknown",
982
+ "mutable": false,
983
+ "complexType": {
984
+ "original": "MultiselectOption[]",
985
+ "resolved": "MultiselectOption[]",
986
+ "references": {
987
+ "MultiselectOption": {
988
+ "location": "import",
989
+ "path": "./multiselect-interface",
990
+ "id": "src/components/pds-multiselect/multiselect-interface.ts::MultiselectOption"
991
+ }
992
+ }
993
+ },
994
+ "required": false,
995
+ "optional": true,
996
+ "docs": {
997
+ "tags": [],
998
+ "text": "Options provided externally (for consumer-managed async)."
999
+ },
1000
+ "getter": false,
1001
+ "setter": false
1002
+ },
1003
+ "formatResult": {
1004
+ "type": "unknown",
1005
+ "mutable": false,
1006
+ "complexType": {
1007
+ "original": "(item: unknown) => MultiselectOption",
1008
+ "resolved": "(item: unknown) => MultiselectOption",
1009
+ "references": {
1010
+ "MultiselectOption": {
1011
+ "location": "import",
1012
+ "path": "./multiselect-interface",
1013
+ "id": "src/components/pds-multiselect/multiselect-interface.ts::MultiselectOption"
1014
+ }
1015
+ }
1016
+ },
1017
+ "required": false,
1018
+ "optional": true,
1019
+ "docs": {
1020
+ "tags": [],
1021
+ "text": "Function to format async results. Receives raw API response item."
1022
+ },
1023
+ "getter": false,
1024
+ "setter": false
1025
+ }
1026
+ };
1027
+ }
1028
+ static get states() {
1029
+ return {
1030
+ "isOpen": {},
1031
+ "searchQuery": {},
1032
+ "highlightedIndex": {},
1033
+ "internalOptions": {},
1034
+ "selectedItems": {},
1035
+ "currentPage": {},
1036
+ "hasMore": {}
1037
+ };
1038
+ }
1039
+ static get events() {
1040
+ return [{
1041
+ "method": "pdsMultiselectChange",
1042
+ "name": "pdsMultiselectChange",
1043
+ "bubbles": true,
1044
+ "cancelable": true,
1045
+ "composed": true,
1046
+ "docs": {
1047
+ "tags": [],
1048
+ "text": "Emitted when selection changes."
1049
+ },
1050
+ "complexType": {
1051
+ "original": "MultiselectChangeEventDetail",
1052
+ "resolved": "MultiselectChangeEventDetail",
1053
+ "references": {
1054
+ "MultiselectChangeEventDetail": {
1055
+ "location": "import",
1056
+ "path": "./multiselect-interface",
1057
+ "id": "src/components/pds-multiselect/multiselect-interface.ts::MultiselectChangeEventDetail"
1058
+ }
1059
+ }
1060
+ }
1061
+ }, {
1062
+ "method": "pdsMultiselectSearch",
1063
+ "name": "pdsMultiselectSearch",
1064
+ "bubbles": true,
1065
+ "cancelable": true,
1066
+ "composed": true,
1067
+ "docs": {
1068
+ "tags": [],
1069
+ "text": "Emitted on search input (for consumer-managed async)."
1070
+ },
1071
+ "complexType": {
1072
+ "original": "MultiselectSearchEventDetail",
1073
+ "resolved": "MultiselectSearchEventDetail",
1074
+ "references": {
1075
+ "MultiselectSearchEventDetail": {
1076
+ "location": "import",
1077
+ "path": "./multiselect-interface",
1078
+ "id": "src/components/pds-multiselect/multiselect-interface.ts::MultiselectSearchEventDetail"
1079
+ }
1080
+ }
1081
+ }
1082
+ }, {
1083
+ "method": "pdsMultiselectLoadOptions",
1084
+ "name": "pdsMultiselectLoadOptions",
1085
+ "bubbles": true,
1086
+ "cancelable": true,
1087
+ "composed": true,
1088
+ "docs": {
1089
+ "tags": [],
1090
+ "text": "Emitted to request more options (pagination)."
1091
+ },
1092
+ "complexType": {
1093
+ "original": "MultiselectLoadOptionsEventDetail",
1094
+ "resolved": "MultiselectLoadOptionsEventDetail",
1095
+ "references": {
1096
+ "MultiselectLoadOptionsEventDetail": {
1097
+ "location": "import",
1098
+ "path": "./multiselect-interface",
1099
+ "id": "src/components/pds-multiselect/multiselect-interface.ts::MultiselectLoadOptionsEventDetail"
1100
+ }
1101
+ }
1102
+ }
1103
+ }];
1104
+ }
1105
+ static get methods() {
1106
+ return {
1107
+ "setFocus": {
1108
+ "complexType": {
1109
+ "signature": "() => Promise<void>",
1110
+ "parameters": [],
1111
+ "references": {
1112
+ "Promise": {
1113
+ "location": "global",
1114
+ "id": "global::Promise"
1115
+ }
1116
+ },
1117
+ "return": "Promise<void>"
1118
+ },
1119
+ "docs": {
1120
+ "text": "Sets focus on the trigger button.",
1121
+ "tags": []
1122
+ }
1123
+ }
1124
+ };
1125
+ }
1126
+ static get elementRef() { return "el"; }
1127
+ static get watchers() {
1128
+ return [{
1129
+ "propName": "debounce",
1130
+ "methodName": "setupDebounce"
1131
+ }, {
1132
+ "propName": "value",
1133
+ "methodName": "valueChanged"
1134
+ }, {
1135
+ "propName": "options",
1136
+ "methodName": "optionsChanged"
1137
+ }, {
1138
+ "propName": "internalOptions",
1139
+ "methodName": "internalOptionsChanged"
1140
+ }];
1141
+ }
1142
+ static get listeners() {
1143
+ return [{
1144
+ "name": "keydown",
1145
+ "method": "handleWindowKeyDown",
1146
+ "target": "window",
1147
+ "capture": false,
1148
+ "passive": false
1149
+ }];
1150
+ }
1151
+ }
1152
+ //# sourceMappingURL=pds-multiselect.js.map