@adyen/bento-vue2 2.0.0-rc.6 → 2.0.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 (304) hide show
  1. package/README.md +0 -38
  2. package/dist/@types/index.d.ts +78 -34
  3. package/dist/accordion.js +1 -1
  4. package/dist/action-bar.js +1 -1
  5. package/dist/ai-tag.js +1 -1
  6. package/dist/alert.js +1 -1
  7. package/dist/anchor-scroller.js +1 -1
  8. package/dist/assets/accordion-item.css +1 -1
  9. package/dist/assets/action-bar.css +1 -1
  10. package/dist/assets/ai-tag.css +1 -1
  11. package/dist/assets/anchor-scroller.css +1 -1
  12. package/dist/assets/base-modal.css +1 -1
  13. package/dist/assets/button-actions.css +1 -1
  14. package/dist/assets/calendar.css +1 -1
  15. package/dist/assets/card.css +1 -1
  16. package/dist/assets/checkbox-group.css +1 -1
  17. package/dist/assets/checkbox.css +1 -1
  18. package/dist/assets/data-grid-template.css +1 -1
  19. package/dist/assets/data-grid.css +1 -1
  20. package/dist/assets/date-picker.css +1 -1
  21. package/dist/assets/date-range-picker.css +1 -1
  22. package/dist/assets/dialog-page.css +1 -1
  23. package/dist/assets/dropdown.css +1 -1
  24. package/dist/assets/file-uploader.css +1 -1
  25. package/dist/assets/filter-bar.css +1 -1
  26. package/dist/assets/header-with-views.css +1 -1
  27. package/dist/assets/info-icon-with-popover.css +1 -1
  28. package/dist/assets/input-field-password.css +1 -1
  29. package/dist/assets/input-field.css +1 -1
  30. package/dist/assets/inspector.css +1 -1
  31. package/dist/assets/link.css +1 -1
  32. package/dist/assets/modal-fullscreen.css +1 -1
  33. package/dist/assets/navigation-menu-group.css +1 -1
  34. package/dist/assets/pagination.css +1 -1
  35. package/dist/assets/progress-bar.css +1 -1
  36. package/dist/assets/promo-banner.css +1 -1
  37. package/dist/assets/radio-group.css +1 -1
  38. package/dist/assets/rich-text-editor.css +1 -1
  39. package/dist/assets/secondary-nav.css +1 -1
  40. package/dist/assets/segmented-control.css +1 -1
  41. package/dist/assets/selection-card-group.css +1 -1
  42. package/dist/assets/sidepanel.css +1 -1
  43. package/dist/assets/tab.css +1 -1
  44. package/dist/assets/table-of-contents.css +1 -1
  45. package/dist/assets/tag.css +1 -1
  46. package/dist/assets/textarea.css +1 -1
  47. package/dist/assets/timeline-item.css +1 -1
  48. package/dist/assets/toggle.css +1 -1
  49. package/dist/button.js +3 -3
  50. package/dist/card.js +1 -1
  51. package/dist/checkbox.js +2 -2
  52. package/dist/chip.js +1 -1
  53. package/dist/chunks/{accordion-item.V3zpgTzM.js → accordion-item.DOj7vqeL.js} +2 -2
  54. package/dist/chunks/accordion-item.DOj7vqeL.js.map +1 -0
  55. package/dist/chunks/{action-bar.BhS26IWQ.js → action-bar.BsXW7BI2.js} +77 -67
  56. package/dist/chunks/action-bar.BsXW7BI2.js.map +1 -0
  57. package/dist/chunks/{ai-button.CeT3y12R.js → ai-button.BnFk5CzK.js} +2 -2
  58. package/dist/chunks/{ai-button.CeT3y12R.js.map → ai-button.BnFk5CzK.js.map} +1 -1
  59. package/dist/chunks/{ai-tag.C72E0L5z.js → ai-tag.D2Q0xhFK.js} +3 -3
  60. package/dist/chunks/ai-tag.D2Q0xhFK.js.map +1 -0
  61. package/dist/chunks/{alert.DrGpzkQI.js → alert.DJDHwVeR.js} +2 -2
  62. package/dist/chunks/{alert.DrGpzkQI.js.map → alert.DJDHwVeR.js.map} +1 -1
  63. package/dist/chunks/{anchor-scroller.DT7QZd5b.js → anchor-scroller.BbvghQxZ.js} +8 -8
  64. package/dist/chunks/anchor-scroller.BbvghQxZ.js.map +1 -0
  65. package/dist/chunks/{base-button.edpjvY15.js → base-button.DOhHyU7x.js} +2 -2
  66. package/dist/chunks/{base-button.edpjvY15.js.map → base-button.DOhHyU7x.js.map} +1 -1
  67. package/dist/chunks/{base-modal.BXDCTPAM.js → base-modal.CcmoTJdc.js} +90 -82
  68. package/dist/chunks/base-modal.CcmoTJdc.js.map +1 -0
  69. package/dist/chunks/{button-actions-with-menu.CgInFpmT.js → button-actions-with-menu.BY394ars.js} +2 -2
  70. package/dist/chunks/{button-actions-with-menu.CgInFpmT.js.map → button-actions-with-menu.BY394ars.js.map} +1 -1
  71. package/dist/chunks/{button-actions.DdAWQn3c.js → button-actions.bkcLUE1G.js} +5 -5
  72. package/dist/chunks/{button-actions.DdAWQn3c.js.map → button-actions.bkcLUE1G.js.map} +1 -1
  73. package/dist/chunks/{button.CBqJGWy5.js → button.DII5Ifwa.js} +2 -2
  74. package/dist/chunks/{button.CBqJGWy5.js.map → button.DII5Ifwa.js.map} +1 -1
  75. package/dist/chunks/{calendar.Avy_89bW.js → calendar.CXdLEeN4.js} +5 -5
  76. package/dist/chunks/calendar.CXdLEeN4.js.map +1 -0
  77. package/dist/chunks/{card.C-e-dnNE.js → card.b9PEJ7hm.js} +57 -49
  78. package/dist/chunks/card.b9PEJ7hm.js.map +1 -0
  79. package/dist/chunks/{checkbox-group.DKSC-XM9.js → checkbox-group.UYN1ljai.js} +6 -6
  80. package/dist/chunks/checkbox-group.UYN1ljai.js.map +1 -0
  81. package/dist/chunks/{checkbox.CZM7Q3Zi.js → checkbox.Co4HoHKF.js} +15 -15
  82. package/dist/chunks/checkbox.Co4HoHKF.js.map +1 -0
  83. package/dist/chunks/{chip.CCBRXSGa.js → chip.DRsJylWl.js} +2 -2
  84. package/dist/chunks/{chip.CCBRXSGa.js.map → chip.DRsJylWl.js.map} +1 -1
  85. package/dist/chunks/{code-snippet.Dius_4s_.js → code-snippet.CnThWqVb.js} +5 -5
  86. package/dist/chunks/{code-snippet.Dius_4s_.js.map → code-snippet.CnThWqVb.js.map} +1 -1
  87. package/dist/chunks/{copy.CXHEw5S0.js → copy.CSk1rCRo.js} +2 -2
  88. package/dist/chunks/{copy.CXHEw5S0.js.map → copy.CSk1rCRo.js.map} +1 -1
  89. package/dist/chunks/{cross-circle-fill-small.Doaiq7Wx.js → cross-circle-fill-small.CZN966bc.js} +2 -2
  90. package/dist/chunks/cross-circle-fill-small.CZN966bc.js.map +1 -0
  91. package/dist/chunks/{dashboard-section.MA5pmdOu.js → dashboard-section.CYEoNH9Q.js} +3 -3
  92. package/dist/chunks/{dashboard-section.MA5pmdOu.js.map → dashboard-section.CYEoNH9Q.js.map} +1 -1
  93. package/dist/chunks/{dashed-underline.B7PRJBq4.js → dashed-underline.CzKc-fJW.js} +2 -2
  94. package/dist/chunks/{dashed-underline.B7PRJBq4.js.map → dashed-underline.CzKc-fJW.js.map} +1 -1
  95. package/dist/chunks/{data-grid-template.BEM5__ib.js → data-grid-template.DCwzh2G7.js} +4 -4
  96. package/dist/chunks/{data-grid-template.BEM5__ib.js.map → data-grid-template.DCwzh2G7.js.map} +1 -1
  97. package/dist/chunks/{data-grid.B9Htvwxc.js → data-grid.B1lI07ze.js} +19 -19
  98. package/dist/chunks/data-grid.B1lI07ze.js.map +1 -0
  99. package/dist/chunks/{date-picker.CnRL1L1b.js → date-picker.gDsw8bn1.js} +7 -7
  100. package/dist/chunks/date-picker.gDsw8bn1.js.map +1 -0
  101. package/dist/chunks/{date-range-picker.ucOMFCrT.js → date-range-picker.CqixIJxG.js} +10 -10
  102. package/dist/chunks/{date-range-picker.ucOMFCrT.js.map → date-range-picker.CqixIJxG.js.map} +1 -1
  103. package/dist/chunks/{date-time-picker.DvEpFiBu.js → date-time-picker.Bktntun4.js} +5 -5
  104. package/dist/chunks/{date-time-picker.DvEpFiBu.js.map → date-time-picker.Bktntun4.js.map} +1 -1
  105. package/dist/chunks/{dialog-page.CEVl-RI4.js → dialog-page.Bct3zOQO.js} +2 -2
  106. package/dist/chunks/{dialog-page.CEVl-RI4.js.map → dialog-page.Bct3zOQO.js.map} +1 -1
  107. package/dist/chunks/{draggable-handle.CJ2udN5Z.js → draggable-handle.DgVdGC1V.js} +2 -2
  108. package/dist/chunks/{draggable-handle.CJ2udN5Z.js.map → draggable-handle.DgVdGC1V.js.map} +1 -1
  109. package/dist/chunks/{draggable.D9_-DZ-l.js → draggable.DYKdXdbj.js} +2 -2
  110. package/dist/chunks/{draggable.D9_-DZ-l.js.map → draggable.DYKdXdbj.js.map} +1 -1
  111. package/dist/chunks/{dropdown-tag.BEzzqw23.js → dropdown-tag.Dk7SooVv.js} +3 -3
  112. package/dist/chunks/{dropdown-tag.BEzzqw23.js.map → dropdown-tag.Dk7SooVv.js.map} +1 -1
  113. package/dist/chunks/{dropdown.Bkl-FGT4.js → dropdown.Bnq4kP7k.js} +9 -9
  114. package/dist/chunks/dropdown.Bnq4kP7k.js.map +1 -0
  115. package/dist/chunks/{empty-state.CCnSOrRQ.js → empty-state.C2wjdE3y.js} +3 -3
  116. package/dist/chunks/{empty-state.CCnSOrRQ.js.map → empty-state.C2wjdE3y.js.map} +1 -1
  117. package/dist/chunks/es6.yPcTMnSH.js.map +1 -1
  118. package/dist/chunks/{file-uploader.BRedpY0J.js → file-uploader.DllKBmP8.js} +6 -6
  119. package/dist/chunks/file-uploader.DllKBmP8.js.map +1 -0
  120. package/dist/chunks/{filter-bar.Di-vepKR.js → filter-bar.DXpLhnxG.js} +572 -591
  121. package/dist/chunks/filter-bar.DXpLhnxG.js.map +1 -0
  122. package/dist/chunks/{fixed-scroller.QHqymN36.js → fixed-scroller.YC4bZifw.js} +2 -2
  123. package/dist/chunks/{fixed-scroller.QHqymN36.js.map → fixed-scroller.YC4bZifw.js.map} +1 -1
  124. package/dist/chunks/{footer-actions.Hs92lEbc.js → footer-actions.C9STwwcv.js} +3 -3
  125. package/dist/chunks/{footer-actions.Hs92lEbc.js.map → footer-actions.C9STwwcv.js.map} +1 -1
  126. package/dist/chunks/{form-layout-title.CCsmZ9E8.js → form-layout-title.C0lwzPZz.js} +2 -2
  127. package/dist/chunks/{form-layout-title.CCsmZ9E8.js.map → form-layout-title.C0lwzPZz.js.map} +1 -1
  128. package/dist/chunks/generate-uid.DBWe4g6T.js.map +1 -1
  129. package/dist/chunks/{header-with-views.CRmtYRDr.js → header-with-views.HwbE278X.js} +665 -661
  130. package/dist/chunks/{header-with-views.CRmtYRDr.js.map → header-with-views.HwbE278X.js.map} +1 -1
  131. package/dist/chunks/{header.JBgD0-kG.js → header.CmyqVXuG.js} +4 -4
  132. package/dist/chunks/{header.JBgD0-kG.js.map → header.CmyqVXuG.js.map} +1 -1
  133. package/dist/chunks/{info-icon-with-popover.B8URkh7g.js → info-icon-with-popover.BvYyGm4D.js} +3 -3
  134. package/dist/chunks/info-icon-with-popover.BvYyGm4D.js.map +1 -0
  135. package/dist/chunks/{input-field-password.Dbl53ZX_.js → input-field-password.9bWhLud0.js} +5 -5
  136. package/dist/chunks/input-field-password.9bWhLud0.js.map +1 -0
  137. package/dist/chunks/{input-field-phone-number.BdZDHzrf.js → input-field-phone-number.CCn1N9St.js} +2 -2
  138. package/dist/chunks/{input-field-phone-number.BdZDHzrf.js.map → input-field-phone-number.CCn1N9St.js.map} +1 -1
  139. package/dist/chunks/{input-field.LPEj6r0i.js → input-field.D912rZS_.js} +3 -3
  140. package/dist/chunks/input-field.D912rZS_.js.map +1 -0
  141. package/dist/chunks/{input-time.uqE8FS62.js → input-time.CXMuvF9N.js} +3 -3
  142. package/dist/chunks/{input-time.uqE8FS62.js.map → input-time.CXMuvF9N.js.map} +1 -1
  143. package/dist/chunks/{inspector-page.B8HHiZB3.js → inspector-page.BRC_7uro.js} +3 -3
  144. package/dist/chunks/{inspector-page.B8HHiZB3.js.map → inspector-page.BRC_7uro.js.map} +1 -1
  145. package/dist/chunks/{inspector.CcXe5K4v.js → inspector.IOtNex1r.js} +3 -3
  146. package/dist/chunks/inspector.IOtNex1r.js.map +1 -0
  147. package/dist/chunks/{link.BzIDMKgE.js → link.Cls8XShm.js} +4 -4
  148. package/dist/chunks/link.Cls8XShm.js.map +1 -0
  149. package/dist/chunks/{list-item.Bcqodg1-.js → list-item.HjabBEb8.js} +3 -3
  150. package/dist/chunks/{list-item.Bcqodg1-.js.map → list-item.HjabBEb8.js.map} +1 -1
  151. package/dist/chunks/{listbox-option-tag.B08qQaBW.js → listbox-option-tag.DhNxvqRO.js} +2 -2
  152. package/dist/chunks/{listbox-option-tag.B08qQaBW.js.map → listbox-option-tag.DhNxvqRO.js.map} +1 -1
  153. package/dist/chunks/{modal-fullscreen.Bo2wcyxV.js → modal-fullscreen.Bi1bQs4Z.js} +6 -6
  154. package/dist/chunks/modal-fullscreen.Bi1bQs4Z.js.map +1 -0
  155. package/dist/chunks/{modal.pzXwZQtG.js → modal.B3-pmL5s.js} +5 -5
  156. package/dist/chunks/{modal.pzXwZQtG.js.map → modal.B3-pmL5s.js.map} +1 -1
  157. package/dist/chunks/{navigation-menu-group.CKVu4No8.js → navigation-menu-group.B-AV49Bn.js} +6 -6
  158. package/dist/chunks/navigation-menu-group.B-AV49Bn.js.map +1 -0
  159. package/dist/chunks/{pagination.D4uye85j.js → pagination.cI_pc6oE.js} +5 -5
  160. package/dist/chunks/pagination.cI_pc6oE.js.map +1 -0
  161. package/dist/chunks/{progress-bar.CeSR79Ue.js → progress-bar.RlF3a0Gb.js} +2 -2
  162. package/dist/chunks/progress-bar.RlF3a0Gb.js.map +1 -0
  163. package/dist/chunks/{promo-banner.BzTq9SMT.js → promo-banner.B5szTysj.js} +7 -7
  164. package/dist/chunks/{promo-banner.BzTq9SMT.js.map → promo-banner.B5szTysj.js.map} +1 -1
  165. package/dist/chunks/{radio-group.70MGuwY1.js → radio-group.CvsQDlHi.js} +4 -4
  166. package/dist/chunks/radio-group.CvsQDlHi.js.map +1 -0
  167. package/dist/chunks/{rich-text-editor.wa-8sYrf.js → rich-text-editor.DNmVJilP.js} +6 -6
  168. package/dist/chunks/{rich-text-editor.wa-8sYrf.js.map → rich-text-editor.DNmVJilP.js.map} +1 -1
  169. package/dist/chunks/{search-bar.C900XBUm.js → search-bar.--4KVNkf.js} +3 -3
  170. package/dist/chunks/{search-bar.C900XBUm.js.map → search-bar.--4KVNkf.js.map} +1 -1
  171. package/dist/chunks/{secondary-nav.Dv3WA-JA.js → secondary-nav.CXtDQAay.js} +5 -5
  172. package/dist/chunks/secondary-nav.CXtDQAay.js.map +1 -0
  173. package/dist/chunks/{segmented-control.CxOLPKpX.js → segmented-control.nYpRQTGc.js} +2 -2
  174. package/dist/chunks/segmented-control.nYpRQTGc.js.map +1 -0
  175. package/dist/chunks/{selection-card-group.DNHKvN7F.js → selection-card-group.DjFWMqVZ.js} +21 -21
  176. package/dist/chunks/selection-card-group.DjFWMqVZ.js.map +1 -0
  177. package/dist/chunks/{sidepanel.lCym69kV.js → sidepanel.CntIcmx-.js} +6 -6
  178. package/dist/chunks/sidepanel.CntIcmx-.js.map +1 -0
  179. package/dist/chunks/{step.DWC-MMij.js → step.BCa9IOWB.js} +2 -2
  180. package/dist/chunks/{step.DWC-MMij.js.map → step.BCa9IOWB.js.map} +1 -1
  181. package/dist/chunks/{structured-list-item.DozZFSKW.js → structured-list-item.Bhe0CH1M.js} +3 -3
  182. package/dist/chunks/{structured-list-item.DozZFSKW.js.map → structured-list-item.Bhe0CH1M.js.map} +1 -1
  183. package/dist/chunks/{summary-grid.types.W9PBumap.js → summary-grid.types.C70ED6WD.js} +4 -4
  184. package/dist/chunks/{summary-grid.types.W9PBumap.js.map → summary-grid.types.C70ED6WD.js.map} +1 -1
  185. package/dist/chunks/{tab.5rS16WWy.js → tab.BK1sIJAJ.js} +38 -38
  186. package/dist/chunks/tab.BK1sIJAJ.js.map +1 -0
  187. package/dist/chunks/{table-of-contents.f_6G1qFS.js → table-of-contents.BTy95Rrs.js} +2 -2
  188. package/dist/chunks/table-of-contents.BTy95Rrs.js.map +1 -0
  189. package/dist/chunks/tag.Dz1FQSZb.js +56 -0
  190. package/dist/chunks/tag.Dz1FQSZb.js.map +1 -0
  191. package/dist/chunks/{textarea.BGm1lgyY.js → textarea.CcV9U3I7.js} +4 -4
  192. package/dist/chunks/textarea.CcV9U3I7.js.map +1 -0
  193. package/dist/chunks/{timeline-item.Ctso54I1.js → timeline-item.BG2by0xf.js} +9 -9
  194. package/dist/chunks/{timeline-item.Ctso54I1.js.map → timeline-item.BG2by0xf.js.map} +1 -1
  195. package/dist/chunks/title-details.ChwPP7C5.js +119 -0
  196. package/dist/chunks/title-details.ChwPP7C5.js.map +1 -0
  197. package/dist/chunks/{toast.DL_9zlHB.js → toast.CO6ByH3n.js} +2 -2
  198. package/dist/chunks/{toast.DL_9zlHB.js.map → toast.CO6ByH3n.js.map} +1 -1
  199. package/dist/chunks/{toggle.BkTeqKsx.js → toggle.Dgh7aw1D.js} +2 -2
  200. package/dist/chunks/toggle.Dgh7aw1D.js.map +1 -0
  201. package/dist/chunks/tooltip.DFYc5NKM.js.map +1 -1
  202. package/dist/chunks/{tutorial.FPpVdWTS.js → tutorial.K0aOQWIg.js} +2 -2
  203. package/dist/chunks/{tutorial.FPpVdWTS.js.map → tutorial.K0aOQWIg.js.map} +1 -1
  204. package/dist/chunks/use-bento-toast-controller.A5xraVqa.js.map +1 -1
  205. package/dist/chunks/{use-date-input-formatter.BzLbx82k.js → use-date-input-formatter.MgbFwUqJ.js} +2 -2
  206. package/dist/chunks/{use-date-input-formatter.BzLbx82k.js.map → use-date-input-formatter.MgbFwUqJ.js.map} +1 -1
  207. package/dist/chunks/use-dynamic-date-fns-locale.Bpb2DeYR.js +39 -0
  208. package/dist/chunks/use-dynamic-date-fns-locale.Bpb2DeYR.js.map +1 -0
  209. package/dist/code-snippet.js +1 -1
  210. package/dist/dashboard-template.js +1 -1
  211. package/dist/dashed-underline.js +1 -1
  212. package/dist/data-grid-template.js +1 -1
  213. package/dist/data-grid.js +1 -1
  214. package/dist/date-picker.js +2 -2
  215. package/dist/date-range-picker.js +2 -2
  216. package/dist/date-time-picker.js +1 -1
  217. package/dist/draggable.js +2 -2
  218. package/dist/dropdown.js +2 -2
  219. package/dist/empty-state.js +1 -1
  220. package/dist/file-uploader.js +1 -1
  221. package/dist/filter-bar.js +1 -1
  222. package/dist/form-layout.js +1 -1
  223. package/dist/header-with-views.js +1 -1
  224. package/dist/header.js +1 -1
  225. package/dist/index.js +64 -64
  226. package/dist/input-field-password.js +1 -1
  227. package/dist/input-field-phone-number.js +1 -1
  228. package/dist/input-field.js +1 -1
  229. package/dist/input-time.js +1 -1
  230. package/dist/inspector.js +2 -2
  231. package/dist/internal.js +10 -10
  232. package/dist/link.js +1 -1
  233. package/dist/list.js +1 -1
  234. package/dist/menu.js +1 -1
  235. package/dist/modal-fullscreen.js +1 -1
  236. package/dist/modal.js +2 -2
  237. package/dist/navigation-menu.js +1 -1
  238. package/dist/pagination.js +1 -1
  239. package/dist/popover.js +1 -1
  240. package/dist/progress-bar.js +1 -1
  241. package/dist/promo-banner.js +1 -1
  242. package/dist/radio-group.js +1 -1
  243. package/dist/rich-text-editor.js +1 -1
  244. package/dist/search-bar.js +2 -2
  245. package/dist/secondary-nav.js +1 -1
  246. package/dist/segmented-control.js +1 -1
  247. package/dist/selection-card.js +1 -1
  248. package/dist/sidepanel.js +1 -1
  249. package/dist/stepper.js +1 -1
  250. package/dist/structured-list.js +1 -1
  251. package/dist/styles/bento-dark.css +3 -3
  252. package/dist/styles/bento-light.css +4 -4
  253. package/dist/styles/bento.css +4 -4
  254. package/dist/styles/legacy.css +4 -4
  255. package/dist/styles/styleguide.css +4 -4
  256. package/dist/styles/utility.css +4 -4
  257. package/dist/summary-grid.js +1 -1
  258. package/dist/table-of-contents.js +1 -1
  259. package/dist/tabs.js +1 -1
  260. package/dist/tag.js +1 -1
  261. package/dist/textarea.js +1 -1
  262. package/dist/timeline.js +1 -1
  263. package/dist/toast.js +1 -1
  264. package/dist/toggle.js +1 -1
  265. package/dist/tutorial.js +1 -1
  266. package/dist/web-types.json +65 -3
  267. package/package.json +6 -6
  268. package/dist/chunks/accordion-item.V3zpgTzM.js.map +0 -1
  269. package/dist/chunks/action-bar.BhS26IWQ.js.map +0 -1
  270. package/dist/chunks/ai-tag.C72E0L5z.js.map +0 -1
  271. package/dist/chunks/anchor-scroller.DT7QZd5b.js.map +0 -1
  272. package/dist/chunks/base-modal.BXDCTPAM.js.map +0 -1
  273. package/dist/chunks/calendar.Avy_89bW.js.map +0 -1
  274. package/dist/chunks/card.C-e-dnNE.js.map +0 -1
  275. package/dist/chunks/checkbox-group.DKSC-XM9.js.map +0 -1
  276. package/dist/chunks/checkbox.CZM7Q3Zi.js.map +0 -1
  277. package/dist/chunks/cross-circle-fill-small.Doaiq7Wx.js.map +0 -1
  278. package/dist/chunks/data-grid.B9Htvwxc.js.map +0 -1
  279. package/dist/chunks/date-picker.CnRL1L1b.js.map +0 -1
  280. package/dist/chunks/dropdown.Bkl-FGT4.js.map +0 -1
  281. package/dist/chunks/file-uploader.BRedpY0J.js.map +0 -1
  282. package/dist/chunks/filter-bar.Di-vepKR.js.map +0 -1
  283. package/dist/chunks/info-icon-with-popover.B8URkh7g.js.map +0 -1
  284. package/dist/chunks/input-field-password.Dbl53ZX_.js.map +0 -1
  285. package/dist/chunks/input-field.LPEj6r0i.js.map +0 -1
  286. package/dist/chunks/inspector.CcXe5K4v.js.map +0 -1
  287. package/dist/chunks/link.BzIDMKgE.js.map +0 -1
  288. package/dist/chunks/modal-fullscreen.Bo2wcyxV.js.map +0 -1
  289. package/dist/chunks/navigation-menu-group.CKVu4No8.js.map +0 -1
  290. package/dist/chunks/pagination.D4uye85j.js.map +0 -1
  291. package/dist/chunks/progress-bar.CeSR79Ue.js.map +0 -1
  292. package/dist/chunks/radio-group.70MGuwY1.js.map +0 -1
  293. package/dist/chunks/secondary-nav.Dv3WA-JA.js.map +0 -1
  294. package/dist/chunks/segmented-control.CxOLPKpX.js.map +0 -1
  295. package/dist/chunks/selection-card-group.DNHKvN7F.js.map +0 -1
  296. package/dist/chunks/sidepanel.lCym69kV.js.map +0 -1
  297. package/dist/chunks/tab.5rS16WWy.js.map +0 -1
  298. package/dist/chunks/table-of-contents.f_6G1qFS.js.map +0 -1
  299. package/dist/chunks/tag.DSzato7w.js +0 -50
  300. package/dist/chunks/tag.DSzato7w.js.map +0 -1
  301. package/dist/chunks/textarea.BGm1lgyY.js.map +0 -1
  302. package/dist/chunks/title-details.Dwm8V6Zg.js +0 -151
  303. package/dist/chunks/title-details.Dwm8V6Zg.js.map +0 -1
  304. package/dist/chunks/toggle.BkTeqKsx.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"date-time-picker.DvEpFiBu.js","sources":["../../src/components/date-time-picker/date-time-picker.vue"],"sourcesContent":["<template>\n <div class=\"b-date-time-picker\">\n <bento-form-layout-group class=\"b-date-time-picker__inputs\" layout=\"50-50\" :error-message=\"props.errorMessage\">\n <bento-date-picker\n class=\"b-date-time-picker__date-input\"\n v-bind=\"resolvedDateProps\"\n :model-value=\"dateValue\"\n @update:model-value=\"onDateChanged\"\n />\n <bento-input-time\n class=\"b-date-time-picker__time-input\"\n v-bind=\"resolvedTimeProps\"\n :model-value=\"timeValue\"\n @update:model-value=\"onTimeChanged\"\n />\n </bento-form-layout-group>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, nextTick, ref, watch } from 'vue';\n import { setMilliseconds } from 'date-fns/setMilliseconds';\n import { startOfDay } from 'date-fns/startOfDay';\n\n // Components\n import { BentoDatePicker } from '@/components/date-picker';\n import { BentoFormLayoutGroup } from '@/components/form-layout';\n import { BentoInputTime } from '@/components/input-time';\n\n // Utils\n import { useDateInputFormatter, useTouchDevice } from '@/composables';\n import { useI18n } from '@/utils/ts/i18n';\n import { dateToTimeInputString, setTimeInDateObject } from '@/utils/ts/format-date';\n import { isValidTimeString } from '@/utils/ts/time-input';\n\n // Types\n import type {\n BentoDateTimePickerEmits,\n BentoDateTimePickerProps,\n BentoDateTimePickerValue,\n } from './date-time-picker.types';\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const props = defineProps({\n modelValue: { default: null },\n disabled: { type: Boolean, default: false },\n errorMessage: { default: null },\n isDateDisabled: { default: undefined },\n max: { default: null },\n min: { default: null },\n readonly: { type: Boolean, default: false },\n required: { type: Boolean, default: false },\n dateProps: { default: () => ({}) },\n timeProps: { default: () => ({}) }\n});\n\n const emit = defineEmits([\"update:model-value\", \"input:valid\", \"input:error\"]);\n const currentDate = ref<Date | null>(null);\n const currentTimeText = ref('');\n const dateError = ref<keyof MessageSchema | null>(null);\n const timeError = ref<keyof MessageSchema | null>(null);\n const { dateFormat } = useDateInputFormatter();\n const { isTouchDevice } = useTouchDevice();\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n\n const dateValue = computed(() => currentDate.value);\n const timeValue = computed(() => currentTimeText.value);\n const resolvedIsDateDisabled = computed(() => props.dateProps?.isDateDisabled ?? props.isDateDisabled);\n const dateDescription = computed(() => {\n if (isTouchDevice.value) {\n return props.dateProps?.description;\n } else {\n return props.dateProps?.description\n ? `${props.dateProps.description} ${t(dateFormat.value)}`\n : t(dateFormat.value);\n }\n });\n\n const isMergedDateInBounds = (date: Date) => {\n if (resolvedIsDateDisabled.value?.(startOfDay(date))) {\n return false;\n }\n\n if (props.min && date < setMilliseconds(props.min, 0)) {\n return false;\n }\n\n if (props.max && date > setMilliseconds(props.max, 0)) {\n return false;\n }\n\n return true;\n };\n\n const resolvedDateProps = computed(() => ({\n disabled: props.disabled,\n isDateDisabled: props.isDateDisabled,\n max: props.max,\n min: props.min,\n readonly: props.readonly,\n required: props.required,\n errorMessage: dateErrorMessage.value,\n ...props.dateProps,\n description: dateDescription.value,\n }));\n\n const resolvedTimeProps = computed(() => ({\n disabled: props.disabled,\n errorMessage: timeErrorMessage.value,\n readonly: props.readonly,\n required: props.required,\n ...props.timeProps,\n }));\n\n const dateErrorMessage = computed(() => {\n if (props.errorMessage) {\n return props.errorMessage;\n }\n return dateError.value ? t(dateError.value) : null;\n });\n\n const timeErrorMessage = computed(() => {\n if (props.errorMessage) {\n return props.errorMessage;\n }\n return timeError.value ? t(timeError.value) : null;\n });\n\n const clearErrors = () => {\n dateError.value = null;\n timeError.value = null;\n };\n\n /**\n * Guards the modelValue watcher from clearing user input when the null was emitted\n * by our own validation logic (e.g. partial/invalid input). Without this flag,\n * the parent's v-model round-trip would trigger the watcher and wipe the fields.\n * Reset on nextTick so that genuine external resets (e.g. a form clear button)\n * still clear the UI.\n */\n const isSelfEmittedUpdate = ref(false);\n\n watch(\n () => props.modelValue,\n newValue => {\n if (isSelfEmittedUpdate.value) {\n return;\n }\n\n if (newValue) {\n // Sync internal state when a valid Date is set (e.g. programmatic update from parent)\n currentDate.value = newValue;\n currentTimeText.value = dateToTimeInputString(newValue);\n } else {\n // External reset (e.g. parent sets modelValue to null via a form clear button):\n // clear all internal state so the UI resets fully.\n currentDate.value = null;\n currentTimeText.value = '';\n clearErrors();\n }\n },\n { immediate: true }\n );\n\n const validateBounds = (value: BentoDateTimePickerValue) => !value || isMergedDateInBounds(value);\n\n const emitValidationState = (isValid: boolean) => {\n if (isValid) {\n emit('input:valid');\n } else {\n emit('input:error');\n }\n };\n\n const emitModelValue = (value: BentoDateTimePickerValue) => {\n isSelfEmittedUpdate.value = true;\n emit('update:model-value', value);\n nextTick(() => {\n isSelfEmittedUpdate.value = false;\n });\n };\n\n const emitValidatedValue = (value: BentoDateTimePickerValue) => {\n emitModelValue(value);\n emitValidationState(validateBounds(value));\n };\n\n const emitInvalidModelValue = (value: BentoDateTimePickerValue) => {\n emitModelValue(value);\n emitValidationState(false);\n };\n\n const onDateChanged = (date: Date | null) => {\n currentDate.value = date;\n\n // Date invalid/cleared: error if time is populated, valid if both empty\n if (!date) {\n if (currentTimeText.value) {\n dateError.value = 'invalidDateFormat';\n emitInvalidModelValue(null);\n } else {\n clearErrors();\n emitValidatedValue(null);\n }\n return;\n }\n\n clearErrors();\n\n // Prefill time with midnight when empty so the user sees a value\n if (!currentTimeText.value) {\n currentTimeText.value = '00:00:00';\n }\n\n const time = currentTimeText.value;\n\n // Date valid but time invalid: preserve date, signal error\n if (!isValidTimeString(time)) {\n emitInvalidModelValue(null);\n return;\n }\n\n // Both valid: merge and emit\n emitValidatedValue(setTimeInDateObject(date, time));\n };\n\n const onTimeChanged = (time: string) => {\n currentTimeText.value = time;\n\n // Time cleared: error if date is set (time is required once prefilled), valid-null if both empty\n if (!time) {\n if (currentDate.value) {\n timeError.value = 'enterTimeForDate';\n emitInvalidModelValue(null);\n } else {\n clearErrors();\n emitValidatedValue(null);\n }\n return;\n }\n\n timeError.value = null;\n\n // Time invalid: preserve date, signal error\n if (!isValidTimeString(time)) {\n emitInvalidModelValue(null);\n return;\n }\n\n // Time valid but no date: signal error\n if (!currentDate.value) {\n dateError.value = 'invalidDateFormat';\n emitInvalidModelValue(null);\n return;\n }\n\n // Both valid: merge and emit\n emitValidatedValue(setTimeInDateObject(currentDate.value, time));\n };\n</script>\n\n<script lang=\"ts\">\n /**\n * Date time picker that combines a date picker (single date) with a time input.\n *\n * @example\n * import { BentoDateTimePicker } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoDateTimePicker },\n * template: `\n * <bento-date-time-picker\n * :date-props=\"{ label: 'Date' }\"\n * :time-props=\"{ label: 'Time' }\"\n * required\n * :model-value=\"dateTimeValue\"\n * @update:model-value=\"newValue => dateTimeValue = newValue\"\n * />\n * `\n * }\n */\n export default {\n i18n: { messages },\n name: 'bento-date-time-picker',\n inheritAttrs: false,\n model: { prop: 'modelValue', event: 'update:model-value' },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./date-time-picker.scss\" />\n"],"names":["__default__","messages","currentDate","ref","currentTimeText","dateError","timeError","dateFormat","useDateInputFormatter","isTouchDevice","useTouchDevice","t","useI18n","dateValue","computed","timeValue","resolvedIsDateDisabled","props","dateDescription","isMergedDateInBounds","date","startOfDay","setMilliseconds","resolvedDateProps","dateErrorMessage","resolvedTimeProps","timeErrorMessage","clearErrors","isSelfEmittedUpdate","watch","newValue","dateToTimeInputString","validateBounds","value","emitValidationState","isValid","emit","emitModelValue","nextTick","emitValidatedValue","emitInvalidModelValue","time","isValidTimeString","setTimeInDateObject"],"mappings":"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"}
