@adyen/bento-vue2 1.56.2 → 1.57.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/dist/@types/index.d.ts +19 -0
  2. package/dist/action-bar.js +1 -1
  3. package/dist/alert.js +1 -1
  4. package/dist/assets/accordion-item.css +1 -1
  5. package/dist/assets/action-bar.css +1 -1
  6. package/dist/assets/base-modal.css +1 -1
  7. package/dist/assets/card.css +1 -1
  8. package/dist/assets/checkbox-input.css +1 -1
  9. package/dist/assets/data-grid.css +1 -1
  10. package/dist/assets/dialog-page.css +1 -1
  11. package/dist/assets/error-message.css +1 -1
  12. package/dist/assets/file-uploader.css +1 -1
  13. package/dist/assets/inspector.css +1 -1
  14. package/dist/assets/link.css +1 -1
  15. package/dist/assets/menu.css +1 -1
  16. package/dist/assets/modal-fullscreen.css +1 -1
  17. package/dist/assets/pagination.css +1 -1
  18. package/dist/assets/popover.css +1 -1
  19. package/dist/assets/rich-text-editor.css +1 -0
  20. package/dist/assets/sidepanel.css +1 -1
  21. package/dist/avatar.js +1 -1
  22. package/dist/button.js +3 -3
  23. package/dist/card.js +1 -1
  24. package/dist/checkbox.js +3 -3
  25. package/dist/chunks/_commonjsHelpers.C6fGbg64.js +7 -0
  26. package/dist/chunks/_commonjsHelpers.C6fGbg64.js.map +1 -0
  27. package/dist/chunks/{action-bar.c68S34TI.js → action-bar.nUvnRVwP.js} +6 -6
  28. package/dist/chunks/{action-bar.c68S34TI.js.map → action-bar.nUvnRVwP.js.map} +1 -1
  29. package/dist/chunks/{alert.D8qqrobi.js → alert.Du9NfW-V.js} +2 -2
  30. package/dist/chunks/{alert.D8qqrobi.js.map → alert.Du9NfW-V.js.map} +1 -1
  31. package/dist/chunks/{avatar.BgwjpLQO.js → avatar.CP1oL5W2.js} +3 -4
  32. package/dist/chunks/{avatar.BgwjpLQO.js.map → avatar.CP1oL5W2.js.map} +1 -1
  33. package/dist/chunks/{base-modal.B9JnRNty.js → base-modal.DdznUtgC.js} +20 -20
  34. package/dist/chunks/base-modal.DdznUtgC.js.map +1 -0
  35. package/dist/chunks/{button-actions-with-menu.DhPRdnSt.js → button-actions-with-menu.CDLJMdJh.js} +5 -5
  36. package/dist/chunks/{button-actions-with-menu.DhPRdnSt.js.map → button-actions-with-menu.CDLJMdJh.js.map} +1 -1
  37. package/dist/chunks/{button-actions.ZBlB7bp4.js → button-actions.DUn_iPDm.js} +2 -2
  38. package/dist/chunks/{button-actions.ZBlB7bp4.js.map → button-actions.DUn_iPDm.js.map} +1 -1
  39. package/dist/chunks/{button.D7K0uXQm.js → button.BuD-IsW5.js} +2 -2
  40. package/dist/chunks/{button.D7K0uXQm.js.map → button.BuD-IsW5.js.map} +1 -1
  41. package/dist/chunks/{calendar.CiLR27-B.js → calendar.C0iatn5N.js} +39 -42
  42. package/dist/chunks/{calendar.CiLR27-B.js.map → calendar.C0iatn5N.js.map} +1 -1
  43. package/dist/chunks/{card.CZkqwnNe.js → card.BYUqSnBy.js} +2 -2
  44. package/dist/chunks/{card.CZkqwnNe.js.map → card.BYUqSnBy.js.map} +1 -1
  45. package/dist/chunks/{checkbox-group.COqNevz5.js → checkbox-group.HhNN-r-o.js} +4 -4
  46. package/dist/chunks/{checkbox-group.COqNevz5.js.map → checkbox-group.HhNN-r-o.js.map} +1 -1
  47. package/dist/chunks/{checkbox-input.CMhyJDdo.js → checkbox-input.Dr1GS2BZ.js} +53 -45
  48. package/dist/chunks/checkbox-input.Dr1GS2BZ.js.map +1 -0
  49. package/dist/chunks/{checkbox.LFeWM5p4.js → checkbox.CkaV8-b-.js} +4 -4
  50. package/dist/chunks/{checkbox.LFeWM5p4.js.map → checkbox.CkaV8-b-.js.map} +1 -1
  51. package/dist/chunks/{code-snippet.p15Tfobh.js → code-snippet.BdwtKOEj.js} +5 -5
  52. package/dist/chunks/{code-snippet.p15Tfobh.js.map → code-snippet.BdwtKOEj.js.map} +1 -1
  53. package/dist/chunks/{controls-group.B-JUz-ir.js → controls-group.CG5RvOSi.js} +2 -2
  54. package/dist/chunks/{controls-group.B-JUz-ir.js.map → controls-group.CG5RvOSi.js.map} +1 -1
  55. package/dist/chunks/{copy.JmRKnqLo.js → copy.MTsLLiC0.js} +4 -4
  56. package/dist/chunks/{copy.JmRKnqLo.js.map → copy.MTsLLiC0.js.map} +1 -1
  57. package/dist/chunks/{dashboard-section.DJ39VLp3.js → dashboard-section.DYk4LVm8.js} +4 -4
  58. package/dist/chunks/{dashboard-section.DJ39VLp3.js.map → dashboard-section.DYk4LVm8.js.map} +1 -1
  59. package/dist/chunks/{dashed-underline.D29Z776j.js → dashed-underline.lDp966e8.js} +3 -3
  60. package/dist/chunks/{dashed-underline.D29Z776j.js.map → dashed-underline.lDp966e8.js.map} +1 -1
  61. package/dist/chunks/{data-grid-template.BrgmYdx9.js → data-grid-template.Dcnw2_Du.js} +3 -3
  62. package/dist/chunks/{data-grid-template.BrgmYdx9.js.map → data-grid-template.Dcnw2_Du.js.map} +1 -1
  63. package/dist/chunks/{data-grid.CX58NCuD.js → data-grid.DwdO-UCB.js} +20 -20
  64. package/dist/chunks/{data-grid.CX58NCuD.js.map → data-grid.DwdO-UCB.js.map} +1 -1
  65. package/dist/chunks/{date-picker.2shSM0mi.js → date-picker.oVG4b_5b.js} +6 -7
  66. package/dist/chunks/{date-picker.2shSM0mi.js.map → date-picker.oVG4b_5b.js.map} +1 -1
  67. package/dist/chunks/{date-range-picker.hAWOq77C.js → date-range-picker.CbLz3jJx.js} +10 -11
  68. package/dist/chunks/{date-range-picker.hAWOq77C.js.map → date-range-picker.CbLz3jJx.js.map} +1 -1
  69. package/dist/chunks/dialog-page.uGh0kYDL.js +131 -0
  70. package/dist/chunks/dialog-page.uGh0kYDL.js.map +1 -0
  71. package/dist/chunks/{dropdown-tag.D_LJJSDW.js → dropdown-tag.CqcduQgK.js} +4 -4
  72. package/dist/chunks/{dropdown-tag.D_LJJSDW.js.map → dropdown-tag.CqcduQgK.js.map} +1 -1
  73. package/dist/chunks/{dropdown.DfnKDRBQ.js → dropdown.sRIb4drl.js} +5 -5
  74. package/dist/chunks/{dropdown.DfnKDRBQ.js.map → dropdown.sRIb4drl.js.map} +1 -1
  75. package/dist/chunks/{empty-state.Z97lmDoK.js → empty-state.IvvHHQ35.js} +2 -2
  76. package/dist/chunks/{empty-state.Z97lmDoK.js.map → empty-state.IvvHHQ35.js.map} +1 -1
  77. package/dist/chunks/{error-message.7bsic_sK.js → error-message.JskAm-Td.js} +8 -8
  78. package/dist/chunks/error-message.JskAm-Td.js.map +1 -0
  79. package/dist/chunks/es6.BtaxuP0b.js.map +1 -1
  80. package/dist/chunks/{file-uploader.DtiNK2cF.js → file-uploader.DhOTdtfm.js} +6 -6
  81. package/dist/chunks/{file-uploader.DtiNK2cF.js.map → file-uploader.DhOTdtfm.js.map} +1 -1
  82. package/dist/chunks/{filter-bar.C3MsA2SC.js → filter-bar.DRDC6mhJ.js} +22 -23
  83. package/dist/chunks/{filter-bar.C3MsA2SC.js.map → filter-bar.DRDC6mhJ.js.map} +1 -1
  84. package/dist/chunks/{fixed-scroller.BJh4fxeV.js → fixed-scroller.D0a6q8_i.js} +2 -2
  85. package/dist/chunks/{fixed-scroller.BJh4fxeV.js.map → fixed-scroller.D0a6q8_i.js.map} +1 -1
  86. package/dist/chunks/{focus-trap.DEHn1dxN.js → focus-trap.DiqwA-bw.js} +2 -2
  87. package/dist/chunks/{focus-trap.DEHn1dxN.js.map → focus-trap.DiqwA-bw.js.map} +1 -1
  88. package/dist/chunks/{footer-actions.Blk5X8z1.js → footer-actions.CWOEDPKJ.js} +3 -3
  89. package/dist/chunks/{footer-actions.Blk5X8z1.js.map → footer-actions.CWOEDPKJ.js.map} +1 -1
  90. package/dist/chunks/{form-layout-title.CbdwXVqj.js → form-layout-title.DBCY18f8.js} +2 -2
  91. package/dist/chunks/{form-layout-title.CbdwXVqj.js.map → form-layout-title.DBCY18f8.js.map} +1 -1
  92. package/dist/chunks/{header-with-views.DCmkDn7u.js → header-with-views.B8ncHkZt.js} +15 -16
  93. package/dist/chunks/{header-with-views.DCmkDn7u.js.map → header-with-views.B8ncHkZt.js.map} +1 -1
  94. package/dist/chunks/{header.DbB-XuIe.js → header.byOrhnHk.js} +4 -4
  95. package/dist/chunks/{header.DbB-XuIe.js.map → header.byOrhnHk.js.map} +1 -1
  96. package/dist/chunks/index.oJzeCMPe.js +529 -0
  97. package/dist/chunks/{index.48Mn1OCp.js.map → index.oJzeCMPe.js.map} +1 -1
  98. package/dist/chunks/{info-icon-with-popover.CzP2P-pl.js → info-icon-with-popover.Cfng_pMj.js} +2 -2
  99. package/dist/chunks/{info-icon-with-popover.CzP2P-pl.js.map → info-icon-with-popover.Cfng_pMj.js.map} +1 -1
  100. package/dist/chunks/{info-icon.Dn0FHy-U.js → info-icon.DgCYoVE3.js} +3 -3
  101. package/dist/chunks/{info-icon.Dn0FHy-U.js.map → info-icon.DgCYoVE3.js.map} +1 -1
  102. package/dist/chunks/{input-field-password.DwRXYgcD.js → input-field-password.GhHsOaiD.js} +7 -7
  103. package/dist/chunks/{input-field-password.DwRXYgcD.js.map → input-field-password.GhHsOaiD.js.map} +1 -1
  104. package/dist/chunks/{input-field-phone-number.DGNoMZfu.js → input-field-phone-number.DFt3iS_A.js} +3 -3
  105. package/dist/chunks/{input-field-phone-number.DGNoMZfu.js.map → input-field-phone-number.DFt3iS_A.js.map} +1 -1
  106. package/dist/chunks/{input-field.BdJBLLFI.js → input-field.rHXIJKN8.js} +3 -3
  107. package/dist/chunks/{input-field.BdJBLLFI.js.map → input-field.rHXIJKN8.js.map} +1 -1
  108. package/dist/chunks/inspector.types.Dab4xYKV.js +104 -0
  109. package/dist/chunks/inspector.types.Dab4xYKV.js.map +1 -0
  110. package/dist/chunks/{layout-row.DWRoI0dm.js → layout-row.c0ugsIw6.js} +2 -2
  111. package/dist/chunks/{layout-row.DWRoI0dm.js.map → layout-row.c0ugsIw6.js.map} +1 -1
  112. package/dist/chunks/{link.BH3eB_7E.js → link.D0P79Toh.js} +35 -28
  113. package/dist/chunks/link.D0P79Toh.js.map +1 -0
  114. package/dist/chunks/{listbox-option-tag.BSQ8bM-O.js → listbox-option-tag.CBGk4m-_.js} +2 -2
  115. package/dist/chunks/{listbox-option-tag.BSQ8bM-O.js.map → listbox-option-tag.CBGk4m-_.js.map} +1 -1
  116. package/dist/chunks/{menu.BKcBx2qB.js → menu.DZEDTBYV.js} +3 -3
  117. package/dist/chunks/{menu.BKcBx2qB.js.map → menu.DZEDTBYV.js.map} +1 -1
  118. package/dist/chunks/{modal-fullscreen.BwVQfDn1.js → modal-fullscreen.DRQ4V5tT.js} +5 -5
  119. package/dist/chunks/{modal-fullscreen.BwVQfDn1.js.map → modal-fullscreen.DRQ4V5tT.js.map} +1 -1
  120. package/dist/chunks/{modal.BL-FWXsY.js → modal.DDF63uBR.js} +5 -5
  121. package/dist/chunks/{modal.BL-FWXsY.js.map → modal.DDF63uBR.js.map} +1 -1
  122. package/dist/chunks/{pagination.CX5fg6Ma.js → pagination.BJ4qwHJn.js} +50 -58
  123. package/dist/chunks/pagination.BJ4qwHJn.js.map +1 -0
  124. package/dist/chunks/{popover.Bb9JeZVy.js → popover.DXo3nXew.js} +4 -4
  125. package/dist/chunks/{popover.Bb9JeZVy.js.map → popover.DXo3nXew.js.map} +1 -1
  126. package/dist/chunks/{popper-container.DieshXa8.js → popper-container.1kHSxyxu.js} +2 -2
  127. package/dist/chunks/{popper-container.DieshXa8.js.map → popper-container.1kHSxyxu.js.map} +1 -1
  128. package/dist/chunks/{promo-banner.D5QXTiEH.js → promo-banner.BpLrkuMc.js} +3 -3
  129. package/dist/chunks/{promo-banner.D5QXTiEH.js.map → promo-banner.BpLrkuMc.js.map} +1 -1
  130. package/dist/chunks/{radio-group.BuKC_n23.js → radio-group.DtCgLBuL.js} +4 -4
  131. package/dist/chunks/{radio-group.BuKC_n23.js.map → radio-group.DtCgLBuL.js.map} +1 -1
  132. package/dist/chunks/{search-bar.C-_Ba3wd.js → search-bar.Cc8VBCjQ.js} +3 -3
  133. package/dist/chunks/{search-bar.C-_Ba3wd.js.map → search-bar.Cc8VBCjQ.js.map} +1 -1
  134. package/dist/chunks/{secondary-nav.uhESbxKZ.js → secondary-nav.DEDQjtj6.js} +3 -3
  135. package/dist/chunks/{secondary-nav.uhESbxKZ.js.map → secondary-nav.DEDQjtj6.js.map} +1 -1
  136. package/dist/chunks/{segmented-control.CCgCeLDQ.js → segmented-control.BQlmGv2x.js} +2 -2
  137. package/dist/chunks/{segmented-control.CCgCeLDQ.js.map → segmented-control.BQlmGv2x.js.map} +1 -1
  138. package/dist/chunks/{selection-card-group.Dj9wWfmY.js → selection-card-group.BniN7KWU.js} +5 -5
  139. package/dist/chunks/{selection-card-group.Dj9wWfmY.js.map → selection-card-group.BniN7KWU.js.map} +1 -1
  140. package/dist/chunks/{sidepanel.DMXzlqbw.js → sidepanel.DfQaLZEA.js} +5 -5
  141. package/dist/chunks/{sidepanel.DMXzlqbw.js.map → sidepanel.DfQaLZEA.js.map} +1 -1
  142. package/dist/chunks/{structured-list-item.DZ1_vy5W.js → structured-list-item.xaedKywV.js} +5 -5
  143. package/dist/chunks/{structured-list-item.DZ1_vy5W.js.map → structured-list-item.xaedKywV.js.map} +1 -1
  144. package/dist/chunks/{summary-grid.types.D-OotxnX.js → summary-grid.types.CNEeGgWh.js} +5 -5
  145. package/dist/chunks/{summary-grid.types.D-OotxnX.js.map → summary-grid.types.CNEeGgWh.js.map} +1 -1
  146. package/dist/chunks/{tabs.BfL4CUD1.js → tabs.DX_Gq12z.js} +2 -2
  147. package/dist/chunks/{tabs.BfL4CUD1.js.map → tabs.DX_Gq12z.js.map} +1 -1
  148. package/dist/chunks/{tag.C7ATWnRW.js → tag.C7kJJ5Ki.js} +2 -2
  149. package/dist/chunks/{tag.C7ATWnRW.js.map → tag.C7kJJ5Ki.js.map} +1 -1
  150. package/dist/chunks/{textarea.BkUzMu8d.js → textarea.CdA36VsY.js} +3 -3
  151. package/dist/chunks/{textarea.BkUzMu8d.js.map → textarea.CdA36VsY.js.map} +1 -1
  152. package/dist/chunks/{timeline-item.DcutETie.js → timeline-item.D87PFH_o.js} +7 -7
  153. package/dist/chunks/{timeline-item.DcutETie.js.map → timeline-item.D87PFH_o.js.map} +1 -1
  154. package/dist/chunks/{toast.BV0qP2AF.js → toast.BuxfqZJb.js} +4 -5
  155. package/dist/chunks/{toast.BV0qP2AF.js.map → toast.BuxfqZJb.js.map} +1 -1
  156. package/dist/chunks/{toggle-button.TDry-9iu.js → toggle-button.ChDbeBZ8.js} +2 -2
  157. package/dist/chunks/{toggle-button.TDry-9iu.js.map → toggle-button.ChDbeBZ8.js.map} +1 -1
  158. package/dist/chunks/{tooltip.CfER_5In.js → tooltip.8KbMqaXP.js} +5 -3
  159. package/dist/chunks/{tooltip.CfER_5In.js.map → tooltip.8KbMqaXP.js.map} +1 -1
  160. package/dist/chunks/{tutorial.AOMH-Jq3.js → tutorial.D74hJVBb.js} +5 -5
  161. package/dist/chunks/{tutorial.AOMH-Jq3.js.map → tutorial.D74hJVBb.js.map} +1 -1
  162. package/dist/chunks/{use-cached-selected-values.KPoAaRPS.js → use-cached-selected-values.CSVs_E5A.js} +4 -4
  163. package/dist/chunks/{use-cached-selected-values.KPoAaRPS.js.map → use-cached-selected-values.CSVs_E5A.js.map} +1 -1
  164. package/dist/code-snippet.js +1 -1
  165. package/dist/dashboard-template.js +1 -1
  166. package/dist/dashed-underline.js +1 -1
  167. package/dist/data-grid-template.js +1 -1
  168. package/dist/data-grid.js +1 -1
  169. package/dist/date-picker.js +2 -2
  170. package/dist/date-range-picker.js +2 -2
  171. package/dist/dropdown.js +3 -3
  172. package/dist/empty-state.js +1 -1
  173. package/dist/file-uploader.js +1 -1
  174. package/dist/filter-bar.js +1 -1
  175. package/dist/focus-trap.js +1 -1
  176. package/dist/form-layout.js +1 -1
  177. package/dist/header-with-views.js +1 -1
  178. package/dist/header.js +1 -1
  179. package/dist/index.js +56 -56
  180. package/dist/info-icon.js +1 -1
  181. package/dist/input-field-password.js +1 -1
  182. package/dist/input-field-phone-number.js +1 -1
  183. package/dist/input-field.js +1 -1
  184. package/dist/inspector.js +1 -1
  185. package/dist/internal.js +12 -12
  186. package/dist/layout.js +1 -1
  187. package/dist/link.js +1 -1
  188. package/dist/menu.js +1 -1
  189. package/dist/modal-fullscreen.js +1 -1
  190. package/dist/modal.js +2 -2
  191. package/dist/pagination.js +1 -1
  192. package/dist/popover.js +1 -1
  193. package/dist/popper-container.js +1 -1
  194. package/dist/promo-banner.js +1 -1
  195. package/dist/radio-group.js +1 -1
  196. package/dist/rich-text-editor.js +6203 -0
  197. package/dist/rich-text-editor.js.map +1 -0
  198. package/dist/search-bar.js +2 -2
  199. package/dist/secondary-nav.js +1 -1
  200. package/dist/segmented-control.js +1 -1
  201. package/dist/selection-card.js +1 -1
  202. package/dist/sidepanel.js +1 -1
  203. package/dist/structured-list.js +1 -1
  204. package/dist/styles/bento-dark.css +22 -1
  205. package/dist/styles/bento-light.css +22 -1
  206. package/dist/styles/bento.css +22 -1
  207. package/dist/styles/legacy.css +22 -1
  208. package/dist/styles/styleguide.css +22 -1
  209. package/dist/summary-grid.js +1 -1
  210. package/dist/tabs.js +1 -1
  211. package/dist/tag.js +1 -1
  212. package/dist/textarea.js +1 -1
  213. package/dist/timeline.js +1 -1
  214. package/dist/toast.js +1 -1
  215. package/dist/tutorial.js +1 -1
  216. package/dist/web-types.json +254 -1
  217. package/package.json +16 -5
  218. package/dist/chunks/base-modal.B9JnRNty.js.map +0 -1
  219. package/dist/chunks/checkbox-input.CMhyJDdo.js.map +0 -1
  220. package/dist/chunks/dialog-page.BveDXzz1.js +0 -130
  221. package/dist/chunks/dialog-page.BveDXzz1.js.map +0 -1
  222. package/dist/chunks/error-message.7bsic_sK.js.map +0 -1
  223. package/dist/chunks/index.48Mn1OCp.js +0 -387
  224. package/dist/chunks/inspector.types.Cloa1Rnz.js +0 -105
  225. package/dist/chunks/inspector.types.Cloa1Rnz.js.map +0 -1
  226. package/dist/chunks/link.BH3eB_7E.js.map +0 -1
  227. package/dist/chunks/pagination.CX5fg6Ma.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adyen/bento-vue2",
