@adyen/bento-vue2 1.74.0 → 1.75.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 (96) hide show
  1. package/dist/@types/index.d.ts +1693 -616
  2. package/dist/assets/accordion-item.css +1 -1
  3. package/dist/assets/action-bar.css +1 -1
  4. package/dist/assets/base-modal.css +1 -1
  5. package/dist/assets/button-actions.css +1 -1
  6. package/dist/assets/card.css +1 -1
  7. package/dist/assets/data-grid-template.css +1 -1
  8. package/dist/assets/data-grid.css +1 -1
  9. package/dist/assets/dialog-page.css +1 -1
  10. package/dist/assets/dropdown-tag.css +1 -1
  11. package/dist/assets/file-uploader.css +1 -1
  12. package/dist/assets/filter-bar.css +1 -1
  13. package/dist/assets/input-field-password.css +1 -1
  14. package/dist/assets/input-field.css +1 -1
  15. package/dist/assets/inspector.css +1 -1
  16. package/dist/assets/modal-fullscreen.css +1 -1
  17. package/dist/assets/selection-card-group.css +1 -1
  18. package/dist/assets/sidepanel.css +1 -1
  19. package/dist/assets/use-cached-selected-values.css +1 -1
  20. package/dist/checkbox.js +2 -2
  21. package/dist/chunks/{checkbox-group.DETXTJqI.js → checkbox-group.CtNVRcmP.js} +2 -2
  22. package/dist/chunks/{checkbox-group.DETXTJqI.js.map → checkbox-group.CtNVRcmP.js.map} +1 -1
  23. package/dist/chunks/{checkbox.BPtHAAEa.js → checkbox.nyUc0gLb.js} +18 -18
  24. package/dist/chunks/{checkbox.BPtHAAEa.js.map → checkbox.nyUc0gLb.js.map} +1 -1
  25. package/dist/chunks/{code-snippet.VtrsOTEC.js → code-snippet.DFf3KMSi.js} +2 -2
  26. package/dist/chunks/{code-snippet.VtrsOTEC.js.map → code-snippet.DFf3KMSi.js.map} +1 -1
  27. package/dist/chunks/{currency.DDB4G_A8.js → currency.AvvbekWO.js} +15 -14
  28. package/dist/chunks/{currency.DDB4G_A8.js.map → currency.AvvbekWO.js.map} +1 -1
  29. package/dist/chunks/{data-grid.DN9xml8y.js → data-grid.D5fTwSvx.js} +1249 -1212
  30. package/dist/chunks/data-grid.D5fTwSvx.js.map +1 -0
  31. package/dist/chunks/{date-picker.DoYYzWcA.js → date-picker.BLii86mM.js} +12 -12
  32. package/dist/chunks/{date-picker.DoYYzWcA.js.map → date-picker.BLii86mM.js.map} +1 -1
  33. package/dist/chunks/{date-range-picker.C_pJ8yH5.js → date-range-picker.Btgdly1q.js} +14 -14
  34. package/dist/chunks/{date-range-picker.C_pJ8yH5.js.map → date-range-picker.Btgdly1q.js.map} +1 -1
  35. package/dist/chunks/dropdown-tag.CpvU8eSZ.js +260 -0
  36. package/dist/chunks/dropdown-tag.CpvU8eSZ.js.map +1 -0
  37. package/dist/chunks/{dropdown.BOvtYKXS.js → dropdown.RxD2TqnP.js} +14 -14
  38. package/dist/chunks/{dropdown.BOvtYKXS.js.map → dropdown.RxD2TqnP.js.map} +1 -1
  39. package/dist/chunks/es6.MoTTyETW.js.map +1 -1
  40. package/dist/chunks/{filter-bar.DzHJi42d.js → filter-bar.DfTOz6xI.js} +9 -9
  41. package/dist/chunks/filter-bar.DfTOz6xI.js.map +1 -0
  42. package/dist/chunks/{header-with-views.t5Fr63SD.js → header-with-views.AKprhFPj.js} +3 -3
  43. package/dist/chunks/{header-with-views.t5Fr63SD.js.map → header-with-views.AKprhFPj.js.map} +1 -1
  44. package/dist/chunks/{input-field-password.Dm3HYonF.js → input-field-password.CSfXqEbT.js} +47 -38
  45. package/dist/chunks/input-field-password.CSfXqEbT.js.map +1 -0
  46. package/dist/chunks/{input-field-phone-number.bZauIuHJ.js → input-field-phone-number.oa4hXQdK.js} +3 -3
  47. package/dist/chunks/{input-field-phone-number.bZauIuHJ.js.map → input-field-phone-number.oa4hXQdK.js.map} +1 -1
  48. package/dist/chunks/input-field.DdQu3b1-.js +161 -0
  49. package/dist/chunks/input-field.DdQu3b1-.js.map +1 -0
  50. package/dist/chunks/{pagination.CKD9FDrA.js → pagination.C0YW_A_o.js} +2 -2
  51. package/dist/chunks/{pagination.CKD9FDrA.js.map → pagination.C0YW_A_o.js.map} +1 -1
  52. package/dist/chunks/radio-group.AcYMFudv.js.map +1 -1
  53. package/dist/chunks/{rich-text-editor.BZgQ578S.js → rich-text-editor.CKWtFjkF.js} +2 -2
  54. package/dist/chunks/{rich-text-editor.BZgQ578S.js.map → rich-text-editor.CKWtFjkF.js.map} +1 -1
  55. package/dist/chunks/{search-bar.c-w7Uky2.js → search-bar.DJVfPz-f.js} +3 -3
  56. package/dist/chunks/{search-bar.c-w7Uky2.js.map → search-bar.DJVfPz-f.js.map} +1 -1
  57. package/dist/chunks/{secondary-nav.D69COlqF.js → secondary-nav.BFiTQaag.js} +2 -2
  58. package/dist/chunks/{secondary-nav.D69COlqF.js.map → secondary-nav.BFiTQaag.js.map} +1 -1
  59. package/dist/chunks/{selection-card-group.8UIir78G.js → selection-card-group.D4rcUyvV.js} +58 -120
  60. package/dist/chunks/{selection-card-group.8UIir78G.js.map → selection-card-group.D4rcUyvV.js.map} +1 -1
  61. package/dist/chunks/textarea.CIQuLWQ8.js.map +1 -1
  62. package/dist/chunks/{use-cached-selected-values.IsfhJHxQ.js → use-cached-selected-values.BZd3CTeP.js} +334 -314
  63. package/dist/chunks/use-cached-selected-values.BZd3CTeP.js.map +1 -0
  64. package/dist/code-snippet.js +1 -1
  65. package/dist/currency.js +1 -1
  66. package/dist/data-grid.js +1 -1
  67. package/dist/date-picker.js +1 -1
  68. package/dist/date-range-picker.js +1 -1
  69. package/dist/dropdown.js +3 -3
  70. package/dist/filter-bar.js +1 -1
  71. package/dist/header-with-views.js +1 -1
  72. package/dist/index.js +221 -220
  73. package/dist/input-field-password.js +1 -1
  74. package/dist/input-field-phone-number.js +1 -1
  75. package/dist/input-field.js +1 -1
  76. package/dist/internal.js +1 -1
  77. package/dist/pagination.js +1 -1
  78. package/dist/rich-text-editor.js +1 -1
  79. package/dist/search-bar.js +2 -2
  80. package/dist/secondary-nav.js +1 -1
  81. package/dist/selection-card.js +1 -1
  82. package/dist/styles/bento-dark.css +1 -1
  83. package/dist/styles/bento-light.css +1 -1
  84. package/dist/styles/bento.css +1 -1
  85. package/dist/styles/legacy.css +1 -1
  86. package/dist/styles/styleguide.css +1 -1
  87. package/dist/web-types.json +686 -1392
  88. package/package.json +6 -6
  89. package/dist/chunks/data-grid.DN9xml8y.js.map +0 -1
  90. package/dist/chunks/dropdown-tag.DBnurtCQ.js +0 -245
  91. package/dist/chunks/dropdown-tag.DBnurtCQ.js.map +0 -1
  92. package/dist/chunks/filter-bar.DzHJi42d.js.map +0 -1
  93. package/dist/chunks/input-field-password.Dm3HYonF.js.map +0 -1
  94. package/dist/chunks/input-field.D52XYEzU.js +0 -157
  95. package/dist/chunks/input-field.D52XYEzU.js.map +0 -1
  96. package/dist/chunks/use-cached-selected-values.IsfhJHxQ.js.map +0 -1
