@adyen/bento-vue2 1.35.1 → 1.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (289) hide show
  1. package/README.md +31 -4
  2. package/dist/@types/index.d.ts +132 -95
  3. package/dist/accordion.js +1 -1
  4. package/dist/action-bar.js +1 -1
  5. package/dist/alert.js +1 -1
  6. package/dist/assets/accordion-item.css +1 -1
  7. package/dist/assets/action-bar.css +1 -1
  8. package/dist/assets/base-modal.css +1 -1
  9. package/dist/assets/button.css +1 -1
  10. package/dist/assets/calendar.css +1 -1
  11. package/dist/assets/card.css +1 -1
  12. package/dist/assets/checkbox-group.css +1 -1
  13. package/dist/assets/checkbox-input.css +1 -1
  14. package/dist/assets/checkbox.css +1 -1
  15. package/dist/assets/code-snippet.css +1 -1
  16. package/dist/assets/dashboard-section.css +1 -1
  17. package/dist/assets/data-grid.css +1 -1
  18. package/dist/assets/date-picker.css +1 -1
  19. package/dist/assets/date-range-picker.css +1 -1
  20. package/dist/assets/date.css +1 -0
  21. package/dist/assets/dialog-page.css +1 -1
  22. package/dist/assets/dropdown-default-textbox.css +1 -1
  23. package/dist/assets/dropdown.css +1 -1
  24. package/dist/assets/empty-state.css +1 -1
  25. package/dist/assets/error-message.css +1 -1
  26. package/dist/assets/filter-bar.css +1 -1
  27. package/dist/assets/form-layout-title.css +1 -1
  28. package/dist/assets/header.css +1 -1
  29. package/dist/assets/info-icon.css +1 -1
  30. package/dist/assets/input-field.css +1 -1
  31. package/dist/assets/inspector.css +1 -1
  32. package/dist/assets/menu.css +1 -1
  33. package/dist/assets/modal-fullscreen.css +1 -1
  34. package/dist/assets/pagination.css +1 -1
  35. package/dist/assets/popover.css +1 -1
  36. package/dist/assets/popper-container.css +1 -1
  37. package/dist/assets/radio-group.css +1 -1
  38. package/dist/assets/radio-input.css +1 -1
  39. package/dist/assets/search-bar.css +1 -1
  40. package/dist/assets/segmented-control.css +1 -1
  41. package/dist/assets/selection-card-group.css +1 -1
  42. package/dist/assets/sidepanel.css +1 -1
  43. package/dist/assets/status.css +1 -1
  44. package/dist/assets/summary-grid-item-custom.css +1 -1
  45. package/dist/assets/tabs.css +1 -1
  46. package/dist/assets/tag.css +1 -1
  47. package/dist/assets/textarea.css +1 -1
  48. package/dist/assets/timeline-item.css +1 -1
  49. package/dist/assets/toggle.css +1 -1
  50. package/dist/assets/tooltip.css +1 -1
  51. package/dist/assets/typography.css +1 -1
  52. package/dist/assets/use-cached-selected-values.css +1 -1
  53. package/dist/avatar.js +1 -1
  54. package/dist/button.js +4 -4
  55. package/dist/card.js +1 -1
  56. package/dist/checkbox.js +3 -3
  57. package/dist/chunks/{accordion-item.BDNSykyK.js → accordion-item.BjXzREaK.js} +6 -6
  58. package/dist/chunks/accordion-item.BjXzREaK.js.map +1 -0
  59. package/dist/chunks/{action-bar.CCVKS1xo.js → action-bar.CjdRoIjd.js} +6 -6
  60. package/dist/chunks/{action-bar.CCVKS1xo.js.map → action-bar.CjdRoIjd.js.map} +1 -1
  61. package/dist/chunks/{alert.CVsckdGC.js → alert.DHu9891u.js} +3 -3
  62. package/dist/chunks/{alert.CVsckdGC.js.map → alert.DHu9891u.js.map} +1 -1
  63. package/dist/chunks/{avatar.qcWk9clF.js → avatar.DXzyWKsI.js} +2 -2
  64. package/dist/chunks/{avatar.qcWk9clF.js.map → avatar.DXzyWKsI.js.map} +1 -1
  65. package/dist/chunks/{base-button.qWj0m9-v.js → base-button.4UYC3kp2.js} +2 -2
  66. package/dist/chunks/{base-button.qWj0m9-v.js.map → base-button.4UYC3kp2.js.map} +1 -1
  67. package/dist/chunks/{base-modal.BaHkDH5f.js → base-modal.D9nvAFwb.js} +18 -18
  68. package/dist/chunks/base-modal.D9nvAFwb.js.map +1 -0
  69. package/dist/chunks/{button-actions-with-menu.Bl82u6yP.js → button-actions-with-menu.BraBlJ_T.js} +4 -4
  70. package/dist/chunks/{button-actions-with-menu.Bl82u6yP.js.map → button-actions-with-menu.BraBlJ_T.js.map} +1 -1
  71. package/dist/chunks/{button-actions.DN4eIQes.js → button-actions.22PlNl4O.js} +3 -3
  72. package/dist/chunks/{button-actions.DN4eIQes.js.map → button-actions.22PlNl4O.js.map} +1 -1
  73. package/dist/chunks/{button.79klAcOK.js → button.PIszagl6.js} +3 -3
  74. package/dist/chunks/{button.79klAcOK.js.map → button.PIszagl6.js.map} +1 -1
  75. package/dist/chunks/{calendar.BFrqPClW.js → calendar.DadXSN5E.js} +6 -6
  76. package/dist/chunks/calendar.DadXSN5E.js.map +1 -0
  77. package/dist/chunks/{card.lWLgpCWM.js → card.7EiG0W8f.js} +5 -5
  78. package/dist/chunks/card.7EiG0W8f.js.map +1 -0
  79. package/dist/chunks/{checkbox-group.C0cqbJWx.js → checkbox-group.BKDaJocG.js} +11 -11
  80. package/dist/chunks/checkbox-group.BKDaJocG.js.map +1 -0
  81. package/dist/chunks/{checkbox-input.BH7MGdMj.js → checkbox-input.DgfJgZaI.js} +5 -5
  82. package/dist/chunks/checkbox-input.DgfJgZaI.js.map +1 -0
  83. package/dist/chunks/{checkbox.B3u_hzUo.js → checkbox.DNsPAfq5.js} +18 -18
  84. package/dist/chunks/checkbox.DNsPAfq5.js.map +1 -0
  85. package/dist/chunks/{code-snippet.BgjvWTHP.js → code-snippet.BPKC0Bxs.js} +7 -7
  86. package/dist/chunks/{code-snippet.BgjvWTHP.js.map → code-snippet.BPKC0Bxs.js.map} +1 -1
  87. package/dist/chunks/{controls-group.DLBxlPfl.js → controls-group.Dx66LdfN.js} +3 -3
  88. package/dist/chunks/{controls-group.DLBxlPfl.js.map → controls-group.Dx66LdfN.js.map} +1 -1
  89. package/dist/chunks/{copy.CmxcGt77.js → copy.fvajyLGQ.js} +3 -3
  90. package/dist/chunks/{copy.CmxcGt77.js.map → copy.fvajyLGQ.js.map} +1 -1
  91. package/dist/chunks/{country.DWQ85WGG.js → country.CM5oZOyZ.js} +2 -2
  92. package/dist/chunks/{country.DWQ85WGG.js.map → country.CM5oZOyZ.js.map} +1 -1
  93. package/dist/chunks/{currency.CbZqZrBz.js → currency.CEqsVP2T.js} +2 -2
  94. package/dist/chunks/{currency.CbZqZrBz.js.map → currency.CEqsVP2T.js.map} +1 -1
  95. package/dist/chunks/{dashboard-section.BfXtTf6l.js → dashboard-section.CilMYHUI.js} +3 -3
  96. package/dist/chunks/{dashboard-section.BfXtTf6l.js.map → dashboard-section.CilMYHUI.js.map} +1 -1
  97. package/dist/chunks/{dashed-underline.xq5j9fGG.js → dashed-underline.3xCL30uf.js} +4 -4
  98. package/dist/chunks/{dashed-underline.xq5j9fGG.js.map → dashed-underline.3xCL30uf.js.map} +1 -1
  99. package/dist/chunks/{data-grid-template.C8AR5CxA.js → data-grid-template.DV7r3myJ.js} +3 -3
  100. package/dist/chunks/{data-grid-template.C8AR5CxA.js.map → data-grid-template.DV7r3myJ.js.map} +1 -1
  101. package/dist/chunks/{data-grid.BCTcokYm.js → data-grid.CAs5qLq1.js} +376 -374
  102. package/dist/chunks/data-grid.CAs5qLq1.js.map +1 -0
  103. package/dist/chunks/{date-picker.CPG0zksD.js → date-picker.Ce5xoP6x.js} +9 -9
  104. package/dist/chunks/date-picker.Ce5xoP6x.js.map +1 -0
  105. package/dist/chunks/{date-range-picker.Bt439x32.js → date-range-picker.WFZu39Kj.js} +12 -12
  106. package/dist/chunks/{date-range-picker.Bt439x32.js.map → date-range-picker.WFZu39Kj.js.map} +1 -1
  107. package/dist/chunks/{date.C0uwNQjg.js → date.BQ29-2L1.js} +24 -23
  108. package/dist/chunks/{date.C0uwNQjg.js.map → date.BQ29-2L1.js.map} +1 -1
  109. package/dist/chunks/{dialog-page.bmDDYmn9.js → dialog-page.Qi9Zc34k.js} +2 -2
  110. package/dist/chunks/{dialog-page.bmDDYmn9.js.map → dialog-page.Qi9Zc34k.js.map} +1 -1
  111. package/dist/chunks/{dropdown-default-textbox.kQ3pHsZe.js → dropdown-default-textbox.DPZmj7xJ.js} +4 -4
  112. package/dist/chunks/dropdown-default-textbox.DPZmj7xJ.js.map +1 -0
  113. package/dist/chunks/{dropdown-tag.Cd4LGtwl.js → dropdown-tag.Df5CcYQ0.js} +6 -6
  114. package/dist/chunks/{dropdown-tag.Cd4LGtwl.js.map → dropdown-tag.Df5CcYQ0.js.map} +1 -1
  115. package/dist/chunks/{dropdown.B4KMM58m.js → dropdown.DpiHAE1l.js} +9 -9
  116. package/dist/chunks/dropdown.DpiHAE1l.js.map +1 -0
  117. package/dist/chunks/{empty-state.C2ba_wDp.js → empty-state.c6UY_tmZ.js} +3 -3
  118. package/dist/chunks/{empty-state.C2ba_wDp.js.map → empty-state.c6UY_tmZ.js.map} +1 -1
  119. package/dist/chunks/{error-message.GCYDEzGL.js → error-message.Btn_7Igx.js} +3 -3
  120. package/dist/chunks/{error-message.GCYDEzGL.js.map → error-message.Btn_7Igx.js.map} +1 -1
  121. package/dist/chunks/es6.BvpG4Oi6.js.map +1 -1
  122. package/dist/chunks/{filter-bar.Co2YeUUg.js → filter-bar.BSWkjktr.js} +27 -27
  123. package/dist/chunks/filter-bar.BSWkjktr.js.map +1 -0
  124. package/dist/chunks/{fixed-scroller.CQWDnydO.js → fixed-scroller.Bv65QAGg.js} +2 -2
  125. package/dist/chunks/{fixed-scroller.CQWDnydO.js.map → fixed-scroller.Bv65QAGg.js.map} +1 -1
  126. package/dist/chunks/{footer-actions.CxxS87iQ.js → footer-actions.BL59SNj4.js} +4 -4
  127. package/dist/chunks/{footer-actions.CxxS87iQ.js.map → footer-actions.BL59SNj4.js.map} +1 -1
  128. package/dist/chunks/{form-layout-title.DomnJXLE.js → form-layout-title.CTnkin8u.js} +3 -3
  129. package/dist/chunks/{form-layout-title.DomnJXLE.js.map → form-layout-title.CTnkin8u.js.map} +1 -1
  130. package/dist/chunks/generate-uid.D-HFI38h.js +32 -0
  131. package/dist/chunks/generate-uid.D-HFI38h.js.map +1 -0
  132. package/dist/chunks/{header.zacQVbjn.js → header.DGuyhMle.js} +7 -7
  133. package/dist/chunks/{header.zacQVbjn.js.map → header.DGuyhMle.js.map} +1 -1
  134. package/dist/chunks/{info-icon.DNn4oZsB.js → info-icon.BxWBisWG.js} +6 -6
  135. package/dist/chunks/info-icon.BxWBisWG.js.map +1 -0
  136. package/dist/chunks/{input-field.DBrzeKBj.js → input-field.CT0_xKvJ.js} +6 -6
  137. package/dist/chunks/input-field.CT0_xKvJ.js.map +1 -0
  138. package/dist/chunks/{inspector.types.lu_MoQn5.js → inspector.types.D1HKmbsJ.js} +5 -5
  139. package/dist/chunks/inspector.types.D1HKmbsJ.js.map +1 -0
  140. package/dist/chunks/{link.Xce4kDGy.js → link.n62xz4hO.js} +2 -2
  141. package/dist/chunks/{link.Xce4kDGy.js.map → link.n62xz4hO.js.map} +1 -1
  142. package/dist/chunks/{listbox-option-tag.RVvWMKvz.js → listbox-option-tag.CuHL51H9.js} +3 -3
  143. package/dist/chunks/{listbox-option-tag.RVvWMKvz.js.map → listbox-option-tag.CuHL51H9.js.map} +1 -1
  144. package/dist/chunks/{loading-button.DoX2sopf.js → loading-button.CgiFM_c7.js} +2 -2
  145. package/dist/chunks/{loading-button.DoX2sopf.js.map → loading-button.CgiFM_c7.js.map} +1 -1
  146. package/dist/chunks/{menu.DHakGFS4.js → menu.DEgYSQA2.js} +7 -7
  147. package/dist/chunks/{menu.DHakGFS4.js.map → menu.DEgYSQA2.js.map} +1 -1
  148. package/dist/chunks/{modal-fullscreen.mIlp0LnL.js → modal-fullscreen.DsJnp4i6.js} +7 -7
  149. package/dist/chunks/modal-fullscreen.DsJnp4i6.js.map +1 -0
  150. package/dist/chunks/{modal.CtTQWN8H.js → modal.B1WqZZpr.js} +6 -6
  151. package/dist/chunks/{modal.CtTQWN8H.js.map → modal.B1WqZZpr.js.map} +1 -1
  152. package/dist/chunks/{pagination.By-p9MjL.js → pagination.8BZz-h13.js} +18 -18
  153. package/dist/chunks/pagination.8BZz-h13.js.map +1 -0
  154. package/dist/chunks/{payment-method.CyQwoqEe.js → payment-method.CoXB0ZAW.js} +2 -2
  155. package/dist/chunks/{payment-method.CyQwoqEe.js.map → payment-method.CoXB0ZAW.js.map} +1 -1
  156. package/dist/chunks/{popover.BDaf6hmW.js → popover.hzeFBXzL.js} +4 -4
  157. package/dist/chunks/{popover.BDaf6hmW.js.map → popover.hzeFBXzL.js.map} +1 -1
  158. package/dist/chunks/{radio-group.OaYz1wJf.js → radio-group.CZaVmmUe.js} +8 -8
  159. package/dist/chunks/radio-group.CZaVmmUe.js.map +1 -0
  160. package/dist/chunks/{search-bar.eC-crOww.js → search-bar.osJS8Cs-.js} +31 -31
  161. package/dist/chunks/search-bar.osJS8Cs-.js.map +1 -0
  162. package/dist/chunks/{secondary-nav.1xw-o8OR.js → secondary-nav.o_1YCWAx.js} +3 -3
  163. package/dist/chunks/{secondary-nav.1xw-o8OR.js.map → secondary-nav.o_1YCWAx.js.map} +1 -1
  164. package/dist/chunks/{segmented-control.BZm0u0wJ.js → segmented-control.uVH5ahVY.js} +13 -13
  165. package/dist/chunks/segmented-control.uVH5ahVY.js.map +1 -0
  166. package/dist/chunks/{selection-card-group.BLPaJy5U.js → selection-card-group.BRFV5iQl.js} +13 -13
  167. package/dist/chunks/selection-card-group.BRFV5iQl.js.map +1 -0
  168. package/dist/chunks/{sidepanel.ZYT_vzbj.js → sidepanel.GSooM2yT.js} +7 -7
  169. package/dist/chunks/sidepanel.GSooM2yT.js.map +1 -0
  170. package/dist/chunks/{status.types.dPBUkNia.js → status.types.UkYKuQHH.js} +2 -2
  171. package/dist/chunks/{status.types.dPBUkNia.js.map → status.types.UkYKuQHH.js.map} +1 -1
  172. package/dist/chunks/{step.CjJtlBk6.js → step.D3-7YL7-.js} +3 -3
  173. package/dist/chunks/{step.CjJtlBk6.js.map → step.D3-7YL7-.js.map} +1 -1
  174. package/dist/chunks/{structured-list-item.D7D8VpQY.js → structured-list-item.JDICCHjN.js} +6 -6
  175. package/dist/chunks/{structured-list-item.D7D8VpQY.js.map → structured-list-item.JDICCHjN.js.map} +1 -1
  176. package/dist/chunks/{summary-grid-item-custom.v0QSLZKT.js → summary-grid-item-custom.C-8hXJcP.js} +5 -5
  177. package/dist/chunks/{summary-grid-item-custom.v0QSLZKT.js.map → summary-grid-item-custom.C-8hXJcP.js.map} +1 -1
  178. package/dist/chunks/tabs.BiTr_PdY.js +154 -0
  179. package/dist/chunks/tabs.BiTr_PdY.js.map +1 -0
  180. package/dist/chunks/tag.DSFSfnAf.js +44 -0
  181. package/dist/chunks/tag.DSFSfnAf.js.map +1 -0
  182. package/dist/chunks/{textarea.C0IMS5XS.js → textarea.CrYT_JJ-.js} +6 -6
  183. package/dist/chunks/textarea.CrYT_JJ-.js.map +1 -0
  184. package/dist/chunks/{timeline-item.Dmd78uwQ.js → timeline-item.BS_P9oEW.js} +11 -11
  185. package/dist/chunks/{timeline-item.Dmd78uwQ.js.map → timeline-item.BS_P9oEW.js.map} +1 -1
  186. package/dist/chunks/{toast.3LxCDPiT.js → toast.C7L41pAm.js} +4 -4
  187. package/dist/chunks/{toast.3LxCDPiT.js.map → toast.C7L41pAm.js.map} +1 -1
  188. package/dist/chunks/{toggle-button.bt3zBzdC.js → toggle-button.D5Ann2NH.js} +2 -2
  189. package/dist/chunks/{toggle-button.bt3zBzdC.js.map → toggle-button.D5Ann2NH.js.map} +1 -1
  190. package/dist/chunks/{toggle.CLgGH4Jr.js → toggle.INRYdQzz.js} +4 -4
  191. package/dist/chunks/toggle.INRYdQzz.js.map +1 -0
  192. package/dist/chunks/{tooltip.BN6fOXzi.js → tooltip.CS2Gij6x.js} +18 -17
  193. package/dist/chunks/tooltip.CS2Gij6x.js.map +1 -0
  194. package/dist/chunks/{tutorial.D64_0i0-.js → tutorial.D_38Tuq-.js} +5 -5
  195. package/dist/chunks/{tutorial.D64_0i0-.js.map → tutorial.D_38Tuq-.js.map} +1 -1
  196. package/dist/chunks/typography.Bu_WAKdf.js +86 -0
  197. package/dist/chunks/typography.Bu_WAKdf.js.map +1 -0
  198. package/dist/chunks/{use-bento-toast-controller.DLKySNHd.js → use-bento-toast-controller.BVVMh0wc.js} +3 -3
  199. package/dist/chunks/use-bento-toast-controller.BVVMh0wc.js.map +1 -0
  200. package/dist/chunks/{use-cached-selected-values.BOAumEi7.js → use-cached-selected-values.DxHmVtct.js} +6 -6
  201. package/dist/chunks/{use-cached-selected-values.BOAumEi7.js.map → use-cached-selected-values.DxHmVtct.js.map} +1 -1
  202. package/dist/code-snippet.js +1 -1
  203. package/dist/country.js +1 -1
  204. package/dist/currency.js +1 -1
  205. package/dist/dashboard-template.js +1 -1
  206. package/dist/dashed-underline.js +1 -1
  207. package/dist/data-grid-template.js +1 -1
  208. package/dist/data-grid.js +1 -1
  209. package/dist/date-picker.js +2 -2
  210. package/dist/date-range-picker.js +2 -2
  211. package/dist/date.js +1 -1
  212. package/dist/dropdown.js +4 -4
  213. package/dist/empty-state.js +1 -1
  214. package/dist/filter-bar.js +1 -1
  215. package/dist/form-layout.js +1 -1
  216. package/dist/header.js +1 -1
  217. package/dist/index.js +316 -299
  218. package/dist/index.js.map +1 -1
  219. package/dist/info-icon.js +1 -1
  220. package/dist/input-field.js +1 -1
  221. package/dist/inspector.js +1 -1
  222. package/dist/internal.js +21 -19
  223. package/dist/internal.js.map +1 -1
  224. package/dist/link.js +1 -1
  225. package/dist/menu.js +1 -1
  226. package/dist/modal-fullscreen.js +1 -1
  227. package/dist/modal.js +2 -2
  228. package/dist/pagination.js +1 -1
  229. package/dist/payment-method.js +1 -1
  230. package/dist/popover.js +1 -1
  231. package/dist/radio-group.js +1 -1
  232. package/dist/search-bar.js +2 -2
  233. package/dist/secondary-nav.js +1 -1
  234. package/dist/segmented-control.js +1 -1
  235. package/dist/selection-card.js +1 -1
  236. package/dist/sidepanel.js +1 -1
  237. package/dist/status.js +1 -1
  238. package/dist/stepper.js +1 -1
  239. package/dist/structured-list.js +1 -1
  240. package/dist/styles/bento-dark.css +1810 -0
  241. package/dist/styles/bento-light.css +1809 -0
  242. package/dist/styles/bento.css +69 -7
  243. package/dist/styles/legacy.css +67 -5
  244. package/dist/styles/styleguide.css +69 -7
  245. package/dist/summary-grid.js +1 -1
  246. package/dist/tabs.js +1 -1
  247. package/dist/tag.js +1 -1
  248. package/dist/textarea.js +1 -1
  249. package/dist/timeline.js +1 -1
  250. package/dist/toast.js +1 -1
  251. package/dist/toggle.js +1 -1
  252. package/dist/tutorial.js +1 -1
  253. package/dist/typography.js +1 -1
  254. package/dist/web-types.json +61 -40
  255. package/package.json +3 -3
  256. package/dist/chunks/accordion-item.BDNSykyK.js.map +0 -1
  257. package/dist/chunks/base-modal.BaHkDH5f.js.map +0 -1
  258. package/dist/chunks/calendar.BFrqPClW.js.map +0 -1
  259. package/dist/chunks/card.lWLgpCWM.js.map +0 -1
  260. package/dist/chunks/checkbox-group.C0cqbJWx.js.map +0 -1
  261. package/dist/chunks/checkbox-input.BH7MGdMj.js.map +0 -1
  262. package/dist/chunks/checkbox.B3u_hzUo.js.map +0 -1
  263. package/dist/chunks/data-grid.BCTcokYm.js.map +0 -1
  264. package/dist/chunks/date-picker.CPG0zksD.js.map +0 -1
  265. package/dist/chunks/dropdown-default-textbox.kQ3pHsZe.js.map +0 -1
  266. package/dist/chunks/dropdown.B4KMM58m.js.map +0 -1
  267. package/dist/chunks/filter-bar.Co2YeUUg.js.map +0 -1
  268. package/dist/chunks/info-icon.DNn4oZsB.js.map +0 -1
  269. package/dist/chunks/input-field.DBrzeKBj.js.map +0 -1
  270. package/dist/chunks/inspector.types.lu_MoQn5.js.map +0 -1
  271. package/dist/chunks/modal-fullscreen.mIlp0LnL.js.map +0 -1
  272. package/dist/chunks/pagination.By-p9MjL.js.map +0 -1
  273. package/dist/chunks/radio-group.OaYz1wJf.js.map +0 -1
  274. package/dist/chunks/search-bar.eC-crOww.js.map +0 -1
  275. package/dist/chunks/segmented-control.BZm0u0wJ.js.map +0 -1
  276. package/dist/chunks/selection-card-group.BLPaJy5U.js.map +0 -1
  277. package/dist/chunks/sidepanel.ZYT_vzbj.js.map +0 -1
  278. package/dist/chunks/tabs.D4ORafqH.js +0 -140
  279. package/dist/chunks/tabs.D4ORafqH.js.map +0 -1
  280. package/dist/chunks/tag.Bo_6RnVE.js +0 -64
  281. package/dist/chunks/tag.Bo_6RnVE.js.map +0 -1
  282. package/dist/chunks/textarea.C0IMS5XS.js.map +0 -1
  283. package/dist/chunks/toggle.CLgGH4Jr.js.map +0 -1
  284. package/dist/chunks/tooltip.BN6fOXzi.js.map +0 -1
  285. package/dist/chunks/typography.CqQaHXhq.js +0 -76
  286. package/dist/chunks/typography.CqQaHXhq.js.map +0 -1
  287. package/dist/chunks/unique-id.XFfoKuc2.js +0 -28
  288. package/dist/chunks/unique-id.XFfoKuc2.js.map +0 -1
  289. package/dist/chunks/use-bento-toast-controller.DLKySNHd.js.map +0 -1
