@adyen/bento-vue3 2.0.1 → 2.1.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 (325) hide show
  1. package/dist/@types/bento-translation-keys.generated.d.ts +908 -0
  2. package/dist/@types/index.d.ts +136 -82
  3. package/dist/accordion.js +1 -1
  4. package/dist/action-bar.js +1 -1
  5. package/dist/ai-tag.js +1 -1
  6. package/dist/alert.js +1 -1
  7. package/dist/anchor-scroller.js +1 -1
  8. package/dist/assets/accordion-item.css +1 -1
  9. package/dist/assets/action-bar.css +1 -1
  10. package/dist/assets/base-modal.css +1 -1
  11. package/dist/assets/button-actions.css +1 -1
  12. package/dist/assets/button.css +1 -1
  13. package/dist/assets/calendar.css +1 -1
  14. package/dist/assets/card.css +1 -1
  15. package/dist/assets/checkbox.css +1 -1
  16. package/dist/assets/chip.css +1 -1
  17. package/dist/assets/currency.css +1 -1
  18. package/dist/assets/data-grid.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/draggable.css +1 -1
  22. package/dist/assets/dropdown.css +1 -1
  23. package/dist/assets/file-uploader.css +1 -1
  24. package/dist/assets/filter-bar.css +1 -1
  25. package/dist/assets/header-with-views.css +1 -1
  26. package/dist/assets/input-field.css +1 -1
  27. package/dist/assets/input-time.css +1 -1
  28. package/dist/assets/inspector.css +1 -1
  29. package/dist/assets/modal-fullscreen.css +1 -1
  30. package/dist/assets/navigation-menu-group.css +1 -1
  31. package/dist/assets/pagination.css +1 -1
  32. package/dist/assets/rich-text-editor.css +1 -1
  33. package/dist/assets/search-bar.css +1 -1
  34. package/dist/assets/secondary-nav.css +1 -1
  35. package/dist/assets/selection-card-group.css +1 -1
  36. package/dist/assets/sidepanel.css +1 -1
  37. package/dist/assets/step.css +1 -1
  38. package/dist/assets/structured-list-item.css +1 -1
  39. package/dist/assets/tab.css +1 -1
  40. package/dist/assets/textarea.css +1 -1
  41. package/dist/assets/toggle.css +1 -1
  42. package/dist/assets/typography.css +1 -1
  43. package/dist/avatar.js +1 -1
  44. package/dist/button.js +3 -3
  45. package/dist/card.js +1 -1
  46. package/dist/checkbox.js +2 -2
  47. package/dist/chip.js +1 -1
  48. package/dist/chunks/{accordion-item.BMxeTYDy.js → accordion-item.BbMoC7Rn.js} +6 -6
  49. package/dist/chunks/{accordion-item.BMxeTYDy.js.map → accordion-item.BbMoC7Rn.js.map} +1 -1
  50. package/dist/chunks/{action-bar.CWjLoeOU.js → action-bar.C6XFuiE0.js} +20 -20
  51. package/dist/chunks/{action-bar.CWjLoeOU.js.map → action-bar.C6XFuiE0.js.map} +1 -1
  52. package/dist/chunks/{ai-button.CYaCMWFk.js → ai-button.M2xaszNl.js} +3 -3
  53. package/dist/chunks/{ai-button.CYaCMWFk.js.map → ai-button.M2xaszNl.js.map} +1 -1
  54. package/dist/chunks/{ai-tag.CjrOE5yl.js → ai-tag.BLDTP7fs.js} +4 -4
  55. package/dist/chunks/{ai-tag.CjrOE5yl.js.map → ai-tag.BLDTP7fs.js.map} +1 -1
  56. package/dist/chunks/{alert.C8Pe1-OO.js → alert.BYmn1ewo.js} +4 -4
  57. package/dist/chunks/{alert.C8Pe1-OO.js.map → alert.BYmn1ewo.js.map} +1 -1
  58. package/dist/chunks/{anchor-scroller.C3zkcfPH.js → anchor-scroller.B35-JMuH.js} +6 -6
  59. package/dist/chunks/{anchor-scroller.C3zkcfPH.js.map → anchor-scroller.B35-JMuH.js.map} +1 -1
  60. package/dist/chunks/{avatar.DcXyOCS4.js → avatar.Bes5Qw12.js} +2 -2
  61. package/dist/chunks/{avatar.DcXyOCS4.js.map → avatar.Bes5Qw12.js.map} +1 -1
  62. package/dist/chunks/{base-button.Bi5JR_6k.js → base-button.Dg_u0f2_.js} +3 -3
  63. package/dist/chunks/{base-button.Bi5JR_6k.js.map → base-button.Dg_u0f2_.js.map} +1 -1
  64. package/dist/chunks/{base-modal.Bn4ZXwv6.js → base-modal.CulokESn.js} +7 -7
  65. package/dist/chunks/{base-modal.Bn4ZXwv6.js.map → base-modal.CulokESn.js.map} +1 -1
  66. package/dist/chunks/{button-actions-with-menu.CrbF2BSQ.js → button-actions-with-menu.BsCmJeKU.js} +2 -2
  67. package/dist/chunks/{button-actions-with-menu.CrbF2BSQ.js.map → button-actions-with-menu.BsCmJeKU.js.map} +1 -1
  68. package/dist/chunks/{button-actions.uIjzze43.js → button-actions.DvuGEQxM.js} +9 -9
  69. package/dist/chunks/button-actions.DvuGEQxM.js.map +1 -0
  70. package/dist/chunks/button-actions.types.BptAXjD8.js.map +1 -1
  71. package/dist/chunks/{button.Ciflfide.js → button.DAcwNdtP.js} +3 -3
  72. package/dist/chunks/{button.Ciflfide.js.map → button.DAcwNdtP.js.map} +1 -1
  73. package/dist/chunks/{calendar.Dtba7fcs.js → calendar.EuBZ9HoM.js} +325 -322
  74. package/dist/chunks/calendar.EuBZ9HoM.js.map +1 -0
  75. package/dist/chunks/{card.a8QL14dy.js → card.OErI_R47.js} +8 -8
  76. package/dist/chunks/{card.a8QL14dy.js.map → card.OErI_R47.js.map} +1 -1
  77. package/dist/chunks/{checkbox-group.BCzNXT1-.js → checkbox-group.Deb5pHjj.js} +4 -4
  78. package/dist/chunks/{checkbox-group.BCzNXT1-.js.map → checkbox-group.Deb5pHjj.js.map} +1 -1
  79. package/dist/chunks/{checkbox.0RmIkniU.js → checkbox.YBhv3GCJ.js} +17 -17
  80. package/dist/chunks/{checkbox.0RmIkniU.js.map → checkbox.YBhv3GCJ.js.map} +1 -1
  81. package/dist/chunks/{chip.Bv6IGch0.js → chip.D4OozULC.js} +13 -11
  82. package/dist/chunks/{chip.Bv6IGch0.js.map → chip.D4OozULC.js.map} +1 -1
  83. package/dist/chunks/{code-snippet.BbswO6TU.js → code-snippet.DNDXr7t6.js} +7 -7
  84. package/dist/chunks/{code-snippet.BbswO6TU.js.map → code-snippet.DNDXr7t6.js.map} +1 -1
  85. package/dist/chunks/{controls-group.KarFHKUT.js → controls-group.CC3yZiTT.js} +3 -3
  86. package/dist/chunks/{controls-group.KarFHKUT.js.map → controls-group.CC3yZiTT.js.map} +1 -1
  87. package/dist/chunks/{copy.C92qFRaR.js → copy.YBeE8V9S.js} +4 -4
  88. package/dist/chunks/{copy.C92qFRaR.js.map → copy.YBeE8V9S.js.map} +1 -1
  89. package/dist/chunks/{country.BN34hLpN.js → country.PHJgPzKU.js} +7 -7
  90. package/dist/chunks/{country.BN34hLpN.js.map → country.PHJgPzKU.js.map} +1 -1
  91. package/dist/chunks/country.types.BCOrkmVK.js.map +1 -1
  92. package/dist/chunks/{currency.DS4-apvT.js → currency.Y6BqUzYE.js} +5 -5
  93. package/dist/chunks/{currency.DS4-apvT.js.map → currency.Y6BqUzYE.js.map} +1 -1
  94. package/dist/chunks/{dashboard-section.Bv-SveGN.js → dashboard-section.CjC3fVU6.js} +3 -3
  95. package/dist/chunks/{dashboard-section.Bv-SveGN.js.map → dashboard-section.CjC3fVU6.js.map} +1 -1
  96. package/dist/chunks/{dashed-underline.C3lSC1_R.js → dashed-underline.DAtZOaad.js} +4 -4
  97. package/dist/chunks/{dashed-underline.C3lSC1_R.js.map → dashed-underline.DAtZOaad.js.map} +1 -1
  98. package/dist/chunks/{data-grid-template.DqZmPeze.js → data-grid-template.bPjGSga2.js} +4 -4
  99. package/dist/chunks/{data-grid-template.DqZmPeze.js.map → data-grid-template.bPjGSga2.js.map} +1 -1
  100. package/dist/chunks/{data-grid.vBDlLHOW.js → data-grid.o5MQdWnJ.js} +26 -26
  101. package/dist/chunks/{data-grid.vBDlLHOW.js.map → data-grid.o5MQdWnJ.js.map} +1 -1
  102. package/dist/chunks/{date-picker.Dnr2HuxA.js → date-picker.DyB8XkiY.js} +10 -10
  103. package/dist/chunks/{date-picker.Dnr2HuxA.js.map → date-picker.DyB8XkiY.js.map} +1 -1
  104. package/dist/chunks/date-picker.types.Ckt7zxGy.js.map +1 -1
  105. package/dist/chunks/{date-range-picker.CuBygd3O.js → date-range-picker.BcQUUVcW.js} +567 -525
  106. package/dist/chunks/date-range-picker.BcQUUVcW.js.map +1 -0
  107. package/dist/chunks/date-range-picker.types.Ckt7zxGy.js.map +1 -1
  108. package/dist/chunks/{date.ojGAujAt.js → date.SUOSxkTe.js} +4 -4
  109. package/dist/chunks/{date.ojGAujAt.js.map → date.SUOSxkTe.js.map} +1 -1
  110. package/dist/chunks/{dialog-page.D60pjDsQ.js → dialog-page.CHpFuDd9.js} +4 -4
  111. package/dist/chunks/{dialog-page.D60pjDsQ.js.map → dialog-page.CHpFuDd9.js.map} +1 -1
  112. package/dist/chunks/{draggable-handle.Cvc8gHzx.js → draggable-handle.CKkSJP0K.js} +3 -3
  113. package/dist/chunks/{draggable-handle.Cvc8gHzx.js.map → draggable-handle.CKkSJP0K.js.map} +1 -1
  114. package/dist/chunks/{draggable.BZsgR26I.js → draggable.jzTSFcM7.js} +38 -35
  115. package/dist/chunks/draggable.jzTSFcM7.js.map +1 -0
  116. package/dist/chunks/{drawer.D3j-d3q5.js → drawer.De-jDVb2.js} +2 -2
  117. package/dist/chunks/{drawer.D3j-d3q5.js.map → drawer.De-jDVb2.js.map} +1 -1
  118. package/dist/chunks/{dropdown-tag.Bn5FPeEL.js → dropdown-tag.BvXqllkv.js} +8 -8
  119. package/dist/chunks/{dropdown-tag.Bn5FPeEL.js.map → dropdown-tag.BvXqllkv.js.map} +1 -1
  120. package/dist/chunks/{dropdown.D_jkFrMd.js → dropdown.BoSI-Rre.js} +20 -20
  121. package/dist/chunks/{dropdown.D_jkFrMd.js.map → dropdown.BoSI-Rre.js.map} +1 -1
  122. package/dist/chunks/{empty-state.DpUC-3wv.js → empty-state.BuK12EGe.js} +4 -4
  123. package/dist/chunks/{empty-state.DpUC-3wv.js.map → empty-state.BuK12EGe.js.map} +1 -1
  124. package/dist/chunks/{error-message.Bt0CznQM.js → error-message.DJ5l0EUH.js} +3 -3
  125. package/dist/chunks/{error-message.Bt0CznQM.js.map → error-message.DJ5l0EUH.js.map} +1 -1
  126. package/dist/chunks/es6.yPcTMnSH.js.map +1 -1
  127. package/dist/chunks/{field-label.Cz11fn_F.js → field-label.vrUwhoOg.js} +4 -4
  128. package/dist/chunks/{field-label.Cz11fn_F.js.map → field-label.vrUwhoOg.js.map} +1 -1
  129. package/dist/chunks/{file-uploader.BglImnqw.js → file-uploader.Cv8sm0Jd.js} +12 -12
  130. package/dist/chunks/{file-uploader.BglImnqw.js.map → file-uploader.Cv8sm0Jd.js.map} +1 -1
  131. package/dist/chunks/{filter-bar.DG4GTi8L.js → filter-bar.6ElVHgFA.js} +34 -31
  132. package/dist/chunks/filter-bar.6ElVHgFA.js.map +1 -0
  133. package/dist/chunks/{fixed-scroller.DoOR83iH.js → fixed-scroller.C0nVzRBU.js} +3 -3
  134. package/dist/chunks/{fixed-scroller.DoOR83iH.js.map → fixed-scroller.C0nVzRBU.js.map} +1 -1
  135. package/dist/chunks/{footer-actions.Dl20Q1WX.js → footer-actions.BJif4sIk.js} +4 -4
  136. package/dist/chunks/{footer-actions.Dl20Q1WX.js.map → footer-actions.BJif4sIk.js.map} +1 -1
  137. package/dist/chunks/{form-layout-group.iAwbiI_S.js → form-layout-group.B9Kzae5F.js} +2 -2
  138. package/dist/chunks/{form-layout-group.iAwbiI_S.js.map → form-layout-group.B9Kzae5F.js.map} +1 -1
  139. package/dist/chunks/{form-layout-title.BZFh_nGD.js → form-layout-title.C7f1ByNh.js} +4 -4
  140. package/dist/chunks/{form-layout-title.BZFh_nGD.js.map → form-layout-title.C7f1ByNh.js.map} +1 -1
  141. package/dist/chunks/{header-with-views.WJlXgGI5.js → header-with-views.Dl6bfk_7.js} +17 -17
  142. package/dist/chunks/{header-with-views.WJlXgGI5.js.map → header-with-views.Dl6bfk_7.js.map} +1 -1
  143. package/dist/chunks/{header.Bi3MPZKE.js → header.E-KFjIG7.js} +5 -5
  144. package/dist/chunks/{header.Bi3MPZKE.js.map → header.E-KFjIG7.js.map} +1 -1
  145. package/dist/chunks/index.CGBfMQdv.js +38 -0
  146. package/dist/chunks/index.CGBfMQdv.js.map +1 -0
  147. package/dist/chunks/{info-icon-with-popover.uSr6-jzR.js → info-icon-with-popover.DqnQnwMI.js} +4 -4
  148. package/dist/chunks/{info-icon-with-popover.uSr6-jzR.js.map → info-icon-with-popover.DqnQnwMI.js.map} +1 -1
  149. package/dist/chunks/{info-icon.Zlg6Sgz0.js → info-icon.D_zu5SYT.js} +2 -2
  150. package/dist/chunks/{info-icon.Zlg6Sgz0.js.map → info-icon.D_zu5SYT.js.map} +1 -1
  151. package/dist/chunks/{input-field-password.CJZxudne.js → input-field-password.BXptrVTT.js} +7 -7
  152. package/dist/chunks/{input-field-password.CJZxudne.js.map → input-field-password.BXptrVTT.js.map} +1 -1
  153. package/dist/chunks/{input-field-phone-number.OJ4MG9Gf.js → input-field-phone-number.Crxi8Wm7.js} +4 -4
  154. package/dist/chunks/{input-field-phone-number.OJ4MG9Gf.js.map → input-field-phone-number.Crxi8Wm7.js.map} +1 -1
  155. package/dist/chunks/{input-field.IyNujUZt.js → input-field._keU91LW.js} +24 -24
  156. package/dist/chunks/{input-field.IyNujUZt.js.map → input-field._keU91LW.js.map} +1 -1
  157. package/dist/chunks/input-time.D7UW_ww_.js +193 -0
  158. package/dist/chunks/input-time.D7UW_ww_.js.map +1 -0
  159. package/dist/chunks/{inspector-page.D42_PXHM.js → inspector-page.DNsc0lK1.js} +4 -4
  160. package/dist/chunks/{inspector-page.D42_PXHM.js.map → inspector-page.DNsc0lK1.js.map} +1 -1
  161. package/dist/chunks/{inspector.BBgrupfO.js → inspector.BLAqbhmV.js} +6 -6
  162. package/dist/chunks/{inspector.BBgrupfO.js.map → inspector.BLAqbhmV.js.map} +1 -1
  163. package/dist/chunks/{layout-row.DijjweVX.js → layout-row.X6mPrUu8.js} +2 -2
  164. package/dist/chunks/{layout-row.DijjweVX.js.map → layout-row.X6mPrUu8.js.map} +1 -1
  165. package/dist/chunks/{link.types.BGj7apK3.js → link.types.BZ1u_6CS.js} +2 -2
  166. package/dist/chunks/{link.types.BGj7apK3.js.map → link.types.BZ1u_6CS.js.map} +1 -1
  167. package/dist/chunks/{list-item.CT7dyMQH.js → list-item.RuGQ8Y4T.js} +6 -6
  168. package/dist/chunks/{list-item.CT7dyMQH.js.map → list-item.RuGQ8Y4T.js.map} +1 -1
  169. package/dist/chunks/{listbox-option-tag.CwrFdsY1.js → listbox-option-tag.71rmQvG8.js} +3 -3
  170. package/dist/chunks/{listbox-option-tag.CwrFdsY1.js.map → listbox-option-tag.71rmQvG8.js.map} +1 -1
  171. package/dist/chunks/{modal-fullscreen.I5bjqzfd.js → modal-fullscreen.jXJnaueu.js} +10 -10
  172. package/dist/chunks/modal-fullscreen.jXJnaueu.js.map +1 -0
  173. package/dist/chunks/{modal.vue_vue_type_script_setup_true_lang.CrsIyU7A.js → modal.vue_vue_type_script_setup_true_lang.BwmYlzFm.js} +8 -8
  174. package/dist/chunks/{modal.vue_vue_type_script_setup_true_lang.CrsIyU7A.js.map → modal.vue_vue_type_script_setup_true_lang.BwmYlzFm.js.map} +1 -1
  175. package/dist/chunks/{navigation-menu-group.BJ9ZsXEn.js → navigation-menu-group.BnS0isK8.js} +32 -32
  176. package/dist/chunks/navigation-menu-group.BnS0isK8.js.map +1 -0
  177. package/dist/chunks/{pagination.C5gZxtZY.js → pagination.C-kvJ-XK.js} +9 -8
  178. package/dist/chunks/{pagination.C5gZxtZY.js.map → pagination.C-kvJ-XK.js.map} +1 -1
  179. package/dist/chunks/{payment-method.q2yow5VR.js → payment-method.B69Mu88z.js} +2 -2
  180. package/dist/chunks/{payment-method.q2yow5VR.js.map → payment-method.B69Mu88z.js.map} +1 -1
  181. package/dist/chunks/payment-method.types.BqtH7RM2.js.map +1 -1
  182. package/dist/chunks/popover.types.dhllh3NP.js.map +1 -1
  183. package/dist/chunks/popper-container.Rfj8UdMD.js.map +1 -1
  184. package/dist/chunks/{promo-banner.kE1-WkzI.js → promo-banner.3d1DHWas.js} +4 -4
  185. package/dist/chunks/{promo-banner.kE1-WkzI.js.map → promo-banner.3d1DHWas.js.map} +1 -1
  186. package/dist/chunks/{radio-group.XmRPh03c.js → radio-group.BTI_2U11.js} +5 -5
  187. package/dist/chunks/{radio-group.XmRPh03c.js.map → radio-group.BTI_2U11.js.map} +1 -1
  188. package/dist/chunks/{rich-text-editor.Cv_Vwt-6.js → rich-text-editor.ClUU1zPM.js} +12 -12
  189. package/dist/chunks/{rich-text-editor.Cv_Vwt-6.js.map → rich-text-editor.ClUU1zPM.js.map} +1 -1
  190. package/dist/chunks/{scroll-to-section.CJorrxQT.js → scroll-to-section.BRr4Vwi7.js} +2 -2
  191. package/dist/chunks/{scroll-to-section.CJorrxQT.js.map → scroll-to-section.BRr4Vwi7.js.map} +1 -1
  192. package/dist/chunks/{search-bar.5tObtLfW.js → search-bar.D1Jz7hdd.js} +13 -13
  193. package/dist/chunks/{search-bar.5tObtLfW.js.map → search-bar.D1Jz7hdd.js.map} +1 -1
  194. package/dist/chunks/{secondary-nav.DApIImQ0.js → secondary-nav.D32VFDTi.js} +26 -26
  195. package/dist/chunks/{secondary-nav.DApIImQ0.js.map → secondary-nav.D32VFDTi.js.map} +1 -1
  196. package/dist/chunks/{segmented-control.CEt2dz4n.js → segmented-control.CarI0i3p.js} +3 -3
  197. package/dist/chunks/{segmented-control.CEt2dz4n.js.map → segmented-control.CarI0i3p.js.map} +1 -1
  198. package/dist/chunks/segmented-control.types.BHRLV8KU.js.map +1 -1
  199. package/dist/chunks/{selection-card-group.DHXtJpoB.js → selection-card-group.CQsS8-H9.js} +109 -108
  200. package/dist/chunks/{selection-card-group.DHXtJpoB.js.map → selection-card-group.CQsS8-H9.js.map} +1 -1
  201. package/dist/chunks/{sidepanel._30g8POM.js → sidepanel.CYWPV9dE.js} +13 -13
  202. package/dist/chunks/{sidepanel._30g8POM.js.map → sidepanel.CYWPV9dE.js.map} +1 -1
  203. package/dist/chunks/{status.Nss4P5OU.js → status.BJ48Isyh.js} +2 -2
  204. package/dist/chunks/{status.Nss4P5OU.js.map → status.BJ48Isyh.js.map} +1 -1
  205. package/dist/chunks/status.types.Dx8MDhEH.js.map +1 -1
  206. package/dist/chunks/{step.5_ZukVqJ.js → step.CRVu8HPR.js} +6 -6
  207. package/dist/chunks/step.CRVu8HPR.js.map +1 -0
  208. package/dist/chunks/{structured-list-item.CBzznwcF.js → structured-list-item.C6SAUS9a.js} +11 -10
  209. package/dist/chunks/structured-list-item.C6SAUS9a.js.map +1 -0
  210. package/dist/chunks/{summary-grid.types.BR_EGvRg.js → summary-grid.types.FTWeUNFh.js} +7 -7
  211. package/dist/chunks/{summary-grid.types.BR_EGvRg.js.map → summary-grid.types.FTWeUNFh.js.map} +1 -1
  212. package/dist/chunks/{tab.D_k5AVHk.js → tab.CwXAsp9E.js} +44 -43
  213. package/dist/chunks/tab.CwXAsp9E.js.map +1 -0
  214. package/dist/chunks/{table-of-contents.CJ2yMbAG.js → table-of-contents.Bnyua5hb.js} +4 -4
  215. package/dist/chunks/{table-of-contents.CJ2yMbAG.js.map → table-of-contents.Bnyua5hb.js.map} +1 -1
  216. package/dist/chunks/{tag.BE1j0Oid.js → tag.BYxa556o.js} +3 -3
  217. package/dist/chunks/{tag.BE1j0Oid.js.map → tag.BYxa556o.js.map} +1 -1
  218. package/dist/chunks/{textarea.BYshPd98.js → textarea.D4aMdmDx.js} +8 -8
  219. package/dist/chunks/textarea.D4aMdmDx.js.map +1 -0
  220. package/dist/chunks/{timeline-item.Sy_DSw6p.js → timeline-item.De8HCoYw.js} +11 -11
  221. package/dist/chunks/{timeline-item.Sy_DSw6p.js.map → timeline-item.De8HCoYw.js.map} +1 -1
  222. package/dist/chunks/{title-details.C4ZvxPMu.js → title-details.8cyCeaLf.js} +5 -5
  223. package/dist/chunks/{title-details.C4ZvxPMu.js.map → title-details.8cyCeaLf.js.map} +1 -1
  224. package/dist/chunks/{toast.u5Y_CGe_.js → toast.BI2PD8Oj.js} +5 -5
  225. package/dist/chunks/{toast.u5Y_CGe_.js.map → toast.BI2PD8Oj.js.map} +1 -1
  226. package/dist/chunks/{toggle.BW8ww0Ih.js → toggle.BbCqV953.js} +4 -4
  227. package/dist/chunks/{toggle.BW8ww0Ih.js.map → toggle.BbCqV953.js.map} +1 -1
  228. package/dist/chunks/{tooltip.TFOGHOO0.js → tooltip.0QqJo2sa.js} +2 -2
  229. package/dist/chunks/{tooltip.TFOGHOO0.js.map → tooltip.0QqJo2sa.js.map} +1 -1
  230. package/dist/chunks/{tutorial.vue_vue_type_script_setup_true_lang.BIP-heAH.js → tutorial.vue_vue_type_script_setup_true_lang.Dn4toWHY.js} +4 -4
  231. package/dist/chunks/{tutorial.vue_vue_type_script_setup_true_lang.BIP-heAH.js.map → tutorial.vue_vue_type_script_setup_true_lang.Dn4toWHY.js.map} +1 -1
  232. package/dist/chunks/{typography.wIM07Hbl.js → typography.B6elnWpr.js} +35 -35
  233. package/dist/chunks/{typography.wIM07Hbl.js.map → typography.B6elnWpr.js.map} +1 -1
  234. package/dist/chunks/{use-bento-toast-controller.BAoPbtq7.js → use-bento-toast-controller.CkpBtweL.js} +2 -2
  235. package/dist/chunks/{use-bento-toast-controller.BAoPbtq7.js.map → use-bento-toast-controller.CkpBtweL.js.map} +1 -1
  236. package/dist/chunks/{use-country-items.CYnYzs7x.js → use-country-items.CAYJt6XS.js} +3 -3
  237. package/dist/chunks/{use-country-items.CYnYzs7x.js.map → use-country-items.CAYJt6XS.js.map} +1 -1
  238. package/dist/chunks/{use-date-input-formatter._ik1DYYV.js → use-date-input-formatter.BIVkaB1k.js} +2 -2
  239. package/dist/chunks/{use-date-input-formatter._ik1DYYV.js.map → use-date-input-formatter.BIVkaB1k.js.map} +1 -1
  240. package/dist/chunks/{use-dynamic-date-fns-locale.BMO9rsEh.js → use-dynamic-date-fns-locale._EtEeU3i.js} +2 -2
  241. package/dist/chunks/{use-dynamic-date-fns-locale.BMO9rsEh.js.map → use-dynamic-date-fns-locale._EtEeU3i.js.map} +1 -1
  242. package/dist/code-snippet.js +1 -1
  243. package/dist/country.js +1 -1
  244. package/dist/currency.js +1 -1
  245. package/dist/dashboard-template.js +1 -1
  246. package/dist/dashed-underline.js +1 -1
  247. package/dist/data-grid-template.js +1 -1
  248. package/dist/data-grid.js +1 -1
  249. package/dist/date-picker.js +2 -2
  250. package/dist/date-range-picker.js +2 -2
  251. package/dist/date-time-picker.js +6 -6
  252. package/dist/date.js +1 -1
  253. package/dist/draggable.js +2 -2
  254. package/dist/drawer.js +1 -1
  255. package/dist/dropdown.js +2 -2
  256. package/dist/empty-state.js +1 -1
  257. package/dist/file-uploader.js +1 -1
  258. package/dist/filter-bar.js +1 -1
  259. package/dist/form-layout.js +2 -2
  260. package/dist/header-with-views.js +1 -1
  261. package/dist/header.js +1 -1
  262. package/dist/index.js +382 -353
  263. package/dist/index.js.map +1 -1
  264. package/dist/info-icon.js +1 -1
  265. package/dist/input-field-password.js +1 -1
  266. package/dist/input-field-phone-number.js +1 -1
  267. package/dist/input-field.js +1 -1
  268. package/dist/input-time.js +1 -1
  269. package/dist/inspector.js +2 -2
  270. package/dist/internal.js +14 -14
  271. package/dist/layout.js +1 -1
  272. package/dist/link.js +1 -1
  273. package/dist/list.js +1 -1
  274. package/dist/menu.js +1 -1
  275. package/dist/modal-fullscreen.js +1 -1
  276. package/dist/modal.js +2 -2
  277. package/dist/navigation-menu.js +1 -1
  278. package/dist/pagination.js +1 -1
  279. package/dist/payment-method.js +1 -1
  280. package/dist/popover.js +1 -1
  281. package/dist/progress-bar.js +4 -4
  282. package/dist/promo-banner.js +1 -1
  283. package/dist/radio-group.js +1 -1
  284. package/dist/rich-text-editor.js +1 -1
  285. package/dist/search-bar.js +2 -2
  286. package/dist/secondary-nav.js +1 -1
  287. package/dist/segmented-control.js +1 -1
  288. package/dist/selection-card.js +1 -1
  289. package/dist/sidepanel.js +1 -1
  290. package/dist/status.js +1 -1
  291. package/dist/stepper.js +1 -1
  292. package/dist/structured-list.js +1 -1
  293. package/dist/styles/bento-dark.css +3 -0
  294. package/dist/styles/bento-light.css +3 -0
  295. package/dist/styles/bento.css +3 -0
  296. package/dist/styles/legacy.css +3 -0
  297. package/dist/styles/styleguide.css +3 -0
  298. package/dist/styles/utility.css +9 -0
  299. package/dist/summary-grid.js +1 -1
  300. package/dist/table-of-contents.js +1 -1
  301. package/dist/tabs.js +1 -1
  302. package/dist/tag.js +1 -1
  303. package/dist/textarea.js +1 -1
  304. package/dist/timeline.js +1 -1
  305. package/dist/toast.js +1 -1
  306. package/dist/toggle.js +1 -1
  307. package/dist/tutorial.js +1 -1
  308. package/dist/typography.js +1 -1
  309. package/dist/web-types.json +1 -1
  310. package/package.json +9 -5
  311. package/dist/chunks/button-actions.uIjzze43.js.map +0 -1
  312. package/dist/chunks/calendar.Dtba7fcs.js.map +0 -1
  313. package/dist/chunks/date-range-picker.CuBygd3O.js.map +0 -1
  314. package/dist/chunks/draggable.BZsgR26I.js.map +0 -1
  315. package/dist/chunks/filter-bar.DG4GTi8L.js.map +0 -1
  316. package/dist/chunks/index.B875RXHM.js +0 -15
  317. package/dist/chunks/index.B875RXHM.js.map +0 -1
  318. package/dist/chunks/input-time.BJ6YqkFi.js +0 -122
  319. package/dist/chunks/input-time.BJ6YqkFi.js.map +0 -1
  320. package/dist/chunks/modal-fullscreen.I5bjqzfd.js.map +0 -1
  321. package/dist/chunks/navigation-menu-group.BJ9ZsXEn.js.map +0 -1
  322. package/dist/chunks/step.5_ZukVqJ.js.map +0 -1
  323. package/dist/chunks/structured-list-item.CBzznwcF.js.map +0 -1
  324. package/dist/chunks/tab.D_k5AVHk.js.map +0 -1
  325. package/dist/chunks/textarea.BYshPd98.js.map +0 -1