@@ -0,0 +1,260 @@
1
+ import { defineComponent as p, computed as v, toRefs as h, ref as d, watch as $ } from "vue";
2
+ import { B as b } from "./avatar.CeDqq2Z-.js";
3
+ import { B as a, u as B } from "./dropdown.RxD2TqnP.js";
4
+ import { n as m } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
5
+ import { d as I, B as x } from "./typography.hlOAxsEn.js";
6
+ import { u as g } from "./use-country-items.B3Cd3Tdo.js";
7
+ import { B as l } from "./country.types.C0Q_hhgJ.js";
8
+ import { L as w } from "./listbox-option-tag.Dl8GwHLT.js";
9
+ import { B as C } from "./payment-method.DtvfUnit.js";
10
+ import "../assets/dropdown-tag.css";
11
+ const D = p({
12
+ name: "bento-dropdown-avatar"
13
+ }), A = /* @__PURE__ */ p({
14
+ ...D,
15
+ props: {
16
+ ...a.props,
17
+ /**
18
+ * The option elements to populate the avatar dropdown with.
19
+ * It must be an array of {@see BentoAvatarListboxOptions }
20
+ * @property {string} value.label - Text to be displayed in the option.
21
+ * @property {string | number} value.value - Value of the option.
22
+ * @property {string} value.src - Image source of the avatar image.
23
+ */
24
+ items: {
25
+ type: Array,
26
+ default: () => []
27
+ }
28
+ },
29
+ emits: ["input", "show-more", "open"],
30
+ setup(s, { emit: t }) {
31
+ const n = s, e = (r) => t("input", r), o = v(() => n.items.map(({ value: r, label: u, src: _ }) => ({ value: r, label: u, data: _ })));
32
+ return { __sfc: !0, props: n, emit: t, onInput: e, dropdownItems: o, BentoAvatar: b, BentoDropdown: a };
33
+ }
34
+ });
35
+ var P = function() {
36
+ var t = this, n = t._self._c, e = t._self._setupProxy;
37
+ return n("div", [n(e.BentoDropdown, t._b({ attrs: { items: e.dropdownItems }, on: { input: e.onInput, "show-more": function(o) {
38
+ return e.emit("show-more");
39
+ }, open: function(o) {
40
+ return e.emit("open");
41
+ } }, scopedSlots: t._u([{ key: "default", fn: function({ label: o, data: r }) {
42
+ return [n(e.BentoAvatar, { attrs: { username: o, src: r } })];
43
+ } }]) }, "bento-dropdown", t.$props, !1))], 1);
44
+ }, S = [], T = /* @__PURE__ */ m(
45
+ A,
46
+ P,
47
+ S,
48
+ !1,
49
+ null,
50
+ null
51
+ );
52
+ const pt = T.exports, R = p({
53
+ name: "b-dropdown-country"
54
+ }), k = /* @__PURE__ */ p({
55
+ ...R,
56
+ props: {
57
+ ...a.props,
58
+ /**
59
+ * The option elements to populate the country dropdown with.
60
+ * It must be an array of {@see BentoCountryListboxOptions }
61
+ * * @deprecated {string} value.label - Use BentoDropdown instead of custom labels
62
+ * * @property {BentoCountryCode | string} value.value - Country code of the option
63
+ */
64
+ items: {
65
+ type: Array,
66
+ default: () => []
67
+ },
68
+ /**
69
+ * Which label variant to display.
70
+ * @values iso, name, phone_code, capital
71
+ */
72
+ variant: {
73
+ type: String,
74
+ default: l.CUSTOM,
75
+ validator: (s) => Object.values(l).includes(s)
76
+ }
77
+ },
78
+ emits: ["input", "show-more", "open"],
79
+ setup(s, { emit: t }) {
80
+ const n = s, e = (_) => t("input", _), { variant: o, items: r } = h(n), u = g(o, r);
81
+ return (o.value === "custom" || r.value.some((_) => _.label)) && I(
82
+ 'BentoDropdownCountry "custom" variant and "items" prop "label" key',
83
+ "Use any of the other BentoDropdownCountry variants instead OR use BentoDropdown component for custom labels",
84
+ "2.0.0"
85
+ ), { __sfc: !0, props: n, emit: t, onInput: e, variant: o, items: r, countryItems: u, BentoTypography: x, BentoDropdown: a };
86
+ }
87
+ });
88
+ var F = function() {
89
+ var t = this, n = t._self._c, e = t._self._setupProxy;
90
+ return n("div", [n(e.BentoDropdown, t._b({ attrs: { items: e.countryItems }, on: { input: e.onInput, "show-more": function(o) {
91
+ return e.emit("show-more");
92
+ }, open: function(o) {
93
+ return e.emit("open");
94
+ } }, scopedSlots: t._u([{ key: "default", fn: function({ label: o }) {
95
+ return [n(e.BentoTypography, { attrs: { el: "span" } }, [t._v(t._s(o))])];
96
+ } }]) }, "bento-dropdown", t.$props, !1))], 1);
97
+ }, O = [], L = /* @__PURE__ */ m(
98
+ k,
99
+ F,
100
+ O,
101
+ !1,
102
+ null,
103
+ null
104
+ );
105
+ const ut = L.exports, M = p({
106
+ name: "b-dropdown-currency"
107
+ }), z = /* @__PURE__ */ p({
108
+ ...M,
109
+ props: {
110
+ ...a.props,
111
+ /**
112
+ * The option elements to populate the currency dropdown with.
113
+ * It must be an array of {@see BentoCurrencyListboxOptions }
114
+ * @property {string} value.label - Text to be displayed in the option
115
+ * @property {BentoCurrencyISOCode} value.code - Currency ISO code of the option
116
+ */
117
+ items: {
118
+ type: Array,
119
+ default: () => []
120
+ }
121
+ },
122
+ emits: ["input", "show-more", "open"],
123
+ setup(s, { emit: t }) {
124
+ const n = s, e = (u) => t("input", u), o = d([]);
125
+ $(
126
+ () => n.items,
127
+ () => o.value = n.items,
128
+ { immediate: !0 }
129
+ );
130
+ const r = n.search ? n.search : {
131
+ debounceTime: 500,
132
+ searchEvent: async (u) => {
133
+ var f;
134
+ const _ = n.items.map((c) => ({
135
+ ...c,
136
+ label: `${c.value} ${c.label}`
137
+ })), i = B(
138
+ d(u),
139
+ d(_),
140
+ (f = n == null ? void 0 : n.search) == null ? void 0 : f.searchEvent,
141
+ d(!1)
142
+ ).value, y = i == null ? void 0 : i.map((c) => ({
143
+ ...c,
144
+ label: c.label.substring(c.value.length + 1)
145
+ }));
146
+ o.value = y;
147
+ }
148
+ };
149
+ return { __sfc: !0, props: n, emit: t, onInput: e, filteredItems: o, search: r, ListboxOptionTag: w, BentoDropdown: a };
150
+ }
151
+ });
152
+ var E = function() {
153
+ var t = this, n = t._self._c, e = t._self._setupProxy;
154
+ return n(e.BentoDropdown, t._b({ attrs: { search: e.search, items: e.filteredItems }, on: { input: e.onInput, "show-more": function(o) {
155
+ return e.emit("show-more");
156
+ }, open: function(o) {
157
+ return e.emit("open");
158
+ } }, scopedSlots: t._u([{ key: "default", fn: function(o) {
159
+ return [n(e.ListboxOptionTag, { attrs: { option: o } })];
160
+ } }]) }, "bento-dropdown", t.$props, !1));
161
+ }, U = [], j = /* @__PURE__ */ m(
162
+ z,
163
+ E,
164
+ U,
165
+ !1,
166
+ null,
167
+ null
168
+ );
169
+ const _t = j.exports, V = p({
170
+ name: "bento-dropdown-payment-method"
171
+ }), q = /* @__PURE__ */ p({
172
+ ...V,
173
+ props: {
174
+ ...a.props,
175
+ /**
176
+ * The option elements to populate the payment method dropdown with.
177
+ * It must be an array of {@see BentoPaymentMethodListboxOptions }
178
+ * @property {string} value.label - Text to be displayed in the option
179
+ * @property {string} value.value - Payment type code that translates to a payment icon name {@see https://adyen-ui-assets.netlify.app/?path=/story/packages-ui-assets-payment-method-icons--icons}
180
+ */
181
+ items: {
182
+ type: Array,
183
+ default: () => []
184
+ }
185
+ },
186
+ emits: ["input", "show-more", "open"],
187
+ setup(s, { emit: t }) {
188
+ return { __sfc: !0, emit: t, onInput: (e) => t("input", e), BentoPaymentMethod: C, BentoDropdown: a };
189
+ }
190
+ });
191
+ var G = function() {
192
+ var t = this, n = t._self._c, e = t._self._setupProxy;
193
+ return n("div", [n(e.BentoDropdown, t._b({ on: { input: e.onInput, "show-more": function(o) {
194
+ return e.emit("show-more");
195
+ }, open: function(o) {
196
+ return e.emit("open");
197
+ } }, scopedSlots: t._u([{ key: "default", fn: function({ value: o, label: r }) {
198
+ return [n(e.BentoPaymentMethod, { attrs: { type: o, label: r } })];
199
+ } }]) }, "bento-dropdown", t.$props, !1))], 1);
200
+ }, H = [], J = /* @__PURE__ */ m(
201
+ q,
202
+ G,
203
+ H,
204
+ !1,
205
+ null,
206
+ null
207
+ );
208
+ const ct = J.exports, K = p({
209
+ name: "bento-dropdown-tag"
210
+ }), N = /* @__PURE__ */ p({
211
+ ...K,
212
+ props: {
213
+ ...a.props,
214
+ /**
215
+ * The option elements to populate the tag dropdown with.
216
+ * It must be an array of {@see BentoTagListboxOptions }
217
+ * @property {string} value.label - Text to be displayed in the option
218
+ * @property {string | number} value.value - Value of the option
219
+ * @property {string} value.variant - The BentTag variant shown for the option.
220
+ */
221
+ items: {
222
+ type: Array,
223
+ default: () => []
224
+ }
225
+ },
226
+ emits: ["input", "show-more", "open"],
227
+ setup(s, { emit: t }) {
228
+ const n = s, e = (r) => t("input", r), o = v(() => {
229
+ var r;
230
+ return (r = n.items) == null ? void 0 : r.map(({ label: u, value: _, variant: i }) => ({ label: u, value: _, data: i }));
231
+ });
232
+ return { __sfc: !0, props: n, emit: t, onInput: e, tagItems: o, ListboxOptionTag: w, BentoDropdown: a };
233
+ }
234
+ });
235
+ var Q = function() {
236
+ var t = this, n = t._self._c, e = t._self._setupProxy;
237
+ return n(e.BentoDropdown, t._b({ staticClass: "b-dropdown-tag", attrs: { items: e.tagItems, "show-slot-content-in-multiple": "" }, on: { input: e.onInput, "show-more": function(o) {
238
+ return e.emit("show-more");
239
+ }, open: function(o) {
240
+ return e.emit("open");
241
+ } }, scopedSlots: t._u([{ key: "default", fn: function({ label: o, data: r }) {
242
+ return [n(e.ListboxOptionTag, { attrs: { option: { value: o, data: r, label: "" } } })];
243
+ } }]) }, "bento-dropdown", t.$props, !1));
244
+ }, W = [], X = /* @__PURE__ */ m(
245
+ N,
246
+ Q,
247
+ W,
248
+ !1,
249
+ null,
250
+ "be985824"
251
+ );
252
+ const it = X.exports;
253
+ export {
254
+ ut as a,
255
+ _t as b,
256
+ ct as c,
257
+ pt as d,
258
+ it as e
259
+ };
260
+ //# sourceMappingURL=dropdown-tag.CpvU8eSZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-tag.CpvU8eSZ.js","sources":["../../src/components/dropdown/components/variants/dropdown-avatar/dropdown-avatar.vue","../../src/components/dropdown/components/variants/dropdown-country/dropdown-country.vue","../../src/components/dropdown/components/variants/dropdown-currency/dropdown-currency.vue","../../src/components/dropdown/components/variants/dropdown-payment-method/dropdown-payment-method.vue","../../src/components/dropdown/components/variants/dropdown-tag/dropdown-tag.vue"],"sourcesContent":["<template>\n <div>\n <bento-dropdown\n v-slot=\"{ label, data }\"\n v-bind=\"$props\"\n :items=\"dropdownItems\"\n @input=\"onInput\"\n @show-more=\"emit('show-more')\"\n @open=\"emit('open')\"\n >\n <bento-avatar :username=\"label\" :src=\"data\" />\n </bento-dropdown>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, defineComponent, type PropType } from 'vue';\n import { type BentoListboxSelectedValue } from '@/types/listbox';\n import { type BentoAvatarListboxOptions } from './dropdown-avatar.types';\n import { BentoAvatar } from '@/components/avatar';\n import BentoDropdown from '@/components/dropdown/dropdown.vue';\n\n const props = defineProps({\n ...BentoDropdown.props,\n /**\n * The option elements to populate the avatar dropdown with.\n * It must be an array of {@see BentoAvatarListboxOptions }\n * @property {string} value.label - Text to be displayed in the option.\n * @property {string | number} value.value - Value of the option.\n * @property {string} value.src - Image source of the avatar image.\n */\n items: {\n type: Array as PropType<BentoAvatarListboxOptions>,\n default: () => [],\n },\n });\n\n const emit = defineEmits([\"input\", \"show-more\", \"open\"]);\n\n const onInput = (selectedValue: BentoListboxSelectedValue) => emit('input', selectedValue);\n\n const dropdownItems = computed(() => props.items.map(({ value, label, src }) => ({ value, label, data: src })));\n</script>\n\n<script lang=\"ts\">\n /**\n * A Avatar Dropdown showing a selectable list of countries.\n *\n * @example\n * import { BentoDropdownAvatar } from '@adyen/bento-vue2';\n * import type { BentoAvatarListboxOptions } from '@adyen/bento-vue2'\n *\n * export default {\n * components: { BentoDropdownAvatar },\n * template: `\n * <bento-dropdown-avatar\n * v-model=\"selectedValue\"\n * :disabled=\"false\"\n * :multiple=\"true\"\n * :isOptionsDisabled=\"option => option.value === 2\"\n * :items=\"options\"\n * />\n * `,\n * setup() {\n * const selectedValue = ref('user-id-1') // Default value\n * const options: BentoAvatarListboxOptions = [\n * { label: 'User 1', value: 'user-id-1' },\n * { label: 'User 2', value: 'user-id-2', src: 'image-source.jpeg' },\n * ];\n * return { options, selectedValue };\n * }\n * }\n */\n export default defineComponent({\n name: 'bento-dropdown-avatar',\n });\n</script>\n","<template>\n <div>\n <bento-dropdown\n v-slot=\"{ label }\"\n v-bind=\"$props\"\n :items=\"countryItems\"\n @input=\"onInput\"\n @show-more=\"emit('show-more')\"\n @open=\"emit('open')\"\n >\n <bento-typography el=\"span\">{{ label }}</bento-typography>\n </bento-dropdown>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { defineComponent, type PropType, toRefs } from 'vue';\n import { type BentoCountryListboxOptions } from './dropdown-country.types';\n import { type BentoListboxSelectedValue } from '@/types/listbox';\n import { BentoTypography } from '@/components/typography';\n import { useCountryItems } from './composables/use-country-items';\n import { deprecate } from '@/utils/ts/deprecate';\n import { BentoCountryVariant } from '@/components/country';\n import BentoDropdown from '@/components/dropdown/dropdown.vue';\n\n const props = defineProps({\n ...BentoDropdown.props,\n /**\n * The option elements to populate the country dropdown with.\n * It must be an array of {@see BentoCountryListboxOptions }\n * * @deprecated {string} value.label - Use BentoDropdown instead of custom labels\n * * @property {BentoCountryCode | string} value.value - Country code of the option\n */\n items: {\n type: Array as PropType<BentoCountryListboxOptions>,\n default: () => [],\n },\n\n /**\n * Which label variant to display.\n * @values iso, name, phone_code, capital\n */\n variant: {\n type: String as PropType<BentoCountryVariant | `${BentoCountryVariant}`>,\n default: BentoCountryVariant.CUSTOM,\n validator: (value: BentoCountryVariant) => Object.values(BentoCountryVariant).includes(value),\n },\n });\n\n const emit = defineEmits([\"input\", \"show-more\", \"open\"]);\n\n const onInput = (selectedValue: BentoListboxSelectedValue) => emit('input', selectedValue);\n\n const { variant, items } = toRefs(props);\n const countryItems = useCountryItems(variant, items);\n\n if (variant.value === 'custom' || items.value.some(item => item.label)) {\n deprecate(\n 'BentoDropdownCountry \"custom\" variant and \"items\" prop \"label\" key',\n 'Use any of the other BentoDropdownCountry variants instead OR use BentoDropdown component for custom labels',\n '2.0.0'\n );\n }\n</script>\n\n<script lang=\"ts\">\n /**\n * A Country Dropdown showing a selectable list of countries.\n *\n * @example\n * import { BentoDropdownCountry, BentoCountryCode } from '@adyen/bento-vue2';\n * import type { BentoCountryListboxOptions } from '@adyen/bento-vue2'\n *\n * export default {\n * components: { BentoDropdown },\n * template: `\n * <bento-dropdown-country\n * v-model=\"selectedValue\"\n * :disabled=\"false\"\n * :multiple=\"true\"\n * :isOptionsDisabled=\"option => option.value === 2\"\n * :items=\"options\"\n * />\n * `,\n * setup() {\n * const selectedValue = ref(BentoCountryCode.NL) // Default value\n * const options: BentoCountryListboxOptions = [\n * { label: 'Option 1', value: BentoCountryCode.NL },\n * { label: 'Option 2', value: BentoCountryCode.BE },\n * ];\n * return { options, selectedValue };\n * }\n * }\n */\n export default defineComponent({\n name: 'b-dropdown-country',\n });\n</script>\n","<template>\n <bento-dropdown\n v-slot=\"slotProps\"\n v-bind=\"$props\"\n :search=\"search\"\n :items=\"filteredItems\"\n @input=\"onInput\"\n @show-more=\"emit('show-more')\"\n @open=\"emit('open')\"\n >\n <listbox-option-tag :option=\"slotProps\" />\n </bento-dropdown>\n</template>\n\n<script setup lang=\"ts\">\n import { defineComponent, type PropType, ref, watch } from 'vue';\n import type { BentoCurrencyListboxOptions } from './dropdown-currency.types';\n import type { BentoListboxSelectedValue } from '@/types/listbox';\n import { ListboxOptionTag } from '@/internal/listbox/';\n import BentoDropdown from '@/components/dropdown/dropdown.vue';\n import { useSearchBarFilter } from '@/components/search-bar/useSearchBarDataFilter';\n\n const props = defineProps({\n ...BentoDropdown.props,\n /**\n * The option elements to populate the currency dropdown with.\n * It must be an array of {@see BentoCurrencyListboxOptions }\n * @property {string} value.label - Text to be displayed in the option\n * @property {BentoCurrencyISOCode} value.code - Currency ISO code of the option\n */\n items: {\n type: Array as PropType<BentoCurrencyListboxOptions>,\n default: () => [],\n },\n });\n\n const emit = defineEmits([\"input\", \"show-more\", \"open\"]);\n\n const onInput = (selectedValue: BentoListboxSelectedValue) => emit('input', selectedValue);\n const filteredItems = ref<BentoCurrencyListboxOptions>([]);\n\n watch(\n () => props.items,\n () => (filteredItems.value = props.items),\n { immediate: true }\n );\n\n const search = props.search\n ? props.search\n : {\n debounceTime: 500,\n searchEvent: async (searchTerm: string) => {\n // Combine value and label to be able to search by the currency code\n const searchableItems = props.items.map(item => ({\n ...item,\n label: `${item.value} ${item.label}`,\n }));\n\n const searchResults = useSearchBarFilter(\n ref(searchTerm),\n ref<BentoCurrencyListboxOptions>(searchableItems),\n props?.search?.searchEvent,\n ref(false)\n ).value;\n\n // Restore original labels by removing the prepended value\n const normalizedResults = searchResults?.map(result => ({\n ...result,\n label: result.label.substring(result.value.length + 1),\n }));\n\n filteredItems.value = normalizedResults;\n },\n };\n</script>\n\n<script lang=\"ts\">\n /**\n * A Currency Dropdown showing a selectable list of currencies.\n *\n * @example\n * import { BentoDropdownCountry, BentoCountryCode } from '@adyen/bento-vue2';\n * import type { BentoCountryListboxOptions } from '@adyen/bento-vue2'\n *\n * export default {\n * components: { BentoDropdown },\n * template: `\n * <bento-dropdown-currency\n * v-model=\"selectedValue\"\n * :disabled=\"false\"\n * :multiple=\"true\"\n * :isOptionsDisabled=\"option => option.value === 2\"\n * :items=\"options\"\n * />\n * `,\n * setup() {\n * const selectedValue = ref(BentoCountryCode.NL) // Default value\n * const options: BentoCountryListboxOptions = [\n * { label: 'Option 1', value: BentoCountryCode.NL },\n * { label: 'Option 2', value: BentoCountryCode.BE },\n * ];\n * return { options, selectedValue };\n * }\n * }\n */\n export default defineComponent({\n name: 'b-dropdown-currency',\n });\n</script>\n","<template>\n <div>\n <bento-dropdown\n v-slot=\"{ value, label }\"\n v-bind=\"$props\"\n @input=\"onInput\"\n @show-more=\"emit('show-more')\"\n @open=\"emit('open')\"\n >\n <bento-payment-method :type=\"value\" :label=\"label\" />\n </bento-dropdown>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { defineComponent, type PropType } from 'vue';\n import { type BentoPaymentMethodListboxOptions } from './dropdown-payment-method.types';\n import { type BentoListboxSelectedValue } from '@/types/listbox';\n import { BentoPaymentMethod } from '@/components/payment-method';\n import BentoDropdown from '@/components/dropdown/dropdown.vue';\n\n defineProps({\n ...BentoDropdown.props,\n /**\n * The option elements to populate the payment method dropdown with.\n * It must be an array of {@see BentoPaymentMethodListboxOptions }\n * @property {string} value.label - Text to be displayed in the option\n * @property {string} value.value - Payment type code that translates to a payment icon name {@see https://adyen-ui-assets.netlify.app/?path=/story/packages-ui-assets-payment-method-icons--icons}\n */\n items: {\n type: Array as PropType<BentoPaymentMethodListboxOptions>,\n default: () => [],\n },\n });\n\n const emit = defineEmits([\"input\", \"show-more\", \"open\"]);\n\n const onInput = (selectedValue: BentoListboxSelectedValue) => emit('input', selectedValue);\n</script>\n\n<script lang=\"ts\">\n /**\n * A Payment method Dropdown showing a selectable list of countries.\n *\n * @example\n * import { BentoDropdownPaymentMethod } from '@adyen/bento-vue2';\n * import type { BentoPaymentMethodListboxOptions } from '@adyen/bento-vue2'\n *\n * export default {\n * components: { BentoDropdownPaymentMethod },\n * template: `\n * <bento-dropdown-payment-method\n * v-model=\"selectedValue\"\n * :disabled=\"false\"\n * :multiple=\"true\"\n * :isOptionsDisabled=\"option => option.value === 'Visa'\"\n * :items=\"options\"\n * />\n * `,\n * setup() {\n * const selectedValue = ref('ideal') // Default value\n * const options: BentoPaymentMethodListboxOptions = [\n * { label: 'Option 1', value: 'ideal' },\n * { label: 'Option 2', value: 'visa' },\n * ];\n * return { options, selectedValue };\n * }\n * }\n */\n export default defineComponent({\n name: 'bento-dropdown-payment-method',\n });\n</script>\n","<template>\n <bento-dropdown\n v-slot=\"{ label, data }\"\n v-bind=\"$props\"\n class=\"b-dropdown-tag\"\n :items=\"tagItems\"\n show-slot-content-in-multiple\n @input=\"onInput\"\n @show-more=\"emit('show-more')\"\n @open=\"emit('open')\"\n >\n <listbox-option-tag :option=\"{ value: label, data, label: '' }\" />\n </bento-dropdown>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, defineComponent, type PropType } from 'vue';\n import type { BentoTagListboxOptions } from './dropdown-tag.types';\n import type { BentoListboxSelectedValue } from '@/types/listbox';\n import { ListboxOptionTag } from '../../../../internal';\n import BentoDropdown from '../../../dropdown.vue';\n\n const props = defineProps({\n ...BentoDropdown.props,\n /**\n * The option elements to populate the tag dropdown with.\n * It must be an array of {@see BentoTagListboxOptions }\n * @property {string} value.label - Text to be displayed in the option\n * @property {string | number} value.value - Value of the option\n * @property {string} value.variant - The BentTag variant shown for the option.\n */\n items: {\n type: Array as PropType<BentoTagListboxOptions>,\n default: () => [],\n },\n });\n\n const emit = defineEmits([\"input\", \"show-more\", \"open\"]);\n\n const onInput = (selectedValue: BentoListboxSelectedValue) => emit('input', selectedValue);\n\n const tagItems = computed(() => props.items?.map(({ label, value, variant }) => ({ label, value, data: variant })));\n</script>\n\n<script lang=\"ts\">\n /**\n * A Tag Dropdown showing a selectable list of tags.\n *\n * @example\n * import { BentoDropdownTag } from '@adyen/bento-vue2';\n * import type { BentoTagListboxOptions } from '@adyen/bento-vue2'\n *\n * export default {\n * components: { BentoDropdownTag },\n * template: `\n * <bento-dropdown-tag\n * v-model=\"selectedValue\"\n * :disabled=\"false\"\n * :items=\"options\"\n * />\n * `,\n * setup() {\n * const selectedValue = ref('unique-id-1') // Default value\n * const options: BentoTagListboxOptions = [\n * { label: 'Offline', value: 'unique-id-1', variant: 'red' },\n * { label: 'Online', value: 'unique-id-2', variant: 'green' },\n * ];\n * return { options, selectedValue };\n * }\n * }\n */\n export default defineComponent({\n name: 'bento-dropdown-tag',\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./dropdown-tag.scss\" />\n"],"names":["__default__$4","defineComponent","onInput","selectedValue","emit","dropdownItems","computed","props","value","label","src","__default__$3","variant","items","toRefs","countryItems","useCountryItems","item","deprecate","__default__$2","filteredItems","ref","watch","search","searchTerm","searchableItems","searchResults","useSearchBarFilter","_a","normalizedResults","result","__default__$1","__default__","tagItems"],"mappings":";;;;;;;;;;AAyEI,MAAAA,IAAAC,EAAA;AAAA,EAA+B,MAAA;AAE/B,CAAA;;;;;;;;;;;;;;;;;;iBApCAC,IAAA,CAAAC,MAAAC,EAAA,SAAAD,CAAA,GAEAE,IAAAC,EAAA,MAAAC,EAAA,MAAA,IAAA,CAAA,EAAA,OAAAC,GAAA,OAAAC,GAAA,KAAAC,EAAA,OAAA,EAAA,OAAAF,GAAA,OAAAC,GAAA,MAAAC,EAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;sBCqDAC,IAAAV,EAAA;AAAA,EAA+B,MAAA;AAE/B,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;iBA7CAC,IAAA,CAAAC,MAAAC,EAAA,SAAAD,CAAA,GAEA,EAAA,SAAAS,GAAA,OAAAC,EAAA,IAAAC,EAAAP,CAAA,GACAQ,IAAAC,EAAAJ,GAAAC,CAAA;AAEA,YAAAD,EAAA,UAAA,YAAAC,EAAA,MAAA,KAAA,CAAAI,MAAAA,EAAA,KAAA,MACIC;AAAA,MAAA;AAAA,MACI;AAAA,MACA;AAAA,IACA;;;;;;;;;;;;;;;;;;;;sBC6CRC,IAAAlB,EAAA;AAAA,EAA+B,MAAA;AAE/B,CAAA;;;;;;;;;;;;;;;;;iBArEAC,IAAA,CAAAC,MAAAC,EAAA,SAAAD,CAAA,GACAiB,IAAAC,EAAA,CAAA,CAAA;AAEA,IAAAC;AAAA,MAAA,MAAAf,EAAA;AAAA,MACgB,MAAAa,EAAA,QAAAb,EAAA;AAAA,MACuB,EAAA,WAAA,GAAA;AAAA,IACjB;AAGtB,UAAAgB,IAAAhB,EAAA,SAAAA,EAAA,SAAA;AAAA,MAEM,cAAA;AAAA,MACkB,aAAA,OAAAiB,MAAA;;AAGV,cAAAC,IAAAlB,EAAA,MAAA,IAAA,CAAAU,OAAA;AAAA,UAAiD,GAAAA;AAAA,UAC1C,OAAA,GAAAA,EAAA,KAAA,IAAAA,EAAA,KAAA;AAAA,QAC+B,EAAA,GAGtCS,IAAAC;AAAA,UAAsBN,EAAAG,CAAA;AAAA,UACJH,EAAAI,CAAA;AAAA,WACkCG,IAAArB,KAAA,gBAAAA,EAAA,WAAA,gBAAAqB,EAAA;AAAA,UACjCP,EAAA,EAAA;AAAA,QACN,EAAA,OAIbQ,IAAAH,KAAA,gBAAAA,EAAA,IAAA,CAAAI,OAAA;AAAA,UAAwD,GAAAA;AAAA,UACjD,OAAAA,EAAA,MAAA,UAAAA,EAAA,MAAA,SAAA,CAAA;AAAA,QACkD;AAGzD,QAAAV,EAAA,QAAAS;AAAA,MAAsB;AAAA,IAC1B;;;;;;;;;;;;;;;;;;;;;sBCHVE,IAAA9B,EAAA;AAAA,EAA+B,MAAA;AAE/B,CAAA;;;;;;;;;;;;;;;;;0CAlCA,CAAAE,MAAAC,EAAA,SAAAD,CAAA;;;;;;;;;;;;;;;;;;;;sBCkCA6B,IAAA/B,EAAA;AAAA,EAA+B,MAAA;AAE/B,CAAA;;;;;;;;;;;;;;;;;;iBAlCAC,IAAA,CAAAC,MAAAC,EAAA,SAAAD,CAAA,GAEA8B,IAAA3B,EAAA,MAAA;;AAAA,cAAAsB,IAAArB,EAAA,UAAA,gBAAAqB,EAAA,IAAA,CAAA,EAAA,OAAAnB,GAAA,OAAAD,GAAA,SAAAI,EAAA,OAAA,EAAA,OAAAH,GAAA,OAAAD,GAAA,MAAAI,EAAA;AAAA,KAAA;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,20 +1,20 @@
1
1
  import { ref as h, watch as X, computed as r, defineComponent as R, useSlots as ge, toRefs as he, nextTick as S, useAttrs as Ne, toRef as w, inject as Re } from "vue";
