@adyen/bento-vue3 1.3.0 → 1.4.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 (364) hide show
  1. package/dist/@types/components.d.ts +8 -4
  2. package/dist/@types/packages/core/src/components/button/button.types.d.ts +8 -0
  3. package/dist/@types/packages/vue2/src/components/accordion/accordion.keys.d.ts +1 -1
  4. package/dist/@types/packages/vue2/src/components/accordion/accordion.types.d.ts +1 -24
  5. package/dist/@types/packages/vue2/src/components/accordion/accordion.vue.d.ts +17 -57
  6. package/dist/@types/packages/vue2/src/components/accordion/components/accordion-item.vue.d.ts +27 -29
  7. package/dist/@types/packages/vue2/src/components/accordion/index.d.ts +2 -3
  8. package/dist/@types/packages/vue2/src/components/alert/alert.vue.d.ts +0 -4
  9. package/dist/@types/packages/vue2/src/components/avatar-image/avatar-image.vue.d.ts +1 -4
  10. package/dist/@types/packages/vue2/src/components/button/button.vue.d.ts +136 -128
  11. package/dist/@types/packages/vue2/src/components/button/components/button-actions/button-actions.types.d.ts +3 -5
  12. package/dist/@types/packages/vue2/src/components/button/components/button-actions/button-actions.vue.d.ts +3 -3
  13. package/dist/@types/packages/vue2/src/components/button/components/loading-button/loading-button.vue.d.ts +2 -2
  14. package/dist/@types/packages/vue2/src/components/card/card.vue.d.ts +46 -15
  15. package/dist/@types/packages/vue2/src/components/checkbox/checkbox.types.d.ts +2 -1
  16. package/dist/@types/packages/vue2/src/components/checkbox/checkbox.vue.d.ts +6 -7
  17. package/dist/@types/packages/vue2/src/components/checkbox/components/checkbox-group/checkbox-group.vue.d.ts +4 -3
  18. package/dist/@types/packages/vue2/src/components/code-snippet/code-snippet.types.d.ts +2 -1
  19. package/dist/@types/packages/vue2/src/components/code-snippet/code-snippet.vue.d.ts +37 -11
  20. package/dist/@types/packages/vue2/src/components/country/country.vue.d.ts +0 -2
  21. package/dist/@types/packages/vue2/src/components/currency/currency.vue.d.ts +0 -3
  22. package/dist/@types/packages/vue2/src/components/data-grid/components/data-grid-columns/data-grid-columns.vue.d.ts +3 -22
  23. package/dist/@types/packages/vue2/src/components/data-grid/components/data-grid-config-settings/components/data-grid-config-settings-column-row/data-grid-config-settings-column-row.vue.d.ts +0 -5
  24. package/dist/@types/packages/vue2/src/components/data-grid/components/data-grid-config-settings/data-grid-config-settings.vue.d.ts +0 -24
  25. package/dist/@types/packages/vue2/src/components/data-grid/data-grid.types.d.ts +2 -0
  26. package/dist/@types/packages/vue2/src/components/data-grid/data-grid.vue.d.ts +277 -16
  27. package/dist/@types/packages/vue2/src/components/date/date.vue.d.ts +2 -5
  28. package/dist/@types/packages/vue2/src/components/date-picker/date-picker.vue.d.ts +0 -20
  29. package/dist/@types/packages/vue2/src/components/date-range-picker/components/date-range-picker-calendar/date-range-picker-calendar.vue.d.ts +0 -2
  30. package/dist/@types/packages/vue2/src/components/date-range-picker/date-range-picker.vue.d.ts +0 -20
  31. package/dist/@types/packages/vue2/src/components/dropdown/components/dropdown-base-textbox/dropdown-base-textbox.vue.d.ts +3 -6
  32. package/dist/@types/packages/vue2/src/components/dropdown/components/dropdown-default-textbox/dropdown-default-textbox.vue.d.ts +3 -3
  33. package/dist/@types/packages/vue2/src/components/dropdown/components/dropdown-options-container/dropdown-options-container.vue.d.ts +164 -104
  34. package/dist/@types/packages/vue2/src/components/dropdown/components/dropdown-small-textbox/dropdown-small-textbox.vue.d.ts +2 -2
  35. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-country/dropdown-country.types.d.ts +1 -1
  36. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-country/dropdown-country.vue.d.ts +0 -2
  37. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-currency/dropdown-currency.types.d.ts +1 -1
  38. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-payment-method/dropdown-payment-method.types.d.ts +1 -1
  39. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-tag/dropdown-tag.types.d.ts +1 -1
  40. package/dist/@types/packages/vue2/src/components/dropdown/dropdown.vue.d.ts +7 -9
  41. package/dist/@types/packages/vue2/src/components/empty-state/empty-state.types.d.ts +27 -0
  42. package/dist/@types/packages/vue2/src/components/empty-state/empty-state.vue.d.ts +76 -0
  43. package/dist/@types/packages/vue2/src/components/empty-state/index.d.ts +2 -0
  44. package/dist/@types/packages/vue2/src/components/filter-bar/components/all-filters-modal/all-filters-modal.vue.d.ts +19 -25
  45. package/dist/@types/packages/vue2/src/components/filter-bar/components/all-filters-modal/components/all-filters-modal-button/all-filters-modal-button.vue.d.ts +1 -1
  46. package/dist/@types/packages/vue2/src/components/filter-bar/components/base-filter/base-filter.vue.d.ts +1 -27
  47. package/dist/@types/packages/vue2/src/components/filter-bar/components/base-filter-button/base-filter-button.vue.d.ts +1 -4
  48. package/dist/@types/packages/vue2/src/components/filter-bar/components/date-filter/date-filter.vue.d.ts +1 -1
  49. package/dist/@types/packages/vue2/src/components/filter-bar/components/date-range-filter/date-range-filter.vue.d.ts +1 -11
  50. package/dist/@types/packages/vue2/src/components/filter-bar/components/filter-bar-button/filter-bar-button.vue.d.ts +53 -0
  51. package/dist/@types/packages/vue2/src/components/filter-bar/components/filter-bar-button/index.d.ts +1 -0
  52. package/dist/@types/packages/vue2/src/components/filter-bar/components/input-filter/input-filter.vue.d.ts +1 -0
  53. package/dist/@types/packages/vue2/src/components/filter-bar/components/range-filter/range-filter.vue.d.ts +0 -2
  54. package/dist/@types/packages/vue2/src/components/filter-bar/components/select-filter/select-filter.vue.d.ts +1 -1
  55. package/dist/@types/packages/vue2/src/components/filter-bar/components/select-filter/variants/select-country-filter/select-country-filter.vue.d.ts +0 -2
  56. package/dist/@types/packages/vue2/src/components/filter-bar/components/select-filter/variants/select-tag-filter/select-tag-filter.vue.d.ts +0 -2
  57. package/dist/@types/packages/vue2/src/components/filter-bar/filter-bar.vue.d.ts +0 -2
  58. package/dist/@types/packages/vue2/src/components/focus-trap/focus-trap.vue.d.ts +7 -0
  59. package/dist/@types/packages/vue2/src/components/header/header.vue.d.ts +0 -2
  60. package/dist/@types/packages/vue2/src/components/image/const.d.ts +1 -0
  61. package/dist/@types/packages/vue2/src/components/image/image.types.d.ts +19 -0
  62. package/dist/@types/packages/vue2/src/components/image/image.vue.d.ts +50 -0
  63. package/dist/@types/packages/vue2/src/components/image/index.d.ts +1 -0
  64. package/dist/@types/packages/vue2/src/components/info-icon/info-icon.vue.d.ts +3 -3
  65. package/dist/@types/packages/vue2/src/components/input-field/input-field.types.d.ts +1 -0
  66. package/dist/@types/packages/vue2/src/components/input-field/input-field.vue.d.ts +61 -58
  67. package/dist/@types/packages/vue2/src/components/internal/avatar/avatar.vue.d.ts +0 -3
  68. package/dist/@types/packages/vue2/src/components/internal/base-button/base-button.vue.d.ts +1 -4
  69. package/dist/@types/packages/vue2/src/components/internal/calendar/components/calendar-month/calendar-month.vue.d.ts +0 -5
  70. package/dist/@types/packages/vue2/src/components/internal/calendar/components/calendar-month/components/calendar-month-day/calendar-month-day.vue.d.ts +2 -2
  71. package/dist/@types/packages/vue2/src/components/internal/copy/copy.vue.d.ts +0 -2
  72. package/dist/@types/packages/vue2/src/components/internal/listbox/components/listbox-multi-select/components/listbox-multi-select-options/components/listbox-multi-select-category/listbox-multi-select-category.vue.d.ts +0 -2
  73. package/dist/@types/packages/vue2/src/components/internal/listbox/components/listbox-multi-select/components/listbox-multi-select-options/listbox-multi-select-options.vue.d.ts +0 -2
  74. package/dist/@types/packages/vue2/src/components/internal/listbox/components/listbox-multi-select/listbox-multi-select.vue.d.ts +0 -2
  75. package/dist/@types/packages/vue2/src/components/internal/listbox/components/listbox-option-tag/listbox-option-tag.vue.d.ts +0 -2
  76. package/dist/@types/packages/vue2/src/components/internal/listbox/components/listbox-single-select-option/listbox-single-select-option.vue.d.ts +0 -2
  77. package/dist/@types/packages/vue2/src/components/internal/listbox/listbox.vue.d.ts +3 -7
  78. package/dist/@types/packages/vue2/src/components/link/link.vue.d.ts +4 -0
  79. package/dist/@types/packages/vue2/src/components/menu/components/menu-item/menu-item.vue.d.ts +2 -5
  80. package/dist/@types/packages/vue2/src/components/menu/menu.vue.d.ts +6 -31
  81. package/dist/@types/packages/vue2/src/components/modal/components/base-modal/__mocks__/base-modal.vue.d.ts +0 -5
  82. package/dist/@types/packages/vue2/src/components/modal/components/base-modal/base-modal.vue.d.ts +14 -9
  83. package/dist/@types/packages/vue2/src/components/modal/components/modal-default/modal-default.vue.d.ts +2 -2
  84. package/dist/@types/packages/vue2/src/components/modal/components/modal-dialog/modal-dialog.vue.d.ts +4 -14
  85. package/dist/@types/packages/vue2/src/components/modal/modal.vue.d.ts +7 -6
  86. package/dist/@types/packages/vue2/src/components/pagination/components/pagination-context/pagination-context.vue.d.ts +0 -2
  87. package/dist/@types/packages/vue2/src/components/pagination/components/pagination-controls/pagination-controls.vue.d.ts +0 -2
  88. package/dist/@types/packages/vue2/src/components/pagination/components/pagination-results-per-page/pagination-results-per-page.vue.d.ts +0 -2
  89. package/dist/@types/packages/vue2/src/components/pagination/pagination.vue.d.ts +2 -1
  90. package/dist/@types/packages/vue2/src/components/payment-method/payment-method.vue.d.ts +0 -2
  91. package/dist/@types/packages/vue2/src/components/popover/components/popover-dismiss-button/popover-dismiss-button.vue.d.ts +0 -2
  92. package/dist/@types/packages/vue2/src/components/popover/components/popover-title/popover-title.vue.d.ts +1 -2
  93. package/dist/@types/packages/vue2/src/components/popover/popover.vue.d.ts +9 -9
  94. package/dist/@types/packages/vue2/src/components/popper-container/popper-container.vue.d.ts +5 -14
  95. package/dist/@types/packages/vue2/src/components/radio-group/components/radio-button/radio-button.vue.d.ts +4 -6
  96. package/dist/@types/packages/vue2/src/components/radio-group/radio-group.types.d.ts +2 -1
  97. package/dist/@types/packages/vue2/src/components/radio-group/radio-group.vue.d.ts +4 -3
  98. package/dist/@types/packages/vue2/src/components/search-bar/search-bar.vue.d.ts +19 -390
  99. package/dist/@types/packages/vue2/src/components/segmented-control/components/segmented-control-button/segmented-control-button.vue.d.ts +0 -3
  100. package/dist/@types/packages/vue2/src/components/segmented-control/segmented-control.vue.d.ts +1 -0
  101. package/dist/@types/packages/vue2/src/components/sidepanel/sidepanel.types.d.ts +3 -1
  102. package/dist/@types/packages/vue2/src/components/status/status.vue.d.ts +2 -5
  103. package/dist/@types/packages/vue2/src/components/structured-list/components/structered-list-item/structured-list-item.vue.d.ts +0 -2
  104. package/dist/@types/packages/vue2/src/components/summary-grid/components/summary-grid-item/summary-grid-item.vue.d.ts +2 -23
  105. package/dist/@types/packages/vue2/src/components/summary-grid/components/summary-grid-item-amount/summary-grid-item-amount.vue.d.ts +2 -5
  106. package/dist/@types/packages/vue2/src/components/summary-grid/components/summary-grid-item-numeric/summary-grid-item-numeric.vue.d.ts +2 -5
  107. package/dist/@types/packages/vue2/src/components/summary-grid/components/summary-grid-item-percentage/summary-grid-item-percentage.vue.d.ts +2 -5
  108. package/dist/@types/packages/vue2/src/components/summary-grid/components/summary-grid-item-text/summary-grid-item-text.vue.d.ts +1 -4
  109. package/dist/@types/packages/vue2/src/components/tabs/components/tab.types.d.ts +3 -1
  110. package/dist/@types/packages/vue2/src/components/tabs/components/tab.vue.d.ts +1 -0
  111. package/dist/@types/packages/vue2/src/components/tabs/tabs.keys.d.ts +1 -0
  112. package/dist/@types/packages/vue2/src/components/tabs/tabs.types.d.ts +6 -2
  113. package/dist/@types/packages/vue2/src/components/tabs/tabs.vue.d.ts +4 -9
  114. package/dist/@types/packages/vue2/src/components/tag/tag.vue.d.ts +6 -9
  115. package/dist/@types/packages/vue2/src/components/textarea/textarea.vue.d.ts +6 -10
  116. package/dist/@types/packages/vue2/src/components/timeline/components/timeline-item/timeline-item.vue.d.ts +4 -10
  117. package/dist/@types/packages/vue2/src/components/timeline/timeline.types.d.ts +1 -0
  118. package/dist/@types/packages/vue2/src/components/toast/components/toast-item/toast-item.vue.d.ts +0 -5
  119. package/dist/@types/packages/vue2/src/components/toggle/toggle.vue.d.ts +4 -6
  120. package/dist/@types/packages/vue2/src/components/tooltip/tooltip.vue.d.ts +24 -40
  121. package/dist/@types/packages/vue2/src/composables/use-default-slot-validator/use-default-slot-validator.d.ts +2 -1
  122. package/dist/@types/packages/vue2/src/composables/use-has-slot/use-has-slot.d.ts +8 -1
  123. package/dist/@types/packages/vue2/src/index.d.ts +3 -0
  124. package/dist/@types/packages/vue2/src/templates/data-grid-template/data-grid-template.vue.d.ts +9 -0
  125. package/dist/@types/packages/vue2/src/utils/ts/get-slot-text/get-slot-text.d.ts +1 -1
  126. package/dist/@types/packages/vue2/src/utils/ts/print-development-warning.d.ts +1 -0
  127. package/dist/accordion.js +104 -254
  128. package/dist/accordion.js.map +1 -1
  129. package/dist/alert.js +61 -64
  130. package/dist/alert.js.map +1 -1
  131. package/dist/assets/base-button.css +1 -1
  132. package/dist/assets/base-modal.css +1 -0
  133. package/dist/assets/button.css +1 -1
  134. package/dist/assets/calendar.css +1 -1
  135. package/dist/assets/checkbox.css +1 -1
  136. package/dist/assets/chevron-up.css +1 -0
  137. package/dist/assets/controls-group.css +1 -1
  138. package/dist/assets/copy.css +1 -1
  139. package/dist/assets/dropdown-default-textbox.css +1 -1
  140. package/dist/assets/dropdown.css +1 -1
  141. package/dist/assets/error-message.css +1 -1
  142. package/dist/assets/footer-actions.css +1 -1
  143. package/dist/assets/index.css +1 -1
  144. package/dist/assets/index10.css +1 -1
  145. package/dist/assets/index11.css +1 -1
  146. package/dist/assets/index12.css +1 -1
  147. package/dist/assets/index13.css +1 -1
  148. package/dist/assets/index14.css +1 -1
  149. package/dist/assets/index15.css +1 -1
  150. package/dist/assets/index16.css +1 -1
  151. package/dist/assets/index17.css +1 -1
  152. package/dist/assets/index18.css +1 -1
  153. package/dist/assets/index19.css +1 -1
  154. package/dist/assets/index2.css +1 -1
  155. package/dist/assets/index20.css +1 -1
  156. package/dist/assets/index21.css +1 -1
  157. package/dist/assets/index22.css +1 -1
  158. package/dist/assets/index24.css +1 -1
  159. package/dist/assets/index25.css +1 -1
  160. package/dist/assets/index26.css +1 -1
  161. package/dist/assets/index27.css +1 -1
  162. package/dist/assets/index28.css +1 -1
  163. package/dist/assets/index29.css +1 -1
  164. package/dist/assets/index3.css +1 -1
  165. package/dist/assets/index30.css +1 -1
  166. package/dist/assets/index31.css +1 -1
  167. package/dist/assets/index32.css +1 -1
  168. package/dist/assets/index33.css +1 -1
  169. package/dist/assets/index34.css +1 -1
  170. package/dist/assets/index35.css +1 -1
  171. package/dist/assets/index36.css +1 -1
  172. package/dist/assets/index37.css +1 -1
  173. package/dist/assets/index38.css +1 -1
  174. package/dist/assets/index39.css +1 -1
  175. package/dist/assets/index4.css +1 -1
  176. package/dist/assets/index40.css +1 -1
  177. package/dist/assets/index41.css +1 -1
  178. package/dist/assets/index42.css +1 -1
  179. package/dist/assets/index43.css +1 -0
  180. package/dist/assets/index5.css +1 -1
  181. package/dist/assets/index6.css +1 -1
  182. package/dist/assets/index7.css +1 -1
  183. package/dist/assets/index8.css +1 -1
  184. package/dist/assets/index9.css +1 -1
  185. package/dist/assets/listbox-option-tag.css +1 -1
  186. package/dist/assets/listbox.css +1 -1
  187. package/dist/assets/loading-button.css +1 -1
  188. package/dist/assets/tooltip.css +1 -1
  189. package/dist/avatar-image.js +1 -1
  190. package/dist/badge.js +2 -2
  191. package/dist/button.js +143 -12
  192. package/dist/button.js.map +1 -1
  193. package/dist/card.js +99 -94
  194. package/dist/card.js.map +1 -1
  195. package/dist/checkbox.js +40 -39
  196. package/dist/checkbox.js.map +1 -1
  197. package/dist/chunks/base-button.6d2843c2.js +108 -0
  198. package/dist/chunks/base-button.6d2843c2.js.map +1 -0
  199. package/dist/chunks/base-modal.3ccb9eb5.js +291 -0
  200. package/dist/chunks/base-modal.3ccb9eb5.js.map +1 -0
  201. package/dist/chunks/{button.e1c39f66.js → button.a8462029.js} +39 -42
  202. package/dist/chunks/button.a8462029.js.map +1 -0
  203. package/dist/chunks/{calendar.09b683b3.js → calendar.3f930683.js} +237 -240
  204. package/dist/chunks/calendar.3f930683.js.map +1 -0
  205. package/dist/chunks/checkbox.5e1e05ae.js +235 -0
  206. package/dist/chunks/checkbox.5e1e05ae.js.map +1 -0
  207. package/dist/chunks/{chevron-down.69bedf14.js → chevron-up.c03b58f8.js} +8 -8
  208. package/dist/chunks/chevron-up.c03b58f8.js.map +1 -0
  209. package/dist/chunks/controls-group.3b0dfb94.js +136 -0
  210. package/dist/chunks/controls-group.3b0dfb94.js.map +1 -0
  211. package/dist/chunks/{copy.2cf5e6c3.js → copy.1d14b783.js} +49 -50
  212. package/dist/chunks/copy.1d14b783.js.map +1 -0
  213. package/dist/chunks/{dropdown-default-textbox.203e747f.js → dropdown-default-textbox.a90e84f9.js} +88 -90
  214. package/dist/chunks/dropdown-default-textbox.a90e84f9.js.map +1 -0
  215. package/dist/chunks/{dropdown.8b415aac.js → dropdown.b798a82e.js} +348 -330
  216. package/dist/chunks/dropdown.b798a82e.js.map +1 -0
  217. package/dist/chunks/{error-message.ddfe8ea5.js → error-message.9acead25.js} +16 -16
  218. package/dist/chunks/error-message.9acead25.js.map +1 -0
  219. package/dist/chunks/footer-actions.9537d0df.js +111 -0
  220. package/dist/chunks/footer-actions.9537d0df.js.map +1 -0
  221. package/dist/chunks/get-slot-text.bead058f.js +9 -0
  222. package/dist/chunks/get-slot-text.bead058f.js.map +1 -0
  223. package/dist/chunks/{grid-layout.a30855ff.js → grid-layout.984317d7.js} +2 -2
  224. package/dist/chunks/{grid-layout.a30855ff.js.map → grid-layout.984317d7.js.map} +1 -1
  225. package/dist/chunks/index.228ecda0.js +101 -0
  226. package/dist/chunks/index.228ecda0.js.map +1 -0
  227. package/dist/chunks/index.89b00b94.js +124 -0
  228. package/dist/chunks/index.89b00b94.js.map +1 -0
  229. package/dist/chunks/{index.3da90517.js → index.9d8273fc.js} +38 -40
  230. package/dist/chunks/index.9d8273fc.js.map +1 -0
  231. package/dist/chunks/{index.c9225c3b.js → index.c2a80208.js} +195 -201
  232. package/dist/chunks/index.c2a80208.js.map +1 -0
  233. package/dist/chunks/{index.13949709.js → index.d26fdf71.js} +116 -113
  234. package/dist/chunks/{index.13949709.js.map → index.d26fdf71.js.map} +1 -1
  235. package/dist/chunks/{index.d27367cd.js → index.e84dbeae.js} +80 -83
  236. package/dist/chunks/{index.d27367cd.js.map → index.e84dbeae.js.map} +1 -1
  237. package/dist/chunks/listbox-option-tag.0c9c571e.js +129 -0
  238. package/dist/chunks/listbox-option-tag.0c9c571e.js.map +1 -0
  239. package/dist/chunks/{listbox.0c7c4e5e.js → listbox.6b52af1a.js} +315 -334
  240. package/dist/chunks/listbox.6b52af1a.js.map +1 -0
  241. package/dist/chunks/{loading-button.61d8ebe5.js → loading-button.081adbf3.js} +33 -33
  242. package/dist/chunks/loading-button.081adbf3.js.map +1 -0
  243. package/dist/chunks/tabs.keys.358742f2.js +7 -0
  244. package/dist/chunks/tabs.keys.358742f2.js.map +1 -0
  245. package/dist/chunks/{tooltip.835d9b52.js → tooltip.e4e34b86.js} +56 -59
  246. package/dist/chunks/tooltip.e4e34b86.js.map +1 -0
  247. package/dist/chunks/use-default-slot-validator.1169c221.js +16 -0
  248. package/dist/chunks/use-default-slot-validator.1169c221.js.map +1 -0
  249. package/dist/chunks/use-has-slot.9fac7123.js +16 -0
  250. package/dist/chunks/use-has-slot.9fac7123.js.map +1 -0
  251. package/dist/code-snippet.js +548 -463
  252. package/dist/code-snippet.js.map +1 -1
  253. package/dist/country.js +501 -505
  254. package/dist/country.js.map +1 -1
  255. package/dist/currency.js +38 -41
  256. package/dist/currency.js.map +1 -1
  257. package/dist/data-grid.js +837 -833
  258. package/dist/data-grid.js.map +1 -1
  259. package/dist/date-picker.js +83 -87
  260. package/dist/date-picker.js.map +1 -1
  261. package/dist/date-range-picker.js +2 -2
  262. package/dist/date.js +1 -1
  263. package/dist/dropdown.js +30 -32
  264. package/dist/dropdown.js.map +1 -1
  265. package/dist/empty-state.js +166 -0
  266. package/dist/empty-state.js.map +1 -0
  267. package/dist/filter-bar.js +986 -935
  268. package/dist/filter-bar.js.map +1 -1
  269. package/dist/focus-trap.js +1 -1
  270. package/dist/form-layout.js +72 -72
  271. package/dist/form-layout.js.map +1 -1
  272. package/dist/header.js +50 -52
  273. package/dist/header.js.map +1 -1
  274. package/dist/image.js +76 -0
  275. package/dist/image.js.map +1 -0
  276. package/dist/index.js +239 -232
  277. package/dist/index.js.map +1 -1
  278. package/dist/info-icon.js +2 -2
  279. package/dist/input-field.js +241 -269
  280. package/dist/input-field.js.map +1 -1
  281. package/dist/internal.js +7 -7
  282. package/dist/link.js +38 -36
  283. package/dist/link.js.map +1 -1
  284. package/dist/loading-indicator.js +1 -1
  285. package/dist/menu.js +131 -139
  286. package/dist/menu.js.map +1 -1
  287. package/dist/modal.js +121 -356
  288. package/dist/modal.js.map +1 -1
  289. package/dist/pagination.js +182 -185
  290. package/dist/pagination.js.map +1 -1
  291. package/dist/payment-method.js +19 -23
  292. package/dist/payment-method.js.map +1 -1
  293. package/dist/popover.js +56 -52
  294. package/dist/popover.js.map +1 -1
  295. package/dist/popper-container.js +36 -41
  296. package/dist/popper-container.js.map +1 -1
  297. package/dist/radio-group.js +112 -113
  298. package/dist/radio-group.js.map +1 -1
  299. package/dist/search-bar.js +77 -91
  300. package/dist/search-bar.js.map +1 -1
  301. package/dist/segmented-control.js +88 -75
  302. package/dist/segmented-control.js.map +1 -1
  303. package/dist/sidepanel.js +122 -121
  304. package/dist/sidepanel.js.map +1 -1
  305. package/dist/status.js +18 -21
  306. package/dist/status.js.map +1 -1
  307. package/dist/structured-list.js +1 -1
  308. package/dist/summary-grid.js +129 -162
  309. package/dist/summary-grid.js.map +1 -1
  310. package/dist/tabs.js +83 -75
  311. package/dist/tabs.js.map +1 -1
  312. package/dist/tag.js +32 -35
  313. package/dist/tag.js.map +1 -1
  314. package/dist/textarea.js +156 -155
  315. package/dist/textarea.js.map +1 -1
  316. package/dist/timeline.js +212 -213
  317. package/dist/timeline.js.map +1 -1
  318. package/dist/toast.js +68 -72
  319. package/dist/toast.js.map +1 -1
  320. package/dist/toggle.js +75 -73
  321. package/dist/toggle.js.map +1 -1
  322. package/dist/typography.js +1 -1
  323. package/dist/web-types.json +1 -1
  324. package/package.json +11 -10
  325. package/dist/@types/packages/vue2/src/components/data-grid/composables/useCalculateBodyFitContentDynamicStyles/useCalculateBodyFitContentDynamicStyles.d.ts +0 -2
  326. package/dist/@types/packages/vue2/src/components/data-grid/composables/useCalculateBodyFitContentDynamicStyles/useCalculateBodyFitContentDynamicStyles.types.d.ts +0 -8
  327. package/dist/@types/packages/vue2/src/components/filter-bar/components/base-filter/components/filter-bar-filter-button/filter-bar-filter-button.vue.d.ts +0 -58
  328. package/dist/@types/packages/vue2/src/components/filter-bar/components/base-filter/components/index.d.ts +0 -1
  329. package/dist/assets/button-actions.css +0 -1
  330. package/dist/assets/chevron-down.css +0 -1
  331. package/dist/chunks/base-button.20be08da.js +0 -111
  332. package/dist/chunks/base-button.20be08da.js.map +0 -1
  333. package/dist/chunks/button-actions.54e28e75.js +0 -124
  334. package/dist/chunks/button-actions.54e28e75.js.map +0 -1
  335. package/dist/chunks/button.e1c39f66.js.map +0 -1
  336. package/dist/chunks/calendar.09b683b3.js.map +0 -1
  337. package/dist/chunks/checkbox.a404069b.js +0 -226
  338. package/dist/chunks/checkbox.a404069b.js.map +0 -1
  339. package/dist/chunks/chevron-down.69bedf14.js.map +0 -1
  340. package/dist/chunks/controls-group.60fb2a86.js +0 -136
  341. package/dist/chunks/controls-group.60fb2a86.js.map +0 -1
  342. package/dist/chunks/copy.2cf5e6c3.js.map +0 -1
  343. package/dist/chunks/dropdown-default-textbox.203e747f.js.map +0 -1
  344. package/dist/chunks/dropdown.8b415aac.js.map +0 -1
  345. package/dist/chunks/error-message.ddfe8ea5.js.map +0 -1
  346. package/dist/chunks/footer-actions.0f640f87.js +0 -106
  347. package/dist/chunks/footer-actions.0f640f87.js.map +0 -1
  348. package/dist/chunks/get-slot-text.2db867f8.js +0 -9
  349. package/dist/chunks/get-slot-text.2db867f8.js.map +0 -1
  350. package/dist/chunks/index.222d29b0.js +0 -120
  351. package/dist/chunks/index.222d29b0.js.map +0 -1
  352. package/dist/chunks/index.3da90517.js.map +0 -1
  353. package/dist/chunks/index.aa34e363.js +0 -104
  354. package/dist/chunks/index.aa34e363.js.map +0 -1
  355. package/dist/chunks/index.c9225c3b.js.map +0 -1
  356. package/dist/chunks/listbox-option-tag.5ae8b79b.js +0 -133
  357. package/dist/chunks/listbox-option-tag.5ae8b79b.js.map +0 -1
  358. package/dist/chunks/listbox.0c7c4e5e.js.map +0 -1
  359. package/dist/chunks/loading-button.61d8ebe5.js.map +0 -1
  360. package/dist/chunks/tooltip.835d9b52.js.map +0 -1
  361. package/dist/chunks/use-default-slot-validator.83d977a1.js +0 -11
  362. package/dist/chunks/use-default-slot-validator.83d977a1.js.map +0 -1
  363. package/dist/chunks/use-has-slot.068222e6.js +0 -5
  364. package/dist/chunks/use-has-slot.068222e6.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"search-bar.js","sources":["../../vue2/src/components/search-bar/search-bar.types.ts","../../vue2/src/components/search-bar/search-bar.vue"],"sourcesContent":["export enum BentoSearchBarInternalEvent {\n CLEAR = 'clear',\n ESCAPE = 'escape-pressed',\n INPUT = 'input',\n UPDATE = 'update:search-term',\n}\n\nexport enum BentoSearchBarEvent {\n CLEAR = 'search-clear',\n INPUT = 'search-input',\n UPDATE = 'update:search-term',\n}\n\nexport interface BentoSearchBarItem {\n label: string;\n items?: Array<BentoSearchBarItem>;\n}\n\nexport type BentoSearchBarData = Array<BentoSearchBarItem>;\n","<template>\n <div class=\"b-search-bar\">\n <bento-input-field\n ref=\"bentoInputField\"\n :value=\"searchTerm\"\n :type=\"BentoInputFieldType.SEARCH\"\n :aria-label=\"inputFieldAriaLabel\"\n :aria-hidden=\"false\"\n :placeholder=\"placeholder\"\n @input=\"onInputEvent\"\n @escape-pressed=\"$emit(BentoSearchBarInternalEvent.ESCAPE)\"\n >\n <template #defaultIconBefore>\n <search-icon :svg-title=\"$t('search')\" />\n </template>\n\n <template v-if=\"searchTerm\" #iconAfter>\n <div\n class=\"b-search-bar__clear-search\"\n tabindex=\"0\"\n data-testid=\"b-search-bar-clear-search-button\"\n @click=\"onClearSearch\"\n @keypress.enter=\"onClearSearch\"\n @keyup.space=\"onClearSearch\"\n >\n <cross-circle-fill-icon :svg-title=\"$t('clearSearch')\" />\n </div>\n </template>\n </bento-input-field>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { defineComponent, ref, watch } from 'vue';\n import { BentoInputFieldType } from '@/components/input-field/input-field.types';\n import { debounce } from '@/utils/ts/debounce';\n import BentoInputField from '@/components/input-field/input-field.vue';\n import SearchIcon from '@adyen/ui-assets-icons-16/vue/search';\n import CrossCircleFillIcon from '@adyen/ui-assets-icons-16/vue/cross-circle-fill';\n import { BentoSearchBarInternalEvent } from './search-bar.types';\n import messages from './messages.json';\n\n /**\n * Search functionality to help users find the desired data quicker.\n * When a user starts typing, the data is dynamically filtered to\n * only show the relevant results.\n *\n * Clearing the search field displays the entire list again.\n *\n * @example\n * import {\n * BentoSearchBar,\n * BentoSearchBarData,\n * useSearchBarFilter\n * } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoSearchBar },\n * template: `\n * <bento-search-bar\n * input-field-aria-label=\"Search bar\"\n * v-model=\"searchTerm\"\n * @input=\"onInput\"\n * @clear-search=\"onClearSearch\"\n * />\n * // Render the filtered data\n * {{ filteredData }}\n * `,\n * setup() {\n * const searchTerm = ref('');\n * const data = ref<BentoSearchBarData>([]);\n * const filteredData = useSearchBarFilter(searchTerm, data);\n *\n * consdt onInput = () => {}\n * consdt onClearSearch = () => {}\n *\n * return {\n * searchTerm,\n * filteredData,\n * onInput,\n * onClearSearch,\n * };\n * }\n * }\n */\n export default defineComponent({\n name: 'bento-search-bar',\n i18n: { messages },\n components: {\n CrossCircleFillIcon,\n BentoInputField,\n SearchIcon,\n },\n props: {\n /**\n * Text that labels an the search bar input element\n */\n inputFieldAriaLabel: { type: String, required: true },\n\n /**\n * Custom debounce time. Default: 300\n */\n debounceTime: { type: Number, default: 300 },\n\n /**\n * Text displayed as the placeholder of the input-field\n */\n placeholder: { type: String, default: '' },\n\n /**\n * Text displayed as the value being searched\n */\n value: { type: String, default: undefined },\n },\n emits: [\n BentoSearchBarInternalEvent.INPUT,\n BentoSearchBarInternalEvent.CLEAR,\n BentoSearchBarInternalEvent.ESCAPE,\n ],\n setup(props, { emit }) {\n const searchTerm = ref(props.value);\n const bentoInputField = ref<InstanceType<typeof BentoInputField> | null>();\n\n watch(\n () => props.value,\n () => {\n searchTerm.value = props.value;\n },\n { immediate: true }\n );\n\n const onClearSearch = () => {\n searchTerm.value = '';\n emit(BentoSearchBarInternalEvent.CLEAR);\n emit(BentoSearchBarInternalEvent.INPUT, '');\n };\n\n const debouncedEmit = debounce(() => {\n emit(BentoSearchBarInternalEvent.INPUT, searchTerm.value);\n }, props.debounceTime);\n\n const onInputEvent = (value: string) => {\n searchTerm.value = value;\n debouncedEmit();\n };\n\n return {\n // Values\n searchTerm,\n bentoInputField,\n\n // Emits\n onClearSearch,\n onInputEvent,\n\n // Enums\n BentoInputFieldType,\n BentoSearchBarInternalEvent,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./search-bar.scss\" />\n"],"names":["BentoSearchBarInternalEvent","BentoSearchBarInternalEvent2","BentoSearchBarEvent","BentoSearchBarEvent2","_sfc_main","defineComponent","messages","CrossCircleIcon","BentoInputField","SearchIcon","props","emit","searchTerm","ref","bentoInputField","watch","onClearSearch","debouncedEmit","debounce","value","BentoInputFieldType","openBlock","createElementBlock","_hoisted_1","createVNode","_component_bento_input_field","_ctx","_cache","$event","createSlots","withCtx","_component_search_icon","createElementVNode","args","withKeys"],"mappings":"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"}
