@adyen/bento-vue2 1.71.0 → 1.72.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 (228) hide show
  1. package/README.md +3 -1
  2. package/dist/@types/index.d.ts +405 -581
  3. package/dist/action-bar.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 -0
  7. package/dist/assets/base-button.css +1 -1
  8. package/dist/assets/base-modal.css +1 -1
  9. package/dist/assets/button-actions.css +1 -0
  10. package/dist/assets/calendar.css +1 -1
  11. package/dist/assets/card.css +1 -1
  12. package/dist/assets/code-snippet.css +1 -1
  13. package/dist/assets/dashboard-section.css +1 -1
  14. package/dist/assets/data-grid-template.css +1 -1
  15. package/dist/assets/data-grid.css +1 -1
  16. package/dist/assets/date-picker.css +1 -1
  17. package/dist/assets/dialog-page.css +1 -1
  18. package/dist/assets/empty-state.css +1 -1
  19. package/dist/assets/field-label.css +1 -0
  20. package/dist/assets/file-uploader.css +1 -1
  21. package/dist/assets/filter-bar.css +1 -1
  22. package/dist/assets/focus-trap.css +1 -1
  23. package/dist/assets/input-field-phone-number.css +1 -1
  24. package/dist/assets/inspector.css +1 -1
  25. package/dist/assets/layout-row.css +1 -1
  26. package/dist/assets/modal-fullscreen.css +1 -1
  27. package/dist/assets/popper-container.css +1 -1
  28. package/dist/assets/selection-card-group.css +1 -1
  29. package/dist/assets/sidepanel.css +1 -1
  30. package/dist/assets/structured-list-item.css +1 -1
  31. package/dist/button.js +11 -9
  32. package/dist/button.js.map +1 -1
  33. package/dist/card.js +1 -1
  34. package/dist/checkbox.js +2 -2
  35. package/dist/chip.js +1 -1
  36. package/dist/chunks/{action-bar.C01Tjxh_.js → action-bar.Bxrtx1Vj.js} +3 -3
  37. package/dist/chunks/{action-bar.C01Tjxh_.js.map → action-bar.Bxrtx1Vj.js.map} +1 -1
  38. package/dist/chunks/ai-button.FRPkTHz6.js +67 -0
  39. package/dist/chunks/ai-button.FRPkTHz6.js.map +1 -0
  40. package/dist/chunks/{base-button.BB5tkzjh.js → base-button.Cv-1788W.js} +6 -6
  41. package/dist/chunks/base-button.Cv-1788W.js.map +1 -0
  42. package/dist/chunks/{base-modal.CnIt7hra.js → base-modal.DInbAZlp.js} +4 -4
  43. package/dist/chunks/{base-modal.CnIt7hra.js.map → base-modal.DInbAZlp.js.map} +1 -1
  44. package/dist/chunks/{button-actions-with-menu.B9R0J68W.js → button-actions-with-menu.BtWUxmSL.js} +2 -2
  45. package/dist/chunks/{button-actions-with-menu.B9R0J68W.js.map → button-actions-with-menu.BtWUxmSL.js.map} +1 -1
  46. package/dist/chunks/{toggle-button.B1Y2qhzJ.js → button-actions.55vIvDsX.js} +241 -239
  47. package/dist/chunks/button-actions.55vIvDsX.js.map +1 -0
  48. package/dist/chunks/button-actions.types.BptAXjD8.js.map +1 -1
  49. package/dist/chunks/{calendar.DjktWs25.js → calendar.M69sfyB9.js} +290 -287
  50. package/dist/chunks/{calendar.DjktWs25.js.map → calendar.M69sfyB9.js.map} +1 -1
  51. package/dist/chunks/{card.DTrBQQAm.js → card.C11dmth8.js} +2 -2
  52. package/dist/chunks/{card.DTrBQQAm.js.map → card.C11dmth8.js.map} +1 -1
  53. package/dist/chunks/{checkbox-group.lVv3mWHL.js → checkbox-group.Cr3WdkDM.js} +4 -4
  54. package/dist/chunks/{checkbox-group.lVv3mWHL.js.map → checkbox-group.Cr3WdkDM.js.map} +1 -1
  55. package/dist/chunks/{checkbox.C7Yu3rls.js → checkbox.D7-f9Y6w.js} +18 -18
  56. package/dist/chunks/{checkbox.C7Yu3rls.js.map → checkbox.D7-f9Y6w.js.map} +1 -1
  57. package/dist/chunks/{chevron-right.C--ZOC9j.js → chevron-left.BS24hEFa.js} +5 -5
  58. package/dist/chunks/chevron-left.BS24hEFa.js.map +1 -0
  59. package/dist/chunks/{chip.Bfi-ff5E.js → chip.omQX_Ziq.js} +2 -2
  60. package/dist/chunks/{chip.Bfi-ff5E.js.map → chip.omQX_Ziq.js.map} +1 -1
  61. package/dist/chunks/{code-snippet.BvhpH_JE.js → code-snippet.BGrwAxWy.js} +100 -91
  62. package/dist/chunks/code-snippet.BGrwAxWy.js.map +1 -0
  63. package/dist/chunks/{controls-group.DUr_o-vW.js → controls-group.CWeUgE2P.js} +2 -2
  64. package/dist/chunks/{controls-group.DUr_o-vW.js.map → controls-group.CWeUgE2P.js.map} +1 -1
  65. package/dist/chunks/{copy.CsyXGPuN.js → copy._BdbMnHK.js} +3 -3
  66. package/dist/chunks/{copy.CsyXGPuN.js.map → copy._BdbMnHK.js.map} +1 -1
  67. package/dist/chunks/{dashboard-section.CiFxBFnc.js → dashboard-section.e7ozaS9M.js} +3 -3
  68. package/dist/chunks/{dashboard-section.CiFxBFnc.js.map → dashboard-section.e7ozaS9M.js.map} +1 -1
  69. package/dist/chunks/{dashed-underline.CTtzy_vE.js → dashed-underline.CGU6o7ni.js} +3 -3
  70. package/dist/chunks/{dashed-underline.CTtzy_vE.js.map → dashed-underline.CGU6o7ni.js.map} +1 -1
  71. package/dist/chunks/{data-grid-template.CmfHBR3u.js → data-grid-template.BaPjUlZ2.js} +10 -10
  72. package/dist/chunks/data-grid-template.BaPjUlZ2.js.map +1 -0
  73. package/dist/chunks/{data-grid.D2AvGjyH.js → data-grid.B_Ha2vma.js} +772 -726
  74. package/dist/chunks/data-grid.B_Ha2vma.js.map +1 -0
  75. package/dist/chunks/{date-picker.Bhe5lCfr.js → date-picker.CGTMHUNH.js} +75 -69
  76. package/dist/chunks/date-picker.CGTMHUNH.js.map +1 -0
  77. package/dist/chunks/{date-range-picker.BsQ6kMzK.js → date-range-picker.ChGfJUPq.js} +7 -7
  78. package/dist/chunks/{date-range-picker.BsQ6kMzK.js.map → date-range-picker.ChGfJUPq.js.map} +1 -1
  79. package/dist/chunks/{dropdown-tag.DaVNZO_q.js → dropdown-tag.Bwl0fY7o.js} +3 -3
  80. package/dist/chunks/{dropdown-tag.DaVNZO_q.js.map → dropdown-tag.Bwl0fY7o.js.map} +1 -1
  81. package/dist/chunks/{dropdown.J5FaL_2T.js → dropdown.DQbTuKc5.js} +5 -5
  82. package/dist/chunks/{dropdown.J5FaL_2T.js.map → dropdown.DQbTuKc5.js.map} +1 -1
  83. package/dist/chunks/empty-state.DNTrhYUm.js +106 -0
  84. package/dist/chunks/empty-state.DNTrhYUm.js.map +1 -0
  85. package/dist/chunks/es6.MoTTyETW.js.map +1 -1
  86. package/dist/chunks/{error-message.BGuKk5tR.js → field-label.BKzuCnXr.js} +53 -53
  87. package/dist/chunks/field-label.BKzuCnXr.js.map +1 -0
  88. package/dist/chunks/{file-uploader.ZHBf2zwh.js → file-uploader.BEClGxsF.js} +3 -3
  89. package/dist/chunks/{file-uploader.ZHBf2zwh.js.map → file-uploader.BEClGxsF.js.map} +1 -1
  90. package/dist/chunks/{filter-bar.CNxqgSgM.js → filter-bar.Dnnv0rpV.js} +184 -185
  91. package/dist/chunks/filter-bar.Dnnv0rpV.js.map +1 -0
  92. package/dist/chunks/{fixed-scroller.DDYpO7Li.js → fixed-scroller.QCXpkadN.js} +2 -2
  93. package/dist/chunks/{fixed-scroller.DDYpO7Li.js.map → fixed-scroller.QCXpkadN.js.map} +1 -1
  94. package/dist/chunks/{focus-trap.COfrmVfx.js → focus-trap.BJfpIboH.js} +155 -144
  95. package/dist/chunks/{focus-trap.COfrmVfx.js.map → focus-trap.BJfpIboH.js.map} +1 -1
  96. package/dist/chunks/{footer-actions.CR8l2FSl.js → footer-actions.BTELM6rh.js} +2 -2
  97. package/dist/chunks/{footer-actions.CR8l2FSl.js.map → footer-actions.BTELM6rh.js.map} +1 -1
  98. package/dist/chunks/{header-meta.tZNYmQBF.js → header-meta.DZYH-qg-.js} +3 -3
  99. package/dist/chunks/{header-meta.tZNYmQBF.js.map → header-meta.DZYH-qg-.js.map} +1 -1
  100. package/dist/chunks/{header-with-views.BXZT6R6N.js → header-with-views.DjZa4Wob.js} +8 -8
  101. package/dist/chunks/{header-with-views.BXZT6R6N.js.map → header-with-views.DjZa4Wob.js.map} +1 -1
  102. package/dist/chunks/{header.CwlFMYus.js → header.CQMiTG7f.js} +3 -3
  103. package/dist/chunks/{header.CwlFMYus.js.map → header.CQMiTG7f.js.map} +1 -1
  104. package/dist/chunks/{info-icon.JAvdSXdT.js → info-icon.fB7jf3NJ.js} +3 -3
  105. package/dist/chunks/{info-icon.JAvdSXdT.js.map → info-icon.fB7jf3NJ.js.map} +1 -1
  106. package/dist/chunks/{input-field-password.C1bzrmje.js → input-field-password.BPujvbx8.js} +5 -5
  107. package/dist/chunks/{input-field-password.C1bzrmje.js.map → input-field-password.BPujvbx8.js.map} +1 -1
  108. package/dist/chunks/{input-field-phone-number.YTbO3djd.js → input-field-phone-number.bqUe_CVf.js} +5 -5
  109. package/dist/chunks/{input-field-phone-number.YTbO3djd.js.map → input-field-phone-number.bqUe_CVf.js.map} +1 -1
  110. package/dist/chunks/{input-field.o-Hie5W9.js → input-field.CwF6ldRY.js} +3 -3
  111. package/dist/chunks/{input-field.o-Hie5W9.js.map → input-field.CwF6ldRY.js.map} +1 -1
  112. package/dist/chunks/{inspector.DxteqciY.js → inspector.g3OErNAU.js} +2 -2
  113. package/dist/chunks/{inspector.DxteqciY.js.map → inspector.g3OErNAU.js.map} +1 -1
  114. package/dist/chunks/{listbox-option-tag.AsRozx37.js → listbox-option-tag.UaD4kmXc.js} +2 -2
  115. package/dist/chunks/{listbox-option-tag.AsRozx37.js.map → listbox-option-tag.UaD4kmXc.js.map} +1 -1
  116. package/dist/chunks/{modal-fullscreen.B_72Iyh-.js → modal-fullscreen.B-9Ke6Ya.js} +3 -3
  117. package/dist/chunks/{modal-fullscreen.B_72Iyh-.js.map → modal-fullscreen.B-9Ke6Ya.js.map} +1 -1
  118. package/dist/chunks/{modal.crwnBhJG.js → modal.qybFapnI.js} +4 -4
  119. package/dist/chunks/{modal.crwnBhJG.js.map → modal.qybFapnI.js.map} +1 -1
  120. package/dist/chunks/{pagination.B4SjTHnN.js → pagination.BWTyXMRW.js} +2 -2
  121. package/dist/chunks/{pagination.B4SjTHnN.js.map → pagination.BWTyXMRW.js.map} +1 -1
  122. package/dist/chunks/popover.types.iyDoIAOE.js +6 -0
  123. package/dist/chunks/popover.types.iyDoIAOE.js.map +1 -0
  124. package/dist/chunks/{popper-container.Dt0SuHXX.js → popper-container.C9KCAJxI.js} +12 -5
  125. package/dist/chunks/{popper-container.Dt0SuHXX.js.map → popper-container.C9KCAJxI.js.map} +1 -1
  126. package/dist/chunks/{radio-group.T5hXVLRz.js → radio-group.DHUa6baR.js} +4 -4
  127. package/dist/chunks/{radio-group.T5hXVLRz.js.map → radio-group.DHUa6baR.js.map} +1 -1
  128. package/dist/chunks/{rich-text-editor._5fF0vFL.js → rich-text-editor.C905JEDW.js} +4 -4
  129. package/dist/chunks/{rich-text-editor._5fF0vFL.js.map → rich-text-editor.C905JEDW.js.map} +1 -1
  130. package/dist/chunks/{search-bar.yIVTIbdP.js → search-bar.CKt_-tZH.js} +3 -3
  131. package/dist/chunks/{search-bar.yIVTIbdP.js.map → search-bar.CKt_-tZH.js.map} +1 -1
  132. package/dist/chunks/{secondary-nav.DBetOL_3.js → secondary-nav.B5L2bLmm.js} +2 -2
  133. package/dist/chunks/{secondary-nav.DBetOL_3.js.map → secondary-nav.B5L2bLmm.js.map} +1 -1
  134. package/dist/chunks/{segmented-control.DrShqTCa.js → segmented-control.Dc34mUMM.js} +2 -2
  135. package/dist/chunks/{segmented-control.DrShqTCa.js.map → segmented-control.Dc34mUMM.js.map} +1 -1
  136. package/dist/chunks/{selection-card-group.3QYPl3w3.js → selection-card-group.CBVKMu6b.js} +10 -10
  137. package/dist/chunks/{selection-card-group.3QYPl3w3.js.map → selection-card-group.CBVKMu6b.js.map} +1 -1
  138. package/dist/chunks/{sidepanel.U9XLcivw.js → sidepanel.uWNc58r7.js} +4 -4
  139. package/dist/chunks/{sidepanel.U9XLcivw.js.map → sidepanel.uWNc58r7.js.map} +1 -1
  140. package/dist/chunks/{step.DwXkOVky.js → step.D8blWwfR.js} +2 -2
  141. package/dist/chunks/{step.DwXkOVky.js.map → step.D8blWwfR.js.map} +1 -1
  142. package/dist/chunks/structured-list-item.BLalgOps.js +90 -0
  143. package/dist/chunks/structured-list-item.BLalgOps.js.map +1 -0
  144. package/dist/chunks/{summary-grid.types.BZlzUWVO.js → summary-grid.types.DqzYJ9_N.js} +5 -5
  145. package/dist/chunks/{summary-grid.types.BZlzUWVO.js.map → summary-grid.types.DqzYJ9_N.js.map} +1 -1
  146. package/dist/chunks/{tab.ClkH0GtX.js → tab.D8YyoNFV.js} +2 -2
  147. package/dist/chunks/{tab.ClkH0GtX.js.map → tab.D8YyoNFV.js.map} +1 -1
  148. package/dist/chunks/{tag.Dcm5YMUI.js → tag.Tjg4linG.js} +2 -2
  149. package/dist/chunks/{tag.Dcm5YMUI.js.map → tag.Tjg4linG.js.map} +1 -1
  150. package/dist/chunks/{textarea.B2jAycbX.js → textarea.DUPV-I-L.js} +2 -2
  151. package/dist/chunks/{textarea.B2jAycbX.js.map → textarea.DUPV-I-L.js.map} +1 -1
  152. package/dist/chunks/{timeline-item.Dhcs9a0S.js → timeline-item.DaRKHndA.js} +5 -5
  153. package/dist/chunks/{timeline-item.Dhcs9a0S.js.map → timeline-item.DaRKHndA.js.map} +1 -1
  154. package/dist/chunks/{tooltip.C94gYIPr.js → tooltip.DOD_4rkI.js} +2 -2
  155. package/dist/chunks/{tooltip.C94gYIPr.js.map → tooltip.DOD_4rkI.js.map} +1 -1
  156. package/dist/chunks/{tutorial.DAv_sABs.js → tutorial.BwnRyUoh.js} +4 -4
  157. package/dist/chunks/{tutorial.DAv_sABs.js.map → tutorial.BwnRyUoh.js.map} +1 -1
  158. package/dist/chunks/{use-cached-selected-values.DSDrNPbW.js → use-cached-selected-values.C7j6YhuC.js} +4 -4
  159. package/dist/chunks/use-cached-selected-values.C7j6YhuC.js.map +1 -0
  160. package/dist/code-snippet.js +1 -1
  161. package/dist/dashboard-template.js +1 -1
  162. package/dist/dashed-underline.js +1 -1
  163. package/dist/data-grid-template.js +1 -1
  164. package/dist/data-grid.js +1 -1
  165. package/dist/date-picker.js +2 -2
  166. package/dist/date-range-picker.js +2 -2
  167. package/dist/dropdown.js +3 -3
  168. package/dist/empty-state.js +1 -1
  169. package/dist/file-uploader.js +1 -1
  170. package/dist/filter-bar.js +1 -1
  171. package/dist/focus-trap.js +1 -1
  172. package/dist/header-with-views.js +1 -1
  173. package/dist/header.js +1 -1
  174. package/dist/index.js +174 -172
  175. package/dist/index.js.map +1 -1
  176. package/dist/info-icon.js +1 -1
  177. package/dist/input-field-password.js +1 -1
  178. package/dist/input-field-phone-number.js +1 -1
  179. package/dist/input-field.js +1 -1
  180. package/dist/inspector.js +1 -1
  181. package/dist/internal.js +11 -11
  182. package/dist/menu.js +1 -1
  183. package/dist/modal-fullscreen.js +1 -1
  184. package/dist/modal.js +2 -2
  185. package/dist/pagination.js +1 -1
  186. package/dist/popover.js +2 -2
  187. package/dist/popper-container.js +1 -1
  188. package/dist/radio-group.js +1 -1
  189. package/dist/rich-text-editor.js +1 -1
  190. package/dist/search-bar.js +2 -2
  191. package/dist/secondary-nav.js +1 -1
  192. package/dist/segmented-control.js +1 -1
  193. package/dist/selection-card.js +1 -1
  194. package/dist/sidepanel.js +1 -1
  195. package/dist/stepper.js +1 -1
  196. package/dist/structured-list.js +1 -1
  197. package/dist/styles/bento-dark.css +35 -16
  198. package/dist/styles/bento-light.css +34 -11
  199. package/dist/styles/bento.css +34 -11
  200. package/dist/styles/legacy.css +2108 -0
  201. package/dist/styles/styleguide.css +34 -11
  202. package/dist/styles/utility.css +12 -0
  203. package/dist/summary-grid.js +1 -1
  204. package/dist/tabs.js +1 -1
  205. package/dist/tag.js +1 -1
  206. package/dist/textarea.js +1 -1
  207. package/dist/timeline.js +1 -1
  208. package/dist/tutorial.js +1 -1
  209. package/dist/web-types.json +186 -14
  210. package/package.json +3 -3
  211. package/dist/assets/error-message.css +0 -1
  212. package/dist/assets/toggle-button.css +0 -1
  213. package/dist/chunks/base-button.BB5tkzjh.js.map +0 -1
  214. package/dist/chunks/chevron-right.C--ZOC9j.js.map +0 -1
  215. package/dist/chunks/code-snippet.BvhpH_JE.js.map +0 -1
  216. package/dist/chunks/data-grid-template.CmfHBR3u.js.map +0 -1
  217. package/dist/chunks/data-grid.D2AvGjyH.js.map +0 -1
  218. package/dist/chunks/date-picker.Bhe5lCfr.js.map +0 -1
  219. package/dist/chunks/empty-state.DAbj9xWF.js +0 -151
  220. package/dist/chunks/empty-state.DAbj9xWF.js.map +0 -1
  221. package/dist/chunks/error-message.BGuKk5tR.js.map +0 -1
  222. package/dist/chunks/filter-bar.CNxqgSgM.js.map +0 -1
  223. package/dist/chunks/popover.types.BUM8GOuO.js +0 -6
  224. package/dist/chunks/popover.types.BUM8GOuO.js.map +0 -1
  225. package/dist/chunks/structured-list-item.DHklFEiK.js +0 -87
  226. package/dist/chunks/structured-list-item.DHklFEiK.js.map +0 -1
  227. package/dist/chunks/toggle-button.B1Y2qhzJ.js.map +0 -1
  228. package/dist/chunks/use-cached-selected-values.DSDrNPbW.js.map +0 -1
