@pine-ds/core 3.3.0 → 3.4.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 (588) 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 +1 -1
  9. package/components/pds-box2.js.map +1 -1
  10. package/components/pds-chip.js.map +1 -1
  11. package/components/pds-combobox.d.ts +11 -0
  12. package/components/pds-combobox.js +1771 -0
  13. package/components/pds-combobox.js.map +1 -0
  14. package/components/pds-copytext.js +1 -1
  15. package/components/pds-divider.js +1 -1
  16. package/components/pds-dropdown-menu-item.js +1 -1
  17. package/components/pds-dropdown-menu-separator.js +1 -1
  18. package/components/pds-dropdown-menu.js +4 -1320
  19. package/components/pds-dropdown-menu.js.map +1 -1
  20. package/components/pds-icon2.js +151 -18
  21. package/components/pds-icon2.js.map +1 -1
  22. package/components/pds-image.js +2 -2
  23. package/components/pds-input.js +15 -2
  24. package/components/pds-input.js.map +1 -1
  25. package/components/pds-link2.js +2 -2
  26. package/components/pds-loader2.js +1 -1
  27. package/components/pds-modal-content.js +2 -2
  28. package/components/pds-modal-footer.js +1 -1
  29. package/components/pds-modal-header.js +1 -1
  30. package/components/pds-modal.js +2 -2
  31. package/components/pds-popover.js +1 -1
  32. package/components/pds-progress.js +1 -1
  33. package/components/pds-property.d.ts +11 -0
  34. package/components/pds-property.js +55 -0
  35. package/components/pds-property.js.map +1 -0
  36. package/components/pds-radio.js +3 -3
  37. package/components/pds-row.js +1 -1
  38. package/components/pds-select.js +11 -2
  39. package/components/pds-select.js.map +1 -1
  40. package/components/pds-sortable-item.js +1 -1
  41. package/components/pds-sortable.js +1 -1
  42. package/components/pds-switch.js +3 -3
  43. package/components/pds-tab.js +3 -3
  44. package/components/pds-table-body.js +1 -1
  45. package/components/pds-table-cell2.js +2 -2
  46. package/components/pds-table-head-cell2.js +2 -2
  47. package/components/pds-table-head.js +1 -1
  48. package/components/pds-table-row.js +1 -1
  49. package/components/pds-table.js +1 -1
  50. package/components/pds-tabpanel.js +1 -1
  51. package/components/pds-tabs.js +1 -1
  52. package/components/pds-text2.js +1 -1
  53. package/components/pds-text2.js.map +1 -1
  54. package/components/pds-textarea.js +18 -5
  55. package/components/pds-textarea.js.map +1 -1
  56. package/components/pds-toast.js +3 -3
  57. package/components/pds-tooltip.js +1 -1
  58. package/dist/cjs/floating-ui.dom-Bz4BD-cr.js +1326 -0
  59. package/dist/cjs/floating-ui.dom-Bz4BD-cr.js.map +1 -0
  60. package/dist/cjs/{index-B0qLG6KJ.js → index-BfqrB2cC.js} +3 -3
  61. package/dist/{esm-es5/index-DpOSrebJ.js.map → cjs/index-BfqrB2cC.js.map} +1 -1
  62. package/dist/cjs/loader.cjs.js +1 -1
  63. package/dist/cjs/mock-pds-modal.cjs.entry.js +1 -1
  64. package/dist/cjs/pds-accordion.cjs.entry.js +1 -1
  65. package/dist/cjs/pds-avatar.cjs.entry.js +1 -1
  66. package/dist/cjs/pds-box.cjs.entry.js.map +1 -1
  67. package/dist/cjs/pds-box.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 +1 -1
  70. package/dist/cjs/pds-chip.cjs.entry.js +1 -1
  71. package/dist/cjs/pds-chip.cjs.entry.js.map +1 -1
  72. package/dist/cjs/pds-chip.entry.cjs.js.map +1 -1
  73. package/dist/cjs/pds-combobox.cjs.entry.js +1717 -0
  74. package/dist/cjs/pds-combobox.cjs.entry.js.map +1 -0
  75. package/dist/cjs/pds-combobox.entry.cjs.js.map +1 -0
  76. package/dist/cjs/pds-copytext.cjs.entry.js +2 -2
  77. package/dist/cjs/pds-divider.cjs.entry.js +1 -1
  78. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +1 -1
  79. package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +1 -1
  80. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +4 -1320
  81. package/dist/cjs/pds-dropdown-menu.cjs.entry.js.map +1 -1
  82. package/dist/cjs/pds-dropdown-menu.entry.cjs.js.map +1 -1
  83. package/dist/cjs/pds-icon.cjs.entry.js +148 -15
  84. package/dist/cjs/pds-icon.cjs.entry.js.map +1 -1
  85. package/dist/cjs/pds-icon.entry.cjs.js.map +1 -1
  86. package/dist/cjs/pds-image.cjs.entry.js +2 -2
  87. package/dist/cjs/pds-input.cjs.entry.js +15 -3
  88. package/dist/cjs/pds-input.cjs.entry.js.map +1 -1
  89. package/dist/cjs/pds-input.entry.cjs.js.map +1 -1
  90. package/dist/cjs/pds-link.cjs.entry.js +3 -3
  91. package/dist/cjs/pds-loader.cjs.entry.js +1 -1
  92. package/dist/cjs/pds-modal-content.cjs.entry.js +2 -2
  93. package/dist/cjs/pds-modal-footer.cjs.entry.js +1 -1
  94. package/dist/cjs/pds-modal-header.cjs.entry.js +1 -1
  95. package/dist/cjs/pds-modal.cjs.entry.js +2 -2
  96. package/dist/cjs/pds-popover.cjs.entry.js +1 -1
  97. package/dist/cjs/pds-progress.cjs.entry.js +1 -1
  98. package/dist/cjs/pds-property.cjs.entry.js +24 -0
  99. package/dist/cjs/pds-property.cjs.entry.js.map +1 -0
  100. package/dist/cjs/pds-property.entry.cjs.js.map +1 -0
  101. package/dist/cjs/pds-radio.cjs.entry.js +4 -4
  102. package/dist/cjs/pds-row.cjs.entry.js +1 -1
  103. package/dist/cjs/pds-select.cjs.entry.js +12 -3
  104. package/dist/cjs/pds-select.cjs.entry.js.map +1 -1
  105. package/dist/cjs/pds-select.entry.cjs.js.map +1 -1
  106. package/dist/cjs/pds-sortable-item.cjs.entry.js +2 -2
  107. package/dist/cjs/pds-sortable.cjs.entry.js +1 -1
  108. package/dist/cjs/pds-switch.cjs.entry.js +4 -4
  109. package/dist/cjs/pds-tab.cjs.entry.js +3 -3
  110. package/dist/cjs/pds-table-body.cjs.entry.js +1 -1
  111. package/dist/cjs/pds-table-cell.cjs.entry.js +2 -2
  112. package/dist/cjs/pds-table-head-cell.cjs.entry.js +3 -3
  113. package/dist/cjs/pds-table-head.cjs.entry.js +1 -1
  114. package/dist/cjs/pds-table-row.cjs.entry.js +1 -1
  115. package/dist/cjs/pds-table.cjs.entry.js +1 -1
  116. package/dist/cjs/pds-tabpanel.cjs.entry.js +1 -1
  117. package/dist/cjs/pds-tabs.cjs.entry.js +1 -1
  118. package/dist/cjs/pds-text.cjs.entry.js +1 -1
  119. package/dist/cjs/pds-text.cjs.entry.js.map +1 -1
  120. package/dist/cjs/pds-text.entry.cjs.js.map +1 -1
  121. package/dist/cjs/pds-textarea.cjs.entry.js +18 -6
  122. package/dist/cjs/pds-textarea.cjs.entry.js.map +1 -1
  123. package/dist/cjs/pds-textarea.entry.cjs.js.map +1 -1
  124. package/dist/cjs/pds-toast.cjs.entry.js +3 -3
  125. package/dist/cjs/pds-tooltip.cjs.entry.js +1 -1
  126. package/dist/cjs/pine-core.cjs.js +1 -1
  127. package/dist/collection/collection-manifest.json +2 -0
  128. package/dist/collection/components/pds-combobox/pds-combobox.css +223 -0
  129. package/dist/collection/components/pds-combobox/pds-combobox.js +783 -0
  130. package/dist/collection/components/pds-combobox/pds-combobox.js.map +1 -0
  131. package/dist/collection/components/pds-combobox/stories/pds-combobox.stories.js +194 -0
  132. package/dist/collection/components/pds-copytext/pds-copytext.js +1 -1
  133. package/dist/collection/components/pds-divider/pds-divider.js +1 -1
  134. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js +1 -1
  135. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js +1 -1
  136. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +1 -1
  137. package/dist/collection/components/pds-image/pds-image.js +2 -2
  138. package/dist/collection/components/pds-input/pds-input.css +18 -1
  139. package/dist/collection/components/pds-input/pds-input.js +15 -1
  140. package/dist/collection/components/pds-input/pds-input.js.map +1 -1
  141. package/dist/collection/components/pds-input/stories/pds-input.stories.js +170 -72
  142. package/dist/collection/components/pds-link/pds-link.js +2 -2
  143. package/dist/collection/components/pds-loader/pds-loader.js +1 -1
  144. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js +2 -2
  145. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js +1 -1
  146. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js +1 -1
  147. package/dist/collection/components/pds-modal/pds-modal.js +2 -2
  148. package/dist/collection/components/pds-modal/test/mock-pds-modal.js +1 -1
  149. package/dist/collection/components/pds-popover/pds-popover.js +1 -1
  150. package/dist/collection/components/pds-progress/pds-progress.js +1 -1
  151. package/dist/collection/components/pds-property/pds-property.css +4 -0
  152. package/dist/collection/components/pds-property/pds-property.js +71 -0
  153. package/dist/collection/components/pds-property/pds-property.js.map +1 -0
  154. package/dist/collection/components/pds-property/stories/pds-property.stories.js +20 -0
  155. package/dist/collection/components/pds-radio/pds-radio.js +3 -3
  156. package/dist/collection/components/pds-row/pds-row.js +1 -1
  157. package/dist/collection/components/pds-select/pds-select.css +19 -1
  158. package/dist/collection/components/pds-select/pds-select.js +13 -1
  159. package/dist/collection/components/pds-select/pds-select.js.map +1 -1
  160. package/dist/collection/components/pds-select/stories/pds-select.stories.js +42 -0
  161. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +1 -1
  162. package/dist/collection/components/pds-sortable/pds-sortable.js +1 -1
  163. package/dist/collection/components/pds-switch/pds-switch.js +3 -3
  164. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js +1 -1
  165. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +2 -2
  166. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +1 -1
  167. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +2 -2
  168. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +1 -1
  169. package/dist/collection/components/pds-table/pds-table.js +1 -1
  170. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js +3 -3
  171. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +1 -1
  172. package/dist/collection/components/pds-tabs/pds-tabs.js +1 -1
  173. package/dist/collection/components/pds-text/pds-text.js +4 -1
  174. package/dist/collection/components/pds-text/pds-text.js.map +1 -1
  175. package/dist/collection/components/pds-textarea/pds-textarea.css +18 -0
  176. package/dist/collection/components/pds-textarea/pds-textarea.js +21 -5
  177. package/dist/collection/components/pds-textarea/pds-textarea.js.map +1 -1
  178. package/dist/collection/components/pds-textarea/stories/pds-textarea.stories.js +48 -1
  179. package/dist/collection/components/pds-toast/pds-toast.js +3 -3
  180. package/dist/collection/components/pds-tooltip/pds-tooltip.js +1 -1
  181. package/dist/docs.json +748 -57
  182. package/dist/esm/floating-ui.dom-D_FwyeSw.js +1321 -0
  183. package/dist/esm/floating-ui.dom-D_FwyeSw.js.map +1 -0
  184. package/dist/esm/{index-DpOSrebJ.js → index-CzVv99mW.js} +3 -3
  185. package/dist/{cjs/index-B0qLG6KJ.js.map → esm/index-CzVv99mW.js.map} +1 -1
  186. package/dist/esm/loader.js +1 -1
  187. package/dist/esm/mock-pds-modal.entry.js +1 -1
  188. package/dist/esm/pds-accordion.entry.js +1 -1
  189. package/dist/esm/pds-avatar.entry.js +1 -1
  190. package/dist/esm/pds-box.entry.js.map +1 -1
  191. package/dist/esm/pds-button.entry.js +1 -1
  192. package/dist/esm/pds-checkbox.entry.js +1 -1
  193. package/dist/esm/pds-chip.entry.js +1 -1
  194. package/dist/esm/pds-chip.entry.js.map +1 -1
  195. package/dist/esm/pds-combobox.entry.js +1715 -0
  196. package/dist/esm/pds-combobox.entry.js.map +1 -0
  197. package/dist/esm/pds-copytext.entry.js +2 -2
  198. package/dist/esm/pds-divider.entry.js +1 -1
  199. package/dist/esm/pds-dropdown-menu-item.entry.js +1 -1
  200. package/dist/esm/pds-dropdown-menu-separator.entry.js +1 -1
  201. package/dist/esm/pds-dropdown-menu.entry.js +2 -1318
  202. package/dist/esm/pds-dropdown-menu.entry.js.map +1 -1
  203. package/dist/esm/pds-icon.entry.js +148 -15
  204. package/dist/esm/pds-icon.entry.js.map +1 -1
  205. package/dist/esm/pds-image.entry.js +2 -2
  206. package/dist/esm/pds-input.entry.js +15 -3
  207. package/dist/esm/pds-input.entry.js.map +1 -1
  208. package/dist/esm/pds-link.entry.js +3 -3
  209. package/dist/esm/pds-loader.entry.js +1 -1
  210. package/dist/esm/pds-modal-content.entry.js +2 -2
  211. package/dist/esm/pds-modal-footer.entry.js +1 -1
  212. package/dist/esm/pds-modal-header.entry.js +1 -1
  213. package/dist/esm/pds-modal.entry.js +2 -2
  214. package/dist/esm/pds-popover.entry.js +1 -1
  215. package/dist/esm/pds-progress.entry.js +1 -1
  216. package/dist/esm/pds-property.entry.js +22 -0
  217. package/dist/esm/pds-property.entry.js.map +1 -0
  218. package/dist/esm/pds-radio.entry.js +4 -4
  219. package/dist/esm/pds-row.entry.js +1 -1
  220. package/dist/esm/pds-select.entry.js +13 -4
  221. package/dist/esm/pds-select.entry.js.map +1 -1
  222. package/dist/esm/pds-sortable-item.entry.js +2 -2
  223. package/dist/esm/pds-sortable.entry.js +1 -1
  224. package/dist/esm/pds-switch.entry.js +4 -4
  225. package/dist/esm/pds-tab.entry.js +3 -3
  226. package/dist/esm/pds-table-body.entry.js +1 -1
  227. package/dist/esm/pds-table-cell.entry.js +2 -2
  228. package/dist/esm/pds-table-head-cell.entry.js +3 -3
  229. package/dist/esm/pds-table-head.entry.js +1 -1
  230. package/dist/esm/pds-table-row.entry.js +1 -1
  231. package/dist/esm/pds-table.entry.js +1 -1
  232. package/dist/esm/pds-tabpanel.entry.js +1 -1
  233. package/dist/esm/pds-tabs.entry.js +1 -1
  234. package/dist/esm/pds-text.entry.js +1 -1
  235. package/dist/esm/pds-text.entry.js.map +1 -1
  236. package/dist/esm/pds-textarea.entry.js +18 -6
  237. package/dist/esm/pds-textarea.entry.js.map +1 -1
  238. package/dist/esm/pds-toast.entry.js +3 -3
  239. package/dist/esm/pds-tooltip.entry.js +1 -1
  240. package/dist/esm/pine-core.js +1 -1
  241. package/dist/esm-es5/floating-ui.dom-D_FwyeSw.js +2 -0
  242. package/dist/esm-es5/floating-ui.dom-D_FwyeSw.js.map +1 -0
  243. package/dist/esm-es5/{index-DpOSrebJ.js → index-CzVv99mW.js} +1 -1
  244. package/dist/{esm/index-DpOSrebJ.js.map → esm-es5/index-CzVv99mW.js.map} +1 -1
  245. package/dist/esm-es5/loader.js +1 -1
  246. package/dist/esm-es5/mock-pds-modal.entry.js +1 -1
  247. package/dist/esm-es5/pds-accordion.entry.js +1 -1
  248. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  249. package/dist/esm-es5/pds-box.entry.js.map +1 -1
  250. package/dist/esm-es5/pds-button.entry.js +1 -1
  251. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  252. package/dist/esm-es5/pds-chip.entry.js +1 -1
  253. package/dist/esm-es5/pds-chip.entry.js.map +1 -1
  254. package/dist/esm-es5/pds-combobox.entry.js +3 -0
  255. package/dist/esm-es5/pds-combobox.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-separator.entry.js +1 -1
  260. package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
  261. package/dist/esm-es5/pds-dropdown-menu.entry.js.map +1 -1
  262. package/dist/esm-es5/pds-icon.entry.js +1 -1
  263. package/dist/esm-es5/pds-icon.entry.js.map +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-popover.entry.js +1 -1
  274. package/dist/esm-es5/pds-progress.entry.js +1 -1
  275. package/dist/esm-es5/pds-property.entry.js +2 -0
  276. package/dist/esm-es5/pds-property.entry.js.map +1 -0
  277. package/dist/esm-es5/pds-radio.entry.js +1 -1
  278. package/dist/esm-es5/pds-row.entry.js +1 -1
  279. package/dist/esm-es5/pds-select.entry.js +1 -1
  280. package/dist/esm-es5/pds-select.entry.js.map +1 -1
  281. package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
  282. package/dist/esm-es5/pds-sortable.entry.js +1 -1
  283. package/dist/esm-es5/pds-switch.entry.js +1 -1
  284. package/dist/esm-es5/pds-tab.entry.js +1 -1
  285. package/dist/esm-es5/pds-table-body.entry.js +1 -1
  286. package/dist/esm-es5/pds-table-cell.entry.js +1 -1
  287. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  288. package/dist/esm-es5/pds-table-head.entry.js +1 -1
  289. package/dist/esm-es5/pds-table-row.entry.js +1 -1
  290. package/dist/esm-es5/pds-table.entry.js +1 -1
  291. package/dist/esm-es5/pds-tabpanel.entry.js +1 -1
  292. package/dist/esm-es5/pds-tabs.entry.js +1 -1
  293. package/dist/esm-es5/pds-text.entry.js +1 -1
  294. package/dist/esm-es5/pds-text.entry.js.map +1 -1
  295. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  296. package/dist/esm-es5/pds-textarea.entry.js.map +1 -1
  297. package/dist/esm-es5/pds-toast.entry.js +1 -1
  298. package/dist/esm-es5/pds-tooltip.entry.js +1 -1
  299. package/dist/esm-es5/pine-core.js +1 -1
  300. package/dist/pine-core/{p-78f29270.entry.js → p-000ed179.entry.js} +2 -2
  301. package/dist/pine-core/{p-de550d9e.system.entry.js → p-0c6e9ba0.system.entry.js} +2 -2
  302. package/dist/pine-core/p-160c6806.system.entry.js +2 -0
  303. package/dist/pine-core/p-160c6806.system.entry.js.map +1 -0
  304. package/dist/pine-core/p-1e056ca3.system.entry.js +2 -0
  305. package/dist/pine-core/p-1e056ca3.system.entry.js.map +1 -0
  306. package/dist/pine-core/{p-cc21ddcc.system.entry.js → p-1ef5f46b.system.entry.js} +2 -2
  307. package/dist/pine-core/p-256d15bc.system.entry.js +2 -0
  308. package/dist/pine-core/{p-80f36506.entry.js → p-27b52fc5.entry.js} +2 -2
  309. package/dist/pine-core/{p-04195bdb.entry.js → p-2a2cd90d.entry.js} +2 -2
  310. package/dist/pine-core/{p-07f45626.entry.js → p-2f0aedfa.entry.js} +2 -2
  311. package/dist/pine-core/{p-27c0ffda.system.entry.js → p-2fbc5f8c.system.entry.js} +2 -2
  312. package/dist/pine-core/{p-b2820acd.entry.js → p-30449e82.entry.js} +2 -2
  313. package/dist/pine-core/p-307b456a.entry.js +2 -0
  314. package/dist/pine-core/p-307b456a.entry.js.map +1 -0
  315. package/dist/pine-core/{p-f6b226df.entry.js → p-31fe86a6.entry.js} +2 -2
  316. package/dist/pine-core/p-357b6dd6.system.entry.js +2 -0
  317. package/dist/pine-core/{p-fdf3a5ff.entry.js → p-36d3352a.entry.js} +2 -2
  318. package/dist/pine-core/{p-e9f004c5.entry.js → p-38248640.entry.js} +2 -2
  319. package/dist/pine-core/{p-aeaae417.system.entry.js → p-383af1d4.system.entry.js} +2 -2
  320. package/dist/pine-core/{p-f99c59a8.entry.js → p-39fbd912.entry.js} +2 -2
  321. package/dist/pine-core/p-3b43a1ea.entry.js +2 -0
  322. package/dist/pine-core/{p-a52b1413.entry.js.map → p-3b43a1ea.entry.js.map} +1 -1
  323. package/dist/pine-core/{p-5c4aceb7.entry.js → p-3bbb6fc1.entry.js} +2 -2
  324. package/dist/pine-core/p-3df372d1.entry.js +3 -0
  325. package/dist/pine-core/p-3df372d1.entry.js.map +1 -0
  326. package/dist/pine-core/{p-39a31730.system.entry.js → p-3fd658ad.system.entry.js} +2 -2
  327. package/dist/pine-core/p-447fa824.system.entry.js +2 -0
  328. package/dist/pine-core/p-447fa824.system.entry.js.map +1 -0
  329. package/dist/pine-core/p-495a206d.entry.js +2 -0
  330. package/dist/pine-core/p-495a206d.entry.js.map +1 -0
  331. package/dist/pine-core/p-4a69106a.system.entry.js +2 -0
  332. package/dist/pine-core/p-4a69106a.system.entry.js.map +1 -0
  333. package/dist/pine-core/{p-44f10d3c.entry.js → p-4d22ca40.entry.js} +2 -2
  334. package/dist/pine-core/p-5033d9e8.entry.js +2 -0
  335. package/dist/pine-core/{p-a98cda38.system.entry.js → p-5706c81b.system.entry.js} +2 -2
  336. package/dist/pine-core/p-5a1af174.entry.js +2 -0
  337. package/dist/pine-core/p-5a1af174.entry.js.map +1 -0
  338. package/dist/pine-core/{p-ddcc4932.entry.js → p-5fdbbab9.entry.js} +2 -2
  339. package/dist/pine-core/{p-78327c08.system.entry.js → p-61b7ff04.system.entry.js} +2 -2
  340. package/dist/pine-core/{p-111e7da2.system.entry.js → p-62bc2080.system.entry.js} +2 -2
  341. package/dist/pine-core/{p-fb2fb435.entry.js → p-64c897bb.entry.js} +2 -2
  342. package/dist/pine-core/{p-1d395d27.entry.js → p-667eb50e.entry.js} +2 -2
  343. package/dist/pine-core/{p-51cc93b3.entry.js → p-6d36fae0.entry.js} +2 -2
  344. package/dist/pine-core/p-6ef51211.entry.js +2 -0
  345. package/dist/pine-core/{p-Mqxw-gWj.system.js.map → p-6tdMlyau.system.js.map} +1 -1
  346. package/dist/pine-core/p-708c66c2.entry.js +2 -0
  347. package/dist/pine-core/p-708c66c2.entry.js.map +1 -0
  348. package/dist/pine-core/p-73412ca9.system.entry.js.map +1 -1
  349. package/dist/pine-core/{p-13481ef5.system.entry.js → p-7a431264.system.entry.js} +2 -2
  350. package/dist/pine-core/p-7a431264.system.entry.js.map +1 -0
  351. package/dist/pine-core/{p-5a437fcd.system.entry.js → p-7da6180d.system.entry.js} +2 -2
  352. package/dist/pine-core/{p-19c01019.entry.js → p-80246c79.entry.js} +2 -2
  353. package/dist/pine-core/{p-bf699bad.entry.js → p-822e90ee.entry.js} +2 -2
  354. package/dist/pine-core/p-822e90ee.entry.js.map +1 -0
  355. package/dist/pine-core/{p-d35b3494.entry.js → p-82388e60.entry.js} +2 -2
  356. package/dist/pine-core/p-90a8d1bd.entry.js +2 -0
  357. package/dist/pine-core/p-90a8d1bd.entry.js.map +1 -0
  358. package/dist/pine-core/{p-c1909a5d.system.entry.js → p-91520803.system.entry.js} +2 -2
  359. package/dist/pine-core/{p-ab7e4700.system.entry.js → p-982edcaf.system.entry.js} +2 -2
  360. package/dist/pine-core/p-9b8a3659.system.entry.js +2 -0
  361. package/dist/pine-core/{p-d553e05c.system.entry.js → p-9cc1844a.system.entry.js} +2 -2
  362. package/dist/pine-core/{p-ef9ed75a.system.entry.js → p-9d8bb7f7.system.entry.js} +2 -2
  363. package/dist/pine-core/{p-f46c4618.system.entry.js → p-9df7ba40.system.entry.js} +2 -2
  364. package/dist/pine-core/{p-9c01e81b.system.entry.js → p-9e22eab5.system.entry.js} +2 -2
  365. package/dist/pine-core/p-B-xQ7Q5Y.system.js.map +1 -0
  366. package/dist/pine-core/p-BHZ6CSg4.system.js.map +1 -1
  367. package/dist/pine-core/{p-A4_UN20E.system.js.map → p-BJRnZhwF.system.js.map} +1 -1
  368. package/dist/pine-core/{p-C2d75seA.system.js.map → p-BPlIGHM4.system.js.map} +1 -1
  369. package/dist/pine-core/p-BSg_Clcf.system.js.map +1 -0
  370. package/dist/pine-core/{p-B5JFBYFw.system.js.map → p-Bdnq3aMi.system.js.map} +1 -1
  371. package/dist/pine-core/{p-PkSWq78_.system.js.map → p-Bgszb25I.system.js.map} +1 -1
  372. package/dist/pine-core/{p-DeW-6a7f.system.js.map → p-BlpTiOHo.system.js.map} +1 -1
  373. package/dist/pine-core/{p-BaAcO8Mz.system.js.map → p-Bok_Wwo5.system.js.map} +1 -1
  374. package/dist/pine-core/{p-CkoeYrxa.system.js.map → p-Bpn2QYa2.system.js.map} +1 -1
  375. package/dist/pine-core/{p-D2UtaGL2.system.js.map → p-Bq1H4MPi.system.js.map} +1 -1
  376. package/dist/pine-core/p-BsL2GDnH.system.js +1 -1
  377. package/dist/pine-core/{p-UhZHDNH2.system.js.map → p-C47kwjaJ.system.js.map} +1 -1
  378. package/dist/pine-core/{p-BxBtA60x.system.js.map → p-CD40xhZg.system.js.map} +1 -1
  379. package/dist/pine-core/{p-BE1qV1Jc.system.js.map → p-CLsVcJCa.system.js.map} +1 -1
  380. package/dist/pine-core/{p-CNkajx9x.system.js.map → p-CLscfXhT.system.js.map} +1 -1
  381. package/dist/pine-core/{p-CcsZC7UR.system.js.map → p-CTJnwc4I.system.js.map} +1 -1
  382. package/dist/pine-core/p-CUHK9C55.system.js.map +1 -0
  383. package/dist/pine-core/p-CaJHqbdu.system.js.map +1 -0
  384. package/dist/pine-core/{p-BHp2IZGP.system.js.map → p-Ci1ZzxGS.system.js.map} +1 -1
  385. package/dist/pine-core/{p-BcuE4ZrB.system.js.map → p-ClrDO1lY.system.js.map} +1 -1
  386. package/dist/pine-core/{p-PPIMiuZX.system.js.map → p-Cly-fzRE.system.js.map} +1 -1
  387. package/dist/pine-core/{p-BEYGfY83.system.js.map → p-CtuIf6LK.system.js.map} +1 -1
  388. package/dist/pine-core/p-Ctwx2R4g.system.js.map +1 -0
  389. package/dist/pine-core/{p-3D0orTx_.system.js.map → p-CuHZffVk.system.js.map} +1 -1
  390. package/dist/pine-core/{p-DpOSrebJ.js → p-CzVv99mW.js} +1 -1
  391. package/dist/pine-core/{p-DpOSrebJ.js.map → p-CzVv99mW.js.map} +1 -1
  392. package/dist/pine-core/{p-CGABEyvz.system.js.map → p-D1LdgjO0.system.js.map} +1 -1
  393. package/dist/pine-core/p-DJPo1iGw.system.js.map +1 -0
  394. package/dist/pine-core/{p-BPQAcMLl.system.js.map → p-DKGUedTE.system.js.map} +1 -1
  395. package/dist/pine-core/{p-EqAbQY8l.system.js.map → p-DNqc41uY.system.js.map} +1 -1
  396. package/dist/pine-core/{p-CNYB6FL-.system.js.map → p-DQCWs_Ih.system.js.map} +1 -1
  397. package/dist/pine-core/p-DX9uSGoE.system.js.map +1 -0
  398. package/dist/pine-core/p-D_FwyeSw.js +2 -0
  399. package/dist/pine-core/p-D_FwyeSw.js.map +1 -0
  400. package/dist/pine-core/{p-DyDReOdO.system.js → p-DiBM9O5Q.system.js} +1 -1
  401. package/dist/pine-core/{p-DyDReOdO.system.js.map → p-DiBM9O5Q.system.js.map} +1 -1
  402. package/dist/pine-core/{p--YvWqEjm.system.js.map → p-DwwM3-D4.system.js.map} +1 -1
  403. package/dist/pine-core/{p-CS2nVL5p.system.js.map → p-DxydR7R6.system.js.map} +1 -1
  404. package/dist/pine-core/{p-ClVQjta4.system.js.map → p-Gn2xhxDz.system.js.map} +1 -1
  405. package/dist/pine-core/{p-CTPMEWZT.system.js.map → p-PuPjQNmU.system.js.map} +1 -1
  406. package/dist/pine-core/{p-BISuGf0f.system.js.map → p-PwBWYqtO.system.js.map} +1 -1
  407. package/dist/pine-core/{p-DVhX1_nD.system.js.map → p-U_efBpHV.system.js.map} +1 -1
  408. package/dist/pine-core/p-ZCkmy1Gu.system.js +2 -0
  409. package/dist/pine-core/p-ZCkmy1Gu.system.js.map +1 -0
  410. package/dist/pine-core/{p-86329612.entry.js → p-a4d19fb1.entry.js} +2 -2
  411. package/dist/pine-core/p-af5c9fbd.system.entry.js +2 -0
  412. package/dist/pine-core/{p-10e2feff.entry.js → p-b214c043.entry.js} +2 -2
  413. package/dist/pine-core/{p-8b6b0db7.entry.js → p-b5dc7a18.entry.js} +2 -2
  414. package/dist/pine-core/p-b5dc7a18.entry.js.map +1 -0
  415. package/dist/pine-core/{p-60fbeb1c.entry.js → p-b6d18604.entry.js} +2 -2
  416. package/dist/pine-core/{p-DgTp_KeO.system.js.map → p-b6lYO9O3.system.js.map} +1 -1
  417. package/dist/pine-core/{p-d6d453d8.system.entry.js → p-b93825c4.system.entry.js} +2 -2
  418. package/dist/pine-core/{p-4b2aab79.system.entry.js → p-c5a7c8e9.system.entry.js} +2 -2
  419. package/dist/pine-core/{p-6a7936e7.system.entry.js → p-c5da4a97.system.entry.js} +2 -2
  420. package/dist/pine-core/p-c93786f1.system.entry.js +2 -0
  421. package/dist/pine-core/{p-959c8247.system.entry.js → p-cc15bf6c.system.entry.js} +2 -2
  422. package/dist/pine-core/p-d0ec666b.entry.js +2 -0
  423. package/dist/pine-core/p-d21156cf.entry.js +2 -0
  424. package/dist/pine-core/p-d21156cf.entry.js.map +1 -0
  425. package/dist/pine-core/p-d2d6b3a6.system.entry.js +2 -0
  426. package/dist/pine-core/p-d2d6b3a6.system.entry.js.map +1 -0
  427. package/dist/pine-core/{p-942fa145.system.entry.js → p-d451c7b5.system.entry.js} +2 -2
  428. package/dist/pine-core/{p-065208a1.system.entry.js → p-d64527b2.system.entry.js} +2 -2
  429. package/dist/pine-core/p-d64527b2.system.entry.js.map +1 -0
  430. package/dist/pine-core/{p-0a87e2fc.system.entry.js → p-d6b1f60d.system.entry.js} +2 -2
  431. package/dist/pine-core/{p-d28768d1.entry.js → p-d989287d.entry.js} +2 -2
  432. package/dist/pine-core/{p-a556a328.system.entry.js → p-e0a35811.system.entry.js} +2 -2
  433. package/dist/pine-core/{p-7bb3a5d4.system.entry.js → p-e0a6ba6f.system.entry.js} +2 -2
  434. package/dist/pine-core/{p-c5e1ed09.system.entry.js → p-e416f7a8.system.entry.js} +2 -2
  435. package/dist/pine-core/{p-c551191a.system.entry.js → p-e53547e2.system.entry.js} +2 -2
  436. package/dist/pine-core/p-e68dd704.system.entry.js +2 -0
  437. package/dist/pine-core/p-e68dd704.system.entry.js.map +1 -0
  438. package/dist/pine-core/{p-d0adaca0.system.entry.js → p-e7322ff9.system.entry.js} +2 -2
  439. package/dist/pine-core/{p-79cb7835.system.entry.js → p-e8a4eafa.system.entry.js} +2 -2
  440. package/dist/pine-core/{p-96e9774e.system.entry.js → p-ec1c3452.system.entry.js} +2 -2
  441. package/dist/pine-core/{p-76e35041.entry.js → p-ee0117a2.entry.js} +2 -2
  442. package/dist/pine-core/{p-833b2170.system.entry.js → p-eef645bd.system.entry.js} +2 -2
  443. package/dist/pine-core/{p-8f06b020.entry.js → p-ef08f005.entry.js} +2 -2
  444. package/dist/pine-core/p-f256dd8a.entry.js.map +1 -1
  445. package/dist/pine-core/{p-0a11384e.entry.js → p-f29baa16.entry.js} +2 -2
  446. package/dist/pine-core/{p-2007a0b5.entry.js → p-f30b1479.entry.js} +2 -2
  447. package/dist/pine-core/p-f455deb5.entry.js +2 -0
  448. package/dist/pine-core/{p-8180b641.entry.js → p-f7c02b89.entry.js} +2 -2
  449. package/dist/pine-core/p-f9005ac9.entry.js +2 -0
  450. package/dist/pine-core/p-faaa1caa.system.entry.js +4 -0
  451. package/dist/pine-core/p-faaa1caa.system.entry.js.map +1 -0
  452. package/dist/pine-core/{p-99b5e1a5.entry.js → p-fd3b7077.entry.js} +2 -2
  453. package/dist/pine-core/{p-3ea415b0.entry.js → p-fe73a67f.entry.js} +2 -2
  454. package/dist/pine-core/{p-BwHnCFqU.system.js.map → p-ipxZYSGJ.system.js.map} +1 -1
  455. package/dist/pine-core/p-lWwPttyv.system.js.map +1 -0
  456. package/dist/pine-core/{p-CIc_XeAg.system.js.map → p-mWJg54bF.system.js.map} +1 -1
  457. package/dist/pine-core/{p-CTWkFhWu.system.js.map → p-y1DacLeb.system.js.map} +1 -1
  458. package/dist/pine-core/{p-C0oRS1F9.system.js.map → p-ydqm5FGv.system.js.map} +1 -1
  459. package/dist/pine-core/{p-DGyATOIf.system.js.map → p-zZHye4hT.system.js.map} +1 -1
  460. package/dist/pine-core/pds-box.entry.esm.js.map +1 -1
  461. package/dist/pine-core/pds-chip.entry.esm.js.map +1 -1
  462. package/dist/pine-core/pds-combobox.entry.esm.js.map +1 -0
  463. package/dist/pine-core/pds-dropdown-menu.entry.esm.js.map +1 -1
  464. package/dist/pine-core/pds-icon.entry.esm.js.map +1 -1
  465. package/dist/pine-core/pds-input.entry.esm.js.map +1 -1
  466. package/dist/pine-core/pds-property.entry.esm.js.map +1 -0
  467. package/dist/pine-core/pds-select.entry.esm.js.map +1 -1
  468. package/dist/pine-core/pds-text.entry.esm.js.map +1 -1
  469. package/dist/pine-core/pds-textarea.entry.esm.js.map +1 -1
  470. package/dist/pine-core/pine-core.esm.js +1 -1
  471. package/dist/types/components/pds-combobox/pds-combobox.d.ts +153 -0
  472. package/dist/types/components/pds-input/pds-input.d.ts +6 -0
  473. package/dist/types/components/pds-property/pds-property.d.ts +14 -0
  474. package/dist/types/components/pds-select/pds-select.d.ts +5 -0
  475. package/dist/types/components/pds-text/pds-text.d.ts +3 -0
  476. package/dist/types/components/pds-textarea/pds-textarea.d.ts +8 -0
  477. package/dist/types/components.d.ts +205 -0
  478. package/hydrate/index.js +2285 -292
  479. package/hydrate/index.mjs +2285 -292
  480. package/package.json +4 -2
  481. package/dist/pine-core/p-00599bd8.entry.js +0 -2
  482. package/dist/pine-core/p-00599bd8.entry.js.map +0 -1
  483. package/dist/pine-core/p-03d8cb4c.system.entry.js +0 -2
  484. package/dist/pine-core/p-065208a1.system.entry.js.map +0 -1
  485. package/dist/pine-core/p-0c30661b.system.entry.js +0 -2
  486. package/dist/pine-core/p-13481ef5.system.entry.js.map +0 -1
  487. package/dist/pine-core/p-35917a1a.entry.js +0 -2
  488. package/dist/pine-core/p-3e91dccd.entry.js +0 -2
  489. package/dist/pine-core/p-3e91dccd.entry.js.map +0 -1
  490. package/dist/pine-core/p-513c16c7.entry.js +0 -2
  491. package/dist/pine-core/p-513c16c7.entry.js.map +0 -1
  492. package/dist/pine-core/p-5367f477.system.entry.js +0 -2
  493. package/dist/pine-core/p-593df966.system.entry.js +0 -2
  494. package/dist/pine-core/p-593df966.system.entry.js.map +0 -1
  495. package/dist/pine-core/p-5acda4ac.system.entry.js +0 -2
  496. package/dist/pine-core/p-5acda4ac.system.entry.js.map +0 -1
  497. package/dist/pine-core/p-5e1e7762.entry.js +0 -2
  498. package/dist/pine-core/p-624db3d6.system.entry.js +0 -2
  499. package/dist/pine-core/p-624db3d6.system.entry.js.map +0 -1
  500. package/dist/pine-core/p-65a875f6.entry.js +0 -2
  501. package/dist/pine-core/p-76f7cf21.entry.js +0 -2
  502. package/dist/pine-core/p-8b6b0db7.entry.js.map +0 -1
  503. package/dist/pine-core/p-9db1f179.entry.js +0 -2
  504. package/dist/pine-core/p-9db1f179.entry.js.map +0 -1
  505. package/dist/pine-core/p-B5LBNcOw.system.js.map +0 -1
  506. package/dist/pine-core/p-C3ud771n.system.js.map +0 -1
  507. package/dist/pine-core/p-CdzfTGbZ.system.js.map +0 -1
  508. package/dist/pine-core/p-DMeT5CsE.system.js.map +0 -1
  509. package/dist/pine-core/p-DjXmy34u.system.js.map +0 -1
  510. package/dist/pine-core/p-Ke8SGZqs.system.js.map +0 -1
  511. package/dist/pine-core/p-a52b1413.entry.js +0 -2
  512. package/dist/pine-core/p-bf699bad.entry.js.map +0 -1
  513. package/dist/pine-core/p-dcda4ff5.system.entry.js +0 -2
  514. package/dist/pine-core/p-dfd5a5b6.system.entry.js +0 -2
  515. package/dist/pine-core/p-dfd5a5b6.system.entry.js.map +0 -1
  516. package/dist/pine-core/p-e562ad73.system.entry.js +0 -2
  517. package/dist/pine-core/p-e562ad73.system.entry.js.map +0 -1
  518. package/dist/pine-core/p-fb1eb0c4.entry.js +0 -2
  519. package/dist/pine-core/p-fb1eb0c4.entry.js.map +0 -1
  520. package/dist/pine-core/p-fd1ef1e1.entry.js +0 -2
  521. package/dist/pine-core/p-fed5f55e.system.entry.js +0 -2
  522. /package/dist/pine-core/{p-78f29270.entry.js.map → p-000ed179.entry.js.map} +0 -0
  523. /package/dist/pine-core/{p-de550d9e.system.entry.js.map → p-0c6e9ba0.system.entry.js.map} +0 -0
  524. /package/dist/pine-core/{p-cc21ddcc.system.entry.js.map → p-1ef5f46b.system.entry.js.map} +0 -0
  525. /package/dist/pine-core/{p-fed5f55e.system.entry.js.map → p-256d15bc.system.entry.js.map} +0 -0
  526. /package/dist/pine-core/{p-80f36506.entry.js.map → p-27b52fc5.entry.js.map} +0 -0
  527. /package/dist/pine-core/{p-04195bdb.entry.js.map → p-2a2cd90d.entry.js.map} +0 -0
  528. /package/dist/pine-core/{p-07f45626.entry.js.map → p-2f0aedfa.entry.js.map} +0 -0
  529. /package/dist/pine-core/{p-27c0ffda.system.entry.js.map → p-2fbc5f8c.system.entry.js.map} +0 -0
  530. /package/dist/pine-core/{p-b2820acd.entry.js.map → p-30449e82.entry.js.map} +0 -0
  531. /package/dist/pine-core/{p-f6b226df.entry.js.map → p-31fe86a6.entry.js.map} +0 -0
  532. /package/dist/pine-core/{p-5367f477.system.entry.js.map → p-357b6dd6.system.entry.js.map} +0 -0
  533. /package/dist/pine-core/{p-fdf3a5ff.entry.js.map → p-36d3352a.entry.js.map} +0 -0
  534. /package/dist/pine-core/{p-e9f004c5.entry.js.map → p-38248640.entry.js.map} +0 -0
  535. /package/dist/pine-core/{p-aeaae417.system.entry.js.map → p-383af1d4.system.entry.js.map} +0 -0
  536. /package/dist/pine-core/{p-f99c59a8.entry.js.map → p-39fbd912.entry.js.map} +0 -0
  537. /package/dist/pine-core/{p-5c4aceb7.entry.js.map → p-3bbb6fc1.entry.js.map} +0 -0
  538. /package/dist/pine-core/{p-39a31730.system.entry.js.map → p-3fd658ad.system.entry.js.map} +0 -0
  539. /package/dist/pine-core/{p-44f10d3c.entry.js.map → p-4d22ca40.entry.js.map} +0 -0
  540. /package/dist/pine-core/{p-76f7cf21.entry.js.map → p-5033d9e8.entry.js.map} +0 -0
  541. /package/dist/pine-core/{p-a98cda38.system.entry.js.map → p-5706c81b.system.entry.js.map} +0 -0
  542. /package/dist/pine-core/{p-ddcc4932.entry.js.map → p-5fdbbab9.entry.js.map} +0 -0
  543. /package/dist/pine-core/{p-78327c08.system.entry.js.map → p-61b7ff04.system.entry.js.map} +0 -0
  544. /package/dist/pine-core/{p-111e7da2.system.entry.js.map → p-62bc2080.system.entry.js.map} +0 -0
  545. /package/dist/pine-core/{p-fb2fb435.entry.js.map → p-64c897bb.entry.js.map} +0 -0
  546. /package/dist/pine-core/{p-1d395d27.entry.js.map → p-667eb50e.entry.js.map} +0 -0
  547. /package/dist/pine-core/{p-51cc93b3.entry.js.map → p-6d36fae0.entry.js.map} +0 -0
  548. /package/dist/pine-core/{p-5e1e7762.entry.js.map → p-6ef51211.entry.js.map} +0 -0
  549. /package/dist/pine-core/{p-5a437fcd.system.entry.js.map → p-7da6180d.system.entry.js.map} +0 -0
  550. /package/dist/pine-core/{p-19c01019.entry.js.map → p-80246c79.entry.js.map} +0 -0
  551. /package/dist/pine-core/{p-d35b3494.entry.js.map → p-82388e60.entry.js.map} +0 -0
  552. /package/dist/pine-core/{p-c1909a5d.system.entry.js.map → p-91520803.system.entry.js.map} +0 -0
  553. /package/dist/pine-core/{p-ab7e4700.system.entry.js.map → p-982edcaf.system.entry.js.map} +0 -0
  554. /package/dist/pine-core/{p-dcda4ff5.system.entry.js.map → p-9b8a3659.system.entry.js.map} +0 -0
  555. /package/dist/pine-core/{p-d553e05c.system.entry.js.map → p-9cc1844a.system.entry.js.map} +0 -0
  556. /package/dist/pine-core/{p-ef9ed75a.system.entry.js.map → p-9d8bb7f7.system.entry.js.map} +0 -0
  557. /package/dist/pine-core/{p-f46c4618.system.entry.js.map → p-9df7ba40.system.entry.js.map} +0 -0
  558. /package/dist/pine-core/{p-9c01e81b.system.entry.js.map → p-9e22eab5.system.entry.js.map} +0 -0
  559. /package/dist/pine-core/{p-86329612.entry.js.map → p-a4d19fb1.entry.js.map} +0 -0
  560. /package/dist/pine-core/{p-03d8cb4c.system.entry.js.map → p-af5c9fbd.system.entry.js.map} +0 -0
  561. /package/dist/pine-core/{p-10e2feff.entry.js.map → p-b214c043.entry.js.map} +0 -0
  562. /package/dist/pine-core/{p-60fbeb1c.entry.js.map → p-b6d18604.entry.js.map} +0 -0
  563. /package/dist/pine-core/{p-d6d453d8.system.entry.js.map → p-b93825c4.system.entry.js.map} +0 -0
  564. /package/dist/pine-core/{p-4b2aab79.system.entry.js.map → p-c5a7c8e9.system.entry.js.map} +0 -0
  565. /package/dist/pine-core/{p-6a7936e7.system.entry.js.map → p-c5da4a97.system.entry.js.map} +0 -0
  566. /package/dist/pine-core/{p-0c30661b.system.entry.js.map → p-c93786f1.system.entry.js.map} +0 -0
  567. /package/dist/pine-core/{p-959c8247.system.entry.js.map → p-cc15bf6c.system.entry.js.map} +0 -0
  568. /package/dist/pine-core/{p-fd1ef1e1.entry.js.map → p-d0ec666b.entry.js.map} +0 -0
  569. /package/dist/pine-core/{p-942fa145.system.entry.js.map → p-d451c7b5.system.entry.js.map} +0 -0
  570. /package/dist/pine-core/{p-0a87e2fc.system.entry.js.map → p-d6b1f60d.system.entry.js.map} +0 -0
  571. /package/dist/pine-core/{p-d28768d1.entry.js.map → p-d989287d.entry.js.map} +0 -0
  572. /package/dist/pine-core/{p-a556a328.system.entry.js.map → p-e0a35811.system.entry.js.map} +0 -0
  573. /package/dist/pine-core/{p-7bb3a5d4.system.entry.js.map → p-e0a6ba6f.system.entry.js.map} +0 -0
  574. /package/dist/pine-core/{p-c5e1ed09.system.entry.js.map → p-e416f7a8.system.entry.js.map} +0 -0
  575. /package/dist/pine-core/{p-c551191a.system.entry.js.map → p-e53547e2.system.entry.js.map} +0 -0
  576. /package/dist/pine-core/{p-d0adaca0.system.entry.js.map → p-e7322ff9.system.entry.js.map} +0 -0
  577. /package/dist/pine-core/{p-79cb7835.system.entry.js.map → p-e8a4eafa.system.entry.js.map} +0 -0
  578. /package/dist/pine-core/{p-96e9774e.system.entry.js.map → p-ec1c3452.system.entry.js.map} +0 -0
  579. /package/dist/pine-core/{p-76e35041.entry.js.map → p-ee0117a2.entry.js.map} +0 -0
  580. /package/dist/pine-core/{p-833b2170.system.entry.js.map → p-eef645bd.system.entry.js.map} +0 -0
  581. /package/dist/pine-core/{p-8f06b020.entry.js.map → p-ef08f005.entry.js.map} +0 -0
  582. /package/dist/pine-core/{p-0a11384e.entry.js.map → p-f29baa16.entry.js.map} +0 -0
  583. /package/dist/pine-core/{p-2007a0b5.entry.js.map → p-f30b1479.entry.js.map} +0 -0
  584. /package/dist/pine-core/{p-35917a1a.entry.js.map → p-f455deb5.entry.js.map} +0 -0
  585. /package/dist/pine-core/{p-8180b641.entry.js.map → p-f7c02b89.entry.js.map} +0 -0
  586. /package/dist/pine-core/{p-65a875f6.entry.js.map → p-f9005ac9.entry.js.map} +0 -0
  587. /package/dist/pine-core/{p-99b5e1a5.entry.js.map → p-fd3b7077.entry.js.map} +0 -0
  588. /package/dist/pine-core/{p-3ea415b0.entry.js.map → p-fe73a67f.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"; }
@@ -126,12 +126,29 @@
126
126
  gap: var(--pine-dimension-2xs);
127
127
  }
