@adyen/bento-vue2 1.89.2 → 1.90.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 (255) hide show
  1. package/dist/@types/components.d.ts +2 -0
  2. package/dist/@types/index.d.ts +198 -80
  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/card.css +1 -1
  13. package/dist/assets/data-grid.css +1 -1
  14. package/dist/assets/date-range-picker.css +1 -1
  15. package/dist/assets/dialog-page.css +1 -1
  16. package/dist/assets/file-uploader.css +1 -1
  17. package/dist/assets/input-time.css +1 -0
  18. package/dist/assets/inspector.css +1 -1
  19. package/dist/assets/modal-fullscreen.css +1 -1
  20. package/dist/assets/secondary-nav.css +1 -1
  21. package/dist/assets/sidepanel.css +1 -1
  22. package/dist/button.js +3 -3
  23. package/dist/card.js +1 -1
  24. package/dist/checkbox.js +2 -2
  25. package/dist/chip.js +1 -1
  26. package/dist/chunks/accordion-item.D0WVCLec.js +145 -0
  27. package/dist/chunks/{accordion-item.BZDSJamR.js.map → accordion-item.D0WVCLec.js.map} +1 -1
  28. package/dist/chunks/action-bar.B63qIiiH.js +334 -0
  29. package/dist/chunks/{action-bar.CYGUYI0V.js.map → action-bar.B63qIiiH.js.map} +1 -1
  30. package/dist/chunks/{ai-button.CR_ePQRR.js → ai-button.7L9bANlk.js} +2 -2
  31. package/dist/chunks/{ai-button.CR_ePQRR.js.map → ai-button.7L9bANlk.js.map} +1 -1
  32. package/dist/chunks/ai-tag.CCJCOdXu.js +110 -0
  33. package/dist/chunks/{ai-tag.Cjf38mjR.js.map → ai-tag.CCJCOdXu.js.map} +1 -1
  34. package/dist/chunks/alert.CXRb-Smf.js +160 -0
  35. package/dist/chunks/{alert.QVQ6Zjbm.js.map → alert.CXRb-Smf.js.map} +1 -1
  36. package/dist/chunks/{anchor-scroller.CjJ26PJS.js → anchor-scroller.DWaykZQj.js} +66 -39
  37. package/dist/chunks/{anchor-scroller.CjJ26PJS.js.map → anchor-scroller.DWaykZQj.js.map} +1 -1
  38. package/dist/chunks/{base-modal.DmWkavtf.js → base-modal.DpmeDmq-.js} +103 -66
  39. package/dist/chunks/{base-modal.DmWkavtf.js.map → base-modal.DpmeDmq-.js.map} +1 -1
  40. package/dist/chunks/{button-actions-with-menu.Bi_HXopk.js → button-actions-with-menu.ChTUOsZl.js} +2 -2
  41. package/dist/chunks/{button-actions-with-menu.Bi_HXopk.js.map → button-actions-with-menu.ChTUOsZl.js.map} +1 -1
  42. package/dist/chunks/{button-actions.BLk114As.js → button-actions.BmU1DngD.js} +221 -147
  43. package/dist/chunks/{button-actions.BLk114As.js.map → button-actions.BmU1DngD.js.map} +1 -1
  44. package/dist/chunks/{button.DxhJNOtr.js → button.C9b2AC9w.js} +2 -2
  45. package/dist/chunks/{button.DxhJNOtr.js.map → button.C9b2AC9w.js.map} +1 -1
  46. package/dist/chunks/{calendar.CXKhBF2f.js → calendar.uvIGF_jU.js} +283 -209
  47. package/dist/chunks/{calendar.CXKhBF2f.js.map → calendar.uvIGF_jU.js.map} +1 -1
  48. package/dist/chunks/card.WWUfBkqf.js +165 -0
  49. package/dist/chunks/{card.GjhsXOT0.js.map → card.WWUfBkqf.js.map} +1 -1
  50. package/dist/chunks/{checkbox-group.B2BjU3ZN.js → checkbox-group.CI0xDnql.js} +4 -4
  51. package/dist/chunks/{checkbox-group.B2BjU3ZN.js.map → checkbox-group.CI0xDnql.js.map} +1 -1
  52. package/dist/chunks/{checkbox.CIv8WgGp.js → checkbox.TsWA6O3Z.js} +93 -56
  53. package/dist/chunks/{checkbox.CIv8WgGp.js.map → checkbox.TsWA6O3Z.js.map} +1 -1
  54. package/dist/chunks/chip.BFY_-VCz.js +84 -0
  55. package/dist/chunks/{chip.DTpENaGC.js.map → chip.BFY_-VCz.js.map} +1 -1
  56. package/dist/chunks/{code-snippet.YIm2oO_o.js → code-snippet.4DX9iUV8.js} +133 -76
  57. package/dist/chunks/{code-snippet.YIm2oO_o.js.map → code-snippet.4DX9iUV8.js.map} +1 -1
  58. package/dist/chunks/{controls-group.CqotnNEF.js → controls-group.D_KE99mg.js} +2 -2
  59. package/dist/chunks/{controls-group.CqotnNEF.js.map → controls-group.D_KE99mg.js.map} +1 -1
  60. package/dist/chunks/copy.qqGYFbKJ.js +133 -0
  61. package/dist/chunks/{copy.BVGQcf22.js.map → copy.qqGYFbKJ.js.map} +1 -1
  62. package/dist/chunks/{country.D20NCLLG.js → country.BEwW8TQo.js} +3 -3
  63. package/dist/chunks/{country.D20NCLLG.js.map → country.BEwW8TQo.js.map} +1 -1
  64. package/dist/chunks/country.types.jjXwaoMl.js +2537 -0
  65. package/dist/chunks/country.types.jjXwaoMl.js.map +1 -0
  66. package/dist/chunks/{dashboard-section.BubZyu8i.js → dashboard-section.TWlLdQHG.js} +3 -3
  67. package/dist/chunks/{dashboard-section.BubZyu8i.js.map → dashboard-section.TWlLdQHG.js.map} +1 -1
  68. package/dist/chunks/{dashed-underline.pjYTS0m1.js → dashed-underline.CpDuQ3Fo.js} +3 -3
  69. package/dist/chunks/{dashed-underline.pjYTS0m1.js.map → dashed-underline.CpDuQ3Fo.js.map} +1 -1
  70. package/dist/chunks/{data-grid-template.D8RhngPj.js → data-grid-template.DZaE-kOS.js} +4 -4
  71. package/dist/chunks/{data-grid-template.D8RhngPj.js.map → data-grid-template.DZaE-kOS.js.map} +1 -1
  72. package/dist/chunks/data-grid.x6cEW0az.js +4069 -0
  73. package/dist/chunks/data-grid.x6cEW0az.js.map +1 -0
  74. package/dist/chunks/date-picker.Dln8ocL4.js +222 -0
  75. package/dist/chunks/{date-picker.CnazYcSX.js.map → date-picker.Dln8ocL4.js.map} +1 -1
  76. package/dist/chunks/date-range-picker.DPGy2h-9.js +1068 -0
  77. package/dist/chunks/date-range-picker.DPGy2h-9.js.map +1 -0
  78. package/dist/chunks/dialog-page.EdejG53a.js +143 -0
  79. package/dist/chunks/{dialog-page.oyG153fC.js.map → dialog-page.EdejG53a.js.map} +1 -1
  80. package/dist/chunks/{dropdown-default-textbox.Dvzg0StF.js → dropdown-default-textbox.CjhLIxVq.js} +63 -36
  81. package/dist/chunks/{dropdown-default-textbox.Dvzg0StF.js.map → dropdown-default-textbox.CjhLIxVq.js.map} +1 -1
  82. package/dist/chunks/{dropdown-tag.BRB-emd1.js → dropdown-tag.t3FlJUSy.js} +5 -5
  83. package/dist/chunks/{dropdown-tag.BRB-emd1.js.map → dropdown-tag.t3FlJUSy.js.map} +1 -1
  84. package/dist/chunks/{dropdown.Ct7uhPr6.js → dropdown.CvNI2V33.js} +329 -235
  85. package/dist/chunks/{dropdown.Ct7uhPr6.js.map → dropdown.CvNI2V33.js.map} +1 -1
  86. package/dist/chunks/{empty-state.D_Ac-XXH.js → empty-state.DMV23IZy.js} +2 -2
  87. package/dist/chunks/{empty-state.D_Ac-XXH.js.map → empty-state.DMV23IZy.js.map} +1 -1
  88. package/dist/chunks/error-message.BUNKRa_w.js +160 -0
  89. package/dist/chunks/{error-message.RxdStT3S.js.map → error-message.BUNKRa_w.js.map} +1 -1
  90. package/dist/chunks/{file-uploader.D5Rjsx4k.js → file-uploader.Cig5gDXT.js} +749 -468
  91. package/dist/chunks/{file-uploader.D5Rjsx4k.js.map → file-uploader.Cig5gDXT.js.map} +1 -1
  92. package/dist/chunks/{filter-bar.zD_ctViU.js → filter-bar.x445KK3y.js} +1301 -761
  93. package/dist/chunks/{filter-bar.zD_ctViU.js.map → filter-bar.x445KK3y.js.map} +1 -1
  94. package/dist/chunks/fixed-scroller.DR2E_No4.js +148 -0
  95. package/dist/chunks/{fixed-scroller.MerESbd_.js.map → fixed-scroller.DR2E_No4.js.map} +1 -1
  96. package/dist/chunks/{footer-actions.CiPj7hZG.js → footer-actions.CIkul1OD.js} +3 -3
  97. package/dist/chunks/{footer-actions.CiPj7hZG.js.map → footer-actions.CIkul1OD.js.map} +1 -1
  98. package/dist/chunks/{form-layout-title.Bw7VgOO5.js → form-layout-title.DR5M7GP3.js} +77 -48
  99. package/dist/chunks/{form-layout-title.Bw7VgOO5.js.map → form-layout-title.DR5M7GP3.js.map} +1 -1
  100. package/dist/chunks/{header-meta.Dq6TlNPw.js → header-meta.BC5fdpD1.js} +127 -73
  101. package/dist/chunks/{header-meta.Dq6TlNPw.js.map → header-meta.BC5fdpD1.js.map} +1 -1
  102. package/dist/chunks/{header-with-views.DaEhkSS8.js → header-with-views.-cvdi9-L.js} +1120 -679
  103. package/dist/chunks/{header-with-views.DaEhkSS8.js.map → header-with-views.-cvdi9-L.js.map} +1 -1
  104. package/dist/chunks/{header.DkC-KKWa.js → header.DtmZjxiU.js} +3 -3
  105. package/dist/chunks/{header.DkC-KKWa.js.map → header.DtmZjxiU.js.map} +1 -1
  106. package/dist/chunks/{info-icon.BF8KxU-k.js → info-icon.DCR42Kvm.js} +2 -2
  107. package/dist/chunks/{info-icon.BF8KxU-k.js.map → info-icon.DCR42Kvm.js.map} +1 -1
  108. package/dist/chunks/input-field-password.Bdlw4dzr.js +381 -0
  109. package/dist/chunks/{input-field-password.BKT1mYUw.js.map → input-field-password.Bdlw4dzr.js.map} +1 -1
  110. package/dist/chunks/{input-field-phone-number.BjRKjQOQ.js → input-field-phone-number.DPuWxBBz.js} +98 -71
  111. package/dist/chunks/{input-field-phone-number.BjRKjQOQ.js.map → input-field-phone-number.DPuWxBBz.js.map} +1 -1
  112. package/dist/chunks/input-field.DH25CU_G.js +207 -0
  113. package/dist/chunks/{input-field.m1PMwa4C.js.map → input-field.DH25CU_G.js.map} +1 -1
  114. package/dist/chunks/input-time.6eJ4-QdU.js +92 -0
  115. package/dist/chunks/input-time.6eJ4-QdU.js.map +1 -0
  116. package/dist/chunks/inspector.BzBPlz-5.js +172 -0
  117. package/dist/chunks/{inspector.Bnm0hl_D.js.map → inspector.BzBPlz-5.js.map} +1 -1
  118. package/dist/chunks/{link.MhoM3zQj.js → link.DB5g6d48.js} +56 -29
  119. package/dist/chunks/{link.MhoM3zQj.js.map → link.DB5g6d48.js.map} +1 -1
  120. package/dist/chunks/{list-item.BnzU1LIu.js → list-item.DqTHh8-Z.js} +2 -2
  121. package/dist/chunks/{list-item.BnzU1LIu.js.map → list-item.DqTHh8-Z.js.map} +1 -1
  122. package/dist/chunks/{listbox-option-tag.BhPVuAjJ.js → listbox-option-tag.CvbE-EuG.js} +2 -2
  123. package/dist/chunks/{listbox-option-tag.BhPVuAjJ.js.map → listbox-option-tag.CvbE-EuG.js.map} +1 -1
  124. package/dist/chunks/{modal-fullscreen.CXOq6_Cv.js → modal-fullscreen.CaxuXW-H.js} +63 -36
  125. package/dist/chunks/{modal-fullscreen.CXOq6_Cv.js.map → modal-fullscreen.CaxuXW-H.js.map} +1 -1
  126. package/dist/chunks/{modal.o0KddMiG.js → modal.Brif0vAy.js} +63 -36
  127. package/dist/chunks/{modal.o0KddMiG.js.map → modal.Brif0vAy.js.map} +1 -1
  128. package/dist/chunks/{pagination.ZISqB4M_.js → pagination.BmrU_sn_.js} +221 -99
  129. package/dist/chunks/{pagination.ZISqB4M_.js.map → pagination.BmrU_sn_.js.map} +1 -1
  130. package/dist/chunks/promo-banner.Dc_kK1x9.js +91 -0
  131. package/dist/chunks/{promo-banner.Db2kh2qK.js.map → promo-banner.Dc_kK1x9.js.map} +1 -1
  132. package/dist/chunks/{radio-group.DnMy7brs.js → radio-group.5oS-AeYN.js} +4 -4
  133. package/dist/chunks/{radio-group.DnMy7brs.js.map → radio-group.5oS-AeYN.js.map} +1 -1
  134. package/dist/chunks/{rich-text-editor.Cbv1DxXn.js → rich-text-editor.DSGTe8Zt.js} +1781 -1731
  135. package/dist/chunks/{rich-text-editor.Cbv1DxXn.js.map → rich-text-editor.DSGTe8Zt.js.map} +1 -1
  136. package/dist/chunks/search-bar.CNfoeLLt.js +126 -0
  137. package/dist/chunks/{search-bar.DPjYDhja.js.map → search-bar.CNfoeLLt.js.map} +1 -1
  138. package/dist/chunks/secondary-nav.IF5CgeIP.js +226 -0
  139. package/dist/chunks/secondary-nav.IF5CgeIP.js.map +1 -0
  140. package/dist/chunks/{segmented-control.BqIiX9hv.js → segmented-control.DDtjX-V5.js} +2 -2
  141. package/dist/chunks/{segmented-control.BqIiX9hv.js.map → segmented-control.DDtjX-V5.js.map} +1 -1
  142. package/dist/chunks/{selection-card-group.IPiouuot.js → selection-card-group.DZjFeQKR.js} +10 -10
  143. package/dist/chunks/{selection-card-group.IPiouuot.js.map → selection-card-group.DZjFeQKR.js.map} +1 -1
  144. package/dist/chunks/{sidepanel.BGMjjB3F.js → sidepanel.DZDXuyzg.js} +66 -39
  145. package/dist/chunks/{sidepanel.BGMjjB3F.js.map → sidepanel.DZDXuyzg.js.map} +1 -1
  146. package/dist/chunks/{step.QFER3tSj.js → step.TDm_ts1S.js} +92 -63
  147. package/dist/chunks/{step.QFER3tSj.js.map → step.TDm_ts1S.js.map} +1 -1
  148. package/dist/chunks/{structured-list-item.BDJKRC_8.js → structured-list-item.BBBtie1s.js} +58 -31
  149. package/dist/chunks/{structured-list-item.BDJKRC_8.js.map → structured-list-item.BBBtie1s.js.map} +1 -1
  150. package/dist/chunks/{summary-grid.types.CIkArZf5.js → summary-grid.types.CrPNQbX0.js} +5 -5
  151. package/dist/chunks/{summary-grid.types.CIkArZf5.js.map → summary-grid.types.CrPNQbX0.js.map} +1 -1
  152. package/dist/chunks/{tab.CaXF0dho.js → tab.CNIZyfZt.js} +2 -2
  153. package/dist/chunks/{tab.CaXF0dho.js.map → tab.CNIZyfZt.js.map} +1 -1
  154. package/dist/chunks/{tag.CocLKztJ.js → tag.D2xagTJv.js} +2 -2
  155. package/dist/chunks/{tag.CocLKztJ.js.map → tag.D2xagTJv.js.map} +1 -1
  156. package/dist/chunks/textarea.Bi53QF5Q.js +218 -0
  157. package/dist/chunks/{textarea.D4X6Ss9q.js.map → textarea.Bi53QF5Q.js.map} +1 -1
  158. package/dist/chunks/timeline-item.C6Bi0eam.js +322 -0
  159. package/dist/chunks/{timeline-item.C8BxWdy1.js.map → timeline-item.C6Bi0eam.js.map} +1 -1
  160. package/dist/chunks/{toast.BRI3G7TL.js → toast.d8vg71CB.js} +81 -54
  161. package/dist/chunks/{toast.BRI3G7TL.js.map → toast.d8vg71CB.js.map} +1 -1
  162. package/dist/chunks/{tooltip.CbsNGnhw.js → tooltip.BxtnF3is.js} +38 -36
  163. package/dist/chunks/tooltip.BxtnF3is.js.map +1 -0
  164. package/dist/chunks/{tutorial.BzV6bHQJ.js → tutorial.BCiZMLJE.js} +190 -103
  165. package/dist/chunks/{tutorial.BzV6bHQJ.js.map → tutorial.BCiZMLJE.js.map} +1 -1
  166. package/dist/chunks/{use-cached-selected-values.DqX2qsMC.js → use-cached-selected-values.Bn3Y8Iuq.js} +490 -359
  167. package/dist/chunks/{use-cached-selected-values.DqX2qsMC.js.map → use-cached-selected-values.Bn3Y8Iuq.js.map} +1 -1
  168. package/dist/chunks/{use-country-items.CI8C7MLU.js → use-country-items.B4j8pAvW.js} +3 -3
  169. package/dist/chunks/{use-country-items.CI8C7MLU.js.map → use-country-items.B4j8pAvW.js.map} +1 -1
  170. package/dist/chunks/use-country-phon-code.ByqnuIni.js +6386 -0
  171. package/dist/chunks/use-country-phon-code.ByqnuIni.js.map +1 -0
  172. package/dist/chunks/{use-date-input-formatter.BYaTO3vz.js → use-date-input-formatter.DRMt9yR2.js} +2 -2
  173. package/dist/chunks/{use-date-input-formatter.BYaTO3vz.js.map → use-date-input-formatter.DRMt9yR2.js.map} +1 -1
  174. package/dist/code-snippet.js +1 -1
  175. package/dist/country.js +3 -3
  176. package/dist/dashboard-template.js +1 -1
  177. package/dist/dashed-underline.js +1 -1
  178. package/dist/data-grid-template.js +1 -1
  179. package/dist/data-grid.js +1 -1
  180. package/dist/date-picker.js +2 -2
  181. package/dist/date-range-picker.js +2 -2
  182. package/dist/draggable-handle.js +160 -73
  183. package/dist/draggable-handle.js.map +1 -1
  184. package/dist/dropdown.js +4 -4
  185. package/dist/empty-state.js +1 -1
  186. package/dist/file-uploader.js +1 -1
  187. package/dist/filter-bar.js +1 -1
  188. package/dist/form-layout.js +1 -1
  189. package/dist/header-with-views.js +1 -1
  190. package/dist/header.js +1 -1
  191. package/dist/index.js +215 -213
  192. package/dist/index.js.map +1 -1
  193. package/dist/info-icon.js +1 -1
  194. package/dist/input-field-password.js +1 -1
  195. package/dist/input-field-phone-number.js +1 -1
  196. package/dist/input-field.js +1 -1
  197. package/dist/input-time.js +5 -0
  198. package/dist/input-time.js.map +1 -0
  199. package/dist/inspector.js +1 -1
  200. package/dist/internal.js +12 -12
  201. package/dist/link.js +1 -1
  202. package/dist/list.js +1 -1
  203. package/dist/menu.js +1 -1
  204. package/dist/modal-fullscreen.js +1 -1
  205. package/dist/modal.js +2 -2
  206. package/dist/pagination.js +1 -1
  207. package/dist/popover.js +1 -1
  208. package/dist/promo-banner.js +1 -1
  209. package/dist/radio-group.js +1 -1
  210. package/dist/rich-text-editor.js +1 -1
  211. package/dist/search-bar.js +2 -2
  212. package/dist/secondary-nav.js +1 -1
  213. package/dist/segmented-control.js +1 -1
  214. package/dist/selection-card.js +1 -1
  215. package/dist/sidepanel.js +1 -1
  216. package/dist/stepper.js +1 -1
  217. package/dist/structured-list.js +1 -1
  218. package/dist/summary-grid.js +1 -1
  219. package/dist/tabs.js +1 -1
  220. package/dist/tag.js +1 -1
  221. package/dist/textarea.js +1 -1
  222. package/dist/timeline.js +1 -1
  223. package/dist/toast.js +1 -1
  224. package/dist/tutorial.js +1 -1
  225. package/dist/web-types.json +198 -1
  226. package/package.json +9 -9
  227. package/dist/chunks/accordion-item.BZDSJamR.js +0 -108
  228. package/dist/chunks/action-bar.CYGUYI0V.js +0 -207
  229. package/dist/chunks/ai-tag.Cjf38mjR.js +0 -73
  230. package/dist/chunks/alert.QVQ6Zjbm.js +0 -93
  231. package/dist/chunks/card.GjhsXOT0.js +0 -128
  232. package/dist/chunks/chip.DTpENaGC.js +0 -57
  233. package/dist/chunks/copy.BVGQcf22.js +0 -86
  234. package/dist/chunks/country.types.DxKjyd0S.js +0 -20
  235. package/dist/chunks/country.types.DxKjyd0S.js.map +0 -1
  236. package/dist/chunks/data-grid.DJG8Ty0A.js +0 -3194
  237. package/dist/chunks/data-grid.DJG8Ty0A.js.map +0 -1
  238. package/dist/chunks/date-picker.CnazYcSX.js +0 -155
  239. package/dist/chunks/date-range-picker.Bf9pRNL7.js +0 -811
  240. package/dist/chunks/date-range-picker.Bf9pRNL7.js.map +0 -1
  241. package/dist/chunks/dialog-page.oyG153fC.js +0 -116
  242. package/dist/chunks/error-message.RxdStT3S.js +0 -106
  243. package/dist/chunks/fixed-scroller.MerESbd_.js +0 -111
  244. package/dist/chunks/input-field-password.BKT1mYUw.js +0 -234
  245. package/dist/chunks/input-field.m1PMwa4C.js +0 -170
  246. package/dist/chunks/inspector.Bnm0hl_D.js +0 -105
  247. package/dist/chunks/promo-banner.Db2kh2qK.js +0 -64
  248. package/dist/chunks/search-bar.DPjYDhja.js +0 -89
  249. package/dist/chunks/secondary-nav.CwJjkJkj.js +0 -112
  250. package/dist/chunks/secondary-nav.CwJjkJkj.js.map +0 -1
  251. package/dist/chunks/textarea.D4X6Ss9q.js +0 -169
  252. package/dist/chunks/timeline-item.C8BxWdy1.js +0 -238
  253. package/dist/chunks/tooltip.CbsNGnhw.js.map +0 -1
  254. package/dist/chunks/use-country-phon-code.C6orQNnM.js +0 -291
  255. package/dist/chunks/use-country-phon-code.C6orQNnM.js.map +0 -1
