@pine-ds/core 3.22.0 → 3.23.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 (700) hide show
  1. package/components/floating-ui.dom.js +142 -129
  2. package/components/floating-ui.dom.js.map +1 -1
  3. package/components/form.js +14 -1
  4. package/components/form.js.map +1 -1
  5. package/components/index2.js +1 -1
  6. package/components/index2.js.map +1 -1
  7. package/components/mock-pds-modal.js +1 -1
  8. package/components/pds-alert.js +1 -1
  9. package/components/pds-alert.js.map +1 -1
  10. package/components/pds-avatar.js +1 -1
  11. package/components/pds-avatar.js.map +1 -1
  12. package/components/pds-checkbox2.js +5 -7
  13. package/components/pds-checkbox2.js.map +1 -1
  14. package/components/pds-chip2.js +1 -1
  15. package/components/pds-chip2.js.map +1 -1
  16. package/components/pds-combobox.js +46 -41
  17. package/components/pds-combobox.js.map +1 -1
  18. package/components/pds-copytext.js +1 -1
  19. package/components/pds-divider.js +1 -1
  20. package/components/pds-dropdown-menu-item.js +1 -1
  21. package/components/pds-dropdown-menu-item.js.map +1 -1
  22. package/components/pds-dropdown-menu-separator.js +1 -1
  23. package/components/pds-dropdown-menu.js +1 -1
  24. package/components/pds-filter.js +1 -1
  25. package/components/pds-filters.js +1 -1
  26. package/components/pds-image.js +2 -2
  27. package/components/pds-input.js +5 -3
  28. package/components/pds-input.js.map +1 -1
  29. package/components/pds-link2.js +2 -2
  30. package/components/pds-loader2.js +1 -1
  31. package/components/pds-modal-content.js +2 -2
  32. package/components/pds-modal-footer.js +1 -1
  33. package/components/pds-modal-header.js +1 -1
  34. package/components/pds-modal.js +3 -3
  35. package/components/pds-multiselect.js +199 -40
  36. package/components/pds-multiselect.js.map +1 -1
  37. package/components/pds-popover.js +1 -1
  38. package/components/pds-progress.js +1 -1
  39. package/components/pds-property.js +1 -1
  40. package/components/pds-radio-group.js +3 -3
  41. package/components/pds-radio.js +3 -3
  42. package/components/pds-row.js +1 -1
  43. package/components/pds-select.js +4 -2
  44. package/components/pds-select.js.map +1 -1
  45. package/components/pds-sortable-item.js +2 -2
  46. package/components/pds-sortable-item.js.map +1 -1
  47. package/components/pds-sortable.js +98 -93
  48. package/components/pds-sortable.js.map +1 -1
  49. package/components/pds-switch.js +5 -7
  50. package/components/pds-switch.js.map +1 -1
  51. package/components/pds-tab.js +3 -3
  52. package/components/pds-table-body.js +1 -1
  53. package/components/pds-table-cell2.js +2 -2
  54. package/components/pds-table-head-cell2.js +2 -2
  55. package/components/pds-table-head.js +1 -1
  56. package/components/pds-table-row.js +1 -1
  57. package/components/pds-tabpanel.js +1 -1
  58. package/components/pds-tabs.js +1 -1
  59. package/components/pds-text2.js +1 -1
  60. package/components/pds-textarea.js +8 -6
  61. package/components/pds-textarea.js.map +1 -1
  62. package/components/pds-toast.js +3 -3
  63. package/components/pds-toast.js.map +1 -1
  64. package/components/pds-tooltip.js +2 -2
  65. package/dist/cjs/{floating-ui.dom-Ca6tS7ef.js → floating-ui.dom-BZk7Blsu.js} +144 -131
  66. package/dist/cjs/floating-ui.dom-BZk7Blsu.js.map +1 -0
  67. package/dist/cjs/{form-DUqlzovE.js → form-CpM5Z8q7.js} +16 -2
  68. package/dist/cjs/form-CpM5Z8q7.js.map +1 -0
  69. package/dist/cjs/{index-D8mNsvM8.js → index-DGBoDsAL.js} +3 -3
  70. package/dist/cjs/index-DGBoDsAL.js.map +1 -0
  71. package/dist/cjs/loader.cjs.js +1 -1
  72. package/dist/cjs/mock-pds-modal.cjs.entry.js +1 -1
  73. package/dist/cjs/pds-accordion.cjs.entry.js +1 -1
  74. package/dist/cjs/pds-alert.cjs.entry.js +1 -1
  75. package/dist/cjs/pds-alert.entry.cjs.js.map +1 -1
  76. package/dist/cjs/pds-avatar.cjs.entry.js +2 -2
  77. package/dist/cjs/pds-avatar.entry.cjs.js.map +1 -1
  78. package/dist/cjs/pds-button.cjs.entry.js +1 -1
  79. package/dist/cjs/pds-checkbox.cjs.entry.js +6 -8
  80. package/dist/cjs/pds-checkbox.entry.cjs.js.map +1 -1
  81. package/dist/cjs/pds-chip.cjs.entry.js +2 -2
  82. package/dist/cjs/pds-chip.entry.cjs.js.map +1 -1
  83. package/dist/cjs/pds-combobox.cjs.entry.js +46 -42
  84. package/dist/cjs/pds-combobox.entry.cjs.js.map +1 -1
  85. package/dist/cjs/pds-copytext.cjs.entry.js +4 -4
  86. package/dist/cjs/pds-divider.cjs.entry.js +1 -1
  87. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +1 -1
  88. package/dist/cjs/pds-dropdown-menu-item.entry.cjs.js.map +1 -1
  89. package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +1 -1
  90. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +2 -2
  91. package/dist/cjs/pds-filter.cjs.entry.js +2 -2
  92. package/dist/cjs/pds-filters.cjs.entry.js +1 -1
  93. package/dist/cjs/pds-image.cjs.entry.js +2 -2
  94. package/dist/cjs/pds-input.cjs.entry.js +6 -4
  95. package/dist/cjs/pds-input.entry.cjs.js.map +1 -1
  96. package/dist/cjs/pds-link.cjs.entry.js +3 -3
  97. package/dist/cjs/pds-loader.cjs.entry.js +1 -1
  98. package/dist/cjs/pds-modal-content.cjs.entry.js +2 -2
  99. package/dist/cjs/pds-modal-footer.cjs.entry.js +1 -1
  100. package/dist/cjs/pds-modal-header.cjs.entry.js +1 -1
  101. package/dist/cjs/pds-modal.cjs.entry.js +3 -3
  102. package/dist/cjs/pds-multiselect.cjs.entry.js +187 -38
  103. package/dist/cjs/pds-multiselect.entry.cjs.js.map +1 -1
  104. package/dist/cjs/pds-popover.cjs.entry.js +1 -1
  105. package/dist/cjs/pds-progress.cjs.entry.js +1 -1
  106. package/dist/cjs/pds-property.cjs.entry.js +1 -1
  107. package/dist/cjs/pds-radio-group.cjs.entry.js +5 -5
  108. package/dist/cjs/pds-radio.cjs.entry.js +5 -5
  109. package/dist/cjs/pds-row.cjs.entry.js +1 -1
  110. package/dist/cjs/pds-select.cjs.entry.js +5 -3
  111. package/dist/cjs/pds-select.entry.cjs.js.map +1 -1
  112. package/dist/cjs/pds-sortable-item.cjs.entry.js +3 -3
  113. package/dist/cjs/pds-sortable-item.entry.cjs.js.map +1 -1
  114. package/dist/cjs/pds-sortable.cjs.entry.js +95 -93
  115. package/dist/cjs/pds-sortable.entry.cjs.js.map +1 -1
  116. package/dist/cjs/pds-switch.cjs.entry.js +6 -8
  117. package/dist/cjs/pds-switch.entry.cjs.js.map +1 -1
  118. package/dist/cjs/pds-tab.cjs.entry.js +3 -3
  119. package/dist/cjs/pds-table-body.cjs.entry.js +1 -1
  120. package/dist/cjs/pds-table-cell.cjs.entry.js +4 -4
  121. package/dist/cjs/pds-table-head-cell.cjs.entry.js +3 -3
  122. package/dist/cjs/pds-table-head.cjs.entry.js +1 -1
  123. package/dist/cjs/pds-table-row.cjs.entry.js +1 -1
  124. package/dist/cjs/pds-tabpanel.cjs.entry.js +1 -1
  125. package/dist/cjs/pds-tabs.cjs.entry.js +1 -1
  126. package/dist/cjs/pds-text.cjs.entry.js +3 -3
  127. package/dist/cjs/pds-textarea.cjs.entry.js +9 -7
  128. package/dist/cjs/pds-textarea.entry.cjs.js.map +1 -1
  129. package/dist/cjs/pds-toast.cjs.entry.js +3 -3
  130. package/dist/cjs/pds-toast.entry.cjs.js.map +1 -1
  131. package/dist/cjs/pds-tooltip.cjs.entry.js +3 -3
  132. package/dist/cjs/pine-core.cjs.js +1 -1
  133. package/dist/cjs/{truncation-tooltip-BGGnm8SZ.js → truncation-tooltip-CVzAha5B.js} +3 -3
  134. package/dist/cjs/{truncation-tooltip-BGGnm8SZ.js.map → truncation-tooltip-CVzAha5B.js.map} +1 -1
  135. package/dist/collection/components/pds-alert/pds-alert.js +2 -1
  136. package/dist/collection/components/pds-alert/pds-alert.js.map +1 -1
  137. package/dist/collection/components/pds-avatar/pds-avatar.js +3 -1
  138. package/dist/collection/components/pds-avatar/pds-avatar.js.map +1 -1
  139. package/dist/collection/components/pds-checkbox/pds-checkbox.js +5 -7
  140. package/dist/collection/components/pds-checkbox/pds-checkbox.js.map +1 -1
  141. package/dist/collection/components/pds-chip/pds-chip.js +2 -1
  142. package/dist/collection/components/pds-chip/pds-chip.js.map +1 -1
  143. package/dist/collection/components/pds-combobox/pds-combobox.css +5 -0
  144. package/dist/collection/components/pds-combobox/pds-combobox.js +53 -37
  145. package/dist/collection/components/pds-combobox/pds-combobox.js.map +1 -1
  146. package/dist/collection/components/pds-copytext/pds-copytext.js +1 -1
  147. package/dist/collection/components/pds-divider/pds-divider.js +1 -1
  148. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js +4 -1
  149. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js.map +1 -1
  150. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js +1 -1
  151. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +1 -1
  152. package/dist/collection/components/pds-filters/pds-filter/pds-filter.js +1 -1
  153. package/dist/collection/components/pds-filters/pds-filters.js +1 -1
  154. package/dist/collection/components/pds-image/pds-image.js +2 -2
  155. package/dist/collection/components/pds-input/pds-input.css +3 -0
  156. package/dist/collection/components/pds-input/pds-input.js +4 -2
  157. package/dist/collection/components/pds-input/pds-input.js.map +1 -1
  158. package/dist/collection/components/pds-link/pds-link.js +2 -2
  159. package/dist/collection/components/pds-loader/pds-loader.js +1 -1
  160. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js +2 -2
  161. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js +1 -1
  162. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js +1 -1
  163. package/dist/collection/components/pds-modal/pds-modal.js +3 -3
  164. package/dist/collection/components/pds-modal/test/mock-pds-modal.js +1 -1
  165. package/dist/collection/components/pds-multiselect/multiselect-interface.js.map +1 -1
  166. package/dist/collection/components/pds-multiselect/pds-multiselect.css +83 -1
  167. package/dist/collection/components/pds-multiselect/pds-multiselect.js +258 -37
  168. package/dist/collection/components/pds-multiselect/pds-multiselect.js.map +1 -1
  169. package/dist/collection/components/pds-multiselect/stories/pds-multiselect.stories.js +226 -0
  170. package/dist/collection/components/pds-popover/pds-popover.js +1 -1
  171. package/dist/collection/components/pds-progress/pds-progress.js +1 -1
  172. package/dist/collection/components/pds-property/pds-property.js +1 -1
  173. package/dist/collection/components/pds-radio/pds-radio.js +3 -3
  174. package/dist/collection/components/pds-radio-group/pds-radio-group.js +3 -3
  175. package/dist/collection/components/pds-row/pds-row.js +1 -1
  176. package/dist/collection/components/pds-select/pds-select.js +4 -2
  177. package/dist/collection/components/pds-select/pds-select.js.map +1 -1
  178. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.css +12 -2
  179. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +1 -1
  180. package/dist/collection/components/pds-sortable/pds-sortable.js +46 -4
  181. package/dist/collection/components/pds-sortable/pds-sortable.js.map +1 -1
  182. package/dist/collection/components/pds-sortable/sortable-interface.js.map +1 -1
  183. package/dist/collection/components/pds-sortable/stories/pds-sortable.stories.js +19 -4
  184. package/dist/collection/components/pds-switch/pds-switch.js +5 -7
  185. package/dist/collection/components/pds-switch/pds-switch.js.map +1 -1
  186. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js +1 -1
  187. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +2 -2
  188. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +1 -1
  189. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +2 -2
  190. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +1 -1
  191. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js +3 -3
  192. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +1 -1
  193. package/dist/collection/components/pds-tabs/pds-tabs.js +1 -1
  194. package/dist/collection/components/pds-text/pds-text.js +1 -1
  195. package/dist/collection/components/pds-textarea/pds-textarea.js +8 -6
  196. package/dist/collection/components/pds-textarea/pds-textarea.js.map +1 -1
  197. package/dist/collection/components/pds-toast/pds-toast.js +6 -3
  198. package/dist/collection/components/pds-toast/pds-toast.js.map +1 -1
  199. package/dist/collection/components/pds-tooltip/pds-tooltip.js +2 -2
  200. package/dist/collection/utils/form.js +13 -0
  201. package/dist/collection/utils/form.js.map +1 -1
  202. package/dist/docs.json +222 -15
  203. package/dist/esm/{floating-ui.dom-BO6p966C.js → floating-ui.dom-DDtwbwIl.js} +144 -131
  204. package/dist/esm/floating-ui.dom-DDtwbwIl.js.map +1 -0
  205. package/dist/esm/{form-CN-lL5QG.js → form-C3xDZBme.js} +16 -3
  206. package/dist/esm/form-C3xDZBme.js.map +1 -0
  207. package/dist/esm/{index-Bmf4Ow_8.js → index-D4ys0pep.js} +3 -3
  208. package/dist/esm/index-D4ys0pep.js.map +1 -0
  209. package/dist/esm/loader.js +1 -1
  210. package/dist/esm/mock-pds-modal.entry.js +1 -1
  211. package/dist/esm/pds-accordion.entry.js +1 -1
  212. package/dist/esm/pds-alert.entry.js +1 -1
  213. package/dist/esm/pds-alert.entry.js.map +1 -1
  214. package/dist/esm/pds-avatar.entry.js +2 -2
  215. package/dist/esm/pds-avatar.entry.js.map +1 -1
  216. package/dist/esm/pds-button.entry.js +1 -1
  217. package/dist/esm/pds-checkbox.entry.js +6 -8
  218. package/dist/esm/pds-checkbox.entry.js.map +1 -1
  219. package/dist/esm/pds-chip.entry.js +2 -2
  220. package/dist/esm/pds-chip.entry.js.map +1 -1
  221. package/dist/esm/pds-combobox.entry.js +46 -42
  222. package/dist/esm/pds-combobox.entry.js.map +1 -1
  223. package/dist/esm/pds-copytext.entry.js +4 -4
  224. package/dist/esm/pds-divider.entry.js +1 -1
  225. package/dist/esm/pds-dropdown-menu-item.entry.js +1 -1
  226. package/dist/esm/pds-dropdown-menu-item.entry.js.map +1 -1
  227. package/dist/esm/pds-dropdown-menu-separator.entry.js +1 -1
  228. package/dist/esm/pds-dropdown-menu.entry.js +2 -2
  229. package/dist/esm/pds-filter.entry.js +2 -2
  230. package/dist/esm/pds-filters.entry.js +1 -1
  231. package/dist/esm/pds-image.entry.js +2 -2
  232. package/dist/esm/pds-input.entry.js +6 -4
  233. package/dist/esm/pds-input.entry.js.map +1 -1
  234. package/dist/esm/pds-link.entry.js +3 -3
  235. package/dist/esm/pds-loader.entry.js +1 -1
  236. package/dist/esm/pds-modal-content.entry.js +2 -2
  237. package/dist/esm/pds-modal-footer.entry.js +1 -1
  238. package/dist/esm/pds-modal-header.entry.js +1 -1
  239. package/dist/esm/pds-modal.entry.js +3 -3
  240. package/dist/esm/pds-multiselect.entry.js +187 -38
  241. package/dist/esm/pds-multiselect.entry.js.map +1 -1
  242. package/dist/esm/pds-popover.entry.js +1 -1
  243. package/dist/esm/pds-progress.entry.js +1 -1
  244. package/dist/esm/pds-property.entry.js +1 -1
  245. package/dist/esm/pds-radio-group.entry.js +5 -5
  246. package/dist/esm/pds-radio.entry.js +5 -5
  247. package/dist/esm/pds-row.entry.js +1 -1
  248. package/dist/esm/pds-select.entry.js +5 -3
  249. package/dist/esm/pds-select.entry.js.map +1 -1
  250. package/dist/esm/pds-sortable-item.entry.js +3 -3
  251. package/dist/esm/pds-sortable-item.entry.js.map +1 -1
  252. package/dist/esm/pds-sortable.entry.js +95 -93
  253. package/dist/esm/pds-sortable.entry.js.map +1 -1
  254. package/dist/esm/pds-switch.entry.js +6 -8
  255. package/dist/esm/pds-switch.entry.js.map +1 -1
  256. package/dist/esm/pds-tab.entry.js +3 -3
  257. package/dist/esm/pds-table-body.entry.js +1 -1
  258. package/dist/esm/pds-table-cell.entry.js +4 -4
  259. package/dist/esm/pds-table-head-cell.entry.js +3 -3
  260. package/dist/esm/pds-table-head.entry.js +1 -1
  261. package/dist/esm/pds-table-row.entry.js +1 -1
  262. package/dist/esm/pds-tabpanel.entry.js +1 -1
  263. package/dist/esm/pds-tabs.entry.js +1 -1
  264. package/dist/esm/pds-text.entry.js +3 -3
  265. package/dist/esm/pds-textarea.entry.js +9 -7
  266. package/dist/esm/pds-textarea.entry.js.map +1 -1
  267. package/dist/esm/pds-toast.entry.js +3 -3
  268. package/dist/esm/pds-toast.entry.js.map +1 -1
  269. package/dist/esm/pds-tooltip.entry.js +3 -3
  270. package/dist/esm/pine-core.js +1 -1
  271. package/dist/esm/{truncation-tooltip-CTHpMbU3.js → truncation-tooltip-Blk4GigP.js} +3 -3
  272. package/dist/{esm-es5/truncation-tooltip-CTHpMbU3.js.map → esm/truncation-tooltip-Blk4GigP.js.map} +1 -1
  273. package/dist/esm-es5/floating-ui.dom-DDtwbwIl.js +2 -0
  274. package/dist/esm-es5/floating-ui.dom-DDtwbwIl.js.map +1 -0
  275. package/dist/esm-es5/{form-CN-lL5QG.js → form-C3xDZBme.js} +2 -2
  276. package/dist/esm-es5/form-C3xDZBme.js.map +1 -0
  277. package/dist/esm-es5/{index-Bmf4Ow_8.js → index-D4ys0pep.js} +1 -1
  278. package/dist/esm-es5/index-D4ys0pep.js.map +1 -0
  279. package/dist/esm-es5/loader.js +1 -1
  280. package/dist/esm-es5/mock-pds-modal.entry.js +1 -1
  281. package/dist/esm-es5/pds-accordion.entry.js +1 -1
  282. package/dist/esm-es5/pds-alert.entry.js +1 -1
  283. package/dist/esm-es5/pds-alert.entry.js.map +1 -1
  284. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  285. package/dist/esm-es5/pds-avatar.entry.js.map +1 -1
  286. package/dist/esm-es5/pds-button.entry.js +1 -1
  287. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  288. package/dist/esm-es5/pds-checkbox.entry.js.map +1 -1
  289. package/dist/esm-es5/pds-chip.entry.js +1 -1
  290. package/dist/esm-es5/pds-chip.entry.js.map +1 -1
  291. package/dist/esm-es5/pds-combobox.entry.js +2 -2
  292. package/dist/esm-es5/pds-combobox.entry.js.map +1 -1
  293. package/dist/esm-es5/pds-copytext.entry.js +1 -1
  294. package/dist/esm-es5/pds-divider.entry.js +1 -1
  295. package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -1
  296. package/dist/esm-es5/pds-dropdown-menu-item.entry.js.map +1 -1
  297. package/dist/esm-es5/pds-dropdown-menu-separator.entry.js +1 -1
  298. package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
  299. package/dist/esm-es5/pds-filter.entry.js +1 -1
  300. package/dist/esm-es5/pds-filters.entry.js +1 -1
  301. package/dist/esm-es5/pds-image.entry.js +1 -1
  302. package/dist/esm-es5/pds-input.entry.js +1 -1
  303. package/dist/esm-es5/pds-input.entry.js.map +1 -1
  304. package/dist/esm-es5/pds-link.entry.js +1 -1
  305. package/dist/esm-es5/pds-loader.entry.js +1 -1
  306. package/dist/esm-es5/pds-modal-content.entry.js +1 -1
  307. package/dist/esm-es5/pds-modal-footer.entry.js +1 -1
  308. package/dist/esm-es5/pds-modal-header.entry.js +1 -1
  309. package/dist/esm-es5/pds-modal.entry.js +1 -1
  310. package/dist/esm-es5/pds-multiselect.entry.js +1 -1
  311. package/dist/esm-es5/pds-multiselect.entry.js.map +1 -1
  312. package/dist/esm-es5/pds-popover.entry.js +1 -1
  313. package/dist/esm-es5/pds-progress.entry.js +1 -1
  314. package/dist/esm-es5/pds-property.entry.js +1 -1
  315. package/dist/esm-es5/pds-radio-group.entry.js +1 -1
  316. package/dist/esm-es5/pds-radio.entry.js +1 -1
  317. package/dist/esm-es5/pds-row.entry.js +1 -1
  318. package/dist/esm-es5/pds-select.entry.js +1 -1
  319. package/dist/esm-es5/pds-select.entry.js.map +1 -1
  320. package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
  321. package/dist/esm-es5/pds-sortable-item.entry.js.map +1 -1
  322. package/dist/esm-es5/pds-sortable.entry.js +2 -2
  323. package/dist/esm-es5/pds-sortable.entry.js.map +1 -1
  324. package/dist/esm-es5/pds-switch.entry.js +1 -1
  325. package/dist/esm-es5/pds-switch.entry.js.map +1 -1
  326. package/dist/esm-es5/pds-tab.entry.js +1 -1
  327. package/dist/esm-es5/pds-table-body.entry.js +1 -1
  328. package/dist/esm-es5/pds-table-cell.entry.js +1 -1
  329. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  330. package/dist/esm-es5/pds-table-head.entry.js +1 -1
  331. package/dist/esm-es5/pds-table-row.entry.js +1 -1
  332. package/dist/esm-es5/pds-tabpanel.entry.js +1 -1
  333. package/dist/esm-es5/pds-tabs.entry.js +1 -1
  334. package/dist/esm-es5/pds-text.entry.js +1 -1
  335. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  336. package/dist/esm-es5/pds-textarea.entry.js.map +1 -1
  337. package/dist/esm-es5/pds-toast.entry.js +1 -1
  338. package/dist/esm-es5/pds-toast.entry.js.map +1 -1
  339. package/dist/esm-es5/pds-tooltip.entry.js +1 -1
  340. package/dist/esm-es5/pine-core.js +1 -1
  341. package/dist/esm-es5/{truncation-tooltip-CTHpMbU3.js → truncation-tooltip-Blk4GigP.js} +2 -2
  342. package/dist/{esm/truncation-tooltip-CTHpMbU3.js.map → esm-es5/truncation-tooltip-Blk4GigP.js.map} +1 -1
  343. package/dist/pine-core/p--XSKe449.system.js.map +1 -0
  344. package/dist/pine-core/p-0582a3b3.entry.js +2 -0
  345. package/dist/pine-core/{p-e9eb3fc3.system.entry.js → p-0d7eddea.system.entry.js} +2 -2
  346. package/dist/pine-core/{p-b416cb4b.system.entry.js → p-0f990fae.system.entry.js} +2 -2
  347. package/dist/pine-core/{p-edbaff73.system.entry.js → p-13f28e2a.system.entry.js} +2 -2
  348. package/dist/pine-core/{p-838452e0.entry.js → p-14cceca6.entry.js} +2 -2
  349. package/dist/pine-core/{p-ea721a45.entry.js → p-16b7a61d.entry.js} +2 -2
  350. package/dist/pine-core/{p-5e83f6e3.system.entry.js → p-16bf3993.system.entry.js} +2 -2
  351. package/dist/pine-core/{p-9606f567.system.entry.js → p-182b5617.system.entry.js} +2 -2
  352. package/dist/pine-core/p-1855322f.entry.js +2 -0
  353. package/dist/pine-core/p-244f0325.system.entry.js +2 -0
  354. package/dist/pine-core/p-244f0325.system.entry.js.map +1 -0
  355. package/dist/pine-core/{p-8b7246ea.system.entry.js → p-2a185f0b.system.entry.js} +2 -2
  356. package/dist/pine-core/{p-c73ef42b.entry.js → p-32e54df7.entry.js} +2 -2
  357. package/dist/pine-core/{p-68f97bdf.entry.js → p-33e8d130.entry.js} +2 -2
  358. package/dist/pine-core/p-3XkugpdY.system.js.map +1 -0
  359. package/dist/pine-core/{p-1b0dc99e.system.entry.js → p-3e96ea38.system.entry.js} +2 -2
  360. package/dist/pine-core/{p-64c6c4a0.entry.js → p-3f8e9f3f.entry.js} +2 -2
  361. package/dist/pine-core/p-40734388.entry.js +2 -0
  362. package/dist/pine-core/p-40734388.entry.js.map +1 -0
  363. package/dist/pine-core/p-41382eb3.system.entry.js +2 -0
  364. package/dist/pine-core/p-41382eb3.system.entry.js.map +1 -0
  365. package/dist/pine-core/p-4175a61c.system.entry.js +2 -0
  366. package/dist/pine-core/{p-73be1c83.entry.js → p-46e11e20.entry.js} +2 -2
  367. package/dist/pine-core/p-48a646d8.entry.js +8 -0
  368. package/dist/pine-core/p-48a646d8.entry.js.map +1 -0
  369. package/dist/pine-core/{p-ed5ca877.system.entry.js → p-48a6762b.system.entry.js} +2 -2
  370. package/dist/pine-core/p-499dcb3b.system.entry.js +2 -0
  371. package/dist/pine-core/p-499dcb3b.system.entry.js.map +1 -0
  372. package/dist/pine-core/{p-3fc8dbc9.system.entry.js → p-4c7055bb.system.entry.js} +2 -2
  373. package/dist/pine-core/{p-7737e4e8.system.entry.js → p-4d2e9e8d.system.entry.js} +2 -2
  374. package/dist/pine-core/{p-18a3b6ba.system.entry.js → p-519d9af1.system.entry.js} +2 -2
  375. package/dist/pine-core/{p-f81b0dbb.system.entry.js → p-52d1a7a1.system.entry.js} +2 -2
  376. package/dist/pine-core/{p-9558fa60.entry.js → p-536451ee.entry.js} +2 -2
  377. package/dist/pine-core/p-5453ff49.system.entry.js +2 -0
  378. package/dist/pine-core/{p-3e2fc38f.entry.js → p-583c3ac5.entry.js} +2 -2
  379. package/dist/pine-core/{p-DKT0sVlZ.system.js.map → p-59--X9ih.system.js.map} +1 -1
  380. package/dist/pine-core/p-5KztFcgn.system.js.map +1 -0
  381. package/dist/pine-core/p-5f391ebf.entry.js +2 -0
  382. package/dist/pine-core/p-61943627.system.entry.js +2 -0
  383. package/dist/pine-core/p-61943627.system.entry.js.map +1 -0
  384. package/dist/pine-core/{p-bf157830.entry.js → p-645564d9.entry.js} +2 -2
  385. package/dist/pine-core/{p-2883cb69.system.entry.js → p-67b78dd8.system.entry.js} +2 -2
  386. package/dist/pine-core/{p-f179c88f.system.entry.js → p-6939924a.system.entry.js} +2 -2
  387. package/dist/pine-core/p-74392e33.system.entry.js +2 -0
  388. package/dist/pine-core/{p-766e52a3.entry.js → p-75dc3a1f.entry.js} +2 -2
  389. package/dist/pine-core/p-773d1b8d.entry.js +2 -0
  390. package/dist/pine-core/p-773d1b8d.entry.js.map +1 -0
  391. package/dist/pine-core/{p-8a53ae6d.system.entry.js → p-781bdbf7.system.entry.js} +2 -2
  392. package/dist/pine-core/{p-2f663747.system.entry.js → p-7dfb5b1f.system.entry.js} +2 -2
  393. package/dist/pine-core/{p-9c0e22d4.entry.js → p-82f9a81a.entry.js} +2 -2
  394. package/dist/pine-core/{p-6c25dfc3.entry.js → p-8f3d6de0.entry.js} +2 -2
  395. package/dist/pine-core/p-8f48fa0b.system.entry.js +2 -0
  396. package/dist/pine-core/p-8f48fa0b.system.entry.js.map +1 -0
  397. package/dist/pine-core/p-902818eb.system.entry.js +2 -0
  398. package/dist/pine-core/{p-d8d796ad.system.entry.js → p-91200079.system.entry.js} +2 -2
  399. package/dist/pine-core/{p-b2a7c2bf.entry.js → p-95af50ed.entry.js} +2 -2
  400. package/dist/pine-core/p-96c4106f.entry.js +2 -0
  401. package/dist/pine-core/p-96c4106f.entry.js.map +1 -0
  402. package/dist/pine-core/{p-51d2999d.entry.js → p-98b493e5.entry.js} +2 -2
  403. package/dist/pine-core/{p-b8f21554.system.entry.js → p-98d82bf0.system.entry.js} +2 -2
  404. package/dist/pine-core/{p-1d82417a.entry.js → p-9d2e89e5.entry.js} +2 -2
  405. package/dist/pine-core/{p-cbf49268.entry.js → p-9ea92b46.entry.js} +2 -2
  406. package/dist/pine-core/{p-Bch44a-T.system.js → p-B1u-QvFn.system.js} +2 -2
  407. package/dist/pine-core/p-B1u-QvFn.system.js.map +1 -0
  408. package/dist/pine-core/{p-ClY6yIBF.system.js.map → p-B5fynusC.system.js.map} +1 -1
  409. package/dist/pine-core/{p-BUtyruql.system.js.map → p-BMoAGblt.system.js.map} +1 -1
  410. package/dist/pine-core/{p-5hPM5knE.js → p-BNSGedhN.js} +2 -2
  411. package/dist/pine-core/{p-5hPM5knE.js.map → p-BNSGedhN.js.map} +1 -1
  412. package/dist/pine-core/{p-9SGoKSa6.system.js.map → p-BOuxAvbi.system.js.map} +1 -1
  413. package/dist/pine-core/p-BOuz9091.system.js.map +1 -0
  414. package/dist/pine-core/{p-2DR2iuEU.system.js.map → p-BQsz2Ppb.system.js.map} +1 -1
  415. package/dist/pine-core/{p-Bsen6aos.system.js.map → p-BR1tCsTx.system.js.map} +1 -1
  416. package/dist/pine-core/{p-sgZDP7ET.system.js.map → p-BR9D7jOC.system.js.map} +1 -1
  417. package/dist/pine-core/p-BTrLNF2B.system.js.map +1 -0
  418. package/dist/pine-core/{p-DFWnxG_e.system.js.map → p-BUEOyE3W.system.js.map} +1 -1
  419. package/dist/pine-core/{p-CSe1fQxQ.system.js.map → p-Bb4REZL1.system.js.map} +1 -1
  420. package/dist/pine-core/{p-B5CyjPYU.system.js.map → p-Be6iza_Y.system.js.map} +1 -1
  421. package/dist/pine-core/p-BpespFXE.system.js.map +1 -0
  422. package/dist/pine-core/p-BrLs99ML.system.js +2 -0
  423. package/dist/pine-core/p-BrLs99ML.system.js.map +1 -0
  424. package/dist/pine-core/p-C2pSDIG-.system.js.map +1 -0
  425. package/dist/pine-core/p-C3xDZBme.js +2 -0
  426. package/dist/pine-core/p-C3xDZBme.js.map +1 -0
  427. package/dist/pine-core/p-C4-dix13.system.js.map +1 -0
  428. package/dist/pine-core/{p-CFL53vBy.system.js → p-C62JIZmE.system.js} +1 -1
  429. package/dist/pine-core/p-C62JIZmE.system.js.map +1 -0
  430. package/dist/pine-core/{p-DQCerqxZ.system.js.map → p-C6TsH_RJ.system.js.map} +1 -1
  431. package/dist/pine-core/p-C9msrPdv.system.js.map +1 -0
  432. package/dist/pine-core/{p-CfNEp0k0.system.js.map → p-CG-bCfvj.system.js.map} +1 -1
  433. package/dist/pine-core/p-CHDzBR_K.system.js.map +1 -0
  434. package/dist/pine-core/{p-CUv9KdhN.system.js.map → p-CI57amJO.system.js.map} +1 -1
  435. package/dist/pine-core/{p-DenbFuEN.system.js.map → p-CP845yj_.system.js.map} +1 -1
  436. package/dist/pine-core/{p-DXVwADJT.system.js → p-CRCxGYgw.system.js} +2 -2
  437. package/dist/pine-core/{p-DXVwADJT.system.js.map → p-CRCxGYgw.system.js.map} +1 -1
  438. package/dist/pine-core/p-CXhVuzyx.system.js.map +1 -0
  439. package/dist/pine-core/{p-De6wHGVf.system.js.map → p-CYraaUrg.system.js.map} +1 -1
  440. package/dist/pine-core/{p-BR9M75xt.system.js.map → p-CjvjDEg9.system.js.map} +1 -1
  441. package/dist/pine-core/{p-BASnRvhy.system.js.map → p-Cw6YcRuA.system.js.map} +1 -1
  442. package/dist/pine-core/p-CyOICl1j.system.js.map +1 -0
  443. package/dist/pine-core/{p-Be8OBmYb.system.js.map → p-D32r9DeF.system.js.map} +1 -1
  444. package/dist/pine-core/{p-Bmf4Ow_8.js → p-D4ys0pep.js} +1 -1
  445. package/dist/pine-core/p-D4ys0pep.js.map +1 -0
  446. package/dist/pine-core/p-DAxrTjDa.system.js.map +1 -0
  447. package/dist/pine-core/p-DDtwbwIl.js +2 -0
  448. package/dist/pine-core/p-DDtwbwIl.js.map +1 -0
  449. package/dist/pine-core/{p-BqkabXR7.system.js.map → p-DMF-DSOl.system.js.map} +1 -1
  450. package/dist/pine-core/{p-CsWO_n3t.system.js.map → p-DNbBVaLv.system.js.map} +1 -1
  451. package/dist/pine-core/{p-B036z4h-.system.js.map → p-DOdbcaFd.system.js.map} +1 -1
  452. package/dist/pine-core/{p-8tpU1leU.system.js.map → p-DZLD6m8S.system.js.map} +1 -1
  453. package/dist/pine-core/{p-DmWm26A6.system.js.map → p-Dp80V3ht.system.js.map} +1 -1
  454. package/dist/pine-core/{p-B9rVdQdy.system.js.map → p-Dq_WxIls.system.js.map} +1 -1
  455. package/dist/pine-core/{p-DZt6ah_A.system.js.map → p-DwSw16ZT.system.js.map} +1 -1
  456. package/dist/pine-core/{p-dPhHNR2G.system.js.map → p-IEIIi5zq.system.js.map} +1 -1
  457. package/dist/pine-core/p-JAVnELnm.system.js +1 -1
  458. package/dist/pine-core/{p-BeJr-4oL.system.js.map → p-KVyVRPM1.system.js.map} +1 -1
  459. package/dist/pine-core/{p-CEE11B7K.system.js.map → p-Ob6d9Y86.system.js.map} +1 -1
  460. package/dist/pine-core/{p-P65hM6YU.system.js.map → p-PMiwIPVl.system.js.map} +1 -1
  461. package/dist/pine-core/{p-DzmLlvu3.system.js.map → p-WysX4rk5.system.js.map} +1 -1
  462. package/dist/pine-core/{p-439e3343.entry.js → p-a1d58592.entry.js} +2 -2
  463. package/dist/pine-core/p-a3543531.entry.js +2 -0
  464. package/dist/pine-core/{p-6cbad264.entry.js.map → p-a3543531.entry.js.map} +1 -1
  465. package/dist/pine-core/{p-08cdf7f2.system.entry.js → p-a55bc143.system.entry.js} +2 -2
  466. package/dist/pine-core/p-a61e92c3.system.entry.js +2 -0
  467. package/dist/pine-core/p-a61e92c3.system.entry.js.map +1 -0
  468. package/dist/pine-core/{p-9b2cd9fc.entry.js → p-a6b01b1e.entry.js} +2 -2
  469. package/dist/pine-core/{p-88eb4f6c.entry.js → p-a720a925.entry.js} +2 -2
  470. package/dist/pine-core/{p-abb72971.system.entry.js → p-a85e565c.system.entry.js} +2 -2
  471. package/dist/pine-core/{p-56d0e6f4.entry.js → p-aa331370.entry.js} +2 -2
  472. package/dist/pine-core/{p-445c5ec5.system.entry.js → p-ab2c2298.system.entry.js} +2 -2
  473. package/dist/pine-core/{p-7fc20a77.system.entry.js → p-adbe19c7.system.entry.js} +2 -2
  474. package/dist/pine-core/{p-36478643.system.entry.js → p-b2a5b6ae.system.entry.js} +2 -2
  475. package/dist/pine-core/p-b3c50d38.entry.js +2 -0
  476. package/dist/pine-core/{p-7c1b1fb8.entry.js.map → p-b3c50d38.entry.js.map} +1 -1
  477. package/dist/pine-core/p-b6465152.entry.js +2 -0
  478. package/dist/pine-core/p-b6465152.entry.js.map +1 -0
  479. package/dist/pine-core/{p-599a5903.system.entry.js → p-bc462592.system.entry.js} +2 -2
  480. package/dist/pine-core/{p-9ba4acdf.system.entry.js → p-bc7a4275.system.entry.js} +2 -2
  481. package/dist/pine-core/{p-9f09e116.system.entry.js → p-c6682c9d.system.entry.js} +2 -2
  482. package/dist/pine-core/p-c6dd00b1.entry.js +2 -0
  483. package/dist/pine-core/{p-1951d49e.entry.js → p-c78a7729.entry.js} +2 -2
  484. package/dist/pine-core/{p-ccdee55a.entry.js → p-c9ced0ee.entry.js} +2 -2
  485. package/dist/pine-core/{p-bf712423.entry.js → p-caf01891.entry.js} +2 -2
  486. package/dist/pine-core/{p-39cb879d.entry.js → p-ccf46b90.entry.js} +2 -2
  487. package/dist/pine-core/p-cdd8175e.entry.js +2 -0
  488. package/dist/pine-core/p-cdd8175e.entry.js.map +1 -0
  489. package/dist/pine-core/{p-b7f2f9f3.system.entry.js → p-ce47aaaa.system.entry.js} +2 -2
  490. package/dist/pine-core/p-d3e64f4e.system.entry.js +4 -0
  491. package/dist/pine-core/p-d3e64f4e.system.entry.js.map +1 -0
  492. package/dist/pine-core/{p-5f63b999.entry.js → p-d5d9cf28.entry.js} +2 -2
  493. package/dist/pine-core/{p-b3ee3c4c.system.entry.js → p-d6c72b79.system.entry.js} +2 -2
  494. package/dist/pine-core/p-d845fd1d.system.entry.js +2 -0
  495. package/dist/pine-core/p-d8698ac5.entry.js +3 -0
  496. package/dist/pine-core/p-d8698ac5.entry.js.map +1 -0
  497. package/dist/pine-core/{p-3e45826f.system.entry.js → p-e017b42e.system.entry.js} +2 -2
  498. package/dist/pine-core/{p-d0504aa8.system.entry.js → p-e1402563.system.entry.js} +2 -2
  499. package/dist/pine-core/{p-119ccf73.entry.js → p-e47524a6.entry.js} +2 -2
  500. package/dist/pine-core/p-e6097fd3.entry.js +2 -0
  501. package/dist/pine-core/{p-5107c129.entry.js → p-e73b5859.entry.js} +2 -2
  502. package/dist/pine-core/p-e776269e.system.entry.js +2 -0
  503. package/dist/pine-core/{p-46d61c98.system.entry.js.map → p-e776269e.system.entry.js.map} +1 -1
  504. package/dist/pine-core/{p-C1p8XJSR.system.js.map → p-e7dY1RIu.system.js.map} +1 -1
  505. package/dist/pine-core/{p-72ca815d.system.entry.js → p-ed125c22.system.entry.js} +2 -2
  506. package/dist/pine-core/{p-b6ede995.system.entry.js → p-eec6b183.system.entry.js} +2 -2
  507. package/dist/pine-core/{p-867ef2f1.entry.js → p-f352e850.entry.js} +2 -2
  508. package/dist/pine-core/p-f86fbde7.entry.js +2 -0
  509. package/dist/pine-core/p-f86fbde7.entry.js.map +1 -0
  510. package/dist/pine-core/p-fa4c5b6b.system.entry.js +9 -0
  511. package/dist/pine-core/p-fa4c5b6b.system.entry.js.map +1 -0
  512. package/dist/pine-core/{p-203f6e9e.entry.js → p-fa62518b.entry.js} +2 -2
  513. package/dist/pine-core/p-fc0df65c.entry.js +2 -0
  514. package/dist/pine-core/p-fe2ba477.entry.js +2 -0
  515. package/dist/pine-core/p-kR80YJVM.system.js.map +1 -0
  516. package/dist/pine-core/{p-D02u2D7r.system.js.map → p-ssoi7rVs.system.js.map} +1 -1
  517. package/dist/pine-core/pds-alert.entry.esm.js.map +1 -1
  518. package/dist/pine-core/pds-avatar.entry.esm.js.map +1 -1
  519. package/dist/pine-core/pds-checkbox.entry.esm.js.map +1 -1
  520. package/dist/pine-core/pds-chip.entry.esm.js.map +1 -1
  521. package/dist/pine-core/pds-combobox.entry.esm.js.map +1 -1
  522. package/dist/pine-core/pds-dropdown-menu-item.entry.esm.js.map +1 -1
  523. package/dist/pine-core/pds-input.entry.esm.js.map +1 -1
  524. package/dist/pine-core/pds-multiselect.entry.esm.js.map +1 -1
  525. package/dist/pine-core/pds-select.entry.esm.js.map +1 -1
  526. package/dist/pine-core/pds-sortable-item.entry.esm.js.map +1 -1
  527. package/dist/pine-core/pds-sortable.entry.esm.js.map +1 -1
  528. package/dist/pine-core/pds-switch.entry.esm.js.map +1 -1
  529. package/dist/pine-core/pds-textarea.entry.esm.js.map +1 -1
  530. package/dist/pine-core/pds-toast.entry.esm.js.map +1 -1
  531. package/dist/pine-core/pine-core.esm.js +1 -1
  532. package/dist/types/components/pds-alert/pds-alert.d.ts +1 -0
  533. package/dist/types/components/pds-avatar/pds-avatar.d.ts +2 -0
  534. package/dist/types/components/pds-chip/pds-chip.d.ts +1 -0
  535. package/dist/types/components/pds-combobox/pds-combobox.d.ts +9 -1
  536. package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.d.ts +3 -0
  537. package/dist/types/components/pds-multiselect/multiselect-interface.d.ts +8 -0
  538. package/dist/types/components/pds-multiselect/pds-multiselect.d.ts +31 -0
  539. package/dist/types/components/pds-sortable/pds-sortable.d.ts +8 -1
  540. package/dist/types/components/pds-sortable/sortable-interface.d.ts +1 -0
  541. package/dist/types/components/pds-toast/pds-toast.d.ts +3 -0
  542. package/dist/types/components.d.ts +56 -6
  543. package/dist/types/utils/form.d.ts +10 -0
  544. package/dist/vscode.html-data.json +10479 -0
  545. package/hydrate/index.js +576 -376
  546. package/hydrate/index.mjs +576 -376
  547. package/package.json +2 -2
  548. package/dist/cjs/floating-ui.dom-Ca6tS7ef.js.map +0 -1
  549. package/dist/cjs/form-DUqlzovE.js.map +0 -1
  550. package/dist/cjs/index-D8mNsvM8.js.map +0 -1
  551. package/dist/esm/floating-ui.dom-BO6p966C.js.map +0 -1
  552. package/dist/esm/form-CN-lL5QG.js.map +0 -1
  553. package/dist/esm/index-Bmf4Ow_8.js.map +0 -1
  554. package/dist/esm-es5/floating-ui.dom-BO6p966C.js +0 -2
  555. package/dist/esm-es5/floating-ui.dom-BO6p966C.js.map +0 -1
  556. package/dist/esm-es5/form-CN-lL5QG.js.map +0 -1
  557. package/dist/esm-es5/index-Bmf4Ow_8.js.map +0 -1
  558. package/dist/pine-core/p-009faf05.entry.js +0 -2
  559. package/dist/pine-core/p-009faf05.entry.js.map +0 -1
  560. package/dist/pine-core/p-0b3d6527.entry.js +0 -2
  561. package/dist/pine-core/p-0b3d6527.entry.js.map +0 -1
  562. package/dist/pine-core/p-15b66c25.system.entry.js +0 -2
  563. package/dist/pine-core/p-15b66c25.system.entry.js.map +0 -1
  564. package/dist/pine-core/p-221b4348.entry.js +0 -2
  565. package/dist/pine-core/p-221b4348.entry.js.map +0 -1
  566. package/dist/pine-core/p-25255ab8.system.entry.js +0 -4
  567. package/dist/pine-core/p-25255ab8.system.entry.js.map +0 -1
  568. package/dist/pine-core/p-2a7b94ba.system.entry.js +0 -2
  569. package/dist/pine-core/p-2a7b94ba.system.entry.js.map +0 -1
  570. package/dist/pine-core/p-31bfac45.entry.js +0 -2
  571. package/dist/pine-core/p-3239c67a.entry.js +0 -2
  572. package/dist/pine-core/p-396d4b63.entry.js +0 -8
  573. package/dist/pine-core/p-396d4b63.entry.js.map +0 -1
  574. package/dist/pine-core/p-44035cf4.entry.js +0 -3
  575. package/dist/pine-core/p-44035cf4.entry.js.map +0 -1
  576. package/dist/pine-core/p-46d61c98.system.entry.js +0 -2
  577. package/dist/pine-core/p-4c0e71ce.entry.js +0 -2
  578. package/dist/pine-core/p-4c0e71ce.entry.js.map +0 -1
  579. package/dist/pine-core/p-4c82bff5.entry.js +0 -2
  580. package/dist/pine-core/p-50a439b5.entry.js +0 -2
  581. package/dist/pine-core/p-65d0032c.system.entry.js +0 -2
  582. package/dist/pine-core/p-6cbad264.entry.js +0 -2
  583. package/dist/pine-core/p-79f0b007.entry.js +0 -2
  584. package/dist/pine-core/p-79f0b007.entry.js.map +0 -1
  585. package/dist/pine-core/p-7c1b1fb8.entry.js +0 -2
  586. package/dist/pine-core/p-7da176b4.system.entry.js +0 -9
  587. package/dist/pine-core/p-7da176b4.system.entry.js.map +0 -1
  588. package/dist/pine-core/p-8a31ccd4.entry.js +0 -2
  589. package/dist/pine-core/p-8a31ccd4.entry.js.map +0 -1
  590. package/dist/pine-core/p-91781a0a.system.entry.js +0 -2
  591. package/dist/pine-core/p-91781a0a.system.entry.js.map +0 -1
  592. package/dist/pine-core/p-94a9ff2a.system.entry.js +0 -2
  593. package/dist/pine-core/p-BB9Md7vT.system.js.map +0 -1
  594. package/dist/pine-core/p-BGc1L0Ao.system.js.map +0 -1
  595. package/dist/pine-core/p-BO6p966C.js +0 -2
  596. package/dist/pine-core/p-BO6p966C.js.map +0 -1
  597. package/dist/pine-core/p-Bch44a-T.system.js.map +0 -1
  598. package/dist/pine-core/p-Bmf4Ow_8.js.map +0 -1
  599. package/dist/pine-core/p-BohZ8Mvm.system.js.map +0 -1
  600. package/dist/pine-core/p-CFL53vBy.system.js.map +0 -1
  601. package/dist/pine-core/p-CFqOsbKv.system.js.map +0 -1
  602. package/dist/pine-core/p-CH2XYz0c.system.js.map +0 -1
  603. package/dist/pine-core/p-CN-lL5QG.js +0 -2
  604. package/dist/pine-core/p-CN-lL5QG.js.map +0 -1
  605. package/dist/pine-core/p-CTDKHxjD.system.js.map +0 -1
  606. package/dist/pine-core/p-D-iLwshJ.system.js.map +0 -1
  607. package/dist/pine-core/p-D2eS6fhD.system.js +0 -2
  608. package/dist/pine-core/p-D2eS6fhD.system.js.map +0 -1
  609. package/dist/pine-core/p-D497NWkn.system.js.map +0 -1
  610. package/dist/pine-core/p-DHNujrRT.system.js.map +0 -1
  611. package/dist/pine-core/p-DcrqbXJe.system.js.map +0 -1
  612. package/dist/pine-core/p-DdR8iWme.system.js.map +0 -1
  613. package/dist/pine-core/p-DqO0Rc5m.system.js.map +0 -1
  614. package/dist/pine-core/p-Dvsezmq8.system.js.map +0 -1
  615. package/dist/pine-core/p-af5bf21d.entry.js +0 -2
  616. package/dist/pine-core/p-bPSIyJOo.system.js.map +0 -1
  617. package/dist/pine-core/p-ba195382.system.entry.js +0 -2
  618. package/dist/pine-core/p-bd2329cd.entry.js +0 -2
  619. package/dist/pine-core/p-c91fd600.entry.js +0 -2
  620. package/dist/pine-core/p-d6139188.system.entry.js +0 -2
  621. package/dist/pine-core/p-d62a5444.system.entry.js +0 -2
  622. package/dist/pine-core/p-ef7d0535.system.entry.js +0 -2
  623. package/dist/pine-core/p-ef7d0535.system.entry.js.map +0 -1
  624. package/dist/pine-core/p-f298baeb.system.entry.js +0 -2
  625. package/dist/pine-core/p-f298baeb.system.entry.js.map +0 -1
  626. package/dist/pine-core/p-f9c32940.system.entry.js +0 -2
  627. package/dist/pine-core/p-f9c32940.system.entry.js.map +0 -1
  628. /package/dist/pine-core/{p-bd2329cd.entry.js.map → p-0582a3b3.entry.js.map} +0 -0
  629. /package/dist/pine-core/{p-e9eb3fc3.system.entry.js.map → p-0d7eddea.system.entry.js.map} +0 -0
  630. /package/dist/pine-core/{p-b416cb4b.system.entry.js.map → p-0f990fae.system.entry.js.map} +0 -0
  631. /package/dist/pine-core/{p-edbaff73.system.entry.js.map → p-13f28e2a.system.entry.js.map} +0 -0
  632. /package/dist/pine-core/{p-838452e0.entry.js.map → p-14cceca6.entry.js.map} +0 -0
  633. /package/dist/pine-core/{p-ea721a45.entry.js.map → p-16b7a61d.entry.js.map} +0 -0
  634. /package/dist/pine-core/{p-5e83f6e3.system.entry.js.map → p-16bf3993.system.entry.js.map} +0 -0
  635. /package/dist/pine-core/{p-9606f567.system.entry.js.map → p-182b5617.system.entry.js.map} +0 -0
  636. /package/dist/pine-core/{p-4c82bff5.entry.js.map → p-1855322f.entry.js.map} +0 -0
  637. /package/dist/pine-core/{p-8b7246ea.system.entry.js.map → p-2a185f0b.system.entry.js.map} +0 -0
  638. /package/dist/pine-core/{p-c73ef42b.entry.js.map → p-32e54df7.entry.js.map} +0 -0
  639. /package/dist/pine-core/{p-68f97bdf.entry.js.map → p-33e8d130.entry.js.map} +0 -0
  640. /package/dist/pine-core/{p-1b0dc99e.system.entry.js.map → p-3e96ea38.system.entry.js.map} +0 -0
  641. /package/dist/pine-core/{p-64c6c4a0.entry.js.map → p-3f8e9f3f.entry.js.map} +0 -0
  642. /package/dist/pine-core/{p-94a9ff2a.system.entry.js.map → p-4175a61c.system.entry.js.map} +0 -0
  643. /package/dist/pine-core/{p-73be1c83.entry.js.map → p-46e11e20.entry.js.map} +0 -0
  644. /package/dist/pine-core/{p-ed5ca877.system.entry.js.map → p-48a6762b.system.entry.js.map} +0 -0
  645. /package/dist/pine-core/{p-3fc8dbc9.system.entry.js.map → p-4c7055bb.system.entry.js.map} +0 -0
  646. /package/dist/pine-core/{p-7737e4e8.system.entry.js.map → p-4d2e9e8d.system.entry.js.map} +0 -0
  647. /package/dist/pine-core/{p-18a3b6ba.system.entry.js.map → p-519d9af1.system.entry.js.map} +0 -0
  648. /package/dist/pine-core/{p-f81b0dbb.system.entry.js.map → p-52d1a7a1.system.entry.js.map} +0 -0
  649. /package/dist/pine-core/{p-9558fa60.entry.js.map → p-536451ee.entry.js.map} +0 -0
  650. /package/dist/pine-core/{p-d62a5444.system.entry.js.map → p-5453ff49.system.entry.js.map} +0 -0
  651. /package/dist/pine-core/{p-3e2fc38f.entry.js.map → p-583c3ac5.entry.js.map} +0 -0
  652. /package/dist/pine-core/{p-31bfac45.entry.js.map → p-5f391ebf.entry.js.map} +0 -0
  653. /package/dist/pine-core/{p-bf157830.entry.js.map → p-645564d9.entry.js.map} +0 -0
  654. /package/dist/pine-core/{p-2883cb69.system.entry.js.map → p-67b78dd8.system.entry.js.map} +0 -0
  655. /package/dist/pine-core/{p-f179c88f.system.entry.js.map → p-6939924a.system.entry.js.map} +0 -0
  656. /package/dist/pine-core/{p-65d0032c.system.entry.js.map → p-74392e33.system.entry.js.map} +0 -0
  657. /package/dist/pine-core/{p-766e52a3.entry.js.map → p-75dc3a1f.entry.js.map} +0 -0
  658. /package/dist/pine-core/{p-8a53ae6d.system.entry.js.map → p-781bdbf7.system.entry.js.map} +0 -0
  659. /package/dist/pine-core/{p-2f663747.system.entry.js.map → p-7dfb5b1f.system.entry.js.map} +0 -0
  660. /package/dist/pine-core/{p-9c0e22d4.entry.js.map → p-82f9a81a.entry.js.map} +0 -0
  661. /package/dist/pine-core/{p-6c25dfc3.entry.js.map → p-8f3d6de0.entry.js.map} +0 -0
  662. /package/dist/pine-core/{p-ba195382.system.entry.js.map → p-902818eb.system.entry.js.map} +0 -0
  663. /package/dist/pine-core/{p-d8d796ad.system.entry.js.map → p-91200079.system.entry.js.map} +0 -0
  664. /package/dist/pine-core/{p-b2a7c2bf.entry.js.map → p-95af50ed.entry.js.map} +0 -0
  665. /package/dist/pine-core/{p-51d2999d.entry.js.map → p-98b493e5.entry.js.map} +0 -0
  666. /package/dist/pine-core/{p-b8f21554.system.entry.js.map → p-98d82bf0.system.entry.js.map} +0 -0
  667. /package/dist/pine-core/{p-1d82417a.entry.js.map → p-9d2e89e5.entry.js.map} +0 -0
  668. /package/dist/pine-core/{p-cbf49268.entry.js.map → p-9ea92b46.entry.js.map} +0 -0
  669. /package/dist/pine-core/{p-439e3343.entry.js.map → p-a1d58592.entry.js.map} +0 -0
  670. /package/dist/pine-core/{p-08cdf7f2.system.entry.js.map → p-a55bc143.system.entry.js.map} +0 -0
  671. /package/dist/pine-core/{p-9b2cd9fc.entry.js.map → p-a6b01b1e.entry.js.map} +0 -0
  672. /package/dist/pine-core/{p-88eb4f6c.entry.js.map → p-a720a925.entry.js.map} +0 -0
  673. /package/dist/pine-core/{p-abb72971.system.entry.js.map → p-a85e565c.system.entry.js.map} +0 -0
  674. /package/dist/pine-core/{p-56d0e6f4.entry.js.map → p-aa331370.entry.js.map} +0 -0
  675. /package/dist/pine-core/{p-445c5ec5.system.entry.js.map → p-ab2c2298.system.entry.js.map} +0 -0
  676. /package/dist/pine-core/{p-7fc20a77.system.entry.js.map → p-adbe19c7.system.entry.js.map} +0 -0
  677. /package/dist/pine-core/{p-36478643.system.entry.js.map → p-b2a5b6ae.system.entry.js.map} +0 -0
  678. /package/dist/pine-core/{p-599a5903.system.entry.js.map → p-bc462592.system.entry.js.map} +0 -0
  679. /package/dist/pine-core/{p-9ba4acdf.system.entry.js.map → p-bc7a4275.system.entry.js.map} +0 -0
  680. /package/dist/pine-core/{p-9f09e116.system.entry.js.map → p-c6682c9d.system.entry.js.map} +0 -0
  681. /package/dist/pine-core/{p-af5bf21d.entry.js.map → p-c6dd00b1.entry.js.map} +0 -0
  682. /package/dist/pine-core/{p-1951d49e.entry.js.map → p-c78a7729.entry.js.map} +0 -0
  683. /package/dist/pine-core/{p-ccdee55a.entry.js.map → p-c9ced0ee.entry.js.map} +0 -0
  684. /package/dist/pine-core/{p-bf712423.entry.js.map → p-caf01891.entry.js.map} +0 -0
  685. /package/dist/pine-core/{p-39cb879d.entry.js.map → p-ccf46b90.entry.js.map} +0 -0
  686. /package/dist/pine-core/{p-b7f2f9f3.system.entry.js.map → p-ce47aaaa.system.entry.js.map} +0 -0
  687. /package/dist/pine-core/{p-5f63b999.entry.js.map → p-d5d9cf28.entry.js.map} +0 -0
  688. /package/dist/pine-core/{p-b3ee3c4c.system.entry.js.map → p-d6c72b79.system.entry.js.map} +0 -0
  689. /package/dist/pine-core/{p-d6139188.system.entry.js.map → p-d845fd1d.system.entry.js.map} +0 -0
  690. /package/dist/pine-core/{p-3e45826f.system.entry.js.map → p-e017b42e.system.entry.js.map} +0 -0
  691. /package/dist/pine-core/{p-d0504aa8.system.entry.js.map → p-e1402563.system.entry.js.map} +0 -0
  692. /package/dist/pine-core/{p-119ccf73.entry.js.map → p-e47524a6.entry.js.map} +0 -0
  693. /package/dist/pine-core/{p-50a439b5.entry.js.map → p-e6097fd3.entry.js.map} +0 -0
  694. /package/dist/pine-core/{p-5107c129.entry.js.map → p-e73b5859.entry.js.map} +0 -0
  695. /package/dist/pine-core/{p-72ca815d.system.entry.js.map → p-ed125c22.system.entry.js.map} +0 -0
  696. /package/dist/pine-core/{p-b6ede995.system.entry.js.map → p-eec6b183.system.entry.js.map} +0 -0
  697. /package/dist/pine-core/{p-867ef2f1.entry.js.map → p-f352e850.entry.js.map} +0 -0
  698. /package/dist/pine-core/{p-203f6e9e.entry.js.map → p-fa62518b.entry.js.map} +0 -0
  699. /package/dist/pine-core/{p-c91fd600.entry.js.map → p-fc0df65c.entry.js.map} +0 -0
  700. /package/dist/pine-core/{p-3239c67a.entry.js.map → p-fe2ba477.entry.js.map} +0 -0