@@ -1,20 +1,20 @@
1
- import { defineComponent as J, useSlots as K, computed as r, inject as ee, ref as _, openBlock as n, createElementBlock as w, normalizeClass as h, createElementVNode as T, unref as t, renderSlot as v, createCommentVNode as R, withModifiers as ae, createBlock as d, withCtx as s, createTextVNode as U, toDisplayString as j, createVNode as oe, watch as le, provide as te, onMounted as re, Fragment as W, renderList as F, mergeProps as y, createSlots as Y } from "vue";
1
+ import { defineComponent as J, useSlots as K, computed as r, inject as ee, ref as _, openBlock as n, createElementBlock as w, normalizeClass as h, createElementVNode as T, unref as t, renderSlot as b, createCommentVNode as R, withModifiers as ae, createBlock as u, withCtx as s, createTextVNode as U, toDisplayString as j, createVNode as le, watch as oe, provide as te, onMounted as re, Fragment as W, renderList as F, mergeProps as p, createSlots as Y } from "vue";
2
2
  import { h as ne } from "./index.DCpihRYV.js";
3
3
  import { a as ie, B as se } from "./es6.yPcTMnSH.js";
4
- import { B as I } from "./typography.wIM07Hbl.js";
5
- import { u as de } from "./aria-label.CaUURpnB.js";
4
+ import { B as E } from "./typography.B6elnWpr.js";
5
+ import { C as de } from "./checkbox-input.Bv_GjPU8.js";
6
+ import { u as ue } from "./aria-label.CaUURpnB.js";
6
7
  import { g as Q } from "./generate-uid.DBWe4g6T.js";