@@ -0,0 +1,334 @@
1
+ import { defineComponent as D, computed as s, ref as c, toRefs as G, watch as w, provide as j, nextTick as b } from "vue";
2
+ import { B as J } from "./button.C9b2AC9w.js";
3
+ import { B as K } from "./typography.C8lPlsbD.js";
4
+ import { B as q } from "./loading-indicator.PxbRzshH.js";
5
+ import { B as Q } from "./button-actions-with-menu.ChTUOsZl.js";
6
+ import { C as X } from "./cross.CC_B-vG-.js";
7
+ import { C as Y } from "./checkmark-circle-fill.BttTCjrM.js";
8
+ import { C as Z } from "./cross-circle-fill.DTDtgLMf.js";
9
+ import { u as H } from "./index.B6WW_F-J.js";
10
+ import { u as ee } from "./index.CwzYJHw2.js";
11
+ import { P as ne, B as te } from "./button-actions.BmU1DngD.js";
12
+ import { n as ae } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
13
+ import "../assets/action-bar.css";
14
+ const se = {
15
+ "de-DE": {
16
+ actionBar: "Aktionsleiste",
17
+ applying: "Anwenden...",
18
+ cancel: "Abbrechen",
19
+ close: "Schließen",
20
+ retry: "Wiederholen",
21
+ save: "Speichern",
22
+ selected: "ausgewählt",
23
+ somethingWentWrong: "Etwas ist schief gelaufen",
24
+ success: "Erfolg!",
25
+ undo: "Rückgängig machen",
26
+ unsavedChanges: "Ungespeicherte Änderungen | ungespeicherte Änderung | ungespeicherte Änderungen"
27
+ },
28
+ "en-GB": {
29
+ actionBar: "Action bar",
30
+ applying: "Applying...",
31
+ cancel: "Cancel",
32
+ close: "Close",
33
+ retry: "Retry",
34
+ save: "Save",
35
+ selected: "selected",
36
+ somethingWentWrong: "Something went wrong",
37
+ success: "Success!",
38
+ undo: "Undo",
39
+ unsavedChanges: "Unsaved changes | unsaved change | unsaved changes"
40
+ },
41
+ "en-US": {
42
+ actionBar: "Action bar",
43
+ applying: "Applying...",
44
+ cancel: "Cancel",
45
+ close: "Close",
46
+ retry: "Retry",
47
+ save: "Save",
48
+ selected: "selected",
49
+ somethingWentWrong: "Something went wrong",
50
+ success: "Success!",
51
+ undo: "Undo",
52
+ unsavedChanges: "Unsaved changes | unsaved change | unsaved changes"
53
+ },
54
+ "es-ES": {
55
+ actionBar: "Barra de acción",
56
+ applying: "Aplicando...",
57
+ cancel: "Cancelar",
58
+ close: "Cerrar",
59
+ retry: "Reintentar",
60
+ save: "Guardar",
61
+ selected: "seleccionado",
62
+ somethingWentWrong: "Algo salió mal",
63
+ success: "¡Éxito!",
64
+ undo: "Deshacer",
65
+ unsavedChanges: "Cambios no guardados | cambio no guardado | cambios no guardados"
66
+ },
67
+ "es-MX": {
68
+ actionBar: "Barra de acción",
69
+ applying: "Aplicando...",
70
+ cancel: "Cancelar",
71
+ close: "Cerrar",
72
+ retry: "Reintentar",
73
+ save: "Guardar",
74
+ selected: "seleccionado",
75
+ somethingWentWrong: "Algo salió mal",
76
+ success: "¡Éxito!",
77
+ undo: "Deshacer",
78
+ unsavedChanges: "Cambios no guardados | cambio no guardado | cambios no guardados"
79
+ },
80
+ "fr-FR": {
81
+ actionBar: "Barre d'action",
82
+ applying: "Application…",
83
+ cancel: "Annuler",
84
+ close: "Fermer",
85
+ retry: "Réessayer",
86
+ save: "Enregistrer",
87
+ selected: "sélectionné(s)",
88
+ somethingWentWrong: "Une erreur s'est produite",
89
+ success: "Succès !",
90
+ undo: "Annuler",
91
+ unsavedChanges: "Modifications non enregistrées | modification non enregistrée | modifications non enregistrées"
92
+ },
93
+ "it-IT": {
94
+ actionBar: "Barra delle azioni",
95
+ applying: "Applicazione in corso..",
96
+ cancel: "Annulla",
97
+ close: "Chiudi",
98
+ retry: "Riprova",
99
+ save: "Salva",
100
+ selected: "selezionati",
101
+ somethingWentWrong: "Qualcosa è andato storto",
102
+ success: "Successo!",
103
+ undo: "Annulla",
104
+ unsavedChanges: "Modifiche non salvate | modifica non salvata | modifiche non salvate"
105
+ },
106
+ "ja-JP": {
107
+ actionBar: "アクションバー",
108
+ applying: "適用中...",
109
+ cancel: "キャンセル",
110
+ close: "閉じる",
111
+ retry: "再試行",
112
+ save: "保存",
113
+ selected: "選択済み",
114
+ somethingWentWrong: "問題が発生しました",
115
+ success: "成功!",
116
+ undo: "元に戻す",
117
+ unsavedChanges: "保存されていない変更 | 保存されていない変更 | 保存されていない変更"
118
+ },
119
+ "pt-BR": {
120
+ actionBar: "Barra de ação",
121
+ applying: "Aplicando...",
122
+ cancel: "Cancelar",
123
+ close: "Fechar",
124
+ retry: "Tentar de novo",
125
+ save: "Salvar",
126
+ selected: "selecionado",
127
+ somethingWentWrong: "Algo deu errado",
128
+ success: "Sucesso!",
129
+ undo: "Desfazer",
130
+ unsavedChanges: "Alterações não salvas | alteração não salva | alterações não salvas"
131
+ },
132
+ "zh-CN": {
133
+ actionBar: "操作栏",
134
+ applying: "申请...",
135
+ cancel: "取消",
136
+ close: "关闭",
137
+ retry: "重试",
138
+ save: "保存",
139
+ selected: "已选",
140
+ somethingWentWrong: "出了点问题",
141
+ success: "成功!",
142
+ undo: "撤销",
143
+ unsavedChanges: "未保存的更改 | 未保存的更改 | 未保存的更改"
144
+ }
145
+ }, oe = {
146
+ i18n: { messages: se }
147
+ }, ie = /* @__PURE__ */ D({
148
+ ...oe,
149
+ __name: "action-bar",
150
+ props: {
151
+ /**
152
+ * List of actions that will be used to render the buttons.
153
+ * Required and used for the `default` variant.
154
+ *
155
+ * Each object in the list should have a `title`, an `event` and,
156
+ * optionally, an `icon`.
157
+ *
158
+ * The component will display 4 actions and the hide the rest inside a menu.
159
+ *
160
+ * @see BentoButton for a list of all the other props supported by each button action.
161
+ */
162
+ actions: {
163
+ type: Array,
164
+ default: () => []
165
+ },
166
+ /**
167
+ * How many actions should be visible outside the menu, cannot be more than 4
168
+ */
169
+ visibleActions: {
170
+ type: Number,
171
+ default: 4,
172
+ validator: (l) => l > 0 && l <= 4
173
+ },
174
+ /**
175
+ * Use when there are sticky elements at the bottom, like sticky pagination
176
+ */
177
+ extraBottomSpacing: {
178
+ type: Boolean,
179
+ default: !1
180
+ },
181
+ /**
182
+ * Show how many items are selected.
183
+ * When omitted in the `confirmation` variant, a generic "Unsaved changes" label is displayed.
184
+ */
185
+ itemCounter: {
186
+ type: Number,
187
+ default: null
188
+ },
189
+ /**
190
+ * Label for the selection, e.g. 'selected'/'changed'
191
+ */
192
+ selectionLabel: {
193
+ type: String,
194
+ default: null
195
+ },
196
+ /**
197
+ * State of the action bar.
198
+ * @values start, loading, success, fail
199
+ */
200
+ state: {
201
+ type: String,
202
+ default: "start"
203
+ },
204
+ /**
205
+ * Displays the undo action button in `success` state.
206
+ */
207
+ showUndoAction: {
208
+ type: Boolean,
209
+ default: !1
210
+ },
211
+ /**
212
+ * Displays the retry action button in `fail` state.
213
+ */
214
+ showRetryAction: {
215
+ type: Boolean,
216
+ default: !1
217
+ },
218
+ /**
219
+ * Variant for the action bar
220
+ * @values default, confirmation
221
+ */
222
+ variant: {
223
+ type: String,
224
+ default: "default"
225
+ }
226
+ },
227
+ emits: ["close", "cancel", "save", "undo-action", "retry-action", "cancel-action"],
228
+ setup(l, { emit: n }) {
229
+ const t = l, e = 100, r = 7, B = 500, f = 32, { t: i, tc: E, n: I } = H(), k = s(() => t.selectionLabel ? t.selectionLabel : i("selected")), x = s(() => {
230
+ switch (t.state) {
231
+ case "loading":
232
+ return i("applying");
233
+ case "success":
234
+ return i("success");
235
+ case "fail":
236
+ return i("somethingWentWrong");
237
+ default:
238
+ return "";
239
+ }
240
+ }), m = c(null), u = c(null), h = c(null), g = c(!1), R = s(
241
+ () => t.state === "loading" ? "out-in" : void 0
242
+ ), T = s(
243
+ () => t.state === "loading" || t.state === "success" && !t.showUndoAction
244
+ ), F = (a) => {
245
+ t.state === "loading" && (u.value = `${a.offsetWidth}px`, h.value = "100%");
246
+ }, U = (a) => {
247
+ if (t.state !== "loading")
248
+ return;
249
+ Object.assign(a.style, { width: "auto", maxWidth: "none" });
250
+ const v = a.offsetWidth;
251
+ Object.assign(a.style, { width: "100%", maxWidth: u.value }), requestAnimationFrame(() => {
252
+ u.value = `${v}px`;
253
+ });
254
+ }, L = () => {
255
+ u.value = null, h.value = null, t.state === "fail" && (g.value = !0);
256
+ }, N = (a) => {
257
+ a.animationName.startsWith("shake-") && (g.value = !1);
258
+ }, { extraBottomSpacing: A, visibleActions: W } = G(t), { width: d } = ee(), o = c(null), p = c(null), S = s(() => t.variant === "confirmation");
259
+ w(
260
+ () => W.value,
261
+ (a) => {
262
+ p.value = a <= 4 ? a : 4, o.value = p.value;
263
+ },
264
+ { immediate: !0 }
265
+ );
266
+ const M = s(() => ({
267
+ "b-action-bar--extra-spacing": A.value,
268
+ "b-action-bar--confirmation": S.value,
269
+ "b-action-bar__state-animation--shake": g.value
270
+ })), O = s(() => ({
271
+ [`b-action-bar__container--${t.state}`]: t.state !== "start"
272
+ }));
273
+ j(ne, r);
274
+ const V = s(() => {
275
+ const a = t.actions.map((z) => ({
276
+ ...z,
277
+ variant: "secondary"
278
+ })), v = a.slice(0, o.value).reverse(), y = a.slice(o.value);
279
+ return [...v, ...y];
280
+ }), P = s(() => [
281
+ {
282
+ title: i("save"),
283
+ event: () => n("save")
284
+ },
285
+ {
286
+ title: i("cancel"),
287
+ variant: "secondary",
288
+ event: () => n("cancel")
289
+ }
290
+ ]), $ = s(() => t.itemCounter == null || t.itemCounter < 1), _ = async () => {
291
+ await b(), d.value > m.value.clientWidth + f + e && o.value < p.value && (o.value += 1, _());
292
+ }, C = async () => {
293
+ await b(), d.value < m.value.clientWidth + f && o.value > 0 && (o.value -= 1, C());
294
+ };
295
+ return w(
296
+ () => d.value,
297
+ async (a, v) => {
298
+ if (await b(), !m.value)
299
+ return;
300
+ const y = a > v;
301
+ d.value < B ? o.value = 0 : y ? _() : C();
302
+ },
303
+ { immediate: !0 }
304
+ ), { __sfc: !0, AVERAGE_BUTTON_SIZE: e, MENU_OFFSET: r, RESPONSIVE_BREAKPOINT: B, SPACING: f, props: t, emit: n, t: i, tc: E, n: I, label: k, defaultStateLabel: x, actionBar: m, containerMaxWidth: u, containerWidth: h, isShaking: g, stateTransitionMode: R, hideStateActions: T, onBeforeLeave: F, onEnter: U, onAfterEnter: L, onAnimationEnd: N, extraBottomSpacing: A, visibleActions: W, width: d, internalDisplayedActions: o, internalVisibleActions: p, isConfirmationVariant: S, conditionalClasses: M, containerClasses: O, actionsInternal: V, confirmationActions: P, noItemCounter: $, showActions: _, hideActions: C, BentoButton: J, BentoButtonActions: te, BentoTypography: K, BentoLoadingIndicator: q, ButtonActionsWithMenu: Q, CrossIcon: X, CheckmarkCircleFill: Y, CrossCircleFill: Z };
305
+ }
306
+ });
307
+ var re = function() {
308
+ var n = this, t = n._self._c, e = n._self._setupProxy;
309
+ return t("Transition", { attrs: { name: "b-action-bar__animation", appear: "" } }, [t("section", { staticClass: "b-action-bar", class: e.conditionalClasses, attrs: { "aria-label": e.t("actionBar") }, on: { animationend: e.onAnimationEnd } }, [t("Transition", { attrs: { name: `b-action-bar__state-animation--${n.state}`, mode: e.stateTransitionMode }, on: { "before-leave": e.onBeforeLeave, enter: e.onEnter, "after-enter": e.onAfterEnter } }, [t("div", { key: n.state, ref: "actionBar", staticClass: "b-action-bar__container", class: e.containerClasses, style: { width: e.containerWidth, maxWidth: e.containerMaxWidth } }, [n.state === "start" ? t("div", { staticClass: "b-action-bar__container-inner" }, [e.isConfirmationVariant ? n._e() : t("div", { staticClass: "b-action-bar__close-button" }, [t(e.BentoButton, { attrs: { variant: "tertiary", inverse: "", "aria-label": e.t("close") }, on: { click: function(r) {
310
+ return e.emit("close");
311
+ } }, scopedSlots: n._u([{ key: "iconLeft", fn: function() {
312
+ return [t(e.CrossIcon, { attrs: { "aria-hidden": !0 } })];
313
+ }, proxy: !0 }], null, !1, 4214210411) })], 1), t(e.BentoTypography, { staticClass: "b-action-bar__selection", attrs: { el: "span", stronger: "" } }, [e.isConfirmationVariant && e.noItemCounter ? [n._v(" " + n._s(e.tc("unsavedChanges", 0)) + " ")] : [n._v(" " + n._s(e.n(n.itemCounter)) + " " + n._s(e.isConfirmationVariant ? e.tc("unsavedChanges", n.itemCounter) : e.label) + " ")]], 2), e.isConfirmationVariant ? t(e.BentoButtonActions, { staticClass: "b-action-bar__actions", attrs: { actions: e.confirmationActions, inverse: "" } }) : t(e.ButtonActionsWithMenu, { staticClass: "b-action-bar__actions", attrs: { actions: e.actionsInternal, "displayed-actions": e.internalDisplayedActions, "menu-position": "top-end", "disable-responsive-behavior": "", inverse: "" } })], 1) : t("div", { staticClass: "b-action-bar__container-inner" }, [t("div", { staticClass: "b-action-bar__state-icon" }, [n.state === "loading" ? t(e.BentoLoadingIndicator, { attrs: { small: "", inverse: "" } }) : n._e(), n.state === "success" ? t(e.CheckmarkCircleFill, { attrs: { "aria-hidden": !0 } }) : n._e(), n.state === "fail" ? t(e.CrossCircleFill, { attrs: { "aria-hidden": !0 } }) : n._e()], 1), t(e.BentoTypography, { attrs: { stronger: "" } }, [n._t("stateLabel", function() {
314
+ return [n._v(n._s(e.defaultStateLabel))];
315
+ })], 2), e.hideStateActions ? n._e() : t("div", { staticClass: "b-action-bar__state-actions" }, [n.state === "success" && n.showUndoAction ? t(e.BentoButton, { attrs: { variant: "tertiary", inverse: "" }, on: { click: function(r) {
316
+ return e.emit("undo-action");
317
+ } } }, [n._v(n._s(e.t("undo")))]) : n._e(), n.state === "fail" && n.showRetryAction ? t(e.BentoButton, { attrs: { variant: "tertiary", inverse: "" }, on: { click: function(r) {
318
+ return e.emit("retry-action");
319
+ } } }, [n._v(n._s(e.t("retry")))]) : n._e(), n.state === "fail" ? t(e.BentoButton, { attrs: { variant: "tertiary", inverse: "" }, on: { click: function(r) {
320
+ return e.emit("cancel-action");
321
+ } } }, [n._v(n._s(e.t("cancel")))]) : n._e()], 1)], 1)])])], 1)]);
322
+ }, ce = [], le = /* @__PURE__ */ ae(
323
+ ie,
324
+ re,
325
+ ce,
326
+ !1,
327
+ null,
328
+ "b91c5356"
329
+ );
330
+ const Be = le.exports;
331
+ export {
332
+ Be as B
333
+ };
334
+ //# sourceMappingURL=action-bar.B63qIiiH.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"action-bar.CYGUYI0V.js","sources":["../../src/components/action-bar/action-bar.vue"],"sourcesContent":["<template>\n <Transition name=\"b-action-bar__animation\" appear>\n <section\n class=\"b-action-bar\"\n :class=\"conditionalClasses\"\n :aria-label=\"t('actionBar')\"\n @animationend=\"onAnimationEnd\"\n >\n <Transition\n :name=\"`b-action-bar__state-animation--${state}`\"\n :mode=\"stateTransitionMode\"\n @before-leave=\"onBeforeLeave\"\n @enter=\"onEnter\"\n @after-enter=\"onAfterEnter\"\n >\n <div\n ref=\"actionBar\"\n :key=\"state\"\n class=\"b-action-bar__container\"\n :class=\"containerClasses\"\n :style=\"{ width: containerWidth, maxWidth: containerMaxWidth }\"\n >\n <div v-if=\"state === 'start'\" class=\"b-action-bar__container-inner\">\n <div v-if=\"!isConfirmationVariant\" class=\"b-action-bar__close-button\">\n <bento-button variant=\"tertiary\" inverse :aria-label=\"t('close')\" @click=\"emit('close')\">\n <template #iconLeft><cross-icon :aria-hidden=\"true\" /></template>\n </bento-button>\n </div>\n <bento-typography el=\"span\" stronger class=\"b-action-bar__selection\">\n <template v-if=\"isConfirmationVariant && noItemCounter\">\n {{ tc('unsavedChanges', 0) }}\n </template>\n <template v-else>\n {{ n(itemCounter) }}\n {{ isConfirmationVariant ? tc('unsavedChanges', itemCounter) : label }}\n </template>\n </bento-typography>\n <bento-button-actions\n v-if=\"isConfirmationVariant\"\n :actions=\"confirmationActions\"\n class=\"b-action-bar__actions\"\n inverse\n />\n <button-actions-with-menu\n v-else\n :actions=\"actionsInternal\"\n class=\"b-action-bar__actions\"\n :displayed-actions=\"internalDisplayedActions\"\n menu-position=\"top-end\"\n disable-responsive-behavior\n inverse\n />\n </div>\n <div v-else class=\"b-action-bar__container-inner\">\n <div class=\"b-action-bar__state-icon\">\n <bento-loading-indicator v-if=\"state === 'loading'\" small inverse />\n <checkmark-circle-fill v-if=\"state === 'success'\" :aria-hidden=\"true\" />\n <cross-circle-fill v-if=\"state === 'fail'\" :aria-hidden=\"true\" />\n </div>\n <bento-typography stronger>\n <slot name=\"stateLabel\">{{ defaultStateLabel }}</slot>\n </bento-typography>\n <div v-if=\"!hideStateActions\" class=\"b-action-bar__state-actions\">\n <bento-button\n v-if=\"state === 'success' && showUndoAction\"\n variant=\"tertiary\"\n inverse\n @click=\"emit('undo-action')\"\n >{{ t('undo') }}</bento-button\n >\n <bento-button\n v-if=\"state === 'fail' && showRetryAction\"\n variant=\"tertiary\"\n inverse\n @click=\"emit('retry-action')\"\n >{{ t('retry') }}</bento-button\n >\n <bento-button\n v-if=\"state === 'fail'\"\n variant=\"tertiary\"\n inverse\n @click=\"emit('cancel-action')\"\n >{{ t('cancel') }}</bento-button\n >\n </div>\n </div>\n </div>\n </Transition>\n </section>\n </Transition>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, nextTick, type PropType, provide, ref, toRefs, type TransitionProps, watch } from 'vue';\n import { BentoButton, BentoButtonActions, type BentoButtonActionsList } from '@/components/button';\n import { BentoTypography } from '@/components/typography';\n import { BentoLoadingIndicator } from '@/components/loading-indicator';\n\n import { type BentoActionBarState, type BentoActionBarVariant } from '@/components/action-bar/action-bar.types';\n import ButtonActionsWithMenu from '@/components/internal/button-actions-with-menu/button-actions-with-menu.vue';\n import CrossIcon from '@adyen/ui-assets-icons-16/vue/cross';\n import CheckmarkCircleFill from '@adyen/ui-assets-icons-16/vue/checkmark-circle-fill';\n import CrossCircleFill from '@adyen/ui-assets-icons-16/vue/cross-circle-fill';\n\n import { useI18n } from '@/utils/ts/i18n';\n import { useWindowSize } from '@vueuse/core';\n\n import messages from './messages.json';\n import { POPOVER_OFFSET_INJECTION_KEY } from '@/components/popover/popover.keys';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n // Constants\n const AVERAGE_BUTTON_SIZE = 100;\n const MENU_OFFSET = 7;\n const RESPONSIVE_BREAKPOINT = 500;\n const SPACING = 32;\n\n const props = defineProps({\n /**\n * List of actions that will be used to render the buttons.\n * Required and used for the `default` variant.\n *\n * Each object in the list should have a `title`, an `event` and,\n * optionally, an `icon`.\n *\n * The component will display 4 actions and the hide the rest inside a menu.\n *\n * @see BentoButton for a list of all the other props supported by each button action.\n */\n actions: {\n type: Array as PropType<BentoButtonActionsList>,\n default: () => [],\n },\n /**\n * How many actions should be visible outside the menu, cannot be more than 4\n */\n visibleActions: {\n type: Number,\n default: 4,\n validator: (value: number) => value > 0 && value <= 4,\n },\n /**\n * Use when there are sticky elements at the bottom, like sticky pagination\n */\n extraBottomSpacing: {\n type: Boolean,\n default: false,\n },\n /**\n * Show how many items are selected.\n * When omitted in the `confirmation` variant, a generic \"Unsaved changes\" label is displayed.\n */\n itemCounter: {\n type: Number,\n default: null,\n },\n /**\n * Label for the selection, e.g. 'selected'/'changed'\n */\n selectionLabel: {\n type: String,\n default: null,\n },\n /**\n * State of the action bar.\n * @values start, loading, success, fail\n */\n state: {\n type: String as PropType<BentoActionBarState>,\n default: 'start',\n },\n /**\n * Displays the undo action button in `success` state.\n */\n showUndoAction: {\n type: Boolean,\n default: false,\n },\n /**\n * Displays the retry action button in `fail` state.\n */\n showRetryAction: {\n type: Boolean,\n default: false,\n },\n /**\n * Variant for the action bar\n * @values default, confirmation\n */\n variant: {\n type: String as PropType<BentoActionBarVariant>,\n default: 'default',\n },\n });\n\n const emit = defineEmits([\"close\", \"cancel\", \"save\", \"undo-action\", \"retry-action\", \"cancel-action\"]);\n\n const { t, tc, n } = useI18n<{ message: MessageSchema }>({ messages });\n const label = computed(() => (props.selectionLabel ? props.selectionLabel : t('selected')));\n\n const defaultStateLabel = computed(() => {\n switch (props.state) {\n case 'loading':\n return t('applying');\n case 'success':\n return t('success');\n case 'fail':\n return t('somethingWentWrong');\n default:\n return '';\n }\n });\n\n // Refs\n const actionBar = ref<HTMLDivElement>(null);\n const containerMaxWidth = ref<string | null>(null);\n const containerWidth = ref<string | null>(null);\n const isShaking = ref(false);\n\n const stateTransitionMode = computed(\n () => (props.state === 'loading' ? 'out-in' : undefined) as TransitionProps['mode']\n );\n\n const hideStateActions = computed(\n () => props.state === 'loading' || (props.state === 'success' && !props.showUndoAction)\n );\n\n const onBeforeLeave = (el: HTMLElement) => {\n if (props.state !== 'loading') {\n return;\n }\n\n containerMaxWidth.value = `${el.offsetWidth}px`;\n containerWidth.value = '100%';\n };\n\n const onEnter = (el: HTMLElement) => {\n if (props.state !== 'loading') {\n return;\n }\n\n // Reset styles to get natural width\n Object.assign(el.style, { width: 'auto', maxWidth: 'none' });\n const newWidth = el.offsetWidth;\n\n // Reset it back to the original values\n Object.assign(el.style, { width: '100%', maxWidth: containerMaxWidth.value });\n\n requestAnimationFrame(() => {\n containerMaxWidth.value = `${newWidth}px`;\n });\n };\n\n const onAfterEnter = () => {\n containerMaxWidth.value = null;\n containerWidth.value = null;\n\n if (props.state === 'fail') {\n isShaking.value = true;\n }\n };\n\n const onAnimationEnd = (event: AnimationEvent) => {\n if (event.animationName.startsWith('shake-')) {\n isShaking.value = false;\n }\n };\n\n const { extraBottomSpacing, visibleActions } = toRefs(props);\n const { width } = useWindowSize();\n const internalDisplayedActions = ref(null);\n const internalVisibleActions = ref(null);\n\n const isConfirmationVariant = computed(() => props.variant === 'confirmation');\n\n watch(\n () => visibleActions.value,\n value => {\n internalVisibleActions.value = value <= 4 ? value : 4;\n internalDisplayedActions.value = internalVisibleActions.value;\n },\n { immediate: true }\n );\n\n // Styling\n const conditionalClasses = computed(() => ({\n 'b-action-bar--extra-spacing': extraBottomSpacing.value,\n 'b-action-bar--confirmation': isConfirmationVariant.value,\n 'b-action-bar__state-animation--shake': isShaking.value,\n }));\n\n const containerClasses = computed(() => ({\n [`b-action-bar__container--${props.state}`]: props.state !== 'start',\n }));\n\n // Provide POPOVER_OFFSET_INJECTION_KEY to change the value of the popover offset\n provide(POPOVER_OFFSET_INJECTION_KEY, MENU_OFFSET);\n\n // Manipulate actions array to display as intended\n const actionsInternal = computed(() => {\n // All buttons should be of type secondary in the action bar\n const actions = props.actions.map(action => ({\n ...action,\n variant: 'secondary',\n })) as BentoButtonActionsList;\n // Shown actions should display from left to right in action bar, instead of right to left which is the button actions default\n const shownActions = actions.slice(0, internalDisplayedActions.value).reverse();\n const hiddenActions = actions.slice(internalDisplayedActions.value);\n\n return [...shownActions, ...hiddenActions];\n });\n\n const confirmationActions = computed<BentoButtonActionsList>(() => [\n {\n title: t('save'),\n event: () => emit('save'),\n },\n {\n title: t('cancel'),\n variant: 'secondary',\n event: () => emit('cancel'),\n },\n ]);\n\n const noItemCounter = computed(() => {\n return props.itemCounter == null || props.itemCounter < 1;\n });\n\n // Recursive functions to determine how many actions should be visible/hidden based on the screens width\n const showActions = async () => {\n await nextTick();\n if (\n width.value > actionBar.value.clientWidth + SPACING + AVERAGE_BUTTON_SIZE &&\n internalDisplayedActions.value < internalVisibleActions.value\n ) {\n internalDisplayedActions.value += 1;\n showActions();\n }\n };\n\n const hideActions = async () => {\n await nextTick();\n if (width.value < actionBar.value.clientWidth + SPACING && internalDisplayedActions.value > 0) {\n internalDisplayedActions.value -= 1;\n hideActions();\n }\n };\n\n // Screen width watcher to toggle hidden/visible actions\n watch(\n () => width.value,\n async (newValue, oldValue) => {\n await nextTick();\n if (!actionBar.value) {\n return;\n }\n const isIncreasing = newValue > oldValue;\n if (width.value < RESPONSIVE_BREAKPOINT) {\n internalDisplayedActions.value = 0;\n } else if (isIncreasing) {\n showActions();\n } else {\n hideActions();\n }\n },\n { immediate: true }\n );\n</script>\n\n<script lang=\"ts\">\n /**\n * Action bar is a floating bar that provides users with quick access to key actions that can be applied to one or multiple items.\n *\n * @example\n * import { BentoActionBar } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoActionBar },\n * template: `\n * <bento-action-bar\n * :actions='[\n * {\n * title: 'Delete',\n * critical: true,\n * icon: BinIcon,\n * event: () => true,\n * },\n * {\n * title: 'Edit',\n * icon: EditIcon,\n * event: () => true,\n * }\n * ]'\n * @close=\"closeAction\"\n * :item-counter=\"5\"\n * />\n * `\n * }\n */\n export default {\n i18n: { messages },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./action-bar.scss\" />\n"],"names":["__default__","messages","AVERAGE_BUTTON_SIZE","MENU_OFFSET","RESPONSIVE_BREAKPOINT","SPACING","t","tc","n","useI18n","label","computed","props","defaultStateLabel","actionBar","ref","containerMaxWidth","containerWidth","isShaking","stateTransitionMode","hideStateActions","onBeforeLeave","el","onEnter","newWidth","onAfterEnter","onAnimationEnd","event","extraBottomSpacing","visibleActions","toRefs","width","useWindowSize","internalDisplayedActions","internalVisibleActions","isConfirmationVariant","watch","value","conditionalClasses","containerClasses","provide","POPOVER_OFFSET_INJECTION_KEY","actionsInternal","actions","action","shownActions","hiddenActions","confirmationActions","emit","noItemCounter","showActions","nextTick","hideActions","newValue","oldValue","isIncreasing"],"mappings":"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"}
1
+ {"version":3,"file":"action-bar.B63qIiiH.js","sources":["../../src/components/action-bar/action-bar.vue"],"sourcesContent":["<template>\n <Transition name=\"b-action-bar__animation\" appear>\n <section\n class=\"b-action-bar\"\n :class=\"conditionalClasses\"\n :aria-label=\"t('actionBar')\"\n @animationend=\"onAnimationEnd\"\n >\n <Transition\n :name=\"`b-action-bar__state-animation--${state}`\"\n :mode=\"stateTransitionMode\"\n @before-leave=\"onBeforeLeave\"\n @enter=\"onEnter\"\n @after-enter=\"onAfterEnter\"\n >\n <div\n ref=\"actionBar\"\n :key=\"state\"\n class=\"b-action-bar__container\"\n :class=\"containerClasses\"\n :style=\"{ width: containerWidth, maxWidth: containerMaxWidth }\"\n >\n <div v-if=\"state === 'start'\" class=\"b-action-bar__container-inner\">\n <div v-if=\"!isConfirmationVariant\" class=\"b-action-bar__close-button\">\n <bento-button variant=\"tertiary\" inverse :aria-label=\"t('close')\" @click=\"emit('close')\">\n <template #iconLeft><cross-icon :aria-hidden=\"true\" /></template>\n </bento-button>\n </div>\n <bento-typography el=\"span\" stronger class=\"b-action-bar__selection\">\n <template v-if=\"isConfirmationVariant && noItemCounter\">\n {{ tc('unsavedChanges', 0) }}\n </template>\n <template v-else>\n {{ n(itemCounter) }}\n {{ isConfirmationVariant ? tc('unsavedChanges', itemCounter) : label }}\n </template>\n </bento-typography>\n <bento-button-actions\n v-if=\"isConfirmationVariant\"\n :actions=\"confirmationActions\"\n class=\"b-action-bar__actions\"\n inverse\n />\n <button-actions-with-menu\n v-else\n :actions=\"actionsInternal\"\n class=\"b-action-bar__actions\"\n :displayed-actions=\"internalDisplayedActions\"\n menu-position=\"top-end\"\n disable-responsive-behavior\n inverse\n />\n </div>\n <div v-else class=\"b-action-bar__container-inner\">\n <div class=\"b-action-bar__state-icon\">\n <bento-loading-indicator v-if=\"state === 'loading'\" small inverse />\n <checkmark-circle-fill v-if=\"state === 'success'\" :aria-hidden=\"true\" />\n <cross-circle-fill v-if=\"state === 'fail'\" :aria-hidden=\"true\" />\n </div>\n <bento-typography stronger>\n <slot name=\"stateLabel\">{{ defaultStateLabel }}</slot>\n </bento-typography>\n <div v-if=\"!hideStateActions\" class=\"b-action-bar__state-actions\">\n <bento-button\n v-if=\"state === 'success' && showUndoAction\"\n variant=\"tertiary\"\n inverse\n @click=\"emit('undo-action')\"\n >{{ t('undo') }}</bento-button\n >\n <bento-button\n v-if=\"state === 'fail' && showRetryAction\"\n variant=\"tertiary\"\n inverse\n @click=\"emit('retry-action')\"\n >{{ t('retry') }}</bento-button\n >\n <bento-button\n v-if=\"state === 'fail'\"\n variant=\"tertiary\"\n inverse\n @click=\"emit('cancel-action')\"\n >{{ t('cancel') }}</bento-button\n >\n </div>\n </div>\n </div>\n </Transition>\n </section>\n </Transition>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, nextTick, type PropType, provide, ref, toRefs, type TransitionProps, watch } from 'vue';\n import { BentoButton, BentoButtonActions, type BentoButtonActionsList } from '@/components/button';\n import { BentoTypography } from '@/components/typography';\n import { BentoLoadingIndicator } from '@/components/loading-indicator';\n\n import { type BentoActionBarState, type BentoActionBarVariant } from '@/components/action-bar/action-bar.types';\n import ButtonActionsWithMenu from '@/components/internal/button-actions-with-menu/button-actions-with-menu.vue';\n import CrossIcon from '@adyen/ui-assets-icons-16/vue/cross';\n import CheckmarkCircleFill from '@adyen/ui-assets-icons-16/vue/checkmark-circle-fill';\n import CrossCircleFill from '@adyen/ui-assets-icons-16/vue/cross-circle-fill';\n\n import { useI18n } from '@/utils/ts/i18n';\n import { useWindowSize } from '@vueuse/core';\n\n import messages from './messages.json';\n import { POPOVER_OFFSET_INJECTION_KEY } from '@/components/popover/popover.keys';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n // Constants\n const AVERAGE_BUTTON_SIZE = 100;\n const MENU_OFFSET = 7;\n const RESPONSIVE_BREAKPOINT = 500;\n const SPACING = 32;\n\n const props = defineProps({\n /**\n * List of actions that will be used to render the buttons.\n * Required and used for the `default` variant.\n *\n * Each object in the list should have a `title`, an `event` and,\n * optionally, an `icon`.\n *\n * The component will display 4 actions and the hide the rest inside a menu.\n *\n * @see BentoButton for a list of all the other props supported by each button action.\n */\n actions: {\n type: Array as PropType<BentoButtonActionsList>,\n default: () => [],\n },\n /**\n * How many actions should be visible outside the menu, cannot be more than 4\n */\n visibleActions: {\n type: Number,\n default: 4,\n validator: (value: number) => value > 0 && value <= 4,\n },\n /**\n * Use when there are sticky elements at the bottom, like sticky pagination\n */\n extraBottomSpacing: {\n type: Boolean,\n default: false,\n },\n /**\n * Show how many items are selected.\n * When omitted in the `confirmation` variant, a generic \"Unsaved changes\" label is displayed.\n */\n itemCounter: {\n type: Number,\n default: null,\n },\n /**\n * Label for the selection, e.g. 'selected'/'changed'\n */\n selectionLabel: {\n type: String,\n default: null,\n },\n /**\n * State of the action bar.\n * @values start, loading, success, fail\n */\n state: {\n type: String as PropType<BentoActionBarState>,\n default: 'start',\n },\n /**\n * Displays the undo action button in `success` state.\n */\n showUndoAction: {\n type: Boolean,\n default: false,\n },\n /**\n * Displays the retry action button in `fail` state.\n */\n showRetryAction: {\n type: Boolean,\n default: false,\n },\n /**\n * Variant for the action bar\n * @values default, confirmation\n */\n variant: {\n type: String as PropType<BentoActionBarVariant>,\n default: 'default',\n },\n });\n\n const emit = defineEmits([\"close\", \"cancel\", \"save\", \"undo-action\", \"retry-action\", \"cancel-action\"]);\n\n const { t, tc, n } = useI18n<{ message: MessageSchema }>({ messages });\n const label = computed(() => (props.selectionLabel ? props.selectionLabel : t('selected')));\n\n const defaultStateLabel = computed(() => {\n switch (props.state) {\n case 'loading':\n return t('applying');\n case 'success':\n return t('success');\n case 'fail':\n return t('somethingWentWrong');\n default:\n return '';\n }\n });\n\n // Refs\n const actionBar = ref<HTMLDivElement>(null);\n const containerMaxWidth = ref<string | null>(null);\n const containerWidth = ref<string | null>(null);\n const isShaking = ref(false);\n\n const stateTransitionMode = computed(\n () => (props.state === 'loading' ? 'out-in' : undefined) as TransitionProps['mode']\n );\n\n const hideStateActions = computed(\n () => props.state === 'loading' || (props.state === 'success' && !props.showUndoAction)\n );\n\n const onBeforeLeave = (el: HTMLElement) => {\n if (props.state !== 'loading') {\n return;\n }\n\n containerMaxWidth.value = `${el.offsetWidth}px`;\n containerWidth.value = '100%';\n };\n\n const onEnter = (el: HTMLElement) => {\n if (props.state !== 'loading') {\n return;\n }\n\n // Reset styles to get natural width\n Object.assign(el.style, { width: 'auto', maxWidth: 'none' });\n const newWidth = el.offsetWidth;\n\n // Reset it back to the original values\n Object.assign(el.style, { width: '100%', maxWidth: containerMaxWidth.value });\n\n requestAnimationFrame(() => {\n containerMaxWidth.value = `${newWidth}px`;\n });\n };\n\n const onAfterEnter = () => {\n containerMaxWidth.value = null;\n containerWidth.value = null;\n\n if (props.state === 'fail') {\n isShaking.value = true;\n }\n };\n\n const onAnimationEnd = (event: AnimationEvent) => {\n if (event.animationName.startsWith('shake-')) {\n isShaking.value = false;\n }\n };\n\n const { extraBottomSpacing, visibleActions } = toRefs(props);\n const { width } = useWindowSize();\n const internalDisplayedActions = ref(null);\n const internalVisibleActions = ref(null);\n\n const isConfirmationVariant = computed(() => props.variant === 'confirmation');\n\n watch(\n () => visibleActions.value,\n value => {\n internalVisibleActions.value = value <= 4 ? value : 4;\n internalDisplayedActions.value = internalVisibleActions.value;\n },\n { immediate: true }\n );\n\n // Styling\n const conditionalClasses = computed(() => ({\n 'b-action-bar--extra-spacing': extraBottomSpacing.value,\n 'b-action-bar--confirmation': isConfirmationVariant.value,\n 'b-action-bar__state-animation--shake': isShaking.value,\n }));\n\n const containerClasses = computed(() => ({\n [`b-action-bar__container--${props.state}`]: props.state !== 'start',\n }));\n\n // Provide POPOVER_OFFSET_INJECTION_KEY to change the value of the popover offset\n provide(POPOVER_OFFSET_INJECTION_KEY, MENU_OFFSET);\n\n // Manipulate actions array to display as intended\n const actionsInternal = computed(() => {\n // All buttons should be of type secondary in the action bar\n const actions = props.actions.map(action => ({\n ...action,\n variant: 'secondary',\n })) as BentoButtonActionsList;\n // Shown actions should display from left to right in action bar, instead of right to left which is the button actions default\n const shownActions = actions.slice(0, internalDisplayedActions.value).reverse();\n const hiddenActions = actions.slice(internalDisplayedActions.value);\n\n return [...shownActions, ...hiddenActions];\n });\n\n const confirmationActions = computed<BentoButtonActionsList>(() => [\n {\n title: t('save'),\n event: () => emit('save'),\n },\n {\n title: t('cancel'),\n variant: 'secondary',\n event: () => emit('cancel'),\n },\n ]);\n\n const noItemCounter = computed(() => {\n return props.itemCounter == null || props.itemCounter < 1;\n });\n\n // Recursive functions to determine how many actions should be visible/hidden based on the screens width\n const showActions = async () => {\n await nextTick();\n if (\n width.value > actionBar.value.clientWidth + SPACING + AVERAGE_BUTTON_SIZE &&\n internalDisplayedActions.value < internalVisibleActions.value\n ) {\n internalDisplayedActions.value += 1;\n showActions();\n }\n };\n\n const hideActions = async () => {\n await nextTick();\n if (width.value < actionBar.value.clientWidth + SPACING && internalDisplayedActions.value > 0) {\n internalDisplayedActions.value -= 1;\n hideActions();\n }\n };\n\n // Screen width watcher to toggle hidden/visible actions\n watch(\n () => width.value,\n async (newValue, oldValue) => {\n await nextTick();\n if (!actionBar.value) {\n return;\n }\n const isIncreasing = newValue > oldValue;\n if (width.value < RESPONSIVE_BREAKPOINT) {\n internalDisplayedActions.value = 0;\n } else if (isIncreasing) {\n showActions();\n } else {\n hideActions();\n }\n },\n { immediate: true }\n );\n</script>\n\n<script lang=\"ts\">\n /**\n * Action bar is a floating bar that provides users with quick access to key actions that can be applied to one or multiple items.\n *\n * @example\n * import { BentoActionBar } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoActionBar },\n * template: `\n * <bento-action-bar\n * :actions='[\n * {\n * title: 'Delete',\n * critical: true,\n * icon: BinIcon,\n * event: () => true,\n * },\n * {\n * title: 'Edit',\n * icon: EditIcon,\n * event: () => true,\n * }\n * ]'\n * @close=\"closeAction\"\n * :item-counter=\"5\"\n * />\n * `\n * }\n */\n export default {\n i18n: { messages },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./action-bar.scss\" />\n"],"names":["__default__","messages","AVERAGE_BUTTON_SIZE","MENU_OFFSET","RESPONSIVE_BREAKPOINT","SPACING","t","tc","n","useI18n","label","computed","props","defaultStateLabel","actionBar","ref","containerMaxWidth","containerWidth","isShaking","stateTransitionMode","hideStateActions","onBeforeLeave","el","onEnter","newWidth","onAfterEnter","onAnimationEnd","event","extraBottomSpacing","visibleActions","toRefs","width","useWindowSize","internalDisplayedActions","internalVisibleActions","isConfirmationVariant","watch","value","conditionalClasses","containerClasses","provide","POPOVER_OFFSET_INJECTION_KEY","actionsInternal","actions","action","shownActions","hiddenActions","confirmationActions","emit","noItemCounter","showActions","nextTick","hideActions","newValue","oldValue","isIncreasing"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as r, useSlots as c, computed as u, onMounted as d } from "vue";
2
- import { B as p } from "./button.DxhJNOtr.js";
2
+ import { B as p } from "./button.C9b2AC9w.js";
3
3
  import { A as f } from "./artificial-intelligence-ai-filled.C6TMsiHK.js";
4
4
  import { u as _ } from "./use-has-slot.C9lQZ6nz.js";
5
5
  import { p as m } from "./typography.C8lPlsbD.js";
@@ -47,4 +47,4 @@ const F = k.exports;
47
47
  export {
48
48
  F as a
49
49
  };
50
- //# sourceMappingURL=ai-button.CR_ePQRR.js.map
50
+ //# sourceMappingURL=ai-button.7L9bANlk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-button.CR_ePQRR.js","sources":["../../src/components/button/components/ai-button/ai-button.vue"],"sourcesContent":["<template>\n <div class=\"b-ai-button\" :class=\"conditionalClass\">\n <div class=\"b-ai-button__animation\" />\n\n <bento-button\n class=\"b-ai-button__button\"\n :condensed=\"condensed\"\n :disabled=\"disabled\"\n :inverse=\"inverse\"\n variant=\"secondary\"\n @click.capture.stop=\"onClick\"\n >\n <template #iconLeft>\n <ai-filled-icon aria-hidden=\"true\" class=\"b-ai-button__icon\" />\n </template>\n\n <slot></slot>\n </bento-button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, onMounted, useSlots } from 'vue';\n import BentoButton from '../../button.vue';\n import AiFilledIcon from '@adyen/ui-assets-icons-16/vue/artificial-intelligence-ai-filled';\n import { useHasSlot } from '@/composables/use-has-slot/use-has-slot';\n import { printDevelopmentWarning } from '@/utils/ts/print-development-warning';\n import { type BentoAiButtonProps } from './ai-button.types';\n\n const props = defineProps({\n condensed: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n inverse: { type: Boolean, default: false },\n link: { default: undefined },\n type: { default: 'button' }\n});\n\n const emit = defineEmits([\"click\"]);\n\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n\n const conditionalClass = computed(() => ({\n 'b-ai-button--disabled': props.disabled,\n }));\n\n const onClick = (e: MouseEvent) => {\n // Prevent Vue3 from triggering event twice\n e.stopPropagation();\n\n emit('click', e);\n };\n\n onMounted(() => {\n if (!hasSlot('default')) {\n printDevelopmentWarning('An icon-only button cannot be a AI button');\n }\n });\n</script>\n\n<script lang=\"ts\">\n /**\n * AI Button component is used for cases where pressing a button starts an AI-related action.\n *\n * @example\n * import { BentoAiButton } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoAiButton },\n * template: `\n * <bento-ai-button @click=\"onClick\">Generate with AI</bento-ai-button>\n * `\n * }\n */\n export default {\n name: 'bento-ai-button',\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./ai-button.scss\" />\n"],"names":["__default__","slots","useSlots","hasSlot","useHasSlot","conditionalClass","computed","props","onClick","e","emit","onMounted","printDevelopmentWarning"],"mappings":";;;;;;;AA0EI,MAAAA,IAAA;AAAA,EAAe,MAAA;AAEf;;;;;;;;;;;iBArCAC,IAAAC,EAAA,GACAC,IAAAC,EAAAH,CAAA,GAEAI,IAAAC,EAAA,OAAA;AAAA,MAAyC,yBAAAC,EAAA;AAAA,IACN,EAAA,GAGnCC,IAAA,CAAAC,MAAA;AAEI,MAAAA,EAAA,gBAAA,GAEAC,EAAA,SAAAD,CAAA;AAAA,IAAe;AAGnB,WAAAE,EAAA,MAAA;AACI,MAAAR,EAAA,SAAA,KACIS,EAAA,2CAAA;AAAA,IACJ,CAAA;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ai-button.7L9bANlk.js","sources":["../../src/components/button/components/ai-button/ai-button.vue"],"sourcesContent":["<template>\n <div class=\"b-ai-button\" :class=\"conditionalClass\">\n <div class=\"b-ai-button__animation\" />\n\n <bento-button\n class=\"b-ai-button__button\"\n :condensed=\"condensed\"\n :disabled=\"disabled\"\n :inverse=\"inverse\"\n variant=\"secondary\"\n @click.capture.stop=\"onClick\"\n >\n <template #iconLeft>\n <ai-filled-icon aria-hidden=\"true\" class=\"b-ai-button__icon\" />\n </template>\n\n <slot></slot>\n </bento-button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, onMounted, useSlots } from 'vue';\n import BentoButton from '../../button.vue';\n import AiFilledIcon from '@adyen/ui-assets-icons-16/vue/artificial-intelligence-ai-filled';\n import { useHasSlot } from '@/composables/use-has-slot/use-has-slot';\n import { printDevelopmentWarning } from '@/utils/ts/print-development-warning';\n import { type BentoAiButtonProps } from './ai-button.types';\n\n const props = defineProps({\n condensed: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n inverse: { type: Boolean, default: false },\n link: { default: undefined },\n type: { default: 'button' }\n});\n\n const emit = defineEmits([\"click\"]);\n\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n\n const conditionalClass = computed(() => ({\n 'b-ai-button--disabled': props.disabled,\n }));\n\n const onClick = (e: MouseEvent) => {\n // Prevent Vue3 from triggering event twice\n e.stopPropagation();\n\n emit('click', e);\n };\n\n onMounted(() => {\n if (!hasSlot('default')) {\n printDevelopmentWarning('An icon-only button cannot be a AI button');\n }\n });\n</script>\n\n<script lang=\"ts\">\n /**\n * AI Button component is used for cases where pressing a button starts an AI-related action.\n *\n * @example\n * import { BentoAiButton } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoAiButton },\n * template: `\n * <bento-ai-button @click=\"onClick\">Generate with AI</bento-ai-button>\n * `\n * }\n */\n export default {\n name: 'bento-ai-button',\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./ai-button.scss\" />\n"],"names":["__default__","slots","useSlots","hasSlot","useHasSlot","conditionalClass","computed","props","onClick","e","emit","onMounted","printDevelopmentWarning"],"mappings":";;;;;;;AA0EI,MAAAA,IAAA;AAAA,EAAe,MAAA;AAEf;;;;;;;;;;;iBArCAC,IAAAC,EAAA,GACAC,IAAAC,EAAAH,CAAA,GAEAI,IAAAC,EAAA,OAAA;AAAA,MAAyC,yBAAAC,EAAA;AAAA,IACN,EAAA,GAGnCC,IAAA,CAAAC,MAAA;AAEI,MAAAA,EAAA,gBAAA,GAEAC,EAAA,SAAAD,CAAA;AAAA,IAAe;AAGnB,WAAAE,EAAA,MAAA;AACI,MAAAR,EAAA,SAAA,KACIS,EAAA,2CAAA;AAAA,IACJ,CAAA;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,110 @@
1
+ import { defineComponent as u, ref as n, watch as f, computed as _ } from "vue";
2
+ import { u as v, c as m, h as I } from "./button-actions.BmU1DngD.js";
3
+ import { B as A } from "./typography.C8lPlsbD.js";
4
+ import "./index.Cl4_42j5.js";
5
+ import { u as x } from "./index.B6WW_F-J.js";
6
+ import { g as y } from "./generate-uid.NJ8tVoha.js";
7
+ import { A as E } from "./artificial-intelligence-ai-filled.C6TMsiHK.js";
8
+ import { n as B } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
9
+ import "../assets/ai-tag.css";
10
+ const h = {
11
+ "de-DE": {
12
+ ai: "KI",
13
+ aiExplained: "KI erklärt"
14
+ },
15
+ "en-GB": {
16
+ ai: "AI",
17
+ aiExplained: "AI explained"
18
+ },
19
+ "en-US": {
20
+ ai: "AI",
21
+ aiExplained: "AI explained"
22
+ },
23
+ "es-ES": {
24
+ ai: "IA",
25
+ aiExplained: "IA explicada"
26
+ },
27
+ "es-MX": {
28
+ ai: "AI",
29
+ aiExplained: "IA explicada"
30
+ },
31
+ "fr-FR": {
32
+ ai: "IA",
33
+ aiExplained: "L'IA expliquée"
34
+ },
35
+ "it-IT": {
36
+ ai: "AI",
37
+ aiExplained: "L'AI spiegata"
38
+ },
39
+ "ja-JP": {
40
+ ai: "AI",
41
+ aiExplained: "AIについての説明"
42
+ },
43
+ "pt-BR": {
44
+ ai: "IA",
45
+ aiExplained: "IA explicada"
46
+ },
47
+ "zh-CN": {
48
+ ai: "人工智能",
49
+ aiExplained: "AI 解释"
50
+ }
51
+ }, C = {
52
+ i18n: { messages: h }
53
+ }, T = /* @__PURE__ */ u({
54
+ ...C,
55
+ __name: "ai-tag",
56
+ props: {
57
+ title: null,
58
+ description: null,
59
+ influencedValue: { default: void 0 },
60
+ toggled: { type: Boolean, default: !1 },
61
+ action: { default: void 0 }
62
+ },
63
+ emits: ["update:toggled"],
64
+ setup(l, { emit: e }) {
65
+ const a = l, { t } = x(), o = n(a.toggled), r = n(null), c = n(null), d = y("b-ai-tag-popover");
66
+ f(
67
+ () => a.toggled,
68
+ (i) => {
69
+ o.value = i;
70
+ }
71
+ ), v(r, () => {
72
+ p();
73
+ });
74
+ const g = _(
75
+ () => a.action ? [
76
+ {
77
+ ...a.action,
78
+ variant: "secondary"
79
+ }
80
+ ] : void 0
81
+ ), s = (i) => {
82
+ o.value = i, e("update:toggled", i);
83
+ }, p = () => {
84
+ o.value && s(!1);
85
+ };
86
+ return { __sfc: !0, props: a, t, toggled: o, aiTagRef: r, targetElement: c, popoverId: d, popoverActions: g, emit: e, onToggle: s, closePopover: p, BentoPopover: I, BentoToggleButton: m, BentoTypography: A, ArtificialIntelligenceAiIcon: E };
87
+ }
88
+ });
89
+ var k = function() {
90
+ var e = this, a = e._self._c, t = e._self._setupProxy;
91
+ return a("div", { ref: "aiTagRef", staticClass: "b-ai-tag", on: { keydown: function(o) {
92
+ return !o.type.indexOf("key") && e._k(o.keyCode, "esc", 27, o.key, ["Esc", "Escape"]) ? null : t.closePopover.apply(null, arguments);
93
+ } } }, [a(t.BentoToggleButton, { ref: "targetElement", staticClass: "b-ai-tag__trigger", attrs: { toggled: t.toggled, "aria-controls": t.popoverId, variant: "secondary", condensed: "" }, on: { "update:toggled": t.onToggle }, scopedSlots: e._u([{ key: "iconLeft", fn: function() {
94
+ return [a(t.ArtificialIntelligenceAiIcon, { staticClass: "b-ai-tag__trigger-icon", attrs: { "aria-hidden": !0 } })];
95
+ }, proxy: !0 }]) }, [e._v(" " + e._s(t.t("ai")) + " ")]), t.targetElement ? a(t.BentoPopover, { attrs: { id: t.popoverId, open: t.toggled, "target-element": t.targetElement, actions: t.popoverActions, "actions-layout": "fill-container", title: t.t("aiExplained"), "trap-all": "", "trap-all-options": { onDeactivate: t.closePopover, allowOutsideClick: !0 }, "fixed-positioning": "", "overflow-visible": "" }, on: { dismiss: t.closePopover }, scopedSlots: e._u([{ key: "headerIcon", fn: function() {
96
+ return [a(t.ArtificialIntelligenceAiIcon, { staticClass: "b-ai-tag__popover-header-icon", attrs: { "aria-hidden": !0 } })];
97
+ }, proxy: !0 }], null, !1, 430358887) }, [a("div", { staticClass: "b-ai-tag__popover-content" }, [e.influencedValue ? a(t.BentoTypography, { staticClass: "b-ai-tag__influenced-value", attrs: { variant: "title", medium: "" } }, [e._v(" " + e._s(e.influencedValue) + " ")]) : e._e(), a(t.BentoTypography, { attrs: { variant: "title" } }, [e._v(" " + e._s(e.title) + " ")]), a(t.BentoTypography, [e._v(" " + e._s(e.description) + " ")])], 1)]) : e._e()], 1);
98
+ }, b = [], P = /* @__PURE__ */ B(
99
+ T,
100
+ k,
101
+ b,
102
+ !1,
103
+ null,
104
+ "405c2237"
105
+ );
106
+ const F = P.exports;
107
+ export {
108
+ F as a
109
+ };
110
+ //# sourceMappingURL=ai-tag.CCJCOdXu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-tag.Cjf38mjR.js","sources":["../../src/components/ai-tag/ai-tag.vue"],"sourcesContent":["<template>\n <div ref=\"aiTagRef\" class=\"b-ai-tag\" @keydown.esc=\"closePopover\">\n <bento-toggle-button\n ref=\"targetElement\"\n :toggled=\"toggled\"\n :aria-controls=\"popoverId\"\n variant=\"secondary\"\n condensed\n class=\"b-ai-tag__trigger\"\n @update:toggled=\"onToggle\"\n >\n <template #iconLeft>\n <artificial-intelligence-ai-icon class=\"b-ai-tag__trigger-icon\" :aria-hidden=\"true\" />\n </template>\n {{ t('ai') }}\n </bento-toggle-button>\n\n <bento-popover\n v-if=\"targetElement\"\n :id=\"popoverId\"\n :open=\"toggled\"\n :target-element=\"targetElement\"\n :actions=\"popoverActions\"\n actions-layout=\"fill-container\"\n :title=\"t('aiExplained')\"\n trap-all\n :trap-all-options=\"{ onDeactivate: closePopover, allowOutsideClick: true }\"\n fixed-positioning\n overflow-visible\n @dismiss=\"closePopover\"\n >\n <template #headerIcon>\n <artificial-intelligence-ai-icon class=\"b-ai-tag__popover-header-icon\" :aria-hidden=\"true\" />\n </template>\n <div class=\"b-ai-tag__popover-content\">\n <bento-typography v-if=\"influencedValue\" variant=\"title\" medium class=\"b-ai-tag__influenced-value\">\n {{ influencedValue }}\n </bento-typography>\n\n <bento-typography variant=\"title\">\n {{ title }}\n </bento-typography>\n\n <bento-typography>\n {{ description }}\n </bento-typography>\n </div>\n </bento-popover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, ref, watch } from 'vue';\n import { BentoPopover } from '@/components/popover';\n import { BentoToggleButton } from '@/components/button';\n import { BentoTypography } from '@/components/typography';\n import { useClickOutside } from '@/composables';\n import { useI18n } from '@/utils/ts/i18n';\n import { generateUid } from '@/core/utils/ts';\n import type { BentoButtonActionsList } from '@/components/button/components/button-actions/button-actions.types';\n import ArtificialIntelligenceAiIcon from '@adyen/ui-assets-icons-16/vue/artificial-intelligence-ai-filled';\n import type { BentoAiTagProps } from './ai-tag.types';\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const props = defineProps({\n title: null,\n description: null,\n influencedValue: { default: undefined },\n toggled: { type: Boolean, default: false },\n action: { default: undefined }\n});\n\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n\n const toggled = ref(props.toggled);\n const aiTagRef = ref<HTMLElement | null>(null);\n const targetElement = ref<InstanceType<typeof BentoToggleButton> | null>(null);\n const popoverId = generateUid('b-ai-tag-popover');\n\n watch(\n () => props.toggled,\n value => {\n toggled.value = value;\n }\n );\n\n useClickOutside(aiTagRef, () => {\n closePopover();\n });\n\n const popoverActions = computed<BentoButtonActionsList>(() =>\n props.action\n ? [\n {\n ...props.action,\n variant: 'secondary',\n },\n ]\n : undefined\n );\n\n const emit = defineEmits([\"update:toggled\"]);\n\n const onToggle = (value: boolean) => {\n toggled.value = value;\n emit('update:toggled', value);\n };\n\n const closePopover = () => {\n if (toggled.value) {\n onToggle(false);\n }\n };\n</script>\n\n<script lang=\"ts\">\n /**\n * The AI tag is a component used to transparently identify content, data, or experiences that have been generated or\n * enhanced by artificial intelligence.\n *\n * @example\n * import { BentoAiTag } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoAiTag },\n * template: `\n * <bento-ai-tag\n * title=\"Input fields auto-filled by AI\"\n * description=\"Based on your documents uploaded, AI has auto-filled some information for you.\"\n * />\n * `\n * }\n */\n export default {\n i18n: { messages },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./ai-tag.scss\" />\n"],"names":["__default__","messages","useI18n","toggled","ref","props","aiTagRef","targetElement","popoverId","generateUid","watch","value","useClickOutside","closePopover","popoverActions","computed","onToggle","emit"],"mappings":";;;;;;;;;;;;;GAuIIA,IAAA;AAAA,EAAe,MAAA,EAAA,UAAAC,EAAA;AAEf;;;;;;;;;;;;iBA/DA,EAAA,EAAA,IAAAC,EAAA,GAEAC,IAAAC,EAAAC,EAAA,OAAA,GACAC,IAAAF,EAAA,IAAA,GACAG,IAAAH,EAAA,IAAA,GACAI,IAAAC,EAAA,kBAAA;AAEA,IAAAC;AAAA,MAAA,MAAAL,EAAA;AAAA,MACgB,CAAAM,MAAA;AAER,QAAAR,EAAA,QAAAQ;AAAA,MAAgB;AAAA,IACpB,GAGJC,EAAAN,GAAA,MAAA;AACI,MAAAO,EAAA;AAAA,IAAa,CAAA;AAGjB,UAAAC,IAAAC;AAAA,MAAuB,MAAAV,EAAA,SAAA;AAAA,QAEb;AAAA,UACI,GAAAA,EAAA;AAAA,UACa,SAAA;AAAA,QACA;AAAA,MACb,IAAA;AAAA,IAEJ,GAKVW,IAAA,CAAAL,MAAA;AACI,MAAAR,EAAA,QAAAQ,GACAM,EAAA,kBAAAN,CAAA;AAAA,IAA4B,GAGhCE,IAAA,MAAA;AACI,MAAAV,EAAA,SACIa,EAAA,EAAA;AAAA,IACJ;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ai-tag.CCJCOdXu.js","sources":["../../src/components/ai-tag/ai-tag.vue"],"sourcesContent":["<template>\n <div ref=\"aiTagRef\" class=\"b-ai-tag\" @keydown.esc=\"closePopover\">\n <bento-toggle-button\n ref=\"targetElement\"\n :toggled=\"toggled\"\n :aria-controls=\"popoverId\"\n variant=\"secondary\"\n condensed\n class=\"b-ai-tag__trigger\"\n @update:toggled=\"onToggle\"\n >\n <template #iconLeft>\n <artificial-intelligence-ai-icon class=\"b-ai-tag__trigger-icon\" :aria-hidden=\"true\" />\n </template>\n {{ t('ai') }}\n </bento-toggle-button>\n\n <bento-popover\n v-if=\"targetElement\"\n :id=\"popoverId\"\n :open=\"toggled\"\n :target-element=\"targetElement\"\n :actions=\"popoverActions\"\n actions-layout=\"fill-container\"\n :title=\"t('aiExplained')\"\n trap-all\n :trap-all-options=\"{ onDeactivate: closePopover, allowOutsideClick: true }\"\n fixed-positioning\n overflow-visible\n @dismiss=\"closePopover\"\n >\n <template #headerIcon>\n <artificial-intelligence-ai-icon class=\"b-ai-tag__popover-header-icon\" :aria-hidden=\"true\" />\n </template>\n <div class=\"b-ai-tag__popover-content\">\n <bento-typography v-if=\"influencedValue\" variant=\"title\" medium class=\"b-ai-tag__influenced-value\">\n {{ influencedValue }}\n </bento-typography>\n\n <bento-typography variant=\"title\">\n {{ title }}\n </bento-typography>\n\n <bento-typography>\n {{ description }}\n </bento-typography>\n </div>\n </bento-popover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, ref, watch } from 'vue';\n import { BentoPopover } from '@/components/popover';\n import { BentoToggleButton } from '@/components/button';\n import { BentoTypography } from '@/components/typography';\n import { useClickOutside } from '@/composables';\n import { useI18n } from '@/utils/ts/i18n';\n import { generateUid } from '@/core/utils/ts';\n import type { BentoButtonActionsList } from '@/components/button/components/button-actions/button-actions.types';\n import ArtificialIntelligenceAiIcon from '@adyen/ui-assets-icons-16/vue/artificial-intelligence-ai-filled';\n import type { BentoAiTagProps } from './ai-tag.types';\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const props = defineProps({\n title: null,\n description: null,\n influencedValue: { default: undefined },\n toggled: { type: Boolean, default: false },\n action: { default: undefined }\n});\n\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n\n const toggled = ref(props.toggled);\n const aiTagRef = ref<HTMLElement | null>(null);\n const targetElement = ref<InstanceType<typeof BentoToggleButton> | null>(null);\n const popoverId = generateUid('b-ai-tag-popover');\n\n watch(\n () => props.toggled,\n value => {\n toggled.value = value;\n }\n );\n\n useClickOutside(aiTagRef, () => {\n closePopover();\n });\n\n const popoverActions = computed<BentoButtonActionsList>(() =>\n props.action\n ? [\n {\n ...props.action,\n variant: 'secondary',\n },\n ]\n : undefined\n );\n\n const emit = defineEmits([\"update:toggled\"]);\n\n const onToggle = (value: boolean) => {\n toggled.value = value;\n emit('update:toggled', value);\n };\n\n const closePopover = () => {\n if (toggled.value) {\n onToggle(false);\n }\n };\n</script>\n\n<script lang=\"ts\">\n /**\n * The AI tag is a component used to transparently identify content, data, or experiences that have been generated or\n * enhanced by artificial intelligence.\n *\n * @example\n * import { BentoAiTag } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoAiTag },\n * template: `\n * <bento-ai-tag\n * title=\"Input fields auto-filled by AI\"\n * description=\"Based on your documents uploaded, AI has auto-filled some information for you.\"\n * />\n * `\n * }\n */\n export default {\n i18n: { messages },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./ai-tag.scss\" />\n"],"names":["__default__","messages","useI18n","toggled","ref","props","aiTagRef","targetElement","popoverId","generateUid","watch","value","useClickOutside","closePopover","popoverActions","computed","onToggle","emit"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuIIA,IAAA;AAAA,EAAe,MAAA,EAAA,UAAAC,EAAA;AAEf;;;;;;;;;;;;iBA/DA,EAAA,EAAA,IAAAC,EAAA,GAEAC,IAAAC,EAAAC,EAAA,OAAA,GACAC,IAAAF,EAAA,IAAA,GACAG,IAAAH,EAAA,IAAA,GACAI,IAAAC,EAAA,kBAAA;AAEA,IAAAC;AAAA,MAAA,MAAAL,EAAA;AAAA,MACgB,CAAAM,MAAA;AAER,QAAAR,EAAA,QAAAQ;AAAA,MAAgB;AAAA,IACpB,GAGJC,EAAAN,GAAA,MAAA;AACI,MAAAO,EAAA;AAAA,IAAa,CAAA;AAGjB,UAAAC,IAAAC;AAAA,MAAuB,MAAAV,EAAA,SAAA;AAAA,QAEb;AAAA,UACI,GAAAA,EAAA;AAAA,UACa,SAAA;AAAA,QACA;AAAA,MACb,IAAA;AAAA,IAEJ,GAKVW,IAAA,CAAAL,MAAA;AACI,MAAAR,EAAA,QAAAQ,GACAM,EAAA,kBAAAN,CAAA;AAAA,IAA4B,GAGhCE,IAAA,MAAA;AACI,MAAAV,EAAA,SACIa,EAAA,EAAA;AAAA,IACJ;;;;;;;;;;;;;;;;;;;;;;"}