1
+ {"version":3,"file":"search-bar.js","sources":["../../vue2/src/components/search-bar/search-bar.types.ts","../../vue2/src/components/search-bar/search-bar.vue"],"sourcesContent":["export enum BentoSearchBarInternalEvent {\n CLEAR = 'clear',\n ESCAPE = 'escape-pressed',\n INPUT = 'input',\n UPDATE = 'update:search-term',\n}\n\nexport enum BentoSearchBarEvent {\n CLEAR = 'search-clear',\n INPUT = 'search-input',\n UPDATE = 'update:search-term',\n}\n\nexport interface BentoSearchBarItem {\n label: string;\n items?: Array<BentoSearchBarItem>;\n}\n\nexport type BentoSearchBarData = Array<BentoSearchBarItem>;\n","<template>\n <div class=\"b-search-bar\">\n <bento-input-field\n ref=\"bentoInputField\"\n :value=\"searchTerm\"\n type=\"search\"\n :condensed=\"condensed\"\n :aria-label=\"inputFieldAriaLabel\"\n :aria-hidden=\"false\"\n :placeholder=\"placeholder\"\n @input=\"onInputEvent\"\n @escape-pressed=\"emit(BentoSearchBarInternalEvent.ESCAPE)\"\n >\n <template #defaultIconBefore>\n <search-icon :svg-title=\"t('search')\" aria-hidden=\"true\" />\n </template>\n\n <template v-if=\"searchTerm\" #iconAfter>\n <div\n class=\"b-search-bar__clear-search\"\n tabindex=\"0\"\n data-testid=\"b-search-bar-clear-search-button\"\n @click=\"onClearSearch\"\n @keypress.enter=\"onClearSearch\"\n @keyup.space=\"onClearSearch\"\n >\n <cross-circle-fill-icon :svg-title=\"t('clearSearch')\" />\n </div>\n </template>\n </bento-input-field>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { defineProps, ref, watch } from 'vue';\n import { debounce } from '@/utils/ts/debounce';\n import { BentoSearchBarInternalEvent } from './search-bar.types';\n import { useI18n } from '@/utils/ts/i18n';\n import BentoInputField from '@/components/input-field/input-field.vue';\n import SearchIcon from '@adyen/ui-assets-icons-16/vue/search';\n import CrossCircleFillIcon from '@adyen/ui-assets-icons-16/vue/cross-circle-fill';\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n\n const props = defineProps({\n /**\n * Text that labels an the search bar input element\n */\n inputFieldAriaLabel: { type: String, required: true },\n\n /**\n * Reduces height of the search bar\n */\n condensed: { type: Boolean, default: false },\n\n /**\n * Custom debounce time. Default: 300\n */\n debounceTime: { type: Number, default: 300 },\n\n /**\n * Text displayed as the placeholder of the input-field\n */\n placeholder: { type: String, default: '' },\n\n /**\n * Text displayed as the value being searched\n */\n value: { type: String, default: undefined },\n });\n\n const emit = defineEmits<{\n /**\n * Emitted when the input value changes by typing a search. Debounced by the `debounceTime` property\n */\n (e: 'input', inputValue: string): void;\n\n /**\n * Emitted when the \"clear search\" button is clicked\n */\n (e: 'clear'): void;\n\n /**\n * Emitted when the \"ESC\" key is pressed inside the Search Bar input\n */\n (e: 'escape-pressed'): void;\n }>();\n\n const searchTerm = ref(props.value);\n const bentoInputField = ref<InstanceType<typeof BentoInputField> | null>();\n\n watch(\n () => props.value,\n () => {\n searchTerm.value = props.value;\n },\n { immediate: true }\n );\n\n const onClearSearch = () => {\n searchTerm.value = '';\n emit('clear');\n emit('input', '');\n };\n\n const debouncedEmit = debounce(() => {\n emit('input', searchTerm.value);\n }, props.debounceTime);\n\n const onInputEvent = (value: string) => {\n searchTerm.value = value;\n debouncedEmit();\n };\n</script>\n\n<script lang=\"ts\">\n /**\n * Search functionality to help users find the desired data quicker.\n * When a user starts typing, the data is dynamically filtered to\n * only show the relevant results.\n *\n * Clearing the search field displays the entire list again.\n *\n * @example\n * import {\n * BentoSearchBar,\n * BentoSearchBarData,\n * useSearchBarFilter\n * } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoSearchBar },\n * template: `\n * <bento-search-bar\n * input-field-aria-label=\"Search bar\"\n * v-model=\"searchTerm\"\n * @input=\"onInput\"\n * @clear=\"onClearSearch\"\n * />\n * // Render the filtered data\n * {{ filteredData }}\n * `,\n * setup() {\n * const searchTerm = ref('');\n * const data = ref<BentoSearchBarData>([]);\n * const filteredData = useSearchBarFilter(searchTerm, data);\n *\n * consdt onInput = () => {}\n * consdt onClearSearch = () => {}\n *\n * return {\n * searchTerm,\n * filteredData,\n * onInput,\n * onClearSearch,\n * };\n * }\n * }\n */\n export default {\n i18n: { messages },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./search-bar.scss\" />\n"],"names":["BentoSearchBarInternalEvent","BentoSearchBarInternalEvent2","BentoSearchBarEvent","BentoSearchBarEvent2","__default__","messages","t","useI18n","searchTerm","ref","props","bentoInputField","watch","onClearSearch","emit","debouncedEmit","debounce","onInputEvent","value"],"mappings":";;;;;;;;;AAAY,IAAAA,IAAA,kBAAAC,OACRA,EAAA,QAAA,SACAA,EAAA,SAAA,kBACAA,EAAA,QAAA,SACAA,EAAA,SAAA,sBAJQA,IAAAD,KAAA,CAAA,CAAA,GAOAE,IAAA,kBAAAC,OACRA,EAAA,QAAA,gBACAA,EAAA,QAAA,gBACAA,EAAA,SAAA,sBAHQA,IAAAD,KAAA,CAAA,CAAA;;;;;;iEC2JRE,IAAA;AAAA,EAAe,MAAA,EAAA,UAAAC,EAAA;AAEf;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAvHA,EAAA,GAAAC,EAAA,IAAAC,EAAA,EAAA,UAAAF,EAAA,CAAA,GA8CAG,IAAAC,EAAAC,EAAA,KAAA,GACAC,IAAAF,EAAA;AAEA,IAAAG;AAAA,MAAA,MAAAF,EAAA;AAAA,MACgB,MAAA;AAER,QAAAF,EAAA,QAAAE,EAAA;AAAA,MAAyB;AAAA,MAC7B,EAAA,WAAA,GAAA;AAAA,IACkB;AAGtB,UAAAG,IAAA,MAAA;AACI,MAAAL,EAAA,QAAA,IACAM,EAAA,OAAA,GACAA,EAAA,SAAA,EAAA;AAAA,IAAgB,GAGpBC,IAAAC,EAAA,MAAA;AACI,MAAAF,EAAA,SAAAN,EAAA,KAAA;AAAA,IAA8B,GAAAE,EAAA,YAAA,GAGlCO,IAAA,CAAAC,MAAA;AACI,MAAAV,EAAA,QAAAU,GACAH,EAAA;AAAA,IAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,13 +1,15 @@
1
- import { defineComponent as C, computed as u, resolveComponent as c, openBlock as a, createElementBlock as m, normalizeClass as y, createElementVNode as k, createBlock as b, createCommentVNode as g, createVNode as I, withCtx as S, createTextVNode as $, toDisplayString as w, toRef as T, ref as v, onMounted as N, onUnmounted as E, Fragment as U, renderList as D } from "vue";
2
- import { B as W, a as q, b as A } from "./chunks/index.222d29b0.js";
3
- import { g as B } from "./chunks/unique-id.a2a2b458.js";
4
- import { C as P } from "./chunks/listbox.0c7c4e5e.js";
1
+ import { defineComponent as y, computed as c, resolveComponent as m, openBlock as l, createElementBlock as b, normalizeClass as I, createElementVNode as B, createBlock as _, createCommentVNode as h, createVNode as A, withCtx as U, createTextVNode as N, toDisplayString as W, toRef as q, ref as f, onMounted as D, onUnmounted as E, toRefs as T, Fragment as F, renderList as R } from "vue";
2
+ import { B as H } from "./chunks/index.89b00b94.js";
3
+ import { g as S } from "./chunks/unique-id.a2a2b458.js";
4
+ import { C as P } from "./chunks/listbox.6b52af1a.js";
5
5
  import { _ as V } from "./chunks/_plugin-vue_export-helper.dad06003.js";
6
- import { B as H } from "./chunks/dropdown.8b415aac.js";
7
- import "./assets/index6.css";
8
- const L = C({
6
+ import { B as M } from "./chunks/dropdown.b798a82e.js";
7
+ import { u as z } from "./chunks/i18n.6c402773.js";
8
+ import { u as O } from "./chunks/aria-label.ac9651a5.js";
9
+ import "./assets/index34.css";
10
+ const j = y({
9
11
  name: "bento-segmented-control-button",
10
- components: { BentoTypography: W, CheckmarkIcon: P },
12
+ components: { BentoTypography: H, CheckmarkIcon: P },
11
13
  props: {
12
14
  /**
13
15
  * The string the button will showcase
@@ -47,33 +49,30 @@ const L = C({
47
49
  }
48
50
  },
49
51
  emits: ["update:model-value"],
50
- setup(e, { emit: t }) {
51
- const s = B("segmented-control-button"), i = u(() => e.value === e.modelValue), d = u(() => ({
52
+ setup(e, { emit: n }) {
53
+ const d = S("segmented-control-button"), r = c(() => e.value === e.modelValue), s = c(() => ({
52
54
  "b-segmented-control-button--hug-content": !e.fullWidth,
53
55
  "b-segmented-control-button--full-width": e.fullWidth
54
56
  }));
55
57
  return {
56
- // Enums
57
- BentoTypographyElement: q,
58
- BentoTypographyVariant: A,
59
58
  // Values
60
- segmentedControlButtonId: s,
61
- isChecked: i,
62
- conditionalClasses: d,
59
+ segmentedControlButtonId: d,
60
+ isChecked: r,
61
+ conditionalClasses: s,
63
62
  // Methods
64
63
  onClick: () => {
65
- e.disabled || t("update:model-value", e.value);
64
+ e.disabled || n("update:model-value", e.value);
66
65
  }
67
66
  };
68
67
  }
69
68
  });
70
- const R = ["id", "aria-checked", "aria-label", "checked", "disabled", "value"], M = ["for"];
71
- function O(e, t, s, i, d, n) {
72
- const l = c("checkmark-icon"), r = c("bento-typography");
73
- return a(), m("div", {
74
- class: y(["b-segmented-control-button", e.conditionalClasses])
69
+ const G = ["id", "aria-checked", "aria-label", "checked", "disabled", "value"], J = ["for"];
70
+ function K(e, n, d, r, s, i) {
71
+ const a = m("checkmark-icon"), o = m("bento-typography");
72
+ return l(), b("div", {
73
+ class: I(["b-segmented-control-button", e.conditionalClasses])
75
74
  }, [
76
- k("input", {
75
+ B("input", {
77
76
  id: e.segmentedControlButtonId,
78
77
  "aria-checked": e.isChecked,
79
78
  "aria-label": e.label,
@@ -83,37 +82,42 @@ function O(e, t, s, i, d, n) {
83
82
  type: "radio",
84
83
  class: "b-segmented-control-button__input",
85
84
  role: "radio",
86
- onChange: t[0] || (t[0] = (...o) => e.onClick && e.onClick(...o))
87
- }, null, 40, R),
88
- e.label ? (a(), m("label", {
85
+ onChange: n[0] || (n[0] = (...t) => e.onClick && e.onClick(...t))
86
+ }, null, 40, G),
87
+ e.label ? (l(), b("label", {
89
88
  key: 0,
90
89
  for: e.segmentedControlButtonId,
91
90
  class: "b-segmented-control-button__label-container"
92
91
  }, [
93
- e.isChecked ? (a(), b(l, {
92
+ e.isChecked ? (l(), _(a, {
94
93
  key: 0,
95
94
  "aria-hidden": "true",
96
95
  class: "b-segmented-control-button__icon"
97
- })) : g("", !0),
98
- I(r, {
96
+ })) : h("", !0),
97
+ A(o, {
99
98
  class: "b-segmented-control-button__label",
100
- el: e.BentoTypographyElement.SPAN,
101
- variant: e.BentoTypographyVariant.BODY,
99
+ el: "span",
100
+ variant: "body",
102
101
  stronger: ""
103
102
  }, {
104
- default: S(() => [
105
- $(w(e.label), 1)
103
+ default: U(() => [
104
+ N(W(e.label), 1)
106
105
  ]),
107
106
  _: 1
108
- }, 8, ["el", "variant"])
109
- ], 8, M)) : g("", !0)
107
+ })
108
+ ], 8, J)) : h("", !0)
110
109
  ], 2);
111
110
  }
112
- const z = /* @__PURE__ */ V(L, [["render", O], ["__scopeId", "data-v-7babee70"]]);
113
- var f = /* @__PURE__ */ ((e) => (e.UPDATE = "update:model-value", e))(f || {});
114
- const F = C({
111
+ const Q = /* @__PURE__ */ V(j, [["render", K], ["__scopeId", "data-v-92fc438f"]]);
112
+ var v = /* @__PURE__ */ ((e) => (e.UPDATE = "update:model-value", e))(v || {});
113
+ const k = {
114
+ "en-US": {
115
+ ariaLabelFallback: "Segmented control"
116
+ }
117
+ }, X = y({
115
118
  name: "bento-segmented-control",
116
- components: { BentoDropdown: H, SegmentedControlButton: z },
119
+ i18n: { messages: k },
120
+ components: { BentoDropdown: M, SegmentedControlButton: Q },
117
121
  props: {
118
122
  /**
119
123
  * Items that will populate the segmented control.
@@ -130,6 +134,9 @@ const F = C({
130
134
  type: [Number, String, null],
131
135
  required: !0
132
136
  },
137
+ /**
138
+ * @deprecated from version 2.0.0. Use the aria-label attribute instead.
139
+ */
133
140
  /**
134
141
  * Accessible name describing the segmented control.
135
142
  */
@@ -145,77 +152,83 @@ const F = C({
145
152
  default: !1
146
153
  }
147
154
  },
148
- emits: [f.UPDATE],
149
- setup(e, { emit: t }) {
150
- const s = T(e, "modelValue"), i = B("segmented-control-dropdown"), d = v(null), n = v(!0);
151
- let l;
152
- N(() => {
153
- const p = {
155
+ emits: [v.UPDATE],
156
+ setup(e, { attrs: n, emit: d }) {
157
+ const { t: r } = z({ messages: k }), s = q(e, "modelValue"), i = S("segmented-control-dropdown"), a = f(null), o = f(!0);
158
+ let t;
159
+ D(() => {
160
+ const g = {
154
161
  root: null,
155
162
  // To prevent the observer from triggering on vertical intersection
156
163
  rootMargin: "100% 0% 100% 0%",
157
164
  threshold: 1
158
165
  };
159
- l = new IntersectionObserver((h) => {
160
- h && (h[0].isIntersecting ? n.value = !0 : n.value = !1);
161
- }, p), l.observe(d.value);
166
+ t = new IntersectionObserver((u) => {
167
+ u && u.length && (u[u.length - 1].isIntersecting ? o.value = !0 : o.value = !1);
168
+ }, g), t.observe(a.value);
162
169
  }), E(() => {
163
- l.disconnect();
170
+ t.disconnect();
164
171
  });
165
- const r = u(() => n.value === !1), o = u(() => ({
166
- "b-segmented-control--hidden": r.value,
172
+ const p = f(n["aria-label"]), { ariaLabel: $ } = T(e), w = O({
173
+ ariaLabel: p.value,
174
+ // TODO: take this line away when the aria-label props is removed
175
+ label: $,
176
+ defaultFallback: r("ariaLabelFallback")
177
+ }), C = c(() => o.value === !1), L = c(() => ({
178
+ "b-segmented-control--hidden": C.value,
167
179
  "b-segmented-control--full-width": e.fullWidth
168
180
  }));
169
181
  return {
170
182
  // Values
183
+ computedAriaLabel: w,
171
184
  inputValue: s,
172
185
  dropdownId: i,
173
- segmentedControlRef: d,
174
- conditionalClasses: o,
175
- isSegmentedControlVisible: n,
176
- isSegmentedControlHidden: r,
186
+ segmentedControlRef: a,
187
+ conditionalClasses: L,
188
+ isSegmentedControlVisible: o,
189
+ isSegmentedControlHidden: C,
177
190
  // Methods
178
- onInput: (p) => {
179
- t(f.UPDATE, p);
191
+ onInput: (g) => {
192
+ d(v.UPDATE, g);
180
193
  }
181
194
  };
182
195
  }
183
196
  });
184
- const Y = { class: "b-segmented-control__wrapper" }, j = ["aria-hidden"];
185
- function G(e, t, s, i, d, n) {
186
- const l = c("bento-dropdown"), r = c("segmented-control-button");
187
- return a(), m("div", Y, [
188
- e.isSegmentedControlHidden ? (a(), b(l, {
197
+ const Y = { class: "b-segmented-control__wrapper" }, Z = ["aria-hidden"];
198
+ function x(e, n, d, r, s, i) {
199
+ const a = m("bento-dropdown"), o = m("segmented-control-button");
200
+ return l(), b("div", Y, [
201
+ e.isSegmentedControlHidden ? (l(), _(a, {
189
202
  key: 0,
190
203
  id: e.dropdownId,
191
204
  "aria-hidden": e.isSegmentedControlVisible,
192
205
  value: e.modelValue,
193
206
  items: e.items,
194
- "aria-label": e.ariaLabel,
207
+ "aria-label": e.computedAriaLabel,
195
208
  onInput: e.onInput
196
- }, null, 8, ["id", "aria-hidden", "value", "items", "aria-label", "onInput"])) : g("", !0),
197
- k("fieldset", {
209
+ }, null, 8, ["id", "aria-hidden", "value", "items", "aria-label", "onInput"])) : h("", !0),
210
+ B("fieldset", {
198
211
  ref: "segmentedControlRef",
199
212
  role: "group",
200
- class: y(["b-segmented-control", e.conditionalClasses]),
213
+ class: I(["b-segmented-control", e.conditionalClasses]),
201
214
  "aria-hidden": e.isSegmentedControlHidden
202
215
  }, [
203
- (a(!0), m(U, null, D(e.items, (o, _) => (a(), b(r, {
204
- key: `segmented-control-item-${_}-${o.label}`,
216
+ (l(!0), b(F, null, R(e.items, (t, p) => (l(), _(o, {
217
+ key: `segmented-control-item-${p}-${t.label}`,
205
218
  class: "b-segmented-control__item",
206
- label: o.label,
207
- value: o.value,
208
- disabled: o.disabled,
219
+ label: t.label,
220
+ value: t.value,
221
+ disabled: t.disabled,
209
222
  "full-width": e.fullWidth,
210
223
  "model-value": e.inputValue,
211
224
  "onUpdate:modelValue": e.onInput
212
225
  }, null, 8, ["label", "value", "disabled", "full-width", "model-value", "onUpdate:modelValue"]))), 128))
213
- ], 10, j)
226
+ ], 10, Z)
214
227
  ]);
215
228
  }
216
- const ee = /* @__PURE__ */ V(F, [["render", G], ["__scopeId", "data-v-cc139468"]]);
229
+ const ie = /* @__PURE__ */ V(X, [["render", x], ["__scopeId", "data-v-5d49b087"]]);
217
230
  export {
218
- ee as BentoSegmentedControl,
219
- f as BentoSegmentedControlEvent
231
+ ie as BentoSegmentedControl,
232
+ v as BentoSegmentedControlEvent
220
233
  };
221
234
  //# sourceMappingURL=segmented-control.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"segmented-control.js","sources":["../../vue2/src/components/segmented-control/components/segmented-control-button/segmented-control-button.vue","../../vue2/src/components/segmented-control/segmented-control.types.ts","../../vue2/src/components/segmented-control/segmented-control.vue"],"sourcesContent":["<template>\n <div class=\"b-segmented-control-button\" :class=\"conditionalClasses\">\n <input\n :id=\"segmentedControlButtonId\"\n :aria-checked=\"isChecked\"\n :aria-label=\"label\"\n :checked=\"isChecked\"\n :disabled=\"disabled\"\n :value=\"value\"\n type=\"radio\"\n class=\"b-segmented-control-button__input\"\n role=\"radio\"\n @change=\"onClick\"\n />\n <label v-if=\"label\" :for=\"segmentedControlButtonId\" class=\"b-segmented-control-button__label-container\">\n <checkmark-icon v-if=\"isChecked\" aria-hidden=\"true\" class=\"b-segmented-control-button__icon\" />\n <bento-typography\n class=\"b-segmented-control-button__label\"\n :el=\"BentoTypographyElement.SPAN\"\n :variant=\"BentoTypographyVariant.BODY\"\n stronger\n >\n {{ label }}\n </bento-typography>\n </label>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { BentoTypography, BentoTypographyElement, BentoTypographyVariant } from '@/components/typography';\n import { generateUid } from '@/utils/ts/unique-id';\n import { computed, ComputedRef, defineComponent } from 'vue';\n import CheckmarkIcon from '@adyen/ui-assets-icons-16/vue/checkmark';\n /**\n * Internal component to be used within the BentoSegmentedControl component only\n */\n export default defineComponent({\n name: 'bento-segmented-control-button',\n components: { BentoTypography, CheckmarkIcon },\n props: {\n /**\n * The string the button will showcase\n */\n label: {\n type: String,\n required: true,\n },\n /**\n * Indicates the value of the input that will be returned when it's selected\n */\n value: {\n type: [String, Number],\n required: true,\n },\n /**\n * This property should not be used directly.\n * It will be used by v-model directive on the segmented control component\n */\n modelValue: {\n type: [String, Number],\n default: null,\n },\n /**\n * Disable the radio button (optional)\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n /**\n * Renders the button with a 100% width\n */\n fullWidth: {\n type: Boolean,\n default: false,\n },\n },\n emits: ['update:model-value'],\n setup(props, { emit }) {\n const segmentedControlButtonId = generateUid('segmented-control-button');\n const isChecked: ComputedRef<boolean> = computed(() => props.value === props.modelValue);\n const conditionalClasses = computed(() => ({\n 'b-segmented-control-button--hug-content': !props.fullWidth,\n 'b-segmented-control-button--full-width': props.fullWidth,\n }));\n const onClick = () => {\n if (!props.disabled) {\n emit('update:model-value', props.value);\n }\n };\n return {\n // Enums\n BentoTypographyElement,\n BentoTypographyVariant,\n // Values\n segmentedControlButtonId,\n isChecked,\n conditionalClasses,\n // Methods\n onClick,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./segmented-control-button.scss\" />\n","export interface BentoSegmentedControlItem {\n label: string;\n value: string | number;\n disabled?: boolean;\n}\n\nexport enum BentoSegmentedControlEvent {\n UPDATE = 'update:model-value',\n}\n","<template>\n <div class=\"b-segmented-control__wrapper\">\n <bento-dropdown\n v-if=\"isSegmentedControlHidden\"\n :id=\"dropdownId\"\n :aria-hidden=\"isSegmentedControlVisible\"\n :value=\"modelValue\"\n :items=\"items\"\n :aria-label=\"ariaLabel\"\n @input=\"onInput\"\n />\n <fieldset\n ref=\"segmentedControlRef\"\n role=\"group\"\n class=\"b-segmented-control\"\n :class=\"conditionalClasses\"\n :aria-hidden=\"isSegmentedControlHidden\"\n >\n <segmented-control-button\n v-for=\"(item, index) in items\"\n :key=\"`segmented-control-item-${index}-${item.label}`\"\n class=\"b-segmented-control__item\"\n :label=\"item.label\"\n :value=\"item.value\"\n :disabled=\"item.disabled\"\n :full-width=\"fullWidth\"\n :model-value=\"inputValue\"\n @update:model-value=\"onInput\"\n ></segmented-control-button>\n </fieldset>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, onMounted, onUnmounted, PropType, ref, toRef } from 'vue';\n import SegmentedControlButton from './components/segmented-control-button/segmented-control-button.vue';\n import { BentoSegmentedControlEvent, BentoSegmentedControlItem } from './segmented-control.types';\n import { BentoDropdown } from '@/components/dropdown';\n import { generateUid } from '@/utils/ts/unique-id';\n\n /**\n * @example\n * import { BentoSegmentedControl } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoSegmentedControl },\n * template: `\n * <bento-segmented-control\n * :items=\"[{ label: 'Segment 1', value: 1 }, { label: 'Segment 2', value: 2 }, { label: 'Segment 3', value: 3, disabled: true }]\"\n * :model-value=\"1\"\n * :update:model-value=\"yourUpdateHandler\"\n * />\n * `\n * }\n */\n export default defineComponent({\n name: 'bento-segmented-control',\n components: { BentoDropdown, SegmentedControlButton },\n props: {\n /**\n * Items that will populate the segmented control.\n */\n items: {\n type: Array as PropType<BentoSegmentedControlItem[]>,\n required: true,\n validator: (arr: Array<BentoSegmentedControlItem[]>) => arr.length <= 5,\n },\n /**\n * Determines the selected value of the group. Corresponds to the BentoSegmentedControlItem's value.\n */\n modelValue: {\n type: [Number, String, null],\n required: true,\n },\n /**\n * Accessible name describing the segmented control.\n */\n ariaLabel: {\n type: String,\n required: true,\n },\n /**\n * If set to true, renders the component full width.\n */\n fullWidth: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [BentoSegmentedControlEvent.UPDATE],\n setup(props, { emit }) {\n const inputValue = toRef(props, 'modelValue');\n const dropdownId = generateUid('segmented-control-dropdown');\n const segmentedControlRef = ref(null);\n const isSegmentedControlVisible = ref(true);\n let observer: IntersectionObserver;\n\n onMounted(() => {\n const config = {\n root: null,\n // To prevent the observer from triggering on vertical intersection\n rootMargin: '100% 0% 100% 0%',\n threshold: 1,\n };\n observer = new IntersectionObserver(entries => {\n if (entries) {\n if (entries[0].isIntersecting) {\n // The segmented control is still visible within the viewport\n isSegmentedControlVisible.value = true;\n } else {\n // The segmented control is not fully visible anymore in the viewport\n isSegmentedControlVisible.value = false;\n }\n }\n }, config);\n observer.observe(segmentedControlRef.value);\n });\n\n onUnmounted(() => {\n observer.disconnect();\n });\n\n const isSegmentedControlHidden = computed(() => isSegmentedControlVisible.value === false);\n\n const conditionalClasses = computed(() => ({\n 'b-segmented-control--hidden': isSegmentedControlHidden.value,\n 'b-segmented-control--full-width': props.fullWidth,\n }));\n\n const onInput = value => {\n emit(BentoSegmentedControlEvent.UPDATE, value);\n };\n\n return {\n // Values\n inputValue,\n dropdownId,\n segmentedControlRef,\n conditionalClasses,\n isSegmentedControlVisible,\n isSegmentedControlHidden,\n\n // Methods\n onInput,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./segmented-control.scss\" />\n"],"names":["_sfc_main$1","defineComponent","BentoTypography","CheckmarkIcon","props","emit","segmentedControlButtonId","generateUid","isChecked","computed","conditionalClasses","BentoTypographyElement","BentoTypographyVariant","createElementVNode","_ctx","_hoisted_1$1","openBlock","createElementBlock","createBlock","_component_checkmark_icon","createCommentVNode","createVNode","_component_bento_typography","BentoSegmentedControlEvent","BentoSegmentedControlEvent2","_sfc_main","BentoDropdown","SegmentedControlButton","arr","inputValue","toRef","dropdownId","segmentedControlRef","ref","isSegmentedControlVisible","observer","onMounted","config","entries","onUnmounted","isSegmentedControlHidden","value","_component_segmented_control_button","resolveComponent","_component_bento_dropdown","normalizeClass","Fragment","renderList","item","index"],"mappings":"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"}
1
+ {"version":3,"file":"segmented-control.js","sources":["../../vue2/src/components/segmented-control/components/segmented-control-button/segmented-control-button.vue","../../vue2/src/components/segmented-control/segmented-control.types.ts","../../vue2/src/components/segmented-control/segmented-control.vue"],"sourcesContent":["<template>\n <div class=\"b-segmented-control-button\" :class=\"conditionalClasses\">\n <input\n :id=\"segmentedControlButtonId\"\n :aria-checked=\"isChecked\"\n :aria-label=\"label\"\n :checked=\"isChecked\"\n :disabled=\"disabled\"\n :value=\"value\"\n type=\"radio\"\n class=\"b-segmented-control-button__input\"\n role=\"radio\"\n @change=\"onClick\"\n />\n <label v-if=\"label\" :for=\"segmentedControlButtonId\" class=\"b-segmented-control-button__label-container\">\n <checkmark-icon v-if=\"isChecked\" aria-hidden=\"true\" class=\"b-segmented-control-button__icon\" />\n <bento-typography class=\"b-segmented-control-button__label\" el=\"span\" variant=\"body\" stronger>\n {{ label }}\n </bento-typography>\n </label>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { BentoTypography } from '@/components/typography';\n import { generateUid } from '@/utils/ts/unique-id';\n import { computed, ComputedRef, defineComponent } from 'vue';\n import CheckmarkIcon from '@adyen/ui-assets-icons-16/vue/checkmark';\n /**\n * Internal component to be used within the BentoSegmentedControl component only\n */\n export default defineComponent({\n name: 'bento-segmented-control-button',\n components: { BentoTypography, CheckmarkIcon },\n props: {\n /**\n * The string the button will showcase\n */\n label: {\n type: String,\n required: true,\n },\n /**\n * Indicates the value of the input that will be returned when it's selected\n */\n value: {\n type: [String, Number],\n required: true,\n },\n /**\n * This property should not be used directly.\n * It will be used by v-model directive on the segmented control component\n */\n modelValue: {\n type: [String, Number],\n default: null,\n },\n /**\n * Disable the radio button (optional)\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n /**\n * Renders the button with a 100% width\n */\n fullWidth: {\n type: Boolean,\n default: false,\n },\n },\n emits: ['update:model-value'],\n setup(props, { emit }) {\n const segmentedControlButtonId = generateUid('segmented-control-button');\n const isChecked: ComputedRef<boolean> = computed(() => props.value === props.modelValue);\n const conditionalClasses = computed(() => ({\n 'b-segmented-control-button--hug-content': !props.fullWidth,\n 'b-segmented-control-button--full-width': props.fullWidth,\n }));\n const onClick = () => {\n if (!props.disabled) {\n emit('update:model-value', props.value);\n }\n };\n return {\n // Values\n segmentedControlButtonId,\n isChecked,\n conditionalClasses,\n // Methods\n onClick,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./segmented-control-button.scss\" />\n","export interface BentoSegmentedControlItem {\n label: string;\n value: string | number;\n disabled?: boolean;\n}\n\nexport enum BentoSegmentedControlEvent {\n UPDATE = 'update:model-value',\n}\n","<template>\n <div class=\"b-segmented-control__wrapper\">\n <bento-dropdown\n v-if=\"isSegmentedControlHidden\"\n :id=\"dropdownId\"\n :aria-hidden=\"isSegmentedControlVisible\"\n :value=\"modelValue\"\n :items=\"items\"\n :aria-label=\"computedAriaLabel\"\n @input=\"onInput\"\n />\n <fieldset\n ref=\"segmentedControlRef\"\n role=\"group\"\n class=\"b-segmented-control\"\n :class=\"conditionalClasses\"\n :aria-hidden=\"isSegmentedControlHidden\"\n >\n <segmented-control-button\n v-for=\"(item, index) in items\"\n :key=\"`segmented-control-item-${index}-${item.label}`\"\n class=\"b-segmented-control__item\"\n :label=\"item.label\"\n :value=\"item.value\"\n :disabled=\"item.disabled\"\n :full-width=\"fullWidth\"\n :model-value=\"inputValue\"\n @update:model-value=\"onInput\"\n ></segmented-control-button>\n </fieldset>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, onMounted, onUnmounted, PropType, ref, toRef, toRefs } from 'vue';\n import SegmentedControlButton from './components/segmented-control-button/segmented-control-button.vue';\n import { BentoSegmentedControlEvent, BentoSegmentedControlItem } from './segmented-control.types';\n import { BentoDropdown } from '@/components/dropdown';\n import { generateUid } from '@/utils/ts/unique-id';\n import { useI18n } from '@/utils/ts/i18n';\n import { useAriaLabel } from '@/utils/ts/aria-label';\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n /**\n * @example\n * import { BentoSegmentedControl } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoSegmentedControl },\n * template: `\n * <bento-segmented-control\n * :items=\"[{ label: 'Segment 1', value: 1 }, { label: 'Segment 2', value: 2 }, { label: 'Segment 3', value: 3, disabled: true }]\"\n * :model-value=\"1\"\n * :update:model-value=\"yourUpdateHandler\"\n * />\n * `\n * }\n */\n export default defineComponent({\n name: 'bento-segmented-control',\n i18n: { messages },\n components: { BentoDropdown, SegmentedControlButton },\n props: {\n /**\n * Items that will populate the segmented control.\n */\n items: {\n type: Array as PropType<BentoSegmentedControlItem[]>,\n required: true,\n validator: (arr: Array<BentoSegmentedControlItem[]>) => arr.length <= 5,\n },\n /**\n * Determines the selected value of the group. Corresponds to the BentoSegmentedControlItem's value.\n */\n modelValue: {\n type: [Number, String, null],\n required: true,\n },\n /**\n * @deprecated from version 2.0.0. Use the aria-label attribute instead.\n */\n /**\n * Accessible name describing the segmented control.\n */\n ariaLabel: {\n type: String,\n required: true,\n },\n /**\n * If set to true, renders the component full width.\n */\n fullWidth: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [BentoSegmentedControlEvent.UPDATE],\n setup(props, { attrs, emit }) {\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n\n const inputValue = toRef(props, 'modelValue');\n const dropdownId = generateUid('segmented-control-dropdown');\n const segmentedControlRef = ref(null);\n const isSegmentedControlVisible = ref(true);\n let observer: IntersectionObserver;\n\n onMounted(() => {\n const config = {\n root: null,\n // To prevent the observer from triggering on vertical intersection\n rootMargin: '100% 0% 100% 0%',\n threshold: 1,\n };\n observer = new IntersectionObserver(entries => {\n if (entries && entries.length) {\n if (entries[entries.length - 1].isIntersecting) {\n // The segmented control is still visible within the viewport\n isSegmentedControlVisible.value = true;\n } else {\n // The segmented control is not fully visible anymore in the viewport\n isSegmentedControlVisible.value = false;\n }\n }\n }, config);\n observer.observe(segmentedControlRef.value);\n });\n\n onUnmounted(() => {\n observer.disconnect();\n });\n\n const ariaLabelAttribute = ref(attrs['aria-label']);\n const { ariaLabel } = toRefs(props);\n const computedAriaLabel = useAriaLabel({\n ariaLabel: ariaLabelAttribute.value as string,\n // TODO: take this line away when the aria-label props is removed\n label: ariaLabel,\n defaultFallback: t('ariaLabelFallback'),\n });\n\n const isSegmentedControlHidden = computed(() => isSegmentedControlVisible.value === false);\n\n const conditionalClasses = computed(() => ({\n 'b-segmented-control--hidden': isSegmentedControlHidden.value,\n 'b-segmented-control--full-width': props.fullWidth,\n }));\n\n const onInput = value => {\n emit(BentoSegmentedControlEvent.UPDATE, value);\n };\n\n return {\n // Values\n computedAriaLabel,\n inputValue,\n dropdownId,\n segmentedControlRef,\n conditionalClasses,\n isSegmentedControlVisible,\n isSegmentedControlHidden,\n\n // Methods\n onInput,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./segmented-control.scss\" />\n"],"names":["_sfc_main$1","defineComponent","BentoTypography","CheckmarkIcon","props","emit","segmentedControlButtonId","generateUid","isChecked","computed","conditionalClasses","createElementVNode","_ctx","_hoisted_1$1","openBlock","createElementBlock","createBlock","_component_checkmark_icon","createCommentVNode","createVNode","_component_bento_typography","BentoSegmentedControlEvent","BentoSegmentedControlEvent2","_sfc_main","messages","BentoDropdown","SegmentedControlButton","arr","attrs","t","useI18n","inputValue","toRef","dropdownId","segmentedControlRef","ref","isSegmentedControlVisible","observer","onMounted","config","entries","onUnmounted","ariaLabelAttribute","ariaLabel","toRefs","computedAriaLabel","useAriaLabel","isSegmentedControlHidden","value","_component_segmented_control_button","resolveComponent","_component_bento_dropdown","normalizeClass","Fragment","renderList","item","index"],"mappings":"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"}