@pine-ds/core 3.12.1 → 3.14.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 (417) hide show
  1. package/components/mock-pds-modal.js +9 -5
  2. package/components/mock-pds-modal.js.map +1 -1
  3. package/components/pds-alert.js +1 -1
  4. package/components/pds-alert.js.map +1 -1
  5. package/components/pds-avatar.js +18 -5
  6. package/components/pds-avatar.js.map +1 -1
  7. package/components/pds-button2.js.map +1 -1
  8. package/components/pds-checkbox2.js.map +1 -1
  9. package/components/pds-chip2.js.map +1 -1
  10. package/components/pds-combobox.js +1 -1
  11. package/components/pds-combobox.js.map +1 -1
  12. package/components/pds-dropdown-menu-item.js +1 -1
  13. package/components/pds-dropdown-menu-item.js.map +1 -1
  14. package/components/pds-filter.js +1 -1
  15. package/components/pds-filter.js.map +1 -1
  16. package/components/pds-input.js +6 -2
  17. package/components/pds-input.js.map +1 -1
  18. package/components/pds-link2.js +1 -1
  19. package/components/pds-link2.js.map +1 -1
  20. package/components/pds-modal.js +7 -6
  21. package/components/pds-modal.js.map +1 -1
  22. package/components/pds-radio-group.js +1 -1
  23. package/components/pds-radio-group.js.map +1 -1
  24. package/components/pds-radio.js +1 -1
  25. package/components/pds-radio.js.map +1 -1
  26. package/components/pds-select.js +14 -2
  27. package/components/pds-select.js.map +1 -1
  28. package/components/pds-tab.js +20 -4
  29. package/components/pds-tab.js.map +1 -1
  30. package/components/pds-table-cell2.js.map +1 -1
  31. package/components/pds-table-head-cell2.js +61 -5
  32. package/components/pds-table-head-cell2.js.map +1 -1
  33. package/components/pds-table-head.js +15 -3
  34. package/components/pds-table-head.js.map +1 -1
  35. package/components/pds-table-row.js +100 -4
  36. package/components/pds-table-row.js.map +1 -1
  37. package/components/pds-table.js +50 -3
  38. package/components/pds-table.js.map +1 -1
  39. package/components/pds-textarea.js +9 -5
  40. package/components/pds-textarea.js.map +1 -1
  41. package/dist/cjs/loader.cjs.js +1 -1
  42. package/dist/cjs/mock-pds-modal.cjs.entry.js +9 -5
  43. package/dist/cjs/mock-pds-modal.entry.cjs.js.map +1 -1
  44. package/dist/cjs/pds-alert.cjs.entry.js +1 -1
  45. package/dist/cjs/pds-alert.entry.cjs.js.map +1 -1
  46. package/dist/cjs/pds-avatar.cjs.entry.js +17 -5
  47. package/dist/cjs/pds-avatar.entry.cjs.js.map +1 -1
  48. package/dist/cjs/pds-button.entry.cjs.js.map +1 -1
  49. package/dist/cjs/pds-checkbox.entry.cjs.js.map +1 -1
  50. package/dist/cjs/pds-chip.entry.cjs.js.map +1 -1
  51. package/dist/cjs/pds-combobox.cjs.entry.js +1 -1
  52. package/dist/cjs/pds-combobox.entry.cjs.js.map +1 -1
  53. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +1 -1
  54. package/dist/cjs/pds-dropdown-menu-item.entry.cjs.js.map +1 -1
  55. package/dist/cjs/pds-filter.cjs.entry.js +1 -1
  56. package/dist/cjs/pds-filter.entry.cjs.js.map +1 -1
  57. package/dist/cjs/pds-input.cjs.entry.js +6 -2
  58. package/dist/cjs/pds-input.entry.cjs.js.map +1 -1
  59. package/dist/cjs/pds-link.cjs.entry.js +1 -1
  60. package/dist/cjs/pds-link.entry.cjs.js.map +1 -1
  61. package/dist/cjs/pds-modal.cjs.entry.js +7 -6
  62. package/dist/cjs/pds-modal.entry.cjs.js.map +1 -1
  63. package/dist/cjs/pds-radio-group.cjs.entry.js +1 -1
  64. package/dist/cjs/pds-radio-group.entry.cjs.js.map +1 -1
  65. package/dist/cjs/pds-radio.cjs.entry.js +1 -1
  66. package/dist/cjs/pds-radio.entry.cjs.js.map +1 -1
  67. package/dist/cjs/pds-select.cjs.entry.js +14 -2
  68. package/dist/cjs/pds-select.entry.cjs.js.map +1 -1
  69. package/dist/cjs/pds-tab.cjs.entry.js +19 -4
  70. package/dist/cjs/pds-tab.entry.cjs.js.map +1 -1
  71. package/dist/cjs/pds-table-cell.entry.cjs.js.map +1 -1
  72. package/dist/cjs/pds-table-head-cell.cjs.entry.js +57 -4
  73. package/dist/cjs/pds-table-head-cell.entry.cjs.js.map +1 -1
  74. package/dist/cjs/pds-table-head.cjs.entry.js +12 -2
  75. package/dist/cjs/pds-table-head.entry.cjs.js.map +1 -1
  76. package/dist/cjs/pds-table-row.cjs.entry.js +97 -3
  77. package/dist/cjs/pds-table-row.entry.cjs.js.map +1 -1
  78. package/dist/cjs/pds-table.cjs.entry.js +47 -3
  79. package/dist/cjs/pds-table.entry.cjs.js.map +1 -1
  80. package/dist/cjs/pds-textarea.cjs.entry.js +9 -5
  81. package/dist/cjs/pds-textarea.entry.cjs.js.map +1 -1
  82. package/dist/cjs/pine-core.cjs.js +1 -1
  83. package/dist/collection/components/pds-alert/pds-alert.css +22 -0
  84. package/dist/collection/components/pds-avatar/pds-avatar.css +14 -1
  85. package/dist/collection/components/pds-avatar/pds-avatar.js +39 -4
  86. package/dist/collection/components/pds-avatar/pds-avatar.js.map +1 -1
  87. package/dist/collection/components/pds-avatar/stories/pds-avatar.stories.js +15 -0
  88. package/dist/collection/components/pds-button/pds-button.css +3 -0
  89. package/dist/collection/components/pds-checkbox/pds-checkbox.css +2 -0
  90. package/dist/collection/components/pds-chip/pds-chip.css +7 -0
  91. package/dist/collection/components/pds-combobox/pds-combobox.css +6 -1
  92. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.css +4 -3
  93. package/dist/collection/components/pds-filters/pds-filter/pds-filter.css +1 -1
  94. package/dist/collection/components/pds-input/pds-input.css +5 -3
  95. package/dist/collection/components/pds-input/pds-input.js +24 -1
  96. package/dist/collection/components/pds-input/pds-input.js.map +1 -1
  97. package/dist/collection/components/pds-link/pds-link.css +3 -3
  98. package/dist/collection/components/pds-modal/pds-modal.css +1 -0
  99. package/dist/collection/components/pds-modal/pds-modal.js +7 -6
  100. package/dist/collection/components/pds-modal/pds-modal.js.map +1 -1
  101. package/dist/collection/components/pds-modal/test/mock-pds-modal.js +10 -6
  102. package/dist/collection/components/pds-modal/test/mock-pds-modal.js.map +1 -1
  103. package/dist/collection/components/pds-radio/pds-radio.css +4 -1
  104. package/dist/collection/components/pds-radio-group/pds-radio-group.css +3 -1
  105. package/dist/collection/components/pds-select/pds-select.css +5 -3
  106. package/dist/collection/components/pds-select/pds-select.js +71 -2
  107. package/dist/collection/components/pds-select/pds-select.js.map +1 -1
  108. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.css +1 -0
  109. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.css +18 -0
  110. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +57 -1
  111. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js.map +1 -1
  112. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.css +12 -2
  113. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +87 -4
  114. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js.map +1 -1
  115. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.css +10 -0
  116. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +102 -2
  117. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js.map +1 -1
  118. package/dist/collection/components/pds-table/pds-table.css +2 -0
  119. package/dist/collection/components/pds-table/pds-table.js +112 -3
  120. package/dist/collection/components/pds-table/pds-table.js.map +1 -1
  121. package/dist/collection/components/pds-table/stories/pds-table.stories.js +150 -5
  122. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.css +23 -4
  123. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js +41 -3
  124. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js.map +1 -1
  125. package/dist/collection/components/pds-textarea/pds-textarea.css +3 -1
  126. package/dist/collection/components/pds-textarea/pds-textarea.js +27 -4
  127. package/dist/collection/components/pds-textarea/pds-textarea.js.map +1 -1
  128. package/dist/docs.json +341 -4
  129. package/dist/esm/loader.js +1 -1
  130. package/dist/esm/mock-pds-modal.entry.js +9 -5
  131. package/dist/esm/mock-pds-modal.entry.js.map +1 -1
  132. package/dist/esm/pds-alert.entry.js +1 -1
  133. package/dist/esm/pds-alert.entry.js.map +1 -1
  134. package/dist/esm/pds-avatar.entry.js +17 -5
  135. package/dist/esm/pds-avatar.entry.js.map +1 -1
  136. package/dist/esm/pds-button.entry.js.map +1 -1
  137. package/dist/esm/pds-checkbox.entry.js.map +1 -1
  138. package/dist/esm/pds-chip.entry.js.map +1 -1
  139. package/dist/esm/pds-combobox.entry.js +1 -1
  140. package/dist/esm/pds-combobox.entry.js.map +1 -1
  141. package/dist/esm/pds-dropdown-menu-item.entry.js +1 -1
  142. package/dist/esm/pds-dropdown-menu-item.entry.js.map +1 -1
  143. package/dist/esm/pds-filter.entry.js +1 -1
  144. package/dist/esm/pds-filter.entry.js.map +1 -1
  145. package/dist/esm/pds-input.entry.js +6 -2
  146. package/dist/esm/pds-input.entry.js.map +1 -1
  147. package/dist/esm/pds-link.entry.js +1 -1
  148. package/dist/esm/pds-link.entry.js.map +1 -1
  149. package/dist/esm/pds-modal.entry.js +7 -6
  150. package/dist/esm/pds-modal.entry.js.map +1 -1
  151. package/dist/esm/pds-radio-group.entry.js +1 -1
  152. package/dist/esm/pds-radio-group.entry.js.map +1 -1
  153. package/dist/esm/pds-radio.entry.js +1 -1
  154. package/dist/esm/pds-radio.entry.js.map +1 -1
  155. package/dist/esm/pds-select.entry.js +14 -2
  156. package/dist/esm/pds-select.entry.js.map +1 -1
  157. package/dist/esm/pds-tab.entry.js +19 -4
  158. package/dist/esm/pds-tab.entry.js.map +1 -1
  159. package/dist/esm/pds-table-cell.entry.js.map +1 -1
  160. package/dist/esm/pds-table-head-cell.entry.js +57 -4
  161. package/dist/esm/pds-table-head-cell.entry.js.map +1 -1
  162. package/dist/esm/pds-table-head.entry.js +12 -2
  163. package/dist/esm/pds-table-head.entry.js.map +1 -1
  164. package/dist/esm/pds-table-row.entry.js +97 -3
  165. package/dist/esm/pds-table-row.entry.js.map +1 -1
  166. package/dist/esm/pds-table.entry.js +47 -3
  167. package/dist/esm/pds-table.entry.js.map +1 -1
  168. package/dist/esm/pds-textarea.entry.js +9 -5
  169. package/dist/esm/pds-textarea.entry.js.map +1 -1
  170. package/dist/esm/pine-core.js +1 -1
  171. package/dist/esm-es5/loader.js +1 -1
  172. package/dist/esm-es5/mock-pds-modal.entry.js +1 -1
  173. package/dist/esm-es5/mock-pds-modal.entry.js.map +1 -1
  174. package/dist/esm-es5/pds-alert.entry.js +1 -1
  175. package/dist/esm-es5/pds-alert.entry.js.map +1 -1
  176. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  177. package/dist/esm-es5/pds-avatar.entry.js.map +1 -1
  178. package/dist/esm-es5/pds-button.entry.js.map +1 -1
  179. package/dist/esm-es5/pds-checkbox.entry.js.map +1 -1
  180. package/dist/esm-es5/pds-chip.entry.js.map +1 -1
  181. package/dist/esm-es5/pds-combobox.entry.js +1 -1
  182. package/dist/esm-es5/pds-combobox.entry.js.map +1 -1
  183. package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -1
  184. package/dist/esm-es5/pds-dropdown-menu-item.entry.js.map +1 -1
  185. package/dist/esm-es5/pds-filter.entry.js +1 -1
  186. package/dist/esm-es5/pds-filter.entry.js.map +1 -1
  187. package/dist/esm-es5/pds-input.entry.js +1 -1
  188. package/dist/esm-es5/pds-input.entry.js.map +1 -1
  189. package/dist/esm-es5/pds-link.entry.js +1 -1
  190. package/dist/esm-es5/pds-link.entry.js.map +1 -1
  191. package/dist/esm-es5/pds-modal.entry.js +1 -1
  192. package/dist/esm-es5/pds-modal.entry.js.map +1 -1
  193. package/dist/esm-es5/pds-radio-group.entry.js +1 -1
  194. package/dist/esm-es5/pds-radio-group.entry.js.map +1 -1
  195. package/dist/esm-es5/pds-radio.entry.js +1 -1
  196. package/dist/esm-es5/pds-radio.entry.js.map +1 -1
  197. package/dist/esm-es5/pds-select.entry.js +1 -1
  198. package/dist/esm-es5/pds-select.entry.js.map +1 -1
  199. package/dist/esm-es5/pds-tab.entry.js +1 -1
  200. package/dist/esm-es5/pds-tab.entry.js.map +1 -1
  201. package/dist/esm-es5/pds-table-cell.entry.js.map +1 -1
  202. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  203. package/dist/esm-es5/pds-table-head-cell.entry.js.map +1 -1
  204. package/dist/esm-es5/pds-table-head.entry.js +1 -1
  205. package/dist/esm-es5/pds-table-head.entry.js.map +1 -1
  206. package/dist/esm-es5/pds-table-row.entry.js +1 -1
  207. package/dist/esm-es5/pds-table-row.entry.js.map +1 -1
  208. package/dist/esm-es5/pds-table.entry.js +1 -1
  209. package/dist/esm-es5/pds-table.entry.js.map +1 -1
  210. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  211. package/dist/esm-es5/pds-textarea.entry.js.map +1 -1
  212. package/dist/esm-es5/pine-core.js +1 -1
  213. package/dist/pine-core/mock-pds-modal.entry.esm.js.map +1 -1
  214. package/dist/pine-core/p--gPqixhD.system.js.map +1 -1
  215. package/dist/pine-core/p-002fe322.system.entry.js +2 -0
  216. package/dist/pine-core/p-002fe322.system.entry.js.map +1 -0
  217. package/dist/pine-core/p-098cbcd7.system.entry.js +2 -0
  218. package/dist/pine-core/p-098cbcd7.system.entry.js.map +1 -0
  219. package/dist/pine-core/p-35f644cf.system.entry.js +2 -0
  220. package/dist/pine-core/{p-36ad78b5.system.entry.js.map → p-35f644cf.system.entry.js.map} +1 -1
  221. package/dist/pine-core/p-41d89f20.entry.js +2 -0
  222. package/dist/pine-core/p-41d89f20.entry.js.map +1 -0
  223. package/dist/pine-core/p-478d1107.entry.js +2 -0
  224. package/dist/pine-core/{p-41cc9270.entry.js.map → p-478d1107.entry.js.map} +1 -1
  225. package/dist/pine-core/p-4SEjggIC.system.js.map +1 -0
  226. package/dist/pine-core/p-4d25449c.entry.js +2 -0
  227. package/dist/pine-core/p-4d25449c.entry.js.map +1 -0
  228. package/dist/pine-core/p-534e44cb.system.entry.js +4 -0
  229. package/dist/pine-core/{p-bee8d4b8.system.entry.js.map → p-534e44cb.system.entry.js.map} +1 -1
  230. package/dist/pine-core/p-54a56826.entry.js +3 -0
  231. package/dist/pine-core/{p-66160018.entry.js.map → p-54a56826.entry.js.map} +1 -1
  232. package/dist/pine-core/p-5b7ab891.entry.js +2 -0
  233. package/dist/pine-core/{p-233a6680.entry.js.map → p-5b7ab891.entry.js.map} +1 -1
  234. package/dist/pine-core/p-646ac76d.entry.js +2 -0
  235. package/dist/pine-core/p-646ac76d.entry.js.map +1 -0
  236. package/dist/pine-core/p-6bc7d67f.system.entry.js +2 -0
  237. package/dist/pine-core/{p-c03e2c5d.system.entry.js.map → p-6bc7d67f.system.entry.js.map} +1 -1
  238. package/dist/pine-core/p-6fcac53b.entry.js +2 -0
  239. package/dist/pine-core/{p-96be2d57.entry.js.map → p-6fcac53b.entry.js.map} +1 -1
  240. package/dist/pine-core/{p-2d3da08b.system.entry.js → p-8f2a5a4c.system.entry.js} +2 -2
  241. package/dist/pine-core/p-8f2a5a4c.system.entry.js.map +1 -0
  242. package/dist/pine-core/{p-43f1eead.entry.js → p-9b3794cd.entry.js} +2 -2
  243. package/dist/pine-core/p-9b3794cd.entry.js.map +1 -0
  244. package/dist/pine-core/p-9bfaed7e.system.entry.js +2 -0
  245. package/dist/pine-core/p-9bfaed7e.system.entry.js.map +1 -0
  246. package/dist/pine-core/p-9c0ec80a.entry.js +2 -0
  247. package/dist/pine-core/p-9c0ec80a.entry.js.map +1 -0
  248. package/dist/pine-core/{p-3f8a5f3d.system.entry.js → p-9d6b6ff3.system.entry.js} +2 -2
  249. package/dist/pine-core/p-9d6b6ff3.system.entry.js.map +1 -0
  250. package/dist/pine-core/p-9e62c418.system.entry.js +2 -0
  251. package/dist/pine-core/p-9e62c418.system.entry.js.map +1 -0
  252. package/dist/pine-core/p-B4EMeCRH.system.js.map +1 -0
  253. package/dist/pine-core/p-BCKPcTKX.system.js.map +1 -0
  254. package/dist/pine-core/p-B_Co5NfG.system.js.map +1 -0
  255. package/dist/pine-core/p-Bjj4Pcbb.system.js.map +1 -0
  256. package/dist/pine-core/p-Bnp3zJ0T.system.js.map +1 -0
  257. package/dist/pine-core/p-C48G0LPH.system.js.map +1 -0
  258. package/dist/pine-core/p-CCgKUhC7.system.js.map +1 -0
  259. package/dist/pine-core/p-CTfQ_9yC.system.js.map +1 -0
  260. package/dist/pine-core/p-CXGuX44q.system.js.map +1 -1
  261. package/dist/pine-core/p-DAvCgWA9.system.js.map +1 -0
  262. package/dist/pine-core/p-DSwKfctG.system.js.map +1 -0
  263. package/dist/pine-core/p-DfCCzxYg.system.js.map +1 -0
  264. package/dist/pine-core/p-DpeOrUYB.system.js.map +1 -1
  265. package/dist/pine-core/p-DyrNlfLT.system.js.map +1 -0
  266. package/dist/pine-core/p-JAVnELnm.system.js +1 -1
  267. package/dist/pine-core/p-LEkjdrKv.system.js.map +1 -0
  268. package/dist/pine-core/p-PMNjgK0C.system.js.map +1 -0
  269. package/dist/pine-core/p-WhfStK1C.system.js.map +1 -1
  270. package/dist/pine-core/p-XCTiWii8.system.js.map +1 -0
  271. package/dist/pine-core/p-a737df90.entry.js +2 -0
  272. package/dist/pine-core/{p-d5731a05.entry.js.map → p-a737df90.entry.js.map} +1 -1
  273. package/dist/pine-core/p-a847fad3.entry.js +2 -0
  274. package/dist/pine-core/p-a847fad3.entry.js.map +1 -0
  275. package/dist/pine-core/p-ac2f9463.entry.js +2 -0
  276. package/dist/pine-core/p-ac2f9463.entry.js.map +1 -0
  277. package/dist/pine-core/p-b30424e3.system.entry.js +2 -0
  278. package/dist/pine-core/{p-a4d094da.system.entry.js.map → p-b30424e3.system.entry.js.map} +1 -1
  279. package/dist/pine-core/p-bbc349b3.system.entry.js +2 -0
  280. package/dist/pine-core/p-bbc349b3.system.entry.js.map +1 -0
  281. package/dist/pine-core/p-cb6c279a.system.entry.js +2 -0
  282. package/dist/pine-core/{p-6bc81a5b.system.entry.js.map → p-cb6c279a.system.entry.js.map} +1 -1
  283. package/dist/pine-core/p-cf2e1c07.system.entry.js +2 -0
  284. package/dist/pine-core/{p-e31ea2ae.system.entry.js.map → p-cf2e1c07.system.entry.js.map} +1 -1
  285. package/dist/pine-core/p-d98310b9.system.entry.js +2 -0
  286. package/dist/pine-core/p-d98310b9.system.entry.js.map +1 -0
  287. package/dist/pine-core/{p-b8047816.system.entry.js → p-dcc6ad67.system.entry.js} +2 -2
  288. package/dist/pine-core/{p-b8047816.system.entry.js.map → p-dcc6ad67.system.entry.js.map} +1 -1
  289. package/dist/pine-core/p-e011d7e5.entry.js +2 -0
  290. package/dist/pine-core/p-e011d7e5.entry.js.map +1 -0
  291. package/dist/pine-core/p-e2104c31.entry.js +2 -0
  292. package/dist/pine-core/{p-66597ea5.entry.js.map → p-e2104c31.entry.js.map} +1 -1
  293. package/dist/pine-core/p-e3d76aa3.system.entry.js +2 -0
  294. package/dist/pine-core/p-e3d76aa3.system.entry.js.map +1 -0
  295. package/dist/pine-core/p-e8aad8dc.entry.js +2 -0
  296. package/dist/pine-core/p-e8aad8dc.entry.js.map +1 -0
  297. package/dist/pine-core/p-f69d3fd6.entry.js +2 -0
  298. package/dist/pine-core/p-f69d3fd6.entry.js.map +1 -0
  299. package/dist/pine-core/p-f79f6f08.system.entry.js +2 -0
  300. package/dist/pine-core/p-f79f6f08.system.entry.js.map +1 -0
  301. package/dist/pine-core/p-f82b464c.entry.js +2 -0
  302. package/dist/pine-core/{p-4c0797f2.entry.js.map → p-f82b464c.entry.js.map} +1 -1
  303. package/dist/pine-core/p-fc0ee6da.entry.js +2 -0
  304. package/dist/pine-core/p-fc0ee6da.entry.js.map +1 -0
  305. package/dist/pine-core/p-fe28b975.system.entry.js +2 -0
  306. package/dist/pine-core/p-fe28b975.system.entry.js.map +1 -0
  307. package/dist/pine-core/p-jBhqNO5u.system.js.map +1 -0
  308. package/dist/pine-core/p-r_cS5LMw.system.js.map +1 -0
  309. package/dist/pine-core/pds-alert.entry.esm.js.map +1 -1
  310. package/dist/pine-core/pds-avatar.entry.esm.js.map +1 -1
  311. package/dist/pine-core/pds-button.entry.esm.js.map +1 -1
  312. package/dist/pine-core/pds-checkbox.entry.esm.js.map +1 -1
  313. package/dist/pine-core/pds-chip.entry.esm.js.map +1 -1
  314. package/dist/pine-core/pds-combobox.entry.esm.js.map +1 -1
  315. package/dist/pine-core/pds-dropdown-menu-item.entry.esm.js.map +1 -1
  316. package/dist/pine-core/pds-filter.entry.esm.js.map +1 -1
  317. package/dist/pine-core/pds-input.entry.esm.js.map +1 -1
  318. package/dist/pine-core/pds-link.entry.esm.js.map +1 -1
  319. package/dist/pine-core/pds-modal.entry.esm.js.map +1 -1
  320. package/dist/pine-core/pds-radio-group.entry.esm.js.map +1 -1
  321. package/dist/pine-core/pds-radio.entry.esm.js.map +1 -1
  322. package/dist/pine-core/pds-select.entry.esm.js.map +1 -1
  323. package/dist/pine-core/pds-tab.entry.esm.js.map +1 -1
  324. package/dist/pine-core/pds-table-cell.entry.esm.js.map +1 -1
  325. package/dist/pine-core/pds-table-head-cell.entry.esm.js.map +1 -1
  326. package/dist/pine-core/pds-table-head.entry.esm.js.map +1 -1
  327. package/dist/pine-core/pds-table-row.entry.esm.js.map +1 -1
  328. package/dist/pine-core/pds-table.entry.esm.js.map +1 -1
  329. package/dist/pine-core/pds-textarea.entry.esm.js.map +1 -1
  330. package/dist/pine-core/pine-core.esm.js +1 -1
  331. package/dist/types/components/pds-avatar/pds-avatar.d.ts +5 -0
  332. package/dist/types/components/pds-input/pds-input.d.ts +5 -0
  333. package/dist/types/components/pds-modal/test/mock-pds-modal.d.ts +2 -2
  334. package/dist/types/components/pds-select/pds-select.d.ts +16 -1
  335. package/dist/types/components/pds-table/pds-table-head/pds-table-head.d.ts +10 -0
  336. package/dist/types/components/pds-table/pds-table-head-cell/pds-table-head-cell.d.ts +18 -1
  337. package/dist/types/components/pds-table/pds-table-row/pds-table-row.d.ts +19 -0
  338. package/dist/types/components/pds-table/pds-table.d.ts +22 -1
  339. package/dist/types/components/pds-tabs/pds-tab/pds-tab.d.ts +6 -0
  340. package/dist/types/components/pds-textarea/pds-textarea.d.ts +5 -0
  341. package/dist/types/components.d.ts +101 -3
  342. package/dist/vscode.html-data.json +63 -6
  343. package/hydrate/index.js +318 -53
  344. package/hydrate/index.mjs +318 -53
  345. package/package.json +5 -5
  346. package/dist/pine-core/p-04f92b5a.system.entry.js +0 -2
  347. package/dist/pine-core/p-04f92b5a.system.entry.js.map +0 -1
  348. package/dist/pine-core/p-11d69ad5.system.entry.js +0 -2
  349. package/dist/pine-core/p-11d69ad5.system.entry.js.map +0 -1
  350. package/dist/pine-core/p-1282026f.entry.js +0 -2
  351. package/dist/pine-core/p-1282026f.entry.js.map +0 -1
  352. package/dist/pine-core/p-233a6680.entry.js +0 -2
  353. package/dist/pine-core/p-2d3da08b.system.entry.js.map +0 -1
  354. package/dist/pine-core/p-36ad78b5.system.entry.js +0 -2
  355. package/dist/pine-core/p-372a6081.entry.js +0 -2
  356. package/dist/pine-core/p-372a6081.entry.js.map +0 -1
  357. package/dist/pine-core/p-3f8a5f3d.system.entry.js.map +0 -1
  358. package/dist/pine-core/p-3fd0f8a9.system.entry.js +0 -2
  359. package/dist/pine-core/p-3fd0f8a9.system.entry.js.map +0 -1
  360. package/dist/pine-core/p-41cc9270.entry.js +0 -2
  361. package/dist/pine-core/p-43f1eead.entry.js.map +0 -1
  362. package/dist/pine-core/p-46e5a568.entry.js +0 -2
  363. package/dist/pine-core/p-46e5a568.entry.js.map +0 -1
  364. package/dist/pine-core/p-4c0797f2.entry.js +0 -2
  365. package/dist/pine-core/p-5d7c4fbb.entry.js +0 -2
  366. package/dist/pine-core/p-5d7c4fbb.entry.js.map +0 -1
  367. package/dist/pine-core/p-6150fb43.system.entry.js +0 -2
  368. package/dist/pine-core/p-6150fb43.system.entry.js.map +0 -1
  369. package/dist/pine-core/p-65c566a2.system.entry.js +0 -2
  370. package/dist/pine-core/p-65c566a2.system.entry.js.map +0 -1
  371. package/dist/pine-core/p-66160018.entry.js +0 -3
  372. package/dist/pine-core/p-66597ea5.entry.js +0 -2
  373. package/dist/pine-core/p-6bc81a5b.system.entry.js +0 -2
  374. package/dist/pine-core/p-6c3299f9.system.entry.js +0 -2
  375. package/dist/pine-core/p-6c3299f9.system.entry.js.map +0 -1
  376. package/dist/pine-core/p-6de73f62.entry.js +0 -2
  377. package/dist/pine-core/p-6de73f62.entry.js.map +0 -1
  378. package/dist/pine-core/p-8d6fa6f7.entry.js +0 -2
  379. package/dist/pine-core/p-8d6fa6f7.entry.js.map +0 -1
  380. package/dist/pine-core/p-96be2d57.entry.js +0 -2
  381. package/dist/pine-core/p-9ddf4f1f.entry.js +0 -2
  382. package/dist/pine-core/p-9ddf4f1f.entry.js.map +0 -1
  383. package/dist/pine-core/p-B81sAPMq.system.js.map +0 -1
  384. package/dist/pine-core/p-BUwuPP5j.system.js.map +0 -1
  385. package/dist/pine-core/p-BVjyFx0r.system.js.map +0 -1
  386. package/dist/pine-core/p-C9T6sYau.system.js.map +0 -1
  387. package/dist/pine-core/p-CWaidsBR.system.js.map +0 -1
  388. package/dist/pine-core/p-Ch7MRoFE.system.js.map +0 -1
  389. package/dist/pine-core/p-CiqRCskL.system.js.map +0 -1
  390. package/dist/pine-core/p-CoF_9_BM.system.js.map +0 -1
  391. package/dist/pine-core/p-CrzS8Mmy.system.js.map +0 -1
  392. package/dist/pine-core/p-Cwz8YTwo.system.js.map +0 -1
  393. package/dist/pine-core/p-DaQV83Gx.system.js.map +0 -1
  394. package/dist/pine-core/p-GKNvlYGa.system.js.map +0 -1
  395. package/dist/pine-core/p-Ma8AuMzD.system.js.map +0 -1
  396. package/dist/pine-core/p-RO-Y2DRT.system.js.map +0 -1
  397. package/dist/pine-core/p-a4d094da.system.entry.js +0 -2
  398. package/dist/pine-core/p-ac050f83.entry.js +0 -2
  399. package/dist/pine-core/p-ac050f83.entry.js.map +0 -1
  400. package/dist/pine-core/p-b59ac781.entry.js +0 -2
  401. package/dist/pine-core/p-b59ac781.entry.js.map +0 -1
  402. package/dist/pine-core/p-b6a503cc.system.entry.js +0 -2
  403. package/dist/pine-core/p-b6a503cc.system.entry.js.map +0 -1
  404. package/dist/pine-core/p-b9a14564.system.entry.js +0 -2
  405. package/dist/pine-core/p-b9a14564.system.entry.js.map +0 -1
  406. package/dist/pine-core/p-bee8d4b8.system.entry.js +0 -4
  407. package/dist/pine-core/p-c03e2c5d.system.entry.js +0 -2
  408. package/dist/pine-core/p-c2d17093.system.entry.js +0 -2
  409. package/dist/pine-core/p-c2d17093.system.entry.js.map +0 -1
  410. package/dist/pine-core/p-cf4df489.entry.js +0 -2
  411. package/dist/pine-core/p-cf4df489.entry.js.map +0 -1
  412. package/dist/pine-core/p-d5731a05.entry.js +0 -2
  413. package/dist/pine-core/p-e31ea2ae.system.entry.js +0 -2
  414. package/dist/pine-core/p-eHySdsWM.system.js.map +0 -1
  415. package/dist/pine-core/p-qkIMFuAW.system.js.map +0 -1
  416. package/dist/pine-core/p-s-tFgs4I.system.js.map +0 -1
  417. package/dist/pine-core/p-uv97KtT8.system.js.map +0 -1