3
- "version": "1.56.2",
3
+ "version": "1.57.1",
4
4
  "description": "Adyen Bento Vue2 components",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -31,13 +31,19 @@
31
31
  "@floating-ui/core": "1.6.8",
32
32
  "@floating-ui/vue": "1.0.7",
33
33
  "@lezer/highlight": "1.2.1",
34
+ "@types/mdast": "3.0.15",
35
+ "@types/unist": "2.0.11",
34
36
  "@vueuse/core": "11.3.0",
35
37
  "date-fns": "2.28.0",
36
38
  "focus-lock": "0.11.0",
37
39
  "libphonenumber-js": "1.11.7",
38
40
  "mime": "4.0.6",
41
+ "remark-gfm-old": "npm:remark-gfm@3.0.1",
42
+ "remark-parse": "10.0.2",
43
+ "unified": "11.0.5",
39
44
  "uuid": "11.0.5",
40
- "@adyen/bento-design-tokens": "1.56.2"
45
+ "vue-demi": "0.14.10",
46
+ "@adyen/bento-design-tokens": "1.57.1"
41
47
  },
42
48
  "peerDependencies": {
43
49
  "vue": "~2.7",
@@ -107,6 +113,7 @@
107
113
  "marked": "15.0.12",
108
114
  "react": "18.3.1",
109
115
  "react-dom": "18.3.1",
116
+ "remark-gfm": "3.0.1",
110
117
  "sass": "1.54.6",
111
118
  "sass-loader": "12.6.0",
112
119
  "shiki": "3.7.0",
@@ -128,7 +135,7 @@
128
135
  "vue-tsc": "1.0.24",
129
136
  "@adyen/bento-cli": "0.2.4",
130
137
  "@adyen/bento-core": "0.0.1",
131
- "@adyen/bento-tailwind": "0.3.7-2",
138
+ "@adyen/bento-tailwind": "0.3.9",
132
139
  "@adyen/ui-assets-icons-16": "6.2.0",
133
140
  "@adyen/ui-assets-payment-method-icons": "9.1.0"
134
141
  },
