@adyen/bento-vue3 1.69.0 → 1.70.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 (300) hide show
  1. package/dist/@types/index.d.ts +250 -823
  2. package/dist/accordion.js +1 -1
  3. package/dist/action-bar.js +1 -1
  4. package/dist/alert.js +1 -1
  5. package/dist/assets/accordion-item.css +1 -1
  6. package/dist/assets/action-bar.css +1 -1
  7. package/dist/assets/alert.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/controls-group.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/dialog-page.css +1 -1
  21. package/dist/assets/dropdown-tag.css +1 -1
  22. package/dist/assets/dropdown.css +1 -1
  23. package/dist/assets/error-message.css +1 -1
  24. package/dist/assets/file-uploader.css +1 -1
  25. package/dist/assets/filter-bar.css +1 -1
  26. package/dist/assets/header-with-views.css +1 -1
  27. package/dist/assets/info-icon.css +1 -1
  28. package/dist/assets/input-field-phone-number.css +1 -1
  29. package/dist/assets/inspector.css +1 -1
  30. package/dist/assets/loading-indicator.css +1 -1
  31. package/dist/assets/modal-fullscreen.css +1 -1
  32. package/dist/assets/pagination.css +1 -1
  33. package/dist/assets/popper-container.css +1 -1
  34. package/dist/assets/radio-group.css +1 -1
  35. package/dist/assets/radio-input.css +1 -1
  36. package/dist/assets/sidepanel.css +1 -1
  37. package/dist/assets/tab.css +1 -1
  38. package/dist/assets/tag.css +1 -1
  39. package/dist/assets/timeline-item.css +1 -1
  40. package/dist/assets/toggle-button.css +1 -1
  41. package/dist/assets/toggle.css +1 -1
  42. package/dist/assets/tooltip.css +1 -1
  43. package/dist/assets/typography.css +1 -1
  44. package/dist/assets/use-cached-selected-values.css +1 -1
  45. package/dist/avatar.js +1 -1
  46. package/dist/button.js +2 -2
  47. package/dist/card.js +1 -1
  48. package/dist/checkbox.js +2 -2
  49. package/dist/chip.js +1 -1
  50. package/dist/chunks/{accordion-item.H062lKz1.js → accordion-item.6etqAJV9.js} +2 -2
  51. package/dist/chunks/{accordion-item.H062lKz1.js.map → accordion-item.6etqAJV9.js.map} +1 -1
  52. package/dist/chunks/{action-bar.CbO7oNER.js → action-bar.CweA2FeY.js} +5 -5
  53. package/dist/chunks/{action-bar.CbO7oNER.js.map → action-bar.CweA2FeY.js.map} +1 -1
  54. package/dist/chunks/alert.Dzx5MzgE.js +171 -0
  55. package/dist/chunks/alert.Dzx5MzgE.js.map +1 -0
  56. package/dist/chunks/{avatar.BtxoYBvq.js → avatar.Dq59yj6m.js} +2 -2
  57. package/dist/chunks/{avatar.BtxoYBvq.js.map → avatar.Dq59yj6m.js.map} +1 -1
  58. package/dist/chunks/{base-button.Bcwm87OM.js → base-button.CjYb5Y8k.js} +2 -2
  59. package/dist/chunks/{base-button.Bcwm87OM.js.map → base-button.CjYb5Y8k.js.map} +1 -1
  60. package/dist/chunks/{base-modal.7vdoT8zp.js → base-modal.BrBcILSe.js} +6 -6
  61. package/dist/chunks/{base-modal.7vdoT8zp.js.map → base-modal.BrBcILSe.js.map} +1 -1
  62. package/dist/chunks/bin.DuHlEQBO.js +37 -0
  63. package/dist/chunks/bin.DuHlEQBO.js.map +1 -0
  64. package/dist/chunks/{button-actions-with-menu.zdsGh7un.js → button-actions-with-menu.CBuoSd3w.js} +2 -2
  65. package/dist/chunks/{button-actions-with-menu.zdsGh7un.js.map → button-actions-with-menu.CBuoSd3w.js.map} +1 -1
  66. package/dist/chunks/button-actions.types.BptAXjD8.js.map +1 -1
  67. package/dist/chunks/{button.wMNce6wZ.js → button.C-MAa6ut.js} +4 -4
  68. package/dist/chunks/{button.wMNce6wZ.js.map → button.C-MAa6ut.js.map} +1 -1
  69. package/dist/chunks/{calendar.CYrrR8wd.js → calendar.DFHiga9k.js} +32 -32
  70. package/dist/chunks/{calendar.CYrrR8wd.js.map → calendar.DFHiga9k.js.map} +1 -1
  71. package/dist/chunks/{card.CNYYIpQW.js → card.BspLDcas.js} +4 -4
  72. package/dist/chunks/{card.CNYYIpQW.js.map → card.BspLDcas.js.map} +1 -1
  73. package/dist/chunks/{checkbox-group.fX5_d3XZ.js → checkbox-group.DIXgr1WQ.js} +6 -6
  74. package/dist/chunks/{checkbox-group.fX5_d3XZ.js.map → checkbox-group.DIXgr1WQ.js.map} +1 -1
  75. package/dist/chunks/{checkbox-input.B1hV3DU-.js → checkbox-input.BXNGT9U0.js} +2 -2
  76. package/dist/chunks/{checkbox-input.B1hV3DU-.js.map → checkbox-input.BXNGT9U0.js.map} +1 -1
  77. package/dist/chunks/{checkbox.C62ek8A8.js → checkbox.M6lKj2hQ.js} +6 -6
  78. package/dist/chunks/{checkbox.C62ek8A8.js.map → checkbox.M6lKj2hQ.js.map} +1 -1
  79. package/dist/chunks/{chip.CoBGGkn7.js → chip.DcpP3zb6.js} +3 -3
  80. package/dist/chunks/{chip.CoBGGkn7.js.map → chip.DcpP3zb6.js.map} +1 -1
  81. package/dist/chunks/{code-snippet.CrKl93Wq.js → code-snippet.CKrxKjkQ.js} +7 -7
  82. package/dist/chunks/{code-snippet.CrKl93Wq.js.map → code-snippet.CKrxKjkQ.js.map} +1 -1
  83. package/dist/chunks/{controls-group.2xftPPd7.js → controls-group.CXVHTaYp.js} +32 -29
  84. package/dist/chunks/controls-group.CXVHTaYp.js.map +1 -0
  85. package/dist/chunks/{copy.-8xjj6Hr.js → copy.C4DAAiPw.js} +5 -5
  86. package/dist/chunks/{copy.-8xjj6Hr.js.map → copy.C4DAAiPw.js.map} +1 -1
  87. package/dist/chunks/{country.BdqTkF7A.js → country.RVvsGwuV.js} +3 -3
  88. package/dist/chunks/{country.BdqTkF7A.js.map → country.RVvsGwuV.js.map} +1 -1
  89. package/dist/chunks/{currency.XiEfa4LT.js → currency.CN4UnCx8.js} +2 -2
  90. package/dist/chunks/{currency.XiEfa4LT.js.map → currency.CN4UnCx8.js.map} +1 -1
  91. package/dist/chunks/{dashboard-section.Di16gWGI.js → dashboard-section.Cll3tn0q.js} +3 -3
  92. package/dist/chunks/{dashboard-section.Di16gWGI.js.map → dashboard-section.Cll3tn0q.js.map} +1 -1
  93. package/dist/chunks/{dashed-underline.CyZEW1LZ.js → dashed-underline.2OYxO-Rh.js} +4 -4
  94. package/dist/chunks/{dashed-underline.CyZEW1LZ.js.map → dashed-underline.2OYxO-Rh.js.map} +1 -1
  95. package/dist/chunks/{data-grid-template.CnYNEhPR.js → data-grid-template.CTRHofoW.js} +4 -4
  96. package/dist/chunks/{data-grid-template.CnYNEhPR.js.map → data-grid-template.CTRHofoW.js.map} +1 -1
  97. package/dist/chunks/{data-grid.aEQt05d9.js → data-grid.DMOTTywp.js} +185 -185
  98. package/dist/chunks/data-grid.DMOTTywp.js.map +1 -0
  99. package/dist/chunks/{date-picker.Bk0A3rha.js → date-picker.CBlQ0ql7.js} +18 -18
  100. package/dist/chunks/{date-picker.Bk0A3rha.js.map → date-picker.CBlQ0ql7.js.map} +1 -1
  101. package/dist/chunks/{date-range-picker.l-CSmXBk.js → date-range-picker.D-gGqpFB.js} +25 -25
  102. package/dist/chunks/{date-range-picker.l-CSmXBk.js.map → date-range-picker.D-gGqpFB.js.map} +1 -1
  103. package/dist/chunks/{date.BZENjOb6.js → date.4GAXrgy5.js} +2 -2
  104. package/dist/chunks/{date.BZENjOb6.js.map → date.4GAXrgy5.js.map} +1 -1
  105. package/dist/chunks/{dialog-page.BJaRwRhF.js → dialog-page.VSJgHY3C.js} +3 -3
  106. package/dist/chunks/{dialog-page.BJaRwRhF.js.map → dialog-page.VSJgHY3C.js.map} +1 -1
  107. package/dist/chunks/{dropdown-default-textbox.DWgL31p1.js → dropdown-default-textbox.CGsOngY1.js} +2 -2
  108. package/dist/chunks/{dropdown-default-textbox.DWgL31p1.js.map → dropdown-default-textbox.CGsOngY1.js.map} +1 -1
  109. package/dist/chunks/dropdown-tag.DlFpUeXa.js +296 -0
  110. package/dist/chunks/dropdown-tag.DlFpUeXa.js.map +1 -0
  111. package/dist/chunks/{dropdown.Co86azLK.js → dropdown.agfzvJZE.js} +22 -22
  112. package/dist/chunks/{dropdown.Co86azLK.js.map → dropdown.agfzvJZE.js.map} +1 -1
  113. package/dist/chunks/{empty-state.YNNEDsnK.js → empty-state.BTaeZdQu.js} +3 -3
  114. package/dist/chunks/{empty-state.YNNEDsnK.js.map → empty-state.BTaeZdQu.js.map} +1 -1
  115. package/dist/chunks/{error-message.Cu4cIfdg.js → error-message.B1P5ictH.js} +5 -5
  116. package/dist/chunks/{error-message.Cu4cIfdg.js.map → error-message.B1P5ictH.js.map} +1 -1
  117. package/dist/chunks/{file-uploader.09149Fx8.js → file-uploader.Vac1Cu0i.js} +21 -19
  118. package/dist/chunks/file-uploader.Vac1Cu0i.js.map +1 -0
  119. package/dist/chunks/{filter-bar.D6n7Srr5.js → filter-bar.uUpoP-XZ.js} +233 -236
  120. package/dist/chunks/filter-bar.uUpoP-XZ.js.map +1 -0
  121. package/dist/chunks/{fixed-scroller.QlDKOD7y.js → fixed-scroller.DSGxXiAH.js} +2 -2
  122. package/dist/chunks/{fixed-scroller.QlDKOD7y.js.map → fixed-scroller.DSGxXiAH.js.map} +1 -1
  123. package/dist/chunks/{footer-actions.0cBTJ1kw.js → footer-actions.gRKTKGts.js} +4 -4
  124. package/dist/chunks/{footer-actions.0cBTJ1kw.js.map → footer-actions.gRKTKGts.js.map} +1 -1
  125. package/dist/chunks/{form-layout-title.Cq_xVPUq.js → form-layout-title.DdRqnXXi.js} +3 -3
  126. package/dist/chunks/{form-layout-title.Cq_xVPUq.js.map → form-layout-title.DdRqnXXi.js.map} +1 -1
  127. package/dist/chunks/{header-meta.BJGF0E3r.js → header-meta.Ct79L1O8.js} +5 -5
  128. package/dist/chunks/{header-meta.BJGF0E3r.js.map → header-meta.Ct79L1O8.js.map} +1 -1
  129. package/dist/chunks/{header-with-views.Drzq84zs.js → header-with-views.BVHdSAKp.js} +211 -207
  130. package/dist/chunks/header-with-views.BVHdSAKp.js.map +1 -0
  131. package/dist/chunks/{header.B6DzOioR.js → header.Cd1P8lYK.js} +4 -4
  132. package/dist/chunks/{header.B6DzOioR.js.map → header.Cd1P8lYK.js.map} +1 -1
  133. package/dist/chunks/{info-icon.DKnzFXy1.js → info-icon.Bl0iKUfC.js} +7 -7
  134. package/dist/chunks/{info-icon.DKnzFXy1.js.map → info-icon.Bl0iKUfC.js.map} +1 -1
  135. package/dist/chunks/info.BKwey1HA.js +44 -0
  136. package/dist/chunks/info.BKwey1HA.js.map +1 -0
  137. package/dist/chunks/{input-field-password.DC8lJFsr.js → input-field-password.DkIWrrxy.js} +7 -7
  138. package/dist/chunks/{input-field-password.DC8lJFsr.js.map → input-field-password.DkIWrrxy.js.map} +1 -1
  139. package/dist/chunks/{input-field-phone-number.BbMEzDiR.js → input-field-phone-number.EXlRu8qq.js} +9 -9
  140. package/dist/chunks/{input-field-phone-number.BbMEzDiR.js.map → input-field-phone-number.EXlRu8qq.js.map} +1 -1
  141. package/dist/chunks/{input-field.6bH4yGb2.js → input-field.CgbiOju9.js} +4 -4
  142. package/dist/chunks/{input-field.6bH4yGb2.js.map → input-field.CgbiOju9.js.map} +1 -1
  143. package/dist/chunks/{inspector.Bsv68G-e.js → inspector.BGtTMtE0.js} +4 -4
  144. package/dist/chunks/{inspector.Bsv68G-e.js.map → inspector.BGtTMtE0.js.map} +1 -1
  145. package/dist/chunks/{layout-row.CIg1pwOd.js → layout-row.BPfOPn4x.js} +2 -2
  146. package/dist/chunks/{layout-row.CIg1pwOd.js.map → layout-row.BPfOPn4x.js.map} +1 -1
  147. package/dist/chunks/{link.Di0rtpOj.js → link.cwPmWlsk.js} +2 -2
  148. package/dist/chunks/{link.Di0rtpOj.js.map → link.cwPmWlsk.js.map} +1 -1
  149. package/dist/chunks/{listbox-option-tag.C6WHiASI.js → listbox-option-tag.CDIkX7nh.js} +3 -3
  150. package/dist/chunks/{listbox-option-tag.C6WHiASI.js.map → listbox-option-tag.CDIkX7nh.js.map} +1 -1
  151. package/dist/chunks/{loading-indicator.BmAQqPP2.js → loading-indicator.VHi5tbZa.js} +2 -2
  152. package/dist/chunks/{loading-indicator.BmAQqPP2.js.map → loading-indicator.VHi5tbZa.js.map} +1 -1
  153. package/dist/chunks/{modal-fullscreen.BHzyS4y7.js → modal-fullscreen.-Q-7GMyT.js} +5 -5
  154. package/dist/chunks/{modal-fullscreen.BHzyS4y7.js.map → modal-fullscreen.-Q-7GMyT.js.map} +1 -1
  155. package/dist/chunks/{modal.vue_vue_type_script_setup_true_lang.CqDhzFJ9.js → modal.vue_vue_type_script_setup_true_lang.TFh7p51f.js} +6 -6
  156. package/dist/chunks/{modal.vue_vue_type_script_setup_true_lang.CqDhzFJ9.js.map → modal.vue_vue_type_script_setup_true_lang.TFh7p51f.js.map} +1 -1
  157. package/dist/chunks/{pagination.BuYH2_62.js → pagination.DW_HPEIu.js} +4 -4
  158. package/dist/chunks/{pagination.BuYH2_62.js.map → pagination.DW_HPEIu.js.map} +1 -1
  159. package/dist/chunks/{payment-method.4cnK2M5b.js → payment-method.CDnn1bjo.js} +2 -2
  160. package/dist/chunks/{payment-method.4cnK2M5b.js.map → payment-method.CDnn1bjo.js.map} +1 -1
  161. package/dist/chunks/popover.types.COM6oQgq.js +6 -0
  162. package/dist/chunks/{popover.types.BQILgzhs.js.map → popover.types.COM6oQgq.js.map} +1 -1
  163. package/dist/chunks/{popper-container.idDrquM6.js → popper-container.CgJzEQ7N.js} +2 -2
  164. package/dist/chunks/{popper-container.idDrquM6.js.map → popper-container.CgJzEQ7N.js.map} +1 -1
  165. package/dist/chunks/{promo-banner.il4_mdEk.js → promo-banner.BbqIA4Ce.js} +3 -3
  166. package/dist/chunks/{promo-banner.il4_mdEk.js.map → promo-banner.BbqIA4Ce.js.map} +1 -1
  167. package/dist/chunks/{radio-group.BG8W9epW.js → radio-group.CbLIPi7h.js} +77 -69
  168. package/dist/chunks/radio-group.CbLIPi7h.js.map +1 -0
  169. package/dist/chunks/{radio-input.DvPjlvPm.js → radio-input.odN9FOyr.js} +2 -2
  170. package/dist/chunks/{radio-input.DvPjlvPm.js.map → radio-input.odN9FOyr.js.map} +1 -1
  171. package/dist/chunks/{rich-text-editor.vqti0Ls0.js → rich-text-editor.C0hJeV4H.js} +7 -7
  172. package/dist/chunks/{rich-text-editor.vqti0Ls0.js.map → rich-text-editor.C0hJeV4H.js.map} +1 -1
  173. package/dist/chunks/{search-bar.RGL70u_Y.js → search-bar.CvAi2t3-.js} +3 -3
  174. package/dist/chunks/{search-bar.RGL70u_Y.js.map → search-bar.CvAi2t3-.js.map} +1 -1
  175. package/dist/chunks/{secondary-nav.Dtw_Dm_X.js → secondary-nav.yntS8-u5.js} +3 -3
  176. package/dist/chunks/{secondary-nav.Dtw_Dm_X.js.map → secondary-nav.yntS8-u5.js.map} +1 -1
  177. package/dist/chunks/{segmented-control.C6QyN2jS.js → segmented-control.CRSdIvha.js} +3 -3
  178. package/dist/chunks/{segmented-control.C6QyN2jS.js.map → segmented-control.CRSdIvha.js.map} +1 -1
  179. package/dist/chunks/{selection-card-group.DpogJSo0.js → selection-card-group.Cu3V8h4R.js} +6 -6
  180. package/dist/chunks/{selection-card-group.DpogJSo0.js.map → selection-card-group.Cu3V8h4R.js.map} +1 -1
  181. package/dist/chunks/{sidepanel.BqRWoCd3.js → sidepanel.z18XSO3M.js} +6 -6
  182. package/dist/chunks/{sidepanel.BqRWoCd3.js.map → sidepanel.z18XSO3M.js.map} +1 -1
  183. package/dist/chunks/{status.types.B7vJ-_oJ.js → status.types.-l2qJxLn.js} +2 -2
  184. package/dist/chunks/{status.types.B7vJ-_oJ.js.map → status.types.-l2qJxLn.js.map} +1 -1
  185. package/dist/chunks/{step.BdZrreHU.js → step.BMSjltwl.js} +3 -3
  186. package/dist/chunks/{step.BdZrreHU.js.map → step.BMSjltwl.js.map} +1 -1
  187. package/dist/chunks/{structured-list-item.DIwkcIMT.js → structured-list-item.CD1nMqzH.js} +6 -6
  188. package/dist/chunks/{structured-list-item.DIwkcIMT.js.map → structured-list-item.CD1nMqzH.js.map} +1 -1
  189. package/dist/chunks/{summary-grid.types.DHUnTXI-.js → summary-grid.types.BHuDlPDw.js} +6 -6
  190. package/dist/chunks/{summary-grid.types.DHUnTXI-.js.map → summary-grid.types.BHuDlPDw.js.map} +1 -1
  191. package/dist/chunks/{tab.jIG8-7-Q.js → tab.C3R_VoJL.js} +3 -3
  192. package/dist/chunks/{tab.jIG8-7-Q.js.map → tab.C3R_VoJL.js.map} +1 -1
  193. package/dist/chunks/{tag.BP8fBCx-.js → tag.B6AmSws9.js} +7 -7
  194. package/dist/chunks/{tag.BP8fBCx-.js.map → tag.B6AmSws9.js.map} +1 -1
  195. package/dist/chunks/{textarea.CtfRoIUw.js → textarea.DfQLxj_w.js} +4 -4
  196. package/dist/chunks/{textarea.CtfRoIUw.js.map → textarea.DfQLxj_w.js.map} +1 -1
  197. package/dist/chunks/timeline-item.25y9USE-.js +568 -0
  198. package/dist/chunks/timeline-item.25y9USE-.js.map +1 -0
  199. package/dist/chunks/{toast.w_FD0zQA.js → toast.DIhABAW8.js} +4 -4
  200. package/dist/chunks/{toast.w_FD0zQA.js.map → toast.DIhABAW8.js.map} +1 -1
  201. package/dist/chunks/{toggle-button.ByyLw0Yf.js → toggle-button.CQl9HneO.js} +194 -188
  202. package/dist/chunks/toggle-button.CQl9HneO.js.map +1 -0
  203. package/dist/chunks/{toggle.CjEL1ko8.js → toggle.C8k7NQ7y.js} +2 -2
  204. package/dist/chunks/{toggle.CjEL1ko8.js.map → toggle.C8k7NQ7y.js.map} +1 -1
  205. package/dist/chunks/{tooltip.Dww8NiUR.js → tooltip.lBnko9QV.js} +4 -4
  206. package/dist/chunks/tooltip.lBnko9QV.js.map +1 -0
  207. package/dist/chunks/{tutorial.vue_vue_type_script_setup_true_lang.rY33hqQQ.js → tutorial.vue_vue_type_script_setup_true_lang.BProZFmI.js} +5 -5
  208. package/dist/chunks/{tutorial.vue_vue_type_script_setup_true_lang.rY33hqQQ.js.map → tutorial.vue_vue_type_script_setup_true_lang.BProZFmI.js.map} +1 -1
  209. package/dist/chunks/{typography.CFHvBR7L.js → typography.yBEME_Gu.js} +2 -2
  210. package/dist/chunks/{typography.CFHvBR7L.js.map → typography.yBEME_Gu.js.map} +1 -1
  211. package/dist/chunks/{use-bento-toast-controller.BzKbXZPO.js → use-bento-toast-controller.Kri_h7jS.js} +2 -2
  212. package/dist/chunks/{use-bento-toast-controller.BzKbXZPO.js.map → use-bento-toast-controller.Kri_h7jS.js.map} +1 -1
  213. package/dist/chunks/{use-cached-selected-values.BcNRo4mZ.js → use-cached-selected-values.CELe-MsT.js} +7 -7
  214. package/dist/chunks/use-cached-selected-values.CELe-MsT.js.map +1 -0
  215. package/dist/chunks/{use-country-items.Duh4bMqW.js → use-country-items.D_kamcYy.js} +2 -2
  216. package/dist/chunks/{use-country-items.Duh4bMqW.js.map → use-country-items.D_kamcYy.js.map} +1 -1
  217. package/dist/chunks/{use-country-phon-code.BOaJ9PDl.js → use-country-phon-code.Bui3zD6W.js} +5 -3
  218. package/dist/chunks/{use-country-phon-code.BOaJ9PDl.js.map → use-country-phon-code.Bui3zD6W.js.map} +1 -1
  219. package/dist/chunks/warning-filled.BMGD0G-_.js +29 -0
  220. package/dist/chunks/warning-filled.BMGD0G-_.js.map +1 -0
  221. package/dist/code-snippet.js +1 -1
  222. package/dist/country.js +2 -2
  223. package/dist/currency.js +1 -1
  224. package/dist/dashboard-template.js +1 -1
  225. package/dist/dashed-underline.js +1 -1
  226. package/dist/data-grid-template.js +1 -1
  227. package/dist/data-grid.js +1 -1
  228. package/dist/date-picker.js +2 -2
  229. package/dist/date-range-picker.js +2 -2
  230. package/dist/date.js +1 -1
  231. package/dist/dropdown.js +4 -4
  232. package/dist/empty-state.js +1 -1
  233. package/dist/file-uploader.js +1 -1
  234. package/dist/filter-bar.js +1 -1
  235. package/dist/form-layout.js +1 -1
  236. package/dist/header-with-views.js +1 -1
  237. package/dist/header.js +1 -1
  238. package/dist/index.js +136 -136
  239. package/dist/index.js.map +1 -1
  240. package/dist/info-icon.js +1 -1
  241. package/dist/input-field-password.js +1 -1
  242. package/dist/input-field-phone-number.js +1 -1
  243. package/dist/input-field.js +1 -1
  244. package/dist/inspector.js +1 -1
  245. package/dist/internal.js +12 -12
  246. package/dist/layout.js +1 -1
  247. package/dist/link.js +1 -1
  248. package/dist/loading-indicator.js +1 -1
  249. package/dist/menu.js +1 -1
  250. package/dist/modal-fullscreen.js +1 -1
  251. package/dist/modal.js +2 -2
  252. package/dist/pagination.js +1 -1
  253. package/dist/payment-method.js +1 -1
  254. package/dist/popover.js +2 -2
  255. package/dist/popper-container.js +1 -1
  256. package/dist/promo-banner.js +1 -1
  257. package/dist/radio-group.js +2 -2
  258. package/dist/rich-text-editor.js +1 -1
  259. package/dist/search-bar.js +2 -2
  260. package/dist/secondary-nav.js +1 -1
  261. package/dist/segmented-control.js +1 -1
  262. package/dist/selection-card.js +1 -1
  263. package/dist/sidepanel.js +1 -1
  264. package/dist/status.js +1 -1
  265. package/dist/stepper.js +1 -1
  266. package/dist/structured-list.js +1 -1
  267. package/dist/summary-grid.js +1 -1
  268. package/dist/tabs.js +1 -1
  269. package/dist/tag.js +1 -1
  270. package/dist/textarea.js +1 -1
  271. package/dist/timeline.js +1 -1
  272. package/dist/toast.js +1 -1
  273. package/dist/toggle.js +1 -1
  274. package/dist/tutorial.js +1 -1
  275. package/dist/typography.js +1 -1
  276. package/dist/web-types.json +1 -1
  277. package/package.json +5 -5
  278. package/dist/chunks/alert.DFSdD4jX.js +0 -169
  279. package/dist/chunks/alert.DFSdD4jX.js.map +0 -1
  280. package/dist/chunks/bin.CiGG2V4b.js +0 -37
  281. package/dist/chunks/bin.CiGG2V4b.js.map +0 -1
  282. package/dist/chunks/controls-group.2xftPPd7.js.map +0 -1
  283. package/dist/chunks/data-grid.aEQt05d9.js.map +0 -1
  284. package/dist/chunks/dropdown-tag.CnqIUH1X.js +0 -263
  285. package/dist/chunks/dropdown-tag.CnqIUH1X.js.map +0 -1
  286. package/dist/chunks/file-uploader.09149Fx8.js.map +0 -1
  287. package/dist/chunks/filter-bar.D6n7Srr5.js.map +0 -1
  288. package/dist/chunks/header-with-views.Drzq84zs.js.map +0 -1
  289. package/dist/chunks/info.DcTs-Bzp.js +0 -44
  290. package/dist/chunks/info.DcTs-Bzp.js.map +0 -1
  291. package/dist/chunks/popover.types.BQILgzhs.js +0 -6
  292. package/dist/chunks/radio-group.BG8W9epW.js.map +0 -1
  293. package/dist/chunks/timeline-item.DthjD14m.js +0 -566
  294. package/dist/chunks/timeline-item.DthjD14m.js.map +0 -1
  295. package/dist/chunks/toggle-button.ByyLw0Yf.js.map +0 -1
  296. package/dist/chunks/tooltip.Dww8NiUR.js.map +0 -1
  297. package/dist/chunks/use-cached-selected-values.BcNRo4mZ.js.map +0 -1
  298. package/dist/chunks/warning-filled.AiUbXzzg.js +0 -29
  299. package/dist/chunks/warning-filled.AiUbXzzg.js.map +0 -1
  300. package/dist/styles/legacy.css +0 -2239
