bootstrap-vue-next 0.44.3 → 0.44.4

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 (519) hide show
  1. package/dist/{BAccordion-DZ50ppJx.js → BAccordion-CJZMsvwP.js} +2 -2
  2. package/dist/{BAccordion-DZ50ppJx.js.map → BAccordion-CJZMsvwP.js.map} +1 -1
  3. package/dist/{BAccordion-BU80DI3B.mjs → BAccordion-CNzV6f8e.mjs} +2 -2
  4. package/dist/{BAccordion-BU80DI3B.mjs.map → BAccordion-CNzV6f8e.mjs.map} +1 -1
  5. package/dist/{BAlert-DTvDu9YQ.js → BAlert-BnT7fF6B.js} +5 -5
  6. package/dist/{BAlert-DTvDu9YQ.js.map → BAlert-BnT7fF6B.js.map} +1 -1
  7. package/dist/{BAlert-CuWkyQoY.mjs → BAlert-Qiyqq4rE.mjs} +5 -5
  8. package/dist/{BAlert-CuWkyQoY.mjs.map → BAlert-Qiyqq4rE.mjs.map} +1 -1
  9. package/dist/BAutocomplete-C7Odx4At.js +2342 -0
  10. package/dist/BAutocomplete-C7Odx4At.js.map +1 -0
  11. package/dist/BAutocomplete-Depalqe-.mjs +2336 -0
  12. package/dist/BAutocomplete-Depalqe-.mjs.map +1 -0
  13. package/dist/{BAvatar-vI7zHFsj.mjs → BAvatar-D7aFEXLH.mjs} +5 -5
  14. package/dist/{BAvatar-vI7zHFsj.mjs.map → BAvatar-D7aFEXLH.mjs.map} +1 -1
  15. package/dist/{BAvatar-eEIyfQso.js → BAvatar-lefHkDuG.js} +5 -5
  16. package/dist/{BAvatar-eEIyfQso.js.map → BAvatar-lefHkDuG.js.map} +1 -1
  17. package/dist/{BBadge-Cpuk1892.js → BBadge-BBUcrujj.js} +2 -2
  18. package/dist/{BBadge-Cpuk1892.js.map → BBadge-BBUcrujj.js.map} +1 -1
  19. package/dist/{BBadge-xiyuzuG6.mjs → BBadge-D5ra3W5R.mjs} +2 -2
  20. package/dist/{BBadge-xiyuzuG6.mjs.map → BBadge-D5ra3W5R.mjs.map} +1 -1
  21. package/dist/{BBreadcrumb-BkRDTYv1.js → BBreadcrumb-BSsiwCNB.js} +1 -1
  22. package/dist/{BBreadcrumb-BkRDTYv1.js.map → BBreadcrumb-BSsiwCNB.js.map} +1 -1
  23. package/dist/{BBreadcrumb-CjPr1FWj.mjs → BBreadcrumb-amkzWyz6.mjs} +1 -1
  24. package/dist/{BBreadcrumb-CjPr1FWj.mjs.map → BBreadcrumb-amkzWyz6.mjs.map} +1 -1
  25. package/dist/{BButton-DPCH-g3G.mjs → BButton-BRvIFnRm.mjs} +2 -2
  26. package/dist/{BButton-DPCH-g3G.mjs.map → BButton-BRvIFnRm.mjs.map} +1 -1
  27. package/dist/{BButton-sb1cBCIb.js → BButton-DBRs8Pz_.js} +2 -2
  28. package/dist/{BButton-sb1cBCIb.js.map → BButton-DBRs8Pz_.js.map} +1 -1
  29. package/dist/{BButton-B4xE6uw6.mjs → BButton-DNmtqoqR.mjs} +2 -2
  30. package/dist/{BButton-B4xE6uw6.mjs.map → BButton-DNmtqoqR.mjs.map} +1 -1
  31. package/dist/{BButton-B5oWZOoX.js → BButton-kykTWnBy.js} +2 -2
  32. package/dist/{BButton-B5oWZOoX.js.map → BButton-kykTWnBy.js.map} +1 -1
  33. package/dist/{BCard-Dly2DM9l.mjs → BCard-C1G8PO5k.mjs} +3 -3
  34. package/dist/{BCard-Dly2DM9l.mjs.map → BCard-C1G8PO5k.mjs.map} +1 -1
  35. package/dist/{BCard-DQxiuBWk.mjs → BCard-CJ822HyH.mjs} +2 -2
  36. package/dist/{BCard-DQxiuBWk.mjs.map → BCard-CJ822HyH.mjs.map} +1 -1
  37. package/dist/{BCard-BpaUsusY.js → BCard-CSyEHz8Z.js} +2 -2
  38. package/dist/{BCard-BpaUsusY.js.map → BCard-CSyEHz8Z.js.map} +1 -1
  39. package/dist/{BCard-Bc6OI3iJ.js → BCard-CgbTFn3S.js} +3 -3
  40. package/dist/{BCard-Bc6OI3iJ.js.map → BCard-CgbTFn3S.js.map} +1 -1
  41. package/dist/{BCarousel-DvQKUvSp.js → BCarousel-Be7z13f9.js} +7 -4
  42. package/dist/BCarousel-Be7z13f9.js.map +1 -0
  43. package/dist/{BCarousel-DarHY6e7.mjs → BCarousel-D81alfFC.mjs} +7 -4
  44. package/dist/BCarousel-D81alfFC.mjs.map +1 -0
  45. package/dist/{BCol-CXEKpSfY.js → BCol-0tZmpOme.js} +2 -2
  46. package/dist/{BCol-CXEKpSfY.js.map → BCol-0tZmpOme.js.map} +1 -1
  47. package/dist/{BCol-BAGO0XhU.mjs → BCol-C4v-TOX6.mjs} +2 -2
  48. package/dist/{BCol-BAGO0XhU.mjs.map → BCol-C4v-TOX6.mjs.map} +1 -1
  49. package/dist/{BCollapse-BzIGTt3g.mjs → BCollapse-D-xTGkX_.mjs} +2 -2
  50. package/dist/{BCollapse-BzIGTt3g.mjs.map → BCollapse-D-xTGkX_.mjs.map} +1 -1
  51. package/dist/{BCollapse-D2tCzh6C.js → BCollapse-DZ1z2c8U.js} +2 -2
  52. package/dist/{BCollapse-D2tCzh6C.js.map → BCollapse-DZ1z2c8U.js.map} +1 -1
  53. package/dist/{BContainer-D0G_4Ccr.js → BContainer-BZUI2qQv.js} +3 -3
  54. package/dist/{BContainer-D0G_4Ccr.js.map → BContainer-BZUI2qQv.js.map} +1 -1
  55. package/dist/{BContainer-CBvLhEKU.mjs → BContainer-DjIGH6-y.mjs} +3 -3
  56. package/dist/{BContainer-CBvLhEKU.mjs.map → BContainer-DjIGH6-y.mjs.map} +1 -1
  57. package/dist/{BDateField-Ci05mtvE.mjs → BDateField-BJIq6gs9.mjs} +6 -4
  58. package/dist/{BDateField-Ci05mtvE.mjs.map → BDateField-BJIq6gs9.mjs.map} +1 -1
  59. package/dist/{BDateField-DOQj40bP.js → BDateField-RWwEMIwd.js} +15 -13
  60. package/dist/{BDateField-DOQj40bP.js.map → BDateField-RWwEMIwd.js.map} +1 -1
  61. package/dist/{BDatePicker-CHtppbq6.js → BDatePicker-BQN6qZXa.js} +72 -1554
  62. package/dist/BDatePicker-BQN6qZXa.js.map +1 -0
  63. package/dist/{BDatePicker-CpwEikK3.mjs → BDatePicker-DfzZBWjU.mjs} +14 -1496
  64. package/dist/BDatePicker-DfzZBWjU.mjs.map +1 -0
  65. package/dist/{BDropdown-CmUoG4aR.mjs → BDropdown-BW_O8vPQ.mjs} +2 -2
  66. package/dist/{BDropdown-CmUoG4aR.mjs.map → BDropdown-BW_O8vPQ.mjs.map} +1 -1
  67. package/dist/{BDropdown-g6_09NKU.js → BDropdown-C1AxRj81.js} +12 -9
  68. package/dist/BDropdown-C1AxRj81.js.map +1 -0
  69. package/dist/{BDropdown-i62kSdFN.js → BDropdown-CuVOxCzu.js} +2 -2
  70. package/dist/{BDropdown-i62kSdFN.js.map → BDropdown-CuVOxCzu.js.map} +1 -1
  71. package/dist/{BDropdown-CkklXJE1.mjs → BDropdown-DAHnN54Z.mjs} +12 -9
  72. package/dist/BDropdown-DAHnN54Z.mjs.map +1 -0
  73. package/dist/{BForm-D1hmPFIR.js → BForm-Bp7SFxiK.js} +1 -1
  74. package/dist/{BForm-D1hmPFIR.js.map → BForm-Bp7SFxiK.js.map} +1 -1
  75. package/dist/{BForm-BW5sAbJu.js → BForm-BqHUnHpU.js} +6 -5
  76. package/dist/{BForm-BW5sAbJu.js.map → BForm-BqHUnHpU.js.map} +1 -1
  77. package/dist/{BForm-BYWcrW3i.mjs → BForm-IL7Rf_27.mjs} +5 -4
  78. package/dist/{BForm-BYWcrW3i.mjs.map → BForm-IL7Rf_27.mjs.map} +1 -1
  79. package/dist/{BForm-BKeJ6pQN.mjs → BForm-Oh6PpdcD.mjs} +1 -1
  80. package/dist/{BForm-BKeJ6pQN.mjs.map → BForm-Oh6PpdcD.mjs.map} +1 -1
  81. package/dist/{BFormCheckbox-eSsgdaji.js → BFormCheckbox-Bdk2rgVe.js} +4 -4
  82. package/dist/{BFormCheckbox-eSsgdaji.js.map → BFormCheckbox-Bdk2rgVe.js.map} +1 -1
  83. package/dist/{BFormCheckbox-LMGyV5Wh.mjs → BFormCheckbox-CcDK-lh1.mjs} +4 -4
  84. package/dist/{BFormCheckbox-LMGyV5Wh.mjs.map → BFormCheckbox-CcDK-lh1.mjs.map} +1 -1
  85. package/dist/{BFormFile-N491i_FE.js → BFormFile-BWknj7fW.js} +3 -3
  86. package/dist/{BFormFile-N491i_FE.js.map → BFormFile-BWknj7fW.js.map} +1 -1
  87. package/dist/{BFormFile-DUd50zn5.mjs → BFormFile-Bf3GMYeX.mjs} +3 -3
  88. package/dist/{BFormFile-DUd50zn5.mjs.map → BFormFile-Bf3GMYeX.mjs.map} +1 -1
  89. package/dist/{BFormGroup-Bm3Af8hx.mjs → BFormGroup--38dFj0X.mjs} +6 -6
  90. package/dist/{BFormGroup-Bm3Af8hx.mjs.map → BFormGroup--38dFj0X.mjs.map} +1 -1
  91. package/dist/{BFormGroup-DN4AyqDY.js → BFormGroup-BwO1BZD1.js} +6 -6
  92. package/dist/{BFormGroup-DN4AyqDY.js.map → BFormGroup-BwO1BZD1.js.map} +1 -1
  93. package/dist/{BFormInput-DniXdPz5.js → BFormInput-BuRSGYdY.js} +2 -2
  94. package/dist/{BFormInput-DniXdPz5.js.map → BFormInput-BuRSGYdY.js.map} +1 -1
  95. package/dist/{BFormInput-UqEvTffC.mjs → BFormInput-Dg9dbwHp.mjs} +2 -2
  96. package/dist/{BFormInput-UqEvTffC.mjs.map → BFormInput-Dg9dbwHp.mjs.map} +1 -1
  97. package/dist/{BFormRadio-B7fL16AZ.mjs → BFormRadio-CRDbgMiR.mjs} +4 -4
  98. package/dist/{BFormRadio-B7fL16AZ.mjs.map → BFormRadio-CRDbgMiR.mjs.map} +1 -1
  99. package/dist/{BFormRadio-C9U9PbDA.js → BFormRadio-DuVYw-Vs.js} +4 -4
  100. package/dist/{BFormRadio-C9U9PbDA.js.map → BFormRadio-DuVYw-Vs.js.map} +1 -1
  101. package/dist/{BFormRating-BJI4hTHm.mjs → BFormRating-Bb_ACp-9.mjs} +2 -2
  102. package/dist/{BFormRating-BJI4hTHm.mjs.map → BFormRating-Bb_ACp-9.mjs.map} +1 -1
  103. package/dist/{BFormRating-JeEiyayh.js → BFormRating-CNqf91vN.js} +2 -2
  104. package/dist/{BFormRating-JeEiyayh.js.map → BFormRating-CNqf91vN.js.map} +1 -1
  105. package/dist/{BFormSelect-BleWBr-U.mjs → BFormSelect-Dg6OwMl-.mjs} +6 -5
  106. package/dist/{BFormSelect-BleWBr-U.mjs.map → BFormSelect-Dg6OwMl-.mjs.map} +1 -1
  107. package/dist/{BFormSelect-D_yYXijf.js → BFormSelect-DqSojuY_.js} +8 -7
  108. package/dist/{BFormSelect-D_yYXijf.js.map → BFormSelect-DqSojuY_.js.map} +1 -1
  109. package/dist/BFormSelectOption-BY4P8HOf.js +46 -0
  110. package/dist/BFormSelectOption-BY4P8HOf.js.map +1 -0
  111. package/dist/BFormSelectOption-O8cyyv3i.mjs +40 -0
  112. package/dist/BFormSelectOption-O8cyyv3i.mjs.map +1 -0
  113. package/dist/{BFormSpinbutton-5JRMW1Bo.mjs → BFormSpinbutton-BLO0Yf36.mjs} +3 -3
  114. package/dist/{BFormSpinbutton-5JRMW1Bo.mjs.map → BFormSpinbutton-BLO0Yf36.mjs.map} +1 -1
  115. package/dist/{BFormSpinbutton-Dix9U_c1.js → BFormSpinbutton-BaOTL1k1.js} +3 -3
  116. package/dist/{BFormSpinbutton-Dix9U_c1.js.map → BFormSpinbutton-BaOTL1k1.js.map} +1 -1
  117. package/dist/BFormTag-BUWEugEC.mjs +80 -0
  118. package/dist/BFormTag-BUWEugEC.mjs.map +1 -0
  119. package/dist/BFormTag-C7B-bX72.js +86 -0
  120. package/dist/BFormTag-C7B-bX72.js.map +1 -0
  121. package/dist/{BFormTags-BUoQXBA9.js → BFormTags-BFA6xbr3.js} +9 -85
  122. package/dist/BFormTags-BFA6xbr3.js.map +1 -0
  123. package/dist/{BFormTags-BjyHMiw1.mjs → BFormTags-CJb4H67g.mjs} +10 -80
  124. package/dist/BFormTags-CJb4H67g.mjs.map +1 -0
  125. package/dist/{BFormTextarea-BIrsIHU1.js → BFormTextarea-8c3B3kAI.js} +3 -3
  126. package/dist/{BFormTextarea-BIrsIHU1.js.map → BFormTextarea-8c3B3kAI.js.map} +1 -1
  127. package/dist/{BFormTextarea-D8waUYBT.mjs → BFormTextarea-BMk05ojJ.mjs} +3 -3
  128. package/dist/{BFormTextarea-D8waUYBT.mjs.map → BFormTextarea-BMk05ojJ.mjs.map} +1 -1
  129. package/dist/{BFormValidFeedback-CiZ4cn1v.js → BFormValidFeedback-DvTgwqSe.js} +1 -1
  130. package/dist/{BFormValidFeedback-CiZ4cn1v.js.map → BFormValidFeedback-DvTgwqSe.js.map} +1 -1
  131. package/dist/{BFormValidFeedback-BNQNdH26.mjs → BFormValidFeedback-_Dgzm0Ag.mjs} +1 -1
  132. package/dist/{BFormValidFeedback-BNQNdH26.mjs.map → BFormValidFeedback-_Dgzm0Ag.mjs.map} +1 -1
  133. package/dist/{BImg-BZ7hac1l.mjs → BImg-BQqZfIM9.mjs} +3 -3
  134. package/dist/{BImg-BZ7hac1l.mjs.map → BImg-BQqZfIM9.mjs.map} +1 -1
  135. package/dist/{BImg-BFKDHH7y.js → BImg-Dyy0N-WQ.js} +3 -3
  136. package/dist/{BImg-BFKDHH7y.js.map → BImg-Dyy0N-WQ.js.map} +1 -1
  137. package/dist/BInputGroup-BScMw6Zr.js +31 -0
  138. package/dist/BInputGroup-BScMw6Zr.js.map +1 -0
  139. package/dist/BInputGroup-C7k0tS9j.mjs +25 -0
  140. package/dist/BInputGroup-C7k0tS9j.mjs.map +1 -0
  141. package/dist/{BInputGroup-xno5tJWV.mjs → BInputGroup-DpX10xwR.mjs} +3 -21
  142. package/dist/BInputGroup-DpX10xwR.mjs.map +1 -0
  143. package/dist/{BInputGroup-DwrQVmGT.js → BInputGroup-Duk6Jk0v.js} +1 -25
  144. package/dist/BInputGroup-Duk6Jk0v.js.map +1 -0
  145. package/dist/{BListGroup-DHdBjAI1.mjs → BListGroup-BmtN0xQ3.mjs} +1 -1
  146. package/dist/{BListGroup-DHdBjAI1.mjs.map → BListGroup-BmtN0xQ3.mjs.map} +1 -1
  147. package/dist/{BListGroup-yJ9SOYxq.js → BListGroup-DuyMdAxJ.js} +1 -1
  148. package/dist/{BListGroup-yJ9SOYxq.js.map → BListGroup-DuyMdAxJ.js.map} +1 -1
  149. package/dist/{BModal-DkX-2F1v.mjs → BModal-Br5xLT0-.mjs} +10 -7
  150. package/dist/BModal-Br5xLT0-.mjs.map +1 -0
  151. package/dist/{BModal-CVf686JS.js → BModal-D0LB339D.js} +10 -7
  152. package/dist/BModal-D0LB339D.js.map +1 -0
  153. package/dist/{BNav-D88X9xHW.mjs → BNav-BRjdHsjC.mjs} +4 -4
  154. package/dist/{BNav-D88X9xHW.mjs.map → BNav-BRjdHsjC.mjs.map} +1 -1
  155. package/dist/{BNav-dxOO1pJI.js → BNav-tYBwz1wU.js} +4 -4
  156. package/dist/{BNav-dxOO1pJI.js.map → BNav-tYBwz1wU.js.map} +1 -1
  157. package/dist/{BNavbar-EayLl9th.js → BNavbar-s9Ak5PnO.js} +3 -3
  158. package/dist/{BNavbar-EayLl9th.js.map → BNavbar-s9Ak5PnO.js.map} +1 -1
  159. package/dist/{BNavbar-DALgesyZ.mjs → BNavbar-vN3_CMLn.mjs} +3 -3
  160. package/dist/{BNavbar-DALgesyZ.mjs.map → BNavbar-vN3_CMLn.mjs.map} +1 -1
  161. package/dist/{BOffcanvas-CJDXvuCR.js → BOffcanvas-D33pEfZe.js} +10 -7
  162. package/dist/BOffcanvas-D33pEfZe.js.map +1 -0
  163. package/dist/{BOffcanvas-CJUaqRuT.mjs → BOffcanvas-jETHbtC3.mjs} +10 -7
  164. package/dist/BOffcanvas-jETHbtC3.mjs.map +1 -0
  165. package/dist/BOtpInput-CSCoKHP9.js +542 -0
  166. package/dist/BOtpInput-CSCoKHP9.js.map +1 -0
  167. package/dist/BOtpInput-Drfkt3x3.mjs +536 -0
  168. package/dist/BOtpInput-Drfkt3x3.mjs.map +1 -0
  169. package/dist/{BOverlay-Ct1Be98i.js → BOverlay-B7vJAdHO.js} +3 -3
  170. package/dist/{BOverlay-Ct1Be98i.js.map → BOverlay-B7vJAdHO.js.map} +1 -1
  171. package/dist/{BOverlay-CZUXqAOJ.mjs → BOverlay-BGxH9JVy.mjs} +3 -3
  172. package/dist/{BOverlay-CZUXqAOJ.mjs.map → BOverlay-BGxH9JVy.mjs.map} +1 -1
  173. package/dist/{BPagination-Dm-dKaSQ.js → BPagination-C0-4NVzW.js} +3 -3
  174. package/dist/{BPagination-Dm-dKaSQ.js.map → BPagination-C0-4NVzW.js.map} +1 -1
  175. package/dist/{BPagination-BOW0ZgHP.mjs → BPagination-CvoSN1He.mjs} +3 -3
  176. package/dist/{BPagination-BOW0ZgHP.mjs.map → BPagination-CvoSN1He.mjs.map} +1 -1
  177. package/dist/{BPlaceholder-V5sitFFG.mjs → BPlaceholder-C4AOg29f.mjs} +4 -4
  178. package/dist/{BPlaceholder-V5sitFFG.mjs.map → BPlaceholder-C4AOg29f.mjs.map} +1 -1
  179. package/dist/{BPlaceholder-LEAD84zn.js → BPlaceholder-DYYYuNgR.js} +4 -4
  180. package/dist/{BPlaceholder-LEAD84zn.js.map → BPlaceholder-DYYYuNgR.js.map} +1 -1
  181. package/dist/{BProgress-D0yfZ2Ze.mjs → BProgress-BIqo6vLh.mjs} +2 -2
  182. package/dist/{BProgress-D0yfZ2Ze.mjs.map → BProgress-BIqo6vLh.mjs.map} +1 -1
  183. package/dist/{BProgress-DAnEfDXq.js → BProgress-Bc3ZSkac.js} +2 -2
  184. package/dist/{BProgress-DAnEfDXq.js.map → BProgress-Bc3ZSkac.js.map} +1 -1
  185. package/dist/{BRow-BKxCxJUU.mjs → BRow-BCEK3fe6.mjs} +3 -3
  186. package/dist/{BRow-BKxCxJUU.mjs.map → BRow-BCEK3fe6.mjs.map} +1 -1
  187. package/dist/{BRow-bG6T9jY3.js → BRow-tqMEhkZS.js} +3 -3
  188. package/dist/{BRow-bG6T9jY3.js.map → BRow-tqMEhkZS.js.map} +1 -1
  189. package/dist/{BTable-DSuQWlMd.js → BTable-Btzu1IJ_.js} +4 -4
  190. package/dist/{BTable-DSuQWlMd.js.map → BTable-Btzu1IJ_.js.map} +1 -1
  191. package/dist/{BTable-CYvvqn6I.mjs → BTable-CjHMx8Yv.mjs} +4 -4
  192. package/dist/{BTable-CYvvqn6I.mjs.map → BTable-CjHMx8Yv.mjs.map} +1 -1
  193. package/dist/{BTableSimple-Bq8PToKM.js → BTableSimple-BcdizuDm.js} +2 -2
  194. package/dist/{BTableSimple-Bq8PToKM.js.map → BTableSimple-BcdizuDm.js.map} +1 -1
  195. package/dist/{BTableSimple-DfE2d_yr.mjs → BTableSimple-C901Z5V9.mjs} +2 -2
  196. package/dist/{BTableSimple-DfE2d_yr.mjs.map → BTableSimple-C901Z5V9.mjs.map} +1 -1
  197. package/dist/{BTabs-De_t7t0r.mjs → BTabs-DZEF9kgT.mjs} +3 -3
  198. package/dist/{BTabs-De_t7t0r.mjs.map → BTabs-DZEF9kgT.mjs.map} +1 -1
  199. package/dist/{BTabs-C_zLwDuN.js → BTabs-DiYaJi22.js} +3 -3
  200. package/dist/{BTabs-C_zLwDuN.js.map → BTabs-DiYaJi22.js.map} +1 -1
  201. package/dist/{BTimeField-Ba7V9u04.mjs → BTimeField-DSWZeGYP.mjs} +5 -3
  202. package/dist/{BTimeField-Ba7V9u04.mjs.map → BTimeField-DSWZeGYP.mjs.map} +1 -1
  203. package/dist/{BTimeField-BjiB8bN9.js → BTimeField-VTrtxGkI.js} +16 -14
  204. package/dist/{BTimeField-BjiB8bN9.js.map → BTimeField-VTrtxGkI.js.map} +1 -1
  205. package/dist/{BToast-DGcCFzvf.mjs → BToast-B2rFKhLD.mjs} +5 -5
  206. package/dist/{BToast-DGcCFzvf.mjs.map → BToast-B2rFKhLD.mjs.map} +1 -1
  207. package/dist/{BToast-SdIR1HJa.js → BToast-DCSZYXIi.js} +5 -5
  208. package/dist/{BToast-SdIR1HJa.js.map → BToast-DCSZYXIi.js.map} +1 -1
  209. package/dist/{BTooltip-CrHabClh.js → BTooltip-CryTO-SM.js} +2 -2
  210. package/dist/{BTooltip-CrHabClh.js.map → BTooltip-CryTO-SM.js.map} +1 -1
  211. package/dist/{BTooltip-U16exDFb.mjs → BTooltip-DtpjIEBu.mjs} +2 -2
  212. package/dist/{BTooltip-U16exDFb.mjs.map → BTooltip-DtpjIEBu.mjs.map} +1 -1
  213. package/dist/{BootstrapVueOptions-BxTxSFXn.js → BootstrapVueOptions-BC3f7hMU.js} +3 -1
  214. package/dist/BootstrapVueOptions-BC3f7hMU.js.map +1 -0
  215. package/dist/{BootstrapVueOptions-Bswes3nS.mjs → BootstrapVueOptions-BU3rzYio.mjs} +3 -1
  216. package/dist/BootstrapVueOptions-BU3rzYio.mjs.map +1 -0
  217. package/dist/{ConditionalWrapper-BcQirqyl.js → ConditionalWrapper-Cc7EIszd.js} +1 -1
  218. package/dist/{ConditionalWrapper-BcQirqyl.js.map → ConditionalWrapper-Cc7EIszd.js.map} +1 -1
  219. package/dist/{ConditionalWrapper-BjjQWNtR.mjs → ConditionalWrapper-D9ovtbHB.mjs} +1 -1
  220. package/dist/{ConditionalWrapper-BjjQWNtR.mjs.map → ConditionalWrapper-D9ovtbHB.mjs.map} +1 -1
  221. package/dist/{DateRangeFieldInput-qCIvFM7a.js → DateRangeFieldInput-Ce7PM3PJ.js} +22 -20
  222. package/dist/{DateRangeFieldInput-qCIvFM7a.js.map → DateRangeFieldInput-Ce7PM3PJ.js.map} +1 -1
  223. package/dist/{DateRangeFieldInput-BaxQpIux.mjs → DateRangeFieldInput-DiVuhf4Y.mjs} +5 -3
  224. package/dist/{DateRangeFieldInput-BaxQpIux.mjs.map → DateRangeFieldInput-DiVuhf4Y.mjs.map} +1 -1
  225. package/dist/PopperContent-BTUvv6Tu.mjs +1431 -0
  226. package/dist/PopperContent-BTUvv6Tu.mjs.map +1 -0
  227. package/dist/PopperContent-CSwv2Fih.js +1515 -0
  228. package/dist/PopperContent-CSwv2Fih.js.map +1 -0
  229. package/dist/VisuallyHidden-Bbwok8oL.mjs +174 -0
  230. package/dist/VisuallyHidden-Bbwok8oL.mjs.map +1 -0
  231. package/dist/VisuallyHidden-DaN947I0.js +222 -0
  232. package/dist/VisuallyHidden-DaN947I0.js.map +1 -0
  233. package/dist/VisuallyHiddenInput-Biq4Qv5j.js +147 -0
  234. package/dist/VisuallyHiddenInput-Biq4Qv5j.js.map +1 -0
  235. package/dist/VisuallyHiddenInput-D1SjTCVH.mjs +141 -0
  236. package/dist/VisuallyHiddenInput-D1SjTCVH.mjs.map +1 -0
  237. package/dist/bootstrap-vue-next.css +147 -0
  238. package/dist/bootstrap-vue-next.mjs +56 -52
  239. package/dist/bootstrap-vue-next.umd.js +60 -54
  240. package/dist/components/BAutocomplete/BAutocomplete.vue.d.mts +65 -0
  241. package/dist/components/BAutocomplete/BAutocomplete.vue.d.ts +65 -0
  242. package/dist/components/BAutocomplete/index.d.mts +1 -0
  243. package/dist/components/BAutocomplete/index.d.ts +1 -0
  244. package/dist/components/BDateField/BDateField.vue.d.mts +1 -1
  245. package/dist/components/BDateField/BDateField.vue.d.ts +1 -1
  246. package/dist/components/BDateField/BDateRangeField.vue.d.mts +1 -1
  247. package/dist/components/BDateField/BDateRangeField.vue.d.ts +1 -1
  248. package/dist/components/BDateField/BTimeRangeField.vue.d.mts +4 -4
  249. package/dist/components/BDateField/BTimeRangeField.vue.d.ts +4 -4
  250. package/dist/components/BDatePicker/BDatePicker.vue.d.mts +4 -4
  251. package/dist/components/BDatePicker/BDatePicker.vue.d.ts +4 -4
  252. package/dist/components/BDatePicker/BDateRangePicker.vue.d.mts +4 -4
  253. package/dist/components/BDatePicker/BDateRangePicker.vue.d.ts +4 -4
  254. package/dist/components/BDropdown/BDropdown.vue.d.mts +1 -1
  255. package/dist/components/BDropdown/BDropdown.vue.d.ts +1 -1
  256. package/dist/components/BForm/BFormDatalistBase.vue.d.mts +5 -5
  257. package/dist/components/BForm/BFormDatalistBase.vue.d.ts +5 -5
  258. package/dist/components/BFormSelect/BFormSelectBase.vue.d.mts +4 -4
  259. package/dist/components/BFormSelect/BFormSelectBase.vue.d.ts +4 -4
  260. package/dist/components/BModal/BModal.vue.d.mts +1 -1
  261. package/dist/components/BModal/BModal.vue.d.ts +1 -1
  262. package/dist/components/BOtpInput/BOtpInput.vue.d.mts +32 -0
  263. package/dist/components/BOtpInput/BOtpInput.vue.d.ts +32 -0
  264. package/dist/components/BOtpInput/index.d.mts +1 -0
  265. package/dist/components/BOtpInput/index.d.ts +1 -0
  266. package/dist/components/BTable/BTable.vue.d.mts +3 -3
  267. package/dist/components/BTable/BTable.vue.d.ts +3 -3
  268. package/dist/components/BTimeField/BTimeField.vue.d.mts +1 -1
  269. package/dist/components/BTimeField/BTimeField.vue.d.ts +1 -1
  270. package/dist/components/index.d.mts +2 -0
  271. package/dist/components/index.d.ts +2 -0
  272. package/dist/composables/useFormSelect.d.mts +10 -4
  273. package/dist/composables/useFormSelect.d.ts +10 -4
  274. package/dist/{debounce-DQsw8FWv.js → debounce-C-5Oukxb.js} +1 -1
  275. package/dist/{debounce-DQsw8FWv.js.map → debounce-C-5Oukxb.js.map} +1 -1
  276. package/dist/{debounce-DeVyu4Ny.mjs → debounce-C_wjWVGH.mjs} +1 -1
  277. package/dist/{debounce-DeVyu4Ny.mjs.map → debounce-C_wjWVGH.mjs.map} +1 -1
  278. package/dist/{dist-Dn5blevd.mjs → dist-B10a-gZ8.mjs} +34 -2
  279. package/dist/{dist-Dn5blevd.mjs.map → dist-B10a-gZ8.mjs.map} +1 -1
  280. package/dist/{dist-B_c893QG.js → dist-BJ15ThEs.js} +45 -1
  281. package/dist/{dist-B_c893QG.js.map → dist-BJ15ThEs.js.map} +1 -1
  282. package/dist/{floating-ui.vue-DIWi4LGB.mjs → floating-ui.vue-CAMaNcqI.mjs} +1 -1
  283. package/dist/{floating-ui.vue-DIWi4LGB.mjs.map → floating-ui.vue-CAMaNcqI.mjs.map} +1 -1
  284. package/dist/{floating-ui.vue-CW2IKmom.js → floating-ui.vue-GXIS2sFG.js} +1 -1
  285. package/dist/{floating-ui.vue-CW2IKmom.js.map → floating-ui.vue-GXIS2sFG.js.map} +1 -1
  286. package/dist/{floatingUi-syPgL0ve.js → floatingUi-Cs4rDXmO.js} +5 -5
  287. package/dist/{floatingUi-syPgL0ve.js.map → floatingUi-Cs4rDXmO.js.map} +1 -1
  288. package/dist/{floatingUi-BErx3eqf.mjs → floatingUi-DHMrP__c.mjs} +5 -5
  289. package/dist/{floatingUi-BErx3eqf.mjs.map → floatingUi-DHMrP__c.mjs.map} +1 -1
  290. package/dist/{getClasses-DwzMjfzX.mjs → getClasses-DaWzwT2S.mjs} +1 -1
  291. package/dist/{getClasses-DwzMjfzX.mjs.map → getClasses-DaWzwT2S.mjs.map} +1 -1
  292. package/dist/{getClasses-BpIobrfU.js → getClasses-qqI6x4f4.js} +1 -1
  293. package/dist/{getClasses-BpIobrfU.js.map → getClasses-qqI6x4f4.js.map} +1 -1
  294. package/dist/{getElement-BPjh0Qkh.mjs → getElement-0_htvrFw.mjs} +1 -1
  295. package/dist/{getElement-BPjh0Qkh.mjs.map → getElement-0_htvrFw.mjs.map} +1 -1
  296. package/dist/{getElement-BPm7tpe2.js → getElement-CxWWOx3K.js} +1 -1
  297. package/dist/{getElement-BPm7tpe2.js.map → getElement-CxWWOx3K.js.map} +1 -1
  298. package/dist/{registryAccess-BO4rk3Sm.mjs → registryAccess-C1Ti_nxW.mjs} +1 -1
  299. package/dist/{registryAccess-BO4rk3Sm.mjs.map → registryAccess-C1Ti_nxW.mjs.map} +1 -1
  300. package/dist/{registryAccess-ROXkP1Do.js → registryAccess-D-YxwQJq.js} +1 -1
  301. package/dist/{registryAccess-ROXkP1Do.js.map → registryAccess-D-YxwQJq.js.map} +1 -1
  302. package/dist/src/components/BAccordion/index.mjs +1 -1
  303. package/dist/src/components/BAccordion/index.umd.js +1 -1
  304. package/dist/src/components/BAlert/index.mjs +1 -1
  305. package/dist/src/components/BAlert/index.umd.js +1 -1
  306. package/dist/src/components/BAutocomplete/index.mjs +2 -0
  307. package/dist/src/components/BAutocomplete/index.umd.js +3 -0
  308. package/dist/src/components/BAvatar/index.mjs +1 -1
  309. package/dist/src/components/BAvatar/index.umd.js +1 -1
  310. package/dist/src/components/BBadge/index.mjs +1 -1
  311. package/dist/src/components/BBadge/index.umd.js +1 -1
  312. package/dist/src/components/BBreadcrumb/index.mjs +1 -1
  313. package/dist/src/components/BBreadcrumb/index.umd.js +1 -1
  314. package/dist/src/components/BButton/index.mjs +2 -2
  315. package/dist/src/components/BButton/index.umd.js +2 -2
  316. package/dist/src/components/BCard/index.mjs +2 -2
  317. package/dist/src/components/BCard/index.umd.js +2 -2
  318. package/dist/src/components/BCarousel/index.mjs +1 -1
  319. package/dist/src/components/BCarousel/index.umd.js +1 -1
  320. package/dist/src/components/BCol/index.mjs +1 -1
  321. package/dist/src/components/BCol/index.umd.js +1 -1
  322. package/dist/src/components/BCollapse/index.mjs +1 -1
  323. package/dist/src/components/BCollapse/index.umd.js +1 -1
  324. package/dist/src/components/BContainer/index.mjs +3 -3
  325. package/dist/src/components/BContainer/index.umd.js +3 -3
  326. package/dist/src/components/BDateField/index.mjs +1 -1
  327. package/dist/src/components/BDateField/index.umd.js +1 -1
  328. package/dist/src/components/BDatePicker/index.mjs +1 -1
  329. package/dist/src/components/BDatePicker/index.umd.js +1 -1
  330. package/dist/src/components/BDropdown/index.mjs +2 -2
  331. package/dist/src/components/BDropdown/index.umd.js +2 -2
  332. package/dist/src/components/BForm/index.mjs +3 -3
  333. package/dist/src/components/BForm/index.umd.js +3 -3
  334. package/dist/src/components/BFormCheckbox/index.mjs +1 -1
  335. package/dist/src/components/BFormCheckbox/index.umd.js +1 -1
  336. package/dist/src/components/BFormFile/index.mjs +1 -1
  337. package/dist/src/components/BFormFile/index.umd.js +1 -1
  338. package/dist/src/components/BFormGroup/index.mjs +1 -1
  339. package/dist/src/components/BFormGroup/index.umd.js +1 -1
  340. package/dist/src/components/BFormInput/index.mjs +1 -1
  341. package/dist/src/components/BFormInput/index.umd.js +1 -1
  342. package/dist/src/components/BFormRadio/index.mjs +1 -1
  343. package/dist/src/components/BFormRadio/index.umd.js +1 -1
  344. package/dist/src/components/BFormRating/index.mjs +1 -1
  345. package/dist/src/components/BFormRating/index.umd.js +1 -1
  346. package/dist/src/components/BFormSelect/index.mjs +2 -2
  347. package/dist/src/components/BFormSelect/index.umd.js +3 -3
  348. package/dist/src/components/BFormSpinbutton/index.mjs +1 -1
  349. package/dist/src/components/BFormSpinbutton/index.umd.js +1 -1
  350. package/dist/src/components/BFormTags/index.mjs +2 -1
  351. package/dist/src/components/BFormTags/index.umd.js +3 -2
  352. package/dist/src/components/BFormTextarea/index.mjs +1 -1
  353. package/dist/src/components/BFormTextarea/index.umd.js +1 -1
  354. package/dist/src/components/BImg/index.mjs +1 -1
  355. package/dist/src/components/BImg/index.umd.js +1 -1
  356. package/dist/src/components/BInputGroup/index.mjs +2 -1
  357. package/dist/src/components/BInputGroup/index.umd.js +3 -2
  358. package/dist/src/components/BListGroup/index.mjs +1 -1
  359. package/dist/src/components/BListGroup/index.umd.js +1 -1
  360. package/dist/src/components/BModal/index.mjs +1 -1
  361. package/dist/src/components/BModal/index.umd.js +1 -1
  362. package/dist/src/components/BNav/index.mjs +1 -1
  363. package/dist/src/components/BNav/index.umd.js +1 -1
  364. package/dist/src/components/BNavbar/index.mjs +1 -1
  365. package/dist/src/components/BNavbar/index.umd.js +1 -1
  366. package/dist/src/components/BOffcanvas/index.mjs +1 -1
  367. package/dist/src/components/BOffcanvas/index.umd.js +1 -1
  368. package/dist/src/components/BOtpInput/index.mjs +2 -0
  369. package/dist/src/components/BOtpInput/index.umd.js +3 -0
  370. package/dist/src/components/BOverlay/index.mjs +1 -1
  371. package/dist/src/components/BOverlay/index.umd.js +1 -1
  372. package/dist/src/components/BPagination/index.mjs +1 -1
  373. package/dist/src/components/BPagination/index.umd.js +1 -1
  374. package/dist/src/components/BPlaceholder/index.mjs +1 -1
  375. package/dist/src/components/BPlaceholder/index.umd.js +1 -1
  376. package/dist/src/components/BPopover/index.mjs +1 -1
  377. package/dist/src/components/BPopover/index.umd.js +1 -1
  378. package/dist/src/components/BProgress/index.mjs +1 -1
  379. package/dist/src/components/BProgress/index.umd.js +1 -1
  380. package/dist/src/components/BRow/index.mjs +1 -1
  381. package/dist/src/components/BRow/index.umd.js +1 -1
  382. package/dist/src/components/BTable/index.mjs +2 -2
  383. package/dist/src/components/BTable/index.umd.js +2 -2
  384. package/dist/src/components/BTabs/index.mjs +1 -1
  385. package/dist/src/components/BTabs/index.umd.js +1 -1
  386. package/dist/src/components/BTimeField/index.mjs +1 -1
  387. package/dist/src/components/BTimeField/index.umd.js +1 -1
  388. package/dist/src/components/BToast/index.mjs +1 -1
  389. package/dist/src/components/BToast/index.umd.js +1 -1
  390. package/dist/src/components/BTooltip/index.mjs +1 -1
  391. package/dist/src/components/BTooltip/index.umd.js +1 -1
  392. package/dist/src/components/index.mjs +58 -51
  393. package/dist/src/components/index.mjs.map +1 -1
  394. package/dist/src/components/index.umd.js +65 -56
  395. package/dist/src/components/index.umd.js.map +1 -1
  396. package/dist/src/composables/useColorMode/index.mjs +1 -1
  397. package/dist/src/composables/useColorMode/index.umd.js +1 -1
  398. package/dist/src/composables/useModal/index.mjs +1 -1
  399. package/dist/src/composables/useModal/index.umd.js +1 -1
  400. package/dist/src/composables/usePopover/index.mjs +2 -2
  401. package/dist/src/composables/usePopover/index.umd.js +2 -2
  402. package/dist/src/composables/useScrollLock/index.mjs +1 -1
  403. package/dist/src/composables/useScrollLock/index.umd.js +1 -1
  404. package/dist/src/composables/useScrollspy/index.mjs +2 -2
  405. package/dist/src/composables/useScrollspy/index.umd.js +2 -2
  406. package/dist/src/composables/useToast/index.mjs +1 -1
  407. package/dist/src/composables/useToast/index.umd.js +1 -1
  408. package/dist/src/composables/useToggle/index.mjs +1 -1
  409. package/dist/src/composables/useToggle/index.umd.js +1 -1
  410. package/dist/src/directives/BPopover/index.mjs +2 -2
  411. package/dist/src/directives/BPopover/index.umd.js +2 -2
  412. package/dist/src/directives/BScrollspy/index.mjs +1 -1
  413. package/dist/src/directives/BScrollspy/index.umd.js +1 -1
  414. package/dist/src/directives/BToggle/index.mjs +2 -2
  415. package/dist/src/directives/BToggle/index.umd.js +2 -2
  416. package/dist/src/directives/BTooltip/index.mjs +2 -2
  417. package/dist/src/directives/BTooltip/index.umd.js +2 -2
  418. package/dist/src/resolvers/index.mjs +1 -1
  419. package/dist/src/resolvers/index.umd.js +1 -1
  420. package/dist/src/types/index.mjs +1 -1
  421. package/dist/src/types/index.umd.js +1 -1
  422. package/dist/types/BootstrapVueOptions.d.mts +5 -1
  423. package/dist/types/BootstrapVueOptions.d.ts +5 -1
  424. package/dist/types/ComponentProps.d.mts +59 -3
  425. package/dist/types/ComponentProps.d.ts +59 -3
  426. package/dist/types/ComponentSlots.d.mts +14 -0
  427. package/dist/types/ComponentSlots.d.ts +14 -0
  428. package/dist/{useAlignment-DMST4-tc.mjs → useAlignment-BiCREohQ.mjs} +1 -1
  429. package/dist/{useAlignment-DMST4-tc.mjs.map → useAlignment-BiCREohQ.mjs.map} +1 -1
  430. package/dist/{useAlignment-Dus_TOxG.js → useAlignment-D5xKBRez.js} +1 -1
  431. package/dist/{useAlignment-Dus_TOxG.js.map → useAlignment-D5xKBRez.js.map} +1 -1
  432. package/dist/{useAriaInvalid-CsUHLhSs.js → useAriaInvalid-CHHPHNLU.js} +1 -1
  433. package/dist/{useAriaInvalid-CsUHLhSs.js.map → useAriaInvalid-CHHPHNLU.js.map} +1 -1
  434. package/dist/{useAriaInvalid-DcG6BhdW.mjs → useAriaInvalid-apOwgexm.mjs} +1 -1
  435. package/dist/{useAriaInvalid-DcG6BhdW.mjs.map → useAriaInvalid-apOwgexm.mjs.map} +1 -1
  436. package/dist/{useCountdownHover-D044mFuX.js → useCountdownHover-8bwLWYoN.js} +2 -2
  437. package/dist/{useCountdownHover-D044mFuX.js.map → useCountdownHover-8bwLWYoN.js.map} +1 -1
  438. package/dist/{useCountdownHover-DqREghQi.mjs → useCountdownHover-t9O7DHoK.mjs} +2 -2
  439. package/dist/{useCountdownHover-DqREghQi.mjs.map → useCountdownHover-t9O7DHoK.mjs.map} +1 -1
  440. package/dist/{useDateField-Ca0ZxYq9.js → useDateField-COTiu3aN.js} +8 -321
  441. package/dist/useDateField-COTiu3aN.js.map +1 -0
  442. package/dist/{useDateField-BkbvpMB1.mjs → useDateField-DmmXa0_5.mjs} +5 -258
  443. package/dist/useDateField-DmmXa0_5.mjs.map +1 -0
  444. package/dist/{useFormCheck-9Ne69Sw9.mjs → useFormCheck-CJvIDxcO.mjs} +3 -3
  445. package/dist/{useFormCheck-9Ne69Sw9.mjs.map → useFormCheck-CJvIDxcO.mjs.map} +1 -1
  446. package/dist/{useFormCheck-H0B2G8GH.js → useFormCheck-UHNy_iZ0.js} +3 -3
  447. package/dist/{useFormCheck-H0B2G8GH.js.map → useFormCheck-UHNy_iZ0.js.map} +1 -1
  448. package/dist/{useFormInput-9wwIZZqf.mjs → useFormInput-BgJCT9k_.mjs} +5 -5
  449. package/dist/{useFormInput-9wwIZZqf.mjs.map → useFormInput-BgJCT9k_.mjs.map} +1 -1
  450. package/dist/{useFormInput-DyZLjypv.js → useFormInput-CsR38QR6.js} +5 -5
  451. package/dist/{useFormInput-DyZLjypv.js.map → useFormInput-CsR38QR6.js.map} +1 -1
  452. package/dist/useFormSelect-CANw3ZJG.mjs +45 -0
  453. package/dist/useFormSelect-CANw3ZJG.mjs.map +1 -0
  454. package/dist/useFormSelect-nQbGZSi8.js +51 -0
  455. package/dist/useFormSelect-nQbGZSi8.js.map +1 -0
  456. package/dist/useForwardExpose-4OUimdPL.mjs +68 -0
  457. package/dist/useForwardExpose-4OUimdPL.mjs.map +1 -0
  458. package/dist/useForwardExpose-DrJOy0jY.js +80 -0
  459. package/dist/useForwardExpose-DrJOy0jY.js.map +1 -0
  460. package/dist/useKbd-IZRktImL.mjs +88 -0
  461. package/dist/useKbd-IZRktImL.mjs.map +1 -0
  462. package/dist/useKbd-ZZushx7D.js +105 -0
  463. package/dist/useKbd-ZZushx7D.js.map +1 -0
  464. package/dist/{useNumberishToStyle--4gz3iYn.mjs → useNumberishToStyle-DEqGK1UH.mjs} +1 -1
  465. package/dist/{useNumberishToStyle--4gz3iYn.mjs.map → useNumberishToStyle-DEqGK1UH.mjs.map} +1 -1
  466. package/dist/{useNumberishToStyle-DMGqQGfo.js → useNumberishToStyle-DFf9fokb.js} +1 -1
  467. package/dist/{useNumberishToStyle-DMGqQGfo.js.map → useNumberishToStyle-DFf9fokb.js.map} +1 -1
  468. package/dist/{useRadiusElementClasses-ppH4Pr03.mjs → useRadiusElementClasses-BlrN-T6U.mjs} +1 -1
  469. package/dist/{useRadiusElementClasses-ppH4Pr03.mjs.map → useRadiusElementClasses-BlrN-T6U.mjs.map} +1 -1
  470. package/dist/{useRadiusElementClasses-Bi58dhJY.js → useRadiusElementClasses-C13_PhPM.js} +1 -1
  471. package/dist/{useRadiusElementClasses-Bi58dhJY.js.map → useRadiusElementClasses-C13_PhPM.js.map} +1 -1
  472. package/dist/{useRtl-DWO9pKff.js → useRtl-DXAooTrl.js} +1 -1
  473. package/dist/{useRtl-DWO9pKff.js.map → useRtl-DXAooTrl.js.map} +1 -1
  474. package/dist/{useRtl-BwxT5Dyq.mjs → useRtl-DpwU_RM8.mjs} +1 -1
  475. package/dist/{useRtl-BwxT5Dyq.mjs.map → useRtl-DpwU_RM8.mjs.map} +1 -1
  476. package/dist/{useSafeScrollLock-xJBEvCQ7.js → useSafeScrollLock-Bm9RxDoY.js} +2 -2
  477. package/dist/{useSafeScrollLock-xJBEvCQ7.js.map → useSafeScrollLock-Bm9RxDoY.js.map} +1 -1
  478. package/dist/{useSafeScrollLock-DJ1UsIFY.mjs → useSafeScrollLock-D62o8jto.mjs} +2 -2
  479. package/dist/{useSafeScrollLock-DJ1UsIFY.mjs.map → useSafeScrollLock-D62o8jto.mjs.map} +1 -1
  480. package/dist/{useShowHide-sLzwukNm.js → useShowHide-BTCaeU5j.js} +3 -3
  481. package/dist/useShowHide-BTCaeU5j.js.map +1 -0
  482. package/dist/{useShowHide-IPyuuPL0.mjs → useShowHide-yAK5dhPT.mjs} +3 -3
  483. package/dist/useShowHide-yAK5dhPT.mjs.map +1 -0
  484. package/dist/{useStateClass-0b-hPufa.js → useStateClass-CJ24hpkn.js} +1 -1
  485. package/dist/{useStateClass-0b-hPufa.js.map → useStateClass-CJ24hpkn.js.map} +1 -1
  486. package/dist/{useStateClass-DXbp5rFK.mjs → useStateClass-CdmlbrGn.mjs} +1 -1
  487. package/dist/{useStateClass-DXbp5rFK.mjs.map → useStateClass-CdmlbrGn.mjs.map} +1 -1
  488. package/dist/{utils-bUQM0PzD.js → utils-CaC78Zdk.js} +2 -2
  489. package/dist/{utils-bUQM0PzD.js.map → utils-CaC78Zdk.js.map} +1 -1
  490. package/dist/{utils-D_vdhVDP.mjs → utils-CgwCsk6U.mjs} +2 -2
  491. package/dist/{utils-D_vdhVDP.mjs.map → utils-CgwCsk6U.mjs.map} +1 -1
  492. package/package.json +1 -1
  493. package/src/components/BAutocomplete/_autocomplete.scss +136 -0
  494. package/src/components/BOtpInput/_otp-input.scss +29 -0
  495. package/src/styles/styles.scss +2 -0
  496. package/dist/BCarousel-DarHY6e7.mjs.map +0 -1
  497. package/dist/BCarousel-DvQKUvSp.js.map +0 -1
  498. package/dist/BDatePicker-CHtppbq6.js.map +0 -1
  499. package/dist/BDatePicker-CpwEikK3.mjs.map +0 -1
  500. package/dist/BDropdown-CkklXJE1.mjs.map +0 -1
  501. package/dist/BDropdown-g6_09NKU.js.map +0 -1
  502. package/dist/BFormTags-BUoQXBA9.js.map +0 -1
  503. package/dist/BFormTags-BjyHMiw1.mjs.map +0 -1
  504. package/dist/BInputGroup-DwrQVmGT.js.map +0 -1
  505. package/dist/BInputGroup-xno5tJWV.mjs.map +0 -1
  506. package/dist/BModal-CVf686JS.js.map +0 -1
  507. package/dist/BModal-DkX-2F1v.mjs.map +0 -1
  508. package/dist/BOffcanvas-CJDXvuCR.js.map +0 -1
  509. package/dist/BOffcanvas-CJUaqRuT.mjs.map +0 -1
  510. package/dist/BootstrapVueOptions-Bswes3nS.mjs.map +0 -1
  511. package/dist/BootstrapVueOptions-BxTxSFXn.js.map +0 -1
  512. package/dist/useDateField-BkbvpMB1.mjs.map +0 -1
  513. package/dist/useDateField-Ca0ZxYq9.js.map +0 -1
  514. package/dist/useFormSelect-8ZL7Dk3W.js +0 -92
  515. package/dist/useFormSelect-8ZL7Dk3W.js.map +0 -1
  516. package/dist/useFormSelect-BYhUZcK5.mjs +0 -80
  517. package/dist/useFormSelect-BYhUZcK5.mjs.map +0 -1
  518. package/dist/useShowHide-IPyuuPL0.mjs.map +0 -1
  519. package/dist/useShowHide-sLzwukNm.js.map +0 -1