1
+ {"version":3,"file":"date-time-picker.Bktntun4.js","sources":["../../src/components/date-time-picker/date-time-picker.vue"],"sourcesContent":["<template>\n <div class=\"b-date-time-picker\">\n <bento-form-layout-group class=\"b-date-time-picker__inputs\" layout=\"50-50\" :error-message=\"props.errorMessage\">\n <bento-date-picker\n class=\"b-date-time-picker__date-input\"\n v-bind=\"resolvedDateProps\"\n :model-value=\"dateValue\"\n @update:model-value=\"onDateChanged\"\n />\n <bento-input-time\n class=\"b-date-time-picker__time-input\"\n v-bind=\"resolvedTimeProps\"\n :model-value=\"timeValue\"\n @update:model-value=\"onTimeChanged\"\n />\n </bento-form-layout-group>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, nextTick, ref, watch } from 'vue';\n import { setMilliseconds } from 'date-fns/setMilliseconds';\n import { startOfDay } from 'date-fns/startOfDay';\n\n // Components\n import { BentoDatePicker } from '@/components/date-picker';\n import { BentoFormLayoutGroup } from '@/components/form-layout';\n import { BentoInputTime } from '@/components/input-time';\n\n // Utils\n import { useDateInputFormatter, useTouchDevice } from '@/composables';\n import { useI18n } from '@/utils/ts/i18n';\n import { dateToTimeInputString, setTimeInDateObject } from '@/utils/ts/format-date';\n import { isValidTimeString } from '@/utils/ts/time-input';\n\n // Types\n import type {\n BentoDateTimePickerEmits,\n BentoDateTimePickerProps,\n BentoDateTimePickerValue,\n } from './date-time-picker.types';\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const props = defineProps({\n modelValue: { default: null },\n disabled: { type: Boolean, default: false },\n errorMessage: { default: null },\n isDateDisabled: { default: undefined },\n max: { default: null },\n min: { default: null },\n readonly: { type: Boolean, default: false },\n required: { type: Boolean, default: false },\n dateProps: { default: () => ({}) },\n timeProps: { default: () => ({}) }\n});\n\n const emit = defineEmits([\"update:model-value\", \"input:valid\", \"input:error\"]);\n const currentDate = ref<Date | null>(null);\n const currentTimeText = ref('');\n const dateError = ref<keyof MessageSchema | null>(null);\n const timeError = ref<keyof MessageSchema | null>(null);\n const { dateFormat } = useDateInputFormatter();\n const { isTouchDevice } = useTouchDevice();\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n\n const dateValue = computed(() => currentDate.value);\n const timeValue = computed(() => currentTimeText.value);\n const resolvedIsDateDisabled = computed(() => props.dateProps?.isDateDisabled ?? props.isDateDisabled);\n const dateDescription = computed(() => {\n if (isTouchDevice.value) {\n return props.dateProps?.description;\n } else {\n return props.dateProps?.description\n ? `${props.dateProps.description} ${t(dateFormat.value)}`\n : t(dateFormat.value);\n }\n });\n\n const isMergedDateInBounds = (date: Date) => {\n if (resolvedIsDateDisabled.value?.(startOfDay(date))) {\n return false;\n }\n\n if (props.min && date < setMilliseconds(props.min, 0)) {\n return false;\n }\n\n if (props.max && date > setMilliseconds(props.max, 0)) {\n return false;\n }\n\n return true;\n };\n\n const resolvedDateProps = computed(() => ({\n disabled: props.disabled,\n isDateDisabled: props.isDateDisabled,\n max: props.max,\n min: props.min,\n readonly: props.readonly,\n required: props.required,\n errorMessage: dateErrorMessage.value,\n ...props.dateProps,\n description: dateDescription.value,\n }));\n\n const resolvedTimeProps = computed(() => ({\n disabled: props.disabled,\n errorMessage: timeErrorMessage.value,\n readonly: props.readonly,\n required: props.required,\n ...props.timeProps,\n }));\n\n const dateErrorMessage = computed(() => {\n if (props.errorMessage) {\n return props.errorMessage;\n }\n return dateError.value ? t(dateError.value) : null;\n });\n\n const timeErrorMessage = computed(() => {\n if (props.errorMessage) {\n return props.errorMessage;\n }\n return timeError.value ? t(timeError.value) : null;\n });\n\n const clearErrors = () => {\n dateError.value = null;\n timeError.value = null;\n };\n\n /**\n * Guards the modelValue watcher from clearing user input when the null was emitted\n * by our own validation logic (e.g. partial/invalid input). Without this flag,\n * the parent's v-model round-trip would trigger the watcher and wipe the fields.\n * Reset on nextTick so that genuine external resets (e.g. a form clear button)\n * still clear the UI.\n */\n const isSelfEmittedUpdate = ref(false);\n\n watch(\n () => props.modelValue,\n newValue => {\n if (isSelfEmittedUpdate.value) {\n return;\n }\n\n if (newValue) {\n // Sync internal state when a valid Date is set (e.g. programmatic update from parent)\n currentDate.value = newValue;\n currentTimeText.value = dateToTimeInputString(newValue);\n } else {\n // External reset (e.g. parent sets modelValue to null via a form clear button):\n // clear all internal state so the UI resets fully.\n currentDate.value = null;\n currentTimeText.value = '';\n clearErrors();\n }\n },\n { immediate: true }\n );\n\n const validateBounds = (value: BentoDateTimePickerValue) => !value || isMergedDateInBounds(value);\n\n const emitValidationState = (isValid: boolean) => {\n if (isValid) {\n emit('input:valid');\n } else {\n emit('input:error');\n }\n };\n\n const emitModelValue = (value: BentoDateTimePickerValue) => {\n isSelfEmittedUpdate.value = true;\n emit('update:model-value', value);\n nextTick(() => {\n isSelfEmittedUpdate.value = false;\n });\n };\n\n const emitValidatedValue = (value: BentoDateTimePickerValue) => {\n emitModelValue(value);\n emitValidationState(validateBounds(value));\n };\n\n const emitInvalidModelValue = (value: BentoDateTimePickerValue) => {\n emitModelValue(value);\n emitValidationState(false);\n };\n\n const onDateChanged = (date: Date | null) => {\n currentDate.value = date;\n\n // Date invalid/cleared: error if time is populated, valid if both empty\n if (!date) {\n if (currentTimeText.value) {\n dateError.value = 'invalidDateFormat';\n emitInvalidModelValue(null);\n } else {\n clearErrors();\n emitValidatedValue(null);\n }\n return;\n }\n\n clearErrors();\n\n // Prefill time with midnight when empty so the user sees a value\n if (!currentTimeText.value) {\n currentTimeText.value = '00:00:00';\n }\n\n const time = currentTimeText.value;\n\n // Date valid but time invalid: preserve date, signal error\n if (!isValidTimeString(time)) {\n emitInvalidModelValue(null);\n return;\n }\n\n // Both valid: merge and emit\n emitValidatedValue(setTimeInDateObject(date, time));\n };\n\n const onTimeChanged = (time: string) => {\n currentTimeText.value = time;\n\n // Time cleared: error if date is set (time is required once prefilled), valid-null if both empty\n if (!time) {\n if (currentDate.value) {\n timeError.value = 'enterTimeForDate';\n emitInvalidModelValue(null);\n } else {\n clearErrors();\n emitValidatedValue(null);\n }\n return;\n }\n\n timeError.value = null;\n\n // Time invalid: preserve date, signal error\n if (!isValidTimeString(time)) {\n emitInvalidModelValue(null);\n return;\n }\n\n // Time valid but no date: signal error\n if (!currentDate.value) {\n dateError.value = 'invalidDateFormat';\n emitInvalidModelValue(null);\n return;\n }\n\n // Both valid: merge and emit\n emitValidatedValue(setTimeInDateObject(currentDate.value, time));\n };\n</script>\n\n<script lang=\"ts\">\n /**\n * Date time picker that combines a date picker (single date) with a time input.\n *\n * @example\n * import { BentoDateTimePicker } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoDateTimePicker },\n * template: `\n * <bento-date-time-picker\n * :date-props=\"{ label: 'Date' }\"\n * :time-props=\"{ label: 'Time' }\"\n * required\n * :model-value=\"dateTimeValue\"\n * @update:model-value=\"newValue => dateTimeValue = newValue\"\n * />\n * `\n * }\n */\n export default {\n i18n: { messages },\n name: 'bento-date-time-picker',\n inheritAttrs: false,\n model: { prop: 'modelValue', event: 'update:model-value' },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./date-time-picker.scss\" />\n"],"names":["__default__","messages","currentDate","ref","currentTimeText","dateError","timeError","dateFormat","useDateInputFormatter","isTouchDevice","useTouchDevice","t","useI18n","dateValue","computed","timeValue","resolvedIsDateDisabled","props","dateDescription","isMergedDateInBounds","date","startOfDay","setMilliseconds","resolvedDateProps","dateErrorMessage","resolvedTimeProps","timeErrorMessage","clearErrors","isSelfEmittedUpdate","watch","newValue","dateToTimeInputString","validateBounds","value","emitValidationState","isValid","emit","emitModelValue","nextTick","emitValidatedValue","emitInvalidModelValue","time","isValidTimeString","setTimeInDateObject"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as J, useSlots as M, ref as _, computed as n, inject as O, watch as P, nextTick as h, onMounted as U, onUnmounted as z } from "vue";
2
- import { B as K } from "./button.CBqJGWy5.js";
2
+ import { B as K } from "./button.DII5Ifwa.js";
3
3
  import { A as Y } from "./arrow-left.BBflhjQa.js";
4
4
  import { u as $ } from "./use-has-slot.C9lQZ6nz.js";
5
5
  import { u as X } from "./index.CPOlyau9.js";
@@ -130,4 +130,4 @@ const me = ie.exports;
130
130
  export {
131
131
  me as D
132
132
  };
133
- //# sourceMappingURL=dialog-page.CEVl-RI4.js.map
133
+ //# sourceMappingURL=dialog-page.Bct3zOQO.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialog-page.CEVl-RI4.js","sources":["../../src/components/internal/dialog-page/dialog-page.vue"],"sourcesContent":["<template>\n <Transition :name=\"animation\" mode=\"out-in\" @after-leave=\"updateAnimation\" @leave=\"startAnimation\">\n <div v-if=\"isOpen && showPage\" class=\"b-dialog-page\" :class=\"computedClasses\">\n <div v-if=\"hasSlot('header')\" class=\"b-dialog-page__header\" :class=\"headerConditionalClasses\">\n <div\n v-if=\"showBackButton\"\n class=\"b-dialog-page__back-button\"\n :style=\"backButtonStyling\"\n data-testid=\"back-button\"\n >\n <bento-button variant=\"tertiary\" @click=\"goToPreviousPage(previousPage)\">\n <arrow-left-icon :svg-title=\"t('goToPreviousPage')\" />\n </bento-button>\n </div>\n <slot name=\"header\"></slot>\n </div>\n <div\n v-if=\"hasSlot('content')\"\n ref=\"contentElement\"\n class=\"b-dialog-page__content\"\n :tabindex=\"isScrollable ? 0 : null\"\n @scroll=\"onScroll\"\n >\n <slot name=\"content\" />\n </div>\n <div v-if=\"hasSlot('footer')\" class=\"b-dialog-page__footer\" :class=\"footerConditionalClasses\">\n <slot name=\"footer\" />\n </div>\n </div>\n </Transition>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, inject, nextTick, onMounted, onUnmounted, type PropType, ref, useSlots, watch } from 'vue';\n\n import { BentoButton } from '@/components/button';\n import ArrowLeftIcon from '@adyen/ui-assets-icons-16/vue/arrow-left';\n\n import { useHasSlot } from '@/composables/use-has-slot/use-has-slot';\n import { useI18n } from '@/utils/ts/i18n';\n import { isDevelopmentEnviroment } from '@/utils/ts/dev-environment';\n\n import {\n BentoDialogPageAnimation,\n type BentoDialogPageConfigData,\n type BentoDialogPageRegisterPage,\n } from './dialog-page.types';\n import type { CSSProperties } from 'vue/types/jsx.d.ts';\n\n import { DIALOG_PAGE_CONFIG_INJECTION_KEY, DIALOG_PAGE_REGISTER_PAGE_INJECTION_KEY } from './dialog-page.keys';\n\n import messages from './messages.json';\n import { useScroll } from '@vueuse/core';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const props = defineProps({\n /**\n * Sets `position: absolute` on the dialog page root element.\n * Enabled by default as it is used by default in most places.\n * Inspector requires it to not be absolute positioned.\n * @default true\n */\n absolutePosition: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show header and actions border\n */\n alwaysShowBorder: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Pass custom styling to the back button to position it correctly with the header slot\n */\n backButtonStyling: { type: Object as PropType<CSSProperties>, default: null },\n\n /**\n * Identifier of the page, used with activePage prop to handle navigation\n */\n pageId: {\n type: String,\n default: undefined,\n },\n\n /**\n * ID of the page for the back button to navigate to. Only use it to overwrite the default back behavior\n * Used when the back button should not take the user to the natural previous page\n * Set to `null` to hide back button in the page\n */\n previousPage: {\n type: String,\n default: undefined,\n },\n });\n\n const emit = defineEmits([\"animationend\"]);\n\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n\n // Refs\n const contentElement = ref<HTMLDivElement>(null);\n const hasScroll = ref(false);\n const isMounted = ref(false);\n\n const { arrivedState, measure } = useScroll(contentElement);\n\n // Logic to choose which page is active/shown\n const showPage = computed(() => (activePage.value ? activePage.value === props.pageId : true));\n\n const computedClasses = computed(() => ({\n 'b-dialog-page--absolute-position': props.absolutePosition,\n }));\n\n // Scrolling styling logic\n const headerConditionalClasses = computed(() => ({\n 'b-dialog-page__header--with-border': props.alwaysShowBorder || (hasScroll.value && !arrivedState.top),\n }));\n\n const footerConditionalClasses = computed(() => ({\n 'b-dialog-page__footer--with-border': props.alwaysShowBorder || (hasScroll.value && !arrivedState.bottom),\n }));\n\n const isScrollable = computed(() => !(arrivedState.bottom && arrivedState.top));\n\n const onScroll = () => {\n if (!contentElement.value) {\n return;\n }\n };\n\n const calculateScroll = async watchedValue => {\n if (!watchedValue) {\n return;\n }\n // Wait for content to be rendered to be able to calculate the height\n await nextTick();\n if (!isMounted.value) {\n return;\n }\n // Refresh the scroll position after the content is rendered so isScrollable can apply tabindex to the content.\n measure();\n hasScroll.value = contentElement.value && contentElement.value.scrollHeight > contentElement.value.clientHeight;\n };\n\n const { activePage, animation, isAnimationActive, isOpen, pages, previousPages, updatePage } =\n inject<BentoDialogPageConfigData>(DIALOG_PAGE_CONFIG_INJECTION_KEY);\n\n watch(() => isOpen.value, calculateScroll, { immediate: true });\n watch(() => showPage.value, calculateScroll, { immediate: true });\n\n // Logic to determine whether the back button should be shown on the page\n const showBackButton = computed(() => {\n if (props.previousPage) {\n return true;\n }\n if (props.previousPage === null) {\n return false;\n }\n return hasPreviousPages.value && showPage.value;\n });\n\n // Animation\n const updateAnimation = () => {\n animation.value = BentoDialogPageAnimation.TRANSITION_LEVEL_DEEPER;\n if (isAnimationActive) {\n isAnimationActive.value = false;\n }\n\n emit('animationend');\n };\n\n const startAnimation = () => {\n if (isAnimationActive) {\n isAnimationActive.value = true;\n }\n };\n\n // Previous page logic\n const hasPreviousPages = computed(() => previousPages.value.length > 1);\n const lastPage = computed(() => previousPages.value[previousPages.value.length - 1]);\n const isActivePageValid = computed(() => pages.value.some(page => page === activePage.value));\n\n const goToPreviousPage = async (page: string) => {\n if (page) {\n const index = previousPages.value.indexOf(page);\n if (index !== -1) {\n previousPages.value = previousPages.value.slice(0, index + 1);\n } else {\n previousPages.value = [page];\n }\n } else {\n previousPages.value.pop();\n }\n\n animation.value = BentoDialogPageAnimation.TRANSITION_LEVEL_UPPER;\n await nextTick();\n if (!isMounted.value) {\n return;\n }\n updatePage(lastPage.value);\n };\n\n // Add new page to the previousPage array to keep track of user navigation\n watch(\n () => activePage.value,\n async () => {\n await nextTick();\n if (!isMounted.value || !isOpen.value) {\n return;\n }\n\n if (!!activePage.value && !isActivePageValid.value) {\n if (isDevelopmentEnviroment) {\n // eslint-disable-next-line no-console\n console.error(\n `The activePage passed \"${activePage.value}\" does not match the id of any of the pages`\n );\n return;\n }\n }\n\n if (activePage.value !== lastPage.value) {\n previousPages.value.push(activePage.value);\n }\n },\n { immediate: true }\n );\n\n // Register page to parent component and inject data from parent component\n const registerPage = inject<BentoDialogPageRegisterPage>(DIALOG_PAGE_REGISTER_PAGE_INJECTION_KEY);\n const { unregisterPage } = registerPage(props.pageId);\n\n onMounted(() => {\n isMounted.value = true;\n // Recalculate on mount because the initial useScroll measurement can run before the content is fully sized.\n // Without this, a scrollable content container does not receive tabindex until the user scrolls.\n calculateScroll(true);\n });\n\n // Unregister page on unmounting the page\n onUnmounted(() => {\n isMounted.value = false;\n unregisterPage();\n });\n</script>\n\n<script lang=\"ts\">\n /**\n * DialogPage is an internal component used to render different pages of dialog components (Modal, ModalFullscreen and Sidepanel)\n *\n * @example\n * import { DialogPage } from '@/internal';\n *\n * export default {\n * components: { DialogPage },\n * template: `\n * <dialog-page pageId='step1' always-show-border>\n * <template #header>Header</template>\n * <template #content>Content</template>\n * <template #footer>Footer</template>\n * </dialog-page>\n * `\n * }\n */\n export default {\n i18n: { messages },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./dialog-page.scss\" />\n"],"names":["__default__","messages","slots","useSlots","hasSlot","useHasSlot","t","useI18n","contentElement","ref","hasScroll","isMounted","arrivedState","measure","useScroll","showPage","computed","activePage","props","computedClasses","headerConditionalClasses","footerConditionalClasses","isScrollable","onScroll","calculateScroll","watchedValue","nextTick","animation","isAnimationActive","isOpen","pages","previousPages","updatePage","inject","DIALOG_PAGE_CONFIG_INJECTION_KEY","watch","showBackButton","hasPreviousPages","updateAnimation","BentoDialogPageAnimation","emit","startAnimation","lastPage","isActivePageValid","page","goToPreviousPage","index","isDevelopmentEnviroment","registerPage","DIALOG_PAGE_REGISTER_PAGE_INJECTION_KEY","unregisterPage","onMounted","onUnmounted"],"mappings":"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"}
1
+ {"version":3,"file":"dialog-page.Bct3zOQO.js","sources":["../../src/components/internal/dialog-page/dialog-page.vue"],"sourcesContent":["<template>\n <Transition :name=\"animation\" mode=\"out-in\" @after-leave=\"updateAnimation\" @leave=\"startAnimation\">\n <div v-if=\"isOpen && showPage\" class=\"b-dialog-page\" :class=\"computedClasses\">\n <div v-if=\"hasSlot('header')\" class=\"b-dialog-page__header\" :class=\"headerConditionalClasses\">\n <div\n v-if=\"showBackButton\"\n class=\"b-dialog-page__back-button\"\n :style=\"backButtonStyling\"\n data-testid=\"back-button\"\n >\n <bento-button variant=\"tertiary\" @click=\"goToPreviousPage(previousPage)\">\n <arrow-left-icon :svg-title=\"t('goToPreviousPage')\" />\n </bento-button>\n </div>\n <slot name=\"header\"></slot>\n </div>\n <div\n v-if=\"hasSlot('content')\"\n ref=\"contentElement\"\n class=\"b-dialog-page__content\"\n :tabindex=\"isScrollable ? 0 : null\"\n @scroll=\"onScroll\"\n >\n <slot name=\"content\" />\n </div>\n <div v-if=\"hasSlot('footer')\" class=\"b-dialog-page__footer\" :class=\"footerConditionalClasses\">\n <slot name=\"footer\" />\n </div>\n </div>\n </Transition>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, inject, nextTick, onMounted, onUnmounted, type PropType, ref, useSlots, watch } from 'vue';\n\n import { BentoButton } from '@/components/button';\n import ArrowLeftIcon from '@adyen/ui-assets-icons-16/vue/arrow-left';\n\n import { useHasSlot } from '@/composables/use-has-slot/use-has-slot';\n import { useI18n } from '@/utils/ts/i18n';\n import { isDevelopmentEnviroment } from '@/utils/ts/dev-environment';\n\n import {\n BentoDialogPageAnimation,\n type BentoDialogPageConfigData,\n type BentoDialogPageRegisterPage,\n } from './dialog-page.types';\n import type { CSSProperties } from 'vue/types/jsx.d.ts';\n\n import { DIALOG_PAGE_CONFIG_INJECTION_KEY, DIALOG_PAGE_REGISTER_PAGE_INJECTION_KEY } from './dialog-page.keys';\n\n import messages from './messages.json';\n import { useScroll } from '@vueuse/core';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const props = defineProps({\n /**\n * Sets `position: absolute` on the dialog page root element.\n * Enabled by default as it is used by default in most places.\n * Inspector requires it to not be absolute positioned.\n * @default true\n */\n absolutePosition: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show header and actions border\n */\n alwaysShowBorder: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Pass custom styling to the back button to position it correctly with the header slot\n */\n backButtonStyling: { type: Object as PropType<CSSProperties>, default: null },\n\n /**\n * Identifier of the page, used with activePage prop to handle navigation\n */\n pageId: {\n type: String,\n default: undefined,\n },\n\n /**\n * ID of the page for the back button to navigate to. Only use it to overwrite the default back behavior\n * Used when the back button should not take the user to the natural previous page\n * Set to `null` to hide back button in the page\n */\n previousPage: {\n type: String,\n default: undefined,\n },\n });\n\n const emit = defineEmits([\"animationend\"]);\n\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n\n // Refs\n const contentElement = ref<HTMLDivElement>(null);\n const hasScroll = ref(false);\n const isMounted = ref(false);\n\n const { arrivedState, measure } = useScroll(contentElement);\n\n // Logic to choose which page is active/shown\n const showPage = computed(() => (activePage.value ? activePage.value === props.pageId : true));\n\n const computedClasses = computed(() => ({\n 'b-dialog-page--absolute-position': props.absolutePosition,\n }));\n\n // Scrolling styling logic\n const headerConditionalClasses = computed(() => ({\n 'b-dialog-page__header--with-border': props.alwaysShowBorder || (hasScroll.value && !arrivedState.top),\n }));\n\n const footerConditionalClasses = computed(() => ({\n 'b-dialog-page__footer--with-border': props.alwaysShowBorder || (hasScroll.value && !arrivedState.bottom),\n }));\n\n const isScrollable = computed(() => !(arrivedState.bottom && arrivedState.top));\n\n const onScroll = () => {\n if (!contentElement.value) {\n return;\n }\n };\n\n const calculateScroll = async watchedValue => {\n if (!watchedValue) {\n return;\n }\n // Wait for content to be rendered to be able to calculate the height\n await nextTick();\n if (!isMounted.value) {\n return;\n }\n // Refresh the scroll position after the content is rendered so isScrollable can apply tabindex to the content.\n measure();\n hasScroll.value = contentElement.value && contentElement.value.scrollHeight > contentElement.value.clientHeight;\n };\n\n const { activePage, animation, isAnimationActive, isOpen, pages, previousPages, updatePage } =\n inject<BentoDialogPageConfigData>(DIALOG_PAGE_CONFIG_INJECTION_KEY);\n\n watch(() => isOpen.value, calculateScroll, { immediate: true });\n watch(() => showPage.value, calculateScroll, { immediate: true });\n\n // Logic to determine whether the back button should be shown on the page\n const showBackButton = computed(() => {\n if (props.previousPage) {\n return true;\n }\n if (props.previousPage === null) {\n return false;\n }\n return hasPreviousPages.value && showPage.value;\n });\n\n // Animation\n const updateAnimation = () => {\n animation.value = BentoDialogPageAnimation.TRANSITION_LEVEL_DEEPER;\n if (isAnimationActive) {\n isAnimationActive.value = false;\n }\n\n emit('animationend');\n };\n\n const startAnimation = () => {\n if (isAnimationActive) {\n isAnimationActive.value = true;\n }\n };\n\n // Previous page logic\n const hasPreviousPages = computed(() => previousPages.value.length > 1);\n const lastPage = computed(() => previousPages.value[previousPages.value.length - 1]);\n const isActivePageValid = computed(() => pages.value.some(page => page === activePage.value));\n\n const goToPreviousPage = async (page: string) => {\n if (page) {\n const index = previousPages.value.indexOf(page);\n if (index !== -1) {\n previousPages.value = previousPages.value.slice(0, index + 1);\n } else {\n previousPages.value = [page];\n }\n } else {\n previousPages.value.pop();\n }\n\n animation.value = BentoDialogPageAnimation.TRANSITION_LEVEL_UPPER;\n await nextTick();\n if (!isMounted.value) {\n return;\n }\n updatePage(lastPage.value);\n };\n\n // Add new page to the previousPage array to keep track of user navigation\n watch(\n () => activePage.value,\n async () => {\n await nextTick();\n if (!isMounted.value || !isOpen.value) {\n return;\n }\n\n if (!!activePage.value && !isActivePageValid.value) {\n if (isDevelopmentEnviroment) {\n // eslint-disable-next-line no-console\n console.error(\n `The activePage passed \"${activePage.value}\" does not match the id of any of the pages`\n );\n return;\n }\n }\n\n if (activePage.value !== lastPage.value) {\n previousPages.value.push(activePage.value);\n }\n },\n { immediate: true }\n );\n\n // Register page to parent component and inject data from parent component\n const registerPage = inject<BentoDialogPageRegisterPage>(DIALOG_PAGE_REGISTER_PAGE_INJECTION_KEY);\n const { unregisterPage } = registerPage(props.pageId);\n\n onMounted(() => {\n isMounted.value = true;\n // Recalculate on mount because the initial useScroll measurement can run before the content is fully sized.\n // Without this, a scrollable content container does not receive tabindex until the user scrolls.\n calculateScroll(true);\n });\n\n // Unregister page on unmounting the page\n onUnmounted(() => {\n isMounted.value = false;\n unregisterPage();\n });\n</script>\n\n<script lang=\"ts\">\n /**\n * DialogPage is an internal component used to render different pages of dialog components (Modal, ModalFullscreen and Sidepanel)\n *\n * @example\n * import { DialogPage } from '@/internal';\n *\n * export default {\n * components: { DialogPage },\n * template: `\n * <dialog-page pageId='step1' always-show-border>\n * <template #header>Header</template>\n * <template #content>Content</template>\n * <template #footer>Footer</template>\n * </dialog-page>\n * `\n * }\n */\n export default {\n i18n: { messages },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./dialog-page.scss\" />\n"],"names":["__default__","messages","slots","useSlots","hasSlot","useHasSlot","t","useI18n","contentElement","ref","hasScroll","isMounted","arrivedState","measure","useScroll","showPage","computed","activePage","props","computedClasses","headerConditionalClasses","footerConditionalClasses","isScrollable","onScroll","calculateScroll","watchedValue","nextTick","animation","isAnimationActive","isOpen","pages","previousPages","updatePage","inject","DIALOG_PAGE_CONFIG_INJECTION_KEY","watch","showBackButton","hasPreviousPages","updateAnimation","BentoDialogPageAnimation","emit","startAnimation","lastPage","isActivePageValid","page","goToPreviousPage","index","isDevelopmentEnviroment","registerPage","DIALOG_PAGE_REGISTER_PAGE_INJECTION_KEY","unregisterPage","onMounted","onUnmounted"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { ref as ke, watch as mt, markRaw as oo, onUnmounted as xt, getCurrentInstance as Rt, defineComponent as no, computed as Ve } from "vue";
2
2
  import { u as Lt } from "./index.CPOlyau9.js";
3
- import { f as ro } from "./button-actions.DdAWQn3c.js";
3
+ import { f as ro } from "./button-actions.bkcLUE1G.js";
4
4
  import { f as io } from "./index.CL3TXc0a.js";
5
5
  import { G as ao } from "./grab.D-sx9XVE.js";
6
6
  /* empty css */
@@ -1693,4 +1693,4 @@ export {
1693
1693
  En as a,
1694
1694
  wn as u
1695
1695
  };
1696
- //# sourceMappingURL=draggable-handle.CJ2udN5Z.js.map
1696
+ //# sourceMappingURL=draggable-handle.DgVdGC1V.js.map