bootstrap-vue-next 0.44.6 → 0.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/dist/{BAlert-BnT7fF6B.js → BAlert-CHbgLTZH.js} +2 -2
  2. package/dist/{BAlert-BnT7fF6B.js.map → BAlert-CHbgLTZH.js.map} +1 -1
  3. package/dist/{BAlert-Qiyqq4rE.mjs → BAlert-CRRUJXYi.mjs} +2 -2
  4. package/dist/{BAlert-Qiyqq4rE.mjs.map → BAlert-CRRUJXYi.mjs.map} +1 -1
  5. package/dist/{BAutocomplete-jAlZC6_t.js → BAutocomplete-4CFl6XQR.js} +3 -3
  6. package/dist/{BAutocomplete-jAlZC6_t.js.map → BAutocomplete-4CFl6XQR.js.map} +1 -1
  7. package/dist/{BAutocomplete-QBIaWPY1.mjs → BAutocomplete-B7yzKPIp.mjs} +3 -3
  8. package/dist/{BAutocomplete-QBIaWPY1.mjs.map → BAutocomplete-B7yzKPIp.mjs.map} +1 -1
  9. package/dist/{BAvatar-lefHkDuG.js → BAvatar-BHqTW5Ll.js} +1 -2
  10. package/dist/BAvatar-BHqTW5Ll.js.map +1 -0
  11. package/dist/{BAvatar-D7aFEXLH.mjs → BAvatar-BSLk69M0.mjs} +1 -2
  12. package/dist/BAvatar-BSLk69M0.mjs.map +1 -0
  13. package/dist/{BButton-kykTWnBy.js → BButton-BUYwco3v.js} +4 -4
  14. package/dist/BButton-BUYwco3v.js.map +1 -0
  15. package/dist/{BButton-DBRs8Pz_.js → BButton-Bw4HgpsF.js} +10 -13
  16. package/dist/BButton-Bw4HgpsF.js.map +1 -0
  17. package/dist/{BButton-BRvIFnRm.mjs → BButton-CDo9SRvU.mjs} +10 -13
  18. package/dist/BButton-CDo9SRvU.mjs.map +1 -0
  19. package/dist/{BButton-DNmtqoqR.mjs → BButton-DgequxLk.mjs} +4 -4
  20. package/dist/BButton-DgequxLk.mjs.map +1 -0
  21. package/dist/{BCarousel-Be7z13f9.js → BCarousel-BgT74ryc.js} +87 -87
  22. package/dist/BCarousel-BgT74ryc.js.map +1 -0
  23. package/dist/{BCarousel-D81alfFC.mjs → BCarousel-D9Yei1Q4.mjs} +88 -88
  24. package/dist/BCarousel-D9Yei1Q4.mjs.map +1 -0
  25. package/dist/{BDropdown-C1AxRj81.js → BDropdown-BxciLgyt.js} +15 -16
  26. package/dist/BDropdown-BxciLgyt.js.map +1 -0
  27. package/dist/{BDropdown-BW_O8vPQ.mjs → BDropdown-CRIh9xqy.mjs} +2 -2
  28. package/dist/{BDropdown-BW_O8vPQ.mjs.map → BDropdown-CRIh9xqy.mjs.map} +1 -1
  29. package/dist/{BDropdown-DAHnN54Z.mjs → BDropdown-D2pBrZsG.mjs} +15 -16
  30. package/dist/BDropdown-D2pBrZsG.mjs.map +1 -0
  31. package/dist/{BDropdown-CuVOxCzu.js → BDropdown-DgbFCKfP.js} +2 -2
  32. package/dist/{BDropdown-CuVOxCzu.js.map → BDropdown-DgbFCKfP.js.map} +1 -1
  33. package/dist/{BFormCheckbox-Bdk2rgVe.js → BFormCheckbox-BPQxUDQG.js} +5 -5
  34. package/dist/BFormCheckbox-BPQxUDQG.js.map +1 -0
  35. package/dist/{BFormCheckbox-CcDK-lh1.mjs → BFormCheckbox-DPNPjRKN.mjs} +5 -5
  36. package/dist/BFormCheckbox-DPNPjRKN.mjs.map +1 -0
  37. package/dist/{BFormRadio-DuVYw-Vs.js → BFormRadio-BZ0etDxl.js} +5 -5
  38. package/dist/BFormRadio-BZ0etDxl.js.map +1 -0
  39. package/dist/{BFormRadio-CRDbgMiR.mjs → BFormRadio-CqYd0bLV.mjs} +5 -5
  40. package/dist/BFormRadio-CqYd0bLV.mjs.map +1 -0
  41. package/dist/{BFormSelect-DIKVsG--.js → BFormSelect-B_mbfTMC.js} +5 -5
  42. package/dist/BFormSelect-B_mbfTMC.js.map +1 -0
  43. package/dist/{BFormSelect-Bb8yE8vz.mjs → BFormSelect-CpkJ1haI.mjs} +5 -5
  44. package/dist/BFormSelect-CpkJ1haI.mjs.map +1 -0
  45. package/dist/{BFormTags-BFA6xbr3.js → BFormTags-DJzXJp7d.js} +3 -3
  46. package/dist/BFormTags-DJzXJp7d.js.map +1 -0
  47. package/dist/{BFormTags-CJb4H67g.mjs → BFormTags-DWAWX2av.mjs} +3 -3
  48. package/dist/BFormTags-DWAWX2av.mjs.map +1 -0
  49. package/dist/{BInputGroup-BScMw6Zr.js → BInputGroup-Bfcs5h_Q.js} +2 -2
  50. package/dist/{BInputGroup-BScMw6Zr.js.map → BInputGroup-Bfcs5h_Q.js.map} +1 -1
  51. package/dist/{BInputGroup-DpX10xwR.mjs → BInputGroup-C5sxenhE.mjs} +3 -3
  52. package/dist/BInputGroup-C5sxenhE.mjs.map +1 -0
  53. package/dist/{BInputGroup-Duk6Jk0v.js → BInputGroup-DTP5Vf1f.js} +3 -3
  54. package/dist/BInputGroup-DTP5Vf1f.js.map +1 -0
  55. package/dist/{BInputGroup-C7k0tS9j.mjs → BInputGroup-Dl9AgpAx.mjs} +2 -2
  56. package/dist/{BInputGroup-C7k0tS9j.mjs.map → BInputGroup-Dl9AgpAx.mjs.map} +1 -1
  57. package/dist/{BModal-D0LB339D.js → BModal-BnHYbFuj.js} +5 -5
  58. package/dist/BModal-BnHYbFuj.js.map +1 -0
  59. package/dist/{BModal-Br5xLT0-.mjs → BModal-CAjLrkBp.mjs} +5 -5
  60. package/dist/BModal-CAjLrkBp.mjs.map +1 -0
  61. package/dist/{BNav-BRjdHsjC.mjs → BNav-BdO2N7G0.mjs} +4 -3
  62. package/dist/{BNav-BRjdHsjC.mjs.map → BNav-BdO2N7G0.mjs.map} +1 -1
  63. package/dist/{BNav-tYBwz1wU.js → BNav-MjroX-Jl.js} +4 -3
  64. package/dist/{BNav-tYBwz1wU.js.map → BNav-MjroX-Jl.js.map} +1 -1
  65. package/dist/{BOffcanvas-D33pEfZe.js → BOffcanvas-ColOuYdV.js} +2 -2
  66. package/dist/{BOffcanvas-D33pEfZe.js.map → BOffcanvas-ColOuYdV.js.map} +1 -1
  67. package/dist/{BOffcanvas-jETHbtC3.mjs → BOffcanvas-DmkJSSFy.mjs} +2 -2
  68. package/dist/{BOffcanvas-jETHbtC3.mjs.map → BOffcanvas-DmkJSSFy.mjs.map} +1 -1
  69. package/dist/{BPlaceholder-C4AOg29f.mjs → BPlaceholder-DKDtjMjy.mjs} +9 -9
  70. package/dist/BPlaceholder-DKDtjMjy.mjs.map +1 -0
  71. package/dist/{BPlaceholder-DYYYuNgR.js → BPlaceholder-n447tOzJ.js} +9 -9
  72. package/dist/BPlaceholder-n447tOzJ.js.map +1 -0
  73. package/dist/{BToast-DCSZYXIi.js → BToast-BFcT76M1.js} +2 -2
  74. package/dist/{BToast-DCSZYXIi.js.map → BToast-BFcT76M1.js.map} +1 -1
  75. package/dist/{BToast-B2rFKhLD.mjs → BToast-D5XkJqF4.mjs} +2 -2
  76. package/dist/{BToast-B2rFKhLD.mjs.map → BToast-D5XkJqF4.mjs.map} +1 -1
  77. package/dist/{BTooltip-CryTO-SM.js → BTooltip-BwiqjqX-.js} +2 -2
  78. package/dist/{BTooltip-CryTO-SM.js.map → BTooltip-BwiqjqX-.js.map} +1 -1
  79. package/dist/{BTooltip-DtpjIEBu.mjs → BTooltip-DohT1Q3C.mjs} +2 -2
  80. package/dist/{BTooltip-DtpjIEBu.mjs.map → BTooltip-DohT1Q3C.mjs.map} +1 -1
  81. package/dist/bootstrap-vue-next.mjs +21 -21
  82. package/dist/bootstrap-vue-next.umd.js +21 -21
  83. package/dist/components/BCarousel/BCarousel.vue.d.mts +4 -4
  84. package/dist/components/BCarousel/BCarousel.vue.d.ts +4 -4
  85. package/dist/components/BContainer/BCol.vue.d.mts +1 -1
  86. package/dist/components/BContainer/BCol.vue.d.ts +1 -1
  87. package/dist/components/BDropdown/BDropdown.vue.d.mts +1 -0
  88. package/dist/components/BDropdown/BDropdown.vue.d.ts +1 -0
  89. package/dist/components/BNav/BNavItemDropdown.vue.d.mts +13 -2
  90. package/dist/components/BNav/BNavItemDropdown.vue.d.ts +13 -2
  91. package/dist/{floatingUi-DHMrP__c.mjs → floatingUi-BAUk171g.mjs} +10 -2
  92. package/dist/{floatingUi-DHMrP__c.mjs.map → floatingUi-BAUk171g.mjs.map} +1 -1
  93. package/dist/{floatingUi-Cs4rDXmO.js → floatingUi-DBLN9xLH.js} +15 -1
  94. package/dist/{floatingUi-Cs4rDXmO.js.map → floatingUi-DBLN9xLH.js.map} +1 -1
  95. package/dist/keys-CQKrwmvN.mjs.map +1 -1
  96. package/dist/keys-durSVUrO.js.map +1 -1
  97. package/dist/src/components/BAlert/index.mjs +1 -1
  98. package/dist/src/components/BAlert/index.umd.js +1 -1
  99. package/dist/src/components/BAutocomplete/index.mjs +1 -1
  100. package/dist/src/components/BAutocomplete/index.umd.js +1 -1
  101. package/dist/src/components/BAvatar/index.mjs +1 -1
  102. package/dist/src/components/BAvatar/index.umd.js +1 -1
  103. package/dist/src/components/BButton/index.mjs +2 -2
  104. package/dist/src/components/BButton/index.umd.js +2 -2
  105. package/dist/src/components/BCarousel/index.mjs +1 -1
  106. package/dist/src/components/BCarousel/index.umd.js +1 -1
  107. package/dist/src/components/BDropdown/index.mjs +2 -2
  108. package/dist/src/components/BDropdown/index.umd.js +2 -2
  109. package/dist/src/components/BFormCheckbox/index.mjs +1 -1
  110. package/dist/src/components/BFormCheckbox/index.umd.js +1 -1
  111. package/dist/src/components/BFormRadio/index.mjs +1 -1
  112. package/dist/src/components/BFormRadio/index.umd.js +1 -1
  113. package/dist/src/components/BFormSelect/index.mjs +1 -1
  114. package/dist/src/components/BFormSelect/index.umd.js +1 -1
  115. package/dist/src/components/BFormTags/index.mjs +1 -1
  116. package/dist/src/components/BFormTags/index.umd.js +1 -1
  117. package/dist/src/components/BInputGroup/index.mjs +2 -2
  118. package/dist/src/components/BInputGroup/index.umd.js +2 -2
  119. package/dist/src/components/BModal/index.mjs +1 -1
  120. package/dist/src/components/BModal/index.umd.js +1 -1
  121. package/dist/src/components/BNav/index.mjs +1 -1
  122. package/dist/src/components/BNav/index.umd.js +1 -1
  123. package/dist/src/components/BOffcanvas/index.mjs +1 -1
  124. package/dist/src/components/BOffcanvas/index.umd.js +1 -1
  125. package/dist/src/components/BPlaceholder/index.mjs +1 -1
  126. package/dist/src/components/BPlaceholder/index.umd.js +1 -1
  127. package/dist/src/components/BPopover/index.mjs +1 -1
  128. package/dist/src/components/BPopover/index.umd.js +1 -1
  129. package/dist/src/components/BToast/index.mjs +1 -1
  130. package/dist/src/components/BToast/index.umd.js +1 -1
  131. package/dist/src/components/BTooltip/index.mjs +1 -1
  132. package/dist/src/components/BTooltip/index.umd.js +1 -1
  133. package/dist/src/components/index.mjs +21 -21
  134. package/dist/src/components/index.umd.js +21 -21
  135. package/dist/src/composables/useModal/index.mjs +1 -1
  136. package/dist/src/composables/useModal/index.umd.js +1 -1
  137. package/dist/src/composables/usePopover/index.mjs +2 -2
  138. package/dist/src/composables/usePopover/index.umd.js +2 -2
  139. package/dist/src/composables/useToast/index.mjs +1 -1
  140. package/dist/src/composables/useToast/index.umd.js +1 -1
  141. package/dist/src/directives/BPopover/index.mjs +2 -2
  142. package/dist/src/directives/BPopover/index.umd.js +2 -2
  143. package/dist/src/directives/BScrollspy/index.mjs +1 -1
  144. package/dist/src/directives/BScrollspy/index.umd.js +1 -1
  145. package/dist/src/directives/BToggle/index.mjs +1 -1
  146. package/dist/src/directives/BToggle/index.umd.js +1 -1
  147. package/dist/src/directives/BTooltip/index.mjs +2 -2
  148. package/dist/src/directives/BTooltip/index.umd.js +2 -2
  149. package/dist/types/ComponentProps.d.mts +1 -0
  150. package/dist/types/ComponentProps.d.ts +1 -0
  151. package/dist/types/ComponentSlots.d.mts +2 -1
  152. package/dist/types/ComponentSlots.d.ts +2 -1
  153. package/dist/types/Size.d.mts +0 -1
  154. package/dist/types/Size.d.ts +0 -1
  155. package/dist/{useFormCheck-CJvIDxcO.mjs → useFormCheck-CbRHduFK.mjs} +3 -3
  156. package/dist/useFormCheck-CbRHduFK.mjs.map +1 -0
  157. package/dist/{useFormCheck-UHNy_iZ0.js → useFormCheck-Cj5K6pk-.js} +3 -3
  158. package/dist/useFormCheck-Cj5K6pk-.js.map +1 -0
  159. package/dist/utils/floatingUi.d.mts +1 -0
  160. package/dist/utils/floatingUi.d.ts +1 -0
  161. package/dist/utils/keys.d.mts +2 -2
  162. package/dist/utils/keys.d.ts +2 -2
  163. package/dist/{utils-CgwCsk6U.mjs → utils-D30CwVm-.mjs} +3 -4
  164. package/dist/utils-D30CwVm-.mjs.map +1 -0
  165. package/dist/{utils-CaC78Zdk.js → utils-DtPi91ue.js} +3 -4
  166. package/dist/utils-DtPi91ue.js.map +1 -0
  167. package/package.json +1 -1
  168. package/dist/BAvatar-D7aFEXLH.mjs.map +0 -1
  169. package/dist/BAvatar-lefHkDuG.js.map +0 -1
  170. package/dist/BButton-BRvIFnRm.mjs.map +0 -1
  171. package/dist/BButton-DBRs8Pz_.js.map +0 -1
  172. package/dist/BButton-DNmtqoqR.mjs.map +0 -1
  173. package/dist/BButton-kykTWnBy.js.map +0 -1
  174. package/dist/BCarousel-Be7z13f9.js.map +0 -1
  175. package/dist/BCarousel-D81alfFC.mjs.map +0 -1
  176. package/dist/BDropdown-C1AxRj81.js.map +0 -1
  177. package/dist/BDropdown-DAHnN54Z.mjs.map +0 -1
  178. package/dist/BFormCheckbox-Bdk2rgVe.js.map +0 -1
  179. package/dist/BFormCheckbox-CcDK-lh1.mjs.map +0 -1
  180. package/dist/BFormRadio-CRDbgMiR.mjs.map +0 -1
  181. package/dist/BFormRadio-DuVYw-Vs.js.map +0 -1
  182. package/dist/BFormSelect-Bb8yE8vz.mjs.map +0 -1
  183. package/dist/BFormSelect-DIKVsG--.js.map +0 -1
  184. package/dist/BFormTags-BFA6xbr3.js.map +0 -1
  185. package/dist/BFormTags-CJb4H67g.mjs.map +0 -1
  186. package/dist/BInputGroup-DpX10xwR.mjs.map +0 -1
  187. package/dist/BInputGroup-Duk6Jk0v.js.map +0 -1
  188. package/dist/BModal-Br5xLT0-.mjs.map +0 -1
  189. package/dist/BModal-D0LB339D.js.map +0 -1
  190. package/dist/BPlaceholder-C4AOg29f.mjs.map +0 -1
  191. package/dist/BPlaceholder-DYYYuNgR.js.map +0 -1
  192. package/dist/useFormCheck-CJvIDxcO.mjs.map +0 -1
  193. package/dist/useFormCheck-UHNy_iZ0.js.map +0 -1
  194. package/dist/utils-CaC78Zdk.js.map +0 -1
  195. package/dist/utils-CgwCsk6U.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BCarousel-D9Yei1Q4.mjs","names":[],"sources":["../src/utils/getSlotElements.ts","../src/components/BCarousel/BCarousel.vue","../src/components/BCarousel/BCarousel.vue","../src/components/BCarousel/BCarouselSlide.vue","../src/components/BCarousel/BCarouselSlide.vue"],"sourcesContent":["import type {Slot, VNode} from 'vue'\n\nexport const getSlotElements = (slot: Slot | undefined, filterBy: string): VNode[] =>\n (slot?.() ?? [])\n .reduce((arr: VNode[], slot: VNode) => {\n if (typeof slot.type === 'symbol') {\n arr = arr.concat(slot.children as unknown as VNode)\n } else {\n arr.push(slot)\n }\n return arr\n }, [])\n .filter((child) => (child.type as {__name: string} | undefined)?.__name === filterBy)\n","<template>\n <div\n :id=\"computedId\"\n ref=\"_element\"\n class=\"carousel slide pointer-event\"\n :class=\"computedClasses\"\n >\n <div\n v-if=\"props.indicators\"\n class=\"carousel-indicators\"\n :aria-label=\"props.labelIndicators\"\n :aria-owns=\"buttonOwnership\"\n >\n <!-- :data-bs-target=\"`#${computedId}`\" is required since the classes target elems with that attr -->\n <button\n v-for=\"(_, i) in slides.length\"\n :key=\"i\"\n type=\"button\"\n data-bs-target=\"\"\n :class=\"i === modelValue ? 'active' : ''\"\n :aria-current=\"i === modelValue ? true : undefined\"\n :aria-label=\"`${props.indicatorsButtonLabel} ${i}`\"\n :aria-controls=\"buttonOwnership\"\n :aria-describedby=\"slideValues?.[i]?._id\"\n @click=\"slideTo(i)\"\n />\n </div>\n\n <div ref=\"_relatedTarget\" class=\"carousel-inner\">\n <TransitionGroup v-bind=\"transitionGroupProps\">\n <component\n :is=\"slide\"\n v-for=\"(slide, i) in slides\"\n v-show=\"i === modelValue\"\n :key=\"i\"\n ref=\"_slideValues\"\n :class=\"{active: i === modelValue && isTransitioning === false}\"\n :style=\"props.noAnimation && {transition: 'none'}\"\n />\n </TransitionGroup>\n </div>\n\n <template v-if=\"props.controls\">\n <button class=\"carousel-control-prev\" type=\"button\" @click=\"onClickPrev\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\" />\n <span class=\"visually-hidden\">{{ props.controlsPrevText }}</span>\n </button>\n <button class=\"carousel-control-next\" type=\"button\" @click=\"onClickNext\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\" />\n <span class=\"visually-hidden\">{{ props.controlsNextText }}</span>\n </button>\n </template>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {BvCarouselEvent} from '../../utils'\nimport {computed, onMounted, provide, ref, toRef, useTemplateRef, watch} from 'vue'\nimport {useId} from '../../composables/useId'\nimport {onKeyStroke, useElementHover, useIntervalFn, useSwipe, useToNumber} from '@vueuse/core'\nimport type BCarouselSlide from './BCarouselSlide.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {Numberish} from '../../types/CommonTypes'\nimport {getSlotElements} from '../../utils/getSlotElements'\nimport {carouselInjectionKey} from '../../utils/keys'\nimport type {BCarouselEmits, BCarouselProps, BCarouselSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<Omit<BCarouselProps, 'modelValue'>>(), {\n background: undefined,\n controls: false,\n controlsNextText: 'Next',\n controlsPrevText: 'Previous',\n fade: false,\n id: undefined,\n imgHeight: undefined,\n imgWidth: undefined,\n indicators: false,\n indicatorsButtonLabel: 'Slide',\n interval: 5000,\n labelIndicators: 'Select a slide to display',\n keyboard: true,\n noAnimation: false,\n noHoverPause: false,\n noTouch: false,\n noWrap: false,\n ride: false,\n rideReverse: false,\n touchThreshold: 50,\n})\nconst props = useDefaults(_props, 'BCarousel')\nconst emit = defineEmits<BCarouselEmits>()\nconst slots = defineSlots<BCarouselSlots>()\n\nconst computedId = useId(() => props.id, 'carousel')\nconst buttonOwnership = useId(undefined, 'carousel-button-ownership')\n\nconst modelValue = defineModel<Exclude<BCarouselProps['modelValue'], undefined>>({default: 0})\n\nconst slideValues = useTemplateRef<InstanceType<typeof BCarouselSlide>[]>('_slideValues')\n\nconst touchThresholdNumber = useToNumber(() => props.touchThreshold)\nconst slideInterval = ref<Numberish | null>(null)\nonMounted(() => {\n slideInterval.value =\n slideValues.value?.find((slid) => slid.$el.style.display !== 'none')?._interval ?? null\n})\nconst intervalNumber = useToNumber(() => slideInterval.value ?? props.interval)\n\nconst isTransitioning = ref(false)\nconst rideStarted = ref(false)\nconst direction = ref<'start' | 'end'>('start')\nconst relatedTarget = useTemplateRef('_relatedTarget')\nconst element = useTemplateRef('_element')\n\nlet previousModelValue = modelValue.value\nlet isInternalChange = false\n\nconst isHovering = useElementHover(element)\n\nconst {pause, resume} = useIntervalFn(\n () => {\n if (props.rideReverse) {\n prev()\n return\n }\n next()\n },\n intervalNumber,\n {immediate: props.ride === 'carousel'}\n)\n\nconst isRiding = computed(\n () => (props.ride === true && rideStarted.value === true) || props.ride === 'carousel'\n)\nconst slides = computed(() => getSlotElements(slots.default, 'BCarouselSlide'))\nconst computedClasses = computed(() => ({'carousel-fade': props.fade}))\n\nconst buildBvCarouselEvent = (event: 'slid' | 'slide') =>\n new BvCarouselEvent(event, {\n componentId: computedId.value,\n cancelable: false,\n target: element.value,\n direction: direction.value === 'start' ? 'right' : 'left',\n from: previousModelValue,\n to: modelValue.value,\n relatedTarget: relatedTarget.value?.children[modelValue.value] ?? null,\n })\n\nwatch(modelValue, (newValue, oldValue) => {\n if (!isInternalChange) {\n // External v-model change: determine direction from the new/old values\n const lastIndex = slides.value.length - 1\n const wrappedForward = oldValue === lastIndex && newValue === 0\n const wrappedBackward = oldValue === 0 && newValue === lastIndex\n if (wrappedForward) {\n direction.value = 'start'\n } else if (wrappedBackward) {\n direction.value = 'end'\n } else {\n direction.value = newValue > oldValue ? 'start' : 'end'\n }\n }\n isInternalChange = false\n // If one ever thinks to change the transitions dependence on modelValue and thinks it is appropriate to remove this isTransitioning line, be careful\n // This directly effects how transitions are applied. The watch is for if you have an external change to modelValue, and doesn't directly call slideTo\n isTransitioning.value = true\n})\nconst slideTo = (value: number): void => {\n if (isTransitioning.value === true) return\n\n if (props.ride === true) {\n rideStarted.value = true\n }\n if (isRiding.value === true) {\n resume()\n }\n let nextValue = value\n if (nextValue >= slides.value.length) {\n if (props.noWrap) return\n nextValue = 0\n }\n if (nextValue < 0) {\n if (props.noWrap) return\n nextValue = slides.value.length - 1\n }\n if (nextValue === modelValue.value) return\n // Set direction based on the original requested value (before wrapping) so that\n // next() always animates forward and prev() always animates backward, regardless\n // of how many slides there are. This fixes the 2-slide case where wrap-detection\n // heuristics in the watcher would otherwise produce the wrong direction.\n // Note: `value` is the raw index passed by the caller (e.g. modelValue+1 for next()),\n // while `nextValue` is the resolved/wrapped index that becomes the new modelValue.\n direction.value = value > modelValue.value ? 'start' : 'end'\n // Mark as internal so the modelValue watcher skips its direction heuristics.\n // A race condition here is not possible because the isTransitioning guard above\n // ensures slideTo cannot be called again until the current transition completes.\n isInternalChange = true\n isTransitioning.value = true\n previousModelValue = modelValue.value\n modelValue.value = nextValue\n}\n\nconst prev = (): void => {\n slideTo(modelValue.value - 1)\n}\nconst next = (): void => {\n slideTo(modelValue.value + 1)\n}\n\nconst {lengthX} = useSwipe(element, {\n passive: true,\n onSwipeStart() {\n if (props.noTouch) return\n pause()\n },\n onSwipeEnd() {\n if (props.noTouch) return\n const resumeRiding = () => {\n if (isRiding.value === false) return\n resume()\n }\n if (lengthX.value >= touchThresholdNumber.value) {\n next()\n resumeRiding()\n return\n }\n if (lengthX.value <= -touchThresholdNumber.value) {\n prev()\n resumeRiding()\n }\n },\n})\n\nconst onClickPrev = (event: MouseEvent) => {\n emit('prev-click', event)\n if (event.defaultPrevented) return\n prev()\n}\nconst onClickNext = (event: MouseEvent) => {\n emit('next-click', event)\n if (event.defaultPrevented) return\n next()\n}\n\nconst onMouseEnter = () => {\n if (props.noHoverPause) return\n pause()\n}\nconst onMouseLeave = () => {\n if (!isRiding.value) return\n resume()\n}\nwatch(isHovering, (newValue) => {\n if (newValue) {\n onMouseEnter()\n return\n }\n onMouseLeave()\n})\nonKeyStroke(\n ['ArrowLeft', 'ArrowRight'],\n (event) => {\n if (!props.keyboard) return\n if (event.key === 'ArrowLeft') {\n prev()\n } else {\n next()\n }\n },\n {target: element, passive: true}\n)\n\nwatch(\n () => props.ride,\n () => {\n rideStarted.value = false\n }\n)\n\nconst enterDirectionClass = computed(\n () => `carousel-item-${direction.value === 'start' ? 'next' : 'prev'}`\n)\nconst orderDirectionClass = computed(() => `carousel-item-${direction.value}`)\nconst transitionGroupProps = computed(() => ({\n enterFromClass: `carousel-item ${enterDirectionClass.value}`,\n enterActiveClass: `carousel-item ${enterDirectionClass.value}`,\n enterToClass: `carousel-item ${enterDirectionClass.value} ${orderDirectionClass.value}`,\n leaveFromClass: 'carousel-item active',\n leaveActiveClass: 'carousel-item active',\n leaveToClass: `carousel-item active ${orderDirectionClass.value}`,\n onBeforeLeave: () => {\n emit('slide', buildBvCarouselEvent('slide'))\n },\n onAfterLeave: () => {\n emit('slid', buildBvCarouselEvent('slid'))\n isTransitioning.value = false\n },\n // carousel-item class is removed from the slide during the transition,\n // as is included within enter classes.\n // The first slide recovers carousel-item class,\n onAfterEnter: (el: Readonly<Element>) => {\n if (modelValue.value !== 0) {\n el.classList.add('carousel-item')\n }\n },\n onEnter: (el: Readonly<Element>) => {\n slideInterval.value = slideValues.value?.find((slid) => slid.$el === el)?._interval ?? null\n },\n}))\n\ndefineExpose({\n resume,\n pause,\n next,\n prev,\n slideTo,\n})\n\nprovide(carouselInjectionKey, {\n background: toRef(() => props.background),\n width: toRef(() => props.imgWidth),\n height: toRef(() => props.imgHeight),\n})\n</script>\n","<template>\n <div\n :id=\"computedId\"\n ref=\"_element\"\n class=\"carousel slide pointer-event\"\n :class=\"computedClasses\"\n >\n <div\n v-if=\"props.indicators\"\n class=\"carousel-indicators\"\n :aria-label=\"props.labelIndicators\"\n :aria-owns=\"buttonOwnership\"\n >\n <!-- :data-bs-target=\"`#${computedId}`\" is required since the classes target elems with that attr -->\n <button\n v-for=\"(_, i) in slides.length\"\n :key=\"i\"\n type=\"button\"\n data-bs-target=\"\"\n :class=\"i === modelValue ? 'active' : ''\"\n :aria-current=\"i === modelValue ? true : undefined\"\n :aria-label=\"`${props.indicatorsButtonLabel} ${i}`\"\n :aria-controls=\"buttonOwnership\"\n :aria-describedby=\"slideValues?.[i]?._id\"\n @click=\"slideTo(i)\"\n />\n </div>\n\n <div ref=\"_relatedTarget\" class=\"carousel-inner\">\n <TransitionGroup v-bind=\"transitionGroupProps\">\n <component\n :is=\"slide\"\n v-for=\"(slide, i) in slides\"\n v-show=\"i === modelValue\"\n :key=\"i\"\n ref=\"_slideValues\"\n :class=\"{active: i === modelValue && isTransitioning === false}\"\n :style=\"props.noAnimation && {transition: 'none'}\"\n />\n </TransitionGroup>\n </div>\n\n <template v-if=\"props.controls\">\n <button class=\"carousel-control-prev\" type=\"button\" @click=\"onClickPrev\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\" />\n <span class=\"visually-hidden\">{{ props.controlsPrevText }}</span>\n </button>\n <button class=\"carousel-control-next\" type=\"button\" @click=\"onClickNext\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\" />\n <span class=\"visually-hidden\">{{ props.controlsNextText }}</span>\n </button>\n </template>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {BvCarouselEvent} from '../../utils'\nimport {computed, onMounted, provide, ref, toRef, useTemplateRef, watch} from 'vue'\nimport {useId} from '../../composables/useId'\nimport {onKeyStroke, useElementHover, useIntervalFn, useSwipe, useToNumber} from '@vueuse/core'\nimport type BCarouselSlide from './BCarouselSlide.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {Numberish} from '../../types/CommonTypes'\nimport {getSlotElements} from '../../utils/getSlotElements'\nimport {carouselInjectionKey} from '../../utils/keys'\nimport type {BCarouselEmits, BCarouselProps, BCarouselSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<Omit<BCarouselProps, 'modelValue'>>(), {\n background: undefined,\n controls: false,\n controlsNextText: 'Next',\n controlsPrevText: 'Previous',\n fade: false,\n id: undefined,\n imgHeight: undefined,\n imgWidth: undefined,\n indicators: false,\n indicatorsButtonLabel: 'Slide',\n interval: 5000,\n labelIndicators: 'Select a slide to display',\n keyboard: true,\n noAnimation: false,\n noHoverPause: false,\n noTouch: false,\n noWrap: false,\n ride: false,\n rideReverse: false,\n touchThreshold: 50,\n})\nconst props = useDefaults(_props, 'BCarousel')\nconst emit = defineEmits<BCarouselEmits>()\nconst slots = defineSlots<BCarouselSlots>()\n\nconst computedId = useId(() => props.id, 'carousel')\nconst buttonOwnership = useId(undefined, 'carousel-button-ownership')\n\nconst modelValue = defineModel<Exclude<BCarouselProps['modelValue'], undefined>>({default: 0})\n\nconst slideValues = useTemplateRef<InstanceType<typeof BCarouselSlide>[]>('_slideValues')\n\nconst touchThresholdNumber = useToNumber(() => props.touchThreshold)\nconst slideInterval = ref<Numberish | null>(null)\nonMounted(() => {\n slideInterval.value =\n slideValues.value?.find((slid) => slid.$el.style.display !== 'none')?._interval ?? null\n})\nconst intervalNumber = useToNumber(() => slideInterval.value ?? props.interval)\n\nconst isTransitioning = ref(false)\nconst rideStarted = ref(false)\nconst direction = ref<'start' | 'end'>('start')\nconst relatedTarget = useTemplateRef('_relatedTarget')\nconst element = useTemplateRef('_element')\n\nlet previousModelValue = modelValue.value\nlet isInternalChange = false\n\nconst isHovering = useElementHover(element)\n\nconst {pause, resume} = useIntervalFn(\n () => {\n if (props.rideReverse) {\n prev()\n return\n }\n next()\n },\n intervalNumber,\n {immediate: props.ride === 'carousel'}\n)\n\nconst isRiding = computed(\n () => (props.ride === true && rideStarted.value === true) || props.ride === 'carousel'\n)\nconst slides = computed(() => getSlotElements(slots.default, 'BCarouselSlide'))\nconst computedClasses = computed(() => ({'carousel-fade': props.fade}))\n\nconst buildBvCarouselEvent = (event: 'slid' | 'slide') =>\n new BvCarouselEvent(event, {\n componentId: computedId.value,\n cancelable: false,\n target: element.value,\n direction: direction.value === 'start' ? 'right' : 'left',\n from: previousModelValue,\n to: modelValue.value,\n relatedTarget: relatedTarget.value?.children[modelValue.value] ?? null,\n })\n\nwatch(modelValue, (newValue, oldValue) => {\n if (!isInternalChange) {\n // External v-model change: determine direction from the new/old values\n const lastIndex = slides.value.length - 1\n const wrappedForward = oldValue === lastIndex && newValue === 0\n const wrappedBackward = oldValue === 0 && newValue === lastIndex\n if (wrappedForward) {\n direction.value = 'start'\n } else if (wrappedBackward) {\n direction.value = 'end'\n } else {\n direction.value = newValue > oldValue ? 'start' : 'end'\n }\n }\n isInternalChange = false\n // If one ever thinks to change the transitions dependence on modelValue and thinks it is appropriate to remove this isTransitioning line, be careful\n // This directly effects how transitions are applied. The watch is for if you have an external change to modelValue, and doesn't directly call slideTo\n isTransitioning.value = true\n})\nconst slideTo = (value: number): void => {\n if (isTransitioning.value === true) return\n\n if (props.ride === true) {\n rideStarted.value = true\n }\n if (isRiding.value === true) {\n resume()\n }\n let nextValue = value\n if (nextValue >= slides.value.length) {\n if (props.noWrap) return\n nextValue = 0\n }\n if (nextValue < 0) {\n if (props.noWrap) return\n nextValue = slides.value.length - 1\n }\n if (nextValue === modelValue.value) return\n // Set direction based on the original requested value (before wrapping) so that\n // next() always animates forward and prev() always animates backward, regardless\n // of how many slides there are. This fixes the 2-slide case where wrap-detection\n // heuristics in the watcher would otherwise produce the wrong direction.\n // Note: `value` is the raw index passed by the caller (e.g. modelValue+1 for next()),\n // while `nextValue` is the resolved/wrapped index that becomes the new modelValue.\n direction.value = value > modelValue.value ? 'start' : 'end'\n // Mark as internal so the modelValue watcher skips its direction heuristics.\n // A race condition here is not possible because the isTransitioning guard above\n // ensures slideTo cannot be called again until the current transition completes.\n isInternalChange = true\n isTransitioning.value = true\n previousModelValue = modelValue.value\n modelValue.value = nextValue\n}\n\nconst prev = (): void => {\n slideTo(modelValue.value - 1)\n}\nconst next = (): void => {\n slideTo(modelValue.value + 1)\n}\n\nconst {lengthX} = useSwipe(element, {\n passive: true,\n onSwipeStart() {\n if (props.noTouch) return\n pause()\n },\n onSwipeEnd() {\n if (props.noTouch) return\n const resumeRiding = () => {\n if (isRiding.value === false) return\n resume()\n }\n if (lengthX.value >= touchThresholdNumber.value) {\n next()\n resumeRiding()\n return\n }\n if (lengthX.value <= -touchThresholdNumber.value) {\n prev()\n resumeRiding()\n }\n },\n})\n\nconst onClickPrev = (event: MouseEvent) => {\n emit('prev-click', event)\n if (event.defaultPrevented) return\n prev()\n}\nconst onClickNext = (event: MouseEvent) => {\n emit('next-click', event)\n if (event.defaultPrevented) return\n next()\n}\n\nconst onMouseEnter = () => {\n if (props.noHoverPause) return\n pause()\n}\nconst onMouseLeave = () => {\n if (!isRiding.value) return\n resume()\n}\nwatch(isHovering, (newValue) => {\n if (newValue) {\n onMouseEnter()\n return\n }\n onMouseLeave()\n})\nonKeyStroke(\n ['ArrowLeft', 'ArrowRight'],\n (event) => {\n if (!props.keyboard) return\n if (event.key === 'ArrowLeft') {\n prev()\n } else {\n next()\n }\n },\n {target: element, passive: true}\n)\n\nwatch(\n () => props.ride,\n () => {\n rideStarted.value = false\n }\n)\n\nconst enterDirectionClass = computed(\n () => `carousel-item-${direction.value === 'start' ? 'next' : 'prev'}`\n)\nconst orderDirectionClass = computed(() => `carousel-item-${direction.value}`)\nconst transitionGroupProps = computed(() => ({\n enterFromClass: `carousel-item ${enterDirectionClass.value}`,\n enterActiveClass: `carousel-item ${enterDirectionClass.value}`,\n enterToClass: `carousel-item ${enterDirectionClass.value} ${orderDirectionClass.value}`,\n leaveFromClass: 'carousel-item active',\n leaveActiveClass: 'carousel-item active',\n leaveToClass: `carousel-item active ${orderDirectionClass.value}`,\n onBeforeLeave: () => {\n emit('slide', buildBvCarouselEvent('slide'))\n },\n onAfterLeave: () => {\n emit('slid', buildBvCarouselEvent('slid'))\n isTransitioning.value = false\n },\n // carousel-item class is removed from the slide during the transition,\n // as is included within enter classes.\n // The first slide recovers carousel-item class,\n onAfterEnter: (el: Readonly<Element>) => {\n if (modelValue.value !== 0) {\n el.classList.add('carousel-item')\n }\n },\n onEnter: (el: Readonly<Element>) => {\n slideInterval.value = slideValues.value?.find((slid) => slid.$el === el)?._interval ?? null\n },\n}))\n\ndefineExpose({\n resume,\n pause,\n next,\n prev,\n slideTo,\n})\n\nprovide(carouselInjectionKey, {\n background: toRef(() => props.background),\n width: toRef(() => props.imgWidth),\n height: toRef(() => props.imgHeight),\n})\n</script>\n","<template>\n <div :id=\"computedId\" class=\"carousel-item\" :style=\"computedStyle\">\n <slot name=\"img\">\n <BImg\n class=\"d-block w-100\"\n :alt=\"props.imgAlt\"\n :srcset=\"props.imgSrcset\"\n :src=\"props.imgSrc\"\n :width=\"props.imgWidth || parentData?.width.value\"\n :height=\"props.imgHeight || parentData?.height.value\"\n :blank=\"props.imgBlank\"\n :blank-color=\"props.imgBlankColor\"\n />\n </slot>\n <component\n :is=\"props.contentTag\"\n v-if=\"hasContent\"\n class=\"carousel-caption\"\n :class=\"computedContentClasses\"\n >\n <component :is=\"props.captionTag\" v-if=\"hasCaption\">\n <slot name=\"caption\">\n <span>{{ props.caption }}</span>\n </slot>\n </component>\n <component :is=\"props.textTag\" v-if=\"hasText\">\n <slot name=\"text\">\n <span>{{ props.text }}</span>\n </slot>\n </component>\n <slot />\n </component>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type CSSProperties, inject, toRef} from 'vue'\nimport type {BCarouselSlideProps} from '../../types/ComponentProps'\nimport {carouselInjectionKey} from '../../utils/keys'\nimport BImg from '../BImg/BImg.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {isEmptySlot} from '../../utils/dom'\nimport {useId} from '../../composables/useId'\nimport type {BCarouselSlideSlots} from '../../types/ComponentSlots'\n\nconst _props = withDefaults(defineProps<BCarouselSlideProps>(), {\n background: undefined,\n caption: undefined,\n captionTag: 'h3',\n contentTag: 'div',\n contentVisibleUp: undefined,\n id: undefined,\n imgAlt: undefined,\n imgBlank: false,\n imgBlankColor: 'transparent',\n imgHeight: undefined,\n imgSrc: undefined,\n imgSrcset: undefined,\n imgWidth: undefined,\n interval: undefined,\n text: undefined,\n textTag: 'p',\n})\nconst props = useDefaults(_props, 'BCarouselSlide')\nconst slots = defineSlots<BCarouselSlideSlots>()\n\nconst computedId = useId(() => props.id, 'carousel-slide')\nconst parentData = inject(carouselInjectionKey, null)\n\nconst hasText = computed(() => props.text || !isEmptySlot(slots.text))\nconst hasCaption = computed(() => props.caption || !isEmptySlot(slots.caption))\nconst hasContent = computed(() => hasText.value || hasCaption.value || !isEmptySlot(slots.default))\n\nconst computedStyle = computed<CSSProperties>(() => ({\n background: `${\n props.background || parentData?.background.value || 'rgb(171, 171, 171)'\n } none repeat scroll 0% 0%`,\n}))\n\nconst computedContentClasses = computed(() => ({\n 'd-none': props.contentVisibleUp !== undefined,\n [`d-${props.contentVisibleUp}-block`]: props.contentVisibleUp !== undefined,\n}))\n\ndefineExpose({\n _interval: toRef(() => props.interval),\n _id: computedId,\n})\n</script>\n","<template>\n <div :id=\"computedId\" class=\"carousel-item\" :style=\"computedStyle\">\n <slot name=\"img\">\n <BImg\n class=\"d-block w-100\"\n :alt=\"props.imgAlt\"\n :srcset=\"props.imgSrcset\"\n :src=\"props.imgSrc\"\n :width=\"props.imgWidth || parentData?.width.value\"\n :height=\"props.imgHeight || parentData?.height.value\"\n :blank=\"props.imgBlank\"\n :blank-color=\"props.imgBlankColor\"\n />\n </slot>\n <component\n :is=\"props.contentTag\"\n v-if=\"hasContent\"\n class=\"carousel-caption\"\n :class=\"computedContentClasses\"\n >\n <component :is=\"props.captionTag\" v-if=\"hasCaption\">\n <slot name=\"caption\">\n <span>{{ props.caption }}</span>\n </slot>\n </component>\n <component :is=\"props.textTag\" v-if=\"hasText\">\n <slot name=\"text\">\n <span>{{ props.text }}</span>\n </slot>\n </component>\n <slot />\n </component>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type CSSProperties, inject, toRef} from 'vue'\nimport type {BCarouselSlideProps} from '../../types/ComponentProps'\nimport {carouselInjectionKey} from '../../utils/keys'\nimport BImg from '../BImg/BImg.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {isEmptySlot} from '../../utils/dom'\nimport {useId} from '../../composables/useId'\nimport type {BCarouselSlideSlots} from '../../types/ComponentSlots'\n\nconst _props = withDefaults(defineProps<BCarouselSlideProps>(), {\n background: undefined,\n caption: undefined,\n captionTag: 'h3',\n contentTag: 'div',\n contentVisibleUp: undefined,\n id: undefined,\n imgAlt: undefined,\n imgBlank: false,\n imgBlankColor: 'transparent',\n imgHeight: undefined,\n imgSrc: undefined,\n imgSrcset: undefined,\n imgWidth: undefined,\n interval: undefined,\n text: undefined,\n textTag: 'p',\n})\nconst props = useDefaults(_props, 'BCarouselSlide')\nconst slots = defineSlots<BCarouselSlideSlots>()\n\nconst computedId = useId(() => props.id, 'carousel-slide')\nconst parentData = inject(carouselInjectionKey, null)\n\nconst hasText = computed(() => props.text || !isEmptySlot(slots.text))\nconst hasCaption = computed(() => props.caption || !isEmptySlot(slots.caption))\nconst hasContent = computed(() => hasText.value || hasCaption.value || !isEmptySlot(slots.default))\n\nconst computedStyle = computed<CSSProperties>(() => ({\n background: `${\n props.background || parentData?.background.value || 'rgb(171, 171, 171)'\n } none repeat scroll 0% 0%`,\n}))\n\nconst computedContentClasses = computed(() => ({\n 'd-none': props.contentVisibleUp !== undefined,\n [`d-${props.contentVisibleUp}-block`]: props.contentVisibleUp !== undefined,\n}))\n\ndefineExpose({\n _interval: toRef(() => props.interval),\n _id: computedId,\n})\n</script>\n"],"mappings":"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"}