7
- import { u as ue } from "./use-has-slot.CyMiImRQ.js";
8
- import { a as ce } from "./radio-input.FC4PVCHr.js";
9
- import { C as fe } from "./checkbox-input.Bv_GjPU8.js";
8
+ import { u as ce } from "./use-has-slot.CyMiImRQ.js";
9
+ import { a as me } from "./radio-input.FC4PVCHr.js";
10
10
  import { _ as X } from "./_plugin-vue_export-helper.CHgC5LLL.js";
11
- import { u as me } from "./form-field.B60VsF8d.js";
12
- import { C as ve } from "./controls-group.KarFHKUT.js";
13
- import { G as pe } from "./grid-layout.CCWNscU_.js";
14
- import { E as ye } from "./error-message.Bt0CznQM.js";
11
+ import { u as fe } from "./form-field.B60VsF8d.js";
12
+ import { C as ve } from "./controls-group.CC3yZiTT.js";
13
+ import { G as be } from "./grid-layout.CCWNscU_.js";
14
+ import { E as pe } from "./error-message.DJ5l0EUH.js";
15
15
  import "../assets/selection-card-group.css";
16
- var G = /* @__PURE__ */ ((l) => (l.DISABLED = "disabled", l.READONLY = "readonly", l.ERROR = "error", l))(G || {});
17
- const Z = /* @__PURE__ */ Symbol("selection card radio input injection key"), be = {
16
+ var G = /* @__PURE__ */ ((o) => (o.DISABLED = "disabled", o.READONLY = "readonly", o.ERROR = "error", o))(G || {});
17
+ const Z = /* @__PURE__ */ Symbol("selection card radio input injection key"), ye = {
18
18
  key: 0,
19
19
  class: "b-selection-card__icon",
20
20
  role: "presentation",
@@ -83,15 +83,15 @@ const Z = /* @__PURE__ */ Symbol("selection card radio input injection key"), be
83
83
  }
84
84
  },
85
85
  emits: ["input", "update:model-value"],
