@pine-ds/core 3.3.0 → 3.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (683) hide show
  1. package/components/floating-ui.dom.js +1321 -0
  2. package/components/floating-ui.dom.js.map +1 -0
  3. package/components/index.d.ts +4 -0
  4. package/components/index.js +2 -0
  5. package/components/index.js.map +1 -1
  6. package/components/index2.js +1 -1
  7. package/components/index2.js.map +1 -1
  8. package/components/mock-pds-modal.js +2 -2
  9. package/components/mock-pds-modal.js.map +1 -1
  10. package/components/pds-box2.js +1 -1
  11. package/components/pds-box2.js.map +1 -1
  12. package/components/pds-button2.js +1 -1
  13. package/components/pds-button2.js.map +1 -1
  14. package/components/pds-checkbox2.js +1 -1
  15. package/components/pds-checkbox2.js.map +1 -1
  16. package/components/pds-chip.js.map +1 -1
  17. package/components/pds-combobox.d.ts +11 -0
  18. package/components/pds-combobox.js +1771 -0
  19. package/components/pds-combobox.js.map +1 -0
  20. package/components/pds-copytext.js +1 -1
  21. package/components/pds-divider.js +1 -1
  22. package/components/pds-dropdown-menu-item.js +1 -1
  23. package/components/pds-dropdown-menu-separator.js +1 -1
  24. package/components/pds-dropdown-menu.js +4 -1320
  25. package/components/pds-dropdown-menu.js.map +1 -1
  26. package/components/pds-icon2.js +151 -18
  27. package/components/pds-icon2.js.map +1 -1
  28. package/components/pds-image.js +2 -2
  29. package/components/pds-input.js +69 -3
  30. package/components/pds-input.js.map +1 -1
  31. package/components/pds-link2.js +2 -2
  32. package/components/pds-loader2.js +1 -1
  33. package/components/pds-modal-content.js +2 -2
  34. package/components/pds-modal-footer.js +1 -1
  35. package/components/pds-modal-header.js +1 -1
  36. package/components/pds-modal.js +3 -3
  37. package/components/pds-modal.js.map +1 -1
  38. package/components/pds-popover.js +1 -1
  39. package/components/pds-progress.js +1 -1
  40. package/components/pds-property.d.ts +11 -0
  41. package/components/pds-property.js +55 -0
  42. package/components/pds-property.js.map +1 -0
  43. package/components/pds-radio.js +4 -4
  44. package/components/pds-radio.js.map +1 -1
  45. package/components/pds-row.js +1 -1
  46. package/components/pds-select.js +86 -3
  47. package/components/pds-select.js.map +1 -1
  48. package/components/pds-sortable-item.js +1 -1
  49. package/components/pds-sortable.js +1 -1
  50. package/components/pds-switch.js +3 -3
  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-table.js +1 -1
  58. package/components/pds-tabpanel.js +1 -1
  59. package/components/pds-tabs.js +1 -1
  60. package/components/pds-text2.js +1 -1
  61. package/components/pds-text2.js.map +1 -1
  62. package/components/pds-textarea.js +69 -6
  63. package/components/pds-textarea.js.map +1 -1
  64. package/components/pds-toast.js +3 -3
  65. package/components/pds-tooltip.js +1 -1
  66. package/dist/cjs/floating-ui.dom-Bz4BD-cr.js +1326 -0
  67. package/dist/cjs/floating-ui.dom-Bz4BD-cr.js.map +1 -0
  68. package/dist/cjs/{index-B0qLG6KJ.js → index-BfqrB2cC.js} +3 -3
  69. package/dist/{esm/index-DpOSrebJ.js.map → cjs/index-BfqrB2cC.js.map} +1 -1
  70. package/dist/cjs/{index-CxX7ua5d.js → index-g-uSeICs.js} +30 -2
  71. package/dist/cjs/index-g-uSeICs.js.map +1 -0
  72. package/dist/cjs/index.cjs.js +1 -1
  73. package/dist/cjs/loader.cjs.js +2 -2
  74. package/dist/cjs/mock-pds-modal.cjs.entry.js +3 -3
  75. package/dist/cjs/mock-pds-modal.cjs.entry.js.map +1 -1
  76. package/dist/cjs/mock-pds-modal.entry.cjs.js.map +1 -1
  77. package/dist/cjs/pds-accordion.cjs.entry.js +2 -2
  78. package/dist/cjs/pds-alert.cjs.entry.js +1 -1
  79. package/dist/cjs/pds-avatar.cjs.entry.js +2 -2
  80. package/dist/cjs/pds-box.cjs.entry.js +2 -2
  81. package/dist/cjs/pds-box.cjs.entry.js.map +1 -1
  82. package/dist/cjs/pds-box.entry.cjs.js.map +1 -1
  83. package/dist/cjs/pds-button.cjs.entry.js +3 -3
  84. package/dist/cjs/pds-button.cjs.entry.js.map +1 -1
  85. package/dist/cjs/pds-button.entry.cjs.js.map +1 -1
  86. package/dist/cjs/pds-checkbox.cjs.entry.js +3 -3
  87. package/dist/cjs/pds-checkbox.cjs.entry.js.map +1 -1
  88. package/dist/cjs/pds-checkbox.entry.cjs.js.map +1 -1
  89. package/dist/cjs/pds-chip.cjs.entry.js +2 -2
  90. package/dist/cjs/pds-chip.cjs.entry.js.map +1 -1
  91. package/dist/cjs/pds-chip.entry.cjs.js.map +1 -1
  92. package/dist/cjs/pds-combobox.cjs.entry.js +1717 -0
  93. package/dist/cjs/pds-combobox.cjs.entry.js.map +1 -0
  94. package/dist/cjs/pds-combobox.entry.cjs.js.map +1 -0
  95. package/dist/cjs/pds-copytext.cjs.entry.js +3 -3
  96. package/dist/cjs/pds-divider.cjs.entry.js +2 -2
  97. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +2 -2
  98. package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +2 -2
  99. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +5 -1321
  100. package/dist/cjs/pds-dropdown-menu.cjs.entry.js.map +1 -1
  101. package/dist/cjs/pds-dropdown-menu.entry.cjs.js.map +1 -1
  102. package/dist/cjs/pds-icon.cjs.entry.js +149 -16
  103. package/dist/cjs/pds-icon.cjs.entry.js.map +1 -1
  104. package/dist/cjs/pds-icon.entry.cjs.js.map +1 -1
  105. package/dist/cjs/pds-image.cjs.entry.js +3 -3
  106. package/dist/cjs/pds-input.cjs.entry.js +68 -4
  107. package/dist/cjs/pds-input.cjs.entry.js.map +1 -1
  108. package/dist/cjs/pds-input.entry.cjs.js.map +1 -1
  109. package/dist/cjs/pds-link.cjs.entry.js +4 -4
  110. package/dist/cjs/pds-loader.cjs.entry.js +2 -2
  111. package/dist/cjs/pds-modal-content.cjs.entry.js +3 -3
  112. package/dist/cjs/pds-modal-footer.cjs.entry.js +2 -2
  113. package/dist/cjs/pds-modal-header.cjs.entry.js +2 -2
  114. package/dist/cjs/pds-modal.cjs.entry.js +4 -4
  115. package/dist/cjs/pds-modal.cjs.entry.js.map +1 -1
  116. package/dist/cjs/pds-modal.entry.cjs.js.map +1 -1
  117. package/dist/cjs/pds-popover.cjs.entry.js +2 -2
  118. package/dist/cjs/pds-progress.cjs.entry.js +2 -2
  119. package/dist/cjs/pds-property.cjs.entry.js +24 -0
  120. package/dist/cjs/pds-property.cjs.entry.js.map +1 -0
  121. package/dist/cjs/pds-property.entry.cjs.js.map +1 -0
  122. package/dist/cjs/pds-radio.cjs.entry.js +6 -6
  123. package/dist/cjs/pds-radio.cjs.entry.js.map +1 -1
  124. package/dist/cjs/pds-radio.entry.cjs.js.map +1 -1
  125. package/dist/cjs/pds-row.cjs.entry.js +2 -2
  126. package/dist/cjs/pds-select.cjs.entry.js +87 -4
  127. package/dist/cjs/pds-select.cjs.entry.js.map +1 -1
  128. package/dist/cjs/pds-select.entry.cjs.js.map +1 -1
  129. package/dist/cjs/pds-sortable-item.cjs.entry.js +3 -3
  130. package/dist/cjs/pds-sortable.cjs.entry.js +2 -2
  131. package/dist/cjs/pds-switch.cjs.entry.js +5 -5
  132. package/dist/cjs/pds-tab.cjs.entry.js +4 -4
  133. package/dist/cjs/pds-table-body.cjs.entry.js +2 -2
  134. package/dist/cjs/pds-table-cell.cjs.entry.js +3 -3
  135. package/dist/cjs/pds-table-head-cell.cjs.entry.js +4 -4
  136. package/dist/cjs/pds-table-head.cjs.entry.js +2 -2
  137. package/dist/cjs/pds-table-row.cjs.entry.js +2 -2
  138. package/dist/cjs/pds-table.cjs.entry.js +2 -2
  139. package/dist/cjs/pds-tabpanel.cjs.entry.js +2 -2
  140. package/dist/cjs/pds-tabs.cjs.entry.js +2 -2
  141. package/dist/cjs/pds-text.cjs.entry.js +2 -2
  142. package/dist/cjs/pds-text.cjs.entry.js.map +1 -1
  143. package/dist/cjs/pds-text.entry.cjs.js.map +1 -1
  144. package/dist/cjs/pds-textarea.cjs.entry.js +69 -7
  145. package/dist/cjs/pds-textarea.cjs.entry.js.map +1 -1
  146. package/dist/cjs/pds-textarea.entry.cjs.js.map +1 -1
  147. package/dist/cjs/pds-toast.cjs.entry.js +4 -4
  148. package/dist/cjs/pds-tooltip.cjs.entry.js +2 -2
  149. package/dist/cjs/pine-core.cjs.js +2 -2
  150. package/dist/collection/collection-manifest.json +2 -0
  151. package/dist/collection/components/pds-box/pds-box.css +1 -1
  152. package/dist/collection/components/pds-button/pds-button.css +3 -2
  153. package/dist/collection/components/pds-checkbox/pds-checkbox.css +1 -0
  154. package/dist/collection/components/pds-combobox/pds-combobox.css +223 -0
  155. package/dist/collection/components/pds-combobox/pds-combobox.js +783 -0
  156. package/dist/collection/components/pds-combobox/pds-combobox.js.map +1 -0
  157. package/dist/collection/components/pds-combobox/stories/pds-combobox.stories.js +194 -0
  158. package/dist/collection/components/pds-copytext/pds-copytext.js +1 -1
  159. package/dist/collection/components/pds-divider/pds-divider.js +1 -1
  160. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js +1 -1
  161. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js +1 -1
  162. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +1 -1
  163. package/dist/collection/components/pds-image/pds-image.js +2 -2
  164. package/dist/collection/components/pds-input/pds-input.css +28 -7
  165. package/dist/collection/components/pds-input/pds-input.js +86 -1
  166. package/dist/collection/components/pds-input/pds-input.js.map +1 -1
  167. package/dist/collection/components/pds-input/stories/pds-input.stories.js +180 -71
  168. package/dist/collection/components/pds-link/pds-link.js +2 -2
  169. package/dist/collection/components/pds-loader/pds-loader.js +1 -1
  170. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js +2 -2
  171. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js +1 -1
  172. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js +1 -1
  173. package/dist/collection/components/pds-modal/pds-modal.css +1 -1
  174. package/dist/collection/components/pds-modal/pds-modal.js +2 -2
  175. package/dist/collection/components/pds-modal/test/mock-pds-modal.js +1 -1
  176. package/dist/collection/components/pds-popover/pds-popover.js +1 -1
  177. package/dist/collection/components/pds-progress/pds-progress.js +1 -1
  178. package/dist/collection/components/pds-property/pds-property.css +4 -0
  179. package/dist/collection/components/pds-property/pds-property.js +71 -0
  180. package/dist/collection/components/pds-property/pds-property.js.map +1 -0
  181. package/dist/collection/components/pds-property/stories/pds-property.stories.js +20 -0
  182. package/dist/collection/components/pds-radio/pds-radio.css +1 -0
  183. package/dist/collection/components/pds-radio/pds-radio.js +3 -3
  184. package/dist/collection/components/pds-row/pds-row.js +1 -1
  185. package/dist/collection/components/pds-select/pds-select.css +21 -2
  186. package/dist/collection/components/pds-select/pds-select.js +87 -1
  187. package/dist/collection/components/pds-select/pds-select.js.map +1 -1
  188. package/dist/collection/components/pds-select/stories/pds-select.stories.js +42 -0
  189. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +1 -1
  190. package/dist/collection/components/pds-sortable/pds-sortable.js +1 -1
  191. package/dist/collection/components/pds-switch/pds-switch.js +3 -3
  192. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js +1 -1
  193. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +2 -2
  194. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +1 -1
  195. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +2 -2
  196. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +1 -1
  197. package/dist/collection/components/pds-table/pds-table.js +1 -1
  198. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js +3 -3
  199. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +1 -1
  200. package/dist/collection/components/pds-tabs/pds-tabs.js +1 -1
  201. package/dist/collection/components/pds-text/pds-text.js +4 -1
  202. package/dist/collection/components/pds-text/pds-text.js.map +1 -1
  203. package/dist/collection/components/pds-textarea/pds-textarea.css +18 -0
  204. package/dist/collection/components/pds-textarea/pds-textarea.js +71 -5
  205. package/dist/collection/components/pds-textarea/pds-textarea.js.map +1 -1
  206. package/dist/collection/components/pds-textarea/stories/pds-textarea.stories.js +48 -1
  207. package/dist/collection/components/pds-toast/pds-toast.js +3 -3
  208. package/dist/collection/components/pds-tooltip/pds-tooltip.js +1 -1
  209. package/dist/docs.json +751 -37
  210. package/dist/esm/floating-ui.dom-D_FwyeSw.js +1321 -0
  211. package/dist/esm/floating-ui.dom-D_FwyeSw.js.map +1 -0
  212. package/dist/esm/{index-Uh5ntVcq.js → index-BVCWKPy3.js} +30 -2
  213. package/dist/esm/index-BVCWKPy3.js.map +1 -0
  214. package/dist/esm/{index-DpOSrebJ.js → index-CzVv99mW.js} +3 -3
  215. package/dist/{cjs/index-B0qLG6KJ.js.map → esm/index-CzVv99mW.js.map} +1 -1
  216. package/dist/esm/index.js +1 -1
  217. package/dist/esm/loader.js +3 -3
  218. package/dist/esm/mock-pds-modal.entry.js +3 -3
  219. package/dist/esm/mock-pds-modal.entry.js.map +1 -1
  220. package/dist/esm/pds-accordion.entry.js +2 -2
  221. package/dist/esm/pds-alert.entry.js +1 -1
  222. package/dist/esm/pds-avatar.entry.js +2 -2
  223. package/dist/esm/pds-box.entry.js +2 -2
  224. package/dist/esm/pds-box.entry.js.map +1 -1
  225. package/dist/esm/pds-button.entry.js +3 -3
  226. package/dist/esm/pds-button.entry.js.map +1 -1
  227. package/dist/esm/pds-checkbox.entry.js +3 -3
  228. package/dist/esm/pds-checkbox.entry.js.map +1 -1
  229. package/dist/esm/pds-chip.entry.js +2 -2
  230. package/dist/esm/pds-chip.entry.js.map +1 -1
  231. package/dist/esm/pds-combobox.entry.js +1715 -0
  232. package/dist/esm/pds-combobox.entry.js.map +1 -0
  233. package/dist/esm/pds-copytext.entry.js +3 -3
  234. package/dist/esm/pds-divider.entry.js +2 -2
  235. package/dist/esm/pds-dropdown-menu-item.entry.js +2 -2
  236. package/dist/esm/pds-dropdown-menu-separator.entry.js +2 -2
  237. package/dist/esm/pds-dropdown-menu.entry.js +3 -1319
  238. package/dist/esm/pds-dropdown-menu.entry.js.map +1 -1
  239. package/dist/esm/pds-icon.entry.js +149 -16
  240. package/dist/esm/pds-icon.entry.js.map +1 -1
  241. package/dist/esm/pds-image.entry.js +3 -3
  242. package/dist/esm/pds-input.entry.js +68 -4
  243. package/dist/esm/pds-input.entry.js.map +1 -1
  244. package/dist/esm/pds-link.entry.js +4 -4
  245. package/dist/esm/pds-loader.entry.js +2 -2
  246. package/dist/esm/pds-modal-content.entry.js +3 -3
  247. package/dist/esm/pds-modal-footer.entry.js +2 -2
  248. package/dist/esm/pds-modal-header.entry.js +2 -2
  249. package/dist/esm/pds-modal.entry.js +4 -4
  250. package/dist/esm/pds-modal.entry.js.map +1 -1
  251. package/dist/esm/pds-popover.entry.js +2 -2
  252. package/dist/esm/pds-progress.entry.js +2 -2
  253. package/dist/esm/pds-property.entry.js +22 -0
  254. package/dist/esm/pds-property.entry.js.map +1 -0
  255. package/dist/esm/pds-radio.entry.js +6 -6
  256. package/dist/esm/pds-radio.entry.js.map +1 -1
  257. package/dist/esm/pds-row.entry.js +2 -2
  258. package/dist/esm/pds-select.entry.js +87 -4
  259. package/dist/esm/pds-select.entry.js.map +1 -1
  260. package/dist/esm/pds-sortable-item.entry.js +3 -3
  261. package/dist/esm/pds-sortable.entry.js +2 -2
  262. package/dist/esm/pds-switch.entry.js +5 -5
  263. package/dist/esm/pds-tab.entry.js +4 -4
  264. package/dist/esm/pds-table-body.entry.js +2 -2
  265. package/dist/esm/pds-table-cell.entry.js +3 -3
  266. package/dist/esm/pds-table-head-cell.entry.js +4 -4
  267. package/dist/esm/pds-table-head.entry.js +2 -2
  268. package/dist/esm/pds-table-row.entry.js +2 -2
  269. package/dist/esm/pds-table.entry.js +2 -2
  270. package/dist/esm/pds-tabpanel.entry.js +2 -2
  271. package/dist/esm/pds-tabs.entry.js +2 -2
  272. package/dist/esm/pds-text.entry.js +2 -2
  273. package/dist/esm/pds-text.entry.js.map +1 -1
  274. package/dist/esm/pds-textarea.entry.js +69 -7
  275. package/dist/esm/pds-textarea.entry.js.map +1 -1
  276. package/dist/esm/pds-toast.entry.js +4 -4
  277. package/dist/esm/pds-tooltip.entry.js +2 -2
  278. package/dist/esm/pine-core.js +3 -3
  279. package/dist/esm-es5/floating-ui.dom-D_FwyeSw.js +2 -0
  280. package/dist/esm-es5/floating-ui.dom-D_FwyeSw.js.map +1 -0
  281. package/dist/esm-es5/index-BVCWKPy3.js +3 -0
  282. package/dist/esm-es5/index-BVCWKPy3.js.map +1 -0
  283. package/dist/esm-es5/{index-DpOSrebJ.js → index-CzVv99mW.js} +1 -1
  284. package/dist/esm-es5/{index-DpOSrebJ.js.map → index-CzVv99mW.js.map} +1 -1
  285. package/dist/esm-es5/index.js +1 -1
  286. package/dist/esm-es5/loader.js +1 -1
  287. package/dist/esm-es5/mock-pds-modal.entry.js +1 -1
  288. package/dist/esm-es5/mock-pds-modal.entry.js.map +1 -1
  289. package/dist/esm-es5/pds-accordion.entry.js +1 -1
  290. package/dist/esm-es5/pds-alert.entry.js +1 -1
  291. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  292. package/dist/esm-es5/pds-box.entry.js +1 -1
  293. package/dist/esm-es5/pds-box.entry.js.map +1 -1
  294. package/dist/esm-es5/pds-button.entry.js +1 -1
  295. package/dist/esm-es5/pds-button.entry.js.map +1 -1
  296. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  297. package/dist/esm-es5/pds-checkbox.entry.js.map +1 -1
  298. package/dist/esm-es5/pds-chip.entry.js +1 -1
  299. package/dist/esm-es5/pds-chip.entry.js.map +1 -1
  300. package/dist/esm-es5/pds-combobox.entry.js +3 -0
  301. package/dist/esm-es5/pds-combobox.entry.js.map +1 -0
  302. package/dist/esm-es5/pds-copytext.entry.js +1 -1
  303. package/dist/esm-es5/pds-divider.entry.js +1 -1
  304. package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -1
  305. package/dist/esm-es5/pds-dropdown-menu-separator.entry.js +1 -1
  306. package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
  307. package/dist/esm-es5/pds-dropdown-menu.entry.js.map +1 -1
  308. package/dist/esm-es5/pds-icon.entry.js +1 -1
  309. package/dist/esm-es5/pds-icon.entry.js.map +1 -1
  310. package/dist/esm-es5/pds-image.entry.js +1 -1
  311. package/dist/esm-es5/pds-input.entry.js +1 -1
  312. package/dist/esm-es5/pds-input.entry.js.map +1 -1
  313. package/dist/esm-es5/pds-link.entry.js +1 -1
  314. package/dist/esm-es5/pds-loader.entry.js +1 -1
  315. package/dist/esm-es5/pds-modal-content.entry.js +1 -1
  316. package/dist/esm-es5/pds-modal-footer.entry.js +1 -1
  317. package/dist/esm-es5/pds-modal-header.entry.js +1 -1
  318. package/dist/esm-es5/pds-modal.entry.js +1 -1
  319. package/dist/esm-es5/pds-modal.entry.js.map +1 -1
  320. package/dist/esm-es5/pds-popover.entry.js +1 -1
  321. package/dist/esm-es5/pds-progress.entry.js +1 -1
  322. package/dist/esm-es5/pds-property.entry.js +2 -0
  323. package/dist/esm-es5/pds-property.entry.js.map +1 -0
  324. package/dist/esm-es5/pds-radio.entry.js +1 -1
  325. package/dist/esm-es5/pds-radio.entry.js.map +1 -1
  326. package/dist/esm-es5/pds-row.entry.js +1 -1
  327. package/dist/esm-es5/pds-select.entry.js +1 -1
  328. package/dist/esm-es5/pds-select.entry.js.map +1 -1
  329. package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
  330. package/dist/esm-es5/pds-sortable.entry.js +2 -2
  331. package/dist/esm-es5/pds-switch.entry.js +1 -1
  332. package/dist/esm-es5/pds-tab.entry.js +1 -1
  333. package/dist/esm-es5/pds-table-body.entry.js +1 -1
  334. package/dist/esm-es5/pds-table-cell.entry.js +1 -1
  335. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  336. package/dist/esm-es5/pds-table-head.entry.js +1 -1
  337. package/dist/esm-es5/pds-table-row.entry.js +1 -1
  338. package/dist/esm-es5/pds-table.entry.js +1 -1
  339. package/dist/esm-es5/pds-tabpanel.entry.js +1 -1
  340. package/dist/esm-es5/pds-tabs.entry.js +1 -1
  341. package/dist/esm-es5/pds-text.entry.js +1 -1
  342. package/dist/esm-es5/pds-text.entry.js.map +1 -1
  343. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  344. package/dist/esm-es5/pds-textarea.entry.js.map +1 -1
  345. package/dist/esm-es5/pds-toast.entry.js +1 -1
  346. package/dist/esm-es5/pds-tooltip.entry.js +1 -1
  347. package/dist/esm-es5/pine-core.js +1 -1
  348. package/dist/pine-core/index.esm.js +1 -1
  349. package/dist/pine-core/mock-pds-modal.entry.esm.js.map +1 -1
  350. package/dist/pine-core/{p-99b5e1a5.entry.js → p-0066d249.entry.js} +2 -2
  351. package/dist/pine-core/{p-6a7936e7.system.entry.js → p-0199e3e9.system.entry.js} +2 -2
  352. package/dist/pine-core/{p-ab7e4700.system.entry.js → p-03d17841.system.entry.js} +2 -2
  353. package/dist/pine-core/p-03d17841.system.entry.js.map +1 -0
  354. package/dist/pine-core/{p-ef9ed75a.system.entry.js → p-051ff780.system.entry.js} +2 -2
  355. package/dist/pine-core/{p-04195bdb.entry.js → p-064e3d73.entry.js} +2 -2
  356. package/dist/pine-core/p-075eecf9.entry.js +2 -0
  357. package/dist/pine-core/p-075eecf9.entry.js.map +1 -0
  358. package/dist/pine-core/p-088828ce.entry.js +2 -0
  359. package/dist/pine-core/p-088828ce.entry.js.map +1 -0
  360. package/dist/pine-core/p-0a4fc9c7.entry.js +3 -0
  361. package/dist/pine-core/p-0a4fc9c7.entry.js.map +1 -0
  362. package/dist/pine-core/{p-d0adaca0.system.entry.js → p-0d8a2a39.system.entry.js} +2 -2
  363. package/dist/pine-core/{p-b2820acd.entry.js → p-0dbb2ae9.entry.js} +2 -2
  364. package/dist/pine-core/{p-1d395d27.entry.js → p-11d4036e.entry.js} +2 -2
  365. package/dist/pine-core/{p-0a11384e.entry.js → p-126197e5.entry.js} +2 -2
  366. package/dist/pine-core/{p-60fbeb1c.entry.js → p-13ac0852.entry.js} +2 -2
  367. package/dist/pine-core/{p-065208a1.system.entry.js → p-14b424ab.system.entry.js} +2 -2
  368. package/dist/pine-core/p-14b424ab.system.entry.js.map +1 -0
  369. package/dist/pine-core/{p-76e35041.entry.js → p-17c2f3fb.entry.js} +2 -2
  370. package/dist/pine-core/{p-833b2170.system.entry.js → p-1858ad6d.system.entry.js} +2 -2
  371. package/dist/pine-core/{p-8180b641.entry.js → p-1a5e79af.entry.js} +2 -2
  372. package/dist/pine-core/p-209b1d69.entry.js +2 -0
  373. package/dist/pine-core/p-209b1d69.entry.js.map +1 -0
  374. package/dist/pine-core/{p-aeaae417.system.entry.js → p-276a6a8b.system.entry.js} +2 -2
  375. package/dist/pine-core/p-2aad0209.system.entry.js +2 -0
  376. package/dist/pine-core/p-2aad0209.system.entry.js.map +1 -0
  377. package/dist/pine-core/{p-07f45626.entry.js → p-2b48499b.entry.js} +2 -2
  378. package/dist/pine-core/p-2fb60757.system.entry.js +2 -0
  379. package/dist/pine-core/{p-BcuE4ZrB.system.js.map → p-2kXtbFXu.system.js.map} +1 -1
  380. package/dist/pine-core/p-33016dd0.entry.js +2 -0
  381. package/dist/pine-core/p-33016dd0.entry.js.map +1 -0
  382. package/dist/pine-core/{p-942fa145.system.entry.js → p-39488f2c.system.entry.js} +2 -2
  383. package/dist/pine-core/{p-78f29270.entry.js → p-3e6229cc.entry.js} +3 -3
  384. package/dist/pine-core/{p-7bb3a5d4.system.entry.js → p-3f83d4c4.system.entry.js} +2 -2
  385. package/dist/pine-core/{p-79cb7835.system.entry.js → p-4066a9c0.system.entry.js} +2 -2
  386. package/dist/pine-core/{p-79cb7835.system.entry.js.map → p-4066a9c0.system.entry.js.map} +1 -1
  387. package/dist/pine-core/{p-27c0ffda.system.entry.js → p-41bf807f.system.entry.js} +2 -2
  388. package/dist/pine-core/{p-c1909a5d.system.entry.js → p-487552a9.system.entry.js} +2 -2
  389. package/dist/pine-core/{p-10e2feff.entry.js → p-4e5b9d19.entry.js} +2 -2
  390. package/dist/pine-core/{p-111e7da2.system.entry.js → p-51d83489.system.entry.js} +2 -2
  391. package/dist/pine-core/{p-86329612.entry.js → p-51e463bf.entry.js} +2 -2
  392. package/dist/pine-core/{p-86329612.entry.js.map → p-51e463bf.entry.js.map} +1 -1
  393. package/dist/pine-core/{p-f4fff209.system.entry.js → p-52af1890.system.entry.js} +2 -2
  394. package/dist/pine-core/p-55bf6be2.system.entry.js +2 -0
  395. package/dist/pine-core/p-568296f0.system.entry.js +2 -0
  396. package/dist/pine-core/p-568296f0.system.entry.js.map +1 -0
  397. package/dist/pine-core/{p-47a7a65b.entry.js → p-5a709348.entry.js} +2 -2
  398. package/dist/pine-core/{p-13481ef5.system.entry.js → p-5c87077e.system.entry.js} +2 -2
  399. package/dist/pine-core/p-5c87077e.system.entry.js.map +1 -0
  400. package/dist/pine-core/{p-3ea415b0.entry.js → p-63ef55dd.entry.js} +2 -2
  401. package/dist/pine-core/{p-3ea415b0.entry.js.map → p-63ef55dd.entry.js.map} +1 -1
  402. package/dist/pine-core/{p-0a87e2fc.system.entry.js → p-6438a29d.system.entry.js} +2 -2
  403. package/dist/pine-core/p-66b10d29.entry.js +2 -0
  404. package/dist/pine-core/p-69e95bc4.system.entry.js +2 -0
  405. package/dist/pine-core/p-69e95bc4.system.entry.js.map +1 -0
  406. package/dist/pine-core/{p-96e9774e.system.entry.js → p-6cc09a2f.system.entry.js} +2 -2
  407. package/dist/pine-core/p-6cc09a2f.system.entry.js.map +1 -0
  408. package/dist/pine-core/{p-d6d453d8.system.entry.js → p-6d601fc2.system.entry.js} +2 -2
  409. package/dist/pine-core/{p-ddcc4932.entry.js → p-6fd385ec.entry.js} +2 -2
  410. package/dist/pine-core/{p-5a437fcd.system.entry.js → p-7a95a90f.system.entry.js} +2 -2
  411. package/dist/pine-core/{p-d28768d1.entry.js → p-7c867f1b.entry.js} +2 -2
  412. package/dist/pine-core/p-7de61adb.entry.js +2 -0
  413. package/dist/pine-core/p-7de61adb.entry.js.map +1 -0
  414. package/dist/pine-core/{p-c5e1ed09.system.entry.js → p-7eb4ac7c.system.entry.js} +2 -2
  415. package/dist/pine-core/{p-c551191a.system.entry.js → p-81a28f54.system.entry.js} +2 -2
  416. package/dist/pine-core/{p-73412ca9.system.entry.js → p-81cf9a46.system.entry.js} +2 -2
  417. package/dist/pine-core/p-81cf9a46.system.entry.js.map +1 -0
  418. package/dist/pine-core/p-89d9f273.system.entry.js +4 -0
  419. package/dist/pine-core/p-89d9f273.system.entry.js.map +1 -0
  420. package/dist/pine-core/p-8a02c581.entry.js +2 -0
  421. package/dist/pine-core/p-8a02c581.entry.js.map +1 -0
  422. package/dist/pine-core/{p-fdf3a5ff.entry.js → p-8cb99f2f.entry.js} +2 -2
  423. package/dist/pine-core/{p-d35b3494.entry.js → p-91c6bd68.entry.js} +2 -2
  424. package/dist/pine-core/{p-fb2fb435.entry.js → p-94982c57.entry.js} +2 -2
  425. package/dist/pine-core/{p-8f06b020.entry.js → p-978e722a.entry.js} +2 -2
  426. package/dist/pine-core/{p-959c8247.system.entry.js → p-9860d0a8.system.entry.js} +2 -2
  427. package/dist/pine-core/{p-78327c08.system.entry.js → p-9afcab0c.system.entry.js} +2 -2
  428. package/dist/pine-core/{p-PkSWq78_.system.js.map → p-ACQU83St.system.js.map} +1 -1
  429. package/dist/pine-core/{p-PPIMiuZX.system.js.map → p-B4ww2WM0.system.js.map} +1 -1
  430. package/dist/pine-core/{p-C0oRS1F9.system.js.map → p-B6IFMveo.system.js.map} +1 -1
  431. package/dist/pine-core/{p-B2gfQpwn.system.js.map → p-B7S-9dbT.system.js.map} +1 -1
  432. package/dist/pine-core/{p-BPQAcMLl.system.js.map → p-BCZ4LK15.system.js.map} +1 -1
  433. package/dist/pine-core/{p-EqAbQY8l.system.js.map → p-BDQFLOLJ.system.js.map} +1 -1
  434. package/dist/pine-core/{p-CNkajx9x.system.js.map → p-BEky6idI.system.js.map} +1 -1
  435. package/dist/pine-core/p-BGbUqsWH.system.js +2 -0
  436. package/dist/pine-core/p-BGbUqsWH.system.js.map +1 -0
  437. package/dist/pine-core/p-BVCWKPy3.js +3 -0
  438. package/dist/pine-core/p-BVCWKPy3.js.map +1 -0
  439. package/dist/pine-core/p-BY7O1nGC.system.js.map +1 -0
  440. package/dist/pine-core/p-B_C-mRjx.system.js +3 -0
  441. package/dist/pine-core/p-B_C-mRjx.system.js.map +1 -0
  442. package/dist/pine-core/{p-BISuGf0f.system.js.map → p-B_c-HOvq.system.js.map} +1 -1
  443. package/dist/pine-core/{p-BHp2IZGP.system.js.map → p-Bw9e5h_G.system.js.map} +1 -1
  444. package/dist/pine-core/{p-DgTp_KeO.system.js.map → p-C36pvE-A.system.js.map} +1 -1
  445. package/dist/pine-core/p-C3lnYhcV.system.js.map +1 -0
  446. package/dist/pine-core/{p-BEYGfY83.system.js.map → p-C5Wo1bN2.system.js.map} +1 -1
  447. package/dist/pine-core/{p-CcsZC7UR.system.js.map → p-C5Y492i0.system.js.map} +1 -1
  448. package/dist/pine-core/p-CG_aggl0.system.js.map +1 -0
  449. package/dist/pine-core/{p-DGyATOIf.system.js.map → p-CMLxdmO2.system.js.map} +1 -1
  450. package/dist/pine-core/{p-UhZHDNH2.system.js.map → p-CNOeJ6ra.system.js.map} +1 -1
  451. package/dist/pine-core/p-CXLBzkzl.system.js.map +1 -0
  452. package/dist/pine-core/p-CaD_7MzD.system.js.map +1 -0
  453. package/dist/pine-core/{p-CNYB6FL-.system.js.map → p-CbDQeXQ4.system.js.map} +1 -1
  454. package/dist/pine-core/{p-BxBtA60x.system.js.map → p-CbQ4EQA9.system.js.map} +1 -1
  455. package/dist/pine-core/p-Ce_XeYF6.system.js.map +1 -0
  456. package/dist/pine-core/{p-B5JFBYFw.system.js.map → p-ChslVme6.system.js.map} +1 -1
  457. package/dist/pine-core/p-CnDggyDA.system.js.map +1 -0
  458. package/dist/pine-core/{p-C2d75seA.system.js.map → p-CoHBlcHu.system.js.map} +1 -1
  459. package/dist/pine-core/p-CqzGa2j0.system.js.map +1 -0
  460. package/dist/pine-core/{p-DpOSrebJ.js → p-CzVv99mW.js} +1 -1
  461. package/dist/pine-core/{p-DpOSrebJ.js.map → p-CzVv99mW.js.map} +1 -1
  462. package/dist/pine-core/{p-CTWkFhWu.system.js.map → p-DCdSlcTO.system.js.map} +1 -1
  463. package/dist/pine-core/p-DJu23j_m.system.js.map +1 -0
  464. package/dist/pine-core/{p-CIc_XeAg.system.js.map → p-DKuFjXiD.system.js.map} +1 -1
  465. package/dist/pine-core/{p-CTPMEWZT.system.js.map → p-DMNp4slx.system.js.map} +1 -1
  466. package/dist/pine-core/{p--YvWqEjm.system.js.map → p-DQnK6lQ2.system.js.map} +1 -1
  467. package/dist/pine-core/{p-ClVQjta4.system.js.map → p-DRqkTTfb.system.js.map} +1 -1
  468. package/dist/pine-core/{p-3D0orTx_.system.js.map → p-DXuK7cEc.system.js.map} +1 -1
  469. package/dist/pine-core/{p-B-hSZadO.system.js.map → p-DYb5Y47j.system.js.map} +1 -1
  470. package/dist/pine-core/p-D_FwyeSw.js +2 -0
  471. package/dist/pine-core/p-D_FwyeSw.js.map +1 -0
  472. package/dist/pine-core/{p-CGABEyvz.system.js.map → p-DdEbUZw3.system.js.map} +1 -1
  473. package/dist/pine-core/p-De9tROL-.system.js +2 -0
  474. package/dist/pine-core/{p-BsL2GDnH.system.js.map → p-De9tROL-.system.js.map} +1 -1
  475. package/dist/pine-core/{p-DyDReOdO.system.js → p-DiBM9O5Q.system.js} +1 -1
  476. package/dist/pine-core/{p-DyDReOdO.system.js.map → p-DiBM9O5Q.system.js.map} +1 -1
  477. package/dist/pine-core/{p-CkoeYrxa.system.js.map → p-Dm_a1Ag0.system.js.map} +1 -1
  478. package/dist/pine-core/{p-A4_UN20E.system.js.map → p-DvZWnvRb.system.js.map} +1 -1
  479. package/dist/pine-core/{p-BwHnCFqU.system.js.map → p-EytFbMH4.system.js.map} +1 -1
  480. package/dist/pine-core/{p-BaAcO8Mz.system.js.map → p-PgQPKVDh.system.js.map} +1 -1
  481. package/dist/pine-core/p-REBgf8JA.system.js.map +1 -0
  482. package/dist/pine-core/{p-Mqxw-gWj.system.js.map → p-XHvXi3U6.system.js.map} +1 -1
  483. package/dist/pine-core/p-ZCkmy1Gu.system.js +2 -0
  484. package/dist/pine-core/p-ZCkmy1Gu.system.js.map +1 -0
  485. package/dist/pine-core/p-a54f1d9e.entry.js +2 -0
  486. package/dist/pine-core/{p-a52b1413.entry.js.map → p-a54f1d9e.entry.js.map} +1 -1
  487. package/dist/pine-core/p-a7204f01.entry.js +2 -0
  488. package/dist/pine-core/p-aafb6e06.system.entry.js +2 -0
  489. package/dist/pine-core/p-aafb6e06.system.entry.js.map +1 -0
  490. package/dist/pine-core/{p-f46c4618.system.entry.js → p-adf2449e.system.entry.js} +2 -2
  491. package/dist/pine-core/{p-a556a328.system.entry.js → p-b2b405ca.system.entry.js} +3 -3
  492. package/dist/pine-core/p-b956922a.entry.js +2 -0
  493. package/dist/pine-core/p-b956922a.entry.js.map +1 -0
  494. package/dist/pine-core/{p-a98cda38.system.entry.js → p-b9fe17b8.system.entry.js} +2 -2
  495. package/dist/pine-core/{p-f256dd8a.entry.js → p-bfd08c9c.entry.js} +2 -2
  496. package/dist/pine-core/p-bfd08c9c.entry.js.map +1 -0
  497. package/dist/pine-core/p-c1099665.system.entry.js +2 -0
  498. package/dist/pine-core/{p-de550d9e.system.entry.js → p-c1115d78.system.entry.js} +2 -2
  499. package/dist/pine-core/{p-51cc93b3.entry.js → p-c16d01cc.entry.js} +2 -2
  500. package/dist/pine-core/{p-8b6b0db7.entry.js → p-c1a1475e.entry.js} +2 -2
  501. package/dist/pine-core/p-c1a1475e.entry.js.map +1 -0
  502. package/dist/pine-core/{p-80f36506.entry.js → p-c1f5148f.entry.js} +2 -2
  503. package/dist/pine-core/p-c1f5148f.entry.js.map +1 -0
  504. package/dist/pine-core/{p-9c01e81b.system.entry.js → p-c3f32f26.system.entry.js} +2 -2
  505. package/dist/pine-core/{p-9c01e81b.system.entry.js.map → p-c3f32f26.system.entry.js.map} +1 -1
  506. package/dist/pine-core/p-c652847a.entry.js +2 -0
  507. package/dist/pine-core/{p-44f10d3c.entry.js → p-c82c277f.entry.js} +2 -2
  508. package/dist/pine-core/p-c82d0a99.entry.js +2 -0
  509. package/dist/pine-core/p-cHtb875x.system.js.map +1 -0
  510. package/dist/pine-core/p-ce0d9f05.system.entry.js +2 -0
  511. package/dist/pine-core/p-cf5506db.system.entry.js +2 -0
  512. package/dist/pine-core/p-d06351b9.system.entry.js +2 -0
  513. package/dist/pine-core/p-d06351b9.system.entry.js.map +1 -0
  514. package/dist/pine-core/{p-4b2aab79.system.entry.js → p-d08ecd18.system.entry.js} +2 -2
  515. package/dist/pine-core/p-d6d87fbc.system.entry.js +2 -0
  516. package/dist/pine-core/p-d6d87fbc.system.entry.js.map +1 -0
  517. package/dist/pine-core/{p-19c01019.entry.js → p-df15e16a.entry.js} +2 -2
  518. package/dist/pine-core/p-e05135c5.entry.js +2 -0
  519. package/dist/pine-core/{p-f99c59a8.entry.js → p-e30601a6.entry.js} +2 -2
  520. package/dist/pine-core/p-e3fb0bc2.system.entry.js +2 -0
  521. package/dist/pine-core/p-e3fb0bc2.system.entry.js.map +1 -0
  522. package/dist/pine-core/{p-5c4aceb7.entry.js → p-e8d76117.entry.js} +2 -2
  523. package/dist/pine-core/{p-2007a0b5.entry.js → p-ed94947b.entry.js} +2 -2
  524. package/dist/pine-core/{p-bf699bad.entry.js → p-f2da93ea.entry.js} +2 -2
  525. package/dist/pine-core/p-f2da93ea.entry.js.map +1 -0
  526. package/dist/pine-core/{p-d553e05c.system.entry.js → p-f647c1af.system.entry.js} +2 -2
  527. package/dist/pine-core/{p-cc21ddcc.system.entry.js → p-f9bd0bc2.system.entry.js} +2 -2
  528. package/dist/pine-core/{p-f6b226df.entry.js → p-fcdbb73f.entry.js} +2 -2
  529. package/dist/pine-core/p-fcdbb73f.entry.js.map +1 -0
  530. package/dist/pine-core/{p-DVhX1_nD.system.js.map → p-lMetQ5Q0.system.js.map} +1 -1
  531. package/dist/pine-core/{p-D2UtaGL2.system.js.map → p-pm8ElBzm.system.js.map} +1 -1
  532. package/dist/pine-core/p-qjvXmIGJ.system.js.map +1 -0
  533. package/dist/pine-core/pds-box.entry.esm.js.map +1 -1
  534. package/dist/pine-core/pds-button.entry.esm.js.map +1 -1
  535. package/dist/pine-core/pds-checkbox.entry.esm.js.map +1 -1
  536. package/dist/pine-core/pds-chip.entry.esm.js.map +1 -1
  537. package/dist/pine-core/pds-combobox.entry.esm.js.map +1 -0
  538. package/dist/pine-core/pds-dropdown-menu.entry.esm.js.map +1 -1
  539. package/dist/pine-core/pds-icon.entry.esm.js.map +1 -1
  540. package/dist/pine-core/pds-input.entry.esm.js.map +1 -1
  541. package/dist/pine-core/pds-modal.entry.esm.js.map +1 -1
  542. package/dist/pine-core/pds-property.entry.esm.js.map +1 -0
  543. package/dist/pine-core/pds-radio.entry.esm.js.map +1 -1
  544. package/dist/pine-core/pds-select.entry.esm.js.map +1 -1
  545. package/dist/pine-core/pds-text.entry.esm.js.map +1 -1
  546. package/dist/pine-core/pds-textarea.entry.esm.js.map +1 -1
  547. package/dist/pine-core/pine-core.esm.js +1 -1
  548. package/dist/pine-core/pine-core.js +1 -1
  549. package/dist/types/components/pds-combobox/pds-combobox.d.ts +153 -0
  550. package/dist/types/components/pds-input/pds-input.d.ts +28 -0
  551. package/dist/types/components/pds-property/pds-property.d.ts +14 -0
  552. package/dist/types/components/pds-select/pds-select.d.ts +24 -0
  553. package/dist/types/components/pds-text/pds-text.d.ts +3 -0
  554. package/dist/types/components/pds-textarea/pds-textarea.d.ts +25 -0
  555. package/dist/types/components.d.ts +213 -0
  556. package/hydrate/index.js +2409 -239
  557. package/hydrate/index.mjs +2409 -239
  558. package/package.json +4 -2
  559. package/dist/cjs/index-CxX7ua5d.js.map +0 -1
  560. package/dist/esm/index-Uh5ntVcq.js.map +0 -1
  561. package/dist/esm-es5/index-Uh5ntVcq.js +0 -3
  562. package/dist/esm-es5/index-Uh5ntVcq.js.map +0 -1
  563. package/dist/pine-core/p-00599bd8.entry.js +0 -2
  564. package/dist/pine-core/p-00599bd8.entry.js.map +0 -1
  565. package/dist/pine-core/p-03d8cb4c.system.entry.js +0 -2
  566. package/dist/pine-core/p-065208a1.system.entry.js.map +0 -1
  567. package/dist/pine-core/p-0c30661b.system.entry.js +0 -2
  568. package/dist/pine-core/p-13481ef5.system.entry.js.map +0 -1
  569. package/dist/pine-core/p-35917a1a.entry.js +0 -2
  570. package/dist/pine-core/p-39a31730.system.entry.js +0 -2
  571. package/dist/pine-core/p-39a31730.system.entry.js.map +0 -1
  572. package/dist/pine-core/p-3e91dccd.entry.js +0 -2
  573. package/dist/pine-core/p-3e91dccd.entry.js.map +0 -1
  574. package/dist/pine-core/p-513c16c7.entry.js +0 -2
  575. package/dist/pine-core/p-513c16c7.entry.js.map +0 -1
  576. package/dist/pine-core/p-5367f477.system.entry.js +0 -2
  577. package/dist/pine-core/p-593df966.system.entry.js +0 -2
  578. package/dist/pine-core/p-593df966.system.entry.js.map +0 -1
  579. package/dist/pine-core/p-5acda4ac.system.entry.js +0 -2
  580. package/dist/pine-core/p-5acda4ac.system.entry.js.map +0 -1
  581. package/dist/pine-core/p-5e1e7762.entry.js +0 -2
  582. package/dist/pine-core/p-624db3d6.system.entry.js +0 -2
  583. package/dist/pine-core/p-624db3d6.system.entry.js.map +0 -1
  584. package/dist/pine-core/p-65a875f6.entry.js +0 -2
  585. package/dist/pine-core/p-73412ca9.system.entry.js.map +0 -1
  586. package/dist/pine-core/p-76f7cf21.entry.js +0 -2
  587. package/dist/pine-core/p-80f36506.entry.js.map +0 -1
  588. package/dist/pine-core/p-8b6b0db7.entry.js.map +0 -1
  589. package/dist/pine-core/p-96e9774e.system.entry.js.map +0 -1
  590. package/dist/pine-core/p-9db1f179.entry.js +0 -2
  591. package/dist/pine-core/p-9db1f179.entry.js.map +0 -1
  592. package/dist/pine-core/p-B5LBNcOw.system.js.map +0 -1
  593. package/dist/pine-core/p-BE1qV1Jc.system.js.map +0 -1
  594. package/dist/pine-core/p-BHZ6CSg4.system.js.map +0 -1
  595. package/dist/pine-core/p-BsL2GDnH.system.js +0 -2
  596. package/dist/pine-core/p-C3ud771n.system.js.map +0 -1
  597. package/dist/pine-core/p-CS2nVL5p.system.js.map +0 -1
  598. package/dist/pine-core/p-C_8VmA8d.system.js +0 -3
  599. package/dist/pine-core/p-C_8VmA8d.system.js.map +0 -1
  600. package/dist/pine-core/p-CdzfTGbZ.system.js.map +0 -1
  601. package/dist/pine-core/p-CuIq_L5Z.system.js +0 -2
  602. package/dist/pine-core/p-CuIq_L5Z.system.js.map +0 -1
  603. package/dist/pine-core/p-DMeT5CsE.system.js.map +0 -1
  604. package/dist/pine-core/p-DeW-6a7f.system.js.map +0 -1
  605. package/dist/pine-core/p-DjXmy34u.system.js.map +0 -1
  606. package/dist/pine-core/p-Ke8SGZqs.system.js.map +0 -1
  607. package/dist/pine-core/p-Uh5ntVcq.js +0 -3
  608. package/dist/pine-core/p-Uh5ntVcq.js.map +0 -1
  609. package/dist/pine-core/p-a52b1413.entry.js +0 -2
  610. package/dist/pine-core/p-ab7e4700.system.entry.js.map +0 -1
  611. package/dist/pine-core/p-bf699bad.entry.js.map +0 -1
  612. package/dist/pine-core/p-dcda4ff5.system.entry.js +0 -2
  613. package/dist/pine-core/p-dfd5a5b6.system.entry.js +0 -2
  614. package/dist/pine-core/p-dfd5a5b6.system.entry.js.map +0 -1
  615. package/dist/pine-core/p-e562ad73.system.entry.js +0 -2
  616. package/dist/pine-core/p-e562ad73.system.entry.js.map +0 -1
  617. package/dist/pine-core/p-e9f004c5.entry.js +0 -2
  618. package/dist/pine-core/p-e9f004c5.entry.js.map +0 -1
  619. package/dist/pine-core/p-f256dd8a.entry.js.map +0 -1
  620. package/dist/pine-core/p-f6b226df.entry.js.map +0 -1
  621. package/dist/pine-core/p-fb1eb0c4.entry.js +0 -2
  622. package/dist/pine-core/p-fb1eb0c4.entry.js.map +0 -1
  623. package/dist/pine-core/p-fd1ef1e1.entry.js +0 -2
  624. package/dist/pine-core/p-fed5f55e.system.entry.js +0 -2
  625. /package/dist/pine-core/{p-99b5e1a5.entry.js.map → p-0066d249.entry.js.map} +0 -0
  626. /package/dist/pine-core/{p-6a7936e7.system.entry.js.map → p-0199e3e9.system.entry.js.map} +0 -0
  627. /package/dist/pine-core/{p-ef9ed75a.system.entry.js.map → p-051ff780.system.entry.js.map} +0 -0
  628. /package/dist/pine-core/{p-04195bdb.entry.js.map → p-064e3d73.entry.js.map} +0 -0
  629. /package/dist/pine-core/{p-d0adaca0.system.entry.js.map → p-0d8a2a39.system.entry.js.map} +0 -0
  630. /package/dist/pine-core/{p-b2820acd.entry.js.map → p-0dbb2ae9.entry.js.map} +0 -0
  631. /package/dist/pine-core/{p-1d395d27.entry.js.map → p-11d4036e.entry.js.map} +0 -0
  632. /package/dist/pine-core/{p-0a11384e.entry.js.map → p-126197e5.entry.js.map} +0 -0
  633. /package/dist/pine-core/{p-60fbeb1c.entry.js.map → p-13ac0852.entry.js.map} +0 -0
  634. /package/dist/pine-core/{p-76e35041.entry.js.map → p-17c2f3fb.entry.js.map} +0 -0
  635. /package/dist/pine-core/{p-833b2170.system.entry.js.map → p-1858ad6d.system.entry.js.map} +0 -0
  636. /package/dist/pine-core/{p-8180b641.entry.js.map → p-1a5e79af.entry.js.map} +0 -0
  637. /package/dist/pine-core/{p-aeaae417.system.entry.js.map → p-276a6a8b.system.entry.js.map} +0 -0
  638. /package/dist/pine-core/{p-07f45626.entry.js.map → p-2b48499b.entry.js.map} +0 -0
  639. /package/dist/pine-core/{p-5367f477.system.entry.js.map → p-2fb60757.system.entry.js.map} +0 -0
  640. /package/dist/pine-core/{p-942fa145.system.entry.js.map → p-39488f2c.system.entry.js.map} +0 -0
  641. /package/dist/pine-core/{p-78f29270.entry.js.map → p-3e6229cc.entry.js.map} +0 -0
  642. /package/dist/pine-core/{p-7bb3a5d4.system.entry.js.map → p-3f83d4c4.system.entry.js.map} +0 -0
  643. /package/dist/pine-core/{p-27c0ffda.system.entry.js.map → p-41bf807f.system.entry.js.map} +0 -0
  644. /package/dist/pine-core/{p-c1909a5d.system.entry.js.map → p-487552a9.system.entry.js.map} +0 -0
  645. /package/dist/pine-core/{p-10e2feff.entry.js.map → p-4e5b9d19.entry.js.map} +0 -0
  646. /package/dist/pine-core/{p-111e7da2.system.entry.js.map → p-51d83489.system.entry.js.map} +0 -0
  647. /package/dist/pine-core/{p-f4fff209.system.entry.js.map → p-52af1890.system.entry.js.map} +0 -0
  648. /package/dist/pine-core/{p-fed5f55e.system.entry.js.map → p-55bf6be2.system.entry.js.map} +0 -0
  649. /package/dist/pine-core/{p-47a7a65b.entry.js.map → p-5a709348.entry.js.map} +0 -0
  650. /package/dist/pine-core/{p-0a87e2fc.system.entry.js.map → p-6438a29d.system.entry.js.map} +0 -0
  651. /package/dist/pine-core/{p-5e1e7762.entry.js.map → p-66b10d29.entry.js.map} +0 -0
  652. /package/dist/pine-core/{p-d6d453d8.system.entry.js.map → p-6d601fc2.system.entry.js.map} +0 -0
  653. /package/dist/pine-core/{p-ddcc4932.entry.js.map → p-6fd385ec.entry.js.map} +0 -0
  654. /package/dist/pine-core/{p-5a437fcd.system.entry.js.map → p-7a95a90f.system.entry.js.map} +0 -0
  655. /package/dist/pine-core/{p-d28768d1.entry.js.map → p-7c867f1b.entry.js.map} +0 -0
  656. /package/dist/pine-core/{p-c5e1ed09.system.entry.js.map → p-7eb4ac7c.system.entry.js.map} +0 -0
  657. /package/dist/pine-core/{p-c551191a.system.entry.js.map → p-81a28f54.system.entry.js.map} +0 -0
  658. /package/dist/pine-core/{p-fdf3a5ff.entry.js.map → p-8cb99f2f.entry.js.map} +0 -0
  659. /package/dist/pine-core/{p-d35b3494.entry.js.map → p-91c6bd68.entry.js.map} +0 -0
  660. /package/dist/pine-core/{p-fb2fb435.entry.js.map → p-94982c57.entry.js.map} +0 -0
  661. /package/dist/pine-core/{p-8f06b020.entry.js.map → p-978e722a.entry.js.map} +0 -0
  662. /package/dist/pine-core/{p-959c8247.system.entry.js.map → p-9860d0a8.system.entry.js.map} +0 -0
  663. /package/dist/pine-core/{p-78327c08.system.entry.js.map → p-9afcab0c.system.entry.js.map} +0 -0
  664. /package/dist/pine-core/{p-35917a1a.entry.js.map → p-a7204f01.entry.js.map} +0 -0
  665. /package/dist/pine-core/{p-f46c4618.system.entry.js.map → p-adf2449e.system.entry.js.map} +0 -0
  666. /package/dist/pine-core/{p-a556a328.system.entry.js.map → p-b2b405ca.system.entry.js.map} +0 -0
  667. /package/dist/pine-core/{p-a98cda38.system.entry.js.map → p-b9fe17b8.system.entry.js.map} +0 -0
  668. /package/dist/pine-core/{p-03d8cb4c.system.entry.js.map → p-c1099665.system.entry.js.map} +0 -0
  669. /package/dist/pine-core/{p-de550d9e.system.entry.js.map → p-c1115d78.system.entry.js.map} +0 -0
  670. /package/dist/pine-core/{p-51cc93b3.entry.js.map → p-c16d01cc.entry.js.map} +0 -0
  671. /package/dist/pine-core/{p-76f7cf21.entry.js.map → p-c652847a.entry.js.map} +0 -0
  672. /package/dist/pine-core/{p-44f10d3c.entry.js.map → p-c82c277f.entry.js.map} +0 -0
  673. /package/dist/pine-core/{p-65a875f6.entry.js.map → p-c82d0a99.entry.js.map} +0 -0
  674. /package/dist/pine-core/{p-0c30661b.system.entry.js.map → p-ce0d9f05.system.entry.js.map} +0 -0
  675. /package/dist/pine-core/{p-dcda4ff5.system.entry.js.map → p-cf5506db.system.entry.js.map} +0 -0
  676. /package/dist/pine-core/{p-4b2aab79.system.entry.js.map → p-d08ecd18.system.entry.js.map} +0 -0
  677. /package/dist/pine-core/{p-19c01019.entry.js.map → p-df15e16a.entry.js.map} +0 -0
  678. /package/dist/pine-core/{p-fd1ef1e1.entry.js.map → p-e05135c5.entry.js.map} +0 -0
  679. /package/dist/pine-core/{p-f99c59a8.entry.js.map → p-e30601a6.entry.js.map} +0 -0
  680. /package/dist/pine-core/{p-5c4aceb7.entry.js.map → p-e8d76117.entry.js.map} +0 -0
  681. /package/dist/pine-core/{p-2007a0b5.entry.js.map → p-ed94947b.entry.js.map} +0 -0
  682. /package/dist/pine-core/{p-d553e05c.system.entry.js.map → p-f647c1af.system.entry.js.map} +0 -0
  683. /package/dist/pine-core/{p-cc21ddcc.system.entry.js.map → p-f9bd0bc2.system.entry.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pds-combobox.js","sourceRoot":"","sources":["../../../src/components/pds-combobox/pds-combobox.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Prop, State, Watch, Method } from '@stencil/core';\nimport type { BasePdsProps } from '@utils/interfaces';\nimport { computePosition, flip, offset, shift } from '@floating-ui/dom';\nimport DOMPurify from 'dompurify';\n\n/**\n * @slot option - Option elements for the combobox dropdown\n * @slot trigger-content - Custom content for the button trigger when customTriggerContent is true\n */\n@Component({\n tag: 'pds-combobox',\n styleUrl: 'pds-combobox.scss',\n shadow: true,\n})\nexport class PdsCombobox implements BasePdsProps {\n /** Reference to the host element */\n @Element() el!: HTMLPdsComboboxElement;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Enable custom layout content for options. Options with data-layout attribute will render their HTML content.\n * ⚠️ Security Warning: Only use with trusted content. Basic XSS protection is applied, but avoid user-generated content.\n * @default false\n */\n @Prop() customOptionLayouts: boolean = false;\n\n /**\n * Enable custom layout content for the button trigger via the trigger-content slot.\n * When true, uses slot content for initial state but updates dynamically with selected option layout.\n * ⚠️ Security Warning: Only use with trusted content. Basic XSS protection is applied, but avoid user-generated content.\n * @default false\n */\n @Prop() customTriggerContent: boolean = false;\n\n /**\n * If true, the combobox is disabled.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Placement of the dropdown relative to the trigger.\n * @default 'bottom-start'\n */\n @Prop() dropdownPlacement: 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end' = 'bottom-start';\n\n /**\n * Width of the dropdown. Any valid CSS width value.\n * @default '236px'\n */\n @Prop() dropdownWidth: string = '236px';\n\n /**\n * Visually hides the label text for instances where only the combobox should be displayed.\n * Label remains accessible to assistive technology such as screen readers.\n */\n @Prop() hideLabel: boolean = false;\n\n /**\n * Text to be displayed as the combobox label.\n */\n @Prop() label?: string;\n\n /**\n * Maximum height of the dropdown. Can be any valid CSS height value (e.g., '200px', '10rem').\n * When content exceeds this height, the dropdown will scroll.\n */\n @Prop() maxHeight?: string;\n\n /**\n * Determines the combobox mode: 'filter' (filter options as you type) or 'select-only' (show all options).\n * @default 'filter'\n */\n @Prop() mode: 'filter' | 'select-only' = 'filter';\n\n /**\n * Placeholder text for the input field.\n */\n @Prop() placeholder?: string;\n\n /**\n * Determines the combobox trigger: 'input' (editable input) or 'button' (button-like, non-editable).\n * @default 'input'\n */\n @Prop() trigger: 'input' | 'button' = 'input';\n\n /**\n * Width of the trigger (button or input). Any valid CSS width value.\n * @default 'fit-content'\n */\n @Prop() triggerWidth: string = 'fit-content';\n\n /**\n * The visual variant for the button trigger. Matches Pine button variants.\n * @default 'secondary'\n */\n @Prop() triggerVariant: 'secondary' | 'primary' | 'accent' | 'destructive' = 'secondary';\n\n /**\n * The value of the combobox input.\n */\n @Prop({ mutable: true }) value: string = '';\n\n /**\n * Emitted when the value changes.\n */\n @Event() pdsComboboxChange!: EventEmitter<{ value: string }>;\n\n /**\n * Internal state for filtered options\n */\n @State() filteredOptions: HTMLOptionElement[] = [];\n\n /**\n * Internal state for the currently highlighted option index\n */\n @State() highlightedIndex: number = -1;\n\n /**\n * Internal state for dropdown open/close\n */\n @State() isOpen: boolean = false;\n\n /**\n * Internal state for the currently selected option\n */\n @State() selectedOption: HTMLOptionElement | null = null;\n\n /**\n * Internal state for the sanitized layout content of the selected option\n */\n @State() selectedOptionLayoutContent: string = '';\n\n private inputEl?: HTMLInputElement;\n private optionEls: HTMLOptionElement[] = [];\n private triggerEl?: HTMLElement;\n private listboxEl?: HTMLElement;\n\n componentWillLoad() {\n this.updateOptions();\n }\n\n @Watch('value')\n handleValueChange() {\n this.filterOptions();\n }\n\n @Watch('selectedOption')\n handleSelectedOptionChange() {\n // Update the layout content when selected option changes\n this.selectedOptionLayoutContent = this.selectedOption && this.isOptionLayout(this.selectedOption)\n ? this.getOptionLayoutContent(this.selectedOption)\n : '';\n }\n\n private updateOptions() {\n // Get all <option> elements from the slot\n const slot = this.el.shadowRoot?.querySelector('slot[name=\"option\"], slot:not([name])');\n if (slot) {\n this.optionEls = (slot as HTMLSlotElement).assignedElements({ flatten: true })\n .filter(el => el.tagName === 'OPTION') as HTMLOptionElement[];\n\n // Set initial selected option if one exists (only check DOM on initialization)\n if (!this.selectedOption) {\n const initialSelected = this.optionEls.find(opt => opt.hasAttribute('selected')) || null;\n this.setSelectedOption(initialSelected);\n }\n\n this.filterOptions();\n }\n }\n\n // Helper method to get option label, falling back to text content if no label attribute\n private getOptionLabel(option: HTMLOptionElement): string {\n return option.label || option.textContent || '';\n }\n\n // Helper method to get option layout content\n private getOptionLayoutContent(option: HTMLOptionElement): string {\n return this.sanitizeHtml(option.innerHTML || '');\n }\n\n // HTML sanitization using DOMPurify library to prevent XSS attacks\n private sanitizeHtml(html: string): string {\n // Configure DOMPurify to allow Pine Design System components while removing dangerous content\n const config = {\n // Allow all custom elements (including pds-* components)\n CUSTOM_ELEMENT_HANDLING: {\n tagNameCheck: (tagName: string) => {\n // Allow all pds-* tags and standard safe HTML tags\n return tagName.startsWith('pds-') || /^[a-z]+$/i.test(tagName);\n },\n attributeNameCheck: (attr: string) => {\n // Allow standard HTML attributes, data-* attributes, and Pine component attributes\n return /^[a-zA-Z][a-zA-Z0-9-]*$/.test(attr) || attr.startsWith('data-') || attr.startsWith('aria-');\n },\n allowCustomizedBuiltInElements: false,\n },\n // Allow standard safe attributes\n ALLOW_DATA_ATTR: true,\n ALLOW_ARIA_ATTR: true,\n // Specifically forbid dangerous tags\n FORBID_TAGS: ['script', 'iframe', 'object', 'embed', 'form', 'input', 'textarea', 'select', 'button', 'style'],\n // Forbid all event handler attributes\n FORBID_ATTR: [\n 'onerror', 'onload', 'onclick', 'onmouseover', 'onmouseout', 'onmousemove',\n 'onfocus', 'onblur', 'onchange', 'onsubmit', 'onkeydown', 'onkeyup', 'onkeypress',\n 'onmousedown', 'onmouseup', 'ondblclick', 'oncontextmenu', 'onscroll'\n ],\n // Safe protocol whitelist\n ALLOWED_URI_REGEXP: /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|data):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i,\n };\n\n return DOMPurify.sanitize(html, config);\n }\n\n\n\n // Helper method to check if option should render as layout\n private isOptionLayout(option: HTMLOptionElement): boolean {\n return this.customOptionLayouts && option.hasAttribute('data-layout');\n }\n\n // Helper method to check if option is selected (single source of truth)\n private isOptionSelected(option: HTMLOptionElement): boolean {\n return this.selectedOption === option;\n }\n\n // Helper method to set selected option (centralized state management)\n private setSelectedOption(option: HTMLOptionElement | null): void {\n this.selectedOption = option;\n }\n\n private filterOptions() {\n if (this.mode === 'select-only') {\n this.filteredOptions = this.optionEls;\n } else {\n const val = this.value.toLowerCase();\n this.filteredOptions = this.optionEls.filter(option => {\n // For layout options, search both text content and data-search-text attribute\n if (this.isOptionLayout(option)) {\n const searchText = option.getAttribute('data-search-text') || option.textContent || '';\n return searchText.toLowerCase().includes(val);\n }\n return this.getOptionLabel(option).toLowerCase().includes(val);\n });\n }\n this.highlightedIndex = -1;\n }\n\n private openDropdownPositioning() {\n if (this.triggerEl && this.listboxEl) {\n // Apply width and max-height BEFORE positioning calculations\n this.listboxEl.style.width = this.dropdownWidth;\n\n if (this.maxHeight) {\n this.listboxEl.style.maxHeight = this.maxHeight;\n this.listboxEl.style.overflowY = 'auto';\n }\n\n // Force a reflow to ensure dimensions are calculated\n this.listboxEl.offsetHeight;\n\n computePosition(this.triggerEl, this.listboxEl, {\n placement: this.dropdownPlacement,\n strategy: 'absolute',\n middleware: [offset(12), flip(), shift({ padding: 5 })],\n }).then(({ x, y }) => {\n Object.assign(this.listboxEl.style, {\n left: `${x}px`,\n top: `${y}px`,\n position: 'absolute',\n zIndex: 1000,\n });\n });\n }\n }\n\n private handleInput = (e: Event) => {\n const target = e.target as HTMLInputElement;\n this.value = target.value;\n this.isOpen = true;\n this.filterOptions();\n setTimeout(() => this.openDropdownPositioning(), 0);\n };\n\n private handleFocus = () => {\n this.isOpen = true;\n this.filterOptions();\n setTimeout(() => this.openDropdownPositioning(), 0);\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (!this.isOpen && (e.key === 'ArrowDown' || e.key === 'ArrowUp')) {\n this.isOpen = true;\n return;\n }\n switch (e.key) {\n case 'ArrowDown':\n this.highlightedIndex = Math.min(this.highlightedIndex + 1, this.filteredOptions.length - 1);\n break;\n case 'ArrowUp':\n this.highlightedIndex = Math.max(this.highlightedIndex - 1, 0);\n break;\n case 'Enter':\n if (this.isOpen && this.highlightedIndex >= 0 && this.highlightedIndex < this.filteredOptions.length) {\n this.handleOptionClick(this.filteredOptions[this.highlightedIndex]);\n }\n break;\n case 'Escape':\n this.isOpen = false;\n break;\n }\n };\n\n /**\n * Sets focus on the native input element.\n */\n @Method()\n async setFocus() {\n this.inputEl?.focus();\n }\n\n /**\n * Gets the value of the currently selected option.\n */\n @Method()\n async getSelectedValue(): Promise<string | null> {\n return this.selectedOption ? this.selectedOption.value : null;\n }\n\n // Event handler for option click\n private onOptionClick = (event: Event) => {\n const idx = Number((event.currentTarget as HTMLElement).getAttribute('data-option-index'));\n const option = this.filteredOptions[idx];\n this.handleOptionClick(option);\n };\n\n // Event handler for mouse enter on option\n private onOptionMouseEnter = (event: Event) => {\n const idx = Number((event.currentTarget as HTMLElement).getAttribute('data-option-index'));\n this.highlightedIndex = idx;\n };\n\n // Prevent blur on mousedown\n private onOptionMouseDown = (event: Event) => {\n event.preventDefault();\n };\n\n // Get the label of the selected option\n private get selectedLabel(): string {\n return this.selectedOption ? this.getOptionLabel(this.selectedOption) : '';\n }\n\n // Get the layout content of the selected option for button trigger\n private get selectedLayoutContent(): string {\n return this.selectedOptionLayoutContent;\n }\n\n // Check if selected option has layout\n private get selectedHasLayout(): boolean {\n return this.selectedOption ? this.isOptionLayout(this.selectedOption) : false;\n }\n\n // Handler for button trigger click\n private onButtonTriggerClick = () => {\n this.isOpen = !this.isOpen;\n if (this.isOpen) setTimeout(() => this.openDropdownPositioning(), 0);\n };\n\n // Handler for button trigger keyboard events\n private onButtonTriggerKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ' || e.key === 'ArrowDown') {\n e.preventDefault();\n this.isOpen = true;\n this.highlightedIndex = 0;\n setTimeout(() => this.openDropdownPositioning(), 0);\n } else if (e.key === 'Escape') {\n this.isOpen = false;\n }\n };\n\n // Close dropdown when focus leaves the combobox\n private onComboboxFocusOut = (event: FocusEvent) => {\n const relatedTarget = event.relatedTarget as Node | null;\n if (!this.el.contains(relatedTarget)) {\n this.isOpen = false;\n\n // If there's a selected option but the input value doesn't match, restore the selected option's value\n if (this.selectedOption && this.value !== this.getOptionLabel(this.selectedOption)) {\n this.value = this.getOptionLabel(this.selectedOption);\n }\n }\n };\n\n private handleOptionClick(option: HTMLOptionElement) {\n // Update reactive state - single source of truth\n this.setSelectedOption(option);\n\n this.value = this.getOptionLabel(option);\n this.isOpen = false;\n this.pdsComboboxChange.emit({ value: option.value });\n }\n\n private renderDropdown() {\n if (!this.isOpen || this.filteredOptions.length === 0) return null;\n return (\n <ul\n class=\"pds-combobox__listbox\"\n role=\"listbox\"\n id=\"pds-combobox-listbox\"\n ref={el => (this.listboxEl = el as HTMLElement)}\n >\n {this.filteredOptions.map((option, idx) => {\n const isSelected = this.isOptionSelected(option);\n const isHighlighted = this.highlightedIndex === idx;\n const isLayout = this.isOptionLayout(option);\n\n return (\n <li\n key={option.value}\n id={`pds-combobox-option-${idx}`}\n role=\"option\"\n aria-selected={isSelected ? 'true' : 'false'}\n class={{\n 'pds-combobox__option': true,\n 'pds-combobox__option--highlighted': isHighlighted,\n 'pds-combobox__option--layout': isLayout,\n }}\n data-option-index={idx}\n onMouseDown={this.onOptionMouseDown}\n onClick={this.onOptionClick}\n onMouseEnter={this.onOptionMouseEnter}\n >\n {isLayout ? (\n <pds-box class=\"pds-combobox__option-layout-wrapper\" innerHTML={this.getOptionLayoutContent(option)} />\n ) : (\n this.getOptionLabel(option)\n )}\n {isSelected && <pds-icon icon=\"check\" size=\"regular\" class=\"pds-combobox__option-check\" />}\n </li>\n );\n })}\n </ul>\n );\n }\n\n // Helper method to render the caret icon\n private renderCaretIcon() {\n return <pds-icon icon=\"caret-down\" aria-hidden=\"true\" aria-label=\"dropdown indicator\" class=\"pds-combobox__button-trigger-chevron\" />;\n }\n\n // Helper method to render layout content\n private renderLayoutContent() {\n return (\n <div class=\"pds-combobox__button-trigger-layout-wrapper\" innerHTML={this.selectedLayoutContent} />\n );\n }\n\n // Helper method to render default text content\n private renderDefaultContent() {\n return (\n <span class=\"pds-combobox__button-trigger-label\">\n {this.selectedLabel || this.placeholder}\n </span>\n );\n }\n\n // Helper method to check if we should show layout content\n private shouldShowLayoutContent(): boolean {\n return this.selectedHasLayout && !!this.selectedLayoutContent;\n }\n\n private renderButtonTriggerContent() {\n // Case 1: Custom trigger content with layout priority\n if (this.customTriggerContent) {\n if (this.shouldShowLayoutContent()) {\n return [this.renderLayoutContent(), this.renderCaretIcon()];\n }\n // Fall back to slot content when no layout is available\n return <slot name=\"trigger-content\" />;\n }\n\n // Case 2: Standard mode with layout content\n if (this.shouldShowLayoutContent()) {\n return [this.renderLayoutContent(), this.renderCaretIcon()];\n }\n\n // Case 3: Standard mode with default text content\n return [this.renderDefaultContent(), this.renderCaretIcon()];\n }\n\n\n\n render() {\n const triggerClass = `pds-combobox__button-trigger pds-combobox__button-trigger--${this.triggerVariant}`;\n return (\n <Host>\n <div class=\"pds-combobox\" tabIndex={-1} onFocusout={this.onComboboxFocusOut}>\n {this.label && (\n <label htmlFor={this.componentId} class=\"pds-combobox__label\">\n <span class={this.hideLabel ? 'visually-hidden' : ''}>{this.label}</span>\n </label>\n )}\n {this.trigger === 'input' ? (\n <input\n ref={el => {\n this.inputEl = el as HTMLInputElement;\n this.triggerEl = el as HTMLElement;\n }}\n class=\"pds-combobox__input\"\n style={{ width: this.triggerWidth }}\n type=\"text\"\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-controls=\"pds-combobox-listbox\"\n aria-activedescendant={this.highlightedIndex >= 0 ? `pds-combobox-option-${this.highlightedIndex}` : undefined}\n aria-expanded={this.isOpen ? 'true' : 'false'}\n aria-disabled={this.disabled ? 'true' : 'false'}\n aria-label={this.hideLabel ? this.label : undefined}\n id={this.componentId}\n value={this.value}\n placeholder={this.placeholder}\n disabled={this.disabled}\n onInput={this.handleInput}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n autocomplete=\"off\"\n part=\"input\"\n />\n ) : (\n <div\n class={triggerClass}\n style={{ width: this.triggerWidth }}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-controls=\"pds-combobox-listbox\"\n aria-expanded={this.isOpen ? 'true' : 'false'}\n aria-disabled={this.disabled ? 'true' : 'false'}\n aria-label={this.hideLabel ? this.label : undefined}\n id={this.componentId}\n tabIndex={0}\n onClick={this.onButtonTriggerClick}\n data-layout={this.customTriggerContent}\n onKeyDown={this.onButtonTriggerKeyDown}\n ref={el => (this.triggerEl = el as HTMLElement)}\n part=\"button-trigger\"\n >\n {this.renderButtonTriggerContent()}\n </div>\n )}\n {/* Hide the slot so options are not visible */}\n <div style={{ display: 'none' }}>\n <slot onSlotchange={() => this.updateOptions()}></slot>\n </div>\n {this.renderDropdown()}\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -0,0 +1,194 @@
1
+ import { html } from 'lit';
2
+ import { extractArgTypes } from '@pxtrn/storybook-addon-docs-stencil';
3
+ import { withActions } from '@storybook/addon-actions/decorator';
4
+
5
+ export default {
6
+ argTypes: extractArgTypes('pds-combobox'),
7
+ args: {
8
+ customOptionLayouts: false,
9
+ customTriggerContent: false,
10
+ disabled: false,
11
+ dropdownPlacement: 'bottom-start',
12
+ dropdownWidth: '236px',
13
+ hideLabel: false,
14
+ maxHeight: null,
15
+ mode: 'filter',
16
+ trigger: 'input',
17
+ triggerVariant: 'secondary',
18
+ triggerWidth: 'fit-content',
19
+ },
20
+ component: 'pds-combobox',
21
+ decorators: [withActions],
22
+ title: 'components/Combobox',
23
+ parameters: {
24
+ actions: {
25
+ handles: [
26
+ 'onpdscomboboxchange', 'pdsComboboxChange',
27
+ ],
28
+ },
29
+ layout: 'centered',
30
+ },
31
+ };
32
+
33
+ const BaseTemplate = (args) => html`
34
+ <pds-combobox
35
+ component-id=${args.componentId}
36
+ custom-option-layouts=${args.customOptionLayouts}
37
+ custom-trigger-content=${args.customTriggerContent}
38
+ disabled=${args.disabled}
39
+ dropdown-placement=${args.dropdownPlacement}
40
+ dropdown-width=${args.dropdownWidth}
41
+ hide-label=${args.hideLabel}
42
+ max-height=${args.maxHeight}
43
+ label=${args.label}
44
+ placeholder=${args.placeholder}
45
+ mode=${args.mode}
46
+ trigger=${args.trigger}
47
+ trigger-variant=${args.triggerVariant}
48
+ trigger-width=${args.triggerWidth}
49
+ >
50
+ <option value="cat">Cat</option>
51
+ <option value="dog">Dog</option>
52
+ <option value="panda">Panda</option>
53
+ <option value="snake">Snake</option>
54
+ </pds-combobox>`;
55
+
56
+ export const Default = BaseTemplate.bind();
57
+ Default.args = {
58
+ componentId: 'combobox-story',
59
+ label: 'Favorite Animal',
60
+ placeholder: 'placeholder_text',
61
+ trigger: 'input',
62
+ triggerVariant: 'secondary',
63
+ mode: 'filter',
64
+ };
65
+
66
+ export const ButtonTrigger = BaseTemplate.bind();
67
+ ButtonTrigger.args = {
68
+ componentId: 'combobox-button-trigger-story',
69
+ label: 'Favorite Animal',
70
+ placeholder: 'Select an animal',
71
+ trigger: 'button',
72
+ triggerVariant: 'secondary',
73
+ mode: 'select-only',
74
+ triggerWidth: '250px',
75
+ };
76
+
77
+ export const Custom = (args) => html`
78
+
79
+ <div style="width: 100%;">
80
+ <pds-combobox
81
+ component-id="combobox-custom-trigger-layouts"
82
+ custom-trigger-content=${args.customTriggerContent}
83
+ custom-option-layouts=${args.customOptionLayouts}
84
+ label=${args.label}
85
+ trigger=${args.trigger}
86
+ trigger-variant=${args.triggerVariant}
87
+ trigger-width=${args.triggerWidth}
88
+ mode=${args.mode}
89
+ dropdown-width=${args.dropdownWidth}
90
+ on-pds-combobox-change={(e) => console.log(e.detail.value)}
91
+ >
92
+ <pds-box
93
+ align-items="center"
94
+ class="payment-trigger-layout"
95
+ gap="sm"
96
+ slot="trigger-content"
97
+ >
98
+ <pds-box
99
+ align-items="center"
100
+ align-self="center"
101
+ background-color="var(--pine-color-grey-200)"
102
+ border-radius="md"
103
+ flex="shrink"
104
+ gap="sm"
105
+ justify-content="center"
106
+ min-height="48px"
107
+ min-width="48px"
108
+ >
109
+ <pds-icon icon="ban" color="var(--pine-color-text-neutral)"></pds-icon>
110
+ </pds-box>
111
+ <pds-box class="option-content" direction="column">
112
+ <pds-text class="option-title">Select a payment method</pds-text>
113
+ </pds-box>
114
+ <pds-icon icon="caret-down"></pds-icon>
115
+ </pds-box>
116
+
117
+ <option value="" data-layout data-search-text="None">
118
+ <pds-box class="payment-option-layout" align-items="center" gap="sm">
119
+ <pds-box
120
+ align-items="center"
121
+ align-self="center"
122
+ background-color="var(--pine-color-grey-200)"
123
+ border-radius="md"
124
+ flex="shrink"
125
+ gap="sm"
126
+ justify-content="center"
127
+ min-height="48px"
128
+ min-width="48px"
129
+ >
130
+ <pds-icon icon="ban" color="var(--pine-color-text-neutral)"></pds-icon>
131
+ </pds-box>
132
+ <pds-box class="option-content" direction="column">
133
+ <pds-text size="md" weight="semibold" class="option-title">None</pds-text>
134
+ <pds-text size="sm" class="option-description">No debit/credit card payments</pds-text>
135
+ </pds-box>
136
+ </pds-box>
137
+ </option>
138
+ <option value="stripe" data-layout data-search-text="Stripe credit card payment">
139
+ <pds-box class="payment-option-layout" align-items="center" gap="sm">
140
+ <pds-box
141
+ align-items="center"
142
+ align-self="center"
143
+ background-color="var(--pine-color-green-200)"
144
+ border-radius="md"
145
+ flex="shrink"
146
+ gap="sm"
147
+ justify-content="center"
148
+ min-height="48px"
149
+ min-width="48px"
150
+ >
151
+ <pds-icon icon="card-stripe"></pds-icon>
152
+ </pds-box>
153
+ <pds-box class="option-content" direction="column">
154
+ <pds-text size="md" weight="semibold" class="option-title">Stripe</pds-text>
155
+ <pds-text size="sm" class="option-description">Accept debit/credit cards through Stripe.</pds-text>
156
+ </pds-box>
157
+ </pds-box>
158
+ </option>
159
+ <option value="paypal" data-layout data-search-text="PayPal digital payments">
160
+ <pds-box class="payment-option-layout" align-items="center" gap="sm">
161
+ <pds-box
162
+ align-items="center"
163
+ align-self="center"
164
+ background-color="var(--pine-color-green-200)"
165
+ border-radius="md"
166
+ flex="shrink"
167
+ gap="sm"
168
+ justify-content="center"
169
+ min-height="48px"
170
+ min-width="48px"
171
+ >
172
+ <pds-icon icon="card-paypal"></pds-icon>
173
+ </pds-box>
174
+ <pds-box class="option-content" direction="column">
175
+ <pds-text size="md" weight="semibold" class="option-title">PayPal</pds-text>
176
+ <pds-text size="sm" class="option-description">Accept payments through PayPal.</pds-text>
177
+ </pds-box>
178
+ </pds-box>
179
+ </option>
180
+ </pds-combobox>
181
+ </div>`;
182
+
183
+ Custom.args = {
184
+ componentId: 'combobox-custom-trigger-layouts',
185
+ label: 'Payment Method',
186
+ placeholder: 'Select a payment method',
187
+ trigger: 'button',
188
+ triggerVariant: 'secondary',
189
+ mode: 'select-only',
190
+ triggerWidth: '500px',
191
+ dropdownWidth: '500px',
192
+ customTriggerContent: true,
193
+ customOptionLayouts: true,
194
+ };
@@ -46,7 +46,7 @@ export class PdsCopytext {
46
46
  return classNames.join(' ');
47
47
  }
48
48
  render() {
49
- return (h(Host, { key: '46c38faeba9b70d2e510a4b6af08866577936478', class: this.classNames(), id: this.componentId }, h("pds-button", { key: '6e28c11a9a7a57f4c256b0283b64ec655a897f65', type: "button", variant: "unstyled", onClick: this.handleClick }, h("span", { key: '6818451171f85fd6ad63f07c69871082d3fcba4e' }, this.value), h("pds-icon", { key: '05e683d7b28575d924d6af482e6ce4c3cfee3f05', icon: copyIcon, size: "16px" }))));
49
+ return (h(Host, { key: 'fc3a4bb1d6aad33a1a3699dd50a48d2f00e26a47', class: this.classNames(), id: this.componentId }, h("pds-button", { key: '7c555a209f7f8d6c82f909c726d32c1985f52e36', type: "button", variant: "unstyled", onClick: this.handleClick }, h("span", { key: '63e6e5b84be71c1943cb21ec2a5a89af40658577' }, this.value), h("pds-icon", { key: '49059150540623cad1036c1476a39731d1caed79', icon: copyIcon, size: "16px" }))));
50
50
  }
51
51
  static get is() { return "pds-copytext"; }
52
52
  static get encapsulation() { return "shadow"; }
@@ -19,7 +19,7 @@ export class PdsDivider {
19
19
  return classNames.join(' ');
20
20
  }
21
21
  render() {
22
- return (h(Host, { key: 'ee48ee45e0463abbd3cb7aa686f8d86928830ccb', id: this.componentId }, h("hr", { key: '4af739f85e502a7d9bff1b3581c283cb6ee53a0e', class: this.classNames() })));
22
+ return (h(Host, { key: 'c3a01882db1119b8397353aaed193813cba0bfb8', id: this.componentId }, h("hr", { key: 'fe20a28dbd2f10cec125df4dbb4ba7a2837628f1', class: this.classNames() })));
23
23
  }
24
24
  static get is() { return "pds-divider"; }
25
25
  static get encapsulation() { return "shadow"; }
@@ -63,7 +63,7 @@ export class PdsDropdownMenuItem {
63
63
  }, tabIndex: this.disabled ? -1 : 0, type: "button", onKeyDown: this.handleKeyDown, onFocus: this.handleFocus, onBlur: this.handleBlur, disabled: this.disabled, "aria-disabled": this.disabled ? 'true' : null }, h("slot", null)));
