@pine-ds/core 3.22.1 → 3.24.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 (607) 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/index.d.ts +2 -0
  6. package/components/index.js +1 -0
  7. package/components/index.js.map +1 -1
  8. package/components/index2.js +1 -1
  9. package/components/index2.js.map +1 -1
  10. package/components/mock-pds-modal.js +1 -1
  11. package/components/pds-alert.js +1 -1
  12. package/components/pds-alert.js.map +1 -1
  13. package/components/pds-avatar.js +1 -1
  14. package/components/pds-avatar.js.map +1 -1
  15. package/components/pds-checkbox2.js +5 -7
  16. package/components/pds-checkbox2.js.map +1 -1
  17. package/components/pds-chip2.js +1 -1
  18. package/components/pds-chip2.js.map +1 -1
  19. package/components/pds-combobox.js +46 -41
  20. package/components/pds-combobox.js.map +1 -1
  21. package/components/pds-container.d.ts +11 -0
  22. package/components/pds-container.js +61 -0
  23. package/components/pds-container.js.map +1 -0
  24. package/components/pds-copytext.js +1 -1
  25. package/components/pds-divider.js +1 -1
  26. package/components/pds-dropdown-menu-item.js +1 -1
  27. package/components/pds-dropdown-menu-item.js.map +1 -1
  28. package/components/pds-dropdown-menu-separator.js +1 -1
  29. package/components/pds-dropdown-menu.js +1 -1
  30. package/components/pds-filter.js +1 -1
  31. package/components/pds-filters.js +1 -1
  32. package/components/pds-image.js +2 -2
  33. package/components/pds-input.js +4 -2
  34. package/components/pds-input.js.map +1 -1
  35. package/components/pds-link2.js +2 -2
  36. package/components/pds-loader2.js +1 -1
  37. package/components/pds-modal-content.js +2 -2
  38. package/components/pds-modal-footer.js +1 -1
  39. package/components/pds-modal-header.js +1 -1
  40. package/components/pds-modal.js +3 -3
  41. package/components/pds-multiselect.js +199 -40
  42. package/components/pds-multiselect.js.map +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 +1 -1
  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-textarea.js +8 -6
  52. package/components/pds-textarea.js.map +1 -1
  53. package/components/pds-toast.js +3 -3
  54. package/components/pds-toast.js.map +1 -1
  55. package/dist/cjs/{floating-ui.dom-Ca6tS7ef.js → floating-ui.dom-BZk7Blsu.js} +144 -131
  56. package/dist/cjs/floating-ui.dom-BZk7Blsu.js.map +1 -0
  57. package/dist/cjs/{form-DUqlzovE.js → form-CpM5Z8q7.js} +16 -2
  58. package/dist/cjs/form-CpM5Z8q7.js.map +1 -0
  59. package/dist/cjs/{index-D8mNsvM8.js → index-DGBoDsAL.js} +3 -3
  60. package/dist/cjs/index-DGBoDsAL.js.map +1 -0
  61. package/dist/cjs/loader.cjs.js +1 -1
  62. package/dist/cjs/mock-pds-modal.cjs.entry.js +1 -1
  63. package/dist/cjs/pds-accordion.cjs.entry.js +1 -1
  64. package/dist/cjs/pds-alert.cjs.entry.js +1 -1
  65. package/dist/cjs/pds-alert.entry.cjs.js.map +1 -1
  66. package/dist/cjs/pds-avatar.cjs.entry.js +2 -2
  67. package/dist/cjs/pds-avatar.entry.cjs.js.map +1 -1
  68. package/dist/cjs/pds-button.cjs.entry.js +1 -1
  69. package/dist/cjs/pds-checkbox.cjs.entry.js +6 -8
  70. package/dist/cjs/pds-checkbox.entry.cjs.js.map +1 -1
  71. package/dist/cjs/pds-chip.cjs.entry.js +2 -2
  72. package/dist/cjs/pds-chip.entry.cjs.js.map +1 -1
  73. package/dist/cjs/pds-combobox.cjs.entry.js +46 -42
  74. package/dist/cjs/pds-combobox.entry.cjs.js.map +1 -1
  75. package/dist/cjs/pds-container.cjs.entry.js +37 -0
  76. package/dist/cjs/pds-container.entry.cjs.js.map +1 -0
  77. package/dist/cjs/pds-copytext.cjs.entry.js +4 -4
  78. package/dist/cjs/pds-divider.cjs.entry.js +1 -1
  79. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +1 -1
  80. package/dist/cjs/pds-dropdown-menu-item.entry.cjs.js.map +1 -1
  81. package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +1 -1
  82. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +2 -2
  83. package/dist/cjs/pds-filter.cjs.entry.js +2 -2
  84. package/dist/cjs/pds-filters.cjs.entry.js +1 -1
  85. package/dist/cjs/pds-image.cjs.entry.js +2 -2
  86. package/dist/cjs/pds-input.cjs.entry.js +5 -3
  87. package/dist/cjs/pds-input.entry.cjs.js.map +1 -1
  88. package/dist/cjs/pds-link.cjs.entry.js +3 -3
  89. package/dist/cjs/pds-loader.cjs.entry.js +1 -1
  90. package/dist/cjs/pds-modal-content.cjs.entry.js +2 -2
  91. package/dist/cjs/pds-modal-footer.cjs.entry.js +1 -1
  92. package/dist/cjs/pds-modal-header.cjs.entry.js +1 -1
  93. package/dist/cjs/pds-modal.cjs.entry.js +3 -3
  94. package/dist/cjs/pds-multiselect.cjs.entry.js +187 -38
  95. package/dist/cjs/pds-multiselect.entry.cjs.js.map +1 -1
  96. package/dist/cjs/pds-radio-group.cjs.entry.js +2 -2
  97. package/dist/cjs/pds-radio.cjs.entry.js +2 -2
  98. package/dist/cjs/pds-select.cjs.entry.js +5 -3
  99. package/dist/cjs/pds-select.entry.cjs.js.map +1 -1
  100. package/dist/cjs/pds-sortable-item.cjs.entry.js +2 -2
  101. package/dist/cjs/pds-sortable-item.entry.cjs.js.map +1 -1
  102. package/dist/cjs/pds-sortable.cjs.entry.js +95 -93
  103. package/dist/cjs/pds-sortable.entry.cjs.js.map +1 -1
  104. package/dist/cjs/pds-switch.cjs.entry.js +6 -8
  105. package/dist/cjs/pds-switch.entry.cjs.js.map +1 -1
  106. package/dist/cjs/pds-table-cell.cjs.entry.js +2 -2
  107. package/dist/cjs/pds-table-head-cell.cjs.entry.js +1 -1
  108. package/dist/cjs/pds-text.cjs.entry.js +2 -2
  109. package/dist/cjs/pds-textarea.cjs.entry.js +9 -7
  110. package/dist/cjs/pds-textarea.entry.cjs.js.map +1 -1
  111. package/dist/cjs/pds-toast.cjs.entry.js +3 -3
  112. package/dist/cjs/pds-toast.entry.cjs.js.map +1 -1
  113. package/dist/cjs/pds-tooltip.cjs.entry.js +1 -1
  114. package/dist/cjs/pine-core.cjs.js +1 -1
  115. package/dist/cjs/{truncation-tooltip-BGGnm8SZ.js → truncation-tooltip-CVzAha5B.js} +3 -3
  116. package/dist/cjs/{truncation-tooltip-BGGnm8SZ.js.map → truncation-tooltip-CVzAha5B.js.map} +1 -1
  117. package/dist/collection/collection-manifest.json +1 -0
  118. package/dist/collection/components/pds-alert/pds-alert.js +2 -1
  119. package/dist/collection/components/pds-alert/pds-alert.js.map +1 -1
  120. package/dist/collection/components/pds-avatar/pds-avatar.js +3 -1
  121. package/dist/collection/components/pds-avatar/pds-avatar.js.map +1 -1
  122. package/dist/collection/components/pds-checkbox/pds-checkbox.js +5 -7
  123. package/dist/collection/components/pds-checkbox/pds-checkbox.js.map +1 -1
  124. package/dist/collection/components/pds-chip/pds-chip.js +2 -1
  125. package/dist/collection/components/pds-chip/pds-chip.js.map +1 -1
  126. package/dist/collection/components/pds-combobox/pds-combobox.css +5 -0
  127. package/dist/collection/components/pds-combobox/pds-combobox.js +53 -37
  128. package/dist/collection/components/pds-combobox/pds-combobox.js.map +1 -1
  129. package/dist/collection/components/pds-container/pds-container.css +26 -0
  130. package/dist/collection/components/pds-container/pds-container.js +112 -0
  131. package/dist/collection/components/pds-container/pds-container.js.map +1 -0
  132. package/dist/collection/components/pds-container/stories/pds-container.stories.js +89 -0
  133. package/dist/collection/components/pds-copytext/pds-copytext.js +1 -1
  134. package/dist/collection/components/pds-divider/pds-divider.js +1 -1
  135. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js +4 -1
  136. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js.map +1 -1
  137. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js +1 -1
  138. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +1 -1
  139. package/dist/collection/components/pds-filters/pds-filter/pds-filter.js +1 -1
  140. package/dist/collection/components/pds-filters/pds-filters.js +1 -1
  141. package/dist/collection/components/pds-image/pds-image.js +2 -2
  142. package/dist/collection/components/pds-input/pds-input.js +4 -2
  143. package/dist/collection/components/pds-input/pds-input.js.map +1 -1
  144. package/dist/collection/components/pds-link/pds-link.js +2 -2
  145. package/dist/collection/components/pds-loader/pds-loader.js +1 -1
  146. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js +2 -2
  147. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js +1 -1
  148. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js +1 -1
  149. package/dist/collection/components/pds-modal/pds-modal.js +3 -3
  150. package/dist/collection/components/pds-modal/test/mock-pds-modal.js +1 -1
  151. package/dist/collection/components/pds-multiselect/multiselect-interface.js.map +1 -1
  152. package/dist/collection/components/pds-multiselect/pds-multiselect.css +83 -1
  153. package/dist/collection/components/pds-multiselect/pds-multiselect.js +258 -37
  154. package/dist/collection/components/pds-multiselect/pds-multiselect.js.map +1 -1
  155. package/dist/collection/components/pds-multiselect/stories/pds-multiselect.stories.js +226 -0
  156. package/dist/collection/components/pds-select/pds-select.js +4 -2
  157. package/dist/collection/components/pds-select/pds-select.js.map +1 -1
  158. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.css +12 -2
  159. package/dist/collection/components/pds-sortable/pds-sortable.js +46 -4
  160. package/dist/collection/components/pds-sortable/pds-sortable.js.map +1 -1
  161. package/dist/collection/components/pds-sortable/sortable-interface.js.map +1 -1
  162. package/dist/collection/components/pds-sortable/stories/pds-sortable.stories.js +19 -4
  163. package/dist/collection/components/pds-switch/pds-switch.js +5 -7
  164. package/dist/collection/components/pds-switch/pds-switch.js.map +1 -1
  165. package/dist/collection/components/pds-textarea/pds-textarea.js +8 -6
  166. package/dist/collection/components/pds-textarea/pds-textarea.js.map +1 -1
  167. package/dist/collection/components/pds-toast/pds-toast.js +6 -3
  168. package/dist/collection/components/pds-toast/pds-toast.js.map +1 -1
  169. package/dist/collection/utils/form.js +13 -0
  170. package/dist/collection/utils/form.js.map +1 -1
  171. package/dist/docs.json +346 -15
  172. package/dist/esm/{floating-ui.dom-BO6p966C.js → floating-ui.dom-DDtwbwIl.js} +144 -131
  173. package/dist/esm/floating-ui.dom-DDtwbwIl.js.map +1 -0
  174. package/dist/esm/{form-CN-lL5QG.js → form-C3xDZBme.js} +16 -3
  175. package/dist/esm/form-C3xDZBme.js.map +1 -0
  176. package/dist/esm/{index-Bmf4Ow_8.js → index-D4ys0pep.js} +3 -3
  177. package/dist/esm/index-D4ys0pep.js.map +1 -0
  178. package/dist/esm/loader.js +1 -1
  179. package/dist/esm/mock-pds-modal.entry.js +1 -1
  180. package/dist/esm/pds-accordion.entry.js +1 -1
  181. package/dist/esm/pds-alert.entry.js +1 -1
  182. package/dist/esm/pds-alert.entry.js.map +1 -1
  183. package/dist/esm/pds-avatar.entry.js +2 -2
  184. package/dist/esm/pds-avatar.entry.js.map +1 -1
  185. package/dist/esm/pds-button.entry.js +1 -1
  186. package/dist/esm/pds-checkbox.entry.js +6 -8
  187. package/dist/esm/pds-checkbox.entry.js.map +1 -1
  188. package/dist/esm/pds-chip.entry.js +2 -2
  189. package/dist/esm/pds-chip.entry.js.map +1 -1
  190. package/dist/esm/pds-combobox.entry.js +46 -42
  191. package/dist/esm/pds-combobox.entry.js.map +1 -1
  192. package/dist/esm/pds-container.entry.js +35 -0
  193. package/dist/esm/pds-container.entry.js.map +1 -0
  194. package/dist/esm/pds-copytext.entry.js +4 -4
  195. package/dist/esm/pds-divider.entry.js +1 -1
  196. package/dist/esm/pds-dropdown-menu-item.entry.js +1 -1
  197. package/dist/esm/pds-dropdown-menu-item.entry.js.map +1 -1
  198. package/dist/esm/pds-dropdown-menu-separator.entry.js +1 -1
  199. package/dist/esm/pds-dropdown-menu.entry.js +2 -2
  200. package/dist/esm/pds-filter.entry.js +2 -2
  201. package/dist/esm/pds-filters.entry.js +1 -1
  202. package/dist/esm/pds-image.entry.js +2 -2
  203. package/dist/esm/pds-input.entry.js +5 -3
  204. package/dist/esm/pds-input.entry.js.map +1 -1
  205. package/dist/esm/pds-link.entry.js +3 -3
  206. package/dist/esm/pds-loader.entry.js +1 -1
  207. package/dist/esm/pds-modal-content.entry.js +2 -2
  208. package/dist/esm/pds-modal-footer.entry.js +1 -1
  209. package/dist/esm/pds-modal-header.entry.js +1 -1
  210. package/dist/esm/pds-modal.entry.js +3 -3
  211. package/dist/esm/pds-multiselect.entry.js +187 -38
  212. package/dist/esm/pds-multiselect.entry.js.map +1 -1
  213. package/dist/esm/pds-radio-group.entry.js +2 -2
  214. package/dist/esm/pds-radio.entry.js +2 -2
  215. package/dist/esm/pds-select.entry.js +5 -3
  216. package/dist/esm/pds-select.entry.js.map +1 -1
  217. package/dist/esm/pds-sortable-item.entry.js +2 -2
  218. package/dist/esm/pds-sortable-item.entry.js.map +1 -1
  219. package/dist/esm/pds-sortable.entry.js +95 -93
  220. package/dist/esm/pds-sortable.entry.js.map +1 -1
  221. package/dist/esm/pds-switch.entry.js +6 -8
  222. package/dist/esm/pds-switch.entry.js.map +1 -1
  223. package/dist/esm/pds-table-cell.entry.js +2 -2
  224. package/dist/esm/pds-table-head-cell.entry.js +1 -1
  225. package/dist/esm/pds-text.entry.js +2 -2
  226. package/dist/esm/pds-textarea.entry.js +9 -7
  227. package/dist/esm/pds-textarea.entry.js.map +1 -1
  228. package/dist/esm/pds-toast.entry.js +3 -3
  229. package/dist/esm/pds-toast.entry.js.map +1 -1
  230. package/dist/esm/pds-tooltip.entry.js +1 -1
  231. package/dist/esm/pine-core.js +1 -1
  232. package/dist/esm/{truncation-tooltip-CTHpMbU3.js → truncation-tooltip-Blk4GigP.js} +3 -3
  233. package/dist/{esm-es5/truncation-tooltip-CTHpMbU3.js.map → esm/truncation-tooltip-Blk4GigP.js.map} +1 -1
  234. package/dist/esm-es5/floating-ui.dom-DDtwbwIl.js +2 -0
  235. package/dist/esm-es5/floating-ui.dom-DDtwbwIl.js.map +1 -0
  236. package/dist/esm-es5/{form-CN-lL5QG.js → form-C3xDZBme.js} +2 -2
  237. package/dist/esm-es5/form-C3xDZBme.js.map +1 -0
  238. package/dist/esm-es5/{index-Bmf4Ow_8.js → index-D4ys0pep.js} +1 -1
  239. package/dist/esm-es5/index-D4ys0pep.js.map +1 -0
  240. package/dist/esm-es5/loader.js +1 -1
  241. package/dist/esm-es5/mock-pds-modal.entry.js +1 -1
  242. package/dist/esm-es5/pds-accordion.entry.js +1 -1
  243. package/dist/esm-es5/pds-alert.entry.js +1 -1
  244. package/dist/esm-es5/pds-alert.entry.js.map +1 -1
  245. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  246. package/dist/esm-es5/pds-avatar.entry.js.map +1 -1
  247. package/dist/esm-es5/pds-button.entry.js +1 -1
  248. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  249. package/dist/esm-es5/pds-checkbox.entry.js.map +1 -1
  250. package/dist/esm-es5/pds-chip.entry.js +1 -1
  251. package/dist/esm-es5/pds-chip.entry.js.map +1 -1
  252. package/dist/esm-es5/pds-combobox.entry.js +2 -2
  253. package/dist/esm-es5/pds-combobox.entry.js.map +1 -1
  254. package/dist/esm-es5/pds-container.entry.js +2 -0
  255. package/dist/esm-es5/pds-container.entry.js.map +1 -0
  256. package/dist/esm-es5/pds-copytext.entry.js +1 -1
  257. package/dist/esm-es5/pds-divider.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-separator.entry.js +1 -1
  261. package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
  262. package/dist/esm-es5/pds-filter.entry.js +1 -1
  263. package/dist/esm-es5/pds-filters.entry.js +1 -1
  264. package/dist/esm-es5/pds-image.entry.js +1 -1
  265. package/dist/esm-es5/pds-input.entry.js +1 -1
  266. package/dist/esm-es5/pds-input.entry.js.map +1 -1
  267. package/dist/esm-es5/pds-link.entry.js +1 -1
  268. package/dist/esm-es5/pds-loader.entry.js +1 -1
  269. package/dist/esm-es5/pds-modal-content.entry.js +1 -1
  270. package/dist/esm-es5/pds-modal-footer.entry.js +1 -1
  271. package/dist/esm-es5/pds-modal-header.entry.js +1 -1
  272. package/dist/esm-es5/pds-modal.entry.js +1 -1
  273. package/dist/esm-es5/pds-multiselect.entry.js +1 -1
  274. package/dist/esm-es5/pds-multiselect.entry.js.map +1 -1
  275. package/dist/esm-es5/pds-radio-group.entry.js +1 -1
  276. package/dist/esm-es5/pds-radio.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-item.entry.js.map +1 -1
  281. package/dist/esm-es5/pds-sortable.entry.js +2 -2
  282. package/dist/esm-es5/pds-sortable.entry.js.map +1 -1
  283. package/dist/esm-es5/pds-switch.entry.js +1 -1
  284. package/dist/esm-es5/pds-switch.entry.js.map +1 -1
  285. package/dist/esm-es5/pds-table-cell.entry.js +1 -1
  286. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  287. package/dist/esm-es5/pds-text.entry.js +1 -1
  288. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  289. package/dist/esm-es5/pds-textarea.entry.js.map +1 -1
  290. package/dist/esm-es5/pds-toast.entry.js +1 -1
  291. package/dist/esm-es5/pds-toast.entry.js.map +1 -1
  292. package/dist/esm-es5/pds-tooltip.entry.js +1 -1
  293. package/dist/esm-es5/pine-core.js +1 -1
  294. package/dist/esm-es5/{truncation-tooltip-CTHpMbU3.js → truncation-tooltip-Blk4GigP.js} +2 -2
  295. package/dist/{esm/truncation-tooltip-CTHpMbU3.js.map → esm-es5/truncation-tooltip-Blk4GigP.js.map} +1 -1
  296. package/dist/pine-core/p--XSKe449.system.js.map +1 -0
  297. package/dist/pine-core/p-06921b1a.system.entry.js +2 -0
  298. package/dist/pine-core/p-06921b1a.system.entry.js.map +1 -0
  299. package/dist/pine-core/{p-5f63b999.entry.js → p-0e35b09a.entry.js} +2 -2
  300. package/dist/pine-core/{p-b2a7c2bf.entry.js → p-0f376270.entry.js} +2 -2
  301. package/dist/pine-core/p-10e0be55.entry.js +2 -0
  302. package/dist/pine-core/{p-9f09e116.system.entry.js → p-137517ea.system.entry.js} +2 -2
  303. package/dist/pine-core/{p-203f6e9e.entry.js → p-14ca4f31.entry.js} +2 -2
  304. package/dist/pine-core/p-1fa303af.entry.js +2 -0
  305. package/dist/pine-core/p-213d0f72.system.entry.js +2 -0
  306. package/dist/pine-core/p-213d0f72.system.entry.js.map +1 -0
  307. package/dist/pine-core/p-23450d7a.system.entry.js +2 -0
  308. package/dist/pine-core/p-23450d7a.system.entry.js.map +1 -0
  309. package/dist/pine-core/{p-b6ede995.system.entry.js → p-2483b797.system.entry.js} +2 -2
  310. package/dist/pine-core/p-29a8ef8a.entry.js +2 -0
  311. package/dist/pine-core/p-29a8ef8a.entry.js.map +1 -0
  312. package/dist/pine-core/{p-f179c88f.system.entry.js → p-2f0eb2b5.system.entry.js} +2 -2
  313. package/dist/pine-core/{p-68f97bdf.entry.js → p-2f6f60d9.entry.js} +2 -2
  314. package/dist/pine-core/p-3a527283.entry.js +8 -0
  315. package/dist/pine-core/p-3a527283.entry.js.map +1 -0
  316. package/dist/pine-core/{p-73be1c83.entry.js → p-3b342c35.entry.js} +2 -2
  317. package/dist/pine-core/{p-9ba4acdf.system.entry.js → p-3f0a6a75.system.entry.js} +2 -2
  318. package/dist/pine-core/{p-51d2999d.entry.js → p-426e90cb.entry.js} +2 -2
  319. package/dist/pine-core/{p-119ccf73.entry.js → p-426f5f57.entry.js} +2 -2
  320. package/dist/pine-core/p-4591a359.system.entry.js +9 -0
  321. package/dist/pine-core/p-4591a359.system.entry.js.map +1 -0
  322. package/dist/pine-core/{p-7737e4e8.system.entry.js → p-4d2e9e8d.system.entry.js} +2 -2
  323. package/dist/pine-core/p-4f6487b9.system.entry.js +2 -0
  324. package/dist/pine-core/p-4f6487b9.system.entry.js.map +1 -0
  325. package/dist/pine-core/{p-DKT0sVlZ.system.js.map → p-5L_gsODn.system.js.map} +1 -1
  326. package/dist/pine-core/p-66644048.entry.js +2 -0
  327. package/dist/pine-core/{p-b8f21554.system.entry.js → p-6b456e02.system.entry.js} +2 -2
  328. package/dist/pine-core/{p-d0504aa8.system.entry.js → p-6be19a23.system.entry.js} +2 -2
  329. package/dist/pine-core/{p-d8d796ad.system.entry.js → p-6dcd7876.system.entry.js} +2 -2
  330. package/dist/pine-core/{p-8a53ae6d.system.entry.js → p-712e0d82.system.entry.js} +2 -2
  331. package/dist/pine-core/p-72a27cb7.system.entry.js +2 -0
  332. package/dist/pine-core/p-72a27cb7.system.entry.js.map +1 -0
  333. package/dist/pine-core/{p-3fc8dbc9.system.entry.js → p-75a53dce.system.entry.js} +2 -2
  334. package/dist/pine-core/{p-2f663747.system.entry.js → p-7dfb5b1f.system.entry.js} +2 -2
  335. package/dist/pine-core/{p-e9eb3fc3.system.entry.js → p-811e510d.system.entry.js} +2 -2
  336. package/dist/pine-core/{p-7fc20a77.system.entry.js → p-84b696ce.system.entry.js} +2 -2
  337. package/dist/pine-core/p-8501bb6b.entry.js +2 -0
  338. package/dist/pine-core/p-8501bb6b.entry.js.map +1 -0
  339. package/dist/pine-core/p-8c000d7c.entry.js +2 -0
  340. package/dist/pine-core/{p-ccdee55a.entry.js → p-8c0fc8ff.entry.js} +2 -2
  341. package/dist/pine-core/p-8f48fa0b.system.entry.js +2 -0
  342. package/dist/pine-core/p-8f48fa0b.system.entry.js.map +1 -0
  343. package/dist/pine-core/{p-18a3b6ba.system.entry.js → p-92df334f.system.entry.js} +2 -2
  344. package/dist/pine-core/{p-1b0dc99e.system.entry.js → p-93eeca70.system.entry.js} +2 -2
  345. package/dist/pine-core/p-98e202b8.system.entry.js +2 -0
  346. package/dist/pine-core/{p-445c5ec5.system.entry.js → p-9947c6cd.system.entry.js} +2 -2
  347. package/dist/pine-core/{p-1d82417a.entry.js → p-9d2e89e5.entry.js} +2 -2
  348. package/dist/pine-core/{p-cbf49268.entry.js → p-9ea92b46.entry.js} +2 -2
  349. package/dist/pine-core/p-9f0f1389.entry.js +2 -0
  350. package/dist/pine-core/{p-bf712423.entry.js.map → p-9f0f1389.entry.js.map} +1 -1
  351. package/dist/pine-core/{p-Bch44a-T.system.js → p-B1u-QvFn.system.js} +2 -2
  352. package/dist/pine-core/p-B1u-QvFn.system.js.map +1 -0
  353. package/dist/pine-core/{p-BASnRvhy.system.js.map → p-B8OHXU49.system.js.map} +1 -1
  354. package/dist/pine-core/{p-5hPM5knE.js → p-BNSGedhN.js} +2 -2
  355. package/dist/pine-core/{p-5hPM5knE.js.map → p-BNSGedhN.js.map} +1 -1
  356. package/dist/pine-core/p-B_IKQKhn.system.js.map +1 -0
  357. package/dist/pine-core/{p-CSe1fQxQ.system.js.map → p-Bb4REZL1.system.js.map} +1 -1
  358. package/dist/pine-core/p-BfOM0dtX.system.js.map +1 -0
  359. package/dist/pine-core/{p-C1p8XJSR.system.js.map → p-BgNsCT1R.system.js.map} +1 -1
  360. package/dist/pine-core/p-Bng_-RSY.system.js.map +1 -0
  361. package/dist/pine-core/{p-dPhHNR2G.system.js.map → p-Bp9jwGLH.system.js.map} +1 -1
  362. package/dist/pine-core/{p-B9rVdQdy.system.js.map → p-BqPhyc8k.system.js.map} +1 -1
  363. package/dist/pine-core/p-BrLs99ML.system.js +2 -0
  364. package/dist/pine-core/p-BrLs99ML.system.js.map +1 -0
  365. package/dist/pine-core/p-C3xDZBme.js +2 -0
  366. package/dist/pine-core/p-C3xDZBme.js.map +1 -0
  367. package/dist/pine-core/{p-CFL53vBy.system.js → p-C62JIZmE.system.js} +1 -1
  368. package/dist/pine-core/p-C62JIZmE.system.js.map +1 -0
  369. package/dist/pine-core/{p-DQCerqxZ.system.js.map → p-C6TsH_RJ.system.js.map} +1 -1
  370. package/dist/pine-core/p-C9msrPdv.system.js.map +1 -0
  371. package/dist/pine-core/{p-BR9M75xt.system.js.map → p-CI7DD4Gj.system.js.map} +1 -1
  372. package/dist/pine-core/{p-DXVwADJT.system.js → p-CRCxGYgw.system.js} +2 -2
  373. package/dist/pine-core/{p-DXVwADJT.system.js.map → p-CRCxGYgw.system.js.map} +1 -1
  374. package/dist/pine-core/p-CXhVuzyx.system.js.map +1 -0
  375. package/dist/pine-core/{p-9SGoKSa6.system.js.map → p-CYFz3obB.system.js.map} +1 -1
  376. package/dist/pine-core/{p-BeJr-4oL.system.js.map → p-CZnOhE0g.system.js.map} +1 -1
  377. package/dist/pine-core/p-CdMCGjQj.system.js.map +1 -0
  378. package/dist/pine-core/{p-sgZDP7ET.system.js.map → p-CijIWK3K.system.js.map} +1 -1
  379. package/dist/pine-core/{p-DZt6ah_A.system.js.map → p-ClPf_JF1.system.js.map} +1 -1
  380. package/dist/pine-core/{p-Bsen6aos.system.js.map → p-Co9FFVKs.system.js.map} +1 -1
  381. package/dist/pine-core/{p-CfNEp0k0.system.js.map → p-Cvql9iy1.system.js.map} +1 -1
  382. package/dist/pine-core/p-CyOICl1j.system.js.map +1 -0
  383. package/dist/pine-core/{p-DmWm26A6.system.js.map → p-D0GkJmlY.system.js.map} +1 -1
  384. package/dist/pine-core/{p-Bmf4Ow_8.js → p-D4ys0pep.js} +1 -1
  385. package/dist/pine-core/p-D4ys0pep.js.map +1 -0
  386. package/dist/pine-core/p-DDtwbwIl.js +2 -0
  387. package/dist/pine-core/p-DDtwbwIl.js.map +1 -0
  388. package/dist/pine-core/p-DLZO3aKG.system.js.map +1 -0
  389. package/dist/pine-core/p-DO--6n89.system.js.map +1 -0
  390. package/dist/pine-core/p-DQJGHOVq.system.js.map +1 -0
  391. package/dist/pine-core/{p-D02u2D7r.system.js.map → p-DkNlmqjM.system.js.map} +1 -1
  392. package/dist/pine-core/p-Dl-o5ymF.system.js.map +1 -0
  393. package/dist/pine-core/p-DqfjMab8.system.js.map +1 -0
  394. package/dist/pine-core/{p-CsWO_n3t.system.js.map → p-DyrMiAYl.system.js.map} +1 -1
  395. package/dist/pine-core/{p-DzmLlvu3.system.js.map → p-FWsvMskO.system.js.map} +1 -1
  396. package/dist/pine-core/p-JAVnELnm.system.js +1 -1
  397. package/dist/pine-core/p-a11c3642.system.entry.js +2 -0
  398. package/dist/pine-core/{p-08cdf7f2.system.entry.js → p-a55bc143.system.entry.js} +2 -2
  399. package/dist/pine-core/{p-abb72971.system.entry.js → p-a85e565c.system.entry.js} +2 -2
  400. package/dist/pine-core/{p-56d0e6f4.entry.js → p-aa331370.entry.js} +2 -2
  401. package/dist/pine-core/{p-BUtyruql.system.js.map → p-abrage-l.system.js.map} +1 -1
  402. package/dist/pine-core/p-ac186cd4.system.entry.js +2 -0
  403. package/dist/pine-core/{p-edbaff73.system.entry.js → p-ae238530.system.entry.js} +2 -2
  404. package/dist/pine-core/{p-b7f2f9f3.system.entry.js → p-afad45f6.system.entry.js} +2 -2
  405. package/dist/pine-core/p-b2218fa1.entry.js +2 -0
  406. package/dist/pine-core/p-b2218fa1.entry.js.map +1 -0
  407. package/dist/pine-core/{p-36478643.system.entry.js → p-b2a5b6ae.system.entry.js} +2 -2
  408. package/dist/pine-core/p-b83f79a7.entry.js +2 -0
  409. package/dist/pine-core/p-b83f79a7.entry.js.map +1 -0
  410. package/dist/pine-core/{p-Be8OBmYb.system.js.map → p-bkQbPz-z.system.js.map} +1 -1
  411. package/dist/pine-core/{p-bf157830.entry.js → p-c38eb8e9.entry.js} +2 -2
  412. package/dist/pine-core/p-ca9da7ea.system.entry.js +2 -0
  413. package/dist/pine-core/p-ca9da7ea.system.entry.js.map +1 -0
  414. package/dist/pine-core/{p-5e83f6e3.system.entry.js → p-cb668b61.system.entry.js} +2 -2
  415. package/dist/pine-core/{p-39cb879d.entry.js → p-ccf46b90.entry.js} +2 -2
  416. package/dist/pine-core/p-cdd8175e.entry.js +2 -0
  417. package/dist/pine-core/p-cdd8175e.entry.js.map +1 -0
  418. package/dist/pine-core/{p-867ef2f1.entry.js → p-ceca2cb1.entry.js} +2 -2
  419. package/dist/pine-core/{p-9558fa60.entry.js → p-d045b245.entry.js} +2 -2
  420. package/dist/pine-core/{p-ea721a45.entry.js → p-d0eebd6d.entry.js} +2 -2
  421. package/dist/pine-core/{p-599a5903.system.entry.js → p-d1313dd6.system.entry.js} +2 -2
  422. package/dist/pine-core/p-d3e64f4e.system.entry.js +4 -0
  423. package/dist/pine-core/p-d3e64f4e.system.entry.js.map +1 -0
  424. package/dist/pine-core/{p-3e2fc38f.entry.js → p-d4844049.entry.js} +2 -2
  425. package/dist/pine-core/p-d8698ac5.entry.js +3 -0
  426. package/dist/pine-core/p-d8698ac5.entry.js.map +1 -0
  427. package/dist/pine-core/p-e0f21c22.entry.js +2 -0
  428. package/dist/pine-core/{p-9b2cd9fc.entry.js → p-e463b9d3.entry.js} +2 -2
  429. package/dist/pine-core/{p-5107c129.entry.js → p-e73b5859.entry.js} +2 -2
  430. package/dist/pine-core/{p-De6wHGVf.system.js.map → p-eUcBQ_fh.system.js.map} +1 -1
  431. package/dist/pine-core/p-ed447b3e.entry.js +2 -0
  432. package/dist/pine-core/p-ed447b3e.entry.js.map +1 -0
  433. package/dist/pine-core/p-f42e65fd.system.entry.js +2 -0
  434. package/dist/pine-core/{p-46d61c98.system.entry.js.map → p-f42e65fd.system.entry.js.map} +1 -1
  435. package/dist/pine-core/{p-9c0e22d4.entry.js → p-f74bd712.entry.js} +2 -2
  436. package/dist/pine-core/p-f84b6b5a.entry.js +2 -0
  437. package/dist/pine-core/p-f84b6b5a.entry.js.map +1 -0
  438. package/dist/pine-core/p-fa21e054.system.entry.js +2 -0
  439. package/dist/pine-core/{p-64c6c4a0.entry.js → p-fa51ae5d.entry.js} +2 -2
  440. package/dist/pine-core/p-fc830d8b.entry.js +2 -0
  441. package/dist/pine-core/{p-7c1b1fb8.entry.js.map → p-fc830d8b.entry.js.map} +1 -1
  442. package/dist/pine-core/{p-CEE11B7K.system.js.map → p-k9PMan7S.system.js.map} +1 -1
  443. package/dist/pine-core/p-kR80YJVM.system.js.map +1 -0
  444. package/dist/pine-core/p-uIsnJ30J.system.js.map +1 -0
  445. package/dist/pine-core/pds-alert.entry.esm.js.map +1 -1
  446. package/dist/pine-core/pds-avatar.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-container.entry.esm.js.map +1 -0
  451. package/dist/pine-core/pds-dropdown-menu-item.entry.esm.js.map +1 -1
  452. package/dist/pine-core/pds-input.entry.esm.js.map +1 -1
  453. package/dist/pine-core/pds-multiselect.entry.esm.js.map +1 -1
  454. package/dist/pine-core/pds-select.entry.esm.js.map +1 -1
  455. package/dist/pine-core/pds-sortable-item.entry.esm.js.map +1 -1
  456. package/dist/pine-core/pds-sortable.entry.esm.js.map +1 -1
  457. package/dist/pine-core/pds-switch.entry.esm.js.map +1 -1
  458. package/dist/pine-core/pds-textarea.entry.esm.js.map +1 -1
  459. package/dist/pine-core/pds-toast.entry.esm.js.map +1 -1
  460. package/dist/pine-core/pine-core.esm.js +1 -1
  461. package/dist/types/components/pds-alert/pds-alert.d.ts +1 -0
  462. package/dist/types/components/pds-avatar/pds-avatar.d.ts +2 -0
  463. package/dist/types/components/pds-chip/pds-chip.d.ts +1 -0
  464. package/dist/types/components/pds-combobox/pds-combobox.d.ts +9 -1
  465. package/dist/types/components/pds-container/pds-container.d.ts +22 -0
  466. package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.d.ts +3 -0
  467. package/dist/types/components/pds-multiselect/multiselect-interface.d.ts +8 -0
  468. package/dist/types/components/pds-multiselect/pds-multiselect.d.ts +31 -0
  469. package/dist/types/components/pds-sortable/pds-sortable.d.ts +8 -1
  470. package/dist/types/components/pds-sortable/sortable-interface.d.ts +1 -0
  471. package/dist/types/components/pds-toast/pds-toast.d.ts +3 -0
  472. package/dist/types/components.d.ts +97 -6
  473. package/dist/types/utils/form.d.ts +10 -0
  474. package/dist/vscode.html-data.json +10529 -0
  475. package/hydrate/index.js +596 -349
  476. package/hydrate/index.mjs +596 -349
  477. package/package.json +2 -2
  478. package/dist/cjs/floating-ui.dom-Ca6tS7ef.js.map +0 -1
  479. package/dist/cjs/form-DUqlzovE.js.map +0 -1
  480. package/dist/cjs/index-D8mNsvM8.js.map +0 -1
  481. package/dist/esm/floating-ui.dom-BO6p966C.js.map +0 -1
  482. package/dist/esm/form-CN-lL5QG.js.map +0 -1
  483. package/dist/esm/index-Bmf4Ow_8.js.map +0 -1
  484. package/dist/esm-es5/floating-ui.dom-BO6p966C.js +0 -2
  485. package/dist/esm-es5/floating-ui.dom-BO6p966C.js.map +0 -1
  486. package/dist/esm-es5/form-CN-lL5QG.js.map +0 -1
  487. package/dist/esm-es5/index-Bmf4Ow_8.js.map +0 -1
  488. package/dist/pine-core/p-0b3d6527.entry.js +0 -2
  489. package/dist/pine-core/p-0b3d6527.entry.js.map +0 -1
  490. package/dist/pine-core/p-221b4348.entry.js +0 -2
  491. package/dist/pine-core/p-221b4348.entry.js.map +0 -1
  492. package/dist/pine-core/p-25255ab8.system.entry.js +0 -4
  493. package/dist/pine-core/p-25255ab8.system.entry.js.map +0 -1
  494. package/dist/pine-core/p-2a7b94ba.system.entry.js +0 -2
  495. package/dist/pine-core/p-2a7b94ba.system.entry.js.map +0 -1
  496. package/dist/pine-core/p-31bfac45.entry.js +0 -2
  497. package/dist/pine-core/p-3239c67a.entry.js +0 -2
  498. package/dist/pine-core/p-396d4b63.entry.js +0 -8
  499. package/dist/pine-core/p-396d4b63.entry.js.map +0 -1
  500. package/dist/pine-core/p-3fd70f83.entry.js +0 -2
  501. package/dist/pine-core/p-3fd70f83.entry.js.map +0 -1
  502. package/dist/pine-core/p-44035cf4.entry.js +0 -3
  503. package/dist/pine-core/p-44035cf4.entry.js.map +0 -1
  504. package/dist/pine-core/p-46d61c98.system.entry.js +0 -2
  505. package/dist/pine-core/p-4c0e71ce.entry.js +0 -2
  506. package/dist/pine-core/p-4c0e71ce.entry.js.map +0 -1
  507. package/dist/pine-core/p-4c82bff5.entry.js +0 -2
  508. package/dist/pine-core/p-79f0b007.entry.js +0 -2
  509. package/dist/pine-core/p-79f0b007.entry.js.map +0 -1
  510. package/dist/pine-core/p-7c1b1fb8.entry.js +0 -2
  511. package/dist/pine-core/p-7da176b4.system.entry.js +0 -9
  512. package/dist/pine-core/p-7da176b4.system.entry.js.map +0 -1
  513. package/dist/pine-core/p-8a31ccd4.entry.js +0 -2
  514. package/dist/pine-core/p-8a31ccd4.entry.js.map +0 -1
  515. package/dist/pine-core/p-91781a0a.system.entry.js +0 -2
  516. package/dist/pine-core/p-91781a0a.system.entry.js.map +0 -1
  517. package/dist/pine-core/p-94a9ff2a.system.entry.js +0 -2
  518. package/dist/pine-core/p-BB9Md7vT.system.js.map +0 -1
  519. package/dist/pine-core/p-BGc1L0Ao.system.js.map +0 -1
  520. package/dist/pine-core/p-BO6p966C.js +0 -2
  521. package/dist/pine-core/p-BO6p966C.js.map +0 -1
  522. package/dist/pine-core/p-Bch44a-T.system.js.map +0 -1
  523. package/dist/pine-core/p-Bmf4Ow_8.js.map +0 -1
  524. package/dist/pine-core/p-BohZ8Mvm.system.js.map +0 -1
  525. package/dist/pine-core/p-CEll-OBZ.system.js.map +0 -1
  526. package/dist/pine-core/p-CFL53vBy.system.js.map +0 -1
  527. package/dist/pine-core/p-CFqOsbKv.system.js.map +0 -1
  528. package/dist/pine-core/p-CH2XYz0c.system.js.map +0 -1
  529. package/dist/pine-core/p-CN-lL5QG.js +0 -2
  530. package/dist/pine-core/p-CN-lL5QG.js.map +0 -1
  531. package/dist/pine-core/p-CTDKHxjD.system.js.map +0 -1
  532. package/dist/pine-core/p-D-iLwshJ.system.js.map +0 -1
  533. package/dist/pine-core/p-D2eS6fhD.system.js +0 -2
  534. package/dist/pine-core/p-D2eS6fhD.system.js.map +0 -1
  535. package/dist/pine-core/p-D497NWkn.system.js.map +0 -1
  536. package/dist/pine-core/p-DHNujrRT.system.js.map +0 -1
  537. package/dist/pine-core/p-DcrqbXJe.system.js.map +0 -1
  538. package/dist/pine-core/p-DdR8iWme.system.js.map +0 -1
  539. package/dist/pine-core/p-DqO0Rc5m.system.js.map +0 -1
  540. package/dist/pine-core/p-a553b40b.system.entry.js +0 -2
  541. package/dist/pine-core/p-a553b40b.system.entry.js.map +0 -1
  542. package/dist/pine-core/p-af5bf21d.entry.js +0 -2
  543. package/dist/pine-core/p-bPSIyJOo.system.js.map +0 -1
  544. package/dist/pine-core/p-ba195382.system.entry.js +0 -2
  545. package/dist/pine-core/p-bd2329cd.entry.js +0 -2
  546. package/dist/pine-core/p-bf712423.entry.js +0 -2
  547. package/dist/pine-core/p-d6139188.system.entry.js +0 -2
  548. package/dist/pine-core/p-ed5ca877.system.entry.js +0 -2
  549. package/dist/pine-core/p-ef7d0535.system.entry.js +0 -2
  550. package/dist/pine-core/p-ef7d0535.system.entry.js.map +0 -1
  551. package/dist/pine-core/p-f298baeb.system.entry.js +0 -2
  552. package/dist/pine-core/p-f298baeb.system.entry.js.map +0 -1
  553. package/dist/pine-core/p-f9c32940.system.entry.js +0 -2
  554. package/dist/pine-core/p-f9c32940.system.entry.js.map +0 -1
  555. /package/dist/pine-core/{p-5f63b999.entry.js.map → p-0e35b09a.entry.js.map} +0 -0
  556. /package/dist/pine-core/{p-b2a7c2bf.entry.js.map → p-0f376270.entry.js.map} +0 -0
  557. /package/dist/pine-core/{p-31bfac45.entry.js.map → p-10e0be55.entry.js.map} +0 -0
  558. /package/dist/pine-core/{p-9f09e116.system.entry.js.map → p-137517ea.system.entry.js.map} +0 -0
  559. /package/dist/pine-core/{p-203f6e9e.entry.js.map → p-14ca4f31.entry.js.map} +0 -0
  560. /package/dist/pine-core/{p-4c82bff5.entry.js.map → p-1fa303af.entry.js.map} +0 -0
  561. /package/dist/pine-core/{p-b6ede995.system.entry.js.map → p-2483b797.system.entry.js.map} +0 -0
  562. /package/dist/pine-core/{p-f179c88f.system.entry.js.map → p-2f0eb2b5.system.entry.js.map} +0 -0
  563. /package/dist/pine-core/{p-68f97bdf.entry.js.map → p-2f6f60d9.entry.js.map} +0 -0
  564. /package/dist/pine-core/{p-73be1c83.entry.js.map → p-3b342c35.entry.js.map} +0 -0
  565. /package/dist/pine-core/{p-9ba4acdf.system.entry.js.map → p-3f0a6a75.system.entry.js.map} +0 -0
  566. /package/dist/pine-core/{p-51d2999d.entry.js.map → p-426e90cb.entry.js.map} +0 -0
  567. /package/dist/pine-core/{p-119ccf73.entry.js.map → p-426f5f57.entry.js.map} +0 -0
  568. /package/dist/pine-core/{p-7737e4e8.system.entry.js.map → p-4d2e9e8d.system.entry.js.map} +0 -0
  569. /package/dist/pine-core/{p-3239c67a.entry.js.map → p-66644048.entry.js.map} +0 -0
  570. /package/dist/pine-core/{p-b8f21554.system.entry.js.map → p-6b456e02.system.entry.js.map} +0 -0
  571. /package/dist/pine-core/{p-d0504aa8.system.entry.js.map → p-6be19a23.system.entry.js.map} +0 -0
  572. /package/dist/pine-core/{p-d8d796ad.system.entry.js.map → p-6dcd7876.system.entry.js.map} +0 -0
  573. /package/dist/pine-core/{p-8a53ae6d.system.entry.js.map → p-712e0d82.system.entry.js.map} +0 -0
  574. /package/dist/pine-core/{p-3fc8dbc9.system.entry.js.map → p-75a53dce.system.entry.js.map} +0 -0
  575. /package/dist/pine-core/{p-2f663747.system.entry.js.map → p-7dfb5b1f.system.entry.js.map} +0 -0
  576. /package/dist/pine-core/{p-e9eb3fc3.system.entry.js.map → p-811e510d.system.entry.js.map} +0 -0
  577. /package/dist/pine-core/{p-7fc20a77.system.entry.js.map → p-84b696ce.system.entry.js.map} +0 -0
  578. /package/dist/pine-core/{p-bd2329cd.entry.js.map → p-8c000d7c.entry.js.map} +0 -0
  579. /package/dist/pine-core/{p-ccdee55a.entry.js.map → p-8c0fc8ff.entry.js.map} +0 -0
  580. /package/dist/pine-core/{p-18a3b6ba.system.entry.js.map → p-92df334f.system.entry.js.map} +0 -0
  581. /package/dist/pine-core/{p-1b0dc99e.system.entry.js.map → p-93eeca70.system.entry.js.map} +0 -0
  582. /package/dist/pine-core/{p-ed5ca877.system.entry.js.map → p-98e202b8.system.entry.js.map} +0 -0
  583. /package/dist/pine-core/{p-445c5ec5.system.entry.js.map → p-9947c6cd.system.entry.js.map} +0 -0
  584. /package/dist/pine-core/{p-1d82417a.entry.js.map → p-9d2e89e5.entry.js.map} +0 -0
  585. /package/dist/pine-core/{p-cbf49268.entry.js.map → p-9ea92b46.entry.js.map} +0 -0
  586. /package/dist/pine-core/{p-94a9ff2a.system.entry.js.map → p-a11c3642.system.entry.js.map} +0 -0
  587. /package/dist/pine-core/{p-08cdf7f2.system.entry.js.map → p-a55bc143.system.entry.js.map} +0 -0
  588. /package/dist/pine-core/{p-abb72971.system.entry.js.map → p-a85e565c.system.entry.js.map} +0 -0
  589. /package/dist/pine-core/{p-56d0e6f4.entry.js.map → p-aa331370.entry.js.map} +0 -0
  590. /package/dist/pine-core/{p-ba195382.system.entry.js.map → p-ac186cd4.system.entry.js.map} +0 -0
  591. /package/dist/pine-core/{p-edbaff73.system.entry.js.map → p-ae238530.system.entry.js.map} +0 -0
  592. /package/dist/pine-core/{p-b7f2f9f3.system.entry.js.map → p-afad45f6.system.entry.js.map} +0 -0
  593. /package/dist/pine-core/{p-36478643.system.entry.js.map → p-b2a5b6ae.system.entry.js.map} +0 -0
  594. /package/dist/pine-core/{p-bf157830.entry.js.map → p-c38eb8e9.entry.js.map} +0 -0
  595. /package/dist/pine-core/{p-5e83f6e3.system.entry.js.map → p-cb668b61.system.entry.js.map} +0 -0
  596. /package/dist/pine-core/{p-39cb879d.entry.js.map → p-ccf46b90.entry.js.map} +0 -0
  597. /package/dist/pine-core/{p-867ef2f1.entry.js.map → p-ceca2cb1.entry.js.map} +0 -0
  598. /package/dist/pine-core/{p-9558fa60.entry.js.map → p-d045b245.entry.js.map} +0 -0
  599. /package/dist/pine-core/{p-ea721a45.entry.js.map → p-d0eebd6d.entry.js.map} +0 -0
  600. /package/dist/pine-core/{p-599a5903.system.entry.js.map → p-d1313dd6.system.entry.js.map} +0 -0
  601. /package/dist/pine-core/{p-3e2fc38f.entry.js.map → p-d4844049.entry.js.map} +0 -0
  602. /package/dist/pine-core/{p-af5bf21d.entry.js.map → p-e0f21c22.entry.js.map} +0 -0
  603. /package/dist/pine-core/{p-9b2cd9fc.entry.js.map → p-e463b9d3.entry.js.map} +0 -0
  604. /package/dist/pine-core/{p-5107c129.entry.js.map → p-e73b5859.entry.js.map} +0 -0
  605. /package/dist/pine-core/{p-9c0e22d4.entry.js.map → p-f74bd712.entry.js.map} +0 -0
  606. /package/dist/pine-core/{p-d6139188.system.entry.js.map → p-fa21e054.system.entry.js.map} +0 -0
  607. /package/dist/pine-core/{p-64c6c4a0.entry.js.map → p-fa51ae5d.entry.js.map} +0 -0
