@adyen/bento-vue3 1.40.0 → 1.41.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 (140) hide show
  1. package/dist/@types/components.d.ts +6 -0
  2. package/dist/@types/packages/vue2/src/components/currency/currency.types.d.ts +18 -0
  3. package/dist/@types/packages/vue2/src/components/currency/currency.vue.d.ts +34 -211
  4. package/dist/@types/packages/vue2/src/components/data-grid/components/data-grid-columns/data-grid-columns.types.d.ts +0 -1
  5. package/dist/@types/packages/vue2/src/components/data-grid/components/data-grid-columns/data-grid-columns.vue.d.ts +1 -1
  6. package/dist/@types/packages/vue2/src/components/data-grid/composables/index.d.ts +1 -1
  7. package/dist/@types/packages/vue2/src/components/data-grid/composables/use-calculate-column-width/use-calculate-column-width.d.ts +1 -0
  8. package/dist/@types/packages/vue2/src/components/data-grid/composables/use-scroller/use-scroller.d.ts +10 -1
  9. package/dist/@types/packages/vue2/src/components/data-grid/composables/{use-selector.d.ts → use-selector/use-selector.d.ts} +2 -2
  10. package/dist/@types/packages/vue2/src/components/data-grid/composables/use-sorter.d.ts +1 -2
  11. package/dist/@types/packages/vue2/src/components/data-grid/data-grid.vue.d.ts +16 -1
  12. package/dist/@types/packages/vue2/src/components/image/image.vue.d.ts +43 -72
  13. package/dist/@types/packages/vue2/src/components/image/index.d.ts +1 -1
  14. package/dist/@types/packages/vue2/src/components/layout/components/layout-row/layout-row.vue.d.ts +54 -0
  15. package/dist/@types/packages/vue2/src/components/layout/index.d.ts +3 -0
  16. package/dist/@types/packages/vue2/src/components/layout/layout.keys.d.ts +1 -0
  17. package/dist/@types/packages/vue2/src/components/layout/layout.types.d.ts +19 -0
  18. package/dist/@types/packages/vue2/src/components/layout/layout.vue.d.ts +53 -0
  19. package/dist/@types/packages/vue2/src/components/promo-banner/__mock-image.d.ts +1 -0
  20. package/dist/@types/packages/vue2/src/components/promo-banner/index.d.ts +2 -0
  21. package/dist/@types/packages/vue2/src/components/promo-banner/promo-banner.types.d.ts +83 -0
  22. package/dist/@types/packages/vue2/src/components/promo-banner/promo-banner.vue.d.ts +65 -0
  23. package/dist/@types/packages/vue2/src/components/selection-card/components/selection-card-group/selection-card-group.types.d.ts +2 -0
  24. package/dist/@types/packages/vue2/src/components/selection-card/components/selection-card-group/selection-card-group.vue.d.ts +19 -4
  25. package/dist/@types/packages/vue2/src/components/structured-list/components/structered-list-item/structured-list-item.vue.d.ts +1 -3
  26. package/dist/@types/packages/vue2/src/components/structured-list/structured-list.vue.d.ts +1 -3
  27. package/dist/@types/packages/vue2/src/components/tutorial/components/tutorial-popover/tutorial-popover.vue.d.ts +4 -4
  28. package/dist/@types/packages/vue2/src/index.d.ts +2 -0
  29. package/dist/action-bar.js +1 -1
  30. package/dist/assets/accordion-item.css +1 -1
  31. package/dist/assets/action-bar.css +1 -1
  32. package/dist/assets/base-modal.css +1 -1
  33. package/dist/assets/card.css +1 -1
  34. package/dist/assets/currency.css +1 -1
  35. package/dist/assets/data-grid.css +1 -1
  36. package/dist/assets/dialog-page.css +1 -1
  37. package/dist/assets/inspector.css +1 -1
  38. package/dist/assets/layout-row.css +1 -0
  39. package/dist/assets/menu.css +1 -1
  40. package/dist/assets/modal-fullscreen.css +1 -1
  41. package/dist/assets/popover.css +1 -1
  42. package/dist/assets/promo-banner.css +1 -0
  43. package/dist/assets/selection-card-group.css +1 -1
  44. package/dist/assets/sidepanel.css +1 -1
  45. package/dist/assets/structured-list-item.css +1 -1
  46. package/dist/checkbox.js +2 -2
  47. package/dist/chunks/{action-bar.CNH2XWmk.js → action-bar.BZIBGja0.js} +2 -2
  48. package/dist/chunks/{action-bar.CNH2XWmk.js.map → action-bar.BZIBGja0.js.map} +1 -1
  49. package/dist/chunks/{checkbox-group.Bu6WRt6i.js → checkbox-group.Zf-GivDW.js} +2 -2
  50. package/dist/chunks/{checkbox-group.Bu6WRt6i.js.map → checkbox-group.Zf-GivDW.js.map} +1 -1
  51. package/dist/chunks/{checkbox.DfUxRkJe.js → checkbox.DdMkyTo5.js} +15 -15
  52. package/dist/chunks/{checkbox.DfUxRkJe.js.map → checkbox.DdMkyTo5.js.map} +1 -1
  53. package/dist/chunks/{code-snippet.DqTEK8cz.js → code-snippet.Dp_tDJ-S.js} +3 -3
  54. package/dist/chunks/{code-snippet.DqTEK8cz.js.map → code-snippet.Dp_tDJ-S.js.map} +1 -1
  55. package/dist/chunks/{currency.BGrGBnhm.js → currency.Dz2x17_Q.js} +57 -70
  56. package/dist/chunks/currency.Dz2x17_Q.js.map +1 -0
  57. package/dist/chunks/{dashboard-section.rv0r2_-a.js → dashboard-section.BdRXcY4u.js} +2 -2
  58. package/dist/chunks/{dashboard-section.rv0r2_-a.js.map → dashboard-section.BdRXcY4u.js.map} +1 -1
  59. package/dist/chunks/{data-grid.DR-w_KKU.js → data-grid.BC2tOBxm.js} +1329 -1276
  60. package/dist/chunks/data-grid.BC2tOBxm.js.map +1 -0
  61. package/dist/chunks/{date-picker.mfXjVZ9w.js → date-picker.B6HK0sb2.js} +14 -14
  62. package/dist/chunks/{date-picker.mfXjVZ9w.js.map → date-picker.B6HK0sb2.js.map} +1 -1
  63. package/dist/chunks/{date-range-picker.Cs8Ia3Qs.js → date-range-picker.3iWt1Cd6.js} +23 -23
  64. package/dist/chunks/{date-range-picker.Cs8Ia3Qs.js.map → date-range-picker.3iWt1Cd6.js.map} +1 -1
  65. package/dist/chunks/{dropdown-tag.DeoUXbp4.js → dropdown-tag.ChFJ9l5g.js} +2 -2
  66. package/dist/chunks/{dropdown-tag.DeoUXbp4.js.map → dropdown-tag.ChFJ9l5g.js.map} +1 -1
  67. package/dist/chunks/{dropdown.DBxpqjEM.js → dropdown.CMKdLPHi.js} +26 -26
  68. package/dist/chunks/{dropdown.DBxpqjEM.js.map → dropdown.CMKdLPHi.js.map} +1 -1
  69. package/dist/chunks/es6.b4enG1py.js +10 -0
  70. package/dist/chunks/es6.b4enG1py.js.map +1 -0
  71. package/dist/chunks/{filter-bar.DiW13x-f.js → filter-bar.pKcJryD3.js} +7 -7
  72. package/dist/chunks/{filter-bar.DiW13x-f.js.map → filter-bar.pKcJryD3.js.map} +1 -1
  73. package/dist/chunks/image.vue_vue_type_script_setup_true_lang.BMoSMeM-.js +47 -0
  74. package/dist/chunks/image.vue_vue_type_script_setup_true_lang.BMoSMeM-.js.map +1 -0
  75. package/dist/chunks/index.ChdIlujs.js +248 -0
  76. package/dist/chunks/{index.DKQuLmwu.js.map → index.ChdIlujs.js.map} +1 -1
  77. package/dist/chunks/{input-field.DbeVnbwg.js → input-field.Bk2p3kIb.js} +2 -2
  78. package/dist/chunks/{input-field.DbeVnbwg.js.map → input-field.Bk2p3kIb.js.map} +1 -1
  79. package/dist/chunks/layout-row.rzhGrBQ3.js +101 -0
  80. package/dist/chunks/layout-row.rzhGrBQ3.js.map +1 -0
  81. package/dist/chunks/{pagination.B-OihXTg.js → pagination.D_4FRHE9.js} +2 -2
  82. package/dist/chunks/{pagination.B-OihXTg.js.map → pagination.D_4FRHE9.js.map} +1 -1
  83. package/dist/chunks/promo-banner.BRn1iznD.js +126 -0
  84. package/dist/chunks/promo-banner.BRn1iznD.js.map +1 -0
  85. package/dist/chunks/{search-bar.DN-QKFlJ.js → search-bar.D_4u91te.js} +3 -3
  86. package/dist/chunks/{search-bar.DN-QKFlJ.js.map → search-bar.D_4u91te.js.map} +1 -1
  87. package/dist/chunks/{secondary-nav.C-7Qq6rE.js → secondary-nav.CQ3aLyrM.js} +4 -4
  88. package/dist/chunks/{secondary-nav.C-7Qq6rE.js.map → secondary-nav.CQ3aLyrM.js.map} +1 -1
  89. package/dist/chunks/selection-card-group.Du3Cwf47.js +474 -0
  90. package/dist/chunks/selection-card-group.Du3Cwf47.js.map +1 -0
  91. package/dist/chunks/{structured-list-item.BhNJlDub.js → structured-list-item.CujUEOTK.js} +3 -3
  92. package/dist/chunks/structured-list-item.CujUEOTK.js.map +1 -0
  93. package/dist/chunks/{timeline-item.CEolKFn0.js → timeline-item.B8VvkDfR.js} +2 -2
  94. package/dist/chunks/{timeline-item.CEolKFn0.js.map → timeline-item.B8VvkDfR.js.map} +1 -1
  95. package/dist/chunks/{tutorial.vue_vue_type_script_setup_true_lang.Bz6QyDuV.js → tutorial.vue_vue_type_script_setup_true_lang.CGpbGgfc.js} +9 -9
  96. package/dist/chunks/{tutorial.vue_vue_type_script_setup_true_lang.Bz6QyDuV.js.map → tutorial.vue_vue_type_script_setup_true_lang.CGpbGgfc.js.map} +1 -1
  97. package/dist/chunks/{use-cached-selected-values.C7Lt5U_S.js → use-cached-selected-values.DaRzXFIt.js} +2 -2
  98. package/dist/chunks/{use-cached-selected-values.C7Lt5U_S.js.map → use-cached-selected-values.DaRzXFIt.js.map} +1 -1
  99. package/dist/code-snippet.js +1 -1
  100. package/dist/currency.js +1 -1
  101. package/dist/dashboard-template.js +1 -1
  102. package/dist/data-grid.js +1 -1
  103. package/dist/date-picker.js +1 -1
  104. package/dist/date-range-picker.js +1 -1
  105. package/dist/dropdown.js +3 -3
  106. package/dist/filter-bar.js +1 -1
  107. package/dist/image.js +1 -1
  108. package/dist/index.js +197 -190
  109. package/dist/index.js.map +1 -1
  110. package/dist/input-field.js +1 -1
  111. package/dist/internal.js +1 -1
  112. package/dist/layout.js +6 -0
  113. package/dist/layout.js.map +1 -0
  114. package/dist/pagination.js +1 -1
  115. package/dist/promo-banner.js +7 -0
  116. package/dist/promo-banner.js.map +1 -0
  117. package/dist/search-bar.js +2 -2
  118. package/dist/secondary-nav.js +1 -1
  119. package/dist/selection-card.js +1 -1
  120. package/dist/structured-list.js +1 -1
  121. package/dist/styles/bento-dark.css +16 -0
  122. package/dist/styles/bento-light.css +16 -0
  123. package/dist/styles/bento.css +16 -0
  124. package/dist/styles/legacy.css +16 -0
  125. package/dist/styles/styleguide.css +16 -0
  126. package/dist/timeline.js +1 -1
  127. package/dist/tutorial.js +1 -1
  128. package/dist/web-types.json +1 -1
  129. package/package.json +2 -2
  130. package/dist/@types/packages/vue2/src/components/image/image.types.d.ts +0 -19
  131. package/dist/chunks/currency.BGrGBnhm.js.map +0 -1
  132. package/dist/chunks/data-grid.DR-w_KKU.js.map +0 -1
  133. package/dist/chunks/es6.BvpG4Oi6.js +0 -9
  134. package/dist/chunks/es6.BvpG4Oi6.js.map +0 -1
  135. package/dist/chunks/image.0KzfycGE.js +0 -78
  136. package/dist/chunks/image.0KzfycGE.js.map +0 -1
  137. package/dist/chunks/index.DKQuLmwu.js +0 -182
  138. package/dist/chunks/selection-card-group.DkSYInMF.js +0 -392
  139. package/dist/chunks/selection-card-group.DkSYInMF.js.map +0 -1
  140. package/dist/chunks/structured-list-item.BhNJlDub.js.map +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../vue2/src/composables/use-form-validate/use-form.ts","../../vue2/src/composables/use-bento-theme/use-bento-theme.types.ts","../../vue2/src/composables/use-bento-theme/use-bento-theme.ts","../../vue2/src/composables/use-bento-toast-controller/install.ts","../../vue2/src/composables/use-bento-theme/install.ts","../../vue2/src/install.ts"],"sourcesContent":["import { type Ref, ref, type ShallowRef, shallowRef } from 'vue';\nimport * as z from 'zod';\nimport type { ZodSchema } from 'zod';\nimport { ErrorBag, UseForm } from './use-form.types';\n\n/**\n * Composable that tansforms a Zod schema into a Typed Schema that can be used alongside with {@see useForm}.\n *\n * This is meant to simulate the behavior of {@link @vee-validate/zod} {@see https://vee-validate.logaretm.com/v4/integrations/zod-schema-validation}.\n * Function that transform Zod’s schemas into something that can be understood by vee-validate\n *\n * @param {T extends ZodSchema} formSchema Zod schema to be transformed into a `vee-validate` schema\n * @returns {UseForm<T>} schema Schema transformed\n */\nexport function toTypedSchema<T extends ZodSchema>(formSchema: T) {\n return formSchema;\n}\n\n/**\n * Finds and returns the initial values of each of the values defined in the schema so that they\n * can be transformed into a reactive element.\n * @param {ZodSchema} schema Zod validation schema containing the definitions of each value to be used in the form\n * @returns Object with the items defined in the schema and their (default) values\n *\n * @example\n * const validationSchema = toTypedSchema(\n * z.object({\n * name: z\n * .string()\n * .min(3, { message: 'Name is required' })\n * .startsWith('Jane')\n * .max(4, { message: 'Name cannot be longer than 4 characters' })\n * .default('Joe'),\n * })\n * );\n * getInitialFormValues(validationSchema)\n *\n * Will return:\n *\n * {\n * name: 'Joe'\n * }\n *\n */\nfunction getInitialFormValues<T extends ZodSchema>(schema: T): z.infer<typeof schema> {\n if (!!z && schema instanceof z.ZodObject) {\n return Object.fromEntries(\n Object.entries(schema.shape).map(([key, value]) => {\n if (!!z && value instanceof z.ZodDefault) {\n // eslint-disable-next-line no-underscore-dangle\n return [key, value._def.defaultValue()];\n }\n\n if (!!z && value instanceof z.ZodObject) {\n return [key, getInitialFormValues(value)];\n }\n\n return [key, undefined];\n })\n ) as z.infer<typeof schema>;\n }\n\n return undefined;\n}\n\n/**\n * Constructs a path with dot paths for arrays to use brackets to be compatible with vee-validate path syntax\n * @param issue List of nested path elements\n * @returns Path with dots\n */\nfunction normalizeFormPath(issue: z.ZodIssue) {\n return issue.path.join('.');\n}\n\n/**\n * Composable that facilitates validating form data for Vue2 & Vue3 implementations with FormLayout\n * to ease the migration to Vue3.\n *\n * For Vue3 implementations use Vee-Validate.\n *\n * This provides a simplified version of Vee-Validate v4 implemented with Zod to validate a form schema.\n * It returns reactive values that can be used directly in form input elements with 'v-model' alongside\n * with functions to \"reset\" the data (sets values to default value) and a function to execute the\n * successful form validation process (through a callback).\n *\n * @param {UseForm<T>} props Form configuration object\n * @param {T extends ZodSchema} props.validationSchema Zod typed validation schema\n * @returns {Object} response - Composable with reactive form values and errors, and functions to handle the reactive data\n * @returns {Ref<ErrorBag<T>>} response.errorBag Object with all the form values and an array of each one of the errors (if any) per value\n * @returns {Ref<T>} response.errors Object with all the form values and the first error found for that field (if any)\n * @returns {Ref<T>} response.values Object with all the form values and their current value\n * @returns {() => void} response.handleReset Resets the form values to default (initial values) when it gets called\n * @returns {(callback: (values: T) => void) => () => void} response.submitForm Validates the data set in {response.values} and sets errors (if found) inside {response.errors} and {response.errorBag}.\n * When the validation is successful it calls the callback so the submit process can continue\n *\n * @example\n * const validationSchema = toTypedSchema(\n * z.object({\n * name: z\n * .string()\n * .min(3, { message: 'Name is required' })\n * .startsWith('Jane')\n * .max(4, { message: 'Name cannot be longer than 4 characters' })\n * .default('Joe'),\n * })\n * );\n *\n * const { values, errors, errorBag, submitForm, handleReset } = useForm({\n * validationSchema\n * });\n * const handleSubmit = submitForm(() => {\n * // Send data to API here\n * })\n *\n */\nexport function useForm<T extends ZodSchema>({\n validationSchema,\n}: UseForm<T>): {\n errorBag: Ref<ErrorBag<z.TypeOf<T>>>;\n errors: Ref<z.TypeOf<T>> | ShallowRef<z.TypeOf<T>>;\n values: Ref<z.TypeOf<T>>;\n handleReset: () => void;\n submitForm: (submitted: any) => () => void;\n} {\n // Errors per field\n const errors = shallowRef<z.infer<typeof validationSchema>>({});\n // All errors per field\n const errorBag: Ref<ErrorBag<z.infer<typeof validationSchema>>> = ref({});\n const values: Ref<z.TypeOf<T>> = ref(getInitialFormValues<T>(validationSchema));\n\n const cleanErrors = () => {\n errors.value = {};\n errorBag.value = {};\n };\n\n const resetForm = () => {\n cleanErrors();\n values.value = getInitialFormValues<T>(validationSchema);\n };\n\n const submitForm = submitted => () => {\n cleanErrors();\n\n // Run validations on the form data through the schema\n const validSchema = validationSchema.safeParse(values.value);\n\n // Update errors\n if (!validSchema.success) {\n (validSchema as z.SafeParseError<T>).error.issues.forEach(error => {\n const path = normalizeFormPath(error);\n\n // Add the first ocurrance of a fild error to the \"errors\" object\n if (!errors.value[path]) {\n errors.value[path] = error.message;\n }\n\n // Add each error to the \"errorBag\" per field array\n if (!errorBag.value[path]) {\n errorBag.value[path] = [error.message];\n } else {\n errorBag.value[path].push(error.message);\n }\n });\n } else {\n submitted(values.value);\n }\n };\n\n return {\n // Values\n errorBag,\n errors,\n values,\n\n // Methods\n handleReset: () => resetForm(),\n submitForm,\n };\n}\n","import { BentoTheme } from './install';\n\nexport const useBentoThemeKey = Symbol('use-bento-theme');\n\nexport interface UseBentoTheme {\n getTheme: () => string;\n setTheme: (theme: BentoTheme | `${BentoTheme}`) => void;\n}\n","import { printDevelopmentWarning } from '@/utils/ts/print-development-warning';\nimport { getCurrentInstance, inject } from 'vue';\nimport { isVue2 } from 'vue-demi';\nimport { UseBentoTheme, useBentoThemeKey } from './use-bento-theme.types';\n\n/**\n * Composable that handles theming-related capabilities for the Bento component library.\n * Requires the use of `BentoPlugin`.\n *\n * @example\n * <script setup lang=\"ts\">\n * import { useBentoTheme, BentoTheme } from '@adyen/bento-vue2';\n *\n * const { setTheme } = useBentoTheme();\n *\n * setTheme(BentoTheme.BENTO_DARK)\n * </script>\n *\n * @returns {UseBentoTheme} An object with getter and setter method for the Bento theme.\n * @returns {Function} getTheme - Returns the current theme in the string form of BentoTheme enum.\n * @returns {Function} setTheme - Sets the theme of the Bento component library.\n *\n */\nexport function useBentoTheme(): UseBentoTheme {\n const bentoThemeController = isVue2\n ? getCurrentInstance()?.proxy[useBentoThemeKey]\n : inject(useBentoThemeKey, null);\n\n if (!bentoThemeController) {\n printDevelopmentWarning('useBentoTheme does not work without Vue.use(BentoPlugin)');\n\n // Return placeholder functions so client code won't break, but theme won't toggle\n return {\n getTheme: () => undefined,\n setTheme: () => undefined,\n };\n }\n\n // Return a new object so unintentional reassigning its properties won't override a global state\n return { ...bentoThemeController };\n}\n","import { type App, isVue2, type Vue2 } from 'vue-demi';\nimport { createToastStack, toastStackInjectionKey } from './toast-stack';\n\n/**\n * This function is used to create and register global reactive state necessary fro the Toasts to operate.\n * @param {Vue} Vue A context application to register global state with.\n */\nexport default Vue => {\n if (isVue2) {\n // Add toast stack as a global property as there is no \"app.provide\" functionality in Vue2\n // eslint-disable-next-line no-param-reassign -- this is an official way of setting up instance properties on Vue\n (Vue as typeof Vue2).prototype[toastStackInjectionKey] = createToastStack();\n } else {\n (Vue as App).provide(toastStackInjectionKey, createToastStack());\n }\n};\n","import { type App, isVue2, type Vue2 } from 'vue-demi';\nimport { useBentoThemeKey } from './use-bento-theme.types';\n\nconst getTheme = () => document.body.className.match(/b-\\w+-theme/)?.[0] ?? '';\nconst getThemeForSystemPreference = () => {\n const preferredDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches;\n\n if (preferredDarkMode) {\n return BentoTheme.BENTO_DARK;\n }\n\n return BentoTheme.BENTO_LIGHT;\n};\n\nexport enum BentoTheme {\n LEGACY = 'b-legacy-theme',\n STYLEGUIDE = 'b-styleguide-theme',\n\n /**\n * @deprecated in favor of {@link BENTO_LIGHT}. To be removed in v2.0.0.\n */\n BENTO = '',\n\n BENTO_LIGHT = 'b-light-theme',\n BENTO_DARK = 'b-dark-theme',\n BENTO_SYSTEM = 'b-system',\n}\n\nexport const setTheme = (theme: BentoTheme) => {\n const currentTheme = getTheme();\n const systemTheme = getThemeForSystemPreference();\n const themeToSet = theme === BentoTheme.BENTO_SYSTEM ? systemTheme : theme;\n\n if (themeToSet === BentoTheme.BENTO_LIGHT || themeToSet === BentoTheme.BENTO) {\n document.documentElement.style.colorScheme = 'light';\n } else if (themeToSet === BentoTheme.BENTO_DARK) {\n document.documentElement.style.colorScheme = 'dark';\n }\n\n // if theme is different from current and it is not `BentoTheme.BENTO`\n if (currentTheme.length && currentTheme !== themeToSet) {\n document.body.classList.remove(currentTheme);\n }\n\n // if theme is not `BentoTheme.BENTO`\n if (themeToSet.length) {\n document.body.classList.add(themeToSet);\n }\n};\n\n/**\n * This function is used to create and register global reactive state necessary for theme to operate.\n * @param {Vue} Vue A context application to register global state with.\n */\nexport default Vue => {\n const themeProvider = {\n getTheme,\n setTheme,\n };\n\n if (isVue2) {\n // Add theme as a global property as there is no \"app.provide\" functionality in Vue2\n // eslint-disable-next-line no-param-reassign -- this is an official way of setting up instance properties on Vue\n (Vue as typeof Vue2).prototype[useBentoThemeKey] = themeProvider;\n } else {\n (Vue as App).provide(useBentoThemeKey, themeProvider);\n }\n};\n","import type { PluginObject } from 'vue';\nimport installToast from './composables/use-bento-toast-controller/install';\nimport installTheme, { BentoTheme, setTheme } from './composables/use-bento-theme/install';\nimport { deprecate } from './utils/ts/deprecate';\n\ninterface BentoVuePlugin {\n theme?: BentoTheme;\n withToast?: boolean;\n withUtilityClasses?: boolean;\n withDesignTokensCSSInjection?: boolean;\n}\n\nconst plugin: PluginObject<BentoVuePlugin> = {\n name: 'BentoVue',\n install: async (\n Vue,\n {\n theme = BentoTheme.BENTO_LIGHT,\n withToast = false,\n withUtilityClasses = false,\n withDesignTokensCSSInjection = true,\n }: BentoVuePlugin\n ) => {\n installTheme(Vue);\n\n if (withToast) {\n installToast(Vue);\n }\n if (withDesignTokensCSSInjection) {\n deprecate(\n 'Using default setting withDesignTokensCSSInjection set to true in BentoVue plugin',\n 'Please disable CSS injection by setting withDesignTokensCSSInjection to false in BentoVue plugin options as highlighted here:\\nhttps://adyen-bento.netlify.app/?path=/docs/welcome-getting-started--docs#import-css-variables',\n '2.0.0'\n );\n // Make sure to put all awaited CSS imports below this point and not above!\n if (theme === BentoTheme.LEGACY) {\n await import('@adyen/bento-design-tokens/dist/css/bento/variables-legacy.css');\n } else if (theme === BentoTheme.STYLEGUIDE) {\n await import('@adyen/bento-design-tokens/dist/css/bento/variables-styleguide.css');\n } else {\n await import('@adyen/bento-design-tokens/dist/css/bento/variables.css');\n }\n\n if (withUtilityClasses) {\n await import('@adyen/bento-design-tokens/dist/css/bento/utility.css');\n }\n }\n\n if (theme === BentoTheme.LEGACY) {\n setTheme(BentoTheme.LEGACY);\n } else if (theme === BentoTheme.STYLEGUIDE) {\n setTheme(BentoTheme.STYLEGUIDE);\n } else if (theme === BentoTheme.BENTO_SYSTEM) {\n setTheme(BentoTheme.BENTO_SYSTEM);\n } else if (theme === BentoTheme.BENTO_DARK) {\n setTheme(BentoTheme.BENTO_DARK);\n } else if (theme === BentoTheme.BENTO) {\n deprecate('Using `BentoTheme.BENTO`', 'Please use `BentoTheme.BENTO_LIGHT` instead', '2.0.0');\n setTheme(BentoTheme.BENTO_LIGHT);\n } else {\n setTheme(BentoTheme.BENTO_LIGHT);\n }\n },\n};\n\nexport { BentoTheme };\nexport default plugin;\n"],"names":["toTypedSchema","formSchema","getInitialFormValues","schema","z","key","value","normalizeFormPath","issue","useForm","validationSchema","errors","shallowRef","errorBag","ref","values","cleanErrors","resetForm","validSchema","submitted","error","path","useBentoThemeKey","useBentoTheme","bentoThemeController","inject","printDevelopmentWarning","installToast","Vue","toastStackInjectionKey","createToastStack","getTheme","_a","getThemeForSystemPreference","BentoTheme","setTheme","theme","currentTheme","systemTheme","themeToSet","installTheme","themeProvider","plugin","withToast","withUtilityClasses","withDesignTokensCSSInjection","deprecate"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../vue2/src/composables/use-form-validate/use-form.ts","../../vue2/src/composables/use-bento-theme/use-bento-theme.types.ts","../../vue2/src/composables/use-bento-theme/use-bento-theme.ts","../../vue2/src/composables/use-bento-toast-controller/install.ts","../../vue2/src/composables/use-bento-theme/install.ts","../../vue2/src/install.ts"],"sourcesContent":["import { type Ref, ref, type ShallowRef, shallowRef } from 'vue';\nimport * as z from 'zod';\nimport type { ZodSchema } from 'zod';\nimport { ErrorBag, UseForm } from './use-form.types';\n\n/**\n * Composable that tansforms a Zod schema into a Typed Schema that can be used alongside with {@see useForm}.\n *\n * This is meant to simulate the behavior of {@link @vee-validate/zod} {@see https://vee-validate.logaretm.com/v4/integrations/zod-schema-validation}.\n * Function that transform Zod’s schemas into something that can be understood by vee-validate\n *\n * @param {T extends ZodSchema} formSchema Zod schema to be transformed into a `vee-validate` schema\n * @returns {UseForm<T>} schema Schema transformed\n */\nexport function toTypedSchema<T extends ZodSchema>(formSchema: T) {\n return formSchema;\n}\n\n/**\n * Finds and returns the initial values of each of the values defined in the schema so that they\n * can be transformed into a reactive element.\n * @param {ZodSchema} schema Zod validation schema containing the definitions of each value to be used in the form\n * @returns Object with the items defined in the schema and their (default) values\n *\n * @example\n * const validationSchema = toTypedSchema(\n * z.object({\n * name: z\n * .string()\n * .min(3, { message: 'Name is required' })\n * .startsWith('Jane')\n * .max(4, { message: 'Name cannot be longer than 4 characters' })\n * .default('Joe'),\n * })\n * );\n * getInitialFormValues(validationSchema)\n *\n * Will return:\n *\n * {\n * name: 'Joe'\n * }\n *\n */\nfunction getInitialFormValues<T extends ZodSchema>(schema: T): z.infer<typeof schema> {\n if (!!z && schema instanceof z.ZodObject) {\n return Object.fromEntries(\n Object.entries(schema.shape).map(([key, value]) => {\n if (!!z && value instanceof z.ZodDefault) {\n // eslint-disable-next-line no-underscore-dangle\n return [key, value._def.defaultValue()];\n }\n\n if (!!z && value instanceof z.ZodObject) {\n return [key, getInitialFormValues(value)];\n }\n\n return [key, undefined];\n })\n ) as z.infer<typeof schema>;\n }\n\n return undefined;\n}\n\n/**\n * Constructs a path with dot paths for arrays to use brackets to be compatible with vee-validate path syntax\n * @param issue List of nested path elements\n * @returns Path with dots\n */\nfunction normalizeFormPath(issue: z.ZodIssue) {\n return issue.path.join('.');\n}\n\n/**\n * Composable that facilitates validating form data for Vue2 & Vue3 implementations with FormLayout\n * to ease the migration to Vue3.\n *\n * For Vue3 implementations use Vee-Validate.\n *\n * This provides a simplified version of Vee-Validate v4 implemented with Zod to validate a form schema.\n * It returns reactive values that can be used directly in form input elements with 'v-model' alongside\n * with functions to \"reset\" the data (sets values to default value) and a function to execute the\n * successful form validation process (through a callback).\n *\n * @param {UseForm<T>} props Form configuration object\n * @param {T extends ZodSchema} props.validationSchema Zod typed validation schema\n * @returns {Object} response - Composable with reactive form values and errors, and functions to handle the reactive data\n * @returns {Ref<ErrorBag<T>>} response.errorBag Object with all the form values and an array of each one of the errors (if any) per value\n * @returns {Ref<T>} response.errors Object with all the form values and the first error found for that field (if any)\n * @returns {Ref<T>} response.values Object with all the form values and their current value\n * @returns {() => void} response.handleReset Resets the form values to default (initial values) when it gets called\n * @returns {(callback: (values: T) => void) => () => void} response.submitForm Validates the data set in {response.values} and sets errors (if found) inside {response.errors} and {response.errorBag}.\n * When the validation is successful it calls the callback so the submit process can continue\n *\n * @example\n * const validationSchema = toTypedSchema(\n * z.object({\n * name: z\n * .string()\n * .min(3, { message: 'Name is required' })\n * .startsWith('Jane')\n * .max(4, { message: 'Name cannot be longer than 4 characters' })\n * .default('Joe'),\n * })\n * );\n *\n * const { values, errors, errorBag, submitForm, handleReset } = useForm({\n * validationSchema\n * });\n * const handleSubmit = submitForm(() => {\n * // Send data to API here\n * })\n *\n */\nexport function useForm<T extends ZodSchema>({\n validationSchema,\n}: UseForm<T>): {\n errorBag: Ref<ErrorBag<z.TypeOf<T>>>;\n errors: Ref<z.TypeOf<T>> | ShallowRef<z.TypeOf<T>>;\n values: Ref<z.TypeOf<T>>;\n handleReset: () => void;\n submitForm: (submitted: any) => () => void;\n} {\n // Errors per field\n const errors = shallowRef<z.infer<typeof validationSchema>>({});\n // All errors per field\n const errorBag: Ref<ErrorBag<z.infer<typeof validationSchema>>> = ref({});\n const values: Ref<z.TypeOf<T>> = ref(getInitialFormValues<T>(validationSchema));\n\n const cleanErrors = () => {\n errors.value = {};\n errorBag.value = {};\n };\n\n const resetForm = () => {\n cleanErrors();\n values.value = getInitialFormValues<T>(validationSchema);\n };\n\n const submitForm = submitted => () => {\n cleanErrors();\n\n // Run validations on the form data through the schema\n const validSchema = validationSchema.safeParse(values.value);\n\n // Update errors\n if (!validSchema.success) {\n (validSchema as z.SafeParseError<T>).error.issues.forEach(error => {\n const path = normalizeFormPath(error);\n\n // Add the first ocurrance of a fild error to the \"errors\" object\n if (!errors.value[path]) {\n errors.value[path] = error.message;\n }\n\n // Add each error to the \"errorBag\" per field array\n if (!errorBag.value[path]) {\n errorBag.value[path] = [error.message];\n } else {\n errorBag.value[path].push(error.message);\n }\n });\n } else {\n submitted(values.value);\n }\n };\n\n return {\n // Values\n errorBag,\n errors,\n values,\n\n // Methods\n handleReset: () => resetForm(),\n submitForm,\n };\n}\n","import { BentoTheme } from './install';\n\nexport const useBentoThemeKey = Symbol('use-bento-theme');\n\nexport interface UseBentoTheme {\n getTheme: () => string;\n setTheme: (theme: BentoTheme | `${BentoTheme}`) => void;\n}\n","import { printDevelopmentWarning } from '@/utils/ts/print-development-warning';\nimport { getCurrentInstance, inject } from 'vue';\nimport { isVue2 } from 'vue-demi';\nimport { UseBentoTheme, useBentoThemeKey } from './use-bento-theme.types';\n\n/**\n * Composable that handles theming-related capabilities for the Bento component library.\n * Requires the use of `BentoPlugin`.\n *\n * @example\n * <script setup lang=\"ts\">\n * import { useBentoTheme, BentoTheme } from '@adyen/bento-vue2';\n *\n * const { setTheme } = useBentoTheme();\n *\n * setTheme(BentoTheme.BENTO_DARK)\n * </script>\n *\n * @returns {UseBentoTheme} An object with getter and setter method for the Bento theme.\n * @returns {Function} getTheme - Returns the current theme in the string form of BentoTheme enum.\n * @returns {Function} setTheme - Sets the theme of the Bento component library.\n *\n */\nexport function useBentoTheme(): UseBentoTheme {\n const bentoThemeController = isVue2\n ? getCurrentInstance()?.proxy[useBentoThemeKey]\n : inject(useBentoThemeKey, null);\n\n if (!bentoThemeController) {\n printDevelopmentWarning('useBentoTheme does not work without Vue.use(BentoPlugin)');\n\n // Return placeholder functions so client code won't break, but theme won't toggle\n return {\n getTheme: () => undefined,\n setTheme: () => undefined,\n };\n }\n\n // Return a new object so unintentional reassigning its properties won't override a global state\n return { ...bentoThemeController };\n}\n","import { type App, isVue2, type Vue2 } from 'vue-demi';\nimport { createToastStack, toastStackInjectionKey } from './toast-stack';\n\n/**\n * This function is used to create and register global reactive state necessary fro the Toasts to operate.\n * @param {Vue} Vue A context application to register global state with.\n */\nexport default Vue => {\n if (isVue2) {\n // Add toast stack as a global property as there is no \"app.provide\" functionality in Vue2\n // eslint-disable-next-line no-param-reassign -- this is an official way of setting up instance properties on Vue\n (Vue as typeof Vue2).prototype[toastStackInjectionKey] = createToastStack();\n } else {\n (Vue as App).provide(toastStackInjectionKey, createToastStack());\n }\n};\n","import { type App, isVue2, type Vue2 } from 'vue-demi';\nimport { useBentoThemeKey } from './use-bento-theme.types';\n\nconst getTheme = () => document.body.className.match(/b-\\w+-theme/)?.[0] ?? '';\nconst getThemeForSystemPreference = () => {\n const preferredDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches;\n\n if (preferredDarkMode) {\n return BentoTheme.BENTO_DARK;\n }\n\n return BentoTheme.BENTO_LIGHT;\n};\n\nexport enum BentoTheme {\n LEGACY = 'b-legacy-theme',\n STYLEGUIDE = 'b-styleguide-theme',\n\n /**\n * @deprecated in favor of {@link BENTO_LIGHT}. To be removed in v2.0.0.\n */\n BENTO = '',\n\n BENTO_LIGHT = 'b-light-theme',\n BENTO_DARK = 'b-dark-theme',\n BENTO_SYSTEM = 'b-system',\n}\n\nexport const setTheme = (theme: BentoTheme) => {\n const currentTheme = getTheme();\n const systemTheme = getThemeForSystemPreference();\n const themeToSet = theme === BentoTheme.BENTO_SYSTEM ? systemTheme : theme;\n\n if (themeToSet === BentoTheme.BENTO_LIGHT || themeToSet === BentoTheme.BENTO) {\n document.documentElement.style.colorScheme = 'light';\n } else if (themeToSet === BentoTheme.BENTO_DARK) {\n document.documentElement.style.colorScheme = 'dark';\n }\n\n // if theme is different from current and it is not `BentoTheme.BENTO`\n if (currentTheme.length && currentTheme !== themeToSet) {\n document.body.classList.remove(currentTheme);\n }\n\n // if theme is not `BentoTheme.BENTO`\n if (themeToSet.length) {\n document.body.classList.add(themeToSet);\n }\n};\n\n/**\n * This function is used to create and register global reactive state necessary for theme to operate.\n * @param {Vue} Vue A context application to register global state with.\n */\nexport default Vue => {\n const themeProvider = {\n getTheme,\n setTheme,\n };\n\n if (isVue2) {\n // Add theme as a global property as there is no \"app.provide\" functionality in Vue2\n // eslint-disable-next-line no-param-reassign -- this is an official way of setting up instance properties on Vue\n (Vue as typeof Vue2).prototype[useBentoThemeKey] = themeProvider;\n } else {\n (Vue as App).provide(useBentoThemeKey, themeProvider);\n }\n};\n","import type { PluginObject } from 'vue';\nimport installToast from './composables/use-bento-toast-controller/install';\nimport installTheme, { BentoTheme, setTheme } from './composables/use-bento-theme/install';\nimport { deprecate } from './utils/ts/deprecate';\n\ninterface BentoVuePlugin {\n theme?: BentoTheme;\n withToast?: boolean;\n withUtilityClasses?: boolean;\n withDesignTokensCSSInjection?: boolean;\n}\n\nconst plugin: PluginObject<BentoVuePlugin> = {\n name: 'BentoVue',\n install: async (\n Vue,\n {\n theme = BentoTheme.BENTO_LIGHT,\n withToast = false,\n withUtilityClasses = false,\n withDesignTokensCSSInjection = true,\n }: BentoVuePlugin\n ) => {\n installTheme(Vue);\n\n if (withToast) {\n installToast(Vue);\n }\n if (withDesignTokensCSSInjection) {\n deprecate(\n 'Using default setting withDesignTokensCSSInjection set to true in BentoVue plugin',\n 'Please disable CSS injection by setting withDesignTokensCSSInjection to false in BentoVue plugin options as highlighted here:\\nhttps://adyen-bento.netlify.app/?path=/docs/welcome-getting-started--docs#import-css-variables',\n '2.0.0'\n );\n // Make sure to put all awaited CSS imports below this point and not above!\n if (theme === BentoTheme.LEGACY) {\n await import('@adyen/bento-design-tokens/dist/css/bento/variables-legacy.css');\n } else if (theme === BentoTheme.STYLEGUIDE) {\n await import('@adyen/bento-design-tokens/dist/css/bento/variables-styleguide.css');\n } else {\n await import('@adyen/bento-design-tokens/dist/css/bento/variables.css');\n }\n\n if (withUtilityClasses) {\n await import('@adyen/bento-design-tokens/dist/css/bento/utility.css');\n }\n }\n\n if (theme === BentoTheme.LEGACY) {\n setTheme(BentoTheme.LEGACY);\n } else if (theme === BentoTheme.STYLEGUIDE) {\n setTheme(BentoTheme.STYLEGUIDE);\n } else if (theme === BentoTheme.BENTO_SYSTEM) {\n setTheme(BentoTheme.BENTO_SYSTEM);\n } else if (theme === BentoTheme.BENTO_DARK) {\n setTheme(BentoTheme.BENTO_DARK);\n } else if (theme === BentoTheme.BENTO) {\n deprecate('Using `BentoTheme.BENTO`', 'Please use `BentoTheme.BENTO_LIGHT` instead', '2.0.0');\n setTheme(BentoTheme.BENTO_LIGHT);\n } else {\n setTheme(BentoTheme.BENTO_LIGHT);\n }\n },\n};\n\nexport { BentoTheme };\nexport default plugin;\n"],"names":["toTypedSchema","formSchema","getInitialFormValues","schema","z","key","value","normalizeFormPath","issue","useForm","validationSchema","errors","shallowRef","errorBag","ref","values","cleanErrors","resetForm","validSchema","submitted","error","path","useBentoThemeKey","useBentoTheme","bentoThemeController","inject","printDevelopmentWarning","installToast","Vue","toastStackInjectionKey","createToastStack","getTheme","_a","getThemeForSystemPreference","BentoTheme","setTheme","theme","currentTheme","systemTheme","themeToSet","installTheme","themeProvider","plugin","withToast","withUtilityClasses","withDesignTokensCSSInjection","deprecate"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { B as n, b as a, e as o, c as i, d as s, a as l } from "./chunks/input-field.DbeVnbwg.js";
1
+ import { B as n, b as a, e as o, c as i, d as s, a as l } from "./chunks/input-field.Bk2p3kIb.js";
2
2
  export {
3
3
  n as BentoInputField,
4
4
  a as BentoInputFieldElementPosition,
package/dist/internal.js CHANGED
@@ -5,7 +5,7 @@ import { B as m, b as n, a as f, D as E } from "./chunks/dialog-page.CnDOg98_.js
5
5
  import { E as d, F as I } from "./chunks/error-message.CmMyB-k9.js";
6
6
  import { F as T } from "./chunks/fixed-scroller.DM2JOokC.js";
7
7
  import { G as u, a as O } from "./chunks/grid-layout.CqLbbEzI.js";
8
- import { b as g, c as y, u as A } from "./chunks/use-cached-selected-values.C7Lt5U_S.js";
8
+ import { b as g, c as y, u as A } from "./chunks/use-cached-selected-values.DaRzXFIt.js";
9
9
  import { L as F } from "./chunks/listbox-option-tag.58u_cWFs.js";
10
10
  import { B as N } from "./chunks/teleport.L8qFCYpr.js";
11
11
  import { T as c } from "./chunks/tooltip.BEl_LdFo.js";
package/dist/layout.js ADDED
@@ -0,0 +1,6 @@
1
+ import { l as t, a as e } from "./chunks/layout-row.rzhGrBQ3.js";
2
+ export {
3
+ t as BentoLayout,
4
+ e as BentoLayoutRow
5
+ };
6
+ //# sourceMappingURL=layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1,4 +1,4 @@
1
- import { B as n } from "./chunks/pagination.B-OihXTg.js";
1
+ import { B as n } from "./chunks/pagination.D_4FRHE9.js";
2
2
  export {
3
3
  n as BentoPagination
4
4
  };
@@ -0,0 +1,7 @@
1
+ import { p as r, B as a, a as e } from "./chunks/promo-banner.BRn1iznD.js";
2
+ export {
3
+ r as BentoPromoBanner,
4
+ a as BentoPromoBannerColor,
5
+ e as BentoPromoBannerLayout
6
+ };
7
+ //# sourceMappingURL=promo-banner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promo-banner.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1,5 +1,5 @@
1
- import { B as r, b as t, a as B } from "./chunks/search-bar.DN-QKFlJ.js";
2
- import { u as o } from "./chunks/dropdown.DBxpqjEM.js";
1
+ import { B as r, b as t, a as B } from "./chunks/search-bar.D_4u91te.js";
2
+ import { u as o } from "./chunks/dropdown.CMKdLPHi.js";
3
3
  export {
4
4
  r as BentoSearchBar,
5
5
  t as BentoSearchBarEvent,
@@ -1,4 +1,4 @@
1
- import { s as e } from "./chunks/secondary-nav.C-7Qq6rE.js";
1
+ import { s as e } from "./chunks/secondary-nav.CQ3aLyrM.js";
2
2
  export {
3
3
  e as BentoSecondaryNav
4
4
  };
@@ -1,4 +1,4 @@
1
- import { B as t, s as a, a as n } from "./chunks/selection-card-group.DkSYInMF.js";
1
+ import { B as t, s as a, a as n } from "./chunks/selection-card-group.Du3Cwf47.js";
2
2
  export {
3
3
  t as BentoSelectionCard,
4
4
  a as BentoSelectionCardGroup,
@@ -1,4 +1,4 @@
1
- import { B as r, a as o } from "./chunks/structured-list-item.BhNJlDub.js";
1
+ import { B as r, a as o } from "./chunks/structured-list-item.CujUEOTK.js";
2
2
  export {
3
3
  r as BentoStructuredList,
4
4
  o as BentoStructuredListItem
@@ -786,6 +786,15 @@
786
786
  --b-radio-button-space-around-increase: var(--b-spacer-020);
787
787
  --b-radio-button-border-radius: var(--b-border-radius-l);
788
788
  --b-radio-button-offset-top: var(--b-spacer-010);
789
+ --b-promo-banner-content-actions-gap: var(--b-spacer-040);
790
+ --b-promo-banner-content-header-gap: var(--b-spacer-060);
791
+ --b-promo-banner-content-padding: var(--b-spacer-100);
792
+ --b-promo-banner-content-gap: var(--b-spacer-100);
793
+ --b-promo-banner-background-color-grey: var(--b-color-background-secondary);
794
+ --b-promo-banner-background-color-green: var(--b-color-background-success-weak);
795
+ --b-promo-banner-background-color-blue: var(--b-color-background-highlight-weak);
796
+ --b-promo-banner-color: var(--b-color-label-primary);
797
+ --b-promo-banner-border-radius: var(--b-border-radius-xl);
789
798
  --b-popper-z-index: 5;
790
799
  --b-popover-animation-duration: var(--b-animation-duration-moderate);
791
800
  --b-popover-footer-padding: var(--b-spacer-000) var(--b-spacer-070) var(--b-spacer-060) var(--b-spacer-070);
@@ -979,6 +988,11 @@
979
988
  --b-link-external-link-padding: 0 0 0 var(--b-spacer-020);
980
989
  --b-link-color: var(--b-color-link-primary);
981
990
  --b-link-border-radius: var(--b-border-radius-xs);
991
+ --b-layout-row-column-wrapper-l-and-up-column-gap: var(--b-spacer-090);
992
+ --b-layout-l-and-up-padding: var(--b-spacer-080) var(--b-spacer-090);
993
+ --b-layout-l-and-up-column-gap: var(--b-spacer-090);
994
+ --b-layout-s-and-up-padding: var(--b-spacer-070) var(--b-spacer-080);
995
+ --b-layout-padding: var(--b-spacer-070);
982
996
  --b-inspector-animation-leave-active-easing: var(--b-animation-easing-exit);
983
997
  --b-inspector-animation-enter-active-easing: var(--b-animation-easing-enter);
984
998
  --b-inspector-animation-duration: var(--b-animation-duration-slow);
@@ -1281,6 +1295,8 @@
1281
1295
  --b-date-picker-description-error-margin-top: var(--b-spacer-020);
1282
1296
  --b-date-picker-description-margin-top: var(--b-spacer-040);
1283
1297
  --b-date-picker-description-color: var(--b-color-label-secondary);
1298
+ --b-data-grid-horizontal-scrollbar-z-index: 2;
1299
+ --b-data-grid-horizontal-scrollbar-background-color: var(--b-color-background-primary);
1284
1300
  --b-data-grid-empty-state-padding: var(--b-spacer-100) 0;
1285
1301
  --b-data-grid-re-order-column-target-separator-z-index: 1;
1286
1302
  --b-data-grid-re-order-column-target-separator-background-color: var(--b-color-background-highlight-strong);
@@ -785,6 +785,15 @@
785
785
  --b-radio-button-space-around-increase: var(--b-spacer-020);
786
786
  --b-radio-button-border-radius: var(--b-border-radius-l);
787
787
  --b-radio-button-offset-top: var(--b-spacer-010);
788
+ --b-promo-banner-content-actions-gap: var(--b-spacer-040);
789
+ --b-promo-banner-content-header-gap: var(--b-spacer-060);
790
+ --b-promo-banner-content-padding: var(--b-spacer-100);
791
+ --b-promo-banner-content-gap: var(--b-spacer-100);
792
+ --b-promo-banner-background-color-grey: var(--b-color-background-secondary);
793
+ --b-promo-banner-background-color-green: var(--b-color-background-success-weak);
794
+ --b-promo-banner-background-color-blue: var(--b-color-background-highlight-weak);
795
+ --b-promo-banner-color: var(--b-color-label-primary);
796
+ --b-promo-banner-border-radius: var(--b-border-radius-xl);
788
797
  --b-popper-z-index: 5;
789
798
  --b-popover-animation-duration: var(--b-animation-duration-moderate);
790
799
  --b-popover-footer-padding: var(--b-spacer-000) var(--b-spacer-070) var(--b-spacer-060) var(--b-spacer-070);
@@ -978,6 +987,11 @@
978
987
  --b-link-external-link-padding: 0 0 0 var(--b-spacer-020);
979
988
  --b-link-color: var(--b-color-link-primary);
980
989
  --b-link-border-radius: var(--b-border-radius-xs);
990
+ --b-layout-row-column-wrapper-l-and-up-column-gap: var(--b-spacer-090);
991
+ --b-layout-l-and-up-padding: var(--b-spacer-080) var(--b-spacer-090);
992
+ --b-layout-l-and-up-column-gap: var(--b-spacer-090);
993
+ --b-layout-s-and-up-padding: var(--b-spacer-070) var(--b-spacer-080);
994
+ --b-layout-padding: var(--b-spacer-070);
981
995
  --b-inspector-animation-leave-active-easing: var(--b-animation-easing-exit);
982
996
  --b-inspector-animation-enter-active-easing: var(--b-animation-easing-enter);
983
997
  --b-inspector-animation-duration: var(--b-animation-duration-slow);
@@ -1280,6 +1294,8 @@
1280
1294
  --b-date-picker-description-error-margin-top: var(--b-spacer-020);
1281
1295
  --b-date-picker-description-margin-top: var(--b-spacer-040);
1282
1296
  --b-date-picker-description-color: var(--b-color-label-secondary);
1297
+ --b-data-grid-horizontal-scrollbar-z-index: 2;
1298
+ --b-data-grid-horizontal-scrollbar-background-color: var(--b-color-background-primary);
1283
1299
  --b-data-grid-empty-state-padding: var(--b-spacer-100) 0;
1284
1300
  --b-data-grid-re-order-column-target-separator-z-index: 1;
1285
1301
  --b-data-grid-re-order-column-target-separator-background-color: var(--b-color-background-highlight-strong);
@@ -785,6 +785,15 @@
785
785
  --b-radio-button-space-around-increase: var(--b-spacer-020);
786
786
  --b-radio-button-border-radius: var(--b-border-radius-l);
787
787
  --b-radio-button-offset-top: var(--b-spacer-010);
788
+ --b-promo-banner-content-actions-gap: var(--b-spacer-040);
789
+ --b-promo-banner-content-header-gap: var(--b-spacer-060);
790
+ --b-promo-banner-content-padding: var(--b-spacer-100);
791
+ --b-promo-banner-content-gap: var(--b-spacer-100);
792
+ --b-promo-banner-background-color-grey: var(--b-color-background-secondary);
793
+ --b-promo-banner-background-color-green: var(--b-color-background-success-weak);
794
+ --b-promo-banner-background-color-blue: var(--b-color-background-highlight-weak);
795
+ --b-promo-banner-color: var(--b-color-label-primary);
796
+ --b-promo-banner-border-radius: var(--b-border-radius-xl);
788
797
  --b-popper-z-index: 5;
789
798
  --b-popover-animation-duration: var(--b-animation-duration-moderate);
790
799
  --b-popover-footer-padding: var(--b-spacer-000) var(--b-spacer-070) var(--b-spacer-060) var(--b-spacer-070);
@@ -978,6 +987,11 @@
978
987
  --b-link-external-link-padding: 0 0 0 var(--b-spacer-020);
979
988
  --b-link-color: var(--b-color-link-primary);
980
989
  --b-link-border-radius: var(--b-border-radius-xs);
990
+ --b-layout-row-column-wrapper-l-and-up-column-gap: var(--b-spacer-090);
991
+ --b-layout-l-and-up-padding: var(--b-spacer-080) var(--b-spacer-090);
992
+ --b-layout-l-and-up-column-gap: var(--b-spacer-090);
993
+ --b-layout-s-and-up-padding: var(--b-spacer-070) var(--b-spacer-080);
994
+ --b-layout-padding: var(--b-spacer-070);
981
995
  --b-inspector-animation-leave-active-easing: var(--b-animation-easing-exit);
982
996
  --b-inspector-animation-enter-active-easing: var(--b-animation-easing-enter);
983
997
  --b-inspector-animation-duration: var(--b-animation-duration-slow);
@@ -1280,6 +1294,8 @@
1280
1294
  --b-date-picker-description-error-margin-top: var(--b-spacer-020);
1281
1295
  --b-date-picker-description-margin-top: var(--b-spacer-040);
1282
1296
  --b-date-picker-description-color: var(--b-color-label-secondary);
1297
+ --b-data-grid-horizontal-scrollbar-z-index: 2;
1298
+ --b-data-grid-horizontal-scrollbar-background-color: var(--b-color-background-primary);
1283
1299
  --b-data-grid-empty-state-padding: var(--b-spacer-100) 0;
1284
1300
  --b-data-grid-re-order-column-target-separator-z-index: 1;
1285
1301
  --b-data-grid-re-order-column-target-separator-background-color: var(--b-color-background-highlight-strong);
@@ -763,6 +763,15 @@
763
763
  --b-radio-button-space-around-increase: var(--b-spacer-020);
764
764
  --b-radio-button-border-radius: var(--b-border-radius-l);
765
765
  --b-radio-button-offset-top: var(--b-spacer-020);
766
+ --b-promo-banner-content-actions-gap: var(--b-spacer-040);
767
+ --b-promo-banner-content-header-gap: var(--b-spacer-060);
768
+ --b-promo-banner-content-padding: var(--b-spacer-100);
769
+ --b-promo-banner-content-gap: var(--b-spacer-100);
770
+ --b-promo-banner-background-color-grey: var(--b-color-background-secondary);
771
+ --b-promo-banner-background-color-green: var(--b-color-background-success-weak);
772
+ --b-promo-banner-background-color-blue: var(--b-color-background-highlight-weak);
773
+ --b-promo-banner-color: var(--b-color-label-primary);
774
+ --b-promo-banner-border-radius: var(--b-border-radius-xl);
766
775
  --b-popper-z-index: 5;
767
776
  --b-popover-animation-duration: var(--b-animation-duration-moderate);
768
777
  --b-popover-footer-padding: var(--b-spacer-000) var(--b-spacer-070) var(--b-spacer-060) var(--b-spacer-070);
@@ -928,6 +937,11 @@
928
937
  --b-link-data-grid-color: var(--b-color-link-primary);
929
938
  --b-link-external-link-padding: 0 0 0 var(--b-spacer-020);
930
939
  --b-link-border-radius: var(--b-border-radius-xs);
940
+ --b-layout-row-column-wrapper-l-and-up-column-gap: var(--b-spacer-090);
941
+ --b-layout-l-and-up-padding: var(--b-spacer-080) var(--b-spacer-090);
942
+ --b-layout-l-and-up-column-gap: var(--b-spacer-090);
943
+ --b-layout-s-and-up-padding: var(--b-spacer-070) var(--b-spacer-080);
944
+ --b-layout-padding: var(--b-spacer-070);
931
945
  --b-inspector-animation-leave-active-easing: var(--b-animation-easing-exit);
932
946
  --b-inspector-animation-enter-active-easing: var(--b-animation-easing-enter);
933
947
  --b-inspector-animation-duration: var(--b-animation-duration-slow);
@@ -1237,6 +1251,7 @@
1237
1251
  --b-date-picker-description-error-margin-top: var(--b-spacer-020);
1238
1252
  --b-date-picker-description-margin-top: var(--b-spacer-040);
1239
1253
  --b-date-picker-description-color: var(--b-color-label-secondary);
1254
+ --b-data-grid-horizontal-scrollbar-z-index: 2;
1240
1255
  --b-data-grid-empty-state-padding: var(--b-spacer-100) 0;
1241
1256
  --b-data-grid-re-order-column-target-separator-z-index: 1;
1242
1257
  --b-data-grid-re-order-column-target-separator-background-color: var(--b-color-background-highlight-strong);
@@ -1871,6 +1886,7 @@
1871
1886
  --b-dropdown-options-container-border-color: var(--b-color-neutral-20);
1872
1887
  --b-dropdown-description-color: var(--b-color-neutral-70);
1873
1888
  --b-divider-background-color: var(--b-color-neutral-20);
1889
+ --b-data-grid-horizontal-scrollbar-background-color: var(--b-color-background-primary);
1874
1890
  --b-data-grid-filters-background-color: var(--b-color-background-primary);
1875
1891
  --b-data-grid-pagination-background-color: var(--b-color-background-primary);
1876
1892
  --b-data-grid-lazy-load-background-color: var(--b-color-background-primary);
@@ -840,6 +840,15 @@
840
840
  --b-radio-button-space-around-increase: var(--b-spacer-020);
841
841
  --b-radio-button-border-radius: var(--b-border-radius-l);
842
842
  --b-radio-button-offset-top: var(--b-spacer-010);
843
+ --b-promo-banner-content-actions-gap: var(--b-spacer-040);
844
+ --b-promo-banner-content-header-gap: var(--b-spacer-060);
845
+ --b-promo-banner-content-padding: var(--b-spacer-100);
846
+ --b-promo-banner-content-gap: var(--b-spacer-100);
847
+ --b-promo-banner-background-color-grey: var(--b-color-background-secondary);
848
+ --b-promo-banner-background-color-green: var(--b-color-background-success-weak);
849
+ --b-promo-banner-background-color-blue: var(--b-color-background-highlight-weak);
850
+ --b-promo-banner-color: var(--b-color-label-primary);
851
+ --b-promo-banner-border-radius: var(--b-border-radius-xl);
843
852
  --b-popper-z-index: 5;
844
853
  --b-popover-animation-duration: var(--b-animation-duration-moderate);
845
854
  --b-popover-footer-padding: var(--b-spacer-000) var(--b-spacer-070) var(--b-spacer-060) var(--b-spacer-070);
@@ -1033,6 +1042,11 @@
1033
1042
  --b-link-external-link-padding: 0 0 0 var(--b-spacer-020);
1034
1043
  --b-link-color: var(--b-color-link-primary);
1035
1044
  --b-link-border-radius: var(--b-border-radius-xs);
1045
+ --b-layout-row-column-wrapper-l-and-up-column-gap: var(--b-spacer-090);
1046
+ --b-layout-l-and-up-padding: var(--b-spacer-080) var(--b-spacer-090);
1047
+ --b-layout-l-and-up-column-gap: var(--b-spacer-090);
1048
+ --b-layout-s-and-up-padding: var(--b-spacer-070) var(--b-spacer-080);
1049
+ --b-layout-padding: var(--b-spacer-070);
1036
1050
  --b-inspector-animation-leave-active-easing: var(--b-animation-easing-exit);
1037
1051
  --b-inspector-animation-enter-active-easing: var(--b-animation-easing-enter);
1038
1052
  --b-inspector-animation-duration: var(--b-animation-duration-slow);
@@ -1335,6 +1349,8 @@
1335
1349
  --b-date-picker-description-error-margin-top: var(--b-spacer-020);
1336
1350
  --b-date-picker-description-margin-top: var(--b-spacer-040);
1337
1351
  --b-date-picker-description-color: var(--b-color-label-secondary);
1352
+ --b-data-grid-horizontal-scrollbar-z-index: 2;
1353
+ --b-data-grid-horizontal-scrollbar-background-color: var(--b-color-background-primary);
1338
1354
  --b-data-grid-empty-state-padding: var(--b-spacer-100) 0;
1339
1355
  --b-data-grid-re-order-column-target-separator-z-index: 1;
1340
1356
  --b-data-grid-re-order-column-target-separator-background-color: var(--b-color-background-highlight-strong);
package/dist/timeline.js CHANGED
@@ -1,4 +1,4 @@
1
- import { t, b as i, a, c as m, B as o, d as l } from "./chunks/timeline-item.CEolKFn0.js";
1
+ import { t, b as i, a, c as m, B as o, d as l } from "./chunks/timeline-item.B8VvkDfR.js";
2
2
  export {
3
3
  t as BentoTimeline,
4
4
  i as BentoTimelineGapUnit,
package/dist/tutorial.js CHANGED
@@ -1,4 +1,4 @@
1
- import { _ as t } from "./chunks/tutorial.vue_vue_type_script_setup_true_lang.Bz6QyDuV.js";
1
+ import { _ as t } from "./chunks/tutorial.vue_vue_type_script_setup_true_lang.CGpbGgfc.js";
2
2
  export {
3
3
  t as BentoTutorial
4
4
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "framework": "vue",
3
3
  "name": "@adyen/bento-vue3",
4
- "version": "1.40.0",
4
+ "version": "1.41.0",
5
5
  "contributions": {
6
6
  "html": {
7
7
  "description-markup": "markdown",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adyen/bento-vue3",
3
- "version": "1.40.0",
3
+ "version": "1.41.0",
4
4
  "description": "Adyen Bento Vue 3 components",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -35,7 +35,7 @@
35
35
  "focus-lock": "0.11.0",
36
36
  "uuid": "11.0.5",
37
37
  "vue-demi": "0.14.10",
38
- "@adyen/bento-design-tokens": "1.40.0"
38
+ "@adyen/bento-design-tokens": "1.41.0"
39
39
  },
40
40
  "peerDependencies": {
41
41
  "vue": "^3.2.47",
@@ -1,19 +0,0 @@
1
- export declare enum BentoImageAspectRatio {
2
- LANDSCAPE = "landscape",
3
- P4_3 = "4:3",
4
- P3_3 = "3:3",
5
- P16_9 = "16:9",
6
- P2_1 = "2:1",
7
- PORTRAIT = "portrait",
8
- P3_4 = "3:4",
9
- P2_3 = "2:3",
10
- P9_16 = "9:16",
11
- P1_2 = "1:2",
12
- SQUARE = "square",
13
- P1_1 = "1:1"
14
- }
15
- export declare enum BentoImageObjectFit {
16
- COVER = "cover",
17
- FILL = "fill",
18
- CONTAIN = "contain"
19
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"currency.BGrGBnhm.js","sources":["../../../vue2/src/utils/ts/currency/countries-list.ts","../../../vue2/src/utils/ts/currency/currency.ts","../../../vue2/src/components/currency/currency.types.ts","../../../vue2/src/components/currency/currency.vue"],"sourcesContent":["/**\n * Contains mapping configuration between currency code and exponent for amount in the corresponding currency.\n * Since the majority of the currencies have an exponent equal to 2, they are not listed here.\n * https://docs.adyen.com/development-resources/currency-codes\n * @type {Array}\n * @internal\n */\nexport const currencyExponentMap = [\n {\n exponent: 0,\n currencies: [\n 'CVE',\n 'DJF',\n 'GNF',\n 'IDR',\n 'JPY',\n 'KMF',\n 'KRW',\n 'PYG',\n 'RWF',\n 'UGX',\n 'VND',\n 'VUV',\n 'XAF',\n 'XOF',\n 'XPF',\n ],\n },\n {\n exponent: 1,\n currencies: ['MRO'],\n },\n {\n exponent: 3,\n currencies: ['BHD', 'IQD', 'JOD', 'KWD', 'LYD', 'OMR', 'TND'],\n },\n];\n","import { CurrencyAmount, CurrencyOptions, NumberFormatOptionsResult } from './currency.types';\nimport { currencyExponentMap } from './countries-list';\n\n/**\n * Returns exponent for specified currency code.\n */\nexport const getExponent = (currencyCode: string): number =>\n currencyExponentMap.find(obj => obj.currencies.includes(currencyCode))?.exponent ?? 2;\n\n/**\n * Converts passed amount from regular to minor units, based on currency exponent\n */\nexport const getMinorUnitsAmount = (amount: CurrencyAmount): number => {\n const exponent = getExponent(amount.currency);\n const value = Number(amount.value);\n\n return Math.round(value * 10 ** exponent);\n};\n\n/**\n * Returns normalized amount value from minor units as decimal point number (when exponent is more than zero).\n */\nexport const getNormalizedAmount = (amount: CurrencyAmount, exponent: number) =>\n // Amount is in minor units and have to be converted to number with fraction digits\n // return (amount.value * 100) / 10 ** exp;\n amount.value / 10 ** exponent;\n\n/**\n * /**\n * Prepares amount to be rendered by Intl.NumberFormat function.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat\n *\n * It enables language-sensitive number formatting.\n * Adds currency symbol and ISO code based on provided options\n * The result of execution - is a configuration object that is used in 'getLocalizedCurrencyValue' function\n *\n * @param amount - the value and currency to format.\n * @param options - the formatting options that are passed to the Intl.NumberFormat function.\n * @param majorUnits - if set to true, then currency major units will be used instead of minor ones\n */\nexport function getNumberFormatOptions(\n amount: CurrencyAmount,\n options: CurrencyOptions = {},\n majorUnits = false\n): NumberFormatOptionsResult {\n // Exponent is based on currency, if not specified explicitly.\n const exp = options?.exponent ?? getExponent(amount.currency);\n // Minor Units have to be retrieved from component passed amount\n const minorAmount = majorUnits ? getMinorUnitsAmount(amount) : amount.value;\n const amountInMinorUnits: CurrencyAmount = { ...amount, value: minorAmount };\n // Amount is in minor units and have to be converted to number with fraction digits\n const value = getNormalizedAmount(amountInMinorUnits, exp);\n // This is the requirement for currency component - to remove currency symbol for negative values\n const style = value < 0 ? 'decimal' : options?.style || 'currency';\n // If optionalFractions is true, numbers will not contain fraction digits when they are zero (e.g. 100.00 will be 100)\n const minimumFractionDigits = options?.optionalFractions ? 0 : exp;\n // If highPrecision is true, numbers can contain 10 fraction digits (highest precision in Adyen is about 5)\n const maximumFractionDigits = options?.highPrecision ? 10 : exp;\n\n return {\n value,\n format: {\n style,\n currency: amount.currency,\n currencyDisplay: 'symbol',\n minimumFractionDigits,\n maximumFractionDigits,\n },\n };\n}\n\n/**\n * Get a formatted and localised currency string given an amount and currency type.\n *\n * @param amountValue - the amount of the currency.\n * @param currency - the ISO 4217 currency code.\n * @param majorUnits - if set to true, then currency major units will be used instead of minor ones\n */\nexport const getLocalizedCurrencyValue = (amountValue: string, currency: string, majorUnits?: boolean): string => {\n const amount: CurrencyAmount = { value: parseFloat(amountValue), currency };\n const numberFormatOptions = getNumberFormatOptions(amount, { style: 'decimal' }, majorUnits);\n // TODO replace hardcoded locale with dynamic one, when i18n strategy is defined\n const formatter = new Intl.NumberFormat('en-US', numberFormatOptions.format as Intl.NumberFormatOptions);\n\n return formatter.format(numberFormatOptions.value);\n};\n","export enum BentoCurrencyISOCode {\n AFA = 'AFA',\n ALL = 'ALL',\n DZD = 'DZD',\n AOA = 'AOA',\n ARS = 'ARS',\n AMD = 'AMD',\n AWG = 'AWG',\n AUD = 'AUD',\n AZN = 'AZN',\n BSD = 'BSD',\n BHD = 'BHD',\n BDT = 'BDT',\n BBD = 'BBD',\n BYR = 'BYR',\n BEF = 'BEF',\n BZD = 'BZD',\n BMD = 'BMD',\n BTN = 'BTN',\n BTC = 'BTC',\n BOB = 'BOB',\n BAM = 'BAM',\n BWP = 'BWP',\n BRL = 'BRL',\n GBP = 'GBP',\n BND = 'BND',\n BGN = 'BGN',\n BIF = 'BIF',\n KHR = 'KHR',\n CAD = 'CAD',\n CVE = 'CVE',\n KYD = 'KYD',\n XOF = 'XOF',\n XAF = 'XAF',\n XPF = 'XPF',\n CLP = 'CLP',\n CLF = 'CLF',\n CNY = 'CNY',\n COP = 'COP',\n KMF = 'KMF',\n CDF = 'CDF',\n CRC = 'CRC',\n HRK = 'HRK',\n CUC = 'CUC',\n CZK = 'CZK',\n DKK = 'DKK',\n DJF = 'DJF',\n DOP = 'DOP',\n XCD = 'XCD',\n EGP = 'EGP',\n ERN = 'ERN',\n EEK = 'EEK',\n ETB = 'ETB',\n EUR = 'EUR',\n FKP = 'FKP',\n FJD = 'FJD',\n GMD = 'GMD',\n GEL = 'GEL',\n DEM = 'DEM',\n GHS = 'GHS',\n GIP = 'GIP',\n GRD = 'GRD',\n GTQ = 'GTQ',\n GNF = 'GNF',\n GYD = 'GYD',\n HTG = 'HTG',\n HNL = 'HNL',\n HKD = 'HKD',\n HUF = 'HUF',\n ISK = 'ISK',\n INR = 'INR',\n IDR = 'IDR',\n IRR = 'IRR',\n IQD = 'IQD',\n ILS = 'ILS',\n ITL = 'ITL',\n JMD = 'JMD',\n JPY = 'JPY',\n JOD = 'JOD',\n KZT = 'KZT',\n KES = 'KES',\n KWD = 'KWD',\n KGS = 'KGS',\n LAK = 'LAK',\n LVL = 'LVL',\n LBP = 'LBP',\n LSL = 'LSL',\n LRD = 'LRD',\n LYD = 'LYD',\n LTC = 'LTC',\n LTL = 'LTL',\n MOP = 'MOP',\n MKD = 'MKD',\n MGA = 'MGA',\n MWK = 'MWK',\n MYR = 'MYR',\n MVR = 'MVR',\n MRO = 'MRO',\n MUR = 'MUR',\n MXN = 'MXN',\n MDL = 'MDL',\n MNT = 'MNT',\n MAD = 'MAD',\n MZM = 'MZM',\n MMK = 'MMK',\n NAD = 'NAD',\n NPR = 'NPR',\n ANG = 'ANG',\n TWD = 'TWD',\n NZD = 'NZD',\n NIO = 'NIO',\n NGN = 'NGN',\n KPW = 'KPW',\n NOK = 'NOK',\n OMR = 'OMR',\n PKR = 'PKR',\n PAB = 'PAB',\n PGK = 'PGK',\n PYG = 'PYG',\n PEN = 'PEN',\n PHP = 'PHP',\n PLN = 'PLN',\n QAR = 'QAR',\n RON = 'RON',\n RUB = 'RUB',\n RWF = 'RWF',\n SVC = 'SVC',\n WST = 'WST',\n STD = 'STD',\n SAR = 'SAR',\n RSD = 'RSD',\n SCR = 'SCR',\n SLL = 'SLL',\n SGD = 'SGD',\n SKK = 'SKK',\n SBD = 'SBD',\n SOS = 'SOS',\n ZAR = 'ZAR',\n KRW = 'KRW',\n SSP = 'SSP',\n XDR = 'XDR',\n LKR = 'LKR',\n SHP = 'SHP',\n SDG = 'SDG',\n SRD = 'SRD',\n SZL = 'SZL',\n SEK = 'SEK',\n CHF = 'CHF',\n SYP = 'SYP',\n TJS = 'TJS',\n TZS = 'TZS',\n THB = 'THB',\n TOP = 'TOP',\n TTD = 'TTD',\n TND = 'TND',\n TRY = 'TRY',\n TMT = 'TMT',\n UGX = 'UGX',\n UAH = 'UAH',\n AED = 'AED',\n UYU = 'UYU',\n USD = 'USD',\n UZS = 'UZS',\n VUV = 'VUV',\n VEF = 'VEF',\n VND = 'VND',\n YER = 'YER',\n ZMK = 'ZMK',\n ZWL = 'ZWL',\n}\n","<template>\n <div class=\"b-currency\">\n <bento-typography v-if=\"!disableTypography\" class=\"b-currency__amount\" el=\"span\" variant=\"body\" strong>\n {{ formattedCurrency }} {{ currency }}\n </bento-typography>\n <template v-else>{{ formattedCurrency }} {{ currency }}</template>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, PropType } from 'vue';\n import { getLocalizedCurrencyValue } from '@/utils/ts/currency/currency';\n import { BentoTypography } from '@/components/typography';\n import { BentoCurrencyISOCode } from '@/components/currency/currency.types';\n import { getSlotText } from '@/utils/ts/get-slot-text';\n\n /**\n * A Currency component is used to display a formatted currency value.\n *\n * @example\n * import { BentoCurrency } from '@adyen/adl-vue-components';\n * import { BentoCurrency, BentoCurrencyCode } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoCurrency },\n * template: `\n * <bento-currency :currency=\"CurrencyCode.USD\">\n * 76.33\n * </bento-currency>\n * `\n * }\n */\n export default defineComponent({\n name: 'bento-currency',\n components: { BentoTypography },\n props: {\n currency: {\n type: String as PropType<BentoCurrencyISOCode | `${BentoCurrencyISOCode}`>,\n default: BentoCurrencyISOCode.EUR,\n validator: (value: BentoCurrencyISOCode) => Object.values(BentoCurrencyISOCode).includes(value),\n },\n /**\n * Accepts currency value in major units instead of minor ones\n */\n majorUnits: {\n type: Boolean,\n default: false,\n },\n /**\n * Disable the default typography for the component. Only use this when the component is inside another typography component.\n */\n disableTypography: {\n type: Boolean,\n default: false,\n },\n },\n setup(props, { slots }) {\n const formattedCurrency = computed((): string => {\n const value = slots.default ? getSlotText(slots)('default') : null;\n return getLocalizedCurrencyValue(value, props.currency, props.majorUnits);\n });\n\n return {\n // Values\n formattedCurrency,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./currency.scss\" />\n"],"names":["currencyExponentMap","getExponent","currencyCode","_a","obj","getMinorUnitsAmount","amount","exponent","value","getNormalizedAmount","getNumberFormatOptions","options","majorUnits","exp","minorAmount","amountInMinorUnits","style","minimumFractionDigits","maximumFractionDigits","getLocalizedCurrencyValue","amountValue","currency","numberFormatOptions","BentoCurrencyISOCode","BentoCurrencyISOCode2","_sfc_main","defineComponent","BentoTypography","props","slots","computed","getSlotText","_ctx","openBlock","createBlock","_component_bento_typography","createTextVNode","toDisplayString"],"mappings":"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AAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OACAA,EAAA,MAAA,OAxKQA,IAAAD,KAAA,CAAA,CAAA;ACgCR,MAAAE,IAAAC,EAAA;AAAA,EAA+B,MAAA;AAAA,EACrB,YAAA,EAAA,iBAAAC,EAAA;AAAA,EACwB,OAAA;AAAA,IACvB,UAAA;AAAA,MACO,MAAA;AAAA,MACA,SAAAJ,EAAA;AAAA,MACwB,WAAA,CAAAf,MAAA,OAAA,OAAAe,CAAA,EAAA,SAAAf,CAAA;AAAA,IACgE;AAAA;AAAA;AAAA;AAAA,IAClG,YAAA;AAAA,MAIY,MAAA;AAAA,MACF,SAAA;AAAA,IACG;AAAA;AAAA;AAAA;AAAA,IACb,mBAAA;AAAA,MAImB,MAAA;AAAA,MACT,SAAA;AAAA,IACG;AAAA,EACb;AAAA,EACJ,MAAAoB,GAAA,EAAA,OAAAC,EAAA,GAAA;AAOI,WAAA;AAAA;AAAA,MAAO,mBALPC,EAAA,MAAA;AACI,cAAAtB,IAAAqB,EAAA,UAAAE,EAAAF,CAAA,EAAA,SAAA,IAAA;AACA,eAAAV,EAAAX,GAAAoB,EAAA,UAAAA,EAAA,UAAA;AAAA,MAAwE,CAAA;AAAA,IAKxE;AAAA,EACJ;AAER,CAAA;;;;IA/DuBI,EAAA;;eAAAC,EAAA,GAAAC,EAAAC,GAAA;AAAA,MAFmD,KAAA;AAAA,MAAI,OAAA;AAAA,MAAc,IAAA;AAAA,MAAQ,SAAA;AAAA,MAFxG,QAAA;AAAA,IAAA,GAAA;AAAA;QAAAC,EAAAC,EAAAL,EAAA,iBAAA,IAAA,MAAAK,EAAAL,EAAA,QAAA,GAAA,CAAA;AAAA,MAAA,CAAA;AAAA;;;;;"}