@@ -1 +1 @@
1
- {"version":3,"file":"code-snippet.CrKl93Wq.js","sources":["../../../vue2/src/components/code-snippet/highlight.ts","../../../vue2/src/components/code-snippet/code-snippet.types.ts","../../../../node_modules/.pnpm/codemirror-lang-csv@0.1.1/node_modules/codemirror-lang-csv/dist/index.js","../../../vue2/src/components/code-snippet/utils/get-lang-loader.ts","../../../vue2/src/components/code-snippet/utils/indent-same-as-line-before-extension.ts","../../../vue2/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 { type 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/**\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 CSV = 'csv',\n}\n\nexport enum BentoCodeSnippetEvent {\n ACTION = 'action',\n CHANGE = 'change',\n}\n\nexport interface BentoCodeSnippetProps {\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?: boolean;\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?: string;\n\n /**\n * The code content\n */\n content?: string;\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?: boolean;\n\n /**\n * Allows editing of the code-snippet content by the user\n */\n editable?: boolean;\n\n /**\n * Language name for syntax highlighting rules\n */\n lang?: BentoCodeSnippetSupportedLanguage | `${BentoCodeSnippetSupportedLanguage}`;\n\n /**\n * Label to show in the action-bar, describing the language\n */\n langLabel?: string;\n\n /**\n * Toggles the loading indicator within the action bar\n */\n loading?: boolean;\n\n /**\n * Defines the variant of code-snippet\n */\n variant?: BentoCodeSnippetVariant | `${BentoCodeSnippetVariant}`;\n}\n","import { LRParser } from '@lezer/lr';\nimport { LRLanguage, LanguageSupport } from '@codemirror/language';\nimport { styleTags, tags } from '@lezer/highlight';\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst parser = LRParser.deserialize({\n version: 14,\n states: \"nQVQPOOOOQO'#Ce'#CeOOQO'#Ca'#CaQVQPOOOOQO-E6_-E6_\",\n stateData: \"g~OWOS~OQPORPOSPO~OQRSR~\",\n goto: \"eYPPPPPZPPPaQRORSRTQOR\",\n nodeNames: \"⚠ Program String Separator Value\",\n maxTerm: 9,\n skippedNodes: [0],\n repeatNodeCount: 1,\n tokenData: \"'Y~RZOYtYZ!cZrtrs!hs|t|}'T}!]t!]!^'T!^;'St;'S;=`!]<%lOt~yUS~OYtZ|t}!]t!^;'St;'S;=`!]<%lOt~!`P;=`<%lt~!hOW~~!m]S~OY!hYZ#fZr!hrs%Ss|!h|}#f}!]!h!]!^#f!^#O!h#O#P%m#P;'S!h;'S;=`&}<%lO!h~#iVOr#frs$Os#O#f#O#P$T#P;'S#f;'S;=`$|<%lO#f~$TOQ~~$WRO;'S#f;'S;=`$a;=`O#f~$dWOr#frs$Os#O#f#O#P$T#P;'S#f;'S;=`$|;=`<%l#f<%lO#f~%PP;=`<%l#f~%ZUQ~S~OYtZ|t}!]t!^;'St;'S;=`!]<%lOt~%rYS~OY!hYZ#fZ|!h|}#f}!]!h!]!^#f!^;'S!h;'S;=`&b;=`<%l#f<%lO!h~&eWOr#frs$Os#O#f#O#P$T#P;'S#f;'S;=`$|;=`<%l!h<%lO#f~'QP;=`<%l!h~'YOR~\",\n tokenizers: [0],\n topRules: {\"Program\":[0,1]},\n tokenPrec: 18\n});\n\nconst csvLanguage = LRLanguage.define({\n parser: parser.configure({\n props: [\n styleTags({\n Separator: tags.separator,\n Value: tags.string,\n String: tags.string,\n LineComment: tags.lineComment,\n \"( )\": tags.paren,\n }),\n ],\n }),\n});\nfunction csv() {\n return new LanguageSupport(csvLanguage);\n}\n\nexport { csv, csvLanguage };\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';\nimport { csv } from 'codemirror-lang-csv';\nimport type { LanguageSupport } from '@codemirror/language';\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: Record<BentoCodeSnippetSupportedLanguage, () => LanguageSupport> = {\n [BentoCodeSnippetSupportedLanguage.JSON]: json,\n [BentoCodeSnippetSupportedLanguage.XML]: xml,\n [BentoCodeSnippetSupportedLanguage.JAVASCRIPT]: javascript,\n [BentoCodeSnippetSupportedLanguage.JAVA]: java,\n [BentoCodeSnippetSupportedLanguage.PYTHON]: python,\n [BentoCodeSnippetSupportedLanguage.CSV]: csv,\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 setup lang=\"ts\">\n import { computed, onMounted, 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 { BentoLoadingIndicator } from '@/components/loading-indicator';\n import { useI18n } from '@/utils/ts/i18n';\n import { Copy } from '@/internal';\n import {\n BentoCodeSnippetEvent,\n type BentoCodeSnippetProps,\n BentoCodeSnippetSupportedLanguage,\n BentoCodeSnippetVariant,\n } from './code-snippet.types';\n import ExpandIcon from '@adyen/ui-assets-icons-16/vue/expand';\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 const props = withDefaults(defineProps<BentoCodeSnippetProps>(), {\n actionable: false,\n actionableText: null,\n content: '',\n editable: false,\n expandable: false,\n lang: BentoCodeSnippetSupportedLanguage.JSON,\n langLabel: null,\n loading: false,\n variant: BentoCodeSnippetVariant.MULTILINE,\n });\n\n const emit = defineEmits([BentoCodeSnippetEvent.ACTION, BentoCodeSnippetEvent.CHANGE]);\n\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 const runText = computed(() => props.actionableText || t('run'));\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 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</script>\n\n<script lang=\"ts\">\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 {\n i18n: { messages },\n name: 'bento-code-snippet',\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","parser","LRParser","csvLanguage","LRLanguage","styleTags","csv","LanguageSupport","importsMap","json","xml","javascript","java","python","getLangLoader","getIndentation","state","line","currentLine","indentMatch","INDENT_SAME_AS_LINE_BEFORE","dispatch","changes","range","newText","EditorSelection","__default__","messages","props","__props","emit","__emit","t","useI18n","selectedLanguage","ref","availableLanguages","handleChangeLanguage","displayedLang","computed","isInlineVariant","conditionalClasses","codeAreaContentConditionalClasses","loadLang","container","shallowRef","editor","languageConf","Compartment","editorTheme","editorReadOnly","currentContents","contentLength","runText","onMounted","updateCurrentContents","state2","extensions","highlightActiveLine","keymap","indentWithTab","EditorState","EditorView","content","lineNumbers","history","watch","upcomingContentLength","onActionClicked","watchEffect","showModal"],"mappings":"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","x_google_ignoreList":[2]}
1
+ {"version":3,"file":"code-snippet.CKrxKjkQ.js","sources":["../../../vue2/src/components/code-snippet/highlight.ts","../../../vue2/src/components/code-snippet/code-snippet.types.ts","../../../../node_modules/.pnpm/codemirror-lang-csv@0.1.1/node_modules/codemirror-lang-csv/dist/index.js","../../../vue2/src/components/code-snippet/utils/get-lang-loader.ts","../../../vue2/src/components/code-snippet/utils/indent-same-as-line-before-extension.ts","../../../vue2/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 { type 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/**\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 CSV = 'csv',\n}\n\nexport enum BentoCodeSnippetEvent {\n ACTION = 'action',\n CHANGE = 'change',\n}\n\nexport interface BentoCodeSnippetProps {\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?: boolean;\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?: string;\n\n /**\n * The code content\n */\n content?: string;\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?: boolean;\n\n /**\n * Allows editing of the code-snippet content by the user\n */\n editable?: boolean;\n\n /**\n * Language name for syntax highlighting rules\n */\n lang?: BentoCodeSnippetSupportedLanguage | `${BentoCodeSnippetSupportedLanguage}`;\n\n /**\n * Label to show in the action-bar, describing the language\n */\n langLabel?: string;\n\n /**\n * Toggles the loading indicator within the action bar\n */\n loading?: boolean;\n\n /**\n * Defines the variant of code-snippet\n */\n variant?: BentoCodeSnippetVariant | `${BentoCodeSnippetVariant}`;\n}\n","import { LRParser } from '@lezer/lr';\nimport { LRLanguage, LanguageSupport } from '@codemirror/language';\nimport { styleTags, tags } from '@lezer/highlight';\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst parser = LRParser.deserialize({\n version: 14,\n states: \"nQVQPOOOOQO'#Ce'#CeOOQO'#Ca'#CaQVQPOOOOQO-E6_-E6_\",\n stateData: \"g~OWOS~OQPORPOSPO~OQRSR~\",\n goto: \"eYPPPPPZPPPaQRORSRTQOR\",\n nodeNames: \"⚠ Program String Separator Value\",\n maxTerm: 9,\n skippedNodes: [0],\n repeatNodeCount: 1,\n tokenData: \"'Y~RZOYtYZ!cZrtrs!hs|t|}'T}!]t!]!^'T!^;'St;'S;=`!]<%lOt~yUS~OYtZ|t}!]t!^;'St;'S;=`!]<%lOt~!`P;=`<%lt~!hOW~~!m]S~OY!hYZ#fZr!hrs%Ss|!h|}#f}!]!h!]!^#f!^#O!h#O#P%m#P;'S!h;'S;=`&}<%lO!h~#iVOr#frs$Os#O#f#O#P$T#P;'S#f;'S;=`$|<%lO#f~$TOQ~~$WRO;'S#f;'S;=`$a;=`O#f~$dWOr#frs$Os#O#f#O#P$T#P;'S#f;'S;=`$|;=`<%l#f<%lO#f~%PP;=`<%l#f~%ZUQ~S~OYtZ|t}!]t!^;'St;'S;=`!]<%lOt~%rYS~OY!hYZ#fZ|!h|}#f}!]!h!]!^#f!^;'S!h;'S;=`&b;=`<%l#f<%lO!h~&eWOr#frs$Os#O#f#O#P$T#P;'S#f;'S;=`$|;=`<%l!h<%lO#f~'QP;=`<%l!h~'YOR~\",\n tokenizers: [0],\n topRules: {\"Program\":[0,1]},\n tokenPrec: 18\n});\n\nconst csvLanguage = LRLanguage.define({\n parser: parser.configure({\n props: [\n styleTags({\n Separator: tags.separator,\n Value: tags.string,\n String: tags.string,\n LineComment: tags.lineComment,\n \"( )\": tags.paren,\n }),\n ],\n }),\n});\nfunction csv() {\n return new LanguageSupport(csvLanguage);\n}\n\nexport { csv, csvLanguage };\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';\nimport { csv } from 'codemirror-lang-csv';\nimport type { LanguageSupport } from '@codemirror/language';\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: Record<BentoCodeSnippetSupportedLanguage, () => LanguageSupport> = {\n [BentoCodeSnippetSupportedLanguage.JSON]: json,\n [BentoCodeSnippetSupportedLanguage.XML]: xml,\n [BentoCodeSnippetSupportedLanguage.JAVASCRIPT]: javascript,\n [BentoCodeSnippetSupportedLanguage.JAVA]: java,\n [BentoCodeSnippetSupportedLanguage.PYTHON]: python,\n [BentoCodeSnippetSupportedLanguage.CSV]: csv,\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 setup lang=\"ts\">\n import { computed, onMounted, 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 { BentoLoadingIndicator } from '@/components/loading-indicator';\n import { useI18n } from '@/utils/ts/i18n';\n import { Copy } from '@/internal';\n import {\n BentoCodeSnippetEvent,\n type BentoCodeSnippetProps,\n BentoCodeSnippetSupportedLanguage,\n BentoCodeSnippetVariant,\n } from './code-snippet.types';\n import ExpandIcon from '@adyen/ui-assets-icons-16/vue/expand';\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 const props = withDefaults(defineProps<BentoCodeSnippetProps>(), {\n actionable: false,\n actionableText: null,\n content: '',\n editable: false,\n expandable: false,\n lang: BentoCodeSnippetSupportedLanguage.JSON,\n langLabel: null,\n loading: false,\n variant: BentoCodeSnippetVariant.MULTILINE,\n });\n\n const emit = defineEmits([BentoCodeSnippetEvent.ACTION, BentoCodeSnippetEvent.CHANGE]);\n\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 const runText = computed(() => props.actionableText || t('run'));\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 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</script>\n\n<script lang=\"ts\">\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 {\n i18n: { messages },\n name: 'bento-code-snippet',\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","parser","LRParser","csvLanguage","LRLanguage","styleTags","csv","LanguageSupport","importsMap","json","xml","javascript","java","python","getLangLoader","getIndentation","state","line","currentLine","indentMatch","INDENT_SAME_AS_LINE_BEFORE","dispatch","changes","range","newText","EditorSelection","__default__","messages","props","__props","emit","__emit","t","useI18n","selectedLanguage","ref","availableLanguages","handleChangeLanguage","displayedLang","computed","isInlineVariant","conditionalClasses","codeAreaContentConditionalClasses","loadLang","container","shallowRef","editor","languageConf","Compartment","editorTheme","editorReadOnly","currentContents","contentLength","runText","onMounted","updateCurrentContents","state2","extensions","highlightActiveLine","keymap","indentWithTab","EditorState","EditorView","content","lineNumbers","history","watch","upcomingContentLength","onActionClicked","watchEffect","showModal"],"mappings":"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","x_google_ignoreList":[2]}
@@ -1,10 +1,11 @@
1
- import { defineComponent as f, useAttrs as m, computed as o, createElementBlock as y, openBlock as a, normalizeClass as r, createElementVNode as h, renderSlot as g, createBlock as i, createCommentVNode as n, unref as s, withCtx as w, createTextVNode as S, toDisplayString as B } from "vue";
2
- import { d as C, B as v } from "./typography.CFHvBR7L.js";
3
- import { F as x } from "./error-message.Cu4cIfdg.js";
4
- import { _ as L } from "./_plugin-vue_export-helper.CHgC5LLL.js";
1
+ import { defineComponent as y, useAttrs as g, useSlots as S, computed as a, createElementBlock as w, openBlock as i, normalizeClass as s, createElementVNode as B, renderSlot as n, createBlock as d, createCommentVNode as c, unref as r, withCtx as C, createTextVNode as v, toDisplayString as L } from "vue";
2
+ import { d as x, B as N } from "./typography.yBEME_Gu.js";
3
+ import { u as q } from "./use-has-slot.B7eQSabc.js";
4
+ import { F as T } from "./error-message.B1P5ictH.js";
5
+ import { _ } from "./_plugin-vue_export-helper.CHgC5LLL.js";
5
6
  import "../assets/controls-group.css";