@@ -233,14 +233,14 @@ export class PdsModal {
233
233
  return thisZIndex === maxZIndex;
234
234
  }
235
235
  render() {
236
- return (h("dialog", { key: '22ca55ddcc3aaf6e1158940d1fec23c9622b7810', class: {
236
+ return (h("dialog", { key: 'cf2710a889d8f0e80a3551088ab38a88dc44ad1e', class: {
237
237
  'pds-modal__backdrop': true,
238
238
  'open': this.open
239
- }, "aria-modal": "true", "aria-labelledby": `${this.componentId}-heading`, onClick: this.handleBackdropClick }, h("div", { key: '803acd0d7a80886efd58c9eeb1af94b40c049de8', class: {
239
+ }, "aria-modal": "true", "aria-labelledby": `${this.componentId}-heading`, onClick: this.handleBackdropClick }, h("div", { key: 'a06d017153e67ad38bc1ced56ba22aeade977aaf', class: {
240
240
  'pds-modal': true,
241
241
  [`pds-modal--${this.size}`]: true,
242
242
  'pds-modal--scrollable': this.scrollable
243
- }, part: "modal" }, h("slot", { key: '227deb370e056365f188724bdb2fbabe6062ab77' }))));
243
+ }, part: "modal" }, h("slot", { key: 'd995c586809a4940c091912244a86cb4605a961c' }))));
244
244
  }
