@adyen/bento-vue3 1.83.1 → 1.84.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 (306) hide show
  1. package/dist/@types/index.d.ts +57 -6
  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/ai-button.css +1 -1
  7. package/dist/assets/alert.css +1 -1
  8. package/dist/assets/avatar.css +1 -1
  9. package/dist/assets/base-modal.css +1 -1
  10. package/dist/assets/button-actions-with-menu.css +1 -1
  11. package/dist/assets/button-actions.css +1 -1
  12. package/dist/assets/button.css +1 -1
  13. package/dist/assets/calendar.css +1 -1
  14. package/dist/assets/card.css +1 -1
  15. package/dist/assets/checkbox-group.css +1 -1
  16. package/dist/assets/checkbox-input.css +1 -1
  17. package/dist/assets/checkbox.css +1 -1
  18. package/dist/assets/chip.css +1 -1
  19. package/dist/assets/code-snippet.css +1 -1
  20. package/dist/assets/controls-group.css +1 -1
  21. package/dist/assets/country.css +1 -1
  22. package/dist/assets/currency.css +1 -1
  23. package/dist/assets/dashboard-section.css +1 -1
  24. package/dist/assets/dashed-underline.css +1 -1
  25. package/dist/assets/data-grid-template.css +1 -1
  26. package/dist/assets/data-grid.css +1 -1
  27. package/dist/assets/date-picker.css +1 -1
  28. package/dist/assets/date-range-picker.css +1 -1
  29. package/dist/assets/date.css +1 -1
  30. package/dist/assets/dialog-page.css +1 -1
  31. package/dist/assets/divider.css +1 -1
  32. package/dist/assets/dropdown-default-textbox.css +1 -1
  33. package/dist/assets/dropdown-tag.css +1 -1
  34. package/dist/assets/dropdown.css +1 -1
  35. package/dist/assets/empty-state.css +1 -1
  36. package/dist/assets/field-label.css +1 -1
  37. package/dist/assets/file-uploader.css +1 -1
  38. package/dist/assets/filter-bar.css +1 -1
  39. package/dist/assets/fixed-scroller.css +1 -1
  40. package/dist/assets/footer-actions.css +1 -1
  41. package/dist/assets/form-layout-title.css +1 -1
  42. package/dist/assets/grid-layout.css +1 -1
  43. package/dist/assets/header-meta.css +1 -1
  44. package/dist/assets/header-with-views.css +1 -1
  45. package/dist/assets/header.css +1 -1
  46. package/dist/assets/index.css +1 -1
  47. package/dist/assets/info-icon.css +1 -1
  48. package/dist/assets/input-field-password.css +1 -1
  49. package/dist/assets/input-field.css +1 -1
  50. package/dist/assets/inspector.css +1 -1
  51. package/dist/assets/layout-row.css +1 -1
  52. package/dist/assets/link.css +1 -1
  53. package/dist/assets/listbox-option-tag.css +1 -1
  54. package/dist/assets/loading-indicator.css +1 -1
  55. package/dist/assets/modal-fullscreen.css +1 -1
  56. package/dist/assets/pagination.css +1 -1
  57. package/dist/assets/payment-method.css +1 -1
  58. package/dist/assets/popper-container.css +1 -1
  59. package/dist/assets/promo-banner.css +1 -1
  60. package/dist/assets/radio-group.css +1 -1
  61. package/dist/assets/radio-input.css +1 -1
  62. package/dist/assets/rich-text-editor.css +1 -1
  63. package/dist/assets/secondary-nav.css +1 -1
  64. package/dist/assets/segmented-control.css +1 -1
  65. package/dist/assets/selection-card-group.css +1 -1
  66. package/dist/assets/sidepanel.css +1 -1
  67. package/dist/assets/status.css +1 -1
  68. package/dist/assets/step.css +1 -1
  69. package/dist/assets/structured-list-item.css +1 -1
  70. package/dist/assets/summary-grid.css +1 -1
  71. package/dist/assets/tab.css +1 -1
  72. package/dist/assets/tag.css +1 -1
  73. package/dist/assets/textarea.css +1 -1
  74. package/dist/assets/timeline-item.css +1 -1
  75. package/dist/assets/toast.css +1 -1
  76. package/dist/assets/toggle.css +1 -1
  77. package/dist/assets/tooltip.css +1 -1
  78. package/dist/assets/tutorial.css +1 -1
  79. package/dist/assets/use-cached-selected-values.css +1 -1
  80. package/dist/button.js +1 -1
  81. package/dist/card.js +1 -1
  82. package/dist/checkbox.js +2 -2
  83. package/dist/chunks/{action-bar.D5y9JWnT.js → action-bar.CriH15oF.js} +11 -9
  84. package/dist/chunks/{action-bar.D5y9JWnT.js.map → action-bar.CriH15oF.js.map} +1 -1
  85. package/dist/chunks/{alert.CYaIUaUn.js → alert.BYcw-u3b.js} +48 -40
  86. package/dist/chunks/{alert.CYaIUaUn.js.map → alert.BYcw-u3b.js.map} +1 -1
  87. package/dist/chunks/{base-modal.B8HZItVN.js → base-modal.D3GyeCFT.js} +44 -42
  88. package/dist/chunks/{base-modal.B8HZItVN.js.map → base-modal.D3GyeCFT.js.map} +1 -1
  89. package/dist/chunks/{button-actions-with-menu.LlNWeD3B.js → button-actions-with-menu.B8xFgt-p.js} +2 -2
  90. package/dist/chunks/{button-actions-with-menu.LlNWeD3B.js.map → button-actions-with-menu.B8xFgt-p.js.map} +1 -1
  91. package/dist/chunks/{button-actions.O0cnu1_g.js → button-actions.Crj4QFAd.js} +445 -413
  92. package/dist/chunks/button-actions.Crj4QFAd.js.map +1 -0
  93. package/dist/chunks/calendar.DKPx_cQU.js +1237 -0
  94. package/dist/chunks/calendar.DKPx_cQU.js.map +1 -0
  95. package/dist/chunks/{card.Dqt_BOMI.js → card.C_03IYJe.js} +2 -2
  96. package/dist/chunks/{card.Dqt_BOMI.js.map → card.C_03IYJe.js.map} +1 -1
  97. package/dist/chunks/{checkbox-group.S0FqSg9s.js → checkbox-group.DZrhxIHp.js} +4 -4
  98. package/dist/chunks/{checkbox-group.S0FqSg9s.js.map → checkbox-group.DZrhxIHp.js.map} +1 -1
  99. package/dist/chunks/{checkbox-input.BXNGT9U0.js → checkbox-input.Dk9iFQQe.js} +62 -57
  100. package/dist/chunks/checkbox-input.Dk9iFQQe.js.map +1 -0
  101. package/dist/chunks/{checkbox.B_WaHSop.js → checkbox.BWgWtiLJ.js} +10 -10
  102. package/dist/chunks/{checkbox.B_WaHSop.js.map → checkbox.BWgWtiLJ.js.map} +1 -1
  103. package/dist/chunks/{code-snippet.Bfq5pgmE.js → code-snippet.4HtbNUDE.js} +78 -76
  104. package/dist/chunks/code-snippet.4HtbNUDE.js.map +1 -0
  105. package/dist/chunks/constructNow.DuaJst0D.js +8 -0
  106. package/dist/chunks/{constructNow.BhymNmy5.js.map → constructNow.DuaJst0D.js.map} +1 -1
  107. package/dist/chunks/{controls-group.CdnMYv1j.js → controls-group.DpFv8c4E.js} +2 -2
  108. package/dist/chunks/{controls-group.CdnMYv1j.js.map → controls-group.DpFv8c4E.js.map} +1 -1
  109. package/dist/chunks/{copy.Cg-VyVQ4.js → copy.xg9ElNxd.js} +35 -33
  110. package/dist/chunks/{copy.Cg-VyVQ4.js.map → copy.xg9ElNxd.js.map} +1 -1
  111. package/dist/chunks/country.types.DaVCMxk-.js +773 -0
  112. package/dist/chunks/{country.types.C0Q_hhgJ.js.map → country.types.DaVCMxk-.js.map} +1 -1
  113. package/dist/chunks/{country.CPGT2RsT.js → country.vSfTQW51.js} +2 -2
  114. package/dist/chunks/{country.CPGT2RsT.js.map → country.vSfTQW51.js.map} +1 -1
  115. package/dist/chunks/{dashboard-section.CGS38Swm.js → dashboard-section.D_k3_Z2T.js} +3 -3
  116. package/dist/chunks/{dashboard-section.CGS38Swm.js.map → dashboard-section.D_k3_Z2T.js.map} +1 -1
  117. package/dist/chunks/{dashed-underline.DV3p60Ne.js → dashed-underline.B0z2ZZh7.js} +2 -2
  118. package/dist/chunks/{dashed-underline.DV3p60Ne.js.map → dashed-underline.B0z2ZZh7.js.map} +1 -1
  119. package/dist/chunks/{data-grid-template.D2g9KHSZ.js → data-grid-template.DdIrvOXp.js} +4 -4
  120. package/dist/chunks/{data-grid-template.D2g9KHSZ.js.map → data-grid-template.DdIrvOXp.js.map} +1 -1
  121. package/dist/chunks/{data-grid.BoPfKLRj.js → data-grid.BBkF9ojy.js} +896 -812
  122. package/dist/chunks/{data-grid.BoPfKLRj.js.map → data-grid.BBkF9ojy.js.map} +1 -1
  123. package/dist/chunks/date-input.BbZqj10S.js +15 -0
  124. package/dist/chunks/date-input.BbZqj10S.js.map +1 -0
  125. package/dist/chunks/date-picker.dyp0YK9_.js +249 -0
  126. package/dist/chunks/date-picker.dyp0YK9_.js.map +1 -0
  127. package/dist/chunks/date-range-picker.TsUvRvGy.js +1896 -0
  128. package/dist/chunks/date-range-picker.TsUvRvGy.js.map +1 -0
  129. package/dist/chunks/de.DvtL0g75.js +478 -0
  130. package/dist/chunks/de.DvtL0g75.js.map +1 -0
  131. package/dist/chunks/{dialog-page.CTEyyZ_R.js → dialog-page.DaZSlMzY.js} +23 -17
  132. package/dist/chunks/{dialog-page.CTEyyZ_R.js.map → dialog-page.DaZSlMzY.js.map} +1 -1
  133. package/dist/chunks/differenceInMonths.DcFDl4eH.js +43 -0
  134. package/dist/chunks/differenceInMonths.DcFDl4eH.js.map +1 -0
  135. package/dist/chunks/{dropdown-tag.BWnAPzEN.js → dropdown-tag.DtpDzWl4.js} +4 -4
  136. package/dist/chunks/{dropdown-tag.BWnAPzEN.js.map → dropdown-tag.DtpDzWl4.js.map} +1 -1
  137. package/dist/chunks/{dropdown.CtP9keJ4.js → dropdown.D0_8f9Mz.js} +114 -110
  138. package/dist/chunks/{dropdown.CtP9keJ4.js.map → dropdown.D0_8f9Mz.js.map} +1 -1
  139. package/dist/chunks/en-GB.DCGuCmAv.js +46 -0
  140. package/dist/chunks/en-GB.DCGuCmAv.js.map +1 -0
  141. package/dist/chunks/{getTimezoneOffsetInMilliseconds.B7sxiukN.js → en-US.BZii9jNW.js} +160 -196
  142. package/dist/chunks/en-US.BZii9jNW.js.map +1 -0
  143. package/dist/chunks/es.bz0mzkMq.js +374 -0
  144. package/dist/chunks/es.bz0mzkMq.js.map +1 -0
  145. package/dist/chunks/es6.C1DXQV6f.js +12 -0
  146. package/dist/chunks/es6.C1DXQV6f.js.map +1 -0
  147. package/dist/chunks/{field-label.CfizwLcQ.js → field-label.D7vU2Icm.js} +8 -8
  148. package/dist/chunks/{field-label.CfizwLcQ.js.map → field-label.D7vU2Icm.js.map} +1 -1
  149. package/dist/chunks/{file-uploader.C9qXXyin.js → file-uploader.BmBKLzIx.js} +253 -207
  150. package/dist/chunks/{file-uploader.C9qXXyin.js.map → file-uploader.BmBKLzIx.js.map} +1 -1
  151. package/dist/chunks/filter-bar.D0BEt7ia.js +3363 -0
  152. package/dist/chunks/filter-bar.D0BEt7ia.js.map +1 -0
  153. package/dist/chunks/{fixed-scroller.DCjtCzKy.js → fixed-scroller.e56yJp7Q.js} +52 -44
  154. package/dist/chunks/{fixed-scroller.DCjtCzKy.js.map → fixed-scroller.e56yJp7Q.js.map} +1 -1
  155. package/dist/chunks/{footer-actions.CTCV-SW-.js → footer-actions.BqNvwVk7.js} +2 -2
  156. package/dist/chunks/{footer-actions.CTCV-SW-.js.map → footer-actions.BqNvwVk7.js.map} +1 -1
  157. package/dist/chunks/{form-layout-title.Dvlo-2z_.js → form-layout-title.CPsEzRzS.js} +2 -2
  158. package/dist/chunks/{form-layout-title.Dvlo-2z_.js.map → form-layout-title.CPsEzRzS.js.map} +1 -1
  159. package/dist/chunks/fr-CA.B1aPU8fp.js +48 -0
  160. package/dist/chunks/fr-CA.B1aPU8fp.js.map +1 -0
  161. package/dist/chunks/fr.Dj7wEToe.js +47 -0
  162. package/dist/chunks/fr.Dj7wEToe.js.map +1 -0
  163. package/dist/chunks/getTimezoneOffsetInMilliseconds.C-aIpRfB.js +51 -0
  164. package/dist/chunks/getTimezoneOffsetInMilliseconds.C-aIpRfB.js.map +1 -0
  165. package/dist/chunks/header-meta.PysBmkSU.js +263 -0
  166. package/dist/chunks/header-meta.PysBmkSU.js.map +1 -0
  167. package/dist/chunks/{header-with-views.CHObq1kM.js → header-with-views.BGIZadqh.js} +844 -780
  168. package/dist/chunks/{header-with-views.CHObq1kM.js.map → header-with-views.BGIZadqh.js.map} +1 -1
  169. package/dist/chunks/{header.BMTf9s8L.js → header.yMTOq8MR.js} +3 -3
  170. package/dist/chunks/{header.BMTf9s8L.js.map → header.yMTOq8MR.js.map} +1 -1
  171. package/dist/chunks/{input-field-password.CTdUPz2y.js → input-field-password.DN3ltmAg.js} +101 -95
  172. package/dist/chunks/{input-field-password.CTdUPz2y.js.map → input-field-password.DN3ltmAg.js.map} +1 -1
  173. package/dist/chunks/{input-field-phone-number.Bp57oBMS.js → input-field-phone-number.CouE9QiR.js} +180 -174
  174. package/dist/chunks/{input-field-phone-number.Bp57oBMS.js.map → input-field-phone-number.CouE9QiR.js.map} +1 -1
  175. package/dist/chunks/{input-field.DzNDGqBP.js → input-field.C2SQq0V1.js} +67 -59
  176. package/dist/chunks/{input-field.DzNDGqBP.js.map → input-field.C2SQq0V1.js.map} +1 -1
  177. package/dist/chunks/{inspector.p4ukEAWH.js → inspector.Dox76eqN.js} +41 -35
  178. package/dist/chunks/{inspector.p4ukEAWH.js.map → inspector.Dox76eqN.js.map} +1 -1
  179. package/dist/chunks/isSameWeek.CUD7czUN.js +14 -0
  180. package/dist/chunks/isSameWeek.CUD7czUN.js.map +1 -0
  181. package/dist/chunks/it.Oaj6BklL.js +392 -0
  182. package/dist/chunks/it.Oaj6BklL.js.map +1 -0
  183. package/dist/chunks/ja.Cm9tJMi2.js +367 -0
  184. package/dist/chunks/ja.Cm9tJMi2.js.map +1 -0
  185. package/dist/chunks/ko.Ceaof6EP.js +348 -0
  186. package/dist/chunks/ko.Ceaof6EP.js.map +1 -0
  187. package/dist/chunks/match.CMBZxEs9.js +302 -0
  188. package/dist/chunks/match.CMBZxEs9.js.map +1 -0
  189. package/dist/chunks/{modal-fullscreen.DYDW-zC0.js → modal-fullscreen.BXjxVsAq.js} +3 -3
  190. package/dist/chunks/{modal-fullscreen.DYDW-zC0.js.map → modal-fullscreen.BXjxVsAq.js.map} +1 -1
  191. package/dist/chunks/{modal.vue_vue_type_script_setup_true_lang.DI5HA_3W.js → modal.vue_vue_type_script_setup_true_lang.CRovU08l.js} +4 -4
  192. package/dist/chunks/{modal.vue_vue_type_script_setup_true_lang.DI5HA_3W.js.map → modal.vue_vue_type_script_setup_true_lang.CRovU08l.js.map} +1 -1
  193. package/dist/chunks/nl.B6vCf2B9.js +327 -0
  194. package/dist/chunks/nl.B6vCf2B9.js.map +1 -0
  195. package/dist/chunks/{pagination.0cHVUbmR.js → pagination.Biy7xN75.js} +5 -5
  196. package/dist/chunks/{pagination.0cHVUbmR.js.map → pagination.Biy7xN75.js.map} +1 -1
  197. package/dist/chunks/pt-BR.CiGdfP45.js +380 -0
  198. package/dist/chunks/pt-BR.CiGdfP45.js.map +1 -0
  199. package/dist/chunks/{radio-group.B2JLD8_2.js → radio-group.BqsQRDjs.js} +3 -3
  200. package/dist/chunks/{radio-group.B2JLD8_2.js.map → radio-group.BqsQRDjs.js.map} +1 -1
  201. package/dist/chunks/{rich-text-editor.Dw01KOhU.js → rich-text-editor.Bafyvjc3.js} +4 -4
  202. package/dist/chunks/{rich-text-editor.Dw01KOhU.js.map → rich-text-editor.Bafyvjc3.js.map} +1 -1
  203. package/dist/chunks/{search-bar.fCnPv83a.js → search-bar.BF8M5OSY.js} +3 -3
  204. package/dist/chunks/{search-bar.fCnPv83a.js.map → search-bar.BF8M5OSY.js.map} +1 -1
  205. package/dist/chunks/secondary-nav.D2lBMjqY.js +144 -0
  206. package/dist/chunks/{secondary-nav.D1y_GiqG.js.map → secondary-nav.D2lBMjqY.js.map} +1 -1
  207. package/dist/chunks/{selection-card-group.CPSDSz7m.js → selection-card-group.DNPlEqEq.js} +5 -5
  208. package/dist/chunks/{selection-card-group.CPSDSz7m.js.map → selection-card-group.DNPlEqEq.js.map} +1 -1
  209. package/dist/chunks/{sidepanel.1WPpJp8O.js → sidepanel.RJihFo_R.js} +4 -4
  210. package/dist/chunks/{sidepanel.1WPpJp8O.js.map → sidepanel.RJihFo_R.js.map} +1 -1
  211. package/dist/chunks/startOfWeek.Dxw2MhGp.js +10 -0
  212. package/dist/chunks/startOfWeek.Dxw2MhGp.js.map +1 -0
  213. package/dist/chunks/step.DpgnDx29.js +271 -0
  214. package/dist/chunks/step.DpgnDx29.js.map +1 -0
  215. package/dist/chunks/{structured-list-item.C4Fnc7sX.js → structured-list-item.B-hdp7rW.js} +2 -2
  216. package/dist/chunks/{structured-list-item.C4Fnc7sX.js.map → structured-list-item.B-hdp7rW.js.map} +1 -1
  217. package/dist/chunks/{summary-grid.types.CbROj1cf.js → summary-grid.types.BVLRSBAF.js} +3 -3
  218. package/dist/chunks/{summary-grid.types.CbROj1cf.js.map → summary-grid.types.BVLRSBAF.js.map} +1 -1
  219. package/dist/chunks/sv.f8EfZjMZ.js +377 -0
  220. package/dist/chunks/sv.f8EfZjMZ.js.map +1 -0
  221. package/dist/chunks/{tab.C-kmkQiE.js → tab.JPngc9oS.js} +2 -2
  222. package/dist/chunks/{tab.C-kmkQiE.js.map → tab.JPngc9oS.js.map} +1 -1
  223. package/dist/chunks/{textarea.C0tLoH2I.js → textarea.CEDkF8BB.js} +45 -45
  224. package/dist/chunks/textarea.CEDkF8BB.js.map +1 -0
  225. package/dist/chunks/{timeline-item.-IGN2sbj.js → timeline-item.BxGaSGLf.js} +14 -13
  226. package/dist/chunks/{timeline-item.-IGN2sbj.js.map → timeline-item.BxGaSGLf.js.map} +1 -1
  227. package/dist/chunks/{tutorial.vue_vue_type_script_setup_true_lang.BGbo_qv_.js → tutorial.vue_vue_type_script_setup_true_lang.CEfCLTsD.js} +2 -2
  228. package/dist/chunks/{tutorial.vue_vue_type_script_setup_true_lang.BGbo_qv_.js.map → tutorial.vue_vue_type_script_setup_true_lang.CEfCLTsD.js.map} +1 -1
  229. package/dist/chunks/{use-cached-selected-values.u6wcYuin.js → use-cached-selected-values.BZIa5TRx.js} +97 -88
  230. package/dist/chunks/{use-cached-selected-values.u6wcYuin.js.map → use-cached-selected-values.BZIa5TRx.js.map} +1 -1
  231. package/dist/chunks/{use-country-items.Dzbl2UsO.js → use-country-items.JZCYNoW7.js} +2 -2
  232. package/dist/chunks/{use-country-items.Dzbl2UsO.js.map → use-country-items.JZCYNoW7.js.map} +1 -1
  233. package/dist/chunks/zh-CN.BzH0fIXr.js +389 -0
  234. package/dist/chunks/zh-CN.BzH0fIXr.js.map +1 -0
  235. package/dist/code-snippet.js +1 -1
  236. package/dist/country.js +2 -2
  237. package/dist/dashboard-template.js +1 -1
  238. package/dist/dashed-underline.js +1 -1
  239. package/dist/data-grid-template.js +1 -1
  240. package/dist/data-grid.js +1 -1
  241. package/dist/date-picker.js +2 -2
  242. package/dist/date-range-picker.js +2 -2
  243. package/dist/dropdown.js +3 -3
  244. package/dist/file-uploader.js +1 -1
  245. package/dist/filter-bar.js +1 -1
  246. package/dist/form-layout.js +1 -1
  247. package/dist/header-with-views.js +1 -1
  248. package/dist/header.js +1 -1
  249. package/dist/index.js +248 -249
  250. package/dist/index.js.map +1 -1
  251. package/dist/input-field-password.js +1 -1
  252. package/dist/input-field-phone-number.js +1 -1
  253. package/dist/input-field.js +1 -1
  254. package/dist/inspector.js +1 -1
  255. package/dist/internal.js +10 -10
  256. package/dist/menu.js +1 -1
  257. package/dist/modal-fullscreen.js +1 -1
  258. package/dist/modal.js +2 -2
  259. package/dist/pagination.js +1 -1
  260. package/dist/popover.js +1 -1
  261. package/dist/radio-group.js +1 -1
  262. package/dist/rich-text-editor.js +1 -1
  263. package/dist/search-bar.js +2 -2
  264. package/dist/secondary-nav.js +1 -1
  265. package/dist/selection-card.js +1 -1
  266. package/dist/sidepanel.js +1 -1
  267. package/dist/stepper.js +1 -1
  268. package/dist/structured-list.js +1 -1
  269. package/dist/styles/bento-dark.css +0 -1829
  270. package/dist/styles/bento-light.css +0 -1829
  271. package/dist/styles/bento.css +0 -1829
  272. package/dist/styles/legacy.css +0 -1829
  273. package/dist/styles/styleguide.css +0 -1829
  274. package/dist/summary-grid.js +1 -1
  275. package/dist/tabs.js +1 -1
  276. package/dist/textarea.js +1 -1
  277. package/dist/timeline.js +1 -1
  278. package/dist/tutorial.js +1 -1
  279. package/dist/web-types.json +1 -1
  280. package/package.json +7 -7
  281. package/dist/chunks/button-actions.O0cnu1_g.js.map +0 -1
  282. package/dist/chunks/calendar.NVmCgJrJ.js +0 -1962
  283. package/dist/chunks/calendar.NVmCgJrJ.js.map +0 -1
  284. package/dist/chunks/checkbox-input.BXNGT9U0.js.map +0 -1
  285. package/dist/chunks/code-snippet.Bfq5pgmE.js.map +0 -1
  286. package/dist/chunks/constructNow.BhymNmy5.js +0 -8
  287. package/dist/chunks/country.types.C0Q_hhgJ.js +0 -269
  288. package/dist/chunks/date-format.B8RU7D42.js +0 -17
  289. package/dist/chunks/date-format.B8RU7D42.js.map +0 -1
  290. package/dist/chunks/date-picker.BIdfeL7b.js +0 -245
  291. package/dist/chunks/date-picker.BIdfeL7b.js.map +0 -1
  292. package/dist/chunks/date-range-picker.BT3I5M44.js +0 -1109
  293. package/dist/chunks/date-range-picker.BT3I5M44.js.map +0 -1
  294. package/dist/chunks/differenceInMonths.Cab3nOsb.js +0 -1590
  295. package/dist/chunks/differenceInMonths.Cab3nOsb.js.map +0 -1
  296. package/dist/chunks/es6.MoTTyETW.js +0 -12
  297. package/dist/chunks/es6.MoTTyETW.js.map +0 -1
  298. package/dist/chunks/filter-bar.DB87uMbx.js +0 -3211
  299. package/dist/chunks/filter-bar.DB87uMbx.js.map +0 -1
  300. package/dist/chunks/getTimezoneOffsetInMilliseconds.B7sxiukN.js.map +0 -1
  301. package/dist/chunks/header-meta.C2W1eMZc.js +0 -221
  302. package/dist/chunks/header-meta.C2W1eMZc.js.map +0 -1
  303. package/dist/chunks/secondary-nav.D1y_GiqG.js +0 -138
  304. package/dist/chunks/step._8f9kwI5.js +0 -267
  305. package/dist/chunks/step._8f9kwI5.js.map +0 -1
  306. package/dist/chunks/textarea.C0tLoH2I.js.map +0 -1