@@ -1,12 +1,12 @@
1
1
  require("./chunk-CoQrYLCe.js");
2
- const require_dist = require("./dist-B_c893QG.js");
2
+ const require_dist = require("./dist-BJ15ThEs.js");
3
3
  const require_dom = require("./dom-Bs6DzM72.js");
4
4
  const require_useDefaults = require("./useDefaults-DsLf4iRY.js");
5
5
  const require_useId = require("./useId-DHrBgM7P.js");
6
- const require_useShowHide = require("./useShowHide-sLzwukNm.js");
6
+ const require_useShowHide = require("./useShowHide-BTCaeU5j.js");
7
7
  const require_ConditionalTeleport = require("./ConditionalTeleport-BJZk6HAx.js");
8
- const require_floating_ui_vue = require("./floating-ui.vue-CW2IKmom.js");
9
- const require_getElement = require("./getElement-BPm7tpe2.js");
8
+ const require_floating_ui_vue = require("./floating-ui.vue-GXIS2sFG.js");
9
+ const require_getElement = require("./getElement-CxWWOx3K.js");
10
10
  let vue = require("vue");
11
11
  //#region src/composables/useMouse.ts
12
12
  var useMouse = require_dist.createSharedComposable(require_dist.useMouse);
@@ -581,4 +581,4 @@ Object.defineProperty(exports, "unbind", {
581
581
  }
582
582
  });