128
128
 
129
+ .pds-input__label-wrapper {
130
+ align-items: center;
131
+ display: flex;
132
+ justify-content: space-between;
133
+ margin-block-end: var(--pine-dimension-2xs);
134
+ }
135
+
129
136
  .pds-input__label {
130
137
  color: var(--pine-color-text-active);
131
- font: var(--pine-typography-body-sm-medium);
132
138
  margin-block-end: var(--pine-dimension-2xs);
133
139
  }
134
140
 
141
+ .pds-input__label-wrapper .pds-input__label {
142
+ margin-block-end: 0;
143
+ }
144
+
145
+ .pds-input__action {
146
+ align-items: center;
147
+ display: flex;
148
+ gap: var(--pine-dimension-xs);
149
+ margin-inline-start: var(--pine-dimension-xs);
150
+ }
151
+
135
152
  .pds-input__field-wrapper {
136
153
  align-items: center;
137
154
  display: flex;
@@ -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,12 +130,20 @@ 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
  }
@@ -190,7 +203,7 @@ export class PdsInput {
190
203
  'has-prepend': this.hasPrepend,
191
204
  'has-append': this.hasAppend,
192
205
  };
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)))));
206
+ return (h(Host, { key: 'a8cf9aaa6dc90cb0790a7cad75603a2ebf48451a', "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 }, h("div", { key: '355f87099825b4db4d97500dac2b94a5892a3981', class: "pds-input" }, label && (h("div", { key: 'ee7bdec715478f0945cd1bf6ba435c50e885ebda', class: "pds-input__label-wrapper" }, h("label", { key: '56622a09c8f7313f8c2276363ded8efd2e985fb7', htmlFor: componentId, class: "pds-input__label" }, label, this.required && h("span", { key: 'fb95186cd446e4d338822840423566110ac9dbd0', class: "pds-input__required-indicator" }, " *")), this.renderAction())), h("div", { key: 'c7b209515121ab4e44f054eb817f61e6d9241323', class: inputWrapperClasses }, this.renderPrepend(), this.renderPrefix(), h("input", Object.assign({ key: '02f8238ee2b87b7484da0b4b5282ce22c7dd3de1', 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: 'b93e6b54755d300e9093ac78854b52d296703a00', class: "pds-input__helper-message", id: messageId(componentId, 'helper') }, helperMessage)), errorMessage && (h("p", { key: 'bc16a204c2ad99b28759cde1f066b6ba790a5c80', class: "pds-input__error-message", id: messageId(componentId, 'error') }, h("pds-icon", { key: '354293fa6512ff16603e7190a4131096f58ca819', icon: danger, size: "small" }), errorMessage)))));
194
207
  }
195
208
  static get is() { return "pds-input"; }
196
209
  static get encapsulation() { return "shadow"; }
@@ -599,6 +612,7 @@ export class PdsInput {
599
612
  "hasSuffix": {},
600
613
  "hasPrepend": {},
601
614
  "hasAppend": {},
615
+ "hasAction": {},
602
616
  "hasFocus": {}
603
617
  };
604
618
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pds-input.js","sourceRoot":"","sources":["../../../src/components/pds-input/pds-input.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch } from '@stencil/core';\nimport { assignDescription, messageId } from '../../utils/form';\nimport { inheritAriaAttributes } from '@utils/attributes';\nimport type { Attributes } from '@utils/attributes';\nimport { InputChangeEventDetail, InputInputEventDetail } from './input-interface';\nimport { debounceEvent } from '@utils/utils';\nimport { danger } from '@pine-ds/icons/icons';\n\n/**\n * @slot append - Content to be displayed after the input field\n * @slot prefix - Content that is displayed visually within the input field before the input field\n * @slot prepend - Content to be displayed before the input field\n * @slot suffix - Content that is displayed visually within the input field after the input field\n */\n@Component({\n tag: 'pds-input',\n styleUrls: ['pds-input.tokens.scss', '../../global/styles/utils/label.scss', 'pds-input.scss'],\n shadow: true,\n})\nexport class PdsInput {\n private nativeInput?: HTMLInputElement;\n private inheritedAttributes: Attributes = {};\n private isComposing = false;\n private prefixEl?: HTMLElement;\n private suffixEl?: HTMLElement;\n private focusedValue?: string | number | null;\n private originalPdsInput?: EventEmitter<InputInputEventDetail>;\n\n @Element() el!: HTMLPdsInputElement;\n\n /**\n * If true, the input has prefix content (non-focusable)\n */\n @State() hasPrefix = false;\n\n /**\n * If true, the input has suffix content (non-focusable)\n */\n @State() hasSuffix = false;\n\n /**\n * If true, the input has prepend content (focusable)\n */\n @State() hasPrepend = false;\n\n /**\n * If true, the input has append content (focusable)\n */\n @State() hasAppend = false;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() pdsBlur!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the value has changed.\n *\n * This event will not emit when programmatically setting the `value` property.\n */\n @Event() pdsChange!: EventEmitter<InputChangeEventDetail>;\n\n /**\n * Emitted when the input has focus.\n */\n @Event() pdsFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when a keyboard input occurs.\n */\n @Event() pdsInput: EventEmitter<InputInputEventDetail>;\n\n /**\n * Sets focus on the native `input` in the `pds-input`. Use this method instead of the global\n * `input.focus()`.\n */\n @Method()\n async setFocus() {\n if (this.nativeInput) {\n this.nativeInput.focus();\n }\n }\n\n\n /**\n * Specifies if and how the browser provides `autocomplete` assistance for the field.\n */\n @Prop() autocomplete: string;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Sets the number of milliseconds to wait before updating the value.\n */\n @Prop() debounce?: number;\n\n /**\n * Determines whether or not the input field is disabled.\n */\n @Prop() disabled?: boolean;\n\n /**\n * Specifies the error message and provides an error-themed treatment to the field.\n */\n @Prop() errorMessage?: string;\n\n /**\n * Displays a message or hint below the input field.\n */\n @Prop() helperMessage?: string;\n\n /**\n * Determines whether or not the input field is invalid or throws an error.\n */\n @Prop() invalid?: boolean;\n\n /**\n * Text to be displayed as the input label.\n */\n @Prop() label?: string;\n\n /**\n * Specifies the maximum value for the input field.\n */\n @Prop() max?: string;\n\n /**\n * Specifies the maximum number of characters allowed in the input field.\n */\n @Prop() maxlength?: string;\n\n /**\n * Specifies the minimum value for the input field.\n */\n @Prop() min?: string;\n\n /**\n * Specifies the minimum number of characters allowed in the input field.\n */\n @Prop() minlength?: string;\n\n /**\n * Specifies the name. Submitted with the form name/value pair.\n */\n @Prop() name?: string;\n\n /**\n * Specifies the regular expression that the input value is checked against.\n */\n @Prop() pattern?: string;\n\n /**\n * Specifies a short hint that describes the expected value of the input field.\n */\n @Prop() placeholder?: string;\n\n /**\n * Determines whether or not the input field is readonly.\n */\n @Prop() readonly?: boolean;\n\n /**\n * Determines whether or not the input field is required.\n */\n @Prop() required?: boolean;\n\n /**\n * Works with the `min` and `max` attributes to define increments for the input field.\n */\n @Prop() step?: string;\n\n /**\n * Determines the type of control that will be displayed\n * `'email'`, `'number'`, `'password'`, `'tel'`, `'text'`, `'url'`\n * @defaultValue \"text\"\n */\n @Prop() type = 'text';\n\n /**\n * The value of the input.\n */\n @Prop({mutable: true}) value?: string | number | null = '';\n\n /**\n * Determines if the input has focus.\n */\n @State() hasFocus = false;\n\n private updateAddonWidths() {\n requestAnimationFrame(() => {\n if (this.prefixEl) {\n const prefixWidth = this.prefixEl.offsetWidth;\n this.el.style.setProperty('--prefix-width', `${prefixWidth}px`);\n }\n\n if (this.suffixEl) {\n const suffixWidth = this.suffixEl.offsetWidth;\n this.el.style.setProperty('--suffix-width', `${suffixWidth}px`);\n }\n });\n }\n\n private renderPrefix() {\n const hasPrefix = this.el.querySelector('[slot=\"prefix\"]') !== null;\n if (hasPrefix) {\n return (\n <div class=\"pds-input__prefix\" part=\"prefix\" ref={(el) => this.prefixEl = el as HTMLElement}>\n <slot name=\"prefix\" onSlotchange={() => this.updateAddonWidths()}></slot>\n </div>\n );\n }\n return null;\n }\n\n private renderSuffix() {\n const hasSuffix = this.el.querySelector('[slot=\"suffix\"]') !== null;\n if (hasSuffix) {\n return (\n <div class=\"pds-input__suffix\" part=\"suffix\" ref={(el) => this.suffixEl = el as HTMLElement}>\n <slot name=\"suffix\" onSlotchange={() => this.updateAddonWidths()}></slot>\n </div>\n );\n }\n return null;\n }\n\n private renderPrepend() {\n const hasPrepend = this.el.querySelector('[slot=\"prepend\"]') !== null;\n if (hasPrepend) {\n return (\n <div class=\"pds-input__prepend\" part=\"prepend\">\n <slot name=\"prepend\"></slot>\n </div>\n );\n }\n return null;\n }\n\n private renderAppend() {\n const hasAppend = this.el.querySelector('[slot=\"append\"]') !== null;\n if (hasAppend) {\n return (\n <div class=\"pds-input__append\" part=\"append\">\n <slot name=\"append\"></slot>\n </div>\n );\n }\n return null;\n }\n\n componentWillLoad() {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el)\n };\n this.hasPrefix = this.el.querySelector('[slot=\"prefix\"]') !== null;\n this.hasSuffix = this.el.querySelector('[slot=\"suffix\"]') !== null;\n this.hasPrepend = this.el.querySelector('[slot=\"prepend\"]') !== null;\n this.hasAppend = this.el.querySelector('[slot=\"append\"]') !== null;\n\n // Store the original pdsInput event emitter\n this.originalPdsInput = this.pdsInput;\n }\n\n componentDidLoad() {\n this.debounceChanged();\n this.updateAddonWidths();\n }\n\n componentDidUpdate() {\n this.updateAddonWidths();\n }\n\n @Watch('debounce')\n protected debounceChanged() {\n const { pdsInput, debounce, originalPdsInput } = this;\n\n /**\n * If debounce is undefined, we have to manually revert the pdsInput emitter in case\n * debounce used to be set to a number. Otherwise, the event would stay debounced.\n */\n this.pdsInput = debounce === undefined ? originalPdsInput ?? pdsInput : debounceEvent(pdsInput, debounce);\n }\n\n @Watch('value')\n protected valueChanged() {\n const nativeInput = this.nativeInput;\n const value = this.getValue();\n\n if (nativeInput && nativeInput.value !== value && !this.isComposing) {\n nativeInput.value = value;\n }\n }\n\n private getValue(): string {\n return typeof this.value === 'number' ? this.value.toString() : (this.value || '').toString();\n }\n\n private onInputEvent = (ev: Event) => {\n const input = ev.target as HTMLInputElement | null;\n if (input) {\n this.value = input.value || '';\n }\n this.emitInputChange(ev);\n };\n\n private onChangeEvent = (ev: Event) => {\n this.emitValueChange(ev);\n };\n\n private onBlurEvent = (ev: FocusEvent) => {\n this.hasFocus = false;\n\n if (this.focusedValue !== this.value) {\n /**\n * Emits the `pdsChange` event when the input value\n * is different than the value when the input was focused.\n */\n this.emitValueChange(ev);\n }\n\n this.pdsBlur.emit(ev);\n };\n\n private onFocusEvent = (ev: FocusEvent) => {\n this.hasFocus = true;\n this.focusedValue = this.value;\n\n this.pdsFocus.emit(ev);\n };\n\n private onCompositionStart = () => {\n this.isComposing = true;\n }\n\n private onCompositionEnd = () => {\n this.isComposing = false;\n }\n\n /**\n * Emits a pdsChange event\n */\n private emitValueChange(event?: Event) {\n const { value } = this;\n const newValue = value == null ? value : value.toString();\n\n this.focusedValue = newValue;\n this.pdsChange.emit({ value: newValue, event });\n }\n\n /**\n * Emits a `pdsInput` event\n */\n private emitInputChange(event?: Event) {\n const { value } = this;\n\n // Checks for both null and undefined values\n const newValue = value == null ? value : value.toString();\n\n this.pdsInput.emit({ value: newValue, event });\n }\n\n render() {\n const {\n componentId,\n disabled,\n errorMessage,\n helperMessage,\n invalid = false,\n label,\n } = this;\n\n const value = this.getValue();\n\n const inputWrapperClasses = {\n 'pds-input__field-wrapper': true,\n 'has-focus': this.hasFocus,\n 'has-error': invalid || !!errorMessage,\n 'is-disabled': disabled,\n 'has-prefix': this.hasPrefix,\n 'has-suffix': this.hasSuffix,\n 'has-prepend': this.hasPrepend,\n 'has-append': this.hasAppend,\n };\n\n return (\n <Host\n aria-disabled={this.disabled ? 'true' : null}\n aria-readonly={this.readonly ? 'true' : null}\n has-prefix={this.hasPrefix ? 'true' : null}\n has-suffix={this.hasSuffix ? 'true' : null}\n has-prepend={this.hasPrepend ? 'true' : null}\n has-append={this.hasAppend ? 'true' : null}\n >\n <div class=\"pds-input\">\n {label && (\n <label htmlFor={componentId} class=\"pds-input__label\">\n {label}\n {this.required && <span class=\"pds-input__required-indicator\"> *</span>}\n </label>\n )}\n\n <div class={inputWrapperClasses}>\n {this.renderPrepend()}\n {this.renderPrefix()}\n <input\n ref={(input) => (this.nativeInput = input)}\n class=\"pds-input__field\"\n aria-describedby={assignDescription(componentId, invalid, helperMessage)}\n aria-invalid={invalid ? \"true\" : undefined}\n autocomplete={this.autocomplete}\n disabled={disabled}\n id={componentId}\n max={this.max}\n maxlength={this.maxlength}\n min={this.min}\n minlength={this.minlength}\n name={this.name}\n pattern={this.pattern}\n placeholder={this.placeholder}\n readOnly={this.readonly}\n required={this.required}\n step={this.step}\n type={this.type}\n value={value}\n onInput={this.onInputEvent}\n onChange={this.onChangeEvent}\n onBlur={this.onBlurEvent}\n onFocus={this.onFocusEvent}\n onCompositionstart={this.onCompositionStart}\n onCompositionend={this.onCompositionEnd}\n {...this.inheritedAttributes}\n />\n {this.renderSuffix()}\n {this.renderAppend()}\n </div>\n\n {helperMessage && (\n <p class=\"pds-input__helper-message\" id={messageId(componentId, 'helper')}>\n {helperMessage}\n </p>\n )}\n\n {errorMessage && (\n <p class=\"pds-input__error-message\" id={messageId(componentId, 'error')}>\n <pds-icon icon={danger} size=\"small\" />\n {errorMessage}\n </p>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"pds-input.js","sourceRoot":"","sources":["../../../src/components/pds-input/pds-input.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch } from '@stencil/core';\nimport { assignDescription, messageId } from '../../utils/form';\nimport { inheritAriaAttributes } from '@utils/attributes';\nimport type { Attributes } from '@utils/attributes';\nimport { InputChangeEventDetail, InputInputEventDetail } from './input-interface';\nimport { debounceEvent } from '@utils/utils';\nimport { danger } from '@pine-ds/icons/icons';\n\n/**\n * @slot append - Content to be displayed after the input field\n * @slot prefix - Content that is displayed visually within the input field before the input field\n * @slot prepend - Content to be displayed before the input field\n * @slot suffix - Content that is displayed visually within the input field after the input field\n * @slot action - Content to be displayed in the label area, typically for help icons or links\n */\n@Component({\n tag: 'pds-input',\n styleUrls: ['pds-input.tokens.scss', '../../global/styles/utils/label.scss', 'pds-input.scss'],\n shadow: true,\n})\nexport class PdsInput {\n private nativeInput?: HTMLInputElement;\n private inheritedAttributes: Attributes = {};\n private isComposing = false;\n private prefixEl?: HTMLElement;\n private suffixEl?: HTMLElement;\n private focusedValue?: string | number | null;\n private originalPdsInput?: EventEmitter<InputInputEventDetail>;\n\n @Element() el!: HTMLPdsInputElement;\n\n /**\n * If true, the input has prefix content (non-focusable)\n */\n @State() hasPrefix = false;\n\n /**\n * If true, the input has suffix content (non-focusable)\n */\n @State() hasSuffix = false;\n\n /**\n * If true, the input has prepend content (focusable)\n */\n @State() hasPrepend = false;\n\n /**\n * If true, the input has append content (focusable)\n */\n @State() hasAppend = false;\n\n /**\n * If true, the input has action content in the label area\n */\n @State() hasAction = false;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() pdsBlur!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the value has changed.\n *\n * This event will not emit when programmatically setting the `value` property.\n */\n @Event() pdsChange!: EventEmitter<InputChangeEventDetail>;\n\n /**\n * Emitted when the input has focus.\n */\n @Event() pdsFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when a keyboard input occurs.\n */\n @Event() pdsInput: EventEmitter<InputInputEventDetail>;\n\n /**\n * Sets focus on the native `input` in the `pds-input`. Use this method instead of the global\n * `input.focus()`.\n */\n @Method()\n async setFocus() {\n if (this.nativeInput) {\n this.nativeInput.focus();\n }\n }\n\n\n /**\n * Specifies if and how the browser provides `autocomplete` assistance for the field.\n */\n @Prop() autocomplete: string;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Sets the number of milliseconds to wait before updating the value.\n */\n @Prop() debounce?: number;\n\n /**\n * Determines whether or not the input field is disabled.\n */\n @Prop() disabled?: boolean;\n\n /**\n * Specifies the error message and provides an error-themed treatment to the field.\n */\n @Prop() errorMessage?: string;\n\n /**\n * Displays a message or hint below the input field.\n */\n @Prop() helperMessage?: string;\n\n /**\n * Determines whether or not the input field is invalid or throws an error.\n */\n @Prop() invalid?: boolean;\n\n /**\n * Text to be displayed as the input label.\n */\n @Prop() label?: string;\n\n /**\n * Specifies the maximum value for the input field.\n */\n @Prop() max?: string;\n\n /**\n * Specifies the maximum number of characters allowed in the input field.\n */\n @Prop() maxlength?: string;\n\n /**\n * Specifies the minimum value for the input field.\n */\n @Prop() min?: string;\n\n /**\n * Specifies the minimum number of characters allowed in the input field.\n */\n @Prop() minlength?: string;\n\n /**\n * Specifies the name. Submitted with the form name/value pair.\n */\n @Prop() name?: string;\n\n /**\n * Specifies the regular expression that the input value is checked against.\n */\n @Prop() pattern?: string;\n\n /**\n * Specifies a short hint that describes the expected value of the input field.\n */\n @Prop() placeholder?: string;\n\n /**\n * Determines whether or not the input field is readonly.\n */\n @Prop() readonly?: boolean;\n\n /**\n * Determines whether or not the input field is required.\n */\n @Prop() required?: boolean;\n\n /**\n * Works with the `min` and `max` attributes to define increments for the input field.\n */\n @Prop() step?: string;\n\n /**\n * Determines the type of control that will be displayed\n * `'email'`, `'number'`, `'password'`, `'tel'`, `'text'`, `'url'`\n * @defaultValue \"text\"\n */\n @Prop() type = 'text';\n\n /**\n * The value of the input.\n */\n @Prop({mutable: true}) value?: string | number | null = '';\n\n /**\n * Determines if the input has focus.\n */\n @State() hasFocus = false;\n\n private updateAddonWidths() {\n requestAnimationFrame(() => {\n if (this.prefixEl) {\n const prefixWidth = this.prefixEl.offsetWidth;\n this.el.style.setProperty('--prefix-width', `${prefixWidth}px`);\n }\n\n if (this.suffixEl) {\n const suffixWidth = this.suffixEl.offsetWidth;\n this.el.style.setProperty('--suffix-width', `${suffixWidth}px`);\n }\n });\n }\n\n private renderPrefix() {\n const hasPrefix = this.el.querySelector('[slot=\"prefix\"]') !== null;\n if (hasPrefix) {\n return (\n <div class=\"pds-input__prefix\" part=\"prefix\" ref={(el) => this.prefixEl = el as HTMLElement}>\n <slot name=\"prefix\" onSlotchange={() => this.updateAddonWidths()}></slot>\n </div>\n );\n }\n return null;\n }\n\n private renderSuffix() {\n const hasSuffix = this.el.querySelector('[slot=\"suffix\"]') !== null;\n if (hasSuffix) {\n return (\n <div class=\"pds-input__suffix\" part=\"suffix\" ref={(el) => this.suffixEl = el as HTMLElement}>\n <slot name=\"suffix\" onSlotchange={() => this.updateAddonWidths()}></slot>\n </div>\n );\n }\n return null;\n }\n\n private renderPrepend() {\n const hasPrepend = this.el.querySelector('[slot=\"prepend\"]') !== null;\n if (hasPrepend) {\n return (\n <div class=\"pds-input__prepend\" part=\"prepend\">\n <slot name=\"prepend\"></slot>\n </div>\n );\n }\n return null;\n }\n\n private renderAppend() {\n const hasAppend = this.el.querySelector('[slot=\"append\"]') !== null;\n if (hasAppend) {\n return (\n <div class=\"pds-input__append\" part=\"append\">\n <slot name=\"append\"></slot>\n </div>\n );\n }\n return null;\n }\n\n private renderAction() {\n const hasAction = this.el.querySelector('[slot=\"action\"]') !== null;\n if (hasAction) {\n return (\n <div class=\"pds-input__action\" part=\"action\">\n <slot name=\"action\"></slot>\n </div>\n );\n }\n return null;\n }\n\n componentWillLoad() {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el)\n };\n this.hasPrefix = this.el.querySelector('[slot=\"prefix\"]') !== null;\n this.hasSuffix = this.el.querySelector('[slot=\"suffix\"]') !== null;\n this.hasPrepend = this.el.querySelector('[slot=\"prepend\"]') !== null;\n this.hasAppend = this.el.querySelector('[slot=\"append\"]') !== null;\n this.hasAction = this.el.querySelector('[slot=\"action\"]') !== null;\n\n // Store the original pdsInput event emitter\n this.originalPdsInput = this.pdsInput;\n }\n\n componentDidLoad() {\n this.debounceChanged();\n this.updateAddonWidths();\n }\n\n componentDidUpdate() {\n this.updateAddonWidths();\n }\n\n @Watch('debounce')\n protected debounceChanged() {\n const { pdsInput, debounce, originalPdsInput } = this;\n\n /**\n * If debounce is undefined, we have to manually revert the pdsInput emitter in case\n * debounce used to be set to a number. Otherwise, the event would stay debounced.\n */\n this.pdsInput = debounce === undefined ? originalPdsInput ?? pdsInput : debounceEvent(pdsInput, debounce);\n }\n\n @Watch('value')\n protected valueChanged() {\n const nativeInput = this.nativeInput;\n const value = this.getValue();\n\n if (nativeInput && nativeInput.value !== value && !this.isComposing) {\n nativeInput.value = value;\n }\n }\n\n private getValue(): string {\n return typeof this.value === 'number' ? this.value.toString() : (this.value || '').toString();\n }\n\n private onInputEvent = (ev: Event) => {\n const input = ev.target as HTMLInputElement | null;\n if (input) {\n this.value = input.value || '';\n }\n this.emitInputChange(ev);\n };\n\n private onChangeEvent = (ev: Event) => {\n this.emitValueChange(ev);\n };\n\n private onBlurEvent = (ev: FocusEvent) => {\n this.hasFocus = false;\n\n if (this.focusedValue !== this.value) {\n /**\n * Emits the `pdsChange` event when the input value\n * is different than the value when the input was focused.\n */\n this.emitValueChange(ev);\n }\n\n this.pdsBlur.emit(ev);\n };\n\n private onFocusEvent = (ev: FocusEvent) => {\n this.hasFocus = true;\n this.focusedValue = this.value;\n\n this.pdsFocus.emit(ev);\n };\n\n private onCompositionStart = () => {\n this.isComposing = true;\n }\n\n private onCompositionEnd = () => {\n this.isComposing = false;\n }\n\n /**\n * Emits a pdsChange event\n */\n private emitValueChange(event?: Event) {\n const { value } = this;\n const newValue = value == null ? value : value.toString();\n\n this.focusedValue = newValue;\n this.pdsChange.emit({ value: newValue, event });\n }\n\n /**\n * Emits a `pdsInput` event\n */\n private emitInputChange(event?: Event) {\n const { value } = this;\n\n // Checks for both null and undefined values\n const newValue = value == null ? value : value.toString();\n\n this.pdsInput.emit({ value: newValue, event });\n }\n\n render() {\n const {\n componentId,\n disabled,\n errorMessage,\n helperMessage,\n invalid = false,\n label,\n } = this;\n\n const value = this.getValue();\n\n const inputWrapperClasses = {\n 'pds-input__field-wrapper': true,\n 'has-focus': this.hasFocus,\n 'has-error': invalid || !!errorMessage,\n 'is-disabled': disabled,\n 'has-prefix': this.hasPrefix,\n 'has-suffix': this.hasSuffix,\n 'has-prepend': this.hasPrepend,\n 'has-append': this.hasAppend,\n };\n\n return (\n <Host\n aria-disabled={this.disabled ? 'true' : null}\n aria-readonly={this.readonly ? 'true' : null}\n has-prefix={this.hasPrefix ? 'true' : null}\n has-suffix={this.hasSuffix ? 'true' : null}\n has-prepend={this.hasPrepend ? 'true' : null}\n has-append={this.hasAppend ? 'true' : null}\n has-action={this.hasAction ? 'true' : null}\n >\n <div class=\"pds-input\">\n {label && (\n <div class=\"pds-input__label-wrapper\">\n <label htmlFor={componentId} class=\"pds-input__label\">\n {label}\n {this.required && <span class=\"pds-input__required-indicator\"> *</span>}\n </label>\n {this.renderAction()}\n </div>\n )}\n\n <div class={inputWrapperClasses}>\n {this.renderPrepend()}\n {this.renderPrefix()}\n <input\n ref={(input) => (this.nativeInput = input)}\n class=\"pds-input__field\"\n aria-describedby={assignDescription(componentId, invalid, helperMessage)}\n aria-invalid={invalid ? \"true\" : undefined}\n autocomplete={this.autocomplete}\n disabled={disabled}\n id={componentId}\n max={this.max}\n maxlength={this.maxlength}\n min={this.min}\n minlength={this.minlength}\n name={this.name}\n pattern={this.pattern}\n placeholder={this.placeholder}\n readOnly={this.readonly}\n required={this.required}\n step={this.step}\n type={this.type}\n value={value}\n onInput={this.onInputEvent}\n onChange={this.onChangeEvent}\n onBlur={this.onBlurEvent}\n onFocus={this.onFocusEvent}\n onCompositionstart={this.onCompositionStart}\n onCompositionend={this.onCompositionEnd}\n {...this.inheritedAttributes}\n />\n {this.renderSuffix()}\n {this.renderAppend()}\n </div>\n\n {helperMessage && (\n <p class=\"pds-input__helper-message\" id={messageId(componentId, 'helper')}>\n {helperMessage}\n </p>\n )}\n\n {errorMessage && (\n <p class=\"pds-input__error-message\" id={messageId(componentId, 'error')}>\n <pds-icon icon={danger} size=\"small\" />\n {errorMessage}\n </p>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}