@adyen/bento-vue2 1.5.0 → 1.6.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 (238) hide show
  1. package/dist/@types/packages/vue2/src/components/avatar-image/avatar-image.vue.d.ts +1 -1
  2. package/dist/@types/packages/vue2/src/components/button/button.vue.d.ts +97 -97
  3. package/dist/@types/packages/vue2/src/components/button/components/loading-button/loading-button.vue.d.ts +3 -3
  4. package/dist/@types/packages/vue2/src/components/card/card.vue.d.ts +7 -1
  5. package/dist/@types/packages/vue2/src/components/checkbox/components/checkbox-group/checkbox-group.vue.d.ts +3 -3
  6. package/dist/@types/packages/vue2/src/components/data-grid/composables/useCalculateColumnWidth/useCalculateColumnWidth.d.ts +6 -2
  7. package/dist/@types/packages/vue2/src/components/data-grid/composables/useCalculateStickyElementHeight/useCalculateStickyElementHeight.d.ts +2 -0
  8. package/dist/@types/packages/vue2/src/components/data-grid/composables/useColumnReorderer/useColumnReorderer.d.ts +2 -0
  9. package/dist/@types/packages/vue2/src/components/data-grid/composables/useConfigSettings/useConfigSettings.d.ts +3 -0
  10. package/dist/@types/packages/vue2/src/components/data-grid/data-grid.types.d.ts +2 -1
  11. package/dist/@types/packages/vue2/src/components/data-grid/data-grid.vue.d.ts +41 -4
  12. package/dist/@types/packages/vue2/src/components/dropdown/components/dropdown-base-textbox/dropdown-base-textbox.vue.d.ts +1 -1
  13. package/dist/@types/packages/vue2/src/components/dropdown/components/dropdown-default-textbox/dropdown-default-textbox.vue.d.ts +1 -1
  14. package/dist/@types/packages/vue2/src/components/dropdown/components/dropdown-options-container/dropdown-options-container.vue.d.ts +33 -34
  15. package/dist/@types/packages/vue2/src/components/dropdown/components/dropdown-small-textbox/dropdown-small-textbox.vue.d.ts +1 -1
  16. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-avatar/dropdown-avatar.vue.d.ts +2 -2
  17. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-country/dropdown-country.vue.d.ts +2 -2
  18. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-currency/dropdown-currency.vue.d.ts +2 -2
  19. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-payment-method/dropdown-payment-method.vue.d.ts +2 -2
  20. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-tag/dropdown-tag.vue.d.ts +3 -3
  21. package/dist/@types/packages/vue2/src/components/dropdown/dropdown.vue.d.ts +2 -2
  22. package/dist/@types/packages/vue2/src/components/filter-bar/components/all-filters-modal/all-filters-modal.vue.d.ts +20 -20
  23. package/dist/@types/packages/vue2/src/components/filter-bar/components/boolean-filter/boolean-filter.vue.d.ts +1 -1
  24. package/dist/@types/packages/vue2/src/components/filter-bar/components/date-filter/date-filter.vue.d.ts +1 -1
  25. package/dist/@types/packages/vue2/src/components/filter-bar/components/date-range-filter/date-range-filter.vue.d.ts +2 -2
  26. package/dist/@types/packages/vue2/src/components/filter-bar/components/input-filter/input-filter.vue.d.ts +1 -1
  27. package/dist/@types/packages/vue2/src/components/filter-bar/components/range-filter/range-filter.vue.d.ts +1 -1
  28. package/dist/@types/packages/vue2/src/components/filter-bar/components/select-filter/select-filter.vue.d.ts +2 -1
  29. package/dist/@types/packages/vue2/src/components/filter-bar/components/select-filter/variants/select-country-filter/select-country-filter.vue.d.ts +1 -1
  30. package/dist/@types/packages/vue2/src/components/filter-bar/components/select-filter/variants/select-tag-filter/select-tag-filter.vue.d.ts +2 -2
  31. package/dist/@types/packages/vue2/src/components/filter-bar/filter-bar.types.d.ts +7 -3
  32. package/dist/@types/packages/vue2/src/components/filter-bar/filter-bar.vue.d.ts +10 -1
  33. package/dist/@types/packages/vue2/src/components/form-layout/components/form-layout-field-tip/form-layout-field-tip.vue.d.ts +17 -1
  34. package/dist/@types/packages/vue2/src/components/form-layout/components/form-layout-field-tip/form-layout-tip.types.d.ts +3 -0
  35. package/dist/@types/packages/vue2/src/components/header/header.vue.d.ts +3 -0
  36. package/dist/@types/packages/vue2/src/components/info-icon/info-icon.vue.d.ts +3 -3
  37. package/dist/@types/packages/vue2/src/components/internal/base-button/base-button.vue.d.ts +1 -1
  38. package/dist/@types/packages/vue2/src/components/internal/fixed-scroller/composables/index.d.ts +1 -0
  39. package/dist/@types/packages/vue2/src/components/internal/fixed-scroller/composables/useFixedScroller.d.ts +15 -0
  40. package/dist/@types/packages/vue2/src/components/internal/fixed-scroller/fixed-scroller.vue.d.ts +9 -0
  41. package/dist/@types/packages/vue2/src/components/internal/fixed-scroller/index.d.ts +1 -0
  42. package/dist/@types/packages/vue2/src/components/internal/index.d.ts +1 -0
  43. package/dist/@types/packages/vue2/src/components/internal/listbox/listbox.vue.d.ts +1 -1
  44. package/dist/@types/packages/vue2/src/components/menu/components/menu-item/menu-item.vue.d.ts +4 -5
  45. package/dist/@types/packages/vue2/src/components/menu/menu.vue.d.ts +3 -3
  46. package/dist/@types/packages/vue2/src/components/modal/components/base-modal/base-modal.vue.d.ts +3 -3
  47. package/dist/@types/packages/vue2/src/components/modal/modal.vue.d.ts +9 -0
  48. package/dist/@types/packages/vue2/src/components/popover/popover.vue.d.ts +4 -4
  49. package/dist/@types/packages/vue2/src/components/popper-container/popper-container.vue.d.ts +4 -4
  50. package/dist/@types/packages/vue2/src/components/radio-group/radio-group.vue.d.ts +3 -3
  51. package/dist/@types/packages/vue2/src/components/status/status.vue.d.ts +2 -2
  52. package/dist/@types/packages/vue2/src/components/stepper/stepper.vue.d.ts +3 -3
  53. package/dist/@types/packages/vue2/src/components/summary-grid/components/summary-grid-item/summary-grid-item.vue.d.ts +1 -1
  54. package/dist/@types/packages/vue2/src/components/summary-grid/components/summary-grid-item-amount/summary-grid-item-amount.vue.d.ts +1 -1
  55. package/dist/@types/packages/vue2/src/components/summary-grid/components/summary-grid-item-numeric/summary-grid-item-numeric.vue.d.ts +1 -1
  56. package/dist/@types/packages/vue2/src/components/summary-grid/components/summary-grid-item-percentage/summary-grid-item-percentage.vue.d.ts +1 -1
  57. package/dist/@types/packages/vue2/src/components/tabs/components/tab.types.d.ts +2 -1
  58. package/dist/@types/packages/vue2/src/components/tabs/tabs.types.d.ts +1 -1
  59. package/dist/@types/packages/vue2/src/components/tag/tag.vue.d.ts +4 -4
  60. package/dist/@types/packages/vue2/src/components/textarea/textarea.vue.d.ts +18 -46
  61. package/dist/@types/packages/vue2/src/components/timeline/components/timeline-item/timeline-item.vue.d.ts +6 -6
  62. package/dist/@types/packages/vue2/src/components/tooltip/tooltip.vue.d.ts +12 -12
  63. package/dist/@types/packages/vue2/src/composables/use-expandable-content-height/use-expandable-content-height.d.ts +4 -0
  64. package/dist/@types/packages/vue2/src/templates/data-grid-template/data-grid-template.keys.d.ts +1 -0
  65. package/dist/@types/packages/vue2/src/templates/data-grid-template/data-grid-template.types.d.ts +6 -0
  66. package/dist/@types/packages/vue2/src/templates/data-grid-template/data-grid-template.vue.d.ts +121 -1
  67. package/dist/@types/packages/vue2/src/templates/data-grid-template/index.d.ts +1 -0
  68. package/dist/@types/packages/vue2/src/utils/ts/truncate.d.ts +1 -1
  69. package/dist/accordion.js +33 -36
  70. package/dist/accordion.js.map +1 -1
  71. package/dist/alert.js +3 -3
  72. package/dist/assets/base-modal.css +1 -1
  73. package/dist/assets/button.css +1 -1
  74. package/dist/assets/controls-group.css +1 -1
  75. package/dist/assets/dropdown.css +1 -1
  76. package/dist/assets/index.css +1 -1
  77. package/dist/assets/index10.css +1 -1
  78. package/dist/assets/index11.css +1 -1
  79. package/dist/assets/index12.css +1 -1
  80. package/dist/assets/index13.css +1 -1
  81. package/dist/assets/index14.css +1 -1
  82. package/dist/assets/index15.css +1 -1
  83. package/dist/assets/index16.css +1 -1
  84. package/dist/assets/index17.css +1 -1
  85. package/dist/assets/index18.css +1 -1
  86. package/dist/assets/index19.css +1 -1
  87. package/dist/assets/index2.css +1 -1
  88. package/dist/assets/index20.css +1 -1
  89. package/dist/assets/index21.css +1 -1
  90. package/dist/assets/index22.css +1 -1
  91. package/dist/assets/index23.css +1 -1
  92. package/dist/assets/index24.css +1 -1
  93. package/dist/assets/index25.css +1 -1
  94. package/dist/assets/index27.css +1 -1
  95. package/dist/assets/index28.css +1 -1
  96. package/dist/assets/index29.css +1 -1
  97. package/dist/assets/index3.css +1 -1
  98. package/dist/assets/index30.css +1 -1
  99. package/dist/assets/index31.css +1 -1
  100. package/dist/assets/index32.css +1 -1
  101. package/dist/assets/index33.css +1 -1
  102. package/dist/assets/index34.css +1 -1
  103. package/dist/assets/index35.css +1 -1
  104. package/dist/assets/index36.css +1 -1
  105. package/dist/assets/index37.css +1 -1
  106. package/dist/assets/index38.css +1 -1
  107. package/dist/assets/index39.css +1 -1
  108. package/dist/assets/index4.css +1 -1
  109. package/dist/assets/index40.css +1 -1
  110. package/dist/assets/index41.css +1 -1
  111. package/dist/assets/index42.css +1 -1
  112. package/dist/assets/index43.css +1 -1
  113. package/dist/assets/index44.css +1 -0
  114. package/dist/assets/index5.css +1 -1
  115. package/dist/assets/index6.css +1 -1
  116. package/dist/assets/index7.css +1 -1
  117. package/dist/assets/index8.css +1 -1
  118. package/dist/assets/index9.css +1 -1
  119. package/dist/assets/loading-button.css +1 -1
  120. package/dist/avatar-image.js +1 -1
  121. package/dist/badge.js +1 -1
  122. package/dist/button.js +5 -5
  123. package/dist/card.js +84 -80
  124. package/dist/card.js.map +1 -1
  125. package/dist/checkbox.js +14 -15
  126. package/dist/checkbox.js.map +1 -1
  127. package/dist/chunks/{base-button.89e9efbd.js → base-button.431fb8cf.js} +2 -2
  128. package/dist/chunks/{base-button.89e9efbd.js.map → base-button.431fb8cf.js.map} +1 -1
  129. package/dist/chunks/{base-modal.6eaa7e53.js → base-modal.f462dac0.js} +41 -41
  130. package/dist/chunks/base-modal.f462dac0.js.map +1 -0
  131. package/dist/chunks/{button.66df5734.js → button.38099670.js} +2 -2
  132. package/dist/chunks/{button.66df5734.js.map → button.38099670.js.map} +1 -1
  133. package/dist/chunks/{calendar.44459d87.js → calendar.371e5ae2.js} +8 -7
  134. package/dist/chunks/{calendar.44459d87.js.map → calendar.371e5ae2.js.map} +1 -1
  135. package/dist/chunks/{checkbox.b69b8f22.js → checkbox.b8c2e583.js} +3 -3
  136. package/dist/chunks/{checkbox.b69b8f22.js.map → checkbox.b8c2e583.js.map} +1 -1
  137. package/dist/chunks/{controls-group.a2a2916f.js → controls-group.d75f1d37.js} +2 -2
  138. package/dist/chunks/{controls-group.a2a2916f.js.map → controls-group.d75f1d37.js.map} +1 -1
  139. package/dist/chunks/{copy.57f969d4.js → copy.8e44a660.js} +3 -3
  140. package/dist/chunks/{copy.57f969d4.js.map → copy.8e44a660.js.map} +1 -1
  141. package/dist/chunks/date-input.9186a0bf.js.map +1 -1
  142. package/dist/chunks/{dropdown-default-textbox.2d093874.js → dropdown-default-textbox.6135874c.js} +2 -2
  143. package/dist/chunks/{dropdown-default-textbox.2d093874.js.map → dropdown-default-textbox.6135874c.js.map} +1 -1
  144. package/dist/chunks/{dropdown.10ea8304.js → dropdown.5d22958c.js} +184 -179
  145. package/dist/chunks/dropdown.5d22958c.js.map +1 -0
  146. package/dist/chunks/{error-message.7a5db7f6.js → error-message.a04e8f9a.js} +2 -2
  147. package/dist/chunks/{error-message.7a5db7f6.js.map → error-message.a04e8f9a.js.map} +1 -1
  148. package/dist/chunks/{footer-actions.6ddac024.js → footer-actions.ee645663.js} +3 -3
  149. package/dist/chunks/{footer-actions.6ddac024.js.map → footer-actions.ee645663.js.map} +1 -1
  150. package/dist/chunks/{index.4a11da21.js → index.5d058912.js} +22 -21
  151. package/dist/chunks/{index.4a11da21.js.map → index.5d058912.js.map} +1 -1
  152. package/dist/chunks/{index.f607a3f1.js → index.64cce50b.js} +6 -6
  153. package/dist/chunks/{index.f607a3f1.js.map → index.64cce50b.js.map} +1 -1
  154. package/dist/chunks/{index.0f8690c4.js → index.74258013.js} +2 -2
  155. package/dist/chunks/{index.0f8690c4.js.map → index.74258013.js.map} +1 -1
  156. package/dist/chunks/{index.1645ffcb.js → index.74da0d41.js} +2 -2
  157. package/dist/chunks/{index.1645ffcb.js.map → index.74da0d41.js.map} +1 -1
  158. package/dist/chunks/{index.660f2f2e.js → index.98b6db0e.js} +3 -3
  159. package/dist/chunks/{index.660f2f2e.js.map → index.98b6db0e.js.map} +1 -1
  160. package/dist/chunks/index.af05ced4.js.map +1 -1
  161. package/dist/chunks/{index.e722eb60.js → index.fd557233.js} +2 -2
  162. package/dist/chunks/{index.e722eb60.js.map → index.fd557233.js.map} +1 -1
  163. package/dist/chunks/{listbox-option-tag.e2688e54.js → listbox-option-tag.a651fa46.js} +3 -3
  164. package/dist/chunks/{listbox-option-tag.e2688e54.js.map → listbox-option-tag.a651fa46.js.map} +1 -1
  165. package/dist/chunks/{listbox.201a8521.js → listbox.cbb27077.js} +7 -7
  166. package/dist/chunks/{listbox.201a8521.js.map → listbox.cbb27077.js.map} +1 -1
  167. package/dist/chunks/{loading-button.9d18b4f2.js → loading-button.21c48d50.js} +24 -24
  168. package/dist/chunks/loading-button.21c48d50.js.map +1 -0
  169. package/dist/chunks/on-click-outside.3e0c3e2a.js.map +1 -1
  170. package/dist/chunks/{tooltip.f89cb0cd.js → tooltip.ca9673ee.js} +2 -2
  171. package/dist/chunks/tooltip.ca9673ee.js.map +1 -0
  172. package/dist/chunks/use-expandable-content-height.62fc84e5.js +17 -0
  173. package/dist/chunks/use-expandable-content-height.62fc84e5.js.map +1 -0
  174. package/dist/chunks/use-has-slot.6052d56a.js.map +1 -1
  175. package/dist/code-snippet.js +7 -7
  176. package/dist/code-snippet.js.map +1 -1
  177. package/dist/country.js +2 -2
  178. package/dist/currency.js +1 -1
  179. package/dist/data-grid.js +707 -655
  180. package/dist/data-grid.js.map +1 -1
  181. package/dist/date-picker.js +26 -26
  182. package/dist/date-range-picker.js +2 -2
  183. package/dist/date.js +1 -1
  184. package/dist/divider.js +1 -1
  185. package/dist/dropdown.js +4 -4
  186. package/dist/empty-state.js +3 -3
  187. package/dist/filter-bar.js +727 -638
  188. package/dist/filter-bar.js.map +1 -1
  189. package/dist/focus-trap.js +1 -1
  190. package/dist/form-layout.js +71 -60
  191. package/dist/form-layout.js.map +1 -1
  192. package/dist/header.js +39 -36
  193. package/dist/header.js.map +1 -1
  194. package/dist/index.js +28 -28
  195. package/dist/info-icon.js +7 -7
  196. package/dist/info-icon.js.map +1 -1
  197. package/dist/input-field.js +71 -67
  198. package/dist/input-field.js.map +1 -1
  199. package/dist/internal.js +106 -18
  200. package/dist/internal.js.map +1 -1
  201. package/dist/link.js +29 -28
  202. package/dist/link.js.map +1 -1
  203. package/dist/loading-indicator.js +1 -1
  204. package/dist/menu.js +8 -6
  205. package/dist/menu.js.map +1 -1
  206. package/dist/modal.js +20 -13
  207. package/dist/modal.js.map +1 -1
  208. package/dist/pagination.js +4 -4
  209. package/dist/payment-method.js +2 -2
  210. package/dist/popover.js +3 -3
  211. package/dist/popper-container.js +2 -2
  212. package/dist/radio-group.js +4 -4
  213. package/dist/search-bar.js +6 -6
  214. package/dist/search-bar.js.map +1 -1
  215. package/dist/segmented-control.js +4 -4
  216. package/dist/sidepanel.js +28 -28
  217. package/dist/sidepanel.js.map +1 -1
  218. package/dist/status.js +2 -2
  219. package/dist/stepper.js +3 -3
  220. package/dist/structured-list.js +1 -1
  221. package/dist/summary-grid.js +2 -2
  222. package/dist/tabs.js +48 -48
  223. package/dist/tabs.js.map +1 -1
  224. package/dist/tag.js +3 -3
  225. package/dist/textarea.js +89 -126
  226. package/dist/textarea.js.map +1 -1
  227. package/dist/timeline.js +38 -38
  228. package/dist/timeline.js.map +1 -1
  229. package/dist/toast.js +3 -3
  230. package/dist/toggle.js +2 -2
  231. package/dist/typography.js +1 -1
  232. package/dist/web-types.json +289 -222
  233. package/package.json +5 -3
  234. package/dist/@types/packages/vue2/src/components/data-grid/composables/useCalculateColumnHeadersTopPosition/useCalculateColumnHeadersTopPosition.d.ts +0 -2
  235. package/dist/chunks/base-modal.6eaa7e53.js.map +0 -1
  236. package/dist/chunks/dropdown.10ea8304.js.map +0 -1
  237. package/dist/chunks/loading-button.9d18b4f2.js.map +0 -1
  238. package/dist/chunks/tooltip.f89cb0cd.js.map +0 -1
