bootstrap-vue-next 0.46.0 → 0.46.1
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/{BForm-C5PR2ust.js → BForm-CcbrqF35.js} +2 -2
- package/dist/{BForm-C5PR2ust.js.map → BForm-CcbrqF35.js.map} +1 -1
- package/dist/{BFormGroup-BE5tGz_g.js → BFormGroup-D3R7DxxF.js} +2 -2
- package/dist/{BFormGroup-BE5tGz_g.js.map → BFormGroup-D3R7DxxF.js.map} +1 -1
- package/dist/{BFormValidFeedback-ClqLRxtH.js → BFormValidFeedback-BTNOXbQ6.js} +2 -2
- package/dist/{BFormValidFeedback-ClqLRxtH.js.map → BFormValidFeedback-BTNOXbQ6.js.map} +1 -1
- package/dist/bootstrap-vue-next.mjs +3 -3
- package/dist/src/components/BForm/index.mjs +2 -2
- package/dist/src/components/BFormGroup/index.mjs +1 -1
- package/dist/src/components/index.mjs +3 -3
- package/package.json +1 -1
|
@@ -3,7 +3,7 @@ import { t as useDefaults } from "./useDefaults-BzP4qZBu.js";
|
|
|
3
3
|
import { t as useId$1 } from "./useId-Fh-Arhb7.js";
|
|
4
4
|
import { t as useFormSelect } from "./useFormSelect-CwS8YuiQ.js";
|
|
5
5
|
import { t as BFormSelectOption_default } from "./BFormSelectOption-C8orMj24.js";
|
|
6
|
-
import { a as useProvideFormGroupData } from "./BFormValidFeedback-
|
|
6
|
+
import { a as useProvideFormGroupData } from "./BFormValidFeedback-BTNOXbQ6.js";
|
|
7
7
|
import { Fragment, computed, createBlock, createElementBlock, createElementVNode, createTextVNode, defineComponent, guardReactiveProps, inject, mergeProps, normalizeProps, openBlock, renderList, renderSlot, toDisplayString, unref, withCtx } from "vue";
|
|
8
8
|
//#region src/components/BForm/BFormDatalistBase.vue?vue&type=script&setup=true&lang.ts
|
|
9
9
|
var _hoisted_1$1 = ["id"];
|
|
@@ -110,4 +110,4 @@ var BFormFloatingLabel_default = /* @__PURE__ */ defineComponent({
|
|
|
110
110
|
//#endregion
|
|
111
111
|
export { BFormDatalist_default as n, BFormFloatingLabel_default as t };
|
|
112
112
|
|
|
113
|
-
//# sourceMappingURL=BForm-
|
|
113
|
+
//# sourceMappingURL=BForm-CcbrqF35.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BForm-C5PR2ust.js","names":[],"sources":["../src/components/BForm/BFormDatalistBase.vue","../src/components/BForm/BFormDatalistBase.vue","../src/components/BForm/BFormDatalist.vue","../src/components/BForm/BFormDatalist.vue","../src/components/BForm/BFormFloatingLabel.vue","../src/components/BForm/BFormFloatingLabel.vue"],"sourcesContent":["<template>\n <datalist :id=\"computedId\">\n <slot name=\"first\" />\n <BFormSelectOption\n v-for=\"(option, index) in normalizedOptsWrapper\"\n :key=\"index\"\n v-bind=\"option\"\n >\n <slot name=\"option\" v-bind=\"option\">\n {{ 'text' in option ? option.text : '' }}\n </slot>\n </BFormSelectOption>\n <slot />\n </datalist>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BFormDatalistBaseProps} from '../../types'\nimport {computed} from 'vue'\nimport BFormSelectOption from '../BFormSelect/BFormSelectOption.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport {useFormSelect} from '../../composables/useFormSelect'\n\n/**\n * Base component for BFormDatalist - non-generic implementation using useDefaults.\n * Renders a datalist element with normalized options.\n * Filters out complex/grouped options as datalist doesn't support them.\n */\nconst _props = withDefaults(defineProps<BFormDatalistBaseProps>(), {\n disabled: false,\n disabledField: 'disabled',\n id: undefined,\n options: () => [],\n textField: 'text',\n valueField: 'value',\n})\nconst props = useDefaults(_props, 'BFormDatalist')\n\nconst computedId = useId(() => props.id, 'datalist')\n\nconst {normalizedOptions, isComplex} = useFormSelect(\n () => props.options,\n computed(() => ({...props, optionsField: 'options', labelField: 'label'}))\n)\n\nconst normalizedOptsWrapper = computed(() =>\n // Datalist doesn't support complex options\n normalizedOptions.value.filter((opt) => !isComplex(opt))\n)\n</script>\n","<template>\n <datalist :id=\"computedId\">\n <slot name=\"first\" />\n <BFormSelectOption\n v-for=\"(option, index) in normalizedOptsWrapper\"\n :key=\"index\"\n v-bind=\"option\"\n >\n <slot name=\"option\" v-bind=\"option\">\n {{ 'text' in option ? option.text : '' }}\n </slot>\n </BFormSelectOption>\n <slot />\n </datalist>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BFormDatalistBaseProps} from '../../types'\nimport {computed} from 'vue'\nimport BFormSelectOption from '../BFormSelect/BFormSelectOption.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport {useFormSelect} from '../../composables/useFormSelect'\n\n/**\n * Base component for BFormDatalist - non-generic implementation using useDefaults.\n * Renders a datalist element with normalized options.\n * Filters out complex/grouped options as datalist doesn't support them.\n */\nconst _props = withDefaults(defineProps<BFormDatalistBaseProps>(), {\n disabled: false,\n disabledField: 'disabled',\n id: undefined,\n options: () => [],\n textField: 'text',\n valueField: 'value',\n})\nconst props = useDefaults(_props, 'BFormDatalist')\n\nconst computedId = useId(() => props.id, 'datalist')\n\nconst {normalizedOptions, isComplex} = useFormSelect(\n () => props.options,\n computed(() => ({...props, optionsField: 'options', labelField: 'label'}))\n)\n\nconst normalizedOptsWrapper = computed(() =>\n // Datalist doesn't support complex options\n normalizedOptions.value.filter((opt) => !isComplex(opt))\n)\n</script>\n","<template>\n <BFormDatalistBase v-bind=\"forwardedProps\" :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 </BFormDatalistBase>\n</template>\n\n<script\n setup\n lang=\"ts\"\n generic=\"\n Item = Record<string, unknown> | string | number | boolean,\n ValueKey extends Item extends Record<string, unknown> ? keyof Item : string =\n Item extends Record<string, unknown> ? keyof Item : never\n \"\n>\nimport {computed} from 'vue'\nimport BFormDatalistBase from './BFormDatalistBase.vue'\nimport type {BFormDatalistProps, BFormDatalistSlots, SelectOption} from '../../types'\n\n/**\n * Type-safe wrapper component for BFormDatalist.\n * Provides generic type safety for options and field names.\n * Normalizes typed options and forwards to BFormDatalistBase for rendering.\n * Supports both complex objects and simple scalar types (string, number).\n */\nconst props = withDefaults(defineProps<BFormDatalistProps<Item, ValueKey>>(), {\n disabled: false,\n disabledField: 'disabled' as keyof Item & string,\n id: undefined,\n options: () => [],\n textField: 'text' as keyof Item & string,\n // @ts-expect-error - ValueKey default doesn't satisfy InferDefault but works at runtime\n valueField: 'value',\n})\ndefineSlots<\n BFormDatalistSlots<Item extends Record<string, unknown> ? Item[ValueKey & keyof Item] : Item>\n>()\n\n// Type-safe normalization of options\nconst normalizedOptions = computed(() =>\n props.options.map((el) => {\n if (typeof el === 'string') {\n return el\n }\n if (typeof el === 'number') {\n return String(el)\n }\n if (typeof el === 'boolean') {\n return String(el)\n }\n return {\n value: (el as Record<string, unknown>)[props.valueField as string],\n text:\n ((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 })\n)\n\n// Forward all props except options (which we normalize) and field mappings (already used)\nconst forwardedProps = computed(() => ({\n disabled: props.disabled,\n id: props.id,\n}))\n</script>\n","<template>\n <BFormDatalistBase v-bind=\"forwardedProps\" :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 </BFormDatalistBase>\n</template>\n\n<script\n setup\n lang=\"ts\"\n generic=\"\n Item = Record<string, unknown> | string | number | boolean,\n ValueKey extends Item extends Record<string, unknown> ? keyof Item : string =\n Item extends Record<string, unknown> ? keyof Item : never\n \"\n>\nimport {computed} from 'vue'\nimport BFormDatalistBase from './BFormDatalistBase.vue'\nimport type {BFormDatalistProps, BFormDatalistSlots, SelectOption} from '../../types'\n\n/**\n * Type-safe wrapper component for BFormDatalist.\n * Provides generic type safety for options and field names.\n * Normalizes typed options and forwards to BFormDatalistBase for rendering.\n * Supports both complex objects and simple scalar types (string, number).\n */\nconst props = withDefaults(defineProps<BFormDatalistProps<Item, ValueKey>>(), {\n disabled: false,\n disabledField: 'disabled' as keyof Item & string,\n id: undefined,\n options: () => [],\n textField: 'text' as keyof Item & string,\n // @ts-expect-error - ValueKey default doesn't satisfy InferDefault but works at runtime\n valueField: 'value',\n})\ndefineSlots<\n BFormDatalistSlots<Item extends Record<string, unknown> ? Item[ValueKey & keyof Item] : Item>\n>()\n\n// Type-safe normalization of options\nconst normalizedOptions = computed(() =>\n props.options.map((el) => {\n if (typeof el === 'string') {\n return el\n }\n if (typeof el === 'number') {\n return String(el)\n }\n if (typeof el === 'boolean') {\n return String(el)\n }\n return {\n value: (el as Record<string, unknown>)[props.valueField as string],\n text:\n ((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 })\n)\n\n// Forward all props except options (which we normalize) and field mappings (already used)\nconst forwardedProps = computed(() => ({\n disabled: props.disabled,\n id: props.id,\n}))\n</script>\n","<template>\n <div class=\"form-floating\">\n <slot />\n <label :for=\"props.labelFor\">\n <slot name=\"label\">\n {{ props.label }}\n </slot>\n </label>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BFormFloatingLabelProps, BFormFloatingLabelSlots} from '../../types'\nimport {inject} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useProvideFormGroupData} from '../../composables/useProvideFormGroupData'\nimport {formGroupKey} from '../../utils/keys'\n\nconst _props = withDefaults(defineProps<BFormFloatingLabelProps>(), {\n label: undefined,\n labelFor: undefined,\n text: undefined,\n})\nconst props = useDefaults(_props, 'BFormFloatingLabel')\ndefineSlots<BFormFloatingLabelSlots>()\n\n// Boundary: BFormFloatingLabel renders its own <label for>. State/disabled forward through\n// from the outer BFormGroup; the isolated label-target registry isn't read, so descendant\n// claims never reach the outer group.\nconst parentFormGroupData = inject(formGroupKey, null)?.()\nif (parentFormGroupData) useProvideFormGroupData(parentFormGroupData)\n</script>\n","<template>\n <div class=\"form-floating\">\n <slot />\n <label :for=\"props.labelFor\">\n <slot name=\"label\">\n {{ props.label }}\n </slot>\n </label>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BFormFloatingLabelProps, BFormFloatingLabelSlots} from '../../types'\nimport {inject} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useProvideFormGroupData} from '../../composables/useProvideFormGroupData'\nimport {formGroupKey} from '../../utils/keys'\n\nconst _props = withDefaults(defineProps<BFormFloatingLabelProps>(), {\n label: undefined,\n labelFor: undefined,\n text: undefined,\n})\nconst props = useDefaults(_props, 'BFormFloatingLabel')\ndefineSlots<BFormFloatingLabelSlots>()\n\n// Boundary: BFormFloatingLabel renders its own <label for>. State/disabled forward through\n// from the outer BFormGroup; the isolated label-target registry isn't read, so descendant\n// claims never reach the outer group.\nconst parentFormGroupData = inject(formGroupKey, null)?.()\nif (parentFormGroupData) useProvideFormGroupData(parentFormGroupData)\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;EAqCA,MAAM,QAAQ,YAAY,SAAQ,eAAe;EAEjD,MAAM,aAAa,cAAY,MAAM,IAAI,UAAU;EAEnD,MAAM,EAAC,mBAAmB,cAAa,oBAC/B,MAAM,SACZ,gBAAgB;GAAC,GAAG;GAAO,cAAc;GAAW,YAAY;EAAO,EAAE,CAC3E;EAEA,MAAM,wBAAwB,eAE5B,kBAAkB,MAAM,QAAQ,QAAQ,CAAC,UAAU,GAAG,CAAC,CACzD;;GAhDE,OAAA,UAAA,GAAA,mBAYW,YAAA,EAZA,IAAI,MAAA,UAAA,EAAU,GAAA;IACvB,WAAqB,KAAA,QAAA,OAAA;KACrB,UAAA,IAAA,GAAA,mBAQoB,UAAA,MAAA,WAPQ,sBAAA,QAAlB,QAAQ,UAAK;KADvB,OAAA,UAAA,GAAA,YAQoB,2BARpB,WAQoB,EANjB,KAAK,MAAK,GAAA,EAAA,SAAA,KAAA,GACH,MAAM,GAAA;MAEd,SAAA,cAEO,CAFP,WAEO,KAAA,QAAA,UAFP,WAEO,EAAA,SAAA,KAAA,GAFqB,MAAM,SAE3B,CADQ,gBAAA,gBAAA,UAAA,SAAS,OAAO,OAAI,EAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;;IAGrC,WAAQ,KAAA,QAAA,SAAA;;;;;;;;;;;;;;;;;;;;;EEsBZ,MAAM,QAAQ;EAcd,MAAM,oBAAoB,eACxB,MAAM,QAAQ,KAAK,OAAO;GACxB,IAAI,OAAO,OAAO,UAChB,OAAO;GAET,IAAI,OAAO,OAAO,UAChB,OAAO,OAAO,EAAE;GAElB,IAAI,OAAO,OAAO,WAChB,OAAO,OAAO,EAAE;GAElB,OAAO;IACL,OAAQ,GAA+B,MAAM;IAC7C,MACI,GAA+B,MAAM,cAA+C;IACxF,UACI,GAA+B,MAAM,kBACvC;GACJ;EACF,CAAC,CACH;EAGA,MAAM,iBAAiB,gBAAgB;GACrC,UAAU,MAAM;GAChB,IAAI,MAAM;EACZ,EAAE;;GAzEA,OAAA,UAAA,GAAA,YAWoB,2BAXpB,WAA2B,eAWP,OAXqB,EAAG,SAAS,kBAAA,MAAA,CAAA,GAAA;IAExC,OAAK,cACO,CAArB,WAAqB,KAAA,QAAA,OAAA,CAAA,CAAA;IAGZ,QAAM,SAAE,cAAS,CAC1B,WAAgD,KAAA,QAAA,UAAA,eAAA,mBAApB,SAAS,CAAA,CAAA,CAAA,CAAA;IAGvC,SAAA,cAAQ,CAAR,WAAQ,KAAA,QAAA,SAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;EEYZ,MAAM,QAAQ,YAAY,SAAQ,oBAAoB;EAMtD,MAAM,sBAAsB,OAAO,cAAc,IAAI,CAAC,GAAG;EACzD,IAAI,qBAAqB,wBAAwB,mBAAmB;;GA7BlE,OAAA,UAAA,GAAA,mBAOM,OAPN,YAOM,CANJ,WAAQ,KAAA,QAAA,SAAA,GACR,mBAIQ,SAAA,EAJA,KAAK,MAAA,KAAA,CAAK,CAAC,SAAA,GAAA,CACjB,WAEO,KAAA,QAAA,SAAA,CAAA,SAAA,CADF,gBAAA,gBAAA,MAAA,KAAA,CAAK,CAAC,KAAK,GAAA,CAAA,CAAA,CAAA,CAAA,GAAA,GAAA,UAAA,CAAA,CAAA"}
|
|
1
|
+
{"version":3,"file":"BForm-CcbrqF35.js","names":[],"sources":["../src/components/BForm/BFormDatalistBase.vue","../src/components/BForm/BFormDatalistBase.vue","../src/components/BForm/BFormDatalist.vue","../src/components/BForm/BFormDatalist.vue","../src/components/BForm/BFormFloatingLabel.vue","../src/components/BForm/BFormFloatingLabel.vue"],"sourcesContent":["<template>\n <datalist :id=\"computedId\">\n <slot name=\"first\" />\n <BFormSelectOption\n v-for=\"(option, index) in normalizedOptsWrapper\"\n :key=\"index\"\n v-bind=\"option\"\n >\n <slot name=\"option\" v-bind=\"option\">\n {{ 'text' in option ? option.text : '' }}\n </slot>\n </BFormSelectOption>\n <slot />\n </datalist>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BFormDatalistBaseProps} from '../../types'\nimport {computed} from 'vue'\nimport BFormSelectOption from '../BFormSelect/BFormSelectOption.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport {useFormSelect} from '../../composables/useFormSelect'\n\n/**\n * Base component for BFormDatalist - non-generic implementation using useDefaults.\n * Renders a datalist element with normalized options.\n * Filters out complex/grouped options as datalist doesn't support them.\n */\nconst _props = withDefaults(defineProps<BFormDatalistBaseProps>(), {\n disabled: false,\n disabledField: 'disabled',\n id: undefined,\n options: () => [],\n textField: 'text',\n valueField: 'value',\n})\nconst props = useDefaults(_props, 'BFormDatalist')\n\nconst computedId = useId(() => props.id, 'datalist')\n\nconst {normalizedOptions, isComplex} = useFormSelect(\n () => props.options,\n computed(() => ({...props, optionsField: 'options', labelField: 'label'}))\n)\n\nconst normalizedOptsWrapper = computed(() =>\n // Datalist doesn't support complex options\n normalizedOptions.value.filter((opt) => !isComplex(opt))\n)\n</script>\n","<template>\n <datalist :id=\"computedId\">\n <slot name=\"first\" />\n <BFormSelectOption\n v-for=\"(option, index) in normalizedOptsWrapper\"\n :key=\"index\"\n v-bind=\"option\"\n >\n <slot name=\"option\" v-bind=\"option\">\n {{ 'text' in option ? option.text : '' }}\n </slot>\n </BFormSelectOption>\n <slot />\n </datalist>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BFormDatalistBaseProps} from '../../types'\nimport {computed} from 'vue'\nimport BFormSelectOption from '../BFormSelect/BFormSelectOption.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport {useFormSelect} from '../../composables/useFormSelect'\n\n/**\n * Base component for BFormDatalist - non-generic implementation using useDefaults.\n * Renders a datalist element with normalized options.\n * Filters out complex/grouped options as datalist doesn't support them.\n */\nconst _props = withDefaults(defineProps<BFormDatalistBaseProps>(), {\n disabled: false,\n disabledField: 'disabled',\n id: undefined,\n options: () => [],\n textField: 'text',\n valueField: 'value',\n})\nconst props = useDefaults(_props, 'BFormDatalist')\n\nconst computedId = useId(() => props.id, 'datalist')\n\nconst {normalizedOptions, isComplex} = useFormSelect(\n () => props.options,\n computed(() => ({...props, optionsField: 'options', labelField: 'label'}))\n)\n\nconst normalizedOptsWrapper = computed(() =>\n // Datalist doesn't support complex options\n normalizedOptions.value.filter((opt) => !isComplex(opt))\n)\n</script>\n","<template>\n <BFormDatalistBase v-bind=\"forwardedProps\" :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 </BFormDatalistBase>\n</template>\n\n<script\n setup\n lang=\"ts\"\n generic=\"\n Item = Record<string, unknown> | string | number | boolean,\n ValueKey extends Item extends Record<string, unknown> ? keyof Item : string =\n Item extends Record<string, unknown> ? keyof Item : never\n \"\n>\nimport {computed} from 'vue'\nimport BFormDatalistBase from './BFormDatalistBase.vue'\nimport type {BFormDatalistProps, BFormDatalistSlots, SelectOption} from '../../types'\n\n/**\n * Type-safe wrapper component for BFormDatalist.\n * Provides generic type safety for options and field names.\n * Normalizes typed options and forwards to BFormDatalistBase for rendering.\n * Supports both complex objects and simple scalar types (string, number).\n */\nconst props = withDefaults(defineProps<BFormDatalistProps<Item, ValueKey>>(), {\n disabled: false,\n disabledField: 'disabled' as keyof Item & string,\n id: undefined,\n options: () => [],\n textField: 'text' as keyof Item & string,\n // @ts-expect-error - ValueKey default doesn't satisfy InferDefault but works at runtime\n valueField: 'value',\n})\ndefineSlots<\n BFormDatalistSlots<Item extends Record<string, unknown> ? Item[ValueKey & keyof Item] : Item>\n>()\n\n// Type-safe normalization of options\nconst normalizedOptions = computed(() =>\n props.options.map((el) => {\n if (typeof el === 'string') {\n return el\n }\n if (typeof el === 'number') {\n return String(el)\n }\n if (typeof el === 'boolean') {\n return String(el)\n }\n return {\n value: (el as Record<string, unknown>)[props.valueField as string],\n text:\n ((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 })\n)\n\n// Forward all props except options (which we normalize) and field mappings (already used)\nconst forwardedProps = computed(() => ({\n disabled: props.disabled,\n id: props.id,\n}))\n</script>\n","<template>\n <BFormDatalistBase v-bind=\"forwardedProps\" :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 </BFormDatalistBase>\n</template>\n\n<script\n setup\n lang=\"ts\"\n generic=\"\n Item = Record<string, unknown> | string | number | boolean,\n ValueKey extends Item extends Record<string, unknown> ? keyof Item : string =\n Item extends Record<string, unknown> ? keyof Item : never\n \"\n>\nimport {computed} from 'vue'\nimport BFormDatalistBase from './BFormDatalistBase.vue'\nimport type {BFormDatalistProps, BFormDatalistSlots, SelectOption} from '../../types'\n\n/**\n * Type-safe wrapper component for BFormDatalist.\n * Provides generic type safety for options and field names.\n * Normalizes typed options and forwards to BFormDatalistBase for rendering.\n * Supports both complex objects and simple scalar types (string, number).\n */\nconst props = withDefaults(defineProps<BFormDatalistProps<Item, ValueKey>>(), {\n disabled: false,\n disabledField: 'disabled' as keyof Item & string,\n id: undefined,\n options: () => [],\n textField: 'text' as keyof Item & string,\n // @ts-expect-error - ValueKey default doesn't satisfy InferDefault but works at runtime\n valueField: 'value',\n})\ndefineSlots<\n BFormDatalistSlots<Item extends Record<string, unknown> ? Item[ValueKey & keyof Item] : Item>\n>()\n\n// Type-safe normalization of options\nconst normalizedOptions = computed(() =>\n props.options.map((el) => {\n if (typeof el === 'string') {\n return el\n }\n if (typeof el === 'number') {\n return String(el)\n }\n if (typeof el === 'boolean') {\n return String(el)\n }\n return {\n value: (el as Record<string, unknown>)[props.valueField as string],\n text:\n ((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 })\n)\n\n// Forward all props except options (which we normalize) and field mappings (already used)\nconst forwardedProps = computed(() => ({\n disabled: props.disabled,\n id: props.id,\n}))\n</script>\n","<template>\n <div class=\"form-floating\">\n <slot />\n <label :for=\"props.labelFor\">\n <slot name=\"label\">\n {{ props.label }}\n </slot>\n </label>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BFormFloatingLabelProps, BFormFloatingLabelSlots} from '../../types'\nimport {inject} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useProvideFormGroupData} from '../../composables/useProvideFormGroupData'\nimport {formGroupKey} from '../../utils/keys'\n\nconst _props = withDefaults(defineProps<BFormFloatingLabelProps>(), {\n label: undefined,\n labelFor: undefined,\n text: undefined,\n})\nconst props = useDefaults(_props, 'BFormFloatingLabel')\ndefineSlots<BFormFloatingLabelSlots>()\n\n// Boundary: BFormFloatingLabel renders its own <label for>. State/disabled forward through\n// from the outer BFormGroup; the isolated label-target registry isn't read, so descendant\n// claims never reach the outer group.\nconst parentFormGroupData = inject(formGroupKey, null)?.()\nif (parentFormGroupData) useProvideFormGroupData(parentFormGroupData)\n</script>\n","<template>\n <div class=\"form-floating\">\n <slot />\n <label :for=\"props.labelFor\">\n <slot name=\"label\">\n {{ props.label }}\n </slot>\n </label>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BFormFloatingLabelProps, BFormFloatingLabelSlots} from '../../types'\nimport {inject} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useProvideFormGroupData} from '../../composables/useProvideFormGroupData'\nimport {formGroupKey} from '../../utils/keys'\n\nconst _props = withDefaults(defineProps<BFormFloatingLabelProps>(), {\n label: undefined,\n labelFor: undefined,\n text: undefined,\n})\nconst props = useDefaults(_props, 'BFormFloatingLabel')\ndefineSlots<BFormFloatingLabelSlots>()\n\n// Boundary: BFormFloatingLabel renders its own <label for>. State/disabled forward through\n// from the outer BFormGroup; the isolated label-target registry isn't read, so descendant\n// claims never reach the outer group.\nconst parentFormGroupData = inject(formGroupKey, null)?.()\nif (parentFormGroupData) useProvideFormGroupData(parentFormGroupData)\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;EAqCA,MAAM,QAAQ,YAAY,SAAQ,eAAe;EAEjD,MAAM,aAAa,cAAY,MAAM,IAAI,UAAU;EAEnD,MAAM,EAAC,mBAAmB,cAAa,oBAC/B,MAAM,SACZ,gBAAgB;GAAC,GAAG;GAAO,cAAc;GAAW,YAAY;EAAO,EAAE,CAC3E;EAEA,MAAM,wBAAwB,eAE5B,kBAAkB,MAAM,QAAQ,QAAQ,CAAC,UAAU,GAAG,CAAC,CACzD;;GAhDE,OAAA,UAAA,GAAA,mBAYW,YAAA,EAZA,IAAI,MAAA,UAAA,EAAU,GAAA;IACvB,WAAqB,KAAA,QAAA,OAAA;KACrB,UAAA,IAAA,GAAA,mBAQoB,UAAA,MAAA,WAPQ,sBAAA,QAAlB,QAAQ,UAAK;KADvB,OAAA,UAAA,GAAA,YAQoB,2BARpB,WAQoB,EANjB,KAAK,MAAK,GAAA,EAAA,SAAA,KAAA,GACH,MAAM,GAAA;MAEd,SAAA,cAEO,CAFP,WAEO,KAAA,QAAA,UAFP,WAEO,EAAA,SAAA,KAAA,GAFqB,MAAM,SAE3B,CADQ,gBAAA,gBAAA,UAAA,SAAS,OAAO,OAAI,EAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;;IAGrC,WAAQ,KAAA,QAAA,SAAA;;;;;;;;;;;;;;;;;;;;;EEsBZ,MAAM,QAAQ;EAcd,MAAM,oBAAoB,eACxB,MAAM,QAAQ,KAAK,OAAO;GACxB,IAAI,OAAO,OAAO,UAChB,OAAO;GAET,IAAI,OAAO,OAAO,UAChB,OAAO,OAAO,EAAE;GAElB,IAAI,OAAO,OAAO,WAChB,OAAO,OAAO,EAAE;GAElB,OAAO;IACL,OAAQ,GAA+B,MAAM;IAC7C,MACI,GAA+B,MAAM,cAA+C;IACxF,UACI,GAA+B,MAAM,kBACvC;GACJ;EACF,CAAC,CACH;EAGA,MAAM,iBAAiB,gBAAgB;GACrC,UAAU,MAAM;GAChB,IAAI,MAAM;EACZ,EAAE;;GAzEA,OAAA,UAAA,GAAA,YAWoB,2BAXpB,WAA2B,eAWP,OAXqB,EAAG,SAAS,kBAAA,MAAA,CAAA,GAAA;IAExC,OAAK,cACO,CAArB,WAAqB,KAAA,QAAA,OAAA,CAAA,CAAA;IAGZ,QAAM,SAAE,cAAS,CAC1B,WAAgD,KAAA,QAAA,UAAA,eAAA,mBAApB,SAAS,CAAA,CAAA,CAAA,CAAA;IAGvC,SAAA,cAAQ,CAAR,WAAQ,KAAA,QAAA,SAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;EEYZ,MAAM,QAAQ,YAAY,SAAQ,oBAAoB;EAMtD,MAAM,sBAAsB,OAAO,cAAc,IAAI,CAAC,GAAG;EACzD,IAAI,qBAAqB,wBAAwB,mBAAmB;;GA7BlE,OAAA,UAAA,GAAA,mBAOM,OAPN,YAOM,CANJ,WAAQ,KAAA,QAAA,SAAA,GACR,mBAIQ,SAAA,EAJA,KAAK,MAAA,KAAA,CAAK,CAAC,SAAA,GAAA,CACjB,WAEO,KAAA,QAAA,SAAA,CAAA,SAAA,CADF,gBAAA,gBAAA,MAAA,KAAA,CAAK,CAAC,KAAK,GAAA,CAAA,CAAA,CAAA,CAAA,GAAA,GAAA,UAAA,CAAA,CAAA"}
|
|
@@ -5,7 +5,7 @@ import { a as upperFirst } from "./stringUtils-CVySsg3y.js";
|
|
|
5
5
|
import { t as useAriaInvalid } from "./useAriaInvalid-CRUhkD2V.js";
|
|
6
6
|
import { t as useStateClass } from "./useStateClass-BF7kf2zK.js";
|
|
7
7
|
import { t as BCol_default } from "./BCol-DiZFbqU5.js";
|
|
8
|
-
import { a as useProvideFormGroupData, i as BFormInvalidFeedback_default, n as BFormText_default, r as BFormRow_default, t as BFormValidFeedback_default } from "./BFormValidFeedback-
|
|
8
|
+
import { a as useProvideFormGroupData, i as BFormInvalidFeedback_default, n as BFormText_default, r as BFormRow_default, t as BFormValidFeedback_default } from "./BFormValidFeedback-BTNOXbQ6.js";
|
|
9
9
|
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createSlots, createTextVNode, createVNode, defineComponent, guardReactiveProps, mergeProps, normalizeClass, normalizeProps, openBlock, renderSlot, resolveDynamicComponent, toDisplayString, toRef, unref, useSlots, useTemplateRef, withCtx } from "vue";
|
|
10
10
|
//#region src/utils/props.ts
|
|
11
11
|
/**
|
|
@@ -497,4 +497,4 @@ var BFormGroup_default = /* @__PURE__ */ defineComponent({
|
|
|
497
497
|
//#endregion
|
|
498
498
|
export { BFormGroup_default as t };
|
|
499
499
|
|
|
500
|
-
//# sourceMappingURL=BFormGroup-
|
|
500
|
+
//# sourceMappingURL=BFormGroup-D3R7DxxF.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BFormGroup-BE5tGz_g.js","names":["$attrs"],"sources":["../src/utils/props.ts","../src/components/BFormGroupContent.vue","../src/components/BFormGroupContent.vue","../src/components/BFormGroupLabel.vue","../src/components/BFormGroupLabel.vue","../src/components/BFormGroup/BFormGroup.vue","../src/components/BFormGroup/BFormGroup.vue"],"sourcesContent":["// Suffix can be a falsey value so nothing is appended to string\n// (helps when looping over props & some shouldn't change)\n\nimport {upperFirst} from './stringUtils'\n\n/**\n * Use data last parameters to allow for currying\n *\n * @param suffix\n * @param value\n * @returns\n */\nexport const suffixPropName = (suffix: string, value: string): string =>\n value + (suffix ? upperFirst(suffix) : '')\n","<template>\n <BFormInvalidFeedback\n v-if=\"hasInvalidFeedbackSlot || invalidFeedback\"\n :id=\"invalidFeedbackId\"\n :aria-live=\"feedbackAriaLive\"\n :state=\"state\"\n :tooltip=\"tooltip\"\n >\n <slot name=\"invalid-feedback\">{{ invalidFeedback }}</slot>\n </BFormInvalidFeedback>\n <BFormValidFeedback\n v-if=\"hasValidFeedbackSlot || validFeedback\"\n :id=\"validFeedbackId\"\n :aria-live=\"feedbackAriaLive\"\n :state=\"state\"\n :tooltip=\"tooltip\"\n >\n <slot name=\"valid-feedback\">{{ validFeedback }}</slot>\n </BFormValidFeedback>\n <BFormText v-if=\"hasDescriptionSlot || description\" :id=\"descriptionId\">\n <slot name=\"description\">{{ description }}</slot>\n </BFormText>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useSlots} from 'vue'\nimport type {ValidationState} from '../types'\nimport BFormInvalidFeedback from './BForm/BFormInvalidFeedback.vue'\nimport BFormValidFeedback from './BForm/BFormValidFeedback.vue'\nimport BFormText from './BForm/BFormText.vue'\n\ndefineProps<{\n invalidFeedback: string | undefined\n validFeedback: string | undefined\n description: string | undefined\n feedbackAriaLive: string | undefined\n state: ValidationState | undefined\n tooltip: boolean | undefined\n invalidFeedbackId: string | undefined\n validFeedbackId: string | undefined\n descriptionId: string | undefined\n}>()\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\ndefineSlots<{\n 'invalid-feedback'?: (props: Record<string, never>) => any\n 'valid-feedback'?: (props: Record<string, never>) => any\n 'description'?: (props: Record<string, never>) => any\n}>()\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst slots = useSlots()\nconst hasInvalidFeedbackSlot = computed(() => !!slots['invalid-feedback'])\nconst hasValidFeedbackSlot = computed(() => !!slots['valid-feedback'])\nconst hasDescriptionSlot = computed(() => !!slots['description'])\n</script>\n","<template>\n <BFormInvalidFeedback\n v-if=\"hasInvalidFeedbackSlot || invalidFeedback\"\n :id=\"invalidFeedbackId\"\n :aria-live=\"feedbackAriaLive\"\n :state=\"state\"\n :tooltip=\"tooltip\"\n >\n <slot name=\"invalid-feedback\">{{ invalidFeedback }}</slot>\n </BFormInvalidFeedback>\n <BFormValidFeedback\n v-if=\"hasValidFeedbackSlot || validFeedback\"\n :id=\"validFeedbackId\"\n :aria-live=\"feedbackAriaLive\"\n :state=\"state\"\n :tooltip=\"tooltip\"\n >\n <slot name=\"valid-feedback\">{{ validFeedback }}</slot>\n </BFormValidFeedback>\n <BFormText v-if=\"hasDescriptionSlot || description\" :id=\"descriptionId\">\n <slot name=\"description\">{{ description }}</slot>\n </BFormText>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useSlots} from 'vue'\nimport type {ValidationState} from '../types'\nimport BFormInvalidFeedback from './BForm/BFormInvalidFeedback.vue'\nimport BFormValidFeedback from './BForm/BFormValidFeedback.vue'\nimport BFormText from './BForm/BFormText.vue'\n\ndefineProps<{\n invalidFeedback: string | undefined\n validFeedback: string | undefined\n description: string | undefined\n feedbackAriaLive: string | undefined\n state: ValidationState | undefined\n tooltip: boolean | undefined\n invalidFeedbackId: string | undefined\n validFeedbackId: string | undefined\n descriptionId: string | undefined\n}>()\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\ndefineSlots<{\n 'invalid-feedback'?: (props: Record<string, never>) => any\n 'valid-feedback'?: (props: Record<string, never>) => any\n 'description'?: (props: Record<string, never>) => any\n}>()\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst slots = useSlots()\nconst hasInvalidFeedbackSlot = computed(() => !!slots['invalid-feedback'])\nconst hasValidFeedbackSlot = computed(() => !!slots['valid-feedback'])\nconst hasDescriptionSlot = computed(() => !!slots['description'])\n</script>\n","<template>\n <BCol\n v-if=\"isHorizontal\"\n v-bind=\"labelColProps\"\n :id=\"labelId\"\n :tag=\"labelTag\"\n :for=\"computedLabelFor || null\"\n :tabindex=\"isFieldset ? '-1' : null\"\n :class=\"[labelAlignClasses, labelClasses]\"\n @click=\"isFieldset ? (e: MouseEvent) => emit('legendClick', e) : undefined\"\n >\n <slot name=\"label\">{{ label }}</slot>\n </BCol>\n <component\n :is=\"labelTag\"\n v-else\n :id=\"labelId\"\n :for=\"computedLabelFor || null\"\n :tabindex=\"isFieldset ? '-1' : null\"\n :class=\"labelClasses\"\n @click=\"isFieldset ? (e: MouseEvent) => emit('legendClick', e) : undefined\"\n >\n <slot name=\"label\">{{ label }}</slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport type {ClassValue} from '../types/AnyValuedAttributes'\nimport BCol from './BContainer/BCol.vue'\n\ndefineProps<{\n label: string | undefined\n labelTag: string\n labelId: string | undefined\n computedLabelFor: string | null\n isFieldset: boolean\n isHorizontal: boolean\n labelColProps: Record<string, unknown>\n labelAlignClasses: string[]\n labelClasses: ClassValue\n}>()\n\nconst emit = defineEmits<{\n legendClick: [event: MouseEvent]\n}>()\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\ndefineSlots<{\n label?: (props: Record<string, never>) => any\n}>()\n/* eslint-enable @typescript-eslint/no-explicit-any */\n</script>\n","<template>\n <BCol\n v-if=\"isHorizontal\"\n v-bind=\"labelColProps\"\n :id=\"labelId\"\n :tag=\"labelTag\"\n :for=\"computedLabelFor || null\"\n :tabindex=\"isFieldset ? '-1' : null\"\n :class=\"[labelAlignClasses, labelClasses]\"\n @click=\"isFieldset ? (e: MouseEvent) => emit('legendClick', e) : undefined\"\n >\n <slot name=\"label\">{{ label }}</slot>\n </BCol>\n <component\n :is=\"labelTag\"\n v-else\n :id=\"labelId\"\n :for=\"computedLabelFor || null\"\n :tabindex=\"isFieldset ? '-1' : null\"\n :class=\"labelClasses\"\n @click=\"isFieldset ? (e: MouseEvent) => emit('legendClick', e) : undefined\"\n >\n <slot name=\"label\">{{ label }}</slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport type {ClassValue} from '../types/AnyValuedAttributes'\nimport BCol from './BContainer/BCol.vue'\n\ndefineProps<{\n label: string | undefined\n labelTag: string\n labelId: string | undefined\n computedLabelFor: string | null\n isFieldset: boolean\n isHorizontal: boolean\n labelColProps: Record<string, unknown>\n labelAlignClasses: string[]\n labelClasses: ClassValue\n}>()\n\nconst emit = defineEmits<{\n legendClick: [event: MouseEvent]\n}>()\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\ndefineSlots<{\n label?: (props: Record<string, never>) => any\n}>()\n/* eslint-enable @typescript-eslint/no-explicit-any */\n</script>\n","<template>\n <fieldset\n :id=\"computedId\"\n :disabled=\"props.disabled\"\n :aria-invalid=\"computedAriaInvalid\"\n :aria-labelledby=\"isFieldset && isHorizontal ? labelId : undefined\"\n v-bind=\"$attrs\"\n :class=\"[stateClass, {'was-validated': props.validated}]\"\n class=\"b-form-group\"\n >\n <!-- End of definitions -->\n <BFormRow v-if=\"isHorizontal\">\n <BFormGroupLabel\n v-if=\"labelShowing\"\n v-bind=\"labelComponentProps\"\n @legend-click=\"onLegendClick\"\n >\n <template v-if=\"slots.label\" #label>\n <slot name=\"label\" />\n </template>\n </BFormGroupLabel>\n <BCol v-bind=\"contentColProps\" ref=\"_content\">\n <slot\n :id=\"computedId\"\n :aria-describedby=\"computedAriaDescribedby\"\n :description-id=\"descriptionId\"\n :label-id=\"labelId\"\n />\n <BFormGroupContent v-bind=\"contentComponentProps\">\n <template v-if=\"slots['invalid-feedback']\" #invalid-feedback>\n <slot name=\"invalid-feedback\" />\n </template>\n <template v-if=\"slots['valid-feedback']\" #valid-feedback>\n <slot name=\"valid-feedback\" />\n </template>\n <template v-if=\"slots.description\" #description>\n <slot name=\"description\" />\n </template>\n </BFormGroupContent>\n </BCol>\n </BFormRow>\n <template v-else>\n <div v-if=\"isFloating\" ref=\"_content\" class=\"form-floating\">\n <slot\n :id=\"computedId\"\n :aria-describedby=\"computedAriaDescribedby\"\n :description-id=\"descriptionId\"\n :label-id=\"labelId\"\n />\n <BFormGroupLabel\n v-if=\"labelShowing\"\n v-bind=\"labelComponentProps\"\n @legend-click=\"onLegendClick\"\n >\n <template v-if=\"slots.label\" #label>\n <slot name=\"label\" />\n </template>\n </BFormGroupLabel>\n <BFormGroupContent v-bind=\"contentComponentProps\">\n <template v-if=\"slots['invalid-feedback']\" #invalid-feedback>\n <slot name=\"invalid-feedback\" />\n </template>\n <template v-if=\"slots['valid-feedback']\" #valid-feedback>\n <slot name=\"valid-feedback\" />\n </template>\n <template v-if=\"slots.description\" #description>\n <slot name=\"description\" />\n </template>\n </BFormGroupContent>\n </div>\n <template v-else>\n <BFormGroupLabel\n v-if=\"labelShowing\"\n v-bind=\"labelComponentProps\"\n @legend-click=\"onLegendClick\"\n >\n <template v-if=\"slots.label\" #label>\n <slot name=\"label\" />\n </template>\n </BFormGroupLabel>\n <slot\n :id=\"computedId\"\n :aria-describedby=\"computedAriaDescribedby\"\n :description-id=\"descriptionId\"\n :label-id=\"labelId\"\n />\n <BFormGroupContent v-bind=\"contentComponentProps\">\n <template v-if=\"slots['invalid-feedback']\" #invalid-feedback>\n <slot name=\"invalid-feedback\" />\n </template>\n <template v-if=\"slots['valid-feedback']\" #valid-feedback>\n <slot name=\"valid-feedback\" />\n </template>\n <template v-if=\"slots.description\" #description>\n <slot name=\"description\" />\n </template>\n </BFormGroupContent>\n </template>\n </template>\n </fieldset>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, toRef, useTemplateRef} from 'vue'\nimport {useAriaInvalid} from '../../composables/useAriaInvalid'\nimport {attemptFocus, isVisible} from '../../utils/dom'\nimport BCol from '../BContainer/BCol.vue'\nimport BFormRow from '../BForm/BFormRow.vue'\nimport {suffixPropName} from '../../utils/props'\nimport {useStateClass} from '../../composables/useStateClass'\nimport {useId} from '../../composables/useId'\nimport type {BFormGroupProps, BFormGroupSlots} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useProvideFormGroupData} from '../../composables/useProvideFormGroupData'\nimport BFormGroupContent from '../BFormGroupContent.vue'\nimport BFormGroupLabel from '../BFormGroupLabel.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst INPUTS = ['input', 'select', 'textarea']\n\nconst _props = withDefaults(defineProps<BFormGroupProps>(), {\n ariaInvalid: undefined,\n contentCols: undefined,\n contentColsLg: undefined,\n contentColsMd: undefined,\n contentColsSm: undefined,\n contentColsXl: undefined,\n description: undefined,\n disabled: false,\n feedbackAriaLive: 'assertive',\n floating: false,\n id: undefined,\n invalidFeedback: undefined,\n label: undefined,\n labelAlign: undefined,\n labelAlignLg: undefined,\n labelAlignMd: undefined,\n labelAlignSm: undefined,\n labelAlignXl: undefined,\n labelClass: undefined,\n labelCols: undefined,\n labelColsLg: undefined,\n labelColsMd: undefined,\n labelColsSm: undefined,\n labelColsXl: undefined,\n labelFor: undefined,\n labelSize: undefined,\n labelVisuallyHidden: false,\n state: null,\n tooltip: false,\n validFeedback: undefined,\n validated: false,\n})\nconst props = useDefaults(_props, 'BFormGroup')\nconst slots = defineSlots<BFormGroupSlots>()\n\nconst computedState = toRef(() => props.state)\nconst computedDisabled = toRef(() => props.disabled)\nconst {singleLabelTargetId} = useProvideFormGroupData({\n state: computedState,\n disabled: computedDisabled,\n})\nconst computedLabelFor = computed(() => props.labelFor ?? singleLabelTargetId.value)\n\nconst breakPoints = ['xs', 'sm', 'md', 'lg', 'xl']\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst getColProps = (props: any, prefix: string) =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n breakPoints.reduce((result: any, breakpoint: string) => {\n const suffix = suffixPropName(breakpoint === 'xs' ? '' : breakpoint, `${prefix}Cols`)\n let propValue = props[suffix]\n propValue = propValue === '' ? true : propValue || false\n\n if (!(typeof propValue === 'boolean') && propValue !== 'auto') {\n const val = Number.parseInt(propValue)\n propValue = Number.isNaN(val) ? 0 : val\n propValue = propValue > 0 ? propValue : false\n }\n\n if (propValue) {\n if (breakpoint === 'xs') {\n result[typeof propValue === 'boolean' ? 'col' : 'cols'] = propValue\n } else {\n result[breakpoint || (typeof propValue === 'boolean' ? 'col' : 'cols')] = propValue\n }\n }\n return result\n }, {})\n\nconst content = useTemplateRef<HTMLDivElement | InstanceType<typeof BCol> | null>('_content')\n\nconst contentColProps = computed(() => getColProps(props, 'content'))\nconst labelAlignClasses = computed(() =>\n ((props: BFormGroupProps, prefix: string) =>\n breakPoints.reduce((result: string[], breakpoint) => {\n const suffix = suffixPropName(\n breakpoint === 'xs' ? '' : breakpoint,\n `${prefix}Align`\n ) as keyof BFormGroupProps\n const propValue: string = props[suffix] || null\n if (propValue) {\n if (breakpoint === 'xs') {\n result.push(`text-${propValue}`)\n } else {\n result.push(`text-${breakpoint}-${propValue}`)\n }\n }\n return result\n }, []))(props, 'label')\n)\nconst labelColProps = computed(() => getColProps(props, 'label'))\nconst isHorizontal = computed(\n () => Object.keys(contentColProps.value).length > 0 || Object.keys(labelColProps.value).length > 0\n)\nconst isFloating = computed(() => props.floating && !isHorizontal.value)\n\nconst stateClass = useStateClass(computedState)\nconst computedAriaInvalid = useAriaInvalid(() => props.ariaInvalid, computedState)\n\nconst onLegendClick = (event: Readonly<MouseEvent>) => {\n if (computedLabelFor.value || content.value === null) return\n\n const {target} = event\n const tagName = target ? (target as HTMLElement).tagName : ''\n\n if ([...INPUTS, 'a', 'button', 'label'].indexOf(tagName) !== -1) return\n\n // In horizontal mode, content.value is a BCol component instance, not a DOM element\n // Access the DOM element via $el property\n const contentElement =\n isHorizontal.value && content.value && '$el' in content.value\n ? (content.value.$el as HTMLElement)\n : (content.value as HTMLDivElement | null)\n if (!contentElement) return\n\n const inputs = [\n ...contentElement.querySelectorAll(INPUTS.map((v) => `${v}:not([disabled])`).join()),\n ].filter(isVisible)\n const [inp] = inputs\n if (inputs.length === 1 && inp instanceof HTMLElement) {\n attemptFocus(inp)\n }\n}\n\nconst computedId = useId(() => props.id)\nconst labelId = useId(undefined, '_BV_label_')\nconst labelTag = computed(() => (!isFieldset.value ? 'label' : 'legend'))\nconst labelClasses = computed(() => [\n isHorizontal.value ? 'col-form-label' : 'form-label',\n {\n 'bv-no-focus-ring': !isFloating.value && !computedLabelFor.value,\n 'col-form-label': isHorizontal.value || (!isFloating.value && !computedLabelFor.value),\n 'pt-0': !isHorizontal.value && !isFloating.value && !computedLabelFor.value,\n 'd-block': !isHorizontal.value && (isFloating.value || !!computedLabelFor.value),\n [`col-form-label-${props.labelSize}`]: !!props.labelSize,\n 'visually-hidden': props.labelVisuallyHidden,\n },\n isHorizontal.value ? null : labelAlignClasses.value,\n props.labelClass,\n])\n\nconst invalidFeedbackId = useId(undefined, '_BV_feedback_invalid_')\n\nconst validFeedbackId = useId(undefined, '_BV_feedback_valid_')\nconst descriptionId = useId(undefined, '_BV_description_')\n\nconst isFieldset = computed(() => !isFloating.value && !computedLabelFor.value)\n\nconst hasDescription = computed(() => !!slots.description || !!props.description)\nconst hasInvalidFeedback = computed(() => !!slots['invalid-feedback'] || !!props.invalidFeedback)\nconst hasValidFeedback = computed(() => !!slots['valid-feedback'] || !!props.validFeedback)\n\nconst computedAriaDescribedby = computed<string | null>(() => {\n const ids: string[] = []\n if (hasDescription.value) ids.push(descriptionId.value)\n if (computedState.value === false && hasInvalidFeedback.value) ids.push(invalidFeedbackId.value)\n if (computedState.value === true && hasValidFeedback.value) ids.push(validFeedbackId.value)\n return ids.length > 0 ? ids.join(' ') : null\n})\n\nconst labelShowing = computed(() => !!slots.label || !!props.label || isHorizontal.value)\n\nconst labelComponentProps = computed(() => ({\n label: props.label,\n labelTag: labelTag.value,\n labelId: labelId.value,\n computedLabelFor: computedLabelFor.value,\n isFieldset: isFieldset.value,\n isHorizontal: isHorizontal.value,\n labelColProps: labelColProps.value,\n labelAlignClasses: labelAlignClasses.value,\n labelClasses: labelClasses.value,\n}))\n\nconst contentComponentProps = computed(() => ({\n invalidFeedback: props.invalidFeedback,\n validFeedback: props.validFeedback,\n description: props.description,\n feedbackAriaLive: props.feedbackAriaLive,\n state: computedState.value,\n tooltip: props.tooltip,\n invalidFeedbackId: invalidFeedbackId.value,\n validFeedbackId: validFeedbackId.value,\n descriptionId: descriptionId.value,\n}))\n</script>\n","<template>\n <fieldset\n :id=\"computedId\"\n :disabled=\"props.disabled\"\n :aria-invalid=\"computedAriaInvalid\"\n :aria-labelledby=\"isFieldset && isHorizontal ? labelId : undefined\"\n v-bind=\"$attrs\"\n :class=\"[stateClass, {'was-validated': props.validated}]\"\n class=\"b-form-group\"\n >\n <!-- End of definitions -->\n <BFormRow v-if=\"isHorizontal\">\n <BFormGroupLabel\n v-if=\"labelShowing\"\n v-bind=\"labelComponentProps\"\n @legend-click=\"onLegendClick\"\n >\n <template v-if=\"slots.label\" #label>\n <slot name=\"label\" />\n </template>\n </BFormGroupLabel>\n <BCol v-bind=\"contentColProps\" ref=\"_content\">\n <slot\n :id=\"computedId\"\n :aria-describedby=\"computedAriaDescribedby\"\n :description-id=\"descriptionId\"\n :label-id=\"labelId\"\n />\n <BFormGroupContent v-bind=\"contentComponentProps\">\n <template v-if=\"slots['invalid-feedback']\" #invalid-feedback>\n <slot name=\"invalid-feedback\" />\n </template>\n <template v-if=\"slots['valid-feedback']\" #valid-feedback>\n <slot name=\"valid-feedback\" />\n </template>\n <template v-if=\"slots.description\" #description>\n <slot name=\"description\" />\n </template>\n </BFormGroupContent>\n </BCol>\n </BFormRow>\n <template v-else>\n <div v-if=\"isFloating\" ref=\"_content\" class=\"form-floating\">\n <slot\n :id=\"computedId\"\n :aria-describedby=\"computedAriaDescribedby\"\n :description-id=\"descriptionId\"\n :label-id=\"labelId\"\n />\n <BFormGroupLabel\n v-if=\"labelShowing\"\n v-bind=\"labelComponentProps\"\n @legend-click=\"onLegendClick\"\n >\n <template v-if=\"slots.label\" #label>\n <slot name=\"label\" />\n </template>\n </BFormGroupLabel>\n <BFormGroupContent v-bind=\"contentComponentProps\">\n <template v-if=\"slots['invalid-feedback']\" #invalid-feedback>\n <slot name=\"invalid-feedback\" />\n </template>\n <template v-if=\"slots['valid-feedback']\" #valid-feedback>\n <slot name=\"valid-feedback\" />\n </template>\n <template v-if=\"slots.description\" #description>\n <slot name=\"description\" />\n </template>\n </BFormGroupContent>\n </div>\n <template v-else>\n <BFormGroupLabel\n v-if=\"labelShowing\"\n v-bind=\"labelComponentProps\"\n @legend-click=\"onLegendClick\"\n >\n <template v-if=\"slots.label\" #label>\n <slot name=\"label\" />\n </template>\n </BFormGroupLabel>\n <slot\n :id=\"computedId\"\n :aria-describedby=\"computedAriaDescribedby\"\n :description-id=\"descriptionId\"\n :label-id=\"labelId\"\n />\n <BFormGroupContent v-bind=\"contentComponentProps\">\n <template v-if=\"slots['invalid-feedback']\" #invalid-feedback>\n <slot name=\"invalid-feedback\" />\n </template>\n <template v-if=\"slots['valid-feedback']\" #valid-feedback>\n <slot name=\"valid-feedback\" />\n </template>\n <template v-if=\"slots.description\" #description>\n <slot name=\"description\" />\n </template>\n </BFormGroupContent>\n </template>\n </template>\n </fieldset>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, toRef, useTemplateRef} from 'vue'\nimport {useAriaInvalid} from '../../composables/useAriaInvalid'\nimport {attemptFocus, isVisible} from '../../utils/dom'\nimport BCol from '../BContainer/BCol.vue'\nimport BFormRow from '../BForm/BFormRow.vue'\nimport {suffixPropName} from '../../utils/props'\nimport {useStateClass} from '../../composables/useStateClass'\nimport {useId} from '../../composables/useId'\nimport type {BFormGroupProps, BFormGroupSlots} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useProvideFormGroupData} from '../../composables/useProvideFormGroupData'\nimport BFormGroupContent from '../BFormGroupContent.vue'\nimport BFormGroupLabel from '../BFormGroupLabel.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst INPUTS = ['input', 'select', 'textarea']\n\nconst _props = withDefaults(defineProps<BFormGroupProps>(), {\n ariaInvalid: undefined,\n contentCols: undefined,\n contentColsLg: undefined,\n contentColsMd: undefined,\n contentColsSm: undefined,\n contentColsXl: undefined,\n description: undefined,\n disabled: false,\n feedbackAriaLive: 'assertive',\n floating: false,\n id: undefined,\n invalidFeedback: undefined,\n label: undefined,\n labelAlign: undefined,\n labelAlignLg: undefined,\n labelAlignMd: undefined,\n labelAlignSm: undefined,\n labelAlignXl: undefined,\n labelClass: undefined,\n labelCols: undefined,\n labelColsLg: undefined,\n labelColsMd: undefined,\n labelColsSm: undefined,\n labelColsXl: undefined,\n labelFor: undefined,\n labelSize: undefined,\n labelVisuallyHidden: false,\n state: null,\n tooltip: false,\n validFeedback: undefined,\n validated: false,\n})\nconst props = useDefaults(_props, 'BFormGroup')\nconst slots = defineSlots<BFormGroupSlots>()\n\nconst computedState = toRef(() => props.state)\nconst computedDisabled = toRef(() => props.disabled)\nconst {singleLabelTargetId} = useProvideFormGroupData({\n state: computedState,\n disabled: computedDisabled,\n})\nconst computedLabelFor = computed(() => props.labelFor ?? singleLabelTargetId.value)\n\nconst breakPoints = ['xs', 'sm', 'md', 'lg', 'xl']\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst getColProps = (props: any, prefix: string) =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n breakPoints.reduce((result: any, breakpoint: string) => {\n const suffix = suffixPropName(breakpoint === 'xs' ? '' : breakpoint, `${prefix}Cols`)\n let propValue = props[suffix]\n propValue = propValue === '' ? true : propValue || false\n\n if (!(typeof propValue === 'boolean') && propValue !== 'auto') {\n const val = Number.parseInt(propValue)\n propValue = Number.isNaN(val) ? 0 : val\n propValue = propValue > 0 ? propValue : false\n }\n\n if (propValue) {\n if (breakpoint === 'xs') {\n result[typeof propValue === 'boolean' ? 'col' : 'cols'] = propValue\n } else {\n result[breakpoint || (typeof propValue === 'boolean' ? 'col' : 'cols')] = propValue\n }\n }\n return result\n }, {})\n\nconst content = useTemplateRef<HTMLDivElement | InstanceType<typeof BCol> | null>('_content')\n\nconst contentColProps = computed(() => getColProps(props, 'content'))\nconst labelAlignClasses = computed(() =>\n ((props: BFormGroupProps, prefix: string) =>\n breakPoints.reduce((result: string[], breakpoint) => {\n const suffix = suffixPropName(\n breakpoint === 'xs' ? '' : breakpoint,\n `${prefix}Align`\n ) as keyof BFormGroupProps\n const propValue: string = props[suffix] || null\n if (propValue) {\n if (breakpoint === 'xs') {\n result.push(`text-${propValue}`)\n } else {\n result.push(`text-${breakpoint}-${propValue}`)\n }\n }\n return result\n }, []))(props, 'label')\n)\nconst labelColProps = computed(() => getColProps(props, 'label'))\nconst isHorizontal = computed(\n () => Object.keys(contentColProps.value).length > 0 || Object.keys(labelColProps.value).length > 0\n)\nconst isFloating = computed(() => props.floating && !isHorizontal.value)\n\nconst stateClass = useStateClass(computedState)\nconst computedAriaInvalid = useAriaInvalid(() => props.ariaInvalid, computedState)\n\nconst onLegendClick = (event: Readonly<MouseEvent>) => {\n if (computedLabelFor.value || content.value === null) return\n\n const {target} = event\n const tagName = target ? (target as HTMLElement).tagName : ''\n\n if ([...INPUTS, 'a', 'button', 'label'].indexOf(tagName) !== -1) return\n\n // In horizontal mode, content.value is a BCol component instance, not a DOM element\n // Access the DOM element via $el property\n const contentElement =\n isHorizontal.value && content.value && '$el' in content.value\n ? (content.value.$el as HTMLElement)\n : (content.value as HTMLDivElement | null)\n if (!contentElement) return\n\n const inputs = [\n ...contentElement.querySelectorAll(INPUTS.map((v) => `${v}:not([disabled])`).join()),\n ].filter(isVisible)\n const [inp] = inputs\n if (inputs.length === 1 && inp instanceof HTMLElement) {\n attemptFocus(inp)\n }\n}\n\nconst computedId = useId(() => props.id)\nconst labelId = useId(undefined, '_BV_label_')\nconst labelTag = computed(() => (!isFieldset.value ? 'label' : 'legend'))\nconst labelClasses = computed(() => [\n isHorizontal.value ? 'col-form-label' : 'form-label',\n {\n 'bv-no-focus-ring': !isFloating.value && !computedLabelFor.value,\n 'col-form-label': isHorizontal.value || (!isFloating.value && !computedLabelFor.value),\n 'pt-0': !isHorizontal.value && !isFloating.value && !computedLabelFor.value,\n 'd-block': !isHorizontal.value && (isFloating.value || !!computedLabelFor.value),\n [`col-form-label-${props.labelSize}`]: !!props.labelSize,\n 'visually-hidden': props.labelVisuallyHidden,\n },\n isHorizontal.value ? null : labelAlignClasses.value,\n props.labelClass,\n])\n\nconst invalidFeedbackId = useId(undefined, '_BV_feedback_invalid_')\n\nconst validFeedbackId = useId(undefined, '_BV_feedback_valid_')\nconst descriptionId = useId(undefined, '_BV_description_')\n\nconst isFieldset = computed(() => !isFloating.value && !computedLabelFor.value)\n\nconst hasDescription = computed(() => !!slots.description || !!props.description)\nconst hasInvalidFeedback = computed(() => !!slots['invalid-feedback'] || !!props.invalidFeedback)\nconst hasValidFeedback = computed(() => !!slots['valid-feedback'] || !!props.validFeedback)\n\nconst computedAriaDescribedby = computed<string | null>(() => {\n const ids: string[] = []\n if (hasDescription.value) ids.push(descriptionId.value)\n if (computedState.value === false && hasInvalidFeedback.value) ids.push(invalidFeedbackId.value)\n if (computedState.value === true && hasValidFeedback.value) ids.push(validFeedbackId.value)\n return ids.length > 0 ? ids.join(' ') : null\n})\n\nconst labelShowing = computed(() => !!slots.label || !!props.label || isHorizontal.value)\n\nconst labelComponentProps = computed(() => ({\n label: props.label,\n labelTag: labelTag.value,\n labelId: labelId.value,\n computedLabelFor: computedLabelFor.value,\n isFieldset: isFieldset.value,\n isHorizontal: isHorizontal.value,\n labelColProps: labelColProps.value,\n labelAlignClasses: labelAlignClasses.value,\n labelClasses: labelClasses.value,\n}))\n\nconst contentComponentProps = computed(() => ({\n invalidFeedback: props.invalidFeedback,\n validFeedback: props.validFeedback,\n description: props.description,\n feedbackAriaLive: props.feedbackAriaLive,\n state: computedState.value,\n tooltip: props.tooltip,\n invalidFeedbackId: invalidFeedbackId.value,\n validFeedbackId: validFeedbackId.value,\n descriptionId: descriptionId.value,\n}))\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;AAYA,IAAa,kBAAkB,QAAgB,UAC7C,SAAS,SAAS,WAAW,MAAM,IAAI;;;;;;;;;;;;;;;;;ECsCzC,MAAM,QAAQ,SAAS;EACvB,MAAM,yBAAyB,eAAe,CAAC,CAAC,MAAM,mBAAmB;EACzE,MAAM,uBAAuB,eAAe,CAAC,CAAC,MAAM,iBAAiB;EACrE,MAAM,qBAAqB,eAAe,CAAC,CAAC,MAAM,cAAc;;;IApDtD,uBAAA,SAA0B,QAAA,mBADlC,UAAA,GAAA,YAQuB,8BAAA;;KANpB,IAAI,QAAA;KACJ,aAAW,QAAA;KACX,OAAO,QAAA;KACP,SAAS,QAAA;;KAEV,SAAA,cAA0D,CAA1D,WAA0D,KAAA,QAAA,oBAAA,CAAA,SAAA,CAAzB,gBAAA,gBAAA,QAAA,eAAe,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;IAG1C,qBAAA,SAAwB,QAAA,iBADhC,UAAA,GAAA,YAQqB,4BAAA;;KANlB,IAAI,QAAA;KACJ,aAAW,QAAA;KACX,OAAO,QAAA;KACP,SAAS,QAAA;;KAEV,SAAA,cAAsD,CAAtD,WAAsD,KAAA,QAAA,kBAAA,CAAA,SAAA,CAAvB,gBAAA,gBAAA,QAAA,aAAa,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;IAE7B,mBAAA,SAAsB,QAAA,eAAvC,UAAA,GAAA,YAEY,mBAAA;;KAFyC,IAAI,QAAA;;KACvD,SAAA,cAAiD,CAAjD,WAAiD,KAAA,QAAA,eAAA,CAAA,SAAA,CAArB,gBAAA,gBAAA,QAAA,WAAW,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;EEsB3C,MAAM,OAAO;;GAxCH,OAAA,QAAA,gBADR,UAAA,GAAA,YAWO,cAXP,WAWO,EAAA,KAAA,EAAA,GATG,QAAA,eAAa;IACpB,IAAI,QAAA;IACJ,KAAK,QAAA;IACL,KAAK,QAAA,oBAAgB;IACrB,UAAU,QAAA,aAAU,OAAA;IACpB,OAAK,CAAG,QAAA,mBAAmB,QAAA,YAAY;IACvC,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,QAAA,cAAc,MAAkB,KAAI,eAAgB,CAAC,IAAI,KAAA;;IAEjE,SAAA,cAAqC,CAArC,WAAqC,KAAA,QAAA,SAAA,CAAA,SAAA,CAAf,gBAAA,gBAAA,QAAA,KAAK,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;GAE7B,CAAA,MAAA,UAAA,GAAA,YAUY,wBATL,QAAA,QAAQ,GAAA;;IAEZ,IAAI,QAAA;IACJ,KAAK,QAAA,oBAAgB;IACrB,UAAU,QAAA,aAAU,OAAA;IACpB,OAAK,eAAE,QAAA,YAAY;IACnB,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,QAAA,cAAc,MAAkB,KAAI,eAAgB,CAAC,IAAI,KAAA;;IAEjE,SAAA,cAAqC,CAArC,WAAqC,KAAA,QAAA,SAAA,CAAA,SAAA,CAAf,gBAAA,gBAAA,QAAA,KAAK,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EEmG/B,MAAM,SAAS;GAAC;GAAS;GAAU;EAAU;EAmC7C,MAAM,QAAQ,YAAY,SAAQ,YAAY;EAC9C,MAAM,QAAQ,SAAA;EAEd,MAAM,gBAAgB,YAAY,MAAM,KAAK;EAC7C,MAAM,mBAAmB,YAAY,MAAM,QAAQ;EACnD,MAAM,EAAC,wBAAuB,wBAAwB;GACpD,OAAO;GACP,UAAU;EACZ,CAAC;EACD,MAAM,mBAAmB,eAAe,MAAM,YAAY,oBAAoB,KAAK;EAEnF,MAAM,cAAc;GAAC;GAAM;GAAM;GAAM;GAAM;EAAI;EAGjD,MAAM,eAAe,OAAY,WAE/B,YAAY,QAAQ,QAAa,eAAuB;GAEtD,IAAI,YAAY,MADD,eAAe,eAAe,OAAO,KAAK,YAAY,GAAG,OAAO,KACzD;GACtB,YAAY,cAAc,KAAK,OAAO,aAAa;GAEnD,IAAI,EAAE,OAAO,cAAc,cAAc,cAAc,QAAQ;IAC7D,MAAM,MAAM,OAAO,SAAS,SAAS;IACrC,YAAY,OAAO,MAAM,GAAG,IAAI,IAAI;IACpC,YAAY,YAAY,IAAI,YAAY;GAC1C;GAEA,IAAI,WAAW;IACb,IAAI,eAAe,MACjB,OAAO,OAAO,cAAc,YAAY,QAAQ,UAAU;SAE1D,OAAO,eAAe,OAAO,cAAc,YAAY,QAAQ,WAAW;GAE9E;GACA,OAAO;EACT,GAAG,CAAC,CAAC;EAEP,MAAM,UAAU,eAAkE,UAAU;EAE5F,MAAM,kBAAkB,eAAe,YAAY,OAAO,SAAS,CAAC;EACpE,MAAM,oBAAoB,iBACtB,OAAwB,WACxB,YAAY,QAAQ,QAAkB,eAAe;GAKnD,MAAM,YAAoB,MAJX,eACb,eAAe,OAAO,KAAK,YAC3B,GAAG,OAAO,MAEoB,MAAW;GAC3C,IAAI,WAAW;IACb,IAAI,eAAe,MACjB,OAAO,KAAK,QAAQ,WAAW;SAE/B,OAAO,KAAK,QAAQ,WAAW,GAAG,WAAW;GAEjD;GACA,OAAO;EACT,GAAG,CAAC,CAAC,EAAA,CAAG,OAAO,OAAO,CAC1B;EACA,MAAM,gBAAgB,eAAe,YAAY,OAAO,OAAO,CAAC;EAChE,MAAM,eAAe,eACb,OAAO,KAAK,gBAAgB,KAAK,CAAC,CAAC,SAAS,KAAK,OAAO,KAAK,cAAc,KAAK,CAAC,CAAC,SAAS,CACnG;EACA,MAAM,aAAa,eAAe,MAAM,YAAY,CAAC,aAAa,KAAK;EAEvE,MAAM,aAAa,cAAc,aAAa;EAC9C,MAAM,sBAAsB,qBAAqB,MAAM,aAAa,aAAa;EAEjF,MAAM,iBAAiB,UAAgC;GACrD,IAAI,iBAAiB,SAAS,QAAQ,UAAU,MAAM;GAEtD,MAAM,EAAC,WAAU;GACjB,MAAM,UAAU,SAAU,OAAuB,UAAU;GAE3D,IAAI;IAAC,GAAG;IAAQ;IAAK;IAAU;GAAO,CAAC,CAAC,QAAQ,OAAO,MAAM,IAAI;GAIjE,MAAM,iBACJ,aAAa,SAAS,QAAQ,SAAS,SAAS,QAAQ,QACnD,QAAQ,MAAM,MACd,QAAQ;GACf,IAAI,CAAC,gBAAgB;GAErB,MAAM,SAAS,CACb,GAAG,eAAe,iBAAiB,OAAO,KAAK,MAAM,GAAG,EAAE,iBAAiB,CAAC,CAAC,KAAK,CAAC,CACrF,CAAC,CAAC,OAAO,SAAS;GAClB,MAAM,CAAC,OAAO;GACd,IAAI,OAAO,WAAW,KAAK,eAAe,aACxC,aAAa,GAAG;EAEpB;EAEA,MAAM,aAAa,cAAY,MAAM,EAAE;EACvC,MAAM,UAAU,QAAM,KAAA,GAAW,YAAY;EAC7C,MAAM,WAAW,eAAgB,CAAC,WAAW,QAAQ,UAAU,QAAS;EACxE,MAAM,eAAe,eAAe;GAClC,aAAa,QAAQ,mBAAmB;GACxC;IACE,oBAAoB,CAAC,WAAW,SAAS,CAAC,iBAAiB;IAC3D,kBAAkB,aAAa,SAAU,CAAC,WAAW,SAAS,CAAC,iBAAiB;IAChF,QAAQ,CAAC,aAAa,SAAS,CAAC,WAAW,SAAS,CAAC,iBAAiB;IACtE,WAAW,CAAC,aAAa,UAAU,WAAW,SAAS,CAAC,CAAC,iBAAiB;KACzE,kBAAkB,MAAM,cAAc,CAAC,CAAC,MAAM;IAC/C,mBAAmB,MAAM;GAC3B;GACA,aAAa,QAAQ,OAAO,kBAAkB;GAC9C,MAAM;EACR,CAAC;EAED,MAAM,oBAAoB,QAAM,KAAA,GAAW,uBAAuB;EAElE,MAAM,kBAAkB,QAAM,KAAA,GAAW,qBAAqB;EAC9D,MAAM,gBAAgB,QAAM,KAAA,GAAW,kBAAkB;EAEzD,MAAM,aAAa,eAAe,CAAC,WAAW,SAAS,CAAC,iBAAiB,KAAK;EAE9E,MAAM,iBAAiB,eAAe,CAAC,CAAC,MAAM,eAAe,CAAC,CAAC,MAAM,WAAW;EAChF,MAAM,qBAAqB,eAAe,CAAC,CAAC,MAAM,uBAAuB,CAAC,CAAC,MAAM,eAAe;EAChG,MAAM,mBAAmB,eAAe,CAAC,CAAC,MAAM,qBAAqB,CAAC,CAAC,MAAM,aAAa;EAE1F,MAAM,0BAA0B,eAA8B;GAC5D,MAAM,MAAgB,CAAC;GACvB,IAAI,eAAe,OAAO,IAAI,KAAK,cAAc,KAAK;GACtD,IAAI,cAAc,UAAU,SAAS,mBAAmB,OAAO,IAAI,KAAK,kBAAkB,KAAK;GAC/F,IAAI,cAAc,UAAU,QAAQ,iBAAiB,OAAO,IAAI,KAAK,gBAAgB,KAAK;GAC1F,OAAO,IAAI,SAAS,IAAI,IAAI,KAAK,GAAG,IAAI;EAC1C,CAAC;EAED,MAAM,eAAe,eAAe,CAAC,CAAC,MAAM,SAAS,CAAC,CAAC,MAAM,SAAS,aAAa,KAAK;EAExF,MAAM,sBAAsB,gBAAgB;GAC1C,OAAO,MAAM;GACb,UAAU,SAAS;GACnB,SAAS,QAAQ;GACjB,kBAAkB,iBAAiB;GACnC,YAAY,WAAW;GACvB,cAAc,aAAa;GAC3B,eAAe,cAAc;GAC7B,mBAAmB,kBAAkB;GACrC,cAAc,aAAa;EAC7B,EAAE;EAEF,MAAM,wBAAwB,gBAAgB;GAC5C,iBAAiB,MAAM;GACvB,eAAe,MAAM;GACrB,aAAa,MAAM;GACnB,kBAAkB,MAAM;GACxB,OAAO,cAAc;GACrB,SAAS,MAAM;GACf,mBAAmB,kBAAkB;GACrC,iBAAiB,gBAAgB;GACjC,eAAe,cAAc;EAC/B,EAAE;;GAnTA,OAAA,UAAA,GAAA,mBAkGW,YAlGX,WAkGW;IAjGR,IAAI,MAAA,UAAA;IACJ,UAAU,MAAA,KAAA,CAAK,CAAC;IAChB,gBAAc,MAAA,mBAAA;IACd,mBAAiB,WAAA,SAAc,aAAA,QAAe,MAAA,OAAA,IAAU,KAAA;GACjDA,GAAAA,KAAAA,QAAM,EACb,OAAK,CAAA,CAAG,MAAA,UAAA,GAAU,EAAA,iBAAoB,MAAA,KAAA,CAAK,CAAC,UAAS,CAAA,GAChD,cAAc,EAAA,CAAA,GAAA,CAGJ,aAAA,SAAhB,UAAA,GAAA,YA6BW,kBAAA,EAAA,KAAA,EAAA,GAAA;IA5BT,SAAA,cAQkB,CAPV,aAAA,SADR,UAAA,GAAA,YAQkB,yBARlB,WAQkB,EAAA,KAAA,EAAA,GANR,oBAAA,OAAmB,EACZ,cAAa,CAAA,GAAA,YAAA,EAAA,GAAA,EAAA,GAAA,CAEZ,MAAM,QAAA;KAAQ,MAAA;KAC5B,IAAA,cAAqB,CAArB,WAAqB,KAAA,QAAA,OAAA,CAAA,CAAA;;IAGzB,IAAA,KAAA,CAAA,CAAA,GAAA,IAAA,KAAA,mBAAA,IAAA,IAAA,GAAA,YAkBO,cAlBP,WAAc,gBAkBP,OAlBsB,EAAE,KAAI,WAAU,CAAA,GAAA;KAC3C,SAAA,cAKE,CALF,WAKE,KAAA,QAAA,WAAA;MAJC,IAAI,MAAA,UAAA;MACJ,iBAAkB,wBAAA;MAClB,eAAgB,MAAA,aAAA;MAChB,SAAU,MAAA,OAAA;KAEb,CAAA,GAAA,YAUoB,2BAAA,eAAA,mBAVO,sBAAA,KAAqB,CAAA,GAAA,YAAA,EAAA,GAAA,EAAA,GAAA;MAC9B,MAAK,sBAAA;OAAuB,MAAA;OAC1C,IAAA,cAAgC,CAAhC,WAAgC,KAAA,QAAA,kBAAA,CAAA,CAAA;;;MAElB,MAAK,oBAAA;OAAqB,MAAA;OACxC,IAAA,cAA8B,CAA9B,WAA8B,KAAA,QAAA,gBAAA,CAAA,CAAA;;;MAEhB,MAAM,cAAA;OAAc,MAAA;OAClC,IAAA,cAA2B,CAA3B,WAA2B,KAAA,QAAA,aAAA,CAAA,CAAA;;;;;;;GAKnC,CAAA,MAAA,UAAA,GAAA,mBAyDW,UAAA,EAAA,KAAA,EAAA,GAAA,CAxDE,WAAA,SAAX,UAAA,GAAA,mBA2BM,OA3BN,YA2BM;IA1BJ,WAKE,KAAA,QAAA,WAAA;KAJC,IAAI,MAAA,UAAA;KACJ,iBAAkB,wBAAA;KAClB,eAAgB,MAAA,aAAA;KAChB,SAAU,MAAA,OAAA;;IAGL,aAAA,SADR,UAAA,GAAA,YAQkB,yBARlB,WAQkB,EAAA,KAAA,EAAA,GANR,oBAAA,OAAmB,EACZ,cAAa,CAAA,GAAA,YAAA,EAAA,GAAA,EAAA,GAAA,CAEZ,MAAM,QAAA;KAAQ,MAAA;KAC5B,IAAA,cAAqB,CAArB,WAAqB,KAAA,QAAA,OAAA,CAAA,CAAA;;;IAGzB,YAUoB,2BAAA,eAAA,mBAVO,sBAAA,KAAqB,CAAA,GAAA,YAAA,EAAA,GAAA,EAAA,GAAA;KAC9B,MAAK,sBAAA;MAAuB,MAAA;MAC1C,IAAA,cAAgC,CAAhC,WAAgC,KAAA,QAAA,kBAAA,CAAA,CAAA;;;KAElB,MAAK,oBAAA;MAAqB,MAAA;MACxC,IAAA,cAA8B,CAA9B,WAA8B,KAAA,QAAA,gBAAA,CAAA,CAAA;;;KAEhB,MAAM,cAAA;MAAc,MAAA;MAClC,IAAA,cAA2B,CAA3B,WAA2B,KAAA,QAAA,aAAA,CAAA,CAAA;;;;GAIjC,GAAA,GAAA,MAAA,UAAA,GAAA,mBA2BW,UAAA,EAAA,KAAA,EAAA,GAAA;IAzBD,aAAA,SADR,UAAA,GAAA,YAQkB,yBARlB,WAQkB,EAAA,KAAA,EAAA,GANR,oBAAA,OAAmB,EACZ,cAAa,CAAA,GAAA,YAAA,EAAA,GAAA,EAAA,GAAA,CAEZ,MAAM,QAAA;KAAQ,MAAA;KAC5B,IAAA,cAAqB,CAArB,WAAqB,KAAA,QAAA,OAAA,CAAA,CAAA;;;IAGzB,WAKE,KAAA,QAAA,WAAA;KAJC,IAAI,MAAA,UAAA;KACJ,iBAAkB,wBAAA;KAClB,eAAgB,MAAA,aAAA;KAChB,SAAU,MAAA,OAAA;;IAEb,YAUoB,2BAAA,eAAA,mBAVO,sBAAA,KAAqB,CAAA,GAAA,YAAA,EAAA,GAAA,EAAA,GAAA;KAC9B,MAAK,sBAAA;MAAuB,MAAA;MAC1C,IAAA,cAAgC,CAAhC,WAAgC,KAAA,QAAA,kBAAA,CAAA,CAAA;;;KAElB,MAAK,oBAAA;MAAqB,MAAA;MACxC,IAAA,cAA8B,CAA9B,WAA8B,KAAA,QAAA,gBAAA,CAAA,CAAA;;;KAEhB,MAAM,cAAA;MAAc,MAAA;MAClC,IAAA,cAA2B,CAA3B,WAA2B,KAAA,QAAA,aAAA,CAAA,CAAA"}
|
|
1
|
+
{"version":3,"file":"BFormGroup-D3R7DxxF.js","names":["$attrs"],"sources":["../src/utils/props.ts","../src/components/BFormGroupContent.vue","../src/components/BFormGroupContent.vue","../src/components/BFormGroupLabel.vue","../src/components/BFormGroupLabel.vue","../src/components/BFormGroup/BFormGroup.vue","../src/components/BFormGroup/BFormGroup.vue"],"sourcesContent":["// Suffix can be a falsey value so nothing is appended to string\n// (helps when looping over props & some shouldn't change)\n\nimport {upperFirst} from './stringUtils'\n\n/**\n * Use data last parameters to allow for currying\n *\n * @param suffix\n * @param value\n * @returns\n */\nexport const suffixPropName = (suffix: string, value: string): string =>\n value + (suffix ? upperFirst(suffix) : '')\n","<template>\n <BFormInvalidFeedback\n v-if=\"hasInvalidFeedbackSlot || invalidFeedback\"\n :id=\"invalidFeedbackId\"\n :aria-live=\"feedbackAriaLive\"\n :state=\"state\"\n :tooltip=\"tooltip\"\n >\n <slot name=\"invalid-feedback\">{{ invalidFeedback }}</slot>\n </BFormInvalidFeedback>\n <BFormValidFeedback\n v-if=\"hasValidFeedbackSlot || validFeedback\"\n :id=\"validFeedbackId\"\n :aria-live=\"feedbackAriaLive\"\n :state=\"state\"\n :tooltip=\"tooltip\"\n >\n <slot name=\"valid-feedback\">{{ validFeedback }}</slot>\n </BFormValidFeedback>\n <BFormText v-if=\"hasDescriptionSlot || description\" :id=\"descriptionId\">\n <slot name=\"description\">{{ description }}</slot>\n </BFormText>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useSlots} from 'vue'\nimport type {ValidationState} from '../types'\nimport BFormInvalidFeedback from './BForm/BFormInvalidFeedback.vue'\nimport BFormValidFeedback from './BForm/BFormValidFeedback.vue'\nimport BFormText from './BForm/BFormText.vue'\n\ndefineProps<{\n invalidFeedback: string | undefined\n validFeedback: string | undefined\n description: string | undefined\n feedbackAriaLive: string | undefined\n state: ValidationState | undefined\n tooltip: boolean | undefined\n invalidFeedbackId: string | undefined\n validFeedbackId: string | undefined\n descriptionId: string | undefined\n}>()\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\ndefineSlots<{\n 'invalid-feedback'?: (props: Record<string, never>) => any\n 'valid-feedback'?: (props: Record<string, never>) => any\n 'description'?: (props: Record<string, never>) => any\n}>()\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst slots = useSlots()\nconst hasInvalidFeedbackSlot = computed(() => !!slots['invalid-feedback'])\nconst hasValidFeedbackSlot = computed(() => !!slots['valid-feedback'])\nconst hasDescriptionSlot = computed(() => !!slots['description'])\n</script>\n","<template>\n <BFormInvalidFeedback\n v-if=\"hasInvalidFeedbackSlot || invalidFeedback\"\n :id=\"invalidFeedbackId\"\n :aria-live=\"feedbackAriaLive\"\n :state=\"state\"\n :tooltip=\"tooltip\"\n >\n <slot name=\"invalid-feedback\">{{ invalidFeedback }}</slot>\n </BFormInvalidFeedback>\n <BFormValidFeedback\n v-if=\"hasValidFeedbackSlot || validFeedback\"\n :id=\"validFeedbackId\"\n :aria-live=\"feedbackAriaLive\"\n :state=\"state\"\n :tooltip=\"tooltip\"\n >\n <slot name=\"valid-feedback\">{{ validFeedback }}</slot>\n </BFormValidFeedback>\n <BFormText v-if=\"hasDescriptionSlot || description\" :id=\"descriptionId\">\n <slot name=\"description\">{{ description }}</slot>\n </BFormText>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useSlots} from 'vue'\nimport type {ValidationState} from '../types'\nimport BFormInvalidFeedback from './BForm/BFormInvalidFeedback.vue'\nimport BFormValidFeedback from './BForm/BFormValidFeedback.vue'\nimport BFormText from './BForm/BFormText.vue'\n\ndefineProps<{\n invalidFeedback: string | undefined\n validFeedback: string | undefined\n description: string | undefined\n feedbackAriaLive: string | undefined\n state: ValidationState | undefined\n tooltip: boolean | undefined\n invalidFeedbackId: string | undefined\n validFeedbackId: string | undefined\n descriptionId: string | undefined\n}>()\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\ndefineSlots<{\n 'invalid-feedback'?: (props: Record<string, never>) => any\n 'valid-feedback'?: (props: Record<string, never>) => any\n 'description'?: (props: Record<string, never>) => any\n}>()\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst slots = useSlots()\nconst hasInvalidFeedbackSlot = computed(() => !!slots['invalid-feedback'])\nconst hasValidFeedbackSlot = computed(() => !!slots['valid-feedback'])\nconst hasDescriptionSlot = computed(() => !!slots['description'])\n</script>\n","<template>\n <BCol\n v-if=\"isHorizontal\"\n v-bind=\"labelColProps\"\n :id=\"labelId\"\n :tag=\"labelTag\"\n :for=\"computedLabelFor || null\"\n :tabindex=\"isFieldset ? '-1' : null\"\n :class=\"[labelAlignClasses, labelClasses]\"\n @click=\"isFieldset ? (e: MouseEvent) => emit('legendClick', e) : undefined\"\n >\n <slot name=\"label\">{{ label }}</slot>\n </BCol>\n <component\n :is=\"labelTag\"\n v-else\n :id=\"labelId\"\n :for=\"computedLabelFor || null\"\n :tabindex=\"isFieldset ? '-1' : null\"\n :class=\"labelClasses\"\n @click=\"isFieldset ? (e: MouseEvent) => emit('legendClick', e) : undefined\"\n >\n <slot name=\"label\">{{ label }}</slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport type {ClassValue} from '../types/AnyValuedAttributes'\nimport BCol from './BContainer/BCol.vue'\n\ndefineProps<{\n label: string | undefined\n labelTag: string\n labelId: string | undefined\n computedLabelFor: string | null\n isFieldset: boolean\n isHorizontal: boolean\n labelColProps: Record<string, unknown>\n labelAlignClasses: string[]\n labelClasses: ClassValue\n}>()\n\nconst emit = defineEmits<{\n legendClick: [event: MouseEvent]\n}>()\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\ndefineSlots<{\n label?: (props: Record<string, never>) => any\n}>()\n/* eslint-enable @typescript-eslint/no-explicit-any */\n</script>\n","<template>\n <BCol\n v-if=\"isHorizontal\"\n v-bind=\"labelColProps\"\n :id=\"labelId\"\n :tag=\"labelTag\"\n :for=\"computedLabelFor || null\"\n :tabindex=\"isFieldset ? '-1' : null\"\n :class=\"[labelAlignClasses, labelClasses]\"\n @click=\"isFieldset ? (e: MouseEvent) => emit('legendClick', e) : undefined\"\n >\n <slot name=\"label\">{{ label }}</slot>\n </BCol>\n <component\n :is=\"labelTag\"\n v-else\n :id=\"labelId\"\n :for=\"computedLabelFor || null\"\n :tabindex=\"isFieldset ? '-1' : null\"\n :class=\"labelClasses\"\n @click=\"isFieldset ? (e: MouseEvent) => emit('legendClick', e) : undefined\"\n >\n <slot name=\"label\">{{ label }}</slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport type {ClassValue} from '../types/AnyValuedAttributes'\nimport BCol from './BContainer/BCol.vue'\n\ndefineProps<{\n label: string | undefined\n labelTag: string\n labelId: string | undefined\n computedLabelFor: string | null\n isFieldset: boolean\n isHorizontal: boolean\n labelColProps: Record<string, unknown>\n labelAlignClasses: string[]\n labelClasses: ClassValue\n}>()\n\nconst emit = defineEmits<{\n legendClick: [event: MouseEvent]\n}>()\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\ndefineSlots<{\n label?: (props: Record<string, never>) => any\n}>()\n/* eslint-enable @typescript-eslint/no-explicit-any */\n</script>\n","<template>\n <fieldset\n :id=\"computedId\"\n :disabled=\"props.disabled\"\n :aria-invalid=\"computedAriaInvalid\"\n :aria-labelledby=\"isFieldset && isHorizontal ? labelId : undefined\"\n v-bind=\"$attrs\"\n :class=\"[stateClass, {'was-validated': props.validated}]\"\n class=\"b-form-group\"\n >\n <!-- End of definitions -->\n <BFormRow v-if=\"isHorizontal\">\n <BFormGroupLabel\n v-if=\"labelShowing\"\n v-bind=\"labelComponentProps\"\n @legend-click=\"onLegendClick\"\n >\n <template v-if=\"slots.label\" #label>\n <slot name=\"label\" />\n </template>\n </BFormGroupLabel>\n <BCol v-bind=\"contentColProps\" ref=\"_content\">\n <slot\n :id=\"computedId\"\n :aria-describedby=\"computedAriaDescribedby\"\n :description-id=\"descriptionId\"\n :label-id=\"labelId\"\n />\n <BFormGroupContent v-bind=\"contentComponentProps\">\n <template v-if=\"slots['invalid-feedback']\" #invalid-feedback>\n <slot name=\"invalid-feedback\" />\n </template>\n <template v-if=\"slots['valid-feedback']\" #valid-feedback>\n <slot name=\"valid-feedback\" />\n </template>\n <template v-if=\"slots.description\" #description>\n <slot name=\"description\" />\n </template>\n </BFormGroupContent>\n </BCol>\n </BFormRow>\n <template v-else>\n <div v-if=\"isFloating\" ref=\"_content\" class=\"form-floating\">\n <slot\n :id=\"computedId\"\n :aria-describedby=\"computedAriaDescribedby\"\n :description-id=\"descriptionId\"\n :label-id=\"labelId\"\n />\n <BFormGroupLabel\n v-if=\"labelShowing\"\n v-bind=\"labelComponentProps\"\n @legend-click=\"onLegendClick\"\n >\n <template v-if=\"slots.label\" #label>\n <slot name=\"label\" />\n </template>\n </BFormGroupLabel>\n <BFormGroupContent v-bind=\"contentComponentProps\">\n <template v-if=\"slots['invalid-feedback']\" #invalid-feedback>\n <slot name=\"invalid-feedback\" />\n </template>\n <template v-if=\"slots['valid-feedback']\" #valid-feedback>\n <slot name=\"valid-feedback\" />\n </template>\n <template v-if=\"slots.description\" #description>\n <slot name=\"description\" />\n </template>\n </BFormGroupContent>\n </div>\n <template v-else>\n <BFormGroupLabel\n v-if=\"labelShowing\"\n v-bind=\"labelComponentProps\"\n @legend-click=\"onLegendClick\"\n >\n <template v-if=\"slots.label\" #label>\n <slot name=\"label\" />\n </template>\n </BFormGroupLabel>\n <slot\n :id=\"computedId\"\n :aria-describedby=\"computedAriaDescribedby\"\n :description-id=\"descriptionId\"\n :label-id=\"labelId\"\n />\n <BFormGroupContent v-bind=\"contentComponentProps\">\n <template v-if=\"slots['invalid-feedback']\" #invalid-feedback>\n <slot name=\"invalid-feedback\" />\n </template>\n <template v-if=\"slots['valid-feedback']\" #valid-feedback>\n <slot name=\"valid-feedback\" />\n </template>\n <template v-if=\"slots.description\" #description>\n <slot name=\"description\" />\n </template>\n </BFormGroupContent>\n </template>\n </template>\n </fieldset>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, toRef, useTemplateRef} from 'vue'\nimport {useAriaInvalid} from '../../composables/useAriaInvalid'\nimport {attemptFocus, isVisible} from '../../utils/dom'\nimport BCol from '../BContainer/BCol.vue'\nimport BFormRow from '../BForm/BFormRow.vue'\nimport {suffixPropName} from '../../utils/props'\nimport {useStateClass} from '../../composables/useStateClass'\nimport {useId} from '../../composables/useId'\nimport type {BFormGroupProps, BFormGroupSlots} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useProvideFormGroupData} from '../../composables/useProvideFormGroupData'\nimport BFormGroupContent from '../BFormGroupContent.vue'\nimport BFormGroupLabel from '../BFormGroupLabel.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst INPUTS = ['input', 'select', 'textarea']\n\nconst _props = withDefaults(defineProps<BFormGroupProps>(), {\n ariaInvalid: undefined,\n contentCols: undefined,\n contentColsLg: undefined,\n contentColsMd: undefined,\n contentColsSm: undefined,\n contentColsXl: undefined,\n description: undefined,\n disabled: false,\n feedbackAriaLive: 'assertive',\n floating: false,\n id: undefined,\n invalidFeedback: undefined,\n label: undefined,\n labelAlign: undefined,\n labelAlignLg: undefined,\n labelAlignMd: undefined,\n labelAlignSm: undefined,\n labelAlignXl: undefined,\n labelClass: undefined,\n labelCols: undefined,\n labelColsLg: undefined,\n labelColsMd: undefined,\n labelColsSm: undefined,\n labelColsXl: undefined,\n labelFor: undefined,\n labelSize: undefined,\n labelVisuallyHidden: false,\n state: null,\n tooltip: false,\n validFeedback: undefined,\n validated: false,\n})\nconst props = useDefaults(_props, 'BFormGroup')\nconst slots = defineSlots<BFormGroupSlots>()\n\nconst computedState = toRef(() => props.state)\nconst computedDisabled = toRef(() => props.disabled)\nconst {singleLabelTargetId} = useProvideFormGroupData({\n state: computedState,\n disabled: computedDisabled,\n})\nconst computedLabelFor = computed(() => props.labelFor ?? singleLabelTargetId.value)\n\nconst breakPoints = ['xs', 'sm', 'md', 'lg', 'xl']\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst getColProps = (props: any, prefix: string) =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n breakPoints.reduce((result: any, breakpoint: string) => {\n const suffix = suffixPropName(breakpoint === 'xs' ? '' : breakpoint, `${prefix}Cols`)\n let propValue = props[suffix]\n propValue = propValue === '' ? true : propValue || false\n\n if (!(typeof propValue === 'boolean') && propValue !== 'auto') {\n const val = Number.parseInt(propValue)\n propValue = Number.isNaN(val) ? 0 : val\n propValue = propValue > 0 ? propValue : false\n }\n\n if (propValue) {\n if (breakpoint === 'xs') {\n result[typeof propValue === 'boolean' ? 'col' : 'cols'] = propValue\n } else {\n result[breakpoint || (typeof propValue === 'boolean' ? 'col' : 'cols')] = propValue\n }\n }\n return result\n }, {})\n\nconst content = useTemplateRef<HTMLDivElement | InstanceType<typeof BCol> | null>('_content')\n\nconst contentColProps = computed(() => getColProps(props, 'content'))\nconst labelAlignClasses = computed(() =>\n ((props: BFormGroupProps, prefix: string) =>\n breakPoints.reduce((result: string[], breakpoint) => {\n const suffix = suffixPropName(\n breakpoint === 'xs' ? '' : breakpoint,\n `${prefix}Align`\n ) as keyof BFormGroupProps\n const propValue: string = props[suffix] || null\n if (propValue) {\n if (breakpoint === 'xs') {\n result.push(`text-${propValue}`)\n } else {\n result.push(`text-${breakpoint}-${propValue}`)\n }\n }\n return result\n }, []))(props, 'label')\n)\nconst labelColProps = computed(() => getColProps(props, 'label'))\nconst isHorizontal = computed(\n () => Object.keys(contentColProps.value).length > 0 || Object.keys(labelColProps.value).length > 0\n)\nconst isFloating = computed(() => props.floating && !isHorizontal.value)\n\nconst stateClass = useStateClass(computedState)\nconst computedAriaInvalid = useAriaInvalid(() => props.ariaInvalid, computedState)\n\nconst onLegendClick = (event: Readonly<MouseEvent>) => {\n if (computedLabelFor.value || content.value === null) return\n\n const {target} = event\n const tagName = target ? (target as HTMLElement).tagName : ''\n\n if ([...INPUTS, 'a', 'button', 'label'].indexOf(tagName) !== -1) return\n\n // In horizontal mode, content.value is a BCol component instance, not a DOM element\n // Access the DOM element via $el property\n const contentElement =\n isHorizontal.value && content.value && '$el' in content.value\n ? (content.value.$el as HTMLElement)\n : (content.value as HTMLDivElement | null)\n if (!contentElement) return\n\n const inputs = [\n ...contentElement.querySelectorAll(INPUTS.map((v) => `${v}:not([disabled])`).join()),\n ].filter(isVisible)\n const [inp] = inputs\n if (inputs.length === 1 && inp instanceof HTMLElement) {\n attemptFocus(inp)\n }\n}\n\nconst computedId = useId(() => props.id)\nconst labelId = useId(undefined, '_BV_label_')\nconst labelTag = computed(() => (!isFieldset.value ? 'label' : 'legend'))\nconst labelClasses = computed(() => [\n isHorizontal.value ? 'col-form-label' : 'form-label',\n {\n 'bv-no-focus-ring': !isFloating.value && !computedLabelFor.value,\n 'col-form-label': isHorizontal.value || (!isFloating.value && !computedLabelFor.value),\n 'pt-0': !isHorizontal.value && !isFloating.value && !computedLabelFor.value,\n 'd-block': !isHorizontal.value && (isFloating.value || !!computedLabelFor.value),\n [`col-form-label-${props.labelSize}`]: !!props.labelSize,\n 'visually-hidden': props.labelVisuallyHidden,\n },\n isHorizontal.value ? null : labelAlignClasses.value,\n props.labelClass,\n])\n\nconst invalidFeedbackId = useId(undefined, '_BV_feedback_invalid_')\n\nconst validFeedbackId = useId(undefined, '_BV_feedback_valid_')\nconst descriptionId = useId(undefined, '_BV_description_')\n\nconst isFieldset = computed(() => !isFloating.value && !computedLabelFor.value)\n\nconst hasDescription = computed(() => !!slots.description || !!props.description)\nconst hasInvalidFeedback = computed(() => !!slots['invalid-feedback'] || !!props.invalidFeedback)\nconst hasValidFeedback = computed(() => !!slots['valid-feedback'] || !!props.validFeedback)\n\nconst computedAriaDescribedby = computed<string | null>(() => {\n const ids: string[] = []\n if (hasDescription.value) ids.push(descriptionId.value)\n if (computedState.value === false && hasInvalidFeedback.value) ids.push(invalidFeedbackId.value)\n if (computedState.value === true && hasValidFeedback.value) ids.push(validFeedbackId.value)\n return ids.length > 0 ? ids.join(' ') : null\n})\n\nconst labelShowing = computed(() => !!slots.label || !!props.label || isHorizontal.value)\n\nconst labelComponentProps = computed(() => ({\n label: props.label,\n labelTag: labelTag.value,\n labelId: labelId.value,\n computedLabelFor: computedLabelFor.value,\n isFieldset: isFieldset.value,\n isHorizontal: isHorizontal.value,\n labelColProps: labelColProps.value,\n labelAlignClasses: labelAlignClasses.value,\n labelClasses: labelClasses.value,\n}))\n\nconst contentComponentProps = computed(() => ({\n invalidFeedback: props.invalidFeedback,\n validFeedback: props.validFeedback,\n description: props.description,\n feedbackAriaLive: props.feedbackAriaLive,\n state: computedState.value,\n tooltip: props.tooltip,\n invalidFeedbackId: invalidFeedbackId.value,\n validFeedbackId: validFeedbackId.value,\n descriptionId: descriptionId.value,\n}))\n</script>\n","<template>\n <fieldset\n :id=\"computedId\"\n :disabled=\"props.disabled\"\n :aria-invalid=\"computedAriaInvalid\"\n :aria-labelledby=\"isFieldset && isHorizontal ? labelId : undefined\"\n v-bind=\"$attrs\"\n :class=\"[stateClass, {'was-validated': props.validated}]\"\n class=\"b-form-group\"\n >\n <!-- End of definitions -->\n <BFormRow v-if=\"isHorizontal\">\n <BFormGroupLabel\n v-if=\"labelShowing\"\n v-bind=\"labelComponentProps\"\n @legend-click=\"onLegendClick\"\n >\n <template v-if=\"slots.label\" #label>\n <slot name=\"label\" />\n </template>\n </BFormGroupLabel>\n <BCol v-bind=\"contentColProps\" ref=\"_content\">\n <slot\n :id=\"computedId\"\n :aria-describedby=\"computedAriaDescribedby\"\n :description-id=\"descriptionId\"\n :label-id=\"labelId\"\n />\n <BFormGroupContent v-bind=\"contentComponentProps\">\n <template v-if=\"slots['invalid-feedback']\" #invalid-feedback>\n <slot name=\"invalid-feedback\" />\n </template>\n <template v-if=\"slots['valid-feedback']\" #valid-feedback>\n <slot name=\"valid-feedback\" />\n </template>\n <template v-if=\"slots.description\" #description>\n <slot name=\"description\" />\n </template>\n </BFormGroupContent>\n </BCol>\n </BFormRow>\n <template v-else>\n <div v-if=\"isFloating\" ref=\"_content\" class=\"form-floating\">\n <slot\n :id=\"computedId\"\n :aria-describedby=\"computedAriaDescribedby\"\n :description-id=\"descriptionId\"\n :label-id=\"labelId\"\n />\n <BFormGroupLabel\n v-if=\"labelShowing\"\n v-bind=\"labelComponentProps\"\n @legend-click=\"onLegendClick\"\n >\n <template v-if=\"slots.label\" #label>\n <slot name=\"label\" />\n </template>\n </BFormGroupLabel>\n <BFormGroupContent v-bind=\"contentComponentProps\">\n <template v-if=\"slots['invalid-feedback']\" #invalid-feedback>\n <slot name=\"invalid-feedback\" />\n </template>\n <template v-if=\"slots['valid-feedback']\" #valid-feedback>\n <slot name=\"valid-feedback\" />\n </template>\n <template v-if=\"slots.description\" #description>\n <slot name=\"description\" />\n </template>\n </BFormGroupContent>\n </div>\n <template v-else>\n <BFormGroupLabel\n v-if=\"labelShowing\"\n v-bind=\"labelComponentProps\"\n @legend-click=\"onLegendClick\"\n >\n <template v-if=\"slots.label\" #label>\n <slot name=\"label\" />\n </template>\n </BFormGroupLabel>\n <slot\n :id=\"computedId\"\n :aria-describedby=\"computedAriaDescribedby\"\n :description-id=\"descriptionId\"\n :label-id=\"labelId\"\n />\n <BFormGroupContent v-bind=\"contentComponentProps\">\n <template v-if=\"slots['invalid-feedback']\" #invalid-feedback>\n <slot name=\"invalid-feedback\" />\n </template>\n <template v-if=\"slots['valid-feedback']\" #valid-feedback>\n <slot name=\"valid-feedback\" />\n </template>\n <template v-if=\"slots.description\" #description>\n <slot name=\"description\" />\n </template>\n </BFormGroupContent>\n </template>\n </template>\n </fieldset>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, toRef, useTemplateRef} from 'vue'\nimport {useAriaInvalid} from '../../composables/useAriaInvalid'\nimport {attemptFocus, isVisible} from '../../utils/dom'\nimport BCol from '../BContainer/BCol.vue'\nimport BFormRow from '../BForm/BFormRow.vue'\nimport {suffixPropName} from '../../utils/props'\nimport {useStateClass} from '../../composables/useStateClass'\nimport {useId} from '../../composables/useId'\nimport type {BFormGroupProps, BFormGroupSlots} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useProvideFormGroupData} from '../../composables/useProvideFormGroupData'\nimport BFormGroupContent from '../BFormGroupContent.vue'\nimport BFormGroupLabel from '../BFormGroupLabel.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst INPUTS = ['input', 'select', 'textarea']\n\nconst _props = withDefaults(defineProps<BFormGroupProps>(), {\n ariaInvalid: undefined,\n contentCols: undefined,\n contentColsLg: undefined,\n contentColsMd: undefined,\n contentColsSm: undefined,\n contentColsXl: undefined,\n description: undefined,\n disabled: false,\n feedbackAriaLive: 'assertive',\n floating: false,\n id: undefined,\n invalidFeedback: undefined,\n label: undefined,\n labelAlign: undefined,\n labelAlignLg: undefined,\n labelAlignMd: undefined,\n labelAlignSm: undefined,\n labelAlignXl: undefined,\n labelClass: undefined,\n labelCols: undefined,\n labelColsLg: undefined,\n labelColsMd: undefined,\n labelColsSm: undefined,\n labelColsXl: undefined,\n labelFor: undefined,\n labelSize: undefined,\n labelVisuallyHidden: false,\n state: null,\n tooltip: false,\n validFeedback: undefined,\n validated: false,\n})\nconst props = useDefaults(_props, 'BFormGroup')\nconst slots = defineSlots<BFormGroupSlots>()\n\nconst computedState = toRef(() => props.state)\nconst computedDisabled = toRef(() => props.disabled)\nconst {singleLabelTargetId} = useProvideFormGroupData({\n state: computedState,\n disabled: computedDisabled,\n})\nconst computedLabelFor = computed(() => props.labelFor ?? singleLabelTargetId.value)\n\nconst breakPoints = ['xs', 'sm', 'md', 'lg', 'xl']\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst getColProps = (props: any, prefix: string) =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n breakPoints.reduce((result: any, breakpoint: string) => {\n const suffix = suffixPropName(breakpoint === 'xs' ? '' : breakpoint, `${prefix}Cols`)\n let propValue = props[suffix]\n propValue = propValue === '' ? true : propValue || false\n\n if (!(typeof propValue === 'boolean') && propValue !== 'auto') {\n const val = Number.parseInt(propValue)\n propValue = Number.isNaN(val) ? 0 : val\n propValue = propValue > 0 ? propValue : false\n }\n\n if (propValue) {\n if (breakpoint === 'xs') {\n result[typeof propValue === 'boolean' ? 'col' : 'cols'] = propValue\n } else {\n result[breakpoint || (typeof propValue === 'boolean' ? 'col' : 'cols')] = propValue\n }\n }\n return result\n }, {})\n\nconst content = useTemplateRef<HTMLDivElement | InstanceType<typeof BCol> | null>('_content')\n\nconst contentColProps = computed(() => getColProps(props, 'content'))\nconst labelAlignClasses = computed(() =>\n ((props: BFormGroupProps, prefix: string) =>\n breakPoints.reduce((result: string[], breakpoint) => {\n const suffix = suffixPropName(\n breakpoint === 'xs' ? '' : breakpoint,\n `${prefix}Align`\n ) as keyof BFormGroupProps\n const propValue: string = props[suffix] || null\n if (propValue) {\n if (breakpoint === 'xs') {\n result.push(`text-${propValue}`)\n } else {\n result.push(`text-${breakpoint}-${propValue}`)\n }\n }\n return result\n }, []))(props, 'label')\n)\nconst labelColProps = computed(() => getColProps(props, 'label'))\nconst isHorizontal = computed(\n () => Object.keys(contentColProps.value).length > 0 || Object.keys(labelColProps.value).length > 0\n)\nconst isFloating = computed(() => props.floating && !isHorizontal.value)\n\nconst stateClass = useStateClass(computedState)\nconst computedAriaInvalid = useAriaInvalid(() => props.ariaInvalid, computedState)\n\nconst onLegendClick = (event: Readonly<MouseEvent>) => {\n if (computedLabelFor.value || content.value === null) return\n\n const {target} = event\n const tagName = target ? (target as HTMLElement).tagName : ''\n\n if ([...INPUTS, 'a', 'button', 'label'].indexOf(tagName) !== -1) return\n\n // In horizontal mode, content.value is a BCol component instance, not a DOM element\n // Access the DOM element via $el property\n const contentElement =\n isHorizontal.value && content.value && '$el' in content.value\n ? (content.value.$el as HTMLElement)\n : (content.value as HTMLDivElement | null)\n if (!contentElement) return\n\n const inputs = [\n ...contentElement.querySelectorAll(INPUTS.map((v) => `${v}:not([disabled])`).join()),\n ].filter(isVisible)\n const [inp] = inputs\n if (inputs.length === 1 && inp instanceof HTMLElement) {\n attemptFocus(inp)\n }\n}\n\nconst computedId = useId(() => props.id)\nconst labelId = useId(undefined, '_BV_label_')\nconst labelTag = computed(() => (!isFieldset.value ? 'label' : 'legend'))\nconst labelClasses = computed(() => [\n isHorizontal.value ? 'col-form-label' : 'form-label',\n {\n 'bv-no-focus-ring': !isFloating.value && !computedLabelFor.value,\n 'col-form-label': isHorizontal.value || (!isFloating.value && !computedLabelFor.value),\n 'pt-0': !isHorizontal.value && !isFloating.value && !computedLabelFor.value,\n 'd-block': !isHorizontal.value && (isFloating.value || !!computedLabelFor.value),\n [`col-form-label-${props.labelSize}`]: !!props.labelSize,\n 'visually-hidden': props.labelVisuallyHidden,\n },\n isHorizontal.value ? null : labelAlignClasses.value,\n props.labelClass,\n])\n\nconst invalidFeedbackId = useId(undefined, '_BV_feedback_invalid_')\n\nconst validFeedbackId = useId(undefined, '_BV_feedback_valid_')\nconst descriptionId = useId(undefined, '_BV_description_')\n\nconst isFieldset = computed(() => !isFloating.value && !computedLabelFor.value)\n\nconst hasDescription = computed(() => !!slots.description || !!props.description)\nconst hasInvalidFeedback = computed(() => !!slots['invalid-feedback'] || !!props.invalidFeedback)\nconst hasValidFeedback = computed(() => !!slots['valid-feedback'] || !!props.validFeedback)\n\nconst computedAriaDescribedby = computed<string | null>(() => {\n const ids: string[] = []\n if (hasDescription.value) ids.push(descriptionId.value)\n if (computedState.value === false && hasInvalidFeedback.value) ids.push(invalidFeedbackId.value)\n if (computedState.value === true && hasValidFeedback.value) ids.push(validFeedbackId.value)\n return ids.length > 0 ? ids.join(' ') : null\n})\n\nconst labelShowing = computed(() => !!slots.label || !!props.label || isHorizontal.value)\n\nconst labelComponentProps = computed(() => ({\n label: props.label,\n labelTag: labelTag.value,\n labelId: labelId.value,\n computedLabelFor: computedLabelFor.value,\n isFieldset: isFieldset.value,\n isHorizontal: isHorizontal.value,\n labelColProps: labelColProps.value,\n labelAlignClasses: labelAlignClasses.value,\n labelClasses: labelClasses.value,\n}))\n\nconst contentComponentProps = computed(() => ({\n invalidFeedback: props.invalidFeedback,\n validFeedback: props.validFeedback,\n description: props.description,\n feedbackAriaLive: props.feedbackAriaLive,\n state: computedState.value,\n tooltip: props.tooltip,\n invalidFeedbackId: invalidFeedbackId.value,\n validFeedbackId: validFeedbackId.value,\n descriptionId: descriptionId.value,\n}))\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;AAYA,IAAa,kBAAkB,QAAgB,UAC7C,SAAS,SAAS,WAAW,MAAM,IAAI;;;;;;;;;;;;;;;;;ECsCzC,MAAM,QAAQ,SAAS;EACvB,MAAM,yBAAyB,eAAe,CAAC,CAAC,MAAM,mBAAmB;EACzE,MAAM,uBAAuB,eAAe,CAAC,CAAC,MAAM,iBAAiB;EACrE,MAAM,qBAAqB,eAAe,CAAC,CAAC,MAAM,cAAc;;;IApDtD,uBAAA,SAA0B,QAAA,mBADlC,UAAA,GAAA,YAQuB,8BAAA;;KANpB,IAAI,QAAA;KACJ,aAAW,QAAA;KACX,OAAO,QAAA;KACP,SAAS,QAAA;;KAEV,SAAA,cAA0D,CAA1D,WAA0D,KAAA,QAAA,oBAAA,CAAA,SAAA,CAAzB,gBAAA,gBAAA,QAAA,eAAe,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;IAG1C,qBAAA,SAAwB,QAAA,iBADhC,UAAA,GAAA,YAQqB,4BAAA;;KANlB,IAAI,QAAA;KACJ,aAAW,QAAA;KACX,OAAO,QAAA;KACP,SAAS,QAAA;;KAEV,SAAA,cAAsD,CAAtD,WAAsD,KAAA,QAAA,kBAAA,CAAA,SAAA,CAAvB,gBAAA,gBAAA,QAAA,aAAa,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;IAE7B,mBAAA,SAAsB,QAAA,eAAvC,UAAA,GAAA,YAEY,mBAAA;;KAFyC,IAAI,QAAA;;KACvD,SAAA,cAAiD,CAAjD,WAAiD,KAAA,QAAA,eAAA,CAAA,SAAA,CAArB,gBAAA,gBAAA,QAAA,WAAW,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;EEsB3C,MAAM,OAAO;;GAxCH,OAAA,QAAA,gBADR,UAAA,GAAA,YAWO,cAXP,WAWO,EAAA,KAAA,EAAA,GATG,QAAA,eAAa;IACpB,IAAI,QAAA;IACJ,KAAK,QAAA;IACL,KAAK,QAAA,oBAAgB;IACrB,UAAU,QAAA,aAAU,OAAA;IACpB,OAAK,CAAG,QAAA,mBAAmB,QAAA,YAAY;IACvC,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,QAAA,cAAc,MAAkB,KAAI,eAAgB,CAAC,IAAI,KAAA;;IAEjE,SAAA,cAAqC,CAArC,WAAqC,KAAA,QAAA,SAAA,CAAA,SAAA,CAAf,gBAAA,gBAAA,QAAA,KAAK,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;GAE7B,CAAA,MAAA,UAAA,GAAA,YAUY,wBATL,QAAA,QAAQ,GAAA;;IAEZ,IAAI,QAAA;IACJ,KAAK,QAAA,oBAAgB;IACrB,UAAU,QAAA,aAAU,OAAA;IACpB,OAAK,eAAE,QAAA,YAAY;IACnB,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,QAAA,cAAc,MAAkB,KAAI,eAAgB,CAAC,IAAI,KAAA;;IAEjE,SAAA,cAAqC,CAArC,WAAqC,KAAA,QAAA,SAAA,CAAA,SAAA,CAAf,gBAAA,gBAAA,QAAA,KAAK,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EEmG/B,MAAM,SAAS;GAAC;GAAS;GAAU;EAAU;EAmC7C,MAAM,QAAQ,YAAY,SAAQ,YAAY;EAC9C,MAAM,QAAQ,SAAA;EAEd,MAAM,gBAAgB,YAAY,MAAM,KAAK;EAC7C,MAAM,mBAAmB,YAAY,MAAM,QAAQ;EACnD,MAAM,EAAC,wBAAuB,wBAAwB;GACpD,OAAO;GACP,UAAU;EACZ,CAAC;EACD,MAAM,mBAAmB,eAAe,MAAM,YAAY,oBAAoB,KAAK;EAEnF,MAAM,cAAc;GAAC;GAAM;GAAM;GAAM;GAAM;EAAI;EAGjD,MAAM,eAAe,OAAY,WAE/B,YAAY,QAAQ,QAAa,eAAuB;GAEtD,IAAI,YAAY,MADD,eAAe,eAAe,OAAO,KAAK,YAAY,GAAG,OAAO,KACzD;GACtB,YAAY,cAAc,KAAK,OAAO,aAAa;GAEnD,IAAI,EAAE,OAAO,cAAc,cAAc,cAAc,QAAQ;IAC7D,MAAM,MAAM,OAAO,SAAS,SAAS;IACrC,YAAY,OAAO,MAAM,GAAG,IAAI,IAAI;IACpC,YAAY,YAAY,IAAI,YAAY;GAC1C;GAEA,IAAI,WAAW;IACb,IAAI,eAAe,MACjB,OAAO,OAAO,cAAc,YAAY,QAAQ,UAAU;SAE1D,OAAO,eAAe,OAAO,cAAc,YAAY,QAAQ,WAAW;GAE9E;GACA,OAAO;EACT,GAAG,CAAC,CAAC;EAEP,MAAM,UAAU,eAAkE,UAAU;EAE5F,MAAM,kBAAkB,eAAe,YAAY,OAAO,SAAS,CAAC;EACpE,MAAM,oBAAoB,iBACtB,OAAwB,WACxB,YAAY,QAAQ,QAAkB,eAAe;GAKnD,MAAM,YAAoB,MAJX,eACb,eAAe,OAAO,KAAK,YAC3B,GAAG,OAAO,MAEoB,MAAW;GAC3C,IAAI,WAAW;IACb,IAAI,eAAe,MACjB,OAAO,KAAK,QAAQ,WAAW;SAE/B,OAAO,KAAK,QAAQ,WAAW,GAAG,WAAW;GAEjD;GACA,OAAO;EACT,GAAG,CAAC,CAAC,EAAA,CAAG,OAAO,OAAO,CAC1B;EACA,MAAM,gBAAgB,eAAe,YAAY,OAAO,OAAO,CAAC;EAChE,MAAM,eAAe,eACb,OAAO,KAAK,gBAAgB,KAAK,CAAC,CAAC,SAAS,KAAK,OAAO,KAAK,cAAc,KAAK,CAAC,CAAC,SAAS,CACnG;EACA,MAAM,aAAa,eAAe,MAAM,YAAY,CAAC,aAAa,KAAK;EAEvE,MAAM,aAAa,cAAc,aAAa;EAC9C,MAAM,sBAAsB,qBAAqB,MAAM,aAAa,aAAa;EAEjF,MAAM,iBAAiB,UAAgC;GACrD,IAAI,iBAAiB,SAAS,QAAQ,UAAU,MAAM;GAEtD,MAAM,EAAC,WAAU;GACjB,MAAM,UAAU,SAAU,OAAuB,UAAU;GAE3D,IAAI;IAAC,GAAG;IAAQ;IAAK;IAAU;GAAO,CAAC,CAAC,QAAQ,OAAO,MAAM,IAAI;GAIjE,MAAM,iBACJ,aAAa,SAAS,QAAQ,SAAS,SAAS,QAAQ,QACnD,QAAQ,MAAM,MACd,QAAQ;GACf,IAAI,CAAC,gBAAgB;GAErB,MAAM,SAAS,CACb,GAAG,eAAe,iBAAiB,OAAO,KAAK,MAAM,GAAG,EAAE,iBAAiB,CAAC,CAAC,KAAK,CAAC,CACrF,CAAC,CAAC,OAAO,SAAS;GAClB,MAAM,CAAC,OAAO;GACd,IAAI,OAAO,WAAW,KAAK,eAAe,aACxC,aAAa,GAAG;EAEpB;EAEA,MAAM,aAAa,cAAY,MAAM,EAAE;EACvC,MAAM,UAAU,QAAM,KAAA,GAAW,YAAY;EAC7C,MAAM,WAAW,eAAgB,CAAC,WAAW,QAAQ,UAAU,QAAS;EACxE,MAAM,eAAe,eAAe;GAClC,aAAa,QAAQ,mBAAmB;GACxC;IACE,oBAAoB,CAAC,WAAW,SAAS,CAAC,iBAAiB;IAC3D,kBAAkB,aAAa,SAAU,CAAC,WAAW,SAAS,CAAC,iBAAiB;IAChF,QAAQ,CAAC,aAAa,SAAS,CAAC,WAAW,SAAS,CAAC,iBAAiB;IACtE,WAAW,CAAC,aAAa,UAAU,WAAW,SAAS,CAAC,CAAC,iBAAiB;KACzE,kBAAkB,MAAM,cAAc,CAAC,CAAC,MAAM;IAC/C,mBAAmB,MAAM;GAC3B;GACA,aAAa,QAAQ,OAAO,kBAAkB;GAC9C,MAAM;EACR,CAAC;EAED,MAAM,oBAAoB,QAAM,KAAA,GAAW,uBAAuB;EAElE,MAAM,kBAAkB,QAAM,KAAA,GAAW,qBAAqB;EAC9D,MAAM,gBAAgB,QAAM,KAAA,GAAW,kBAAkB;EAEzD,MAAM,aAAa,eAAe,CAAC,WAAW,SAAS,CAAC,iBAAiB,KAAK;EAE9E,MAAM,iBAAiB,eAAe,CAAC,CAAC,MAAM,eAAe,CAAC,CAAC,MAAM,WAAW;EAChF,MAAM,qBAAqB,eAAe,CAAC,CAAC,MAAM,uBAAuB,CAAC,CAAC,MAAM,eAAe;EAChG,MAAM,mBAAmB,eAAe,CAAC,CAAC,MAAM,qBAAqB,CAAC,CAAC,MAAM,aAAa;EAE1F,MAAM,0BAA0B,eAA8B;GAC5D,MAAM,MAAgB,CAAC;GACvB,IAAI,eAAe,OAAO,IAAI,KAAK,cAAc,KAAK;GACtD,IAAI,cAAc,UAAU,SAAS,mBAAmB,OAAO,IAAI,KAAK,kBAAkB,KAAK;GAC/F,IAAI,cAAc,UAAU,QAAQ,iBAAiB,OAAO,IAAI,KAAK,gBAAgB,KAAK;GAC1F,OAAO,IAAI,SAAS,IAAI,IAAI,KAAK,GAAG,IAAI;EAC1C,CAAC;EAED,MAAM,eAAe,eAAe,CAAC,CAAC,MAAM,SAAS,CAAC,CAAC,MAAM,SAAS,aAAa,KAAK;EAExF,MAAM,sBAAsB,gBAAgB;GAC1C,OAAO,MAAM;GACb,UAAU,SAAS;GACnB,SAAS,QAAQ;GACjB,kBAAkB,iBAAiB;GACnC,YAAY,WAAW;GACvB,cAAc,aAAa;GAC3B,eAAe,cAAc;GAC7B,mBAAmB,kBAAkB;GACrC,cAAc,aAAa;EAC7B,EAAE;EAEF,MAAM,wBAAwB,gBAAgB;GAC5C,iBAAiB,MAAM;GACvB,eAAe,MAAM;GACrB,aAAa,MAAM;GACnB,kBAAkB,MAAM;GACxB,OAAO,cAAc;GACrB,SAAS,MAAM;GACf,mBAAmB,kBAAkB;GACrC,iBAAiB,gBAAgB;GACjC,eAAe,cAAc;EAC/B,EAAE;;GAnTA,OAAA,UAAA,GAAA,mBAkGW,YAlGX,WAkGW;IAjGR,IAAI,MAAA,UAAA;IACJ,UAAU,MAAA,KAAA,CAAK,CAAC;IAChB,gBAAc,MAAA,mBAAA;IACd,mBAAiB,WAAA,SAAc,aAAA,QAAe,MAAA,OAAA,IAAU,KAAA;GACjDA,GAAAA,KAAAA,QAAM,EACb,OAAK,CAAA,CAAG,MAAA,UAAA,GAAU,EAAA,iBAAoB,MAAA,KAAA,CAAK,CAAC,UAAS,CAAA,GAChD,cAAc,EAAA,CAAA,GAAA,CAGJ,aAAA,SAAhB,UAAA,GAAA,YA6BW,kBAAA,EAAA,KAAA,EAAA,GAAA;IA5BT,SAAA,cAQkB,CAPV,aAAA,SADR,UAAA,GAAA,YAQkB,yBARlB,WAQkB,EAAA,KAAA,EAAA,GANR,oBAAA,OAAmB,EACZ,cAAa,CAAA,GAAA,YAAA,EAAA,GAAA,EAAA,GAAA,CAEZ,MAAM,QAAA;KAAQ,MAAA;KAC5B,IAAA,cAAqB,CAArB,WAAqB,KAAA,QAAA,OAAA,CAAA,CAAA;;IAGzB,IAAA,KAAA,CAAA,CAAA,GAAA,IAAA,KAAA,mBAAA,IAAA,IAAA,GAAA,YAkBO,cAlBP,WAAc,gBAkBP,OAlBsB,EAAE,KAAI,WAAU,CAAA,GAAA;KAC3C,SAAA,cAKE,CALF,WAKE,KAAA,QAAA,WAAA;MAJC,IAAI,MAAA,UAAA;MACJ,iBAAkB,wBAAA;MAClB,eAAgB,MAAA,aAAA;MAChB,SAAU,MAAA,OAAA;KAEb,CAAA,GAAA,YAUoB,2BAAA,eAAA,mBAVO,sBAAA,KAAqB,CAAA,GAAA,YAAA,EAAA,GAAA,EAAA,GAAA;MAC9B,MAAK,sBAAA;OAAuB,MAAA;OAC1C,IAAA,cAAgC,CAAhC,WAAgC,KAAA,QAAA,kBAAA,CAAA,CAAA;;;MAElB,MAAK,oBAAA;OAAqB,MAAA;OACxC,IAAA,cAA8B,CAA9B,WAA8B,KAAA,QAAA,gBAAA,CAAA,CAAA;;;MAEhB,MAAM,cAAA;OAAc,MAAA;OAClC,IAAA,cAA2B,CAA3B,WAA2B,KAAA,QAAA,aAAA,CAAA,CAAA;;;;;;;GAKnC,CAAA,MAAA,UAAA,GAAA,mBAyDW,UAAA,EAAA,KAAA,EAAA,GAAA,CAxDE,WAAA,SAAX,UAAA,GAAA,mBA2BM,OA3BN,YA2BM;IA1BJ,WAKE,KAAA,QAAA,WAAA;KAJC,IAAI,MAAA,UAAA;KACJ,iBAAkB,wBAAA;KAClB,eAAgB,MAAA,aAAA;KAChB,SAAU,MAAA,OAAA;;IAGL,aAAA,SADR,UAAA,GAAA,YAQkB,yBARlB,WAQkB,EAAA,KAAA,EAAA,GANR,oBAAA,OAAmB,EACZ,cAAa,CAAA,GAAA,YAAA,EAAA,GAAA,EAAA,GAAA,CAEZ,MAAM,QAAA;KAAQ,MAAA;KAC5B,IAAA,cAAqB,CAArB,WAAqB,KAAA,QAAA,OAAA,CAAA,CAAA;;;IAGzB,YAUoB,2BAAA,eAAA,mBAVO,sBAAA,KAAqB,CAAA,GAAA,YAAA,EAAA,GAAA,EAAA,GAAA;KAC9B,MAAK,sBAAA;MAAuB,MAAA;MAC1C,IAAA,cAAgC,CAAhC,WAAgC,KAAA,QAAA,kBAAA,CAAA,CAAA;;;KAElB,MAAK,oBAAA;MAAqB,MAAA;MACxC,IAAA,cAA8B,CAA9B,WAA8B,KAAA,QAAA,gBAAA,CAAA,CAAA;;;KAEhB,MAAM,cAAA;MAAc,MAAA;MAClC,IAAA,cAA2B,CAA3B,WAA2B,KAAA,QAAA,aAAA,CAAA,CAAA;;;;GAIjC,GAAA,GAAA,MAAA,UAAA,GAAA,mBA2BW,UAAA,EAAA,KAAA,EAAA,GAAA;IAzBD,aAAA,SADR,UAAA,GAAA,YAQkB,yBARlB,WAQkB,EAAA,KAAA,EAAA,GANR,oBAAA,OAAmB,EACZ,cAAa,CAAA,GAAA,YAAA,EAAA,GAAA,EAAA,GAAA,CAEZ,MAAM,QAAA;KAAQ,MAAA;KAC5B,IAAA,cAAqB,CAArB,WAAqB,KAAA,QAAA,OAAA,CAAA,CAAA;;;IAGzB,WAKE,KAAA,QAAA,WAAA;KAJC,IAAI,MAAA,UAAA;KACJ,iBAAkB,wBAAA;KAClB,eAAgB,MAAA,aAAA;KAChB,SAAU,MAAA,OAAA;;IAEb,YAUoB,2BAAA,eAAA,mBAVO,sBAAA,KAAqB,CAAA,GAAA,YAAA,EAAA,GAAA,EAAA,GAAA;KAC9B,MAAK,sBAAA;MAAuB,MAAA;MAC1C,IAAA,cAAgC,CAAhC,WAAgC,KAAA,QAAA,kBAAA,CAAA,CAAA;;;KAElB,MAAK,oBAAA;MAAqB,MAAA;MACxC,IAAA,cAA8B,CAA9B,WAA8B,KAAA,QAAA,gBAAA,CAAA,CAAA;;;KAEhB,MAAM,cAAA;MAAc,MAAA;MAClC,IAAA,cAA2B,CAA3B,WAA2B,KAAA,QAAA,aAAA,CAAA,CAAA"}
|
|
@@ -160,7 +160,7 @@ var BFormValidFeedback_default = /* @__PURE__ */ defineComponent({
|
|
|
160
160
|
}
|
|
161
161
|
},
|
|
162
162
|
setup(__props) {
|
|
163
|
-
const props = useDefaults(__props, "
|
|
163
|
+
const props = useDefaults(__props, "BFormValidFeedback");
|
|
164
164
|
const computedShow = computed(() => props.forceShow === true || props.state === true);
|
|
165
165
|
const computedClasses = computed(() => ({
|
|
166
166
|
"d-block": computedShow.value,
|
|
@@ -190,4 +190,4 @@ var BFormValidFeedback_default = /* @__PURE__ */ defineComponent({
|
|
|
190
190
|
//#endregion
|
|
191
191
|
export { useProvideFormGroupData as a, BFormInvalidFeedback_default as i, BFormText_default as n, BFormRow_default as r, BFormValidFeedback_default as t };
|
|
192
192
|
|
|
193
|
-
//# sourceMappingURL=BFormValidFeedback-
|
|
193
|
+
//# sourceMappingURL=BFormValidFeedback-BTNOXbQ6.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BFormValidFeedback-ClqLRxtH.js","names":[],"sources":["../src/composables/useProvideFormGroupData.ts","../src/components/BForm/BFormInvalidFeedback.vue","../src/components/BForm/BFormInvalidFeedback.vue","../src/components/BForm/BFormRow.vue","../src/components/BForm/BFormRow.vue","../src/components/BForm/BFormText.vue","../src/components/BForm/BFormText.vue","../src/components/BForm/BFormValidFeedback.vue","../src/components/BForm/BFormValidFeedback.vue"],"sourcesContent":["import {computed, onUnmounted, provide, type Ref, shallowRef} from 'vue'\nimport type {ValidationState} from '../types/CommonTypes'\nimport {formGroupKey} from '../utils/keys'\n\nconst useLabelTargetRegistry = () => {\n const labelTargetIds = shallowRef<Readonly<Ref<string | null>>[]>([])\n\n // Track runs in the descendant's setup, so onUnmounted binds to the descendant.\n const track = (idRef: Readonly<Ref<string | null>>) => {\n labelTargetIds.value = [...labelTargetIds.value, idRef]\n onUnmounted(() => {\n labelTargetIds.value = labelTargetIds.value.filter((r: Readonly<Ref<string | null>>) => r !== idRef)\n })\n }\n\n return {labelTargetIds, track}\n}\n\n/**\n * Provides formGroupKey for descendant form controls. Each provider has its own isolated\n * label-target registry: BFormGroup uses the resulting `singleLabelTargetId` to drive its\n * label/legend rendering. Intermediate components (e.g. BFormFloatingLabel) call this with\n * passed-through state/disabled, acting as a boundary — their registry exists but is unused,\n * so descendant claims never reach an outer BFormGroup.\n */\nexport const useProvideFormGroupData = ({\n state,\n disabled,\n}: {\n state: Readonly<Ref<ValidationState | undefined>>\n disabled: Readonly<Ref<boolean>>\n}) => {\n const {labelTargetIds, track} = useLabelTargetRegistry()\n\n provide(formGroupKey, () => ({state, disabled, track}))\n\n // null unless exactly one distinct non-empty id is currently registered.\n const singleLabelTargetId = computed<string | null>(() => {\n let single: string | null = null\n for (const r of labelTargetIds.value) {\n const v = r.value\n if (!v) continue\n if (single !== null && single !== v) return null\n single = v\n }\n return single\n })\n\n return {singleLabelTargetId}\n}\n","<template>\n <component\n :is=\"props.tag\"\n :id=\"props.id\"\n :role=\"props.role\"\n :aria-live=\"props.ariaLive\"\n :aria-atomic=\"props.ariaLive ? true : undefined\"\n :class=\"computedClasses\"\n >\n <slot>\n {{ props.text }}\n </slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BFormInvalidFeedbackProps, BFormInvalidFeedbackSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BFormInvalidFeedbackProps>(), {\n ariaLive: undefined,\n forceShow: false,\n id: undefined,\n role: undefined,\n state: null,\n tag: 'div',\n text: undefined,\n tooltip: false,\n})\nconst props = useDefaults(_props, 'BFormInvalidFeedback')\ndefineSlots<BFormInvalidFeedbackSlots>()\n\nconst computedShow = computed(() => props.forceShow || props.state === false)\n\nconst computedClasses = computed(() => ({\n 'd-block': computedShow.value,\n 'invalid-feedback': !props.tooltip,\n 'invalid-tooltip': props.tooltip,\n}))\n</script>\n","<template>\n <component\n :is=\"props.tag\"\n :id=\"props.id\"\n :role=\"props.role\"\n :aria-live=\"props.ariaLive\"\n :aria-atomic=\"props.ariaLive ? true : undefined\"\n :class=\"computedClasses\"\n >\n <slot>\n {{ props.text }}\n </slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BFormInvalidFeedbackProps, BFormInvalidFeedbackSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BFormInvalidFeedbackProps>(), {\n ariaLive: undefined,\n forceShow: false,\n id: undefined,\n role: undefined,\n state: null,\n tag: 'div',\n text: undefined,\n tooltip: false,\n})\nconst props = useDefaults(_props, 'BFormInvalidFeedback')\ndefineSlots<BFormInvalidFeedbackSlots>()\n\nconst computedShow = computed(() => props.forceShow || props.state === false)\n\nconst computedClasses = computed(() => ({\n 'd-block': computedShow.value,\n 'invalid-feedback': !props.tooltip,\n 'invalid-tooltip': props.tooltip,\n}))\n</script>\n","<template>\n <component :is=\"props.tag\" class=\"row d-flex flex-wrap\">\n <slot />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BFormRowProps, BFormRowSlots} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\n\nconst _props = withDefaults(defineProps<BFormRowProps>(), {\n tag: 'div',\n})\nconst props = useDefaults(_props, 'BFormRow')\ndefineSlots<BFormRowSlots>()\n</script>\n","<template>\n <component :is=\"props.tag\" class=\"row d-flex flex-wrap\">\n <slot />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BFormRowProps, BFormRowSlots} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\n\nconst _props = withDefaults(defineProps<BFormRowProps>(), {\n tag: 'div',\n})\nconst props = useDefaults(_props, 'BFormRow')\ndefineSlots<BFormRowSlots>()\n</script>\n","<template>\n <component :is=\"props.tag\" :id=\"props.id\" :class=\"computedClasses\">\n <slot>\n {{ props.text }}\n </slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BFormTextProps, BFormTextSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BFormTextProps>(), {\n id: undefined,\n inline: false,\n tag: 'small',\n text: undefined,\n textVariant: 'body-secondary',\n})\nconst props = useDefaults(_props, 'BFormText')\ndefineSlots<BFormTextSlots>()\n\nconst colorClasses = useColorVariantClasses(props)\nconst computedClasses = computed(() => [\n colorClasses.value,\n {\n 'form-text': !props.inline,\n },\n])\n</script>\n","<template>\n <component :is=\"props.tag\" :id=\"props.id\" :class=\"computedClasses\">\n <slot>\n {{ props.text }}\n </slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BFormTextProps, BFormTextSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BFormTextProps>(), {\n id: undefined,\n inline: false,\n tag: 'small',\n text: undefined,\n textVariant: 'body-secondary',\n})\nconst props = useDefaults(_props, 'BFormText')\ndefineSlots<BFormTextSlots>()\n\nconst colorClasses = useColorVariantClasses(props)\nconst computedClasses = computed(() => [\n colorClasses.value,\n {\n 'form-text': !props.inline,\n },\n])\n</script>\n","<template>\n <component\n :is=\"props.tag\"\n :id=\"props.id\"\n :role=\"props.role\"\n :aria-live=\"props.ariaLive\"\n :aria-atomic=\"props.ariaLive ? true : undefined\"\n :class=\"computedClasses\"\n >\n <slot>\n {{ props.text }}\n </slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BFormValidFeedbackProps, BFormValidFeedbackSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BFormValidFeedbackProps>(), {\n ariaLive: undefined,\n forceShow: false,\n id: undefined,\n role: undefined,\n state: null,\n tag: 'div',\n text: undefined,\n tooltip: false,\n})\nconst props = useDefaults(_props, 'BFormInvalidFeedback')\ndefineSlots<BFormValidFeedbackSlots>()\n\nconst computedShow = computed(() => props.forceShow === true || props.state === true)\n\nconst computedClasses = computed(() => ({\n 'd-block': computedShow.value,\n 'valid-feedback': !props.tooltip,\n 'valid-tooltip': props.tooltip,\n}))\n</script>\n","<template>\n <component\n :is=\"props.tag\"\n :id=\"props.id\"\n :role=\"props.role\"\n :aria-live=\"props.ariaLive\"\n :aria-atomic=\"props.ariaLive ? true : undefined\"\n :class=\"computedClasses\"\n >\n <slot>\n {{ props.text }}\n </slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BFormValidFeedbackProps, BFormValidFeedbackSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BFormValidFeedbackProps>(), {\n ariaLive: undefined,\n forceShow: false,\n id: undefined,\n role: undefined,\n state: null,\n tag: 'div',\n text: undefined,\n tooltip: false,\n})\nconst props = useDefaults(_props, 'BFormInvalidFeedback')\ndefineSlots<BFormValidFeedbackSlots>()\n\nconst computedShow = computed(() => props.forceShow === true || props.state === true)\n\nconst computedClasses = computed(() => ({\n 'd-block': computedShow.value,\n 'valid-feedback': !props.tooltip,\n 'valid-tooltip': props.tooltip,\n}))\n</script>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BFormValidFeedback-BTNOXbQ6.js","names":[],"sources":["../src/composables/useProvideFormGroupData.ts","../src/components/BForm/BFormInvalidFeedback.vue","../src/components/BForm/BFormInvalidFeedback.vue","../src/components/BForm/BFormRow.vue","../src/components/BForm/BFormRow.vue","../src/components/BForm/BFormText.vue","../src/components/BForm/BFormText.vue","../src/components/BForm/BFormValidFeedback.vue","../src/components/BForm/BFormValidFeedback.vue"],"sourcesContent":["import {computed, onUnmounted, provide, type Ref, shallowRef} from 'vue'\nimport type {ValidationState} from '../types/CommonTypes'\nimport {formGroupKey} from '../utils/keys'\n\nconst useLabelTargetRegistry = () => {\n const labelTargetIds = shallowRef<Readonly<Ref<string | null>>[]>([])\n\n // Track runs in the descendant's setup, so onUnmounted binds to the descendant.\n const track = (idRef: Readonly<Ref<string | null>>) => {\n labelTargetIds.value = [...labelTargetIds.value, idRef]\n onUnmounted(() => {\n labelTargetIds.value = labelTargetIds.value.filter((r: Readonly<Ref<string | null>>) => r !== idRef)\n })\n }\n\n return {labelTargetIds, track}\n}\n\n/**\n * Provides formGroupKey for descendant form controls. Each provider has its own isolated\n * label-target registry: BFormGroup uses the resulting `singleLabelTargetId` to drive its\n * label/legend rendering. Intermediate components (e.g. BFormFloatingLabel) call this with\n * passed-through state/disabled, acting as a boundary — their registry exists but is unused,\n * so descendant claims never reach an outer BFormGroup.\n */\nexport const useProvideFormGroupData = ({\n state,\n disabled,\n}: {\n state: Readonly<Ref<ValidationState | undefined>>\n disabled: Readonly<Ref<boolean>>\n}) => {\n const {labelTargetIds, track} = useLabelTargetRegistry()\n\n provide(formGroupKey, () => ({state, disabled, track}))\n\n // null unless exactly one distinct non-empty id is currently registered.\n const singleLabelTargetId = computed<string | null>(() => {\n let single: string | null = null\n for (const r of labelTargetIds.value) {\n const v = r.value\n if (!v) continue\n if (single !== null && single !== v) return null\n single = v\n }\n return single\n })\n\n return {singleLabelTargetId}\n}\n","<template>\n <component\n :is=\"props.tag\"\n :id=\"props.id\"\n :role=\"props.role\"\n :aria-live=\"props.ariaLive\"\n :aria-atomic=\"props.ariaLive ? true : undefined\"\n :class=\"computedClasses\"\n >\n <slot>\n {{ props.text }}\n </slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BFormInvalidFeedbackProps, BFormInvalidFeedbackSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BFormInvalidFeedbackProps>(), {\n ariaLive: undefined,\n forceShow: false,\n id: undefined,\n role: undefined,\n state: null,\n tag: 'div',\n text: undefined,\n tooltip: false,\n})\nconst props = useDefaults(_props, 'BFormInvalidFeedback')\ndefineSlots<BFormInvalidFeedbackSlots>()\n\nconst computedShow = computed(() => props.forceShow || props.state === false)\n\nconst computedClasses = computed(() => ({\n 'd-block': computedShow.value,\n 'invalid-feedback': !props.tooltip,\n 'invalid-tooltip': props.tooltip,\n}))\n</script>\n","<template>\n <component\n :is=\"props.tag\"\n :id=\"props.id\"\n :role=\"props.role\"\n :aria-live=\"props.ariaLive\"\n :aria-atomic=\"props.ariaLive ? true : undefined\"\n :class=\"computedClasses\"\n >\n <slot>\n {{ props.text }}\n </slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BFormInvalidFeedbackProps, BFormInvalidFeedbackSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BFormInvalidFeedbackProps>(), {\n ariaLive: undefined,\n forceShow: false,\n id: undefined,\n role: undefined,\n state: null,\n tag: 'div',\n text: undefined,\n tooltip: false,\n})\nconst props = useDefaults(_props, 'BFormInvalidFeedback')\ndefineSlots<BFormInvalidFeedbackSlots>()\n\nconst computedShow = computed(() => props.forceShow || props.state === false)\n\nconst computedClasses = computed(() => ({\n 'd-block': computedShow.value,\n 'invalid-feedback': !props.tooltip,\n 'invalid-tooltip': props.tooltip,\n}))\n</script>\n","<template>\n <component :is=\"props.tag\" class=\"row d-flex flex-wrap\">\n <slot />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BFormRowProps, BFormRowSlots} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\n\nconst _props = withDefaults(defineProps<BFormRowProps>(), {\n tag: 'div',\n})\nconst props = useDefaults(_props, 'BFormRow')\ndefineSlots<BFormRowSlots>()\n</script>\n","<template>\n <component :is=\"props.tag\" class=\"row d-flex flex-wrap\">\n <slot />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BFormRowProps, BFormRowSlots} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\n\nconst _props = withDefaults(defineProps<BFormRowProps>(), {\n tag: 'div',\n})\nconst props = useDefaults(_props, 'BFormRow')\ndefineSlots<BFormRowSlots>()\n</script>\n","<template>\n <component :is=\"props.tag\" :id=\"props.id\" :class=\"computedClasses\">\n <slot>\n {{ props.text }}\n </slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BFormTextProps, BFormTextSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BFormTextProps>(), {\n id: undefined,\n inline: false,\n tag: 'small',\n text: undefined,\n textVariant: 'body-secondary',\n})\nconst props = useDefaults(_props, 'BFormText')\ndefineSlots<BFormTextSlots>()\n\nconst colorClasses = useColorVariantClasses(props)\nconst computedClasses = computed(() => [\n colorClasses.value,\n {\n 'form-text': !props.inline,\n },\n])\n</script>\n","<template>\n <component :is=\"props.tag\" :id=\"props.id\" :class=\"computedClasses\">\n <slot>\n {{ props.text }}\n </slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BFormTextProps, BFormTextSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BFormTextProps>(), {\n id: undefined,\n inline: false,\n tag: 'small',\n text: undefined,\n textVariant: 'body-secondary',\n})\nconst props = useDefaults(_props, 'BFormText')\ndefineSlots<BFormTextSlots>()\n\nconst colorClasses = useColorVariantClasses(props)\nconst computedClasses = computed(() => [\n colorClasses.value,\n {\n 'form-text': !props.inline,\n },\n])\n</script>\n","<template>\n <component\n :is=\"props.tag\"\n :id=\"props.id\"\n :role=\"props.role\"\n :aria-live=\"props.ariaLive\"\n :aria-atomic=\"props.ariaLive ? true : undefined\"\n :class=\"computedClasses\"\n >\n <slot>\n {{ props.text }}\n </slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BFormValidFeedbackProps, BFormValidFeedbackSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BFormValidFeedbackProps>(), {\n ariaLive: undefined,\n forceShow: false,\n id: undefined,\n role: undefined,\n state: null,\n tag: 'div',\n text: undefined,\n tooltip: false,\n})\nconst props = useDefaults(_props, 'BFormValidFeedback')\ndefineSlots<BFormValidFeedbackSlots>()\n\nconst computedShow = computed(() => props.forceShow === true || props.state === true)\n\nconst computedClasses = computed(() => ({\n 'd-block': computedShow.value,\n 'valid-feedback': !props.tooltip,\n 'valid-tooltip': props.tooltip,\n}))\n</script>\n","<template>\n <component\n :is=\"props.tag\"\n :id=\"props.id\"\n :role=\"props.role\"\n :aria-live=\"props.ariaLive\"\n :aria-atomic=\"props.ariaLive ? true : undefined\"\n :class=\"computedClasses\"\n >\n <slot>\n {{ props.text }}\n </slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BFormValidFeedbackProps, BFormValidFeedbackSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BFormValidFeedbackProps>(), {\n ariaLive: undefined,\n forceShow: false,\n id: undefined,\n role: undefined,\n state: null,\n tag: 'div',\n text: undefined,\n tooltip: false,\n})\nconst props = useDefaults(_props, 'BFormValidFeedback')\ndefineSlots<BFormValidFeedbackSlots>()\n\nconst computedShow = computed(() => props.forceShow === true || props.state === true)\n\nconst computedClasses = computed(() => ({\n 'd-block': computedShow.value,\n 'valid-feedback': !props.tooltip,\n 'valid-tooltip': props.tooltip,\n}))\n</script>\n"],"mappings":"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"}
|
|
@@ -40,11 +40,11 @@ import { t as BDropdown_default } from "./BDropdown-CnxUzs42.js";
|
|
|
40
40
|
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-D4VSJJxu.js";
|
|
41
41
|
import { t as BForm_default } from "./BForm-BOoX6AAr.js";
|
|
42
42
|
import { t as BFormSelectOption_default } from "./BFormSelectOption-C8orMj24.js";
|
|
43
|
-
import { n as BFormDatalist_default, t as BFormFloatingLabel_default } from "./BForm-
|
|
44
|
-
import { i as BFormInvalidFeedback_default, n as BFormText_default, r as BFormRow_default, t as BFormValidFeedback_default } from "./BFormValidFeedback-
|
|
43
|
+
import { n as BFormDatalist_default, t as BFormFloatingLabel_default } from "./BForm-CcbrqF35.js";
|
|
44
|
+
import { i as BFormInvalidFeedback_default, n as BFormText_default, r as BFormRow_default, t as BFormValidFeedback_default } from "./BFormValidFeedback-BTNOXbQ6.js";
|
|
45
45
|
import { n as BFormCheckbox_default, t as BFormCheckboxGroup_default } from "./BFormCheckbox-BMhyR-J5.js";
|
|
46
46
|
import { t as BFormFile_default } from "./BFormFile-BVrDprWL.js";
|
|
47
|
-
import { t as BFormGroup_default } from "./BFormGroup-
|
|
47
|
+
import { t as BFormGroup_default } from "./BFormGroup-D3R7DxxF.js";
|
|
48
48
|
import { n as BFormRadio_default, t as BFormRadioGroup_default } from "./BFormRadio-DRViMh6V.js";
|
|
49
49
|
import { t as BFormRating_default } from "./BFormRating-AEiF8K8T.js";
|
|
50
50
|
import { n as BFormSelectOptionGroup_default, t as BFormSelect_default } from "./BFormSelect-DdjH8482.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { t as BForm_default } from "../../../BForm-BOoX6AAr.js";
|
|
2
|
-
import { n as BFormDatalist_default, t as BFormFloatingLabel_default } from "../../../BForm-
|
|
3
|
-
import { i as BFormInvalidFeedback_default, n as BFormText_default, r as BFormRow_default, t as BFormValidFeedback_default } from "../../../BFormValidFeedback-
|
|
2
|
+
import { n as BFormDatalist_default, t as BFormFloatingLabel_default } from "../../../BForm-CcbrqF35.js";
|
|
3
|
+
import { i as BFormInvalidFeedback_default, n as BFormText_default, r as BFormRow_default, t as BFormValidFeedback_default } from "../../../BFormValidFeedback-BTNOXbQ6.js";
|
|
4
4
|
export { BForm_default as BForm, BFormDatalist_default as BFormDatalist, BFormFloatingLabel_default as BFormFloatingLabel, BFormInvalidFeedback_default as BFormInvalidFeedback, BFormRow_default as BFormRow, BFormText_default as BFormText, BFormValidFeedback_default as BFormValidFeedback };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as BFormGroup_default } from "../../../BFormGroup-
|
|
1
|
+
import { t as BFormGroup_default } from "../../../BFormGroup-D3R7DxxF.js";
|
|
2
2
|
export { BFormGroup_default as BFormGroup };
|
|
@@ -34,11 +34,11 @@ import { t as BDropdown_default } from "../../BDropdown-CnxUzs42.js";
|
|
|
34
34
|
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-D4VSJJxu.js";
|
|
35
35
|
import { t as BForm_default } from "../../BForm-BOoX6AAr.js";
|
|
36
36
|
import { t as BFormSelectOption_default } from "../../BFormSelectOption-C8orMj24.js";
|
|
37
|
-
import { n as BFormDatalist_default, t as BFormFloatingLabel_default } from "../../BForm-
|
|
38
|
-
import { i as BFormInvalidFeedback_default, n as BFormText_default, r as BFormRow_default, t as BFormValidFeedback_default } from "../../BFormValidFeedback-
|
|
37
|
+
import { n as BFormDatalist_default, t as BFormFloatingLabel_default } from "../../BForm-CcbrqF35.js";
|
|
38
|
+
import { i as BFormInvalidFeedback_default, n as BFormText_default, r as BFormRow_default, t as BFormValidFeedback_default } from "../../BFormValidFeedback-BTNOXbQ6.js";
|
|
39
39
|
import { n as BFormCheckbox_default, t as BFormCheckboxGroup_default } from "../../BFormCheckbox-BMhyR-J5.js";
|
|
40
40
|
import { t as BFormFile_default } from "../../BFormFile-BVrDprWL.js";
|
|
41
|
-
import { t as BFormGroup_default } from "../../BFormGroup-
|
|
41
|
+
import { t as BFormGroup_default } from "../../BFormGroup-D3R7DxxF.js";
|
|
42
42
|
import { n as BFormRadio_default, t as BFormRadioGroup_default } from "../../BFormRadio-DRViMh6V.js";
|
|
43
43
|
import { t as BFormRating_default } from "../../BFormRating-AEiF8K8T.js";
|
|
44
44
|
import { n as BFormSelectOptionGroup_default, t as BFormSelect_default } from "../../BFormSelect-DdjH8482.js";
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "bootstrap-vue-next",
|
|
3
3
|
"displayName": "BootstrapVueNext",
|
|
4
4
|
"description": "Seamless integration of Vue 3, Bootstrap 5, and TypeScript for modern, type-safe UI development",
|
|
5
|
-
"version": "0.46.
|
|
5
|
+
"version": "0.46.1",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"main": "./dist/bootstrap-vue-next.mjs",
|