64
64
  }
65
65
  render() {
66
- return (h(Host, { key: 'b27f62c0f1cfe56e777b1a875b93954d4c9da00d', id: this.componentId, class: { 'is-disabled': this.disabled, 'destructive': !this.disabled && this.destructive }, onClick: () => !this.disabled && this.handleClick(), role: "none", tabIndex: -1, "aria-disabled": this.disabled ? 'true' : null }, this.renderElement()));
66
+ return (h(Host, { key: '89c2973b952f2a2d0b7054817c0532f8654ae279', id: this.componentId, class: { 'is-disabled': this.disabled, 'destructive': !this.disabled && this.destructive }, onClick: () => !this.disabled && this.handleClick(), role: "none", tabIndex: -1, "aria-disabled": this.disabled ? 'true' : null }, this.renderElement()));
67
67
  }
68
68
  static get is() { return "pds-dropdown-menu-item"; }
69
69
  static get encapsulation() { return "shadow"; }
@@ -8,7 +8,7 @@ export class PdsDropdownMenuSeparator {
8
8
  this.disabled = false;
9
9
  }
10
10
  render() {
11
- return (h(Host, { key: '71b19470921b7848e5f0c44ef82aa0d9f8ef2017', id: this.componentId }, h("hr", { key: 'efc84b6b3f3f35421c0af863fb2d4636e542773e' })));
11
+ return (h(Host, { key: '1058ea61d2ad7c311ee162b909df2531f3589e4c', id: this.componentId }, h("hr", { key: 'a8c2f69ef5fba5ea4ea74553fe72544e31eafb1b' })));
12
12
  }
