@adyen/bento-vue3 1.45.0 → 1.47.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 (199) hide show
  1. package/dist/@types/index.d.ts +128 -47
  2. package/dist/accordion.js +1 -1
  3. package/dist/action-bar.js +1 -1
  4. package/dist/alert.js +1 -1
  5. package/dist/assets/accordion-item.css +1 -1
  6. package/dist/assets/action-bar.css +1 -1
  7. package/dist/assets/base-modal.css +1 -1
  8. package/dist/assets/calendar.css +1 -1
  9. package/dist/assets/card.css +1 -1
  10. package/dist/assets/data-grid.css +1 -1
  11. package/dist/assets/date-picker.css +1 -1
  12. package/dist/assets/date-range-picker.css +1 -1
  13. package/dist/assets/dialog-page.css +1 -1
  14. package/dist/assets/divider.css +1 -1
  15. package/dist/assets/dropdown.css +1 -1
  16. package/dist/assets/file-uploader.css +1 -1
  17. package/dist/assets/input-field-password.css +1 -1
  18. package/dist/assets/input-field.css +1 -1
  19. package/dist/assets/inspector.css +1 -1
  20. package/dist/assets/menu.css +1 -1
  21. package/dist/assets/modal-fullscreen.css +1 -1
  22. package/dist/assets/popover.css +1 -1
  23. package/dist/assets/radio-group.css +1 -1
  24. package/dist/assets/radio-input.css +1 -1
  25. package/dist/assets/sidepanel.css +1 -1
  26. package/dist/assets/status.css +1 -1
  27. package/dist/assets/step.css +1 -1
  28. package/dist/button.js +1 -1
  29. package/dist/card.js +1 -1
  30. package/dist/checkbox.js +2 -2
  31. package/dist/chunks/{accordion-item.DfOb4Pyx.js → accordion-item.LeB4jteX.js} +5 -5
  32. package/dist/chunks/{accordion-item.DfOb4Pyx.js.map → accordion-item.LeB4jteX.js.map} +1 -1
  33. package/dist/chunks/{action-bar.CmDQZkM2.js → action-bar.BN-AoRn0.js} +11 -11
  34. package/dist/chunks/{action-bar.CmDQZkM2.js.map → action-bar.BN-AoRn0.js.map} +1 -1
  35. package/dist/chunks/{alert.D1Ax6AnI.js → alert.DTX7XqPC.js} +7 -7
  36. package/dist/chunks/{alert.D1Ax6AnI.js.map → alert.DTX7XqPC.js.map} +1 -1
  37. package/dist/chunks/{base-modal.DbJYaHyG.js → base-modal.BsD3EOCY.js} +5 -5
  38. package/dist/chunks/{base-modal.DbJYaHyG.js.map → base-modal.BsD3EOCY.js.map} +1 -1
  39. package/dist/chunks/{button-actions-with-menu.BUyecZNi.js → button-actions-with-menu.CUL1q1Ca.js} +4 -4
  40. package/dist/chunks/{button-actions-with-menu.BUyecZNi.js.map → button-actions-with-menu.CUL1q1Ca.js.map} +1 -1
  41. package/dist/chunks/{button-actions.CShVMUOC.js → button-actions.DBgK5Qwo.js} +5 -5
  42. package/dist/chunks/{button-actions.CShVMUOC.js.map → button-actions.DBgK5Qwo.js.map} +1 -1
  43. package/dist/chunks/{calendar.1qqtC8ba.js → calendar.CKY08nCx.js} +120 -107
  44. package/dist/chunks/{calendar.1qqtC8ba.js.map → calendar.CKY08nCx.js.map} +1 -1
  45. package/dist/chunks/{card.rkMUtirc.js → card.BUBXMpP5.js} +10 -10
  46. package/dist/chunks/{card.rkMUtirc.js.map → card.BUBXMpP5.js.map} +1 -1
  47. package/dist/chunks/{checkbox-group.PTNxE0kL.js → checkbox-group.DOAFzAX-.js} +4 -4
  48. package/dist/chunks/{checkbox-group.PTNxE0kL.js.map → checkbox-group.DOAFzAX-.js.map} +1 -1
  49. package/dist/chunks/{checkbox.D9FJcICR.js → checkbox.J51-tG4g.js} +22 -22
  50. package/dist/chunks/{checkbox.D9FJcICR.js.map → checkbox.J51-tG4g.js.map} +1 -1
  51. package/dist/chunks/code-snippet.CUzz3c-V.js +422 -0
  52. package/dist/chunks/code-snippet.CUzz3c-V.js.map +1 -0
  53. package/dist/chunks/{codemirror.CXFEqvAi.js → codemirror.0fz2cWJS.js} +4970 -4661
  54. package/dist/chunks/codemirror.0fz2cWJS.js.map +1 -0
  55. package/dist/chunks/{controls-group.BHxcGQ2A.js → controls-group.CjqybvY2.js} +2 -2
  56. package/dist/chunks/{controls-group.BHxcGQ2A.js.map → controls-group.CjqybvY2.js.map} +1 -1
  57. package/dist/chunks/{copy.DAMq-zRP.js → copy.VRsofU-g.js} +5 -5
  58. package/dist/chunks/{copy.DAMq-zRP.js.map → copy.VRsofU-g.js.map} +1 -1
  59. package/dist/chunks/{country.Cv_8NTmw.js → country.D2t_VEYd.js} +2 -2
  60. package/dist/chunks/{country.Cv_8NTmw.js.map → country.D2t_VEYd.js.map} +1 -1
  61. package/dist/chunks/{country.types.pilf5B3F.js → country.types.CLjbulKL.js} +4114 -4114
  62. package/dist/chunks/{country.types.pilf5B3F.js.map → country.types.CLjbulKL.js.map} +1 -1
  63. package/dist/chunks/{dashboard-section.Buh9mb22.js → dashboard-section.BAJgkMXW.js} +3 -3
  64. package/dist/chunks/{dashboard-section.Buh9mb22.js.map → dashboard-section.BAJgkMXW.js.map} +1 -1
  65. package/dist/chunks/{dashed-underline.DYVSwQtH.js → dashed-underline.B_eVv1aB.js} +2 -2
  66. package/dist/chunks/{dashed-underline.DYVSwQtH.js.map → dashed-underline.B_eVv1aB.js.map} +1 -1
  67. package/dist/chunks/{data-grid-template.B6xmEgaM.js → data-grid-template.DrwGj6Yq.js} +2 -2
  68. package/dist/chunks/{data-grid-template.B6xmEgaM.js.map → data-grid-template.DrwGj6Yq.js.map} +1 -1
  69. package/dist/chunks/{data-grid.DVc9qzLU.js → data-grid.V4b5UdXZ.js} +46 -46
  70. package/dist/chunks/{data-grid.DVc9qzLU.js.map → data-grid.V4b5UdXZ.js.map} +1 -1
  71. package/dist/chunks/{date-picker.Bt4fyPQ4.js → date-picker.DjuQyWzZ.js} +45 -36
  72. package/dist/chunks/date-picker.DjuQyWzZ.js.map +1 -0
  73. package/dist/chunks/{date-range-picker.Bna_2pBL.js → date-range-picker.CmxXWnBc.js} +328 -324
  74. package/dist/chunks/date-range-picker.CmxXWnBc.js.map +1 -0
  75. package/dist/chunks/divider.qUOSAbU6.js +33 -0
  76. package/dist/chunks/divider.qUOSAbU6.js.map +1 -0
  77. package/dist/chunks/{dropdown-default-textbox.ipIFhyWZ.js → dropdown-default-textbox.Dl8Jv2bS.js} +4 -4
  78. package/dist/chunks/{dropdown-default-textbox.ipIFhyWZ.js.map → dropdown-default-textbox.Dl8Jv2bS.js.map} +1 -1
  79. package/dist/chunks/{dropdown-tag.DLyxItIS.js → dropdown-tag.D8hXRrMj.js} +4 -4
  80. package/dist/chunks/{dropdown-tag.DLyxItIS.js.map → dropdown-tag.D8hXRrMj.js.map} +1 -1
  81. package/dist/chunks/{dropdown.CZDXXpKe.js → dropdown.BWu3fV-K.js} +263 -256
  82. package/dist/chunks/dropdown.BWu3fV-K.js.map +1 -0
  83. package/dist/chunks/{error-message.BVE3JdTq.js → error-message.qsc0nOWT.js} +8 -8
  84. package/dist/chunks/{error-message.BVE3JdTq.js.map → error-message.qsc0nOWT.js.map} +1 -1
  85. package/dist/chunks/{es6.jIyAPBgt.js → es6.BtaxuP0b.js} +7 -7
  86. package/dist/chunks/es6.BtaxuP0b.js.map +1 -0
  87. package/dist/chunks/file-uploader.BNGBBltW.js +2226 -0
  88. package/dist/chunks/file-uploader.BNGBBltW.js.map +1 -0
  89. package/dist/chunks/{filter-bar.oihCCt5N.js → filter-bar.Db-KfD-S.js} +53 -53
  90. package/dist/chunks/{filter-bar.oihCCt5N.js.map → filter-bar.Db-KfD-S.js.map} +1 -1
  91. package/dist/chunks/{footer-actions.n0JIXO4Q.js → footer-actions.BG8-pOU-.js} +2 -2
  92. package/dist/chunks/{footer-actions.n0JIXO4Q.js.map → footer-actions.BG8-pOU-.js.map} +1 -1
  93. package/dist/chunks/{form-layout-title.srkVLEUW.js → form-layout-title._25l9_Xm.js} +2 -2
  94. package/dist/chunks/{form-layout-title.srkVLEUW.js.map → form-layout-title._25l9_Xm.js.map} +1 -1
  95. package/dist/chunks/{header.CAHXObTT.js → header.vPx_0dwO.js} +4 -4
  96. package/dist/chunks/{header.CAHXObTT.js.map → header.vPx_0dwO.js.map} +1 -1
  97. package/dist/chunks/{info-icon-with-popover.DFv8U4sh.js → info-icon-with-popover.CieLDo3g.js} +5 -5
  98. package/dist/chunks/{info-icon-with-popover.DFv8U4sh.js.map → info-icon-with-popover.CieLDo3g.js.map} +1 -1
  99. package/dist/chunks/{input-field-password.DedPkZxg.js → input-field-password.CS7rxMCK.js} +80 -80
  100. package/dist/chunks/{input-field-password.DedPkZxg.js.map → input-field-password.CS7rxMCK.js.map} +1 -1
  101. package/dist/chunks/{input-field.3PUv6XC3.js → input-field.Cx4fMIb7.js} +126 -117
  102. package/dist/chunks/input-field.Cx4fMIb7.js.map +1 -0
  103. package/dist/chunks/{inspector.types.Dr0D250X.js → inspector.types.DQQN1eqF.js} +5 -5
  104. package/dist/chunks/{inspector.types.Dr0D250X.js.map → inspector.types.DQQN1eqF.js.map} +1 -1
  105. package/dist/chunks/{menu.Dmzh3Uat.js → menu.CihQsfY6.js} +5 -5
  106. package/dist/chunks/{menu.Dmzh3Uat.js.map → menu.CihQsfY6.js.map} +1 -1
  107. package/dist/chunks/{modal-fullscreen.BazQAAU1.js → modal-fullscreen.D39_mhdY.js} +5 -5
  108. package/dist/chunks/{modal-fullscreen.BazQAAU1.js.map → modal-fullscreen.D39_mhdY.js.map} +1 -1
  109. package/dist/chunks/{modal.vue_vue_type_script_setup_true_lang.C8vZDtlE.js → modal.vue_vue_type_script_setup_true_lang.BHd_MGgH.js} +4 -4
  110. package/dist/chunks/{modal.vue_vue_type_script_setup_true_lang.C8vZDtlE.js.map → modal.vue_vue_type_script_setup_true_lang.BHd_MGgH.js.map} +1 -1
  111. package/dist/chunks/{pagination.BCC3GZV5.js → pagination.CbzgV2xT.js} +45 -45
  112. package/dist/chunks/{pagination.BCC3GZV5.js.map → pagination.CbzgV2xT.js.map} +1 -1
  113. package/dist/chunks/{popover.3KG1IoYE.js → popover.Bzb-pzfB.js} +2 -2
  114. package/dist/chunks/{popover.3KG1IoYE.js.map → popover.Bzb-pzfB.js.map} +1 -1
  115. package/dist/chunks/{radio-group.CeiSaH6M.js → radio-group.DkfCMh_u.js} +107 -94
  116. package/dist/chunks/radio-group.DkfCMh_u.js.map +1 -0
  117. package/dist/chunks/{radio-input.0TPahhZT.js → radio-input.DKfQGxtp.js} +27 -23
  118. package/dist/chunks/{radio-input.0TPahhZT.js.map → radio-input.DKfQGxtp.js.map} +1 -1
  119. package/dist/chunks/{search-bar.BZDJJtWB.js → search-bar.BTu1j3Ll.js} +7 -7
  120. package/dist/chunks/{search-bar.BZDJJtWB.js.map → search-bar.BTu1j3Ll.js.map} +1 -1
  121. package/dist/chunks/{secondary-nav.qm-rh-r6.js → secondary-nav.Bqvz5hjH.js} +8 -8
  122. package/dist/chunks/{secondary-nav.qm-rh-r6.js.map → secondary-nav.Bqvz5hjH.js.map} +1 -1
  123. package/dist/chunks/{selection-card-group.DPGh4nwl.js → selection-card-group.BHYvAL-T.js} +12 -12
  124. package/dist/chunks/{selection-card-group.DPGh4nwl.js.map → selection-card-group.BHYvAL-T.js.map} +1 -1
  125. package/dist/chunks/{sidepanel.DxSdFwm1.js → sidepanel.Bk35AAFF.js} +5 -5
  126. package/dist/chunks/{sidepanel.DxSdFwm1.js.map → sidepanel.Bk35AAFF.js.map} +1 -1
  127. package/dist/chunks/status.types.DsYAH3RM.js +45 -0
  128. package/dist/chunks/status.types.DsYAH3RM.js.map +1 -0
  129. package/dist/chunks/{structured-list-item.DpI6jzfM.js → structured-list-item.wpnBS69h.js} +5 -5
  130. package/dist/chunks/{structured-list-item.DpI6jzfM.js.map → structured-list-item.wpnBS69h.js.map} +1 -1
  131. package/dist/chunks/{summary-grid-item-custom.DCNWMasy.js → summary-grid-item-custom.C8AD1NAh.js} +2 -2
  132. package/dist/chunks/{summary-grid-item-custom.DCNWMasy.js.map → summary-grid-item-custom.C8AD1NAh.js.map} +1 -1
  133. package/dist/chunks/{textarea.CCr8inwI.js → textarea.C0k8by9A.js} +2 -2
  134. package/dist/chunks/{textarea.CCr8inwI.js.map → textarea.C0k8by9A.js.map} +1 -1
  135. package/dist/chunks/{timeline-item.DG9YaOiC.js → timeline-item.CYw68jQr.js} +13 -13
  136. package/dist/chunks/{timeline-item.DG9YaOiC.js.map → timeline-item.CYw68jQr.js.map} +1 -1
  137. package/dist/chunks/{tutorial.vue_vue_type_script_setup_true_lang.CQ0vEvB4.js → tutorial.vue_vue_type_script_setup_true_lang.CjlNffBI.js} +10 -10
  138. package/dist/chunks/{tutorial.vue_vue_type_script_setup_true_lang.CQ0vEvB4.js.map → tutorial.vue_vue_type_script_setup_true_lang.CjlNffBI.js.map} +1 -1
  139. package/dist/chunks/{use-cached-selected-values.BBD_AA1m.js → use-cached-selected-values.YAg3m-Af.js} +10 -10
  140. package/dist/chunks/{use-cached-selected-values.BBD_AA1m.js.map → use-cached-selected-values.YAg3m-Af.js.map} +1 -1
  141. package/dist/chunks/{use-country-items.DnPo3yxj.js → use-country-items.DJn6gU4P.js} +2 -2
  142. package/dist/chunks/{use-country-items.DnPo3yxj.js.map → use-country-items.DJn6gU4P.js.map} +1 -1
  143. package/dist/code-snippet.js +1 -1
  144. package/dist/country.js +2 -2
  145. package/dist/dashboard-template.js +1 -1
  146. package/dist/dashed-underline.js +1 -1
  147. package/dist/data-grid-template.js +1 -1
  148. package/dist/data-grid.js +1 -1
  149. package/dist/date-picker.js +2 -2
  150. package/dist/date-range-picker.js +2 -2
  151. package/dist/divider.js +1 -1
  152. package/dist/dropdown.js +4 -4
  153. package/dist/file-uploader.js +1 -1
  154. package/dist/filter-bar.js +1 -1
  155. package/dist/form-layout.js +1 -1
  156. package/dist/header.js +1 -1
  157. package/dist/index.js +47 -47
  158. package/dist/input-field-password.js +1 -1
  159. package/dist/input-field.js +1 -1
  160. package/dist/inspector.js +1 -1
  161. package/dist/internal.js +8 -8
  162. package/dist/menu.js +1 -1
  163. package/dist/modal-fullscreen.js +1 -1
  164. package/dist/modal.js +2 -2
  165. package/dist/pagination.js +1 -1
  166. package/dist/popover.js +1 -1
  167. package/dist/radio-group.js +2 -2
  168. package/dist/search-bar.js +2 -2
  169. package/dist/secondary-nav.js +1 -1
  170. package/dist/selection-card.js +1 -1
  171. package/dist/sidepanel.js +1 -1
  172. package/dist/status.js +1 -1
  173. package/dist/structured-list.js +1 -1
  174. package/dist/styles/bento-dark.css +2 -0
  175. package/dist/styles/bento-light.css +2 -0
  176. package/dist/styles/bento.css +2 -0
  177. package/dist/styles/legacy.css +7 -5
  178. package/dist/styles/styleguide.css +2 -0
  179. package/dist/summary-grid.js +1 -1
  180. package/dist/textarea.js +1 -1
  181. package/dist/timeline.js +1 -1
  182. package/dist/tutorial.js +1 -1
  183. package/dist/web-types.json +1 -1
  184. package/package.json +7 -4
  185. package/dist/chunks/code-snippet.volJxGqR.js +0 -392
  186. package/dist/chunks/code-snippet.volJxGqR.js.map +0 -1
  187. package/dist/chunks/codemirror.CXFEqvAi.js.map +0 -1
  188. package/dist/chunks/date-picker.Bt4fyPQ4.js.map +0 -1
  189. package/dist/chunks/date-range-picker.Bna_2pBL.js.map +0 -1
  190. package/dist/chunks/divider.DwBC4bpr.js +0 -22
  191. package/dist/chunks/divider.DwBC4bpr.js.map +0 -1
  192. package/dist/chunks/dropdown.CZDXXpKe.js.map +0 -1
  193. package/dist/chunks/es6.jIyAPBgt.js.map +0 -1
  194. package/dist/chunks/file-uploader.BXHt0PWz.js +0 -1077
  195. package/dist/chunks/file-uploader.BXHt0PWz.js.map +0 -1
  196. package/dist/chunks/input-field.3PUv6XC3.js.map +0 -1
  197. package/dist/chunks/radio-group.CeiSaH6M.js.map +0 -1
  198. package/dist/chunks/status.types.Dil95sGx.js +0 -44
  199. package/dist/chunks/status.types.Dil95sGx.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adyen/bento-vue3",