@@ -1,23 +1,23 @@
1
- import { defineComponent as M, ref as g, computed as l, shallowRef as N, onMounted as Q, watch as Y, watchEffect as H } from "vue";
2
- import { s as V, H as D, t as e, L as Z, a as j, b as J, c as W, p as U, j as G, d as z, x as F, e as X, E as K, h as q, k as ee, C as _, f as P, i as te, g as T, l as ne, m as ae } from "./codemirror.Zv80n3Z2.js";
3
- import { c as oe, d as se, e as re, f as ie } from "./es6.MoTTyETW.js";
4
- import { B as le } from "./dropdown.J5FaL_2T.js";
5
- import { B as ce } from "./button.CilT7NmM.js";
6
- import { B as de } from "./typography.hlOAxsEn.js";
7
- import { B as pe } from "./loading-indicator.DXc7I1Lm.js";
8
- import { u as ge } from "./i18n.BQkEbtPM.js";
9
- import { E as ue } from "./expand.Bbielaja.js";
10
- import { h as fe } from "./base-modal.CnIt7hra.js";
11
- import { C as he } from "./copy.CsyXGPuN.js";
12
- import { n as me } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
1
+ import { defineComponent as Y, useAttrs as H, ref as g, computed as l, shallowRef as P, onMounted as V, watch as D, watchEffect as Z } from "vue";
2
+ import { s as j, H as J, t as e, L as W, a as U, b as G, c as z, p as F, j as X, d as K, x as q, e as ee, E as te, h as ne, k as ae, C as f, f as _, i as oe, g as A, l as se, m as ie } from "./codemirror.Zv80n3Z2.js";
3
+ import { c as re, d as le, e as ce, f as de } from "./es6.MoTTyETW.js";
4
+ import { B as pe } from "./dropdown.DQbTuKc5.js";
5
+ import { B as ue } from "./button.CilT7NmM.js";
6
+ import { B as ge } from "./typography.hlOAxsEn.js";
7
+ import { B as fe } from "./loading-indicator.DXc7I1Lm.js";
8
+ import { u as he } from "./i18n.BQkEbtPM.js";
9
+ import { E as me } from "./expand.Bbielaja.js";
10
+ import { h as be } from "./base-modal.DInbAZlp.js";
11
+ import { C as _e } from "./copy._BdbMnHK.js";
12
+ import { n as Oe } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
13
13
  import "../assets/code-snippet.css";