@@ -5,11 +5,11 @@ const require_dom = require("./dom-Bs6DzM72.js");
5
5
  const require_useDefaults = require("./useDefaults-DsLf4iRY.js");
6
6
  const require_useId = require("./useId-DHrBgM7P.js");
7
7
  const require_useShowHide = require("./useShowHide-BTCaeU5j.js");
8
- const require_BButton = require("./BButton-DBRs8Pz_.js");
8
+ const require_BButton = require("./BButton-Bw4HgpsF.js");
9
9
  const require_ConditionalTeleport = require("./ConditionalTeleport-BJZk6HAx.js");
10
10
  const require_floating_ui_vue = require("./floating-ui.vue-GXIS2sFG.js");
11
11
  const require_ConditionalWrapper = require("./ConditionalWrapper-Cc7EIszd.js");
12
- const require_floatingUi = require("./floatingUi-Cs4rDXmO.js");
12
+ const require_floatingUi = require("./floatingUi-DBLN9xLH.js");
13
13
  const require_getElement = require("./getElement-CxWWOx3K.js");
14
14
  let vue = require("vue");
15
15
  //#region src/components/BDropdown/BDropdown.vue?vue&type=script&setup=true&lang.ts
@@ -64,7 +64,7 @@ var BDropdown_default = /* @__PURE__ */ (0, vue.defineComponent)({
64
64
  },
65
65
  offset: { default: 0 },
66
66
  role: { default: "menu" },
67
- size: { default: "md" },
67
+ size: { default: void 0 },
68
68
  noWrapper: {
69
69
  type: Boolean,
70
70
  default: false
@@ -84,6 +84,7 @@ var BDropdown_default = /* @__PURE__ */ (0, vue.defineComponent)({
84
84
  splitVariant: { default: void 0 },
85
85
  strategy: { default: "absolute" },
86
86
  text: { default: void 0 },
87
+ toggleAttrs: { default: void 0 },
87
88
  toggleClass: { default: void 0 },
88
89
  toggleText: { default: "Toggle dropdown" },
89
90
  variant: { default: "secondary" },
@@ -298,12 +299,12 @@ var BDropdown_default = /* @__PURE__ */ (0, vue.defineComponent)({
298
299
  role: (0, vue.unref)(inButtonGroupAttributes)?.role
299
300
  }, {
300
301
  default: (0, vue.withCtx)(() => [
301
- (0, vue.createVNode)(require_BButton.BButton_default, {
302
+ (0, vue.createVNode)(require_BButton.BButton_default, (0, vue.mergeProps)({
302
303
  id: (0, vue.unref)(computedId),
303
304
  ref: "_splitButton",
304
305
  variant: (0, vue.unref)(props).splitVariant || (0, vue.unref)(props).variant,
305
306
  size: (0, vue.unref)(props).size,
306
- class: (0, vue.normalizeClass)(buttonClasses.value),
307
+ class: buttonClasses.value,
307
308
  disabled: (0, vue.unref)(props).splitDisabled || (0, vue.unref)(props).disabled,
308
309
  type: (0, vue.unref)(props).splitButtonType,
309
310
  "aria-label": (0, vue.unref)(props).ariaLabel,
@@ -311,12 +312,11 @@ var BDropdown_default = /* @__PURE__ */ (0, vue.defineComponent)({
311
312
  "aria-haspopup": (0, vue.unref)(props).split ? void 0 : "menu",
312
313
  href: (0, vue.unref)(props).split ? (0, vue.unref)(props).splitHref : void 0,
313
314
  icon: (0, vue.unref)(props).icon,
314
- to: (0, vue.unref)(props).split && (0, vue.unref)(props).splitTo ? (0, vue.unref)(props).splitTo : void 0,
315
- onClick: onSplitClick
316
- }, {
315
+ to: (0, vue.unref)(props).split && (0, vue.unref)(props).splitTo ? (0, vue.unref)(props).splitTo : void 0
316
+ }, !(0, vue.unref)(props).split ? (0, vue.unref)(props).toggleAttrs : void 0, { onClick: onSplitClick }), {
317
317
  default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "button-content", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(props).text), 1)])]),
318
318
  _: 3
319
- }, 8, [
319
+ }, 16, [
320
320
  "id",
321
321
  "variant",
322
322
  "size",
@@ -330,21 +330,20 @@ var BDropdown_default = /* @__PURE__ */ (0, vue.defineComponent)({
330
330
  "icon",
331
331
  "to"
332
332
  ]),
333
- (0, vue.unref)(props).split ? ((0, vue.openBlock)(), (0, vue.createBlock)(require_BButton.BButton_default, {
333
+ (0, vue.unref)(props).split ? ((0, vue.openBlock)(), (0, vue.createBlock)(require_BButton.BButton_default, (0, vue.mergeProps)({
334
334
  key: 0,
335
335
  id: (0, vue.unref)(computedId) + "-split",
336
336
  ref: "_button",
337
337
  variant: (0, vue.unref)(props).variant,
338
338
  size: (0, vue.unref)(props).size,
339
339
  disabled: (0, vue.unref)(props).disabled,
340
- class: (0, vue.normalizeClass)([[(0, vue.unref)(props).toggleClass, { show: (0, vue.unref)(showRef) }], "dropdown-toggle-split dropdown-toggle"]),
340
+ class: [[(0, vue.unref)(props).toggleClass, { show: (0, vue.unref)(showRef) }], "dropdown-toggle-split dropdown-toggle"],
341
341
  "aria-expanded": (0, vue.unref)(showRef),
342
- "aria-haspopup": "menu",
343
- onClick: onButtonClick
344
- }, {
342
+ "aria-haspopup": "menu"
343
+ }, (0, vue.unref)(props).toggleAttrs, { onClick: onButtonClick }), {
345
344
  default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", _hoisted_1, [(0, vue.renderSlot)(_ctx.$slots, "toggle-text", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(props).toggleText), 1)])])]),
346
345
  _: 3
347
- }, 8, [
346
+ }, 16, [
348
347
  "id",
349
348
  "variant",
350
349
  "size",
@@ -401,4 +400,4 @@ Object.defineProperty(exports, "BDropdown_default", {
401
400
  }
402
401
  });
403
402
 
404
- //# sourceMappingURL=BDropdown-C1AxRj81.js.map
403
+ //# sourceMappingURL=BDropdown-BxciLgyt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BDropdown-BxciLgyt.js","names":[],"sources":["../src/components/BDropdown/BDropdown.vue","../src/components/BDropdown/BDropdown.vue"],"sourcesContent":["<template>\n <ConditionalWrapper\n :skip=\"inInputGroup || props.noWrapper\"\n :class=\"computedClasses\"\n :role=\"inButtonGroupAttributes?.role\"\n >\n <BButton\n :id=\"computedId\"\n ref=\"_splitButton\"\n :variant=\"props.splitVariant || props.variant\"\n :size=\"props.size\"\n :class=\"buttonClasses\"\n :disabled=\"props.splitDisabled || props.disabled\"\n :type=\"props.splitButtonType\"\n :aria-label=\"props.ariaLabel\"\n :aria-expanded=\"props.split ? undefined : showRef\"\n :aria-haspopup=\"props.split ? undefined : 'menu'\"\n :href=\"props.split ? props.splitHref : undefined\"\n :icon=\"props.icon\"\n :to=\"props.split && props.splitTo ? props.splitTo : undefined\"\n v-bind=\"!props.split ? props.toggleAttrs : undefined\"\n @click=\"onSplitClick\"\n >\n <slot name=\"button-content\"> {{ props.text }} </slot>\n </BButton>\n <BButton\n v-if=\"props.split\"\n :id=\"computedId + '-split'\"\n ref=\"_button\"\n :variant=\"props.variant\"\n :size=\"props.size\"\n :disabled=\"props.disabled\"\n :class=\"[props.toggleClass, {show: showRef}]\"\n class=\"dropdown-toggle-split dropdown-toggle\"\n :aria-expanded=\"showRef\"\n aria-haspopup=\"menu\"\n v-bind=\"props.toggleAttrs\"\n @click=\"onButtonClick\"\n >\n <span class=\"visually-hidden\">\n <slot name=\"toggle-text\">\n {{ props.toggleText }}\n </slot>\n </span>\n </BButton>\n <ConditionalTeleport\n :to=\"props.teleportTo\"\n :disabled=\"!props.teleportTo || props.teleportDisabled\"\n >\n <Transition\n v-if=\"renderRef || contentShowing\"\n v-bind=\"transitionProps\"\n :appear=\"modelValue || props.visible\"\n >\n <ul\n v-show=\"showRef\"\n :id=\"computedId + '-menu'\"\n ref=\"_floating\"\n :style=\"[floatingStyles, sizeStyles, {display: showRef || isActive ? 'block' : 'none'}]\"\n class=\"dropdown-menu overflow-auto b-floating-size\"\n :class=\"[props.menuClass, computedMenuClasses]\"\n :aria-labelledby=\"computedId\"\n :role=\"props.role\"\n @click=\"onClickInside\"\n >\n <slot\n v-if=\"contentShowing\"\n :id=\"computedId\"\n :hide=\"hide\"\n :show=\"show\"\n :visible=\"showRef\"\n :click=\"onClickInside\"\n :toggle=\"onButtonClick\"\n :active=\"showRef\"\n />\n </ul>\n </Transition>\n </ConditionalTeleport>\n </ConditionalWrapper>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n autoUpdate,\n type Boundary,\n flip,\n type Middleware,\n offset as offsetMiddleware,\n type ReferenceElement,\n type RootBoundary,\n shift,\n size as sizeMiddleware,\n useFloating,\n} from '@floating-ui/vue'\nimport {onClickOutside, onKeyStroke, useToNumber} from '@vueuse/core'\nimport {\n computed,\n type ComputedRef,\n type CSSProperties,\n type EmitFn,\n inject,\n nextTick,\n provide,\n readonly,\n ref,\n toRef,\n useTemplateRef,\n watch,\n} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport BButton from '../BButton/BButton.vue'\nimport ConditionalWrapper from '../ConditionalWrapper.vue'\nimport ConditionalTeleport from '../ConditionalTeleport.vue'\nimport {isBoundary, isRootBoundary, resolveBootstrapCaret} from '../../utils/floatingUi'\nimport {getElement} from '../../utils/getElement'\nimport {buttonGroupKey, dropdownInjectionKey, inputGroupKey} from '../../utils/keys'\nimport {useShowHide} from '../../composables/useShowHide'\nimport type {BDropdownEmits, BDropdownProps, BDropdownSlots} from '../../types'\nimport {getSafeDocument} from '../../utils/dom'\n\nconst _props = withDefaults(defineProps<Omit<BDropdownProps, 'modelValue'>>(), {\n ariaLabel: undefined,\n autoClose: true,\n boundary: 'clippingAncestors',\n boundaryPadding: undefined,\n teleportTo: undefined,\n teleportDisabled: false,\n disabled: false,\n floatingMiddleware: undefined,\n icon: false,\n id: undefined,\n initialAnimation: false,\n isNav: false,\n lazy: false,\n menuClass: undefined,\n noCaret: false,\n noFade: false,\n noFlip: false,\n noShift: false,\n noSize: false,\n offset: 0,\n unmountLazy: false,\n role: 'menu',\n size: undefined,\n noWrapper: false,\n split: false,\n splitButtonType: 'button',\n splitClass: undefined,\n splitDisabled: undefined,\n splitHref: undefined,\n splitTo: undefined,\n placement: 'bottom-start',\n splitVariant: undefined,\n strategy: 'absolute',\n text: undefined,\n show: false,\n toggleAttrs: undefined,\n toggleClass: undefined,\n toggleText: 'Toggle dropdown',\n transProps: undefined,\n variant: 'secondary',\n visible: false,\n wrapperClass: undefined,\n})\nconst props = useDefaults(_props, 'BDropdown')\nconst emit = defineEmits<BDropdownEmits>()\ndefineSlots<BDropdownSlots>()\n\nconst computedId = useId(() => props.id, 'dropdown')\n\nconst modelValue = defineModel<Exclude<BDropdownProps['modelValue'], undefined>>({default: false})\n\nconst inInputGroup = inject(inputGroupKey, false)\nconst inButtonGroup = inject(buttonGroupKey, false)\n\nconst computedOffset = computed(() =>\n typeof props.offset === 'string' || typeof props.offset === 'number' ? props.offset : Number.NaN\n)\nconst offsetToNumber = useToNumber(computedOffset)\n\nconst floatingElement = useTemplateRef<HTMLUListElement | null>('_floating')\nconst button = useTemplateRef<HTMLElement | null>('_button')\nconst splitButton = useTemplateRef<HTMLElement | null>('_splitButton')\n\nconst boundary = computed<Boundary | undefined>(() =>\n isBoundary(props.boundary) ? props.boundary : undefined\n)\nconst rootBoundary = computed<RootBoundary | undefined>(() =>\n isRootBoundary(props.boundary) ? props.boundary : undefined\n)\n\nconst referenceElement = computed(() => (!props.split ? splitButton.value : button.value))\nlet cleanup: ReturnType<typeof autoUpdate> | undefined\n\nconst {\n showRef,\n renderRef,\n hide,\n show,\n toggle,\n computedNoAnimation,\n transitionProps,\n contentShowing,\n isVisible,\n isActive,\n} = useShowHide(modelValue, props, emit as EmitFn, referenceElement, computedId, {\n showFn: () => {\n update()\n nextTick(() => {\n cleanup = autoUpdate(\n referenceElement.value as ReferenceElement,\n floatingElement.value as HTMLElement,\n update,\n {\n animationFrame: false,\n }\n )\n })\n },\n hideFn: () => {\n if (cleanup) {\n cleanup()\n cleanup = undefined\n }\n },\n})\n\nconst computedMenuClasses = computed(() => [\n {\n show: isVisible.value,\n fade: !computedNoAnimation.value,\n },\n])\n\nonKeyStroke(\n 'Escape',\n () => {\n hide()\n getElement(referenceElement.value)?.focus()\n },\n {target: referenceElement}\n)\nonKeyStroke(\n 'Escape',\n () => {\n hide()\n getElement(referenceElement.value)?.focus()\n },\n {target: floatingElement, passive: true}\n)\n\nconst keynav = (e: Readonly<Event>, v: number) => {\n if (floatingElement.value?.contains((e.target as HTMLElement)?.closest('form'))) return\n if (/input|select|option|textarea|form/i.test((e.target as HTMLElement)?.tagName)) return\n e.preventDefault()\n if (!showRef.value) {\n show()\n const loop = setInterval(() => {\n if (isVisible.value) {\n clearInterval(loop)\n nextTick(() => keynav(e, v))\n }\n }, 16)\n return\n }\n const list = floatingElement.value?.querySelectorAll(\n '.dropdown-item:not(.disabled):not(:disabled)'\n )\n const doc = getSafeDocument()\n if (!list || !doc) return\n if (floatingElement.value?.contains(doc.activeElement)) {\n const active = floatingElement.value.querySelector('.dropdown-item:focus')\n const index = Array.prototype.indexOf.call(list, active) + v\n if (index >= 0 && index < list?.length) (list[index] as HTMLElement)?.focus()\n } else {\n ;(list[v === -1 ? list.length - 1 : 0] as HTMLElement)?.focus()\n }\n}\n\nonKeyStroke('ArrowUp', (e) => keynav(e, -1), {target: referenceElement})\nonKeyStroke('ArrowDown', (e) => keynav(e, 1), {target: referenceElement})\nonKeyStroke('ArrowUp', (e) => keynav(e, -1), {target: floatingElement})\nonKeyStroke('ArrowDown', (e) => keynav(e, 1), {target: floatingElement})\n\nconst sizeStyles = ref<CSSProperties>({})\nconst floatingMiddleware = computed<readonly Middleware[]>(() => {\n if (props.floatingMiddleware !== undefined) {\n return props.floatingMiddleware\n }\n const localOffset =\n typeof props.offset === 'string' || typeof props.offset === 'number'\n ? offsetToNumber.value\n : props.offset\n const arr: Middleware[] = [offsetMiddleware(localOffset)]\n if (props.noFlip === false) {\n arr.push(\n flip({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.noShift === false) {\n arr.push(\n shift({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.noSize === false) {\n arr.push(\n sizeMiddleware({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n apply({availableWidth, availableHeight}) {\n sizeStyles.value = {\n '--bv-floating-max-height':\n availableHeight >= (floatingElement.value?.scrollHeight ?? 0)\n ? undefined\n : availableHeight\n ? `${Math.max(0, availableHeight)}px`\n : undefined,\n '--bv-floating-max-width':\n availableWidth >= (floatingElement.value?.scrollWidth ?? 0)\n ? undefined\n : availableWidth\n ? `${Math.max(0, availableWidth)}px`\n : undefined,\n }\n },\n })\n )\n }\n return arr\n})\nconst {update, floatingStyles} = useFloating(referenceElement, floatingElement, {\n placement: () => props.placement,\n middleware: floatingMiddleware as ComputedRef<Middleware[]>,\n strategy: toRef(() => props.strategy),\n})\n\nconst inButtonGroupAttributes = inButtonGroup\n ? {\n class: 'btn-group',\n role: 'group',\n }\n : undefined\n\nconst computedClasses = computed(() => [\n inButtonGroupAttributes?.class,\n props.wrapperClass,\n {\n 'btn-group': !props.wrapperClass && props.split,\n [`drop${resolveBootstrapCaret(props.placement)}`]: !props.wrapperClass,\n 'position-static': props.boundary !== 'clippingAncestors' && !props.isNav,\n },\n])\n\nconst buttonClasses = computed(() => [\n props.split ? props.splitClass : props.toggleClass,\n {\n 'nav-link': props.isNav,\n 'dropdown-toggle': !props.split,\n 'dropdown-toggle-no-caret': props.noCaret && !props.split,\n 'show': props.split ? undefined : showRef.value,\n },\n])\n\nconst onButtonClick = () => {\n toggle()\n}\n\nconst onSplitClick = (event: Readonly<MouseEvent>) => {\n if (props.split) {\n emit('split-click', event)\n return\n }\n onButtonClick()\n}\n\nonClickOutside(\n floatingElement,\n () => {\n if (showRef.value && (props.autoClose === true || props.autoClose === 'outside')) {\n hide()\n }\n },\n {ignore: [button, splitButton]}\n)\nconst onClickInside = () => {\n if (showRef.value && (props.autoClose === true || props.autoClose === 'inside')) {\n hide()\n }\n}\n\nwatch(isVisible, () => {\n update()\n})\n\ndefineExpose({\n hide,\n show,\n toggle,\n})\n\nprovide(dropdownInjectionKey, {\n id: computedId,\n show,\n hide,\n toggle,\n visible: readonly(showRef),\n isNav: toRef(() => props.isNav),\n})\n</script>\n","<template>\n <ConditionalWrapper\n :skip=\"inInputGroup || props.noWrapper\"\n :class=\"computedClasses\"\n :role=\"inButtonGroupAttributes?.role\"\n >\n <BButton\n :id=\"computedId\"\n ref=\"_splitButton\"\n :variant=\"props.splitVariant || props.variant\"\n :size=\"props.size\"\n :class=\"buttonClasses\"\n :disabled=\"props.splitDisabled || props.disabled\"\n :type=\"props.splitButtonType\"\n :aria-label=\"props.ariaLabel\"\n :aria-expanded=\"props.split ? undefined : showRef\"\n :aria-haspopup=\"props.split ? undefined : 'menu'\"\n :href=\"props.split ? props.splitHref : undefined\"\n :icon=\"props.icon\"\n :to=\"props.split && props.splitTo ? props.splitTo : undefined\"\n v-bind=\"!props.split ? props.toggleAttrs : undefined\"\n @click=\"onSplitClick\"\n >\n <slot name=\"button-content\"> {{ props.text }} </slot>\n </BButton>\n <BButton\n v-if=\"props.split\"\n :id=\"computedId + '-split'\"\n ref=\"_button\"\n :variant=\"props.variant\"\n :size=\"props.size\"\n :disabled=\"props.disabled\"\n :class=\"[props.toggleClass, {show: showRef}]\"\n class=\"dropdown-toggle-split dropdown-toggle\"\n :aria-expanded=\"showRef\"\n aria-haspopup=\"menu\"\n v-bind=\"props.toggleAttrs\"\n @click=\"onButtonClick\"\n >\n <span class=\"visually-hidden\">\n <slot name=\"toggle-text\">\n {{ props.toggleText }}\n </slot>\n </span>\n </BButton>\n <ConditionalTeleport\n :to=\"props.teleportTo\"\n :disabled=\"!props.teleportTo || props.teleportDisabled\"\n >\n <Transition\n v-if=\"renderRef || contentShowing\"\n v-bind=\"transitionProps\"\n :appear=\"modelValue || props.visible\"\n >\n <ul\n v-show=\"showRef\"\n :id=\"computedId + '-menu'\"\n ref=\"_floating\"\n :style=\"[floatingStyles, sizeStyles, {display: showRef || isActive ? 'block' : 'none'}]\"\n class=\"dropdown-menu overflow-auto b-floating-size\"\n :class=\"[props.menuClass, computedMenuClasses]\"\n :aria-labelledby=\"computedId\"\n :role=\"props.role\"\n @click=\"onClickInside\"\n >\n <slot\n v-if=\"contentShowing\"\n :id=\"computedId\"\n :hide=\"hide\"\n :show=\"show\"\n :visible=\"showRef\"\n :click=\"onClickInside\"\n :toggle=\"onButtonClick\"\n :active=\"showRef\"\n />\n </ul>\n </Transition>\n </ConditionalTeleport>\n </ConditionalWrapper>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n autoUpdate,\n type Boundary,\n flip,\n type Middleware,\n offset as offsetMiddleware,\n type ReferenceElement,\n type RootBoundary,\n shift,\n size as sizeMiddleware,\n useFloating,\n} from '@floating-ui/vue'\nimport {onClickOutside, onKeyStroke, useToNumber} from '@vueuse/core'\nimport {\n computed,\n type ComputedRef,\n type CSSProperties,\n type EmitFn,\n inject,\n nextTick,\n provide,\n readonly,\n ref,\n toRef,\n useTemplateRef,\n watch,\n} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport BButton from '../BButton/BButton.vue'\nimport ConditionalWrapper from '../ConditionalWrapper.vue'\nimport ConditionalTeleport from '../ConditionalTeleport.vue'\nimport {isBoundary, isRootBoundary, resolveBootstrapCaret} from '../../utils/floatingUi'\nimport {getElement} from '../../utils/getElement'\nimport {buttonGroupKey, dropdownInjectionKey, inputGroupKey} from '../../utils/keys'\nimport {useShowHide} from '../../composables/useShowHide'\nimport type {BDropdownEmits, BDropdownProps, BDropdownSlots} from '../../types'\nimport {getSafeDocument} from '../../utils/dom'\n\nconst _props = withDefaults(defineProps<Omit<BDropdownProps, 'modelValue'>>(), {\n ariaLabel: undefined,\n autoClose: true,\n boundary: 'clippingAncestors',\n boundaryPadding: undefined,\n teleportTo: undefined,\n teleportDisabled: false,\n disabled: false,\n floatingMiddleware: undefined,\n icon: false,\n id: undefined,\n initialAnimation: false,\n isNav: false,\n lazy: false,\n menuClass: undefined,\n noCaret: false,\n noFade: false,\n noFlip: false,\n noShift: false,\n noSize: false,\n offset: 0,\n unmountLazy: false,\n role: 'menu',\n size: undefined,\n noWrapper: false,\n split: false,\n splitButtonType: 'button',\n splitClass: undefined,\n splitDisabled: undefined,\n splitHref: undefined,\n splitTo: undefined,\n placement: 'bottom-start',\n splitVariant: undefined,\n strategy: 'absolute',\n text: undefined,\n show: false,\n toggleAttrs: undefined,\n toggleClass: undefined,\n toggleText: 'Toggle dropdown',\n transProps: undefined,\n variant: 'secondary',\n visible: false,\n wrapperClass: undefined,\n})\nconst props = useDefaults(_props, 'BDropdown')\nconst emit = defineEmits<BDropdownEmits>()\ndefineSlots<BDropdownSlots>()\n\nconst computedId = useId(() => props.id, 'dropdown')\n\nconst modelValue = defineModel<Exclude<BDropdownProps['modelValue'], undefined>>({default: false})\n\nconst inInputGroup = inject(inputGroupKey, false)\nconst inButtonGroup = inject(buttonGroupKey, false)\n\nconst computedOffset = computed(() =>\n typeof props.offset === 'string' || typeof props.offset === 'number' ? props.offset : Number.NaN\n)\nconst offsetToNumber = useToNumber(computedOffset)\n\nconst floatingElement = useTemplateRef<HTMLUListElement | null>('_floating')\nconst button = useTemplateRef<HTMLElement | null>('_button')\nconst splitButton = useTemplateRef<HTMLElement | null>('_splitButton')\n\nconst boundary = computed<Boundary | undefined>(() =>\n isBoundary(props.boundary) ? props.boundary : undefined\n)\nconst rootBoundary = computed<RootBoundary | undefined>(() =>\n isRootBoundary(props.boundary) ? props.boundary : undefined\n)\n\nconst referenceElement = computed(() => (!props.split ? splitButton.value : button.value))\nlet cleanup: ReturnType<typeof autoUpdate> | undefined\n\nconst {\n showRef,\n renderRef,\n hide,\n show,\n toggle,\n computedNoAnimation,\n transitionProps,\n contentShowing,\n isVisible,\n isActive,\n} = useShowHide(modelValue, props, emit as EmitFn, referenceElement, computedId, {\n showFn: () => {\n update()\n nextTick(() => {\n cleanup = autoUpdate(\n referenceElement.value as ReferenceElement,\n floatingElement.value as HTMLElement,\n update,\n {\n animationFrame: false,\n }\n )\n })\n },\n hideFn: () => {\n if (cleanup) {\n cleanup()\n cleanup = undefined\n }\n },\n})\n\nconst computedMenuClasses = computed(() => [\n {\n show: isVisible.value,\n fade: !computedNoAnimation.value,\n },\n])\n\nonKeyStroke(\n 'Escape',\n () => {\n hide()\n getElement(referenceElement.value)?.focus()\n },\n {target: referenceElement}\n)\nonKeyStroke(\n 'Escape',\n () => {\n hide()\n getElement(referenceElement.value)?.focus()\n },\n {target: floatingElement, passive: true}\n)\n\nconst keynav = (e: Readonly<Event>, v: number) => {\n if (floatingElement.value?.contains((e.target as HTMLElement)?.closest('form'))) return\n if (/input|select|option|textarea|form/i.test((e.target as HTMLElement)?.tagName)) return\n e.preventDefault()\n if (!showRef.value) {\n show()\n const loop = setInterval(() => {\n if (isVisible.value) {\n clearInterval(loop)\n nextTick(() => keynav(e, v))\n }\n }, 16)\n return\n }\n const list = floatingElement.value?.querySelectorAll(\n '.dropdown-item:not(.disabled):not(:disabled)'\n )\n const doc = getSafeDocument()\n if (!list || !doc) return\n if (floatingElement.value?.contains(doc.activeElement)) {\n const active = floatingElement.value.querySelector('.dropdown-item:focus')\n const index = Array.prototype.indexOf.call(list, active) + v\n if (index >= 0 && index < list?.length) (list[index] as HTMLElement)?.focus()\n } else {\n ;(list[v === -1 ? list.length - 1 : 0] as HTMLElement)?.focus()\n }\n}\n\nonKeyStroke('ArrowUp', (e) => keynav(e, -1), {target: referenceElement})\nonKeyStroke('ArrowDown', (e) => keynav(e, 1), {target: referenceElement})\nonKeyStroke('ArrowUp', (e) => keynav(e, -1), {target: floatingElement})\nonKeyStroke('ArrowDown', (e) => keynav(e, 1), {target: floatingElement})\n\nconst sizeStyles = ref<CSSProperties>({})\nconst floatingMiddleware = computed<readonly Middleware[]>(() => {\n if (props.floatingMiddleware !== undefined) {\n return props.floatingMiddleware\n }\n const localOffset =\n typeof props.offset === 'string' || typeof props.offset === 'number'\n ? offsetToNumber.value\n : props.offset\n const arr: Middleware[] = [offsetMiddleware(localOffset)]\n if (props.noFlip === false) {\n arr.push(\n flip({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.noShift === false) {\n arr.push(\n shift({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.noSize === false) {\n arr.push(\n sizeMiddleware({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n apply({availableWidth, availableHeight}) {\n sizeStyles.value = {\n '--bv-floating-max-height':\n availableHeight >= (floatingElement.value?.scrollHeight ?? 0)\n ? undefined\n : availableHeight\n ? `${Math.max(0, availableHeight)}px`\n : undefined,\n '--bv-floating-max-width':\n availableWidth >= (floatingElement.value?.scrollWidth ?? 0)\n ? undefined\n : availableWidth\n ? `${Math.max(0, availableWidth)}px`\n : undefined,\n }\n },\n })\n )\n }\n return arr\n})\nconst {update, floatingStyles} = useFloating(referenceElement, floatingElement, {\n placement: () => props.placement,\n middleware: floatingMiddleware as ComputedRef<Middleware[]>,\n strategy: toRef(() => props.strategy),\n})\n\nconst inButtonGroupAttributes = inButtonGroup\n ? {\n class: 'btn-group',\n role: 'group',\n }\n : undefined\n\nconst computedClasses = computed(() => [\n inButtonGroupAttributes?.class,\n props.wrapperClass,\n {\n 'btn-group': !props.wrapperClass && props.split,\n [`drop${resolveBootstrapCaret(props.placement)}`]: !props.wrapperClass,\n 'position-static': props.boundary !== 'clippingAncestors' && !props.isNav,\n },\n])\n\nconst buttonClasses = computed(() => [\n props.split ? props.splitClass : props.toggleClass,\n {\n 'nav-link': props.isNav,\n 'dropdown-toggle': !props.split,\n 'dropdown-toggle-no-caret': props.noCaret && !props.split,\n 'show': props.split ? undefined : showRef.value,\n },\n])\n\nconst onButtonClick = () => {\n toggle()\n}\n\nconst onSplitClick = (event: Readonly<MouseEvent>) => {\n if (props.split) {\n emit('split-click', event)\n return\n }\n onButtonClick()\n}\n\nonClickOutside(\n floatingElement,\n () => {\n if (showRef.value && (props.autoClose === true || props.autoClose === 'outside')) {\n hide()\n }\n },\n {ignore: [button, splitButton]}\n)\nconst onClickInside = () => {\n if (showRef.value && (props.autoClose === true || props.autoClose === 'inside')) {\n hide()\n }\n}\n\nwatch(isVisible, () => {\n update()\n})\n\ndefineExpose({\n hide,\n show,\n toggle,\n})\n\nprovide(dropdownInjectionKey, {\n id: computedId,\n show,\n hide,\n toggle,\n visible: readonly(showRef),\n isNav: toRef(() => props.isNav),\n})\n</script>\n"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { c as collapseInjectionKey, g as navbarInjectionKey, u as dropdownInject
2
2
  import { t as useDefaults } from "./useDefaults-BKgBaqOV.mjs";
3
3
  import { t as useColorVariantClasses } from "./useColorVariantClasses-B6Me_Kx6.mjs";
4
4
  import { r as useBLinkHelper, t as BLink_default } from "./BLink-Cz5YCsnv.mjs";
5
- import "./BDropdown-DAHnN54Z.mjs";
5
+ import "./BDropdown-D2pBrZsG.mjs";
6
6
  import { computed, createBlock, createElementBlock, createElementVNode, createTextVNode, defineComponent, inject, mergeProps, normalizeClass, openBlock, renderSlot, resolveDynamicComponent, toDisplayString, unref, useAttrs, withCtx } from "vue";
7
7
  //#endregion
8
8
  //#region src/components/BDropdown/BDropdownDivider.vue
@@ -370,4 +370,4 @@ var BDropdownText_default = /* @__PURE__ */ defineComponent({
370
370
  //#endregion
371
371
  export { BDropdownGroup_default as a, BDropdownHeader_default as i, BDropdownItemButton_default as n, BDropdownForm_default as o, BDropdownItem_default as r, BDropdownDivider_default as s, BDropdownText_default as t };
372
372
 
373
- //# sourceMappingURL=BDropdown-BW_O8vPQ.mjs.map
373
+ //# sourceMappingURL=BDropdown-CRIh9xqy.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"BDropdown-BW_O8vPQ.mjs","names":["$attrs"],"sources":["../src/components/BDropdown/BDropdownDivider.vue","../src/components/BDropdown/BDropdownDivider.vue","../src/components/BDropdown/BDropdownForm.vue","../src/components/BDropdown/BDropdownForm.vue","../src/components/BDropdown/BDropdownGroup.vue","../src/components/BDropdown/BDropdownGroup.vue","../src/components/BDropdown/BDropdownHeader.vue","../src/components/BDropdown/BDropdownHeader.vue","../src/components/BDropdown/BDropdownItem.vue","../src/components/BDropdown/BDropdownItem.vue","../src/components/BDropdown/BDropdownItemButton.vue","../src/components/BDropdown/BDropdownItemButton.vue","../src/components/BDropdown/BDropdownText.vue","../src/components/BDropdown/BDropdownText.vue"],"sourcesContent":["<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"wrapperAttrs\">\n <component\n :is=\"props.tag\"\n class=\"dropdown-divider\"\n :class=\"props.dividerClass\"\n role=\"separator\"\n aria-orientation=\"horizontal\"\n v-bind=\"processedAttrs.dividerAttrs\"\n />\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownDividerProps} from '../../types/ComponentProps'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownDividerProps>(), {\n dividerClass: undefined,\n tag: 'hr',\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownDivider')\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...dividerAttrs} = attrs\n return {wrapperClass, dividerAttrs}\n})\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"wrapperAttrs\">\n <component\n :is=\"props.tag\"\n class=\"dropdown-divider\"\n :class=\"props.dividerClass\"\n role=\"separator\"\n aria-orientation=\"horizontal\"\n v-bind=\"processedAttrs.dividerAttrs\"\n />\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownDividerProps} from '../../types/ComponentProps'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownDividerProps>(), {\n dividerClass: undefined,\n tag: 'hr',\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownDivider')\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...dividerAttrs} = attrs\n return {wrapperClass, dividerAttrs}\n})\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"props.wrapperAttrs\">\n <form\n class=\"dropdown-item-text\"\n :class=\"computedClasses\"\n :novalidate=\"props.novalidate\"\n v-bind=\"processedAttrs.formAttrs\"\n >\n <slot />\n </form>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownFormProps} from '../../types/ComponentProps'\nimport type {BDropdownFormSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownFormProps>(), {\n formClass: undefined,\n novalidate: undefined,\n validated: undefined,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownForm')\ndefineSlots<BDropdownFormSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...formAttrs} = attrs\n return {wrapperClass, formAttrs}\n})\n\nconst computedClasses = computed(() => [\n props.formClass,\n {\n 'was-validated': props.validated,\n },\n])\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"props.wrapperAttrs\">\n <form\n class=\"dropdown-item-text\"\n :class=\"computedClasses\"\n :novalidate=\"props.novalidate\"\n v-bind=\"processedAttrs.formAttrs\"\n >\n <slot />\n </form>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownFormProps} from '../../types/ComponentProps'\nimport type {BDropdownFormSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownFormProps>(), {\n formClass: undefined,\n novalidate: undefined,\n validated: undefined,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownForm')\ndefineSlots<BDropdownFormSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...formAttrs} = attrs\n return {wrapperClass, formAttrs}\n})\n\nconst computedClasses = computed(() => [\n props.formClass,\n {\n 'was-validated': props.validated,\n },\n])\n</script>\n","<template>\n <li role=\"presentation\">\n <component\n :is=\"props.headerTag\"\n :id=\"headerId\"\n class=\"dropdown-header\"\n :class=\"computedClasses\"\n :role=\"headerRole\"\n >\n <slot name=\"header\">\n {{ props.header }}\n </slot>\n </component>\n <ul\n :id=\"props.id\"\n role=\"group\"\n class=\"list-unstyled\"\n v-bind=\"$attrs\"\n :aria-describedby=\"props.ariaDescribedby || headerId\"\n >\n <slot />\n </ul>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownGroupProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport type {BDropdownGroupSlots} from '../../types/ComponentSlots'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownGroupProps>(), {\n ariaDescribedby: undefined,\n header: undefined,\n headerClass: undefined,\n headerTag: 'header',\n headerVariant: null,\n id: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownGroup')\ndefineSlots<BDropdownGroupSlots>()\n\nconst headerId = computed(() => (props.id ? `${props.id}_group_dd_header` : undefined))\nconst headerRole = computed(() => (props.headerTag === 'header' ? undefined : 'heading'))\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.headerVariant,\n }))\n)\nconst computedClasses = computed(() => [props.headerClass, colorClasses.value])\n</script>\n","<template>\n <li role=\"presentation\">\n <component\n :is=\"props.headerTag\"\n :id=\"headerId\"\n class=\"dropdown-header\"\n :class=\"computedClasses\"\n :role=\"headerRole\"\n >\n <slot name=\"header\">\n {{ props.header }}\n </slot>\n </component>\n <ul\n :id=\"props.id\"\n role=\"group\"\n class=\"list-unstyled\"\n v-bind=\"$attrs\"\n :aria-describedby=\"props.ariaDescribedby || headerId\"\n >\n <slot />\n </ul>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownGroupProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport type {BDropdownGroupSlots} from '../../types/ComponentSlots'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownGroupProps>(), {\n ariaDescribedby: undefined,\n header: undefined,\n headerClass: undefined,\n headerTag: 'header',\n headerVariant: null,\n id: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownGroup')\ndefineSlots<BDropdownGroupSlots>()\n\nconst headerId = computed(() => (props.id ? `${props.id}_group_dd_header` : undefined))\nconst headerRole = computed(() => (props.headerTag === 'header' ? undefined : 'heading'))\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.headerVariant,\n }))\n)\nconst computedClasses = computed(() => [props.headerClass, colorClasses.value])\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"wrapperAttrs\">\n <component\n :is=\"props.tag\"\n class=\"dropdown-header\"\n :class=\"[colorClasses, props.headerClass]\"\n v-bind=\"processedAttrs.headerAttrs\"\n >\n <slot>\n {{ props.text }}\n </slot>\n </component>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownHeaderProps} from '../../types/ComponentProps'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BDropdownHeaderSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownHeaderProps>(), {\n headerClass: undefined,\n tag: 'h6',\n text: undefined,\n variant: null,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownHeader')\ndefineSlots<BDropdownHeaderSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...headerAttrs} = attrs\n return {wrapperClass, headerAttrs}\n})\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"wrapperAttrs\">\n <component\n :is=\"props.tag\"\n class=\"dropdown-header\"\n :class=\"[colorClasses, props.headerClass]\"\n v-bind=\"processedAttrs.headerAttrs\"\n >\n <slot>\n {{ props.text }}\n </slot>\n </component>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownHeaderProps} from '../../types/ComponentProps'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BDropdownHeaderSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownHeaderProps>(), {\n headerClass: undefined,\n tag: 'h6',\n text: undefined,\n variant: null,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownHeader')\ndefineSlots<BDropdownHeaderSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...headerAttrs} = attrs\n return {wrapperClass, headerAttrs}\n})\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"props.wrapperAttrs\">\n <component\n :is=\"computedTag\"\n class=\"dropdown-item\"\n :class=\"computedClasses\"\n :disabled=\"props.disabled\"\n :aria-disabled=\"props.disabled ? true : null\"\n :aria-current=\"props.active ? true : null\"\n :href=\"computedTag === 'a' ? props.href : null\"\n :rel=\"props.rel\"\n role=\"menuitem\"\n :type=\"computedTag === 'button' ? 'button' : null\"\n :target=\"props.target\"\n v-bind=\"{...computedLinkProps, ...processedAttrs.dropdownItemAttrs}\"\n @click=\"clicked\"\n >\n <slot />\n </component>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport BLink from '../BLink/BLink.vue'\nimport {computed, inject, useAttrs} from 'vue'\nimport type {BDropdownItemProps} from '../../types/ComponentProps'\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport {collapseInjectionKey, dropdownInjectionKey, navbarInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BDropdownItemEmits, BDropdownItemSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownItemProps>(), {\n wrapperAttrs: undefined,\n // Link props\n linkClass: undefined,\n variant: null,\n // All others use defaults\n active: undefined,\n activeClass: undefined,\n disabled: undefined,\n exactActiveClass: undefined,\n href: undefined,\n icon: undefined,\n opacity: undefined,\n stretched: false,\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 // End link props\n})\nconst props = useDefaults(_props, 'BDropdownItem')\nconst emit = defineEmits<BDropdownItemEmits>()\ndefineSlots<BDropdownItemSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...dropdownItemAttrs} = attrs\n return {wrapperClass, dropdownItemAttrs}\n})\n\nconst {computedLink, computedLinkProps} = useBLinkHelper(props)\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n props.linkClass,\n colorClasses.value,\n {\n active: props.active,\n disabled: props.disabled,\n },\n])\n\nconst computedTag = computed(() => (computedLink.value ? BLink : props.href ? 'a' : 'button'))\n\nconst collapseData = inject(collapseInjectionKey, null)\nconst dropdownData = inject(dropdownInjectionKey, null)\nconst navbarData = inject(navbarInjectionKey, null)\n\n// Pretty sure this emits if computedTag is not button and is disabled\nconst clicked = (e: Readonly<MouseEvent>): void => {\n emit('click', e)\n if (navbarData !== null && navbarData?.noAutoClose?.value !== true) {\n collapseData?.hide?.()\n }\n dropdownData?.hide?.()\n}\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"props.wrapperAttrs\">\n <component\n :is=\"computedTag\"\n class=\"dropdown-item\"\n :class=\"computedClasses\"\n :disabled=\"props.disabled\"\n :aria-disabled=\"props.disabled ? true : null\"\n :aria-current=\"props.active ? true : null\"\n :href=\"computedTag === 'a' ? props.href : null\"\n :rel=\"props.rel\"\n role=\"menuitem\"\n :type=\"computedTag === 'button' ? 'button' : null\"\n :target=\"props.target\"\n v-bind=\"{...computedLinkProps, ...processedAttrs.dropdownItemAttrs}\"\n @click=\"clicked\"\n >\n <slot />\n </component>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport BLink from '../BLink/BLink.vue'\nimport {computed, inject, useAttrs} from 'vue'\nimport type {BDropdownItemProps} from '../../types/ComponentProps'\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport {collapseInjectionKey, dropdownInjectionKey, navbarInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BDropdownItemEmits, BDropdownItemSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownItemProps>(), {\n wrapperAttrs: undefined,\n // Link props\n linkClass: undefined,\n variant: null,\n // All others use defaults\n active: undefined,\n activeClass: undefined,\n disabled: undefined,\n exactActiveClass: undefined,\n href: undefined,\n icon: undefined,\n opacity: undefined,\n stretched: false,\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 // End link props\n})\nconst props = useDefaults(_props, 'BDropdownItem')\nconst emit = defineEmits<BDropdownItemEmits>()\ndefineSlots<BDropdownItemSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...dropdownItemAttrs} = attrs\n return {wrapperClass, dropdownItemAttrs}\n})\n\nconst {computedLink, computedLinkProps} = useBLinkHelper(props)\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n props.linkClass,\n colorClasses.value,\n {\n active: props.active,\n disabled: props.disabled,\n },\n])\n\nconst computedTag = computed(() => (computedLink.value ? BLink : props.href ? 'a' : 'button'))\n\nconst collapseData = inject(collapseInjectionKey, null)\nconst dropdownData = inject(dropdownInjectionKey, null)\nconst navbarData = inject(navbarInjectionKey, null)\n\n// Pretty sure this emits if computedTag is not button and is disabled\nconst clicked = (e: Readonly<MouseEvent>): void => {\n emit('click', e)\n if (navbarData !== null && navbarData?.noAutoClose?.value !== true) {\n collapseData?.hide?.()\n }\n dropdownData?.hide?.()\n}\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"props.wrapperAttrs\">\n <button\n role=\"menu\"\n type=\"button\"\n class=\"dropdown-item\"\n :class=\"computedClasses\"\n :disabled=\"props.disabled\"\n v-bind=\"processedAttrs.buttonAttrs\"\n @click=\"clicked\"\n >\n <slot />\n </button>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BDropdownItemButtonEmits, BDropdownItemButtonSlots} from '../../types'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownItemButtonProps} from '../../types/ComponentProps'\nimport {computed, useAttrs} from 'vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownItemButtonProps>(), {\n active: false,\n activeClass: 'active',\n buttonClass: undefined,\n disabled: false,\n variant: null,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownItemButton')\nconst emit = defineEmits<BDropdownItemButtonEmits>()\ndefineSlots<BDropdownItemButtonSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...buttonAttrs} = attrs\n return {wrapperClass, buttonAttrs}\n})\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n props.buttonClass,\n colorClasses.value,\n {\n [props.activeClass]: props.active,\n disabled: props.disabled,\n },\n])\n\nconst clicked = (e: Readonly<MouseEvent>) => {\n if (props.disabled) {\n e.preventDefault()\n e.stopPropagation()\n return\n }\n emit('click', e)\n}\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"props.wrapperAttrs\">\n <button\n role=\"menu\"\n type=\"button\"\n class=\"dropdown-item\"\n :class=\"computedClasses\"\n :disabled=\"props.disabled\"\n v-bind=\"processedAttrs.buttonAttrs\"\n @click=\"clicked\"\n >\n <slot />\n </button>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BDropdownItemButtonEmits, BDropdownItemButtonSlots} from '../../types'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownItemButtonProps} from '../../types/ComponentProps'\nimport {computed, useAttrs} from 'vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownItemButtonProps>(), {\n active: false,\n activeClass: 'active',\n buttonClass: undefined,\n disabled: false,\n variant: null,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownItemButton')\nconst emit = defineEmits<BDropdownItemButtonEmits>()\ndefineSlots<BDropdownItemButtonSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...buttonAttrs} = attrs\n return {wrapperClass, buttonAttrs}\n})\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n props.buttonClass,\n colorClasses.value,\n {\n [props.activeClass]: props.active,\n disabled: props.disabled,\n },\n])\n\nconst clicked = (e: Readonly<MouseEvent>) => {\n if (props.disabled) {\n e.preventDefault()\n e.stopPropagation()\n return\n }\n emit('click', e)\n}\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"wrapperAttrs\">\n <component\n :is=\"props.tag\"\n class=\"dropdown-item-text\"\n :class=\"[colorClasses, props.textClass]\"\n v-bind=\"processedAttrs.textAttrs\"\n >\n <slot>\n {{ props.text }}\n </slot>\n </component>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownTextProps} from '../../types/ComponentProps'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BDropdownTextSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownTextProps>(), {\n textClass: undefined,\n tag: 'span',\n text: undefined,\n variant: null,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownText')\ndefineSlots<BDropdownTextSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...textAttrs} = attrs\n return {wrapperClass, textAttrs}\n})\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"wrapperAttrs\">\n <component\n :is=\"props.tag\"\n class=\"dropdown-item-text\"\n :class=\"[colorClasses, props.textClass]\"\n v-bind=\"processedAttrs.textAttrs\"\n >\n <slot>\n {{ props.text }}\n </slot>\n </component>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownTextProps} from '../../types/ComponentProps'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BDropdownTextSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownTextProps>(), {\n textClass: undefined,\n tag: 'span',\n text: undefined,\n variant: null,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownText')\ndefineSlots<BDropdownTextSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...textAttrs} = attrs\n return {wrapperClass, textAttrs}\n})\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"BDropdown-CRIh9xqy.mjs","names":["$attrs"],"sources":["../src/components/BDropdown/BDropdownDivider.vue","../src/components/BDropdown/BDropdownDivider.vue","../src/components/BDropdown/BDropdownForm.vue","../src/components/BDropdown/BDropdownForm.vue","../src/components/BDropdown/BDropdownGroup.vue","../src/components/BDropdown/BDropdownGroup.vue","../src/components/BDropdown/BDropdownHeader.vue","../src/components/BDropdown/BDropdownHeader.vue","../src/components/BDropdown/BDropdownItem.vue","../src/components/BDropdown/BDropdownItem.vue","../src/components/BDropdown/BDropdownItemButton.vue","../src/components/BDropdown/BDropdownItemButton.vue","../src/components/BDropdown/BDropdownText.vue","../src/components/BDropdown/BDropdownText.vue"],"sourcesContent":["<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"wrapperAttrs\">\n <component\n :is=\"props.tag\"\n class=\"dropdown-divider\"\n :class=\"props.dividerClass\"\n role=\"separator\"\n aria-orientation=\"horizontal\"\n v-bind=\"processedAttrs.dividerAttrs\"\n />\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownDividerProps} from '../../types/ComponentProps'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownDividerProps>(), {\n dividerClass: undefined,\n tag: 'hr',\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownDivider')\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...dividerAttrs} = attrs\n return {wrapperClass, dividerAttrs}\n})\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"wrapperAttrs\">\n <component\n :is=\"props.tag\"\n class=\"dropdown-divider\"\n :class=\"props.dividerClass\"\n role=\"separator\"\n aria-orientation=\"horizontal\"\n v-bind=\"processedAttrs.dividerAttrs\"\n />\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownDividerProps} from '../../types/ComponentProps'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownDividerProps>(), {\n dividerClass: undefined,\n tag: 'hr',\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownDivider')\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...dividerAttrs} = attrs\n return {wrapperClass, dividerAttrs}\n})\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"props.wrapperAttrs\">\n <form\n class=\"dropdown-item-text\"\n :class=\"computedClasses\"\n :novalidate=\"props.novalidate\"\n v-bind=\"processedAttrs.formAttrs\"\n >\n <slot />\n </form>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownFormProps} from '../../types/ComponentProps'\nimport type {BDropdownFormSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownFormProps>(), {\n formClass: undefined,\n novalidate: undefined,\n validated: undefined,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownForm')\ndefineSlots<BDropdownFormSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...formAttrs} = attrs\n return {wrapperClass, formAttrs}\n})\n\nconst computedClasses = computed(() => [\n props.formClass,\n {\n 'was-validated': props.validated,\n },\n])\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"props.wrapperAttrs\">\n <form\n class=\"dropdown-item-text\"\n :class=\"computedClasses\"\n :novalidate=\"props.novalidate\"\n v-bind=\"processedAttrs.formAttrs\"\n >\n <slot />\n </form>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownFormProps} from '../../types/ComponentProps'\nimport type {BDropdownFormSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownFormProps>(), {\n formClass: undefined,\n novalidate: undefined,\n validated: undefined,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownForm')\ndefineSlots<BDropdownFormSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...formAttrs} = attrs\n return {wrapperClass, formAttrs}\n})\n\nconst computedClasses = computed(() => [\n props.formClass,\n {\n 'was-validated': props.validated,\n },\n])\n</script>\n","<template>\n <li role=\"presentation\">\n <component\n :is=\"props.headerTag\"\n :id=\"headerId\"\n class=\"dropdown-header\"\n :class=\"computedClasses\"\n :role=\"headerRole\"\n >\n <slot name=\"header\">\n {{ props.header }}\n </slot>\n </component>\n <ul\n :id=\"props.id\"\n role=\"group\"\n class=\"list-unstyled\"\n v-bind=\"$attrs\"\n :aria-describedby=\"props.ariaDescribedby || headerId\"\n >\n <slot />\n </ul>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownGroupProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport type {BDropdownGroupSlots} from '../../types/ComponentSlots'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownGroupProps>(), {\n ariaDescribedby: undefined,\n header: undefined,\n headerClass: undefined,\n headerTag: 'header',\n headerVariant: null,\n id: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownGroup')\ndefineSlots<BDropdownGroupSlots>()\n\nconst headerId = computed(() => (props.id ? `${props.id}_group_dd_header` : undefined))\nconst headerRole = computed(() => (props.headerTag === 'header' ? undefined : 'heading'))\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.headerVariant,\n }))\n)\nconst computedClasses = computed(() => [props.headerClass, colorClasses.value])\n</script>\n","<template>\n <li role=\"presentation\">\n <component\n :is=\"props.headerTag\"\n :id=\"headerId\"\n class=\"dropdown-header\"\n :class=\"computedClasses\"\n :role=\"headerRole\"\n >\n <slot name=\"header\">\n {{ props.header }}\n </slot>\n </component>\n <ul\n :id=\"props.id\"\n role=\"group\"\n class=\"list-unstyled\"\n v-bind=\"$attrs\"\n :aria-describedby=\"props.ariaDescribedby || headerId\"\n >\n <slot />\n </ul>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownGroupProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport type {BDropdownGroupSlots} from '../../types/ComponentSlots'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownGroupProps>(), {\n ariaDescribedby: undefined,\n header: undefined,\n headerClass: undefined,\n headerTag: 'header',\n headerVariant: null,\n id: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownGroup')\ndefineSlots<BDropdownGroupSlots>()\n\nconst headerId = computed(() => (props.id ? `${props.id}_group_dd_header` : undefined))\nconst headerRole = computed(() => (props.headerTag === 'header' ? undefined : 'heading'))\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.headerVariant,\n }))\n)\nconst computedClasses = computed(() => [props.headerClass, colorClasses.value])\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"wrapperAttrs\">\n <component\n :is=\"props.tag\"\n class=\"dropdown-header\"\n :class=\"[colorClasses, props.headerClass]\"\n v-bind=\"processedAttrs.headerAttrs\"\n >\n <slot>\n {{ props.text }}\n </slot>\n </component>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownHeaderProps} from '../../types/ComponentProps'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BDropdownHeaderSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownHeaderProps>(), {\n headerClass: undefined,\n tag: 'h6',\n text: undefined,\n variant: null,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownHeader')\ndefineSlots<BDropdownHeaderSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...headerAttrs} = attrs\n return {wrapperClass, headerAttrs}\n})\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"wrapperAttrs\">\n <component\n :is=\"props.tag\"\n class=\"dropdown-header\"\n :class=\"[colorClasses, props.headerClass]\"\n v-bind=\"processedAttrs.headerAttrs\"\n >\n <slot>\n {{ props.text }}\n </slot>\n </component>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownHeaderProps} from '../../types/ComponentProps'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BDropdownHeaderSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownHeaderProps>(), {\n headerClass: undefined,\n tag: 'h6',\n text: undefined,\n variant: null,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownHeader')\ndefineSlots<BDropdownHeaderSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...headerAttrs} = attrs\n return {wrapperClass, headerAttrs}\n})\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"props.wrapperAttrs\">\n <component\n :is=\"computedTag\"\n class=\"dropdown-item\"\n :class=\"computedClasses\"\n :disabled=\"props.disabled\"\n :aria-disabled=\"props.disabled ? true : null\"\n :aria-current=\"props.active ? true : null\"\n :href=\"computedTag === 'a' ? props.href : null\"\n :rel=\"props.rel\"\n role=\"menuitem\"\n :type=\"computedTag === 'button' ? 'button' : null\"\n :target=\"props.target\"\n v-bind=\"{...computedLinkProps, ...processedAttrs.dropdownItemAttrs}\"\n @click=\"clicked\"\n >\n <slot />\n </component>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport BLink from '../BLink/BLink.vue'\nimport {computed, inject, useAttrs} from 'vue'\nimport type {BDropdownItemProps} from '../../types/ComponentProps'\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport {collapseInjectionKey, dropdownInjectionKey, navbarInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BDropdownItemEmits, BDropdownItemSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownItemProps>(), {\n wrapperAttrs: undefined,\n // Link props\n linkClass: undefined,\n variant: null,\n // All others use defaults\n active: undefined,\n activeClass: undefined,\n disabled: undefined,\n exactActiveClass: undefined,\n href: undefined,\n icon: undefined,\n opacity: undefined,\n stretched: false,\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 // End link props\n})\nconst props = useDefaults(_props, 'BDropdownItem')\nconst emit = defineEmits<BDropdownItemEmits>()\ndefineSlots<BDropdownItemSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...dropdownItemAttrs} = attrs\n return {wrapperClass, dropdownItemAttrs}\n})\n\nconst {computedLink, computedLinkProps} = useBLinkHelper(props)\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n props.linkClass,\n colorClasses.value,\n {\n active: props.active,\n disabled: props.disabled,\n },\n])\n\nconst computedTag = computed(() => (computedLink.value ? BLink : props.href ? 'a' : 'button'))\n\nconst collapseData = inject(collapseInjectionKey, null)\nconst dropdownData = inject(dropdownInjectionKey, null)\nconst navbarData = inject(navbarInjectionKey, null)\n\n// Pretty sure this emits if computedTag is not button and is disabled\nconst clicked = (e: Readonly<MouseEvent>): void => {\n emit('click', e)\n if (navbarData !== null && navbarData?.noAutoClose?.value !== true) {\n collapseData?.hide?.()\n }\n dropdownData?.hide?.()\n}\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"props.wrapperAttrs\">\n <component\n :is=\"computedTag\"\n class=\"dropdown-item\"\n :class=\"computedClasses\"\n :disabled=\"props.disabled\"\n :aria-disabled=\"props.disabled ? true : null\"\n :aria-current=\"props.active ? true : null\"\n :href=\"computedTag === 'a' ? props.href : null\"\n :rel=\"props.rel\"\n role=\"menuitem\"\n :type=\"computedTag === 'button' ? 'button' : null\"\n :target=\"props.target\"\n v-bind=\"{...computedLinkProps, ...processedAttrs.dropdownItemAttrs}\"\n @click=\"clicked\"\n >\n <slot />\n </component>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport BLink from '../BLink/BLink.vue'\nimport {computed, inject, useAttrs} from 'vue'\nimport type {BDropdownItemProps} from '../../types/ComponentProps'\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport {collapseInjectionKey, dropdownInjectionKey, navbarInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BDropdownItemEmits, BDropdownItemSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownItemProps>(), {\n wrapperAttrs: undefined,\n // Link props\n linkClass: undefined,\n variant: null,\n // All others use defaults\n active: undefined,\n activeClass: undefined,\n disabled: undefined,\n exactActiveClass: undefined,\n href: undefined,\n icon: undefined,\n opacity: undefined,\n stretched: false,\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 // End link props\n})\nconst props = useDefaults(_props, 'BDropdownItem')\nconst emit = defineEmits<BDropdownItemEmits>()\ndefineSlots<BDropdownItemSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...dropdownItemAttrs} = attrs\n return {wrapperClass, dropdownItemAttrs}\n})\n\nconst {computedLink, computedLinkProps} = useBLinkHelper(props)\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n props.linkClass,\n colorClasses.value,\n {\n active: props.active,\n disabled: props.disabled,\n },\n])\n\nconst computedTag = computed(() => (computedLink.value ? BLink : props.href ? 'a' : 'button'))\n\nconst collapseData = inject(collapseInjectionKey, null)\nconst dropdownData = inject(dropdownInjectionKey, null)\nconst navbarData = inject(navbarInjectionKey, null)\n\n// Pretty sure this emits if computedTag is not button and is disabled\nconst clicked = (e: Readonly<MouseEvent>): void => {\n emit('click', e)\n if (navbarData !== null && navbarData?.noAutoClose?.value !== true) {\n collapseData?.hide?.()\n }\n dropdownData?.hide?.()\n}\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"props.wrapperAttrs\">\n <button\n role=\"menu\"\n type=\"button\"\n class=\"dropdown-item\"\n :class=\"computedClasses\"\n :disabled=\"props.disabled\"\n v-bind=\"processedAttrs.buttonAttrs\"\n @click=\"clicked\"\n >\n <slot />\n </button>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BDropdownItemButtonEmits, BDropdownItemButtonSlots} from '../../types'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownItemButtonProps} from '../../types/ComponentProps'\nimport {computed, useAttrs} from 'vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownItemButtonProps>(), {\n active: false,\n activeClass: 'active',\n buttonClass: undefined,\n disabled: false,\n variant: null,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownItemButton')\nconst emit = defineEmits<BDropdownItemButtonEmits>()\ndefineSlots<BDropdownItemButtonSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...buttonAttrs} = attrs\n return {wrapperClass, buttonAttrs}\n})\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n props.buttonClass,\n colorClasses.value,\n {\n [props.activeClass]: props.active,\n disabled: props.disabled,\n },\n])\n\nconst clicked = (e: Readonly<MouseEvent>) => {\n if (props.disabled) {\n e.preventDefault()\n e.stopPropagation()\n return\n }\n emit('click', e)\n}\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"props.wrapperAttrs\">\n <button\n role=\"menu\"\n type=\"button\"\n class=\"dropdown-item\"\n :class=\"computedClasses\"\n :disabled=\"props.disabled\"\n v-bind=\"processedAttrs.buttonAttrs\"\n @click=\"clicked\"\n >\n <slot />\n </button>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BDropdownItemButtonEmits, BDropdownItemButtonSlots} from '../../types'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownItemButtonProps} from '../../types/ComponentProps'\nimport {computed, useAttrs} from 'vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownItemButtonProps>(), {\n active: false,\n activeClass: 'active',\n buttonClass: undefined,\n disabled: false,\n variant: null,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownItemButton')\nconst emit = defineEmits<BDropdownItemButtonEmits>()\ndefineSlots<BDropdownItemButtonSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...buttonAttrs} = attrs\n return {wrapperClass, buttonAttrs}\n})\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n props.buttonClass,\n colorClasses.value,\n {\n [props.activeClass]: props.active,\n disabled: props.disabled,\n },\n])\n\nconst clicked = (e: Readonly<MouseEvent>) => {\n if (props.disabled) {\n e.preventDefault()\n e.stopPropagation()\n return\n }\n emit('click', e)\n}\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"wrapperAttrs\">\n <component\n :is=\"props.tag\"\n class=\"dropdown-item-text\"\n :class=\"[colorClasses, props.textClass]\"\n v-bind=\"processedAttrs.textAttrs\"\n >\n <slot>\n {{ props.text }}\n </slot>\n </component>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownTextProps} from '../../types/ComponentProps'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BDropdownTextSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownTextProps>(), {\n textClass: undefined,\n tag: 'span',\n text: undefined,\n variant: null,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownText')\ndefineSlots<BDropdownTextSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...textAttrs} = attrs\n return {wrapperClass, textAttrs}\n})\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\n</script>\n","<template>\n <li role=\"presentation\" :class=\"processedAttrs.wrapperClass\" v-bind=\"wrapperAttrs\">\n <component\n :is=\"props.tag\"\n class=\"dropdown-item-text\"\n :class=\"[colorClasses, props.textClass]\"\n v-bind=\"processedAttrs.textAttrs\"\n >\n <slot>\n {{ props.text }}\n </slot>\n </component>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, useAttrs} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BDropdownTextProps} from '../../types/ComponentProps'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BDropdownTextSlots} from '../../types'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BDropdownTextProps>(), {\n textClass: undefined,\n tag: 'span',\n text: undefined,\n variant: null,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BDropdownText')\ndefineSlots<BDropdownTextSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...textAttrs} = attrs\n return {wrapperClass, textAttrs}\n})\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n textVariant: props.variant,\n }))\n)\n</script>\n"],"mappings":"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"}
@@ -4,11 +4,11 @@ import { i as getSafeDocument } from "./dom-AhkaSoh8.mjs";
4
4
  import { t as useDefaults } from "./useDefaults-BKgBaqOV.mjs";
5
5
  import { t as useId$1 } from "./useId-BKZFSYm8.mjs";
6
6
  import { t as useShowHide } from "./useShowHide-yAK5dhPT.mjs";
7
- import { t as BButton_default } from "./BButton-BRvIFnRm.mjs";
7
+ import { t as BButton_default } from "./BButton-CDo9SRvU.mjs";
8
8
  import { t as ConditionalTeleport_default } from "./ConditionalTeleport-BNsziElf.mjs";
9
9
  import { a as flip, d as size, i as autoUpdate, l as offset, n as useFloating, u as shift } from "./floating-ui.vue-CAMaNcqI.mjs";
10
10
  import { t as ConditionalWrapper_default } from "./ConditionalWrapper-D9ovtbHB.mjs";
11
- import { a as resolveBootstrapCaret, n as isBoundary, r as isRootBoundary } from "./floatingUi-DHMrP__c.mjs";
11
+ import { a as resolveBootstrapCaret, n as isBoundary, r as isRootBoundary } from "./floatingUi-BAUk171g.mjs";
12
12
  import { t as getElement } from "./getElement-0_htvrFw.mjs";
13
13
  import { Transition, computed, createBlock, createCommentVNode, createElementVNode, createTextVNode, createVNode, defineComponent, inject, mergeModels, mergeProps, nextTick, normalizeClass, normalizeStyle, openBlock, provide, readonly, ref, renderSlot, toDisplayString, toRef, unref, useModel, useTemplateRef, vShow, watch, withCtx, withDirectives } from "vue";
14
14
  //#region src/components/BDropdown/BDropdown.vue?vue&type=script&setup=true&lang.ts
@@ -63,7 +63,7 @@ var BDropdown_default = /* @__PURE__ */ defineComponent({
63
63
  },
64
64
  offset: { default: 0 },
65
65
  role: { default: "menu" },
66
- size: { default: "md" },
66
+ size: { default: void 0 },
67
67
  noWrapper: {
68
68
  type: Boolean,
69
69
  default: false
@@ -83,6 +83,7 @@ var BDropdown_default = /* @__PURE__ */ defineComponent({
83
83
  splitVariant: { default: void 0 },
84
84
  strategy: { default: "absolute" },
85
85
  text: { default: void 0 },
86
+ toggleAttrs: { default: void 0 },
86
87
  toggleClass: { default: void 0 },
87
88
  toggleText: { default: "Toggle dropdown" },
88
89
  variant: { default: "secondary" },
@@ -297,12 +298,12 @@ var BDropdown_default = /* @__PURE__ */ defineComponent({
297
298
  role: unref(inButtonGroupAttributes)?.role
298
299
  }, {
299
300
  default: withCtx(() => [
300
- createVNode(BButton_default, {
301
+ createVNode(BButton_default, mergeProps({
301
302
  id: unref(computedId),
302
303
  ref: "_splitButton",
303
304
  variant: unref(props).splitVariant || unref(props).variant,
304
305
  size: unref(props).size,
305
- class: normalizeClass(buttonClasses.value),
306
+ class: buttonClasses.value,
306
307
  disabled: unref(props).splitDisabled || unref(props).disabled,
307
308
  type: unref(props).splitButtonType,
308
309
  "aria-label": unref(props).ariaLabel,
@@ -310,12 +311,11 @@ var BDropdown_default = /* @__PURE__ */ defineComponent({
310
311
  "aria-haspopup": unref(props).split ? void 0 : "menu",
311
312
  href: unref(props).split ? unref(props).splitHref : void 0,
312
313
  icon: unref(props).icon,
313
- to: unref(props).split && unref(props).splitTo ? unref(props).splitTo : void 0,
314
- onClick: onSplitClick
315
- }, {
314
+ to: unref(props).split && unref(props).splitTo ? unref(props).splitTo : void 0
315
+ }, !unref(props).split ? unref(props).toggleAttrs : void 0, { onClick: onSplitClick }), {
316
316
  default: withCtx(() => [renderSlot(_ctx.$slots, "button-content", {}, () => [createTextVNode(toDisplayString(unref(props).text), 1)])]),
317
317
  _: 3
318
- }, 8, [
318
+ }, 16, [
319
319
  "id",
320
320
  "variant",
321
321
  "size",
@@ -329,21 +329,20 @@ var BDropdown_default = /* @__PURE__ */ defineComponent({
329
329
  "icon",
330
330
  "to"
331
331
  ]),
332
- unref(props).split ? (openBlock(), createBlock(BButton_default, {
332
+ unref(props).split ? (openBlock(), createBlock(BButton_default, mergeProps({
333
333
  key: 0,
334
334
  id: unref(computedId) + "-split",
335
335
  ref: "_button",
336
336
  variant: unref(props).variant,
337
337
  size: unref(props).size,
338
338
  disabled: unref(props).disabled,
339
- class: normalizeClass([[unref(props).toggleClass, { show: unref(showRef) }], "dropdown-toggle-split dropdown-toggle"]),
339
+ class: [[unref(props).toggleClass, { show: unref(showRef) }], "dropdown-toggle-split dropdown-toggle"],
340
340
  "aria-expanded": unref(showRef),
341
- "aria-haspopup": "menu",
342
- onClick: onButtonClick
343
- }, {
341
+ "aria-haspopup": "menu"
342
+ }, unref(props).toggleAttrs, { onClick: onButtonClick }), {
344
343
  default: withCtx(() => [createElementVNode("span", _hoisted_1, [renderSlot(_ctx.$slots, "toggle-text", {}, () => [createTextVNode(toDisplayString(unref(props).toggleText), 1)])])]),
345
344
  _: 3
346
- }, 8, [
345
+ }, 16, [
347
346
  "id",
348
347
  "variant",
349
348
  "size",
@@ -395,4 +394,4 @@ var BDropdown_default = /* @__PURE__ */ defineComponent({
395
394
  //#endregion
396
395
  export { BDropdown_default as t };
397
396
 
398
- //# sourceMappingURL=BDropdown-DAHnN54Z.mjs.map
397
+ //# sourceMappingURL=BDropdown-D2pBrZsG.mjs.map