package/dist/tabs.js CHANGED
@@ -1,10 +1,10 @@
1
- import { defineComponent as p, ref as _, provide as u, computed as x, inject as f, onUnmounted as C, watch as A, nextTick as w } from "vue";
2
- import { E as N, T as m, a as I } from "./chunks/tabs.keys.358742f2.js";
1
+ import { defineComponent as p, toRefs as x, ref as _, provide as u, computed as C, inject as f, onUnmounted as A, watch as w, nextTick as N } from "vue";
2
+ import { E as k, T as m, a as I } from "./chunks/tabs.keys.358742f2.js";
3
3
  import { n as g } from "./chunks/_plugin-vue2_normalizer.71e2aa87.js";
4
- import { B as k } from "./chunks/index.1645ffcb.js";
5
- import { g as B } from "./chunks/unique-id.a2a2b458.js";
6
- import "./assets/index27.css";
7
- const R = p({
4
+ import { B } from "./chunks/index.74da0d41.js";
5
+ import { g as R } from "./chunks/unique-id.a2a2b458.js";
6
+ import "./assets/index43.css";
7
+ const S = p({
8
8
  props: {
9
9
  /**
10
10
  * Title of the tab
@@ -22,28 +22,28 @@ const R = p({
22
22
  }
23
23
  },
24
24
  setup(s) {
25
- const e = _();
26
- u(N, (T) => {
27
- e.value = T;
25
+ const { disabled: e } = x(s), t = _();
26
+ u(k, (r) => {
27
+ t.value = r;
28
28
  });
29
- const i = x(() => e.value ?? s.title), n = f(m), c = f(I), { id: l, unregisterTab: b } = n({ disabled: s.disabled, title: i });
30
- return C(() => b()), { activeTabId: c, id: l, computedTitle: i };
29
+ const a = C(() => t.value ?? s.title), c = f(m), i = f(I), { id: b, unregisterTab: T } = c({ disabled: e, title: a });
30
+ return A(() => T()), { activeTabId: i, id: b, computedTitle: a };
31
31
  }
32
32
  });
33
- var S = function() {
33
+ var K = function() {
34
34
  var e = this, t = e._self._c;
35
35
  return e._self._setupProxy, t("div", { directives: [{ name: "show", rawName: "v-show", value: e.activeTabId === e.id, expression: "activeTabId === id" }], attrs: { id: `${e.id}-tabpanel`, role: "tabpanel", "aria-labelledby": e.id } }, [e._t("default")], 2);
36
- }, K = [], D = /* @__PURE__ */ g(
37
- R,
36
+ }, D = [], L = /* @__PURE__ */ g(
38
37
  S,
39
38
  K,
39
+ D,
40
40
  !1,
41
41
  null,
42
42
  null,
43
43
  null,
44
44
  null
45
45
  );
46
- const U = D.exports, y = (s, e) => {
46
+ const j = L.exports, y = (s, e) => {
47
47
  const t = s === 0 ? e.length - 1 : s - 1;
48
48
  return e[t].disabled ? y(t, e) : t;
49
49
  }, h = (s, e) => {
@@ -51,9 +51,9 @@ const U = D.exports, y = (s, e) => {
51
51
  return e[t].disabled ? h(t, e) : t;
52
52
  };
53
53
  var v = /* @__PURE__ */ ((s) => (s.ACTIVE_TAB_INDEX = "update:active-tab-index", s))(v || {});
54
- const L = p({
54
+ const O = p({
55
55
  components: {
56
- BentoTypography: k
56
+ BentoTypography: B
57
57
  },
58
58
  props: {
59
59
  /**
@@ -63,71 +63,71 @@ const L = p({
63
63
  },
64
64
  emits: [v.ACTIVE_TAB_INDEX],
65
65
  setup(s, { emit: e }) {
66
- const t = _([]), i = _(null), n = _("");
67
- u(I, n);
66
+ const t = _([]), l = _(null), a = _("");
67
+ u(I, a);
68
68
  const c = (r) => () => {
69
69
  var o;
70
- t.value = (o = t.value) == null ? void 0 : o.filter(({ id: a }) => a !== r);
70
+ t.value = (o = t.value) == null ? void 0 : o.filter(({ id: n }) => n !== r);
71
71
  };
72
72
  u(m, ({ title: r, disabled: o }) => {
73
- const a = B("b-tab");
74
- return t.value.push({ disabled: o, id: a, title: r }), { id: a, unregisterTab: c(a) };
73
+ const n = R("b-tab");
74
+ return t.value.push({ disabled: o, id: n, title: r }), { id: n, unregisterTab: c(n) };
75
75
  });
76
76
  const b = (r) => {
77
77
  if (r.code === "ArrowLeft" || r.code === "ArrowRight") {
78
78
  const o = t.value.find((d) => document.activeElement.id === d.id);
79
- let a = t.value.indexOf(o);
80
- r.code === "ArrowLeft" ? a = y(a, t.value) : r.code === "ArrowRight" && (a = h(a, t.value)), i.value.children[a].focus();
79
+ let n = t.value.indexOf(o);
80
+ r.code === "ArrowLeft" ? n = y(n, t.value) : r.code === "ArrowRight" && (n = h(n, t.value)), l.value.children[n].focus();
81
81
  }
82
82
  };
83
- return A(
83
+ return w(
84
84
  [() => s.activeTabIndex, t],
85
85
  ([r, o]) => {
86
- w(() => {
86
+ N(() => {
87
87
  var d;
88
- const a = o[r];
89
- n.value = a && !a.disabled ? a.id : (d = t.value.find(({ disabled: E }) => !E)) == null ? void 0 : d.id;
88
+ const n = o[r];
89
+ a.value = n && !n.disabled ? n.id : (d = t.value.find(({ disabled: E }) => !E)) == null ? void 0 : d.id;
90
90
  });
91
91
  },
92
92
  { immediate: !0 }
93
93
  ), {
94
94
  tabs: t,
95
- tablist: i,
96
- activeTabId: n,
95
+ tablist: l,
96
+ activeTabId: a,
97
97
  onKeydownTabsNavigation: b,
98
98
  handleTabChange: (r) => {
99
- n.value = r;
100
- const o = t.value.findIndex(({ id: a }) => a === n.value);
99
+ a.value = r;
100
+ const o = t.value.findIndex(({ id: n }) => n === a.value);
101
101
  e(v.ACTIVE_TAB_INDEX, o);
102
102
  }
103
103
  };
104
104
  }
105
105
  });
106
- var O = function() {
106
+ var X = function() {
107
107
  var e = this, t = e._self._c;
108
- return e._self._setupProxy, t("div", { staticClass: "b-tabs" }, [t("div", { ref: "tablist", staticClass: "b-tabs__tab-list", attrs: { role: "tablist" }, on: { keydown: e.onKeydownTabsNavigation } }, e._l(e.tabs, function({ disabled: i, id: n, title: c }) {
109
- return t("button", { key: n, staticClass: "b-tabs__tab", class: {
110
- "b-tabs__tab--active": e.activeTabId === n,
111
- "b-tabs__tab--disabled": i
112
- }, attrs: { id: n, role: "tab", type: "button", "aria-controls": `${n}-tabpanel`, "aria-selected": e.activeTabId === n ? "true" : "false", tabindex: e.activeTabId === n && !i ? null : -1, disabled: i }, on: { click: function(l) {
113
- return e.handleTabChange(n);
114
- }, keydown: function(l) {
115
- return !l.type.indexOf("key") && e._k(l.keyCode, "enter", 13, l.key, "Enter") && e._k(l.keyCode, "space", 32, l.key, [" ", "Spacebar"]) ? null : e.handleTabChange(n);
116
- } } }, [t("bento-typography", { staticClass: "b-tabs__tab-title", attrs: { el: "span", variant: "body", stronger: "" } }, [e._v(" " + e._s(c) + " ")]), t("span", { directives: [{ name: "show", rawName: "v-show", value: !i, expression: "!disabled" }], staticClass: "b-tabs__tab-underline" })], 1);
108
+ return e._self._setupProxy, t("div", { staticClass: "b-tabs" }, [t("div", { ref: "tablist", staticClass: "b-tabs__tab-list", attrs: { role: "tablist" }, on: { keydown: e.onKeydownTabsNavigation } }, e._l(e.tabs, function({ disabled: l, id: a, title: c }) {
109
+ return t("button", { key: a, staticClass: "b-tabs__tab", class: {
110
+ "b-tabs__tab--active": e.activeTabId === a,
111
+ "b-tabs__tab--disabled": l
112
+ }, attrs: { id: a, role: "tab", type: "button", "aria-controls": `${a}-tabpanel`, "aria-selected": e.activeTabId === a ? "true" : "false", tabindex: e.activeTabId === a && !l ? null : -1, disabled: l.value }, on: { click: function(i) {
113
+ return e.handleTabChange(a);
114
+ }, keydown: function(i) {
115
+ return !i.type.indexOf("key") && e._k(i.keyCode, "enter", 13, i.key, "Enter") && e._k(i.keyCode, "space", 32, i.key, [" ", "Spacebar"]) ? null : e.handleTabChange(a);
116
+ } } }, [t("bento-typography", { staticClass: "b-tabs__tab-title", attrs: { el: "span", variant: "body", stronger: "" } }, [e._v(" " + e._s(c) + " ")]), t("span", { directives: [{ name: "show", rawName: "v-show", value: !l, expression: "!disabled" }], staticClass: "b-tabs__tab-underline" })], 1);
117
117
  }), 0), e._t("default")], 2);
118
- }, X = [], Y = /* @__PURE__ */ g(
119
- L,
118
+ }, Y = [], P = /* @__PURE__ */ g(
120
119
  O,
121
120
  X,
121
+ Y,
122
122
  !1,
123
123
  null,
124
- "6340bec3",
124
+ "f622e487",
125
125
  null,
126
126
  null
127
127
  );
128
- const j = Y.exports;
128
+ const q = P.exports;
129
129
  export {
130
- U as BentoTab,
131
- j as BentoTabs
130
+ j as BentoTab,
131
+ q as BentoTabs
132
132
  };
133
133
  //# sourceMappingURL=tabs.js.map
package/dist/tabs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.js","sources":["../src/components/tabs/components/tab.vue","../src/components/tabs/tabs.utils.ts","../src/components/tabs/tabs.types.ts","../src/components/tabs/tabs.vue"],"sourcesContent":["<template>\n <div v-show=\"activeTabId === id\" :id=\"`${id}-tabpanel`\" role=\"tabpanel\" :aria-labelledby=\"id\">\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, inject, onUnmounted, provide, ref } from 'vue';\n import {\n EXTERNAL_TITLE_REGISTER_ENTRY_INJECTION_KEY,\n TABS_ACTIVE_TAB_ID_KEY,\n TABS_REGISTER_TAB_INJECTION_KEY,\n } from '../tabs.keys';\n import { BentoTabsRegisterTab } from '../tabs.types';\n import { BentoTabProvidedTitle } from './tab.types';\n\n export default defineComponent({\n props: {\n /**\n * Title of the tab\n */\n title: {\n type: String,\n required: true,\n },\n /**\n * Determines whether the tab is disabled\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n setup(props) {\n // External title injection\n const componentTitle = ref();\n const setTitle: BentoTabProvidedTitle = (value: string) => {\n componentTitle.value = value;\n };\n provide(EXTERNAL_TITLE_REGISTER_ENTRY_INJECTION_KEY, setTitle);\n\n const computedTitle = computed(() => (componentTitle.value ?? props.title) as string);\n\n const registerTab: BentoTabsRegisterTab = inject(TABS_REGISTER_TAB_INJECTION_KEY);\n const activeTabId = inject(TABS_ACTIVE_TAB_ID_KEY);\n\n const { id, unregisterTab } = registerTab({ disabled: props.disabled, title: computedTitle });\n\n onUnmounted(() => unregisterTab());\n\n return { activeTabId, id, computedTitle };\n },\n });\n</script>\n","import { BentoTab } from './components/tab.types';\n\nexport const getPreviousTabIndex = (activeTabIndex: number, tabsValue: BentoTab[]) => {\n const newActiveTabIndex = activeTabIndex === 0 ? tabsValue.length - 1 : activeTabIndex - 1;\n if (tabsValue[newActiveTabIndex].disabled) {\n return getPreviousTabIndex(newActiveTabIndex, tabsValue);\n }\n return newActiveTabIndex;\n};\n\nexport const getNextTabIndex = (activeTabIndex: number, tabsValue: BentoTab[]) => {\n const newActiveTabIndex = activeTabIndex === tabsValue.length - 1 ? 0 : activeTabIndex + 1;\n if (tabsValue[newActiveTabIndex].disabled) {\n return getNextTabIndex(newActiveTabIndex, tabsValue);\n }\n return newActiveTabIndex;\n};\n","import type { Ref } from 'vue';\n\nexport type BentoTabsRegisterTab = (props: {\n disabled: boolean;\n title: Ref<string>;\n}) => { id: string; unregisterTab: () => void };\n\nexport enum BentoTabsEvent {\n ACTIVE_TAB_INDEX = 'update:active-tab-index',\n}\n","<template>\n <div class=\"b-tabs\">\n <div ref=\"tablist\" class=\"b-tabs__tab-list\" role=\"tablist\" @keydown=\"onKeydownTabsNavigation\">\n <button\n v-for=\"{ disabled, id, title } in tabs\"\n :id=\"id\"\n :key=\"id\"\n class=\"b-tabs__tab\"\n :class=\"{\n 'b-tabs__tab--active': activeTabId === id,\n 'b-tabs__tab--disabled': disabled,\n }\"\n role=\"tab\"\n type=\"button\"\n :aria-controls=\"`${id}-tabpanel`\"\n :aria-selected=\"activeTabId === id ? 'true' : 'false'\"\n :tabindex=\"activeTabId === id && !disabled ? null : -1\"\n :disabled=\"disabled\"\n @click=\"handleTabChange(id)\"\n @keydown.enter.space=\"handleTabChange(id)\"\n >\n <bento-typography class=\"b-tabs__tab-title\" el=\"span\" variant=\"body\" stronger>\n {{ title }}\n </bento-typography>\n <span v-show=\"!disabled\" class=\"b-tabs__tab-underline\"></span>\n </button>\n </div>\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\">\n import { defineComponent, nextTick, provide, ref, Ref, watch } from 'vue';\n\n // components\n import { BentoTypography } from '@/components/typography';\n\n // utils\n import { generateUid } from '@/utils/ts/unique-id';\n import { getNextTabIndex, getPreviousTabIndex } from './tabs.utils';\n\n // types\n import { BentoTab } from './components/tab.types';\n import { BentoTabsEvent, BentoTabsRegisterTab } from './tabs.types';\n\n // keys\n import { TABS_ACTIVE_TAB_ID_KEY, TABS_REGISTER_TAB_INJECTION_KEY } from './tabs.keys';\n\n /**\n * Tabs are used to navigate between different, but related content views within a page.\n * This component conforms to the official WAI-ARIA guidelines for tabs: https://www.w3.org/WAI/ARIA/apg/patterns/tabs/\n *\n * @example\n * import { BentoTabs, BentoTab } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoTabs, BentoTab },\n * template: `\n * <bento-tabs v-bind=\"$props\">\n * <bento-tab title=\"Maria Ahlefeldt\">\n * (16 January 1755 - 20 December 1810) was a Danish, (originally German), composer. She is known as the first female composer in Denmark.\n * </bento-tab>\n * <bento-tab title=\"Carl Andersen\">\n * (29 April 1847 - 7 May 1909) was a Danish flutist, conductor and composer born in Copenhagen, son of the flutist Christian Joachim Andersen.\n * </bento-tab>\n * <bento-tab title=\"Karl Truffel\">\n * (1 March 1981 - 7 November 1992) was a Danish dog and commander born in Berlin, son of the machinist Tom Jahoor Truffel.\n * </bento-tab>\n * <bento-tab title=\"Maria Ahlefeldt\" :disabled=\"true\">\n * (16 January 1755 - 20 December 1810) was a Danish, (originally German), composer. She is known as the first female composer in Denmark.\n * </bento-tab>\n * </bento-tabs>\n * `\n * };\n */\n\n // component\n export default defineComponent({\n components: {\n BentoTypography,\n },\n props: {\n /**\n * Sets the active tab by its index (0 being the first tab item).\n */\n activeTabIndex: { type: Number, default: 0 },\n },\n emits: [BentoTabsEvent.ACTIVE_TAB_INDEX],\n setup(props, { emit }) {\n const tabs: Ref<BentoTab[]> = ref([]);\n const tablist = ref(null);\n const activeTabId = ref('');\n\n provide(TABS_ACTIVE_TAB_ID_KEY, activeTabId);\n\n // unregister tab if removed / destroyed\n const unregisterTab = (tabIdToRemove: string) => () => {\n tabs.value = tabs.value?.filter(({ id }) => id !== tabIdToRemove);\n };\n\n // register tab\n const registerTab: BentoTabsRegisterTab = ({ title, disabled }) => {\n const id = generateUid('b-tab');\n\n // add tab to tabs\n tabs.value.push({ disabled, id, title });\n\n // return values to the Tab component\n return { id, unregisterTab: unregisterTab(id) };\n };\n\n // provide activeTab and registerTab to tab items\n provide(TABS_REGISTER_TAB_INJECTION_KEY, registerTab);\n\n // keyboard navigation\n const onKeydownTabsNavigation = (e: KeyboardEvent) => {\n if (e.code === 'ArrowLeft' || e.code === 'ArrowRight') {\n // find tab that is focussed\n const activeTab = tabs.value.find(tab => document.activeElement.id === tab.id);\n let activeTabIndex = tabs.value.indexOf(activeTab);\n\n // conditionally increase or decrease the\n if (e.code === 'ArrowLeft') {\n activeTabIndex = getPreviousTabIndex(activeTabIndex, tabs.value);\n } else if (e.code === 'ArrowRight') {\n activeTabIndex = getNextTabIndex(activeTabIndex, tabs.value);\n }\n\n // focus new active tab\n tablist.value.children[activeTabIndex].focus();\n }\n };\n\n watch(\n [() => props.activeTabIndex, tabs],\n ([index, currentTabs]) => {\n nextTick(() => {\n const tab = currentTabs[index];\n activeTabId.value =\n tab && !tab.disabled ? tab.id : tabs.value.find(({ disabled }) => !disabled)?.id;\n });\n },\n { immediate: true }\n );\n\n const handleTabChange = (tabId: string) => {\n activeTabId.value = tabId;\n const activeIndex = tabs.value.findIndex(({ id }) => id === activeTabId.value);\n emit(BentoTabsEvent.ACTIVE_TAB_INDEX, activeIndex);\n };\n\n return {\n tabs,\n tablist,\n activeTabId,\n onKeydownTabsNavigation,\n handleTabChange,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./tabs.scss\" />\n"],"names":["_sfc_main$1","defineComponent","props","componentTitle","ref","provide","EXTERNAL_TITLE_REGISTER_ENTRY_INJECTION_KEY","value","computedTitle","computed","registerTab","inject","TABS_REGISTER_TAB_INJECTION_KEY","activeTabId","TABS_ACTIVE_TAB_ID_KEY","id","unregisterTab","onUnmounted","getPreviousTabIndex","activeTabIndex","tabsValue","newActiveTabIndex","getNextTabIndex","BentoTabsEvent","BentoTabsEvent2","_sfc_main","BentoTypography","emit","tabs","tablist","tabIdToRemove","_a","title","disabled","generateUid","onKeydownTabsNavigation","e","activeTab","tab","watch","index","currentTabs","nextTick","tabId","activeIndex"],"mappings":"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"}
1
+ {"version":3,"file":"tabs.js","sources":["../src/components/tabs/components/tab.vue","../src/components/tabs/tabs.utils.ts","../src/components/tabs/tabs.types.ts","../src/components/tabs/tabs.vue"],"sourcesContent":["<template>\n <div v-show=\"activeTabId === id\" :id=\"`${id}-tabpanel`\" role=\"tabpanel\" :aria-labelledby=\"id\">\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, inject, onUnmounted, provide, ref, toRefs } from 'vue';\n import {\n EXTERNAL_TITLE_REGISTER_ENTRY_INJECTION_KEY,\n TABS_ACTIVE_TAB_ID_KEY,\n TABS_REGISTER_TAB_INJECTION_KEY,\n } from '../tabs.keys';\n import { BentoTabsRegisterTab } from '../tabs.types';\n import { BentoTabProvidedTitle } from './tab.types';\n\n export default defineComponent({\n props: {\n /**\n * Title of the tab\n */\n title: {\n type: String,\n required: true,\n },\n /**\n * Determines whether the tab is disabled\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n setup(props) {\n // External title injection\n const { disabled } = toRefs(props);\n const componentTitle = ref();\n const setTitle: BentoTabProvidedTitle = (value: string) => {\n componentTitle.value = value;\n };\n provide(EXTERNAL_TITLE_REGISTER_ENTRY_INJECTION_KEY, setTitle);\n\n const computedTitle = computed(() => (componentTitle.value ?? props.title) as string);\n\n const registerTab: BentoTabsRegisterTab = inject(TABS_REGISTER_TAB_INJECTION_KEY);\n const activeTabId = inject(TABS_ACTIVE_TAB_ID_KEY);\n\n const { id, unregisterTab } = registerTab({ disabled, title: computedTitle });\n\n onUnmounted(() => unregisterTab());\n\n return { activeTabId, id, computedTitle };\n },\n });\n</script>\n","import { BentoTab } from './components/tab.types';\n\nexport const getPreviousTabIndex = (activeTabIndex: number, tabsValue: BentoTab[]) => {\n const newActiveTabIndex = activeTabIndex === 0 ? tabsValue.length - 1 : activeTabIndex - 1;\n if (tabsValue[newActiveTabIndex].disabled) {\n return getPreviousTabIndex(newActiveTabIndex, tabsValue);\n }\n return newActiveTabIndex;\n};\n\nexport const getNextTabIndex = (activeTabIndex: number, tabsValue: BentoTab[]) => {\n const newActiveTabIndex = activeTabIndex === tabsValue.length - 1 ? 0 : activeTabIndex + 1;\n if (tabsValue[newActiveTabIndex].disabled) {\n return getNextTabIndex(newActiveTabIndex, tabsValue);\n }\n return newActiveTabIndex;\n};\n","import type { Ref } from 'vue';\n\nexport type BentoTabsRegisterTab = (props: {\n disabled: Ref<boolean>;\n title: Ref<string>;\n}) => { id: string; unregisterTab: () => void };\n\nexport enum BentoTabsEvent {\n ACTIVE_TAB_INDEX = 'update:active-tab-index',\n}\n","<template>\n <div class=\"b-tabs\">\n <div ref=\"tablist\" class=\"b-tabs__tab-list\" role=\"tablist\" @keydown=\"onKeydownTabsNavigation\">\n <button\n v-for=\"{ disabled, id, title } in tabs\"\n :id=\"id\"\n :key=\"id\"\n class=\"b-tabs__tab\"\n :class=\"{\n 'b-tabs__tab--active': activeTabId === id,\n 'b-tabs__tab--disabled': disabled,\n }\"\n role=\"tab\"\n type=\"button\"\n :aria-controls=\"`${id}-tabpanel`\"\n :aria-selected=\"activeTabId === id ? 'true' : 'false'\"\n :tabindex=\"activeTabId === id && !disabled ? null : -1\"\n :disabled=\"disabled.value\"\n @click=\"handleTabChange(id)\"\n @keydown.enter.space=\"handleTabChange(id)\"\n >\n <bento-typography class=\"b-tabs__tab-title\" el=\"span\" variant=\"body\" stronger>\n {{ title }}\n </bento-typography>\n <span v-show=\"!disabled\" class=\"b-tabs__tab-underline\"></span>\n </button>\n </div>\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\">\n import { defineComponent, nextTick, provide, ref, Ref, watch } from 'vue';\n\n // components\n import { BentoTypography } from '@/components/typography';\n\n // utils\n import { generateUid } from '@/utils/ts/unique-id';\n import { getNextTabIndex, getPreviousTabIndex } from './tabs.utils';\n\n // types\n import { BentoTab } from './components/tab.types';\n import { BentoTabsEvent, BentoTabsRegisterTab } from './tabs.types';\n\n // keys\n import { TABS_ACTIVE_TAB_ID_KEY, TABS_REGISTER_TAB_INJECTION_KEY } from './tabs.keys';\n\n /**\n * Tabs are used to navigate between different, but related content views within a page.\n * This component conforms to the official WAI-ARIA guidelines for tabs: https://www.w3.org/WAI/ARIA/apg/patterns/tabs/\n *\n * @example\n * import { BentoTabs, BentoTab } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoTabs, BentoTab },\n * template: `\n * <bento-tabs v-bind=\"$props\">\n * <bento-tab title=\"Maria Ahlefeldt\">\n * (16 January 1755 - 20 December 1810) was a Danish, (originally German), composer. She is known as the first female composer in Denmark.\n * </bento-tab>\n * <bento-tab title=\"Carl Andersen\">\n * (29 April 1847 - 7 May 1909) was a Danish flutist, conductor and composer born in Copenhagen, son of the flutist Christian Joachim Andersen.\n * </bento-tab>\n * <bento-tab title=\"Karl Truffel\">\n * (1 March 1981 - 7 November 1992) was a Danish dog and commander born in Berlin, son of the machinist Tom Jahoor Truffel.\n * </bento-tab>\n * <bento-tab title=\"Maria Ahlefeldt\" :disabled=\"true\">\n * (16 January 1755 - 20 December 1810) was a Danish, (originally German), composer. She is known as the first female composer in Denmark.\n * </bento-tab>\n * </bento-tabs>\n * `\n * };\n */\n\n // component\n export default defineComponent({\n components: {\n BentoTypography,\n },\n props: {\n /**\n * Sets the active tab by its index (0 being the first tab item).\n */\n activeTabIndex: { type: Number, default: 0 },\n },\n emits: [BentoTabsEvent.ACTIVE_TAB_INDEX],\n setup(props, { emit }) {\n const tabs: Ref<BentoTab[]> = ref([]);\n const tablist = ref(null);\n const activeTabId = ref('');\n\n provide(TABS_ACTIVE_TAB_ID_KEY, activeTabId);\n\n // unregister tab if removed / destroyed\n const unregisterTab = (tabIdToRemove: string) => () => {\n tabs.value = tabs.value?.filter(({ id }) => id !== tabIdToRemove);\n };\n\n // register tab\n const registerTab: BentoTabsRegisterTab = ({ title, disabled }) => {\n const id = generateUid('b-tab');\n\n // add tab to tabs\n tabs.value.push({ disabled, id, title });\n\n // return values to the Tab component\n return { id, unregisterTab: unregisterTab(id) };\n };\n\n // provide activeTab and registerTab to tab items\n provide(TABS_REGISTER_TAB_INJECTION_KEY, registerTab);\n\n // keyboard navigation\n const onKeydownTabsNavigation = (e: KeyboardEvent) => {\n if (e.code === 'ArrowLeft' || e.code === 'ArrowRight') {\n // find tab that is focussed\n const activeTab = tabs.value.find(tab => document.activeElement.id === tab.id);\n let activeTabIndex = tabs.value.indexOf(activeTab);\n\n // conditionally increase or decrease the\n if (e.code === 'ArrowLeft') {\n activeTabIndex = getPreviousTabIndex(activeTabIndex, tabs.value);\n } else if (e.code === 'ArrowRight') {\n activeTabIndex = getNextTabIndex(activeTabIndex, tabs.value);\n }\n\n // focus new active tab\n tablist.value.children[activeTabIndex].focus();\n }\n };\n\n watch(\n [() => props.activeTabIndex, tabs],\n ([index, currentTabs]) => {\n nextTick(() => {\n const tab = currentTabs[index];\n activeTabId.value =\n tab && !tab.disabled ? tab.id : tabs.value.find(({ disabled }) => !disabled)?.id;\n });\n },\n { immediate: true }\n );\n\n const handleTabChange = (tabId: string) => {\n activeTabId.value = tabId;\n const activeIndex = tabs.value.findIndex(({ id }) => id === activeTabId.value);\n emit(BentoTabsEvent.ACTIVE_TAB_INDEX, activeIndex);\n };\n\n return {\n tabs,\n tablist,\n activeTabId,\n onKeydownTabsNavigation,\n handleTabChange,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./tabs.scss\" />\n"],"names":["_sfc_main$1","defineComponent","props","disabled","toRefs","componentTitle","ref","provide","EXTERNAL_TITLE_REGISTER_ENTRY_INJECTION_KEY","value","computedTitle","computed","registerTab","inject","TABS_REGISTER_TAB_INJECTION_KEY","activeTabId","TABS_ACTIVE_TAB_ID_KEY","id","unregisterTab","onUnmounted","getPreviousTabIndex","activeTabIndex","tabsValue","newActiveTabIndex","getNextTabIndex","BentoTabsEvent","BentoTabsEvent2","_sfc_main","BentoTypography","emit","tabs","tablist","tabIdToRemove","_a","title","generateUid","onKeydownTabsNavigation","e","activeTab","tab","watch","index","currentTabs","nextTick","tabId","activeIndex"],"mappings":";;;;;;AAgBA,MAAAA,IAAAC,EAAA;AAAA,EAAA,OAAA;AAAA;AAAA;AAAA;AAAA,IACA,OAAA;AAAA,MAIA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IACA,UAAA;AAAA,MAIA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,MAAAC,GAAA;AAGA,UAAA,EAAA,UAAAC,EAAA,IAAAC,EAAAF,CAAA,GACAG,IAAAC,EAAA;AAIA,IAAAC,EAAAC,GAHA,CAAAC,MAAA;AACA,MAAAJ,EAAA,QAAAI;AAAA,IAAA,CAEA;AAEA,UAAAC,IAAAC,EAAA,MAAAN,EAAA,SAAAH,EAAA,KAAA,GAEAU,IAAAC,EAAAC,CAAA,GACAC,IAAAF,EAAAG,CAAA,GAEA,EAAA,IAAAC,GAAA,eAAAC,EAAA,IAAAN,EAAA,EAAA,UAAAT,GAAA,OAAAO,EAAA,CAAA;AAEA,WAAAS,EAAA,MAAAD,EAAA,CAAA,GAEA,EAAA,aAAAH,GAAA,IAAAE,GAAA,eAAAP,EAAA;AAAA,EAAA;AAEA,CAAA;;;;;;;;;;;;;;qBCnDaU,IAAA,CAAAC,GAAAC,MAAA;AACT,QAAAC,IAAAF,MAAA,IAAAC,EAAA,SAAA,IAAAD,IAAA;AACA,SAAAC,EAAAC,CAAA,EAAA,WACIH,EAAAG,GAAAD,CAAA,IAEJC;AACJ,GAEaC,IAAA,CAAAH,GAAAC,MAAA;AACT,QAAAC,IAAAF,MAAAC,EAAA,SAAA,IAAA,IAAAD,IAAA;AACA,SAAAC,EAAAC,CAAA,EAAA,WACIC,EAAAD,GAAAD,CAAA,IAEJC;AACJ;ACTY,IAAAE,IAAA,kBAAAC,OACRA,EAAA,mBAAA,2BADQA,IAAAD,KAAA,CAAA,CAAA;ACsEZ,MAAAE,IAAA1B,EAAA;AAAA,EAAA,YAAA;AAAA,IACA,iBAAA2B;AAAA,EACA;AAAA,EACA,OAAA;AAAA;AAAA;AAAA;AAAA,IACA,gBAAA,EAAA,MAAA,QAAA,SAAA,EAAA;AAAA,EAIA;AAAA,EACA,OAAA,CAAAH,EAAA,gBAAA;AAAA,EACA,MAAAvB,GAAA,EAAA,MAAA2B,EAAA,GAAA;AAEA,UAAAC,IAAAxB,EAAA,CAAA,CAAA,GACAyB,IAAAzB,EAAA,IAAA,GACAS,IAAAT,EAAA,EAAA;AAEA,IAAAC,EAAAS,GAAAD,CAAA;AAGA,UAAAG,IAAA,CAAAc,MAAA,MAAA;;AACA,MAAAF,EAAA,SAAAG,IAAAH,EAAA,UAAA,gBAAAG,EAAA,OAAA,CAAA,EAAA,IAAAhB,EAAA,MAAAA,MAAAe;AAAA,IAAA;AAeA,IAAAzB,EAAAO,GAXA,CAAA,EAAA,OAAAoB,GAAA,UAAA/B,EAAA,MAAA;AACA,YAAAc,IAAAkB,EAAA,OAAA;AAGA,aAAAL,EAAA,MAAA,KAAA,EAAA,UAAA3B,GAAA,IAAAc,GAAA,OAAAiB,EAAA,CAAA,GAGA,EAAA,IAAAjB,GAAA,eAAAC,EAAAD,CAAA,EAAA;AAAA,IAAA,CAIA;AAGA,UAAAmB,IAAA,CAAAC,MAAA;AACA,UAAAA,EAAA,SAAA,eAAAA,EAAA,SAAA,cAAA;AAEA,cAAAC,IAAAR,EAAA,MAAA,KAAA,CAAAS,MAAA,SAAA,cAAA,OAAAA,EAAA,EAAA;AACA,YAAAlB,IAAAS,EAAA,MAAA,QAAAQ,CAAA;AAGA,QAAAD,EAAA,SAAA,cACAhB,IAAAD,EAAAC,GAAAS,EAAA,KAAA,IAAAO,EAAA,SAAA,iBAEAhB,IAAAG,EAAAH,GAAAS,EAAA,KAAA,IAIAC,EAAA,MAAA,SAAAV,CAAA,EAAA,MAAA;AAAA;AAAA,IACA;AAGA,WAAAmB;AAAA,MAAA,CAAA,MAAAtC,EAAA,gBAAA4B,CAAA;AAAA,MACA,CAAA,CAAAW,GAAAC,CAAA,MAAA;AAEA,QAAAC,EAAA,MAAA;;AACA,gBAAAJ,IAAAG,EAAAD,CAAA;AACA,UAAA1B,EAAA,QAAAwB,KAAA,CAAAA,EAAA,WAAAA,EAAA,MAAAN,IAAAH,EAAA,MAAA,KAAA,CAAA,EAAA,UAAA3B,EAAA,MAAA,CAAAA,CAAA,MAAA,gBAAA8B,EAAA;AAAA,QACA,CAAA;AAAA,MACA;AAAA,MACA,EAAA,WAAA,GAAA;AAAA,IACA,GASA;AAAA,MAAA,MAAAH;AAAA,MACA,SAAAC;AAAA,MACA,aAAAhB;AAAA,MACA,yBAAAqB;AAAA,MACA,iBAVA,CAAAQ,MAAA;AACA,QAAA7B,EAAA,QAAA6B;AACA,cAAAC,IAAAf,EAAA,MAAA,UAAA,CAAA,EAAA,IAAAb,EAAA,MAAAA,MAAAF,EAAA,KAAA;AACA,QAAAc,EAAAJ,EAAA,kBAAAoB,CAAA;AAAA,MAAA;AAAA,IAQA;AAAA,EACA;AAEA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/tag.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { defineComponent as c, computed as o } from "vue";
2
- import { B as d } from "./chunks/index.1645ffcb.js";
2
+ import { B as d } from "./chunks/index.74da0d41.js";
3
3
  import { u as m } from "./chunks/aria-label.ac9651a5.js";
4
4
  import { g as s } from "./chunks/get-slot-text.c1114034.js";
5
- import { b as _ } from "./chunks/tooltip.f89cb0cd.js";
5
+ import { b as _ } from "./chunks/tooltip.ca9673ee.js";
6
6
  import { n as v } from "./chunks/_plugin-vue2_normalizer.71e2aa87.js";
7
- import "./assets/index28.css";
7
+ import "./assets/index24.css";
8
8
  var r = /* @__PURE__ */ ((t) => (t.GREY = "grey", t.BLUE = "blue", t.GREEN = "green", t.ORANGE = "orange", t.RED = "red", t.WHITE = "white", t))(r || {});
9
9
  const p = c({
10
10
  name: "bento-tag",
package/dist/textarea.js CHANGED
@@ -1,35 +1,35 @@
1
- import { defineComponent as W, toRefs as x, ref as u, toRef as z, computed as o, watch as v, nextTick as G, onMounted as V } from "vue";
2
- import { B as Y } from "./chunks/index.1645ffcb.js";
3
- import { a as Z } from "./chunks/button.66df5734.js";
4
- import { n as E } from "./chunks/_plugin-vue2_normalizer.71e2aa87.js";
5
- import { g as j } from "./chunks/unique-id.a2a2b458.js";
6
- import { o as J } from "./chunks/resize.a041304d.js";
7
- import { u as K } from "./chunks/i18n.155748d6.js";
8
- import { u as Q } from "./chunks/aria-label.ac9651a5.js";
9
- import { u as X } from "./chunks/use-form-layout-loading.d03e5d48.js";
10
- import { E as ee } from "./chunks/error-message.7a5db7f6.js";
11
- import "./assets/index29.css";
12
- var m = /* @__PURE__ */ ((t) => (t.HORIZONTAL = "horizontal", t.VERTICAL = "vertical", t.BOTH = "both", t.NONE = "none", t))(m || {}), i = /* @__PURE__ */ ((t) => (t.CLEARABLE = "clearable", t.DISABLED = "disabled", t.ERROR = "error", t.READONLY = "readonly", t))(i || {}), r = /* @__PURE__ */ ((t) => (t.BLUR = "blur", t.CHANGE = "change", t.CLEAR = "clear", t.ESCAPE_PRESSED = "escape-pressed", t.FOCUS = "focus", t.INPUT = "input", t))(r || {});
13
- let L = 0;
14
- const te = {
1
+ import { defineComponent as z, useAttrs as V, toRefs as A, ref as d, toRef as Y, computed as n, watch as y, nextTick as Z, onMounted as G } from "vue";
2
+ import { B as j } from "./chunks/index.74da0d41.js";
3
+ import { a as J } from "./chunks/button.38099670.js";
4
+ import { g as K } from "./chunks/unique-id.a2a2b458.js";
5
+ import { o as Q } from "./chunks/resize.a041304d.js";
6
+ import { u as X } from "./chunks/i18n.155748d6.js";
7
+ import { u as ee } from "./chunks/aria-label.ac9651a5.js";
8
+ import { u as te } from "./chunks/use-form-layout-loading.d03e5d48.js";
9
+ import { n as S } from "./chunks/_plugin-vue2_normalizer.71e2aa87.js";
10
+ import { E as ae } from "./chunks/error-message.a04e8f9a.js";
11
+ import "./assets/index25.css";
12
+ var m = /* @__PURE__ */ ((r) => (r.HORIZONTAL = "horizontal", r.VERTICAL = "vertical", r.BOTH = "both", r.NONE = "none", r))(m || {}), u = /* @__PURE__ */ ((r) => (r.CLEARABLE = "clearable", r.DISABLED = "disabled", r.ERROR = "error", r.READONLY = "readonly", r))(u || {}), i = /* @__PURE__ */ ((r) => (r.BLUR = "blur", r.CHANGE = "change", r.CLEAR = "clear", r.ESCAPE_PRESSED = "escape-pressed", r.FOCUS = "focus", r.INPUT = "input", r))(i || {});
13
+ let B = 0;
14
+ const re = {
15
15
  beforeCreate() {
16
- this.uuid = L.toString(), L += 1;
16
+ this.uuid = B.toString(), B += 1;
17
17
  }
18
18
  };
19
- var ae = function() {
19
+ var le = function() {
20
20
  var e = this, a = e._self._c;
21
21
  return a("svg", e._b({ attrs: { role: "img", xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", fill: "none" } }, "svg", e.$attrs, !1), [e.$attrs["svg-title"] ? a("title", [e._v(e._s(e.$attrs["svg-title"]))]) : e._e(), a("path", { attrs: { 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" } })]);
22
- }, le = [], re = /* @__PURE__ */ E(
23
- te,
24
- ae,
22
+ }, se = [], oe = /* @__PURE__ */ S(
23
+ re,
25
24
  le,
25
+ se,
26
26
  !1,
27
27
  null,
28
28
  "3c9e4cfb",
29
29
  null,
30
30
  null
31
31
  );
32
- const se = re.exports, ne = {
32
+ const ne = oe.exports, ie = {
33
33
  "en-US": {
34
34
  clearText: "Clear text",
35
35
  optional: "optional",
@@ -37,10 +37,11 @@ const se = re.exports, ne = {
37
37
  textarea: "textarea",
38
38
  yourTextCanBenAtMost: "Your text can be at most {characterLimit} characters"
39
39
  }
40
- }, oe = W({
41
- i18n: { messages: ne },
42
- name: "bento-textarea",
43
- components: { BentoButton: Z, BentoTypography: Y, ErrorMessage: ee, CrossCircleFillSmallIcon: se },
40
+ }, ce = {
41
+ i18n: { messages: ie },
42
+ name: "bento-textarea"
43
+ }, ue = /* @__PURE__ */ z({
44
+ ...ce,
44
45
  props: {
45
46
  /**
46
47
  * Text that labels an the input element
@@ -92,7 +93,7 @@ const se = re.exports, ne = {
92
93
  resizable: {
93
94
  type: String,
94
95
  default: m.BOTH,
95
- validator: (t) => Object.values(m).includes(t)
96
+ validator: (r) => Object.values(m).includes(r)
96
97
  },
97
98
  /**
98
99
  * Highlights the textarea is required.
@@ -103,132 +104,94 @@ const se = re.exports, ne = {
103
104
  */
104
105
  value: { type: String, default: "" }
105
106
  },
106
- emits: [
107
- r.BLUR,
108
- r.CHANGE,
109
- r.CLEAR,
110
- r.ESCAPE_PRESSED,
111
- r.FOCUS,
112
- r.INPUT
113
- ],
114
- setup(t, { attrs: e, emit: a }) {
115
- const { height: l } = x(t), R = j("textarea"), s = u(null), n = u(t.value), b = 44, d = u(t.height || `${b}px`), y = u("100%"), { t: C } = K(), { isReadOnly: _ } = X(z(t, "readonly")), S = o(() => `${n.value.length} / ${t.characterLimit}`), f = o(
116
- () => t.characterLimit && n.value.length > t.characterLimit
117
- ), p = () => {
118
- s.value && s.value.scrollHeight > b && (d.value = `${s.value.scrollHeight + 3}px`);
107
+ setup(r, { emit: e }) {
108
+ const a = r, t = V(), { height: l } = A(a), I = K("textarea"), s = d(null), o = d(a.value), p = 44, _ = d(a.height || `${p}px`), g = d("100%"), { t: h } = X(), { isReadOnly: b } = te(Y(a, "readonly")), k = n(() => `${o.value.length} / ${a.characterLimit}`), v = n(
109
+ () => a.characterLimit && o.value.length > a.characterLimit
110
+ ), f = () => {
111
+ s.value && s.value.scrollHeight > p && (_.value = `${s.value.scrollHeight + 3}px`);
119
112
  };
120
- v(l, () => {
121
- l.value ? d.value = l.value : p();
122
- }), v(
123
- () => t.value,
113
+ y(l, () => {
114
+ l.value ? _.value = l.value : f();
115
+ }), y(
116
+ () => a.value,
124
117
  () => {
125
- n.value = t.value;
118
+ o.value = a.value;
126
119
  },
127
120
  { immediate: !0 }
128
- ), v(
129
- () => n.value,
121
+ ), y(
122
+ () => o.value,
130
123
  async () => {
131
124
  if (!l.value) {
132
- if (d.value = `${b}px`, !n.value)
125
+ if (_.value = `${p}px`, !o.value)
133
126
  return;
134
- await G(), p();
127
+ await Z(), f();
135
128
  }
136
129
  },
137
130
  { immediate: !0 }
138
131
  );
139
- const h = o(() => !!t.errorMessage || f.value), A = o(() => ({
140
- [`b-textarea--${i.DISABLED}`]: t.disabled
141
- })), I = o(() => ({
142
- [`b-textarea__input--${i.CLEARABLE}`]: t.clearable,
143
- [`b-textarea__input--${i.READONLY}`]: _.value,
144
- [`b-textarea__input--${i.ERROR}`]: h.value,
132
+ const C = n(() => !!a.errorMessage || v.value), O = n(() => ({
133
+ [`b-textarea--${u.DISABLED}`]: a.disabled
134
+ })), T = n(() => ({
135
+ [`b-textarea__input--${u.CLEARABLE}`]: a.clearable,
136
+ [`b-textarea__input--${u.READONLY}`]: b.value,
137
+ [`b-textarea__input--${u.ERROR}`]: C.value,
145
138
  ["b-textarea__input--dynamic-height"]: !l.value
146
- })), k = o(() => ({
147
- ["b-textarea__label-box--no-label"]: !t.label
148
- })), O = o(() => ({
149
- [`b-textarea__label-item--${i.ERROR}`]: f.value
150
- })), B = o(
151
- () => C("yourTextCanBenAtMost", { characterLimit: t.characterLimit })
152
- ), P = u(e["aria-label"]), { ariaLabel: N, label: F } = x(t), H = Q({
153
- ariaLabel: P.value,
139
+ })), F = n(() => ({
140
+ ["b-textarea__label-box--no-label"]: !a.label
141
+ })), M = n(() => ({
142
+ [`b-textarea__label-item--${u.ERROR}`]: v.value
143
+ })), P = n(() => h("yourTextCanBenAtMost", { characterLimit: a.characterLimit })), x = d(t["aria-label"]), { ariaLabel: L, label: E } = A(a), $ = ee({
144
+ ariaLabel: x.value,
154
145
  // TODO: take this line away when the aria-label props is removed
155
- label: N,
156
- defaultFallback: F
157
- }), U = o(
158
- () => t.clearable && n.value && !t.disabled && !_.value
159
- ), $ = () => {
160
- n.value = "", a(r.CLEAR), a(r.INPUT, "");
161
- }, w = (c) => {
162
- !t.disabled && !_.value && (n.value = c.target.value, a(r.INPUT, n.value));
163
- }, M = () => {
164
- s.value.scrollTop = 0, a(r.BLUR);
146
+ label: L,
147
+ defaultFallback: E
148
+ }), w = n(
149
+ () => a.clearable && o.value && !a.disabled && !b.value
150
+ ), H = () => {
151
+ o.value = "", e(i.CLEAR), e(i.INPUT, "");
152
+ }, N = (c) => {
153
+ c.stopImmediatePropagation(), !a.disabled && !b.value && (o.value = c.target.value, e(i.INPUT, o.value));
154
+ }, U = () => {
155
+ s.value.scrollTop = 0, e(i.BLUR);
165
156
  }, D = () => {
166
- s.value.focus(), a(r.FOCUS);
167
- }, T = () => {
168
- a(r.CHANGE);
157
+ s.value.focus(), e(i.FOCUS);
169
158
  }, q = () => {
170
- a(r.ESCAPE_PRESSED);
171
- };
172
- return V(() => {
173
- J(s.value, () => {
174
- var g;
175
- const c = (g = s == null ? void 0 : s.value) == null ? void 0 : g.offsetWidth;
176
- y.value = c ? `${c}px` : "100%";
177
- }), l.value || p();
178
- }), {
179
- // Enums
180
- BentoTextareaEvent: r,
181
- // Methods
182
- onBlur: M,
183
- onChange: T,
184
- onClear: $,
185
- onFocus: D,
186
- onInput: w,
187
- onPressEscape: q,
188
- t: C,
189
- // Values
190
- computedAriaLabel: H,
191
- conditionalClasses: A,
192
- conditionalClassesLabelItem: O,
193
- conditionalClassesLabelBox: k,
194
- counter: S,
195
- counterErrorText: B,
196
- conditionalClassesInput: I,
197
- invalidInput: h,
198
- isOverCharacterLimit: f,
199
- isReadOnly: _,
200
- showClearButton: U,
201
- textareaElement: s,
202
- textareaHeight: d,
203
- textareaId: R,
204
- textareaValue: n,
205
- textareaWidth: y
159
+ e(i.CHANGE);
160
+ }, W = () => {
161
+ e(i.ESCAPE_PRESSED);
206
162
  };
163
+ return G(() => {
164
+ Q(s.value, () => {
165
+ var R;
166
+ const c = (R = s == null ? void 0 : s.value) == null ? void 0 : R.offsetWidth;
167
+ g.value = c ? `${c}px` : "100%";
168
+ }), l.value || f();
169
+ }), { __sfc: !0, attrs: t, props: a, emit: e, height: l, textareaId: I, textareaElement: s, textareaValue: o, defaultTextareaHeight: p, textareaHeight: _, textareaWidth: g, t: h, isReadOnly: b, counter: k, isOverCharacterLimit: v, calculateHeight: f, invalidInput: C, conditionalClasses: O, conditionalClassesInput: T, conditionalClassesLabelBox: F, conditionalClassesLabelItem: M, counterErrorText: P, ariaLabelAttribute: x, ariaLabel: L, label: E, computedAriaLabel: $, showClearButton: w, onClear: H, onInput: N, onBlur: U, onFocus: D, onChange: q, onPressEscape: W, BentoTypography: j, BentoButton: J, ErrorMessage: ae, CrossCircleFillSmallIcon: ne };
207
170
  }
208
171
  });
209
- var ie = function() {
210
- var e = this, a = e._self._c;
211
- return e._self._setupProxy, a("div", { staticClass: "b-textarea", class: e.conditionalClasses, style: { width: e.textareaWidth } }, [a("div", { staticClass: "b-textarea__label-box", class: e.conditionalClassesLabelBox }, [e.label ? a("label", { staticClass: "b-textarea__label", attrs: { for: e.textareaId } }, [a("bento-typography", { attrs: { el: "span", stronger: "" } }, [e._v(e._s(e.label))]), e.optional && !e.required ? a("bento-typography", { staticClass: "b-textarea__label-item", attrs: { el: "span" } }, [e._v(" (" + e._s(e.t("optional")) + ") ")]) : e._e(), e.required ? a("bento-typography", { staticClass: "b-textarea__label-item", attrs: { el: "span" } }, [e._v(" (" + e._s(e.t("required")) + ") ")]) : e._e()], 1) : e._e(), e.characterLimit ? a("bento-typography", { staticClass: "b-textarea__label-item", class: e.conditionalClassesLabelItem, attrs: { el: "span" } }, [e._v(" " + e._s(e.counter) + " ")]) : e._e()], 1), a("bento-typography", { staticClass: "b-textarea__input-box", attrs: { el: "div", "aria-disabled": e.disabled } }, [a("textarea", { ref: "textareaElement", staticClass: "b-textarea__input", class: e.conditionalClassesInput, style: { resize: e.resizable, height: e.textareaHeight }, attrs: { id: e.textareaId, "aria-label": e.computedAriaLabel, "aria-invalid": e.invalidInput, readonly: e.isReadOnly, disabled: e.disabled, placeholder: e.placeholder }, domProps: { value: e.textareaValue }, on: { blur: e.onBlur, change: e.onChange, focus: e.onFocus, input: e.onInput, keydown: function(l) {
212
- return !l.type.indexOf("key") && e._k(l.keyCode, "esc", 27, l.key, ["Esc", "Escape"]) ? null : e.onPressEscape.apply(null, arguments);
213
- } } }), e.showClearButton ? a("div", { staticClass: "b-textarea__clear-button" }, [a("bento-button", { attrs: { variant: "tertiary", disabled: e.disabled }, on: { click: e.onClear, keypress: function(l) {
214
- return !l.type.indexOf("key") && e._k(l.keyCode, "enter", 13, l.key, "Enter") ? null : e.onClear.apply(null, arguments);
172
+ var de = function() {
173
+ var e = this, a = e._self._c, t = e._self._setupProxy;
174
+ return a("div", { staticClass: "b-textarea", class: t.conditionalClasses, style: { width: t.textareaWidth } }, [a("div", { staticClass: "b-textarea__label-box", class: t.conditionalClassesLabelBox }, [t.label ? a("label", { staticClass: "b-textarea__label", attrs: { for: t.textareaId } }, [a(t.BentoTypography, { attrs: { el: "span", stronger: "" } }, [e._v(e._s(t.label))]), e.optional && !e.required ? a(t.BentoTypography, { staticClass: "b-textarea__label-item", attrs: { el: "span" } }, [e._v(" (" + e._s(t.t("optional")) + ") ")]) : e._e(), e.required ? a(t.BentoTypography, { staticClass: "b-textarea__label-item", attrs: { el: "span" } }, [e._v(" (" + e._s(t.t("required")) + ") ")]) : e._e()], 1) : e._e(), e.characterLimit ? a(t.BentoTypography, { staticClass: "b-textarea__label-item", class: t.conditionalClassesLabelItem, attrs: { el: "span" } }, [e._v(" " + e._s(t.counter) + " ")]) : e._e()], 1), a(t.BentoTypography, { staticClass: "b-textarea__input-box", attrs: { el: "div", "aria-disabled": e.disabled } }, [a("textarea", { ref: "textareaElement", staticClass: "b-textarea__input", class: t.conditionalClassesInput, style: { resize: e.resizable, height: t.textareaHeight }, attrs: { id: t.textareaId, "aria-label": t.computedAriaLabel, "aria-invalid": t.invalidInput, readonly: t.isReadOnly, disabled: e.disabled, placeholder: e.placeholder }, domProps: { value: t.textareaValue }, on: { blur: t.onBlur, change: t.onChange, focus: t.onFocus, input: t.onInput, keydown: function(l) {
175
+ return !l.type.indexOf("key") && e._k(l.keyCode, "esc", 27, l.key, ["Esc", "Escape"]) ? null : t.onPressEscape.apply(null, arguments);
176
+ } } }), t.showClearButton ? a("div", { staticClass: "b-textarea__clear-button" }, [a(t.BentoButton, { attrs: { variant: "tertiary", disabled: e.disabled }, on: { click: t.onClear, keypress: function(l) {
177
+ return !l.type.indexOf("key") && e._k(l.keyCode, "enter", 13, l.key, "Enter") ? null : t.onClear.apply(null, arguments);
215
178
  }, keyup: function(l) {
216
- return !l.type.indexOf("key") && e._k(l.keyCode, "space", 32, l.key, [" ", "Spacebar"]) ? null : e.onClear.apply(null, arguments);
179
+ return !l.type.indexOf("key") && e._k(l.keyCode, "space", 32, l.key, [" ", "Spacebar"]) ? null : t.onClear.apply(null, arguments);
217
180
  } }, scopedSlots: e._u([{ key: "iconLeft", fn: function() {
218
- return [a("cross-circle-fill-small-icon", { attrs: { "svg-title": e.t("clearText") } })];
219
- }, proxy: !0 }], null, !1, 1092214813) })], 1) : e._e()]), e.isOverCharacterLimit ? a("error-message", { attrs: { "error-message": e.counterErrorText } }) : e._e(), e.errorMessage ? a("error-message", { attrs: { "error-message": e.errorMessage } }) : e._e(), e.description ? a("bento-typography", { staticClass: "b-textarea__description", attrs: { el: "span" } }, [e._v(" " + e._s(e.description) + " ")]) : e._e()], 1);
220
- }, ce = [], ue = /* @__PURE__ */ E(
221
- oe,
222
- ie,
223
- ce,
181
+ return [a(t.CrossCircleFillSmallIcon, { attrs: { "svg-title": t.t("clearText") } })];
182
+ }, proxy: !0 }], null, !1, 3119266621) })], 1) : e._e()]), t.isOverCharacterLimit ? a(t.ErrorMessage, { attrs: { "error-message": t.counterErrorText } }) : e._e(), e.errorMessage ? a(t.ErrorMessage, { attrs: { "error-message": e.errorMessage } }) : e._e(), e.description ? a(t.BentoTypography, { staticClass: "b-textarea__description", attrs: { el: "span" } }, [e._v(" " + e._s(e.description) + " ")]) : e._e()], 1);
183
+ }, pe = [], _e = /* @__PURE__ */ S(
184
+ ue,
185
+ de,
186
+ pe,
224
187
  !1,
225
188
  null,
226
- "7ac5f986",
189
+ "2d3b7b89",
227
190
  null,
228
191
  null
229
192
  );
230
- const ge = ue.exports;
193
+ const Ee = _e.exports;
231
194
  export {
232
- ge as BentoTextarea
195
+ Ee as BentoTextarea
233
196
  };
234
197
  //# sourceMappingURL=textarea.js.map