3
- "version": "1.45.0",
3
+ "version": "1.47.0",
4
4
  "description": "Adyen Bento Vue 3 components",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -34,9 +34,10 @@
34
34
  "@vueuse/core": "11.3.0",
35
35
  "date-fns": "2.28.0",
36
36
  "focus-lock": "0.11.0",
37
+ "mime": "4.0.6",
37
38
  "uuid": "11.0.5",
38
39
  "vue-demi": "0.14.10",
39
- "@adyen/bento-design-tokens": "1.45.0"
40
+ "@adyen/bento-design-tokens": "1.47.0"
40
41
  },
41
42
  "peerDependencies": {
42
43
  "vue": "^3.2.47",
@@ -47,7 +48,8 @@
47
48
  "vue-router": ">=4"
48
49
  },
49
50
  "overrides": {
50
- "@codemirror/state": "6.4.0"
51
+ "@codemirror/state": "catalog:",
52
+ "@codemirror/view": "catalog:"
51
53
  },
52
54
  "devDependencies": {
53
55
  "@adyen/lume-vue3": "1.11.3",
@@ -61,7 +63,7 @@
61
63
  "@codemirror/language": "6.10.3",
62
64
  "@codemirror/language-data": "6.4.0",
63
65
  "@codemirror/state": "6.4.0",
64
- "@codemirror/view": "6.23.1",
66
+ "@codemirror/view": "6.36.1",
65
67
  "@playwright/experimental-ct-vue": "1.42.1",
66
68
  "@playwright/test": "1.42.1",
67
69
  "@storybook/addon-a11y": "8.6.4",
@@ -90,6 +92,7 @@
90
92
  "@vue/test-utils": "2.4.1",
91
93
  "axe-core": "4.4.2",
92
94
  "clean-webpack-plugin": "3.0.0",
95
+ "codemirror-lang-csv": "0.1.1",
93
96
  "css-loader": "5.2.7",
94
97
  "fork-ts-checker-webpack-plugin": "6.5.2",
95
98
  "html-webpack-plugin": "4.5.2",
@@ -1,392 +0,0 @@
1
- import { defineComponent as Y, ref as v, computed as h, shallowRef as x, onMounted as F, watch as K, watchEffect as q, resolveComponent as i, createElementBlock as _, openBlock as o, normalizeClass as D, createCommentVNode as c, createBlock as g, createElementVNode as C, createVNode as N, mergeProps as Q, withCtx as f, createTextVNode as R, toDisplayString as O, renderSlot as Z, normalizeProps as ee, guardReactiveProps as ne } from "vue";
2
- import { s as te, H as ae, t as n, p as oe, j as ie, a as se, x as le, b as re, E as ce, h as de, k as ge, C as H, c as $, i as pe, d as J, l as ue, e as me } from "./codemirror.CXFEqvAi.js";
3
- import { B as be, a as he, b as fe, c as ye } from "./es6.jIyAPBgt.js";
4
- import { B as ve } from "./dropdown.CZDXXpKe.js";
5
- import { B as _e } from "./button.Cneb6rPP.js";
6
- import { B as Ce } from "./typography.DN5eC5ch.js";
7
- import "./events.FNmSWp_P.js";
8
- import { B as Ne } from "./tooltip.2MOlGHD9.js";
9
- import { B as Le } from "./loading-indicator.DEepb9Wl.js";
10
- import { u as Ie } from "./i18n.WMYWtwxB.js";
11
- import { E as Ae } from "./expand.CJ162RaJ.js";
12
- import { h as Ee } from "./base-modal.DbJYaHyG.js";
13
- import { C as Te } from "./copy.DAMq-zRP.js";
14
- import { _ as ke } from "./_plugin-vue_export-helper.CHgC5LLL.js";
15
- import "../assets/code-snippet.css";
16
- const Be = {
17
- red: be,
18
- orange: ye,
19
- green: he,
20
- blue: fe,
21
- invalid: "#ffffff"
22
- }, we = (e, t) => ae.define([
23
- {
24
- tag: n.keyword,
25
- color: e.red
26
- },
27
- {
28
- tag: [n.name, n.deleted, n.character, n.propertyName, n.macroName],
29
- color: e.green
30
- },
31
- {
32
- tag: [n.function(n.variableName), n.labelName],
33
- color: e.blue
34
- },
35
- {
36
- tag: [n.color, n.constant(n.name), n.standard(n.name)],
37
- color: e.red
38
- },
39
- {
40
- tag: [n.definition(n.name), ...t !== "json" ? [n.separator] : []],
41
- color: e.red
42
- },
43
- {
44
- tag: [n.typeName, n.className, n.number, n.changed, n.annotation, n.modifier, n.self, n.namespace],
45
- color: e.orange
46
- },
47
- {
48
- tag: [n.operator, n.operatorKeyword, n.url, n.escape, n.regexp, n.link, n.special(n.string)],
49
- color: e.blue
50
- },
51
- {
52
- tag: [n.meta, n.comment],
53
- color: e.orange
54
- },
55
- {
56
- tag: n.strong,
57
- fontWeight: "bold"
58
- },
59
- {
60
- tag: n.emphasis,
61
- fontStyle: "italic"
62
- },
63
- {
64
- tag: n.strikethrough,
65
- textDecoration: "line-through"
66
- },
67
- {
68
- tag: n.link,
69
- color: e.orange,
70
- textDecoration: "underline"
71
- },
72
- {
73
- tag: n.heading,
74
- fontWeight: "bold",
75
- color: e.blue
76
- },
77
- {
78
- tag: [n.atom, n.bool, n.special(n.variableName)],
79
- color: e.red
80
- },
81
- {
82
- tag: [n.processingInstruction, n.string, n.inserted],
83
- color: e.blue
84
- },
85
- {
86
- tag: n.invalid,
87
- color: e.invalid
88
- }
89
- ]), Se = (e) => te(we(Be, e));
90
- var L = /* @__PURE__ */ ((e) => (e.INLINE = "inline", e.SINGLELINE = "singleline", e.MULTILINE = "multiline", e))(L || {}), s = /* @__PURE__ */ ((e) => (e.JSON = "json", e.XML = "xml", e.JAVA = "java", e.JAVASCRIPT = "javascript", e.PYTHON = "python", e))(s || {}), y = /* @__PURE__ */ ((e) => (e.ACTION = "action", e.CHANGE = "change", e))(y || {});
91
- const Me = {
92
- [s.JSON]: re,
93
- [s.XML]: le,
94
- [s.JAVASCRIPT]: se,
95
- [s.JAVA]: ie,
96
- [s.PYTHON]: oe
97
- }, Oe = (e) => async () => Me[e], He = (e, t) => {
98
- const l = e.doc.lineAt(t.from), a = /^\s*/.exec(l.text);
99
- return a ? a[0] : "";
100
- }, Ve = {
101
- key: "Enter",
102
- run: ({ state: e, dispatch: t }) => {
103
- const l = e.changeByRange((a) => {
104
- const p = `
105
- ${He(e, a)}`;
106
- return {
107
- changes: { from: a.from, to: a.to, insert: p },
108
- range: ce.cursor(a.from + p.length)
109
- };
110
- });
111
- return t(e.update(l, { scrollIntoView: !0, userEvent: "input" })), !0;
112
- }
113
- }, P = {
114
- "en-US": {
115
- expand: "Expand",
116
- nothingToDisplay: "Nothing to display",
117
- run: "Run"
118
- },
119
- "pt-BR": {
120
- expand: "Expandir",
121
- nothingToDisplay: "Nada para exibir"
122
- },
123
- "ja-JP": {
124
- expand: "展開",
125
- nothingToDisplay: "表示するものがありません"
126
- }
127
- }, je = Y({
128
- i18n: { messages: P },
129
- name: "bento-code-snippet",
130
- components: {
131
- BentoTypography: Ce,
132
- BentoButton: _e,
133
- BentoDropdown: ve,
134
- Copy: Te,
135
- BaseModal: Ee,
136
- BentoLoadingIndicator: Le,
137
- ExpandIcon: Ae
138
- },
139
- directives: { BentoTooltipDirective: Ne },
140
- props: {
141
- /**
142
- * Defines the variant of code-snippet
143
- */
144
- variant: {
145
- type: String,
146
- default: L.MULTILINE,
147
- validator: (e) => Object.values(L).includes(e)
148
- },
149
- /**
150
- * Language name for syntax highlighting rules
151
- */
152
- lang: {
153
- type: String,
154
- default: s.JSON,
155
- validator: (e) => Object.values(s).includes(e)
156
- },
157
- /**
158
- * Label to show in the action-bar, describing the language
159
- */
160
- langLabel: {
161
- type: String,
162
- default: null
163
- },
164
- /**
165
- * The code content
166
- */
167
- content: {
168
- type: String,
169
- default: ""
170
- },
171
- /**
172
- * Allows editing of the code-snippet content by the user
173
- */
174
- editable: {
175
- type: Boolean,
176
- default: !1
177
- },
178
- /**
179
- * Displays a button that when clicked will emit an action event
180
- * Leaves to the parent component the logic of what to do with it
181
- */
182
- actionable: {
183
- type: Boolean,
184
- default: !1
185
- },
186
- /**
187
- * Displays a button that can expand the codeblock into a modal to easily
188
- * view large blocks of code.
189
- */
190
- expandable: {
191
- type: Boolean,
192
- default: !1
193
- },
194
- /**
195
- * Displays a button that when clicked will emit a run event
196
- * Leaves to the parent component the logic of what to do with it
197
- */
198
- actionableText: {
199
- type: String,
200
- default: "run"
201
- },
202
- /**
203
- * Toggles the loading indicator within the action bar
204
- */
205
- loading: {
206
- type: Boolean,
207
- default: !1
208
- }
209
- },
210
- emits: [y.ACTION, y.CHANGE],
211
- setup(e, { emit: t }) {
212
- const { t: l } = Ie({ messages: P }), a = v(null), I = [], p = () => {
213
- }, A = h(() => e.langLabel ?? e.lang.toUpperCase()), d = h(() => e.variant === L.INLINE), E = h(() => ({
214
- "b-code-snippet--inline": d.value,
215
- "b-code-snippet--scrollable": !d.value
216
- })), T = h(() => ({
217
- "b-code-snippet__code-area-content--editable": e.editable
218
- })), k = Oe(e.lang), u = x(), m = x(), B = new H(), b = new H(), G = new H(), r = v(null), w = v(0);
219
- F(async () => {
220
- const S = await k();
221
- r.value = e.content;
222
- const X = ({ state: M }) => {
223
- r.value = M.doc.toString();
224
- }, V = [
225
- de(),
226
- ge.of([pe, Ve]),
227
- B.of(S()),
228
- b.of(Se(e.lang)),
229
- G.of(J.readOnly.of(!e.editable)),
230
- $.updateListener.of((M) => X(M))
231
- ];
232
- e.variant === "multiline" && V.push([ue(), me()]);
233
- const j = J.create({
234
- doc: e.content,
235
- extensions: [...V]
236
- });
237
- w.value = j.doc.length, m.value = new $({
238
- state: j,
239
- parent: u.value
240
- });
241
- }), K(
242
- () => e.content,
243
- () => {
244
- if (e.content !== r.value) {
245
- const S = e.content.length;
246
- m.value.dispatch({
247
- changes: {
248
- from: 0,
249
- to: w.value,
250
- insert: e.content
251
- }
252
- }), w.value = S;
253
- }
254
- }
255
- );
256
- const U = h(() => l(e.actionableText)), z = () => {
257
- t(y.ACTION, r.value);
258
- };
259
- q(() => {
260
- r.value !== null && t(y.CHANGE, r.value);
261
- });
262
- const W = v(!1);
263
- return {
264
- // Values
265
- availableLanguages: I,
266
- codeAreaContentConditionalClasses: T,
267
- conditionalClasses: E,
268
- container: u,
269
- currentContents: r,
270
- displayedLang: A,
271
- editor: m,
272
- selectedLanguage: a,
273
- showModal: W,
274
- isInlineVariant: d,
275
- // Methods
276
- handleChangeLanguage: p,
277
- onActionClicked: z,
278
- runText: U,
279
- // Translations
280
- t: l
281
- };
282
- }
283
- }), xe = {
284
- key: 0,
285
- class: "b-code-snippet__action-bar"
286
- }, De = { class: "b-code-snippet__action-bar--start" }, Re = { class: "b-code-snippet__action-bar--end" }, $e = {
287
- key: 1,
288
- class: "b-code-snippet__code-area"
289
- }, Je = { key: 2 }, Pe = { class: "b-code-snippet__empty-state" };
290
- function Ge(e, t, l, a, I, p) {
291
- const A = i("bento-dropdown"), d = i("bento-typography"), E = i("bento-loading-indicator"), T = i("copy"), k = i("expand-icon"), u = i("bento-button"), m = i("bento-code-snippet"), B = i("base-modal");
292
- return o(), _("div", {
293
- class: D(["b-code-snippet", e.conditionalClasses])
294
- }, [
295
- e.isInlineVariant ? c("", !0) : (o(), _("section", xe, [
296
- C("div", De, [
297
- e.availableLanguages.length > 0 ? (o(), g(A, Q({
298
- key: 0,
299
- modelValue: e.selectedLanguage,
300
- "onUpdate:modelValue": t[0] || (t[0] = (b) => e.selectedLanguage = b)
301
- }, e.$props, {
302
- disabled: e.availableLanguages.length === 1,
303
- items: e.availableLanguages,
304
- class: "b-code-snippet__language-picker",
305
- onInput: e.handleChangeLanguage
306
- }), null, 16, ["modelValue", "disabled", "items", "onInput"])) : c("", !0),
307
- N(d, {
308
- el: "span",
309
- stronger: ""
310
- }, {
311
- default: f(() => [
312
- R(O(e.displayedLang), 1)
313
- ]),
314
- _: 1
315
- })
316
- ]),
317
- C("div", Re, [
318
- e.loading ? (o(), g(E, { key: 0 })) : c("", !0),
319
- e.currentContents !== null ? (o(), g(T, {
320
- key: 1,
321
- class: "b-structured-list__icon",
322
- text: e.currentContents
323
- }, null, 8, ["text"])) : c("", !0),
324
- e.expandable ? (o(), g(u, {
325
- key: 2,
326
- variant: "tertiary",
327
- condensed: "",
328
- "aria-label": e.t("expand"),
329
- onClick: t[1] || (t[1] = (b) => e.showModal = !0)
330
- }, {
331
- iconLeft: f(() => [
332
- N(k)
333
- ]),
334
- _: 1
335
- }, 8, ["aria-label"])) : c("", !0),
336
- e.actionable ? (o(), g(u, {
337
- key: 3,
338
- variant: "primary",
339
- tertiary: "",
340
- condensed: "",
341
- onClick: e.onActionClicked
342
- }, {
343
- iconLeft: f(() => [
344
- N(d, {
345
- el: "span",
346
- class: "b-code-snippet__action-button"
347
- }, {
348
- default: f(() => [
349
- R(O(e.runText), 1)
350
- ]),
351
- _: 1
352
- })
353
- ]),
354
- _: 1
355
- }, 8, ["onClick"])) : c("", !0)
356
- ])
357
- ])),
358
- e.content || e.editable ? (o(), _("code", $e, [
359
- C("div", {
360
- ref: "container",
361
- class: D(["b-code-snippet__code-area-content", e.codeAreaContentConditionalClasses])
362
- }, null, 2)
363
- ])) : (o(), _("section", Je, [
364
- Z(e.$slots, "empty-state", {}, () => [
365
- C("div", Pe, O(e.t("nothingToDisplay")), 1)
366
- ], !0)
367
- ])),
368
- e.expandable ? (o(), g(B, {
369
- key: 3,
370
- class: "b-code-snippet__modal",
371
- "hide-close-button": !0,
372
- "custom-padding": "0px",
373
- "is-dismissible": !0,
374
- "is-open": e.showModal,
375
- size: "large",
376
- onCloseModal: t[2] || (t[2] = (b) => e.showModal = !1)
377
- }, {
378
- content: f(() => [
379
- N(m, ee(ne({ ...e.$props, expandable: !1 })), null, 16)
380
- ]),
381
- _: 1
382
- }, 8, ["is-open"])) : c("", !0)
383
- ], 2);
384
- }
385
- const on = /* @__PURE__ */ ke(je, [["render", Ge], ["__scopeId", "data-v-54361d30"]]);
386
- export {
387
- L as B,
388
- s as a,
389
- y as b,
390
- on as c
391
- };
392
- //# sourceMappingURL=code-snippet.volJxGqR.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"code-snippet.volJxGqR.js","sources":["../../../vue2/src/components/code-snippet/highlight.ts","../../../vue2/src/components/code-snippet/code-snippet.types.ts","../../../vue2/src/components/code-snippet/utils/get-lang-loader.ts","../../../vue2/src/components/code-snippet/utils/indent-same-as-line-before-extension.ts","../../../vue2/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 { 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// These supported types need to be kept in line with the ones in packages/vue2/src/components/code-snippet/composables/useLanguage.ts function and vice-versa\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}\n\nexport enum BentoCodeSnippetEvent {\n ACTION = 'action',\n CHANGE = 'change',\n}\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';\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 = {\n [BentoCodeSnippetSupportedLanguage.JSON]: json,\n [BentoCodeSnippetSupportedLanguage.XML]: xml,\n [BentoCodeSnippetSupportedLanguage.JAVASCRIPT]: javascript,\n [BentoCodeSnippetSupportedLanguage.JAVA]: java,\n [BentoCodeSnippetSupportedLanguage.PYTHON]: python,\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 lang=\"ts\">\n import { computed, defineComponent, onMounted, PropType, ref, shallowRef, 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 { BentoTooltipDirective } from '@/directives';\n import { BentoLoadingIndicator } from '@/components/loading-indicator';\n import { useI18n } from '@/utils/ts/i18n';\n import { Copy } from '@/internal';\n import ExpandIcon from '@adyen/ui-assets-icons-16/vue/expand';\n import {\n BentoCodeSnippetEvent,\n BentoCodeSnippetSupportedLanguage,\n BentoCodeSnippetVariant,\n } from '@/components/code-snippet/code-snippet.types';\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 /**\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 defineComponent({\n i18n: { messages },\n name: 'bento-code-snippet',\n components: {\n BentoTypography,\n BentoButton,\n BentoDropdown,\n Copy,\n BaseModal,\n BentoLoadingIndicator,\n ExpandIcon,\n },\n directives: { BentoTooltipDirective },\n props: {\n /**\n * Defines the variant of code-snippet\n */\n variant: {\n type: String as PropType<BentoCodeSnippetVariant | `${BentoCodeSnippetVariant}`>,\n default: BentoCodeSnippetVariant.MULTILINE,\n validator: (value: BentoCodeSnippetVariant) => Object.values(BentoCodeSnippetVariant).includes(value),\n },\n /**\n * Language name for syntax highlighting rules\n */\n lang: {\n type: String as PropType<BentoCodeSnippetSupportedLanguage | `${BentoCodeSnippetSupportedLanguage}`>,\n default: BentoCodeSnippetSupportedLanguage.JSON,\n validator: (value: BentoCodeSnippetSupportedLanguage) =>\n Object.values(BentoCodeSnippetSupportedLanguage).includes(value),\n },\n /**\n * Label to show in the action-bar, describing the language\n */\n langLabel: {\n type: String,\n default: null,\n },\n /**\n * The code content\n */\n content: {\n type: String,\n default: '',\n },\n /**\n * Allows editing of the code-snippet content by the user\n */\n editable: {\n type: Boolean,\n default: false,\n },\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: {\n type: Boolean,\n default: false,\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: {\n type: Boolean,\n default: false,\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: {\n type: String,\n default: 'run',\n },\n /**\n * Toggles the loading indicator within the action bar\n */\n loading: {\n type: Boolean,\n default: false,\n },\n },\n emits: [BentoCodeSnippetEvent.ACTION, BentoCodeSnippetEvent.CHANGE],\n setup(props, { emit }) {\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\n const currentContents = ref(null);\n const contentLength = ref(0);\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\n editorReadOnly.of(EditorState.readOnly.of(!props.editable)),\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 runText = computed(() => t(props.actionableText as 'run'));\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\n return {\n // Values\n availableLanguages,\n codeAreaContentConditionalClasses,\n conditionalClasses,\n container,\n currentContents,\n displayedLang,\n editor,\n selectedLanguage,\n showModal,\n isInlineVariant,\n\n // Methods\n handleChangeLanguage,\n onActionClicked,\n runText,\n\n // Translations\n t,\n };\n },\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","importsMap","json","xml","javascript","java","python","getLangLoader","getIndentation","state","line","currentLine","indentMatch","INDENT_SAME_AS_LINE_BEFORE","dispatch","changes","range","newText","EditorSelection","_sfc_main","defineComponent","messages","BentoTypography","BentoButton","BentoDropdown","Copy","BaseModal","BentoLoadingIndicator","ExpandIcon","BentoTooltipDirective","value","props","emit","t","useI18n","selectedLanguage","ref","availableLanguages","handleChangeLanguage","displayedLang","computed","isInlineVariant","conditionalClasses","codeAreaContentConditionalClasses","loadLang","container","shallowRef","editor","languageConf","Compartment","editorTheme","editorReadOnly","currentContents","contentLength","onMounted","updateCurrentContents","state2","extensions","highlightActiveLine","keymap","indentWithTab","EditorState","EditorView","content","lineNumbers","history","watch","upcomingContentLength","runText","onActionClicked","watchEffect","showModal","_hoisted_3","_ctx","createCommentVNode","openBlock","createElementBlock","_hoisted_1","createElementVNode","_hoisted_2","createBlock","_component_bento_dropdown","mergeProps","_cache","$event","createVNode","_component_bento_typography","createTextVNode","toDisplayString","_component_bento_loading_indicator","_component_copy","_component_bento_button","_component_expand_icon","_hoisted_4","renderSlot","expandable","_component_base_modal","_component_bento_code_snippet","normalizeProps","guardReactiveProps"],"mappings":"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"}