{"version":3,"file":"BNavbar-DALgesyZ.mjs","names":[],"sources":["../src/composables/useContainerClasses.ts","../src/components/BNavbar/BNavbar.vue","../src/components/BNavbar/BNavbar.vue","../src/components/BNavbar/BNavbarBrand.vue","../src/components/BNavbar/BNavbarBrand.vue","../src/components/BNavbar/BNavbarNav.vue","../src/components/BNavbar/BNavbarNav.vue","../src/components/BNavbar/BNavbarToggle.vue","../src/components/BNavbar/BNavbarToggle.vue"],"sourcesContent":["import type {Breakpoint} from '../types/BreakpointProps'\nimport {computed, type MaybeRefOrGetter, toValue} from 'vue'\n\nexport const useContainerClasses = (value: MaybeRefOrGetter<boolean | Breakpoint | 'fluid'>) =>\n  computed(() => {\n    const resolvedValue = toValue(value)\n    return {\n      container: resolvedValue === true,\n      [`container-${resolvedValue}`]: typeof resolvedValue === 'string',\n    }\n  })\n","<template>\n  <component :is=\"props.tag\" class=\"navbar\" :class=\"computedClasses\" :role=\"computedRole\">\n    <div v-if=\"props.container !== false\" :class=\"containerClass\">\n      <slot />\n    </div>\n    <slot v-else />\n  </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, provide, toRef} from 'vue'\nimport type {BNavbarProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useContainerClasses} from '../../composables/useContainerClasses'\nimport {navbarInjectionKey} from '../../utils/keys'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BNavbarSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BNavbarProps>(), {\n  container: 'fluid',\n  fixed: undefined,\n  noAutoClose: false,\n  print: false,\n  sticky: undefined,\n  tag: 'nav',\n  toggleable: false,\n  variant: null,\n})\nconst props = useDefaults(_props, 'BNavbar')\ndefineSlots<BNavbarSlots>()\n\nconst computedRole = computed(() => (props.tag === 'nav' ? undefined : 'navigation'))\n\nconst containerClass = useContainerClasses(() => props.container)\n\nconst colorClasses = useColorVariantClasses(\n  computed(() => ({\n    bgVariant: props.variant,\n  }))\n)\nconst computedClasses = computed(() => [\n  colorClasses.value,\n  {\n    'd-print': props.print,\n    [`sticky-${props.sticky}`]: props.sticky !== undefined,\n    [`fixed-${props.fixed}`]: props.fixed !== undefined,\n    'navbar-expand': props.toggleable === false,\n    [`navbar-expand-${props.toggleable}`]: typeof props.toggleable === 'string',\n  },\n])\n\nprovide(navbarInjectionKey, {\n  tag: toRef(() => props.tag),\n  noAutoClose: toRef(() => props.noAutoClose),\n})\n</script>\n","<template>\n  <component :is=\"props.tag\" class=\"navbar\" :class=\"computedClasses\" :role=\"computedRole\">\n    <div v-if=\"props.container !== false\" :class=\"containerClass\">\n      <slot />\n    </div>\n    <slot v-else />\n  </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, provide, toRef} from 'vue'\nimport type {BNavbarProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useContainerClasses} from '../../composables/useContainerClasses'\nimport {navbarInjectionKey} from '../../utils/keys'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BNavbarSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BNavbarProps>(), {\n  container: 'fluid',\n  fixed: undefined,\n  noAutoClose: false,\n  print: false,\n  sticky: undefined,\n  tag: 'nav',\n  toggleable: false,\n  variant: null,\n})\nconst props = useDefaults(_props, 'BNavbar')\ndefineSlots<BNavbarSlots>()\n\nconst computedRole = computed(() => (props.tag === 'nav' ? undefined : 'navigation'))\n\nconst containerClass = useContainerClasses(() => props.container)\n\nconst colorClasses = useColorVariantClasses(\n  computed(() => ({\n    bgVariant: props.variant,\n  }))\n)\nconst computedClasses = computed(() => [\n  colorClasses.value,\n  {\n    'd-print': props.print,\n    [`sticky-${props.sticky}`]: props.sticky !== undefined,\n    [`fixed-${props.fixed}`]: props.fixed !== undefined,\n    'navbar-expand': props.toggleable === false,\n    [`navbar-expand-${props.toggleable}`]: typeof props.toggleable === 'string',\n  },\n])\n\nprovide(navbarInjectionKey, {\n  tag: toRef(() => props.tag),\n  noAutoClose: toRef(() => props.noAutoClose),\n})\n</script>\n","<template>\n  <component :is=\"computedTag\" class=\"navbar-brand\" v-bind=\"computedLinkProps\">\n    <slot />\n  </component>\n</template>\n\n<script setup lang=\"ts\">\nimport BLink from '../BLink/BLink.vue'\nimport type {BNavbarBrandProps} from '../../types/ComponentProps'\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {computed} from 'vue'\nimport type {BNavbarBrandSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BNavbarBrandProps>(), {\n  tag: 'div',\n  // Link props\n  active: undefined,\n  activeClass: undefined,\n  disabled: undefined,\n  exactActiveClass: undefined,\n  href: undefined,\n  stretched: false,\n  icon: undefined,\n  opacity: undefined,\n  opacityHover: undefined,\n  rel: undefined,\n  replace: undefined,\n  routerComponentName: undefined,\n  target: undefined,\n  to: undefined,\n  underlineOffset: undefined,\n  underlineOffsetHover: undefined,\n  underlineOpacity: undefined,\n  underlineOpacityHover: undefined,\n  underlineVariant: undefined,\n  variant: undefined,\n  // End link props\n})\nconst props = useDefaults(_props, 'BNavbarBrand')\ndefineSlots<BNavbarBrandSlots>()\n\nconst {computedLink, computedLinkProps} = useBLinkHelper(props)\n\nconst computedTag = computed(() => (computedLink.value ? BLink : props.tag))\n</script>\n","<template>\n  <component :is=\"computedTag\" class=\"navbar-brand\" v-bind=\"computedLinkProps\">\n    <slot />\n  </component>\n</template>\n\n<script setup lang=\"ts\">\nimport BLink from '../BLink/BLink.vue'\nimport type {BNavbarBrandProps} from '../../types/ComponentProps'\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {computed} from 'vue'\nimport type {BNavbarBrandSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BNavbarBrandProps>(), {\n  tag: 'div',\n  // Link props\n  active: undefined,\n  activeClass: undefined,\n  disabled: undefined,\n  exactActiveClass: undefined,\n  href: undefined,\n  stretched: false,\n  icon: undefined,\n  opacity: undefined,\n  opacityHover: undefined,\n  rel: undefined,\n  replace: undefined,\n  routerComponentName: undefined,\n  target: undefined,\n  to: undefined,\n  underlineOffset: undefined,\n  underlineOffsetHover: undefined,\n  underlineOpacity: undefined,\n  underlineOpacityHover: undefined,\n  underlineVariant: undefined,\n  variant: undefined,\n  // End link props\n})\nconst props = useDefaults(_props, 'BNavbarBrand')\ndefineSlots<BNavbarBrandSlots>()\n\nconst {computedLink, computedLinkProps} = useBLinkHelper(props)\n\nconst computedTag = computed(() => (computedLink.value ? BLink : props.tag))\n</script>\n","<template>\n  <ul class=\"navbar-nav\" :class=\"computedClasses\">\n    <slot />\n  </ul>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BNavbarNavProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport {useAlignment} from '../../composables/useAlignment'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BNavbarNavSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BNavbarNavProps>(), {\n  align: undefined,\n  fill: false,\n  justified: false,\n  small: false,\n  tag: 'ul',\n})\nconst props = useDefaults(_props, 'BNavbarNav')\ndefineSlots<BNavbarNavSlots>()\n\nconst alignment = useAlignment(() => props.align)\n\nconst computedClasses = computed(() => ({\n  'nav-fill': props.fill,\n  'nav-justified': props.justified,\n  [alignment.value]: props.align !== undefined,\n  'small': props.small,\n}))\n</script>\n","<template>\n  <ul class=\"navbar-nav\" :class=\"computedClasses\">\n    <slot />\n  </ul>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BNavbarNavProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport {useAlignment} from '../../composables/useAlignment'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BNavbarNavSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BNavbarNavProps>(), {\n  align: undefined,\n  fill: false,\n  justified: false,\n  small: false,\n  tag: 'ul',\n})\nconst props = useDefaults(_props, 'BNavbarNav')\ndefineSlots<BNavbarNavSlots>()\n\nconst alignment = useAlignment(() => props.align)\n\nconst computedClasses = computed(() => ({\n  'nav-fill': props.fill,\n  'nav-justified': props.justified,\n  [alignment.value]: props.align !== undefined,\n  'small': props.small,\n}))\n</script>\n","<template>\n  <button\n    class=\"navbar-toggler\"\n    type=\"button\"\n    :class=\"computedClasses\"\n    :disabled=\"props.disabled\"\n    :aria-label=\"props.label\"\n    @click=\"onClick\"\n  >\n    <slot :expanded=\"collapseExpanded\">\n      <span class=\"navbar-toggler-icon\" />\n    </slot>\n  </button>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BNavbarToggleProps} from '../../types/ComponentProps'\nimport {computed, inject} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {showHideRegistryKey} from '../../utils/keys'\nimport {getActiveShowHide, getShowHideValue} from '../../utils/registryAccess'\nimport type {BNavbarToggleEmits, BNavbarToggleSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BNavbarToggleProps>(), {\n  label: 'Toggle navigation',\n  disabled: false,\n  target: undefined,\n})\nconst props = useDefaults(_props, 'BNavbarToggle')\nconst emit = defineEmits<BNavbarToggleEmits>()\ndefineSlots<BNavbarToggleSlots>()\n\nconst computedClasses = computed(() => ({\n  disabled: props.disabled,\n}))\n\nconst showHideData = inject(showHideRegistryKey, null)\n\nconst collapseExpanded = computed(() => {\n  if (!props.target || !showHideData) return false\n  if (typeof props.target === 'string') {\n    return getShowHideValue(showHideData.values, props.target)\n  }\n  return props.target.some((target) => getShowHideValue(showHideData.values, target))\n})\nconst toggleExpand = () => {\n  if (!props.target || !showHideData) return\n  if (typeof props.target === 'string') {\n    getActiveShowHide(showHideData.values, props.target)?.toggle()\n    return\n  }\n  props.target.forEach((target) => {\n    getActiveShowHide(showHideData.values, target)?.toggle()\n  })\n}\n\nconst onClick = (e: Readonly<MouseEvent>): void => {\n  if (!props.disabled) {\n    emit('click', e)\n    toggleExpand()\n  }\n}\n</script>\n","<template>\n  <button\n    class=\"navbar-toggler\"\n    type=\"button\"\n    :class=\"computedClasses\"\n    :disabled=\"props.disabled\"\n    :aria-label=\"props.label\"\n    @click=\"onClick\"\n  >\n    <slot :expanded=\"collapseExpanded\">\n      <span class=\"navbar-toggler-icon\" />\n    </slot>\n  </button>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BNavbarToggleProps} from '../../types/ComponentProps'\nimport {computed, inject} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {showHideRegistryKey} from '../../utils/keys'\nimport {getActiveShowHide, getShowHideValue} from '../../utils/registryAccess'\nimport type {BNavbarToggleEmits, BNavbarToggleSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BNavbarToggleProps>(), {\n  label: 'Toggle navigation',\n  disabled: false,\n  target: undefined,\n})\nconst props = useDefaults(_props, 'BNavbarToggle')\nconst emit = defineEmits<BNavbarToggleEmits>()\ndefineSlots<BNavbarToggleSlots>()\n\nconst computedClasses = computed(() => ({\n  disabled: props.disabled,\n}))\n\nconst showHideData = inject(showHideRegistryKey, null)\n\nconst collapseExpanded = computed(() => {\n  if (!props.target || !showHideData) return false\n  if (typeof props.target === 'string') {\n    return getShowHideValue(showHideData.values, props.target)\n  }\n  return props.target.some((target) => getShowHideValue(showHideData.values, target))\n})\nconst toggleExpand = () => {\n  if (!props.target || !showHideData) return\n  if (typeof props.target === 'string') {\n    getActiveShowHide(showHideData.values, props.target)?.toggle()\n    return\n  }\n  props.target.forEach((target) => {\n    getActiveShowHide(showHideData.values, target)?.toggle()\n  })\n}\n\nconst onClick = (e: Readonly<MouseEvent>): void => {\n  if (!props.disabled) {\n    emit('click', e)\n    toggleExpand()\n  }\n}\n</script>\n"],"mappings":"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"}