@adyen/bento-vue3 1.8.0 → 1.9.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 (224) hide show
  1. package/dist/@types/packages/vue2/src/components/data-grid/composables/useKeyboardNavigator/useKeyboardNavigator.d.ts +6 -2
  2. package/dist/@types/packages/vue2/src/components/data-grid/composables/useScroller/useScroller.d.ts +6 -0
  3. package/dist/@types/packages/vue2/src/components/data-grid/data-grid.vue.d.ts +23 -422
  4. package/dist/@types/packages/vue2/src/components/divider/divider.vue.d.ts +1 -5
  5. package/dist/@types/packages/vue2/src/components/dropdown/components/dropdown-default-textbox/dropdown-default-textbox.vue.d.ts +10 -0
  6. package/dist/@types/packages/vue2/src/components/dropdown/dropdown.vue.d.ts +12 -0
  7. package/dist/@types/packages/vue2/src/components/filter-bar/components/base-filter/base-filter.vue.d.ts +1 -0
  8. package/dist/@types/packages/vue2/src/components/input-field/input-field.types.d.ts +1 -3
  9. package/dist/@types/packages/vue2/src/components/internal/field-label/field-label.vue.d.ts +9 -0
  10. package/dist/accordion.js +2 -2
  11. package/dist/action-bar.js +4 -4
  12. package/dist/alert.js +58 -59
  13. package/dist/alert.js.map +1 -1
  14. package/dist/assets/base-modal.css +1 -1
  15. package/dist/assets/checkbox.css +1 -1
  16. package/dist/assets/copy.css +1 -1
  17. package/dist/assets/cross.css +1 -1
  18. package/dist/assets/dropdown-default-textbox.css +1 -1
  19. package/dist/assets/dropdown.css +1 -1
  20. package/dist/assets/field-label.css +1 -1
  21. package/dist/assets/index10.css +1 -1
  22. package/dist/assets/index11.css +1 -1
  23. package/dist/assets/index12.css +1 -1
  24. package/dist/assets/index13.css +1 -1
  25. package/dist/assets/index14.css +1 -1
  26. package/dist/assets/index15.css +1 -1
  27. package/dist/assets/index16.css +1 -1
  28. package/dist/assets/index17.css +1 -1
  29. package/dist/assets/index18.css +1 -1
  30. package/dist/assets/index19.css +1 -1
  31. package/dist/assets/index2.css +1 -1
  32. package/dist/assets/index20.css +1 -1
  33. package/dist/assets/index21.css +1 -1
  34. package/dist/assets/index22.css +1 -1
  35. package/dist/assets/index23.css +1 -1
  36. package/dist/assets/index24.css +1 -1
  37. package/dist/assets/index25.css +1 -1
  38. package/dist/assets/index26.css +1 -1
  39. package/dist/assets/index27.css +1 -1
  40. package/dist/assets/index28.css +1 -1
  41. package/dist/assets/index29.css +1 -1
  42. package/dist/assets/index3.css +1 -1
  43. package/dist/assets/index30.css +1 -1
  44. package/dist/assets/index31.css +1 -1
  45. package/dist/assets/index32.css +1 -1
  46. package/dist/assets/index33.css +1 -1
  47. package/dist/assets/index34.css +1 -1
  48. package/dist/assets/index35.css +1 -1
  49. package/dist/assets/index36.css +1 -1
  50. package/dist/assets/index37.css +1 -1
  51. package/dist/assets/index38.css +1 -1
  52. package/dist/assets/index4.css +1 -1
  53. package/dist/assets/index40.css +1 -1
  54. package/dist/assets/index41.css +1 -1
  55. package/dist/assets/index42.css +1 -1
  56. package/dist/assets/index43.css +1 -1
  57. package/dist/assets/index44.css +1 -1
  58. package/dist/assets/index45.css +1 -1
  59. package/dist/assets/index46.css +1 -1
  60. package/dist/assets/index5.css +1 -1
  61. package/dist/assets/index6.css +1 -1
  62. package/dist/assets/index7.css +1 -1
  63. package/dist/assets/index8.css +1 -1
  64. package/dist/assets/index9.css +1 -1
  65. package/dist/assets/listbox.css +1 -1
  66. package/dist/avatar-image.js +1 -1
  67. package/dist/button.js +3 -3
  68. package/dist/card.js +2 -2
  69. package/dist/checkbox.js +5 -5
  70. package/dist/chunks/arrow-left.81a91b8f.js +29 -0
  71. package/dist/chunks/arrow-left.81a91b8f.js.map +1 -0
  72. package/dist/chunks/{base-modal.3dcf8376.js → base-modal.a629cb32.js} +3 -3
  73. package/dist/chunks/{base-modal.3dcf8376.js.map → base-modal.a629cb32.js.map} +1 -1
  74. package/dist/chunks/{button-actions-with-menu.3f52ea2d.js → button-actions-with-menu.f6dfb14d.js} +3 -3
  75. package/dist/chunks/{button-actions-with-menu.3f52ea2d.js.map → button-actions-with-menu.f6dfb14d.js.map} +1 -1
  76. package/dist/chunks/{calendar.d4ab387d.js → calendar.fa7712e8.js} +2 -2
  77. package/dist/chunks/{calendar.d4ab387d.js.map → calendar.fa7712e8.js.map} +1 -1
  78. package/dist/chunks/{checkbox.03c4b0fe.js → checkbox.731dc0ab.js} +71 -72
  79. package/dist/chunks/checkbox.731dc0ab.js.map +1 -0
  80. package/dist/chunks/checkmark-circle-fill.c45a999d.js +44 -0
  81. package/dist/chunks/checkmark-circle-fill.c45a999d.js.map +1 -0
  82. package/dist/chunks/checkmark-small.c79220d9.js +29 -0
  83. package/dist/chunks/checkmark-small.c79220d9.js.map +1 -0
  84. package/dist/chunks/checkmark.eb3c7a06.js +29 -0
  85. package/dist/chunks/checkmark.eb3c7a06.js.map +1 -0
  86. package/dist/chunks/chevron-left.4ee92950.js +52 -0
  87. package/dist/chunks/chevron-left.4ee92950.js.map +1 -0
  88. package/dist/chunks/chevron-up.46afb34c.js +52 -0
  89. package/dist/chunks/chevron-up.46afb34c.js.map +1 -0
  90. package/dist/chunks/{controls-group.807b5fb0.js → controls-group.d6543674.js} +2 -2
  91. package/dist/chunks/{controls-group.807b5fb0.js.map → controls-group.d6543674.js.map} +1 -1
  92. package/dist/chunks/{copy.28bd4298.js → copy.330d594e.js} +36 -37
  93. package/dist/chunks/copy.330d594e.js.map +1 -0
  94. package/dist/chunks/cross-circle-fill.1abec1a2.js +44 -0
  95. package/dist/chunks/cross-circle-fill.1abec1a2.js.map +1 -0
  96. package/dist/chunks/cross.26509efc.js +29 -0
  97. package/dist/chunks/cross.26509efc.js.map +1 -0
  98. package/dist/chunks/{dropdown-default-textbox.74c4584a.js → dropdown-default-textbox.4108b289.js} +63 -58
  99. package/dist/chunks/{dropdown-default-textbox.74c4584a.js.map → dropdown-default-textbox.4108b289.js.map} +1 -1
  100. package/dist/chunks/{dropdown.502e1f5c.js → dropdown.63de9aac.js} +209 -201
  101. package/dist/chunks/dropdown.63de9aac.js.map +1 -0
  102. package/dist/chunks/field-label.3c19a29a.js +146 -0
  103. package/dist/chunks/field-label.3c19a29a.js.map +1 -0
  104. package/dist/chunks/{fixed-scroller.92bb77a6.js → fixed-scroller.bced60dd.js} +2 -2
  105. package/dist/chunks/{fixed-scroller.92bb77a6.js.map → fixed-scroller.bced60dd.js.map} +1 -1
  106. package/dist/chunks/{index.cf0d3be3.js → index.4d2a13e1.js} +2 -2
  107. package/dist/chunks/{index.cf0d3be3.js.map → index.4d2a13e1.js.map} +1 -1
  108. package/dist/chunks/{index.d2542c6a.js → index.73ed22a7.js} +145 -150
  109. package/dist/chunks/index.73ed22a7.js.map +1 -0
  110. package/dist/chunks/{index.7262642e.js → index.85832db5.js} +3 -3
  111. package/dist/chunks/{index.7262642e.js.map → index.85832db5.js.map} +1 -1
  112. package/dist/chunks/{index.abb2a1d5.js → index.89dfe209.js} +2 -2
  113. package/dist/chunks/{index.abb2a1d5.js.map → index.89dfe209.js.map} +1 -1
  114. package/dist/chunks/{index.726e2f3c.js → index.98174339.js} +4 -4
  115. package/dist/chunks/{index.726e2f3c.js.map → index.98174339.js.map} +1 -1
  116. package/dist/chunks/{index.e9156fe3.js → index.c6fecf1c.js} +7 -7
  117. package/dist/chunks/{index.e9156fe3.js.map → index.c6fecf1c.js.map} +1 -1
  118. package/dist/chunks/{index.b043371e.js → index.edcaf766.js} +5 -5
  119. package/dist/chunks/{index.b043371e.js.map → index.edcaf766.js.map} +1 -1
  120. package/dist/chunks/info-filled.e591599f.js +67 -0
  121. package/dist/chunks/info-filled.e591599f.js.map +1 -0
  122. package/dist/chunks/{listbox-option-tag.5b00c85f.js → listbox-option-tag.b1eb32bd.js} +2 -2
  123. package/dist/chunks/{listbox-option-tag.5b00c85f.js.map → listbox-option-tag.b1eb32bd.js.map} +1 -1
  124. package/dist/chunks/{listbox.d07c24e6.js → listbox.ac43f8ab.js} +39 -36
  125. package/dist/chunks/{listbox.d07c24e6.js.map → listbox.ac43f8ab.js.map} +1 -1
  126. package/dist/chunks/{loading-button.ad7cfaee.js → loading-button.4b88e24d.js} +3 -3
  127. package/dist/chunks/{loading-button.ad7cfaee.js.map → loading-button.4b88e24d.js.map} +1 -1
  128. package/dist/chunks/refresh.bd60f6a8.js +29 -0
  129. package/dist/chunks/refresh.bd60f6a8.js.map +1 -0
  130. package/dist/chunks/search.ade93bda.js +44 -0
  131. package/dist/chunks/search.ade93bda.js.map +1 -0
  132. package/dist/chunks/{tooltip.054d2eb6.js → tooltip.27c32d36.js} +2 -2
  133. package/dist/chunks/{tooltip.054d2eb6.js.map → tooltip.27c32d36.js.map} +1 -1
  134. package/dist/code-snippet.js +425 -428
  135. package/dist/code-snippet.js.map +1 -1
  136. package/dist/country.js +1 -1
  137. package/dist/data-grid.js +1080 -1140
  138. package/dist/data-grid.js.map +1 -1
  139. package/dist/date-picker.js +6 -6
  140. package/dist/date-range-picker.js +2 -2
  141. package/dist/divider.js +9 -26
  142. package/dist/divider.js.map +1 -1
  143. package/dist/dropdown.js +3 -3
  144. package/dist/empty-state.js +1 -1
  145. package/dist/filter-bar.js +1035 -836
  146. package/dist/filter-bar.js.map +1 -1
  147. package/dist/focus-trap.js +1 -1
  148. package/dist/form-layout.js +1 -1
  149. package/dist/header.js +2 -2
  150. package/dist/index.js +12 -12
  151. package/dist/info-icon.js +38 -39
  152. package/dist/info-icon.js.map +1 -1
  153. package/dist/input-field.js +105 -107
  154. package/dist/input-field.js.map +1 -1
  155. package/dist/internal.js +7 -7
  156. package/dist/link.js +1 -1
  157. package/dist/loading-indicator.js +1 -1
  158. package/dist/menu.js +1 -1
  159. package/dist/modal.js +1 -1
  160. package/dist/pagination.js +149 -157
  161. package/dist/pagination.js.map +1 -1
  162. package/dist/payment-method.js +2 -2
  163. package/dist/payment-method.js.map +1 -1
  164. package/dist/popover.js +1 -1
  165. package/dist/popper-container.js +1 -1
  166. package/dist/radio-group.js +3 -3
  167. package/dist/search-bar.js +4 -4
  168. package/dist/segmented-control.js +3 -3
  169. package/dist/sidepanel.js +4 -4
  170. package/dist/status.js +1 -1
  171. package/dist/stepper.js +78 -79
  172. package/dist/stepper.js.map +1 -1
  173. package/dist/structured-list.js +1 -1
  174. package/dist/summary-grid.js +2 -2
  175. package/dist/tabs.js +2 -2
  176. package/dist/tag.js +2 -2
  177. package/dist/textarea.js +46 -47
  178. package/dist/textarea.js.map +1 -1
  179. package/dist/timeline.js +92 -93
  180. package/dist/timeline.js.map +1 -1
  181. package/dist/toast.js +2 -2
  182. package/dist/toggle.js +2 -2
  183. package/dist/tutorial.js +86 -87
  184. package/dist/tutorial.js.map +1 -1
  185. package/dist/web-types.json +1 -1
  186. package/package.json +4 -4
  187. package/dist/assets/arrow-left.css +0 -1
  188. package/dist/assets/checkmark-circle-fill.css +0 -1
  189. package/dist/assets/checkmark-small.css +0 -1
  190. package/dist/assets/checkmark.css +0 -1
  191. package/dist/assets/chevron-left.css +0 -1
  192. package/dist/assets/chevron-up.css +0 -1
  193. package/dist/assets/cross-circle-fill.css +0 -1
  194. package/dist/assets/info-filled.css +0 -1
  195. package/dist/assets/refresh.css +0 -1
  196. package/dist/assets/search.css +0 -1
  197. package/dist/chunks/arrow-left.cdbcc128.js +0 -30
  198. package/dist/chunks/arrow-left.cdbcc128.js.map +0 -1
  199. package/dist/chunks/checkbox.03c4b0fe.js.map +0 -1
  200. package/dist/chunks/checkmark-circle-fill.e6b84561.js +0 -45
  201. package/dist/chunks/checkmark-circle-fill.e6b84561.js.map +0 -1
  202. package/dist/chunks/checkmark-small.3e93a119.js +0 -30
  203. package/dist/chunks/checkmark-small.3e93a119.js.map +0 -1
  204. package/dist/chunks/checkmark.83e4f1e0.js +0 -30
  205. package/dist/chunks/checkmark.83e4f1e0.js.map +0 -1
  206. package/dist/chunks/chevron-left.2fd6b083.js +0 -54
  207. package/dist/chunks/chevron-left.2fd6b083.js.map +0 -1
  208. package/dist/chunks/chevron-up.9bf21068.js +0 -54
  209. package/dist/chunks/chevron-up.9bf21068.js.map +0 -1
  210. package/dist/chunks/copy.28bd4298.js.map +0 -1
  211. package/dist/chunks/cross-circle-fill.0feb37b3.js +0 -45
  212. package/dist/chunks/cross-circle-fill.0feb37b3.js.map +0 -1
  213. package/dist/chunks/cross.5c36a670.js +0 -30
  214. package/dist/chunks/cross.5c36a670.js.map +0 -1
  215. package/dist/chunks/dropdown.502e1f5c.js.map +0 -1
  216. package/dist/chunks/field-label.61679178.js +0 -132
  217. package/dist/chunks/field-label.61679178.js.map +0 -1
  218. package/dist/chunks/index.d2542c6a.js.map +0 -1
  219. package/dist/chunks/info-filled.514a2db6.js +0 -69
  220. package/dist/chunks/info-filled.514a2db6.js.map +0 -1
  221. package/dist/chunks/refresh.c38c9eee.js +0 -30
  222. package/dist/chunks/refresh.c38c9eee.js.map +0 -1
  223. package/dist/chunks/search.d18f9657.js +0 -45
  224. package/dist/chunks/search.d18f9657.js.map +0 -1
