bootstrap-vue-next 0.44.4 → 0.44.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/{BAutocomplete-Depalqe-.mjs → BAutocomplete-QBIaWPY1.mjs} +2 -2
  2. package/dist/{BAutocomplete-Depalqe-.mjs.map → BAutocomplete-QBIaWPY1.mjs.map} +1 -1
  3. package/dist/{BAutocomplete-C7Odx4At.js → BAutocomplete-jAlZC6_t.js} +2 -2
  4. package/dist/{BAutocomplete-C7Odx4At.js.map → BAutocomplete-jAlZC6_t.js.map} +1 -1
  5. package/dist/{BForm-IL7Rf_27.mjs → BForm-C8I6v7bU.mjs} +2 -2
  6. package/dist/{BForm-IL7Rf_27.mjs.map → BForm-C8I6v7bU.mjs.map} +1 -1
  7. package/dist/{BForm-BqHUnHpU.js → BForm-_h0kYDl7.js} +2 -2
  8. package/dist/{BForm-BqHUnHpU.js.map → BForm-_h0kYDl7.js.map} +1 -1
  9. package/dist/{BOtpInput-CSCoKHP9.js → BFormOtp-C1YJvwN8.js} +11 -11
  10. package/dist/BFormOtp-C1YJvwN8.js.map +1 -0
  11. package/dist/{BOtpInput-Drfkt3x3.mjs → BFormOtp-DYjsPhQN.mjs} +10 -10
  12. package/dist/BFormOtp-DYjsPhQN.mjs.map +1 -0
  13. package/dist/{BFormSelect-Dg6OwMl-.mjs → BFormSelect-Bb8yE8vz.mjs} +2 -2
  14. package/dist/{BFormSelect-Dg6OwMl-.mjs.map → BFormSelect-Bb8yE8vz.mjs.map} +1 -1
  15. package/dist/{BFormSelect-DqSojuY_.js → BFormSelect-DIKVsG--.js} +2 -2
  16. package/dist/{BFormSelect-DqSojuY_.js.map → BFormSelect-DIKVsG--.js.map} +1 -1
  17. package/dist/{BootstrapVueOptions-BU3rzYio.mjs → BootstrapVueOptions-D3flIVqU.mjs} +2 -2
  18. package/dist/BootstrapVueOptions-D3flIVqU.mjs.map +1 -0
  19. package/dist/{BootstrapVueOptions-BC3f7hMU.js → BootstrapVueOptions-DbXZtoXX.js} +2 -2
  20. package/dist/BootstrapVueOptions-DbXZtoXX.js.map +1 -0
  21. package/dist/bootstrap-vue-next.css +6 -6
  22. package/dist/bootstrap-vue-next.mjs +6 -6
  23. package/dist/bootstrap-vue-next.umd.js +6 -6
  24. package/dist/components/{BOtpInput/BOtpInput.vue.d.mts → BFormOtp/BFormOtp.vue.d.mts} +3 -3
  25. package/dist/components/{BOtpInput/BOtpInput.vue.d.ts → BFormOtp/BFormOtp.vue.d.ts} +3 -3
  26. package/dist/components/BFormOtp/index.d.mts +1 -0
  27. package/dist/components/BFormOtp/index.d.ts +1 -0
  28. package/dist/components/index.d.mts +1 -1
  29. package/dist/components/index.d.ts +1 -1
  30. package/dist/src/components/BAutocomplete/index.mjs +1 -1
  31. package/dist/src/components/BAutocomplete/index.umd.js +1 -1
  32. package/dist/src/components/BForm/index.mjs +1 -1
  33. package/dist/src/components/BForm/index.umd.js +1 -1
  34. package/dist/src/components/BFormOtp/index.mjs +2 -0
  35. package/dist/src/components/BFormOtp/index.umd.js +3 -0
  36. package/dist/src/components/BFormSelect/index.mjs +1 -1
  37. package/dist/src/components/BFormSelect/index.umd.js +1 -1
  38. package/dist/src/components/index.mjs +6 -6
  39. package/dist/src/components/index.mjs.map +1 -1
  40. package/dist/src/components/index.umd.js +6 -6
  41. package/dist/src/components/index.umd.js.map +1 -1
  42. package/dist/src/resolvers/index.mjs +1 -1
  43. package/dist/src/resolvers/index.umd.js +1 -1
  44. package/dist/src/types/index.mjs +1 -1
  45. package/dist/src/types/index.umd.js +1 -1
  46. package/dist/types/BootstrapVueOptions.d.mts +3 -3
  47. package/dist/types/BootstrapVueOptions.d.ts +3 -3
  48. package/dist/types/ComponentProps.d.mts +1 -1
  49. package/dist/types/ComponentProps.d.ts +1 -1
  50. package/dist/{useFormSelect-nQbGZSi8.js → useFormSelect-CiIMUolC.js} +3 -3
  51. package/dist/useFormSelect-CiIMUolC.js.map +1 -0
  52. package/dist/{useFormSelect-CANw3ZJG.mjs → useFormSelect-D3gVO4jJ.mjs} +3 -3
  53. package/dist/useFormSelect-D3gVO4jJ.mjs.map +1 -0
  54. package/package.json +1 -1
  55. package/src/components/{BOtpInput/_otp-input.scss → BFormOtp/_form-otp.scss} +4 -4
  56. package/src/styles/styles.scss +1 -1
  57. package/dist/BOtpInput-CSCoKHP9.js.map +0 -1
  58. package/dist/BOtpInput-Drfkt3x3.mjs.map +0 -1
  59. package/dist/BootstrapVueOptions-BC3f7hMU.js.map +0 -1
  60. package/dist/BootstrapVueOptions-BU3rzYio.mjs.map +0 -1
  61. package/dist/components/BOtpInput/index.d.mts +0 -1
  62. package/dist/components/BOtpInput/index.d.ts +0 -1
  63. package/dist/src/components/BOtpInput/index.mjs +0 -2
  64. package/dist/src/components/BOtpInput/index.umd.js +0 -3
  65. package/dist/useFormSelect-CANw3ZJG.mjs.map +0 -1
  66. package/dist/useFormSelect-nQbGZSi8.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { t as useDefaults } from "./useDefaults-BKgBaqOV.mjs";
2
2
  import { t as useId$1 } from "./useId-BKZFSYm8.mjs";
3
- import { t as useFormSelect } from "./useFormSelect-CANw3ZJG.mjs";
3
+ import { t as useFormSelect } from "./useFormSelect-D3gVO4jJ.mjs";
4
4
  import "./BForm-Oh6PpdcD.mjs";
5
5
  import { t as BFormSelectOption_default } from "./BFormSelectOption-O8cyyv3i.mjs";
6
6
  import "./BFormValidFeedback-_Dgzm0Ag.mjs";