13
13
  static get is() { return "pds-dropdown-menu-separator"; }
14
14
  static get encapsulation() { return "shadow"; }
@@ -240,7 +240,7 @@ export class PdsDropdownMenu {
240
240
  }
241
241
  }
242
242
  render() {
243
- return (h(Host, { key: '492d6a2baba8c0cf5e05a6c34b774900f5da6886', id: this.componentId }, h("slot", { key: '9d57ee287cff289693c941410bcc62bb9fb1da95', name: "trigger", onSlotchange: this.handleTriggerSlotChange }), h("pds-box", { key: '62ae569a3bf7f958c01cfe1a74d174e413763f72', "border-radius": "sm", display: "flex", direction: "column", class: "pds-dropdown-menu--panel is-hidden", shadow: "100", role: "menu", "aria-orientation": "vertical" }, h("slot", { key: 'ea6d26124c06683e4fde23bc29f955cb04468d7a', onSlotchange: this.handleSlotChange }))));
243
+ return (h(Host, { key: '1e4384c8ab3fb3ca73221dd7a7f156846e9b8274', id: this.componentId }, h("slot", { key: '0b3b532a025580b36bbe06f86bdb776d99e0c896', name: "trigger", onSlotchange: this.handleTriggerSlotChange }), h("pds-box", { key: '20229e833fa45ff5ce730d3a38e8faab582335c6', "border-radius": "sm", display: "flex", direction: "column", class: "pds-dropdown-menu--panel is-hidden", shadow: "100", role: "menu", "aria-orientation": "vertical" }, h("slot", { key: '47cad78c2e1b5150be13a399820fe64d09955e9d', onSlotchange: this.handleSlotChange }))));
244
244
  }