package/dist/textarea.js CHANGED
@@ -1,37 +1,36 @@
1
- import { openBlock as s, createElementBlock as y, mergeProps as se, toDisplayString as N, createCommentVNode as d, pushScopeId as ie, popScopeId as ne, createElementVNode as k, defineComponent as ce, useAttrs as ue, toRefs as P, ref as f, toRef as de, computed as o, watch as R, nextTick as be, onMounted as fe, normalizeClass as m, unref as t, normalizeStyle as D, createBlock as p, withCtx as g, createTextVNode as T, createVNode as $, withKeys as I } from "vue";
2
- import { a as pe } from "./chunks/button.82ed953e.js";
1
+ import { openBlock as s, createElementBlock as y, mergeProps as se, toDisplayString as N, createCommentVNode as d, createElementVNode as k, defineComponent as ie, useAttrs as ne, toRefs as P, ref as f, toRef as ce, computed as o, watch as R, nextTick as ue, onMounted as de, normalizeClass as h, unref as t, normalizeStyle as D, createBlock as p, withCtx as g, createTextVNode as T, createVNode as $, withKeys as I } from "vue";
2
+ import { a as be } from "./chunks/button.82ed953e.js";
3
3
  import { B } from "./chunks/index.75f3672e.js";
4
4
  import { _ as V } from "./chunks/_plugin-vue_export-helper.dad06003.js";