@@ -108,4 +108,4 @@ var BFormFloatingLabel_default = /* @__PURE__ */ defineComponent({
108
108
  //#endregion
109
109
  export { BFormDatalist_default as n, BFormFloatingLabel_default as t };
110
110
 
111
- //# sourceMappingURL=BForm-IL7Rf_27.mjs.map
111
+ //# sourceMappingURL=BForm-C8I6v7bU.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"BForm-IL7Rf_27.mjs","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/ComponentProps'\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/ComponentProps'\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 type {BFormDatalistProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport BFormDatalistBase from './BFormDatalistBase.vue'\nimport type {SelectOption} from '../../types/SelectTypes'\nimport type {BFormDatalistSlots} 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 type {BFormDatalistProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport BFormDatalistBase from './BFormDatalistBase.vue'\nimport type {SelectOption} from '../../types/SelectTypes'\nimport type {BFormDatalistSlots} 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 {BFormFloatingLabelSlots} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BFormFloatingLabelProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<BFormFloatingLabelProps>(), {\n label: undefined,\n labelFor: undefined,\n text: undefined,\n})\nconst props = useDefaults(_props, 'BFormFloatingLabel')\ndefineSlots<BFormFloatingLabelSlots>()\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 {BFormFloatingLabelSlots} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BFormFloatingLabelProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<BFormFloatingLabelProps>(), {\n label: undefined,\n labelFor: undefined,\n text: undefined,\n})\nconst props = useDefaults(_props, 'BFormFloatingLabel')\ndefineSlots<BFormFloatingLabelSlots>()\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;EAqCA,MAAM,QAAQ,YARC,SAQmB,gBAAe;EAEjD,MAAM,aAAa,cAAY,MAAM,IAAI,WAAU;EAEnD,MAAM,EAAC,mBAAmB,cAAa,oBAC/B,MAAM,SACZ,gBAAgB;GAAC,GAAG;GAAO,cAAc;GAAW,YAAY;GAAQ,EAAC,CAC3E;EAEA,MAAM,wBAAwB,eAE5B,kBAAkB,MAAM,QAAQ,QAAQ,CAAC,UAAU,IAAI,CAAA,CACzD;;uBAhDE,mBAYW,YAAA,EAZA,IAAI,MAAA,WAAU,EAAA,EAAA;IACvB,WAAqB,KAAA,QAAA,QAAA;sBACrB,mBAQoB,UAAA,MAAA,WAPQ,sBAAA,QAAlB,QAAQ,UAAK;yBADvB,YAQoB,2BARpB,WAQoB,EANjB,KAAK,OAAK,EAAA,EAAA,SAAA,MAAA,EACH,OAAM,EAAA;6BAIP,CAFP,WAEO,KAAA,QAAA,UAFP,WAEO,EAAA,SAAA,MAAA,EAFqB,OAAM,QAE3B,CAAA,gBAAA,gBAAA,UADQ,SAAS,OAAO,OAAI,GAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;;;;IAGrC,WAAQ,KAAA,QAAA,UAAA;;;;;;;;;;;;;;;;;;;;;EEwBZ,MAAM,QAAQ;EAcd,MAAM,oBAAoB,eACxB,MAAM,QAAQ,KAAK,OAAO;AACxB,OAAI,OAAO,OAAO,SAChB,QAAO;AAET,OAAI,OAAO,OAAO,SAChB,QAAO,OAAO,GAAE;AAElB,OAAI,OAAO,OAAO,UAChB,QAAO,OAAO,GAAE;AAElB,UAAO;IACL,OAAQ,GAA+B,MAAM;IAC7C,MACI,GAA+B,MAAM,cAA+C;IACxF,UACI,GAA+B,MAAM,kBACvC;IACH;IACF,CACH;EAGA,MAAM,iBAAiB,gBAAgB;GACrC,UAAU,MAAM;GAChB,IAAI,MAAM;GACX,EAAC;;uBA3EA,YAWoB,2BAXpB,WAA2B,eAWP,OAXqB,EAAG,SAAS,kBAAA,OAAA,CAAA,EAAA;IAExC,OAAK,cACO,CAArB,WAAqB,KAAA,QAAA,QAAA,CAAA,CAAA;IAGZ,QAAM,SAAE,cAAS,CAC1B,WAAgD,KAAA,QAAA,UAAA,eAAA,mBAApB,UAAS,CAAA,CAAA,CAAA,CAAA;2BAG/B,CAAR,WAAQ,KAAA,QAAA,UAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;EEUZ,MAAM,QAAQ,YALC,SAKmB,qBAAoB;;uBApBpD,mBAOM,OAPN,YAOM,CANJ,WAAQ,KAAA,QAAA,UAAA,EACR,mBAIQ,SAAA,EAJA,KAAK,MAAA,MAAK,CAAC,UAAA,EAAA,CACjB,WAEO,KAAA,QAAA,SAAA,EAAA,QAAA,CAAA,gBAAA,gBADF,MAAA,MAAK,CAAC,MAAK,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,GAAA,WAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"BForm-C8I6v7bU.mjs","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/ComponentProps'\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/ComponentProps'\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 type {BFormDatalistProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport BFormDatalistBase from './BFormDatalistBase.vue'\nimport type {SelectOption} from '../../types/SelectTypes'\nimport type {BFormDatalistSlots} 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 type {BFormDatalistProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport BFormDatalistBase from './BFormDatalistBase.vue'\nimport type {SelectOption} from '../../types/SelectTypes'\nimport type {BFormDatalistSlots} 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 {BFormFloatingLabelSlots} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BFormFloatingLabelProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<BFormFloatingLabelProps>(), {\n label: undefined,\n labelFor: undefined,\n text: undefined,\n})\nconst props = useDefaults(_props, 'BFormFloatingLabel')\ndefineSlots<BFormFloatingLabelSlots>()\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 {BFormFloatingLabelSlots} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BFormFloatingLabelProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<BFormFloatingLabelProps>(), {\n label: undefined,\n labelFor: undefined,\n text: undefined,\n})\nconst props = useDefaults(_props, 'BFormFloatingLabel')\ndefineSlots<BFormFloatingLabelSlots>()\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;EAqCA,MAAM,QAAQ,YARC,SAQmB,gBAAe;EAEjD,MAAM,aAAa,cAAY,MAAM,IAAI,WAAU;EAEnD,MAAM,EAAC,mBAAmB,cAAa,oBAC/B,MAAM,SACZ,gBAAgB;GAAC,GAAG;GAAO,cAAc;GAAW,YAAY;GAAQ,EAAC,CAC3E;EAEA,MAAM,wBAAwB,eAE5B,kBAAkB,MAAM,QAAQ,QAAQ,CAAC,UAAU,IAAI,CAAA,CACzD;;uBAhDE,mBAYW,YAAA,EAZA,IAAI,MAAA,WAAU,EAAA,EAAA;IACvB,WAAqB,KAAA,QAAA,QAAA;sBACrB,mBAQoB,UAAA,MAAA,WAPQ,sBAAA,QAAlB,QAAQ,UAAK;yBADvB,YAQoB,2BARpB,WAQoB,EANjB,KAAK,OAAK,EAAA,EAAA,SAAA,MAAA,EACH,OAAM,EAAA;6BAIP,CAFP,WAEO,KAAA,QAAA,UAFP,WAEO,EAAA,SAAA,MAAA,EAFqB,OAAM,QAE3B,CAAA,gBAAA,gBAAA,UADQ,SAAS,OAAO,OAAI,GAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;;;;IAGrC,WAAQ,KAAA,QAAA,UAAA;;;;;;;;;;;;;;;;;;;;;EEwBZ,MAAM,QAAQ;EAcd,MAAM,oBAAoB,eACxB,MAAM,QAAQ,KAAK,OAAO;AACxB,OAAI,OAAO,OAAO,SAChB,QAAO;AAET,OAAI,OAAO,OAAO,SAChB,QAAO,OAAO,GAAE;AAElB,OAAI,OAAO,OAAO,UAChB,QAAO,OAAO,GAAE;AAElB,UAAO;IACL,OAAQ,GAA+B,MAAM;IAC7C,MACI,GAA+B,MAAM,cAA+C;IACxF,UACI,GAA+B,MAAM,kBACvC;IACH;IACF,CACH;EAGA,MAAM,iBAAiB,gBAAgB;GACrC,UAAU,MAAM;GAChB,IAAI,MAAM;GACX,EAAC;;uBA3EA,YAWoB,2BAXpB,WAA2B,eAWP,OAXqB,EAAG,SAAS,kBAAA,OAAA,CAAA,EAAA;IAExC,OAAK,cACO,CAArB,WAAqB,KAAA,QAAA,QAAA,CAAA,CAAA;IAGZ,QAAM,SAAE,cAAS,CAC1B,WAAgD,KAAA,QAAA,UAAA,eAAA,mBAApB,UAAS,CAAA,CAAA,CAAA,CAAA;2BAG/B,CAAR,WAAQ,KAAA,QAAA,UAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;EEUZ,MAAM,QAAQ,YALC,SAKmB,qBAAoB;;uBApBpD,mBAOM,OAPN,YAOM,CANJ,WAAQ,KAAA,QAAA,UAAA,EACR,mBAIQ,SAAA,EAJA,KAAK,MAAA,MAAK,CAAC,UAAA,EAAA,CACjB,WAEO,KAAA,QAAA,SAAA,EAAA,QAAA,CAAA,gBAAA,gBADF,MAAA,MAAK,CAAC,MAAK,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,GAAA,WAAA,CAAA,CAAA"}
@@ -1,7 +1,7 @@
1
1
  require("./chunk-CoQrYLCe.js");
2
2
  const require_useDefaults = require("./useDefaults-DsLf4iRY.js");
3
3
  const require_useId = require("./useId-DHrBgM7P.js");
4
- const require_useFormSelect = require("./useFormSelect-nQbGZSi8.js");
4
+ const require_useFormSelect = require("./useFormSelect-CiIMUolC.js");
5
5
  require("./BForm-Bp7SFxiK.js");
6
6
  const require_BFormSelectOption = require("./BFormSelectOption-BY4P8HOf.js");
7
7
  require("./BFormValidFeedback-DvTgwqSe.js");
@@ -120,4 +120,4 @@ Object.defineProperty(exports, "BFormFloatingLabel_default", {
120
120
  }
121
121
  });
122
122
 
123
- //# sourceMappingURL=BForm-BqHUnHpU.js.map
123
+ //# sourceMappingURL=BForm-_h0kYDl7.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BForm-BqHUnHpU.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/ComponentProps'\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/ComponentProps'\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 type {BFormDatalistProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport BFormDatalistBase from './BFormDatalistBase.vue'\nimport type {SelectOption} from '../../types/SelectTypes'\nimport type {BFormDatalistSlots} 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 type {BFormDatalistProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport BFormDatalistBase from './BFormDatalistBase.vue'\nimport type {SelectOption} from '../../types/SelectTypes'\nimport type {BFormDatalistSlots} 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 {BFormFloatingLabelSlots} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BFormFloatingLabelProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<BFormFloatingLabelProps>(), {\n label: undefined,\n labelFor: undefined,\n text: undefined,\n})\nconst props = useDefaults(_props, 'BFormFloatingLabel')\ndefineSlots<BFormFloatingLabelSlots>()\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 {BFormFloatingLabelSlots} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BFormFloatingLabelProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<BFormFloatingLabelProps>(), {\n label: undefined,\n labelFor: undefined,\n text: undefined,\n})\nconst props = useDefaults(_props, 'BFormFloatingLabel')\ndefineSlots<BFormFloatingLabelSlots>()\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;EAqCA,MAAM,QAAQ,oBAAA,YARC,SAQmB,gBAAe;EAEjD,MAAM,aAAa,cAAA,YAAY,MAAM,IAAI,WAAU;EAEnD,MAAM,EAAC,mBAAmB,cAAa,sBAAA,oBAC/B,MAAM,UAAA,GAAA,IAAA,iBACI;GAAC,GAAG;GAAO,cAAc;GAAW,YAAY;GAAQ,EAAC,CAC3E;EAEA,MAAM,yBAAA,GAAA,IAAA,gBAEJ,kBAAkB,MAAM,QAAQ,QAAQ,CAAC,UAAU,IAAI,CAAA,CACzD;;4DApCa,YAAA,EAZA,KAAA,GAAA,IAAA,OAAI,WAAU,EAAA,EAAA;wBACF,KAAA,QAAA,QAAA;2DASD,IAAA,UAAA,OAAA,GAAA,IAAA,YAPQ,sBAAA,QAAlB,QAAQ,UAAK;uDAOH,0BAAA,4BAAA,GAAA,IAAA,YAAA,EANjB,KAAK,OAAK,EAAA,EAAA,SAAA,MAAA,EACH,OAAM,EAAA;sCAIP,EAAA,GAAA,IAAA,YAAA,KAAA,QAAA,WAAA,GAAA,IAAA,YAAA,EAAA,SAAA,MAAA,EAFqB,OAAM,QAE3B,EAAA,GAAA,IAAA,kBAAA,GAAA,IAAA,iBAAA,UADQ,SAAS,OAAO,OAAI,GAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;;;;wBAG7B,KAAA,QAAA,UAAA;;;;;;;;;;;;;;;;;;;;;EEwBZ,MAAM,QAAQ;EAcd,MAAM,qBAAA,GAAA,IAAA,gBACJ,MAAM,QAAQ,KAAK,OAAO;AACxB,OAAI,OAAO,OAAO,SAChB,QAAO;AAET,OAAI,OAAO,OAAO,SAChB,QAAO,OAAO,GAAE;AAElB,OAAI,OAAO,OAAO,UAChB,QAAO,OAAO,GAAE;AAElB,UAAO;IACL,OAAQ,GAA+B,MAAM;IAC7C,MACI,GAA+B,MAAM,cAA+C;IACxF,UACI,GAA+B,MAAM,kBACvC;IACH;IACF,CACH;EAGA,MAAM,kBAAA,GAAA,IAAA,iBAAiC;GACrC,UAAU,MAAM;GAChB,IAAI,MAAM;GACX,EAAC;;qDAhEoB,4BAAA,GAAA,IAAA,YAXO,eAWP,OAXqB,EAAG,SAAS,kBAAA,OAAA,CAAA,EAAA;IAExC,QAAA,GAAA,IAAA,eACY,EAAA,GAAA,IAAA,YAAA,KAAA,QAAA,QAAA,CAAA,CAAA;IAGZ,SAAA,GAAA,IAAA,UAAQ,cAAS,EAAA,GAAA,IAAA,YACsB,KAAA,QAAA,WAAA,GAAA,IAAA,iBAAA,GAAA,IAAA,oBAApB,UAAS,CAAA,CAAA,CAAA,CAAA;oCAG/B,EAAA,GAAA,IAAA,YAAA,KAAA,QAAA,UAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;EEUZ,MAAM,QAAQ,oBAAA,YALC,SAKmB,qBAAoB;;4DAb9C,OAPN,YAOM,EAAA,GAAA,IAAA,YANI,KAAA,QAAA,UAAA,GAAA,GAAA,IAAA,oBAKA,SAAA,EAJA,MAAA,GAAA,IAAA,OAAK,MAAK,CAAC,UAAA,EAAA,EAAA,GAAA,IAAA,YAGV,KAAA,QAAA,SAAA,EAAA,QAAA,EAAA,GAAA,IAAA,kBAAA,GAAA,IAAA,kBAAA,GAAA,IAAA,OADF,MAAK,CAAC,MAAK,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,GAAA,WAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"BForm-_h0kYDl7.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/ComponentProps'\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/ComponentProps'\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 type {BFormDatalistProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport BFormDatalistBase from './BFormDatalistBase.vue'\nimport type {SelectOption} from '../../types/SelectTypes'\nimport type {BFormDatalistSlots} 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 type {BFormDatalistProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport BFormDatalistBase from './BFormDatalistBase.vue'\nimport type {SelectOption} from '../../types/SelectTypes'\nimport type {BFormDatalistSlots} 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 {BFormFloatingLabelSlots} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BFormFloatingLabelProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<BFormFloatingLabelProps>(), {\n label: undefined,\n labelFor: undefined,\n text: undefined,\n})\nconst props = useDefaults(_props, 'BFormFloatingLabel')\ndefineSlots<BFormFloatingLabelSlots>()\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 {BFormFloatingLabelSlots} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BFormFloatingLabelProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<BFormFloatingLabelProps>(), {\n label: undefined,\n labelFor: undefined,\n text: undefined,\n})\nconst props = useDefaults(_props, 'BFormFloatingLabel')\ndefineSlots<BFormFloatingLabelSlots>()\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;EAqCA,MAAM,QAAQ,oBAAA,YARC,SAQmB,gBAAe;EAEjD,MAAM,aAAa,cAAA,YAAY,MAAM,IAAI,WAAU;EAEnD,MAAM,EAAC,mBAAmB,cAAa,sBAAA,oBAC/B,MAAM,UAAA,GAAA,IAAA,iBACI;GAAC,GAAG;GAAO,cAAc;GAAW,YAAY;GAAQ,EAAC,CAC3E;EAEA,MAAM,yBAAA,GAAA,IAAA,gBAEJ,kBAAkB,MAAM,QAAQ,QAAQ,CAAC,UAAU,IAAI,CAAA,CACzD;;4DApCa,YAAA,EAZA,KAAA,GAAA,IAAA,OAAI,WAAU,EAAA,EAAA;wBACF,KAAA,QAAA,QAAA;2DASD,IAAA,UAAA,OAAA,GAAA,IAAA,YAPQ,sBAAA,QAAlB,QAAQ,UAAK;uDAOH,0BAAA,4BAAA,GAAA,IAAA,YAAA,EANjB,KAAK,OAAK,EAAA,EAAA,SAAA,MAAA,EACH,OAAM,EAAA;sCAIP,EAAA,GAAA,IAAA,YAAA,KAAA,QAAA,WAAA,GAAA,IAAA,YAAA,EAAA,SAAA,MAAA,EAFqB,OAAM,QAE3B,EAAA,GAAA,IAAA,kBAAA,GAAA,IAAA,iBAAA,UADQ,SAAS,OAAO,OAAI,GAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;;;;wBAG7B,KAAA,QAAA,UAAA;;;;;;;;;;;;;;;;;;;;;EEwBZ,MAAM,QAAQ;EAcd,MAAM,qBAAA,GAAA,IAAA,gBACJ,MAAM,QAAQ,KAAK,OAAO;AACxB,OAAI,OAAO,OAAO,SAChB,QAAO;AAET,OAAI,OAAO,OAAO,SAChB,QAAO,OAAO,GAAE;AAElB,OAAI,OAAO,OAAO,UAChB,QAAO,OAAO,GAAE;AAElB,UAAO;IACL,OAAQ,GAA+B,MAAM;IAC7C,MACI,GAA+B,MAAM,cAA+C;IACxF,UACI,GAA+B,MAAM,kBACvC;IACH;IACF,CACH;EAGA,MAAM,kBAAA,GAAA,IAAA,iBAAiC;GACrC,UAAU,MAAM;GAChB,IAAI,MAAM;GACX,EAAC;;qDAhEoB,4BAAA,GAAA,IAAA,YAXO,eAWP,OAXqB,EAAG,SAAS,kBAAA,OAAA,CAAA,EAAA;IAExC,QAAA,GAAA,IAAA,eACY,EAAA,GAAA,IAAA,YAAA,KAAA,QAAA,QAAA,CAAA,CAAA;IAGZ,SAAA,GAAA,IAAA,UAAQ,cAAS,EAAA,GAAA,IAAA,YACsB,KAAA,QAAA,WAAA,GAAA,IAAA,iBAAA,GAAA,IAAA,oBAApB,UAAS,CAAA,CAAA,CAAA,CAAA;oCAG/B,EAAA,GAAA,IAAA,YAAA,KAAA,QAAA,UAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;EEUZ,MAAM,QAAQ,oBAAA,YALC,SAKmB,qBAAoB;;4DAb9C,OAPN,YAOM,EAAA,GAAA,IAAA,YANI,KAAA,QAAA,UAAA,GAAA,GAAA,IAAA,oBAKA,SAAA,EAJA,MAAA,GAAA,IAAA,OAAK,MAAK,CAAC,UAAA,EAAA,EAAA,GAAA,IAAA,YAGV,KAAA,QAAA,SAAA,EAAA,QAAA,EAAA,GAAA,IAAA,kBAAA,GAAA,IAAA,kBAAA,GAAA,IAAA,OADF,MAAK,CAAC,MAAK,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,GAAA,WAAA,CAAA,CAAA"}
@@ -391,12 +391,12 @@ var PinInputInput_default = /* @__PURE__ */ (0, vue.defineComponent)({
391
391
  }
392
392
  });
