@adyen/bento-vue2 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.
- package/dist/@types/components.d.ts +6 -0
- package/dist/@types/index.d.ts +620 -373
- package/dist/action-bar.js +1 -1
- package/dist/assets/accordion-item.css +1 -1
- package/dist/assets/action-bar.css +1 -1
- package/dist/assets/base-modal.css +1 -1
- package/dist/assets/card.css +1 -1
- package/dist/assets/currency.css +1 -1
- package/dist/assets/data-grid.css +1 -1
- package/dist/assets/dialog-page.css +1 -1
- package/dist/assets/inspector.css +1 -1
- package/dist/assets/layout-row.css +1 -0
- package/dist/assets/menu.css +1 -1
- package/dist/assets/modal-fullscreen.css +1 -1
- package/dist/assets/popover.css +1 -1
- package/dist/assets/promo-banner.css +1 -0
- package/dist/assets/selection-card-group.css +1 -1
- package/dist/assets/sidepanel.css +1 -1
- package/dist/assets/structured-list-item.css +1 -1
- package/dist/chunks/{action-bar.DJmskrzB.js → action-bar.r05wfyni.js} +2 -2
- package/dist/chunks/{action-bar.DJmskrzB.js.map → action-bar.r05wfyni.js.map} +1 -1
- package/dist/chunks/{code-snippet.CmBhucys.js → code-snippet.DRH4X9pH.js} +2 -2
- package/dist/chunks/{code-snippet.CmBhucys.js.map → code-snippet.DRH4X9pH.js.map} +1 -1
- package/dist/chunks/{currency.CEqsVP2T.js → currency.P7Psn_SK.js} +53 -61
- package/dist/chunks/currency.P7Psn_SK.js.map +1 -0
- package/dist/chunks/{dashboard-section.9R8bIh92.js → dashboard-section.DchlD4B2.js} +2 -2
- package/dist/chunks/{dashboard-section.9R8bIh92.js.map → dashboard-section.DchlD4B2.js.map} +1 -1
- package/dist/chunks/{data-grid.Czo9hi7m.js → data-grid.ahAWR42s.js} +934 -895
- package/dist/chunks/data-grid.ahAWR42s.js.map +1 -0
- package/dist/chunks/es6.b4enG1py.js +10 -0
- package/dist/chunks/es6.b4enG1py.js.map +1 -0
- package/dist/chunks/image.C2D2hKat.js +56 -0
- package/dist/chunks/image.C2D2hKat.js.map +1 -0
- package/dist/chunks/index.D5am6ibQ.js +249 -0
- package/dist/chunks/{index.iCshT3Hx.js.map → index.D5am6ibQ.js.map} +1 -1
- package/dist/chunks/layout-row.CtFsZ5-v.js +87 -0
- package/dist/chunks/layout-row.CtFsZ5-v.js.map +1 -0
- package/dist/chunks/promo-banner.NSOVGA7M.js +70 -0
- package/dist/chunks/promo-banner.NSOVGA7M.js.map +1 -0
- package/dist/chunks/{secondary-nav.bchOEARi.js → secondary-nav.DMw1l7rH.js} +3 -3
- package/dist/chunks/{secondary-nav.bchOEARi.js.map → secondary-nav.DMw1l7rH.js.map} +1 -1
- package/dist/chunks/selection-card-group.BjOuUbQD.js +299 -0
- package/dist/chunks/selection-card-group.BjOuUbQD.js.map +1 -0
- package/dist/chunks/{structured-list-item.C4gxvOkq.js → structured-list-item.CAcBJutf.js} +6 -6
- package/dist/chunks/structured-list-item.CAcBJutf.js.map +1 -0
- package/dist/chunks/{timeline-item.Bmn0Pu11.js → timeline-item.CxB3KFiu.js} +2 -2
- package/dist/chunks/{timeline-item.Bmn0Pu11.js.map → timeline-item.CxB3KFiu.js.map} +1 -1
- package/dist/chunks/{tutorial.DG5I6TRS.js → tutorial.CGjM0EJT.js} +2 -2
- package/dist/chunks/{tutorial.DG5I6TRS.js.map → tutorial.CGjM0EJT.js.map} +1 -1
- package/dist/code-snippet.js +1 -1
- package/dist/currency.js +1 -1
- package/dist/dashboard-template.js +1 -1
- package/dist/data-grid.js +1 -1
- package/dist/image.js +1 -1
- package/dist/index.js +184 -177
- package/dist/index.js.map +1 -1
- package/dist/layout.js +6 -0
- package/dist/layout.js.map +1 -0
- package/dist/promo-banner.js +7 -0
- package/dist/promo-banner.js.map +1 -0
- package/dist/secondary-nav.js +1 -1
- package/dist/selection-card.js +1 -1
- package/dist/structured-list.js +1 -1
- package/dist/styles/bento-dark.css +16 -0
- package/dist/styles/bento-light.css +16 -0
- package/dist/styles/bento.css +16 -0
- package/dist/styles/legacy.css +16 -0
- package/dist/styles/styleguide.css +16 -0
- package/dist/timeline.js +1 -1
- package/dist/tutorial.js +1 -1
- package/dist/web-types.json +276 -83
- package/package.json +2 -2
- package/dist/chunks/currency.CEqsVP2T.js.map +0 -1
- package/dist/chunks/data-grid.Czo9hi7m.js.map +0 -1
- package/dist/chunks/es6.BvpG4Oi6.js +0 -9
- package/dist/chunks/es6.BvpG4Oi6.js.map +0 -1
- package/dist/chunks/image.B3uqhFjl.js +0 -82
- package/dist/chunks/image.B3uqhFjl.js.map +0 -1
- package/dist/chunks/index.iCshT3Hx.js +0 -183
- package/dist/chunks/selection-card-group.CW7c72r2.js +0 -255
- package/dist/chunks/selection-card-group.CW7c72r2.js.map +0 -1
- package/dist/chunks/structured-list-item.C4gxvOkq.js.map +0 -1
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { defineComponent as y, provide as R, toRef as $, computed as s, useSlots as x, inject as E, ref as _, watch as S, nextTick as g, onMounted as z } from "vue";
|
|
2
|
+
import { n as w } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
|
|
3
|
+
import { B as T } from "./typography.Bu_WAKdf.js";
|
|
4
|
+
import { u as B } from "./use-has-slot.C9lQZ6nz.js";
|
|
5
|
+
import { c as I } from "./index.D5am6ibQ.js";
|
|
6
|
+
import "../assets/layout-row.css";
|
|
7
|
+
const h = Symbol("Layout size inject key"), O = {}, P = /* @__PURE__ */ y({
|
|
8
|
+
...O,
|
|
9
|
+
__name: "layout",
|
|
10
|
+
props: {
|
|
11
|
+
variant: { default: "page" },
|
|
12
|
+
size: { default: "full-width" }
|
|
13
|
+
},
|
|
14
|
+
setup(n) {
|
|
15
|
+
const o = n;
|
|
16
|
+
R(h, $(o, "size"));
|
|
17
|
+
const l = s(() => ({
|
|
18
|
+
"b-layout--component": o.variant === "component"
|
|
19
|
+
})), t = o.variant === "page" ? "main" : "div";
|
|
20
|
+
return { __sfc: !0, props: o, conditionalClasses: l, wrapperElement: t };
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
var k = function() {
|
|
24
|
+
var o = this, l = o._self._c, t = o._self._setupProxy;
|
|
25
|
+
return l(t.wrapperElement, { tag: "component", staticClass: "b-layout", class: t.conditionalClasses }, [o._t("default")], 2);
|
|
26
|
+
}, F = [], M = /* @__PURE__ */ w(
|
|
27
|
+
P,
|
|
28
|
+
k,
|
|
29
|
+
F,
|
|
30
|
+
!1,
|
|
31
|
+
null,
|
|
32
|
+
"6a60a8fd"
|
|
33
|
+
);
|
|
34
|
+
const Z = M.exports, W = ["3-9", "9-3", "4-8", "8-4", "6-6"], j = {}, N = /* @__PURE__ */ y({
|
|
35
|
+
...j,
|
|
36
|
+
__name: "layout-row",
|
|
37
|
+
props: {
|
|
38
|
+
columnsLayout: { default: "6-6" }
|
|
39
|
+
},
|
|
40
|
+
setup(n) {
|
|
41
|
+
const o = n, l = x(), t = B(l), a = E(h, _("full-width")), e = _(null), m = _(null), f = _(null), u = s(() => a.value === "full-width"), d = s(() => W.includes(o.columnsLayout)), C = s(() => `b-layout-row--${a.value}`), b = s(() => ({
|
|
42
|
+
"b-layout-row__column-wrapper": u.value
|
|
43
|
+
})), L = s(() => {
|
|
44
|
+
const c = d.value ? o.columnsLayout.split("-") : [6, 6], r = (i) => u.value ? c[i] : a.value;
|
|
45
|
+
return {
|
|
46
|
+
col1: `b-layout-row__column--${r(0)}`,
|
|
47
|
+
col2: `b-layout-row__column--${r(1)}`
|
|
48
|
+
};
|
|
49
|
+
});
|
|
50
|
+
return S(
|
|
51
|
+
I("(min-width: 768px)"),
|
|
52
|
+
async (c) => {
|
|
53
|
+
var i, p, v;
|
|
54
|
+
await g();
|
|
55
|
+
const r = ((i = e.value) == null ? void 0 : i.firstChild) === m.value;
|
|
56
|
+
c && !r ? (p = e.value) == null || p.prepend(m.value) : !c && (o.columnsLayout === "3-9" || o.columnsLayout === "4-8") && ((v = e.value) == null || v.prepend(f.value));
|
|
57
|
+
},
|
|
58
|
+
{ immediate: !0 }
|
|
59
|
+
), z(() => {
|
|
60
|
+
if (!u.value && (t("col-1") || t("col-2")))
|
|
61
|
+
throw new Error(
|
|
62
|
+
"Column slots can only be used with the `full-width` size. Please check documentation for more info."
|
|
63
|
+
);
|
|
64
|
+
if (!d.value)
|
|
65
|
+
throw new Error(
|
|
66
|
+
`${o.columnsLayout} is not a valid column layout. Please refer to the documentation for the list of available column layouts.`
|
|
67
|
+
);
|
|
68
|
+
}), { __sfc: !0, props: o, slots: l, hasSlot: t, size: a, row: e, col1: m, col2: f, isFullWidth: u, isValidColumnLayout: d, conditionalRowClass: C, conditionalRowWithColumnsClass: b, conditionalColumnClass: L, BentoTypography: T };
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
var Y = function() {
|
|
72
|
+
var o = this, l = o._self._c, t = o._self._setupProxy;
|
|
73
|
+
return l(t.BentoTypography, { staticClass: "b-layout-row", class: t.conditionalRowClass, attrs: { el: "div", "rich-text": "" } }, [t.hasSlot("default") ? l("div", [o._t("default")], 2) : t.hasSlot("col-1") && t.hasSlot("col-2") ? l("div", { ref: "row", class: t.conditionalRowWithColumnsClass }, [l("div", { ref: "col1", class: t.conditionalColumnClass.col1 }, [o._t("col-1")], 2), l("div", { ref: "col2", class: t.conditionalColumnClass.col2 }, [o._t("col-2")], 2)]) : o._e()]);
|
|
74
|
+
}, A = [], H = /* @__PURE__ */ w(
|
|
75
|
+
N,
|
|
76
|
+
Y,
|
|
77
|
+
A,
|
|
78
|
+
!1,
|
|
79
|
+
null,
|
|
80
|
+
"a1fa2222"
|
|
81
|
+
);
|
|
82
|
+
const q = H.exports;
|
|
83
|
+
export {
|
|
84
|
+
q as a,
|
|
85
|
+
Z as l
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=layout-row.CtFsZ5-v.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout-row.CtFsZ5-v.js","sources":["../../src/components/layout/layout.keys.ts","../../src/components/layout/layout.vue","../../src/components/layout/layout.types.ts","../../src/components/layout/components/layout-row/layout-row.vue"],"sourcesContent":["export const LAYOUT_SIZE_INJECTION_KEY = Symbol('Layout size inject key');\n","<template>\n <component :is=\"wrapperElement\" class=\"b-layout\" :class=\"conditionalClasses\">\n <slot />\n </component>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, provide, toRef } from 'vue';\n import { BentoLayoutProps } from './layout.types';\n import { LAYOUT_SIZE_INJECTION_KEY } from '@/components/layout/layout.keys';\n\n const props = defineProps({\n variant: { default: 'page' },\n size: { default: 'full-width' }\n});\n\n provide(LAYOUT_SIZE_INJECTION_KEY, toRef(props, 'size'));\n\n const conditionalClasses = computed(() => ({\n 'b-layout--component': props.variant === 'component',\n }));\n\n const wrapperElement = props.variant === 'page' ? 'main' : 'div';\n</script>\n\n<script lang=\"ts\">\n /**\n * Layout is a basic scaffolding of a page that defines spacing, some functionality and responsive behaviour of its top level sections.\n *\n * @example\n * import { BentoLayout, BentoLayoutRow } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoLayout, BentoLayoutRow },\n * template: `\n * <bento-layout size=\"narrow\">\n * <bento-layout-row>\n * Row 1\n * </bento-layout-row>\n * <bento-layout-row>\n * Row 2\n * </bento-layout-row>\n * </bento-layout>\n * `\n * }\n */\n export default {};\n</script>\n\n<style lang=\"scss\" scoped src=\"./layout.scss\" />\n","/**\n * @private\n */\nexport const BentoLayoutVariantOptions = ['page', 'component'] as const;\nexport const BentoLayoutSizeOptions = ['full-width', 'narrow', 'half-width'] as const;\nexport const BentoLayoutRowColumnLayoutOptions = ['3-9', '9-3', '4-8', '8-4', '6-6'] as const;\n\n// Public\nexport type BentoLayoutVariant = (typeof BentoLayoutVariantOptions)[number];\nexport type BentoLayoutSize = (typeof BentoLayoutSizeOptions)[number];\nexport type BentoLayoutRowColumnLayout = (typeof BentoLayoutRowColumnLayoutOptions)[number];\n\nexport interface BentoLayoutProps {\n /** Defines if the layout is used in a page or only a section */\n variant?: BentoLayoutVariant;\n /** Defines the size of the page */\n size?: BentoLayoutSize;\n}\n\nexport interface BentoLayoutRowProps {\n /** Sets the layout of the columns when multiple columns are used */\n columnsLayout?: BentoLayoutRowColumnLayout;\n}\n","<template>\n <bento-typography el=\"div\" rich-text class=\"b-layout-row\" :class=\"conditionalRowClass\">\n <div v-if=\"hasSlot('default')\">\n <slot />\n </div>\n <div v-else-if=\"hasSlot('col-1') && hasSlot('col-2')\" ref=\"row\" :class=\"conditionalRowWithColumnsClass\">\n <div ref=\"col1\" :class=\"conditionalColumnClass.col1\">\n <slot name=\"col-1\"></slot>\n </div>\n <div ref=\"col2\" :class=\"conditionalColumnClass.col2\">\n <slot name=\"col-2\"></slot>\n </div>\n </div>\n </bento-typography>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, inject, nextTick, onMounted, ref, Ref, useSlots, watch } from 'vue';\n import { BentoTypography } from '@/components/typography';\n import { useHasSlot } from '@/composables';\n import {\n BentoLayoutRowColumnLayoutOptions,\n type BentoLayoutRowProps,\n type BentoLayoutSize,\n } from '../../layout.types';\n import { useMediaQuery } from '@vueuse/core';\n\n import { LAYOUT_SIZE_INJECTION_KEY } from '@/components/layout/layout.keys';\n\n const props = defineProps({\n columnsLayout: { default: '6-6' }\n});\n\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n const size = inject<Ref<BentoLayoutSize>>(LAYOUT_SIZE_INJECTION_KEY, ref('full-width'));\n\n const row = ref<HTMLElement>(null);\n const col1 = ref<HTMLElement>(null);\n const col2 = ref<HTMLElement>(null);\n\n const isFullWidth = computed(() => size.value === 'full-width');\n const isValidColumnLayout = computed(() => BentoLayoutRowColumnLayoutOptions.includes(props.columnsLayout));\n\n const conditionalRowClass = computed(() => `b-layout-row--${size.value}`);\n\n const conditionalRowWithColumnsClass = computed(() => ({\n 'b-layout-row__column-wrapper': isFullWidth.value,\n }));\n\n const conditionalColumnClass = computed(() => {\n const columns = isValidColumnLayout.value ? props.columnsLayout.split('-') : [6, 6];\n const getColumnModifier = index => (isFullWidth.value ? columns[index] : size.value);\n\n return {\n col1: `b-layout-row__column--${getColumnModifier(0)}`,\n col2: `b-layout-row__column--${getColumnModifier(1)}`,\n };\n });\n\n watch(\n useMediaQuery('(min-width: 768px)'),\n async isLargeScreen => {\n await nextTick();\n const areColumnsInTheRightOrder = row.value?.firstChild === col1.value;\n if (isLargeScreen && !areColumnsInTheRightOrder) {\n row.value?.prepend(col1.value);\n } else if (!isLargeScreen && (props.columnsLayout === '3-9' || props.columnsLayout === '4-8')) {\n row.value?.prepend(col2.value);\n }\n },\n { immediate: true }\n );\n\n onMounted(() => {\n if (!isFullWidth.value && (hasSlot('col-1') || hasSlot('col-2'))) {\n throw new Error(\n 'Column slots can only be used with the `full-width` size. Please check documentation for more info.'\n );\n }\n\n if (!isValidColumnLayout.value) {\n throw new Error(\n `${props.columnsLayout} is not a valid column layout. Please refer to the documentation for the list of available column layouts.`\n );\n }\n });\n</script>\n\n<script lang=\"ts\">\n /**\n * Page row is subcomponent of Layout meant to be used to generate the row layout.\n *\n * @example\n * import { BentoLayout, BentoLayoutRow } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoLayout, BentoLayoutRow },\n * template: `\n * <bento-layout>\n * <bento-layout-row columns-layout=\"3-9\">\n * <template #col-1>Narrow 3-9</template>\n * <template #col-2>Wide 3-9</template>\n * </bento-layout-row>\n * <bento-layout-row>\n * <template #col-1>6-6</template>\n * <template #col-2>6-6</template>\n * </bento-layout-row>\n * </bento-layout>\n * `\n * }\n */\n export default {};\n</script>\n\n<style lang=\"scss\" scoped src=\"./layout-row.scss\" />\n"],"names":["LAYOUT_SIZE_INJECTION_KEY","__default__$1","provide","toRef","props","conditionalClasses","computed","wrapperElement","BentoLayoutRowColumnLayoutOptions","__default__","slots","useSlots","hasSlot","useHasSlot","size","inject","ref","row","col1","col2","isFullWidth","isValidColumnLayout","conditionalRowClass","conditionalRowWithColumnsClass","conditionalColumnClass","columns","getColumnModifier","index","watch","useMediaQuery","isLargeScreen","nextTick","areColumnsInTheRightOrder","_a","_b","_c","onMounted"],"mappings":";;;;;;AAAa,MAAAA,IAAA,OAAA,wBAAA,GC8CTC,IAAA,CAAA;;;;;;;;;AA9BA,IAAAC,EAAAF,GAAAG,EAAAC,GAAA,MAAA,CAAA;AAEA,UAAAC,IAAAC,EAAA,OAAA;AAAA,MAA2C,uBAAAF,EAAA,YAAA;AAAA,IACE,EAAA,GAG7CG,IAAAH,EAAA,YAAA,SAAA,SAAA;;;;;;;;;;;;;;;qBCjBGI,IAAA,CAAA,OAAA,OAAA,OAAA,OAAA,KAAA,GC2GHC,IAAA,CAAA;;;;;;;iBA/EAC,IAAAC,EAAA,GACAC,IAAAC,EAAAH,CAAA,GACAI,IAAAC,EAAAf,GAAAgB,EAAA,YAAA,CAAA,GAEAC,IAAAD,EAAA,IAAA,GACAE,IAAAF,EAAA,IAAA,GACAG,IAAAH,EAAA,IAAA,GAEAI,IAAAd,EAAA,MAAAQ,EAAA,UAAA,YAAA,GACAO,IAAAf,EAAA,MAAAE,EAAA,SAAAJ,EAAA,aAAA,CAAA,GAEAkB,IAAAhB,EAAA,MAAA,iBAAAQ,EAAA,KAAA,EAAA,GAEAS,IAAAjB,EAAA,OAAA;AAAA,MAAuD,gCAAAc,EAAA;AAAA,IACP,EAAA,GAGhDI,IAAAlB,EAAA,MAAA;AACI,YAAAmB,IAAAJ,EAAA,QAAAjB,EAAA,cAAA,MAAA,GAAA,IAAA,CAAA,GAAA,CAAA,GACAsB,IAAA,CAAAC,MAAAP,EAAA,QAAAK,EAAAE,CAAA,IAAAb,EAAA;AAEA,aAAA;AAAA,QAAO,MAAA,yBAAAY,EAAA,CAAA,CAAA;AAAA,QACgD,MAAA,yBAAAA,EAAA,CAAA,CAAA;AAAA,MACA;AAAA,IACvD,CAAA;AAGJ,WAAAE;AAAA,MAAAC,EAAA,oBAAA;AAAA,MACsC,OAAAC,MAAA;;AAE9B,cAAAC,EAAA;AACA,cAAAC,MAAAC,IAAAhB,EAAA,UAAA,gBAAAgB,EAAA,gBAAAf,EAAA;AACA,QAAAY,KAAA,CAAAE,KACIE,IAAAjB,EAAA,UAAA,QAAAiB,EAAA,QAAAhB,EAAA,SAA6B,CAAAY,MAAA1B,EAAA,kBAAA,SAAAA,EAAA,kBAAA,YAE7B+B,IAAAlB,EAAA,UAAA,QAAAkB,EAAA,QAAAhB,EAAA;AAAA,MACJ;AAAA,MACJ,EAAA,WAAA,GAAA;AAAA,IACkB,GAGtBiB,EAAA,MAAA;AACI,UAAA,CAAAhB,EAAA,UAAAR,EAAA,OAAA,KAAAA,EAAA,OAAA;AACI,cAAA,IAAA;AAAA,UAAU;AAAA,QACN;AAIR,UAAA,CAAAS,EAAA;AACI,cAAA,IAAA;AAAA,UAAU,GAAAjB,EAAA,aAAA;AAAA,QACgB;AAAA,IAE9B,CAAA;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { defineComponent as v, ref as B, computed as o } from "vue";
|
|
2
|
+
import { a as y } from "./index.D5am6ibQ.js";
|
|
3
|
+
import { B as R } from "./button.CufUNBkv.js";
|
|
4
|
+
import { a as c, B as I, b as T } from "./image.C2D2hKat.js";
|
|
5
|
+
import { B as C } from "./typography.Bu_WAKdf.js";
|
|
6
|
+
import { u as b } from "./i18n.BQkEbtPM.js";
|
|
7
|
+
import { g as O } from "./generate-uid.D-HFI38h.js";
|
|
8
|
+
import { n as h } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
|
|
9
|
+
import "../assets/promo-banner.css";
|
|
10
|
+
var u = /* @__PURE__ */ ((s) => (s.BLUE = "blue", s.GREY = "grey", s.GREEN = "green", s))(u || {}), l = /* @__PURE__ */ ((s) => (s.HORIZONTAL = "horizontal", s.VERTICAL = "vertical", s))(l || {});
|
|
11
|
+
const L = {
|
|
12
|
+
"en-US": {
|
|
13
|
+
dismiss: "Dismiss"
|
|
14
|
+
},
|
|
15
|
+
"ja-JP": {
|
|
16
|
+
dismiss: "却下"
|
|
17
|
+
},
|
|
18
|
+
"pt-BR": {
|
|
19
|
+
dismiss: "Descartar"
|
|
20
|
+
}
|
|
21
|
+
}, x = {
|
|
22
|
+
i18n: { messages: L },
|
|
23
|
+
name: "bento-promo-banner"
|
|
24
|
+
}, k = /* @__PURE__ */ v({
|
|
25
|
+
...x,
|
|
26
|
+
props: {
|
|
27
|
+
actions: { default: null },
|
|
28
|
+
color: { default: u.GREY },
|
|
29
|
+
isDismissible: { type: Boolean, default: !0 },
|
|
30
|
+
dismissButtonText: { default: null },
|
|
31
|
+
image: null,
|
|
32
|
+
layout: { default: l.HORIZONTAL },
|
|
33
|
+
title: null
|
|
34
|
+
},
|
|
35
|
+
emits: ["dismiss"],
|
|
36
|
+
setup(s, { emit: e }) {
|
|
37
|
+
const n = s, { t: i } = b(), t = B(null), a = y(t), _ = O("promoBannerTitle"), m = o(() => n.image.aspectRatio === c.P16_9 ? 800 : n.image.aspectRatio === c.P2_1 ? 850 : n.image.aspectRatio === c.P1_1 ? 623 : 0), p = o(() => n.layout === l.HORIZONTAL && a.width.value <= m.value ? l.VERTICAL : n.layout), f = o(
|
|
38
|
+
() => [`b-promo-banner--${p.value}`, `b-promo-banner--${n.color}`].join(" ")
|
|
39
|
+
), d = (r) => r.iconOnly && (r.iconLeft || r.iconRight || r.icon), g = o(() => n.dismissButtonText || i("dismiss"));
|
|
40
|
+
return { __sfc: !0, t: i, props: n, emit: e, promoBannerRef: t, promoBannerSize: a, promoBannerTitleId: _, horizontalLayoutBreakpoint: m, bannerLayoutClass: p, bannerConditionalClass: f, isIconOnly: d, computedDismissButtonText: g, BentoButton: R, BentoImage: I, BentoImageObjectFit: T, BentoTypography: C };
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
var E = function() {
|
|
44
|
+
var e = this, n = e._self._c, i = e._self._setupProxy;
|
|
45
|
+
return n("section", { ref: "promoBannerRef", staticClass: "b-promo-banner", class: i.bannerConditionalClass, attrs: { "aria-labelledby": i.promoBannerTitleId } }, [n("div", { staticClass: "b-promo-banner__content" }, [n("div", { staticClass: "b-promo-banner__content-header" }, [n(i.BentoTypography, { attrs: { id: i.promoBannerTitleId, variant: "title", large: "" } }, [e._v(" " + e._s(e.title) + " ")]), e._t("description")], 2), n("div", { staticClass: "b-promo-banner__content-actions" }, [e.actions ? e._l(e.actions, function(t, a) {
|
|
46
|
+
return n(i.BentoButton, { key: a, attrs: { variant: t.variant, critical: t.critical, disabled: t.disabled, inverse: t.inverse, "icon-only": t.iconOnly, link: t.link }, on: { click: t.event }, scopedSlots: e._u([t.icon || t.iconLeft ? { key: "iconLeft", fn: function() {
|
|
47
|
+
return [n(t.icon || t.iconLeft, { tag: "component", attrs: { "svg-title": t.title } })];
|
|
48
|
+
}, proxy: !0 } : null, i.isIconOnly(t) ? null : { key: "default", fn: function() {
|
|
49
|
+
return [e._v(" " + e._s(t.title) + " ")];
|
|
50
|
+
}, proxy: !0 }, t.iconRight ? { key: "iconRight", fn: function() {
|
|
51
|
+
return [n(t.iconRight, { tag: "component", attrs: { "svg-title": t.title } })];
|
|
52
|
+
}, proxy: !0 } : null], null, !0) });
|
|
53
|
+
}) : e._e(), e.isDismissible ? n(i.BentoButton, { attrs: { variant: "secondary" }, on: { click: function(t) {
|
|
54
|
+
return i.emit("dismiss");
|
|
55
|
+
} } }, [e._v(" " + e._s(i.computedDismissButtonText) + " ")]) : e._e()], 2)]), n("div", { staticClass: "b-promo-banner__image" }, [n(i.BentoImage, { staticClass: "b-promo-banner__image-item", attrs: { src: e.image.src, alt: e.image.alt ?? "", "aspect-ratio": e.image.aspectRatio, "object-fit": i.BentoImageObjectFit.CONTAIN } })], 1)]);
|
|
56
|
+
}, A = [], D = /* @__PURE__ */ h(
|
|
57
|
+
k,
|
|
58
|
+
E,
|
|
59
|
+
A,
|
|
60
|
+
!1,
|
|
61
|
+
null,
|
|
62
|
+
"8f77d908"
|
|
63
|
+
);
|
|
64
|
+
const Z = D.exports;
|
|
65
|
+
export {
|
|
66
|
+
u as B,
|
|
67
|
+
l as a,
|
|
68
|
+
Z as p
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=promo-banner.NSOVGA7M.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promo-banner.NSOVGA7M.js","sources":["../../src/components/promo-banner/promo-banner.types.ts","../../src/components/promo-banner/promo-banner.vue"],"sourcesContent":["import { BentoButtonActionObject } from '@/core/components/button-actions/button-actions.types';\nimport { BentoButtonVariant } from '../button';\nimport { BentoImageAspectRatio, BentoImageProps } from '../image';\n\nexport interface BentoPromoBannerProps {\n /**\n * List of actions that will be used to render the buttons.\n *\n * Each object in the list should have a `title`, an `event` and a `variant`.\n *\n * `title`: Button's text.\n * `event`: Event triggered when clicking the Button.\n * `variant`: Button's style.\n *\n * ```\n * [{\n * title: 'Primary',\n * event: () => { ... },\n * variant: 'primary'\n * }, {\n * title: 'Secondary',\n * event: () => { ... }\n * variant: 'secondary'\n * }]\n * ```\n */\n actions?: BentoPromoBannerAction[];\n\n /**\n * Defines the color of banner's background\n */\n color?: `${BentoPromoBannerColor}`;\n\n /**\n * Defines whether the banner has a `Dismiss` button\n */\n isDismissible?: boolean;\n\n /**\n * Defines whether the banner has a `Dismiss` button\n */\n dismissButtonText?: string;\n\n /**\n * Defines the image used in the banner.\n *\n * The promotional banner adapts to different container sizes based on the image's `aspect-ratio`.\n * Only the following `aspect-ratio` values are supported: `16:9`, `2:1`, and `1:1`.\n *\n * In Storybook, to verify the image display, update `image.src` and `image.aspectRatio` as follows:\n * - `./1-1.png` with an aspect ratio of `1:1`\n * - `./2-1.png` with an aspect ratio of `2:1`\n * - `./16-9.png` with an aspect ratio of `16:9`\n */\n image: BentoPromoBannerImage;\n\n /**\n * Defines style of the banner.\n *\n * The horizontal layout is responsive to the container size and\n * changes depending on the image aspect ratio.\n *\n * The vertical layout remains the same regardless of container size.\n */\n layout?: `${BentoPromoBannerLayout}`;\n\n /**\n * Defines the title text to be shown on the banner\n */\n title: string;\n}\n\nexport type BentoPromoBannerImageAspectRatio = `${\n | BentoImageAspectRatio.P16_9\n | BentoImageAspectRatio.P2_1\n | BentoImageAspectRatio.P1_1}`;\n\nexport type BentoPromoBannerButtonVariant = `${BentoButtonVariant.PRIMARY | BentoButtonVariant.SECONDARY}`;\n\nexport type BentoPromoBannerAction<IconType = object> = BentoButtonActionObject<IconType> & {\n variant: BentoPromoBannerButtonVariant;\n};\n\nexport type BentoPromoBannerImage = {\n src: BentoImageProps['src'];\n alt?: BentoImageProps['alt'];\n aspectRatio: BentoPromoBannerImageAspectRatio;\n};\n\nexport enum BentoPromoBannerColor {\n BLUE = 'blue',\n GREY = 'grey',\n GREEN = 'green',\n}\n\nexport enum BentoPromoBannerLayout {\n HORIZONTAL = 'horizontal',\n VERTICAL = 'vertical',\n}\n","<template>\n <section\n ref=\"promoBannerRef\"\n class=\"b-promo-banner\"\n :class=\"bannerConditionalClass\"\n :aria-labelledby=\"promoBannerTitleId\"\n >\n <div class=\"b-promo-banner__content\">\n <div class=\"b-promo-banner__content-header\">\n <bento-typography :id=\"promoBannerTitleId\" variant=\"title\" large>\n {{ title }}\n </bento-typography>\n\n <slot name=\"description\" />\n </div>\n\n <div class=\"b-promo-banner__content-actions\">\n <template v-if=\"actions\">\n <bento-button\n v-for=\"(button, index) in actions\"\n :key=\"index\"\n :variant=\"button.variant\"\n :critical=\"button.critical\"\n :disabled=\"button.disabled\"\n :inverse=\"button.inverse\"\n :icon-only=\"button.iconOnly\"\n :link=\"button.link\"\n @click=\"button.event\"\n >\n <template v-if=\"button.icon || button.iconLeft\" #iconLeft>\n <component :is=\"button.icon || button.iconLeft\" :svg-title=\"button.title\"></component>\n </template>\n\n <template v-if=\"!isIconOnly(button)\" #default>\n {{ button.title }}\n </template>\n\n <template v-if=\"button.iconRight\" #iconRight>\n <component :is=\"button.iconRight\" :svg-title=\"button.title\"></component>\n </template>\n </bento-button>\n </template>\n\n <bento-button v-if=\"isDismissible\" variant=\"secondary\" @click=\"emit('dismiss')\">\n {{ computedDismissButtonText }}\n </bento-button>\n </div>\n </div>\n\n <div class=\"b-promo-banner__image\">\n <bento-image\n class=\"b-promo-banner__image-item\"\n :src=\"image.src\"\n :alt=\"image.alt ?? ''\"\n :aspect-ratio=\"image.aspectRatio\"\n :object-fit=\"BentoImageObjectFit.CONTAIN\"\n ></bento-image>\n </div>\n </section>\n</template>\n\n<script setup lang=\"ts\">\n import { useElementSize } from '@vueuse/core';\n import { computed, ref } from 'vue';\n\n // Components\n import { BentoButton, BentoButtonActionObject } from '@/components/button';\n import { BentoImage, BentoImageAspectRatio, BentoImageObjectFit } from '@/components/image';\n import { BentoTypography } from '@/components/typography';\n import { BentoPromoBannerColor, BentoPromoBannerLayout, BentoPromoBannerProps } from './promo-banner.types';\n\n // Utils\n import { useI18n } from '@/utils/ts/i18n';\n\n import { generateUid } from '@/core/utils/ts';\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n\n const props = defineProps({\n actions: { default: null },\n color: { default: BentoPromoBannerColor.GREY },\n isDismissible: { type: Boolean, default: true },\n dismissButtonText: { default: null },\n image: null,\n layout: { default: BentoPromoBannerLayout.HORIZONTAL },\n title: null\n});\n\n const emit = defineEmits([\"dismiss\"]);\n\n const promoBannerRef = ref(null);\n const promoBannerSize = useElementSize(promoBannerRef);\n const promoBannerTitleId = generateUid('promoBannerTitle');\n\n const horizontalLayoutBreakpoint = computed(() => {\n if (props.image.aspectRatio === BentoImageAspectRatio.P16_9) {\n return 800;\n } else if (props.image.aspectRatio === BentoImageAspectRatio.P2_1) {\n return 850;\n } else if (props.image.aspectRatio === BentoImageAspectRatio.P1_1) {\n return 623;\n }\n\n return 0;\n });\n\n const bannerLayoutClass = computed(() => {\n // only horizontal layout is responsive and, by design, follows the container size\n if (\n props.layout === BentoPromoBannerLayout.HORIZONTAL &&\n promoBannerSize.width.value <= horizontalLayoutBreakpoint.value\n ) {\n return BentoPromoBannerLayout.VERTICAL;\n }\n\n return props.layout;\n });\n\n const bannerConditionalClass = computed(() =>\n [`b-promo-banner--${bannerLayoutClass.value}`, `b-promo-banner--${props.color}`].join(' ')\n );\n\n const isIconOnly = (button: BentoButtonActionObject) =>\n button.iconOnly && (button.iconLeft || button.iconRight || button.icon);\n\n const computedDismissButtonText = computed(() => props.dismissButtonText || t('dismiss'));\n</script>\n\n<script lang=\"ts\">\n /**\n * Promotional Banner highlights important information, announcements, or promotions.\n *\n * @example\n * import { BentoPromoBanner } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoPromoBanner },\n * template: `\n * <bento-promo-banner\n * title=\"Title\"\n * description=\"Brief description explaining and giving more information about the title\"\n * :image=\"{ src: '16-1.png', aspectRatio: '16:9' }\"\n * :actions=\"[{ title: 'Primary', event: () => {} }]\"\n * >\n * </bento-promo-banner>\n * `\n * };\n */\n export default {\n i18n: { messages },\n name: 'bento-promo-banner',\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./promo-banner.scss\" />\n"],"names":["BentoPromoBannerColor","BentoPromoBannerColor2","BentoPromoBannerLayout","BentoPromoBannerLayout2","__default__","messages","t","useI18n","promoBannerRef","ref","promoBannerSize","useElementSize","promoBannerTitleId","generateUid","horizontalLayoutBreakpoint","computed","props","BentoImageAspectRatio","bannerLayoutClass","bannerConditionalClass","isIconOnly","button","computedDismissButtonText"],"mappings":";;;;;;;;;AAyFY,IAAAA,IAAA,kBAAAC,OACRA,EAAA,OAAA,QACAA,EAAA,OAAA,QACAA,EAAA,QAAA,SAHQA,IAAAD,KAAA,CAAA,CAAA,GAMAE,IAAA,kBAAAC,OACRA,EAAA,aAAA,cACAA,EAAA,WAAA,YAFQA,IAAAD,KAAA,CAAA,CAAA;;;;;;;;;;;GCwDRE,IAAA;AAAA,EAAe,MAAA,EAAA,UAAAC,EAAA;AAAA,EACM,MAAA;AAErB;;;;;;;;;;;;;iBA3EA,EAAA,GAAAC,EAAA,IAAAC,EAAA,GAcAC,IAAAC,EAAA,IAAA,GACAC,IAAAC,EAAAH,CAAA,GACAI,IAAAC,EAAA,kBAAA,GAEAC,IAAAC,EAAA,MACIC,EAAA,MAAA,gBAAAC,EAAA,QACI,MAAOD,EAAA,MAAA,gBAAAC,EAAA,OAEP,MAAOD,EAAA,MAAA,gBAAAC,EAAA,OAEP,MAGJ,CAAO,GAGXC,IAAAH,EAAA,MAEIC,EAAA,WAAAd,EAAA,cAAAQ,EAAA,MAAA,SAAAI,EAAA,QAIIZ,EAAA,WAGJc,EAAA,MAAa,GAGjBG,IAAAJ;AAAA,MAA+B,MAAA,CAAA,mBAAAG,EAAA,KAAA,IAAA,mBAAAF,EAAA,KAAA,EAAA,EAAA,KAAA,GAAA;AAAA,IAC8D,GAG7FI,IAAA,CAAAC,MAAAA,EAAA,aAAAA,EAAA,YAAAA,EAAA,aAAAA,EAAA,OAGAC,IAAAP,EAAA,MAAAC,EAAA,qBAAAV,EAAA,SAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { defineComponent as _, inject as C, computed as c, ref as g, readonly as I, watch as h, provide as k } from "vue";
|
|
2
2
|
import { B as w } from "./dropdown.D8xKm1YA.js";
|
|
3
|
-
import {
|
|
3
|
+
import { d as S } from "./index.D5am6ibQ.js";
|
|
4
4
|
import { u as $ } from "./i18n.BQkEbtPM.js";
|
|
5
|
-
import { d as B } from "./es6.
|
|
5
|
+
import { d as B } from "./es6.b4enG1py.js";
|
|
6
6
|
import { B as f } from "./typography.Bu_WAKdf.js";
|
|
7
7
|
import { n as u } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
|
|
8
8
|
import "../assets/secondary-nav.css";
|
|
@@ -109,4 +109,4 @@ const X = Q.exports;
|
|
|
109
109
|
export {
|
|
110
110
|
X as s
|
|
111
111
|
};
|
|
112
|
-
//# sourceMappingURL=secondary-nav.
|
|
112
|
+
//# sourceMappingURL=secondary-nav.DMw1l7rH.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secondary-nav.
|
|
1
|
+
{"version":3,"file":"secondary-nav.DMw1l7rH.js","sources":["../../src/components/secondary-nav/secondary-nav.keys.ts","../../src/components/secondary-nav/components/secondary-nav-item/secondary-nav-item.vue","../../src/components/secondary-nav/components/secondary-nav-category/secondary-nav-category.vue","../../src/components/secondary-nav/secondary-nav.vue"],"sourcesContent":["import { InjectionKey } from 'vue';\nimport { BentoSecondaryNavState } from './secondary-nav.types';\n\nexport const SECONDARY_NAV_STATE = Symbol('secondary nav state') as InjectionKey<BentoSecondaryNavState>;\n","<template>\n <button class=\"b-secondary-nav-item\" :class=\"conditionalClasses\" @click=\"onClick\">\n <bento-typography class=\"b-secondary-nav-item__title\" variant=\"body\" stronger>\n {{ label }}\n </bento-typography>\n </button>\n</template>\n\n<script lang=\"ts\" setup>\n import { SECONDARY_NAV_STATE } from '../../secondary-nav.keys';\n import { BentoTypography } from '@/components/typography';\n import { computed, inject } from 'vue';\n\n const { activeItemValue, updateActiveItemValue } = inject(SECONDARY_NAV_STATE);\n\n const props = defineProps({\n label: null,\n value: null\n});\n\n const conditionalClasses = computed(() => ({\n 'b-secondary-nav-item--active': activeItemValue.value === props.value,\n }));\n\n const emit = defineEmits([\"click\"]);\n\n const onClick = (e: MouseEvent) => {\n emit('click', e);\n updateActiveItemValue(props.value);\n };\n</script>\n\n<script lang=\"ts\">\n /**\n * This component shouldn't be used directly. It is internally used by {@see BentoSecondaryNav}\n */\n export default {};\n</script>\n\n<style lang=\"scss\" scoped src=\"./secondary-nav-item.scss\" />\n","<template>\n <section class=\"b-secondary-nav-category\" :aria-label=\"label\">\n <bento-typography el=\"h1\" class=\"b-secondary-nav-category__label\" variant=\"caption\" stronger>{{\n label\n }}</bento-typography>\n <ul class=\"b-secondary-nav__list\">\n <li v-for=\"item in items\" :key=\"item.value\">\n <secondary-nav-item :label=\"item.label\" :value=\"item.value\" />\n </li>\n </ul>\n </section>\n</template>\n\n<script lang=\"ts\" setup>\n import { BentoTypography } from '@/components/typography';\n import { SecondaryNavItem } from '../secondary-nav-item';\n import { BentoSecondaryNavItemsItem } from '../../secondary-nav.types';\n\n defineProps({\n label: null,\n items: null\n});\n</script>\n\n<script lang=\"ts\">\n /**\n * This component shouldn't be used directly. It is internally used by {@see BentoSecondaryNav}\n */\n export default {};\n</script>\n\n<style lang=\"scss\" scoped src=\"./secondary-nav-category.scss\" />\n","<template>\n <nav class=\"b-secondary-nav\">\n <bento-dropdown\n v-if=\"isMobile\"\n :aria-label=\"t('mobileDropdownAriaLabel')\"\n :items=\"dropdownItems\"\n :static-categories=\"hasCategories\"\n :value=\"activeItemValue\"\n @input=\"updateActiveItemValue\"\n />\n <ul v-else class=\"b-secondary-nav__list\">\n <li v-for=\"item in items\" :key=\"item.label\">\n <secondary-nav-category v-if=\"'items' in item\" :label=\"item.label\" :items=\"item.items\" />\n <secondary-nav-item v-else :label=\"item.label\" :value=\"item.value\" />\n </li>\n </ul>\n </nav>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, provide, readonly, ref, watch } from 'vue';\n import { SecondaryNavItem } from './components/secondary-nav-item';\n import { SecondaryNavCategory } from './components/secondary-nav-category';\n import { SECONDARY_NAV_STATE } from './secondary-nav.keys';\n import { BentoSecondaryNavItems, BentoSecondaryNavState } from './secondary-nav.types';\n import { BentoDropdown } from '@/components/dropdown';\n import { useBreakpoints } from '@vueuse/core';\n import { useI18n } from '@/utils/ts/i18n';\n import { BentoListboxOptions } from '@/types';\n import { BMediaQuerySMax } from '@adyen/bento-design-tokens/dist/js/bento/es6';\n\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n\n const breakpoints = useBreakpoints({\n s: BMediaQuerySMax,\n });\n\n const isMobile = breakpoints.smallerOrEqual('s');\n const props = defineProps({\n items: null,\n value: null\n});\n\n const emit = defineEmits([\"change\"]);\n\n const hasCategories = computed(() => props.items.some(item => Object.hasOwn(item, 'items')));\n const dropdownItems = computed(() => props.items as BentoListboxOptions);\n\n const activeItemValueFallback = computed(() => {\n const firstDropdownItem = (dropdownItems.value as BentoSecondaryNavItems)[0];\n\n if ('items' in firstDropdownItem) {\n return firstDropdownItem.items[0].value;\n } else {\n return firstDropdownItem.value;\n }\n });\n const activeItemValue = ref(props.value ?? activeItemValueFallback.value);\n const updateActiveItemValue = (value: string) => {\n activeItemValue.value = value;\n emit('change', value);\n };\n\n // The component's state is inject on `secondary-nav-item` to determine the\n // current active item and to change its value\n const state: BentoSecondaryNavState = {\n activeItemValue: readonly(activeItemValue),\n updateActiveItemValue,\n };\n\n watch(\n () => props.value,\n value => {\n activeItemValue.value = value;\n }\n );\n\n provide(SECONDARY_NAV_STATE, state);\n</script>\n\n<script lang=\"ts\">\n /**\n * Secondary Nav offers users a structured way to access information.\n * It also provides a clear hierarchy for users to understand and navigate through various information.\n *\n * @example\n * import { BentoSecondaryNav } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoSecondaryNav },\n * template: `\n * <bento-secondary-nav :value=\"value\" :items=\"items\" />\n * `,\n * setup() {\n * const value = ref(2) // Active item value\n * const items: BentoSecondaryNavItemInfo[] = [\n * { label: 'Option 1', value: 1 },\n * { label: 'Option 2', value: 2 },\n * ];\n * return { items, value };\n * }\n * }\n */\n export default {\n i18n: { messages },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./secondary-nav.scss\" />\n"],"names":["SECONDARY_NAV_STATE","__default__$2","activeItemValue","updateActiveItemValue","inject","conditionalClasses","computed","props","e","emit","__default__$1","__default__","messages","useI18n","breakpoints","useBreakpoints","BMediaQuerySMax","isMobile","hasCategories","item","dropdownItems","activeItemValueFallback","firstDropdownItem","ref","value","state","readonly","watch","provide"],"mappings":";;;;;;;;AAGa,MAAAA,IAAA,OAAA,qBAAA,GCiCTC,IAAA,CAAA;;;;;;;;;iBAvBA,EAAA,iBAAAC,GAAA,uBAAAC,EAAA,IAAAC,EAAAJ,CAAA,GAOAK,IAAAC,EAAA,OAAA;AAAA,MAA2C,gCAAAJ,EAAA,UAAAK,EAAA;AAAA,IACyB,EAAA;yHAKpE,CAAAC,MAAA;AACI,MAAAC,EAAA,SAAAD,CAAA,GACAL,EAAAI,EAAA,KAAA;AAAA,IAAiC;;;;;;;;;;;;;;qBCArCG,IAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GC+EAC,IAAA;AAAA,EAAe,MAAA,EAAA,UAAAC,EAAA;AAEf;;;;;;;;;iBA1EA,EAAA,EAAA,IAAAC,EAAA,GAEAC,IAAAC,EAAA;AAAA,MAAmC,GAAAC;AAAA,IAC5B,CAAA,GAGPC,IAAAH,EAAA,eAAA,GAAA,GAQAI,IAAAZ,EAAA,MAAAC,EAAA,MAAA,KAAA,CAAAY,MAAA,OAAA,OAAAA,GAAA,OAAA,CAAA,CAAA,GACAC,IAAAd,EAAA,MAAAC,EAAA,KAAA,GAEAc,IAAAf,EAAA,MAAA;AACI,YAAAgB,IAAAF,EAAA,MAAA,CAAA;AAEA,aAAA,WAAAE,IACIA,EAAA,MAAA,CAAA,EAAA,QAEAA,EAAA;AAAA,IACJ,CAAA,GAEJpB,IAAAqB,EAAAhB,EAAA,SAAAc,EAAA,KAAA,GACAlB,IAAA,CAAAqB,MAAA;AACI,MAAAtB,EAAA,QAAAsB,GACAf,EAAA,UAAAe,CAAA;AAAA,IAAoB,GAKxBC,IAAA;AAAA,MAAsC,iBAAAC,EAAAxB,CAAA;AAAA,MACO,uBAAAC;AAAA,IACzC;AAGJ,WAAAwB;AAAA,MAAA,MAAApB,EAAA;AAAA,MACgB,CAAAiB,MAAA;AAER,QAAAtB,EAAA,QAAAsB;AAAA,MAAwB;AAAA,IAC5B,GAGJI,EAAA5B,GAAAyB,CAAA;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
import { defineComponent as G, useSlots as O, computed as n, inject as z, ref as m, watch as P, provide as W, onMounted as Y } from "vue";
|
|
2
|
+
import { a as F } from "./index.D5am6ibQ.js";
|
|
3
|
+
import { d as Q, e as U } from "./es6.b4enG1py.js";
|
|
4
|
+
import { B as H } from "./typography.Bu_WAKdf.js";
|
|
5
|
+
import { a as J } from "./checkbox-input.Bo4NxNOh.js";
|
|
6
|
+
import { u as K } from "./aria-label.CaUURpnB.js";
|
|
7
|
+
import { g as M } from "./generate-uid.D-HFI38h.js";
|
|
8
|
+
import { u as X } from "./use-has-slot.C9lQZ6nz.js";
|
|
9
|
+
import { a as Z } from "./radio-input.q980f8Uf.js";
|
|
10
|
+
import { n as D } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
|
|
11
|
+
import { C as ee } from "./controls-group.Sni8leS5.js";
|
|
12
|
+
import { E as te } from "./error-message.Bk2maRF8.js";
|
|
13
|
+
import { G as oe } from "./grid-layout.HvTAa4to.js";
|
|
14
|
+
import "../assets/selection-card-group.css";
|
|
15
|
+
var B = /* @__PURE__ */ ((c) => (c.DISABLED = "disabled", c.READONLY = "readonly", c.ERROR = "error", c))(B || {});
|
|
16
|
+
const N = Symbol("selection card radio input injection key"), ae = {
|
|
17
|
+
name: "bento-selection-card"
|
|
18
|
+
}, ne = /* @__PURE__ */ G({
|
|
19
|
+
...ae,
|
|
20
|
+
props: {
|
|
21
|
+
/**
|
|
22
|
+
* The description of the selection card
|
|
23
|
+
*/
|
|
24
|
+
description: {
|
|
25
|
+
type: String,
|
|
26
|
+
default: void 0
|
|
27
|
+
},
|
|
28
|
+
/**
|
|
29
|
+
* Disables the selection card
|
|
30
|
+
*/
|
|
31
|
+
disabled: { type: Boolean, default: !1 },
|
|
32
|
+
/**
|
|
33
|
+
* Makes the entire selection card clickable. Clicking over interactive elements inside the card with this prop enabled will not be possible.
|
|
34
|
+
*/
|
|
35
|
+
fullyClickable: { type: Boolean, default: !1 },
|
|
36
|
+
/**
|
|
37
|
+
* Shows the selection card in error state
|
|
38
|
+
*/
|
|
39
|
+
hasError: { type: Boolean, default: !1 },
|
|
40
|
+
/**
|
|
41
|
+
* This property should not be used directly.
|
|
42
|
+
* It will be used by v-model directive on selection card component.
|
|
43
|
+
*
|
|
44
|
+
* When handling a single input, use a string or a number.
|
|
45
|
+
*
|
|
46
|
+
* When handling multiple inputs, use an array of keys.
|
|
47
|
+
* These keys exist as a set "value" prop for each input.
|
|
48
|
+
*/
|
|
49
|
+
modelValue: {
|
|
50
|
+
type: [Boolean, String, Array],
|
|
51
|
+
default: null
|
|
52
|
+
},
|
|
53
|
+
/**
|
|
54
|
+
* Sets the selection card to readonly
|
|
55
|
+
*/
|
|
56
|
+
readonly: { type: Boolean, default: !1 },
|
|
57
|
+
/**
|
|
58
|
+
* The subtitle of the selection card
|
|
59
|
+
*/
|
|
60
|
+
subtitle: {
|
|
61
|
+
type: String,
|
|
62
|
+
default: void 0
|
|
63
|
+
},
|
|
64
|
+
/**
|
|
65
|
+
* The title of the selection card
|
|
66
|
+
*/
|
|
67
|
+
title: {
|
|
68
|
+
type: String,
|
|
69
|
+
required: !0
|
|
70
|
+
},
|
|
71
|
+
/**
|
|
72
|
+
* Indicates the value of the input that will be returned when it's checked.
|
|
73
|
+
*/
|
|
74
|
+
value: {
|
|
75
|
+
type: [String, Number],
|
|
76
|
+
required: !0
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
emits: ["input", "update:model-value"],
|
|
80
|
+
setup(c, { emit: e }) {
|
|
81
|
+
const t = c, o = O(), a = X(o), v = M("selection-card-input-id"), s = M("selection-card-description"), C = n(
|
|
82
|
+
() => t.modelValue
|
|
83
|
+
), E = n(
|
|
84
|
+
() => t.modelValue
|
|
85
|
+
), x = n(() => ({
|
|
86
|
+
"b-selection-card--checked": p.value,
|
|
87
|
+
"b-selection-card--fully-clickable": t.fullyClickable
|
|
88
|
+
})), _ = n(() => ({
|
|
89
|
+
[`b-selection-card--${B.DISABLED}`]: t.disabled,
|
|
90
|
+
[`b-selection-card--${B.ERROR}`]: t.hasError,
|
|
91
|
+
[`b-selection-card--${B.READONLY}`]: t.readonly,
|
|
92
|
+
"b-selection-card--center-aligned": b.value
|
|
93
|
+
})), h = n(() => ({
|
|
94
|
+
"b-selection-card__checkbox-container--center-aligned": b.value
|
|
95
|
+
})), R = n(() => ({
|
|
96
|
+
"b-selection-card__checkbox-container-text--center-aligned": b.value
|
|
97
|
+
})), y = n(() => ({
|
|
98
|
+
"b-selection-card__slot--with-icon": a("icon")
|
|
99
|
+
})), r = K({
|
|
100
|
+
ariaLabel: t.title,
|
|
101
|
+
label: t.value
|
|
102
|
+
}), g = n(() => Array.isArray(t.modelValue)), p = n(() => k.value ? t.value === t.modelValue : g.value ? t.modelValue.some((i) => i === t.value) : t.modelValue), k = z(N, m(!1)), b = n(() => !t.subtitle && !t.description), u = m(null), l = m(null), d = m(null), q = (i) => {
|
|
103
|
+
var f, S, $, L, T, A;
|
|
104
|
+
if (u.value.$refs.inputRef === i.target) {
|
|
105
|
+
const j = V();
|
|
106
|
+
w(j);
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
if (t.disabled && t.readonly || !t.fullyClickable && (l.value && ((S = (f = l.value) == null ? void 0 : f.$el) != null && S.contains(i.target)) || d.value && ((L = ($ = d.value) == null ? void 0 : $.$el) != null && L.contains(i.target)) || u.value && ((A = (T = u.value) == null ? void 0 : T.$el) != null && A.contains(i.target))))
|
|
110
|
+
return;
|
|
111
|
+
const I = V();
|
|
112
|
+
w(I);
|
|
113
|
+
}, V = () => {
|
|
114
|
+
var I;
|
|
115
|
+
const i = ((I = u.value) == null ? void 0 : I.$refs.inputRef).checked;
|
|
116
|
+
if (g.value) {
|
|
117
|
+
const f = [...t.modelValue], S = f.indexOf(t.value);
|
|
118
|
+
return S === -1 ? f.push(t.value) : f.splice(S, 1), f;
|
|
119
|
+
}
|
|
120
|
+
return k.value ? t.value : i;
|
|
121
|
+
}, w = (i) => {
|
|
122
|
+
!t.disabled && !t.readonly && (e("update:model-value", i), e("input", i));
|
|
123
|
+
};
|
|
124
|
+
return { __sfc: !0, props: t, emit: e, slots: o, hasSlot: a, inputId: v, descriptionId: s, computedRadioInputModelValue: C, computedCheckboxInputModelValue: E, conditionalClasses: x, containerConditionalClasses: _, checkboxContainerConditionalClasses: h, checkboxContainerTextConditionalClasses: R, slotConditionalClasses: y, ariaLabel: r, isCheckboxGroup: g, isChecked: p, isRadioInput: k, isTitleOnly: b, inputRef: u, slotRef: l, dynamicSlotRef: d, handleCardClick: q, toggleInput: V, onChange: w, BentoTypography: H, CheckboxInput: J, RadioInput: Z };
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
var le = function() {
|
|
128
|
+
var e = this, t = e._self._c, o = e._self._setupProxy;
|
|
129
|
+
return t("div", { staticClass: "b-selection-card", class: o.conditionalClasses, on: { click: o.handleCardClick } }, [t("div", { staticClass: "b-selection-card__container", class: o.containerConditionalClasses }, [t("div", { staticClass: "b-selection-card__checkbox-container", class: o.checkboxContainerConditionalClasses }, [t("div", { staticClass: "b-selection-card__checkbox-container-text", class: o.checkboxContainerTextConditionalClasses }, [o.hasSlot("icon") ? t("div", { staticClass: "b-selection-card__icon", attrs: { role: "presentation" } }, [e._t("icon")], 2) : e._e(), t("label", { staticClass: "b-selection-card__text", attrs: { for: o.inputId }, on: { click: function(a) {
|
|
130
|
+
return a.stopPropagation(), a.preventDefault(), o.handleCardClick.apply(null, arguments);
|
|
131
|
+
} } }, [e.subtitle ? t(o.BentoTypography, { staticClass: "b-selection-card__description", attrs: { el: "span", variant: "caption" } }, [e._v(" " + e._s(e.subtitle) + " ")]) : e._e(), t(o.BentoTypography, { attrs: { el: "span", variant: "title" } }, [e._v(e._s(e.title))]), e.description ? t(o.BentoTypography, { staticClass: "b-selection-card__description", attrs: { id: "descriptionId", el: "span", variant: "body" } }, [e._v(" " + e._s(e.description) + " ")]) : e._e()], 1)]), o.isRadioInput ? t(o.RadioInput, { ref: "inputRef", attrs: { id: o.inputId, "aria-label": o.ariaLabel, "aria-describedby": e.description ? o.descriptionId : void 0, disabled: e.disabled, "has-error": e.hasError, "aria-readonly": e.readonly ?? void 0, value: e.value, readonly: e.readonly, "model-value": o.computedRadioInputModelValue } }) : t(o.CheckboxInput, { ref: "inputRef", attrs: { id: o.inputId, "aria-label": o.ariaLabel, "aria-describedby": e.description ? o.descriptionId : void 0, disabled: e.disabled, "has-error": e.hasError, "aria-readonly": e.readonly ?? void 0, value: e.value, readonly: e.readonly, "model-value": o.computedCheckboxInputModelValue } })], 1), o.hasSlot("content") ? t(o.BentoTypography, { ref: "slotRef", staticClass: "b-selection-card__slot", class: o.slotConditionalClasses, attrs: { el: "div" } }, [e._t("content")], 2) : e._e(), o.hasSlot("dynamicContent") && o.isChecked ? t(o.BentoTypography, { ref: "dynamicSlotRef", staticClass: "b-selection-card__slot", class: o.slotConditionalClasses, attrs: { el: "div" } }, [e._t("dynamicContent")], 2) : e._e()], 1)]);
|
|
132
|
+
}, re = [], se = /* @__PURE__ */ D(
|
|
133
|
+
ne,
|
|
134
|
+
le,
|
|
135
|
+
re,
|
|
136
|
+
!1,
|
|
137
|
+
null,
|
|
138
|
+
"308f55e6"
|
|
139
|
+
);
|
|
140
|
+
const ie = se.exports, ce = {}, ue = /* @__PURE__ */ G({
|
|
141
|
+
...ce,
|
|
142
|
+
__name: "selection-card-group",
|
|
143
|
+
props: {
|
|
144
|
+
/**
|
|
145
|
+
* Descriptive supporting text visbile underneath the label.
|
|
146
|
+
*/
|
|
147
|
+
description: { type: String, default: null },
|
|
148
|
+
/**
|
|
149
|
+
* If set to true, renders all cards in the group in a disabled state.
|
|
150
|
+
*/
|
|
151
|
+
disabled: { type: Boolean, default: !1 },
|
|
152
|
+
/**
|
|
153
|
+
* Renders all cards in an error state with an error message.
|
|
154
|
+
*/
|
|
155
|
+
errorMessage: { type: String, default: null },
|
|
156
|
+
/**
|
|
157
|
+
* The form id the selection card group is associated with. Defaults to null, as a selection card group can also be used standalone.
|
|
158
|
+
*/
|
|
159
|
+
formId: { type: String, default: null },
|
|
160
|
+
/**
|
|
161
|
+
* Shows/hides the group label.
|
|
162
|
+
*/
|
|
163
|
+
hideLabel: { type: Boolean, default: null },
|
|
164
|
+
/**
|
|
165
|
+
* Label of the group. Required for accessibility purposes, even if it's not shown
|
|
166
|
+
*/
|
|
167
|
+
label: {
|
|
168
|
+
type: String,
|
|
169
|
+
required: !0
|
|
170
|
+
},
|
|
171
|
+
/**
|
|
172
|
+
* The selection card group's layout. It can be vertical or horizontal. Defaults to vertical.
|
|
173
|
+
* @values horizontal, vertical
|
|
174
|
+
*/
|
|
175
|
+
layout: {
|
|
176
|
+
type: String,
|
|
177
|
+
default: "vertical"
|
|
178
|
+
},
|
|
179
|
+
/**
|
|
180
|
+
* The selection card group's items.
|
|
181
|
+
*/
|
|
182
|
+
items: {
|
|
183
|
+
type: Array,
|
|
184
|
+
required: !0
|
|
185
|
+
},
|
|
186
|
+
/**
|
|
187
|
+
* Sets the responsive number of items rendered in each row.
|
|
188
|
+
*/
|
|
189
|
+
itemsPerRow: {
|
|
190
|
+
type: Object,
|
|
191
|
+
default: void 0
|
|
192
|
+
},
|
|
193
|
+
/**
|
|
194
|
+
* Determines the initially selected value of the group. Corresponds to the BentoSelectionCardItem's value.
|
|
195
|
+
* Defaults to no value selected.
|
|
196
|
+
*/
|
|
197
|
+
modelValue: {
|
|
198
|
+
type: [Array, String, Number],
|
|
199
|
+
default: null
|
|
200
|
+
},
|
|
201
|
+
/**
|
|
202
|
+
* Indicates the field is optional.
|
|
203
|
+
*/
|
|
204
|
+
optional: { type: Boolean, default: !1 },
|
|
205
|
+
/**
|
|
206
|
+
* Indicates the field is required.
|
|
207
|
+
*/
|
|
208
|
+
required: { type: Boolean, default: !1 },
|
|
209
|
+
/**
|
|
210
|
+
* Tooltip message.
|
|
211
|
+
*/
|
|
212
|
+
tooltipText: { type: String, default: null },
|
|
213
|
+
/**
|
|
214
|
+
* If set to true, renders all cards in the group in a readonly state.
|
|
215
|
+
*/
|
|
216
|
+
readonly: { type: Boolean, default: !1 },
|
|
217
|
+
/**
|
|
218
|
+
* Renders the cards with a checkbox or a radio input. Selection logic will also apply in accordance.
|
|
219
|
+
* @values checkbox, radio
|
|
220
|
+
*/
|
|
221
|
+
variant: { type: String, default: "checkbox" }
|
|
222
|
+
},
|
|
223
|
+
emits: ["input", "update:model-value"],
|
|
224
|
+
setup(c, { emit: e }) {
|
|
225
|
+
const t = c, o = O(), a = (l) => !!o[l], v = n(() => ({
|
|
226
|
+
"b-selection-card-group__items--horizontal": t.layout === "horizontal"
|
|
227
|
+
})), s = m(t.modelValue);
|
|
228
|
+
P(
|
|
229
|
+
() => t.modelValue,
|
|
230
|
+
() => {
|
|
231
|
+
s.value = t.modelValue;
|
|
232
|
+
}
|
|
233
|
+
);
|
|
234
|
+
const C = M("error"), E = n(() => !t.disabled && !t.readonly && !!t.errorMessage), x = m(null), { width: _ } = F(x), h = n(() => Q.split("px")[0]), R = n(() => U.split("px")[0]), y = n(() => _.value < h.value ? "small" : _.value >= h.value && _.value < R.value ? "medium" : "large"), r = n(() => {
|
|
235
|
+
var l;
|
|
236
|
+
return ((l = t.itemsPerRow) == null ? void 0 : l[y == null ? void 0 : y.value]) || t.items.length;
|
|
237
|
+
}), g = n(() => {
|
|
238
|
+
if (!t.itemsPerRow)
|
|
239
|
+
return [];
|
|
240
|
+
const l = [];
|
|
241
|
+
for (let d = 0; d < t.items.length; d += r == null ? void 0 : r.value)
|
|
242
|
+
l.push(t.items.slice(d, d + (r == null ? void 0 : r.value)));
|
|
243
|
+
return l;
|
|
244
|
+
}), p = n(() => 12 / (r == null ? void 0 : r.value)), k = n(() => r != null && r.value ? new Array(r == null ? void 0 : r.value).fill({
|
|
245
|
+
// Instead of passing the actual screen sizes values, passing the same values per each screen size and recomputing it makes sure visually the change is smoother and not laggy
|
|
246
|
+
small: p.value,
|
|
247
|
+
medium: p.value,
|
|
248
|
+
large: p.value
|
|
249
|
+
}) : []), b = (l) => {
|
|
250
|
+
s.value = l, e("update:model-value", l), e("input", l);
|
|
251
|
+
}, u = n(() => t.variant === "radio");
|
|
252
|
+
return W(N, u), Y(() => {
|
|
253
|
+
t.itemsPerRow && Object.values(t.itemsPerRow).forEach((l) => {
|
|
254
|
+
if (l && (l < 2 || l > 6))
|
|
255
|
+
throw new Error(
|
|
256
|
+
"itemsPerRow values must have a value between 2 and 6 items per row. Read the documentation for more information."
|
|
257
|
+
);
|
|
258
|
+
});
|
|
259
|
+
}), { __sfc: !0, props: t, emit: e, slots: o, hasSlot: a, conditionalItemsClasses: v, inputValue: s, errorMessageId: C, shouldShowGroupError: E, containerRef: x, width: _, smallBreakpoint: h, mediumBreakpoint: R, currentBreakpoint: y, computedItemsPerRow: r, computedRows: g, itemColumnWidth: p, computedColumnWidth: k, onInput: b, isRadioVariant: u, BentoSelectionCard: ie, ControlsGroup: ee, ErrorMessage: te, GridLayout: oe };
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
var de = function() {
|
|
263
|
+
var e = this, t = e._self._c, o = e._self._setupProxy;
|
|
264
|
+
return t(o.ControlsGroup, { ref: "containerRef", staticClass: "b-selection-card-group", attrs: { "aria-describedby": o.shouldShowGroupError ? o.errorMessageId : null, label: e.label, "hide-label": e.hideLabel, description: e.description, disabled: e.disabled, "tooltip-text": e.tooltipText, readonly: e.readonly, required: e.required, optional: e.optional, "component-name": "selection-card-group" } }, [!e.itemsPerRow || e.layout === "vertical" ? t("div", { staticClass: "b-selection-card-group__items", class: o.conditionalItemsClasses }, e._l(e.items, function(a) {
|
|
265
|
+
return t(o.BentoSelectionCard, e._b({ key: `selection-card-${a.value}`, staticClass: "b-selection-card-group__item", attrs: { "model-value": o.inputValue, readonly: e.readonly || a.readonly, "has-error": o.shouldShowGroupError, disabled: e.disabled || a.disabled }, on: { "update:model-value": o.onInput }, scopedSlots: e._u([o.hasSlot("icon") && a.icon ? { key: "icon", fn: function() {
|
|
266
|
+
return [e._t("icon", null, null, a)];
|
|
267
|
+
}, proxy: !0 } : null, o.hasSlot("content") && a.content ? { key: "content", fn: function() {
|
|
268
|
+
return [e._t("content", null, null, a)];
|
|
269
|
+
}, proxy: !0 } : null, o.hasSlot("dynamicContent") && a.dynamicContent ? { key: "dynamicContent", fn: function() {
|
|
270
|
+
return [e._t("dynamicContent", null, null, a)];
|
|
271
|
+
}, proxy: !0 } : null], null, !0) }, "bento-selection-card", a, !1));
|
|
272
|
+
}), 1) : [t("div", { key: `selection-card-group-layout-breakpoint-${o.currentBreakpoint}` }, e._l(o.computedRows, function(a, v) {
|
|
273
|
+
return t(o.GridLayout, { key: `selection-card-group-row-${v}-cols-${o.computedItemsPerRow}`, staticClass: "b-selection-card-group__items--wrap", attrs: { "column-width": o.computedColumnWidth }, scopedSlots: e._u([e._l(a, function(s, C) {
|
|
274
|
+
return { key: `col-${C + 1}`, fn: function() {
|
|
275
|
+
return [t(o.BentoSelectionCard, e._b({ key: `selection-card-${s.value}`, staticClass: "b-selection-card-group__item", attrs: { "model-value": o.inputValue, readonly: e.readonly || s.readonly, "has-error": o.shouldShowGroupError, disabled: e.disabled || s.disabled }, on: { "update:model-value": o.onInput }, scopedSlots: e._u([o.hasSlot("icon") && s.icon ? { key: "icon", fn: function() {
|
|
276
|
+
return [e._t("icon", null, null, s)];
|
|
277
|
+
}, proxy: !0 } : null, o.hasSlot("content") && s.content ? { key: "content", fn: function() {
|
|
278
|
+
return [e._t("content", null, null, s)];
|
|
279
|
+
}, proxy: !0 } : null, o.hasSlot("dynamicContent") && s.dynamicContent ? { key: "dynamicContent", fn: function() {
|
|
280
|
+
return [e._t("dynamicContent", null, null, s)];
|
|
281
|
+
}, proxy: !0 } : null], null, !0) }, "bento-selection-card", s, !1))];
|
|
282
|
+
}, proxy: !0 };
|
|
283
|
+
})], null, !0) });
|
|
284
|
+
}), 1)], o.shouldShowGroupError ? t(o.ErrorMessage, { staticClass: "b-selection-card-group__error-message", attrs: { id: o.errorMessageId, "error-message": e.errorMessage } }) : e._e()], 2);
|
|
285
|
+
}, pe = [], fe = /* @__PURE__ */ D(
|
|
286
|
+
ue,
|
|
287
|
+
de,
|
|
288
|
+
pe,
|
|
289
|
+
!1,
|
|
290
|
+
null,
|
|
291
|
+
"4f527cab"
|
|
292
|
+
);
|
|
293
|
+
const Be = fe.exports;
|
|
294
|
+
export {
|
|
295
|
+
ie as B,
|
|
296
|
+
B as a,
|
|
297
|
+
Be as s
|
|
298
|
+
};
|
|
299
|
+
//# sourceMappingURL=selection-card-group.BjOuUbQD.js.map
|