5
- import { g as ve } from "./chunks/unique-id.a2a2b458.js";
6
- import { o as he } from "./chunks/resize.a041304d.js";
7
- import { u as me } from "./chunks/aria-label.ac9651a5.js";
8
- import { u as ge } from "./chunks/i18n.6c402773.js";
9
- import { u as ye } from "./chunks/use-form-layout-loading.d03e5d48.js";
10
- import { F as _e, E as U } from "./chunks/field-label.61679178.js";
11
- import "./assets/index23.css";
5
+ import { g as fe } from "./chunks/unique-id.a2a2b458.js";
6
+ import { o as pe } from "./chunks/resize.a041304d.js";
7
+ import { u as ve } from "./chunks/aria-label.ac9651a5.js";
8
+ import { u as me } from "./chunks/i18n.6c402773.js";
9
+ import { u as he } from "./chunks/use-form-layout-loading.d03e5d48.js";
10
+ import { F as ge, E as U } from "./chunks/field-label.3c19a29a.js";
11
+ import "./assets/index31.css";
12
12
  let K = 0;
13
- const Le = {
13
+ const ye = {
14
14
  beforeCreate() {
15
15
  this.uuid = K.toString(), K += 1;
16
16
  }
17
- }, xe = (e) => (ie("data-v-3c9e4cfb"), e = e(), ne(), e), Ce = { key: 0 }, Ee = /* @__PURE__ */ xe(() => /* @__PURE__ */ k("path", {
17
+ }, Le = { key: 0 }, _e = /* @__PURE__ */ k("path", {
18
18
  fill: "#00112C",
19
- "fill-rule": "evenodd",
20
- d: "M2.25 8C2.25 4.82436 4.82436 2.25 8 2.25C11.1756 2.25 13.75 4.82436 13.75 8C13.75 11.1756 11.1756 13.75 8 13.75C4.82436 13.75 2.25 11.1756 2.25 8ZM5.46967 5.46967C5.17678 5.76256 5.17678 6.23744 5.46967 6.53033L6.93934 8L5.46967 9.46967C5.17678 9.76256 5.17678 10.2374 5.46967 10.5303C5.76256 10.8232 6.23744 10.8232 6.53033 10.5303L8 9.06066L9.46967 10.5303C9.76256 10.8232 10.2374 10.8232 10.5303 10.5303C10.8232 10.2374 10.8232 9.76256 10.5303 9.46967L9.06066 8L10.5303 6.53033C10.8232 6.23744 10.8232 5.76256 10.5303 5.46967C10.2374 5.17678 9.76256 5.17678 9.46967 5.46967L8 6.93934L6.53033 5.46967C6.23744 5.17678 5.76256 5.17678 5.46967 5.46967Z",
21
- "clip-rule": "evenodd"
22
- }, null, -1));
23
- function Se(e, i, a, O, c, _) {
19
+ d: "M2.25 8C2.25 4.82436 4.82436 2.25 8 2.25C11.1756 2.25 13.75 4.82436 13.75 8C13.75 11.1756 11.1756 13.75 8 13.75C4.82436 13.75 2.25 11.1756 2.25 8ZM7.00011 5.93945L5.93945 7.00011L6.93945 8.00011L5.93945 9.00011L7.00011 10.0608L8.00011 9.06077L9.00011 10.0608L10.0608 9.00011L9.06077 8.00011L10.0608 7.00011L9.00011 5.93945L8.00011 6.93945L7.00011 5.93945Z"
20
+ }, null, -1);
21
+ function xe(e, i, a, O, c, L) {
24
22
  return s(), y("svg", se({ role: "img" }, e.$attrs, {
23
+ class: "ui-assets-icons-16",
25
24
  xmlns: "http://www.w3.org/2000/svg",
26
25
  width: "16",
27
26
  height: "16",
28
27
  fill: "none"
29
28
  }), [
30
- e.$attrs["svg-title"] ? (s(), y("title", Ce, N(e.$attrs["svg-title"]), 1)) : d("", !0),
31
- Ee
29
+ e.$attrs["svg-title"] ? (s(), y("title", Le, N(e.$attrs["svg-title"]), 1)) : d("", !0),
30
+ _e
32
31
  ], 16);
33
32
  }
34
- const Ae = /* @__PURE__ */ V(Le, [["render", Se], ["__scopeId", "data-v-3c9e4cfb"]]);
33
+ const Ce = /* @__PURE__ */ V(ye, [["render", xe]]);
35
34
  var w = /* @__PURE__ */ ((e) => (e.HORIZONTAL = "horizontal", e.VERTICAL = "vertical", e.BOTH = "both", e.NONE = "none", e))(w || {}), b = /* @__PURE__ */ ((e) => (e.CLEARABLE = "clearable", e.DISABLED = "disabled", e.ERROR = "error", e.READONLY = "readonly", e))(b || {}), n = /* @__PURE__ */ ((e) => (e.BLUR = "blur", e.CHANGE = "change", e.CLEAR = "clear", e.ESCAPE_PRESSED = "escape-pressed", e.FOCUS = "focus", e.INPUT = "input", e))(n || {});
36
35
  const W = {
37
36
  "en-US": {
@@ -39,14 +38,14 @@ const W = {
39
38
  textarea: "textarea",
40
39
  yourTextCanBenAtMost: "Your text can be at most {characterLimit} characters"
41
40
  }
42
- }, Re = ["id", "value", "aria-label", "aria-invalid", "readonly", "disabled", "placeholder", "onKeydown"], $e = {
41
+ }, Ee = ["id", "value", "aria-label", "aria-invalid", "readonly", "disabled", "placeholder", "onKeydown"], Se = {
43
42
  key: 0,
44
43
  class: "b-textarea__clear-button"
45
- }, Ie = {
44
+ }, Ae = {
46
45
  i18n: { messages: W },
47
46
  name: "bento-textarea"
48
- }, Be = /* @__PURE__ */ ce({
49
- ...Ie,
47
+ }, Re = /* @__PURE__ */ ie({
48
+ ...Ae,
50
49
  props: {
51
50
  /**
52
51
  * Text that labels an the input element
@@ -114,10 +113,10 @@ const W = {
114
113
  value: { type: String, default: "" }
115
114
  },
116
115
  setup(e, { emit: i }) {
117
- const a = e, O = ue(), { height: c } = P(a), _ = ve("textarea"), l = f(null), r = f(a.value), L = 44, v = f(a.height || `${L}px`), F = f("100%"), { t: H } = ge({ messages: W }), { isReadOnly: h } = ye(de(a, "readonly")), q = o(() => `${r.value.length} / ${a.characterLimit}`), x = o(
116
+ const a = e, O = ne(), { height: c } = P(a), L = fe("textarea"), l = f(null), r = f(a.value), _ = 44, v = f(a.height || `${_}px`), F = f("100%"), { t: H } = me({ messages: W }), { isReadOnly: m } = he(ce(a, "readonly")), q = o(() => `${r.value.length} / ${a.characterLimit}`), x = o(
118
117
  () => a.characterLimit && r.value.length > a.characterLimit
119
118
  ), C = () => {
120
- l.value && l.value.scrollHeight > L && (v.value = `${l.value.scrollHeight + 3}px`);
119
+ l.value && l.value.scrollHeight > _ && (v.value = `${l.value.scrollHeight + 3}px`);
121
120
  };
122
121
  R(c, () => {
123
122
  c.value ? v.value = c.value : C();
@@ -131,9 +130,9 @@ const W = {
131
130
  () => r.value,
132
131
  async () => {
133
132
  if (!c.value) {
134
- if (v.value = `${L}px`, !r.value)
133
+ if (v.value = `${_}px`, !r.value)
135
134
  return;
136
- await be(), C();
135
+ await ue(), C();
137
136
  }
138
137
  },
139
138
  { immediate: !0 }
@@ -142,24 +141,24 @@ const W = {
142
141
  [`b-textarea--${b.DISABLED}`]: a.disabled
143
142
  })), Y = o(() => ({
144
143
  [`b-textarea__input--${b.CLEARABLE}`]: a.clearable,
145
- [`b-textarea__input--${b.READONLY}`]: h.value,
144
+ [`b-textarea__input--${b.READONLY}`]: m.value,
146
145
  [`b-textarea__input--${b.ERROR}`]: M.value,
147
146
  ["b-textarea__input--dynamic-height"]: !c.value
148
147
  })), Z = o(() => ({
149
148
  ["b-textarea__label-box--no-label"]: !a.label
150
149
  })), G = o(() => ({
151
150
  [`b-textarea__label-item--${b.ERROR}`]: x.value
152
- })), j = o(() => H("yourTextCanBenAtMost", { characterLimit: a.characterLimit })), J = f(O["aria-label"]), { ariaLabel: Q, label: E } = P(a), X = me({
151
+ })), j = o(() => H("yourTextCanBenAtMost", { characterLimit: a.characterLimit })), J = f(O["aria-label"]), { ariaLabel: Q, label: E } = P(a), X = ve({
153
152
  ariaLabel: J.value,
154
153
  // TODO: take this line away when the aria-label props is removed
155
154
  label: Q,
156
155
  defaultFallback: E
157
156
  }), ee = o(
158
- () => a.clearable && r.value && !a.disabled && !h.value
157
+ () => a.clearable && r.value && !a.disabled && !m.value
159
158
  ), S = () => {
160
159
  r.value = "", i(n.CLEAR), i(n.INPUT, "");
161
160
  }, te = (u) => {
162
- u.stopImmediatePropagation(), !a.disabled && !h.value && (r.value = u.target.value, i(n.INPUT, r.value));
161
+ u.stopImmediatePropagation(), !a.disabled && !m.value && (r.value = u.target.value, i(n.INPUT, r.value));
163
162
  }, ae = () => {
164
163
  l.value.scrollTop = 0, i(n.BLUR);
165
164
  }, le = () => {
@@ -169,22 +168,22 @@ const W = {
169
168
  }, oe = () => {
170
169
  i(n.ESCAPE_PRESSED);
171
170
  };
172
- return fe(() => {
173
- he(l.value, () => {
171
+ return de(() => {
172
+ pe(l.value, () => {
174
173
  var A;
175
174
  const u = (A = l == null ? void 0 : l.value) == null ? void 0 : A.offsetWidth;
176
175
  F.value = u ? `${u}px` : "100%";
177
176
  }), c.value || C();
178
177
  }), (u, A) => (s(), y("div", {
179
- class: m(["b-textarea", t(z)]),
178
+ class: h(["b-textarea", t(z)]),
180
179
  style: D({ width: F.value })
181
180
  }, [
182
181
  k("div", {
183
- class: m(["b-textarea__label-box", t(Z)])
182
+ class: h(["b-textarea__label-box", t(Z)])
184
183
  }, [
185
- t(E) ? (s(), p(t(_e), {
184
+ t(E) ? (s(), p(t(ge), {
186
185
  key: 0,
187
- for: t(_),
186
+ for: t(L),
188
187
  label: t(E),
189
188
  "tooltip-text": e.tooltipText,
190
189
  optional: e.optional,
@@ -193,7 +192,7 @@ const W = {
193
192
  e.characterLimit ? (s(), p(t(B), {
194
193
  key: 1,
195
194
  el: "span",
196
- class: m(["b-textarea__label-item", t(G)])
195
+ class: h(["b-textarea__label-item", t(G)])
197
196
  }, {
198
197
  default: g(() => [
199
198
  T(N(t(q)), 1)
@@ -208,14 +207,14 @@ const W = {
208
207
  }, {
209
208
  default: g(() => [
210
209
  k("textarea", {
211
- id: t(_),
210
+ id: t(L),
212
211
  ref_key: "textareaElement",
213
212
  ref: l,
214
213
  value: r.value,
215
- class: m(["b-textarea__input", t(Y)]),
214
+ class: h(["b-textarea__input", t(Y)]),
216
215
  "aria-label": t(X),
217
216
  "aria-invalid": t(M),
218
- readonly: t(h),
217
+ readonly: t(m),
219
218
  disabled: e.disabled,
220
219
  placeholder: e.placeholder,
221
220
  style: D({ resize: e.resizable, height: v.value }),
@@ -225,9 +224,9 @@ const W = {
225
224
  onInput: te,
226
225
  onKeydown: I(oe, ["esc"])
227
226
  }, `
228
- `, 46, Re),
229
- t(ee) ? (s(), y("div", $e, [
230
- $(t(pe), {
227
+ `, 46, Ee),
228
+ t(ee) ? (s(), y("div", Se, [
229
+ $(t(be), {
231
230
  variant: "tertiary",
232
231
  disabled: e.disabled,
233
232
  onClick: S,
@@ -235,7 +234,7 @@ const W = {
235
234
  onKeyup: I(S, ["space"])
236
235
  }, {
237
236
  iconLeft: g(() => [
238
- $(t(Ae), {
237
+ $(t(Ce), {
239
238
  "svg-title": t(H)("clearText")
240
239
  }, null, 8, ["svg-title"])
241
240
  ]),
@@ -266,8 +265,8 @@ const W = {
266
265
  ], 6));
267
266
  }
268
267
  });
269
- const Ue = /* @__PURE__ */ V(Be, [["__scopeId", "data-v-b57fd4c1"]]);
268
+ const Pe = /* @__PURE__ */ V(Re, [["__scopeId", "data-v-b57fd4c1"]]);
270
269
  export {
271
- Ue as BentoTextarea
270
+ Pe as BentoTextarea
272
271
  };
273
272
  //# sourceMappingURL=textarea.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"textarea.js","sources":["../../../node_modules/@adyen/ui-assets-icons-16/dist/vue/cross-circle-fill-small.vue","../../vue2/src/components/textarea/textarea.types.ts","../../vue2/src/components/textarea/textarea.vue"],"sourcesContent":["\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#00112C\" fill-rule=\"evenodd\" d=\"M2.25 8C2.25 4.82436 4.82436 2.25 8 2.25C11.1756 2.25 13.75 4.82436 13.75 8C13.75 11.1756 11.1756 13.75 8 13.75C4.82436 13.75 2.25 11.1756 2.25 8ZM5.46967 5.46967C5.17678 5.76256 5.17678 6.23744 5.46967 6.53033L6.93934 8L5.46967 9.46967C5.17678 9.76256 5.17678 10.2374 5.46967 10.5303C5.76256 10.8232 6.23744 10.8232 6.53033 10.5303L8 9.06066L9.46967 10.5303C9.76256 10.8232 10.2374 10.8232 10.5303 10.5303C10.8232 10.2374 10.8232 9.76256 10.5303 9.46967L9.06066 8L10.5303 6.53033C10.8232 6.23744 10.8232 5.76256 10.5303 5.46967C10.2374 5.17678 9.76256 5.17678 9.46967 5.46967L8 6.93934L6.53033 5.46967C6.23744 5.17678 5.76256 5.17678 5.46967 5.46967Z\" clip-rule=\"evenodd\"/></svg>\n</template>\n<script>\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n<style scoped lang=\"scss\">\n svg {\n display: inline-flex;\n flex-shrink: 0;\n }\n \n svg,\n svg * {\n fill: currentcolor;\n }\n</style>\n","/**\n * @deprecated for usage with properties since version 2.0. Use the string literal instead.\n */\nexport enum BentoTextareaResizeOption {\n HORIZONTAL = 'horizontal',\n VERTICAL = 'vertical',\n BOTH = 'both',\n NONE = 'none',\n}\n\nexport enum BentoTextareaStateClass {\n CLEARABLE = 'clearable',\n DISABLED = 'disabled',\n ERROR = 'error',\n READONLY = 'readonly',\n}\n\nexport enum BentoTextareaEvent {\n BLUR = 'blur',\n CHANGE = 'change',\n CLEAR = 'clear',\n ESCAPE_PRESSED = 'escape-pressed',\n FOCUS = 'focus',\n INPUT = 'input',\n}\n","<template>\n <div class=\"b-textarea\" :class=\"conditionalClasses\" :style=\"{ width: textareaWidth }\">\n <div class=\"b-textarea__label-box\" :class=\"conditionalClassesLabelBox\">\n <field-label\n v-if=\"label\"\n :for=\"textareaId\"\n :label=\"label\"\n :tooltip-text=\"tooltipText\"\n :optional=\"optional\"\n :required=\"required\"\n />\n <bento-typography\n v-if=\"characterLimit\"\n el=\"span\"\n class=\"b-textarea__label-item\"\n :class=\"conditionalClassesLabelItem\"\n >\n {{ counter }}\n </bento-typography>\n </div>\n <bento-typography el=\"div\" class=\"b-textarea__input-box\" :aria-disabled=\"disabled\">\n <textarea\n :id=\"textareaId\"\n ref=\"textareaElement\"\n :value=\"textareaValue\"\n class=\"b-textarea__input\"\n :class=\"conditionalClassesInput\"\n :aria-label=\"computedAriaLabel\"\n :aria-invalid=\"invalidInput\"\n :readonly=\"isReadOnly\"\n :disabled=\"disabled\"\n :placeholder=\"placeholder\"\n :style=\"{ resize: resizable, height: textareaHeight }\"\n @blur=\"onBlur\"\n @change=\"onChange\"\n @focus=\"onFocus\"\n @input=\"onInput\"\n @keydown.esc=\"onPressEscape\"\n >\n </textarea>\n\n <div v-if=\"showClearButton\" class=\"b-textarea__clear-button\">\n <bento-button\n variant=\"tertiary\"\n :disabled=\"disabled\"\n @click=\"onClear\"\n @keypress.enter=\"onClear\"\n @keyup.space=\"onClear\"\n >\n <template #iconLeft>\n <cross-circle-fill-small-icon :svg-title=\"t('clearText')\" />\n </template>\n </bento-button>\n </div>\n </bento-typography>\n\n <error-message v-if=\"isOverCharacterLimit\" :error-message=\"counterErrorText\" />\n\n <error-message v-if=\"errorMessage\" :error-message=\"errorMessage\" />\n\n <bento-typography v-if=\"description\" class=\"b-textarea__description\" el=\"span\">\n {{ description }}\n </bento-typography>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, nextTick, onMounted, PropType, ref, toRef, toRefs, useAttrs, watch } from 'vue';\n\n // Components\n import { BentoButton } from '@/components/button';\n import { BentoTypography } from '@/components/typography';\n import { ErrorMessage, FieldLabel } from '@/internal';\n import CrossCircleFillSmallIcon from '@adyen/ui-assets-icons-16/vue/cross-circle-fill-small';\n\n // Utils\n import { generateUid } from '@/utils/ts/unique-id';\n import { observeSizeOfElement } from '@/utils/ts/resize';\n import { useAriaLabel } from '@/utils/ts/aria-label';\n import { useI18n } from '@/utils/ts/i18n';\n\n // Composables\n import { useFormLayoutFieldLoading } from '@/composables/use-form-layout-loading/use-form-layout-loading';\n\n // Types\n import { BentoTextareaEvent, BentoTextareaResizeOption, BentoTextareaStateClass } from './textarea.types';\n\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const attrs = useAttrs();\n\n const props = defineProps({\n /**\n * Text that labels an the input element\n */\n ariaLabel: { type: String, default: undefined },\n\n /**\n * Text that shows number of characters in textarea\n */\n characterLimit: { type: Number, default: undefined },\n\n /**\n * Text displayed as the help text of the textarea\n */\n description: { type: String, default: '' },\n\n /**\n * Disables the possibility of changing value in the textarea\n */\n disabled: { type: Boolean, default: false },\n\n /**\n * If set to true, shows a button to clear all the text\n */\n clearable: { type: Boolean, default: false },\n\n /**\n * Adds error text\n */\n errorMessage: { type: String, default: '' },\n\n /**\n * Sets the height of the textarea, e.g 200px OR 20vh\n */\n height: { type: String, default: null },\n\n /**\n * Text displayed as the label of the textarea\n */\n label: { type: String, default: '' },\n\n /**\n * Highlights the textarea is optional.\n */\n optional: { type: Boolean, default: false },\n\n /**\n * Text displayed as the placeholder of the textarea\n */\n placeholder: { type: String, default: '' },\n\n /**\n * Set the textarea to read only state.\n */\n readonly: { type: Boolean, default: false },\n\n /**\n * Indicates the possibility of resize the textarea\n */\n resizable: {\n type: String as PropType<BentoTextareaResizeOption | `${BentoTextareaResizeOption}`>,\n default: BentoTextareaResizeOption.BOTH,\n validator: (value: BentoTextareaResizeOption) => Object.values(BentoTextareaResizeOption).includes(value),\n },\n\n /**\n * Highlights the textarea is required.\n */\n required: { type: Boolean, default: false },\n\n /**\n * Adds a info icon next to the label to display the passed tooltip message.\n */\n tooltipText: { type: String, default: null },\n\n /**\n * Text displayed as the value of the textarea\n */\n value: { type: String, default: '' },\n });\n\n const emit = defineEmits<{\n /**\n * Emitted when the element has lost focus\n */\n (e: BentoTextareaEvent.BLUR): void;\n\n /**\n * Emitted when the user modifies the element's value. Unlike the 'input' event, the change event is not necessarily fired for each alteration to an element's value\n */\n (e: BentoTextareaEvent.CHANGE): void;\n\n /**\n * Emitted when the \"Clear\" button was clicked\n */\n (e: BentoTextareaEvent.CLEAR): void;\n\n /**\n * Emitted when the \"ESC\" key is pressed\n */\n (e: BentoTextareaEvent.ESCAPE_PRESSED): void;\n\n /**\n * Emitted when the element has received focus\n */\n (e: BentoTextareaEvent.FOCUS): void;\n\n /**\n * Emitted when the component's model changes\n */\n (e: BentoTextareaEvent.INPUT, value: string): void;\n }>();\n\n const { height } = toRefs(props);\n\n const textareaId = generateUid('textarea');\n const textareaElement = ref<HTMLTextAreaElement>(null);\n const textareaValue = ref(props.value);\n const defaultTextareaHeight = 44;\n const textareaHeight = ref(props.height || `${defaultTextareaHeight}px`);\n const textareaWidth = ref('100%');\n\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n\n const { isReadOnly } = useFormLayoutFieldLoading(toRef(props, 'readonly'));\n\n const counter = computed(() => `${textareaValue.value.length} / ${props.characterLimit}`);\n const isOverCharacterLimit = computed(\n () => props.characterLimit && textareaValue.value.length > props.characterLimit\n );\n\n const calculateHeight = () => {\n const borderWidth = 3;\n if (textareaElement.value && textareaElement.value.scrollHeight > defaultTextareaHeight) {\n textareaHeight.value = `${textareaElement.value.scrollHeight + borderWidth}px`;\n }\n };\n\n watch(height, () => {\n if (!height.value) {\n calculateHeight();\n } else {\n textareaHeight.value = height.value;\n }\n });\n\n watch(\n () => props.value,\n () => {\n textareaValue.value = props.value;\n },\n { immediate: true }\n );\n\n watch(\n () => textareaValue.value,\n async () => {\n if (!height.value) {\n // Hack to make the textarea calculate its height properly\n // Set the textarea back to the original value before calculating the height\n textareaHeight.value = `${defaultTextareaHeight}px`;\n if (!textareaValue.value) {\n return;\n }\n\n await nextTick();\n calculateHeight();\n }\n },\n { immediate: true }\n );\n\n const invalidInput = computed(() => !!props.errorMessage || isOverCharacterLimit.value);\n\n const conditionalClasses = computed(() => ({\n [`b-textarea--${BentoTextareaStateClass.DISABLED}`]: props.disabled,\n }));\n\n const conditionalClassesInput = computed(() => ({\n [`b-textarea__input--${BentoTextareaStateClass.CLEARABLE}`]: props.clearable,\n [`b-textarea__input--${BentoTextareaStateClass.READONLY}`]: isReadOnly.value,\n [`b-textarea__input--${BentoTextareaStateClass.ERROR}`]: invalidInput.value,\n [`b-textarea__input--dynamic-height`]: !height.value,\n }));\n\n const conditionalClassesLabelBox = computed(() => ({\n [`b-textarea__label-box--no-label`]: !props.label,\n }));\n\n const conditionalClassesLabelItem = computed(() => ({\n [`b-textarea__label-item--${BentoTextareaStateClass.ERROR}`]: isOverCharacterLimit.value,\n }));\n\n const counterErrorText = computed(() => t('yourTextCanBenAtMost', { characterLimit: props.characterLimit }));\n\n const ariaLabelAttribute = ref(attrs['aria-label']);\n const { ariaLabel, label } = toRefs(props);\n const computedAriaLabel = useAriaLabel({\n ariaLabel: ariaLabelAttribute.value as string,\n // TODO: take this line away when the aria-label props is removed\n label: ariaLabel,\n defaultFallback: label,\n });\n\n const showClearButton = computed(\n () => props.clearable && textareaValue.value && !props.disabled && !isReadOnly.value\n );\n\n const onClear = () => {\n textareaValue.value = '';\n emit(BentoTextareaEvent.CLEAR);\n emit(BentoTextareaEvent.INPUT, '');\n };\n\n const onInput = (event: InputEvent) => {\n event.stopImmediatePropagation();\n\n if (!props.disabled && !isReadOnly.value) {\n textareaValue.value = (event.target as HTMLInputElement).value;\n /**\n * Triggered when input value is changed\n *\n * @event input\n * @property {String} inputValue - the updated textarea value\n */\n emit(BentoTextareaEvent.INPUT, textareaValue.value);\n }\n };\n\n const onBlur = () => {\n textareaElement.value.scrollTop = 0;\n emit(BentoTextareaEvent.BLUR);\n };\n\n const onFocus = () => {\n textareaElement.value.focus();\n emit(BentoTextareaEvent.FOCUS);\n };\n\n const onChange = () => {\n emit(BentoTextareaEvent.CHANGE);\n };\n\n const onPressEscape = () => {\n emit(BentoTextareaEvent.ESCAPE_PRESSED);\n };\n\n onMounted(() => {\n observeSizeOfElement(textareaElement.value, () => {\n const offsetWidth = textareaElement?.value?.offsetWidth;\n textareaWidth.value = offsetWidth ? `${offsetWidth}px` : '100%';\n });\n\n if (!height.value) {\n calculateHeight();\n }\n });\n</script>\n\n<script lang=\"ts\">\n export default {\n i18n: { messages },\n name: 'bento-textarea',\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./textarea.scss\" />\n"],"names":["uuid","openBlock","createElementBlock","mergeProps","_ctx","_hoisted_1$1","toDisplayString","BentoTextareaResizeOption","BentoTextareaResizeOption2","BentoTextareaStateClass","BentoTextareaStateClass2","BentoTextareaEvent","BentoTextareaEvent2","__default__","messages","attrs","useAttrs","height","toRefs","props","textareaId","generateUid","textareaElement","ref","textareaValue","defaultTextareaHeight","textareaHeight","textareaWidth","t","useI18n","isReadOnly","useFormLayoutFieldLoading","toRef","counter","computed","isOverCharacterLimit","calculateHeight","watch","nextTick","invalidInput","conditionalClasses","conditionalClassesInput","conditionalClassesLabelBox","conditionalClassesLabelItem","counterErrorText","ariaLabelAttribute","ariaLabel","label","computedAriaLabel","useAriaLabel","showClearButton","onClear","emit","onInput","event","onBlur","onFocus","onChange","onPressEscape","onMounted","observeSizeOfElement","offsetWidth","_a"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"textarea.js","sources":["../../vue2/node_modules/@adyen/ui-assets-icons-16/dist/vue/cross-circle-fill-small.vue","../../vue2/src/components/textarea/textarea.types.ts","../../vue2/src/components/textarea/textarea.vue"],"sourcesContent":["\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#00112C\" d=\"M2.25 8C2.25 4.82436 4.82436 2.25 8 2.25C11.1756 2.25 13.75 4.82436 13.75 8C13.75 11.1756 11.1756 13.75 8 13.75C4.82436 13.75 2.25 11.1756 2.25 8ZM7.00011 5.93945L5.93945 7.00011L6.93945 8.00011L5.93945 9.00011L7.00011 10.0608L8.00011 9.06077L9.00011 10.0608L10.0608 9.00011L9.06077 8.00011L10.0608 7.00011L9.00011 5.93945L8.00011 6.93945L7.00011 5.93945Z\"/></svg>\n</template>\n<script>\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n<style>\n @import '../css/main.css';\n</style>\n","/**\n * @deprecated for usage with properties since version 2.0. Use the string literal instead.\n */\nexport enum BentoTextareaResizeOption {\n HORIZONTAL = 'horizontal',\n VERTICAL = 'vertical',\n BOTH = 'both',\n NONE = 'none',\n}\n\nexport enum BentoTextareaStateClass {\n CLEARABLE = 'clearable',\n DISABLED = 'disabled',\n ERROR = 'error',\n READONLY = 'readonly',\n}\n\nexport enum BentoTextareaEvent {\n BLUR = 'blur',\n CHANGE = 'change',\n CLEAR = 'clear',\n ESCAPE_PRESSED = 'escape-pressed',\n FOCUS = 'focus',\n INPUT = 'input',\n}\n","<template>\n <div class=\"b-textarea\" :class=\"conditionalClasses\" :style=\"{ width: textareaWidth }\">\n <div class=\"b-textarea__label-box\" :class=\"conditionalClassesLabelBox\">\n <field-label\n v-if=\"label\"\n :for=\"textareaId\"\n :label=\"label\"\n :tooltip-text=\"tooltipText\"\n :optional=\"optional\"\n :required=\"required\"\n />\n <bento-typography\n v-if=\"characterLimit\"\n el=\"span\"\n class=\"b-textarea__label-item\"\n :class=\"conditionalClassesLabelItem\"\n >\n {{ counter }}\n </bento-typography>\n </div>\n <bento-typography el=\"div\" class=\"b-textarea__input-box\" :aria-disabled=\"disabled\">\n <textarea\n :id=\"textareaId\"\n ref=\"textareaElement\"\n :value=\"textareaValue\"\n class=\"b-textarea__input\"\n :class=\"conditionalClassesInput\"\n :aria-label=\"computedAriaLabel\"\n :aria-invalid=\"invalidInput\"\n :readonly=\"isReadOnly\"\n :disabled=\"disabled\"\n :placeholder=\"placeholder\"\n :style=\"{ resize: resizable, height: textareaHeight }\"\n @blur=\"onBlur\"\n @change=\"onChange\"\n @focus=\"onFocus\"\n @input=\"onInput\"\n @keydown.esc=\"onPressEscape\"\n >\n </textarea>\n\n <div v-if=\"showClearButton\" class=\"b-textarea__clear-button\">\n <bento-button\n variant=\"tertiary\"\n :disabled=\"disabled\"\n @click=\"onClear\"\n @keypress.enter=\"onClear\"\n @keyup.space=\"onClear\"\n >\n <template #iconLeft>\n <cross-circle-fill-small-icon :svg-title=\"t('clearText')\" />\n </template>\n </bento-button>\n </div>\n </bento-typography>\n\n <error-message v-if=\"isOverCharacterLimit\" :error-message=\"counterErrorText\" />\n\n <error-message v-if=\"errorMessage\" :error-message=\"errorMessage\" />\n\n <bento-typography v-if=\"description\" class=\"b-textarea__description\" el=\"span\">\n {{ description }}\n </bento-typography>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, nextTick, onMounted, PropType, ref, toRef, toRefs, useAttrs, watch } from 'vue';\n\n // Components\n import { BentoButton } from '@/components/button';\n import { BentoTypography } from '@/components/typography';\n import { ErrorMessage, FieldLabel } from '@/internal';\n import CrossCircleFillSmallIcon from '@adyen/ui-assets-icons-16/vue/cross-circle-fill-small';\n\n // Utils\n import { generateUid } from '@/utils/ts/unique-id';\n import { observeSizeOfElement } from '@/utils/ts/resize';\n import { useAriaLabel } from '@/utils/ts/aria-label';\n import { useI18n } from '@/utils/ts/i18n';\n\n // Composables\n import { useFormLayoutFieldLoading } from '@/composables/use-form-layout-loading/use-form-layout-loading';\n\n // Types\n import { BentoTextareaEvent, BentoTextareaResizeOption, BentoTextareaStateClass } from './textarea.types';\n\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const attrs = useAttrs();\n\n const props = defineProps({\n /**\n * Text that labels an the input element\n */\n ariaLabel: { type: String, default: undefined },\n\n /**\n * Text that shows number of characters in textarea\n */\n characterLimit: { type: Number, default: undefined },\n\n /**\n * Text displayed as the help text of the textarea\n */\n description: { type: String, default: '' },\n\n /**\n * Disables the possibility of changing value in the textarea\n */\n disabled: { type: Boolean, default: false },\n\n /**\n * If set to true, shows a button to clear all the text\n */\n clearable: { type: Boolean, default: false },\n\n /**\n * Adds error text\n */\n errorMessage: { type: String, default: '' },\n\n /**\n * Sets the height of the textarea, e.g 200px OR 20vh\n */\n height: { type: String, default: null },\n\n /**\n * Text displayed as the label of the textarea\n */\n label: { type: String, default: '' },\n\n /**\n * Highlights the textarea is optional.\n */\n optional: { type: Boolean, default: false },\n\n /**\n * Text displayed as the placeholder of the textarea\n */\n placeholder: { type: String, default: '' },\n\n /**\n * Set the textarea to read only state.\n */\n readonly: { type: Boolean, default: false },\n\n /**\n * Indicates the possibility of resize the textarea\n */\n resizable: {\n type: String as PropType<BentoTextareaResizeOption | `${BentoTextareaResizeOption}`>,\n default: BentoTextareaResizeOption.BOTH,\n validator: (value: BentoTextareaResizeOption) => Object.values(BentoTextareaResizeOption).includes(value),\n },\n\n /**\n * Highlights the textarea is required.\n */\n required: { type: Boolean, default: false },\n\n /**\n * Adds a info icon next to the label to display the passed tooltip message.\n */\n tooltipText: { type: String, default: null },\n\n /**\n * Text displayed as the value of the textarea\n */\n value: { type: String, default: '' },\n });\n\n const emit = defineEmits<{\n /**\n * Emitted when the element has lost focus\n */\n (e: BentoTextareaEvent.BLUR): void;\n\n /**\n * Emitted when the user modifies the element's value. Unlike the 'input' event, the change event is not necessarily fired for each alteration to an element's value\n */\n (e: BentoTextareaEvent.CHANGE): void;\n\n /**\n * Emitted when the \"Clear\" button was clicked\n */\n (e: BentoTextareaEvent.CLEAR): void;\n\n /**\n * Emitted when the \"ESC\" key is pressed\n */\n (e: BentoTextareaEvent.ESCAPE_PRESSED): void;\n\n /**\n * Emitted when the element has received focus\n */\n (e: BentoTextareaEvent.FOCUS): void;\n\n /**\n * Emitted when the component's model changes\n */\n (e: BentoTextareaEvent.INPUT, value: string): void;\n }>();\n\n const { height } = toRefs(props);\n\n const textareaId = generateUid('textarea');\n const textareaElement = ref<HTMLTextAreaElement>(null);\n const textareaValue = ref(props.value);\n const defaultTextareaHeight = 44;\n const textareaHeight = ref(props.height || `${defaultTextareaHeight}px`);\n const textareaWidth = ref('100%');\n\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n\n const { isReadOnly } = useFormLayoutFieldLoading(toRef(props, 'readonly'));\n\n const counter = computed(() => `${textareaValue.value.length} / ${props.characterLimit}`);\n const isOverCharacterLimit = computed(\n () => props.characterLimit && textareaValue.value.length > props.characterLimit\n );\n\n const calculateHeight = () => {\n const borderWidth = 3;\n if (textareaElement.value && textareaElement.value.scrollHeight > defaultTextareaHeight) {\n textareaHeight.value = `${textareaElement.value.scrollHeight + borderWidth}px`;\n }\n };\n\n watch(height, () => {\n if (!height.value) {\n calculateHeight();\n } else {\n textareaHeight.value = height.value;\n }\n });\n\n watch(\n () => props.value,\n () => {\n textareaValue.value = props.value;\n },\n { immediate: true }\n );\n\n watch(\n () => textareaValue.value,\n async () => {\n if (!height.value) {\n // Hack to make the textarea calculate its height properly\n // Set the textarea back to the original value before calculating the height\n textareaHeight.value = `${defaultTextareaHeight}px`;\n if (!textareaValue.value) {\n return;\n }\n\n await nextTick();\n calculateHeight();\n }\n },\n { immediate: true }\n );\n\n const invalidInput = computed(() => !!props.errorMessage || isOverCharacterLimit.value);\n\n const conditionalClasses = computed(() => ({\n [`b-textarea--${BentoTextareaStateClass.DISABLED}`]: props.disabled,\n }));\n\n const conditionalClassesInput = computed(() => ({\n [`b-textarea__input--${BentoTextareaStateClass.CLEARABLE}`]: props.clearable,\n [`b-textarea__input--${BentoTextareaStateClass.READONLY}`]: isReadOnly.value,\n [`b-textarea__input--${BentoTextareaStateClass.ERROR}`]: invalidInput.value,\n [`b-textarea__input--dynamic-height`]: !height.value,\n }));\n\n const conditionalClassesLabelBox = computed(() => ({\n [`b-textarea__label-box--no-label`]: !props.label,\n }));\n\n const conditionalClassesLabelItem = computed(() => ({\n [`b-textarea__label-item--${BentoTextareaStateClass.ERROR}`]: isOverCharacterLimit.value,\n }));\n\n const counterErrorText = computed(() => t('yourTextCanBenAtMost', { characterLimit: props.characterLimit }));\n\n const ariaLabelAttribute = ref(attrs['aria-label']);\n const { ariaLabel, label } = toRefs(props);\n const computedAriaLabel = useAriaLabel({\n ariaLabel: ariaLabelAttribute.value as string,\n // TODO: take this line away when the aria-label props is removed\n label: ariaLabel,\n defaultFallback: label,\n });\n\n const showClearButton = computed(\n () => props.clearable && textareaValue.value && !props.disabled && !isReadOnly.value\n );\n\n const onClear = () => {\n textareaValue.value = '';\n emit(BentoTextareaEvent.CLEAR);\n emit(BentoTextareaEvent.INPUT, '');\n };\n\n const onInput = (event: InputEvent) => {\n event.stopImmediatePropagation();\n\n if (!props.disabled && !isReadOnly.value) {\n textareaValue.value = (event.target as HTMLInputElement).value;\n /**\n * Triggered when input value is changed\n *\n * @event input\n * @property {String} inputValue - the updated textarea value\n */\n emit(BentoTextareaEvent.INPUT, textareaValue.value);\n }\n };\n\n const onBlur = () => {\n textareaElement.value.scrollTop = 0;\n emit(BentoTextareaEvent.BLUR);\n };\n\n const onFocus = () => {\n textareaElement.value.focus();\n emit(BentoTextareaEvent.FOCUS);\n };\n\n const onChange = () => {\n emit(BentoTextareaEvent.CHANGE);\n };\n\n const onPressEscape = () => {\n emit(BentoTextareaEvent.ESCAPE_PRESSED);\n };\n\n onMounted(() => {\n observeSizeOfElement(textareaElement.value, () => {\n const offsetWidth = textareaElement?.value?.offsetWidth;\n textareaWidth.value = offsetWidth ? `${offsetWidth}px` : '100%';\n });\n\n if (!height.value) {\n calculateHeight();\n }\n });\n</script>\n\n<script lang=\"ts\">\n export default {\n i18n: { messages },\n name: 'bento-textarea',\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./textarea.scss\" />\n"],"names":["uuid","openBlock","createElementBlock","mergeProps","_ctx","_hoisted_1$1","toDisplayString","BentoTextareaResizeOption","BentoTextareaResizeOption2","BentoTextareaStateClass","BentoTextareaStateClass2","BentoTextareaEvent","BentoTextareaEvent2","__default__","messages","attrs","useAttrs","height","toRefs","props","textareaId","generateUid","textareaElement","ref","textareaValue","defaultTextareaHeight","textareaHeight","textareaWidth","t","useI18n","isReadOnly","useFormLayoutFieldLoading","toRef","counter","computed","isOverCharacterLimit","calculateHeight","watch","nextTick","invalidInput","conditionalClasses","conditionalClassesInput","conditionalClassesLabelBox","conditionalClassesLabelItem","counterErrorText","ariaLabelAttribute","ariaLabel","label","computedAriaLabel","useAriaLabel","showClearButton","onClear","emit","onInput","event","onBlur","onFocus","onChange","onPressEscape","onMounted","observeSizeOfElement","offsetWidth","_a"],"mappings":"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","x_google_ignoreList":[0]}