bootstrap-vue-next 0.45.9 → 0.46.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 (913) hide show
  1. package/dist/App.vue.d.mts +2 -1
  2. package/dist/App.vue.d.ts +2 -1
  3. package/dist/{BAccordion-D51b9HVD.mjs → BAccordion-FuQ6sMFy.js} +33 -31
  4. package/dist/BAccordion-FuQ6sMFy.js.map +1 -0
  5. package/dist/{BAlert-Ce2uxrJi.mjs → BAlert-C9Mi4RDx.js} +20 -13
  6. package/dist/BAlert-C9Mi4RDx.js.map +1 -0
  7. package/dist/{BApp-B-fUrnpK.mjs → BApp-GXR1wS6K.js} +53 -51
  8. package/dist/BApp-GXR1wS6K.js.map +1 -0
  9. package/dist/{BAspect-wfiXM4KA.mjs → BAspect-BPR6DH5W.js} +2 -2
  10. package/dist/{BAspect-CUIU48Ck.js.map → BAspect-BPR6DH5W.js.map} +1 -1
  11. package/dist/{BAutocomplete-CH-bQzME.mjs → BAutocomplete-DGvKY7-D.js} +195 -101
  12. package/dist/BAutocomplete-DGvKY7-D.js.map +1 -0
  13. package/dist/{BAvatar-iALHbqVk.mjs → BAvatar-BsStQrBF.js} +13 -13
  14. package/dist/BAvatar-BsStQrBF.js.map +1 -0
  15. package/dist/{BBadge-Cx_CdauK.mjs → BBadge-BaZ13wE_.js} +5 -5
  16. package/dist/{BBadge-Db6SEnzy.js.map → BBadge-BaZ13wE_.js.map} +1 -1
  17. package/dist/{BBreadcrumb-BxADbg0O.mjs → BBreadcrumb-C-SsS3hM.js} +4 -4
  18. package/dist/{BBreadcrumb-B9ra7vg2.js.map → BBreadcrumb-C-SsS3hM.js.map} +1 -1
  19. package/dist/{BButton-BSa7LfL5.mjs → BButton-Cc2gd95Z.js} +5 -7
  20. package/dist/{BButton-DRRlzkyK.js.map → BButton-Cc2gd95Z.js.map} +1 -1
  21. package/dist/{BButton-PY7AANXJ.mjs → BButton-KZu5jczf.js} +9 -9
  22. package/dist/{BButton-aYtMnyHu.js.map → BButton-KZu5jczf.js.map} +1 -1
  23. package/dist/{BCard-BWoruisp.mjs → BCard-D2GEiXan.js} +2 -3
  24. package/dist/{BCard-Bh8RLMo_.js.map → BCard-D2GEiXan.js.map} +1 -1
  25. package/dist/{BCard-CHbKv2OR.mjs → BCard-nRj1JWtQ.js} +9 -9
  26. package/dist/{BCard-DwNYhVmg.js.map → BCard-nRj1JWtQ.js.map} +1 -1
  27. package/dist/{BCarousel-B6_bgQpl.mjs → BCarousel-DQgfW4DN.js} +11 -10
  28. package/dist/{BCarousel-2JB21Pcu.js.map → BCarousel-DQgfW4DN.js.map} +1 -1
  29. package/dist/{BCloseButton-CKTKr4PS.mjs → BCloseButton-B3-IdpNp.js} +2 -2
  30. package/dist/{BCloseButton-D42zHRLP.js.map → BCloseButton-B3-IdpNp.js.map} +1 -1
  31. package/dist/{BCol-B3VeEk9z.mjs → BCol-DiZFbqU5.js} +3 -3
  32. package/dist/{BCol-Ck9VydHj.js.map → BCol-DiZFbqU5.js.map} +1 -1
  33. package/dist/{BCollapse-kqhe4AmL.mjs → BCollapse-B9fnWSzA.js} +15 -9
  34. package/dist/BCollapse-B9fnWSzA.js.map +1 -0
  35. package/dist/{BContainer-ATfhaxTc.mjs → BContainer-D-bZVPwa.js} +2 -4
  36. package/dist/{BContainer-CcF6dgtI.js.map → BContainer-D-bZVPwa.js.map} +1 -1
  37. package/dist/{BDateField-CccP3H1R.mjs → BDateField-Bj-Jz7u4.js} +27 -22
  38. package/dist/BDateField-Bj-Jz7u4.js.map +1 -0
  39. package/dist/{BDatePicker-BnwnSkBg.mjs → BDatePicker-AVTYcVLy.js} +232 -148
  40. package/dist/BDatePicker-AVTYcVLy.js.map +1 -0
  41. package/dist/{BDropdown-B1DbvVzm.mjs → BDropdown-CnxUzs42.js} +55 -46
  42. package/dist/BDropdown-CnxUzs42.js.map +1 -0
  43. package/dist/{BDropdown-0E8x5kk6.mjs → BDropdown-D4VSJJxu.js} +5 -6
  44. package/dist/{BDropdown-DKCgBzYS.js.map → BDropdown-D4VSJJxu.js.map} +1 -1
  45. package/dist/{BForm-BVfW08s5.mjs → BForm-BOoX6AAr.js} +2 -2
  46. package/dist/{BForm-cnRpggt9.js.map → BForm-BOoX6AAr.js.map} +1 -1
  47. package/dist/{BForm-DJu2hDV_.mjs → BForm-C5PR2ust.js} +7 -8
  48. package/dist/{BForm-6JlWdQMO.js.map → BForm-C5PR2ust.js.map} +1 -1
  49. package/dist/{BFormCheckbox-Baf_9BSc.mjs → BFormCheckbox-BMhyR-J5.js} +12 -13
  50. package/dist/BFormCheckbox-BMhyR-J5.js.map +1 -0
  51. package/dist/{BFormFile-CZebm0Cp.mjs → BFormFile-BVrDprWL.js} +8 -8
  52. package/dist/{BFormFile-MISLntyJ.js.map → BFormFile-BVrDprWL.js.map} +1 -1
  53. package/dist/{BFormGroup-vysRPb99.mjs → BFormGroup-BE5tGz_g.js} +40 -24
  54. package/dist/BFormGroup-BE5tGz_g.js.map +1 -0
  55. package/dist/{BFormInput-sEfU3CuN.mjs → BFormInput-BwvdFGDu.js} +5 -5
  56. package/dist/{BFormInput-CBwwDjfC.js.map → BFormInput-BwvdFGDu.js.map} +1 -1
  57. package/dist/{BFormOtp-C8X3u1od.mjs → BFormOtp-I1t8dqPS.js} +63 -22
  58. package/dist/BFormOtp-I1t8dqPS.js.map +1 -0
  59. package/dist/{BFormRadio-COc_IbxC.mjs → BFormRadio-DRViMh6V.js} +24 -13
  60. package/dist/BFormRadio-DRViMh6V.js.map +1 -0
  61. package/dist/{BFormRating-CIgPVsH_.mjs → BFormRating-AEiF8K8T.js} +23 -17
  62. package/dist/BFormRating-AEiF8K8T.js.map +1 -0
  63. package/dist/{BFormSelect-P-InkOm-.mjs → BFormSelect-DdjH8482.js} +23 -12
  64. package/dist/BFormSelect-DdjH8482.js.map +1 -0
  65. package/dist/{BFormSelectOption-DFN4lPRh.mjs → BFormSelectOption-C8orMj24.js} +3 -3
  66. package/dist/{BFormSelectOption-DrwJucNf.js.map → BFormSelectOption-C8orMj24.js.map} +1 -1
  67. package/dist/{BFormSpinbutton-6qkTBF_4.mjs → BFormSpinbutton-Bt590uT6.js} +10 -9
  68. package/dist/{BFormSpinbutton-1gTz4nTo.js.map → BFormSpinbutton-Bt590uT6.js.map} +1 -1
  69. package/dist/{BFormTag-CnzI39y9.mjs → BFormTag-DGSUfz7A.js} +5 -5
  70. package/dist/{BFormTag-CeV0MSRC.js.map → BFormTag-DGSUfz7A.js.map} +1 -1
  71. package/dist/{BFormTags-BMltSaKL.mjs → BFormTags-CUcyRTCK.js} +23 -27
  72. package/dist/BFormTags-CUcyRTCK.js.map +1 -0
  73. package/dist/{BFormTextarea-DN1gAfSo.mjs → BFormTextarea-DlDe26DL.js} +6 -6
  74. package/dist/{BFormTextarea-C3Cj0DWj.js.map → BFormTextarea-DlDe26DL.js.map} +1 -1
  75. package/dist/{BFormValidFeedback-CBYxQLDz.mjs → BFormValidFeedback-ClqLRxtH.js} +4 -4
  76. package/dist/{BFormValidFeedback-Kwxh798d.js.map → BFormValidFeedback-ClqLRxtH.js.map} +1 -1
  77. package/dist/{BImg-QBS2ECBc.mjs → BImg-knz2UZQE.js} +5 -5
  78. package/dist/{BImg-JKJLgYYT.js.map → BImg-knz2UZQE.js.map} +1 -1
  79. package/dist/{BInputGroup-DiTSexkT.mjs → BInputGroup-Bjh7zXyI.js} +2 -3
  80. package/dist/{BInputGroup-D4fW324B.js.map → BInputGroup-Bjh7zXyI.js.map} +1 -1
  81. package/dist/{BInputGroup-X2Z53RJx.mjs → BInputGroup-DdoeSICR.js} +3 -3
  82. package/dist/{BInputGroup-Bvlfv6VD.js.map → BInputGroup-DdoeSICR.js.map} +1 -1
  83. package/dist/{BLink-Dfgte6dQ.mjs → BLink-mdwZsC7b.js} +5 -5
  84. package/dist/{BLink-kLEjleB1.js.map → BLink-mdwZsC7b.js.map} +1 -1
  85. package/dist/{BListGroup-DwTLpNiD.mjs → BListGroup-CQedMbI8.js} +4 -4
  86. package/dist/{BListGroup-C8JOzHTz.js.map → BListGroup-CQedMbI8.js.map} +1 -1
  87. package/dist/{BModal-C-ZCau2E.mjs → BModal-NPsCBNo7.js} +25 -18
  88. package/dist/BModal-NPsCBNo7.js.map +1 -0
  89. package/dist/{BNav-DfYvjfRK.mjs → BNav-CjXS9tQ5.js} +9 -9
  90. package/dist/{BNav-DCLambmM.js.map → BNav-CjXS9tQ5.js.map} +1 -1
  91. package/dist/{BNavbar-xYaikQVY.mjs → BNavbar-DRqkdxTk.js} +12 -9
  92. package/dist/{BNavbar-BLWaZJRP.js.map → BNavbar-DRqkdxTk.js.map} +1 -1
  93. package/dist/{BOffcanvas-CF-dWeez.mjs → BOffcanvas-BndaBJoP.js} +22 -16
  94. package/dist/BOffcanvas-BndaBJoP.js.map +1 -0
  95. package/dist/{BOverlay-Bh2PIN_q.mjs → BOverlay-CJfy_f6O.js} +6 -6
  96. package/dist/{BOverlay-Bh4ldxgt.js.map → BOverlay-CJfy_f6O.js.map} +1 -1
  97. package/dist/{BPagination-D75q-ZNg.mjs → BPagination-D_Hfk6OF.js} +29 -27
  98. package/dist/{BPagination-fbjFAtxu.js.map → BPagination-D_Hfk6OF.js.map} +1 -1
  99. package/dist/{BPlaceholder-DPQ6mCLN.mjs → BPlaceholder-DvOCnqDh.js} +11 -11
  100. package/dist/{BPlaceholder-B3rs_39w.js.map → BPlaceholder-DvOCnqDh.js.map} +1 -1
  101. package/dist/{BProgress-BZlrPYhA.mjs → BProgress-BNxYppi-.js} +5 -5
  102. package/dist/{BProgress-th0-eZWo.js.map → BProgress-BNxYppi-.js.map} +1 -1
  103. package/dist/{BRow-eGSUYGCW.mjs → BRow-CoBI89xF.js} +4 -4
  104. package/dist/{BRow-7AOuFiSy.js.map → BRow-CoBI89xF.js.map} +1 -1
  105. package/dist/{BSpinner-CUfGqviV.mjs → BSpinner-H1DZOmiM.js} +4 -4
  106. package/dist/{BSpinner-DbYIp-C7.js.map → BSpinner-H1DZOmiM.js.map} +1 -1
  107. package/dist/{BTable-DUHxxWv5.mjs → BTable-BZxX17YU.js} +40 -33
  108. package/dist/BTable-BZxX17YU.js.map +1 -0
  109. package/dist/{BTableSimple-C-jn9Nwh.mjs → BTableSimple-2Z7ssnuG.js} +5 -5
  110. package/dist/{BTableSimple-BkdGAAKb.js.map → BTableSimple-2Z7ssnuG.js.map} +1 -1
  111. package/dist/{BTabs-D_vWlBjT.mjs → BTabs-BVcu9DPg.js} +19 -17
  112. package/dist/{BTabs-CvecFg5N.js.map → BTabs-BVcu9DPg.js.map} +1 -1
  113. package/dist/{BTimeField-BSDaZogC.mjs → BTimeField-CbRGjaI6.js} +24 -19
  114. package/dist/BTimeField-CbRGjaI6.js.map +1 -0
  115. package/dist/{BToast-Y8BayxES.mjs → BToast-Di9HwBOV.js} +21 -14
  116. package/dist/BToast-Di9HwBOV.js.map +1 -0
  117. package/dist/{BTooltip-CVP8HdkU.mjs → BTooltip-BxaUtV4m.js} +5 -5
  118. package/dist/{BTooltip-DPLYtaL1.js.map → BTooltip-BxaUtV4m.js.map} +1 -1
  119. package/dist/{BootstrapVueOptions-Dt1TQdih.mjs → BootstrapVueOptions-DH79gHKG.js} +1 -4
  120. package/dist/BootstrapVueOptions-DH79gHKG.js.map +1 -0
  121. package/dist/{ConditionalTeleport-B4KYZIM6.mjs → ConditionalTeleport-BCKPLEun.js} +1 -1
  122. package/dist/{ConditionalTeleport-BDWcebyD.js.map → ConditionalTeleport-BCKPLEun.js.map} +1 -1
  123. package/dist/{ConditionalWrapper-Dbc_O6qe.mjs → ConditionalWrapper-CCIk52zt.js} +1 -1
  124. package/dist/{ConditionalWrapper-DZH_VSwb.js.map → ConditionalWrapper-CCIk52zt.js.map} +1 -1
  125. package/dist/{DateRangeFieldInput-B86VEz0H.mjs → DateRangeFieldInput-Cbzjg8iF.js} +45 -22
  126. package/dist/DateRangeFieldInput-Cbzjg8iF.js.map +1 -0
  127. package/dist/{PopperContent-DmSgsjSC.mjs → PopperContent-C9eeL6LH.js} +395 -100
  128. package/dist/PopperContent-C9eeL6LH.js.map +1 -0
  129. package/dist/{VisuallyHidden-C4sXnc-k.mjs → VisuallyHidden-BYzyjJiY.js} +23 -15
  130. package/dist/VisuallyHidden-BYzyjJiY.js.map +1 -0
  131. package/dist/{VisuallyHiddenInput-DKIzxsQR.mjs → VisuallyHiddenInput-CUrc8XXa.js} +46 -7
  132. package/dist/VisuallyHiddenInput-CUrc8XXa.js.map +1 -0
  133. package/dist/bootstrap-vue-next.mjs +65 -65
  134. package/dist/{classes-B0E5Y78Y.mjs → classes-BEWWGbj5.js} +1 -1
  135. package/dist/{classes-D5wrmmVs.js.map → classes-BEWWGbj5.js.map} +1 -1
  136. package/dist/components/BAccordion/BAccordion.vue.d.mts +9 -13
  137. package/dist/components/BAccordion/BAccordion.vue.d.ts +9 -13
  138. package/dist/components/BAccordion/BAccordionItem.vue.d.mts +16 -24
  139. package/dist/components/BAccordion/BAccordionItem.vue.d.ts +16 -24
  140. package/dist/components/BAlert/BAlert.vue.d.mts +26 -34
  141. package/dist/components/BAlert/BAlert.vue.d.ts +26 -34
  142. package/dist/components/BApp/BApp.vue.d.mts +8 -12
  143. package/dist/components/BApp/BApp.vue.d.ts +8 -12
  144. package/dist/components/BApp/BOrchestrator.vue.d.mts +2 -1
  145. package/dist/components/BApp/BOrchestrator.vue.d.ts +2 -1
  146. package/dist/components/BAspect/BAspect.vue.d.mts +5 -10
  147. package/dist/components/BAspect/BAspect.vue.d.ts +5 -10
  148. package/dist/components/BAutocomplete/BAutocomplete.vue.d.mts +12 -270
  149. package/dist/components/BAutocomplete/BAutocomplete.vue.d.ts +12 -270
  150. package/dist/components/BAvatar/BAvatar.vue.d.mts +20 -25
  151. package/dist/components/BAvatar/BAvatar.vue.d.ts +20 -25
  152. package/dist/components/BAvatar/BAvatarGroup.vue.d.mts +8 -13
  153. package/dist/components/BAvatar/BAvatarGroup.vue.d.ts +8 -13
  154. package/dist/components/BBadge/BBadge.vue.d.mts +13 -18
  155. package/dist/components/BBadge/BBadge.vue.d.ts +13 -18
  156. package/dist/components/BBreadcrumb/BBreadcrumb.vue.d.mts +6 -11
  157. package/dist/components/BBreadcrumb/BBreadcrumb.vue.d.ts +6 -11
  158. package/dist/components/BBreadcrumb/BBreadcrumbItem.vue.d.mts +13 -18
  159. package/dist/components/BBreadcrumb/BBreadcrumbItem.vue.d.ts +13 -18
  160. package/dist/components/BButton/BButton.vue.d.mts +17 -25
  161. package/dist/components/BButton/BButton.vue.d.ts +17 -25
  162. package/dist/components/BButton/BButtonGroup.vue.d.mts +5 -10
  163. package/dist/components/BButton/BButtonGroup.vue.d.ts +5 -10
  164. package/dist/components/BButton/BButtonToolbar.vue.d.mts +7 -16
  165. package/dist/components/BButton/BButtonToolbar.vue.d.ts +7 -16
  166. package/dist/components/BButton/BCloseButton.vue.d.mts +4 -3
  167. package/dist/components/BButton/BCloseButton.vue.d.ts +4 -3
  168. package/dist/components/BCard/BCard.vue.d.mts +21 -26
  169. package/dist/components/BCard/BCard.vue.d.ts +21 -26
  170. package/dist/components/BCard/BCardBody.vue.d.mts +9 -14
  171. package/dist/components/BCard/BCardBody.vue.d.ts +9 -14
  172. package/dist/components/BCard/BCardFooter.vue.d.mts +7 -11
  173. package/dist/components/BCard/BCardFooter.vue.d.ts +7 -11
  174. package/dist/components/BCard/BCardGroup.vue.d.mts +5 -10
  175. package/dist/components/BCard/BCardGroup.vue.d.ts +5 -10
  176. package/dist/components/BCard/BCardHeader.vue.d.mts +7 -12
  177. package/dist/components/BCard/BCardHeader.vue.d.ts +7 -12
  178. package/dist/components/BCard/BCardImg.vue.d.mts +7 -6
  179. package/dist/components/BCard/BCardImg.vue.d.ts +7 -6
  180. package/dist/components/BCard/BCardSubtitle.vue.d.mts +6 -11
  181. package/dist/components/BCard/BCardSubtitle.vue.d.ts +6 -11
  182. package/dist/components/BCard/BCardText.vue.d.mts +5 -10
  183. package/dist/components/BCard/BCardText.vue.d.ts +5 -10
  184. package/dist/components/BCard/BCardTitle.vue.d.mts +5 -10
  185. package/dist/components/BCard/BCardTitle.vue.d.ts +5 -10
  186. package/dist/components/BCardHeadFoot.vue.d.mts +6 -11
  187. package/dist/components/BCardHeadFoot.vue.d.ts +6 -11
  188. package/dist/components/BCarousel/BCarousel.vue.d.mts +12 -24
  189. package/dist/components/BCarousel/BCarousel.vue.d.ts +12 -24
  190. package/dist/components/BCarousel/BCarouselSlide.vue.d.mts +7 -12
  191. package/dist/components/BCarousel/BCarouselSlide.vue.d.ts +7 -12
  192. package/dist/components/BCollapse/BCollapse.vue.d.mts +13 -21
  193. package/dist/components/BCollapse/BCollapse.vue.d.ts +13 -21
  194. package/dist/components/BContainer/BCol.vue.d.mts +8 -13
  195. package/dist/components/BContainer/BCol.vue.d.ts +8 -13
  196. package/dist/components/BContainer/BContainer.vue.d.mts +5 -10
  197. package/dist/components/BContainer/BContainer.vue.d.ts +5 -10
  198. package/dist/components/BContainer/BRow.vue.d.mts +6 -11
  199. package/dist/components/BContainer/BRow.vue.d.ts +6 -11
  200. package/dist/components/BDateField/BDateField.vue.d.mts +8 -12
  201. package/dist/components/BDateField/BDateField.vue.d.ts +8 -12
  202. package/dist/components/BDateField/BDateRangeField.vue.d.mts +8 -12
  203. package/dist/components/BDateField/BDateRangeField.vue.d.ts +8 -12
  204. package/dist/components/BDateField/BTimeRangeField.vue.d.mts +9 -13
  205. package/dist/components/BDateField/BTimeRangeField.vue.d.ts +9 -13
  206. package/dist/components/BDatePicker/BDatePicker.vue.d.mts +9 -13
  207. package/dist/components/BDatePicker/BDatePicker.vue.d.ts +9 -13
  208. package/dist/components/BDatePicker/BDateRangePicker.vue.d.mts +9 -13
  209. package/dist/components/BDatePicker/BDateRangePicker.vue.d.ts +9 -13
  210. package/dist/components/BDropdown/BDropdown.vue.d.mts +24 -957
  211. package/dist/components/BDropdown/BDropdown.vue.d.ts +24 -957
  212. package/dist/components/BDropdown/BDropdownDivider.vue.d.mts +3 -2
  213. package/dist/components/BDropdown/BDropdownDivider.vue.d.ts +3 -2
  214. package/dist/components/BDropdown/BDropdownForm.vue.d.mts +6 -11
  215. package/dist/components/BDropdown/BDropdownForm.vue.d.ts +6 -11
  216. package/dist/components/BDropdown/BDropdownGroup.vue.d.mts +5 -10
  217. package/dist/components/BDropdown/BDropdownGroup.vue.d.ts +5 -10
  218. package/dist/components/BDropdown/BDropdownHeader.vue.d.mts +7 -12
  219. package/dist/components/BDropdown/BDropdownHeader.vue.d.ts +7 -12
  220. package/dist/components/BDropdown/BDropdownItem.vue.d.mts +12 -17
  221. package/dist/components/BDropdown/BDropdownItem.vue.d.ts +12 -17
  222. package/dist/components/BDropdown/BDropdownItemButton.vue.d.mts +6 -11
  223. package/dist/components/BDropdown/BDropdownItemButton.vue.d.ts +6 -11
  224. package/dist/components/BDropdown/BDropdownText.vue.d.mts +6 -11
  225. package/dist/components/BDropdown/BDropdownText.vue.d.ts +6 -11
  226. package/dist/components/BForm/BForm.vue.d.mts +8 -17
  227. package/dist/components/BForm/BForm.vue.d.ts +8 -17
  228. package/dist/components/BForm/BFormDatalist.vue.d.mts +12 -7
  229. package/dist/components/BForm/BFormDatalist.vue.d.ts +12 -7
  230. package/dist/components/BForm/BFormDatalistBase.vue.d.mts +20 -22
  231. package/dist/components/BForm/BFormDatalistBase.vue.d.ts +20 -22
  232. package/dist/components/BForm/BFormFloatingLabel.vue.d.mts +6 -11
  233. package/dist/components/BForm/BFormFloatingLabel.vue.d.ts +6 -11
  234. package/dist/components/BForm/BFormInvalidFeedback.vue.d.mts +6 -11
  235. package/dist/components/BForm/BFormInvalidFeedback.vue.d.ts +6 -11
  236. package/dist/components/BForm/BFormRow.vue.d.mts +5 -10
  237. package/dist/components/BForm/BFormRow.vue.d.ts +5 -10
  238. package/dist/components/BForm/BFormText.vue.d.mts +6 -11
  239. package/dist/components/BForm/BFormText.vue.d.ts +6 -11
  240. package/dist/components/BForm/BFormValidFeedback.vue.d.mts +6 -11
  241. package/dist/components/BForm/BFormValidFeedback.vue.d.ts +6 -11
  242. package/dist/components/BFormCheckbox/BFormCheckbox.vue.d.mts +14 -22
  243. package/dist/components/BFormCheckbox/BFormCheckbox.vue.d.ts +14 -22
  244. package/dist/components/BFormCheckbox/BFormCheckboxGroup.vue.d.mts +16 -11
  245. package/dist/components/BFormCheckbox/BFormCheckboxGroup.vue.d.ts +16 -11
  246. package/dist/components/BFormCheckbox/BFormCheckboxGroupBase.vue.d.mts +22 -27
  247. package/dist/components/BFormCheckbox/BFormCheckboxGroupBase.vue.d.ts +22 -27
  248. package/dist/components/BFormFile/BFormFile.vue.d.mts +9 -25
  249. package/dist/components/BFormFile/BFormFile.vue.d.ts +9 -25
  250. package/dist/components/BFormGroup/BFormGroup.vue.d.mts +14 -23
  251. package/dist/components/BFormGroup/BFormGroup.vue.d.ts +14 -23
  252. package/dist/components/BFormGroupContent.vue.d.mts +8 -17
  253. package/dist/components/BFormGroupContent.vue.d.ts +8 -17
  254. package/dist/components/BFormGroupLabel.vue.d.mts +6 -13
  255. package/dist/components/BFormGroupLabel.vue.d.ts +6 -13
  256. package/dist/components/BFormInput/BFormInput.vue.d.mts +10 -10
  257. package/dist/components/BFormInput/BFormInput.vue.d.ts +10 -10
  258. package/dist/components/BFormOtp/BFormOtp.vue.d.mts +7 -5
  259. package/dist/components/BFormOtp/BFormOtp.vue.d.ts +7 -5
  260. package/dist/components/BFormRadio/BFormRadio.vue.d.mts +13 -21
  261. package/dist/components/BFormRadio/BFormRadio.vue.d.ts +13 -21
  262. package/dist/components/BFormRadio/BFormRadioGroup.vue.d.mts +21 -14
  263. package/dist/components/BFormRadio/BFormRadioGroup.vue.d.ts +21 -14
  264. package/dist/components/BFormRadio/BFormRadioGroupBase.vue.d.mts +14 -22
  265. package/dist/components/BFormRadio/BFormRadioGroupBase.vue.d.ts +14 -22
  266. package/dist/components/BFormRating/BFormRating.vue.d.mts +10 -12
  267. package/dist/components/BFormRating/BFormRating.vue.d.ts +10 -12
  268. package/dist/components/BFormSelect/BFormSelect.vue.d.mts +16 -11
  269. package/dist/components/BFormSelect/BFormSelect.vue.d.ts +16 -11
  270. package/dist/components/BFormSelect/BFormSelectBase.vue.d.mts +24 -29
  271. package/dist/components/BFormSelect/BFormSelectBase.vue.d.ts +24 -29
  272. package/dist/components/BFormSelect/BFormSelectOption.vue.d.mts +12 -7
  273. package/dist/components/BFormSelect/BFormSelectOption.vue.d.ts +12 -7
  274. package/dist/components/BFormSelect/BFormSelectOptionGroup.vue.d.mts +12 -7
  275. package/dist/components/BFormSelect/BFormSelectOptionGroup.vue.d.ts +12 -7
  276. package/dist/components/BFormSpinbutton/BFormSpinbutton.vue.d.mts +11 -12
  277. package/dist/components/BFormSpinbutton/BFormSpinbutton.vue.d.ts +11 -12
  278. package/dist/components/BFormTags/BFormTag.vue.d.mts +7 -12
  279. package/dist/components/BFormTags/BFormTag.vue.d.ts +7 -12
  280. package/dist/components/BFormTags/BFormTags.vue.d.mts +12 -20
  281. package/dist/components/BFormTags/BFormTags.vue.d.ts +12 -20
  282. package/dist/components/BFormTextarea/BFormTextarea.vue.d.mts +12 -12
  283. package/dist/components/BFormTextarea/BFormTextarea.vue.d.ts +12 -12
  284. package/dist/components/BImg/BImg.vue.d.mts +7 -6
  285. package/dist/components/BImg/BImg.vue.d.ts +7 -6
  286. package/dist/components/BInputGroup/BInputGroup.vue.d.mts +5 -10
  287. package/dist/components/BInputGroup/BInputGroup.vue.d.ts +5 -10
  288. package/dist/components/BInputGroup/BInputGroupText.vue.d.mts +5 -10
  289. package/dist/components/BInputGroup/BInputGroupText.vue.d.ts +5 -10
  290. package/dist/components/BLink/BLink.vue.d.mts +12 -17
  291. package/dist/components/BLink/BLink.vue.d.ts +12 -17
  292. package/dist/components/BListGroup/BListGroup.vue.d.mts +5 -10
  293. package/dist/components/BListGroup/BListGroup.vue.d.ts +5 -10
  294. package/dist/components/BListGroup/BListGroupItem.vue.d.mts +13 -18
  295. package/dist/components/BListGroup/BListGroupItem.vue.d.ts +13 -18
  296. package/dist/components/BModal/BModal.vue.d.mts +47 -1026
  297. package/dist/components/BModal/BModal.vue.d.ts +47 -1026
  298. package/dist/components/BNav/BNav.vue.d.mts +7 -12
  299. package/dist/components/BNav/BNav.vue.d.ts +7 -12
  300. package/dist/components/BNav/BNavForm.vue.d.mts +8 -13
  301. package/dist/components/BNav/BNavForm.vue.d.ts +8 -13
  302. package/dist/components/BNav/BNavItem.vue.d.mts +12 -17
  303. package/dist/components/BNav/BNavItem.vue.d.ts +12 -17
  304. package/dist/components/BNav/BNavItemDropdown.vue.d.mts +20 -1660
  305. package/dist/components/BNav/BNavItemDropdown.vue.d.ts +20 -1660
  306. package/dist/components/BNav/BNavText.vue.d.mts +6 -11
  307. package/dist/components/BNav/BNavText.vue.d.ts +6 -11
  308. package/dist/components/BNavbar/BNavbar.vue.d.mts +6 -11
  309. package/dist/components/BNavbar/BNavbar.vue.d.ts +6 -11
  310. package/dist/components/BNavbar/BNavbarBrand.vue.d.mts +11 -16
  311. package/dist/components/BNavbar/BNavbarBrand.vue.d.ts +11 -16
  312. package/dist/components/BNavbar/BNavbarNav.vue.d.mts +7 -12
  313. package/dist/components/BNavbar/BNavbarNav.vue.d.ts +7 -12
  314. package/dist/components/BNavbar/BNavbarToggle.vue.d.mts +7 -12
  315. package/dist/components/BNavbar/BNavbarToggle.vue.d.ts +7 -12
  316. package/dist/components/BOffcanvas/BOffcanvas.vue.d.mts +28 -82
  317. package/dist/components/BOffcanvas/BOffcanvas.vue.d.ts +28 -82
  318. package/dist/components/BOverlay/BOverlay.vue.d.mts +17 -22
  319. package/dist/components/BOverlay/BOverlay.vue.d.ts +17 -22
  320. package/dist/components/BPagination/BPagination.vue.d.mts +9 -10
  321. package/dist/components/BPagination/BPagination.vue.d.ts +9 -10
  322. package/dist/components/BPlaceholder/BPlaceholder.vue.d.mts +3 -2
  323. package/dist/components/BPlaceholder/BPlaceholder.vue.d.ts +3 -2
  324. package/dist/components/BPlaceholder/BPlaceholderButton.vue.d.mts +3 -2
  325. package/dist/components/BPlaceholder/BPlaceholderButton.vue.d.ts +3 -2
  326. package/dist/components/BPlaceholder/BPlaceholderCard.vue.d.mts +8 -13
  327. package/dist/components/BPlaceholder/BPlaceholderCard.vue.d.ts +8 -13
  328. package/dist/components/BPlaceholder/BPlaceholderTable.vue.d.mts +8 -13
  329. package/dist/components/BPlaceholder/BPlaceholderTable.vue.d.ts +8 -13
  330. package/dist/components/BPlaceholder/BPlaceholderWrapper.vue.d.mts +5 -10
  331. package/dist/components/BPlaceholder/BPlaceholderWrapper.vue.d.ts +5 -10
  332. package/dist/components/BPopover/BPopover.vue.d.mts +35 -49
  333. package/dist/components/BPopover/BPopover.vue.d.ts +35 -49
  334. package/dist/components/BProgress/BProgress.vue.d.mts +10 -15
  335. package/dist/components/BProgress/BProgress.vue.d.ts +10 -15
  336. package/dist/components/BProgress/BProgressBar.vue.d.mts +9 -14
  337. package/dist/components/BProgress/BProgressBar.vue.d.ts +9 -14
  338. package/dist/components/BSpinner/BSpinner.vue.d.mts +7 -12
  339. package/dist/components/BSpinner/BSpinner.vue.d.ts +7 -12
  340. package/dist/components/BTable/BTable.vue.d.mts +35 -30
  341. package/dist/components/BTable/BTable.vue.d.ts +35 -30
  342. package/dist/components/BTable/BTableLite.vue.d.mts +24 -19
  343. package/dist/components/BTable/BTableLite.vue.d.ts +24 -19
  344. package/dist/components/BTable/BTableSimple.vue.d.mts +9 -14
  345. package/dist/components/BTable/BTableSimple.vue.d.ts +9 -14
  346. package/dist/components/BTable/BTbody.vue.d.mts +6 -11
  347. package/dist/components/BTable/BTbody.vue.d.ts +6 -11
  348. package/dist/components/BTable/BTd.vue.d.mts +6 -11
  349. package/dist/components/BTable/BTd.vue.d.ts +6 -11
  350. package/dist/components/BTable/BTfoot.vue.d.mts +6 -11
  351. package/dist/components/BTable/BTfoot.vue.d.ts +6 -11
  352. package/dist/components/BTable/BTh.vue.d.mts +6 -11
  353. package/dist/components/BTable/BTh.vue.d.ts +6 -11
  354. package/dist/components/BTable/BThead.vue.d.mts +6 -11
  355. package/dist/components/BTable/BThead.vue.d.ts +6 -11
  356. package/dist/components/BTable/BTr.vue.d.mts +6 -11
  357. package/dist/components/BTable/BTr.vue.d.ts +6 -11
  358. package/dist/components/BTabs/BTab.vue.d.mts +10 -18
  359. package/dist/components/BTabs/BTab.vue.d.ts +10 -18
  360. package/dist/components/BTabs/BTabs.vue.d.mts +10 -14
  361. package/dist/components/BTabs/BTabs.vue.d.ts +10 -14
  362. package/dist/components/BTabsTabContent.vue.d.mts +7 -15
  363. package/dist/components/BTabsTabContent.vue.d.ts +7 -15
  364. package/dist/components/BTimeField/BTimeField.vue.d.mts +8 -12
  365. package/dist/components/BTimeField/BTimeField.vue.d.ts +8 -12
  366. package/dist/components/BToast/BToast.vue.d.mts +25 -33
  367. package/dist/components/BToast/BToast.vue.d.ts +25 -33
  368. package/dist/components/BTooltip/BTooltip.vue.d.mts +32 -732
  369. package/dist/components/BTooltip/BTooltip.vue.d.ts +32 -732
  370. package/dist/components/ConditionalTeleport.vue.d.mts +3 -2
  371. package/dist/components/ConditionalTeleport.vue.d.ts +3 -2
  372. package/dist/components/ConditionalWrapper.vue.d.mts +3 -2
  373. package/dist/components/ConditionalWrapper.vue.d.ts +3 -2
  374. package/dist/composables/index.d.mts +3 -3
  375. package/dist/composables/index.d.ts +3 -3
  376. package/dist/composables/orchestratorShared/index.d.mts +25 -14
  377. package/dist/composables/orchestratorShared/index.d.ts +25 -14
  378. package/dist/composables/useBLinkHelper.d.mts +1 -1
  379. package/dist/composables/useBLinkHelper.d.ts +1 -1
  380. package/dist/composables/useModal/index.d.mts +8 -33
  381. package/dist/composables/useModal/index.d.ts +8 -33
  382. package/dist/composables/usePopover/index.d.mts +332 -4532
  383. package/dist/composables/usePopover/index.d.ts +332 -4532
  384. package/dist/composables/useShowHide.d.mts +21 -15
  385. package/dist/composables/useShowHide.d.ts +21 -15
  386. package/dist/composables/useToast/index.d.mts +7 -18
  387. package/dist/composables/useToast/index.d.ts +7 -18
  388. package/dist/console-DaUCJgpk.js +15 -0
  389. package/dist/console-DaUCJgpk.js.map +1 -0
  390. package/dist/{constants-Ba9iJn2H.mjs → constants-Cap5sNf8.js} +1 -1
  391. package/dist/{constants-BLIvvaat.js.map → constants-Cap5sNf8.js.map} +1 -1
  392. package/dist/{debounce-DHxNfjan.mjs → debounce-Xj7wsAmR.js} +2 -2
  393. package/dist/{debounce-D6kifS6w.js.map → debounce-Xj7wsAmR.js.map} +1 -1
  394. package/dist/{dist-Dk9C_HFS.mjs → dist-9-XTMhb-.js} +5 -539
  395. package/dist/dist-9-XTMhb-.js.map +1 -0
  396. package/dist/dist-B-regXAP.js +123 -0
  397. package/dist/dist-B-regXAP.js.map +1 -0
  398. package/dist/dist-DKc2ivHS.js +411 -0
  399. package/dist/dist-DKc2ivHS.js.map +1 -0
  400. package/dist/{dom-AhkaSoh8.mjs → dom-BdUQrX99.js} +3 -2
  401. package/dist/dom-BdUQrX99.js.map +1 -0
  402. package/dist/{flattenFragments-ClbLQGqR.mjs → flattenFragments-B15oMVs-.js} +1 -1
  403. package/dist/{flattenFragments-C1WWqm25.js.map → flattenFragments-B15oMVs-.js.map} +1 -1
  404. package/dist/{floating-ui.vue-CH2o_mZU.mjs → floating-ui.dom-C7UZexJK.js} +114 -338
  405. package/dist/floating-ui.dom-C7UZexJK.js.map +1 -0
  406. package/dist/{floatingUi-62aeQtAb.mjs → floatingUi-BlKoACvc.js} +194 -27
  407. package/dist/floatingUi-BlKoACvc.js.map +1 -0
  408. package/dist/{functions-BcMenQqL.mjs → functions-BUZ1y9RA.js} +1 -1
  409. package/dist/functions-BUZ1y9RA.js.map +1 -0
  410. package/dist/{getClasses-COokMI60.mjs → getClasses-BlbbSJNl.js} +1 -1
  411. package/dist/{getClasses-8P0iBind.js.map → getClasses-BlbbSJNl.js.map} +1 -1
  412. package/dist/{getElement-D2Jr1cbp.mjs → getElement-uvhh1lgL.js} +2 -2
  413. package/dist/{getElement-DWGFJn0w.js.map → getElement-uvhh1lgL.js.map} +1 -1
  414. package/dist/{keys-DU7sQgl3.mjs → keys-BgLwJbLV.js} +1 -1
  415. package/dist/keys-BgLwJbLV.js.map +1 -0
  416. package/dist/{object-CHQkkner.mjs → object-C7YmCGEm.js} +10 -6
  417. package/dist/object-C7YmCGEm.js.map +1 -0
  418. package/dist/{registryAccess-BkJDdh-3.mjs → registryAccess-YFj5ZD5T.js} +1 -1
  419. package/dist/{registryAccess-B9QDQwV8.js.map → registryAccess-YFj5ZD5T.js.map} +1 -1
  420. package/dist/src/components/BAccordion/index.mjs +1 -1
  421. package/dist/src/components/BAlert/index.mjs +1 -1
  422. package/dist/src/components/BApp/index.mjs +1 -1
  423. package/dist/src/components/BAspect/index.mjs +1 -1
  424. package/dist/src/components/BAutocomplete/index.mjs +1 -1
  425. package/dist/src/components/BAvatar/index.mjs +1 -1
  426. package/dist/src/components/BBadge/index.mjs +1 -1
  427. package/dist/src/components/BBreadcrumb/index.mjs +1 -1
  428. package/dist/src/components/BButton/index.mjs +3 -3
  429. package/dist/src/components/BCard/index.mjs +2 -2
  430. package/dist/src/components/BCarousel/index.mjs +1 -1
  431. package/dist/src/components/BCol/index.mjs +1 -1
  432. package/dist/src/components/BCollapse/index.mjs +1 -1
  433. package/dist/src/components/BContainer/index.mjs +3 -3
  434. package/dist/src/components/BDateField/index.mjs +1 -1
  435. package/dist/src/components/BDatePicker/index.mjs +1 -1
  436. package/dist/src/components/BDropdown/index.mjs +2 -2
  437. package/dist/src/components/BForm/index.mjs +3 -3
  438. package/dist/src/components/BFormCheckbox/index.mjs +1 -1
  439. package/dist/src/components/BFormFile/index.mjs +1 -1
  440. package/dist/src/components/BFormGroup/index.mjs +1 -1
  441. package/dist/src/components/BFormInput/index.mjs +1 -1
  442. package/dist/src/components/BFormOtp/index.mjs +1 -1
  443. package/dist/src/components/BFormRadio/index.mjs +1 -1
  444. package/dist/src/components/BFormRating/index.mjs +1 -1
  445. package/dist/src/components/BFormSelect/index.mjs +2 -2
  446. package/dist/src/components/BFormSpinbutton/index.mjs +1 -1
  447. package/dist/src/components/BFormTags/index.mjs +2 -2
  448. package/dist/src/components/BFormTextarea/index.mjs +1 -1
  449. package/dist/src/components/BImg/index.mjs +1 -1
  450. package/dist/src/components/BInputGroup/index.mjs +2 -2
  451. package/dist/src/components/BLink/index.mjs +1 -1
  452. package/dist/src/components/BListGroup/index.mjs +1 -1
  453. package/dist/src/components/BModal/index.mjs +1 -1
  454. package/dist/src/components/BNav/index.mjs +1 -1
  455. package/dist/src/components/BNavbar/index.mjs +1 -1
  456. package/dist/src/components/BOffcanvas/index.mjs +1 -1
  457. package/dist/src/components/BOverlay/index.mjs +1 -1
  458. package/dist/src/components/BPagination/index.mjs +1 -1
  459. package/dist/src/components/BPlaceholder/index.mjs +1 -1
  460. package/dist/src/components/BPopover/index.mjs +1 -1
  461. package/dist/src/components/BProgress/index.mjs +1 -1
  462. package/dist/src/components/BRow/index.mjs +1 -1
  463. package/dist/src/components/BSpinner/index.mjs +1 -1
  464. package/dist/src/components/BTable/index.mjs +2 -2
  465. package/dist/src/components/BTabs/index.mjs +1 -1
  466. package/dist/src/components/BTimeField/index.mjs +1 -1
  467. package/dist/src/components/BToast/index.mjs +1 -1
  468. package/dist/src/components/BTooltip/index.mjs +1 -1
  469. package/dist/src/components/index.mjs +60 -68
  470. package/dist/src/composables/index.mjs +5 -8
  471. package/dist/src/composables/index.mjs.map +1 -1
  472. package/dist/src/composables/orchestratorShared/index.mjs +79 -82
  473. package/dist/src/composables/orchestratorShared/index.mjs.map +1 -1
  474. package/dist/src/composables/useBreadcrumb/index.mjs +1 -1
  475. package/dist/src/composables/useBreadcrumb/index.mjs.map +1 -1
  476. package/dist/src/composables/useColorMode/index.mjs +2 -2
  477. package/dist/src/composables/useColorMode/index.mjs.map +1 -1
  478. package/dist/src/composables/useModal/index.mjs +65 -64
  479. package/dist/src/composables/useModal/index.mjs.map +1 -1
  480. package/dist/src/composables/usePopover/index.mjs +51 -68
  481. package/dist/src/composables/usePopover/index.mjs.map +1 -1
  482. package/dist/src/composables/useProvideDefaults/index.mjs +4 -3
  483. package/dist/src/composables/useProvideDefaults/index.mjs.map +1 -1
  484. package/dist/src/composables/useRegistry/index.mjs +5 -3
  485. package/dist/src/composables/useRegistry/index.mjs.map +1 -1
  486. package/dist/src/composables/useScrollLock/index.mjs +2 -1
  487. package/dist/src/composables/useScrollLock/index.mjs.map +1 -1
  488. package/dist/src/composables/useScrollspy/index.mjs +16 -13
  489. package/dist/src/composables/useScrollspy/index.mjs.map +1 -1
  490. package/dist/src/composables/useToast/index.mjs +45 -66
  491. package/dist/src/composables/useToast/index.mjs.map +1 -1
  492. package/dist/src/composables/useToggle/index.mjs +5 -3
  493. package/dist/src/composables/useToggle/index.mjs.map +1 -1
  494. package/dist/src/directives/BColorMode/index.mjs.map +1 -1
  495. package/dist/src/directives/BPopover/index.mjs +2 -2
  496. package/dist/src/directives/BPopover/index.mjs.map +1 -1
  497. package/dist/src/directives/BScrollspy/index.mjs +3 -3
  498. package/dist/src/directives/BScrollspy/index.mjs.map +1 -1
  499. package/dist/src/directives/BToggle/index.mjs +8 -6
  500. package/dist/src/directives/BToggle/index.mjs.map +1 -1
  501. package/dist/src/directives/BTooltip/index.mjs +2 -2
  502. package/dist/src/directives/BTooltip/index.mjs.map +1 -1
  503. package/dist/src/directives/index.mjs +1 -2
  504. package/dist/src/plugins/createBootstrap/index.mjs +1 -1
  505. package/dist/src/plugins/createBootstrap/index.mjs.map +1 -1
  506. package/dist/src/plugins/index.mjs +1 -1
  507. package/dist/src/plugins/orchestrator/index.mjs +1 -1
  508. package/dist/src/plugins/orchestrator/index.mjs.map +1 -1
  509. package/dist/src/plugins/registry/index.mjs +1 -1
  510. package/dist/src/plugins/registry/index.mjs.map +1 -1
  511. package/dist/src/plugins/rtl/index.mjs +1 -1
  512. package/dist/src/plugins/rtl/index.mjs.map +1 -1
  513. package/dist/src/resolvers/index.mjs +2 -2
  514. package/dist/src/resolvers/index.mjs.map +1 -1
  515. package/dist/src/types/index.mjs +2 -2
  516. package/dist/src/utils/index.mjs +2 -2
  517. package/dist/{stringUtils-D4eEDlt1.mjs → stringUtils-CVySsg3y.js} +2 -2
  518. package/dist/{stringUtils-68ZN_GRt.js.map → stringUtils-CVySsg3y.js.map} +1 -1
  519. package/dist/types/BootstrapVueOptions.d.mts +1 -4
  520. package/dist/types/BootstrapVueOptions.d.ts +1 -4
  521. package/dist/types/ComponentOrchestratorTypes.d.mts +62 -186
  522. package/dist/types/ComponentOrchestratorTypes.d.ts +62 -186
  523. package/dist/types/ComponentProps.d.mts +2 -0
  524. package/dist/types/ComponentProps.d.ts +2 -0
  525. package/dist/types/ComponentSlots.d.mts +1 -1
  526. package/dist/types/ComponentSlots.d.ts +1 -1
  527. package/dist/{useAlignment-DuR8ymKI.mjs → useAlignment-DaP-psIh.js} +1 -1
  528. package/dist/{useAlignment-oKolnDpb.js.map → useAlignment-DaP-psIh.js.map} +1 -1
  529. package/dist/{useAriaInvalid-apOwgexm.mjs → useAriaInvalid-CRUhkD2V.js} +1 -1
  530. package/dist/{useAriaInvalid-CHHPHNLU.js.map → useAriaInvalid-CRUhkD2V.js.map} +1 -1
  531. package/dist/{useColorVariantClasses-CqeXHjRh.mjs → useColorVariantClasses-DHQvLjek.js} +1 -1
  532. package/dist/{useColorVariantClasses-Dq0sOYDL.js.map → useColorVariantClasses-DHQvLjek.js.map} +1 -1
  533. package/dist/{useCountdownHover-C3NXiAaF.mjs → useCountdownHover-BN8vJIQW.js} +4 -3
  534. package/dist/{useCountdownHover-DbVhE-N0.js.map → useCountdownHover-BN8vJIQW.js.map} +1 -1
  535. package/dist/{useDateField-CJKgollJ.mjs → useDateField-CQZb799C.js} +680 -627
  536. package/dist/useDateField-CQZb799C.js.map +1 -0
  537. package/dist/{useDefaults-DseelK6y.mjs → useDefaults-BzP4qZBu.js} +2 -2
  538. package/dist/{useDefaults-C0CYry78.js.map → useDefaults-BzP4qZBu.js.map} +1 -1
  539. package/dist/{useFormCheck-BKXrwS3g.mjs → useFormCheck-fArncQY5.js} +3 -3
  540. package/dist/{useFormCheck-DYjLG4WA.js.map → useFormCheck-fArncQY5.js.map} +1 -1
  541. package/dist/{useFormInput-CXl8rpD0.mjs → useFormInput-DZ_3ZH1o.js} +8 -7
  542. package/dist/{useFormInput-ip9hN2AU.js.map → useFormInput-DZ_3ZH1o.js.map} +1 -1
  543. package/dist/{useFormSelect-BM0rsjni.mjs → useFormSelect-CwS8YuiQ.js} +3 -3
  544. package/dist/{useFormSelect-ClmzGzOy.js.map → useFormSelect-CwS8YuiQ.js.map} +1 -1
  545. package/dist/{useForwardExpose-Cob6LlGd.mjs → useForwardExpose-DDvk7mir.js} +5 -13
  546. package/dist/useForwardExpose-DDvk7mir.js.map +1 -0
  547. package/dist/{useId-D1sqXtwx.mjs → useId-Fh-Arhb7.js} +2 -2
  548. package/dist/{useId-BkAY2oh6.js.map → useId-Fh-Arhb7.js.map} +1 -1
  549. package/dist/{useKbd-DfmgFov6.mjs → useKbd-DRsaFU_f.js} +6 -18
  550. package/dist/useKbd-DRsaFU_f.js.map +1 -0
  551. package/dist/{useNumberishToStyle-DgS1slD3.mjs → useNumberishToStyle-DCnYcI6A.js} +2 -2
  552. package/dist/{useNumberishToStyle-BtMa0R27.js.map → useNumberishToStyle-DCnYcI6A.js.map} +1 -1
  553. package/dist/{useRadiusElementClasses-BW832F7F.mjs → useRadiusElementClasses-CKCJjpkK.js} +1 -1
  554. package/dist/{useRadiusElementClasses-DWiUVgex.js.map → useRadiusElementClasses-CKCJjpkK.js.map} +1 -1
  555. package/dist/{useRtl-CGoXBxNo.mjs → useRtl-FeLayV4k.js} +3 -3
  556. package/dist/{useRtl-BSgvbs5F.js.map → useRtl-FeLayV4k.js.map} +1 -1
  557. package/dist/{useSafeScrollLock-Me5LyqjD.mjs → useSafeScrollLock-PVgSASYu.js} +136 -216
  558. package/dist/useSafeScrollLock-PVgSASYu.js.map +1 -0
  559. package/dist/{useShowHide-CBFt1_EW.mjs → useShowHide-C95Y9EKL.js} +15 -14
  560. package/dist/useShowHide-C95Y9EKL.js.map +1 -0
  561. package/dist/{useStateClass-DxlL_m2E.mjs → useStateClass-BF7kf2zK.js} +1 -1
  562. package/dist/{useStateClass-CXK3nCg9.js.map → useStateClass-BF7kf2zK.js.map} +1 -1
  563. package/dist/utils/console.d.mts +2 -0
  564. package/dist/utils/console.d.ts +2 -0
  565. package/dist/utils/keys.d.mts +12 -4
  566. package/dist/utils/keys.d.ts +12 -4
  567. package/dist/{utils-CWvndqPg.mjs → utils-nRGGHA_i.js} +14 -10
  568. package/dist/utils-nRGGHA_i.js.map +1 -0
  569. package/package.json +65 -136
  570. package/dist/BAccordion-D51b9HVD.mjs.map +0 -1
  571. package/dist/BAccordion-DYmuqZIG.js +0 -360
  572. package/dist/BAccordion-DYmuqZIG.js.map +0 -1
  573. package/dist/BAlert-Ce2uxrJi.mjs.map +0 -1
  574. package/dist/BAlert-croEtrQu.js +0 -297
  575. package/dist/BAlert-croEtrQu.js.map +0 -1
  576. package/dist/BApp-B-fUrnpK.mjs.map +0 -1
  577. package/dist/BApp-DOvEe1jo.js +0 -181
  578. package/dist/BApp-DOvEe1jo.js.map +0 -1
  579. package/dist/BAspect-CUIU48Ck.js +0 -50
  580. package/dist/BAspect-wfiXM4KA.mjs.map +0 -1
  581. package/dist/BAutocomplete-CH-bQzME.mjs.map +0 -1
  582. package/dist/BAutocomplete-DLDFAV5_.js +0 -2402
  583. package/dist/BAutocomplete-DLDFAV5_.js.map +0 -1
  584. package/dist/BAvatar-FGK0dK0x.js +0 -386
  585. package/dist/BAvatar-FGK0dK0x.js.map +0 -1
  586. package/dist/BAvatar-iALHbqVk.mjs.map +0 -1
  587. package/dist/BBadge-Cx_CdauK.mjs.map +0 -1
  588. package/dist/BBadge-Db6SEnzy.js +0 -145
  589. package/dist/BBreadcrumb-B9ra7vg2.js +0 -166
  590. package/dist/BBreadcrumb-BxADbg0O.mjs.map +0 -1
  591. package/dist/BButton-BSa7LfL5.mjs.map +0 -1
  592. package/dist/BButton-DRRlzkyK.js +0 -156
  593. package/dist/BButton-PY7AANXJ.mjs.map +0 -1
  594. package/dist/BButton-aYtMnyHu.js +0 -190
  595. package/dist/BCard-BWoruisp.mjs.map +0 -1
  596. package/dist/BCard-Bh8RLMo_.js +0 -52
  597. package/dist/BCard-CHbKv2OR.mjs.map +0 -1
  598. package/dist/BCard-DwNYhVmg.js +0 -444
  599. package/dist/BCarousel-2JB21Pcu.js +0 -427
  600. package/dist/BCarousel-B6_bgQpl.mjs.map +0 -1
  601. package/dist/BCloseButton-CKTKr4PS.mjs.map +0 -1
  602. package/dist/BCloseButton-D42zHRLP.js +0 -45
  603. package/dist/BCol-B3VeEk9z.mjs.map +0 -1
  604. package/dist/BCol-Ck9VydHj.js +0 -140
  605. package/dist/BCollapse-CDLYLSZo.js +0 -183
  606. package/dist/BCollapse-CDLYLSZo.js.map +0 -1
  607. package/dist/BCollapse-kqhe4AmL.mjs.map +0 -1
  608. package/dist/BContainer-ATfhaxTc.mjs.map +0 -1
  609. package/dist/BContainer-CcF6dgtI.js +0 -44
  610. package/dist/BDateField-CccP3H1R.mjs.map +0 -1
  611. package/dist/BDateField-DzZw5FRX.js +0 -919
  612. package/dist/BDateField-DzZw5FRX.js.map +0 -1
  613. package/dist/BDatePicker-BDkzkOcm.js +0 -5138
  614. package/dist/BDatePicker-BDkzkOcm.js.map +0 -1
  615. package/dist/BDatePicker-BnwnSkBg.mjs.map +0 -1
  616. package/dist/BDropdown-0E8x5kk6.mjs.map +0 -1
  617. package/dist/BDropdown-B1DbvVzm.mjs.map +0 -1
  618. package/dist/BDropdown-BPFtkX3p.js +0 -403
  619. package/dist/BDropdown-BPFtkX3p.js.map +0 -1
  620. package/dist/BDropdown-DKCgBzYS.js +0 -415
  621. package/dist/BForm-6JlWdQMO.js +0 -126
  622. package/dist/BForm-BVfW08s5.mjs.map +0 -1
  623. package/dist/BForm-DJu2hDV_.mjs.map +0 -1
  624. package/dist/BForm-cnRpggt9.js +0 -51
  625. package/dist/BFormCheckbox-Baf_9BSc.mjs.map +0 -1
  626. package/dist/BFormCheckbox-D5ySHMJ8.js +0 -489
  627. package/dist/BFormCheckbox-D5ySHMJ8.js.map +0 -1
  628. package/dist/BFormFile-CZebm0Cp.mjs.map +0 -1
  629. package/dist/BFormFile-MISLntyJ.js +0 -423
  630. package/dist/BFormGroup-Bk1t-D1N.js +0 -490
  631. package/dist/BFormGroup-Bk1t-D1N.js.map +0 -1
  632. package/dist/BFormGroup-vysRPb99.mjs.map +0 -1
  633. package/dist/BFormInput-CBwwDjfC.js +0 -142
  634. package/dist/BFormInput-sEfU3CuN.mjs.map +0 -1
  635. package/dist/BFormOtp-C8X3u1od.mjs.map +0 -1
  636. package/dist/BFormOtp-CLrQJRPe.js +0 -542
  637. package/dist/BFormOtp-CLrQJRPe.js.map +0 -1
  638. package/dist/BFormRadio-B2yu-o2v.js +0 -432
  639. package/dist/BFormRadio-B2yu-o2v.js.map +0 -1
  640. package/dist/BFormRadio-COc_IbxC.mjs.map +0 -1
  641. package/dist/BFormRating-CIgPVsH_.mjs.map +0 -1
  642. package/dist/BFormRating-CSdRxN5z.js +0 -263
  643. package/dist/BFormRating-CSdRxN5z.js.map +0 -1
  644. package/dist/BFormSelect-CI92Dv27.js +0 -310
  645. package/dist/BFormSelect-CI92Dv27.js.map +0 -1
  646. package/dist/BFormSelect-P-InkOm-.mjs.map +0 -1
  647. package/dist/BFormSelectOption-DFN4lPRh.mjs.map +0 -1
  648. package/dist/BFormSelectOption-DrwJucNf.js +0 -46
  649. package/dist/BFormSpinbutton-1gTz4nTo.js +0 -447
  650. package/dist/BFormSpinbutton-6qkTBF_4.mjs.map +0 -1
  651. package/dist/BFormTag-CeV0MSRC.js +0 -86
  652. package/dist/BFormTag-CnzI39y9.mjs.map +0 -1
  653. package/dist/BFormTags-BMltSaKL.mjs.map +0 -1
  654. package/dist/BFormTags-BhO60uiL.js +0 -427
  655. package/dist/BFormTags-BhO60uiL.js.map +0 -1
  656. package/dist/BFormTextarea-C3Cj0DWj.js +0 -203
  657. package/dist/BFormTextarea-DN1gAfSo.mjs.map +0 -1
  658. package/dist/BFormValidFeedback-CBYxQLDz.mjs.map +0 -1
  659. package/dist/BFormValidFeedback-Kwxh798d.js +0 -223
  660. package/dist/BImg-JKJLgYYT.js +0 -168
  661. package/dist/BImg-QBS2ECBc.mjs.map +0 -1
  662. package/dist/BInputGroup-Bvlfv6VD.js +0 -55
  663. package/dist/BInputGroup-D4fW324B.js +0 -31
  664. package/dist/BInputGroup-DiTSexkT.mjs.map +0 -1
  665. package/dist/BInputGroup-X2Z53RJx.mjs.map +0 -1
  666. package/dist/BLink-Dfgte6dQ.mjs.map +0 -1
  667. package/dist/BLink-kLEjleB1.js +0 -276
  668. package/dist/BListGroup-C8JOzHTz.js +0 -167
  669. package/dist/BListGroup-DwTLpNiD.mjs.map +0 -1
  670. package/dist/BModal-C-ZCau2E.mjs.map +0 -1
  671. package/dist/BModal-VstTwEq9.js +0 -521
  672. package/dist/BModal-VstTwEq9.js.map +0 -1
  673. package/dist/BNav-DCLambmM.js +0 -453
  674. package/dist/BNav-DfYvjfRK.mjs.map +0 -1
  675. package/dist/BNavbar-BLWaZJRP.js +0 -245
  676. package/dist/BNavbar-xYaikQVY.mjs.map +0 -1
  677. package/dist/BOffcanvas-C7HenFW0.js +0 -331
  678. package/dist/BOffcanvas-C7HenFW0.js.map +0 -1
  679. package/dist/BOffcanvas-CF-dWeez.mjs.map +0 -1
  680. package/dist/BOverlay-Bh2PIN_q.mjs.map +0 -1
  681. package/dist/BOverlay-Bh4ldxgt.js +0 -203
  682. package/dist/BPagination-D75q-ZNg.mjs.map +0 -1
  683. package/dist/BPagination-fbjFAtxu.js +0 -446
  684. package/dist/BPlaceholder-B3rs_39w.js +0 -326
  685. package/dist/BPlaceholder-DPQ6mCLN.mjs.map +0 -1
  686. package/dist/BProgress-BZlrPYhA.mjs.map +0 -1
  687. package/dist/BProgress-th0-eZWo.js +0 -147
  688. package/dist/BRow-7AOuFiSy.js +0 -70
  689. package/dist/BRow-eGSUYGCW.mjs.map +0 -1
  690. package/dist/BSpinner-CUfGqviV.mjs.map +0 -1
  691. package/dist/BSpinner-DbYIp-C7.js +0 -60
  692. package/dist/BTable-BCWW00u_.js +0 -1903
  693. package/dist/BTable-BCWW00u_.js.map +0 -1
  694. package/dist/BTable-DUHxxWv5.mjs.map +0 -1
  695. package/dist/BTableSimple-BkdGAAKb.js +0 -137
  696. package/dist/BTableSimple-C-jn9Nwh.mjs.map +0 -1
  697. package/dist/BTabs-CvecFg5N.js +0 -607
  698. package/dist/BTabs-D_vWlBjT.mjs.map +0 -1
  699. package/dist/BTimeField-BSDaZogC.mjs.map +0 -1
  700. package/dist/BTimeField-BT5HXecp.js +0 -517
  701. package/dist/BTimeField-BT5HXecp.js.map +0 -1
  702. package/dist/BToast-DR0pek4W.js +0 -308
  703. package/dist/BToast-DR0pek4W.js.map +0 -1
  704. package/dist/BToast-Y8BayxES.mjs.map +0 -1
  705. package/dist/BTooltip-CVP8HdkU.mjs.map +0 -1
  706. package/dist/BTooltip-DPLYtaL1.js +0 -213
  707. package/dist/BootstrapVueOptions-DeViqxoD.js +0 -179
  708. package/dist/BootstrapVueOptions-DeViqxoD.js.map +0 -1
  709. package/dist/BootstrapVueOptions-Dt1TQdih.mjs.map +0 -1
  710. package/dist/ConditionalTeleport-B4KYZIM6.mjs.map +0 -1
  711. package/dist/ConditionalTeleport-BDWcebyD.js +0 -34
  712. package/dist/ConditionalWrapper-DZH_VSwb.js +0 -31
  713. package/dist/ConditionalWrapper-Dbc_O6qe.mjs.map +0 -1
  714. package/dist/DateRangeFieldInput-B86VEz0H.mjs.map +0 -1
  715. package/dist/DateRangeFieldInput-HvvI2You.js +0 -762
  716. package/dist/DateRangeFieldInput-HvvI2You.js.map +0 -1
  717. package/dist/PopperContent-BS_eKjzD.js +0 -1515
  718. package/dist/PopperContent-BS_eKjzD.js.map +0 -1
  719. package/dist/PopperContent-DmSgsjSC.mjs.map +0 -1
  720. package/dist/VisuallyHidden-C4sXnc-k.mjs.map +0 -1
  721. package/dist/VisuallyHidden-Cx0phlXT.js +0 -222
  722. package/dist/VisuallyHidden-Cx0phlXT.js.map +0 -1
  723. package/dist/VisuallyHiddenInput-BNrInt6d.js +0 -147
  724. package/dist/VisuallyHiddenInput-BNrInt6d.js.map +0 -1
  725. package/dist/VisuallyHiddenInput-DKIzxsQR.mjs.map +0 -1
  726. package/dist/bootstrap-vue-next.umd.js +0 -275
  727. package/dist/chunk-CoQrYLCe.js +0 -50
  728. package/dist/classes-B0E5Y78Y.mjs.map +0 -1
  729. package/dist/classes-D5wrmmVs.js +0 -92
  730. package/dist/constants-BLIvvaat.js +0 -123
  731. package/dist/constants-Ba9iJn2H.mjs.map +0 -1
  732. package/dist/debounce-D6kifS6w.js +0 -88
  733. package/dist/debounce-DHxNfjan.mjs.map +0 -1
  734. package/dist/dist-DiXKLh_W.js +0 -2064
  735. package/dist/dist-DiXKLh_W.js.map +0 -1
  736. package/dist/dist-Dk9C_HFS.mjs.map +0 -1
  737. package/dist/dom-AhkaSoh8.mjs.map +0 -1
  738. package/dist/dom-Bs6DzM72.js +0 -98
  739. package/dist/dom-Bs6DzM72.js.map +0 -1
  740. package/dist/flattenFragments-C1WWqm25.js +0 -18
  741. package/dist/flattenFragments-ClbLQGqR.mjs.map +0 -1
  742. package/dist/floating-ui.vue-CH2o_mZU.mjs.map +0 -1
  743. package/dist/floating-ui.vue-DDOIU2nS.js +0 -1773
  744. package/dist/floating-ui.vue-DDOIU2nS.js.map +0 -1
  745. package/dist/floatingUi-62aeQtAb.mjs.map +0 -1
  746. package/dist/floatingUi-DQ5bHmy3.js +0 -598
  747. package/dist/floatingUi-DQ5bHmy3.js.map +0 -1
  748. package/dist/functions-BcMenQqL.mjs.map +0 -1
  749. package/dist/functions-Bx1HDqMv.js +0 -11
  750. package/dist/functions-Bx1HDqMv.js.map +0 -1
  751. package/dist/getClasses-8P0iBind.js +0 -19
  752. package/dist/getClasses-COokMI60.mjs.map +0 -1
  753. package/dist/getElement-D2Jr1cbp.mjs.map +0 -1
  754. package/dist/getElement-DWGFJn0w.js +0 -19
  755. package/dist/keys-BMye8nSf.js +0 -187
  756. package/dist/keys-BMye8nSf.js.map +0 -1
  757. package/dist/keys-DU7sQgl3.mjs.map +0 -1
  758. package/dist/object-BN7QwMcz.js +0 -140
  759. package/dist/object-BN7QwMcz.js.map +0 -1
  760. package/dist/object-CHQkkner.mjs.map +0 -1
  761. package/dist/registryAccess-B9QDQwV8.js +0 -39
  762. package/dist/registryAccess-BkJDdh-3.mjs.map +0 -1
  763. package/dist/src/components/BAccordion/index.umd.js +0 -4
  764. package/dist/src/components/BAlert/index.umd.js +0 -3
  765. package/dist/src/components/BApp/index.umd.js +0 -4
  766. package/dist/src/components/BAspect/index.umd.js +0 -3
  767. package/dist/src/components/BAutocomplete/index.umd.js +0 -3
  768. package/dist/src/components/BAvatar/index.umd.js +0 -4
  769. package/dist/src/components/BBadge/index.umd.js +0 -3
  770. package/dist/src/components/BBreadcrumb/index.umd.js +0 -4
  771. package/dist/src/components/BButton/index.umd.js +0 -8
  772. package/dist/src/components/BCard/index.umd.js +0 -12
  773. package/dist/src/components/BCarousel/index.umd.js +0 -4
  774. package/dist/src/components/BCol/index.umd.js +0 -3
  775. package/dist/src/components/BCollapse/index.umd.js +0 -3
  776. package/dist/src/components/BContainer/index.umd.js +0 -7
  777. package/dist/src/components/BDateField/index.umd.js +0 -5
  778. package/dist/src/components/BDatePicker/index.umd.js +0 -4
  779. package/dist/src/components/BDropdown/index.umd.js +0 -11
  780. package/dist/src/components/BForm/index.umd.js +0 -11
  781. package/dist/src/components/BFormCheckbox/index.umd.js +0 -4
  782. package/dist/src/components/BFormFile/index.umd.js +0 -3
  783. package/dist/src/components/BFormGroup/index.umd.js +0 -3
  784. package/dist/src/components/BFormInput/index.umd.js +0 -4
  785. package/dist/src/components/BFormOtp/index.umd.js +0 -3
  786. package/dist/src/components/BFormRadio/index.umd.js +0 -4
  787. package/dist/src/components/BFormRating/index.umd.js +0 -3
  788. package/dist/src/components/BFormSelect/index.umd.js +0 -6
  789. package/dist/src/components/BFormSpinbutton/index.umd.js +0 -3
  790. package/dist/src/components/BFormTags/index.umd.js +0 -5
  791. package/dist/src/components/BFormTextarea/index.umd.js +0 -3
  792. package/dist/src/components/BImg/index.umd.js +0 -3
  793. package/dist/src/components/BInputGroup/index.umd.js +0 -5
  794. package/dist/src/components/BLink/index.umd.js +0 -3
  795. package/dist/src/components/BListGroup/index.umd.js +0 -4
  796. package/dist/src/components/BModal/index.umd.js +0 -3
  797. package/dist/src/components/BNav/index.umd.js +0 -7
  798. package/dist/src/components/BNavbar/index.umd.js +0 -6
  799. package/dist/src/components/BOffcanvas/index.umd.js +0 -3
  800. package/dist/src/components/BOverlay/index.umd.js +0 -3
  801. package/dist/src/components/BPagination/index.umd.js +0 -3
  802. package/dist/src/components/BPlaceholder/index.umd.js +0 -7
  803. package/dist/src/components/BPopover/index.umd.js +0 -3
  804. package/dist/src/components/BProgress/index.umd.js +0 -4
  805. package/dist/src/components/BRow/index.umd.js +0 -3
  806. package/dist/src/components/BSpinner/index.umd.js +0 -3
  807. package/dist/src/components/BTable/index.umd.js +0 -12
  808. package/dist/src/components/BTabs/index.umd.js +0 -4
  809. package/dist/src/components/BTimeField/index.umd.js +0 -3
  810. package/dist/src/components/BToast/index.umd.js +0 -3
  811. package/dist/src/components/BTooltip/index.umd.js +0 -3
  812. package/dist/src/components/index.umd.js +0 -301
  813. package/dist/src/components/index.umd.js.map +0 -1
  814. package/dist/src/composables/index.umd.js +0 -53
  815. package/dist/src/composables/index.umd.js.map +0 -1
  816. package/dist/src/composables/orchestratorShared/index.umd.js +0 -114
  817. package/dist/src/composables/orchestratorShared/index.umd.js.map +0 -1
  818. package/dist/src/composables/useBreadcrumb/index.umd.js +0 -37
  819. package/dist/src/composables/useBreadcrumb/index.umd.js.map +0 -1
  820. package/dist/src/composables/useColorMode/index.umd.js +0 -18
  821. package/dist/src/composables/useColorMode/index.umd.js.map +0 -1
  822. package/dist/src/composables/useModal/index.umd.js +0 -176
  823. package/dist/src/composables/useModal/index.umd.js.map +0 -1
  824. package/dist/src/composables/usePopover/index.umd.js +0 -90
  825. package/dist/src/composables/usePopover/index.umd.js.map +0 -1
  826. package/dist/src/composables/useProvideDefaults/index.umd.js +0 -42
  827. package/dist/src/composables/useProvideDefaults/index.umd.js.map +0 -1
  828. package/dist/src/composables/useRegistry/index.umd.js +0 -135
  829. package/dist/src/composables/useRegistry/index.umd.js.map +0 -1
  830. package/dist/src/composables/useScrollLock/index.umd.js +0 -8
  831. package/dist/src/composables/useScrollLock/index.umd.js.map +0 -1
  832. package/dist/src/composables/useScrollspy/index.umd.js +0 -144
  833. package/dist/src/composables/useScrollspy/index.umd.js.map +0 -1
  834. package/dist/src/composables/useToast/index.umd.js +0 -90
  835. package/dist/src/composables/useToast/index.umd.js.map +0 -1
  836. package/dist/src/composables/useToggle/index.umd.js +0 -34
  837. package/dist/src/composables/useToggle/index.umd.js.map +0 -1
  838. package/dist/src/directives/BColorMode/index.umd.js +0 -15
  839. package/dist/src/directives/BColorMode/index.umd.js.map +0 -1
  840. package/dist/src/directives/BModal/index.umd.js +0 -3
  841. package/dist/src/directives/BPopover/index.umd.js +0 -14
  842. package/dist/src/directives/BPopover/index.umd.js.map +0 -1
  843. package/dist/src/directives/BScrollspy/index.umd.js +0 -35
  844. package/dist/src/directives/BScrollspy/index.umd.js.map +0 -1
  845. package/dist/src/directives/BToggle/index.umd.js +0 -77
  846. package/dist/src/directives/BToggle/index.umd.js.map +0 -1
  847. package/dist/src/directives/BTooltip/index.umd.js +0 -16
  848. package/dist/src/directives/BTooltip/index.umd.js.map +0 -1
  849. package/dist/src/directives/index.umd.js +0 -32
  850. package/dist/src/directives/index.umd.js.map +0 -1
  851. package/dist/src/plugins/createBootstrap/index.umd.js +0 -19
  852. package/dist/src/plugins/createBootstrap/index.umd.js.map +0 -1
  853. package/dist/src/plugins/index.umd.js +0 -26
  854. package/dist/src/plugins/index.umd.js.map +0 -1
  855. package/dist/src/plugins/orchestrator/index.umd.js +0 -13
  856. package/dist/src/plugins/orchestrator/index.umd.js.map +0 -1
  857. package/dist/src/plugins/registry/index.umd.js +0 -62
  858. package/dist/src/plugins/registry/index.umd.js.map +0 -1
  859. package/dist/src/plugins/rtl/index.umd.js +0 -21
  860. package/dist/src/plugins/rtl/index.umd.js.map +0 -1
  861. package/dist/src/resolvers/index.umd.js +0 -94
  862. package/dist/src/resolvers/index.umd.js.map +0 -1
  863. package/dist/src/types/index.umd.js +0 -27
  864. package/dist/src/types/index.umd.js.map +0 -1
  865. package/dist/src/utils/index.umd.js +0 -21
  866. package/dist/src/utils/index.umd.js.map +0 -1
  867. package/dist/stringUtils-68ZN_GRt.js +0 -71
  868. package/dist/stringUtils-D4eEDlt1.mjs.map +0 -1
  869. package/dist/useAlignment-DuR8ymKI.mjs.map +0 -1
  870. package/dist/useAlignment-oKolnDpb.js +0 -16
  871. package/dist/useAriaInvalid-CHHPHNLU.js +0 -17
  872. package/dist/useAriaInvalid-apOwgexm.mjs.map +0 -1
  873. package/dist/useColorVariantClasses-CqeXHjRh.mjs.map +0 -1
  874. package/dist/useColorVariantClasses-Dq0sOYDL.js +0 -27
  875. package/dist/useCountdownHover-C3NXiAaF.mjs.map +0 -1
  876. package/dist/useCountdownHover-DbVhE-N0.js +0 -104
  877. package/dist/useDateField-CJKgollJ.mjs.map +0 -1
  878. package/dist/useDateField-DWv3600o.js +0 -3872
  879. package/dist/useDateField-DWv3600o.js.map +0 -1
  880. package/dist/useDefaults-C0CYry78.js +0 -76
  881. package/dist/useDefaults-DseelK6y.mjs.map +0 -1
  882. package/dist/useFormCheck-BKXrwS3g.mjs.map +0 -1
  883. package/dist/useFormCheck-DYjLG4WA.js +0 -82
  884. package/dist/useFormInput-CXl8rpD0.mjs.map +0 -1
  885. package/dist/useFormInput-ip9hN2AU.js +0 -117
  886. package/dist/useFormSelect-BM0rsjni.mjs.map +0 -1
  887. package/dist/useFormSelect-ClmzGzOy.js +0 -58
  888. package/dist/useForwardExpose-BpZJluPs.js +0 -80
  889. package/dist/useForwardExpose-BpZJluPs.js.map +0 -1
  890. package/dist/useForwardExpose-Cob6LlGd.mjs.map +0 -1
  891. package/dist/useId-BkAY2oh6.js +0 -17
  892. package/dist/useId-D1sqXtwx.mjs.map +0 -1
  893. package/dist/useKbd-DfmgFov6.mjs.map +0 -1
  894. package/dist/useKbd-sqDCJtXL.js +0 -105
  895. package/dist/useKbd-sqDCJtXL.js.map +0 -1
  896. package/dist/useNumberishToStyle-BtMa0R27.js +0 -18
  897. package/dist/useNumberishToStyle-DgS1slD3.mjs.map +0 -1
  898. package/dist/useRadiusElementClasses-BW832F7F.mjs.map +0 -1
  899. package/dist/useRadiusElementClasses-DWiUVgex.js +0 -28
  900. package/dist/useRtl-BSgvbs5F.js +0 -26
  901. package/dist/useRtl-CGoXBxNo.mjs.map +0 -1
  902. package/dist/useSafeScrollLock-7wmPH_Hy.js +0 -1418
  903. package/dist/useSafeScrollLock-7wmPH_Hy.js.map +0 -1
  904. package/dist/useSafeScrollLock-Me5LyqjD.mjs.map +0 -1
  905. package/dist/useShowHide-CBFt1_EW.mjs.map +0 -1
  906. package/dist/useShowHide-CHm2uUep.js +0 -436
  907. package/dist/useShowHide-CHm2uUep.js.map +0 -1
  908. package/dist/useStateClass-CXK3nCg9.js +0 -16
  909. package/dist/useStateClass-DxlL_m2E.mjs.map +0 -1
  910. package/dist/utils-CWvndqPg.mjs.map +0 -1
  911. package/dist/utils-Dk9yAtbs.js +0 -186
  912. package/dist/utils-Dk9yAtbs.js.map +0 -1
  913. /package/dist/{chunk-D1SwGrFN.mjs → rolldown-runtime-BBjsoOtd.js} +0 -0