245
245
  static get is() { return "pds-dropdown-menu"; }
246
246
  static get encapsulation() { return "shadow"; }
@@ -15,9 +15,9 @@ export class PdsImage {
15
15
  this.loading = 'eager';
16
16
  }
17
17
  render() {
18
- return (h(Host, { key: 'a706be22398297ae7087239a3dc7474ae17ab358', class: {
18
+ return (h(Host, { key: 'bffcd250b41bcc96d6278f35be5287cf34ee91ac', class: {
19
19
  'pds-image': true,
20
- }, id: this.componentId }, h("img", { key: '37a465ed175ae298e174370246885fb6d7837112', alt: this.alt, height: this.height, loading: this.loading, sizes: this.sizes, src: this.src, srcset: this.srcset, width: this.width })));
20
+ }, id: this.componentId }, h("img", { key: 'b241c3d7fcb061b530e57ef4ca0aafe4801d9341', alt: this.alt, height: this.height, loading: this.loading, sizes: this.sizes, src: this.src, srcset: this.srcset, width: this.width })));
21
21
  }
22
22
  static get is() { return "pds-image"; }
23
23
  static get encapsulation() { return "shadow"; }
@@ -6,7 +6,7 @@
6
6
  --pds-input-border-radius: var(--pine-dimension-125);