@@ -1,14 +1,14 @@
1
1
  import { defineComponent as $, toRefs as k, computed as o, ref as N } from "vue";
2
- import { B as w } from "./typography.CqQaHXhq.js";
3
- import { u as R } from "./use-default-slot-validator.BDn0wkYP.js";
4
- import { u as j } from "./use-has-slot.C9lQZ6nz.js";
5
- import { g as C } from "./unique-id.XFfoKuc2.js";
2
+ import { B as w } from "./typography.Bu_WAKdf.js";
3
+ import { a as R, C } from "./checkbox-input.DgfJgZaI.js";
4
+ import { u as j } from "./use-default-slot-validator.BDn0wkYP.js";
5
+ import { u as F } from "./use-has-slot.C9lQZ6nz.js";
6
+ import { g as B } from "./generate-uid.D-HFI38h.js";
6
7
  import { g as f } from "./get-slot-text.Cgn-E48s.js";
7
- import { u as F } from "./i18n.BQkEbtPM.js";
8
- import { u as z } from "./aria-label.CaUURpnB.js";
9
- import { B as H } from "./tag.Bo_6RnVE.js";
10
- import { a as J, C as B } from "./checkbox-input.BH7MGdMj.js";
11
- import { E as O } from "./error-message.GCYDEzGL.js";
8
+ import { u as z } from "./i18n.BQkEbtPM.js";
9
+ import { u as H } from "./aria-label.CaUURpnB.js";
10
+ import { B as J } from "./tag.DSFSfnAf.js";
11
+ import { E as O } from "./error-message.Btn_7Igx.js";
12
12
  import { n as Y } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
13
13
  import "../assets/checkbox.css";
14
14
  var i = /* @__PURE__ */ ((a) => (a.UPDATE = "update:model-value", a.INPUT = "input", a))(i || {});