6
- const N = ["form", "disabled", "aria-describedby"], _ = {}, q = /* @__PURE__ */ f({
7
- ..._,
7
+ const k = ["form", "disabled", "aria-describedby"], A = {}, D = /* @__PURE__ */ y({
8
+ ...A,
8
9
  __name: "controls-group",
9
10
  props: {
10
11
  /**
@@ -46,53 +47,55 @@ const N = ["form", "disabled", "aria-describedby"], _ = {}, q = /* @__PURE__ */
46
47
  tooltipText: { type: String, default: null }
47
48
  },
48
49
  setup(e) {
49
- const d = m(), t = e, c = o(() => {
50
+ const u = g(), b = S(), o = q(b), t = e, p = a(() => {
50
51
  var l;
51
52
  return {
52
- "aria-describedby": (l = d["aria-describedby"]) == null ? void 0 : l.toString()
53
+ "aria-describedby": (l = u["aria-describedby"]) == null ? void 0 : l.toString()
53
54
  };
54
- }), b = o(() => ({
55
+ }), f = a(() => ({
55
56
  "b-controls-group--disabled": t.disabled
56
- })), u = o(() => ({
57
- "b-controls-group__label-container--hidden": !(t.label && t.description || t.hideLabel === !1)
57
+ })), m = a(() => ({
58
+ "b-controls-group__label-container--hidden": !(t.label && (t.description || o("description")) || t.hideLabel === !1)
58
59
  }));
59
- return !t.description && t.hideLabel == null && C(
60
+ return !(t.description || o("description")) && t.hideLabel == null && x(
60
61
  `${t.componentName}: The property \`label\` will always be rendered by default.`,
61
62
  '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`',
62
63
  "2.0.0"
63
- ), (l, p) => (a(), y("fieldset", {
64
- class: r(["b-controls-group", b.value]),
64
+ ), (l, h) => (i(), w("fieldset", {
65
+ class: s(["b-controls-group", f.value]),
65
66
  form: e.form,
66
67
  disabled: e.disabled,
67
- "aria-describedby": c.value["aria-describedby"]
68
+ "aria-describedby": p.value["aria-describedby"]
68
69
  }, [
69
- h("legend", {
70
- class: r(["b-controls-group__label-container", u.value])
70
+ B("legend", {
71
+ class: s(["b-controls-group__label-container", m.value])
71
72
  }, [
72
- e.label ? (a(), i(s(x), {
73
+ e.label ? (i(), d(r(T), {
73
74
  key: 0,
74
75
  class: "b-controls-group__label",
75
76
  label: e.label,
76
77
  "tooltip-text": e.tooltipText,
77
78
  optional: e.optional,
78
79
  required: e.required
79
- }, null, 8, ["label", "tooltip-text", "optional", "required"])) : n("", !0),
80
- e.description ? (a(), i(s(v), {
80
+ }, null, 8, ["label", "tooltip-text", "optional", "required"])) : c("", !0),
81
+ e.description || r(o)("description") ? (i(), d(r(N), {
81
82
  key: 1,
82
83
  class: "b-controls-group__description",
83
84
  el: "span"
84
85
  }, {
85
- default: w(() => [
86
- S(B(e.description), 1)
86
+ default: C(() => [
87
+ n(l.$slots, "description", {}, () => [
88
+ v(L(e.description), 1)
89
+ ], !0)
87
90
  ]),
88
- _: 1
89
- })) : n("", !0)
91
+ _: 3
92
+ })) : c("", !0)
90
93
  ], 2),
91
- g(l.$slots, "default", {}, void 0, !0)
92
- ], 10, N));
94
+ n(l.$slots, "default", {}, void 0, !0)
95
+ ], 10, k));
93
96
  }
94
- }), V = /* @__PURE__ */ L(q, [["__scopeId", "data-v-36cecd0f"]]);
97
+ }), G = /* @__PURE__ */ _(D, [["__scopeId", "data-v-ed12cca2"]]);
95
98
  export {
96
- V as C
99
+ G as C
97
100
  };
98
- //# sourceMappingURL=controls-group.2xftPPd7.js.map
101
+ //# sourceMappingURL=controls-group.CXVHTaYp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controls-group.CXVHTaYp.js","sources":["../../../vue2/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\n v-if=\"description || hasSlot('description')\"\n class=\"b-controls-group__description\"\n el=\"span\"\n >\n <slot name=\"description\">\n {{ description }}\n </slot>\n </bento-typography>\n </legend>\n <slot />\n </fieldset>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, useAttrs, useSlots } from 'vue';\n import { BentoTypography } from '@/components/typography';\n import { FieldLabel } from '@/components/internal/field-label';\n import { deprecate } from '@/utils/ts/deprecate';\n import { useHasSlot } from '@/composables';\n\n const attrs = useAttrs();\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\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 || hasSlot('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 || hasSlot('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=\"./controls-group.scss\" />\n"],"names":["__default__","attrs","useAttrs","slots","useSlots","hasSlot","useHasSlot","props","__props","ariaAttributes","computed","_a","conditionalClasses","legendConditionalClasses","deprecate"],"mappings":";;;;;;oDAuJIA,IAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAjHA,UAAAC,IAAAC,EAAA,GACAC,IAAAC,EAAA,GACAC,IAAAC,EAAAH,CAAA,GAEAI,IAAAC,GAgDAC,IAAAC,EAAA,MAAA;;AAAA;AAAA,QAAuC,qBAAAC,IAAAV,EAAA,kBAAA,MAAA,gBAAAU,EAAA;AAAA,MACqB;AAAA,KAAA,GAG5DC,IAAAF,EAAA,OAAA;AAAA,MAA2C,8BAAAH,EAAA;AAAA,IACH,EAAA,GAGxCM,IAAAH,EAAA,OAII;AAAA,MAAO,6CAAA,EAHPH,EAAA,UAAAA,EAAA,eAAAF,EAAA,aAAA,MACAE,EAAA,cAAA;AAAA,IAGkD,EAClD;AAKJ,WADA,EAAAA,EAAA,eAAAF,EAAA,aAAA,MAAAE,EAAA,aAAA,QAEIO;AAAA,MAAA,GAAAP,EAAA,aAAA;AAAA,MAC0B;AAAA,MACtB;AAAA,IAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { createElementBlock as a, openBlock as s, mergeProps as T, createCommentVNode as V, createElementVNode as R, toDisplayString as u, defineComponent as $, ref as v, computed as y, withDirectives as g, renderSlot as H, unref as n, createBlock as B, createSlots as E, withCtx as _, createVNode as N, createTextVNode as O } from "vue";
2
- import { B as x } from "./button.wMNce6wZ.js";
3
- import { d as D } from "./popper-container.idDrquM6.js";
4
- import { b as h } from "./tooltip.Dww8NiUR.js";
2
+ import { B as x } from "./button.C-MAa6ut.js";
3
+ import { d as D } from "./popper-container.CgJzEQ7N.js";
4
+ import { b as h } from "./tooltip.lBnko9QV.js";
5
5
  import { u as F } from "./i18n.B6g5VX0q.js";
6
6
  /* empty css */
7
7
  import { _ as b } from "./_plugin-vue_export-helper.CHgC5LLL.js";
@@ -24,7 +24,7 @@ function A(e, c, d, l, r, i) {
24
24
  e.$attrs["svg-title"] ? (s(), a("title", S, u(e.$attrs["svg-title"]), 1)) : V("", !0),
25
25
  c[0] || (c[0] = R("path", {
26
26
  fill: "#001222",
27
- 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"
27
+ d: "M8 1.25C9.51878 1.25 10.75 2.48122 10.75 4V5.25H12C13.5188 5.25 14.75 6.48122 14.75 8V12C14.75 13.5188 13.5188 14.75 12 14.75H8C6.48122 14.75 5.25 13.5188 5.25 12V10.75H4C2.48122 10.75 1.25 9.51878 1.25 8V4C1.25 2.48122 2.48122 1.25 4 1.25H8ZM8 6.75C7.30964 6.75 6.75 7.30964 6.75 8V12C6.75 12.6904 7.30964 13.25 8 13.25H12C12.6904 13.25 13.25 12.6904 13.25 12V8C13.25 7.30964 12.6904 6.75 12 6.75H8ZM4 2.75C3.30964 2.75 2.75 3.30964 2.75 4V8C2.75 8.69036 3.30964 9.25 4 9.25H5.25V8C5.25 6.48122 6.48122 5.25 8 5.25H9.25V4C9.25 3.30964 8.69036 2.75 8 2.75H4Z"
28
28
  }, null, -1))
29
29
  ], 16);
30
30
  }
@@ -114,4 +114,4 @@ export {
114
114
  W as C,
115
115
  o as a
116
116
  };
117
- //# sourceMappingURL=copy.-8xjj6Hr.js.map
117
+ //# sourceMappingURL=copy.C4DAAiPw.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"copy.-8xjj6Hr.js","sources":["../../../vue2/src/components/internal/copy/copy.types.ts","../../../ui-assets/icons-16/dist/vue/copy.vue","../../../vue2/src/components/internal/copy/copy.vue"],"sourcesContent":["import { type PopperContainerPosition } from '@/components/popper-container';\nimport type { BentoButton } from '@/components/button';\n\nexport enum CopyTooltipState {\n DEFAULT = 'default',\n COPYING = 'copying',\n ERROR = 'error',\n}\n\ntype ButtonProps = InstanceType<typeof BentoButton>['$props'];\nexport interface BentoCopyButtonProps {\n variant?: ButtonProps['variant'];\n condensed?: ButtonProps['condensed'];\n disabled?: ButtonProps['disabled'];\n}\n\nexport interface BentoCopyProps {\n /**\n * Object containing props to change the menu button appearance. Accepts the same props present in BentoButton.\n */\n button?: BentoCopyButtonProps;\n /**\n * Sets the button text of the copy button.\n */\n buttonText?: string;\n /**\n * Defines the string that will get copied to the clipboard\n */\n text: string;\n /**\n * Position the tooltip should take if space is available. Defaults to 'top'\n */\n tooltipPosition?: PopperContainerPosition;\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=\"#001222\" 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 import '../css/main.css';\n\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\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 setup lang=\"ts\">\n import { computed, ref } from 'vue';\n import { BentoButton } from '@/components/button';\n import { PopperContainerPosition } from '@/components/popper-container';\n import { BentoTooltipDirective as vBentoTooltipDirective } from '@/directives';\n import { useI18n } from '@/utils/ts/i18n';\n import { type BentoCopyButtonProps, type BentoCopyProps, 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 const emit = defineEmits<{\n /**\n * Emitted when the copy button is clicked.\n */\n (e: 'click', event: MouseEvent): void;\n }>();\n\n const props = withDefaults(defineProps<BentoCopyProps>(), {\n button: () => ({ variant: 'tertiary' }) as BentoCopyButtonProps,\n buttonText: undefined,\n tooltipPosition: PopperContainerPosition.TOP,\n });\n\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n const copyState = ref<CopyTooltipState>(CopyTooltipState.DEFAULT);\n\n const showScreenReaderAlert = ref(false);\n const onClickCopy = async (event: MouseEvent) => {\n try {\n await navigator.clipboard.writeText(props.text);\n copyState.value = CopyTooltipState.COPYING;\n showScreenReaderAlert.value = true;\n } catch {\n copyState.value = CopyTooltipState.ERROR;\n }\n\n emit('click', event);\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 default:\n return t('copy');\n }\n });\n\n const svgTitle = computed(() => (props.buttonText ? undefined : t('copy')));\n</script>\n\n<script lang=\"ts\">\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 {\n i18n: { messages },\n name: 'copy',\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./copy.scss\" />\n"],"names":["CopyTooltipState","CopyTooltipState2","uuid","openBlock","createElementBlock","mergeProps","_ctx","createCommentVNode","__default__","messages","emit","__emit","props","__props","t","useI18n","copyState","ref","showScreenReaderAlert","onClickCopy","event","resetText","copyText","computed","svgTitle"],"mappings":";;;;;;;;AAGY,IAAAA,IAAA,kBAAAC,OACRA,EAAA,UAAA,WACAA,EAAA,UAAA,WACAA,EAAA,QAAA,SAHQA,IAAAD,KAAA,CAAA,CAAA;ACIR,IAAAE,IAAA;;EAGI,eAAA;8BAEIA,KAAA;AAAA;;;AAVR,SAAAC,EAAA,GAAAC,EAAA,OAAAC,EAAA,EAAA,MAAA,MAAA,GAAAC,EAAA,QAAA;AAAA,IAAgC,OAAA;AAAA,IAA2B,OAAA;AAAA,IAAmC,OAAA;AAAA,IAAW,QAAA;AAAA,IAAY,MAAA;AAAA;gFAFzHC,EAAA,IAAA,EAAA;AAAA;MAE8M,MAAA;AAAA,MAAe,GAAA;AAAA;;;;;;;;;;;;;;;;;;;;;GC8FzNC,IAAA;AAAA,EAAe,MAAA,EAAA,UAAAC,EAAA;AAAA,EACM,MAAA;AAErB;;;;;;;;;;AAjEA,UAAAC,IAAAC,GAOAC,IAAAC,GAMA,EAAA,GAAAC,EAAA,IAAAC,EAAA,EAAA,UAAAN,EAAA,CAAA,GACAO,IAAAC,EAAAjB,EAAA,OAAA,GAEAkB,IAAAD,EAAA,EAAA,GACAE,IAAA,OAAAC,MAAA;AACI,UAAA;AACI,cAAA,UAAA,UAAA,UAAAR,EAAA,IAAA,GACAI,EAAA,QAAAhB,EAAA,SACAkB,EAAA,QAAA;AAAA,MAA8B,QAAA;AAE9B,QAAAF,EAAA,QAAAhB,EAAA;AAAA,MAAmC;AAGvC,MAAAU,EAAA,SAAAU,CAAA;AAAA,IAAmB,GAGvBC,IAAA,MAAA;AACI,MAAAL,EAAA,QAAAhB,EAAA,SACAkB,EAAA,QAAA;AAAA,IAA8B,GAGlCI,IAAAC,EAAA,MAAA;AACI,cAAAP,EAAA,OAAA;AAAA,QAAyB,KAAAhB,EAAA;AAEjB,iBAAAc,EAAA,QAAA;AAAA,QAAiB,KAAAd,EAAA;AAEjB,iBAAAc,EAAA,YAAA;AAAA,QAAqB;AAErB,iBAAAA,EAAA,MAAA;AAAA,MAAe;AAAA,IACvB,CAAA,GAGJU,IAAAD,EAAA,MAAAX,EAAA,aAAA,SAAAE,EAAA,MAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"copy.C4DAAiPw.js","sources":["../../../vue2/src/components/internal/copy/copy.types.ts","../../../ui-assets/icons-16/dist/vue/copy.vue","../../../vue2/src/components/internal/copy/copy.vue"],"sourcesContent":["import { type PopperContainerPosition } from '@/components/popper-container';\nimport type { BentoButton } from '@/components/button';\n\nexport enum CopyTooltipState {\n DEFAULT = 'default',\n COPYING = 'copying',\n ERROR = 'error',\n}\n\ntype ButtonProps = InstanceType<typeof BentoButton>['$props'];\nexport interface BentoCopyButtonProps {\n variant?: ButtonProps['variant'];\n condensed?: ButtonProps['condensed'];\n disabled?: ButtonProps['disabled'];\n}\n\nexport interface BentoCopyProps {\n /**\n * Object containing props to change the menu button appearance. Accepts the same props present in BentoButton.\n */\n button?: BentoCopyButtonProps;\n /**\n * Sets the button text of the copy button.\n */\n buttonText?: string;\n /**\n * Defines the string that will get copied to the clipboard\n */\n text: string;\n /**\n * Position the tooltip should take if space is available. Defaults to 'top'\n */\n tooltipPosition?: PopperContainerPosition;\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=\"#001222\" d=\"M8 1.25C9.51878 1.25 10.75 2.48122 10.75 4V5.25H12C13.5188 5.25 14.75 6.48122 14.75 8V12C14.75 13.5188 13.5188 14.75 12 14.75H8C6.48122 14.75 5.25 13.5188 5.25 12V10.75H4C2.48122 10.75 1.25 9.51878 1.25 8V4C1.25 2.48122 2.48122 1.25 4 1.25H8ZM8 6.75C7.30964 6.75 6.75 7.30964 6.75 8V12C6.75 12.6904 7.30964 13.25 8 13.25H12C12.6904 13.25 13.25 12.6904 13.25 12V8C13.25 7.30964 12.6904 6.75 12 6.75H8ZM4 2.75C3.30964 2.75 2.75 3.30964 2.75 4V8C2.75 8.69036 3.30964 9.25 4 9.25H5.25V8C5.25 6.48122 6.48122 5.25 8 5.25H9.25V4C9.25 3.30964 8.69036 2.75 8 2.75H4Z\"/></svg>\n</template>\n<script>\n import '../css/main.css';\n\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\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 setup lang=\"ts\">\n import { computed, ref } from 'vue';\n import { BentoButton } from '@/components/button';\n import { PopperContainerPosition } from '@/components/popper-container';\n import { BentoTooltipDirective as vBentoTooltipDirective } from '@/directives';\n import { useI18n } from '@/utils/ts/i18n';\n import { type BentoCopyButtonProps, type BentoCopyProps, 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 const emit = defineEmits<{\n /**\n * Emitted when the copy button is clicked.\n */\n (e: 'click', event: MouseEvent): void;\n }>();\n\n const props = withDefaults(defineProps<BentoCopyProps>(), {\n button: () => ({ variant: 'tertiary' }) as BentoCopyButtonProps,\n buttonText: undefined,\n tooltipPosition: PopperContainerPosition.TOP,\n });\n\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n const copyState = ref<CopyTooltipState>(CopyTooltipState.DEFAULT);\n\n const showScreenReaderAlert = ref(false);\n const onClickCopy = async (event: MouseEvent) => {\n try {\n await navigator.clipboard.writeText(props.text);\n copyState.value = CopyTooltipState.COPYING;\n showScreenReaderAlert.value = true;\n } catch {\n copyState.value = CopyTooltipState.ERROR;\n }\n\n emit('click', event);\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 default:\n return t('copy');\n }\n });\n\n const svgTitle = computed(() => (props.buttonText ? undefined : t('copy')));\n</script>\n\n<script lang=\"ts\">\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 {\n i18n: { messages },\n name: 'copy',\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./copy.scss\" />\n"],"names":["CopyTooltipState","CopyTooltipState2","uuid","openBlock","createElementBlock","mergeProps","_ctx","createCommentVNode","__default__","messages","emit","__emit","props","__props","t","useI18n","copyState","ref","showScreenReaderAlert","onClickCopy","event","resetText","copyText","computed","svgTitle"],"mappings":";;;;;;;;AAGY,IAAAA,IAAA,kBAAAC,OACRA,EAAA,UAAA,WACAA,EAAA,UAAA,WACAA,EAAA,QAAA,SAHQA,IAAAD,KAAA,CAAA,CAAA;ACIR,IAAAE,IAAA;;EAGI,eAAA;8BAEIA,KAAA;AAAA;;;AAVR,SAAAC,EAAA,GAAAC,EAAA,OAAAC,EAAA,EAAA,MAAA,MAAA,GAAAC,EAAA,QAAA;AAAA,IAAgC,OAAA;AAAA,IAA2B,OAAA;AAAA,IAAmC,OAAA;AAAA,IAAW,QAAA;AAAA,IAAY,MAAA;AAAA;gFAFzHC,EAAA,IAAA,EAAA;AAAA;MAE8M,MAAA;AAAA,MAAe,GAAA;AAAA;;;;;;;;;;;;;;;;;;;;;GC8FzNC,IAAA;AAAA,EAAe,MAAA,EAAA,UAAAC,EAAA;AAAA,EACM,MAAA;AAErB;;;;;;;;;;AAjEA,UAAAC,IAAAC,GAOAC,IAAAC,GAMA,EAAA,GAAAC,EAAA,IAAAC,EAAA,EAAA,UAAAN,EAAA,CAAA,GACAO,IAAAC,EAAAjB,EAAA,OAAA,GAEAkB,IAAAD,EAAA,EAAA,GACAE,IAAA,OAAAC,MAAA;AACI,UAAA;AACI,cAAA,UAAA,UAAA,UAAAR,EAAA,IAAA,GACAI,EAAA,QAAAhB,EAAA,SACAkB,EAAA,QAAA;AAAA,MAA8B,QAAA;AAE9B,QAAAF,EAAA,QAAAhB,EAAA;AAAA,MAAmC;AAGvC,MAAAU,EAAA,SAAAU,CAAA;AAAA,IAAmB,GAGvBC,IAAA,MAAA;AACI,MAAAL,EAAA,QAAAhB,EAAA,SACAkB,EAAA,QAAA;AAAA,IAA8B,GAGlCI,IAAAC,EAAA,MAAA;AACI,cAAAP,EAAA,OAAA;AAAA,QAAyB,KAAAhB,EAAA;AAEjB,iBAAAc,EAAA,QAAA;AAAA,QAAiB,KAAAd,EAAA;AAEjB,iBAAAc,EAAA,YAAA;AAAA,QAAqB;AAErB,iBAAAA,EAAA,MAAA;AAAA,MAAe;AAAA,IACvB,CAAA,GAGJU,IAAAD,EAAA,MAAAX,EAAA,aAAA,SAAAE,EAAA,MAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,9 +1,9 @@
1
1
  import { defineComponent as f, toRefs as _, ref as v, watch as b, inject as C, resolveComponent as h, createElementBlock as l, openBlock as u, createElementVNode as N, createBlock as S, toDisplayString as i, withCtx as B, createTextVNode as g } from "vue";
2
- import { B as L, d as O } from "./typography.CFHvBR7L.js";
2
+ import { B as L, d as O } from "./typography.yBEME_Gu.js";
3
3
  import { B as o, a as p, u as E } from "./country.types.C0Q_hhgJ.js";
4
4
  import { u as I } from "./i18n.B6g5VX0q.js";
5
5
  import { S as $ } from "./summary-grid.keys.CxTf_FOc.js";
6
- import { u as T, a as A } from "./use-country-phon-code.BOaJ9PDl.js";
6
+ import { u as T, a as A } from "./use-country-phon-code.Bui3zD6W.js";
7
7
  import { _ as M } from "./_plugin-vue_export-helper.CHgC5LLL.js";
8
8
  import "../assets/country.css";
9
9
  const U = f({
@@ -96,4 +96,4 @@ const H = /* @__PURE__ */ M(U, [["render", R], ["__scopeId", "data-v-b0f5fe96"]]
96
96
  export {
97
97
  H as c
98
98
  };
99
- //# sourceMappingURL=country.BdqTkF7A.js.map
99
+ //# sourceMappingURL=country.RVvsGwuV.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"country.BdqTkF7A.js","sources":["../../../vue2/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, type 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 { type 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","_hoisted_1","createElementVNode","_hoisted_2","_ctx","openBlock","createElementBlock","_hoisted_3","toDisplayString","createBlock","_component_bento_typography","createTextVNode"],"mappings":";;;;;;;;AAiCI,MAAAA,IAAAC,EAAA;AAAA,EAA+B,MAAA;AAAA,EACrB,YAAA,EAAA,iBAAAC,EAAA;AAAA,EACwB,OAAA;AAAA;AAAA;AAAA;AAAA,IACvB,MAAA;AAAA,MAIG,MAAA;AAAA,MACI,SAAAC,EAAA;AAAA,MACoB,WAAA,CAAAC,MAAA,OAAA,OAAAD,CAAA,EAAA,SAAAC,EAAA,YAAA,CAAA;AAAA,IAE0D;AAAA;AAAA;AAAA;AAAA,IACxF,OAAA;AAAA,MAKO,MAAA;AAAA,MACG,SAAA;AAAA,IACG;AAAA;AAAA;AAAA;AAAA;AAAA,IACb,SAAA;AAAA,MAMS,MAAA;AAAA,MACC,SAAAC,EAAA;AAAA,MACuB,WAAA,CAAAD,MAAA,OAAA,OAAAC,CAAA,EAAA,SAAAD,CAAA;AAAA,IAC+D;AAAA,EAChG;AAAA,EACJ,MAAAE,GAAA;AAGI,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;AACI,cAAAT,EAAA,OAAA;AAAA,QAAuB,KAAAH,EAAA;AAEf,iBAAAE,EAAA;AAAA,QAAY,KAAAF,EAAA;AAEZ,iBAAA,GAAAE,EAAA,KAAA,KAAAW,EAAAX,CAAA,EAAA,KAAA;AAAA,QAAwD,KAAAF,EAAA;AAIxD,iBAAA,GAAAc,EAAAZ,GAAAI,CAAA,EAAA,KAAA,KAAAE,EAAA,KAAA;AAAA,QAAqE,KAAAR,EAAA;AAErE,iBAAAI,EAAA;AAAA,QAAmB,KAAAJ,EAAA;AAAA,QACE;AAErB,iBAAAQ,EAAA;AAAA,MAAmB;AAAA,IAC3B;AAIJ,IAAAO;AAAA,MAAA,CAAAZ,GAAAG,GAAAJ,CAAA;AAAA,MAC0B,MAAA;AAElB,QAAAQ,EAAA,QAAAE,EAAA;AAAA,MAA8B;AAAA,MAClC,EAAA,WAAA,GAAA;AAAA,IACkB,IAGtBT,EAAA,UAAA,YAAAF,EAAA,UACIe;AAAA,MAAA;AAAA,MACI;AAAA,MACA;AAAA,IACA;AAKR,UAAAC,IAAAC;AAAA,MAAmEC;AAAA,MAC/D,OAAA;AAAA,QACO,qBAAA;AAAA,MACkB;AAAA,IACzB,GAGJ,EAAA,qBAAAC,EAAA,IAAAH,EAAA;AAEA,WAAA;AAAA;AAAA,MAAO,aAAAT;AAAA,MAEH,cAAAE;AAAA,MACA,qBAAAU;AAAA,IACA;AAAA,EACJ;AAER,CAAA,GA5HJC,IAAA,EAAA,OAAA,YAAA;;;;IAG2CC,EAAA,OAAAC,GAAA;AAAA,MAA/BC,EAAA,uBAAAC,EAAA,GAAAC,EAAA,QAAAC,GAAAC,EAAAJ,EAAA,YAAA,GAAA,CAAA,MAAAC,EAAA,GAAAI,EAAAC,GAAA;AAAA,QACkC,KAAA;AAAA,QAJ9C,IAAA;AAAA,MAAA,GAAA;AAAA;UAAAC,EAAAH,EAAAJ,EAAA,YAAA,GAAA,CAAA;AAAA,QAAA,CAAA;AAAA;;;;;;"}
1
+ {"version":3,"file":"country.RVvsGwuV.js","sources":["../../../vue2/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, type 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 { type 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","_hoisted_1","createElementVNode","_hoisted_2","_ctx","openBlock","createElementBlock","_hoisted_3","toDisplayString","createBlock","_component_bento_typography","createTextVNode"],"mappings":";;;;;;;;AAiCI,MAAAA,IAAAC,EAAA;AAAA,EAA+B,MAAA;AAAA,EACrB,YAAA,EAAA,iBAAAC,EAAA;AAAA,EACwB,OAAA;AAAA;AAAA;AAAA;AAAA,IACvB,MAAA;AAAA,MAIG,MAAA;AAAA,MACI,SAAAC,EAAA;AAAA,MACoB,WAAA,CAAAC,MAAA,OAAA,OAAAD,CAAA,EAAA,SAAAC,EAAA,YAAA,CAAA;AAAA,IAE0D;AAAA;AAAA;AAAA;AAAA,IACxF,OAAA;AAAA,MAKO,MAAA;AAAA,MACG,SAAA;AAAA,IACG;AAAA;AAAA;AAAA;AAAA;AAAA,IACb,SAAA;AAAA,MAMS,MAAA;AAAA,MACC,SAAAC,EAAA;AAAA,MACuB,WAAA,CAAAD,MAAA,OAAA,OAAAC,CAAA,EAAA,SAAAD,CAAA;AAAA,IAC+D;AAAA,EAChG;AAAA,EACJ,MAAAE,GAAA;AAGI,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;AACI,cAAAT,EAAA,OAAA;AAAA,QAAuB,KAAAH,EAAA;AAEf,iBAAAE,EAAA;AAAA,QAAY,KAAAF,EAAA;AAEZ,iBAAA,GAAAE,EAAA,KAAA,KAAAW,EAAAX,CAAA,EAAA,KAAA;AAAA,QAAwD,KAAAF,EAAA;AAIxD,iBAAA,GAAAc,EAAAZ,GAAAI,CAAA,EAAA,KAAA,KAAAE,EAAA,KAAA;AAAA,QAAqE,KAAAR,EAAA;AAErE,iBAAAI,EAAA;AAAA,QAAmB,KAAAJ,EAAA;AAAA,QACE;AAErB,iBAAAQ,EAAA;AAAA,MAAmB;AAAA,IAC3B;AAIJ,IAAAO;AAAA,MAAA,CAAAZ,GAAAG,GAAAJ,CAAA;AAAA,MAC0B,MAAA;AAElB,QAAAQ,EAAA,QAAAE,EAAA;AAAA,MAA8B;AAAA,MAClC,EAAA,WAAA,GAAA;AAAA,IACkB,IAGtBT,EAAA,UAAA,YAAAF,EAAA,UACIe;AAAA,MAAA;AAAA,MACI;AAAA,MACA;AAAA,IACA;AAKR,UAAAC,IAAAC;AAAA,MAAmEC;AAAA,MAC/D,OAAA;AAAA,QACO,qBAAA;AAAA,MACkB;AAAA,IACzB,GAGJ,EAAA,qBAAAC,EAAA,IAAAH,EAAA;AAEA,WAAA;AAAA;AAAA,MAAO,aAAAT;AAAA,MAEH,cAAAE;AAAA,MACA,qBAAAU;AAAA,IACA;AAAA,EACJ;AAER,CAAA,GA5HJC,IAAA,EAAA,OAAA,YAAA;;;;IAG2CC,EAAA,OAAAC,GAAA;AAAA,MAA/BC,EAAA,uBAAAC,EAAA,GAAAC,EAAA,QAAAC,GAAAC,EAAAJ,EAAA,YAAA,GAAA,CAAA,MAAAC,EAAA,GAAAI,EAAAC,GAAA;AAAA,QACkC,KAAA;AAAA,QAJ9C,IAAA;AAAA,MAAA,GAAA;AAAA;UAAAC,EAAAH,EAAAJ,EAAA,YAAA,GAAA,CAAA;AAAA,QAAA,CAAA;AAAA;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as W, useSlots as V, computed as g, onMounted as X, createElementBlock as T, openBlock as R, createBlock as _, unref as J, withCtx as v, createTextVNode as A, toDisplayString as l, Fragment as x } from "vue";
2
- import { d as b, B as h } from "./typography.CFHvBR7L.js";
2
+ import { d as b, B as h } from "./typography.yBEME_Gu.js";
3
3
  import { g as G } from "./get-slot-text.DQlZEsId.js";
4
4
  import { u as Q } from "./i18n.B6g5VX0q.js";
5
5
  import { _ as k } from "./_plugin-vue_export-helper.CHgC5LLL.js";
@@ -96,4 +96,4 @@ export {
96
96
  U as B,
97
97
  y as c
98
98
  };
99
- //# sourceMappingURL=currency.XiEfa4LT.js.map
99
+ //# sourceMappingURL=currency.CN4UnCx8.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"currency.XiEfa4LT.js","sources":["../../../vue2/src/utils/ts/currency/currency-map.ts","../../../vue2/src/utils/ts/currency/currency.ts","../../../vue2/src/components/currency/currency.types.ts","../../../vue2/src/components/currency/currency.vue"],"sourcesContent":["export interface CurrencyMap {\n exponent: number;\n currencies: string[];\n}\n\n/**\n * Contains mapping configuration between currency code and exponent for amount in the corresponding currency.\n * https://docs.adyen.com/development-resources/currency-codes\n *\n * @internal\n */\nexport const currencyMap: CurrencyMap[] = [\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 { currencyMap, type CurrencyMap } from './currency-map';\nimport { type CurrencyAmount } from './currency.types';\n\n/**\n * Returns exponent for specified currency code that do not adhere to the ISO 4217 standard.\n */\nexport const getNonStandardCurrency = (currency: string): CurrencyMap =>\n currencyMap.find(item => item.currencies.includes(currency));\n\n/**\n * Returns the number of minor units (decimal places) for a given currency.\n * The function uses an internal map for currencies with non-standard decimal places and defaults to 2 for all others.\n *\n * @param currency - The three-letter ISO 4217 currency code (e.g., 'USD', 'JPY').\n * @returns The number of decimal places for the currency.\n *\n * @example\n * getMinorUnitDigits('USD'); // Returns 2\n * getMinorUnitDigits('JPY'); // Returns 0\n */\nexport function getMinorUnitDigits(currency: string): number {\n const exception = getNonStandardCurrency(currency);\n\n return exception?.exponent ?? 2;\n}\n\n/**\n * Converts a currency amount from minor units to major units.\n *\n * @param amount The amount in minor units (e.g., cents).\n * @param currency The three-letter ISO 4217 currency code.\n * @returns The amount in major units (e.g., dollars).\n */\nexport const getNormalizedAmount = (amount: CurrencyAmount['value'], currency: string) =>\n amount / 10 ** getMinorUnitDigits(currency);\n","export interface BentoCurrencyProps {\n /**\n * Currency code based on the ISO 4217 standard\n */\n currency?: BentoCurrencyISOCode | `${BentoCurrencyISOCode}`;\n\n /**\n * Disable the default typography for the component. Only use this when the component is inside another typography component.\n */\n disableTypography?: boolean;\n\n /**\n * Accepts currency value in major units instead of minor ones\n */\n majorUnits?: boolean;\n\n /**\n * Currency value to be formatted\n */\n value?: number;\n\n /**\n * Determines how the currency symbol and negative values are displayed.\n * This is only applicable to certain countries such as `en-US`.\n *\n * - `'standard'`: Default format (e.g., `-1,234.56 USD`).\n * - `'accounting'`: Uses accounting conventions, such as wrapping negative numbers in parentheses (e.g., `(1,234.56) USD`).\n *\n * @default 'standard'\n */\n currencySign?: Intl.NumberFormatOptions['currencySign'];\n}\n\nexport enum BentoCurrencyISOCode {\n AED = 'AED',\n AFA = 'AFA',\n ALL = 'ALL',\n AMD = 'AMD',\n ANG = 'ANG',\n AOA = 'AOA',\n ARS = 'ARS',\n AUD = 'AUD',\n AWG = 'AWG',\n AZN = 'AZN',\n BAM = 'BAM',\n BBD = 'BBD',\n BDT = 'BDT',\n BEF = 'BEF',\n BGN = 'BGN',\n BHD = 'BHD',\n BIF = 'BIF',\n BMD = 'BMD',\n BND = 'BND',\n BOB = 'BOB',\n BRL = 'BRL',\n BSD = 'BSD',\n BTC = 'BTC',\n BTN = 'BTN',\n BWP = 'BWP',\n BYR = 'BYR',\n BZD = 'BZD',\n CAD = 'CAD',\n CDF = 'CDF',\n CHF = 'CHF',\n CLF = 'CLF',\n CLP = 'CLP',\n CNY = 'CNY',\n COP = 'COP',\n CRC = 'CRC',\n CUC = 'CUC',\n CVE = 'CVE',\n CZK = 'CZK',\n DEM = 'DEM',\n DJF = 'DJF',\n DKK = 'DKK',\n DOP = 'DOP',\n DZD = 'DZD',\n EEK = 'EEK',\n EGP = 'EGP',\n ERN = 'ERN',\n ETB = 'ETB',\n EUR = 'EUR',\n FJD = 'FJD',\n FKP = 'FKP',\n GBP = 'GBP',\n GEL = 'GEL',\n GHS = 'GHS',\n GIP = 'GIP',\n GMD = 'GMD',\n GNF = 'GNF',\n GRD = 'GRD',\n GTQ = 'GTQ',\n GYD = 'GYD',\n HKD = 'HKD',\n HNL = 'HNL',\n HRK = 'HRK',\n HTG = 'HTG',\n HUF = 'HUF',\n IDR = 'IDR',\n ILS = 'ILS',\n INR = 'INR',\n IQD = 'IQD',\n IRR = 'IRR',\n ISK = 'ISK',\n ITL = 'ITL',\n JMD = 'JMD',\n JOD = 'JOD',\n JPY = 'JPY',\n KES = 'KES',\n KGS = 'KGS',\n KHR = 'KHR',\n KMF = 'KMF',\n KPW = 'KPW',\n KRW = 'KRW',\n KWD = 'KWD',\n KYD = 'KYD',\n KZT = 'KZT',\n LAK = 'LAK',\n LBP = 'LBP',\n LKR = 'LKR',\n LRD = 'LRD',\n LSL = 'LSL',\n LTC = 'LTC',\n LTL = 'LTL',\n LVL = 'LVL',\n LYD = 'LYD',\n MAD = 'MAD',\n MDL = 'MDL',\n MGA = 'MGA',\n MKD = 'MKD',\n MMK = 'MMK',\n MNT = 'MNT',\n MOP = 'MOP',\n MRO = 'MRO',\n MRU = 'MRU',\n MUR = 'MUR',\n MVR = 'MVR',\n MWK = 'MWK',\n MXN = 'MXN',\n MYR = 'MYR',\n MZM = 'MZM',\n NAD = 'NAD',\n NGN = 'NGN',\n NIO = 'NIO',\n NOK = 'NOK',\n NPR = 'NPR',\n NZD = 'NZD',\n OMR = 'OMR',\n PAB = 'PAB',\n PEN = 'PEN',\n PGK = 'PGK',\n PHP = 'PHP',\n PKR = 'PKR',\n PLN = 'PLN',\n PYG = 'PYG',\n QAR = 'QAR',\n RON = 'RON',\n RSD = 'RSD',\n RUB = 'RUB',\n RWF = 'RWF',\n SAR = 'SAR',\n SBD = 'SBD',\n SCR = 'SCR',\n SDG = 'SDG',\n SEK = 'SEK',\n SGD = 'SGD',\n SHP = 'SHP',\n SKK = 'SKK',\n SLL = 'SLL',\n SOS = 'SOS',\n SRD = 'SRD',\n SSP = 'SSP',\n STD = 'STD',\n SVC = 'SVC',\n SYP = 'SYP',\n SZL = 'SZL',\n THB = 'THB',\n TJS = 'TJS',\n TMT = 'TMT',\n TND = 'TND',\n TOP = 'TOP',\n TRY = 'TRY',\n TTD = 'TTD',\n TWD = 'TWD',\n TZS = 'TZS',\n UAH = 'UAH',\n UGX = 'UGX',\n USD = 'USD',\n UYU = 'UYU',\n UZS = 'UZS',\n VEF = 'VEF',\n VND = 'VND',\n VUV = 'VUV',\n WST = 'WST',\n XAF = 'XAF',\n XCD = 'XCD',\n XDR = 'XDR',\n XOF = 'XOF',\n XPF = 'XPF',\n YER = 'YER',\n ZAR = 'ZAR',\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 }}\n </bento-typography>\n\n <template v-else>{{ formattedCurrency }}</template>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { BentoTypography } from '@/components/typography';\n import { getMinorUnitDigits, getNonStandardCurrency, getNormalizedAmount } from '@/utils/ts/currency/currency';\n import { deprecate } from '@/utils/ts/deprecate';\n import { getSlotText } from '@/utils/ts/get-slot-text';\n import { useI18n } from '@/utils/ts/i18n';\n import { computed, onMounted, useSlots } from 'vue';\n import { BentoCurrencyISOCode, type BentoCurrencyProps } from './currency.types';\n\n const slots = useSlots();\n const { n } = useI18n();\n\n const props = withDefaults(defineProps<BentoCurrencyProps>(), {\n currency: BentoCurrencyISOCode.EUR,\n disableTypography: false,\n majorUnits: false,\n value: undefined,\n currencySign: 'standard',\n });\n\n /**\n * A computed property that returns a fully formatted and localized currency string.\n * It enforces the format `[localized number][non-breaking space][ISO code]`.\n *\n * @remarks\n * The formatting process involves several steps:\n * 1. It safely resolves the input `value`, whether it's from a prop or a slot, into a valid number.\n *\n * 2. If `majorUnits` is false, it converts the amount from minor units to major units\n * (e.g., cents to dollars) by dividing by 10 to the power of the currency's\n * decimal places (the \"exponent\"). For example, `12345 / (10 ** 2)` becomes `123.45`.\n *\n * 3. It determines the correct number of decimal places, respecting any non-standard\n * currency exceptions.\n *\n * 4. It uses `vue-i18n` to format the number with the correct sign placement and decimal/thousand\n * separators for the current locale, then manually reconstructs the string to ensure\n * the ISO code is always at the end.\n *\n * @returns A formatted currency string (e.g., \"1,234.56 USD\").\n */\n const formattedCurrency = computed<string>(() => {\n const { currency, currencySign, majorUnits } = props;\n\n const rawValue = props.value ?? getSlotText(slots)('default');\n\n // Ensures that rawValue is a valid number, defaulting to 0 if conversion results in NaN or any other falsy value (e.g., null, undefined, empty string)\n const value = Number(rawValue) || 0;\n\n // `n()` only accepts major units but our component defaults to accept minor units\n const valueInMajorUnits = majorUnits ? value : getNormalizedAmount(value, currency);\n\n // Some currencies do not follow the ISO4127 standard, hence we need to manually set the decimals\n const fractionDigits = getNonStandardCurrency(currency)?.exponent ?? getMinorUnitDigits(currency);\n\n const localizedCurrencyString = n(valueInMajorUnits, {\n style: 'currency',\n currency: currency,\n currencySign: currencySign,\n currencyDisplay: 'code',\n minimumFractionDigits: fractionDigits,\n maximumFractionDigits: fractionDigits,\n });\n\n // replace any currency code output + whitespace and enforce our own standard: `[localized number][non-breaking space][ISO code]`\n const isoCodeRegex = new RegExp(`\\\\s*${currency}\\\\s*`);\n const numberPart = localizedCurrencyString.replace(isoCodeRegex, '');\n\n return `${numberPart}\\u00A0${currency}`;\n });\n\n onMounted(() => {\n if (getSlotText(slots)('default')) {\n deprecate(\n 'BentoCurrency \"default\" slot',\n `The use of \"default\" slot in \"BentoCurrency\" is no longer supported as it causes issues with dynamic content.\n Use the \"value\" property instead.\n <bento-currency :value=\"12345.67\" currency=\"USD\" major-units=\"false\" />`,\n '2.0.0'\n );\n }\n });\n</script>\n\n<script lang=\"ts\">\n /**\n * A Currency component is used to display a formatted currency value.\n *\n * @example\n * import { BentoCurrency, BentoCurrencyISOCode } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoCurrency },\n * template: `\n * <bento-currency\n * :currency=\"BentoCurrencyISOCode.USD\"\n * :value=\"76.33\"\n * />\n * `\n * }\n */\n export default {\n name: 'bento-currency',\n i18n: {}, // required to enable E2E to run as they do not have vue-i18n set up\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./currency.scss\" />\n"],"names":["currencyMap","getNonStandardCurrency","currency","item","getMinorUnitDigits","exception","getNormalizedAmount","amount","BentoCurrencyISOCode","BentoCurrencyISOCode2","__default__","slots","useSlots","n","useI18n","props","__props","formattedCurrency","computed","currencySign","majorUnits","rawValue","getSlotText","value","valueInMajorUnits","fractionDigits","_a","localizedCurrencyString","isoCodeRegex","onMounted","deprecate"],"mappings":";;;;;;AAWO,MAAAA,IAAA;AAAA,EAAmC;AAAA,IACtC,UAAA;AAAA,IACc,YAAA;AAAA,MACE;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACA;AAAA,EACJ;AAAA,EACJ;AAAA,IACA,UAAA;AAAA,IACc,YAAA,CAAA,KAAA;AAAA,EACQ;AAAA,EACtB;AAAA,IACA,UAAA;AAAA,IACc,YAAA,CAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,KAAA;AAAA,EACkD;AAEpE,GClCaC,IAAA,CAAAC,MAAAF,EAAA,KAAA,CAAAG,MAAAA,EAAA,WAAA,SAAAD,CAAA,CAAA;AAcN,SAAAE,EAAAF,GAAA;AACH,QAAAG,IAAAJ,EAAAC,CAAA;AAEA,UAAAG,KAAA,gBAAAA,EAAA,aAAA;AACJ;AASO,MAAAC,IAAA,CAAAC,GAAAL,MAAAK,IAAA,MAAAH,EAAAF,CAAA;ACAK,IAAAM,IAAA,kBAAAC,OACRA,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,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,OAzKQA,IAAAD,KAAA,CAAA,CAAA;mCC8ERE,IAAA;AAAA,EAAe,MAAA;AAAA,EACL,MAAA,CAAA;AAAA;AAEV;;;;;;;;;;AA/FA,UAAAC,IAAAC,EAAA,GACA,EAAA,GAAAC,EAAA,IAAAC,EAAA,GAEAC,IAAAC,GA6BAC,IAAAC,EAAA,MAAA;;AACI,YAAA,EAAA,UAAAhB,GAAA,cAAAiB,GAAA,YAAAC,EAAA,IAAAL,GAEAM,IAAAN,EAAA,SAAAO,EAAAX,CAAA,EAAA,SAAA,GAGAY,IAAA,OAAAF,CAAA,KAAA,GAGAG,IAAAJ,IAAAG,IAAAjB,EAAAiB,GAAArB,CAAA,GAGAuB,MAAAC,IAAAzB,EAAAC,CAAA,MAAA,gBAAAwB,EAAA,aAAAtB,EAAAF,CAAA,GAEAyB,IAAAd,EAAAW,GAAA;AAAA,QAAqD,OAAA;AAAA,QAC1C,UAAAtB;AAAA,QACP,cAAAiB;AAAA,QACA,iBAAA;AAAA,QACiB,uBAAAM;AAAA,QACM,uBAAAA;AAAA,MACA,CAAA,GAI3BG,IAAA,IAAA,OAAA,OAAA1B,CAAA,MAAA;AAGA,aAAA,GAFAyB,EAAA,QAAAC,GAAA,EAAA,CAEA,IAAA1B,CAAA;AAAA,IAAqC,CAAA;AAGzC,WAAA2B,EAAA,MAAA;AACI,MAAAP,EAAAX,CAAA,EAAA,SAAA,KACImB;AAAA,QAAA;AAAA,QACI;AAAA;AAAA;AAAA,QACA;AAAA,MAGA;AAAA,IAER,CAAA;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"currency.CN4UnCx8.js","sources":["../../../vue2/src/utils/ts/currency/currency-map.ts","../../../vue2/src/utils/ts/currency/currency.ts","../../../vue2/src/components/currency/currency.types.ts","../../../vue2/src/components/currency/currency.vue"],"sourcesContent":["export interface CurrencyMap {\n exponent: number;\n currencies: string[];\n}\n\n/**\n * Contains mapping configuration between currency code and exponent for amount in the corresponding currency.\n * https://docs.adyen.com/development-resources/currency-codes\n *\n * @internal\n */\nexport const currencyMap: CurrencyMap[] = [\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 { currencyMap, type CurrencyMap } from './currency-map';\nimport { type CurrencyAmount } from './currency.types';\n\n/**\n * Returns exponent for specified currency code that do not adhere to the ISO 4217 standard.\n */\nexport const getNonStandardCurrency = (currency: string): CurrencyMap =>\n currencyMap.find(item => item.currencies.includes(currency));\n\n/**\n * Returns the number of minor units (decimal places) for a given currency.\n * The function uses an internal map for currencies with non-standard decimal places and defaults to 2 for all others.\n *\n * @param currency - The three-letter ISO 4217 currency code (e.g., 'USD', 'JPY').\n * @returns The number of decimal places for the currency.\n *\n * @example\n * getMinorUnitDigits('USD'); // Returns 2\n * getMinorUnitDigits('JPY'); // Returns 0\n */\nexport function getMinorUnitDigits(currency: string): number {\n const exception = getNonStandardCurrency(currency);\n\n return exception?.exponent ?? 2;\n}\n\n/**\n * Converts a currency amount from minor units to major units.\n *\n * @param amount The amount in minor units (e.g., cents).\n * @param currency The three-letter ISO 4217 currency code.\n * @returns The amount in major units (e.g., dollars).\n */\nexport const getNormalizedAmount = (amount: CurrencyAmount['value'], currency: string) =>\n amount / 10 ** getMinorUnitDigits(currency);\n","export interface BentoCurrencyProps {\n /**\n * Currency code based on the ISO 4217 standard\n */\n currency?: BentoCurrencyISOCode | `${BentoCurrencyISOCode}`;\n\n /**\n * Disable the default typography for the component. Only use this when the component is inside another typography component.\n */\n disableTypography?: boolean;\n\n /**\n * Accepts currency value in major units instead of minor ones\n */\n majorUnits?: boolean;\n\n /**\n * Currency value to be formatted\n */\n value?: number;\n\n /**\n * Determines how the currency symbol and negative values are displayed.\n * This is only applicable to certain countries such as `en-US`.\n *\n * - `'standard'`: Default format (e.g., `-1,234.56 USD`).\n * - `'accounting'`: Uses accounting conventions, such as wrapping negative numbers in parentheses (e.g., `(1,234.56) USD`).\n *\n * @default 'standard'\n */\n currencySign?: Intl.NumberFormatOptions['currencySign'];\n}\n\nexport enum BentoCurrencyISOCode {\n AED = 'AED',\n AFA = 'AFA',\n ALL = 'ALL',\n AMD = 'AMD',\n ANG = 'ANG',\n AOA = 'AOA',\n ARS = 'ARS',\n AUD = 'AUD',\n AWG = 'AWG',\n AZN = 'AZN',\n BAM = 'BAM',\n BBD = 'BBD',\n BDT = 'BDT',\n BEF = 'BEF',\n BGN = 'BGN',\n BHD = 'BHD',\n BIF = 'BIF',\n BMD = 'BMD',\n BND = 'BND',\n BOB = 'BOB',\n BRL = 'BRL',\n BSD = 'BSD',\n BTC = 'BTC',\n BTN = 'BTN',\n BWP = 'BWP',\n BYR = 'BYR',\n BZD = 'BZD',\n CAD = 'CAD',\n CDF = 'CDF',\n CHF = 'CHF',\n CLF = 'CLF',\n CLP = 'CLP',\n CNY = 'CNY',\n COP = 'COP',\n CRC = 'CRC',\n CUC = 'CUC',\n CVE = 'CVE',\n CZK = 'CZK',\n DEM = 'DEM',\n DJF = 'DJF',\n DKK = 'DKK',\n DOP = 'DOP',\n DZD = 'DZD',\n EEK = 'EEK',\n EGP = 'EGP',\n ERN = 'ERN',\n ETB = 'ETB',\n EUR = 'EUR',\n FJD = 'FJD',\n FKP = 'FKP',\n GBP = 'GBP',\n GEL = 'GEL',\n GHS = 'GHS',\n GIP = 'GIP',\n GMD = 'GMD',\n GNF = 'GNF',\n GRD = 'GRD',\n GTQ = 'GTQ',\n GYD = 'GYD',\n HKD = 'HKD',\n HNL = 'HNL',\n HRK = 'HRK',\n HTG = 'HTG',\n HUF = 'HUF',\n IDR = 'IDR',\n ILS = 'ILS',\n INR = 'INR',\n IQD = 'IQD',\n IRR = 'IRR',\n ISK = 'ISK',\n ITL = 'ITL',\n JMD = 'JMD',\n JOD = 'JOD',\n JPY = 'JPY',\n KES = 'KES',\n KGS = 'KGS',\n KHR = 'KHR',\n KMF = 'KMF',\n KPW = 'KPW',\n KRW = 'KRW',\n KWD = 'KWD',\n KYD = 'KYD',\n KZT = 'KZT',\n LAK = 'LAK',\n LBP = 'LBP',\n LKR = 'LKR',\n LRD = 'LRD',\n LSL = 'LSL',\n LTC = 'LTC',\n LTL = 'LTL',\n LVL = 'LVL',\n LYD = 'LYD',\n MAD = 'MAD',\n MDL = 'MDL',\n MGA = 'MGA',\n MKD = 'MKD',\n MMK = 'MMK',\n MNT = 'MNT',\n MOP = 'MOP',\n MRO = 'MRO',\n MRU = 'MRU',\n MUR = 'MUR',\n MVR = 'MVR',\n MWK = 'MWK',\n MXN = 'MXN',\n MYR = 'MYR',\n MZM = 'MZM',\n NAD = 'NAD',\n NGN = 'NGN',\n NIO = 'NIO',\n NOK = 'NOK',\n NPR = 'NPR',\n NZD = 'NZD',\n OMR = 'OMR',\n PAB = 'PAB',\n PEN = 'PEN',\n PGK = 'PGK',\n PHP = 'PHP',\n PKR = 'PKR',\n PLN = 'PLN',\n PYG = 'PYG',\n QAR = 'QAR',\n RON = 'RON',\n RSD = 'RSD',\n RUB = 'RUB',\n RWF = 'RWF',\n SAR = 'SAR',\n SBD = 'SBD',\n SCR = 'SCR',\n SDG = 'SDG',\n SEK = 'SEK',\n SGD = 'SGD',\n SHP = 'SHP',\n SKK = 'SKK',\n SLL = 'SLL',\n SOS = 'SOS',\n SRD = 'SRD',\n SSP = 'SSP',\n STD = 'STD',\n SVC = 'SVC',\n SYP = 'SYP',\n SZL = 'SZL',\n THB = 'THB',\n TJS = 'TJS',\n TMT = 'TMT',\n TND = 'TND',\n TOP = 'TOP',\n TRY = 'TRY',\n TTD = 'TTD',\n TWD = 'TWD',\n TZS = 'TZS',\n UAH = 'UAH',\n UGX = 'UGX',\n USD = 'USD',\n UYU = 'UYU',\n UZS = 'UZS',\n VEF = 'VEF',\n VND = 'VND',\n VUV = 'VUV',\n WST = 'WST',\n XAF = 'XAF',\n XCD = 'XCD',\n XDR = 'XDR',\n XOF = 'XOF',\n XPF = 'XPF',\n YER = 'YER',\n ZAR = 'ZAR',\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 }}\n </bento-typography>\n\n <template v-else>{{ formattedCurrency }}</template>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { BentoTypography } from '@/components/typography';\n import { getMinorUnitDigits, getNonStandardCurrency, getNormalizedAmount } from '@/utils/ts/currency/currency';\n import { deprecate } from '@/utils/ts/deprecate';\n import { getSlotText } from '@/utils/ts/get-slot-text';\n import { useI18n } from '@/utils/ts/i18n';\n import { computed, onMounted, useSlots } from 'vue';\n import { BentoCurrencyISOCode, type BentoCurrencyProps } from './currency.types';\n\n const slots = useSlots();\n const { n } = useI18n();\n\n const props = withDefaults(defineProps<BentoCurrencyProps>(), {\n currency: BentoCurrencyISOCode.EUR,\n disableTypography: false,\n majorUnits: false,\n value: undefined,\n currencySign: 'standard',\n });\n\n /**\n * A computed property that returns a fully formatted and localized currency string.\n * It enforces the format `[localized number][non-breaking space][ISO code]`.\n *\n * @remarks\n * The formatting process involves several steps:\n * 1. It safely resolves the input `value`, whether it's from a prop or a slot, into a valid number.\n *\n * 2. If `majorUnits` is false, it converts the amount from minor units to major units\n * (e.g., cents to dollars) by dividing by 10 to the power of the currency's\n * decimal places (the \"exponent\"). For example, `12345 / (10 ** 2)` becomes `123.45`.\n *\n * 3. It determines the correct number of decimal places, respecting any non-standard\n * currency exceptions.\n *\n * 4. It uses `vue-i18n` to format the number with the correct sign placement and decimal/thousand\n * separators for the current locale, then manually reconstructs the string to ensure\n * the ISO code is always at the end.\n *\n * @returns A formatted currency string (e.g., \"1,234.56 USD\").\n */\n const formattedCurrency = computed<string>(() => {\n const { currency, currencySign, majorUnits } = props;\n\n const rawValue = props.value ?? getSlotText(slots)('default');\n\n // Ensures that rawValue is a valid number, defaulting to 0 if conversion results in NaN or any other falsy value (e.g., null, undefined, empty string)\n const value = Number(rawValue) || 0;\n\n // `n()` only accepts major units but our component defaults to accept minor units\n const valueInMajorUnits = majorUnits ? value : getNormalizedAmount(value, currency);\n\n // Some currencies do not follow the ISO4127 standard, hence we need to manually set the decimals\n const fractionDigits = getNonStandardCurrency(currency)?.exponent ?? getMinorUnitDigits(currency);\n\n const localizedCurrencyString = n(valueInMajorUnits, {\n style: 'currency',\n currency: currency,\n currencySign: currencySign,\n currencyDisplay: 'code',\n minimumFractionDigits: fractionDigits,\n maximumFractionDigits: fractionDigits,\n });\n\n // replace any currency code output + whitespace and enforce our own standard: `[localized number][non-breaking space][ISO code]`\n const isoCodeRegex = new RegExp(`\\\\s*${currency}\\\\s*`);\n const numberPart = localizedCurrencyString.replace(isoCodeRegex, '');\n\n return `${numberPart}\\u00A0${currency}`;\n });\n\n onMounted(() => {\n if (getSlotText(slots)('default')) {\n deprecate(\n 'BentoCurrency \"default\" slot',\n `The use of \"default\" slot in \"BentoCurrency\" is no longer supported as it causes issues with dynamic content.\n Use the \"value\" property instead.\n <bento-currency :value=\"12345.67\" currency=\"USD\" major-units=\"false\" />`,\n '2.0.0'\n );\n }\n });\n</script>\n\n<script lang=\"ts\">\n /**\n * A Currency component is used to display a formatted currency value.\n *\n * @example\n * import { BentoCurrency, BentoCurrencyISOCode } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoCurrency },\n * template: `\n * <bento-currency\n * :currency=\"BentoCurrencyISOCode.USD\"\n * :value=\"76.33\"\n * />\n * `\n * }\n */\n export default {\n name: 'bento-currency',\n i18n: {}, // required to enable E2E to run as they do not have vue-i18n set up\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./currency.scss\" />\n"],"names":["currencyMap","getNonStandardCurrency","currency","item","getMinorUnitDigits","exception","getNormalizedAmount","amount","BentoCurrencyISOCode","BentoCurrencyISOCode2","__default__","slots","useSlots","n","useI18n","props","__props","formattedCurrency","computed","currencySign","majorUnits","rawValue","getSlotText","value","valueInMajorUnits","fractionDigits","_a","localizedCurrencyString","isoCodeRegex","onMounted","deprecate"],"mappings":";;;;;;AAWO,MAAAA,IAAA;AAAA,EAAmC;AAAA,IACtC,UAAA;AAAA,IACc,YAAA;AAAA,MACE;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACA;AAAA,EACJ;AAAA,EACJ;AAAA,IACA,UAAA;AAAA,IACc,YAAA,CAAA,KAAA;AAAA,EACQ;AAAA,EACtB;AAAA,IACA,UAAA;AAAA,IACc,YAAA,CAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,KAAA;AAAA,EACkD;AAEpE,GClCaC,IAAA,CAAAC,MAAAF,EAAA,KAAA,CAAAG,MAAAA,EAAA,WAAA,SAAAD,CAAA,CAAA;AAcN,SAAAE,EAAAF,GAAA;AACH,QAAAG,IAAAJ,EAAAC,CAAA;AAEA,UAAAG,KAAA,gBAAAA,EAAA,aAAA;AACJ;AASO,MAAAC,IAAA,CAAAC,GAAAL,MAAAK,IAAA,MAAAH,EAAAF,CAAA;ACAK,IAAAM,IAAA,kBAAAC,OACRA,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,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,OAzKQA,IAAAD,KAAA,CAAA,CAAA;mCC8ERE,IAAA;AAAA,EAAe,MAAA;AAAA,EACL,MAAA,CAAA;AAAA;AAEV;;;;;;;;;;AA/FA,UAAAC,IAAAC,EAAA,GACA,EAAA,GAAAC,EAAA,IAAAC,EAAA,GAEAC,IAAAC,GA6BAC,IAAAC,EAAA,MAAA;;AACI,YAAA,EAAA,UAAAhB,GAAA,cAAAiB,GAAA,YAAAC,EAAA,IAAAL,GAEAM,IAAAN,EAAA,SAAAO,EAAAX,CAAA,EAAA,SAAA,GAGAY,IAAA,OAAAF,CAAA,KAAA,GAGAG,IAAAJ,IAAAG,IAAAjB,EAAAiB,GAAArB,CAAA,GAGAuB,MAAAC,IAAAzB,EAAAC,CAAA,MAAA,gBAAAwB,EAAA,aAAAtB,EAAAF,CAAA,GAEAyB,IAAAd,EAAAW,GAAA;AAAA,QAAqD,OAAA;AAAA,QAC1C,UAAAtB;AAAA,QACP,cAAAiB;AAAA,QACA,iBAAA;AAAA,QACiB,uBAAAM;AAAA,QACM,uBAAAA;AAAA,MACA,CAAA,GAI3BG,IAAA,IAAA,OAAA,OAAA1B,CAAA,MAAA;AAGA,aAAA,GAFAyB,EAAA,QAAAC,GAAA,EAAA,CAEA,IAAA1B,CAAA;AAAA,IAAqC,CAAA;AAGzC,WAAA2B,EAAA,MAAA;AACI,MAAAP,EAAAX,CAAA,EAAA,SAAA,KACImB;AAAA,QAAA;AAAA,QACI;AAAA;AAAA;AAAA,QACA;AAAA,MAGA;AAAA,IAER,CAAA;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as I, useSlots as F, ref as u, computed as d, watch as g, onUnmounted as L, createElementBlock as l, openBlock as a, createVNode as $, createElementVNode as f, unref as s, mergeProps as R, createSlots as H, withCtx as _, renderSlot as i, normalizeClass as C, createCommentVNode as W, createBlock as w, Fragment as M, renderList as U, onMounted as q } from "vue";
2
- import { B as E } from "./header.B6DzOioR.js";
3
- import { B as A, a as G } from "./tab.jIG8-7-Q.js";
2
+ import { B as E } from "./header.Cd1P8lYK.js";
3
+ import { B as A, a as G } from "./tab.C3R_VoJL.js";
4
4
  import { c as J } from "./index.FNUaPG4G.js";
5
5
  import { o as K } from "./resize.Bqks3WUm.js";
6
6
  import { u as N } from "./use-has-slot.B7eQSabc.js";
@@ -162,4 +162,4 @@ export {
162
162
  vt as a,
163
163
  pt as d
164
164
  };
165
- //# sourceMappingURL=dashboard-section.Di16gWGI.js.map
165
+ //# sourceMappingURL=dashboard-section.Cll3tn0q.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-section.Di16gWGI.js","sources":["../../../vue2/src/templates/dashboard-template/dashboard-template.vue","../../../vue2/src/templates/dashboard-template/components/dashboard-section/dashboard-section.vue"],"sourcesContent":["<template>\n <main class=\"b-dashboard-template\">\n <bento-header v-bind=\"header\" variant=\"page\" class=\"b-dashboard-template__header\">\n <template v-if=\"hasSlot('infoIconTooltipContent')\" #infoIconTooltipContent>\n <slot name=\"infoIconTooltipContent\" />\n </template>\n </bento-header>\n <div class=\"b-dashboard-template__top-section\" :class=\"dashboardTopSectionConditionalClasses\">\n <div\n v-if=\"hasSlot('filters')\"\n ref=\"filtersRef\"\n class=\"b-dashboard-template__filters\"\n :class=\"dashboardFiltersConditionalClasses\"\n data-testid=\"filters\"\n >\n <slot name=\"filters\" />\n </div>\n\n <bento-tabs\n v-if=\"tabsSlots.length > 1\"\n ref=\"tabsRef\"\n :active-tab-index=\"tabs.activeTabIndex\"\n :sticky=\"stickyTabs\"\n :sticky-options=\"computedTabsOptions\"\n data-testid=\"tabs\"\n >\n <bento-tab v-for=\"(_item, index) in tabsSlots\" :key=\"`tab-${index}`\" :title=\"getTabTitle(index)\">\n <div class=\"b-dashboard-template__container b-dashboard-template__container--tabs\">\n <slot :name=\"`tab-${index + 1}`\" />\n </div>\n </bento-tab>\n </bento-tabs>\n <div v-else class=\"b-dashboard-template__container\">\n <slot />\n </div>\n </div>\n </main>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, onUnmounted, ref, useSlots, watch } from 'vue';\n import { BentoHeader } from '@/components/header';\n import { BentoTab, BentoTabs } from '@/components/tabs';\n import { useWindowScroll } from '@vueuse/core';\n import { observeSizeOfElement } from '@/utils/ts/resize';\n import { useHasSlot } from '@/composables';\n import type { BentoDashboardTemplateHeader, BentoDashboardTemplateTabs } from './dashboard-template.types';\n\n const props = withDefaults(\n defineProps<{\n /**\n * The header that goes to the top of the template\n */\n header: BentoDashboardTemplateHeader;\n\n /**\n * All the tab properties that can be set on the inner tab components.\n * - tabs.activeTabIndex: the currently active tab index.\n * - tabs.tabs: an array of BentoTab props, the first item in the array will affect the `tab-1` slot and so on.\n */\n tabs?: BentoDashboardTemplateTabs;\n\n /**\n * Renders the tabs with a sticky positioning\n */\n stickyTabs?: boolean;\n\n /**\n * Renders the tabs with a sticky positioning\n */\n stickyFilters?: boolean;\n }>(),\n {\n tabs: undefined,\n stickyTabs: false,\n stickyFilters: false,\n }\n );\n\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n\n const tabsRef = ref<InstanceType<typeof BentoTabs>>();\n const filtersRef = ref<HTMLDivElement>(null);\n const isFiltersPinned = ref(false);\n let filtersElementObserver: ResizeObserver | null = null;\n const tabsPosition = ref(0);\n\n const hasStickyFilters = computed(() => filtersRef.value && props.stickyFilters);\n const hasStickyTabs = computed(() => tabsRef.value && props.stickyTabs);\n\n const dashboardFiltersConditionalClasses = computed(() => ({\n 'b-dashboard-template__filters--sticky': props.stickyFilters,\n 'b-dashboard-template__filters--show-border':\n hasStickyFilters.value && !hasStickyTabs.value && isFiltersPinned.value,\n }));\n\n const dashboardTopSectionConditionalClasses = computed(() => ({\n 'b-dashboard-template__top-section--sticky': props.stickyTabs || props.stickyFilters,\n }));\n\n const tabsSlots = computed(() => Object.keys(slots).filter(el => el?.includes('tab-')));\n\n const getTabTitle = (index: number) => props?.tabs.tabs?.[index]?.title ?? `Tab ${index + 1}`;\n\n const computedTabsOptions = computed(() => (tabsPosition.value ? { top: tabsPosition.value } : undefined));\n\n const { y } = useWindowScroll();\n\n watch(\n () => filtersRef.value,\n () => {\n if (!filtersElementObserver && filtersRef.value) {\n filtersElementObserver = observeSizeOfElement(filtersRef.value, () => {\n if (filtersRef.value && hasStickyTabs.value) {\n const filtersHeight = filtersRef.value.offsetHeight;\n tabsPosition.value = hasStickyFilters.value ? filtersHeight : 0;\n }\n });\n }\n }\n );\n\n watch(\n () => y.value,\n () => {\n if (hasStickyFilters.value) {\n isFiltersPinned.value = filtersRef.value?.getBoundingClientRect().top === 0;\n }\n }\n );\n\n onUnmounted(() => {\n filtersElementObserver?.disconnect();\n });\n</script>\n\n<script lang=\"ts\">\n /**\n * Dashboard template is a full page template used to visualize data on pages such as data dashboards and reports.\n *\n * @example\n * import { BentoDashboardTemplate, BentoDashboardSection } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoDashboardTemplate, BentoDashboardSection },\n * template: `\n * <bento-dashboard-template :header=\"{ title: 'Dashboard'}\" :tabs=\"tabs: [{ title: 'Tab 1' }, { title: 'Tab 2' }]\" sticky-tabs sticky-filters>\n * <template #tab-1>\n * <bento-dashboard-section :header=\"{ title: 'Section'}\">\n * <template #controls>\n * // Add your controls here\n * </template>\n * // Add your content here\n * </bento-dashboard-section>\n * </template>\n * <template #tab-2>\n * <bento-dashboard-section :header=\"{ title: 'Section'}\">\n * // Add your content here\n * </bento-dashboard-section>\n * </template>\n * </bento-dashboard-template>\n * `\n * }\n */\n export default {};\n</script>\n\n<style lang=\"scss\" scoped src=\"./dashboard-template.scss\" />\n","<template>\n <div class=\"b-dashboard-section\" :class=\"conditionalClasses\">\n <bento-header v-bind=\"header\" variant=\"component\" class=\"b-dashboard-template__header\">\n <template v-if=\"hasSlot('infoIconTooltipContent')\" #infoIconTooltipContent>\n <slot name=\"infoIconTooltipContent\" />\n </template>\n </bento-header>\n <div v-if=\"hasSlot('controls')\" class=\"b-dashboard-section__controls\">\n <slot name=\"controls\"></slot>\n </div>\n <div v-if=\"!hasSlot('content-col-1') && !hasSlot('content-col-2')\" class=\"b-dashboard-section__content\">\n <slot name=\"default\"></slot>\n </div>\n <div v-else class=\"b-dashboard-section__columns\">\n <div class=\"b-dashboard-section__content\"><slot name=\"content-col-1\"></slot></div>\n <div class=\"b-dashboard-section__content\"><slot name=\"content-col-2\"></slot></div>\n </div>\n <bento-divider class=\"b-dashboard-section__divider\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, onMounted, useSlots } from 'vue';\n import { BentoHeader } from '@/components/header';\n import { BentoDivider } from '@/components/divider';\n import { useHasSlot } from '@/composables';\n import type { BentoDashboardTemplateHeader } from '../../dashboard-template.types';\n\n const props = withDefaults(\n defineProps<{\n /**\n * The header of the section\n */\n header: BentoDashboardTemplateHeader;\n\n /**\n * Renders the section to take only half of the page\n */\n halfWidth?: boolean;\n }>(),\n {\n halfWidth: false,\n }\n );\n\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n\n const conditionalClasses = computed(() => ({\n 'b-dashboard-section--half-width': props.halfWidth,\n }));\n\n onMounted(() => {\n if ((hasSlot('content-col-1') || hasSlot('content-col-2')) && props.halfWidth) {\n throw new Error('`content-col-1` and `content-col-2` cannot be used with half-width prop');\n }\n });\n</script>\n\n<script lang=\"ts\">\n /**\n * Dashboard section is subcomponent of Dashboard template meant to be used to create the different sections within the page.\n *\n * @example\n * import { BentoDashboardSection } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoDashboardSection },\n * template: `\n * <bento-dashboard-section :header=\"{ title: 'Section' }\" half-width>\n * <template #controls>\n * // Add your controls here\n * </template>\n * // You can render content with two cols\n * <template #content-col-1>\n * // Add your content here\n * </template>\n * <template #content-col-2>\n * // Add your content here\n * </template>\n * // Or you can render full width content by using default slot\n * // Add your content here\n * </bento-dashboard-section>\n * `\n * }\n */\n export default {};\n</script>\n\n<style lang=\"scss\" scoped src=\"./dashboard-section.scss\" />\n"],"names":["__default__$1","props","__props","slots","useSlots","hasSlot","useHasSlot","tabsRef","ref","filtersRef","isFiltersPinned","filtersElementObserver","tabsPosition","hasStickyFilters","computed","hasStickyTabs","dashboardFiltersConditionalClasses","dashboardTopSectionConditionalClasses","tabsSlots","el","getTabTitle","index","_b","_a","computedTabsOptions","y","useWindowScroll","watch","observeSizeOfElement","filtersHeight","onUnmounted","__default__","conditionalClasses","onMounted"],"mappings":";;;;;;;;;;;;GAqKIA,IAAA,CAAA;;;;;;;;;;AArHA,UAAAC,IAAAC,GA+BAC,IAAAC,EAAA,GACAC,IAAAC,EAAAH,CAAA,GAEAI,IAAAC,EAAA,GACAC,IAAAD,EAAA,IAAA,GACAE,IAAAF,EAAA,EAAA;AACA,QAAAG,IAAA;AACA,UAAAC,IAAAJ,EAAA,CAAA,GAEAK,IAAAC,EAAA,MAAAL,EAAA,SAAAR,EAAA,aAAA,GACAc,IAAAD,EAAA,MAAAP,EAAA,SAAAN,EAAA,UAAA,GAEAe,IAAAF,EAAA,OAAA;AAAA,MAA2D,yCAAAb,EAAA;AAAA,MACR,8CAAAY,EAAA,SAAA,CAAAE,EAAA,SAAAL,EAAA;AAAA,IAEuB,EAAA,GAG1EO,IAAAH,EAAA,OAAA;AAAA,MAA8D,6CAAAb,EAAA,cAAAA,EAAA;AAAA,IACa,EAAA,GAG3EiB,IAAAJ,EAAA,MAAA,OAAA,KAAAX,CAAA,EAAA,OAAA,CAAAgB,MAAAA,KAAA,gBAAAA,EAAA,SAAA,OAAA,CAAA,GAEAC,IAAA,CAAAC,MAAA;;AAAA,eAAAC,KAAAC,IAAAtB,KAAA,gBAAAA,EAAA,KAAA,SAAA,gBAAAsB,EAAAF,OAAA,gBAAAC,EAAA,UAAA,OAAAD,IAAA,CAAA;AAAA,OAEAG,IAAAV,EAAA,MAAAF,EAAA,QAAA,EAAA,KAAAA,EAAA,MAAA,IAAA,MAAA,GAEA,EAAA,GAAAa,EAAA,IAAAC,EAAA;AAEA,WAAAC;AAAA,MAAA,MAAAlB,EAAA;AAAA,MACqB,MAAA;AAEb,QAAA,CAAAE,KAAAF,EAAA,UACIE,IAAAiB,EAAAnB,EAAA,OAAA,MAAA;AACI,cAAAA,EAAA,SAAAM,EAAA,OAAA;AACI,kBAAAc,IAAApB,EAAA,MAAA;AACA,YAAAG,EAAA,QAAAC,EAAA,QAAAgB,IAAA;AAAA,UAA8D;AAAA,QAClE,CAAA;AAAA,MAER;AAAA,IACJ,GAGJF;AAAA,MAAA,MAAAF,EAAA;AAAA,MACY,MAAA;;AAEJ,QAAAZ,EAAA,UACIH,EAAA,UAAAa,IAAAd,EAAA,UAAA,gBAAAc,EAAA,wBAAA,SAAA;AAAA,MACJ;AAAA,IACJ,GAGJO,EAAA,MAAA;AACI,MAAAnB,KAAA,QAAAA,EAAA;AAAA,IAAmC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mGC/CvCoB,KAAA,CAAA;;;;;;;;AA1DA,UAAA9B,IAAAC,GAiBAC,IAAAC,EAAA,GACAC,IAAAC,EAAAH,CAAA,GAEA6B,IAAAlB,EAAA,OAAA;AAAA,MAA2C,mCAAAb,EAAA;AAAA,IACE,EAAA;AAG7C,WAAAgC,EAAA,MAAA;AACI,WAAA5B,EAAA,eAAA,KAAAA,EAAA,eAAA,MAAAJ,EAAA;AACI,cAAA,IAAA,MAAA,yEAAA;AAAA,IACJ,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"dashboard-section.Cll3tn0q.js","sources":["../../../vue2/src/templates/dashboard-template/dashboard-template.vue","../../../vue2/src/templates/dashboard-template/components/dashboard-section/dashboard-section.vue"],"sourcesContent":["<template>\n <main class=\"b-dashboard-template\">\n <bento-header v-bind=\"header\" variant=\"page\" class=\"b-dashboard-template__header\">\n <template v-if=\"hasSlot('infoIconTooltipContent')\" #infoIconTooltipContent>\n <slot name=\"infoIconTooltipContent\" />\n </template>\n </bento-header>\n <div class=\"b-dashboard-template__top-section\" :class=\"dashboardTopSectionConditionalClasses\">\n <div\n v-if=\"hasSlot('filters')\"\n ref=\"filtersRef\"\n class=\"b-dashboard-template__filters\"\n :class=\"dashboardFiltersConditionalClasses\"\n data-testid=\"filters\"\n >\n <slot name=\"filters\" />\n </div>\n\n <bento-tabs\n v-if=\"tabsSlots.length > 1\"\n ref=\"tabsRef\"\n :active-tab-index=\"tabs.activeTabIndex\"\n :sticky=\"stickyTabs\"\n :sticky-options=\"computedTabsOptions\"\n data-testid=\"tabs\"\n >\n <bento-tab v-for=\"(_item, index) in tabsSlots\" :key=\"`tab-${index}`\" :title=\"getTabTitle(index)\">\n <div class=\"b-dashboard-template__container b-dashboard-template__container--tabs\">\n <slot :name=\"`tab-${index + 1}`\" />\n </div>\n </bento-tab>\n </bento-tabs>\n <div v-else class=\"b-dashboard-template__container\">\n <slot />\n </div>\n </div>\n </main>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, onUnmounted, ref, useSlots, watch } from 'vue';\n import { BentoHeader } from '@/components/header';\n import { BentoTab, BentoTabs } from '@/components/tabs';\n import { useWindowScroll } from '@vueuse/core';\n import { observeSizeOfElement } from '@/utils/ts/resize';\n import { useHasSlot } from '@/composables';\n import type { BentoDashboardTemplateHeader, BentoDashboardTemplateTabs } from './dashboard-template.types';\n\n const props = withDefaults(\n defineProps<{\n /**\n * The header that goes to the top of the template\n */\n header: BentoDashboardTemplateHeader;\n\n /**\n * All the tab properties that can be set on the inner tab components.\n * - tabs.activeTabIndex: the currently active tab index.\n * - tabs.tabs: an array of BentoTab props, the first item in the array will affect the `tab-1` slot and so on.\n */\n tabs?: BentoDashboardTemplateTabs;\n\n /**\n * Renders the tabs with a sticky positioning\n */\n stickyTabs?: boolean;\n\n /**\n * Renders the tabs with a sticky positioning\n */\n stickyFilters?: boolean;\n }>(),\n {\n tabs: undefined,\n stickyTabs: false,\n stickyFilters: false,\n }\n );\n\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n\n const tabsRef = ref<InstanceType<typeof BentoTabs>>();\n const filtersRef = ref<HTMLDivElement>(null);\n const isFiltersPinned = ref(false);\n let filtersElementObserver: ResizeObserver | null = null;\n const tabsPosition = ref(0);\n\n const hasStickyFilters = computed(() => filtersRef.value && props.stickyFilters);\n const hasStickyTabs = computed(() => tabsRef.value && props.stickyTabs);\n\n const dashboardFiltersConditionalClasses = computed(() => ({\n 'b-dashboard-template__filters--sticky': props.stickyFilters,\n 'b-dashboard-template__filters--show-border':\n hasStickyFilters.value && !hasStickyTabs.value && isFiltersPinned.value,\n }));\n\n const dashboardTopSectionConditionalClasses = computed(() => ({\n 'b-dashboard-template__top-section--sticky': props.stickyTabs || props.stickyFilters,\n }));\n\n const tabsSlots = computed(() => Object.keys(slots).filter(el => el?.includes('tab-')));\n\n const getTabTitle = (index: number) => props?.tabs.tabs?.[index]?.title ?? `Tab ${index + 1}`;\n\n const computedTabsOptions = computed(() => (tabsPosition.value ? { top: tabsPosition.value } : undefined));\n\n const { y } = useWindowScroll();\n\n watch(\n () => filtersRef.value,\n () => {\n if (!filtersElementObserver && filtersRef.value) {\n filtersElementObserver = observeSizeOfElement(filtersRef.value, () => {\n if (filtersRef.value && hasStickyTabs.value) {\n const filtersHeight = filtersRef.value.offsetHeight;\n tabsPosition.value = hasStickyFilters.value ? filtersHeight : 0;\n }\n });\n }\n }\n );\n\n watch(\n () => y.value,\n () => {\n if (hasStickyFilters.value) {\n isFiltersPinned.value = filtersRef.value?.getBoundingClientRect().top === 0;\n }\n }\n );\n\n onUnmounted(() => {\n filtersElementObserver?.disconnect();\n });\n</script>\n\n<script lang=\"ts\">\n /**\n * Dashboard template is a full page template used to visualize data on pages such as data dashboards and reports.\n *\n * @example\n * import { BentoDashboardTemplate, BentoDashboardSection } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoDashboardTemplate, BentoDashboardSection },\n * template: `\n * <bento-dashboard-template :header=\"{ title: 'Dashboard'}\" :tabs=\"tabs: [{ title: 'Tab 1' }, { title: 'Tab 2' }]\" sticky-tabs sticky-filters>\n * <template #tab-1>\n * <bento-dashboard-section :header=\"{ title: 'Section'}\">\n * <template #controls>\n * // Add your controls here\n * </template>\n * // Add your content here\n * </bento-dashboard-section>\n * </template>\n * <template #tab-2>\n * <bento-dashboard-section :header=\"{ title: 'Section'}\">\n * // Add your content here\n * </bento-dashboard-section>\n * </template>\n * </bento-dashboard-template>\n * `\n * }\n */\n export default {};\n</script>\n\n<style lang=\"scss\" scoped src=\"./dashboard-template.scss\" />\n","<template>\n <div class=\"b-dashboard-section\" :class=\"conditionalClasses\">\n <bento-header v-bind=\"header\" variant=\"component\" class=\"b-dashboard-template__header\">\n <template v-if=\"hasSlot('infoIconTooltipContent')\" #infoIconTooltipContent>\n <slot name=\"infoIconTooltipContent\" />\n </template>\n </bento-header>\n <div v-if=\"hasSlot('controls')\" class=\"b-dashboard-section__controls\">\n <slot name=\"controls\"></slot>\n </div>\n <div v-if=\"!hasSlot('content-col-1') && !hasSlot('content-col-2')\" class=\"b-dashboard-section__content\">\n <slot name=\"default\"></slot>\n </div>\n <div v-else class=\"b-dashboard-section__columns\">\n <div class=\"b-dashboard-section__content\"><slot name=\"content-col-1\"></slot></div>\n <div class=\"b-dashboard-section__content\"><slot name=\"content-col-2\"></slot></div>\n </div>\n <bento-divider class=\"b-dashboard-section__divider\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, onMounted, useSlots } from 'vue';\n import { BentoHeader } from '@/components/header';\n import { BentoDivider } from '@/components/divider';\n import { useHasSlot } from '@/composables';\n import type { BentoDashboardTemplateHeader } from '../../dashboard-template.types';\n\n const props = withDefaults(\n defineProps<{\n /**\n * The header of the section\n */\n header: BentoDashboardTemplateHeader;\n\n /**\n * Renders the section to take only half of the page\n */\n halfWidth?: boolean;\n }>(),\n {\n halfWidth: false,\n }\n );\n\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n\n const conditionalClasses = computed(() => ({\n 'b-dashboard-section--half-width': props.halfWidth,\n }));\n\n onMounted(() => {\n if ((hasSlot('content-col-1') || hasSlot('content-col-2')) && props.halfWidth) {\n throw new Error('`content-col-1` and `content-col-2` cannot be used with half-width prop');\n }\n });\n</script>\n\n<script lang=\"ts\">\n /**\n * Dashboard section is subcomponent of Dashboard template meant to be used to create the different sections within the page.\n *\n * @example\n * import { BentoDashboardSection } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoDashboardSection },\n * template: `\n * <bento-dashboard-section :header=\"{ title: 'Section' }\" half-width>\n * <template #controls>\n * // Add your controls here\n * </template>\n * // You can render content with two cols\n * <template #content-col-1>\n * // Add your content here\n * </template>\n * <template #content-col-2>\n * // Add your content here\n * </template>\n * // Or you can render full width content by using default slot\n * // Add your content here\n * </bento-dashboard-section>\n * `\n * }\n */\n export default {};\n</script>\n\n<style lang=\"scss\" scoped src=\"./dashboard-section.scss\" />\n"],"names":["__default__$1","props","__props","slots","useSlots","hasSlot","useHasSlot","tabsRef","ref","filtersRef","isFiltersPinned","filtersElementObserver","tabsPosition","hasStickyFilters","computed","hasStickyTabs","dashboardFiltersConditionalClasses","dashboardTopSectionConditionalClasses","tabsSlots","el","getTabTitle","index","_b","_a","computedTabsOptions","y","useWindowScroll","watch","observeSizeOfElement","filtersHeight","onUnmounted","__default__","conditionalClasses","onMounted"],"mappings":";;;;;;;;;;;;GAqKIA,IAAA,CAAA;;;;;;;;;;AArHA,UAAAC,IAAAC,GA+BAC,IAAAC,EAAA,GACAC,IAAAC,EAAAH,CAAA,GAEAI,IAAAC,EAAA,GACAC,IAAAD,EAAA,IAAA,GACAE,IAAAF,EAAA,EAAA;AACA,QAAAG,IAAA;AACA,UAAAC,IAAAJ,EAAA,CAAA,GAEAK,IAAAC,EAAA,MAAAL,EAAA,SAAAR,EAAA,aAAA,GACAc,IAAAD,EAAA,MAAAP,EAAA,SAAAN,EAAA,UAAA,GAEAe,IAAAF,EAAA,OAAA;AAAA,MAA2D,yCAAAb,EAAA;AAAA,MACR,8CAAAY,EAAA,SAAA,CAAAE,EAAA,SAAAL,EAAA;AAAA,IAEuB,EAAA,GAG1EO,IAAAH,EAAA,OAAA;AAAA,MAA8D,6CAAAb,EAAA,cAAAA,EAAA;AAAA,IACa,EAAA,GAG3EiB,IAAAJ,EAAA,MAAA,OAAA,KAAAX,CAAA,EAAA,OAAA,CAAAgB,MAAAA,KAAA,gBAAAA,EAAA,SAAA,OAAA,CAAA,GAEAC,IAAA,CAAAC,MAAA;;AAAA,eAAAC,KAAAC,IAAAtB,KAAA,gBAAAA,EAAA,KAAA,SAAA,gBAAAsB,EAAAF,OAAA,gBAAAC,EAAA,UAAA,OAAAD,IAAA,CAAA;AAAA,OAEAG,IAAAV,EAAA,MAAAF,EAAA,QAAA,EAAA,KAAAA,EAAA,MAAA,IAAA,MAAA,GAEA,EAAA,GAAAa,EAAA,IAAAC,EAAA;AAEA,WAAAC;AAAA,MAAA,MAAAlB,EAAA;AAAA,MACqB,MAAA;AAEb,QAAA,CAAAE,KAAAF,EAAA,UACIE,IAAAiB,EAAAnB,EAAA,OAAA,MAAA;AACI,cAAAA,EAAA,SAAAM,EAAA,OAAA;AACI,kBAAAc,IAAApB,EAAA,MAAA;AACA,YAAAG,EAAA,QAAAC,EAAA,QAAAgB,IAAA;AAAA,UAA8D;AAAA,QAClE,CAAA;AAAA,MAER;AAAA,IACJ,GAGJF;AAAA,MAAA,MAAAF,EAAA;AAAA,MACY,MAAA;;AAEJ,QAAAZ,EAAA,UACIH,EAAA,UAAAa,IAAAd,EAAA,UAAA,gBAAAc,EAAA,wBAAA,SAAA;AAAA,MACJ;AAAA,IACJ,GAGJO,EAAA,MAAA;AACI,MAAAnB,KAAA,QAAAA,EAAA;AAAA,IAAmC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mGC/CvCoB,KAAA,CAAA;;;;;;;;AA1DA,UAAA9B,IAAAC,GAiBAC,IAAAC,EAAA,GACAC,IAAAC,EAAAH,CAAA,GAEA6B,IAAAlB,EAAA,OAAA;AAAA,MAA2C,mCAAAb,EAAA;AAAA,IACE,EAAA;AAG7C,WAAAgC,EAAA,MAAA;AACI,WAAA5B,EAAA,eAAA,KAAAA,EAAA,eAAA,MAAAJ,EAAA;AACI,cAAA,IAAA,MAAA,yEAAA;AAAA,IACJ,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}