@@ -1,7 +1,7 @@
1
- import { t as useDefaults } from "./useDefaults-DseelK6y.mjs";
2
- import { t as useId$1 } from "./useId-D1sqXtwx.mjs";
3
- import { t as useColorVariantClasses } from "./useColorVariantClasses-CqeXHjRh.mjs";
4
- import { t as useNumberishToStyle } from "./useNumberishToStyle-DgS1slD3.mjs";
1
+ import { t as useDefaults } from "./useDefaults-BzP4qZBu.js";
2
+ import { t as useId$1 } from "./useId-Fh-Arhb7.js";
3
+ import { t as useColorVariantClasses } from "./useColorVariantClasses-DHQvLjek.js";
4
+ import { t as useNumberishToStyle } from "./useNumberishToStyle-DCnYcI6A.js";
5
5
  import { computed, createElementBlock, createElementVNode, defineComponent, guardReactiveProps, mergeProps, normalizeClass, normalizeProps, normalizeStyle, openBlock, renderSlot } from "vue";
6
6
  //#region src/components/BTable/BTableSimple.vue?vue&type=script&setup=true&lang.ts
7
7
  var defaultStickyHeaderHeight = "300px";
@@ -128,4 +128,4 @@ var BTableSimple_default = /* @__PURE__ */ defineComponent({
128
128
  //#endregion
129
129
  export { BTableSimple_default as t };
130
130
 
131
- //# sourceMappingURL=BTableSimple-C-jn9Nwh.mjs.map
131
+ //# sourceMappingURL=BTableSimple-2Z7ssnuG.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BTableSimple-BkdGAAKb.js","names":[],"sources":["../src/components/BTable/BTableSimple.vue","../src/components/BTable/BTableSimple.vue"],"sourcesContent":["<template>\n <!-- tables definitions are shared. Can't use createReusableTemplate cause it becomes a non-root node -->\n <div v-if=\"isResponsive\" :class=\"responsiveClasses\" :style=\"responsiveStyles\">\n <table v-bind=\"computedTableAttrs\">\n <slot />\n </table>\n </div>\n <table v-else v-bind=\"computedTableAttrs\">\n <slot />\n </table>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type StyleValue} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useNumberishToStyle} from '../../composables/useNumberishToStyle'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useId} from '../../composables/useId'\nimport type {BTableSimpleProps, BTableSimpleSlots} from '../../types'\n\nconst defaultStickyHeaderHeight = '300px'\n\nconst _props = withDefaults(defineProps<BTableSimpleProps>(), {\n borderVariant: null,\n tableClass: undefined,\n variant: null,\n bordered: false,\n borderless: false,\n captionTop: false,\n dark: false,\n hover: false,\n id: undefined,\n noBorderCollapse: false,\n outlined: false,\n fixed: false,\n responsive: false,\n stacked: false,\n striped: false,\n stripedColumns: false,\n small: false,\n stickyHeader: false,\n tableAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BTableSimple')\ndefineSlots<BTableSimpleSlots>()\n\nconst computedId = useId(() => props.id)\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n borderVariant: props.borderVariant,\n }))\n)\nconst computedClasses = computed(() => [\n props.tableClass,\n 'table',\n 'b-table',\n colorClasses.value,\n {\n 'border': props.outlined,\n 'table-bordered': props.bordered,\n 'table-borderless': props.borderless,\n 'caption-top': props.captionTop,\n 'table-dark': props.dark,\n 'table-hover': props.hover,\n 'b-table-stacked': props.stacked === true,\n [`b-table-stacked-${props.stacked}`]: typeof props.stacked === 'string',\n 'table-striped': props.striped,\n 'table-sm': props.small,\n [`table-${props.variant}`]: props.variant !== null,\n 'table-striped-columns': props.stripedColumns,\n 'b-table-fixed': props.fixed,\n 'b-table-no-border-collapse': props.noBorderCollapse,\n },\n])\nconst computedTableAttrs = computed(() => ({\n id: computedId.value,\n class: computedClasses.value,\n ...props.tableAttrs,\n}))\n\nconst computedSticky = useNumberishToStyle(\n computed(\n () =>\n (props.stickyHeader === true ? defaultStickyHeaderHeight : props.stickyHeader) || Number.NaN\n )\n)\nconst stickyIsValid = computed(() => props.stickyHeader !== false)\n\nconst isResponsive = computed(() => props.responsive !== false || stickyIsValid.value)\nconst responsiveStyles = computed<StyleValue | undefined>(() =>\n stickyIsValid.value ? {maxHeight: computedSticky.value} : undefined\n)\nconst responsiveClasses = computed(() => ({\n 'table-responsive': props.responsive === true,\n [`table-responsive-${props.responsive}`]: typeof props.responsive === 'string',\n 'b-table-sticky-header': stickyIsValid.value,\n}))\n</script>\n","<template>\n <!-- tables definitions are shared. Can't use createReusableTemplate cause it becomes a non-root node -->\n <div v-if=\"isResponsive\" :class=\"responsiveClasses\" :style=\"responsiveStyles\">\n <table v-bind=\"computedTableAttrs\">\n <slot />\n </table>\n </div>\n <table v-else v-bind=\"computedTableAttrs\">\n <slot />\n </table>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type StyleValue} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useNumberishToStyle} from '../../composables/useNumberishToStyle'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useId} from '../../composables/useId'\nimport type {BTableSimpleProps, BTableSimpleSlots} from '../../types'\n\nconst defaultStickyHeaderHeight = '300px'\n\nconst _props = withDefaults(defineProps<BTableSimpleProps>(), {\n borderVariant: null,\n tableClass: undefined,\n variant: null,\n bordered: false,\n borderless: false,\n captionTop: false,\n dark: false,\n hover: false,\n id: undefined,\n noBorderCollapse: false,\n outlined: false,\n fixed: false,\n responsive: false,\n stacked: false,\n striped: false,\n stripedColumns: false,\n small: false,\n stickyHeader: false,\n tableAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BTableSimple')\ndefineSlots<BTableSimpleSlots>()\n\nconst computedId = useId(() => props.id)\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n borderVariant: props.borderVariant,\n }))\n)\nconst computedClasses = computed(() => [\n props.tableClass,\n 'table',\n 'b-table',\n colorClasses.value,\n {\n 'border': props.outlined,\n 'table-bordered': props.bordered,\n 'table-borderless': props.borderless,\n 'caption-top': props.captionTop,\n 'table-dark': props.dark,\n 'table-hover': props.hover,\n 'b-table-stacked': props.stacked === true,\n [`b-table-stacked-${props.stacked}`]: typeof props.stacked === 'string',\n 'table-striped': props.striped,\n 'table-sm': props.small,\n [`table-${props.variant}`]: props.variant !== null,\n 'table-striped-columns': props.stripedColumns,\n 'b-table-fixed': props.fixed,\n 'b-table-no-border-collapse': props.noBorderCollapse,\n },\n])\nconst computedTableAttrs = computed(() => ({\n id: computedId.value,\n class: computedClasses.value,\n ...props.tableAttrs,\n}))\n\nconst computedSticky = useNumberishToStyle(\n computed(\n () =>\n (props.stickyHeader === true ? defaultStickyHeaderHeight : props.stickyHeader) || Number.NaN\n )\n)\nconst stickyIsValid = computed(() => props.stickyHeader !== false)\n\nconst isResponsive = computed(() => props.responsive !== false || stickyIsValid.value)\nconst responsiveStyles = computed<StyleValue | undefined>(() =>\n stickyIsValid.value ? {maxHeight: computedSticky.value} : undefined\n)\nconst responsiveClasses = computed(() => ({\n 'table-responsive': props.responsive === true,\n [`table-responsive-${props.responsive}`]: typeof props.responsive === 'string',\n 'b-table-sticky-header': stickyIsValid.value,\n}))\n</script>\n"],"mappings":";;;;;;;AAoBA,IAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBlC,MAAM,QAAQ,oBAAA,YArBC,SAqBmB,eAAc;EAGhD,MAAM,aAAa,cAAA,YAAY,MAAM,GAAE;EAEvC,MAAM,eAAe,+BAAA,wBAAA,GAAA,IAAA,iBACH,EACd,eAAe,MAAM,eACtB,EAAC,CACJ;EACA,MAAM,mBAAA,GAAA,IAAA,gBAAiC;GACrC,MAAM;GACN;GACA;GACA,aAAa;GACb;IACE,UAAU,MAAM;IAChB,kBAAkB,MAAM;IACxB,oBAAoB,MAAM;IAC1B,eAAe,MAAM;IACrB,cAAc,MAAM;IACpB,eAAe,MAAM;IACrB,mBAAmB,MAAM,YAAY;KACpC,mBAAmB,MAAM,YAAY,OAAO,MAAM,YAAY;IAC/D,iBAAiB,MAAM;IACvB,YAAY,MAAM;KACjB,SAAS,MAAM,YAAY,MAAM,YAAY;IAC9C,yBAAyB,MAAM;IAC/B,iBAAiB,MAAM;IACvB,8BAA8B,MAAM;;GAEvC,CAAA;EACD,MAAM,sBAAA,GAAA,IAAA,iBAAqC;GACzC,IAAI,WAAW;GACf,OAAO,gBAAgB;GACvB,GAAG,MAAM;GACV,EAAC;EAEF,MAAM,iBAAiB,4BAAA,qBAAA,GAAA,IAAA,iBAGhB,MAAM,iBAAiB,OAAO,4BAA4B,MAAM,iBAAiB,IACtF,CACF;EACA,MAAM,iBAAA,GAAA,IAAA,gBAA+B,MAAM,iBAAiB,MAAK;EAEjE,MAAM,gBAAA,GAAA,IAAA,gBAA8B,MAAM,eAAe,SAAS,cAAc,MAAK;EACrF,MAAM,oBAAA,GAAA,IAAA,gBACJ,cAAc,QAAQ,EAAC,WAAW,eAAe,OAAM,GAAG,KAAA,EAC5D;EACA,MAAM,qBAAA,GAAA,IAAA,iBAAoC;GACxC,oBAAoB,MAAM,eAAe;IACxC,oBAAoB,MAAM,eAAe,OAAO,MAAM,eAAe;GACtE,yBAAyB,cAAc;GACxC,EAAC;;UA/FW,aAAA,UAAA,GAAA,IAAA,YAAA,GAAA,GAAA,IAAA,oBAIL,OAAA;;IAJoB,QAAA,GAAA,IAAA,gBAAO,kBAAA,MAAiB;IAAG,QAAA,GAAA,IAAA,gBAAO,iBAAA,MAAA;mCAGlD,UAAA,GAAA,IAAA,iBAAA,GAAA,IAAA,oBAFO,mBAAA,MAAkB,CAAA,EAAA,EAAA,GAAA,IAAA,YACvB,KAAA,QAAA,UAAA,CAAA,EAAA,GAAA,CAAA,EAAA,EAAA,MAAA,GAAA,IAAA,YAAA,GAAA,GAAA,IAAA,oBAKJ,UAAA,GAAA,IAAA,iBAAA,GAAA,IAAA,YAAA,EAAA,KAAA,GAAA,EAFc,mBAAA,MAAkB,CAAA,EAAA,EAAA,GAAA,IAAA,YAC9B,KAAA,QAAA,UAAA,CAAA,EAAA,GAAA"}
1
+ {"version":3,"file":"BTableSimple-2Z7ssnuG.js","names":[],"sources":["../src/components/BTable/BTableSimple.vue","../src/components/BTable/BTableSimple.vue"],"sourcesContent":["<template>\n <!-- tables definitions are shared. Can't use createReusableTemplate cause it becomes a non-root node -->\n <div v-if=\"isResponsive\" :class=\"responsiveClasses\" :style=\"responsiveStyles\">\n <table v-bind=\"computedTableAttrs\">\n <slot />\n </table>\n </div>\n <table v-else v-bind=\"computedTableAttrs\">\n <slot />\n </table>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type StyleValue} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useNumberishToStyle} from '../../composables/useNumberishToStyle'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useId} from '../../composables/useId'\nimport type {BTableSimpleProps, BTableSimpleSlots} from '../../types'\n\nconst defaultStickyHeaderHeight = '300px'\n\nconst _props = withDefaults(defineProps<BTableSimpleProps>(), {\n borderVariant: null,\n tableClass: undefined,\n variant: null,\n bordered: false,\n borderless: false,\n captionTop: false,\n dark: false,\n hover: false,\n id: undefined,\n noBorderCollapse: false,\n outlined: false,\n fixed: false,\n responsive: false,\n stacked: false,\n striped: false,\n stripedColumns: false,\n small: false,\n stickyHeader: false,\n tableAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BTableSimple')\ndefineSlots<BTableSimpleSlots>()\n\nconst computedId = useId(() => props.id)\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n borderVariant: props.borderVariant,\n }))\n)\nconst computedClasses = computed(() => [\n props.tableClass,\n 'table',\n 'b-table',\n colorClasses.value,\n {\n 'border': props.outlined,\n 'table-bordered': props.bordered,\n 'table-borderless': props.borderless,\n 'caption-top': props.captionTop,\n 'table-dark': props.dark,\n 'table-hover': props.hover,\n 'b-table-stacked': props.stacked === true,\n [`b-table-stacked-${props.stacked}`]: typeof props.stacked === 'string',\n 'table-striped': props.striped,\n 'table-sm': props.small,\n [`table-${props.variant}`]: props.variant !== null,\n 'table-striped-columns': props.stripedColumns,\n 'b-table-fixed': props.fixed,\n 'b-table-no-border-collapse': props.noBorderCollapse,\n },\n])\nconst computedTableAttrs = computed(() => ({\n id: computedId.value,\n class: computedClasses.value,\n ...props.tableAttrs,\n}))\n\nconst computedSticky = useNumberishToStyle(\n computed(\n () =>\n (props.stickyHeader === true ? defaultStickyHeaderHeight : props.stickyHeader) || Number.NaN\n )\n)\nconst stickyIsValid = computed(() => props.stickyHeader !== false)\n\nconst isResponsive = computed(() => props.responsive !== false || stickyIsValid.value)\nconst responsiveStyles = computed<StyleValue | undefined>(() =>\n stickyIsValid.value ? {maxHeight: computedSticky.value} : undefined\n)\nconst responsiveClasses = computed(() => ({\n 'table-responsive': props.responsive === true,\n [`table-responsive-${props.responsive}`]: typeof props.responsive === 'string',\n 'b-table-sticky-header': stickyIsValid.value,\n}))\n</script>\n","<template>\n <!-- tables definitions are shared. Can't use createReusableTemplate cause it becomes a non-root node -->\n <div v-if=\"isResponsive\" :class=\"responsiveClasses\" :style=\"responsiveStyles\">\n <table v-bind=\"computedTableAttrs\">\n <slot />\n </table>\n </div>\n <table v-else v-bind=\"computedTableAttrs\">\n <slot />\n </table>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type StyleValue} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useNumberishToStyle} from '../../composables/useNumberishToStyle'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useId} from '../../composables/useId'\nimport type {BTableSimpleProps, BTableSimpleSlots} from '../../types'\n\nconst defaultStickyHeaderHeight = '300px'\n\nconst _props = withDefaults(defineProps<BTableSimpleProps>(), {\n borderVariant: null,\n tableClass: undefined,\n variant: null,\n bordered: false,\n borderless: false,\n captionTop: false,\n dark: false,\n hover: false,\n id: undefined,\n noBorderCollapse: false,\n outlined: false,\n fixed: false,\n responsive: false,\n stacked: false,\n striped: false,\n stripedColumns: false,\n small: false,\n stickyHeader: false,\n tableAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BTableSimple')\ndefineSlots<BTableSimpleSlots>()\n\nconst computedId = useId(() => props.id)\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n borderVariant: props.borderVariant,\n }))\n)\nconst computedClasses = computed(() => [\n props.tableClass,\n 'table',\n 'b-table',\n colorClasses.value,\n {\n 'border': props.outlined,\n 'table-bordered': props.bordered,\n 'table-borderless': props.borderless,\n 'caption-top': props.captionTop,\n 'table-dark': props.dark,\n 'table-hover': props.hover,\n 'b-table-stacked': props.stacked === true,\n [`b-table-stacked-${props.stacked}`]: typeof props.stacked === 'string',\n 'table-striped': props.striped,\n 'table-sm': props.small,\n [`table-${props.variant}`]: props.variant !== null,\n 'table-striped-columns': props.stripedColumns,\n 'b-table-fixed': props.fixed,\n 'b-table-no-border-collapse': props.noBorderCollapse,\n },\n])\nconst computedTableAttrs = computed(() => ({\n id: computedId.value,\n class: computedClasses.value,\n ...props.tableAttrs,\n}))\n\nconst computedSticky = useNumberishToStyle(\n computed(\n () =>\n (props.stickyHeader === true ? defaultStickyHeaderHeight : props.stickyHeader) || Number.NaN\n )\n)\nconst stickyIsValid = computed(() => props.stickyHeader !== false)\n\nconst isResponsive = computed(() => props.responsive !== false || stickyIsValid.value)\nconst responsiveStyles = computed<StyleValue | undefined>(() =>\n stickyIsValid.value ? {maxHeight: computedSticky.value} : undefined\n)\nconst responsiveClasses = computed(() => ({\n 'table-responsive': props.responsive === true,\n [`table-responsive-${props.responsive}`]: typeof props.responsive === 'string',\n 'b-table-sticky-header': stickyIsValid.value,\n}))\n</script>\n"],"mappings":";;;;;;AAoBA,IAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBlC,MAAM,QAAQ,YAAY,SAAQ,cAAc;EAGhD,MAAM,aAAa,cAAY,MAAM,EAAE;EAEvC,MAAM,eAAe,uBACnB,gBAAgB,EACd,eAAe,MAAM,cACvB,EAAE,CACJ;EACA,MAAM,kBAAkB,eAAe;GACrC,MAAM;GACN;GACA;GACA,aAAa;GACb;IACE,UAAU,MAAM;IAChB,kBAAkB,MAAM;IACxB,oBAAoB,MAAM;IAC1B,eAAe,MAAM;IACrB,cAAc,MAAM;IACpB,eAAe,MAAM;IACrB,mBAAmB,MAAM,YAAY;KACpC,mBAAmB,MAAM,YAAY,OAAO,MAAM,YAAY;IAC/D,iBAAiB,MAAM;IACvB,YAAY,MAAM;KACjB,SAAS,MAAM,YAAY,MAAM,YAAY;IAC9C,yBAAyB,MAAM;IAC/B,iBAAiB,MAAM;IACvB,8BAA8B,MAAM;GACtC;EACF,CAAC;EACD,MAAM,qBAAqB,gBAAgB;GACzC,IAAI,WAAW;GACf,OAAO,gBAAgB;GACvB,GAAG,MAAM;EACX,EAAE;EAEF,MAAM,iBAAiB,oBACrB,gBAEK,MAAM,iBAAiB,OAAO,4BAA4B,MAAM,iBAAiB,GACtF,CACF;EACA,MAAM,gBAAgB,eAAe,MAAM,iBAAiB,KAAK;EAEjE,MAAM,eAAe,eAAe,MAAM,eAAe,SAAS,cAAc,KAAK;EACrF,MAAM,mBAAmB,eACvB,cAAc,QAAQ,EAAC,WAAW,eAAe,MAAK,IAAI,KAAA,CAC5D;EACA,MAAM,oBAAoB,gBAAgB;GACxC,oBAAoB,MAAM,eAAe;IACxC,oBAAoB,MAAM,eAAe,OAAO,MAAM,eAAe;GACtE,yBAAyB,cAAc;EACzC,EAAE;;GA/FW,OAAA,aAAA,SAAX,UAAA,GAAA,mBAIM,OAAA;;IAJoB,OAAK,eAAE,kBAAA,KAAiB;IAAG,OAAK,eAAE,iBAAA,KAAgB;GAC1E,GAAA,CAAA,mBAEQ,SAAA,eAAA,mBAFO,mBAAA,KAAkB,CAAA,GAAA,CAC/B,WAAQ,KAAA,QAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,CAAA,MAGZ,UAAA,GAAA,mBAEQ,SAAA,eAAA,WAAA,EAAA,KAAA,EAAA,GAFc,mBAAA,KAAkB,CAAA,GAAA,CACtC,WAAQ,KAAA,QAAA,SAAA,CAAA,GAAA,EAAA"}
@@ -1,17 +1,17 @@
1
- import { C as tabsInjectionKey } from "./keys-DU7sQgl3.mjs";
2
- import { c as sortSlotElementsByPosition, i as getSafeDocument } from "./dom-AhkaSoh8.mjs";
3
- import { t as useDefaults } from "./useDefaults-DseelK6y.mjs";
4
- import { t as useId$1 } from "./useId-D1sqXtwx.mjs";
5
- import { t as flattenFragments } from "./flattenFragments-ClbLQGqR.mjs";
6
- import { n as BvEvent } from "./classes-B0E5Y78Y.mjs";
7
- import { t as useAlignment } from "./useAlignment-DuR8ymKI.mjs";
1
+ import { C as tabsInjectionKey } from "./keys-BgLwJbLV.js";
2
+ import { c as sortSlotElementsByPosition, i as getSafeDocument } from "./dom-BdUQrX99.js";
3
+ import { t as useDefaults } from "./useDefaults-BzP4qZBu.js";
4
+ import { t as useId$1 } from "./useId-Fh-Arhb7.js";
5
+ import { t as flattenFragments } from "./flattenFragments-B15oMVs-.js";
6
+ import { n as BvEvent } from "./classes-BEWWGbj5.js";
7
+ import { t as useAlignment } from "./useAlignment-DaP-psIh.js";
8
8
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, defineComponent, inject, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, onMounted, onUnmounted, openBlock, provide, ref, renderList, renderSlot, resolveDynamicComponent, toDisplayString, toRef, unref, useAttrs, useModel, useSlots, useTemplateRef, watch, withCtx, withKeys, withModifiers } from "vue";
9
9
  //#endregion
10
10
  //#region src/components/BTabs/BTab.vue
11
11
  var BTab_default = /* @__PURE__ */ defineComponent({
12
12
  inheritAttrs: false,
13
13
  __name: "BTab",
14
- props: /* @__PURE__ */ mergeModels({
14
+ props: /*@__PURE__*/ mergeModels({
15
15
  buttonId: { default: void 0 },
16
16
  disabled: {
17
17
  type: Boolean,
@@ -142,7 +142,7 @@ var BTab_default = /* @__PURE__ */ defineComponent({
142
142
  role: "tabpanel",
143
143
  "aria-labelledby": unref(computedButtonId)
144
144
  }, processedAttrs.value), {
145
- default: withCtx(() => [showSlot.value ? renderSlot(_ctx.$slots, "default", { key: 0 }) : createCommentVNode("", true)]),
145
+ default: withCtx(() => [showSlot.value ? renderSlot(_ctx.$slots, "default", {}, void 0, void 0, 0) : createCommentVNode("", true)]),
146
146
  _: 3
147
147
  }, 16, [
148
148
  "id",
@@ -185,7 +185,7 @@ var _hoisted_2 = [
185
185
  //#region src/components/BTabs/BTabs.vue
186
186
  var BTabs_default = /* @__PURE__ */ defineComponent({
187
187
  __name: "BTabs",
188
- props: /* @__PURE__ */ mergeModels({
188
+ props: /*@__PURE__*/ mergeModels({
189
189
  activeNavItemClass: { default: void 0 },
190
190
  activeNavLinkClass: { default: void 0 },
191
191
  activeTabClass: { default: void 0 },
@@ -255,7 +255,7 @@ var BTabs_default = /* @__PURE__ */ defineComponent({
255
255
  "modelValue": { default: void 0 },
256
256
  "modelModifiers": {}
257
257
  }),
258
- emits: /* @__PURE__ */ mergeModels(["activate-tab"], ["update:index", "update:modelValue"]),
258
+ emits: /*@__PURE__*/ mergeModels(["activate-tab"], ["update:index", "update:modelValue"]),
259
259
  setup(__props, { emit: __emit }) {
260
260
  const props = useDefaults(__props, "BTabs");
261
261
  const emit = __emit;
@@ -335,11 +335,13 @@ var BTabs_default = /* @__PURE__ */ defineComponent({
335
335
  if (activeIndex.value > -1 && !activeId.value && !hasExplicitIds.value && tabElementsArray.value.length > 0) {
336
336
  delayedTabSelection = true;
337
337
  updateInitialActiveId = true;
338
- } else if (activeIndex.value === -1 && activeId.value) if (tabs.value.findIndex((t) => t.id === activeId.value) !== -1) activeIndex.value = tabs.value.findIndex((t) => t.id === activeId.value);
339
- else updateInitialActiveIndex = true;
340
- else if (activeIndex.value > -1 && !activeId.value) if (tabs.value[activeIndex.value]?.id) activeId.value = tabs.value[activeIndex.value]?.id;
341
- else updateInitialActiveId = true;
342
- else if (activeIndex.value === -1 && !activeId.value && !isChildActive.value) {
338
+ } else if (activeIndex.value === -1 && activeId.value) {
339
+ if (tabs.value.findIndex((t) => t.id === activeId.value) !== -1) activeIndex.value = tabs.value.findIndex((t) => t.id === activeId.value);
340
+ else updateInitialActiveIndex = true;
341
+ } else if (activeIndex.value > -1 && !activeId.value) {
342
+ if (tabs.value[activeIndex.value]?.id) activeId.value = tabs.value[activeIndex.value]?.id;
343
+ else updateInitialActiveId = true;
344
+ } else if (activeIndex.value === -1 && !activeId.value && !isChildActive.value) {
343
345
  activeIndex.value = tabs.value.findIndex((t) => t.disabled === void 0 || t.disabled === false);
344
346
  activeId.value = tabs.value[activeIndex.value]?.id;
345
347
  } else if (activeIndex.value === -1 && !activeId.value && isChildActive.value) {
@@ -592,4 +594,4 @@ var BTabs_default = /* @__PURE__ */ defineComponent({
592
594
  //#endregion
593
595
  export { BTab_default as n, BTabs_default as t };
594
596
 
595
- //# sourceMappingURL=BTabs-D_vWlBjT.mjs.map
597
+ //# sourceMappingURL=BTabs-BVcu9DPg.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BTabs-CvecFg5N.js","names":[],"sources":["../src/components/BTabs/BTab.vue","../src/components/BTabs/BTab.vue","../src/components/BTabsTabContent.vue","../src/components/BTabsTabContent.vue","../src/components/BTabs/BTabs.vue","../src/components/BTabs/BTabs.vue"],"sourcesContent":["<template>\n <component\n :is=\"props.tag\"\n :id=\"computedId\"\n ref=\"_el\"\n class=\"tab-pane\"\n :class=\"computedClasses\"\n role=\"tabpanel\"\n :aria-labelledby=\"computedButtonId\"\n v-bind=\"processedAttrs\"\n >\n <slot v-if=\"showSlot\" />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, inject, onUnmounted, ref, useAttrs, useTemplateRef, watch} from 'vue'\nimport {useId} from '../../composables/useId'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {TabType} from '../../types/Tab'\nimport type {BTabProps} from '../../types/ComponentProps'\nimport {tabsInjectionKey} from '../../utils/keys'\nimport type {BTabSlots} from '../../types/ComponentSlots'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BTabProps, 'active'>>(), {\n buttonId: undefined,\n disabled: false,\n id: undefined,\n lazy: undefined,\n unmountLazy: undefined,\n noBody: false,\n tag: 'div',\n title: undefined,\n titleItemClass: undefined,\n titleLinkAttrs: undefined,\n titleLinkClass: undefined,\n})\nconst props = useDefaults(_props, 'BTab')\nconst slots = defineSlots<BTabSlots>()\nconst attrs = useAttrs()\n\nconst activeModel = defineModel<Exclude<BTabProps['active'], undefined>>('active', {\n default: false,\n})\n\nconst parentData = inject(tabsInjectionKey, null)\n\nconst localId = ref(props.id)\nconst internalId = useId('', 'tabpane')\nconst computedId = computed(() => props.id ?? localId.value ?? internalId.value)\nconst computedButtonId = useId(() => props.buttonId, 'tab')\n\nconst lazyRenderCompleted = ref(false)\nconst el = useTemplateRef('_el')\n\nconst processedAttrs = computed(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {onClick: _, ...tabAttrs} = attrs\n return tabAttrs\n})\n\nfunction updateTab() {\n if (!parentData) return\n const newId = parentData.registerTab(\n computed(\n () =>\n ({\n internalId: internalId.value,\n id: computedId.value,\n active: activeModel.value,\n buttonId: computedButtonId.value,\n disabled: props.disabled,\n title: props.title,\n titleComponent: slots.title,\n titleItemClass: props.titleItemClass,\n titleLinkAttrs: props.titleLinkAttrs,\n titleLinkClass: props.titleLinkClass,\n onClick: attrs.onClick,\n el,\n }) as TabType\n )\n )\n if (newId !== localId.value) {\n localId.value = newId\n }\n}\n\nif (parentData) {\n updateTab()\n if (activeModel.value) {\n parentData.activateTab(internalId.value)\n }\n}\n\nonUnmounted(() => {\n if (!parentData) return\n parentData.unregisterTab(internalId.value)\n})\n\nconst isActive = computed(() => parentData?.activeId.value === computedId.value)\nconst show = ref(isActive.value)\n\nconst computedLazy = computed(() => !!(parentData?.lazy.value || props.lazy))\n\nconst computedActive = computed(() => isActive.value && !props.disabled)\nconst showSlot = computed(\n () =>\n computedActive.value ||\n !computedLazy.value ||\n (computedLazy.value && !props.unmountLazy && lazyRenderCompleted.value)\n)\n\nwatch(showSlot, (shown) => {\n if (shown && !lazyRenderCompleted.value) lazyRenderCompleted.value = true\n})\n\nwatch(isActive, (active) => {\n if (active) {\n activeModel.value = true\n setTimeout(() => {\n show.value = true\n }, 0)\n return\n }\n show.value = false\n activeModel.value = false\n})\n\nwatch(activeModel, (active) => {\n if (props.disabled) {\n activeModel.value = false\n return\n }\n if (!parentData) return\n if (!active) {\n if (isActive.value) {\n parentData.activateTab(undefined)\n }\n return\n }\n if (!isActive.value) {\n parentData.activateTab(internalId.value)\n }\n})\n\nconst computedClasses = computed(() => [\n {\n 'active': isActive.value,\n 'show': show.value,\n 'card-body': parentData?.card.value && props.noBody === false,\n 'fade': !parentData?.noFade.value,\n },\n show.value ? parentData?.activeTabClass.value : parentData?.inactiveTabClass.value,\n parentData?.tabClass.value,\n])\n\ndefineExpose({\n activate: () => {\n activeModel.value = true\n },\n deactivate: () => {\n activeModel.value = false\n },\n})\n</script>\n","<template>\n <component\n :is=\"props.tag\"\n :id=\"computedId\"\n ref=\"_el\"\n class=\"tab-pane\"\n :class=\"computedClasses\"\n role=\"tabpanel\"\n :aria-labelledby=\"computedButtonId\"\n v-bind=\"processedAttrs\"\n >\n <slot v-if=\"showSlot\" />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, inject, onUnmounted, ref, useAttrs, useTemplateRef, watch} from 'vue'\nimport {useId} from '../../composables/useId'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {TabType} from '../../types/Tab'\nimport type {BTabProps} from '../../types/ComponentProps'\nimport {tabsInjectionKey} from '../../utils/keys'\nimport type {BTabSlots} from '../../types/ComponentSlots'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BTabProps, 'active'>>(), {\n buttonId: undefined,\n disabled: false,\n id: undefined,\n lazy: undefined,\n unmountLazy: undefined,\n noBody: false,\n tag: 'div',\n title: undefined,\n titleItemClass: undefined,\n titleLinkAttrs: undefined,\n titleLinkClass: undefined,\n})\nconst props = useDefaults(_props, 'BTab')\nconst slots = defineSlots<BTabSlots>()\nconst attrs = useAttrs()\n\nconst activeModel = defineModel<Exclude<BTabProps['active'], undefined>>('active', {\n default: false,\n})\n\nconst parentData = inject(tabsInjectionKey, null)\n\nconst localId = ref(props.id)\nconst internalId = useId('', 'tabpane')\nconst computedId = computed(() => props.id ?? localId.value ?? internalId.value)\nconst computedButtonId = useId(() => props.buttonId, 'tab')\n\nconst lazyRenderCompleted = ref(false)\nconst el = useTemplateRef('_el')\n\nconst processedAttrs = computed(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {onClick: _, ...tabAttrs} = attrs\n return tabAttrs\n})\n\nfunction updateTab() {\n if (!parentData) return\n const newId = parentData.registerTab(\n computed(\n () =>\n ({\n internalId: internalId.value,\n id: computedId.value,\n active: activeModel.value,\n buttonId: computedButtonId.value,\n disabled: props.disabled,\n title: props.title,\n titleComponent: slots.title,\n titleItemClass: props.titleItemClass,\n titleLinkAttrs: props.titleLinkAttrs,\n titleLinkClass: props.titleLinkClass,\n onClick: attrs.onClick,\n el,\n }) as TabType\n )\n )\n if (newId !== localId.value) {\n localId.value = newId\n }\n}\n\nif (parentData) {\n updateTab()\n if (activeModel.value) {\n parentData.activateTab(internalId.value)\n }\n}\n\nonUnmounted(() => {\n if (!parentData) return\n parentData.unregisterTab(internalId.value)\n})\n\nconst isActive = computed(() => parentData?.activeId.value === computedId.value)\nconst show = ref(isActive.value)\n\nconst computedLazy = computed(() => !!(parentData?.lazy.value || props.lazy))\n\nconst computedActive = computed(() => isActive.value && !props.disabled)\nconst showSlot = computed(\n () =>\n computedActive.value ||\n !computedLazy.value ||\n (computedLazy.value && !props.unmountLazy && lazyRenderCompleted.value)\n)\n\nwatch(showSlot, (shown) => {\n if (shown && !lazyRenderCompleted.value) lazyRenderCompleted.value = true\n})\n\nwatch(isActive, (active) => {\n if (active) {\n activeModel.value = true\n setTimeout(() => {\n show.value = true\n }, 0)\n return\n }\n show.value = false\n activeModel.value = false\n})\n\nwatch(activeModel, (active) => {\n if (props.disabled) {\n activeModel.value = false\n return\n }\n if (!parentData) return\n if (!active) {\n if (isActive.value) {\n parentData.activateTab(undefined)\n }\n return\n }\n if (!isActive.value) {\n parentData.activateTab(internalId.value)\n }\n})\n\nconst computedClasses = computed(() => [\n {\n 'active': isActive.value,\n 'show': show.value,\n 'card-body': parentData?.card.value && props.noBody === false,\n 'fade': !parentData?.noFade.value,\n },\n show.value ? parentData?.activeTabClass.value : parentData?.inactiveTabClass.value,\n parentData?.tabClass.value,\n])\n\ndefineExpose({\n activate: () => {\n activeModel.value = true\n },\n deactivate: () => {\n activeModel.value = false\n },\n})\n</script>\n","<template>\n <div class=\"tab-content\" :class=\"contentClass\">\n <slot />\n <div v-if=\"showEmpty\" key=\"bv-empty-tab\" class=\"tab-pane active\" :class=\"{'card-body': card}\">\n <slot name=\"empty\" />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type {ClassValue} from '../types/AnyValuedAttributes'\n\ndefineProps<{\n contentClass: ClassValue | undefined\n showEmpty: boolean\n card: boolean\n}>()\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\ndefineSlots<{\n default?: (props: Record<string, never>) => any\n empty?: (props: Record<string, never>) => any\n}>()\n/* eslint-enable @typescript-eslint/no-explicit-any */\n</script>\n","<template>\n <div class=\"tab-content\" :class=\"contentClass\">\n <slot />\n <div v-if=\"showEmpty\" key=\"bv-empty-tab\" class=\"tab-pane active\" :class=\"{'card-body': card}\">\n <slot name=\"empty\" />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type {ClassValue} from '../types/AnyValuedAttributes'\n\ndefineProps<{\n contentClass: ClassValue | undefined\n showEmpty: boolean\n card: boolean\n}>()\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\ndefineSlots<{\n default?: (props: Record<string, never>) => any\n empty?: (props: Record<string, never>) => any\n}>()\n/* eslint-enable @typescript-eslint/no-explicit-any */\n</script>\n","<template>\n <component :is=\"props.tag\" :id=\"props.id\" class=\"tabs\" :class=\"computedClasses\">\n <BTabsTabContent v-if=\"props.end\" v-bind=\"tabContentProps\">\n <slot />\n <template #empty>\n <slot name=\"empty\" />\n </template>\n </BTabsTabContent>\n <div\n :class=\"[\n props.navWrapperClass,\n {'card-header': props.card, 'ms-auto': vertical && props.end},\n ]\"\n >\n <ul\n class=\"nav\"\n :class=\"[navTabsClasses, props.navClass]\"\n role=\"tablist\"\n :aria-orientation=\"props.vertical ? 'vertical' : 'horizontal'\"\n >\n <slot name=\"tabs-start\" />\n <li\n v-for=\"(tab, idx) in tabs\"\n :key=\"tab.id ?? tab.internalId\"\n class=\"nav-item\"\n :class=\"tab.titleItemClass\"\n role=\"presentation\"\n >\n <button\n :id=\"tab.buttonId\"\n class=\"nav-link\"\n :class=\"[tab.navItemClasses, tab.titleLinkClass, tab.active ? props.activeNavLinkClass : props.inactiveNavLinkClass]\"\n role=\"tab\"\n :aria-controls=\"tab.id\"\n :aria-selected=\"tab.active\"\n :disabled=\"tab.disabled\"\n :tabindex=\"props.noKeyNav ? undefined : tab.active ? undefined : -1\"\n type=\"button\"\n v-bind=\"tab.titleLinkAttrs\"\n @keydown.left.exact=\"!props.vertical && keynav($event, -1)\"\n @keydown.left.shift=\"!props.vertical && keynav($event, -999)\"\n @keydown.up.exact=\"props.vertical && keynav($event, -1)\"\n @keydown.up.shift=\"props.vertical && keynav($event, -999)\"\n @keydown.right.exact=\"!props.vertical && keynav($event, 1)\"\n @keydown.right.shift=\"!props.vertical && keynav($event, 999)\"\n @keydown.down.exact=\"props.vertical && keynav($event, 1)\"\n @keydown.down.shift=\"props.vertical && keynav($event, 999)\"\n @keydown.page-up=\"keynav($event, -999)\"\n @keydown.page-down=\"keynav($event, 999)\"\n @keydown.home=\"keynav($event, -999)\"\n @keydown.end=\"keynav($event, 999)\"\n @click.stop=\"(e) => handleClick(e, idx)\"\n >\n <component :is=\"tab.titleComponent\" v-if=\"tab.titleComponent\" />\n <template v-else>\n {{ tab.title }}\n </template>\n </button>\n </li>\n <slot name=\"tabs-end\" />\n </ul>\n </div>\n <BTabsTabContent v-if=\"!props.end\" v-bind=\"tabContentProps\">\n <slot />\n <template #empty>\n <slot name=\"empty\" />\n </template>\n </BTabsTabContent>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n nextTick,\n onMounted,\n provide,\n type Ref,\n ref,\n toRef,\n unref,\n type VNode,\n watch,\n} from 'vue'\nimport {BvEvent} from '../../utils/classes'\nimport {useAlignment} from '../../composables/useAlignment'\nimport {useId} from '../../composables/useId'\nimport type {TabType, BTabsProps, BTabsEmits, BTabsSlots} from '../../types'\nimport {tabsInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {getSafeDocument, sortSlotElementsByPosition} from '../../utils/dom'\nimport {flattenFragments} from '../../utils/flattenFragments'\nimport BTab from './BTab.vue'\nimport BTabsTabContent from '../BTabsTabContent.vue'\n\nconst _props = withDefaults(defineProps<Omit<BTabsProps, 'modelValue' | 'activeIndex'>>(), {\n activeNavItemClass: undefined,\n activeNavLinkClass: undefined,\n activeTabClass: undefined,\n align: undefined,\n card: false,\n contentClass: undefined,\n end: false,\n fill: false,\n id: undefined,\n inactiveNavItemClass: undefined,\n inactiveNavLinkClass: undefined,\n inactiveTabClass: undefined,\n justified: false,\n lazy: false,\n navClass: undefined,\n navItemClass: undefined,\n navWrapperClass: undefined,\n noFade: false,\n noKeyNav: false,\n noNavStyle: false,\n pills: false,\n small: false,\n tag: 'div',\n tabClass: undefined,\n underline: false,\n vertical: false,\n})\nconst props = useDefaults(_props, 'BTabs')\nconst emit = defineEmits<BTabsEmits>()\nconst slots = defineSlots<BTabsSlots>()\n\nconst activeIndex = defineModel<Exclude<BTabsProps['index'], undefined>>('index', {\n default: -1,\n})\nconst activeId = defineModel<BTabsProps['modelValue']>({\n default: undefined,\n})\n\nconst tabsInternal = ref<Ref<TabType>[]>([])\n\nconst tabElementsArray = ref<VNode[]>([])\n\nconst isChildActive = ref(false)\nconst initialIds = ref<string[]>([])\nconst hasExplicitIds = ref(false)\n\nconst updateTabElementsArray = () => {\n const tabElements = flattenFragments(slots.default?.({}) ?? [])\n tabElementsArray.value = (Array.isArray(tabElements) ? tabElements : [tabElements]).filter(\n (tab) => tab.type === BTab\n )\n // only get the ids once in setup context\n if (initialIds.value.length === 0) {\n // we need to get the ids of the tabs before they are registered. After that we use the internalId for the tabpane\n initialIds.value = tabElementsArray.value.map((tab) =>\n unref(useId(() => tab.props?.id, 'tabpane'))\n )\n // Check if any tab has an explicit ID\n hasExplicitIds.value = tabElementsArray.value.some((tab) => tab.props?.id !== undefined)\n }\n isChildActive.value = tabElementsArray.value.some(\n (tab) => tab.props?.active !== undefined && tab.props?.active !== false\n )\n}\nupdateTabElementsArray()\n\nwatch(\n () => slots.default?.({}),\n () => {\n updateTabElementsArray()\n nextTick(() => {\n sortTabs()\n })\n }\n)\n\nconst tabs = computed(() => {\n if (tabsInternal.value.length === 0) {\n // fail back on the slot elements, the children haven't been registered yet\n const _activeIndex = tabElementsArray.value.findIndex(\n (tab) =>\n (tab.props?.active !== undefined &&\n (tab.props.disabled === false || tab.props.disabled === undefined)) ||\n (activeId.value && tab.props?.id === activeId.value)\n )\n return tabElementsArray.value.map((tab, index) => {\n const active =\n _activeIndex !== -1\n ? index === _activeIndex\n : activeIndex.value > -1\n ? index === activeIndex.value\n : index === 0\n return {\n id: tab.props?.id ?? initialIds.value[index],\n internalId: `premount-${index}`, // temporary id for the tab\n buttonId: tab.props?.buttonId,\n disabled: tab.props?.disabled,\n title: tab.props?.title,\n titleComponent: (tab.children as {title: unknown})?.title,\n titleItemClass: tab.props?.titleItemClass,\n titleLinkAttrs: tab.props?.titleLinkAttrs,\n titleLinkClass: tab.props?.titleLinkClass,\n onClick: tab.props?.onClick,\n active,\n navItemClasses: [\n {\n active,\n disabled: !(tab.props?.disabled === false || tab.props?.disabled === undefined),\n },\n active ? props.activeNavItemClass : props.inactiveNavItemClass,\n props.navItemClass,\n ],\n }\n })\n }\n return tabsInternal.value.map((_tab) => {\n const tab = unref(_tab)\n const active = tab.id === activeId.value\n\n return {\n ...tab,\n active,\n navItemClasses: [\n {\n active,\n disabled: tab.disabled,\n },\n active ? props.activeNavItemClass : props.inactiveNavItemClass,\n props.navItemClass,\n ],\n }\n })\n})\n\nlet initialized = false\nlet updateInitialActiveIndex = false\nlet updateInitialActiveId = false\nlet delayedTabSelection = false\n\n// Check if we need to delay tab selection:\n// - We have v-model:index (activeIndex) but no v-model (activeId)\n// - AND tabs don't have explicit IDs (will use generated IDs)\n// - AND we have tabs to select from\nconst needsDelayedSelection =\n activeIndex.value > -1 &&\n !activeId.value &&\n !hasExplicitIds.value &&\n tabElementsArray.value.length > 0\n\nif (needsDelayedSelection) {\n // Delay tab selection until children register with their generated IDs\n delayedTabSelection = true\n updateInitialActiveId = true\n} else if (activeIndex.value === -1 && activeId.value) {\n if (tabs.value.findIndex((t) => t.id === activeId.value) !== -1) {\n activeIndex.value = tabs.value.findIndex((t) => t.id === activeId.value)\n } else {\n updateInitialActiveIndex = true\n }\n} else if (activeIndex.value > -1 && !activeId.value) {\n if (tabs.value[activeIndex.value]?.id) {\n activeId.value = tabs.value[activeIndex.value]?.id\n } else {\n updateInitialActiveId = true\n }\n} else if (activeIndex.value === -1 && !activeId.value && !isChildActive.value) {\n activeIndex.value = tabs.value.findIndex((t) => t.disabled === undefined || t.disabled === false)\n activeId.value = tabs.value[activeIndex.value]?.id\n} else if (activeIndex.value === -1 && !activeId.value && isChildActive.value) {\n activeIndex.value = tabs.value.findIndex(\n (t) =>\n t.active !== undefined &&\n t.active !== false &&\n (t.disabled === undefined || t.disabled === false)\n )\n activeId.value = tabs.value[activeIndex.value]?.id\n}\n\nfunction updateInitialIndexAndId() {\n // we get the computedIds after registering the tabs\n if (updateInitialActiveIndex) {\n const index = tabs.value.findIndex((t) => t.id === activeId.value)\n if (index !== -1) {\n nextTick(() => {\n activeIndex.value = index\n updateInitialActiveIndex = false\n })\n }\n }\n if (updateInitialActiveId) {\n // Wait for tabs to be registered if we're doing delayed selection\n if (delayedTabSelection && tabsInternal.value.length === 0) {\n // Children haven't registered yet, wait\n return\n }\n if (activeIndex.value > -1 && tabs.value[activeIndex.value]?.id) {\n nextTick(() => {\n activeId.value = tabs.value[activeIndex.value]?.id\n updateInitialActiveId = false\n delayedTabSelection = false\n })\n }\n }\n}\n\nupdateInitialIndexAndId()\n\nconst showEmpty = computed(() => !(tabs?.value && tabs.value.length > 0))\n\nconst tabContentProps = computed(() => ({\n contentClass: props.contentClass,\n showEmpty: showEmpty.value,\n card: props.card,\n}))\n\nconst computedClasses = computed(() => ({\n 'd-flex': props.vertical,\n 'align-items-start': props.vertical,\n}))\n\nconst alignment = useAlignment(() => props.align)\n\nconst navTabsClasses = computed(() => ({\n 'nav-pills': props.pills,\n 'nav-underline': props.underline,\n 'flex-column me-3': props.vertical,\n [alignment.value]: props.align !== undefined,\n 'nav-fill': props.fill,\n 'card-header-tabs': props.card && !props.pills && !props.underline,\n 'card-header-pills': props.card && props.pills,\n 'nav-justified': props.justified,\n 'nav-tabs': !props.noNavStyle && !props.pills && !props.underline,\n 'small': props.small,\n}))\n\nconst handleClick = (event: Readonly<MouseEvent>, index: number) => {\n if (\n index >= 0 &&\n !tabs.value[index]?.disabled &&\n tabs.value[index]?.onClick &&\n typeof tabs.value[index].onClick === 'function'\n ) {\n tabs.value[index].onClick?.(event)\n if (event.defaultPrevented) {\n getSafeDocument()?.getElementById(tabs.value[index].buttonId)?.blur()\n return\n }\n }\n activeIndex.value = index\n}\n\nconst keynav = (e: Event, direction: number) => {\n if (tabs.value.length <= 0 || props.noKeyNav) return\n e.preventDefault()\n e.stopPropagation()\n activeIndex.value = nextIndex(activeIndex.value + direction, direction)\n nextTick(() => {\n if (activeIndex.value >= 0) {\n getSafeDocument()?.getElementById(tabs.value[activeIndex.value]?.buttonId)?.focus()\n }\n })\n}\n\nconst nextIndex = (start: number, direction: number) => {\n let index = start\n let minIdx = -1\n let maxIdx = -1\n\n for (let i = 0; i < tabs.value.length; i++) {\n if (!tabs.value[i]?.disabled) {\n if (minIdx === -1) minIdx = i\n maxIdx = i\n }\n }\n\n while (index >= minIdx && index <= maxIdx && tabs.value[index]?.disabled) {\n index += direction\n }\n\n if (index < minIdx) index = minIdx\n if (index > maxIdx) index = maxIdx\n\n return index\n}\n\nlet previousIndex: number | undefined\nlet isReverting = false\nwatch(activeIndex, (newValue, oldValue) => {\n // Early exit if there are no tabs or all tabs are disabled\n if (tabs.value.length <= 0 || tabs.value.filter((t) => !t.disabled).length <= 0) {\n return\n }\n\n // If we're reverting due to a prevented event, don't process further\n if (isReverting) {\n isReverting = false\n return\n }\n // Calculate the next valid index\n const index = nextIndex(newValue, newValue > oldValue ? 1 : -1)\n if (index !== newValue) {\n // If the index is not the same as the new value, set the previous index to the old value\n // this is to prevent the event from being emitted twice\n previousIndex = oldValue\n activeIndex.value = index\n return\n }\n // Emit the activate-tab event\n const tabEvent = new BvEvent('activate-tab', {cancelable: true})\n emit('activate-tab', {\n newTabId: tabs.value[index]?.id,\n prevTabId: tabs.value[previousIndex ?? oldValue]?.id,\n newTabIndex: index,\n prevTabIndex: previousIndex ?? oldValue,\n event: tabEvent,\n })\n // If the event is prevented, revert to the previous index\n if (tabEvent.defaultPrevented) {\n isReverting = true\n const prev = previousIndex ?? oldValue ?? nextIndex(0, 1)\n previousIndex = undefined\n // Update the active id this will also trigger the activeId watch which will update the activeIndex\n // this is to make sure we handle case that starts with id change.\n if (activeId.value !== tabs.value[prev]?.id) {\n activeId.value = tabs.value[prev]?.id\n }\n nextTick(() => {\n if (prev >= 0) {\n getSafeDocument()?.getElementById(tabs.value[prev]?.buttonId)?.focus()\n }\n })\n return\n }\n\n // Update the active id\n if (activeId.value !== tabs.value[index]?.id) {\n activeId.value = tabs.value[index]?.id\n }\n previousIndex = undefined\n})\n\nwatch(activeId, (newValue, oldValue) => {\n if (tabs.value.length <= 0 || tabs.value.filter((t) => !t.disabled).length <= 0) {\n return\n }\n const index = tabs.value.findIndex((t) => t.id === newValue)\n // If the new tab is the same as the current tab, do nothing\n if (index === activeIndex.value) return\n const oldIndex = tabs.value.findIndex((t) => t.id === oldValue)\n // If the new tab is disabled, find the next enabled tab\n if (tabs.value[index]?.disabled) {\n // activeIndex watcher will update the activeId to the next enabled tab\n activeIndex.value = nextIndex(index, index > oldIndex ? 1 : -1)\n return\n }\n // If the new tab is not found, find the first enabled tab\n if (index === -1) {\n // activeIndex watcher will update the activeId to the first enabled tab\n activeIndex.value = nextIndex(0, 1)\n nextTick(() => {\n activeId.value = tabs.value[activeIndex.value]?.id\n })\n return\n }\n // change to the next tab\n activeIndex.value = index\n})\n\nconst registerTab = (tab: Ref<TabType>) => {\n const idx = tabsInternal.value.findIndex((t) => t.value.internalId === tab.value.internalId)\n if (idx === -1) {\n tabsInternal.value.push(tab)\n if (initialized) {\n nextTick(() => {\n sortTabs()\n })\n } else {\n // If we're doing delayed tab selection, try to update now that a tab has registered\n if (delayedTabSelection) {\n nextTick(() => {\n updateInitialIndexAndId()\n })\n }\n }\n } else {\n tabsInternal.value[idx] = tab\n if (initialized) {\n // sort just in case the tab was moved\n sortTabs()\n }\n }\n const idx2 = tabsInternal.value.findIndex((t) => t.value.internalId === tab.value.internalId)\n return tab.value.id ?? (!initialized ? initialIds.value[idx2] : tab.value.internalId)\n}\n\nonMounted(() => {\n updateInitialIndexAndId()\n sortTabs()\n initialized = true\n})\n\nconst sortTabs = () => {\n tabsInternal.value.sort((a, b) => sortSlotElementsByPosition(a.value.el.value, b.value.el.value))\n if (\n activeId.value &&\n activeIndex.value !== tabs.value.findIndex((t) => t.id === activeId.value)\n ) {\n activeIndex.value = tabs.value.findIndex((t) => t.id === activeId.value)\n }\n}\n\nconst unregisterTab = (id: string) => {\n tabsInternal.value = tabsInternal.value.filter((t) => t.value.internalId !== id)\n}\n\nprovide(tabsInjectionKey, {\n lazy: toRef(() => props.lazy),\n card: toRef(() => props.card),\n noFade: toRef(() => props.noFade),\n activeTabClass: toRef(() => props.activeTabClass),\n inactiveTabClass: toRef(() => props.inactiveTabClass),\n tabClass: toRef(() => props.tabClass),\n registerTab,\n unregisterTab,\n activeId,\n activateTab: (internalId) => {\n const idx = tabs.value.findIndex((t) => t.internalId === internalId)\n if (internalId === undefined || idx === -1) {\n activeIndex.value = nextIndex(0, 1)\n return\n }\n activeIndex.value = idx\n },\n})\n</script>\n","<template>\n <component :is=\"props.tag\" :id=\"props.id\" class=\"tabs\" :class=\"computedClasses\">\n <BTabsTabContent v-if=\"props.end\" v-bind=\"tabContentProps\">\n <slot />\n <template #empty>\n <slot name=\"empty\" />\n </template>\n </BTabsTabContent>\n <div\n :class=\"[\n props.navWrapperClass,\n {'card-header': props.card, 'ms-auto': vertical && props.end},\n ]\"\n >\n <ul\n class=\"nav\"\n :class=\"[navTabsClasses, props.navClass]\"\n role=\"tablist\"\n :aria-orientation=\"props.vertical ? 'vertical' : 'horizontal'\"\n >\n <slot name=\"tabs-start\" />\n <li\n v-for=\"(tab, idx) in tabs\"\n :key=\"tab.id ?? tab.internalId\"\n class=\"nav-item\"\n :class=\"tab.titleItemClass\"\n role=\"presentation\"\n >\n <button\n :id=\"tab.buttonId\"\n class=\"nav-link\"\n :class=\"[tab.navItemClasses, tab.titleLinkClass, tab.active ? props.activeNavLinkClass : props.inactiveNavLinkClass]\"\n role=\"tab\"\n :aria-controls=\"tab.id\"\n :aria-selected=\"tab.active\"\n :disabled=\"tab.disabled\"\n :tabindex=\"props.noKeyNav ? undefined : tab.active ? undefined : -1\"\n type=\"button\"\n v-bind=\"tab.titleLinkAttrs\"\n @keydown.left.exact=\"!props.vertical && keynav($event, -1)\"\n @keydown.left.shift=\"!props.vertical && keynav($event, -999)\"\n @keydown.up.exact=\"props.vertical && keynav($event, -1)\"\n @keydown.up.shift=\"props.vertical && keynav($event, -999)\"\n @keydown.right.exact=\"!props.vertical && keynav($event, 1)\"\n @keydown.right.shift=\"!props.vertical && keynav($event, 999)\"\n @keydown.down.exact=\"props.vertical && keynav($event, 1)\"\n @keydown.down.shift=\"props.vertical && keynav($event, 999)\"\n @keydown.page-up=\"keynav($event, -999)\"\n @keydown.page-down=\"keynav($event, 999)\"\n @keydown.home=\"keynav($event, -999)\"\n @keydown.end=\"keynav($event, 999)\"\n @click.stop=\"(e) => handleClick(e, idx)\"\n >\n <component :is=\"tab.titleComponent\" v-if=\"tab.titleComponent\" />\n <template v-else>\n {{ tab.title }}\n </template>\n </button>\n </li>\n <slot name=\"tabs-end\" />\n </ul>\n </div>\n <BTabsTabContent v-if=\"!props.end\" v-bind=\"tabContentProps\">\n <slot />\n <template #empty>\n <slot name=\"empty\" />\n </template>\n </BTabsTabContent>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n nextTick,\n onMounted,\n provide,\n type Ref,\n ref,\n toRef,\n unref,\n type VNode,\n watch,\n} from 'vue'\nimport {BvEvent} from '../../utils/classes'\nimport {useAlignment} from '../../composables/useAlignment'\nimport {useId} from '../../composables/useId'\nimport type {TabType, BTabsProps, BTabsEmits, BTabsSlots} from '../../types'\nimport {tabsInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {getSafeDocument, sortSlotElementsByPosition} from '../../utils/dom'\nimport {flattenFragments} from '../../utils/flattenFragments'\nimport BTab from './BTab.vue'\nimport BTabsTabContent from '../BTabsTabContent.vue'\n\nconst _props = withDefaults(defineProps<Omit<BTabsProps, 'modelValue' | 'activeIndex'>>(), {\n activeNavItemClass: undefined,\n activeNavLinkClass: undefined,\n activeTabClass: undefined,\n align: undefined,\n card: false,\n contentClass: undefined,\n end: false,\n fill: false,\n id: undefined,\n inactiveNavItemClass: undefined,\n inactiveNavLinkClass: undefined,\n inactiveTabClass: undefined,\n justified: false,\n lazy: false,\n navClass: undefined,\n navItemClass: undefined,\n navWrapperClass: undefined,\n noFade: false,\n noKeyNav: false,\n noNavStyle: false,\n pills: false,\n small: false,\n tag: 'div',\n tabClass: undefined,\n underline: false,\n vertical: false,\n})\nconst props = useDefaults(_props, 'BTabs')\nconst emit = defineEmits<BTabsEmits>()\nconst slots = defineSlots<BTabsSlots>()\n\nconst activeIndex = defineModel<Exclude<BTabsProps['index'], undefined>>('index', {\n default: -1,\n})\nconst activeId = defineModel<BTabsProps['modelValue']>({\n default: undefined,\n})\n\nconst tabsInternal = ref<Ref<TabType>[]>([])\n\nconst tabElementsArray = ref<VNode[]>([])\n\nconst isChildActive = ref(false)\nconst initialIds = ref<string[]>([])\nconst hasExplicitIds = ref(false)\n\nconst updateTabElementsArray = () => {\n const tabElements = flattenFragments(slots.default?.({}) ?? [])\n tabElementsArray.value = (Array.isArray(tabElements) ? tabElements : [tabElements]).filter(\n (tab) => tab.type === BTab\n )\n // only get the ids once in setup context\n if (initialIds.value.length === 0) {\n // we need to get the ids of the tabs before they are registered. After that we use the internalId for the tabpane\n initialIds.value = tabElementsArray.value.map((tab) =>\n unref(useId(() => tab.props?.id, 'tabpane'))\n )\n // Check if any tab has an explicit ID\n hasExplicitIds.value = tabElementsArray.value.some((tab) => tab.props?.id !== undefined)\n }\n isChildActive.value = tabElementsArray.value.some(\n (tab) => tab.props?.active !== undefined && tab.props?.active !== false\n )\n}\nupdateTabElementsArray()\n\nwatch(\n () => slots.default?.({}),\n () => {\n updateTabElementsArray()\n nextTick(() => {\n sortTabs()\n })\n }\n)\n\nconst tabs = computed(() => {\n if (tabsInternal.value.length === 0) {\n // fail back on the slot elements, the children haven't been registered yet\n const _activeIndex = tabElementsArray.value.findIndex(\n (tab) =>\n (tab.props?.active !== undefined &&\n (tab.props.disabled === false || tab.props.disabled === undefined)) ||\n (activeId.value && tab.props?.id === activeId.value)\n )\n return tabElementsArray.value.map((tab, index) => {\n const active =\n _activeIndex !== -1\n ? index === _activeIndex\n : activeIndex.value > -1\n ? index === activeIndex.value\n : index === 0\n return {\n id: tab.props?.id ?? initialIds.value[index],\n internalId: `premount-${index}`, // temporary id for the tab\n buttonId: tab.props?.buttonId,\n disabled: tab.props?.disabled,\n title: tab.props?.title,\n titleComponent: (tab.children as {title: unknown})?.title,\n titleItemClass: tab.props?.titleItemClass,\n titleLinkAttrs: tab.props?.titleLinkAttrs,\n titleLinkClass: tab.props?.titleLinkClass,\n onClick: tab.props?.onClick,\n active,\n navItemClasses: [\n {\n active,\n disabled: !(tab.props?.disabled === false || tab.props?.disabled === undefined),\n },\n active ? props.activeNavItemClass : props.inactiveNavItemClass,\n props.navItemClass,\n ],\n }\n })\n }\n return tabsInternal.value.map((_tab) => {\n const tab = unref(_tab)\n const active = tab.id === activeId.value\n\n return {\n ...tab,\n active,\n navItemClasses: [\n {\n active,\n disabled: tab.disabled,\n },\n active ? props.activeNavItemClass : props.inactiveNavItemClass,\n props.navItemClass,\n ],\n }\n })\n})\n\nlet initialized = false\nlet updateInitialActiveIndex = false\nlet updateInitialActiveId = false\nlet delayedTabSelection = false\n\n// Check if we need to delay tab selection:\n// - We have v-model:index (activeIndex) but no v-model (activeId)\n// - AND tabs don't have explicit IDs (will use generated IDs)\n// - AND we have tabs to select from\nconst needsDelayedSelection =\n activeIndex.value > -1 &&\n !activeId.value &&\n !hasExplicitIds.value &&\n tabElementsArray.value.length > 0\n\nif (needsDelayedSelection) {\n // Delay tab selection until children register with their generated IDs\n delayedTabSelection = true\n updateInitialActiveId = true\n} else if (activeIndex.value === -1 && activeId.value) {\n if (tabs.value.findIndex((t) => t.id === activeId.value) !== -1) {\n activeIndex.value = tabs.value.findIndex((t) => t.id === activeId.value)\n } else {\n updateInitialActiveIndex = true\n }\n} else if (activeIndex.value > -1 && !activeId.value) {\n if (tabs.value[activeIndex.value]?.id) {\n activeId.value = tabs.value[activeIndex.value]?.id\n } else {\n updateInitialActiveId = true\n }\n} else if (activeIndex.value === -1 && !activeId.value && !isChildActive.value) {\n activeIndex.value = tabs.value.findIndex((t) => t.disabled === undefined || t.disabled === false)\n activeId.value = tabs.value[activeIndex.value]?.id\n} else if (activeIndex.value === -1 && !activeId.value && isChildActive.value) {\n activeIndex.value = tabs.value.findIndex(\n (t) =>\n t.active !== undefined &&\n t.active !== false &&\n (t.disabled === undefined || t.disabled === false)\n )\n activeId.value = tabs.value[activeIndex.value]?.id\n}\n\nfunction updateInitialIndexAndId() {\n // we get the computedIds after registering the tabs\n if (updateInitialActiveIndex) {\n const index = tabs.value.findIndex((t) => t.id === activeId.value)\n if (index !== -1) {\n nextTick(() => {\n activeIndex.value = index\n updateInitialActiveIndex = false\n })\n }\n }\n if (updateInitialActiveId) {\n // Wait for tabs to be registered if we're doing delayed selection\n if (delayedTabSelection && tabsInternal.value.length === 0) {\n // Children haven't registered yet, wait\n return\n }\n if (activeIndex.value > -1 && tabs.value[activeIndex.value]?.id) {\n nextTick(() => {\n activeId.value = tabs.value[activeIndex.value]?.id\n updateInitialActiveId = false\n delayedTabSelection = false\n })\n }\n }\n}\n\nupdateInitialIndexAndId()\n\nconst showEmpty = computed(() => !(tabs?.value && tabs.value.length > 0))\n\nconst tabContentProps = computed(() => ({\n contentClass: props.contentClass,\n showEmpty: showEmpty.value,\n card: props.card,\n}))\n\nconst computedClasses = computed(() => ({\n 'd-flex': props.vertical,\n 'align-items-start': props.vertical,\n}))\n\nconst alignment = useAlignment(() => props.align)\n\nconst navTabsClasses = computed(() => ({\n 'nav-pills': props.pills,\n 'nav-underline': props.underline,\n 'flex-column me-3': props.vertical,\n [alignment.value]: props.align !== undefined,\n 'nav-fill': props.fill,\n 'card-header-tabs': props.card && !props.pills && !props.underline,\n 'card-header-pills': props.card && props.pills,\n 'nav-justified': props.justified,\n 'nav-tabs': !props.noNavStyle && !props.pills && !props.underline,\n 'small': props.small,\n}))\n\nconst handleClick = (event: Readonly<MouseEvent>, index: number) => {\n if (\n index >= 0 &&\n !tabs.value[index]?.disabled &&\n tabs.value[index]?.onClick &&\n typeof tabs.value[index].onClick === 'function'\n ) {\n tabs.value[index].onClick?.(event)\n if (event.defaultPrevented) {\n getSafeDocument()?.getElementById(tabs.value[index].buttonId)?.blur()\n return\n }\n }\n activeIndex.value = index\n}\n\nconst keynav = (e: Event, direction: number) => {\n if (tabs.value.length <= 0 || props.noKeyNav) return\n e.preventDefault()\n e.stopPropagation()\n activeIndex.value = nextIndex(activeIndex.value + direction, direction)\n nextTick(() => {\n if (activeIndex.value >= 0) {\n getSafeDocument()?.getElementById(tabs.value[activeIndex.value]?.buttonId)?.focus()\n }\n })\n}\n\nconst nextIndex = (start: number, direction: number) => {\n let index = start\n let minIdx = -1\n let maxIdx = -1\n\n for (let i = 0; i < tabs.value.length; i++) {\n if (!tabs.value[i]?.disabled) {\n if (minIdx === -1) minIdx = i\n maxIdx = i\n }\n }\n\n while (index >= minIdx && index <= maxIdx && tabs.value[index]?.disabled) {\n index += direction\n }\n\n if (index < minIdx) index = minIdx\n if (index > maxIdx) index = maxIdx\n\n return index\n}\n\nlet previousIndex: number | undefined\nlet isReverting = false\nwatch(activeIndex, (newValue, oldValue) => {\n // Early exit if there are no tabs or all tabs are disabled\n if (tabs.value.length <= 0 || tabs.value.filter((t) => !t.disabled).length <= 0) {\n return\n }\n\n // If we're reverting due to a prevented event, don't process further\n if (isReverting) {\n isReverting = false\n return\n }\n // Calculate the next valid index\n const index = nextIndex(newValue, newValue > oldValue ? 1 : -1)\n if (index !== newValue) {\n // If the index is not the same as the new value, set the previous index to the old value\n // this is to prevent the event from being emitted twice\n previousIndex = oldValue\n activeIndex.value = index\n return\n }\n // Emit the activate-tab event\n const tabEvent = new BvEvent('activate-tab', {cancelable: true})\n emit('activate-tab', {\n newTabId: tabs.value[index]?.id,\n prevTabId: tabs.value[previousIndex ?? oldValue]?.id,\n newTabIndex: index,\n prevTabIndex: previousIndex ?? oldValue,\n event: tabEvent,\n })\n // If the event is prevented, revert to the previous index\n if (tabEvent.defaultPrevented) {\n isReverting = true\n const prev = previousIndex ?? oldValue ?? nextIndex(0, 1)\n previousIndex = undefined\n // Update the active id this will also trigger the activeId watch which will update the activeIndex\n // this is to make sure we handle case that starts with id change.\n if (activeId.value !== tabs.value[prev]?.id) {\n activeId.value = tabs.value[prev]?.id\n }\n nextTick(() => {\n if (prev >= 0) {\n getSafeDocument()?.getElementById(tabs.value[prev]?.buttonId)?.focus()\n }\n })\n return\n }\n\n // Update the active id\n if (activeId.value !== tabs.value[index]?.id) {\n activeId.value = tabs.value[index]?.id\n }\n previousIndex = undefined\n})\n\nwatch(activeId, (newValue, oldValue) => {\n if (tabs.value.length <= 0 || tabs.value.filter((t) => !t.disabled).length <= 0) {\n return\n }\n const index = tabs.value.findIndex((t) => t.id === newValue)\n // If the new tab is the same as the current tab, do nothing\n if (index === activeIndex.value) return\n const oldIndex = tabs.value.findIndex((t) => t.id === oldValue)\n // If the new tab is disabled, find the next enabled tab\n if (tabs.value[index]?.disabled) {\n // activeIndex watcher will update the activeId to the next enabled tab\n activeIndex.value = nextIndex(index, index > oldIndex ? 1 : -1)\n return\n }\n // If the new tab is not found, find the first enabled tab\n if (index === -1) {\n // activeIndex watcher will update the activeId to the first enabled tab\n activeIndex.value = nextIndex(0, 1)\n nextTick(() => {\n activeId.value = tabs.value[activeIndex.value]?.id\n })\n return\n }\n // change to the next tab\n activeIndex.value = index\n})\n\nconst registerTab = (tab: Ref<TabType>) => {\n const idx = tabsInternal.value.findIndex((t) => t.value.internalId === tab.value.internalId)\n if (idx === -1) {\n tabsInternal.value.push(tab)\n if (initialized) {\n nextTick(() => {\n sortTabs()\n })\n } else {\n // If we're doing delayed tab selection, try to update now that a tab has registered\n if (delayedTabSelection) {\n nextTick(() => {\n updateInitialIndexAndId()\n })\n }\n }\n } else {\n tabsInternal.value[idx] = tab\n if (initialized) {\n // sort just in case the tab was moved\n sortTabs()\n }\n }\n const idx2 = tabsInternal.value.findIndex((t) => t.value.internalId === tab.value.internalId)\n return tab.value.id ?? (!initialized ? initialIds.value[idx2] : tab.value.internalId)\n}\n\nonMounted(() => {\n updateInitialIndexAndId()\n sortTabs()\n initialized = true\n})\n\nconst sortTabs = () => {\n tabsInternal.value.sort((a, b) => sortSlotElementsByPosition(a.value.el.value, b.value.el.value))\n if (\n activeId.value &&\n activeIndex.value !== tabs.value.findIndex((t) => t.id === activeId.value)\n ) {\n activeIndex.value = tabs.value.findIndex((t) => t.id === activeId.value)\n }\n}\n\nconst unregisterTab = (id: string) => {\n tabsInternal.value = tabsInternal.value.filter((t) => t.value.internalId !== id)\n}\n\nprovide(tabsInjectionKey, {\n lazy: toRef(() => props.lazy),\n card: toRef(() => props.card),\n noFade: toRef(() => props.noFade),\n activeTabClass: toRef(() => props.activeTabClass),\n inactiveTabClass: toRef(() => props.inactiveTabClass),\n tabClass: toRef(() => props.tabClass),\n registerTab,\n unregisterTab,\n activeId,\n activateTab: (internalId) => {\n const idx = tabs.value.findIndex((t) => t.internalId === internalId)\n if (internalId === undefined || idx === -1) {\n activeIndex.value = nextIndex(0, 1)\n return\n }\n activeIndex.value = idx\n },\n})\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyCA,MAAM,QAAQ,oBAAA,YAbC,SAamB,OAAM;EACxC,MAAM,SAAA,GAAA,IAAA,WAAQ;EACd,MAAM,SAAA,GAAA,IAAA,WAAiB;EAEvB,MAAM,eAAA,GAAA,IAAA,UAAkE,SAAC,SAExE;EAED,MAAM,cAAA,GAAA,IAAA,QAAoB,aAAA,kBAAkB,KAAI;EAEhD,MAAM,WAAA,GAAA,IAAA,KAAc,MAAM,GAAE;EAC5B,MAAM,aAAa,cAAA,MAAM,IAAI,UAAS;EACtC,MAAM,cAAA,GAAA,IAAA,gBAA4B,MAAM,MAAM,QAAQ,SAAS,WAAW,MAAK;EAC/E,MAAM,mBAAmB,cAAA,YAAY,MAAM,UAAU,MAAK;EAE1D,MAAM,uBAAA,GAAA,IAAA,KAA0B,MAAK;EACrC,MAAM,MAAA,GAAA,IAAA,gBAAoB,MAAK;EAE/B,MAAM,kBAAA,GAAA,IAAA,gBAAgC;GAEpC,MAAM,EAAC,SAAS,GAAG,GAAG,aAAY;AAClC,UAAO;IACR;EAED,SAAS,YAAY;AACnB,OAAI,CAAC,WAAY;GACjB,MAAM,QAAQ,WAAW,aAAA,GAAA,IAAA,iBAGlB;IACC,YAAY,WAAW;IACvB,IAAI,WAAW;IACf,QAAQ,YAAY;IACpB,UAAU,iBAAiB;IAC3B,UAAU,MAAM;IAChB,OAAO,MAAM;IACb,gBAAgB,MAAM;IACtB,gBAAgB,MAAM;IACtB,gBAAgB,MAAM;IACtB,gBAAgB,MAAM;IACtB,SAAS,MAAM;IACf;IACD,EACL,CACF;AACA,OAAI,UAAU,QAAQ,MACpB,SAAQ,QAAQ;;AAIpB,MAAI,YAAY;AACd,cAAU;AACV,OAAI,YAAY,MACd,YAAW,YAAY,WAAW,MAAK;;AAI3C,GAAA,GAAA,IAAA,mBAAkB;AAChB,OAAI,CAAC,WAAY;AACjB,cAAW,cAAc,WAAW,MAAK;IAC1C;EAED,MAAM,YAAA,GAAA,IAAA,gBAA0B,YAAY,SAAS,UAAU,WAAW,MAAK;EAC/E,MAAM,QAAA,GAAA,IAAA,KAAW,SAAS,MAAK;EAE/B,MAAM,gBAAA,GAAA,IAAA,gBAA8B,CAAC,EAAE,YAAY,KAAK,SAAS,MAAM,MAAK;EAE5E,MAAM,kBAAA,GAAA,IAAA,gBAAgC,SAAS,SAAS,CAAC,MAAM,SAAQ;EACvE,MAAM,YAAA,GAAA,IAAA,gBAEF,eAAe,SACf,CAAC,aAAa,SACb,aAAa,SAAS,CAAC,MAAM,eAAe,oBAAoB,MACrE;AAEA,GAAA,GAAA,IAAA,OAAM,WAAW,UAAU;AACzB,OAAI,SAAS,CAAC,oBAAoB,MAAO,qBAAoB,QAAQ;IACtE;AAED,GAAA,GAAA,IAAA,OAAM,WAAW,WAAW;AAC1B,OAAI,QAAQ;AACV,gBAAY,QAAQ;AACpB,qBAAiB;AACf,UAAK,QAAQ;OACZ,EAAC;AACJ;;AAEF,QAAK,QAAQ;AACb,eAAY,QAAQ;IACrB;AAED,GAAA,GAAA,IAAA,OAAM,cAAc,WAAW;AAC7B,OAAI,MAAM,UAAU;AAClB,gBAAY,QAAQ;AACpB;;AAEF,OAAI,CAAC,WAAY;AACjB,OAAI,CAAC,QAAQ;AACX,QAAI,SAAS,MACX,YAAW,YAAY,KAAA,EAAS;AAElC;;AAEF,OAAI,CAAC,SAAS,MACZ,YAAW,YAAY,WAAW,MAAK;IAE1C;EAED,MAAM,mBAAA,GAAA,IAAA,gBAAiC;GACrC;IACE,UAAU,SAAS;IACnB,QAAQ,KAAK;IACb,aAAa,YAAY,KAAK,SAAS,MAAM,WAAW;IACxD,QAAQ,CAAC,YAAY,OAAO;IAC7B;GACD,KAAK,QAAQ,YAAY,eAAe,QAAQ,YAAY,iBAAiB;GAC7E,YAAY,SAAS;GACtB,CAAA;AAED,WAAa;GACX,gBAAgB;AACd,gBAAY,QAAQ;;GAEtB,kBAAkB;AAChB,gBAAY,QAAQ;;GAEvB,CAAA;;qGArKQ,MAAK,CAAC,IAAG,GAAA,GAAA,IAAA,YAUJ;IATT,IAAI,WAAA;IACL,KAAI;IACJ,OAAK,CAAC,YACE,gBAAA,MAAe;IACvB,MAAK;IACJ,oBAAA,GAAA,IAAA,OAAiB,iBAAA;MACV,eAAA,MAAc,EAAA;oCAEE,CAAZ,SAAA,SAAA,GAAA,IAAA,YAAY,KAAA,QAAA,WAAA,EAAA,KAAA,GAAA,CAAA,IAAA,GAAA,IAAA,oBAAA,IAAA,KAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;4DELpB,OAAA,EALD,QAAA,GAAA,IAAA,gBAAK,CAAC,eAAsB,QAAA,aAAY,CAAA,EAAA,EAAA,EAAA,GAAA,IAAA,YACnC,KAAA,QAAA,UAAA,EACG,QAAA,cAAA,GAAA,IAAA,YAAA,GAAA,GAAA,IAAA,oBAEL,OAAA;IAFgB,KAAI;IAAe,QAAA,GAAA,IAAA,gBAAK,CAAC,mBAAiB,EAAA,aAAuB,QAAA,MAAI,CAAA,CAAA;2BACpE,KAAA,QAAA,QAAA,CAAA,EAAA,EAAA,KAAA,GAAA,IAAA,oBAAA,IAAA,KAAA,CAAA,EAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EEuH3B,MAAM,QAAQ,oBAAA,YA5BC,SA4BmB,QAAO;EACzC,MAAM,OAAO;EACb,MAAM,SAAA,GAAA,IAAA,WAAQ;EAEd,MAAM,eAAA,GAAA,IAAA,UAAkE,SAAC,QAExE;EACD,MAAM,YAAA,GAAA,IAAA,UAAgD,SAAA,aAErD;EAED,MAAM,gBAAA,GAAA,IAAA,KAAmC,EAAE,CAAA;EAE3C,MAAM,oBAAA,GAAA,IAAA,KAAgC,EAAE,CAAA;EAExC,MAAM,iBAAA,GAAA,IAAA,KAAoB,MAAK;EAC/B,MAAM,cAAA,GAAA,IAAA,KAA2B,EAAE,CAAA;EACnC,MAAM,kBAAA,GAAA,IAAA,KAAqB,MAAK;EAEhC,MAAM,+BAA+B;GACnC,MAAM,cAAc,yBAAA,iBAAiB,MAAM,UAAU,EAAE,CAAC,IAAI,EAAE,CAAA;AAC9D,oBAAiB,SAAS,MAAM,QAAQ,YAAY,GAAG,cAAc,CAAC,YAAY,EAAE,QACjF,QAAQ,IAAI,SAAS,aACxB;AAEA,OAAI,WAAW,MAAM,WAAW,GAAG;AAEjC,eAAW,QAAQ,iBAAiB,MAAM,KAAK,SAAA,GAAA,IAAA,OACvC,cAAA,YAAY,IAAI,OAAO,IAAI,UAAU,CAAA,CAC7C;AAEA,mBAAe,QAAQ,iBAAiB,MAAM,MAAM,QAAQ,IAAI,OAAO,OAAO,KAAA,EAAS;;AAEzF,iBAAc,QAAQ,iBAAiB,MAAM,MAC1C,QAAQ,IAAI,OAAO,WAAW,KAAA,KAAa,IAAI,OAAO,WAAW,MACpE;;AAEF,0BAAuB;AAEvB,GAAA,GAAA,IAAA,aACQ,MAAM,UAAU,EAAE,CAAC,QACnB;AACJ,2BAAuB;AACvB,IAAA,GAAA,IAAA,gBAAe;AACb,cAAS;KACV;IAEL;EAEA,MAAM,QAAA,GAAA,IAAA,gBAAsB;AAC1B,OAAI,aAAa,MAAM,WAAW,GAAG;IAEnC,MAAM,eAAe,iBAAiB,MAAM,WACzC,QACE,IAAI,OAAO,WAAW,KAAA,MACpB,IAAI,MAAM,aAAa,SAAS,IAAI,MAAM,aAAa,KAAA,MACzD,SAAS,SAAS,IAAI,OAAO,OAAO,SAAS,MAClD;AACA,WAAO,iBAAiB,MAAM,KAAK,KAAK,UAAU;KAChD,MAAM,SACJ,iBAAiB,KACb,UAAU,eACV,YAAY,QAAQ,KAClB,UAAU,YAAY,QACtB,UAAU;AAClB,YAAO;MACL,IAAI,IAAI,OAAO,MAAM,WAAW,MAAM;MACtC,YAAY,YAAY;MACxB,UAAU,IAAI,OAAO;MACrB,UAAU,IAAI,OAAO;MACrB,OAAO,IAAI,OAAO;MAClB,gBAAiB,IAAI,UAA+B;MACpD,gBAAgB,IAAI,OAAO;MAC3B,gBAAgB,IAAI,OAAO;MAC3B,gBAAgB,IAAI,OAAO;MAC3B,SAAS,IAAI,OAAO;MACpB;MACA,gBAAgB;OACd;QACE;QACA,UAAU,EAAE,IAAI,OAAO,aAAa,SAAS,IAAI,OAAO,aAAa,KAAA;QACtE;OACD,SAAS,MAAM,qBAAqB,MAAM;OAC1C,MAAM;;MAEV;MACD;;AAEH,UAAO,aAAa,MAAM,KAAK,SAAS;IACtC,MAAM,OAAA,GAAA,IAAA,OAAY,KAAI;IACtB,MAAM,SAAS,IAAI,OAAO,SAAS;AAEnC,WAAO;KACL,GAAG;KACH;KACA,gBAAgB;MACd;OACE;OACA,UAAU,IAAI;OACf;MACD,SAAS,MAAM,qBAAqB,MAAM;MAC1C,MAAM;;KAEV;KACD;IACF;EAED,IAAI,cAAc;EAClB,IAAI,2BAA2B;EAC/B,IAAI,wBAAwB;EAC5B,IAAI,sBAAsB;AAY1B,MALE,YAAY,QAAQ,MACpB,CAAC,SAAS,SACV,CAAC,eAAe,SAChB,iBAAiB,MAAM,SAAS,GAEP;AAEzB,yBAAsB;AACtB,2BAAwB;aACf,YAAY,UAAU,MAAM,SAAS,MAC9C,KAAI,KAAK,MAAM,WAAW,MAAM,EAAE,OAAO,SAAS,MAAM,KAAK,GAC3D,aAAY,QAAQ,KAAK,MAAM,WAAW,MAAM,EAAE,OAAO,SAAS,MAAK;MAEvE,4BAA2B;WAEpB,YAAY,QAAQ,MAAM,CAAC,SAAS,MAC7C,KAAI,KAAK,MAAM,YAAY,QAAQ,GACjC,UAAS,QAAQ,KAAK,MAAM,YAAY,QAAQ;MAEhD,yBAAwB;WAEjB,YAAY,UAAU,MAAM,CAAC,SAAS,SAAS,CAAC,cAAc,OAAO;AAC9E,eAAY,QAAQ,KAAK,MAAM,WAAW,MAAM,EAAE,aAAa,KAAA,KAAa,EAAE,aAAa,MAAK;AAChG,YAAS,QAAQ,KAAK,MAAM,YAAY,QAAQ;aACvC,YAAY,UAAU,MAAM,CAAC,SAAS,SAAS,cAAc,OAAO;AAC7E,eAAY,QAAQ,KAAK,MAAM,WAC5B,MACC,EAAE,WAAW,KAAA,KACb,EAAE,WAAW,UACZ,EAAE,aAAa,KAAA,KAAa,EAAE,aAAa,OAChD;AACA,YAAS,QAAQ,KAAK,MAAM,YAAY,QAAQ;;EAGlD,SAAS,0BAA0B;AAEjC,OAAI,0BAA0B;IAC5B,MAAM,QAAQ,KAAK,MAAM,WAAW,MAAM,EAAE,OAAO,SAAS,MAAK;AACjE,QAAI,UAAU,GACZ,EAAA,GAAA,IAAA,gBAAe;AACb,iBAAY,QAAQ;AACpB,gCAA2B;MAC5B;;AAGL,OAAI,uBAAuB;AAEzB,QAAI,uBAAuB,aAAa,MAAM,WAAW,EAEvD;AAEF,QAAI,YAAY,QAAQ,MAAM,KAAK,MAAM,YAAY,QAAQ,GAC3D,EAAA,GAAA,IAAA,gBAAe;AACb,cAAS,QAAQ,KAAK,MAAM,YAAY,QAAQ;AAChD,6BAAwB;AACxB,2BAAsB;MACvB;;;AAKP,2BAAwB;EAExB,MAAM,aAAA,GAAA,IAAA,gBAA2B,EAAE,MAAM,SAAS,KAAK,MAAM,SAAS,GAAE;EAExE,MAAM,mBAAA,GAAA,IAAA,iBAAkC;GACtC,cAAc,MAAM;GACpB,WAAW,UAAU;GACrB,MAAM,MAAM;GACb,EAAC;EAEF,MAAM,mBAAA,GAAA,IAAA,iBAAkC;GACtC,UAAU,MAAM;GAChB,qBAAqB,MAAM;GAC5B,EAAC;EAEF,MAAM,YAAY,qBAAA,mBAAmB,MAAM,MAAK;EAEhD,MAAM,kBAAA,GAAA,IAAA,iBAAiC;GACrC,aAAa,MAAM;GACnB,iBAAiB,MAAM;GACvB,oBAAoB,MAAM;IACzB,UAAU,QAAQ,MAAM,UAAU,KAAA;GACnC,YAAY,MAAM;GAClB,oBAAoB,MAAM,QAAQ,CAAC,MAAM,SAAS,CAAC,MAAM;GACzD,qBAAqB,MAAM,QAAQ,MAAM;GACzC,iBAAiB,MAAM;GACvB,YAAY,CAAC,MAAM,cAAc,CAAC,MAAM,SAAS,CAAC,MAAM;GACxD,SAAS,MAAM;GAChB,EAAC;EAEF,MAAM,eAAe,OAA6B,UAAkB;AAClE,OACE,SAAS,KACT,CAAC,KAAK,MAAM,QAAQ,YACpB,KAAK,MAAM,QAAQ,WACnB,OAAO,KAAK,MAAM,OAAO,YAAY,YACrC;AACA,SAAK,MAAM,OAAO,UAAU,MAAK;AACjC,QAAI,MAAM,kBAAkB;AAC1B,iBAAA,iBAAiB,EAAE,eAAe,KAAK,MAAM,OAAO,SAAS,EAAE,MAAK;AACpE;;;AAGJ,eAAY,QAAQ;;EAGtB,MAAM,UAAU,GAAU,cAAsB;AAC9C,OAAI,KAAK,MAAM,UAAU,KAAK,MAAM,SAAU;AAC9C,KAAE,gBAAe;AACjB,KAAE,iBAAgB;AAClB,eAAY,QAAQ,UAAU,YAAY,QAAQ,WAAW,UAAS;AACtE,IAAA,GAAA,IAAA,gBAAe;AACb,QAAI,YAAY,SAAS,EACvB,aAAA,iBAAiB,EAAE,eAAe,KAAK,MAAM,YAAY,QAAQ,SAAS,EAAE,OAAM;KAErF;;EAGH,MAAM,aAAa,OAAe,cAAsB;GACtD,IAAI,QAAQ;GACZ,IAAI,SAAS;GACb,IAAI,SAAS;AAEb,QAAK,IAAI,IAAI,GAAG,IAAI,KAAK,MAAM,QAAQ,IACrC,KAAI,CAAC,KAAK,MAAM,IAAI,UAAU;AAC5B,QAAI,WAAW,GAAI,UAAS;AAC5B,aAAS;;AAIb,UAAO,SAAS,UAAU,SAAS,UAAU,KAAK,MAAM,QAAQ,SAC9D,UAAS;AAGX,OAAI,QAAQ,OAAQ,SAAQ;AAC5B,OAAI,QAAQ,OAAQ,SAAQ;AAE5B,UAAO;;EAGT,IAAI;EACJ,IAAI,cAAc;AAClB,GAAA,GAAA,IAAA,OAAM,cAAc,UAAU,aAAa;AAEzC,OAAI,KAAK,MAAM,UAAU,KAAK,KAAK,MAAM,QAAQ,MAAM,CAAC,EAAE,SAAS,CAAC,UAAU,EAC5E;AAIF,OAAI,aAAa;AACf,kBAAc;AACd;;GAGF,MAAM,QAAQ,UAAU,UAAU,WAAW,WAAW,IAAI,GAAE;AAC9D,OAAI,UAAU,UAAU;AAGtB,oBAAgB;AAChB,gBAAY,QAAQ;AACpB;;GAGF,MAAM,WAAW,IAAI,gBAAA,QAAQ,gBAAgB,EAAC,YAAY,MAAK,CAAA;AAC/D,QAAK,gBAAgB;IACnB,UAAU,KAAK,MAAM,QAAQ;IAC7B,WAAW,KAAK,MAAM,iBAAiB,WAAW;IAClD,aAAa;IACb,cAAc,iBAAiB;IAC/B,OAAO;IACR,CAAA;AAED,OAAI,SAAS,kBAAkB;AAC7B,kBAAc;IACd,MAAM,OAAO,iBAAiB,YAAY,UAAU,GAAG,EAAC;AACxD,oBAAgB,KAAA;AAGhB,QAAI,SAAS,UAAU,KAAK,MAAM,OAAO,GACvC,UAAS,QAAQ,KAAK,MAAM,OAAO;AAErC,KAAA,GAAA,IAAA,gBAAe;AACb,SAAI,QAAQ,EACV,aAAA,iBAAiB,EAAE,eAAe,KAAK,MAAM,OAAO,SAAS,EAAE,OAAM;MAExE;AACD;;AAIF,OAAI,SAAS,UAAU,KAAK,MAAM,QAAQ,GACxC,UAAS,QAAQ,KAAK,MAAM,QAAQ;AAEtC,mBAAgB,KAAA;IACjB;AAED,GAAA,GAAA,IAAA,OAAM,WAAW,UAAU,aAAa;AACtC,OAAI,KAAK,MAAM,UAAU,KAAK,KAAK,MAAM,QAAQ,MAAM,CAAC,EAAE,SAAS,CAAC,UAAU,EAC5E;GAEF,MAAM,QAAQ,KAAK,MAAM,WAAW,MAAM,EAAE,OAAO,SAAQ;AAE3D,OAAI,UAAU,YAAY,MAAO;GACjC,MAAM,WAAW,KAAK,MAAM,WAAW,MAAM,EAAE,OAAO,SAAQ;AAE9D,OAAI,KAAK,MAAM,QAAQ,UAAU;AAE/B,gBAAY,QAAQ,UAAU,OAAO,QAAQ,WAAW,IAAI,GAAE;AAC9D;;AAGF,OAAI,UAAU,IAAI;AAEhB,gBAAY,QAAQ,UAAU,GAAG,EAAC;AAClC,KAAA,GAAA,IAAA,gBAAe;AACb,cAAS,QAAQ,KAAK,MAAM,YAAY,QAAQ;MACjD;AACD;;AAGF,eAAY,QAAQ;IACrB;EAED,MAAM,eAAe,QAAsB;GACzC,MAAM,MAAM,aAAa,MAAM,WAAW,MAAM,EAAE,MAAM,eAAe,IAAI,MAAM,WAAU;AAC3F,OAAI,QAAQ,IAAI;AACd,iBAAa,MAAM,KAAK,IAAG;AAC3B,QAAI,YACF,EAAA,GAAA,IAAA,gBAAe;AACb,eAAS;MACV;aAGG,oBACF,EAAA,GAAA,IAAA,gBAAe;AACb,8BAAwB;MACzB;UAGA;AACL,iBAAa,MAAM,OAAO;AAC1B,QAAI,YAEF,WAAS;;GAGb,MAAM,OAAO,aAAa,MAAM,WAAW,MAAM,EAAE,MAAM,eAAe,IAAI,MAAM,WAAU;AAC5F,UAAO,IAAI,MAAM,OAAO,CAAC,cAAc,WAAW,MAAM,QAAQ,IAAI,MAAM;;AAG5E,GAAA,GAAA,IAAA,iBAAgB;AACd,4BAAwB;AACxB,aAAS;AACT,iBAAc;IACf;EAED,MAAM,iBAAiB;AACrB,gBAAa,MAAM,MAAM,GAAG,MAAM,YAAA,2BAA2B,EAAE,MAAM,GAAG,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;AAChG,OACE,SAAS,SACT,YAAY,UAAU,KAAK,MAAM,WAAW,MAAM,EAAE,OAAO,SAAS,MAAK,CAEzE,aAAY,QAAQ,KAAK,MAAM,WAAW,MAAM,EAAE,OAAO,SAAS,MAAK;;EAI3E,MAAM,iBAAiB,OAAe;AACpC,gBAAa,QAAQ,aAAa,MAAM,QAAQ,MAAM,EAAE,MAAM,eAAe,GAAE;;AAGjF,GAAA,GAAA,IAAA,SAAQ,aAAA,kBAAkB;GACxB,OAAA,GAAA,IAAA,aAAkB,MAAM,KAAK;GAC7B,OAAA,GAAA,IAAA,aAAkB,MAAM,KAAK;GAC7B,SAAA,GAAA,IAAA,aAAoB,MAAM,OAAO;GACjC,iBAAA,GAAA,IAAA,aAA4B,MAAM,eAAe;GACjD,mBAAA,GAAA,IAAA,aAA8B,MAAM,iBAAiB;GACrD,WAAA,GAAA,IAAA,aAAsB,MAAM,SAAS;GACrC;GACA;GACA;GACA,cAAc,eAAe;IAC3B,MAAM,MAAM,KAAK,MAAM,WAAW,MAAM,EAAE,eAAe,WAAU;AACnE,QAAI,eAAe,KAAA,KAAa,QAAQ,IAAI;AAC1C,iBAAY,QAAQ,UAAU,GAAG,EAAC;AAClC;;AAEF,gBAAY,QAAQ;;GAEvB,CAAA;;qGAhhBiB,MAAK,CAAC,IAAG,EAAA;IAAG,KAAA,GAAA,IAAA,OAAI,MAAK,CAAC;IAAI,QAAA,GAAA,IAAA,gBAAK,CAAC,QAAe,gBAAA,MAAe,CAAA;;oCAM1D;oBALK,MAAK,CAAC,QAAA,GAAA,IAAA,YAAA,GAAA,GAAA,IAAA,aAKX,0BAAA,GAAA,IAAA,iBAAA,GAAA,IAAA,YAAA,EAAA,KAAA,GAAA,EALwB,gBAAA,MAAe,CAAA,EAAA;MAE5C,QAAA,GAAA,IAAA,eACY,EAAA,GAAA,IAAA,YAAA,KAAA,QAAA,QAAA,CAAA,CAAA;sCAFf,EAAA,GAAA,IAAA,YAAA,KAAA,QAAA,UAAA,CAAA,CAAA;;;iCA0DJ,OAAA,EApDH,QAAA,GAAA,IAAA,gBAAK,EAAA,GAAA,IAAA,OAAY,MAAK,CAAC,iBAAA;oCAAyC,MAAK,CAAC;MAAI,WAAa,QAAA,aAAA,GAAA,IAAA,OAAY,MAAK,CAAC;MAAG,CAAA,CAAA,EAAA,EAAA,EAAA,GAAA,IAAA,oBAmDxG,MAAA;MA7CH,QAAA,GAAA,IAAA,gBAAK,CAAC,OAAK,CACF,eAAA,QAAA,GAAA,IAAA,OAAgB,MAAK,CAAC,SAAQ,CAAA,CAAA;MACvC,MAAK;MACJ,qBAAA,GAAA,IAAA,OAAkB,MAAK,CAAC,WAAQ,aAAA;;0BAEP,KAAA,QAAA,aAAA;6DAsCrB,IAAA,UAAA,OAAA,GAAA,IAAA,YApCkB,KAAA,QAAb,KAAK,QAAG;gEAoCb,MAAA;QAnCF,KAAK,IAAI,MAAM,IAAI;QACpB,QAAA,GAAA,IAAA,gBAAK,CAAC,YACE,IAAI,eAAc,CAAA;QAC1B,MAAK;uCA+BI,WAAA,GAAA,IAAA,YAAA;QA5BN,IAAI,IAAI;QACT,OAAK,CAAC,YAAU;SACP,IAAI;SAAgB,IAAI;SAAgB,IAAI,UAAA,GAAA,IAAA,OAAS,MAAK,CAAC,sBAAA,GAAA,IAAA,OAAqB,MAAK,CAAC;SAAoB,CAAA;QACnH,MAAK;QACJ,iBAAe,IAAI;QACnB,iBAAe,IAAI;QACnB,UAAU,IAAI;QACd,WAAA,GAAA,IAAA,OAAU,MAAK,CAAC,WAAW,KAAA,IAAY,IAAI,SAAS,KAAA,IAAS;QAC9D,MAAK;6BACG,IAAI,gBAAc;QACzB,WAAO;wGAAc,MAAK,CAAC,YAAY,OAAO,QAAM,GAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,OAAA,CAAA;wGAC/B,MAAK,CAAC,YAAY,OAAO,QAAM,KAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,OAAA,CAAA;uGAClC,MAAK,CAAC,YAAY,OAAO,QAAM,GAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,KAAA,CAAA;uGAC/B,MAAK,CAAC,YAAY,OAAO,QAAM,KAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,KAAA,CAAA;wGAC3B,MAAK,CAAC,YAAY,OAAO,QAAM,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,QAAA,CAAA;wGAC/B,MAAK,CAAC,YAAY,OAAO,QAAM,IAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,QAAA,CAAA;uGACjC,MAAK,CAAC,YAAY,OAAO,QAAM,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,OAAA,CAAA;uGAC/B,MAAK,CAAC,YAAY,OAAO,QAAM,IAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,OAAA,CAAA;iEAClC,OAAO,QAAM,KAAA,EAAA,CAAA,UAAA,CAAA;iEACX,OAAO,QAAM,IAAA,EAAA,CAAA,YAAA,CAAA;mEAClB,OAAO,QAAM,KAAA,EAAA,CAAA,OAAA,CAAA;mEACd,OAAO,QAAM,IAAA,EAAA,CAAA,MAAA,CAAA;;QAC1B,UAAA,GAAA,IAAA,gBAAa,MAAM,YAAY,GAAG,IAAG,EAAA,CAAA,OAAA,CAAA;YAEI,IAAI,mBAAA,GAAA,IAAA,YAAA,GAAA,GAAA,IAAA,cAAA,GAAA,IAAA,yBAA9B,IAAI,eAAc,EAAA,EAAA,KAAA,GAAA,CAAA,MAAA,GAAA,IAAA,YAAA,GAAA,GAAA,IAAA,oBAGvB,IAAA,UAAA,EAAA,KAAA,GAAA,EAAA,EAAA,GAAA,IAAA,kBAAA,GAAA,IAAA,iBADN,IAAI,MAAK,EAAA,EAAA,CAAA,EAAA,GAAA,EAAA,EAAA,IAAA,WAAA,CAAA,EAAA,EAAA;;0BAIM,KAAA,QAAA,WAAA;;qBAGJ,MAAK,CAAC,QAAA,GAAA,IAAA,YAAA,GAAA,GAAA,IAAA,aAKZ,0BAAA,GAAA,IAAA,iBAAA,GAAA,IAAA,YAAA,EAAA,KAAA,GAAA,EALyB,gBAAA,MAAe,CAAA,EAAA;MAE7C,QAAA,GAAA,IAAA,eACY,EAAA,GAAA,IAAA,YAAA,KAAA,QAAA,QAAA,CAAA,CAAA;sCAFf,EAAA,GAAA,IAAA,YAAA,KAAA,QAAA,UAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"BTabs-BVcu9DPg.js","names":[],"sources":["../src/components/BTabs/BTab.vue","../src/components/BTabs/BTab.vue","../src/components/BTabsTabContent.vue","../src/components/BTabsTabContent.vue","../src/components/BTabs/BTabs.vue","../src/components/BTabs/BTabs.vue"],"sourcesContent":["<template>\n <component\n :is=\"props.tag\"\n :id=\"computedId\"\n ref=\"_el\"\n class=\"tab-pane\"\n :class=\"computedClasses\"\n role=\"tabpanel\"\n :aria-labelledby=\"computedButtonId\"\n v-bind=\"processedAttrs\"\n >\n <slot v-if=\"showSlot\" />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, inject, onUnmounted, ref, useAttrs, useTemplateRef, watch} from 'vue'\nimport {useId} from '../../composables/useId'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {TabType} from '../../types/Tab'\nimport type {BTabProps} from '../../types/ComponentProps'\nimport {tabsInjectionKey} from '../../utils/keys'\nimport type {BTabSlots} from '../../types/ComponentSlots'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BTabProps, 'active'>>(), {\n buttonId: undefined,\n disabled: false,\n id: undefined,\n lazy: undefined,\n unmountLazy: undefined,\n noBody: false,\n tag: 'div',\n title: undefined,\n titleItemClass: undefined,\n titleLinkAttrs: undefined,\n titleLinkClass: undefined,\n})\nconst props = useDefaults(_props, 'BTab')\nconst slots = defineSlots<BTabSlots>()\nconst attrs = useAttrs()\n\nconst activeModel = defineModel<Exclude<BTabProps['active'], undefined>>('active', {\n default: false,\n})\n\nconst parentData = inject(tabsInjectionKey, null)\n\nconst localId = ref(props.id)\nconst internalId = useId('', 'tabpane')\nconst computedId = computed(() => props.id ?? localId.value ?? internalId.value)\nconst computedButtonId = useId(() => props.buttonId, 'tab')\n\nconst lazyRenderCompleted = ref(false)\nconst el = useTemplateRef('_el')\n\nconst processedAttrs = computed(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {onClick: _, ...tabAttrs} = attrs\n return tabAttrs\n})\n\nfunction updateTab() {\n if (!parentData) return\n const newId = parentData.registerTab(\n computed(\n () =>\n ({\n internalId: internalId.value,\n id: computedId.value,\n active: activeModel.value,\n buttonId: computedButtonId.value,\n disabled: props.disabled,\n title: props.title,\n titleComponent: slots.title,\n titleItemClass: props.titleItemClass,\n titleLinkAttrs: props.titleLinkAttrs,\n titleLinkClass: props.titleLinkClass,\n onClick: attrs.onClick,\n el,\n }) as TabType\n )\n )\n if (newId !== localId.value) {\n localId.value = newId\n }\n}\n\nif (parentData) {\n updateTab()\n if (activeModel.value) {\n parentData.activateTab(internalId.value)\n }\n}\n\nonUnmounted(() => {\n if (!parentData) return\n parentData.unregisterTab(internalId.value)\n})\n\nconst isActive = computed(() => parentData?.activeId.value === computedId.value)\nconst show = ref(isActive.value)\n\nconst computedLazy = computed(() => !!(parentData?.lazy.value || props.lazy))\n\nconst computedActive = computed(() => isActive.value && !props.disabled)\nconst showSlot = computed(\n () =>\n computedActive.value ||\n !computedLazy.value ||\n (computedLazy.value && !props.unmountLazy && lazyRenderCompleted.value)\n)\n\nwatch(showSlot, (shown) => {\n if (shown && !lazyRenderCompleted.value) lazyRenderCompleted.value = true\n})\n\nwatch(isActive, (active) => {\n if (active) {\n activeModel.value = true\n setTimeout(() => {\n show.value = true\n }, 0)\n return\n }\n show.value = false\n activeModel.value = false\n})\n\nwatch(activeModel, (active) => {\n if (props.disabled) {\n activeModel.value = false\n return\n }\n if (!parentData) return\n if (!active) {\n if (isActive.value) {\n parentData.activateTab(undefined)\n }\n return\n }\n if (!isActive.value) {\n parentData.activateTab(internalId.value)\n }\n})\n\nconst computedClasses = computed(() => [\n {\n 'active': isActive.value,\n 'show': show.value,\n 'card-body': parentData?.card.value && props.noBody === false,\n 'fade': !parentData?.noFade.value,\n },\n show.value ? parentData?.activeTabClass.value : parentData?.inactiveTabClass.value,\n parentData?.tabClass.value,\n])\n\ndefineExpose({\n activate: () => {\n activeModel.value = true\n },\n deactivate: () => {\n activeModel.value = false\n },\n})\n</script>\n","<template>\n <component\n :is=\"props.tag\"\n :id=\"computedId\"\n ref=\"_el\"\n class=\"tab-pane\"\n :class=\"computedClasses\"\n role=\"tabpanel\"\n :aria-labelledby=\"computedButtonId\"\n v-bind=\"processedAttrs\"\n >\n <slot v-if=\"showSlot\" />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, inject, onUnmounted, ref, useAttrs, useTemplateRef, watch} from 'vue'\nimport {useId} from '../../composables/useId'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {TabType} from '../../types/Tab'\nimport type {BTabProps} from '../../types/ComponentProps'\nimport {tabsInjectionKey} from '../../utils/keys'\nimport type {BTabSlots} from '../../types/ComponentSlots'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BTabProps, 'active'>>(), {\n buttonId: undefined,\n disabled: false,\n id: undefined,\n lazy: undefined,\n unmountLazy: undefined,\n noBody: false,\n tag: 'div',\n title: undefined,\n titleItemClass: undefined,\n titleLinkAttrs: undefined,\n titleLinkClass: undefined,\n})\nconst props = useDefaults(_props, 'BTab')\nconst slots = defineSlots<BTabSlots>()\nconst attrs = useAttrs()\n\nconst activeModel = defineModel<Exclude<BTabProps['active'], undefined>>('active', {\n default: false,\n})\n\nconst parentData = inject(tabsInjectionKey, null)\n\nconst localId = ref(props.id)\nconst internalId = useId('', 'tabpane')\nconst computedId = computed(() => props.id ?? localId.value ?? internalId.value)\nconst computedButtonId = useId(() => props.buttonId, 'tab')\n\nconst lazyRenderCompleted = ref(false)\nconst el = useTemplateRef('_el')\n\nconst processedAttrs = computed(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {onClick: _, ...tabAttrs} = attrs\n return tabAttrs\n})\n\nfunction updateTab() {\n if (!parentData) return\n const newId = parentData.registerTab(\n computed(\n () =>\n ({\n internalId: internalId.value,\n id: computedId.value,\n active: activeModel.value,\n buttonId: computedButtonId.value,\n disabled: props.disabled,\n title: props.title,\n titleComponent: slots.title,\n titleItemClass: props.titleItemClass,\n titleLinkAttrs: props.titleLinkAttrs,\n titleLinkClass: props.titleLinkClass,\n onClick: attrs.onClick,\n el,\n }) as TabType\n )\n )\n if (newId !== localId.value) {\n localId.value = newId\n }\n}\n\nif (parentData) {\n updateTab()\n if (activeModel.value) {\n parentData.activateTab(internalId.value)\n }\n}\n\nonUnmounted(() => {\n if (!parentData) return\n parentData.unregisterTab(internalId.value)\n})\n\nconst isActive = computed(() => parentData?.activeId.value === computedId.value)\nconst show = ref(isActive.value)\n\nconst computedLazy = computed(() => !!(parentData?.lazy.value || props.lazy))\n\nconst computedActive = computed(() => isActive.value && !props.disabled)\nconst showSlot = computed(\n () =>\n computedActive.value ||\n !computedLazy.value ||\n (computedLazy.value && !props.unmountLazy && lazyRenderCompleted.value)\n)\n\nwatch(showSlot, (shown) => {\n if (shown && !lazyRenderCompleted.value) lazyRenderCompleted.value = true\n})\n\nwatch(isActive, (active) => {\n if (active) {\n activeModel.value = true\n setTimeout(() => {\n show.value = true\n }, 0)\n return\n }\n show.value = false\n activeModel.value = false\n})\n\nwatch(activeModel, (active) => {\n if (props.disabled) {\n activeModel.value = false\n return\n }\n if (!parentData) return\n if (!active) {\n if (isActive.value) {\n parentData.activateTab(undefined)\n }\n return\n }\n if (!isActive.value) {\n parentData.activateTab(internalId.value)\n }\n})\n\nconst computedClasses = computed(() => [\n {\n 'active': isActive.value,\n 'show': show.value,\n 'card-body': parentData?.card.value && props.noBody === false,\n 'fade': !parentData?.noFade.value,\n },\n show.value ? parentData?.activeTabClass.value : parentData?.inactiveTabClass.value,\n parentData?.tabClass.value,\n])\n\ndefineExpose({\n activate: () => {\n activeModel.value = true\n },\n deactivate: () => {\n activeModel.value = false\n },\n})\n</script>\n","<template>\n <div class=\"tab-content\" :class=\"contentClass\">\n <slot />\n <div v-if=\"showEmpty\" key=\"bv-empty-tab\" class=\"tab-pane active\" :class=\"{'card-body': card}\">\n <slot name=\"empty\" />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type {ClassValue} from '../types/AnyValuedAttributes'\n\ndefineProps<{\n contentClass: ClassValue | undefined\n showEmpty: boolean\n card: boolean\n}>()\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\ndefineSlots<{\n default?: (props: Record<string, never>) => any\n empty?: (props: Record<string, never>) => any\n}>()\n/* eslint-enable @typescript-eslint/no-explicit-any */\n</script>\n","<template>\n <div class=\"tab-content\" :class=\"contentClass\">\n <slot />\n <div v-if=\"showEmpty\" key=\"bv-empty-tab\" class=\"tab-pane active\" :class=\"{'card-body': card}\">\n <slot name=\"empty\" />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type {ClassValue} from '../types/AnyValuedAttributes'\n\ndefineProps<{\n contentClass: ClassValue | undefined\n showEmpty: boolean\n card: boolean\n}>()\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\ndefineSlots<{\n default?: (props: Record<string, never>) => any\n empty?: (props: Record<string, never>) => any\n}>()\n/* eslint-enable @typescript-eslint/no-explicit-any */\n</script>\n","<template>\n <component :is=\"props.tag\" :id=\"props.id\" class=\"tabs\" :class=\"computedClasses\">\n <BTabsTabContent v-if=\"props.end\" v-bind=\"tabContentProps\">\n <slot />\n <template #empty>\n <slot name=\"empty\" />\n </template>\n </BTabsTabContent>\n <div\n :class=\"[\n props.navWrapperClass,\n {'card-header': props.card, 'ms-auto': vertical && props.end},\n ]\"\n >\n <ul\n class=\"nav\"\n :class=\"[navTabsClasses, props.navClass]\"\n role=\"tablist\"\n :aria-orientation=\"props.vertical ? 'vertical' : 'horizontal'\"\n >\n <slot name=\"tabs-start\" />\n <li\n v-for=\"(tab, idx) in tabs\"\n :key=\"tab.id ?? tab.internalId\"\n class=\"nav-item\"\n :class=\"tab.titleItemClass\"\n role=\"presentation\"\n >\n <button\n :id=\"tab.buttonId\"\n class=\"nav-link\"\n :class=\"[tab.navItemClasses, tab.titleLinkClass, tab.active ? props.activeNavLinkClass : props.inactiveNavLinkClass]\"\n role=\"tab\"\n :aria-controls=\"tab.id\"\n :aria-selected=\"tab.active\"\n :disabled=\"tab.disabled\"\n :tabindex=\"props.noKeyNav ? undefined : tab.active ? undefined : -1\"\n type=\"button\"\n v-bind=\"tab.titleLinkAttrs\"\n @keydown.left.exact=\"!props.vertical && keynav($event, -1)\"\n @keydown.left.shift=\"!props.vertical && keynav($event, -999)\"\n @keydown.up.exact=\"props.vertical && keynav($event, -1)\"\n @keydown.up.shift=\"props.vertical && keynav($event, -999)\"\n @keydown.right.exact=\"!props.vertical && keynav($event, 1)\"\n @keydown.right.shift=\"!props.vertical && keynav($event, 999)\"\n @keydown.down.exact=\"props.vertical && keynav($event, 1)\"\n @keydown.down.shift=\"props.vertical && keynav($event, 999)\"\n @keydown.page-up=\"keynav($event, -999)\"\n @keydown.page-down=\"keynav($event, 999)\"\n @keydown.home=\"keynav($event, -999)\"\n @keydown.end=\"keynav($event, 999)\"\n @click.stop=\"(e) => handleClick(e, idx)\"\n >\n <component :is=\"tab.titleComponent\" v-if=\"tab.titleComponent\" />\n <template v-else>\n {{ tab.title }}\n </template>\n </button>\n </li>\n <slot name=\"tabs-end\" />\n </ul>\n </div>\n <BTabsTabContent v-if=\"!props.end\" v-bind=\"tabContentProps\">\n <slot />\n <template #empty>\n <slot name=\"empty\" />\n </template>\n </BTabsTabContent>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n nextTick,\n onMounted,\n provide,\n type Ref,\n ref,\n toRef,\n unref,\n type VNode,\n watch,\n} from 'vue'\nimport {BvEvent} from '../../utils/classes'\nimport {useAlignment} from '../../composables/useAlignment'\nimport {useId} from '../../composables/useId'\nimport type {TabType, BTabsProps, BTabsEmits, BTabsSlots} from '../../types'\nimport {tabsInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {getSafeDocument, sortSlotElementsByPosition} from '../../utils/dom'\nimport {flattenFragments} from '../../utils/flattenFragments'\nimport BTab from './BTab.vue'\nimport BTabsTabContent from '../BTabsTabContent.vue'\n\nconst _props = withDefaults(defineProps<Omit<BTabsProps, 'modelValue' | 'activeIndex'>>(), {\n activeNavItemClass: undefined,\n activeNavLinkClass: undefined,\n activeTabClass: undefined,\n align: undefined,\n card: false,\n contentClass: undefined,\n end: false,\n fill: false,\n id: undefined,\n inactiveNavItemClass: undefined,\n inactiveNavLinkClass: undefined,\n inactiveTabClass: undefined,\n justified: false,\n lazy: false,\n navClass: undefined,\n navItemClass: undefined,\n navWrapperClass: undefined,\n noFade: false,\n noKeyNav: false,\n noNavStyle: false,\n pills: false,\n small: false,\n tag: 'div',\n tabClass: undefined,\n underline: false,\n vertical: false,\n})\nconst props = useDefaults(_props, 'BTabs')\nconst emit = defineEmits<BTabsEmits>()\nconst slots = defineSlots<BTabsSlots>()\n\nconst activeIndex = defineModel<Exclude<BTabsProps['index'], undefined>>('index', {\n default: -1,\n})\nconst activeId = defineModel<BTabsProps['modelValue']>({\n default: undefined,\n})\n\nconst tabsInternal = ref<Ref<TabType>[]>([])\n\nconst tabElementsArray = ref<VNode[]>([])\n\nconst isChildActive = ref(false)\nconst initialIds = ref<string[]>([])\nconst hasExplicitIds = ref(false)\n\nconst updateTabElementsArray = () => {\n const tabElements = flattenFragments(slots.default?.({}) ?? [])\n tabElementsArray.value = (Array.isArray(tabElements) ? tabElements : [tabElements]).filter(\n (tab) => tab.type === BTab\n )\n // only get the ids once in setup context\n if (initialIds.value.length === 0) {\n // we need to get the ids of the tabs before they are registered. After that we use the internalId for the tabpane\n initialIds.value = tabElementsArray.value.map((tab) =>\n unref(useId(() => tab.props?.id, 'tabpane'))\n )\n // Check if any tab has an explicit ID\n hasExplicitIds.value = tabElementsArray.value.some((tab) => tab.props?.id !== undefined)\n }\n isChildActive.value = tabElementsArray.value.some(\n (tab) => tab.props?.active !== undefined && tab.props?.active !== false\n )\n}\nupdateTabElementsArray()\n\nwatch(\n () => slots.default?.({}),\n () => {\n updateTabElementsArray()\n nextTick(() => {\n sortTabs()\n })\n }\n)\n\nconst tabs = computed(() => {\n if (tabsInternal.value.length === 0) {\n // fail back on the slot elements, the children haven't been registered yet\n const _activeIndex = tabElementsArray.value.findIndex(\n (tab) =>\n (tab.props?.active !== undefined &&\n (tab.props.disabled === false || tab.props.disabled === undefined)) ||\n (activeId.value && tab.props?.id === activeId.value)\n )\n return tabElementsArray.value.map((tab, index) => {\n const active =\n _activeIndex !== -1\n ? index === _activeIndex\n : activeIndex.value > -1\n ? index === activeIndex.value\n : index === 0\n return {\n id: tab.props?.id ?? initialIds.value[index],\n internalId: `premount-${index}`, // temporary id for the tab\n buttonId: tab.props?.buttonId,\n disabled: tab.props?.disabled,\n title: tab.props?.title,\n titleComponent: (tab.children as {title: unknown})?.title,\n titleItemClass: tab.props?.titleItemClass,\n titleLinkAttrs: tab.props?.titleLinkAttrs,\n titleLinkClass: tab.props?.titleLinkClass,\n onClick: tab.props?.onClick,\n active,\n navItemClasses: [\n {\n active,\n disabled: !(tab.props?.disabled === false || tab.props?.disabled === undefined),\n },\n active ? props.activeNavItemClass : props.inactiveNavItemClass,\n props.navItemClass,\n ],\n }\n })\n }\n return tabsInternal.value.map((_tab) => {\n const tab = unref(_tab)\n const active = tab.id === activeId.value\n\n return {\n ...tab,\n active,\n navItemClasses: [\n {\n active,\n disabled: tab.disabled,\n },\n active ? props.activeNavItemClass : props.inactiveNavItemClass,\n props.navItemClass,\n ],\n }\n })\n})\n\nlet initialized = false\nlet updateInitialActiveIndex = false\nlet updateInitialActiveId = false\nlet delayedTabSelection = false\n\n// Check if we need to delay tab selection:\n// - We have v-model:index (activeIndex) but no v-model (activeId)\n// - AND tabs don't have explicit IDs (will use generated IDs)\n// - AND we have tabs to select from\nconst needsDelayedSelection =\n activeIndex.value > -1 &&\n !activeId.value &&\n !hasExplicitIds.value &&\n tabElementsArray.value.length > 0\n\nif (needsDelayedSelection) {\n // Delay tab selection until children register with their generated IDs\n delayedTabSelection = true\n updateInitialActiveId = true\n} else if (activeIndex.value === -1 && activeId.value) {\n if (tabs.value.findIndex((t) => t.id === activeId.value) !== -1) {\n activeIndex.value = tabs.value.findIndex((t) => t.id === activeId.value)\n } else {\n updateInitialActiveIndex = true\n }\n} else if (activeIndex.value > -1 && !activeId.value) {\n if (tabs.value[activeIndex.value]?.id) {\n activeId.value = tabs.value[activeIndex.value]?.id\n } else {\n updateInitialActiveId = true\n }\n} else if (activeIndex.value === -1 && !activeId.value && !isChildActive.value) {\n activeIndex.value = tabs.value.findIndex((t) => t.disabled === undefined || t.disabled === false)\n activeId.value = tabs.value[activeIndex.value]?.id\n} else if (activeIndex.value === -1 && !activeId.value && isChildActive.value) {\n activeIndex.value = tabs.value.findIndex(\n (t) =>\n t.active !== undefined &&\n t.active !== false &&\n (t.disabled === undefined || t.disabled === false)\n )\n activeId.value = tabs.value[activeIndex.value]?.id\n}\n\nfunction updateInitialIndexAndId() {\n // we get the computedIds after registering the tabs\n if (updateInitialActiveIndex) {\n const index = tabs.value.findIndex((t) => t.id === activeId.value)\n if (index !== -1) {\n nextTick(() => {\n activeIndex.value = index\n updateInitialActiveIndex = false\n })\n }\n }\n if (updateInitialActiveId) {\n // Wait for tabs to be registered if we're doing delayed selection\n if (delayedTabSelection && tabsInternal.value.length === 0) {\n // Children haven't registered yet, wait\n return\n }\n if (activeIndex.value > -1 && tabs.value[activeIndex.value]?.id) {\n nextTick(() => {\n activeId.value = tabs.value[activeIndex.value]?.id\n updateInitialActiveId = false\n delayedTabSelection = false\n })\n }\n }\n}\n\nupdateInitialIndexAndId()\n\nconst showEmpty = computed(() => !(tabs?.value && tabs.value.length > 0))\n\nconst tabContentProps = computed(() => ({\n contentClass: props.contentClass,\n showEmpty: showEmpty.value,\n card: props.card,\n}))\n\nconst computedClasses = computed(() => ({\n 'd-flex': props.vertical,\n 'align-items-start': props.vertical,\n}))\n\nconst alignment = useAlignment(() => props.align)\n\nconst navTabsClasses = computed(() => ({\n 'nav-pills': props.pills,\n 'nav-underline': props.underline,\n 'flex-column me-3': props.vertical,\n [alignment.value]: props.align !== undefined,\n 'nav-fill': props.fill,\n 'card-header-tabs': props.card && !props.pills && !props.underline,\n 'card-header-pills': props.card && props.pills,\n 'nav-justified': props.justified,\n 'nav-tabs': !props.noNavStyle && !props.pills && !props.underline,\n 'small': props.small,\n}))\n\nconst handleClick = (event: Readonly<MouseEvent>, index: number) => {\n if (\n index >= 0 &&\n !tabs.value[index]?.disabled &&\n tabs.value[index]?.onClick &&\n typeof tabs.value[index].onClick === 'function'\n ) {\n tabs.value[index].onClick?.(event)\n if (event.defaultPrevented) {\n getSafeDocument()?.getElementById(tabs.value[index].buttonId)?.blur()\n return\n }\n }\n activeIndex.value = index\n}\n\nconst keynav = (e: Event, direction: number) => {\n if (tabs.value.length <= 0 || props.noKeyNav) return\n e.preventDefault()\n e.stopPropagation()\n activeIndex.value = nextIndex(activeIndex.value + direction, direction)\n nextTick(() => {\n if (activeIndex.value >= 0) {\n getSafeDocument()?.getElementById(tabs.value[activeIndex.value]?.buttonId)?.focus()\n }\n })\n}\n\nconst nextIndex = (start: number, direction: number) => {\n let index = start\n let minIdx = -1\n let maxIdx = -1\n\n for (let i = 0; i < tabs.value.length; i++) {\n if (!tabs.value[i]?.disabled) {\n if (minIdx === -1) minIdx = i\n maxIdx = i\n }\n }\n\n while (index >= minIdx && index <= maxIdx && tabs.value[index]?.disabled) {\n index += direction\n }\n\n if (index < minIdx) index = minIdx\n if (index > maxIdx) index = maxIdx\n\n return index\n}\n\nlet previousIndex: number | undefined\nlet isReverting = false\nwatch(activeIndex, (newValue, oldValue) => {\n // Early exit if there are no tabs or all tabs are disabled\n if (tabs.value.length <= 0 || tabs.value.filter((t) => !t.disabled).length <= 0) {\n return\n }\n\n // If we're reverting due to a prevented event, don't process further\n if (isReverting) {\n isReverting = false\n return\n }\n // Calculate the next valid index\n const index = nextIndex(newValue, newValue > oldValue ? 1 : -1)\n if (index !== newValue) {\n // If the index is not the same as the new value, set the previous index to the old value\n // this is to prevent the event from being emitted twice\n previousIndex = oldValue\n activeIndex.value = index\n return\n }\n // Emit the activate-tab event\n const tabEvent = new BvEvent('activate-tab', {cancelable: true})\n emit('activate-tab', {\n newTabId: tabs.value[index]?.id,\n prevTabId: tabs.value[previousIndex ?? oldValue]?.id,\n newTabIndex: index,\n prevTabIndex: previousIndex ?? oldValue,\n event: tabEvent,\n })\n // If the event is prevented, revert to the previous index\n if (tabEvent.defaultPrevented) {\n isReverting = true\n const prev = previousIndex ?? oldValue ?? nextIndex(0, 1)\n previousIndex = undefined\n // Update the active id this will also trigger the activeId watch which will update the activeIndex\n // this is to make sure we handle case that starts with id change.\n if (activeId.value !== tabs.value[prev]?.id) {\n activeId.value = tabs.value[prev]?.id\n }\n nextTick(() => {\n if (prev >= 0) {\n getSafeDocument()?.getElementById(tabs.value[prev]?.buttonId)?.focus()\n }\n })\n return\n }\n\n // Update the active id\n if (activeId.value !== tabs.value[index]?.id) {\n activeId.value = tabs.value[index]?.id\n }\n previousIndex = undefined\n})\n\nwatch(activeId, (newValue, oldValue) => {\n if (tabs.value.length <= 0 || tabs.value.filter((t) => !t.disabled).length <= 0) {\n return\n }\n const index = tabs.value.findIndex((t) => t.id === newValue)\n // If the new tab is the same as the current tab, do nothing\n if (index === activeIndex.value) return\n const oldIndex = tabs.value.findIndex((t) => t.id === oldValue)\n // If the new tab is disabled, find the next enabled tab\n if (tabs.value[index]?.disabled) {\n // activeIndex watcher will update the activeId to the next enabled tab\n activeIndex.value = nextIndex(index, index > oldIndex ? 1 : -1)\n return\n }\n // If the new tab is not found, find the first enabled tab\n if (index === -1) {\n // activeIndex watcher will update the activeId to the first enabled tab\n activeIndex.value = nextIndex(0, 1)\n nextTick(() => {\n activeId.value = tabs.value[activeIndex.value]?.id\n })\n return\n }\n // change to the next tab\n activeIndex.value = index\n})\n\nconst registerTab = (tab: Ref<TabType>) => {\n const idx = tabsInternal.value.findIndex((t) => t.value.internalId === tab.value.internalId)\n if (idx === -1) {\n tabsInternal.value.push(tab)\n if (initialized) {\n nextTick(() => {\n sortTabs()\n })\n } else {\n // If we're doing delayed tab selection, try to update now that a tab has registered\n if (delayedTabSelection) {\n nextTick(() => {\n updateInitialIndexAndId()\n })\n }\n }\n } else {\n tabsInternal.value[idx] = tab\n if (initialized) {\n // sort just in case the tab was moved\n sortTabs()\n }\n }\n const idx2 = tabsInternal.value.findIndex((t) => t.value.internalId === tab.value.internalId)\n return tab.value.id ?? (!initialized ? initialIds.value[idx2] : tab.value.internalId)\n}\n\nonMounted(() => {\n updateInitialIndexAndId()\n sortTabs()\n initialized = true\n})\n\nconst sortTabs = () => {\n tabsInternal.value.sort((a, b) => sortSlotElementsByPosition(a.value.el.value, b.value.el.value))\n if (\n activeId.value &&\n activeIndex.value !== tabs.value.findIndex((t) => t.id === activeId.value)\n ) {\n activeIndex.value = tabs.value.findIndex((t) => t.id === activeId.value)\n }\n}\n\nconst unregisterTab = (id: string) => {\n tabsInternal.value = tabsInternal.value.filter((t) => t.value.internalId !== id)\n}\n\nprovide(tabsInjectionKey, {\n lazy: toRef(() => props.lazy),\n card: toRef(() => props.card),\n noFade: toRef(() => props.noFade),\n activeTabClass: toRef(() => props.activeTabClass),\n inactiveTabClass: toRef(() => props.inactiveTabClass),\n tabClass: toRef(() => props.tabClass),\n registerTab,\n unregisterTab,\n activeId,\n activateTab: (internalId) => {\n const idx = tabs.value.findIndex((t) => t.internalId === internalId)\n if (internalId === undefined || idx === -1) {\n activeIndex.value = nextIndex(0, 1)\n return\n }\n activeIndex.value = idx\n },\n})\n</script>\n","<template>\n <component :is=\"props.tag\" :id=\"props.id\" class=\"tabs\" :class=\"computedClasses\">\n <BTabsTabContent v-if=\"props.end\" v-bind=\"tabContentProps\">\n <slot />\n <template #empty>\n <slot name=\"empty\" />\n </template>\n </BTabsTabContent>\n <div\n :class=\"[\n props.navWrapperClass,\n {'card-header': props.card, 'ms-auto': vertical && props.end},\n ]\"\n >\n <ul\n class=\"nav\"\n :class=\"[navTabsClasses, props.navClass]\"\n role=\"tablist\"\n :aria-orientation=\"props.vertical ? 'vertical' : 'horizontal'\"\n >\n <slot name=\"tabs-start\" />\n <li\n v-for=\"(tab, idx) in tabs\"\n :key=\"tab.id ?? tab.internalId\"\n class=\"nav-item\"\n :class=\"tab.titleItemClass\"\n role=\"presentation\"\n >\n <button\n :id=\"tab.buttonId\"\n class=\"nav-link\"\n :class=\"[tab.navItemClasses, tab.titleLinkClass, tab.active ? props.activeNavLinkClass : props.inactiveNavLinkClass]\"\n role=\"tab\"\n :aria-controls=\"tab.id\"\n :aria-selected=\"tab.active\"\n :disabled=\"tab.disabled\"\n :tabindex=\"props.noKeyNav ? undefined : tab.active ? undefined : -1\"\n type=\"button\"\n v-bind=\"tab.titleLinkAttrs\"\n @keydown.left.exact=\"!props.vertical && keynav($event, -1)\"\n @keydown.left.shift=\"!props.vertical && keynav($event, -999)\"\n @keydown.up.exact=\"props.vertical && keynav($event, -1)\"\n @keydown.up.shift=\"props.vertical && keynav($event, -999)\"\n @keydown.right.exact=\"!props.vertical && keynav($event, 1)\"\n @keydown.right.shift=\"!props.vertical && keynav($event, 999)\"\n @keydown.down.exact=\"props.vertical && keynav($event, 1)\"\n @keydown.down.shift=\"props.vertical && keynav($event, 999)\"\n @keydown.page-up=\"keynav($event, -999)\"\n @keydown.page-down=\"keynav($event, 999)\"\n @keydown.home=\"keynav($event, -999)\"\n @keydown.end=\"keynav($event, 999)\"\n @click.stop=\"(e) => handleClick(e, idx)\"\n >\n <component :is=\"tab.titleComponent\" v-if=\"tab.titleComponent\" />\n <template v-else>\n {{ tab.title }}\n </template>\n </button>\n </li>\n <slot name=\"tabs-end\" />\n </ul>\n </div>\n <BTabsTabContent v-if=\"!props.end\" v-bind=\"tabContentProps\">\n <slot />\n <template #empty>\n <slot name=\"empty\" />\n </template>\n </BTabsTabContent>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n nextTick,\n onMounted,\n provide,\n type Ref,\n ref,\n toRef,\n unref,\n type VNode,\n watch,\n} from 'vue'\nimport {BvEvent} from '../../utils/classes'\nimport {useAlignment} from '../../composables/useAlignment'\nimport {useId} from '../../composables/useId'\nimport type {TabType, BTabsProps, BTabsEmits, BTabsSlots} from '../../types'\nimport {tabsInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {getSafeDocument, sortSlotElementsByPosition} from '../../utils/dom'\nimport {flattenFragments} from '../../utils/flattenFragments'\nimport BTab from './BTab.vue'\nimport BTabsTabContent from '../BTabsTabContent.vue'\n\nconst _props = withDefaults(defineProps<Omit<BTabsProps, 'modelValue' | 'activeIndex'>>(), {\n activeNavItemClass: undefined,\n activeNavLinkClass: undefined,\n activeTabClass: undefined,\n align: undefined,\n card: false,\n contentClass: undefined,\n end: false,\n fill: false,\n id: undefined,\n inactiveNavItemClass: undefined,\n inactiveNavLinkClass: undefined,\n inactiveTabClass: undefined,\n justified: false,\n lazy: false,\n navClass: undefined,\n navItemClass: undefined,\n navWrapperClass: undefined,\n noFade: false,\n noKeyNav: false,\n noNavStyle: false,\n pills: false,\n small: false,\n tag: 'div',\n tabClass: undefined,\n underline: false,\n vertical: false,\n})\nconst props = useDefaults(_props, 'BTabs')\nconst emit = defineEmits<BTabsEmits>()\nconst slots = defineSlots<BTabsSlots>()\n\nconst activeIndex = defineModel<Exclude<BTabsProps['index'], undefined>>('index', {\n default: -1,\n})\nconst activeId = defineModel<BTabsProps['modelValue']>({\n default: undefined,\n})\n\nconst tabsInternal = ref<Ref<TabType>[]>([])\n\nconst tabElementsArray = ref<VNode[]>([])\n\nconst isChildActive = ref(false)\nconst initialIds = ref<string[]>([])\nconst hasExplicitIds = ref(false)\n\nconst updateTabElementsArray = () => {\n const tabElements = flattenFragments(slots.default?.({}) ?? [])\n tabElementsArray.value = (Array.isArray(tabElements) ? tabElements : [tabElements]).filter(\n (tab) => tab.type === BTab\n )\n // only get the ids once in setup context\n if (initialIds.value.length === 0) {\n // we need to get the ids of the tabs before they are registered. After that we use the internalId for the tabpane\n initialIds.value = tabElementsArray.value.map((tab) =>\n unref(useId(() => tab.props?.id, 'tabpane'))\n )\n // Check if any tab has an explicit ID\n hasExplicitIds.value = tabElementsArray.value.some((tab) => tab.props?.id !== undefined)\n }\n isChildActive.value = tabElementsArray.value.some(\n (tab) => tab.props?.active !== undefined && tab.props?.active !== false\n )\n}\nupdateTabElementsArray()\n\nwatch(\n () => slots.default?.({}),\n () => {\n updateTabElementsArray()\n nextTick(() => {\n sortTabs()\n })\n }\n)\n\nconst tabs = computed(() => {\n if (tabsInternal.value.length === 0) {\n // fail back on the slot elements, the children haven't been registered yet\n const _activeIndex = tabElementsArray.value.findIndex(\n (tab) =>\n (tab.props?.active !== undefined &&\n (tab.props.disabled === false || tab.props.disabled === undefined)) ||\n (activeId.value && tab.props?.id === activeId.value)\n )\n return tabElementsArray.value.map((tab, index) => {\n const active =\n _activeIndex !== -1\n ? index === _activeIndex\n : activeIndex.value > -1\n ? index === activeIndex.value\n : index === 0\n return {\n id: tab.props?.id ?? initialIds.value[index],\n internalId: `premount-${index}`, // temporary id for the tab\n buttonId: tab.props?.buttonId,\n disabled: tab.props?.disabled,\n title: tab.props?.title,\n titleComponent: (tab.children as {title: unknown})?.title,\n titleItemClass: tab.props?.titleItemClass,\n titleLinkAttrs: tab.props?.titleLinkAttrs,\n titleLinkClass: tab.props?.titleLinkClass,\n onClick: tab.props?.onClick,\n active,\n navItemClasses: [\n {\n active,\n disabled: !(tab.props?.disabled === false || tab.props?.disabled === undefined),\n },\n active ? props.activeNavItemClass : props.inactiveNavItemClass,\n props.navItemClass,\n ],\n }\n })\n }\n return tabsInternal.value.map((_tab) => {\n const tab = unref(_tab)\n const active = tab.id === activeId.value\n\n return {\n ...tab,\n active,\n navItemClasses: [\n {\n active,\n disabled: tab.disabled,\n },\n active ? props.activeNavItemClass : props.inactiveNavItemClass,\n props.navItemClass,\n ],\n }\n })\n})\n\nlet initialized = false\nlet updateInitialActiveIndex = false\nlet updateInitialActiveId = false\nlet delayedTabSelection = false\n\n// Check if we need to delay tab selection:\n// - We have v-model:index (activeIndex) but no v-model (activeId)\n// - AND tabs don't have explicit IDs (will use generated IDs)\n// - AND we have tabs to select from\nconst needsDelayedSelection =\n activeIndex.value > -1 &&\n !activeId.value &&\n !hasExplicitIds.value &&\n tabElementsArray.value.length > 0\n\nif (needsDelayedSelection) {\n // Delay tab selection until children register with their generated IDs\n delayedTabSelection = true\n updateInitialActiveId = true\n} else if (activeIndex.value === -1 && activeId.value) {\n if (tabs.value.findIndex((t) => t.id === activeId.value) !== -1) {\n activeIndex.value = tabs.value.findIndex((t) => t.id === activeId.value)\n } else {\n updateInitialActiveIndex = true\n }\n} else if (activeIndex.value > -1 && !activeId.value) {\n if (tabs.value[activeIndex.value]?.id) {\n activeId.value = tabs.value[activeIndex.value]?.id\n } else {\n updateInitialActiveId = true\n }\n} else if (activeIndex.value === -1 && !activeId.value && !isChildActive.value) {\n activeIndex.value = tabs.value.findIndex((t) => t.disabled === undefined || t.disabled === false)\n activeId.value = tabs.value[activeIndex.value]?.id\n} else if (activeIndex.value === -1 && !activeId.value && isChildActive.value) {\n activeIndex.value = tabs.value.findIndex(\n (t) =>\n t.active !== undefined &&\n t.active !== false &&\n (t.disabled === undefined || t.disabled === false)\n )\n activeId.value = tabs.value[activeIndex.value]?.id\n}\n\nfunction updateInitialIndexAndId() {\n // we get the computedIds after registering the tabs\n if (updateInitialActiveIndex) {\n const index = tabs.value.findIndex((t) => t.id === activeId.value)\n if (index !== -1) {\n nextTick(() => {\n activeIndex.value = index\n updateInitialActiveIndex = false\n })\n }\n }\n if (updateInitialActiveId) {\n // Wait for tabs to be registered if we're doing delayed selection\n if (delayedTabSelection && tabsInternal.value.length === 0) {\n // Children haven't registered yet, wait\n return\n }\n if (activeIndex.value > -1 && tabs.value[activeIndex.value]?.id) {\n nextTick(() => {\n activeId.value = tabs.value[activeIndex.value]?.id\n updateInitialActiveId = false\n delayedTabSelection = false\n })\n }\n }\n}\n\nupdateInitialIndexAndId()\n\nconst showEmpty = computed(() => !(tabs?.value && tabs.value.length > 0))\n\nconst tabContentProps = computed(() => ({\n contentClass: props.contentClass,\n showEmpty: showEmpty.value,\n card: props.card,\n}))\n\nconst computedClasses = computed(() => ({\n 'd-flex': props.vertical,\n 'align-items-start': props.vertical,\n}))\n\nconst alignment = useAlignment(() => props.align)\n\nconst navTabsClasses = computed(() => ({\n 'nav-pills': props.pills,\n 'nav-underline': props.underline,\n 'flex-column me-3': props.vertical,\n [alignment.value]: props.align !== undefined,\n 'nav-fill': props.fill,\n 'card-header-tabs': props.card && !props.pills && !props.underline,\n 'card-header-pills': props.card && props.pills,\n 'nav-justified': props.justified,\n 'nav-tabs': !props.noNavStyle && !props.pills && !props.underline,\n 'small': props.small,\n}))\n\nconst handleClick = (event: Readonly<MouseEvent>, index: number) => {\n if (\n index >= 0 &&\n !tabs.value[index]?.disabled &&\n tabs.value[index]?.onClick &&\n typeof tabs.value[index].onClick === 'function'\n ) {\n tabs.value[index].onClick?.(event)\n if (event.defaultPrevented) {\n getSafeDocument()?.getElementById(tabs.value[index].buttonId)?.blur()\n return\n }\n }\n activeIndex.value = index\n}\n\nconst keynav = (e: Event, direction: number) => {\n if (tabs.value.length <= 0 || props.noKeyNav) return\n e.preventDefault()\n e.stopPropagation()\n activeIndex.value = nextIndex(activeIndex.value + direction, direction)\n nextTick(() => {\n if (activeIndex.value >= 0) {\n getSafeDocument()?.getElementById(tabs.value[activeIndex.value]?.buttonId)?.focus()\n }\n })\n}\n\nconst nextIndex = (start: number, direction: number) => {\n let index = start\n let minIdx = -1\n let maxIdx = -1\n\n for (let i = 0; i < tabs.value.length; i++) {\n if (!tabs.value[i]?.disabled) {\n if (minIdx === -1) minIdx = i\n maxIdx = i\n }\n }\n\n while (index >= minIdx && index <= maxIdx && tabs.value[index]?.disabled) {\n index += direction\n }\n\n if (index < minIdx) index = minIdx\n if (index > maxIdx) index = maxIdx\n\n return index\n}\n\nlet previousIndex: number | undefined\nlet isReverting = false\nwatch(activeIndex, (newValue, oldValue) => {\n // Early exit if there are no tabs or all tabs are disabled\n if (tabs.value.length <= 0 || tabs.value.filter((t) => !t.disabled).length <= 0) {\n return\n }\n\n // If we're reverting due to a prevented event, don't process further\n if (isReverting) {\n isReverting = false\n return\n }\n // Calculate the next valid index\n const index = nextIndex(newValue, newValue > oldValue ? 1 : -1)\n if (index !== newValue) {\n // If the index is not the same as the new value, set the previous index to the old value\n // this is to prevent the event from being emitted twice\n previousIndex = oldValue\n activeIndex.value = index\n return\n }\n // Emit the activate-tab event\n const tabEvent = new BvEvent('activate-tab', {cancelable: true})\n emit('activate-tab', {\n newTabId: tabs.value[index]?.id,\n prevTabId: tabs.value[previousIndex ?? oldValue]?.id,\n newTabIndex: index,\n prevTabIndex: previousIndex ?? oldValue,\n event: tabEvent,\n })\n // If the event is prevented, revert to the previous index\n if (tabEvent.defaultPrevented) {\n isReverting = true\n const prev = previousIndex ?? oldValue ?? nextIndex(0, 1)\n previousIndex = undefined\n // Update the active id this will also trigger the activeId watch which will update the activeIndex\n // this is to make sure we handle case that starts with id change.\n if (activeId.value !== tabs.value[prev]?.id) {\n activeId.value = tabs.value[prev]?.id\n }\n nextTick(() => {\n if (prev >= 0) {\n getSafeDocument()?.getElementById(tabs.value[prev]?.buttonId)?.focus()\n }\n })\n return\n }\n\n // Update the active id\n if (activeId.value !== tabs.value[index]?.id) {\n activeId.value = tabs.value[index]?.id\n }\n previousIndex = undefined\n})\n\nwatch(activeId, (newValue, oldValue) => {\n if (tabs.value.length <= 0 || tabs.value.filter((t) => !t.disabled).length <= 0) {\n return\n }\n const index = tabs.value.findIndex((t) => t.id === newValue)\n // If the new tab is the same as the current tab, do nothing\n if (index === activeIndex.value) return\n const oldIndex = tabs.value.findIndex((t) => t.id === oldValue)\n // If the new tab is disabled, find the next enabled tab\n if (tabs.value[index]?.disabled) {\n // activeIndex watcher will update the activeId to the next enabled tab\n activeIndex.value = nextIndex(index, index > oldIndex ? 1 : -1)\n return\n }\n // If the new tab is not found, find the first enabled tab\n if (index === -1) {\n // activeIndex watcher will update the activeId to the first enabled tab\n activeIndex.value = nextIndex(0, 1)\n nextTick(() => {\n activeId.value = tabs.value[activeIndex.value]?.id\n })\n return\n }\n // change to the next tab\n activeIndex.value = index\n})\n\nconst registerTab = (tab: Ref<TabType>) => {\n const idx = tabsInternal.value.findIndex((t) => t.value.internalId === tab.value.internalId)\n if (idx === -1) {\n tabsInternal.value.push(tab)\n if (initialized) {\n nextTick(() => {\n sortTabs()\n })\n } else {\n // If we're doing delayed tab selection, try to update now that a tab has registered\n if (delayedTabSelection) {\n nextTick(() => {\n updateInitialIndexAndId()\n })\n }\n }\n } else {\n tabsInternal.value[idx] = tab\n if (initialized) {\n // sort just in case the tab was moved\n sortTabs()\n }\n }\n const idx2 = tabsInternal.value.findIndex((t) => t.value.internalId === tab.value.internalId)\n return tab.value.id ?? (!initialized ? initialIds.value[idx2] : tab.value.internalId)\n}\n\nonMounted(() => {\n updateInitialIndexAndId()\n sortTabs()\n initialized = true\n})\n\nconst sortTabs = () => {\n tabsInternal.value.sort((a, b) => sortSlotElementsByPosition(a.value.el.value, b.value.el.value))\n if (\n activeId.value &&\n activeIndex.value !== tabs.value.findIndex((t) => t.id === activeId.value)\n ) {\n activeIndex.value = tabs.value.findIndex((t) => t.id === activeId.value)\n }\n}\n\nconst unregisterTab = (id: string) => {\n tabsInternal.value = tabsInternal.value.filter((t) => t.value.internalId !== id)\n}\n\nprovide(tabsInjectionKey, {\n lazy: toRef(() => props.lazy),\n card: toRef(() => props.card),\n noFade: toRef(() => props.noFade),\n activeTabClass: toRef(() => props.activeTabClass),\n inactiveTabClass: toRef(() => props.inactiveTabClass),\n tabClass: toRef(() => props.tabClass),\n registerTab,\n unregisterTab,\n activeId,\n activateTab: (internalId) => {\n const idx = tabs.value.findIndex((t) => t.internalId === internalId)\n if (internalId === undefined || idx === -1) {\n activeIndex.value = nextIndex(0, 1)\n return\n }\n activeIndex.value = idx\n },\n})\n</script>\n"],"mappings":"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"}
@@ -1,15 +1,15 @@
1
- import { S as useVModel } from "./dist-Dk9C_HFS.mjs";
2
- import { t as useDefaults } from "./useDefaults-DseelK6y.mjs";
3
- import { t as useId$1 } from "./useId-D1sqXtwx.mjs";
4
- import { B as $14e0f24ef4ac5c92$export$d0bdf45af03a6ea3, F as $14e0f24ef4ac5c92$export$91b62ebf2ba703ee, a as createContent, d as useDateFormatter, h as normalizeHourCycle, i as isSegmentNavigationKey, j as $11d87f3f76e88657$export$b21e0b124e224484, k as $35ea8db9cb2ccb90$export$680ea196effce5f, l as syncTimeSegmentValues, m as normalizeDateStep, r as getTimeFieldSegmentElements, s as initializeTimeSegmentValues, t as useDateField, u as useLocale, w as isBefore, y as getDefaultTime, z as $14e0f24ef4ac5c92$export$aa8b41735afcabd2 } from "./useDateField-CJKgollJ.mjs";
5
- import { a as useDirection, c as createContext, n as usePrimitiveElement, r as Primitive, t as VisuallyHidden_default } from "./VisuallyHidden-C4sXnc-k.mjs";
6
- import { r as isNullish, t as useKbd } from "./useKbd-DfmgFov6.mjs";
1
+ import { S as useVModel } from "./dist-9-XTMhb-.js";
2
+ import { t as useDefaults } from "./useDefaults-BzP4qZBu.js";
3
+ import { t as useId$1 } from "./useId-Fh-Arhb7.js";
4
+ import { E as isBefore, H as $ad063034c8620db8$export$d0bdf45af03a6ea3, L as $ad063034c8620db8$export$91b62ebf2ba703ee, N as $d07e34cce18680fd$export$b21e0b124e224484, V as $ad063034c8620db8$export$aa8b41735afcabd2, a as createContent, d as useDateFormatter, g as normalizeHourCycle, h as normalizeDateStep, i as isSegmentNavigationKey, j as $2aaf608024c21ca1$export$680ea196effce5f, l as syncTimeSegmentValues, r as getTimeFieldSegmentElements, s as initializeTimeSegmentValues, t as useDateField, u as useLocale, x as getDefaultTime } from "./useDateField-CQZb799C.js";
5
+ import { a as useDirection, l as createContext, n as usePrimitiveElement, r as Primitive, t as VisuallyHidden_default } from "./VisuallyHidden-BYzyjJiY.js";
6
+ import { r as isNullish, t as useKbd } from "./useKbd-DRsaFU_f.js";
7
7
  import { Fragment, computed, createBlock, createElementBlock, createTextVNode, createVNode, defineComponent, mergeModels, mergeProps, nextTick, normalizeClass, onMounted, openBlock, ref, renderList, renderSlot, toDisplayString, toHandlers, toRefs, unref, useModel, watch, withCtx, withKeys } from "vue";
8
- //#region ../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/TimeField/TimeFieldRoot.js
9
- var [injectTimeFieldRootContext, provideTimeFieldRootContext] = createContext("TimeFieldRoot");
10
- function convertValue(value, date = $14e0f24ef4ac5c92$export$d0bdf45af03a6ea3($14e0f24ef4ac5c92$export$aa8b41735afcabd2())) {
8
+ //#region ../../node_modules/.pnpm/reka-ui@2.10.3_vue@3.5.41_typescript@5.9.3_/node_modules/reka-ui/dist/TimeField/TimeFieldRoot.js
9
+ var [injectTimeFieldRootContext, provideTimeFieldRootContext] = /*#__PURE__*/ createContext("TimeFieldRoot");
10
+ function convertValue(value, date = $ad063034c8620db8$export$d0bdf45af03a6ea3($ad063034c8620db8$export$aa8b41735afcabd2())) {
11
11
  if (value && "day" in value) return value;
12
- return $11d87f3f76e88657$export$b21e0b124e224484(date, value);
12
+ return $d07e34cce18680fd$export$b21e0b124e224484(date, value);
13
13
  }
14
14
  var TimeFieldRoot_default = /* @__PURE__ */ defineComponent({
15
15
  inheritAttrs: false,
@@ -127,7 +127,7 @@ var TimeFieldRoot_default = /* @__PURE__ */ defineComponent({
127
127
  return convertValue(modelValue.value);
128
128
  },
129
129
  set(newValue) {
130
- if (newValue) modelValue.value = modelValue.value && "day" in modelValue.value ? newValue : new $35ea8db9cb2ccb90$export$680ea196effce5f(newValue.hour, newValue.minute, newValue.second, modelValue.value?.millisecond);
130
+ if (newValue) modelValue.value = modelValue.value && "day" in modelValue.value ? newValue : new $2aaf608024c21ca1$export$680ea196effce5f(newValue.hour, newValue.minute, newValue.second, modelValue.value?.millisecond);
131
131
  else modelValue.value = newValue;
132
132
  return newValue;
133
133
  }
@@ -145,7 +145,7 @@ var TimeFieldRoot_default = /* @__PURE__ */ defineComponent({
145
145
  return convertValue(placeholder.value);
146
146
  },
147
147
  set(newValue) {
148
- if (newValue) placeholder.value = "day" in placeholder.value ? newValue.copy() : new $35ea8db9cb2ccb90$export$680ea196effce5f(newValue.hour, newValue.minute, newValue.second, placeholder.value?.millisecond);
148
+ if (newValue) placeholder.value = "day" in placeholder.value ? newValue.copy() : new $2aaf608024c21ca1$export$680ea196effce5f(newValue.hour, newValue.minute, newValue.second, placeholder.value?.millisecond);
149
149
  return newValue;
150
150
  }
151
151
  });
@@ -202,7 +202,7 @@ var TimeFieldRoot_default = /* @__PURE__ */ defineComponent({
202
202
  }
203
203
  });
204
204
  watch(convertedModelValue, (_modelValue) => {
205
- if (!isNullish(_modelValue) && (!$14e0f24ef4ac5c92$export$91b62ebf2ba703ee(convertedPlaceholder.value, _modelValue) || convertedPlaceholder.value.compare(_modelValue) !== 0)) placeholder.value = _modelValue.copy();
205
+ if (!isNullish(_modelValue) && (!$ad063034c8620db8$export$91b62ebf2ba703ee(convertedPlaceholder.value, _modelValue) || convertedPlaceholder.value.compare(_modelValue) !== 0)) placeholder.value = _modelValue.copy();
206
206
  });
207
207
  watch([convertedModelValue, locale], ([_modelValue]) => {
208
208
  if (!isNullish(_modelValue)) segmentValues.value = { ...syncTimeSegmentValues({
@@ -225,6 +225,7 @@ var TimeFieldRoot_default = /* @__PURE__ */ defineComponent({
225
225
  });
226
226
  const kbd = useKbd();
227
227
  function handleKeydown(e) {
228
+ if (e.isComposing) return;
228
229
  if (!isSegmentNavigationKey(e.key)) return;
229
230
  if (e.key === kbd.ARROW_LEFT) prevFocusableSegment.value?.focus();
230
231
  if (e.key === kbd.ARROW_RIGHT) nextFocusableSegment.value?.focus();
@@ -248,7 +249,7 @@ var TimeFieldRoot_default = /* @__PURE__ */ defineComponent({
248
249
  elements: segmentElements,
249
250
  setFocusedElement,
250
251
  focusNext() {
251
- nextFocusableSegment.value?.focus();
252
+ Array.from(segmentElements.value)[currentSegmentIndex.value + 1]?.focus();
252
253
  }
253
254
  });
254
255
  __expose({ setFocusedElement });
@@ -297,7 +298,7 @@ var TimeFieldRoot_default = /* @__PURE__ */ defineComponent({
297
298
  }
298
299
  });
299
300
  //#endregion
300
- //#region ../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/TimeField/TimeFieldInput.js
301
+ //#region ../../node_modules/.pnpm/reka-ui@2.10.3_vue@3.5.41_typescript@5.9.3_/node_modules/reka-ui/dist/TimeField/TimeFieldInput.js
301
302
  var TimeFieldInput_default = /* @__PURE__ */ defineComponent({
302
303
  __name: "TimeFieldInput",
303
304
  props: {
@@ -318,9 +319,10 @@ var TimeFieldInput_default = /* @__PURE__ */ defineComponent({
318
319
  const props = __props;
319
320
  const rootContext = injectTimeFieldRootContext();
320
321
  const hasLeftFocus = ref(true);
321
- const { handleSegmentClick, handleSegmentKeydown, handleSegmentFocusOut, attributes } = useDateField({
322
+ const lastKeyZero = ref(false);
323
+ const { handleSegmentClick, handleSegmentKeydown, handleSegmentBeforeInput, handleSegmentCompositionStart, handleSegmentCompositionEnd, handleSegmentFocusOut, attributes } = useDateField({
322
324
  hasLeftFocus,
323
- lastKeyZero: ref(false),
325
+ lastKeyZero,
324
326
  placeholder: rootContext.placeholder,
325
327
  hourCycle: rootContext.hourCycle,
326
328
  step: rootContext.step,
@@ -351,6 +353,9 @@ var TimeFieldInput_default = /* @__PURE__ */ defineComponent({
351
353
  }, toHandlers(_ctx.part !== "literal" ? {
352
354
  mousedown: unref(handleSegmentClick),
353
355
  keydown: unref(handleSegmentKeydown),
356
+ beforeinput: unref(handleSegmentBeforeInput),
357
+ compositionstart: unref(handleSegmentCompositionStart),
358
+ compositionend: unref(handleSegmentCompositionEnd),
354
359
  focusout: () => {
355
360
  hasLeftFocus.value = true;
356
361
  unref(handleSegmentFocusOut)();
@@ -379,7 +384,7 @@ var TimeFieldInput_default = /* @__PURE__ */ defineComponent({
379
384
  //#region src/components/BTimeField/BTimeField.vue
380
385
  var BTimeField_default = /* @__PURE__ */ defineComponent({
381
386
  __name: "BTimeField",
382
- props: /* @__PURE__ */ mergeModels({
387
+ props: /*@__PURE__*/ mergeModels({
383
388
  defaultPlaceholder: { default: void 0 },
384
389
  defaultValue: { default: void 0 },
385
390
  dir: { default: void 0 },
@@ -508,4 +513,4 @@ var BTimeField_default = /* @__PURE__ */ defineComponent({
508
513
  //#endregion
509
514
  export { BTimeField_default as t };
510
515
 
511
- //# sourceMappingURL=BTimeField-BSDaZogC.mjs.map
516
+ //# sourceMappingURL=BTimeField-CbRGjaI6.js.map