86
- setup(l, { emit: x }) {
87
- const e = l, S = x, z = K(), k = ue(z), u = Q("selection-card-input-id"), M = Q("selection-card-description"), g = r(
86
+ setup(o, { emit: x }) {
87
+ const e = o, S = x, z = K(), k = ce(z), c = Q("selection-card-input-id"), N = Q("selection-card-description"), g = r(
88
88
  () => e.modelValue
89
- ), L = r(
89
+ ), M = r(
90
90
  () => e.modelValue
91
91
  ), C = r(() => ({
92
92
  "b-selection-card--checked": P.value,
93
93
  "b-selection-card--fully-clickable": e.fullyClickable
94
- })), N = r(() => ({
94
+ })), L = r(() => ({
95
95
  [`b-selection-card--${G.DISABLED}`]: e.disabled,
96
96
  [`b-selection-card--${G.ERROR}`]: e.hasError,
97
97
  [`b-selection-card--${G.READONLY}`]: e.readonly,
@@ -102,35 +102,35 @@ const Z = /* @__PURE__ */ Symbol("selection card radio input injection key"), be
102
102
  "b-selection-card__checkbox-container-text--center-aligned": B.value
103
103
  })), O = r(() => ({
104
104
  "b-selection-card__slot--with-icon": k("icon")
105
- })), $ = de({
105
+ })), $ = ue({
106
106
  ariaLabel: e.title,
107
107
  label: e.value
108
- }), c = r(() => Array.isArray(e.modelValue)), P = r(() => b.value ? e.value === e.modelValue : c.value ? e.modelValue.some((o) => o === e.value) : e.modelValue), b = ee(Z, _(!1)), B = r(() => !e.subtitle && !e.description), f = _(null), E = _(null), a = _(null), p = (o) => {
109
- if (f.value.$refs.inputRef === o.target) {
108
+ }), m = r(() => Array.isArray(e.modelValue)), P = r(() => y.value ? e.value === e.modelValue : m.value ? e.modelValue.some((l) => l === e.value) : e.modelValue), y = ee(Z, _(!1)), B = r(() => !e.subtitle && !e.description), f = _(null), I = _(null), a = _(null), d = (l) => {
109
+ if (f.value.$refs.inputRef === l.target) {
110
110
  const D = i();
111
111
  q(D);
112
112
  return;
113
113
  }
114
- if (e.disabled && e.readonly || !e.fullyClickable && (E.value && E.value?.$el?.contains(o.target) || a.value && a.value?.$el?.contains(o.target) || f.value && f.value?.$el?.contains(o.target)))
114
+ if (e.disabled && e.readonly || !e.fullyClickable && (I.value && I.value?.$el?.contains(l.target) || a.value && a.value?.$el?.contains(l.target) || f.value && f.value?.$el?.contains(l.target)))
115
115
  return;
116
- const m = i();
117
- q(m);
116
+ const v = i();
117
+ q(v);
118
118
  }, i = () => {
119
- const o = (f.value?.$refs.inputRef).checked;
120
- if (c.value) {
121
- const m = [...e.modelValue], D = m.indexOf(e.value);
122
- return D === -1 ? m.push(e.value) : m.splice(D, 1), m;
119
+ const l = (f.value?.$refs.inputRef).checked;
120
+ if (m.value) {
121
+ const v = [...e.modelValue], D = v.indexOf(e.value);
122
+ return D === -1 ? v.push(e.value) : v.splice(D, 1), v;
123
123
  }
124
- return b.value ? e.value : o;
125
- }, q = (o) => {
126
- !e.disabled && !e.readonly && (S("update:model-value", o), S("input", o));
124
+ return y.value ? e.value : l;
125
+ }, q = (l) => {
126
+ !e.disabled && !e.readonly && (S("update:model-value", l), S("input", l));
127
127
  };
128
- return (o, m) => (n(), w("div", {
128
+ return (l, v) => (n(), w("div", {
129
129
  class: h(["b-selection-card", C.value]),
130
- onClick: p
130
+ onClick: d
131
131
  }, [
132
132
  T("div", {
133
- class: h(["b-selection-card__container", N.value])
133
+ class: h(["b-selection-card__container", L.value])
134
134
  }, [
135
135
  T("div", {
136
136
  class: h(["b-selection-card__checkbox-container", V.value])
@@ -138,35 +138,35 @@ const Z = /* @__PURE__ */ Symbol("selection card radio input injection key"), be
138
138
  T("div", {
139
139
  class: h(["b-selection-card__checkbox-container-text", A.value])
140
140
  }, [
141
- t(k)("icon") ? (n(), w("div", be, [
142
- v(o.$slots, "icon", {}, void 0, !0)
141
+ t(k)("icon") ? (n(), w("div", ye, [
142
+ b(l.$slots, "icon", {}, void 0, !0)
143
143
  ])) : R("", !0),
144
144
  T("label", {
145
- for: t(u),
145
+ for: t(c),
146
146
  class: "b-selection-card__text",
147
- onClick: ae(p, ["stop", "prevent"])
147
+ onClick: ae(d, ["stop", "prevent"])
148
148
  }, [
149
- l.subtitle ? (n(), d(t(I), {
149
+ o.subtitle ? (n(), u(t(E), {
150
150
  key: 0,
151
151
  class: "b-selection-card__description",
152
152
  el: "span",
153
153
  variant: "caption"
154
154
  }, {
155
155
  default: s(() => [
156
- U(j(l.subtitle), 1)
156
+ U(j(o.subtitle), 1)
157
157
  ]),
158
158
  _: 1
159
159
  })) : R("", !0),
160
- oe(t(I), {
160
+ le(t(E), {
161
161
  el: "span",
162
162
  variant: "title"
163
163
  }, {
164
164
  default: s(() => [
165
- U(j(l.title), 1)
165
+ U(j(o.title), 1)
166
166
  ]),
167
167
  _: 1
168
168
  }),
169
- l.description ? (n(), d(t(I), {
169
+ o.description ? (n(), u(t(E), {
170
170
  key: 1,
171
171
  id: "descriptionId",
172
172
  class: "b-selection-card__description",
@@ -174,53 +174,53 @@ const Z = /* @__PURE__ */ Symbol("selection card radio input injection key"), be
174
174
  variant: "body"
175
175
  }, {
176
176
  default: s(() => [
177
- U(j(l.description), 1)
177
+ U(j(o.description), 1)
178
178
  ]),
179
179
  _: 1
180
180
  })) : R("", !0)
181
181
  ], 8, he)
182
182
  ], 2),
183
- t(b) ? (n(), d(t(ce), {
183
+ t(y) ? (n(), u(t(me), {
184
184
  key: 0,
185
- id: t(u),
185
+ id: t(c),
186
186
  ref_key: "inputRef",
187
187
  ref: f,
188
188
  "aria-label": t($),
189
- "aria-describedby": l.description ? t(M) : void 0,
190
- disabled: l.disabled,
191
- "has-error": l.hasError,
192
- "aria-readonly": l.readonly ?? void 0,
193
- value: l.value,
194
- readonly: l.readonly,
189
+ "aria-describedby": o.description ? t(N) : void 0,
190
+ disabled: o.disabled,
191
+ "has-error": o.hasError,
192
+ "aria-readonly": o.readonly ?? void 0,
193
+ value: o.value,
194
+ readonly: o.readonly,
195
195
  "model-value": g.value
196
- }, null, 8, ["id", "aria-label", "aria-describedby", "disabled", "has-error", "aria-readonly", "value", "readonly", "model-value"])) : (n(), d(t(fe), {
196
+ }, null, 8, ["id", "aria-label", "aria-describedby", "disabled", "has-error", "aria-readonly", "value", "readonly", "model-value"])) : (n(), u(t(de), {
197
197
  key: 1,
198
- id: t(u),
198
+ id: t(c),
199
199
  ref_key: "inputRef",
200
200
  ref: f,
201
201
  "aria-label": t($),
202
- "aria-describedby": l.description ? t(M) : void 0,
203
- disabled: l.disabled,
204
- "has-error": l.hasError,
205
- "aria-readonly": l.readonly ?? void 0,
206
- value: l.value,
207
- readonly: l.readonly,
208
- "model-value": L.value
202
+ "aria-describedby": o.description ? t(N) : void 0,
203
+ disabled: o.disabled,
204
+ "has-error": o.hasError,
205
+ "aria-readonly": o.readonly ?? void 0,
206
+ value: o.value,
207
+ readonly: o.readonly,
208
+ "model-value": M.value
209
209
  }, null, 8, ["id", "aria-label", "aria-describedby", "disabled", "has-error", "aria-readonly", "value", "readonly", "model-value"]))
210
210
  ], 2),
211
- t(k)("content") ? (n(), d(t(I), {
211
+ t(k)("content") ? (n(), u(t(E), {
212
212
  key: 0,
213
213
  ref_key: "slotRef",
214
- ref: E,
214
+ ref: I,
215
215
  el: "div",
216
216
  class: h(["b-selection-card__slot", O.value])
217
217
  }, {
218
218
  default: s(() => [
219
- v(o.$slots, "content", {}, void 0, !0)
219
+ b(l.$slots, "content", {}, void 0, !0)
220
220
  ]),
221
221
  _: 3
222
222
  }, 8, ["class"])) : R("", !0),
223
- t(k)("dynamicContent") && P.value ? (n(), d(t(I), {
223
+ t(k)("dynamicContent") && P.value ? (n(), u(t(E), {
224
224
  key: 1,
225
225
  ref_key: "dynamicSlotRef",
226
226
  ref: a,
@@ -228,7 +228,7 @@ const Z = /* @__PURE__ */ Symbol("selection card radio input injection key"), be
228
228
  class: h(["b-selection-card__slot", O.value])
229
229
  }, {
230
230
  default: s(() => [
231
- v(o.$slots, "dynamicContent", {}, void 0, !0)
231
+ b(l.$slots, "dynamicContent", {}, void 0, !0)
232
232
  ]),
233
233
  _: 3
234
234
  }, 8, ["class"])) : R("", !0)
@@ -259,42 +259,43 @@ const Z = /* @__PURE__ */ Symbol("selection card radio input injection key"), be
259
259
  tooltipText: { default: null }
260
260
  },
261
261
  emits: ["update:model-value"],
262
- setup(l, { emit: x }) {
263
- const e = l, S = x, { emitValue: z } = me(S), k = K(), u = (a) => !!k[a], M = r(() => ({
262
+ setup(o, { emit: x }) {
263
+ const e = o, S = x, { emitValue: z } = fe(S), k = K(), c = (a) => !!k[a], N = r(() => ({
264
264
  "b-selection-card-group__items--horizontal": e.layout === "horizontal"
265
265
  })), g = _(e.modelValue);
266
- le(
266
+ oe(
267
267
  () => e.modelValue,
268
268
  () => {
269
269
  g.value = e.modelValue;
270
270
  }
271
271
  );
272
- const L = Q("error"), C = r(() => !e.disabled && !e.readonly && !!e.errorMessage), N = _(null), { width: V } = ne(N), A = r(() => ie.split("px")[0]), O = r(() => se.split("px")[0]), $ = r(() => V.value < A.value ? "small" : V.value >= A.value && V.value < O.value ? "medium" : "large"), c = r(() => e.itemsPerRow?.[$?.value] || e.items.length), P = r(() => {
272
+ const M = Q("error"), C = r(() => !e.disabled && !e.readonly && !!e.errorMessage), L = _(null), { width: V } = ne(L), A = r(() => ie.split("px")[0]), O = r(() => se.split("px")[0]), $ = r(() => V.value < A.value ? "small" : V.value >= A.value && V.value < O.value ? "medium" : "large"), m = r(() => e.itemsPerRow?.[$?.value] || e.items.length), P = r(() => {
273
273
  if (!e.itemsPerRow)
274
274
  return [];
275
275
  const a = [];
276
- for (let p = 0; p < e.items.length; p += c?.value)
277
- a.push(e.items.slice(p, p + c?.value));
276
+ for (let d = 0; d < e.items.length; d += m?.value)
277
+ a.push(e.items.slice(d, d + m?.value));
278
278
  return a;
279
- }), b = r(() => 12 / c?.value), B = r(() => c?.value ? new Array(c?.value).fill({
279
+ }), y = r(() => 12 / m?.value), B = r(() => m?.value ? new Array(m?.value).fill({
280
280
  // Instead of passing the actual screen sizes values, passing the same values per each screen size and recomputing it makes sure visually the change is smoother and not laggy
281
- small: b.value,
282
- medium: b.value,
283
- large: b.value
281
+ small: y.value,
282
+ medium: y.value,
283
+ large: y.value
284
284
  }) : []), f = (a) => {
285
285
  g.value = a, z(a);
286
- }, E = r(() => e.variant === "radio");
287
- return te(Z, E), re(() => {
286
+ }, I = r(() => e.variant === "radio");
287
+ return te(Z, I), re(() => {
288
288
  e.itemsPerRow && Object.values(e.itemsPerRow).forEach((a) => {
289
- if (a && (a < 2 || a > 6))
289
+ const d = Number(a);
290
+ if (!Number.isInteger(d) || d < 1 || d > 6)
290
291
  throw new Error(
291
- "itemsPerRow values must have a value between 2 and 6 items per row. Read the documentation for more information."
292
+ "itemsPerRow values must have a value between 1 and 6 items per row. Read the documentation for more information."
292
293
  );
293
294
  });
294
- }), (a, p) => (n(), d(t(ve), {
295
+ }), (a, d) => (n(), u(t(ve), {
295
296
  ref_key: "containerRef",
296
- ref: N,
297
- "aria-describedby": C.value ? t(L) : null,
297
+ ref: L,
298
+ "aria-describedby": C.value ? t(M) : null,
298
299
  "aria-required": a.required,
299
300
  label: a.label,
300
301
  "hide-label": a.hideLabel,
@@ -310,9 +311,9 @@ const Z = /* @__PURE__ */ Symbol("selection card radio input injection key"), be
310
311
  default: s(() => [
311
312
  !a.itemsPerRow || a.layout === "vertical" ? (n(), w("div", {
312
313
  key: 0,
313
- class: h(["b-selection-card-group__items", M.value])
314
+ class: h(["b-selection-card-group__items", N.value])
314
315
  }, [
315
- (n(!0), w(W, null, F(a.items, (i) => (n(), d(H, y({
316
+ (n(!0), w(W, null, F(a.items, (i) => (n(), u(H, p({
316
317
  key: `selection-card-${i.value}`,
317
318
  class: "b-selection-card-group__item",
318
319
  ref_for: !0
@@ -323,24 +324,24 @@ const Z = /* @__PURE__ */ Symbol("selection card radio input injection key"), be
323
324
  disabled: a.disabled || i.disabled,
324
325
  "onUpdate:modelValue": f
325
326
  }), Y({ _: 2 }, [
326
- u("icon") && i.icon ? {
327
+ c("icon") && i.icon ? {
327
328
  name: "icon",
328
329
  fn: s(() => [
329
- v(a.$slots, "icon", y({ ref_for: !0 }, i), void 0, !0)
330
+ b(a.$slots, "icon", p({ ref_for: !0 }, i), void 0, !0)
330
331
  ]),
331
332
  key: "0"
332
333
  } : void 0,
333
- u("content") && i.content ? {
334
+ c("content") && i.content ? {
334
335
  name: "content",
335
336
  fn: s(() => [
336
- v(a.$slots, "content", y({ ref_for: !0 }, i), void 0, !0)
337
+ b(a.$slots, "content", p({ ref_for: !0 }, i), void 0, !0)
337
338
  ]),
338
339
  key: "1"
339
340
  } : void 0,
340
- u("dynamicContent") && i.dynamicContent ? {
341
+ c("dynamicContent") && i.dynamicContent ? {
341
342
  name: "dynamicContent",
342
343
  fn: s(() => [
343
- v(a.$slots, "dynamicContent", y({ ref_for: !0 }, i), void 0, !0)
344
+ b(a.$slots, "dynamicContent", p({ ref_for: !0 }, i), void 0, !0)
344
345
  ]),
345
346
  key: "2"
346
347
  } : void 0
@@ -348,43 +349,43 @@ const Z = /* @__PURE__ */ Symbol("selection card radio input injection key"), be
348
349
  ], 2)) : (n(), w("div", {
349
350
  key: `selection-card-group-layout-breakpoint-${$.value}`
350
351
  }, [
351
- (n(!0), w(W, null, F(P.value, (i, q) => (n(), d(t(pe), {
352
- key: `selection-card-group-row-${q}-cols-${c.value}`,
352
+ (n(!0), w(W, null, F(P.value, (i, q) => (n(), u(t(be), {
353
+ key: `selection-card-group-row-${q}-cols-${m.value}`,
353
354
  class: "b-selection-card-group__items--wrap",
354
355
  "column-width": B.value
355
356
  }, Y({ _: 2 }, [
356
- F(i, (o, m) => ({
357
- name: `col-${Number(m) + 1}`,
357
+ F(i, (l, v) => ({
358
+ name: `col-${Number(v) + 1}`,
358
359
  fn: s(() => [
359
- (n(), d(H, y({
360
- key: `selection-card-${o.value}`,
360
+ (n(), u(H, p({
361
+ key: `selection-card-${l.value}`,
361
362
  class: "b-selection-card-group__item b-selection-card-group__item--full-height",
362
363
  ref_for: !0
363
- }, o, {
364
+ }, l, {
364
365
  "model-value": g.value,
365
- readonly: a.readonly || o.readonly,
366
+ readonly: a.readonly || l.readonly,
366
367
  "has-error": C.value,
367
- disabled: a.disabled || o.disabled,
368
+ disabled: a.disabled || l.disabled,
368
369
  "onUpdate:modelValue": f
369
370
  }), Y({ _: 2 }, [
370
- u("icon") && o.icon ? {
371
+ c("icon") && l.icon ? {
371
372
  name: "icon",
372
373
  fn: s(() => [
373
- v(a.$slots, "icon", y({ ref_for: !0 }, o), void 0, !0)
374
+ b(a.$slots, "icon", p({ ref_for: !0 }, l), void 0, !0)
374
375
  ]),
375
376
  key: "0"
376
377
  } : void 0,
377
- u("content") && o.content ? {
378
+ c("content") && l.content ? {
378
379
  name: "content",
379
380
  fn: s(() => [
380
- v(a.$slots, "content", y({ ref_for: !0 }, o), void 0, !0)
381
+ b(a.$slots, "content", p({ ref_for: !0 }, l), void 0, !0)
381
382
  ]),
382
383
  key: "1"
383
384
  } : void 0,
384
- u("dynamicContent") && o.dynamicContent ? {
385
+ c("dynamicContent") && l.dynamicContent ? {
385
386
  name: "dynamicContent",
386
387
  fn: s(() => [
387
- v(a.$slots, "dynamicContent", y({ ref_for: !0 }, o), void 0, !0)
388
+ b(a.$slots, "dynamicContent", p({ ref_for: !0 }, l), void 0, !0)
388
389
  ]),
389
390
  key: "2"
390
391
  } : void 0
@@ -393,9 +394,9 @@ const Z = /* @__PURE__ */ Symbol("selection card radio input injection key"), be
393
394
  }))
394
395
  ]), 1032, ["column-width"]))), 128))
395
396
  ])),
396
- C.value ? (n(), d(t(ye), {
397
+ C.value ? (n(), u(t(pe), {
397
398
  key: 2,
398
- id: t(L),
399
+ id: t(M),
399
400
  "error-message": a.errorMessage,
400
401
  class: "b-selection-card-group__error-message"
401
402
  }, null, 8, ["id", "error-message"])) : R("", !0)
@@ -403,10 +404,10 @@ const Z = /* @__PURE__ */ Symbol("selection card radio input injection key"), be
403
404
  _: 3
404
405
  }, 8, ["aria-describedby", "aria-required", "label", "hide-label", "description", "disabled", "tooltip-text", "readonly", "required", "optional"]));
405
406
  }
406
- }), qe = /* @__PURE__ */ X(Re, [["__scopeId", "data-v-a7792b89"]]);
407
+ }), qe = /* @__PURE__ */ X(Re, [["__scopeId", "data-v-78394b17"]]);
407
408
  export {
408
409
  H as B,
409
410
  G as a,
410
411
  qe as s
411
412
  };
412
- //# sourceMappingURL=selection-card-group.DHXtJpoB.js.map
413
+ //# sourceMappingURL=selection-card-group.CQsS8-H9.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"selection-card-group.DHXtJpoB.js","sources":["../../../vue2/src/components/selection-card/selection-card.types.ts","../../../vue2/src/components/selection-card/selection-card.keys.ts","../../../vue2/src/components/selection-card/selection-card.vue","../../../vue2/src/components/selection-card/components/selection-card-group/selection-card-group.vue"],"sourcesContent":["import { type RadioInputValue } from '@/components/internal/radio-input';\nimport { type BentoCheckboxType } from '@/types/checkbox';\nimport { type VueNodeElement } from '@/types/elements';\n\nexport enum BentoSelectionCardState {\n DISABLED = 'disabled',\n READONLY = 'readonly',\n ERROR = 'error',\n}\n\nexport type BentoSelectionCardValue = string | number;\n\nexport type BentoSelectionCardModelValue = BentoCheckboxType | RadioInputValue;\n\nexport interface BentoSelectionCardItem {\n content?: string | object;\n description?: string;\n disabled?: boolean;\n dynamicContent?: string | object;\n fullyClickable?: boolean;\n hasError?: boolean;\n icon?: VueNodeElement;\n readonly?: boolean;\n subtitle?: string;\n title: string;\n value: BentoSelectionCardValue;\n}\n","export const SELECTION_CARD_RADIO_INPUT_INJECTION_KEY = Symbol('selection card radio input injection key');\n","<template>\n <div class=\"b-selection-card\" :class=\"conditionalClasses\" @click=\"handleCardClick\">\n <div class=\"b-selection-card__container\" :class=\"containerConditionalClasses\">\n <div class=\"b-selection-card__checkbox-container\" :class=\"checkboxContainerConditionalClasses\">\n <div class=\"b-selection-card__checkbox-container-text\" :class=\"checkboxContainerTextConditionalClasses\">\n <div v-if=\"hasSlot('icon')\" class=\"b-selection-card__icon\" role=\"presentation\" aria-hidden=\"true\">\n <slot name=\"icon\" />\n </div>\n <label :for=\"inputId\" class=\"b-selection-card__text\" @click.stop.prevent=\"handleCardClick\">\n <bento-typography\n v-if=\"subtitle\"\n class=\"b-selection-card__description\"\n el=\"span\"\n variant=\"caption\"\n >\n {{ subtitle }}\n </bento-typography>\n <bento-typography el=\"span\" variant=\"title\">{{ title }}</bento-typography>\n <bento-typography\n v-if=\"description\"\n id=\"descriptionId\"\n class=\"b-selection-card__description\"\n el=\"span\"\n variant=\"body\"\n >\n {{ description }}\n </bento-typography>\n </label>\n </div>\n <radio-input\n v-if=\"isRadioInput\"\n :id=\"inputId\"\n ref=\"inputRef\"\n :aria-label=\"ariaLabel\"\n :aria-describedby=\"description ? descriptionId : undefined\"\n :disabled=\"disabled\"\n :has-error=\"hasError\"\n :aria-readonly=\"readonly ?? undefined\"\n :value=\"value\"\n :readonly=\"readonly\"\n :model-value=\"computedRadioInputModelValue\"\n />\n <checkbox-input\n v-else\n :id=\"inputId\"\n ref=\"inputRef\"\n :aria-label=\"ariaLabel\"\n :aria-describedby=\"description ? descriptionId : undefined\"\n :disabled=\"disabled\"\n :has-error=\"hasError\"\n :aria-readonly=\"readonly ?? undefined\"\n :value=\"value\"\n :readonly=\"readonly\"\n :model-value=\"computedCheckboxInputModelValue\"\n />\n </div>\n <bento-typography\n v-if=\"hasSlot('content')\"\n ref=\"slotRef\"\n el=\"div\"\n class=\"b-selection-card__slot\"\n :class=\"slotConditionalClasses\"\n >\n <slot name=\"content\" />\n </bento-typography>\n <bento-typography\n v-if=\"hasSlot('dynamicContent') && isChecked\"\n ref=\"dynamicSlotRef\"\n el=\"div\"\n class=\"b-selection-card__slot\"\n :class=\"slotConditionalClasses\"\n >\n <slot name=\"dynamicContent\" />\n </bento-typography>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { BentoTypography } from '@/components/typography';\n import { CheckboxInput } from '../internal/checkbox-input';\n import { RadioInput, type RadioInputValue } from '../internal/radio-input';\n import { type BentoCheckboxType, type BentoMultiCheckboxType } from '@/types/checkbox';\n import { useAriaLabel } from '@/utils/ts/aria-label';\n import { generateUid } from '@/utils/ts/generate-uid';\n import { computed, type ComputedRef, inject, type PropType, type Ref, ref, useSlots } from 'vue';\n import { useHasSlot } from '@/composables';\n import type { BentoSelectionCardModelValue, BentoSelectionCardValue } from './selection-card.types';\n import { BentoSelectionCardState } from './selection-card.types';\n import { SELECTION_CARD_RADIO_INPUT_INJECTION_KEY } from './selection-card.keys';\n\n const props = defineProps({\n /**\n * The description of the selection card\n */\n description: {\n type: String,\n default: undefined,\n },\n\n /**\n * Disables the selection card\n */\n disabled: { type: Boolean, default: false },\n\n /**\n * Makes the entire selection card clickable. Clicking over interactive elements inside the card with this prop enabled will not be possible.\n */\n fullyClickable: { type: Boolean, default: false },\n\n /**\n * Shows the selection card in error state\n */\n hasError: { type: Boolean, default: false },\n\n /**\n * This property should not be used directly.\n * It will be used by v-model directive on selection card component.\n *\n * When handling a single input, use a string or a number.\n *\n * When handling multiple inputs, use an array of keys.\n * These keys exist as a set \"value\" prop for each input.\n */\n modelValue: {\n type: [Boolean, String, Array] as PropType<BentoSelectionCardModelValue>,\n default: null,\n },\n\n /**\n * Sets the selection card to readonly\n */\n readonly: { type: Boolean, default: false },\n\n /**\n * The subtitle of the selection card\n */\n subtitle: {\n type: String,\n default: undefined,\n },\n\n /**\n * The title of the selection card\n */\n title: {\n type: String,\n required: true,\n },\n\n /**\n * Indicates the value of the input that will be returned when it's checked.\n */\n value: {\n type: [String, Number] as PropType<BentoSelectionCardValue>,\n required: true,\n },\n });\n\n const emit = defineEmits<{\n /**\n * Emitted when the selection card is clicked. Enables Vue2 \"v-model\"\n */\n (e: 'input', value: BentoSelectionCardValue);\n /**\n * Emitted when the selection card is clicked. Enables Vue3 \"v-model\"\n */\n (e: 'update:model-value', value: BentoSelectionCardValue);\n }>();\n\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n\n const inputId = generateUid('selection-card-input-id');\n const descriptionId = generateUid('selection-card-description');\n\n const computedRadioInputModelValue: ComputedRef<RadioInputValue> = computed(\n () => props.modelValue as RadioInputValue\n );\n const computedCheckboxInputModelValue: ComputedRef<BentoCheckboxType> = computed(\n () => props.modelValue as BentoCheckboxType\n );\n\n const conditionalClasses = computed(() => ({\n 'b-selection-card--checked': isChecked.value,\n 'b-selection-card--fully-clickable': props.fullyClickable,\n }));\n\n const containerConditionalClasses = computed(() => ({\n [`b-selection-card--${BentoSelectionCardState.DISABLED}`]: props.disabled,\n [`b-selection-card--${BentoSelectionCardState.ERROR}`]: props.hasError,\n [`b-selection-card--${BentoSelectionCardState.READONLY}`]: props.readonly,\n 'b-selection-card--center-aligned': isTitleOnly.value,\n }));\n\n const checkboxContainerConditionalClasses = computed(() => ({\n 'b-selection-card__checkbox-container--center-aligned': isTitleOnly.value,\n }));\n\n const checkboxContainerTextConditionalClasses = computed(() => ({\n 'b-selection-card__checkbox-container-text--center-aligned': isTitleOnly.value,\n }));\n\n const slotConditionalClasses = computed(() => ({\n 'b-selection-card__slot--with-icon': hasSlot('icon'),\n }));\n\n const ariaLabel = useAriaLabel({\n ariaLabel: props.title,\n label: props.value as string,\n });\n\n const isCheckboxGroup = computed(() => Array.isArray(props.modelValue));\n\n const isChecked: ComputedRef<boolean> = computed(() => {\n if (isRadioInput.value) {\n return props.value === props.modelValue;\n }\n if (!isCheckboxGroup.value) {\n return props.modelValue as boolean;\n }\n\n return (props.modelValue as BentoMultiCheckboxType).some(item => item === props.value);\n });\n\n const isRadioInput: Ref<boolean> = inject(SELECTION_CARD_RADIO_INPUT_INJECTION_KEY, ref(false));\n\n const isTitleOnly = computed(() => !props.subtitle && !props.description);\n\n const inputRef = ref<InstanceType<typeof RadioInput> | InstanceType<typeof CheckboxInput>>(null);\n const slotRef = ref(null);\n const dynamicSlotRef = ref(null);\n\n // Handle click on the whole card area\n const handleCardClick = (event: Event) => {\n if (inputRef.value.$refs.inputRef === event.target) {\n const newValue = toggleInput();\n onChange(newValue);\n return;\n }\n\n // Do nothing if disabled or readonly\n if (props.disabled && props.readonly) {\n return;\n }\n\n // If it's not fully clickable prevent selecting the card if the click\n // originated in a slot\n if (!props.fullyClickable) {\n // Check if the click originated from the slot - in that case, do nothng\n if (slotRef.value && slotRef.value?.$el?.contains(event.target)) {\n return;\n }\n // Check if the click originated from the dynamic slot - in that case, do nothng\n if (dynamicSlotRef.value && dynamicSlotRef.value?.$el?.contains(event.target)) {\n return;\n }\n // Check if the click originated from the input - in that case do nothing, as the input will emit the event already\n if (inputRef.value && inputRef.value?.$el?.contains(event.target as Node)) {\n return;\n }\n }\n\n // If the click originated outside of these two areas, emit the change event\n const newValue = toggleInput();\n\n onChange(newValue);\n };\n\n const toggleInput = (): BentoSelectionCardModelValue => {\n const currentValue: boolean = (inputRef.value?.$refs.inputRef as HTMLInputElement).checked;\n\n if (isCheckboxGroup.value) {\n const newCheckedList = [...(props.modelValue as BentoMultiCheckboxType)];\n const index = newCheckedList.indexOf(props.value);\n\n if (index === -1) {\n newCheckedList.push(props.value);\n } else {\n newCheckedList.splice(index, 1);\n }\n return newCheckedList;\n }\n\n if (isRadioInput.value) {\n return props.value;\n }\n return currentValue;\n };\n\n const onChange = newValue => {\n if (!props.disabled && !props.readonly) {\n emit('update:model-value', newValue);\n emit('input', newValue);\n }\n };\n</script>\n\n<script lang=\"ts\">\n /**\n * Selection card component. If used standalone, only the checkbox variant can be used. If the checkbox variant is needed, please use the bento-selection-card-group component.\n *\n * @example\n * import { BentoSelectionCard } from '@adyen/bento-vue2';\n * import EmoticonHappyIcon from '@adyen/ui-assets-icons-16/vue/emoticon-happy';\n *\n * export default {\n * components: { BentoSelectionCard, EmoticonHappyIcon },\n * template: `\n * <bento-selection-card title=\"Card title\" :model-value.sync=\"yourModelValue\">\n * <template #icon>\n * <emoticon-happy-icon />\n * </template>\n * </bento-selection-card>\n * `\n * }\n */\n export default {\n name: 'bento-selection-card',\n };\n</script>\n<style lang=\"scss\" scoped src=\"./selection-card.scss\" />\n","<template>\n <controls-group\n ref=\"containerRef\"\n :aria-describedby=\"shouldShowGroupError ? errorMessageId : null\"\n :aria-required=\"required\"\n :label=\"label\"\n :hide-label=\"hideLabel\"\n :description=\"description\"\n :disabled=\"disabled\"\n :tooltip-text=\"tooltipText\"\n :readonly=\"readonly\"\n :required=\"required\"\n :optional=\"optional\"\n class=\"b-selection-card-group\"\n component-name=\"selection-card-group\"\n >\n <div\n v-if=\"!itemsPerRow || layout === 'vertical'\"\n class=\"b-selection-card-group__items\"\n :class=\"conditionalItemsClasses\"\n >\n <bento-selection-card\n v-for=\"item in items\"\n :key=\"`selection-card-${item.value}`\"\n class=\"b-selection-card-group__item\"\n v-bind=\"item\"\n :model-value=\"inputValue\"\n :readonly=\"readonly || item.readonly\"\n :has-error=\"shouldShowGroupError\"\n :disabled=\"disabled || item.disabled\"\n @update:model-value=\"onInput\"\n >\n <template v-if=\"hasSlot('icon') && item.icon\" #icon>\n <slot name=\"icon\" v-bind=\"item\"></slot>\n </template>\n <template v-if=\"hasSlot('content') && item.content\" #content>\n <slot name=\"content\" v-bind=\"item\"></slot>\n </template>\n <template v-if=\"hasSlot('dynamicContent') && item.dynamicContent\" #dynamicContent>\n <slot name=\"dynamicContent\" v-bind=\"item\"></slot>\n </template>\n </bento-selection-card>\n </div>\n <template v-else>\n <div :key=\"`selection-card-group-layout-breakpoint-${currentBreakpoint}`\">\n <grid-layout\n v-for=\"(row, rowIndex) in computedRows\"\n :key=\"`selection-card-group-row-${rowIndex}-cols-${computedItemsPerRow}`\"\n class=\"b-selection-card-group__items--wrap\"\n :column-width=\"computedColumnWidth\"\n >\n <template v-for=\"(item, columnIndex) in row\" #[`col-${Number(columnIndex)+1}`]>\n <bento-selection-card\n :key=\"`selection-card-${item.value}`\"\n class=\"b-selection-card-group__item b-selection-card-group__item--full-height\"\n v-bind=\"item\"\n :model-value=\"inputValue\"\n :readonly=\"readonly || item.readonly\"\n :has-error=\"shouldShowGroupError\"\n :disabled=\"disabled || item.disabled\"\n @update:model-value=\"onInput\"\n >\n <template v-if=\"hasSlot('icon') && item.icon\" #icon>\n <slot name=\"icon\" v-bind=\"item\"></slot>\n </template>\n <template v-if=\"hasSlot('content') && item.content\" #content>\n <slot name=\"content\" v-bind=\"item\"></slot>\n </template>\n <template v-if=\"hasSlot('dynamicContent') && item.dynamicContent\" #dynamicContent>\n <slot name=\"dynamicContent\" v-bind=\"item\"></slot>\n </template>\n </bento-selection-card>\n </template>\n </grid-layout>\n </div>\n </template>\n <error-message\n v-if=\"shouldShowGroupError\"\n :id=\"errorMessageId\"\n :error-message=\"errorMessage\"\n class=\"b-selection-card-group__error-message\"\n />\n </controls-group>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, onMounted, provide, ref, useSlots, watch } from 'vue';\n import { useElementSize } from '@vueuse/core';\n import { BMediaQueryMMax, BMediaQuerySMax } from '@adyen/bento-design-tokens/dist/js/bento/es6';\n import { type BentoSelectionCardGroupEmits, type BentoSelectionCardGroupProps } from './selection-card-group.types';\n import BentoSelectionCard from '../../selection-card.vue';\n import { ControlsGroup, ErrorMessage, GridLayout } from '../../../internal';\n import { SELECTION_CARD_RADIO_INPUT_INJECTION_KEY } from '../../selection-card.keys';\n import { generateUid } from '@/utils/ts/generate-uid';\n import { useFormFieldEmits } from '@/utils/ts/form-field/form-field';\n\n const props = withDefaults(defineProps<BentoSelectionCardGroupProps>(), {\n description: null,\n disabled: false,\n errorMessage: null,\n formId: null,\n hideLabel: null,\n label: null,\n layout: 'vertical',\n itemsPerRow: undefined,\n modelValue: null,\n optional: false,\n required: false,\n tooltipText: null,\n readonly: false,\n variant: 'checkbox',\n });\n\n const emit = defineEmits<BentoSelectionCardGroupEmits>();\n\n const { emitValue } = useFormFieldEmits(emit);\n\n const slots = useSlots();\n // Slots logic\n // Temporary, use-has-slots composable doesn't currently work for vue3 named scoped slots\n // We do the same in bento-checkbox-group\n const hasSlot = name => !!slots[name];\n\n const conditionalItemsClasses = computed(() => ({\n 'b-selection-card-group__items--horizontal': props.layout === 'horizontal',\n }));\n\n const inputValue = ref(props.modelValue);\n watch(\n () => props.modelValue,\n () => {\n inputValue.value = props.modelValue;\n }\n );\n\n // Error message logic\n const errorMessageId = generateUid('error');\n const shouldShowGroupError = computed(() => !props.disabled && !props.readonly && !!props.errorMessage);\n\n // itemsPerRow logic\n const containerRef = ref<HTMLElement | null>(null);\n const { width } = useElementSize(containerRef);\n\n const smallBreakpoint = computed(() => BMediaQuerySMax.split('px')[0]);\n const mediumBreakpoint = computed(() => BMediaQueryMMax.split('px')[0]);\n\n const currentBreakpoint = computed(() => {\n if (width.value < smallBreakpoint.value) {\n return 'small';\n }\n if (width.value >= smallBreakpoint.value && width.value < mediumBreakpoint.value) {\n return 'medium';\n }\n return 'large';\n });\n\n const computedItemsPerRow = computed(() => {\n return (props.itemsPerRow?.[currentBreakpoint?.value] as number) || props.items.length;\n });\n\n const computedRows = computed(() => {\n if (!props.itemsPerRow) {\n return [];\n }\n const rows = [];\n for (let i = 0; i < props.items.length; i += computedItemsPerRow?.value) {\n rows.push(props.items.slice(i, i + computedItemsPerRow?.value));\n }\n return rows;\n });\n\n // We need to compute the column width on 12 because we're using a 12-column system for out grid-layout logic\n const itemColumnWidth = computed(() => 12 / computedItemsPerRow?.value);\n\n /**\n * Filling the columnWidth array with the same parameters per item to pass\n * to the `grid-layout` layout so the each card can have\n * the same width according to the screen size.\n */\n const computedColumnWidth = computed(() => {\n return computedItemsPerRow?.value\n ? new Array(computedItemsPerRow?.value).fill({\n // Instead of passing the actual screen sizes values, passing the same values per each screen size and recomputing it makes sure visually the change is smoother and not laggy\n small: itemColumnWidth.value,\n medium: itemColumnWidth.value,\n large: itemColumnWidth.value,\n })\n : [];\n });\n\n const onInput = value => {\n inputValue.value = value;\n emitValue(value);\n };\n\n const isRadioVariant = computed(() => props.variant === 'radio');\n\n provide(SELECTION_CARD_RADIO_INPUT_INJECTION_KEY, isRadioVariant);\n\n onMounted(() => {\n if (props.itemsPerRow) {\n Object.values(props.itemsPerRow).forEach(el => {\n if (el && (el < 2 || el > 6)) {\n throw new Error(\n 'itemsPerRow values must have a value between 2 and 6 items per row. Read the documentation for more information.'\n );\n }\n });\n }\n });\n</script>\n\n<script lang=\"ts\">\n /**\n * Group of bento-selection-cards.\n *\n * @example\n * import { BentoSelectionCardGroup } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoSelectionCardGroup },\n * template: `\n * <bento-selection-card-group\n * :items=\"[\n * {\n * title: 'Card 1',\n * value: 'card-1',\n * content: 'Slot content 1',\n * icon: RetailIcon,\n * },\n * {\n * title: 'Card 2',\n * value: 'card-2',\n * content: 'Slot content 2',\n * icon: LeafIcon,\n * },\n * ]\"\n * >\n * <template #icon=\"{ icon }\">\n * <component :is=\"icon\"/>\n * </template>\n * <template #content=\"{ content }\">\n * <div>{{ content }}</div>\n * </template>\n * </bento-selection-card-group>\n * `,\n * }\n */\n export default {\n model: { prop: 'modelValue', event: 'update:model-value' },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./selection-card-group.scss\" />\n"],"names":["BentoSelectionCardState","BentoSelectionCardState2","SELECTION_CARD_RADIO_INPUT_INJECTION_KEY","__default__$1","props","__props","emit","__emit","slots","useSlots","hasSlot","useHasSlot","inputId","generateUid","descriptionId","computedRadioInputModelValue","computed","computedCheckboxInputModelValue","conditionalClasses","isChecked","containerConditionalClasses","isTitleOnly","checkboxContainerConditionalClasses","checkboxContainerTextConditionalClasses","slotConditionalClasses","ariaLabel","useAriaLabel","isCheckboxGroup","isRadioInput","item","inject","ref","inputRef","slotRef","dynamicSlotRef","handleCardClick","event","newValue2","toggleInput","onChange","newValue","currentValue","newCheckedList","index","__default__","emitValue","useFormFieldEmits","name","conditionalItemsClasses","inputValue","watch","errorMessageId","shouldShowGroupError","containerRef","width","useElementSize","smallBreakpoint","BMediaQuerySMax","mediumBreakpoint","BMediaQueryMMax","currentBreakpoint","computedItemsPerRow","computedRows","rows","i","itemColumnWidth","computedColumnWidth","onInput","value","isRadioVariant","provide","onMounted","el"],"mappings":"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"}
1
+ {"version":3,"file":"selection-card-group.CQsS8-H9.js","sources":["../../../vue2/src/components/selection-card/selection-card.types.ts","../../../vue2/src/components/selection-card/selection-card.keys.ts","../../../vue2/src/components/selection-card/selection-card.vue","../../../vue2/src/components/selection-card/components/selection-card-group/selection-card-group.vue"],"sourcesContent":["import { type RadioInputValue } from '@/components/internal/radio-input';\nimport { type BentoCheckboxType } from '@/types/checkbox';\nimport { type VueNodeElement } from '@/types/elements';\n\nexport enum BentoSelectionCardState {\n DISABLED = 'disabled',\n READONLY = 'readonly',\n ERROR = 'error',\n}\n\nexport type BentoSelectionCardValue = string | number;\n\nexport type BentoSelectionCardModelValue = BentoCheckboxType | RadioInputValue;\n\nexport interface BentoSelectionCardItem {\n content?: string | object;\n description?: string;\n disabled?: boolean;\n dynamicContent?: string | object;\n fullyClickable?: boolean;\n hasError?: boolean;\n icon?: VueNodeElement;\n readonly?: boolean;\n subtitle?: string;\n title: string;\n value: BentoSelectionCardValue;\n}\n","export const SELECTION_CARD_RADIO_INPUT_INJECTION_KEY = Symbol('selection card radio input injection key');\n","<template>\n <div class=\"b-selection-card\" :class=\"conditionalClasses\" @click=\"handleCardClick\">\n <div class=\"b-selection-card__container\" :class=\"containerConditionalClasses\">\n <div class=\"b-selection-card__checkbox-container\" :class=\"checkboxContainerConditionalClasses\">\n <div class=\"b-selection-card__checkbox-container-text\" :class=\"checkboxContainerTextConditionalClasses\">\n <div v-if=\"hasSlot('icon')\" class=\"b-selection-card__icon\" role=\"presentation\" aria-hidden=\"true\">\n <slot name=\"icon\" />\n </div>\n <label :for=\"inputId\" class=\"b-selection-card__text\" @click.stop.prevent=\"handleCardClick\">\n <bento-typography\n v-if=\"subtitle\"\n class=\"b-selection-card__description\"\n el=\"span\"\n variant=\"caption\"\n >\n {{ subtitle }}\n </bento-typography>\n <bento-typography el=\"span\" variant=\"title\">{{ title }}</bento-typography>\n <bento-typography\n v-if=\"description\"\n id=\"descriptionId\"\n class=\"b-selection-card__description\"\n el=\"span\"\n variant=\"body\"\n >\n {{ description }}\n </bento-typography>\n </label>\n </div>\n <radio-input\n v-if=\"isRadioInput\"\n :id=\"inputId\"\n ref=\"inputRef\"\n :aria-label=\"ariaLabel\"\n :aria-describedby=\"description ? descriptionId : undefined\"\n :disabled=\"disabled\"\n :has-error=\"hasError\"\n :aria-readonly=\"readonly ?? undefined\"\n :value=\"value\"\n :readonly=\"readonly\"\n :model-value=\"computedRadioInputModelValue\"\n />\n <checkbox-input\n v-else\n :id=\"inputId\"\n ref=\"inputRef\"\n :aria-label=\"ariaLabel\"\n :aria-describedby=\"description ? descriptionId : undefined\"\n :disabled=\"disabled\"\n :has-error=\"hasError\"\n :aria-readonly=\"readonly ?? undefined\"\n :value=\"value\"\n :readonly=\"readonly\"\n :model-value=\"computedCheckboxInputModelValue\"\n />\n </div>\n <bento-typography\n v-if=\"hasSlot('content')\"\n ref=\"slotRef\"\n el=\"div\"\n class=\"b-selection-card__slot\"\n :class=\"slotConditionalClasses\"\n >\n <slot name=\"content\" />\n </bento-typography>\n <bento-typography\n v-if=\"hasSlot('dynamicContent') && isChecked\"\n ref=\"dynamicSlotRef\"\n el=\"div\"\n class=\"b-selection-card__slot\"\n :class=\"slotConditionalClasses\"\n >\n <slot name=\"dynamicContent\" />\n </bento-typography>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { BentoTypography } from '@/components/typography';\n import { CheckboxInput } from '../internal/checkbox-input';\n import { RadioInput, type RadioInputValue } from '../internal/radio-input';\n import { type BentoCheckboxType, type BentoMultiCheckboxType } from '@/types/checkbox';\n import { useAriaLabel } from '@/utils/ts/aria-label';\n import { generateUid } from '@/utils/ts/generate-uid';\n import { computed, type ComputedRef, inject, type PropType, type Ref, ref, useSlots } from 'vue';\n import { useHasSlot } from '@/composables';\n import type { BentoSelectionCardModelValue, BentoSelectionCardValue } from './selection-card.types';\n import { BentoSelectionCardState } from './selection-card.types';\n import { SELECTION_CARD_RADIO_INPUT_INJECTION_KEY } from './selection-card.keys';\n\n const props = defineProps({\n /**\n * The description of the selection card\n */\n description: {\n type: String,\n default: undefined,\n },\n\n /**\n * Disables the selection card\n */\n disabled: { type: Boolean, default: false },\n\n /**\n * Makes the entire selection card clickable. Clicking over interactive elements inside the card with this prop enabled will not be possible.\n */\n fullyClickable: { type: Boolean, default: false },\n\n /**\n * Shows the selection card in error state\n */\n hasError: { type: Boolean, default: false },\n\n /**\n * This property should not be used directly.\n * It will be used by v-model directive on selection card component.\n *\n * When handling a single input, use a string or a number.\n *\n * When handling multiple inputs, use an array of keys.\n * These keys exist as a set \"value\" prop for each input.\n */\n modelValue: {\n type: [Boolean, String, Array] as PropType<BentoSelectionCardModelValue>,\n default: null,\n },\n\n /**\n * Sets the selection card to readonly\n */\n readonly: { type: Boolean, default: false },\n\n /**\n * The subtitle of the selection card\n */\n subtitle: {\n type: String,\n default: undefined,\n },\n\n /**\n * The title of the selection card\n */\n title: {\n type: String,\n required: true,\n },\n\n /**\n * Indicates the value of the input that will be returned when it's checked.\n */\n value: {\n type: [String, Number] as PropType<BentoSelectionCardValue>,\n required: true,\n },\n });\n\n const emit = defineEmits<{\n /**\n * Emitted when the selection card is clicked. Enables Vue2 \"v-model\"\n */\n (e: 'input', value: BentoSelectionCardValue);\n /**\n * Emitted when the selection card is clicked. Enables Vue3 \"v-model\"\n */\n (e: 'update:model-value', value: BentoSelectionCardValue);\n }>();\n\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n\n const inputId = generateUid('selection-card-input-id');\n const descriptionId = generateUid('selection-card-description');\n\n const computedRadioInputModelValue: ComputedRef<RadioInputValue> = computed(\n () => props.modelValue as RadioInputValue\n );\n const computedCheckboxInputModelValue: ComputedRef<BentoCheckboxType> = computed(\n () => props.modelValue as BentoCheckboxType\n );\n\n const conditionalClasses = computed(() => ({\n 'b-selection-card--checked': isChecked.value,\n 'b-selection-card--fully-clickable': props.fullyClickable,\n }));\n\n const containerConditionalClasses = computed(() => ({\n [`b-selection-card--${BentoSelectionCardState.DISABLED}`]: props.disabled,\n [`b-selection-card--${BentoSelectionCardState.ERROR}`]: props.hasError,\n [`b-selection-card--${BentoSelectionCardState.READONLY}`]: props.readonly,\n 'b-selection-card--center-aligned': isTitleOnly.value,\n }));\n\n const checkboxContainerConditionalClasses = computed(() => ({\n 'b-selection-card__checkbox-container--center-aligned': isTitleOnly.value,\n }));\n\n const checkboxContainerTextConditionalClasses = computed(() => ({\n 'b-selection-card__checkbox-container-text--center-aligned': isTitleOnly.value,\n }));\n\n const slotConditionalClasses = computed(() => ({\n 'b-selection-card__slot--with-icon': hasSlot('icon'),\n }));\n\n const ariaLabel = useAriaLabel({\n ariaLabel: props.title,\n label: props.value as string,\n });\n\n const isCheckboxGroup = computed(() => Array.isArray(props.modelValue));\n\n const isChecked: ComputedRef<boolean> = computed(() => {\n if (isRadioInput.value) {\n return props.value === props.modelValue;\n }\n if (!isCheckboxGroup.value) {\n return props.modelValue as boolean;\n }\n\n return (props.modelValue as BentoMultiCheckboxType).some(item => item === props.value);\n });\n\n const isRadioInput: Ref<boolean> = inject(SELECTION_CARD_RADIO_INPUT_INJECTION_KEY, ref(false));\n\n const isTitleOnly = computed(() => !props.subtitle && !props.description);\n\n const inputRef = ref<InstanceType<typeof RadioInput> | InstanceType<typeof CheckboxInput>>(null);\n const slotRef = ref(null);\n const dynamicSlotRef = ref(null);\n\n // Handle click on the whole card area\n const handleCardClick = (event: Event) => {\n if (inputRef.value.$refs.inputRef === event.target) {\n const newValue = toggleInput();\n onChange(newValue);\n return;\n }\n\n // Do nothing if disabled or readonly\n if (props.disabled && props.readonly) {\n return;\n }\n\n // If it's not fully clickable prevent selecting the card if the click\n // originated in a slot\n if (!props.fullyClickable) {\n // Check if the click originated from the slot - in that case, do nothng\n if (slotRef.value && slotRef.value?.$el?.contains(event.target)) {\n return;\n }\n // Check if the click originated from the dynamic slot - in that case, do nothng\n if (dynamicSlotRef.value && dynamicSlotRef.value?.$el?.contains(event.target)) {\n return;\n }\n // Check if the click originated from the input - in that case do nothing, as the input will emit the event already\n if (inputRef.value && inputRef.value?.$el?.contains(event.target as Node)) {\n return;\n }\n }\n\n // If the click originated outside of these two areas, emit the change event\n const newValue = toggleInput();\n\n onChange(newValue);\n };\n\n const toggleInput = (): BentoSelectionCardModelValue => {\n const currentValue: boolean = (inputRef.value?.$refs.inputRef as HTMLInputElement).checked;\n\n if (isCheckboxGroup.value) {\n const newCheckedList = [...(props.modelValue as BentoMultiCheckboxType)];\n const index = newCheckedList.indexOf(props.value);\n\n if (index === -1) {\n newCheckedList.push(props.value);\n } else {\n newCheckedList.splice(index, 1);\n }\n return newCheckedList;\n }\n\n if (isRadioInput.value) {\n return props.value;\n }\n return currentValue;\n };\n\n const onChange = newValue => {\n if (!props.disabled && !props.readonly) {\n emit('update:model-value', newValue);\n emit('input', newValue);\n }\n };\n</script>\n\n<script lang=\"ts\">\n /**\n * Selection card component. If used standalone, only the checkbox variant can be used. If the checkbox variant is needed, please use the bento-selection-card-group component.\n *\n * @example\n * import { BentoSelectionCard } from '@adyen/bento-vue2';\n * import EmoticonHappyIcon from '@adyen/ui-assets-icons-16/vue/emoticon-happy';\n *\n * export default {\n * components: { BentoSelectionCard, EmoticonHappyIcon },\n * template: `\n * <bento-selection-card title=\"Card title\" :model-value.sync=\"yourModelValue\">\n * <template #icon>\n * <emoticon-happy-icon />\n * </template>\n * </bento-selection-card>\n * `\n * }\n */\n export default {\n name: 'bento-selection-card',\n };\n</script>\n<style lang=\"scss\" scoped src=\"./selection-card.scss\" />\n","<template>\n <controls-group\n ref=\"containerRef\"\n :aria-describedby=\"shouldShowGroupError ? errorMessageId : null\"\n :aria-required=\"required\"\n :label=\"label\"\n :hide-label=\"hideLabel\"\n :description=\"description\"\n :disabled=\"disabled\"\n :tooltip-text=\"tooltipText\"\n :readonly=\"readonly\"\n :required=\"required\"\n :optional=\"optional\"\n class=\"b-selection-card-group\"\n component-name=\"selection-card-group\"\n >\n <div\n v-if=\"!itemsPerRow || layout === 'vertical'\"\n class=\"b-selection-card-group__items\"\n :class=\"conditionalItemsClasses\"\n >\n <bento-selection-card\n v-for=\"item in items\"\n :key=\"`selection-card-${item.value}`\"\n class=\"b-selection-card-group__item\"\n v-bind=\"item\"\n :model-value=\"inputValue\"\n :readonly=\"readonly || item.readonly\"\n :has-error=\"shouldShowGroupError\"\n :disabled=\"disabled || item.disabled\"\n @update:model-value=\"onInput\"\n >\n <template v-if=\"hasSlot('icon') && item.icon\" #icon>\n <slot name=\"icon\" v-bind=\"item\"></slot>\n </template>\n <template v-if=\"hasSlot('content') && item.content\" #content>\n <slot name=\"content\" v-bind=\"item\"></slot>\n </template>\n <template v-if=\"hasSlot('dynamicContent') && item.dynamicContent\" #dynamicContent>\n <slot name=\"dynamicContent\" v-bind=\"item\"></slot>\n </template>\n </bento-selection-card>\n </div>\n <template v-else>\n <div :key=\"`selection-card-group-layout-breakpoint-${currentBreakpoint}`\">\n <grid-layout\n v-for=\"(row, rowIndex) in computedRows\"\n :key=\"`selection-card-group-row-${rowIndex}-cols-${computedItemsPerRow}`\"\n class=\"b-selection-card-group__items--wrap\"\n :column-width=\"computedColumnWidth\"\n >\n <template v-for=\"(item, columnIndex) in row\" #[`col-${Number(columnIndex)+1}`]>\n <bento-selection-card\n :key=\"`selection-card-${item.value}`\"\n class=\"b-selection-card-group__item b-selection-card-group__item--full-height\"\n v-bind=\"item\"\n :model-value=\"inputValue\"\n :readonly=\"readonly || item.readonly\"\n :has-error=\"shouldShowGroupError\"\n :disabled=\"disabled || item.disabled\"\n @update:model-value=\"onInput\"\n >\n <template v-if=\"hasSlot('icon') && item.icon\" #icon>\n <slot name=\"icon\" v-bind=\"item\"></slot>\n </template>\n <template v-if=\"hasSlot('content') && item.content\" #content>\n <slot name=\"content\" v-bind=\"item\"></slot>\n </template>\n <template v-if=\"hasSlot('dynamicContent') && item.dynamicContent\" #dynamicContent>\n <slot name=\"dynamicContent\" v-bind=\"item\"></slot>\n </template>\n </bento-selection-card>\n </template>\n </grid-layout>\n </div>\n </template>\n <error-message\n v-if=\"shouldShowGroupError\"\n :id=\"errorMessageId\"\n :error-message=\"errorMessage\"\n class=\"b-selection-card-group__error-message\"\n />\n </controls-group>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, onMounted, provide, ref, useSlots, watch } from 'vue';\n import { useElementSize } from '@vueuse/core';\n import { BMediaQueryMMax, BMediaQuerySMax } from '@adyen/bento-design-tokens/dist/js/bento/es6';\n import { type BentoSelectionCardGroupEmits, type BentoSelectionCardGroupProps } from './selection-card-group.types';\n import BentoSelectionCard from '../../selection-card.vue';\n import { ControlsGroup, ErrorMessage, GridLayout } from '../../../internal';\n import { SELECTION_CARD_RADIO_INPUT_INJECTION_KEY } from '../../selection-card.keys';\n import { generateUid } from '@/utils/ts/generate-uid';\n import { useFormFieldEmits } from '@/utils/ts/form-field/form-field';\n\n const props = withDefaults(defineProps<BentoSelectionCardGroupProps>(), {\n description: null,\n disabled: false,\n errorMessage: null,\n formId: null,\n hideLabel: null,\n label: null,\n layout: 'vertical',\n itemsPerRow: undefined,\n modelValue: null,\n optional: false,\n required: false,\n tooltipText: null,\n readonly: false,\n variant: 'checkbox',\n });\n\n const emit = defineEmits<BentoSelectionCardGroupEmits>();\n\n const { emitValue } = useFormFieldEmits(emit);\n\n const slots = useSlots();\n // Slots logic\n // Temporary, use-has-slots composable doesn't currently work for vue3 named scoped slots\n // We do the same in bento-checkbox-group\n const hasSlot = name => !!slots[name];\n\n const conditionalItemsClasses = computed(() => ({\n 'b-selection-card-group__items--horizontal': props.layout === 'horizontal',\n }));\n\n const inputValue = ref(props.modelValue);\n watch(\n () => props.modelValue,\n () => {\n inputValue.value = props.modelValue;\n }\n );\n\n // Error message logic\n const errorMessageId = generateUid('error');\n const shouldShowGroupError = computed(() => !props.disabled && !props.readonly && !!props.errorMessage);\n\n // itemsPerRow logic\n const containerRef = ref<HTMLElement | null>(null);\n const { width } = useElementSize(containerRef);\n\n const smallBreakpoint = computed(() => BMediaQuerySMax.split('px')[0]);\n const mediumBreakpoint = computed(() => BMediaQueryMMax.split('px')[0]);\n\n const currentBreakpoint = computed(() => {\n if (width.value < smallBreakpoint.value) {\n return 'small';\n }\n if (width.value >= smallBreakpoint.value && width.value < mediumBreakpoint.value) {\n return 'medium';\n }\n return 'large';\n });\n\n const computedItemsPerRow = computed(() => {\n return (props.itemsPerRow?.[currentBreakpoint?.value] as number) || props.items.length;\n });\n\n const computedRows = computed(() => {\n if (!props.itemsPerRow) {\n return [];\n }\n const rows = [];\n for (let i = 0; i < props.items.length; i += computedItemsPerRow?.value) {\n rows.push(props.items.slice(i, i + computedItemsPerRow?.value));\n }\n return rows;\n });\n\n // We need to compute the column width on 12 because we're using a 12-column system for out grid-layout logic\n const itemColumnWidth = computed(() => 12 / computedItemsPerRow?.value);\n\n /**\n * Filling the columnWidth array with the same parameters per item to pass\n * to the `grid-layout` layout so the each card can have\n * the same width according to the screen size.\n */\n const computedColumnWidth = computed(() => {\n return computedItemsPerRow?.value\n ? new Array(computedItemsPerRow?.value).fill({\n // Instead of passing the actual screen sizes values, passing the same values per each screen size and recomputing it makes sure visually the change is smoother and not laggy\n small: itemColumnWidth.value,\n medium: itemColumnWidth.value,\n large: itemColumnWidth.value,\n })\n : [];\n });\n\n const onInput = value => {\n inputValue.value = value;\n emitValue(value);\n };\n\n const isRadioVariant = computed(() => props.variant === 'radio');\n\n provide(SELECTION_CARD_RADIO_INPUT_INJECTION_KEY, isRadioVariant);\n\n onMounted(() => {\n if (props.itemsPerRow) {\n Object.values(props.itemsPerRow).forEach(value => {\n const numericValue = Number(value);\n if (!Number.isInteger(numericValue) || numericValue < 1 || numericValue > 6) {\n throw new Error(\n 'itemsPerRow values must have a value between 1 and 6 items per row. Read the documentation for more information.'\n );\n }\n });\n }\n });\n</script>\n\n<script lang=\"ts\">\n /**\n * Group of bento-selection-cards.\n *\n * @example\n * import { BentoSelectionCardGroup } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoSelectionCardGroup },\n * template: `\n * <bento-selection-card-group\n * :items=\"[\n * {\n * title: 'Card 1',\n * value: 'card-1',\n * content: 'Slot content 1',\n * icon: RetailIcon,\n * },\n * {\n * title: 'Card 2',\n * value: 'card-2',\n * content: 'Slot content 2',\n * icon: LeafIcon,\n * },\n * ]\"\n * >\n * <template #icon=\"{ icon }\">\n * <component :is=\"icon\"/>\n * </template>\n * <template #content=\"{ content }\">\n * <div>{{ content }}</div>\n * </template>\n * </bento-selection-card-group>\n * `,\n * }\n */\n export default {\n model: { prop: 'modelValue', event: 'update:model-value' },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./selection-card-group.scss\" />\n"],"names":["BentoSelectionCardState","BentoSelectionCardState2","SELECTION_CARD_RADIO_INPUT_INJECTION_KEY","__default__$1","props","__props","emit","__emit","slots","useSlots","hasSlot","useHasSlot","inputId","generateUid","descriptionId","computedRadioInputModelValue","computed","computedCheckboxInputModelValue","conditionalClasses","isChecked","containerConditionalClasses","isTitleOnly","checkboxContainerConditionalClasses","checkboxContainerTextConditionalClasses","slotConditionalClasses","ariaLabel","useAriaLabel","isCheckboxGroup","isRadioInput","item","inject","ref","inputRef","slotRef","dynamicSlotRef","handleCardClick","event","newValue2","toggleInput","onChange","newValue","currentValue","newCheckedList","index","__default__","emitValue","useFormFieldEmits","name","conditionalItemsClasses","inputValue","watch","errorMessageId","shouldShowGroupError","containerRef","width","useElementSize","smallBreakpoint","BMediaQuerySMax","mediumBreakpoint","BMediaQueryMMax","currentBreakpoint","computedItemsPerRow","computedRows","rows","i","itemColumnWidth","computedColumnWidth","onInput","value","isRadioVariant","provide","onMounted","numericValue"],"mappings":"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"}