7
7
  --pds-input-border-width: var(--pine-border-width-thin);
8
8
  --pds-input-padding-x: var(--pine-dimension-150);
9
- --pds-input-padding-y: var(--pine-dimension-xs);
9
+ --pds-input-padding-y: calc(var(--pine-dimension-xs) - var(--pine-border-width));
10
10
  --pds-input-font: var(--pine-typography-body);
11
11
  --pds-input-text-color: var(--pine-color-text-active);
12
12
  --pds-input-placeholder-color: var(--pine-color-text-placeholder);
@@ -19,7 +19,7 @@
19
19
  --pds-input-error-border-hover: var(--pine-color-border-danger-hover);
20
20
  --pds-input-addon-background: var(--pine-color-background-subtle);
21
21
  --pds-input-addon-color: var(--pine-color-text-secondary);
22
- --pds-input-field-min-height: calc(var(--pine-dimension-450) + 2px);
22
+ --pds-input-field-min-height: var(--pine-dimension-450);
23
23
  --box-shadow-focus: 0 0 0 1px #ffffff, 0 0 0 3px var(--pine-color-focus-ring);
24
24
  --box-shadow-focus-error: 0 0 0 1px #ffffff, 0 0 0 3px var(--pine-color-focus-ring-danger);
25
25
  display: inline;