245
245
  static get is() { return "pds-modal"; }
246
246
  static get originalStyleUrls() {
@@ -77,7 +77,7 @@ export class MockPdsModal {
77
77
  'pds-modal__backdrop': true,
78
78
  'open': this.open,
79
79
  };
80
- return (h("div", { key: '932c22f17088b6cd5efa34563533b10192ba01c5', class: backdropClasses }, h("div", { key: '09c13a485986d40fa0240530feffde18b5192ff3', class: modalClasses, role: "dialog", "aria-modal": "true", "aria-labelledby": this.componentId ? `${this.componentId}-heading` : null, part: "modal" }, h("div", { key: '69c2feba501225873ffcf7aab3a1b40a981cec89', class: "pds-modal__header" }, h("slot", { key: 'c38802b6007b85b45532743ee4a94bcc9d5da08f', name: "header" })), h("div", { key: '6998e3da4906070de62a1016c2e23836c84ad96a', class: "pds-modal-content" }, h("slot", { key: '98ed7a23ca4c84de297aa71a7b15c6fa9a2666bf' })), h("div", { key: '7d0ed4f725857a77d916004967d88d5e9c66a5de', class: "pds-modal__footer" }, h("slot", { key: '437b8ab71722e6bad1caee076020c5bb216a2aad', name: "footer" })))));
80
+ return (h("div", { key: '6e7f71b339764894e1f17d253fc3c8e0243e4f90', class: backdropClasses }, h("div", { key: '25b2f82c1af743156d152880631d4294dfec68b5', class: modalClasses, role: "dialog", "aria-modal": "true", "aria-labelledby": this.componentId ? `${this.componentId}-heading` : null, part: "modal" }, h("div", { key: '6bc97e805daee5e5dd547fa0b919a05cf1b6a6a1', class: "pds-modal__header" }, h("slot", { key: 'd9e7c248d983e3c055ed7e0aea5a4d5a15dfea12', name: "header" })), h("div", { key: '5608ee069b59cb34dc812bde22f83c6bce7e6904', class: "pds-modal-content" }, h("slot", { key: '6e3e790330598e1bde733350e5e216d269426e51' })), h("div", { key: '381f3c4e1c9c83b0687e1f1484b64334e388d669', class: "pds-modal__footer" }, h("slot", { key: '6e3a3cb64623de59a409072ab9c1bf65af8c2f6c', name: "footer" })))));
81
81
  }
