@adyen/bento-vue2 1.11.1 → 1.13.1

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 (274) hide show
  1. package/dist/@types/components.d.ts +2 -0
  2. package/dist/@types/packages/vue2/src/components/button/components/button-actions/button-actions.vue.d.ts +10 -22
  3. package/dist/@types/packages/vue2/src/components/code-snippet/code-snippet.vue.d.ts +1 -1
  4. package/dist/@types/packages/vue2/src/components/data-grid/components/data-grid-columns/data-grid-columns.vue.d.ts +34 -0
  5. package/dist/@types/packages/vue2/src/components/data-grid/composables/use-scroller/use-scroller.d.ts +2 -0
  6. package/dist/@types/packages/vue2/src/components/data-grid/data-grid.types.d.ts +3 -1
  7. package/dist/@types/packages/vue2/src/components/data-grid/data-grid.vue.d.ts +9 -0
  8. package/dist/@types/packages/vue2/src/components/date/date.vue.d.ts +1 -1
  9. package/dist/@types/packages/vue2/src/components/dropdown/components/dropdown-base-textbox/dropdown-base-textbox.vue.d.ts +38 -29
  10. package/dist/@types/packages/vue2/src/components/dropdown/components/dropdown-options-container/dropdown-options-container.vue.d.ts +43 -1306
  11. package/dist/@types/packages/vue2/src/components/dropdown/components/dropdown-small-textbox/dropdown-small-textbox.vue.d.ts +5 -11
  12. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-avatar/dropdown-avatar.vue.d.ts +43 -48
  13. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-avatar/index.d.ts +2 -0
  14. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-country/dropdown-country.vue.d.ts +43 -44
  15. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-country/index.d.ts +2 -0
  16. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-currency/dropdown-currency.vue.d.ts +43 -43
  17. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-payment-method/dropdown-payment-method.vue.d.ts +43 -43
  18. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-payment-method/index.d.ts +2 -0
  19. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-tag/dropdown-tag.vue.d.ts +43 -48
  20. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-tag/index.d.ts +2 -0
  21. package/dist/@types/packages/vue2/src/components/dropdown/composables/index.d.ts +2 -0
  22. package/dist/@types/packages/vue2/src/components/dropdown/composables/use-display-value.d.ts +2 -0
  23. package/dist/@types/packages/vue2/src/components/dropdown/composables/use-display-value.types.d.ts +28 -0
  24. package/dist/@types/packages/vue2/src/components/dropdown/composables/{useKeyboardNavigation.d.ts → use-keyboard-navigation.d.ts} +3 -13
  25. package/dist/@types/packages/vue2/src/components/dropdown/composables/use-keyboard-navigation.types.d.ts +15 -0
  26. package/dist/@types/packages/vue2/src/components/dropdown/dropdown.vue.d.ts +48 -1674
  27. package/dist/@types/packages/vue2/src/components/dropdown/index.d.ts +5 -4
  28. package/dist/@types/packages/vue2/src/components/filter-bar/components/all-filters-modal/all-filters-modal.vue.d.ts +532 -12
  29. package/dist/@types/packages/vue2/src/components/filter-bar/components/base-filter/base-filter.vue.d.ts +1 -0
  30. package/dist/@types/packages/vue2/src/components/filter-bar/filter-bar.types.d.ts +4 -1
  31. package/dist/@types/packages/vue2/src/components/input-field/input-field.vue.d.ts +1 -1
  32. package/dist/@types/packages/vue2/src/components/internal/listbox/components/listbox-multi-select/components/listbox-multi-select-chips/index.d.ts +1 -0
  33. package/dist/@types/packages/vue2/src/components/internal/listbox/components/listbox-multi-select/components/listbox-multi-select-chips/listbox-multi-select-chips.vue.d.ts +28 -0
  34. package/dist/@types/packages/vue2/src/components/internal/listbox/components/listbox-multi-select/listbox-multi-select.vue.d.ts +3 -4
  35. package/dist/@types/packages/vue2/src/components/internal/listbox/components/listbox-single-select/listbox-single-select.vue.d.ts +2 -2
  36. package/dist/@types/packages/vue2/src/components/internal/listbox/composables/useListboxKeyboardNavigation.d.ts +2 -2
  37. package/dist/@types/packages/vue2/src/components/internal/listbox/listbox.vue.d.ts +1 -1
  38. package/dist/@types/packages/vue2/src/components/link/link.vue.d.ts +20 -13
  39. package/dist/@types/packages/vue2/src/components/modal/components/base-modal/base-modal.keys.d.ts +1 -0
  40. package/dist/@types/packages/vue2/src/components/modal/components/base-modal/base-modal.vue.d.ts +16 -60
  41. package/dist/@types/packages/vue2/src/components/modal/components/modal-default/modal-default.vue.d.ts +59 -49
  42. package/dist/@types/packages/vue2/src/components/modal/components/modal-dialog/modal-dialog.vue.d.ts +39 -291
  43. package/dist/@types/packages/vue2/src/components/modal/modal.vue.d.ts +76 -83
  44. package/dist/@types/packages/vue2/src/components/pagination/pagination.vue.d.ts +1 -1
  45. package/dist/@types/packages/vue2/src/components/popper-container/popper-container.vue.d.ts +1 -1
  46. package/dist/@types/packages/vue2/src/components/radio-group/components/radio-button/index.d.ts +2 -0
  47. package/dist/@types/packages/vue2/src/components/radio-group/components/radio-button/radio-button.types.d.ts +1 -0
  48. package/dist/@types/packages/vue2/src/components/radio-group/components/radio-button/radio-button.vue.d.ts +22 -26
  49. package/dist/@types/packages/vue2/src/components/radio-group/index.d.ts +2 -1
  50. package/dist/@types/packages/vue2/src/components/search-bar/search-bar.vue.d.ts +1 -1
  51. package/dist/@types/packages/vue2/src/components/sidepanel/sidepanel.keys.d.ts +1 -0
  52. package/dist/@types/packages/vue2/src/components/summary-grid/components/summary-grid-item/summary-grid-item.vue.d.ts +3 -3
  53. package/dist/@types/packages/vue2/src/components/textarea/textarea.vue.d.ts +1 -1
  54. package/dist/@types/packages/vue2/src/components/tooltip/tooltip.vue.d.ts +3 -3
  55. package/dist/@types/packages/vue2/src/templates/data-grid-template/data-grid-template.types.d.ts +6 -0
  56. package/dist/@types/packages/vue2/src/templates/data-grid-template/data-grid-template.vue.d.ts +10 -0
  57. package/dist/@types/packages/vue2/src/templates/data-grid-template/index.d.ts +1 -0
  58. package/dist/accordion.js +2 -2
  59. package/dist/action-bar.js +5 -5
  60. package/dist/alert.js +17 -16
  61. package/dist/alert.js.map +1 -1
  62. package/dist/assets/base-modal.css +1 -1
  63. package/dist/assets/button.css +1 -1
  64. package/dist/assets/checkbox.css +1 -1
  65. package/dist/assets/controls-group.css +1 -1
  66. package/dist/assets/dropdown-default-textbox.css +1 -1
  67. package/dist/assets/dropdown.css +1 -1
  68. package/dist/assets/index.css +1 -1
  69. package/dist/assets/index10.css +1 -1
  70. package/dist/assets/index11.css +1 -1
  71. package/dist/assets/index12.css +1 -1
  72. package/dist/assets/index13.css +1 -1
  73. package/dist/assets/index14.css +1 -1
  74. package/dist/assets/index15.css +1 -1
  75. package/dist/assets/index16.css +1 -1
  76. package/dist/assets/index17.css +1 -1
  77. package/dist/assets/index18.css +1 -1
  78. package/dist/assets/index19.css +1 -1
  79. package/dist/assets/index2.css +1 -1
  80. package/dist/assets/index20.css +1 -1
  81. package/dist/assets/index21.css +1 -1
  82. package/dist/assets/index22.css +1 -1
  83. package/dist/assets/index23.css +1 -1
  84. package/dist/assets/index24.css +1 -1
  85. package/dist/assets/index25.css +1 -1
  86. package/dist/assets/index26.css +1 -1
  87. package/dist/assets/index27.css +1 -1
  88. package/dist/assets/index28.css +1 -1
  89. package/dist/assets/index29.css +1 -1
  90. package/dist/assets/index3.css +1 -1
  91. package/dist/assets/index30.css +1 -1
  92. package/dist/assets/index31.css +1 -1
  93. package/dist/assets/index32.css +1 -1
  94. package/dist/assets/index33.css +1 -1
  95. package/dist/assets/index34.css +1 -1
  96. package/dist/assets/index35.css +1 -1
  97. package/dist/assets/index36.css +1 -1
  98. package/dist/assets/index37.css +1 -1
  99. package/dist/assets/index38.css +1 -1
  100. package/dist/assets/index39.css +1 -1
  101. package/dist/assets/index4.css +1 -1
  102. package/dist/assets/index40.css +1 -1
  103. package/dist/assets/index41.css +1 -1
  104. package/dist/assets/index42.css +1 -1
  105. package/dist/assets/index43.css +1 -1
  106. package/dist/assets/index44.css +1 -1
  107. package/dist/assets/index45.css +1 -1
  108. package/dist/assets/index46.css +1 -1
  109. package/dist/assets/index5.css +1 -1
  110. package/dist/assets/index6.css +1 -1
  111. package/dist/assets/index7.css +1 -1
  112. package/dist/assets/index8.css +1 -1
  113. package/dist/assets/index9.css +1 -1
  114. package/dist/assets/listbox.css +1 -1
  115. package/dist/avatar-image.js +1 -1
  116. package/dist/badge.js +1 -1
  117. package/dist/button.js +45 -52
  118. package/dist/button.js.map +1 -1
  119. package/dist/card.js +15 -15
  120. package/dist/card.js.map +1 -1
  121. package/dist/checkbox.js +6 -6
  122. package/dist/chunks/arrow-left.2db60716.js.map +1 -1
  123. package/dist/chunks/{base-button.f58ffaaa.js → base-button.f9080a52.js} +2 -2
  124. package/dist/chunks/{base-button.f58ffaaa.js.map → base-button.f9080a52.js.map} +1 -1
  125. package/dist/chunks/base-modal.a580438d.js +202 -0
  126. package/dist/chunks/base-modal.a580438d.js.map +1 -0
  127. package/dist/chunks/{button-actions-with-menu.3849a35c.js → button-actions-with-menu.a9087340.js} +3 -3
  128. package/dist/chunks/{button-actions-with-menu.3849a35c.js.map → button-actions-with-menu.a9087340.js.map} +1 -1
  129. package/dist/chunks/{button.3ce10493.js → button.bb0d7584.js} +7 -7
  130. package/dist/chunks/{button.3ce10493.js.map → button.bb0d7584.js.map} +1 -1
  131. package/dist/chunks/{calendar.3e9c35d0.js → calendar.17ab99de.js} +69 -68
  132. package/dist/chunks/{calendar.3e9c35d0.js.map → calendar.17ab99de.js.map} +1 -1
  133. package/dist/chunks/{checkbox.68cc1f84.js → checkbox.51cdb397.js} +3 -3
  134. package/dist/chunks/checkbox.51cdb397.js.map +1 -0
  135. package/dist/chunks/checkmark-circle-fill.345311d2.js.map +1 -1
  136. package/dist/chunks/checkmark-small.520f01b1.js.map +1 -1
  137. package/dist/chunks/checkmark.a6ed8f47.js.map +1 -1
  138. package/dist/chunks/chevron-left.5edf02ac.js.map +1 -1
  139. package/dist/chunks/chevron-up.81185563.js.map +1 -1
  140. package/dist/chunks/{controls-group.9e878137.js → controls-group.3716f4b4.js} +4 -4
  141. package/dist/chunks/{controls-group.9e878137.js.map → controls-group.3716f4b4.js.map} +1 -1
  142. package/dist/chunks/{copy.14578696.js → copy.54cc3ab4.js} +4 -4
  143. package/dist/chunks/copy.54cc3ab4.js.map +1 -0
  144. package/dist/chunks/cross-circle-fill.27580c4b.js.map +1 -1
  145. package/dist/chunks/cross-small.e851e0de.js +26 -0
  146. package/dist/chunks/cross-small.e851e0de.js.map +1 -0
  147. package/dist/chunks/cross.04678d81.js.map +1 -1
  148. package/dist/chunks/{dropdown-default-textbox.4b227b24.js → dropdown-default-textbox.13b5054e.js} +129 -148
  149. package/dist/chunks/dropdown-default-textbox.13b5054e.js.map +1 -0
  150. package/dist/chunks/dropdown.4d800c61.js +797 -0
  151. package/dist/chunks/dropdown.4d800c61.js.map +1 -0
  152. package/dist/chunks/{field-label.3019a2f3.js → field-label.7328b82b.js} +2 -2
  153. package/dist/chunks/{field-label.3019a2f3.js.map → field-label.7328b82b.js.map} +1 -1
  154. package/dist/chunks/{fixed-scroller.cd3e1f8d.js → fixed-scroller.d6c11166.js} +2 -2
  155. package/dist/chunks/{fixed-scroller.cd3e1f8d.js.map → fixed-scroller.d6c11166.js.map} +1 -1
  156. package/dist/chunks/{footer-actions.da12aa54.js → footer-actions.bc0cb7e0.js} +3 -3
  157. package/dist/chunks/{footer-actions.da12aa54.js.map → footer-actions.bc0cb7e0.js.map} +1 -1
  158. package/dist/chunks/{index.eede8742.js → index.170ac16b.js} +3 -3
  159. package/dist/chunks/{index.eede8742.js.map → index.170ac16b.js.map} +1 -1
  160. package/dist/chunks/index.339f15c4.js +637 -0
  161. package/dist/chunks/index.339f15c4.js.map +1 -0
  162. package/dist/chunks/{index.026ae47b.js → index.541cce1c.js} +2 -2
  163. package/dist/chunks/{index.026ae47b.js.map → index.541cce1c.js.map} +1 -1
  164. package/dist/chunks/{index.c032aa32.js → index.5742fba4.js} +7 -7
  165. package/dist/chunks/index.5742fba4.js.map +1 -0
  166. package/dist/chunks/{index.32095db1.js → index.6ac01113.js} +2 -2
  167. package/dist/chunks/{index.32095db1.js.map → index.6ac01113.js.map} +1 -1
  168. package/dist/chunks/{index.618cc4cb.js → index.772a5595.js} +13 -12
  169. package/dist/chunks/{index.618cc4cb.js.map → index.772a5595.js.map} +1 -1
  170. package/dist/chunks/{index.8f1e4d8d.js → index.82ff40be.js} +3 -3
  171. package/dist/chunks/{index.8f1e4d8d.js.map → index.82ff40be.js.map} +1 -1
  172. package/dist/chunks/{index.13ede682.js → index.a4a820fd.js} +6 -6
  173. package/dist/chunks/{index.13ede682.js.map → index.a4a820fd.js.map} +1 -1
  174. package/dist/chunks/{index.02859365.js → index.af238ed6.js} +2 -2
  175. package/dist/chunks/{index.02859365.js.map → index.af238ed6.js.map} +1 -1
  176. package/dist/chunks/index.d1f65246.js +80 -0
  177. package/dist/chunks/index.d1f65246.js.map +1 -0
  178. package/dist/chunks/{index.6a417137.js → index.ec0743da.js} +5 -5
  179. package/dist/chunks/{index.6a417137.js.map → index.ec0743da.js.map} +1 -1
  180. package/dist/chunks/{info-filled.27bd4bfb.js → info-filled.c37e091d.js} +12 -33
  181. package/dist/chunks/{info-filled.27bd4bfb.js.map → info-filled.c37e091d.js.map} +1 -1
  182. package/dist/chunks/{listbox-option-tag.2efd15e0.js → listbox-option-tag.6f3e922c.js} +3 -3
  183. package/dist/chunks/{listbox-option-tag.2efd15e0.js.map → listbox-option-tag.6f3e922c.js.map} +1 -1
  184. package/dist/chunks/{listbox.371743bc.js → listbox.e5d70b9b.js} +472 -423
  185. package/dist/chunks/listbox.e5d70b9b.js.map +1 -0
  186. package/dist/chunks/{loading-button.2e197f34.js → loading-button.7301cc2e.js} +2 -2
  187. package/dist/chunks/{loading-button.2e197f34.js.map → loading-button.7301cc2e.js.map} +1 -1
  188. package/dist/chunks/refresh.71a03998.js.map +1 -1
  189. package/dist/chunks/search.471270fe.js.map +1 -1
  190. package/dist/chunks/sidepanel.keys.3f8d69c1.js +7 -0
  191. package/dist/chunks/sidepanel.keys.3f8d69c1.js.map +1 -0
  192. package/dist/chunks/{tooltip.1ec3479c.js → tooltip.46858ae6.js} +3 -3
  193. package/dist/chunks/{tooltip.1ec3479c.js.map → tooltip.46858ae6.js.map} +1 -1
  194. package/dist/chunks/{useCountryItems.6b7985bf.js → use-country-items.6b7985bf.js} +1 -1
  195. package/dist/chunks/use-country-items.6b7985bf.js.map +1 -0
  196. package/dist/code-snippet.js +7 -7
  197. package/dist/code-snippet.js.map +1 -1
  198. package/dist/country.js +2 -2
  199. package/dist/currency.js +1 -1
  200. package/dist/data-grid.js +674 -656
  201. package/dist/data-grid.js.map +1 -1
  202. package/dist/date-picker.js +30 -30
  203. package/dist/date-picker.js.map +1 -1
  204. package/dist/date-range-picker.js +2 -2
  205. package/dist/date.js +1 -1
  206. package/dist/divider.js +1 -1
  207. package/dist/dropdown.js +102 -132
  208. package/dist/dropdown.js.map +1 -1
  209. package/dist/empty-state.js +3 -3
  210. package/dist/filter-bar.js +487 -480
  211. package/dist/filter-bar.js.map +1 -1
  212. package/dist/focus-trap.js +1 -1
  213. package/dist/form-layout.js +2 -2
  214. package/dist/header.js +3 -3
  215. package/dist/index.js +207 -201
  216. package/dist/info-icon.js +3 -3
  217. package/dist/info-icon.js.map +1 -1
  218. package/dist/input-field.js +4 -4
  219. package/dist/internal.js +7 -7
  220. package/dist/link.js +3 -46
  221. package/dist/link.js.map +1 -1
  222. package/dist/loading-indicator.js +1 -1
  223. package/dist/menu.js +1 -1
  224. package/dist/modal.js +209 -302
  225. package/dist/modal.js.map +1 -1
  226. package/dist/pagination.js +88 -88
  227. package/dist/pagination.js.map +1 -1
  228. package/dist/payment-method.js +2 -2
  229. package/dist/popover.js +1 -1
  230. package/dist/popper-container.js +1 -1
  231. package/dist/radio-group.js +84 -101
  232. package/dist/radio-group.js.map +1 -1
  233. package/dist/search-bar.js +2 -2
  234. package/dist/secondary-nav.js +2 -2
  235. package/dist/segmented-control.js +3 -3
  236. package/dist/sidepanel.js +73 -71
  237. package/dist/sidepanel.js.map +1 -1
  238. package/dist/status.js +2 -2
  239. package/dist/stepper.js +3 -3
  240. package/dist/stepper.js.map +1 -1
  241. package/dist/structured-list.js +1 -1
  242. package/dist/summary-grid.js +3 -3
  243. package/dist/tabs.js +4 -4
  244. package/dist/tabs.js.map +1 -1
  245. package/dist/tag.js +3 -3
  246. package/dist/textarea.js +91 -87
  247. package/dist/textarea.js.map +1 -1
  248. package/dist/timeline.js +6 -6
  249. package/dist/timeline.js.map +1 -1
  250. package/dist/toast.js +8 -7
  251. package/dist/toast.js.map +1 -1
  252. package/dist/toggle.js +2 -2
  253. package/dist/tutorial.js +5 -5
  254. package/dist/tutorial.js.map +1 -1
  255. package/dist/typography.js +1 -1
  256. package/dist/web-types.json +3708 -3474
  257. package/package.json +2 -2
  258. package/dist/@types/packages/vue2/src/components/dropdown/composables/useDisplayValue.d.ts +0 -2
  259. package/dist/@types/packages/vue2/src/components/dropdown/composables/useDisplayValue.types.d.ts +0 -12
  260. package/dist/@types/packages/vue2/src/components/dropdown/composables/useDropdownSearchFilter.d.ts +0 -3
  261. package/dist/chunks/base-modal.435bdd62.js +0 -222
  262. package/dist/chunks/base-modal.435bdd62.js.map +0 -1
  263. package/dist/chunks/checkbox.68cc1f84.js.map +0 -1
  264. package/dist/chunks/copy.14578696.js.map +0 -1
  265. package/dist/chunks/dropdown-default-textbox.4b227b24.js.map +0 -1
  266. package/dist/chunks/dropdown.7749c2d7.js +0 -887
  267. package/dist/chunks/dropdown.7749c2d7.js.map +0 -1
  268. package/dist/chunks/index.9398acc6.js +0 -635
  269. package/dist/chunks/index.9398acc6.js.map +0 -1
  270. package/dist/chunks/index.c032aa32.js.map +0 -1
  271. package/dist/chunks/listbox.371743bc.js.map +0 -1
  272. package/dist/chunks/useCountryItems.6b7985bf.js.map +0 -1
  273. /package/dist/@types/packages/vue2/src/components/dropdown/components/dropdown-options-container/composables/{useDropdownOptionsListbox.d.ts → use-dropdown-options-listbox.d.ts} +0 -0
  274. /package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-country/composables/{useCountryItems.d.ts → use-country-items.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"stepper.js","sources":["../src/components/stepper/composables/useKeyboardNavigation/useKeyboardNavigation.ts","../src/components/stepper/stepper.keys.ts","../src/components/stepper/stepper.types.ts","../src/components/stepper/stepper.vue","../node_modules/@adyen/ui-assets-icons-16/dist/vue/dot.vue","../src/components/stepper/components/step/step.vue"],"sourcesContent":["import { Ref } from 'vue';\n\nimport { BentoKeyboardNavigationKeyDownEvent } from '@/types';\n\n/**\n * Returns keyboard navigation's event handlers to navigate through the steps\n *\n * @param steps the list of bento-steps DOM elements to focus on the navigation\n * @returns\n */\nexport const useKeyboardNavigation = (steps: Ref<HTMLButtonElement[]>) => {\n // Returns the event handler that moves the focus on a given step offset\n function focusOnStep(indexOffset: number) {\n return ({ detail: event }) => {\n event.preventDefault();\n\n const currentIndex = steps.value.indexOf(document.activeElement as HTMLButtonElement);\n if (currentIndex < 0) {\n return;\n }\n\n steps.value[currentIndex + indexOffset]?.focus();\n };\n }\n\n const focusOnPreviousStep = focusOnStep(-1);\n const focusOnNextStep = focusOnStep(1);\n\n return {\n [BentoKeyboardNavigationKeyDownEvent.ARROW_DOWN]: focusOnNextStep,\n [BentoKeyboardNavigationKeyDownEvent.ARROW_RIGHT]: focusOnNextStep,\n [BentoKeyboardNavigationKeyDownEvent.ARROW_UP]: focusOnPreviousStep,\n [BentoKeyboardNavigationKeyDownEvent.ARROW_LEFT]: focusOnPreviousStep,\n };\n};\n","import type { InjectionKey } from 'vue';\n\nimport type { BentoStepperState } from './stepper.types';\n\nexport const STEPPER_STATE = Symbol('stepper state') as InjectionKey<BentoStepperState>;\n","import type { ComputedRef, Ref } from 'vue';\n\nexport enum BentoStepperTypeOption {\n LINEAR = 'linear',\n NON_LINEAR = 'non-linear',\n}\n\nexport enum BentoStepperVariantOption {\n HORIZONTAL = 'horizontal',\n VERTICAL = 'vertical',\n}\n\nexport interface BentoStepperStepExposeState {\n buttonElement: HTMLButtonElement | Ref<HTMLButtonElement>;\n substeps: BentoStepperStepExposeState[] | Ref<BentoStepperStepExposeState[]>;\n stepContent: string | ComputedRef<string>;\n}\n\nexport type BentoStepperState = Ref<{\n activeStepIndex: number;\n latestActiveStep: number;\n type: `${BentoStepperTypeOption}`;\n variant: `${BentoStepperVariantOption}`;\n steps: HTMLElement[];\n isParentStep?: boolean;\n navigateToStep: (index: number) => void;\n registerStep: (stepState: BentoStepperStepExposeState) => void;\n}>;\n","<template>\n <nav class=\"b-stepper\">\n <ol\n v-bento-keyboard-navigation-directive\n class=\"b-stepper__list\"\n :class=\"conditionalClasses\"\n v-on=\"keyboardNavigationListeners\"\n >\n <slot></slot>\n </ol>\n\n <bento-typography el=\"span\" variant=\"body\" stronger class=\"b-stepper__text-stepper\"\n >{{\n t('step', { currentIndex: activeStepIndex + 1, totalSteps: stepsAmount, content: currentStepContent })\n }}\n </bento-typography>\n </nav>\n</template>\n\n<script setup lang=\"ts\">\n import { BentoTypography } from '@/components/typography';\n\n import { computed, PropType, provide, readonly, ref, watch } from 'vue';\n import { BentoKeyboardNavigationDirective as vBentoKeyboardNavigationDirective } from '@/directives';\n\n import { useKeyboardNavigation } from './composables/useKeyboardNavigation/useKeyboardNavigation';\n import { useI18n } from '@/utils/ts/i18n';\n\n import { STEPPER_STATE } from './stepper.keys';\n import {\n BentoStepperState,\n BentoStepperStepExposeState,\n BentoStepperTypeOption,\n BentoStepperVariantOption,\n } from './stepper.types';\n\n import messages from './messages.json';\n\n const props = defineProps({\n /**\n * Type of stepper; defines how the stepper should behave. Default: linear\n * @values linear, non-linear\n */\n type: {\n type: String as PropType<`${BentoStepperTypeOption}`>,\n default: 'linear',\n },\n /**\n * Stepper variant; defines how the stepper should be displayed. Default: vertical\n * @values vertical, horizontal\n */\n variant: {\n type: String as PropType<`${BentoStepperVariantOption}`>,\n default: 'vertical',\n },\n /**\n * Active step index\n */\n index: {\n type: Number,\n default: 0,\n },\n });\n\n const emit = defineEmits<{\n /**\n * Event triggered when step is updated by the stepper\n */\n (e: 'update:index', index: number): void;\n }>();\n\n type MessageSchema = (typeof messages)['en-US'];\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n\n const childrenSteps = ref<BentoStepperStepExposeState[]>([]);\n const activeStepIndex = ref(props.index);\n const latestActiveStep = ref(activeStepIndex.value);\n\n const navigateToStep = (index: number) => {\n // Stores latest active step index so users can navigate backwards and forwards on linear stepper\n if (index > latestActiveStep.value) {\n latestActiveStep.value = index;\n }\n activeStepIndex.value = index;\n };\n\n const currentStepContent = computed(() => childrenSteps.value[activeStepIndex.value]?.stepContent);\n const stepsAmount = computed(() => childrenSteps.value.length);\n const childrenStepsElements = computed(() => childrenSteps.value.map(({ buttonElement }) => buttonElement));\n const isHorizontalVariant = computed(() => props.variant === BentoStepperVariantOption.HORIZONTAL);\n\n // List of all visible steps nested on the stepper, including the substeps of the children steps\n // Flattening the steps on a single list makes the keyboard navigation easier to be handled\n const allVisibleStepsElements = computed(() =>\n childrenSteps.value\n .map(({ buttonElement, substeps }, index) => {\n const isStepActive = activeStepIndex.value === index;\n const isSubstepsVisible = !isHorizontalVariant.value && isStepActive;\n\n if (!isSubstepsVisible) {\n return [buttonElement];\n }\n\n return [buttonElement].concat(substeps.map(step => step.buttonElement));\n })\n .flat()\n );\n\n // Maps BentoStep children components whenever the DOM is updated to keep track of steps indexes\n const registerStep = (stepState: BentoStepperStepExposeState) => {\n childrenSteps.value.push({\n stepContent: stepState.stepContent as string,\n buttonElement: stepState.buttonElement as HTMLButtonElement,\n substeps: stepState.substeps as BentoStepperStepExposeState[],\n });\n };\n\n const stepperState: BentoStepperState = ref({\n activeStepIndex,\n latestActiveStep,\n steps: childrenStepsElements,\n type: props.type,\n variant: props.variant,\n navigateToStep,\n registerStep,\n });\n\n const conditionalClasses = computed(() => ({\n 'b-stepper__list--horizontal': isHorizontalVariant.value,\n }));\n\n watch(() => props.index, navigateToStep);\n watch(activeStepIndex, index => {\n emit('update:index', index);\n });\n\n const keyboardNavigationListeners = useKeyboardNavigation(allVisibleStepsElements);\n\n // Provides stepper state to BentoStep children components\n provide(STEPPER_STATE, readonly(stepperState));\n</script>\n\n<script lang=\"ts\">\n /**\n * Steppers break down complex processes into manageable steps to guide users through a sequential or multi-step process.\n *\n * @example\n * import { BentoStep, BentoStepper } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoStep, BentoStepper },\n * template: `\n * <bento-stepper :index=\"1\">\n * <bento-step>Step 1</bento-step>\n * <bento-step>Step 2</bento-step>\n * <bento-step>Step 3</bento-step>\n * </bento-stepper>\n * `\n * }\n */\n\n export default {\n i18n: { messages },\n name: 'stepper',\n };\n</script>\n\n<style scoped src=\"./stepper.scss\" />\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#00112C\" d=\"M8 5.25C6.48122 5.25 5.25 6.48122 5.25 8C5.25 9.51878 6.48122 10.75 8 10.75C9.51878 10.75 10.75 9.51878 10.75 8C10.75 6.48122 9.51878 5.25 8 5.25Z\"/></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","<template>\n <li :class=\"conditionalClasses\" class=\"b-step\">\n <base-button\n ref=\"buttonComponent\"\n :aria-current=\"ariaCurrentValue\"\n :aria-disabled=\"ariaDisabledValue\"\n class=\"b-step__button\"\n type=\"button\"\n :tabindex=\"tabIndexValue\"\n :disabled=\"isDisabled\"\n @click=\"navigateToStep\"\n @focus=\"isFocused = true\"\n @blur=\"isFocused = false\"\n >\n <template #iconLeft>\n <bento-typography el=\"span\" variant=\"body\" stronger class=\"b-step__index\" aria-hidden=\"true\">\n <checkmark-small-icon v-if=\"isCompleted\" />\n <template v-else-if=\"!isSubstep\">{{ index + 1 }}</template>\n <dot-icon v-else />\n </bento-typography>\n </template>\n\n <bento-typography ref=\"stepContent\" el=\"span\" variant=\"body\" :stronger=\"isActive\" class=\"b-step__content\">\n <slot></slot>\n </bento-typography>\n </base-button>\n\n <ul v-show=\"isSubstepsVisible\" ref=\"substepList\" class=\"b-step__substep-list\">\n <slot name=\"substeps\"></slot>\n </ul>\n </li>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, inject, onMounted, provide, ref, useSlots, watch } from 'vue';\n import { BaseButton } from '@/components/internal/base-button';\n import { BentoTypography } from '@/components/typography';\n import CheckmarkSmallIcon from '@adyen/ui-assets-icons-16/vue/checkmark-small';\n import DotIcon from '@adyen/ui-assets-icons-16/vue/dot';\n\n import { STEPPER_STATE } from '../../stepper.keys';\n import {\n BentoStepperState,\n BentoStepperStepExposeState,\n BentoStepperTypeOption,\n BentoStepperVariantOption,\n } from '../../stepper.types';\n import { Booleanish } from '@/types';\n\n const slots = useSlots();\n\n const props = defineProps({\n /**\n * Completed status. Used on non-linear steppers to indicate if the step is completed.\n */\n completed: {\n type: Boolean,\n default: false,\n },\n /**\n * Active substep index\n */\n substepIndex: {\n type: Number,\n default: 0,\n },\n });\n\n const emit = defineEmits<{\n /**\n * Event triggered when substep is updated by the parent step\n */\n (e: 'update:substep-index', index: number): void;\n }>();\n\n // Element refs\n const buttonComponent = ref<InstanceType<typeof BaseButton> | null>(null);\n const stepContent = ref<InstanceType<typeof BentoTypography> | null>(null);\n const substeps = ref<BentoStepperStepExposeState[]>([]);\n\n // Injects parent BentoStepper state data\n const stepper = inject(STEPPER_STATE);\n\n const buttonElement = computed(() => buttonComponent.value?.$el as HTMLButtonElement);\n const index = computed(() => stepper?.value.steps.indexOf(buttonElement.value));\n\n const stepContentValue = computed(() => stepContent.value?.$el.textContent);\n\n // Substep logic\n const substepsButtonElements = computed(() => substeps.value.map(({ buttonElement }) => buttonElement));\n\n const activeSubStepIndex = ref(props.substepIndex);\n const latestActiveSubStepIndex = ref(activeSubStepIndex.value);\n\n const navigateToSubstep = (value: number) => {\n if (value > latestActiveSubStepIndex.value) {\n latestActiveSubStepIndex.value = value;\n }\n\n activeSubStepIndex.value = value;\n };\n\n const registerSubstep = (stepState: BentoStepperStepExposeState) => {\n substeps.value.push({\n stepContent: stepState.stepContent as string,\n buttonElement: stepState.buttonElement as HTMLButtonElement,\n substeps: stepState.substeps as BentoStepperStepExposeState[],\n });\n };\n\n const stepState: BentoStepperState = ref({\n activeStepIndex: activeSubStepIndex,\n latestActiveStep: latestActiveSubStepIndex,\n type: stepper.value.type,\n variant: stepper.value.variant,\n steps: substepsButtonElements,\n isParentStep: true,\n navigateToStep: navigateToSubstep,\n registerStep: registerSubstep,\n });\n\n provide(STEPPER_STATE, stepState);\n\n watch(() => props.substepIndex, navigateToSubstep);\n watch(activeSubStepIndex, value => {\n emit('update:substep-index', value);\n });\n\n onMounted(() => {\n if (!stepper) {\n throw new Error(\n 'BentoStep components should only be used inside BentoStepper or other BentoStep components.'\n );\n }\n\n stepper.value.registerStep({\n buttonElement,\n stepContent: stepContentValue,\n substeps,\n });\n });\n\n // Step states\n const isSubstep = computed(() => stepper.value.isParentStep);\n const isFocused = ref(false);\n const isActive = computed(() => stepper?.value.activeStepIndex === index.value);\n const isSubstepsVisible = computed(\n () =>\n isActive.value &&\n stepper.value.variant !== BentoStepperVariantOption.HORIZONTAL &&\n !isSubstep.value &&\n slots.substeps\n );\n const isCompleted = computed(() => {\n if (stepper?.value.type === BentoStepperTypeOption.NON_LINEAR) {\n return props.completed;\n }\n\n return stepper?.value.latestActiveStep > index.value;\n });\n const isDisabled = computed(\n () => stepper?.value.type === BentoStepperTypeOption.LINEAR && index.value > stepper?.value.latestActiveStep\n );\n\n const navigateToStep = () => {\n if (isDisabled.value) {\n return;\n }\n\n stepper.value.navigateToStep(index.value);\n };\n\n // Styling and a11y\n const ariaCurrentValue = computed(() => (isActive.value ? 'step' : ('false' as Booleanish)));\n const ariaDisabledValue = computed(() => isDisabled.value.toString() as Booleanish);\n const tabIndexValue = computed(() => (isFocused.value || (index.value === 0 && !isSubstep.value) ? '0' : '-1'));\n\n const conditionalClasses = computed(() => ({\n 'b-step--active': isActive.value,\n 'b-step--completed': isCompleted.value,\n 'b-step--substep': isSubstep.value,\n }));\n</script>\n\n<script lang=\"ts\">\n /**\n * Steps are components placed inside BentoSteppers to break down complex processes\n *\n * @example\n * import { BentoStep } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoStep },\n * template: `\n * <bento-stepper>\n * <bento-step>Step 1</bento-step>\n * <bento-step>\n * Step 2\n * <template #substeps>\n * <bento-step>Substep 1</bento-step>\n * <bento-step>Substep 2</bento-step>\n * </template>\n * </bento-step>\n * </bento-stepper>\n * `\n * }\n */\n\n export default {\n name: 'step',\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./step.scss\" />\n"],"names":["useKeyboardNavigation","steps","focusOnStep","indexOffset","event","currentIndex","_a","focusOnPreviousStep","focusOnNextStep","BentoKeyboardNavigationKeyDownEvent","STEPPER_STATE","BentoStepperTypeOption","BentoStepperTypeOption2","BentoStepperVariantOption","BentoStepperVariantOption2","__default__$1","messages","t","useI18n","childrenSteps","ref","activeStepIndex","props","latestActiveStep","navigateToStep","index","currentStepContent","computed","stepsAmount","childrenStepsElements","buttonElement","isHorizontalVariant","allVisibleStepsElements","substeps","isStepActive","step","registerStep","stepState","stepperState","conditionalClasses","watch","emit","keyboardNavigationListeners","provide","readonly","uuid","_sfc_main$1","__default__","slots","useSlots","buttonComponent","stepContent","stepper","inject","stepContentValue","substepsButtonElements","buttonElement2","activeSubStepIndex","latestActiveSubStepIndex","navigateToSubstep","value","registerSubstep","stepState2","onMounted","isSubstep","isFocused","isActive","isSubstepsVisible","isCompleted","isDisabled","ariaCurrentValue","ariaDisabledValue","tabIndexValue"],"mappings":"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","x_google_ignoreList":[4]}