@@ -93,7 +93,7 @@
93
93
  --pds-select-border: var(--pine-border-width-none);
94
94
  --pds-select-border-radius-end-end: var(--pine-dimension-none);
95
95
  --pds-select-border-radius-start-end: var(--pine-dimension-none);
96
- --pds-select-min-height: var(--pine-dimension-450);
96
+ --pds-select-min-height: calc(var(--pine-dimension-450) - calc(2 * var(--pine-border-width)));
97
97
  }
98
98
 
99
99
  /* stylelint-disable-next-line */
@@ -102,7 +102,7 @@
102
102
  --pds-select-border: var(--pine-border-width-none);
103
103
  --pds-select-border-radius-end-start: var(--pine-dimension-none);
104
104
  --pds-select-border-radius-start-start: var(--pine-dimension-none);
105
- --pds-select-min-height: var(--pine-dimension-450);
105
+ --pds-select-min-height: calc(var(--pine-dimension-450) - calc(2 * var(--pine-border-width)));
106
106
  }
107
107
 
108
108
  :host([aria-readonly=true]) input {
@@ -115,6 +115,10 @@
115
115
  border: var(--pds-input-border-width) solid var(--pds-input-border-color-disabled);
116
116
  }
117
117
 
118
+ :host([full-width=true]) {
119
+ width: 100%;
120
+ }
121
+
118
122
  :host([invalid=true])::part(prepend), :host([invalid=true])::part(append) {
119
123
  background-color: var(--pds-input-error-background);
120
124
  border: var(--pds-input-border-width) solid var(--pds-input-error-border);
@@ -123,15 +127,31 @@
123
127
  .pds-input {
124
128
  display: flex;
125
129
  flex-direction: column;
126
- gap: var(--pine-dimension-2xs);
130
+ }
131
+
132
+ .pds-input__label-wrapper {
133
+ align-items: center;
134
+ display: flex;
135
+ justify-content: space-between;
136
+ margin-block-end: var(--pine-dimension-2xs);
127
137
  }
128
138
 
129
139
  .pds-input__label {
130
140
  color: var(--pine-color-text-active);
131
- font: var(--pine-typography-body-sm-medium);
132
141
  margin-block-end: var(--pine-dimension-2xs);
133
142
  }
134
143
 
144
+ .pds-input__label-wrapper .pds-input__label {
145
+ margin-block-end: 0;
146
+ }
147
+
148
+ .pds-input__action {
149
+ align-items: center;
150
+ display: flex;
151
+ gap: var(--pine-dimension-xs);
152
+ margin-inline-start: var(--pine-dimension-xs);
153
+ }
154
+
135
155
  .pds-input__field-wrapper {
136
156
  align-items: center;
137
157
  display: flex;
@@ -204,7 +224,8 @@
204
224
 
205
225
  .pds-input__error-message,
206
226
  .pds-input__helper-message {
207
- font: var(--pine-typography-body-sm-medium);
227
+ color: var(--pine-color-text-message);
228
+ font: var(--pine-typography-body-sm);
208
229
  margin-block-end: var(--pine-dimension-none);
209
230
  margin-block-start: var(--pine-dimension-2xs);
210
231
  }
@@ -8,6 +8,7 @@ import { danger } from "@pine-ds/icons/icons";
8
8
  * @slot prefix - Content that is displayed visually within the input field before the input field
9
9
  * @slot prepend - Content to be displayed before the input field
10
10
  * @slot suffix - Content that is displayed visually within the input field after the input field
11
+ * @slot action - Content to be displayed in the label area, typically for help icons or links
11
12
  */
12
13
  export class PdsInput {
13
14
  constructor() {
@@ -29,6 +30,10 @@ export class PdsInput {
29
30
  * If true, the input has append content (focusable)
30
31
  */
31
32
  this.hasAppend = false;
33
+ /**
34
+ * If true, the input has action content in the label area
35
+ */
36
+ this.hasAction = false;
32
37
  /**
33
38
  * Determines the type of control that will be displayed
34
39
  * `'email'`, `'number'`, `'password'`, `'tel'`, `'text'`, `'url'`
@@ -125,18 +130,34 @@ export class PdsInput {
125
130
  }
126
131
  return null;
127
132
  }
133
+ renderAction() {
134
+ const hasAction = this.el.querySelector('[slot="action"]') !== null;
135
+ if (hasAction) {
136
+ return (h("div", { class: "pds-input__action", part: "action" }, h("slot", { name: "action" })));
137
+ }
138
+ return null;
139
+ }
128
140
  componentWillLoad() {
129
141
  this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
130
142
  this.hasPrefix = this.el.querySelector('[slot="prefix"]') !== null;
131
143
  this.hasSuffix = this.el.querySelector('[slot="suffix"]') !== null;
132
144
  this.hasPrepend = this.el.querySelector('[slot="prepend"]') !== null;
133
145
  this.hasAppend = this.el.querySelector('[slot="append"]') !== null;
146
+ this.hasAction = this.el.querySelector('[slot="action"]') !== null;
134
147
  // Store the original pdsInput event emitter
135
148
  this.originalPdsInput = this.pdsInput;
136
149
  }
150
+ connectedCallback() {
151
+ // Initialize ElementInternals for form association
152
+ if (this.el.attachInternals) {
153
+ this.internals = this.el.attachInternals();
154
+ }
155
+ }
137
156
  componentDidLoad() {
138
157
  this.debounceChanged();
139
158
  this.updateAddonWidths();
159
+ // Set initial form value
160
+ this.updateFormValue();
140
161
  }
141
162
  componentDidUpdate() {
142
163
  this.updateAddonWidths();
@@ -155,6 +176,8 @@ export class PdsInput {
155
176
  if (nativeInput && nativeInput.value !== value && !this.isComposing) {
156
177
  nativeInput.value = value;
157
178
  }
179
+ // Update form value when value changes
180
+ this.updateFormValue();
158
181
  }
159
182
  getValue() {
160
183
  return typeof this.value === 'number' ? this.value.toString() : (this.value || '').toString();
@@ -177,6 +200,47 @@ export class PdsInput {
177
200
  const newValue = value == null ? value : value.toString();
178
201
  this.pdsInput.emit({ value: newValue, event });
179
202
  }
203
+ /**
204
+ * Updates the form value using ElementInternals API
205
+ */
206
+ updateFormValue() {
207
+ if (this.internals && this.internals.setFormValue) {
208
+ const value = this.getValue();
209
+ this.internals.setFormValue(value || null);
210
+ // Set validity based on native input validation
211
+ if (this.nativeInput && this.internals && this.internals.setValidity) {
212
+ this.internals.setValidity(this.nativeInput.validity, this.nativeInput.validationMessage, this.nativeInput);
213
+ }
214
+ }
215
+ }
216
+ /**
217
+ * Form Associated Custom Elements API: Called when the form is reset
218
+ */
219
+ formResetCallback() {
220
+ this.value = '';
221
+ this.updateFormValue();
222
+ }
223
+ /**
224
+ * Form Associated Custom Elements API: Called when the form is disabled
225
+ */
226
+ formDisabledCallback(disabled) {
227
+ this.disabled = disabled;
228
+ }
229
+ /**
230
+ * Form Associated Custom Elements API: Called to restore form state
231
+ */
232
+ formStateRestoreCallback(state) {
233
+ if (typeof state === 'string') {
234
+ this.value = state;
235
+ }
236
+ else if (state instanceof FormData && this.name) {
237
+ // Extract value from FormData using the input's name
238
+ const value = state.get(this.name);
239
+ if (typeof value === 'string') {
240
+ this.value = value;
241
+ }
242
+ }
243
+ }
180
244
  render() {
181
245
  const { componentId, disabled, errorMessage, helperMessage, invalid = false, label, } = this;
182
246
  const value = this.getValue();
@@ -190,10 +254,11 @@ export class PdsInput {
190
254
  'has-prepend': this.hasPrepend,
191
255
  'has-append': this.hasAppend,
192
256
  };
193
- return (h(Host, { key: '6ae7251aeee049e0e4f3a66c7d947a3ceb7d2b26', "aria-disabled": this.disabled ? 'true' : null, "aria-readonly": this.readonly ? 'true' : null, "has-prefix": this.hasPrefix ? 'true' : null, "has-suffix": this.hasSuffix ? 'true' : null, "has-prepend": this.hasPrepend ? 'true' : null, "has-append": this.hasAppend ? 'true' : null }, h("div", { key: 'f397d329cf587b9bdf699a0c80a3bdb9c1de0b53', class: "pds-input" }, label && (h("label", { key: '7e5523268dd59acb3fbf2bd659f319cc458166c0', htmlFor: componentId, class: "pds-input__label" }, label, this.required && h("span", { key: 'f197ce55768d8409c9c7832af56e0a6bdc27e90a', class: "pds-input__required-indicator" }, " *"))), h("div", { key: 'ad92476c65ad280622a8aa8c731609aff8ec51a4', class: inputWrapperClasses }, this.renderPrepend(), this.renderPrefix(), h("input", Object.assign({ key: '187ee16cc7458af1dc06a7f424ce6bc2ffede359', ref: (input) => (this.nativeInput = input), class: "pds-input__field", "aria-describedby": assignDescription(componentId, invalid, helperMessage), "aria-invalid": invalid ? "true" : undefined, autocomplete: this.autocomplete, disabled: disabled, id: componentId, max: this.max, maxlength: this.maxlength, min: this.min, minlength: this.minlength, name: this.name, pattern: this.pattern, placeholder: this.placeholder, readOnly: this.readonly, required: this.required, step: this.step, type: this.type, value: value, onInput: this.onInputEvent, onChange: this.onChangeEvent, onBlur: this.onBlurEvent, onFocus: this.onFocusEvent, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd }, this.inheritedAttributes)), this.renderSuffix(), this.renderAppend()), helperMessage && (h("p", { key: 'c11daa2e4ed085033d90a3e9185dd7beb259aa9e', class: "pds-input__helper-message", id: messageId(componentId, 'helper') }, helperMessage)), errorMessage && (h("p", { key: 'd5adbb495bd7abd83655390e0d34cbdf527b656a', class: "pds-input__error-message", id: messageId(componentId, 'error') }, h("pds-icon", { key: 'd1a80c2d7e6f8389488fe2c0bb6dd1923536588a', icon: danger, size: "small" }), errorMessage)))));
257
+ return (h(Host, { key: 'eac6a9c04f98b10e4eb6cb3eee49c7ecf4e2d8a2', "aria-disabled": this.disabled ? 'true' : null, "aria-readonly": this.readonly ? 'true' : null, "has-prefix": this.hasPrefix ? 'true' : null, "has-suffix": this.hasSuffix ? 'true' : null, "has-prepend": this.hasPrepend ? 'true' : null, "has-append": this.hasAppend ? 'true' : null, "has-action": this.hasAction ? 'true' : null, "full-width": this.fullWidth ? 'true' : null }, h("div", { key: 'f67b518f3debb5f21cf48bd573126962d81deff5', class: "pds-input" }, label && (h("div", { key: 'a45a7bd41f7d3f8009d2bbf6bcc432c45c0fc733', class: "pds-input__label-wrapper" }, h("label", { key: '31b41266335a5197313d6aa44c277de57afe2f54', htmlFor: componentId, class: "pds-input__label" }, label, this.required && h("span", { key: '4113f0e0e85cb81c5a501e52b3489b125fdb1cbf', class: "pds-input__required-indicator" }, " *")), this.renderAction())), h("div", { key: 'ea99ed08f755dc72517fb1594054250a492340d0', class: inputWrapperClasses }, this.renderPrepend(), this.renderPrefix(), h("input", Object.assign({ key: 'b48f1ccb88fdaa96b9e81cb1c459d3bfd1b512e0', ref: (input) => (this.nativeInput = input), class: "pds-input__field", "aria-describedby": assignDescription(componentId, invalid, helperMessage), "aria-invalid": invalid ? "true" : undefined, autocomplete: this.autocomplete, disabled: disabled, id: componentId, max: this.max, maxlength: this.maxlength, min: this.min, minlength: this.minlength, name: this.name, pattern: this.pattern, placeholder: this.placeholder, readOnly: this.readonly, required: this.required, step: this.step, type: this.type, value: value, onInput: this.onInputEvent, onChange: this.onChangeEvent, onBlur: this.onBlurEvent, onFocus: this.onFocusEvent, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd }, this.inheritedAttributes)), this.renderSuffix(), this.renderAppend()), helperMessage && (h("p", { key: '3f84a41082d20917d9ab85051cdfbb7c2a6407ee', class: "pds-input__helper-message", id: messageId(componentId, 'helper') }, helperMessage)), errorMessage && (h("p", { key: 'd991dfdfc44a41640ef0070ce17e52b3f86b7782', class: "pds-input__error-message", id: messageId(componentId, 'error') }, h("pds-icon", { key: '5ea499d7d2f5ff2602dbf39f81df59c06116c6d2', icon: danger, size: "small" }), errorMessage)))));
194
258
  }
195
259
  static get is() { return "pds-input"; }
196
260
  static get encapsulation() { return "shadow"; }
261
+ static get formAssociated() { return true; }
197
262
  static get originalStyleUrls() {
198
263
  return {
199
264
  "$": ["pds-input.tokens.scss", "../../global/styles/utils/label.scss", "pds-input.scss"]
@@ -590,6 +655,25 @@ export class PdsInput {
590
655
  "attribute": "value",
591
656
  "reflect": false,
592
657
  "defaultValue": "''"
658
+ },
659
+ "fullWidth": {
660
+ "type": "boolean",
661
+ "mutable": false,
662
+ "complexType": {
663
+ "original": "boolean",
664
+ "resolved": "boolean",
665
+ "references": {}
666
+ },
667
+ "required": false,
668
+ "optional": true,
669
+ "docs": {
670
+ "tags": [],
671
+ "text": "Determines whether or not the input field takes full width of its container."
672
+ },
673
+ "getter": false,
674
+ "setter": false,
675
+ "attribute": "full-width",
676
+ "reflect": false
593
677
  }
594
678
  };
595
679
  }
@@ -599,6 +683,7 @@ export class PdsInput {
599
683
  "hasSuffix": {},
600
684
  "hasPrepend": {},
601
685
  "hasAppend": {},
686
+ "hasAction": {},
602
687
  "hasFocus": {}
603
688
  };
604
689
  }