@@ -1,12 +1,14 @@
1
1
  import { h, Host } from "@stencil/core";
2
2
  import { computePosition, flip, offset, shift, size, autoUpdate } from "@floating-ui/dom";
3
3
  import { debounceEvent } from "../../utils/utils";
4
- import { messageId, assignDescription } from "../../utils/form";
4
+ import { isSpecTest, messageId, assignDescription } from "../../utils/form";
5
5
  import { danger, enlarge } from "@pine-ds/icons/icons";
6
6
  /**
7
7
  * @slot (default) - Static option elements for the multiselect
8
8
  * @slot empty - Custom empty state message when no options match
9
9
  * @slot loading - Custom loading indicator
10
+ * @part trigger - The trigger surface that opens the dropdown panel
11
+ * @part pill-toggle - The chevron button inside the inline pill trigger
10
12
  */
11
13
  export class PdsMultiselect {
12
14
  constructor() {
@@ -64,6 +66,26 @@ export class PdsMultiselect {
64
66
  * Hides the selected items summary section in the dropdown panel.
65
67
  */
66
68
  this.hideSelectedItems = false;
69
+ /**
70
+ * Display mode for selected items outside the dropdown panel.
71
+ * `'count'` shows "N item(s)" text in the trigger (default). `'pill'` renders
72
+ * selected items as dismissible pds-chip tags.
73
+ * @default 'count'
74
+ */
75
+ this.selectedDisplay = 'count';
76
+ /**
77
+ * Position of pill chips when `selectedDisplay` is `'pill'`.
78
+ * `'inline'` places chips inside the trigger; `'below'` places chips in a
79
+ * flex-wrap row directly below the trigger.
80
+ * @default 'inline'
81
+ */
82
+ this.pillPosition = 'inline';
83
+ /**
84
+ * Maximum chips shown inline before collapsing to a "+N more" badge.
85
+ * Only applies when `selectedDisplay='pill'` and `pillPosition='inline'`.
86
+ * @default 3
87
+ */
88
+ this.maxInlinePills = 3;
67
89
  /**
68
90
  * If true, the multiselect is required.
69
91
  */
@@ -85,6 +107,7 @@ export class PdsMultiselect {
85
107
  this.currentPage = 1;
86
108
  this.hasMore = false;
87
109
  this.creating = false;
110
+ this.removalAnnouncement = '';
88
111
  // Flag to prevent focusout from closing during open transition
89
112
  this.isOpening = false;
90
113
  // Flag to suppress dismiss event when panel closes due to selection (not user dismissal)
@@ -93,9 +116,16 @@ export class PdsMultiselect {
93
116
  this.initialAsyncFetchTriggered = false;
94
117
  // Flag to track if value changed during loading and needs resolution after fetch completes
95
118
  this.pendingUnresolvedFetch = false;
96
- this.handleTriggerClick = () => {
119
+ this.handleTriggerClick = (e) => {
97
120
  if (this.disabled)
98
121
  return;
122
+ // In inline-pill mode, ignore clicks that originated inside a pds-chip.
123
+ // Chip close-button clicks are handled by handlePillRemove; chip body clicks should not toggle the panel.
124
+ if (e && this.selectedDisplay === 'pill' && this.pillPosition === 'inline') {
125
+ const fromChip = e.composedPath().some(el => { var _a; return ((_a = el.tagName) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'pds-chip'; });
126
+ if (fromChip)
127
+ return;
128
+ }
99
129
  if (this.isOpen) {
100
130
  this.closeDropdown();
101
131
  }
@@ -104,6 +134,10 @@ export class PdsMultiselect {
104
134
  }
105
135
  };
106
136
  this.handleTriggerKeyDown = (e) => {
137
+ // Ignore keydown events that bubbled from child elements (e.g. chip close buttons).
138
+ // Only handle keys when the trigger itself is the event target.
139
+ if (e.target !== this.triggerEl)
140
+ return;
107
141
  switch (e.key) {
108
142
  case 'ArrowDown':
109
143
  case 'ArrowUp':
@@ -128,18 +162,35 @@ export class PdsMultiselect {
128
162
  }
129
163
  };
130
164
  this.handleSearchInputKeyDown = (e) => {
165
+ var _a, _b, _c;
131
166
  const filteredOptions = this.getFilteredOptions();
132
167
  switch (e.key) {
133
- case 'ArrowDown':
168
+ case 'ArrowDown': {
134
169
  e.preventDefault();
135
- this.highlightedIndex = Math.min(this.highlightedIndex + 1, filteredOptions.length - 1);
136
- this.scrollOptionIntoView();
170
+ let nextIndex = this.highlightedIndex + 1;
171
+ while (nextIndex < filteredOptions.length && ((_a = filteredOptions[nextIndex]) === null || _a === void 0 ? void 0 : _a.disabled)) {
172
+ nextIndex++;
173
+ }
174
+ if (nextIndex < filteredOptions.length) {
175
+ this.highlightedIndex = nextIndex;
176
+ this.scrollOptionIntoView();
177
+ }
137
178
  break;
138
- case 'ArrowUp':
179
+ }
180
+ case 'ArrowUp': {
139
181
  e.preventDefault();
140
- this.highlightedIndex = Math.max(this.highlightedIndex - 1, 0);
141
- this.scrollOptionIntoView();
182
+ // Clamp to 0 so ArrowUp from uninitialised state (-1) attempts the first option;
183
+ // stays at -1 if that option is disabled.
184
+ let prevIndex = Math.max(this.highlightedIndex - 1, 0);
185
+ while (prevIndex > 0 && ((_b = filteredOptions[prevIndex]) === null || _b === void 0 ? void 0 : _b.disabled)) {
186
+ prevIndex--;
187
+ }
188
+ if (!((_c = filteredOptions[prevIndex]) === null || _c === void 0 ? void 0 : _c.disabled)) {
189
+ this.highlightedIndex = prevIndex;
190
+ this.scrollOptionIntoView();
191
+ }
142
192
  break;
193
+ }
143
194
  case 'Enter':
144
195
  e.preventDefault();
145
196
  if (this.highlightedIndex >= 0) {
@@ -179,7 +230,9 @@ export class PdsMultiselect {
179
230
  e.preventDefault(); // Prevent focus change
180
231
  this.toggleOption(option);
181
232
  };
182
- this.handleOptionMouseEnter = (index) => () => {
233
+ this.handleOptionMouseEnter = (index, option) => () => {
234
+ if (option.disabled)
235
+ return;
183
236
  this.highlightedIndex = index;
184
237
  };
185
238
  this.handleScroll = (e) => {
@@ -196,6 +249,26 @@ export class PdsMultiselect {
196
249
  this.debouncedFetchAsyncOptions(this.searchQuery, this.currentPage + 1);
197
250
  }
198
251
  };
252
+ this.handlePillRemove = (item) => () => {
253
+ var _a, _b;
254
+ if (this.disabled)
255
+ return;
256
+ const optionId = String(item.id);
257
+ this.value = this.value.filter(v => v !== optionId);
258
+ this.syncSelectedItems();
259
+ this.pdsMultiselectChange.emit({ values: this.value, items: this.selectedItems });
260
+ // Clear first so screen readers re-announce even when the same item is removed twice
261
+ this.removalAnnouncement = '';
262
+ queueMicrotask(() => { this.removalAnnouncement = `${item.text} removed`; });
263
+ this.isClosingViaSelection = true;
264
+ if (this.isOpen) {
265
+ (_a = this.searchInputEl) === null || _a === void 0 ? void 0 : _a.focus();
266
+ }
267
+ else {
268
+ (_b = this.triggerEl) === null || _b === void 0 ? void 0 : _b.focus();
269
+ }
270
+ setTimeout(() => { this.isClosingViaSelection = false; }, 0);
271
+ };
199
272
  }
200
273
  connectedCallback() {
201
274
  // Initialize ElementInternals for form association (only once per element instance)
@@ -342,12 +415,35 @@ export class PdsMultiselect {
342
415
  const slot = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot:not([name])');
343
416
  if (!slot)
344
417
  return;
345
- const options = slot.assignedElements({ flatten: true })
346
- .filter((el) => el.tagName === 'OPTION')
347
- .map(opt => ({
348
- id: opt.value,
349
- text: opt.textContent || opt.value,
350
- }));
418
+ const options = [];
419
+ slot.assignedElements({ flatten: true }).forEach(el => {
420
+ var _a;
421
+ if (el.tagName === 'OPTGROUP') {
422
+ const optgroup = el;
423
+ const groupLabel = optgroup.label;
424
+ const groupDisabled = optgroup.disabled;
425
+ optgroup.querySelectorAll('option').forEach((opt) => {
426
+ var _a;
427
+ const option = {
428
+ id: opt.value,
429
+ text: ((_a = opt.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || opt.value,
430
+ disabled: opt.disabled || groupDisabled || undefined,
431
+ };
432
+ if (groupLabel) {
433
+ option.group = groupLabel;
434
+ }
435
+ options.push(option);
436
+ });
437
+ }
438
+ else if (el.tagName === 'OPTION') {
439
+ const opt = el;
440
+ options.push({
441
+ id: opt.value,
442
+ text: ((_a = opt.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || opt.value,
443
+ disabled: opt.disabled || undefined,
444
+ });
445
+ }
446
+ });
351
447
  // Only update if we actually found options AND we're not using async/external options
352
448
  // Don't clear internalOptions if slot returns empty (might be mid-DOM-update)
353
449
  if (options.length > 0 && !this.asyncUrl && !this.options) {
@@ -448,6 +544,8 @@ export class PdsMultiselect {
448
544
  }
449
545
  updateFormValue() {
450
546
  var _a;
547
+ if (isSpecTest())
548
+ return;
451
549
  if ((_a = this.internals) === null || _a === void 0 ? void 0 : _a.setFormValue) {
452
550
  // Ensure value is an array before iterating
453
551
  const valueArray = this.ensureValueArray();
@@ -676,7 +774,9 @@ export class PdsMultiselect {
676
774
  positionDropdown() {
677
775
  if (!this.containerEl || !this.panelEl)
678
776
  return;
679
- const referenceEl = this.triggerEl || this.containerEl;
777
+ // In inline pill mode, triggerEl is the small chevron button — use the full-width
778
+ // wrapper div as the Floating UI reference so the panel aligns with the whole trigger.
779
+ const referenceEl = this.pillInlineTriggerEl || this.triggerEl || this.containerEl;
680
780
  const { minWidth, panelWidth } = this;
681
781
  const updatePosition = () => {
682
782
  computePosition(referenceEl, this.panelEl, {
@@ -720,6 +820,8 @@ export class PdsMultiselect {
720
820
  }
721
821
  toggleOption(option) {
722
822
  var _a, _b;
823
+ if (option.disabled)
824
+ return;
723
825
  // Handle create option
724
826
  if (option.isCreateOption) {
725
827
  // Prevent multiple create calls while one is in-flight
@@ -762,6 +864,40 @@ export class PdsMultiselect {
762
864
  // For keyboard navigation - toggle the option
763
865
  this.toggleOption(option);
764
866
  }
867
+ getGroupedRenderItems(filteredOptions) {
868
+ const items = [];
869
+ let currentGroup = null;
870
+ filteredOptions.forEach((option, index) => {
871
+ const group = option.group;
872
+ if (group !== undefined) {
873
+ if (!currentGroup || currentGroup.group !== group) {
874
+ currentGroup = { type: 'group', group, options: [] };
875
+ items.push(currentGroup);
876
+ }
877
+ currentGroup.options.push({ option, index });
878
+ }
879
+ else {
880
+ currentGroup = null;
881
+ items.push({ type: 'option', option, index });
882
+ }
883
+ });
884
+ return items;
885
+ }
886
+ renderOption(option, index, valueArray) {
887
+ const isSelected = valueArray.includes(String(option.id));
888
+ const isCreateOption = option.isCreateOption;
889
+ const isDisabled = option.disabled;
890
+ const isHighlighted = index === this.highlightedIndex && !isCreateOption;
891
+ const optionId = `${this.componentId}-option-${index}`;
892
+ const isCreateDisabled = isCreateOption && this.creating;
893
+ return (h("li", { key: String(option.id), id: optionId, class: {
894
+ 'pds-multiselect__option': true,
895
+ 'pds-multiselect__option--highlighted': isHighlighted,
896
+ 'pds-multiselect__option--selected': isSelected,
897
+ 'pds-multiselect__option--create': isCreateOption,
898
+ 'pds-multiselect__option--disabled': isDisabled || isCreateDisabled,
899
+ }, role: "option", "aria-selected": isSelected ? 'true' : 'false', "aria-disabled": isDisabled || isCreateDisabled ? 'true' : undefined, "aria-label": isCreateOption ? `Create new tag: ${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, "Add \"", option.text, "\""))) : (h("pds-checkbox", { componentId: `${this.componentId}-checkbox-${index}`, checked: isSelected, label: option.text, disabled: isDisabled, style: { pointerEvents: 'none' } }))));
900
+ }
765
901
  renderSelectedItemsList() {
766
902
  if (this.hideSelectedItems || this.selectedItems.length === 0)
767
903
  return null;
@@ -774,43 +910,58 @@ export class PdsMultiselect {
774
910
  const valueArray = this.ensureValueArray();
775
911
  const hasSlottedEmpty = !!this.el.querySelector('[slot="empty"]');
776
912
  const hasSlottedLoading = !!this.el.querySelector('[slot="loading"]');
777
- 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": "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) => {
778
- const isSelected = valueArray.includes(String(option.id));
779
- const isCreateOption = option.isCreateOption;
780
- const isHighlighted = index === this.highlightedIndex && !isCreateOption;
781
- const optionId = `${this.componentId}-option-${index}`;
782
- const isCreateDisabled = isCreateOption && this.creating;
783
- return (h("li", { key: String(option.id), id: optionId, class: {
784
- 'pds-multiselect__option': true,
785
- 'pds-multiselect__option--highlighted': isHighlighted,
786
- 'pds-multiselect__option--selected': isSelected,
787
- 'pds-multiselect__option--create': isCreateOption,
788
- 'pds-multiselect__option--disabled': isCreateDisabled,
789
- }, role: "option", "aria-selected": isSelected ? 'true' : 'false', "aria-disabled": isCreateDisabled ? 'true' : undefined, "aria-label": isCreateOption ? `Create new tag: ${option.text}` : undefined, "data-index": index, onMouseDown: this.handleOptionMouseDown(option), onMouseEnter: this.handleOptionMouseEnter(index) }, 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, "Add \"", option.text, "\""))) : (h("pds-checkbox", { componentId: `${this.componentId}-checkbox-${index}`, checked: isSelected, label: option.text, style: { pointerEvents: 'none' } }))));
913
+ 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": "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")))), this.getGroupedRenderItems(filteredOptions).map((item, itemIndex) => {
914
+ if (item.type === 'group') {
915
+ 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)))));
916
+ }
917
+ return this.renderOption(item.option, item.index, valueArray);
790
918
  }), this.hasMore && !this.loading && (h("li", { class: "pds-multiselect__load-more", role: "presentation" }, h("pds-loader", { size: "small" }))))));
791
919
  }
920
+ renderInlinePills() {
921
+ const hasSelections = this.selectedItems.length > 0;
922
+ if (!hasSelections) {
923
+ return (h("span", { class: "pds-multiselect__trigger-text pds-multiselect__trigger-text--placeholder" }, this.placeholder || 'Select...'));
924
+ }
925
+ const variant = this.disabled ? 'text' : 'tag';
926
+ const visibleItems = this.selectedItems.slice(0, Math.max(1, this.maxInlinePills));
927
+ const overflowCount = this.selectedItems.length - visibleItems.length;
928
+ return (h("div", { class: "pds-multiselect__pill-list pds-multiselect__pill-list--inline", "aria-label": "Selected items" }, visibleItems.map(item => (h("pds-chip", { key: String(item.id), "component-id": `${this.componentId}-pill-${item.id}`, variant: variant, size: "sm", sentiment: "neutral", onPdsTagCloseClick: this.handlePillRemove(item) }, item.text))), overflowCount > 0 && (h("span", { class: "pds-multiselect__pill-overflow" }, "+", overflowCount))));
929
+ }
930
+ renderBelowPills() {
931
+ if (this.selectedItems.length === 0)
932
+ return null;
933
+ const variant = this.disabled ? 'text' : 'tag';
934
+ return (h("div", { class: "pds-multiselect__pill-list pds-multiselect__pill-list--below", "aria-label": "Selected items" }, this.selectedItems.map(item => (h("pds-chip", { key: String(item.id), "component-id": `${this.componentId}-pill-${item.id}`, variant: variant, size: "md", sentiment: "neutral", onPdsTagCloseClick: this.handlePillRemove(item) }, item.text)))));
935
+ }
792
936
  getTriggerText() {
793
937
  const count = this.selectedItems.length;
794
- if (count === 0) {
938
+ if (count === 0 || (this.selectedDisplay === 'pill' && this.pillPosition === 'below')) {
795
939
  return this.placeholder || 'Select...';
796
940
  }
797
941
  return `${count} item${count === 1 ? '' : 's'}`;
798
942
  }
799
943
  render() {
800
944
  const hasSelections = this.selectedItems.length > 0;
801
- return (h(Host, { key: '824364c4ab70a90abc5542ac66eb8259e727e4e6', "aria-disabled": this.disabled ? 'true' : null }, h("div", { key: 'ff103de53850eef00dad44e97333c58a54c8ae59', class: "pds-multiselect" }, this.label && (h("label", { key: '0524860c38d53aeddf35e9905abe783cb1174d6b', htmlFor: this.componentId, class: {
945
+ return (h(Host, { key: '50f06d8e7a23c17ff0169048d220aa78e4e60d91', "aria-disabled": this.disabled ? 'true' : null }, h("div", { key: 'f85448744cf889fd999579fe2849fd7902254e3d', class: "pds-multiselect", onFocusout: this.handleContainerFocusOut }, this.label && (h("label", { key: '54143c890e3fea07626705fab5b87d0da2abf485', id: `${this.componentId}-label`, htmlFor: this.componentId, class: {
802
946
  'pds-multiselect__label': true,
803
947
  'visually-hidden': this.hideLabel,
804
- } }, this.label)), h("div", { key: 'b6313b12f499656e98c33af524240fd51a332e68', class: "pds-multiselect__wrapper", ref: el => (this.containerEl = el), onFocusout: this.handleContainerFocusOut, style: { width: this.triggerWidth } }, h("button", { key: '0b7ecdbc2e16d27afe4863d626c38d437bc39044', ref: el => (this.triggerEl = el), type: "button", part: "trigger", class: {
948
+ } }, this.label)), h("div", { key: 'ad35b02bcf540a5fd197d8012cb060d10682b0a2', 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: {
949
+ 'pds-multiselect__trigger': true,
950
+ 'pds-multiselect__trigger--open': this.isOpen,
951
+ 'pds-multiselect__trigger--disabled': this.disabled,
952
+ 'pds-multiselect__trigger--invalid': this.invalid || !!this.errorMessage,
953
+ 'pds-multiselect__trigger--has-value': hasSelections,
954
+ 'pds-multiselect__trigger--pill-inline': true,
955
+ }, 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.errorMessage || this.helperMessage), "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: {
805
956
  'pds-multiselect__trigger': true,
806
957
  'pds-multiselect__trigger--open': this.isOpen,
807
958
  'pds-multiselect__trigger--disabled': this.disabled,
808
959
  'pds-multiselect__trigger--invalid': this.invalid || !!this.errorMessage,
809
960
  'pds-multiselect__trigger--has-value': hasSelections,
810
- }, 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: '0f38b462baa7ff229b05f3cacd1435d0890517cf', class: {
961
+ }, 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", { class: {
811
962
  'pds-multiselect__trigger-text': true,
812
- 'pds-multiselect__trigger-text--placeholder': !hasSelections,
813
- } }, this.getTriggerText()), h("pds-icon", { key: '63b558f6c42b177cb956afd613002adc3a85347b', class: "pds-multiselect__icon", icon: enlarge })), this.renderDropdown()), this.helperMessage && !(this.errorMessage && this.errorMessage.length > 0) && (h("p", { key: '32732cfc57edacc77407b16ee4eb466817ca0a0d', class: "pds-multiselect__helper", id: messageId(this.componentId, 'helper') }, this.helperMessage)), this.errorMessage && (h("p", { key: '1e5cb7e19a3dd7717acfdf9feb1aadc8e12255de', class: "pds-multiselect__error", id: messageId(this.componentId, 'error') }, h("pds-icon", { key: '31d6871e2960c9dc2946a847c9f961a57f568383', icon: danger, size: "small" }), this.errorMessage)), h("div", { key: '31e91ed1303e67e3b587362310f1acdc47df59db', style: { display: 'none' } }, h("slot", { key: 'ccc33628411dad18051c7f3c3747177ee3f4a922' })))));
963
+ 'pds-multiselect__trigger-text--placeholder': !hasSelections || (this.selectedDisplay === 'pill' && this.pillPosition === 'below'),
964
+ } }, this.getTriggerText()), h("pds-icon", { class: "pds-multiselect__icon", icon: enlarge }))), this.renderDropdown()), this.selectedDisplay === 'pill' && this.pillPosition === 'below' && this.renderBelowPills(), h("span", { key: '547ab819abb5193040ddf71d725bf97fc3cb80b6', class: "visually-hidden", "aria-live": "polite", "aria-atomic": "true" }, this.removalAnnouncement), this.helperMessage && !(this.errorMessage && this.errorMessage.length > 0) && (h("p", { key: '063fadcda29637c338ed8ab49ef95c57750ff7ba', class: "pds-multiselect__helper", id: messageId(this.componentId, 'helper') }, this.helperMessage)), this.errorMessage && (h("p", { key: '6aabb3cd4b8334f87a4eecc38ba43ff4980fb8af', class: "pds-multiselect__error", id: messageId(this.componentId, 'error') }, h("pds-icon", { key: '6fa6e1eeb8625a90e149a46a1d49742979b37881', icon: danger, size: "small" }), this.errorMessage)), h("div", { key: '0a84dfe166c5cc0f93840825e238d3f7baf932e4', style: { display: 'none' } }, h("slot", { key: 'a4e97c2063b358aca5db8dd6ccb8a8d860c26a4a' })))));
814
965
  }
815
966
  static get is() { return "pds-multiselect"; }
816
967
  static get encapsulation() { return "shadow"; }
@@ -1202,6 +1353,75 @@ export class PdsMultiselect {
1202
1353
  "attribute": "hide-selected-items",
1203
1354
  "defaultValue": "false"
1204
1355
  },
1356
+ "selectedDisplay": {
1357
+ "type": "string",
1358
+ "mutable": false,
1359
+ "complexType": {
1360
+ "original": "'count' | 'pill'",
1361
+ "resolved": "\"count\" | \"pill\"",
1362
+ "references": {}
1363
+ },
1364
+ "required": false,
1365
+ "optional": false,
1366
+ "docs": {
1367
+ "tags": [{
1368
+ "name": "default",
1369
+ "text": "'count'"
1370
+ }],
1371
+ "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."
1372
+ },
1373
+ "getter": false,
1374
+ "setter": false,
1375
+ "reflect": false,
1376
+ "attribute": "selected-display",
1377
+ "defaultValue": "'count'"
1378
+ },
1379
+ "pillPosition": {
1380
+ "type": "string",
1381
+ "mutable": false,
1382
+ "complexType": {
1383
+ "original": "'inline' | 'below'",
1384
+ "resolved": "\"below\" | \"inline\"",
1385
+ "references": {}
1386
+ },
1387
+ "required": false,
1388
+ "optional": false,
1389
+ "docs": {
1390
+ "tags": [{
1391
+ "name": "default",
1392
+ "text": "'inline'"
1393
+ }],
1394
+ "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."
1395
+ },
1396
+ "getter": false,
1397
+ "setter": false,
1398
+ "reflect": false,
1399
+ "attribute": "pill-position",
1400
+ "defaultValue": "'inline'"
1401
+ },
1402
+ "maxInlinePills": {
1403
+ "type": "number",
1404
+ "mutable": false,
1405
+ "complexType": {
1406
+ "original": "number",
1407
+ "resolved": "number",
1408
+ "references": {}
1409
+ },
1410
+ "required": false,
1411
+ "optional": false,
1412
+ "docs": {
1413
+ "tags": [{
1414
+ "name": "default",
1415
+ "text": "3"
1416
+ }],
1417
+ "text": "Maximum chips shown inline before collapsing to a \"+N more\" badge.\nOnly applies when `selectedDisplay='pill'` and `pillPosition='inline'`."
1418
+ },
1419
+ "getter": false,
1420
+ "setter": false,
1421
+ "reflect": false,
1422
+ "attribute": "max-inline-pills",
1423
+ "defaultValue": "3"
1424
+ },
1205
1425
  "errorMessage": {
1206
1426
  "type": "string",
1207
1427
  "mutable": false,
@@ -1317,7 +1537,7 @@ export class PdsMultiselect {
1317
1537
  "optional": true,
1318
1538
  "docs": {
1319
1539
  "tags": [],
1320
- "text": "Options provided externally (for consumer-managed async)."
1540
+ "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>`)."
1321
1541
  },
1322
1542
  "getter": false,
1323
1543
  "setter": false
@@ -1414,7 +1634,8 @@ export class PdsMultiselect {
1414
1634
  "selectedItems": {},
1415
1635
  "currentPage": {},
1416
1636
  "hasMore": {},
1417
- "creating": {}
1637
+ "creating": {},
1638
+ "removalAnnouncement": {}
1418
1639
  };
1419
1640
  }
1420
1641
  static get events() {