@@ -1,41 +1,43 @@
1
- import { defineComponent as $, useSlots as ee, ref as g, computed as d, inject as ce, watch as Y, nextTick as re, onUnmounted as me, createBlock as P, openBlock as A, normalizeClass as J, createSlots as te, withCtx as l, createElementVNode as L, normalizeStyle as O, createCommentVNode as w, unref as t, renderSlot as c, createVNode as j, useAttrs as ge, toRefs as ve, onMounted as pe, provide as G, createElementBlock as fe, withKeys as _e, withDirectives as ye } from "vue";
1
+ import { defineComponent as $, useSlots as ee, ref as g, computed as d, inject as ce, watch as Y, nextTick as re, onUnmounted as me, createBlock as P, openBlock as A, normalizeClass as J, createSlots as te, withCtx as l, createElementVNode as h, normalizeStyle as O, createCommentVNode as w, unref as t, renderSlot as c, createVNode as j, useAttrs as ge, toRefs as ve, onMounted as pe, provide as G, createElementBlock as fe, withKeys as _e, withDirectives as ye } from "vue";
2
2
  import { B as be } from "./button.CSp48LJt.js";
3
- import { B as he } from "./focus-trap.BaHvK7aT.js";
3
+ import { B as Le } from "./focus-trap.BaHvK7aT.js";
4
4
  import { u as ae } from "./use-has-slot.B7eQSabc.js";