1
+ {"version":3,"file":"stepper.js","sources":["../src/components/stepper/composables/useKeyboardNavigation/useKeyboardNavigation.ts","../src/components/stepper/stepper.keys.ts","../src/components/stepper/stepper.types.ts","../src/components/stepper/stepper.vue","../../../node_modules/@adyen/ui-assets-icons-16/dist/vue/dot.vue","../src/components/stepper/components/step/step.vue"],"sourcesContent":["import { Ref } from 'vue';\n\nimport { BentoKeyboardNavigationKeyDownEvent } from '@/types';\n\n/**\n * Returns keyboard navigation's event handlers to navigate through the steps\n *\n * @param steps the list of bento-steps DOM elements to focus on the navigation\n * @returns\n */\nexport const useKeyboardNavigation = (steps: Ref<HTMLButtonElement[]>) => {\n // Returns the event handler that moves the focus on a given step offset\n function focusOnStep(indexOffset: number) {\n return ({ detail: event }) => {\n event.preventDefault();\n\n const currentIndex = steps.value.indexOf(document.activeElement as HTMLButtonElement);\n if (currentIndex < 0) {\n return;\n }\n\n steps.value[currentIndex + indexOffset]?.focus();\n };\n }\n\n const focusOnPreviousStep = focusOnStep(-1);\n const focusOnNextStep = focusOnStep(1);\n\n return {\n [BentoKeyboardNavigationKeyDownEvent.ARROW_DOWN]: focusOnNextStep,\n [BentoKeyboardNavigationKeyDownEvent.ARROW_RIGHT]: focusOnNextStep,\n [BentoKeyboardNavigationKeyDownEvent.ARROW_UP]: focusOnPreviousStep,\n [BentoKeyboardNavigationKeyDownEvent.ARROW_LEFT]: focusOnPreviousStep,\n };\n};\n","import type { InjectionKey } from 'vue';\n\nimport type { BentoStepperState } from './stepper.types';\n\nexport const STEPPER_STATE = Symbol('stepper state') as InjectionKey<BentoStepperState>;\n","import type { ComputedRef, Ref } from 'vue';\n\nexport enum BentoStepperTypeOption {\n LINEAR = 'linear',\n NON_LINEAR = 'non-linear',\n}\n\nexport enum BentoStepperVariantOption {\n HORIZONTAL = 'horizontal',\n VERTICAL = 'vertical',\n}\n\nexport interface BentoStepperStepExposeState {\n buttonElement: HTMLButtonElement | Ref<HTMLButtonElement>;\n substeps: BentoStepperStepExposeState[] | Ref<BentoStepperStepExposeState[]>;\n stepContent: string | ComputedRef<string>;\n}\n\nexport type BentoStepperState = Ref<{\n activeStepIndex: number;\n latestActiveStep: number;\n type: `${BentoStepperTypeOption}`;\n variant: `${BentoStepperVariantOption}`;\n steps: HTMLElement[];\n isParentStep?: boolean;\n navigateToStep: (index: number) => void;\n registerStep: (stepState: BentoStepperStepExposeState) => void;\n}>;\n","<template>\n <nav class=\"b-stepper\">\n <ol\n v-bento-keyboard-navigation-directive\n class=\"b-stepper__list\"\n :class=\"conditionalClasses\"\n v-on=\"keyboardNavigationListeners\"\n >\n <slot></slot>\n </ol>\n\n <bento-typography el=\"span\" variant=\"body\" stronger class=\"b-stepper__text-stepper\"\n >{{\n t('step', { currentIndex: activeStepIndex + 1, totalSteps: stepsAmount, content: currentStepContent })\n }}\n </bento-typography>\n </nav>\n</template>\n\n<script setup lang=\"ts\">\n import { BentoTypography } from '@/components/typography';\n\n import { computed, PropType, provide, readonly, ref, watch } from 'vue';\n import { BentoKeyboardNavigationDirective as vBentoKeyboardNavigationDirective } from '@/directives';\n\n import { useKeyboardNavigation } from './composables/useKeyboardNavigation/useKeyboardNavigation';\n import { useI18n } from '@/utils/ts/i18n';\n\n import { STEPPER_STATE } from './stepper.keys';\n import {\n BentoStepperState,\n BentoStepperStepExposeState,\n BentoStepperTypeOption,\n BentoStepperVariantOption,\n } from './stepper.types';\n\n import messages from './messages.json';\n\n const props = defineProps({\n /**\n * Type of stepper; defines how the stepper should behave. Default: linear\n * @values linear, non-linear\n */\n type: {\n type: String as PropType<`${BentoStepperTypeOption}`>,\n default: 'linear',\n },\n /**\n * Stepper variant; defines how the stepper should be displayed. Default: vertical\n * @values vertical, horizontal\n */\n variant: {\n type: String as PropType<`${BentoStepperVariantOption}`>,\n default: 'vertical',\n },\n /**\n * Active step index\n */\n index: {\n type: Number,\n default: 0,\n },\n });\n\n const emit = defineEmits<{\n /**\n * Event triggered when step is updated by the stepper\n */\n (e: 'update:index', index: number): void;\n }>();\n\n type MessageSchema = (typeof messages)['en-US'];\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n\n const childrenSteps = ref<BentoStepperStepExposeState[]>([]);\n const activeStepIndex = ref(props.index);\n const latestActiveStep = ref(activeStepIndex.value);\n\n const navigateToStep = (index: number) => {\n // Stores latest active step index so users can navigate backwards and forwards on linear stepper\n if (index > latestActiveStep.value) {\n latestActiveStep.value = index;\n }\n activeStepIndex.value = index;\n };\n\n const currentStepContent = computed(() => childrenSteps.value[activeStepIndex.value]?.stepContent);\n const stepsAmount = computed(() => childrenSteps.value.length);\n const childrenStepsElements = computed(() => childrenSteps.value.map(({ buttonElement }) => buttonElement));\n const isHorizontalVariant = computed(() => props.variant === BentoStepperVariantOption.HORIZONTAL);\n\n // List of all visible steps nested on the stepper, including the substeps of the children steps\n // Flattening the steps on a single list makes the keyboard navigation easier to be handled\n const allVisibleStepsElements = computed(() =>\n childrenSteps.value\n .map(({ buttonElement, substeps }, index) => {\n const isStepActive = activeStepIndex.value === index;\n const isSubstepsVisible = !isHorizontalVariant.value && isStepActive;\n\n if (!isSubstepsVisible) {\n return [buttonElement];\n }\n\n return [buttonElement].concat(substeps.map(step => step.buttonElement));\n })\n .flat()\n );\n\n // Maps BentoStep children components whenever the DOM is updated to keep track of steps indexes\n const registerStep = (stepState: BentoStepperStepExposeState) => {\n childrenSteps.value.push({\n stepContent: stepState.stepContent as string,\n buttonElement: stepState.buttonElement as HTMLButtonElement,\n substeps: stepState.substeps as BentoStepperStepExposeState[],\n });\n };\n\n const stepperState: BentoStepperState = ref({\n activeStepIndex,\n latestActiveStep,\n steps: childrenStepsElements,\n type: props.type,\n variant: props.variant,\n navigateToStep,\n registerStep,\n });\n\n const conditionalClasses = computed(() => ({\n 'b-stepper__list--horizontal': isHorizontalVariant.value,\n }));\n\n watch(() => props.index, navigateToStep);\n watch(activeStepIndex, index => {\n emit('update:index', index);\n });\n\n const keyboardNavigationListeners = useKeyboardNavigation(allVisibleStepsElements);\n\n // Provides stepper state to BentoStep children components\n provide(STEPPER_STATE, readonly(stepperState));\n</script>\n\n<script lang=\"ts\">\n /**\n * Steppers break down complex processes into manageable steps to guide users through a sequential or multi-step process.\n *\n * @example\n * import { BentoStep, BentoStepper } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoStep, BentoStepper },\n * template: `\n * <bento-stepper :index=\"1\">\n * <bento-step>Step 1</bento-step>\n * <bento-step>Step 2</bento-step>\n * <bento-step>Step 3</bento-step>\n * </bento-stepper>\n * `\n * }\n */\n\n export default {\n i18n: { messages },\n name: 'stepper',\n };\n</script>\n\n<style scoped src=\"./stepper.scss\" />\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#00112C\" d=\"M8 5.25C6.48122 5.25 5.25 6.48122 5.25 8C5.25 9.51878 6.48122 10.75 8 10.75C9.51878 10.75 10.75 9.51878 10.75 8C10.75 6.48122 9.51878 5.25 8 5.25Z\"/></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","<template>\n <li :class=\"conditionalClasses\" class=\"b-step\">\n <base-button\n ref=\"buttonComponent\"\n :aria-current=\"ariaCurrentValue\"\n :aria-disabled=\"ariaDisabledValue\"\n class=\"b-step__button\"\n type=\"button\"\n :tabindex=\"tabIndexValue\"\n :disabled=\"isDisabled\"\n @click=\"navigateToStep\"\n @focus=\"isFocused = true\"\n @blur=\"isFocused = false\"\n >\n <template #iconLeft>\n <bento-typography el=\"span\" variant=\"body\" stronger class=\"b-step__index\" aria-hidden=\"true\">\n <checkmark-small-icon v-if=\"isCompleted\" />\n <template v-else-if=\"!isSubstep\">{{ index + 1 }}</template>\n <dot-icon v-else />\n </bento-typography>\n </template>\n\n <bento-typography ref=\"stepContent\" el=\"span\" variant=\"body\" :stronger=\"isActive\" class=\"b-step__content\">\n <slot></slot>\n </bento-typography>\n </base-button>\n\n <ul v-show=\"isSubstepsVisible\" ref=\"substepList\" class=\"b-step__substep-list\">\n <slot name=\"substeps\"></slot>\n </ul>\n </li>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, inject, onMounted, provide, ref, useSlots, watch } from 'vue';\n import { BaseButton } from '@/components/internal/base-button';\n import { BentoTypography } from '@/components/typography';\n import CheckmarkSmallIcon from '@adyen/ui-assets-icons-16/vue/checkmark-small';\n import DotIcon from '@adyen/ui-assets-icons-16/vue/dot';\n\n import { STEPPER_STATE } from '../../stepper.keys';\n import {\n BentoStepperState,\n BentoStepperStepExposeState,\n BentoStepperTypeOption,\n BentoStepperVariantOption,\n } from '../../stepper.types';\n import { Booleanish } from '@/types';\n\n const slots = useSlots();\n\n const props = defineProps({\n /**\n * Completed status. Used on non-linear steppers to indicate if the step is completed.\n */\n completed: {\n type: Boolean,\n default: false,\n },\n /**\n * Active substep index\n */\n substepIndex: {\n type: Number,\n default: 0,\n },\n });\n\n const emit = defineEmits<{\n /**\n * Event triggered when substep is updated by the parent step\n */\n (e: 'update:substep-index', index: number): void;\n }>();\n\n // Element refs\n const buttonComponent = ref<InstanceType<typeof BaseButton> | null>(null);\n const stepContent = ref<InstanceType<typeof BentoTypography> | null>(null);\n const substeps = ref<BentoStepperStepExposeState[]>([]);\n\n // Injects parent BentoStepper state data\n const stepper = inject(STEPPER_STATE);\n\n const buttonElement = computed(() => buttonComponent.value?.$el as HTMLButtonElement);\n const index = computed(() => stepper?.value.steps.indexOf(buttonElement.value));\n\n const stepContentValue = computed(() => stepContent.value?.$el.textContent);\n\n // Substep logic\n const substepsButtonElements = computed(() => substeps.value.map(({ buttonElement }) => buttonElement));\n\n const activeSubStepIndex = ref(props.substepIndex);\n const latestActiveSubStepIndex = ref(activeSubStepIndex.value);\n\n const navigateToSubstep = (value: number) => {\n if (value > latestActiveSubStepIndex.value) {\n latestActiveSubStepIndex.value = value;\n }\n\n activeSubStepIndex.value = value;\n };\n\n const registerSubstep = (stepState: BentoStepperStepExposeState) => {\n substeps.value.push({\n stepContent: stepState.stepContent as string,\n buttonElement: stepState.buttonElement as HTMLButtonElement,\n substeps: stepState.substeps as BentoStepperStepExposeState[],\n });\n };\n\n const stepState: BentoStepperState = ref({\n activeStepIndex: activeSubStepIndex,\n latestActiveStep: latestActiveSubStepIndex,\n type: stepper.value.type,\n variant: stepper.value.variant,\n steps: substepsButtonElements,\n isParentStep: true,\n navigateToStep: navigateToSubstep,\n registerStep: registerSubstep,\n });\n\n provide(STEPPER_STATE, stepState);\n\n watch(() => props.substepIndex, navigateToSubstep);\n watch(activeSubStepIndex, value => {\n emit('update:substep-index', value);\n });\n\n onMounted(() => {\n if (!stepper) {\n throw new Error(\n 'BentoStep components should only be used inside BentoStepper or other BentoStep components.'\n );\n }\n\n stepper.value.registerStep({\n buttonElement,\n stepContent: stepContentValue,\n substeps,\n });\n });\n\n // Step states\n const isSubstep = computed(() => stepper.value.isParentStep);\n const isFocused = ref(false);\n const isActive = computed(() => stepper?.value.activeStepIndex === index.value);\n const isSubstepsVisible = computed(\n () =>\n isActive.value &&\n stepper.value.variant !== BentoStepperVariantOption.HORIZONTAL &&\n !isSubstep.value &&\n slots.substeps\n );\n const isCompleted = computed(() => {\n if (stepper?.value.type === BentoStepperTypeOption.NON_LINEAR) {\n return props.completed;\n }\n\n return stepper?.value.latestActiveStep > index.value;\n });\n const isDisabled = computed(\n () => stepper?.value.type === BentoStepperTypeOption.LINEAR && index.value > stepper?.value.latestActiveStep\n );\n\n const navigateToStep = () => {\n if (isDisabled.value) {\n return;\n }\n\n stepper.value.navigateToStep(index.value);\n };\n\n // Styling and a11y\n const ariaCurrentValue = computed(() => (isActive.value ? 'step' : ('false' as Booleanish)));\n const ariaDisabledValue = computed(() => isDisabled.value.toString() as Booleanish);\n const tabIndexValue = computed(() => (isFocused.value || (index.value === 0 && !isSubstep.value) ? '0' : '-1'));\n\n const conditionalClasses = computed(() => ({\n 'b-step--active': isActive.value,\n 'b-step--completed': isCompleted.value,\n 'b-step--substep': isSubstep.value,\n }));\n</script>\n\n<script lang=\"ts\">\n /**\n * Steps are components placed inside BentoSteppers to break down complex processes\n *\n * @example\n * import { BentoStep } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoStep },\n * template: `\n * <bento-stepper>\n * <bento-step>Step 1</bento-step>\n * <bento-step>\n * Step 2\n * <template #substeps>\n * <bento-step>Substep 1</bento-step>\n * <bento-step>Substep 2</bento-step>\n * </template>\n * </bento-step>\n * </bento-stepper>\n * `\n * }\n */\n\n export default {\n name: 'step',\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./step.scss\" />\n"],"names":["useKeyboardNavigation","steps","focusOnStep","indexOffset","event","currentIndex","_a","focusOnPreviousStep","focusOnNextStep","BentoKeyboardNavigationKeyDownEvent","STEPPER_STATE","BentoStepperTypeOption","BentoStepperTypeOption2","BentoStepperVariantOption","BentoStepperVariantOption2","__default__$1","messages","t","useI18n","childrenSteps","ref","activeStepIndex","props","latestActiveStep","navigateToStep","index","currentStepContent","computed","stepsAmount","childrenStepsElements","buttonElement","isHorizontalVariant","allVisibleStepsElements","substeps","isStepActive","step","registerStep","stepState","stepperState","conditionalClasses","watch","emit","keyboardNavigationListeners","provide","readonly","uuid","_sfc_main$1","__default__","slots","useSlots","buttonComponent","stepContent","stepper","inject","stepContentValue","substepsButtonElements","buttonElement2","activeSubStepIndex","latestActiveSubStepIndex","navigateToSubstep","value","registerSubstep","stepState2","onMounted","isSubstep","isFocused","isActive","isSubstepsVisible","isCompleted","isDisabled","ariaCurrentValue","ariaDisabledValue","tabIndexValue"],"mappings":"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","x_google_ignoreList":[4]}
@@ -1,4 +1,4 @@
1
- import { B as r, a as o } from "./chunks/index.13ede682.js";
1
+ import { B as r, a as o } from "./chunks/index.a4a820fd.js";
2
2
  export {
3
3
  r as BentoStructuredList,
4
4
  o as BentoStructuredListItem
@@ -4,10 +4,10 @@ import { S as h } from "./chunks/summary-grid.keys.1d1028c2.js";
4
4
  import { G as E } from "./chunks/grid-layout.e0025286.js";
5
5
  import { n as c } from "./chunks/_plugin-vue2_normalizer.71e2aa87.js";
6
6
  import { BentoInfoIcon as O } from "./info-icon.js";
7
- import { B as L, a as g } from "./chunks/index.32095db1.js";
7
+ import { B as L, a as g } from "./chunks/index.6ac01113.js";
8
8
  import { BentoTag as M, BentoTagVariant as f } from "./tag.js";
9
- import { C as G } from "./chunks/copy.14578696.js";
10
- import "./assets/index37.css";
9
+ import { C as G } from "./chunks/copy.54cc3ab4.js";
10
+ import "./assets/index24.css";
11
11
  const P = l({
12
12
  name: "bento-summary-grid",
13
13
  components: { GridLayout: E },
package/dist/tabs.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { defineComponent as m, toRefs as C, ref as _, provide as u, computed as w, inject as p, onUnmounted as A, watch as N, nextTick as B } from "vue";
2
2
  import { E as k, T as I, a as h } from "./chunks/tabs.keys.358742f2.js";
3
3
  import { n as g } from "./chunks/_plugin-vue2_normalizer.71e2aa87.js";
4
- import { B as R } from "./chunks/index.32095db1.js";
4
+ import { B as R } from "./chunks/index.6ac01113.js";
5
5
  import { g as D } from "./chunks/unique-id.a2a2b458.js";
6
- import { F as S } from "./chunks/fixed-scroller.cd3e1f8d.js";
7
- import "./assets/index38.css";
6
+ import { F as S } from "./chunks/fixed-scroller.d6c11166.js";
7
+ import "./assets/index37.css";
8
8
  const K = m({
9
9
  props: {
10
10
  /**
@@ -40,7 +40,7 @@ const K = m({
40
40
  });
41
41
  var F = function() {
42
42
  var t = this, e = t._self._c;
43
- return t._self._setupProxy, e("div", { directives: [{ name: "show", rawName: "v-show", value: t.activeTabId === t.id, expression: "activeTabId === id" }], attrs: { id: `${t.id}-tabpanel`, role: "tabpanel", "aria-labelledby": t.id } }, [t._t("default")], 2);
43
+ return t._self._setupProxy, e("div", { directives: [{ name: "show", rawName: "v-show", value: t.activeTabId === t.id, expression: "activeTabId === id" }], attrs: { id: `${t.id}-tabpanel`, role: "tabpanel", "aria-labelledby": t.id } }, [t.activeTabId === t.id ? [t._t("default")] : t._e()], 2);
44
44
  }, L = [], O = /* @__PURE__ */ g(
45
45
  K,
46
46
  F,
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, 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 * Displays the tab with a notification indicator\n */\n withNotificationIndicator: {\n type: Boolean,\n default: false,\n },\n },\n setup(props) {\n // External title injection\n const { disabled, withNotificationIndicator } = 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, withNotificationIndicator });\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 withNotificationIndicator: Ref<boolean>;\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 <fixed-scroller condensed :extra-padding-top=\"5\" class=\"b-tabs__tab-list-wrapper\">\n <div ref=\"tablist\" class=\"b-tabs__tab-list\" role=\"tablist\" @keydown=\"onKeydownTabsNavigation\">\n <button\n v-for=\"{ disabled, id, title, withNotificationIndicator } in tabs\"\n :id=\"id\"\n :key=\"id\"\n role=\"tab\"\n type=\"button\"\n class=\"b-tabs__tab\"\n :class=\"{\n 'b-tabs__tab--active': activeTabId === id,\n 'b-tabs__tab--disabled': disabled,\n }\"\n :aria-controls=\"`${id}-tabpanel`\"\n :aria-selected=\"activeTabId === id ? 'true' : 'false'\"\n :tabindex=\"activeTabId === id && !disabled.value ? null : -1\"\n :disabled=\"isDisabled(disabled)\"\n @click=\"handleTabChange(id)\"\n @keydown.enter.space=\"handleTabChange(id)\"\n >\n <span class=\"b-tabs__tab-text\">\n <bento-typography class=\"b-tabs__tab-title\" el=\"span\" variant=\"body\" stronger>\n {{ title }}\n </bento-typography>\n <span\n v-if=\"withNotificationIndicator\"\n class=\"b-tabs__tab-notification-dot\"\n aria-hidden=\"true\"\n ></span>\n </span>\n <span v-show=\"activeTabId === id\" class=\"b-tabs__tab-underline\" aria-hidden=\"true\"></span>\n </button>\n </div>\n </fixed-scroller>\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 import { FixedScroller } from '@/internal';\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 import { Booleanish } from '@/types';\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 FixedScroller,\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, withNotificationIndicator }) => {\n const id = generateUid('b-tab');\n\n // add tab to tabs\n tabs.value.push({ disabled, id, title, withNotificationIndicator });\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 const isDisabled = (isDisabledTab: Ref<boolean>): Booleanish =>\n (isDisabledTab ? 'disabled' : false) as Booleanish;\n\n return {\n tabs,\n tablist,\n activeTabId,\n onKeydownTabsNavigation,\n handleTabChange,\n isDisabled,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./tabs.scss\" />\n"],"names":["_sfc_main$1","defineComponent","props","disabled","withNotificationIndicator","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","FixedScroller","emit","tabs","tablist","tabIdToRemove","_a","title","generateUid","onKeydownTabsNavigation","e","activeTab","tab","watch","index","currentTabs","nextTick","tabId","activeIndex","isDisabledTab"],"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 <template v-if=\"activeTabId === id\">\n <slot />\n </template>\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 * Displays the tab with a notification indicator\n */\n withNotificationIndicator: {\n type: Boolean,\n default: false,\n },\n },\n setup(props) {\n // External title injection\n const { disabled, withNotificationIndicator } = 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, withNotificationIndicator });\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 withNotificationIndicator: Ref<boolean>;\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 <fixed-scroller condensed :extra-padding-top=\"5\" class=\"b-tabs__tab-list-wrapper\">\n <div ref=\"tablist\" class=\"b-tabs__tab-list\" role=\"tablist\" @keydown=\"onKeydownTabsNavigation\">\n <button\n v-for=\"{ disabled, id, title, withNotificationIndicator } in tabs\"\n :id=\"id\"\n :key=\"id\"\n role=\"tab\"\n type=\"button\"\n class=\"b-tabs__tab\"\n :class=\"{\n 'b-tabs__tab--active': activeTabId === id,\n 'b-tabs__tab--disabled': disabled,\n }\"\n :aria-controls=\"`${id}-tabpanel`\"\n :aria-selected=\"activeTabId === id ? 'true' : 'false'\"\n :tabindex=\"activeTabId === id && !disabled.value ? null : -1\"\n :disabled=\"isDisabled(disabled)\"\n @click=\"handleTabChange(id)\"\n @keydown.enter.space=\"handleTabChange(id)\"\n >\n <span class=\"b-tabs__tab-text\">\n <bento-typography class=\"b-tabs__tab-title\" el=\"span\" variant=\"body\" stronger>\n {{ title }}\n </bento-typography>\n <span\n v-if=\"withNotificationIndicator\"\n class=\"b-tabs__tab-notification-dot\"\n aria-hidden=\"true\"\n ></span>\n </span>\n <span v-show=\"activeTabId === id\" class=\"b-tabs__tab-underline\" aria-hidden=\"true\"></span>\n </button>\n </div>\n </fixed-scroller>\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 import { FixedScroller } from '@/internal';\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 import { Booleanish } from '@/types';\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 FixedScroller,\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, withNotificationIndicator }) => {\n const id = generateUid('b-tab');\n\n // add tab to tabs\n tabs.value.push({ disabled, id, title, withNotificationIndicator });\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 const isDisabled = (isDisabledTab: Ref<boolean>): Booleanish =>\n (isDisabledTab ? 'disabled' : false) as Booleanish;\n\n return {\n tabs,\n tablist,\n activeTabId,\n onKeydownTabsNavigation,\n handleTabChange,\n isDisabled,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./tabs.scss\" />\n"],"names":["_sfc_main$1","defineComponent","props","disabled","withNotificationIndicator","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","FixedScroller","emit","tabs","tablist","tabIdToRemove","_a","title","generateUid","onKeydownTabsNavigation","e","activeTab","tab","watch","index","currentTabs","nextTick","tabId","activeIndex","isDisabledTab"],"mappings":"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"}
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.32095db1.js";
2
+ import { B as d } from "./chunks/index.6ac01113.js";
3
3
  import { u as m } from "./chunks/aria-label.ac9651a5.js";
4
4
  import { g as s } from "./chunks/get-slot-text.99c3d860.js";
5
- import { b as _ } from "./chunks/tooltip.1ec3479c.js";
5
+ import { b as _ } from "./chunks/tooltip.46858ae6.js";
6
6
  import { n as v } from "./chunks/_plugin-vue2_normalizer.71e2aa87.js";
7
- import "./assets/index39.css";
7
+ import "./assets/index23.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,46 +1,46 @@
1
- import { defineComponent as j, useAttrs as J, toRefs as B, ref as u, toRef as K, computed as o, watch as x, nextTick as Q, onMounted as X } from "vue";
2
- import { a as ee } from "./chunks/button.3ce10493.js";
3
- import { B as te } from "./chunks/index.32095db1.js";
4
- import { n as F } from "./chunks/_plugin-vue2_normalizer.71e2aa87.js";
5
- import { g as ae } from "./chunks/unique-id.a2a2b458.js";
6
- import { o as k } from "./chunks/resize.a041304d.js";
7
- import { u as re } from "./chunks/aria-label.ac9651a5.js";
8
- import { u as le } from "./chunks/i18n.eb5b985b.js";
9
- import { u as se } from "./chunks/use-form-layout-loading.d03e5d48.js";
10
- import { E as oe, F as ne } from "./chunks/field-label.3019a2f3.js";
11
- import "./assets/index40.css";
12
- let O = 0;
13
- const ie = {
1
+ import { defineComponent as K, useAttrs as Q, toRefs as O, ref as u, toRef as X, computed as o, watch as L, nextTick as ee, onMounted as te, onUnmounted as ae } from "vue";
2
+ import { a as le } from "./chunks/button.bb0d7584.js";
3
+ import { B as re } from "./chunks/index.6ac01113.js";
4
+ import { n as w } from "./chunks/_plugin-vue2_normalizer.71e2aa87.js";
5
+ import { g as se } from "./chunks/unique-id.a2a2b458.js";
6
+ import { o as F } from "./chunks/resize.a041304d.js";
7
+ import { u as oe } from "./chunks/aria-label.ac9651a5.js";
8
+ import { u as ne } from "./chunks/i18n.eb5b985b.js";
9
+ import { u as ie } from "./chunks/use-form-layout-loading.d03e5d48.js";
10
+ import { E as ue, F as ce } from "./chunks/field-label.7328b82b.js";
11
+ import "./assets/index25.css";
12
+ let T = 0;
13
+ const de = {
14
14
  beforeCreate() {
15
- this.uuid = O.toString(), O += 1;
15
+ this.uuid = T.toString(), T += 1;
16
16
  }
17
17
  };
18
- var ue = function() {
18
+ var pe = function() {
19
19
  var e = this, a = e._self._c;
20
20
  return a("svg", e._b({ staticClass: "ui-assets-icons-16", 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", 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" } })]);
21
- }, ce = [], de = /* @__PURE__ */ F(
22
- ie,
23
- ue,
24
- ce,
21
+ }, _e = [], fe = /* @__PURE__ */ w(
22
+ de,
23
+ pe,
24
+ _e,
25
25
  !1,
26
26
  null,
27
27
  null,
28
28
  null,
29
29
  null
30
30
  );
31
- const pe = de.exports;
32
- var C = /* @__PURE__ */ ((r) => (r.HORIZONTAL = "horizontal", r.VERTICAL = "vertical", r.BOTH = "both", r.NONE = "none", r))(C || {}), c = /* @__PURE__ */ ((r) => (r.CLEARABLE = "clearable", r.DISABLED = "disabled", r.ERROR = "error", r.READONLY = "readonly", r))(c || {}), 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 || {});
33
- const _e = {
31
+ const be = fe.exports;
32
+ var E = /* @__PURE__ */ ((l) => (l.HORIZONTAL = "horizontal", l.VERTICAL = "vertical", l.BOTH = "both", l.NONE = "none", l))(E || {}), c = /* @__PURE__ */ ((l) => (l.CLEARABLE = "clearable", l.DISABLED = "disabled", l.ERROR = "error", l.READONLY = "readonly", l))(c || {}), i = /* @__PURE__ */ ((l) => (l.BLUR = "blur", l.CHANGE = "change", l.CLEAR = "clear", l.ESCAPE_PRESSED = "escape-pressed", l.FOCUS = "focus", l.INPUT = "input", l))(i || {});
33
+ const ve = {
34
34
  "en-US": {
35
35
  clearText: "Clear text",
36
36
  textarea: "textarea",
37
37
  yourTextCanBenAtMost: "Your text can be at most {characterLimit} characters"
38
38
  }
39
- }, fe = {
40
- i18n: { messages: _e },
39
+ }, me = {
40
+ i18n: { messages: ve },
41
41
  name: "bento-textarea"
42
- }, be = /* @__PURE__ */ j({
43
- ...fe,
42
+ }, ye = /* @__PURE__ */ K({
43
+ ...me,
44
44
  props: {
45
45
  /**
46
46
  * Text that labels an the input element
@@ -91,8 +91,8 @@ const _e = {
91
91
  */
92
92
  resizable: {
93
93
  type: String,
94
- default: C.BOTH,
95
- validator: (r) => Object.values(C).includes(r)
94
+ default: E.BOTH,
95
+ validator: (l) => Object.values(E).includes(l)
96
96
  },
97
97
  /**
98
98
  * Highlights the textarea is required.
@@ -107,101 +107,105 @@ const _e = {
107
107
  */
108
108
  value: { type: String, default: "" }
109
109
  },
110
- setup(r, { emit: e }) {
111
- const a = r, t = J(), { height: l } = B(a), T = ae("textarea"), n = u(null), d = u(null), s = u(a.value), _ = 44, f = u(a.height || `${_}px`), y = u("100%"), { t: L } = le(), { isReadOnly: b } = se(K(a, "readonly")), w = o(() => `${s.value.length} / ${a.characterLimit}`), h = o(
110
+ setup(l, { emit: e }) {
111
+ const a = l, t = Q(), { height: r } = O(a), M = se("textarea"), n = u(null), d = u(null), s = u(a.value), b = 44, v = u(a.height || `${b}px`), g = u("100%");
112
+ let p = null, _ = null;
113
+ const { t: S } = ne(), { isReadOnly: m } = ie(X(a, "readonly")), P = o(() => `${s.value.length} / ${a.characterLimit}`), x = o(
112
114
  () => a.characterLimit && s.value.length > a.characterLimit
113
- ), v = () => {
114
- n.value && n.value.scrollHeight > _ && (f.value = `${n.value.scrollHeight + 3}px`);
115
+ ), y = () => {
116
+ n.value && n.value.scrollHeight > b && (v.value = `${n.value.scrollHeight + 3}px`);
115
117
  };
116
- x(l, () => {
117
- l.value ? f.value = l.value : v();
118
- }), x(
118
+ L(r, () => {
119
+ r.value ? v.value = r.value : y();
120
+ }), L(
119
121
  () => a.value,
120
122
  () => {
121
123
  s.value = a.value;
122
124
  },
123
125
  { immediate: !0 }
124
- ), x(
126
+ ), L(
125
127
  () => s.value,
126
128
  async () => {
127
- if (!l.value) {
128
- if (f.value = `${_}px`, !s.value)
129
+ if (!r.value) {
130
+ if (v.value = `${b}px`, !s.value)
129
131
  return;
130
- await Q(), v();
132
+ await ee(), y();
131
133
  }
132
134
  },
133
135
  { immediate: !0 }
134
136
  );
135
- const E = o(() => !!a.errorMessage || h.value), M = o(() => ({
137
+ const R = o(() => !!a.errorMessage || x.value), H = o(() => ({
136
138
  [`b-textarea--${c.DISABLED}`]: a.disabled
137
- })), P = o(() => ({
139
+ })), N = o(() => ({
138
140
  [`b-textarea__input--${c.CLEARABLE}`]: a.clearable,
139
- [`b-textarea__input--${c.READONLY}`]: b.value,
140
- [`b-textarea__input--${c.ERROR}`]: E.value,
141
- ["b-textarea__input--dynamic-height"]: !l.value
142
- })), H = o(() => ({
141
+ [`b-textarea__input--${c.READONLY}`]: m.value,
142
+ [`b-textarea__input--${c.ERROR}`]: R.value,
143
+ ["b-textarea__input--dynamic-height"]: !r.value
144
+ })), $ = o(() => ({
143
145
  ["b-textarea__label-box--no-label"]: !a.label
144
- })), N = o(() => ({
145
- [`b-textarea__label-item--${c.ERROR}`]: h.value
146
- })), $ = o(() => L("yourTextCanBenAtMost", { characterLimit: a.characterLimit })), S = u(t["aria-label"]), { ariaLabel: R, label: A } = B(a), W = re({
147
- ariaLabel: S.value,
146
+ })), U = o(() => ({
147
+ [`b-textarea__label-item--${c.ERROR}`]: x.value
148
+ })), W = o(() => S("yourTextCanBenAtMost", { characterLimit: a.characterLimit })), A = u(t["aria-label"]), { ariaLabel: I, label: B } = O(a), D = oe({
149
+ ariaLabel: A.value,
148
150
  // TODO: take this line away when the aria-label props is removed
149
- label: R,
150
- defaultFallback: A
151
- }), U = o(
152
- () => a.clearable && s.value && !a.disabled && !b.value
153
- ), D = () => {
151
+ label: I,
152
+ defaultFallback: B
153
+ }), z = o(
154
+ () => a.clearable && s.value && !a.disabled && !m.value
155
+ ), q = () => {
154
156
  s.value = "", e(i.CLEAR), e(i.INPUT, "");
155
- }, z = (p) => {
156
- p.stopImmediatePropagation(), !a.disabled && !b.value && (s.value = p.target.value, e(i.INPUT, s.value));
157
- }, q = () => {
157
+ }, V = (f) => {
158
+ f.stopImmediatePropagation(), !a.disabled && !m.value && (s.value = f.target.value, e(i.INPUT, s.value));
159
+ }, Y = () => {
158
160
  n.value.scrollTop = 0, e(i.BLUR);
159
- }, V = () => {
161
+ }, Z = () => {
160
162
  n.value.focus(), e(i.FOCUS);
161
- }, Y = () => {
163
+ }, G = () => {
162
164
  e(i.CHANGE);
163
- }, Z = () => {
165
+ }, j = () => {
164
166
  e(i.ESCAPE_PRESSED);
165
- }, g = (p = !1) => {
166
- var I;
167
- const m = n.value.style.width;
168
- if (p && !m)
167
+ }, C = (f = !1) => {
168
+ var k;
169
+ const h = n.value.style.width;
170
+ if (f && !h)
169
171
  return;
170
- const G = (I = d == null ? void 0 : d.value) == null ? void 0 : I.offsetWidth;
171
- !m || parseInt(m, 10) > G ? y.value = "100%" : y.value = m;
172
+ const J = (k = d == null ? void 0 : d.value) == null ? void 0 : k.offsetWidth;
173
+ !h || parseInt(h, 10) > J ? g.value = "100%" : g.value = h;
172
174
  };
173
- return X(() => {
174
- k(n.value, () => {
175
- g(!0);
176
- }), k(d.value, () => {
177
- g();
178
- }), l.value || v();
179
- }), { __sfc: !0, attrs: t, props: a, emit: e, height: l, textareaId: T, textareaElement: n, textareaComponent: d, textareaValue: s, defaultTextareaHeight: _, textareaHeight: f, textareaWrapperWidth: y, t: L, isReadOnly: b, counter: w, isOverCharacterLimit: h, calculateHeight: v, invalidInput: E, conditionalClasses: M, conditionalClassesInput: P, conditionalClassesLabelBox: H, conditionalClassesLabelItem: N, counterErrorText: $, ariaLabelAttribute: S, ariaLabel: R, label: A, computedAriaLabel: W, showClearButton: U, onClear: D, onInput: z, onBlur: q, onFocus: V, onChange: Y, onPressEscape: Z, resizeTextareaWrapper: g, BentoButton: ee, BentoTypography: te, ErrorMessage: oe, FieldLabel: ne, CrossCircleFillSmallIcon: pe };
175
+ return te(() => {
176
+ p = F(n.value, () => {
177
+ C(!0);
178
+ }), _ = F(d.value, () => {
179
+ C();
180
+ }), r.value || y();
181
+ }), ae(() => {
182
+ p == null || p.disconnect(), _ == null || _.disconnect();
183
+ }), { __sfc: !0, attrs: t, props: a, emit: e, height: r, textareaId: M, textareaElement: n, textareaComponent: d, textareaValue: s, defaultTextareaHeight: b, textareaHeight: v, textareaWrapperWidth: g, textareaElementObserver: p, textareaComponentObserver: _, t: S, isReadOnly: m, counter: P, isOverCharacterLimit: x, calculateHeight: y, invalidInput: R, conditionalClasses: H, conditionalClassesInput: N, conditionalClassesLabelBox: $, conditionalClassesLabelItem: U, counterErrorText: W, ariaLabelAttribute: A, ariaLabel: I, label: B, computedAriaLabel: D, showClearButton: z, onClear: q, onInput: V, onBlur: Y, onFocus: Z, onChange: G, onPressEscape: j, resizeTextareaWrapper: C, BentoButton: le, BentoTypography: re, ErrorMessage: ue, FieldLabel: ce, CrossCircleFillSmallIcon: be };
180
184
  }
181
185
  });
182
- var ve = function() {
186
+ var he = function() {
183
187
  var e = this, a = e._self._c, t = e._self._setupProxy;
184
- return a("div", { ref: "textareaComponent", staticClass: "b-textarea", class: t.conditionalClasses }, [a("div", { style: { width: t.textareaWrapperWidth } }, [a("div", { staticClass: "b-textarea__label-box", class: t.conditionalClassesLabelBox }, [t.label ? a(t.FieldLabel, { attrs: { for: t.textareaId, label: t.label, "tooltip-text": e.tooltipText, optional: e.optional, required: e.required } }) : 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) {
185
- return !l.type.indexOf("key") && e._k(l.keyCode, "esc", 27, l.key, ["Esc", "Escape"]) ? null : t.onPressEscape.apply(null, arguments);
186
- } } }), 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) {
187
- return !l.type.indexOf("key") && e._k(l.keyCode, "enter", 13, l.key, "Enter") ? null : t.onClear.apply(null, arguments);
188
- }, keyup: function(l) {
189
- return !l.type.indexOf("key") && e._k(l.keyCode, "space", 32, l.key, [" ", "Spacebar"]) ? null : t.onClear.apply(null, arguments);
188
+ return a("div", { ref: "textareaComponent", staticClass: "b-textarea", class: t.conditionalClasses }, [a("div", { style: { width: t.textareaWrapperWidth } }, [a("div", { staticClass: "b-textarea__label-box", class: t.conditionalClassesLabelBox }, [t.label ? a(t.FieldLabel, { attrs: { for: t.textareaId, label: t.label, "tooltip-text": e.tooltipText, optional: e.optional, required: e.required } }) : 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(r) {
189
+ return !r.type.indexOf("key") && e._k(r.keyCode, "esc", 27, r.key, ["Esc", "Escape"]) ? null : t.onPressEscape.apply(null, arguments);
190
+ } } }), t.showClearButton ? a("div", { staticClass: "b-textarea__clear-button" }, [a(t.BentoButton, { attrs: { variant: "tertiary", disabled: e.disabled }, on: { click: t.onClear, keypress: function(r) {
191
+ return !r.type.indexOf("key") && e._k(r.keyCode, "enter", 13, r.key, "Enter") ? null : t.onClear.apply(null, arguments);
192
+ }, keyup: function(r) {
193
+ return !r.type.indexOf("key") && e._k(r.keyCode, "space", 32, r.key, [" ", "Spacebar"]) ? null : t.onClear.apply(null, arguments);
190
194
  } }, scopedSlots: e._u([{ key: "iconLeft", fn: function() {
191
195
  return [a(t.CrossCircleFillSmallIcon, { attrs: { "svg-title": t.t("clearText") } })];
192
196
  }, 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)]);
193
- }, me = [], ye = /* @__PURE__ */ F(
194
- be,
195
- ve,
196
- me,
197
+ }, ge = [], xe = /* @__PURE__ */ w(
198
+ ye,
199
+ he,
200
+ ge,
197
201
  !1,
198
202
  null,
199
- "0ef638a8",
203
+ "23205346",
200
204
  null,
201
205
  null
202
206
  );
203
- const Be = ye.exports;
207
+ const Fe = xe.exports;
204
208
  export {
205
- Be as BentoTextarea
209
+ Fe as BentoTextarea
206
210
  };
207
211
  //# sourceMappingURL=textarea.js.map