82
82
  static get is() { return "mock-pds-modal"; }
83
83
  static get originalStyleUrls() {
@@ -1 +1 @@
1
- {"version":3,"file":"multiselect-interface.js","sourceRoot":"","sources":["../../../../src/components/pds-multiselect/multiselect-interface.ts"],"names":[],"mappings":"","sourcesContent":["export interface MultiselectOption {\n id: string | number;\n text: string;\n isCreateOption?: boolean;\n [key: string]: unknown;\n}\n\nexport interface MultiselectChangeEventDetail {\n values: string[];\n items: MultiselectOption[];\n}\n\nexport interface MultiselectSearchEventDetail {\n query: string;\n}\n\nexport interface MultiselectLoadOptionsEventDetail {\n query: string;\n page: number;\n}\n\nexport interface MultiselectCreateEventDetail {\n query: string;\n newOption: MultiselectOption;\n}\n\nexport interface AsyncResponse {\n results: Array<{ id: string | number; text: string; [key: string]: unknown }>;\n totalCount?: number;\n}\n\nexport interface CreateResponse {\n id: string | number;\n text: string;\n [key: string]: unknown;\n}\n"]}
1
+ {"version":3,"file":"multiselect-interface.js","sourceRoot":"","sources":["../../../../src/components/pds-multiselect/multiselect-interface.ts"],"names":[],"mappings":"","sourcesContent":["export interface MultiselectOption {\n id: string | number;\n text: string;\n /** When `true`, the option is rendered as non-interactive and cannot be selected. */\n disabled?: boolean;\n /**\n * Optional section label for grouped rendering (with `options` prop or parsed slots).\n * Options that share a `group` value must be contiguous in the array; non-contiguous\n * rows with the same label produce separate headers (mirrors native `<optgroup>`).\n */\n group?: string;\n isCreateOption?: boolean;\n [key: string]: unknown;\n}\n\nexport interface MultiselectChangeEventDetail {\n values: string[];\n items: MultiselectOption[];\n}\n\nexport interface MultiselectSearchEventDetail {\n query: string;\n}\n\nexport interface MultiselectLoadOptionsEventDetail {\n query: string;\n page: number;\n}\n\nexport interface MultiselectCreateEventDetail {\n query: string;\n newOption: MultiselectOption;\n}\n\nexport interface AsyncResponse {\n results: Array<{ id: string | number; text: string; [key: string]: unknown }>;\n totalCount?: number;\n}\n\nexport interface CreateResponse {\n id: string | number;\n text: string;\n [key: string]: unknown;\n}\n"]}
@@ -90,6 +90,65 @@
90
90
  flex-shrink: var(--pine-dimension-none);
91
91
  }