@@ -25,6 +25,11 @@ export class PdsAvatar {
25
25
  * @defaultValue null
26
26
  */
27
27
  this.image = null;
28
+ /**
29
+ * The initials to display in the avatar when no image is provided.
30
+ * @defaultValue null
31
+ */
32
+ this.initials = null;
28
33
  /**
29
34
  * Size of the avatar. Value can be preset or custom.
30
35
  * @defaultValue lg
@@ -54,15 +59,22 @@ export class PdsAvatar {
54
59
  // of all preset sizes found in Figma.
55
60
  // Used to allow icons to scale to container size
56
61
  && h("pds-icon", { color: "var(--pine-color-purple-600)", class: "pds-avatar__badge", icon: checkCircleFilled, size: "33.53%" }));
57
- this.renderIconOrImage = () => (this.image
58
- ? h("img", { alt: this.alt, src: this.image })
62
+ this.renderIconOrImage = () => {
63
+ if (this.image) {
64
+ return h("img", { alt: this.alt, src: this.image });
65
+ }
66
+ if (this.initials) {
67
+ return (h("svg", { class: "pds-avatar__initials", viewBox: "0 0 32 32" }, h("text", { x: "16", y: "20" }, this.initials)));
68
+ }
59
69
  // Percentage is average size of icon in relation to total avatar size
60
70
  // of all preset sizes found in Figma.
61
71
  // Used to allow icons to scale to container size
62
- : h("pds-icon", { color: "var(--pine-color-brand)", icon: userFilled, size: "33.53%" }));
72
+ return h("pds-icon", { color: "var(--pine-color-brand)", icon: userFilled, size: "33.53%" });
73
+ };
63
74
  this.classNames = () => ({
64
75
  'pds-avatar': true,
65
76
  [`pds-avatar--has-image`]: this.image !== '' && this.image !== null, // Remove when FF supports :has selector
77
+ [`pds-avatar--has-initials`]: this.initials !== '' && this.initials !== null,
66
78
  [`pds-avatar--${this.variant}`]: this.variant === 'admin'
67
79
  });
68
80
  }
@@ -82,7 +94,7 @@ export class PdsAvatar {
82
94
  }
83
95
  }
84
96
  render() {
85
- return (h(Host, { key: '259ee077ffbd3eccd1992ad2963bea2f1dcce315', id: this.componentId, class: Object.assign({}, this.classNames()) }, this.renderAvatar()));
97
+ return (h(Host, { key: '4e659a1fce50577363ec034c63ef75b5b4ddd29b', id: this.componentId, class: Object.assign({}, this.classNames()) }, this.renderAvatar()));
86
98
  }
87
99
  static get is() { return "pds-avatar"; }
88
100
  static get encapsulation() { return "shadow"; }
@@ -209,6 +221,29 @@ export class PdsAvatar {
209
221
  "attribute": "image",
210
222
  "defaultValue": "null"
211
223
  },
224
+ "initials": {
225
+ "type": "string",
226
+ "mutable": false,
227
+ "complexType": {
228
+ "original": "string | null",
229
+ "resolved": "string",
230
+ "references": {}
231
+ },
232
+ "required": false,
233
+ "optional": true,
234
+ "docs": {
235
+ "tags": [{
236
+ "name": "defaultValue",
237
+ "text": "null"
238
+ }],
239
+ "text": "The initials to display in the avatar when no image is provided."
240
+ },
241
+ "getter": false,
242
+ "setter": false,
243
+ "reflect": false,
244
+ "attribute": "initials",
245
+ "defaultValue": "null"
246
+ },
212
247
  "size": {
213
248
  "type": "string",
214
249
  "mutable": false,
@@ -1 +1 @@
1
- {"version":3,"file":"pds-avatar.js","sourceRoot":"","sources":["../../../../src/components/pds-avatar/pds-avatar.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Prop } from '@stencil/core';\nimport { checkCircleFilled, userFilled } from '@pine-ds/icons/icons';\n\n/**\n * @part image - The main image element that represents the avatar component.\n*/\n@Component({\n tag: 'pds-avatar',\n styleUrls: ['pds-avatar.scss'],\n shadow: true,\n})\nexport class PdsAvatar {\n\n /**\n * The alt for a custom user image.\n * @defaultValue null\n */\n @Prop() alt?: string | null = null;\n\n /**\n * Determines whether the badge is visible or not.\n * @defaultValue false\n */\n @Prop() badge? = false;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Determines whether the avatar functions as a dropdown trigger.\n * @defaultValue false\n */\n @Prop() dropdown? = false;\n\n /**\n * The src for a custom user image.\n * @defaultValue null\n */\n @Prop() image?: string | null = null;\n\n /**\n * Size of the avatar. Value can be preset or custom.\n * @defaultValue lg\n */\n @Prop({ reflect: true }) size?:\n | 'xl' // 64px\n | 'lg' // 56px\n | 'md' // 40px\n | 'sm' // 32px\n | 'xs' // 24px\n | string = 'lg';\n\n /**\n * Determines the variant of avatar. Changes appearance accordingly.\n * @defaultValue customer\n */\n @Prop({ reflect: true }) variant?: 'customer' | 'admin' = 'customer';\n\n private avatarSize() {\n const sizes: { [key: string]: any } = {\n xs: '24px',\n sm: '32px',\n md: '40px',\n lg: '56px',\n xl: '64px',\n }\n\n if (sizes[this.size]) {\n return sizes[this.size];\n } else {\n return this.size\n }\n }\n\n private renderAssetWrapper = () => {\n const style = {\n height: this.avatarSize(),\n width: this.avatarSize()\n };\n\n return (\n <div style={style} part=\"asset-wrapper\">\n {this.renderIconOrImage()}\n {this.renderBadge()}\n </div>\n )\n };\n\n private renderAvatar = () => {\n return (\n this.dropdown\n ?\n <button class=\"pds-avatar__button\" type=\"button\" aria-label=\"Avatar dropdown trigger\">\n {this.renderAssetWrapper()}\n </button>\n :\n this.renderAssetWrapper()\n )\n };\n\n private renderBadge = () => (\n this.badge\n // Percentage is average size of icon in relation to total avatar size\n // of all preset sizes found in Figma.\n // Used to allow icons to scale to container size\n && <pds-icon color=\"var(--pine-color-purple-600)\" class=\"pds-avatar__badge\" icon={checkCircleFilled} size=\"33.53%\"></pds-icon>\n );\n\n private renderIconOrImage = () => (\n this.image\n ? <img alt={this.alt} src={this.image} />\n // Percentage is average size of icon in relation to total avatar size\n // of all preset sizes found in Figma.\n // Used to allow icons to scale to container size\n : <pds-icon color=\"var(--pine-color-brand)\" icon={userFilled} size=\"33.53%\"></pds-icon>\n );\n\n private classNames = () => (\n {\n 'pds-avatar': true,\n [`pds-avatar--has-image`]: this.image !== '' && this.image !== null, // Remove when FF supports :has selector\n [`pds-avatar--${this.variant}`]: this.variant === 'admin'\n }\n );\n\n render() {\n\n return (\n <Host\n id={this.componentId}\n class={{...this.classNames()}}\n >\n {this.renderAvatar()}\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"pds-avatar.js","sourceRoot":"","sources":["../../../../src/components/pds-avatar/pds-avatar.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Prop } from '@stencil/core';\nimport { checkCircleFilled, userFilled } from '@pine-ds/icons/icons';\n\n/**\n * @part image - The main image element that represents the avatar component.\n*/\n@Component({\n tag: 'pds-avatar',\n styleUrls: ['pds-avatar.scss'],\n shadow: true,\n})\nexport class PdsAvatar {\n\n /**\n * The alt for a custom user image.\n * @defaultValue null\n */\n @Prop() alt?: string | null = null;\n\n /**\n * Determines whether the badge is visible or not.\n * @defaultValue false\n */\n @Prop() badge? = false;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Determines whether the avatar functions as a dropdown trigger.\n * @defaultValue false\n */\n @Prop() dropdown? = false;\n\n /**\n * The src for a custom user image.\n * @defaultValue null\n */\n @Prop() image?: string | null = null;\n\n /**\n * The initials to display in the avatar when no image is provided.\n * @defaultValue null\n */\n @Prop() initials?: string | null = null;\n\n /**\n * Size of the avatar. Value can be preset or custom.\n * @defaultValue lg\n */\n @Prop({ reflect: true }) size?:\n | 'xl' // 64px\n | 'lg' // 56px\n | 'md' // 40px\n | 'sm' // 32px\n | 'xs' // 24px\n | string = 'lg';\n\n /**\n * Determines the variant of avatar. Changes appearance accordingly.\n * @defaultValue customer\n */\n @Prop({ reflect: true }) variant?: 'customer' | 'admin' = 'customer';\n\n private avatarSize() {\n const sizes: { [key: string]: any } = {\n xs: '24px',\n sm: '32px',\n md: '40px',\n lg: '56px',\n xl: '64px',\n }\n\n if (sizes[this.size]) {\n return sizes[this.size];\n } else {\n return this.size\n }\n }\n\n private renderAssetWrapper = () => {\n const style = {\n height: this.avatarSize(),\n width: this.avatarSize()\n };\n\n return (\n <div style={style} part=\"asset-wrapper\">\n {this.renderIconOrImage()}\n {this.renderBadge()}\n </div>\n )\n };\n\n private renderAvatar = () => {\n return (\n this.dropdown\n ?\n <button class=\"pds-avatar__button\" type=\"button\" aria-label=\"Avatar dropdown trigger\">\n {this.renderAssetWrapper()}\n </button>\n :\n this.renderAssetWrapper()\n )\n };\n\n private renderBadge = () => (\n this.badge\n // Percentage is average size of icon in relation to total avatar size\n // of all preset sizes found in Figma.\n // Used to allow icons to scale to container size\n && <pds-icon color=\"var(--pine-color-purple-600)\" class=\"pds-avatar__badge\" icon={checkCircleFilled} size=\"33.53%\"></pds-icon>\n );\n\n private renderIconOrImage = () => {\n if (this.image) {\n return <img alt={this.alt} src={this.image} />;\n }\n\n if (this.initials) {\n return (\n <svg class=\"pds-avatar__initials\" viewBox=\"0 0 32 32\">\n <text x=\"16\" y=\"20\">{this.initials}</text>\n </svg>\n );\n }\n\n // Percentage is average size of icon in relation to total avatar size\n // of all preset sizes found in Figma.\n // Used to allow icons to scale to container size\n return <pds-icon color=\"var(--pine-color-brand)\" icon={userFilled} size=\"33.53%\"></pds-icon>;\n };\n\n private classNames = () => (\n {\n 'pds-avatar': true,\n [`pds-avatar--has-image`]: this.image !== '' && this.image !== null, // Remove when FF supports :has selector\n [`pds-avatar--has-initials`]: this.initials !== '' && this.initials !== null,\n [`pds-avatar--${this.variant}`]: this.variant === 'admin'\n }\n );\n\n render() {\n\n return (\n <Host\n id={this.componentId}\n class={{...this.classNames()}}\n >\n {this.renderAvatar()}\n </Host>\n );\n }\n}\n"]}
@@ -9,6 +9,7 @@ export default {
9
9
  componentId: null,
10
10
  dropdown: false,
11
11
  image: null,
12
+ initials: null,
12
13
  size: null,
13
14
  variant: 'customer',
14
15
  },
@@ -22,6 +23,7 @@ const BaseTemplate = (args) => html`<pds-avatar
22
23
  dropdown="${args.dropdown}"
23
24
  component-id="${args.componentId}"
24
25
  image="${args.image}"
26
+ initials="${args.initials}"
25
27
  size="${args.size}"
26
28
  variant="${args.variant}"
27
29
  >
@@ -61,3 +63,16 @@ Image.args = {
61
63
  image: imgFile,
62
64
  size: 'xl'
63
65
  }
66
+
67
+ export const Initials = BaseTemplate.bind();
68
+ Initials.args = {
69
+ initials: 'KJ',
70
+ size: 'lg'
71
+ }
72
+
73
+ export const InitialsWithBadge = BaseTemplate.bind();
74
+ InitialsWithBadge.args = {
75
+ badge: true,
76
+ initials: 'KJ',
77
+ size: 'lg'
78
+ }
@@ -102,6 +102,7 @@
102
102
  --color-background-disabled: var(--pine-color-accent-disabled);
103
103
  --color-border-default: var(--pine-color-accent);
104
104
  --color-border-hover: var(--pine-color-accent-hover);
105
+ /* stylelint-disable-next-line pine-design-system/prefer-semantic-tokens */
105
106
  --color-text-default: var(--pine-color-white);
106
107
  --color-text-disabled: var(--pine-color-text-accent-disabled);
107
108
  --color-outline: var(--pine-color-focus-ring);
@@ -114,6 +115,7 @@
114
115
  --color-background-disabled: var(--pine-color-danger-disabled);
115
116
  --color-border-default: var(--pine-color-danger);
116
117
  --color-border-hover: var(--pine-color-danger-hover);
118
+ /* stylelint-disable-next-line pine-design-system/prefer-semantic-tokens */
117
119
  --color-text-default: var(--pine-color-white);
118
120
  --color-text-disabled: var(--pine-color-text-danger-disabled);
119
121
  --color-outline: var(--pine-color-focus-ring-danger);
@@ -158,6 +160,7 @@
158
160
  .pds-button--filter {
159
161
  --color-background-default: var(--pine-color-background-container);
160
162
  --color-background-hover: var(--pine-color-background-subtle);
163
+ /* stylelint-disable-next-line pine-design-system/prefer-semantic-tokens */
161
164
  --color-background-disabled: var(--pine-color-white);
162
165
  --color-border-default: transparent;
163
166
  --color-border-hover: transparent;
@@ -31,6 +31,7 @@
31
31
  border-color: var(--pine-color-accent-hover);
32
32
  }
33
33
  :host(.is-indeterminate) input::after {
34
+ /* stylelint-disable-next-line pine-design-system/prefer-semantic-tokens */
34
35
  border: 1px solid var(--pine-color-white);
35
36
  border-block-end: var(--pine-border-width-none);
36
37
  border-block-start: var(--pine-border-width-none);
@@ -70,6 +71,7 @@ input:checked:hover {
70
71
  border-color: var(--pine-color-accent-hover);
71
72
  }
72
73
  input:checked::after {
74
+ /* stylelint-disable-next-line pine-design-system/prefer-semantic-tokens */
73
75
  border: 1px solid var(--pine-color-white);
74
76
  border-block-start: var(--pine-border-width-none);
75
77
  border-inline-start: var(--pine-border-width-none);
@@ -7,6 +7,8 @@
7
7
  padding-inline: var(--pine-dimension-150);
8
8
  }
9
9
 
10
+ /* stylelint-disable pine-design-system/prefer-semantic-tokens */
11
+ /* stylelint-enable pine-design-system/prefer-semantic-tokens */
10
12
  :host(.pds-chip--accent) {
11
13
  background: var(--pine-chip-color-accent);
12
14
  border: var(--pine-border-width) solid var(--pine-chip-color-accent-hover);
@@ -234,14 +236,17 @@
234
236
  }
235
237
 
236
238
  :host(.pds-chip--brand) {
239
+ /* stylelint-disable-next-line pine-design-system/no-hardcoded-colors */
237
240
  background: linear-gradient(90deg, #FF3E14 0%, #6B62F2 100%);
238
241
  border: 0;
239
242
  padding: 1px;
240
243
  position: relative;
241
244
  }
242
245
  :host(.pds-chip--brand) .pds-chip__label {
246
+ /* stylelint-disable-next-line pine-design-system/no-hardcoded-colors */
243
247
  background: rgba(255, 255, 255, 0.9);
244
248
  border-radius: calc(var(--pine-dimension-sm) - 1px);
249
+ /* stylelint-disable-next-line pine-design-system/prefer-semantic-tokens */
245
250
  color: var(--pine-color-grey-900);
246
251
  font-weight: var(--pine-font-weight-medium);
247
252
  padding: var(--pine-dimension-025) var(--pine-dimension-150);
@@ -252,6 +257,7 @@
252
257
  margin-inline-end: var(--pine-dimension-2xs);
253
258
  }
254
259
  :host(.pds-chip--brand) .pds-chip__button, :host(.pds-chip--brand) .pds-chip__close {
260
+ /* stylelint-disable-next-line pine-design-system/prefer-semantic-tokens */
255
261
  color: var(--pine-color-grey-900);
256
262
  font-weight: var(--pine-font-weight-medium);
257
263
  position: relative;
@@ -261,5 +267,6 @@
261
267
  margin-inline-end: var(--pine-dimension-2xs);
262
268
  }
263
269
  :host(.pds-chip--brand) .pds-chip__close:hover {
270
+ /* stylelint-disable-next-line pine-design-system/no-hardcoded-colors */
264
271
  background: rgba(255, 255, 255, 0.8);
265
272
  }
@@ -145,7 +145,7 @@
145
145
  background: var(--color-background-default, var(--pine-color-secondary));
146
146
  border: var(--pine-border);
147
147
  border-radius: var(--pine-border-radius-full);
148
- color: var(--color-text-default, #ffffff);
148
+ color: var(--color-text-default, var(--pine-color-text-inverse-emphasis));
149
149
  cursor: pointer;
150
150
  display: flex;
151
151
  font: var(--pine-typography-body-medium);
@@ -218,6 +218,7 @@
218
218
  --color-border-hover: var(--pine-color-accent-hover);
219
219
  --color-border-disabled: var(--pine-color-accent-disabled);
220
220
  --color-border-focus: var(--pine-color-accent);
221
+ /* stylelint-disable-next-line pine-design-system/prefer-semantic-tokens */
221
222
  --color-text-default: var(--pine-color-white);
222
223
  --color-text-disabled: var(--pine-color-text-accent-disabled);
223
224
  --color-outline: var(--pine-color-focus-ring);
@@ -244,6 +245,7 @@
244
245
  --color-border-hover: var(--pine-color-danger-hover);
245
246
  --color-border-disabled: var(--pine-color-danger-disabled);
246
247
  --color-border-focus: var(--pine-color-danger);
248
+ /* stylelint-disable-next-line pine-design-system/prefer-semantic-tokens */
247
249
  --color-text-default: var(--pine-color-white);
248
250
  --color-text-disabled: var(--pine-color-text-danger-disabled);
249
251
  --color-outline: var(--pine-color-focus-ring-danger);
@@ -384,6 +386,7 @@
384
386
  }
385
387
 
386
388
  .pds-combobox__chip-trigger--brand {
389
+ /* stylelint-disable-next-line pine-design-system/no-hardcoded-colors */
387
390
  background: linear-gradient(90deg, #FF3E14 0%, #6B62F2 100%);
388
391
  border: 0;
389
392
  color: var(--pine-color-text-neutral);
@@ -391,6 +394,7 @@
391
394
  position: relative;
392
395
  }
393
396
  .pds-combobox__chip-trigger--brand .pds-combobox__chip-trigger-label {
397
+ /* stylelint-disable-next-line pine-design-system/no-hardcoded-colors */
394
398
  background: rgba(255, 255, 255, 0.9);
395
399
  border-radius: calc(var(--pine-dimension-sm) - 1px);
396
400
  color: var(--pine-color-text-neutral);
@@ -404,6 +408,7 @@
404
408
  z-index: 1;
405
409
  }
406
410
  .pds-combobox__chip-trigger--brand:hover:not([aria-disabled=true]) .pds-combobox__chip-trigger-label {
411
+ /* stylelint-disable-next-line pine-design-system/no-hardcoded-colors */
407
412
  background: rgba(255, 255, 255, 0.8);
408
413
  }
409
414
 
@@ -63,7 +63,8 @@ pds-link::part(link):focus-visible {
63
63
 
64
64
  pds-link::part(link) {
65
65
  display: block;
66
- margin-inline: calc(var(--pine-dimension-xs) * -1);
67
- padding-inline: var(--pine-dimension-xs);
68
- width: 100%;
66
+ margin: calc(var(--pine-dimension-xs) * -1);
67
+ padding: var(--pine-dimension-xs);
68
+ text-decoration: none;
69
+ width: calc(100% + var(--pine-dimension-xs) * 2);
69
70
  }
@@ -1,5 +1,5 @@
1
1
  :host {
2
- --box-shadow-focus: 0 0 0 1px var(--pine-color-white), 0 0 0 3px var(--pine-color-focus-ring);
2
+ --box-shadow-focus: 0 0 0 1px var(--pine-color-background-container), 0 0 0 3px var(--pine-color-focus-ring);
3
3
  display: inline-block;
4
4
  position: relative;
5
5
  }
@@ -20,8 +20,8 @@
20
20
  --pds-input-addon-background: var(--pine-color-background-subtle);
21
21
  --pds-input-addon-color: var(--pine-color-text-secondary);
22
22
  --pds-input-field-min-height: var(--pine-dimension-450);
23
- --box-shadow-focus: 0 0 0 1px #ffffff, 0 0 0 3px var(--pine-color-focus-ring);
24
- --box-shadow-focus-error: 0 0 0 1px #ffffff, 0 0 0 3px var(--pine-color-focus-ring-danger);
23
+ --box-shadow-focus: 0 0 0 1px var(--pine-color-background-container), 0 0 0 3px var(--pine-color-focus-ring);
24
+ --box-shadow-focus-error: 0 0 0 1px var(--pine-color-background-container), 0 0 0 3px var(--pine-color-focus-ring-danger);
25
25
  display: inline;
26
26
  }
27
27
  :host pds-select::part(select) {
@@ -265,11 +265,13 @@
265
265
  }
266
266
 
267
267
  .pds-input__error-message {
268
- align-items: center;
269
268
  color: var(--pds-input-error-color);
270
269
  display: flex;
271
270
  gap: var(--pine-dimension-2xs);
272
271
  }
272
+ .pds-input__error-message pds-icon {
273
+ margin-block-start: var(--pine-dimension-025);
274
+ }
273
275
 
274
276
  .visually-hidden {
275
277
  border: 0;
@@ -80,6 +80,9 @@ export class PdsInput {
80
80
  this.onCompositionEnd = () => {
81
81
  this.isComposing = false;
82
82
  };
83
+ this.onKeyDownEvent = (ev) => {
84
+ this.pdsKeyDown.emit(ev);
85
+ };
83
86
  }
84
87
  /**
85
88
  * Sets focus on the native `input` in the `pds-input`. Use this method instead of the global
@@ -254,7 +257,7 @@ export class PdsInput {
254
257
  'has-prepend': this.hasPrepend,
255
258
  'has-append': this.hasAppend,
256
259
  };
257
- return (h(Host, { key: '0d467b2414d99894effb67209c034f6623f9776b', "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 && !this.hideLabel ? 'true' : null, "full-width": this.fullWidth ? 'true' : null }, h("div", { key: '8d16365611e4831c18e1b86900f7c122562cd846', class: "pds-input" }, label && (h("div", { key: '8855edd2da8d1f684fd67f901a159fb6d3db58d9', class: "pds-input__label-wrapper" }, h("label", { key: 'c761a6f511d01b24f177eff1db27dd96cea2b939', htmlFor: componentId, class: "pds-input__label" }, h("span", { key: 'e3f8f7e71c7e49b138b3b10c07efa2a90a7de22e', class: this.hideLabel ? 'visually-hidden' : '' }, label, this.required && h("span", { key: '94e0d362bdf53a7d8e5efb0b3b1f0ba8b9588a74', class: "pds-input__required-indicator" }, " *"))), !this.hideLabel && this.renderAction())), h("div", { key: '3625024f654df87566cd76521d5fd6e1fda7004e', class: inputWrapperClasses }, this.renderPrepend(), this.renderPrefix(), h("input", Object.assign({ key: '271e4fd1004c65c8463a4508324f45d341c36414', 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: '64e2efb4ed95507d9bcf54c3616780af58c05675', class: "pds-input__helper-message", id: messageId(componentId, 'helper') }, helperMessage)), errorMessage && (h("p", { key: '3ab683996ffa0331a108e028979b172078b4c6ef', class: "pds-input__error-message", id: messageId(componentId, 'error') }, h("pds-icon", { key: 'c8b357bd7757ae50d665928b9130b14128860721', icon: danger, size: "small" }), errorMessage)))));
260
+ return (h(Host, { key: 'fcc0801e5ac89d7b5c7e38a8a70734db502f6d91', "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 && !this.hideLabel ? 'true' : null, "full-width": this.fullWidth ? 'true' : null }, h("div", { key: '076fb06ace92f171376e8f32ded2224ae56c52c7', class: "pds-input" }, label && (h("div", { key: '506ef1a3521611459feb42cf4f8be7605fa068f2', class: "pds-input__label-wrapper" }, h("label", { key: '91f6ecbfda932e6e67861c3e6c012b0b6341b5d1', htmlFor: componentId, class: "pds-input__label" }, h("span", { key: 'ca869e6bb2177a0e182205b39f0e0c77178518f6', class: this.hideLabel ? 'visually-hidden' : '' }, label, this.required && h("span", { key: 'b73467056eb402e769a3aa693f224f5650a4a905', class: "pds-input__required-indicator" }, " *"))), !this.hideLabel && this.renderAction())), h("div", { key: 'a708d73a39a69ff42bc2dc25bfaaadfe143aa757', class: inputWrapperClasses }, this.renderPrepend(), this.renderPrefix(), h("input", Object.assign({ key: '35e3bccf2a1ad4360d5faaf46a47f6f96149963f', 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, onKeyDown: this.onKeyDownEvent, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd }, this.inheritedAttributes)), this.renderSuffix(), this.renderAppend()), helperMessage && (h("p", { key: '25e5765269ca8715cb5bebd544d6dd9b35e11d0f', class: "pds-input__helper-message", id: messageId(componentId, 'helper') }, helperMessage)), errorMessage && (h("p", { key: 'c9f9f94b8ff6662ed4219c0b18289791af16dd59', class: "pds-input__error-message", id: messageId(componentId, 'error') }, h("pds-icon", { key: '8e0ef62d5aa030b4d56428f84fedc93b0de1f84a', icon: danger, size: "small" }), errorMessage)))));
258
261
  }
259
262
  static get is() { return "pds-input"; }
260
263
  static get encapsulation() { return "shadow"; }
@@ -808,6 +811,26 @@ export class PdsInput {
808
811
  }
809
812
  }
810
813
  }
814
+ }, {
815
+ "method": "pdsKeyDown",
816
+ "name": "pdsKeyDown",
817
+ "bubbles": true,
818
+ "cancelable": true,
819
+ "composed": true,
820
+ "docs": {
821
+ "tags": [],
822
+ "text": "Emitted when a key is pressed down in the input."
823
+ },
824
+ "complexType": {
825
+ "original": "KeyboardEvent",
826
+ "resolved": "KeyboardEvent",
827
+ "references": {
828
+ "KeyboardEvent": {
829
+ "location": "global",
830
+ "id": "global::KeyboardEvent"
831
+ }
832
+ }
833
+ }
811
834
  }];
812
835
  }
813
836
  static get methods() {
@@ -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 * @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 formAssociated: true,\n})\nexport class PdsInput {\n\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 private internals?: ElementInternals;\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 * Visually hides the label text for instances where only the input should be displayed. Label remains accessible to assistive technology such as screen readers.\n * Note: When true, the action slot is also hidden to maintain a minimal UI.\n */\n @Prop() hideLabel: boolean;\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 whether or not the input field takes full width of its container.\n */\n @Prop() fullWidth?: boolean;\n\n /**\n * Applies highlight styling to the input field.\n */\n @Prop({ reflect: true }) highlight?: boolean;\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 connectedCallback() {\n // Initialize ElementInternals for form association\n if (this.el.attachInternals) {\n this.internals = this.el.attachInternals();\n }\n }\n\n componentDidLoad() {\n this.debounceChanged();\n this.updateAddonWidths();\n // Set initial form value\n this.updateFormValue();\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 // Update form value when value changes\n this.updateFormValue();\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 /**\n * Updates the form value using ElementInternals API\n */\n private updateFormValue() {\n if (this.internals && this.internals.setFormValue) {\n const value = this.getValue();\n this.internals.setFormValue(value || null);\n\n // Set validity based on native input validation\n if (this.nativeInput && this.internals && this.internals.setValidity) {\n this.internals.setValidity(\n this.nativeInput.validity,\n this.nativeInput.validationMessage,\n this.nativeInput\n );\n }\n }\n }\n\n /**\n * Form Associated Custom Elements API: Called when the form is reset\n */\n formResetCallback() {\n this.value = '';\n this.updateFormValue();\n }\n\n /**\n * Form Associated Custom Elements API: Called when the form is disabled\n */\n formDisabledCallback(disabled: boolean) {\n this.disabled = disabled;\n }\n\n /**\n * Form Associated Custom Elements API: Called to restore form state\n */\n formStateRestoreCallback(state: string | FormData | null) {\n if (typeof state === 'string') {\n this.value = state;\n } else if (state instanceof FormData && this.name) {\n // Extract value from FormData using the input's name\n const value = state.get(this.name);\n if (typeof value === 'string') {\n this.value = value;\n }\n }\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 && !this.hideLabel ? 'true' : null}\n full-width={this.fullWidth ? '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 <span class={this.hideLabel ? 'visually-hidden' : ''}>\n {label}\n {this.required && <span class=\"pds-input__required-indicator\"> *</span>}\n </span>\n </label>\n {!this.hideLabel && 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"]}
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 formAssociated: true,\n})\nexport class PdsInput {\n\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 private internals?: ElementInternals;\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 * Emitted when a key is pressed down in the input.\n */\n @Event() pdsKeyDown!: EventEmitter<KeyboardEvent>;\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 * Visually hides the label text for instances where only the input should be displayed. Label remains accessible to assistive technology such as screen readers.\n * Note: When true, the action slot is also hidden to maintain a minimal UI.\n */\n @Prop() hideLabel: boolean;\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 whether or not the input field takes full width of its container.\n */\n @Prop() fullWidth?: boolean;\n\n /**\n * Applies highlight styling to the input field.\n */\n @Prop({ reflect: true }) highlight?: boolean;\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 connectedCallback() {\n // Initialize ElementInternals for form association\n if (this.el.attachInternals) {\n this.internals = this.el.attachInternals();\n }\n }\n\n componentDidLoad() {\n this.debounceChanged();\n this.updateAddonWidths();\n // Set initial form value\n this.updateFormValue();\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 // Update form value when value changes\n this.updateFormValue();\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 private onKeyDownEvent = (ev: KeyboardEvent) => {\n this.pdsKeyDown.emit(ev);\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 /**\n * Updates the form value using ElementInternals API\n */\n private updateFormValue() {\n if (this.internals && this.internals.setFormValue) {\n const value = this.getValue();\n this.internals.setFormValue(value || null);\n\n // Set validity based on native input validation\n if (this.nativeInput && this.internals && this.internals.setValidity) {\n this.internals.setValidity(\n this.nativeInput.validity,\n this.nativeInput.validationMessage,\n this.nativeInput\n );\n }\n }\n }\n\n /**\n * Form Associated Custom Elements API: Called when the form is reset\n */\n formResetCallback() {\n this.value = '';\n this.updateFormValue();\n }\n\n /**\n * Form Associated Custom Elements API: Called when the form is disabled\n */\n formDisabledCallback(disabled: boolean) {\n this.disabled = disabled;\n }\n\n /**\n * Form Associated Custom Elements API: Called to restore form state\n */\n formStateRestoreCallback(state: string | FormData | null) {\n if (typeof state === 'string') {\n this.value = state;\n } else if (state instanceof FormData && this.name) {\n // Extract value from FormData using the input's name\n const value = state.get(this.name);\n if (typeof value === 'string') {\n this.value = value;\n }\n }\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 && !this.hideLabel ? 'true' : null}\n full-width={this.fullWidth ? '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 <span class={this.hideLabel ? 'visually-hidden' : ''}>\n {label}\n {this.required && <span class=\"pds-input__required-indicator\"> *</span>}\n </span>\n </label>\n {!this.hideLabel && 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 onKeyDown={this.onKeyDownEvent}\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"]}
@@ -7,7 +7,7 @@
7
7
 
8
8
  .pds-link {
9
9
  align-items: center;
10
- color: var(--color, var(--pine-color-text));
10
+ color: var(--color, var(--pds-context-link-color, var(--pine-color-text)));
11
11
  display: inline-flex;
12
12
  font-weight: var(--pine-font-weight-medium);
13
13
  }
@@ -18,7 +18,7 @@
18
18
  position: relative;
19
19
  }
20
20
  .pds-link:hover {
21
- color: var(--color, var(--pine-color-text-hover));
21
+ color: var(--color, var(--pds-context-link-color-hover, var(--pine-color-text-hover)));
22
22
  text-decoration: none;
23
23
  }
24
24
  :host([color=secondary]) .pds-link {
@@ -68,6 +68,6 @@
68
68
  text-decoration: none;
69
69
  }
70
70
  .pds-link--plain:hover {
71
- color: var(--pine-color-text-hover);
71
+ color: var(--color, var(--pds-context-link-color-hover, var(--pine-color-text-hover)));
72
72
  text-decoration: underline;
73
73
  }
@@ -1,5 +1,6 @@
1
1
  .pds-modal__backdrop {
2
2
  align-items: flex-start;
3
+ /* stylelint-disable-next-line pine-design-system/no-hardcoded-colors */
3
4
  background-color: rgba(0, 0, 0, 0.4);
4
5
  border: 0;
5
6
  display: flex;
@@ -43,9 +43,10 @@ export class PdsModal {
43
43
  return;
44
44
  // Handle Escape key to close the modal
45
45
  if (e.key === 'Escape') {
46
- // Only close if this is the innermost modal
47
- if (this.isInnermostModal()) {
48
- e.preventDefault();
46
+ // Always prevent native dialog close behavior
47
+ e.preventDefault();
48
+ // Only close if backdropDismiss is enabled and this is the innermost modal
49
+ if (this.backdropDismiss && this.isInnermostModal()) {
49
50
  this.hideModal();
50
51
  }
51
52
  return;
@@ -232,14 +233,14 @@ export class PdsModal {
232
233
  return thisZIndex === maxZIndex;
233
234
  }
234
235
  render() {
235
- return (h("dialog", { key: 'ca1fe22c9f9aa26e74234e5195c007760cbbf818', class: {
236
+ return (h("dialog", { key: 'cf2710a889d8f0e80a3551088ab38a88dc44ad1e', class: {
236
237
  'pds-modal__backdrop': true,
237
238
  'open': this.open
238
- }, "aria-modal": "true", "aria-labelledby": `${this.componentId}-heading`, onClick: this.handleBackdropClick }, h("div", { key: 'd0f297574d53dc1718277a58c2ade00a5451f96b', class: {
239
+ }, "aria-modal": "true", "aria-labelledby": `${this.componentId}-heading`, onClick: this.handleBackdropClick }, h("div", { key: '0eeb24f73429822be6c1c22ecf5b070a3ecc4e92', class: {
239
240
  'pds-modal': true,
240
241
  [`pds-modal--${this.size}`]: true,
241
242
  'pds-modal--scrollable': this.scrollable
242
- } }, h("slot", { key: '37bb5abda88b4db9304884532951980ea8b9eaf8' }))));
243
+ } }, h("slot", { key: 'f11a8d375e0c5e40f399a13170ae227374d51614' }))));
243
244
  }
244
245
  static get is() { return "pds-modal"; }
245
246
  static get originalStyleUrls() {