@@ -163,12 +170,16 @@
163
170
  "test:coverage": "pnpm run test --coverage",
164
171
  "test:list-changed": "TZ='Europe/Paris' vitest list --run --filesOnly --changed origin/main",
165
172
  "test:watch": "TZ='Europe/Paris' vitest watch",
166
- "e2e": "test/bin/e2e-docker.sh vue2",
173
+ "e2e:bento": "test/bin/e2e-docker.sh vue2",
174
+ "e2e:bento:update": "test/bin/e2e-docker.sh vue2",
175
+ "e2e:legacy": "test/bin/e2e-docker.sh vue2 --legacy",
176
+ "e2e:legacy:debug": "BENTO_THEME=legacy pnpm run e2e:debug",
177
+ "e2e:legacy:update": "test/bin/e2e-docker.sh vue2 --update-snapshots --legacy",
167
178
  "e2e:a11y": "pnpm run e2e:clean && playwright test -c ./playwright.integration.config.ts --project=accessibility",
168
179
  "e2e:changed": "test/bin/e2e-docker.sh vue2 --changed",
169
180
  "e2e:clean": "rm -rf playwright/.cache || true",
170
181
  "e2e:debug": "pnpm run e2e:ci --debug",
171
- "e2e:update": "test/bin/e2e-docker.sh vue2 --update-snapshots",
182
+ "e2e:update": "pnpm run e2e:legacy:update vue2 && pnpm run e2e:bento:update vue2",
172
183
  "e2e:report": "playwright show-report playwright-report",
173
184
  "e2e:ci": "pnpm run e2e:clean && playwright test -c ./playwright.integration.config.ts",
174
185
  "e2e:ci:update": "pnpm run e2e:clean && playwright test -c playwright.integration.config.ts --update-snapshots",