5
- import { u as Le } from "./index.pdBj0KQU.js";
6
- import { j as Ae } from "./button-actions.O0cnu1_g.js";
5
+ import { u as he } from "./index.pdBj0KQU.js";
6
+ import { j as Ae } from "./button-actions.Crj4QFAd.js";
7
7
  import { g as Ce } from "./generate-uid.NJ8tVoha.js";
8
8
  import { B as Ee } from "./directive.Cbdox5VL.js";
9
9
  import { C as Ie } from "./cross.B92GxFTY.js";
10
- import { D as Oe, B as Pe, b as Se, a as De } from "./dialog-page.CTEyyZ_R.js";
10
+ import { D as Oe, B as Pe, b as Se, a as ke } from "./dialog-page.DaZSlMzY.js";
11
11
  import { B as x } from "./typography.6Oo5TOMP.js";
12
- import { F as ke } from "./footer-actions.CTCV-SW-.js";
12
+ import { F as De } from "./footer-actions.BqNvwVk7.js";
13
13
  import { o as Be } from "./resize.Bqks3WUm.js";
14
14
  import { G as Te, a as Ne } from "./grid-layout.DDaRNz4-.js";
15
15
  import { _ as oe } from "./_plugin-vue_export-helper.CHgC5LLL.js";
16
16
  import "../assets/base-modal.css";