14
- const _e = {
15
- red: oe,
16
- orange: ie,
17
- green: se,
18
- blue: re,
14
+ const ve = {
15
+ red: re,
16
+ orange: de,
17
+ green: le,
18
+ blue: ce,
19
19
  invalid: "#ffffff"
20
- }, be = (t, n) => D.define([
20
+ }, Ce = (t, n) => J.define([
21
21
  {
22
22
  tag: e.keyword,
23
23
  color: t.red
@@ -84,9 +84,9 @@ const _e = {
84
84
  tag: e.invalid,
85
85
  color: t.invalid
86
86
  }
87
- ]), Oe = (t) => V(be(_e, t));
88
- var b = /* @__PURE__ */ ((t) => (t.INLINE = "inline", t.SINGLELINE = "singleline", t.MULTILINE = "multiline", t))(b || {}), s = /* @__PURE__ */ ((t) => (t.JSON = "json", t.XML = "xml", t.JAVA = "java", t.JAVASCRIPT = "javascript", t.PYTHON = "python", t.CSV = "csv", t))(s || {}), c = /* @__PURE__ */ ((t) => (t.ACTION = "action", t.CHANGE = "change", t))(c || {});
89
- const ve = J.deserialize({
87
+ ]), ye = (t) => j(Ce(ve, t));
88
+ var O = /* @__PURE__ */ ((t) => (t.INLINE = "inline", t.SINGLELINE = "singleline", t.MULTILINE = "multiline", t))(O || {}), i = /* @__PURE__ */ ((t) => (t.JSON = "json", t.XML = "xml", t.JAVA = "java", t.JAVASCRIPT = "javascript", t.PYTHON = "python", t.CSV = "csv", t))(i || {}), c = /* @__PURE__ */ ((t) => (t.ACTION = "action", t.CHANGE = "change", t))(c || {});
89
+ const Se = G.deserialize({
90
90
  version: 14,
91
91
  states: "nQVQPOOOOQO'#Ce'#CeOOQO'#Ca'#CaQVQPOOOOQO-E6_-E6_",
92
92
  stateData: "g~OWOS~OQPORPOSPO~OQRSR~",
@@ -99,10 +99,10 @@ const ve = J.deserialize({
99
99
  tokenizers: [0],
100
100
  topRules: { Program: [0, 1] },
101
101
  tokenPrec: 18
102
- }), Ce = j.define({
103
- parser: ve.configure({
102
+ }), Le = U.define({
103
+ parser: Se.configure({
104
104
  props: [
105
- W({
105
+ z({
106
106
  Separator: e.separator,
107
107
  Value: e.string,
108
108
  String: e.string,
@@ -112,123 +112,132 @@ const ve = J.deserialize({
112
112
  ]
113
113
  })
114
114
  });
115
- function ye() {
116
- return new Z(Ce);
115
+ function xe() {
116
+ return new W(Le);
117
117
  }
118
- const Se = {
119
- [s.JSON]: X,
120
- [s.XML]: F,
121
- [s.JAVASCRIPT]: z,
122
- [s.JAVA]: G,
123
- [s.PYTHON]: U,
124
- [s.CSV]: ye
125
- }, Le = (t) => async () => Se[t], xe = (t, n) => {
118
+ const Te = {
119
+ [i.JSON]: ee,
120
+ [i.XML]: q,
121
+ [i.JAVASCRIPT]: K,
122
+ [i.JAVA]: X,
123
+ [i.PYTHON]: F,
124
+ [i.CSV]: xe
125
+ }, Ne = (t) => async () => Te[t], Pe = (t, n) => {
126
126
  const a = t.doc.lineAt(n.from), o = /^\s*/.exec(a.text);
127
127
  return o ? o[0] : "";
128
- }, Ne = {
128
+ }, Ae = {
129
129
  key: "Enter",
130
130
  run: ({ state: t, dispatch: n }) => {
131
131
  const a = t.changeByRange((o) => {
132
132
  const d = `
133
- ${xe(t, o)}`;
133
+ ${Pe(t, o)}`;
134
134
  return {
135
135
  changes: { from: o.from, to: o.to, insert: d },
136
- range: K.cursor(o.from + d.length)
136
+ range: te.cursor(o.from + d.length)
137
137
  };
138
138
  });
139
139
  return n(t.update(a, { scrollIntoView: !0, userEvent: "input" })), !0;
140
140
  }
141
- }, Pe = {
141
+ }, Ee = {
142
142
  "en-US": {
143
+ codeSnippet: "Code snippet",
143
144
  expand: "Expand",
144
145
  nothingToDisplay: "Nothing to display",
145
146
  run: "Run"
146
147
  },
147
148
  "ja-JP": {
149
+ codeSnippet: "コードスニペット",
148
150
  expand: "展開",
149
151
  nothingToDisplay: "表示するものがありません"
150
152
  },
151
153
  "pt-BR": {
154
+ codeSnippet: "Trecho de código",
152
155
  expand: "Expandir",
153
156
  nothingToDisplay: "Nada para exibir"
154
157
  }
155
- }, Te = {
156
- i18n: { messages: Pe },
158
+ }, Ie = {
159
+ i18n: { messages: Ee },
157
160
  name: "bento-code-snippet"
158
- }, Ee = /* @__PURE__ */ M({
159
- ...Te,
161
+ }, Be = /* @__PURE__ */ Y({
162
+ ...Ie,
160
163
  props: {
161
164
  actionable: { type: Boolean, default: !1 },
162
165
  actionableText: { default: null },
163
166
  content: { default: "" },
164
167
  expandable: { type: Boolean, default: !1 },
165
168
  editable: { type: Boolean, default: !1 },
166
- lang: { default: s.JSON },
169
+ lang: { default: i.JSON },
167
170
  langLabel: { default: null },
168
171
  loading: { type: Boolean, default: !1 },
169
- variant: { default: b.MULTILINE }
172
+ variant: { default: O.MULTILINE }
170
173
  },
171
174
  emits: [c.ACTION, c.CHANGE],
172
175
  setup(t, { emit: n }) {
173
- const a = t, { t: o } = ge(), i = g(null), d = [], E = () => {
174
- }, I = l(() => a.langLabel ?? a.lang.toUpperCase()), u = l(() => a.variant === b.INLINE), A = l(() => ({
175
- "b-code-snippet--inline": u.value,
176
- "b-code-snippet--scrollable": !u.value
177
- })), B = l(() => ({
176
+ const a = t, o = H(), { t: s } = he(), d = g(null), E = [], I = () => {
177
+ }, B = l(() => a.langLabel ?? a.lang.toUpperCase()), p = l(() => a.variant === O.INLINE), R = l(() => ({
178
+ "b-code-snippet--inline": p.value,
179
+ "b-code-snippet--scrollable": !p.value
180
+ })), w = l(() => ({
178
181
  "b-code-snippet__code-area-content--editable": a.editable
179
- })), O = Le(a.lang), v = N(), f = N(), C = new _(), y = new _(), S = new _(), r = g(null), p = g(0), R = l(() => a.actionableText || o("run"));
180
- Q(async () => {
181
- const h = await O();
182
+ })), v = Ne(a.lang), C = P(), h = P(), y = new f(), S = new f(), L = new f(), x = new f(), r = g(null), u = g(0), k = l(() => a.actionableText || s("run"));
183
+ V(async () => {
184
+ const m = await v();
182
185
  r.value = a.content;
183
- const $ = ({ state: m }) => {
184
- r.value = m.doc.toString();
185
- }, L = [
186
- q(),
187
- ee.of([te, Ne]),
188
- C.of(h()),
189
- y.of(Oe(a.lang)),
190
- S.of(T.readOnly.of(!a.editable)),
191
- P.updateListener.of((m) => $(m))
186
+ const Q = ({ state: b }) => {
187
+ r.value = b.doc.toString();
188
+ }, T = [
189
+ ne(),
190
+ ae.of([oe, Ae]),
191
+ y.of(m()),
192
+ S.of(ye(a.lang)),
193
+ L.of(A.readOnly.of(!a.editable)),
194
+ x.of(
195
+ _.contentAttributes.of({
196
+ "aria-label": o["aria-label"] ?? s("codeSnippet"),
197
+ ...!p.value && { tabindex: "0" }
198
+ })
199
+ ),
200
+ _.updateListener.of((b) => Q(b))
192
201
  ];
193
- a.variant === "multiline" && L.push([ne(), ae()]);
194
- const x = T.create({
202
+ a.variant === "multiline" && T.push([se(), ie()]);
203
+ const N = A.create({
195
204
  doc: a.content,
196
- extensions: [...L]
205
+ extensions: [...T]
197
206
  });
198
- p.value = x.doc.length, f.value = new P({
199
- state: x,
200
- parent: v.value
207
+ u.value = N.doc.length, h.value = new _({
208
+ state: N,
209
+ parent: C.value
201
210
  });
202
- }), Y(
211
+ }), D(
203
212
  () => a.content,
204
213
  () => {
205
214
  if (a.content !== r.value) {
206
- const h = a.content.length;
207
- f.value.dispatch({
215
+ const m = a.content.length;
216
+ h.value.dispatch({
208
217
  changes: {
209
218
  from: 0,
210
- to: p.value,
219
+ to: u.value,
211
220
  insert: a.content
212
221
  }
213
- }), p.value = h;
222
+ }), u.value = m;
214
223
  }
215
224
  }
216
225
  );
217
- const w = () => {
226
+ const $ = () => {
218
227
  n(c.ACTION, r.value);
219
228
  };
220
- H(() => {
229
+ Z(() => {
221
230
  r.value !== null && n(c.CHANGE, r.value);
222
231
  });
223
- const k = g(!1);
224
- return { __sfc: !0, props: a, emit: n, t: o, selectedLanguage: i, availableLanguages: d, handleChangeLanguage: E, displayedLang: I, isInlineVariant: u, conditionalClasses: A, codeAreaContentConditionalClasses: B, loadLang: O, container: v, editor: f, languageConf: C, editorTheme: y, editorReadOnly: S, currentContents: r, contentLength: p, runText: R, onActionClicked: w, showModal: k, BentoDropdown: le, BentoButton: ce, BentoTypography: de, BentoLoadingIndicator: pe, Copy: he, ExpandIcon: ue, BaseModal: fe };
232
+ const M = g(!1);
233
+ return { __sfc: !0, props: a, emit: n, attrs: o, t: s, selectedLanguage: d, availableLanguages: E, handleChangeLanguage: I, displayedLang: B, isInlineVariant: p, conditionalClasses: R, codeAreaContentConditionalClasses: w, loadLang: v, container: C, editor: h, languageConf: y, editorTheme: S, editorReadOnly: L, editorAttributes: x, currentContents: r, contentLength: u, runText: k, onActionClicked: $, showModal: M, BentoDropdown: pe, BentoButton: ue, BentoTypography: ge, BentoLoadingIndicator: fe, Copy: _e, ExpandIcon: me, BaseModal: be };
225
234
  }
226
235
  });
227
- var Ie = function() {
236
+ var Re = function() {
228
237
  var n = this, a = n._self._c, o = n._self._setupProxy;
229
- return a("div", { staticClass: "b-code-snippet", class: o.conditionalClasses }, [o.isInlineVariant ? n._e() : a("section", { staticClass: "b-code-snippet__action-bar" }, [a("div", { staticClass: "b-code-snippet__action-bar--start" }, [o.availableLanguages.length > 0 ? a(o.BentoDropdown, n._b({ staticClass: "b-code-snippet__language-picker", attrs: { disabled: o.availableLanguages.length === 1, items: o.availableLanguages }, on: { input: o.handleChangeLanguage }, model: { value: o.selectedLanguage, callback: function(i) {
230
- o.selectedLanguage = i;
231
- }, expression: "selectedLanguage" } }, "bento-dropdown", n.$props, !1)) : n._e(), a(o.BentoTypography, { attrs: { el: "span", stronger: "" } }, [n._v(" " + n._s(o.displayedLang) + " ")])], 1), a("div", { staticClass: "b-code-snippet__action-bar--end" }, [n.loading ? a(o.BentoLoadingIndicator) : n._e(), o.currentContents !== null ? a(o.Copy, { staticClass: "b-structured-list__icon", attrs: { text: o.currentContents } }) : n._e(), n.expandable ? a(o.BentoButton, { attrs: { variant: "tertiary", condensed: "", "aria-label": o.t("expand") }, on: { click: function(i) {
238
+ return a("div", { staticClass: "b-code-snippet", class: o.conditionalClasses }, [o.isInlineVariant ? n._e() : a("section", { staticClass: "b-code-snippet__action-bar" }, [a("div", { staticClass: "b-code-snippet__action-bar--start" }, [o.availableLanguages.length > 0 ? a(o.BentoDropdown, n._b({ staticClass: "b-code-snippet__language-picker", attrs: { disabled: o.availableLanguages.length === 1, items: o.availableLanguages }, on: { input: o.handleChangeLanguage }, model: { value: o.selectedLanguage, callback: function(s) {
239
+ o.selectedLanguage = s;
240
+ }, expression: "selectedLanguage" } }, "bento-dropdown", n.$props, !1)) : n._e(), a(o.BentoTypography, { attrs: { el: "span", stronger: "" } }, [n._v(" " + n._s(o.displayedLang) + " ")])], 1), a("div", { staticClass: "b-code-snippet__action-bar--end" }, [n.loading ? a(o.BentoLoadingIndicator) : n._e(), o.currentContents !== null ? a(o.Copy, { staticClass: "b-structured-list__icon", attrs: { text: o.currentContents } }) : n._e(), n.expandable ? a(o.BentoButton, { attrs: { variant: "tertiary", condensed: "", "aria-label": o.t("expand") }, on: { click: function(s) {
232
241
  o.showModal = !0;
233
242
  } }, scopedSlots: n._u([{ key: "iconLeft", fn: function() {
234
243
  return [a(o.ExpandIcon)];
@@ -236,24 +245,24 @@ var Ie = function() {
236
245
  return [a(o.BentoTypography, { staticClass: "b-code-snippet__action-button", attrs: { el: "span" } }, [n._v(" " + n._s(o.runText) + " ")])];
237
246
  }, proxy: !0 }], null, !1, 4115763952) }) : n._e()], 1)]), n.content || n.editable ? a("code", { staticClass: "b-code-snippet__code-area" }, [a("div", { ref: "container", staticClass: "b-code-snippet__code-area-content", class: o.codeAreaContentConditionalClasses })]) : a("section", [n._t("empty-state", function() {
238
247
  return [a("div", { staticClass: "b-code-snippet__empty-state" }, [n._v(n._s(o.t("nothingToDisplay")))])];
239
- })], 2), n.expandable ? a(o.BaseModal, { staticClass: "b-code-snippet__modal", attrs: { "hide-close-button": !0, "custom-padding": "0px", "is-dismissible": !0, "is-open": o.showModal, size: "large" }, on: { "close-modal": function(i) {
248
+ })], 2), n.expandable ? a(o.BaseModal, { staticClass: "b-code-snippet__modal", attrs: { "hide-close-button": !0, "custom-padding": "0px", "is-dismissible": !0, "is-open": o.showModal, size: "large" }, on: { "close-modal": function(s) {
240
249
  o.showModal = !1;
241
250
  } }, scopedSlots: n._u([{ key: "content", fn: function() {
242
251
  return [a("bento-code-snippet", n._b({}, "bento-code-snippet", { ...n.$props, expandable: !1 }, !1))];
243
252
  }, proxy: !0 }], null, !1, 3343589027) }) : n._e()], 1);
244
- }, Ae = [], Be = /* @__PURE__ */ me(
245
- Ee,
246
- Ie,
247
- Ae,
253
+ }, we = [], ke = /* @__PURE__ */ Oe(
254
+ Be,
255
+ Re,
256
+ we,
248
257
  !1,
249
258
  null,
250
- "6ed17102"
259
+ "3d4802ff"
251
260
  );
252
- const Je = Be.exports;
261
+ const Ge = ke.exports;
253
262
  export {
254
- b as B,
255
- s as a,
263
+ O as B,
264
+ i as a,
256
265
  c as b,
257
- Je as c
266
+ Ge as c
258
267
  };
259
- //# sourceMappingURL=code-snippet.BvhpH_JE.js.map
268
+ //# sourceMappingURL=code-snippet.BGrwAxWy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-snippet.BGrwAxWy.js","sources":["../../src/components/code-snippet/highlight.ts","../../src/components/code-snippet/code-snippet.types.ts","../../../../node_modules/.pnpm/codemirror-lang-csv@0.1.1/node_modules/codemirror-lang-csv/dist/index.js","../../src/components/code-snippet/utils/get-lang-loader.ts","../../src/components/code-snippet/utils/indent-same-as-line-before-extension.ts","../../src/components/code-snippet/code-snippet.vue"],"sourcesContent":["import { HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport { tags as t } from '@lezer/highlight';\nimport {\n BCodeSnippetCodeAreaHighlightBlue,\n BCodeSnippetCodeAreaHighlightGreen,\n BCodeSnippetCodeAreaHighlightOrange,\n BCodeSnippetCodeAreaHighlightRed,\n} from '@adyen/bento-design-tokens/dist/js/bento/es6';\nimport { type BentoCodeSnippetSupportedLanguage } from './code-snippet.types';\n\nconst lightThemeColors = {\n red: BCodeSnippetCodeAreaHighlightRed,\n orange: BCodeSnippetCodeAreaHighlightOrange,\n green: BCodeSnippetCodeAreaHighlightGreen,\n blue: BCodeSnippetCodeAreaHighlightBlue,\n invalid: '#ffffff',\n};\n\nconst highlightStyle = (colors, language: BentoCodeSnippetSupportedLanguage | `${BentoCodeSnippetSupportedLanguage}`) =>\n HighlightStyle.define([\n {\n tag: t.keyword,\n color: colors.red,\n },\n {\n tag: [t.name, t.deleted, t.character, t.propertyName, t.macroName],\n color: colors.green,\n },\n {\n tag: [t.function(t.variableName), t.labelName],\n color: colors.blue,\n },\n {\n tag: [t.color, t.constant(t.name), t.standard(t.name)],\n color: colors.red,\n },\n {\n tag: [t.definition(t.name), ...(language !== 'json' ? [t.separator] : [])],\n color: colors.red,\n },\n {\n tag: [t.typeName, t.className, t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace],\n color: colors.orange,\n },\n {\n tag: [t.operator, t.operatorKeyword, t.url, t.escape, t.regexp, t.link, t.special(t.string)],\n color: colors.blue,\n },\n {\n tag: [t.meta, t.comment],\n color: colors.orange,\n },\n {\n tag: t.strong,\n fontWeight: 'bold',\n },\n {\n tag: t.emphasis,\n fontStyle: 'italic',\n },\n {\n tag: t.strikethrough,\n textDecoration: 'line-through',\n },\n {\n tag: t.link,\n color: colors.orange,\n textDecoration: 'underline',\n },\n {\n tag: t.heading,\n fontWeight: 'bold',\n color: colors.blue,\n },\n {\n tag: [t.atom, t.bool, t.special(t.variableName)],\n color: colors.red,\n },\n {\n tag: [t.processingInstruction, t.string, t.inserted],\n color: colors.blue,\n },\n {\n tag: t.invalid,\n color: colors.invalid,\n },\n ]);\n\nexport const lightThemeHighlight = (\n language: BentoCodeSnippetSupportedLanguage | `${BentoCodeSnippetSupportedLanguage}`\n) => syntaxHighlighting(highlightStyle(lightThemeColors, language));\n","/**\n * @deprecated for usage with properties since version 2.0. Use the string literal instead.\n */\nexport enum BentoCodeSnippetVariant {\n INLINE = 'inline',\n SINGLELINE = 'singleline',\n MULTILINE = 'multiline',\n}\n\n/**\n * @deprecated for usage with properties since version 2.0. Use the string literal instead.\n */\nexport enum BentoCodeSnippetSupportedLanguage {\n JSON = 'json',\n XML = 'xml',\n JAVA = 'java',\n JAVASCRIPT = 'javascript',\n PYTHON = 'python',\n CSV = 'csv',\n}\n\nexport enum BentoCodeSnippetEvent {\n ACTION = 'action',\n CHANGE = 'change',\n}\n\nexport interface BentoCodeSnippetProps {\n /**\n * Displays a button that when clicked will emit an action event\n * Leaves to the parent component the logic of what to do with it\n */\n actionable?: boolean;\n\n /**\n * Displays a button that when clicked will emit a run event\n * Leaves to the parent component the logic of what to do with it\n */\n actionableText?: string;\n\n /**\n * The code content\n */\n content?: string;\n\n /**\n * Displays a button that can expand the codeblock into a modal to easily\n * view large blocks of code.\n */\n expandable?: boolean;\n\n /**\n * Allows editing of the code-snippet content by the user\n */\n editable?: boolean;\n\n /**\n * Language name for syntax highlighting rules\n */\n lang?: BentoCodeSnippetSupportedLanguage | `${BentoCodeSnippetSupportedLanguage}`;\n\n /**\n * Label to show in the action-bar, describing the language\n */\n langLabel?: string;\n\n /**\n * Toggles the loading indicator within the action bar\n */\n loading?: boolean;\n\n /**\n * Defines the variant of code-snippet\n */\n variant?: BentoCodeSnippetVariant | `${BentoCodeSnippetVariant}`;\n}\n","import { LRParser } from '@lezer/lr';\nimport { LRLanguage, LanguageSupport } from '@codemirror/language';\nimport { styleTags, tags } from '@lezer/highlight';\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst parser = LRParser.deserialize({\n version: 14,\n states: \"nQVQPOOOOQO'#Ce'#CeOOQO'#Ca'#CaQVQPOOOOQO-E6_-E6_\",\n stateData: \"g~OWOS~OQPORPOSPO~OQRSR~\",\n goto: \"eYPPPPPZPPPaQRORSRTQOR\",\n nodeNames: \"⚠ Program String Separator Value\",\n maxTerm: 9,\n skippedNodes: [0],\n repeatNodeCount: 1,\n tokenData: \"'Y~RZOYtYZ!cZrtrs!hs|t|}'T}!]t!]!^'T!^;'St;'S;=`!]<%lOt~yUS~OYtZ|t}!]t!^;'St;'S;=`!]<%lOt~!`P;=`<%lt~!hOW~~!m]S~OY!hYZ#fZr!hrs%Ss|!h|}#f}!]!h!]!^#f!^#O!h#O#P%m#P;'S!h;'S;=`&}<%lO!h~#iVOr#frs$Os#O#f#O#P$T#P;'S#f;'S;=`$|<%lO#f~$TOQ~~$WRO;'S#f;'S;=`$a;=`O#f~$dWOr#frs$Os#O#f#O#P$T#P;'S#f;'S;=`$|;=`<%l#f<%lO#f~%PP;=`<%l#f~%ZUQ~S~OYtZ|t}!]t!^;'St;'S;=`!]<%lOt~%rYS~OY!hYZ#fZ|!h|}#f}!]!h!]!^#f!^;'S!h;'S;=`&b;=`<%l#f<%lO!h~&eWOr#frs$Os#O#f#O#P$T#P;'S#f;'S;=`$|;=`<%l!h<%lO#f~'QP;=`<%l!h~'YOR~\",\n tokenizers: [0],\n topRules: {\"Program\":[0,1]},\n tokenPrec: 18\n});\n\nconst csvLanguage = LRLanguage.define({\n parser: parser.configure({\n props: [\n styleTags({\n Separator: tags.separator,\n Value: tags.string,\n String: tags.string,\n LineComment: tags.lineComment,\n \"( )\": tags.paren,\n }),\n ],\n }),\n});\nfunction csv() {\n return new LanguageSupport(csvLanguage);\n}\n\nexport { csv, csvLanguage };\n","import { BentoCodeSnippetSupportedLanguage } from '@/components/code-snippet/code-snippet.types';\nimport { json } from '@codemirror/lang-json';\nimport { xml } from '@codemirror/lang-xml';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { java } from '@codemirror/lang-java';\nimport { python } from '@codemirror/lang-python';\nimport { csv } from 'codemirror-lang-csv';\nimport type { LanguageSupport } from '@codemirror/language';\n\n/**\n * TODO: This should be handled with dynamic imports,\n * without relying on importing every single language/package available.\n * These supported types need to be kept in line with the ones in packages/vue2/src/components/code-snippet/code-snippet.types.ts enum\n */\nconst importsMap: Record<BentoCodeSnippetSupportedLanguage, () => LanguageSupport> = {\n [BentoCodeSnippetSupportedLanguage.JSON]: json,\n [BentoCodeSnippetSupportedLanguage.XML]: xml,\n [BentoCodeSnippetSupportedLanguage.JAVASCRIPT]: javascript,\n [BentoCodeSnippetSupportedLanguage.JAVA]: java,\n [BentoCodeSnippetSupportedLanguage.PYTHON]: python,\n [BentoCodeSnippetSupportedLanguage.CSV]: csv,\n};\n\n/**\n * Returns a language loder for `CodeMirror`.\n * Supported languages: json, xml, javascript & java\n *\n * @param language Language to be used\n * @returns Language configuration loader to be used in codemirror\n */\nexport const getLangLoader = (language: BentoCodeSnippetSupportedLanguage | `${BentoCodeSnippetSupportedLanguage}`) => {\n const loadLang = async () => importsMap[language];\n\n return loadLang;\n};\n","import { EditorSelection, type EditorState, type SelectionRange } from '@codemirror/state';\n\n/**\n * Calculate indentation for a new line based on line before it.\n * @param state - The editor state\n * @param line - the selection range, in this case one line\n * @returns the indentation string to be pre-pended on a new line.\n */\nconst getIndentation = (state: EditorState, line: SelectionRange) => {\n const currentLine = state.doc.lineAt(line.from);\n const indentMatch = /^\\s*/.exec(currentLine.text);\n return indentMatch ? indentMatch[0] : '';\n};\n\n/**\n * This extension to codemirror will, upon pressing the 'Enter' key, indent the new line\n * the same as the line before it.\n */\nexport const INDENT_SAME_AS_LINE_BEFORE = {\n key: 'Enter',\n run: ({ state, dispatch }) => {\n const changes = state.changeByRange(range => {\n const indentation = getIndentation(state, range);\n const newText = `\\n${indentation}`;\n return {\n changes: { from: range.from, to: range.to, insert: newText },\n range: EditorSelection.cursor(range.from + newText.length),\n };\n });\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: 'input' }));\n return true;\n },\n};\n\nexport default INDENT_SAME_AS_LINE_BEFORE;\n","<template>\n <div class=\"b-code-snippet\" :class=\"conditionalClasses\">\n <section v-if=\"!isInlineVariant\" class=\"b-code-snippet__action-bar\">\n <div class=\"b-code-snippet__action-bar--start\">\n <bento-dropdown\n v-if=\"availableLanguages.length > 0\"\n v-model=\"selectedLanguage\"\n v-bind=\"$props\"\n :disabled=\"availableLanguages.length === 1\"\n :items=\"availableLanguages\"\n class=\"b-code-snippet__language-picker\"\n @input=\"handleChangeLanguage\"\n />\n <bento-typography el=\"span\" stronger>\n {{ displayedLang }}\n </bento-typography>\n </div>\n <div class=\"b-code-snippet__action-bar--end\">\n <bento-loading-indicator v-if=\"loading\" />\n <copy v-if=\"currentContents !== null\" class=\"b-structured-list__icon\" :text=\"currentContents\" />\n <bento-button\n v-if=\"expandable\"\n variant=\"tertiary\"\n condensed\n :aria-label=\"t('expand')\"\n @click=\"showModal = true\"\n >\n <template #iconLeft>\n <expand-icon />\n </template>\n </bento-button>\n <bento-button v-if=\"actionable\" variant=\"primary\" tertiary condensed @click=\"onActionClicked\">\n <template #iconLeft>\n <bento-typography el=\"span\" class=\"b-code-snippet__action-button\">\n {{ runText }}\n </bento-typography>\n </template>\n </bento-button>\n </div>\n </section>\n <code v-if=\"content || editable\" class=\"b-code-snippet__code-area\">\n <div ref=\"container\" class=\"b-code-snippet__code-area-content\" :class=\"codeAreaContentConditionalClasses\" />\n </code>\n <section v-else>\n <slot name=\"empty-state\">\n <!-- TODO: switch with empty-state component when ready -->\n <div class=\"b-code-snippet__empty-state\">{{ t('nothingToDisplay') }}</div>\n </slot>\n </section>\n <base-modal\n v-if=\"expandable\"\n class=\"b-code-snippet__modal\"\n :hide-close-button=\"true\"\n :custom-padding=\"'0px'\"\n :is-dismissible=\"true\"\n :is-open=\"showModal\"\n size=\"large\"\n @close-modal=\"showModal = false\"\n >\n <template #content>\n <bento-code-snippet v-bind=\"{ ...$props, expandable: false }\" />\n </template>\n </base-modal>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, type HTMLAttributes, onMounted, ref, shallowRef, useAttrs, watch, watchEffect } from 'vue';\n import { EditorView, highlightActiveLine, keymap, lineNumbers } from '@codemirror/view';\n import { Compartment, EditorState } from '@codemirror/state';\n import { history, indentWithTab } from '@codemirror/commands';\n import { lightThemeHighlight } from './highlight';\n import { getLangLoader, INDENT_SAME_AS_LINE_BEFORE } from './utils';\n import { BentoDropdown } from '@/components/dropdown';\n import { BentoButton } from '@/components/button';\n import { BentoTypography } from '@/components/typography';\n import { BentoLoadingIndicator } from '@/components/loading-indicator';\n import { useI18n } from '@/utils/ts/i18n';\n import { Copy } from '@/internal';\n import {\n BentoCodeSnippetEvent,\n type BentoCodeSnippetProps,\n BentoCodeSnippetSupportedLanguage,\n BentoCodeSnippetVariant,\n } from './code-snippet.types';\n import ExpandIcon from '@adyen/ui-assets-icons-16/vue/expand';\n import BaseModal from '@/components/modal/components/base-modal/base-modal.vue';\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const props = defineProps({\n actionable: { type: Boolean, default: false },\n actionableText: { default: null },\n content: { default: '' },\n expandable: { type: Boolean, default: false },\n editable: { type: Boolean, default: false },\n lang: { default: BentoCodeSnippetSupportedLanguage.JSON },\n langLabel: { default: null },\n loading: { type: Boolean, default: false },\n variant: { default: BentoCodeSnippetVariant.MULTILINE }\n});\n\n const emit = defineEmits([BentoCodeSnippetEvent.ACTION, BentoCodeSnippetEvent.CHANGE]);\n\n const attrs = useAttrs();\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n\n // language\n const selectedLanguage = ref<string | null>(null);\n const availableLanguages = []; // TODO: implement\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n const handleChangeLanguage = () => {};\n const displayedLang = computed(() => props.langLabel ?? props.lang.toUpperCase());\n\n const isInlineVariant = computed(() => props.variant === BentoCodeSnippetVariant.INLINE);\n\n const conditionalClasses = computed(() => ({\n 'b-code-snippet--inline': isInlineVariant.value,\n 'b-code-snippet--scrollable': !isInlineVariant.value,\n }));\n\n const codeAreaContentConditionalClasses = computed(() => ({\n 'b-code-snippet__code-area-content--editable': props.editable,\n }));\n\n const loadLang = getLangLoader(props.lang);\n\n const container = shallowRef<HTMLDivElement>();\n const editor = shallowRef<EditorView>();\n const languageConf = new Compartment();\n const editorTheme = new Compartment();\n const editorReadOnly = new Compartment();\n const editorAttributes = new Compartment();\n\n const currentContents = ref(null);\n const contentLength = ref(0);\n\n const runText = computed(() => props.actionableText || t('run'));\n\n onMounted(async () => {\n const language = await loadLang();\n\n // alongside the updateListener plugin it acts as a watcher of changes to the editor state\n currentContents.value = props.content;\n const updateCurrentContents = ({ state }) => {\n currentContents.value = state.doc.toString();\n };\n\n const extensions = [\n highlightActiveLine(),\n keymap.of([indentWithTab, INDENT_SAME_AS_LINE_BEFORE]),\n languageConf.of(language()),\n editorTheme.of(lightThemeHighlight(props.lang)),\n editorReadOnly.of(EditorState.readOnly.of(!props.editable)),\n editorAttributes.of(\n EditorView.contentAttributes.of({\n 'aria-label': (attrs['aria-label'] as HTMLAttributes['aria-label']) ?? t('codeSnippet'),\n ...(!isInlineVariant.value && { tabindex: '0' }),\n })\n ),\n EditorView.updateListener.of(content => updateCurrentContents(content)),\n ];\n\n if (props.variant === 'multiline') {\n extensions.push([lineNumbers(), history()]);\n }\n\n const state = EditorState.create({\n doc: props.content,\n extensions: [...extensions],\n });\n contentLength.value = state.doc.length;\n\n editor.value = new EditorView({\n state,\n parent: container.value,\n });\n });\n watch(\n () => props.content,\n () => {\n if (props.content !== currentContents.value) {\n const upcomingContentLength = props.content.length;\n editor.value.dispatch({\n changes: {\n from: 0,\n to: contentLength.value,\n insert: props.content,\n },\n });\n contentLength.value = upcomingContentLength;\n }\n }\n );\n\n const onActionClicked = () => {\n emit(BentoCodeSnippetEvent.ACTION, currentContents.value);\n };\n\n watchEffect(() => {\n if (currentContents.value !== null) {\n emit(BentoCodeSnippetEvent.CHANGE, currentContents.value);\n }\n });\n\n const showModal = ref(false);\n</script>\n\n<script lang=\"ts\">\n /**\n * A code-snippet is a container to display code in a readable way.\n * Come with added functionalities like syntax highlighting, editing and actioning the code\n *\n * @example\n * import { BentoCodeSnippet } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoCodeSnippet },\n * template: `\n * <bento-code-snippet :variant=\"BentoCodeSnippetVariant.MULTILINE\" content=\"{ example: 1234 }\" />\n * `\n * }\n */\n export default {\n i18n: { messages },\n name: 'bento-code-snippet',\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./code-snippet.scss\"></style>\n"],"names":["lightThemeColors","BCodeSnippetCodeAreaHighlightRed","BCodeSnippetCodeAreaHighlightOrange","BCodeSnippetCodeAreaHighlightGreen","BCodeSnippetCodeAreaHighlightBlue","highlightStyle","colors","language","HighlightStyle","tags","lightThemeHighlight","syntaxHighlighting","BentoCodeSnippetVariant","BentoCodeSnippetVariant2","BentoCodeSnippetSupportedLanguage","BentoCodeSnippetSupportedLanguage2","BentoCodeSnippetEvent","BentoCodeSnippetEvent2","parser","LRParser","csvLanguage","LRLanguage","styleTags","csv","LanguageSupport","importsMap","json","xml","javascript","java","python","getLangLoader","getIndentation","state","line","currentLine","indentMatch","INDENT_SAME_AS_LINE_BEFORE","dispatch","changes","range","newText","EditorSelection","__default__","messages","attrs","useAttrs","t","useI18n","selectedLanguage","ref","availableLanguages","handleChangeLanguage","displayedLang","computed","props","isInlineVariant","conditionalClasses","codeAreaContentConditionalClasses","loadLang","container","shallowRef","editor","languageConf","Compartment","editorTheme","editorReadOnly","editorAttributes","currentContents","contentLength","runText","onMounted","updateCurrentContents","state2","extensions","highlightActiveLine","keymap","indentWithTab","EditorState","EditorView","content","lineNumbers","history","watch","upcomingContentLength","onActionClicked","emit","watchEffect","showModal"],"mappings":"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","x_google_ignoreList":[2]}
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as c, useAttrs as u, useSlots as b, computed as a } from "vue";
2
2
  import { d as f, B as _ } from "./typography.hlOAxsEn.js";
3
3
  import { u as m } from "./use-has-slot.C9lQZ6nz.js";
4
- import { F as h } from "./error-message.BGuKk5tR.js";
4
+ import { F as h } from "./field-label.BKzuCnXr.js";
5
5
  import { n as y } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
6
6
  import "../assets/controls-group.css";
7
7
  const g = {}, C = /* @__PURE__ */ c({
@@ -81,4 +81,4 @@ const F = v.exports;
81
81
  export {
82
82
  F as C
83
83
  };
84
- //# sourceMappingURL=controls-group.DUr_o-vW.js.map
84
+ //# sourceMappingURL=controls-group.CWeUgE2P.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"controls-group.DUr_o-vW.js","sources":["../../src/components/internal/controls-group/controls-group.vue"],"sourcesContent":["<template>\n <fieldset\n class=\"b-controls-group\"\n :class=\"conditionalClasses\"\n :form=\"form\"\n :disabled=\"disabled\"\n :aria-describedby=\"ariaAttributes['aria-describedby']\"\n >\n <legend class=\"b-controls-group__label-container\" :class=\"legendConditionalClasses\">\n <field-label\n v-if=\"label\"\n class=\"b-controls-group__label\"\n :label=\"label\"\n :tooltip-text=\"tooltipText\"\n :optional=\"optional\"\n :required=\"required\"\n />\n <bento-typography\n v-if=\"description || hasSlot('description')\"\n class=\"b-controls-group__description\"\n el=\"span\"\n >\n <slot name=\"description\">\n {{ description }}\n </slot>\n </bento-typography>\n </legend>\n <slot />\n </fieldset>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, useAttrs, useSlots } from 'vue';\n import { BentoTypography } from '@/components/typography';\n import { FieldLabel } from '@/components/internal/field-label';\n import { deprecate } from '@/utils/ts/deprecate';\n import { useHasSlot } from '@/composables';\n\n const attrs = useAttrs();\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n\n const props = defineProps({\n /**\n * Descriptive supporting text visbile underneath the label.\n */\n description: { type: String, default: null },\n\n /**\n * The name of the component to cite when throwing a depreacte error.\n */\n componentName: { type: String, required: true },\n\n /**\n * Sets all child controls of the <fieldset> as disabled.\n */\n disabled: { type: Boolean, default: false },\n\n /**\n * The value of the id attribute of a <form> element the <fieldset> is to part of, even if it is not inside the form itself.\n */\n form: { type: String, default: null },\n\n /**\n * Shows/hides the group label.\n */\n hideLabel: { type: Boolean, default: null },\n\n /**\n * The name associated with the group. Required for accessibility purposes.\n * The label is shown when `hideLabel` is set to `true` or if `description` is passed\n */\n label: { type: String, required: true },\n\n /**\n * Indicates the field is optional.\n */\n optional: { type: Boolean, default: false },\n\n /**\n * Indicates the field is required.\n */\n required: { type: Boolean, default: false },\n\n /**\n * Tooltip message.\n */\n tooltipText: { type: String, default: null },\n });\n\n const ariaAttributes = computed(() => ({\n 'aria-describedby': attrs['aria-describedby']?.toString() as string,\n }));\n\n const conditionalClasses = computed(() => ({\n 'b-controls-group--disabled': props.disabled,\n }));\n\n const legendConditionalClasses = computed(() => {\n const isLabelAndDescriptionPresent = props.label && (props.description || hasSlot('description'));\n const shouldShowLabel = isLabelAndDescriptionPresent || props.hideLabel === false;\n\n return {\n 'b-controls-group__label-container--hidden': !shouldShowLabel,\n };\n });\n\n // eslint-disable-next-line eqeqeq -- Needs to show deprecate message when hideLabel is not set and no description available\n const hasNoPropsDefined = !(props.description || hasSlot('description')) && props.hideLabel == undefined;\n if (hasNoPropsDefined) {\n deprecate(\n `${props.componentName}: The property \\`label\\` will always be rendered by default.`,\n `After version 2.0.0, the label will be shown by default.\n To continue hiding the label set \\`:hide-label=\"true\"\\`. Up until version 2.0.0, to display the label set \\`hide-label=\"false\"\\`.\n \\`label\\` will always be rendered when \\`description\\` is passed alongside with \\`label\\``,\n `2.0.0`\n );\n }\n</script>\n\n<script lang=\"ts\">\n /**\n * A controls group components should be used whenever it is necessary to group a set of controls (i.e. radio buttons or checkboxes)\n * This component conforms to the official WAI-ARIA guidelines for grouping controls: https://www.w3.org/WAI/tutorials/forms/grouping/\n *\n * NOTE: This component should not be used by itself but more implemented by other exported components\n * @example\n * import { ControlsGroup, BentoCheckbox, BentoRadioButton } from '@adyen/bento-vue2/';\n *\n * export default {\n * components: { ControlsGroup, BentoRadioButton },\n * template: `\n * <controls-group\n * label=\"Your group label\"\n * description=\"Description\"\n * >\n * <bento-radio-button\n * disabled\n * value=\"inputRadio\"\n * >\n * Label text\n * </bento-radio-button>\n * <bento-radio-button\n * value=\"inputRadio\"\n * >\n * Another label text\n * </bento-radio-button>\n * </controls-group>\n * `\n * };\n */\n export default {};\n</script>\n\n<style lang=\"scss\" scoped src=\"./controls-group.scss\" />\n"],"names":["__default__","attrs","useAttrs","slots","useSlots","hasSlot","useHasSlot","ariaAttributes","computed","_a","conditionalClasses","props","legendConditionalClasses","hasNoPropsDefined","deprecate"],"mappings":";;;;;;AAuJI,MAAAA,IAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAjHAC,IAAAC,EAAA,GACAC,IAAAC,EAAA,GACAC,IAAAC,EAAAH,CAAA,GAkDAI,IAAAC,EAAA,MAAA;;AAAA;AAAA,QAAuC,qBAAAC,IAAAR,EAAA,kBAAA,MAAA,gBAAAQ,EAAA;AAAA,MACqB;AAAA,KAAA,GAG5DC,IAAAF,EAAA,OAAA;AAAA,MAA2C,8BAAAG,EAAA;AAAA,IACH,EAAA,GAGxCC,IAAAJ,EAAA,OAII;AAAA,MAAO,6CAAA,EAHPG,EAAA,UAAAA,EAAA,eAAAN,EAAA,aAAA,MACAM,EAAA,cAAA;AAAA,IAGkD,EAClD,GAIJE,IAAA,EAAAF,EAAA,eAAAN,EAAA,aAAA,MAAAM,EAAA,aAAA;AACA,WAAAE,KACIC;AAAA,MAAA,GAAAH,EAAA,aAAA;AAAA,MAC0B;AAAA,MACtB;AAAA,IAGA;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"controls-group.CWeUgE2P.js","sources":["../../src/components/internal/controls-group/controls-group.vue"],"sourcesContent":["<template>\n <fieldset\n class=\"b-controls-group\"\n :class=\"conditionalClasses\"\n :form=\"form\"\n :disabled=\"disabled\"\n :aria-describedby=\"ariaAttributes['aria-describedby']\"\n >\n <legend class=\"b-controls-group__label-container\" :class=\"legendConditionalClasses\">\n <field-label\n v-if=\"label\"\n class=\"b-controls-group__label\"\n :label=\"label\"\n :tooltip-text=\"tooltipText\"\n :optional=\"optional\"\n :required=\"required\"\n />\n <bento-typography\n v-if=\"description || hasSlot('description')\"\n class=\"b-controls-group__description\"\n el=\"span\"\n >\n <slot name=\"description\">\n {{ description }}\n </slot>\n </bento-typography>\n </legend>\n <slot />\n </fieldset>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, useAttrs, useSlots } from 'vue';\n import { BentoTypography } from '@/components/typography';\n import { FieldLabel } from '@/components/internal/field-label';\n import { deprecate } from '@/utils/ts/deprecate';\n import { useHasSlot } from '@/composables';\n\n const attrs = useAttrs();\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n\n const props = defineProps({\n /**\n * Descriptive supporting text visbile underneath the label.\n */\n description: { type: String, default: null },\n\n /**\n * The name of the component to cite when throwing a depreacte error.\n */\n componentName: { type: String, required: true },\n\n /**\n * Sets all child controls of the <fieldset> as disabled.\n */\n disabled: { type: Boolean, default: false },\n\n /**\n * The value of the id attribute of a <form> element the <fieldset> is to part of, even if it is not inside the form itself.\n */\n form: { type: String, default: null },\n\n /**\n * Shows/hides the group label.\n */\n hideLabel: { type: Boolean, default: null },\n\n /**\n * The name associated with the group. Required for accessibility purposes.\n * The label is shown when `hideLabel` is set to `true` or if `description` is passed\n */\n label: { type: String, required: true },\n\n /**\n * Indicates the field is optional.\n */\n optional: { type: Boolean, default: false },\n\n /**\n * Indicates the field is required.\n */\n required: { type: Boolean, default: false },\n\n /**\n * Tooltip message.\n */\n tooltipText: { type: String, default: null },\n });\n\n const ariaAttributes = computed(() => ({\n 'aria-describedby': attrs['aria-describedby']?.toString() as string,\n }));\n\n const conditionalClasses = computed(() => ({\n 'b-controls-group--disabled': props.disabled,\n }));\n\n const legendConditionalClasses = computed(() => {\n const isLabelAndDescriptionPresent = props.label && (props.description || hasSlot('description'));\n const shouldShowLabel = isLabelAndDescriptionPresent || props.hideLabel === false;\n\n return {\n 'b-controls-group__label-container--hidden': !shouldShowLabel,\n };\n });\n\n // eslint-disable-next-line eqeqeq -- Needs to show deprecate message when hideLabel is not set and no description available\n const hasNoPropsDefined = !(props.description || hasSlot('description')) && props.hideLabel == undefined;\n if (hasNoPropsDefined) {\n deprecate(\n `${props.componentName}: The property \\`label\\` will always be rendered by default.`,\n `After version 2.0.0, the label will be shown by default.\n To continue hiding the label set \\`:hide-label=\"true\"\\`. Up until version 2.0.0, to display the label set \\`hide-label=\"false\"\\`.\n \\`label\\` will always be rendered when \\`description\\` is passed alongside with \\`label\\``,\n `2.0.0`\n );\n }\n</script>\n\n<script lang=\"ts\">\n /**\n * A controls group components should be used whenever it is necessary to group a set of controls (i.e. radio buttons or checkboxes)\n * This component conforms to the official WAI-ARIA guidelines for grouping controls: https://www.w3.org/WAI/tutorials/forms/grouping/\n *\n * NOTE: This component should not be used by itself but more implemented by other exported components\n * @example\n * import { ControlsGroup, BentoCheckbox, BentoRadioButton } from '@adyen/bento-vue2/';\n *\n * export default {\n * components: { ControlsGroup, BentoRadioButton },\n * template: `\n * <controls-group\n * label=\"Your group label\"\n * description=\"Description\"\n * >\n * <bento-radio-button\n * disabled\n * value=\"inputRadio\"\n * >\n * Label text\n * </bento-radio-button>\n * <bento-radio-button\n * value=\"inputRadio\"\n * >\n * Another label text\n * </bento-radio-button>\n * </controls-group>\n * `\n * };\n */\n export default {};\n</script>\n\n<style lang=\"scss\" scoped src=\"./controls-group.scss\" />\n"],"names":["__default__","attrs","useAttrs","slots","useSlots","hasSlot","useHasSlot","ariaAttributes","computed","_a","conditionalClasses","props","legendConditionalClasses","hasNoPropsDefined","deprecate"],"mappings":";;;;;;AAuJI,MAAAA,IAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAjHAC,IAAAC,EAAA,GACAC,IAAAC,EAAA,GACAC,IAAAC,EAAAH,CAAA,GAkDAI,IAAAC,EAAA,MAAA;;AAAA;AAAA,QAAuC,qBAAAC,IAAAR,EAAA,kBAAA,MAAA,gBAAAQ,EAAA;AAAA,MACqB;AAAA,KAAA,GAG5DC,IAAAF,EAAA,OAAA;AAAA,MAA2C,8BAAAG,EAAA;AAAA,IACH,EAAA,GAGxCC,IAAAJ,EAAA,OAII;AAAA,MAAO,6CAAA,EAHPG,EAAA,UAAAA,EAAA,eAAAN,EAAA,aAAA,MACAM,EAAA,cAAA;AAAA,IAGkD,EAClD,GAIJE,IAAA,EAAAF,EAAA,eAAAN,EAAA,aAAA,MAAAM,EAAA,aAAA;AACA,WAAAE,KACIC;AAAA,MAAA,GAAAH,EAAA,aAAA;AAAA,MAC0B;AAAA,MACtB;AAAA,IAGA;;;;;;;;;;;;;;;;;"}
@@ -1,10 +1,10 @@
1
1
  import { defineComponent as C, ref as a, computed as c } from "vue";
2
2
  import { B as m } from "./button.CilT7NmM.js";
3
- import { d as y } from "./popper-container.Dt0SuHXX.js";
3
+ import { d as y } from "./popper-container.C9KCAJxI.js";
4
4
  import { u as x } from "./i18n.BQkEbtPM.js";
5
5
  /* empty css */
6
6
  import { n as p } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
7
- import { b } from "./tooltip.C94gYIPr.js";
7
+ import { b } from "./tooltip.DOD_4rkI.js";
8
8
  import "../assets/copy.css";
9
9
  var n = /* @__PURE__ */ ((r) => (r.DEFAULT = "default", r.COPYING = "copying", r.ERROR = "error", r))(n || {});
10
10
  let l = 0;
@@ -93,4 +93,4 @@ export {
93
93
  L as C,
94
94
  n as a
95
95
  };
96
- //# sourceMappingURL=copy.CsyXGPuN.js.map
96
+ //# sourceMappingURL=copy._BdbMnHK.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"copy.CsyXGPuN.js","sources":["../../src/components/internal/copy/copy.types.ts","../../../ui-assets/icons-16/dist/vue/copy.vue","../../src/components/internal/copy/copy.vue"],"sourcesContent":["import { type PopperContainerPosition } from '@/components/popper-container';\nimport type { BentoButton } from '@/components/button';\n\nexport enum CopyTooltipState {\n DEFAULT = 'default',\n COPYING = 'copying',\n ERROR = 'error',\n}\n\ntype ButtonProps = InstanceType<typeof BentoButton>['$props'];\nexport interface BentoCopyButtonProps {\n variant?: ButtonProps['variant'];\n condensed?: ButtonProps['condensed'];\n disabled?: ButtonProps['disabled'];\n}\n\nexport interface BentoCopyProps {\n /**\n * Object containing props to change the menu button appearance. Accepts the same props present in BentoButton.\n */\n button?: BentoCopyButtonProps;\n /**\n * Sets the button text of the copy button.\n */\n buttonText?: string;\n /**\n * Defines the string that will get copied to the clipboard\n */\n text: string;\n /**\n * Position the tooltip should take if space is available. Defaults to 'top'\n */\n tooltipPosition?: PopperContainerPosition;\n}\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#001222\" d=\"M8 1.25C9.51878 1.25 10.75 2.48122 10.75 4V5.25H12C13.5188 5.25 14.75 6.48122 14.75 8V12C14.75 13.5188 13.5188 14.75 12 14.75H8C6.48122 14.75 5.25 13.5188 5.25 12V10.75H4C2.48122 10.75 1.25 9.51878 1.25 8V4C1.25 2.48122 2.48122 1.25 4 1.25H8ZM8 6.75C7.30964 6.75 6.75 7.30964 6.75 8V12C6.75 12.6904 7.30964 13.25 8 13.25H12C12.6904 13.25 13.25 12.6904 13.25 12V8C13.25 7.30964 12.6904 6.75 12 6.75H8ZM4 2.75C3.30964 2.75 2.75 3.30964 2.75 4V8C2.75 8.69036 3.30964 9.25 4 9.25H5.25V8C5.25 6.48122 6.48122 5.25 8 5.25H9.25V4C9.25 3.30964 8.69036 2.75 8 2.75H4Z\"/></svg>\n</template>\n<script>\n import '../css/main.css';\n\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n","<template>\n <div class=\"b-copy\" @mouseleave=\"resetText\" @focusout=\"resetText\">\n <span v-if=\"$slots.default\" v-bento-tooltip-directive:[tooltipPosition]=\"copyText\" @click=\"onClickCopy\">\n <slot />\n </span>\n <bento-button\n v-else\n v-bento-tooltip-directive:[tooltipPosition]=\"copyText\"\n v-bind=\"button\"\n @click=\"onClickCopy\"\n >\n <template #iconLeft>\n <copy-icon :svg-title=\"svgTitle\" />\n </template>\n <template v-if=\"buttonText\" #default>\n {{ buttonText }}\n </template>\n </bento-button>\n <div v-if=\"showScreenReaderAlert\" role=\"alert\" class=\"b-copy__screen-reader-alert\">{{ t('copied') }}</div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, ref } from 'vue';\n import { BentoButton } from '@/components/button';\n import { PopperContainerPosition } from '@/components/popper-container';\n import { BentoTooltipDirective as vBentoTooltipDirective } from '@/directives';\n import { useI18n } from '@/utils/ts/i18n';\n import { type BentoCopyButtonProps, type BentoCopyProps, CopyTooltipState } from './copy.types';\n import CopyIcon from '@adyen/ui-assets-icons-16/vue/copy';\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const emit = defineEmits([\"click\"]);\n\n const props = defineProps({\n button: { default: () => ({ variant: 'tertiary' }) as BentoCopyButtonProps },\n buttonText: { default: undefined },\n text: null,\n tooltipPosition: { default: PopperContainerPosition.TOP }\n});\n\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n const copyState = ref<CopyTooltipState>(CopyTooltipState.DEFAULT);\n\n const showScreenReaderAlert = ref(false);\n const onClickCopy = async (event: MouseEvent) => {\n try {\n await navigator.clipboard.writeText(props.text);\n copyState.value = CopyTooltipState.COPYING;\n showScreenReaderAlert.value = true;\n } catch {\n copyState.value = CopyTooltipState.ERROR;\n }\n\n emit('click', event);\n };\n\n const resetText = () => {\n copyState.value = CopyTooltipState.DEFAULT;\n showScreenReaderAlert.value = false;\n };\n\n const copyText = computed(() => {\n switch (copyState.value) {\n case CopyTooltipState.COPYING:\n return t('copied');\n case CopyTooltipState.ERROR:\n return t('copyFailed');\n default:\n return t('copy');\n }\n });\n\n const svgTitle = computed(() => (props.buttonText ? undefined : t('copy')));\n</script>\n\n<script lang=\"ts\">\n /**\n * An internal button component that copies text to the user's clipboard.\n *\n * @example\n * import { Copy } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { Copy },\n * template: `\n * <copy :text=\"textToCopy\" />\n * `\n * }\n */\n export default {\n i18n: { messages },\n name: 'copy',\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./copy.scss\" />\n"],"names":["CopyTooltipState","CopyTooltipState2","uuid","_sfc_main$1","__default__","messages","t","useI18n","copyState","ref","showScreenReaderAlert","onClickCopy","event","props","emit","resetText","copyText","computed","svgTitle"],"mappings":";;;;;;;;AAGY,IAAAA,IAAA,kBAAAC,OACRA,EAAA,UAAA,WACAA,EAAA,UAAA,WACAA,EAAA,QAAA,SAHQA,IAAAD,KAAA,CAAA,CAAA;ACIZ,IAAAE,IAAA;AAEA,MAAAC,IAAA;AAAA,EACA,eAAA;AACA,SAAA,OAAAD,EAAA,SAAA,GACAA,KAAA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;GC8EIE,IAAA;AAAA,EAAe,MAAA,EAAA,UAAAC,EAAA;AAAA,EACM,MAAA;AAErB;;;;;;;;;;iBApDA,EAAA,GAAAC,EAAA,IAAAC,EAAA,GACAC,IAAAC,EAAAT,EAAA,OAAA,GAEAU,IAAAD,EAAA,EAAA,GACAE,IAAA,OAAAC,MAAA;AACI,UAAA;AACI,cAAA,UAAA,UAAA,UAAAC,EAAA,IAAA,GACAL,EAAA,QAAAR,EAAA,SACAU,EAAA,QAAA;AAAA,MAA8B,QAAA;AAE9B,QAAAF,EAAA,QAAAR,EAAA;AAAA,MAAmC;AAGvC,MAAAc,EAAA,SAAAF,CAAA;AAAA,IAAmB,GAGvBG,IAAA,MAAA;AACI,MAAAP,EAAA,QAAAR,EAAA,SACAU,EAAA,QAAA;AAAA,IAA8B,GAGlCM,IAAAC,EAAA,MAAA;AACI,cAAAT,EAAA,OAAA;AAAA,QAAyB,KAAAR,EAAA;AAEjB,iBAAAM,EAAA,QAAA;AAAA,QAAiB,KAAAN,EAAA;AAEjB,iBAAAM,EAAA,YAAA;AAAA,QAAqB;AAErB,iBAAAA,EAAA,MAAA;AAAA,MAAe;AAAA,IACvB,CAAA,GAGJY,IAAAD,EAAA,MAAAJ,EAAA,aAAA,SAAAP,EAAA,MAAA,CAAA;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"copy._BdbMnHK.js","sources":["../../src/components/internal/copy/copy.types.ts","../../../ui-assets/icons-16/dist/vue/copy.vue","../../src/components/internal/copy/copy.vue"],"sourcesContent":["import { type PopperContainerPosition } from '@/components/popper-container';\nimport type { BentoButton } from '@/components/button';\n\nexport enum CopyTooltipState {\n DEFAULT = 'default',\n COPYING = 'copying',\n ERROR = 'error',\n}\n\ntype ButtonProps = InstanceType<typeof BentoButton>['$props'];\nexport interface BentoCopyButtonProps {\n variant?: ButtonProps['variant'];\n condensed?: ButtonProps['condensed'];\n disabled?: ButtonProps['disabled'];\n}\n\nexport interface BentoCopyProps {\n /**\n * Object containing props to change the menu button appearance. Accepts the same props present in BentoButton.\n */\n button?: BentoCopyButtonProps;\n /**\n * Sets the button text of the copy button.\n */\n buttonText?: string;\n /**\n * Defines the string that will get copied to the clipboard\n */\n text: string;\n /**\n * Position the tooltip should take if space is available. Defaults to 'top'\n */\n tooltipPosition?: PopperContainerPosition;\n}\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#001222\" d=\"M8 1.25C9.51878 1.25 10.75 2.48122 10.75 4V5.25H12C13.5188 5.25 14.75 6.48122 14.75 8V12C14.75 13.5188 13.5188 14.75 12 14.75H8C6.48122 14.75 5.25 13.5188 5.25 12V10.75H4C2.48122 10.75 1.25 9.51878 1.25 8V4C1.25 2.48122 2.48122 1.25 4 1.25H8ZM8 6.75C7.30964 6.75 6.75 7.30964 6.75 8V12C6.75 12.6904 7.30964 13.25 8 13.25H12C12.6904 13.25 13.25 12.6904 13.25 12V8C13.25 7.30964 12.6904 6.75 12 6.75H8ZM4 2.75C3.30964 2.75 2.75 3.30964 2.75 4V8C2.75 8.69036 3.30964 9.25 4 9.25H5.25V8C5.25 6.48122 6.48122 5.25 8 5.25H9.25V4C9.25 3.30964 8.69036 2.75 8 2.75H4Z\"/></svg>\n</template>\n<script>\n import '../css/main.css';\n\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n","<template>\n <div class=\"b-copy\" @mouseleave=\"resetText\" @focusout=\"resetText\">\n <span v-if=\"$slots.default\" v-bento-tooltip-directive:[tooltipPosition]=\"copyText\" @click=\"onClickCopy\">\n <slot />\n </span>\n <bento-button\n v-else\n v-bento-tooltip-directive:[tooltipPosition]=\"copyText\"\n v-bind=\"button\"\n @click=\"onClickCopy\"\n >\n <template #iconLeft>\n <copy-icon :svg-title=\"svgTitle\" />\n </template>\n <template v-if=\"buttonText\" #default>\n {{ buttonText }}\n </template>\n </bento-button>\n <div v-if=\"showScreenReaderAlert\" role=\"alert\" class=\"b-copy__screen-reader-alert\">{{ t('copied') }}</div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, ref } from 'vue';\n import { BentoButton } from '@/components/button';\n import { PopperContainerPosition } from '@/components/popper-container';\n import { BentoTooltipDirective as vBentoTooltipDirective } from '@/directives';\n import { useI18n } from '@/utils/ts/i18n';\n import { type BentoCopyButtonProps, type BentoCopyProps, CopyTooltipState } from './copy.types';\n import CopyIcon from '@adyen/ui-assets-icons-16/vue/copy';\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const emit = defineEmits([\"click\"]);\n\n const props = defineProps({\n button: { default: () => ({ variant: 'tertiary' }) as BentoCopyButtonProps },\n buttonText: { default: undefined },\n text: null,\n tooltipPosition: { default: PopperContainerPosition.TOP }\n});\n\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n const copyState = ref<CopyTooltipState>(CopyTooltipState.DEFAULT);\n\n const showScreenReaderAlert = ref(false);\n const onClickCopy = async (event: MouseEvent) => {\n try {\n await navigator.clipboard.writeText(props.text);\n copyState.value = CopyTooltipState.COPYING;\n showScreenReaderAlert.value = true;\n } catch {\n copyState.value = CopyTooltipState.ERROR;\n }\n\n emit('click', event);\n };\n\n const resetText = () => {\n copyState.value = CopyTooltipState.DEFAULT;\n showScreenReaderAlert.value = false;\n };\n\n const copyText = computed(() => {\n switch (copyState.value) {\n case CopyTooltipState.COPYING:\n return t('copied');\n case CopyTooltipState.ERROR:\n return t('copyFailed');\n default:\n return t('copy');\n }\n });\n\n const svgTitle = computed(() => (props.buttonText ? undefined : t('copy')));\n</script>\n\n<script lang=\"ts\">\n /**\n * An internal button component that copies text to the user's clipboard.\n *\n * @example\n * import { Copy } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { Copy },\n * template: `\n * <copy :text=\"textToCopy\" />\n * `\n * }\n */\n export default {\n i18n: { messages },\n name: 'copy',\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./copy.scss\" />\n"],"names":["CopyTooltipState","CopyTooltipState2","uuid","_sfc_main$1","__default__","messages","t","useI18n","copyState","ref","showScreenReaderAlert","onClickCopy","event","props","emit","resetText","copyText","computed","svgTitle"],"mappings":";;;;;;;;AAGY,IAAAA,IAAA,kBAAAC,OACRA,EAAA,UAAA,WACAA,EAAA,UAAA,WACAA,EAAA,QAAA,SAHQA,IAAAD,KAAA,CAAA,CAAA;ACIZ,IAAAE,IAAA;AAEA,MAAAC,IAAA;AAAA,EACA,eAAA;AACA,SAAA,OAAAD,EAAA,SAAA,GACAA,KAAA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;GC8EIE,IAAA;AAAA,EAAe,MAAA,EAAA,UAAAC,EAAA;AAAA,EACM,MAAA;AAErB;;;;;;;;;;iBApDA,EAAA,GAAAC,EAAA,IAAAC,EAAA,GACAC,IAAAC,EAAAT,EAAA,OAAA,GAEAU,IAAAD,EAAA,EAAA,GACAE,IAAA,OAAAC,MAAA;AACI,UAAA;AACI,cAAA,UAAA,UAAA,UAAAC,EAAA,IAAA,GACAL,EAAA,QAAAR,EAAA,SACAU,EAAA,QAAA;AAAA,MAA8B,QAAA;AAE9B,QAAAF,EAAA,QAAAR,EAAA;AAAA,MAAmC;AAGvC,MAAAc,EAAA,SAAAF,CAAA;AAAA,IAAmB,GAGvBG,IAAA,MAAA;AACI,MAAAP,EAAA,QAAAR,EAAA,SACAU,EAAA,QAAA;AAAA,IAA8B,GAGlCM,IAAAC,EAAA,MAAA;AACI,cAAAT,EAAA,OAAA;AAAA,QAAyB,KAAAR,EAAA;AAEjB,iBAAAM,EAAA,QAAA;AAAA,QAAiB,KAAAN,EAAA;AAEjB,iBAAAM,EAAA,YAAA;AAAA,QAAqB;AAErB,iBAAAA,EAAA,MAAA;AAAA,MAAe;AAAA,IACvB,CAAA,GAGJY,IAAAD,EAAA,MAAAJ,EAAA,aAAA,SAAAP,EAAA,MAAA,CAAA;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as v, useSlots as C, ref as _, computed as n, watch as m, onUnmounted as $, onMounted as I } from "vue";
2
- import { B as y } from "./header.CwlFMYus.js";
3
- import { B as R, a as x } from "./tab.ClkH0GtX.js";
2
+ import { B as y } from "./header.CQMiTG7f.js";
3
+ import { B as R, a as x } from "./tab.D8YyoNFV.js";
4
4
  import { c as H } from "./index.BDK4hwK_.js";
5
5
  import { o as P } from "./resize.Bqks3WUm.js";
6
6
  import { u as T } from "./use-has-slot.C9lQZ6nz.js";
@@ -99,4 +99,4 @@ export {
99
99
  tt as a,
100
100
  Z as d
101
101
  };
102
- //# sourceMappingURL=dashboard-section.CiFxBFnc.js.map
102
+ //# sourceMappingURL=dashboard-section.e7ozaS9M.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-section.CiFxBFnc.js","sources":["../../src/templates/dashboard-template/dashboard-template.vue","../../src/templates/dashboard-template/components/dashboard-section/dashboard-section.vue"],"sourcesContent":["<template>\n <main class=\"b-dashboard-template\">\n <bento-header v-bind=\"header\" variant=\"page\" class=\"b-dashboard-template__header\">\n <template v-if=\"hasSlot('infoIconTooltipContent')\" #infoIconTooltipContent>\n <slot name=\"infoIconTooltipContent\" />\n </template>\n </bento-header>\n <div class=\"b-dashboard-template__top-section\" :class=\"dashboardTopSectionConditionalClasses\">\n <div\n v-if=\"hasSlot('filters')\"\n ref=\"filtersRef\"\n class=\"b-dashboard-template__filters\"\n :class=\"dashboardFiltersConditionalClasses\"\n data-testid=\"filters\"\n >\n <slot name=\"filters\" />\n </div>\n\n <bento-tabs\n v-if=\"tabsSlots.length > 1\"\n ref=\"tabsRef\"\n :active-tab-index=\"tabs.activeTabIndex\"\n :sticky=\"stickyTabs\"\n :sticky-options=\"computedTabsOptions\"\n data-testid=\"tabs\"\n >\n <bento-tab v-for=\"(_item, index) in tabsSlots\" :key=\"`tab-${index}`\" :title=\"getTabTitle(index)\">\n <div class=\"b-dashboard-template__container b-dashboard-template__container--tabs\">\n <slot :name=\"`tab-${index + 1}`\" />\n </div>\n </bento-tab>\n </bento-tabs>\n <div v-else class=\"b-dashboard-template__container\">\n <slot />\n </div>\n </div>\n </main>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, onUnmounted, ref, useSlots, watch } from 'vue';\n import { BentoHeader } from '@/components/header';\n import { BentoTab, BentoTabs } from '@/components/tabs';\n import { useWindowScroll } from '@vueuse/core';\n import { observeSizeOfElement } from '@/utils/ts/resize';\n import { useHasSlot } from '@/composables';\n import type { BentoDashboardTemplateHeader, BentoDashboardTemplateTabs } from './dashboard-template.types';\n\n const props = defineProps({\n header: null,\n tabs: { default: undefined },\n stickyTabs: { type: Boolean, default: false },\n stickyFilters: { type: Boolean, default: false }\n});\n\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n\n const tabsRef = ref<InstanceType<typeof BentoTabs>>();\n const filtersRef = ref<HTMLDivElement>(null);\n const isFiltersPinned = ref(false);\n let filtersElementObserver: ResizeObserver | null = null;\n const tabsPosition = ref(0);\n\n const hasStickyFilters = computed(() => filtersRef.value && props.stickyFilters);\n const hasStickyTabs = computed(() => tabsRef.value && props.stickyTabs);\n\n const dashboardFiltersConditionalClasses = computed(() => ({\n 'b-dashboard-template__filters--sticky': props.stickyFilters,\n 'b-dashboard-template__filters--show-border':\n hasStickyFilters.value && !hasStickyTabs.value && isFiltersPinned.value,\n }));\n\n const dashboardTopSectionConditionalClasses = computed(() => ({\n 'b-dashboard-template__top-section--sticky': props.stickyTabs || props.stickyFilters,\n }));\n\n const tabsSlots = computed(() => Object.keys(slots).filter(el => el?.includes('tab-')));\n\n const getTabTitle = (index: number) => props?.tabs.tabs?.[index]?.title ?? `Tab ${index + 1}`;\n\n const computedTabsOptions = computed(() => (tabsPosition.value ? { top: tabsPosition.value } : undefined));\n\n const { y } = useWindowScroll();\n\n watch(\n () => filtersRef.value,\n () => {\n if (!filtersElementObserver && filtersRef.value) {\n filtersElementObserver = observeSizeOfElement(filtersRef.value, () => {\n if (filtersRef.value && hasStickyTabs.value) {\n const filtersHeight = filtersRef.value.offsetHeight;\n tabsPosition.value = hasStickyFilters.value ? filtersHeight : 0;\n }\n });\n }\n }\n );\n\n watch(\n () => y.value,\n () => {\n if (hasStickyFilters.value) {\n isFiltersPinned.value = filtersRef.value?.getBoundingClientRect().top === 0;\n }\n }\n );\n\n onUnmounted(() => {\n filtersElementObserver?.disconnect();\n });\n</script>\n\n<script lang=\"ts\">\n /**\n * Dashboard template is a full page template used to visualize data on pages such as data dashboards and reports.\n *\n * @example\n * import { BentoDashboardTemplate, BentoDashboardSection } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoDashboardTemplate, BentoDashboardSection },\n * template: `\n * <bento-dashboard-template :header=\"{ title: 'Dashboard'}\" :tabs=\"tabs: [{ title: 'Tab 1' }, { title: 'Tab 2' }]\" sticky-tabs sticky-filters>\n * <template #tab-1>\n * <bento-dashboard-section :header=\"{ title: 'Section'}\">\n * <template #controls>\n * // Add your controls here\n * </template>\n * // Add your content here\n * </bento-dashboard-section>\n * </template>\n * <template #tab-2>\n * <bento-dashboard-section :header=\"{ title: 'Section'}\">\n * // Add your content here\n * </bento-dashboard-section>\n * </template>\n * </bento-dashboard-template>\n * `\n * }\n */\n export default {};\n</script>\n\n<style lang=\"scss\" scoped src=\"./dashboard-template.scss\" />\n","<template>\n <div class=\"b-dashboard-section\" :class=\"conditionalClasses\">\n <bento-header v-bind=\"header\" variant=\"component\" class=\"b-dashboard-template__header\">\n <template v-if=\"hasSlot('infoIconTooltipContent')\" #infoIconTooltipContent>\n <slot name=\"infoIconTooltipContent\" />\n </template>\n </bento-header>\n <div v-if=\"hasSlot('controls')\" class=\"b-dashboard-section__controls\">\n <slot name=\"controls\"></slot>\n </div>\n <div v-if=\"!hasSlot('content-col-1') && !hasSlot('content-col-2')\" class=\"b-dashboard-section__content\">\n <slot name=\"default\"></slot>\n </div>\n <div v-else class=\"b-dashboard-section__columns\">\n <div class=\"b-dashboard-section__content\"><slot name=\"content-col-1\"></slot></div>\n <div class=\"b-dashboard-section__content\"><slot name=\"content-col-2\"></slot></div>\n </div>\n <bento-divider class=\"b-dashboard-section__divider\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, onMounted, useSlots } from 'vue';\n import { BentoHeader } from '@/components/header';\n import { BentoDivider } from '@/components/divider';\n import { useHasSlot } from '@/composables';\n import type { BentoDashboardTemplateHeader } from '../../dashboard-template.types';\n\n const props = defineProps({\n header: null,\n halfWidth: { type: Boolean, default: false }\n});\n\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n\n const conditionalClasses = computed(() => ({\n 'b-dashboard-section--half-width': props.halfWidth,\n }));\n\n onMounted(() => {\n if ((hasSlot('content-col-1') || hasSlot('content-col-2')) && props.halfWidth) {\n throw new Error('`content-col-1` and `content-col-2` cannot be used with half-width prop');\n }\n });\n</script>\n\n<script lang=\"ts\">\n /**\n * Dashboard section is subcomponent of Dashboard template meant to be used to create the different sections within the page.\n *\n * @example\n * import { BentoDashboardSection } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoDashboardSection },\n * template: `\n * <bento-dashboard-section :header=\"{ title: 'Section' }\" half-width>\n * <template #controls>\n * // Add your controls here\n * </template>\n * // You can render content with two cols\n * <template #content-col-1>\n * // Add your content here\n * </template>\n * <template #content-col-2>\n * // Add your content here\n * </template>\n * // Or you can render full width content by using default slot\n * // Add your content here\n * </bento-dashboard-section>\n * `\n * }\n */\n export default {};\n</script>\n\n<style lang=\"scss\" scoped src=\"./dashboard-section.scss\" />\n"],"names":["__default__$1","slots","useSlots","hasSlot","useHasSlot","tabsRef","ref","filtersRef","isFiltersPinned","filtersElementObserver","tabsPosition","hasStickyFilters","computed","props","hasStickyTabs","dashboardFiltersConditionalClasses","dashboardTopSectionConditionalClasses","tabsSlots","el","getTabTitle","index","_b","_a","computedTabsOptions","y","useWindowScroll","watch","observeSizeOfElement","filtersHeight","onUnmounted","__default__","conditionalClasses","onMounted"],"mappings":";;;;;;;;;AA6II,MAAAA,IAAA,CAAA;;;;;;;;;;iBAtFAC,IAAAC,EAAA,GACAC,IAAAC,EAAAH,CAAA,GAEAI,IAAAC,EAAA,GACAC,IAAAD,EAAA,IAAA,GACAE,IAAAF,EAAA,EAAA;AACA,QAAAG,IAAA;AACA,UAAAC,IAAAJ,EAAA,CAAA,GAEAK,IAAAC,EAAA,MAAAL,EAAA,SAAAM,EAAA,aAAA,GACAC,IAAAF,EAAA,MAAAP,EAAA,SAAAQ,EAAA,UAAA,GAEAE,IAAAH,EAAA,OAAA;AAAA,MAA2D,yCAAAC,EAAA;AAAA,MACR,8CAAAF,EAAA,SAAA,CAAAG,EAAA,SAAAN,EAAA;AAAA,IAEuB,EAAA,GAG1EQ,IAAAJ,EAAA,OAAA;AAAA,MAA8D,6CAAAC,EAAA,cAAAA,EAAA;AAAA,IACa,EAAA,GAG3EI,IAAAL,EAAA,MAAA,OAAA,KAAAX,CAAA,EAAA,OAAA,CAAAiB,MAAAA,KAAA,gBAAAA,EAAA,SAAA,OAAA,CAAA,GAEAC,IAAA,CAAAC,MAAA;;AAAA,eAAAC,KAAAC,IAAAT,KAAA,gBAAAA,EAAA,KAAA,SAAA,gBAAAS,EAAAF,OAAA,gBAAAC,EAAA,UAAA,OAAAD,IAAA,CAAA;AAAA,OAEAG,IAAAX,EAAA,MAAAF,EAAA,QAAA,EAAA,KAAAA,EAAA,MAAA,IAAA,MAAA,GAEA,EAAA,GAAAc,EAAA,IAAAC,EAAA;AAEA,WAAAC;AAAA,MAAA,MAAAnB,EAAA;AAAA,MACqB,MAAA;AAEb,QAAA,CAAAE,KAAAF,EAAA,UACIE,IAAAkB,EAAApB,EAAA,OAAA,MAAA;AACI,cAAAA,EAAA,SAAAO,EAAA,OAAA;AACI,kBAAAc,IAAArB,EAAA,MAAA;AACA,YAAAG,EAAA,QAAAC,EAAA,QAAAiB,IAAA;AAAA,UAA8D;AAAA,QAClE,CAAA;AAAA,MAER;AAAA,IACJ,GAGJF;AAAA,MAAA,MAAAF,EAAA;AAAA,MACY,MAAA;;AAEJ,QAAAb,EAAA,UACIH,EAAA,UAAAc,IAAAf,EAAA,UAAA,gBAAAe,EAAA,wBAAA,SAAA;AAAA,MACJ;AAAA,IACJ,GAGJO,EAAA,MAAA;AACI,MAAApB,KAAA,QAAAA,EAAA;AAAA,IAAmC,CAAA;;;;;;;;;;;;;;;;;;qBCnCvCqB,IAAA,CAAA;;;;;;;;iBAzCA7B,IAAAC,EAAA,GACAC,IAAAC,EAAAH,CAAA,GAEA8B,IAAAnB,EAAA,OAAA;AAAA,MAA2C,mCAAAC,EAAA;AAAA,IACE,EAAA;AAG7C,WAAAmB,EAAA,MAAA;AACI,WAAA7B,EAAA,eAAA,KAAAA,EAAA,eAAA,MAAAU,EAAA;AACI,cAAA,IAAA,MAAA,yEAAA;AAAA,IACJ,CAAA;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"dashboard-section.e7ozaS9M.js","sources":["../../src/templates/dashboard-template/dashboard-template.vue","../../src/templates/dashboard-template/components/dashboard-section/dashboard-section.vue"],"sourcesContent":["<template>\n <main class=\"b-dashboard-template\">\n <bento-header v-bind=\"header\" variant=\"page\" class=\"b-dashboard-template__header\">\n <template v-if=\"hasSlot('infoIconTooltipContent')\" #infoIconTooltipContent>\n <slot name=\"infoIconTooltipContent\" />\n </template>\n </bento-header>\n <div class=\"b-dashboard-template__top-section\" :class=\"dashboardTopSectionConditionalClasses\">\n <div\n v-if=\"hasSlot('filters')\"\n ref=\"filtersRef\"\n class=\"b-dashboard-template__filters\"\n :class=\"dashboardFiltersConditionalClasses\"\n data-testid=\"filters\"\n >\n <slot name=\"filters\" />\n </div>\n\n <bento-tabs\n v-if=\"tabsSlots.length > 1\"\n ref=\"tabsRef\"\n :active-tab-index=\"tabs.activeTabIndex\"\n :sticky=\"stickyTabs\"\n :sticky-options=\"computedTabsOptions\"\n data-testid=\"tabs\"\n >\n <bento-tab v-for=\"(_item, index) in tabsSlots\" :key=\"`tab-${index}`\" :title=\"getTabTitle(index)\">\n <div class=\"b-dashboard-template__container b-dashboard-template__container--tabs\">\n <slot :name=\"`tab-${index + 1}`\" />\n </div>\n </bento-tab>\n </bento-tabs>\n <div v-else class=\"b-dashboard-template__container\">\n <slot />\n </div>\n </div>\n </main>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, onUnmounted, ref, useSlots, watch } from 'vue';\n import { BentoHeader } from '@/components/header';\n import { BentoTab, BentoTabs } from '@/components/tabs';\n import { useWindowScroll } from '@vueuse/core';\n import { observeSizeOfElement } from '@/utils/ts/resize';\n import { useHasSlot } from '@/composables';\n import type { BentoDashboardTemplateHeader, BentoDashboardTemplateTabs } from './dashboard-template.types';\n\n const props = defineProps({\n header: null,\n tabs: { default: undefined },\n stickyTabs: { type: Boolean, default: false },\n stickyFilters: { type: Boolean, default: false }\n});\n\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n\n const tabsRef = ref<InstanceType<typeof BentoTabs>>();\n const filtersRef = ref<HTMLDivElement>(null);\n const isFiltersPinned = ref(false);\n let filtersElementObserver: ResizeObserver | null = null;\n const tabsPosition = ref(0);\n\n const hasStickyFilters = computed(() => filtersRef.value && props.stickyFilters);\n const hasStickyTabs = computed(() => tabsRef.value && props.stickyTabs);\n\n const dashboardFiltersConditionalClasses = computed(() => ({\n 'b-dashboard-template__filters--sticky': props.stickyFilters,\n 'b-dashboard-template__filters--show-border':\n hasStickyFilters.value && !hasStickyTabs.value && isFiltersPinned.value,\n }));\n\n const dashboardTopSectionConditionalClasses = computed(() => ({\n 'b-dashboard-template__top-section--sticky': props.stickyTabs || props.stickyFilters,\n }));\n\n const tabsSlots = computed(() => Object.keys(slots).filter(el => el?.includes('tab-')));\n\n const getTabTitle = (index: number) => props?.tabs.tabs?.[index]?.title ?? `Tab ${index + 1}`;\n\n const computedTabsOptions = computed(() => (tabsPosition.value ? { top: tabsPosition.value } : undefined));\n\n const { y } = useWindowScroll();\n\n watch(\n () => filtersRef.value,\n () => {\n if (!filtersElementObserver && filtersRef.value) {\n filtersElementObserver = observeSizeOfElement(filtersRef.value, () => {\n if (filtersRef.value && hasStickyTabs.value) {\n const filtersHeight = filtersRef.value.offsetHeight;\n tabsPosition.value = hasStickyFilters.value ? filtersHeight : 0;\n }\n });\n }\n }\n );\n\n watch(\n () => y.value,\n () => {\n if (hasStickyFilters.value) {\n isFiltersPinned.value = filtersRef.value?.getBoundingClientRect().top === 0;\n }\n }\n );\n\n onUnmounted(() => {\n filtersElementObserver?.disconnect();\n });\n</script>\n\n<script lang=\"ts\">\n /**\n * Dashboard template is a full page template used to visualize data on pages such as data dashboards and reports.\n *\n * @example\n * import { BentoDashboardTemplate, BentoDashboardSection } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoDashboardTemplate, BentoDashboardSection },\n * template: `\n * <bento-dashboard-template :header=\"{ title: 'Dashboard'}\" :tabs=\"tabs: [{ title: 'Tab 1' }, { title: 'Tab 2' }]\" sticky-tabs sticky-filters>\n * <template #tab-1>\n * <bento-dashboard-section :header=\"{ title: 'Section'}\">\n * <template #controls>\n * // Add your controls here\n * </template>\n * // Add your content here\n * </bento-dashboard-section>\n * </template>\n * <template #tab-2>\n * <bento-dashboard-section :header=\"{ title: 'Section'}\">\n * // Add your content here\n * </bento-dashboard-section>\n * </template>\n * </bento-dashboard-template>\n * `\n * }\n */\n export default {};\n</script>\n\n<style lang=\"scss\" scoped src=\"./dashboard-template.scss\" />\n","<template>\n <div class=\"b-dashboard-section\" :class=\"conditionalClasses\">\n <bento-header v-bind=\"header\" variant=\"component\" class=\"b-dashboard-template__header\">\n <template v-if=\"hasSlot('infoIconTooltipContent')\" #infoIconTooltipContent>\n <slot name=\"infoIconTooltipContent\" />\n </template>\n </bento-header>\n <div v-if=\"hasSlot('controls')\" class=\"b-dashboard-section__controls\">\n <slot name=\"controls\"></slot>\n </div>\n <div v-if=\"!hasSlot('content-col-1') && !hasSlot('content-col-2')\" class=\"b-dashboard-section__content\">\n <slot name=\"default\"></slot>\n </div>\n <div v-else class=\"b-dashboard-section__columns\">\n <div class=\"b-dashboard-section__content\"><slot name=\"content-col-1\"></slot></div>\n <div class=\"b-dashboard-section__content\"><slot name=\"content-col-2\"></slot></div>\n </div>\n <bento-divider class=\"b-dashboard-section__divider\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, onMounted, useSlots } from 'vue';\n import { BentoHeader } from '@/components/header';\n import { BentoDivider } from '@/components/divider';\n import { useHasSlot } from '@/composables';\n import type { BentoDashboardTemplateHeader } from '../../dashboard-template.types';\n\n const props = defineProps({\n header: null,\n halfWidth: { type: Boolean, default: false }\n});\n\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n\n const conditionalClasses = computed(() => ({\n 'b-dashboard-section--half-width': props.halfWidth,\n }));\n\n onMounted(() => {\n if ((hasSlot('content-col-1') || hasSlot('content-col-2')) && props.halfWidth) {\n throw new Error('`content-col-1` and `content-col-2` cannot be used with half-width prop');\n }\n });\n</script>\n\n<script lang=\"ts\">\n /**\n * Dashboard section is subcomponent of Dashboard template meant to be used to create the different sections within the page.\n *\n * @example\n * import { BentoDashboardSection } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoDashboardSection },\n * template: `\n * <bento-dashboard-section :header=\"{ title: 'Section' }\" half-width>\n * <template #controls>\n * // Add your controls here\n * </template>\n * // You can render content with two cols\n * <template #content-col-1>\n * // Add your content here\n * </template>\n * <template #content-col-2>\n * // Add your content here\n * </template>\n * // Or you can render full width content by using default slot\n * // Add your content here\n * </bento-dashboard-section>\n * `\n * }\n */\n export default {};\n</script>\n\n<style lang=\"scss\" scoped src=\"./dashboard-section.scss\" />\n"],"names":["__default__$1","slots","useSlots","hasSlot","useHasSlot","tabsRef","ref","filtersRef","isFiltersPinned","filtersElementObserver","tabsPosition","hasStickyFilters","computed","props","hasStickyTabs","dashboardFiltersConditionalClasses","dashboardTopSectionConditionalClasses","tabsSlots","el","getTabTitle","index","_b","_a","computedTabsOptions","y","useWindowScroll","watch","observeSizeOfElement","filtersHeight","onUnmounted","__default__","conditionalClasses","onMounted"],"mappings":";;;;;;;;;AA6II,MAAAA,IAAA,CAAA;;;;;;;;;;iBAtFAC,IAAAC,EAAA,GACAC,IAAAC,EAAAH,CAAA,GAEAI,IAAAC,EAAA,GACAC,IAAAD,EAAA,IAAA,GACAE,IAAAF,EAAA,EAAA;AACA,QAAAG,IAAA;AACA,UAAAC,IAAAJ,EAAA,CAAA,GAEAK,IAAAC,EAAA,MAAAL,EAAA,SAAAM,EAAA,aAAA,GACAC,IAAAF,EAAA,MAAAP,EAAA,SAAAQ,EAAA,UAAA,GAEAE,IAAAH,EAAA,OAAA;AAAA,MAA2D,yCAAAC,EAAA;AAAA,MACR,8CAAAF,EAAA,SAAA,CAAAG,EAAA,SAAAN,EAAA;AAAA,IAEuB,EAAA,GAG1EQ,IAAAJ,EAAA,OAAA;AAAA,MAA8D,6CAAAC,EAAA,cAAAA,EAAA;AAAA,IACa,EAAA,GAG3EI,IAAAL,EAAA,MAAA,OAAA,KAAAX,CAAA,EAAA,OAAA,CAAAiB,MAAAA,KAAA,gBAAAA,EAAA,SAAA,OAAA,CAAA,GAEAC,IAAA,CAAAC,MAAA;;AAAA,eAAAC,KAAAC,IAAAT,KAAA,gBAAAA,EAAA,KAAA,SAAA,gBAAAS,EAAAF,OAAA,gBAAAC,EAAA,UAAA,OAAAD,IAAA,CAAA;AAAA,OAEAG,IAAAX,EAAA,MAAAF,EAAA,QAAA,EAAA,KAAAA,EAAA,MAAA,IAAA,MAAA,GAEA,EAAA,GAAAc,EAAA,IAAAC,EAAA;AAEA,WAAAC;AAAA,MAAA,MAAAnB,EAAA;AAAA,MACqB,MAAA;AAEb,QAAA,CAAAE,KAAAF,EAAA,UACIE,IAAAkB,EAAApB,EAAA,OAAA,MAAA;AACI,cAAAA,EAAA,SAAAO,EAAA,OAAA;AACI,kBAAAc,IAAArB,EAAA,MAAA;AACA,YAAAG,EAAA,QAAAC,EAAA,QAAAiB,IAAA;AAAA,UAA8D;AAAA,QAClE,CAAA;AAAA,MAER;AAAA,IACJ,GAGJF;AAAA,MAAA,MAAAF,EAAA;AAAA,MACY,MAAA;;AAEJ,QAAAb,EAAA,UACIH,EAAA,UAAAc,IAAAf,EAAA,UAAA,gBAAAe,EAAA,wBAAA,SAAA;AAAA,MACJ;AAAA,IACJ,GAGJO,EAAA,MAAA;AACI,MAAApB,KAAA,QAAAA,EAAA;AAAA,IAAmC,CAAA;;;;;;;;;;;;;;;;;;qBCnCvCqB,IAAA,CAAA;;;;;;;;iBAzCA7B,IAAAC,EAAA,GACAC,IAAAC,EAAAH,CAAA,GAEA8B,IAAAnB,EAAA,OAAA;AAAA,MAA2C,mCAAAC,EAAA;AAAA,IACE,EAAA;AAG7C,WAAAmB,EAAA,MAAA;AACI,WAAA7B,EAAA,eAAA,KAAAA,EAAA,eAAA,MAAAU,EAAA;AACI,cAAA,IAAA,MAAA,yEAAA;AAAA,IACJ,CAAA;;;;;;;;;;;;;;;;;"}
@@ -1,8 +1,8 @@
1
1
  import { defineComponent as T, useSlots as P, ref as u, computed as d, watch as b } from "vue";
2
- import { d as O, h as x } from "./toggle-button.B1Y2qhzJ.js";
2
+ import { d as O, h as x } from "./button-actions.55vIvDsX.js";
3
3
  import { B } from "./typography.hlOAxsEn.js";
4
4
  import { u as g } from "./use-has-slot.C9lQZ6nz.js";
5
- import { b as S } from "./tooltip.C94gYIPr.js";
5
+ import { b as S } from "./tooltip.DOD_4rkI.js";
6
6
  import { n as C } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
7
7
  import "../assets/dashed-underline.css";
8
8
  const E = {}, U = /* @__PURE__ */ T({
@@ -74,4 +74,4 @@ const k = z.exports;
74
74
  export {
75
75
  k as B
76
76
  };
77
- //# sourceMappingURL=dashed-underline.CTtzy_vE.js.map
77
+ //# sourceMappingURL=dashed-underline.CGU6o7ni.js.map