@mozaic-ds/vue 2.1.0 → 2.3.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.
@@ -1 +1 @@
1
- {"version":3,"file":"mozaic-vue.umd.cjs","sources":["../src/components/link/MLink.vue","../src/components/breadcrumb/MBreadcrumb.vue","../src/components/loader/MLoader.vue","../src/components/button/MButton.vue","../src/components/checkbox/MCheckbox.vue","../src/components/checkboxgroup/MCheckboxGroup.vue","../node_modules/@mozaic-ds/icons-vue/src/components/CrossCircleFilled24/CrossCircleFilled24.vue","../src/components/datepicker/MDatepicker.vue","../src/components/divider/MDivider.vue","../node_modules/@mozaic-ds/icons-vue/src/components/ArrowBack24/ArrowBack24.vue","../node_modules/@mozaic-ds/icons-vue/src/components/Cross24/Cross24.vue","../src/components/iconbutton/MIconButton.vue","../src/components/overlay/MOverlay.vue","../src/components/drawer/MDrawer.vue","../src/components/field/MField.vue","../src/components/fieldgroup/MFieldGroup.vue","../src/components/flag/MFlag.vue","../src/components/loadingoverlay/MLoadingOverlay.vue","../src/components/modal/MModal.vue","../src/components/numberbadge/MNumberBadge.vue","../src/components/select/MSelect.vue","../node_modules/@mozaic-ds/icons-vue/src/components/ChevronLeft24/ChevronLeft24.vue","../node_modules/@mozaic-ds/icons-vue/src/components/ChevronRight24/ChevronRight24.vue","../src/components/pagination/MPagination.vue","../src/components/passwordinput/MPasswordInput.vue","../src/components/pincode/MPincode.vue","../node_modules/@mozaic-ds/icons-vue/src/components/More24/More24.vue","../node_modules/@mozaic-ds/icons-vue/src/components/Less24/Less24.vue","../src/components/quantityselector/MQuantitySelector.vue","../src/components/radio/MRadio.vue","../src/components/radiogroup/MRadioGroup.vue","../src/components/statusdot/MStatusDot.vue","../src/components/statusbadge/MStatusBadge.vue","../node_modules/@mozaic-ds/icons-vue/src/components/Cross20/Cross20.vue","../node_modules/@mozaic-ds/icons-vue/src/components/InfoCircleFilled32/InfoCircleFilled32.vue","../node_modules/@mozaic-ds/icons-vue/src/components/WarningCircleFilled32/WarningCircleFilled32.vue","../node_modules/@mozaic-ds/icons-vue/src/components/CrossCircleFilled32/CrossCircleFilled32.vue","../node_modules/@mozaic-ds/icons-vue/src/components/CheckCircleFilled32/CheckCircleFilled32.vue","../src/components/statusnotification/MStatusNotification.vue","../src/components/tabs/MTabs.vue","../src/components/tag/MTag.vue","../src/components/textarea/MTextArea.vue","../src/components/textinput/MTextInput.vue","../src/components/toggle/MToggle.vue","../src/components/togglegroup/MToggleGroup.vue"],"sourcesContent":["<template>\n <component\n :is=\"router ? 'router-link' : 'a'\"\n class=\"mc-link\"\n :class=\"classObject\"\n :href=\"href\"\n :target=\"target\"\n :to=\"router ? href : undefined\"\n >\n <span\n v-if=\"$slots.icon && iconPosition == 'left'\"\n class=\"mc-link__icon\"\n aria-hidden=\"true\"\n >\n <slot name=\"icon\" />\n </span>\n <span class=\"mc-link__label\">\n <slot />\n </span>\n <span\n v-if=\"$slots.icon && iconPosition == 'right'\"\n class=\"mc-link__icon\"\n aria-hidden=\"true\"\n >\n <slot name=\"icon\" />\n </span>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, type VNode } from 'vue';\n/**\n * A link is a component used exclusively to navigate to internal or external webpages or to anchors in the current page.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * Position of the icon relative to the text.\n */\n iconPosition?: 'left' | 'right';\n /**\n * Allows to define the link style\n */\n appearance?: 'secondary' | 'accent' | 'inverse' | 'standard';\n /**\n * Allows to define the link size\n */\n size?: 's' | 'm';\n /**\n * URL for the link (for external links or the `to` prop for `router-link`).\n */\n href?: string;\n /**\n * Where to open the link\n */\n target?: '_self' | '_blank' | '_parent' | '_top';\n /**\n * Specify wether the link is inline\n */\n inline?: boolean;\n /**\n * If `true`, the link will be rendered as a `router-link` for internal navigation (Vue Router).\n */\n router?: boolean;\n }>(),\n {\n href: undefined,\n target: undefined,\n appearance: 'standard',\n size: 's',\n iconPosition: 'left',\n },\n);\n\ndefineSlots<{\n /**\n * Use this slot to insert the textual content of the Link\n */\n default: string;\n /**\n * Use this slot to insert an icon for the Link\n */\n icon?: VNode;\n}>();\n\nconst classObject = computed(() => {\n return {\n [`mc-link--${props.appearance}`]:\n props.appearance && props.appearance != 'standard',\n [`mc-link--${props.size}`]: props.size && props.size != 's',\n 'mc-link--inline': props.inline,\n 'mc-link--stand-alone': !props.inline,\n };\n});\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/link';\n</style>\n","<template>\n <nav class=\"mc-breadcrumb\" :class=\"classObject\" aria-label=\"Breadcrumb\">\n <ul class=\"mc-breadcrumb__container\">\n <li\n class=\"mc-breadcrumb__item\"\n v-for=\"(link, index) in links\"\n :key=\"`breadcrumb-${index}`\"\n >\n <MLink\n :href=\"link.href\"\n :router=\"link.router\"\n :appearance=\"appearance\"\n inline\n :class=\"{\n 'mc-breadcrumb__current': isLastLink(index),\n }\"\n :aria-current=\"isLastLink(index) ? 'page' : undefined\"\n >\n {{ link.label }}\n </MLink>\n </li>\n </ul>\n </nav>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport MLink from '../link/MLink.vue';\n/**\n * A breadcrumb is a navigation help that displays the hierarchical path of the current page within a website or application. It helps users understand their location and allows them to navigate back to previous levels easily. Breadcrumbs improve usability and accessibility, especially in multi-level websites, dashboards, and e-commerce platforms.\n */\nconst props = defineProps<{\n /**\n * Allows to define the breadcrumb style\n */\n appearance?: 'standard' | 'inverse';\n /**\n * Links of the breadcrumb\n */\n links: Array<{\n /**\n * The label displayed for the link.\n */\n label: string;\n /**\n * URL for the link (for external links or the `to` prop for `router-link`).\n */\n href: string;\n /**\n * If `true`, the link will be rendered as a `router-link` for internal navigation (Vue Router).\n */\n router?: boolean;\n }>;\n}>();\n\nconst classObject = computed(() => {\n return {\n [`mc-breadcrumb--${props.appearance}`]:\n props.appearance && props.appearance != 'standard',\n };\n});\n\nconst isLastLink = (index: number) => {\n return index === (props.links?.length ?? 0) - 1;\n};\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/breadcrumb';\n</style>\n","<template>\n <div class=\"mc-loader\" :class=\"classObject\">\n <span class=\"mc-loader__spinner\">\n <svg\n class=\"mc-loader__icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n :viewBox=\"setViewBox\"\n aria-hidden=\"true\"\n >\n <circle\n class=\"mc-loader__path\"\n cx=\"50%\"\n cy=\"50%\"\n :r=\"setCircleRadius\"\n ></circle>\n </svg>\n </span>\n <p v-if=\"text\" class=\"mc-loader__text\" role=\"status\">{{ text }}</p>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n/**\n * A loader indicates that content or data is being loaded or processed, providing visual feedback to users during wait times.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * Specifies the visual appearance of the loader.\n */\n appearance?: 'standard' | 'accent' | 'inverse';\n\n /**\n * Defines the size of the loader.\n */\n size?: 's' | 'm' | 'l';\n\n /**\n * Text to display alongside the loader when using the loader inside an `Overlay`.\n */\n text?: string;\n }>(),\n {\n appearance: 'standard',\n size: 'm',\n },\n);\n\nconst classObject = computed(() => {\n return {\n [`mc-loader--${props.size}`]: props.size && props.size !== 'm',\n [`mc-loader--${props.appearance}`]:\n props.appearance && props.appearance !== 'standard',\n 'mc-loader--text-visible': props.text,\n };\n});\n\nconst setViewBox = computed(() => {\n let viewBox: string;\n\n switch (props.size) {\n case 's':\n viewBox = '0 0 24 24';\n break;\n case 'l':\n viewBox = '0 0 64 64';\n break;\n default:\n viewBox = '0 0 32 32';\n }\n return viewBox;\n});\n\nconst setCircleRadius = computed(() => {\n let circleRadius: number;\n\n switch (props.size) {\n case 's':\n circleRadius = 6;\n break;\n case 'l':\n circleRadius = 19;\n break;\n default:\n circleRadius = 9;\n }\n\n return circleRadius;\n});\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/loader';\n</style>\n","<template>\n <button\n class=\"mc-button\"\n :class=\"classObject\"\n :disabled=\"disabled\"\n :type=\"type\"\n >\n <span\n v-if=\"$slots.icon && iconPosition == 'left' && !isLoading\"\n class=\"mc-button__icon\"\n >\n <slot name=\"icon\" />\n </span>\n <span\n v-if=\"isLoading\"\n class=\"mc-button__icon\"\n :style=\"{ position: 'absolute' }\"\n >\n <MLoader :style=\"{ color: 'currentColor' }\" size=\"s\" />\n </span>\n <span v-if=\"$slots.icon && iconPosition == 'only'\" class=\"mc-button__icon\">\n <slot name=\"icon\" />\n </span>\n <span\n v-else\n class=\"mc-button__label\"\n :style=\"{ visibility: isLoading ? 'hidden' : 'visible' }\"\n >\n <slot>Button Label</slot>\n </span>\n <span\n v-if=\"$slots.icon && iconPosition == 'right' && !isLoading\"\n class=\"mc-button__icon\"\n >\n <slot name=\"icon\" />\n </span>\n </button>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, type VNode } from 'vue';\nimport MLoader from '../loader/MLoader.vue';\n/**\n * Buttons are used to trigger actions. Their appearance is depending on the type of action required from the user, or the context.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * Defines the visual style of the button.\n */\n appearance?: 'standard' | 'accent' | 'danger' | 'inverse';\n /**\n * Determines the size of the button.\n */\n size?: 's' | 'm' | 'l';\n /**\n * If `true`, disables the button, making it non-interactive.\n */\n disabled?: boolean;\n /**\n * If `true`, applies a \"ghost\" style to the button, typically a transparent background with a border.\n */\n ghost?: boolean;\n /**\n * If `true`, the button gets an outlined style, usually with just the border and no solid background.\n */\n outlined?: boolean;\n /**\n * Controls the positioning of an icon in the button.\n */\n iconPosition?: 'left' | 'right' | 'only';\n /**\n * Specifies the button's HTML `type` attribute.\n */\n type?: 'button' | 'reset' | 'submit';\n /**\n * If `true`, a loading state is displayed.\n */\n isLoading?: boolean;\n }>(),\n {\n appearance: 'standard',\n size: 'm',\n type: 'button',\n },\n);\n\ndefineSlots<{\n /**\n * The content displayed in the button.\n */\n default: string;\n /**\n * Use this slot to insert an icon for the Button\n */\n icon?: VNode;\n}>();\n\nconst classObject = computed(() => {\n return {\n [`mc-button--${props.appearance}`]:\n props.appearance && props.appearance != 'standard',\n [`mc-button--${props.size}`]: props.size && props.size != 'm',\n 'mc-button--ghost': props.ghost,\n 'mc-button--outlined': props.outlined,\n 'mc-button--icon-only': props.iconPosition == 'only',\n };\n});\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/button';\n</style>\n","<template>\n <div class=\"mc-checkbox\">\n <input\n :id=\"id\"\n type=\"checkbox\"\n class=\"mc-checkbox__input\"\n :class=\"classObject\"\n :name=\"name\"\n :checked=\"modelValue\"\n :indeterminate=\"indeterminate\"\n :disabled=\"disabled\"\n :aria-invalid=\"isInvalid\"\n v-bind=\"$attrs\"\n @change=\"\n emit('update:modelValue', ($event.target as HTMLInputElement).checked)\n \"\n />\n <label v-if=\"label\" :for=\"id\" class=\"mc-checkbox__label\">\n {{ label }}\n </label>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\n/**\n * Checkboxes are used to select one or multiple options in a list. They usually find their place in forms and are also used to accept some mentions.\n */\nconst props = defineProps<{\n /**\n * A unique identifier for the checkbox, used to associate the label with the form element.\n */\n id: string;\n /**\n * The name attribute for the checkbox element, typically used for form submission.\n */\n name?: string;\n /**\n * The text label displayed next to the checkbox.\n */\n label?: string;\n /**\n * The checkbox's checked state, bound via v-model.\n */\n modelValue?: boolean;\n /**\n * Sets the checkbox to an indeterminate state (partially selected).\n */\n indeterminate?: boolean;\n /**\n * If `true`, applies an invalid state to the checkbox.\n */\n isInvalid?: boolean;\n /**\n * If `true`, disables the checkbox, making it non-interactive.\n */\n disabled?: boolean;\n}>();\n\nconst classObject = computed(() => {\n return {\n 'is-invalid': props.isInvalid,\n };\n});\n\nconst emit = defineEmits<{\n /**\n * Emits when the checkbox value changes, updating the modelValue prop.\n */\n (on: 'update:modelValue', value: boolean): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/checkbox';\n</style>\n","<template>\n <div class=\"mc-field__container\" :class=\"classObjectContainer\">\n <MCheckbox\n v-for=\"option in options\"\n :id=\"option.id\"\n :key=\"option.id\"\n :label=\"option.label\"\n :is-invalid=\"option.isInvalid\"\n :name=\"name\"\n class=\"mc-field__item\"\n :class=\"classObjectItem\"\n :model-value=\"modelValue ? modelValue.includes(option.value) : undefined\"\n :disabled=\"option.disabled\"\n @update:model-value=\"(v: boolean) => onChange(v, option.value)\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue';\nimport MCheckbox from '../checkbox/MCheckbox.vue';\n\n/**\n * Checkboxes are used to select one or multiple options in a list. They usually find their place in forms and are also used to accept some mentions.\n */\nconst props = defineProps<{\n /**\n * The name attribute for the checkbox element, typically used for form submission.\n */\n name: string;\n /**\n * Property used to manage the values checked by v-model\n * (Do not use directly)\n */\n modelValue?: Array<string>;\n /**\n * list of properties of each checkbox button of the checkbox group\n */\n options: Array<{\n id: string;\n label: string;\n value: string;\n disabled?: boolean;\n isInvalid?: boolean;\n }>;\n /**\n * If `true`, make the form element of the group inline.\n */\n inline?: boolean;\n}>();\n\nconst selectedValue = ref<string[]>([]);\n\nwatch(\n () => props.modelValue,\n (newValue) => {\n selectedValue.value = newValue || [];\n },\n { immediate: true },\n);\n\nconst onChange = (isChecked: boolean, value: string) => {\n let values = [...selectedValue.value];\n\n if (isChecked && !values.includes(value)) {\n values.push(value);\n } else {\n values = values.filter((val) => val !== value);\n }\n\n emit('update:modelValue', values);\n selectedValue.value = values;\n};\n\nconst classObjectContainer = computed(() => {\n return {\n 'mc-field__container--inline': props.inline,\n };\n});\n\nconst classObjectItem = computed(() => {\n return {\n 'mc-field__container--inline__item': props.inline,\n };\n});\n\nconst emit = defineEmits<{\n /**\n * Emits when the checkbox group value changes, updating the modelValue prop.\n */\n (on: 'update:modelValue', value: Array<string>): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/field';\n</style>\n","<template><svg aria-hidden=\"true\" :fill=\"color\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2M8.293 8.293a1 1 0 0 1 1.414 0L12 10.586l2.293-2.293a1 1 0 1 1 1.414 1.414L13.414 12l2.293 2.293a1 1 0 0 1-1.414 1.414L12 13.414l-2.293 2.293a1 1 0 0 1-1.414-1.414L10.586 12 8.293 9.707a1 1 0 0 1 0-1.414\"/></svg></template>\n<script lang=\"ts\">\nexport default {\n name: 'CrossCircleFilled24',\n props: {\n /**\n * Icon color\n */\n color: {\n type: String,\n default: 'currentColor',\n },\n },\n};\n</script>\n","<template>\n <div class=\"mc-datepicker mc-text-input\" :class=\"classObject\">\n <input\n :id=\"id\"\n class=\"mc-datepicker__control mc-text-input__control\"\n :value=\"modelValue\"\n type=\"date\"\n :name=\"name\"\n :disabled=\"disabled\"\n :aria-invalid=\"isInvalid\"\n :readonly=\"readonly\"\n v-bind=\"$attrs\"\n @input=\"\n emit('update:modelValue', ($event.target as HTMLInputElement).value)\n \"\n />\n\n <div\n v-if=\"isClearable && modelValue\"\n class=\"mc-datepicker__controls-options mc-controls-options\"\n >\n <button\n type=\"button\"\n class=\"mc-controls-options__button\"\n @click=\"clearValue\"\n >\n <CrossCircleFilled24\n class=\"mc-controls-options__icon\"\n aria-hidden=\"true\"\n />\n <span class=\"mc-controls-options__label\">{{ clearLabel }}</span>\n </button>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\nimport CrossCircleFilled24 from '@mozaic-ds/icons-vue/src/components/CrossCircleFilled24/CrossCircleFilled24.vue';\n/**\n * A date picker is an input component that allows users to select a date from a calendar interface or manually enter a date value. It enhances usability by providing structured date selection, reducing input errors, and ensuring format consistency. Date Pickers are commonly used in forms, booking systems, scheduling tools, and data filtering interfaces to facilitate accurate date entry.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * A unique identifier for the datepicker element, used to associate the label with the form element.\n */\n id: string;\n /**\n * The name attribute for the datepicker element, typically used for form submission.\n */\n name?: string;\n /**\n * The current value of the datepicker field.\n */\n modelValue?: string | number;\n /**\n * If `true`, applies an invalid state to the datepicker.\n */\n isInvalid?: boolean;\n /**\n * If `true`, disables the datepicker, making it non-interactive.\n */\n disabled?: boolean;\n /**\n * Determines the size of the datepicker\n */\n size?: 's' | 'm';\n /**\n * If `true`, the datepicker is read-only (cannot be edited).\n */\n readonly?: boolean;\n /**\n * If `true`, a clear button will appear when the datepicker has a value.\n */\n isClearable?: boolean;\n /**\n * The label text for the clear button\n */\n clearLabel?: string;\n }>(),\n {\n size: 'm',\n clearLabel: 'clear content',\n },\n);\n\nconst classObject = computed(() => {\n return {\n [`mc-text-input--${props.size} mc-datepicker--${props.size}`]:\n props.size && props.size != 'm',\n 'is-invalid': props.isInvalid,\n };\n});\n\nconst modelValue = ref(props.modelValue);\nconst clearValue = () => {\n modelValue.value = '';\n emit('update:modelValue', '');\n};\n\nconst emit = defineEmits<{\n /**\n * Emits when the datepicker value changes, updating the `modelValue` prop.\n */\n (on: 'update:modelValue', value: string | number): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/text-input';\n@use '@mozaic-ds/styles/components/datepicker';\n@use '@mozaic-ds/styles/components/controls-options';\n</style>\n","<template>\n <div class=\"mc-divider\">\n <div :class=\"classObject\"></div>\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n/**\n * A Divider serves as a visual divider to separate content, providing a clear distinction between sections.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * Determines the orientation of the divider\n */\n orientation?: 'vertical' | 'horizontal';\n /**\n * Determines the style of the divider\n */\n style?: 'primary' | 'secondary' | 'tertiary' | 'inverse';\n /**\n * Determines the size of the divider\n */\n size?: 's' | 'm' | 'l';\n }>(),\n {\n orientation: 'horizontal',\n style: 'primary',\n size: 's',\n },\n);\n\nconst classObject = computed(() => {\n return {\n [`mc-divider-${props.orientation}`]: props.orientation,\n [`mc-divider-horizontal--${props.style}`]:\n props.style && props.style != 'primary',\n [`mc-divider-horizontal--${props.size}`]: props.size && props.size != 's',\n };\n});\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/divider';\n\n.mc-divider-vertical {\n content: '';\n display: block;\n height: 100%;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n}\n</style>\n","<template><svg aria-hidden=\"true\" :fill=\"color\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"M8.707 6.293a1 1 0 0 1 0 1.414L5.414 11H21a1 1 0 1 1 0 2H5.414l3.293 3.293a1 1 0 1 1-1.414 1.414l-5-5a1 1 0 0 1 0-1.414l5-5a1 1 0 0 1 1.414 0\"/></svg></template>\n<script lang=\"ts\">\nexport default {\n name: 'ArrowBack24',\n props: {\n /**\n * Icon color\n */\n color: {\n type: String,\n default: 'currentColor',\n },\n },\n};\n</script>\n","<template><svg aria-hidden=\"true\" :fill=\"color\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"M17.707 7.707a1 1 0 0 0-1.414-1.414L12 10.586 7.707 6.293a1 1 0 0 0-1.414 1.414L10.586 12l-4.293 4.293a1 1 0 1 0 1.414 1.414L12 13.414l4.293 4.293a1 1 0 0 0 1.414-1.414L13.414 12z\"/></svg></template>\n<script lang=\"ts\">\nexport default {\n name: 'Cross24',\n props: {\n /**\n * Icon color\n */\n color: {\n type: String,\n default: 'currentColor',\n },\n },\n};\n</script>\n","<template>\n <button\n class=\"mc-button mc-button--icon-button\"\n :class=\"classObject\"\n :disabled=\"disabled\"\n :type=\"type\"\n >\n <span class=\"mc-button__icon\">\n <slot name=\"icon\" />\n </span>\n </button>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, type VNode } from 'vue';\n/**\n * Icon Buttons are used to trigger actions. Their appearance is depending on the type of action required from the user, or the context.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * Defines the visual style of the icon button.\n */\n appearance?: 'standard' | 'accent' | 'danger' | 'inverse';\n /**\n * Determines the size of the icon button.\n */\n size?: 's' | 'm' | 'l';\n /**\n * If `true`, disables the icon button, making it non-interactive.\n */\n disabled?: boolean;\n /**\n * If `true`, applies a \"ghost\" style to the icon button.\n */\n ghost?: boolean;\n /**\n * If `true`, the icon button gets an outlined style.\n */\n outlined?: boolean;\n /**\n * Specifies the button's HTML `type` attribute.\n */\n type?: 'button' | 'reset' | 'submit';\n }>(),\n {\n appearance: 'standard',\n size: 'm',\n type: 'button',\n },\n);\n\ndefineSlots<{\n /**\n * Use this slot to insert the form element of your choice\n */\n icon: VNode;\n}>();\n\nconst classObject = computed(() => {\n return {\n [`mc-button--${props.appearance}`]:\n props.appearance && props.appearance != 'standard',\n [`mc-button--${props.size}`]: props.size && props.size != 'm',\n 'mc-button--ghost': props.ghost,\n 'mc-button--outlined': props.outlined,\n };\n});\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/button';\n</style>\n","<template>\n <div class=\"mc-overlay\" :class=\"{ 'is-visible': isVisible }\">\n <div role=\"dialog\" tabindex=\"-1\" :aria-labelledby=\"dialogLabel\">\n <slot />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type { VNode } from 'vue';\n\n/**\n * An overlay component is a UI element that appears above the main content to display additional information or interactions, often blocking or dimming the background.\n */\ndefineProps<{\n /**\n * Controls the visibility of the overlay.\n */\n isVisible?: boolean;\n /**\n * Accessible label for the overlay dialog.\n */\n dialogLabel?: string;\n}>();\n\ndefineSlots<{\n /**\n * Use this slot to insert a centered content inside the overlay\n */\n default?: VNode;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/overlay';\n</style>\n","<template>\n <MOverlay :is-visible=\"open\" dialogLabel=\"drawerTitle\">\n <section\n class=\"mc-drawer\"\n :class=\"classObject\"\n role=\"dialog\"\n aria-labelledby=\"drawerTitle\"\n :aria-modal=\"open ? 'true' : 'false'\"\n tabindex=\"-1\"\n :aria-hidden=\"!open\"\n v-bind=\"$attrs\"\n @keydown.esc=\"onClose\"\n >\n <div class=\"mc-drawer__dialog\" role=\"document\">\n <div class=\"mc-drawer__header\">\n <MIconButton\n v-if=\"back\"\n class=\"mc-drawer__back\"\n aria-label=\"Back\"\n ghost\n @click=\"emit('back')\"\n >\n <template #icon>\n <ArrowBack24 aria-hidden=\"true\" />\n </template>\n </MIconButton>\n <h2 class=\"mc-drawer__title\" id=\"drawerTitle\">{{ title }}</h2>\n <MIconButton\n class=\"mc-drawer__close\"\n aria-label=\"Close\"\n ghost\n @click=\"onClose\"\n >\n <template #icon>\n <Cross24 aria-hidden=\"true\" />\n </template>\n </MIconButton>\n </div>\n <div class=\"mc-drawer__body\">\n <div class=\"mc-drawer__content\" tabindex=\"0\">\n <h2 v-if=\"contentTitle\" class=\"mc-drawer__content__title\">\n {{ contentTitle }}\n </h2>\n <slot />\n </div>\n </div>\n <div v-if=\"$slots.footer\" class=\"mc-drawer__footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n </section>\n </MOverlay>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, watch, type VNode } from 'vue';\nimport ArrowBack24 from '@mozaic-ds/icons-vue/src/components/ArrowBack24/ArrowBack24.vue';\nimport Cross24 from '@mozaic-ds/icons-vue/src/components/Cross24/Cross24.vue';\nimport MIconButton from '../iconbutton/MIconButton.vue';\nimport MOverlay from '../overlay/MOverlay.vue';\n/**\n * A drawer is a sliding panel that appears from the side of the screen, providing additional content, settings, or actions without disrupting the main view. It is often used for filtering options, or contextual details. It enhances usability by keeping interfaces clean while offering expandable functionality.\n */\nconst props = defineProps<{\n /**\n * If `true`, display the drawer.\n */\n open?: boolean;\n /**\n * Position of the drawer\n */\n position?: 'left' | 'right';\n /**\n * If `true`, the drawer have a bigger width.\n */\n extended?: boolean;\n /**\n * If `true`, display the back button.\n */\n back?: boolean;\n /**\n * Title of the drawer\n */\n title: string;\n /**\n * Title of the content of the drawer\n */\n contentTitle?: string;\n}>();\n\ndefineSlots<{\n /**\n * Use this slot to insert the content of the drawer\n */\n default?: VNode;\n /**\n * Use this slot to insert buttons in the footer\n */\n footer?: VNode;\n}>();\n\nconst classObject = computed(() => {\n return {\n 'is-open': props.open,\n 'mc-drawer--extend': props.extended,\n [`mc-drawer--${props.position}`]:\n props.position && props.position != 'right',\n };\n});\n\nwatch(\n () => props.open,\n (newValue) => {\n emit('update:open', newValue);\n },\n);\n\nconst onClose = () => {\n emit('update:open', false);\n};\n\nconst emit = defineEmits<{\n /**\n * Emits when the drawer open state changes, updating the modelValue prop.\n */\n (on: 'update:open', value: boolean): void;\n /**\n * Emits when click back button of the drawer.\n */\n (on: 'back'): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/drawer';\n\n.mc-overlay {\n filter: none;\n}\n</style>\n","<template>\n <div class=\"mc-field\">\n <label class=\"mc-field__label\" :for=\"id\">\n {{ label }}\n <span v-if=\"requirementText\" class=\"mc-field__requirement\"\n >({{ requirementText }})</span\n >\n </label>\n\n <span v-if=\"helpId && helpText\" :id=\"helpId\" class=\"mc-field__help\">{{\n helpText\n }}</span>\n\n <div class=\"mc-field__content\">\n <slot />\n </div>\n\n <span\n v-if=\"(isValid || isInvalid) && message\"\n class=\"mc-field__validation-message\"\n :id=\"messageId\"\n :class=\"classObjectValidation\"\n >\n {{ message }}\n </span>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, type VNode } from 'vue';\n/**\n * This component creates a structured form field with a label, optional help text, error and validation message handling.\n */\nconst props = defineProps<{\n /**\n * A unique identifier for the form field, used to associate the label with the form element.\n */\n id: string;\n /**\n * The text displayed as the label for the form field.\n */\n label: string;\n /**\n * Additional text displayed alongside the label, typically used to indicate if the form field is required or optional\n */\n requirementText?: string;\n /**\n * Text shown below the form field to provide additional context or instructions for the user.\n */\n helpText?: string;\n /**\n * The value of the `id` attribute set on the **helpText** element. _This value is mandatory when using a helpText in order to guarantee the accessibility of the component._\n */\n helpId?: string;\n /**\n * If `true`, applies a valid state to the form field.\n */\n isValid?: boolean;\n /**\n * If `true`, applies an invalid state to the form field.\n */\n isInvalid?: boolean;\n /**\n * The value of the `id` attribute set on the **validationMessage** element. _This value is mandatory when using a validationMessage in order to guarantee the accessibility of the component._\n */\n messageId?: string;\n /**\n * message displayed when the form field has a valid or invalid state, usually indicating validation or errors.\n */\n message?: string;\n}>();\n\ndefineSlots<{\n /**\n * Use this slot to insert the form element of your choice\n */\n default: VNode;\n}>();\n\nconst classObjectValidation = computed(() => {\n return {\n 'is-valid': props.isValid,\n 'is-invalid': props.isInvalid,\n };\n});\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/field';\n</style>\n","<template>\n <fieldset class=\"mc-field--group\">\n <legend class=\"mc-field__legend\" :for=\"id\">\n {{ legend }}\n <span v-if=\"requirementText\" class=\"mc-field__requirement\"\n >({{ requirementText }})</span\n >\n </legend>\n\n <span v-if=\"helpText\" class=\"mc-field__help\">{{ helpText }}</span>\n\n <div class=\"mc-field__content\">\n <slot />\n </div>\n\n <span\n v-if=\"(isValid || isInvalid) && message\"\n class=\"mc-field__validation-message\"\n :class=\"classObjectValidation\"\n >\n {{ message }}\n </span>\n </fieldset>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, type VNode } from 'vue';\n/**\n * This component creates a structured form field for group field such as Radio Group, Checkbox Group or Toggle Group with a label, optional help text, error and validation message handling.\n */\nconst props = defineProps<{\n /**\n * A unique identifier for the form field, used to associate the label with the form element.\n */\n id: string;\n /**\n * The text displayed as the legend for the form fieldset.\n */\n legend: string;\n /**\n * Additional text displayed alongside the label, typically used to indicate if the form field is required or optional\n */\n requirementText?: string;\n /**\n * Text shown below the form field to provide additional context or instructions for the user.\n */\n helpText?: string;\n /**\n * If `true`, applies a valid state to the form field.\n */\n isValid?: boolean;\n /**\n * If `true`, applies an invalid state to the form field.\n */\n isInvalid?: boolean;\n /**\n * message displayed when the form field has a valid or invalid state, usually indicating validation or errors.\n */\n message?: string;\n}>();\n\ndefineSlots<{\n /**\n * Use this slot to insert the form element of your choice\n */\n default: VNode;\n}>();\n\nconst classObjectValidation = computed(() => {\n return {\n 'is-valid': props.isValid,\n 'is-invalid': props.isInvalid,\n };\n});\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/field';\n</style>\n","<template>\n <div class=\"mc-flag\" :class=\"classObject\">\n <span class=\"mc-flag__label\">\n {{ label }}\n </span>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n/**\n * A flag is used to display meta-information about a product or service, acting as a visual indicator of the main category of content. It is typically placed at the top of an element to ensure immediate visibility.\n */\nconst props = defineProps<{\n /**\n * Label of the Flag\n */\n label: string;\n /**\n * Allows to define the Flag style\n */\n appearance?: 'danger' | 'accent' | 'inverse' | 'standard';\n}>();\n\nconst classObject = computed(() => {\n return {\n [`mc-flag--${props.appearance}`]:\n props.appearance && props.appearance != 'standard',\n };\n});\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/flag';\n</style>\n","<template>\n <div class=\"mc-loading-loader\" :class=\"{ 'is-visible': isVisible }\">\n <div role=\"dialog\" tabindex=\"-1\" :aria-label=\"text\" v-bind=\"$attrs\">\n <MLoader size=\"l\" appearance=\"inverse\" :text=\"text\" />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport MLoader from '../loader/MLoader.vue';\n/**\n * A loading overlay is a full-screen or container-level layer that indicates a process is in progress, preventing user interaction until the task is completed. It includes a progress indicator, and a message to inform users about the loading state. Loading Overlays are commonly used in data-heavy applications, form submissions, and page transitions to enhance user experience by managing wait times effectively.\n */\ndefineProps<{\n /**\n * Controls the visibility of the loading overlay.\n */\n isVisible?: boolean;\n /**\n * Text of the loading overlay.\n */\n text?: string;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/loading-overlay';\n</style>\n","<template>\n <MOverlay :is-visible=\"open\" dialogLabel=\"modalTitle\">\n <section\n class=\"mc-modal\"\n :class=\"classObject\"\n role=\"dialog\"\n aria-labelledby=\"modalTitle\"\n :aria-modal=\"open ? 'true' : 'false'\"\n tabindex=\"-1\"\n :aria-hidden=\"!open\"\n v-bind=\"$attrs\"\n @keydown.esc=\"onClose\"\n >\n <div class=\"mc-modal__dialog\" role=\"document\">\n <header class=\"mc-modal__header\">\n <span v-if=\"$slots.icon\" class=\"mc-modal__icon\">\n <slot name=\"icon\" />\n </span>\n <h2 class=\"mc-modal__title\" id=\"modalTitle\">\n {{ title }}\n </h2>\n <MIconButton\n v-if=\"closable\"\n class=\"mc-modal__close\"\n aria-label=\"Close\"\n ghost\n @click=\"onClose\"\n >\n <template #icon>\n <Cross24 aria-hidden=\"true\" />\n </template>\n </MIconButton>\n </header>\n <main class=\"mc-modal__body\">\n <p>{{ description }}</p>\n <slot />\n </main>\n <footer v-if=\"$slots.footer\" class=\"mc-modal__footer\">\n <span class=\"mc-modal__link\">\n <slot name=\"link\" />\n </span>\n <slot name=\"footer\" />\n </footer>\n </div>\n </section>\n </MOverlay>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, watch, type VNode } from 'vue';\nimport Cross24 from '@mozaic-ds/icons-vue/src/components/Cross24/Cross24.vue';\nimport MIconButton from '../iconbutton/MIconButton.vue';\nimport MOverlay from '../overlay/MOverlay.vue';\n/**\n * A modal is a dialog window that appears on top of the main content, requiring user interaction before returning to the main interface. It is used to focus attention on a specific task, provide important information, or request confirmation for an action. Modals typically include a title, description, and primary/secondary actions and should be used for single, focused tasks to avoid disrupting the user experience.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * if `true`, display the modal.\n */\n open?: boolean;\n /**\n * Title of the modal\n */\n title: string;\n /**\n * Description of the modal\n */\n description?: string;\n /**\n * if `true`, display the close button.\n */\n closable?: boolean;\n }>(),\n {\n closable: true,\n },\n);\n\ndefineSlots<{\n /**\n * Use this slot to insert an icon next to the title of the modal\n */\n icon?: VNode;\n /**\n * Use this slot to insert the content of the modal\n */\n default?: VNode;\n /**\n * Use this slot to insert a link in the footer\n */\n link?: VNode;\n /**\n * Use this slot to insert buttons in the footer\n */\n footer?: VNode;\n}>();\n\nconst classObject = computed(() => {\n return {\n 'is-open': props.open,\n };\n});\n\nwatch(\n () => props.open,\n (newValue) => {\n emit('update:open', newValue);\n },\n);\n\nconst onClose = () => {\n emit('update:open', false);\n};\n\nconst emit = defineEmits<{\n /**\n * Emits when the checkbox value changes, updating the modelValue prop.\n */\n (on: 'update:open', value: boolean): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/modal';\n\n.mc-overlay {\n filter: none;\n}\n</style>\n","<template>\n <span class=\"mc-number-badge\" :class=\"classObject\">\n {{ label }}\n </span>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n/**\n * A badge indicates the status of an entity and can evolve at any time.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * Content of the badge\n */\n label: number;\n /**\n * Allows to define the Badge style\n */\n appearance?: 'danger' | 'accent' | 'inverse' | 'standard';\n\n /**\n * Allows to define the Badge size\n */\n size?: 's' | 'm';\n }>(),\n {\n appearance: 'standard',\n size: 's',\n },\n);\n\nconst classObject = computed(() => {\n return {\n [`mc-number-badge--${props.appearance}`]:\n props.appearance && props.appearance != 'standard',\n [`mc-number-badge--${props.size}`]: props.size && props.size != 's',\n };\n});\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/number-badge';\n</style>\n","<template>\n <select\n :id=\"id\"\n class=\"mc-select\"\n :name=\"name\"\n :value=\"modelValue\"\n :class=\"classObject\"\n :disabled=\"disabled\"\n v-bind=\"$attrs\"\n @change=\"\n emit('update:modelValue', ($event.target as HTMLSelectElement).value)\n \"\n >\n <option v-if=\"placeholder\" value=\"\" disabled>\n -- {{ placeholder }} --\n </option>\n <option\n v-for=\"(option, index) in options\"\n :key=\"index\"\n :value=\"option.value\"\n v-bind=\"option.attributes\"\n :disabled=\"option.disabled\"\n >\n {{ option.text }}\n </option>\n </select>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\n/**\n * A select is a form element for multi-line text input, ideal for longer content like comments or descriptions.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * A unique identifier for the select, used to associate the label with the form element.\n */\n id: string;\n /**\n * The name attribute for the select element, used for form submission.\n */\n name?: string;\n /**\n * Define the available choices for the select element.\n */\n options: Array<{\n id?: string;\n text: string;\n value: string | number;\n attributes?: Record<string, string | boolean | number>;\n disabled?: boolean;\n }>;\n /**\n * The current value of the select.\n */\n modelValue?: string | number;\n /**\n * Text displayed when the select has no selected value.\n */\n placeholder?: string;\n /**\n * If `true`, the select is marked as invalid.\n */\n isInvalid?: boolean;\n /**\n * If `true`, the select is disabled and non-interactive.\n */\n disabled?: boolean;\n /**\n * Determines the size of the select\n */\n size?: 's' | 'm';\n /**\n * If `true`, the select is read-only (cannot be edited).\n */\n readonly?: boolean;\n }>(),\n {\n size: 'm',\n },\n);\n\nconst classObject = computed(() => {\n return {\n [`mc-select--${props.size}`]: props.size && props.size != 'm',\n 'mc-select--readonly': props.readonly,\n 'is-invalid': props.isInvalid,\n };\n});\n\nconst emit = defineEmits<{\n /**\n * Emits when the select value changes, updating the modelValue prop.\n */\n (on: 'update:modelValue', value: string | number): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/select';\n</style>\n","<template><svg aria-hidden=\"true\" :fill=\"color\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"M14.207 6.293a1 1 0 0 1 0 1.414L9.914 12l4.293 4.293a1 1 0 0 1-1.414 1.414l-5-5a1 1 0 0 1 0-1.414l5-5a1 1 0 0 1 1.414 0\"/></svg></template>\n<script lang=\"ts\">\nexport default {\n name: 'ChevronLeft24',\n props: {\n /**\n * Icon color\n */\n color: {\n type: String,\n default: 'currentColor',\n },\n },\n};\n</script>\n","<template><svg aria-hidden=\"true\" :fill=\"color\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"M9.793 6.293a1 1 0 0 1 1.414 0l5 5a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414-1.414L14.086 12 9.793 7.707a1 1 0 0 1 0-1.414\"/></svg></template>\n<script lang=\"ts\">\nexport default {\n name: 'ChevronRight24',\n props: {\n /**\n * Icon color\n */\n color: {\n type: String,\n default: 'currentColor',\n },\n },\n};\n</script>\n","<template>\n <nav class=\"mc-pagination\" role=\"navigation\" aria-label=\"pagination\">\n <MButton\n v-if=\"!compact\"\n icon-position=\"only\"\n aria-label=\"Previous page\"\n :disabled=\"isFirstPage\"\n @click=\"previous\"\n >\n <template #icon><ChevronLeft24 /></template>\n </MButton>\n <MIconButton\n v-else\n outlined\n aria-label=\"Previous page\"\n :disabled=\"isFirstPage\"\n @click=\"previous\"\n >\n <template #icon><ChevronLeft24 /></template>\n </MIconButton>\n\n <div v-if=\"!compact\" class=\"mc-pagination__field\">\n <MSelect\n class=\"mc-pagination__select\"\n :id=\"id\"\n v-model=\"currentValue\"\n :options=\"options\"\n @update:model-value=\"emit('update:modelValue', Number($event))\"\n :aria-label=\"selectLabel\"\n ></MSelect>\n </div>\n\n <span v-if=\"compact\" class=\"mc-pagination__label\" aria-current=\"page\">\n {{ options.find((option) => option.value === currentValue)?.text }}\n </span>\n\n <MButton\n v-if=\"!compact\"\n icon-position=\"only\"\n aria-label=\"Next page\"\n :disabled=\"isLastPage\"\n @click=\"next\"\n >\n <template #icon><ChevronRight24 /></template>\n </MButton>\n <MIconButton\n v-else\n outlined\n aria-label=\"Next page\"\n :disabled=\"isLastPage\"\n @click=\"next\"\n >\n <template #icon><ChevronRight24 /></template>\n </MIconButton>\n </nav>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue';\nimport MButton from '../button/MButton.vue';\nimport MSelect from '../select/MSelect.vue';\nimport ChevronLeft24 from '@mozaic-ds/icons-vue/src/components/ChevronLeft24/ChevronLeft24.vue';\nimport ChevronRight24 from '@mozaic-ds/icons-vue/src/components/ChevronRight24/ChevronRight24.vue';\nimport MIconButton from '../iconbutton/MIconButton.vue';\n/**\n * Pagination is a navigation component that allows users to browse through large sets of content by dividing it into discrete pages. It typically includes previous and next buttons, numeric page selectors, or dropdowns to jump between pages efficiently. Pagination improves usability and performance in content-heavy applications such as tables, search results, and articles by preventing long scrolls and reducing page load times.\n */\nconst props = defineProps<{\n /**\n * A unique identifier for the pagination.\n */\n id: string;\n /**\n * The current value of the selected page.\n */\n modelValue: number;\n /**\n * If `true`, display a compact version without the select.\n */\n compact?: boolean;\n /**\n * Define the available choices for the pagination select element.\n */\n options: Array<{\n id?: string;\n text: string;\n value: number;\n }>;\n /**\n * Accessible label for the select of the pagination.\n */\n selectLabel?: string;\n}>();\n\nconst emit = defineEmits<{\n /**\n * Emits when the pagination value changes, updating the modelValue prop.\n */\n (on: 'update:modelValue', value: number): void;\n}>();\n\nconst currentValue = ref(props.modelValue);\n\nwatch(currentValue, (newVal) => {\n if (newVal !== props.modelValue) {\n emit('update:modelValue', newVal);\n }\n});\n\nconst currentIndex = computed(() =>\n props.options.findIndex((opt) => opt.value === currentValue.value),\n);\n\nconst isFirstPage = computed(() => currentIndex.value === 0);\nconst isLastPage = computed(\n () => currentIndex.value === props.options.length - 1,\n);\n\nconst previous = () => {\n const currentIndex = props.options.findIndex(\n (opt) => opt.value === currentValue.value,\n );\n if (currentIndex > 0) {\n currentValue.value = props.options[currentIndex - 1].value;\n emit('update:modelValue', props.options[currentIndex - 1].value);\n }\n};\n\nconst next = () => {\n const currentIndex = props.options.findIndex(\n (opt) => opt.value === currentValue.value,\n );\n if (currentIndex < props.options.length - 1) {\n currentValue.value = props.options[currentIndex + 1].value;\n emit('update:modelValue', props.options[currentIndex + 1].value);\n }\n};\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/pagination';\n</style>\n","<template>\n <div class=\"mc-password-input mc-text-input\" :class=\"classObject\">\n <input\n class=\"mc-password-input__control mc-text-input__control\"\n v-model=\"modelValue\"\n :id=\"id\"\n :type=\"inputType\"\n :name=\"name\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :aria-invalid=\"isInvalid\"\n :readonly=\"readonly\"\n v-bind=\"$attrs\"\n @input=\"\n emit('update:modelValue', ($event.target as HTMLInputElement).value)\n \"\n />\n <div v-if=\"isClearable && modelValue\" class=\"mc-controls-options\">\n <button class=\"mc-controls-options__button\" @click=\"clearValue\">\n <CrossCircleFilled24\n class=\"mc-controls-options__icon\"\n aria-hidden=\"true\"\n />\n <span class=\"mc-controls-options__label\">{{ clearLabel }}</span>\n </button>\n </div>\n <MButton\n ref=\"button\"\n role=\"switch\"\n :aria-checked=\"ariaChecked\"\n :disabled=\"disabled\"\n @click=\"toggleVisibility\"\n size=\"s\"\n ghost\n >\n {{ isVisible ? buttonLabel.hide : buttonLabel.show }}\n </MButton>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\nimport CrossCircleFilled24 from '@mozaic-ds/icons-vue/src/components/CrossCircleFilled24/CrossCircleFilled24.vue';\nimport MButton from '../button/MButton.vue';\n\n/**\n * A password input is a specialized input field used to securely enter and manage passwords. It typically masks the characters entered to protect sensitive information from being seen. It includes a toggle button to show or hide the password, improving usability while maintaining security. Password inputs are commonly used in login forms, account creation, and authentication flows.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * A unique identifier for the password input element, used to associate the label with the form element.\n */\n id: string;\n /**\n * The name attribute for the password input element, typically used for form submission.\n */\n name?: string;\n /**\n * The current value of the password input field.\n */\n modelValue?: string | number;\n /**\n * A placeholder text to show in the password input when it is empty.\n */\n placeholder?: string;\n /**\n * If `true`, applies an invalid state to the password input.\n */\n isInvalid?: boolean;\n /**\n * If `true`, disables the password input, making it non-interactive.\n */\n disabled?: boolean;\n /**\n * If `true`, the password input is read-only (cannot be edited).\n */\n readonly?: boolean;\n /**\n * If `true`, a clear button will appear when the password input has a value.\n */\n isClearable?: boolean;\n /**\n * The label text for the clear button\n */\n clearLabel?: string;\n /**\n * Labels of the button displayed when showing or hiding the password\n */\n buttonLabel?: {\n show: string;\n hide: string;\n };\n }>(),\n {\n clearLabel: 'Clear content',\n buttonLabel: () => ({ show: 'Show', hide: 'Hide' }),\n },\n);\n\nconst classObject = computed(() => ({\n 'is-invalid': props.isInvalid,\n}));\n\n// Local state management\nconst modelValue = ref(props.modelValue);\nconst isVisible = ref(false);\n\n/**\n * Clear the input value.\n */\nconst clearValue = () => {\n modelValue.value = '';\n emit('update:modelValue', '');\n};\n\n/**\n * Toggle the visibility of the password.\n */\nconst toggleVisibility = () => {\n isVisible.value = !isVisible.value;\n};\n\n/**\n * Compute the input type based on visibility state.\n */\nconst inputType = computed(() => (isVisible.value ? 'text' : 'password'));\n\n/**\n * Aria attributes for accessibility.\n */\nconst ariaChecked = computed(() => (isVisible.value ? 'true' : 'false'));\n\nconst emit = defineEmits<{\n /**\n * Emits when the input value changes, updating the `modelValue` prop.\n */\n (on: 'update:modelValue', value: string | number): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/controls-options';\n@use '@mozaic-ds/styles/components/text-input';\n@use '@mozaic-ds/styles/components/password-input';\n</style>\n","<template>\n <div class=\"mc-pincode-input\" :class=\"classObject\" @paste=\"onPaste\">\n <input\n v-for=\"(digit, index) in otp\"\n :key=\"index\"\n :id=\"`pincodeItem${index}`\"\n :ref=\"(el) => setInputRef(el, index)\"\n type=\"text\"\n inputmode=\"numeric\"\n maxlength=\"1\"\n pattern=\"\\d*\"\n autocomplete=\"one-time-code\"\n :name=\"name || `pincode-${id}`\"\n class=\"mc-pincode-input__control\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :value=\"digit\"\n v-bind=\"$attrs\"\n @input=\"(e) => onInput(e, index)\"\n @keydown.backspace=\"(e) => onBackspace(e, index)\"\n @keydown=\"(e) => onKeyDown(e, index)\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n ref,\n computed,\n watch,\n nextTick,\n type ComponentPublicInstance,\n} from 'vue';\n/**\n * A pincode input is a specialized input field used to enter short numeric codes, such as verification codes, security PINs, or authentication tokens. It typically separates each digit into individual fields to improve readability and ease of entry. This component is commonly used in two-factor authentication (2FA), password recovery, and secure access flows, ensuring a structured and user-friendly experience.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * A unique identifier for the pincode element, used to associate the label with the form element.\n */\n id: string;\n /**\n * The number of input displayed in the pincode element.\n */\n length?: 4 | 5 | 6;\n /**\n * The name attribute for the pincode element, typically used for form submission.\n */\n name?: string;\n /**\n * The current value of the pincode field.\n */\n modelValue?: string | number;\n /**\n * If `true`, applies an invalid state to the pincode.\n */\n isInvalid?: boolean;\n /**\n * If `true`, disables the pincode, making it non-interactive.\n */\n disabled?: boolean;\n /**\n * If `true`, the pincode is read-only (cannot be edited).\n */\n readonly?: boolean;\n }>(),\n {\n length: 6,\n },\n);\n\nconst classObject = computed(() => {\n return {\n 'is-invalid': props.isInvalid,\n };\n});\n\nconst emit = defineEmits<{\n (on: 'update:modelValue', value: string): void;\n}>();\n\nconst otp = ref<string[]>(Array(props.length).fill(''));\nconst inputRefs = ref<(HTMLInputElement | null)[]>([]);\n\nconst setInputRef = (\n el: Element | ComponentPublicInstance | null,\n index: number,\n) => {\n inputRefs.value[index] = el as HTMLInputElement | null;\n};\n\nwatch(\n () => props.modelValue,\n (value) => {\n const str = String(value ?? '');\n otp.value = Array.from({ length: props.length }, (_, i) => str[i] ?? '');\n },\n { immediate: true },\n);\n\nconst focusInput = (index: number) => {\n nextTick(() => inputRefs.value[index]?.focus());\n};\n\nconst onInput = (e: Event, index: number) => {\n const val = (e.target as HTMLInputElement).value.replace(/\\D/g, '');\n if (val) {\n otp.value[index] = val[0];\n emit('update:modelValue', otp.value.join(''));\n if (index + 1 < props.length) focusInput(index + 1);\n } else {\n otp.value[index] = '';\n emit('update:modelValue', otp.value.join(''));\n }\n};\n\nconst onKeyDown = (e: KeyboardEvent, index: number) => {\n if (e.key === 'ArrowLeft' && index > 0) {\n focusInput(index - 1);\n } else if (e.key === 'ArrowRight' && index < props.length - 1) {\n focusInput(index + 1);\n } else if (e.key === 'Backspace') {\n onBackspace(e, index);\n }\n};\n\nconst onBackspace = (e: KeyboardEvent, index: number) => {\n if (otp.value[index] === '' && index > 0) {\n otp.value[index - 1] = '';\n emit('update:modelValue', otp.value.join(''));\n focusInput(index - 1);\n }\n};\n\nconst onPaste = (e: ClipboardEvent) => {\n e.preventDefault();\n const pasted = e.clipboardData?.getData('text') ?? '';\n const digits = pasted.replace(/\\D/g, '').slice(0, props.length).split('');\n otp.value = Array.from({ length: props.length }, (_, i) => digits[i] ?? '');\n emit('update:modelValue', otp.value.join(''));\n focusInput(Math.min(digits.length, props.length - 1));\n};\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/pincode-input';\n</style>\n","<template><svg aria-hidden=\"true\" :fill=\"color\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"M13 5a1 1 0 1 0-2 0v6H5a1 1 0 1 0 0 2h6v6a1 1 0 1 0 2 0v-6h6a1 1 0 1 0 0-2h-6z\"/></svg></template>\n<script lang=\"ts\">\nexport default {\n name: 'More24',\n props: {\n /**\n * Icon color\n */\n color: {\n type: String,\n default: 'currentColor',\n },\n },\n};\n</script>\n","<template><svg aria-hidden=\"true\" :fill=\"color\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"M6 12a1 1 0 0 1 1-1h10a1 1 0 1 1 0 2H7a1 1 0 0 1-1-1\"/></svg></template>\n<script lang=\"ts\">\nexport default {\n name: 'Less24',\n props: {\n /**\n * Icon color\n */\n color: {\n type: String,\n default: 'currentColor',\n },\n },\n};\n</script>\n","<template>\n <div class=\"mc-quantity-selector\" :class=\"classObject\">\n <input\n :id=\"id\"\n v-model=\"currentValue\"\n class=\"mc-quantity-selector__control\"\n type=\"number\"\n :name=\"name\"\n :disabled=\"disabled\"\n :min=\"min\"\n :max=\"max\"\n :step=\"step\"\n :readonly=\"readonly\"\n :aria-invalid=\"isInvalid\"\n :aria-valuemin=\"min\"\n :aria-valuemax=\"max\"\n :aria-valuenow=\"currentValue\"\n v-bind=\"$attrs\"\n @change=\"onChange(Number(($event.target as HTMLInputElement).value))\"\n />\n <button\n v-if=\"!readonly\"\n type=\"button\"\n :aria-controls=\"id\"\n class=\"mc-quantity-selector__button mc-quantity-selector__button--increase\"\n tabindex=\"-1\"\n :disabled=\"disabled || currentValue === max\"\n @click=\"increment\"\n >\n <span class=\"mc-quantity-selector__icon\">\n <More24 />\n </span>\n <span class=\"mc-quantity-selector__label\">{{ incrementlabel }}</span>\n </button>\n <button\n v-if=\"!readonly\"\n type=\"button\"\n :aria-controls=\"id\"\n class=\"mc-quantity-selector__button mc-quantity-selector__button--decrease\"\n tabindex=\"-1\"\n :disabled=\"disabled || currentValue === min\"\n @click=\"decrement\"\n >\n <span class=\"mc-quantity-selector__icon\">\n <Less24 />\n </span>\n <span class=\"mc-quantity-selector__label\">{{ decrementLabel }}</span>\n </button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue';\nimport More24 from '@mozaic-ds/icons-vue/src/components/More24/More24.vue';\nimport Less24 from '@mozaic-ds/icons-vue/src/components/Less24/Less24.vue';\n\n/**\n * The quantity selector is a form element used to enter or select a number. This type of input is best used when the user needs to choose the quantity of a selected item, like a product before adding to cart for example.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * A unique identifier for the quantity selector element, used to associate the label with the form element.\n */\n id: string;\n /**\n * The name attribute for the quantity selector element, typically used for form submission.\n */\n name?: string;\n /**\n * The current value of the quantity selector field.\n */\n modelValue?: number;\n /**\n * If `true`, applies an invalid state to the quantity selector.\n */\n isInvalid?: boolean;\n /**\n * If `true`, disables the quantity selector, making it non-interactive.\n */\n disabled?: boolean;\n /**\n * Determines the size of the quantity selector\n */\n size?: 's' | 'm';\n /**\n * Minimum acceptable value for the quantity selector.\n */\n min?: number;\n /**\n * Maximum acceptable value for the quantity selector.\n */\n max?: number;\n /**\n * Determines how much the value will change per click when the quantity is increased or decreased.\n */\n step?: number;\n /**\n * If `true`, the quantity selector is read-only (cannot be edited).\n */\n readonly?: boolean;\n /**\n * The label text for the increment button.\n */\n incrementlabel?: string;\n /**\n * The label text for the decrement button.\n */\n decrementLabel?: string;\n }>(),\n {\n modelValue: 1,\n min: 1,\n max: 100,\n step: 1,\n size: 'm',\n name: 'quantity-selector-input',\n incrementlabel: 'Increment',\n decrementLabel: 'Decrement',\n },\n);\n\nconst currentValue = ref(props.modelValue);\n\nwatch(currentValue, (newVal) => {\n if (newVal !== props.modelValue) {\n emit('update:modelValue', newVal);\n }\n});\n\nconst classObject = computed(() => {\n return {\n [`mc-quantity-selector--${props.size}`]: props.size && props.size != 'm',\n 'is-invalid': props.isInvalid,\n };\n});\n\nconst increment = () => {\n if (currentValue.value + props.step <= props.max) {\n currentValue.value += props.step;\n } else {\n currentValue.value = props.max;\n }\n};\n\nconst decrement = () => {\n if (currentValue.value - props.step > props.min) {\n currentValue.value -= props.step;\n } else {\n currentValue.value = props.min;\n }\n};\n\nconst onChange = (value: number) => {\n currentValue.value = value;\n\n if (currentValue.value > props.max) {\n currentValue.value = props.max;\n }\n if (currentValue.value <= props.min) {\n currentValue.value = props.min;\n }\n\n emit('update:modelValue', currentValue.value);\n};\n\nconst emit = defineEmits<{\n /**\n * Emits when the quantity selector value changes, updating the `modelValue` prop.\n */\n (on: 'update:modelValue', value: number): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/quantity-selector';\n</style>\n","<template>\n <div class=\"mc-radio\">\n <input\n :id=\"id\"\n type=\"radio\"\n class=\"mc-radio__input\"\n :class=\"classObject\"\n :name=\"name\"\n :checked=\"modelValue\"\n :disabled=\"disabled\"\n :aria-invalid=\"isInvalid\"\n v-bind=\"$attrs\"\n @change=\"\n emit('update:modelValue', ($event.target as HTMLInputElement).checked)\n \"\n />\n <label v-if=\"label\" :for=\"id\" class=\"mc-radio__label\">\n {{ label }}\n </label>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\n/**\n * A radio button is used to offer a unique choice to your user in a form. Unlike checkboxes, it can not be used alone.\n */\nconst props = defineProps<{\n /**\n * A unique identifier for the radio, used to associate the label with the form element.\n */\n id: string;\n /**\n * The name attribute for the radio element, typically used for form submission.\n */\n name?: string;\n /**\n * The text label displayed next to the radio.\n */\n label?: string;\n /**\n * The radio's checked state, bound via v-model.\n */\n modelValue?: boolean;\n /**\n * If `true`, applies an invalid state to the radio.\n */\n isInvalid?: boolean;\n /**\n * If `true`, disables the radio, making it non-interactive.\n */\n disabled?: boolean;\n}>();\n\nconst classObject = computed(() => {\n return {\n 'is-invalid': props.isInvalid,\n };\n});\n\nconst emit = defineEmits<{\n /**\n * Emits when the radio value changes, updating the modelValue prop.\n */\n (on: 'update:modelValue', value: boolean): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/radio';\n</style>\n","<template>\n <div class=\"mc-field__container\" :class=\"classObjectContainer\">\n <MRadio\n v-for=\"option in options\"\n :id=\"option.id\"\n :key=\"option.id\"\n :label=\"option.label\"\n :is-invalid=\"isInvalid\"\n :name=\"name\"\n class=\"mc-field__item\"\n :class=\"classObjectItem\"\n :model-value=\"modelValue === option.value\"\n :disabled=\"option.disabled\"\n @update:model-value=\"\n (v: boolean) => (v ? emit('update:modelValue', option.value) : null)\n \"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport MRadio from '../radio/MRadio.vue';\n\n/**\n * A radio button is used to offer a unique choice to your user in a form. Unlike checkboxes, it can not be used alone.\n */\nconst props = defineProps<{\n /**\n * The name attribute for the radio element, typically used for form submission.\n */\n name: string;\n /**\n * Property used to manage the values checked by v-model\n * (Do not use directly)\n */\n modelValue?: string;\n /**\n * list of properties of each radio button of the radio group\n */\n options: Array<{\n id: string;\n label: string;\n value: string;\n disabled?: boolean;\n }>;\n /**\n * If `true`, applies an invalid state to the radio group.\n */\n isInvalid?: boolean;\n /**\n * If `true`, make the form element of the group inline.\n */\n inline?: boolean;\n}>();\n\nconst classObjectContainer = computed(() => {\n return {\n 'mc-field__container--inline': props.inline,\n };\n});\n\nconst classObjectItem = computed(() => {\n return {\n 'mc-field__container--inline__item': props.inline,\n };\n});\n\nconst emit = defineEmits<{\n /**\n * Emits when the radio group value changes, updating the modelValue prop.\n */\n (on: 'update:modelValue', value: string): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/field';\n</style>\n","<template>\n <span class=\"mc-status-dot\" :class=\"classObject\"></span>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n/**\n * A badge indicates the status of an entity and can evolve at any time.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * Allows to define the Status Dot style\n */\n status?: 'info' | 'success' | 'warning' | 'error' | 'neutral';\n /**\n * Determines the size of the Status Dot.\n */\n size?: 's' | 'm' | 'l';\n }>(),\n {\n status: 'info',\n },\n);\n\nconst classObject = computed(() => {\n return {\n [`mc-status-dot--${props.status}`]: props.status && props.status != 'info',\n [`mc-status-dot--${props.size}`]: props.size && props.size != 'm',\n };\n});\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/status-dot';\n</style>\n","<template>\n <div class=\"mc-status-badge\" :class=\"classObject\">\n <MStatusDot :status=\"status\" />\n <span class=\"mc-status-badge__label\">{{ label }}</span>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport MStatusDot from '../statusdot/MStatusDot.vue';\n/**\n * A status badge indicates the status of an entity and can evolve at any time.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * Content of the Status Badge\n */\n label: string;\n /**\n * Allows to define the Status Badge style\n */\n status?: 'info' | 'success' | 'warning' | 'error' | 'neutral';\n }>(),\n {\n status: 'info',\n },\n);\n\nconst classObject = computed(() => {\n return {\n [`mc-status-badge--${props.status}`]:\n props.status && props.status != 'info',\n };\n});\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/status-badge';\n</style>\n","<template><svg aria-hidden=\"true\" :fill=\"color\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" width=\"20\" height=\"20\"><path fill-rule=\"evenodd\" d=\"M14.697 6.364a.75.75 0 1 0-1.061-1.061L10 8.939 6.363 5.303a.75.75 0 0 0-1.06 1.06L8.939 10l-3.636 3.636a.75.75 0 1 0 1.06 1.06L10 11.062l3.636 3.636a.75.75 0 0 0 1.06-1.06L11.06 10z\"/></svg></template>\n<script lang=\"ts\">\nexport default {\n name: 'Cross20',\n props: {\n /**\n * Icon color\n */\n color: {\n type: String,\n default: 'currentColor',\n },\n },\n};\n</script>\n","<template><svg aria-hidden=\"true\" :fill=\"color\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" width=\"32\" height=\"32\"><path fill-rule=\"evenodd\" d=\"M16 3C8.82 3 3 8.82 3 16s5.82 13 13 13 13-5.82 13-13S23.18 3 16 3m0 9a1.333 1.333 0 1 0 0-2.667A1.333 1.333 0 0 0 16 12m1 2.667a1 1 0 1 0-2 0v6.666a1 1 0 1 0 2 0z\"/></svg></template>\n<script lang=\"ts\">\nexport default {\n name: 'InfoCircleFilled32',\n props: {\n /**\n * Icon color\n */\n color: {\n type: String,\n default: 'currentColor',\n },\n },\n};\n</script>\n","<template><svg aria-hidden=\"true\" :fill=\"color\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" width=\"32\" height=\"32\"><path fill-rule=\"evenodd\" d=\"M16 3C8.82 3 3 8.82 3 16s5.82 13 13 13 13-5.82 13-13S23.18 3 16 3m1 7.667a1 1 0 1 0-2 0v6.666a1 1 0 1 0 2 0zm-1 12A1.333 1.333 0 1 0 16 20a1.333 1.333 0 0 0 0 2.667\"/></svg></template>\n<script lang=\"ts\">\nexport default {\n name: 'WarningCircleFilled32',\n props: {\n /**\n * Icon color\n */\n color: {\n type: String,\n default: 'currentColor',\n },\n },\n};\n</script>\n","<template><svg aria-hidden=\"true\" :fill=\"color\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" width=\"32\" height=\"32\"><path fill-rule=\"evenodd\" d=\"M16 3C8.82 3 3 8.82 3 16s5.82 13 13 13 13-5.82 13-13S23.18 3 16 3m-4.707 8.293a1 1 0 0 1 1.414 0L16 14.586l3.293-3.293a1 1 0 0 1 1.414 1.414L17.414 16l3.293 3.293a1 1 0 0 1-1.414 1.414L16 17.414l-3.293 3.293a1 1 0 0 1-1.414-1.414L14.586 16l-3.293-3.293a1 1 0 0 1 0-1.414\"/></svg></template>\n<script lang=\"ts\">\nexport default {\n name: 'CrossCircleFilled32',\n props: {\n /**\n * Icon color\n */\n color: {\n type: String,\n default: 'currentColor',\n },\n },\n};\n</script>\n","<template><svg aria-hidden=\"true\" :fill=\"color\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" width=\"32\" height=\"32\"><path fill-rule=\"evenodd\" d=\"M16 3C8.82 3 3 8.82 3 16s5.82 13 13 13 13-5.82 13-13S23.18 3 16 3m6.707 8.96a1 1 0 0 1 0 1.414l-7.333 7.333a1 1 0 0 1-1.414 0l-4-4a1 1 0 1 1 1.414-1.414l3.293 3.293 6.626-6.626a1 1 0 0 1 1.414 0\"/></svg></template>\n<script lang=\"ts\">\nexport default {\n name: 'CheckCircleFilled32',\n props: {\n /**\n * Icon color\n */\n color: {\n type: String,\n default: 'currentColor',\n },\n },\n};\n</script>\n","<template>\n <section class=\"mc-status-notification\" role=\"status\" :class=\"classObject\">\n <component\n :is=\"iconComponent\"\n class=\"mc-status-notification__icon\"\n aria-hidden=\"true\"\n />\n <div class=\"mc-status-notification__content\">\n <h2 class=\"mc-status-notification__title\">{{ title }}</h2>\n\n <p class=\"mc-status-notification__message\">\n {{ description }}\n </p>\n\n <div v-if=\"$slots.footer\" class=\"mc-status-notification__footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n\n <button\n v-if=\"closable\"\n class=\"mc-status-notification-closable__close\"\n @click=\"emit('close')\"\n >\n <Cross20\n class=\"mc-status-notification-closable__icon\"\n aria-hidden=\"true\"\n />\n <span class=\"mc-status-notification-closable__text\">Close</span>\n </button>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, type VNode } from 'vue';\nimport Cross20 from '@mozaic-ds/icons-vue/src/components/Cross20/Cross20.vue';\nimport InfoCircleFilled32 from '@mozaic-ds/icons-vue/src/components/InfoCircleFilled32/InfoCircleFilled32.vue';\nimport WarningCircleFilled32 from '@mozaic-ds/icons-vue/src/components/WarningCircleFilled32/WarningCircleFilled32.vue';\nimport CrossCircleFilled32 from '@mozaic-ds/icons-vue/src/components/CrossCircleFilled32/CrossCircleFilled32.vue';\nimport CheckCircleFilled32 from '@mozaic-ds/icons-vue/src/components/CheckCircleFilled32/CheckCircleFilled32.vue';\n/**\n * A Status Notification is used to draw the user’s attention to important information that needs to be acknowledged. It often provides feedback on a process, highlights a status update, or alerts users about an issue. Notifications are typically triggered by user actions or system events and are designed to be easily noticeable while maintaining a non-intrusive experience.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * Title of the Status Notification\n */\n title: string;\n /**\n * Description of the Status Notification\n */\n description: string;\n /**\n * Allows to define the Status Notification style\n */\n status?: 'info' | 'success' | 'warning' | 'error';\n /**\n * if `true`, display the close button.\n */\n closable?: boolean;\n }>(),\n {\n status: 'info',\n },\n);\n\ndefineSlots<{\n /**\n * Use this slot to insert a button or a link in the footer\n */\n footer?: VNode;\n}>();\n\nconst classObject = computed(() => {\n return {\n [`mc-status-notification--${props.status}`]:\n props.status && props.status != 'info',\n };\n});\n\nconst iconComponent = computed(() => {\n switch (props.status) {\n case 'success':\n return CheckCircleFilled32;\n case 'warning':\n return WarningCircleFilled32;\n case 'error':\n return CrossCircleFilled32;\n case 'info':\n default:\n return InfoCircleFilled32;\n }\n});\n\nconst emit = defineEmits<{\n /**\n * Emits when closing the notification.\n */\n (on: 'close'): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/status-notification';\n</style>\n","<template>\n <nav class=\"mc-tabs\" :class=\"classObject\">\n <ul role=\"tablist\" class=\"mc-tabs__list\" :aria-label=\"description\">\n <li\n v-for=\"(tab, index) in tabs\"\n :key=\"`tab-${index}`\"\n role=\"presentation\"\n class=\"mc-tabs__item\"\n >\n <button\n ref=\"tab\"\n role=\"tab\"\n class=\"mc-tabs__tab\"\n :class=\"{\n 'mc-tabs__tab--selected': isTabSelected(index),\n 'mc-tabs__tab--disabled': tab.disabled,\n }\"\n :aria-selected=\"isTabSelected(index)\"\n type=\"button\"\n @click=\"onClickTab(index)\"\n >\n <span v-if=\"tab.icon\" class=\"mc-tabs__icon\">\n <component :is=\"tab.icon\" />\n </span>\n <div class=\"mc-tabs__label\">\n <span>{{ tab.label }}</span>\n </div>\n </button>\n </li>\n </ul>\n <MDivider v-if=\"divider\"></MDivider>\n </nav>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, type Component } from 'vue';\nimport MDivider from '../divider/MDivider.vue';\n/**\n * Tabs are a navigation component that allows users to switch between different sections within the same context. They help organize content efficiently by displaying only one section at a time, reducing clutter and improving accessibility. Tabs can include icons, labels, and notification badges to provide additional context. They are commonly used in dashboards, product management, and settings interfaces.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * A description indicating the purpose of the set of tabs. Useful for improving the accessibility of the component.\n */\n description?: string;\n /**\n * If `true`, the divider will appear.\n */\n divider?: boolean;\n /**\n * If `true`, the tabs of the component will be centered.\n */\n centered?: boolean;\n /**\n * The selected tab index, bound via v-model.\n */\n modelValue?: number;\n /**\n * An array of objects that allows you to provide all the data needed to generate the content for each tab.\n */\n tabs: Array<{\n /**\n * The icon displayed for the tab from Mozaic-icon-vue.\n */\n icon?: Component;\n /**\n * The label displayed for the tab.\n */\n label: string;\n /**\n * If `true`, the tab will be disabled.\n */\n disabled?: boolean;\n }>;\n }>(),\n {\n modelValue: 0,\n divider: true,\n },\n);\n\nconst classObject = computed(() => {\n return {\n 'mc-tabs--centered': props.centered,\n };\n});\n\nconst modelValue = ref(props.modelValue);\n\nconst onClickTab = (index: number) => {\n if (props.tabs[index].disabled) return;\n if (index !== modelValue.value) {\n modelValue.value = index;\n emit('update:modelValue', index);\n }\n};\n\nconst isTabSelected = (index: number) => {\n return modelValue.value === index;\n};\n\nconst emit = defineEmits<{\n /**\n * Emits when the selected tab changes, updating the modelValue prop.\n */\n (on: 'update:modelValue', value: number): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/tabs';\n</style>\n","<template>\n <label\n v-if=\"type === 'selectable'\"\n :for=\"id\"\n class=\"mc-tag\"\n :class=\"classObject\"\n >\n <input\n type=\"checkbox\"\n class=\"mc-tag__input\"\n :id=\"id\"\n :name=\"name\"\n :checked=\"modelValue\"\n :disabled=\"disabled\"\n @change=\"\n emit('update:modelValue', ($event.target as HTMLInputElement).checked)\n \"\n v-bind=\"$attrs\"\n />\n <span class=\"mc-tag__label\">{{ label }}</span>\n </label>\n\n <button\n v-else-if=\"type === 'interactive'\"\n class=\"mc-tag\"\n type=\"button\"\n :class=\"classObject\"\n :disabled=\"disabled\"\n v-bind=\"$attrs\"\n >\n <span class=\"mc-tag__label\">{{ label }}</span>\n </button>\n\n <button\n v-else-if=\"type === 'contextualised'\"\n class=\"mc-tag\"\n type=\"button\"\n :class=\"classObject\"\n :disabled=\"disabled\"\n v-bind=\"$attrs\"\n >\n <MNumberBadge\n appearance=\"inverse\"\n :label=\"contextualisedNumber\"\n :size=\"size === 'l' ? 'm' : undefined\"\n />\n <span class=\"mc-tag__label\">{{ label }}</span>\n </button>\n\n <span\n v-else-if=\"type === 'removable'\"\n class=\"mc-tag\"\n :class=\"classObject\"\n v-bind=\"$attrs\"\n >\n <span class=\"mc-tag__label\">{{ label }}</span>\n <button\n class=\"mc-tag-removable__remove\"\n type=\"button\"\n @click=\"id && emit('remove-tag', id)\"\n >\n <CrossCircleFilled24 class=\"mc-tag-removable__icon\" aria-hidden=\"true\" />\n <span class=\"mc-tag-removable__text\">removableLabel</span>\n </button>\n </span>\n\n <!-- informative -->\n <span v-else class=\"mc-tag\" :class=\"classObject\" v-bind=\"$attrs\">\n <span class=\"mc-tag__label\">{{ label }}</span>\n </span>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport CrossCircleFilled24 from '@mozaic-ds/icons-vue/src/components/CrossCircleFilled24/CrossCircleFilled24.vue';\nimport MNumberBadge from '../numberbadge/MNumberBadge.vue';\n/**\n * A Tag is a UI element used to filter data, categorize, select or deselect an option. It can appear standalone, in a group, or embedded within other components. Depending on its use, a tag can be interactive (clickable, removable, selectable) or static (serving as a visual indicator).\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * Defines the behavior and layout of the tag.\n */\n type?:\n | 'informative'\n | 'interactive'\n | 'contextualised'\n | 'removable'\n | 'selectable';\n /**\n * Determines the size of the tag.\n */\n size?: 's' | 'm' | 'l';\n /**\n * A unique identifier for the tag, used to associate the label with the form element. **Required** when type is 'selectable' or 'removable'.\n */\n id?: string;\n /**\n * The name attribute for the tag element, typically used for form submission. (only relevant for type: 'selectable').\n */\n name?: string;\n /**\n * The text label displayed next to the tag.\n */\n label: string;\n /**\n * The tag's checked state, bound via v-model. Used only for type: 'selectable'.\n */\n modelValue?: boolean;\n /**\n * If `true`, disables the tag, making it non-interactive. Applicable to selectable, interactive, and contextualised types.\n */\n disabled?: boolean;\n /**\n * A number displayed in the badge when the tag is contextualised.\n */\n contextualisedNumber?: number;\n /**\n * Accessible label text for the remove button in removable tags.\n */\n removableLabel?: string;\n }>(),\n {\n type: 'informative',\n contextualisedNumber: 99,\n },\n);\n\nconst classObject = computed(() => {\n return {\n [`mc-tag-${props.type}`]: props.type && props.type != 'informative',\n [`mc-tag--${props.size}`]: props.size && props.size != 'm',\n };\n});\n\nconst emit = defineEmits<{\n /**\n * Emits when the tag value changes, updating the modelValue prop.\n */\n (on: 'update:modelValue', value: boolean): void;\n /**\n * Emits when the remove button of a tag is clicked, passing the tag's ID.\n */\n (on: 'remove-tag', id: string): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/tag';\n</style>\n","<template>\n <textarea\n :id=\"id\"\n class=\"mc-textarea\"\n :class=\"classObject\"\n :aria-invalid=\"isInvalid\"\n :value=\"modelValue\"\n :name=\"name\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :minlength=\"minLength\"\n :maxlength=\"maxLength\"\n :rows=\"rows\"\n :readonly=\"readonly\"\n v-bind=\"$attrs\"\n @input=\"\n emit('update:modelValue', ($event.target as HTMLInputElement).value)\n \"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\n/**\n * A textarea is a form element for multi-line text input, ideal for longer content like comments or descriptions.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * A unique identifier for the textarea, used to associate the label with the form element.\n */\n id: string;\n /**\n * The name attribute for the textarea element, used for form submission.\n */\n name?: string;\n /**\n * The current value of the textarea field.\n */\n modelValue?: string | number;\n /**\n * Text displayed when the textarea is empty.\n */\n placeholder?: string;\n /**\n * If `true`, the textarea is marked as invalid.\n */\n isInvalid?: boolean;\n /**\n * If `true`, the textarea is disabled and non-interactive.\n */\n disabled?: boolean;\n /**\n * The number of visible text lines in the textarea.\n */\n rows?: number;\n /**\n * Minimum number of characters required for the textarea.\n */\n minLength?: number;\n /**\n * Maximum number of characters allowed in the textarea.\n */\n maxLength?: number;\n /**\n * If `true`, the textarea is read-only (cannot be edited).\n */\n readonly?: boolean;\n }>(),\n {\n rows: 2,\n },\n);\n\nconst classObject = computed(() => {\n return {\n 'is-invalid': props.isInvalid,\n };\n});\n\nconst emit = defineEmits<{\n /**\n * Emits when the textarea value changes, updating the modelValue prop.\n */\n (on: 'update:modelValue', value: string | number): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/textarea';\n</style>\n","<template>\n <div class=\"mc-text-input\" :class=\"classObject\">\n <span v-if=\"$slots.icon\" class=\"mc-text-input__icon\">\n <slot name=\"icon\" />\n </span>\n\n <input\n :id=\"id\"\n class=\"mc-text-input__control\"\n :value=\"modelValue\"\n :type=\"inputType\"\n :name=\"name\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :aria-invalid=\"isInvalid\"\n :readonly=\"readonly\"\n v-bind=\"$attrs\"\n @input=\"\n emit('update:modelValue', ($event.target as HTMLInputElement).value)\n \"\n />\n\n <div v-if=\"isClearable && modelValue\" class=\"mc-controls-options\">\n <button\n type=\"button\"\n class=\"mc-controls-options__button\"\n @click=\"clearValue\"\n >\n <CrossCircleFilled24\n class=\"mc-controls-options__icon\"\n aria-hidden=\"true\"\n />\n <span class=\"mc-controls-options__label\">{clearLabel}</span>\n </button>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, type VNode } from 'vue';\nimport CrossCircleFilled24 from '@mozaic-ds/icons-vue/src/components/CrossCircleFilled24/CrossCircleFilled24.vue';\n\n/**\n * Inputs are used to create input fields with text on a single line. Their states depends on the user interaction or the context.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * A unique identifier for the input element, used to associate the label with the form element.\n */\n id: string;\n /**\n * The name attribute for the input element, typically used for form submission.\n */\n name?: string;\n /**\n * The current value of the input field.\n */\n modelValue?: string | number;\n /**\n * A placeholder text to show in the input when it is empty.\n */\n placeholder?: string;\n /**\n * Defines the type of input\n */\n inputType?:\n | 'date'\n | 'email'\n | 'number'\n | 'password'\n | 'search'\n | 'tel'\n | 'text';\n /**\n * If `true`, applies an invalid state to the input.\n */\n isInvalid?: boolean;\n /**\n * If `true`, disables the input, making it non-interactive.\n */\n disabled?: boolean;\n /**\n * Determines the size of the input\n */\n size?: 's' | 'm';\n /**\n * If `true`, the input is read-only (cannot be edited).\n */\n readonly?: boolean;\n /**\n * If `true`, a clear button will appear when the input has a value.\n */\n isClearable?: boolean;\n /**\n * The label text for the clear button\n */\n clearLabel?: string;\n }>(),\n {\n inputType: 'text',\n size: 'm',\n clearLabel: 'clear content',\n },\n);\n\ndefineSlots<{\n /**\n * Use this slot to insert an icon in the input\n */\n icon?: VNode;\n}>();\n\nconst classObject = computed(() => {\n return {\n [`mc-text-input--${props.size}`]: props.size && props.size != 'm',\n 'is-invalid': props.isInvalid,\n };\n});\n\nconst modelValue = ref(props.modelValue);\nconst clearValue = () => {\n modelValue.value = '';\n emit('update:modelValue', '');\n};\n\nconst emit = defineEmits<{\n /**\n * Emits when the input value changes, updating the `modelValue` prop.\n */\n (on: 'update:modelValue', value: string | number): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/controls-options';\n@use '@mozaic-ds/styles/components/text-input';\n</style>\n","<template>\n <div class=\"mc-toggle\" :class=\"classObject\">\n <label class=\"mc-toggle__container\" :for=\"id\">\n <input\n :id=\"id\"\n type=\"checkbox\"\n class=\"mc-toggle__input\"\n :name=\"name\"\n :checked=\"modelValue\"\n :disabled=\"disabled\"\n v-bind=\"$attrs\"\n @change=\"\n emit('update:modelValue', ($event.target as HTMLInputElement).checked)\n \"\n />\n <span v-if=\"label\" :for=\"id\" class=\"mc-toggle__label\">\n {{ label }}\n </span>\n </label>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\n/**\n * A toggle is used to choose between two possibilities and when the user needs instant feedback. It is common to use toggles when you need to show or hide content and \"on/off\" switch.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * A unique identifier for the toggle, used to associate the label with the form element.\n */\n id: string;\n /**\n * The name attribute for the toggle element, typically used for form submission.\n */\n name?: string;\n /**\n * The text label displayed next to the toggle.\n */\n label?: string;\n /**\n * The toggle's checked state, bound via v-model.\n */\n modelValue?: boolean;\n /**\n * Determines the size of the toggle\n */\n size?: 's' | 'm';\n /**\n * If `true`, disables the toggle, making it non-interactive.\n */\n disabled?: boolean;\n }>(),\n {\n size: 's',\n },\n);\n\nconst classObject = computed(() => {\n return {\n [`mc-toggle--${props.size}`]: props.size && props.size != 's',\n };\n});\n\nconst emit = defineEmits<{\n /**\n * Emits when the toggle value changes, updating the modelValue prop.\n */\n (on: 'update:modelValue', value: boolean): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/toggle';\n</style>\n","<template>\n <div :class=\"classObjectContainer\">\n <MToggle\n v-for=\"option in options\"\n :id=\"option.id\"\n :key=\"option.id\"\n :label=\"option.label\"\n :is-invalid=\"option.isInvalid\"\n :name=\"name\"\n :class=\"classObjectItem\"\n :model-value=\"modelValue ? modelValue.includes(option.value) : undefined\"\n :disabled=\"option.disabled\"\n @update:model-value=\"(v: boolean) => onChange(v, option.value)\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue';\nimport MToggle from '../toggle/MToggle.vue';\n\n/**\n * A toggle is used to choose between two possibilities and when the user needs instant feedback. It is common to use toggles when you need to show or hide content and \"on/off\" switch.\n */\nconst props = defineProps<{\n /**\n * The name attribute for the toggle element, typically used for form submission.\n */\n name: string;\n /**\n * Property used to manage the values checked by v-model\n * (Do not use directly)\n */\n modelValue?: Array<string>;\n /**\n * list of properties of each toggle of the toggle group\n */\n options: Array<{\n id: string;\n label: string;\n value: string;\n disabled?: boolean;\n isInvalid?: boolean;\n size?: 's' | 'm';\n }>;\n /**\n * If `true`, make the form element of the group inline.\n */\n inline?: boolean;\n}>();\n\nconst selectedValue = ref<string[]>([]);\n\nwatch(\n () => props.modelValue,\n (newValue) => {\n selectedValue.value = newValue || [];\n },\n { immediate: true },\n);\n\nconst onChange = (isChecked: boolean, value: string) => {\n let values = [...selectedValue.value];\n\n if (isChecked && !values.includes(value)) {\n values.push(value);\n } else {\n values = values.filter((val) => val !== value);\n }\n\n emit('update:modelValue', values);\n selectedValue.value = values;\n};\n\nconst classObjectContainer = computed(() => {\n return {\n 'mc-field__container--inline': props.inline,\n };\n});\n\nconst classObjectItem = computed(() => {\n return {\n 'mc-field__container--inline__item': props.inline,\n };\n});\n\nconst emit = defineEmits<{\n /**\n * Emits when the toggle group value changes, updating the modelValue prop.\n */\n (on: 'update:modelValue', value: Array<string>): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/field';\n</style>\n"],"names":["props","__props","classObject","computed","_openBlock","_createBlock","_resolveDynamicComponent","router","_normalizeClass","href","target","$slots","iconPosition","_createElementBlock","_hoisted_1","_renderSlot","_ctx","_createElementVNode","_hoisted_2","_hoisted_3","isLastLink","index","_a","_Fragment","_renderList","links","link","_createVNode","MLink","appearance","_createTextVNode","_toDisplayString","setViewBox","viewBox","setCircleRadius","circleRadius","text","_hoisted_4","disabled","type","isLoading","MLoader","_hoisted_5","emit","__emit","_mergeProps","id","name","modelValue","indeterminate","isInvalid","$attrs","_cache","$event","label","selectedValue","ref","watch","newValue","onChange","isChecked","value","values","val","classObjectContainer","classObjectItem","options","option","MCheckbox","v","_sfc_main$C","$props","clearValue","readonly","isClearable","CrossCircleFilled24","clearLabel","_sfc_main$z","_sfc_main$y","isVisible","dialogLabel","onClose","MOverlay","open","back","MIconButton","ArrowBack24","title","Cross24","_hoisted_6","contentTitle","_hoisted_7","_hoisted_8","classObjectValidation","requirementText","helpId","helpText","isValid","message","messageId","legend","closable","description","placeholder","_sfc_main$n","_sfc_main$m","currentValue","newVal","currentIndex","opt","isFirstPage","isLastPage","previous","next","compact","ChevronLeft24","MButton","MSelect","selectLabel","ChevronRight24","toggleVisibility","inputType","ariaChecked","_withDirectives","buttonLabel","otp","inputRefs","setInputRef","el","str","_","i","focusInput","nextTick","onInput","e","onKeyDown","onBackspace","onPaste","digits","digit","_withKeys","_sfc_main$i","_sfc_main$h","increment","decrement","min","max","step","More24","incrementlabel","Less24","decrementLabel","MRadio","MStatusDot","status","_sfc_main$b","_sfc_main$a","_sfc_main$9","_sfc_main$8","_sfc_main$7","iconComponent","CheckCircleFilled32","WarningCircleFilled32","CrossCircleFilled32","InfoCircleFilled32","Cross20","onClickTab","isTabSelected","tabs","tab","divider","MDivider","MNumberBadge","contextualisedNumber","size","_hoisted_9","minLength","maxLength","rows","MToggle"],"mappings":"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","x_google_ignoreList":[6,9,10,21,22,26,27,33,34,35,36,37]}
1
+ {"version":3,"file":"mozaic-vue.umd.cjs","sources":["../src/components/link/MLink.vue","../src/components/breadcrumb/MBreadcrumb.vue","../src/components/loader/MLoader.vue","../src/components/button/MButton.vue","../src/components/checkbox/MCheckbox.vue","../src/components/checkboxgroup/MCheckboxGroup.vue","../src/components/circularprogressbar/MCircularProgressbar.vue","../node_modules/@mozaic-ds/icons-vue/src/components/CrossCircleFilled24/CrossCircleFilled24.vue","../src/components/datepicker/MDatepicker.vue","../src/components/divider/MDivider.vue","../node_modules/@mozaic-ds/icons-vue/src/components/ArrowBack24/ArrowBack24.vue","../node_modules/@mozaic-ds/icons-vue/src/components/Cross24/Cross24.vue","../src/components/iconbutton/MIconButton.vue","../src/components/overlay/MOverlay.vue","../src/components/drawer/MDrawer.vue","../src/components/field/MField.vue","../src/components/fieldgroup/MFieldGroup.vue","../src/components/flag/MFlag.vue","../src/components/loadingoverlay/MLoadingOverlay.vue","../src/components/modal/MModal.vue","../src/components/numberbadge/MNumberBadge.vue","../src/components/select/MSelect.vue","../node_modules/@mozaic-ds/icons-vue/src/components/ChevronLeft24/ChevronLeft24.vue","../node_modules/@mozaic-ds/icons-vue/src/components/ChevronRight24/ChevronRight24.vue","../src/components/pagination/MPagination.vue","../src/components/passwordinput/MPasswordInput.vue","../src/components/pincode/MPincode.vue","../src/components/linearprogressbarbuffer/MLinearProgressbarBuffer.vue","../src/components/linearprogressbarpercentage/MLinearProgressbarPercentage.vue","../node_modules/@mozaic-ds/icons-vue/src/components/More24/More24.vue","../node_modules/@mozaic-ds/icons-vue/src/components/Less24/Less24.vue","../src/components/quantityselector/MQuantitySelector.vue","../src/components/radio/MRadio.vue","../src/components/radiogroup/MRadioGroup.vue","../src/components/statusdot/MStatusDot.vue","../src/components/statusbadge/MStatusBadge.vue","../node_modules/@mozaic-ds/icons-vue/src/components/Cross20/Cross20.vue","../node_modules/@mozaic-ds/icons-vue/src/components/InfoCircleFilled32/InfoCircleFilled32.vue","../node_modules/@mozaic-ds/icons-vue/src/components/WarningCircleFilled32/WarningCircleFilled32.vue","../node_modules/@mozaic-ds/icons-vue/src/components/CrossCircleFilled32/CrossCircleFilled32.vue","../node_modules/@mozaic-ds/icons-vue/src/components/CheckCircleFilled32/CheckCircleFilled32.vue","../src/components/statusnotification/MStatusNotification.vue","../src/components/tabs/MTabs.vue","../src/components/tag/MTag.vue","../src/components/textarea/MTextArea.vue","../src/components/textinput/MTextInput.vue","../src/components/toggle/MToggle.vue","../src/components/tooltip/MTooltip.vue","../src/components/togglegroup/MToggleGroup.vue"],"sourcesContent":["<template>\n <component\n :is=\"router ? 'router-link' : 'a'\"\n class=\"mc-link\"\n :class=\"classObject\"\n :href=\"href\"\n :target=\"target\"\n :to=\"router ? href : undefined\"\n >\n <span\n v-if=\"$slots.icon && iconPosition == 'left'\"\n class=\"mc-link__icon\"\n aria-hidden=\"true\"\n >\n <slot name=\"icon\" />\n </span>\n <span class=\"mc-link__label\">\n <slot />\n </span>\n <span\n v-if=\"$slots.icon && iconPosition == 'right'\"\n class=\"mc-link__icon\"\n aria-hidden=\"true\"\n >\n <slot name=\"icon\" />\n </span>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, type VNode } from 'vue';\n/**\n * A link is a component used exclusively to navigate to internal or external webpages or to anchors in the current page.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * Position of the icon relative to the text.\n */\n iconPosition?: 'left' | 'right';\n /**\n * Allows to define the link style\n */\n appearance?: 'secondary' | 'accent' | 'inverse' | 'standard';\n /**\n * Allows to define the link size\n */\n size?: 's' | 'm';\n /**\n * URL for the link (for external links or the `to` prop for `router-link`).\n */\n href?: string;\n /**\n * Where to open the link\n */\n target?: '_self' | '_blank' | '_parent' | '_top';\n /**\n * Specify wether the link is inline\n */\n inline?: boolean;\n /**\n * If `true`, the link will be rendered as a `router-link` for internal navigation (Vue Router).\n */\n router?: boolean;\n }>(),\n {\n href: undefined,\n target: undefined,\n appearance: 'standard',\n size: 's',\n iconPosition: 'left',\n },\n);\n\ndefineSlots<{\n /**\n * Use this slot to insert the textual content of the Link\n */\n default: string;\n /**\n * Use this slot to insert an icon for the Link\n */\n icon?: VNode;\n}>();\n\nconst classObject = computed(() => {\n return {\n [`mc-link--${props.appearance}`]:\n props.appearance && props.appearance != 'standard',\n [`mc-link--${props.size}`]: props.size && props.size != 's',\n 'mc-link--inline': props.inline,\n 'mc-link--stand-alone': !props.inline,\n };\n});\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/link';\n</style>\n","<template>\n <nav class=\"mc-breadcrumb\" :class=\"classObject\" aria-label=\"Breadcrumb\">\n <ul class=\"mc-breadcrumb__container\">\n <li\n class=\"mc-breadcrumb__item\"\n v-for=\"(link, index) in links\"\n :key=\"`breadcrumb-${index}`\"\n >\n <MLink\n :href=\"link.href\"\n :router=\"link.router\"\n :appearance=\"appearance\"\n inline\n :class=\"{\n 'mc-breadcrumb__current': isLastLink(index),\n }\"\n :aria-current=\"isLastLink(index) ? 'page' : undefined\"\n >\n {{ link.label }}\n </MLink>\n </li>\n </ul>\n </nav>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport MLink from '../link/MLink.vue';\n/**\n * A breadcrumb is a navigation help that displays the hierarchical path of the current page within a website or application. It helps users understand their location and allows them to navigate back to previous levels easily. Breadcrumbs improve usability and accessibility, especially in multi-level websites, dashboards, and e-commerce platforms.\n */\nconst props = defineProps<{\n /**\n * Allows to define the breadcrumb style\n */\n appearance?: 'standard' | 'inverse';\n /**\n * Links of the breadcrumb\n */\n links: Array<{\n /**\n * The label displayed for the link.\n */\n label: string;\n /**\n * URL for the link (for external links or the `to` prop for `router-link`).\n */\n href: string;\n /**\n * If `true`, the link will be rendered as a `router-link` for internal navigation (Vue Router).\n */\n router?: boolean;\n }>;\n}>();\n\nconst classObject = computed(() => {\n return {\n [`mc-breadcrumb--${props.appearance}`]:\n props.appearance && props.appearance != 'standard',\n };\n});\n\nconst isLastLink = (index: number) => {\n return index === (props.links?.length ?? 0) - 1;\n};\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/breadcrumb';\n</style>\n","<template>\n <div class=\"mc-loader\" :class=\"classObject\">\n <span class=\"mc-loader__spinner\">\n <svg\n class=\"mc-loader__icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n :viewBox=\"setViewBox\"\n aria-hidden=\"true\"\n >\n <circle\n class=\"mc-loader__path\"\n cx=\"50%\"\n cy=\"50%\"\n :r=\"setCircleRadius\"\n ></circle>\n </svg>\n </span>\n <p v-if=\"text\" class=\"mc-loader__text\" role=\"status\">{{ text }}</p>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n/**\n * A loader indicates that content or data is being loaded or processed, providing visual feedback to users during wait times.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * Specifies the visual appearance of the loader.\n */\n appearance?: 'standard' | 'accent' | 'inverse';\n\n /**\n * Defines the size of the loader.\n */\n size?: 's' | 'm' | 'l';\n\n /**\n * Text to display alongside the loader when using the loader inside an `Overlay`.\n */\n text?: string;\n }>(),\n {\n appearance: 'standard',\n size: 'm',\n },\n);\n\nconst classObject = computed(() => {\n return {\n [`mc-loader--${props.size}`]: props.size && props.size !== 'm',\n [`mc-loader--${props.appearance}`]:\n props.appearance && props.appearance !== 'standard',\n 'mc-loader--text-visible': props.text,\n };\n});\n\nconst setViewBox = computed(() => {\n let viewBox: string;\n\n switch (props.size) {\n case 's':\n viewBox = '0 0 24 24';\n break;\n case 'l':\n viewBox = '0 0 64 64';\n break;\n default:\n viewBox = '0 0 32 32';\n }\n return viewBox;\n});\n\nconst setCircleRadius = computed(() => {\n let circleRadius: number;\n\n switch (props.size) {\n case 's':\n circleRadius = 6;\n break;\n case 'l':\n circleRadius = 19;\n break;\n default:\n circleRadius = 9;\n }\n\n return circleRadius;\n});\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/loader';\n</style>\n","<template>\n <button\n class=\"mc-button\"\n :class=\"classObject\"\n :disabled=\"disabled\"\n :type=\"type\"\n >\n <span\n v-if=\"$slots.icon && iconPosition == 'left' && !isLoading\"\n class=\"mc-button__icon\"\n >\n <slot name=\"icon\" />\n </span>\n <span\n v-if=\"isLoading\"\n class=\"mc-button__icon\"\n :style=\"{ position: 'absolute' }\"\n >\n <MLoader :style=\"{ color: 'currentColor' }\" size=\"s\" />\n </span>\n <span v-if=\"$slots.icon && iconPosition == 'only'\" class=\"mc-button__icon\">\n <slot name=\"icon\" />\n </span>\n <span\n v-else\n class=\"mc-button__label\"\n :style=\"{ visibility: isLoading ? 'hidden' : 'visible' }\"\n >\n <slot>Button Label</slot>\n </span>\n <span\n v-if=\"$slots.icon && iconPosition == 'right' && !isLoading\"\n class=\"mc-button__icon\"\n >\n <slot name=\"icon\" />\n </span>\n </button>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, type VNode } from 'vue';\nimport MLoader from '../loader/MLoader.vue';\n/**\n * Buttons are used to trigger actions. Their appearance is depending on the type of action required from the user, or the context.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * Defines the visual style of the button.\n */\n appearance?: 'standard' | 'accent' | 'danger' | 'inverse';\n /**\n * Determines the size of the button.\n */\n size?: 's' | 'm' | 'l';\n /**\n * If `true`, disables the button, making it non-interactive.\n */\n disabled?: boolean;\n /**\n * If `true`, applies a \"ghost\" style to the button, typically a transparent background with a border.\n */\n ghost?: boolean;\n /**\n * If `true`, the button gets an outlined style, usually with just the border and no solid background.\n */\n outlined?: boolean;\n /**\n * Controls the positioning of an icon in the button.\n */\n iconPosition?: 'left' | 'right' | 'only';\n /**\n * Specifies the button's HTML `type` attribute.\n */\n type?: 'button' | 'reset' | 'submit';\n /**\n * If `true`, a loading state is displayed.\n */\n isLoading?: boolean;\n }>(),\n {\n appearance: 'standard',\n size: 'm',\n type: 'button',\n },\n);\n\ndefineSlots<{\n /**\n * The content displayed in the button.\n */\n default: string;\n /**\n * Use this slot to insert an icon for the Button\n */\n icon?: VNode;\n}>();\n\nconst classObject = computed(() => {\n return {\n [`mc-button--${props.appearance}`]:\n props.appearance && props.appearance != 'standard',\n [`mc-button--${props.size}`]: props.size && props.size != 'm',\n 'mc-button--ghost': props.ghost,\n 'mc-button--outlined': props.outlined,\n 'mc-button--icon-only': props.iconPosition == 'only',\n };\n});\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/button';\n</style>\n","<template>\n <div class=\"mc-checkbox\">\n <input\n :id=\"id\"\n type=\"checkbox\"\n class=\"mc-checkbox__input\"\n :class=\"classObject\"\n :name=\"name\"\n :checked=\"modelValue\"\n :indeterminate=\"indeterminate\"\n :disabled=\"disabled\"\n :aria-invalid=\"isInvalid\"\n v-bind=\"$attrs\"\n @change=\"\n emit('update:modelValue', ($event.target as HTMLInputElement).checked)\n \"\n />\n <label v-if=\"label\" :for=\"id\" class=\"mc-checkbox__label\">\n {{ label }}\n </label>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\n/**\n * Checkboxes are used to select one or multiple options in a list. They usually find their place in forms and are also used to accept some mentions.\n */\nconst props = defineProps<{\n /**\n * A unique identifier for the checkbox, used to associate the label with the form element.\n */\n id: string;\n /**\n * The name attribute for the checkbox element, typically used for form submission.\n */\n name?: string;\n /**\n * The text label displayed next to the checkbox.\n */\n label?: string;\n /**\n * The checkbox's checked state, bound via v-model.\n */\n modelValue?: boolean;\n /**\n * Sets the checkbox to an indeterminate state (partially selected).\n */\n indeterminate?: boolean;\n /**\n * If `true`, applies an invalid state to the checkbox.\n */\n isInvalid?: boolean;\n /**\n * If `true`, disables the checkbox, making it non-interactive.\n */\n disabled?: boolean;\n}>();\n\nconst classObject = computed(() => {\n return {\n 'is-invalid': props.isInvalid,\n };\n});\n\nconst emit = defineEmits<{\n /**\n * Emits when the checkbox value changes, updating the modelValue prop.\n */\n (on: 'update:modelValue', value: boolean): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/checkbox';\n</style>\n","<template>\n <div class=\"mc-field__container\" :class=\"classObjectContainer\">\n <MCheckbox\n v-for=\"option in options\"\n :id=\"option.id\"\n :key=\"option.id\"\n :label=\"option.label\"\n :is-invalid=\"option.isInvalid\"\n :name=\"name\"\n class=\"mc-field__item\"\n :class=\"classObjectItem\"\n :model-value=\"modelValue ? modelValue.includes(option.value) : undefined\"\n :disabled=\"option.disabled\"\n @update:model-value=\"(v: boolean) => onChange(v, option.value)\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue';\nimport MCheckbox from '../checkbox/MCheckbox.vue';\n\n/**\n * Checkboxes are used to select one or multiple options in a list. They usually find their place in forms and are also used to accept some mentions.\n */\nconst props = defineProps<{\n /**\n * The name attribute for the checkbox element, typically used for form submission.\n */\n name: string;\n /**\n * Property used to manage the values checked by v-model\n * (Do not use directly)\n */\n modelValue?: Array<string>;\n /**\n * list of properties of each checkbox button of the checkbox group\n */\n options: Array<{\n id: string;\n label: string;\n value: string;\n disabled?: boolean;\n isInvalid?: boolean;\n }>;\n /**\n * If `true`, make the form element of the group inline.\n */\n inline?: boolean;\n}>();\n\nconst selectedValue = ref<string[]>([]);\n\nwatch(\n () => props.modelValue,\n (newValue) => {\n selectedValue.value = newValue || [];\n },\n { immediate: true },\n);\n\nconst onChange = (isChecked: boolean, value: string) => {\n let values = [...selectedValue.value];\n\n if (isChecked && !values.includes(value)) {\n values.push(value);\n } else {\n values = values.filter((val) => val !== value);\n }\n\n emit('update:modelValue', values);\n selectedValue.value = values;\n};\n\nconst classObjectContainer = computed(() => {\n return {\n 'mc-field__container--inline': props.inline,\n };\n});\n\nconst classObjectItem = computed(() => {\n return {\n 'mc-field__container--inline__item': props.inline,\n };\n});\n\nconst emit = defineEmits<{\n /**\n * Emits when the checkbox group value changes, updating the modelValue prop.\n */\n (on: 'update:modelValue', value: Array<string>): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/field';\n</style>\n","<template>\n <div\n class=\"mc-circular-progressbar\"\n :class=\"classObject\"\n role=\"progressbar\"\n :style=\"`--progress-value: ${value};`\"\n :aria-valuenow=\"value\"\n :aria-valuemin=\"0\"\n :aria-valuemax=\"100\"\n >\n <svg\n class=\"mc-circular-progressbar__line\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n viewBox=\"0 0 100 100\"\n >\n <circle\n class=\"mc-circular-progressbar__track\"\n cx=\"50\"\n cy=\"50\"\n r=\"46\"\n ></circle>\n <circle\n class=\"mc-circular-progressbar__indicator\"\n cx=\"50\"\n cy=\"50\"\n r=\"46\"\n ></circle>\n </svg>\n <div\n v-if=\"type === 'percentage'\"\n class=\"mc-circular-progressbar__percentage\"\n >\n <p class=\"mc-circular-progressbar__value\">{{ value }}</p>\n <p class=\"mc-circular-progressbar__unit\">%</p>\n </div>\n <div v-if=\"type === 'content'\" class=\"mc-circular-progressbar__content\">\n <p class=\"mc-circular-progressbar__number\">{{ contentValue }}</p>\n <p v-if=\"additionalInfo\" class=\"mc-circular-progressbar__text\">\n {{ additionalInfo }}\n </p>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n/**\n * A circular progress bar visually represents progress toward a goal or completion of a process using a circular shape. It is commonly used to indicate task completion or performance metrics. The progress is displayed as a partially filled ring, often accompanied by a percentage or status indicator. Circular Progress Bars are useful for providing users with real-time feedback on ongoing actions without taking up significant screen space.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * Allows to define the progress bar size\n */\n size?: 's' | 'm' | 'l';\n /**\n * The current value of the progress bar.\n */\n value?: number;\n /**\n * Display type: `'percentage'` or `'content'`.\n */\n type?: 'percentage' | 'content';\n /**\n * Main content shown when `type` is `'content'`.\n */\n contentValue?: string;\n /**\n * Additional text shown to define the `contentValue`.\n */\n additionalInfo?: string;\n }>(),\n {\n value: 0,\n type: 'percentage',\n },\n);\n\nconst classObject = computed(() => {\n return {\n [`mc-circular-progressbar--${props.size}`]: props.size && props.size != 'l',\n };\n});\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/circular-progressbar';\n</style>\n","<template><svg aria-hidden=\"true\" :fill=\"color\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2M8.293 8.293a1 1 0 0 1 1.414 0L12 10.586l2.293-2.293a1 1 0 1 1 1.414 1.414L13.414 12l2.293 2.293a1 1 0 0 1-1.414 1.414L12 13.414l-2.293 2.293a1 1 0 0 1-1.414-1.414L10.586 12 8.293 9.707a1 1 0 0 1 0-1.414\"/></svg></template>\n<script lang=\"ts\">\nexport default {\n name: 'CrossCircleFilled24',\n props: {\n /**\n * Icon color\n */\n color: {\n type: String,\n default: 'currentColor',\n },\n },\n};\n</script>\n","<template>\n <div class=\"mc-datepicker mc-text-input\" :class=\"classObject\">\n <input\n :id=\"id\"\n class=\"mc-datepicker__control mc-text-input__control\"\n :value=\"modelValue\"\n type=\"date\"\n :name=\"name\"\n :disabled=\"disabled\"\n :aria-invalid=\"isInvalid\"\n :readonly=\"readonly\"\n v-bind=\"$attrs\"\n @input=\"\n emit('update:modelValue', ($event.target as HTMLInputElement).value)\n \"\n />\n\n <div\n v-if=\"isClearable && modelValue\"\n class=\"mc-datepicker__controls-options mc-controls-options\"\n >\n <button\n type=\"button\"\n class=\"mc-controls-options__button\"\n @click=\"clearValue\"\n >\n <CrossCircleFilled24\n class=\"mc-controls-options__icon\"\n aria-hidden=\"true\"\n />\n <span class=\"mc-controls-options__label\">{{ clearLabel }}</span>\n </button>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\nimport CrossCircleFilled24 from '@mozaic-ds/icons-vue/src/components/CrossCircleFilled24/CrossCircleFilled24.vue';\n/**\n * A date picker is an input component that allows users to select a date from a calendar interface or manually enter a date value. It enhances usability by providing structured date selection, reducing input errors, and ensuring format consistency. Date Pickers are commonly used in forms, booking systems, scheduling tools, and data filtering interfaces to facilitate accurate date entry.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * A unique identifier for the datepicker element, used to associate the label with the form element.\n */\n id: string;\n /**\n * The name attribute for the datepicker element, typically used for form submission.\n */\n name?: string;\n /**\n * The current value of the datepicker field.\n */\n modelValue?: string | number;\n /**\n * If `true`, applies an invalid state to the datepicker.\n */\n isInvalid?: boolean;\n /**\n * If `true`, disables the datepicker, making it non-interactive.\n */\n disabled?: boolean;\n /**\n * Determines the size of the datepicker\n */\n size?: 's' | 'm';\n /**\n * If `true`, the datepicker is read-only (cannot be edited).\n */\n readonly?: boolean;\n /**\n * If `true`, a clear button will appear when the datepicker has a value.\n */\n isClearable?: boolean;\n /**\n * The label text for the clear button\n */\n clearLabel?: string;\n }>(),\n {\n size: 'm',\n clearLabel: 'clear content',\n },\n);\n\nconst classObject = computed(() => {\n return {\n [`mc-text-input--${props.size} mc-datepicker--${props.size}`]:\n props.size && props.size != 'm',\n 'is-invalid': props.isInvalid,\n };\n});\n\nconst modelValue = ref(props.modelValue);\nconst clearValue = () => {\n modelValue.value = '';\n emit('update:modelValue', '');\n};\n\nconst emit = defineEmits<{\n /**\n * Emits when the datepicker value changes, updating the `modelValue` prop.\n */\n (on: 'update:modelValue', value: string | number): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/text-input';\n@use '@mozaic-ds/styles/components/datepicker';\n@use '@mozaic-ds/styles/components/controls-options';\n</style>\n","<template>\n <div class=\"mc-divider\">\n <div :class=\"classObject\"></div>\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n/**\n * A Divider serves as a visual divider to separate content, providing a clear distinction between sections.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * Determines the orientation of the divider\n */\n orientation?: 'vertical' | 'horizontal';\n /**\n * Determines the style of the divider\n */\n style?: 'primary' | 'secondary' | 'tertiary' | 'inverse';\n /**\n * Determines the size of the divider\n */\n size?: 's' | 'm' | 'l';\n }>(),\n {\n orientation: 'horizontal',\n style: 'primary',\n size: 's',\n },\n);\n\nconst classObject = computed(() => {\n return {\n [`mc-divider-${props.orientation}`]: props.orientation,\n [`mc-divider-horizontal--${props.style}`]:\n props.style && props.style != 'primary',\n [`mc-divider-horizontal--${props.size}`]: props.size && props.size != 's',\n };\n});\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/divider';\n\n.mc-divider-vertical {\n content: '';\n display: block;\n height: 100%;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n}\n</style>\n","<template><svg aria-hidden=\"true\" :fill=\"color\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"M8.707 6.293a1 1 0 0 1 0 1.414L5.414 11H21a1 1 0 1 1 0 2H5.414l3.293 3.293a1 1 0 1 1-1.414 1.414l-5-5a1 1 0 0 1 0-1.414l5-5a1 1 0 0 1 1.414 0\"/></svg></template>\n<script lang=\"ts\">\nexport default {\n name: 'ArrowBack24',\n props: {\n /**\n * Icon color\n */\n color: {\n type: String,\n default: 'currentColor',\n },\n },\n};\n</script>\n","<template><svg aria-hidden=\"true\" :fill=\"color\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"M17.707 7.707a1 1 0 0 0-1.414-1.414L12 10.586 7.707 6.293a1 1 0 0 0-1.414 1.414L10.586 12l-4.293 4.293a1 1 0 1 0 1.414 1.414L12 13.414l4.293 4.293a1 1 0 0 0 1.414-1.414L13.414 12z\"/></svg></template>\n<script lang=\"ts\">\nexport default {\n name: 'Cross24',\n props: {\n /**\n * Icon color\n */\n color: {\n type: String,\n default: 'currentColor',\n },\n },\n};\n</script>\n","<template>\n <button\n class=\"mc-button mc-button--icon-button\"\n :class=\"classObject\"\n :disabled=\"disabled\"\n :type=\"type\"\n >\n <span class=\"mc-button__icon\">\n <slot name=\"icon\" />\n </span>\n </button>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, type VNode } from 'vue';\n/**\n * Icon Buttons are used to trigger actions. Their appearance is depending on the type of action required from the user, or the context.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * Defines the visual style of the icon button.\n */\n appearance?: 'standard' | 'accent' | 'danger' | 'inverse';\n /**\n * Determines the size of the icon button.\n */\n size?: 's' | 'm' | 'l';\n /**\n * If `true`, disables the icon button, making it non-interactive.\n */\n disabled?: boolean;\n /**\n * If `true`, applies a \"ghost\" style to the icon button.\n */\n ghost?: boolean;\n /**\n * If `true`, the icon button gets an outlined style.\n */\n outlined?: boolean;\n /**\n * Specifies the button's HTML `type` attribute.\n */\n type?: 'button' | 'reset' | 'submit';\n }>(),\n {\n appearance: 'standard',\n size: 'm',\n type: 'button',\n },\n);\n\ndefineSlots<{\n /**\n * Use this slot to insert the form element of your choice\n */\n icon: VNode;\n}>();\n\nconst classObject = computed(() => {\n return {\n [`mc-button--${props.appearance}`]:\n props.appearance && props.appearance != 'standard',\n [`mc-button--${props.size}`]: props.size && props.size != 'm',\n 'mc-button--ghost': props.ghost,\n 'mc-button--outlined': props.outlined,\n };\n});\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/button';\n</style>\n","<template>\n <div class=\"mc-overlay\" :class=\"{ 'is-visible': isVisible }\">\n <div role=\"dialog\" tabindex=\"-1\" :aria-labelledby=\"dialogLabel\">\n <slot />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type { VNode } from 'vue';\n\n/**\n * An overlay component is a UI element that appears above the main content to display additional information or interactions, often blocking or dimming the background.\n */\ndefineProps<{\n /**\n * Controls the visibility of the overlay.\n */\n isVisible?: boolean;\n /**\n * Accessible label for the overlay dialog.\n */\n dialogLabel?: string;\n}>();\n\ndefineSlots<{\n /**\n * Use this slot to insert a centered content inside the overlay\n */\n default?: VNode;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/overlay';\n</style>\n","<template>\n <MOverlay :is-visible=\"open\" dialogLabel=\"drawerTitle\">\n <section\n class=\"mc-drawer\"\n :class=\"classObject\"\n role=\"dialog\"\n aria-labelledby=\"drawerTitle\"\n :aria-modal=\"open ? 'true' : 'false'\"\n tabindex=\"-1\"\n :aria-hidden=\"!open\"\n v-bind=\"$attrs\"\n @keydown.esc=\"onClose\"\n >\n <div class=\"mc-drawer__dialog\" role=\"document\">\n <div class=\"mc-drawer__header\">\n <MIconButton\n v-if=\"back\"\n class=\"mc-drawer__back\"\n aria-label=\"Back\"\n ghost\n @click=\"emit('back')\"\n >\n <template #icon>\n <ArrowBack24 aria-hidden=\"true\" />\n </template>\n </MIconButton>\n <h2 class=\"mc-drawer__title\" id=\"drawerTitle\">{{ title }}</h2>\n <MIconButton\n class=\"mc-drawer__close\"\n aria-label=\"Close\"\n ghost\n @click=\"onClose\"\n >\n <template #icon>\n <Cross24 aria-hidden=\"true\" />\n </template>\n </MIconButton>\n </div>\n <div class=\"mc-drawer__body\">\n <div class=\"mc-drawer__content\" tabindex=\"0\">\n <h2 v-if=\"contentTitle\" class=\"mc-drawer__content__title\">\n {{ contentTitle }}\n </h2>\n <slot />\n </div>\n </div>\n <div v-if=\"$slots.footer\" class=\"mc-drawer__footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n </section>\n </MOverlay>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, watch, type VNode } from 'vue';\nimport ArrowBack24 from '@mozaic-ds/icons-vue/src/components/ArrowBack24/ArrowBack24.vue';\nimport Cross24 from '@mozaic-ds/icons-vue/src/components/Cross24/Cross24.vue';\nimport MIconButton from '../iconbutton/MIconButton.vue';\nimport MOverlay from '../overlay/MOverlay.vue';\n/**\n * A drawer is a sliding panel that appears from the side of the screen, providing additional content, settings, or actions without disrupting the main view. It is often used for filtering options, or contextual details. It enhances usability by keeping interfaces clean while offering expandable functionality.\n */\nconst props = defineProps<{\n /**\n * If `true`, display the drawer.\n */\n open?: boolean;\n /**\n * Position of the drawer\n */\n position?: 'left' | 'right';\n /**\n * If `true`, the drawer have a bigger width.\n */\n extended?: boolean;\n /**\n * If `true`, display the back button.\n */\n back?: boolean;\n /**\n * Title of the drawer\n */\n title: string;\n /**\n * Title of the content of the drawer\n */\n contentTitle?: string;\n}>();\n\ndefineSlots<{\n /**\n * Use this slot to insert the content of the drawer\n */\n default?: VNode;\n /**\n * Use this slot to insert buttons in the footer\n */\n footer?: VNode;\n}>();\n\nconst classObject = computed(() => {\n return {\n 'is-open': props.open,\n 'mc-drawer--extend': props.extended,\n [`mc-drawer--${props.position}`]:\n props.position && props.position != 'right',\n };\n});\n\nwatch(\n () => props.open,\n (newValue) => {\n emit('update:open', newValue);\n },\n);\n\nconst onClose = () => {\n emit('update:open', false);\n};\n\nconst emit = defineEmits<{\n /**\n * Emits when the drawer open state changes, updating the modelValue prop.\n */\n (on: 'update:open', value: boolean): void;\n /**\n * Emits when click back button of the drawer.\n */\n (on: 'back'): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/drawer';\n\n.mc-overlay {\n filter: none;\n}\n</style>\n","<template>\n <div class=\"mc-field\">\n <label class=\"mc-field__label\" :for=\"id\">\n {{ label }}\n <span v-if=\"requirementText\" class=\"mc-field__requirement\"\n >({{ requirementText }})</span\n >\n </label>\n\n <span v-if=\"helpId && helpText\" :id=\"helpId\" class=\"mc-field__help\">{{\n helpText\n }}</span>\n\n <div class=\"mc-field__content\">\n <slot />\n </div>\n\n <span\n v-if=\"(isValid || isInvalid) && message\"\n class=\"mc-field__validation-message\"\n :id=\"messageId\"\n :class=\"classObjectValidation\"\n >\n {{ message }}\n </span>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, type VNode } from 'vue';\n/**\n * This component creates a structured form field with a label, optional help text, error and validation message handling.\n */\nconst props = defineProps<{\n /**\n * A unique identifier for the form field, used to associate the label with the form element.\n */\n id: string;\n /**\n * The text displayed as the label for the form field.\n */\n label: string;\n /**\n * Additional text displayed alongside the label, typically used to indicate if the form field is required or optional\n */\n requirementText?: string;\n /**\n * Text shown below the form field to provide additional context or instructions for the user.\n */\n helpText?: string;\n /**\n * The value of the `id` attribute set on the **helpText** element. _This value is mandatory when using a helpText in order to guarantee the accessibility of the component._\n */\n helpId?: string;\n /**\n * If `true`, applies a valid state to the form field.\n */\n isValid?: boolean;\n /**\n * If `true`, applies an invalid state to the form field.\n */\n isInvalid?: boolean;\n /**\n * The value of the `id` attribute set on the **validationMessage** element. _This value is mandatory when using a validationMessage in order to guarantee the accessibility of the component._\n */\n messageId?: string;\n /**\n * message displayed when the form field has a valid or invalid state, usually indicating validation or errors.\n */\n message?: string;\n}>();\n\ndefineSlots<{\n /**\n * Use this slot to insert the form element of your choice\n */\n default: VNode;\n}>();\n\nconst classObjectValidation = computed(() => {\n return {\n 'is-valid': props.isValid,\n 'is-invalid': props.isInvalid,\n };\n});\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/field';\n</style>\n","<template>\n <fieldset class=\"mc-field--group\">\n <legend class=\"mc-field__legend\" :for=\"id\">\n {{ legend }}\n <span v-if=\"requirementText\" class=\"mc-field__requirement\"\n >({{ requirementText }})</span\n >\n </legend>\n\n <span v-if=\"helpText\" class=\"mc-field__help\">{{ helpText }}</span>\n\n <div class=\"mc-field__content\">\n <slot />\n </div>\n\n <span\n v-if=\"(isValid || isInvalid) && message\"\n class=\"mc-field__validation-message\"\n :class=\"classObjectValidation\"\n >\n {{ message }}\n </span>\n </fieldset>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, type VNode } from 'vue';\n/**\n * This component creates a structured form field for group field such as Radio Group, Checkbox Group or Toggle Group with a label, optional help text, error and validation message handling.\n */\nconst props = defineProps<{\n /**\n * A unique identifier for the form field, used to associate the label with the form element.\n */\n id: string;\n /**\n * The text displayed as the legend for the form fieldset.\n */\n legend: string;\n /**\n * Additional text displayed alongside the label, typically used to indicate if the form field is required or optional\n */\n requirementText?: string;\n /**\n * Text shown below the form field to provide additional context or instructions for the user.\n */\n helpText?: string;\n /**\n * If `true`, applies a valid state to the form field.\n */\n isValid?: boolean;\n /**\n * If `true`, applies an invalid state to the form field.\n */\n isInvalid?: boolean;\n /**\n * message displayed when the form field has a valid or invalid state, usually indicating validation or errors.\n */\n message?: string;\n}>();\n\ndefineSlots<{\n /**\n * Use this slot to insert the form element of your choice\n */\n default: VNode;\n}>();\n\nconst classObjectValidation = computed(() => {\n return {\n 'is-valid': props.isValid,\n 'is-invalid': props.isInvalid,\n };\n});\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/field';\n</style>\n","<template>\n <div class=\"mc-flag\" :class=\"classObject\">\n <span class=\"mc-flag__label\">\n {{ label }}\n </span>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n/**\n * A flag is used to display meta-information about a product or service, acting as a visual indicator of the main category of content. It is typically placed at the top of an element to ensure immediate visibility.\n */\nconst props = defineProps<{\n /**\n * Label of the Flag\n */\n label: string;\n /**\n * Allows to define the Flag style\n */\n appearance?: 'danger' | 'accent' | 'inverse' | 'standard';\n}>();\n\nconst classObject = computed(() => {\n return {\n [`mc-flag--${props.appearance}`]:\n props.appearance && props.appearance != 'standard',\n };\n});\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/flag';\n</style>\n","<template>\n <div class=\"mc-loading-loader\" :class=\"{ 'is-visible': isVisible }\">\n <div role=\"dialog\" tabindex=\"-1\" :aria-label=\"text\" v-bind=\"$attrs\">\n <MLoader size=\"l\" appearance=\"inverse\" :text=\"text\" />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport MLoader from '../loader/MLoader.vue';\n/**\n * A loading overlay is a full-screen or container-level layer that indicates a process is in progress, preventing user interaction until the task is completed. It includes a progress indicator, and a message to inform users about the loading state. Loading Overlays are commonly used in data-heavy applications, form submissions, and page transitions to enhance user experience by managing wait times effectively.\n */\ndefineProps<{\n /**\n * Controls the visibility of the loading overlay.\n */\n isVisible?: boolean;\n /**\n * Text of the loading overlay.\n */\n text?: string;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/loading-overlay';\n</style>\n","<template>\n <MOverlay :is-visible=\"open\" dialogLabel=\"modalTitle\">\n <section\n class=\"mc-modal\"\n :class=\"classObject\"\n role=\"dialog\"\n aria-labelledby=\"modalTitle\"\n :aria-modal=\"open ? 'true' : 'false'\"\n tabindex=\"-1\"\n :aria-hidden=\"!open\"\n v-bind=\"$attrs\"\n @keydown.esc=\"onClose\"\n >\n <div class=\"mc-modal__dialog\" role=\"document\">\n <header class=\"mc-modal__header\">\n <span v-if=\"$slots.icon\" class=\"mc-modal__icon\">\n <slot name=\"icon\" />\n </span>\n <h2 class=\"mc-modal__title\" id=\"modalTitle\">\n {{ title }}\n </h2>\n <MIconButton\n v-if=\"closable\"\n class=\"mc-modal__close\"\n aria-label=\"Close\"\n ghost\n @click=\"onClose\"\n >\n <template #icon>\n <Cross24 aria-hidden=\"true\" />\n </template>\n </MIconButton>\n </header>\n <main class=\"mc-modal__body\">\n <p>{{ description }}</p>\n <slot />\n </main>\n <footer v-if=\"$slots.footer\" class=\"mc-modal__footer\">\n <span class=\"mc-modal__link\">\n <slot name=\"link\" />\n </span>\n <slot name=\"footer\" />\n </footer>\n </div>\n </section>\n </MOverlay>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, watch, type VNode } from 'vue';\nimport Cross24 from '@mozaic-ds/icons-vue/src/components/Cross24/Cross24.vue';\nimport MIconButton from '../iconbutton/MIconButton.vue';\nimport MOverlay from '../overlay/MOverlay.vue';\n/**\n * A modal is a dialog window that appears on top of the main content, requiring user interaction before returning to the main interface. It is used to focus attention on a specific task, provide important information, or request confirmation for an action. Modals typically include a title, description, and primary/secondary actions and should be used for single, focused tasks to avoid disrupting the user experience.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * if `true`, display the modal.\n */\n open?: boolean;\n /**\n * Title of the modal\n */\n title: string;\n /**\n * Description of the modal\n */\n description?: string;\n /**\n * if `true`, display the close button.\n */\n closable?: boolean;\n }>(),\n {\n closable: true,\n },\n);\n\ndefineSlots<{\n /**\n * Use this slot to insert an icon next to the title of the modal\n */\n icon?: VNode;\n /**\n * Use this slot to insert the content of the modal\n */\n default?: VNode;\n /**\n * Use this slot to insert a link in the footer\n */\n link?: VNode;\n /**\n * Use this slot to insert buttons in the footer\n */\n footer?: VNode;\n}>();\n\nconst classObject = computed(() => {\n return {\n 'is-open': props.open,\n };\n});\n\nwatch(\n () => props.open,\n (newValue) => {\n emit('update:open', newValue);\n },\n);\n\nconst onClose = () => {\n emit('update:open', false);\n};\n\nconst emit = defineEmits<{\n /**\n * Emits when the checkbox value changes, updating the modelValue prop.\n */\n (on: 'update:open', value: boolean): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/modal';\n\n.mc-overlay {\n filter: none;\n}\n</style>\n","<template>\n <span class=\"mc-number-badge\" :class=\"classObject\">\n {{ label }}\n </span>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n/**\n * A badge indicates the status of an entity and can evolve at any time.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * Content of the badge\n */\n label: number;\n /**\n * Allows to define the Badge style\n */\n appearance?: 'danger' | 'accent' | 'inverse' | 'standard';\n\n /**\n * Allows to define the Badge size\n */\n size?: 's' | 'm';\n }>(),\n {\n appearance: 'standard',\n size: 's',\n },\n);\n\nconst classObject = computed(() => {\n return {\n [`mc-number-badge--${props.appearance}`]:\n props.appearance && props.appearance != 'standard',\n [`mc-number-badge--${props.size}`]: props.size && props.size != 's',\n };\n});\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/number-badge';\n</style>\n","<template>\n <select\n :id=\"id\"\n class=\"mc-select\"\n :name=\"name\"\n :value=\"modelValue\"\n :class=\"classObject\"\n :disabled=\"disabled\"\n v-bind=\"$attrs\"\n @change=\"\n emit('update:modelValue', ($event.target as HTMLSelectElement).value)\n \"\n >\n <option v-if=\"placeholder\" value=\"\" disabled>\n -- {{ placeholder }} --\n </option>\n <option\n v-for=\"(option, index) in options\"\n :key=\"index\"\n :value=\"option.value\"\n v-bind=\"option.attributes\"\n :disabled=\"option.disabled\"\n >\n {{ option.text }}\n </option>\n </select>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\n/**\n * A select is a form element for multi-line text input, ideal for longer content like comments or descriptions.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * A unique identifier for the select, used to associate the label with the form element.\n */\n id: string;\n /**\n * The name attribute for the select element, used for form submission.\n */\n name?: string;\n /**\n * Define the available choices for the select element.\n */\n options: Array<{\n id?: string;\n text: string;\n value: string | number;\n attributes?: Record<string, string | boolean | number>;\n disabled?: boolean;\n }>;\n /**\n * The current value of the select.\n */\n modelValue?: string | number;\n /**\n * Text displayed when the select has no selected value.\n */\n placeholder?: string;\n /**\n * If `true`, the select is marked as invalid.\n */\n isInvalid?: boolean;\n /**\n * If `true`, the select is disabled and non-interactive.\n */\n disabled?: boolean;\n /**\n * Determines the size of the select\n */\n size?: 's' | 'm';\n /**\n * If `true`, the select is read-only (cannot be edited).\n */\n readonly?: boolean;\n }>(),\n {\n size: 'm',\n },\n);\n\nconst classObject = computed(() => {\n return {\n [`mc-select--${props.size}`]: props.size && props.size != 'm',\n 'mc-select--readonly': props.readonly,\n 'is-invalid': props.isInvalid,\n };\n});\n\nconst emit = defineEmits<{\n /**\n * Emits when the select value changes, updating the modelValue prop.\n */\n (on: 'update:modelValue', value: string | number): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/select';\n</style>\n","<template><svg aria-hidden=\"true\" :fill=\"color\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"M14.207 6.293a1 1 0 0 1 0 1.414L9.914 12l4.293 4.293a1 1 0 0 1-1.414 1.414l-5-5a1 1 0 0 1 0-1.414l5-5a1 1 0 0 1 1.414 0\"/></svg></template>\n<script lang=\"ts\">\nexport default {\n name: 'ChevronLeft24',\n props: {\n /**\n * Icon color\n */\n color: {\n type: String,\n default: 'currentColor',\n },\n },\n};\n</script>\n","<template><svg aria-hidden=\"true\" :fill=\"color\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"M9.793 6.293a1 1 0 0 1 1.414 0l5 5a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414-1.414L14.086 12 9.793 7.707a1 1 0 0 1 0-1.414\"/></svg></template>\n<script lang=\"ts\">\nexport default {\n name: 'ChevronRight24',\n props: {\n /**\n * Icon color\n */\n color: {\n type: String,\n default: 'currentColor',\n },\n },\n};\n</script>\n","<template>\n <nav class=\"mc-pagination\" role=\"navigation\" aria-label=\"pagination\">\n <MButton\n v-if=\"!compact\"\n icon-position=\"only\"\n aria-label=\"Previous page\"\n :disabled=\"isFirstPage\"\n @click=\"previous\"\n >\n <template #icon><ChevronLeft24 /></template>\n </MButton>\n <MIconButton\n v-else\n outlined\n aria-label=\"Previous page\"\n :disabled=\"isFirstPage\"\n @click=\"previous\"\n >\n <template #icon><ChevronLeft24 /></template>\n </MIconButton>\n\n <div v-if=\"!compact\" class=\"mc-pagination__field\">\n <MSelect\n class=\"mc-pagination__select\"\n :id=\"id\"\n v-model=\"currentValue\"\n :options=\"options\"\n @update:model-value=\"emit('update:modelValue', Number($event))\"\n :aria-label=\"selectLabel\"\n ></MSelect>\n </div>\n\n <span v-if=\"compact\" class=\"mc-pagination__label\" aria-current=\"page\">\n {{ options.find((option) => option.value === currentValue)?.text }}\n </span>\n\n <MButton\n v-if=\"!compact\"\n icon-position=\"only\"\n aria-label=\"Next page\"\n :disabled=\"isLastPage\"\n @click=\"next\"\n >\n <template #icon><ChevronRight24 /></template>\n </MButton>\n <MIconButton\n v-else\n outlined\n aria-label=\"Next page\"\n :disabled=\"isLastPage\"\n @click=\"next\"\n >\n <template #icon><ChevronRight24 /></template>\n </MIconButton>\n </nav>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue';\nimport MButton from '../button/MButton.vue';\nimport MSelect from '../select/MSelect.vue';\nimport ChevronLeft24 from '@mozaic-ds/icons-vue/src/components/ChevronLeft24/ChevronLeft24.vue';\nimport ChevronRight24 from '@mozaic-ds/icons-vue/src/components/ChevronRight24/ChevronRight24.vue';\nimport MIconButton from '../iconbutton/MIconButton.vue';\n/**\n * Pagination is a navigation component that allows users to browse through large sets of content by dividing it into discrete pages. It typically includes previous and next buttons, numeric page selectors, or dropdowns to jump between pages efficiently. Pagination improves usability and performance in content-heavy applications such as tables, search results, and articles by preventing long scrolls and reducing page load times.\n */\nconst props = defineProps<{\n /**\n * A unique identifier for the pagination.\n */\n id: string;\n /**\n * The current value of the selected page.\n */\n modelValue: number;\n /**\n * If `true`, display a compact version without the select.\n */\n compact?: boolean;\n /**\n * Define the available choices for the pagination select element.\n */\n options: Array<{\n id?: string;\n text: string;\n value: number;\n }>;\n /**\n * Accessible label for the select of the pagination.\n */\n selectLabel?: string;\n}>();\n\nconst emit = defineEmits<{\n /**\n * Emits when the pagination value changes, updating the modelValue prop.\n */\n (on: 'update:modelValue', value: number): void;\n}>();\n\nconst currentValue = ref(props.modelValue);\n\nwatch(currentValue, (newVal) => {\n if (newVal !== props.modelValue) {\n emit('update:modelValue', newVal);\n }\n});\n\nconst currentIndex = computed(() =>\n props.options.findIndex((opt) => opt.value === currentValue.value),\n);\n\nconst isFirstPage = computed(() => currentIndex.value === 0);\nconst isLastPage = computed(\n () => currentIndex.value === props.options.length - 1,\n);\n\nconst previous = () => {\n const currentIndex = props.options.findIndex(\n (opt) => opt.value === currentValue.value,\n );\n if (currentIndex > 0) {\n currentValue.value = props.options[currentIndex - 1].value;\n emit('update:modelValue', props.options[currentIndex - 1].value);\n }\n};\n\nconst next = () => {\n const currentIndex = props.options.findIndex(\n (opt) => opt.value === currentValue.value,\n );\n if (currentIndex < props.options.length - 1) {\n currentValue.value = props.options[currentIndex + 1].value;\n emit('update:modelValue', props.options[currentIndex + 1].value);\n }\n};\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/pagination';\n</style>\n","<template>\n <div class=\"mc-password-input mc-text-input\" :class=\"classObject\">\n <input\n class=\"mc-password-input__control mc-text-input__control\"\n v-model=\"modelValue\"\n :id=\"id\"\n :type=\"inputType\"\n :name=\"name\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :aria-invalid=\"isInvalid\"\n :readonly=\"readonly\"\n v-bind=\"$attrs\"\n @input=\"\n emit('update:modelValue', ($event.target as HTMLInputElement).value)\n \"\n />\n <div v-if=\"isClearable && modelValue\" class=\"mc-controls-options\">\n <button class=\"mc-controls-options__button\" @click=\"clearValue\">\n <CrossCircleFilled24\n class=\"mc-controls-options__icon\"\n aria-hidden=\"true\"\n />\n <span class=\"mc-controls-options__label\">{{ clearLabel }}</span>\n </button>\n </div>\n <MButton\n ref=\"button\"\n role=\"switch\"\n :aria-checked=\"ariaChecked\"\n :disabled=\"disabled\"\n @click=\"toggleVisibility\"\n size=\"s\"\n ghost\n >\n {{ isVisible ? buttonLabel.hide : buttonLabel.show }}\n </MButton>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\nimport CrossCircleFilled24 from '@mozaic-ds/icons-vue/src/components/CrossCircleFilled24/CrossCircleFilled24.vue';\nimport MButton from '../button/MButton.vue';\n\n/**\n * A password input is a specialized input field used to securely enter and manage passwords. It typically masks the characters entered to protect sensitive information from being seen. It includes a toggle button to show or hide the password, improving usability while maintaining security. Password inputs are commonly used in login forms, account creation, and authentication flows.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * A unique identifier for the password input element, used to associate the label with the form element.\n */\n id: string;\n /**\n * The name attribute for the password input element, typically used for form submission.\n */\n name?: string;\n /**\n * The current value of the password input field.\n */\n modelValue?: string | number;\n /**\n * A placeholder text to show in the password input when it is empty.\n */\n placeholder?: string;\n /**\n * If `true`, applies an invalid state to the password input.\n */\n isInvalid?: boolean;\n /**\n * If `true`, disables the password input, making it non-interactive.\n */\n disabled?: boolean;\n /**\n * If `true`, the password input is read-only (cannot be edited).\n */\n readonly?: boolean;\n /**\n * If `true`, a clear button will appear when the password input has a value.\n */\n isClearable?: boolean;\n /**\n * The label text for the clear button\n */\n clearLabel?: string;\n /**\n * Labels of the button displayed when showing or hiding the password\n */\n buttonLabel?: {\n show: string;\n hide: string;\n };\n }>(),\n {\n clearLabel: 'Clear content',\n buttonLabel: () => ({ show: 'Show', hide: 'Hide' }),\n },\n);\n\nconst classObject = computed(() => ({\n 'is-invalid': props.isInvalid,\n}));\n\n// Local state management\nconst modelValue = ref(props.modelValue);\nconst isVisible = ref(false);\n\n/**\n * Clear the input value.\n */\nconst clearValue = () => {\n modelValue.value = '';\n emit('update:modelValue', '');\n};\n\n/**\n * Toggle the visibility of the password.\n */\nconst toggleVisibility = () => {\n isVisible.value = !isVisible.value;\n};\n\n/**\n * Compute the input type based on visibility state.\n */\nconst inputType = computed(() => (isVisible.value ? 'text' : 'password'));\n\n/**\n * Aria attributes for accessibility.\n */\nconst ariaChecked = computed(() => (isVisible.value ? 'true' : 'false'));\n\nconst emit = defineEmits<{\n /**\n * Emits when the input value changes, updating the `modelValue` prop.\n */\n (on: 'update:modelValue', value: string | number): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/controls-options';\n@use '@mozaic-ds/styles/components/text-input';\n@use '@mozaic-ds/styles/components/password-input';\n</style>\n","<template>\n <div class=\"mc-pincode-input\" :class=\"classObject\" @paste=\"onPaste\">\n <input\n v-for=\"(digit, index) in otp\"\n :key=\"index\"\n :id=\"`pincodeItem${index}`\"\n :ref=\"(el) => setInputRef(el, index)\"\n type=\"text\"\n inputmode=\"numeric\"\n maxlength=\"1\"\n pattern=\"\\d*\"\n autocomplete=\"one-time-code\"\n :name=\"name || `pincode-${id}`\"\n class=\"mc-pincode-input__control\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :value=\"digit\"\n v-bind=\"$attrs\"\n @input=\"(e) => onInput(e, index)\"\n @keydown.backspace=\"(e) => onBackspace(e, index)\"\n @keydown=\"(e) => onKeyDown(e, index)\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n ref,\n computed,\n watch,\n nextTick,\n type ComponentPublicInstance,\n} from 'vue';\n/**\n * A pincode input is a specialized input field used to enter short numeric codes, such as verification codes, security PINs, or authentication tokens. It typically separates each digit into individual fields to improve readability and ease of entry. This component is commonly used in two-factor authentication (2FA), password recovery, and secure access flows, ensuring a structured and user-friendly experience.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * A unique identifier for the pincode element, used to associate the label with the form element.\n */\n id: string;\n /**\n * The number of input displayed in the pincode element.\n */\n length?: 4 | 5 | 6;\n /**\n * The name attribute for the pincode element, typically used for form submission.\n */\n name?: string;\n /**\n * The current value of the pincode field.\n */\n modelValue?: string | number;\n /**\n * If `true`, applies an invalid state to the pincode.\n */\n isInvalid?: boolean;\n /**\n * If `true`, disables the pincode, making it non-interactive.\n */\n disabled?: boolean;\n /**\n * If `true`, the pincode is read-only (cannot be edited).\n */\n readonly?: boolean;\n }>(),\n {\n length: 6,\n },\n);\n\nconst classObject = computed(() => {\n return {\n 'is-invalid': props.isInvalid,\n };\n});\n\nconst emit = defineEmits<{\n (on: 'update:modelValue', value: string): void;\n}>();\n\nconst otp = ref<string[]>(Array(props.length).fill(''));\nconst inputRefs = ref<(HTMLInputElement | null)[]>([]);\n\nconst setInputRef = (\n el: Element | ComponentPublicInstance | null,\n index: number,\n) => {\n inputRefs.value[index] = el as HTMLInputElement | null;\n};\n\nwatch(\n () => props.modelValue,\n (value) => {\n const str = String(value ?? '');\n otp.value = Array.from({ length: props.length }, (_, i) => str[i] ?? '');\n },\n { immediate: true },\n);\n\nconst focusInput = (index: number) => {\n nextTick(() => inputRefs.value[index]?.focus());\n};\n\nconst onInput = (e: Event, index: number) => {\n const val = (e.target as HTMLInputElement).value.replace(/\\D/g, '');\n if (val) {\n otp.value[index] = val[0];\n emit('update:modelValue', otp.value.join(''));\n if (index + 1 < props.length) focusInput(index + 1);\n } else {\n otp.value[index] = '';\n emit('update:modelValue', otp.value.join(''));\n }\n};\n\nconst onKeyDown = (e: KeyboardEvent, index: number) => {\n if (e.key === 'ArrowLeft' && index > 0) {\n focusInput(index - 1);\n } else if (e.key === 'ArrowRight' && index < props.length - 1) {\n focusInput(index + 1);\n } else if (e.key === 'Backspace') {\n onBackspace(e, index);\n }\n};\n\nconst onBackspace = (e: KeyboardEvent, index: number) => {\n if (otp.value[index] === '' && index > 0) {\n otp.value[index - 1] = '';\n emit('update:modelValue', otp.value.join(''));\n focusInput(index - 1);\n }\n};\n\nconst onPaste = (e: ClipboardEvent) => {\n e.preventDefault();\n const pasted = e.clipboardData?.getData('text') ?? '';\n const digits = pasted.replace(/\\D/g, '').slice(0, props.length).split('');\n otp.value = Array.from({ length: props.length }, (_, i) => digits[i] ?? '');\n emit('update:modelValue', otp.value.join(''));\n focusInput(Math.min(digits.length, props.length - 1));\n};\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/pincode-input';\n</style>\n","<template>\n <div class=\"mc-linear-progressbar-buffer\" :class=\"classObject\">\n <div\n class=\"mc-linear-progressbar-buffer__indicator\"\n role=\"progressbar\"\n :style=\"`--progress-value: ${value};`\"\n :aria-valuenow=\"value\"\n :aria-valuemin=\"0\"\n :aria-valuemax=\"100\"\n v-bind=\"$attrs\"\n ></div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n/**\n * A linear progress bar (Buffer) visually represents the progress of a task along a horizontal track, often indicating both current progress and a secondary buffered state. This type of progress bar is commonly used for loading processes, file uploads, or streaming indicators, where part of the task is completed while another portion is preloaded or buffered. It provides users with real-time feedback on task advancement.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * Allows to define the progress bar size\n */\n size?: 's' | 'm' | 'l';\n /**\n * The current value of the progress bar.\n */\n value?: number;\n }>(),\n {\n value: 0,\n },\n);\n\nconst classObject = computed(() => {\n return {\n [`mc-linear-progressbar-buffer--${props.size}`]:\n props.size && props.size != 'm',\n };\n});\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/linear-progressbar-buffer';\n</style>\n","<template>\n <div class=\"mc-linear-progressbar-percentage\">\n <div\n class=\"mc-linear-progressbar-percentage__indicator\"\n role=\"progressbar\"\n :style=\"`--progress-value: ${value};`\"\n :aria-valuenow=\"value\"\n :aria-valuemin=\"0\"\n :aria-valuemax=\"100\"\n v-bind=\"$attrs\"\n >\n <div class=\"mc-linear-progressbar-percentage__label\">\n <p class=\"mc-linear-progressbar-percentage__value\">\n {{ value\n }}<span class=\"mc-linear-progressbar-percentage__unit\">%</span>\n </p>\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n/**\n * A linear progress bar (Percentage) visually represents the completion of a task along a horizontal track, displaying the exact progress in percentage within the bar. It is commonly used for file uploads, installations, form completion, or any process requiring user awareness of progress. The percentage label provides clear and immediate feedback, helping users track progress with precision.\n */\nwithDefaults(\n defineProps<{\n /**\n * The current value of the progress bar.\n */\n value?: number;\n }>(),\n {\n value: 0,\n },\n);\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/linear-progressbar-percentage';\n</style>\n","<template><svg aria-hidden=\"true\" :fill=\"color\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"M13 5a1 1 0 1 0-2 0v6H5a1 1 0 1 0 0 2h6v6a1 1 0 1 0 2 0v-6h6a1 1 0 1 0 0-2h-6z\"/></svg></template>\n<script lang=\"ts\">\nexport default {\n name: 'More24',\n props: {\n /**\n * Icon color\n */\n color: {\n type: String,\n default: 'currentColor',\n },\n },\n};\n</script>\n","<template><svg aria-hidden=\"true\" :fill=\"color\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"M6 12a1 1 0 0 1 1-1h10a1 1 0 1 1 0 2H7a1 1 0 0 1-1-1\"/></svg></template>\n<script lang=\"ts\">\nexport default {\n name: 'Less24',\n props: {\n /**\n * Icon color\n */\n color: {\n type: String,\n default: 'currentColor',\n },\n },\n};\n</script>\n","<template>\n <div class=\"mc-quantity-selector\" :class=\"classObject\">\n <input\n :id=\"id\"\n v-model=\"currentValue\"\n class=\"mc-quantity-selector__control\"\n type=\"number\"\n :name=\"name\"\n :disabled=\"disabled\"\n :min=\"min\"\n :max=\"max\"\n :step=\"step\"\n :readonly=\"readonly\"\n :aria-invalid=\"isInvalid\"\n :aria-valuemin=\"min\"\n :aria-valuemax=\"max\"\n :aria-valuenow=\"currentValue\"\n v-bind=\"$attrs\"\n @change=\"onChange(Number(($event.target as HTMLInputElement).value))\"\n />\n <button\n v-if=\"!readonly\"\n type=\"button\"\n :aria-controls=\"id\"\n class=\"mc-quantity-selector__button mc-quantity-selector__button--increase\"\n tabindex=\"-1\"\n :disabled=\"disabled || currentValue === max\"\n @click=\"increment\"\n >\n <span class=\"mc-quantity-selector__icon\">\n <More24 />\n </span>\n <span class=\"mc-quantity-selector__label\">{{ incrementlabel }}</span>\n </button>\n <button\n v-if=\"!readonly\"\n type=\"button\"\n :aria-controls=\"id\"\n class=\"mc-quantity-selector__button mc-quantity-selector__button--decrease\"\n tabindex=\"-1\"\n :disabled=\"disabled || currentValue === min\"\n @click=\"decrement\"\n >\n <span class=\"mc-quantity-selector__icon\">\n <Less24 />\n </span>\n <span class=\"mc-quantity-selector__label\">{{ decrementLabel }}</span>\n </button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue';\nimport More24 from '@mozaic-ds/icons-vue/src/components/More24/More24.vue';\nimport Less24 from '@mozaic-ds/icons-vue/src/components/Less24/Less24.vue';\n\n/**\n * The quantity selector is a form element used to enter or select a number. This type of input is best used when the user needs to choose the quantity of a selected item, like a product before adding to cart for example.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * A unique identifier for the quantity selector element, used to associate the label with the form element.\n */\n id: string;\n /**\n * The name attribute for the quantity selector element, typically used for form submission.\n */\n name?: string;\n /**\n * The current value of the quantity selector field.\n */\n modelValue?: number;\n /**\n * If `true`, applies an invalid state to the quantity selector.\n */\n isInvalid?: boolean;\n /**\n * If `true`, disables the quantity selector, making it non-interactive.\n */\n disabled?: boolean;\n /**\n * Determines the size of the quantity selector\n */\n size?: 's' | 'm';\n /**\n * Minimum acceptable value for the quantity selector.\n */\n min?: number;\n /**\n * Maximum acceptable value for the quantity selector.\n */\n max?: number;\n /**\n * Determines how much the value will change per click when the quantity is increased or decreased.\n */\n step?: number;\n /**\n * If `true`, the quantity selector is read-only (cannot be edited).\n */\n readonly?: boolean;\n /**\n * The label text for the increment button.\n */\n incrementlabel?: string;\n /**\n * The label text for the decrement button.\n */\n decrementLabel?: string;\n }>(),\n {\n modelValue: 1,\n min: 1,\n max: 100,\n step: 1,\n size: 'm',\n name: 'quantity-selector-input',\n incrementlabel: 'Increment',\n decrementLabel: 'Decrement',\n },\n);\n\nconst currentValue = ref(props.modelValue);\n\nwatch(currentValue, (newVal) => {\n if (newVal !== props.modelValue) {\n emit('update:modelValue', newVal);\n }\n});\n\nconst classObject = computed(() => {\n return {\n [`mc-quantity-selector--${props.size}`]: props.size && props.size != 'm',\n 'is-invalid': props.isInvalid,\n };\n});\n\nconst increment = () => {\n if (currentValue.value + props.step <= props.max) {\n currentValue.value += props.step;\n } else {\n currentValue.value = props.max;\n }\n};\n\nconst decrement = () => {\n if (currentValue.value - props.step > props.min) {\n currentValue.value -= props.step;\n } else {\n currentValue.value = props.min;\n }\n};\n\nconst onChange = (value: number) => {\n currentValue.value = value;\n\n if (currentValue.value > props.max) {\n currentValue.value = props.max;\n }\n if (currentValue.value <= props.min) {\n currentValue.value = props.min;\n }\n\n emit('update:modelValue', currentValue.value);\n};\n\nconst emit = defineEmits<{\n /**\n * Emits when the quantity selector value changes, updating the `modelValue` prop.\n */\n (on: 'update:modelValue', value: number): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/quantity-selector';\n</style>\n","<template>\n <div class=\"mc-radio\">\n <input\n :id=\"id\"\n type=\"radio\"\n class=\"mc-radio__input\"\n :class=\"classObject\"\n :name=\"name\"\n :checked=\"modelValue\"\n :disabled=\"disabled\"\n :aria-invalid=\"isInvalid\"\n v-bind=\"$attrs\"\n @change=\"\n emit('update:modelValue', ($event.target as HTMLInputElement).checked)\n \"\n />\n <label v-if=\"label\" :for=\"id\" class=\"mc-radio__label\">\n {{ label }}\n </label>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\n/**\n * A radio button is used to offer a unique choice to your user in a form. Unlike checkboxes, it can not be used alone.\n */\nconst props = defineProps<{\n /**\n * A unique identifier for the radio, used to associate the label with the form element.\n */\n id: string;\n /**\n * The name attribute for the radio element, typically used for form submission.\n */\n name?: string;\n /**\n * The text label displayed next to the radio.\n */\n label?: string;\n /**\n * The radio's checked state, bound via v-model.\n */\n modelValue?: boolean;\n /**\n * If `true`, applies an invalid state to the radio.\n */\n isInvalid?: boolean;\n /**\n * If `true`, disables the radio, making it non-interactive.\n */\n disabled?: boolean;\n}>();\n\nconst classObject = computed(() => {\n return {\n 'is-invalid': props.isInvalid,\n };\n});\n\nconst emit = defineEmits<{\n /**\n * Emits when the radio value changes, updating the modelValue prop.\n */\n (on: 'update:modelValue', value: boolean): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/radio';\n</style>\n","<template>\n <div class=\"mc-field__container\" :class=\"classObjectContainer\">\n <MRadio\n v-for=\"option in options\"\n :id=\"option.id\"\n :key=\"option.id\"\n :label=\"option.label\"\n :is-invalid=\"isInvalid\"\n :name=\"name\"\n class=\"mc-field__item\"\n :class=\"classObjectItem\"\n :model-value=\"modelValue === option.value\"\n :disabled=\"option.disabled\"\n @update:model-value=\"\n (v: boolean) => (v ? emit('update:modelValue', option.value) : null)\n \"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport MRadio from '../radio/MRadio.vue';\n\n/**\n * A radio button is used to offer a unique choice to your user in a form. Unlike checkboxes, it can not be used alone.\n */\nconst props = defineProps<{\n /**\n * The name attribute for the radio element, typically used for form submission.\n */\n name: string;\n /**\n * Property used to manage the values checked by v-model\n * (Do not use directly)\n */\n modelValue?: string;\n /**\n * list of properties of each radio button of the radio group\n */\n options: Array<{\n id: string;\n label: string;\n value: string;\n disabled?: boolean;\n }>;\n /**\n * If `true`, applies an invalid state to the radio group.\n */\n isInvalid?: boolean;\n /**\n * If `true`, make the form element of the group inline.\n */\n inline?: boolean;\n}>();\n\nconst classObjectContainer = computed(() => {\n return {\n 'mc-field__container--inline': props.inline,\n };\n});\n\nconst classObjectItem = computed(() => {\n return {\n 'mc-field__container--inline__item': props.inline,\n };\n});\n\nconst emit = defineEmits<{\n /**\n * Emits when the radio group value changes, updating the modelValue prop.\n */\n (on: 'update:modelValue', value: string): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/field';\n</style>\n","<template>\n <span class=\"mc-status-dot\" :class=\"classObject\"></span>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n/**\n * A badge indicates the status of an entity and can evolve at any time.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * Allows to define the Status Dot style\n */\n status?: 'info' | 'success' | 'warning' | 'error' | 'neutral';\n /**\n * Determines the size of the Status Dot.\n */\n size?: 's' | 'm' | 'l';\n }>(),\n {\n status: 'info',\n },\n);\n\nconst classObject = computed(() => {\n return {\n [`mc-status-dot--${props.status}`]: props.status && props.status != 'info',\n [`mc-status-dot--${props.size}`]: props.size && props.size != 'm',\n };\n});\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/status-dot';\n</style>\n","<template>\n <div class=\"mc-status-badge\" :class=\"classObject\">\n <MStatusDot :status=\"status\" />\n <span class=\"mc-status-badge__label\">{{ label }}</span>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport MStatusDot from '../statusdot/MStatusDot.vue';\n/**\n * A status badge indicates the status of an entity and can evolve at any time.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * Content of the Status Badge\n */\n label: string;\n /**\n * Allows to define the Status Badge style\n */\n status?: 'info' | 'success' | 'warning' | 'error' | 'neutral';\n }>(),\n {\n status: 'info',\n },\n);\n\nconst classObject = computed(() => {\n return {\n [`mc-status-badge--${props.status}`]:\n props.status && props.status != 'info',\n };\n});\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/status-badge';\n</style>\n","<template><svg aria-hidden=\"true\" :fill=\"color\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" width=\"20\" height=\"20\"><path fill-rule=\"evenodd\" d=\"M14.697 6.364a.75.75 0 1 0-1.061-1.061L10 8.939 6.363 5.303a.75.75 0 0 0-1.06 1.06L8.939 10l-3.636 3.636a.75.75 0 1 0 1.06 1.06L10 11.062l3.636 3.636a.75.75 0 0 0 1.06-1.06L11.06 10z\"/></svg></template>\n<script lang=\"ts\">\nexport default {\n name: 'Cross20',\n props: {\n /**\n * Icon color\n */\n color: {\n type: String,\n default: 'currentColor',\n },\n },\n};\n</script>\n","<template><svg aria-hidden=\"true\" :fill=\"color\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" width=\"32\" height=\"32\"><path fill-rule=\"evenodd\" d=\"M16 3C8.82 3 3 8.82 3 16s5.82 13 13 13 13-5.82 13-13S23.18 3 16 3m0 9a1.333 1.333 0 1 0 0-2.667A1.333 1.333 0 0 0 16 12m1 2.667a1 1 0 1 0-2 0v6.666a1 1 0 1 0 2 0z\"/></svg></template>\n<script lang=\"ts\">\nexport default {\n name: 'InfoCircleFilled32',\n props: {\n /**\n * Icon color\n */\n color: {\n type: String,\n default: 'currentColor',\n },\n },\n};\n</script>\n","<template><svg aria-hidden=\"true\" :fill=\"color\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" width=\"32\" height=\"32\"><path fill-rule=\"evenodd\" d=\"M16 3C8.82 3 3 8.82 3 16s5.82 13 13 13 13-5.82 13-13S23.18 3 16 3m1 7.667a1 1 0 1 0-2 0v6.666a1 1 0 1 0 2 0zm-1 12A1.333 1.333 0 1 0 16 20a1.333 1.333 0 0 0 0 2.667\"/></svg></template>\n<script lang=\"ts\">\nexport default {\n name: 'WarningCircleFilled32',\n props: {\n /**\n * Icon color\n */\n color: {\n type: String,\n default: 'currentColor',\n },\n },\n};\n</script>\n","<template><svg aria-hidden=\"true\" :fill=\"color\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" width=\"32\" height=\"32\"><path fill-rule=\"evenodd\" d=\"M16 3C8.82 3 3 8.82 3 16s5.82 13 13 13 13-5.82 13-13S23.18 3 16 3m-4.707 8.293a1 1 0 0 1 1.414 0L16 14.586l3.293-3.293a1 1 0 0 1 1.414 1.414L17.414 16l3.293 3.293a1 1 0 0 1-1.414 1.414L16 17.414l-3.293 3.293a1 1 0 0 1-1.414-1.414L14.586 16l-3.293-3.293a1 1 0 0 1 0-1.414\"/></svg></template>\n<script lang=\"ts\">\nexport default {\n name: 'CrossCircleFilled32',\n props: {\n /**\n * Icon color\n */\n color: {\n type: String,\n default: 'currentColor',\n },\n },\n};\n</script>\n","<template><svg aria-hidden=\"true\" :fill=\"color\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" width=\"32\" height=\"32\"><path fill-rule=\"evenodd\" d=\"M16 3C8.82 3 3 8.82 3 16s5.82 13 13 13 13-5.82 13-13S23.18 3 16 3m6.707 8.96a1 1 0 0 1 0 1.414l-7.333 7.333a1 1 0 0 1-1.414 0l-4-4a1 1 0 1 1 1.414-1.414l3.293 3.293 6.626-6.626a1 1 0 0 1 1.414 0\"/></svg></template>\n<script lang=\"ts\">\nexport default {\n name: 'CheckCircleFilled32',\n props: {\n /**\n * Icon color\n */\n color: {\n type: String,\n default: 'currentColor',\n },\n },\n};\n</script>\n","<template>\n <section class=\"mc-status-notification\" role=\"status\" :class=\"classObject\">\n <component\n :is=\"iconComponent\"\n class=\"mc-status-notification__icon\"\n aria-hidden=\"true\"\n />\n <div class=\"mc-status-notification__content\">\n <h2 class=\"mc-status-notification__title\">{{ title }}</h2>\n\n <p class=\"mc-status-notification__message\">\n {{ description }}\n </p>\n\n <div v-if=\"$slots.footer\" class=\"mc-status-notification__footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n\n <button\n v-if=\"closable\"\n class=\"mc-status-notification-closable__close\"\n @click=\"emit('close')\"\n >\n <Cross20\n class=\"mc-status-notification-closable__icon\"\n aria-hidden=\"true\"\n />\n <span class=\"mc-status-notification-closable__text\">Close</span>\n </button>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, type VNode } from 'vue';\nimport Cross20 from '@mozaic-ds/icons-vue/src/components/Cross20/Cross20.vue';\nimport InfoCircleFilled32 from '@mozaic-ds/icons-vue/src/components/InfoCircleFilled32/InfoCircleFilled32.vue';\nimport WarningCircleFilled32 from '@mozaic-ds/icons-vue/src/components/WarningCircleFilled32/WarningCircleFilled32.vue';\nimport CrossCircleFilled32 from '@mozaic-ds/icons-vue/src/components/CrossCircleFilled32/CrossCircleFilled32.vue';\nimport CheckCircleFilled32 from '@mozaic-ds/icons-vue/src/components/CheckCircleFilled32/CheckCircleFilled32.vue';\n/**\n * A Status Notification is used to draw the user’s attention to important information that needs to be acknowledged. It often provides feedback on a process, highlights a status update, or alerts users about an issue. Notifications are typically triggered by user actions or system events and are designed to be easily noticeable while maintaining a non-intrusive experience.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * Title of the Status Notification\n */\n title: string;\n /**\n * Description of the Status Notification\n */\n description: string;\n /**\n * Allows to define the Status Notification style\n */\n status?: 'info' | 'success' | 'warning' | 'error';\n /**\n * if `true`, display the close button.\n */\n closable?: boolean;\n }>(),\n {\n status: 'info',\n },\n);\n\ndefineSlots<{\n /**\n * Use this slot to insert a button or a link in the footer\n */\n footer?: VNode;\n}>();\n\nconst classObject = computed(() => {\n return {\n [`mc-status-notification--${props.status}`]:\n props.status && props.status != 'info',\n };\n});\n\nconst iconComponent = computed(() => {\n switch (props.status) {\n case 'success':\n return CheckCircleFilled32;\n case 'warning':\n return WarningCircleFilled32;\n case 'error':\n return CrossCircleFilled32;\n case 'info':\n default:\n return InfoCircleFilled32;\n }\n});\n\nconst emit = defineEmits<{\n /**\n * Emits when closing the notification.\n */\n (on: 'close'): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/status-notification';\n</style>\n","<template>\n <nav class=\"mc-tabs\" :class=\"classObject\">\n <ul role=\"tablist\" class=\"mc-tabs__list\" :aria-label=\"description\">\n <li\n v-for=\"(tab, index) in tabs\"\n :key=\"`tab-${index}`\"\n role=\"presentation\"\n class=\"mc-tabs__item\"\n >\n <button\n ref=\"tab\"\n role=\"tab\"\n class=\"mc-tabs__tab\"\n :class=\"{\n 'mc-tabs__tab--selected': isTabSelected(index),\n 'mc-tabs__tab--disabled': tab.disabled,\n }\"\n :aria-selected=\"isTabSelected(index)\"\n type=\"button\"\n @click=\"onClickTab(index)\"\n >\n <span v-if=\"tab.icon\" class=\"mc-tabs__icon\">\n <component :is=\"tab.icon\" />\n </span>\n <div class=\"mc-tabs__label\">\n <span>{{ tab.label }}</span>\n </div>\n </button>\n </li>\n </ul>\n <MDivider v-if=\"divider\"></MDivider>\n </nav>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, type Component } from 'vue';\nimport MDivider from '../divider/MDivider.vue';\n/**\n * Tabs are a navigation component that allows users to switch between different sections within the same context. They help organize content efficiently by displaying only one section at a time, reducing clutter and improving accessibility. Tabs can include icons, labels, and notification badges to provide additional context. They are commonly used in dashboards, product management, and settings interfaces.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * A description indicating the purpose of the set of tabs. Useful for improving the accessibility of the component.\n */\n description?: string;\n /**\n * If `true`, the divider will appear.\n */\n divider?: boolean;\n /**\n * If `true`, the tabs of the component will be centered.\n */\n centered?: boolean;\n /**\n * The selected tab index, bound via v-model.\n */\n modelValue?: number;\n /**\n * An array of objects that allows you to provide all the data needed to generate the content for each tab.\n */\n tabs: Array<{\n /**\n * The icon displayed for the tab from Mozaic-icon-vue.\n */\n icon?: Component;\n /**\n * The label displayed for the tab.\n */\n label: string;\n /**\n * If `true`, the tab will be disabled.\n */\n disabled?: boolean;\n }>;\n }>(),\n {\n modelValue: 0,\n divider: true,\n },\n);\n\nconst classObject = computed(() => {\n return {\n 'mc-tabs--centered': props.centered,\n };\n});\n\nconst modelValue = ref(props.modelValue);\n\nconst onClickTab = (index: number) => {\n if (props.tabs[index].disabled) return;\n if (index !== modelValue.value) {\n modelValue.value = index;\n emit('update:modelValue', index);\n }\n};\n\nconst isTabSelected = (index: number) => {\n return modelValue.value === index;\n};\n\nconst emit = defineEmits<{\n /**\n * Emits when the selected tab changes, updating the modelValue prop.\n */\n (on: 'update:modelValue', value: number): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/tabs';\n</style>\n","<template>\n <label\n v-if=\"type === 'selectable'\"\n :for=\"id\"\n class=\"mc-tag\"\n :class=\"classObject\"\n >\n <input\n type=\"checkbox\"\n class=\"mc-tag__input\"\n :id=\"id\"\n :name=\"name\"\n :checked=\"modelValue\"\n :disabled=\"disabled\"\n @change=\"\n emit('update:modelValue', ($event.target as HTMLInputElement).checked)\n \"\n v-bind=\"$attrs\"\n />\n <span class=\"mc-tag__label\">{{ label }}</span>\n </label>\n\n <button\n v-else-if=\"type === 'interactive'\"\n class=\"mc-tag\"\n type=\"button\"\n :class=\"classObject\"\n :disabled=\"disabled\"\n v-bind=\"$attrs\"\n >\n <span class=\"mc-tag__label\">{{ label }}</span>\n </button>\n\n <button\n v-else-if=\"type === 'contextualised'\"\n class=\"mc-tag\"\n type=\"button\"\n :class=\"classObject\"\n :disabled=\"disabled\"\n v-bind=\"$attrs\"\n >\n <MNumberBadge\n appearance=\"inverse\"\n :label=\"contextualisedNumber\"\n :size=\"size === 'l' ? 'm' : undefined\"\n />\n <span class=\"mc-tag__label\">{{ label }}</span>\n </button>\n\n <span\n v-else-if=\"type === 'removable'\"\n class=\"mc-tag\"\n :class=\"classObject\"\n v-bind=\"$attrs\"\n >\n <span class=\"mc-tag__label\">{{ label }}</span>\n <button\n class=\"mc-tag-removable__remove\"\n type=\"button\"\n @click=\"id && emit('remove-tag', id)\"\n >\n <CrossCircleFilled24 class=\"mc-tag-removable__icon\" aria-hidden=\"true\" />\n <span class=\"mc-tag-removable__text\">removableLabel</span>\n </button>\n </span>\n\n <!-- informative -->\n <span v-else class=\"mc-tag\" :class=\"classObject\" v-bind=\"$attrs\">\n <span class=\"mc-tag__label\">{{ label }}</span>\n </span>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport CrossCircleFilled24 from '@mozaic-ds/icons-vue/src/components/CrossCircleFilled24/CrossCircleFilled24.vue';\nimport MNumberBadge from '../numberbadge/MNumberBadge.vue';\n/**\n * A Tag is a UI element used to filter data, categorize, select or deselect an option. It can appear standalone, in a group, or embedded within other components. Depending on its use, a tag can be interactive (clickable, removable, selectable) or static (serving as a visual indicator).\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * Defines the behavior and layout of the tag.\n */\n type?:\n | 'informative'\n | 'interactive'\n | 'contextualised'\n | 'removable'\n | 'selectable';\n /**\n * Determines the size of the tag.\n */\n size?: 's' | 'm' | 'l';\n /**\n * A unique identifier for the tag, used to associate the label with the form element. **Required** when type is 'selectable' or 'removable'.\n */\n id?: string;\n /**\n * The name attribute for the tag element, typically used for form submission. (only relevant for type: 'selectable').\n */\n name?: string;\n /**\n * The text label displayed next to the tag.\n */\n label: string;\n /**\n * The tag's checked state, bound via v-model. Used only for type: 'selectable'.\n */\n modelValue?: boolean;\n /**\n * If `true`, disables the tag, making it non-interactive. Applicable to selectable, interactive, and contextualised types.\n */\n disabled?: boolean;\n /**\n * A number displayed in the badge when the tag is contextualised.\n */\n contextualisedNumber?: number;\n /**\n * Accessible label text for the remove button in removable tags.\n */\n removableLabel?: string;\n }>(),\n {\n type: 'informative',\n contextualisedNumber: 99,\n },\n);\n\nconst classObject = computed(() => {\n return {\n [`mc-tag-${props.type}`]: props.type && props.type != 'informative',\n [`mc-tag--${props.size}`]: props.size && props.size != 'm',\n };\n});\n\nconst emit = defineEmits<{\n /**\n * Emits when the tag value changes, updating the modelValue prop.\n */\n (on: 'update:modelValue', value: boolean): void;\n /**\n * Emits when the remove button of a tag is clicked, passing the tag's ID.\n */\n (on: 'remove-tag', id: string): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/tag';\n</style>\n","<template>\n <textarea\n :id=\"id\"\n class=\"mc-textarea\"\n :class=\"classObject\"\n :aria-invalid=\"isInvalid\"\n :value=\"modelValue\"\n :name=\"name\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :minlength=\"minLength\"\n :maxlength=\"maxLength\"\n :rows=\"rows\"\n :readonly=\"readonly\"\n v-bind=\"$attrs\"\n @input=\"\n emit('update:modelValue', ($event.target as HTMLInputElement).value)\n \"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\n/**\n * A textarea is a form element for multi-line text input, ideal for longer content like comments or descriptions.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * A unique identifier for the textarea, used to associate the label with the form element.\n */\n id: string;\n /**\n * The name attribute for the textarea element, used for form submission.\n */\n name?: string;\n /**\n * The current value of the textarea field.\n */\n modelValue?: string | number;\n /**\n * Text displayed when the textarea is empty.\n */\n placeholder?: string;\n /**\n * If `true`, the textarea is marked as invalid.\n */\n isInvalid?: boolean;\n /**\n * If `true`, the textarea is disabled and non-interactive.\n */\n disabled?: boolean;\n /**\n * The number of visible text lines in the textarea.\n */\n rows?: number;\n /**\n * Minimum number of characters required for the textarea.\n */\n minLength?: number;\n /**\n * Maximum number of characters allowed in the textarea.\n */\n maxLength?: number;\n /**\n * If `true`, the textarea is read-only (cannot be edited).\n */\n readonly?: boolean;\n }>(),\n {\n rows: 2,\n },\n);\n\nconst classObject = computed(() => {\n return {\n 'is-invalid': props.isInvalid,\n };\n});\n\nconst emit = defineEmits<{\n /**\n * Emits when the textarea value changes, updating the modelValue prop.\n */\n (on: 'update:modelValue', value: string | number): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/textarea';\n</style>\n","<template>\n <div class=\"mc-text-input\" :class=\"classObject\">\n <span v-if=\"$slots.icon\" class=\"mc-text-input__icon\">\n <slot name=\"icon\" />\n </span>\n\n <input\n :id=\"id\"\n class=\"mc-text-input__control\"\n :value=\"modelValue\"\n :type=\"inputType\"\n :name=\"name\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :aria-invalid=\"isInvalid\"\n :readonly=\"readonly\"\n v-bind=\"$attrs\"\n @input=\"\n emit('update:modelValue', ($event.target as HTMLInputElement).value)\n \"\n />\n\n <div v-if=\"isClearable && modelValue\" class=\"mc-controls-options\">\n <button\n type=\"button\"\n class=\"mc-controls-options__button\"\n @click=\"clearValue\"\n >\n <CrossCircleFilled24\n class=\"mc-controls-options__icon\"\n aria-hidden=\"true\"\n />\n <span class=\"mc-controls-options__label\">{clearLabel}</span>\n </button>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, type VNode } from 'vue';\nimport CrossCircleFilled24 from '@mozaic-ds/icons-vue/src/components/CrossCircleFilled24/CrossCircleFilled24.vue';\n\n/**\n * Inputs are used to create input fields with text on a single line. Their states depends on the user interaction or the context.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * A unique identifier for the input element, used to associate the label with the form element.\n */\n id: string;\n /**\n * The name attribute for the input element, typically used for form submission.\n */\n name?: string;\n /**\n * The current value of the input field.\n */\n modelValue?: string | number;\n /**\n * A placeholder text to show in the input when it is empty.\n */\n placeholder?: string;\n /**\n * Defines the type of input\n */\n inputType?:\n | 'date'\n | 'email'\n | 'number'\n | 'password'\n | 'search'\n | 'tel'\n | 'text';\n /**\n * If `true`, applies an invalid state to the input.\n */\n isInvalid?: boolean;\n /**\n * If `true`, disables the input, making it non-interactive.\n */\n disabled?: boolean;\n /**\n * Determines the size of the input\n */\n size?: 's' | 'm';\n /**\n * If `true`, the input is read-only (cannot be edited).\n */\n readonly?: boolean;\n /**\n * If `true`, a clear button will appear when the input has a value.\n */\n isClearable?: boolean;\n /**\n * The label text for the clear button\n */\n clearLabel?: string;\n }>(),\n {\n inputType: 'text',\n size: 'm',\n clearLabel: 'clear content',\n },\n);\n\ndefineSlots<{\n /**\n * Use this slot to insert an icon in the input\n */\n icon?: VNode;\n}>();\n\nconst classObject = computed(() => {\n return {\n [`mc-text-input--${props.size}`]: props.size && props.size != 'm',\n 'is-invalid': props.isInvalid,\n };\n});\n\nconst modelValue = ref(props.modelValue);\nconst clearValue = () => {\n modelValue.value = '';\n emit('update:modelValue', '');\n};\n\nconst emit = defineEmits<{\n /**\n * Emits when the input value changes, updating the `modelValue` prop.\n */\n (on: 'update:modelValue', value: string | number): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/controls-options';\n@use '@mozaic-ds/styles/components/text-input';\n</style>\n","<template>\n <div class=\"mc-toggle\" :class=\"classObject\">\n <label class=\"mc-toggle__container\" :for=\"id\">\n <input\n :id=\"id\"\n type=\"checkbox\"\n class=\"mc-toggle__input\"\n :name=\"name\"\n :checked=\"modelValue\"\n :disabled=\"disabled\"\n v-bind=\"$attrs\"\n @change=\"\n emit('update:modelValue', ($event.target as HTMLInputElement).checked)\n \"\n />\n <span v-if=\"label\" :for=\"id\" class=\"mc-toggle__label\">\n {{ label }}\n </span>\n </label>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\n/**\n * A toggle is used to choose between two possibilities and when the user needs instant feedback. It is common to use toggles when you need to show or hide content and \"on/off\" switch.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * A unique identifier for the toggle, used to associate the label with the form element.\n */\n id: string;\n /**\n * The name attribute for the toggle element, typically used for form submission.\n */\n name?: string;\n /**\n * The text label displayed next to the toggle.\n */\n label?: string;\n /**\n * The toggle's checked state, bound via v-model.\n */\n modelValue?: boolean;\n /**\n * Determines the size of the toggle\n */\n size?: 's' | 'm';\n /**\n * If `true`, disables the toggle, making it non-interactive.\n */\n disabled?: boolean;\n }>(),\n {\n size: 's',\n },\n);\n\nconst classObject = computed(() => {\n return {\n [`mc-toggle--${props.size}`]: props.size && props.size != 's',\n };\n});\n\nconst emit = defineEmits<{\n /**\n * Emits when the toggle value changes, updating the modelValue prop.\n */\n (on: 'update:modelValue', value: boolean): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/toggle';\n</style>\n","<template>\n <div class=\"tooltip-story-wrapper\">\n <div class=\"mc-tooltip\" :class=\"classObject\" :aria-describedby=\"id\">\n <slot />\n <span :id=\"id\" class=\"mc-tooltip__content\" role=\"tooltip\">\n {{ text }}\n </span>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n/**\n * A tooltip is a small, contextual message that appears when users hover over, focus on, or tap an element, providing additional information or guidance without cluttering the interface. Tooltips are commonly used to explain icons, abbreviations, or complex actions. They typically disappear automatically when the user moves away from the trigger element.\n */\nconst props = withDefaults(\n defineProps<{\n /**\n * A unique identifier for the tooltip, used to describe the tooltip.\n */\n id: string;\n /**\n * Content of the tooltip\n */\n text: string;\n /**\n * Determines the position of the tooltip\n */\n position?: 'top' | 'bottom' | 'left' | 'right';\n /**\n * if `true`, the tooltip display a pointer.\n */\n pointer?: boolean;\n }>(),\n {\n position: 'top',\n pointer: true,\n },\n);\n\ndefineSlots<{\n /**\n * The tooltip will point to the content of the slot.\n */\n default: string;\n}>();\n\nconst classObject = computed(() => {\n return {\n [`mc-tooltip--${props.position}`]: props.position,\n 'mc-tooltip--no-pointer': !props.pointer,\n };\n});\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/tooltip';\n</style>\n","<template>\n <div :class=\"classObjectContainer\">\n <MToggle\n v-for=\"option in options\"\n :id=\"option.id\"\n :key=\"option.id\"\n :label=\"option.label\"\n :is-invalid=\"option.isInvalid\"\n :name=\"name\"\n :class=\"classObjectItem\"\n :model-value=\"modelValue ? modelValue.includes(option.value) : undefined\"\n :disabled=\"option.disabled\"\n @update:model-value=\"(v: boolean) => onChange(v, option.value)\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue';\nimport MToggle from '../toggle/MToggle.vue';\n\n/**\n * A toggle is used to choose between two possibilities and when the user needs instant feedback. It is common to use toggles when you need to show or hide content and \"on/off\" switch.\n */\nconst props = defineProps<{\n /**\n * The name attribute for the toggle element, typically used for form submission.\n */\n name: string;\n /**\n * Property used to manage the values checked by v-model\n * (Do not use directly)\n */\n modelValue?: Array<string>;\n /**\n * list of properties of each toggle of the toggle group\n */\n options: Array<{\n id: string;\n label: string;\n value: string;\n disabled?: boolean;\n isInvalid?: boolean;\n size?: 's' | 'm';\n }>;\n /**\n * If `true`, make the form element of the group inline.\n */\n inline?: boolean;\n}>();\n\nconst selectedValue = ref<string[]>([]);\n\nwatch(\n () => props.modelValue,\n (newValue) => {\n selectedValue.value = newValue || [];\n },\n { immediate: true },\n);\n\nconst onChange = (isChecked: boolean, value: string) => {\n let values = [...selectedValue.value];\n\n if (isChecked && !values.includes(value)) {\n values.push(value);\n } else {\n values = values.filter((val) => val !== value);\n }\n\n emit('update:modelValue', values);\n selectedValue.value = values;\n};\n\nconst classObjectContainer = computed(() => {\n return {\n 'mc-field__container--inline': props.inline,\n };\n});\n\nconst classObjectItem = computed(() => {\n return {\n 'mc-field__container--inline__item': props.inline,\n };\n});\n\nconst emit = defineEmits<{\n /**\n * Emits when the toggle group value changes, updating the modelValue prop.\n */\n (on: 'update:modelValue', value: Array<string>): void;\n}>();\n</script>\n\n<style lang=\"scss\" scoped>\n@use '@mozaic-ds/styles/components/field';\n</style>\n"],"names":["props","__props","classObject","computed","_openBlock","_createBlock","_resolveDynamicComponent","router","_normalizeClass","href","target","$slots","iconPosition","_createElementBlock","_hoisted_1","_renderSlot","_ctx","_createElementVNode","_hoisted_2","_hoisted_3","isLastLink","index","_Fragment","_renderList","links","link","_createVNode","MLink","appearance","_createTextVNode","_toDisplayString","setViewBox","viewBox","setCircleRadius","circleRadius","text","_hoisted_4","disabled","type","isLoading","MLoader","_hoisted_5","emit","__emit","_mergeProps","id","name","modelValue","indeterminate","isInvalid","$attrs","_cache","$event","label","selectedValue","ref","watch","newValue","onChange","isChecked","value","values","val","classObjectContainer","classObjectItem","options","option","MCheckbox","v","contentValue","additionalInfo","_hoisted_6","_sfc_main$F","$props","clearValue","readonly","isClearable","CrossCircleFilled24","clearLabel","_sfc_main$C","_sfc_main$B","isVisible","dialogLabel","onClose","MOverlay","open","back","MIconButton","ArrowBack24","title","Cross24","contentTitle","_hoisted_7","_hoisted_8","classObjectValidation","requirementText","helpId","helpText","isValid","message","messageId","legend","closable","description","placeholder","_sfc_main$q","_sfc_main$p","currentValue","newVal","currentIndex","opt","isFirstPage","isLastPage","previous","next","compact","ChevronLeft24","MButton","MSelect","selectLabel","ChevronRight24","toggleVisibility","inputType","ariaChecked","_withDirectives","buttonLabel","otp","inputRefs","setInputRef","el","str","_","i","focusInput","nextTick","onInput","e","onKeyDown","onBackspace","onPaste","digits","digit","_withKeys","_sfc_main$j","_sfc_main$i","increment","decrement","min","max","step","More24","incrementlabel","Less24","decrementLabel","MRadio","MStatusDot","status","_sfc_main$c","_sfc_main$b","_sfc_main$a","_sfc_main$9","_sfc_main$8","iconComponent","CheckCircleFilled32","WarningCircleFilled32","CrossCircleFilled32","InfoCircleFilled32","Cross20","onClickTab","isTabSelected","tabs","tab","divider","MDivider","MNumberBadge","contextualisedNumber","size","_hoisted_9","minLength","maxLength","rows","MToggle"],"mappings":"ymBAkCA,MAAMA,EAAQC,EAmDRC,EAAcC,EAAAA,SAAS,KACpB,CACL,CAAC,YAAYH,EAAM,UAAU,EAAE,EAC7BA,EAAM,YAAcA,EAAM,YAAc,WAC1C,CAAC,YAAYA,EAAM,IAAI,EAAE,EAAGA,EAAM,MAAQA,EAAM,MAAQ,IACxD,kBAAmBA,EAAM,OACzB,uBAAwB,CAACA,EAAM,MAAA,EAElC,gBA5FCI,EAAAA,UAAA,EAAAC,EAAAA,YAyBYC,EAAAA,wBAxBLC,EAAAA,OAAM,cAAA,GAAA,EAAA,CACX,MAAKC,EAAAA,eAAA,CAAC,UACEN,EAAA,KAAW,CAAA,EAClB,KAAMO,EAAAA,KACN,OAAQC,EAAAA,OACR,GAAIH,EAAAA,OAASE,EAAAA,KAAO,MAAA,qBAErB,IAMO,CALCE,EAAAA,OAAO,MAAQC,EAAAA,cAAY,QADnCR,EAAAA,YAAAS,EAAAA,mBAMO,OANPC,EAMO,CADLC,EAAAA,WAAoBC,EAAA,OAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gCAEtBC,EAAAA,mBAEO,OAFPC,EAEO,CADLH,EAAAA,WAAQC,EAAA,OAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,GAGFL,EAAAA,OAAO,MAAQC,EAAAA,cAAY,SADnCR,EAAAA,YAAAS,EAAAA,mBAMO,OANPM,EAMO,CADLJ,EAAAA,WAAoBC,EAAA,OAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oTCO1B,MAAMhB,EAAQC,EAwBRC,EAAcC,EAAAA,SAAS,KACpB,CACL,CAAC,kBAAkBH,EAAM,UAAU,EAAE,EACnCA,EAAM,YAAcA,EAAM,YAAc,UAAA,EAE7C,EAEKoB,EAAcC,GACXA,KAAWrB,EAAM,OAAO,QAAU,GAAK,8BA9D9Ca,EAAAA,mBAqBM,MAAA,CArBD,MAAKL,EAAAA,eAAA,CAAC,gBAAwBN,EAAA,KAAW,CAAA,EAAE,aAAW,YAAA,GACzDe,EAAAA,mBAmBK,KAnBLH,EAmBK,EAlBHV,EAAAA,UAAA,EAAA,EAAAS,EAAAA,mBAiBKS,WAAA,KAAAC,EAAAA,WAfqBC,EAAAA,MAAK,CAArBC,EAAMJ,mBAFhBR,EAAAA,mBAiBK,KAAA,CAhBH,MAAM,sBAEL,kBAAmBQ,CAAK,EAAA,GAEzBK,EAAAA,YAWQC,EAAA,CAVL,KAAMF,EAAK,KACX,OAAQA,EAAK,OACb,WAAYG,EAAAA,WACb,OAAA,GACC,MAAKpB,EAAAA,eAAA,CAA0C,yBAAAY,EAAWC,CAAK,CAAA,GAG/D,eAAcD,EAAWC,CAAK,SAAa,MAAA,qBAE5C,IAAgB,CAAbQ,EAAAA,gBAAAC,EAAAA,gBAAAL,EAAK,KAAK,EAAA,CAAA,CAAA,oVCQvB,MAAMzB,EAAQC,EAuBRC,EAAcC,EAAAA,SAAS,KACpB,CACL,CAAC,cAAcH,EAAM,IAAI,EAAE,EAAGA,EAAM,MAAQA,EAAM,OAAS,IAC3D,CAAC,cAAcA,EAAM,UAAU,EAAE,EAC/BA,EAAM,YAAcA,EAAM,aAAe,WAC3C,0BAA2BA,EAAM,IAAA,EAEpC,EAEK+B,EAAa5B,EAAAA,SAAS,IAAM,CAChC,IAAI6B,EAEJ,OAAQhC,EAAM,KAAA,CACZ,IAAK,IACHgC,EAAU,YACV,MACF,IAAK,IACHA,EAAU,YACV,MACF,QACEA,EAAU,WAAA,CAEd,OAAOA,CACT,CAAC,EAEKC,EAAkB9B,EAAAA,SAAS,IAAM,CACrC,IAAI+B,EAEJ,OAAQlC,EAAM,KAAA,CACZ,IAAK,IACHkC,EAAe,EACf,MACF,IAAK,IACHA,EAAe,GACf,MACF,QACEA,EAAe,CAAA,CAGnB,OAAOA,CACT,CAAC,8BAxFCrB,EAAAA,mBAiBM,MAAA,CAjBD,MAAKL,EAAAA,eAAA,CAAC,YAAoBN,EAAA,KAAW,CAAA,CAAA,GACxCe,EAAAA,mBAcO,OAdPH,EAcO,gBAbLD,EAAAA,mBAYM,MAAA,CAXJ,MAAM,kBACN,MAAM,6BACL,QAASkB,EAAA,MACV,cAAY,MAAA,GAEZd,EAAAA,mBAKU,SAAA,CAJR,MAAM,kBACN,GAAG,MACH,GAAG,MACF,EAAGgB,EAAA,KAAA,qBAIDE,EAAAA,oBAATtB,EAAAA,mBAAmE,IAAnEuB,EAAmEN,EAAAA,gBAAXK,EAAAA,IAAI,EAAA,CAAA,sfC4BhE,MAAMnC,EAAQC,EAqDRC,EAAcC,EAAAA,SAAS,KACpB,CACL,CAAC,cAAcH,EAAM,UAAU,EAAE,EAC/BA,EAAM,YAAcA,EAAM,YAAc,WAC1C,CAAC,cAAcA,EAAM,IAAI,EAAE,EAAGA,EAAM,MAAQA,EAAM,MAAQ,IAC1D,mBAAoBA,EAAM,MAC1B,sBAAuBA,EAAM,SAC7B,uBAAwBA,EAAM,cAAgB,MAAA,EAEjD,8BA1GCa,EAAAA,mBAmCS,SAAA,CAlCP,MAAKL,EAAAA,eAAA,CAAC,YACEN,EAAA,KAAW,CAAA,EAClB,SAAUmC,EAAAA,SACV,KAAMC,EAAAA,IAAAA,GAGC3B,EAAAA,OAAO,MAAQC,EAAAA,uBAA2B2B,EAAAA,WADlDnC,EAAAA,UAAA,EAAAS,EAAAA,mBAKO,OALPK,EAKO,CADLH,EAAAA,WAAoBC,EAAA,OAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gCAGduB,EAAAA,WADRnC,EAAAA,UAAA,EAAAS,EAAAA,mBAMO,OANPM,EAMO,CADLO,EAAAA,YAAuDc,EAAA,CAA7C,MAAO,CAAA,MAAA,cAAA,EAA2B,KAAK,GAAA,kCAEvC7B,EAAAA,OAAO,MAAQC,EAAAA,cAAY,QAAvCR,EAAAA,YAAAS,EAAAA,mBAEO,OAFPuB,EAEO,CADLrB,EAAAA,WAAoBC,EAAA,OAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAEtBH,EAAAA,mBAMO,OAAA,OAJL,MAAM,mBACL,mCAAqB0B,EAAAA,UAAS,SAAA,UAAA,CAAA,GAE/BxB,EAAAA,WAAyBC,sBAAzB,IAAyB,+BAAnB,cAAY,EAAA,WAGZL,EAAAA,OAAO,MAAQC,EAAAA,wBAA4B2B,EAAAA,WADnDnC,EAAAA,UAAA,EAAAS,EAAAA,mBAKO,OALP4B,EAKO,CADL1B,EAAAA,WAAoBC,EAAA,OAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mZCL1B,MAAMhB,EAAQC,EA+BRC,EAAcC,EAAAA,SAAS,KACpB,CACL,aAAcH,EAAM,SAAA,EAEvB,EAEK0C,EAAOC,gBAjEXvC,YAAA,EAAAS,qBAmBM,MAnBNC,EAmBM,CAlBJG,EAAAA,mBAcE,QAdF2B,aAcE,CAbC,GAAIC,EAAAA,GACL,KAAK,WACL,MAAK,CAAC,qBACE3C,EAAA,KAAW,EAClB,KAAM4C,EAAAA,KACN,QAASC,EAAAA,WACT,cAAeC,EAAAA,cACf,SAAUX,EAAAA,SACV,eAAcY,EAAAA,SAAAA,EACPC,EAAAA,OAAM,CACb,SAAMC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAWV,EAAI,oBAAuBU,EAAO,OAA4B,OAAO,EAAA,cAI5EC,EAAAA,qBAAbxC,EAAAA,mBAEQ,QAAA,OAFa,IAAKgC,EAAAA,GAAI,MAAM,oBAAA,oBAC/BQ,EAAAA,KAAK,EAAA,EAAAlC,CAAA,qOCOd,MAAMnB,EAAQC,EA0BRqD,EAAgBC,EAAAA,IAAc,EAAE,EAEtCC,EAAAA,MACE,IAAMxD,EAAM,WACXyD,GAAa,CACZH,EAAc,MAAQG,GAAY,CAAA,CACpC,EACA,CAAE,UAAW,EAAA,CAAK,EAGpB,MAAMC,EAAW,CAACC,EAAoBC,IAAkB,CACtD,IAAIC,EAAS,CAAC,GAAGP,EAAc,KAAK,EAEhCK,GAAa,CAACE,EAAO,SAASD,CAAK,EACrCC,EAAO,KAAKD,CAAK,EAEjBC,EAASA,EAAO,OAAQC,GAAQA,IAAQF,CAAK,EAG/ClB,EAAK,oBAAqBmB,CAAM,EAChCP,EAAc,MAAQO,CACxB,EAEME,EAAuB5D,EAAAA,SAAS,KAC7B,CACL,8BAA+BH,EAAM,MAAA,EAExC,EAEKgE,EAAkB7D,EAAAA,SAAS,KACxB,CACL,oCAAqCH,EAAM,MAAA,EAE9C,EAEK0C,EAAOC,8BArFX9B,EAAAA,mBAcM,MAAA,CAdD,MAAKL,EAAAA,eAAA,CAAC,sBAA8BuD,EAAA,KAAoB,CAAA,CAAA,oBAC3DlD,EAAAA,mBAYES,EAAAA,SAAA,KAAAC,EAAAA,WAXiB0C,EAAAA,QAAVC,kBADT7D,EAAAA,YAYE8D,EAAA,CAVC,GAAID,EAAO,GACX,IAAKA,EAAO,GACZ,MAAOA,EAAO,MACd,aAAYA,EAAO,UACnB,KAAMpB,EAAAA,KACP,MAAKtC,EAAAA,eAAA,CAAC,iBACEwD,EAAA,KAAe,CAAA,EACtB,cAAajB,EAAAA,WAAaA,EAAAA,WAAW,SAASmB,EAAO,KAAK,EAAI,OAC9D,SAAUA,EAAO,SACjB,sBAAqBE,GAAeV,EAASU,EAAGF,EAAO,KAAK,CAAA,gkBCqCnE,MAAMlE,EAAQC,EA6BRC,EAAcC,EAAAA,SAAS,KACpB,CACL,CAAC,4BAA4BH,EAAM,IAAI,EAAE,EAAGA,EAAM,MAAQA,EAAM,MAAQ,GAAA,EAE3E,8BAlFCa,EAAAA,mBAyCM,MAAA,CAxCJ,MAAKL,EAAAA,eAAA,CAAC,0BACEN,EAAA,KAAW,CAAA,EACnB,KAAK,cACJ,4CAA4B0D,EAAAA,KAAK,GAAA,EACjC,gBAAeA,EAAAA,MACf,gBAAe,EACf,gBAAe,GAAA,eAEhB3C,EAAAA,mBAkBM,MAAA,CAjBJ,MAAM,gCACN,MAAM,6BACN,cAAY,OACZ,QAAQ,aAAA,GAERA,EAAAA,mBAKU,SAAA,CAJR,MAAM,iCACN,GAAG,KACH,GAAG,KACH,EAAE,IAAA,GAEJA,EAAAA,mBAKU,SAAA,CAJR,MAAM,qCACN,GAAG,KACH,GAAG,KACH,EAAE,IAAA,SAIEqB,EAAAA,OAAI,cADZlC,EAAAA,YAAAS,EAAAA,mBAMM,MANNK,GAMM,CAFJD,EAAAA,mBAAyD,IAAzDE,GAAyDW,EAAAA,gBAAZ8B,EAAAA,KAAK,EAAA,CAAA,EAClDT,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAlC,EAAAA,mBAA8C,IAAA,CAA3C,MAAM,iCAAgC,IAAC,EAAA,EAAA,gCAEjCqB,EAAAA,OAAI,WAAflC,EAAAA,YAAAS,EAAAA,mBAKM,MALNuB,GAKM,CAJJnB,EAAAA,mBAAiE,IAAjEwB,GAAiEX,EAAAA,gBAAnBuC,EAAAA,YAAY,EAAA,CAAA,EACjDC,EAAAA,8BAATzD,EAAAA,mBAEI,IAFJ0D,GAEIzC,EAAAA,gBADCwC,EAAAA,cAAc,EAAA,CAAA,6GCrCzBE,GAAe,CACX,KAAM,sBACN,MAAO,CAIP,MAAO,CACL,KAAM,OACN,QAAS,cAAA,CACX,CAEJ,4DAbU3D,EAAAA,mBAA2a,MAAA,CAAta,cAAY,OAAQ,KAAM4D,EAAA,MAAO,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,IAAA,EAAAtB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CAAKlC,EAAAA,mBAAiT,OAAA,CAA3S,YAAU,UAAU,EAAE,mRAAA,EAAA,KAAA,EAAA,gfC0C1J,MAAMjB,EAAQC,EA6CRC,EAAcC,EAAAA,SAAS,KACpB,CACL,CAAC,kBAAkBH,EAAM,IAAI,mBAAmBA,EAAM,IAAI,EAAE,EAC1DA,EAAM,MAAQA,EAAM,MAAQ,IAC9B,aAAcA,EAAM,SAAA,EAEvB,EAEK+C,EAAaQ,EAAAA,IAAIvD,EAAM,UAAU,EACjC0E,EAAa,IAAM,CACvB3B,EAAW,MAAQ,GACnBL,EAAK,oBAAqB,EAAE,CAC9B,EAEMA,EAAOC,8BApGX9B,EAAAA,mBAgCM,MAAA,CAhCD,MAAKL,EAAAA,eAAA,CAAC,8BAAsCN,EAAA,KAAW,CAAA,CAAA,GAC1De,EAAAA,mBAaE,QAbF2B,aAaE,CAZC,GAAIC,EAAAA,GACL,MAAM,gDACL,MAAOE,EAAA,MACR,KAAK,OACJ,KAAMD,EAAAA,KACN,SAAUT,EAAAA,SACV,eAAcY,EAAAA,UACd,SAAU0B,EAAAA,QAAAA,EACHzB,EAAAA,OAAM,CACb,QAAKC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAWV,EAAI,oBAAuBU,EAAO,OAA4B,KAAK,EAAA,eAM9EwB,EAAAA,aAAe7B,EAAA,OADvB3C,EAAAA,YAAAS,EAAAA,mBAeM,MAfNK,GAeM,CAXJD,EAAAA,mBAUS,SAAA,CATP,KAAK,SACL,MAAM,8BACL,QAAOyD,CAAA,GAERhD,EAAAA,YAGEmD,EAAA,CAFA,MAAM,4BACN,cAAY,MAAA,GAEd5D,EAAAA,mBAAgE,OAAhEE,GAAgEW,EAAAA,gBAApBgD,EAAAA,UAAU,EAAA,CAAA,CAAA,+OClB9D,MAAM9E,EAAQC,EAsBRC,EAAcC,EAAAA,SAAS,KACpB,CACL,CAAC,cAAcH,EAAM,WAAW,EAAE,EAAGA,EAAM,YAC3C,CAAC,0BAA0BA,EAAM,KAAK,EAAE,EACtCA,EAAM,OAASA,EAAM,OAAS,UAChC,CAAC,0BAA0BA,EAAM,IAAI,EAAE,EAAGA,EAAM,MAAQA,EAAM,MAAQ,GAAA,EAEzE,gBAxCCI,YAAA,EAAAS,qBAGM,MAHNC,GAGM,CAFJG,EAAAA,mBAAgC,MAAA,CAA1B,uBAAOf,EAAA,KAAW,CAAA,UACxBa,EAAAA,WAAQC,EAAA,OAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,0CCDZ+D,GAAe,CACX,KAAM,cACN,MAAO,CAIP,MAAO,CACL,KAAM,OACN,QAAS,cAAA,CACX,CAEJ,4DAbUlE,EAAAA,mBAAuS,MAAA,CAAlS,cAAY,OAAQ,KAAM4D,EAAA,MAAO,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,IAAA,EAAAtB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CAAKlC,EAAAA,mBAA6K,OAAA,CAAvK,YAAU,UAAU,EAAE,+IAAA,EAAA,KAAA,EAAA,yCCE1J+D,GAAe,CACX,KAAM,UACN,MAAO,CAIP,MAAO,CACL,KAAM,OACN,QAAS,cAAA,CACX,CAEJ,4DAbUnE,EAAAA,mBAA6U,MAAA,CAAxU,cAAY,OAAQ,KAAM4D,EAAA,MAAO,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,IAAA,EAAAtB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CAAKlC,EAAAA,mBAAmN,OAAA,CAA7M,YAAU,UAAU,EAAE,qLAAA,EAAA,KAAA,EAAA,ySCkB1J,MAAMjB,EAAQC,EAyCRC,EAAcC,EAAAA,SAAS,KACpB,CACL,CAAC,cAAcH,EAAM,UAAU,EAAE,EAC/BA,EAAM,YAAcA,EAAM,YAAc,WAC1C,CAAC,cAAcA,EAAM,IAAI,EAAE,EAAGA,EAAM,MAAQA,EAAM,MAAQ,IAC1D,mBAAoBA,EAAM,MAC1B,sBAAuBA,EAAM,QAAA,EAEhC,8BAlECa,EAAAA,mBASS,SAAA,CARP,MAAKL,EAAAA,eAAA,CAAC,mCACEN,EAAA,KAAW,CAAA,EAClB,SAAUmC,EAAAA,SACV,KAAMC,EAAAA,IAAAA,GAEPrB,EAAAA,mBAEO,OAFPC,GAEO,CADLH,EAAAA,WAAoBC,EAAA,OAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uMCPxBH,EAAAA,mBAIM,MAAA,CAJD,MAAKL,EAAAA,eAAA,CAAC,aAAY,CAAA,aAAyByE,EAAAA,UAAS,CAAA,CAAA,GACvDhE,EAAAA,mBAEM,MAAA,CAFD,KAAK,SAAS,SAAS,KAAM,kBAAiBiE,EAAAA,WAAAA,GACjDnE,EAAAA,WAAQC,EAAA,OAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,ijBC4Dd,MAAMhB,EAAQC,EAsCRC,EAAcC,EAAAA,SAAS,KACpB,CACL,UAAWH,EAAM,KACjB,oBAAqBA,EAAM,SAC3B,CAAC,cAAcA,EAAM,QAAQ,EAAE,EAC7BA,EAAM,UAAYA,EAAM,UAAY,OAAA,EAEzC,EAEDwD,EAAAA,MACE,IAAMxD,EAAM,KACXyD,GAAa,CACZf,EAAK,cAAee,CAAQ,CAC9B,CAAA,EAGF,MAAM0B,EAAU,IAAM,CACpBzC,EAAK,cAAe,EAAK,CAC3B,EAEMA,EAAOC,8BAxHXtC,EAAAA,YAkDW+E,EAAA,CAlDA,aAAYC,EAAAA,KAAM,YAAY,aAAA,qBACvC,IAgDU,CAhDVpE,EAAAA,mBAgDU,UAhDV2B,aAgDU,CA/CR,MAAK,CAAC,YACE1C,EAAA,KAAW,EACnB,KAAK,SACL,kBAAgB,cACf,aAAYmF,EAAAA,KAAI,OAAA,QACjB,SAAS,KACR,eAAcA,EAAAA,IAAAA,EACPnC,EAAAA,OAAM,CACb,qBAAaiC,EAAO,CAAA,KAAA,CAAA,CAAA,IAErBlE,EAAAA,mBAoCM,MApCNC,GAoCM,CAnCJD,EAAAA,mBAuBM,MAvBNE,GAuBM,CArBImE,EAAAA,oBADRjF,EAAAA,YAUckF,EAAA,OARZ,MAAM,kBACN,aAAW,OACX,MAAA,GACC,uBAAO7C,EAAI,MAAA,EAAA,GAED,eACT,IAAkC,CAAlChB,EAAAA,YAAkC8D,GAAA,CAArB,cAAY,OAAM,CAAA,sCAGnCvE,EAAAA,mBAA8D,KAA9DmB,GAA8DN,EAAAA,gBAAb2D,EAAAA,KAAK,EAAA,CAAA,EACtD/D,EAAAA,YASc6D,EAAA,CARZ,MAAM,mBACN,aAAW,QACX,MAAA,GACC,QAAOJ,CAAA,GAEG,eACT,IAA8B,CAA9BzD,EAAAA,YAA8BgE,EAAA,CAArB,cAAY,OAAM,CAAA,WAIjCzE,EAAAA,mBAOM,MAPNwB,GAOM,CANJxB,EAAAA,mBAKM,MALNsD,GAKM,CAJMoB,EAAAA,4BAAV9E,EAAAA,mBAEK,KAFL+E,GAEK9D,EAAAA,gBADA6D,EAAAA,YAAY,EAAA,CAAA,+BAEjB5E,EAAAA,WAAQC,EAAA,OAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,KAGDL,EAAAA,OAAO,QAAlBP,EAAAA,YAAAS,EAAAA,mBAEM,MAFNgF,GAEM,CADJ9E,EAAAA,WAAsBC,EAAA,OAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gaCdhC,MAAMhB,EAAQC,EA8CR6F,EAAwB3F,EAAAA,SAAS,KAC9B,CACL,WAAYH,EAAM,QAClB,aAAcA,EAAM,SAAA,EAEvB,gBAnFCI,YAAA,EAAAS,qBAwBM,MAxBNC,GAwBM,CAvBJG,EAAAA,mBAKQ,QAAA,CALD,MAAM,kBAAmB,IAAK4B,EAAAA,EAAAA,GAChCQ,EAAAA,gBAAAA,EAAAA,gBAAAA,EAAAA,KAAK,EAAG,IACX,CAAA,EAAY0C,EAAAA,iBAAZ3F,EAAAA,UAAA,EAAAS,EAAAA,mBAEC,OAFDM,GACG,IAACW,EAAAA,gBAAGiE,EAAAA,eAAe,EAAG,IAAC,CAAA,sCAIhBC,EAAAA,QAAUC,EAAAA,wBAAtBpF,EAAAA,mBAES,OAAA,OAFwB,GAAImF,EAAAA,OAAQ,MAAM,gBAAA,oBACjDC,EAAAA,QAAQ,EAAA,EAAA7D,EAAA,+BAGVnB,EAAAA,mBAEM,MAFNwB,GAEM,CADJ1B,EAAAA,WAAQC,EAAA,OAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,IAIDkF,EAAAA,SAAWjD,EAAAA,YAAckD,EAAAA,uBADlCtF,EAAAA,mBAOO,OAAA,OALL,MAAKL,EAAAA,eAAA,CAAC,+BAEEsF,EAAA,KAAqB,CAAA,EAD5B,GAAIM,EAAAA,SAAAA,oBAGFD,EAAAA,OAAO,EAAA,GAAA5B,EAAA,kYCOhB,MAAMvE,EAAQC,EAsCR6F,EAAwB3F,EAAAA,SAAS,KAC9B,CACL,WAAYH,EAAM,QAClB,aAAcA,EAAM,SAAA,EAEvB,gBAxECI,YAAA,EAAAS,qBAqBW,WArBXC,GAqBW,CApBTG,EAAAA,mBAKS,SAAA,CALD,MAAM,mBAAoB,IAAK4B,EAAAA,EAAAA,GAClCwD,EAAAA,gBAAAA,EAAAA,gBAAAA,EAAAA,MAAM,EAAG,IACZ,CAAA,EAAYN,EAAAA,iBAAZ3F,EAAAA,UAAA,EAAAS,EAAAA,mBAEC,OAFDM,GACG,IAACW,EAAAA,gBAAGiE,EAAAA,eAAe,EAAG,IAAC,CAAA,sCAIhBE,EAAAA,wBAAZpF,EAAAA,mBAAkE,OAAlEuB,GAAkEN,EAAAA,gBAAlBmE,EAAAA,QAAQ,EAAA,CAAA,+BAExDhF,EAAAA,mBAEM,MAFNwB,GAEM,CADJ1B,EAAAA,WAAQC,EAAA,OAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,IAIDkF,EAAAA,SAAWjD,EAAAA,YAAckD,EAAAA,uBADlCtF,EAAAA,mBAMO,OAAA,OAJL,MAAKL,EAAAA,eAAA,CAAC,+BACEsF,EAAA,KAAqB,CAAA,CAAA,oBAE1BK,EAAAA,OAAO,EAAA,CAAA,mLCPhB,MAAMnG,EAAQC,EAWRC,EAAcC,EAAAA,SAAS,KACpB,CACL,CAAC,YAAYH,EAAM,UAAU,EAAE,EAC7BA,EAAM,YAAcA,EAAM,YAAc,UAAA,EAE7C,8BA5BCa,EAAAA,mBAIM,MAAA,CAJD,MAAKL,EAAAA,eAAA,CAAC,UAAkBN,EAAA,KAAW,CAAA,CAAA,GACtCe,EAAAA,mBAEO,OAFPH,GAEOgB,EAAAA,gBADFuB,EAAAA,KAAK,EAAA,CAAA,CAAA,6LCFZxC,EAAAA,mBAIM,MAAA,CAJD,MAAKL,EAAAA,eAAA,CAAC,oBAAmB,CAAA,aAAyByE,EAAAA,UAAS,CAAA,CAAA,GAC9DhE,EAAAA,mBAEM,MAFN2B,aAEM,CAFD,KAAK,SAAS,SAAS,KAAM,aAAYT,EAAAA,IAAAA,EAAce,EAAAA,MAAM,EAAA,CAChExB,EAAAA,YAAsDc,EAAA,CAA7C,KAAK,IAAI,WAAW,UAAW,KAAML,EAAAA,IAAAA,ogBCqDpD,MAAMnC,EAAQC,EA2CRC,EAAcC,EAAAA,SAAS,KACpB,CACL,UAAWH,EAAM,IAAA,EAEpB,EAEDwD,EAAAA,MACE,IAAMxD,EAAM,KACXyD,GAAa,CACZf,EAAK,cAAee,CAAQ,CAC9B,CAAA,EAGF,MAAM0B,EAAU,IAAM,CACpBzC,EAAK,cAAe,EAAK,CAC3B,EAEMA,EAAOC,8BAnHXtC,EAAAA,YA4CW+E,EAAA,CA5CA,aAAYC,EAAAA,KAAM,YAAY,YAAA,qBACvC,IA0CU,CA1CVpE,EAAAA,mBA0CU,UA1CV2B,aA0CU,CAzCR,MAAK,CAAC,WACE1C,EAAA,KAAW,EACnB,KAAK,SACL,kBAAgB,aACf,aAAYmF,EAAAA,KAAI,OAAA,QACjB,SAAS,KACR,eAAcA,EAAAA,IAAAA,EACPnC,EAAAA,OAAM,CACb,qBAAaiC,EAAO,CAAA,KAAA,CAAA,CAAA,IAErBlE,EAAAA,mBA8BM,MA9BNC,GA8BM,CA7BJD,EAAAA,mBAkBS,SAlBTE,GAkBS,CAjBKR,EAAAA,OAAO,MAAnBP,EAAAA,YAAAS,EAAAA,mBAEO,OAFPuB,GAEO,CADLrB,EAAAA,WAAoBC,EAAA,OAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gCAEtBC,EAAAA,mBAEK,KAFLwB,GAEKX,EAAAA,gBADA2D,EAAAA,KAAK,EAAA,CAAA,EAGFa,EAAAA,wBADRjG,EAAAA,YAUckF,EAAA,OARZ,MAAM,kBACN,aAAW,QACX,MAAA,GACC,QAAOJ,CAAA,GAEG,eACT,IAA8B,CAA9BzD,EAAAA,YAA8BgE,EAAA,CAArB,cAAY,OAAM,CAAA,wCAIjCzE,EAAAA,mBAGO,OAHPsD,GAGO,CAFLtD,EAAAA,mBAAwB,2BAAlBsF,EAAAA,WAAW,EAAA,CAAA,EACjBxF,EAAAA,WAAQC,EAAA,OAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,GAEIL,EAAAA,OAAO,QAArBP,EAAAA,YAAAS,EAAAA,mBAKS,SALT+E,GAKS,CAJP3E,EAAAA,mBAEO,OAFP4E,GAEO,CADL9E,EAAAA,WAAoBC,EAAA,OAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,GAEtBD,EAAAA,WAAsBC,EAAA,OAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oOC9BhC,MAAMhB,EAAQC,EAsBRC,EAAcC,EAAAA,SAAS,KACpB,CACL,CAAC,oBAAoBH,EAAM,UAAU,EAAE,EACrCA,EAAM,YAAcA,EAAM,YAAc,WAC1C,CAAC,oBAAoBA,EAAM,IAAI,EAAE,EAAGA,EAAM,MAAQA,EAAM,MAAQ,GAAA,EAEnE,8BAtCCa,EAAAA,mBAEO,OAAA,CAFD,MAAKL,EAAAA,eAAA,CAAC,kBAA0BN,EAAA,KAAW,CAAA,CAAA,oBAC5CmD,EAAAA,KAAK,EAAA,CAAA,qXCgCZ,MAAMrD,EAAQC,EAkDRC,EAAcC,EAAAA,SAAS,KACpB,CACL,CAAC,cAAcH,EAAM,IAAI,EAAE,EAAGA,EAAM,MAAQA,EAAM,MAAQ,IAC1D,sBAAuBA,EAAM,SAC7B,aAAcA,EAAM,SAAA,EAEvB,EAEK0C,EAAOC,gBA3FXvC,YAAA,EAAAS,qBAwBS,SAxBT+B,EAAAA,WAwBS,CAvBN,GAAIC,EAAAA,GACL,MAAK,CAAC,YAGE3C,EAAA,KAAW,EAFlB,KAAM4C,EAAAA,KACN,MAAOC,EAAAA,WAEP,SAAUV,EAAAA,QAAAA,EACHa,EAAAA,OAAM,CACb,SAAMC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAASV,EAAI,oBAAuBU,EAAO,OAA6B,KAAK,EAAA,IAItEoD,EAAAA,aAAdpG,YAAA,EAAAS,EAAAA,mBAES,SAFTK,GAA6C,OACxCY,EAAAA,gBAAG0E,EAAAA,WAAW,EAAG,OACtB,CAAA,gCACApG,EAAAA,UAAA,EAAA,EAAAS,EAAAA,mBAQSS,WAAA,KAAAC,EAAAA,WAPmB0C,EAAAA,QAAO,CAAzBC,EAAQ7C,KADlBjB,YAAA,EAAAS,qBAQS,SART+B,EAAAA,WAQS,CANN,IAAKvB,EACL,MAAO6C,EAAO,KAAA,EACP,CAAA,QAAA,IAAAA,EAAO,WAAU,CACxB,SAAUA,EAAO,QAAA,CAEf,EAAApC,EAAAA,gBAAAoC,EAAO,IAAI,EAAA,GAAA/C,EAAA,yDCrBpBsF,GAAe,CACX,KAAM,gBACN,MAAO,CAIP,MAAO,CACL,KAAM,OACN,QAAS,cAAA,CACX,CAEJ,4DAbU5F,EAAAA,mBAAiR,MAAA,CAA5Q,cAAY,OAAQ,KAAM4D,EAAA,MAAO,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,IAAA,EAAAtB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CAAKlC,EAAAA,mBAAuJ,OAAA,CAAjJ,YAAU,UAAU,EAAE,yHAAA,EAAA,KAAA,EAAA,wCCE1JyF,GAAe,CACX,KAAM,iBACN,MAAO,CAIP,MAAO,CACL,KAAM,OACN,QAAS,cAAA,CACX,CAEJ,4DAbU7F,EAAAA,mBAAiR,MAAA,CAA5Q,cAAY,OAAQ,KAAM4D,EAAA,MAAO,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,IAAA,EAAAtB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CAAKlC,EAAAA,mBAAuJ,OAAA,CAAjJ,YAAU,UAAU,EAAE,yHAAA,EAAA,KAAA,EAAA,6XCmE1J,MAAMjB,EAAQC,EA2BRyC,EAAOC,EAOPgE,EAAepD,EAAAA,IAAIvD,EAAM,UAAU,EAEzCwD,QAAMmD,EAAeC,GAAW,CAC1BA,IAAW5G,EAAM,YACnB0C,EAAK,oBAAqBkE,CAAM,CAEpC,CAAC,EAED,MAAMC,EAAe1G,EAAAA,SAAS,IAC5BH,EAAM,QAAQ,UAAW8G,GAAQA,EAAI,QAAUH,EAAa,KAAK,CAAA,EAG7DI,EAAc5G,EAAAA,SAAS,IAAM0G,EAAa,QAAU,CAAC,EACrDG,EAAa7G,EAAAA,SACjB,IAAM0G,EAAa,QAAU7G,EAAM,QAAQ,OAAS,CAAA,EAGhDiH,EAAW,IAAM,CACrB,MAAMJ,EAAe7G,EAAM,QAAQ,UAChC8G,GAAQA,EAAI,QAAUH,EAAa,KAAA,EAElCE,EAAe,IACjBF,EAAa,MAAQ3G,EAAM,QAAQ6G,EAAe,CAAC,EAAE,MACrDnE,EAAK,oBAAqB1C,EAAM,QAAQ6G,EAAe,CAAC,EAAE,KAAK,EAEnE,EAEMK,EAAO,IAAM,CACjB,MAAML,EAAe7G,EAAM,QAAQ,UAChC8G,GAAQA,EAAI,QAAUH,EAAa,KAAA,EAElCE,EAAe7G,EAAM,QAAQ,OAAS,IACxC2G,EAAa,MAAQ3G,EAAM,QAAQ6G,EAAe,CAAC,EAAE,MACrDnE,EAAK,oBAAqB1C,EAAM,QAAQ6G,EAAe,CAAC,EAAE,KAAK,EAEnE,gBAvIEzG,YAAA,EAAAS,qBAqDM,MArDNC,GAqDM,CAnDKqG,EAAAA,uBAQT9G,EAAAA,YAQckF,EAAA,OANZ,SAAA,GACA,aAAW,gBACV,SAAUwB,EAAA,MACV,QAAOE,CAAA,GAEG,eAAK,IAAiB,CAAjBvF,EAAAA,YAAiB0F,CAAA,CAAA,wCAhBnC/G,EAAAA,YAQUgH,EAAA,OANR,gBAAc,OACd,aAAW,gBACV,SAAUN,EAAA,MACV,QAAOE,CAAA,GAEG,eAAK,IAAiB,CAAjBvF,EAAAA,YAAiB0F,CAAA,CAAA,yBAYvBD,EAAAA,qCAAZ/G,EAAAA,YAAAS,EAAAA,mBASM,MATNK,GASM,CARJQ,EAAAA,YAOW4F,EAAA,CANT,MAAM,wBACL,GAAIzE,EAAAA,cACI8D,EAAA,4CAAAA,EAAY,MAAAvD,kBAEAV,EAAI,oBAAsB,OAAOU,CAAM,CAAA,EAAA,EAD3D,QAASa,EAAAA,QAET,aAAYsD,EAAAA,WAAAA,wDAILJ,EAAAA,SAAZ/G,YAAA,EAAAS,qBAEO,OAFPM,GAEOW,kBADFmC,EAAAA,QAAQ,KAAMC,GAAWA,EAAO,QAAUyC,EAAA,KAAY,GAAG,IAAI,EAAA,CAAA,+BAIzDQ,EAAAA,uBAQT9G,EAAAA,YAQckF,EAAA,OANZ,SAAA,GACA,aAAW,YACV,SAAUyB,EAAA,MACV,QAAOE,CAAA,GAEG,eAAK,IAAkB,CAAlBxF,EAAAA,YAAkB8F,CAAA,CAAA,wCAhBpCnH,EAAAA,YAQUgH,EAAA,OANR,gBAAc,OACd,aAAW,YACV,SAAUL,EAAA,MACV,QAAOE,CAAA,GAEG,eAAK,IAAkB,CAAlBxF,EAAAA,YAAkB8F,CAAA,CAAA,4iBCKxC,MAAMxH,EAAQC,EAoDRC,EAAcC,EAAAA,SAAS,KAAO,CAClC,aAAcH,EAAM,SAAA,EACpB,EAGI+C,EAAaQ,EAAAA,IAAIvD,EAAM,UAAU,EACjCiF,EAAY1B,EAAAA,IAAI,EAAK,EAKrBmB,EAAa,IAAM,CACvB3B,EAAW,MAAQ,GACnBL,EAAK,oBAAqB,EAAE,CAC9B,EAKM+E,EAAmB,IAAM,CAC7BxC,EAAU,MAAQ,CAACA,EAAU,KAC/B,EAKMyC,EAAYvH,EAAAA,SAAS,IAAO8E,EAAU,MAAQ,OAAS,UAAW,EAKlE0C,EAAcxH,EAAAA,SAAS,IAAO8E,EAAU,MAAQ,OAAS,OAAQ,EAEjEvC,EAAOC,8BApIX9B,EAAAA,mBAoCM,MAAA,CApCD,MAAKL,EAAAA,eAAA,CAAC,kCAA0CN,EAAA,KAAW,CAAA,CAAA,GAC9D0H,iBAAA3G,EAAAA,mBAcE,QAdF2B,aAcE,CAbA,MAAM,yFACGG,EAAU,MAAAK,GAClB,GAAIP,EAAAA,GACJ,KAAM6E,EAAA,MACN,KAAM5E,EAAAA,KACN,YAAa0D,EAAAA,YACb,SAAUnE,EAAAA,SACV,eAAcY,EAAAA,UACd,SAAU0B,EAAAA,QAAAA,EACHzB,EAAAA,OAAM,CACb,QAAKC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAWV,EAAI,oBAAuBU,EAAO,OAA4B,KAAK,EAAA,iCAT3EL,EAAA,KAAU,CAAA,GAaV6B,EAAAA,aAAe7B,EAAA,OAA1B3C,EAAAA,YAAAS,EAAAA,mBAQM,MARNK,GAQM,CAPJD,EAAAA,mBAMS,SAAA,CAND,MAAM,8BAA+B,QAAOyD,CAAA,GAClDhD,EAAAA,YAGEmD,EAAA,CAFA,MAAM,4BACN,cAAY,MAAA,GAEd5D,EAAAA,mBAAgE,OAAhEE,GAAgEW,EAAAA,gBAApBgD,EAAAA,UAAU,EAAA,CAAA,CAAA,kCAG1DpD,EAAAA,YAUU2F,EAAA,CATR,IAAI,SACJ,KAAK,SACJ,eAAcM,EAAA,MACd,SAAUtF,EAAAA,SACV,QAAOoF,EACR,KAAK,IACL,MAAA,EAAA,qBAEA,IAAqD,CAAlD5F,EAAAA,gBAAAC,EAAAA,gBAAAmD,EAAA,MAAY4C,EAAAA,YAAY,KAAOA,EAAAA,YAAY,IAAI,EAAA,CAAA,CAAA,+WCCxD,MAAM7H,EAAQC,EAoCRC,EAAcC,EAAAA,SAAS,KACpB,CACL,aAAcH,EAAM,SAAA,EAEvB,EAEK0C,EAAOC,EAIPmF,EAAMvE,EAAAA,IAAc,MAAMvD,EAAM,MAAM,EAAE,KAAK,EAAE,CAAC,EAChD+H,EAAYxE,EAAAA,IAAiC,EAAE,EAE/CyE,EAAc,CAClBC,EACA5G,IACG,CACH0G,EAAU,MAAM1G,CAAK,EAAI4G,CAC3B,EAEAzE,EAAAA,MACE,IAAMxD,EAAM,WACX4D,GAAU,CACT,MAAMsE,EAAM,OAAOtE,GAAS,EAAE,EAC9BkE,EAAI,MAAQ,MAAM,KAAK,CAAE,OAAQ9H,EAAM,MAAA,EAAU,CAACmI,EAAGC,IAAMF,EAAIE,CAAC,GAAK,EAAE,CACzE,EACA,CAAE,UAAW,EAAA,CAAK,EAGpB,MAAMC,EAAchH,GAAkB,CACpCiH,EAAAA,SAAS,IAAMP,EAAU,MAAM1G,CAAK,GAAG,OAAO,CAChD,EAEMkH,EAAU,CAACC,EAAUnH,IAAkB,CAC3C,MAAMyC,EAAO0E,EAAE,OAA4B,MAAM,QAAQ,MAAO,EAAE,EAC9D1E,GACFgE,EAAI,MAAMzG,CAAK,EAAIyC,EAAI,CAAC,EACxBpB,EAAK,oBAAqBoF,EAAI,MAAM,KAAK,EAAE,CAAC,EACxCzG,EAAQ,EAAIrB,EAAM,QAAQqI,EAAWhH,EAAQ,CAAC,IAElDyG,EAAI,MAAMzG,CAAK,EAAI,GACnBqB,EAAK,oBAAqBoF,EAAI,MAAM,KAAK,EAAE,CAAC,EAEhD,EAEMW,EAAY,CAACD,EAAkBnH,IAAkB,CACjDmH,EAAE,MAAQ,aAAenH,EAAQ,EACnCgH,EAAWhH,EAAQ,CAAC,EACXmH,EAAE,MAAQ,cAAgBnH,EAAQrB,EAAM,OAAS,EAC1DqI,EAAWhH,EAAQ,CAAC,EACXmH,EAAE,MAAQ,aACnBE,EAAYF,EAAGnH,CAAK,CAExB,EAEMqH,EAAc,CAACF,EAAkBnH,IAAkB,CACnDyG,EAAI,MAAMzG,CAAK,IAAM,IAAMA,EAAQ,IACrCyG,EAAI,MAAMzG,EAAQ,CAAC,EAAI,GACvBqB,EAAK,oBAAqBoF,EAAI,MAAM,KAAK,EAAE,CAAC,EAC5CO,EAAWhH,EAAQ,CAAC,EAExB,EAEMsH,EAAWH,GAAsB,CACrCA,EAAE,eAAA,EAEF,MAAMI,GADSJ,EAAE,eAAe,QAAQ,MAAM,GAAK,IAC7B,QAAQ,MAAO,EAAE,EAAE,MAAM,EAAGxI,EAAM,MAAM,EAAE,MAAM,EAAE,EACxE8H,EAAI,MAAQ,MAAM,KAAK,CAAE,OAAQ9H,EAAM,MAAA,EAAU,CAACmI,EAAGC,IAAMQ,EAAOR,CAAC,GAAK,EAAE,EAC1E1F,EAAK,oBAAqBoF,EAAI,MAAM,KAAK,EAAE,CAAC,EAC5CO,EAAW,KAAK,IAAIO,EAAO,OAAQ5I,EAAM,OAAS,CAAC,CAAC,CACtD,8BA7IEa,EAAAA,mBAqBM,MAAA,CArBD,MAAKL,EAAAA,eAAA,CAAC,mBAA2BN,EAAA,KAAW,CAAA,EAAG,QAAAyI,CAAA,IAClDvI,EAAAA,UAAA,EAAA,EAAAS,EAAAA,mBAmBES,WAAA,KAAAC,EAAAA,WAlByBuG,EAAA,MAAG,CAApBe,EAAOxH,KADjBjB,YAAA,EAAAS,qBAmBE,QAnBF+B,EAAAA,WAmBE,CAjBC,IAAKvB,EACL,iBAAkBA,CAAK,cACvB,IAAM4G,GAAOD,EAAYC,EAAI5G,CAAK,EACnC,KAAK,OACL,UAAU,UACV,UAAU,IACV,QAAQ,OACR,aAAa,gBACZ,KAAMyB,EAAAA,MAAI,WAAeD,EAAAA,EAAE,GAC5B,MAAM,4BACL,SAAUR,EAAAA,SACV,SAAUsC,EAAAA,SACV,MAAOkE,CAAA,eACA3F,EAAAA,OAAM,CACb,QAAQsF,GAAMD,EAAQC,EAAGnH,CAAK,EAC9B,UAAO,CAAayH,EAAAA,SAAAN,GAAME,EAAYF,EAAGnH,CAAK,EAAA,CAAA,WAAA,CAAA,EACpCmH,GAAMC,EAAUD,EAAGnH,CAAK,CAAA,8LCDzC,MAAMrB,EAAQC,EAgBRC,EAAcC,EAAAA,SAAS,KACpB,CACL,CAAC,iCAAiCH,EAAM,IAAI,EAAE,EAC5CA,EAAM,MAAQA,EAAM,MAAQ,GAAA,EAEjC,8BAvCCa,EAAAA,mBAUM,MAAA,CAVD,MAAKL,EAAAA,eAAA,CAAC,+BAAuCN,EAAA,KAAW,CAAA,CAAA,GAC3De,EAAAA,mBAQO,MARP2B,aAQO,CAPL,MAAM,0CACN,KAAK,cACJ,2BAA4BgB,EAAAA,KAAK,IACjC,gBAAeA,EAAAA,MACf,gBAAe,EACf,gBAAe,GAAA,EACRV,EAAAA,MAAM,EAAA,KAAA,GAAApC,EAAA,CAAA,wUCRlBV,YAAA,EAAAS,qBAiBM,MAjBNC,GAiBM,CAhBJG,EAAAA,mBAeM,MAfN2B,aAeM,CAdJ,MAAM,8CACN,KAAK,cACJ,2BAA4BgB,EAAAA,KAAK,IACjC,gBAAeA,EAAAA,MACf,gBAAe,EACf,gBAAe,GAAA,EACRV,EAAAA,MAAM,EAAA,CAEdjC,EAAAA,mBAKM,MALNE,GAKM,CAJJF,EAAAA,mBAGI,IAHJmB,GAGI,qCAFCwB,EAAAA,KAAK,EAAA,CAAA,EACNT,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAlC,EAAAA,mBAA6D,OAAA,CAAvD,MAAM,0CAAyC,IAAC,EAAA,EAAA,sDCZlE8H,GAAe,CACX,KAAM,SACN,MAAO,CAIP,MAAO,CACL,KAAM,OACN,QAAS,cAAA,CACX,CAEJ,4DAbUlI,EAAAA,mBAAwO,MAAA,CAAnO,cAAY,OAAQ,KAAM4D,EAAA,MAAO,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,IAAA,EAAAtB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CAAKlC,EAAAA,mBAA8G,OAAA,CAAxG,YAAU,UAAU,EAAE,gFAAA,EAAA,KAAA,EAAA,yCCE1J+H,GAAe,CACX,KAAM,SACN,MAAO,CAIP,MAAO,CACL,KAAM,OACN,QAAS,cAAA,CACX,CAEJ,4DAbUnI,EAAAA,mBAA8M,MAAA,CAAzM,cAAY,OAAQ,KAAM4D,EAAA,MAAO,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,IAAA,EAAAtB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CAAKlC,EAAAA,mBAAoF,OAAA,CAA9E,YAAU,UAAU,EAAE,sDAAA,EAAA,KAAA,EAAA,4wBC2D1J,MAAMjB,EAAQC,EA+DR0G,EAAepD,EAAAA,IAAIvD,EAAM,UAAU,EAEzCwD,QAAMmD,EAAeC,GAAW,CAC1BA,IAAW5G,EAAM,YACnB0C,EAAK,oBAAqBkE,CAAM,CAEpC,CAAC,EAED,MAAM1G,EAAcC,EAAAA,SAAS,KACpB,CACL,CAAC,yBAAyBH,EAAM,IAAI,EAAE,EAAGA,EAAM,MAAQA,EAAM,MAAQ,IACrE,aAAcA,EAAM,SAAA,EAEvB,EAEKiJ,EAAY,IAAM,CAClBtC,EAAa,MAAQ3G,EAAM,MAAQA,EAAM,IAC3C2G,EAAa,OAAS3G,EAAM,KAE5B2G,EAAa,MAAQ3G,EAAM,GAE/B,EAEMkJ,EAAY,IAAM,CAClBvC,EAAa,MAAQ3G,EAAM,KAAOA,EAAM,IAC1C2G,EAAa,OAAS3G,EAAM,KAE5B2G,EAAa,MAAQ3G,EAAM,GAE/B,EAEM0D,EAAYE,GAAkB,CAClC+C,EAAa,MAAQ/C,EAEjB+C,EAAa,MAAQ3G,EAAM,MAC7B2G,EAAa,MAAQ3G,EAAM,KAEzB2G,EAAa,OAAS3G,EAAM,MAC9B2G,EAAa,MAAQ3G,EAAM,KAG7B0C,EAAK,oBAAqBiE,EAAa,KAAK,CAC9C,EAEMjE,EAAOC,8BArKX9B,EAAAA,mBA+CM,MAAA,CA/CD,MAAKL,EAAAA,eAAA,CAAC,uBAA+BN,EAAA,KAAW,CAAA,CAAA,GACnD0H,iBAAA3G,EAAAA,mBAiBE,QAjBF2B,aAiBE,CAhBC,GAAIC,EAAAA,wCACI8D,EAAY,MAAAvD,GACrB,MAAM,gCACN,KAAK,SACJ,KAAMN,EAAAA,KACN,SAAUT,EAAAA,SACV,IAAK8G,EAAAA,IACL,IAAKC,EAAAA,IACL,KAAMC,EAAAA,KACN,SAAU1E,EAAAA,SACV,eAAc1B,EAAAA,UACd,gBAAekG,EAAAA,IACf,gBAAeC,EAAAA,IACf,gBAAezC,EAAA,KAAA,EACRzD,EAAAA,OAAM,CACb,SAAMC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAEM,EAAS,OAAQN,EAAO,OAA4B,KAAK,CAAA,EAAA,8BAdzDuD,EAAA,KAAY,CAAA,GAiBdhC,EAAAA,oDADT9D,EAAAA,mBAaS,SAAA,OAXP,KAAK,SACJ,gBAAegC,EAAAA,GAChB,MAAM,sEACN,SAAS,KACR,SAAUR,EAAAA,UAAYsE,EAAA,QAAiByC,EAAAA,IACvC,QAAOH,CAAA,GAERhI,EAAAA,mBAEO,OAFPE,GAEO,CADLO,EAAAA,YAAU4H,EAAA,CAAA,GAEZrI,EAAAA,mBAAqE,OAArEmB,GAAqEN,EAAAA,gBAAxByH,EAAAA,cAAc,EAAA,CAAA,CAAA,SAGpD5E,EAAAA,oDADT9D,EAAAA,mBAaS,SAAA,OAXP,KAAK,SACJ,gBAAegC,EAAAA,GAChB,MAAM,sEACN,SAAS,KACR,SAAUR,EAAAA,UAAYsE,EAAA,QAAiBwC,EAAAA,IACvC,QAAOD,CAAA,GAERjI,EAAAA,mBAEO,OAFPsD,GAEO,CADL7C,EAAAA,YAAU8H,EAAA,CAAA,GAEZvI,EAAAA,mBAAqE,OAArE2E,GAAqE9D,EAAAA,gBAAxB2H,EAAAA,cAAc,EAAA,CAAA,CAAA,yUClBjE,MAAMzJ,EAAQC,EA2BRC,EAAcC,EAAAA,SAAS,KACpB,CACL,aAAcH,EAAM,SAAA,EAEvB,EAEK0C,EAAOC,gBA5DXvC,YAAA,EAAAS,qBAkBM,MAlBNC,GAkBM,CAjBJG,EAAAA,mBAaE,QAbF2B,aAaE,CAZC,GAAIC,EAAAA,GACL,KAAK,QACL,MAAK,CAAC,kBACE3C,EAAA,KAAW,EAClB,KAAM4C,EAAAA,KACN,QAASC,EAAAA,WACT,SAAUV,EAAAA,SACV,eAAcY,EAAAA,SAAAA,EACPC,EAAAA,OAAM,CACb,SAAMC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAWV,EAAI,oBAAuBU,EAAO,OAA4B,OAAO,EAAA,eAI5EC,EAAAA,qBAAbxC,EAAAA,mBAEQ,QAAA,OAFa,IAAKgC,EAAAA,GAAI,MAAM,iBAAA,oBAC/BQ,EAAAA,KAAK,EAAA,EAAAlC,EAAA,2PCUd,MAAMnB,EAAQC,EA6BR8D,EAAuB5D,EAAAA,SAAS,KAC7B,CACL,8BAA+BH,EAAM,MAAA,EAExC,EAEKgE,EAAkB7D,EAAAA,SAAS,KACxB,CACL,oCAAqCH,EAAM,MAAA,EAE9C,EAEK0C,EAAOC,8BAnEX9B,EAAAA,mBAgBM,MAAA,CAhBD,MAAKL,EAAAA,eAAA,CAAC,sBAA8BuD,EAAA,KAAoB,CAAA,CAAA,oBAC3DlD,EAAAA,mBAcES,EAAAA,SAAA,KAAAC,EAAAA,WAbiB0C,EAAAA,QAAVC,kBADT7D,EAAAA,YAcEqJ,EAAA,CAZC,GAAIxF,EAAO,GACX,IAAKA,EAAO,GACZ,MAAOA,EAAO,MACd,aAAYjB,EAAAA,UACZ,KAAMH,EAAAA,KACP,MAAKtC,EAAAA,eAAA,CAAC,iBACEwD,EAAA,KAAe,CAAA,EACtB,cAAajB,EAAAA,aAAemB,EAAO,MACnC,SAAUA,EAAO,SACjB,sBAA8BE,GAAgBA,EAAI1B,EAAI,oBAAsBwB,EAAO,KAAK,EAAA,IAAA,oPCJ/F,MAAMlE,EAAQC,EAgBRC,EAAcC,EAAAA,SAAS,KACpB,CACL,CAAC,kBAAkBH,EAAM,MAAM,EAAE,EAAGA,EAAM,QAAUA,EAAM,QAAU,OACpE,CAAC,kBAAkBA,EAAM,IAAI,EAAE,EAAGA,EAAM,MAAQA,EAAM,MAAQ,GAAA,EAEjE,8BA7BCa,EAAAA,mBAAwD,OAAA,CAAlD,MAAKL,EAAAA,eAAA,CAAC,gBAAwBN,EAAA,KAAW,CAAA,CAAA,qLCYjD,MAAMF,EAAQC,EAgBRC,EAAcC,EAAAA,SAAS,KACpB,CACL,CAAC,oBAAoBH,EAAM,MAAM,EAAE,EACjCA,EAAM,QAAUA,EAAM,QAAU,MAAA,EAErC,8BAjCCa,EAAAA,mBAGM,MAAA,CAHD,MAAKL,EAAAA,eAAA,CAAC,kBAA0BN,EAAA,KAAW,CAAA,CAAA,GAC9CwB,cAA+BiI,GAAA,CAAlB,OAAQC,EAAAA,MAAAA,EAAM,KAAA,EAAA,CAAA,QAAA,CAAA,EAC3B3I,EAAAA,mBAAuD,OAAvDH,GAAuDgB,EAAAA,gBAAfuB,EAAAA,KAAK,EAAA,CAAA,CAAA,4CCDjDwG,GAAe,CACX,KAAM,UACN,MAAO,CAIP,MAAO,CACL,KAAM,OACN,QAAS,cAAA,CACX,CAEJ,4DAbUhJ,EAAAA,mBAAgV,MAAA,CAA3U,cAAY,OAAQ,KAAM4D,EAAA,MAAO,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,IAAA,EAAAtB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CAAKlC,EAAAA,mBAAsN,OAAA,CAAhN,YAAU,UAAU,EAAE,wLAAA,EAAA,KAAA,EAAA,yCCE1J6I,GAAe,CACX,KAAM,qBACN,MAAO,CAIP,MAAO,CACL,KAAM,OACN,QAAS,cAAA,CACX,CAEJ,4DAbUjJ,EAAAA,mBAA4T,MAAA,CAAvT,cAAY,OAAQ,KAAM4D,EAAA,MAAO,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,IAAA,EAAAtB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CAAKlC,EAAAA,mBAAkM,OAAA,CAA5L,YAAU,UAAU,EAAE,oKAAA,EAAA,KAAA,EAAA,yCCE1J8I,GAAe,CACX,KAAM,wBACN,MAAO,CAIP,MAAO,CACL,KAAM,OACN,QAAS,cAAA,CACX,CAEJ,4DAbUlJ,EAAAA,mBAA8T,MAAA,CAAzT,cAAY,OAAQ,KAAM4D,EAAA,MAAO,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,IAAA,EAAAtB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CAAKlC,EAAAA,mBAAoM,OAAA,CAA9L,YAAU,UAAU,EAAE,sKAAA,EAAA,KAAA,EAAA,yCCE1J+I,GAAe,CACX,KAAM,sBACN,MAAO,CAIP,MAAO,CACL,KAAM,OACN,QAAS,cAAA,CACX,CAEJ,4DAbUnJ,EAAAA,mBAAwa,MAAA,CAAna,cAAY,OAAQ,KAAM4D,EAAA,MAAO,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,IAAA,EAAAtB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CAAKlC,EAAAA,mBAA8S,OAAA,CAAxS,YAAU,UAAU,EAAE,gRAAA,EAAA,KAAA,EAAA,yCCE1JgJ,GAAe,CACX,KAAM,sBACN,MAAO,CAIP,MAAO,CACL,KAAM,OACN,QAAS,cAAA,CACX,CAEJ,4DAbUpJ,EAAAA,mBAA4V,MAAA,CAAvV,cAAY,OAAQ,KAAM4D,EAAA,MAAO,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,IAAA,EAAAtB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CAAKlC,EAAAA,mBAAkO,OAAA,CAA5N,YAAU,UAAU,EAAE,oMAAA,EAAA,KAAA,EAAA,uYC2C1J,MAAMjB,EAAQC,EA+BRC,EAAcC,EAAAA,SAAS,KACpB,CACL,CAAC,2BAA2BH,EAAM,MAAM,EAAE,EACxCA,EAAM,QAAUA,EAAM,QAAU,MAAA,EAErC,EAEKkK,EAAgB/J,EAAAA,SAAS,IAAM,CACnC,OAAQH,EAAM,OAAA,CACZ,IAAK,UACH,OAAOmK,GACT,IAAK,UACH,OAAOC,GACT,IAAK,QACH,OAAOC,GACT,IAAK,OACL,QACE,OAAOC,EAAA,CAEb,CAAC,EAEK5H,EAAOC,8BA9FX9B,EAAAA,mBA6BU,UAAA,CA7BD,MAAKL,EAAAA,eAAA,CAAC,yBAA+CN,EAAA,KAAW,CAAA,EAAjC,KAAK,QAAA,IAC3CE,EAAAA,YAAAC,EAAAA,YAIEC,EAAAA,wBAHK4J,EAAA,KAAa,EAAA,CAClB,MAAM,+BACN,cAAY,MAAA,IAEdjJ,EAAAA,mBAUM,MAVNH,GAUM,CATJG,EAAAA,mBAA0D,KAA1DC,GAA0DY,EAAAA,gBAAb2D,EAAAA,KAAK,EAAA,CAAA,EAElDxE,EAAAA,mBAEI,IAFJE,GAEIW,EAAAA,gBADCyE,EAAAA,WAAW,EAAA,CAAA,EAGL5F,EAAAA,OAAO,QAAlBP,EAAAA,YAAAS,EAAAA,mBAEM,MAFNuB,GAEM,CADJrB,EAAAA,WAAsBC,EAAA,OAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kCAKlBsF,EAAAA,wBADRzF,EAAAA,mBAUS,SAAA,OARP,MAAM,yCACL,uBAAO6B,EAAI,OAAA,EAAA,GAEZhB,EAAAA,YAGE6I,GAAA,CAFA,MAAM,wCACN,cAAY,MAAA,GAEdpH,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAlC,EAAAA,mBAAgE,OAAA,CAA1D,MAAM,yCAAwC,QAAK,EAAA,EAAA,8XCY/D,MAAMjB,EAAQC,EA0CRC,EAAcC,EAAAA,SAAS,KACpB,CACL,oBAAqBH,EAAM,QAAA,EAE9B,EAEK+C,EAAaQ,EAAAA,IAAIvD,EAAM,UAAU,EAEjCwK,EAAcnJ,GAAkB,CAChCrB,EAAM,KAAKqB,CAAK,EAAE,UAClBA,IAAU0B,EAAW,QACvBA,EAAW,MAAQ1B,EACnBqB,EAAK,oBAAqBrB,CAAK,EAEnC,EAEMoJ,EAAiBpJ,GACd0B,EAAW,QAAU1B,EAGxBqB,EAAOC,8BArGX9B,EAAAA,mBA8BM,MAAA,CA9BD,MAAKL,EAAAA,eAAA,CAAC,UAAkBN,EAAA,KAAW,CAAA,CAAA,GACtCe,EAAAA,mBA2BK,KAAA,CA3BD,KAAK,UAAU,MAAM,gBAAiB,aAAYsF,EAAAA,WAAAA,IACpDnG,EAAAA,UAAA,EAAA,EAAAS,EAAAA,mBAyBKS,WAAA,KAAAC,EAAAA,WAxBoBmJ,EAAAA,KAAI,CAAnBC,EAAKtJ,mBADfR,EAAAA,mBAyBK,KAAA,CAvBF,WAAYQ,CAAK,GAClB,KAAK,eACL,MAAM,eAAA,GAENJ,EAAAA,mBAkBS,SAAA,YAjBP,IAAI,MACJ,KAAK,MACL,wBAAM,eAAc,CAC4B,yBAAAwJ,EAAcpJ,CAAK,EAAyC,yBAAAsJ,EAAI,QAAA,IAI/G,gBAAeF,EAAcpJ,CAAK,EACnC,KAAK,SACJ,QAAK+B,GAAEoH,EAAWnJ,CAAK,CAAA,GAEZsJ,EAAI,MAAhBvK,EAAAA,UAAA,EAAAS,EAAAA,mBAEO,OAFPM,GAEO,gBADLd,EAAAA,YAA4BC,EAAAA,wBAAZqK,EAAI,IAAI,CAAA,EAAA,gCAE1B1J,EAAAA,mBAEM,MAFNmB,GAEM,CADJnB,EAAAA,mBAA4B,OAAA,KAAAa,EAAAA,gBAAnB6I,EAAI,KAAK,EAAA,CAAA,CAAA,4BAKVC,EAAAA,uBAAhBvK,EAAAA,YAAoCwK,EAAA,CAAA,IAAA,CAAA,CAAA,6iBCiDxC,MAAM7K,EAAQC,EAkDRC,EAAcC,EAAAA,SAAS,KACpB,CACL,CAAC,UAAUH,EAAM,IAAI,EAAE,EAAGA,EAAM,MAAQA,EAAM,MAAQ,cACtD,CAAC,WAAWA,EAAM,IAAI,EAAE,EAAGA,EAAM,MAAQA,EAAM,MAAQ,GAAA,EAE1D,EAEK0C,EAAOC,eAtIHL,EAAAA,OAAI,4BADZzB,EAAAA,mBAmBQ,QAAA,OAjBL,IAAKgC,EAAAA,GACN,MAAKrC,EAAAA,eAAA,CAAC,SACEN,EAAA,KAAW,CAAA,CAAA,GAEnBe,EAAAA,mBAWE,QAXF2B,aAWE,CAVA,KAAK,WACL,MAAM,gBACL,GAAIC,EAAAA,GACJ,KAAMC,EAAAA,KACN,QAASC,EAAAA,WACT,SAAUV,EAAAA,SACV,SAAMc,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAWV,EAAI,oBAAuBU,EAAO,OAA4B,OAAO,EAAA,EAG/EF,EAAAA,MAAM,EAAA,KAAA,GAAAhC,EAAA,EAEhBD,EAAAA,mBAA8C,OAA9CE,GAA8CW,EAAAA,gBAAfuB,EAAAA,KAAK,EAAA,CAAA,CAAA,UAIzBf,EAAAA,OAAI,eADjBlC,EAAAA,YAAAS,EAAAA,mBASS,SATT+B,aASS,OAPP,MAAK,CAAC,SAEE1C,EAAA,KAAW,EADnB,KAAK,SAEJ,SAAUmC,EAAAA,QAAAA,EACHa,EAAAA,MAAM,EAAA,CAEdjC,EAAAA,mBAA8C,OAA9CwB,GAA8CX,EAAAA,gBAAfuB,EAAAA,KAAK,EAAA,CAAA,CAAA,UAIzBf,EAAAA,OAAI,kBADjBlC,EAAAA,YAAAS,EAAAA,mBAcS,SAdT+B,aAcS,OAZP,MAAK,CAAC,SAEE1C,EAAA,KAAW,EADnB,KAAK,SAEJ,SAAUmC,EAAAA,QAAAA,EACHa,EAAAA,MAAM,EAAA,CAEdxB,EAAAA,YAIEoJ,EAAA,CAHA,WAAW,UACV,MAAOC,EAAAA,qBACP,KAAMC,EAAAA,OAAI,IAAA,IAAiB,MAAA,2BAE9B/J,EAAAA,mBAA8C,OAA9C2E,GAA8C9D,EAAAA,gBAAfuB,EAAAA,KAAK,EAAA,CAAA,CAAA,UAIzBf,EAAAA,OAAI,aADjBlC,EAAAA,YAAAS,EAAAA,mBAeO,OAfP+B,aAeO,OAbL,MAAK,CAAC,SACE1C,EAAA,KAAW,CAAA,EACXgD,EAAAA,MAAM,EAAA,CAEdjC,EAAAA,mBAA8C,OAA9C4E,GAA8C/D,EAAAA,gBAAfuB,EAAAA,KAAK,EAAA,CAAA,EACpCpC,EAAAA,mBAOS,SAAA,CANP,MAAM,2BACN,KAAK,SACJ,QAAKkC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAEP,EAAAA,IAAMH,eAAmBG,EAAAA,EAAE,EAAA,GAEnCnB,EAAAA,YAAyEmD,EAAA,CAApD,MAAM,yBAAyB,cAAY,MAAA,GAChE1B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAlC,EAAAA,mBAA0D,OAAA,CAApD,MAAM,0BAAyB,iBAAc,EAAA,EAAA,UAKvDb,EAAAA,YAAAS,EAAAA,mBAEO,OAFP+B,EAAAA,WAEO,OAFM,MAAK,CAAC,SAAiB1C,EAAA,KAAW,CAAA,EAAUgD,EAAAA,MAAM,EAAA,CAC7DjC,EAAAA,mBAA8C,OAA9CgK,GAA8CnJ,EAAAA,gBAAfuB,EAAAA,KAAK,EAAA,CAAA,CAAA,wZCzCxC,MAAMrD,EAAQC,EAgDRC,EAAcC,EAAAA,SAAS,KACpB,CACL,aAAcH,EAAM,SAAA,EAEvB,EAEK0C,EAAOC,gBAhFXvC,YAAA,EAAAS,qBAiBE,WAjBF+B,EAAAA,WAiBE,CAhBC,GAAIC,EAAAA,GACL,MAAK,CAAC,cACE3C,EAAA,KAAW,EAClB,eAAc+C,EAAAA,UACd,MAAOF,EAAAA,WACP,KAAMD,EAAAA,KACN,YAAa0D,EAAAA,YACb,SAAUnE,EAAAA,SACV,UAAW6I,EAAAA,UACX,UAAWC,EAAAA,UACX,KAAMC,EAAAA,KACN,SAAUzG,EAAAA,QAAAA,EACHzB,EAAAA,OAAM,CACb,QAAKC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAASV,EAAI,oBAAuBU,EAAO,OAA4B,KAAK,EAAA,2hBC8BtF,MAAMpD,EAAQC,EAoERC,EAAcC,EAAAA,SAAS,KACpB,CACL,CAAC,kBAAkBH,EAAM,IAAI,EAAE,EAAGA,EAAM,MAAQA,EAAM,MAAQ,IAC9D,aAAcA,EAAM,SAAA,EAEvB,EAEK+C,EAAaQ,EAAAA,IAAIvD,EAAM,UAAU,EACjC0E,EAAa,IAAM,CACvB3B,EAAW,MAAQ,GACnBL,EAAK,oBAAqB,EAAE,CAC9B,EAEMA,EAAOC,8BA7HX9B,EAAAA,mBAkCM,MAAA,CAlCD,MAAKL,EAAAA,eAAA,CAAC,gBAAwBN,EAAA,KAAW,CAAA,CAAA,GAChCS,EAAAA,OAAO,MAAnBP,EAAAA,YAAAS,EAAAA,mBAEO,OAFPC,GAEO,CADLC,EAAAA,WAAoBC,EAAA,OAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gCAGtBC,EAAAA,mBAcE,QAdF2B,aAcE,CAbC,GAAIC,EAAAA,GACL,MAAM,yBACL,MAAOE,EAAA,MACP,KAAM2E,EAAAA,UACN,KAAM5E,EAAAA,KACN,YAAa0D,EAAAA,YACb,SAAUnE,EAAAA,SACV,eAAcY,EAAAA,UACd,SAAU0B,EAAAA,QAAAA,EACHzB,EAAAA,OAAM,CACb,QAAKC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAWV,EAAI,oBAAuBU,EAAO,OAA4B,KAAK,EAAA,eAK3EwB,EAAAA,aAAe7B,EAAA,OAA1B3C,EAAAA,YAAAS,EAAAA,mBAYM,MAZNM,GAYM,CAXJF,EAAAA,mBAUS,SAAA,CATP,KAAK,SACL,MAAM,8BACL,QAAOyD,CAAA,GAERhD,EAAAA,YAGEmD,EAAA,CAFA,MAAM,4BACN,cAAY,MAAA,GAEd1B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAlC,EAAAA,mBAA4D,OAAA,CAAtD,MAAM,8BAA6B,eAAY,EAAA,EAAA,mUCJ7D,MAAMjB,EAAQC,EAgCRC,EAAcC,EAAAA,SAAS,KACpB,CACL,CAAC,cAAcH,EAAM,IAAI,EAAE,EAAGA,EAAM,MAAQA,EAAM,MAAQ,GAAA,EAE7D,EAEK0C,EAAOC,8BAjEX9B,EAAAA,mBAkBM,MAAA,CAlBD,MAAKL,EAAAA,eAAA,CAAC,YAAoBN,EAAA,KAAW,CAAA,CAAA,GACxCe,EAAAA,mBAgBQ,QAAA,CAhBD,MAAM,uBAAwB,IAAK4B,EAAAA,EAAAA,GACxC5B,EAAAA,mBAWE,QAXF2B,aAWE,CAVC,GAAIC,EAAAA,GACL,KAAK,WACL,MAAM,mBACL,KAAMC,EAAAA,KACN,QAASC,EAAAA,WACT,SAAUV,EAAAA,QAAAA,EACHa,EAAAA,OAAM,CACb,SAAMC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAaV,EAAI,oBAAuBU,EAAO,OAA4B,OAAO,EAAA,eAI/EC,EAAAA,qBAAZxC,EAAAA,mBAEO,OAAA,OAFa,IAAKgC,EAAAA,GAAI,MAAM,kBAAA,oBAC9BQ,EAAAA,KAAK,EAAA,EAAAlC,EAAA,0RCAhB,MAAMnB,EAAQC,EAgCRC,EAAcC,EAAAA,SAAS,KACpB,CACL,CAAC,eAAeH,EAAM,QAAQ,EAAE,EAAGA,EAAM,SACzC,yBAA0B,CAACA,EAAM,OAAA,EAEpC,gBApDCI,YAAA,EAAAS,qBAOM,MAPNC,GAOM,CANJG,EAAAA,mBAKM,MAAA,CALD,MAAKT,EAAAA,eAAA,CAAC,aAAqBN,EAAA,KAAW,CAAA,EAAG,mBAAkB2C,EAAAA,EAAAA,GAC9D9B,EAAAA,WAAQC,EAAA,OAAA,UAAA,CAAA,EAAA,OAAA,EAAA,EACRC,EAAAA,mBAEO,OAAA,CAFA,GAAI4B,EAAAA,GAAI,MAAM,sBAAsB,KAAK,SAAA,oBAC3CV,EAAAA,IAAI,EAAA,EAAAhB,EAAA,CAAA,6MCmBf,MAAMnB,EAAQC,EA2BRqD,EAAgBC,EAAAA,IAAc,EAAE,EAEtCC,EAAAA,MACE,IAAMxD,EAAM,WACXyD,GAAa,CACZH,EAAc,MAAQG,GAAY,CAAA,CACpC,EACA,CAAE,UAAW,EAAA,CAAK,EAGpB,MAAMC,EAAW,CAACC,EAAoBC,IAAkB,CACtD,IAAIC,EAAS,CAAC,GAAGP,EAAc,KAAK,EAEhCK,GAAa,CAACE,EAAO,SAASD,CAAK,EACrCC,EAAO,KAAKD,CAAK,EAEjBC,EAASA,EAAO,OAAQC,GAAQA,IAAQF,CAAK,EAG/ClB,EAAK,oBAAqBmB,CAAM,EAChCP,EAAc,MAAQO,CACxB,EAEME,EAAuB5D,EAAAA,SAAS,KAC7B,CACL,8BAA+BH,EAAM,MAAA,EAExC,EAEKgE,EAAkB7D,EAAAA,SAAS,KACxB,CACL,oCAAqCH,EAAM,MAAA,EAE9C,EAEK0C,EAAOC,8BArFX9B,EAAAA,mBAaM,MAAA,CAbA,uBAAOkD,EAAA,KAAoB,CAAA,oBAC/BlD,EAAAA,mBAWES,EAAAA,SAAA,KAAAC,EAAAA,WAViB0C,EAAAA,QAAVC,kBADT7D,EAAAA,YAWEgL,EAAA,CATC,GAAInH,EAAO,GACX,IAAKA,EAAO,GACZ,MAAOA,EAAO,MACd,aAAYA,EAAO,UACnB,KAAMpB,EAAAA,KACN,uBAAOkB,EAAA,KAAe,EACtB,cAAajB,EAAAA,WAAaA,EAAAA,WAAW,SAASmB,EAAO,KAAK,EAAI,OAC9D,SAAUA,EAAO,SACjB,sBAAqBE,GAAeV,EAASU,EAAGF,EAAO,KAAK,CAAA","x_google_ignoreList":[7,10,11,22,23,29,30,36,37,38,39,40]}