92
92
 
93
+ .pds-multiselect__pill-list {
94
+ align-items: center;
95
+ display: flex;
96
+ flex-wrap: wrap;
97
+ gap: var(--pine-dimension-2xs);
98
+ }
99
+
100
+ .pds-multiselect__pill-list--inline {
101
+ flex: 1;
102
+ min-width: 0;
103
+ }
104
+
105
+ .pds-multiselect__pill-list--below {
106
+ margin-block-start: var(--pine-dimension-2xs);
107
+ }
108
+
109
+ .pds-multiselect__pill-overflow {
110
+ color: var(--pine-color-text-muted);
111
+ font: var(--pine-typography-body-sm-medium);
112
+ white-space: nowrap;
113
+ }
114
+
115
+ .pds-multiselect__trigger--pill-inline {
116
+ align-items: center;
117
+ box-sizing: border-box;
118
+ flex-wrap: wrap;
119
+ gap: var(--pine-dimension-2xs);
120
+ min-height: var(--pine-dimension-450);
121
+ padding: var(--pine-dimension-2xs) var(--pine-dimension-sm);
122
+ }
123
+ .pds-multiselect__trigger--pill-inline.pds-multiselect__trigger--open {
124
+ border-color: var(--pine-color-border-active);
125
+ }
126
+ .pds-multiselect__trigger--pill-inline:focus-within:not(.pds-multiselect__trigger--disabled) {
127
+ border-color: var(--pine-color-border-active);
128
+ outline: var(--pine-outline-focus);
129
+ outline-offset: var(--pine-border-width);
130
+ }
131
+ .pds-multiselect__trigger--pill-inline.pds-multiselect__trigger--invalid:focus-within {
132
+ outline-color: var(--pine-color-focus-ring-danger);
133
+ }
134
+
135
+ .pds-multiselect__pill-toggle {
136
+ align-items: center;
137
+ appearance: none;
138
+ background: none;
139
+ border-width: 0;
140
+ cursor: pointer;
141
+ display: flex;
142
+ padding: 0;
143
+ }
144
+ .pds-multiselect__pill-toggle:focus {
145
+ outline: 3px solid transparent;
146
+ }
147
+ .pds-multiselect__trigger--disabled .pds-multiselect__pill-toggle {
148
+ cursor: not-allowed;
149
+ pointer-events: none;
150
+ }
151
+
93
152
  .pds-multiselect__panel {
94
153
  background: var(--pine-color-background-container);
95
154
  border-radius: var(--pine-dimension-125);
@@ -160,6 +219,25 @@
160
219
  padding: var(--pine-dimension-xs);
161
220
  }