17
- var Ge = /* @__PURE__ */ ((e) => (e.DEFAULT = "default", e.DIALOG = "dialog", e))(Ge || {}), we = /* @__PURE__ */ ((e) => (e.DEFAULT = "BentoModalDefault", e.DIALOG = "BentoModalDialog", e))(we || {}), R = /* @__PURE__ */ ((e) => (e.SMALL = "small", e.MEDIUM = "medium", e.LARGE = "large", e))(R || {}), k = /* @__PURE__ */ ((e) => (e.SMALLER = "smaller", e.EQUAL = "equal", e.BIGGER = "bigger", e))(k || {}), q = /* @__PURE__ */ ((e) => (e.DIALOG = "dialog", e.ALERT_DIALOG = "alertdialog", e))(q || {}), Re = /* @__PURE__ */ ((e) => (e.CONFIRMATION = "confirmation", e.DESTRUCTIVE = "destructive", e.INFO = "info", e.ACKNOWLEDGEMENT = "acknowledgement", e))(Re || {}), $e = /* @__PURE__ */ ((e) => (e.CLOSE_MODAL = "close-modal", e))($e || {});
17
+ var Ge = /* @__PURE__ */ ((e) => (e.DEFAULT = "default", e.DIALOG = "dialog", e))(Ge || {}), we = /* @__PURE__ */ ((e) => (e.DEFAULT = "BentoModalDefault", e.DIALOG = "BentoModalDialog", e))(we || {}), R = /* @__PURE__ */ ((e) => (e.SMALL = "small", e.MEDIUM = "medium", e.LARGE = "large", e))(R || {}), D = /* @__PURE__ */ ((e) => (e.SMALLER = "smaller", e.EQUAL = "equal", e.BIGGER = "bigger", e))(D || {}), q = /* @__PURE__ */ ((e) => (e.DIALOG = "dialog", e.ALERT_DIALOG = "alertdialog", e))(q || {}), Re = /* @__PURE__ */ ((e) => (e.CONFIRMATION = "confirmation", e.DESTRUCTIVE = "destructive", e.INFO = "info", e.ACKNOWLEDGEMENT = "acknowledgement", e))(Re || {}), $e = /* @__PURE__ */ ((e) => (e.CLOSE_MODAL = "close-modal", e))($e || {});
18
18
  const ne = {
19
19
  "en-US": {
20
20
  ariaLabelFallback: "modal",
21
21
  close: "Close"
22
22
  },
23
23
  "ja-JP": {
24
+ ariaLabelFallback: "モーダル",
24
25
  close: "閉じる"
25
26
  },
26
27
  "pt-BR": {
28
+ ariaLabelFallback: "modal",
27
29
  close: "Fechar"
28
30
  }
29
- }, se = /* @__PURE__ */ Symbol("modal config data injection key"), Me = { class: "b-modal-page__header" }, ze = {
31
+ }, se = /* @__PURE__ */ Symbol("modal config data injection key"), Fe = { class: "b-modal-page__header" }, Me = {
30
32
  "aria-label": "modal actions",
31
33
  class: "b-modal-page__actions"
32
- }, Fe = $({}), Ue = /* @__PURE__ */ $({
33
- ...Fe,
34
+ }, ze = $({}), Ue = /* @__PURE__ */ $({
35
+ ...ze,
34
36
  __name: "modal-page",
35
37
  props: {
36
38
  actions: { default: null },
37
39
  actionsLabel: { default: null },
38
- columnsSize: { default: k.SMALLER },
40
+ columnsSize: { default: D.SMALLER },
39
41
  customPadding: { default: null },
40
42
  destructiveActions: { type: Boolean, default: !1 },
41
43
  withColumnLayout: { type: Boolean, default: !1 },
@@ -43,7 +45,7 @@ const ne = {
43
45
  previousPage: { default: void 0 }
44
46
  },
45
47
  setup(e) {
46
- const M = ee(), u = ae(M), f = g(null), s = e, z = d(() => ({
48
+ const F = ee(), u = ae(F), f = g(null), s = e, M = d(() => ({
47
49
  "b-modal-page--custom-padding": s.customPadding
48
50
  })), _ = d(() => {
49
51
  var a;
@@ -69,36 +71,36 @@ const ne = {
69
71
  actions: { ...a, paddingBottom: s.customPadding },
70
72
  backButton: { top: s.customPadding, paddingLeft: s.customPadding }
71
73
  };
72
- }), y = d(() => s.withColumnLayout && U.value === R.LARGE), B = d(() => s.columnsSize === k.SMALLER ? [
74
+ }), y = d(() => s.withColumnLayout && U.value === R.LARGE), B = d(() => s.columnsSize === D.SMALLER ? [
73
75
  { small: 4, medium: 4, large: 4 },
74
76
  { small: 8, medium: 8, large: 8 }
75
- ] : s.columnsSize === k.BIGGER ? [
77
+ ] : s.columnsSize === D.BIGGER ? [
76
78
  { small: 8, medium: 8, large: 8 },
77
79
  { small: 4, medium: 4, large: 4 }
78
80
  ] : [
79
81
  { small: 6, medium: 6, large: 6 },
80
82
  { small: 6, medium: 6, large: 6 }
81
- ]), { activePage: b, height: n, isAnimationActive: S, pageCustomPadding: C, showCloseButton: F, size: U } = ce(se), K = d(() => b.value === s.pageId || !b.value);
82
- let h = null;
83
+ ]), { activePage: b, height: n, isAnimationActive: S, pageCustomPadding: C, showCloseButton: z, size: U } = ce(se), K = d(() => b.value === s.pageId || !b.value);
84
+ let L = null;
83
85
  return Y(
84
86
  () => b.value,
85
87
  async (a, r) => {
86
88
  var m, v;
87
- K.value && (await re(), n.value = `${(v = (m = f.value) == null ? void 0 : m.$el) == null ? void 0 : v.clientHeight}px`, C.value = s.customPadding, S.value = r !== void 0, h = Be(f.value, () => {
89
+ K.value && (await re(), n.value = `${(v = (m = f.value) == null ? void 0 : m.$el) == null ? void 0 : v.clientHeight}px`, C.value = s.customPadding, S.value = r !== void 0, L = Be(f.value, () => {
88
90
  var T, E;
89
- const D = `${(E = (T = f.value) == null ? void 0 : T.$el) == null ? void 0 : E.clientHeight}px`;
90
- D && D !== n.value && (n.value = D);
91
+ const k = `${(E = (T = f.value) == null ? void 0 : T.$el) == null ? void 0 : E.clientHeight}px`;
92
+ k && k !== n.value && (n.value = k);
91
93
  }));
92
94
  },
93
95
  { immediate: !0 }
94
96
  ), me(() => {
95
- h == null || h.disconnect();
97
+ L == null || L.disconnect();
96
98
  }), (a, r) => {
97
99
  var m;
98
100
  return A(), P(Oe, {
99
101
  ref_key: "page",
100
102
  ref: f,
101
- class: J(["b-modal-page", z.value]),
103
+ class: J(["b-modal-page", M.value]),
102
104
  "page-id": a.pageId,
103
105
  "always-show-border": y.value,
104
106
  "back-button-styling": (m = i.value) == null ? void 0 : m.backButton,
@@ -106,7 +108,7 @@ const ne = {
106
108
  onAnimationend: r[0] || (r[0] = (v) => S.value = !1)
107
109
  }, te({
108
110
  content: l(() => [
109
- L("div", {
111
+ h("div", {
110
112
  class: J(["b-modal-page__content", _.value]),
111
113
  style: O(i.value.content)
112
114
  }, [
@@ -137,14 +139,14 @@ const ne = {
137
139
  ]),
138
140
  _: 2
139
141
  }, [
140
- t(u)("default") || t(F) ? {
142
+ t(u)("default") || t(z) ? {
141
143
  name: "header",
142
144
  fn: l(() => [
143
- L("div", {
145
+ h("div", {
144
146
  class: "b-modal-page__header-container",
145
147
  style: O(i.value.header)
146
148
  }, [
147
- L("div", Me, [
149
+ h("div", Fe, [
148
150
  j(t(x), {
149
151
  class: "b-modal-page__title",
150
152
  el: "span",
@@ -164,11 +166,11 @@ const ne = {
164
166
  t(u)("actions") ? {
165
167
  name: "footer",
166
168
  fn: l(() => [
167
- L("div", {
169
+ h("div", {
168
170
  class: "b-modal-page__actions-container",
169
171
  style: O(i.value.actions)
170
172
  }, [
171
- L("div", ze, [
173
+ h("div", Me, [
172
174
  c(a.$slots, "actions", {}, void 0, !0)
173
175
  ])
174
176
  ], 4)
@@ -177,11 +179,11 @@ const ne = {
177
179
  } : a.actions && a.actions.length > 0 ? {
178
180
  name: "footer",
179
181
  fn: l(() => [
180
- L("div", {
182
+ h("div", {
181
183
  class: "b-modal-page__actions-container",
182
184
  style: O(i.value.actions)
183
185
  }, [
184
- j(t(ke), {
186
+ j(t(De), {
185
187
  actions: a.actions,
186
188
  "actions-label": a.actionsLabel,
187
189
  "destructive-actions": a.destructiveActions
@@ -244,7 +246,7 @@ const ne = {
244
246
  */
245
247
  columnsSize: {
246
248
  type: String,
247
- default: k.SMALLER
249
+ default: D.SMALLER
248
250
  },
249
251
  /**
250
252
  * If provided, manages the padding of the whole modal container
@@ -287,8 +289,8 @@ const ne = {
287
289
  withColumnLayout: { type: Boolean, default: !1 }
288
290
  },
289
291
  emits: ["update:active-page", "close-modal"],
290
- setup(e, { expose: W, emit: M }) {
291
- const { t: f } = Le({ messages: ne }), s = ee(), z = ge(), _ = ae(s), i = g(null), y = g(!1), B = Ce("modal"), b = M, n = e, S = d(() => n.isDismissible && !n.hideCloseButton), C = g(n.customPadding), F = d(() => C.value ? { top: C.value, right: C.value } : {}), U = d(() => z["aria-label"] ?? f("ariaLabelFallback")), K = d(() => n.withColumnLayout && n.size === R.LARGE), h = () => {
292
+ setup(e, { expose: W, emit: F }) {
293
+ const { t: f } = he({ messages: ne }), s = ee(), M = ge(), _ = ae(s), i = g(null), y = g(!1), B = Ce("modal"), b = F, n = e, S = d(() => n.isDismissible && !n.hideCloseButton), C = g(n.customPadding), z = d(() => C.value ? { top: C.value, right: C.value } : {}), U = d(() => M["aria-label"] ?? f("ariaLabelFallback")), K = d(() => n.withColumnLayout && n.size === R.LARGE), L = () => {
292
294
  i.value.showModal();
293
295
  }, a = () => {
294
296
  b("close-modal");
@@ -298,7 +300,7 @@ const ne = {
298
300
  i.value.open && (y.value = !0);
299
301
  }, v = (o) => {
300
302
  o && o.preventDefault(), !(!n.isDismissible && n.modalRole === q.DIALOG) && m();
301
- }, D = () => {
303
+ }, k = () => {
302
304
  n.isDismissible && v();
303
305
  }, T = d(() => ({
304
306
  [`b-modal-base__container--${n.size}`]: n.size,
@@ -311,7 +313,7 @@ const ne = {
311
313
  ([o, p], [, H]) => {
312
314
  if (!p)
313
315
  return;
314
- o ? (h(), I.value.length || I.value.push(E.value)) : !H || m();
316
+ o ? (L(), I.value.length || I.value.push(E.value)) : !H || m();
315
317
  }
316
318
  ), Y(
317
319
  () => n.actions,
@@ -321,7 +323,7 @@ const ne = {
321
323
  },
322
324
  { deep: !0 }
323
325
  ), pe(() => {
324
- n.isOpen && i.value && h();
326
+ n.isOpen && i.value && L();
325
327
  }), W({
326
328
  internalModalActionClose: v
327
329
  }), G(Ae, B);
@@ -343,8 +345,8 @@ const ne = {
343
345
  pages: N,
344
346
  previousPages: I,
345
347
  updatePage: ie
346
- }), G(De, de), (o, p) => (A(), fe("div", He, [
347
- L("dialog", {
348
+ }), G(ke, de), (o, p) => (A(), fe("div", He, [
349
+ h("dialog", {
348
350
  ref_key: "modal",
349
351
  ref: i,
350
352
  role: e.modalRole,
@@ -355,7 +357,7 @@ const ne = {
355
357
  onAnimationend: r,
356
358
  onKeydown: _e(v, ["esc"])
357
359
  }, [
358
- t(Q) || e.initiallyOpen ? ye((A(), P(t(he), {
360
+ t(Q) || e.initiallyOpen ? ye((A(), P(t(Le), {
359
361
  key: 0,
360
362
  id: t(B)
361
363
  }, {
@@ -365,7 +367,7 @@ const ne = {
365
367
  class: "b-modal-base__close-button",
366
368
  variant: "tertiary",
367
369
  type: "button",
368
- style: O(F.value),
370
+ style: O(z.value),
369
371
  onClick: v
370
372
  }, {
371
373
  default: l(() => [
@@ -421,7 +423,7 @@ const ne = {
421
423
  ]),
422
424
  _: 3
423
425
  }, 8, ["id"])), [
424
- [t(Ee), D]
426
+ [t(Ee), k]
425
427
  ]) : w("", !0)
426
428
  ], 46, Ye)
427
429
  ]));
@@ -431,11 +433,11 @@ export {
431
433
  Ge as B,
432
434
  we as a,
433
435
  R as b,
434
- k as c,
436
+ D as c,
435
437
  q as d,
436
438
  Re as e,
437
439
  $e as f,
438
440
  Ke as g,
439
441
  dt as h
440
442
  };
441
- //# sourceMappingURL=base-modal.B8HZItVN.js.map
443
+ //# sourceMappingURL=base-modal.D3GyeCFT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-modal.B8HZItVN.js","sources":["../../../vue2/src/components/modal/modal.types.ts","../../../vue2/src/components/modal/modal.keys.ts","../../../vue2/src/components/modal/components/modal-page/modal-page.vue","../../../vue2/src/components/modal/components/base-modal/base-modal.vue"],"sourcesContent":["import { type ComputedRef, type 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 class=\"b-modal-page__title\" el=\"span\" variant=\"title\" stronger>\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, ref, useSlots, watch } from 'vue';\n import {\n BentoModalColumnLayoutVariant,\n type BentoModalConfigData,\n BentoModalSize,\n } from '@/components/modal/modal.types';\n import { BentoTypography } from '@/components/typography';\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 import type { BentoModalPageProps } from './modal-page.types';\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 = withDefaults(defineProps<BentoModalPageProps>(), {\n actions: null,\n actionsLabel: null,\n columnsSize: BentoModalColumnLayoutVariant.SMALLER,\n customPadding: null,\n destructiveActions: false,\n withColumnLayout: false,\n pageId: undefined,\n previousPage: undefined,\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 type PropType,\n provide,\n ref,\n toRefs,\n useAttrs,\n useSlots,\n watch,\n } from 'vue';\n import {\n BentoModalColumnLayoutVariant,\n type BentoModalConfigData,\n BentoModalRole,\n BentoModalSize,\n } from '@/components/modal/modal.types';\n import { BentoButton, type 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/components/modal-page';\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 type BentoDialogPageConfigData,\n type 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<{\n /**\n * Emits update event when page is changed internally\n */\n (e: 'update:active-page', page: string): void;\n /**\n * Emitted when the modal is closed.\n */\n (e: 'close-modal');\n }>();\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<Array<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","slots","useSlots","hasSlot","useHasSlot","page","ref","props","__props","modalPageConditionalClasses","computed","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","t","useI18n","attrs","useAttrs","modal","isClosing","modalId","generateUid","emit","__emit","computedAriaLabel","openModal","emitCloseEvent","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
+ {"version":3,"file":"base-modal.D3GyeCFT.js","sources":["../../../vue2/src/components/modal/modal.types.ts","../../../vue2/src/components/modal/modal.keys.ts","../../../vue2/src/components/modal/components/modal-page/modal-page.vue","../../../vue2/src/components/modal/components/base-modal/base-modal.vue"],"sourcesContent":["import { type ComputedRef, type 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 class=\"b-modal-page__title\" el=\"span\" variant=\"title\" stronger>\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, ref, useSlots, watch } from 'vue';\n import {\n BentoModalColumnLayoutVariant,\n type BentoModalConfigData,\n BentoModalSize,\n } from '@/components/modal/modal.types';\n import { BentoTypography } from '@/components/typography';\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 import type { BentoModalPageProps } from './modal-page.types';\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 = withDefaults(defineProps<BentoModalPageProps>(), {\n actions: null,\n actionsLabel: null,\n columnsSize: BentoModalColumnLayoutVariant.SMALLER,\n customPadding: null,\n destructiveActions: false,\n withColumnLayout: false,\n pageId: undefined,\n previousPage: undefined,\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 type PropType,\n provide,\n ref,\n toRefs,\n useAttrs,\n useSlots,\n watch,\n } from 'vue';\n import {\n BentoModalColumnLayoutVariant,\n type BentoModalConfigData,\n BentoModalRole,\n BentoModalSize,\n } from '@/components/modal/modal.types';\n import { BentoButton, type 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/components/modal-page';\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 type BentoDialogPageConfigData,\n type 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<{\n /**\n * Emits update event when page is changed internally\n */\n (e: 'update:active-page', page: string): void;\n /**\n * Emitted when the modal is closed.\n */\n (e: 'close-modal');\n }>();\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<Array<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","slots","useSlots","hasSlot","useHasSlot","page","ref","props","__props","modalPageConditionalClasses","computed","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","t","useI18n","attrs","useAttrs","modal","isClosing","modalId","generateUid","emit","__emit","computedAriaLabel","openModal","emitCloseEvent","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,5 +1,5 @@
1
1
  import { ref as v, watch as h, nextTick as m, defineComponent as w, toRef as b, computed as p, provide as A, createElementBlock as B, openBlock as y, createElementVNode as N, normalizeClass as k, createVNode as E, createBlock as T, createCommentVNode as C, unref as I } from "vue";
2
- import { M as W, e as M, B as R, f as g } from "./button-actions.O0cnu1_g.js";
2
+ import { M as W, e as M, B as R, f as g } from "./button-actions.Crj4QFAd.js";
3
3
  import { u as O } from "./index.E60QniEu.js";
4
4
  import { _ as L } from "./_plugin-vue_export-helper.CHgC5LLL.js";
5
5
  import "../assets/button-actions-with-menu.css";
@@ -90,4 +90,4 @@ const S = (f) => {
90
90
  export {
91
91
  J as B
92
92
  };
93
- //# sourceMappingURL=button-actions-with-menu.LlNWeD3B.js.map
93
+ //# sourceMappingURL=button-actions-with-menu.B8xFgt-p.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"button-actions-with-menu.LlNWeD3B.js","sources":["../../../vue2/src/components/internal/button-actions-with-menu/composables/use-responsive-actions.ts","../../../vue2/src/components/internal/button-actions-with-menu/button-actions-with-menu.vue"],"sourcesContent":["import { useWindowSize } from '@vueuse/core';\nimport { nextTick, ref, type Ref, watch } from 'vue';\n\ninterface UseResponsiveActionsProps {\n breakpoint?: number;\n container: Ref<HTMLElement>;\n defaultActionsCount: Ref<number>;\n offset?: Ref<HTMLElement>;\n}\n\nexport const useResponsiveActions = (props: UseResponsiveActionsProps) => {\n const { breakpoint, container, defaultActionsCount, offset } = props;\n\n const { width: windowWidth } = useWindowSize();\n\n const displayedActionsCount = ref(defaultActionsCount.value);\n\n const AVERAGE_BUTTON_WIDTH = 150; // button size + gap\n\n const showActions = async () => {\n await nextTick();\n\n const availableSpace = container.value.clientWidth;\n const totalActionWidth =\n AVERAGE_BUTTON_WIDTH * displayedActionsCount.value +\n (offset?.value?.offsetWidth ?? 0) +\n AVERAGE_BUTTON_WIDTH;\n\n // Only add actions if there's enough space and we haven't reached max\n if (availableSpace >= totalActionWidth && displayedActionsCount.value < defaultActionsCount.value) {\n displayedActionsCount.value += 1;\n\n await showActions(); // keep trying to show more\n }\n };\n\n const hideActions = async () => {\n await nextTick();\n\n const availableSpace = container.value.clientWidth;\n const totalActionWidth = AVERAGE_BUTTON_WIDTH * displayedActionsCount.value + (offset?.value?.offsetWidth ?? 0);\n\n // Hide actions if they overflow the container\n if (availableSpace < totalActionWidth && displayedActionsCount.value > 0) {\n displayedActionsCount.value -= 1;\n\n await hideActions(); // keep hiding until it fits\n }\n };\n\n watch([windowWidth, container], async ([newWidth, containerEl], [oldWidth]) => {\n if (!containerEl || !defaultActionsCount || newWidth > breakpoint) {\n return;\n }\n\n await nextTick();\n\n const isIncreasing = newWidth > oldWidth;\n\n if (isIncreasing) {\n await showActions();\n } else {\n await hideActions();\n }\n });\n\n watch(defaultActionsCount, async count => {\n displayedActionsCount.value = count;\n\n if (breakpoint && windowWidth.value <= breakpoint && container.value) {\n await hideActions();\n }\n });\n\n return {\n displayedActionsCount,\n };\n};\n","<template>\n <div class=\"b-button-actions-with-menu\">\n <div\n ref=\"buttonActionsWithMenu\"\n role=\"group\"\n class=\"b-button-actions-with-menu__container-wrapper\"\n :class=\"conditionalClasses\"\n >\n <bento-button-actions :actions=\"computedActions\" :inverse=\"inverse\" :layout=\"actionsLayout\" />\n <bento-menu\n v-if=\"computedMenuActions.length\"\n ref=\"menu\"\n :data=\"computedMenuActions\"\n :menu-position=\"menuPosition\"\n />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { BentoButtonActions } from '@/components/button';\n import { type BentoMenuItem } from '@/components/menu/components/menu-item/menu-item.types';\n import { MENU_INVERSE_INJECTION_KEY } from '@/components/menu/menu.keys';\n import BentoMenu from '@/components/menu/menu.vue';\n import { computed, provide, ref, toRef } from 'vue';\n import { BUTTON_ACTIONS_WITH_MENU_CONTAINER_INJECTION_KEY } from './button-actions-with-menu.keys';\n import { type ButtonActionsWithMenuProps } from './button-actions-with-menu.types';\n import { useResponsiveActions } from './composables/use-responsive-actions';\n\n const props = withDefaults(defineProps<ButtonActionsWithMenuProps>(), {\n actionsLayout: 'buttons-end',\n disableResponsiveBehavior: false,\n displayedActions: undefined,\n inverse: false,\n hideDisplayedActionsBreakpoint: 0,\n menuPosition: 'bottom-start',\n });\n\n const inverseRef = toRef(props, 'inverse');\n const buttonActionsWithMenu = ref<HTMLDivElement>(null);\n const menu = ref(null);\n const stackButtons = ref(false);\n\n const computedActions = computed(() => {\n const displayedActionsLimit = props.hideDisplayedActionsBreakpoint\n ? displayedActionsCount.value\n : props.displayedActions;\n\n return props.actions.slice(0, displayedActionsLimit);\n });\n const computedMenuRef = computed(() => menu?.value?.$el);\n\n const { displayedActionsCount } = useResponsiveActions({\n breakpoint: props.hideDisplayedActionsBreakpoint,\n container: buttonActionsWithMenu,\n defaultActionsCount: toRef(props, 'displayedActions'),\n offset: computedMenuRef,\n });\n\n provide(MENU_INVERSE_INJECTION_KEY, inverseRef);\n\n if (!props.disableResponsiveBehavior) {\n provide(BUTTON_ACTIONS_WITH_MENU_CONTAINER_INJECTION_KEY, { buttonActionsWithMenu, menu, stackButtons });\n }\n\n const conditionalClasses = computed(() => ({\n [`b-button-actions-with-menu__container-wrapper--buttons-end`]: props.actionsLayout === 'buttons-end',\n [`b-button-actions-with-menu__container-wrapper--buttons-start`]: props.actionsLayout === 'buttons-start',\n [`b-button-actions-with-menu__container-wrapper--stacked-buttons`]: stackButtons.value,\n }));\n\n const computedMenuActions = computed(() => {\n if (displayedActionsCount.value === undefined || displayedActionsCount.value >= props.actions.length) {\n return [];\n }\n\n const actionsToProcess = props.actions.slice(displayedActionsCount.value, props.actions.length);\n\n return actionsToProcess.flatMap<BentoMenuItem>(action => {\n if (!action.data) {\n return {\n text: action.title,\n handler: () => action.event?.({} as Event),\n icon: action.icon,\n critical: action.critical,\n disabled: action.disabled,\n };\n }\n\n return action.data;\n });\n });\n</script>\n\n<script lang=\"ts\">\n /**\n * An internal button actions component with the option to display some of the actions in a menu.\n *\n * @example\n * <button-actions-with-menu\n * :actions=\"[\n * {\n * title: 'Primary',\n * event: () => { ... },\n * icon: FourPeopleIcon,\n * link: {\n * variant: 'default',\n * external: true,\n * to: 'https://www.adyen.com/'\n * },\n * },\n * {\n * title: 'Secondary',\n * event: () => { ... }\n * disabled: true,\n * variant: BentoButtonVariant.PRIMARY,\n * critical: true\n * }]\"\n * :displayedActions=\"2\"\n * />\n */\n export default {};\n</script>\n\n<style lang=\"scss\" scoped src=\"./button-actions-with-menu.scss\" />\n"],"names":["useResponsiveActions","props","breakpoint","container","defaultActionsCount","offset","windowWidth","useWindowSize","displayedActionsCount","ref","AVERAGE_BUTTON_WIDTH","showActions","nextTick","availableSpace","totalActionWidth","_a","hideActions","watch","newWidth","containerEl","oldWidth","count","__default__","__props","inverseRef","toRef","buttonActionsWithMenu","menu","stackButtons","computedActions","computed","displayedActionsLimit","computedMenuRef","provide","MENU_INVERSE_INJECTION_KEY","BUTTON_ACTIONS_WITH_MENU_CONTAINER_INJECTION_KEY","conditionalClasses","computedMenuActions","action"],"mappings":"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"}
1
+ {"version":3,"file":"button-actions-with-menu.B8xFgt-p.js","sources":["../../../vue2/src/components/internal/button-actions-with-menu/composables/use-responsive-actions.ts","../../../vue2/src/components/internal/button-actions-with-menu/button-actions-with-menu.vue"],"sourcesContent":["import { useWindowSize } from '@vueuse/core';\nimport { nextTick, ref, type Ref, watch } from 'vue';\n\ninterface UseResponsiveActionsProps {\n breakpoint?: number;\n container: Ref<HTMLElement>;\n defaultActionsCount: Ref<number>;\n offset?: Ref<HTMLElement>;\n}\n\nexport const useResponsiveActions = (props: UseResponsiveActionsProps) => {\n const { breakpoint, container, defaultActionsCount, offset } = props;\n\n const { width: windowWidth } = useWindowSize();\n\n const displayedActionsCount = ref(defaultActionsCount.value);\n\n const AVERAGE_BUTTON_WIDTH = 150; // button size + gap\n\n const showActions = async () => {\n await nextTick();\n\n const availableSpace = container.value.clientWidth;\n const totalActionWidth =\n AVERAGE_BUTTON_WIDTH * displayedActionsCount.value +\n (offset?.value?.offsetWidth ?? 0) +\n AVERAGE_BUTTON_WIDTH;\n\n // Only add actions if there's enough space and we haven't reached max\n if (availableSpace >= totalActionWidth && displayedActionsCount.value < defaultActionsCount.value) {\n displayedActionsCount.value += 1;\n\n await showActions(); // keep trying to show more\n }\n };\n\n const hideActions = async () => {\n await nextTick();\n\n const availableSpace = container.value.clientWidth;\n const totalActionWidth = AVERAGE_BUTTON_WIDTH * displayedActionsCount.value + (offset?.value?.offsetWidth ?? 0);\n\n // Hide actions if they overflow the container\n if (availableSpace < totalActionWidth && displayedActionsCount.value > 0) {\n displayedActionsCount.value -= 1;\n\n await hideActions(); // keep hiding until it fits\n }\n };\n\n watch([windowWidth, container], async ([newWidth, containerEl], [oldWidth]) => {\n if (!containerEl || !defaultActionsCount || newWidth > breakpoint) {\n return;\n }\n\n await nextTick();\n\n const isIncreasing = newWidth > oldWidth;\n\n if (isIncreasing) {\n await showActions();\n } else {\n await hideActions();\n }\n });\n\n watch(defaultActionsCount, async count => {\n displayedActionsCount.value = count;\n\n if (breakpoint && windowWidth.value <= breakpoint && container.value) {\n await hideActions();\n }\n });\n\n return {\n displayedActionsCount,\n };\n};\n","<template>\n <div class=\"b-button-actions-with-menu\">\n <div\n ref=\"buttonActionsWithMenu\"\n role=\"group\"\n class=\"b-button-actions-with-menu__container-wrapper\"\n :class=\"conditionalClasses\"\n >\n <bento-button-actions :actions=\"computedActions\" :inverse=\"inverse\" :layout=\"actionsLayout\" />\n <bento-menu\n v-if=\"computedMenuActions.length\"\n ref=\"menu\"\n :data=\"computedMenuActions\"\n :menu-position=\"menuPosition\"\n />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { BentoButtonActions } from '@/components/button';\n import { type BentoMenuItem } from '@/components/menu/components/menu-item/menu-item.types';\n import { MENU_INVERSE_INJECTION_KEY } from '@/components/menu/menu.keys';\n import BentoMenu from '@/components/menu/menu.vue';\n import { computed, provide, ref, toRef } from 'vue';\n import { BUTTON_ACTIONS_WITH_MENU_CONTAINER_INJECTION_KEY } from './button-actions-with-menu.keys';\n import { type ButtonActionsWithMenuProps } from './button-actions-with-menu.types';\n import { useResponsiveActions } from './composables/use-responsive-actions';\n\n const props = withDefaults(defineProps<ButtonActionsWithMenuProps>(), {\n actionsLayout: 'buttons-end',\n disableResponsiveBehavior: false,\n displayedActions: undefined,\n inverse: false,\n hideDisplayedActionsBreakpoint: 0,\n menuPosition: 'bottom-start',\n });\n\n const inverseRef = toRef(props, 'inverse');\n const buttonActionsWithMenu = ref<HTMLDivElement>(null);\n const menu = ref(null);\n const stackButtons = ref(false);\n\n const computedActions = computed(() => {\n const displayedActionsLimit = props.hideDisplayedActionsBreakpoint\n ? displayedActionsCount.value\n : props.displayedActions;\n\n return props.actions.slice(0, displayedActionsLimit);\n });\n const computedMenuRef = computed(() => menu?.value?.$el);\n\n const { displayedActionsCount } = useResponsiveActions({\n breakpoint: props.hideDisplayedActionsBreakpoint,\n container: buttonActionsWithMenu,\n defaultActionsCount: toRef(props, 'displayedActions'),\n offset: computedMenuRef,\n });\n\n provide(MENU_INVERSE_INJECTION_KEY, inverseRef);\n\n if (!props.disableResponsiveBehavior) {\n provide(BUTTON_ACTIONS_WITH_MENU_CONTAINER_INJECTION_KEY, { buttonActionsWithMenu, menu, stackButtons });\n }\n\n const conditionalClasses = computed(() => ({\n [`b-button-actions-with-menu__container-wrapper--buttons-end`]: props.actionsLayout === 'buttons-end',\n [`b-button-actions-with-menu__container-wrapper--buttons-start`]: props.actionsLayout === 'buttons-start',\n [`b-button-actions-with-menu__container-wrapper--stacked-buttons`]: stackButtons.value,\n }));\n\n const computedMenuActions = computed(() => {\n if (displayedActionsCount.value === undefined || displayedActionsCount.value >= props.actions.length) {\n return [];\n }\n\n const actionsToProcess = props.actions.slice(displayedActionsCount.value, props.actions.length);\n\n return actionsToProcess.flatMap<BentoMenuItem>(action => {\n if (!action.data) {\n return {\n text: action.title,\n handler: () => action.event?.({} as Event),\n icon: action.icon,\n critical: action.critical,\n disabled: action.disabled,\n };\n }\n\n return action.data;\n });\n });\n</script>\n\n<script lang=\"ts\">\n /**\n * An internal button actions component with the option to display some of the actions in a menu.\n *\n * @example\n * <button-actions-with-menu\n * :actions=\"[\n * {\n * title: 'Primary',\n * event: () => { ... },\n * icon: FourPeopleIcon,\n * link: {\n * variant: 'default',\n * external: true,\n * to: 'https://www.adyen.com/'\n * },\n * },\n * {\n * title: 'Secondary',\n * event: () => { ... }\n * disabled: true,\n * variant: BentoButtonVariant.PRIMARY,\n * critical: true\n * }]\"\n * :displayedActions=\"2\"\n * />\n */\n export default {};\n</script>\n\n<style lang=\"scss\" scoped src=\"./button-actions-with-menu.scss\" />\n"],"names":["useResponsiveActions","props","breakpoint","container","defaultActionsCount","offset","windowWidth","useWindowSize","displayedActionsCount","ref","AVERAGE_BUTTON_WIDTH","showActions","nextTick","availableSpace","totalActionWidth","_a","hideActions","watch","newWidth","containerEl","oldWidth","count","__default__","__props","inverseRef","toRef","buttonActionsWithMenu","menu","stackButtons","computedActions","computed","displayedActionsLimit","computedMenuRef","provide","MENU_INVERSE_INJECTION_KEY","BUTTON_ACTIONS_WITH_MENU_CONTAINER_INJECTION_KEY","conditionalClasses","computedMenuActions","action"],"mappings":"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"}