@@ -1 +0,0 @@
1
- {"version":3,"file":"base-modal.B9JnRNty.js","sources":["../../src/components/modal/modal.types.ts","../../src/components/modal/modal.keys.ts","../../src/components/modal/components/modal-page/modal-page.vue","../../src/components/modal/components/base-modal/base-modal.vue"],"sourcesContent":["import { ComputedRef, Ref } from 'vue';\n\n/**\n * Public\n */\n\n/**\n * @deprecated for usage with properties since version 2.0. Use the string literal instead.\n */\nexport enum BentoModalVariant {\n DEFAULT = 'default',\n DIALOG = 'dialog',\n}\n\n/**\n * @deprecated for usage with properties since version 2.0. Use the string literal instead.\n */\nexport enum BentoModalVariantMapping {\n DEFAULT = 'BentoModalDefault',\n DIALOG = 'BentoModalDialog',\n}\n\n/**\n * @deprecated for usage with properties since version 2.0. Use the string literal instead.\n */\nexport enum BentoModalSize {\n SMALL = 'small',\n MEDIUM = 'medium',\n LARGE = 'large',\n}\n\n/**\n * @deprecated for usage with properties since version 2.0. Use the string literal instead.\n */\nexport enum BentoModalColumnLayoutVariant {\n SMALLER = 'smaller',\n EQUAL = 'equal',\n BIGGER = 'bigger',\n}\n\nexport enum BentoModalRole {\n DIALOG = 'dialog',\n ALERT_DIALOG = 'alertdialog',\n}\n\n/**\n * @deprecated for usage with properties since version 2.0. Use the string literal instead.\n */\nexport enum BentoModalDialogType {\n CONFIRMATION = 'confirmation',\n DESTRUCTIVE = 'destructive',\n INFO = 'info',\n ACKNOWLEDGEMENT = 'acknowledgement',\n}\n\nexport enum BentoModalEvent {\n CLOSE_MODAL = 'close-modal',\n}\n\n/**\n * Private\n */\nexport interface BentoModalConfigData {\n activePage: Ref<string>;\n height: Ref<string>;\n isAnimationActive: Ref<boolean>;\n pageCustomPadding: Ref<string>;\n showCloseButton: ComputedRef<boolean>;\n size: Ref<BentoModalSize | `${BentoModalSize}`>;\n}\n","export const MODAL_CONFIG_INJECTION_KEY = Symbol('modal config data injection key');\n","<template>\n <dialog-page\n ref=\"page\"\n class=\"b-modal-page\"\n :class=\"modalPageConditionalClasses\"\n :page-id=\"pageId\"\n :always-show-border=\"hasColumnLayout\"\n :back-button-styling=\"customPaddingStyles?.backButton\"\n :previous-page=\"previousPage\"\n @animationend=\"isAnimationActive = false\"\n >\n <template v-if=\"hasSlot('default') || showCloseButton\" #header>\n <div class=\"b-modal-page__header-container\" :style=\"customPaddingStyles.header\">\n <div class=\"b-modal-page__header\">\n <bento-typography\n class=\"b-modal-page__title\"\n aria-label=\"base modal title\"\n el=\"span\"\n variant=\"title\"\n stronger\n >\n <slot v-if=\"hasSlot('default')\" />\n </bento-typography>\n </div>\n </div>\n </template>\n\n <template #content>\n <div\n class=\"b-modal-page__content\"\n :class=\"modalContentConditionalClasses\"\n :style=\"customPaddingStyles.content\"\n >\n <bento-typography\n v-if=\"hasSlot('content') || (hasSlot('content-col-1') && hasSlot('content-col-2'))\"\n el=\"div\"\n >\n <grid-layout\n v-if=\"hasColumnLayout\"\n :column-width=\"computedColumnWidth\"\n :container-type=\"GridLayoutContainerType.NORMAL\"\n no-gap\n class=\"b-modal-page__grid\"\n >\n <template #col-1><slot name=\"content-col-1\"></slot></template>\n <template #col-2><slot name=\"content-col-2\"></slot></template>\n </grid-layout>\n <slot v-else name=\"content\" />\n </bento-typography>\n </div>\n </template>\n <template v-if=\"hasSlot('actions')\" #footer>\n <div class=\"b-modal-page__actions-container\" :style=\"customPaddingStyles.actions\">\n <div aria-label=\"modal actions\" class=\"b-modal-page__actions\">\n <slot name=\"actions\" />\n </div>\n </div>\n </template>\n <template v-else-if=\"actions && actions.length > 0\" #footer>\n <div class=\"b-modal-page__actions-container\" :style=\"customPaddingStyles.actions\">\n <footer-actions\n :actions=\"actions\"\n :actions-label=\"actionsLabel\"\n :destructive-actions=\"destructiveActions\"\n />\n </div>\n </template>\n </dialog-page>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, defineComponent, inject, nextTick, onUnmounted, PropType, ref, useSlots, watch } from 'vue';\n import {\n BentoModalColumnLayoutVariant,\n BentoModalConfigData,\n BentoModalSize,\n } from '@/components/modal/modal.types';\n import { BentoTypography } from '@/components/typography';\n import { BentoButtonActionsList } from '@/components/button';\n import { GridLayout, GridLayoutContainerType } from '@/internal';\n import { useHasSlot } from '@/composables';\n\n import { FooterActions } from '@/components/internal/footer-actions';\n\n import DialogPage from '@/internal/dialog-page/dialog-page.vue';\n import { MODAL_CONFIG_INJECTION_KEY } from '../../modal.keys';\n import { observeSizeOfElement } from '@/utils/ts/resize';\n\n const CLOSE_BUTTON_ICON_WIDTH = 26;\n\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n const page = ref<InstanceType<typeof DialogPage>>(null);\n\n const props = defineProps({\n /**\n * List of actions that will be used to render the buttons.\n * First element in the list will be rendered as \"primary\".\n * All elements after the first will be rendered as \"secondary\".\n * But you may change the color of 1-st action to red with 'critial' key\n * Not more than 3 action buttons can be provided\n * Or 2 action buttons and 1 Label for them\n *\n * Each object in the list should have a `title`, an `event` and\n * (optional) a Vue `icon` from the library `@adyen/ui-assets-icons-16`.\n *\n * `title`: Button's text.\n *\n * `event`: Event triggered when clicking the Button.\n *\n * `icon`: Vue Icon from the library `@adyen/ui-assets-icons-16`.\n *\n * ```\n * [{\n * title: 'Primary',2\n * event: () => { ... },\n * icon: FourPeopleIcon\n * }, {\n * title: 'Secondary',\n * event: () => { ... }\n * }]\n * ```\n */\n actions: {\n type: Array as PropType<BentoButtonActionsList>,\n default: null,\n },\n\n /**\n * Text label that is displayed left to the action buttons\n */\n actionsLabel: { type: String, default: null },\n\n /**\n * If a column layout is provided, it renders the respective left column width variant. This can be smaller than the second column, the same size as the second column or bigger than the second column.\n */\n columnsSize: {\n type: String as PropType<BentoModalColumnLayoutVariant>,\n default: BentoModalColumnLayoutVariant.SMALLER,\n },\n\n /**\n * If provided, manages the padding of the whole modal container\n */\n customPadding: { type: String, default: null },\n\n /**\n * If passed - sets first button color to red\n */\n destructiveActions: { type: Boolean, default: false },\n\n /**\n * If provided, renders the modal's content in a two-column layout an wth dividers separating its content\n */\n withColumnLayout: { type: Boolean, default: false },\n\n /**\n * Identifier of the page, used with activePage prop to handle modal navigation\n */\n pageId: {\n type: String,\n default: undefined,\n },\n\n /**\n * ID of the page for the back button to navigate to. Only use it to overwrite the default back behavior\n * Used when the back button should not take the user to the natural previous page\n * Set to `null` to hide back button in the page\n */\n previousPage: {\n type: String,\n default: undefined,\n },\n });\n\n const modalPageConditionalClasses = computed(() => ({\n 'b-modal-page--custom-padding': props.customPadding,\n }));\n\n const modalContentConditionalClasses = computed(() => ({\n 'b-modal-page__content--with-header': hasSlot('default'),\n 'b-modal-page__content--with-actions': hasSlot('actions') || props.actions?.length,\n }));\n\n // Setting custom padding styles\n const customPaddingStyles = computed(() => {\n if (!props.customPadding) {\n return {};\n }\n\n const xPadding = {\n paddingLeft: props.customPadding,\n paddingRight: props.customPadding,\n };\n\n const content = { ...xPadding, paddingTop: undefined, paddingBottom: undefined };\n\n if (!hasSlot('default')) {\n content.paddingTop = props.customPadding;\n }\n\n if (!hasSlot('actions')) {\n content.paddingBottom = props.customPadding;\n }\n\n return {\n header: {\n ...xPadding,\n paddingTop: props.customPadding,\n paddingRight: `${parseInt(props.customPadding, 10) + CLOSE_BUTTON_ICON_WIDTH}px`,\n flex: 1,\n },\n content,\n actions: { ...xPadding, paddingBottom: props.customPadding },\n backButton: { top: props.customPadding, paddingLeft: props.customPadding },\n };\n });\n\n // Column layout styles\n const hasColumnLayout = computed(() => props.withColumnLayout && size.value === BentoModalSize.LARGE);\n\n const computedColumnWidth = computed(() => {\n if (props.columnsSize === BentoModalColumnLayoutVariant.SMALLER) {\n return [\n { small: 4, medium: 4, large: 4 },\n { small: 8, medium: 8, large: 8 },\n ];\n }\n if (props.columnsSize === BentoModalColumnLayoutVariant.BIGGER) {\n return [\n { small: 8, medium: 8, large: 8 },\n { small: 4, medium: 4, large: 4 },\n ];\n }\n return [\n { small: 6, medium: 6, large: 6 },\n { small: 6, medium: 6, large: 6 },\n ];\n });\n\n // Register page to parent component and inject data from parent component\n const { activePage, height, isAnimationActive, pageCustomPadding, showCloseButton, size } =\n inject<BentoModalConfigData>(MODAL_CONFIG_INJECTION_KEY);\n\n const isCurrentPage = computed(() => activePage.value === props.pageId || !activePage.value);\n\n // Animation\n // Set resize observer on mount of update the height of the dialog on resize\n let pageElementObserver: ResizeObserver | null = null;\n\n // Watching activePage changes to set the height of the page and set isAnimationActive\n watch(\n () => activePage.value,\n async (value, oldValue) => {\n if (isCurrentPage.value) {\n await nextTick();\n height.value = `${page.value?.$el?.clientHeight}px`;\n pageCustomPadding.value = props.customPadding;\n // only set isAnimationActive to true if its going from two different pages and not from null to the first page\n isAnimationActive.value = oldValue !== undefined;\n\n pageElementObserver = observeSizeOfElement(page.value, () => {\n const pageHeight = `${page.value?.$el?.clientHeight}px`;\n if (pageHeight && pageHeight !== height.value) {\n height.value = pageHeight;\n }\n });\n }\n },\n { immediate: true }\n );\n\n // Disconnect observer on unmounting the page\n onUnmounted(() => {\n pageElementObserver?.disconnect();\n });\n</script>\n\n<script lang=\"ts\">\n /**\n * ModalPage is used to render different pages of the Modal component\n *\n * @example\n * import { BentoModal, BentoModalPage } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoModal, BentoModalPage },\n * template: `\n * <bento-modal active-page='page1' :is-open='true'>\n * <bento-modal-page\n * pageId='page1'\n * actions-label='Move to next page'\n * :actions=\"[\n * {\n * title: 'Next page',\n * event: () => {\n * activePage.value = 'page2';\n * },\n * }]\">\n * Page 1\n * <template #content>\n * Page 1 content\n * </template>\n * </bento-modal-page>\n * <bento-modal-page\n * pageId='page2'\n * :actions=\"[\n * {\n * title: 'Save',\n * event: () => {},\n * }]\">\n * Page 2\n * <template #content>\n * Page 2 content\n * </template>\n * </bento-modal-page>\n * </bento-modal>\n * `\n * }\n */\n export default defineComponent({});\n</script>\n\n<style lang=\"scss\" scoped src=\"./modal-page.scss\" />\n","<template>\n <div class=\"b-modal-base\">\n <dialog\n ref=\"modal\"\n :role=\"modalRole\"\n :aria-label=\"computedAriaLabel\"\n :style=\"{ height: height }\"\n class=\"b-modal-base__container\"\n :class=\"modalConditionalClasses\"\n :open=\"initiallyOpen\"\n @animationend=\"closeModalAfterAnimation\"\n @keydown.esc=\"internalModalActionClose\"\n >\n <bento-focus-trap\n v-if=\"isOpen || initiallyOpen\"\n :id=\"modalId\"\n v-bento-click-outside-directive=\"closeModalOnClickOutside\"\n >\n <bento-button\n v-if=\"showCloseButton\"\n class=\"b-modal-base__close-button\"\n variant=\"tertiary\"\n type=\"button\"\n :style=\"customPaddingStyles\"\n @click=\"internalModalActionClose\"\n >\n <cross-icon :svg-title=\"t('close')\" />\n </bento-button>\n <template v-if=\"props.activePage\">\n <slot />\n </template>\n <bento-modal-page\n v-else\n :with-column-layout=\"withColumnLayout\"\n :size=\"size\"\n :custom-padding=\"customPadding\"\n :columns-size=\"columnsSize\"\n >\n <template v-if=\"hasSlot('default')\" #default>\n <slot></slot>\n </template>\n <template v-if=\"hasSlot('content-col-1')\" #content-col-1\n ><slot name=\"content-col-1\"></slot\n ></template>\n <template v-if=\"hasSlot('content-col-2')\" #content-col-2\n ><slot name=\"content-col-2\"></slot\n ></template>\n <template v-if=\"hasSlot('content')\" #content><slot name=\"content\"></slot></template>\n <template v-if=\"hasSlot('actions')\" #actions><slot name=\"actions\"></slot></template>\n </bento-modal-page>\n </bento-focus-trap>\n </dialog>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import {\n computed,\n defineComponent,\n onMounted,\n PropType,\n provide,\n ref,\n toRefs,\n useAttrs,\n useSlots,\n watch,\n } from 'vue';\n import {\n BentoModalColumnLayoutVariant,\n BentoModalConfigData,\n BentoModalRole,\n BentoModalSize,\n } from '@/components/modal/modal.types';\n import { BentoButton, BentoButtonActionsList } from '@/components/button';\n import { BentoFocusTrap } from '@/components/focus-trap';\n import { useHasSlot } from '@/composables';\n import { useI18n } from '@/utils/ts/i18n';\n import { MODAL_DIALOG_ID_INJECTION_KEY } from '@/components/modal/components/base-modal/base-modal.keys';\n import { generateUid } from '@/core/utils/ts';\n import { BentoClickOutsideDirective as vBentoClickOutsideDirective } from '@/directives/click-outside';\n import messages from './messages.json';\n\n import { BentoModalPage } from '@/components/modal';\n import CrossIcon from '@adyen/ui-assets-icons-16/vue/cross';\n\n import { MODAL_CONFIG_INJECTION_KEY } from '../../modal.keys';\n import {\n BentoDialogPageAnimation,\n BentoDialogPageConfigData,\n BentoDialogPageRegisterPage,\n DIALOG_PAGE_CONFIG_INJECTION_KEY,\n DIALOG_PAGE_REGISTER_PAGE_INJECTION_KEY,\n } from '@/internal';\n\n type MessageSchema = (typeof messages)['en-US'];\n const LOADING_BTN_CLOSE_AFTER_SUCCESS_DELAY_TIME = 500;\n\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n const slots = useSlots();\n const attrs = useAttrs();\n const hasSlot = useHasSlot(slots);\n const modal = ref<HTMLDialogElement>(null);\n const isClosing = ref(false);\n const modalId = generateUid('modal');\n\n const emit = defineEmits([\"update:active-page\", \"close-modal\"]);\n\n const props = defineProps({\n /**\n * List of actions that will be used to render the buttons.\n * First element in the list will be rendered as \"primary\".\n * All elements after the first will be rendered as \"secondary\".\n * But you may change the color of 1-st action to red with 'critial' key\n * Not more than 3 action buttons can be provided\n * Or 2 action buttons and 1 Label for them\n *\n * Each object in the list should have a `title`, an `event` and\n * (optional) a Vue `icon` from the library `@adyen/ui-assets-icons-16`.\n *\n * `title`: Button's text.\n *\n * `event`: Event triggered when clicking the Button.\n *\n * `icon`: Vue Icon from the library `@adyen/ui-assets-icons-16`.\n *\n * ```\n * [{\n * title: 'Primary',2\n * event: () => { ... },\n * icon: FourPeopleIcon\n * }, {\n * title: 'Secondary',\n * event: () => { ... }\n * }]\n * ```\n */\n actions: {\n type: Array as PropType<BentoButtonActionsList>,\n default: null,\n },\n\n /**\n * The id of the current active page\n * Should be the same id as the BentoModalPage to be displayed\n */\n activePage: {\n type: String,\n default: null,\n },\n\n /**\n * If a column layout is provided, it renders the respective left column width variant. This can be smaller than the second column, the same size as the second column or bigger than the second column.\n */\n columnsSize: {\n type: String as PropType<BentoModalColumnLayoutVariant>,\n default: BentoModalColumnLayoutVariant.SMALLER,\n },\n\n /**\n * If provided, manages the padding of the whole modal container\n */\n customPadding: { type: String, default: null },\n\n /**\n * If passed - sets first button color to red\n */\n destructiveActions: { type: Boolean, default: false },\n\n /**\n * Hides a cross icon on the right side of the title\n */\n hideCloseButton: { type: Boolean, required: true },\n\n /**\n * Sets the open attribute on the dialog element, use isOpen instead to toggle modal visbility.\n */\n initiallyOpen: { type: Boolean, default: false },\n\n /**\n * If set to true, it allows the modal to be closed by clicking outside of it\n */\n isDismissible: { type: Boolean, required: true },\n\n /**\n * Controls the modal's state from the outside. Set it to true to open the modal\n */\n isOpen: { type: Boolean, required: true },\n\n /**\n * Defines whether the modal will be an alert modal\n */\n modalRole: { type: String, default: BentoModalRole.DIALOG },\n\n /**\n * Sets the width of the modal\n */\n size: {\n type: String as PropType<BentoModalSize | `${BentoModalSize}`>,\n default: BentoModalSize.SMALL,\n },\n\n /**\n * If provided, renders the modal's content in a two-column layout an wth dividers separating its content\n */\n withColumnLayout: { type: Boolean, default: false },\n });\n\n const showCloseButton = computed(() => props.isDismissible && !props.hideCloseButton);\n\n const pageCustomPadding = ref(props.customPadding);\n\n const customPaddingStyles = computed(() => {\n if (!pageCustomPadding.value) {\n return {};\n }\n\n return { top: pageCustomPadding.value, right: pageCustomPadding.value };\n });\n\n const computedAriaLabel = computed(() => (attrs['aria-label'] as string) ?? (t('ariaLabelFallback') as string));\n const hasColumnLayout = computed(() => props.withColumnLayout && props.size === BentoModalSize.LARGE);\n\n const openModal = (): void => {\n modal.value.showModal();\n };\n\n const emitCloseEvent = (): void => {\n emit('close-modal');\n };\n\n // Handle closing and closing animation for dialog element\n const closeModalAfterAnimation = () => {\n if (isClosing.value) {\n modal.value.close();\n if (previousPages.value[0]) {\n emit('update:active-page', previousPages.value[0]);\n }\n previousPages.value = [];\n isClosing.value = false;\n emitCloseEvent();\n }\n };\n\n const startCloseModalAnimation = () => {\n if (!modal.value.open) {\n return;\n }\n isClosing.value = true;\n };\n\n /**\n * If the user has pressed escape, clicked outside or clicked the close icon.\n * Needs to be called from outside, following the \"dialog.close()\" pattern,\n * when the closing event is triggered outside of the \"base-modal\"\n * component (e.g. from a closing action).\n */\n const internalModalActionClose = (event?: Event) => {\n if (event) {\n event.preventDefault();\n }\n if (!props.isDismissible && props.modalRole === BentoModalRole.DIALOG) {\n return;\n }\n startCloseModalAnimation();\n };\n\n const closeModalOnClickOutside = () => {\n if (props.isDismissible) {\n internalModalActionClose();\n }\n };\n\n const modalConditionalClasses = computed(() => ({\n [`b-modal-base__container--${props.size}`]: props.size,\n 'b-modal-base__container--hide': isClosing.value,\n 'b-modal-base__container--column-layout': hasColumnLayout.value,\n 'b-modal-base__container--animation': isAnimationActive.value,\n }));\n\n watch(\n () => [props.isOpen, modal.value],\n ([newIsOpen, newModalValue], [, oldModalValue]): void => {\n if (!newModalValue) {\n return;\n }\n\n const isFirstMutation = !oldModalValue;\n if (newIsOpen) {\n openModal();\n // add the first page to the array when the modal opens\n if (!previousPages.value.length) {\n previousPages.value.push(activePage.value);\n }\n } else if (!isFirstMutation) {\n startCloseModalAnimation();\n }\n }\n );\n\n // If the first button is a loading button then close the modal have 0.5 seconds\n // if the state is changed to 'success'.\n watch(\n () => props.actions,\n () => {\n if (props.actions?.[0]?.state === 'success') {\n setTimeout(startCloseModalAnimation, LOADING_BTN_CLOSE_AFTER_SUCCESS_DELAY_TIME);\n }\n },\n { deep: true }\n );\n\n onMounted(() => {\n if (props.isOpen && modal.value) {\n openModal();\n }\n });\n\n /**\n * Expose methods through its 'ref'\n */\n defineExpose({\n internalModalActionClose,\n });\n\n // Let's Children components know they are inside a Modal (dialog element)\n provide(MODAL_DIALOG_ID_INJECTION_KEY, modalId);\n\n // Modal pagination\n const { activePage, isOpen, size } = toRefs(props);\n const animation = ref(BentoDialogPageAnimation.TRANSITION_LEVEL_DEEPER);\n\n const pages = ref<string[]>([]);\n const previousPages = ref([]);\n\n const updatePage = page => emit('update:active-page', page);\n\n // unregister page if removed / destroyed\n const unregisterPage = (pageIdToRemove: string) => () => {\n pages.value = pages.value?.filter(pageId => pageId !== pageIdToRemove);\n };\n\n // Provide data and function to register page to subcomponent\n const registerPage: BentoDialogPageRegisterPage = pageId => {\n if (pageId) {\n pages.value.push(pageId);\n }\n\n return { unregisterPage: unregisterPage(pageId) };\n };\n\n const height = ref('');\n const isAnimationActive = ref(false);\n\n provide<BentoModalConfigData>(MODAL_CONFIG_INJECTION_KEY, {\n activePage,\n height,\n isAnimationActive,\n pageCustomPadding,\n showCloseButton,\n size,\n });\n\n provide<BentoDialogPageConfigData>(DIALOG_PAGE_CONFIG_INJECTION_KEY, {\n activePage,\n animation,\n isOpen,\n pages,\n previousPages,\n updatePage,\n });\n\n provide(DIALOG_PAGE_REGISTER_PAGE_INJECTION_KEY, registerPage);\n</script>\n\n<script lang=\"ts\">\n /**\n * Dialog container. It creates a dialog HTML element for the modal to use.\n *\n * @example\n * import BaseModal from './components/base-modal/base-modal.vue';\n *\n * export default {\n * components: { BaseModal },\n * template: `\n * <base-modal\n * :hide-close-button=\"true\"\n * :is-dismissible=\"false\"\n * :is-open=\"isOpen\"\n * @close-modal=\"isOpen = false\"\n * >\n * <template #content-col-1>\n * // Content on the left side column\n * </template>\n *\n * <template #content-col-2>\n * // Content on the right side column\n * </template>\n *\n * <template v-if=\"actions\" #actions>\n * <footer-actions :actions=\"actions\" />\n * </template>\n * </base-modal>\n * `,\n * setup() {\n * const isOpen = ref(true)\n * const footerActions = [{\n * title: 'Primary action',\n * event: () => { ... }\n * }]\n * }\n * }\n */\n export default defineComponent({\n i18n: { messages },\n name: 'base-modal',\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./base-modal.scss\" />\n"],"names":["BentoModalVariant","BentoModalVariant2","BentoModalVariantMapping","BentoModalVariantMapping2","BentoModalSize","BentoModalSize2","BentoModalColumnLayoutVariant","BentoModalColumnLayoutVariant2","BentoModalRole","BentoModalRole2","BentoModalDialogType","BentoModalDialogType2","BentoModalEvent","BentoModalEvent2","MODAL_CONFIG_INJECTION_KEY","__default__$1","defineComponent","CLOSE_BUTTON_ICON_WIDTH","slots","useSlots","hasSlot","useHasSlot","page","ref","modalPageConditionalClasses","computed","props","modalContentConditionalClasses","_a","customPaddingStyles","xPadding","content","hasColumnLayout","size","computedColumnWidth","activePage","height","isAnimationActive","pageCustomPadding","showCloseButton","inject","isCurrentPage","pageElementObserver","watch","value","oldValue","nextTick","_b","observeSizeOfElement","pageHeight","onUnmounted","__default__","messages","LOADING_BTN_CLOSE_AFTER_SUCCESS_DELAY_TIME","t","useI18n","attrs","useAttrs","modal","isClosing","modalId","generateUid","computedAriaLabel","openModal","emitCloseEvent","emit","closeModalAfterAnimation","previousPages","startCloseModalAnimation","internalModalActionClose","event","closeModalOnClickOutside","modalConditionalClasses","newIsOpen","newModalValue","oldModalValue","onMounted","expose","provide","MODAL_DIALOG_ID_INJECTION_KEY","isOpen","toRefs","animation","BentoDialogPageAnimation","pages","updatePage","unregisterPage","pageIdToRemove","pageId","registerPage","DIALOG_PAGE_CONFIG_INJECTION_KEY","DIALOG_PAGE_REGISTER_PAGE_INJECTION_KEY"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"checkbox-input.CMhyJDdo.js","sources":["../../../core/src/components/internal/checkbox-input/checkbox-input.types.ts","../../../ui-assets/icons-16/dist/vue/minus-small.vue","../../src/components/internal/checkbox-input/checkbox-input.vue"],"sourcesContent":["export type MultiCheckboxInputType = Array<string | number>;\nexport type CheckboxInputType = boolean | MultiCheckboxInputType;\n\nexport enum CheckboxInputState {\n UNCHECKED = 'unchecked',\n DISABLED = 'disabled',\n ERROR = 'error',\n READONLY = 'readonly',\n}\n\nexport enum CheckboxInputEvent {\n UPDATE = 'update:model-value',\n}\n\ninterface CheckboxInputGroupItem {\n value: string | number;\n disabled?: boolean;\n hasError?: boolean;\n errorMessage?: string;\n readonly?: boolean;\n}\n\nexport type CheckboxInputGroupItems = Array<CheckboxInputGroupItem>;\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#00112C\" d=\"M4.25 7.25H11.75V8.75H4.25V7.25Z\"/></svg>\n</template>\n<script>\n import '../css/main.css';\n\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n","<template>\n <div class=\"b-checkbox-input\" :class=\"conditionalClasses\">\n <!-- Don't change order because it matters for CSS. Icons first -->\n <minus-small-icon v-if=\"indeterminate\" class=\"b-checkbox-input__icon\" svg-title=\"\" aria-hidden=\"true\" />\n <checkmark-small-icon v-else-if=\"isChecked\" class=\"b-checkbox-input__icon\" svg-title=\"\" aria-hidden=\"true\" />\n <input\n :id=\"id\"\n ref=\"inputRef\"\n v-bind=\"attrs\"\n type=\"checkbox\"\n class=\"b-checkbox-input__outline\"\n :class=\"outlineConditionalClasses\"\n :aria-label=\"ariaLabel\"\n :aria-checked=\"ariaChecked\"\n :aria-describedby=\"ariaDescribedby\"\n :aria-invalid=\"ariaInvalid\"\n :checked=\"isChecked\"\n :disabled=\"disabled\"\n :indeterminate.prop=\"indeterminate\"\n :value=\"value\"\n :aria-readonly=\"readonly\"\n @click=\"onClick\"\n @change=\"onChange\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, HTMLAttributes, PropType, toRefs, useAttrs } from 'vue';\n import {\n CheckboxInputEvent,\n CheckboxInputGroupItems,\n CheckboxInputState,\n CheckboxInputType,\n MultiCheckboxInputType,\n } from '@/core/components/internal/checkbox-input/checkbox-input.types';\n import CheckmarkSmallIcon from '@adyen/ui-assets-icons-16/vue/checkmark-small';\n import MinusSmallIcon from '@adyen/ui-assets-icons-16/vue/minus-small';\n import { isVue3 } from 'vue-demi';\n\n const props = defineProps({\n /**\n * The aria label associated to the input checkbox.\n */\n ariaLabel: { type: String, default: '' },\n\n /**\n * An additional string that serves as description for the input checkbox (useful if the component shows a description).\n */\n ariaDescribedby: { type: String, default: '' },\n\n /**\n * Setting this property to true will disable the checkbox in your form.\n */\n disabled: { type: Boolean, default: false },\n\n /**\n * Setting this property to true will show the checkbox in error state.\n */\n hasError: { type: Boolean, default: false },\n\n /**\n * Sets the id of the checkbox. Required for accessibility purposes\n */\n id: { type: String, default: null },\n\n /**\n * The :indeterminate CSS pseudo-class represents any form element\n * whose state is indeterminate, such as checkboxes which have their HTML indeterminate attribute\n * set to true, radio buttons which are members of a group in which all radio buttons are unchecked,\n * and indeterminate <progress> elements. https://developer.mozilla.org/en-US/docs/Web/CSS/:indeterminate\n * This property lets you control the input.indeterminate native property.\n */\n indeterminate: { type: Boolean, default: false },\n\n /**\n * When handling a single checkbox with a singular state, use a boolean.\n *\n * When handling multiple checkboxes, use an array of keys.\n * These keys exist as a set \"value\" prop for each checkbox.\n */\n modelValue: {\n type: [Boolean, Array] as PropType<CheckboxInputType | CheckboxInputGroupItems>,\n default: false,\n },\n\n /**\n * Setting this property to true will set the checkbox to read only state.\n */\n readonly: { type: Boolean, default: false },\n\n /**\n * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n *\n * In the case of multiple checkboxes this value is used as a unique key.\n */\n value: { type: [String, Number], default: null },\n });\n\n const emit = defineEmits([\"update:model-value\"]);\n\n // filter out style classes because in vue3 they are also part of attrs\n const attrs = computed(() => {\n if (isVue3) {\n const { class: _class, style: _style, ...rest } = useAttrs();\n return rest;\n } else {\n return useAttrs();\n }\n });\n\n const { disabled, indeterminate, modelValue, readonly, value } = toRefs(props);\n\n const conditionalClasses = computed(() => ({\n [`b-checkbox-input--${CheckboxInputState.DISABLED}`]: props.disabled,\n [`b-checkbox-input--${CheckboxInputState.READONLY}`]: props.readonly,\n }));\n\n const outlineConditionalClasses = computed(() => ({\n [`b-checkbox-input__outline--${CheckboxInputState.UNCHECKED}`]: !isChecked.value && !props.indeterminate,\n [`b-checkbox-input__outline--${CheckboxInputState.ERROR}`]: props.hasError,\n [`b-checkbox-input__outline--${CheckboxInputState.READONLY}`]: props.readonly,\n }));\n\n const isCheckboxGroup = computed(() => Array.isArray(modelValue.value));\n\n const isChecked = computed(() => {\n if (!isCheckboxGroup.value) {\n return modelValue.value as boolean;\n }\n\n return (modelValue.value as MultiCheckboxInputType).some(item => item === value.value);\n });\n\n // ARIA fields\n const ariaChecked = computed<HTMLAttributes['aria-checked']>(() =>\n props.indeterminate ? 'mixed' : `${!!isChecked.value}`\n );\n const ariaInvalid = computed<HTMLAttributes['aria-invalid']>(\n () => props.hasError && !props.disabled && !props.readonly\n );\n\n // readonly attr doesn't work with checkbox, so we need to manually ignore the click instead\n const onClick = (event: Event) => {\n if (readonly.value) {\n event.preventDefault();\n return;\n }\n };\n const onChange = (event: Event) => {\n if (disabled.value) {\n return;\n }\n\n const newValue: boolean = (event.target as HTMLInputElement).checked;\n\n if (isCheckboxGroup.value) {\n const newCheckedList = [...(modelValue.value as MultiCheckboxInputType)];\n const index = newCheckedList.indexOf(value.value);\n\n if (index === -1) {\n newCheckedList.push(value.value);\n } else {\n newCheckedList.splice(index, 1);\n }\n emit(CheckboxInputEvent.UPDATE, newCheckedList);\n } else {\n emit(CheckboxInputEvent.UPDATE, newValue);\n }\n };\n</script>\n\n<script lang=\"ts\">\n /**\n * Internal component that renders a checkbox input (without label)\n *\n * @example\n * import { BentoCheckboxInput } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoCheckboxInput },\n * template: `\n * <label for=\"checkbox-id\">Your label</label>\n * <span id=\"description-id\">Description</span>\n * <bento-checkbox-input id=\"checkbox-id\" aria=label=\"Your label\" aria-describedby=\"description-id\" />\n * `\n * }\n */\n export default {\n name: 'checkbox-input',\n inheritAttrs: false,\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"@/core/components/internal/checkbox-input/checkbox-input.scss\" />\n"],"names":["CheckboxInputState","CheckboxInputState2","CheckboxInputEvent","CheckboxInputEvent2","uuid","_sfc_main$1","__default__","attrs","computed","useAttrs","disabled","indeterminate","modelValue","readonly","value","toRefs","props","conditionalClasses","outlineConditionalClasses","isChecked","isCheckboxGroup","item","ariaChecked","ariaInvalid","event","newValue","newCheckedList","index","emit"],"mappings":";;;;;;AAGY,IAAAA,IAAA,kBAAAC,OACRA,EAAA,YAAA,aACAA,EAAA,WAAA,YACAA,EAAA,QAAA,SACAA,EAAA,WAAA,YAJQA,IAAAD,KAAA,CAAA,CAAA,GAOAE,IAAA,kBAAAC,OACRA,EAAA,SAAA,sBADQA,IAAAD,KAAA,CAAA,CAAA;ACHZ,IAAAE,IAAA;AAEA,MAAAC,IAAA;AAAA,EACA,eAAA;AACA,SAAA,OAAAD,EAAA,SAAA,GACAA,KAAA;AAAA,EACA;AACA;;;;;;;;;;;;qBC+KIE,IAAA;AAAA,EAAe,MAAA;AAAA,EACL,cAAA;AAEV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAzFAC,IAAAC,EAAA,MAKQC,EAAA,CACJ,GAGJ,EAAA,UAAAC,GAAA,eAAAC,GAAA,YAAAC,GAAA,UAAAC,GAAA,OAAAC,EAAA,IAAAC,EAAAC,CAAA,GAEAC,IAAAT,EAAA,OAAA;AAAA,MAA2C,CAAA,qBAAAR,EAAA,QAAA,EAAA,GAAAgB,EAAA;AAAA,MACqB,CAAA,qBAAAhB,EAAA,QAAA,EAAA,GAAAgB,EAAA;AAAA,IACA,EAAA,GAGhEE,IAAAV,EAAA,OAAA;AAAA,MAAkD,CAAA,8BAAAR,EAAA,SAAA,EAAA,GAAA,CAAAmB,EAAA,SAAA,CAAAH,EAAA;AAAA,MAC6C,CAAA,8BAAAhB,EAAA,KAAA,EAAA,GAAAgB,EAAA;AAAA,MACzB,CAAA,8BAAAhB,EAAA,QAAA,EAAA,GAAAgB,EAAA;AAAA,IACG,EAAA,GAGzEI,IAAAZ,EAAA,MAAA,MAAA,QAAAI,EAAA,KAAA,CAAA,GAEAO,IAAAX,EAAA,MACIY,EAAA,QAIAR,EAAA,MAAA,KAAA,CAAAS,MAAAA,MAAAP,EAAA,KAAA,IAHIF,EAAA,KAGiF,GAIzFU,IAAAd;AAAA,MAAoB,MAAAQ,EAAA,gBAAA,UAAA,GAAA,CAAA,CAAAG,EAAA,KAAA;AAAA,IACoC,GAExDI,IAAAf;AAAA,MAAoB,MAAAQ,EAAA,YAAA,CAAAA,EAAA,YAAA,CAAAA,EAAA;AAAA,IACkC;0PAItD,CAAAQ,MAAA;AACI,UAAAX,EAAA,OAAA;AACI,QAAAW,EAAA,eAAA;AACA;AAAA,MAAA;AAAA,IACJ,aAEJ,CAAAA,MAAA;AACI,UAAAd,EAAA;AACI;AAGJ,YAAAe,IAAAD,EAAA,OAAA;AAEA,UAAAJ,EAAA,OAAA;AACI,cAAAM,IAAA,CAAA,GAAAd,EAAA,KAAA,GACAe,IAAAD,EAAA,QAAAZ,EAAA,KAAA;AAEA,QAAAa,MAAA,KACID,EAAA,KAAAZ,EAAA,KAAA,IAEAY,EAAA,OAAAC,GAAA,CAAA,GAEJC,EAAA1B,EAAA,QAAAwB,CAAA;AAAA,MAA8C;AAE9C,QAAAE,EAAA1B,EAAA,QAAAuB,CAAA;AAAA,IACJ;;;;;;;;;;;;;;;"}
@@ -1,130 +0,0 @@
1
- import { defineComponent as j, useSlots as U, ref as v, computed as r, inject as B, watch as P, nextTick as E, onUnmounted as F } from "vue";
2
- import { B as J } from "./button.D7K0uXQm.js";
3
- /* empty css */
4
- import { n as O } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
5
- import { u as K } from "./use-has-slot.C9lQZ6nz.js";
6
- import { u as Y } from "./i18n.BQkEbtPM.js";
7
- import { i as z } from "./typography.J1v_SPG3.js";
8
- import "../assets/dialog-page.css";
9
- let N = 0;
10
- const M = {
11
- beforeCreate() {
12
- this.uuid = N.toString(), N += 1;
13
- }
14
- };
15
- var Z = function() {
16
- var e = this, t = e._self._c;
17
- return t("svg", e._b({ staticClass: "ui-assets-icons-16", attrs: { role: "img", xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", fill: "none" } }, "svg", e.$attrs, !1), [e.$attrs["svg-title"] ? t("title", [e._v(e._s(e.$attrs["svg-title"]))]) : e._e(), t("path", { attrs: { fill: "#00112C", d: "M3.80655 7.25434L8.06077 3.00011L7.00011 1.93945L0.939453 8.00011L7.00011 14.0608L8.06077 13.0001L3.81499 8.75433L14.7508 8.74316L14.7492 7.24316L3.80655 7.25434Z" } })]);
18
- }, q = [], Q = /* @__PURE__ */ O(
19
- M,
20
- Z,
21
- q,
22
- !1,
23
- null,
24
- null
25
- );
26
- const W = Q.exports;
27
- var S = /* @__PURE__ */ ((l) => (l.TRANSITION_LEVEL_DEEPER = "b-dialog-page__animation--level-deeper", l.TRANSITION_LEVEL_UPPER = "b-dialog-page__animation--level-upper", l))(S || {});
28
- const X = Symbol("dialog registerPage injection key"), ee = Symbol("dialog page config data injection key"), te = {
29
- "en-US": {
30
- goToPreviousPage: "Go to previous page"
31
- }
32
- }, ae = {
33
- i18n: { messages: te }
34
- }, oe = /* @__PURE__ */ j({
35
- ...ae,
36
- __name: "dialog-page",
37
- props: {
38
- /**
39
- * Identifier of the page, used with activePage prop to handle navigation
40
- */
41
- pageId: {
42
- type: String,
43
- default: void 0
44
- },
45
- /**
46
- * Show header and actions border
47
- */
48
- alwaysShowBorder: {
49
- type: Boolean,
50
- default: !1
51
- },
52
- /**
53
- * Pass custom styling to the back button to position it correctly with the header slot
54
- */
55
- backButtonStyling: { type: Object, default: null },
56
- /**
57
- * ID of the page for the back button to navigate to. Only use it to overwrite the default back behavior
58
- * Used when the back button should not take the user to the natural previous page
59
- * Set to `null` to hide back button in the page
60
- */
61
- previousPage: {
62
- type: String,
63
- default: void 0
64
- }
65
- },
66
- emits: ["animationend"],
67
- setup(l, { emit: e }) {
68
- const t = l, a = U(), b = K(a), { t: R } = Y(), s = v(null), c = v(!1), _ = v(!0), g = v(!1), d = r(() => n.value ? n.value === t.pageId : !0), k = r(() => ({
69
- "b-dialog-page__header--with-border": t.alwaysShowBorder || c.value && !_.value
70
- })), $ = r(() => ({
71
- "b-dialog-page__footer--with-border": t.alwaysShowBorder || c.value && !g.value
72
- })), x = () => {
73
- s.value && (_.value = s.value.scrollTop === 0, g.value = s.value.scrollHeight - s.value.clientHeight === s.value.scrollTop);
74
- }, p = async (i) => {
75
- i && (await E(), c.value = s.value && s.value.scrollHeight > s.value.clientHeight);
76
- }, { activePage: n, animation: f, isAnimationActive: u, isOpen: m, pages: w, previousPages: o, updatePage: I } = B(ee);
77
- P(() => m.value, p, { immediate: !0 }), P(() => d.value, p, { immediate: !0 });
78
- const G = r(() => t.previousPage ? !0 : t.previousPage === null ? !1 : C.value && d.value), D = () => {
79
- f.value = S.TRANSITION_LEVEL_DEEPER, u && (u.value = !1), e("animationend");
80
- }, H = () => {
81
- u && (u.value = !0);
82
- }, C = r(() => o.value.length > 1), h = r(() => o.value[o.value.length - 1]), L = r(() => w.value.some((i) => i === n.value)), V = async (i) => {
83
- if (i) {
84
- const A = o.value.indexOf(i);
85
- A !== -1 ? o.value = o.value.slice(0, A + 1) : o.value = [i];
86
- } else
87
- o.value.pop();
88
- f.value = S.TRANSITION_LEVEL_UPPER, await E(), I(h.value);
89
- };
90
- P(
91
- () => n.value,
92
- async () => {
93
- if (await E(), !!m.value) {
94
- if (n.value && !L.value && z) {
95
- console.error(
96
- `The activePage passed "${n.value}" does not match the id of any of the pages`
97
- );
98
- return;
99
- }
100
- n.value !== h.value && o.value.push(n.value);
101
- }
102
- },
103
- { immediate: !0 }
104
- );
105
- const T = B(X), { unregisterPage: y } = T(t.pageId);
106
- return F(() => y()), { __sfc: !0, props: t, emit: e, slots: a, hasSlot: b, t: R, contentElement: s, hasScroll: c, isScrollAtTop: _, isScrollAtBottom: g, showPage: d, headerConditionalClasses: k, footerConditionalClasses: $, onScroll: x, calculateScroll: p, activePage: n, animation: f, isAnimationActive: u, isOpen: m, pages: w, previousPages: o, updatePage: I, showBackButton: G, updateAnimation: D, startAnimation: H, hasPreviousPages: C, lastPage: h, isActivePageValid: L, goToPreviousPage: V, registerPage: T, unregisterPage: y, BentoButton: J, ArrowLeftIcon: W };
107
- }
108
- });
109
- var se = function() {
110
- var e = this, t = e._self._c, a = e._self._setupProxy;
111
- return t("Transition", { attrs: { name: a.animation, mode: "out-in" }, on: { "after-leave": a.updateAnimation, leave: a.startAnimation } }, [a.isOpen && a.showPage ? t("div", { staticClass: "b-dialog-page" }, [a.hasSlot("header") ? t("div", { staticClass: "b-dialog-page__header", class: a.headerConditionalClasses }, [a.showBackButton ? t("div", { staticClass: "b-dialog-page__back-button", style: e.backButtonStyling, attrs: { "data-testid": "back-button" } }, [t(a.BentoButton, { attrs: { variant: "tertiary" }, on: { click: function(b) {
112
- return a.goToPreviousPage(e.previousPage);
113
- } } }, [t(a.ArrowLeftIcon, { attrs: { "svg-title": a.t("goToPreviousPage") } })], 1)], 1) : e._e(), e._t("header")], 2) : e._e(), a.hasSlot("content") ? t("div", { ref: "contentElement", staticClass: "b-dialog-page__content", on: { scroll: a.onScroll } }, [e._t("content")], 2) : e._e(), a.hasSlot("footer") ? t("div", { staticClass: "b-dialog-page__footer", class: a.footerConditionalClasses }, [e._t("footer")], 2) : e._e()]) : e._e()]);
114
- }, ne = [], le = /* @__PURE__ */ O(
115
- oe,
116
- se,
117
- ne,
118
- !1,
119
- null,
120
- "06db4ab2"
121
- );
122
- const de = le.exports;
123
- export {
124
- W as A,
125
- S as B,
126
- de as D,
127
- X as a,
128
- ee as b
129
- };
130
- //# sourceMappingURL=dialog-page.BveDXzz1.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dialog-page.BveDXzz1.js","sources":["../../../ui-assets/icons-16/dist/vue/arrow-left.vue","../../src/components/internal/dialog-page/dialog-page.types.ts","../../src/components/internal/dialog-page/dialog-page.keys.ts","../../src/components/internal/dialog-page/dialog-page.vue"],"sourcesContent":["\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#00112C\" d=\"M3.80655 7.25434L8.06077 3.00011L7.00011 1.93945L0.939453 8.00011L7.00011 14.0608L8.06077 13.0001L3.81499 8.75433L14.7508 8.74316L14.7492 7.24316L3.80655 7.25434Z\"/></svg>\n</template>\n<script>\n import '../css/main.css';\n\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n","import { Ref } from 'vue';\n\nexport enum BentoDialogPageAnimation {\n TRANSITION_LEVEL_DEEPER = 'b-dialog-page__animation--level-deeper',\n TRANSITION_LEVEL_UPPER = 'b-dialog-page__animation--level-upper',\n}\n\nexport interface BentoDialogPageConfigData {\n activePage: Ref<string>;\n animation: Ref<string>;\n isAnimationActive?: Ref<boolean>;\n isOpen: Ref<boolean>;\n pages: Ref<string[]>;\n previousPages: Ref<string[]>;\n updatePage: (page: string) => void;\n}\n\nexport type BentoDialogPageRegisterPage = (pageId: string) => { unregisterPage: () => void };\n","export const DIALOG_PAGE_REGISTER_PAGE_INJECTION_KEY = Symbol('dialog registerPage injection key');\nexport const DIALOG_PAGE_CONFIG_INJECTION_KEY = Symbol('dialog page config data injection key');\n","<template>\n <Transition :name=\"animation\" mode=\"out-in\" @after-leave=\"updateAnimation\" @leave=\"startAnimation\">\n <div v-if=\"isOpen && showPage\" class=\"b-dialog-page\">\n <div v-if=\"hasSlot('header')\" class=\"b-dialog-page__header\" :class=\"headerConditionalClasses\">\n <div\n v-if=\"showBackButton\"\n class=\"b-dialog-page__back-button\"\n :style=\"backButtonStyling\"\n data-testid=\"back-button\"\n >\n <bento-button variant=\"tertiary\" @click=\"goToPreviousPage(previousPage)\">\n <arrow-left-icon :svg-title=\"t('goToPreviousPage')\" />\n </bento-button>\n </div>\n <slot name=\"header\"></slot>\n </div>\n <div v-if=\"hasSlot('content')\" ref=\"contentElement\" class=\"b-dialog-page__content\" @scroll=\"onScroll\">\n <slot name=\"content\" />\n </div>\n <div v-if=\"hasSlot('footer')\" class=\"b-dialog-page__footer\" :class=\"footerConditionalClasses\">\n <slot name=\"footer\" />\n </div>\n </div>\n </Transition>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, inject, nextTick, onUnmounted, PropType, ref, useSlots, watch } from 'vue';\n\n import { BentoButton } from '@/components/button';\n import ArrowLeftIcon from '@adyen/ui-assets-icons-16/vue/arrow-left';\n\n import { useHasSlot } from '@/composables/use-has-slot/use-has-slot';\n import { useI18n } from '@/utils/ts/i18n';\n import { isDevelopmentEnviroment } from '@/utils/ts/dev-environment';\n\n import {\n BentoDialogPageAnimation,\n BentoDialogPageConfigData,\n BentoDialogPageRegisterPage,\n } from './dialog-page.types';\n import type { CSSProperties } from 'vue/types/jsx.d.ts';\n\n import { DIALOG_PAGE_CONFIG_INJECTION_KEY, DIALOG_PAGE_REGISTER_PAGE_INJECTION_KEY } from './dialog-page.keys';\n\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const props = defineProps({\n /**\n * Identifier of the page, used with activePage prop to handle navigation\n */\n pageId: {\n type: String,\n default: undefined,\n },\n\n /**\n * Show header and actions border\n */\n alwaysShowBorder: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Pass custom styling to the back button to position it correctly with the header slot\n */\n backButtonStyling: { type: Object as PropType<CSSProperties>, default: null },\n\n /**\n * ID of the page for the back button to navigate to. Only use it to overwrite the default back behavior\n * Used when the back button should not take the user to the natural previous page\n * Set to `null` to hide back button in the page\n */\n previousPage: {\n type: String,\n default: undefined,\n },\n });\n\n const emit = defineEmits([\"animationend\"]);\n\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n\n // Refs\n const contentElement = ref<HTMLDivElement>(null);\n const hasScroll = ref(false);\n const isScrollAtTop = ref(true);\n const isScrollAtBottom = ref(false);\n\n // Logic to choose which page is active/shown\n const showPage = computed(() => (activePage.value ? activePage.value === props.pageId : true));\n\n // Scrolling styling logic\n const headerConditionalClasses = computed(() => ({\n 'b-dialog-page__header--with-border': props.alwaysShowBorder || (hasScroll.value && !isScrollAtTop.value),\n }));\n\n const footerConditionalClasses = computed(() => ({\n 'b-dialog-page__footer--with-border': props.alwaysShowBorder || (hasScroll.value && !isScrollAtBottom.value),\n }));\n\n const onScroll = () => {\n if (!contentElement.value) {\n return;\n }\n\n isScrollAtTop.value = contentElement.value.scrollTop === 0;\n isScrollAtBottom.value =\n contentElement.value.scrollHeight - contentElement.value.clientHeight === contentElement.value.scrollTop;\n };\n\n const calculateScroll = async watchedValue => {\n if (!watchedValue) {\n return;\n }\n // Wait for content to be rendered to be able to calculate the height\n await nextTick();\n hasScroll.value = contentElement.value && contentElement.value.scrollHeight > contentElement.value.clientHeight;\n };\n\n const { activePage, animation, isAnimationActive, isOpen, pages, previousPages, updatePage } =\n inject<BentoDialogPageConfigData>(DIALOG_PAGE_CONFIG_INJECTION_KEY);\n\n watch(() => isOpen.value, calculateScroll, { immediate: true });\n watch(() => showPage.value, calculateScroll, { immediate: true });\n\n // Logic to determine whether the back button should be shown on the page\n const showBackButton = computed(() => {\n if (props.previousPage) {\n return true;\n }\n if (props.previousPage === null) {\n return false;\n }\n return hasPreviousPages.value && showPage.value;\n });\n\n // Animation\n const updateAnimation = () => {\n animation.value = BentoDialogPageAnimation.TRANSITION_LEVEL_DEEPER;\n if (isAnimationActive) {\n isAnimationActive.value = false;\n }\n\n emit('animationend');\n };\n\n const startAnimation = () => {\n if (isAnimationActive) {\n isAnimationActive.value = true;\n }\n };\n\n // Previous page logic\n const hasPreviousPages = computed(() => previousPages.value.length > 1);\n const lastPage = computed(() => previousPages.value[previousPages.value.length - 1]);\n const isActivePageValid = computed(() => pages.value.some(page => page === activePage.value));\n\n const goToPreviousPage = async (page: string) => {\n if (page) {\n const index = previousPages.value.indexOf(page);\n if (index !== -1) {\n previousPages.value = previousPages.value.slice(0, index + 1);\n } else {\n previousPages.value = [page];\n }\n } else {\n previousPages.value.pop();\n }\n\n animation.value = BentoDialogPageAnimation.TRANSITION_LEVEL_UPPER;\n await nextTick();\n updatePage(lastPage.value);\n };\n\n // Add new page to the previousPage array to keep track of user navigation\n watch(\n () => activePage.value,\n async () => {\n await nextTick();\n if (!isOpen.value) {\n return;\n }\n\n if (!!activePage.value && !isActivePageValid.value) {\n if (isDevelopmentEnviroment) {\n // eslint-disable-next-line no-console\n console.error(\n `The activePage passed \"${activePage.value}\" does not match the id of any of the pages`\n );\n return;\n }\n }\n\n if (activePage.value !== lastPage.value) {\n previousPages.value.push(activePage.value);\n }\n },\n { immediate: true }\n );\n\n // Register page to parent component and inject data from parent component\n const registerPage = inject<BentoDialogPageRegisterPage>(DIALOG_PAGE_REGISTER_PAGE_INJECTION_KEY);\n const { unregisterPage } = registerPage(props.pageId);\n\n // Unregister page on unmounting the page\n onUnmounted(() => unregisterPage());\n</script>\n\n<script lang=\"ts\">\n /**\n * DialogPage is an internal component used to render different pages of dialog components (Modal, ModalFullscreen and Sidepanel)\n *\n * @example\n * import { DialogPage } from '@/internal';\n *\n * export default {\n * components: { DialogPage },\n * template: `\n * <dialog-page pageId='step1' always-show-border>\n * <template #header>Header</template>\n * <template #content>Content</template>\n * <template #footer>Footer</template>\n * </dialog-page>\n * `\n * }\n */\n export default {\n i18n: { messages },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./dialog-page.scss\" />\n"],"names":["uuid","_sfc_main$1","BentoDialogPageAnimation","BentoDialogPageAnimation2","DIALOG_PAGE_REGISTER_PAGE_INJECTION_KEY","DIALOG_PAGE_CONFIG_INJECTION_KEY","__default__","messages","slots","useSlots","hasSlot","useHasSlot","t","useI18n","contentElement","ref","hasScroll","isScrollAtTop","isScrollAtBottom","showPage","computed","activePage","props","headerConditionalClasses","footerConditionalClasses","onScroll","calculateScroll","watchedValue","nextTick","animation","isAnimationActive","isOpen","pages","previousPages","updatePage","inject","watch","showBackButton","hasPreviousPages","updateAnimation","emit","startAnimation","lastPage","isActivePageValid","page","goToPreviousPage","index","isDevelopmentEnviroment","registerPage","unregisterPage","onUnmounted"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-message.7bsic_sK.js","sources":["../../src/components/internal/field-label/field-label.vue","../../src/components/internal/error-message/error-message.vue"],"sourcesContent":["<template>\n <label class=\"b-field-label\" :class=\"conditionalClasses\">\n <bento-typography el=\"span\" stronger>\n <template v-if=\"label\"> {{ label }}</template>\n <template v-else><slot></slot></template>\n </bento-typography>\n <bento-typography v-if=\"!!tooltipText\" el=\"span\" class=\"b-field-label__tooltip-wrapper\">\n <bento-info-icon :tooltip-text=\"tooltipText\" class=\"b-field-label__tooltip\" />\n </bento-typography>\n <bento-typography v-if=\"required\" class=\"b-field-label__requirement\" el=\"span\"\n >({{ t('required') }})</bento-typography\n >\n <bento-typography v-else-if=\"optional\" class=\"b-field-label__requirement\" el=\"span\"\n >({{ t('optional') }})</bento-typography\n >\n </label>\n</template>\n\n<script setup lang=\"ts\">\n import { BentoInfoIcon } from '@/components/info-icon';\n import { BentoTypography } from '@/components/typography';\n\n import { useI18n } from '@/utils/ts/i18n';\n\n import messages from './messages.json';\n import { computed } from 'vue';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const props = defineProps({\n /**\n * Renders the dropdown with a condensed style.\n */\n condensed: { type: Boolean, default: false },\n /**\n * Field label\n */\n label: {\n type: String,\n default: null,\n },\n /**\n * Sets the field as optional\n */\n optional: {\n type: Boolean,\n default: false,\n },\n /**\n * Sets the field as required\n */\n required: {\n type: Boolean,\n default: false,\n },\n /**\n * Adds a info icon next to the label to display the passed tooltip message.\n */\n tooltipText: {\n type: String,\n default: null,\n },\n });\n\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n\n const conditionalClasses = computed(() => ({ 'b-field-label--condensed': props.condensed }));\n</script>\n\n<script lang=\"ts\">\n /**\n * Internal component to handle the labels for all field components\n\n * @example\n * import { FieldLabel } from '@/components/internal/field-label';\n *\n * export default {\n * components: { FieldLabel },\n * template: `\n * <field-label label=\"Label\" tooltip-text=\"Tooltip info\" required />\n * `\n * }\n */\n export default {\n i18n: { messages },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"@/core/components/internal/field-label/field-label.scss\" />\n","<template>\n <bento-typography :id=\"$attrs.id\" class=\"b-error-message\" el=\"span\" aria-live=\"polite\">\n <div class=\"b-error-message__icon\">\n <cross-circle-icon :svg-title=\"t('error')\" />\n </div>\n {{ errorMessage }}\n </bento-typography>\n</template>\n\n<script setup lang=\"ts\">\n import { BentoTypography } from '@/components/typography';\n import CrossCircleIcon from '@adyen/ui-assets-icons-16/vue/cross-circle-fill';\n import { useI18n } from '@/utils/ts/i18n';\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n /**\n * An error message component should be used whenever it is necessary to add an error message to a component.\n * If adding to a form component, the proper accessibility measures should be taken when necessary\n * (ex. associating an element with this one using aria-describedby).\n\n * @example\n * import { ErrorMessage } from '@/components/internal/error-message';\n *\n * export default {\n * components: { ErrorMessage },\n * template: `\n * <error-message :error-message=\"errorMessage\" />\n * `\n * }\n */\n\n defineProps({\n /**\n * The rendered error message\n */\n errorMessage: {\n type: String,\n required: true,\n },\n });\n\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n</script>\n\n<script lang=\"ts\">\n export default {\n i18n: { messages },\n name: 'error-message',\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"@/core/components/internal/error-message/error-message.scss\" />\n"],"names":["__default__$1","messages$1","t","useI18n","conditionalClasses","computed","props","__default__","messages"],"mappings":";;;;;;;;;;;;;;;;;;;;GAmFIA,IAAA;AAAA,EAAe,MAAA,EAAA,UAAAC,EAAA;AAEf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBArBA,EAAA,GAAAC,EAAA,IAAAC,EAAA,GAEAC,IAAAC,EAAA,OAAA,EAAA,4BAAAC,EAAA,UAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;GCnBAC,IAAA;AAAA,EAAe,MAAA,EAAA,UAAAC,EAAA;AAAA,EACM,MAAA;AAErB;;;;;;;;;;;;AAPA,UAAA,EAAA,GAAAN,EAAA,IAAAC,EAAA;;;;;;;;;;;;;;;;"}