583
583
 
584
- //# sourceMappingURL=floatingUi-syPgL0ve.js.map
584
+ //# sourceMappingURL=floatingUi-Cs4rDXmO.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"floatingUi-syPgL0ve.js","names":[],"sources":["../src/composables/useMouse.ts","../src/components/BPopover/BPopover.vue","../src/components/BPopover/BPopover.vue","../src/utils/floatingUi.ts"],"sourcesContent":["import {useMouse as _useMouse, createSharedComposable} from '@vueuse/core'\n\nexport const useMouse = createSharedComposable(_useMouse)\n","<template>\n <span :id=\"computedId + '_placeholder'\" ref=\"_placeholder\" style=\"display: none\" />\n <slot name=\"target\" v-bind=\"sharedSlots\" />\n <ConditionalTeleport\n :to=\"props.teleportTo\"\n :disabled=\"!props.teleportTo || props.teleportDisabled\"\n >\n <Transition\n v-if=\"renderRef || contentShowing\"\n v-bind=\"transitionProps\"\n :appear=\"modelValue || props.visible\"\n >\n <div\n v-show=\"showRef && !hidden\"\n :id=\"computedId\"\n v-bind=\"attrs\"\n ref=\"_element\"\n :class=\"computedClasses\"\n role=\"tooltip\"\n tabindex=\"-1\"\n :style=\"floatingStyles\"\n >\n <div\n ref=\"_arrow\"\n :class=\"`${props.tooltip ? 'tooltip' : 'popover'}-arrow`\"\n :style=\"arrowStyle\"\n data-popper-arrow\n />\n <div ref=\"_content\" class=\"overflow-auto b-floating-size\" :style=\"sizeStyles\">\n <template v-if=\"props.title || slots.title\">\n <div\n class=\"position-sticky top-0\"\n :class=\"[props.tooltip ? 'tooltip-inner' : 'popover-header', props.titleClass]\"\n >\n <slot name=\"title\" v-bind=\"sharedSlots\">\n {{ props.title }}\n </slot>\n </div>\n </template>\n <template v-if=\"(props.tooltip && !slots.title && !props.title) || !props.tooltip\">\n <div :class=\"[props.tooltip ? 'tooltip-inner' : 'popover-body', props.bodyClass]\">\n <slot v-bind=\"sharedSlots\">{{ props.body }}{{ attrs.content }}</slot>\n </div>\n </template>\n </div>\n </div>\n </Transition>\n </ConditionalTeleport>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n type Alignment,\n arrow as arrowMiddleware,\n autoPlacement,\n autoUpdate,\n type Boundary,\n flip,\n type Placement as FloatingPlacement,\n hide as hideMiddleware,\n inline as inlineMiddleware,\n type Middleware,\n offset as offsetMiddleware,\n type ReferenceElement,\n type RootBoundary,\n shift,\n size as sizeMiddleware,\n useFloating,\n} from '@floating-ui/vue'\nimport {onClickOutside, useToNumber} from '@vueuse/core'\nimport {\n computed,\n type ComputedRef,\n type CSSProperties,\n type EmitFn,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n toRef,\n toValue,\n useAttrs,\n useTemplateRef,\n watch,\n} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useMouse} from '../../composables/useMouse'\nimport {useId} from '../../composables/useId'\nimport type {BPopoverSlots, ShowHideSlotsData, BPopoverProps, BPopoverEmits} from '../../types'\nimport {isBoundary, isRootBoundary, resolveBootstrapPlacement} from '../../utils/floatingUi'\nimport {getElement} from '../../utils/getElement'\nimport ConditionalTeleport from '../ConditionalTeleport.vue'\nimport {useShowHide} from '../../composables/useShowHide'\nimport {getSafeDocument, getSafeWindow} from '../../utils/dom'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BPopoverProps, 'modelValue'>>(), {\n boundary: 'clippingAncestors',\n boundaryPadding: undefined,\n bodyClass: undefined,\n click: undefined,\n closeOnHide: false,\n focus: undefined,\n hover: undefined,\n teleportTo: undefined,\n teleportDisabled: false,\n body: undefined,\n delay: () => ({show: 100, hide: 300}),\n floatingMiddleware: undefined,\n hideMargin: 2,\n id: undefined,\n initialAnimation: false,\n inline: false,\n lazy: false,\n manual: false,\n noAutoClose: false,\n noFade: false,\n noFlip: false,\n noHide: false,\n noShift: false,\n noSize: false,\n noninteractive: false,\n offset: null,\n unmountLazy: false,\n placement: 'top',\n realtime: false,\n reference: null,\n strategy: 'absolute',\n target: null,\n title: undefined,\n titleClass: undefined,\n show: false,\n tooltip: false,\n visible: false,\n})\nconst props = useDefaults(_props, 'BPopover')\nconst emit = defineEmits<BPopoverEmits>()\nconst slots = defineSlots<BPopoverSlots>()\nconst attrs = useAttrs()\n\nconst modelValue = defineModel<Exclude<BPopoverProps['modelValue'], undefined>>({\n default: false,\n})\n\nconst computedId = useId(() => props.id, 'popover')\n\nconst hidden = ref(false)\n\nconst floatingElement = useTemplateRef('_element')\nconst content = useTemplateRef('_content')\nconst arrow = useTemplateRef('_arrow')\nconst placeholder = useTemplateRef('_placeholder')\n\nconst referenceElement = ref<HTMLElement | null>(null)\nconst triggerElement = ref<HTMLElement | null>(null)\n\nconst isAutoPlacement = computed(() => props.placement.startsWith('auto'))\nconst offsetNumber = useToNumber(() => props.offset ?? Number.NaN)\n\nconst boundary = computed<Boundary | undefined>(() =>\n isBoundary(props.boundary) ? props.boundary : undefined\n)\nconst rootBoundary = computed<RootBoundary | undefined>(() =>\n isRootBoundary(props.boundary) ? props.boundary : undefined\n)\n\nconst sizeStyles = ref<CSSProperties>({})\nconst floatingMiddleware = computed<readonly Middleware[]>(() => {\n if (props.floatingMiddleware !== undefined) {\n return props.floatingMiddleware\n }\n const off = props.offset !== null ? offsetNumber.value : props.tooltip ? 6 : 8\n const arr: Middleware[] = [offsetMiddleware(off)]\n if (props.noFlip === false && !isAutoPlacement.value) {\n arr.push(\n flip({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (isAutoPlacement.value) {\n arr.push(\n autoPlacement({\n alignment: (props.placement.split('-')[1] as Alignment) || undefined,\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.noShift === false) {\n arr.push(\n shift({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.noHide === false) {\n arr.push(\n hideMiddleware({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.inline === true) {\n arr.push(inlineMiddleware())\n }\n arr.push(arrowMiddleware({element: arrow, padding: 10}))\n if (props.noSize === false) {\n arr.push(\n sizeMiddleware({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n apply({availableWidth, availableHeight}) {\n sizeStyles.value = {\n '--bv-floating-max-height':\n availableHeight >= (content.value?.scrollHeight ?? 0)\n ? undefined\n : availableHeight\n ? `${Math.max(0, availableHeight)}px`\n : undefined,\n '--bv-floating-max-width':\n availableWidth >= (content.value?.scrollWidth ?? 0)\n ? undefined\n : availableWidth\n ? `${Math.max(0, availableWidth)}px`\n : undefined,\n }\n },\n })\n )\n }\n return arr\n})\n\nconst placementRef = computed(() =>\n isAutoPlacement.value ? undefined : (props.placement as FloatingPlacement)\n)\n\nconst {floatingStyles, middlewareData, placement, update} = useFloating(\n referenceElement,\n floatingElement,\n {\n placement: placementRef,\n middleware: floatingMiddleware as ComputedRef<Middleware[]>,\n strategy: toRef(() => props.strategy),\n }\n)\n\nconst arrowStyle = ref<CSSProperties>({position: 'absolute'})\n\nlet cleanup: ReturnType<typeof autoUpdate> | undefined\nconst {\n showRef,\n hide,\n show,\n toggle,\n throttleHide,\n computedNoAnimation,\n transitionProps,\n contentShowing,\n isVisible,\n isActive,\n renderRef,\n localTemporaryHide,\n setLocalTemporaryHide,\n} = useShowHide(modelValue, props, emit as EmitFn, floatingElement, computedId, {\n showFn: () => {\n update()\n nextTick(() => {\n cleanup = autoUpdate(\n referenceElement.value as ReferenceElement,\n floatingElement.value as HTMLElement,\n update,\n {animationFrame: props.realtime}\n )\n })\n },\n hideFn: () => {\n if (cleanup) {\n cleanup()\n cleanup = undefined\n }\n },\n})\n\nwatch(middlewareData, (newValue) => {\n if (props.noHide === false) {\n if (newValue.hide?.referenceHidden && !hidden.value && showRef.value) {\n if (props.closeOnHide && !props.noAutoClose && !props.manual) {\n throttleHide('close-on-hide')\n } else {\n setLocalTemporaryHide(true)\n hidden.value = true\n }\n } else if (localTemporaryHide.value && !newValue.hide?.referenceHidden) {\n setLocalTemporaryHide(false)\n hidden.value = false\n }\n }\n if (newValue.arrow) {\n const {x, y} = newValue.arrow\n arrowStyle.value = {\n position: 'absolute',\n top: y ? `${y}px` : '',\n left: x ? `${x}px` : '',\n }\n }\n})\n\nconst computedClasses = computed(() => {\n const type = props.tooltip ? 'tooltip' : 'popover'\n return [\n type,\n `b-${type}`,\n {\n show: isVisible.value && !hidden.value,\n fade: !computedNoAnimation.value,\n [`bs-${type}-${resolveBootstrapPlacement(placement.value)}`]: placement.value !== undefined,\n },\n ]\n})\n\nconst {x, y} = useMouse()\n\nconst isElementAndTriggerOutside = () => {\n const triggerRect = triggerElement.value?.getBoundingClientRect()\n const elementRect = floatingElement.value?.getBoundingClientRect()\n const margin = Number.parseInt(props.hideMargin as unknown as string, 10) || 0\n const offsetX = getSafeWindow()?.scrollX || 0\n const offsetY = getSafeWindow()?.scrollY || 0\n const triggerIsOutside =\n !triggerRect ||\n x.value < triggerRect.left + offsetX - margin ||\n x.value > triggerRect.right + offsetX + margin ||\n y.value < triggerRect.top + offsetY - margin ||\n y.value > triggerRect.bottom + offsetY + margin\n\n const isOutside =\n !elementRect ||\n x.value < elementRect.left + offsetX - margin ||\n x.value > elementRect.right + offsetX + margin ||\n y.value < elementRect.top + offsetY - margin ||\n y.value > elementRect.bottom + offsetY + margin\n\n return {triggerIsOutside, isOutside}\n}\n\nlet looptimeout: ReturnType<typeof setTimeout> | undefined\nconst tryHide = (e?: Readonly<Event>) => {\n const {triggerIsOutside, isOutside} = isElementAndTriggerOutside()\n const doc = getSafeDocument()\n if (\n (!props.noninteractive &&\n isOutside &&\n triggerIsOutside &&\n doc &&\n !floatingElement.value?.contains(doc.activeElement) &&\n (!computedTriggers.value.focus || !triggerElement.value?.contains(doc.activeElement))) ||\n (props.noninteractive && triggerIsOutside)\n ) {\n hide(e?.type)\n } else {\n if (looptimeout) clearTimeout(looptimeout)\n looptimeout = setTimeout(() => {\n tryHide(e)\n }, 50)\n }\n}\n\nwatch(isVisible, () => {\n update()\n})\n\ndefineExpose({\n hide,\n show,\n toggle,\n})\n\nconst localToggle = (e: Event) => {\n if (showRef.value) {\n hide(e.type === 'click' ? 'click' : 'toggle')\n } else {\n show()\n }\n}\n\nconst localShow = () => {\n show()\n}\n\n// Compute final trigger configuration\nconst computedTriggers = computed(() => {\n // Manual mode disables all automatic triggers\n if (props.manual) {\n return {hover: false, focus: false, click: false}\n }\n\n // If explicit boolean props are set, use them\n if (props.hover !== undefined || props.focus !== undefined || props.click !== undefined) {\n return {\n hover: props.hover ?? false,\n focus: props.focus ?? false,\n click: props.click ?? false,\n }\n }\n\n // If no explicit props, use default behavior: hover + focus\n return {hover: true, focus: true, click: false}\n})\n\nconst bind = () => {\n // TODO: is this the best way to bind the events?\n // we place a span and get the next element sibling for the listeners\n if (props.target) {\n const elem = getElement(toValue(props.target))\n if (elem) {\n triggerElement.value = elem\n } else {\n console.warn('Target element not found', props.target)\n }\n } else {\n triggerElement.value = placeholder.value?.nextElementSibling as HTMLElement\n }\n if (props.reference) {\n const elem = getElement(toValue(props.reference))\n if (elem) {\n referenceElement.value = elem\n } else {\n console.warn('Reference element not found', props.reference)\n }\n } else {\n referenceElement.value = triggerElement.value\n }\n if (!triggerElement.value || props.manual) {\n return\n }\n\n const triggers = computedTriggers.value\n\n if (triggers.click) {\n triggerElement.value.addEventListener('click', localToggle)\n }\n\n if (triggers.hover) {\n triggerElement.value.addEventListener('pointerenter', localShow)\n triggerElement.value.addEventListener('pointerleave', tryHide)\n }\n\n if (triggers.focus) {\n triggerElement.value.addEventListener('focus', localShow)\n triggerElement.value.addEventListener('blur', tryHide)\n }\n}\n\nconst unbind = () => {\n if (triggerElement.value) {\n triggerElement.value.removeEventListener('click', localToggle)\n triggerElement.value.removeEventListener('pointerenter', localShow)\n triggerElement.value.removeEventListener('pointerleave', tryHide)\n triggerElement.value.removeEventListener('focus', localShow)\n triggerElement.value.removeEventListener('blur', tryHide)\n }\n}\n\nonClickOutside(\n floatingElement,\n () => {\n if (showRef.value && computedTriggers.value.click && !props.noAutoClose && !props.manual)\n hide('click-outside')\n },\n {ignore: [triggerElement]}\n)\n\nwatch(\n [\n () => props.click,\n () => props.hover,\n () => props.focus,\n () => props.manual,\n () => props.target,\n () => props.reference,\n ],\n () => {\n unbind()\n bind()\n // update()\n }\n)\n\nconst sharedSlots = computed<ShowHideSlotsData>(() => ({\n toggle,\n show,\n hide,\n id: computedId.value,\n visible: isVisible.value,\n active: isActive.value,\n}))\n\nonMounted(() => {\n bind()\n nextTick(() => {\n update()\n })\n})\n\nonBeforeUnmount(unbind)\n</script>\n","<template>\n <span :id=\"computedId + '_placeholder'\" ref=\"_placeholder\" style=\"display: none\" />\n <slot name=\"target\" v-bind=\"sharedSlots\" />\n <ConditionalTeleport\n :to=\"props.teleportTo\"\n :disabled=\"!props.teleportTo || props.teleportDisabled\"\n >\n <Transition\n v-if=\"renderRef || contentShowing\"\n v-bind=\"transitionProps\"\n :appear=\"modelValue || props.visible\"\n >\n <div\n v-show=\"showRef && !hidden\"\n :id=\"computedId\"\n v-bind=\"attrs\"\n ref=\"_element\"\n :class=\"computedClasses\"\n role=\"tooltip\"\n tabindex=\"-1\"\n :style=\"floatingStyles\"\n >\n <div\n ref=\"_arrow\"\n :class=\"`${props.tooltip ? 'tooltip' : 'popover'}-arrow`\"\n :style=\"arrowStyle\"\n data-popper-arrow\n />\n <div ref=\"_content\" class=\"overflow-auto b-floating-size\" :style=\"sizeStyles\">\n <template v-if=\"props.title || slots.title\">\n <div\n class=\"position-sticky top-0\"\n :class=\"[props.tooltip ? 'tooltip-inner' : 'popover-header', props.titleClass]\"\n >\n <slot name=\"title\" v-bind=\"sharedSlots\">\n {{ props.title }}\n </slot>\n </div>\n </template>\n <template v-if=\"(props.tooltip && !slots.title && !props.title) || !props.tooltip\">\n <div :class=\"[props.tooltip ? 'tooltip-inner' : 'popover-body', props.bodyClass]\">\n <slot v-bind=\"sharedSlots\">{{ props.body }}{{ attrs.content }}</slot>\n </div>\n </template>\n </div>\n </div>\n </Transition>\n </ConditionalTeleport>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n type Alignment,\n arrow as arrowMiddleware,\n autoPlacement,\n autoUpdate,\n type Boundary,\n flip,\n type Placement as FloatingPlacement,\n hide as hideMiddleware,\n inline as inlineMiddleware,\n type Middleware,\n offset as offsetMiddleware,\n type ReferenceElement,\n type RootBoundary,\n shift,\n size as sizeMiddleware,\n useFloating,\n} from '@floating-ui/vue'\nimport {onClickOutside, useToNumber} from '@vueuse/core'\nimport {\n computed,\n type ComputedRef,\n type CSSProperties,\n type EmitFn,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n toRef,\n toValue,\n useAttrs,\n useTemplateRef,\n watch,\n} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useMouse} from '../../composables/useMouse'\nimport {useId} from '../../composables/useId'\nimport type {BPopoverSlots, ShowHideSlotsData, BPopoverProps, BPopoverEmits} from '../../types'\nimport {isBoundary, isRootBoundary, resolveBootstrapPlacement} from '../../utils/floatingUi'\nimport {getElement} from '../../utils/getElement'\nimport ConditionalTeleport from '../ConditionalTeleport.vue'\nimport {useShowHide} from '../../composables/useShowHide'\nimport {getSafeDocument, getSafeWindow} from '../../utils/dom'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BPopoverProps, 'modelValue'>>(), {\n boundary: 'clippingAncestors',\n boundaryPadding: undefined,\n bodyClass: undefined,\n click: undefined,\n closeOnHide: false,\n focus: undefined,\n hover: undefined,\n teleportTo: undefined,\n teleportDisabled: false,\n body: undefined,\n delay: () => ({show: 100, hide: 300}),\n floatingMiddleware: undefined,\n hideMargin: 2,\n id: undefined,\n initialAnimation: false,\n inline: false,\n lazy: false,\n manual: false,\n noAutoClose: false,\n noFade: false,\n noFlip: false,\n noHide: false,\n noShift: false,\n noSize: false,\n noninteractive: false,\n offset: null,\n unmountLazy: false,\n placement: 'top',\n realtime: false,\n reference: null,\n strategy: 'absolute',\n target: null,\n title: undefined,\n titleClass: undefined,\n show: false,\n tooltip: false,\n visible: false,\n})\nconst props = useDefaults(_props, 'BPopover')\nconst emit = defineEmits<BPopoverEmits>()\nconst slots = defineSlots<BPopoverSlots>()\nconst attrs = useAttrs()\n\nconst modelValue = defineModel<Exclude<BPopoverProps['modelValue'], undefined>>({\n default: false,\n})\n\nconst computedId = useId(() => props.id, 'popover')\n\nconst hidden = ref(false)\n\nconst floatingElement = useTemplateRef('_element')\nconst content = useTemplateRef('_content')\nconst arrow = useTemplateRef('_arrow')\nconst placeholder = useTemplateRef('_placeholder')\n\nconst referenceElement = ref<HTMLElement | null>(null)\nconst triggerElement = ref<HTMLElement | null>(null)\n\nconst isAutoPlacement = computed(() => props.placement.startsWith('auto'))\nconst offsetNumber = useToNumber(() => props.offset ?? Number.NaN)\n\nconst boundary = computed<Boundary | undefined>(() =>\n isBoundary(props.boundary) ? props.boundary : undefined\n)\nconst rootBoundary = computed<RootBoundary | undefined>(() =>\n isRootBoundary(props.boundary) ? props.boundary : undefined\n)\n\nconst sizeStyles = ref<CSSProperties>({})\nconst floatingMiddleware = computed<readonly Middleware[]>(() => {\n if (props.floatingMiddleware !== undefined) {\n return props.floatingMiddleware\n }\n const off = props.offset !== null ? offsetNumber.value : props.tooltip ? 6 : 8\n const arr: Middleware[] = [offsetMiddleware(off)]\n if (props.noFlip === false && !isAutoPlacement.value) {\n arr.push(\n flip({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (isAutoPlacement.value) {\n arr.push(\n autoPlacement({\n alignment: (props.placement.split('-')[1] as Alignment) || undefined,\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.noShift === false) {\n arr.push(\n shift({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.noHide === false) {\n arr.push(\n hideMiddleware({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.inline === true) {\n arr.push(inlineMiddleware())\n }\n arr.push(arrowMiddleware({element: arrow, padding: 10}))\n if (props.noSize === false) {\n arr.push(\n sizeMiddleware({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n apply({availableWidth, availableHeight}) {\n sizeStyles.value = {\n '--bv-floating-max-height':\n availableHeight >= (content.value?.scrollHeight ?? 0)\n ? undefined\n : availableHeight\n ? `${Math.max(0, availableHeight)}px`\n : undefined,\n '--bv-floating-max-width':\n availableWidth >= (content.value?.scrollWidth ?? 0)\n ? undefined\n : availableWidth\n ? `${Math.max(0, availableWidth)}px`\n : undefined,\n }\n },\n })\n )\n }\n return arr\n})\n\nconst placementRef = computed(() =>\n isAutoPlacement.value ? undefined : (props.placement as FloatingPlacement)\n)\n\nconst {floatingStyles, middlewareData, placement, update} = useFloating(\n referenceElement,\n floatingElement,\n {\n placement: placementRef,\n middleware: floatingMiddleware as ComputedRef<Middleware[]>,\n strategy: toRef(() => props.strategy),\n }\n)\n\nconst arrowStyle = ref<CSSProperties>({position: 'absolute'})\n\nlet cleanup: ReturnType<typeof autoUpdate> | undefined\nconst {\n showRef,\n hide,\n show,\n toggle,\n throttleHide,\n computedNoAnimation,\n transitionProps,\n contentShowing,\n isVisible,\n isActive,\n renderRef,\n localTemporaryHide,\n setLocalTemporaryHide,\n} = useShowHide(modelValue, props, emit as EmitFn, floatingElement, computedId, {\n showFn: () => {\n update()\n nextTick(() => {\n cleanup = autoUpdate(\n referenceElement.value as ReferenceElement,\n floatingElement.value as HTMLElement,\n update,\n {animationFrame: props.realtime}\n )\n })\n },\n hideFn: () => {\n if (cleanup) {\n cleanup()\n cleanup = undefined\n }\n },\n})\n\nwatch(middlewareData, (newValue) => {\n if (props.noHide === false) {\n if (newValue.hide?.referenceHidden && !hidden.value && showRef.value) {\n if (props.closeOnHide && !props.noAutoClose && !props.manual) {\n throttleHide('close-on-hide')\n } else {\n setLocalTemporaryHide(true)\n hidden.value = true\n }\n } else if (localTemporaryHide.value && !newValue.hide?.referenceHidden) {\n setLocalTemporaryHide(false)\n hidden.value = false\n }\n }\n if (newValue.arrow) {\n const {x, y} = newValue.arrow\n arrowStyle.value = {\n position: 'absolute',\n top: y ? `${y}px` : '',\n left: x ? `${x}px` : '',\n }\n }\n})\n\nconst computedClasses = computed(() => {\n const type = props.tooltip ? 'tooltip' : 'popover'\n return [\n type,\n `b-${type}`,\n {\n show: isVisible.value && !hidden.value,\n fade: !computedNoAnimation.value,\n [`bs-${type}-${resolveBootstrapPlacement(placement.value)}`]: placement.value !== undefined,\n },\n ]\n})\n\nconst {x, y} = useMouse()\n\nconst isElementAndTriggerOutside = () => {\n const triggerRect = triggerElement.value?.getBoundingClientRect()\n const elementRect = floatingElement.value?.getBoundingClientRect()\n const margin = Number.parseInt(props.hideMargin as unknown as string, 10) || 0\n const offsetX = getSafeWindow()?.scrollX || 0\n const offsetY = getSafeWindow()?.scrollY || 0\n const triggerIsOutside =\n !triggerRect ||\n x.value < triggerRect.left + offsetX - margin ||\n x.value > triggerRect.right + offsetX + margin ||\n y.value < triggerRect.top + offsetY - margin ||\n y.value > triggerRect.bottom + offsetY + margin\n\n const isOutside =\n !elementRect ||\n x.value < elementRect.left + offsetX - margin ||\n x.value > elementRect.right + offsetX + margin ||\n y.value < elementRect.top + offsetY - margin ||\n y.value > elementRect.bottom + offsetY + margin\n\n return {triggerIsOutside, isOutside}\n}\n\nlet looptimeout: ReturnType<typeof setTimeout> | undefined\nconst tryHide = (e?: Readonly<Event>) => {\n const {triggerIsOutside, isOutside} = isElementAndTriggerOutside()\n const doc = getSafeDocument()\n if (\n (!props.noninteractive &&\n isOutside &&\n triggerIsOutside &&\n doc &&\n !floatingElement.value?.contains(doc.activeElement) &&\n (!computedTriggers.value.focus || !triggerElement.value?.contains(doc.activeElement))) ||\n (props.noninteractive && triggerIsOutside)\n ) {\n hide(e?.type)\n } else {\n if (looptimeout) clearTimeout(looptimeout)\n looptimeout = setTimeout(() => {\n tryHide(e)\n }, 50)\n }\n}\n\nwatch(isVisible, () => {\n update()\n})\n\ndefineExpose({\n hide,\n show,\n toggle,\n})\n\nconst localToggle = (e: Event) => {\n if (showRef.value) {\n hide(e.type === 'click' ? 'click' : 'toggle')\n } else {\n show()\n }\n}\n\nconst localShow = () => {\n show()\n}\n\n// Compute final trigger configuration\nconst computedTriggers = computed(() => {\n // Manual mode disables all automatic triggers\n if (props.manual) {\n return {hover: false, focus: false, click: false}\n }\n\n // If explicit boolean props are set, use them\n if (props.hover !== undefined || props.focus !== undefined || props.click !== undefined) {\n return {\n hover: props.hover ?? false,\n focus: props.focus ?? false,\n click: props.click ?? false,\n }\n }\n\n // If no explicit props, use default behavior: hover + focus\n return {hover: true, focus: true, click: false}\n})\n\nconst bind = () => {\n // TODO: is this the best way to bind the events?\n // we place a span and get the next element sibling for the listeners\n if (props.target) {\n const elem = getElement(toValue(props.target))\n if (elem) {\n triggerElement.value = elem\n } else {\n console.warn('Target element not found', props.target)\n }\n } else {\n triggerElement.value = placeholder.value?.nextElementSibling as HTMLElement\n }\n if (props.reference) {\n const elem = getElement(toValue(props.reference))\n if (elem) {\n referenceElement.value = elem\n } else {\n console.warn('Reference element not found', props.reference)\n }\n } else {\n referenceElement.value = triggerElement.value\n }\n if (!triggerElement.value || props.manual) {\n return\n }\n\n const triggers = computedTriggers.value\n\n if (triggers.click) {\n triggerElement.value.addEventListener('click', localToggle)\n }\n\n if (triggers.hover) {\n triggerElement.value.addEventListener('pointerenter', localShow)\n triggerElement.value.addEventListener('pointerleave', tryHide)\n }\n\n if (triggers.focus) {\n triggerElement.value.addEventListener('focus', localShow)\n triggerElement.value.addEventListener('blur', tryHide)\n }\n}\n\nconst unbind = () => {\n if (triggerElement.value) {\n triggerElement.value.removeEventListener('click', localToggle)\n triggerElement.value.removeEventListener('pointerenter', localShow)\n triggerElement.value.removeEventListener('pointerleave', tryHide)\n triggerElement.value.removeEventListener('focus', localShow)\n triggerElement.value.removeEventListener('blur', tryHide)\n }\n}\n\nonClickOutside(\n floatingElement,\n () => {\n if (showRef.value && computedTriggers.value.click && !props.noAutoClose && !props.manual)\n hide('click-outside')\n },\n {ignore: [triggerElement]}\n)\n\nwatch(\n [\n () => props.click,\n () => props.hover,\n () => props.focus,\n () => props.manual,\n () => props.target,\n () => props.reference,\n ],\n () => {\n unbind()\n bind()\n // update()\n }\n)\n\nconst sharedSlots = computed<ShowHideSlotsData>(() => ({\n toggle,\n show,\n hide,\n id: computedId.value,\n visible: isVisible.value,\n active: isActive.value,\n}))\n\nonMounted(() => {\n bind()\n nextTick(() => {\n update()\n })\n})\n\nonBeforeUnmount(unbind)\n</script>\n","import type {Boundary, Placement, RootBoundary} from '@floating-ui/vue'\nexport {autoUpdate} from '@floating-ui/vue'\n\nimport {type DirectiveBinding, h, render} from 'vue'\nimport BPopover from '../components/BPopover/BPopover.vue'\nimport type {BPopoverProps} from '../types'\nimport {getSafeDocument} from './dom'\n\nexport const resolveBootstrapPlacement = (placement: Placement): string => {\n const [_placement] = placement.split('-')\n switch (_placement) {\n case 'left':\n return 'start'\n case 'right':\n return 'end'\n default:\n return _placement || 'start'\n }\n}\nexport const resolveBootstrapCaret = (placement: Placement): string => {\n const [_placement] = placement.split('-')\n switch (_placement) {\n case 'left':\n return 'start'\n case 'right':\n return 'end'\n case 'top':\n return 'up'\n case 'bottom':\n return 'down'\n default:\n return _placement || 'start'\n }\n}\n\nexport const resolveActiveStatus = (values: DirectiveBinding['value']): boolean =>\n typeof values !== 'object' || values.active !== false\n\nexport const resolveContent = (\n values: DirectiveBinding['value'],\n el: HTMLElement\n): {title?: string; body?: string} => {\n const isActive = resolveActiveStatus(values)\n if (!isActive) return {}\n\n const missingBindingValue =\n typeof values === 'undefined' ||\n (typeof values === 'object' && !values.title && !values.content && !values.body)\n\n // SSR guard: skip DOM attribute access on server\n const doc = getSafeDocument()\n if (doc !== null) {\n const titleAttr = el.getAttribute('title') || el.getAttribute('data-original-title')\n\n // Always remove title attribute to prevent native tooltip conflicts\n if (titleAttr) {\n el.removeAttribute('title')\n el.setAttribute('data-original-title', titleAttr)\n }\n\n if (missingBindingValue) {\n if (titleAttr) {\n return {\n body: titleAttr,\n }\n }\n return {}\n }\n\n // For string directive values, use title attribute as popover title\n if (typeof values === 'string') {\n return {\n title: titleAttr || undefined,\n body: values,\n }\n }\n } else {\n // SSR: if no binding value provided, return empty\n if (missingBindingValue) return {}\n }\n\n if (typeof values === 'string') {\n return {\n body: values,\n }\n }\n\n // TODO: deprication remove warning in 2025-07\n if (values?.content)\n console.warn('v-b-popover/v-b-tooltip: `content` is deprecated, use `body` instead')\n\n return {\n title: values?.title ? values?.title : undefined,\n body: values?.body ? values?.body : values?.content ? values?.content : undefined,\n }\n}\n\nexport const resolveDirectiveProps = (\n binding: Readonly<DirectiveBinding>,\n el: Readonly<HTMLElement>\n) => ({\n target: el,\n modelValue: binding.modifiers.show,\n inline: binding.modifiers.inline,\n click: binding.modifiers.click,\n hover: binding.modifiers.hover,\n focus: binding.modifiers.focus,\n manual: binding.modifiers.manual,\n realtime: binding.modifiers.realtime,\n lazy: binding.modifiers.lazy,\n placement: binding.modifiers.left\n ? 'left'\n : binding.modifiers.right\n ? 'right'\n : binding.modifiers.bottom\n ? 'bottom'\n : binding.modifiers.top\n ? 'top'\n : undefined,\n ...(typeof binding.value === 'object' ? binding.value : undefined),\n ...(binding.modifiers.interactive ? {noninteractive: false} : undefined),\n title: null,\n body: null,\n})\n\nexport interface ElementWithPopper extends HTMLElement {\n [key: string]: unknown\n $__element?: HTMLElement\n $__tooltip?: Record<\n number,\n {\n binding: string\n destroying: boolean\n }\n >\n $__popover?: Record<\n number,\n {\n binding: string\n destroying: boolean\n }\n >\n}\n\nexport const bind = (\n el: ElementWithPopper,\n binding: Readonly<DirectiveBinding>,\n props: BPopoverProps\n) => {\n const doc = getSafeDocument()\n // SSR guard: skip DOM manipulation on server\n if (doc === null) return\n\n const div = doc.createElement('span')\n if (binding.modifiers.body) doc.body.appendChild(div)\n else if (binding.modifiers.child) el.appendChild(div)\n else el.parentNode?.insertBefore(div, el.nextSibling)\n render(h(BPopover, props), div)\n el.$__element = div\n}\n\nexport const unbind = (el: ElementWithPopper) => {\n const div = el.$__element\n if (!div) return\n\n // Unmount Vue component immediately\n render(null, div)\n\n // SSR guard: skip DOM cleanup on server\n if (getSafeDocument() !== null) {\n delete el.$__element\n return\n }\n\n // Use microtask instead of setTimeout(0) for more predictable cleanup\n // and better performance\n queueMicrotask(() => {\n // Remove the element in next microtask\n // The directive's beforeUnmount will have already cleaned up UID-specific state\n div.remove()\n // Only delete the reference if it still points to the div we just unmounted\n // This prevents deleting a fresh reference if bind() was called again immediately\n if (el.$__element === div) {\n delete el.$__element\n }\n })\n}\n\nexport const isBoundary = (input: unknown): input is Boundary =>\n input === 'clippingAncestors' || input instanceof Element || Array.isArray(input)\n\nexport const isRootBoundary = (input: Boundary | RootBoundary): input is RootBoundary =>\n !isBoundary(input)\n"],"mappings":"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"}
1
+ {"version":3,"file":"floatingUi-Cs4rDXmO.js","names":[],"sources":["../src/composables/useMouse.ts","../src/components/BPopover/BPopover.vue","../src/components/BPopover/BPopover.vue","../src/utils/floatingUi.ts"],"sourcesContent":["import {useMouse as _useMouse, createSharedComposable} from '@vueuse/core'\n\nexport const useMouse = createSharedComposable(_useMouse)\n","<template>\n <span :id=\"computedId + '_placeholder'\" ref=\"_placeholder\" style=\"display: none\" />\n <slot name=\"target\" v-bind=\"sharedSlots\" />\n <ConditionalTeleport\n :to=\"props.teleportTo\"\n :disabled=\"!props.teleportTo || props.teleportDisabled\"\n >\n <Transition\n v-if=\"renderRef || contentShowing\"\n v-bind=\"transitionProps\"\n :appear=\"modelValue || props.visible\"\n >\n <div\n v-show=\"showRef && !hidden\"\n :id=\"computedId\"\n v-bind=\"attrs\"\n ref=\"_element\"\n :class=\"computedClasses\"\n role=\"tooltip\"\n tabindex=\"-1\"\n :style=\"floatingStyles\"\n >\n <div\n ref=\"_arrow\"\n :class=\"`${props.tooltip ? 'tooltip' : 'popover'}-arrow`\"\n :style=\"arrowStyle\"\n data-popper-arrow\n />\n <div ref=\"_content\" class=\"overflow-auto b-floating-size\" :style=\"sizeStyles\">\n <template v-if=\"props.title || slots.title\">\n <div\n class=\"position-sticky top-0\"\n :class=\"[props.tooltip ? 'tooltip-inner' : 'popover-header', props.titleClass]\"\n >\n <slot name=\"title\" v-bind=\"sharedSlots\">\n {{ props.title }}\n </slot>\n </div>\n </template>\n <template v-if=\"(props.tooltip && !slots.title && !props.title) || !props.tooltip\">\n <div :class=\"[props.tooltip ? 'tooltip-inner' : 'popover-body', props.bodyClass]\">\n <slot v-bind=\"sharedSlots\">{{ props.body }}{{ attrs.content }}</slot>\n </div>\n </template>\n </div>\n </div>\n </Transition>\n </ConditionalTeleport>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n type Alignment,\n arrow as arrowMiddleware,\n autoPlacement,\n autoUpdate,\n type Boundary,\n flip,\n type Placement as FloatingPlacement,\n hide as hideMiddleware,\n inline as inlineMiddleware,\n type Middleware,\n offset as offsetMiddleware,\n type ReferenceElement,\n type RootBoundary,\n shift,\n size as sizeMiddleware,\n useFloating,\n} from '@floating-ui/vue'\nimport {onClickOutside, useToNumber} from '@vueuse/core'\nimport {\n computed,\n type ComputedRef,\n type CSSProperties,\n type EmitFn,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n toRef,\n toValue,\n useAttrs,\n useTemplateRef,\n watch,\n} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useMouse} from '../../composables/useMouse'\nimport {useId} from '../../composables/useId'\nimport type {BPopoverSlots, ShowHideSlotsData, BPopoverProps, BPopoverEmits} from '../../types'\nimport {isBoundary, isRootBoundary, resolveBootstrapPlacement} from '../../utils/floatingUi'\nimport {getElement} from '../../utils/getElement'\nimport ConditionalTeleport from '../ConditionalTeleport.vue'\nimport {useShowHide} from '../../composables/useShowHide'\nimport {getSafeDocument, getSafeWindow} from '../../utils/dom'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BPopoverProps, 'modelValue'>>(), {\n boundary: 'clippingAncestors',\n boundaryPadding: undefined,\n bodyClass: undefined,\n click: undefined,\n closeOnHide: false,\n focus: undefined,\n hover: undefined,\n teleportTo: undefined,\n teleportDisabled: false,\n body: undefined,\n delay: () => ({show: 100, hide: 300}),\n floatingMiddleware: undefined,\n hideMargin: 2,\n id: undefined,\n initialAnimation: false,\n inline: false,\n lazy: false,\n manual: false,\n noAutoClose: false,\n noFade: false,\n noFlip: false,\n noHide: false,\n noShift: false,\n noSize: false,\n noninteractive: false,\n offset: null,\n unmountLazy: false,\n placement: 'top',\n realtime: false,\n reference: null,\n strategy: 'absolute',\n target: null,\n title: undefined,\n titleClass: undefined,\n show: false,\n tooltip: false,\n visible: false,\n})\nconst props = useDefaults(_props, 'BPopover')\nconst emit = defineEmits<BPopoverEmits>()\nconst slots = defineSlots<BPopoverSlots>()\nconst attrs = useAttrs()\n\nconst modelValue = defineModel<Exclude<BPopoverProps['modelValue'], undefined>>({\n default: false,\n})\n\nconst computedId = useId(() => props.id, 'popover')\n\nconst hidden = ref(false)\n\nconst floatingElement = useTemplateRef('_element')\nconst content = useTemplateRef('_content')\nconst arrow = useTemplateRef('_arrow')\nconst placeholder = useTemplateRef('_placeholder')\n\nconst referenceElement = ref<HTMLElement | null>(null)\nconst triggerElement = ref<HTMLElement | null>(null)\n\nconst isAutoPlacement = computed(() => props.placement.startsWith('auto'))\nconst offsetNumber = useToNumber(() => props.offset ?? Number.NaN)\n\nconst boundary = computed<Boundary | undefined>(() =>\n isBoundary(props.boundary) ? props.boundary : undefined\n)\nconst rootBoundary = computed<RootBoundary | undefined>(() =>\n isRootBoundary(props.boundary) ? props.boundary : undefined\n)\n\nconst sizeStyles = ref<CSSProperties>({})\nconst floatingMiddleware = computed<readonly Middleware[]>(() => {\n if (props.floatingMiddleware !== undefined) {\n return props.floatingMiddleware\n }\n const off = props.offset !== null ? offsetNumber.value : props.tooltip ? 6 : 8\n const arr: Middleware[] = [offsetMiddleware(off)]\n if (props.noFlip === false && !isAutoPlacement.value) {\n arr.push(\n flip({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (isAutoPlacement.value) {\n arr.push(\n autoPlacement({\n alignment: (props.placement.split('-')[1] as Alignment) || undefined,\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.noShift === false) {\n arr.push(\n shift({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.noHide === false) {\n arr.push(\n hideMiddleware({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.inline === true) {\n arr.push(inlineMiddleware())\n }\n arr.push(arrowMiddleware({element: arrow, padding: 10}))\n if (props.noSize === false) {\n arr.push(\n sizeMiddleware({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n apply({availableWidth, availableHeight}) {\n sizeStyles.value = {\n '--bv-floating-max-height':\n availableHeight >= (content.value?.scrollHeight ?? 0)\n ? undefined\n : availableHeight\n ? `${Math.max(0, availableHeight)}px`\n : undefined,\n '--bv-floating-max-width':\n availableWidth >= (content.value?.scrollWidth ?? 0)\n ? undefined\n : availableWidth\n ? `${Math.max(0, availableWidth)}px`\n : undefined,\n }\n },\n })\n )\n }\n return arr\n})\n\nconst placementRef = computed(() =>\n isAutoPlacement.value ? undefined : (props.placement as FloatingPlacement)\n)\n\nconst {floatingStyles, middlewareData, placement, update} = useFloating(\n referenceElement,\n floatingElement,\n {\n placement: placementRef,\n middleware: floatingMiddleware as ComputedRef<Middleware[]>,\n strategy: toRef(() => props.strategy),\n }\n)\n\nconst arrowStyle = ref<CSSProperties>({position: 'absolute'})\n\nlet cleanup: ReturnType<typeof autoUpdate> | undefined\nconst {\n showRef,\n hide,\n show,\n toggle,\n throttleHide,\n computedNoAnimation,\n transitionProps,\n contentShowing,\n isVisible,\n isActive,\n renderRef,\n localTemporaryHide,\n setLocalTemporaryHide,\n} = useShowHide(modelValue, props, emit as EmitFn, floatingElement, computedId, {\n showFn: () => {\n update()\n nextTick(() => {\n cleanup = autoUpdate(\n referenceElement.value as ReferenceElement,\n floatingElement.value as HTMLElement,\n update,\n {animationFrame: props.realtime}\n )\n })\n },\n hideFn: () => {\n if (cleanup) {\n cleanup()\n cleanup = undefined\n }\n },\n})\n\nwatch(middlewareData, (newValue) => {\n if (props.noHide === false) {\n if (newValue.hide?.referenceHidden && !hidden.value && showRef.value) {\n if (props.closeOnHide && !props.noAutoClose && !props.manual) {\n throttleHide('close-on-hide')\n } else {\n setLocalTemporaryHide(true)\n hidden.value = true\n }\n } else if (localTemporaryHide.value && !newValue.hide?.referenceHidden) {\n setLocalTemporaryHide(false)\n hidden.value = false\n }\n }\n if (newValue.arrow) {\n const {x, y} = newValue.arrow\n arrowStyle.value = {\n position: 'absolute',\n top: y ? `${y}px` : '',\n left: x ? `${x}px` : '',\n }\n }\n})\n\nconst computedClasses = computed(() => {\n const type = props.tooltip ? 'tooltip' : 'popover'\n return [\n type,\n `b-${type}`,\n {\n show: isVisible.value && !hidden.value,\n fade: !computedNoAnimation.value,\n [`bs-${type}-${resolveBootstrapPlacement(placement.value)}`]: placement.value !== undefined,\n },\n ]\n})\n\nconst {x, y} = useMouse()\n\nconst isElementAndTriggerOutside = () => {\n const triggerRect = triggerElement.value?.getBoundingClientRect()\n const elementRect = floatingElement.value?.getBoundingClientRect()\n const margin = Number.parseInt(props.hideMargin as unknown as string, 10) || 0\n const offsetX = getSafeWindow()?.scrollX || 0\n const offsetY = getSafeWindow()?.scrollY || 0\n const triggerIsOutside =\n !triggerRect ||\n x.value < triggerRect.left + offsetX - margin ||\n x.value > triggerRect.right + offsetX + margin ||\n y.value < triggerRect.top + offsetY - margin ||\n y.value > triggerRect.bottom + offsetY + margin\n\n const isOutside =\n !elementRect ||\n x.value < elementRect.left + offsetX - margin ||\n x.value > elementRect.right + offsetX + margin ||\n y.value < elementRect.top + offsetY - margin ||\n y.value > elementRect.bottom + offsetY + margin\n\n return {triggerIsOutside, isOutside}\n}\n\nlet looptimeout: ReturnType<typeof setTimeout> | undefined\nconst tryHide = (e?: Readonly<Event>) => {\n const {triggerIsOutside, isOutside} = isElementAndTriggerOutside()\n const doc = getSafeDocument()\n if (\n (!props.noninteractive &&\n isOutside &&\n triggerIsOutside &&\n doc &&\n !floatingElement.value?.contains(doc.activeElement) &&\n (!computedTriggers.value.focus || !triggerElement.value?.contains(doc.activeElement))) ||\n (props.noninteractive && triggerIsOutside)\n ) {\n hide(e?.type)\n } else {\n if (looptimeout) clearTimeout(looptimeout)\n looptimeout = setTimeout(() => {\n tryHide(e)\n }, 50)\n }\n}\n\nwatch(isVisible, () => {\n update()\n})\n\ndefineExpose({\n hide,\n show,\n toggle,\n})\n\nconst localToggle = (e: Event) => {\n if (showRef.value) {\n hide(e.type === 'click' ? 'click' : 'toggle')\n } else {\n show()\n }\n}\n\nconst localShow = () => {\n show()\n}\n\n// Compute final trigger configuration\nconst computedTriggers = computed(() => {\n // Manual mode disables all automatic triggers\n if (props.manual) {\n return {hover: false, focus: false, click: false}\n }\n\n // If explicit boolean props are set, use them\n if (props.hover !== undefined || props.focus !== undefined || props.click !== undefined) {\n return {\n hover: props.hover ?? false,\n focus: props.focus ?? false,\n click: props.click ?? false,\n }\n }\n\n // If no explicit props, use default behavior: hover + focus\n return {hover: true, focus: true, click: false}\n})\n\nconst bind = () => {\n // TODO: is this the best way to bind the events?\n // we place a span and get the next element sibling for the listeners\n if (props.target) {\n const elem = getElement(toValue(props.target))\n if (elem) {\n triggerElement.value = elem\n } else {\n console.warn('Target element not found', props.target)\n }\n } else {\n triggerElement.value = placeholder.value?.nextElementSibling as HTMLElement\n }\n if (props.reference) {\n const elem = getElement(toValue(props.reference))\n if (elem) {\n referenceElement.value = elem\n } else {\n console.warn('Reference element not found', props.reference)\n }\n } else {\n referenceElement.value = triggerElement.value\n }\n if (!triggerElement.value || props.manual) {\n return\n }\n\n const triggers = computedTriggers.value\n\n if (triggers.click) {\n triggerElement.value.addEventListener('click', localToggle)\n }\n\n if (triggers.hover) {\n triggerElement.value.addEventListener('pointerenter', localShow)\n triggerElement.value.addEventListener('pointerleave', tryHide)\n }\n\n if (triggers.focus) {\n triggerElement.value.addEventListener('focus', localShow)\n triggerElement.value.addEventListener('blur', tryHide)\n }\n}\n\nconst unbind = () => {\n if (triggerElement.value) {\n triggerElement.value.removeEventListener('click', localToggle)\n triggerElement.value.removeEventListener('pointerenter', localShow)\n triggerElement.value.removeEventListener('pointerleave', tryHide)\n triggerElement.value.removeEventListener('focus', localShow)\n triggerElement.value.removeEventListener('blur', tryHide)\n }\n}\n\nonClickOutside(\n floatingElement,\n () => {\n if (showRef.value && computedTriggers.value.click && !props.noAutoClose && !props.manual)\n hide('click-outside')\n },\n {ignore: [triggerElement]}\n)\n\nwatch(\n [\n () => props.click,\n () => props.hover,\n () => props.focus,\n () => props.manual,\n () => props.target,\n () => props.reference,\n ],\n () => {\n unbind()\n bind()\n // update()\n }\n)\n\nconst sharedSlots = computed<ShowHideSlotsData>(() => ({\n toggle,\n show,\n hide,\n id: computedId.value,\n visible: isVisible.value,\n active: isActive.value,\n}))\n\nonMounted(() => {\n bind()\n nextTick(() => {\n update()\n })\n})\n\nonBeforeUnmount(unbind)\n</script>\n","<template>\n <span :id=\"computedId + '_placeholder'\" ref=\"_placeholder\" style=\"display: none\" />\n <slot name=\"target\" v-bind=\"sharedSlots\" />\n <ConditionalTeleport\n :to=\"props.teleportTo\"\n :disabled=\"!props.teleportTo || props.teleportDisabled\"\n >\n <Transition\n v-if=\"renderRef || contentShowing\"\n v-bind=\"transitionProps\"\n :appear=\"modelValue || props.visible\"\n >\n <div\n v-show=\"showRef && !hidden\"\n :id=\"computedId\"\n v-bind=\"attrs\"\n ref=\"_element\"\n :class=\"computedClasses\"\n role=\"tooltip\"\n tabindex=\"-1\"\n :style=\"floatingStyles\"\n >\n <div\n ref=\"_arrow\"\n :class=\"`${props.tooltip ? 'tooltip' : 'popover'}-arrow`\"\n :style=\"arrowStyle\"\n data-popper-arrow\n />\n <div ref=\"_content\" class=\"overflow-auto b-floating-size\" :style=\"sizeStyles\">\n <template v-if=\"props.title || slots.title\">\n <div\n class=\"position-sticky top-0\"\n :class=\"[props.tooltip ? 'tooltip-inner' : 'popover-header', props.titleClass]\"\n >\n <slot name=\"title\" v-bind=\"sharedSlots\">\n {{ props.title }}\n </slot>\n </div>\n </template>\n <template v-if=\"(props.tooltip && !slots.title && !props.title) || !props.tooltip\">\n <div :class=\"[props.tooltip ? 'tooltip-inner' : 'popover-body', props.bodyClass]\">\n <slot v-bind=\"sharedSlots\">{{ props.body }}{{ attrs.content }}</slot>\n </div>\n </template>\n </div>\n </div>\n </Transition>\n </ConditionalTeleport>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n type Alignment,\n arrow as arrowMiddleware,\n autoPlacement,\n autoUpdate,\n type Boundary,\n flip,\n type Placement as FloatingPlacement,\n hide as hideMiddleware,\n inline as inlineMiddleware,\n type Middleware,\n offset as offsetMiddleware,\n type ReferenceElement,\n type RootBoundary,\n shift,\n size as sizeMiddleware,\n useFloating,\n} from '@floating-ui/vue'\nimport {onClickOutside, useToNumber} from '@vueuse/core'\nimport {\n computed,\n type ComputedRef,\n type CSSProperties,\n type EmitFn,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n toRef,\n toValue,\n useAttrs,\n useTemplateRef,\n watch,\n} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useMouse} from '../../composables/useMouse'\nimport {useId} from '../../composables/useId'\nimport type {BPopoverSlots, ShowHideSlotsData, BPopoverProps, BPopoverEmits} from '../../types'\nimport {isBoundary, isRootBoundary, resolveBootstrapPlacement} from '../../utils/floatingUi'\nimport {getElement} from '../../utils/getElement'\nimport ConditionalTeleport from '../ConditionalTeleport.vue'\nimport {useShowHide} from '../../composables/useShowHide'\nimport {getSafeDocument, getSafeWindow} from '../../utils/dom'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BPopoverProps, 'modelValue'>>(), {\n boundary: 'clippingAncestors',\n boundaryPadding: undefined,\n bodyClass: undefined,\n click: undefined,\n closeOnHide: false,\n focus: undefined,\n hover: undefined,\n teleportTo: undefined,\n teleportDisabled: false,\n body: undefined,\n delay: () => ({show: 100, hide: 300}),\n floatingMiddleware: undefined,\n hideMargin: 2,\n id: undefined,\n initialAnimation: false,\n inline: false,\n lazy: false,\n manual: false,\n noAutoClose: false,\n noFade: false,\n noFlip: false,\n noHide: false,\n noShift: false,\n noSize: false,\n noninteractive: false,\n offset: null,\n unmountLazy: false,\n placement: 'top',\n realtime: false,\n reference: null,\n strategy: 'absolute',\n target: null,\n title: undefined,\n titleClass: undefined,\n show: false,\n tooltip: false,\n visible: false,\n})\nconst props = useDefaults(_props, 'BPopover')\nconst emit = defineEmits<BPopoverEmits>()\nconst slots = defineSlots<BPopoverSlots>()\nconst attrs = useAttrs()\n\nconst modelValue = defineModel<Exclude<BPopoverProps['modelValue'], undefined>>({\n default: false,\n})\n\nconst computedId = useId(() => props.id, 'popover')\n\nconst hidden = ref(false)\n\nconst floatingElement = useTemplateRef('_element')\nconst content = useTemplateRef('_content')\nconst arrow = useTemplateRef('_arrow')\nconst placeholder = useTemplateRef('_placeholder')\n\nconst referenceElement = ref<HTMLElement | null>(null)\nconst triggerElement = ref<HTMLElement | null>(null)\n\nconst isAutoPlacement = computed(() => props.placement.startsWith('auto'))\nconst offsetNumber = useToNumber(() => props.offset ?? Number.NaN)\n\nconst boundary = computed<Boundary | undefined>(() =>\n isBoundary(props.boundary) ? props.boundary : undefined\n)\nconst rootBoundary = computed<RootBoundary | undefined>(() =>\n isRootBoundary(props.boundary) ? props.boundary : undefined\n)\n\nconst sizeStyles = ref<CSSProperties>({})\nconst floatingMiddleware = computed<readonly Middleware[]>(() => {\n if (props.floatingMiddleware !== undefined) {\n return props.floatingMiddleware\n }\n const off = props.offset !== null ? offsetNumber.value : props.tooltip ? 6 : 8\n const arr: Middleware[] = [offsetMiddleware(off)]\n if (props.noFlip === false && !isAutoPlacement.value) {\n arr.push(\n flip({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (isAutoPlacement.value) {\n arr.push(\n autoPlacement({\n alignment: (props.placement.split('-')[1] as Alignment) || undefined,\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.noShift === false) {\n arr.push(\n shift({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.noHide === false) {\n arr.push(\n hideMiddleware({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.inline === true) {\n arr.push(inlineMiddleware())\n }\n arr.push(arrowMiddleware({element: arrow, padding: 10}))\n if (props.noSize === false) {\n arr.push(\n sizeMiddleware({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n apply({availableWidth, availableHeight}) {\n sizeStyles.value = {\n '--bv-floating-max-height':\n availableHeight >= (content.value?.scrollHeight ?? 0)\n ? undefined\n : availableHeight\n ? `${Math.max(0, availableHeight)}px`\n : undefined,\n '--bv-floating-max-width':\n availableWidth >= (content.value?.scrollWidth ?? 0)\n ? undefined\n : availableWidth\n ? `${Math.max(0, availableWidth)}px`\n : undefined,\n }\n },\n })\n )\n }\n return arr\n})\n\nconst placementRef = computed(() =>\n isAutoPlacement.value ? undefined : (props.placement as FloatingPlacement)\n)\n\nconst {floatingStyles, middlewareData, placement, update} = useFloating(\n referenceElement,\n floatingElement,\n {\n placement: placementRef,\n middleware: floatingMiddleware as ComputedRef<Middleware[]>,\n strategy: toRef(() => props.strategy),\n }\n)\n\nconst arrowStyle = ref<CSSProperties>({position: 'absolute'})\n\nlet cleanup: ReturnType<typeof autoUpdate> | undefined\nconst {\n showRef,\n hide,\n show,\n toggle,\n throttleHide,\n computedNoAnimation,\n transitionProps,\n contentShowing,\n isVisible,\n isActive,\n renderRef,\n localTemporaryHide,\n setLocalTemporaryHide,\n} = useShowHide(modelValue, props, emit as EmitFn, floatingElement, computedId, {\n showFn: () => {\n update()\n nextTick(() => {\n cleanup = autoUpdate(\n referenceElement.value as ReferenceElement,\n floatingElement.value as HTMLElement,\n update,\n {animationFrame: props.realtime}\n )\n })\n },\n hideFn: () => {\n if (cleanup) {\n cleanup()\n cleanup = undefined\n }\n },\n})\n\nwatch(middlewareData, (newValue) => {\n if (props.noHide === false) {\n if (newValue.hide?.referenceHidden && !hidden.value && showRef.value) {\n if (props.closeOnHide && !props.noAutoClose && !props.manual) {\n throttleHide('close-on-hide')\n } else {\n setLocalTemporaryHide(true)\n hidden.value = true\n }\n } else if (localTemporaryHide.value && !newValue.hide?.referenceHidden) {\n setLocalTemporaryHide(false)\n hidden.value = false\n }\n }\n if (newValue.arrow) {\n const {x, y} = newValue.arrow\n arrowStyle.value = {\n position: 'absolute',\n top: y ? `${y}px` : '',\n left: x ? `${x}px` : '',\n }\n }\n})\n\nconst computedClasses = computed(() => {\n const type = props.tooltip ? 'tooltip' : 'popover'\n return [\n type,\n `b-${type}`,\n {\n show: isVisible.value && !hidden.value,\n fade: !computedNoAnimation.value,\n [`bs-${type}-${resolveBootstrapPlacement(placement.value)}`]: placement.value !== undefined,\n },\n ]\n})\n\nconst {x, y} = useMouse()\n\nconst isElementAndTriggerOutside = () => {\n const triggerRect = triggerElement.value?.getBoundingClientRect()\n const elementRect = floatingElement.value?.getBoundingClientRect()\n const margin = Number.parseInt(props.hideMargin as unknown as string, 10) || 0\n const offsetX = getSafeWindow()?.scrollX || 0\n const offsetY = getSafeWindow()?.scrollY || 0\n const triggerIsOutside =\n !triggerRect ||\n x.value < triggerRect.left + offsetX - margin ||\n x.value > triggerRect.right + offsetX + margin ||\n y.value < triggerRect.top + offsetY - margin ||\n y.value > triggerRect.bottom + offsetY + margin\n\n const isOutside =\n !elementRect ||\n x.value < elementRect.left + offsetX - margin ||\n x.value > elementRect.right + offsetX + margin ||\n y.value < elementRect.top + offsetY - margin ||\n y.value > elementRect.bottom + offsetY + margin\n\n return {triggerIsOutside, isOutside}\n}\n\nlet looptimeout: ReturnType<typeof setTimeout> | undefined\nconst tryHide = (e?: Readonly<Event>) => {\n const {triggerIsOutside, isOutside} = isElementAndTriggerOutside()\n const doc = getSafeDocument()\n if (\n (!props.noninteractive &&\n isOutside &&\n triggerIsOutside &&\n doc &&\n !floatingElement.value?.contains(doc.activeElement) &&\n (!computedTriggers.value.focus || !triggerElement.value?.contains(doc.activeElement))) ||\n (props.noninteractive && triggerIsOutside)\n ) {\n hide(e?.type)\n } else {\n if (looptimeout) clearTimeout(looptimeout)\n looptimeout = setTimeout(() => {\n tryHide(e)\n }, 50)\n }\n}\n\nwatch(isVisible, () => {\n update()\n})\n\ndefineExpose({\n hide,\n show,\n toggle,\n})\n\nconst localToggle = (e: Event) => {\n if (showRef.value) {\n hide(e.type === 'click' ? 'click' : 'toggle')\n } else {\n show()\n }\n}\n\nconst localShow = () => {\n show()\n}\n\n// Compute final trigger configuration\nconst computedTriggers = computed(() => {\n // Manual mode disables all automatic triggers\n if (props.manual) {\n return {hover: false, focus: false, click: false}\n }\n\n // If explicit boolean props are set, use them\n if (props.hover !== undefined || props.focus !== undefined || props.click !== undefined) {\n return {\n hover: props.hover ?? false,\n focus: props.focus ?? false,\n click: props.click ?? false,\n }\n }\n\n // If no explicit props, use default behavior: hover + focus\n return {hover: true, focus: true, click: false}\n})\n\nconst bind = () => {\n // TODO: is this the best way to bind the events?\n // we place a span and get the next element sibling for the listeners\n if (props.target) {\n const elem = getElement(toValue(props.target))\n if (elem) {\n triggerElement.value = elem\n } else {\n console.warn('Target element not found', props.target)\n }\n } else {\n triggerElement.value = placeholder.value?.nextElementSibling as HTMLElement\n }\n if (props.reference) {\n const elem = getElement(toValue(props.reference))\n if (elem) {\n referenceElement.value = elem\n } else {\n console.warn('Reference element not found', props.reference)\n }\n } else {\n referenceElement.value = triggerElement.value\n }\n if (!triggerElement.value || props.manual) {\n return\n }\n\n const triggers = computedTriggers.value\n\n if (triggers.click) {\n triggerElement.value.addEventListener('click', localToggle)\n }\n\n if (triggers.hover) {\n triggerElement.value.addEventListener('pointerenter', localShow)\n triggerElement.value.addEventListener('pointerleave', tryHide)\n }\n\n if (triggers.focus) {\n triggerElement.value.addEventListener('focus', localShow)\n triggerElement.value.addEventListener('blur', tryHide)\n }\n}\n\nconst unbind = () => {\n if (triggerElement.value) {\n triggerElement.value.removeEventListener('click', localToggle)\n triggerElement.value.removeEventListener('pointerenter', localShow)\n triggerElement.value.removeEventListener('pointerleave', tryHide)\n triggerElement.value.removeEventListener('focus', localShow)\n triggerElement.value.removeEventListener('blur', tryHide)\n }\n}\n\nonClickOutside(\n floatingElement,\n () => {\n if (showRef.value && computedTriggers.value.click && !props.noAutoClose && !props.manual)\n hide('click-outside')\n },\n {ignore: [triggerElement]}\n)\n\nwatch(\n [\n () => props.click,\n () => props.hover,\n () => props.focus,\n () => props.manual,\n () => props.target,\n () => props.reference,\n ],\n () => {\n unbind()\n bind()\n // update()\n }\n)\n\nconst sharedSlots = computed<ShowHideSlotsData>(() => ({\n toggle,\n show,\n hide,\n id: computedId.value,\n visible: isVisible.value,\n active: isActive.value,\n}))\n\nonMounted(() => {\n bind()\n nextTick(() => {\n update()\n })\n})\n\nonBeforeUnmount(unbind)\n</script>\n","import type {Boundary, Placement, RootBoundary} from '@floating-ui/vue'\nexport {autoUpdate} from '@floating-ui/vue'\n\nimport {type DirectiveBinding, h, render} from 'vue'\nimport BPopover from '../components/BPopover/BPopover.vue'\nimport type {BPopoverProps} from '../types'\nimport {getSafeDocument} from './dom'\n\nexport const resolveBootstrapPlacement = (placement: Placement): string => {\n const [_placement] = placement.split('-')\n switch (_placement) {\n case 'left':\n return 'start'\n case 'right':\n return 'end'\n default:\n return _placement || 'start'\n }\n}\nexport const resolveBootstrapCaret = (placement: Placement): string => {\n const [_placement] = placement.split('-')\n switch (_placement) {\n case 'left':\n return 'start'\n case 'right':\n return 'end'\n case 'top':\n return 'up'\n case 'bottom':\n return 'down'\n default:\n return _placement || 'start'\n }\n}\n\nexport const resolveActiveStatus = (values: DirectiveBinding['value']): boolean =>\n typeof values !== 'object' || values.active !== false\n\nexport const resolveContent = (\n values: DirectiveBinding['value'],\n el: HTMLElement\n): {title?: string; body?: string} => {\n const isActive = resolveActiveStatus(values)\n if (!isActive) return {}\n\n const missingBindingValue =\n typeof values === 'undefined' ||\n (typeof values === 'object' && !values.title && !values.content && !values.body)\n\n // SSR guard: skip DOM attribute access on server\n const doc = getSafeDocument()\n if (doc !== null) {\n const titleAttr = el.getAttribute('title') || el.getAttribute('data-original-title')\n\n // Always remove title attribute to prevent native tooltip conflicts\n if (titleAttr) {\n el.removeAttribute('title')\n el.setAttribute('data-original-title', titleAttr)\n }\n\n if (missingBindingValue) {\n if (titleAttr) {\n return {\n body: titleAttr,\n }\n }\n return {}\n }\n\n // For string directive values, use title attribute as popover title\n if (typeof values === 'string') {\n return {\n title: titleAttr || undefined,\n body: values,\n }\n }\n } else {\n // SSR: if no binding value provided, return empty\n if (missingBindingValue) return {}\n }\n\n if (typeof values === 'string') {\n return {\n body: values,\n }\n }\n\n // TODO: deprication remove warning in 2025-07\n if (values?.content)\n console.warn('v-b-popover/v-b-tooltip: `content` is deprecated, use `body` instead')\n\n return {\n title: values?.title ? values?.title : undefined,\n body: values?.body ? values?.body : values?.content ? values?.content : undefined,\n }\n}\n\nexport const resolveDirectiveProps = (\n binding: Readonly<DirectiveBinding>,\n el: Readonly<HTMLElement>\n) => ({\n target: el,\n modelValue: binding.modifiers.show,\n inline: binding.modifiers.inline,\n click: binding.modifiers.click,\n hover: binding.modifiers.hover,\n focus: binding.modifiers.focus,\n manual: binding.modifiers.manual,\n realtime: binding.modifiers.realtime,\n lazy: binding.modifiers.lazy,\n placement: binding.modifiers.left\n ? 'left'\n : binding.modifiers.right\n ? 'right'\n : binding.modifiers.bottom\n ? 'bottom'\n : binding.modifiers.top\n ? 'top'\n : undefined,\n ...(typeof binding.value === 'object' ? binding.value : undefined),\n ...(binding.modifiers.interactive ? {noninteractive: false} : undefined),\n title: null,\n body: null,\n})\n\nexport interface ElementWithPopper extends HTMLElement {\n [key: string]: unknown\n $__element?: HTMLElement\n $__tooltip?: Record<\n number,\n {\n binding: string\n destroying: boolean\n }\n >\n $__popover?: Record<\n number,\n {\n binding: string\n destroying: boolean\n }\n >\n}\n\nexport const bind = (\n el: ElementWithPopper,\n binding: Readonly<DirectiveBinding>,\n props: BPopoverProps\n) => {\n const doc = getSafeDocument()\n // SSR guard: skip DOM manipulation on server\n if (doc === null) return\n\n const div = doc.createElement('span')\n if (binding.modifiers.body) doc.body.appendChild(div)\n else if (binding.modifiers.child) el.appendChild(div)\n else el.parentNode?.insertBefore(div, el.nextSibling)\n render(h(BPopover, props), div)\n el.$__element = div\n}\n\nexport const unbind = (el: ElementWithPopper) => {\n const div = el.$__element\n if (!div) return\n\n // Unmount Vue component immediately\n render(null, div)\n\n // SSR guard: skip DOM cleanup on server\n if (getSafeDocument() !== null) {\n delete el.$__element\n return\n }\n\n // Use microtask instead of setTimeout(0) for more predictable cleanup\n // and better performance\n queueMicrotask(() => {\n // Remove the element in next microtask\n // The directive's beforeUnmount will have already cleaned up UID-specific state\n div.remove()\n // Only delete the reference if it still points to the div we just unmounted\n // This prevents deleting a fresh reference if bind() was called again immediately\n if (el.$__element === div) {\n delete el.$__element\n }\n })\n}\n\nexport const isBoundary = (input: unknown): input is Boundary =>\n input === 'clippingAncestors' || input instanceof Element || Array.isArray(input)\n\nexport const isRootBoundary = (input: Boundary | RootBoundary): input is RootBoundary =>\n !isBoundary(input)\n"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
- import { E as createSharedComposable, L as useToNumber, a as onClickOutside, v as useMouse$1 } from "./dist-Dn5blevd.mjs";
1
+ import { D as createSharedComposable, a as onClickOutside, v as useMouse$1, z as useToNumber } from "./dist-B10a-gZ8.mjs";
2
2
  import { a as getSafeWindow, i as getSafeDocument } from "./dom-AhkaSoh8.mjs";
3
3
  import { t as useDefaults } from "./useDefaults-BKgBaqOV.mjs";
4
4
  import { t as useId$1 } from "./useId-BKZFSYm8.mjs";
5
- import { t as useShowHide } from "./useShowHide-IPyuuPL0.mjs";
5
+ import { t as useShowHide } from "./useShowHide-yAK5dhPT.mjs";
6
6
  import { t as ConditionalTeleport_default } from "./ConditionalTeleport-BNsziElf.mjs";
7
- import { a as flip, d as size, i as autoUpdate, l as offset, n as useFloating, o as hide, r as autoPlacement, s as inline, t as arrow, u as shift } from "./floating-ui.vue-DIWi4LGB.mjs";
8
- import { t as getElement } from "./getElement-BPjh0Qkh.mjs";
7
+ import { a as flip, d as size, i as autoUpdate, l as offset, n as useFloating, o as hide, r as autoPlacement, s as inline, t as arrow, u as shift } from "./floating-ui.vue-CAMaNcqI.mjs";
8
+ import { t as getElement } from "./getElement-0_htvrFw.mjs";
9
9
  import { Fragment, Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, guardReactiveProps, h, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onBeforeUnmount, onMounted, openBlock, ref, render, renderSlot, toDisplayString, toRef, toValue, unref, useAttrs, useModel, useSlots, useTemplateRef, vShow, watch, withCtx, withDirectives } from "vue";
10
10
  //#region src/composables/useMouse.ts
11
11
  var useMouse = createSharedComposable(useMouse$1);
@@ -527,4 +527,4 @@ var isRootBoundary = (input) => !isBoundary(input);
527
527
  //#endregion
528
528
  export { resolveBootstrapCaret as a, unbind as c, resolveActiveStatus as i, BPopover_default as l, isBoundary as n, resolveContent as o, isRootBoundary as r, resolveDirectiveProps as s, bind as t };
529
529
 
530
- //# sourceMappingURL=floatingUi-BErx3eqf.mjs.map
530
+ //# sourceMappingURL=floatingUi-DHMrP__c.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"floatingUi-BErx3eqf.mjs","names":[],"sources":["../src/composables/useMouse.ts","../src/components/BPopover/BPopover.vue","../src/components/BPopover/BPopover.vue","../src/utils/floatingUi.ts"],"sourcesContent":["import {useMouse as _useMouse, createSharedComposable} from '@vueuse/core'\n\nexport const useMouse = createSharedComposable(_useMouse)\n","<template>\n <span :id=\"computedId + '_placeholder'\" ref=\"_placeholder\" style=\"display: none\" />\n <slot name=\"target\" v-bind=\"sharedSlots\" />\n <ConditionalTeleport\n :to=\"props.teleportTo\"\n :disabled=\"!props.teleportTo || props.teleportDisabled\"\n >\n <Transition\n v-if=\"renderRef || contentShowing\"\n v-bind=\"transitionProps\"\n :appear=\"modelValue || props.visible\"\n >\n <div\n v-show=\"showRef && !hidden\"\n :id=\"computedId\"\n v-bind=\"attrs\"\n ref=\"_element\"\n :class=\"computedClasses\"\n role=\"tooltip\"\n tabindex=\"-1\"\n :style=\"floatingStyles\"\n >\n <div\n ref=\"_arrow\"\n :class=\"`${props.tooltip ? 'tooltip' : 'popover'}-arrow`\"\n :style=\"arrowStyle\"\n data-popper-arrow\n />\n <div ref=\"_content\" class=\"overflow-auto b-floating-size\" :style=\"sizeStyles\">\n <template v-if=\"props.title || slots.title\">\n <div\n class=\"position-sticky top-0\"\n :class=\"[props.tooltip ? 'tooltip-inner' : 'popover-header', props.titleClass]\"\n >\n <slot name=\"title\" v-bind=\"sharedSlots\">\n {{ props.title }}\n </slot>\n </div>\n </template>\n <template v-if=\"(props.tooltip && !slots.title && !props.title) || !props.tooltip\">\n <div :class=\"[props.tooltip ? 'tooltip-inner' : 'popover-body', props.bodyClass]\">\n <slot v-bind=\"sharedSlots\">{{ props.body }}{{ attrs.content }}</slot>\n </div>\n </template>\n </div>\n </div>\n </Transition>\n </ConditionalTeleport>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n type Alignment,\n arrow as arrowMiddleware,\n autoPlacement,\n autoUpdate,\n type Boundary,\n flip,\n type Placement as FloatingPlacement,\n hide as hideMiddleware,\n inline as inlineMiddleware,\n type Middleware,\n offset as offsetMiddleware,\n type ReferenceElement,\n type RootBoundary,\n shift,\n size as sizeMiddleware,\n useFloating,\n} from '@floating-ui/vue'\nimport {onClickOutside, useToNumber} from '@vueuse/core'\nimport {\n computed,\n type ComputedRef,\n type CSSProperties,\n type EmitFn,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n toRef,\n toValue,\n useAttrs,\n useTemplateRef,\n watch,\n} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useMouse} from '../../composables/useMouse'\nimport {useId} from '../../composables/useId'\nimport type {BPopoverSlots, ShowHideSlotsData, BPopoverProps, BPopoverEmits} from '../../types'\nimport {isBoundary, isRootBoundary, resolveBootstrapPlacement} from '../../utils/floatingUi'\nimport {getElement} from '../../utils/getElement'\nimport ConditionalTeleport from '../ConditionalTeleport.vue'\nimport {useShowHide} from '../../composables/useShowHide'\nimport {getSafeDocument, getSafeWindow} from '../../utils/dom'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BPopoverProps, 'modelValue'>>(), {\n boundary: 'clippingAncestors',\n boundaryPadding: undefined,\n bodyClass: undefined,\n click: undefined,\n closeOnHide: false,\n focus: undefined,\n hover: undefined,\n teleportTo: undefined,\n teleportDisabled: false,\n body: undefined,\n delay: () => ({show: 100, hide: 300}),\n floatingMiddleware: undefined,\n hideMargin: 2,\n id: undefined,\n initialAnimation: false,\n inline: false,\n lazy: false,\n manual: false,\n noAutoClose: false,\n noFade: false,\n noFlip: false,\n noHide: false,\n noShift: false,\n noSize: false,\n noninteractive: false,\n offset: null,\n unmountLazy: false,\n placement: 'top',\n realtime: false,\n reference: null,\n strategy: 'absolute',\n target: null,\n title: undefined,\n titleClass: undefined,\n show: false,\n tooltip: false,\n visible: false,\n})\nconst props = useDefaults(_props, 'BPopover')\nconst emit = defineEmits<BPopoverEmits>()\nconst slots = defineSlots<BPopoverSlots>()\nconst attrs = useAttrs()\n\nconst modelValue = defineModel<Exclude<BPopoverProps['modelValue'], undefined>>({\n default: false,\n})\n\nconst computedId = useId(() => props.id, 'popover')\n\nconst hidden = ref(false)\n\nconst floatingElement = useTemplateRef('_element')\nconst content = useTemplateRef('_content')\nconst arrow = useTemplateRef('_arrow')\nconst placeholder = useTemplateRef('_placeholder')\n\nconst referenceElement = ref<HTMLElement | null>(null)\nconst triggerElement = ref<HTMLElement | null>(null)\n\nconst isAutoPlacement = computed(() => props.placement.startsWith('auto'))\nconst offsetNumber = useToNumber(() => props.offset ?? Number.NaN)\n\nconst boundary = computed<Boundary | undefined>(() =>\n isBoundary(props.boundary) ? props.boundary : undefined\n)\nconst rootBoundary = computed<RootBoundary | undefined>(() =>\n isRootBoundary(props.boundary) ? props.boundary : undefined\n)\n\nconst sizeStyles = ref<CSSProperties>({})\nconst floatingMiddleware = computed<readonly Middleware[]>(() => {\n if (props.floatingMiddleware !== undefined) {\n return props.floatingMiddleware\n }\n const off = props.offset !== null ? offsetNumber.value : props.tooltip ? 6 : 8\n const arr: Middleware[] = [offsetMiddleware(off)]\n if (props.noFlip === false && !isAutoPlacement.value) {\n arr.push(\n flip({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (isAutoPlacement.value) {\n arr.push(\n autoPlacement({\n alignment: (props.placement.split('-')[1] as Alignment) || undefined,\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.noShift === false) {\n arr.push(\n shift({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.noHide === false) {\n arr.push(\n hideMiddleware({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.inline === true) {\n arr.push(inlineMiddleware())\n }\n arr.push(arrowMiddleware({element: arrow, padding: 10}))\n if (props.noSize === false) {\n arr.push(\n sizeMiddleware({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n apply({availableWidth, availableHeight}) {\n sizeStyles.value = {\n '--bv-floating-max-height':\n availableHeight >= (content.value?.scrollHeight ?? 0)\n ? undefined\n : availableHeight\n ? `${Math.max(0, availableHeight)}px`\n : undefined,\n '--bv-floating-max-width':\n availableWidth >= (content.value?.scrollWidth ?? 0)\n ? undefined\n : availableWidth\n ? `${Math.max(0, availableWidth)}px`\n : undefined,\n }\n },\n })\n )\n }\n return arr\n})\n\nconst placementRef = computed(() =>\n isAutoPlacement.value ? undefined : (props.placement as FloatingPlacement)\n)\n\nconst {floatingStyles, middlewareData, placement, update} = useFloating(\n referenceElement,\n floatingElement,\n {\n placement: placementRef,\n middleware: floatingMiddleware as ComputedRef<Middleware[]>,\n strategy: toRef(() => props.strategy),\n }\n)\n\nconst arrowStyle = ref<CSSProperties>({position: 'absolute'})\n\nlet cleanup: ReturnType<typeof autoUpdate> | undefined\nconst {\n showRef,\n hide,\n show,\n toggle,\n throttleHide,\n computedNoAnimation,\n transitionProps,\n contentShowing,\n isVisible,\n isActive,\n renderRef,\n localTemporaryHide,\n setLocalTemporaryHide,\n} = useShowHide(modelValue, props, emit as EmitFn, floatingElement, computedId, {\n showFn: () => {\n update()\n nextTick(() => {\n cleanup = autoUpdate(\n referenceElement.value as ReferenceElement,\n floatingElement.value as HTMLElement,\n update,\n {animationFrame: props.realtime}\n )\n })\n },\n hideFn: () => {\n if (cleanup) {\n cleanup()\n cleanup = undefined\n }\n },\n})\n\nwatch(middlewareData, (newValue) => {\n if (props.noHide === false) {\n if (newValue.hide?.referenceHidden && !hidden.value && showRef.value) {\n if (props.closeOnHide && !props.noAutoClose && !props.manual) {\n throttleHide('close-on-hide')\n } else {\n setLocalTemporaryHide(true)\n hidden.value = true\n }\n } else if (localTemporaryHide.value && !newValue.hide?.referenceHidden) {\n setLocalTemporaryHide(false)\n hidden.value = false\n }\n }\n if (newValue.arrow) {\n const {x, y} = newValue.arrow\n arrowStyle.value = {\n position: 'absolute',\n top: y ? `${y}px` : '',\n left: x ? `${x}px` : '',\n }\n }\n})\n\nconst computedClasses = computed(() => {\n const type = props.tooltip ? 'tooltip' : 'popover'\n return [\n type,\n `b-${type}`,\n {\n show: isVisible.value && !hidden.value,\n fade: !computedNoAnimation.value,\n [`bs-${type}-${resolveBootstrapPlacement(placement.value)}`]: placement.value !== undefined,\n },\n ]\n})\n\nconst {x, y} = useMouse()\n\nconst isElementAndTriggerOutside = () => {\n const triggerRect = triggerElement.value?.getBoundingClientRect()\n const elementRect = floatingElement.value?.getBoundingClientRect()\n const margin = Number.parseInt(props.hideMargin as unknown as string, 10) || 0\n const offsetX = getSafeWindow()?.scrollX || 0\n const offsetY = getSafeWindow()?.scrollY || 0\n const triggerIsOutside =\n !triggerRect ||\n x.value < triggerRect.left + offsetX - margin ||\n x.value > triggerRect.right + offsetX + margin ||\n y.value < triggerRect.top + offsetY - margin ||\n y.value > triggerRect.bottom + offsetY + margin\n\n const isOutside =\n !elementRect ||\n x.value < elementRect.left + offsetX - margin ||\n x.value > elementRect.right + offsetX + margin ||\n y.value < elementRect.top + offsetY - margin ||\n y.value > elementRect.bottom + offsetY + margin\n\n return {triggerIsOutside, isOutside}\n}\n\nlet looptimeout: ReturnType<typeof setTimeout> | undefined\nconst tryHide = (e?: Readonly<Event>) => {\n const {triggerIsOutside, isOutside} = isElementAndTriggerOutside()\n const doc = getSafeDocument()\n if (\n (!props.noninteractive &&\n isOutside &&\n triggerIsOutside &&\n doc &&\n !floatingElement.value?.contains(doc.activeElement) &&\n (!computedTriggers.value.focus || !triggerElement.value?.contains(doc.activeElement))) ||\n (props.noninteractive && triggerIsOutside)\n ) {\n hide(e?.type)\n } else {\n if (looptimeout) clearTimeout(looptimeout)\n looptimeout = setTimeout(() => {\n tryHide(e)\n }, 50)\n }\n}\n\nwatch(isVisible, () => {\n update()\n})\n\ndefineExpose({\n hide,\n show,\n toggle,\n})\n\nconst localToggle = (e: Event) => {\n if (showRef.value) {\n hide(e.type === 'click' ? 'click' : 'toggle')\n } else {\n show()\n }\n}\n\nconst localShow = () => {\n show()\n}\n\n// Compute final trigger configuration\nconst computedTriggers = computed(() => {\n // Manual mode disables all automatic triggers\n if (props.manual) {\n return {hover: false, focus: false, click: false}\n }\n\n // If explicit boolean props are set, use them\n if (props.hover !== undefined || props.focus !== undefined || props.click !== undefined) {\n return {\n hover: props.hover ?? false,\n focus: props.focus ?? false,\n click: props.click ?? false,\n }\n }\n\n // If no explicit props, use default behavior: hover + focus\n return {hover: true, focus: true, click: false}\n})\n\nconst bind = () => {\n // TODO: is this the best way to bind the events?\n // we place a span and get the next element sibling for the listeners\n if (props.target) {\n const elem = getElement(toValue(props.target))\n if (elem) {\n triggerElement.value = elem\n } else {\n console.warn('Target element not found', props.target)\n }\n } else {\n triggerElement.value = placeholder.value?.nextElementSibling as HTMLElement\n }\n if (props.reference) {\n const elem = getElement(toValue(props.reference))\n if (elem) {\n referenceElement.value = elem\n } else {\n console.warn('Reference element not found', props.reference)\n }\n } else {\n referenceElement.value = triggerElement.value\n }\n if (!triggerElement.value || props.manual) {\n return\n }\n\n const triggers = computedTriggers.value\n\n if (triggers.click) {\n triggerElement.value.addEventListener('click', localToggle)\n }\n\n if (triggers.hover) {\n triggerElement.value.addEventListener('pointerenter', localShow)\n triggerElement.value.addEventListener('pointerleave', tryHide)\n }\n\n if (triggers.focus) {\n triggerElement.value.addEventListener('focus', localShow)\n triggerElement.value.addEventListener('blur', tryHide)\n }\n}\n\nconst unbind = () => {\n if (triggerElement.value) {\n triggerElement.value.removeEventListener('click', localToggle)\n triggerElement.value.removeEventListener('pointerenter', localShow)\n triggerElement.value.removeEventListener('pointerleave', tryHide)\n triggerElement.value.removeEventListener('focus', localShow)\n triggerElement.value.removeEventListener('blur', tryHide)\n }\n}\n\nonClickOutside(\n floatingElement,\n () => {\n if (showRef.value && computedTriggers.value.click && !props.noAutoClose && !props.manual)\n hide('click-outside')\n },\n {ignore: [triggerElement]}\n)\n\nwatch(\n [\n () => props.click,\n () => props.hover,\n () => props.focus,\n () => props.manual,\n () => props.target,\n () => props.reference,\n ],\n () => {\n unbind()\n bind()\n // update()\n }\n)\n\nconst sharedSlots = computed<ShowHideSlotsData>(() => ({\n toggle,\n show,\n hide,\n id: computedId.value,\n visible: isVisible.value,\n active: isActive.value,\n}))\n\nonMounted(() => {\n bind()\n nextTick(() => {\n update()\n })\n})\n\nonBeforeUnmount(unbind)\n</script>\n","<template>\n <span :id=\"computedId + '_placeholder'\" ref=\"_placeholder\" style=\"display: none\" />\n <slot name=\"target\" v-bind=\"sharedSlots\" />\n <ConditionalTeleport\n :to=\"props.teleportTo\"\n :disabled=\"!props.teleportTo || props.teleportDisabled\"\n >\n <Transition\n v-if=\"renderRef || contentShowing\"\n v-bind=\"transitionProps\"\n :appear=\"modelValue || props.visible\"\n >\n <div\n v-show=\"showRef && !hidden\"\n :id=\"computedId\"\n v-bind=\"attrs\"\n ref=\"_element\"\n :class=\"computedClasses\"\n role=\"tooltip\"\n tabindex=\"-1\"\n :style=\"floatingStyles\"\n >\n <div\n ref=\"_arrow\"\n :class=\"`${props.tooltip ? 'tooltip' : 'popover'}-arrow`\"\n :style=\"arrowStyle\"\n data-popper-arrow\n />\n <div ref=\"_content\" class=\"overflow-auto b-floating-size\" :style=\"sizeStyles\">\n <template v-if=\"props.title || slots.title\">\n <div\n class=\"position-sticky top-0\"\n :class=\"[props.tooltip ? 'tooltip-inner' : 'popover-header', props.titleClass]\"\n >\n <slot name=\"title\" v-bind=\"sharedSlots\">\n {{ props.title }}\n </slot>\n </div>\n </template>\n <template v-if=\"(props.tooltip && !slots.title && !props.title) || !props.tooltip\">\n <div :class=\"[props.tooltip ? 'tooltip-inner' : 'popover-body', props.bodyClass]\">\n <slot v-bind=\"sharedSlots\">{{ props.body }}{{ attrs.content }}</slot>\n </div>\n </template>\n </div>\n </div>\n </Transition>\n </ConditionalTeleport>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n type Alignment,\n arrow as arrowMiddleware,\n autoPlacement,\n autoUpdate,\n type Boundary,\n flip,\n type Placement as FloatingPlacement,\n hide as hideMiddleware,\n inline as inlineMiddleware,\n type Middleware,\n offset as offsetMiddleware,\n type ReferenceElement,\n type RootBoundary,\n shift,\n size as sizeMiddleware,\n useFloating,\n} from '@floating-ui/vue'\nimport {onClickOutside, useToNumber} from '@vueuse/core'\nimport {\n computed,\n type ComputedRef,\n type CSSProperties,\n type EmitFn,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n toRef,\n toValue,\n useAttrs,\n useTemplateRef,\n watch,\n} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useMouse} from '../../composables/useMouse'\nimport {useId} from '../../composables/useId'\nimport type {BPopoverSlots, ShowHideSlotsData, BPopoverProps, BPopoverEmits} from '../../types'\nimport {isBoundary, isRootBoundary, resolveBootstrapPlacement} from '../../utils/floatingUi'\nimport {getElement} from '../../utils/getElement'\nimport ConditionalTeleport from '../ConditionalTeleport.vue'\nimport {useShowHide} from '../../composables/useShowHide'\nimport {getSafeDocument, getSafeWindow} from '../../utils/dom'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BPopoverProps, 'modelValue'>>(), {\n boundary: 'clippingAncestors',\n boundaryPadding: undefined,\n bodyClass: undefined,\n click: undefined,\n closeOnHide: false,\n focus: undefined,\n hover: undefined,\n teleportTo: undefined,\n teleportDisabled: false,\n body: undefined,\n delay: () => ({show: 100, hide: 300}),\n floatingMiddleware: undefined,\n hideMargin: 2,\n id: undefined,\n initialAnimation: false,\n inline: false,\n lazy: false,\n manual: false,\n noAutoClose: false,\n noFade: false,\n noFlip: false,\n noHide: false,\n noShift: false,\n noSize: false,\n noninteractive: false,\n offset: null,\n unmountLazy: false,\n placement: 'top',\n realtime: false,\n reference: null,\n strategy: 'absolute',\n target: null,\n title: undefined,\n titleClass: undefined,\n show: false,\n tooltip: false,\n visible: false,\n})\nconst props = useDefaults(_props, 'BPopover')\nconst emit = defineEmits<BPopoverEmits>()\nconst slots = defineSlots<BPopoverSlots>()\nconst attrs = useAttrs()\n\nconst modelValue = defineModel<Exclude<BPopoverProps['modelValue'], undefined>>({\n default: false,\n})\n\nconst computedId = useId(() => props.id, 'popover')\n\nconst hidden = ref(false)\n\nconst floatingElement = useTemplateRef('_element')\nconst content = useTemplateRef('_content')\nconst arrow = useTemplateRef('_arrow')\nconst placeholder = useTemplateRef('_placeholder')\n\nconst referenceElement = ref<HTMLElement | null>(null)\nconst triggerElement = ref<HTMLElement | null>(null)\n\nconst isAutoPlacement = computed(() => props.placement.startsWith('auto'))\nconst offsetNumber = useToNumber(() => props.offset ?? Number.NaN)\n\nconst boundary = computed<Boundary | undefined>(() =>\n isBoundary(props.boundary) ? props.boundary : undefined\n)\nconst rootBoundary = computed<RootBoundary | undefined>(() =>\n isRootBoundary(props.boundary) ? props.boundary : undefined\n)\n\nconst sizeStyles = ref<CSSProperties>({})\nconst floatingMiddleware = computed<readonly Middleware[]>(() => {\n if (props.floatingMiddleware !== undefined) {\n return props.floatingMiddleware\n }\n const off = props.offset !== null ? offsetNumber.value : props.tooltip ? 6 : 8\n const arr: Middleware[] = [offsetMiddleware(off)]\n if (props.noFlip === false && !isAutoPlacement.value) {\n arr.push(\n flip({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (isAutoPlacement.value) {\n arr.push(\n autoPlacement({\n alignment: (props.placement.split('-')[1] as Alignment) || undefined,\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.noShift === false) {\n arr.push(\n shift({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.noHide === false) {\n arr.push(\n hideMiddleware({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.inline === true) {\n arr.push(inlineMiddleware())\n }\n arr.push(arrowMiddleware({element: arrow, padding: 10}))\n if (props.noSize === false) {\n arr.push(\n sizeMiddleware({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n apply({availableWidth, availableHeight}) {\n sizeStyles.value = {\n '--bv-floating-max-height':\n availableHeight >= (content.value?.scrollHeight ?? 0)\n ? undefined\n : availableHeight\n ? `${Math.max(0, availableHeight)}px`\n : undefined,\n '--bv-floating-max-width':\n availableWidth >= (content.value?.scrollWidth ?? 0)\n ? undefined\n : availableWidth\n ? `${Math.max(0, availableWidth)}px`\n : undefined,\n }\n },\n })\n )\n }\n return arr\n})\n\nconst placementRef = computed(() =>\n isAutoPlacement.value ? undefined : (props.placement as FloatingPlacement)\n)\n\nconst {floatingStyles, middlewareData, placement, update} = useFloating(\n referenceElement,\n floatingElement,\n {\n placement: placementRef,\n middleware: floatingMiddleware as ComputedRef<Middleware[]>,\n strategy: toRef(() => props.strategy),\n }\n)\n\nconst arrowStyle = ref<CSSProperties>({position: 'absolute'})\n\nlet cleanup: ReturnType<typeof autoUpdate> | undefined\nconst {\n showRef,\n hide,\n show,\n toggle,\n throttleHide,\n computedNoAnimation,\n transitionProps,\n contentShowing,\n isVisible,\n isActive,\n renderRef,\n localTemporaryHide,\n setLocalTemporaryHide,\n} = useShowHide(modelValue, props, emit as EmitFn, floatingElement, computedId, {\n showFn: () => {\n update()\n nextTick(() => {\n cleanup = autoUpdate(\n referenceElement.value as ReferenceElement,\n floatingElement.value as HTMLElement,\n update,\n {animationFrame: props.realtime}\n )\n })\n },\n hideFn: () => {\n if (cleanup) {\n cleanup()\n cleanup = undefined\n }\n },\n})\n\nwatch(middlewareData, (newValue) => {\n if (props.noHide === false) {\n if (newValue.hide?.referenceHidden && !hidden.value && showRef.value) {\n if (props.closeOnHide && !props.noAutoClose && !props.manual) {\n throttleHide('close-on-hide')\n } else {\n setLocalTemporaryHide(true)\n hidden.value = true\n }\n } else if (localTemporaryHide.value && !newValue.hide?.referenceHidden) {\n setLocalTemporaryHide(false)\n hidden.value = false\n }\n }\n if (newValue.arrow) {\n const {x, y} = newValue.arrow\n arrowStyle.value = {\n position: 'absolute',\n top: y ? `${y}px` : '',\n left: x ? `${x}px` : '',\n }\n }\n})\n\nconst computedClasses = computed(() => {\n const type = props.tooltip ? 'tooltip' : 'popover'\n return [\n type,\n `b-${type}`,\n {\n show: isVisible.value && !hidden.value,\n fade: !computedNoAnimation.value,\n [`bs-${type}-${resolveBootstrapPlacement(placement.value)}`]: placement.value !== undefined,\n },\n ]\n})\n\nconst {x, y} = useMouse()\n\nconst isElementAndTriggerOutside = () => {\n const triggerRect = triggerElement.value?.getBoundingClientRect()\n const elementRect = floatingElement.value?.getBoundingClientRect()\n const margin = Number.parseInt(props.hideMargin as unknown as string, 10) || 0\n const offsetX = getSafeWindow()?.scrollX || 0\n const offsetY = getSafeWindow()?.scrollY || 0\n const triggerIsOutside =\n !triggerRect ||\n x.value < triggerRect.left + offsetX - margin ||\n x.value > triggerRect.right + offsetX + margin ||\n y.value < triggerRect.top + offsetY - margin ||\n y.value > triggerRect.bottom + offsetY + margin\n\n const isOutside =\n !elementRect ||\n x.value < elementRect.left + offsetX - margin ||\n x.value > elementRect.right + offsetX + margin ||\n y.value < elementRect.top + offsetY - margin ||\n y.value > elementRect.bottom + offsetY + margin\n\n return {triggerIsOutside, isOutside}\n}\n\nlet looptimeout: ReturnType<typeof setTimeout> | undefined\nconst tryHide = (e?: Readonly<Event>) => {\n const {triggerIsOutside, isOutside} = isElementAndTriggerOutside()\n const doc = getSafeDocument()\n if (\n (!props.noninteractive &&\n isOutside &&\n triggerIsOutside &&\n doc &&\n !floatingElement.value?.contains(doc.activeElement) &&\n (!computedTriggers.value.focus || !triggerElement.value?.contains(doc.activeElement))) ||\n (props.noninteractive && triggerIsOutside)\n ) {\n hide(e?.type)\n } else {\n if (looptimeout) clearTimeout(looptimeout)\n looptimeout = setTimeout(() => {\n tryHide(e)\n }, 50)\n }\n}\n\nwatch(isVisible, () => {\n update()\n})\n\ndefineExpose({\n hide,\n show,\n toggle,\n})\n\nconst localToggle = (e: Event) => {\n if (showRef.value) {\n hide(e.type === 'click' ? 'click' : 'toggle')\n } else {\n show()\n }\n}\n\nconst localShow = () => {\n show()\n}\n\n// Compute final trigger configuration\nconst computedTriggers = computed(() => {\n // Manual mode disables all automatic triggers\n if (props.manual) {\n return {hover: false, focus: false, click: false}\n }\n\n // If explicit boolean props are set, use them\n if (props.hover !== undefined || props.focus !== undefined || props.click !== undefined) {\n return {\n hover: props.hover ?? false,\n focus: props.focus ?? false,\n click: props.click ?? false,\n }\n }\n\n // If no explicit props, use default behavior: hover + focus\n return {hover: true, focus: true, click: false}\n})\n\nconst bind = () => {\n // TODO: is this the best way to bind the events?\n // we place a span and get the next element sibling for the listeners\n if (props.target) {\n const elem = getElement(toValue(props.target))\n if (elem) {\n triggerElement.value = elem\n } else {\n console.warn('Target element not found', props.target)\n }\n } else {\n triggerElement.value = placeholder.value?.nextElementSibling as HTMLElement\n }\n if (props.reference) {\n const elem = getElement(toValue(props.reference))\n if (elem) {\n referenceElement.value = elem\n } else {\n console.warn('Reference element not found', props.reference)\n }\n } else {\n referenceElement.value = triggerElement.value\n }\n if (!triggerElement.value || props.manual) {\n return\n }\n\n const triggers = computedTriggers.value\n\n if (triggers.click) {\n triggerElement.value.addEventListener('click', localToggle)\n }\n\n if (triggers.hover) {\n triggerElement.value.addEventListener('pointerenter', localShow)\n triggerElement.value.addEventListener('pointerleave', tryHide)\n }\n\n if (triggers.focus) {\n triggerElement.value.addEventListener('focus', localShow)\n triggerElement.value.addEventListener('blur', tryHide)\n }\n}\n\nconst unbind = () => {\n if (triggerElement.value) {\n triggerElement.value.removeEventListener('click', localToggle)\n triggerElement.value.removeEventListener('pointerenter', localShow)\n triggerElement.value.removeEventListener('pointerleave', tryHide)\n triggerElement.value.removeEventListener('focus', localShow)\n triggerElement.value.removeEventListener('blur', tryHide)\n }\n}\n\nonClickOutside(\n floatingElement,\n () => {\n if (showRef.value && computedTriggers.value.click && !props.noAutoClose && !props.manual)\n hide('click-outside')\n },\n {ignore: [triggerElement]}\n)\n\nwatch(\n [\n () => props.click,\n () => props.hover,\n () => props.focus,\n () => props.manual,\n () => props.target,\n () => props.reference,\n ],\n () => {\n unbind()\n bind()\n // update()\n }\n)\n\nconst sharedSlots = computed<ShowHideSlotsData>(() => ({\n toggle,\n show,\n hide,\n id: computedId.value,\n visible: isVisible.value,\n active: isActive.value,\n}))\n\nonMounted(() => {\n bind()\n nextTick(() => {\n update()\n })\n})\n\nonBeforeUnmount(unbind)\n</script>\n","import type {Boundary, Placement, RootBoundary} from '@floating-ui/vue'\nexport {autoUpdate} from '@floating-ui/vue'\n\nimport {type DirectiveBinding, h, render} from 'vue'\nimport BPopover from '../components/BPopover/BPopover.vue'\nimport type {BPopoverProps} from '../types'\nimport {getSafeDocument} from './dom'\n\nexport const resolveBootstrapPlacement = (placement: Placement): string => {\n const [_placement] = placement.split('-')\n switch (_placement) {\n case 'left':\n return 'start'\n case 'right':\n return 'end'\n default:\n return _placement || 'start'\n }\n}\nexport const resolveBootstrapCaret = (placement: Placement): string => {\n const [_placement] = placement.split('-')\n switch (_placement) {\n case 'left':\n return 'start'\n case 'right':\n return 'end'\n case 'top':\n return 'up'\n case 'bottom':\n return 'down'\n default:\n return _placement || 'start'\n }\n}\n\nexport const resolveActiveStatus = (values: DirectiveBinding['value']): boolean =>\n typeof values !== 'object' || values.active !== false\n\nexport const resolveContent = (\n values: DirectiveBinding['value'],\n el: HTMLElement\n): {title?: string; body?: string} => {\n const isActive = resolveActiveStatus(values)\n if (!isActive) return {}\n\n const missingBindingValue =\n typeof values === 'undefined' ||\n (typeof values === 'object' && !values.title && !values.content && !values.body)\n\n // SSR guard: skip DOM attribute access on server\n const doc = getSafeDocument()\n if (doc !== null) {\n const titleAttr = el.getAttribute('title') || el.getAttribute('data-original-title')\n\n // Always remove title attribute to prevent native tooltip conflicts\n if (titleAttr) {\n el.removeAttribute('title')\n el.setAttribute('data-original-title', titleAttr)\n }\n\n if (missingBindingValue) {\n if (titleAttr) {\n return {\n body: titleAttr,\n }\n }\n return {}\n }\n\n // For string directive values, use title attribute as popover title\n if (typeof values === 'string') {\n return {\n title: titleAttr || undefined,\n body: values,\n }\n }\n } else {\n // SSR: if no binding value provided, return empty\n if (missingBindingValue) return {}\n }\n\n if (typeof values === 'string') {\n return {\n body: values,\n }\n }\n\n // TODO: deprication remove warning in 2025-07\n if (values?.content)\n console.warn('v-b-popover/v-b-tooltip: `content` is deprecated, use `body` instead')\n\n return {\n title: values?.title ? values?.title : undefined,\n body: values?.body ? values?.body : values?.content ? values?.content : undefined,\n }\n}\n\nexport const resolveDirectiveProps = (\n binding: Readonly<DirectiveBinding>,\n el: Readonly<HTMLElement>\n) => ({\n target: el,\n modelValue: binding.modifiers.show,\n inline: binding.modifiers.inline,\n click: binding.modifiers.click,\n hover: binding.modifiers.hover,\n focus: binding.modifiers.focus,\n manual: binding.modifiers.manual,\n realtime: binding.modifiers.realtime,\n lazy: binding.modifiers.lazy,\n placement: binding.modifiers.left\n ? 'left'\n : binding.modifiers.right\n ? 'right'\n : binding.modifiers.bottom\n ? 'bottom'\n : binding.modifiers.top\n ? 'top'\n : undefined,\n ...(typeof binding.value === 'object' ? binding.value : undefined),\n ...(binding.modifiers.interactive ? {noninteractive: false} : undefined),\n title: null,\n body: null,\n})\n\nexport interface ElementWithPopper extends HTMLElement {\n [key: string]: unknown\n $__element?: HTMLElement\n $__tooltip?: Record<\n number,\n {\n binding: string\n destroying: boolean\n }\n >\n $__popover?: Record<\n number,\n {\n binding: string\n destroying: boolean\n }\n >\n}\n\nexport const bind = (\n el: ElementWithPopper,\n binding: Readonly<DirectiveBinding>,\n props: BPopoverProps\n) => {\n const doc = getSafeDocument()\n // SSR guard: skip DOM manipulation on server\n if (doc === null) return\n\n const div = doc.createElement('span')\n if (binding.modifiers.body) doc.body.appendChild(div)\n else if (binding.modifiers.child) el.appendChild(div)\n else el.parentNode?.insertBefore(div, el.nextSibling)\n render(h(BPopover, props), div)\n el.$__element = div\n}\n\nexport const unbind = (el: ElementWithPopper) => {\n const div = el.$__element\n if (!div) return\n\n // Unmount Vue component immediately\n render(null, div)\n\n // SSR guard: skip DOM cleanup on server\n if (getSafeDocument() !== null) {\n delete el.$__element\n return\n }\n\n // Use microtask instead of setTimeout(0) for more predictable cleanup\n // and better performance\n queueMicrotask(() => {\n // Remove the element in next microtask\n // The directive's beforeUnmount will have already cleaned up UID-specific state\n div.remove()\n // Only delete the reference if it still points to the div we just unmounted\n // This prevents deleting a fresh reference if bind() was called again immediately\n if (el.$__element === div) {\n delete el.$__element\n }\n })\n}\n\nexport const isBoundary = (input: unknown): input is Boundary =>\n input === 'clippingAncestors' || input instanceof Element || Array.isArray(input)\n\nexport const isRootBoundary = (input: Boundary | RootBoundary): input is RootBoundary =>\n !isBoundary(input)\n"],"mappings":"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"}
1
+ {"version":3,"file":"floatingUi-DHMrP__c.mjs","names":[],"sources":["../src/composables/useMouse.ts","../src/components/BPopover/BPopover.vue","../src/components/BPopover/BPopover.vue","../src/utils/floatingUi.ts"],"sourcesContent":["import {useMouse as _useMouse, createSharedComposable} from '@vueuse/core'\n\nexport const useMouse = createSharedComposable(_useMouse)\n","<template>\n <span :id=\"computedId + '_placeholder'\" ref=\"_placeholder\" style=\"display: none\" />\n <slot name=\"target\" v-bind=\"sharedSlots\" />\n <ConditionalTeleport\n :to=\"props.teleportTo\"\n :disabled=\"!props.teleportTo || props.teleportDisabled\"\n >\n <Transition\n v-if=\"renderRef || contentShowing\"\n v-bind=\"transitionProps\"\n :appear=\"modelValue || props.visible\"\n >\n <div\n v-show=\"showRef && !hidden\"\n :id=\"computedId\"\n v-bind=\"attrs\"\n ref=\"_element\"\n :class=\"computedClasses\"\n role=\"tooltip\"\n tabindex=\"-1\"\n :style=\"floatingStyles\"\n >\n <div\n ref=\"_arrow\"\n :class=\"`${props.tooltip ? 'tooltip' : 'popover'}-arrow`\"\n :style=\"arrowStyle\"\n data-popper-arrow\n />\n <div ref=\"_content\" class=\"overflow-auto b-floating-size\" :style=\"sizeStyles\">\n <template v-if=\"props.title || slots.title\">\n <div\n class=\"position-sticky top-0\"\n :class=\"[props.tooltip ? 'tooltip-inner' : 'popover-header', props.titleClass]\"\n >\n <slot name=\"title\" v-bind=\"sharedSlots\">\n {{ props.title }}\n </slot>\n </div>\n </template>\n <template v-if=\"(props.tooltip && !slots.title && !props.title) || !props.tooltip\">\n <div :class=\"[props.tooltip ? 'tooltip-inner' : 'popover-body', props.bodyClass]\">\n <slot v-bind=\"sharedSlots\">{{ props.body }}{{ attrs.content }}</slot>\n </div>\n </template>\n </div>\n </div>\n </Transition>\n </ConditionalTeleport>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n type Alignment,\n arrow as arrowMiddleware,\n autoPlacement,\n autoUpdate,\n type Boundary,\n flip,\n type Placement as FloatingPlacement,\n hide as hideMiddleware,\n inline as inlineMiddleware,\n type Middleware,\n offset as offsetMiddleware,\n type ReferenceElement,\n type RootBoundary,\n shift,\n size as sizeMiddleware,\n useFloating,\n} from '@floating-ui/vue'\nimport {onClickOutside, useToNumber} from '@vueuse/core'\nimport {\n computed,\n type ComputedRef,\n type CSSProperties,\n type EmitFn,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n toRef,\n toValue,\n useAttrs,\n useTemplateRef,\n watch,\n} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useMouse} from '../../composables/useMouse'\nimport {useId} from '../../composables/useId'\nimport type {BPopoverSlots, ShowHideSlotsData, BPopoverProps, BPopoverEmits} from '../../types'\nimport {isBoundary, isRootBoundary, resolveBootstrapPlacement} from '../../utils/floatingUi'\nimport {getElement} from '../../utils/getElement'\nimport ConditionalTeleport from '../ConditionalTeleport.vue'\nimport {useShowHide} from '../../composables/useShowHide'\nimport {getSafeDocument, getSafeWindow} from '../../utils/dom'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BPopoverProps, 'modelValue'>>(), {\n boundary: 'clippingAncestors',\n boundaryPadding: undefined,\n bodyClass: undefined,\n click: undefined,\n closeOnHide: false,\n focus: undefined,\n hover: undefined,\n teleportTo: undefined,\n teleportDisabled: false,\n body: undefined,\n delay: () => ({show: 100, hide: 300}),\n floatingMiddleware: undefined,\n hideMargin: 2,\n id: undefined,\n initialAnimation: false,\n inline: false,\n lazy: false,\n manual: false,\n noAutoClose: false,\n noFade: false,\n noFlip: false,\n noHide: false,\n noShift: false,\n noSize: false,\n noninteractive: false,\n offset: null,\n unmountLazy: false,\n placement: 'top',\n realtime: false,\n reference: null,\n strategy: 'absolute',\n target: null,\n title: undefined,\n titleClass: undefined,\n show: false,\n tooltip: false,\n visible: false,\n})\nconst props = useDefaults(_props, 'BPopover')\nconst emit = defineEmits<BPopoverEmits>()\nconst slots = defineSlots<BPopoverSlots>()\nconst attrs = useAttrs()\n\nconst modelValue = defineModel<Exclude<BPopoverProps['modelValue'], undefined>>({\n default: false,\n})\n\nconst computedId = useId(() => props.id, 'popover')\n\nconst hidden = ref(false)\n\nconst floatingElement = useTemplateRef('_element')\nconst content = useTemplateRef('_content')\nconst arrow = useTemplateRef('_arrow')\nconst placeholder = useTemplateRef('_placeholder')\n\nconst referenceElement = ref<HTMLElement | null>(null)\nconst triggerElement = ref<HTMLElement | null>(null)\n\nconst isAutoPlacement = computed(() => props.placement.startsWith('auto'))\nconst offsetNumber = useToNumber(() => props.offset ?? Number.NaN)\n\nconst boundary = computed<Boundary | undefined>(() =>\n isBoundary(props.boundary) ? props.boundary : undefined\n)\nconst rootBoundary = computed<RootBoundary | undefined>(() =>\n isRootBoundary(props.boundary) ? props.boundary : undefined\n)\n\nconst sizeStyles = ref<CSSProperties>({})\nconst floatingMiddleware = computed<readonly Middleware[]>(() => {\n if (props.floatingMiddleware !== undefined) {\n return props.floatingMiddleware\n }\n const off = props.offset !== null ? offsetNumber.value : props.tooltip ? 6 : 8\n const arr: Middleware[] = [offsetMiddleware(off)]\n if (props.noFlip === false && !isAutoPlacement.value) {\n arr.push(\n flip({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (isAutoPlacement.value) {\n arr.push(\n autoPlacement({\n alignment: (props.placement.split('-')[1] as Alignment) || undefined,\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.noShift === false) {\n arr.push(\n shift({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.noHide === false) {\n arr.push(\n hideMiddleware({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.inline === true) {\n arr.push(inlineMiddleware())\n }\n arr.push(arrowMiddleware({element: arrow, padding: 10}))\n if (props.noSize === false) {\n arr.push(\n sizeMiddleware({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n apply({availableWidth, availableHeight}) {\n sizeStyles.value = {\n '--bv-floating-max-height':\n availableHeight >= (content.value?.scrollHeight ?? 0)\n ? undefined\n : availableHeight\n ? `${Math.max(0, availableHeight)}px`\n : undefined,\n '--bv-floating-max-width':\n availableWidth >= (content.value?.scrollWidth ?? 0)\n ? undefined\n : availableWidth\n ? `${Math.max(0, availableWidth)}px`\n : undefined,\n }\n },\n })\n )\n }\n return arr\n})\n\nconst placementRef = computed(() =>\n isAutoPlacement.value ? undefined : (props.placement as FloatingPlacement)\n)\n\nconst {floatingStyles, middlewareData, placement, update} = useFloating(\n referenceElement,\n floatingElement,\n {\n placement: placementRef,\n middleware: floatingMiddleware as ComputedRef<Middleware[]>,\n strategy: toRef(() => props.strategy),\n }\n)\n\nconst arrowStyle = ref<CSSProperties>({position: 'absolute'})\n\nlet cleanup: ReturnType<typeof autoUpdate> | undefined\nconst {\n showRef,\n hide,\n show,\n toggle,\n throttleHide,\n computedNoAnimation,\n transitionProps,\n contentShowing,\n isVisible,\n isActive,\n renderRef,\n localTemporaryHide,\n setLocalTemporaryHide,\n} = useShowHide(modelValue, props, emit as EmitFn, floatingElement, computedId, {\n showFn: () => {\n update()\n nextTick(() => {\n cleanup = autoUpdate(\n referenceElement.value as ReferenceElement,\n floatingElement.value as HTMLElement,\n update,\n {animationFrame: props.realtime}\n )\n })\n },\n hideFn: () => {\n if (cleanup) {\n cleanup()\n cleanup = undefined\n }\n },\n})\n\nwatch(middlewareData, (newValue) => {\n if (props.noHide === false) {\n if (newValue.hide?.referenceHidden && !hidden.value && showRef.value) {\n if (props.closeOnHide && !props.noAutoClose && !props.manual) {\n throttleHide('close-on-hide')\n } else {\n setLocalTemporaryHide(true)\n hidden.value = true\n }\n } else if (localTemporaryHide.value && !newValue.hide?.referenceHidden) {\n setLocalTemporaryHide(false)\n hidden.value = false\n }\n }\n if (newValue.arrow) {\n const {x, y} = newValue.arrow\n arrowStyle.value = {\n position: 'absolute',\n top: y ? `${y}px` : '',\n left: x ? `${x}px` : '',\n }\n }\n})\n\nconst computedClasses = computed(() => {\n const type = props.tooltip ? 'tooltip' : 'popover'\n return [\n type,\n `b-${type}`,\n {\n show: isVisible.value && !hidden.value,\n fade: !computedNoAnimation.value,\n [`bs-${type}-${resolveBootstrapPlacement(placement.value)}`]: placement.value !== undefined,\n },\n ]\n})\n\nconst {x, y} = useMouse()\n\nconst isElementAndTriggerOutside = () => {\n const triggerRect = triggerElement.value?.getBoundingClientRect()\n const elementRect = floatingElement.value?.getBoundingClientRect()\n const margin = Number.parseInt(props.hideMargin as unknown as string, 10) || 0\n const offsetX = getSafeWindow()?.scrollX || 0\n const offsetY = getSafeWindow()?.scrollY || 0\n const triggerIsOutside =\n !triggerRect ||\n x.value < triggerRect.left + offsetX - margin ||\n x.value > triggerRect.right + offsetX + margin ||\n y.value < triggerRect.top + offsetY - margin ||\n y.value > triggerRect.bottom + offsetY + margin\n\n const isOutside =\n !elementRect ||\n x.value < elementRect.left + offsetX - margin ||\n x.value > elementRect.right + offsetX + margin ||\n y.value < elementRect.top + offsetY - margin ||\n y.value > elementRect.bottom + offsetY + margin\n\n return {triggerIsOutside, isOutside}\n}\n\nlet looptimeout: ReturnType<typeof setTimeout> | undefined\nconst tryHide = (e?: Readonly<Event>) => {\n const {triggerIsOutside, isOutside} = isElementAndTriggerOutside()\n const doc = getSafeDocument()\n if (\n (!props.noninteractive &&\n isOutside &&\n triggerIsOutside &&\n doc &&\n !floatingElement.value?.contains(doc.activeElement) &&\n (!computedTriggers.value.focus || !triggerElement.value?.contains(doc.activeElement))) ||\n (props.noninteractive && triggerIsOutside)\n ) {\n hide(e?.type)\n } else {\n if (looptimeout) clearTimeout(looptimeout)\n looptimeout = setTimeout(() => {\n tryHide(e)\n }, 50)\n }\n}\n\nwatch(isVisible, () => {\n update()\n})\n\ndefineExpose({\n hide,\n show,\n toggle,\n})\n\nconst localToggle = (e: Event) => {\n if (showRef.value) {\n hide(e.type === 'click' ? 'click' : 'toggle')\n } else {\n show()\n }\n}\n\nconst localShow = () => {\n show()\n}\n\n// Compute final trigger configuration\nconst computedTriggers = computed(() => {\n // Manual mode disables all automatic triggers\n if (props.manual) {\n return {hover: false, focus: false, click: false}\n }\n\n // If explicit boolean props are set, use them\n if (props.hover !== undefined || props.focus !== undefined || props.click !== undefined) {\n return {\n hover: props.hover ?? false,\n focus: props.focus ?? false,\n click: props.click ?? false,\n }\n }\n\n // If no explicit props, use default behavior: hover + focus\n return {hover: true, focus: true, click: false}\n})\n\nconst bind = () => {\n // TODO: is this the best way to bind the events?\n // we place a span and get the next element sibling for the listeners\n if (props.target) {\n const elem = getElement(toValue(props.target))\n if (elem) {\n triggerElement.value = elem\n } else {\n console.warn('Target element not found', props.target)\n }\n } else {\n triggerElement.value = placeholder.value?.nextElementSibling as HTMLElement\n }\n if (props.reference) {\n const elem = getElement(toValue(props.reference))\n if (elem) {\n referenceElement.value = elem\n } else {\n console.warn('Reference element not found', props.reference)\n }\n } else {\n referenceElement.value = triggerElement.value\n }\n if (!triggerElement.value || props.manual) {\n return\n }\n\n const triggers = computedTriggers.value\n\n if (triggers.click) {\n triggerElement.value.addEventListener('click', localToggle)\n }\n\n if (triggers.hover) {\n triggerElement.value.addEventListener('pointerenter', localShow)\n triggerElement.value.addEventListener('pointerleave', tryHide)\n }\n\n if (triggers.focus) {\n triggerElement.value.addEventListener('focus', localShow)\n triggerElement.value.addEventListener('blur', tryHide)\n }\n}\n\nconst unbind = () => {\n if (triggerElement.value) {\n triggerElement.value.removeEventListener('click', localToggle)\n triggerElement.value.removeEventListener('pointerenter', localShow)\n triggerElement.value.removeEventListener('pointerleave', tryHide)\n triggerElement.value.removeEventListener('focus', localShow)\n triggerElement.value.removeEventListener('blur', tryHide)\n }\n}\n\nonClickOutside(\n floatingElement,\n () => {\n if (showRef.value && computedTriggers.value.click && !props.noAutoClose && !props.manual)\n hide('click-outside')\n },\n {ignore: [triggerElement]}\n)\n\nwatch(\n [\n () => props.click,\n () => props.hover,\n () => props.focus,\n () => props.manual,\n () => props.target,\n () => props.reference,\n ],\n () => {\n unbind()\n bind()\n // update()\n }\n)\n\nconst sharedSlots = computed<ShowHideSlotsData>(() => ({\n toggle,\n show,\n hide,\n id: computedId.value,\n visible: isVisible.value,\n active: isActive.value,\n}))\n\nonMounted(() => {\n bind()\n nextTick(() => {\n update()\n })\n})\n\nonBeforeUnmount(unbind)\n</script>\n","<template>\n <span :id=\"computedId + '_placeholder'\" ref=\"_placeholder\" style=\"display: none\" />\n <slot name=\"target\" v-bind=\"sharedSlots\" />\n <ConditionalTeleport\n :to=\"props.teleportTo\"\n :disabled=\"!props.teleportTo || props.teleportDisabled\"\n >\n <Transition\n v-if=\"renderRef || contentShowing\"\n v-bind=\"transitionProps\"\n :appear=\"modelValue || props.visible\"\n >\n <div\n v-show=\"showRef && !hidden\"\n :id=\"computedId\"\n v-bind=\"attrs\"\n ref=\"_element\"\n :class=\"computedClasses\"\n role=\"tooltip\"\n tabindex=\"-1\"\n :style=\"floatingStyles\"\n >\n <div\n ref=\"_arrow\"\n :class=\"`${props.tooltip ? 'tooltip' : 'popover'}-arrow`\"\n :style=\"arrowStyle\"\n data-popper-arrow\n />\n <div ref=\"_content\" class=\"overflow-auto b-floating-size\" :style=\"sizeStyles\">\n <template v-if=\"props.title || slots.title\">\n <div\n class=\"position-sticky top-0\"\n :class=\"[props.tooltip ? 'tooltip-inner' : 'popover-header', props.titleClass]\"\n >\n <slot name=\"title\" v-bind=\"sharedSlots\">\n {{ props.title }}\n </slot>\n </div>\n </template>\n <template v-if=\"(props.tooltip && !slots.title && !props.title) || !props.tooltip\">\n <div :class=\"[props.tooltip ? 'tooltip-inner' : 'popover-body', props.bodyClass]\">\n <slot v-bind=\"sharedSlots\">{{ props.body }}{{ attrs.content }}</slot>\n </div>\n </template>\n </div>\n </div>\n </Transition>\n </ConditionalTeleport>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n type Alignment,\n arrow as arrowMiddleware,\n autoPlacement,\n autoUpdate,\n type Boundary,\n flip,\n type Placement as FloatingPlacement,\n hide as hideMiddleware,\n inline as inlineMiddleware,\n type Middleware,\n offset as offsetMiddleware,\n type ReferenceElement,\n type RootBoundary,\n shift,\n size as sizeMiddleware,\n useFloating,\n} from '@floating-ui/vue'\nimport {onClickOutside, useToNumber} from '@vueuse/core'\nimport {\n computed,\n type ComputedRef,\n type CSSProperties,\n type EmitFn,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n toRef,\n toValue,\n useAttrs,\n useTemplateRef,\n watch,\n} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useMouse} from '../../composables/useMouse'\nimport {useId} from '../../composables/useId'\nimport type {BPopoverSlots, ShowHideSlotsData, BPopoverProps, BPopoverEmits} from '../../types'\nimport {isBoundary, isRootBoundary, resolveBootstrapPlacement} from '../../utils/floatingUi'\nimport {getElement} from '../../utils/getElement'\nimport ConditionalTeleport from '../ConditionalTeleport.vue'\nimport {useShowHide} from '../../composables/useShowHide'\nimport {getSafeDocument, getSafeWindow} from '../../utils/dom'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BPopoverProps, 'modelValue'>>(), {\n boundary: 'clippingAncestors',\n boundaryPadding: undefined,\n bodyClass: undefined,\n click: undefined,\n closeOnHide: false,\n focus: undefined,\n hover: undefined,\n teleportTo: undefined,\n teleportDisabled: false,\n body: undefined,\n delay: () => ({show: 100, hide: 300}),\n floatingMiddleware: undefined,\n hideMargin: 2,\n id: undefined,\n initialAnimation: false,\n inline: false,\n lazy: false,\n manual: false,\n noAutoClose: false,\n noFade: false,\n noFlip: false,\n noHide: false,\n noShift: false,\n noSize: false,\n noninteractive: false,\n offset: null,\n unmountLazy: false,\n placement: 'top',\n realtime: false,\n reference: null,\n strategy: 'absolute',\n target: null,\n title: undefined,\n titleClass: undefined,\n show: false,\n tooltip: false,\n visible: false,\n})\nconst props = useDefaults(_props, 'BPopover')\nconst emit = defineEmits<BPopoverEmits>()\nconst slots = defineSlots<BPopoverSlots>()\nconst attrs = useAttrs()\n\nconst modelValue = defineModel<Exclude<BPopoverProps['modelValue'], undefined>>({\n default: false,\n})\n\nconst computedId = useId(() => props.id, 'popover')\n\nconst hidden = ref(false)\n\nconst floatingElement = useTemplateRef('_element')\nconst content = useTemplateRef('_content')\nconst arrow = useTemplateRef('_arrow')\nconst placeholder = useTemplateRef('_placeholder')\n\nconst referenceElement = ref<HTMLElement | null>(null)\nconst triggerElement = ref<HTMLElement | null>(null)\n\nconst isAutoPlacement = computed(() => props.placement.startsWith('auto'))\nconst offsetNumber = useToNumber(() => props.offset ?? Number.NaN)\n\nconst boundary = computed<Boundary | undefined>(() =>\n isBoundary(props.boundary) ? props.boundary : undefined\n)\nconst rootBoundary = computed<RootBoundary | undefined>(() =>\n isRootBoundary(props.boundary) ? props.boundary : undefined\n)\n\nconst sizeStyles = ref<CSSProperties>({})\nconst floatingMiddleware = computed<readonly Middleware[]>(() => {\n if (props.floatingMiddleware !== undefined) {\n return props.floatingMiddleware\n }\n const off = props.offset !== null ? offsetNumber.value : props.tooltip ? 6 : 8\n const arr: Middleware[] = [offsetMiddleware(off)]\n if (props.noFlip === false && !isAutoPlacement.value) {\n arr.push(\n flip({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (isAutoPlacement.value) {\n arr.push(\n autoPlacement({\n alignment: (props.placement.split('-')[1] as Alignment) || undefined,\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.noShift === false) {\n arr.push(\n shift({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.noHide === false) {\n arr.push(\n hideMiddleware({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n })\n )\n }\n if (props.inline === true) {\n arr.push(inlineMiddleware())\n }\n arr.push(arrowMiddleware({element: arrow, padding: 10}))\n if (props.noSize === false) {\n arr.push(\n sizeMiddleware({\n boundary: boundary.value,\n rootBoundary: rootBoundary.value,\n padding: props.boundaryPadding,\n apply({availableWidth, availableHeight}) {\n sizeStyles.value = {\n '--bv-floating-max-height':\n availableHeight >= (content.value?.scrollHeight ?? 0)\n ? undefined\n : availableHeight\n ? `${Math.max(0, availableHeight)}px`\n : undefined,\n '--bv-floating-max-width':\n availableWidth >= (content.value?.scrollWidth ?? 0)\n ? undefined\n : availableWidth\n ? `${Math.max(0, availableWidth)}px`\n : undefined,\n }\n },\n })\n )\n }\n return arr\n})\n\nconst placementRef = computed(() =>\n isAutoPlacement.value ? undefined : (props.placement as FloatingPlacement)\n)\n\nconst {floatingStyles, middlewareData, placement, update} = useFloating(\n referenceElement,\n floatingElement,\n {\n placement: placementRef,\n middleware: floatingMiddleware as ComputedRef<Middleware[]>,\n strategy: toRef(() => props.strategy),\n }\n)\n\nconst arrowStyle = ref<CSSProperties>({position: 'absolute'})\n\nlet cleanup: ReturnType<typeof autoUpdate> | undefined\nconst {\n showRef,\n hide,\n show,\n toggle,\n throttleHide,\n computedNoAnimation,\n transitionProps,\n contentShowing,\n isVisible,\n isActive,\n renderRef,\n localTemporaryHide,\n setLocalTemporaryHide,\n} = useShowHide(modelValue, props, emit as EmitFn, floatingElement, computedId, {\n showFn: () => {\n update()\n nextTick(() => {\n cleanup = autoUpdate(\n referenceElement.value as ReferenceElement,\n floatingElement.value as HTMLElement,\n update,\n {animationFrame: props.realtime}\n )\n })\n },\n hideFn: () => {\n if (cleanup) {\n cleanup()\n cleanup = undefined\n }\n },\n})\n\nwatch(middlewareData, (newValue) => {\n if (props.noHide === false) {\n if (newValue.hide?.referenceHidden && !hidden.value && showRef.value) {\n if (props.closeOnHide && !props.noAutoClose && !props.manual) {\n throttleHide('close-on-hide')\n } else {\n setLocalTemporaryHide(true)\n hidden.value = true\n }\n } else if (localTemporaryHide.value && !newValue.hide?.referenceHidden) {\n setLocalTemporaryHide(false)\n hidden.value = false\n }\n }\n if (newValue.arrow) {\n const {x, y} = newValue.arrow\n arrowStyle.value = {\n position: 'absolute',\n top: y ? `${y}px` : '',\n left: x ? `${x}px` : '',\n }\n }\n})\n\nconst computedClasses = computed(() => {\n const type = props.tooltip ? 'tooltip' : 'popover'\n return [\n type,\n `b-${type}`,\n {\n show: isVisible.value && !hidden.value,\n fade: !computedNoAnimation.value,\n [`bs-${type}-${resolveBootstrapPlacement(placement.value)}`]: placement.value !== undefined,\n },\n ]\n})\n\nconst {x, y} = useMouse()\n\nconst isElementAndTriggerOutside = () => {\n const triggerRect = triggerElement.value?.getBoundingClientRect()\n const elementRect = floatingElement.value?.getBoundingClientRect()\n const margin = Number.parseInt(props.hideMargin as unknown as string, 10) || 0\n const offsetX = getSafeWindow()?.scrollX || 0\n const offsetY = getSafeWindow()?.scrollY || 0\n const triggerIsOutside =\n !triggerRect ||\n x.value < triggerRect.left + offsetX - margin ||\n x.value > triggerRect.right + offsetX + margin ||\n y.value < triggerRect.top + offsetY - margin ||\n y.value > triggerRect.bottom + offsetY + margin\n\n const isOutside =\n !elementRect ||\n x.value < elementRect.left + offsetX - margin ||\n x.value > elementRect.right + offsetX + margin ||\n y.value < elementRect.top + offsetY - margin ||\n y.value > elementRect.bottom + offsetY + margin\n\n return {triggerIsOutside, isOutside}\n}\n\nlet looptimeout: ReturnType<typeof setTimeout> | undefined\nconst tryHide = (e?: Readonly<Event>) => {\n const {triggerIsOutside, isOutside} = isElementAndTriggerOutside()\n const doc = getSafeDocument()\n if (\n (!props.noninteractive &&\n isOutside &&\n triggerIsOutside &&\n doc &&\n !floatingElement.value?.contains(doc.activeElement) &&\n (!computedTriggers.value.focus || !triggerElement.value?.contains(doc.activeElement))) ||\n (props.noninteractive && triggerIsOutside)\n ) {\n hide(e?.type)\n } else {\n if (looptimeout) clearTimeout(looptimeout)\n looptimeout = setTimeout(() => {\n tryHide(e)\n }, 50)\n }\n}\n\nwatch(isVisible, () => {\n update()\n})\n\ndefineExpose({\n hide,\n show,\n toggle,\n})\n\nconst localToggle = (e: Event) => {\n if (showRef.value) {\n hide(e.type === 'click' ? 'click' : 'toggle')\n } else {\n show()\n }\n}\n\nconst localShow = () => {\n show()\n}\n\n// Compute final trigger configuration\nconst computedTriggers = computed(() => {\n // Manual mode disables all automatic triggers\n if (props.manual) {\n return {hover: false, focus: false, click: false}\n }\n\n // If explicit boolean props are set, use them\n if (props.hover !== undefined || props.focus !== undefined || props.click !== undefined) {\n return {\n hover: props.hover ?? false,\n focus: props.focus ?? false,\n click: props.click ?? false,\n }\n }\n\n // If no explicit props, use default behavior: hover + focus\n return {hover: true, focus: true, click: false}\n})\n\nconst bind = () => {\n // TODO: is this the best way to bind the events?\n // we place a span and get the next element sibling for the listeners\n if (props.target) {\n const elem = getElement(toValue(props.target))\n if (elem) {\n triggerElement.value = elem\n } else {\n console.warn('Target element not found', props.target)\n }\n } else {\n triggerElement.value = placeholder.value?.nextElementSibling as HTMLElement\n }\n if (props.reference) {\n const elem = getElement(toValue(props.reference))\n if (elem) {\n referenceElement.value = elem\n } else {\n console.warn('Reference element not found', props.reference)\n }\n } else {\n referenceElement.value = triggerElement.value\n }\n if (!triggerElement.value || props.manual) {\n return\n }\n\n const triggers = computedTriggers.value\n\n if (triggers.click) {\n triggerElement.value.addEventListener('click', localToggle)\n }\n\n if (triggers.hover) {\n triggerElement.value.addEventListener('pointerenter', localShow)\n triggerElement.value.addEventListener('pointerleave', tryHide)\n }\n\n if (triggers.focus) {\n triggerElement.value.addEventListener('focus', localShow)\n triggerElement.value.addEventListener('blur', tryHide)\n }\n}\n\nconst unbind = () => {\n if (triggerElement.value) {\n triggerElement.value.removeEventListener('click', localToggle)\n triggerElement.value.removeEventListener('pointerenter', localShow)\n triggerElement.value.removeEventListener('pointerleave', tryHide)\n triggerElement.value.removeEventListener('focus', localShow)\n triggerElement.value.removeEventListener('blur', tryHide)\n }\n}\n\nonClickOutside(\n floatingElement,\n () => {\n if (showRef.value && computedTriggers.value.click && !props.noAutoClose && !props.manual)\n hide('click-outside')\n },\n {ignore: [triggerElement]}\n)\n\nwatch(\n [\n () => props.click,\n () => props.hover,\n () => props.focus,\n () => props.manual,\n () => props.target,\n () => props.reference,\n ],\n () => {\n unbind()\n bind()\n // update()\n }\n)\n\nconst sharedSlots = computed<ShowHideSlotsData>(() => ({\n toggle,\n show,\n hide,\n id: computedId.value,\n visible: isVisible.value,\n active: isActive.value,\n}))\n\nonMounted(() => {\n bind()\n nextTick(() => {\n update()\n })\n})\n\nonBeforeUnmount(unbind)\n</script>\n","import type {Boundary, Placement, RootBoundary} from '@floating-ui/vue'\nexport {autoUpdate} from '@floating-ui/vue'\n\nimport {type DirectiveBinding, h, render} from 'vue'\nimport BPopover from '../components/BPopover/BPopover.vue'\nimport type {BPopoverProps} from '../types'\nimport {getSafeDocument} from './dom'\n\nexport const resolveBootstrapPlacement = (placement: Placement): string => {\n const [_placement] = placement.split('-')\n switch (_placement) {\n case 'left':\n return 'start'\n case 'right':\n return 'end'\n default:\n return _placement || 'start'\n }\n}\nexport const resolveBootstrapCaret = (placement: Placement): string => {\n const [_placement] = placement.split('-')\n switch (_placement) {\n case 'left':\n return 'start'\n case 'right':\n return 'end'\n case 'top':\n return 'up'\n case 'bottom':\n return 'down'\n default:\n return _placement || 'start'\n }\n}\n\nexport const resolveActiveStatus = (values: DirectiveBinding['value']): boolean =>\n typeof values !== 'object' || values.active !== false\n\nexport const resolveContent = (\n values: DirectiveBinding['value'],\n el: HTMLElement\n): {title?: string; body?: string} => {\n const isActive = resolveActiveStatus(values)\n if (!isActive) return {}\n\n const missingBindingValue =\n typeof values === 'undefined' ||\n (typeof values === 'object' && !values.title && !values.content && !values.body)\n\n // SSR guard: skip DOM attribute access on server\n const doc = getSafeDocument()\n if (doc !== null) {\n const titleAttr = el.getAttribute('title') || el.getAttribute('data-original-title')\n\n // Always remove title attribute to prevent native tooltip conflicts\n if (titleAttr) {\n el.removeAttribute('title')\n el.setAttribute('data-original-title', titleAttr)\n }\n\n if (missingBindingValue) {\n if (titleAttr) {\n return {\n body: titleAttr,\n }\n }\n return {}\n }\n\n // For string directive values, use title attribute as popover title\n if (typeof values === 'string') {\n return {\n title: titleAttr || undefined,\n body: values,\n }\n }\n } else {\n // SSR: if no binding value provided, return empty\n if (missingBindingValue) return {}\n }\n\n if (typeof values === 'string') {\n return {\n body: values,\n }\n }\n\n // TODO: deprication remove warning in 2025-07\n if (values?.content)\n console.warn('v-b-popover/v-b-tooltip: `content` is deprecated, use `body` instead')\n\n return {\n title: values?.title ? values?.title : undefined,\n body: values?.body ? values?.body : values?.content ? values?.content : undefined,\n }\n}\n\nexport const resolveDirectiveProps = (\n binding: Readonly<DirectiveBinding>,\n el: Readonly<HTMLElement>\n) => ({\n target: el,\n modelValue: binding.modifiers.show,\n inline: binding.modifiers.inline,\n click: binding.modifiers.click,\n hover: binding.modifiers.hover,\n focus: binding.modifiers.focus,\n manual: binding.modifiers.manual,\n realtime: binding.modifiers.realtime,\n lazy: binding.modifiers.lazy,\n placement: binding.modifiers.left\n ? 'left'\n : binding.modifiers.right\n ? 'right'\n : binding.modifiers.bottom\n ? 'bottom'\n : binding.modifiers.top\n ? 'top'\n : undefined,\n ...(typeof binding.value === 'object' ? binding.value : undefined),\n ...(binding.modifiers.interactive ? {noninteractive: false} : undefined),\n title: null,\n body: null,\n})\n\nexport interface ElementWithPopper extends HTMLElement {\n [key: string]: unknown\n $__element?: HTMLElement\n $__tooltip?: Record<\n number,\n {\n binding: string\n destroying: boolean\n }\n >\n $__popover?: Record<\n number,\n {\n binding: string\n destroying: boolean\n }\n >\n}\n\nexport const bind = (\n el: ElementWithPopper,\n binding: Readonly<DirectiveBinding>,\n props: BPopoverProps\n) => {\n const doc = getSafeDocument()\n // SSR guard: skip DOM manipulation on server\n if (doc === null) return\n\n const div = doc.createElement('span')\n if (binding.modifiers.body) doc.body.appendChild(div)\n else if (binding.modifiers.child) el.appendChild(div)\n else el.parentNode?.insertBefore(div, el.nextSibling)\n render(h(BPopover, props), div)\n el.$__element = div\n}\n\nexport const unbind = (el: ElementWithPopper) => {\n const div = el.$__element\n if (!div) return\n\n // Unmount Vue component immediately\n render(null, div)\n\n // SSR guard: skip DOM cleanup on server\n if (getSafeDocument() !== null) {\n delete el.$__element\n return\n }\n\n // Use microtask instead of setTimeout(0) for more predictable cleanup\n // and better performance\n queueMicrotask(() => {\n // Remove the element in next microtask\n // The directive's beforeUnmount will have already cleaned up UID-specific state\n div.remove()\n // Only delete the reference if it still points to the div we just unmounted\n // This prevents deleting a fresh reference if bind() was called again immediately\n if (el.$__element === div) {\n delete el.$__element\n }\n })\n}\n\nexport const isBoundary = (input: unknown): input is Boundary =>\n input === 'clippingAncestors' || input instanceof Element || Array.isArray(input)\n\nexport const isRootBoundary = (input: Boundary | RootBoundary): input is RootBoundary =>\n !isBoundary(input)\n"],"mappings":"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"}
@@ -11,4 +11,4 @@ var getClasses = (props, els, propPrefix, classPrefix = propPrefix) => els.reduc
11
11
  //#endregion
12
12
  export { getClasses as t };
13
13
 
14
- //# sourceMappingURL=getClasses-DwzMjfzX.mjs.map
14
+ //# sourceMappingURL=getClasses-DaWzwT2S.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"getClasses-DwzMjfzX.mjs","names":[],"sources":["../src/utils/getClasses.ts"],"sourcesContent":["export const getClasses = (\n props: Readonly<Record<PropertyKey, unknown>>,\n els: string[],\n propPrefix: string,\n classPrefix = propPrefix\n): string[] =>\n els.reduce((arr: string[], prop) => {\n if (!props[prop]) return arr\n\n arr.push(\n [classPrefix, prop.replace(propPrefix, ''), props[prop]]\n .filter((e) => e && typeof e !== 'boolean')\n .join('-')\n .toLowerCase()\n )\n\n return arr\n }, [] as string[])\n"],"mappings":";AAAA,IAAa,cACX,OACA,KACA,YACA,cAAc,eAEd,IAAI,QAAQ,KAAe,SAAS;AAClC,KAAI,CAAC,MAAM,MAAO,QAAO;AAEzB,KAAI,KACF;EAAC;EAAa,KAAK,QAAQ,YAAY,GAAG;EAAE,MAAM;EAAM,CACrD,QAAQ,MAAM,KAAK,OAAO,MAAM,UAAU,CAC1C,KAAK,IAAI,CACT,aAAa,CACjB;AAED,QAAO;GACN,EAAE,CAAa"}
1
+ {"version":3,"file":"getClasses-DaWzwT2S.mjs","names":[],"sources":["../src/utils/getClasses.ts"],"sourcesContent":["export const getClasses = (\n props: Readonly<Record<PropertyKey, unknown>>,\n els: string[],\n propPrefix: string,\n classPrefix = propPrefix\n): string[] =>\n els.reduce((arr: string[], prop) => {\n if (!props[prop]) return arr\n\n arr.push(\n [classPrefix, prop.replace(propPrefix, ''), props[prop]]\n .filter((e) => e && typeof e !== 'boolean')\n .join('-')\n .toLowerCase()\n )\n\n return arr\n }, [] as string[])\n"],"mappings":";AAAA,IAAa,cACX,OACA,KACA,YACA,cAAc,eAEd,IAAI,QAAQ,KAAe,SAAS;AAClC,KAAI,CAAC,MAAM,MAAO,QAAO;AAEzB,KAAI,KACF;EAAC;EAAa,KAAK,QAAQ,YAAY,GAAG;EAAE,MAAM;EAAM,CACrD,QAAQ,MAAM,KAAK,OAAO,MAAM,UAAU,CAC1C,KAAK,IAAI,CACT,aAAa,CACjB;AAED,QAAO;GACN,EAAE,CAAa"}
@@ -16,4 +16,4 @@ Object.defineProperty(exports, "getClasses", {
16
16
  }
17
17
  });
18
18
 
19
- //# sourceMappingURL=getClasses-BpIobrfU.js.map
19
+ //# sourceMappingURL=getClasses-qqI6x4f4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getClasses-BpIobrfU.js","names":[],"sources":["../src/utils/getClasses.ts"],"sourcesContent":["export const getClasses = (\n props: Readonly<Record<PropertyKey, unknown>>,\n els: string[],\n propPrefix: string,\n classPrefix = propPrefix\n): string[] =>\n els.reduce((arr: string[], prop) => {\n if (!props[prop]) return arr\n\n arr.push(\n [classPrefix, prop.replace(propPrefix, ''), props[prop]]\n .filter((e) => e && typeof e !== 'boolean')\n .join('-')\n .toLowerCase()\n )\n\n return arr\n }, [] as string[])\n"],"mappings":";AAAA,IAAa,cACX,OACA,KACA,YACA,cAAc,eAEd,IAAI,QAAQ,KAAe,SAAS;AAClC,KAAI,CAAC,MAAM,MAAO,QAAO;AAEzB,KAAI,KACF;EAAC;EAAa,KAAK,QAAQ,YAAY,GAAG;EAAE,MAAM;EAAM,CACrD,QAAQ,MAAM,KAAK,OAAO,MAAM,UAAU,CAC1C,KAAK,IAAI,CACT,aAAa,CACjB;AAED,QAAO;GACN,EAAE,CAAa"}
1
+ {"version":3,"file":"getClasses-qqI6x4f4.js","names":[],"sources":["../src/utils/getClasses.ts"],"sourcesContent":["export const getClasses = (\n props: Readonly<Record<PropertyKey, unknown>>,\n els: string[],\n propPrefix: string,\n classPrefix = propPrefix\n): string[] =>\n els.reduce((arr: string[], prop) => {\n if (!props[prop]) return arr\n\n arr.push(\n [classPrefix, prop.replace(propPrefix, ''), props[prop]]\n .filter((e) => e && typeof e !== 'boolean')\n .join('-')\n .toLowerCase()\n )\n\n return arr\n }, [] as string[])\n"],"mappings":";AAAA,IAAa,cACX,OACA,KACA,YACA,cAAc,eAEd,IAAI,QAAQ,KAAe,SAAS;AAClC,KAAI,CAAC,MAAM,MAAO,QAAO;AAEzB,KAAI,KACF;EAAC;EAAa,KAAK,QAAQ,YAAY,GAAG;EAAE,MAAM;EAAM,CACrD,QAAQ,MAAM,KAAK,OAAO,MAAM,UAAU,CAC1C,KAAK,IAAI,CACT,aAAa,CACjB;AAED,QAAO;GACN,EAAE,CAAa"}
@@ -11,4 +11,4 @@ var getElement = (element, root = getSafeDocument()) => {
11
11
  //#endregion
12
12
  export { getElement as t };
13
13
 
14
- //# sourceMappingURL=getElement-BPjh0Qkh.mjs.map
14
+ //# sourceMappingURL=getElement-0_htvrFw.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"getElement-BPjh0Qkh.mjs","names":[],"sources":["../src/utils/getElement.ts"],"sourcesContent":["import type {ComponentPublicInstance} from 'vue'\nimport {getSafeDocument} from './dom'\n\nexport const getElement = (\n element: string | Readonly<ComponentPublicInstance> | Readonly<HTMLElement> | null,\n root: HTMLElement | Document | null = getSafeDocument()\n): HTMLElement | undefined => {\n if (!element) return undefined\n if (typeof element === 'string') {\n if (root === null) return undefined\n const idElement = getSafeDocument()?.getElementById(element)\n return idElement ?? (root.querySelector(element) as HTMLElement) ?? undefined\n }\n return (element as ComponentPublicInstance).$el ?? element\n}\n"],"mappings":";;AAGA,IAAa,cACX,SACA,OAAsC,iBAAiB,KAC3B;AAC5B,KAAI,CAAC,QAAS,QAAO,KAAA;AACrB,KAAI,OAAO,YAAY,UAAU;AAC/B,MAAI,SAAS,KAAM,QAAO,KAAA;AAE1B,SADkB,iBAAiB,EAAE,eAAe,QAAQ,IACvC,KAAK,cAAc,QAAQ,IAAoB,KAAA;;AAEtE,QAAQ,QAAoC,OAAO"}
1
+ {"version":3,"file":"getElement-0_htvrFw.mjs","names":[],"sources":["../src/utils/getElement.ts"],"sourcesContent":["import type {ComponentPublicInstance} from 'vue'\nimport {getSafeDocument} from './dom'\n\nexport const getElement = (\n element: string | Readonly<ComponentPublicInstance> | Readonly<HTMLElement> | null,\n root: HTMLElement | Document | null = getSafeDocument()\n): HTMLElement | undefined => {\n if (!element) return undefined\n if (typeof element === 'string') {\n if (root === null) return undefined\n const idElement = getSafeDocument()?.getElementById(element)\n return idElement ?? (root.querySelector(element) as HTMLElement) ?? undefined\n }\n return (element as ComponentPublicInstance).$el ?? element\n}\n"],"mappings":";;AAGA,IAAa,cACX,SACA,OAAsC,iBAAiB,KAC3B;AAC5B,KAAI,CAAC,QAAS,QAAO,KAAA;AACrB,KAAI,OAAO,YAAY,UAAU;AAC/B,MAAI,SAAS,KAAM,QAAO,KAAA;AAE1B,SADkB,iBAAiB,EAAE,eAAe,QAAQ,IACvC,KAAK,cAAc,QAAQ,IAAoB,KAAA;;AAEtE,QAAQ,QAAoC,OAAO"}
@@ -16,4 +16,4 @@ Object.defineProperty(exports, "getElement", {
16
16
  }
17
17
  });
18
18
 
19
- //# sourceMappingURL=getElement-BPm7tpe2.js.map
19
+ //# sourceMappingURL=getElement-CxWWOx3K.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getElement-BPm7tpe2.js","names":[],"sources":["../src/utils/getElement.ts"],"sourcesContent":["import type {ComponentPublicInstance} from 'vue'\nimport {getSafeDocument} from './dom'\n\nexport const getElement = (\n element: string | Readonly<ComponentPublicInstance> | Readonly<HTMLElement> | null,\n root: HTMLElement | Document | null = getSafeDocument()\n): HTMLElement | undefined => {\n if (!element) return undefined\n if (typeof element === 'string') {\n if (root === null) return undefined\n const idElement = getSafeDocument()?.getElementById(element)\n return idElement ?? (root.querySelector(element) as HTMLElement) ?? undefined\n }\n return (element as ComponentPublicInstance).$el ?? element\n}\n"],"mappings":";;AAGA,IAAa,cACX,SACA,OAAsC,YAAA,iBAAiB,KAC3B;AAC5B,KAAI,CAAC,QAAS,QAAO,KAAA;AACrB,KAAI,OAAO,YAAY,UAAU;AAC/B,MAAI,SAAS,KAAM,QAAO,KAAA;AAE1B,SADkB,YAAA,iBAAiB,EAAE,eAAe,QAAQ,IACvC,KAAK,cAAc,QAAQ,IAAoB,KAAA;;AAEtE,QAAQ,QAAoC,OAAO"}
1
+ {"version":3,"file":"getElement-CxWWOx3K.js","names":[],"sources":["../src/utils/getElement.ts"],"sourcesContent":["import type {ComponentPublicInstance} from 'vue'\nimport {getSafeDocument} from './dom'\n\nexport const getElement = (\n element: string | Readonly<ComponentPublicInstance> | Readonly<HTMLElement> | null,\n root: HTMLElement | Document | null = getSafeDocument()\n): HTMLElement | undefined => {\n if (!element) return undefined\n if (typeof element === 'string') {\n if (root === null) return undefined\n const idElement = getSafeDocument()?.getElementById(element)\n return idElement ?? (root.querySelector(element) as HTMLElement) ?? undefined\n }\n return (element as ComponentPublicInstance).$el ?? element\n}\n"],"mappings":";;AAGA,IAAa,cACX,SACA,OAAsC,YAAA,iBAAiB,KAC3B;AAC5B,KAAI,CAAC,QAAS,QAAO,KAAA;AACrB,KAAI,OAAO,YAAY,UAAU;AAC/B,MAAI,SAAS,KAAM,QAAO,KAAA;AAE1B,SADkB,YAAA,iBAAiB,EAAE,eAAe,QAAQ,IACvC,KAAK,cAAc,QAAQ,IAAoB,KAAA;;AAEtE,QAAQ,QAAoC,OAAO"}
@@ -25,4 +25,4 @@ var getShowHideValue = (registry, id) => {
25
25
  //#endregion
26
26
  export { getShowHideValue as n, getActiveShowHide as t };
27
27
 
28
- //# sourceMappingURL=registryAccess-BO4rk3Sm.mjs.map
28
+ //# sourceMappingURL=registryAccess-C1Ti_nxW.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"registryAccess-BO4rk3Sm.mjs","names":[],"sources":["../src/utils/registryAccess.ts"],"sourcesContent":["import type {Ref} from 'vue'\nimport type {RegisterShowHideInstances, RegisterShowHideMapValue} from './keys'\n\n/**\n * Gets the active show/hide instance for a given ID.\n * Uses getActive() which returns the most recent instance to handle UID disambiguation.\n *\n * @param registry - The show/hide registry ref (or null)\n * @param id - The component ID to look up (or falsy value)\n * @returns The active show/hide instance, undefined if not found, or null if id is falsy\n */\nexport const getActiveShowHide = (\n registry: Ref<Map<string, RegisterShowHideInstances>> | null,\n id: string | undefined\n): RegisterShowHideMapValue | undefined | null => {\n if (!id) return null\n if (!registry) return undefined\n const holder = registry.value.get(id)\n return holder?.getActive()\n}\n\n/**\n * Gets the boolean visibility state of a show/hide component.\n *\n * @param registry - The show/hide registry ref (or null)\n * @param id - The component ID to look up\n * @returns The visibility state (true if shown), or false if not found\n */\nexport const getShowHideValue = (\n registry: Ref<Map<string, RegisterShowHideInstances>> | null,\n id: string\n): boolean => {\n const instance = getActiveShowHide(registry, id)\n return instance?.value.value ?? false\n}\n"],"mappings":";;;;;;;;;AAWA,IAAa,qBACX,UACA,OACgD;AAChD,KAAI,CAAC,GAAI,QAAO;AAChB,KAAI,CAAC,SAAU,QAAO,KAAA;AAEtB,QADe,SAAS,MAAM,IAAI,GAAG,EACtB,WAAW;;;;;;;;;AAU5B,IAAa,oBACX,UACA,OACY;AAEZ,QADiB,kBAAkB,UAAU,GAAG,EAC/B,MAAM,SAAS"}
1
+ {"version":3,"file":"registryAccess-C1Ti_nxW.mjs","names":[],"sources":["../src/utils/registryAccess.ts"],"sourcesContent":["import type {Ref} from 'vue'\nimport type {RegisterShowHideInstances, RegisterShowHideMapValue} from './keys'\n\n/**\n * Gets the active show/hide instance for a given ID.\n * Uses getActive() which returns the most recent instance to handle UID disambiguation.\n *\n * @param registry - The show/hide registry ref (or null)\n * @param id - The component ID to look up (or falsy value)\n * @returns The active show/hide instance, undefined if not found, or null if id is falsy\n */\nexport const getActiveShowHide = (\n registry: Ref<Map<string, RegisterShowHideInstances>> | null,\n id: string | undefined\n): RegisterShowHideMapValue | undefined | null => {\n if (!id) return null\n if (!registry) return undefined\n const holder = registry.value.get(id)\n return holder?.getActive()\n}\n\n/**\n * Gets the boolean visibility state of a show/hide component.\n *\n * @param registry - The show/hide registry ref (or null)\n * @param id - The component ID to look up\n * @returns The visibility state (true if shown), or false if not found\n */\nexport const getShowHideValue = (\n registry: Ref<Map<string, RegisterShowHideInstances>> | null,\n id: string\n): boolean => {\n const instance = getActiveShowHide(registry, id)\n return instance?.value.value ?? false\n}\n"],"mappings":";;;;;;;;;AAWA,IAAa,qBACX,UACA,OACgD;AAChD,KAAI,CAAC,GAAI,QAAO;AAChB,KAAI,CAAC,SAAU,QAAO,KAAA;AAEtB,QADe,SAAS,MAAM,IAAI,GAAG,EACtB,WAAW;;;;;;;;;AAU5B,IAAa,oBACX,UACA,OACY;AAEZ,QADiB,kBAAkB,UAAU,GAAG,EAC/B,MAAM,SAAS"}
@@ -36,4 +36,4 @@ Object.defineProperty(exports, "getShowHideValue", {
36
36
  }
37
37
  });
38
38
 
39
- //# sourceMappingURL=registryAccess-ROXkP1Do.js.map
39
+ //# sourceMappingURL=registryAccess-D-YxwQJq.js.map