393
393
  //#endregion
394
- //#region src/components/BOtpInput/BOtpInput.vue?vue&type=script&setup=true&lang.ts
394
+ //#region src/components/BFormOtp/BFormOtp.vue?vue&type=script&setup=true&lang.ts
395
395
  var lengthDefault = 6;
396
396
  //#endregion
397
- //#region src/components/BOtpInput/BOtpInput.vue
398
- var BOtpInput_default = /* @__PURE__ */ (0, vue.defineComponent)({
399
- __name: "BOtpInput",
397
+ //#region src/components/BFormOtp/BFormOtp.vue
398
+ var BFormOtp_default = /* @__PURE__ */ (0, vue.defineComponent)({
399
+ __name: "BFormOtp",
400
400
  props: /* @__PURE__ */ (0, vue.mergeModels)({
401
401
  ariaInvalid: {
402
402
  type: [Boolean, String],
@@ -450,7 +450,7 @@ var BOtpInput_default = /* @__PURE__ */ (0, vue.defineComponent)({
450
450
  }),
451
451
  emits: /* @__PURE__ */ (0, vue.mergeModels)(["complete"], ["update:modelValue"]),
452
452
  setup(__props, { emit: __emit }) {
453
- const props = require_useDefaults.useDefaults(__props, "BOtpInput");
453
+ const props = require_useDefaults.useDefaults(__props, "BFormOtp");
454
454
  const emit = __emit;
455
455
  const modelValue = (0, vue.useModel)(__props, "modelValue");
456
456
  const computedId = require_useId.useId(() => props.id);
@@ -460,11 +460,11 @@ var BOtpInput_default = /* @__PURE__ */ (0, vue.defineComponent)({
460
460
  });
461
461
  const computedLength = (0, vue.computed)(() => lengthNumber.value > 0 ? lengthNumber.value : lengthDefault);
462
462
  const rootClasses = (0, vue.computed)(() => [
463
- "b-otp-input",
463
+ "b-form-otp",
464
464
  "d-flex",
465
465
  "gap-2",
466
466
  "align-items-center",
467
- { [`b-otp-input-${props.size}`]: !!props.size }
467
+ { [`b-form-otp-${props.size}`]: !!props.size }
468
468
  ]);
469
469
  return (_ctx, _cache) => {
470
470
  return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(PinInputRoot_default), {
@@ -490,7 +490,7 @@ var BOtpInput_default = /* @__PURE__ */ (0, vue.defineComponent)({
490
490
  "as-child": ""
491
491
  }, {
492
492
  default: (0, vue.withCtx)(() => [(0, vue.createVNode)(require_BFormInput.BFormInput_default, {
493
- class: "b-otp-input-field",
493
+ class: "b-form-otp-field",
494
494
  "aria-label": `${(0, vue.unref)(props).ariaLabel || "Pin"} ${i + 1} of ${computedLength.value}`,
495
495
  "aria-invalid": (0, vue.unref)(props).ariaInvalid,
496
496
  autofocus: (0, vue.unref)(props).autofocus && i === 0,
@@ -532,11 +532,11 @@ var BOtpInput_default = /* @__PURE__ */ (0, vue.defineComponent)({
532
532
  }
533
533
  });
534
534
  //#endregion
535
- Object.defineProperty(exports, "BOtpInput_default", {
535
+ Object.defineProperty(exports, "BFormOtp_default", {
536
536
  enumerable: true,
537
537
  get: function() {
538
- return BOtpInput_default;
538
+ return BFormOtp_default;
539
539
  }
540
540
  });
541
541
 
542
- //# sourceMappingURL=BOtpInput-CSCoKHP9.js.map
542
+ //# sourceMappingURL=BFormOtp-C1YJvwN8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BFormOtp-C1YJvwN8.js","names":["createContext","useForwardExpose","useDirection","useVModel","Primitive","VisuallyHiddenInput_default","usePrimitiveElement","getActiveElement","Primitive"],"sources":["../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/shared/useArrowNavigation.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/PinInput/PinInputRoot.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/PinInput/PinInputInput.js","../src/components/BFormOtp/BFormOtp.vue","../src/components/BFormOtp/BFormOtp.vue"],"sourcesContent":["//#region src/shared/useArrowNavigation.ts\nconst ignoredElement = [\"INPUT\", \"TEXTAREA\"];\n/**\n* Allow arrow navigation for every html element with data-reka-collection-item tag\n*\n* @param e Keyboard event\n* @param currentElement Event initiator element or any element that wants to handle the navigation\n* @param parentElement Parent element where contains all the collection items, this will collect every item to be used when nav\n* @param options further options\n* @returns the navigated html element or null if none\n*/\nfunction useArrowNavigation(e, currentElement, parentElement, options = {}) {\n\tif (!currentElement || options.enableIgnoredElement && ignoredElement.includes(currentElement.nodeName)) return null;\n\tconst { arrowKeyOptions = \"both\", attributeName = \"[data-reka-collection-item]\", itemsArray = [], loop = true, dir = \"ltr\", preventScroll = true, focus = false } = options;\n\tconst [right, left, up, down, home, end] = [\n\t\te.key === \"ArrowRight\",\n\t\te.key === \"ArrowLeft\",\n\t\te.key === \"ArrowUp\",\n\t\te.key === \"ArrowDown\",\n\t\te.key === \"Home\",\n\t\te.key === \"End\"\n\t];\n\tconst goingVertical = up || down;\n\tconst goingHorizontal = right || left;\n\tif (!home && !end && (!goingVertical && !goingHorizontal || arrowKeyOptions === \"vertical\" && goingHorizontal || arrowKeyOptions === \"horizontal\" && goingVertical)) return null;\n\tconst allCollectionItems = parentElement ? Array.from(parentElement.querySelectorAll(attributeName)) : itemsArray;\n\tif (!allCollectionItems.length) return null;\n\tif (preventScroll) e.preventDefault();\n\tlet item = null;\n\tif (goingHorizontal || goingVertical) {\n\t\tconst goForward = goingVertical ? down : dir === \"ltr\" ? right : left;\n\t\titem = findNextFocusableElement(allCollectionItems, currentElement, {\n\t\t\tgoForward,\n\t\t\tloop\n\t\t});\n\t} else if (home) item = allCollectionItems.at(0) || null;\n\telse if (end) item = allCollectionItems.at(-1) || null;\n\tif (focus) item?.focus();\n\treturn item;\n}\n/**\n* Recursive function to find the next focusable element to avoid disabled elements\n*\n* @param elements Elements to navigate\n* @param currentElement Current active element\n* @param options\n* @returns next focusable element\n*/\nfunction findNextFocusableElement(elements, currentElement, options, iterations = !elements.includes(currentElement) ? elements.length + 1 : elements.length) {\n\tif (--iterations === 0) return null;\n\tconst index = elements.indexOf(currentElement);\n\tlet newIndex;\n\tif (index === -1) newIndex = options.goForward ? 0 : elements.length - 1;\n\telse newIndex = options.goForward ? index + 1 : index - 1;\n\tif (!options.loop && (newIndex < 0 || newIndex >= elements.length)) return null;\n\tconst adjustedNewIndex = (newIndex + elements.length) % elements.length;\n\tconst candidate = elements[adjustedNewIndex];\n\tif (!candidate) return null;\n\tconst isDisabled = candidate.hasAttribute(\"disabled\") && candidate.getAttribute(\"disabled\") !== \"false\";\n\tif (isDisabled) return findNextFocusableElement(elements, candidate, options, iterations);\n\treturn candidate;\n}\n\n//#endregion\nexport { useArrowNavigation };\n//# sourceMappingURL=useArrowNavigation.js.map","import { createContext } from \"../shared/createContext.js\";\nimport { useDirection } from \"../shared/useDirection.js\";\nimport { useForwardExpose } from \"../shared/useForwardExpose.js\";\nimport { Primitive } from \"../Primitive/Primitive.js\";\nimport { VisuallyHiddenInput_default } from \"../VisuallyHidden/VisuallyHiddenInput.js\";\nimport { computed, createBlock, createVNode, defineComponent, mergeProps, openBlock, ref, renderSlot, toRefs, unref, watch, withCtx } from \"vue\";\nimport { useVModel } from \"@vueuse/core\";\n\n//#region src/PinInput/PinInputRoot.vue?vue&type=script&setup=true&lang.ts\nconst [injectPinInputRootContext, providePinInputRootContext] = createContext(\"PinInputRoot\");\nvar PinInputRoot_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({\n\tinheritAttrs: false,\n\t__name: \"PinInputRoot\",\n\tprops: {\n\t\tmodelValue: {\n\t\t\ttype: null,\n\t\t\trequired: false\n\t\t},\n\t\tdefaultValue: {\n\t\t\ttype: null,\n\t\t\trequired: false\n\t\t},\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: \"\"\n\t\t},\n\t\tmask: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\totp: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\ttype: {\n\t\t\ttype: null,\n\t\t\trequired: false,\n\t\t\tdefault: \"text\"\n\t\t},\n\t\tdir: {\n\t\t\ttype: String,\n\t\t\trequired: false\n\t\t},\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: false\n\t\t},\n\t\tasChild: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tas: {\n\t\t\ttype: null,\n\t\t\trequired: false\n\t\t},\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: false\n\t\t},\n\t\trequired: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t}\n\t},\n\temits: [\"update:modelValue\", \"complete\"],\n\tsetup(__props, { emit: __emit }) {\n\t\tconst props = __props;\n\t\tconst emits = __emit;\n\t\tconst { mask, otp, placeholder, type, disabled, dir: propDir } = toRefs(props);\n\t\tconst { forwardRef } = useForwardExpose();\n\t\tconst dir = useDirection(propDir);\n\t\tconst modelValue = useVModel(props, \"modelValue\", emits, {\n\t\t\tdefaultValue: props.defaultValue ?? [],\n\t\t\tpassive: true,\n\t\t\tdeep: true\n\t\t});\n\t\tconst currentModelValue = computed(() => Array.isArray(modelValue.value) ? [...modelValue.value] : []);\n\t\tconst inputElements = ref(/* @__PURE__ */ new Set());\n\t\tfunction onInputElementChange(el) {\n\t\t\tinputElements.value.add(el);\n\t\t}\n\t\tconst isNumericMode = computed(() => props.type === \"number\");\n\t\tconst isCompleted = computed(() => {\n\t\t\tconst modelValues = currentModelValue.value.filter((i) => !!i || isNumericMode.value && i === 0);\n\t\t\treturn modelValues.length === inputElements.value.size;\n\t\t});\n\t\twatch(modelValue, () => {\n\t\t\tif (isCompleted.value) emits(\"complete\", modelValue.value);\n\t\t}, { deep: true });\n\t\tprovidePinInputRootContext({\n\t\t\tmodelValue,\n\t\t\tcurrentModelValue,\n\t\t\tmask,\n\t\t\totp,\n\t\t\tplaceholder,\n\t\t\ttype,\n\t\t\tdir,\n\t\t\tdisabled,\n\t\t\tisCompleted,\n\t\t\tinputElements,\n\t\t\tonInputElementChange,\n\t\t\tisNumericMode\n\t\t});\n\t\treturn (_ctx, _cache) => {\n\t\t\treturn openBlock(), createBlock(unref(Primitive), mergeProps(_ctx.$attrs, {\n\t\t\t\tref: unref(forwardRef),\n\t\t\t\tdir: unref(dir),\n\t\t\t\t\"data-complete\": isCompleted.value ? \"\" : void 0,\n\t\t\t\t\"data-disabled\": unref(disabled) ? \"\" : void 0\n\t\t\t}), {\n\t\t\t\tdefault: withCtx(() => [renderSlot(_ctx.$slots, \"default\", { modelValue: unref(modelValue) }), createVNode(VisuallyHiddenInput_default, {\n\t\t\t\t\tid: _ctx.id,\n\t\t\t\t\tas: \"input\",\n\t\t\t\t\tfeature: \"focusable\",\n\t\t\t\t\ttabindex: \"-1\",\n\t\t\t\t\tvalue: currentModelValue.value.join(\"\"),\n\t\t\t\t\tname: _ctx.name ?? \"\",\n\t\t\t\t\tdisabled: unref(disabled),\n\t\t\t\t\trequired: _ctx.required,\n\t\t\t\t\tonFocus: _cache[0] || (_cache[0] = ($event) => Array.from(inputElements.value)?.[0]?.focus())\n\t\t\t\t}, null, 8, [\n\t\t\t\t\t\"id\",\n\t\t\t\t\t\"value\",\n\t\t\t\t\t\"name\",\n\t\t\t\t\t\"disabled\",\n\t\t\t\t\t\"required\"\n\t\t\t\t])]),\n\t\t\t\t_: 3\n\t\t\t}, 16, [\n\t\t\t\t\"dir\",\n\t\t\t\t\"data-complete\",\n\t\t\t\t\"data-disabled\"\n\t\t\t]);\n\t\t};\n\t}\n});\n\n//#endregion\n//#region src/PinInput/PinInputRoot.vue\nvar PinInputRoot_default = PinInputRoot_vue_vue_type_script_setup_true_lang_default;\n\n//#endregion\nexport { PinInputRoot_default, injectPinInputRootContext };\n//# sourceMappingURL=PinInputRoot.js.map","import { getActiveElement } from \"../shared/getActiveElement.js\";\nimport { useArrowNavigation } from \"../shared/useArrowNavigation.js\";\nimport { Primitive } from \"../Primitive/Primitive.js\";\nimport { usePrimitiveElement } from \"../Primitive/usePrimitiveElement.js\";\nimport { injectPinInputRootContext } from \"./PinInputRoot.js\";\nimport { computed, createBlock, defineComponent, nextTick, onMounted, onUnmounted, openBlock, renderSlot, unref, watch, withCtx, withKeys } from \"vue\";\n\n//#region src/PinInput/PinInputInput.vue?vue&type=script&setup=true&lang.ts\nvar PinInputInput_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({\n\t__name: \"PinInputInput\",\n\tprops: {\n\t\tindex: {\n\t\t\ttype: Number,\n\t\t\trequired: true\n\t\t},\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tasChild: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tas: {\n\t\t\ttype: null,\n\t\t\trequired: false,\n\t\t\tdefault: \"input\"\n\t\t}\n\t},\n\tsetup(__props) {\n\t\tconst props = __props;\n\t\tconst context = injectPinInputRootContext();\n\t\tconst inputElements = computed(() => Array.from(context.inputElements.value));\n\t\tconst currentValue = computed(() => context.currentModelValue.value[props.index]);\n\t\tconst disabled = computed(() => props.disabled || context.disabled.value);\n\t\tconst isOtpMode = computed(() => context.otp.value);\n\t\tconst isPasswordMode = computed(() => context.mask.value);\n\t\tconst { primitiveElement, currentElement } = usePrimitiveElement();\n\t\tfunction handleInput(event) {\n\t\t\tconst target = event.target;\n\t\t\tif ((event.data?.length ?? 0) > 1) {\n\t\t\t\thandleMultipleCharacter(target.value);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (context.isNumericMode.value && !/^\\d*$/.test(target.value)) {\n\t\t\t\ttarget.value = target.value.replace(/\\D/g, \"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttarget.value = event.data || target.value.slice(-1);\n\t\t\tupdateModelValueAt(props.index, target.value);\n\t\t\tconst nextEl = inputElements.value[props.index + 1];\n\t\t\tif (nextEl) nextEl.focus();\n\t\t}\n\t\tfunction updatePlaceholder() {\n\t\t\tnextTick(() => {\n\t\t\t\tconst target = currentElement.value;\n\t\t\t\tif (!target) return;\n\t\t\t\tif (!target.value && target === getActiveElement()) target.placeholder = \"\";\n\t\t\t\telse target.placeholder = context.placeholder.value;\n\t\t\t});\n\t\t}\n\t\tfunction handleKeydown(event) {\n\t\t\tuseArrowNavigation(event, getActiveElement(), void 0, {\n\t\t\t\titemsArray: inputElements.value,\n\t\t\t\tfocus: true,\n\t\t\t\tloop: false,\n\t\t\t\tarrowKeyOptions: \"horizontal\",\n\t\t\t\tdir: context.dir.value\n\t\t\t});\n\t\t}\n\t\tfunction handleBackspace(event) {\n\t\t\tevent.preventDefault();\n\t\t\tconst target = event.target;\n\t\t\tconst value = target.value;\n\t\t\tif (value) updateModelValueAt(props.index, \"\");\n\t\t\telse {\n\t\t\t\tconst prevEl = inputElements.value[props.index - 1];\n\t\t\t\tif (prevEl) {\n\t\t\t\t\tprevEl.focus();\n\t\t\t\t\tupdateModelValueAt(props.index - 1, \"\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfunction handleDelete(event) {\n\t\t\tif (event.key === \"Delete\") {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tupdateModelValueAt(props.index, \"\");\n\t\t\t}\n\t\t}\n\t\tfunction handleFocus(event) {\n\t\t\tif (context.otp.value) {\n\t\t\t\tconst firstEmptyInputIdx = inputElements.value.findIndex((_, idx) => context.currentModelValue.value[idx] === \"\" || context.currentModelValue.value[idx] === void 0);\n\t\t\t\tif (firstEmptyInputIdx !== -1 && firstEmptyInputIdx < props.index) {\n\t\t\t\t\tinputElements.value[firstEmptyInputIdx].focus();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst target = event.target;\n\t\t\ttarget.setSelectionRange(1, 1);\n\t\t\tupdatePlaceholder();\n\t\t}\n\t\tfunction handleBlur(event) {\n\t\t\tupdatePlaceholder();\n\t\t}\n\t\tfunction handlePaste(event) {\n\t\t\tevent.preventDefault();\n\t\t\tconst clipboardData = event.clipboardData;\n\t\t\tif (!clipboardData) return;\n\t\t\tconst values = clipboardData.getData(\"text\");\n\t\t\thandleMultipleCharacter(values);\n\t\t}\n\t\tfunction handleMultipleCharacter(values) {\n\t\t\tconst tempModelValue = [...context.currentModelValue.value];\n\t\t\tconst initialIndex = values.length >= inputElements.value.length ? 0 : props.index;\n\t\t\tconst lastIndex = Math.min(initialIndex + values.length, inputElements.value.length);\n\t\t\tfor (let i = initialIndex; i < lastIndex; i++) {\n\t\t\t\tconst input = inputElements.value[i];\n\t\t\t\tconst value = values[i - initialIndex];\n\t\t\t\tif (context.isNumericMode.value && !/^\\d*$/.test(value)) continue;\n\t\t\t\ttempModelValue[i] = value;\n\t\t\t\tinput.focus();\n\t\t\t}\n\t\t\tcontext.modelValue.value = tempModelValue;\n\t\t\tinputElements.value[lastIndex]?.focus();\n\t\t}\n\t\tfunction removeTrailingEmptyStrings(input) {\n\t\t\tlet i = input.length - 1;\n\t\t\twhile (i >= 0 && input[i] === \"\") {\n\t\t\t\tinput.pop();\n\t\t\t\ti--;\n\t\t\t}\n\t\t\treturn input;\n\t\t}\n\t\tfunction updateModelValueAt(index, value) {\n\t\t\tconst tempModelValue = [...context.currentModelValue.value];\n\t\t\tif (context.isNumericMode.value) {\n\t\t\t\tconst num = +value;\n\t\t\t\tif (value === \"\" || isNaN(num)) delete tempModelValue[index];\n\t\t\t\telse tempModelValue[index] = num;\n\t\t\t} else tempModelValue[index] = value;\n\t\t\tcontext.modelValue.value = removeTrailingEmptyStrings(tempModelValue);\n\t\t}\n\t\twatch(currentValue, updatePlaceholder);\n\t\tonMounted(() => {\n\t\t\tcontext.onInputElementChange(currentElement.value);\n\t\t});\n\t\tonUnmounted(() => {\n\t\t\tcontext.inputElements?.value.delete(currentElement.value);\n\t\t});\n\t\treturn (_ctx, _cache) => {\n\t\t\treturn openBlock(), createBlock(unref(Primitive), {\n\t\t\t\tref_key: \"primitiveElement\",\n\t\t\t\tref: primitiveElement,\n\t\t\t\tautocapitalize: \"none\",\n\t\t\t\tas: _ctx.as,\n\t\t\t\t\"as-child\": _ctx.asChild,\n\t\t\t\tautocomplete: isOtpMode.value ? \"one-time-code\" : \"false\",\n\t\t\t\ttype: isPasswordMode.value ? \"password\" : \"text\",\n\t\t\t\tinputmode: unref(context).isNumericMode.value ? \"numeric\" : \"text\",\n\t\t\t\tpattern: unref(context).isNumericMode.value ? \"[0-9]*\" : void 0,\n\t\t\t\tplaceholder: unref(context).placeholder.value,\n\t\t\t\tvalue: currentValue.value,\n\t\t\t\tdisabled: disabled.value,\n\t\t\t\t\"data-disabled\": disabled.value ? \"\" : void 0,\n\t\t\t\t\"data-complete\": unref(context).isCompleted.value ? \"\" : void 0,\n\t\t\t\t\"aria-label\": `pin input ${_ctx.index + 1} of ${inputElements.value.length}`,\n\t\t\t\tonInput: _cache[0] || (_cache[0] = ($event) => handleInput($event)),\n\t\t\t\tonKeydown: [\n\t\t\t\t\twithKeys(handleKeydown, [\n\t\t\t\t\t\t\"left\",\n\t\t\t\t\t\t\"right\",\n\t\t\t\t\t\t\"up\",\n\t\t\t\t\t\t\"down\",\n\t\t\t\t\t\t\"home\",\n\t\t\t\t\t\t\"end\"\n\t\t\t\t\t]),\n\t\t\t\t\twithKeys(handleBackspace, [\"backspace\"]),\n\t\t\t\t\twithKeys(handleDelete, [\"delete\"])\n\t\t\t\t],\n\t\t\t\tonFocus: handleFocus,\n\t\t\t\tonBlur: handleBlur,\n\t\t\t\tonPaste: handlePaste\n\t\t\t}, {\n\t\t\t\tdefault: withCtx(() => [renderSlot(_ctx.$slots, \"default\")]),\n\t\t\t\t_: 3\n\t\t\t}, 8, [\n\t\t\t\t\"as\",\n\t\t\t\t\"as-child\",\n\t\t\t\t\"autocomplete\",\n\t\t\t\t\"type\",\n\t\t\t\t\"inputmode\",\n\t\t\t\t\"pattern\",\n\t\t\t\t\"placeholder\",\n\t\t\t\t\"value\",\n\t\t\t\t\"disabled\",\n\t\t\t\t\"data-disabled\",\n\t\t\t\t\"data-complete\",\n\t\t\t\t\"aria-label\"\n\t\t\t]);\n\t\t};\n\t}\n});\n\n//#endregion\n//#region src/PinInput/PinInputInput.vue\nvar PinInputInput_default = PinInputInput_vue_vue_type_script_setup_true_lang_default;\n\n//#endregion\nexport { PinInputInput_default };\n//# sourceMappingURL=PinInputInput.js.map","<template>\n <PinInputRoot\n :id=\"computedId\"\n v-model=\"modelValue\"\n :class=\"rootClasses\"\n :disabled=\"props.disabled\"\n :dir=\"props.dir\"\n :mask=\"props.mask\"\n :name=\"props.name\"\n :otp=\"props.otp\"\n :placeholder=\"props.placeholder\"\n :required=\"props.required\"\n :type=\"props.type\"\n @complete=\"emit('complete', $event)\"\n >\n <PinInputInput\n v-for=\"(_, i) in computedLength\"\n :key=\"i\"\n :index=\"i\"\n :disabled=\"props.disabled\"\n as-child\n >\n <BFormInput\n class=\"b-form-otp-field\"\n :aria-label=\"`${props.ariaLabel || 'Pin'} ${i + 1} of ${computedLength}`\"\n :aria-invalid=\"props.ariaInvalid\"\n :autofocus=\"props.autofocus && i === 0\"\n :disabled=\"props.disabled\"\n :form=\"props.form\"\n :plaintext=\"props.plaintext\"\n :readonly=\"props.readonly\"\n :size=\"props.size\"\n :state=\"props.state\"\n />\n </PinInputInput>\n </PinInputRoot>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed} from 'vue'\nimport {useToNumber} from '@vueuse/core'\nimport {PinInputInput, PinInputRoot} from 'reka-ui'\nimport type {BFormOtpProps} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport BFormInput from '../BFormInput/BFormInput.vue'\n\nconst lengthDefault = 6\nconst _props = withDefaults(defineProps<Omit<BFormOtpProps, 'modelValue'>>(), {\n ariaInvalid: undefined,\n ariaLabel: undefined,\n autofocus: false,\n dir: undefined,\n disabled: false,\n form: undefined,\n id: undefined,\n length: lengthDefault,\n mask: false,\n name: undefined,\n otp: false,\n placeholder: '',\n plaintext: false,\n readonly: false,\n required: false,\n size: undefined,\n state: null,\n type: 'text',\n})\nconst props = useDefaults(_props, 'BFormOtp')\nconst emit = defineEmits<{\n complete: [value: string[]]\n}>()\n\nconst modelValue = defineModel<BFormOtpProps['modelValue']>({default: () => []})\n\nconst computedId = useId(() => props.id)\nconst lengthNumber = useToNumber(() => props.length, {nanToZero: true, method: 'parseInt'})\nconst computedLength = computed(() => (lengthNumber.value > 0 ? lengthNumber.value : lengthDefault))\n\nconst rootClasses = computed(() => [\n 'b-form-otp',\n 'd-flex',\n 'gap-2',\n 'align-items-center',\n {\n [`b-form-otp-${props.size}`]: !!props.size,\n },\n])\n</script>\n","<template>\n <PinInputRoot\n :id=\"computedId\"\n v-model=\"modelValue\"\n :class=\"rootClasses\"\n :disabled=\"props.disabled\"\n :dir=\"props.dir\"\n :mask=\"props.mask\"\n :name=\"props.name\"\n :otp=\"props.otp\"\n :placeholder=\"props.placeholder\"\n :required=\"props.required\"\n :type=\"props.type\"\n @complete=\"emit('complete', $event)\"\n >\n <PinInputInput\n v-for=\"(_, i) in computedLength\"\n :key=\"i\"\n :index=\"i\"\n :disabled=\"props.disabled\"\n as-child\n >\n <BFormInput\n class=\"b-form-otp-field\"\n :aria-label=\"`${props.ariaLabel || 'Pin'} ${i + 1} of ${computedLength}`\"\n :aria-invalid=\"props.ariaInvalid\"\n :autofocus=\"props.autofocus && i === 0\"\n :disabled=\"props.disabled\"\n :form=\"props.form\"\n :plaintext=\"props.plaintext\"\n :readonly=\"props.readonly\"\n :size=\"props.size\"\n :state=\"props.state\"\n />\n </PinInputInput>\n </PinInputRoot>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed} from 'vue'\nimport {useToNumber} from '@vueuse/core'\nimport {PinInputInput, PinInputRoot} from 'reka-ui'\nimport type {BFormOtpProps} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport BFormInput from '../BFormInput/BFormInput.vue'\n\nconst lengthDefault = 6\nconst _props = withDefaults(defineProps<Omit<BFormOtpProps, 'modelValue'>>(), {\n ariaInvalid: undefined,\n ariaLabel: undefined,\n autofocus: false,\n dir: undefined,\n disabled: false,\n form: undefined,\n id: undefined,\n length: lengthDefault,\n mask: false,\n name: undefined,\n otp: false,\n placeholder: '',\n plaintext: false,\n readonly: false,\n required: false,\n size: undefined,\n state: null,\n type: 'text',\n})\nconst props = useDefaults(_props, 'BFormOtp')\nconst emit = defineEmits<{\n complete: [value: string[]]\n}>()\n\nconst modelValue = defineModel<BFormOtpProps['modelValue']>({default: () => []})\n\nconst computedId = useId(() => props.id)\nconst lengthNumber = useToNumber(() => props.length, {nanToZero: true, method: 'parseInt'})\nconst computedLength = computed(() => (lengthNumber.value > 0 ? lengthNumber.value : lengthDefault))\n\nconst rootClasses = computed(() => [\n 'b-form-otp',\n 'd-flex',\n 'gap-2',\n 'align-items-center',\n {\n [`b-form-otp-${props.size}`]: !!props.size,\n },\n])\n</script>\n"],"x_google_ignoreList":[0,1,2],"mappings":";;;;;;;;;;AACA,IAAM,iBAAiB,CAAC,SAAS,WAAW;;;;;;;;;;AAU5C,SAAS,mBAAmB,GAAG,gBAAgB,eAAe,UAAU,EAAE,EAAE;AAC3E,KAAI,CAAC,kBAAkB,QAAQ,wBAAwB,eAAe,SAAS,eAAe,SAAS,CAAE,QAAO;CAChH,MAAM,EAAE,kBAAkB,QAAQ,gBAAgB,+BAA+B,aAAa,EAAE,EAAE,OAAO,MAAM,MAAM,OAAO,gBAAgB,MAAM,QAAQ,UAAU;CACpK,MAAM,CAAC,OAAO,MAAM,IAAI,MAAM,MAAM,OAAO;EAC1C,EAAE,QAAQ;EACV,EAAE,QAAQ;EACV,EAAE,QAAQ;EACV,EAAE,QAAQ;EACV,EAAE,QAAQ;EACV,EAAE,QAAQ;EACV;CACD,MAAM,gBAAgB,MAAM;CAC5B,MAAM,kBAAkB,SAAS;AACjC,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,mBAAmB,oBAAoB,cAAc,mBAAmB,oBAAoB,gBAAgB,eAAgB,QAAO;CAC5K,MAAM,qBAAqB,gBAAgB,MAAM,KAAK,cAAc,iBAAiB,cAAc,CAAC,GAAG;AACvG,KAAI,CAAC,mBAAmB,OAAQ,QAAO;AACvC,KAAI,cAAe,GAAE,gBAAgB;CACrC,IAAI,OAAO;AACX,KAAI,mBAAmB,cAEtB,QAAO,yBAAyB,oBAAoB,gBAAgB;EACnE,WAFiB,gBAAgB,OAAO,QAAQ,QAAQ,QAAQ;EAGhE;EACA,CAAC;UACQ,KAAM,QAAO,mBAAmB,GAAG,EAAE,IAAI;UAC3C,IAAK,QAAO,mBAAmB,GAAG,GAAG,IAAI;AAClD,KAAI,MAAO,OAAM,OAAO;AACxB,QAAO;;;;;;;;;;AAUR,SAAS,yBAAyB,UAAU,gBAAgB,SAAS,aAAa,CAAC,SAAS,SAAS,eAAe,GAAG,SAAS,SAAS,IAAI,SAAS,QAAQ;AAC7J,KAAI,EAAE,eAAe,EAAG,QAAO;CAC/B,MAAM,QAAQ,SAAS,QAAQ,eAAe;CAC9C,IAAI;AACJ,KAAI,UAAU,GAAI,YAAW,QAAQ,YAAY,IAAI,SAAS,SAAS;KAClE,YAAW,QAAQ,YAAY,QAAQ,IAAI,QAAQ;AACxD,KAAI,CAAC,QAAQ,SAAS,WAAW,KAAK,YAAY,SAAS,QAAS,QAAO;CAE3E,MAAM,YAAY,UADQ,WAAW,SAAS,UAAU,SAAS;AAEjE,KAAI,CAAC,UAAW,QAAO;AAEvB,KADmB,UAAU,aAAa,WAAW,IAAI,UAAU,aAAa,WAAW,KAAK,QAChF,QAAO,yBAAyB,UAAU,WAAW,SAAS,WAAW;AACzF,QAAO;;;;ACnDR,IAAM,CAAC,2BAA2B,8BAA8BA,uBAAAA,cAAc,eAAe;AAuI7F,IAAI,uBAtI2E,iBAAA,GAAA,IAAA,iBAAgB;CAC9F,cAAc;CACd,QAAQ;CACR,OAAO;EACN,YAAY;GACX,MAAM;GACN,UAAU;GACV;EACD,cAAc;GACb,MAAM;GACN,UAAU;GACV;EACD,aAAa;GACZ,MAAM;GACN,UAAU;GACV,SAAS;GACT;EACD,MAAM;GACL,MAAM;GACN,UAAU;GACV;EACD,KAAK;GACJ,MAAM;GACN,UAAU;GACV;EACD,MAAM;GACL,MAAM;GACN,UAAU;GACV,SAAS;GACT;EACD,KAAK;GACJ,MAAM;GACN,UAAU;GACV;EACD,UAAU;GACT,MAAM;GACN,UAAU;GACV;EACD,IAAI;GACH,MAAM;GACN,UAAU;GACV;EACD,SAAS;GACR,MAAM;GACN,UAAU;GACV;EACD,IAAI;GACH,MAAM;GACN,UAAU;GACV;EACD,MAAM;GACL,MAAM;GACN,UAAU;GACV;EACD,UAAU;GACT,MAAM;GACN,UAAU;GACV;EACD;CACD,OAAO,CAAC,qBAAqB,WAAW;CACxC,MAAM,SAAS,EAAE,MAAM,UAAU;EAChC,MAAM,QAAQ;EACd,MAAM,QAAQ;EACd,MAAM,EAAE,MAAM,KAAK,aAAa,MAAM,UAAU,KAAK,aAAA,GAAA,IAAA,QAAmB,MAAM;EAC9E,MAAM,EAAE,eAAeC,yBAAAA,kBAAkB;EACzC,MAAM,MAAMC,uBAAAA,aAAa,QAAQ;EACjC,MAAM,aAAaC,aAAAA,UAAU,OAAO,cAAc,OAAO;GACxD,cAAc,MAAM,gBAAgB,EAAE;GACtC,SAAS;GACT,MAAM;GACN,CAAC;EACF,MAAM,qBAAA,GAAA,IAAA,gBAAmC,MAAM,QAAQ,WAAW,MAAM,GAAG,CAAC,GAAG,WAAW,MAAM,GAAG,EAAE,CAAC;EACtG,MAAM,iBAAA,GAAA,IAAA,qBAAoC,IAAI,KAAK,CAAC;EACpD,SAAS,qBAAqB,IAAI;AACjC,iBAAc,MAAM,IAAI,GAAG;;EAE5B,MAAM,iBAAA,GAAA,IAAA,gBAA+B,MAAM,SAAS,SAAS;EAC7D,MAAM,eAAA,GAAA,IAAA,gBAA6B;AAElC,UADoB,kBAAkB,MAAM,QAAQ,MAAM,CAAC,CAAC,KAAK,cAAc,SAAS,MAAM,EAAE,CAC7E,WAAW,cAAc,MAAM;IACjD;AACF,GAAA,GAAA,IAAA,OAAM,kBAAkB;AACvB,OAAI,YAAY,MAAO,OAAM,YAAY,WAAW,MAAM;KACxD,EAAE,MAAM,MAAM,CAAC;AAClB,6BAA2B;GAC1B;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,CAAC;AACF,UAAQ,MAAM,WAAW;AACxB,WAAA,GAAA,IAAA,YAAkB,GAAA,GAAA,IAAA,cAAA,GAAA,IAAA,OAAoBC,uBAAAA,UAAU,GAAA,GAAA,IAAA,YAAa,KAAK,QAAQ;IACzE,MAAA,GAAA,IAAA,OAAW,WAAW;IACtB,MAAA,GAAA,IAAA,OAAW,IAAI;IACf,iBAAiB,YAAY,QAAQ,KAAK,KAAK;IAC/C,kBAAA,GAAA,IAAA,OAAuB,SAAS,GAAG,KAAK,KAAK;IAC7C,CAAC,EAAE;IACH,UAAA,GAAA,IAAA,eAAuB,EAAA,GAAA,IAAA,YAAY,KAAK,QAAQ,WAAW,EAAE,aAAA,GAAA,IAAA,OAAkB,WAAW,EAAE,CAAC,GAAA,GAAA,IAAA,aAAcC,4BAAAA,6BAA6B;KACvI,IAAI,KAAK;KACT,IAAI;KACJ,SAAS;KACT,UAAU;KACV,OAAO,kBAAkB,MAAM,KAAK,GAAG;KACvC,MAAM,KAAK,QAAQ;KACnB,WAAA,GAAA,IAAA,OAAgB,SAAS;KACzB,UAAU,KAAK;KACf,SAAS,OAAO,OAAO,OAAO,MAAM,WAAW,MAAM,KAAK,cAAc,MAAM,GAAG,IAAI,OAAO;KAC5F,EAAE,MAAM,GAAG;KACX;KACA;KACA;KACA;KACA;KACA,CAAC,CAAC,CAAC;IACJ,GAAG;IACH,EAAE,IAAI;IACN;IACA;IACA;IACA,CAAC;;;CAGJ,CAAC;;;ACiEF,IAAI,wBArM4E,iBAAA,GAAA,IAAA,iBAAgB;CAC/F,QAAQ;CACR,OAAO;EACN,OAAO;GACN,MAAM;GACN,UAAU;GACV;EACD,UAAU;GACT,MAAM;GACN,UAAU;GACV;EACD,SAAS;GACR,MAAM;GACN,UAAU;GACV;EACD,IAAI;GACH,MAAM;GACN,UAAU;GACV,SAAS;GACT;EACD;CACD,MAAM,SAAS;EACd,MAAM,QAAQ;EACd,MAAM,UAAU,2BAA2B;EAC3C,MAAM,iBAAA,GAAA,IAAA,gBAA+B,MAAM,KAAK,QAAQ,cAAc,MAAM,CAAC;EAC7E,MAAM,gBAAA,GAAA,IAAA,gBAA8B,QAAQ,kBAAkB,MAAM,MAAM,OAAO;EACjF,MAAM,YAAA,GAAA,IAAA,gBAA0B,MAAM,YAAY,QAAQ,SAAS,MAAM;EACzE,MAAM,aAAA,GAAA,IAAA,gBAA2B,QAAQ,IAAI,MAAM;EACnD,MAAM,kBAAA,GAAA,IAAA,gBAAgC,QAAQ,KAAK,MAAM;EACzD,MAAM,EAAE,kBAAkB,mBAAmBC,uBAAAA,qBAAqB;EAClE,SAAS,YAAY,OAAO;GAC3B,MAAM,SAAS,MAAM;AACrB,QAAK,MAAM,MAAM,UAAU,KAAK,GAAG;AAClC,4BAAwB,OAAO,MAAM;AACrC;;AAED,OAAI,QAAQ,cAAc,SAAS,CAAC,QAAQ,KAAK,OAAO,MAAM,EAAE;AAC/D,WAAO,QAAQ,OAAO,MAAM,QAAQ,OAAO,GAAG;AAC9C;;AAED,UAAO,QAAQ,MAAM,QAAQ,OAAO,MAAM,MAAM,GAAG;AACnD,sBAAmB,MAAM,OAAO,OAAO,MAAM;GAC7C,MAAM,SAAS,cAAc,MAAM,MAAM,QAAQ;AACjD,OAAI,OAAQ,QAAO,OAAO;;EAE3B,SAAS,oBAAoB;AAC5B,IAAA,GAAA,IAAA,gBAAe;IACd,MAAM,SAAS,eAAe;AAC9B,QAAI,CAAC,OAAQ;AACb,QAAI,CAAC,OAAO,SAAS,WAAWC,yBAAAA,kBAAkB,CAAE,QAAO,cAAc;QACpE,QAAO,cAAc,QAAQ,YAAY;KAC7C;;EAEH,SAAS,cAAc,OAAO;AAC7B,sBAAmB,OAAOA,yBAAAA,kBAAkB,EAAE,KAAK,GAAG;IACrD,YAAY,cAAc;IAC1B,OAAO;IACP,MAAM;IACN,iBAAiB;IACjB,KAAK,QAAQ,IAAI;IACjB,CAAC;;EAEH,SAAS,gBAAgB,OAAO;AAC/B,SAAM,gBAAgB;AAGtB,OAFe,MAAM,OACA,MACV,oBAAmB,MAAM,OAAO,GAAG;QACzC;IACJ,MAAM,SAAS,cAAc,MAAM,MAAM,QAAQ;AACjD,QAAI,QAAQ;AACX,YAAO,OAAO;AACd,wBAAmB,MAAM,QAAQ,GAAG,GAAG;;;;EAI1C,SAAS,aAAa,OAAO;AAC5B,OAAI,MAAM,QAAQ,UAAU;AAC3B,UAAM,gBAAgB;AACtB,uBAAmB,MAAM,OAAO,GAAG;;;EAGrC,SAAS,YAAY,OAAO;AAC3B,OAAI,QAAQ,IAAI,OAAO;IACtB,MAAM,qBAAqB,cAAc,MAAM,WAAW,GAAG,QAAQ,QAAQ,kBAAkB,MAAM,SAAS,MAAM,QAAQ,kBAAkB,MAAM,SAAS,KAAK,EAAE;AACpK,QAAI,uBAAuB,MAAM,qBAAqB,MAAM,OAAO;AAClE,mBAAc,MAAM,oBAAoB,OAAO;AAC/C;;;AAGa,SAAM,OACd,kBAAkB,GAAG,EAAE;AAC9B,sBAAmB;;EAEpB,SAAS,WAAW,OAAO;AAC1B,sBAAmB;;EAEpB,SAAS,YAAY,OAAO;AAC3B,SAAM,gBAAgB;GACtB,MAAM,gBAAgB,MAAM;AAC5B,OAAI,CAAC,cAAe;AAEpB,2BADe,cAAc,QAAQ,OAAO,CACb;;EAEhC,SAAS,wBAAwB,QAAQ;GACxC,MAAM,iBAAiB,CAAC,GAAG,QAAQ,kBAAkB,MAAM;GAC3D,MAAM,eAAe,OAAO,UAAU,cAAc,MAAM,SAAS,IAAI,MAAM;GAC7E,MAAM,YAAY,KAAK,IAAI,eAAe,OAAO,QAAQ,cAAc,MAAM,OAAO;AACpF,QAAK,IAAI,IAAI,cAAc,IAAI,WAAW,KAAK;IAC9C,MAAM,QAAQ,cAAc,MAAM;IAClC,MAAM,QAAQ,OAAO,IAAI;AACzB,QAAI,QAAQ,cAAc,SAAS,CAAC,QAAQ,KAAK,MAAM,CAAE;AACzD,mBAAe,KAAK;AACpB,UAAM,OAAO;;AAEd,WAAQ,WAAW,QAAQ;AAC3B,iBAAc,MAAM,YAAY,OAAO;;EAExC,SAAS,2BAA2B,OAAO;GAC1C,IAAI,IAAI,MAAM,SAAS;AACvB,UAAO,KAAK,KAAK,MAAM,OAAO,IAAI;AACjC,UAAM,KAAK;AACX;;AAED,UAAO;;EAER,SAAS,mBAAmB,OAAO,OAAO;GACzC,MAAM,iBAAiB,CAAC,GAAG,QAAQ,kBAAkB,MAAM;AAC3D,OAAI,QAAQ,cAAc,OAAO;IAChC,MAAM,MAAM,CAAC;AACb,QAAI,UAAU,MAAM,MAAM,IAAI,CAAE,QAAO,eAAe;QACjD,gBAAe,SAAS;SACvB,gBAAe,SAAS;AAC/B,WAAQ,WAAW,QAAQ,2BAA2B,eAAe;;AAEtE,GAAA,GAAA,IAAA,OAAM,cAAc,kBAAkB;AACtC,GAAA,GAAA,IAAA,iBAAgB;AACf,WAAQ,qBAAqB,eAAe,MAAM;IACjD;AACF,GAAA,GAAA,IAAA,mBAAkB;AACjB,WAAQ,eAAe,MAAM,OAAO,eAAe,MAAM;IACxD;AACF,UAAQ,MAAM,WAAW;AACxB,WAAA,GAAA,IAAA,YAAkB,GAAA,GAAA,IAAA,cAAA,GAAA,IAAA,OAAoBC,uBAAAA,UAAU,EAAE;IACjD,SAAS;IACT,KAAK;IACL,gBAAgB;IAChB,IAAI,KAAK;IACT,YAAY,KAAK;IACjB,cAAc,UAAU,QAAQ,kBAAkB;IAClD,MAAM,eAAe,QAAQ,aAAa;IAC1C,YAAA,GAAA,IAAA,OAAiB,QAAQ,CAAC,cAAc,QAAQ,YAAY;IAC5D,UAAA,GAAA,IAAA,OAAe,QAAQ,CAAC,cAAc,QAAQ,WAAW,KAAK;IAC9D,cAAA,GAAA,IAAA,OAAmB,QAAQ,CAAC,YAAY;IACxC,OAAO,aAAa;IACpB,UAAU,SAAS;IACnB,iBAAiB,SAAS,QAAQ,KAAK,KAAK;IAC5C,kBAAA,GAAA,IAAA,OAAuB,QAAQ,CAAC,YAAY,QAAQ,KAAK,KAAK;IAC9D,cAAc,aAAa,KAAK,QAAQ,EAAE,MAAM,cAAc,MAAM;IACpE,SAAS,OAAO,OAAO,OAAO,MAAM,WAAW,YAAY,OAAO;IAClE,WAAW;uBACD,eAAe;MACvB;MACA;MACA;MACA;MACA;MACA;MACA,CAAC;uBACO,iBAAiB,CAAC,YAAY,CAAC;uBAC/B,cAAc,CAAC,SAAS,CAAC;KAClC;IACD,SAAS;IACT,QAAQ;IACR,SAAS;IACT,EAAE;IACF,UAAA,GAAA,IAAA,eAAuB,EAAA,GAAA,IAAA,YAAY,KAAK,QAAQ,UAAU,CAAC,CAAC;IAC5D,GAAG;IACH,EAAE,GAAG;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,CAAC;;;CAGJ,CAAC;;;AC1JF,IAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBtB,MAAM,QAAQ,oBAAA,YApBC,SAoBmB,WAAU;EAC5C,MAAM,OAAO;EAIb,MAAM,cAAA,GAAA,IAAA,UAAqD,SAAA,aAAoB;EAE/E,MAAM,aAAa,cAAA,YAAY,MAAM,GAAE;EACvC,MAAM,eAAe,aAAA,kBAAkB,MAAM,QAAQ;GAAC,WAAW;GAAM,QAAQ;GAAW,CAAA;EAC1F,MAAM,kBAAA,GAAA,IAAA,gBAAiC,aAAa,QAAQ,IAAI,aAAa,QAAQ,cAAc;EAEnG,MAAM,eAAA,GAAA,IAAA,gBAA6B;GACjC;GACA;GACA;GACA;GACA,GACG,cAAc,MAAM,SAAS,CAAC,CAAC,MAAM,MAAA;GAEzC,CAAA;;oEApDgB,qBAAA,EAAA;IAjCZ,KAAA,GAAA,IAAA,OAAI,WAAU;gBACN,WAAA;4EAAU,QAAA;IAClB,QAAA,GAAA,IAAA,gBAAO,YAAA,MAAW;IAClB,WAAA,GAAA,IAAA,OAAU,MAAK,CAAC;IAChB,MAAA,GAAA,IAAA,OAAK,MAAK,CAAC;IACX,OAAA,GAAA,IAAA,OAAM,MAAK,CAAC;IACZ,OAAA,GAAA,IAAA,OAAM,MAAK,CAAC;IACZ,MAAA,GAAA,IAAA,OAAK,MAAK,CAAC;IACX,cAAA,GAAA,IAAA,OAAa,MAAK,CAAC;IACnB,WAAA,GAAA,IAAA,OAAU,MAAK,CAAC;IAChB,OAAA,GAAA,IAAA,OAAM,MAAK,CAAC;IACZ,YAAQ,OAAA,OAAA,OAAA,MAAA,WAAE,KAAI,YAAa,OAAM;;oCAGA,GAAA,GAAA,IAAA,WAAA,KAAA,GAAA,GAAA,IAAA,oBAkBlB,IAAA,UAAA,OAAA,GAAA,IAAA,YAlBG,eAAA,QAAT,GAAG,MAAC;sEAkBE,sBAAA,EAAA;MAjBb,KAAK;MACL,OAAO;MACP,WAAA,GAAA,IAAA,OAAU,MAAK,CAAC;MACjB,YAAA;;sCAaE,EAAA,GAAA,IAAA,aAAA,mBAAA,oBAAA;OAVA,OAAM;OACL,cAAU,IAAA,GAAA,IAAA,OAAK,MAAK,CAAC,aAAS,MAAA,GAAa,IAAC,EAAA,MAAW,eAAA;OACvD,iBAAA,GAAA,IAAA,OAAc,MAAK,CAAC;OACpB,YAAA,GAAA,IAAA,OAAW,MAAK,CAAC,aAAa,MAAC;OAC/B,WAAA,GAAA,IAAA,OAAU,MAAK,CAAC;OAChB,OAAA,GAAA,IAAA,OAAM,MAAK,CAAC;OACZ,YAAA,GAAA,IAAA,OAAW,MAAK,CAAC;OACjB,WAAA,GAAA,IAAA,OAAU,MAAK,CAAC;OAChB,OAAA,GAAA,IAAA,OAAM,MAAK,CAAC;OACZ,QAAA,GAAA,IAAA,OAAO,MAAK,CAAC"}
@@ -390,12 +390,12 @@ var PinInputInput_default = /* @__PURE__ */ defineComponent({
390
390
  }
391
391
  });
392
392
  //#endregion
393
- //#region src/components/BOtpInput/BOtpInput.vue?vue&type=script&setup=true&lang.ts
393
+ //#region src/components/BFormOtp/BFormOtp.vue?vue&type=script&setup=true&lang.ts
394
394
  var lengthDefault = 6;
395
395
  //#endregion
396
- //#region src/components/BOtpInput/BOtpInput.vue
397
- var BOtpInput_default = /* @__PURE__ */ defineComponent({
398
- __name: "BOtpInput",
396
+ //#region src/components/BFormOtp/BFormOtp.vue
397
+ var BFormOtp_default = /* @__PURE__ */ defineComponent({
398
+ __name: "BFormOtp",
399
399
  props: /* @__PURE__ */ mergeModels({
400
400
  ariaInvalid: {
401
401
  type: [Boolean, String],
@@ -449,7 +449,7 @@ var BOtpInput_default = /* @__PURE__ */ defineComponent({
449
449
  }),
450
450
  emits: /* @__PURE__ */ mergeModels(["complete"], ["update:modelValue"]),
451
451
  setup(__props, { emit: __emit }) {
452
- const props = useDefaults(__props, "BOtpInput");
452
+ const props = useDefaults(__props, "BFormOtp");
453
453
  const emit = __emit;
454
454
  const modelValue = useModel(__props, "modelValue");
455
455
  const computedId = useId$1(() => props.id);
@@ -459,11 +459,11 @@ var BOtpInput_default = /* @__PURE__ */ defineComponent({
459
459
  });
460
460
  const computedLength = computed(() => lengthNumber.value > 0 ? lengthNumber.value : lengthDefault);
461
461
  const rootClasses = computed(() => [
462
- "b-otp-input",
462
+ "b-form-otp",
463
463
  "d-flex",
464
464
  "gap-2",
465
465
  "align-items-center",
466
- { [`b-otp-input-${props.size}`]: !!props.size }
466
+ { [`b-form-otp-${props.size}`]: !!props.size }
467
467
  ]);
468
468
  return (_ctx, _cache) => {
469
469
  return openBlock(), createBlock(unref(PinInputRoot_default), {
@@ -489,7 +489,7 @@ var BOtpInput_default = /* @__PURE__ */ defineComponent({
489
489
  "as-child": ""
490
490
  }, {
491
491
  default: withCtx(() => [createVNode(BFormInput_default, {
492
- class: "b-otp-input-field",
492
+ class: "b-form-otp-field",
493
493
  "aria-label": `${unref(props).ariaLabel || "Pin"} ${i + 1} of ${computedLength.value}`,
494
494
  "aria-invalid": unref(props).ariaInvalid,
495
495
  autofocus: unref(props).autofocus && i === 0,
@@ -531,6 +531,6 @@ var BOtpInput_default = /* @__PURE__ */ defineComponent({
531
531
  }
532
532
  });
533
533
  //#endregion
534
- export { BOtpInput_default as t };
534
+ export { BFormOtp_default as t };
535
535
 
536
- //# sourceMappingURL=BOtpInput-Drfkt3x3.mjs.map
536
+ //# sourceMappingURL=BFormOtp-DYjsPhQN.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BFormOtp-DYjsPhQN.mjs","names":[],"sources":["../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/shared/useArrowNavigation.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/PinInput/PinInputRoot.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/PinInput/PinInputInput.js","../src/components/BFormOtp/BFormOtp.vue","../src/components/BFormOtp/BFormOtp.vue"],"sourcesContent":["//#region src/shared/useArrowNavigation.ts\nconst ignoredElement = [\"INPUT\", \"TEXTAREA\"];\n/**\n* Allow arrow navigation for every html element with data-reka-collection-item tag\n*\n* @param e Keyboard event\n* @param currentElement Event initiator element or any element that wants to handle the navigation\n* @param parentElement Parent element where contains all the collection items, this will collect every item to be used when nav\n* @param options further options\n* @returns the navigated html element or null if none\n*/\nfunction useArrowNavigation(e, currentElement, parentElement, options = {}) {\n\tif (!currentElement || options.enableIgnoredElement && ignoredElement.includes(currentElement.nodeName)) return null;\n\tconst { arrowKeyOptions = \"both\", attributeName = \"[data-reka-collection-item]\", itemsArray = [], loop = true, dir = \"ltr\", preventScroll = true, focus = false } = options;\n\tconst [right, left, up, down, home, end] = [\n\t\te.key === \"ArrowRight\",\n\t\te.key === \"ArrowLeft\",\n\t\te.key === \"ArrowUp\",\n\t\te.key === \"ArrowDown\",\n\t\te.key === \"Home\",\n\t\te.key === \"End\"\n\t];\n\tconst goingVertical = up || down;\n\tconst goingHorizontal = right || left;\n\tif (!home && !end && (!goingVertical && !goingHorizontal || arrowKeyOptions === \"vertical\" && goingHorizontal || arrowKeyOptions === \"horizontal\" && goingVertical)) return null;\n\tconst allCollectionItems = parentElement ? Array.from(parentElement.querySelectorAll(attributeName)) : itemsArray;\n\tif (!allCollectionItems.length) return null;\n\tif (preventScroll) e.preventDefault();\n\tlet item = null;\n\tif (goingHorizontal || goingVertical) {\n\t\tconst goForward = goingVertical ? down : dir === \"ltr\" ? right : left;\n\t\titem = findNextFocusableElement(allCollectionItems, currentElement, {\n\t\t\tgoForward,\n\t\t\tloop\n\t\t});\n\t} else if (home) item = allCollectionItems.at(0) || null;\n\telse if (end) item = allCollectionItems.at(-1) || null;\n\tif (focus) item?.focus();\n\treturn item;\n}\n/**\n* Recursive function to find the next focusable element to avoid disabled elements\n*\n* @param elements Elements to navigate\n* @param currentElement Current active element\n* @param options\n* @returns next focusable element\n*/\nfunction findNextFocusableElement(elements, currentElement, options, iterations = !elements.includes(currentElement) ? elements.length + 1 : elements.length) {\n\tif (--iterations === 0) return null;\n\tconst index = elements.indexOf(currentElement);\n\tlet newIndex;\n\tif (index === -1) newIndex = options.goForward ? 0 : elements.length - 1;\n\telse newIndex = options.goForward ? index + 1 : index - 1;\n\tif (!options.loop && (newIndex < 0 || newIndex >= elements.length)) return null;\n\tconst adjustedNewIndex = (newIndex + elements.length) % elements.length;\n\tconst candidate = elements[adjustedNewIndex];\n\tif (!candidate) return null;\n\tconst isDisabled = candidate.hasAttribute(\"disabled\") && candidate.getAttribute(\"disabled\") !== \"false\";\n\tif (isDisabled) return findNextFocusableElement(elements, candidate, options, iterations);\n\treturn candidate;\n}\n\n//#endregion\nexport { useArrowNavigation };\n//# sourceMappingURL=useArrowNavigation.js.map","import { createContext } from \"../shared/createContext.js\";\nimport { useDirection } from \"../shared/useDirection.js\";\nimport { useForwardExpose } from \"../shared/useForwardExpose.js\";\nimport { Primitive } from \"../Primitive/Primitive.js\";\nimport { VisuallyHiddenInput_default } from \"../VisuallyHidden/VisuallyHiddenInput.js\";\nimport { computed, createBlock, createVNode, defineComponent, mergeProps, openBlock, ref, renderSlot, toRefs, unref, watch, withCtx } from \"vue\";\nimport { useVModel } from \"@vueuse/core\";\n\n//#region src/PinInput/PinInputRoot.vue?vue&type=script&setup=true&lang.ts\nconst [injectPinInputRootContext, providePinInputRootContext] = createContext(\"PinInputRoot\");\nvar PinInputRoot_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({\n\tinheritAttrs: false,\n\t__name: \"PinInputRoot\",\n\tprops: {\n\t\tmodelValue: {\n\t\t\ttype: null,\n\t\t\trequired: false\n\t\t},\n\t\tdefaultValue: {\n\t\t\ttype: null,\n\t\t\trequired: false\n\t\t},\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: \"\"\n\t\t},\n\t\tmask: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\totp: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\ttype: {\n\t\t\ttype: null,\n\t\t\trequired: false,\n\t\t\tdefault: \"text\"\n\t\t},\n\t\tdir: {\n\t\t\ttype: String,\n\t\t\trequired: false\n\t\t},\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: false\n\t\t},\n\t\tasChild: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tas: {\n\t\t\ttype: null,\n\t\t\trequired: false\n\t\t},\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: false\n\t\t},\n\t\trequired: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t}\n\t},\n\temits: [\"update:modelValue\", \"complete\"],\n\tsetup(__props, { emit: __emit }) {\n\t\tconst props = __props;\n\t\tconst emits = __emit;\n\t\tconst { mask, otp, placeholder, type, disabled, dir: propDir } = toRefs(props);\n\t\tconst { forwardRef } = useForwardExpose();\n\t\tconst dir = useDirection(propDir);\n\t\tconst modelValue = useVModel(props, \"modelValue\", emits, {\n\t\t\tdefaultValue: props.defaultValue ?? [],\n\t\t\tpassive: true,\n\t\t\tdeep: true\n\t\t});\n\t\tconst currentModelValue = computed(() => Array.isArray(modelValue.value) ? [...modelValue.value] : []);\n\t\tconst inputElements = ref(/* @__PURE__ */ new Set());\n\t\tfunction onInputElementChange(el) {\n\t\t\tinputElements.value.add(el);\n\t\t}\n\t\tconst isNumericMode = computed(() => props.type === \"number\");\n\t\tconst isCompleted = computed(() => {\n\t\t\tconst modelValues = currentModelValue.value.filter((i) => !!i || isNumericMode.value && i === 0);\n\t\t\treturn modelValues.length === inputElements.value.size;\n\t\t});\n\t\twatch(modelValue, () => {\n\t\t\tif (isCompleted.value) emits(\"complete\", modelValue.value);\n\t\t}, { deep: true });\n\t\tprovidePinInputRootContext({\n\t\t\tmodelValue,\n\t\t\tcurrentModelValue,\n\t\t\tmask,\n\t\t\totp,\n\t\t\tplaceholder,\n\t\t\ttype,\n\t\t\tdir,\n\t\t\tdisabled,\n\t\t\tisCompleted,\n\t\t\tinputElements,\n\t\t\tonInputElementChange,\n\t\t\tisNumericMode\n\t\t});\n\t\treturn (_ctx, _cache) => {\n\t\t\treturn openBlock(), createBlock(unref(Primitive), mergeProps(_ctx.$attrs, {\n\t\t\t\tref: unref(forwardRef),\n\t\t\t\tdir: unref(dir),\n\t\t\t\t\"data-complete\": isCompleted.value ? \"\" : void 0,\n\t\t\t\t\"data-disabled\": unref(disabled) ? \"\" : void 0\n\t\t\t}), {\n\t\t\t\tdefault: withCtx(() => [renderSlot(_ctx.$slots, \"default\", { modelValue: unref(modelValue) }), createVNode(VisuallyHiddenInput_default, {\n\t\t\t\t\tid: _ctx.id,\n\t\t\t\t\tas: \"input\",\n\t\t\t\t\tfeature: \"focusable\",\n\t\t\t\t\ttabindex: \"-1\",\n\t\t\t\t\tvalue: currentModelValue.value.join(\"\"),\n\t\t\t\t\tname: _ctx.name ?? \"\",\n\t\t\t\t\tdisabled: unref(disabled),\n\t\t\t\t\trequired: _ctx.required,\n\t\t\t\t\tonFocus: _cache[0] || (_cache[0] = ($event) => Array.from(inputElements.value)?.[0]?.focus())\n\t\t\t\t}, null, 8, [\n\t\t\t\t\t\"id\",\n\t\t\t\t\t\"value\",\n\t\t\t\t\t\"name\",\n\t\t\t\t\t\"disabled\",\n\t\t\t\t\t\"required\"\n\t\t\t\t])]),\n\t\t\t\t_: 3\n\t\t\t}, 16, [\n\t\t\t\t\"dir\",\n\t\t\t\t\"data-complete\",\n\t\t\t\t\"data-disabled\"\n\t\t\t]);\n\t\t};\n\t}\n});\n\n//#endregion\n//#region src/PinInput/PinInputRoot.vue\nvar PinInputRoot_default = PinInputRoot_vue_vue_type_script_setup_true_lang_default;\n\n//#endregion\nexport { PinInputRoot_default, injectPinInputRootContext };\n//# sourceMappingURL=PinInputRoot.js.map","import { getActiveElement } from \"../shared/getActiveElement.js\";\nimport { useArrowNavigation } from \"../shared/useArrowNavigation.js\";\nimport { Primitive } from \"../Primitive/Primitive.js\";\nimport { usePrimitiveElement } from \"../Primitive/usePrimitiveElement.js\";\nimport { injectPinInputRootContext } from \"./PinInputRoot.js\";\nimport { computed, createBlock, defineComponent, nextTick, onMounted, onUnmounted, openBlock, renderSlot, unref, watch, withCtx, withKeys } from \"vue\";\n\n//#region src/PinInput/PinInputInput.vue?vue&type=script&setup=true&lang.ts\nvar PinInputInput_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({\n\t__name: \"PinInputInput\",\n\tprops: {\n\t\tindex: {\n\t\t\ttype: Number,\n\t\t\trequired: true\n\t\t},\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tasChild: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tas: {\n\t\t\ttype: null,\n\t\t\trequired: false,\n\t\t\tdefault: \"input\"\n\t\t}\n\t},\n\tsetup(__props) {\n\t\tconst props = __props;\n\t\tconst context = injectPinInputRootContext();\n\t\tconst inputElements = computed(() => Array.from(context.inputElements.value));\n\t\tconst currentValue = computed(() => context.currentModelValue.value[props.index]);\n\t\tconst disabled = computed(() => props.disabled || context.disabled.value);\n\t\tconst isOtpMode = computed(() => context.otp.value);\n\t\tconst isPasswordMode = computed(() => context.mask.value);\n\t\tconst { primitiveElement, currentElement } = usePrimitiveElement();\n\t\tfunction handleInput(event) {\n\t\t\tconst target = event.target;\n\t\t\tif ((event.data?.length ?? 0) > 1) {\n\t\t\t\thandleMultipleCharacter(target.value);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (context.isNumericMode.value && !/^\\d*$/.test(target.value)) {\n\t\t\t\ttarget.value = target.value.replace(/\\D/g, \"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttarget.value = event.data || target.value.slice(-1);\n\t\t\tupdateModelValueAt(props.index, target.value);\n\t\t\tconst nextEl = inputElements.value[props.index + 1];\n\t\t\tif (nextEl) nextEl.focus();\n\t\t}\n\t\tfunction updatePlaceholder() {\n\t\t\tnextTick(() => {\n\t\t\t\tconst target = currentElement.value;\n\t\t\t\tif (!target) return;\n\t\t\t\tif (!target.value && target === getActiveElement()) target.placeholder = \"\";\n\t\t\t\telse target.placeholder = context.placeholder.value;\n\t\t\t});\n\t\t}\n\t\tfunction handleKeydown(event) {\n\t\t\tuseArrowNavigation(event, getActiveElement(), void 0, {\n\t\t\t\titemsArray: inputElements.value,\n\t\t\t\tfocus: true,\n\t\t\t\tloop: false,\n\t\t\t\tarrowKeyOptions: \"horizontal\",\n\t\t\t\tdir: context.dir.value\n\t\t\t});\n\t\t}\n\t\tfunction handleBackspace(event) {\n\t\t\tevent.preventDefault();\n\t\t\tconst target = event.target;\n\t\t\tconst value = target.value;\n\t\t\tif (value) updateModelValueAt(props.index, \"\");\n\t\t\telse {\n\t\t\t\tconst prevEl = inputElements.value[props.index - 1];\n\t\t\t\tif (prevEl) {\n\t\t\t\t\tprevEl.focus();\n\t\t\t\t\tupdateModelValueAt(props.index - 1, \"\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfunction handleDelete(event) {\n\t\t\tif (event.key === \"Delete\") {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tupdateModelValueAt(props.index, \"\");\n\t\t\t}\n\t\t}\n\t\tfunction handleFocus(event) {\n\t\t\tif (context.otp.value) {\n\t\t\t\tconst firstEmptyInputIdx = inputElements.value.findIndex((_, idx) => context.currentModelValue.value[idx] === \"\" || context.currentModelValue.value[idx] === void 0);\n\t\t\t\tif (firstEmptyInputIdx !== -1 && firstEmptyInputIdx < props.index) {\n\t\t\t\t\tinputElements.value[firstEmptyInputIdx].focus();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst target = event.target;\n\t\t\ttarget.setSelectionRange(1, 1);\n\t\t\tupdatePlaceholder();\n\t\t}\n\t\tfunction handleBlur(event) {\n\t\t\tupdatePlaceholder();\n\t\t}\n\t\tfunction handlePaste(event) {\n\t\t\tevent.preventDefault();\n\t\t\tconst clipboardData = event.clipboardData;\n\t\t\tif (!clipboardData) return;\n\t\t\tconst values = clipboardData.getData(\"text\");\n\t\t\thandleMultipleCharacter(values);\n\t\t}\n\t\tfunction handleMultipleCharacter(values) {\n\t\t\tconst tempModelValue = [...context.currentModelValue.value];\n\t\t\tconst initialIndex = values.length >= inputElements.value.length ? 0 : props.index;\n\t\t\tconst lastIndex = Math.min(initialIndex + values.length, inputElements.value.length);\n\t\t\tfor (let i = initialIndex; i < lastIndex; i++) {\n\t\t\t\tconst input = inputElements.value[i];\n\t\t\t\tconst value = values[i - initialIndex];\n\t\t\t\tif (context.isNumericMode.value && !/^\\d*$/.test(value)) continue;\n\t\t\t\ttempModelValue[i] = value;\n\t\t\t\tinput.focus();\n\t\t\t}\n\t\t\tcontext.modelValue.value = tempModelValue;\n\t\t\tinputElements.value[lastIndex]?.focus();\n\t\t}\n\t\tfunction removeTrailingEmptyStrings(input) {\n\t\t\tlet i = input.length - 1;\n\t\t\twhile (i >= 0 && input[i] === \"\") {\n\t\t\t\tinput.pop();\n\t\t\t\ti--;\n\t\t\t}\n\t\t\treturn input;\n\t\t}\n\t\tfunction updateModelValueAt(index, value) {\n\t\t\tconst tempModelValue = [...context.currentModelValue.value];\n\t\t\tif (context.isNumericMode.value) {\n\t\t\t\tconst num = +value;\n\t\t\t\tif (value === \"\" || isNaN(num)) delete tempModelValue[index];\n\t\t\t\telse tempModelValue[index] = num;\n\t\t\t} else tempModelValue[index] = value;\n\t\t\tcontext.modelValue.value = removeTrailingEmptyStrings(tempModelValue);\n\t\t}\n\t\twatch(currentValue, updatePlaceholder);\n\t\tonMounted(() => {\n\t\t\tcontext.onInputElementChange(currentElement.value);\n\t\t});\n\t\tonUnmounted(() => {\n\t\t\tcontext.inputElements?.value.delete(currentElement.value);\n\t\t});\n\t\treturn (_ctx, _cache) => {\n\t\t\treturn openBlock(), createBlock(unref(Primitive), {\n\t\t\t\tref_key: \"primitiveElement\",\n\t\t\t\tref: primitiveElement,\n\t\t\t\tautocapitalize: \"none\",\n\t\t\t\tas: _ctx.as,\n\t\t\t\t\"as-child\": _ctx.asChild,\n\t\t\t\tautocomplete: isOtpMode.value ? \"one-time-code\" : \"false\",\n\t\t\t\ttype: isPasswordMode.value ? \"password\" : \"text\",\n\t\t\t\tinputmode: unref(context).isNumericMode.value ? \"numeric\" : \"text\",\n\t\t\t\tpattern: unref(context).isNumericMode.value ? \"[0-9]*\" : void 0,\n\t\t\t\tplaceholder: unref(context).placeholder.value,\n\t\t\t\tvalue: currentValue.value,\n\t\t\t\tdisabled: disabled.value,\n\t\t\t\t\"data-disabled\": disabled.value ? \"\" : void 0,\n\t\t\t\t\"data-complete\": unref(context).isCompleted.value ? \"\" : void 0,\n\t\t\t\t\"aria-label\": `pin input ${_ctx.index + 1} of ${inputElements.value.length}`,\n\t\t\t\tonInput: _cache[0] || (_cache[0] = ($event) => handleInput($event)),\n\t\t\t\tonKeydown: [\n\t\t\t\t\twithKeys(handleKeydown, [\n\t\t\t\t\t\t\"left\",\n\t\t\t\t\t\t\"right\",\n\t\t\t\t\t\t\"up\",\n\t\t\t\t\t\t\"down\",\n\t\t\t\t\t\t\"home\",\n\t\t\t\t\t\t\"end\"\n\t\t\t\t\t]),\n\t\t\t\t\twithKeys(handleBackspace, [\"backspace\"]),\n\t\t\t\t\twithKeys(handleDelete, [\"delete\"])\n\t\t\t\t],\n\t\t\t\tonFocus: handleFocus,\n\t\t\t\tonBlur: handleBlur,\n\t\t\t\tonPaste: handlePaste\n\t\t\t}, {\n\t\t\t\tdefault: withCtx(() => [renderSlot(_ctx.$slots, \"default\")]),\n\t\t\t\t_: 3\n\t\t\t}, 8, [\n\t\t\t\t\"as\",\n\t\t\t\t\"as-child\",\n\t\t\t\t\"autocomplete\",\n\t\t\t\t\"type\",\n\t\t\t\t\"inputmode\",\n\t\t\t\t\"pattern\",\n\t\t\t\t\"placeholder\",\n\t\t\t\t\"value\",\n\t\t\t\t\"disabled\",\n\t\t\t\t\"data-disabled\",\n\t\t\t\t\"data-complete\",\n\t\t\t\t\"aria-label\"\n\t\t\t]);\n\t\t};\n\t}\n});\n\n//#endregion\n//#region src/PinInput/PinInputInput.vue\nvar PinInputInput_default = PinInputInput_vue_vue_type_script_setup_true_lang_default;\n\n//#endregion\nexport { PinInputInput_default };\n//# sourceMappingURL=PinInputInput.js.map","<template>\n <PinInputRoot\n :id=\"computedId\"\n v-model=\"modelValue\"\n :class=\"rootClasses\"\n :disabled=\"props.disabled\"\n :dir=\"props.dir\"\n :mask=\"props.mask\"\n :name=\"props.name\"\n :otp=\"props.otp\"\n :placeholder=\"props.placeholder\"\n :required=\"props.required\"\n :type=\"props.type\"\n @complete=\"emit('complete', $event)\"\n >\n <PinInputInput\n v-for=\"(_, i) in computedLength\"\n :key=\"i\"\n :index=\"i\"\n :disabled=\"props.disabled\"\n as-child\n >\n <BFormInput\n class=\"b-form-otp-field\"\n :aria-label=\"`${props.ariaLabel || 'Pin'} ${i + 1} of ${computedLength}`\"\n :aria-invalid=\"props.ariaInvalid\"\n :autofocus=\"props.autofocus && i === 0\"\n :disabled=\"props.disabled\"\n :form=\"props.form\"\n :plaintext=\"props.plaintext\"\n :readonly=\"props.readonly\"\n :size=\"props.size\"\n :state=\"props.state\"\n />\n </PinInputInput>\n </PinInputRoot>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed} from 'vue'\nimport {useToNumber} from '@vueuse/core'\nimport {PinInputInput, PinInputRoot} from 'reka-ui'\nimport type {BFormOtpProps} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport BFormInput from '../BFormInput/BFormInput.vue'\n\nconst lengthDefault = 6\nconst _props = withDefaults(defineProps<Omit<BFormOtpProps, 'modelValue'>>(), {\n ariaInvalid: undefined,\n ariaLabel: undefined,\n autofocus: false,\n dir: undefined,\n disabled: false,\n form: undefined,\n id: undefined,\n length: lengthDefault,\n mask: false,\n name: undefined,\n otp: false,\n placeholder: '',\n plaintext: false,\n readonly: false,\n required: false,\n size: undefined,\n state: null,\n type: 'text',\n})\nconst props = useDefaults(_props, 'BFormOtp')\nconst emit = defineEmits<{\n complete: [value: string[]]\n}>()\n\nconst modelValue = defineModel<BFormOtpProps['modelValue']>({default: () => []})\n\nconst computedId = useId(() => props.id)\nconst lengthNumber = useToNumber(() => props.length, {nanToZero: true, method: 'parseInt'})\nconst computedLength = computed(() => (lengthNumber.value > 0 ? lengthNumber.value : lengthDefault))\n\nconst rootClasses = computed(() => [\n 'b-form-otp',\n 'd-flex',\n 'gap-2',\n 'align-items-center',\n {\n [`b-form-otp-${props.size}`]: !!props.size,\n },\n])\n</script>\n","<template>\n <PinInputRoot\n :id=\"computedId\"\n v-model=\"modelValue\"\n :class=\"rootClasses\"\n :disabled=\"props.disabled\"\n :dir=\"props.dir\"\n :mask=\"props.mask\"\n :name=\"props.name\"\n :otp=\"props.otp\"\n :placeholder=\"props.placeholder\"\n :required=\"props.required\"\n :type=\"props.type\"\n @complete=\"emit('complete', $event)\"\n >\n <PinInputInput\n v-for=\"(_, i) in computedLength\"\n :key=\"i\"\n :index=\"i\"\n :disabled=\"props.disabled\"\n as-child\n >\n <BFormInput\n class=\"b-form-otp-field\"\n :aria-label=\"`${props.ariaLabel || 'Pin'} ${i + 1} of ${computedLength}`\"\n :aria-invalid=\"props.ariaInvalid\"\n :autofocus=\"props.autofocus && i === 0\"\n :disabled=\"props.disabled\"\n :form=\"props.form\"\n :plaintext=\"props.plaintext\"\n :readonly=\"props.readonly\"\n :size=\"props.size\"\n :state=\"props.state\"\n />\n </PinInputInput>\n </PinInputRoot>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed} from 'vue'\nimport {useToNumber} from '@vueuse/core'\nimport {PinInputInput, PinInputRoot} from 'reka-ui'\nimport type {BFormOtpProps} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport BFormInput from '../BFormInput/BFormInput.vue'\n\nconst lengthDefault = 6\nconst _props = withDefaults(defineProps<Omit<BFormOtpProps, 'modelValue'>>(), {\n ariaInvalid: undefined,\n ariaLabel: undefined,\n autofocus: false,\n dir: undefined,\n disabled: false,\n form: undefined,\n id: undefined,\n length: lengthDefault,\n mask: false,\n name: undefined,\n otp: false,\n placeholder: '',\n plaintext: false,\n readonly: false,\n required: false,\n size: undefined,\n state: null,\n type: 'text',\n})\nconst props = useDefaults(_props, 'BFormOtp')\nconst emit = defineEmits<{\n complete: [value: string[]]\n}>()\n\nconst modelValue = defineModel<BFormOtpProps['modelValue']>({default: () => []})\n\nconst computedId = useId(() => props.id)\nconst lengthNumber = useToNumber(() => props.length, {nanToZero: true, method: 'parseInt'})\nconst computedLength = computed(() => (lengthNumber.value > 0 ? lengthNumber.value : lengthDefault))\n\nconst rootClasses = computed(() => [\n 'b-form-otp',\n 'd-flex',\n 'gap-2',\n 'align-items-center',\n {\n [`b-form-otp-${props.size}`]: !!props.size,\n },\n])\n</script>\n"],"x_google_ignoreList":[0,1,2],"mappings":"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"}
@@ -4,7 +4,7 @@ import { t as useDefaults } from "./useDefaults-BKgBaqOV.mjs";
4
4
  import { t as useId$1 } from "./useId-BKZFSYm8.mjs";
5
5
  import { t as useStateClass } from "./useStateClass-CdmlbrGn.mjs";
6
6
  import { t as useAriaInvalid } from "./useAriaInvalid-apOwgexm.mjs";
7
- import { t as useFormSelect } from "./useFormSelect-CANw3ZJG.mjs";
7
+ import { t as useFormSelect } from "./useFormSelect-D3gVO4jJ.mjs";
8
8
  import { t as BFormSelectOption_default } from "./BFormSelectOption-O8cyyv3i.mjs";
9
9
  import { Fragment, computed, createBlock, createElementBlock, createTextVNode, defineComponent, guardReactiveProps, inject, mergeModels, mergeProps, normalizeClass, normalizeProps, openBlock, provide, readonly, renderList, renderSlot, toDisplayString, unref, useModel, useTemplateRef, vModelSelect, withCtx, withDirectives } from "vue";
10
10
  //#region src/components/BFormSelect/BFormSelectOptionGroup.vue?vue&type=script&setup=true&lang.ts
@@ -294,4 +294,4 @@ var BFormSelect_default = /* @__PURE__ */ defineComponent({
294
294
  //#endregion
295
295
  export { BFormSelectOptionGroup_default as n, BFormSelect_default as t };
296
296
 
297
- //# sourceMappingURL=BFormSelect-Dg6OwMl-.mjs.map
297
+ //# sourceMappingURL=BFormSelect-Bb8yE8vz.mjs.map