162
221
 
222
+ .pds-multiselect__group-header {
223
+ color: var(--pine-color-text-muted);
224
+ display: block;
225
+ font: var(--pine-typography-body-sm-medium);
226
+ letter-spacing: var(--pine-letter-spacing);
227
+ padding: var(--pine-dimension-sm) var(--pine-dimension-xs) var(--pine-dimension-2xs);
228
+ text-transform: uppercase;
229
+ }
230
+
231
+ .pds-multiselect__listbox > li:first-child > .pds-multiselect__group-header {
232
+ padding-block-start: var(--pine-dimension-xs);
233
+ }
234
+
235
+ .pds-multiselect__group-list {
236
+ list-style: none;
237
+ margin: var(--pine-dimension-none);
238
+ padding: var(--pine-dimension-none);
239
+ }
240
+
163
241
  .pds-multiselect__option {
164
242
  align-items: center;
165
243
  background: transparent;
@@ -173,9 +251,13 @@
173
251
  pointer-events: none;
174
252
  width: 100%;
175
253
  }
176
- .pds-multiselect__option:hover, .pds-multiselect__option.pds-multiselect__option--highlighted {
254
+ .pds-multiselect__option:hover:not(.pds-multiselect__option--disabled), .pds-multiselect__option.pds-multiselect__option--highlighted:not(.pds-multiselect__option--disabled) {
177
255
  background: var(--pine-color-background-muted);
178
256
  }
257
+ .pds-multiselect__option.pds-multiselect__option--disabled {
258
+ cursor: not-allowed;
259
+ opacity: 0.5;
260
+ }
179
261
  .pds-multiselect__option:focus-visible {
180
262
  outline: var(--pine-dimension-none);
181
263
  }
@@ -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: '086b6d2d199b35110e64ba1da3c12f1a81360581', "aria-disabled": this.disabled ? 'true' : null }, h("div", { key: 'c2faf217a97de056a9111a78e7077025e4ab5ee1', class: "pds-multiselect", onFocusout: this.handleContainerFocusOut }, this.label && (h("label", { key: '0aff86a3a0054aef256bac5c0204dd914a9bd3ae', 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: '3b92119871dc32bb3c9a559be816bdece2fc30a6', 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: '07d6a6bf9ccc2fe8bfcf9502a1cd4b7abf5c5e6f', class: "visually-hidden", "aria-live": "polite", "aria-atomic": "true" }, this.removalAnnouncement), this.helperMessage && !(this.errorMessage && this.errorMessage.length > 0) && (h("p", { key: 'a94bb6f31805d31ec3cd5b5f2ca8b1984f4d41d1', class: "pds-multiselect__helper", id: messageId(this.componentId, 'helper') }, this.helperMessage)), this.errorMessage && (h("p", { key: '15afc6b9313e1fe22bd56b00eee1ebcf9e085c2e', class: "pds-multiselect__error", id: messageId(this.componentId, 'error') }, h("pds-icon", { key: '452814577b14ca8f891b101903bd1a7a7e5d8bb1', icon: danger, size: "small" }), this.errorMessage)), h("div", { key: 'd8ce787886e666303759cd2654c78b44269a40ff', style: { display: 'none' } }, h("slot", { key: '8295376fb03b23d44c5baeca9bc967514e433e0f' })))));
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() {