@@ -32,9 +32,9 @@ const K = {
32
32
  name: "bento-checkbox",
33
33
  i18n: { messages: K },
34
34
  components: {
35
- BentoTag: H,
35
+ BentoTag: J,
36
36
  BentoTypography: w,
37
- CheckboxInput: J,
37
+ CheckboxInput: R,
38
38
  ErrorMessage: O
39
39
  },
40
40
  model: { prop: "modelValue" },
@@ -103,8 +103,8 @@ const K = {
103
103
  },
104
104
  emits: [i.UPDATE, i.INPUT],
105
105
  setup(a, { attrs: e, emit: t, slots: r }) {
106
- const { t: m } = F(), h = C("description"), _ = C("error"), d = j(r), { disabled: v, indeterminate: A, modelValue: b, readonly: E, value: I } = k(a), y = f(r)("default"), g = f(r)("description");
107
- R("bento-checkbox", r.default, r.description);
106
+ const { t: m } = z(), h = B("description"), _ = B("error"), d = F(r), { disabled: v, indeterminate: A, modelValue: b, readonly: E, value: I } = k(a), y = f(r)("default"), g = f(r)("description");
107
+ j("bento-checkbox", r.default, r.description);
108
108
  const l = o(() => Array.isArray(b.value)), s = o(() => l.value ? b.value.some((u) => u === I.value) : b.value), n = o(() => A.value), x = o(
109
109
  () => !a.disabled && !a.readonly && (a.hasError || !!a.errorMessage)
110
110
  ), S = o(() => !a.disabled && !a.readonly && !!a.errorMessage), c = o(() => d("content")), p = o(() => (n == null ? void 0 : n.value) || (s == null ? void 0 : s.value)), q = o(
@@ -113,14 +113,14 @@ const K = {
113
113
  () => n.value ? "mixed" : `${!!s.value}`
114
114
  ), L = o(
115
115
  () => `${S.value ? _ : ""} ${y && g ? h : ""}`.trim() || null
116
- ), T = N(e["aria-label"]), { ariaLabel: M } = k(a), P = z({
116
+ ), T = N(e["aria-label"]), { ariaLabel: M } = k(a), P = H({
117
117
  ariaLabel: T.value,
118
118
  // TODO: take this line away when the aria-label props is removed
119
119
  label: M,
120
120
  defaultFallback: d("default") ? f(r)("default") : m("checkbox")
121
121
  }), U = o(() => x.value), V = o(() => ({
122
- [`b-checkbox--${B.DISABLED}`]: v.value,
123
- [`b-checkbox--${B.READONLY}`]: E.value
122
+ [`b-checkbox--${C.DISABLED}`]: v.value,
123
+ [`b-checkbox--${C.READONLY}`]: E.value
124
124
  }));
125
125
  return {
126
126
  // Values
@@ -158,11 +158,11 @@ var W = function() {
158
158
  X,
159
159
  !1,
160
160
  null,
161
- "a911cfdc"
161
+ "8c885471"
162
162
  );
163
163
  const be = Z.exports;
164
164
  export {
165
165
  be as B,
166
166
  i as a
167
167
  };
168
- //# sourceMappingURL=checkbox.B3u_hzUo.js.map
168
+ //# sourceMappingURL=checkbox.DNsPAfq5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.DNsPAfq5.js","sources":["../../../core/src/components/checkbox/checkbox.types.ts","../../src/components/checkbox/checkbox.vue"],"sourcesContent":["import type { BentoTagProps } from '@/core/components/tag/tag.types';\nimport type {\n CheckboxInputType as BentoCheckboxType,\n MultiCheckboxInputType as BentoMultiCheckboxType,\n} from '@/core/components/internal/checkbox-input/checkbox-input.types';\nimport { CheckboxInputState as BentoCheckboxState } from '@/core/components/internal/checkbox-input/checkbox-input.types';\n\nexport { BentoCheckboxState, BentoCheckboxType, BentoMultiCheckboxType };\n\nexport enum BentoCheckboxEvent {\n UPDATE = 'update:model-value',\n INPUT = 'input',\n}\n\nexport type BentoCheckboxTag = BentoTagProps;\n","<template>\n <label class=\"b-checkbox\" :class=\"conditionalClass\">\n <checkbox-input\n ref=\"input\"\n v-bind=\"$attrs\"\n :aria-label=\"computedAriaLabel\"\n :aria-describedby=\"ariaDescribedBy\"\n :disabled=\"disabled\"\n :has-error=\"shouldShowError\"\n :indeterminate=\"isIndeterminate\"\n :value=\"value\"\n :model-value=\"modelValue\"\n :readonly=\"readonly\"\n @update:model-value=\"onChange\"\n />\n <span v-if=\"hasSlot('default') || shouldShowErrorMessage\" class=\"b-checkbox__text\">\n <bento-typography v-if=\"hasSlot('default')\" class=\"b-checkbox__label\" el=\"span\" variant=\"body\">\n <span><slot /></span>\n <bento-typography v-if=\"optional\" class=\"b-checkbox__label-requirement\" el=\"span\"\n >({{ t('optional') }})</bento-typography\n >\n <bento-typography v-else-if=\"required\" class=\"b-checkbox__label-requirement\" el=\"span\"\n >({{ t('required') }})</bento-typography\n >\n <bento-tag v-if=\"tag\" class=\"b-checkbox__label-tag\" v-bind=\"tag\" />\n </bento-typography>\n <bento-typography\n v-if=\"hasSlot('default') && hasSlot('description')\"\n :id=\"descriptionId\"\n class=\"b-checkbox__description\"\n el=\"span\"\n variant=\"body\"\n >\n <slot name=\"description\"></slot>\n </bento-typography>\n <error-message v-if=\"shouldShowErrorMessage\" :id=\"errorId\" :error-message=\"errorMessage\" />\n\n <bento-typography v-if=\"contentSlotAvailable\" class=\"b-checkbox__content\" el=\"span\" variant=\"body\">\n <slot name=\"content\"></slot>\n </bento-typography>\n </span>\n </label>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, PropType, ref, toRefs } from 'vue';\n import {\n BentoCheckboxEvent,\n BentoCheckboxState,\n BentoCheckboxTag,\n BentoCheckboxType,\n BentoMultiCheckboxType,\n } from '@/core/components/checkbox/checkbox.types';\n import { BentoTypography } from '@/components/typography';\n import { CheckboxInput } from '@/components/internal/checkbox-input';\n import { ErrorMessage } from '@/components/internal/error-message';\n import type { HTMLAttributes } from 'vue/types/jsx';\n import { useDefaultSlotValidator, useHasSlot } from '@/composables';\n import { generateUid } from '@/core/utils/ts';\n import { getSlotText } from '@/utils/ts/get-slot-text';\n import { useI18n } from '@/utils/ts/i18n';\n import { useAriaLabel } from '@/utils/ts/aria-label';\n import { BentoTag } from '@/components/tag';\n import { BentoCheckboxGroupItems } from '@/core/components/checkbox-group/checkbox-group.types';\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n /**\n * Checkboxes are used to make a binary choice about an option.\n * The label tag area is also clickable.\n *\n * @usage\n * import { BentoCheckbox } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoCheckbox },\n * template: `\n * <bento-checkbox>\n * Label text\n * <template #description>Sub label text</template>\n * </bento-checkbox>\n * `,\n * }\n */\n export default defineComponent({\n name: 'bento-checkbox',\n i18n: { messages },\n components: {\n BentoTag,\n BentoTypography,\n CheckboxInput,\n ErrorMessage,\n },\n model: { prop: 'modelValue' },\n props: {\n /**\n * @deprecated from version 2.0.0. Use the aria-label attribute instead.\n */\n /**\n * Accessible name for the radio button component. It is strongly recommended to pas this value in case this component is used without a label.\n */\n ariaLabel: { type: String, default: null },\n\n /**\n * Setting this property to true will disable the checkbox in your form.\n */\n disabled: { type: Boolean, default: false },\n\n /**\n * Renders the checkbox in an error state with an error message.\n */\n errorMessage: { type: String, default: null },\n\n /**\n * Setting this property to true will show the checkbox in error state.\n */\n hasError: { type: Boolean, default: false },\n\n /**\n * The :indeterminate CSS pseudo-class represents any form element\n * whose state is indeterminate, such as checkboxes which have their HTML indeterminate attribute\n * set to true, radio buttons which are members of a group in which all radio buttons are unchecked,\n * and indeterminate <progress> elements. https://developer.mozilla.org/en-US/docs/Web/CSS/:indeterminate\n * This property lets you control the input.indeterminate native property.\n */\n indeterminate: { type: Boolean, default: false },\n\n /**\n * When handling a single checkbox with a singular state, use a boolean.\n *\n * When handling multiple checkboxes, use an array of keys.\n * These keys exist as a set \"value\" prop for each checkbox.\n */\n modelValue: {\n type: [Boolean, Array] as PropType<BentoCheckboxType | BentoCheckboxGroupItems>,\n default: false,\n },\n\n /**\n * Highlights the checkbox is optional.\n */\n optional: { type: Boolean, default: false },\n\n /**\n * Setting this property to true will set the checkbox to read only state.\n */\n readonly: { type: Boolean, default: false },\n\n /**\n * Highlights the checkbox is required.\n */\n required: { type: Boolean, default: false },\n\n /**\n * Sets the properties of the BentoTag component that is placed next to the label.\n * {@see BentoTag}\n */\n tag: { type: Object as PropType<BentoCheckboxTag>, default: undefined },\n\n /**\n * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n *\n * In the case of multiple checkboxes this value is used as a unique key.\n */\n value: { type: [String, Number], default: null },\n },\n emits: [BentoCheckboxEvent.UPDATE, BentoCheckboxEvent.INPUT],\n setup(props, { attrs, emit, slots }) {\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n const descriptionId = generateUid('description');\n const errorId = generateUid('error');\n const hasSlot = useHasSlot(slots);\n\n const { disabled, indeterminate, modelValue, readonly, value } = toRefs(props);\n\n const defaultSlotValue = getSlotText(slots)('default');\n const descriptionSlotValue = getSlotText(slots)('description');\n\n useDefaultSlotValidator('bento-checkbox', slots.default, slots.description);\n\n const isCheckboxGroup = computed(() => Array.isArray(modelValue.value));\n const isChecked = computed(() => {\n if (!isCheckboxGroup.value) {\n return modelValue.value as boolean;\n }\n\n return (modelValue.value as BentoMultiCheckboxType).some(item => item === value.value);\n });\n const isIndeterminate = computed(() => indeterminate.value);\n\n const shouldShowError = computed(\n () => !props.disabled && !props.readonly && (props.hasError || !!props.errorMessage)\n );\n const shouldShowErrorMessage = computed(() => !props.disabled && !props.readonly && !!props.errorMessage);\n\n // Content slot logic\n const hasContentSlot = computed(() => hasSlot('content'));\n const isCheckedOrIntermediate = computed(() => isIndeterminate?.value || isChecked?.value);\n const contentSlotAvailable = computed(\n () => hasContentSlot?.value && isCheckboxGroup?.value && isCheckedOrIntermediate?.value\n );\n\n // ARIA fields\n const ariaChecked = computed<HTMLAttributes['aria-checked']>(() =>\n isIndeterminate.value ? 'mixed' : `${!!isChecked.value}`\n );\n\n const ariaDescribedBy = computed<HTMLAttributes['aria-describedby']>(\n () =>\n `${shouldShowErrorMessage.value ? errorId : ''} ${\n defaultSlotValue && descriptionSlotValue ? descriptionId : ''\n }`.trim() || null\n );\n\n const ariaLabelAttribute = ref(attrs['aria-label']);\n const { ariaLabel } = toRefs(props);\n const computedAriaLabel = useAriaLabel({\n ariaLabel: ariaLabelAttribute.value as string,\n // TODO: take this line away when the aria-label props is removed\n label: ariaLabel,\n defaultFallback: hasSlot('default') ? (getSlotText(slots)('default') as string) : t('checkbox'),\n });\n\n const ariaInvalid = computed<HTMLAttributes['aria-invalid']>(() => shouldShowError.value);\n\n const conditionalClass = computed(() => ({\n [`b-checkbox--${BentoCheckboxState.DISABLED}`]: disabled.value,\n [`b-checkbox--${BentoCheckboxState.READONLY}`]: readonly.value,\n }));\n\n const onChange = (newValue: BentoCheckboxType | BentoCheckboxGroupItems) => {\n if (disabled.value) {\n return;\n }\n emit(BentoCheckboxEvent.UPDATE, newValue);\n emit(BentoCheckboxEvent.INPUT, newValue);\n };\n\n return {\n // Values\n descriptionId,\n errorId,\n ariaChecked,\n ariaDescribedBy,\n ariaInvalid,\n computedAriaLabel,\n conditionalClass,\n defaultSlotValue,\n descriptionSlotValue,\n isCheckboxGroup,\n isChecked,\n isIndeterminate,\n shouldShowError,\n shouldShowErrorMessage,\n contentSlotAvailable,\n hasContentSlot,\n\n // Methods\n hasSlot,\n onChange,\n\n t,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"@/core/components/checkbox/checkbox.scss\" />\n"],"names":["BentoCheckboxEvent","BentoCheckboxEvent2","_sfc_main","defineComponent","messages","BentoTag","BentoTypography","CheckboxInput","ErrorMessage","props","attrs","emit","slots","t","useI18n","descriptionId","generateUid","errorId","hasSlot","useHasSlot","disabled","indeterminate","modelValue","readonly","value","toRefs","defaultSlotValue","getSlotText","descriptionSlotValue","useDefaultSlotValidator","isCheckboxGroup","computed","isChecked","item","isIndeterminate","shouldShowError","shouldShowErrorMessage","hasContentSlot","isCheckedOrIntermediate","contentSlotAvailable","ariaChecked","ariaDescribedBy","ariaLabelAttribute","ref","ariaLabel","computedAriaLabel","useAriaLabel","ariaInvalid","conditionalClass","CheckboxInputState","newValue"],"mappings":"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"}
@@ -1,15 +1,15 @@
1
1
  import { defineComponent as j, ref as d, computed as l, shallowRef as x, onMounted as R, watch as D, watchEffect as J } from "vue";
2
2
  import { s as P, H as V, t as n, j as G, x as $, a as U, b as W, p as z, E as F, h as X, k as Y, i as K, c as L, d as N, l as q, e as Q, C as h } from "./codemirror.BlV6WO5w.js";
3
3
  import { B as Z, a as ee, b as te, c as ne } from "./es6.BvpG4Oi6.js";
4
- import { B as ae } from "./dropdown.B4KMM58m.js";
5
- import { B as oe } from "./button.79klAcOK.js";
6
- import { B as se } from "./typography.CqQaHXhq.js";
4
+ import { B as ae } from "./dropdown.DpiHAE1l.js";
5
+ import { B as oe } from "./button.PIszagl6.js";
6
+ import { B as se } from "./typography.Bu_WAKdf.js";
7
7
  import { B as ie } from "./loading-indicator.DXc7I1Lm.js";
8
8
  import { u as le } from "./i18n.BQkEbtPM.js";
9
9
  import { E as re } from "./expand.CwwKq7Uc.js";
10
- import { h as ce } from "./base-modal.BaHkDH5f.js";
11
- import { C as de } from "./copy.CmxcGt77.js";
12
- import { B as ge } from "./tooltip.BN6fOXzi.js";
10
+ import { h as ce } from "./base-modal.D9nvAFwb.js";
11
+ import { C as de } from "./copy.fvajyLGQ.js";
12
+ import { B as ge } from "./tooltip.CS2Gij6x.js";
13
13
  import { n as ue } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
14
14
  import "../assets/code-snippet.css";
15
15
  const pe = {
@@ -312,4 +312,4 @@ export {
312
312
  r as b,
313
313
  De as c
314
314
  };
315
- //# sourceMappingURL=code-snippet.BgjvWTHP.js.map
315
+ //# sourceMappingURL=code-snippet.BPKC0Bxs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"code-snippet.BgjvWTHP.js","sources":["../../src/components/code-snippet/highlight.ts","../../src/components/code-snippet/code-snippet.types.ts","../../src/components/code-snippet/utils/get-lang-loader.ts","../../src/components/code-snippet/utils/indent-same-as-line-before-extension.ts","../../src/components/code-snippet/code-snippet.vue"],"sourcesContent":["import { HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport { tags as t } from '@lezer/highlight';\nimport {\n BCodeSnippetCodeAreaHighlightBlue,\n BCodeSnippetCodeAreaHighlightGreen,\n BCodeSnippetCodeAreaHighlightOrange,\n BCodeSnippetCodeAreaHighlightRed,\n} from '@adyen/bento-design-tokens/dist/js/bento/es6';\nimport { BentoCodeSnippetSupportedLanguage } from './code-snippet.types';\n\nconst lightThemeColors = {\n red: BCodeSnippetCodeAreaHighlightRed,\n orange: BCodeSnippetCodeAreaHighlightOrange,\n green: BCodeSnippetCodeAreaHighlightGreen,\n blue: BCodeSnippetCodeAreaHighlightBlue,\n invalid: '#ffffff',\n};\n\nconst highlightStyle = (colors, language: BentoCodeSnippetSupportedLanguage | `${BentoCodeSnippetSupportedLanguage}`) =>\n HighlightStyle.define([\n {\n tag: t.keyword,\n color: colors.red,\n },\n {\n tag: [t.name, t.deleted, t.character, t.propertyName, t.macroName],\n color: colors.green,\n },\n {\n tag: [t.function(t.variableName), t.labelName],\n color: colors.blue,\n },\n {\n tag: [t.color, t.constant(t.name), t.standard(t.name)],\n color: colors.red,\n },\n {\n tag: [t.definition(t.name), ...(language !== 'json' ? [t.separator] : [])],\n color: colors.red,\n },\n {\n tag: [t.typeName, t.className, t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace],\n color: colors.orange,\n },\n {\n tag: [t.operator, t.operatorKeyword, t.url, t.escape, t.regexp, t.link, t.special(t.string)],\n color: colors.blue,\n },\n {\n tag: [t.meta, t.comment],\n color: colors.orange,\n },\n {\n tag: t.strong,\n fontWeight: 'bold',\n },\n {\n tag: t.emphasis,\n fontStyle: 'italic',\n },\n {\n tag: t.strikethrough,\n textDecoration: 'line-through',\n },\n {\n tag: t.link,\n color: colors.orange,\n textDecoration: 'underline',\n },\n {\n tag: t.heading,\n fontWeight: 'bold',\n color: colors.blue,\n },\n {\n tag: [t.atom, t.bool, t.special(t.variableName)],\n color: colors.red,\n },\n {\n tag: [t.processingInstruction, t.string, t.inserted],\n color: colors.blue,\n },\n {\n tag: t.invalid,\n color: colors.invalid,\n },\n ]);\n\nexport const lightThemeHighlight = (\n language: BentoCodeSnippetSupportedLanguage | `${BentoCodeSnippetSupportedLanguage}`\n) => syntaxHighlighting(highlightStyle(lightThemeColors, language));\n","/**\n * @deprecated for usage with properties since version 2.0. Use the string literal instead.\n */\nexport enum BentoCodeSnippetVariant {\n INLINE = 'inline',\n SINGLELINE = 'singleline',\n MULTILINE = 'multiline',\n}\n\n// These supported types need to be kept in line with the ones in packages/vue2/src/components/code-snippet/composables/useLanguage.ts function and vice-versa\n/**\n * @deprecated for usage with properties since version 2.0. Use the string literal instead.\n */\nexport enum BentoCodeSnippetSupportedLanguage {\n JSON = 'json',\n XML = 'xml',\n JAVA = 'java',\n JAVASCRIPT = 'javascript',\n PYTHON = 'python',\n}\n\nexport enum BentoCodeSnippetEvent {\n ACTION = 'action',\n CHANGE = 'change',\n}\n","import { BentoCodeSnippetSupportedLanguage } from '@/components/code-snippet/code-snippet.types';\nimport { json } from '@codemirror/lang-json';\nimport { xml } from '@codemirror/lang-xml';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { java } from '@codemirror/lang-java';\nimport { python } from '@codemirror/lang-python';\n\n/**\n * TODO: This should be handled with dynamic imports,\n * without relying on importing every single language/package available.\n * These supported types need to be kept in line with the ones in packages/vue2/src/components/code-snippet/code-snippet.types.ts enum\n */\nconst importsMap = {\n [BentoCodeSnippetSupportedLanguage.JSON]: json,\n [BentoCodeSnippetSupportedLanguage.XML]: xml,\n [BentoCodeSnippetSupportedLanguage.JAVASCRIPT]: javascript,\n [BentoCodeSnippetSupportedLanguage.JAVA]: java,\n [BentoCodeSnippetSupportedLanguage.PYTHON]: python,\n};\n\n/**\n * Returns a language loder for `CodeMirror`.\n * Supported languages: json, xml, javascript & java\n *\n * @param language Language to be used\n * @returns Language configuration loader to be used in codemirror\n */\nexport const getLangLoader = (language: BentoCodeSnippetSupportedLanguage | `${BentoCodeSnippetSupportedLanguage}`) => {\n const loadLang = async () => importsMap[language];\n\n return loadLang;\n};\n","import { EditorSelection, type EditorState, type SelectionRange } from '@codemirror/state';\n\n/**\n * Calculate indentation for a new line based on line before it.\n * @param state - The editor state\n * @param line - the selection range, in this case one line\n * @returns the indentation string to be pre-pended on a new line.\n */\nconst getIndentation = (state: EditorState, line: SelectionRange) => {\n const currentLine = state.doc.lineAt(line.from);\n const indentMatch = /^\\s*/.exec(currentLine.text);\n return indentMatch ? indentMatch[0] : '';\n};\n\n/**\n * This extension to codemirror will, upon pressing the 'Enter' key, indent the new line\n * the same as the line before it.\n */\nexport const INDENT_SAME_AS_LINE_BEFORE = {\n key: 'Enter',\n run: ({ state, dispatch }) => {\n const changes = state.changeByRange(range => {\n const indentation = getIndentation(state, range);\n const newText = `\\n${indentation}`;\n return {\n changes: { from: range.from, to: range.to, insert: newText },\n range: EditorSelection.cursor(range.from + newText.length),\n };\n });\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: 'input' }));\n return true;\n },\n};\n\nexport default INDENT_SAME_AS_LINE_BEFORE;\n","<template>\n <div class=\"b-code-snippet\" :class=\"conditionalClasses\">\n <section v-if=\"!isInlineVariant\" class=\"b-code-snippet__action-bar\">\n <div class=\"b-code-snippet__action-bar--start\">\n <bento-dropdown\n v-if=\"availableLanguages.length > 0\"\n v-model=\"selectedLanguage\"\n v-bind=\"$props\"\n :disabled=\"availableLanguages.length === 1\"\n :items=\"availableLanguages\"\n class=\"b-code-snippet__language-picker\"\n @input=\"handleChangeLanguage\"\n />\n <bento-typography el=\"span\" stronger>\n {{ displayedLang }}\n </bento-typography>\n </div>\n <div class=\"b-code-snippet__action-bar--end\">\n <bento-loading-indicator v-if=\"loading\" />\n <copy v-if=\"currentContents !== null\" class=\"b-structured-list__icon\" :text=\"currentContents\" />\n <bento-button\n v-if=\"expandable\"\n variant=\"tertiary\"\n condensed\n :aria-label=\"t('expand')\"\n @click=\"showModal = true\"\n >\n <template #iconLeft>\n <expand-icon />\n </template>\n </bento-button>\n <bento-button v-if=\"actionable\" variant=\"primary\" tertiary condensed @click=\"onActionClicked\">\n <template #iconLeft>\n <bento-typography el=\"span\" class=\"b-code-snippet__action-button\">\n {{ runText }}\n </bento-typography>\n </template>\n </bento-button>\n </div>\n </section>\n <code v-if=\"content || editable\" class=\"b-code-snippet__code-area\">\n <div ref=\"container\" class=\"b-code-snippet__code-area-content\" :class=\"codeAreaContentConditionalClasses\" />\n </code>\n <section v-else>\n <slot name=\"empty-state\">\n <!-- TODO: switch with empty-state component when ready -->\n <div class=\"b-code-snippet__empty-state\">{{ t('nothingToDisplay') }}</div>\n </slot>\n </section>\n <base-modal\n v-if=\"expandable\"\n class=\"b-code-snippet__modal\"\n :hide-close-button=\"true\"\n :custom-padding=\"'0px'\"\n :is-dismissible=\"true\"\n :is-open=\"showModal\"\n size=\"large\"\n @close-modal=\"showModal = false\"\n >\n <template #content>\n <bento-code-snippet v-bind=\"{ ...$props, expandable: false }\" />\n </template>\n </base-modal>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, onMounted, PropType, ref, shallowRef, watch, watchEffect } from 'vue';\n import { EditorView, highlightActiveLine, keymap, lineNumbers } from '@codemirror/view';\n import { Compartment, EditorState } from '@codemirror/state';\n import { history, indentWithTab } from '@codemirror/commands';\n import { lightThemeHighlight } from './highlight';\n import { getLangLoader, INDENT_SAME_AS_LINE_BEFORE } from './utils';\n import { BentoDropdown } from '@/components/dropdown';\n import { BentoButton } from '@/components/button';\n import { BentoTypography } from '@/components/typography';\n import { BentoTooltipDirective } from '@/directives';\n import { BentoLoadingIndicator } from '@/components/loading-indicator';\n import { useI18n } from '@/utils/ts/i18n';\n import { Copy } from '@/internal';\n import ExpandIcon from '@adyen/ui-assets-icons-16/vue/expand';\n import {\n BentoCodeSnippetEvent,\n BentoCodeSnippetSupportedLanguage,\n BentoCodeSnippetVariant,\n } from '@/components/code-snippet/code-snippet.types';\n import BaseModal from '@/components/modal/components/base-modal/base-modal.vue';\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n /**\n * A code-snippet is a container to display code in a readable way.\n * Come with added functionalities like syntax highlighting, editing and actioning the code\n *\n * @example\n * import { BentoCodeSnippet } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoCodeSnippet },\n * template: `\n * <bento-code-snippet :variant=\"BentoCodeSnippetVariant.MULTILINE\" content=\"{ example: 1234 }\" />\n * `\n * }\n */\n export default defineComponent({\n i18n: { messages },\n name: 'bento-code-snippet',\n components: {\n BentoTypography,\n BentoButton,\n BentoDropdown,\n Copy,\n BaseModal,\n BentoLoadingIndicator,\n ExpandIcon,\n },\n directives: { BentoTooltipDirective },\n props: {\n /**\n * Defines the variant of code-snippet\n */\n variant: {\n type: String as PropType<BentoCodeSnippetVariant | `${BentoCodeSnippetVariant}`>,\n default: BentoCodeSnippetVariant.MULTILINE,\n validator: (value: BentoCodeSnippetVariant) => Object.values(BentoCodeSnippetVariant).includes(value),\n },\n /**\n * Language name for syntax highlighting rules\n */\n lang: {\n type: String as PropType<BentoCodeSnippetSupportedLanguage | `${BentoCodeSnippetSupportedLanguage}`>,\n default: BentoCodeSnippetSupportedLanguage.JSON,\n validator: (value: BentoCodeSnippetSupportedLanguage) =>\n Object.values(BentoCodeSnippetSupportedLanguage).includes(value),\n },\n /**\n * Label to show in the action-bar, describing the language\n */\n langLabel: {\n type: String,\n default: null,\n },\n /**\n * The code content\n */\n content: {\n type: String,\n default: '',\n },\n /**\n * Allows editing of the code-snippet content by the user\n */\n editable: {\n type: Boolean,\n default: false,\n },\n /**\n * Displays a button that when clicked will emit an action event\n * Leaves to the parent component the logic of what to do with it\n */\n actionable: {\n type: Boolean,\n default: false,\n },\n /**\n * Displays a button that can expand the codeblock into a modal to easily\n * view large blocks of code.\n */\n expandable: {\n type: Boolean,\n default: false,\n },\n /**\n * Displays a button that when clicked will emit a run event\n * Leaves to the parent component the logic of what to do with it\n */\n actionableText: {\n type: String,\n default: 'run',\n },\n /**\n * Toggles the loading indicator within the action bar\n */\n loading: {\n type: Boolean,\n default: false,\n },\n },\n emits: [BentoCodeSnippetEvent.ACTION, BentoCodeSnippetEvent.CHANGE],\n setup(props, { emit }) {\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n\n // language\n const selectedLanguage = ref<string | null>(null);\n const availableLanguages = []; // TODO: implement\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n const handleChangeLanguage = () => {};\n const displayedLang = computed(() => props.langLabel ?? props.lang.toUpperCase());\n\n const isInlineVariant = computed(() => props.variant === BentoCodeSnippetVariant.INLINE);\n\n const conditionalClasses = computed(() => ({\n 'b-code-snippet--inline': isInlineVariant.value,\n 'b-code-snippet--scrollable': !isInlineVariant.value,\n }));\n\n const codeAreaContentConditionalClasses = computed(() => ({\n 'b-code-snippet__code-area-content--editable': props.editable,\n }));\n\n const loadLang = getLangLoader(props.lang);\n\n const container = shallowRef<HTMLDivElement>();\n const editor = shallowRef<EditorView>();\n const languageConf = new Compartment();\n const editorTheme = new Compartment();\n const editorReadOnly = new Compartment();\n\n const currentContents = ref(null);\n const contentLength = ref(0);\n\n onMounted(async () => {\n const language = await loadLang();\n\n // alongside the updateListener plugin it acts as a watcher of changes to the editor state\n currentContents.value = props.content;\n const updateCurrentContents = ({ state }) => {\n currentContents.value = state.doc.toString();\n };\n\n const extensions = [\n highlightActiveLine(),\n keymap.of([indentWithTab, INDENT_SAME_AS_LINE_BEFORE]),\n languageConf.of(language()),\n editorTheme.of(lightThemeHighlight(props.lang)),\n\n editorReadOnly.of(EditorState.readOnly.of(!props.editable)),\n EditorView.updateListener.of(content => updateCurrentContents(content)),\n ];\n\n if (props.variant === 'multiline') {\n extensions.push([lineNumbers(), history()]);\n }\n\n const state = EditorState.create({\n doc: props.content,\n extensions: [...extensions],\n });\n contentLength.value = state.doc.length;\n\n editor.value = new EditorView({\n state,\n parent: container.value,\n });\n });\n watch(\n () => props.content,\n () => {\n if (props.content !== currentContents.value) {\n const upcomingContentLength = props.content.length;\n editor.value.dispatch({\n changes: {\n from: 0,\n to: contentLength.value,\n insert: props.content,\n },\n });\n contentLength.value = upcomingContentLength;\n }\n }\n );\n\n const runText = computed(() => t(props.actionableText as 'run'));\n const onActionClicked = () => {\n emit(BentoCodeSnippetEvent.ACTION, currentContents.value);\n };\n\n watchEffect(() => {\n if (currentContents.value !== null) {\n emit(BentoCodeSnippetEvent.CHANGE, currentContents.value);\n }\n });\n\n const showModal = ref(false);\n\n return {\n // Values\n availableLanguages,\n codeAreaContentConditionalClasses,\n conditionalClasses,\n container,\n currentContents,\n displayedLang,\n editor,\n selectedLanguage,\n showModal,\n isInlineVariant,\n\n // Methods\n handleChangeLanguage,\n onActionClicked,\n runText,\n\n // Translations\n t,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./code-snippet.scss\"></style>\n"],"names":["lightThemeColors","BCodeSnippetCodeAreaHighlightRed","BCodeSnippetCodeAreaHighlightOrange","BCodeSnippetCodeAreaHighlightGreen","BCodeSnippetCodeAreaHighlightBlue","highlightStyle","colors","language","HighlightStyle","tags","lightThemeHighlight","syntaxHighlighting","BentoCodeSnippetVariant","BentoCodeSnippetVariant2","BentoCodeSnippetSupportedLanguage","BentoCodeSnippetSupportedLanguage2","BentoCodeSnippetEvent","BentoCodeSnippetEvent2","importsMap","json","xml","javascript","java","python","getLangLoader","getIndentation","state","line","currentLine","indentMatch","INDENT_SAME_AS_LINE_BEFORE","dispatch","changes","range","newText","EditorSelection","_sfc_main","defineComponent","messages","BentoTypography","BentoButton","BentoDropdown","Copy","BaseModal","BentoLoadingIndicator","ExpandIcon","BentoTooltipDirective","value","props","emit","t","useI18n","selectedLanguage","ref","availableLanguages","handleChangeLanguage","displayedLang","computed","isInlineVariant","conditionalClasses","codeAreaContentConditionalClasses","loadLang","container","shallowRef","editor","languageConf","Compartment","editorTheme","editorReadOnly","currentContents","contentLength","onMounted","updateCurrentContents","state2","extensions","highlightActiveLine","keymap","indentWithTab","EditorState","EditorView","content","lineNumbers","history","watch","upcomingContentLength","runText","onActionClicked","watchEffect","showModal"],"mappings":"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"}
1
+ {"version":3,"file":"code-snippet.BPKC0Bxs.js","sources":["../../src/components/code-snippet/highlight.ts","../../src/components/code-snippet/code-snippet.types.ts","../../src/components/code-snippet/utils/get-lang-loader.ts","../../src/components/code-snippet/utils/indent-same-as-line-before-extension.ts","../../src/components/code-snippet/code-snippet.vue"],"sourcesContent":["import { HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport { tags as t } from '@lezer/highlight';\nimport {\n BCodeSnippetCodeAreaHighlightBlue,\n BCodeSnippetCodeAreaHighlightGreen,\n BCodeSnippetCodeAreaHighlightOrange,\n BCodeSnippetCodeAreaHighlightRed,\n} from '@adyen/bento-design-tokens/dist/js/bento/es6';\nimport { BentoCodeSnippetSupportedLanguage } from './code-snippet.types';\n\nconst lightThemeColors = {\n red: BCodeSnippetCodeAreaHighlightRed,\n orange: BCodeSnippetCodeAreaHighlightOrange,\n green: BCodeSnippetCodeAreaHighlightGreen,\n blue: BCodeSnippetCodeAreaHighlightBlue,\n invalid: '#ffffff',\n};\n\nconst highlightStyle = (colors, language: BentoCodeSnippetSupportedLanguage | `${BentoCodeSnippetSupportedLanguage}`) =>\n HighlightStyle.define([\n {\n tag: t.keyword,\n color: colors.red,\n },\n {\n tag: [t.name, t.deleted, t.character, t.propertyName, t.macroName],\n color: colors.green,\n },\n {\n tag: [t.function(t.variableName), t.labelName],\n color: colors.blue,\n },\n {\n tag: [t.color, t.constant(t.name), t.standard(t.name)],\n color: colors.red,\n },\n {\n tag: [t.definition(t.name), ...(language !== 'json' ? [t.separator] : [])],\n color: colors.red,\n },\n {\n tag: [t.typeName, t.className, t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace],\n color: colors.orange,\n },\n {\n tag: [t.operator, t.operatorKeyword, t.url, t.escape, t.regexp, t.link, t.special(t.string)],\n color: colors.blue,\n },\n {\n tag: [t.meta, t.comment],\n color: colors.orange,\n },\n {\n tag: t.strong,\n fontWeight: 'bold',\n },\n {\n tag: t.emphasis,\n fontStyle: 'italic',\n },\n {\n tag: t.strikethrough,\n textDecoration: 'line-through',\n },\n {\n tag: t.link,\n color: colors.orange,\n textDecoration: 'underline',\n },\n {\n tag: t.heading,\n fontWeight: 'bold',\n color: colors.blue,\n },\n {\n tag: [t.atom, t.bool, t.special(t.variableName)],\n color: colors.red,\n },\n {\n tag: [t.processingInstruction, t.string, t.inserted],\n color: colors.blue,\n },\n {\n tag: t.invalid,\n color: colors.invalid,\n },\n ]);\n\nexport const lightThemeHighlight = (\n language: BentoCodeSnippetSupportedLanguage | `${BentoCodeSnippetSupportedLanguage}`\n) => syntaxHighlighting(highlightStyle(lightThemeColors, language));\n","/**\n * @deprecated for usage with properties since version 2.0. Use the string literal instead.\n */\nexport enum BentoCodeSnippetVariant {\n INLINE = 'inline',\n SINGLELINE = 'singleline',\n MULTILINE = 'multiline',\n}\n\n// These supported types need to be kept in line with the ones in packages/vue2/src/components/code-snippet/composables/useLanguage.ts function and vice-versa\n/**\n * @deprecated for usage with properties since version 2.0. Use the string literal instead.\n */\nexport enum BentoCodeSnippetSupportedLanguage {\n JSON = 'json',\n XML = 'xml',\n JAVA = 'java',\n JAVASCRIPT = 'javascript',\n PYTHON = 'python',\n}\n\nexport enum BentoCodeSnippetEvent {\n ACTION = 'action',\n CHANGE = 'change',\n}\n","import { BentoCodeSnippetSupportedLanguage } from '@/components/code-snippet/code-snippet.types';\nimport { json } from '@codemirror/lang-json';\nimport { xml } from '@codemirror/lang-xml';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { java } from '@codemirror/lang-java';\nimport { python } from '@codemirror/lang-python';\n\n/**\n * TODO: This should be handled with dynamic imports,\n * without relying on importing every single language/package available.\n * These supported types need to be kept in line with the ones in packages/vue2/src/components/code-snippet/code-snippet.types.ts enum\n */\nconst importsMap = {\n [BentoCodeSnippetSupportedLanguage.JSON]: json,\n [BentoCodeSnippetSupportedLanguage.XML]: xml,\n [BentoCodeSnippetSupportedLanguage.JAVASCRIPT]: javascript,\n [BentoCodeSnippetSupportedLanguage.JAVA]: java,\n [BentoCodeSnippetSupportedLanguage.PYTHON]: python,\n};\n\n/**\n * Returns a language loder for `CodeMirror`.\n * Supported languages: json, xml, javascript & java\n *\n * @param language Language to be used\n * @returns Language configuration loader to be used in codemirror\n */\nexport const getLangLoader = (language: BentoCodeSnippetSupportedLanguage | `${BentoCodeSnippetSupportedLanguage}`) => {\n const loadLang = async () => importsMap[language];\n\n return loadLang;\n};\n","import { EditorSelection, type EditorState, type SelectionRange } from '@codemirror/state';\n\n/**\n * Calculate indentation for a new line based on line before it.\n * @param state - The editor state\n * @param line - the selection range, in this case one line\n * @returns the indentation string to be pre-pended on a new line.\n */\nconst getIndentation = (state: EditorState, line: SelectionRange) => {\n const currentLine = state.doc.lineAt(line.from);\n const indentMatch = /^\\s*/.exec(currentLine.text);\n return indentMatch ? indentMatch[0] : '';\n};\n\n/**\n * This extension to codemirror will, upon pressing the 'Enter' key, indent the new line\n * the same as the line before it.\n */\nexport const INDENT_SAME_AS_LINE_BEFORE = {\n key: 'Enter',\n run: ({ state, dispatch }) => {\n const changes = state.changeByRange(range => {\n const indentation = getIndentation(state, range);\n const newText = `\\n${indentation}`;\n return {\n changes: { from: range.from, to: range.to, insert: newText },\n range: EditorSelection.cursor(range.from + newText.length),\n };\n });\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: 'input' }));\n return true;\n },\n};\n\nexport default INDENT_SAME_AS_LINE_BEFORE;\n","<template>\n <div class=\"b-code-snippet\" :class=\"conditionalClasses\">\n <section v-if=\"!isInlineVariant\" class=\"b-code-snippet__action-bar\">\n <div class=\"b-code-snippet__action-bar--start\">\n <bento-dropdown\n v-if=\"availableLanguages.length > 0\"\n v-model=\"selectedLanguage\"\n v-bind=\"$props\"\n :disabled=\"availableLanguages.length === 1\"\n :items=\"availableLanguages\"\n class=\"b-code-snippet__language-picker\"\n @input=\"handleChangeLanguage\"\n />\n <bento-typography el=\"span\" stronger>\n {{ displayedLang }}\n </bento-typography>\n </div>\n <div class=\"b-code-snippet__action-bar--end\">\n <bento-loading-indicator v-if=\"loading\" />\n <copy v-if=\"currentContents !== null\" class=\"b-structured-list__icon\" :text=\"currentContents\" />\n <bento-button\n v-if=\"expandable\"\n variant=\"tertiary\"\n condensed\n :aria-label=\"t('expand')\"\n @click=\"showModal = true\"\n >\n <template #iconLeft>\n <expand-icon />\n </template>\n </bento-button>\n <bento-button v-if=\"actionable\" variant=\"primary\" tertiary condensed @click=\"onActionClicked\">\n <template #iconLeft>\n <bento-typography el=\"span\" class=\"b-code-snippet__action-button\">\n {{ runText }}\n </bento-typography>\n </template>\n </bento-button>\n </div>\n </section>\n <code v-if=\"content || editable\" class=\"b-code-snippet__code-area\">\n <div ref=\"container\" class=\"b-code-snippet__code-area-content\" :class=\"codeAreaContentConditionalClasses\" />\n </code>\n <section v-else>\n <slot name=\"empty-state\">\n <!-- TODO: switch with empty-state component when ready -->\n <div class=\"b-code-snippet__empty-state\">{{ t('nothingToDisplay') }}</div>\n </slot>\n </section>\n <base-modal\n v-if=\"expandable\"\n class=\"b-code-snippet__modal\"\n :hide-close-button=\"true\"\n :custom-padding=\"'0px'\"\n :is-dismissible=\"true\"\n :is-open=\"showModal\"\n size=\"large\"\n @close-modal=\"showModal = false\"\n >\n <template #content>\n <bento-code-snippet v-bind=\"{ ...$props, expandable: false }\" />\n </template>\n </base-modal>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, onMounted, PropType, ref, shallowRef, watch, watchEffect } from 'vue';\n import { EditorView, highlightActiveLine, keymap, lineNumbers } from '@codemirror/view';\n import { Compartment, EditorState } from '@codemirror/state';\n import { history, indentWithTab } from '@codemirror/commands';\n import { lightThemeHighlight } from './highlight';\n import { getLangLoader, INDENT_SAME_AS_LINE_BEFORE } from './utils';\n import { BentoDropdown } from '@/components/dropdown';\n import { BentoButton } from '@/components/button';\n import { BentoTypography } from '@/components/typography';\n import { BentoTooltipDirective } from '@/directives';\n import { BentoLoadingIndicator } from '@/components/loading-indicator';\n import { useI18n } from '@/utils/ts/i18n';\n import { Copy } from '@/internal';\n import ExpandIcon from '@adyen/ui-assets-icons-16/vue/expand';\n import {\n BentoCodeSnippetEvent,\n BentoCodeSnippetSupportedLanguage,\n BentoCodeSnippetVariant,\n } from '@/components/code-snippet/code-snippet.types';\n import BaseModal from '@/components/modal/components/base-modal/base-modal.vue';\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n /**\n * A code-snippet is a container to display code in a readable way.\n * Come with added functionalities like syntax highlighting, editing and actioning the code\n *\n * @example\n * import { BentoCodeSnippet } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoCodeSnippet },\n * template: `\n * <bento-code-snippet :variant=\"BentoCodeSnippetVariant.MULTILINE\" content=\"{ example: 1234 }\" />\n * `\n * }\n */\n export default defineComponent({\n i18n: { messages },\n name: 'bento-code-snippet',\n components: {\n BentoTypography,\n BentoButton,\n BentoDropdown,\n Copy,\n BaseModal,\n BentoLoadingIndicator,\n ExpandIcon,\n },\n directives: { BentoTooltipDirective },\n props: {\n /**\n * Defines the variant of code-snippet\n */\n variant: {\n type: String as PropType<BentoCodeSnippetVariant | `${BentoCodeSnippetVariant}`>,\n default: BentoCodeSnippetVariant.MULTILINE,\n validator: (value: BentoCodeSnippetVariant) => Object.values(BentoCodeSnippetVariant).includes(value),\n },\n /**\n * Language name for syntax highlighting rules\n */\n lang: {\n type: String as PropType<BentoCodeSnippetSupportedLanguage | `${BentoCodeSnippetSupportedLanguage}`>,\n default: BentoCodeSnippetSupportedLanguage.JSON,\n validator: (value: BentoCodeSnippetSupportedLanguage) =>\n Object.values(BentoCodeSnippetSupportedLanguage).includes(value),\n },\n /**\n * Label to show in the action-bar, describing the language\n */\n langLabel: {\n type: String,\n default: null,\n },\n /**\n * The code content\n */\n content: {\n type: String,\n default: '',\n },\n /**\n * Allows editing of the code-snippet content by the user\n */\n editable: {\n type: Boolean,\n default: false,\n },\n /**\n * Displays a button that when clicked will emit an action event\n * Leaves to the parent component the logic of what to do with it\n */\n actionable: {\n type: Boolean,\n default: false,\n },\n /**\n * Displays a button that can expand the codeblock into a modal to easily\n * view large blocks of code.\n */\n expandable: {\n type: Boolean,\n default: false,\n },\n /**\n * Displays a button that when clicked will emit a run event\n * Leaves to the parent component the logic of what to do with it\n */\n actionableText: {\n type: String,\n default: 'run',\n },\n /**\n * Toggles the loading indicator within the action bar\n */\n loading: {\n type: Boolean,\n default: false,\n },\n },\n emits: [BentoCodeSnippetEvent.ACTION, BentoCodeSnippetEvent.CHANGE],\n setup(props, { emit }) {\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n\n // language\n const selectedLanguage = ref<string | null>(null);\n const availableLanguages = []; // TODO: implement\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n const handleChangeLanguage = () => {};\n const displayedLang = computed(() => props.langLabel ?? props.lang.toUpperCase());\n\n const isInlineVariant = computed(() => props.variant === BentoCodeSnippetVariant.INLINE);\n\n const conditionalClasses = computed(() => ({\n 'b-code-snippet--inline': isInlineVariant.value,\n 'b-code-snippet--scrollable': !isInlineVariant.value,\n }));\n\n const codeAreaContentConditionalClasses = computed(() => ({\n 'b-code-snippet__code-area-content--editable': props.editable,\n }));\n\n const loadLang = getLangLoader(props.lang);\n\n const container = shallowRef<HTMLDivElement>();\n const editor = shallowRef<EditorView>();\n const languageConf = new Compartment();\n const editorTheme = new Compartment();\n const editorReadOnly = new Compartment();\n\n const currentContents = ref(null);\n const contentLength = ref(0);\n\n onMounted(async () => {\n const language = await loadLang();\n\n // alongside the updateListener plugin it acts as a watcher of changes to the editor state\n currentContents.value = props.content;\n const updateCurrentContents = ({ state }) => {\n currentContents.value = state.doc.toString();\n };\n\n const extensions = [\n highlightActiveLine(),\n keymap.of([indentWithTab, INDENT_SAME_AS_LINE_BEFORE]),\n languageConf.of(language()),\n editorTheme.of(lightThemeHighlight(props.lang)),\n\n editorReadOnly.of(EditorState.readOnly.of(!props.editable)),\n EditorView.updateListener.of(content => updateCurrentContents(content)),\n ];\n\n if (props.variant === 'multiline') {\n extensions.push([lineNumbers(), history()]);\n }\n\n const state = EditorState.create({\n doc: props.content,\n extensions: [...extensions],\n });\n contentLength.value = state.doc.length;\n\n editor.value = new EditorView({\n state,\n parent: container.value,\n });\n });\n watch(\n () => props.content,\n () => {\n if (props.content !== currentContents.value) {\n const upcomingContentLength = props.content.length;\n editor.value.dispatch({\n changes: {\n from: 0,\n to: contentLength.value,\n insert: props.content,\n },\n });\n contentLength.value = upcomingContentLength;\n }\n }\n );\n\n const runText = computed(() => t(props.actionableText as 'run'));\n const onActionClicked = () => {\n emit(BentoCodeSnippetEvent.ACTION, currentContents.value);\n };\n\n watchEffect(() => {\n if (currentContents.value !== null) {\n emit(BentoCodeSnippetEvent.CHANGE, currentContents.value);\n }\n });\n\n const showModal = ref(false);\n\n return {\n // Values\n availableLanguages,\n codeAreaContentConditionalClasses,\n conditionalClasses,\n container,\n currentContents,\n displayedLang,\n editor,\n selectedLanguage,\n showModal,\n isInlineVariant,\n\n // Methods\n handleChangeLanguage,\n onActionClicked,\n runText,\n\n // Translations\n t,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./code-snippet.scss\"></style>\n"],"names":["lightThemeColors","BCodeSnippetCodeAreaHighlightRed","BCodeSnippetCodeAreaHighlightOrange","BCodeSnippetCodeAreaHighlightGreen","BCodeSnippetCodeAreaHighlightBlue","highlightStyle","colors","language","HighlightStyle","tags","lightThemeHighlight","syntaxHighlighting","BentoCodeSnippetVariant","BentoCodeSnippetVariant2","BentoCodeSnippetSupportedLanguage","BentoCodeSnippetSupportedLanguage2","BentoCodeSnippetEvent","BentoCodeSnippetEvent2","importsMap","json","xml","javascript","java","python","getLangLoader","getIndentation","state","line","currentLine","indentMatch","INDENT_SAME_AS_LINE_BEFORE","dispatch","changes","range","newText","EditorSelection","_sfc_main","defineComponent","messages","BentoTypography","BentoButton","BentoDropdown","Copy","BaseModal","BentoLoadingIndicator","ExpandIcon","BentoTooltipDirective","value","props","emit","t","useI18n","selectedLanguage","ref","availableLanguages","handleChangeLanguage","displayedLang","computed","isInlineVariant","conditionalClasses","codeAreaContentConditionalClasses","loadLang","container","shallowRef","editor","languageConf","Compartment","editorTheme","editorReadOnly","currentContents","contentLength","onMounted","updateCurrentContents","state2","extensions","highlightActiveLine","keymap","indentWithTab","EditorState","EditorView","content","lineNumbers","history","watch","upcomingContentLength","runText","onActionClicked","watchEffect","showModal"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as d, useAttrs as p, computed as s } from "vue";
2
- import { d as c, B as b } from "./typography.CqQaHXhq.js";
3
- import { F as u } from "./error-message.GCYDEzGL.js";
2
+ import { d as c, B as b } from "./typography.Bu_WAKdf.js";
3
+ import { F as u } from "./error-message.Btn_7Igx.js";
4
4
  import { n as _ } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
5
5
  import "../assets/controls-group.css";
6
6
  const f = {}, m = /* @__PURE__ */ d({
@@ -78,4 +78,4 @@ const B = g.exports;
78
78
  export {
79
79
  B as C
80
80
  };
81
- //# sourceMappingURL=controls-group.DLBxlPfl.js.map
81
+ //# sourceMappingURL=controls-group.Dx66LdfN.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"controls-group.DLBxlPfl.js","sources":["../../src/components/internal/controls-group/controls-group.vue"],"sourcesContent":["<template>\n <fieldset\n class=\"b-controls-group\"\n :class=\"conditionalClasses\"\n :form=\"form\"\n :disabled=\"disabled\"\n :aria-describedby=\"ariaAttributes['aria-describedby']\"\n >\n <legend class=\"b-controls-group__label-container\" :class=\"legendConditionalClasses\">\n <field-label\n v-if=\"label\"\n class=\"b-controls-group__label\"\n :label=\"label\"\n :tooltip-text=\"tooltipText\"\n :optional=\"optional\"\n :required=\"required\"\n />\n <bento-typography v-if=\"description\" class=\"b-controls-group__description\" el=\"span\">\n {{ description }}\n </bento-typography>\n </legend>\n <slot />\n </fieldset>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, useAttrs } from 'vue';\n import { BentoTypography } from '@/components/typography';\n import { FieldLabel } from '@/components/internal/field-label';\n import { deprecate } from '@/utils/ts/deprecate';\n\n const attrs = useAttrs();\n\n const props = defineProps({\n /**\n * Descriptive supporting text visbile underneath the label.\n */\n description: { type: String, default: null },\n\n /**\n * The name of the component to cite when throwing a depreacte error.\n */\n componentName: { type: String, required: true },\n\n /**\n * Sets all child controls of the <fieldset> as disabled.\n */\n disabled: { type: Boolean, default: false },\n\n /**\n * The value of the id attribute of a <form> element the <fieldset> is to part of, even if it is not inside the form itself.\n */\n form: { type: String, default: null },\n\n /**\n * Shows/hides the group label.\n */\n hideLabel: { type: Boolean, default: null },\n\n /**\n * The name associated with the group. Required for accessibility purposes.\n * The label is shown when `hideLabel` is set to `true` or if `description` is passed\n */\n label: { type: String, required: true },\n\n /**\n * Indicates the field is optional.\n */\n optional: { type: Boolean, default: false },\n\n /**\n * Indicates the field is required.\n */\n required: { type: Boolean, default: false },\n\n /**\n * Tooltip message.\n */\n tooltipText: { type: String, default: null },\n });\n\n const ariaAttributes = computed(() => ({\n 'aria-describedby': attrs['aria-describedby']?.toString() as string,\n }));\n\n const conditionalClasses = computed(() => ({\n 'b-controls-group--disabled': props.disabled,\n }));\n\n const legendConditionalClasses = computed(() => {\n const isLabelAndDescriptionPresent = props.label && props.description;\n const shouldShowLabel = isLabelAndDescriptionPresent || props.hideLabel === false;\n\n return {\n 'b-controls-group__label-container--hidden': !shouldShowLabel,\n };\n });\n\n // eslint-disable-next-line eqeqeq -- Needs to show deprecate message when hideLabel is not set and no description available\n const hasNoPropsDefined = !props.description && props.hideLabel == undefined;\n if (hasNoPropsDefined) {\n deprecate(\n `${props.componentName}: The property \\`label\\` will always be rendered by default.`,\n `After version 2.0.0, the label will be shown by default.\n To continue hiding the label set \\`:hide-label=\"true\"\\`. Up until version 2.0.0, to display the label set \\`hide-label=\"false\"\\`.\n \\`label\\` will always be rendered when \\`description\\` is passed alongside with \\`label\\``,\n `2.0.0`\n );\n }\n</script>\n\n<script lang=\"ts\">\n /**\n * A controls group components should be used whenever it is necessary to group a set of controls (i.e. radio buttons or checkboxes)\n * This component conforms to the official WAI-ARIA guidelines for grouping controls: https://www.w3.org/WAI/tutorials/forms/grouping/\n *\n * NOTE: This component should not be used by itself but more implemented by other exported components\n * @example\n * import { ControlsGroup, BentoCheckbox, BentoRadioButton } from '@adyen/bento-vue2/';\n *\n * export default {\n * components: { ControlsGroup, BentoRadioButton },\n * template: `\n * <controls-group\n * label=\"Your group label\"\n * description=\"Description\"\n * >\n * <bento-radio-button\n * disabled\n * value=\"inputRadio\"\n * >\n * Label text\n * </bento-radio-button>\n * <bento-radio-button\n * value=\"inputRadio\"\n * >\n * Another label text\n * </bento-radio-button>\n * </controls-group>\n * `\n * };\n */\n export default {};\n</script>\n\n<style lang=\"scss\" scoped src=\"@/core/components/controls-group/controls-group.scss\" />\n"],"names":["__default__","attrs","useAttrs","ariaAttributes","computed","_a","conditionalClasses","props","legendConditionalClasses","hasNoPropsDefined","deprecate"],"mappings":";;;;;AA8II,MAAAA,IAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA/GAC,IAAAC,EAAA,GAkDAC,IAAAC,EAAA,MAAA;;AAAA;AAAA,QAAuC,qBAAAC,IAAAJ,EAAA,kBAAA,MAAA,gBAAAI,EAAA;AAAA,MACqB;AAAA,KAAA,GAG5DC,IAAAF,EAAA,OAAA;AAAA,MAA2C,8BAAAG,EAAA;AAAA,IACH,EAAA,GAGxCC,IAAAJ,EAAA,OAII;AAAA,MAAO,6CAAA,EAHPG,EAAA,SAAAA,EAAA,eACAA,EAAA,cAAA;AAAA,IAGkD,EAClD,GAIJE,IAAA,CAAAF,EAAA,eAAAA,EAAA,aAAA;AACA,WAAAE,KACIC;AAAA,MAAA,GAAAH,EAAA,aAAA;AAAA,MAC0B;AAAA,MACtB;AAAA,IAGA;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"controls-group.Dx66LdfN.js","sources":["../../src/components/internal/controls-group/controls-group.vue"],"sourcesContent":["<template>\n <fieldset\n class=\"b-controls-group\"\n :class=\"conditionalClasses\"\n :form=\"form\"\n :disabled=\"disabled\"\n :aria-describedby=\"ariaAttributes['aria-describedby']\"\n >\n <legend class=\"b-controls-group__label-container\" :class=\"legendConditionalClasses\">\n <field-label\n v-if=\"label\"\n class=\"b-controls-group__label\"\n :label=\"label\"\n :tooltip-text=\"tooltipText\"\n :optional=\"optional\"\n :required=\"required\"\n />\n <bento-typography v-if=\"description\" class=\"b-controls-group__description\" el=\"span\">\n {{ description }}\n </bento-typography>\n </legend>\n <slot />\n </fieldset>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, useAttrs } from 'vue';\n import { BentoTypography } from '@/components/typography';\n import { FieldLabel } from '@/components/internal/field-label';\n import { deprecate } from '@/utils/ts/deprecate';\n\n const attrs = useAttrs();\n\n const props = defineProps({\n /**\n * Descriptive supporting text visbile underneath the label.\n */\n description: { type: String, default: null },\n\n /**\n * The name of the component to cite when throwing a depreacte error.\n */\n componentName: { type: String, required: true },\n\n /**\n * Sets all child controls of the <fieldset> as disabled.\n */\n disabled: { type: Boolean, default: false },\n\n /**\n * The value of the id attribute of a <form> element the <fieldset> is to part of, even if it is not inside the form itself.\n */\n form: { type: String, default: null },\n\n /**\n * Shows/hides the group label.\n */\n hideLabel: { type: Boolean, default: null },\n\n /**\n * The name associated with the group. Required for accessibility purposes.\n * The label is shown when `hideLabel` is set to `true` or if `description` is passed\n */\n label: { type: String, required: true },\n\n /**\n * Indicates the field is optional.\n */\n optional: { type: Boolean, default: false },\n\n /**\n * Indicates the field is required.\n */\n required: { type: Boolean, default: false },\n\n /**\n * Tooltip message.\n */\n tooltipText: { type: String, default: null },\n });\n\n const ariaAttributes = computed(() => ({\n 'aria-describedby': attrs['aria-describedby']?.toString() as string,\n }));\n\n const conditionalClasses = computed(() => ({\n 'b-controls-group--disabled': props.disabled,\n }));\n\n const legendConditionalClasses = computed(() => {\n const isLabelAndDescriptionPresent = props.label && props.description;\n const shouldShowLabel = isLabelAndDescriptionPresent || props.hideLabel === false;\n\n return {\n 'b-controls-group__label-container--hidden': !shouldShowLabel,\n };\n });\n\n // eslint-disable-next-line eqeqeq -- Needs to show deprecate message when hideLabel is not set and no description available\n const hasNoPropsDefined = !props.description && props.hideLabel == undefined;\n if (hasNoPropsDefined) {\n deprecate(\n `${props.componentName}: The property \\`label\\` will always be rendered by default.`,\n `After version 2.0.0, the label will be shown by default.\n To continue hiding the label set \\`:hide-label=\"true\"\\`. Up until version 2.0.0, to display the label set \\`hide-label=\"false\"\\`.\n \\`label\\` will always be rendered when \\`description\\` is passed alongside with \\`label\\``,\n `2.0.0`\n );\n }\n</script>\n\n<script lang=\"ts\">\n /**\n * A controls group components should be used whenever it is necessary to group a set of controls (i.e. radio buttons or checkboxes)\n * This component conforms to the official WAI-ARIA guidelines for grouping controls: https://www.w3.org/WAI/tutorials/forms/grouping/\n *\n * NOTE: This component should not be used by itself but more implemented by other exported components\n * @example\n * import { ControlsGroup, BentoCheckbox, BentoRadioButton } from '@adyen/bento-vue2/';\n *\n * export default {\n * components: { ControlsGroup, BentoRadioButton },\n * template: `\n * <controls-group\n * label=\"Your group label\"\n * description=\"Description\"\n * >\n * <bento-radio-button\n * disabled\n * value=\"inputRadio\"\n * >\n * Label text\n * </bento-radio-button>\n * <bento-radio-button\n * value=\"inputRadio\"\n * >\n * Another label text\n * </bento-radio-button>\n * </controls-group>\n * `\n * };\n */\n export default {};\n</script>\n\n<style lang=\"scss\" scoped src=\"@/core/components/controls-group/controls-group.scss\" />\n"],"names":["__default__","attrs","useAttrs","ariaAttributes","computed","_a","conditionalClasses","props","legendConditionalClasses","hasNoPropsDefined","deprecate"],"mappings":";;;;;AA8II,MAAAA,IAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA/GAC,IAAAC,EAAA,GAkDAC,IAAAC,EAAA,MAAA;;AAAA;AAAA,QAAuC,qBAAAC,IAAAJ,EAAA,kBAAA,MAAA,gBAAAI,EAAA;AAAA,MACqB;AAAA,KAAA,GAG5DC,IAAAF,EAAA,OAAA;AAAA,MAA2C,8BAAAG,EAAA;AAAA,IACH,EAAA,GAGxCC,IAAAJ,EAAA,OAII;AAAA,MAAO,6CAAA,EAHPG,EAAA,SAAAA,EAAA,eACAA,EAAA,cAAA;AAAA,IAGkD,EAClD,GAIJE,IAAA,CAAAF,EAAA,eAAAA,EAAA,aAAA;AACA,WAAAE,KACIC;AAAA,MAAA,GAAAH,EAAA,aAAA;AAAA,MAC0B;AAAA,MACtB;AAAA,IAGA;;;;;;;;;;;;;;;"}
@@ -1,9 +1,9 @@
1
1
  import { defineComponent as v, ref as i, computed as s } from "vue";
2
- import { B as _ } from "./button.79klAcOK.js";
2
+ import { B as _ } from "./button.PIszagl6.js";
3
3
  import { d as f } from "./popper-container.CnWphJTN.js";
4
4
  import { u as y } from "./i18n.BQkEbtPM.js";
5
5
  import { n as c } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
6
- import { B as C } from "./tooltip.BN6fOXzi.js";
6
+ import { B as C } from "./tooltip.CS2Gij6x.js";
7
7
  import "../assets/copy.css";
8
8
  var r = /* @__PURE__ */ ((o) => (o.DEFAULT = "default", o.COPYING = "copying", o.ERROR = "error", o))(r || {});
9
9
  let a = 0;
@@ -125,4 +125,4 @@ export {
125
125
  A as C,
126
126
  r as a
127
127
  };
128
- //# sourceMappingURL=copy.CmxcGt77.js.map
128
+ //# sourceMappingURL=copy.fvajyLGQ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"copy.CmxcGt77.js","sources":["../../src/components/internal/copy/copy.types.ts","../../../../node_modules/.pnpm/@adyen+ui-assets-icons-16@4.1.0_vue@2.7.16/node_modules/@adyen/ui-assets-icons-16/dist/vue/copy.vue","../../src/components/internal/copy/copy.vue"],"sourcesContent":["import type { BentoButton } from '../../button';\n\nexport enum CopyTooltipState {\n DEFAULT = 'default',\n COPYING = 'copying',\n ERROR = 'error',\n}\n\ntype ButtonProps = InstanceType<typeof BentoButton>['$props'];\nexport type BentoCopyButtonProps = {\n variant?: ButtonProps['variant'];\n condensed?: ButtonProps['condensed'];\n disabled?: ButtonProps['disabled'];\n};\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#00112C\" d=\"M3.5 1.25C2.25736 1.25 1.25 2.25736 1.25 3.5V8.5C1.25 9.74264 2.25736 10.75 3.5 10.75H5.25V12.5C5.25 13.7426 6.25736 14.75 7.5 14.75H12.5C13.7426 14.75 14.75 13.7426 14.75 12.5V7.5C14.75 6.25736 13.7426 5.25 12.5 5.25H10.75V3.5C10.75 2.25736 9.74264 1.25 8.5 1.25H3.5ZM9.25 5.25H7.5C6.25736 5.25 5.25 6.25736 5.25 7.5V9.25H3.5C3.08579 9.25 2.75 8.91421 2.75 8.5V3.5C2.75 3.08579 3.08579 2.75 3.5 2.75H8.5C8.91421 2.75 9.25 3.08579 9.25 3.5V5.25ZM6.75 12.5V7.5C6.75 7.08579 7.08579 6.75 7.5 6.75H12.5C12.9142 6.75 13.25 7.08579 13.25 7.5V12.5C13.25 12.9142 12.9142 13.25 12.5 13.25H7.5C7.08579 13.25 6.75 12.9142 6.75 12.5Z\"/></svg>\n</template>\n<script>\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n<style>\n @import '../css/main.css';\n</style>\n","<template>\n <div class=\"b-copy\" @mouseleave=\"resetText\" @focusout=\"resetText\">\n <span v-if=\"$slots.default\" v-bento-tooltip-directive:[tooltipPosition]=\"copyText\" @click=\"onClickCopy\">\n <slot />\n </span>\n <bento-button\n v-else\n v-bento-tooltip-directive:[tooltipPosition]=\"copyText\"\n v-bind=\"button\"\n @click=\"onClickCopy\"\n >\n <template #iconLeft>\n <copy-icon :svg-title=\"svgTitle\" />\n </template>\n <template v-if=\"buttonText\" #default>\n {{ buttonText }}\n </template>\n </bento-button>\n <div v-if=\"showScreenReaderAlert\" role=\"alert\" class=\"b-copy__screen-reader-alert\">{{ t('copied') }}</div>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, PropType, ref } from 'vue';\n import { BentoButton } from '@/components/button';\n import { PopperContainerPosition } from '@/components/popper-container';\n import { BentoTooltipDirective } from '@/directives';\n import { useI18n } from '@/utils/ts/i18n';\n import { BentoCopyButtonProps, CopyTooltipState } from './copy.types';\n import CopyIcon from '@adyen/ui-assets-icons-16/vue/copy';\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n /**\n * An internal button component that copies text to the user's clipboard.\n *\n * @example\n * import { Copy } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { Copy },\n * template: `\n * <copy :text=\"textToCopy\" />\n * `\n * }\n */\n export default defineComponent({\n i18n: { messages },\n name: 'copy',\n components: { BentoButton, CopyIcon },\n directives: { BentoTooltipDirective },\n props: {\n /**\n * Object containing props to change the menu button appearance. Accepts the same props present in BentoButton.\n */\n button: {\n type: Object as PropType<BentoCopyButtonProps>,\n default: () =>\n ({\n variant: 'tertiary',\n } as BentoCopyButtonProps),\n },\n\n /**\n * Sets the button text of the copy button.\n */\n buttonText: {\n type: String,\n default: undefined,\n },\n\n /**\n * Defines the string that will get copied to the clipboard\n */\n text: {\n type: String,\n required: true,\n },\n\n /**\n * Position the tooltip should take if space is available. Defaults to 'top'\n */\n tooltipPosition: {\n type: String as PropType<PopperContainerPosition>,\n default: PopperContainerPosition.TOP,\n },\n },\n setup(props) {\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n const copyState = ref<CopyTooltipState>(CopyTooltipState.DEFAULT);\n\n const showScreenReaderAlert = ref(false);\n const onClickCopy = async () => {\n try {\n await navigator.clipboard.writeText(props.text);\n copyState.value = CopyTooltipState.COPYING;\n showScreenReaderAlert.value = true;\n } catch (e) {\n copyState.value = CopyTooltipState.ERROR;\n }\n };\n\n const resetText = () => {\n copyState.value = CopyTooltipState.DEFAULT;\n showScreenReaderAlert.value = false;\n };\n\n const copyText = computed(() => {\n switch (copyState.value) {\n case CopyTooltipState.COPYING:\n return t('copied');\n case CopyTooltipState.ERROR:\n return t('copyFailed');\n case CopyTooltipState.DEFAULT:\n default:\n return t('copy');\n }\n });\n\n const svgTitle = computed(() => (props?.buttonText ? undefined : t('copy')));\n\n return {\n copyText,\n onClickCopy,\n resetText,\n showScreenReaderAlert,\n svgTitle,\n\n // Translations\n t,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./copy.scss\" />\n"],"names":["CopyTooltipState","CopyTooltipState2","uuid","_sfc_main$1","_sfc_main","defineComponent","messages","BentoButton","CopyIcon","BentoTooltipDirective","PopperContainerPosition","props","useI18n","copyState","ref","showScreenReaderAlert","onClickCopy","resetText","copyText","computed","svgTitle"],"mappings":";;;;;;;AAEY,IAAAA,IAAA,kBAAAC,OACRA,EAAA,UAAA,WACAA,EAAA,UAAA,WACAA,EAAA,QAAA,SAHQA,IAAAD,KAAA,CAAA,CAAA;ACGZ,IAAAE,IAAA;AAEA,MAAAC,IAAA;AAAA,EACA,eAAA;AACA,SAAA,OAAAD,EAAA,SAAA,GACAA,KAAA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;GCmCAE,IAAAC,EAAA;AAAA,EAAA,MAAA,EAAA,UAAAC,EAAA;AAAA,EACA,MAAA;AAAA,EACA,YAAA,EAAA,aAAAC,GAAA,UAAAC,EAAA;AAAA,EACA,YAAA,EAAA,uBAAAC,EAAA;AAAA,EACA,OAAA;AAAA;AAAA;AAAA;AAAA,IACA,QAAA;AAAA,MAIA,MAAA;AAAA,MACA,SAAA,OAAA;AAAA,QAEA,SAAA;AAAA,MACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IACA,YAAA;AAAA,MAKA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IACA,MAAA;AAAA,MAKA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IACA,iBAAA;AAAA,MAKA,MAAA;AAAA,MACA,SAAAC,EAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,MAAAC,GAAA;AAEA,UAAA,EAAA,EAAA,IAAAC,EAAA,GACAC,IAAAC,EAAAd,EAAA,OAAA,GAEAe,IAAAD,EAAA,EAAA,GACAE,IAAA,YAAA;AACA,UAAA;AACA,cAAA,UAAA,UAAA,UAAAL,EAAA,IAAA,GACAE,EAAA,QAAAb,EAAA,SACAe,EAAA,QAAA;AAAA,MAAA,QAAA;AAEA,QAAAF,EAAA,QAAAb,EAAA;AAAA,MAAA;AAAA,IACA,GAGAiB,IAAA,MAAA;AACA,MAAAJ,EAAA,QAAAb,EAAA,SACAe,EAAA,QAAA;AAAA,IAAA,GAGAG,IAAAC,EAAA,MAAA;AACA,cAAAN,EAAA,OAAA;AAAA,QAAA,KAAAb,EAAA;AAEA,iBAAA,EAAA,QAAA;AAAA,QAAA,KAAAA,EAAA;AAEA,iBAAA,EAAA,YAAA;AAAA,QAAA,KAAAA,EAAA;AAAA,QACA;AAEA,iBAAA,EAAA,MAAA;AAAA,MAAA;AAAA,IACA,CAAA,GAGAoB,IAAAD,EAAA,MAAAR,KAAA,QAAAA,EAAA,aAAA,SAAA,EAAA,MAAA,CAAA;AAEA,WAAA;AAAA,MAAA,UAAAO;AAAA,MACA,aAAAF;AAAA,MACA,WAAAC;AAAA,MACA,uBAAAF;AAAA,MACA,UAAAK;AAAA;AAAA,MACA;AAAA,IAGA;AAAA,EACA;AAEA,CAAA;;;;;;;;;;;;;;;;;","x_google_ignoreList":[1]}
1
+ {"version":3,"file":"copy.fvajyLGQ.js","sources":["../../src/components/internal/copy/copy.types.ts","../../../../node_modules/.pnpm/@adyen+ui-assets-icons-16@4.1.0_vue@2.7.16/node_modules/@adyen/ui-assets-icons-16/dist/vue/copy.vue","../../src/components/internal/copy/copy.vue"],"sourcesContent":["import type { BentoButton } from '../../button';\n\nexport enum CopyTooltipState {\n DEFAULT = 'default',\n COPYING = 'copying',\n ERROR = 'error',\n}\n\ntype ButtonProps = InstanceType<typeof BentoButton>['$props'];\nexport type BentoCopyButtonProps = {\n variant?: ButtonProps['variant'];\n condensed?: ButtonProps['condensed'];\n disabled?: ButtonProps['disabled'];\n};\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#00112C\" d=\"M3.5 1.25C2.25736 1.25 1.25 2.25736 1.25 3.5V8.5C1.25 9.74264 2.25736 10.75 3.5 10.75H5.25V12.5C5.25 13.7426 6.25736 14.75 7.5 14.75H12.5C13.7426 14.75 14.75 13.7426 14.75 12.5V7.5C14.75 6.25736 13.7426 5.25 12.5 5.25H10.75V3.5C10.75 2.25736 9.74264 1.25 8.5 1.25H3.5ZM9.25 5.25H7.5C6.25736 5.25 5.25 6.25736 5.25 7.5V9.25H3.5C3.08579 9.25 2.75 8.91421 2.75 8.5V3.5C2.75 3.08579 3.08579 2.75 3.5 2.75H8.5C8.91421 2.75 9.25 3.08579 9.25 3.5V5.25ZM6.75 12.5V7.5C6.75 7.08579 7.08579 6.75 7.5 6.75H12.5C12.9142 6.75 13.25 7.08579 13.25 7.5V12.5C13.25 12.9142 12.9142 13.25 12.5 13.25H7.5C7.08579 13.25 6.75 12.9142 6.75 12.5Z\"/></svg>\n</template>\n<script>\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n<style>\n @import '../css/main.css';\n</style>\n","<template>\n <div class=\"b-copy\" @mouseleave=\"resetText\" @focusout=\"resetText\">\n <span v-if=\"$slots.default\" v-bento-tooltip-directive:[tooltipPosition]=\"copyText\" @click=\"onClickCopy\">\n <slot />\n </span>\n <bento-button\n v-else\n v-bento-tooltip-directive:[tooltipPosition]=\"copyText\"\n v-bind=\"button\"\n @click=\"onClickCopy\"\n >\n <template #iconLeft>\n <copy-icon :svg-title=\"svgTitle\" />\n </template>\n <template v-if=\"buttonText\" #default>\n {{ buttonText }}\n </template>\n </bento-button>\n <div v-if=\"showScreenReaderAlert\" role=\"alert\" class=\"b-copy__screen-reader-alert\">{{ t('copied') }}</div>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, PropType, ref } from 'vue';\n import { BentoButton } from '@/components/button';\n import { PopperContainerPosition } from '@/components/popper-container';\n import { BentoTooltipDirective } from '@/directives';\n import { useI18n } from '@/utils/ts/i18n';\n import { BentoCopyButtonProps, CopyTooltipState } from './copy.types';\n import CopyIcon from '@adyen/ui-assets-icons-16/vue/copy';\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n /**\n * An internal button component that copies text to the user's clipboard.\n *\n * @example\n * import { Copy } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { Copy },\n * template: `\n * <copy :text=\"textToCopy\" />\n * `\n * }\n */\n export default defineComponent({\n i18n: { messages },\n name: 'copy',\n components: { BentoButton, CopyIcon },\n directives: { BentoTooltipDirective },\n props: {\n /**\n * Object containing props to change the menu button appearance. Accepts the same props present in BentoButton.\n */\n button: {\n type: Object as PropType<BentoCopyButtonProps>,\n default: () =>\n ({\n variant: 'tertiary',\n } as BentoCopyButtonProps),\n },\n\n /**\n * Sets the button text of the copy button.\n */\n buttonText: {\n type: String,\n default: undefined,\n },\n\n /**\n * Defines the string that will get copied to the clipboard\n */\n text: {\n type: String,\n required: true,\n },\n\n /**\n * Position the tooltip should take if space is available. Defaults to 'top'\n */\n tooltipPosition: {\n type: String as PropType<PopperContainerPosition>,\n default: PopperContainerPosition.TOP,\n },\n },\n setup(props) {\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n const copyState = ref<CopyTooltipState>(CopyTooltipState.DEFAULT);\n\n const showScreenReaderAlert = ref(false);\n const onClickCopy = async () => {\n try {\n await navigator.clipboard.writeText(props.text);\n copyState.value = CopyTooltipState.COPYING;\n showScreenReaderAlert.value = true;\n } catch (e) {\n copyState.value = CopyTooltipState.ERROR;\n }\n };\n\n const resetText = () => {\n copyState.value = CopyTooltipState.DEFAULT;\n showScreenReaderAlert.value = false;\n };\n\n const copyText = computed(() => {\n switch (copyState.value) {\n case CopyTooltipState.COPYING:\n return t('copied');\n case CopyTooltipState.ERROR:\n return t('copyFailed');\n case CopyTooltipState.DEFAULT:\n default:\n return t('copy');\n }\n });\n\n const svgTitle = computed(() => (props?.buttonText ? undefined : t('copy')));\n\n return {\n copyText,\n onClickCopy,\n resetText,\n showScreenReaderAlert,\n svgTitle,\n\n // Translations\n t,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./copy.scss\" />\n"],"names":["CopyTooltipState","CopyTooltipState2","uuid","_sfc_main$1","_sfc_main","defineComponent","messages","BentoButton","CopyIcon","BentoTooltipDirective","PopperContainerPosition","props","useI18n","copyState","ref","showScreenReaderAlert","onClickCopy","resetText","copyText","computed","svgTitle"],"mappings":";;;;;;;AAEY,IAAAA,IAAA,kBAAAC,OACRA,EAAA,UAAA,WACAA,EAAA,UAAA,WACAA,EAAA,QAAA,SAHQA,IAAAD,KAAA,CAAA,CAAA;ACGZ,IAAAE,IAAA;AAEA,MAAAC,IAAA;AAAA,EACA,eAAA;AACA,SAAA,OAAAD,EAAA,SAAA,GACAA,KAAA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;GCmCAE,IAAAC,EAAA;AAAA,EAAA,MAAA,EAAA,UAAAC,EAAA;AAAA,EACA,MAAA;AAAA,EACA,YAAA,EAAA,aAAAC,GAAA,UAAAC,EAAA;AAAA,EACA,YAAA,EAAA,uBAAAC,EAAA;AAAA,EACA,OAAA;AAAA;AAAA;AAAA;AAAA,IACA,QAAA;AAAA,MAIA,MAAA;AAAA,MACA,SAAA,OAAA;AAAA,QAEA,SAAA;AAAA,MACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IACA,YAAA;AAAA,MAKA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IACA,MAAA;AAAA,MAKA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IACA,iBAAA;AAAA,MAKA,MAAA;AAAA,MACA,SAAAC,EAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,MAAAC,GAAA;AAEA,UAAA,EAAA,EAAA,IAAAC,EAAA,GACAC,IAAAC,EAAAd,EAAA,OAAA,GAEAe,IAAAD,EAAA,EAAA,GACAE,IAAA,YAAA;AACA,UAAA;AACA,cAAA,UAAA,UAAA,UAAAL,EAAA,IAAA,GACAE,EAAA,QAAAb,EAAA,SACAe,EAAA,QAAA;AAAA,MAAA,QAAA;AAEA,QAAAF,EAAA,QAAAb,EAAA;AAAA,MAAA;AAAA,IACA,GAGAiB,IAAA,MAAA;AACA,MAAAJ,EAAA,QAAAb,EAAA,SACAe,EAAA,QAAA;AAAA,IAAA,GAGAG,IAAAC,EAAA,MAAA;AACA,cAAAN,EAAA,OAAA;AAAA,QAAA,KAAAb,EAAA;AAEA,iBAAA,EAAA,QAAA;AAAA,QAAA,KAAAA,EAAA;AAEA,iBAAA,EAAA,YAAA;AAAA,QAAA,KAAAA,EAAA;AAAA,QACA;AAEA,iBAAA,EAAA,MAAA;AAAA,MAAA;AAAA,IACA,CAAA,GAGAoB,IAAAD,EAAA,MAAAR,KAAA,QAAAA,EAAA,aAAA,SAAA,EAAA,MAAA,CAAA;AAEA,WAAA;AAAA,MAAA,UAAAO;AAAA,MACA,aAAAF;AAAA,MACA,WAAAC;AAAA,MACA,uBAAAF;AAAA,MACA,UAAAK;AAAA;AAAA,MACA;AAAA,IAGA;AAAA,EACA;AAEA,CAAA;;;;;;;;;;;;;;;;;","x_google_ignoreList":[1]}
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as y, toRefs as p, ref as d, watch as v, inject as _ } from "vue";
2
- import { B as f, d as C } from "./typography.CqQaHXhq.js";
2
+ import { B as f, d as C } from "./typography.Bu_WAKdf.js";
3
3
  import { a as u, B as o, b, u as S, c as h } from "./country.types.Br0AjxGy.js";
4
4
  import { u as L } from "./i18n.BQkEbtPM.js";
5
5
  import { S as N } from "./summary-grid.keys.BBbFrFGF.js";
@@ -90,4 +90,4 @@ const R = A.exports;
90
90
  export {
91
91
  R as c
92
92
  };
93
- //# sourceMappingURL=country.DWQ85WGG.js.map
93
+ //# sourceMappingURL=country.CM5oZOyZ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"country.DWQ85WGG.js","sources":["../../src/components/country/country.vue"],"sourcesContent":["<template>\n <div class=\"b-country\">\n <div class=\"b-country__label\">\n <span v-if=\"isSummaryGridLayout\">{{ countryLabel }}</span>\n <bento-typography v-else el=\"span\">{{ countryLabel }}</bento-typography>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { defineComponent, inject, PropType, ref, toRefs, watch } from 'vue';\n import { BentoTypography } from '@/components/typography';\n import { useCountryCapital, useCountryName, useCountryPhoneCode } from './composables';\n import { BentoCountryCode, BentoCountryVariant } from './country.types';\n import { useI18n } from '@/utils/ts/i18n';\n import { deprecate } from '@/utils/ts/deprecate';\n import { BentoSummaryGridLayout } from '@/components/summary-grid';\n import { SUMMARY_GRID_LAYOUT_INJECTION_KEY } from '@/components/summary-grid/summary-grid.keys';\n\n /**\n * A component to display a country's label.\n * The label comes in four variates: iso code, country name, phone number code or capital city.\n *\n * @example\n * import { BentoCountry, BentoCountryCode } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoCountry },\n * template: `\n * <bento-country :code=\"BentoCountryCode.NL\" />\n * `\n * }\n */\n export default defineComponent({\n name: 'bento-country',\n components: { BentoTypography },\n props: {\n /**\n * Two character country code ([ISO 3166-1 alpha-2 format](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).\n */\n code: {\n type: String as PropType<BentoCountryCode | `${BentoCountryCode}`>,\n default: BentoCountryCode.UNKNOWN,\n validator: (value: BentoCountryCode) =>\n Object.values(BentoCountryCode).includes(value.toUpperCase() as BentoCountryCode),\n },\n\n /**\n * Custom label text.\n */\n label: {\n type: String,\n default: undefined,\n },\n\n /**\n * Which label variant to display.\n * @values iso, name, phone_code, capital\n */\n variant: {\n type: String as PropType<BentoCountryVariant | `${BentoCountryVariant}`>,\n default: BentoCountryVariant.NAME,\n validator: (value: BentoCountryVariant) => Object.values(BentoCountryVariant).includes(value),\n },\n },\n\n setup(props) {\n const { code, variant, label: customLabel } = toRefs(props);\n const { locale } = useI18n(undefined, true);\n const countryName = useCountryName(code, locale);\n const countryLabel = ref('');\n\n const getLabel = () => {\n switch (variant.value) {\n case BentoCountryVariant.ISO:\n return code.value;\n case BentoCountryVariant.PHONE_CODE:\n return `${code.value} (${useCountryPhoneCode(code).value})`;\n case BentoCountryVariant.CAPITAL:\n // TODO: do we need an API OR get a longer translations list???\n // Need to be able TRANSLATE as well as map...\n return `${useCountryCapital(code, locale).value} (${countryName.value})`;\n case BentoCountryVariant.CUSTOM:\n return customLabel.value;\n case BentoCountryVariant.NAME:\n default:\n return countryName.value;\n }\n };\n\n // Update label if variant prop changes\n watch(\n [variant, locale, code],\n () => {\n countryLabel.value = getLabel();\n },\n { immediate: true }\n );\n\n if (variant.value === 'custom' || props.label) {\n deprecate(\n 'BentoCountry \"custom\" variant and \"label\" prop',\n 'Use any of the other BentoCountry variants instead OR BentoTypography component for custom text',\n '2.0.0'\n );\n }\n\n /* == Summary-grid styles == */\n const registerPaymentMethodInSummaryGrid: BentoSummaryGridLayout = inject(\n SUMMARY_GRID_LAYOUT_INJECTION_KEY,\n () => ({\n isSummaryGridLayout: false,\n })\n );\n\n const { isSummaryGridLayout } = registerPaymentMethodInSummaryGrid();\n\n return {\n // Values\n countryName,\n countryLabel,\n isSummaryGridLayout,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./country.scss\" />\n"],"names":["_sfc_main","defineComponent","BentoTypography","BentoCountryCode","value","BentoCountryVariant","props","code","variant","customLabel","toRefs","locale","useI18n","countryName","useCountryName","countryLabel","ref","getLabel","useCountryPhoneCode","useCountryCapital","watch","deprecate","registerPaymentMethodInSummaryGrid","inject","SUMMARY_GRID_LAYOUT_INJECTION_KEY","isSummaryGridLayout"],"mappings":";;;;;;;AAiCA,MAAAA,IAAAC,EAAA;AAAA,EAAA,MAAA;AAAA,EACA,YAAA,EAAA,iBAAAC,EAAA;AAAA,EACA,OAAA;AAAA;AAAA;AAAA;AAAA,IACA,MAAA;AAAA,MAIA,MAAA;AAAA,MACA,SAAAC,EAAA;AAAA,MACA,WAAA,CAAAC,MAAA,OAAA,OAAAD,CAAA,EAAA,SAAAC,EAAA,YAAA,CAAA;AAAA,IAEA;AAAA;AAAA;AAAA;AAAA,IACA,OAAA;AAAA,MAKA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IACA,SAAA;AAAA,MAMA,MAAA;AAAA,MACA,SAAAC,EAAA;AAAA,MACA,WAAA,CAAAD,MAAA,OAAA,OAAAC,CAAA,EAAA,SAAAD,CAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,MAAAE,GAAA;AAGA,UAAA,EAAA,MAAAC,GAAA,SAAAC,GAAA,OAAAC,EAAA,IAAAC,EAAAJ,CAAA,GACA,EAAA,QAAAK,EAAA,IAAAC,EAAA,QAAA,EAAA,GACAC,IAAAC,EAAAP,GAAAI,CAAA,GACAI,IAAAC,EAAA,EAAA,GAEAC,IAAA,MAAA;AACA,cAAAT,EAAA,OAAA;AAAA,QAAA,KAAAH,EAAA;AAEA,iBAAAE,EAAA;AAAA,QAAA,KAAAF,EAAA;AAEA,iBAAA,GAAAE,EAAA,KAAA,KAAAW,EAAAX,CAAA,EAAA,KAAA;AAAA,QAAA,KAAAF,EAAA;AAIA,iBAAA,GAAAc,EAAAZ,GAAAI,CAAA,EAAA,KAAA,KAAAE,EAAA,KAAA;AAAA,QAAA,KAAAR,EAAA;AAEA,iBAAAI,EAAA;AAAA,QAAA,KAAAJ,EAAA;AAAA,QACA;AAEA,iBAAAQ,EAAA;AAAA,MAAA;AAAA,IACA;AAIA,IAAAO;AAAA,MAAA,CAAAZ,GAAAG,GAAAJ,CAAA;AAAA,MACA,MAAA;AAEA,QAAAQ,EAAA,QAAAE,EAAA;AAAA,MAAA;AAAA,MACA,EAAA,WAAA,GAAA;AAAA,IACA,IAGAT,EAAA,UAAA,YAAAF,EAAA,UACAe;AAAA,MAAA;AAAA,MACA;AAAA,MACA;AAAA,IACA;AAKA,UAAAC,IAAAC;AAAA,MAAAC;AAAA,MACA,OAAA;AAAA,QACA,qBAAA;AAAA,MACA;AAAA,IACA,GAGA,EAAA,qBAAAC,EAAA,IAAAH,EAAA;AAEA,WAAA;AAAA;AAAA,MAAA,aAAAT;AAAA,MAEA,cAAAE;AAAA,MACA,qBAAAU;AAAA,IACA;AAAA,EACA;AAEA,CAAA;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"country.CM5oZOyZ.js","sources":["../../src/components/country/country.vue"],"sourcesContent":["<template>\n <div class=\"b-country\">\n <div class=\"b-country__label\">\n <span v-if=\"isSummaryGridLayout\">{{ countryLabel }}</span>\n <bento-typography v-else el=\"span\">{{ countryLabel }}</bento-typography>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { defineComponent, inject, PropType, ref, toRefs, watch } from 'vue';\n import { BentoTypography } from '@/components/typography';\n import { useCountryCapital, useCountryName, useCountryPhoneCode } from './composables';\n import { BentoCountryCode, BentoCountryVariant } from './country.types';\n import { useI18n } from '@/utils/ts/i18n';\n import { deprecate } from '@/utils/ts/deprecate';\n import { BentoSummaryGridLayout } from '@/components/summary-grid';\n import { SUMMARY_GRID_LAYOUT_INJECTION_KEY } from '@/components/summary-grid/summary-grid.keys';\n\n /**\n * A component to display a country's label.\n * The label comes in four variates: iso code, country name, phone number code or capital city.\n *\n * @example\n * import { BentoCountry, BentoCountryCode } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoCountry },\n * template: `\n * <bento-country :code=\"BentoCountryCode.NL\" />\n * `\n * }\n */\n export default defineComponent({\n name: 'bento-country',\n components: { BentoTypography },\n props: {\n /**\n * Two character country code ([ISO 3166-1 alpha-2 format](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).\n */\n code: {\n type: String as PropType<BentoCountryCode | `${BentoCountryCode}`>,\n default: BentoCountryCode.UNKNOWN,\n validator: (value: BentoCountryCode) =>\n Object.values(BentoCountryCode).includes(value.toUpperCase() as BentoCountryCode),\n },\n\n /**\n * Custom label text.\n */\n label: {\n type: String,\n default: undefined,\n },\n\n /**\n * Which label variant to display.\n * @values iso, name, phone_code, capital\n */\n variant: {\n type: String as PropType<BentoCountryVariant | `${BentoCountryVariant}`>,\n default: BentoCountryVariant.NAME,\n validator: (value: BentoCountryVariant) => Object.values(BentoCountryVariant).includes(value),\n },\n },\n\n setup(props) {\n const { code, variant, label: customLabel } = toRefs(props);\n const { locale } = useI18n(undefined, true);\n const countryName = useCountryName(code, locale);\n const countryLabel = ref('');\n\n const getLabel = () => {\n switch (variant.value) {\n case BentoCountryVariant.ISO:\n return code.value;\n case BentoCountryVariant.PHONE_CODE:\n return `${code.value} (${useCountryPhoneCode(code).value})`;\n case BentoCountryVariant.CAPITAL:\n // TODO: do we need an API OR get a longer translations list???\n // Need to be able TRANSLATE as well as map...\n return `${useCountryCapital(code, locale).value} (${countryName.value})`;\n case BentoCountryVariant.CUSTOM:\n return customLabel.value;\n case BentoCountryVariant.NAME:\n default:\n return countryName.value;\n }\n };\n\n // Update label if variant prop changes\n watch(\n [variant, locale, code],\n () => {\n countryLabel.value = getLabel();\n },\n { immediate: true }\n );\n\n if (variant.value === 'custom' || props.label) {\n deprecate(\n 'BentoCountry \"custom\" variant and \"label\" prop',\n 'Use any of the other BentoCountry variants instead OR BentoTypography component for custom text',\n '2.0.0'\n );\n }\n\n /* == Summary-grid styles == */\n const registerPaymentMethodInSummaryGrid: BentoSummaryGridLayout = inject(\n SUMMARY_GRID_LAYOUT_INJECTION_KEY,\n () => ({\n isSummaryGridLayout: false,\n })\n );\n\n const { isSummaryGridLayout } = registerPaymentMethodInSummaryGrid();\n\n return {\n // Values\n countryName,\n countryLabel,\n isSummaryGridLayout,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./country.scss\" />\n"],"names":["_sfc_main","defineComponent","BentoTypography","BentoCountryCode","value","BentoCountryVariant","props","code","variant","customLabel","toRefs","locale","useI18n","countryName","useCountryName","countryLabel","ref","getLabel","useCountryPhoneCode","useCountryCapital","watch","deprecate","registerPaymentMethodInSummaryGrid","inject","SUMMARY_GRID_LAYOUT_INJECTION_KEY","isSummaryGridLayout"],"mappings":";;;;;;;AAiCA,MAAAA,IAAAC,EAAA;AAAA,EAAA,MAAA;AAAA,EACA,YAAA,EAAA,iBAAAC,EAAA;AAAA,EACA,OAAA;AAAA;AAAA;AAAA;AAAA,IACA,MAAA;AAAA,MAIA,MAAA;AAAA,MACA,SAAAC,EAAA;AAAA,MACA,WAAA,CAAAC,MAAA,OAAA,OAAAD,CAAA,EAAA,SAAAC,EAAA,YAAA,CAAA;AAAA,IAEA;AAAA;AAAA;AAAA;AAAA,IACA,OAAA;AAAA,MAKA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IACA,SAAA;AAAA,MAMA,MAAA;AAAA,MACA,SAAAC,EAAA;AAAA,MACA,WAAA,CAAAD,MAAA,OAAA,OAAAC,CAAA,EAAA,SAAAD,CAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,MAAAE,GAAA;AAGA,UAAA,EAAA,MAAAC,GAAA,SAAAC,GAAA,OAAAC,EAAA,IAAAC,EAAAJ,CAAA,GACA,EAAA,QAAAK,EAAA,IAAAC,EAAA,QAAA,EAAA,GACAC,IAAAC,EAAAP,GAAAI,CAAA,GACAI,IAAAC,EAAA,EAAA,GAEAC,IAAA,MAAA;AACA,cAAAT,EAAA,OAAA;AAAA,QAAA,KAAAH,EAAA;AAEA,iBAAAE,EAAA;AAAA,QAAA,KAAAF,EAAA;AAEA,iBAAA,GAAAE,EAAA,KAAA,KAAAW,EAAAX,CAAA,EAAA,KAAA;AAAA,QAAA,KAAAF,EAAA;AAIA,iBAAA,GAAAc,EAAAZ,GAAAI,CAAA,EAAA,KAAA,KAAAE,EAAA,KAAA;AAAA,QAAA,KAAAR,EAAA;AAEA,iBAAAI,EAAA;AAAA,QAAA,KAAAJ,EAAA;AAAA,QACA;AAEA,iBAAAQ,EAAA;AAAA,MAAA;AAAA,IACA;AAIA,IAAAO;AAAA,MAAA,CAAAZ,GAAAG,GAAAJ,CAAA;AAAA,MACA,MAAA;AAEA,QAAAQ,EAAA,QAAAE,EAAA;AAAA,MAAA;AAAA,MACA,EAAA,WAAA,GAAA;AAAA,IACA,IAGAT,EAAA,UAAA,YAAAF,EAAA,UACAe;AAAA,MAAA;AAAA,MACA;AAAA,MACA;AAAA,IACA;AAKA,UAAAC,IAAAC;AAAA,MAAAC;AAAA,MACA,OAAA;AAAA,QACA,qBAAA;AAAA,MACA;AAAA,IACA,GAGA,EAAA,qBAAAC,EAAA,IAAAH,EAAA;AAEA,WAAA;AAAA;AAAA,MAAA,aAAAT;AAAA,MAEA,cAAAE;AAAA,MACA,qBAAAU;AAAA,IACA;AAAA,EACA;AAEA,CAAA;;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as F, computed as m } from "vue";
2
- import { B as G } from "./typography.CqQaHXhq.js";
2
+ import { B as G } from "./typography.Bu_WAKdf.js";
3
3
  import { g as i } from "./get-slot-text.Cgn-E48s.js";
4
4
  import { n as E } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
5
5
  import "../assets/currency.css";
@@ -111,4 +111,4 @@ export {
111
111
  M as B,
112
112
  b as c
113
113
  };
114
- //# sourceMappingURL=currency.CbZqZrBz.js.map
114
+ //# sourceMappingURL=currency.CEqsVP2T.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"currency.CbZqZrBz.js","sources":["../../src/utils/ts/currency/countries-list.ts","../../src/utils/ts/currency/currency.ts","../../src/components/currency/currency.types.ts","../../src/components/currency/currency.vue"],"sourcesContent":["/**\n * Contains mapping configuration between currency code and exponent for amount in the corresponding currency.\n * Since the majority of the currencies have an exponent equal to 2, they are not listed here.\n * https://docs.adyen.com/development-resources/currency-codes\n * @type {Array}\n * @internal\n */\nexport const currencyExponentMap = [\n {\n exponent: 0,\n currencies: [\n 'CVE',\n 'DJF',\n 'GNF',\n 'IDR',\n 'JPY',\n 'KMF',\n 'KRW',\n 'PYG',\n 'RWF',\n 'UGX',\n 'VND',\n 'VUV',\n 'XAF',\n 'XOF',\n 'XPF',\n ],\n },\n {\n exponent: 1,\n currencies: ['MRO'],\n },\n {\n exponent: 3,\n currencies: ['BHD', 'IQD', 'JOD', 'KWD', 'LYD', 'OMR', 'TND'],\n },\n];\n","import { CurrencyAmount, CurrencyOptions, NumberFormatOptionsResult } from './currency.types';\nimport { currencyExponentMap } from './countries-list';\n\n/**\n * Returns exponent for specified currency code.\n */\nexport const getExponent = (currencyCode: string): number =>\n currencyExponentMap.find(obj => obj.currencies.includes(currencyCode))?.exponent ?? 2;\n\n/**\n * Converts passed amount from regular to minor units, based on currency exponent\n */\nexport const getMinorUnitsAmount = (amount: CurrencyAmount): number => {\n const exponent = getExponent(amount.currency);\n const value = Number(amount.value);\n\n return Math.round(value * 10 ** exponent);\n};\n\n/**\n * Returns normalized amount value from minor units as decimal point number (when exponent is more than zero).\n */\nexport const getNormalizedAmount = (amount: CurrencyAmount, exponent: number) =>\n // Amount is in minor units and have to be converted to number with fraction digits\n // return (amount.value * 100) / 10 ** exp;\n amount.value / 10 ** exponent;\n\n/**\n * /**\n * Prepares amount to be rendered by Intl.NumberFormat function.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat\n *\n * It enables language-sensitive number formatting.\n * Adds currency symbol and ISO code based on provided options\n * The result of execution - is a configuration object that is used in 'getLocalizedCurrencyValue' function\n *\n * @param amount - the value and currency to format.\n * @param options - the formatting options that are passed to the Intl.NumberFormat function.\n * @param majorUnits - if set to true, then currency major units will be used instead of minor ones\n */\nexport function getNumberFormatOptions(\n amount: CurrencyAmount,\n options: CurrencyOptions = {},\n majorUnits = false\n): NumberFormatOptionsResult {\n // Exponent is based on currency, if not specified explicitly.\n const exp = options?.exponent ?? getExponent(amount.currency);\n // Minor Units have to be retrieved from component passed amount\n const minorAmount = majorUnits ? getMinorUnitsAmount(amount) : amount.value;\n const amountInMinorUnits: CurrencyAmount = { ...amount, value: minorAmount };\n // Amount is in minor units and have to be converted to number with fraction digits\n const value = getNormalizedAmount(amountInMinorUnits, exp);\n // This is the requirement for currency component - to remove currency symbol for negative values\n const style = value < 0 ? 'decimal' : options?.style || 'currency';\n // If optionalFractions is true, numbers will not contain fraction digits when they are zero (e.g. 100.00 will be 100)\n const minimumFractionDigits = options?.optionalFractions ? 0 : exp;\n // If highPrecision is true, numbers can contain 10 fraction digits (highest precision in Adyen is about 5)\n const maximumFractionDigits = options?.highPrecision ? 10 : exp;\n\n return {\n value,\n format: {\n style,\n currency: amount.currency,\n currencyDisplay: 'symbol',\n minimumFractionDigits,\n maximumFractionDigits,\n },\n };\n}\n\n/**\n * Get a formatted and localised currency string given an amount and currency type.\n *\n * @param amountValue - the amount of the currency.\n * @param currency - the ISO 4217 currency code.\n * @param majorUnits - if set to true, then currency major units will be used instead of minor ones\n */\nexport const getLocalizedCurrencyValue = (amountValue: string, currency: string, majorUnits?: boolean): string => {\n const amount: CurrencyAmount = { value: parseFloat(amountValue), currency };\n const numberFormatOptions = getNumberFormatOptions(amount, { style: 'decimal' }, majorUnits);\n // TODO replace hardcoded locale with dynamic one, when i18n strategy is defined\n const formatter = new Intl.NumberFormat('en-US', numberFormatOptions.format as Intl.NumberFormatOptions);\n\n return formatter.format(numberFormatOptions.value);\n};\n","export enum BentoCurrencyISOCode {\n AFA = 'AFA',\n ALL = 'ALL',\n DZD = 'DZD',\n AOA = 'AOA',\n ARS = 'ARS',\n AMD = 'AMD',\n AWG = 'AWG',\n AUD = 'AUD',\n AZN = 'AZN',\n BSD = 'BSD',\n BHD = 'BHD',\n BDT = 'BDT',\n BBD = 'BBD',\n BYR = 'BYR',\n BEF = 'BEF',\n BZD = 'BZD',\n BMD = 'BMD',\n BTN = 'BTN',\n BTC = 'BTC',\n BOB = 'BOB',\n BAM = 'BAM',\n BWP = 'BWP',\n BRL = 'BRL',\n GBP = 'GBP',\n BND = 'BND',\n BGN = 'BGN',\n BIF = 'BIF',\n KHR = 'KHR',\n CAD = 'CAD',\n CVE = 'CVE',\n KYD = 'KYD',\n XOF = 'XOF',\n XAF = 'XAF',\n XPF = 'XPF',\n CLP = 'CLP',\n CLF = 'CLF',\n CNY = 'CNY',\n COP = 'COP',\n KMF = 'KMF',\n CDF = 'CDF',\n CRC = 'CRC',\n HRK = 'HRK',\n CUC = 'CUC',\n CZK = 'CZK',\n DKK = 'DKK',\n DJF = 'DJF',\n DOP = 'DOP',\n XCD = 'XCD',\n EGP = 'EGP',\n ERN = 'ERN',\n EEK = 'EEK',\n ETB = 'ETB',\n EUR = 'EUR',\n FKP = 'FKP',\n FJD = 'FJD',\n GMD = 'GMD',\n GEL = 'GEL',\n DEM = 'DEM',\n GHS = 'GHS',\n GIP = 'GIP',\n GRD = 'GRD',\n GTQ = 'GTQ',\n GNF = 'GNF',\n GYD = 'GYD',\n HTG = 'HTG',\n HNL = 'HNL',\n HKD = 'HKD',\n HUF = 'HUF',\n ISK = 'ISK',\n INR = 'INR',\n IDR = 'IDR',\n IRR = 'IRR',\n IQD = 'IQD',\n ILS = 'ILS',\n ITL = 'ITL',\n JMD = 'JMD',\n JPY = 'JPY',\n JOD = 'JOD',\n KZT = 'KZT',\n KES = 'KES',\n KWD = 'KWD',\n KGS = 'KGS',\n LAK = 'LAK',\n LVL = 'LVL',\n LBP = 'LBP',\n LSL = 'LSL',\n LRD = 'LRD',\n LYD = 'LYD',\n LTC = 'LTC',\n LTL = 'LTL',\n MOP = 'MOP',\n MKD = 'MKD',\n MGA = 'MGA',\n MWK = 'MWK',\n MYR = 'MYR',\n MVR = 'MVR',\n MRO = 'MRO',\n MUR = 'MUR',\n MXN = 'MXN',\n MDL = 'MDL',\n MNT = 'MNT',\n MAD = 'MAD',\n MZM = 'MZM',\n MMK = 'MMK',\n NAD = 'NAD',\n NPR = 'NPR',\n ANG = 'ANG',\n TWD = 'TWD',\n NZD = 'NZD',\n NIO = 'NIO',\n NGN = 'NGN',\n KPW = 'KPW',\n NOK = 'NOK',\n OMR = 'OMR',\n PKR = 'PKR',\n PAB = 'PAB',\n PGK = 'PGK',\n PYG = 'PYG',\n PEN = 'PEN',\n PHP = 'PHP',\n PLN = 'PLN',\n QAR = 'QAR',\n RON = 'RON',\n RUB = 'RUB',\n RWF = 'RWF',\n SVC = 'SVC',\n WST = 'WST',\n STD = 'STD',\n SAR = 'SAR',\n RSD = 'RSD',\n SCR = 'SCR',\n SLL = 'SLL',\n SGD = 'SGD',\n SKK = 'SKK',\n SBD = 'SBD',\n SOS = 'SOS',\n ZAR = 'ZAR',\n KRW = 'KRW',\n SSP = 'SSP',\n XDR = 'XDR',\n LKR = 'LKR',\n SHP = 'SHP',\n SDG = 'SDG',\n SRD = 'SRD',\n SZL = 'SZL',\n SEK = 'SEK',\n CHF = 'CHF',\n SYP = 'SYP',\n TJS = 'TJS',\n TZS = 'TZS',\n THB = 'THB',\n TOP = 'TOP',\n TTD = 'TTD',\n TND = 'TND',\n TRY = 'TRY',\n TMT = 'TMT',\n UGX = 'UGX',\n UAH = 'UAH',\n AED = 'AED',\n UYU = 'UYU',\n USD = 'USD',\n UZS = 'UZS',\n VUV = 'VUV',\n VEF = 'VEF',\n VND = 'VND',\n YER = 'YER',\n ZMK = 'ZMK',\n ZWL = 'ZWL',\n}\n","<template>\n <div class=\"b-currency\">\n <bento-typography v-if=\"!disableTypography\" class=\"b-currency__amount\" el=\"span\" variant=\"body\" strong>\n {{ formattedCurrency }} {{ currency }}\n </bento-typography>\n <template v-else>{{ formattedCurrency }} {{ currency }}</template>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, PropType } from 'vue';\n import { getLocalizedCurrencyValue } from '@/utils/ts/currency/currency';\n import { BentoTypography } from '@/components/typography';\n import { BentoCurrencyISOCode } from '@/components/currency/currency.types';\n import { getSlotText } from '@/utils/ts/get-slot-text';\n\n /**\n * A Currency component is used to display a formatted currency value.\n *\n * @example\n * import { BentoCurrency } from '@adyen/adl-vue-components';\n * import { BentoCurrency, BentoCurrencyCode } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoCurrency },\n * template: `\n * <bento-currency :currency=\"CurrencyCode.USD\">\n * 76.33\n * </bento-currency>\n * `\n * }\n */\n export default defineComponent({\n name: 'bento-currency',\n components: { BentoTypography },\n props: {\n currency: {\n type: String as PropType<BentoCurrencyISOCode | `${BentoCurrencyISOCode}`>,\n default: BentoCurrencyISOCode.EUR,\n validator: (value: BentoCurrencyISOCode) => Object.values(BentoCurrencyISOCode).includes(value),\n },\n /**\n * Accepts currency value in major units instead of minor ones\n */\n majorUnits: {\n type: Boolean,\n default: false,\n },\n /**\n * Disable the default typography for the component. Only use this when the component is inside another typography component.\n */\n disableTypography: {\n type: Boolean,\n default: false,\n },\n },\n setup(props, { slots }) {\n const formattedCurrency = computed((): string => {\n const value = slots.default ? getSlotText(slots)('default') : null;\n return getLocalizedCurrencyValue(value, props.currency, props.majorUnits);\n });\n\n return {\n // Values\n formattedCurrency,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./currency.scss\" />\n"],"names":["currencyExponentMap","getExponent","currencyCode","_a","obj","getMinorUnitsAmount","amount","exponent","value","getNormalizedAmount","getNumberFormatOptions","options","majorUnits","exp","minorAmount","amountInMinorUnits","style","minimumFractionDigits","maximumFractionDigits","getLocalizedCurrencyValue","amountValue","currency","numberFormatOptions","BentoCurrencyISOCode","BentoCurrencyISOCode2","_sfc_main","defineComponent","BentoTypography","props","slots","computed","getSlotText"],"mappings":"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AAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OAxKQA,IAAAD,KAAA,CAAA,CAAA;ACgCZ,MAAAE,IAAAC,EAAA;AAAA,EAAA,MAAA;AAAA,EACA,YAAA,EAAA,iBAAAC,EAAA;AAAA,EACA,OAAA;AAAA,IACA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAAJ,EAAA;AAAA,MACA,WAAA,CAAAf,MAAA,OAAA,OAAAe,CAAA,EAAA,SAAAf,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IACA,YAAA;AAAA,MAIA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IACA,mBAAA;AAAA,MAIA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,MAAAoB,GAAA,EAAA,OAAAC,EAAA,GAAA;AAOA,WAAA;AAAA;AAAA,MAAA,mBALAC,EAAA,MAAA;AACA,cAAAtB,IAAAqB,EAAA,UAAAE,EAAAF,CAAA,EAAA,SAAA,IAAA;AACA,eAAAV,EAAAX,GAAAoB,EAAA,UAAAA,EAAA,UAAA;AAAA,MAAA,CAAA;AAAA,IAKA;AAAA,EACA;AAEA,CAAA;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"currency.CEqsVP2T.js","sources":["../../src/utils/ts/currency/countries-list.ts","../../src/utils/ts/currency/currency.ts","../../src/components/currency/currency.types.ts","../../src/components/currency/currency.vue"],"sourcesContent":["/**\n * Contains mapping configuration between currency code and exponent for amount in the corresponding currency.\n * Since the majority of the currencies have an exponent equal to 2, they are not listed here.\n * https://docs.adyen.com/development-resources/currency-codes\n * @type {Array}\n * @internal\n */\nexport const currencyExponentMap = [\n {\n exponent: 0,\n currencies: [\n 'CVE',\n 'DJF',\n 'GNF',\n 'IDR',\n 'JPY',\n 'KMF',\n 'KRW',\n 'PYG',\n 'RWF',\n 'UGX',\n 'VND',\n 'VUV',\n 'XAF',\n 'XOF',\n 'XPF',\n ],\n },\n {\n exponent: 1,\n currencies: ['MRO'],\n },\n {\n exponent: 3,\n currencies: ['BHD', 'IQD', 'JOD', 'KWD', 'LYD', 'OMR', 'TND'],\n },\n];\n","import { CurrencyAmount, CurrencyOptions, NumberFormatOptionsResult } from './currency.types';\nimport { currencyExponentMap } from './countries-list';\n\n/**\n * Returns exponent for specified currency code.\n */\nexport const getExponent = (currencyCode: string): number =>\n currencyExponentMap.find(obj => obj.currencies.includes(currencyCode))?.exponent ?? 2;\n\n/**\n * Converts passed amount from regular to minor units, based on currency exponent\n */\nexport const getMinorUnitsAmount = (amount: CurrencyAmount): number => {\n const exponent = getExponent(amount.currency);\n const value = Number(amount.value);\n\n return Math.round(value * 10 ** exponent);\n};\n\n/**\n * Returns normalized amount value from minor units as decimal point number (when exponent is more than zero).\n */\nexport const getNormalizedAmount = (amount: CurrencyAmount, exponent: number) =>\n // Amount is in minor units and have to be converted to number with fraction digits\n // return (amount.value * 100) / 10 ** exp;\n amount.value / 10 ** exponent;\n\n/**\n * /**\n * Prepares amount to be rendered by Intl.NumberFormat function.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat\n *\n * It enables language-sensitive number formatting.\n * Adds currency symbol and ISO code based on provided options\n * The result of execution - is a configuration object that is used in 'getLocalizedCurrencyValue' function\n *\n * @param amount - the value and currency to format.\n * @param options - the formatting options that are passed to the Intl.NumberFormat function.\n * @param majorUnits - if set to true, then currency major units will be used instead of minor ones\n */\nexport function getNumberFormatOptions(\n amount: CurrencyAmount,\n options: CurrencyOptions = {},\n majorUnits = false\n): NumberFormatOptionsResult {\n // Exponent is based on currency, if not specified explicitly.\n const exp = options?.exponent ?? getExponent(amount.currency);\n // Minor Units have to be retrieved from component passed amount\n const minorAmount = majorUnits ? getMinorUnitsAmount(amount) : amount.value;\n const amountInMinorUnits: CurrencyAmount = { ...amount, value: minorAmount };\n // Amount is in minor units and have to be converted to number with fraction digits\n const value = getNormalizedAmount(amountInMinorUnits, exp);\n // This is the requirement for currency component - to remove currency symbol for negative values\n const style = value < 0 ? 'decimal' : options?.style || 'currency';\n // If optionalFractions is true, numbers will not contain fraction digits when they are zero (e.g. 100.00 will be 100)\n const minimumFractionDigits = options?.optionalFractions ? 0 : exp;\n // If highPrecision is true, numbers can contain 10 fraction digits (highest precision in Adyen is about 5)\n const maximumFractionDigits = options?.highPrecision ? 10 : exp;\n\n return {\n value,\n format: {\n style,\n currency: amount.currency,\n currencyDisplay: 'symbol',\n minimumFractionDigits,\n maximumFractionDigits,\n },\n };\n}\n\n/**\n * Get a formatted and localised currency string given an amount and currency type.\n *\n * @param amountValue - the amount of the currency.\n * @param currency - the ISO 4217 currency code.\n * @param majorUnits - if set to true, then currency major units will be used instead of minor ones\n */\nexport const getLocalizedCurrencyValue = (amountValue: string, currency: string, majorUnits?: boolean): string => {\n const amount: CurrencyAmount = { value: parseFloat(amountValue), currency };\n const numberFormatOptions = getNumberFormatOptions(amount, { style: 'decimal' }, majorUnits);\n // TODO replace hardcoded locale with dynamic one, when i18n strategy is defined\n const formatter = new Intl.NumberFormat('en-US', numberFormatOptions.format as Intl.NumberFormatOptions);\n\n return formatter.format(numberFormatOptions.value);\n};\n","export enum BentoCurrencyISOCode {\n AFA = 'AFA',\n ALL = 'ALL',\n DZD = 'DZD',\n AOA = 'AOA',\n ARS = 'ARS',\n AMD = 'AMD',\n AWG = 'AWG',\n AUD = 'AUD',\n AZN = 'AZN',\n BSD = 'BSD',\n BHD = 'BHD',\n BDT = 'BDT',\n BBD = 'BBD',\n BYR = 'BYR',\n BEF = 'BEF',\n BZD = 'BZD',\n BMD = 'BMD',\n BTN = 'BTN',\n BTC = 'BTC',\n BOB = 'BOB',\n BAM = 'BAM',\n BWP = 'BWP',\n BRL = 'BRL',\n GBP = 'GBP',\n BND = 'BND',\n BGN = 'BGN',\n BIF = 'BIF',\n KHR = 'KHR',\n CAD = 'CAD',\n CVE = 'CVE',\n KYD = 'KYD',\n XOF = 'XOF',\n XAF = 'XAF',\n XPF = 'XPF',\n CLP = 'CLP',\n CLF = 'CLF',\n CNY = 'CNY',\n COP = 'COP',\n KMF = 'KMF',\n CDF = 'CDF',\n CRC = 'CRC',\n HRK = 'HRK',\n CUC = 'CUC',\n CZK = 'CZK',\n DKK = 'DKK',\n DJF = 'DJF',\n DOP = 'DOP',\n XCD = 'XCD',\n EGP = 'EGP',\n ERN = 'ERN',\n EEK = 'EEK',\n ETB = 'ETB',\n EUR = 'EUR',\n FKP = 'FKP',\n FJD = 'FJD',\n GMD = 'GMD',\n GEL = 'GEL',\n DEM = 'DEM',\n GHS = 'GHS',\n GIP = 'GIP',\n GRD = 'GRD',\n GTQ = 'GTQ',\n GNF = 'GNF',\n GYD = 'GYD',\n HTG = 'HTG',\n HNL = 'HNL',\n HKD = 'HKD',\n HUF = 'HUF',\n ISK = 'ISK',\n INR = 'INR',\n IDR = 'IDR',\n IRR = 'IRR',\n IQD = 'IQD',\n ILS = 'ILS',\n ITL = 'ITL',\n JMD = 'JMD',\n JPY = 'JPY',\n JOD = 'JOD',\n KZT = 'KZT',\n KES = 'KES',\n KWD = 'KWD',\n KGS = 'KGS',\n LAK = 'LAK',\n LVL = 'LVL',\n LBP = 'LBP',\n LSL = 'LSL',\n LRD = 'LRD',\n LYD = 'LYD',\n LTC = 'LTC',\n LTL = 'LTL',\n MOP = 'MOP',\n MKD = 'MKD',\n MGA = 'MGA',\n MWK = 'MWK',\n MYR = 'MYR',\n MVR = 'MVR',\n MRO = 'MRO',\n MUR = 'MUR',\n MXN = 'MXN',\n MDL = 'MDL',\n MNT = 'MNT',\n MAD = 'MAD',\n MZM = 'MZM',\n MMK = 'MMK',\n NAD = 'NAD',\n NPR = 'NPR',\n ANG = 'ANG',\n TWD = 'TWD',\n NZD = 'NZD',\n NIO = 'NIO',\n NGN = 'NGN',\n KPW = 'KPW',\n NOK = 'NOK',\n OMR = 'OMR',\n PKR = 'PKR',\n PAB = 'PAB',\n PGK = 'PGK',\n PYG = 'PYG',\n PEN = 'PEN',\n PHP = 'PHP',\n PLN = 'PLN',\n QAR = 'QAR',\n RON = 'RON',\n RUB = 'RUB',\n RWF = 'RWF',\n SVC = 'SVC',\n WST = 'WST',\n STD = 'STD',\n SAR = 'SAR',\n RSD = 'RSD',\n SCR = 'SCR',\n SLL = 'SLL',\n SGD = 'SGD',\n SKK = 'SKK',\n SBD = 'SBD',\n SOS = 'SOS',\n ZAR = 'ZAR',\n KRW = 'KRW',\n SSP = 'SSP',\n XDR = 'XDR',\n LKR = 'LKR',\n SHP = 'SHP',\n SDG = 'SDG',\n SRD = 'SRD',\n SZL = 'SZL',\n SEK = 'SEK',\n CHF = 'CHF',\n SYP = 'SYP',\n TJS = 'TJS',\n TZS = 'TZS',\n THB = 'THB',\n TOP = 'TOP',\n TTD = 'TTD',\n TND = 'TND',\n TRY = 'TRY',\n TMT = 'TMT',\n UGX = 'UGX',\n UAH = 'UAH',\n AED = 'AED',\n UYU = 'UYU',\n USD = 'USD',\n UZS = 'UZS',\n VUV = 'VUV',\n VEF = 'VEF',\n VND = 'VND',\n YER = 'YER',\n ZMK = 'ZMK',\n ZWL = 'ZWL',\n}\n","<template>\n <div class=\"b-currency\">\n <bento-typography v-if=\"!disableTypography\" class=\"b-currency__amount\" el=\"span\" variant=\"body\" strong>\n {{ formattedCurrency }} {{ currency }}\n </bento-typography>\n <template v-else>{{ formattedCurrency }} {{ currency }}</template>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, PropType } from 'vue';\n import { getLocalizedCurrencyValue } from '@/utils/ts/currency/currency';\n import { BentoTypography } from '@/components/typography';\n import { BentoCurrencyISOCode } from '@/components/currency/currency.types';\n import { getSlotText } from '@/utils/ts/get-slot-text';\n\n /**\n * A Currency component is used to display a formatted currency value.\n *\n * @example\n * import { BentoCurrency } from '@adyen/adl-vue-components';\n * import { BentoCurrency, BentoCurrencyCode } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoCurrency },\n * template: `\n * <bento-currency :currency=\"CurrencyCode.USD\">\n * 76.33\n * </bento-currency>\n * `\n * }\n */\n export default defineComponent({\n name: 'bento-currency',\n components: { BentoTypography },\n props: {\n currency: {\n type: String as PropType<BentoCurrencyISOCode | `${BentoCurrencyISOCode}`>,\n default: BentoCurrencyISOCode.EUR,\n validator: (value: BentoCurrencyISOCode) => Object.values(BentoCurrencyISOCode).includes(value),\n },\n /**\n * Accepts currency value in major units instead of minor ones\n */\n majorUnits: {\n type: Boolean,\n default: false,\n },\n /**\n * Disable the default typography for the component. Only use this when the component is inside another typography component.\n */\n disableTypography: {\n type: Boolean,\n default: false,\n },\n },\n setup(props, { slots }) {\n const formattedCurrency = computed((): string => {\n const value = slots.default ? getSlotText(slots)('default') : null;\n return getLocalizedCurrencyValue(value, props.currency, props.majorUnits);\n });\n\n return {\n // Values\n formattedCurrency,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./currency.scss\" />\n"],"names":["currencyExponentMap","getExponent","currencyCode","_a","obj","getMinorUnitsAmount","amount","exponent","value","getNormalizedAmount","getNumberFormatOptions","options","majorUnits","exp","minorAmount","amountInMinorUnits","style","minimumFractionDigits","maximumFractionDigits","getLocalizedCurrencyValue","amountValue","currency","numberFormatOptions","BentoCurrencyISOCode","BentoCurrencyISOCode2","_sfc_main","defineComponent","BentoTypography","props","slots","computed","getSlotText"],"mappings":"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AAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OAxKQA,IAAAD,KAAA,CAAA,CAAA;ACgCZ,MAAAE,IAAAC,EAAA;AAAA,EAAA,MAAA;AAAA,EACA,YAAA,EAAA,iBAAAC,EAAA;AAAA,EACA,OAAA;AAAA,IACA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAAJ,EAAA;AAAA,MACA,WAAA,CAAAf,MAAA,OAAA,OAAAe,CAAA,EAAA,SAAAf,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IACA,YAAA;AAAA,MAIA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IACA,mBAAA;AAAA,MAIA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,MAAAoB,GAAA,EAAA,OAAAC,EAAA,GAAA;AAOA,WAAA;AAAA;AAAA,MAAA,mBALAC,EAAA,MAAA;AACA,cAAAtB,IAAAqB,EAAA,UAAAE,EAAAF,CAAA,EAAA,SAAA,IAAA;AACA,eAAAV,EAAAX,GAAAoB,EAAA,UAAAA,EAAA,UAAA;AAAA,MAAA,CAAA;AAAA,IAKA;AAAA,EACA;AAEA,CAAA;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as C, useSlots as T, ref as d, computed as l, watch as m, onUnmounted as R, onMounted as x } from "vue";
2
- import { B as y } from "./header.zacQVbjn.js";
3
- import { B as I, a as H } from "./tabs.D4ORafqH.js";
2
+ import { B as y } from "./header.DGuyhMle.js";
3
+ import { B as I, a as H } from "./tabs.BiTr_PdY.js";
4
4
  import { a as P } from "./index.iCshT3Hx.js";
5
5
  import { o as W } from "./resize.Bqks3WUm.js";
6
6
  import { u as S } from "./use-has-slot.C9lQZ6nz.js";
@@ -102,4 +102,4 @@ export {
102
102
  st as a,
103
103
  tt as d
104
104
  };
105
- //# sourceMappingURL=dashboard-section.BfXtTf6l.js.map
105
+ //# sourceMappingURL=dashboard-section.CilMYHUI.js.map