2
2
  import { d as ve, B as Ae } from "./typography.hlOAxsEn.js";
3
- import { a as Y, b as P, c as Me, B as W, D as Pe } from "./dropdown-default-textbox.yLeN0E2z.js";
4
- /* empty css */
5
- import { n as k } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
6
- import { s as Z } from "./events.CMzGybJJ.js";
7
3
  import { g as $ } from "./generate-uid.NJ8tVoha.js";
8
- import { u as $e } from "./aria-label.CaUURpnB.js";
4
+ import { u as Me } from "./aria-label.CaUURpnB.js";
9
5
  import { u as G } from "./index.B6WW_F-J.js";
10
- import { a as p, b as Q, B as me, c as ke, u as Fe, d as Ke } from "./use-cached-selected-values.IsfhJHxQ.js";
11
- import { u as ze } from "./use-form-layout-loading.D3lALhtC.js";
6
+ import { a as p, b as Q, B as me, c as Pe, u as $e, d as ke } from "./use-cached-selected-values.BZd3CTeP.js";
7
+ import { u as Fe } from "./use-form-layout-loading.D3lALhtC.js";
8
+ import { a as Y, b as P, c as Ke, B as W, D as ze } from "./dropdown-default-textbox.yLeN0E2z.js";
12
9
  import { u as We } from "./use-has-slot.C9lQZ6nz.js";
