bootstrap-vue-next 0.44.4 → 0.44.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{BAutocomplete-Depalqe-.mjs → BAutocomplete-QBIaWPY1.mjs} +2 -2
- package/dist/{BAutocomplete-Depalqe-.mjs.map → BAutocomplete-QBIaWPY1.mjs.map} +1 -1
- package/dist/{BAutocomplete-C7Odx4At.js → BAutocomplete-jAlZC6_t.js} +2 -2
- package/dist/{BAutocomplete-C7Odx4At.js.map → BAutocomplete-jAlZC6_t.js.map} +1 -1
- package/dist/{BForm-IL7Rf_27.mjs → BForm-C8I6v7bU.mjs} +2 -2
- package/dist/{BForm-IL7Rf_27.mjs.map → BForm-C8I6v7bU.mjs.map} +1 -1
- package/dist/{BForm-BqHUnHpU.js → BForm-_h0kYDl7.js} +2 -2
- package/dist/{BForm-BqHUnHpU.js.map → BForm-_h0kYDl7.js.map} +1 -1
- package/dist/{BOtpInput-CSCoKHP9.js → BFormOtp-C1YJvwN8.js} +11 -11
- package/dist/BFormOtp-C1YJvwN8.js.map +1 -0
- package/dist/{BOtpInput-Drfkt3x3.mjs → BFormOtp-DYjsPhQN.mjs} +10 -10
- package/dist/BFormOtp-DYjsPhQN.mjs.map +1 -0
- package/dist/{BFormSelect-Dg6OwMl-.mjs → BFormSelect-Bb8yE8vz.mjs} +2 -2
- package/dist/{BFormSelect-Dg6OwMl-.mjs.map → BFormSelect-Bb8yE8vz.mjs.map} +1 -1
- package/dist/{BFormSelect-DqSojuY_.js → BFormSelect-DIKVsG--.js} +2 -2
- package/dist/{BFormSelect-DqSojuY_.js.map → BFormSelect-DIKVsG--.js.map} +1 -1
- package/dist/{BootstrapVueOptions-BU3rzYio.mjs → BootstrapVueOptions-D3flIVqU.mjs} +2 -2
- package/dist/BootstrapVueOptions-D3flIVqU.mjs.map +1 -0
- package/dist/{BootstrapVueOptions-BC3f7hMU.js → BootstrapVueOptions-DbXZtoXX.js} +2 -2
- package/dist/BootstrapVueOptions-DbXZtoXX.js.map +1 -0
- package/dist/bootstrap-vue-next.css +6 -6
- package/dist/bootstrap-vue-next.mjs +6 -6
- package/dist/bootstrap-vue-next.umd.js +6 -6
- package/dist/components/{BOtpInput/BOtpInput.vue.d.mts → BFormOtp/BFormOtp.vue.d.mts} +3 -3
- package/dist/components/{BOtpInput/BOtpInput.vue.d.ts → BFormOtp/BFormOtp.vue.d.ts} +3 -3
- package/dist/components/BFormOtp/index.d.mts +1 -0
- package/dist/components/BFormOtp/index.d.ts +1 -0
- package/dist/components/index.d.mts +1 -1
- package/dist/components/index.d.ts +1 -1
- package/dist/src/components/BAutocomplete/index.mjs +1 -1
- package/dist/src/components/BAutocomplete/index.umd.js +1 -1
- package/dist/src/components/BForm/index.mjs +1 -1
- package/dist/src/components/BForm/index.umd.js +1 -1
- package/dist/src/components/BFormOtp/index.mjs +2 -0
- package/dist/src/components/BFormOtp/index.umd.js +3 -0
- package/dist/src/components/BFormSelect/index.mjs +1 -1
- package/dist/src/components/BFormSelect/index.umd.js +1 -1
- package/dist/src/components/index.mjs +6 -6
- package/dist/src/components/index.mjs.map +1 -1
- package/dist/src/components/index.umd.js +6 -6
- package/dist/src/components/index.umd.js.map +1 -1
- package/dist/src/resolvers/index.mjs +1 -1
- package/dist/src/resolvers/index.umd.js +1 -1
- package/dist/src/types/index.mjs +1 -1
- package/dist/src/types/index.umd.js +1 -1
- package/dist/types/BootstrapVueOptions.d.mts +3 -3
- package/dist/types/BootstrapVueOptions.d.ts +3 -3
- package/dist/types/ComponentProps.d.mts +1 -1
- package/dist/types/ComponentProps.d.ts +1 -1
- package/dist/{useFormSelect-nQbGZSi8.js → useFormSelect-CiIMUolC.js} +3 -3
- package/dist/useFormSelect-CiIMUolC.js.map +1 -0
- package/dist/{useFormSelect-CANw3ZJG.mjs → useFormSelect-D3gVO4jJ.mjs} +3 -3
- package/dist/useFormSelect-D3gVO4jJ.mjs.map +1 -0
- package/package.json +1 -1
- package/src/components/{BOtpInput/_otp-input.scss → BFormOtp/_form-otp.scss} +4 -4
- package/src/styles/styles.scss +1 -1
- package/dist/BOtpInput-CSCoKHP9.js.map +0 -1
- package/dist/BOtpInput-Drfkt3x3.mjs.map +0 -1
- package/dist/BootstrapVueOptions-BC3f7hMU.js.map +0 -1
- package/dist/BootstrapVueOptions-BU3rzYio.mjs.map +0 -1
- package/dist/components/BOtpInput/index.d.mts +0 -1
- package/dist/components/BOtpInput/index.d.ts +0 -1
- package/dist/src/components/BOtpInput/index.mjs +0 -2
- package/dist/src/components/BOtpInput/index.umd.js +0 -3
- package/dist/useFormSelect-CANw3ZJG.mjs.map +0 -1
- package/dist/useFormSelect-nQbGZSi8.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BFormSelect-Dg6OwMl-.mjs","names":["$attrs"],"sources":["../src/components/BFormSelect/BFormSelectOptionGroup.vue","../src/components/BFormSelect/BFormSelectOptionGroup.vue","../src/components/BFormSelect/BFormSelectBase.vue","../src/components/BFormSelect/BFormSelectBase.vue","../src/components/BFormSelect/BFormSelect.vue","../src/components/BFormSelect/BFormSelect.vue"],"sourcesContent":["<template>\n <optgroup :label=\"props.label\">\n <slot name=\"first\" />\n <BFormSelectOption\n v-for=\"(option, index) in normalizedOptions\"\n :key=\"index\"\n v-bind=\"{...$attrs, ...option}\"\n >\n <slot name=\"option\" v-bind=\"option\">\n {{ option.text }}\n </slot>\n </BFormSelectOption>\n <slot />\n </optgroup>\n</template>\n\n<script setup lang=\"ts\" generic=\"T\">\nimport BFormSelectOption from './BFormSelectOption.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BFormSelectOptionGroupProps} from '../../types/ComponentProps'\nimport type {ComputedRef} from 'vue'\nimport {useFormSelect} from '../../composables/useFormSelect'\nimport type {SelectOption} from '../../types/SelectTypes'\nimport type {BFormSelectOptionGroupSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BFormSelectOptionGroupProps>(), {\n disabledField: 'disabled',\n label: undefined,\n options: () => [],\n textField: 'text',\n valueField: 'value',\n})\nconst props = useDefaults(_props, 'BFormSelectOptionGroup')\ndefineSlots<BFormSelectOptionGroupSlots<T>>()\n\n// The form select context is injected by BFormSelectOption components automatically\n// We don't need to handle the selected value here since each BFormSelectOption\n// will inject the context directly\n\n// Type assertion is needed because useFormSelect is not generic-aware.\n// This is acceptable in the wrapper/base pattern where the wrapper (BFormSelect)\n// handles type-safe normalization before passing to base components.\nconst {normalizedOptions} = useFormSelect(() => props.options, props) as {\n normalizedOptions: ComputedRef<SelectOption<T>[]>\n}\n</script>\n","<template>\n <optgroup :label=\"props.label\">\n <slot name=\"first\" />\n <BFormSelectOption\n v-for=\"(option, index) in normalizedOptions\"\n :key=\"index\"\n v-bind=\"{...$attrs, ...option}\"\n >\n <slot name=\"option\" v-bind=\"option\">\n {{ option.text }}\n </slot>\n </BFormSelectOption>\n <slot />\n </optgroup>\n</template>\n\n<script setup lang=\"ts\" generic=\"T\">\nimport BFormSelectOption from './BFormSelectOption.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BFormSelectOptionGroupProps} from '../../types/ComponentProps'\nimport type {ComputedRef} from 'vue'\nimport {useFormSelect} from '../../composables/useFormSelect'\nimport type {SelectOption} from '../../types/SelectTypes'\nimport type {BFormSelectOptionGroupSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BFormSelectOptionGroupProps>(), {\n disabledField: 'disabled',\n label: undefined,\n options: () => [],\n textField: 'text',\n valueField: 'value',\n})\nconst props = useDefaults(_props, 'BFormSelectOptionGroup')\ndefineSlots<BFormSelectOptionGroupSlots<T>>()\n\n// The form select context is injected by BFormSelectOption components automatically\n// We don't need to handle the selected value here since each BFormSelectOption\n// will inject the context directly\n\n// Type assertion is needed because useFormSelect is not generic-aware.\n// This is acceptable in the wrapper/base pattern where the wrapper (BFormSelect)\n// handles type-safe normalization before passing to base components.\nconst {normalizedOptions} = useFormSelect(() => props.options, props) as {\n normalizedOptions: ComputedRef<SelectOption<T>[]>\n}\n</script>\n","<template>\n <select\n :id=\"computedId\"\n ref=\"_input\"\n v-model=\"localValue\"\n :class=\"computedClasses\"\n :name=\"props.name\"\n :form=\"props.form || undefined\"\n :multiple=\"props.multiple || undefined\"\n :size=\"computedSelectSize\"\n :disabled=\"isDisabled\"\n :required=\"props.required || undefined\"\n :aria-required=\"props.required || undefined\"\n :aria-invalid=\"computedAriaInvalid\"\n >\n <slot name=\"first\" />\n <template v-for=\"(option, index) in normalizedOptsWrapper\" :key=\"index\">\n <BFormSelectOptionGroup\n v-if=\"isComplex(option)\"\n :label=\"option.label\"\n :options=\"option.options\"\n :value-field=\"props.valueField\"\n :text-field=\"props.textField\"\n :disabled-field=\"props.disabledField\"\n />\n <BFormSelectOption v-else v-bind=\"option\">\n <slot name=\"option\" v-bind=\"option\">\n {{ option.text }}\n </slot>\n </BFormSelectOption>\n </template>\n <slot />\n </select>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BFormSelectBaseProps} from '../../types/ComponentProps'\nimport {computed, inject, provide, readonly, useTemplateRef} from 'vue'\nimport BFormSelectOption from './BFormSelectOption.vue'\nimport BFormSelectOptionGroup from './BFormSelectOptionGroup.vue'\nimport {useAriaInvalid} from '../../composables/useAriaInvalid'\nimport {useFocus, useToNumber} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport {useStateClass} from '../../composables/useStateClass'\nimport {useFormSelect} from '../../composables/useFormSelect'\nimport {formGroupKey, formSelectKey} from '../../utils/keys'\n\n/**\n * Base component for BFormSelect - non-generic implementation using useDefaults.\n * Renders a select element with normalized options and option groups.\n * Supports both simple options and complex grouped options.\n */\nconst _props = withDefaults(defineProps<Omit<BFormSelectBaseProps, 'modelValue'>>(), {\n ariaInvalid: undefined,\n autofocus: false,\n disabled: false,\n disabledField: 'disabled',\n form: undefined,\n id: undefined,\n labelField: 'label',\n multiple: false,\n name: undefined,\n options: () => [],\n optionsField: 'options',\n plain: false,\n required: false,\n selectSize: 0,\n size: 'md',\n state: null,\n textField: 'text',\n valueField: 'value',\n})\nconst props = useDefaults(_props, 'BFormSelect')\n\nconst modelValue = defineModel<unknown>({\n default: '',\n})\n\nconst computedId = useId(() => props.id, 'input')\n\nconst formGroupData = inject(formGroupKey, null)?.(computedId)\nconst isDisabled = computed(() => props.disabled || (formGroupData?.disabled.value ?? false))\n\nconst selectSizeNumber = useToNumber(() => props.selectSize)\n\nconst stateClass = useStateClass(() => props.state)\n\nconst input = useTemplateRef('_input')\n\nconst {focused} = useFocus(input, {\n initialValue: props.autofocus,\n})\n\nconst computedClasses = computed(() => [\n stateClass.value,\n {\n 'form-control': props.plain,\n [`form-control-${props.size}`]: props.size !== 'md' && props.plain,\n 'form-select': !props.plain,\n [`form-select-${props.size}`]: props.size !== 'md' && !props.plain,\n },\n])\n\nconst computedSelectSize = computed(() =>\n !props.plain && selectSizeNumber.value > 0 ? selectSizeNumber.value : undefined\n)\n\nconst computedAriaInvalid = useAriaInvalid(\n () => props.ariaInvalid,\n () => props.state\n)\n\nconst {normalizedOptions, isComplex} = useFormSelect(() => props.options, props)\n\nconst normalizedOptsWrapper = computed(() => normalizedOptions.value)\n\nconst localValue = computed({\n get: () => modelValue.value,\n set: (newValue) => {\n modelValue.value = newValue\n },\n})\n\n// Provide the current model value for child components to inject\nprovide(formSelectKey, {\n modelValue: readonly(localValue),\n})\n\ndefineExpose({\n blur: () => {\n focused.value = false\n },\n element: input,\n focus: () => {\n focused.value = true\n },\n})\n</script>\n","<template>\n <select\n :id=\"computedId\"\n ref=\"_input\"\n v-model=\"localValue\"\n :class=\"computedClasses\"\n :name=\"props.name\"\n :form=\"props.form || undefined\"\n :multiple=\"props.multiple || undefined\"\n :size=\"computedSelectSize\"\n :disabled=\"isDisabled\"\n :required=\"props.required || undefined\"\n :aria-required=\"props.required || undefined\"\n :aria-invalid=\"computedAriaInvalid\"\n >\n <slot name=\"first\" />\n <template v-for=\"(option, index) in normalizedOptsWrapper\" :key=\"index\">\n <BFormSelectOptionGroup\n v-if=\"isComplex(option)\"\n :label=\"option.label\"\n :options=\"option.options\"\n :value-field=\"props.valueField\"\n :text-field=\"props.textField\"\n :disabled-field=\"props.disabledField\"\n />\n <BFormSelectOption v-else v-bind=\"option\">\n <slot name=\"option\" v-bind=\"option\">\n {{ option.text }}\n </slot>\n </BFormSelectOption>\n </template>\n <slot />\n </select>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BFormSelectBaseProps} from '../../types/ComponentProps'\nimport {computed, inject, provide, readonly, useTemplateRef} from 'vue'\nimport BFormSelectOption from './BFormSelectOption.vue'\nimport BFormSelectOptionGroup from './BFormSelectOptionGroup.vue'\nimport {useAriaInvalid} from '../../composables/useAriaInvalid'\nimport {useFocus, useToNumber} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport {useStateClass} from '../../composables/useStateClass'\nimport {useFormSelect} from '../../composables/useFormSelect'\nimport {formGroupKey, formSelectKey} from '../../utils/keys'\n\n/**\n * Base component for BFormSelect - non-generic implementation using useDefaults.\n * Renders a select element with normalized options and option groups.\n * Supports both simple options and complex grouped options.\n */\nconst _props = withDefaults(defineProps<Omit<BFormSelectBaseProps, 'modelValue'>>(), {\n ariaInvalid: undefined,\n autofocus: false,\n disabled: false,\n disabledField: 'disabled',\n form: undefined,\n id: undefined,\n labelField: 'label',\n multiple: false,\n name: undefined,\n options: () => [],\n optionsField: 'options',\n plain: false,\n required: false,\n selectSize: 0,\n size: 'md',\n state: null,\n textField: 'text',\n valueField: 'value',\n})\nconst props = useDefaults(_props, 'BFormSelect')\n\nconst modelValue = defineModel<unknown>({\n default: '',\n})\n\nconst computedId = useId(() => props.id, 'input')\n\nconst formGroupData = inject(formGroupKey, null)?.(computedId)\nconst isDisabled = computed(() => props.disabled || (formGroupData?.disabled.value ?? false))\n\nconst selectSizeNumber = useToNumber(() => props.selectSize)\n\nconst stateClass = useStateClass(() => props.state)\n\nconst input = useTemplateRef('_input')\n\nconst {focused} = useFocus(input, {\n initialValue: props.autofocus,\n})\n\nconst computedClasses = computed(() => [\n stateClass.value,\n {\n 'form-control': props.plain,\n [`form-control-${props.size}`]: props.size !== 'md' && props.plain,\n 'form-select': !props.plain,\n [`form-select-${props.size}`]: props.size !== 'md' && !props.plain,\n },\n])\n\nconst computedSelectSize = computed(() =>\n !props.plain && selectSizeNumber.value > 0 ? selectSizeNumber.value : undefined\n)\n\nconst computedAriaInvalid = useAriaInvalid(\n () => props.ariaInvalid,\n () => props.state\n)\n\nconst {normalizedOptions, isComplex} = useFormSelect(() => props.options, props)\n\nconst normalizedOptsWrapper = computed(() => normalizedOptions.value)\n\nconst localValue = computed({\n get: () => modelValue.value,\n set: (newValue) => {\n modelValue.value = newValue\n },\n})\n\n// Provide the current model value for child components to inject\nprovide(formSelectKey, {\n modelValue: readonly(localValue),\n})\n\ndefineExpose({\n blur: () => {\n focused.value = false\n },\n element: input,\n focus: () => {\n focused.value = true\n },\n})\n</script>\n","<template>\n <BFormSelectBase v-bind=\"forwardedProps\" v-model=\"modelValue\" :options=\"normalizedOptions as any\">\n <!-- Forward all slots -->\n <template #first>\n <slot name=\"first\" />\n </template>\n\n <template #option=\"slotProps\">\n <slot name=\"option\" v-bind=\"slotProps as any\" />\n </template>\n\n <slot />\n </BFormSelectBase>\n</template>\n\n<script\n setup\n lang=\"ts\"\n generic=\"\n Options extends readonly (object | string | number | boolean)[] = readonly (\n | object\n | string\n | number\n | boolean\n )[]\n \"\n>\nimport type {BFormSelectProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport BFormSelectBase from './BFormSelectBase.vue'\nimport type {ComplexSelectOptionRaw, SelectOption} from '../../types/SelectTypes'\nimport type {BFormSelectSlots} from '../../types'\nimport type {OptionsValues} from '../../types/OptionsTypes'\n\n/**\n * Type-safe wrapper component for BFormSelect.\n * Provides generic type safety for options array and strongly-typed modelValue.\n * Uses Options array generic to extract union of all possible values.\n * Normalizes typed options and forwards to BFormSelectBase for rendering.\n * Supports both complex objects and simple scalar types (string, number).\n *\n * For strongly-typed modelValue:\n * - Primitive arrays: modelValue is union of those values (or array if multiple)\n * - Object arrays with 'value' field: modelValue is union of value field types\n * - Use 'as const' on options for literal type inference\n */\nconst props = withDefaults(defineProps<Omit<BFormSelectProps<Options>, 'modelValue'>>(), {\n ariaInvalid: undefined,\n autofocus: false,\n disabled: false,\n disabledField: 'disabled',\n form: undefined,\n id: undefined,\n labelField: 'label',\n multiple: false,\n name: undefined,\n options: () => [] as unknown as Options,\n optionsField: 'options',\n plain: false,\n required: false,\n selectSize: 0,\n size: 'md',\n state: null,\n textField: 'text',\n valueField: 'value',\n})\ndefineSlots<BFormSelectSlots<OptionsValues<Options>>>()\n\n// Type-safe model value - single value or array depending on multiple prop.\n// NOTE: OptionsValues assumes a static \"value\" key; custom valueField is not\n// reflected in the type — modelValue falls back to unknown in that case.\nconst modelValue = defineModel<OptionsValues<Options> | OptionsValues<Options>[] | null>({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default: '' as any,\n})\n\n// Normalize a single simple option using custom field names\nconst normalizeSimpleOption = (el: object): SelectOption =>\n ({\n ...(el as Record<string, unknown>),\n value: (el as Record<string, unknown>)[props.valueField as string],\n text: ((el as Record<string, unknown>)[props.textField as string] as string | undefined) ?? '',\n disabled:\n ((el as Record<string, unknown>)[props.disabledField as string] as boolean | undefined) ??\n false,\n }) as SelectOption\n\nconst normalizePrimitive = (el: string | number | boolean): SelectOption =>\n ({value: el, text: String(el), disabled: false}) as SelectOption\n\n// Type-safe normalization of options (supports both simple and complex/grouped)\nconst normalizedOptions = computed(() => {\n const optionsArray = props.options ?? []\n const hasComplexOptions = optionsArray.some(\n (el) =>\n typeof el !== 'string' &&\n typeof el !== 'number' &&\n typeof el !== 'boolean' &&\n (el as Record<string, unknown>)[props.optionsField as string] !== undefined\n )\n\n if (hasComplexOptions) {\n return optionsArray.map((el) => {\n if (typeof el === 'string' || typeof el === 'number' || typeof el === 'boolean') {\n return normalizePrimitive(el)\n }\n\n // Check if this is a complex (grouped) option\n const optionsField = (el as Record<string, unknown>)[props.optionsField as string]\n if (optionsField !== undefined && Array.isArray(optionsField)) {\n // Complex option with nested options\n const label =\n ((el as Record<string, unknown>)[props.labelField as string] as string | undefined) ??\n ((el as Record<string, unknown>)[props.textField as string] as string | undefined) ??\n ''\n return {\n label,\n options: optionsField.map((subOpt: unknown) => {\n if (\n typeof subOpt === 'string' ||\n typeof subOpt === 'number' ||\n typeof subOpt === 'boolean'\n ) {\n return normalizePrimitive(subOpt)\n }\n return normalizeSimpleOption(subOpt as object)\n }),\n } as ComplexSelectOptionRaw\n }\n\n // Simple option - spread all properties from the original object to preserve class, data-*, etc.\n return normalizeSimpleOption(el as object)\n })\n }\n\n return optionsArray.map((el) => {\n if (typeof el === 'string' || typeof el === 'number' || typeof el === 'boolean') {\n return normalizePrimitive(el)\n }\n // Spread all properties from the original object to preserve class, data-*, etc.\n return normalizeSimpleOption(el as object)\n })\n})\n\n// Forward all props except options (which we normalize), modelValue (handled separately),\n// and field mappings (already used for normalization)\nconst forwardedProps = computed(() => ({\n ariaInvalid: props.ariaInvalid,\n autofocus: props.autofocus,\n disabled: props.disabled,\n form: props.form,\n id: props.id,\n multiple: props.multiple,\n name: props.name,\n plain: props.plain,\n required: props.required,\n selectSize: props.selectSize,\n size: props.size,\n state: props.state,\n}))\n</script>\n","<template>\n <BFormSelectBase v-bind=\"forwardedProps\" v-model=\"modelValue\" :options=\"normalizedOptions as any\">\n <!-- Forward all slots -->\n <template #first>\n <slot name=\"first\" />\n </template>\n\n <template #option=\"slotProps\">\n <slot name=\"option\" v-bind=\"slotProps as any\" />\n </template>\n\n <slot />\n </BFormSelectBase>\n</template>\n\n<script\n setup\n lang=\"ts\"\n generic=\"\n Options extends readonly (object | string | number | boolean)[] = readonly (\n | object\n | string\n | number\n | boolean\n )[]\n \"\n>\nimport type {BFormSelectProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport BFormSelectBase from './BFormSelectBase.vue'\nimport type {ComplexSelectOptionRaw, SelectOption} from '../../types/SelectTypes'\nimport type {BFormSelectSlots} from '../../types'\nimport type {OptionsValues} from '../../types/OptionsTypes'\n\n/**\n * Type-safe wrapper component for BFormSelect.\n * Provides generic type safety for options array and strongly-typed modelValue.\n * Uses Options array generic to extract union of all possible values.\n * Normalizes typed options and forwards to BFormSelectBase for rendering.\n * Supports both complex objects and simple scalar types (string, number).\n *\n * For strongly-typed modelValue:\n * - Primitive arrays: modelValue is union of those values (or array if multiple)\n * - Object arrays with 'value' field: modelValue is union of value field types\n * - Use 'as const' on options for literal type inference\n */\nconst props = withDefaults(defineProps<Omit<BFormSelectProps<Options>, 'modelValue'>>(), {\n ariaInvalid: undefined,\n autofocus: false,\n disabled: false,\n disabledField: 'disabled',\n form: undefined,\n id: undefined,\n labelField: 'label',\n multiple: false,\n name: undefined,\n options: () => [] as unknown as Options,\n optionsField: 'options',\n plain: false,\n required: false,\n selectSize: 0,\n size: 'md',\n state: null,\n textField: 'text',\n valueField: 'value',\n})\ndefineSlots<BFormSelectSlots<OptionsValues<Options>>>()\n\n// Type-safe model value - single value or array depending on multiple prop.\n// NOTE: OptionsValues assumes a static \"value\" key; custom valueField is not\n// reflected in the type — modelValue falls back to unknown in that case.\nconst modelValue = defineModel<OptionsValues<Options> | OptionsValues<Options>[] | null>({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default: '' as any,\n})\n\n// Normalize a single simple option using custom field names\nconst normalizeSimpleOption = (el: object): SelectOption =>\n ({\n ...(el as Record<string, unknown>),\n value: (el as Record<string, unknown>)[props.valueField as string],\n text: ((el as Record<string, unknown>)[props.textField as string] as string | undefined) ?? '',\n disabled:\n ((el as Record<string, unknown>)[props.disabledField as string] as boolean | undefined) ??\n false,\n }) as SelectOption\n\nconst normalizePrimitive = (el: string | number | boolean): SelectOption =>\n ({value: el, text: String(el), disabled: false}) as SelectOption\n\n// Type-safe normalization of options (supports both simple and complex/grouped)\nconst normalizedOptions = computed(() => {\n const optionsArray = props.options ?? []\n const hasComplexOptions = optionsArray.some(\n (el) =>\n typeof el !== 'string' &&\n typeof el !== 'number' &&\n typeof el !== 'boolean' &&\n (el as Record<string, unknown>)[props.optionsField as string] !== undefined\n )\n\n if (hasComplexOptions) {\n return optionsArray.map((el) => {\n if (typeof el === 'string' || typeof el === 'number' || typeof el === 'boolean') {\n return normalizePrimitive(el)\n }\n\n // Check if this is a complex (grouped) option\n const optionsField = (el as Record<string, unknown>)[props.optionsField as string]\n if (optionsField !== undefined && Array.isArray(optionsField)) {\n // Complex option with nested options\n const label =\n ((el as Record<string, unknown>)[props.labelField as string] as string | undefined) ??\n ((el as Record<string, unknown>)[props.textField as string] as string | undefined) ??\n ''\n return {\n label,\n options: optionsField.map((subOpt: unknown) => {\n if (\n typeof subOpt === 'string' ||\n typeof subOpt === 'number' ||\n typeof subOpt === 'boolean'\n ) {\n return normalizePrimitive(subOpt)\n }\n return normalizeSimpleOption(subOpt as object)\n }),\n } as ComplexSelectOptionRaw\n }\n\n // Simple option - spread all properties from the original object to preserve class, data-*, etc.\n return normalizeSimpleOption(el as object)\n })\n }\n\n return optionsArray.map((el) => {\n if (typeof el === 'string' || typeof el === 'number' || typeof el === 'boolean') {\n return normalizePrimitive(el)\n }\n // Spread all properties from the original object to preserve class, data-*, etc.\n return normalizeSimpleOption(el as object)\n })\n})\n\n// Forward all props except options (which we normalize), modelValue (handled separately),\n// and field mappings (already used for normalization)\nconst forwardedProps = computed(() => ({\n ariaInvalid: props.ariaInvalid,\n autofocus: props.autofocus,\n disabled: props.disabled,\n form: props.form,\n id: props.id,\n multiple: props.multiple,\n name: props.name,\n plain: props.plain,\n required: props.required,\n selectSize: props.selectSize,\n size: props.size,\n state: props.state,\n}))\n</script>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BFormSelect-Bb8yE8vz.mjs","names":["$attrs"],"sources":["../src/components/BFormSelect/BFormSelectOptionGroup.vue","../src/components/BFormSelect/BFormSelectOptionGroup.vue","../src/components/BFormSelect/BFormSelectBase.vue","../src/components/BFormSelect/BFormSelectBase.vue","../src/components/BFormSelect/BFormSelect.vue","../src/components/BFormSelect/BFormSelect.vue"],"sourcesContent":["<template>\n <optgroup :label=\"props.label\">\n <slot name=\"first\" />\n <BFormSelectOption\n v-for=\"(option, index) in normalizedOptions\"\n :key=\"index\"\n v-bind=\"{...$attrs, ...option}\"\n >\n <slot name=\"option\" v-bind=\"option\">\n {{ option.text }}\n </slot>\n </BFormSelectOption>\n <slot />\n </optgroup>\n</template>\n\n<script setup lang=\"ts\" generic=\"T\">\nimport BFormSelectOption from './BFormSelectOption.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BFormSelectOptionGroupProps} from '../../types/ComponentProps'\nimport type {ComputedRef} from 'vue'\nimport {useFormSelect} from '../../composables/useFormSelect'\nimport type {SelectOption} from '../../types/SelectTypes'\nimport type {BFormSelectOptionGroupSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BFormSelectOptionGroupProps>(), {\n disabledField: 'disabled',\n label: undefined,\n options: () => [],\n textField: 'text',\n valueField: 'value',\n})\nconst props = useDefaults(_props, 'BFormSelectOptionGroup')\ndefineSlots<BFormSelectOptionGroupSlots<T>>()\n\n// The form select context is injected by BFormSelectOption components automatically\n// We don't need to handle the selected value here since each BFormSelectOption\n// will inject the context directly\n\n// Type assertion is needed because useFormSelect is not generic-aware.\n// This is acceptable in the wrapper/base pattern where the wrapper (BFormSelect)\n// handles type-safe normalization before passing to base components.\nconst {normalizedOptions} = useFormSelect(() => props.options, props) as {\n normalizedOptions: ComputedRef<SelectOption<T>[]>\n}\n</script>\n","<template>\n <optgroup :label=\"props.label\">\n <slot name=\"first\" />\n <BFormSelectOption\n v-for=\"(option, index) in normalizedOptions\"\n :key=\"index\"\n v-bind=\"{...$attrs, ...option}\"\n >\n <slot name=\"option\" v-bind=\"option\">\n {{ option.text }}\n </slot>\n </BFormSelectOption>\n <slot />\n </optgroup>\n</template>\n\n<script setup lang=\"ts\" generic=\"T\">\nimport BFormSelectOption from './BFormSelectOption.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BFormSelectOptionGroupProps} from '../../types/ComponentProps'\nimport type {ComputedRef} from 'vue'\nimport {useFormSelect} from '../../composables/useFormSelect'\nimport type {SelectOption} from '../../types/SelectTypes'\nimport type {BFormSelectOptionGroupSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BFormSelectOptionGroupProps>(), {\n disabledField: 'disabled',\n label: undefined,\n options: () => [],\n textField: 'text',\n valueField: 'value',\n})\nconst props = useDefaults(_props, 'BFormSelectOptionGroup')\ndefineSlots<BFormSelectOptionGroupSlots<T>>()\n\n// The form select context is injected by BFormSelectOption components automatically\n// We don't need to handle the selected value here since each BFormSelectOption\n// will inject the context directly\n\n// Type assertion is needed because useFormSelect is not generic-aware.\n// This is acceptable in the wrapper/base pattern where the wrapper (BFormSelect)\n// handles type-safe normalization before passing to base components.\nconst {normalizedOptions} = useFormSelect(() => props.options, props) as {\n normalizedOptions: ComputedRef<SelectOption<T>[]>\n}\n</script>\n","<template>\n <select\n :id=\"computedId\"\n ref=\"_input\"\n v-model=\"localValue\"\n :class=\"computedClasses\"\n :name=\"props.name\"\n :form=\"props.form || undefined\"\n :multiple=\"props.multiple || undefined\"\n :size=\"computedSelectSize\"\n :disabled=\"isDisabled\"\n :required=\"props.required || undefined\"\n :aria-required=\"props.required || undefined\"\n :aria-invalid=\"computedAriaInvalid\"\n >\n <slot name=\"first\" />\n <template v-for=\"(option, index) in normalizedOptsWrapper\" :key=\"index\">\n <BFormSelectOptionGroup\n v-if=\"isComplex(option)\"\n :label=\"option.label\"\n :options=\"option.options\"\n :value-field=\"props.valueField\"\n :text-field=\"props.textField\"\n :disabled-field=\"props.disabledField\"\n />\n <BFormSelectOption v-else v-bind=\"option\">\n <slot name=\"option\" v-bind=\"option\">\n {{ option.text }}\n </slot>\n </BFormSelectOption>\n </template>\n <slot />\n </select>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BFormSelectBaseProps} from '../../types/ComponentProps'\nimport {computed, inject, provide, readonly, useTemplateRef} from 'vue'\nimport BFormSelectOption from './BFormSelectOption.vue'\nimport BFormSelectOptionGroup from './BFormSelectOptionGroup.vue'\nimport {useAriaInvalid} from '../../composables/useAriaInvalid'\nimport {useFocus, useToNumber} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport {useStateClass} from '../../composables/useStateClass'\nimport {useFormSelect} from '../../composables/useFormSelect'\nimport {formGroupKey, formSelectKey} from '../../utils/keys'\n\n/**\n * Base component for BFormSelect - non-generic implementation using useDefaults.\n * Renders a select element with normalized options and option groups.\n * Supports both simple options and complex grouped options.\n */\nconst _props = withDefaults(defineProps<Omit<BFormSelectBaseProps, 'modelValue'>>(), {\n ariaInvalid: undefined,\n autofocus: false,\n disabled: false,\n disabledField: 'disabled',\n form: undefined,\n id: undefined,\n labelField: 'label',\n multiple: false,\n name: undefined,\n options: () => [],\n optionsField: 'options',\n plain: false,\n required: false,\n selectSize: 0,\n size: 'md',\n state: null,\n textField: 'text',\n valueField: 'value',\n})\nconst props = useDefaults(_props, 'BFormSelect')\n\nconst modelValue = defineModel<unknown>({\n default: '',\n})\n\nconst computedId = useId(() => props.id, 'input')\n\nconst formGroupData = inject(formGroupKey, null)?.(computedId)\nconst isDisabled = computed(() => props.disabled || (formGroupData?.disabled.value ?? false))\n\nconst selectSizeNumber = useToNumber(() => props.selectSize)\n\nconst stateClass = useStateClass(() => props.state)\n\nconst input = useTemplateRef('_input')\n\nconst {focused} = useFocus(input, {\n initialValue: props.autofocus,\n})\n\nconst computedClasses = computed(() => [\n stateClass.value,\n {\n 'form-control': props.plain,\n [`form-control-${props.size}`]: props.size !== 'md' && props.plain,\n 'form-select': !props.plain,\n [`form-select-${props.size}`]: props.size !== 'md' && !props.plain,\n },\n])\n\nconst computedSelectSize = computed(() =>\n !props.plain && selectSizeNumber.value > 0 ? selectSizeNumber.value : undefined\n)\n\nconst computedAriaInvalid = useAriaInvalid(\n () => props.ariaInvalid,\n () => props.state\n)\n\nconst {normalizedOptions, isComplex} = useFormSelect(() => props.options, props)\n\nconst normalizedOptsWrapper = computed(() => normalizedOptions.value)\n\nconst localValue = computed({\n get: () => modelValue.value,\n set: (newValue) => {\n modelValue.value = newValue\n },\n})\n\n// Provide the current model value for child components to inject\nprovide(formSelectKey, {\n modelValue: readonly(localValue),\n})\n\ndefineExpose({\n blur: () => {\n focused.value = false\n },\n element: input,\n focus: () => {\n focused.value = true\n },\n})\n</script>\n","<template>\n <select\n :id=\"computedId\"\n ref=\"_input\"\n v-model=\"localValue\"\n :class=\"computedClasses\"\n :name=\"props.name\"\n :form=\"props.form || undefined\"\n :multiple=\"props.multiple || undefined\"\n :size=\"computedSelectSize\"\n :disabled=\"isDisabled\"\n :required=\"props.required || undefined\"\n :aria-required=\"props.required || undefined\"\n :aria-invalid=\"computedAriaInvalid\"\n >\n <slot name=\"first\" />\n <template v-for=\"(option, index) in normalizedOptsWrapper\" :key=\"index\">\n <BFormSelectOptionGroup\n v-if=\"isComplex(option)\"\n :label=\"option.label\"\n :options=\"option.options\"\n :value-field=\"props.valueField\"\n :text-field=\"props.textField\"\n :disabled-field=\"props.disabledField\"\n />\n <BFormSelectOption v-else v-bind=\"option\">\n <slot name=\"option\" v-bind=\"option\">\n {{ option.text }}\n </slot>\n </BFormSelectOption>\n </template>\n <slot />\n </select>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BFormSelectBaseProps} from '../../types/ComponentProps'\nimport {computed, inject, provide, readonly, useTemplateRef} from 'vue'\nimport BFormSelectOption from './BFormSelectOption.vue'\nimport BFormSelectOptionGroup from './BFormSelectOptionGroup.vue'\nimport {useAriaInvalid} from '../../composables/useAriaInvalid'\nimport {useFocus, useToNumber} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport {useStateClass} from '../../composables/useStateClass'\nimport {useFormSelect} from '../../composables/useFormSelect'\nimport {formGroupKey, formSelectKey} from '../../utils/keys'\n\n/**\n * Base component for BFormSelect - non-generic implementation using useDefaults.\n * Renders a select element with normalized options and option groups.\n * Supports both simple options and complex grouped options.\n */\nconst _props = withDefaults(defineProps<Omit<BFormSelectBaseProps, 'modelValue'>>(), {\n ariaInvalid: undefined,\n autofocus: false,\n disabled: false,\n disabledField: 'disabled',\n form: undefined,\n id: undefined,\n labelField: 'label',\n multiple: false,\n name: undefined,\n options: () => [],\n optionsField: 'options',\n plain: false,\n required: false,\n selectSize: 0,\n size: 'md',\n state: null,\n textField: 'text',\n valueField: 'value',\n})\nconst props = useDefaults(_props, 'BFormSelect')\n\nconst modelValue = defineModel<unknown>({\n default: '',\n})\n\nconst computedId = useId(() => props.id, 'input')\n\nconst formGroupData = inject(formGroupKey, null)?.(computedId)\nconst isDisabled = computed(() => props.disabled || (formGroupData?.disabled.value ?? false))\n\nconst selectSizeNumber = useToNumber(() => props.selectSize)\n\nconst stateClass = useStateClass(() => props.state)\n\nconst input = useTemplateRef('_input')\n\nconst {focused} = useFocus(input, {\n initialValue: props.autofocus,\n})\n\nconst computedClasses = computed(() => [\n stateClass.value,\n {\n 'form-control': props.plain,\n [`form-control-${props.size}`]: props.size !== 'md' && props.plain,\n 'form-select': !props.plain,\n [`form-select-${props.size}`]: props.size !== 'md' && !props.plain,\n },\n])\n\nconst computedSelectSize = computed(() =>\n !props.plain && selectSizeNumber.value > 0 ? selectSizeNumber.value : undefined\n)\n\nconst computedAriaInvalid = useAriaInvalid(\n () => props.ariaInvalid,\n () => props.state\n)\n\nconst {normalizedOptions, isComplex} = useFormSelect(() => props.options, props)\n\nconst normalizedOptsWrapper = computed(() => normalizedOptions.value)\n\nconst localValue = computed({\n get: () => modelValue.value,\n set: (newValue) => {\n modelValue.value = newValue\n },\n})\n\n// Provide the current model value for child components to inject\nprovide(formSelectKey, {\n modelValue: readonly(localValue),\n})\n\ndefineExpose({\n blur: () => {\n focused.value = false\n },\n element: input,\n focus: () => {\n focused.value = true\n },\n})\n</script>\n","<template>\n <BFormSelectBase v-bind=\"forwardedProps\" v-model=\"modelValue\" :options=\"normalizedOptions as any\">\n <!-- Forward all slots -->\n <template #first>\n <slot name=\"first\" />\n </template>\n\n <template #option=\"slotProps\">\n <slot name=\"option\" v-bind=\"slotProps as any\" />\n </template>\n\n <slot />\n </BFormSelectBase>\n</template>\n\n<script\n setup\n lang=\"ts\"\n generic=\"\n Options extends readonly (object | string | number | boolean)[] = readonly (\n | object\n | string\n | number\n | boolean\n )[]\n \"\n>\nimport type {BFormSelectProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport BFormSelectBase from './BFormSelectBase.vue'\nimport type {ComplexSelectOptionRaw, SelectOption} from '../../types/SelectTypes'\nimport type {BFormSelectSlots} from '../../types'\nimport type {OptionsValues} from '../../types/OptionsTypes'\n\n/**\n * Type-safe wrapper component for BFormSelect.\n * Provides generic type safety for options array and strongly-typed modelValue.\n * Uses Options array generic to extract union of all possible values.\n * Normalizes typed options and forwards to BFormSelectBase for rendering.\n * Supports both complex objects and simple scalar types (string, number).\n *\n * For strongly-typed modelValue:\n * - Primitive arrays: modelValue is union of those values (or array if multiple)\n * - Object arrays with 'value' field: modelValue is union of value field types\n * - Use 'as const' on options for literal type inference\n */\nconst props = withDefaults(defineProps<Omit<BFormSelectProps<Options>, 'modelValue'>>(), {\n ariaInvalid: undefined,\n autofocus: false,\n disabled: false,\n disabledField: 'disabled',\n form: undefined,\n id: undefined,\n labelField: 'label',\n multiple: false,\n name: undefined,\n options: () => [] as unknown as Options,\n optionsField: 'options',\n plain: false,\n required: false,\n selectSize: 0,\n size: 'md',\n state: null,\n textField: 'text',\n valueField: 'value',\n})\ndefineSlots<BFormSelectSlots<OptionsValues<Options>>>()\n\n// Type-safe model value - single value or array depending on multiple prop.\n// NOTE: OptionsValues assumes a static \"value\" key; custom valueField is not\n// reflected in the type — modelValue falls back to unknown in that case.\nconst modelValue = defineModel<OptionsValues<Options> | OptionsValues<Options>[] | null>({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default: '' as any,\n})\n\n// Normalize a single simple option using custom field names\nconst normalizeSimpleOption = (el: object): SelectOption =>\n ({\n ...(el as Record<string, unknown>),\n value: (el as Record<string, unknown>)[props.valueField as string],\n text: ((el as Record<string, unknown>)[props.textField as string] as string | undefined) ?? '',\n disabled:\n ((el as Record<string, unknown>)[props.disabledField as string] as boolean | undefined) ??\n false,\n }) as SelectOption\n\nconst normalizePrimitive = (el: string | number | boolean): SelectOption =>\n ({value: el, text: String(el), disabled: false}) as SelectOption\n\n// Type-safe normalization of options (supports both simple and complex/grouped)\nconst normalizedOptions = computed(() => {\n const optionsArray = props.options ?? []\n const hasComplexOptions = optionsArray.some(\n (el) =>\n typeof el !== 'string' &&\n typeof el !== 'number' &&\n typeof el !== 'boolean' &&\n (el as Record<string, unknown>)[props.optionsField as string] !== undefined\n )\n\n if (hasComplexOptions) {\n return optionsArray.map((el) => {\n if (typeof el === 'string' || typeof el === 'number' || typeof el === 'boolean') {\n return normalizePrimitive(el)\n }\n\n // Check if this is a complex (grouped) option\n const optionsField = (el as Record<string, unknown>)[props.optionsField as string]\n if (optionsField !== undefined && Array.isArray(optionsField)) {\n // Complex option with nested options\n const label =\n ((el as Record<string, unknown>)[props.labelField as string] as string | undefined) ??\n ((el as Record<string, unknown>)[props.textField as string] as string | undefined) ??\n ''\n return {\n label,\n options: optionsField.map((subOpt: unknown) => {\n if (\n typeof subOpt === 'string' ||\n typeof subOpt === 'number' ||\n typeof subOpt === 'boolean'\n ) {\n return normalizePrimitive(subOpt)\n }\n return normalizeSimpleOption(subOpt as object)\n }),\n } as ComplexSelectOptionRaw\n }\n\n // Simple option - spread all properties from the original object to preserve class, data-*, etc.\n return normalizeSimpleOption(el as object)\n })\n }\n\n return optionsArray.map((el) => {\n if (typeof el === 'string' || typeof el === 'number' || typeof el === 'boolean') {\n return normalizePrimitive(el)\n }\n // Spread all properties from the original object to preserve class, data-*, etc.\n return normalizeSimpleOption(el as object)\n })\n})\n\n// Forward all props except options (which we normalize), modelValue (handled separately),\n// and field mappings (already used for normalization)\nconst forwardedProps = computed(() => ({\n ariaInvalid: props.ariaInvalid,\n autofocus: props.autofocus,\n disabled: props.disabled,\n form: props.form,\n id: props.id,\n multiple: props.multiple,\n name: props.name,\n plain: props.plain,\n required: props.required,\n selectSize: props.selectSize,\n size: props.size,\n state: props.state,\n}))\n</script>\n","<template>\n <BFormSelectBase v-bind=\"forwardedProps\" v-model=\"modelValue\" :options=\"normalizedOptions as any\">\n <!-- Forward all slots -->\n <template #first>\n <slot name=\"first\" />\n </template>\n\n <template #option=\"slotProps\">\n <slot name=\"option\" v-bind=\"slotProps as any\" />\n </template>\n\n <slot />\n </BFormSelectBase>\n</template>\n\n<script\n setup\n lang=\"ts\"\n generic=\"\n Options extends readonly (object | string | number | boolean)[] = readonly (\n | object\n | string\n | number\n | boolean\n )[]\n \"\n>\nimport type {BFormSelectProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport BFormSelectBase from './BFormSelectBase.vue'\nimport type {ComplexSelectOptionRaw, SelectOption} from '../../types/SelectTypes'\nimport type {BFormSelectSlots} from '../../types'\nimport type {OptionsValues} from '../../types/OptionsTypes'\n\n/**\n * Type-safe wrapper component for BFormSelect.\n * Provides generic type safety for options array and strongly-typed modelValue.\n * Uses Options array generic to extract union of all possible values.\n * Normalizes typed options and forwards to BFormSelectBase for rendering.\n * Supports both complex objects and simple scalar types (string, number).\n *\n * For strongly-typed modelValue:\n * - Primitive arrays: modelValue is union of those values (or array if multiple)\n * - Object arrays with 'value' field: modelValue is union of value field types\n * - Use 'as const' on options for literal type inference\n */\nconst props = withDefaults(defineProps<Omit<BFormSelectProps<Options>, 'modelValue'>>(), {\n ariaInvalid: undefined,\n autofocus: false,\n disabled: false,\n disabledField: 'disabled',\n form: undefined,\n id: undefined,\n labelField: 'label',\n multiple: false,\n name: undefined,\n options: () => [] as unknown as Options,\n optionsField: 'options',\n plain: false,\n required: false,\n selectSize: 0,\n size: 'md',\n state: null,\n textField: 'text',\n valueField: 'value',\n})\ndefineSlots<BFormSelectSlots<OptionsValues<Options>>>()\n\n// Type-safe model value - single value or array depending on multiple prop.\n// NOTE: OptionsValues assumes a static \"value\" key; custom valueField is not\n// reflected in the type — modelValue falls back to unknown in that case.\nconst modelValue = defineModel<OptionsValues<Options> | OptionsValues<Options>[] | null>({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default: '' as any,\n})\n\n// Normalize a single simple option using custom field names\nconst normalizeSimpleOption = (el: object): SelectOption =>\n ({\n ...(el as Record<string, unknown>),\n value: (el as Record<string, unknown>)[props.valueField as string],\n text: ((el as Record<string, unknown>)[props.textField as string] as string | undefined) ?? '',\n disabled:\n ((el as Record<string, unknown>)[props.disabledField as string] as boolean | undefined) ??\n false,\n }) as SelectOption\n\nconst normalizePrimitive = (el: string | number | boolean): SelectOption =>\n ({value: el, text: String(el), disabled: false}) as SelectOption\n\n// Type-safe normalization of options (supports both simple and complex/grouped)\nconst normalizedOptions = computed(() => {\n const optionsArray = props.options ?? []\n const hasComplexOptions = optionsArray.some(\n (el) =>\n typeof el !== 'string' &&\n typeof el !== 'number' &&\n typeof el !== 'boolean' &&\n (el as Record<string, unknown>)[props.optionsField as string] !== undefined\n )\n\n if (hasComplexOptions) {\n return optionsArray.map((el) => {\n if (typeof el === 'string' || typeof el === 'number' || typeof el === 'boolean') {\n return normalizePrimitive(el)\n }\n\n // Check if this is a complex (grouped) option\n const optionsField = (el as Record<string, unknown>)[props.optionsField as string]\n if (optionsField !== undefined && Array.isArray(optionsField)) {\n // Complex option with nested options\n const label =\n ((el as Record<string, unknown>)[props.labelField as string] as string | undefined) ??\n ((el as Record<string, unknown>)[props.textField as string] as string | undefined) ??\n ''\n return {\n label,\n options: optionsField.map((subOpt: unknown) => {\n if (\n typeof subOpt === 'string' ||\n typeof subOpt === 'number' ||\n typeof subOpt === 'boolean'\n ) {\n return normalizePrimitive(subOpt)\n }\n return normalizeSimpleOption(subOpt as object)\n }),\n } as ComplexSelectOptionRaw\n }\n\n // Simple option - spread all properties from the original object to preserve class, data-*, etc.\n return normalizeSimpleOption(el as object)\n })\n }\n\n return optionsArray.map((el) => {\n if (typeof el === 'string' || typeof el === 'number' || typeof el === 'boolean') {\n return normalizePrimitive(el)\n }\n // Spread all properties from the original object to preserve class, data-*, etc.\n return normalizeSimpleOption(el as object)\n })\n})\n\n// Forward all props except options (which we normalize), modelValue (handled separately),\n// and field mappings (already used for normalization)\nconst forwardedProps = computed(() => ({\n ariaInvalid: props.ariaInvalid,\n autofocus: props.autofocus,\n disabled: props.disabled,\n form: props.form,\n id: props.id,\n multiple: props.multiple,\n name: props.name,\n plain: props.plain,\n required: props.required,\n selectSize: props.selectSize,\n size: props.size,\n state: props.state,\n}))\n</script>\n"],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ const require_useDefaults = require("./useDefaults-DsLf4iRY.js");
|
|
|
5
5
|
const require_useId = require("./useId-DHrBgM7P.js");
|
|
6
6
|
const require_useStateClass = require("./useStateClass-CJ24hpkn.js");
|
|
7
7
|
const require_useAriaInvalid = require("./useAriaInvalid-CHHPHNLU.js");
|
|
8
|
-
const require_useFormSelect = require("./useFormSelect-
|
|
8
|
+
const require_useFormSelect = require("./useFormSelect-CiIMUolC.js");
|
|
9
9
|
const require_BFormSelectOption = require("./BFormSelectOption-BY4P8HOf.js");
|
|
10
10
|
let vue = require("vue");
|
|
11
11
|
//#region src/components/BFormSelect/BFormSelectOptionGroup.vue?vue&type=script&setup=true&lang.ts
|
|
@@ -306,4 +306,4 @@ Object.defineProperty(exports, "BFormSelect_default", {
|
|
|
306
306
|
}
|
|
307
307
|
});
|
|
308
308
|
|
|
309
|
-
//# sourceMappingURL=BFormSelect-
|
|
309
|
+
//# sourceMappingURL=BFormSelect-DIKVsG--.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BFormSelect-DqSojuY_.js","names":["$attrs"],"sources":["../src/components/BFormSelect/BFormSelectOptionGroup.vue","../src/components/BFormSelect/BFormSelectOptionGroup.vue","../src/components/BFormSelect/BFormSelectBase.vue","../src/components/BFormSelect/BFormSelectBase.vue","../src/components/BFormSelect/BFormSelect.vue","../src/components/BFormSelect/BFormSelect.vue"],"sourcesContent":["<template>\n <optgroup :label=\"props.label\">\n <slot name=\"first\" />\n <BFormSelectOption\n v-for=\"(option, index) in normalizedOptions\"\n :key=\"index\"\n v-bind=\"{...$attrs, ...option}\"\n >\n <slot name=\"option\" v-bind=\"option\">\n {{ option.text }}\n </slot>\n </BFormSelectOption>\n <slot />\n </optgroup>\n</template>\n\n<script setup lang=\"ts\" generic=\"T\">\nimport BFormSelectOption from './BFormSelectOption.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BFormSelectOptionGroupProps} from '../../types/ComponentProps'\nimport type {ComputedRef} from 'vue'\nimport {useFormSelect} from '../../composables/useFormSelect'\nimport type {SelectOption} from '../../types/SelectTypes'\nimport type {BFormSelectOptionGroupSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BFormSelectOptionGroupProps>(), {\n disabledField: 'disabled',\n label: undefined,\n options: () => [],\n textField: 'text',\n valueField: 'value',\n})\nconst props = useDefaults(_props, 'BFormSelectOptionGroup')\ndefineSlots<BFormSelectOptionGroupSlots<T>>()\n\n// The form select context is injected by BFormSelectOption components automatically\n// We don't need to handle the selected value here since each BFormSelectOption\n// will inject the context directly\n\n// Type assertion is needed because useFormSelect is not generic-aware.\n// This is acceptable in the wrapper/base pattern where the wrapper (BFormSelect)\n// handles type-safe normalization before passing to base components.\nconst {normalizedOptions} = useFormSelect(() => props.options, props) as {\n normalizedOptions: ComputedRef<SelectOption<T>[]>\n}\n</script>\n","<template>\n <optgroup :label=\"props.label\">\n <slot name=\"first\" />\n <BFormSelectOption\n v-for=\"(option, index) in normalizedOptions\"\n :key=\"index\"\n v-bind=\"{...$attrs, ...option}\"\n >\n <slot name=\"option\" v-bind=\"option\">\n {{ option.text }}\n </slot>\n </BFormSelectOption>\n <slot />\n </optgroup>\n</template>\n\n<script setup lang=\"ts\" generic=\"T\">\nimport BFormSelectOption from './BFormSelectOption.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BFormSelectOptionGroupProps} from '../../types/ComponentProps'\nimport type {ComputedRef} from 'vue'\nimport {useFormSelect} from '../../composables/useFormSelect'\nimport type {SelectOption} from '../../types/SelectTypes'\nimport type {BFormSelectOptionGroupSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BFormSelectOptionGroupProps>(), {\n disabledField: 'disabled',\n label: undefined,\n options: () => [],\n textField: 'text',\n valueField: 'value',\n})\nconst props = useDefaults(_props, 'BFormSelectOptionGroup')\ndefineSlots<BFormSelectOptionGroupSlots<T>>()\n\n// The form select context is injected by BFormSelectOption components automatically\n// We don't need to handle the selected value here since each BFormSelectOption\n// will inject the context directly\n\n// Type assertion is needed because useFormSelect is not generic-aware.\n// This is acceptable in the wrapper/base pattern where the wrapper (BFormSelect)\n// handles type-safe normalization before passing to base components.\nconst {normalizedOptions} = useFormSelect(() => props.options, props) as {\n normalizedOptions: ComputedRef<SelectOption<T>[]>\n}\n</script>\n","<template>\n <select\n :id=\"computedId\"\n ref=\"_input\"\n v-model=\"localValue\"\n :class=\"computedClasses\"\n :name=\"props.name\"\n :form=\"props.form || undefined\"\n :multiple=\"props.multiple || undefined\"\n :size=\"computedSelectSize\"\n :disabled=\"isDisabled\"\n :required=\"props.required || undefined\"\n :aria-required=\"props.required || undefined\"\n :aria-invalid=\"computedAriaInvalid\"\n >\n <slot name=\"first\" />\n <template v-for=\"(option, index) in normalizedOptsWrapper\" :key=\"index\">\n <BFormSelectOptionGroup\n v-if=\"isComplex(option)\"\n :label=\"option.label\"\n :options=\"option.options\"\n :value-field=\"props.valueField\"\n :text-field=\"props.textField\"\n :disabled-field=\"props.disabledField\"\n />\n <BFormSelectOption v-else v-bind=\"option\">\n <slot name=\"option\" v-bind=\"option\">\n {{ option.text }}\n </slot>\n </BFormSelectOption>\n </template>\n <slot />\n </select>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BFormSelectBaseProps} from '../../types/ComponentProps'\nimport {computed, inject, provide, readonly, useTemplateRef} from 'vue'\nimport BFormSelectOption from './BFormSelectOption.vue'\nimport BFormSelectOptionGroup from './BFormSelectOptionGroup.vue'\nimport {useAriaInvalid} from '../../composables/useAriaInvalid'\nimport {useFocus, useToNumber} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport {useStateClass} from '../../composables/useStateClass'\nimport {useFormSelect} from '../../composables/useFormSelect'\nimport {formGroupKey, formSelectKey} from '../../utils/keys'\n\n/**\n * Base component for BFormSelect - non-generic implementation using useDefaults.\n * Renders a select element with normalized options and option groups.\n * Supports both simple options and complex grouped options.\n */\nconst _props = withDefaults(defineProps<Omit<BFormSelectBaseProps, 'modelValue'>>(), {\n ariaInvalid: undefined,\n autofocus: false,\n disabled: false,\n disabledField: 'disabled',\n form: undefined,\n id: undefined,\n labelField: 'label',\n multiple: false,\n name: undefined,\n options: () => [],\n optionsField: 'options',\n plain: false,\n required: false,\n selectSize: 0,\n size: 'md',\n state: null,\n textField: 'text',\n valueField: 'value',\n})\nconst props = useDefaults(_props, 'BFormSelect')\n\nconst modelValue = defineModel<unknown>({\n default: '',\n})\n\nconst computedId = useId(() => props.id, 'input')\n\nconst formGroupData = inject(formGroupKey, null)?.(computedId)\nconst isDisabled = computed(() => props.disabled || (formGroupData?.disabled.value ?? false))\n\nconst selectSizeNumber = useToNumber(() => props.selectSize)\n\nconst stateClass = useStateClass(() => props.state)\n\nconst input = useTemplateRef('_input')\n\nconst {focused} = useFocus(input, {\n initialValue: props.autofocus,\n})\n\nconst computedClasses = computed(() => [\n stateClass.value,\n {\n 'form-control': props.plain,\n [`form-control-${props.size}`]: props.size !== 'md' && props.plain,\n 'form-select': !props.plain,\n [`form-select-${props.size}`]: props.size !== 'md' && !props.plain,\n },\n])\n\nconst computedSelectSize = computed(() =>\n !props.plain && selectSizeNumber.value > 0 ? selectSizeNumber.value : undefined\n)\n\nconst computedAriaInvalid = useAriaInvalid(\n () => props.ariaInvalid,\n () => props.state\n)\n\nconst {normalizedOptions, isComplex} = useFormSelect(() => props.options, props)\n\nconst normalizedOptsWrapper = computed(() => normalizedOptions.value)\n\nconst localValue = computed({\n get: () => modelValue.value,\n set: (newValue) => {\n modelValue.value = newValue\n },\n})\n\n// Provide the current model value for child components to inject\nprovide(formSelectKey, {\n modelValue: readonly(localValue),\n})\n\ndefineExpose({\n blur: () => {\n focused.value = false\n },\n element: input,\n focus: () => {\n focused.value = true\n },\n})\n</script>\n","<template>\n <select\n :id=\"computedId\"\n ref=\"_input\"\n v-model=\"localValue\"\n :class=\"computedClasses\"\n :name=\"props.name\"\n :form=\"props.form || undefined\"\n :multiple=\"props.multiple || undefined\"\n :size=\"computedSelectSize\"\n :disabled=\"isDisabled\"\n :required=\"props.required || undefined\"\n :aria-required=\"props.required || undefined\"\n :aria-invalid=\"computedAriaInvalid\"\n >\n <slot name=\"first\" />\n <template v-for=\"(option, index) in normalizedOptsWrapper\" :key=\"index\">\n <BFormSelectOptionGroup\n v-if=\"isComplex(option)\"\n :label=\"option.label\"\n :options=\"option.options\"\n :value-field=\"props.valueField\"\n :text-field=\"props.textField\"\n :disabled-field=\"props.disabledField\"\n />\n <BFormSelectOption v-else v-bind=\"option\">\n <slot name=\"option\" v-bind=\"option\">\n {{ option.text }}\n </slot>\n </BFormSelectOption>\n </template>\n <slot />\n </select>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BFormSelectBaseProps} from '../../types/ComponentProps'\nimport {computed, inject, provide, readonly, useTemplateRef} from 'vue'\nimport BFormSelectOption from './BFormSelectOption.vue'\nimport BFormSelectOptionGroup from './BFormSelectOptionGroup.vue'\nimport {useAriaInvalid} from '../../composables/useAriaInvalid'\nimport {useFocus, useToNumber} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport {useStateClass} from '../../composables/useStateClass'\nimport {useFormSelect} from '../../composables/useFormSelect'\nimport {formGroupKey, formSelectKey} from '../../utils/keys'\n\n/**\n * Base component for BFormSelect - non-generic implementation using useDefaults.\n * Renders a select element with normalized options and option groups.\n * Supports both simple options and complex grouped options.\n */\nconst _props = withDefaults(defineProps<Omit<BFormSelectBaseProps, 'modelValue'>>(), {\n ariaInvalid: undefined,\n autofocus: false,\n disabled: false,\n disabledField: 'disabled',\n form: undefined,\n id: undefined,\n labelField: 'label',\n multiple: false,\n name: undefined,\n options: () => [],\n optionsField: 'options',\n plain: false,\n required: false,\n selectSize: 0,\n size: 'md',\n state: null,\n textField: 'text',\n valueField: 'value',\n})\nconst props = useDefaults(_props, 'BFormSelect')\n\nconst modelValue = defineModel<unknown>({\n default: '',\n})\n\nconst computedId = useId(() => props.id, 'input')\n\nconst formGroupData = inject(formGroupKey, null)?.(computedId)\nconst isDisabled = computed(() => props.disabled || (formGroupData?.disabled.value ?? false))\n\nconst selectSizeNumber = useToNumber(() => props.selectSize)\n\nconst stateClass = useStateClass(() => props.state)\n\nconst input = useTemplateRef('_input')\n\nconst {focused} = useFocus(input, {\n initialValue: props.autofocus,\n})\n\nconst computedClasses = computed(() => [\n stateClass.value,\n {\n 'form-control': props.plain,\n [`form-control-${props.size}`]: props.size !== 'md' && props.plain,\n 'form-select': !props.plain,\n [`form-select-${props.size}`]: props.size !== 'md' && !props.plain,\n },\n])\n\nconst computedSelectSize = computed(() =>\n !props.plain && selectSizeNumber.value > 0 ? selectSizeNumber.value : undefined\n)\n\nconst computedAriaInvalid = useAriaInvalid(\n () => props.ariaInvalid,\n () => props.state\n)\n\nconst {normalizedOptions, isComplex} = useFormSelect(() => props.options, props)\n\nconst normalizedOptsWrapper = computed(() => normalizedOptions.value)\n\nconst localValue = computed({\n get: () => modelValue.value,\n set: (newValue) => {\n modelValue.value = newValue\n },\n})\n\n// Provide the current model value for child components to inject\nprovide(formSelectKey, {\n modelValue: readonly(localValue),\n})\n\ndefineExpose({\n blur: () => {\n focused.value = false\n },\n element: input,\n focus: () => {\n focused.value = true\n },\n})\n</script>\n","<template>\n <BFormSelectBase v-bind=\"forwardedProps\" v-model=\"modelValue\" :options=\"normalizedOptions as any\">\n <!-- Forward all slots -->\n <template #first>\n <slot name=\"first\" />\n </template>\n\n <template #option=\"slotProps\">\n <slot name=\"option\" v-bind=\"slotProps as any\" />\n </template>\n\n <slot />\n </BFormSelectBase>\n</template>\n\n<script\n setup\n lang=\"ts\"\n generic=\"\n Options extends readonly (object | string | number | boolean)[] = readonly (\n | object\n | string\n | number\n | boolean\n )[]\n \"\n>\nimport type {BFormSelectProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport BFormSelectBase from './BFormSelectBase.vue'\nimport type {ComplexSelectOptionRaw, SelectOption} from '../../types/SelectTypes'\nimport type {BFormSelectSlots} from '../../types'\nimport type {OptionsValues} from '../../types/OptionsTypes'\n\n/**\n * Type-safe wrapper component for BFormSelect.\n * Provides generic type safety for options array and strongly-typed modelValue.\n * Uses Options array generic to extract union of all possible values.\n * Normalizes typed options and forwards to BFormSelectBase for rendering.\n * Supports both complex objects and simple scalar types (string, number).\n *\n * For strongly-typed modelValue:\n * - Primitive arrays: modelValue is union of those values (or array if multiple)\n * - Object arrays with 'value' field: modelValue is union of value field types\n * - Use 'as const' on options for literal type inference\n */\nconst props = withDefaults(defineProps<Omit<BFormSelectProps<Options>, 'modelValue'>>(), {\n ariaInvalid: undefined,\n autofocus: false,\n disabled: false,\n disabledField: 'disabled',\n form: undefined,\n id: undefined,\n labelField: 'label',\n multiple: false,\n name: undefined,\n options: () => [] as unknown as Options,\n optionsField: 'options',\n plain: false,\n required: false,\n selectSize: 0,\n size: 'md',\n state: null,\n textField: 'text',\n valueField: 'value',\n})\ndefineSlots<BFormSelectSlots<OptionsValues<Options>>>()\n\n// Type-safe model value - single value or array depending on multiple prop.\n// NOTE: OptionsValues assumes a static \"value\" key; custom valueField is not\n// reflected in the type — modelValue falls back to unknown in that case.\nconst modelValue = defineModel<OptionsValues<Options> | OptionsValues<Options>[] | null>({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default: '' as any,\n})\n\n// Normalize a single simple option using custom field names\nconst normalizeSimpleOption = (el: object): SelectOption =>\n ({\n ...(el as Record<string, unknown>),\n value: (el as Record<string, unknown>)[props.valueField as string],\n text: ((el as Record<string, unknown>)[props.textField as string] as string | undefined) ?? '',\n disabled:\n ((el as Record<string, unknown>)[props.disabledField as string] as boolean | undefined) ??\n false,\n }) as SelectOption\n\nconst normalizePrimitive = (el: string | number | boolean): SelectOption =>\n ({value: el, text: String(el), disabled: false}) as SelectOption\n\n// Type-safe normalization of options (supports both simple and complex/grouped)\nconst normalizedOptions = computed(() => {\n const optionsArray = props.options ?? []\n const hasComplexOptions = optionsArray.some(\n (el) =>\n typeof el !== 'string' &&\n typeof el !== 'number' &&\n typeof el !== 'boolean' &&\n (el as Record<string, unknown>)[props.optionsField as string] !== undefined\n )\n\n if (hasComplexOptions) {\n return optionsArray.map((el) => {\n if (typeof el === 'string' || typeof el === 'number' || typeof el === 'boolean') {\n return normalizePrimitive(el)\n }\n\n // Check if this is a complex (grouped) option\n const optionsField = (el as Record<string, unknown>)[props.optionsField as string]\n if (optionsField !== undefined && Array.isArray(optionsField)) {\n // Complex option with nested options\n const label =\n ((el as Record<string, unknown>)[props.labelField as string] as string | undefined) ??\n ((el as Record<string, unknown>)[props.textField as string] as string | undefined) ??\n ''\n return {\n label,\n options: optionsField.map((subOpt: unknown) => {\n if (\n typeof subOpt === 'string' ||\n typeof subOpt === 'number' ||\n typeof subOpt === 'boolean'\n ) {\n return normalizePrimitive(subOpt)\n }\n return normalizeSimpleOption(subOpt as object)\n }),\n } as ComplexSelectOptionRaw\n }\n\n // Simple option - spread all properties from the original object to preserve class, data-*, etc.\n return normalizeSimpleOption(el as object)\n })\n }\n\n return optionsArray.map((el) => {\n if (typeof el === 'string' || typeof el === 'number' || typeof el === 'boolean') {\n return normalizePrimitive(el)\n }\n // Spread all properties from the original object to preserve class, data-*, etc.\n return normalizeSimpleOption(el as object)\n })\n})\n\n// Forward all props except options (which we normalize), modelValue (handled separately),\n// and field mappings (already used for normalization)\nconst forwardedProps = computed(() => ({\n ariaInvalid: props.ariaInvalid,\n autofocus: props.autofocus,\n disabled: props.disabled,\n form: props.form,\n id: props.id,\n multiple: props.multiple,\n name: props.name,\n plain: props.plain,\n required: props.required,\n selectSize: props.selectSize,\n size: props.size,\n state: props.state,\n}))\n</script>\n","<template>\n <BFormSelectBase v-bind=\"forwardedProps\" v-model=\"modelValue\" :options=\"normalizedOptions as any\">\n <!-- Forward all slots -->\n <template #first>\n <slot name=\"first\" />\n </template>\n\n <template #option=\"slotProps\">\n <slot name=\"option\" v-bind=\"slotProps as any\" />\n </template>\n\n <slot />\n </BFormSelectBase>\n</template>\n\n<script\n setup\n lang=\"ts\"\n generic=\"\n Options extends readonly (object | string | number | boolean)[] = readonly (\n | object\n | string\n | number\n | boolean\n )[]\n \"\n>\nimport type {BFormSelectProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport BFormSelectBase from './BFormSelectBase.vue'\nimport type {ComplexSelectOptionRaw, SelectOption} from '../../types/SelectTypes'\nimport type {BFormSelectSlots} from '../../types'\nimport type {OptionsValues} from '../../types/OptionsTypes'\n\n/**\n * Type-safe wrapper component for BFormSelect.\n * Provides generic type safety for options array and strongly-typed modelValue.\n * Uses Options array generic to extract union of all possible values.\n * Normalizes typed options and forwards to BFormSelectBase for rendering.\n * Supports both complex objects and simple scalar types (string, number).\n *\n * For strongly-typed modelValue:\n * - Primitive arrays: modelValue is union of those values (or array if multiple)\n * - Object arrays with 'value' field: modelValue is union of value field types\n * - Use 'as const' on options for literal type inference\n */\nconst props = withDefaults(defineProps<Omit<BFormSelectProps<Options>, 'modelValue'>>(), {\n ariaInvalid: undefined,\n autofocus: false,\n disabled: false,\n disabledField: 'disabled',\n form: undefined,\n id: undefined,\n labelField: 'label',\n multiple: false,\n name: undefined,\n options: () => [] as unknown as Options,\n optionsField: 'options',\n plain: false,\n required: false,\n selectSize: 0,\n size: 'md',\n state: null,\n textField: 'text',\n valueField: 'value',\n})\ndefineSlots<BFormSelectSlots<OptionsValues<Options>>>()\n\n// Type-safe model value - single value or array depending on multiple prop.\n// NOTE: OptionsValues assumes a static \"value\" key; custom valueField is not\n// reflected in the type — modelValue falls back to unknown in that case.\nconst modelValue = defineModel<OptionsValues<Options> | OptionsValues<Options>[] | null>({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default: '' as any,\n})\n\n// Normalize a single simple option using custom field names\nconst normalizeSimpleOption = (el: object): SelectOption =>\n ({\n ...(el as Record<string, unknown>),\n value: (el as Record<string, unknown>)[props.valueField as string],\n text: ((el as Record<string, unknown>)[props.textField as string] as string | undefined) ?? '',\n disabled:\n ((el as Record<string, unknown>)[props.disabledField as string] as boolean | undefined) ??\n false,\n }) as SelectOption\n\nconst normalizePrimitive = (el: string | number | boolean): SelectOption =>\n ({value: el, text: String(el), disabled: false}) as SelectOption\n\n// Type-safe normalization of options (supports both simple and complex/grouped)\nconst normalizedOptions = computed(() => {\n const optionsArray = props.options ?? []\n const hasComplexOptions = optionsArray.some(\n (el) =>\n typeof el !== 'string' &&\n typeof el !== 'number' &&\n typeof el !== 'boolean' &&\n (el as Record<string, unknown>)[props.optionsField as string] !== undefined\n )\n\n if (hasComplexOptions) {\n return optionsArray.map((el) => {\n if (typeof el === 'string' || typeof el === 'number' || typeof el === 'boolean') {\n return normalizePrimitive(el)\n }\n\n // Check if this is a complex (grouped) option\n const optionsField = (el as Record<string, unknown>)[props.optionsField as string]\n if (optionsField !== undefined && Array.isArray(optionsField)) {\n // Complex option with nested options\n const label =\n ((el as Record<string, unknown>)[props.labelField as string] as string | undefined) ??\n ((el as Record<string, unknown>)[props.textField as string] as string | undefined) ??\n ''\n return {\n label,\n options: optionsField.map((subOpt: unknown) => {\n if (\n typeof subOpt === 'string' ||\n typeof subOpt === 'number' ||\n typeof subOpt === 'boolean'\n ) {\n return normalizePrimitive(subOpt)\n }\n return normalizeSimpleOption(subOpt as object)\n }),\n } as ComplexSelectOptionRaw\n }\n\n // Simple option - spread all properties from the original object to preserve class, data-*, etc.\n return normalizeSimpleOption(el as object)\n })\n }\n\n return optionsArray.map((el) => {\n if (typeof el === 'string' || typeof el === 'number' || typeof el === 'boolean') {\n return normalizePrimitive(el)\n }\n // Spread all properties from the original object to preserve class, data-*, etc.\n return normalizeSimpleOption(el as object)\n })\n})\n\n// Forward all props except options (which we normalize), modelValue (handled separately),\n// and field mappings (already used for normalization)\nconst forwardedProps = computed(() => ({\n ariaInvalid: props.ariaInvalid,\n autofocus: props.autofocus,\n disabled: props.disabled,\n form: props.form,\n id: props.id,\n multiple: props.multiple,\n name: props.name,\n plain: props.plain,\n required: props.required,\n selectSize: props.selectSize,\n size: props.size,\n state: props.state,\n}))\n</script>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BFormSelect-DIKVsG--.js","names":["$attrs"],"sources":["../src/components/BFormSelect/BFormSelectOptionGroup.vue","../src/components/BFormSelect/BFormSelectOptionGroup.vue","../src/components/BFormSelect/BFormSelectBase.vue","../src/components/BFormSelect/BFormSelectBase.vue","../src/components/BFormSelect/BFormSelect.vue","../src/components/BFormSelect/BFormSelect.vue"],"sourcesContent":["<template>\n <optgroup :label=\"props.label\">\n <slot name=\"first\" />\n <BFormSelectOption\n v-for=\"(option, index) in normalizedOptions\"\n :key=\"index\"\n v-bind=\"{...$attrs, ...option}\"\n >\n <slot name=\"option\" v-bind=\"option\">\n {{ option.text }}\n </slot>\n </BFormSelectOption>\n <slot />\n </optgroup>\n</template>\n\n<script setup lang=\"ts\" generic=\"T\">\nimport BFormSelectOption from './BFormSelectOption.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BFormSelectOptionGroupProps} from '../../types/ComponentProps'\nimport type {ComputedRef} from 'vue'\nimport {useFormSelect} from '../../composables/useFormSelect'\nimport type {SelectOption} from '../../types/SelectTypes'\nimport type {BFormSelectOptionGroupSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BFormSelectOptionGroupProps>(), {\n disabledField: 'disabled',\n label: undefined,\n options: () => [],\n textField: 'text',\n valueField: 'value',\n})\nconst props = useDefaults(_props, 'BFormSelectOptionGroup')\ndefineSlots<BFormSelectOptionGroupSlots<T>>()\n\n// The form select context is injected by BFormSelectOption components automatically\n// We don't need to handle the selected value here since each BFormSelectOption\n// will inject the context directly\n\n// Type assertion is needed because useFormSelect is not generic-aware.\n// This is acceptable in the wrapper/base pattern where the wrapper (BFormSelect)\n// handles type-safe normalization before passing to base components.\nconst {normalizedOptions} = useFormSelect(() => props.options, props) as {\n normalizedOptions: ComputedRef<SelectOption<T>[]>\n}\n</script>\n","<template>\n <optgroup :label=\"props.label\">\n <slot name=\"first\" />\n <BFormSelectOption\n v-for=\"(option, index) in normalizedOptions\"\n :key=\"index\"\n v-bind=\"{...$attrs, ...option}\"\n >\n <slot name=\"option\" v-bind=\"option\">\n {{ option.text }}\n </slot>\n </BFormSelectOption>\n <slot />\n </optgroup>\n</template>\n\n<script setup lang=\"ts\" generic=\"T\">\nimport BFormSelectOption from './BFormSelectOption.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BFormSelectOptionGroupProps} from '../../types/ComponentProps'\nimport type {ComputedRef} from 'vue'\nimport {useFormSelect} from '../../composables/useFormSelect'\nimport type {SelectOption} from '../../types/SelectTypes'\nimport type {BFormSelectOptionGroupSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BFormSelectOptionGroupProps>(), {\n disabledField: 'disabled',\n label: undefined,\n options: () => [],\n textField: 'text',\n valueField: 'value',\n})\nconst props = useDefaults(_props, 'BFormSelectOptionGroup')\ndefineSlots<BFormSelectOptionGroupSlots<T>>()\n\n// The form select context is injected by BFormSelectOption components automatically\n// We don't need to handle the selected value here since each BFormSelectOption\n// will inject the context directly\n\n// Type assertion is needed because useFormSelect is not generic-aware.\n// This is acceptable in the wrapper/base pattern where the wrapper (BFormSelect)\n// handles type-safe normalization before passing to base components.\nconst {normalizedOptions} = useFormSelect(() => props.options, props) as {\n normalizedOptions: ComputedRef<SelectOption<T>[]>\n}\n</script>\n","<template>\n <select\n :id=\"computedId\"\n ref=\"_input\"\n v-model=\"localValue\"\n :class=\"computedClasses\"\n :name=\"props.name\"\n :form=\"props.form || undefined\"\n :multiple=\"props.multiple || undefined\"\n :size=\"computedSelectSize\"\n :disabled=\"isDisabled\"\n :required=\"props.required || undefined\"\n :aria-required=\"props.required || undefined\"\n :aria-invalid=\"computedAriaInvalid\"\n >\n <slot name=\"first\" />\n <template v-for=\"(option, index) in normalizedOptsWrapper\" :key=\"index\">\n <BFormSelectOptionGroup\n v-if=\"isComplex(option)\"\n :label=\"option.label\"\n :options=\"option.options\"\n :value-field=\"props.valueField\"\n :text-field=\"props.textField\"\n :disabled-field=\"props.disabledField\"\n />\n <BFormSelectOption v-else v-bind=\"option\">\n <slot name=\"option\" v-bind=\"option\">\n {{ option.text }}\n </slot>\n </BFormSelectOption>\n </template>\n <slot />\n </select>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BFormSelectBaseProps} from '../../types/ComponentProps'\nimport {computed, inject, provide, readonly, useTemplateRef} from 'vue'\nimport BFormSelectOption from './BFormSelectOption.vue'\nimport BFormSelectOptionGroup from './BFormSelectOptionGroup.vue'\nimport {useAriaInvalid} from '../../composables/useAriaInvalid'\nimport {useFocus, useToNumber} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport {useStateClass} from '../../composables/useStateClass'\nimport {useFormSelect} from '../../composables/useFormSelect'\nimport {formGroupKey, formSelectKey} from '../../utils/keys'\n\n/**\n * Base component for BFormSelect - non-generic implementation using useDefaults.\n * Renders a select element with normalized options and option groups.\n * Supports both simple options and complex grouped options.\n */\nconst _props = withDefaults(defineProps<Omit<BFormSelectBaseProps, 'modelValue'>>(), {\n ariaInvalid: undefined,\n autofocus: false,\n disabled: false,\n disabledField: 'disabled',\n form: undefined,\n id: undefined,\n labelField: 'label',\n multiple: false,\n name: undefined,\n options: () => [],\n optionsField: 'options',\n plain: false,\n required: false,\n selectSize: 0,\n size: 'md',\n state: null,\n textField: 'text',\n valueField: 'value',\n})\nconst props = useDefaults(_props, 'BFormSelect')\n\nconst modelValue = defineModel<unknown>({\n default: '',\n})\n\nconst computedId = useId(() => props.id, 'input')\n\nconst formGroupData = inject(formGroupKey, null)?.(computedId)\nconst isDisabled = computed(() => props.disabled || (formGroupData?.disabled.value ?? false))\n\nconst selectSizeNumber = useToNumber(() => props.selectSize)\n\nconst stateClass = useStateClass(() => props.state)\n\nconst input = useTemplateRef('_input')\n\nconst {focused} = useFocus(input, {\n initialValue: props.autofocus,\n})\n\nconst computedClasses = computed(() => [\n stateClass.value,\n {\n 'form-control': props.plain,\n [`form-control-${props.size}`]: props.size !== 'md' && props.plain,\n 'form-select': !props.plain,\n [`form-select-${props.size}`]: props.size !== 'md' && !props.plain,\n },\n])\n\nconst computedSelectSize = computed(() =>\n !props.plain && selectSizeNumber.value > 0 ? selectSizeNumber.value : undefined\n)\n\nconst computedAriaInvalid = useAriaInvalid(\n () => props.ariaInvalid,\n () => props.state\n)\n\nconst {normalizedOptions, isComplex} = useFormSelect(() => props.options, props)\n\nconst normalizedOptsWrapper = computed(() => normalizedOptions.value)\n\nconst localValue = computed({\n get: () => modelValue.value,\n set: (newValue) => {\n modelValue.value = newValue\n },\n})\n\n// Provide the current model value for child components to inject\nprovide(formSelectKey, {\n modelValue: readonly(localValue),\n})\n\ndefineExpose({\n blur: () => {\n focused.value = false\n },\n element: input,\n focus: () => {\n focused.value = true\n },\n})\n</script>\n","<template>\n <select\n :id=\"computedId\"\n ref=\"_input\"\n v-model=\"localValue\"\n :class=\"computedClasses\"\n :name=\"props.name\"\n :form=\"props.form || undefined\"\n :multiple=\"props.multiple || undefined\"\n :size=\"computedSelectSize\"\n :disabled=\"isDisabled\"\n :required=\"props.required || undefined\"\n :aria-required=\"props.required || undefined\"\n :aria-invalid=\"computedAriaInvalid\"\n >\n <slot name=\"first\" />\n <template v-for=\"(option, index) in normalizedOptsWrapper\" :key=\"index\">\n <BFormSelectOptionGroup\n v-if=\"isComplex(option)\"\n :label=\"option.label\"\n :options=\"option.options\"\n :value-field=\"props.valueField\"\n :text-field=\"props.textField\"\n :disabled-field=\"props.disabledField\"\n />\n <BFormSelectOption v-else v-bind=\"option\">\n <slot name=\"option\" v-bind=\"option\">\n {{ option.text }}\n </slot>\n </BFormSelectOption>\n </template>\n <slot />\n </select>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BFormSelectBaseProps} from '../../types/ComponentProps'\nimport {computed, inject, provide, readonly, useTemplateRef} from 'vue'\nimport BFormSelectOption from './BFormSelectOption.vue'\nimport BFormSelectOptionGroup from './BFormSelectOptionGroup.vue'\nimport {useAriaInvalid} from '../../composables/useAriaInvalid'\nimport {useFocus, useToNumber} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport {useStateClass} from '../../composables/useStateClass'\nimport {useFormSelect} from '../../composables/useFormSelect'\nimport {formGroupKey, formSelectKey} from '../../utils/keys'\n\n/**\n * Base component for BFormSelect - non-generic implementation using useDefaults.\n * Renders a select element with normalized options and option groups.\n * Supports both simple options and complex grouped options.\n */\nconst _props = withDefaults(defineProps<Omit<BFormSelectBaseProps, 'modelValue'>>(), {\n ariaInvalid: undefined,\n autofocus: false,\n disabled: false,\n disabledField: 'disabled',\n form: undefined,\n id: undefined,\n labelField: 'label',\n multiple: false,\n name: undefined,\n options: () => [],\n optionsField: 'options',\n plain: false,\n required: false,\n selectSize: 0,\n size: 'md',\n state: null,\n textField: 'text',\n valueField: 'value',\n})\nconst props = useDefaults(_props, 'BFormSelect')\n\nconst modelValue = defineModel<unknown>({\n default: '',\n})\n\nconst computedId = useId(() => props.id, 'input')\n\nconst formGroupData = inject(formGroupKey, null)?.(computedId)\nconst isDisabled = computed(() => props.disabled || (formGroupData?.disabled.value ?? false))\n\nconst selectSizeNumber = useToNumber(() => props.selectSize)\n\nconst stateClass = useStateClass(() => props.state)\n\nconst input = useTemplateRef('_input')\n\nconst {focused} = useFocus(input, {\n initialValue: props.autofocus,\n})\n\nconst computedClasses = computed(() => [\n stateClass.value,\n {\n 'form-control': props.plain,\n [`form-control-${props.size}`]: props.size !== 'md' && props.plain,\n 'form-select': !props.plain,\n [`form-select-${props.size}`]: props.size !== 'md' && !props.plain,\n },\n])\n\nconst computedSelectSize = computed(() =>\n !props.plain && selectSizeNumber.value > 0 ? selectSizeNumber.value : undefined\n)\n\nconst computedAriaInvalid = useAriaInvalid(\n () => props.ariaInvalid,\n () => props.state\n)\n\nconst {normalizedOptions, isComplex} = useFormSelect(() => props.options, props)\n\nconst normalizedOptsWrapper = computed(() => normalizedOptions.value)\n\nconst localValue = computed({\n get: () => modelValue.value,\n set: (newValue) => {\n modelValue.value = newValue\n },\n})\n\n// Provide the current model value for child components to inject\nprovide(formSelectKey, {\n modelValue: readonly(localValue),\n})\n\ndefineExpose({\n blur: () => {\n focused.value = false\n },\n element: input,\n focus: () => {\n focused.value = true\n },\n})\n</script>\n","<template>\n <BFormSelectBase v-bind=\"forwardedProps\" v-model=\"modelValue\" :options=\"normalizedOptions as any\">\n <!-- Forward all slots -->\n <template #first>\n <slot name=\"first\" />\n </template>\n\n <template #option=\"slotProps\">\n <slot name=\"option\" v-bind=\"slotProps as any\" />\n </template>\n\n <slot />\n </BFormSelectBase>\n</template>\n\n<script\n setup\n lang=\"ts\"\n generic=\"\n Options extends readonly (object | string | number | boolean)[] = readonly (\n | object\n | string\n | number\n | boolean\n )[]\n \"\n>\nimport type {BFormSelectProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport BFormSelectBase from './BFormSelectBase.vue'\nimport type {ComplexSelectOptionRaw, SelectOption} from '../../types/SelectTypes'\nimport type {BFormSelectSlots} from '../../types'\nimport type {OptionsValues} from '../../types/OptionsTypes'\n\n/**\n * Type-safe wrapper component for BFormSelect.\n * Provides generic type safety for options array and strongly-typed modelValue.\n * Uses Options array generic to extract union of all possible values.\n * Normalizes typed options and forwards to BFormSelectBase for rendering.\n * Supports both complex objects and simple scalar types (string, number).\n *\n * For strongly-typed modelValue:\n * - Primitive arrays: modelValue is union of those values (or array if multiple)\n * - Object arrays with 'value' field: modelValue is union of value field types\n * - Use 'as const' on options for literal type inference\n */\nconst props = withDefaults(defineProps<Omit<BFormSelectProps<Options>, 'modelValue'>>(), {\n ariaInvalid: undefined,\n autofocus: false,\n disabled: false,\n disabledField: 'disabled',\n form: undefined,\n id: undefined,\n labelField: 'label',\n multiple: false,\n name: undefined,\n options: () => [] as unknown as Options,\n optionsField: 'options',\n plain: false,\n required: false,\n selectSize: 0,\n size: 'md',\n state: null,\n textField: 'text',\n valueField: 'value',\n})\ndefineSlots<BFormSelectSlots<OptionsValues<Options>>>()\n\n// Type-safe model value - single value or array depending on multiple prop.\n// NOTE: OptionsValues assumes a static \"value\" key; custom valueField is not\n// reflected in the type — modelValue falls back to unknown in that case.\nconst modelValue = defineModel<OptionsValues<Options> | OptionsValues<Options>[] | null>({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default: '' as any,\n})\n\n// Normalize a single simple option using custom field names\nconst normalizeSimpleOption = (el: object): SelectOption =>\n ({\n ...(el as Record<string, unknown>),\n value: (el as Record<string, unknown>)[props.valueField as string],\n text: ((el as Record<string, unknown>)[props.textField as string] as string | undefined) ?? '',\n disabled:\n ((el as Record<string, unknown>)[props.disabledField as string] as boolean | undefined) ??\n false,\n }) as SelectOption\n\nconst normalizePrimitive = (el: string | number | boolean): SelectOption =>\n ({value: el, text: String(el), disabled: false}) as SelectOption\n\n// Type-safe normalization of options (supports both simple and complex/grouped)\nconst normalizedOptions = computed(() => {\n const optionsArray = props.options ?? []\n const hasComplexOptions = optionsArray.some(\n (el) =>\n typeof el !== 'string' &&\n typeof el !== 'number' &&\n typeof el !== 'boolean' &&\n (el as Record<string, unknown>)[props.optionsField as string] !== undefined\n )\n\n if (hasComplexOptions) {\n return optionsArray.map((el) => {\n if (typeof el === 'string' || typeof el === 'number' || typeof el === 'boolean') {\n return normalizePrimitive(el)\n }\n\n // Check if this is a complex (grouped) option\n const optionsField = (el as Record<string, unknown>)[props.optionsField as string]\n if (optionsField !== undefined && Array.isArray(optionsField)) {\n // Complex option with nested options\n const label =\n ((el as Record<string, unknown>)[props.labelField as string] as string | undefined) ??\n ((el as Record<string, unknown>)[props.textField as string] as string | undefined) ??\n ''\n return {\n label,\n options: optionsField.map((subOpt: unknown) => {\n if (\n typeof subOpt === 'string' ||\n typeof subOpt === 'number' ||\n typeof subOpt === 'boolean'\n ) {\n return normalizePrimitive(subOpt)\n }\n return normalizeSimpleOption(subOpt as object)\n }),\n } as ComplexSelectOptionRaw\n }\n\n // Simple option - spread all properties from the original object to preserve class, data-*, etc.\n return normalizeSimpleOption(el as object)\n })\n }\n\n return optionsArray.map((el) => {\n if (typeof el === 'string' || typeof el === 'number' || typeof el === 'boolean') {\n return normalizePrimitive(el)\n }\n // Spread all properties from the original object to preserve class, data-*, etc.\n return normalizeSimpleOption(el as object)\n })\n})\n\n// Forward all props except options (which we normalize), modelValue (handled separately),\n// and field mappings (already used for normalization)\nconst forwardedProps = computed(() => ({\n ariaInvalid: props.ariaInvalid,\n autofocus: props.autofocus,\n disabled: props.disabled,\n form: props.form,\n id: props.id,\n multiple: props.multiple,\n name: props.name,\n plain: props.plain,\n required: props.required,\n selectSize: props.selectSize,\n size: props.size,\n state: props.state,\n}))\n</script>\n","<template>\n <BFormSelectBase v-bind=\"forwardedProps\" v-model=\"modelValue\" :options=\"normalizedOptions as any\">\n <!-- Forward all slots -->\n <template #first>\n <slot name=\"first\" />\n </template>\n\n <template #option=\"slotProps\">\n <slot name=\"option\" v-bind=\"slotProps as any\" />\n </template>\n\n <slot />\n </BFormSelectBase>\n</template>\n\n<script\n setup\n lang=\"ts\"\n generic=\"\n Options extends readonly (object | string | number | boolean)[] = readonly (\n | object\n | string\n | number\n | boolean\n )[]\n \"\n>\nimport type {BFormSelectProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport BFormSelectBase from './BFormSelectBase.vue'\nimport type {ComplexSelectOptionRaw, SelectOption} from '../../types/SelectTypes'\nimport type {BFormSelectSlots} from '../../types'\nimport type {OptionsValues} from '../../types/OptionsTypes'\n\n/**\n * Type-safe wrapper component for BFormSelect.\n * Provides generic type safety for options array and strongly-typed modelValue.\n * Uses Options array generic to extract union of all possible values.\n * Normalizes typed options and forwards to BFormSelectBase for rendering.\n * Supports both complex objects and simple scalar types (string, number).\n *\n * For strongly-typed modelValue:\n * - Primitive arrays: modelValue is union of those values (or array if multiple)\n * - Object arrays with 'value' field: modelValue is union of value field types\n * - Use 'as const' on options for literal type inference\n */\nconst props = withDefaults(defineProps<Omit<BFormSelectProps<Options>, 'modelValue'>>(), {\n ariaInvalid: undefined,\n autofocus: false,\n disabled: false,\n disabledField: 'disabled',\n form: undefined,\n id: undefined,\n labelField: 'label',\n multiple: false,\n name: undefined,\n options: () => [] as unknown as Options,\n optionsField: 'options',\n plain: false,\n required: false,\n selectSize: 0,\n size: 'md',\n state: null,\n textField: 'text',\n valueField: 'value',\n})\ndefineSlots<BFormSelectSlots<OptionsValues<Options>>>()\n\n// Type-safe model value - single value or array depending on multiple prop.\n// NOTE: OptionsValues assumes a static \"value\" key; custom valueField is not\n// reflected in the type — modelValue falls back to unknown in that case.\nconst modelValue = defineModel<OptionsValues<Options> | OptionsValues<Options>[] | null>({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default: '' as any,\n})\n\n// Normalize a single simple option using custom field names\nconst normalizeSimpleOption = (el: object): SelectOption =>\n ({\n ...(el as Record<string, unknown>),\n value: (el as Record<string, unknown>)[props.valueField as string],\n text: ((el as Record<string, unknown>)[props.textField as string] as string | undefined) ?? '',\n disabled:\n ((el as Record<string, unknown>)[props.disabledField as string] as boolean | undefined) ??\n false,\n }) as SelectOption\n\nconst normalizePrimitive = (el: string | number | boolean): SelectOption =>\n ({value: el, text: String(el), disabled: false}) as SelectOption\n\n// Type-safe normalization of options (supports both simple and complex/grouped)\nconst normalizedOptions = computed(() => {\n const optionsArray = props.options ?? []\n const hasComplexOptions = optionsArray.some(\n (el) =>\n typeof el !== 'string' &&\n typeof el !== 'number' &&\n typeof el !== 'boolean' &&\n (el as Record<string, unknown>)[props.optionsField as string] !== undefined\n )\n\n if (hasComplexOptions) {\n return optionsArray.map((el) => {\n if (typeof el === 'string' || typeof el === 'number' || typeof el === 'boolean') {\n return normalizePrimitive(el)\n }\n\n // Check if this is a complex (grouped) option\n const optionsField = (el as Record<string, unknown>)[props.optionsField as string]\n if (optionsField !== undefined && Array.isArray(optionsField)) {\n // Complex option with nested options\n const label =\n ((el as Record<string, unknown>)[props.labelField as string] as string | undefined) ??\n ((el as Record<string, unknown>)[props.textField as string] as string | undefined) ??\n ''\n return {\n label,\n options: optionsField.map((subOpt: unknown) => {\n if (\n typeof subOpt === 'string' ||\n typeof subOpt === 'number' ||\n typeof subOpt === 'boolean'\n ) {\n return normalizePrimitive(subOpt)\n }\n return normalizeSimpleOption(subOpt as object)\n }),\n } as ComplexSelectOptionRaw\n }\n\n // Simple option - spread all properties from the original object to preserve class, data-*, etc.\n return normalizeSimpleOption(el as object)\n })\n }\n\n return optionsArray.map((el) => {\n if (typeof el === 'string' || typeof el === 'number' || typeof el === 'boolean') {\n return normalizePrimitive(el)\n }\n // Spread all properties from the original object to preserve class, data-*, etc.\n return normalizeSimpleOption(el as object)\n })\n})\n\n// Forward all props except options (which we normalize), modelValue (handled separately),\n// and field mappings (already used for normalization)\nconst forwardedProps = computed(() => ({\n ariaInvalid: props.ariaInvalid,\n autofocus: props.autofocus,\n disabled: props.disabled,\n form: props.form,\n id: props.id,\n multiple: props.multiple,\n name: props.name,\n plain: props.plain,\n required: props.required,\n selectSize: props.selectSize,\n size: props.size,\n state: props.state,\n}))\n</script>\n"],"mappings":"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"}
|
|
@@ -80,7 +80,7 @@ var componentsWithExternalPath = {
|
|
|
80
80
|
BNavbarNav: "/components/BNavbar",
|
|
81
81
|
BNavbarToggle: "/components/BNavbar",
|
|
82
82
|
BOffcanvas: "/components/BOffcanvas",
|
|
83
|
-
|
|
83
|
+
BFormOtp: "/components/BFormOtp",
|
|
84
84
|
BOverlay: "/components/BOverlay",
|
|
85
85
|
BOrchestrator: "/components/BApp",
|
|
86
86
|
BPagination: "/components/BPagination",
|
|
@@ -141,4 +141,4 @@ var composableNames = Object.freeze(Object.keys(composablesWithExternalPath));
|
|
|
141
141
|
//#endregion
|
|
142
142
|
export { directiveNames as a, composablesWithExternalPath as i, componentsWithExternalPath as n, directivesWithExternalPath as o, composableNames as r, componentNames as t };
|
|
143
143
|
|
|
144
|
-
//# sourceMappingURL=BootstrapVueOptions-
|
|
144
|
+
//# sourceMappingURL=BootstrapVueOptions-D3flIVqU.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BootstrapVueOptions-D3flIVqU.mjs","names":[],"sources":["../src/types/BootstrapVueOptions.ts"],"sourcesContent":["import type * as ExportedComponents from '../components'\nimport type * as ExportedDirectives from '../directives'\nimport type * as ExportedComposables from '../composables'\nimport type * as ComponentProps from './ComponentProps'\n\ntype AllComponentsTyped = typeof ExportedComponents\n\nexport type ComponentType = keyof AllComponentsTyped\nexport type DirectiveType = keyof typeof ExportedDirectives\nexport type ComposableType = keyof typeof ExportedComposables\n\nexport type BvnComponents = {\n [K in ComponentType]: AllComponentsTyped[K]\n}\n\nexport const componentsWithExternalPath = {\n BAspect: '/components/BAspect',\n BAccordion: '/components/BAccordion',\n BAccordionItem: '/components/BAccordion',\n BAlert: '/components/BAlert',\n BApp: '/components/BApp',\n BAutocomplete: '/components/BAutocomplete',\n BAvatar: '/components/BAvatar',\n BAvatarGroup: '/components/BAvatar',\n BBadge: '/components/BBadge',\n BBreadcrumb: '/components/BBreadcrumb',\n BBreadcrumbItem: '/components/BBreadcrumb',\n BButton: '/components/BButton',\n BButtonGroup: '/components/BButton',\n BButtonToolbar: '/components/BButton',\n BCloseButton: '/components/BButton',\n BCard: '/components/BCard',\n BCardBody: '/components/BCard',\n BCardFooter: '/components/BCard',\n BCardGroup: '/components/BCard',\n BCardHeader: '/components/BCard',\n BCardImg: '/components/BCard',\n BCardSubtitle: '/components/BCard',\n BCardText: '/components/BCard',\n BCardTitle: '/components/BCard',\n BCarousel: '/components/BCarousel',\n BCarouselSlide: '/components/BCarousel',\n BCol: '/components/BContainer',\n BCollapse: '/components/BCollapse',\n BContainer: '/components/BContainer',\n BDateField: '/components/BDateField',\n BDatePicker: '/components/BDatePicker',\n BDateRangeField: '/components/BDateField',\n BDateRangePicker: '/components/BDatePicker',\n BDropdown: '/components/BDropdown',\n BDropdownDivider: '/components/BDropdown',\n BDropdownForm: '/components/BDropdown',\n BDropdownGroup: '/components/BDropdown',\n BDropdownHeader: '/components/BDropdown',\n BDropdownItem: '/components/BDropdown',\n BDropdownItemButton: '/components/BDropdown',\n BDropdownText: '/components/BDropdown',\n BForm: '/components/BForm',\n BFormCheckbox: '/components/BFormCheckbox',\n BFormCheckboxGroup: '/components/BFormCheckbox',\n BFormDatalist: '/components/BForm',\n BFormFile: '/components/BFormFile',\n BFormFloatingLabel: '/components/BForm',\n BFormGroup: '/components/BFormGroup',\n BFormInput: '/components/BFormInput',\n BFormInvalidFeedback: '/components/BForm',\n BFormRadio: '/components/BFormRadio',\n BFormRadioGroup: '/components/BFormRadio',\n BFormRating: '/components/BFormRating',\n BFormRow: '/components/BForm',\n BFormSelect: '/components/BFormSelect',\n BFormSelectOption: '/components/BFormSelect',\n BFormSelectOptionGroup: '/components/BFormSelect',\n BFormSpinbutton: '/components/BFormSpinbutton',\n BFormTag: '/components/BFormTags',\n BFormTags: '/components/BFormTags',\n BFormText: '/components/BForm',\n BFormTextarea: '/components/BFormTextarea',\n BFormValidFeedback: '/components/BForm',\n BImg: '/components/BImg',\n BInput: '/components/BFormInput',\n BInputGroup: '/components/BInputGroup',\n BInputGroupText: '/components/BInputGroup',\n BListGroup: '/components/BListGroup',\n BListGroupItem: '/components/BListGroup',\n BModal: '/components/BModal',\n BNav: '/components/BNav',\n BNavForm: '/components/BNav',\n BNavItem: '/components/BNav',\n BNavItemDropdown: '/components/BNav',\n BNavText: '/components/BNav',\n BNavbar: '/components/BNavbar',\n BNavbarBrand: '/components/BNavbar',\n BNavbarNav: '/components/BNavbar',\n BNavbarToggle: '/components/BNavbar',\n BOffcanvas: '/components/BOffcanvas',\n BFormOtp: '/components/BFormOtp',\n BOverlay: '/components/BOverlay',\n BOrchestrator: '/components/BApp',\n BPagination: '/components/BPagination',\n BPlaceholder: '/components/BPlaceholder',\n BPlaceholderButton: '/components/BPlaceholder',\n BPlaceholderCard: '/components/BPlaceholder',\n BPlaceholderTable: '/components/BPlaceholder',\n BPlaceholderWrapper: '/components/BPlaceholder',\n BPopover: '/components/BPopover',\n BProgress: '/components/BProgress',\n BRow: '/components/BContainer',\n BSpinner: '/components/BSpinner',\n BTab: '/components/BTabs',\n BTabs: '/components/BTabs',\n BToast: '/components/BToast',\n BTooltip: '/components/BTooltip',\n BLink: '/components/BLink',\n BProgressBar: '/components/BProgress',\n BTableSimple: '/components/BTable',\n BTableLite: '/components/BTable',\n BTable: '/components/BTable',\n BTbody: '/components/BTable',\n BTd: '/components/BTable',\n BTh: '/components/BTable',\n BThead: '/components/BTable',\n BTfoot: '/components/BTable',\n BTr: '/components/BTable',\n BTimeField: '/components/BTimeField',\n BTimeRangeField: '/components/BDateField',\n} as const satisfies Record<ComponentType, string>\nexport const componentNames = Object.freeze(\n Object.keys(componentsWithExternalPath) as ComponentType[]\n)\n\nexport const directivesWithExternalPath = {\n vBColorMode: '/directives/BColorMode',\n vBModal: '/directives/BModal',\n vBPopover: '/directives/BPopover',\n vBScrollspy: '/directives/BScrollspy',\n vBToggle: '/directives/BToggle',\n vBTooltip: '/directives/BTooltip',\n} as const satisfies Record<DirectiveType, string>\nexport const directiveNames = Object.freeze(\n Object.keys(directivesWithExternalPath) as DirectiveType[]\n)\n\nexport const composablesWithExternalPath = {\n useBreadcrumb: '/composables/useBreadcrumb',\n useColorMode: '/composables/useColorMode',\n useModal: '/composables/useModal',\n useModalController: '/composables/useModal',\n useScrollLock: '/composables/useScrollLock',\n useScrollspy: '/composables/useScrollspy',\n useToast: '/composables/useToast',\n useToastController: '/composables/useToast',\n useToggle: '/composables/useToggle',\n usePopover: '/composables/usePopover',\n usePopoverController: '/composables/usePopover',\n useRegistry: '/composables/useRegistry',\n useProvideDefaults: '/composables/useProvideDefaults',\n useOrchestratorRegistry: '/composables/orchestratorShared',\n} as const satisfies Record<ComposableType, string>\nexport const composableNames = Object.freeze(\n Object.keys(composablesWithExternalPath) as ComposableType[]\n)\n\nexport type ConfigurationOption<T extends string> = Partial<Record<T, boolean>> & {all: boolean}\nexport interface BootstrapVueOptions {\n /**\n * @default true\n */\n orchestrator?: boolean\n /**\n * @default true\n */\n registries?: boolean\n /**\n * @default false\n */\n rtl?:\n | boolean\n | {\n /**\n * @default false\n */\n rtlInitial: boolean\n /**\n * @default undefined\n */\n localeInitial: string | undefined\n }\n /**\n * @default true\n */\n components?: Partial<\n BvnComponentProps & {\n /**\n * @hint Globally sets all props with the matching name\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n global: Record<string, any>\n }\n >\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype UnmappedComponentProps<BFormSelectOption = any, BTableLite = any, BTable = any> = {\n BAspect: ComponentProps.BAspectProps\n BAutocomplete: ComponentProps.BAutocompleteProps\n BLink: ComponentProps.BLinkProps\n BAccordion: ComponentProps.BAccordionProps\n BApp: ComponentProps.BAppProps\n BDropdownDivider: ComponentProps.BDropdownDividerProps\n BDropdownGroup: ComponentProps.BDropdownGroupProps\n BDropdownItem: ComponentProps.BDropdownItemProps\n BDropdownItemButton: ComponentProps.BDropdownItemButtonProps\n BDropdownText: ComponentProps.BDropdownTextProps\n BFormFloatingLabel: ComponentProps.BFormFloatingLabelProps\n BFormRow: ComponentProps.BFormRowProps\n BFormText: ComponentProps.BFormTextProps\n BFormCheckbox: ComponentProps.BFormCheckboxProps\n BFormCheckboxGroup: ComponentProps.BFormCheckboxGroupProps\n BFormDatalist: ComponentProps.BFormDatalistProps\n BFormFile: ComponentProps.BFormFileProps\n BFormInput: ComponentProps.BFormInputProps\n BFormRadio: ComponentProps.BFormRadioProps\n BFormRadioGroup: ComponentProps.BFormRadioGroupProps\n BFormRating: ComponentProps.BFormRatingProps\n BFormSelect: ComponentProps.BFormSelectProps\n BFormSelectOption: ComponentProps.BFormSelectOptionProps<BFormSelectOption>\n BFormSelectOptionGroup: ComponentProps.BFormSelectOptionGroupProps\n BFormSpinbutton: ComponentProps.BFormSpinbuttonProps\n BFormTag: ComponentProps.BFormTagProps\n BFormTags: ComponentProps.BFormTagsProps\n BFormTextarea: ComponentProps.BFormTextareaProps\n BInputGroup: ComponentProps.BInputGroupProps\n BInputGroupText: ComponentProps.BInputGroupTextProps\n BListGroup: ComponentProps.BListGroupProps\n BListGroupItem: ComponentProps.BListGroupItemProps\n BNav: ComponentProps.BNavProps\n BNavForm: ComponentProps.BNavFormProps\n BNavItem: ComponentProps.BNavItemProps\n BNavText: ComponentProps.BNavTextProps\n BNavbar: ComponentProps.BNavbarProps\n BNavbarBrand: ComponentProps.BNavbarBrandProps\n BNavbarNav: ComponentProps.BNavbarNavProps\n BNavbarToggle: ComponentProps.BNavbarToggleProps\n BOffcanvas: ComponentProps.BOffcanvasProps\n BOrchestrator: ComponentProps.BAppProps\n BOverlay: ComponentProps.BOverlayProps\n BPagination: ComponentProps.BPaginationProps\n BPlaceholder: ComponentProps.BPlaceholderProps\n BPlaceholderButton: ComponentProps.BPlaceholderButtonProps\n BPlaceholderCard: ComponentProps.BPlaceholderCardProps\n BPlaceholderTable: ComponentProps.BPlaceholderTableProps\n BPlaceholderWrapper: ComponentProps.BPlaceholderWrapperProps\n BProgress: ComponentProps.BProgressProps\n BTab: ComponentProps.BTabProps\n BTabs: ComponentProps.BTabsProps\n BCollapse: ComponentProps.BCollapseProps\n BContainer: ComponentProps.BContainerProps\n BSpinner: ComponentProps.BSpinnerProps\n BAccordionItem: ComponentProps.BAccordionItemProps\n BAlert: ComponentProps.BAlertProps\n BAvatar: ComponentProps.BAvatarProps\n BAvatarGroup: ComponentProps.BAvatarGroupProps\n BBadge: ComponentProps.BBadgeProps\n BBreadcrumb: ComponentProps.BBreadcrumbProps\n BBreadcrumbItem: ComponentProps.BBreadcrumbItemProps\n BButton: ComponentProps.BButtonProps\n BButtonGroup: ComponentProps.BButtonGroupProps\n BButtonToolbar: ComponentProps.BButtonToolbarProps\n BCloseButton: ComponentProps.BCloseButtonProps\n BCard: ComponentProps.BCardProps\n BCardBody: ComponentProps.BCardBodyProps\n BCardGroup: ComponentProps.BCardGroupProps\n BCardSubtitle: ComponentProps.BCardSubtitleProps\n BCardText: ComponentProps.BCardTextProps\n BCardTitle: ComponentProps.BCardTitleProps\n BCarousel: ComponentProps.BCarouselProps\n BCarouselSlide: ComponentProps.BCarouselSlideProps\n BImg: ComponentProps.BImgProps\n BForm: ComponentProps.BFormProps\n BTableSimple: ComponentProps.BTableSimpleProps\n BTableLite: ComponentProps.BTableLiteProps<BTableLite>\n BTable: ComponentProps.BTableProps<BTable>\n BTr: ComponentProps.BTrProps\n BThead: ComponentProps.BTheadProps\n BTfoot: ComponentProps.BTfootProps\n BTd: ComponentProps.BTdProps\n BTbody: ComponentProps.BTbodyProps\n BTh: ComponentProps.BThProps\n BProgressBar: ComponentProps.BProgressBarProps\n BInputGroupAddon: ComponentProps.BInputGroupAddonProps\n BDropdown: ComponentProps.BDropdownProps\n BToast: ComponentProps.BToastProps\n BPopover: ComponentProps.BPopoverProps\n BTooltip: ComponentProps.BTooltipProps\n BModal: ComponentProps.BModalProps\n BCardFooter: ComponentProps.BCardFooterProps\n BCardHeader: ComponentProps.BCardHeaderProps\n BCardImg: ComponentProps.BCardImgProps\n BCol: ComponentProps.BColProps\n BDropdownForm: never\n BDropdownHeader: never\n BFormInvalidFeedback: ComponentProps.BFormInvalidFeedbackProps\n BFormValidFeedback: ComponentProps.BFormValidFeedbackProps\n BFormGroup: ComponentProps.BFormGroupProps\n BNavItemDropdown: ComponentProps.BDropdownProps\n BRow: ComponentProps.BRowProps\n BInput: ComponentProps.BFormInputProps\n BTimeField: ComponentProps.BTimeFieldProps\n BFormOtp: ComponentProps.BFormOtpProps\n BDateField: ComponentProps.BDateFieldProps\n BDatePicker: ComponentProps.BDatePickerProps\n BDateRangeField: ComponentProps.BDateRangeFieldProps\n BDateRangePicker: ComponentProps.BDateRangePickerProps\n BTimeRangeField: ComponentProps.BTimeRangeFieldProps\n showHide: ComponentProps.ShowHideProps\n}\n\nexport type BvnComponentProps = {\n [K in ComponentType]: UnmappedComponentProps[K]\n}\n\nexport type showHide = ComponentProps.ShowHideProps\n"],"mappings":";AAeA,IAAa,6BAA6B;CACxC,SAAS;CACT,YAAY;CACZ,gBAAgB;CAChB,QAAQ;CACR,MAAM;CACN,eAAe;CACf,SAAS;CACT,cAAc;CACd,QAAQ;CACR,aAAa;CACb,iBAAiB;CACjB,SAAS;CACT,cAAc;CACd,gBAAgB;CAChB,cAAc;CACd,OAAO;CACP,WAAW;CACX,aAAa;CACb,YAAY;CACZ,aAAa;CACb,UAAU;CACV,eAAe;CACf,WAAW;CACX,YAAY;CACZ,WAAW;CACX,gBAAgB;CAChB,MAAM;CACN,WAAW;CACX,YAAY;CACZ,YAAY;CACZ,aAAa;CACb,iBAAiB;CACjB,kBAAkB;CAClB,WAAW;CACX,kBAAkB;CAClB,eAAe;CACf,gBAAgB;CAChB,iBAAiB;CACjB,eAAe;CACf,qBAAqB;CACrB,eAAe;CACf,OAAO;CACP,eAAe;CACf,oBAAoB;CACpB,eAAe;CACf,WAAW;CACX,oBAAoB;CACpB,YAAY;CACZ,YAAY;CACZ,sBAAsB;CACtB,YAAY;CACZ,iBAAiB;CACjB,aAAa;CACb,UAAU;CACV,aAAa;CACb,mBAAmB;CACnB,wBAAwB;CACxB,iBAAiB;CACjB,UAAU;CACV,WAAW;CACX,WAAW;CACX,eAAe;CACf,oBAAoB;CACpB,MAAM;CACN,QAAQ;CACR,aAAa;CACb,iBAAiB;CACjB,YAAY;CACZ,gBAAgB;CAChB,QAAQ;CACR,MAAM;CACN,UAAU;CACV,UAAU;CACV,kBAAkB;CAClB,UAAU;CACV,SAAS;CACT,cAAc;CACd,YAAY;CACZ,eAAe;CACf,YAAY;CACZ,UAAU;CACV,UAAU;CACV,eAAe;CACf,aAAa;CACb,cAAc;CACd,oBAAoB;CACpB,kBAAkB;CAClB,mBAAmB;CACnB,qBAAqB;CACrB,UAAU;CACV,WAAW;CACX,MAAM;CACN,UAAU;CACV,MAAM;CACN,OAAO;CACP,QAAQ;CACR,UAAU;CACV,OAAO;CACP,cAAc;CACd,cAAc;CACd,YAAY;CACZ,QAAQ;CACR,QAAQ;CACR,KAAK;CACL,KAAK;CACL,QAAQ;CACR,QAAQ;CACR,KAAK;CACL,YAAY;CACZ,iBAAiB;CAClB;AACD,IAAa,iBAAiB,OAAO,OACnC,OAAO,KAAK,2BAA2B,CACxC;AAED,IAAa,6BAA6B;CACxC,aAAa;CACb,SAAS;CACT,WAAW;CACX,aAAa;CACb,UAAU;CACV,WAAW;CACZ;AACD,IAAa,iBAAiB,OAAO,OACnC,OAAO,KAAK,2BAA2B,CACxC;AAED,IAAa,8BAA8B;CACzC,eAAe;CACf,cAAc;CACd,UAAU;CACV,oBAAoB;CACpB,eAAe;CACf,cAAc;CACd,UAAU;CACV,oBAAoB;CACpB,WAAW;CACX,YAAY;CACZ,sBAAsB;CACtB,aAAa;CACb,oBAAoB;CACpB,yBAAyB;CAC1B;AACD,IAAa,kBAAkB,OAAO,OACpC,OAAO,KAAK,4BAA4B,CACzC"}
|
|
@@ -80,7 +80,7 @@ var componentsWithExternalPath = {
|
|
|
80
80
|
BNavbarNav: "/components/BNavbar",
|
|
81
81
|
BNavbarToggle: "/components/BNavbar",
|
|
82
82
|
BOffcanvas: "/components/BOffcanvas",
|
|
83
|
-
|
|
83
|
+
BFormOtp: "/components/BFormOtp",
|
|
84
84
|
BOverlay: "/components/BOverlay",
|
|
85
85
|
BOrchestrator: "/components/BApp",
|
|
86
86
|
BPagination: "/components/BPagination",
|
|
@@ -176,4 +176,4 @@ Object.defineProperty(exports, "directivesWithExternalPath", {
|
|
|
176
176
|
}
|
|
177
177
|
});
|
|
178
178
|
|
|
179
|
-
//# sourceMappingURL=BootstrapVueOptions-
|
|
179
|
+
//# sourceMappingURL=BootstrapVueOptions-DbXZtoXX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BootstrapVueOptions-DbXZtoXX.js","names":[],"sources":["../src/types/BootstrapVueOptions.ts"],"sourcesContent":["import type * as ExportedComponents from '../components'\nimport type * as ExportedDirectives from '../directives'\nimport type * as ExportedComposables from '../composables'\nimport type * as ComponentProps from './ComponentProps'\n\ntype AllComponentsTyped = typeof ExportedComponents\n\nexport type ComponentType = keyof AllComponentsTyped\nexport type DirectiveType = keyof typeof ExportedDirectives\nexport type ComposableType = keyof typeof ExportedComposables\n\nexport type BvnComponents = {\n [K in ComponentType]: AllComponentsTyped[K]\n}\n\nexport const componentsWithExternalPath = {\n BAspect: '/components/BAspect',\n BAccordion: '/components/BAccordion',\n BAccordionItem: '/components/BAccordion',\n BAlert: '/components/BAlert',\n BApp: '/components/BApp',\n BAutocomplete: '/components/BAutocomplete',\n BAvatar: '/components/BAvatar',\n BAvatarGroup: '/components/BAvatar',\n BBadge: '/components/BBadge',\n BBreadcrumb: '/components/BBreadcrumb',\n BBreadcrumbItem: '/components/BBreadcrumb',\n BButton: '/components/BButton',\n BButtonGroup: '/components/BButton',\n BButtonToolbar: '/components/BButton',\n BCloseButton: '/components/BButton',\n BCard: '/components/BCard',\n BCardBody: '/components/BCard',\n BCardFooter: '/components/BCard',\n BCardGroup: '/components/BCard',\n BCardHeader: '/components/BCard',\n BCardImg: '/components/BCard',\n BCardSubtitle: '/components/BCard',\n BCardText: '/components/BCard',\n BCardTitle: '/components/BCard',\n BCarousel: '/components/BCarousel',\n BCarouselSlide: '/components/BCarousel',\n BCol: '/components/BContainer',\n BCollapse: '/components/BCollapse',\n BContainer: '/components/BContainer',\n BDateField: '/components/BDateField',\n BDatePicker: '/components/BDatePicker',\n BDateRangeField: '/components/BDateField',\n BDateRangePicker: '/components/BDatePicker',\n BDropdown: '/components/BDropdown',\n BDropdownDivider: '/components/BDropdown',\n BDropdownForm: '/components/BDropdown',\n BDropdownGroup: '/components/BDropdown',\n BDropdownHeader: '/components/BDropdown',\n BDropdownItem: '/components/BDropdown',\n BDropdownItemButton: '/components/BDropdown',\n BDropdownText: '/components/BDropdown',\n BForm: '/components/BForm',\n BFormCheckbox: '/components/BFormCheckbox',\n BFormCheckboxGroup: '/components/BFormCheckbox',\n BFormDatalist: '/components/BForm',\n BFormFile: '/components/BFormFile',\n BFormFloatingLabel: '/components/BForm',\n BFormGroup: '/components/BFormGroup',\n BFormInput: '/components/BFormInput',\n BFormInvalidFeedback: '/components/BForm',\n BFormRadio: '/components/BFormRadio',\n BFormRadioGroup: '/components/BFormRadio',\n BFormRating: '/components/BFormRating',\n BFormRow: '/components/BForm',\n BFormSelect: '/components/BFormSelect',\n BFormSelectOption: '/components/BFormSelect',\n BFormSelectOptionGroup: '/components/BFormSelect',\n BFormSpinbutton: '/components/BFormSpinbutton',\n BFormTag: '/components/BFormTags',\n BFormTags: '/components/BFormTags',\n BFormText: '/components/BForm',\n BFormTextarea: '/components/BFormTextarea',\n BFormValidFeedback: '/components/BForm',\n BImg: '/components/BImg',\n BInput: '/components/BFormInput',\n BInputGroup: '/components/BInputGroup',\n BInputGroupText: '/components/BInputGroup',\n BListGroup: '/components/BListGroup',\n BListGroupItem: '/components/BListGroup',\n BModal: '/components/BModal',\n BNav: '/components/BNav',\n BNavForm: '/components/BNav',\n BNavItem: '/components/BNav',\n BNavItemDropdown: '/components/BNav',\n BNavText: '/components/BNav',\n BNavbar: '/components/BNavbar',\n BNavbarBrand: '/components/BNavbar',\n BNavbarNav: '/components/BNavbar',\n BNavbarToggle: '/components/BNavbar',\n BOffcanvas: '/components/BOffcanvas',\n BFormOtp: '/components/BFormOtp',\n BOverlay: '/components/BOverlay',\n BOrchestrator: '/components/BApp',\n BPagination: '/components/BPagination',\n BPlaceholder: '/components/BPlaceholder',\n BPlaceholderButton: '/components/BPlaceholder',\n BPlaceholderCard: '/components/BPlaceholder',\n BPlaceholderTable: '/components/BPlaceholder',\n BPlaceholderWrapper: '/components/BPlaceholder',\n BPopover: '/components/BPopover',\n BProgress: '/components/BProgress',\n BRow: '/components/BContainer',\n BSpinner: '/components/BSpinner',\n BTab: '/components/BTabs',\n BTabs: '/components/BTabs',\n BToast: '/components/BToast',\n BTooltip: '/components/BTooltip',\n BLink: '/components/BLink',\n BProgressBar: '/components/BProgress',\n BTableSimple: '/components/BTable',\n BTableLite: '/components/BTable',\n BTable: '/components/BTable',\n BTbody: '/components/BTable',\n BTd: '/components/BTable',\n BTh: '/components/BTable',\n BThead: '/components/BTable',\n BTfoot: '/components/BTable',\n BTr: '/components/BTable',\n BTimeField: '/components/BTimeField',\n BTimeRangeField: '/components/BDateField',\n} as const satisfies Record<ComponentType, string>\nexport const componentNames = Object.freeze(\n Object.keys(componentsWithExternalPath) as ComponentType[]\n)\n\nexport const directivesWithExternalPath = {\n vBColorMode: '/directives/BColorMode',\n vBModal: '/directives/BModal',\n vBPopover: '/directives/BPopover',\n vBScrollspy: '/directives/BScrollspy',\n vBToggle: '/directives/BToggle',\n vBTooltip: '/directives/BTooltip',\n} as const satisfies Record<DirectiveType, string>\nexport const directiveNames = Object.freeze(\n Object.keys(directivesWithExternalPath) as DirectiveType[]\n)\n\nexport const composablesWithExternalPath = {\n useBreadcrumb: '/composables/useBreadcrumb',\n useColorMode: '/composables/useColorMode',\n useModal: '/composables/useModal',\n useModalController: '/composables/useModal',\n useScrollLock: '/composables/useScrollLock',\n useScrollspy: '/composables/useScrollspy',\n useToast: '/composables/useToast',\n useToastController: '/composables/useToast',\n useToggle: '/composables/useToggle',\n usePopover: '/composables/usePopover',\n usePopoverController: '/composables/usePopover',\n useRegistry: '/composables/useRegistry',\n useProvideDefaults: '/composables/useProvideDefaults',\n useOrchestratorRegistry: '/composables/orchestratorShared',\n} as const satisfies Record<ComposableType, string>\nexport const composableNames = Object.freeze(\n Object.keys(composablesWithExternalPath) as ComposableType[]\n)\n\nexport type ConfigurationOption<T extends string> = Partial<Record<T, boolean>> & {all: boolean}\nexport interface BootstrapVueOptions {\n /**\n * @default true\n */\n orchestrator?: boolean\n /**\n * @default true\n */\n registries?: boolean\n /**\n * @default false\n */\n rtl?:\n | boolean\n | {\n /**\n * @default false\n */\n rtlInitial: boolean\n /**\n * @default undefined\n */\n localeInitial: string | undefined\n }\n /**\n * @default true\n */\n components?: Partial<\n BvnComponentProps & {\n /**\n * @hint Globally sets all props with the matching name\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n global: Record<string, any>\n }\n >\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype UnmappedComponentProps<BFormSelectOption = any, BTableLite = any, BTable = any> = {\n BAspect: ComponentProps.BAspectProps\n BAutocomplete: ComponentProps.BAutocompleteProps\n BLink: ComponentProps.BLinkProps\n BAccordion: ComponentProps.BAccordionProps\n BApp: ComponentProps.BAppProps\n BDropdownDivider: ComponentProps.BDropdownDividerProps\n BDropdownGroup: ComponentProps.BDropdownGroupProps\n BDropdownItem: ComponentProps.BDropdownItemProps\n BDropdownItemButton: ComponentProps.BDropdownItemButtonProps\n BDropdownText: ComponentProps.BDropdownTextProps\n BFormFloatingLabel: ComponentProps.BFormFloatingLabelProps\n BFormRow: ComponentProps.BFormRowProps\n BFormText: ComponentProps.BFormTextProps\n BFormCheckbox: ComponentProps.BFormCheckboxProps\n BFormCheckboxGroup: ComponentProps.BFormCheckboxGroupProps\n BFormDatalist: ComponentProps.BFormDatalistProps\n BFormFile: ComponentProps.BFormFileProps\n BFormInput: ComponentProps.BFormInputProps\n BFormRadio: ComponentProps.BFormRadioProps\n BFormRadioGroup: ComponentProps.BFormRadioGroupProps\n BFormRating: ComponentProps.BFormRatingProps\n BFormSelect: ComponentProps.BFormSelectProps\n BFormSelectOption: ComponentProps.BFormSelectOptionProps<BFormSelectOption>\n BFormSelectOptionGroup: ComponentProps.BFormSelectOptionGroupProps\n BFormSpinbutton: ComponentProps.BFormSpinbuttonProps\n BFormTag: ComponentProps.BFormTagProps\n BFormTags: ComponentProps.BFormTagsProps\n BFormTextarea: ComponentProps.BFormTextareaProps\n BInputGroup: ComponentProps.BInputGroupProps\n BInputGroupText: ComponentProps.BInputGroupTextProps\n BListGroup: ComponentProps.BListGroupProps\n BListGroupItem: ComponentProps.BListGroupItemProps\n BNav: ComponentProps.BNavProps\n BNavForm: ComponentProps.BNavFormProps\n BNavItem: ComponentProps.BNavItemProps\n BNavText: ComponentProps.BNavTextProps\n BNavbar: ComponentProps.BNavbarProps\n BNavbarBrand: ComponentProps.BNavbarBrandProps\n BNavbarNav: ComponentProps.BNavbarNavProps\n BNavbarToggle: ComponentProps.BNavbarToggleProps\n BOffcanvas: ComponentProps.BOffcanvasProps\n BOrchestrator: ComponentProps.BAppProps\n BOverlay: ComponentProps.BOverlayProps\n BPagination: ComponentProps.BPaginationProps\n BPlaceholder: ComponentProps.BPlaceholderProps\n BPlaceholderButton: ComponentProps.BPlaceholderButtonProps\n BPlaceholderCard: ComponentProps.BPlaceholderCardProps\n BPlaceholderTable: ComponentProps.BPlaceholderTableProps\n BPlaceholderWrapper: ComponentProps.BPlaceholderWrapperProps\n BProgress: ComponentProps.BProgressProps\n BTab: ComponentProps.BTabProps\n BTabs: ComponentProps.BTabsProps\n BCollapse: ComponentProps.BCollapseProps\n BContainer: ComponentProps.BContainerProps\n BSpinner: ComponentProps.BSpinnerProps\n BAccordionItem: ComponentProps.BAccordionItemProps\n BAlert: ComponentProps.BAlertProps\n BAvatar: ComponentProps.BAvatarProps\n BAvatarGroup: ComponentProps.BAvatarGroupProps\n BBadge: ComponentProps.BBadgeProps\n BBreadcrumb: ComponentProps.BBreadcrumbProps\n BBreadcrumbItem: ComponentProps.BBreadcrumbItemProps\n BButton: ComponentProps.BButtonProps\n BButtonGroup: ComponentProps.BButtonGroupProps\n BButtonToolbar: ComponentProps.BButtonToolbarProps\n BCloseButton: ComponentProps.BCloseButtonProps\n BCard: ComponentProps.BCardProps\n BCardBody: ComponentProps.BCardBodyProps\n BCardGroup: ComponentProps.BCardGroupProps\n BCardSubtitle: ComponentProps.BCardSubtitleProps\n BCardText: ComponentProps.BCardTextProps\n BCardTitle: ComponentProps.BCardTitleProps\n BCarousel: ComponentProps.BCarouselProps\n BCarouselSlide: ComponentProps.BCarouselSlideProps\n BImg: ComponentProps.BImgProps\n BForm: ComponentProps.BFormProps\n BTableSimple: ComponentProps.BTableSimpleProps\n BTableLite: ComponentProps.BTableLiteProps<BTableLite>\n BTable: ComponentProps.BTableProps<BTable>\n BTr: ComponentProps.BTrProps\n BThead: ComponentProps.BTheadProps\n BTfoot: ComponentProps.BTfootProps\n BTd: ComponentProps.BTdProps\n BTbody: ComponentProps.BTbodyProps\n BTh: ComponentProps.BThProps\n BProgressBar: ComponentProps.BProgressBarProps\n BInputGroupAddon: ComponentProps.BInputGroupAddonProps\n BDropdown: ComponentProps.BDropdownProps\n BToast: ComponentProps.BToastProps\n BPopover: ComponentProps.BPopoverProps\n BTooltip: ComponentProps.BTooltipProps\n BModal: ComponentProps.BModalProps\n BCardFooter: ComponentProps.BCardFooterProps\n BCardHeader: ComponentProps.BCardHeaderProps\n BCardImg: ComponentProps.BCardImgProps\n BCol: ComponentProps.BColProps\n BDropdownForm: never\n BDropdownHeader: never\n BFormInvalidFeedback: ComponentProps.BFormInvalidFeedbackProps\n BFormValidFeedback: ComponentProps.BFormValidFeedbackProps\n BFormGroup: ComponentProps.BFormGroupProps\n BNavItemDropdown: ComponentProps.BDropdownProps\n BRow: ComponentProps.BRowProps\n BInput: ComponentProps.BFormInputProps\n BTimeField: ComponentProps.BTimeFieldProps\n BFormOtp: ComponentProps.BFormOtpProps\n BDateField: ComponentProps.BDateFieldProps\n BDatePicker: ComponentProps.BDatePickerProps\n BDateRangeField: ComponentProps.BDateRangeFieldProps\n BDateRangePicker: ComponentProps.BDateRangePickerProps\n BTimeRangeField: ComponentProps.BTimeRangeFieldProps\n showHide: ComponentProps.ShowHideProps\n}\n\nexport type BvnComponentProps = {\n [K in ComponentType]: UnmappedComponentProps[K]\n}\n\nexport type showHide = ComponentProps.ShowHideProps\n"],"mappings":";AAeA,IAAa,6BAA6B;CACxC,SAAS;CACT,YAAY;CACZ,gBAAgB;CAChB,QAAQ;CACR,MAAM;CACN,eAAe;CACf,SAAS;CACT,cAAc;CACd,QAAQ;CACR,aAAa;CACb,iBAAiB;CACjB,SAAS;CACT,cAAc;CACd,gBAAgB;CAChB,cAAc;CACd,OAAO;CACP,WAAW;CACX,aAAa;CACb,YAAY;CACZ,aAAa;CACb,UAAU;CACV,eAAe;CACf,WAAW;CACX,YAAY;CACZ,WAAW;CACX,gBAAgB;CAChB,MAAM;CACN,WAAW;CACX,YAAY;CACZ,YAAY;CACZ,aAAa;CACb,iBAAiB;CACjB,kBAAkB;CAClB,WAAW;CACX,kBAAkB;CAClB,eAAe;CACf,gBAAgB;CAChB,iBAAiB;CACjB,eAAe;CACf,qBAAqB;CACrB,eAAe;CACf,OAAO;CACP,eAAe;CACf,oBAAoB;CACpB,eAAe;CACf,WAAW;CACX,oBAAoB;CACpB,YAAY;CACZ,YAAY;CACZ,sBAAsB;CACtB,YAAY;CACZ,iBAAiB;CACjB,aAAa;CACb,UAAU;CACV,aAAa;CACb,mBAAmB;CACnB,wBAAwB;CACxB,iBAAiB;CACjB,UAAU;CACV,WAAW;CACX,WAAW;CACX,eAAe;CACf,oBAAoB;CACpB,MAAM;CACN,QAAQ;CACR,aAAa;CACb,iBAAiB;CACjB,YAAY;CACZ,gBAAgB;CAChB,QAAQ;CACR,MAAM;CACN,UAAU;CACV,UAAU;CACV,kBAAkB;CAClB,UAAU;CACV,SAAS;CACT,cAAc;CACd,YAAY;CACZ,eAAe;CACf,YAAY;CACZ,UAAU;CACV,UAAU;CACV,eAAe;CACf,aAAa;CACb,cAAc;CACd,oBAAoB;CACpB,kBAAkB;CAClB,mBAAmB;CACnB,qBAAqB;CACrB,UAAU;CACV,WAAW;CACX,MAAM;CACN,UAAU;CACV,MAAM;CACN,OAAO;CACP,QAAQ;CACR,UAAU;CACV,OAAO;CACP,cAAc;CACd,cAAc;CACd,YAAY;CACZ,QAAQ;CACR,QAAQ;CACR,KAAK;CACL,KAAK;CACL,QAAQ;CACR,QAAQ;CACR,KAAK;CACL,YAAY;CACZ,iBAAiB;CAClB;AACD,IAAa,iBAAiB,OAAO,OACnC,OAAO,KAAK,2BAA2B,CACxC;AAED,IAAa,6BAA6B;CACxC,aAAa;CACb,SAAS;CACT,WAAW;CACX,aAAa;CACb,UAAU;CACV,WAAW;CACZ;AACD,IAAa,iBAAiB,OAAO,OACnC,OAAO,KAAK,2BAA2B,CACxC;AAED,IAAa,8BAA8B;CACzC,eAAe;CACf,cAAc;CACd,UAAU;CACV,oBAAoB;CACpB,eAAe;CACf,cAAc;CACd,UAAU;CACV,oBAAoB;CACpB,WAAW;CACX,YAAY;CACZ,sBAAsB;CACtB,aAAa;CACb,oBAAoB;CACpB,yBAAyB;CAC1B;AACD,IAAa,kBAAkB,OAAO,OACpC,OAAO,KAAK,4BAA4B,CACzC"}
|
|
@@ -1150,29 +1150,29 @@ input[type=file].form-control-input-file-hide-button::file-selector-button {
|
|
|
1150
1150
|
padding-left: 0.5rem;
|
|
1151
1151
|
}
|
|
1152
1152
|
|
|
1153
|
-
.b-otp
|
|
1153
|
+
.b-form-otp {
|
|
1154
1154
|
display: inline-flex;
|
|
1155
1155
|
}
|
|
1156
1156
|
|
|
1157
|
-
.b-otp-
|
|
1157
|
+
.b-form-otp-field {
|
|
1158
1158
|
text-align: center;
|
|
1159
1159
|
width: 2.5rem;
|
|
1160
1160
|
padding-left: 0;
|
|
1161
1161
|
padding-right: 0;
|
|
1162
1162
|
}
|
|
1163
|
-
.b-otp-
|
|
1163
|
+
.b-form-otp-field[type=number] {
|
|
1164
1164
|
-moz-appearance: textfield;
|
|
1165
1165
|
}
|
|
1166
|
-
.b-otp-
|
|
1166
|
+
.b-form-otp-field[type=number]::-webkit-outer-spin-button, .b-form-otp-field[type=number]::-webkit-inner-spin-button {
|
|
1167
1167
|
-webkit-appearance: none;
|
|
1168
1168
|
margin: 0;
|
|
1169
1169
|
}
|
|
1170
1170
|
|
|
1171
|
-
.b-otp-
|
|
1171
|
+
.b-form-otp-sm .b-form-otp-field {
|
|
1172
1172
|
width: 2rem;
|
|
1173
1173
|
}
|
|
1174
1174
|
|
|
1175
|
-
.b-otp-
|
|
1175
|
+
.b-form-otp-lg .b-form-otp-field {
|
|
1176
1176
|
width: 3rem;
|
|
1177
1177
|
}
|
|
1178
1178
|
|
|
@@ -9,7 +9,7 @@ import { t as BCollapse_default } from "./BCollapse-D-xTGkX_.mjs";
|
|
|
9
9
|
import { n as BAccordionItem_default, t as BAccordion_default } from "./BAccordion-CNzV6f8e.mjs";
|
|
10
10
|
import { t as BSpinner_default } from "./BSpinner-BpnwONvx.mjs";
|
|
11
11
|
import { t as BLink_default } from "./BLink-Cz5YCsnv.mjs";
|
|
12
|
-
import { a as directiveNames, i as composablesWithExternalPath, n as componentsWithExternalPath, o as directivesWithExternalPath, r as composableNames, t as componentNames } from "./BootstrapVueOptions-
|
|
12
|
+
import { a as directiveNames, i as composablesWithExternalPath, n as componentsWithExternalPath, o as directivesWithExternalPath, r as composableNames, t as componentNames } from "./BootstrapVueOptions-D3flIVqU.mjs";
|
|
13
13
|
import { t as types_exports } from "./src/types/index.mjs";
|
|
14
14
|
import { t as BButton_default } from "./BButton-BRvIFnRm.mjs";
|
|
15
15
|
import { t as BCloseButton_default } from "./BCloseButton-CjgbR1Ec.mjs";
|
|
@@ -18,8 +18,8 @@ import { t as BAlert_default } from "./BAlert-Qiyqq4rE.mjs";
|
|
|
18
18
|
import { n as BOrchestrator_default, t as BApp_default } from "./BApp-DJWC2mB8.mjs";
|
|
19
19
|
import { useProvideDefaults } from "./src/composables/useProvideDefaults/index.mjs";
|
|
20
20
|
import { useRegistry } from "./src/composables/useRegistry/index.mjs";
|
|
21
|
-
import { t as BAutocomplete_default } from "./BAutocomplete-
|
|
22
|
-
import { t as
|
|
21
|
+
import { t as BAutocomplete_default } from "./BAutocomplete-QBIaWPY1.mjs";
|
|
22
|
+
import { t as BFormOtp_default } from "./BFormOtp-DYjsPhQN.mjs";
|
|
23
23
|
import { n as BDatePicker_default, t as BDateRangePicker_default } from "./BDatePicker-DfzZBWjU.mjs";
|
|
24
24
|
import { t as BTimeField_default } from "./BTimeField-DSWZeGYP.mjs";
|
|
25
25
|
import { n as BDateRangeField_default, r as BDateField_default, t as BTimeRangeField_default } from "./BDateField-BJIq6gs9.mjs";
|
|
@@ -41,7 +41,7 @@ import { t as BDropdown_default } from "./BDropdown-DAHnN54Z.mjs";
|
|
|
41
41
|
import { a as BDropdownGroup_default, i as BDropdownHeader_default, n as BDropdownItemButton_default, o as BDropdownForm_default, r as BDropdownItem_default, s as BDropdownDivider_default, t as BDropdownText_default } from "./BDropdown-BW_O8vPQ.mjs";
|
|
42
42
|
import { t as BForm_default } from "./BForm-Oh6PpdcD.mjs";
|
|
43
43
|
import { t as BFormSelectOption_default } from "./BFormSelectOption-O8cyyv3i.mjs";
|
|
44
|
-
import { n as BFormDatalist_default, t as BFormFloatingLabel_default } from "./BForm-
|
|
44
|
+
import { n as BFormDatalist_default, t as BFormFloatingLabel_default } from "./BForm-C8I6v7bU.mjs";
|
|
45
45
|
import { i as BFormInvalidFeedback_default, n as BFormText_default, r as BFormRow_default, t as BFormValidFeedback_default } from "./BFormValidFeedback-_Dgzm0Ag.mjs";
|
|
46
46
|
import { n as BFormCheckbox_default, t as BFormCheckboxGroup_default } from "./BFormCheckbox-CcDK-lh1.mjs";
|
|
47
47
|
import { t as BFormFile_default } from "./BFormFile-Bf3GMYeX.mjs";
|
|
@@ -49,7 +49,7 @@ import { t as BFormGroup_default } from "./BFormGroup--38dFj0X.mjs";
|
|
|
49
49
|
import { t as BFormInput_default } from "./BFormInput-Dg9dbwHp.mjs";
|
|
50
50
|
import { n as BFormRadio_default, t as BFormRadioGroup_default } from "./BFormRadio-CRDbgMiR.mjs";
|
|
51
51
|
import { t as BFormRating_default } from "./BFormRating-Bb_ACp-9.mjs";
|
|
52
|
-
import { n as BFormSelectOptionGroup_default, t as BFormSelect_default } from "./BFormSelect-
|
|
52
|
+
import { n as BFormSelectOptionGroup_default, t as BFormSelect_default } from "./BFormSelect-Bb8yE8vz.mjs";
|
|
53
53
|
import { t as BFormSpinbutton_default } from "./BFormSpinbutton-BLO0Yf36.mjs";
|
|
54
54
|
import { t as BFormTags_default } from "./BFormTags-CJb4H67g.mjs";
|
|
55
55
|
import { t as BFormTextarea_default } from "./BFormTextarea-BMk05ojJ.mjs";
|
|
@@ -86,4 +86,4 @@ import { registryPlugin } from "./src/plugins/registry/index.mjs";
|
|
|
86
86
|
import { orchestratorPlugin } from "./src/plugins/orchestrator/index.mjs";
|
|
87
87
|
import { createBootstrap } from "./src/plugins/createBootstrap/index.mjs";
|
|
88
88
|
import { t as plugins_exports } from "./src/plugins/index.mjs";
|
|
89
|
-
export { BAccordion_default as BAccordion, BAccordionItem_default as BAccordionItem, BAlert_default as BAlert, BApp_default as BApp, BAspect_default as BAspect, BAutocomplete_default as BAutocomplete, BAvatar_default as BAvatar, BAvatarGroup_default as BAvatarGroup, BBadge_default as BBadge, BBreadcrumb_default as BBreadcrumb, BBreadcrumbItem_default as BBreadcrumbItem, BButton_default as BButton, BButtonGroup_default as BButtonGroup, BButtonToolbar_default as BButtonToolbar, BCard_default as BCard, BCardBody_default as BCardBody, BCardFooter_default as BCardFooter, BCardGroup_default as BCardGroup, BCardHeader_default as BCardHeader, BCardImg_default as BCardImg, BCardSubtitle_default as BCardSubtitle, BCardText_default as BCardText, BCardTitle_default as BCardTitle, BCarousel_default as BCarousel, BCarouselSlide_default as BCarouselSlide, BCloseButton_default as BCloseButton, BCol_default as BCol, BCollapse_default as BCollapse, BContainer_default as BContainer, BDateField_default as BDateField, BDatePicker_default as BDatePicker, BDateRangeField_default as BDateRangeField, BDateRangePicker_default as BDateRangePicker, BDropdown_default as BDropdown, BDropdownDivider_default as BDropdownDivider, BDropdownForm_default as BDropdownForm, BDropdownGroup_default as BDropdownGroup, BDropdownHeader_default as BDropdownHeader, BDropdownItem_default as BDropdownItem, BDropdownItemButton_default as BDropdownItemButton, BDropdownText_default as BDropdownText, BForm_default as BForm, BFormCheckbox_default as BFormCheckbox, BFormCheckboxGroup_default as BFormCheckboxGroup, BFormDatalist_default as BFormDatalist, BFormFile_default as BFormFile, BFormFloatingLabel_default as BFormFloatingLabel, BFormGroup_default as BFormGroup, BFormInput_default as BFormInput, BFormInput_default as BInput, BFormInvalidFeedback_default as BFormInvalidFeedback, BFormRadio_default as BFormRadio, BFormRadioGroup_default as BFormRadioGroup, BFormRating_default as BFormRating, BFormRow_default as BFormRow, BFormSelect_default as BFormSelect, BFormSelectOption_default as BFormSelectOption, BFormSelectOptionGroup_default as BFormSelectOptionGroup, BFormSpinbutton_default as BFormSpinbutton, BFormTag_default as BFormTag, BFormTags_default as BFormTags, BFormText_default as BFormText, BFormTextarea_default as BFormTextarea, BFormValidFeedback_default as BFormValidFeedback, BImg_default as BImg, BInputGroup_default as BInputGroup, BInputGroupText_default as BInputGroupText, BLink_default as BLink, BListGroup_default as BListGroup, BListGroupItem_default as BListGroupItem, BModal_default as BModal, BNav_default as BNav, BNavForm_default as BNavForm, BNavItem_default as BNavItem, BNavItemDropdown_default as BNavItemDropdown, BNavText_default as BNavText, BNavbar_default as BNavbar, BNavbarBrand_default as BNavbarBrand, BNavbarNav_default as BNavbarNav, BNavbarToggle_default as BNavbarToggle, BOffcanvas_default as BOffcanvas, BOrchestrator_default as BOrchestrator,
|
|
89
|
+
export { BAccordion_default as BAccordion, BAccordionItem_default as BAccordionItem, BAlert_default as BAlert, BApp_default as BApp, BAspect_default as BAspect, BAutocomplete_default as BAutocomplete, BAvatar_default as BAvatar, BAvatarGroup_default as BAvatarGroup, BBadge_default as BBadge, BBreadcrumb_default as BBreadcrumb, BBreadcrumbItem_default as BBreadcrumbItem, BButton_default as BButton, BButtonGroup_default as BButtonGroup, BButtonToolbar_default as BButtonToolbar, BCard_default as BCard, BCardBody_default as BCardBody, BCardFooter_default as BCardFooter, BCardGroup_default as BCardGroup, BCardHeader_default as BCardHeader, BCardImg_default as BCardImg, BCardSubtitle_default as BCardSubtitle, BCardText_default as BCardText, BCardTitle_default as BCardTitle, BCarousel_default as BCarousel, BCarouselSlide_default as BCarouselSlide, BCloseButton_default as BCloseButton, BCol_default as BCol, BCollapse_default as BCollapse, BContainer_default as BContainer, BDateField_default as BDateField, BDatePicker_default as BDatePicker, BDateRangeField_default as BDateRangeField, BDateRangePicker_default as BDateRangePicker, BDropdown_default as BDropdown, BDropdownDivider_default as BDropdownDivider, BDropdownForm_default as BDropdownForm, BDropdownGroup_default as BDropdownGroup, BDropdownHeader_default as BDropdownHeader, BDropdownItem_default as BDropdownItem, BDropdownItemButton_default as BDropdownItemButton, BDropdownText_default as BDropdownText, BForm_default as BForm, BFormCheckbox_default as BFormCheckbox, BFormCheckboxGroup_default as BFormCheckboxGroup, BFormDatalist_default as BFormDatalist, BFormFile_default as BFormFile, BFormFloatingLabel_default as BFormFloatingLabel, BFormGroup_default as BFormGroup, BFormInput_default as BFormInput, BFormInput_default as BInput, BFormInvalidFeedback_default as BFormInvalidFeedback, BFormOtp_default as BFormOtp, BFormRadio_default as BFormRadio, BFormRadioGroup_default as BFormRadioGroup, BFormRating_default as BFormRating, BFormRow_default as BFormRow, BFormSelect_default as BFormSelect, BFormSelectOption_default as BFormSelectOption, BFormSelectOptionGroup_default as BFormSelectOptionGroup, BFormSpinbutton_default as BFormSpinbutton, BFormTag_default as BFormTag, BFormTags_default as BFormTags, BFormText_default as BFormText, BFormTextarea_default as BFormTextarea, BFormValidFeedback_default as BFormValidFeedback, BImg_default as BImg, BInputGroup_default as BInputGroup, BInputGroupText_default as BInputGroupText, BLink_default as BLink, BListGroup_default as BListGroup, BListGroupItem_default as BListGroupItem, BModal_default as BModal, BNav_default as BNav, BNavForm_default as BNavForm, BNavItem_default as BNavItem, BNavItemDropdown_default as BNavItemDropdown, BNavText_default as BNavText, BNavbar_default as BNavbar, BNavbarBrand_default as BNavbarBrand, BNavbarNav_default as BNavbarNav, BNavbarToggle_default as BNavbarToggle, BOffcanvas_default as BOffcanvas, BOrchestrator_default as BOrchestrator, BOverlay_default as BOverlay, BPagination_default as BPagination, BPlaceholder_default as BPlaceholder, BPlaceholderButton_default as BPlaceholderButton, BPlaceholderCard_default as BPlaceholderCard, BPlaceholderTable_default as BPlaceholderTable, BPlaceholderWrapper_default as BPlaceholderWrapper, BPopover_default as BPopover, BProgress_default as BProgress, BProgressBar_default as BProgressBar, BRow_default as BRow, BSpinner_default as BSpinner, BTab_default as BTab, BTable_default as BTable, BTableLite_default as BTableLite, BTableSimple_default as BTableSimple, BTabs_default as BTabs, BTbody_default as BTbody, BTd_default as BTd, BTfoot_default as BTfoot, BTh_default as BTh, BThead_default as BThead, BTimeField_default as BTimeField, BTimeRangeField_default as BTimeRangeField, BToast_default as BToast, BTooltip_default as BTooltip, BTr_default as BTr, BootstrapVueNextResolver, BvCarouselEvent, BvEvent, BvTriggerableEvent, components_exports as Components, composables_exports as Composables, directives_exports as Directives, plugins_exports as Plugins, resolvers_exports as Resolvers, types_exports as Types, utils_exports as Utils, componentNames, componentsWithExternalPath, composableNames, composablesWithExternalPath, createBootstrap, directiveNames, directivesWithExternalPath, orchestratorPlugin, registryPlugin, rtlPlugin, useBreadcrumb, useColorMode, useModal, useModalController, useOrchestratorRegistry, usePopover, usePopoverController, useProvideDefaults, useRegistry, useScrollLock, useScrollspy, useToast, useToastController, useToggle, vBColorMode, vBToggle as vBModal, vBToggle, vBPopover, vBScrollspy, vBTooltip };
|
|
@@ -10,7 +10,7 @@ const require_BCollapse = require("./BCollapse-DZ1z2c8U.js");
|
|
|
10
10
|
const require_BAccordion = require("./BAccordion-CJZMsvwP.js");
|
|
11
11
|
const require_BSpinner = require("./BSpinner-8UMAINYb.js");
|
|
12
12
|
const require_BLink = require("./BLink-uemyYKst.js");
|
|
13
|
-
const require_BootstrapVueOptions = require("./BootstrapVueOptions-
|
|
13
|
+
const require_BootstrapVueOptions = require("./BootstrapVueOptions-DbXZtoXX.js");
|
|
14
14
|
const require_src_types_index = require("./src/types/index.umd.js");
|
|
15
15
|
const require_BButton = require("./BButton-DBRs8Pz_.js");
|
|
16
16
|
const require_BCloseButton = require("./BCloseButton-CN__Jjcj.js");
|
|
@@ -19,8 +19,8 @@ const require_BAlert = require("./BAlert-BnT7fF6B.js");
|
|
|
19
19
|
const require_BApp = require("./BApp-DaM0UKIg.js");
|
|
20
20
|
const require_src_composables_useProvideDefaults_index = require("./src/composables/useProvideDefaults/index.umd.js");
|
|
21
21
|
const require_src_composables_useRegistry_index = require("./src/composables/useRegistry/index.umd.js");
|
|
22
|
-
const require_BAutocomplete = require("./BAutocomplete-
|
|
23
|
-
const
|
|
22
|
+
const require_BAutocomplete = require("./BAutocomplete-jAlZC6_t.js");
|
|
23
|
+
const require_BFormOtp = require("./BFormOtp-C1YJvwN8.js");
|
|
24
24
|
const require_BDatePicker = require("./BDatePicker-BQN6qZXa.js");
|
|
25
25
|
const require_BTimeField = require("./BTimeField-VTrtxGkI.js");
|
|
26
26
|
const require_BDateField = require("./BDateField-RWwEMIwd.js");
|
|
@@ -42,7 +42,7 @@ const require_BDropdown = require("./BDropdown-C1AxRj81.js");
|
|
|
42
42
|
const require_BDropdown$1 = require("./BDropdown-CuVOxCzu.js");
|
|
43
43
|
const require_BForm = require("./BForm-Bp7SFxiK.js");
|
|
44
44
|
const require_BFormSelectOption = require("./BFormSelectOption-BY4P8HOf.js");
|
|
45
|
-
const require_BForm$1 = require("./BForm-
|
|
45
|
+
const require_BForm$1 = require("./BForm-_h0kYDl7.js");
|
|
46
46
|
const require_BFormValidFeedback = require("./BFormValidFeedback-DvTgwqSe.js");
|
|
47
47
|
const require_BFormCheckbox = require("./BFormCheckbox-Bdk2rgVe.js");
|
|
48
48
|
const require_BFormFile = require("./BFormFile-BWknj7fW.js");
|
|
@@ -50,7 +50,7 @@ const require_BFormGroup = require("./BFormGroup-BwO1BZD1.js");
|
|
|
50
50
|
const require_BFormInput = require("./BFormInput-BuRSGYdY.js");
|
|
51
51
|
const require_BFormRadio = require("./BFormRadio-DuVYw-Vs.js");
|
|
52
52
|
const require_BFormRating = require("./BFormRating-CNqf91vN.js");
|
|
53
|
-
const require_BFormSelect = require("./BFormSelect-
|
|
53
|
+
const require_BFormSelect = require("./BFormSelect-DIKVsG--.js");
|
|
54
54
|
const require_BFormSpinbutton = require("./BFormSpinbutton-BaOTL1k1.js");
|
|
55
55
|
const require_BFormTags = require("./BFormTags-BFA6xbr3.js");
|
|
56
56
|
const require_BFormTextarea = require("./BFormTextarea-8c3B3kAI.js");
|
|
@@ -137,6 +137,7 @@ exports.BFormFloatingLabel = require_BForm$1.BFormFloatingLabel_default;
|
|
|
137
137
|
exports.BFormGroup = require_BFormGroup.BFormGroup_default;
|
|
138
138
|
exports.BFormInput = require_BFormInput.BFormInput_default;
|
|
139
139
|
exports.BFormInvalidFeedback = require_BFormValidFeedback.BFormInvalidFeedback_default;
|
|
140
|
+
exports.BFormOtp = require_BFormOtp.BFormOtp_default;
|
|
140
141
|
exports.BFormRadio = require_BFormRadio.BFormRadio_default;
|
|
141
142
|
exports.BFormRadioGroup = require_BFormRadio.BFormRadioGroup_default;
|
|
142
143
|
exports.BFormRating = require_BFormRating.BFormRating_default;
|
|
@@ -169,7 +170,6 @@ exports.BNavbarNav = require_BNavbar.BNavbarNav_default;
|
|
|
169
170
|
exports.BNavbarToggle = require_BNavbar.BNavbarToggle_default;
|
|
170
171
|
exports.BOffcanvas = require_BOffcanvas.BOffcanvas_default;
|
|
171
172
|
exports.BOrchestrator = require_BApp.BOrchestrator_default;
|
|
172
|
-
exports.BOtpInput = require_BOtpInput.BOtpInput_default;
|
|
173
173
|
exports.BOverlay = require_BOverlay.BOverlay_default;
|
|
174
174
|
exports.BPagination = require_BPagination.BPagination_default;
|
|
175
175
|
exports.BPlaceholder = require_BPlaceholder.BPlaceholder_default;
|