@pine-ds/core 3.7.0 → 3.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (604) hide show
  1. package/components/form.js +16 -1
  2. package/components/form.js.map +1 -1
  3. package/components/index2.js +1 -1
  4. package/components/index2.js.map +1 -1
  5. package/components/mock-pds-modal.js +1 -1
  6. package/components/mock-pds-modal.js.map +1 -1
  7. package/components/pds-button2.js +1 -1
  8. package/components/pds-button2.js.map +1 -1
  9. package/components/pds-checkbox2.js +7 -4
  10. package/components/pds-checkbox2.js.map +1 -1
  11. package/components/pds-chip.js +1 -100
  12. package/components/pds-chip.js.map +1 -1
  13. package/components/pds-chip2.js +105 -0
  14. package/components/pds-chip2.js.map +1 -0
  15. package/components/pds-combobox.js +414 -43
  16. package/components/pds-combobox.js.map +1 -1
  17. package/components/pds-copytext.js +3 -3
  18. package/components/pds-copytext.js.map +1 -1
  19. package/components/pds-dropdown-menu.js +1 -1
  20. package/components/pds-dropdown-menu.js.map +1 -1
  21. package/components/pds-filter.js +3 -3
  22. package/components/pds-filter.js.map +1 -1
  23. package/components/pds-input.js +1 -1
  24. package/components/pds-input.js.map +1 -1
  25. package/components/pds-modal.js +1 -1
  26. package/components/pds-modal.js.map +1 -1
  27. package/components/pds-popover.js +123 -15
  28. package/components/pds-popover.js.map +1 -1
  29. package/components/pds-radio.js +10 -4
  30. package/components/pds-radio.js.map +1 -1
  31. package/components/pds-select.js +21 -5
  32. package/components/pds-select.js.map +1 -1
  33. package/components/pds-switch.js +7 -4
  34. package/components/pds-switch.js.map +1 -1
  35. package/components/pds-tab.js +1 -1
  36. package/components/pds-tab.js.map +1 -1
  37. package/components/pds-table-cell2.js +1 -1
  38. package/components/pds-table-cell2.js.map +1 -1
  39. package/components/pds-table-head-cell2.js +1 -1
  40. package/components/pds-table-head-cell2.js.map +1 -1
  41. package/components/pds-table-head.js +1 -1
  42. package/components/pds-table-head.js.map +1 -1
  43. package/components/pds-table-row.js +1 -1
  44. package/components/pds-table-row.js.map +1 -1
  45. package/components/pds-table.js +1 -1
  46. package/components/pds-table.js.map +1 -1
  47. package/components/pds-tabs.js +14 -4
  48. package/components/pds-tabs.js.map +1 -1
  49. package/components/pds-textarea.js +9 -6
  50. package/components/pds-textarea.js.map +1 -1
  51. package/components/pds-tooltip.js +4 -4
  52. package/components/pds-tooltip.js.map +1 -1
  53. package/dist/cjs/{form-Bx4nzJBo.js → form-hmpgbT1I.js} +18 -2
  54. package/dist/cjs/form-hmpgbT1I.js.map +1 -0
  55. package/dist/cjs/{index-CTirFLR-.js → index-DtnvzYhe.js} +3 -3
  56. package/dist/cjs/index-DtnvzYhe.js.map +1 -0
  57. package/dist/cjs/loader.cjs.js +1 -1
  58. package/dist/cjs/mock-pds-modal.cjs.entry.js +1 -1
  59. package/dist/cjs/mock-pds-modal.cjs.entry.js.map +1 -1
  60. package/dist/cjs/mock-pds-modal.entry.cjs.js.map +1 -1
  61. package/dist/cjs/pds-accordion.cjs.entry.js +1 -1
  62. package/dist/cjs/pds-avatar.cjs.entry.js +1 -1
  63. package/dist/cjs/pds-button.cjs.entry.js +2 -2
  64. package/dist/cjs/pds-button.cjs.entry.js.map +1 -1
  65. package/dist/cjs/pds-button.entry.cjs.js.map +1 -1
  66. package/dist/cjs/pds-checkbox.cjs.entry.js +8 -5
  67. package/dist/cjs/pds-checkbox.cjs.entry.js.map +1 -1
  68. package/dist/cjs/pds-checkbox.entry.cjs.js.map +1 -1
  69. package/dist/cjs/pds-chip.cjs.entry.js +3 -3
  70. package/dist/cjs/pds-chip.cjs.entry.js.map +1 -1
  71. package/dist/cjs/pds-chip.entry.cjs.js.map +1 -1
  72. package/dist/cjs/pds-combobox.cjs.entry.js +398 -40
  73. package/dist/cjs/pds-combobox.cjs.entry.js.map +1 -1
  74. package/dist/cjs/pds-combobox.entry.cjs.js.map +1 -1
  75. package/dist/cjs/pds-copytext.cjs.entry.js +4 -4
  76. package/dist/cjs/pds-copytext.cjs.entry.js.map +1 -1
  77. package/dist/cjs/pds-copytext.entry.cjs.js.map +1 -1
  78. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +1 -1
  79. package/dist/cjs/pds-dropdown-menu.cjs.entry.js.map +1 -1
  80. package/dist/cjs/pds-dropdown-menu.entry.cjs.js.map +1 -1
  81. package/dist/cjs/pds-filter.cjs.entry.js +4 -4
  82. package/dist/cjs/pds-filter.cjs.entry.js.map +1 -1
  83. package/dist/cjs/pds-filter.entry.cjs.js.map +1 -1
  84. package/dist/cjs/pds-input.cjs.entry.js +3 -3
  85. package/dist/cjs/pds-input.cjs.entry.js.map +1 -1
  86. package/dist/cjs/pds-input.entry.cjs.js.map +1 -1
  87. package/dist/cjs/pds-link.cjs.entry.js +1 -1
  88. package/dist/cjs/pds-modal.cjs.entry.js +1 -1
  89. package/dist/cjs/pds-modal.cjs.entry.js.map +1 -1
  90. package/dist/cjs/pds-modal.entry.cjs.js.map +1 -1
  91. package/dist/cjs/pds-popover.cjs.entry.js +117 -12
  92. package/dist/cjs/pds-popover.cjs.entry.js.map +1 -1
  93. package/dist/cjs/pds-popover.entry.cjs.js.map +1 -1
  94. package/dist/cjs/pds-radio.cjs.entry.js +11 -5
  95. package/dist/cjs/pds-radio.cjs.entry.js.map +1 -1
  96. package/dist/cjs/pds-radio.entry.cjs.js.map +1 -1
  97. package/dist/cjs/pds-select.cjs.entry.js +20 -5
  98. package/dist/cjs/pds-select.cjs.entry.js.map +1 -1
  99. package/dist/cjs/pds-select.entry.cjs.js.map +1 -1
  100. package/dist/cjs/pds-sortable-item.cjs.entry.js +1 -1
  101. package/dist/cjs/pds-switch.cjs.entry.js +8 -5
  102. package/dist/cjs/pds-switch.cjs.entry.js.map +1 -1
  103. package/dist/cjs/pds-switch.entry.cjs.js.map +1 -1
  104. package/dist/cjs/pds-tab.cjs.entry.js +1 -1
  105. package/dist/cjs/pds-tab.cjs.entry.js.map +1 -1
  106. package/dist/cjs/pds-tab.entry.cjs.js.map +1 -1
  107. package/dist/cjs/pds-table-cell.cjs.entry.js +1 -1
  108. package/dist/cjs/pds-table-cell.cjs.entry.js.map +1 -1
  109. package/dist/cjs/pds-table-cell.entry.cjs.js.map +1 -1
  110. package/dist/cjs/pds-table-head-cell.cjs.entry.js +2 -2
  111. package/dist/cjs/pds-table-head-cell.cjs.entry.js.map +1 -1
  112. package/dist/cjs/pds-table-head-cell.entry.cjs.js.map +1 -1
  113. package/dist/cjs/pds-table-head.cjs.entry.js +1 -1
  114. package/dist/cjs/pds-table-head.cjs.entry.js.map +1 -1
  115. package/dist/cjs/pds-table-head.entry.cjs.js.map +1 -1
  116. package/dist/cjs/pds-table-row.cjs.entry.js +1 -1
  117. package/dist/cjs/pds-table-row.cjs.entry.js.map +1 -1
  118. package/dist/cjs/pds-table-row.entry.cjs.js.map +1 -1
  119. package/dist/cjs/pds-table.cjs.entry.js +1 -1
  120. package/dist/cjs/pds-table.cjs.entry.js.map +1 -1
  121. package/dist/cjs/pds-table.entry.cjs.js.map +1 -1
  122. package/dist/cjs/pds-tabs.cjs.entry.js +14 -4
  123. package/dist/cjs/pds-tabs.cjs.entry.js.map +1 -1
  124. package/dist/cjs/pds-tabs.entry.cjs.js.map +1 -1
  125. package/dist/cjs/pds-textarea.cjs.entry.js +10 -7
  126. package/dist/cjs/pds-textarea.cjs.entry.js.map +1 -1
  127. package/dist/cjs/pds-textarea.entry.cjs.js.map +1 -1
  128. package/dist/cjs/pds-tooltip.cjs.entry.js +4 -4
  129. package/dist/cjs/pds-tooltip.cjs.entry.js.map +1 -1
  130. package/dist/cjs/pds-tooltip.entry.cjs.js.map +1 -1
  131. package/dist/cjs/pine-core.cjs.js +1 -1
  132. package/dist/collection/components/pds-button/pds-button.css +6 -3
  133. package/dist/collection/components/pds-checkbox/pds-checkbox.js +7 -4
  134. package/dist/collection/components/pds-checkbox/pds-checkbox.js.map +1 -1
  135. package/dist/collection/components/pds-chip/pds-chip.css +2 -2
  136. package/dist/collection/components/pds-chip/pds-chip.js +17 -5
  137. package/dist/collection/components/pds-chip/pds-chip.js.map +1 -1
  138. package/dist/collection/components/pds-combobox/pds-combobox.css +175 -4
  139. package/dist/collection/components/pds-combobox/pds-combobox.js +516 -43
  140. package/dist/collection/components/pds-combobox/pds-combobox.js.map +1 -1
  141. package/dist/collection/components/pds-combobox/stories/pds-combobox.stories.js +79 -2
  142. package/dist/collection/components/pds-copytext/pds-copytext.css +6 -3
  143. package/dist/collection/components/pds-copytext/pds-copytext.js +2 -2
  144. package/dist/collection/components/pds-copytext/pds-copytext.js.map +1 -1
  145. package/dist/collection/components/pds-copytext/stories/pds-copytext.stories.js +1 -1
  146. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.css +1 -1
  147. package/dist/collection/components/pds-filters/pds-filter/pds-filter.css +1 -1
  148. package/dist/collection/components/pds-filters/pds-filter/pds-filter.js +2 -2
  149. package/dist/collection/components/pds-filters/pds-filter/pds-filter.js.map +1 -1
  150. package/dist/collection/components/pds-input/pds-input.css +18 -3
  151. package/dist/collection/components/pds-input/stories/pds-input.stories.js +42 -0
  152. package/dist/collection/components/pds-modal/pds-modal.css +2 -2
  153. package/dist/collection/components/pds-popover/pds-popover.css +3 -0
  154. package/dist/collection/components/pds-popover/pds-popover.js +226 -17
  155. package/dist/collection/components/pds-popover/pds-popover.js.map +1 -1
  156. package/dist/collection/components/pds-popover/popover-interface.js +2 -0
  157. package/dist/collection/components/pds-popover/popover-interface.js.map +1 -0
  158. package/dist/collection/components/pds-popover/stories/pds-popover.stories.js +1 -1
  159. package/dist/collection/components/pds-radio/pds-radio.js +10 -4
  160. package/dist/collection/components/pds-radio/pds-radio.js.map +1 -1
  161. package/dist/collection/components/pds-select/pds-select.css +1 -1
  162. package/dist/collection/components/pds-select/pds-select.js +19 -2
  163. package/dist/collection/components/pds-select/pds-select.js.map +1 -1
  164. package/dist/collection/components/pds-switch/pds-switch.js +7 -4
  165. package/dist/collection/components/pds-switch/pds-switch.js.map +1 -1
  166. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.css +1 -1
  167. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.css +1 -1
  168. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.css +1 -1
  169. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.css +1 -1
  170. package/dist/collection/components/pds-table/pds-table.css +1 -1
  171. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.css +1 -2
  172. package/dist/collection/components/pds-tabs/pds-tabs.js +14 -4
  173. package/dist/collection/components/pds-tabs/pds-tabs.js.map +1 -1
  174. package/dist/collection/components/pds-tabs/stories/pds-tabs.stories.js +1 -1
  175. package/dist/collection/components/pds-textarea/pds-textarea.css +1 -1
  176. package/dist/collection/components/pds-textarea/pds-textarea.js +8 -5
  177. package/dist/collection/components/pds-textarea/pds-textarea.js.map +1 -1
  178. package/dist/collection/components/pds-tooltip/pds-tooltip.css +1 -1
  179. package/dist/collection/components/pds-tooltip/pds-tooltip.js +3 -3
  180. package/dist/collection/components/pds-tooltip/pds-tooltip.js.map +1 -1
  181. package/dist/collection/utils/form.js +15 -0
  182. package/dist/collection/utils/form.js.map +1 -1
  183. package/dist/collection/utils/types.js.map +1 -1
  184. package/dist/docs.json +341 -17
  185. package/dist/esm/form-DwjNklzi.js +47 -0
  186. package/dist/esm/form-DwjNklzi.js.map +1 -0
  187. package/dist/esm/{index-D4MkIUXU.js → index-D4zJBIgl.js} +3 -3
  188. package/dist/esm/index-D4zJBIgl.js.map +1 -0
  189. package/dist/esm/loader.js +1 -1
  190. package/dist/esm/mock-pds-modal.entry.js +1 -1
  191. package/dist/esm/mock-pds-modal.entry.js.map +1 -1
  192. package/dist/esm/pds-accordion.entry.js +1 -1
  193. package/dist/esm/pds-avatar.entry.js +1 -1
  194. package/dist/esm/pds-button.entry.js +2 -2
  195. package/dist/esm/pds-button.entry.js.map +1 -1
  196. package/dist/esm/pds-checkbox.entry.js +8 -5
  197. package/dist/esm/pds-checkbox.entry.js.map +1 -1
  198. package/dist/esm/pds-chip.entry.js +3 -3
  199. package/dist/esm/pds-chip.entry.js.map +1 -1
  200. package/dist/esm/pds-combobox.entry.js +398 -40
  201. package/dist/esm/pds-combobox.entry.js.map +1 -1
  202. package/dist/esm/pds-copytext.entry.js +4 -4
  203. package/dist/esm/pds-copytext.entry.js.map +1 -1
  204. package/dist/esm/pds-dropdown-menu.entry.js +1 -1
  205. package/dist/esm/pds-dropdown-menu.entry.js.map +1 -1
  206. package/dist/esm/pds-filter.entry.js +4 -4
  207. package/dist/esm/pds-filter.entry.js.map +1 -1
  208. package/dist/esm/pds-input.entry.js +3 -3
  209. package/dist/esm/pds-input.entry.js.map +1 -1
  210. package/dist/esm/pds-link.entry.js +1 -1
  211. package/dist/esm/pds-modal.entry.js +1 -1
  212. package/dist/esm/pds-modal.entry.js.map +1 -1
  213. package/dist/esm/pds-popover.entry.js +118 -13
  214. package/dist/esm/pds-popover.entry.js.map +1 -1
  215. package/dist/esm/pds-radio.entry.js +12 -6
  216. package/dist/esm/pds-radio.entry.js.map +1 -1
  217. package/dist/esm/pds-select.entry.js +20 -5
  218. package/dist/esm/pds-select.entry.js.map +1 -1
  219. package/dist/esm/pds-sortable-item.entry.js +1 -1
  220. package/dist/esm/pds-switch.entry.js +8 -5
  221. package/dist/esm/pds-switch.entry.js.map +1 -1
  222. package/dist/esm/pds-tab.entry.js +1 -1
  223. package/dist/esm/pds-tab.entry.js.map +1 -1
  224. package/dist/esm/pds-table-cell.entry.js +1 -1
  225. package/dist/esm/pds-table-cell.entry.js.map +1 -1
  226. package/dist/esm/pds-table-head-cell.entry.js +2 -2
  227. package/dist/esm/pds-table-head-cell.entry.js.map +1 -1
  228. package/dist/esm/pds-table-head.entry.js +1 -1
  229. package/dist/esm/pds-table-head.entry.js.map +1 -1
  230. package/dist/esm/pds-table-row.entry.js +1 -1
  231. package/dist/esm/pds-table-row.entry.js.map +1 -1
  232. package/dist/esm/pds-table.entry.js +1 -1
  233. package/dist/esm/pds-table.entry.js.map +1 -1
  234. package/dist/esm/pds-tabs.entry.js +14 -4
  235. package/dist/esm/pds-tabs.entry.js.map +1 -1
  236. package/dist/esm/pds-textarea.entry.js +10 -7
  237. package/dist/esm/pds-textarea.entry.js.map +1 -1
  238. package/dist/esm/pds-tooltip.entry.js +4 -4
  239. package/dist/esm/pds-tooltip.entry.js.map +1 -1
  240. package/dist/esm/pine-core.js +1 -1
  241. package/dist/esm-es5/form-DwjNklzi.js +2 -0
  242. package/dist/esm-es5/form-DwjNklzi.js.map +1 -0
  243. package/dist/esm-es5/{index-D4MkIUXU.js → index-D4zJBIgl.js} +1 -1
  244. package/dist/esm-es5/index-D4zJBIgl.js.map +1 -0
  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/mock-pds-modal.entry.js.map +1 -1
  248. package/dist/esm-es5/pds-accordion.entry.js +1 -1
  249. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  250. package/dist/esm-es5/pds-button.entry.js +1 -1
  251. package/dist/esm-es5/pds-button.entry.js.map +1 -1
  252. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  253. package/dist/esm-es5/pds-checkbox.entry.js.map +1 -1
  254. package/dist/esm-es5/pds-chip.entry.js +1 -1
  255. package/dist/esm-es5/pds-chip.entry.js.map +1 -1
  256. package/dist/esm-es5/pds-combobox.entry.js +1 -1
  257. package/dist/esm-es5/pds-combobox.entry.js.map +1 -1
  258. package/dist/esm-es5/pds-copytext.entry.js +1 -1
  259. package/dist/esm-es5/pds-copytext.entry.js.map +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-filter.entry.js +1 -1
  263. package/dist/esm-es5/pds-filter.entry.js.map +1 -1
  264. package/dist/esm-es5/pds-input.entry.js +1 -1
  265. package/dist/esm-es5/pds-input.entry.js.map +1 -1
  266. package/dist/esm-es5/pds-link.entry.js +1 -1
  267. package/dist/esm-es5/pds-modal.entry.js +1 -1
  268. package/dist/esm-es5/pds-modal.entry.js.map +1 -1
  269. package/dist/esm-es5/pds-popover.entry.js +1 -1
  270. package/dist/esm-es5/pds-popover.entry.js.map +1 -1
  271. package/dist/esm-es5/pds-radio.entry.js +1 -1
  272. package/dist/esm-es5/pds-radio.entry.js.map +1 -1
  273. package/dist/esm-es5/pds-select.entry.js +1 -1
  274. package/dist/esm-es5/pds-select.entry.js.map +1 -1
  275. package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
  276. package/dist/esm-es5/pds-switch.entry.js +1 -1
  277. package/dist/esm-es5/pds-switch.entry.js.map +1 -1
  278. package/dist/esm-es5/pds-tab.entry.js +1 -1
  279. package/dist/esm-es5/pds-tab.entry.js.map +1 -1
  280. package/dist/esm-es5/pds-table-cell.entry.js +1 -1
  281. package/dist/esm-es5/pds-table-cell.entry.js.map +1 -1
  282. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  283. package/dist/esm-es5/pds-table-head-cell.entry.js.map +1 -1
  284. package/dist/esm-es5/pds-table-head.entry.js +1 -1
  285. package/dist/esm-es5/pds-table-head.entry.js.map +1 -1
  286. package/dist/esm-es5/pds-table-row.entry.js +1 -1
  287. package/dist/esm-es5/pds-table-row.entry.js.map +1 -1
  288. package/dist/esm-es5/pds-table.entry.js +1 -1
  289. package/dist/esm-es5/pds-table.entry.js.map +1 -1
  290. package/dist/esm-es5/pds-tabs.entry.js +1 -1
  291. package/dist/esm-es5/pds-tabs.entry.js.map +1 -1
  292. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  293. package/dist/esm-es5/pds-textarea.entry.js.map +1 -1
  294. package/dist/esm-es5/pds-tooltip.entry.js +1 -1
  295. package/dist/esm-es5/pds-tooltip.entry.js.map +1 -1
  296. package/dist/esm-es5/pine-core.js +1 -1
  297. package/dist/pine-core/mock-pds-modal.entry.esm.js.map +1 -1
  298. package/dist/pine-core/p-00346c62.system.entry.js +2 -0
  299. package/dist/pine-core/p-00346c62.system.entry.js.map +1 -0
  300. package/dist/pine-core/{p-8ded79aa.system.entry.js → p-0486ecc6.system.entry.js} +2 -2
  301. package/dist/pine-core/{p-8ded79aa.system.entry.js.map → p-0486ecc6.system.entry.js.map} +1 -1
  302. package/dist/pine-core/{p-af56cb57.entry.js → p-100de2b7.entry.js} +2 -2
  303. package/dist/pine-core/p-1b932ee3.entry.js +2 -0
  304. package/dist/pine-core/p-1b932ee3.entry.js.map +1 -0
  305. package/dist/pine-core/p-20466115.entry.js +2 -0
  306. package/dist/pine-core/p-20466115.entry.js.map +1 -0
  307. package/dist/pine-core/{p-72d87dc6.system.entry.js → p-2054b5cb.system.entry.js} +2 -2
  308. package/dist/pine-core/{p-c0601420.system.entry.js → p-2aab28b1.system.entry.js} +2 -2
  309. package/dist/pine-core/p-3dce3bc0.system.entry.js +2 -0
  310. package/dist/pine-core/p-3dce3bc0.system.entry.js.map +1 -0
  311. package/dist/pine-core/p-45d574f1.system.entry.js +2 -0
  312. package/dist/pine-core/p-45d574f1.system.entry.js.map +1 -0
  313. package/dist/pine-core/p-465e3418.system.entry.js +2 -0
  314. package/dist/pine-core/p-465e3418.system.entry.js.map +1 -0
  315. package/dist/pine-core/p-4xv5UVkx.system.js.map +1 -0
  316. package/dist/pine-core/p-538b3902.system.entry.js +2 -0
  317. package/dist/pine-core/p-538b3902.system.entry.js.map +1 -0
  318. package/dist/pine-core/p-61a25ab2.entry.js +2 -0
  319. package/dist/pine-core/p-61a25ab2.entry.js.map +1 -0
  320. package/dist/pine-core/p-6381a811.system.entry.js +4 -0
  321. package/dist/pine-core/p-6381a811.system.entry.js.map +1 -0
  322. package/dist/pine-core/p-6c36cab6.entry.js +2 -0
  323. package/dist/pine-core/p-6c36cab6.entry.js.map +1 -0
  324. package/dist/pine-core/p-6ed297cb.entry.js +2 -0
  325. package/dist/pine-core/p-6ed297cb.entry.js.map +1 -0
  326. package/dist/pine-core/p-708e963c.system.entry.js +2 -0
  327. package/dist/pine-core/p-708e963c.system.entry.js.map +1 -0
  328. package/dist/pine-core/{p-896e2f1b.entry.js → p-725c350c.entry.js} +2 -2
  329. package/dist/pine-core/{p-896e2f1b.entry.js.map → p-725c350c.entry.js.map} +1 -1
  330. package/dist/pine-core/p-75187352.system.entry.js +2 -0
  331. package/dist/pine-core/p-75187352.system.entry.js.map +1 -0
  332. package/dist/pine-core/p-79422986.entry.js +2 -0
  333. package/dist/pine-core/p-79422986.entry.js.map +1 -0
  334. package/dist/pine-core/p-81bc089e.entry.js +2 -0
  335. package/dist/pine-core/p-81bc089e.entry.js.map +1 -0
  336. package/dist/pine-core/p-85c41629.entry.js +2 -0
  337. package/dist/pine-core/p-85c41629.entry.js.map +1 -0
  338. package/dist/pine-core/p-86263a62.entry.js +2 -0
  339. package/dist/pine-core/p-86263a62.entry.js.map +1 -0
  340. package/dist/pine-core/p-87ed43d5.entry.js +2 -0
  341. package/dist/pine-core/p-87ed43d5.entry.js.map +1 -0
  342. package/dist/pine-core/{p-a54d6a53.entry.js → p-88773b86.entry.js} +2 -2
  343. package/dist/pine-core/p-8b5fc4b4.system.entry.js +2 -0
  344. package/dist/pine-core/p-8b5fc4b4.system.entry.js.map +1 -0
  345. package/dist/pine-core/p-94183716.entry.js +2 -0
  346. package/dist/pine-core/p-94183716.entry.js.map +1 -0
  347. package/dist/pine-core/p-9766923f.entry.js +2 -0
  348. package/dist/pine-core/p-9766923f.entry.js.map +1 -0
  349. package/dist/pine-core/p-9b335a9f.entry.js +2 -0
  350. package/dist/pine-core/p-9b335a9f.entry.js.map +1 -0
  351. package/dist/pine-core/p-9c579956.system.entry.js +2 -0
  352. package/dist/pine-core/p-9c579956.system.entry.js.map +1 -0
  353. package/dist/pine-core/p-9cf2b7a6.entry.js +2 -0
  354. package/dist/pine-core/p-9cf2b7a6.entry.js.map +1 -0
  355. package/dist/pine-core/{p-COwpA8ab.system.js.map → p-B-Doh1Wu.system.js.map} +1 -1
  356. package/dist/pine-core/{p-BSkbMuB5.system.js → p-BG99uNIQ.system.js} +1 -1
  357. package/dist/pine-core/p-BG99uNIQ.system.js.map +1 -0
  358. package/dist/pine-core/p-BHavepTY.system.js +2 -0
  359. package/dist/pine-core/p-BHavepTY.system.js.map +1 -0
  360. package/dist/pine-core/p-BLC5kuro.system.js.map +1 -0
  361. package/dist/pine-core/p-BPjnTOEL.system.js +1 -1
  362. package/dist/pine-core/{p-X5M4eshC.system.js.map → p-BRIdBthP.system.js.map} +1 -1
  363. package/dist/pine-core/p-BVDuy7iI.system.js.map +1 -0
  364. package/dist/pine-core/{p-B57Bybw-.system.js.map → p-BkPtASB1.system.js.map} +1 -1
  365. package/dist/pine-core/p-Bkfqi7zE.system.js.map +1 -0
  366. package/dist/pine-core/p-C1KChp5Q.system.js.map +1 -0
  367. package/dist/pine-core/p-C2W-sHx5.system.js.map +1 -0
  368. package/dist/pine-core/p-CIBXMJd-.system.js.map +1 -0
  369. package/dist/pine-core/p-CJNB_wrl.system.js.map +1 -0
  370. package/dist/pine-core/p-CSa_b_JX.system.js.map +1 -0
  371. package/dist/pine-core/p-Cid662up.system.js.map +1 -0
  372. package/dist/pine-core/p-Cqzmj3D8.system.js.map +1 -0
  373. package/dist/pine-core/p-Cxlv_2hD.system.js.map +1 -0
  374. package/dist/pine-core/p-D0foS5EP.system.js.map +1 -0
  375. package/dist/pine-core/{p-D4MkIUXU.js → p-D4zJBIgl.js} +1 -1
  376. package/dist/pine-core/p-D4zJBIgl.js.map +1 -0
  377. package/dist/pine-core/p-DCjZr2HA.system.js.map +1 -0
  378. package/dist/pine-core/p-DN3VK2yy.system.js.map +1 -0
  379. package/dist/pine-core/{p-DgE9ds9o.system.js.map → p-DOqVoXeA.system.js.map} +1 -1
  380. package/dist/pine-core/p-DW3lkDNz.system.js.map +1 -0
  381. package/dist/pine-core/p-DfrSuf6X.system.js.map +1 -0
  382. package/dist/pine-core/p-DpemOPFJ.system.js.map +1 -0
  383. package/dist/pine-core/p-DpzRSULT.system.js.map +1 -0
  384. package/dist/pine-core/p-DtdXdmNp.system.js.map +1 -0
  385. package/dist/pine-core/p-DwjNklzi.js +2 -0
  386. package/dist/pine-core/p-DwjNklzi.js.map +1 -0
  387. package/dist/pine-core/p-GrmqKqN8.system.js.map +1 -0
  388. package/dist/pine-core/p-HHZU8rBT.system.js.map +1 -0
  389. package/dist/pine-core/p-a2708028.entry.js +2 -0
  390. package/dist/pine-core/p-a2708028.entry.js.map +1 -0
  391. package/dist/pine-core/{p-46820152.entry.js → p-a3785977.entry.js} +2 -2
  392. package/dist/pine-core/p-a707a7da.system.entry.js +2 -0
  393. package/dist/pine-core/p-a707a7da.system.entry.js.map +1 -0
  394. package/dist/pine-core/p-acd87a10.entry.js +2 -0
  395. package/dist/pine-core/p-acd87a10.entry.js.map +1 -0
  396. package/dist/pine-core/p-ae4ec5cf.system.entry.js +2 -0
  397. package/dist/pine-core/p-ae4ec5cf.system.entry.js.map +1 -0
  398. package/dist/pine-core/p-b23dd01c.entry.js +2 -0
  399. package/dist/pine-core/p-b23dd01c.entry.js.map +1 -0
  400. package/dist/pine-core/p-b9aafec7.system.entry.js +2 -0
  401. package/dist/pine-core/p-b9aafec7.system.entry.js.map +1 -0
  402. package/dist/pine-core/p-bac9fcfa.entry.js +2 -0
  403. package/dist/pine-core/p-bac9fcfa.entry.js.map +1 -0
  404. package/dist/pine-core/p-c3579585.system.entry.js +2 -0
  405. package/dist/pine-core/p-c3579585.system.entry.js.map +1 -0
  406. package/dist/pine-core/p-cffc98ae.entry.js +3 -0
  407. package/dist/pine-core/p-cffc98ae.entry.js.map +1 -0
  408. package/dist/pine-core/{p-559b4ebc.entry.js → p-d1b27fa4.entry.js} +2 -2
  409. package/dist/pine-core/p-d2b15290.system.entry.js +2 -0
  410. package/dist/pine-core/p-d2b15290.system.entry.js.map +1 -0
  411. package/dist/pine-core/p-d4d22aee.entry.js +2 -0
  412. package/dist/pine-core/p-d4d22aee.entry.js.map +1 -0
  413. package/dist/pine-core/p-d69f0f51.system.entry.js +2 -0
  414. package/dist/pine-core/p-d69f0f51.system.entry.js.map +1 -0
  415. package/dist/pine-core/{p-c63e7909.system.entry.js → p-dace69e7.system.entry.js} +2 -2
  416. package/dist/pine-core/p-e34c1224.system.entry.js +2 -0
  417. package/dist/pine-core/p-e34c1224.system.entry.js.map +1 -0
  418. package/dist/pine-core/p-e5adbf74.system.entry.js +2 -0
  419. package/dist/pine-core/p-e5adbf74.system.entry.js.map +1 -0
  420. package/dist/pine-core/p-e6085566.system.entry.js +2 -0
  421. package/dist/pine-core/p-e6085566.system.entry.js.map +1 -0
  422. package/dist/pine-core/p-e683e197.system.entry.js +2 -0
  423. package/dist/pine-core/p-e683e197.system.entry.js.map +1 -0
  424. package/dist/pine-core/p-e6b051e8.system.entry.js +2 -0
  425. package/dist/pine-core/p-e6b051e8.system.entry.js.map +1 -0
  426. package/dist/pine-core/{p-ab4307c7.system.entry.js → p-e702a8dc.system.entry.js} +2 -2
  427. package/dist/pine-core/p-f15cd180.entry.js +2 -0
  428. package/dist/pine-core/p-f15cd180.entry.js.map +1 -0
  429. package/dist/pine-core/p-f6d0bd39.entry.js +2 -0
  430. package/dist/pine-core/p-f6d0bd39.entry.js.map +1 -0
  431. package/dist/pine-core/p-f92d7570.system.entry.js +2 -0
  432. package/dist/pine-core/p-f92d7570.system.entry.js.map +1 -0
  433. package/dist/pine-core/{p-d325287b.entry.js.map → p-ozqEY4Zc.system.js.map} +1 -1
  434. package/dist/pine-core/pds-button.entry.esm.js.map +1 -1
  435. package/dist/pine-core/pds-checkbox.entry.esm.js.map +1 -1
  436. package/dist/pine-core/pds-chip.entry.esm.js.map +1 -1
  437. package/dist/pine-core/pds-combobox.entry.esm.js.map +1 -1
  438. package/dist/pine-core/pds-copytext.entry.esm.js.map +1 -1
  439. package/dist/pine-core/pds-dropdown-menu.entry.esm.js.map +1 -1
  440. package/dist/pine-core/pds-filter.entry.esm.js.map +1 -1
  441. package/dist/pine-core/pds-input.entry.esm.js.map +1 -1
  442. package/dist/pine-core/pds-modal.entry.esm.js.map +1 -1
  443. package/dist/pine-core/pds-popover.entry.esm.js.map +1 -1
  444. package/dist/pine-core/pds-radio.entry.esm.js.map +1 -1
  445. package/dist/pine-core/pds-select.entry.esm.js.map +1 -1
  446. package/dist/pine-core/pds-switch.entry.esm.js.map +1 -1
  447. package/dist/pine-core/pds-tab.entry.esm.js.map +1 -1
  448. package/dist/pine-core/pds-table-cell.entry.esm.js.map +1 -1
  449. package/dist/pine-core/pds-table-head-cell.entry.esm.js.map +1 -1
  450. package/dist/pine-core/pds-table-head.entry.esm.js.map +1 -1
  451. package/dist/pine-core/pds-table-row.entry.esm.js.map +1 -1
  452. package/dist/pine-core/pds-table.entry.esm.js.map +1 -1
  453. package/dist/pine-core/pds-tabs.entry.esm.js.map +1 -1
  454. package/dist/pine-core/pds-textarea.entry.esm.js.map +1 -1
  455. package/dist/pine-core/pds-tooltip.entry.esm.js.map +1 -1
  456. package/dist/pine-core/pine-core.css +1 -1
  457. package/dist/pine-core/pine-core.esm.js +1 -1
  458. package/dist/types/components/pds-checkbox/pds-checkbox.d.ts +1 -0
  459. package/dist/types/components/pds-chip/pds-chip.d.ts +3 -2
  460. package/dist/types/components/pds-combobox/pds-combobox.d.ts +56 -2
  461. package/dist/types/components/pds-popover/pds-popover.d.ts +33 -2
  462. package/dist/types/components/pds-popover/popover-interface.d.ts +8 -0
  463. package/dist/types/components/pds-radio/pds-radio.d.ts +3 -0
  464. package/dist/types/components/pds-select/pds-select.d.ts +6 -0
  465. package/dist/types/components/pds-switch/pds-switch.d.ts +1 -0
  466. package/dist/types/components/pds-textarea/pds-textarea.d.ts +1 -0
  467. package/dist/types/components.d.ts +94 -10
  468. package/dist/types/utils/form.d.ts +9 -0
  469. package/dist/types/utils/types.d.ts +2 -0
  470. package/hydrate/index.js +629 -101
  471. package/hydrate/index.mjs +629 -101
  472. package/package.json +2 -2
  473. package/dist/cjs/form-Bx4nzJBo.js.map +0 -1
  474. package/dist/cjs/index-CTirFLR-.js.map +0 -1
  475. package/dist/esm/form-DTL_39D_.js +0 -32
  476. package/dist/esm/form-DTL_39D_.js.map +0 -1
  477. package/dist/esm/index-D4MkIUXU.js.map +0 -1
  478. package/dist/esm-es5/form-DTL_39D_.js +0 -2
  479. package/dist/esm-es5/form-DTL_39D_.js.map +0 -1
  480. package/dist/esm-es5/index-D4MkIUXU.js.map +0 -1
  481. package/dist/pine-core/p-0075bbbe.system.entry.js +0 -2
  482. package/dist/pine-core/p-0075bbbe.system.entry.js.map +0 -1
  483. package/dist/pine-core/p-0975b749.system.entry.js +0 -2
  484. package/dist/pine-core/p-0975b749.system.entry.js.map +0 -1
  485. package/dist/pine-core/p-0befa8f0.entry.js +0 -2
  486. package/dist/pine-core/p-0befa8f0.entry.js.map +0 -1
  487. package/dist/pine-core/p-0d18171c.system.entry.js +0 -2
  488. package/dist/pine-core/p-0d18171c.system.entry.js.map +0 -1
  489. package/dist/pine-core/p-1773aeac.system.entry.js +0 -2
  490. package/dist/pine-core/p-1773aeac.system.entry.js.map +0 -1
  491. package/dist/pine-core/p-265372d3.entry.js +0 -2
  492. package/dist/pine-core/p-265372d3.entry.js.map +0 -1
  493. package/dist/pine-core/p-29b2af94.entry.js +0 -2
  494. package/dist/pine-core/p-29b2af94.entry.js.map +0 -1
  495. package/dist/pine-core/p-2b452883.system.entry.js +0 -2
  496. package/dist/pine-core/p-2b452883.system.entry.js.map +0 -1
  497. package/dist/pine-core/p-30e8c3ea.entry.js +0 -2
  498. package/dist/pine-core/p-30e8c3ea.entry.js.map +0 -1
  499. package/dist/pine-core/p-31f6fcc1.entry.js +0 -2
  500. package/dist/pine-core/p-31f6fcc1.entry.js.map +0 -1
  501. package/dist/pine-core/p-3b20aa93.system.entry.js +0 -2
  502. package/dist/pine-core/p-3b20aa93.system.entry.js.map +0 -1
  503. package/dist/pine-core/p-3e7933bf.entry.js +0 -2
  504. package/dist/pine-core/p-3e7933bf.entry.js.map +0 -1
  505. package/dist/pine-core/p-4534e8cc.system.entry.js +0 -2
  506. package/dist/pine-core/p-4534e8cc.system.entry.js.map +0 -1
  507. package/dist/pine-core/p-4b3a8cab.entry.js +0 -2
  508. package/dist/pine-core/p-4b3a8cab.entry.js.map +0 -1
  509. package/dist/pine-core/p-4c8bebd8.system.entry.js +0 -2
  510. package/dist/pine-core/p-4c8bebd8.system.entry.js.map +0 -1
  511. package/dist/pine-core/p-4dda1edf.entry.js +0 -2
  512. package/dist/pine-core/p-4dda1edf.entry.js.map +0 -1
  513. package/dist/pine-core/p-4e55730d.entry.js +0 -2
  514. package/dist/pine-core/p-4e55730d.entry.js.map +0 -1
  515. package/dist/pine-core/p-56f6f106.entry.js +0 -2
  516. package/dist/pine-core/p-56f6f106.entry.js.map +0 -1
  517. package/dist/pine-core/p-5cc0244d.system.entry.js +0 -2
  518. package/dist/pine-core/p-5cc0244d.system.entry.js.map +0 -1
  519. package/dist/pine-core/p-74f03e75.entry.js +0 -2
  520. package/dist/pine-core/p-74f03e75.entry.js.map +0 -1
  521. package/dist/pine-core/p-7b0517e5.system.entry.js +0 -2
  522. package/dist/pine-core/p-7b0517e5.system.entry.js.map +0 -1
  523. package/dist/pine-core/p-7b66bc50.entry.js +0 -3
  524. package/dist/pine-core/p-7b66bc50.entry.js.map +0 -1
  525. package/dist/pine-core/p-7eb22880.entry.js +0 -2
  526. package/dist/pine-core/p-7eb22880.entry.js.map +0 -1
  527. package/dist/pine-core/p-8501429f.entry.js +0 -2
  528. package/dist/pine-core/p-8501429f.entry.js.map +0 -1
  529. package/dist/pine-core/p-94fe15b0.system.entry.js +0 -2
  530. package/dist/pine-core/p-94fe15b0.system.entry.js.map +0 -1
  531. package/dist/pine-core/p-95aee0b1.entry.js +0 -2
  532. package/dist/pine-core/p-95aee0b1.entry.js.map +0 -1
  533. package/dist/pine-core/p-B02VgXkx.system.js.map +0 -1
  534. package/dist/pine-core/p-BFiM1S8V.system.js.map +0 -1
  535. package/dist/pine-core/p-BG7_qxVr.system.js +0 -2
  536. package/dist/pine-core/p-BG7_qxVr.system.js.map +0 -1
  537. package/dist/pine-core/p-BJhtHwq5.system.js.map +0 -1
  538. package/dist/pine-core/p-BQFgzIQT.system.js.map +0 -1
  539. package/dist/pine-core/p-BSkbMuB5.system.js.map +0 -1
  540. package/dist/pine-core/p-BigOVPun.system.js.map +0 -1
  541. package/dist/pine-core/p-BmFGXXkm.system.js.map +0 -1
  542. package/dist/pine-core/p-CHVzHNgU.system.js.map +0 -1
  543. package/dist/pine-core/p-CV0Lw9gs.system.js.map +0 -1
  544. package/dist/pine-core/p-CZqgW7e3.system.js.map +0 -1
  545. package/dist/pine-core/p-Cc1q-FuD.system.js.map +0 -1
  546. package/dist/pine-core/p-D3SrjYeb.system.js.map +0 -1
  547. package/dist/pine-core/p-D4MkIUXU.js.map +0 -1
  548. package/dist/pine-core/p-D9veIL-g.system.js.map +0 -1
  549. package/dist/pine-core/p-DGFR-x7P.system.js.map +0 -1
  550. package/dist/pine-core/p-DTL_39D_.js +0 -2
  551. package/dist/pine-core/p-DTL_39D_.js.map +0 -1
  552. package/dist/pine-core/p-DeR0sSWy.system.js.map +0 -1
  553. package/dist/pine-core/p-Df597YUK.system.js.map +0 -1
  554. package/dist/pine-core/p-Ek6vvXfI.system.js.map +0 -1
  555. package/dist/pine-core/p-WO5h6NYA.system.js.map +0 -1
  556. package/dist/pine-core/p-Z5rOSkoA.system.js.map +0 -1
  557. package/dist/pine-core/p-a5cf0088.system.entry.js +0 -2
  558. package/dist/pine-core/p-a5cf0088.system.entry.js.map +0 -1
  559. package/dist/pine-core/p-aa2782b9.system.entry.js +0 -2
  560. package/dist/pine-core/p-aa2782b9.system.entry.js.map +0 -1
  561. package/dist/pine-core/p-b32d34d0.entry.js +0 -2
  562. package/dist/pine-core/p-b32d34d0.entry.js.map +0 -1
  563. package/dist/pine-core/p-b378ca03.entry.js +0 -2
  564. package/dist/pine-core/p-b378ca03.entry.js.map +0 -1
  565. package/dist/pine-core/p-b699a14f.system.entry.js +0 -2
  566. package/dist/pine-core/p-b699a14f.system.entry.js.map +0 -1
  567. package/dist/pine-core/p-c2d2fe64.system.entry.js +0 -2
  568. package/dist/pine-core/p-c2d2fe64.system.entry.js.map +0 -1
  569. package/dist/pine-core/p-d325287b.entry.js +0 -2
  570. package/dist/pine-core/p-d52d96b5.system.entry.js +0 -4
  571. package/dist/pine-core/p-d52d96b5.system.entry.js.map +0 -1
  572. package/dist/pine-core/p-d5c63517.system.entry.js +0 -2
  573. package/dist/pine-core/p-d5c63517.system.entry.js.map +0 -1
  574. package/dist/pine-core/p-d65d252d.entry.js +0 -2
  575. package/dist/pine-core/p-d65d252d.entry.js.map +0 -1
  576. package/dist/pine-core/p-dbe41087.system.entry.js +0 -2
  577. package/dist/pine-core/p-dbe41087.system.entry.js.map +0 -1
  578. package/dist/pine-core/p-e03b7f4a.system.entry.js +0 -2
  579. package/dist/pine-core/p-e03b7f4a.system.entry.js.map +0 -1
  580. package/dist/pine-core/p-f6b269ac.entry.js +0 -2
  581. package/dist/pine-core/p-f6b269ac.entry.js.map +0 -1
  582. package/dist/pine-core/p-f70aef6e.system.entry.js +0 -2
  583. package/dist/pine-core/p-f70aef6e.system.entry.js.map +0 -1
  584. package/dist/pine-core/p-fd3d548f.entry.js +0 -2
  585. package/dist/pine-core/p-fd3d548f.entry.js.map +0 -1
  586. package/dist/pine-core/p-fddf82f8.entry.js +0 -2
  587. package/dist/pine-core/p-fddf82f8.entry.js.map +0 -1
  588. package/dist/pine-core/p-fdf22be1.system.entry.js +0 -2
  589. package/dist/pine-core/p-fdf22be1.system.entry.js.map +0 -1
  590. package/dist/pine-core/p-fe7ece91.system.entry.js +0 -2
  591. package/dist/pine-core/p-fe7ece91.system.entry.js.map +0 -1
  592. package/dist/pine-core/p-iM8w34Dq.system.js.map +0 -1
  593. package/dist/pine-core/p-kbAzjMDU.system.js.map +0 -1
  594. package/dist/pine-core/p-nawkAoxk.system.js.map +0 -1
  595. package/dist/pine-core/p-oDk-2Jyq.system.js.map +0 -1
  596. package/dist/pine-core/p-wlxYjeBe.system.js.map +0 -1
  597. /package/dist/pine-core/{p-af56cb57.entry.js.map → p-100de2b7.entry.js.map} +0 -0
  598. /package/dist/pine-core/{p-72d87dc6.system.entry.js.map → p-2054b5cb.system.entry.js.map} +0 -0
  599. /package/dist/pine-core/{p-c0601420.system.entry.js.map → p-2aab28b1.system.entry.js.map} +0 -0
  600. /package/dist/pine-core/{p-a54d6a53.entry.js.map → p-88773b86.entry.js.map} +0 -0
  601. /package/dist/pine-core/{p-46820152.entry.js.map → p-a3785977.entry.js.map} +0 -0
  602. /package/dist/pine-core/{p-559b4ebc.entry.js.map → p-d1b27fa4.entry.js.map} +0 -0
  603. /package/dist/pine-core/{p-c63e7909.system.entry.js.map → p-dace69e7.system.entry.js.map} +0 -0
  604. /package/dist/pine-core/{p-ab4307c7.system.entry.js.map → p-e702a8dc.system.entry.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["pdsSelectTokensCss","labelCss","pdsSelectCss","PdsSelect","constructor","hostRef","this","_type","disabled","multiple","required","onSelectUpdate","e","target","values","Array","from","options","filter","option","map","length","value","pdsSelectChange","emit","handleSlotChange","slot","slotContainer","querySelector","selectEl","innerHTML","assignedElements","flatten","forEach","item","includes","tagName","clonedItem","cloneNode","selected","appendChild","updateSelectedOption","valueChanged","updateFormValue","multipleChanged","updateType","connectedCallback","el","attachInternals","internals","exposeTypeProperty","componentWillLoad","componentDidLoad","isArray","getHelperMessage","helperMessage","h","class","id","messageId","componentId","getErrorMessage","errorMessage","icon","danger","size","renderMessages","classNames","invalid","push","join","renderAction","hasAction","part","name","setFormValue","formData","FormData","val","append","setValidity","validity","validationMessage","formResetCallback","formDisabledCallback","formStateRestoreCallback","state","getAll","v","render","Host","key","hideLabel","htmlFor","label","undefined","autocomplete","onChange","ref","onSlotchange","enlarge"],"sources":["src/components/pds-select/pds-select.tokens.scss?tag=pds-select&encapsulation=shadow","src/global/styles/utils/label.scss?tag=pds-select&encapsulation=shadow","src/components/pds-select/pds-select.scss?tag=pds-select&encapsulation=shadow","src/components/pds-select/pds-select.tsx"],"sourcesContent":["@use '~@kajabi-ui/styles/dist/pine/components/pds-select/pds-select.tokens'\n",":host {\n display: inline-block;\n}\n\n:host([aria-disabled=\"true\"]) label {\n color: var(--pine-color-text-label-disabled);\n}\n\n:host([aria-readonly=\"true\"]) {\n label {\n color: var(--pine-color-text-label-readonly);\n }\n}\n\nlabel {\n color: var(--pine-color-text-label);\n font: var(--pine-typography-body-medium);\n letter-spacing: var(--pine-letter-spacing);\n}\n",":host {\n --pds-select-background: var(--pine-color-background-container);\n --pds-select-border: var(--pine-border);\n --pds-select-border-radius: var(--pine-dimension-125);\n --pds-select-border-radius-start-end: var(--pine-dimension-125);\n --pds-select-border-radius-start-start: var(--pine-dimension-125);\n --pds-select-border-radius-end-end: var(--pine-dimension-125);\n --pds-select-border-radius-end-start: var(--pine-dimension-125);\n --pds-select-min-height: 36px;\n --box-shadow-focus: 0 0 0 1px #ffffff, 0 0 0 3px var(--pine-color-focus-ring);\n --box-shadow-focus-error: 0 0 0 1px #ffffff, 0 0 0 3px var(--pine-color-focus-ring-danger);\n\n .hidden,\n :host([hidden]) {\n display: none;\n }\n}\n\n.pds-select {\n display: grid;\n flex-direction: column;\n grid-template-areas:\n 'label label'\n 'field field'\n 'message message';\n grid-template-columns: 1fr minmax(2rem, min-content);\n grid-template-rows: min-content min-content min-content;\n position: relative;\n width: 100%;\n}\n\n.pds-select__label-wrapper {\n align-items: center;\n display: flex;\n grid-area: label;\n justify-content: space-between;\n margin-block-end: var(--pine-dimension-2xs);\n}\n\n.pds-select__action {\n align-items: center;\n display: flex;\n gap: var(--pine-dimension-xs);\n margin-inline-start: var(--pine-dimension-xs);\n}\n\nlabel {\n margin-block-end: var(--pine-dimension-2xs);\n}\n\n// When label is inside wrapper, remove its margin\n.pds-select__label-wrapper label {\n margin-block-end: 0;\n}\n\nselect {\n appearance: none;\n background-color: var(--pds-select-background);\n border: var(--pds-select-border);\n border-radius: var(--pds-select-border-radius);\n border-bottom-left-radius: var(--pds-select-border-radius-end-start, var(--pds-select-border-radius));\n border-bottom-right-radius: var(--pds-select-border-radius-end-end, var(--pds-select-border-radius));\n border-top-left-radius: var(--pds-select-border-radius-start-start, var(--pds-select-border-radius));\n border-top-right-radius: var(--pds-select-border-radius-start-end, var(--pds-select-border-radius));\n font: var(--pine-typography-body);\n grid-area: field;\n letter-spacing: var(--pine-letter-spacing);\n min-height: var(--pds-select-min-height);\n padding: calc(var(--pine-dimension-xs) - var(--pine-border-width)) var(--pine-dimension-150);\n padding-inline-end: var(--pine-dimension-450);\n position: relative;\n\n &:hover {\n border-color: var(--pine-color-border-hover);\n cursor: pointer;\n }\n\n &:focus-visible {\n border-color: var(--pine-color-border-active);\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-border-width);\n }\n\n &:disabled {\n background-color: var(--pine-color-background-container-disabled);\n border-color: var(--pine-color-border-disabled);\n color: var(--pine-color-text-disabled);\n cursor: not-allowed;\n }\n\n &:has(~ .pds-select__message .pds-select__error-message) {\n background-color: var(--pine-select-color-background-danger);\n border-color: var(--pine-color-border-danger);\n\n &:focus-visible {\n outline-color: var(--pine-color-focus-ring-danger);\n }\n }\n}\n\n:host(.is-invalid) {\n select {\n background-color: var(--pine-select-color-background-danger);\n border-color: var(--pine-color-border-danger);\n\n &:focus-visible {\n outline-color: var(--pine-color-focus-ring-danger);\n }\n }\n}\n\n.pds-select__error-message,\n.pds-select__helper-message {\n color: var(--pine-color-text-message);\n font: var(--pine-typography-body-sm-medium);\n margin-block-end: 0;\n margin-block-start: var(--pine-dimension-2xs);\n}\n\n.pds-select__error-message {\n align-items: center;\n color: var(--pine-color-text-message-danger);\n display: flex;\n gap: var(--pine-dimension-2xs);\n}\n\n.pds-select__message {\n grid-area: message;\n}\n\n.pds-select__select-icon {\n align-items: center;\n display: flex;\n grid-column: -1 / -2;\n grid-row: 2 / 3;\n height: var(--pds-select-min-height);\n pointer-events: none;\n position: relative;\n z-index: var(--pine-z-index-raised);\n}\n\n.visually-hidden {\n border: 0;\n clip: rect(0 0 0 0);\n clip-path: polygon(0 0, 0 0, 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}\n\n","import { Component, Element, Event, EventEmitter, Host, h, Prop, Watch } from '@stencil/core';\nimport { messageId, exposeTypeProperty } from '../../utils/form';\nimport { danger, enlarge } from '@pine-ds/icons/icons';\n\n/**\n * @slot action - Content to be displayed in the label area, typically for help icons or links\n */\n@Component({\n tag: 'pds-select',\n styleUrls: ['pds-select.tokens.scss', '../../global/styles/utils/label.scss', 'pds-select.scss'],\n shadow: true,\n formAssociated: true,\n})\nexport class PdsSelect {\n\n private selectEl!: HTMLSelectElement;\n private slotContainer!: HTMLDivElement;\n private internals?: ElementInternals;\n private _type: 'select-one' | 'select-multiple' = 'select-one';\n\n @Element() el: HTMLPdsSelectElement;\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 * Indicates whether or not the select field is disabled.\n * @defaultValue false\n */\n @Prop() disabled = false\n\n /**\n * Displays error message text describing an invalid state.\n */\n @Prop() errorMessage: string;\n\n /**\n * Visually hides the label text for instances where only the select 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 * Displays helper message text below select.\n */\n @Prop() helperMessage: string;\n\n /**\n * Determines whether or not the select is invalid.\n */\n @Prop() invalid?: boolean;\n\n /**\n * Text to be displayed as the select label.\n */\n @Prop() label?: string;\n\n /**\n * Indicates whether multiple options can be selected.\n * @defaultValue false\n */\n @Prop() multiple = false;\n\n /**\n * Specifies the name. Submitted with the form name/value pair.\n */\n @Prop() name!: string;\n\n /**\n * Indicates whether or not the select field is required.\n * @defaultValue false\n */\n @Prop() required = false;\n\n /**\n * The value(s) of the selected option(s).\n *\n */\n @Prop({ mutable: true }) value?: string | string[];\n\n\n /**\n * Emitted when a keyboard input occurs.\n */\n @Event() pdsSelectChange: EventEmitter<InputEvent>;\n\n @Watch('value')\n /**\n * Handles the change in the value of the select component.\n * This method is called whenever the value of the select component changes.\n * It updates the selected option accordingly.\n */\n valueChanged() {\n this.updateSelectedOption();\n this.updateFormValue();\n }\n\n @Watch('multiple')\n /**\n * Updates the type property when multiple changes to match native select behavior.\n */\n multipleChanged() {\n this.updateType();\n }\n\n private updateType() {\n this._type = this.multiple ? 'select-multiple' : 'select-one';\n }\n\n connectedCallback() {\n // Initialize ElementInternals for form association\n if (this.el.attachInternals) {\n this.internals = this.el.attachInternals();\n }\n\n // Expose type property on the element instance to match native form element behavior\n exposeTypeProperty(this.el, () => this._type);\n }\n\n componentWillLoad() {\n // Set initial type based on multiple prop\n this.updateType();\n this.updateSelectedOption();\n }\n\n componentDidLoad() {\n // Set initial form value\n this.updateFormValue();\n }\n\n /**\n * Updates the selected option in the select element based on the current value.\n *\n * This method iterates through all the options of the select element and sets the\n * 'selected' attribute on the option that matches the current value. If an option\n * does not match the current value, the 'selected' attribute is removed.\n *\n * @private\n * @returns {void}\n */\n private updateSelectedOption() {\n if (this.selectEl) {\n const options = this.selectEl.options;\n\n // Update the selected attribute for all options.\n Array.from(options).map((option: HTMLOptionElement) => {\n if (Array.isArray(this.value)) {\n option.selected = this.value.includes(option.value);\n } else {\n option.selected = this.value === option.value;\n }\n });\n };\n }\n\n /**\n * Emits an event on input change.\n */\n private onSelectUpdate = (e: Event) => {\n const target = e.target as HTMLSelectElement\n\n const values = Array.from(target.options)\n .filter((option) => ( option.selected))\n .map((option) => ( option.value));\n\n if (values.length === 1 && !this.multiple) {\n this.value = values[0];\n } else {\n this.value = values;\n }\n\n this.pdsSelectChange.emit(e as InputEvent);\n };\n\n /**\n * Handles the change event for the slot element.\n * This method is triggered when the slot content changes.\n * It updates the inner HTML of the select element by cloning and appending\n * the assigned <option> elements from the slot.\n */\n private handleSlotChange = () => {\n const slot = this.slotContainer.querySelector('slot') as HTMLSlotElement;\n\n this.selectEl.innerHTML = '';\n const assignedElements = slot.assignedElements({ flatten: true }) as (HTMLOptionElement | HTMLOptGroupElement)[];\n\n assignedElements.forEach((item) => {\n if ( ['OPTION', 'OPTGROUP'].includes(item.tagName)) {\n const clonedItem = item.cloneNode(true) as HTMLOptionElement | HTMLOptGroupElement;\n if (clonedItem.tagName === 'OPTION' && (clonedItem as HTMLOptionElement).value === this.value) {\n (clonedItem as HTMLOptionElement).selected = true;\n }\n this.selectEl.appendChild(clonedItem);\n }\n });\n\n this.updateSelectedOption();\n };\n\n private getHelperMessage() {\n return this.helperMessage && (\n <p class=\"pds-select__helper-message\" id={messageId(this.componentId, 'helper')}>\n {this.helperMessage}\n </p>\n );\n }\n\n private getErrorMessage() {\n return this.errorMessage && (\n <p class=\"pds-select__error-message\" id={messageId(this.componentId, 'error')} aria-live=\"assertive\">\n <pds-icon icon={danger} size=\"small\"></pds-icon>\n {this.errorMessage}\n </p>\n );\n }\n\n private renderMessages() {\n if (!this.helperMessage && !this.errorMessage) return null;\n\n return (\n <div class=\"pds-select__message\">\n {this.getHelperMessage()}\n {this.getErrorMessage()}\n </div>\n );\n }\n\n private classNames() {\n const classNames = [];\n\n if (this.invalid) { classNames.push('is-invalid'); }\n if (this.disabled) { classNames.push('is-disabled'); }\n\n return classNames.join(' ');\n }\n\n private renderAction() {\n const hasAction = this.el.querySelector('[slot=\"action\"]') !== null;\n if (hasAction) {\n return (\n <div class=\"pds-select__action\" part=\"action\">\n <slot name=\"action\"></slot>\n </div>\n );\n }\n return null;\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.value;\n\n // Handle multi-select arrays by converting to FormData or comma-separated string\n if (Array.isArray(value)) {\n if (value.length > 1) {\n // For multiple values, create FormData with multiple entries\n const formData = new FormData();\n value.forEach(val => formData.append(this.name || '', val));\n this.internals.setFormValue(formData);\n } else {\n // Single value in array, use the string value\n this.internals.setFormValue(value[0] || null);\n }\n } else {\n // Single string value\n this.internals.setFormValue(value || null);\n }\n\n // Set validity based on native select validation\n if (this.selectEl && this.internals && this.internals.setValidity) {\n this.internals.setValidity(\n this.selectEl.validity,\n this.selectEl.validationMessage,\n this.selectEl\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(s) from FormData using the select's name\n const values = state.getAll(this.name);\n if (values.length > 1) {\n // Multi-select: convert to string array\n this.value = values.filter(v => typeof v === 'string') as string[];\n } else if (values.length === 1 && typeof values[0] === 'string') {\n // Single select: use string value\n this.value = values[0];\n }\n }\n }\n\n render() {\n const hasAction = this.el.querySelector('[slot=\"action\"]') !== null;\n\n return (\n <Host aria-disabled={this.disabled ? 'true' : null} class={this.classNames()} has-action={hasAction && !this.hideLabel ? 'true' : null}>\n <div class=\"pds-select\">\n {!this.hideLabel && (\n <div class=\"pds-select__label-wrapper\">\n <label htmlFor={this.componentId}>\n <span class={this.hideLabel ? 'visually-hidden' : ''}>\n {this.label}\n </span>\n </label>\n {hasAction && this.renderAction()}\n </div>\n )}\n <select\n aria-label={this.hideLabel ? this.label : undefined}\n autocomplete={this.autocomplete || undefined}\n class=\"pds-select__field\"\n disabled={this.disabled}\n id={this.componentId}\n multiple={this.multiple}\n name={this.name}\n onChange={this.onSelectUpdate}\n part=\"select\"\n required={this.required}\n ref={(el) => (this.selectEl = el as HTMLSelectElement)}\n ></select>\n <div aria-hidden=\"true\" class=\"hidden\" ref={(el) => (this.slotContainer = el)}>\n <slot onSlotchange={this.handleSlotChange}></slot>\n </div>\n {this.renderMessages()}\n {!this.multiple && <pds-icon class=\"pds-select__select-icon\" icon={enlarge} />}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ System.register(["./p-Cxvdulqq.system.js","./p-BHavepTY.system.js","./p-BG99uNIQ.system.js"],(function(i){"use strict";var e,r,a,s,o,d,n,c,t;return{setters:[function(i){e=i.r;r=i.c;a=i.h;s=i.H;o=i.g},function(i){d=i.e;n=i.m;c=i.a},function(i){t=i.i}],execute:function(){var l=".sc-pds-radio-h{display:inline-block}[aria-disabled=true].sc-pds-radio-h label.sc-pds-radio{color:var(--pine-color-text-label-disabled)}[aria-readonly=true].sc-pds-radio-h label.sc-pds-radio{color:var(--pine-color-text-label-readonly)}label.sc-pds-radio{color:var(--pine-color-text-label);font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing)}";var p='.sc-pds-radio-h{--sizing-check-size:6px;--sizing-input-size:var(--pine-dimension-sm);--sizing-margin-block-start:6px;-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.is-invalid.sc-pds-radio-h input.sc-pds-radio{border-color:var(--pine-color-border-danger)}.is-invalid.sc-pds-radio-h input.sc-pds-radio:checked{background:var(--pine-color-border-danger)}.is-invalid.sc-pds-radio-h input.sc-pds-radio:checked:hover{background:var(--pine-color-border-danger-hover);border-color:var(--pine-color-border-danger-hover)}.is-invalid.sc-pds-radio-h input.sc-pds-radio:focus-visible{outline-color:var(--pine-color-focus-ring-danger)}.is-invalid.sc-pds-radio-h label.sc-pds-radio,.is-invalid.sc-pds-radio-h .pds-radio__message--error.sc-pds-radio{color:var(--pine-color-text-message-danger)}input.sc-pds-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--pine-color-background-container);border:var(--pine-border);border-radius:var(--pine-border-radius-full);-ms-flex:none;flex:none;height:var(--sizing-input-size);margin:0;-webkit-margin-before:var(--pine-dimension-025);margin-block-start:var(--pine-dimension-025);position:relative;width:var(--sizing-input-size)}input.sc-pds-radio:hover{background:var(--pine-color-background-container-hover);border:var(--pine-border-hover)}input.sc-pds-radio:checked{background:var(--pine-color-accent);border-color:var(--pine-color-accent)}input.sc-pds-radio:checked:hover{background:var(--pine-color-accent-hover);border-color:var(--pine-color-accent-hover)}input.sc-pds-radio:checked::after{background:var(--pine-color-background-container);border-radius:var(--pine-border-radius-full);content:"";display:block;height:var(--sizing-check-size);left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);width:var(--sizing-check-size)}input.sc-pds-radio:disabled{background:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);cursor:not-allowed}input.sc-pds-radio:disabled:checked{background-color:var(--pine-color-accent-disabled);border-color:var(--pine-color-border-disabled)}input.sc-pds-radio:disabled:checked::after{border-color:var(--pine-color-border-disabled)}input.sc-pds-radio:disabled+label.sc-pds-radio{cursor:not-allowed}input.sc-pds-radio:disabled~.pds-radio__message.sc-pds-radio{color:var(--pine-color-text-message-disabled)}input.sc-pds-radio:focus-visible{outline:var(--pine-outline-focus)}label.sc-pds-radio{display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs)}.visually-hidden.sc-pds-radio{border:0;clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pds-radio__message.sc-pds-radio{color:var(--pine-color-text-message);font:var(--pine-typography-body-sm-medium);-webkit-margin-before:var(--sizing-margin-block-start);margin-block-start:var(--sizing-margin-block-start);-webkit-margin-start:var(--pine-dimension-md);margin-inline-start:var(--pine-dimension-md);width:100%}.pds-radio__message--error.sc-pds-radio{display:-ms-flexbox;display:flex;font-size:var(--pine-font-size-body-sm);gap:var(--pine-dimension-2xs)}.pds-radio__message--error.sc-pds-radio pds-icon.sc-pds-radio{-webkit-margin-before:var(--pine-dimension-025);margin-block-start:var(--pine-dimension-025)}';var b=i("pds_radio",function(){function i(i){var a=this;e(this,i);this.pdsRadioChange=r(this,"pdsRadioChange");this._type="radio";this.checked=false;this.disabled=false;this.invalid=false;this.required=false;this.handleRadioChange=function(i){if(a.disabled){return}var e=i.target;var r=e.checked;a.pdsRadioChange.emit(r)}}i.prototype.classNames=function(){var i=[];if(this.invalid){i.push("is-invalid")}if(this.disabled){i.push("is-disabled")}return i.join(" ")};i.prototype.connectedCallback=function(){var i=this;d(this.el,(function(){return i._type}))};i.prototype.render=function(){return a(s,{key:"06e5b348a9fe664ac157f0383dab869885644f28",class:this.classNames()},a("label",{key:"12d203aa9a181de09a4323b0644905f308209e10",htmlFor:this.componentId},a("input",{key:"693af2832937dfa368859bc5d34e33813093bd19","aria-describedby":c(this.componentId,this.invalid,this.helperMessage),"aria-invalid":this.invalid?"true":undefined,type:"radio",id:this.componentId,name:this.name,value:this.value,checked:this.checked,required:this.required,disabled:this.disabled,onChange:this.handleRadioChange}),a("span",{key:"12cbafe6f967b0336e12083e506d0347fd60bb1a",class:this.hideLabel?"visually-hidden":""},this.label)),this.helperMessage&&a("div",{key:"d4c416a2c24331bb23c6bd829aff51dfe142ac4a",class:"pds-radio__message",id:n(this.componentId,"helper")},this.helperMessage),this.errorMessage&&a("div",{key:"8b973854356bdf1d36401bb7f818bacf573da010",class:"pds-radio__message pds-radio__message--error",id:n(this.componentId,"error"),"aria-live":"assertive"},a("pds-icon",{key:"85abae586504b4d64a19bf078ddd5fab099e4e06",icon:t,size:"small"}),this.errorMessage))};Object.defineProperty(i.prototype,"el",{get:function(){return o(this)},enumerable:false,configurable:true});return i}());b.style=l+p}}}));
2
+ //# sourceMappingURL=p-708e963c.system.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["labelCss","pdsRadioCss","PdsRadio","exports","class_1","hostRef","_this","this","_type","checked","disabled","invalid","required","handleRadioChange","e","target","isChecked","pdsRadioChange","emit","prototype","classNames","push","join","connectedCallback","exposeTypeProperty","el","render","h","Host","key","class","htmlFor","componentId","assignDescription","helperMessage","undefined","type","id","name","value","onChange","hideLabel","label","messageId","errorMessage","icon","danger","size"],"sources":["src/global/styles/utils/label.scss?tag=pds-radio&encapsulation=scoped","src/components/pds-radio/pds-radio.scss?tag=pds-radio&encapsulation=scoped","src/components/pds-radio/pds-radio.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n:host([aria-disabled=\"true\"]) label {\n color: var(--pine-color-text-label-disabled);\n}\n\n:host([aria-readonly=\"true\"]) {\n label {\n color: var(--pine-color-text-label-readonly);\n }\n}\n\nlabel {\n color: var(--pine-color-text-label);\n font: var(--pine-typography-body-medium);\n letter-spacing: var(--pine-letter-spacing);\n}\n",":host {\n --sizing-check-size: 6px;\n --sizing-input-size: var(--pine-dimension-sm);\n --sizing-margin-block-start: 6px;\n\n align-items: center;\n display: flex;\n flex-flow: row wrap;\n}\n\n:host(.is-invalid) {\n input {\n border-color: var(--pine-color-border-danger);\n\n &:checked {\n background: var(--pine-color-border-danger);\n\n &:hover {\n background: var(--pine-color-border-danger-hover);\n border-color: var(--pine-color-border-danger-hover);\n }\n }\n\n &:focus-visible {\n outline-color: var(--pine-color-focus-ring-danger);\n }\n }\n\n label,\n .pds-radio__message--error {\n color: var(--pine-color-text-message-danger);\n }\n}\n\ninput {\n appearance: none;\n background: var(--pine-color-background-container);\n border: var(--pine-border);\n border-radius: var(--pine-border-radius-full);\n flex: none;\n height: var(--sizing-input-size);\n margin: 0;\n margin-block-start: var(--pine-dimension-025);\n position: relative;\n width: var(--sizing-input-size);\n\n &:hover {\n background: var(--pine-color-background-container-hover);\n border: var(--pine-border-hover);\n }\n\n &:checked {\n background: var(--pine-color-accent);\n border-color: var(--pine-color-accent);\n\n &:hover {\n background: var(--pine-color-accent-hover);\n border-color: var(--pine-color-accent-hover);\n }\n\n &::after {\n background: var(--pine-color-background-container);\n border-radius: var(--pine-border-radius-full);\n content: \"\";\n display: block;\n height: var(--sizing-check-size);\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n width: var(--sizing-check-size);\n }\n }\n\n &:disabled {\n background: var(--pine-color-background-container-disabled);\n border-color: var(--pine-color-border-disabled);\n cursor: not-allowed;\n\n &:checked {\n background-color: var(--pine-color-accent-disabled);\n border-color: var(--pine-color-border-disabled);\n\n &::after {\n border-color: var(--pine-color-border-disabled);\n }\n }\n\n + label {\n cursor: not-allowed;\n }\n\n ~ .pds-radio__message {\n color: var(--pine-color-text-message-disabled);\n }\n }\n\n &:focus-visible {\n outline: var(--pine-outline-focus);\n }\n\n}\n\nlabel {\n display: flex;\n gap: var(--pine-dimension-xs);\n}\n\n.visually-hidden {\n border: 0;\n clip: rect(0 0 0 0);\n clip-path: polygon(0 0, 0 0, 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}\n\n.pds-radio__message {\n color: var(--pine-color-text-message);\n font: var(--pine-typography-body-sm-medium);\n margin-block-start: var(--sizing-margin-block-start);\n margin-inline-start: var(--pine-dimension-md);\n width: 100%;\n}\n\n.pds-radio__message--error {\n display: flex;\n font-size: var(--pine-font-size-body-sm);\n gap: var(--pine-dimension-2xs);\n\n pds-icon {\n margin-block-start: var(--pine-dimension-025);\n }\n}\n","import { Component, Host, h, Prop, Event, EventEmitter, Element } from '@stencil/core';\nimport { assignDescription, messageId, exposeTypeProperty } from '../../utils/form';\nimport { danger } from '@pine-ds/icons/icons';\n\n@Component({\n tag: 'pds-radio',\n styleUrls: ['../../global/styles/utils/label.scss', 'pds-radio.scss'],\n scoped: true,\n})\nexport class PdsRadio {\n private readonly _type = 'radio' as const;\n\n @Element() el: HTMLPdsRadioElement;\n\n /**\n * Determines whether or not the radio is checked.\n * @defaultValue false\n */\n @Prop() checked = false;\n\n /**\n * A unique identifier used for the underlying component `id` attribute and the label `for` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Determines whether or not the radio is disabled.\n * @defaultValue false\n */\n @Prop() disabled = false;\n\n /**\n * Displays error message text describing an invalid state.\n */\n @Prop() errorMessage: string;\n\n /**\n * Displays helper message text below radio.\n */\n @Prop() helperMessage: string;\n\n /**\n * Determines whether or not the radio is invalid.\n * @defaultValue false\n */\n @Prop() invalid = false;\n\n /**\n * String used for label text next to radio.\n */\n @Prop() label: string;\n\n /**\n * Visually hides the label text for instances where only the radio should be displayed. Label remains accessible to assistive technology such as screen readers.\n */\n @Prop() hideLabel: boolean;\n\n /**\n * String used for radio `name` attribute.\n */\n @Prop() name: string;\n\n /**\n * Determines whether or not the radio is required.\n * @defaultValue false\n */\n @Prop() required = false;\n\n /**\n * The value of the radio that is submitted with a form.\n */\n @Prop() value: string;\n\n\n /**\n * Emits a boolean indicating whether the checkbox is currently checked or unchecked.\n */\n @Event() pdsRadioChange: EventEmitter<boolean>;\n\n private handleRadioChange = (e: Event) => {\n if (this.disabled) {\n return;\n }\n\n const target = e.target as HTMLInputElement;\n const isChecked = target.checked;\n\n this.pdsRadioChange.emit(isChecked);\n }\n\n private classNames() {\n const classNames = [];\n\n if (this.invalid) {\n classNames.push('is-invalid');\n }\n if (this.disabled) {\n classNames.push('is-disabled');\n }\n\n return classNames.join(' ');\n }\n\n connectedCallback() {\n // Expose type property on the element instance to match native form element behavior\n exposeTypeProperty(this.el, () => this._type);\n }\n\n render() {\n return (\n <Host class={this.classNames()}>\n <label htmlFor={this.componentId}>\n <input\n aria-describedby={assignDescription(this.componentId, this.invalid, this.helperMessage)}\n aria-invalid={this.invalid ? \"true\" : undefined}\n type=\"radio\"\n id={this.componentId}\n name={this.name}\n value={this.value}\n checked={this.checked}\n required={this.required}\n disabled={this.disabled}\n onChange={this.handleRadioChange}\n />\n <span class={this.hideLabel ? 'visually-hidden' : ''}>\n {this.label}\n </span>\n </label>\n {this.helperMessage &&\n <div\n class={'pds-radio__message'}\n id={messageId(this.componentId, 'helper')}\n >\n {this.helperMessage}\n </div>\n }\n {this.errorMessage &&\n <div\n class={`pds-radio__message pds-radio__message--error`}\n id={messageId(this.componentId, 'error')}\n aria-live=\"assertive\"\n >\n <pds-icon icon={danger} size=\"small\" />\n {this.errorMessage}\n </div>\n }\n </Host>\n );\n }\n}\n"],"mappings":"8QAAA,IAAMA,EAAW,sXCAjB,IAAMC,EAAc,s4G,ICSPC,EAAQC,EAAA,uBALrB,SAAAC,EAAAC,GAAA,IAAAC,EAAAC,K,uDAMmBA,KAAKC,MAAG,QAQjBD,KAAOE,QAAG,MAWVF,KAAQG,SAAG,MAgBTH,KAAOI,QAAG,MAqBZJ,KAAQK,SAAG,MAaXL,KAAAM,kBAAoB,SAACC,GAC3B,GAAIR,EAAKI,SAAU,CACjB,M,CAGF,IAAMK,EAASD,EAAEC,OACjB,IAAMC,EAAYD,EAAON,QAEzBH,EAAKW,eAAeC,KAAKF,EAC3B,CA6DD,CA3DSZ,EAAAe,UAAAC,WAAA,WACN,IAAMA,EAAa,GAEnB,GAAIb,KAAKI,QAAS,CAChBS,EAAWC,KAAK,a,CAElB,GAAId,KAAKG,SAAU,CACjBU,EAAWC,KAAK,c,CAGlB,OAAOD,EAAWE,KAAK,K,EAGzBlB,EAAAe,UAAAI,kBAAA,eAAAjB,EAAAC,KAEEiB,EAAmBjB,KAAKkB,IAAI,WAAM,OAAAnB,EAAKE,KAAL,G,EAGpCJ,EAAAe,UAAAO,OAAA,WACE,OACEC,EAACC,EAAI,CAAAC,IAAA,2CAACC,MAAOvB,KAAKa,cAChBO,EAAA,SAAAE,IAAA,2CAAOE,QAASxB,KAAKyB,aACnBL,EAAA,SAAAE,IAAA,8DACoBI,EAAkB1B,KAAKyB,YAAazB,KAAKI,QAASJ,KAAK2B,eAAc,eACzE3B,KAAKI,QAAU,OAASwB,UACtCC,KAAK,QACLC,GAAI9B,KAAKyB,YACTM,KAAM/B,KAAK+B,KACXC,MAAOhC,KAAKgC,MACZ9B,QAASF,KAAKE,QACdG,SAAUL,KAAKK,SACfF,SAAUH,KAAKG,SACf8B,SAAUjC,KAAKM,oBAEjBc,EAAA,QAAAE,IAAA,2CAAMC,MAAOvB,KAAKkC,UAAY,kBAAoB,IAC/ClC,KAAKmC,QAGTnC,KAAK2B,eACJP,EAAA,OAAAE,IAAA,2CACEC,MAAO,qBACPO,GAAIM,EAAUpC,KAAKyB,YAAa,WAE/BzB,KAAK2B,eAGT3B,KAAKqC,cACJjB,EAAA,OAAAE,IAAA,2CACEC,MAAO,+CACPO,GAAIM,EAAUpC,KAAKyB,YAAa,SAAQ,YAC9B,aAEVL,EAAA,YAAAE,IAAA,2CAAUgB,KAAMC,EAAQC,KAAK,UAC5BxC,KAAKqC,c,uHAtIG,I","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{r as i,c as n,h as e,H as o}from"./p-Bf1dou5H.js";import{d as p,r}from"./p-D4MkIUXU.js";const s=":host{--pine-chip-color-accent:var(--pine-color-purple-100);--pine-chip-color-accent-hover:var(--pine-color-purple-300);--pine-chip-color-accent-dot:var(--pine-color-purple-600);--pine-chip-color-danger:var(--pine-color-red-100);--pine-chip-color-danger-hover:var(--pine-color-red-300);--pine-chip-color-danger-dot:var(--pine-color-red-600);--pine-chip-color-info:var(--pine-color-blue-100);--pine-chip-color-info-hover:var(--pine-color-blue-300);--pine-chip-color-info-dot:var(--pine-color-blue-600);--pine-chip-color-neutral:var(--pine-color-grey-100);--pine-chip-color-neutral-hover:var(--pine-color-grey-300);--pine-chip-color-neutral-dot:var(--pine-color-grey-600);--pine-chip-color-success:var(--pine-color-green-100);--pine-chip-color-success-hover:var(--pine-color-green-300);--pine-chip-color-success-dot:var(--pine-color-green-600);--pine-chip-color-warning:var(--pine-color-yellow-100);--pine-chip-color-warning-hover:var(--pine-color-yellow-300);--pine-chip-color-warning-dot:var(--pine-color-yellow-600)}";const c=":host{--sizing-close:var(--pine-dimension-125);-ms-flex-align:center;align-items:center;border-radius:var(--pine-dimension-sm);display:-ms-inline-flexbox;display:inline-flex;padding-block:var(--pine-dimension-025);padding-inline:var(--pine-dimension-150)}:host(.pds-chip--accent){background:var(--pine-chip-color-accent);border:var(--pine-border-width) solid var(--pine-chip-color-accent-hover)}:host(.pds-chip--accent) .pds-chip__dot{background:var(--pine-chip-color-accent-dot)}:host(.pds-chip--accent) .pds-chip__label,:host(.pds-chip--accent) .pds-chip__button,:host(.pds-chip--accent) .pds-chip__close{color:var(--pine-color-text-accent);font-weight:var(--pine-font-weight-medium)}:host(.pds-chip--accent) .pds-chip__close:hover{background:var(--pine-chip-color-accent-hover)}:host(.pds-chip--accent.pds-chip--dropdown:hover){background:var(--pine-chip-color-accent-hover)}:host(.pds-chip--danger){background:var(--pine-chip-color-danger);border:var(--pine-border-width) solid var(--pine-chip-color-danger-hover)}:host(.pds-chip--danger) .pds-chip__dot{background:var(--pine-chip-color-danger-dot)}:host(.pds-chip--danger) .pds-chip__label,:host(.pds-chip--danger) .pds-chip__button,:host(.pds-chip--danger) .pds-chip__close{color:var(--pine-color-text-danger);font-weight:var(--pine-font-weight-medium)}:host(.pds-chip--danger) .pds-chip__close:hover{background:var(--pine-chip-color-danger-hover)}:host(.pds-chip--danger.pds-chip--dropdown:hover){background:var(--pine-chip-color-danger-hover)}:host(.pds-chip--info){background:var(--pine-chip-color-info);border:var(--pine-border-width) solid var(--pine-chip-color-info-hover)}:host(.pds-chip--info) .pds-chip__dot{background:var(--pine-chip-color-info-dot)}:host(.pds-chip--info) .pds-chip__label,:host(.pds-chip--info) .pds-chip__button,:host(.pds-chip--info) .pds-chip__close{color:var(--pine-color-text-info);font-weight:var(--pine-font-weight-medium)}:host(.pds-chip--info) .pds-chip__close:hover{background:var(--pine-chip-color-info-hover)}:host(.pds-chip--info.pds-chip--dropdown:hover){background:var(--pine-chip-color-info-hover)}:host(.pds-chip--neutral){background:var(--pine-chip-color-neutral);border:var(--pine-border-width) solid var(--pine-chip-color-neutral-hover)}:host(.pds-chip--neutral) .pds-chip__dot{background:var(--pine-chip-color-neutral-dot)}:host(.pds-chip--neutral) .pds-chip__label,:host(.pds-chip--neutral) .pds-chip__button,:host(.pds-chip--neutral) .pds-chip__close{color:var(--pine-color-text-neutral);font-weight:var(--pine-font-weight-medium)}:host(.pds-chip--neutral) .pds-chip__close:hover{background:var(--pine-chip-color-neutral-hover)}:host(.pds-chip--neutral.pds-chip--dropdown:hover){background:var(--pine-chip-color-neutral-hover)}:host(.pds-chip--success){background:var(--pine-chip-color-success);border:var(--pine-border-width) solid var(--pine-chip-color-success-hover)}:host(.pds-chip--success) .pds-chip__dot{background:var(--pine-chip-color-success-dot)}:host(.pds-chip--success) .pds-chip__label,:host(.pds-chip--success) .pds-chip__button,:host(.pds-chip--success) .pds-chip__close{color:var(--pine-color-text-success);font-weight:var(--pine-font-weight-medium)}:host(.pds-chip--success) .pds-chip__close:hover{background:var(--pine-chip-color-success-hover)}:host(.pds-chip--success.pds-chip--dropdown:hover){background:var(--pine-chip-color-success-hover)}:host(.pds-chip--warning){background:var(--pine-chip-color-warning);border:var(--pine-border-width) solid var(--pine-chip-color-warning-hover)}:host(.pds-chip--warning) .pds-chip__dot{background:var(--pine-chip-color-warning-dot)}:host(.pds-chip--warning) .pds-chip__label,:host(.pds-chip--warning) .pds-chip__button,:host(.pds-chip--warning) .pds-chip__close{color:var(--pine-color-text-warning);font-weight:var(--pine-font-weight-medium)}:host(.pds-chip--warning) .pds-chip__close:hover{background:var(--pine-chip-color-warning-hover)}:host(.pds-chip--warning.pds-chip--dropdown:hover){background:var(--pine-chip-color-warning-hover)}.pds-chip__dot{border:var(--pine-border-width) solid transparent;border-radius:var(--pine-border-radius-full);display:inline-block;height:var(--pine-dimension-2xs);-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs);width:var(--pine-dimension-2xs)}.pds-chip__label{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex}.pds-chip__label pds-icon{-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs)}.pds-chip__label,.pds-chip__button{font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing)}:host(.pds-chip--dropdown){padding:var(--pine-dimension-none)}.pds-chip__button{-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:var(--pine-dimension-none);border-radius:var(--pine-dimension-sm);cursor:pointer;display:-ms-flexbox;display:flex;padding:var(--pine-dimension-025) var(--pine-dimension-150)}.pds-chip__button:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-chip__button pds-icon:first-child{-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs)}.pds-chip__button pds-icon:last-child{-webkit-margin-end:calc(var(--pine-dimension-025) * -1);margin-inline-end:calc(var(--pine-dimension-025) * -1);-webkit-margin-start:var(--pine-dimension-2xs);margin-inline-start:var(--pine-dimension-2xs)}.pds-chip__close{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:var(--pine-border-radius-full);height:var(--sizing-close);-webkit-margin-end:calc(var(--pine-dimension-xs) * -1);margin-inline-end:calc(var(--pine-dimension-xs) * -1);-webkit-margin-start:var(--pine-dimension-2xs);margin-inline-start:var(--pine-dimension-2xs);padding:var(--sizing-close);position:relative;width:var(--sizing-close)}.pds-chip__close pds-icon{left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}.pds-chip__close:focus-visible{outline:var(--pine-outline-focus)}:host(.pds-chip--large){padding-block:var(--pine-dimension-025);padding-inline:var(--pine-dimension-150)}:host(.pds-chip--large) .pds-chip__label,:host(.pds-chip--large) .pds-chip__button{font-family:var(--pine-font-family-heading);font-size:var(--pine-font-size-heading-6);font-weight:var(--pine-font-weight-medium);letter-spacing:var(--pine-letter-spacing-heading-6)}:host(.pds-chip--large.pds-chip--dropdown){padding:var(--pine-dimension-none)}:host(.pds-chip--large.pds-chip--dropdown) .pds-chip__button{padding:var(--pine-dimension-025) var(--pine-dimension-150)}:host(.pds-chip--brand){background:-webkit-gradient(linear, left top, right top, from(#FF3E14), to(#6B62F2));background:linear-gradient(90deg, #FF3E14 0%, #6B62F2 100%);border:0;padding:1px;position:relative}:host(.pds-chip--brand) .pds-chip__label{background:rgba(255, 255, 255, 0.9);border-radius:calc(var(--pine-dimension-sm) - 1px);color:var(--pine-color-text-neutral);font-weight:var(--pine-font-weight-medium);padding:var(--pine-dimension-025) var(--pine-dimension-150);position:relative;z-index:1}:host(.pds-chip--brand) .pds-chip__label pds-icon{-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs)}:host(.pds-chip--brand) .pds-chip__button,:host(.pds-chip--brand) .pds-chip__close{color:var(--pine-color-text-neutral);font-weight:var(--pine-font-weight-medium);position:relative;z-index:1}:host(.pds-chip--brand) .pds-chip__button pds-icon:first-child{-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs)}:host(.pds-chip--brand) .pds-chip__close:hover{background:rgba(255, 255, 255, 0.8)}";const d=class{constructor(e){i(this,e);this.pdsTagCloseClick=n(this,"pdsTagCloseClick");this.dot=false;this.large=false;this.sentiment="neutral";this.variant="text";this.handleCloseClick=()=>{this.pdsTagCloseClick.emit()}}classNames(){const i=["pds-chip"];if(this.large){i.push("pds-chip--large")}const n=this.sentiment==="brand"?"text":this.variant;if(n){i.push("pds-chip--"+n)}if(this.sentiment){i.push("pds-chip--"+this.sentiment)}return i.join(" ")}get effectiveVariant(){return this.sentiment==="brand"?"text":this.variant}get iconSize(){return this.large?"14px":"12px"}setChipContent(){const i=this.effectiveVariant==="dropdown";const n=this.sentiment==="brand"?false:this.dot;const o=i?e("button",{class:"pds-chip__button",type:"button"},this.icon&&e("pds-icon",{icon:this.icon,size:this.iconSize,"aria-hidden":"true"}),n&&e("i",{class:"pds-chip__dot","aria-hidden":"true"}),e("slot",null),e("pds-icon",{icon:p,size:this.iconSize,"aria-hidden":"true"})):e("span",{class:"pds-chip__label"},this.icon&&e("pds-icon",{icon:this.icon,size:this.iconSize,"aria-hidden":"true"}),n&&e("i",{class:"pds-chip__dot","aria-hidden":"true"}),e("slot",null));return o}render(){return e(o,{key:"87b74bdc74dcf3d0a7e9818a9643abcaac6ed732",class:this.classNames(),id:this.componentId},this.setChipContent(),this.effectiveVariant==="tag"&&e("button",{key:"98644f17a57514b541cd00be5c0972e589f7c44e",class:"pds-chip__close",type:"button",onClick:this.handleCloseClick,"aria-label":"Remove"},e("pds-icon",{key:"056913f77f7179db7e8f6f8b69df18c4bd98b891",icon:r,size:this.iconSize})))}};d.style=s+c;export{d as pds_chip};
2
- //# sourceMappingURL=p-896e2f1b.entry.js.map
1
+ import{r as i,c as n,h as e,H as o}from"./p-Bf1dou5H.js";import{d as p,r}from"./p-D4zJBIgl.js";const s=":host{--pine-chip-color-accent:var(--pine-color-purple-100);--pine-chip-color-accent-hover:var(--pine-color-purple-300);--pine-chip-color-accent-dot:var(--pine-color-purple-600);--pine-chip-color-danger:var(--pine-color-red-100);--pine-chip-color-danger-hover:var(--pine-color-red-300);--pine-chip-color-danger-dot:var(--pine-color-red-600);--pine-chip-color-info:var(--pine-color-blue-100);--pine-chip-color-info-hover:var(--pine-color-blue-300);--pine-chip-color-info-dot:var(--pine-color-blue-600);--pine-chip-color-neutral:var(--pine-color-grey-100);--pine-chip-color-neutral-hover:var(--pine-color-grey-300);--pine-chip-color-neutral-dot:var(--pine-color-grey-600);--pine-chip-color-success:var(--pine-color-green-100);--pine-chip-color-success-hover:var(--pine-color-green-300);--pine-chip-color-success-dot:var(--pine-color-green-600);--pine-chip-color-warning:var(--pine-color-yellow-100);--pine-chip-color-warning-hover:var(--pine-color-yellow-300);--pine-chip-color-warning-dot:var(--pine-color-yellow-600)}";const c=":host{--sizing-close:var(--pine-dimension-125);-ms-flex-align:center;align-items:center;border-radius:var(--pine-dimension-sm);display:-ms-inline-flexbox;display:inline-flex;padding-block:var(--pine-dimension-025);padding-inline:var(--pine-dimension-150)}:host(.pds-chip--accent){background:var(--pine-chip-color-accent);border:var(--pine-border-width) solid var(--pine-chip-color-accent-hover)}:host(.pds-chip--accent) .pds-chip__dot{background:var(--pine-chip-color-accent-dot)}:host(.pds-chip--accent) .pds-chip__label,:host(.pds-chip--accent) .pds-chip__button,:host(.pds-chip--accent) .pds-chip__close{color:var(--pine-color-text-accent);font-weight:var(--pine-font-weight-medium)}:host(.pds-chip--accent) .pds-chip__close:hover{background:var(--pine-chip-color-accent-hover)}:host(.pds-chip--accent.pds-chip--dropdown:hover){background:var(--pine-chip-color-accent-hover)}:host(.pds-chip--danger){background:var(--pine-chip-color-danger);border:var(--pine-border-width) solid var(--pine-chip-color-danger-hover)}:host(.pds-chip--danger) .pds-chip__dot{background:var(--pine-chip-color-danger-dot)}:host(.pds-chip--danger) .pds-chip__label,:host(.pds-chip--danger) .pds-chip__button,:host(.pds-chip--danger) .pds-chip__close{color:var(--pine-color-text-danger);font-weight:var(--pine-font-weight-medium)}:host(.pds-chip--danger) .pds-chip__close:hover{background:var(--pine-chip-color-danger-hover)}:host(.pds-chip--danger.pds-chip--dropdown:hover){background:var(--pine-chip-color-danger-hover)}:host(.pds-chip--info){background:var(--pine-chip-color-info);border:var(--pine-border-width) solid var(--pine-chip-color-info-hover)}:host(.pds-chip--info) .pds-chip__dot{background:var(--pine-chip-color-info-dot)}:host(.pds-chip--info) .pds-chip__label,:host(.pds-chip--info) .pds-chip__button,:host(.pds-chip--info) .pds-chip__close{color:var(--pine-color-text-info);font-weight:var(--pine-font-weight-medium)}:host(.pds-chip--info) .pds-chip__close:hover{background:var(--pine-chip-color-info-hover)}:host(.pds-chip--info.pds-chip--dropdown:hover){background:var(--pine-chip-color-info-hover)}:host(.pds-chip--neutral){background:var(--pine-chip-color-neutral);border:var(--pine-border-width) solid var(--pine-chip-color-neutral-hover)}:host(.pds-chip--neutral) .pds-chip__dot{background:var(--pine-chip-color-neutral-dot)}:host(.pds-chip--neutral) .pds-chip__label,:host(.pds-chip--neutral) .pds-chip__button,:host(.pds-chip--neutral) .pds-chip__close{color:var(--pine-color-text-neutral);font-weight:var(--pine-font-weight-medium)}:host(.pds-chip--neutral) .pds-chip__close:hover{background:var(--pine-chip-color-neutral-hover)}:host(.pds-chip--neutral.pds-chip--dropdown:hover){background:var(--pine-chip-color-neutral-hover)}:host(.pds-chip--success){background:var(--pine-chip-color-success);border:var(--pine-border-width) solid var(--pine-chip-color-success-hover)}:host(.pds-chip--success) .pds-chip__dot{background:var(--pine-chip-color-success-dot)}:host(.pds-chip--success) .pds-chip__label,:host(.pds-chip--success) .pds-chip__button,:host(.pds-chip--success) .pds-chip__close{color:var(--pine-color-text-success);font-weight:var(--pine-font-weight-medium)}:host(.pds-chip--success) .pds-chip__close:hover{background:var(--pine-chip-color-success-hover)}:host(.pds-chip--success.pds-chip--dropdown:hover){background:var(--pine-chip-color-success-hover)}:host(.pds-chip--warning){background:var(--pine-chip-color-warning);border:var(--pine-border-width) solid var(--pine-chip-color-warning-hover)}:host(.pds-chip--warning) .pds-chip__dot{background:var(--pine-chip-color-warning-dot)}:host(.pds-chip--warning) .pds-chip__label,:host(.pds-chip--warning) .pds-chip__button,:host(.pds-chip--warning) .pds-chip__close{color:var(--pine-color-text-warning);font-weight:var(--pine-font-weight-medium)}:host(.pds-chip--warning) .pds-chip__close:hover{background:var(--pine-chip-color-warning-hover)}:host(.pds-chip--warning.pds-chip--dropdown:hover){background:var(--pine-chip-color-warning-hover)}.pds-chip__dot{border:var(--pine-border-width) solid transparent;border-radius:var(--pine-border-radius-full);display:inline-block;height:var(--pine-dimension-2xs);-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs);width:var(--pine-dimension-2xs)}.pds-chip__label{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex}.pds-chip__label pds-icon{-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs)}.pds-chip__label,.pds-chip__button{font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing)}:host(.pds-chip--dropdown){padding:var(--pine-dimension-none)}.pds-chip__button{-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:var(--pine-dimension-none);border-radius:var(--pine-dimension-sm);cursor:pointer;display:-ms-flexbox;display:flex;padding:var(--pine-dimension-025) var(--pine-dimension-150)}.pds-chip__button:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-chip__button pds-icon:first-child{-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs)}.pds-chip__button pds-icon:last-child{-webkit-margin-end:calc(var(--pine-dimension-025) * -1);margin-inline-end:calc(var(--pine-dimension-025) * -1);-webkit-margin-start:var(--pine-dimension-2xs);margin-inline-start:var(--pine-dimension-2xs)}.pds-chip__close{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:var(--pine-border-radius-full);height:var(--sizing-close);-webkit-margin-end:calc(var(--pine-dimension-xs) * -1);margin-inline-end:calc(var(--pine-dimension-xs) * -1);-webkit-margin-start:var(--pine-dimension-2xs);margin-inline-start:var(--pine-dimension-2xs);padding:var(--sizing-close);position:relative;width:var(--sizing-close)}.pds-chip__close pds-icon{left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}.pds-chip__close:focus-visible{outline:var(--pine-outline-focus)}:host(.pds-chip--large){padding-block:var(--pine-dimension-025);padding-inline:var(--pine-dimension-150)}:host(.pds-chip--large) .pds-chip__label,:host(.pds-chip--large) .pds-chip__button{font-family:var(--pine-font-family-heading);font-size:var(--pine-font-size-heading-6);font-weight:var(--pine-font-weight-medium);letter-spacing:var(--pine-letter-spacing-heading-6)}:host(.pds-chip--large.pds-chip--dropdown){padding:var(--pine-dimension-none)}:host(.pds-chip--large.pds-chip--dropdown) .pds-chip__button{padding:var(--pine-dimension-025) var(--pine-dimension-150)}:host(.pds-chip--brand){background:-webkit-gradient(linear, left top, right top, from(#FF3E14), to(#6B62F2));background:linear-gradient(90deg, #FF3E14 0%, #6B62F2 100%);border:0;padding:1px;position:relative}:host(.pds-chip--brand) .pds-chip__label{background:rgba(255, 255, 255, 0.9);border-radius:calc(var(--pine-dimension-sm) - 1px);color:var(--pine-color-text-neutral);font-weight:var(--pine-font-weight-medium);padding:var(--pine-dimension-025) var(--pine-dimension-150);position:relative;z-index:var(--pine-z-index-raised)}:host(.pds-chip--brand) .pds-chip__label pds-icon{-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs)}:host(.pds-chip--brand) .pds-chip__button,:host(.pds-chip--brand) .pds-chip__close{color:var(--pine-color-text-neutral);font-weight:var(--pine-font-weight-medium);position:relative;z-index:var(--pine-z-index-raised)}:host(.pds-chip--brand) .pds-chip__button pds-icon:first-child{-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs)}:host(.pds-chip--brand) .pds-chip__close:hover{background:rgba(255, 255, 255, 0.8)}";const d=class{constructor(e){i(this,e);this.pdsTagCloseClick=n(this,"pdsTagCloseClick");this.dot=false;this.large=false;this.sentiment="neutral";this.variant="text";this.handleCloseClick=()=>{this.pdsTagCloseClick.emit()}}classNames(){const i=["pds-chip"];if(this.large){i.push("pds-chip--large")}const n=this.sentiment==="brand"?"text":this.variant;if(n){i.push("pds-chip--"+n)}if(this.sentiment){i.push("pds-chip--"+this.sentiment)}return i.join(" ")}get effectiveVariant(){return this.sentiment==="brand"?"text":this.variant}get iconSize(){return this.large?"14px":"12px"}setChipContent(){const i=this.effectiveVariant==="dropdown";const n=this.sentiment==="brand"?false:this.dot;const o=i?e("button",{class:"pds-chip__button",type:"button"},this.icon&&e("pds-icon",{icon:this.icon,size:this.iconSize,"aria-hidden":"true"}),n&&e("i",{class:"pds-chip__dot","aria-hidden":"true"}),e("slot",null),e("pds-icon",{icon:p,size:this.iconSize,"aria-hidden":"true"})):e("span",{class:"pds-chip__label"},this.icon&&e("pds-icon",{icon:this.icon,size:this.iconSize,"aria-hidden":"true"}),n&&e("i",{class:"pds-chip__dot","aria-hidden":"true"}),e("slot",null));return o}render(){return e(o,{key:"4cabdea812310c96b07b9404ac2633157b5001dd",class:this.classNames(),id:this.componentId},this.setChipContent(),this.effectiveVariant==="tag"&&e("button",{key:"b46734c75fe179f632bccc8f8aecd9cde83f8816",class:"pds-chip__close",type:"button",onClick:this.handleCloseClick,"aria-label":"Remove"},e("pds-icon",{key:"846822efb7116a2f109b5950182f3e1529266f1c",icon:r,size:this.iconSize})))}};d.style=s+c;export{d as pds_chip};
2
+ //# sourceMappingURL=p-725c350c.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["pdsChipTokensCss","pdsChipCss","PdsChip","constructor","hostRef","this","dot","large","sentiment","variant","handleCloseClick","pdsTagCloseClick","emit","classNames","push","effectiveVariant","join","iconSize","setChipContent","isDropdown","showDot","chipContent","h","class","type","icon","size","downSmall","render","Host","key","id","componentId","onClick","remove"],"sources":["src/components/pds-chip/pds-chip.tokens.scss?tag=pds-chip&encapsulation=shadow","src/components/pds-chip/pds-chip.scss?tag=pds-chip&encapsulation=shadow","src/components/pds-chip/pds-chip.tsx"],"sourcesContent":["@use '~@kajabi-ui/styles/dist/pine/components/pds-chip/pds-chip.tokens'\n","@use 'sass:map';\n\n:host {\n --sizing-close: var(--pine-dimension-125);\n\n align-items: center;\n border-radius: var(--pine-dimension-sm);\n display: inline-flex;\n padding-block: var(--pine-dimension-025);\n padding-inline: var(--pine-dimension-150);\n}\n\n$pds-chip-sentiment: (\n accent: var(--pine-chip-color-accent),\n danger: var(--pine-chip-color-danger),\n info: var(--pine-chip-color-info),\n neutral: var(--pine-chip-color-neutral),\n success: var(--pine-chip-color-success),\n warning: var(--pine-chip-color-warning),\n);\n\n$pds-chip-sentiment-text: (\n accent: var(--pine-color-text-accent),\n danger: var(--pine-color-text-danger),\n info: var(--pine-color-text-info),\n neutral: var(--pine-color-text-neutral),\n success: var(--pine-color-text-success),\n warning: var(--pine-color-text-warning),\n);\n\n$pds-chip-sentiment-dots: (\n accent: var(--pine-chip-color-accent-dot),\n danger: var(--pine-chip-color-danger-dot),\n info: var(--pine-chip-color-info-dot),\n neutral: var(--pine-chip-color-neutral-dot),\n success: var(--pine-chip-color-success-dot),\n warning: var(--pine-chip-color-warning-dot),\n);\n\n$pds-chip-sentiment-hover: (\n accent: var(--pine-chip-color-accent-hover),\n danger: var(--pine-chip-color-danger-hover),\n info: var(--pine-chip-color-info-hover),\n neutral: var(--pine-chip-color-neutral-hover),\n success: var(--pine-chip-color-success-hover),\n warning: var(--pine-chip-color-warning-hover),\n);\n\n@each $sentiment, $value in $pds-chip-sentiment {\n :host(.pds-chip--#{$sentiment}) {\n background: $value;\n border: var(--pine-border-width) solid var(--pine-chip-color-#{$sentiment}-hover);\n\n // dot colors\n .pds-chip__dot {\n /* stylelint-disable-next-line */\n background: map.get($pds-chip-sentiment-dots, $sentiment);\n }\n\n .pds-chip__label, .pds-chip__button, .pds-chip__close {\n /* stylelint-disable-next-line */\n color: map.get($pds-chip-sentiment-text, $sentiment);\n font-weight: var(--pine-font-weight-medium);\n }\n\n // tag close hover colors\n .pds-chip__close:hover {\n /* stylelint-disable-next-line */\n background: map.get($pds-chip-sentiment-hover, $sentiment);\n }\n }\n // dropdown hover colors\n :host(.pds-chip--#{$sentiment}.pds-chip--dropdown:hover) {\n /* stylelint-disable-next-line */\n background: map.get($pds-chip-sentiment-hover, $sentiment);\n }\n}\n\n.pds-chip__dot {\n border: var(--pine-border-width) solid transparent;\n border-radius: var(--pine-border-radius-full);\n display: inline-block;\n height: var(--pine-dimension-2xs);\n margin-inline-end: var(--pine-dimension-2xs);\n width: var(--pine-dimension-2xs);\n}\n\n.pds-chip__label {\n align-items: center;\n display: flex;\n\n pds-icon {\n margin-inline-end: var(--pine-dimension-2xs);\n }\n}\n\n.pds-chip__label, .pds-chip__button {\n font: var(--pine-typography-body-medium);\n letter-spacing: var(--pine-letter-spacing);\n}\n\n// dropdown\n\n:host(.pds-chip--dropdown) {\n padding: var(--pine-dimension-none);\n}\n\n.pds-chip__button {\n align-items: center;\n appearance: none;\n background: transparent;\n border: var(--pine-dimension-none);\n border-radius: var(--pine-dimension-sm);\n cursor: pointer;\n display: flex;\n padding: var(--pine-dimension-025) var(--pine-dimension-150);\n\n &:focus-visible {\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-border-width);\n }\n\n pds-icon:first-child {\n margin-inline-end: var(--pine-dimension-2xs);\n }\n\n pds-icon:last-child {\n margin-inline-end: calc(var(--pine-dimension-025) * -1);\n margin-inline-start: var(--pine-dimension-2xs);\n }\n}\n\n.pds-chip__close {\n appearance: none;\n background: transparent;\n border: 0;\n border-radius: var(--pine-border-radius-full);\n height: var(--sizing-close);\n margin-inline-end: calc(var(--pine-dimension-xs) * -1);\n margin-inline-start: var(--pine-dimension-2xs);\n padding: var(--sizing-close);\n position: relative;\n width: var(--sizing-close);\n\n pds-icon {\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n }\n\n &:focus-visible {\n outline: var(--pine-outline-focus);\n }\n}\n\n// large\n\n:host(.pds-chip--large) {\n padding-block: var(--pine-dimension-025);\n padding-inline: var(--pine-dimension-150);\n\n .pds-chip__label, .pds-chip__button {\n font-family: var(--pine-font-family-heading);\n font-size: var(--pine-font-size-heading-6);\n font-weight: var(--pine-font-weight-medium);\n letter-spacing: var(--pine-letter-spacing-heading-6);\n }\n}\n\n:host(.pds-chip--large.pds-chip--dropdown) {\n padding: var(--pine-dimension-none);\n\n .pds-chip__button {\n padding: var(--pine-dimension-025) var(--pine-dimension-150);\n }\n}\n\n:host(.pds-chip--brand) {\n background: linear-gradient(90deg, #FF3E14 0%, #6B62F2 100%);\n border: 0;\n padding: 1px;\n position: relative;\n\n .pds-chip__label {\n background: rgba(255, 255, 255, 0.9);\n border-radius: calc(var(--pine-dimension-sm) - 1px);\n color: var(--pine-color-text-neutral);\n font-weight: var(--pine-font-weight-medium);\n padding: var(--pine-dimension-025) var(--pine-dimension-150);\n position: relative;\n z-index: 1;\n\n pds-icon {\n margin-inline-end: var(--pine-dimension-2xs);\n }\n }\n\n .pds-chip__button, .pds-chip__close {\n color: var(--pine-color-text-neutral);\n font-weight: var(--pine-font-weight-medium);\n position: relative;\n z-index: 1;\n }\n\n .pds-chip__button {\n pds-icon:first-child {\n margin-inline-end: var(--pine-dimension-2xs);\n }\n }\n\n // tag close hover colors\n .pds-chip__close:hover {\n background: rgba(255, 255, 255, 0.8);\n }\n}\n","import { downSmall, remove } from '@pine-ds/icons/icons';\nimport { Component, Host, h, Prop, Event, EventEmitter } from '@stencil/core';\n\n/**\n * @slot (default) - The chip's label text.\n */\n\n@Component({\n tag: 'pds-chip',\n styleUrls: ['pds-chip.tokens.scss', 'pds-chip.scss'],\n shadow: true,\n})\nexport class PdsChip {\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Determines whether a dot should be displayed on the chip.\n * Note: This prop is ignored when sentiment is 'brand'.\n * @defaultValue false\n */\n @Prop() dot = false;\n\n /**\n * The name of the icon to display before the chip text.\n */\n @Prop() icon?: string;\n\n /**\n * Determines whether the chip should be displayed in a larger size.\n * @defaultValue false\n */\n @Prop() large = false;\n\n /**\n * Defines the color scheme of the chip.\n * @defaultValue 'neutral'\n */\n @Prop() sentiment: 'accent' | 'brand' | 'danger' | 'info' | 'neutral' | 'success' | 'warning' = 'neutral';\n\n /**\n * Sets the style variant of the chip.\n * Note: This prop is ignored when sentiment is 'brand'.\n * @defaultValue 'text'\n */\n @Prop() variant: 'text' | 'tag' | 'dropdown' = 'text';\n\n /**\n * Event emitted when the close button is clicked on a tag variant chip.\n */\n @Event() pdsTagCloseClick: EventEmitter;\n\n private handleCloseClick = () => {\n this.pdsTagCloseClick.emit();\n };\n\n private classNames() {\n const classNames = ['pds-chip'];\n\n if (this.large) {\n classNames.push('pds-chip--large');\n }\n\n // For brand sentiment, always use text variant\n const effectiveVariant = this.sentiment === 'brand' ? 'text' : this.variant;\n if (effectiveVariant) {\n classNames.push('pds-chip--' + effectiveVariant);\n }\n\n if (this.sentiment) {\n classNames.push('pds-chip--' + this.sentiment);\n }\n\n return classNames.join(' ');\n }\n\n private get effectiveVariant() {\n // For brand sentiment, force text variant behavior\n return this.sentiment === 'brand' ? 'text' : this.variant;\n }\n\n private get iconSize() {\n // Icon size based on large prop\n return this.large ? '14px' : '12px';\n }\n\n private setChipContent() {\n const isDropdown = this.effectiveVariant === 'dropdown';\n\n // For brand sentiment, ignore dot prop\n const showDot = this.sentiment === 'brand' ? false : this.dot;\n\n const chipContent = isDropdown ? (\n <button class=\"pds-chip__button\" type=\"button\">\n {this.icon && <pds-icon icon={this.icon} size={this.iconSize} aria-hidden=\"true\"></pds-icon>}\n {showDot && <i class=\"pds-chip__dot\" aria-hidden=\"true\"></i>}\n <slot></slot>\n <pds-icon icon={downSmall} size={this.iconSize} aria-hidden=\"true\"></pds-icon>\n </button>\n ) : (\n <span class=\"pds-chip__label\">\n {this.icon && <pds-icon icon={this.icon} size={this.iconSize} aria-hidden=\"true\"></pds-icon>}\n {showDot && <i class=\"pds-chip__dot\" aria-hidden=\"true\"></i>}\n <slot></slot>\n </span>\n );\n\n return chipContent;\n }\n\n render() {\n return (\n <Host class={this.classNames()} id={this.componentId}>\n {this.setChipContent()}\n {this.effectiveVariant === 'tag' && (\n <button class=\"pds-chip__close\" type=\"button\" onClick={this.handleCloseClick} aria-label=\"Remove\">\n <pds-icon icon={remove} size={this.iconSize}></pds-icon>\n </button>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"+FAAA,MAAMA,EAAmB,4/BCAzB,MAAMC,EAAa,0lP,MCYNC,EAAO,MALpB,WAAAC,CAAAC,G,2DAgBUC,KAAGC,IAAG,MAWND,KAAKE,MAAG,MAMRF,KAASG,UAA+E,UAOxFH,KAAOI,QAAgC,OAOvCJ,KAAgBK,iBAAG,KACzBL,KAAKM,iBAAiBC,MAAM,CAqE/B,CAlES,UAAAC,GACN,MAAMA,EAAa,CAAC,YAEpB,GAAIR,KAAKE,MAAO,CACdM,EAAWC,KAAK,kB,CAIlB,MAAMC,EAAmBV,KAAKG,YAAc,QAAU,OAASH,KAAKI,QACpE,GAAIM,EAAkB,CACpBF,EAAWC,KAAK,aAAeC,E,CAGjC,GAAIV,KAAKG,UAAW,CAClBK,EAAWC,KAAK,aAAeT,KAAKG,U,CAGtC,OAAOK,EAAWG,KAAK,I,CAGzB,oBAAYD,GAEV,OAAOV,KAAKG,YAAc,QAAU,OAASH,KAAKI,O,CAGpD,YAAYQ,GAEV,OAAOZ,KAAKE,MAAQ,OAAS,M,CAGvB,cAAAW,GACN,MAAMC,EAAad,KAAKU,mBAAqB,WAG7C,MAAMK,EAAUf,KAAKG,YAAc,QAAU,MAAQH,KAAKC,IAE1D,MAAMe,EAAcF,EAClBG,EAAQ,UAAAC,MAAM,mBAAmBC,KAAK,UACnCnB,KAAKoB,MAAQH,EAAU,YAAAG,KAAMpB,KAAKoB,KAAMC,KAAMrB,KAAKY,SAAQ,cAAc,SACzEG,GAAWE,EAAG,KAAAC,MAAM,gBAAe,cAAa,SACjDD,EAAa,aACbA,EAAU,YAAAG,KAAME,EAAWD,KAAMrB,KAAKY,SAAQ,cAAc,UAG9DK,EAAA,QAAMC,MAAM,mBACTlB,KAAKoB,MAAQH,EAAU,YAAAG,KAAMpB,KAAKoB,KAAMC,KAAMrB,KAAKY,SAAQ,cAAc,SACzEG,GAAWE,EAAG,KAAAC,MAAM,gBAAe,cAAa,SACjDD,EAAa,cAIjB,OAAOD,C,CAGT,MAAAO,GACE,OACEN,EAACO,EAAI,CAAAC,IAAA,2CAACP,MAAOlB,KAAKQ,aAAckB,GAAI1B,KAAK2B,aACtC3B,KAAKa,iBACLb,KAAKU,mBAAqB,OACzBO,EAAA,UAAAQ,IAAA,2CAAQP,MAAM,kBAAkBC,KAAK,SAASS,QAAS5B,KAAKK,iBAAgB,aAAa,UACvFY,EAAA,YAAAQ,IAAA,2CAAUL,KAAMS,EAAQR,KAAMrB,KAAKY,Y","ignoreList":[]}
1
+ {"version":3,"names":["pdsChipTokensCss","pdsChipCss","PdsChip","constructor","hostRef","this","dot","large","sentiment","variant","handleCloseClick","pdsTagCloseClick","emit","classNames","push","effectiveVariant","join","iconSize","setChipContent","isDropdown","showDot","chipContent","h","class","type","icon","size","downSmall","render","Host","key","id","componentId","onClick","remove"],"sources":["src/components/pds-chip/pds-chip.tokens.scss?tag=pds-chip&encapsulation=shadow","src/components/pds-chip/pds-chip.scss?tag=pds-chip&encapsulation=shadow","src/components/pds-chip/pds-chip.tsx"],"sourcesContent":["@use '~@kajabi-ui/styles/dist/pine/components/pds-chip/pds-chip.tokens'\n","@use 'sass:map';\n\n:host {\n --sizing-close: var(--pine-dimension-125);\n\n align-items: center;\n border-radius: var(--pine-dimension-sm);\n display: inline-flex;\n padding-block: var(--pine-dimension-025);\n padding-inline: var(--pine-dimension-150);\n}\n\n$pds-chip-sentiment: (\n accent: var(--pine-chip-color-accent),\n danger: var(--pine-chip-color-danger),\n info: var(--pine-chip-color-info),\n neutral: var(--pine-chip-color-neutral),\n success: var(--pine-chip-color-success),\n warning: var(--pine-chip-color-warning),\n);\n\n$pds-chip-sentiment-text: (\n accent: var(--pine-color-text-accent),\n danger: var(--pine-color-text-danger),\n info: var(--pine-color-text-info),\n neutral: var(--pine-color-text-neutral),\n success: var(--pine-color-text-success),\n warning: var(--pine-color-text-warning),\n);\n\n$pds-chip-sentiment-dots: (\n accent: var(--pine-chip-color-accent-dot),\n danger: var(--pine-chip-color-danger-dot),\n info: var(--pine-chip-color-info-dot),\n neutral: var(--pine-chip-color-neutral-dot),\n success: var(--pine-chip-color-success-dot),\n warning: var(--pine-chip-color-warning-dot),\n);\n\n$pds-chip-sentiment-hover: (\n accent: var(--pine-chip-color-accent-hover),\n danger: var(--pine-chip-color-danger-hover),\n info: var(--pine-chip-color-info-hover),\n neutral: var(--pine-chip-color-neutral-hover),\n success: var(--pine-chip-color-success-hover),\n warning: var(--pine-chip-color-warning-hover),\n);\n\n@each $sentiment, $value in $pds-chip-sentiment {\n :host(.pds-chip--#{$sentiment}) {\n background: $value;\n border: var(--pine-border-width) solid var(--pine-chip-color-#{$sentiment}-hover);\n\n // dot colors\n .pds-chip__dot {\n /* stylelint-disable-next-line */\n background: map.get($pds-chip-sentiment-dots, $sentiment);\n }\n\n .pds-chip__label, .pds-chip__button, .pds-chip__close {\n /* stylelint-disable-next-line */\n color: map.get($pds-chip-sentiment-text, $sentiment);\n font-weight: var(--pine-font-weight-medium);\n }\n\n // tag close hover colors\n .pds-chip__close:hover {\n /* stylelint-disable-next-line */\n background: map.get($pds-chip-sentiment-hover, $sentiment);\n }\n }\n // dropdown hover colors\n :host(.pds-chip--#{$sentiment}.pds-chip--dropdown:hover) {\n /* stylelint-disable-next-line */\n background: map.get($pds-chip-sentiment-hover, $sentiment);\n }\n}\n\n.pds-chip__dot {\n border: var(--pine-border-width) solid transparent;\n border-radius: var(--pine-border-radius-full);\n display: inline-block;\n height: var(--pine-dimension-2xs);\n margin-inline-end: var(--pine-dimension-2xs);\n width: var(--pine-dimension-2xs);\n}\n\n.pds-chip__label {\n align-items: center;\n display: flex;\n\n pds-icon {\n margin-inline-end: var(--pine-dimension-2xs);\n }\n}\n\n.pds-chip__label, .pds-chip__button {\n font: var(--pine-typography-body-medium);\n letter-spacing: var(--pine-letter-spacing);\n}\n\n// dropdown\n\n:host(.pds-chip--dropdown) {\n padding: var(--pine-dimension-none);\n}\n\n.pds-chip__button {\n align-items: center;\n appearance: none;\n background: transparent;\n border: var(--pine-dimension-none);\n border-radius: var(--pine-dimension-sm);\n cursor: pointer;\n display: flex;\n padding: var(--pine-dimension-025) var(--pine-dimension-150);\n\n &:focus-visible {\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-border-width);\n }\n\n pds-icon:first-child {\n margin-inline-end: var(--pine-dimension-2xs);\n }\n\n pds-icon:last-child {\n margin-inline-end: calc(var(--pine-dimension-025) * -1);\n margin-inline-start: var(--pine-dimension-2xs);\n }\n}\n\n.pds-chip__close {\n appearance: none;\n background: transparent;\n border: 0;\n border-radius: var(--pine-border-radius-full);\n height: var(--sizing-close);\n margin-inline-end: calc(var(--pine-dimension-xs) * -1);\n margin-inline-start: var(--pine-dimension-2xs);\n padding: var(--sizing-close);\n position: relative;\n width: var(--sizing-close);\n\n pds-icon {\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n }\n\n &:focus-visible {\n outline: var(--pine-outline-focus);\n }\n}\n\n// large\n\n:host(.pds-chip--large) {\n padding-block: var(--pine-dimension-025);\n padding-inline: var(--pine-dimension-150);\n\n .pds-chip__label, .pds-chip__button {\n font-family: var(--pine-font-family-heading);\n font-size: var(--pine-font-size-heading-6);\n font-weight: var(--pine-font-weight-medium);\n letter-spacing: var(--pine-letter-spacing-heading-6);\n }\n}\n\n:host(.pds-chip--large.pds-chip--dropdown) {\n padding: var(--pine-dimension-none);\n\n .pds-chip__button {\n padding: var(--pine-dimension-025) var(--pine-dimension-150);\n }\n}\n\n:host(.pds-chip--brand) {\n background: linear-gradient(90deg, #FF3E14 0%, #6B62F2 100%);\n border: 0;\n padding: 1px;\n position: relative;\n\n .pds-chip__label {\n background: rgba(255, 255, 255, 0.9);\n border-radius: calc(var(--pine-dimension-sm) - 1px);\n color: var(--pine-color-text-neutral);\n font-weight: var(--pine-font-weight-medium);\n padding: var(--pine-dimension-025) var(--pine-dimension-150);\n position: relative;\n z-index: var(--pine-z-index-raised);\n\n pds-icon {\n margin-inline-end: var(--pine-dimension-2xs);\n }\n }\n\n .pds-chip__button, .pds-chip__close {\n color: var(--pine-color-text-neutral);\n font-weight: var(--pine-font-weight-medium);\n position: relative;\n z-index: var(--pine-z-index-raised);\n }\n\n .pds-chip__button {\n pds-icon:first-child {\n margin-inline-end: var(--pine-dimension-2xs);\n }\n }\n\n // tag close hover colors\n .pds-chip__close:hover {\n background: rgba(255, 255, 255, 0.8);\n }\n}\n","import { downSmall, remove } from '@pine-ds/icons/icons';\nimport { Component, Host, h, Prop, Event, EventEmitter } from '@stencil/core';\nimport type { ChipSentimentType, ChipVariantType } from '@utils/types';\n\n/**\n * @slot (default) - The chip's label text.\n */\n\n@Component({\n tag: 'pds-chip',\n styleUrls: ['pds-chip.tokens.scss', 'pds-chip.scss'],\n shadow: true,\n})\nexport class PdsChip {\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Determines whether a dot should be displayed on the chip.\n * Note: This prop is ignored when sentiment is 'brand'.\n * @defaultValue false\n */\n @Prop() dot = false;\n\n /**\n * The name of the icon to display before the chip text.\n */\n @Prop() icon?: string;\n\n /**\n * Determines whether the chip should be displayed in a larger size.\n * @defaultValue false\n */\n @Prop() large = false;\n\n /**\n * Defines the color scheme of the chip.\n * @defaultValue 'neutral'\n */\n @Prop() sentiment: ChipSentimentType = 'neutral';\n\n /**\n * Sets the style variant of the chip.\n * Note: This prop is ignored when sentiment is 'brand'.\n * @defaultValue 'text'\n */\n @Prop() variant: ChipVariantType = 'text';\n\n /**\n * Event emitted when the close button is clicked on a tag variant chip.\n */\n @Event() pdsTagCloseClick: EventEmitter;\n\n private handleCloseClick = () => {\n this.pdsTagCloseClick.emit();\n };\n\n private classNames() {\n const classNames = ['pds-chip'];\n\n if (this.large) {\n classNames.push('pds-chip--large');\n }\n\n // For brand sentiment, always use text variant\n const effectiveVariant = this.sentiment === 'brand' ? 'text' : this.variant;\n if (effectiveVariant) {\n classNames.push('pds-chip--' + effectiveVariant);\n }\n\n if (this.sentiment) {\n classNames.push('pds-chip--' + this.sentiment);\n }\n\n return classNames.join(' ');\n }\n\n private get effectiveVariant() {\n // For brand sentiment, force text variant behavior\n return this.sentiment === 'brand' ? 'text' : this.variant;\n }\n\n private get iconSize() {\n // Icon size based on large prop\n return this.large ? '14px' : '12px';\n }\n\n private setChipContent() {\n const isDropdown = this.effectiveVariant === 'dropdown';\n\n // For brand sentiment, ignore dot prop\n const showDot = this.sentiment === 'brand' ? false : this.dot;\n\n const chipContent = isDropdown ? (\n <button class=\"pds-chip__button\" type=\"button\">\n {this.icon && <pds-icon icon={this.icon} size={this.iconSize} aria-hidden=\"true\"></pds-icon>}\n {showDot && <i class=\"pds-chip__dot\" aria-hidden=\"true\"></i>}\n <slot></slot>\n <pds-icon icon={downSmall} size={this.iconSize} aria-hidden=\"true\"></pds-icon>\n </button>\n ) : (\n <span class=\"pds-chip__label\">\n {this.icon && <pds-icon icon={this.icon} size={this.iconSize} aria-hidden=\"true\"></pds-icon>}\n {showDot && <i class=\"pds-chip__dot\" aria-hidden=\"true\"></i>}\n <slot></slot>\n </span>\n );\n\n return chipContent;\n }\n\n render() {\n return (\n <Host class={this.classNames()} id={this.componentId}>\n {this.setChipContent()}\n {this.effectiveVariant === 'tag' && (\n <button class=\"pds-chip__close\" type=\"button\" onClick={this.handleCloseClick} aria-label=\"Remove\">\n <pds-icon icon={remove} size={this.iconSize}></pds-icon>\n </button>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"+FAAA,MAAMA,EAAmB,4/BCAzB,MAAMC,EAAa,4oP,MCaNC,EAAO,MALpB,WAAAC,CAAAC,G,2DAgBUC,KAAGC,IAAG,MAWND,KAAKE,MAAG,MAMRF,KAASG,UAAsB,UAO/BH,KAAOI,QAAoB,OAO3BJ,KAAgBK,iBAAG,KACzBL,KAAKM,iBAAiBC,MAAM,CAqE/B,CAlES,UAAAC,GACN,MAAMA,EAAa,CAAC,YAEpB,GAAIR,KAAKE,MAAO,CACdM,EAAWC,KAAK,kB,CAIlB,MAAMC,EAAmBV,KAAKG,YAAc,QAAU,OAASH,KAAKI,QACpE,GAAIM,EAAkB,CACpBF,EAAWC,KAAK,aAAeC,E,CAGjC,GAAIV,KAAKG,UAAW,CAClBK,EAAWC,KAAK,aAAeT,KAAKG,U,CAGtC,OAAOK,EAAWG,KAAK,I,CAGzB,oBAAYD,GAEV,OAAOV,KAAKG,YAAc,QAAU,OAASH,KAAKI,O,CAGpD,YAAYQ,GAEV,OAAOZ,KAAKE,MAAQ,OAAS,M,CAGvB,cAAAW,GACN,MAAMC,EAAad,KAAKU,mBAAqB,WAG7C,MAAMK,EAAUf,KAAKG,YAAc,QAAU,MAAQH,KAAKC,IAE1D,MAAMe,EAAcF,EAClBG,EAAQ,UAAAC,MAAM,mBAAmBC,KAAK,UACnCnB,KAAKoB,MAAQH,EAAU,YAAAG,KAAMpB,KAAKoB,KAAMC,KAAMrB,KAAKY,SAAQ,cAAc,SACzEG,GAAWE,EAAG,KAAAC,MAAM,gBAAe,cAAa,SACjDD,EAAa,aACbA,EAAU,YAAAG,KAAME,EAAWD,KAAMrB,KAAKY,SAAQ,cAAc,UAG9DK,EAAA,QAAMC,MAAM,mBACTlB,KAAKoB,MAAQH,EAAU,YAAAG,KAAMpB,KAAKoB,KAAMC,KAAMrB,KAAKY,SAAQ,cAAc,SACzEG,GAAWE,EAAG,KAAAC,MAAM,gBAAe,cAAa,SACjDD,EAAa,cAIjB,OAAOD,C,CAGT,MAAAO,GACE,OACEN,EAACO,EAAI,CAAAC,IAAA,2CAACP,MAAOlB,KAAKQ,aAAckB,GAAI1B,KAAK2B,aACtC3B,KAAKa,iBACLb,KAAKU,mBAAqB,OACzBO,EAAA,UAAAQ,IAAA,2CAAQP,MAAM,kBAAkBC,KAAK,SAASS,QAAS5B,KAAKK,iBAAgB,aAAa,UACvFY,EAAA,YAAAQ,IAAA,2CAAUL,KAAMS,EAAQR,KAAMrB,KAAKY,Y","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ System.register(["./p-Cxvdulqq.system.js","./p-BHavepTY.system.js","./p-BG99uNIQ.system.js"],(function(e){"use strict";var i,r,s,t,n,a,o,l,d;return{setters:[function(e){i=e.r;r=e.c;s=e.h;t=e.H;n=e.g},function(e){a=e.e;o=e.m},function(e){l=e.i;d=e.e}],execute:function(){var c=":host{--pine-select-color-background-danger:var(--pine-color-red-050)}";var p=":host{display:inline-block}:host([aria-disabled=true]) label{color:var(--pine-color-text-label-disabled)}:host([aria-readonly=true]) label{color:var(--pine-color-text-label-readonly)}label{color:var(--pine-color-text-label);font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing)}";var u=':host{--pds-select-background:var(--pine-color-background-container);--pds-select-border:var(--pine-border);--pds-select-border-radius:var(--pine-dimension-125);--pds-select-border-radius-start-end:var(--pine-dimension-125);--pds-select-border-radius-start-start:var(--pine-dimension-125);--pds-select-border-radius-end-end:var(--pine-dimension-125);--pds-select-border-radius-end-start:var(--pine-dimension-125);--pds-select-min-height:36px;--box-shadow-focus:0 0 0 1px #ffffff, 0 0 0 3px var(--pine-color-focus-ring);--box-shadow-focus-error:0 0 0 1px #ffffff, 0 0 0 3px var(--pine-color-focus-ring-danger)}:host .hidden,:host :host([hidden]){display:none}.pds-select{display:grid;-ms-flex-direction:column;flex-direction:column;grid-template-areas:"label label" "field field" "message message";grid-template-columns:1fr minmax(2rem, -webkit-min-content);grid-template-columns:1fr minmax(2rem, min-content);grid-template-rows:-webkit-min-content -webkit-min-content -webkit-min-content;grid-template-rows:min-content min-content min-content;position:relative;width:100%}.pds-select__label-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;grid-area:label;-ms-flex-pack:justify;justify-content:space-between;-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}.pds-select__action{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs);-webkit-margin-start:var(--pine-dimension-xs);margin-inline-start:var(--pine-dimension-xs)}label{-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}.pds-select__label-wrapper label{-webkit-margin-after:0;margin-block-end:0}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--pds-select-background);border:var(--pds-select-border);border-radius:var(--pds-select-border-radius);border-bottom-left-radius:var(--pds-select-border-radius-end-start, var(--pds-select-border-radius));border-bottom-right-radius:var(--pds-select-border-radius-end-end, var(--pds-select-border-radius));border-top-left-radius:var(--pds-select-border-radius-start-start, var(--pds-select-border-radius));border-top-right-radius:var(--pds-select-border-radius-start-end, var(--pds-select-border-radius));font:var(--pine-typography-body);grid-area:field;letter-spacing:var(--pine-letter-spacing);min-height:var(--pds-select-min-height);padding:calc(var(--pine-dimension-xs) - var(--pine-border-width)) var(--pine-dimension-150);-webkit-padding-end:var(--pine-dimension-450);padding-inline-end:var(--pine-dimension-450);position:relative}select:hover{border-color:var(--pine-color-border-hover);cursor:pointer}select:focus-visible{border-color:var(--pine-color-border-active);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}select:disabled{background-color:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-disabled);cursor:not-allowed}select:has(~.pds-select__message .pds-select__error-message){background-color:var(--pine-select-color-background-danger);border-color:var(--pine-color-border-danger)}select:has(~.pds-select__message .pds-select__error-message):focus-visible{outline-color:var(--pine-color-focus-ring-danger)}:host(.is-invalid) select{background-color:var(--pine-select-color-background-danger);border-color:var(--pine-color-border-danger)}:host(.is-invalid) select:focus-visible{outline-color:var(--pine-color-focus-ring-danger)}.pds-select__error-message,.pds-select__helper-message{color:var(--pine-color-text-message);font:var(--pine-typography-body-sm-medium);-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs)}.pds-select__error-message{-ms-flex-align:center;align-items:center;color:var(--pine-color-text-message-danger);display:-ms-flexbox;display:flex;gap:var(--pine-dimension-2xs)}.pds-select__message{grid-area:message}.pds-select__select-icon{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;grid-column:-1/-2;grid-row:2/3;height:var(--pds-select-min-height);pointer-events:none;position:relative;z-index:var(--pine-z-index-raised)}.visually-hidden{border:0;clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}';var f=e("pds_select",function(){function e(e){var s=this;i(this,e);this.pdsSelectChange=r(this,"pdsSelectChange");this._type="select-one";this.disabled=false;this.multiple=false;this.required=false;this.onSelectUpdate=function(e){var i=e.target;var r=Array.from(i.options).filter((function(e){return e.selected})).map((function(e){return e.value}));if(r.length===1&&!s.multiple){s.value=r[0]}else{s.value=r}s.pdsSelectChange.emit(e)};this.handleSlotChange=function(){var e=s.slotContainer.querySelector("slot");s.selectEl.innerHTML="";var i=e.assignedElements({flatten:true});i.forEach((function(e){if(["OPTION","OPTGROUP"].includes(e.tagName)){var i=e.cloneNode(true);if(i.tagName==="OPTION"&&i.value===s.value){i.selected=true}s.selectEl.appendChild(i)}}));s.updateSelectedOption()}}e.prototype.valueChanged=function(){this.updateSelectedOption();this.updateFormValue()};e.prototype.multipleChanged=function(){this.updateType()};e.prototype.updateType=function(){this._type=this.multiple?"select-multiple":"select-one"};e.prototype.connectedCallback=function(){var e=this;if(this.el.attachInternals){this.internals=this.el.attachInternals()}a(this.el,(function(){return e._type}))};e.prototype.componentWillLoad=function(){this.updateType();this.updateSelectedOption()};e.prototype.componentDidLoad=function(){this.updateFormValue()};e.prototype.updateSelectedOption=function(){var e=this;if(this.selectEl){var i=this.selectEl.options;Array.from(i).map((function(i){if(Array.isArray(e.value)){i.selected=e.value.includes(i.value)}else{i.selected=e.value===i.value}}))}};e.prototype.getHelperMessage=function(){return this.helperMessage&&s("p",{class:"pds-select__helper-message",id:o(this.componentId,"helper")},this.helperMessage)};e.prototype.getErrorMessage=function(){return this.errorMessage&&s("p",{class:"pds-select__error-message",id:o(this.componentId,"error"),"aria-live":"assertive"},s("pds-icon",{icon:l,size:"small"}),this.errorMessage)};e.prototype.renderMessages=function(){if(!this.helperMessage&&!this.errorMessage)return null;return s("div",{class:"pds-select__message"},this.getHelperMessage(),this.getErrorMessage())};e.prototype.classNames=function(){var e=[];if(this.invalid){e.push("is-invalid")}if(this.disabled){e.push("is-disabled")}return e.join(" ")};e.prototype.renderAction=function(){var e=this.el.querySelector('[slot="action"]')!==null;if(e){return s("div",{class:"pds-select__action",part:"action"},s("slot",{name:"action"}))}return null};e.prototype.updateFormValue=function(){var e=this;if(this.internals&&this.internals.setFormValue){var i=this.value;if(Array.isArray(i)){if(i.length>1){var r=new FormData;i.forEach((function(i){return r.append(e.name||"",i)}));this.internals.setFormValue(r)}else{this.internals.setFormValue(i[0]||null)}}else{this.internals.setFormValue(i||null)}if(this.selectEl&&this.internals&&this.internals.setValidity){this.internals.setValidity(this.selectEl.validity,this.selectEl.validationMessage,this.selectEl)}}};e.prototype.formResetCallback=function(){this.value="";this.updateFormValue()};e.prototype.formDisabledCallback=function(e){this.disabled=e};e.prototype.formStateRestoreCallback=function(e){if(typeof e==="string"){this.value=e}else if(e instanceof FormData&&this.name){var i=e.getAll(this.name);if(i.length>1){this.value=i.filter((function(e){return typeof e==="string"}))}else if(i.length===1&&typeof i[0]==="string"){this.value=i[0]}}};e.prototype.render=function(){var e=this;var i=this.el.querySelector('[slot="action"]')!==null;return s(t,{key:"807a2ecdb0734b8c91936ec4c46e4d4f08572ccb","aria-disabled":this.disabled?"true":null,class:this.classNames(),"has-action":i&&!this.hideLabel?"true":null},s("div",{key:"febbc7cac34855dc9574ba5b1ab1edef4acef664",class:"pds-select"},!this.hideLabel&&s("div",{key:"92d97d395ac108616a67111a8dc25ee554a33c12",class:"pds-select__label-wrapper"},s("label",{key:"42885b3d3d01af615e248655308324ba843dab42",htmlFor:this.componentId},s("span",{key:"24ffeb13dafc9a042c4099442a81d020732f0336",class:this.hideLabel?"visually-hidden":""},this.label)),i&&this.renderAction()),s("select",{key:"7be3328511bb074844715ed649e22ef6d0d9866a","aria-label":this.hideLabel?this.label:undefined,autocomplete:this.autocomplete||undefined,class:"pds-select__field",disabled:this.disabled,id:this.componentId,multiple:this.multiple,name:this.name,onChange:this.onSelectUpdate,part:"select",required:this.required,ref:function(i){return e.selectEl=i}}),s("div",{key:"0febab292f965293e53be574c492619294fcbe26","aria-hidden":"true",class:"hidden",ref:function(i){return e.slotContainer=i}},s("slot",{key:"e8022a71a6391c72388a681ee47c8720d751afb8",onSlotchange:this.handleSlotChange})),this.renderMessages(),!this.multiple&&s("pds-icon",{key:"cb196851d9afacd32c81d64922492fda1b937d74",class:"pds-select__select-icon",icon:d})))};Object.defineProperty(e,"formAssociated",{get:function(){return true},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"el",{get:function(){return n(this)},enumerable:false,configurable:true});Object.defineProperty(e,"watchers",{get:function(){return{value:["valueChanged"],multiple:["multipleChanged"]}},enumerable:false,configurable:true});return e}());f.style=c+(p+u)}}}));
2
+ //# sourceMappingURL=p-75187352.system.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["pdsSelectTokensCss","labelCss","pdsSelectCss","PdsSelect","exports","class_1","hostRef","_this","this","_type","disabled","multiple","required","onSelectUpdate","e","target","values","Array","from","options","filter","option","map","length","value","pdsSelectChange","emit","handleSlotChange","slot","slotContainer","querySelector","selectEl","innerHTML","assignedElements","flatten","forEach","item","includes","tagName","clonedItem","cloneNode","selected","appendChild","updateSelectedOption","prototype","valueChanged","updateFormValue","multipleChanged","updateType","connectedCallback","el","attachInternals","internals","exposeTypeProperty","componentWillLoad","componentDidLoad","isArray","getHelperMessage","helperMessage","h","class","id","messageId","componentId","getErrorMessage","errorMessage","icon","danger","size","renderMessages","classNames","invalid","push","join","renderAction","hasAction","part","name","setFormValue","formData_1","FormData","val","append","setValidity","validity","validationMessage","formResetCallback","formDisabledCallback","formStateRestoreCallback","state","getAll","v","render","Host","key","hideLabel","htmlFor","label","undefined","autocomplete","onChange","ref","onSlotchange","enlarge"],"sources":["src/components/pds-select/pds-select.tokens.scss?tag=pds-select&encapsulation=shadow","src/global/styles/utils/label.scss?tag=pds-select&encapsulation=shadow","src/components/pds-select/pds-select.scss?tag=pds-select&encapsulation=shadow","src/components/pds-select/pds-select.tsx"],"sourcesContent":["@use '~@kajabi-ui/styles/dist/pine/components/pds-select/pds-select.tokens'\n",":host {\n display: inline-block;\n}\n\n:host([aria-disabled=\"true\"]) label {\n color: var(--pine-color-text-label-disabled);\n}\n\n:host([aria-readonly=\"true\"]) {\n label {\n color: var(--pine-color-text-label-readonly);\n }\n}\n\nlabel {\n color: var(--pine-color-text-label);\n font: var(--pine-typography-body-medium);\n letter-spacing: var(--pine-letter-spacing);\n}\n",":host {\n --pds-select-background: var(--pine-color-background-container);\n --pds-select-border: var(--pine-border);\n --pds-select-border-radius: var(--pine-dimension-125);\n --pds-select-border-radius-start-end: var(--pine-dimension-125);\n --pds-select-border-radius-start-start: var(--pine-dimension-125);\n --pds-select-border-radius-end-end: var(--pine-dimension-125);\n --pds-select-border-radius-end-start: var(--pine-dimension-125);\n --pds-select-min-height: 36px;\n --box-shadow-focus: 0 0 0 1px #ffffff, 0 0 0 3px var(--pine-color-focus-ring);\n --box-shadow-focus-error: 0 0 0 1px #ffffff, 0 0 0 3px var(--pine-color-focus-ring-danger);\n\n .hidden,\n :host([hidden]) {\n display: none;\n }\n}\n\n.pds-select {\n display: grid;\n flex-direction: column;\n grid-template-areas:\n 'label label'\n 'field field'\n 'message message';\n grid-template-columns: 1fr minmax(2rem, min-content);\n grid-template-rows: min-content min-content min-content;\n position: relative;\n width: 100%;\n}\n\n.pds-select__label-wrapper {\n align-items: center;\n display: flex;\n grid-area: label;\n justify-content: space-between;\n margin-block-end: var(--pine-dimension-2xs);\n}\n\n.pds-select__action {\n align-items: center;\n display: flex;\n gap: var(--pine-dimension-xs);\n margin-inline-start: var(--pine-dimension-xs);\n}\n\nlabel {\n margin-block-end: var(--pine-dimension-2xs);\n}\n\n// When label is inside wrapper, remove its margin\n.pds-select__label-wrapper label {\n margin-block-end: 0;\n}\n\nselect {\n appearance: none;\n background-color: var(--pds-select-background);\n border: var(--pds-select-border);\n border-radius: var(--pds-select-border-radius);\n border-bottom-left-radius: var(--pds-select-border-radius-end-start, var(--pds-select-border-radius));\n border-bottom-right-radius: var(--pds-select-border-radius-end-end, var(--pds-select-border-radius));\n border-top-left-radius: var(--pds-select-border-radius-start-start, var(--pds-select-border-radius));\n border-top-right-radius: var(--pds-select-border-radius-start-end, var(--pds-select-border-radius));\n font: var(--pine-typography-body);\n grid-area: field;\n letter-spacing: var(--pine-letter-spacing);\n min-height: var(--pds-select-min-height);\n padding: calc(var(--pine-dimension-xs) - var(--pine-border-width)) var(--pine-dimension-150);\n padding-inline-end: var(--pine-dimension-450);\n position: relative;\n\n &:hover {\n border-color: var(--pine-color-border-hover);\n cursor: pointer;\n }\n\n &:focus-visible {\n border-color: var(--pine-color-border-active);\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-border-width);\n }\n\n &:disabled {\n background-color: var(--pine-color-background-container-disabled);\n border-color: var(--pine-color-border-disabled);\n color: var(--pine-color-text-disabled);\n cursor: not-allowed;\n }\n\n &:has(~ .pds-select__message .pds-select__error-message) {\n background-color: var(--pine-select-color-background-danger);\n border-color: var(--pine-color-border-danger);\n\n &:focus-visible {\n outline-color: var(--pine-color-focus-ring-danger);\n }\n }\n}\n\n:host(.is-invalid) {\n select {\n background-color: var(--pine-select-color-background-danger);\n border-color: var(--pine-color-border-danger);\n\n &:focus-visible {\n outline-color: var(--pine-color-focus-ring-danger);\n }\n }\n}\n\n.pds-select__error-message,\n.pds-select__helper-message {\n color: var(--pine-color-text-message);\n font: var(--pine-typography-body-sm-medium);\n margin-block-end: 0;\n margin-block-start: var(--pine-dimension-2xs);\n}\n\n.pds-select__error-message {\n align-items: center;\n color: var(--pine-color-text-message-danger);\n display: flex;\n gap: var(--pine-dimension-2xs);\n}\n\n.pds-select__message {\n grid-area: message;\n}\n\n.pds-select__select-icon {\n align-items: center;\n display: flex;\n grid-column: -1 / -2;\n grid-row: 2 / 3;\n height: var(--pds-select-min-height);\n pointer-events: none;\n position: relative;\n z-index: var(--pine-z-index-raised);\n}\n\n.visually-hidden {\n border: 0;\n clip: rect(0 0 0 0);\n clip-path: polygon(0 0, 0 0, 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}\n\n","import { Component, Element, Event, EventEmitter, Host, h, Prop, Watch } from '@stencil/core';\nimport { messageId, exposeTypeProperty } from '../../utils/form';\nimport { danger, enlarge } from '@pine-ds/icons/icons';\n\n/**\n * @slot action - Content to be displayed in the label area, typically for help icons or links\n */\n@Component({\n tag: 'pds-select',\n styleUrls: ['pds-select.tokens.scss', '../../global/styles/utils/label.scss', 'pds-select.scss'],\n shadow: true,\n formAssociated: true,\n})\nexport class PdsSelect {\n\n private selectEl!: HTMLSelectElement;\n private slotContainer!: HTMLDivElement;\n private internals?: ElementInternals;\n private _type: 'select-one' | 'select-multiple' = 'select-one';\n\n @Element() el: HTMLPdsSelectElement;\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 * Indicates whether or not the select field is disabled.\n * @defaultValue false\n */\n @Prop() disabled = false\n\n /**\n * Displays error message text describing an invalid state.\n */\n @Prop() errorMessage: string;\n\n /**\n * Visually hides the label text for instances where only the select 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 * Displays helper message text below select.\n */\n @Prop() helperMessage: string;\n\n /**\n * Determines whether or not the select is invalid.\n */\n @Prop() invalid?: boolean;\n\n /**\n * Text to be displayed as the select label.\n */\n @Prop() label?: string;\n\n /**\n * Indicates whether multiple options can be selected.\n * @defaultValue false\n */\n @Prop() multiple = false;\n\n /**\n * Specifies the name. Submitted with the form name/value pair.\n */\n @Prop() name!: string;\n\n /**\n * Indicates whether or not the select field is required.\n * @defaultValue false\n */\n @Prop() required = false;\n\n /**\n * The value(s) of the selected option(s).\n *\n */\n @Prop({ mutable: true }) value?: string | string[];\n\n\n /**\n * Emitted when a keyboard input occurs.\n */\n @Event() pdsSelectChange: EventEmitter<InputEvent>;\n\n @Watch('value')\n /**\n * Handles the change in the value of the select component.\n * This method is called whenever the value of the select component changes.\n * It updates the selected option accordingly.\n */\n valueChanged() {\n this.updateSelectedOption();\n this.updateFormValue();\n }\n\n @Watch('multiple')\n /**\n * Updates the type property when multiple changes to match native select behavior.\n */\n multipleChanged() {\n this.updateType();\n }\n\n private updateType() {\n this._type = this.multiple ? 'select-multiple' : 'select-one';\n }\n\n connectedCallback() {\n // Initialize ElementInternals for form association\n if (this.el.attachInternals) {\n this.internals = this.el.attachInternals();\n }\n\n // Expose type property on the element instance to match native form element behavior\n exposeTypeProperty(this.el, () => this._type);\n }\n\n componentWillLoad() {\n // Set initial type based on multiple prop\n this.updateType();\n this.updateSelectedOption();\n }\n\n componentDidLoad() {\n // Set initial form value\n this.updateFormValue();\n }\n\n /**\n * Updates the selected option in the select element based on the current value.\n *\n * This method iterates through all the options of the select element and sets the\n * 'selected' attribute on the option that matches the current value. If an option\n * does not match the current value, the 'selected' attribute is removed.\n *\n * @private\n * @returns {void}\n */\n private updateSelectedOption() {\n if (this.selectEl) {\n const options = this.selectEl.options;\n\n // Update the selected attribute for all options.\n Array.from(options).map((option: HTMLOptionElement) => {\n if (Array.isArray(this.value)) {\n option.selected = this.value.includes(option.value);\n } else {\n option.selected = this.value === option.value;\n }\n });\n };\n }\n\n /**\n * Emits an event on input change.\n */\n private onSelectUpdate = (e: Event) => {\n const target = e.target as HTMLSelectElement\n\n const values = Array.from(target.options)\n .filter((option) => ( option.selected))\n .map((option) => ( option.value));\n\n if (values.length === 1 && !this.multiple) {\n this.value = values[0];\n } else {\n this.value = values;\n }\n\n this.pdsSelectChange.emit(e as InputEvent);\n };\n\n /**\n * Handles the change event for the slot element.\n * This method is triggered when the slot content changes.\n * It updates the inner HTML of the select element by cloning and appending\n * the assigned <option> elements from the slot.\n */\n private handleSlotChange = () => {\n const slot = this.slotContainer.querySelector('slot') as HTMLSlotElement;\n\n this.selectEl.innerHTML = '';\n const assignedElements = slot.assignedElements({ flatten: true }) as (HTMLOptionElement | HTMLOptGroupElement)[];\n\n assignedElements.forEach((item) => {\n if ( ['OPTION', 'OPTGROUP'].includes(item.tagName)) {\n const clonedItem = item.cloneNode(true) as HTMLOptionElement | HTMLOptGroupElement;\n if (clonedItem.tagName === 'OPTION' && (clonedItem as HTMLOptionElement).value === this.value) {\n (clonedItem as HTMLOptionElement).selected = true;\n }\n this.selectEl.appendChild(clonedItem);\n }\n });\n\n this.updateSelectedOption();\n };\n\n private getHelperMessage() {\n return this.helperMessage && (\n <p class=\"pds-select__helper-message\" id={messageId(this.componentId, 'helper')}>\n {this.helperMessage}\n </p>\n );\n }\n\n private getErrorMessage() {\n return this.errorMessage && (\n <p class=\"pds-select__error-message\" id={messageId(this.componentId, 'error')} aria-live=\"assertive\">\n <pds-icon icon={danger} size=\"small\"></pds-icon>\n {this.errorMessage}\n </p>\n );\n }\n\n private renderMessages() {\n if (!this.helperMessage && !this.errorMessage) return null;\n\n return (\n <div class=\"pds-select__message\">\n {this.getHelperMessage()}\n {this.getErrorMessage()}\n </div>\n );\n }\n\n private classNames() {\n const classNames = [];\n\n if (this.invalid) { classNames.push('is-invalid'); }\n if (this.disabled) { classNames.push('is-disabled'); }\n\n return classNames.join(' ');\n }\n\n private renderAction() {\n const hasAction = this.el.querySelector('[slot=\"action\"]') !== null;\n if (hasAction) {\n return (\n <div class=\"pds-select__action\" part=\"action\">\n <slot name=\"action\"></slot>\n </div>\n );\n }\n return null;\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.value;\n\n // Handle multi-select arrays by converting to FormData or comma-separated string\n if (Array.isArray(value)) {\n if (value.length > 1) {\n // For multiple values, create FormData with multiple entries\n const formData = new FormData();\n value.forEach(val => formData.append(this.name || '', val));\n this.internals.setFormValue(formData);\n } else {\n // Single value in array, use the string value\n this.internals.setFormValue(value[0] || null);\n }\n } else {\n // Single string value\n this.internals.setFormValue(value || null);\n }\n\n // Set validity based on native select validation\n if (this.selectEl && this.internals && this.internals.setValidity) {\n this.internals.setValidity(\n this.selectEl.validity,\n this.selectEl.validationMessage,\n this.selectEl\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(s) from FormData using the select's name\n const values = state.getAll(this.name);\n if (values.length > 1) {\n // Multi-select: convert to string array\n this.value = values.filter(v => typeof v === 'string') as string[];\n } else if (values.length === 1 && typeof values[0] === 'string') {\n // Single select: use string value\n this.value = values[0];\n }\n }\n }\n\n render() {\n const hasAction = this.el.querySelector('[slot=\"action\"]') !== null;\n\n return (\n <Host aria-disabled={this.disabled ? 'true' : null} class={this.classNames()} has-action={hasAction && !this.hideLabel ? 'true' : null}>\n <div class=\"pds-select\">\n {!this.hideLabel && (\n <div class=\"pds-select__label-wrapper\">\n <label htmlFor={this.componentId}>\n <span class={this.hideLabel ? 'visually-hidden' : ''}>\n {this.label}\n </span>\n </label>\n {hasAction && this.renderAction()}\n </div>\n )}\n <select\n aria-label={this.hideLabel ? this.label : undefined}\n autocomplete={this.autocomplete || undefined}\n class=\"pds-select__field\"\n disabled={this.disabled}\n id={this.componentId}\n multiple={this.multiple}\n name={this.name}\n onChange={this.onSelectUpdate}\n part=\"select\"\n required={this.required}\n ref={(el) => (this.selectEl = el as HTMLSelectElement)}\n ></select>\n <div aria-hidden=\"true\" class=\"hidden\" ref={(el) => (this.slotContainer = el)}>\n <slot onSlotchange={this.handleSlotChange}></slot>\n </div>\n {this.renderMessages()}\n {!this.multiple && <pds-icon class=\"pds-select__select-icon\" icon={enlarge} />}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as s,h as t,H as i,g as a}from"./p-Bf1dou5H.js";const e=":host{--tabs-dimension-panel-margin-top:var(--pine-dimension-none);--tabs-dimension-panel-padding:0;display:block}.pds-tabs__tablist{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:var(--pine-dimension-md)}:host(.pds-tabs--availability) .pds-tabs__tablist{gap:var(--pine-dimension-xs)}:host(.pds-tabs--filter) .pds-tabs__tablist{gap:var(--pine-dimension-sm)}:host(.pds-tabs--pill) .pds-tabs__tablist{background-color:var(--pine-color-grey-100);border:var(--pine-border-width-thin) solid var(--pine-color-grey-200);border-radius:var(--pine-dimension-100);display:-ms-inline-flexbox;display:inline-flex;display:-ms-flexbox;display:flex;gap:0;height:var(--pine-dimension-450)}";const n=class{constructor(t){s(this,t)}tabClickHandler(s){if(this.componentId===s.detail[1]){this.activeTabIndex=s.detail[0];this.activeTabName=this.tabs[this.activeTabIndex].name}}handleKeyDown(s){const t=["ArrowLeft","ArrowRight","Home","End"];const i=s.target;const a=i.closest("pds-tab");const e=a&&a.closest("pds-tabs")===this.el;if(t.includes(s.key)&&e){s.preventDefault();this.moveActiveTab(s.key)}}moveActiveTab(s){const t=0;const i=this.tabs.length-1;let a=null;switch(s){case"ArrowLeft":a=this.activeTabIndex===t?i:this.activeTabIndex+-1;break;case"ArrowRight":a=this.activeTabIndex===i?t:this.activeTabIndex+1;break;case"Home":a=t;break;case"End":a=i;break}this.tabs[a].children[0].focus();this.activeTabName=this.tabs[a].name;this.activeTabIndex=a}findAllChildren(){const s=Array.from(this.el.querySelectorAll("pds-tab"));const t=Array.from(this.el.querySelectorAll("pds-tabpanel"));this.tabs=s.filter((s=>s.closest("pds-tabs")===this.el));this.tabPanels=t.filter((s=>s.closest("pds-tabs")===this.el))}propGeneration(s,t=0){s.parentComponentId=this.componentId.toString();s.variant=this.variant.toString();s.selected=this.activeTabName===s.name?true:false;s["index"]=t}passPropsToChildren(){this.tabs.forEach(((s,t)=>{if(this.activeTabName===s.name)this.activeTabIndex=t;this.propGeneration(s,t)}));this.tabPanels.forEach((s=>{this.propGeneration(s)}))}classNames(){let s=`pds-tabs`;if(this.variant&&this.variant!="primary"){const t=`pds-tabs--${this.variant}`;s+=" "+t}return s}componentWillLoad(){this.findAllChildren()}componentWillRender(){this.passPropsToChildren()}render(){return t(i,{key:"89db4772ef4dab7f4dba38306b0fdf1ae55c8a9b","active-tab-name":this.activeTabName,class:this.classNames(),id:this.componentId},t("div",{key:"c1596be516168b0f2548b90344ad3bffcc5cb844",class:"pds-tabs__tablist",role:"tablist","aria-label":this.tablistLabel,part:"tab-list"},t("slot",{key:"be58f90ec895da67fc84eded670183151feb261f",name:"tabs"})),t("slot",{key:"24d3bed1750d8b64a8ffc9c86f517b5e8b15f615",name:"tabpanels"}))}get el(){return a(this)}};n.style=e;export{n as pds_tabs};
2
+ //# sourceMappingURL=p-79422986.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["pdsTabsCss","PdsTabs","tabClickHandler","event","this","componentId","detail","activeTabIndex","activeTabName","tabs","name","handleKeyDown","ev","keySet","target","targetTab","closest","isOwnTab","el","includes","key","preventDefault","moveActiveTab","firstTabNumber","lastTabNumber","length","moveFocusTo","children","focus","findAllChildren","allTabs","Array","from","querySelectorAll","allTabPanels","filter","tab","tabPanels","panel","propGeneration","child","index","parentComponentId","toString","variant","selected","passPropsToChildren","forEach","classNames","className","variantClassName","componentWillLoad","componentWillRender","render","h","Host","class","id","role","tablistLabel","part"],"sources":["src/components/pds-tabs/pds-tabs.scss?tag=pds-tabs&encapsulation=shadow","src/components/pds-tabs/pds-tabs.tsx"],"sourcesContent":[":host {\n /**\n * @prop --tabs-dimension-panel-margin-top: Optional margin-top for panels\n */\n --tabs-dimension-panel-margin-top: var(--pine-dimension-none);\n /**\n * @prop --tabs-dimension-panel-padding: Optional padding for panels\n */\n --tabs-dimension-panel-padding: 0;\n\n display: block;\n}\n\n.pds-tabs__tablist {\n display: flex;\n flex-wrap: wrap;\n gap: var(--pine-dimension-md);\n}\n\n:host(.pds-tabs--availability) .pds-tabs__tablist {\n gap: var(--pine-dimension-xs);\n}\n\n:host(.pds-tabs--filter) .pds-tabs__tablist {\n gap: var(--pine-dimension-sm);\n}\n\n:host(.pds-tabs--pill) .pds-tabs__tablist {\n background-color: var(--pine-color-grey-100);\n border: var(--pine-border-width-thin) solid var(--pine-color-grey-200);\n border-radius: var(--pine-dimension-100);\n display: inline-flex;\n display: flex;\n gap: 0;\n height: var(--pine-dimension-450);\n}\n","import { Component, Element, Host, h, Prop, Listen } from '@stencil/core';\n\n /**\n * @slot tabs - Content is placed within the `div[role=\"tablist\"]` element as children\n * @slot tabpanels - Content is placed directly after the `div[role=\"tablist\"]` element as siblings\n * @part tab-list - Exposes the container element that holds all the tab buttons for styling.\n */\n@Component({\n tag: 'pds-tabs',\n styleUrls: ['pds-tabs.scss'],\n shadow: true,\n})\nexport class PdsTabs {\n private tabs;\n private tabPanels;\n\n @Element() el: HTMLPdsTabsElement;\n\n /**\n * Sets the aria-label attached to the tablist element\n */\n @Prop() tablistLabel!: string;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Sets tabs variant styles as outlined in Figma documentation\n */\n @Prop() variant!: 'primary' | 'availability' | 'filter' | 'pill';\n\n /**\n * Sets the starting active tab name and maintains the name as the component re-renders\n */\n @Prop({mutable: true}) activeTabName!: string;\n\n /**\n * Sets the starting active tab index number and maintains the index number as the component re-renders\n */\n /** @internal */\n @Prop({mutable: true}) activeTabIndex: number;\n\n @Listen('pdsTabClick', {\n target: 'body',\n })\n tabClickHandler(event: CustomEvent<any>) {\n if (this.componentId === event.detail[1]) {\n this.activeTabIndex = event.detail[0];\n this.activeTabName = this.tabs[this.activeTabIndex].name;\n }\n }\n\n @Listen('keydown', {})\n handleKeyDown(ev: KeyboardEvent) {\n const keySet = [\"ArrowLeft\", \"ArrowRight\", \"Home\", \"End\"];\n\n // Only handle keyboard navigation if the event originated from a tab button\n // that belongs to THIS tabs component\n const target = ev.target as HTMLElement;\n const targetTab = target.closest('pds-tab');\n\n // Check if the tab belongs to this tabs instance (not a nested one)\n const isOwnTab = targetTab && targetTab.closest('pds-tabs') === this.el;\n\n if (keySet.includes(ev.key) && isOwnTab) {\n ev.preventDefault();\n this.moveActiveTab(ev.key);\n }\n }\n\n private moveActiveTab(key: string) {\n const firstTabNumber = 0;\n const lastTabNumber = this.tabs.length - 1;\n\n let moveFocusTo = null;\n\n switch (key) {\n case 'ArrowLeft':\n moveFocusTo = (this.activeTabIndex === firstTabNumber) ? lastTabNumber : (this.activeTabIndex + (-1));\n break;\n case 'ArrowRight':\n moveFocusTo = (this.activeTabIndex === lastTabNumber) ? firstTabNumber : (this.activeTabIndex + 1);\n break;\n case 'Home':\n moveFocusTo = firstTabNumber;\n break;\n case 'End':\n moveFocusTo = lastTabNumber;\n break;\n }\n\n // Move focus to the button element within `pds-tab`\n this.tabs[moveFocusTo].children[0].focus();\n this.activeTabName = this.tabs[moveFocusTo].name;\n this.activeTabIndex = moveFocusTo;\n }\n\n private findAllChildren() {\n // Only select direct children tabs/tabpanels, not nested ones\n const allTabs = Array.from(this.el.querySelectorAll('pds-tab'));\n const allTabPanels = Array.from(this.el.querySelectorAll('pds-tabpanel'));\n\n // Filter to only include tabs that belong to this tabs component (not nested)\n this.tabs = allTabs.filter(tab => tab.closest('pds-tabs') === this.el);\n this.tabPanels = allTabPanels.filter(panel => panel.closest('pds-tabs') === this.el);\n }\n\n private propGeneration(child, index = 0) {\n child.parentComponentId = this.componentId.toString();\n child.variant = this.variant.toString();\n child.selected = (this.activeTabName === child.name) ? true : false;\n child['index'] = index;\n }\n\n private passPropsToChildren() {\n this.tabs.forEach((child, index) => {\n if (this.activeTabName === child.name) this.activeTabIndex = index;\n this.propGeneration(child, index);\n });\n\n this.tabPanels.forEach((child) => {\n this.propGeneration(child);\n });\n }\n\n private classNames() {\n let className = `pds-tabs`;\n if (this.variant && this.variant != 'primary') {\n const variantClassName = `pds-tabs--${this.variant}`;\n className += ' ' + variantClassName;\n }\n\n return className;\n };\n\n componentWillLoad() {\n this.findAllChildren();\n }\n\n componentWillRender() {\n this.passPropsToChildren();\n }\n\n render() {\n return (\n <Host active-tab-name={this.activeTabName} class={this.classNames()} id={this.componentId}>\n <div class=\"pds-tabs__tablist\" role=\"tablist\" aria-label={this.tablistLabel} part=\"tab-list\">\n <slot name=\"tabs\" />\n </div>\n <slot name=\"tabpanels\" />\n </Host>\n );\n }\n}\n"],"mappings":"yDAAA,MAAMA,EAAa,2rB,MCYNC,EAAO,M,yBAmClB,eAAAC,CAAgBC,GACd,GAAIC,KAAKC,cAAgBF,EAAMG,OAAO,GAAI,CACxCF,KAAKG,eAAiBJ,EAAMG,OAAO,GACnCF,KAAKI,cAAgBJ,KAAKK,KAAKL,KAAKG,gBAAgBG,I,EAKxD,aAAAC,CAAcC,GACZ,MAAMC,EAAS,CAAC,YAAa,aAAc,OAAQ,OAInD,MAAMC,EAASF,EAAGE,OAClB,MAAMC,EAAYD,EAAOE,QAAQ,WAGjC,MAAMC,EAAWF,GAAaA,EAAUC,QAAQ,cAAgBZ,KAAKc,GAErE,GAAIL,EAAOM,SAASP,EAAGQ,MAAQH,EAAU,CACvCL,EAAGS,iBACHjB,KAAKkB,cAAcV,EAAGQ,I,EAIlB,aAAAE,CAAcF,GACpB,MAAMG,EAAiB,EACvB,MAAMC,EAAgBpB,KAAKK,KAAKgB,OAAS,EAEzC,IAAIC,EAAc,KAElB,OAAQN,GACN,IAAK,YACHM,EAAetB,KAAKG,iBAAmBgB,EAAkBC,EAAiBpB,KAAKG,gBAAkB,EACjG,MACF,IAAK,aACHmB,EAAetB,KAAKG,iBAAmBiB,EAAiBD,EAAkBnB,KAAKG,eAAiB,EAChG,MACF,IAAK,OACHmB,EAAcH,EACd,MACF,IAAK,MACHG,EAAcF,EACd,MAIJpB,KAAKK,KAAKiB,GAAaC,SAAS,GAAGC,QACnCxB,KAAKI,cAAgBJ,KAAKK,KAAKiB,GAAahB,KAC5CN,KAAKG,eAAiBmB,C,CAGhB,eAAAG,GAEN,MAAMC,EAAUC,MAAMC,KAAK5B,KAAKc,GAAGe,iBAAiB,YACpD,MAAMC,EAAeH,MAAMC,KAAK5B,KAAKc,GAAGe,iBAAiB,iBAGzD7B,KAAKK,KAAOqB,EAAQK,QAAOC,GAAOA,EAAIpB,QAAQ,cAAgBZ,KAAKc,KACnEd,KAAKiC,UAAYH,EAAaC,QAAOG,GAASA,EAAMtB,QAAQ,cAAgBZ,KAAKc,I,CAG3E,cAAAqB,CAAeC,EAAOC,EAAQ,GACpCD,EAAME,kBAAoBtC,KAAKC,YAAYsC,WAC3CH,EAAMI,QAAUxC,KAAKwC,QAAQD,WAC7BH,EAAMK,SAAYzC,KAAKI,gBAAkBgC,EAAM9B,KAAQ,KAAO,MAC9D8B,EAAM,SAAWC,C,CAGX,mBAAAK,GACN1C,KAAKK,KAAKsC,SAAQ,CAACP,EAAOC,KACxB,GAAIrC,KAAKI,gBAAkBgC,EAAM9B,KAAMN,KAAKG,eAAiBkC,EAC7DrC,KAAKmC,eAAeC,EAAOC,EAAM,IAGnCrC,KAAKiC,UAAUU,SAASP,IACtBpC,KAAKmC,eAAeC,EAAM,G,CAItB,UAAAQ,GACN,IAAIC,EAAY,WAChB,GAAI7C,KAAKwC,SAAWxC,KAAKwC,SAAW,UAAW,CAC7C,MAAMM,EAAmB,aAAa9C,KAAKwC,UAC3CK,GAAa,IAAMC,C,CAGrB,OAAOD,C,CAGT,iBAAAE,GACE/C,KAAKyB,iB,CAGP,mBAAAuB,GACEhD,KAAK0C,qB,CAGP,MAAAO,GACE,OACEC,EAACC,EAAI,CAAAnC,IAAA,6DAAkBhB,KAAKI,cAAegD,MAAOpD,KAAK4C,aAAcS,GAAIrD,KAAKC,aAC5EiD,EAAA,OAAAlC,IAAA,2CAAKoC,MAAM,oBAAoBE,KAAK,UAAsB,aAAAtD,KAAKuD,aAAcC,KAAK,YAChFN,EAAA,QAAAlC,IAAA,2CAAMV,KAAK,UAEb4C,EAAA,QAAAlC,IAAA,2CAAMV,KAAK,c","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as i,h as s,H as t,g as e}from"./p-Bf1dou5H.js";import{c as o,o as h,f as n,s as d}from"./p-DbQzNDdQ.js";const a=":host{display:block}.is-hidden{display:none}.pds-dropdown-menu--panel{background-color:var(--pine-color-background-container);left:var(--pine-dimension-none);min-width:170px;padding:var(--pine-dimension-xs);position:absolute;z-index:var(--pine-z-index-overlay)}";const r=class{constructor(s){i(this,s);this.isOpen=false;this.menuItems=[];this.currentFocusIndex=-1;this.placement="bottom-start";this.handleTriggerSlotChange=i=>{this.slotEl=i.target;const s=this.slotEl.assignedElements();this.triggerEl=s[0];this.triggerEl.onclick=this.handleClick;this.triggerEl.setAttribute("aria-haspopup","menu");this.triggerEl.setAttribute("aria-expanded","false")};this.handleSlotChange=i=>{this.slotEl=i.target;const s=this.slotEl.assignedElements();const t=s.filter((i=>i.tagName.toLowerCase()!=="pds-dropdown-menu-item"&&i.tagName.toLowerCase()!=="pds-dropdown-menu-separator"));if(t.length>0){throw new Error(`pds-dropdown-menu only accepts pds-dropdown-menu-item and pds-dropdown-menu-separator elements`)}this.menuItems=s.filter((i=>i.tagName.toLowerCase()==="pds-dropdown-menu-item"))};this.toggleDropdown=()=>{this.isOpen=!this.isOpen;if(this.isOpen){this.openDropdown()}else{this.closeDropdown()}};this.openDropdown=()=>{var i;o(this.triggerEl,this.panelEl,{placement:this.placement,middleware:[h(6),n(),d({padding:5})]}).then((({x:i,y:s})=>{Object.assign(this.panelEl.style,{left:`${i}px`,top:`${s}px`})}));(i=this.host.shadowRoot)===null||i===void 0?void 0:i.querySelector("pds-box").classList.remove("is-hidden");this.isOpen=true;this.triggerEl.setAttribute("aria-expanded","true")};this.closeDropdown=()=>{var i;(i=this.host.shadowRoot)===null||i===void 0?void 0:i.querySelector("pds-box").classList.add("is-hidden");this.isOpen=false;this.triggerEl.setAttribute("aria-expanded","false");this.currentFocusIndex=-1;this.triggerEl.focus()};this.handleClick=()=>{this.toggleDropdown()}}componentDidRender(){var i;this.panelEl=(i=this.host.shadowRoot)===null||i===void 0?void 0:i.querySelector("pds-box")}getFocusedItemIndex(){const i=document.activeElement;if(!i)return-1;return this.menuItems.findIndex((s=>s===i))}focusItemByIndex(i){var s,t,e,o;if(i>=0&&i<this.menuItems.length){this.currentFocusIndex=i;const h=this.menuItems[i];const n=(s=h.shadowRoot)===null||s===void 0?void 0:s.querySelector("button");const d=(o=(e=(t=h.shadowRoot)===null||t===void 0?void 0:t.querySelector("pds-link"))===null||e===void 0?void 0:e.shadowRoot)===null||o===void 0?void 0:o.querySelector("a");if(n){return n.focus()}else if(d){return d.focus()}else{h.focus()}}}focusNextItem(){let i=(this.currentFocusIndex+1)%this.menuItems.length;let s=0;const t=this.menuItems.length;while(s<t&&this.menuItems[i].disabled){i=(i+1)%this.menuItems.length;s++}if(s<t){this.focusItemByIndex(i)}}focusPreviousItem(){let i=this.currentFocusIndex<=0?this.menuItems.length-1:this.currentFocusIndex-1;let s=0;const t=this.menuItems.length;while(s<t&&this.menuItems[i].disabled){i=i<=0?this.menuItems.length-1:i-1;s++}if(s<t){this.focusItemByIndex(i)}}handleKeyDown(i){if(!this.isOpen)return;switch(i.key){case"Escape":i.preventDefault();this.closeDropdown();break;case"ArrowDown":i.preventDefault();this.focusNextItem();break;case"ArrowUp":i.preventDefault();this.focusPreviousItem();break;case"Home":i.preventDefault();if(this.menuItems.length>0){let i=0;while(i<this.menuItems.length&&this.menuItems[i].disabled){i++}if(i<this.menuItems.length){this.focusItemByIndex(i)}}break;case"End":i.preventDefault();if(this.menuItems.length>0){let i=this.menuItems.length-1;while(i>=0&&this.menuItems[i].disabled){i--}if(i>=0){this.focusItemByIndex(i)}}break;case"Tab":if(i.shiftKey){const s=this.getFocusedItemIndex();if(s>0){i.preventDefault();this.focusPreviousItem()}}else{const s=document.activeElement;const t=s===this.triggerEl;const e=this.getFocusedItemIndex();if(t&&this.menuItems.length>0){i.preventDefault();let s=0;while(s<this.menuItems.length&&this.menuItems[s].disabled){s++}if(s<this.menuItems.length){this.focusItemByIndex(s)}}else if(e===-1&&this.menuItems.length>0){i.preventDefault();let s=0;while(s<this.menuItems.length&&this.menuItems[s].disabled){s++}if(s<this.menuItems.length){this.focusItemByIndex(s)}}else if(e!==-1){i.preventDefault();this.focusNextItem()}}break}}handleWindowClick(i){if(this.isOpen&&!this.host.contains(i.target)&&i.target!==this.triggerEl){this.closeDropdown()}}render(){return s(t,{key:"1e4384c8ab3fb3ca73221dd7a7f156846e9b8274",id:this.componentId},s("slot",{key:"0b3b532a025580b36bbe06f86bdb776d99e0c896",name:"trigger",onSlotchange:this.handleTriggerSlotChange}),s("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"},s("slot",{key:"47cad78c2e1b5150be13a399820fe64d09955e9d",onSlotchange:this.handleSlotChange})))}get host(){return e(this)}};r.style=a;export{r as pds_dropdown_menu};
2
+ //# sourceMappingURL=p-81bc089e.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["pdsDropdownMenuCss","PdsDropdownMenu","constructor","hostRef","this","isOpen","menuItems","currentFocusIndex","placement","handleTriggerSlotChange","event","slotEl","target","assignedElements","triggerEl","onclick","handleClick","setAttribute","handleSlotChange","invalidElements","filter","el","tagName","toLowerCase","length","Error","toggleDropdown","openDropdown","closeDropdown","computePosition","panelEl","middleware","offset","flip","shift","padding","then","x","y","Object","assign","style","left","top","_a","host","shadowRoot","querySelector","classList","remove","add","focus","componentDidRender","getFocusedItemIndex","activeElement","document","findIndex","item","focusItemByIndex","index","menuItem","innerButton","innerLink","_d","_c","_b","focusNextItem","nextIndex","attempts","maxAttempts","disabled","focusPreviousItem","prevIndex","handleKeyDown","key","preventDefault","firstIndex","lastIndex","shiftKey","currentIndex","isTriggerFocused","firstFocusableIndex","handleWindowClick","contains","render","h","Host","id","componentId","name","onSlotchange","display","direction","class","shadow","role"],"sources":["src/components/pds-dropdown-menu/pds-dropdown-menu.scss?tag=pds-dropdown-menu&encapsulation=shadow","src/components/pds-dropdown-menu/pds-dropdown-menu.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.is-hidden {\n display: none;\n}\n\n.pds-dropdown-menu--panel {\n background-color: var(--pine-color-background-container);\n left: var(--pine-dimension-none);\n min-width: 170px;\n padding: var(--pine-dimension-xs);\n position: absolute;\n z-index: var(--pine-z-index-overlay);\n}\n","import { Component, Element, Host, h, Prop, Listen, State } from '@stencil/core';\nimport type { BasePdsProps } from '@utils/interfaces';\nimport { PlacementType } from '@utils/types';\nimport { computePosition,\n flip,\n offset,\n shift,\n} from '@floating-ui/dom';\n\n@Component({\n tag: 'pds-dropdown-menu',\n styleUrl: 'pds-dropdown-menu.scss',\n shadow: true,\n})\nexport class PdsDropdownMenu implements BasePdsProps {\n private slotEl: HTMLSlotElement;\n private triggerEl: HTMLElement;\n private panelEl: HTMLPdsBoxElement;\n private isOpen: boolean = false;\n private menuItems: HTMLPdsDropdownMenuItemElement[] = [];\n\n @Element() host: HTMLPdsDropdownMenuElement;\n\n @State() currentFocusIndex: number = -1;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * The placement of the dropdown panel relative to the trigger.\n */\n @Prop() placement: PlacementType = 'bottom-start';\n\n componentDidRender() {\n this.panelEl = this.host.shadowRoot?.querySelector('pds-box') as HTMLPdsBoxElement;\n }\n\n private handleTriggerSlotChange = (event: Event) => {\n this.slotEl = event.target as HTMLSlotElement;\n\n // Get all elements assigned to this slot\n const assignedElements = this.slotEl.assignedElements();\n\n this.triggerEl = assignedElements[0] as HTMLElement;\n this.triggerEl.onclick = this.handleClick;\n\n // Add accessibility attributes to trigger\n this.triggerEl.setAttribute('aria-haspopup', 'menu');\n this.triggerEl.setAttribute('aria-expanded', 'false');\n }\n\n private handleSlotChange = (event: Event) => {\n this.slotEl = event.target as HTMLSlotElement;\n\n // Get all elements assigned to this slot\n const assignedElements = this.slotEl.assignedElements();\n\n // ensure assignedElements only contains pds-dropdown-menu-item or pds-dropdown-menu-separator\n // if there are other elements, throw an error\n const invalidElements = assignedElements.filter(el => el.tagName.toLowerCase() !== 'pds-dropdown-menu-item' && el.tagName.toLowerCase() !== 'pds-dropdown-menu-separator');\n if (invalidElements.length > 0) {\n throw new Error(`pds-dropdown-menu only accepts pds-dropdown-menu-item and pds-dropdown-menu-separator elements`);\n }\n\n // Store all menu items for keyboard navigation\n this.menuItems = assignedElements.filter(\n el => el.tagName.toLowerCase() === 'pds-dropdown-menu-item'\n ) as HTMLPdsDropdownMenuItemElement[];\n }\n\n // Toggle dropdown open/closed\n private toggleDropdown = () => {\n this.isOpen = !this.isOpen;\n\n if (this.isOpen) {\n this.openDropdown();\n } else {\n this.closeDropdown();\n }\n }\n\n // Open the dropdown and position it\n private openDropdown = () => {\n computePosition(this.triggerEl, this.panelEl, {\n placement: this.placement,\n middleware: [offset(6), flip(), shift({padding: 5})],\n }).then(({ x, y }) => {\n Object.assign(this.panelEl.style, {\n left: `${x}px`,\n top: `${y}px`,\n });\n });\n\n this.host.shadowRoot?.querySelector('pds-box').classList.remove('is-hidden');\n this.isOpen = true;\n\n // Update ARIA attributes\n this.triggerEl.setAttribute('aria-expanded', 'true');\n }\n\n // Close the dropdown\n private closeDropdown = () => {\n this.host.shadowRoot?.querySelector('pds-box').classList.add('is-hidden');\n this.isOpen = false;\n\n // Update ARIA attributes\n this.triggerEl.setAttribute('aria-expanded', 'false');\n\n // Reset focus index\n this.currentFocusIndex = -1;\n\n // Return focus to trigger\n this.triggerEl.focus();\n }\n\n // Handle click on the trigger element\n private handleClick = () => {\n this.toggleDropdown();\n }\n\n // Get the index of the currently focused menu item\n private getFocusedItemIndex(): number {\n const activeElement = document.activeElement as HTMLPdsDropdownMenuItemElement | null;\n if (!activeElement) return -1;\n return this.menuItems.findIndex(item => item === activeElement);\n }\n\n // Focus a specific menu item by index\n private focusItemByIndex(index: number): void {\n if (index >= 0 && index < this.menuItems.length) {\n this.currentFocusIndex = index;\n\n // Focus the inner button/link instead of the host element\n const menuItem = this.menuItems[index];\n const innerButton = menuItem.shadowRoot?.querySelector('button');\n const innerLink = menuItem.shadowRoot?.querySelector('pds-link')?.shadowRoot?.querySelector('a');\n\n if (innerButton) {\n return innerButton.focus();\n } else if (innerLink) {\n return innerLink.focus();\n } else {\n // Fallback to focusing the host if we can't find the inner element\n menuItem.focus();\n }\n }\n }\n\n // Focus the next menu item\n private focusNextItem(): void {\n let nextIndex = (this.currentFocusIndex + 1) % this.menuItems.length;\n\n // Skip disabled items\n let attempts = 0;\n const maxAttempts = this.menuItems.length;\n\n while (attempts < maxAttempts && this.menuItems[nextIndex].disabled) {\n nextIndex = (nextIndex + 1) % this.menuItems.length;\n attempts++;\n }\n\n // Only focus if we found a non-disabled item\n if (attempts < maxAttempts) {\n this.focusItemByIndex(nextIndex);\n }\n }\n\n // Focus the previous menu item\n private focusPreviousItem(): void {\n let prevIndex = this.currentFocusIndex <= 0\n ? this.menuItems.length - 1\n : this.currentFocusIndex - 1;\n\n // Skip disabled items\n let attempts = 0;\n const maxAttempts = this.menuItems.length;\n\n while (attempts < maxAttempts && this.menuItems[prevIndex].disabled) {\n prevIndex = prevIndex <= 0 ? this.menuItems.length - 1 : prevIndex - 1;\n attempts++;\n }\n\n // Only focus if we found a non-disabled item\n if (attempts < maxAttempts) {\n this.focusItemByIndex(prevIndex);\n }\n }\n\n // Handle keyboard events for the dropdown\n @Listen('keydown', { target: 'window' })\n handleKeyDown(event: KeyboardEvent) {\n if (!this.isOpen) return;\n\n switch (event.key) {\n case 'Escape':\n event.preventDefault();\n this.closeDropdown();\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n this.focusNextItem();\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n this.focusPreviousItem();\n break;\n\n case 'Home':\n event.preventDefault();\n if (this.menuItems.length > 0) {\n // Find first non-disabled item\n let firstIndex = 0;\n while (firstIndex < this.menuItems.length && this.menuItems[firstIndex].disabled) {\n firstIndex++;\n }\n if (firstIndex < this.menuItems.length) {\n this.focusItemByIndex(firstIndex);\n }\n }\n break;\n\n case 'End':\n event.preventDefault();\n if (this.menuItems.length > 0) {\n // Find last non-disabled item\n let lastIndex = this.menuItems.length - 1;\n while (lastIndex >= 0 && this.menuItems[lastIndex].disabled) {\n lastIndex--;\n }\n if (lastIndex >= 0) {\n this.focusItemByIndex(lastIndex);\n }\n }\n break;\n\n case 'Tab':\n if (event.shiftKey) {\n // Let Shift+Tab navigate naturally from first item to trigger\n // For all other items, move to previous item\n const currentIndex = this.getFocusedItemIndex();\n\n if (currentIndex > 0) {\n // If not on first item, prevent default and go to previous item\n event.preventDefault();\n this.focusPreviousItem(); // Use our method that skips disabled items\n }\n // If on first item or no item, let natural tab order move back to trigger\n } else {\n // Forward Tab navigation\n const activeElement = document.activeElement;\n const isTriggerFocused = activeElement === this.triggerEl;\n const currentIndex = this.getFocusedItemIndex();\n\n if (isTriggerFocused && this.menuItems.length > 0) {\n // If trigger is focused, move to first non-disabled menu item\n event.preventDefault();\n\n // Find the first non-disabled item\n let firstFocusableIndex = 0;\n while (firstFocusableIndex < this.menuItems.length && this.menuItems[firstFocusableIndex].disabled) {\n firstFocusableIndex++;\n }\n\n if (firstFocusableIndex < this.menuItems.length) {\n this.focusItemByIndex(firstFocusableIndex);\n }\n } else if (currentIndex === -1 && this.menuItems.length > 0) {\n // If no menu item is focused, focus the first non-disabled one\n event.preventDefault();\n\n // Find the first non-disabled item\n let firstFocusableIndex = 0;\n while (firstFocusableIndex < this.menuItems.length && this.menuItems[firstFocusableIndex].disabled) {\n firstFocusableIndex++;\n }\n\n if (firstFocusableIndex < this.menuItems.length) {\n this.focusItemByIndex(firstFocusableIndex);\n }\n } else if (currentIndex !== -1) {\n // Use our method that skips disabled items\n event.preventDefault();\n this.focusNextItem();\n }\n }\n break;\n }\n }\n\n // Handle clicks outside the dropdown to close it\n @Listen('click', { target: 'window' })\n handleWindowClick(event: MouseEvent) {\n if (this.isOpen && !this.host.contains(event.target as Node) && event.target !== this.triggerEl) {\n this.closeDropdown();\n }\n }\n\n\n render() {\n return (\n <Host id={this.componentId}>\n <slot\n name=\"trigger\"\n onSlotchange={this.handleTriggerSlotChange}\n ></slot>\n <pds-box\n border-radius=\"sm\"\n display=\"flex\"\n direction=\"column\"\n class=\"pds-dropdown-menu--panel is-hidden\"\n shadow=\"100\"\n role=\"menu\"\n aria-orientation=\"vertical\"\n >\n <slot onSlotchange={this.handleSlotChange}></slot>\n </pds-box>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as e,c as i,h as r,H as o,g as t}from"./p-Bf1dou5H.js";import{e as a,m as n,a as s}from"./p-DwjNklzi.js";import{i as d}from"./p-D4zJBIgl.js";import{i as c}from"./p-C0M1gTKv.js";const l=":host{display:inline-block}:host([aria-disabled=true]) label{color:var(--pine-color-text-label-disabled)}:host([aria-readonly=true]) label{color:var(--pine-color-text-label-readonly)}label{color:var(--pine-color-text-label);font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing)}";const p=':host{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}:host(.is-invalid) input{border-color:var(--pine-color-border-danger)}:host(.is-invalid) input:checked{background:var(--pine-color-danger)}:host(.is-invalid) input:checked:hover{background:var(--pine-color-danger-hover);border-color:var(--pine-color-border-danger-hover)}:host(.is-invalid) input:focus-visible{outline-color:var(--pine-color-focus-ring-danger)}:host(.is-invalid) label,:host(.is-invalid) .pds-checkbox__message--error{color:var(--pine-color-text-message-danger)}:host(.is-indeterminate) input{background:var(--pine-color-accent);border-color:var(--pine-color-accent)}:host(.is-indeterminate) input:hover{background:var(--pine-color-accent);border-color:var(--pine-color-accent-hover)}:host(.is-indeterminate) input::after{border:1px solid var(--pine-color-secondary);-webkit-border-after:var(--pine-border-width-none);border-block-end:var(--pine-border-width-none);-webkit-border-before:var(--pine-border-width-none);border-block-start:var(--pine-border-width-none);-webkit-border-start:var(--pine-border-width-none);border-inline-start:var(--pine-border-width-none);content:"";display:block;height:7px;left:50%;position:absolute;top:50%;-webkit-transform:rotate(90deg) translate3d(-103%, 32%, 0);transform:rotate(90deg) translate3d(-103%, 32%, 0);width:4px}input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--pine-color-background-container);border:var(--pine-border);border-radius:var(--pine-dimension-2xs);-ms-flex:none;flex:none;height:var(--pine-dimension-sm);margin:0;-webkit-margin-before:var(--pine-dimension-025);margin-block-start:var(--pine-dimension-025);position:relative;width:var(--pine-dimension-sm)}input:hover{background:var(--pine-color-background-container-hover);border:var(--pine-border-hover)}input:checked{background:var(--pine-color-accent);border-color:var(--pine-color-accent)}input:checked:hover{background:var(--pine-color-accent-hover);border-color:var(--pine-color-accent-hover)}input:checked::after{border:1px solid var(--pine-color-secondary);-webkit-border-before:var(--pine-border-width-none);border-block-start:var(--pine-border-width-none);-webkit-border-start:var(--pine-border-width-none);border-inline-start:var(--pine-border-width-none);content:"";display:block;height:7px;left:50%;position:absolute;top:50%;-webkit-transform:rotate(43deg) translate3d(-110%, -30%, 0);transform:rotate(43deg) translate3d(-110%, -30%, 0);width:4px}input:disabled{background:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);cursor:not-allowed}input:disabled:checked{background:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled)}input:disabled:checked::after{border-color:var(--pine-color-grey-300)}input:disabled+label{cursor:not-allowed}input:disabled~.pds-checkbox__message{color:var(--pine-color-text-disabled)}input:focus-visible{outline:var(--pine-outline-focus)}label{display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs)}.visually-hidden{border:0;clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pds-checkbox__message{color:var(--pine-color-text-message);font:var(--pine-typography-body-sm-medium);-webkit-margin-before:6px;margin-block-start:6px;-webkit-margin-start:var(--pine-dimension-md);margin-inline-start:var(--pine-dimension-md);width:100%}.pds-checkbox__message--error{display:-ms-flexbox;display:flex;font-size:var(--pine-font-size-085);gap:var(--pine-dimension-050)}.pds-checkbox__message--error pds-icon{-webkit-margin-before:var(--pine-dimension-025);margin-block-start:var(--pine-dimension-025)}';const h=class{constructor(r){e(this,r);this.pdsCheckboxChange=i(this,"pdsCheckboxChange");this.pdsCheckboxInput=i(this,"pdsCheckboxInput");this.inheritedAttributes={};this._type="checkbox";this.checked=false;this.handleCheckboxChange=e=>{if(this.disabled){return}const i=e.target;this.checked=i.checked;this.updateFormValue();this.pdsCheckboxChange.emit({checked:i.checked,value:this.value})};this.handleInput=()=>{this.pdsCheckboxInput.emit({checked:this.checked,value:this.value})}}updateIndeterminate(){this.indeterminate=undefined}classNames(){const e=[];if(this.invalid){e.push("is-invalid")}if(this.indeterminate){e.push("is-indeterminate")}if(this.disabled){e.push("is-disabled")}return e.join(" ")}connectedCallback(){if(this.el.attachInternals){this.internals=this.el.attachInternals()}a(this.el,(()=>this._type))}componentDidLoad(){this.updateFormValue()}checkedChanged(){this.updateFormValue()}updateFormValue(){var e;if(typeof jest!=="undefined"||typeof process!=="undefined"&&((e=process.env)===null||e===void 0?void 0:e.NODE_ENV)==="test"){return}if(this.internals&&this.internals.setFormValue){const e=this.checked?this.value||"on":null;this.internals.setFormValue(e)}if(this.internals&&this.internals.setValidity){this.internals.setValidity({})}}formStateRestoreCallback(e){if(e instanceof FormData){const i=this.value||"on";this.checked=e.get(this.name)===i}else if(typeof e==="string"){this.checked=e===(this.value||"on")}}componentWillLoad(){this.inheritedAttributes=Object.assign({},c(this.el))}render(){return r(o,{key:"03464c7d6a3dc475e266b5f913928d17b2a338d6",class:this.classNames()},r("label",{key:"194a98ecdaa1c2627c4a94a4aff9c3c83ddd3a0b",htmlFor:this.componentId},r("input",Object.assign({key:"8878b64c34ad11dca1e90b72afb0cd30017d3bc2",type:"checkbox","aria-describedby":s(this.componentId,this.invalid,this.errorMessage||this.helperMessage),"aria-invalid":this.invalid?"true":undefined,id:this.componentId,indeterminate:this.indeterminate,name:this.name,value:this.value,checked:this.checked,required:this.required,disabled:this.disabled,onChange:this.handleCheckboxChange,onInput:this.handleInput},this.inheritedAttributes)),r("span",{key:"f3db09d434084bf96b5f1b0da8c095d6517d91b5",class:this.hideLabel?"visually-hidden":""},this.label)),this.helperMessage&&r("div",{key:"c781a27975cdd7c4361fa9d29a06f915633f52ba",class:"pds-checkbox__message",id:n(this.componentId,"helper")},this.helperMessage),this.errorMessage&&r("div",{key:"b586e97855401f21dcbd5822e4bad099b6a7dc2a",class:`pds-checkbox__message pds-checkbox__message--error`,id:n(this.componentId,"error"),"aria-live":"assertive"},r("pds-icon",{key:"98c8db2a196b84683aa777fd1a9a9291e30acf78",icon:d,size:"small"}),this.errorMessage))}static get formAssociated(){return true}get el(){return t(this)}static get watchers(){return{checked:["updateIndeterminate","checkedChanged"]}}};h.style=l+p;export{h as pds_checkbox};
2
+ //# sourceMappingURL=p-85c41629.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["labelCss","pdsCheckboxCss","PdsCheckbox","constructor","hostRef","this","inheritedAttributes","_type","checked","handleCheckboxChange","e","disabled","target","updateFormValue","pdsCheckboxChange","emit","value","handleInput","pdsCheckboxInput","updateIndeterminate","indeterminate","undefined","classNames","invalid","push","join","connectedCallback","el","attachInternals","internals","exposeTypeProperty","componentDidLoad","checkedChanged","jest","process","_a","env","NODE_ENV","setFormValue","formValue","setValidity","formStateRestoreCallback","state","FormData","get","name","componentWillLoad","Object","assign","inheritAriaAttributes","render","h","Host","key","class","htmlFor","componentId","type","assignDescription","errorMessage","helperMessage","id","required","onChange","onInput","hideLabel","label","messageId","icon","danger","size"],"sources":["src/global/styles/utils/label.scss?tag=pds-checkbox&encapsulation=shadow","src/components/pds-checkbox/pds-checkbox.scss?tag=pds-checkbox&encapsulation=shadow","src/components/pds-checkbox/pds-checkbox.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n:host([aria-disabled=\"true\"]) label {\n color: var(--pine-color-text-label-disabled);\n}\n\n:host([aria-readonly=\"true\"]) {\n label {\n color: var(--pine-color-text-label-readonly);\n }\n}\n\nlabel {\n color: var(--pine-color-text-label);\n font: var(--pine-typography-body-medium);\n letter-spacing: var(--pine-letter-spacing);\n}\n",":host {\n align-items: center;\n display: flex;\n flex-flow: row wrap;\n}\n\n:host(.is-invalid) {\n input {\n border-color: var(--pine-color-border-danger);\n\n &:checked {\n background: var( --pine-color-danger);\n\n &:hover {\n background: var(--pine-color-danger-hover);\n border-color: var(--pine-color-border-danger-hover);\n }\n }\n\n &:focus-visible {\n outline-color: var(--pine-color-focus-ring-danger);\n }\n }\n\n label,\n .pds-checkbox__message--error {\n color: var(--pine-color-text-message-danger);\n }\n}\n\n:host(.is-indeterminate) {\n input {\n background: var(--pine-color-accent);\n border-color: var(--pine-color-accent);\n\n &:hover {\n background: var(--pine-color-accent);\n border-color: var(--pine-color-accent-hover);\n }\n\n &::after {\n border: 1px solid var(--pine-color-secondary);\n border-block-end: var(--pine-border-width-none);\n border-block-start: var(--pine-border-width-none);\n border-inline-start: var(--pine-border-width-none);\n content: \"\";\n display: block;\n height: 7px;\n left: 50%;\n position: absolute;\n top: 50%;\n transform: rotate(90deg) translate3d(-103%, 32%, 0);\n width: 4px;\n }\n }\n}\n\ninput {\n appearance: none;\n background: var(--pine-color-background-container);\n border: var(--pine-border);\n border-radius: var(--pine-dimension-2xs);\n flex: none;\n height: var(--pine-dimension-sm);\n margin: 0;\n margin-block-start: var(--pine-dimension-025);\n position: relative;\n width: var(--pine-dimension-sm);\n\n &:hover {\n background: var(--pine-color-background-container-hover);\n border: var(--pine-border-hover);\n }\n\n &:checked {\n background: var(--pine-color-accent);\n border-color: var(--pine-color-accent);\n\n &:hover {\n background: var(--pine-color-accent-hover);\n border-color: var(--pine-color-accent-hover);\n }\n\n &::after {\n border: 1px solid var(--pine-color-secondary);\n border-block-start: var(--pine-border-width-none);\n border-inline-start: var(--pine-border-width-none);\n content: \"\";\n display: block;\n height: 7px;\n left: 50%;\n position: absolute;\n top: 50%;\n transform: rotate(43deg) translate3d(-110%, -30%, 0);\n width: 4px;\n }\n }\n\n &:disabled {\n background: var(--pine-color-background-container-disabled);\n border-color: var(--pine-color-border-disabled);\n cursor: not-allowed;\n\n &:checked {\n background: var(--pine-color-background-container-disabled);\n border-color: var(--pine-color-border-disabled);\n\n &::after {\n border-color: var(--pine-color-grey-300);\n }\n }\n\n + label {\n cursor: not-allowed;\n }\n\n ~ .pds-checkbox__message {\n color: var(--pine-color-text-disabled);\n }\n }\n\n &:focus-visible {\n outline: var(--pine-outline-focus);\n }\n}\n\nlabel {\n display: flex;\n gap: var(--pine-dimension-xs);\n}\n\n.visually-hidden {\n border: 0;\n clip: rect(0 0 0 0);\n clip-path: polygon(0 0, 0 0, 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}\n\n.pds-checkbox__message {\n color: var(--pine-color-text-message);\n font: var(--pine-typography-body-sm-medium);\n margin-block-start: 6px;\n margin-inline-start: var(--pine-dimension-md);\n width: 100%;\n}\n\n.pds-checkbox__message--error {\n display: flex;\n font-size: var(--pine-font-size-085);\n gap: var(--pine-dimension-050);\n\n pds-icon {\n margin-block-start: var(--pine-dimension-025);\n }\n}\n","import { Component, Element, h, Prop, Host, Event, EventEmitter, Watch } from '@stencil/core';\nimport { assignDescription, messageId, exposeTypeProperty } from '../../utils/form';\nimport { CheckboxChangeEventDetail } from './checkbox-interface';\nimport { danger } from '@pine-ds/icons/icons';\n\nimport { inheritAriaAttributes } from '@utils/attributes';\nimport type { Attributes } from '@utils/attributes';\n\n@Component({\n tag: 'pds-checkbox',\n styleUrls: ['../../global/styles/utils/label.scss', 'pds-checkbox.scss'],\n shadow: true,\n formAssociated: true,\n})\nexport class PdsCheckbox {\n private inheritedAttributes: Attributes = {};\n private internals?: ElementInternals;\n private readonly _type = 'checkbox' as const;\n\n @Element() el: HTMLPdsCheckboxElement;\n\n /**\n * It determines whether or not the checkbox is checked.\n */\n @Prop({ mutable: true }) checked?: boolean = false;\n\n /**\n * A unique identifier used for the underlying component `id` attribute and the label `for` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * It determines whether or not the checkbox is disabled.\n */\n @Prop() disabled: boolean;\n\n /**\n * Displays message text describing an invalid state.\n */\n @Prop() errorMessage: string;\n\n /**\n * String used for helper message below checkbox.\n */\n @Prop() helperMessage: string;\n\n /**\n * If `true`, the checkbox will visually appear as indeterminate.\n * Only JavaScript can set the objects `indeterminate` property. See [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#indeterminate_state_checkboxes).\n */\n @Prop({ mutable: true }) indeterminate: boolean;\n\n /**\n * It determines whether or not the checkbox is invalid.\n */\n @Prop() invalid: boolean;\n\n /**\n * String used for label text next to checkbox.\n */\n @Prop() label: string;\n\n /**\n * Visually hides the label text for instances where only the checkbox should be displayed. Label remains accessible to assistive technology such as screen readers.\n */\n @Prop() hideLabel: boolean;\n\n /**\n * String used for checkbox `name` attribute.\n */\n @Prop() name: string;\n\n /**\n * It determines whether or not the checkbox is required.\n */\n @Prop() required: boolean;\n\n /**\n * The value of the checkbox that is submitted with a form.\n */\n @Prop() value: string;\n\n\n /**\n * Event emitted that contains the `value` and `checked`.\n */\n @Event() pdsCheckboxChange: EventEmitter<CheckboxChangeEventDetail>;\n\n @Event() pdsCheckboxInput: EventEmitter<CheckboxChangeEventDetail>;\n\n @Watch('checked')\n updateIndeterminate() {\n this.indeterminate = undefined\n }\n\n private handleCheckboxChange = (e: Event) => {\n if (this.disabled) {\n return;\n }\n\n const target = e.target as HTMLInputElement;\n this.checked = target.checked;\n\n this.updateFormValue();\n\n this.pdsCheckboxChange.emit({\n checked: target.checked,\n value: this.value\n });\n }\n\n private handleInput = () => {\n this.pdsCheckboxInput.emit({\n checked: this.checked,\n value: this.value\n });\n }\n\n private classNames() {\n const classNames = [];\n\n if (this.invalid) { classNames.push('is-invalid'); }\n if (this.indeterminate) { classNames.push('is-indeterminate'); }\n if (this.disabled) { classNames.push('is-disabled'); }\n\n return classNames.join(' ');\n }\n\n connectedCallback() {\n if (this.el.attachInternals) {\n this.internals = this.el.attachInternals();\n }\n\n // Expose type property on the element instance to match native form element behavior\n exposeTypeProperty(this.el, () => this._type);\n }\n\n componentDidLoad() {\n this.updateFormValue();\n }\n\n @Watch('checked')\n checkedChanged() {\n this.updateFormValue();\n }\n\n private updateFormValue() {\n if (typeof jest !== 'undefined' || typeof process !== 'undefined' && process.env?.NODE_ENV === 'test') {\n return;\n }\n\n if (this.internals && this.internals.setFormValue) {\n // For checkboxes, only send the value when checked, otherwise send null\n const formValue = this.checked ? (this.value || 'on') : null;\n this.internals.setFormValue(formValue);\n }\n\n if (this.internals && this.internals.setValidity) {\n this.internals.setValidity({});\n }\n }\n\n formStateRestoreCallback(state: string | FormData | null) {\n if (state instanceof FormData) {\n // For checkboxes, restore if the value exists in FormData\n const value = this.value || 'on';\n this.checked = state.get(this.name as string) === value;\n } else if (typeof state === 'string') {\n // Restore from string state\n this.checked = state === (this.value || 'on');\n }\n }\n\n componentWillLoad() {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el)\n }\n }\n\n render() {\n return (\n <Host class={this.classNames()}>\n <label htmlFor={this.componentId}>\n <input\n type=\"checkbox\"\n aria-describedby={assignDescription(this.componentId, this.invalid, this.errorMessage || this.helperMessage)}\n aria-invalid={this.invalid ? \"true\" : undefined}\n id={this.componentId}\n indeterminate={this.indeterminate}\n name={this.name}\n value={this.value}\n checked={this.checked}\n required={this.required}\n disabled={this.disabled}\n onChange={this.handleCheckboxChange}\n onInput={this.handleInput}\n {...this.inheritedAttributes}\n />\n <span class={this.hideLabel ? 'visually-hidden' : ''}>\n {this.label}\n </span>\n </label>\n {this.helperMessage &&\n <div\n class={'pds-checkbox__message'}\n id={messageId(this.componentId, 'helper')}\n >\n {this.helperMessage}\n </div>\n }\n {this.errorMessage &&\n <div\n class={`pds-checkbox__message pds-checkbox__message--error`}\n id={messageId(this.componentId, 'error')}\n aria-live=\"assertive\"\n >\n <pds-icon icon={danger} size=\"small\" />\n {this.errorMessage}\n </div>\n }\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as t,c as e,h as o,H as s}from"./p-Bf1dou5H.js";import{a as n}from"./p-D4zJBIgl.js";const d=":host(.pds-copytext){--copytext-color-background-hover:var(--pine-color-grey-200)}:host(.pds-copytext) pds-button{-ms-flex-align:center;align-items:center;background:var(--pine-color-secondary);border-radius:var(--pine-border-radius-full);border-width:var(--pine-dimension-none);display:-ms-inline-flexbox;display:inline-flex;font-family:var(--pine-font-family-heading);font-size:var(--pine-font-size-body-md);font-weight:var(--pine-font-weight-body-medium);letter-spacing:var(--pine-letter-spacing);line-height:var(--pine-line-height-body);max-width:100%}:host(.pds-copytext) pds-button::part(button){padding-block:var(--pine-dimension-2xs);padding-inline:var(--pine-dimension-xs)}:host(.pds-copytext) pds-button::part(button):hover{background-color:var(--copytext-color-background-hover);color:var(--pine-color-text-secondary-hover)}:host(.pds-copytext) pds-button span{font-weight:var(--pine-font-weight-medium);-webkit-margin-end:var(--pine-dimension-xs);margin-inline-end:var(--pine-dimension-xs);white-space:nowrap}:host(.pds-copytext) pds-button :nth-child(2){-ms-flex-negative:0;flex-shrink:0}:host(.pds-copytext):host(.pds-copytext--bordered){border-width:var(--pine-dimension-none);padding:var(--pine-dimension-none)}:host(.pds-copytext):host(.pds-copytext--bordered) pds-button{padding:var(--pine-dimension-none)}:host(.pds-copytext):host(.pds-copytext--bordered) pds-button::part(button){padding:var(--pine-dimension-none)}:host(.pds-copytext):host(.pds-copytext--bordered) pds-button::part(button):hover{background-color:transparent}:host(.pds-copytext):host(.pds-copytext--bordered) span{border:var(--pine-border);border-radius:var(--pine-border-radius-full);-webkit-margin-end:var(--pine-dimension-sm);margin-inline-end:var(--pine-dimension-sm);padding-block:var(--pine-dimension-xs);padding-inline:var(--pine-dimension-sm)}:host(.pds-copytext):host(.pds-copytext--bordered) :hover span{border:var(--pine-border-hover)}:host(.pds-copytext):host(.pds-copytext--full-width) pds-button,:host(.pds-copytext):host(.pds-copytext--truncated) pds-button{display:-ms-inline-flexbox;display:inline-flex;min-width:auto;width:100%}:host(.pds-copytext):host(.pds-copytext--full-width) pds-button::part(button-content),:host(.pds-copytext):host(.pds-copytext--full-width) pds-button::part(button-text),:host(.pds-copytext):host(.pds-copytext--truncated) pds-button::part(button-content),:host(.pds-copytext):host(.pds-copytext--truncated) pds-button::part(button-text){-ms-flex-negative:1;flex-shrink:1;width:100%}:host(.pds-copytext):host(.pds-copytext--full-width) pds-button span,:host(.pds-copytext):host(.pds-copytext--truncated) pds-button span{text-align:start;width:100%}:host(.pds-copytext):host(.pds-copytext--full-width) pds-button{-ms-flex-pack:justify;justify-content:space-between}:host(.pds-copytext):host(.pds-copytext--truncated) pds-button span{overflow:hidden;text-overflow:ellipsis}";const p=class{constructor(o){t(this,o);this.pdsCopyTextClick=e(this,"pdsCopyTextClick");this.border=true;this.fullWidth=false;this.truncate=false;this.copyToClipboard=async t=>{try{if(typeof navigator.clipboard!=="undefined"){await navigator.clipboard.writeText(t);this.pdsCopyTextClick.emit("Copied to clipboard")}}catch(t){this.pdsCopyTextClick.emit(`Error writing text to clipboard: ${t}`)}};this.handleClick=()=>{this.copyToClipboard(this.value)}}classNames(){const t=["pds-copytext"];if(this.border){t.push("pds-copytext--bordered")}if(this.fullWidth){t.push("pds-copytext--full-width")}if(this.truncate){t.push("pds-copytext--truncated")}return t.join(" ")}render(){return o(s,{key:"4e2807a9779817005eb3278473be655d7115923b",class:this.classNames(),id:this.componentId},o("pds-button",{key:"5a1ca42426b7c11e3bbc7667d42ba3aba8d9cc7d",type:"button",variant:"unstyled",onClick:this.handleClick},o("span",{key:"5d6be503f6a31e07af483134b4c3a5f8699f43c3"},this.value),o("pds-icon",{key:"6e1ad7232addedf1d34ed6a3fa1c8ddc11000ef3",icon:n,size:"16px"})))}};p.style=d;export{p as pds_copytext};
2
+ //# sourceMappingURL=p-86263a62.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["pdsCopytextCss","PdsCopytext","constructor","hostRef","this","border","fullWidth","truncate","copyToClipboard","async","value","navigator","clipboard","writeText","pdsCopyTextClick","emit","err","handleClick","classNames","push","join","render","h","Host","key","class","id","componentId","type","variant","onClick","icon","copyIcon","size"],"sources":["src/components/pds-copytext/pds-copytext.scss?tag=pds-copytext&encapsulation=shadow","src/components/pds-copytext/pds-copytext.tsx"],"sourcesContent":[":host(.pds-copytext) {\n // Update custom prop usage in Button before changing\n --copytext-color-background-hover: var(--pine-color-grey-200);\n\n\n pds-button {\n align-items: center;\n background: var(--pine-color-secondary);\n border-radius: var(--pine-border-radius-full);\n border-width: var(--pine-dimension-none);\n display: inline-flex;\n font-family: var(--pine-font-family-heading);\n font-size: var(--pine-font-size-body-md);\n font-weight: var(--pine-font-weight-body-medium);\n letter-spacing: var(--pine-letter-spacing);\n line-height: var(--pine-line-height-body);\n max-width: 100%;\n\n &::part(button) {\n padding-block: var(--pine-dimension-2xs);\n padding-inline: var(--pine-dimension-xs);\n }\n\n &::part(button):hover {\n // Update custom prop usage in Button before changing\n background-color: var(--copytext-color-background-hover);\n color: var(--pine-color-text-secondary-hover);\n }\n\n span {\n font-weight: var(--pine-font-weight-medium);\n margin-inline-end: var(--pine-dimension-xs);\n white-space: nowrap;\n }\n\n :nth-child(2) {\n flex-shrink: 0;\n }\n }\n\n // bordered\n\n &:host(.pds-copytext--bordered) {\n border-width: var(--pine-dimension-none);\n padding: var(--pine-dimension-none);\n\n pds-button {\n padding: var(--pine-dimension-none);\n\n &::part(button) {\n padding: var(--pine-dimension-none);\n }\n\n &::part(button):hover {\n background-color: transparent;\n }\n }\n\n span {\n border: var(--pine-border);\n border-radius: var(--pine-border-radius-full);\n margin-inline-end: var(--pine-dimension-sm);\n padding-block: var(--pine-dimension-xs);\n padding-inline: var(--pine-dimension-sm);\n }\n\n :hover {\n span {\n border: var(--pine-border-hover);\n }\n }\n }\n\n // full width and truncated\n &:host(.pds-copytext--full-width),\n &:host(.pds-copytext--truncated) {\n pds-button {\n display: inline-flex;\n min-width: auto;\n width: 100%;\n\n &::part(button-content),\n &::part(button-text) {\n flex-shrink: 1;\n width: 100%;\n }\n\n span {\n text-align: start;\n width: 100%;\n }\n }\n }\n\n // full width\n &:host(.pds-copytext--full-width) {\n pds-button {\n justify-content: space-between;\n }\n }\n\n // truncated\n &:host(.pds-copytext--truncated) {\n pds-button span {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n}\n","import { Component, Event, EventEmitter, Host, h, Prop } from '@stencil/core';\n\nimport { copy as copyIcon } from '@pine-ds/icons/icons';\n\n@Component({\n tag: 'pds-copytext',\n styleUrls: ['pds-copytext.scss'],\n shadow: true,\n})\nexport class PdsCopytext {\n /**\n * Determines whether `copytext` should have a visible border.\n * @defaultValue true\n */\n @Prop({ reflect: true }) border = true;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Determines whether `copytext` should expand to the full width of its container.\n * @defaultValue false\n */\n @Prop() fullWidth = false;\n\n /**\n * Determines whether the `value` should truncate and display with an ellipsis.\n * @defaultValue false\n */\n @Prop() truncate = false;\n\n /**\n * The string displayed that is also copied to the clipboard upon interaction.\n */\n @Prop() value!: string;\n\n /**\n * Event fired when copyText button is clicked.\n */\n @Event() pdsCopyTextClick: EventEmitter;\n\n private copyToClipboard = async (value: string) => {\n try {\n if (typeof navigator.clipboard !== 'undefined') {\n await navigator.clipboard.writeText(value);\n this.pdsCopyTextClick.emit('Copied to clipboard');\n }\n } catch (err) {\n this.pdsCopyTextClick.emit(`Error writing text to clipboard: ${err}`);\n }\n };\n\n private handleClick = () => {\n this.copyToClipboard(this.value);\n };\n\n private classNames() {\n const classNames = ['pds-copytext'];\n\n if (this.border) {\n classNames.push('pds-copytext--bordered');\n }\n\n if (this.fullWidth) {\n classNames.push('pds-copytext--full-width');\n }\n\n if (this.truncate) {\n classNames.push('pds-copytext--truncated');\n }\n\n return classNames.join(' ');\n }\n\n render() {\n return (\n <Host class={this.classNames()} id={this.componentId}>\n <pds-button type=\"button\" variant=\"unstyled\" onClick={this.handleClick}>\n <span>{this.value}</span>\n <pds-icon icon={copyIcon} size=\"16px\"></pds-icon>\n </pds-button>\n </Host>\n );\n }\n}\n"],"mappings":"6FAAA,MAAMA,EAAiB,01F,MCSVC,EAAW,MALxB,WAAAC,CAAAC,G,2DAU2BC,KAAMC,OAAG,KAW1BD,KAASE,UAAG,MAMZF,KAAQG,SAAG,MAYXH,KAAAI,gBAAkBC,MAAOC,IAC/B,IACE,UAAWC,UAAUC,YAAc,YAAa,OACxCD,UAAUC,UAAUC,UAAUH,GACpCN,KAAKU,iBAAiBC,KAAK,sB,EAE7B,MAAOC,GACPZ,KAAKU,iBAAiBC,KAAK,oCAAoCC,I,GAI3DZ,KAAWa,YAAG,KACpBb,KAAKI,gBAAgBJ,KAAKM,MAAM,CA+BnC,CA5BS,UAAAQ,GACN,MAAMA,EAAa,CAAC,gBAEpB,GAAId,KAAKC,OAAQ,CACfa,EAAWC,KAAK,yB,CAGlB,GAAIf,KAAKE,UAAW,CAClBY,EAAWC,KAAK,2B,CAGlB,GAAIf,KAAKG,SAAU,CACjBW,EAAWC,KAAK,0B,CAGlB,OAAOD,EAAWE,KAAK,I,CAGzB,MAAAC,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,2CAACC,MAAOrB,KAAKc,aAAcQ,GAAItB,KAAKuB,aACvCL,EAAA,cAAAE,IAAA,2CAAYI,KAAK,SAASC,QAAQ,WAAWC,QAAS1B,KAAKa,aACzDK,EAAO,QAAAE,IAAA,4CAAApB,KAAKM,OACZY,EAAU,YAAAE,IAAA,2CAAAO,KAAMC,EAAUC,KAAK,U","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as o,c as e,h as i,H as t,g as s}from"./p-Bf1dou5H.js";const r=":host{--sizing-max-width-default:352px;display:inline-block}:host [popover]{background-color:var(--pine-color-background-container);border:var(--pine-border);border-radius:var(--pine-dimension-125);-webkit-box-shadow:var(--pine-box-shadow-200);box-shadow:var(--pine-box-shadow-200);margin:var(--pine-dimension-none);max-width:var(--sizing-max-width-default);padding:var(--pine-dimension-md);position:fixed}:host [popover]:popover-open:not(.pds-popover--positioned){visibility:hidden}:host button{-ms-flex-align:center;align-items:center;background-color:var(--pine-color-secondary);border:var(--pine-border);border-radius:var(--pine-border-radius-full);color:var(--pine-color-text-secondary);display:-ms-flexbox;display:flex;font:var(--pine-typography-body-medium);font-family:var(--pine-font-family-heading);letter-spacing:var(--pine-letter-spacing);min-height:40px;padding:var(--pine-dimension-xs) var(--pine-dimension-sm)}:host button:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}:host button:hover{background-color:var(--pine-color-secondary-hover)}";const n=class{constructor(i){o(this,i);this.pdsPopoverOpen=e(this,"pdsPopoverOpen");this.pdsPopoverClose=e(this,"pdsPopoverClose");this.active=false;this.isComponentMounted=true;this.popoverTargetAction="show";this.popoverType="auto";this.maxWidth=352;this.placement="right"}componentDidLoad(){var o;const e=(o=this.el.shadowRoot)===null||o===void 0?void 0:o.querySelector("div[popover]");if(e!=null){this.boundToggleHandler=this.handleToggle.bind(this);e.addEventListener("toggle",this.boundToggleHandler)}}disconnectedCallback(){var o;this.isComponentMounted=false;const e=(o=this.el.shadowRoot)===null||o===void 0?void 0:o.querySelector("div[popover]");if(e!=null&&this.boundToggleHandler!=null){e.removeEventListener("toggle",this.boundToggleHandler)}}async show(){var o;const e=(o=this.el.shadowRoot)===null||o===void 0?void 0:o.querySelector("div[popover]");if(e!=null&&typeof e.showPopover==="function"){try{e.showPopover()}catch(o){console.warn("Failed to show popover:",o)}}}async hide(){var o;const e=(o=this.el.shadowRoot)===null||o===void 0?void 0:o.querySelector("div[popover]");if(e!=null&&typeof e.hidePopover==="function"){try{e.hidePopover()}catch(o){console.warn("Failed to hide popover:",o)}}}async toggle(){var o;const e=(o=this.el.shadowRoot)===null||o===void 0?void 0:o.querySelector("div[popover]");if(e!=null&&typeof e.togglePopover==="function"){try{e.togglePopover()}catch(o){console.warn("Failed to toggle popover:",o)}}}handleToggle(o){var e;const i=o;const t={componentId:this.componentId,popoverType:this.popoverType,text:this.text};if(i.newState==="open"){this.active=true;const o=(e=this.el.shadowRoot)===null||e===void 0?void 0:e.querySelector("div[popover]");if(o!=null){o.classList.remove("pds-popover--positioned")}requestAnimationFrame((()=>{if(!this.isComponentMounted)return;this.handlePopoverPositioning();if(o!=null){o.classList.add("pds-popover--positioned")}}));this.pdsPopoverOpen.emit(t)}else if(i.newState==="closed"){this.active=false;this.pdsPopoverClose.emit(t)}}handleScroll(){var o;const e=(o=this.el.shadowRoot)===null||o===void 0?void 0:o.querySelector("div[popover]");if(e!=null&&this.active===true){this.handlePopoverPositioning()}}handlePopoverPositioning(){const o=this.el.shadowRoot.querySelector(".pds-popover__trigger");const e=this.el.shadowRoot.querySelector("div[popover]");if(o==null||e==null)return;const i=o;const t=e;const s=i.getBoundingClientRect();const r=t.getBoundingClientRect();let n=0;let a=0;const d=8;switch(this.placement){case"top":n=s.top-r.height-d;a=s.left+(s.width-r.width)/2;break;case"top-start":n=s.top-r.height-d;a=s.left;break;case"top-end":n=s.top-r.height-d;a=s.right-r.width;break;case"right":n=s.top+(s.height-r.height)/2;a=s.right+d;break;case"right-start":n=s.top;a=s.right+d;break;case"right-end":n=s.bottom-r.height;a=s.right+d;break;case"bottom":n=s.bottom+d;a=s.left+(s.width-r.width)/2;break;case"bottom-start":n=s.bottom+d;a=s.left;break;case"bottom-end":n=s.bottom+d;a=s.right-r.width;break;case"left":n=s.top+(s.height-r.height)/2;a=s.left-r.width-d;break;case"left-start":n=s.top;a=s.left-r.width-d;break;case"left-end":n=s.bottom-r.height;a=s.left-r.width-d;break}t.style.top=`${n}px`;t.style.left=`${a}px`}render(){return i(t,{key:"c3da1b2ab23b4678aeb2f7fdfe59383c1c5e6766"},i("button",{key:"d426d0c3145820c161858123cb71cdf92a6da3f6",class:"pds-popover__trigger",popoverTarget:this.componentId,popoverTargetAction:this.popoverTargetAction},this.text),i("div",{key:"aad97aedfc716085d1e7609649cc7aaeb7de7358",class:`pds-popover ${this.active?"pds-popover--active":""}`,id:this.componentId,popover:this.popoverType,style:{maxWidth:`${this.maxWidth}px`}},i("slot",{key:"1b5dde4a0643ee6dbdf4116cc74fff8b188e498b"})))}get el(){return s(this)}};n.style=r;export{n as pds_popover};
2
+ //# sourceMappingURL=p-87ed43d5.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["pdsPopoverCss","PdsPopover","constructor","hostRef","this","active","isComponentMounted","popoverTargetAction","popoverType","maxWidth","placement","componentDidLoad","popoverEl","_a","el","shadowRoot","querySelector","boundToggleHandler","handleToggle","bind","addEventListener","disconnectedCallback","removeEventListener","show","showPopover","e","console","warn","hide","hidePopover","toggle","togglePopover","event","toggleEvent","eventDetail","componentId","text","newState","classList","remove","requestAnimationFrame","handlePopoverPositioning","add","pdsPopoverOpen","emit","pdsPopoverClose","handleScroll","triggerEl","triggerElement","popoverElement","triggerRect","getBoundingClientRect","popoverRect","top","left","offset","height","width","right","bottom","style","render","h","Host","key","class","popoverTarget","id","popover"],"sources":["src/components/pds-popover/pds-popover.scss?tag=pds-popover&encapsulation=shadow","src/components/pds-popover/pds-popover.tsx"],"sourcesContent":[":host {\n --sizing-max-width-default: 352px;\n\n display: inline-block;\n\n [popover] {\n background-color: var(--pine-color-background-container);\n border: var(--pine-border);\n border-radius: var(--pine-dimension-125);\n box-shadow: var(--pine-box-shadow-200);\n margin: var(--pine-dimension-none);\n max-width: var(--sizing-max-width-default);\n padding: var(--pine-dimension-md);\n position: fixed;\n\n // Hide popover initially to prevent flash before positioning\n // stylelint-disable-next-line selector-pseudo-class-no-unknown\n &:popover-open:not(.pds-popover--positioned) {\n visibility: hidden;\n }\n }\n\n button {\n align-items: center;\n background-color: var(--pine-color-secondary);\n border: var(--pine-border);\n border-radius: var(--pine-border-radius-full);\n color: var(--pine-color-text-secondary);\n display: flex;\n font: var(--pine-typography-body-medium);\n font-family: var(--pine-font-family-heading);\n letter-spacing: var(--pine-letter-spacing);\n min-height: 40px;\n padding: var(--pine-dimension-xs) var(--pine-dimension-sm);\n\n &:focus-visible {\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-border-width);\n }\n\n &:hover {\n background-color: var(--pine-color-secondary-hover);\n }\n }\n}\n","import { Component, Element, Event, EventEmitter, Host, Listen, h, Method, Prop, State } from '@stencil/core';\nimport { PlacementType } from '@utils/types';\nimport { PdsPopoverEventDetail, ToggleEvent } from './popover-interface';\n\n@Component({\n tag: 'pds-popover',\n styleUrl: 'pds-popover.scss',\n shadow: true,\n})\nexport class PdsPopover {\n /**\n * Reference to the Host element\n */\n @Element() el: HTMLPdsPopoverElement;\n\n /**\n * Determines when the popover is active\n * @defaultValue false\n */\n @State() active = false;\n\n /**\n * Bound reference to the toggle handler for proper cleanup\n */\n private boundToggleHandler: (event: Event) => void;\n\n /**\n * Tracks if the component is still mounted to prevent memory leaks\n */\n private isComponentMounted = true;\n\n /**\n * Emitted when the popover is opened\n */\n @Event() pdsPopoverOpen: EventEmitter<PdsPopoverEventDetail>;\n\n /**\n * Emitted when the popover is closed\n */\n @Event() pdsPopoverClose: EventEmitter<PdsPopoverEventDetail>;\n\n /**\n * Determines the action that triggers the popover. For manual popovers, the consumer is responsible for toggling this value.\n * @defaultValue \"show\"\n */\n @Prop() popoverTargetAction: 'show' | 'toggle' | 'hide' = 'show';\n\n /**\n * Determines the type of popover. Auto popovers can be \"light dismissed\" by clicking outside of the popover.\n * Manual popovers require the consumer to handle the visibility of the popover.\n */\n @Prop() popoverType: 'auto' | 'manual' = 'auto';\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Text that appears on the trigger element\n */\n @Prop() text: string;\n\n /**\n * Sets the maximum width of the popover content\n * @defaultValue 352\n */\n @Prop() maxWidth?: number = 352;\n\n /**\n * Determines the preferred position of the popover\n * @defaultValue \"right\"\n */\n @Prop({ reflect: true }) placement: PlacementType = 'right';\n\n componentDidLoad() {\n // Attach toggle event listener to the popover element\n const popoverEl = this.el.shadowRoot?.querySelector('div[popover]');\n if (popoverEl != null) {\n this.boundToggleHandler = this.handleToggle.bind(this);\n popoverEl.addEventListener('toggle', this.boundToggleHandler);\n }\n }\n\n disconnectedCallback() {\n this.isComponentMounted = false;\n\n // Clean up event listener\n const popoverEl = this.el.shadowRoot?.querySelector('div[popover]');\n if (popoverEl != null && this.boundToggleHandler != null) {\n popoverEl.removeEventListener('toggle', this.boundToggleHandler);\n }\n }\n\n /**\n * Opens the popover programmatically\n */\n @Method()\n async show() {\n const popoverEl = this.el.shadowRoot?.querySelector('div[popover]') as HTMLElement & { showPopover?: () => void } | null;\n if (popoverEl != null && typeof popoverEl.showPopover === 'function') {\n try {\n popoverEl.showPopover();\n } catch (e) {\n // Popover might already be open\n console.warn('Failed to show popover:', e);\n }\n }\n }\n\n /**\n * Closes the popover programmatically\n */\n @Method()\n async hide() {\n const popoverEl = this.el.shadowRoot?.querySelector('div[popover]') as HTMLElement & { hidePopover?: () => void } | null;\n if (popoverEl != null && typeof popoverEl.hidePopover === 'function') {\n try {\n popoverEl.hidePopover();\n } catch (e) {\n // Popover might already be closed\n console.warn('Failed to hide popover:', e);\n }\n }\n }\n\n /**\n * Toggles the popover open/closed state programmatically\n */\n @Method()\n async toggle() {\n const popoverEl = this.el.shadowRoot?.querySelector('div[popover]') as HTMLElement & { togglePopover?: () => void } | null;\n if (popoverEl != null && typeof popoverEl.togglePopover === 'function') {\n try {\n popoverEl.togglePopover();\n } catch (e) {\n console.warn('Failed to toggle popover:', e);\n }\n }\n }\n\n private handleToggle(event: Event) {\n const toggleEvent = event as ToggleEvent;\n\n // Prepare event detail\n const eventDetail: PdsPopoverEventDetail = {\n componentId: this.componentId,\n popoverType: this.popoverType,\n text: this.text,\n };\n\n // Update internal state based on native popover state\n if (toggleEvent.newState === 'open') {\n this.active = true;\n const popoverEl = this.el.shadowRoot?.querySelector('div[popover]');\n\n // Remove positioned class to hide popover via CSS\n if (popoverEl != null) {\n popoverEl.classList.remove('pds-popover--positioned');\n }\n\n // Position after the browser has rendered the popover, then show it\n requestAnimationFrame(() => {\n // Prevent memory leak if component unmounts during animation frame\n if (!this.isComponentMounted) return;\n\n this.handlePopoverPositioning();\n if (popoverEl != null) {\n popoverEl.classList.add('pds-popover--positioned');\n }\n });\n this.pdsPopoverOpen.emit(eventDetail);\n } else if (toggleEvent.newState === 'closed') {\n this.active = false;\n this.pdsPopoverClose.emit(eventDetail);\n }\n }\n\n @Listen('scroll', {\n target: 'window',\n capture: true\n })\n handleScroll() {\n // Only reposition if the popover is actually open\n const popoverEl = this.el.shadowRoot?.querySelector('div[popover]');\n if (popoverEl != null && this.active === true) {\n this.handlePopoverPositioning();\n }\n }\n\n private handlePopoverPositioning() {\n const triggerEl = this.el.shadowRoot.querySelector('.pds-popover__trigger');\n const popoverEl = this.el.shadowRoot.querySelector('div[popover]');\n\n if (triggerEl == null || popoverEl == null) return;\n\n // Cast to HTMLElement after null check for proper typing\n const triggerElement = triggerEl as HTMLElement;\n const popoverElement = popoverEl as HTMLElement;\n\n const triggerRect = triggerElement.getBoundingClientRect();\n const popoverRect = popoverElement.getBoundingClientRect();\n\n let top = 0;\n let left = 0;\n const offset = 8\n\n switch (this.placement) {\n case 'top':\n top = triggerRect.top - popoverRect.height - offset;\n left = triggerRect.left + (triggerRect.width - popoverRect.width) / 2;\n break;\n case 'top-start':\n top = triggerRect.top - popoverRect.height - offset;\n left = triggerRect.left;\n break;\n case 'top-end':\n top = triggerRect.top - popoverRect.height - offset;\n left = triggerRect.right - popoverRect.width;\n break;\n case 'right':\n top = triggerRect.top + (triggerRect.height - popoverRect.height) / 2;\n left = triggerRect.right + offset;\n break;\n case 'right-start':\n top = triggerRect.top;\n left = triggerRect.right + offset;\n break;\n case 'right-end':\n top = triggerRect.bottom - popoverRect.height;\n left = triggerRect.right + offset;\n break;\n case 'bottom':\n top = triggerRect.bottom + offset;\n left = triggerRect.left + (triggerRect.width - popoverRect.width) / 2;\n break;\n case 'bottom-start':\n top = triggerRect.bottom + offset;\n left = triggerRect.left;\n break;\n case 'bottom-end':\n top = triggerRect.bottom + offset;\n left = triggerRect.right - popoverRect.width;\n break;\n case 'left':\n top = triggerRect.top + (triggerRect.height - popoverRect.height) / 2;\n left = triggerRect.left - popoverRect.width - offset;\n break;\n case 'left-start':\n top = triggerRect.top;\n left = triggerRect.left - popoverRect.width - offset;\n break;\n case 'left-end':\n top = triggerRect.bottom - popoverRect.height;\n left = triggerRect.left - popoverRect.width - offset;\n break;\n }\n\n popoverElement.style.top = `${top}px`;\n popoverElement.style.left = `${left}px`;\n }\n\n render() {\n return (\n <Host>\n <button\n class=\"pds-popover__trigger\"\n popoverTarget={this.componentId}\n popoverTargetAction={this.popoverTargetAction}\n >\n {this.text}\n </button>\n <div\n class={`pds-popover ${this.active ? 'pds-popover--active' : ''}`}\n id={this.componentId}\n popover={this.popoverType}\n style={{ maxWidth: `${this.maxWidth}px` }}\n >\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{r,h as i,H as a}from"./p-Bf1dou5H.js";import{c as e,u as s}from"./p-D4MkIUXU.js";const n=":host{display:inline-block}div{--color-background-container:var(--pine-color-mercury-050);-ms-flex-align:center;align-items:center;background-color:var(--color-background-container);border-radius:var(--border-radius-admin-round, var(--pine-border-radius-full));display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;position:relative}:host(.pds-avatar--admin) div{--border-radius-admin-round:var(--pine-dimension-150);border-radius:var(--border-radius-admin-round)}:host(.pds-avatar--has-image) div{background:transparent}@supports selector(:has){div:has(img){background-color:transparent}}.pds-avatar__button{-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:var(--pine-dimension-none);border-radius:var(--pine-border-radius-full);cursor:pointer;display:-ms-flexbox;display:flex;padding:var(--pine-dimension-none)}.pds-avatar__button:focus-visible{outline:var(--pine-outline-focus)}.pds-avatar__badge{background-color:var(--pine-color-background-container);border:var(--pine-border);border-color:var(--pine-color-secondary);border-radius:var(--pine-border-radius-round);inset-block-end:var(--pine-dimension-none);inset-inline-end:var(--pine-dimension-none);position:absolute}img{border-radius:var(--border-radius-admin-round, var(--pine-border-radius-full));height:100%;-o-object-fit:cover;object-fit:cover;width:100%}";const o=class{constructor(a){r(this,a);this.alt=null;this.badge=false;this.dropdown=false;this.image=null;this.size="lg";this.variant="customer";this.renderAssetWrapper=()=>{const r={height:this.avatarSize(),width:this.avatarSize()};return i("div",{style:r,part:"asset-wrapper"},this.renderIconOrImage(),this.renderBadge())};this.renderAvatar=()=>this.dropdown?i("button",{class:"pds-avatar__button",type:"button","aria-label":"Avatar dropdown trigger"},this.renderAssetWrapper()):this.renderAssetWrapper();this.renderBadge=()=>this.badge&&i("pds-icon",{color:"var(--pine-color-purple-600)",class:"pds-avatar__badge",icon:e,size:"33.53%"});this.renderIconOrImage=()=>this.image?i("img",{alt:this.alt,src:this.image}):i("pds-icon",{color:"var(--pine-color-mercury-500)",icon:s,size:"33.53%"});this.classNames=()=>({"pds-avatar":true,[`pds-avatar--has-image`]:this.image!==""&&this.image!==null,[`pds-avatar--${this.variant}`]:this.variant==="admin"})}avatarSize(){const r={xs:"24px",sm:"32px",md:"40px",lg:"56px",xl:"64px"};if(r[this.size]){return r[this.size]}else{return this.size}}render(){return i(a,{key:"c19584898e4613085f6e6b8e227e7181eb4c8f1b",id:this.componentId,class:Object.assign({},this.classNames())},this.renderAvatar())}};o.style=n;export{o as pds_avatar};
2
- //# sourceMappingURL=p-a54d6a53.entry.js.map
1
+ import{r,h as i,H as a}from"./p-Bf1dou5H.js";import{c as e,u as s}from"./p-D4zJBIgl.js";const n=":host{display:inline-block}div{--color-background-container:var(--pine-color-mercury-050);-ms-flex-align:center;align-items:center;background-color:var(--color-background-container);border-radius:var(--border-radius-admin-round, var(--pine-border-radius-full));display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;position:relative}:host(.pds-avatar--admin) div{--border-radius-admin-round:var(--pine-dimension-150);border-radius:var(--border-radius-admin-round)}:host(.pds-avatar--has-image) div{background:transparent}@supports selector(:has){div:has(img){background-color:transparent}}.pds-avatar__button{-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:var(--pine-dimension-none);border-radius:var(--pine-border-radius-full);cursor:pointer;display:-ms-flexbox;display:flex;padding:var(--pine-dimension-none)}.pds-avatar__button:focus-visible{outline:var(--pine-outline-focus)}.pds-avatar__badge{background-color:var(--pine-color-background-container);border:var(--pine-border);border-color:var(--pine-color-secondary);border-radius:var(--pine-border-radius-round);inset-block-end:var(--pine-dimension-none);inset-inline-end:var(--pine-dimension-none);position:absolute}img{border-radius:var(--border-radius-admin-round, var(--pine-border-radius-full));height:100%;-o-object-fit:cover;object-fit:cover;width:100%}";const o=class{constructor(a){r(this,a);this.alt=null;this.badge=false;this.dropdown=false;this.image=null;this.size="lg";this.variant="customer";this.renderAssetWrapper=()=>{const r={height:this.avatarSize(),width:this.avatarSize()};return i("div",{style:r,part:"asset-wrapper"},this.renderIconOrImage(),this.renderBadge())};this.renderAvatar=()=>this.dropdown?i("button",{class:"pds-avatar__button",type:"button","aria-label":"Avatar dropdown trigger"},this.renderAssetWrapper()):this.renderAssetWrapper();this.renderBadge=()=>this.badge&&i("pds-icon",{color:"var(--pine-color-purple-600)",class:"pds-avatar__badge",icon:e,size:"33.53%"});this.renderIconOrImage=()=>this.image?i("img",{alt:this.alt,src:this.image}):i("pds-icon",{color:"var(--pine-color-mercury-500)",icon:s,size:"33.53%"});this.classNames=()=>({"pds-avatar":true,[`pds-avatar--has-image`]:this.image!==""&&this.image!==null,[`pds-avatar--${this.variant}`]:this.variant==="admin"})}avatarSize(){const r={xs:"24px",sm:"32px",md:"40px",lg:"56px",xl:"64px"};if(r[this.size]){return r[this.size]}else{return this.size}}render(){return i(a,{key:"c19584898e4613085f6e6b8e227e7181eb4c8f1b",id:this.componentId,class:Object.assign({},this.classNames())},this.renderAvatar())}};o.style=n;export{o as pds_avatar};
2
+ //# sourceMappingURL=p-88773b86.entry.js.map