13
10
  import { B as E, a as Ue } from "./keyboard-navigation.pB8weElW.js";
14
11
  import { B as Ve } from "./directive.Cbdox5VL.js";
15
12
  import { F as je, E as qe } from "./field-label.Auq-Pzho.js";
16
13
  import { P as be } from "./popper-container.agLYtGwv.js";
17
14
  import { h as He } from "./button-actions.B81vY51z.js";
15
+ import { n as k } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
16
+ /* empty css */
17
+ import { s as Z } from "./events.CMzGybJJ.js";
18
18
  import "../assets/dropdown.css";
19
19
  const Je = {
20
20
  "en-US": {
@@ -379,7 +379,7 @@ const ct = ut.exports, pt = R({
379
379
  };
380
380
  return t({
381
381
  focus: g
382
- }), { __sfc: !0, emit: o, props: e, baseTextbox: n, conditionalClasses: l, isDropdownOpen: s, onInput: i, onKeyDown: c, openDropdown: b, closeDropdown: d, clearValue: u, listeners: _, focus: g, BentoDropdownSize: W, DropdownBaseTextbox: Me, ChevronDownSmallIcon: lt, ChevronUpSmallIcon: ct };
382
+ }), { __sfc: !0, emit: o, props: e, baseTextbox: n, conditionalClasses: l, isDropdownOpen: s, onInput: i, onKeyDown: c, openDropdown: b, closeDropdown: d, clearValue: u, listeners: _, focus: g, BentoDropdownSize: W, DropdownBaseTextbox: Ke, ChevronDownSmallIcon: lt, ChevronUpSmallIcon: ct };
383
383
  }
384
384
  });
385
385
  var vt = function() {
@@ -519,7 +519,7 @@ const Lt = {
519
519
  i18n: { messages: Lt },
520
520
  name: "b-dropdown",
521
521
  components: {
522
- DropdownInputDefault: Pe,
522
+ DropdownInputDefault: ze,
523
523
  DropdownInputSmall: yt
524
524
  }
525
525
  }), Ot = /* @__PURE__ */ R({
@@ -557,12 +557,12 @@ const Lt = {
557
557
  emits: ["input", "show-more", "open"],
558
558
  setup(a, { expose: t, emit: o }) {
559
559
  var fe;
560
- const e = a, n = Ne(), l = ge(), s = We(l), { t: i } = G(), c = h(null), b = h(null), d = h(null), u = h(!1), _ = $("bento-dropdown-options-container"), g = $("dropdown-label"), v = $("dropdown-description"), O = $("dropdown-error"), { isReadOnly: L } = ze(w(e, "readonly")), { cachedSelectedListboxOptions: x, cachedListboxSelectedValues: y, setCachedValues: I } = ke(
560
+ const e = a, n = Ne(), l = ge(), s = We(l), { t: i } = G(), c = h(null), b = h(null), d = h(null), u = h(!1), _ = $("bento-dropdown-options-container"), g = $("dropdown-label"), v = $("dropdown-description"), O = $("dropdown-error"), { isReadOnly: L } = Fe(w(e, "readonly")), { cachedSelectedListboxOptions: x, cachedListboxSelectedValues: y, setCachedValues: I } = Pe(
561
561
  w(e, "items"),
562
562
  w(e, "value"),
563
563
  w(e, "multiple"),
564
564
  w(e, "enableValueLabelPair")
565
- ), D = h(n["aria-label"]), B = h(n["aria-describedby"]), { ariaLabel: F, label: U } = he(e), m = r(() => i("ariaLabelFallback")), C = $e({
565
+ ), D = h(n["aria-label"]), B = h(n["aria-describedby"]), { ariaLabel: F, label: U } = he(e), m = r(() => i("ariaLabelFallback")), C = Me({
566
566
  // TODO: take ariaLabel ref away when aria-label prop is removed
567
567
  ariaLabel: F.value || D,
568
568
  label: U,
@@ -591,7 +591,7 @@ const Lt = {
591
591
  }), te = r(() => {
592
592
  const f = V.value.findIndex(({ value: N }) => e.enableValueLabelPair ? e.value.value === N : e.value === N);
593
593
  return f > -1 ? f : 0;
594
- }), { isMultiLevelSelect: q, flattenedItemsList: oe } = Fe(M), ne = r(() => q.value && !e.staticCategories), ae = r(() => ne.value ? "treeitem" : "option"), Oe = r(() => {
594
+ }), { isMultiLevelSelect: q, flattenedItemsList: oe } = $e(M), ne = r(() => q.value && !e.staticCategories), ae = r(() => ne.value ? "treeitem" : "option"), Oe = r(() => {
595
595
  if (e.multiple) {
596
596
  const f = Array.isArray(e.value) ? e.value.length : 0, N = q.value ? oe.value.length : M.value.length;
597
597
  return f === 0 ? null : !e.hasMoreItems && N > 0 && N === f ? i("all") : f;
@@ -606,7 +606,7 @@ const Lt = {
606
606
  ), se = r(() => {
607
607
  var f;
608
608
  return (f = d.value) == null ? void 0 : f.$el;
609
- }), { visibleDomOptions: le, updateVisibleDomOptions: H } = Ke(
609
+ }), { visibleDomOptions: le, updateVisibleDomOptions: H } = ke(
610
610
  se,
611
611
  V,
612
612
  ae
@@ -703,4 +703,4 @@ export {
703
703
  Jt as b,
704
704
  wt as u
705
705
  };
706
- //# sourceMappingURL=dropdown.BOvtYKXS.js.map
706
+ //# sourceMappingURL=dropdown.RxD2TqnP.js.map