bootstrap-vue-next 0.44.2 → 0.44.3
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.
- package/dist/{BAccordion-BJcDjMYL.mjs → BAccordion-BU80DI3B.mjs} +6 -6
- package/dist/{BAccordion-BJcDjMYL.mjs.map → BAccordion-BU80DI3B.mjs.map} +1 -1
- package/dist/{BAccordion-CQIw-5xs.js → BAccordion-DZ50ppJx.js} +6 -6
- package/dist/{BAccordion-CQIw-5xs.js.map → BAccordion-DZ50ppJx.js.map} +1 -1
- package/dist/{BAlert-DaQxH8c1.mjs → BAlert-CuWkyQoY.mjs} +9 -9
- package/dist/{BAlert-DaQxH8c1.mjs.map → BAlert-CuWkyQoY.mjs.map} +1 -1
- package/dist/{BAlert-CVtoW2SX.js → BAlert-DTvDu9YQ.js} +9 -9
- package/dist/{BAlert-CVtoW2SX.js.map → BAlert-DTvDu9YQ.js.map} +1 -1
- package/dist/{BApp-CIu-zI8K.mjs → BApp-DJWC2mB8.mjs} +2 -2
- package/dist/{BApp-CIu-zI8K.mjs.map → BApp-DJWC2mB8.mjs.map} +1 -1
- package/dist/{BApp-cBKQc5Dd.js → BApp-DaM0UKIg.js} +2 -2
- package/dist/{BApp-cBKQc5Dd.js.map → BApp-DaM0UKIg.js.map} +1 -1
- package/dist/BAspect-BULTO240.js +50 -0
- package/dist/BAspect-BULTO240.js.map +1 -0
- package/dist/BAspect-CwokVvvn.mjs +44 -0
- package/dist/BAspect-CwokVvvn.mjs.map +1 -0
- package/dist/{BAvatar-BcQeFYZU.js → BAvatar-eEIyfQso.js} +7 -7
- package/dist/{BAvatar-BcQeFYZU.js.map → BAvatar-eEIyfQso.js.map} +1 -1
- package/dist/{BAvatar-C7Vc4wad.mjs → BAvatar-vI7zHFsj.mjs} +7 -7
- package/dist/{BAvatar-C7Vc4wad.mjs.map → BAvatar-vI7zHFsj.mjs.map} +1 -1
- package/dist/{BBadge-CKGGd4xB.js → BBadge-Cpuk1892.js} +5 -5
- package/dist/{BBadge-CKGGd4xB.js.map → BBadge-Cpuk1892.js.map} +1 -1
- package/dist/{BBadge-Dfkx4SMN.mjs → BBadge-xiyuzuG6.mjs} +5 -5
- package/dist/{BBadge-Dfkx4SMN.mjs.map → BBadge-xiyuzuG6.mjs.map} +1 -1
- package/dist/{BBreadcrumb-1Wxpf1iy.js → BBreadcrumb-BkRDTYv1.js} +4 -4
- package/dist/{BBreadcrumb-1Wxpf1iy.js.map → BBreadcrumb-BkRDTYv1.js.map} +1 -1
- package/dist/{BBreadcrumb-CR35-KcI.mjs → BBreadcrumb-CjPr1FWj.mjs} +4 -4
- package/dist/{BBreadcrumb-CR35-KcI.mjs.map → BBreadcrumb-CjPr1FWj.mjs.map} +1 -1
- package/dist/{BButton-BtCX70_2.mjs → BButton-B4xE6uw6.mjs} +5 -5
- package/dist/{BButton-BtCX70_2.mjs.map → BButton-B4xE6uw6.mjs.map} +1 -1
- package/dist/{BButton-C_bVBx8e.js → BButton-B5oWZOoX.js} +5 -5
- package/dist/{BButton-C_bVBx8e.js.map → BButton-B5oWZOoX.js.map} +1 -1
- package/dist/{BButton-1yV1UiT7.mjs → BButton-DPCH-g3G.mjs} +4 -4
- package/dist/{BButton-1yV1UiT7.mjs.map → BButton-DPCH-g3G.mjs.map} +1 -1
- package/dist/{BButton-BID3NrxE.js → BButton-sb1cBCIb.js} +4 -4
- package/dist/{BButton-BID3NrxE.js.map → BButton-sb1cBCIb.js.map} +1 -1
- package/dist/{BCard-BIQQg9Rx.js → BCard-Bc6OI3iJ.js} +5 -5
- package/dist/{BCard-BIQQg9Rx.js.map → BCard-Bc6OI3iJ.js.map} +1 -1
- package/dist/{BCard-D1J5OVRY.js → BCard-BpaUsusY.js} +3 -3
- package/dist/{BCard-D1J5OVRY.js.map → BCard-BpaUsusY.js.map} +1 -1
- package/dist/{BCard-CY6iY456.mjs → BCard-DQxiuBWk.mjs} +3 -3
- package/dist/{BCard-CY6iY456.mjs.map → BCard-DQxiuBWk.mjs.map} +1 -1
- package/dist/{BCard-Vf1haqo5.mjs → BCard-Dly2DM9l.mjs} +5 -5
- package/dist/{BCard-Vf1haqo5.mjs.map → BCard-Dly2DM9l.mjs.map} +1 -1
- package/dist/{BCarousel-C3CA_wGV.mjs → BCarousel-DarHY6e7.mjs} +5 -5
- package/dist/{BCarousel-C3CA_wGV.mjs.map → BCarousel-DarHY6e7.mjs.map} +1 -1
- package/dist/{BCarousel-BH6WIvJx.js → BCarousel-DvQKUvSp.js} +5 -5
- package/dist/{BCarousel-BH6WIvJx.js.map → BCarousel-DvQKUvSp.js.map} +1 -1
- package/dist/{BCloseButton-CgIVNv2g.js → BCloseButton-CN__Jjcj.js} +2 -2
- package/dist/{BCloseButton-CgIVNv2g.js.map → BCloseButton-CN__Jjcj.js.map} +1 -1
- package/dist/{BCloseButton-DrD0tpan.mjs → BCloseButton-CjgbR1Ec.mjs} +2 -2
- package/dist/{BCloseButton-DrD0tpan.mjs.map → BCloseButton-CjgbR1Ec.mjs.map} +1 -1
- package/dist/{BCol-BjC3q-su.mjs → BCol-BAGO0XhU.mjs} +3 -3
- package/dist/{BCol-BjC3q-su.mjs.map → BCol-BAGO0XhU.mjs.map} +1 -1
- package/dist/{BCol-GOE5drq_.js → BCol-CXEKpSfY.js} +3 -3
- package/dist/{BCol-GOE5drq_.js.map → BCol-CXEKpSfY.js.map} +1 -1
- package/dist/{BCollapse-DqeS5WyB.mjs → BCollapse-BzIGTt3g.mjs} +4 -4
- package/dist/{BCollapse-DqeS5WyB.mjs.map → BCollapse-BzIGTt3g.mjs.map} +1 -1
- package/dist/{BCollapse-BMSZfqqk.js → BCollapse-D2tCzh6C.js} +4 -4
- package/dist/{BCollapse-BMSZfqqk.js.map → BCollapse-D2tCzh6C.js.map} +1 -1
- package/dist/{BContainer-NRhwYcFj.mjs → BContainer-CBvLhEKU.mjs} +4 -4
- package/dist/{BContainer-NRhwYcFj.mjs.map → BContainer-CBvLhEKU.mjs.map} +1 -1
- package/dist/{BContainer-CdNYUb9S.js → BContainer-D0G_4Ccr.js} +4 -4
- package/dist/{BContainer-CdNYUb9S.js.map → BContainer-D0G_4Ccr.js.map} +1 -1
- package/dist/{BDateField-CRFFJ4Sj.mjs → BDateField-Ci05mtvE.mjs} +5 -5
- package/dist/{BDateField-CRFFJ4Sj.mjs.map → BDateField-Ci05mtvE.mjs.map} +1 -1
- package/dist/{BDateField-3Xb73vd-.js → BDateField-DOQj40bP.js} +5 -5
- package/dist/{BDateField-3Xb73vd-.js.map → BDateField-DOQj40bP.js.map} +1 -1
- package/dist/{BDatePicker-rdtRZlra.js → BDatePicker-CHtppbq6.js} +6 -6
- package/dist/{BDatePicker-rdtRZlra.js.map → BDatePicker-CHtppbq6.js.map} +1 -1
- package/dist/{BDatePicker-DPtAqGyV.mjs → BDatePicker-CpwEikK3.mjs} +6 -6
- package/dist/{BDatePicker-DPtAqGyV.mjs.map → BDatePicker-CpwEikK3.mjs.map} +1 -1
- package/dist/{BDropdown-CKnx6hUH.mjs → BDropdown-CkklXJE1.mjs} +10 -10
- package/dist/{BDropdown-CKnx6hUH.mjs.map → BDropdown-CkklXJE1.mjs.map} +1 -1
- package/dist/{BDropdown-k-nulez8.mjs → BDropdown-CmUoG4aR.mjs} +5 -5
- package/dist/{BDropdown-k-nulez8.mjs.map → BDropdown-CmUoG4aR.mjs.map} +1 -1
- package/dist/{BDropdown-C2L69dLN.js → BDropdown-g6_09NKU.js} +10 -10
- package/dist/{BDropdown-C2L69dLN.js.map → BDropdown-g6_09NKU.js.map} +1 -1
- package/dist/{BDropdown-CrgX7oCn.js → BDropdown-i62kSdFN.js} +5 -5
- package/dist/{BDropdown-CrgX7oCn.js.map → BDropdown-i62kSdFN.js.map} +1 -1
- package/dist/{BForm-CPHblWb2.mjs → BForm-BKeJ6pQN.mjs} +2 -2
- package/dist/{BForm-CPHblWb2.mjs.map → BForm-BKeJ6pQN.mjs.map} +1 -1
- package/dist/{BForm-ppPvhIuu.js → BForm-BW5sAbJu.js} +6 -6
- package/dist/{BForm-ppPvhIuu.js.map → BForm-BW5sAbJu.js.map} +1 -1
- package/dist/{BForm-DZW1uWD-.mjs → BForm-BYWcrW3i.mjs} +6 -6
- package/dist/{BForm-DZW1uWD-.mjs.map → BForm-BYWcrW3i.mjs.map} +1 -1
- package/dist/{BForm-B0YEolfQ.js → BForm-D1hmPFIR.js} +2 -2
- package/dist/{BForm-B0YEolfQ.js.map → BForm-D1hmPFIR.js.map} +1 -1
- package/dist/{BFormCheckbox-CsN1a4jm.mjs → BFormCheckbox-LMGyV5Wh.mjs} +5 -5
- package/dist/{BFormCheckbox-CsN1a4jm.mjs.map → BFormCheckbox-LMGyV5Wh.mjs.map} +1 -1
- package/dist/{BFormCheckbox-MEwee9Ij.js → BFormCheckbox-eSsgdaji.js} +5 -5
- package/dist/{BFormCheckbox-MEwee9Ij.js.map → BFormCheckbox-eSsgdaji.js.map} +1 -1
- package/dist/{BFormFile-CNtEA98J.mjs → BFormFile-DUd50zn5.mjs} +4 -4
- package/dist/{BFormFile-CNtEA98J.mjs.map → BFormFile-DUd50zn5.mjs.map} +1 -1
- package/dist/{BFormFile-BEHeBj6q.js → BFormFile-N491i_FE.js} +4 -4
- package/dist/{BFormFile-BEHeBj6q.js.map → BFormFile-N491i_FE.js.map} +1 -1
- package/dist/{BFormGroup-DBVGyJ-f.mjs → BFormGroup-Bm3Af8hx.mjs} +8 -8
- package/dist/{BFormGroup-DBVGyJ-f.mjs.map → BFormGroup-Bm3Af8hx.mjs.map} +1 -1
- package/dist/{BFormGroup-CGjb_pUi.js → BFormGroup-DN4AyqDY.js} +8 -8
- package/dist/{BFormGroup-CGjb_pUi.js.map → BFormGroup-DN4AyqDY.js.map} +1 -1
- package/dist/{BFormInput-4vCGzAoO.js → BFormInput-DniXdPz5.js} +3 -3
- package/dist/{BFormInput-4vCGzAoO.js.map → BFormInput-DniXdPz5.js.map} +1 -1
- package/dist/{BFormInput-DrZnHCLO.mjs → BFormInput-UqEvTffC.mjs} +3 -3
- package/dist/{BFormInput-DrZnHCLO.mjs.map → BFormInput-UqEvTffC.mjs.map} +1 -1
- package/dist/{BFormRadio-BXpiJTsS.mjs → BFormRadio-B7fL16AZ.mjs} +5 -5
- package/dist/{BFormRadio-BXpiJTsS.mjs.map → BFormRadio-B7fL16AZ.mjs.map} +1 -1
- package/dist/{BFormRadio-BzHsRe9X.js → BFormRadio-C9U9PbDA.js} +5 -5
- package/dist/{BFormRadio-BzHsRe9X.js.map → BFormRadio-C9U9PbDA.js.map} +1 -1
- package/dist/{BFormRating-Cq94zurU.mjs → BFormRating-BJI4hTHm.mjs} +4 -4
- package/dist/{BFormRating-Cq94zurU.mjs.map → BFormRating-BJI4hTHm.mjs.map} +1 -1
- package/dist/{BFormRating-_MVRGNOF.js → BFormRating-JeEiyayh.js} +4 -4
- package/dist/{BFormRating-_MVRGNOF.js.map → BFormRating-JeEiyayh.js.map} +1 -1
- package/dist/{BFormSelect-DbpJ_0j-.mjs → BFormSelect-BleWBr-U.mjs} +6 -6
- package/dist/{BFormSelect-DbpJ_0j-.mjs.map → BFormSelect-BleWBr-U.mjs.map} +1 -1
- package/dist/{BFormSelect-DFa1-5ez.js → BFormSelect-D_yYXijf.js} +6 -6
- package/dist/{BFormSelect-DFa1-5ez.js.map → BFormSelect-D_yYXijf.js.map} +1 -1
- package/dist/{BFormSpinbutton-DmzfRDeR.mjs → BFormSpinbutton-5JRMW1Bo.mjs} +5 -5
- package/dist/{BFormSpinbutton-DmzfRDeR.mjs.map → BFormSpinbutton-5JRMW1Bo.mjs.map} +1 -1
- package/dist/{BFormSpinbutton-DzJ071Gz.js → BFormSpinbutton-Dix9U_c1.js} +5 -5
- package/dist/{BFormSpinbutton-DzJ071Gz.js.map → BFormSpinbutton-Dix9U_c1.js.map} +1 -1
- package/dist/{BFormTags-pK9i3cOB.js → BFormTags-BUoQXBA9.js} +7 -7
- package/dist/{BFormTags-pK9i3cOB.js.map → BFormTags-BUoQXBA9.js.map} +1 -1
- package/dist/{BFormTags-Cobh04P9.mjs → BFormTags-BjyHMiw1.mjs} +7 -7
- package/dist/{BFormTags-Cobh04P9.mjs.map → BFormTags-BjyHMiw1.mjs.map} +1 -1
- package/dist/{BFormTextarea-BtXarcjA.js → BFormTextarea-BIrsIHU1.js} +3 -3
- package/dist/{BFormTextarea-BtXarcjA.js.map → BFormTextarea-BIrsIHU1.js.map} +1 -1
- package/dist/{BFormTextarea-ClcoJrSM.mjs → BFormTextarea-D8waUYBT.mjs} +3 -3
- package/dist/{BFormTextarea-ClcoJrSM.mjs.map → BFormTextarea-D8waUYBT.mjs.map} +1 -1
- package/dist/{BFormValidFeedback-foz9BlkH.mjs → BFormValidFeedback-BNQNdH26.mjs} +3 -3
- package/dist/{BFormValidFeedback-foz9BlkH.mjs.map → BFormValidFeedback-BNQNdH26.mjs.map} +1 -1
- package/dist/{BFormValidFeedback-Ot8gdDST.js → BFormValidFeedback-CiZ4cn1v.js} +3 -3
- package/dist/{BFormValidFeedback-Ot8gdDST.js.map → BFormValidFeedback-CiZ4cn1v.js.map} +1 -1
- package/dist/{BImg-BrA0ZRS6.js → BImg-BFKDHH7y.js} +4 -4
- package/dist/{BImg-BrA0ZRS6.js.map → BImg-BFKDHH7y.js.map} +1 -1
- package/dist/{BImg-b_3eTiEq.mjs → BImg-BZ7hac1l.mjs} +4 -4
- package/dist/{BImg-b_3eTiEq.mjs.map → BImg-BZ7hac1l.mjs.map} +1 -1
- package/dist/{BInputGroup-Cr0qLUds.js → BInputGroup-DwrQVmGT.js} +2 -2
- package/dist/{BInputGroup-Cr0qLUds.js.map → BInputGroup-DwrQVmGT.js.map} +1 -1
- package/dist/{BInputGroup-B8fKBtip.mjs → BInputGroup-xno5tJWV.mjs} +2 -2
- package/dist/{BInputGroup-B8fKBtip.mjs.map → BInputGroup-xno5tJWV.mjs.map} +1 -1
- package/dist/{BLink-DoYZ8dBl.mjs → BLink-Cz5YCsnv.mjs} +4 -4
- package/dist/{BLink-DoYZ8dBl.mjs.map → BLink-Cz5YCsnv.mjs.map} +1 -1
- package/dist/{BLink-DW7s8W_N.js → BLink-uemyYKst.js} +4 -4
- package/dist/{BLink-DW7s8W_N.js.map → BLink-uemyYKst.js.map} +1 -1
- package/dist/{BListGroup-ByYmtuCM.mjs → BListGroup-DHdBjAI1.mjs} +3 -3
- package/dist/{BListGroup-ByYmtuCM.mjs.map → BListGroup-DHdBjAI1.mjs.map} +1 -1
- package/dist/{BListGroup-clQNXk23.js → BListGroup-yJ9SOYxq.js} +3 -3
- package/dist/{BListGroup-clQNXk23.js.map → BListGroup-yJ9SOYxq.js.map} +1 -1
- package/dist/{BModal-d3FKaKhA.js → BModal-CVf686JS.js} +10 -10
- package/dist/{BModal-d3FKaKhA.js.map → BModal-CVf686JS.js.map} +1 -1
- package/dist/{BModal-TCXrZEZk.mjs → BModal-DkX-2F1v.mjs} +10 -10
- package/dist/{BModal-TCXrZEZk.mjs.map → BModal-DkX-2F1v.mjs.map} +1 -1
- package/dist/{BNav-BBr8213N.mjs → BNav-D88X9xHW.mjs} +7 -7
- package/dist/{BNav-BBr8213N.mjs.map → BNav-D88X9xHW.mjs.map} +1 -1
- package/dist/{BNav-BMAZcVDS.js → BNav-dxOO1pJI.js} +7 -7
- package/dist/{BNav-BMAZcVDS.js.map → BNav-dxOO1pJI.js.map} +1 -1
- package/dist/{BNavbar-DtgNmsyI.mjs → BNavbar-DALgesyZ.mjs} +6 -6
- package/dist/{BNavbar-DtgNmsyI.mjs.map → BNavbar-DALgesyZ.mjs.map} +1 -1
- package/dist/{BNavbar-BfYFzX1s.js → BNavbar-EayLl9th.js} +6 -6
- package/dist/{BNavbar-BfYFzX1s.js.map → BNavbar-EayLl9th.js.map} +1 -1
- package/dist/{BOffcanvas-YsVap-9w.js → BOffcanvas-CJDXvuCR.js} +9 -9
- package/dist/{BOffcanvas-YsVap-9w.js.map → BOffcanvas-CJDXvuCR.js.map} +1 -1
- package/dist/{BOffcanvas-BklEA-4x.mjs → BOffcanvas-CJUaqRuT.mjs} +9 -9
- package/dist/{BOffcanvas-BklEA-4x.mjs.map → BOffcanvas-CJUaqRuT.mjs.map} +1 -1
- package/dist/{BOverlay-DOfvBAZb.mjs → BOverlay-CZUXqAOJ.mjs} +6 -6
- package/dist/{BOverlay-DOfvBAZb.mjs.map → BOverlay-CZUXqAOJ.mjs.map} +1 -1
- package/dist/{BOverlay-Dg9YM7p1.js → BOverlay-Ct1Be98i.js} +6 -6
- package/dist/{BOverlay-Dg9YM7p1.js.map → BOverlay-Ct1Be98i.js.map} +1 -1
- package/dist/{BPagination-B868NBmG.mjs → BPagination-BOW0ZgHP.mjs} +5 -5
- package/dist/{BPagination-B868NBmG.mjs.map → BPagination-BOW0ZgHP.mjs.map} +1 -1
- package/dist/{BPagination-9P9Xh3cN.js → BPagination-Dm-dKaSQ.js} +5 -5
- package/dist/{BPagination-9P9Xh3cN.js.map → BPagination-Dm-dKaSQ.js.map} +1 -1
- package/dist/{BPlaceholder-DPEVmogO.js → BPlaceholder-LEAD84zn.js} +5 -5
- package/dist/{BPlaceholder-DPEVmogO.js.map → BPlaceholder-LEAD84zn.js.map} +1 -1
- package/dist/{BPlaceholder-7UJ3Nyb3.mjs → BPlaceholder-V5sitFFG.mjs} +5 -5
- package/dist/{BPlaceholder-7UJ3Nyb3.mjs.map → BPlaceholder-V5sitFFG.mjs.map} +1 -1
- package/dist/{BProgress-Bdf5AncM.mjs → BProgress-D0yfZ2Ze.mjs} +3 -3
- package/dist/{BProgress-Bdf5AncM.mjs.map → BProgress-D0yfZ2Ze.mjs.map} +1 -1
- package/dist/{BProgress-CeEIdt1a.js → BProgress-DAnEfDXq.js} +3 -3
- package/dist/{BProgress-CeEIdt1a.js.map → BProgress-DAnEfDXq.js.map} +1 -1
- package/dist/{BRow-NaXJzpS-.mjs → BRow-BKxCxJUU.mjs} +4 -4
- package/dist/{BRow-NaXJzpS-.mjs.map → BRow-BKxCxJUU.mjs.map} +1 -1
- package/dist/{BRow-DGi1WkB9.js → BRow-bG6T9jY3.js} +4 -4
- package/dist/{BRow-DGi1WkB9.js.map → BRow-bG6T9jY3.js.map} +1 -1
- package/dist/{BSpinner-Kska3Bsd.js → BSpinner-8UMAINYb.js} +3 -3
- package/dist/{BSpinner-Kska3Bsd.js.map → BSpinner-8UMAINYb.js.map} +1 -1
- package/dist/{BSpinner-DlLxrIkh.mjs → BSpinner-BpnwONvx.mjs} +3 -3
- package/dist/{BSpinner-DlLxrIkh.mjs.map → BSpinner-BpnwONvx.mjs.map} +1 -1
- package/dist/{BTable-C__GSYX2.mjs → BTable-CYvvqn6I.mjs} +8 -8
- package/dist/{BTable-C__GSYX2.mjs.map → BTable-CYvvqn6I.mjs.map} +1 -1
- package/dist/{BTable-BiNbXnsR.js → BTable-DSuQWlMd.js} +8 -8
- package/dist/{BTable-BiNbXnsR.js.map → BTable-DSuQWlMd.js.map} +1 -1
- package/dist/{BTableSimple-fwaF0Kws.js → BTableSimple-Bq8PToKM.js} +5 -5
- package/dist/{BTableSimple-fwaF0Kws.js.map → BTableSimple-Bq8PToKM.js.map} +1 -1
- package/dist/{BTableSimple-eebTf2L5.mjs → BTableSimple-DfE2d_yr.mjs} +5 -5
- package/dist/{BTableSimple-eebTf2L5.mjs.map → BTableSimple-DfE2d_yr.mjs.map} +1 -1
- package/dist/{BTabs-BxwRSBMv.js → BTabs-C_zLwDuN.js} +6 -6
- package/dist/{BTabs-BxwRSBMv.js.map → BTabs-C_zLwDuN.js.map} +1 -1
- package/dist/{BTabs-7IT0dhVr.mjs → BTabs-De_t7t0r.mjs} +6 -6
- package/dist/{BTabs-7IT0dhVr.mjs.map → BTabs-De_t7t0r.mjs.map} +1 -1
- package/dist/{BTimeField-CZw1_K7v.mjs → BTimeField-Ba7V9u04.mjs} +4 -4
- package/dist/{BTimeField-CZw1_K7v.mjs.map → BTimeField-Ba7V9u04.mjs.map} +1 -1
- package/dist/{BTimeField-CngB6NOW.js → BTimeField-BjiB8bN9.js} +4 -4
- package/dist/{BTimeField-CngB6NOW.js.map → BTimeField-BjiB8bN9.js.map} +1 -1
- package/dist/{BToast-IYBku5Nr.mjs → BToast-DGcCFzvf.mjs} +10 -10
- package/dist/{BToast-IYBku5Nr.mjs.map → BToast-DGcCFzvf.mjs.map} +1 -1
- package/dist/{BToast-BraVbf4N.js → BToast-SdIR1HJa.js} +10 -10
- package/dist/{BToast-BraVbf4N.js.map → BToast-SdIR1HJa.js.map} +1 -1
- package/dist/{BTooltip-B2hE5Q6m.js → BTooltip-CrHabClh.js} +3 -3
- package/dist/{BTooltip-B2hE5Q6m.js.map → BTooltip-CrHabClh.js.map} +1 -1
- package/dist/{BTooltip-BuK_zb1B.mjs → BTooltip-U16exDFb.mjs} +3 -3
- package/dist/{BTooltip-BuK_zb1B.mjs.map → BTooltip-U16exDFb.mjs.map} +1 -1
- package/dist/{BootstrapVueOptions-Dtdn7_AJ.mjs → BootstrapVueOptions-Bswes3nS.mjs} +2 -1
- package/dist/BootstrapVueOptions-Bswes3nS.mjs.map +1 -0
- package/dist/{BootstrapVueOptions-CVxLmDvx.js → BootstrapVueOptions-BxTxSFXn.js} +2 -1
- package/dist/BootstrapVueOptions-BxTxSFXn.js.map +1 -0
- package/dist/{ConditionalTeleport-BDWcebyD.js → ConditionalTeleport-BJZk6HAx.js} +1 -1
- package/dist/{ConditionalTeleport-BDWcebyD.js.map → ConditionalTeleport-BJZk6HAx.js.map} +1 -1
- package/dist/{ConditionalTeleport-B4KYZIM6.mjs → ConditionalTeleport-BNsziElf.mjs} +1 -1
- package/dist/{ConditionalTeleport-B4KYZIM6.mjs.map → ConditionalTeleport-BNsziElf.mjs.map} +1 -1
- package/dist/{ConditionalWrapper-ZqZKYsic.js → ConditionalWrapper-BcQirqyl.js} +1 -1
- package/dist/{ConditionalWrapper-ZqZKYsic.js.map → ConditionalWrapper-BcQirqyl.js.map} +1 -1
- package/dist/{ConditionalWrapper-BR9CKZNU.mjs → ConditionalWrapper-BjjQWNtR.mjs} +1 -1
- package/dist/{ConditionalWrapper-BR9CKZNU.mjs.map → ConditionalWrapper-BjjQWNtR.mjs.map} +1 -1
- package/dist/{DateRangeFieldInput-bA6IK9lx.mjs → DateRangeFieldInput-BaxQpIux.mjs} +2 -2
- package/dist/{DateRangeFieldInput-bA6IK9lx.mjs.map → DateRangeFieldInput-BaxQpIux.mjs.map} +1 -1
- package/dist/{DateRangeFieldInput-bXDqGVUe.js → DateRangeFieldInput-qCIvFM7a.js} +2 -2
- package/dist/{DateRangeFieldInput-bXDqGVUe.js.map → DateRangeFieldInput-qCIvFM7a.js.map} +1 -1
- package/dist/bootstrap-vue-next.mjs +58 -57
- package/dist/bootstrap-vue-next.umd.js +58 -56
- package/dist/{classes-D6JE1Dex.mjs → classes-B0E5Y78Y.mjs} +1 -1
- package/dist/{classes-D6JE1Dex.mjs.map → classes-B0E5Y78Y.mjs.map} +1 -1
- package/dist/{classes-vdSVs0gA.js → classes-D5wrmmVs.js} +1 -1
- package/dist/{classes-vdSVs0gA.js.map → classes-D5wrmmVs.js.map} +1 -1
- package/dist/components/BAccordion/BAccordionItem.vue.d.mts +1 -1
- package/dist/components/BAccordion/BAccordionItem.vue.d.ts +1 -1
- package/dist/components/BAspect/BAspect.vue.d.mts +21 -0
- package/dist/components/BAspect/BAspect.vue.d.ts +21 -0
- package/dist/components/BAspect/index.d.mts +1 -0
- package/dist/components/BAspect/index.d.ts +1 -0
- package/dist/components/BButton/BButtonGroup.vue.d.mts +1 -1
- package/dist/components/BButton/BButtonGroup.vue.d.ts +1 -1
- package/dist/components/BCard/BCard.vue.d.mts +1 -1
- package/dist/components/BCard/BCard.vue.d.ts +1 -1
- package/dist/components/BCard/BCardImg.vue.d.mts +1 -1
- package/dist/components/BCard/BCardImg.vue.d.ts +1 -1
- package/dist/components/BCollapse/BCollapse.vue.d.mts +1 -1
- package/dist/components/BCollapse/BCollapse.vue.d.ts +1 -1
- package/dist/components/BDropdown/BDropdown.vue.d.mts +1 -1
- package/dist/components/BDropdown/BDropdown.vue.d.ts +1 -1
- package/dist/components/BForm/BFormInvalidFeedback.vue.d.mts +1 -1
- package/dist/components/BForm/BFormInvalidFeedback.vue.d.ts +1 -1
- package/dist/components/BForm/BFormValidFeedback.vue.d.mts +1 -1
- package/dist/components/BForm/BFormValidFeedback.vue.d.ts +1 -1
- package/dist/components/BFormCheckbox/BFormCheckbox.vue.d.mts +1 -1
- package/dist/components/BFormCheckbox/BFormCheckbox.vue.d.ts +1 -1
- package/dist/components/BFormFile/BFormFile.vue.d.mts +1 -1
- package/dist/components/BFormFile/BFormFile.vue.d.ts +1 -1
- package/dist/components/BFormGroup/BFormGroup.vue.d.mts +1 -1
- package/dist/components/BFormGroup/BFormGroup.vue.d.ts +1 -1
- package/dist/components/BImg/BImg.vue.d.mts +1 -1
- package/dist/components/BImg/BImg.vue.d.ts +1 -1
- package/dist/components/BInputGroup/BInputGroup.vue.d.mts +1 -1
- package/dist/components/BInputGroup/BInputGroup.vue.d.ts +1 -1
- package/dist/components/BListGroup/BListGroup.vue.d.mts +1 -1
- package/dist/components/BListGroup/BListGroup.vue.d.ts +1 -1
- package/dist/components/BNav/BNav.vue.d.mts +1 -1
- package/dist/components/BNav/BNav.vue.d.ts +1 -1
- package/dist/components/BNav/BNavItemDropdown.vue.d.mts +13 -13
- package/dist/components/BNav/BNavItemDropdown.vue.d.ts +13 -13
- package/dist/components/BNavbar/BNavbar.vue.d.mts +1 -1
- package/dist/components/BNavbar/BNavbar.vue.d.ts +1 -1
- package/dist/components/BNavbar/BNavbarNav.vue.d.mts +1 -1
- package/dist/components/BNavbar/BNavbarNav.vue.d.ts +1 -1
- package/dist/components/BOffcanvas/BOffcanvas.vue.d.mts +1 -1
- package/dist/components/BOffcanvas/BOffcanvas.vue.d.ts +1 -1
- package/dist/components/BPlaceholder/BPlaceholder.vue.d.mts +1 -1
- package/dist/components/BPlaceholder/BPlaceholder.vue.d.ts +1 -1
- package/dist/components/BPlaceholder/BPlaceholderButton.vue.d.mts +1 -1
- package/dist/components/BPlaceholder/BPlaceholderButton.vue.d.ts +1 -1
- package/dist/components/BProgress/BProgress.vue.d.mts +1 -1
- package/dist/components/BProgress/BProgress.vue.d.ts +1 -1
- package/dist/components/BSpinner/BSpinner.vue.d.mts +2 -2
- package/dist/components/BSpinner/BSpinner.vue.d.ts +2 -2
- package/dist/components/BTabs/BTabs.vue.d.mts +1 -1
- package/dist/components/BTabs/BTabs.vue.d.ts +1 -1
- package/dist/components/index.d.mts +1 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/{constants-CQ8ucyPI.mjs → constants-BSIK14yA.mjs} +1 -1
- package/dist/{constants-CQ8ucyPI.mjs.map → constants-BSIK14yA.mjs.map} +1 -1
- package/dist/{constants-DMR5FAE3.js → constants-hccBP09R.js} +1 -1
- package/dist/{constants-DMR5FAE3.js.map → constants-hccBP09R.js.map} +1 -1
- package/dist/{debounce-BfDJWP7y.js → debounce-DQsw8FWv.js} +2 -2
- package/dist/{debounce-BfDJWP7y.js.map → debounce-DQsw8FWv.js.map} +1 -1
- package/dist/{debounce-BIVtU5ek.mjs → debounce-DeVyu4Ny.mjs} +2 -2
- package/dist/{debounce-BIVtU5ek.mjs.map → debounce-DeVyu4Ny.mjs.map} +1 -1
- package/dist/{flattenFragments-DfLb4YB2.js → flattenFragments-C1WWqm25.js} +1 -1
- package/dist/{flattenFragments-DfLb4YB2.js.map → flattenFragments-C1WWqm25.js.map} +1 -1
- package/dist/{flattenFragments-B1W_x5L2.mjs → flattenFragments-ClbLQGqR.mjs} +1 -1
- package/dist/{flattenFragments-B1W_x5L2.mjs.map → flattenFragments-ClbLQGqR.mjs.map} +1 -1
- package/dist/{floating-ui.vue-B09oeNTW.js → floating-ui.vue-CW2IKmom.js} +1 -1
- package/dist/{floating-ui.vue-B09oeNTW.js.map → floating-ui.vue-CW2IKmom.js.map} +1 -1
- package/dist/{floating-ui.vue-CcfLuVCZ.mjs → floating-ui.vue-DIWi4LGB.mjs} +1 -1
- package/dist/{floating-ui.vue-CcfLuVCZ.mjs.map → floating-ui.vue-DIWi4LGB.mjs.map} +1 -1
- package/dist/{floatingUi-9NcUa5r7.mjs → floatingUi-BErx3eqf.mjs} +7 -7
- package/dist/{floatingUi-9NcUa5r7.mjs.map → floatingUi-BErx3eqf.mjs.map} +1 -1
- package/dist/{floatingUi-BLlCKrbj.js → floatingUi-syPgL0ve.js} +7 -7
- package/dist/{floatingUi-BLlCKrbj.js.map → floatingUi-syPgL0ve.js.map} +1 -1
- package/dist/{functions-C6AToZGR.mjs → functions-BcMenQqL.mjs} +1 -1
- package/dist/functions-BcMenQqL.mjs.map +1 -0
- package/dist/{functions-DCQKr6wc.js → functions-Bx1HDqMv.js} +1 -1
- package/dist/functions-Bx1HDqMv.js.map +1 -0
- package/dist/{getClasses-BQLj0MHF.js → getClasses-BpIobrfU.js} +1 -1
- package/dist/{getClasses-BQLj0MHF.js.map → getClasses-BpIobrfU.js.map} +1 -1
- package/dist/{getClasses-_sZDgS-l.mjs → getClasses-DwzMjfzX.mjs} +1 -1
- package/dist/{getClasses-_sZDgS-l.mjs.map → getClasses-DwzMjfzX.mjs.map} +1 -1
- package/dist/{getElement-D5DvkPzw.mjs → getElement-BPjh0Qkh.mjs} +1 -1
- package/dist/{getElement-D5DvkPzw.mjs.map → getElement-BPjh0Qkh.mjs.map} +1 -1
- package/dist/{getElement-BXXYfxYW.js → getElement-BPm7tpe2.js} +1 -1
- package/dist/{getElement-BXXYfxYW.js.map → getElement-BPm7tpe2.js.map} +1 -1
- package/dist/{object-CPeShLVx.js → object-BN7QwMcz.js} +1 -1
- package/dist/{object-CPeShLVx.js.map → object-BN7QwMcz.js.map} +1 -1
- package/dist/{object-B9ZW1_9f.mjs → object-CHQkkner.mjs} +1 -1
- package/dist/{object-B9ZW1_9f.mjs.map → object-CHQkkner.mjs.map} +1 -1
- package/dist/{registryAccess-B4xlltdn.mjs → registryAccess-BO4rk3Sm.mjs} +1 -1
- package/dist/{registryAccess-B4xlltdn.mjs.map → registryAccess-BO4rk3Sm.mjs.map} +1 -1
- package/dist/{registryAccess-Be_uJ4EV.js → registryAccess-ROXkP1Do.js} +1 -1
- package/dist/{registryAccess-Be_uJ4EV.js.map → registryAccess-ROXkP1Do.js.map} +1 -1
- package/dist/src/components/BAccordion/index.mjs +1 -1
- package/dist/src/components/BAccordion/index.umd.js +1 -1
- package/dist/src/components/BAlert/index.mjs +1 -1
- package/dist/src/components/BAlert/index.umd.js +1 -1
- package/dist/src/components/BApp/index.mjs +1 -1
- package/dist/src/components/BApp/index.umd.js +1 -1
- package/dist/src/components/BAspect/index.mjs +2 -0
- package/dist/src/components/BAspect/index.umd.js +3 -0
- package/dist/src/components/BAvatar/index.mjs +1 -1
- package/dist/src/components/BAvatar/index.umd.js +1 -1
- package/dist/src/components/BBadge/index.mjs +1 -1
- package/dist/src/components/BBadge/index.umd.js +1 -1
- package/dist/src/components/BBreadcrumb/index.mjs +1 -1
- package/dist/src/components/BBreadcrumb/index.umd.js +1 -1
- package/dist/src/components/BButton/index.mjs +3 -3
- package/dist/src/components/BButton/index.umd.js +3 -3
- package/dist/src/components/BCard/index.mjs +2 -2
- package/dist/src/components/BCard/index.umd.js +2 -2
- package/dist/src/components/BCarousel/index.mjs +1 -1
- package/dist/src/components/BCarousel/index.umd.js +1 -1
- package/dist/src/components/BCol/index.mjs +1 -1
- package/dist/src/components/BCol/index.umd.js +1 -1
- package/dist/src/components/BCollapse/index.mjs +1 -1
- package/dist/src/components/BCollapse/index.umd.js +1 -1
- package/dist/src/components/BContainer/index.mjs +3 -3
- package/dist/src/components/BContainer/index.umd.js +3 -3
- package/dist/src/components/BDateField/index.mjs +1 -1
- package/dist/src/components/BDateField/index.umd.js +1 -1
- package/dist/src/components/BDatePicker/index.mjs +1 -1
- package/dist/src/components/BDatePicker/index.umd.js +1 -1
- package/dist/src/components/BDropdown/index.mjs +2 -2
- package/dist/src/components/BDropdown/index.umd.js +2 -2
- package/dist/src/components/BForm/index.mjs +3 -3
- package/dist/src/components/BForm/index.umd.js +3 -3
- package/dist/src/components/BFormCheckbox/index.mjs +1 -1
- package/dist/src/components/BFormCheckbox/index.umd.js +1 -1
- package/dist/src/components/BFormFile/index.mjs +1 -1
- package/dist/src/components/BFormFile/index.umd.js +1 -1
- package/dist/src/components/BFormGroup/index.mjs +1 -1
- package/dist/src/components/BFormGroup/index.umd.js +1 -1
- package/dist/src/components/BFormInput/index.mjs +1 -1
- package/dist/src/components/BFormInput/index.umd.js +1 -1
- package/dist/src/components/BFormRadio/index.mjs +1 -1
- package/dist/src/components/BFormRadio/index.umd.js +1 -1
- package/dist/src/components/BFormRating/index.mjs +1 -1
- package/dist/src/components/BFormRating/index.umd.js +1 -1
- package/dist/src/components/BFormSelect/index.mjs +2 -2
- package/dist/src/components/BFormSelect/index.umd.js +2 -2
- package/dist/src/components/BFormSpinbutton/index.mjs +1 -1
- package/dist/src/components/BFormSpinbutton/index.umd.js +1 -1
- package/dist/src/components/BFormTags/index.mjs +1 -1
- package/dist/src/components/BFormTags/index.umd.js +1 -1
- package/dist/src/components/BFormTextarea/index.mjs +1 -1
- package/dist/src/components/BFormTextarea/index.umd.js +1 -1
- package/dist/src/components/BImg/index.mjs +1 -1
- package/dist/src/components/BImg/index.umd.js +1 -1
- package/dist/src/components/BInputGroup/index.mjs +1 -1
- package/dist/src/components/BInputGroup/index.umd.js +1 -1
- package/dist/src/components/BLink/index.mjs +1 -1
- package/dist/src/components/BLink/index.umd.js +1 -1
- package/dist/src/components/BListGroup/index.mjs +1 -1
- package/dist/src/components/BListGroup/index.umd.js +1 -1
- package/dist/src/components/BModal/index.mjs +1 -1
- package/dist/src/components/BModal/index.umd.js +1 -1
- package/dist/src/components/BNav/index.mjs +1 -1
- package/dist/src/components/BNav/index.umd.js +1 -1
- package/dist/src/components/BNavbar/index.mjs +1 -1
- package/dist/src/components/BNavbar/index.umd.js +1 -1
- package/dist/src/components/BOffcanvas/index.mjs +1 -1
- package/dist/src/components/BOffcanvas/index.umd.js +1 -1
- package/dist/src/components/BOverlay/index.mjs +1 -1
- package/dist/src/components/BOverlay/index.umd.js +1 -1
- package/dist/src/components/BPagination/index.mjs +1 -1
- package/dist/src/components/BPagination/index.umd.js +1 -1
- package/dist/src/components/BPlaceholder/index.mjs +1 -1
- package/dist/src/components/BPlaceholder/index.umd.js +1 -1
- package/dist/src/components/BPopover/index.mjs +1 -1
- package/dist/src/components/BPopover/index.umd.js +1 -1
- package/dist/src/components/BProgress/index.mjs +1 -1
- package/dist/src/components/BProgress/index.umd.js +1 -1
- package/dist/src/components/BRow/index.mjs +1 -1
- package/dist/src/components/BRow/index.umd.js +1 -1
- package/dist/src/components/BSpinner/index.mjs +1 -1
- package/dist/src/components/BSpinner/index.umd.js +1 -1
- package/dist/src/components/BTable/index.mjs +2 -2
- package/dist/src/components/BTable/index.umd.js +2 -2
- package/dist/src/components/BTabs/index.mjs +1 -1
- package/dist/src/components/BTabs/index.umd.js +1 -1
- package/dist/src/components/BTimeField/index.mjs +1 -1
- package/dist/src/components/BTimeField/index.umd.js +1 -1
- package/dist/src/components/BToast/index.mjs +1 -1
- package/dist/src/components/BToast/index.umd.js +1 -1
- package/dist/src/components/BTooltip/index.mjs +1 -1
- package/dist/src/components/BTooltip/index.umd.js +1 -1
- package/dist/src/components/index.mjs +57 -55
- package/dist/src/components/index.mjs.map +1 -1
- package/dist/src/components/index.umd.js +57 -54
- package/dist/src/components/index.umd.js.map +1 -1
- package/dist/src/composables/useModal/index.mjs +1 -1
- package/dist/src/composables/useModal/index.umd.js +1 -1
- package/dist/src/composables/usePopover/index.mjs +2 -2
- package/dist/src/composables/usePopover/index.umd.js +2 -2
- package/dist/src/composables/useScrollspy/index.mjs +1 -1
- package/dist/src/composables/useScrollspy/index.umd.js +1 -1
- package/dist/src/composables/useToast/index.mjs +1 -1
- package/dist/src/composables/useToast/index.umd.js +1 -1
- package/dist/src/composables/useToggle/index.mjs +1 -1
- package/dist/src/composables/useToggle/index.umd.js +1 -1
- package/dist/src/directives/BPopover/index.mjs +2 -2
- package/dist/src/directives/BPopover/index.umd.js +2 -2
- package/dist/src/directives/BScrollspy/index.mjs +2 -2
- package/dist/src/directives/BScrollspy/index.umd.js +2 -2
- package/dist/src/directives/BToggle/index.mjs +3 -3
- package/dist/src/directives/BToggle/index.umd.js +3 -3
- package/dist/src/directives/BTooltip/index.mjs +2 -2
- package/dist/src/directives/BTooltip/index.umd.js +2 -2
- package/dist/src/resolvers/index.mjs +1 -1
- package/dist/src/resolvers/index.umd.js +1 -1
- package/dist/src/types/index.mjs +1 -1
- package/dist/src/types/index.umd.js +1 -1
- package/dist/src/utils/index.mjs +1 -1
- package/dist/src/utils/index.umd.js +1 -1
- package/dist/{stringUtils-hUreqC0N.js → stringUtils-BwKOASdU.js} +2 -2
- package/dist/{stringUtils-hUreqC0N.js.map → stringUtils-BwKOASdU.js.map} +1 -1
- package/dist/{stringUtils-BP8rZgjn.mjs → stringUtils-CslYpDTt.mjs} +2 -2
- package/dist/{stringUtils-BP8rZgjn.mjs.map → stringUtils-CslYpDTt.mjs.map} +1 -1
- package/dist/types/BootstrapVueOptions.d.mts +3 -1
- package/dist/types/BootstrapVueOptions.d.ts +3 -1
- package/dist/types/ComponentProps.d.mts +4 -0
- package/dist/types/ComponentProps.d.ts +4 -0
- package/dist/types/ComponentSlots.d.mts +3 -0
- package/dist/types/ComponentSlots.d.ts +3 -0
- package/dist/{useAlignment-CwuLc9mf.mjs → useAlignment-DMST4-tc.mjs} +1 -1
- package/dist/{useAlignment-CwuLc9mf.mjs.map → useAlignment-DMST4-tc.mjs.map} +1 -1
- package/dist/{useAlignment-CY-mnB2p.js → useAlignment-Dus_TOxG.js} +1 -1
- package/dist/{useAlignment-CY-mnB2p.js.map → useAlignment-Dus_TOxG.js.map} +1 -1
- package/dist/{useAriaInvalid-BYMq9BBX.js → useAriaInvalid-CsUHLhSs.js} +1 -1
- package/dist/{useAriaInvalid-BYMq9BBX.js.map → useAriaInvalid-CsUHLhSs.js.map} +1 -1
- package/dist/{useAriaInvalid-01Dd60GC.mjs → useAriaInvalid-DcG6BhdW.mjs} +1 -1
- package/dist/{useAriaInvalid-01Dd60GC.mjs.map → useAriaInvalid-DcG6BhdW.mjs.map} +1 -1
- package/dist/{useColorVariantClasses-GuDw8a_O.mjs → useColorVariantClasses-B6Me_Kx6.mjs} +1 -1
- package/dist/{useColorVariantClasses-GuDw8a_O.mjs.map → useColorVariantClasses-B6Me_Kx6.mjs.map} +1 -1
- package/dist/{useColorVariantClasses-DVaQDVQC.js → useColorVariantClasses-CEfOwjPv.js} +1 -1
- package/dist/{useColorVariantClasses-DVaQDVQC.js.map → useColorVariantClasses-CEfOwjPv.js.map} +1 -1
- package/dist/{useCountdownHover-CaF8_TRT.js → useCountdownHover-D044mFuX.js} +1 -1
- package/dist/{useCountdownHover-CaF8_TRT.js.map → useCountdownHover-D044mFuX.js.map} +1 -1
- package/dist/{useCountdownHover-CTM7QEJ-.mjs → useCountdownHover-DqREghQi.mjs} +1 -1
- package/dist/{useCountdownHover-CTM7QEJ-.mjs.map → useCountdownHover-DqREghQi.mjs.map} +1 -1
- package/dist/{useDateField-PQjSLAVI.mjs → useDateField-BkbvpMB1.mjs} +1 -1
- package/dist/{useDateField-PQjSLAVI.mjs.map → useDateField-BkbvpMB1.mjs.map} +1 -1
- package/dist/{useDateField-qsRHISMn.js → useDateField-Ca0ZxYq9.js} +1 -1
- package/dist/{useDateField-qsRHISMn.js.map → useDateField-Ca0ZxYq9.js.map} +1 -1
- package/dist/{useDefaults-CCWS15M8.mjs → useDefaults-BKgBaqOV.mjs} +1 -1
- package/dist/{useDefaults-CCWS15M8.mjs.map → useDefaults-BKgBaqOV.mjs.map} +1 -1
- package/dist/{useDefaults-DK6Y9lar.js → useDefaults-DsLf4iRY.js} +1 -1
- package/dist/{useDefaults-DK6Y9lar.js.map → useDefaults-DsLf4iRY.js.map} +1 -1
- package/dist/{useFormCheck-TOhpqkZ9.mjs → useFormCheck-9Ne69Sw9.mjs} +3 -3
- package/dist/{useFormCheck-TOhpqkZ9.mjs.map → useFormCheck-9Ne69Sw9.mjs.map} +1 -1
- package/dist/{useFormCheck-DXM9Wj2i.js → useFormCheck-H0B2G8GH.js} +3 -3
- package/dist/{useFormCheck-DXM9Wj2i.js.map → useFormCheck-H0B2G8GH.js.map} +1 -1
- package/dist/{useFormInput-DeJGz9t9.mjs → useFormInput-9wwIZZqf.mjs} +5 -5
- package/dist/{useFormInput-DeJGz9t9.mjs.map → useFormInput-9wwIZZqf.mjs.map} +1 -1
- package/dist/{useFormInput-AX7ikSmn.js → useFormInput-DyZLjypv.js} +5 -5
- package/dist/{useFormInput-AX7ikSmn.js.map → useFormInput-DyZLjypv.js.map} +1 -1
- package/dist/{useFormSelect-DCThI8EA.js → useFormSelect-8ZL7Dk3W.js} +3 -3
- package/dist/{useFormSelect-DCThI8EA.js.map → useFormSelect-8ZL7Dk3W.js.map} +1 -1
- package/dist/{useFormSelect-_-ln6FKQ.mjs → useFormSelect-BYhUZcK5.mjs} +3 -3
- package/dist/{useFormSelect-_-ln6FKQ.mjs.map → useFormSelect-BYhUZcK5.mjs.map} +1 -1
- package/dist/{useId-CCwnEmGh.mjs → useId-BKZFSYm8.mjs} +1 -1
- package/dist/{useId-CCwnEmGh.mjs.map → useId-BKZFSYm8.mjs.map} +1 -1
- package/dist/{useId-DTrBK9CE.js → useId-DHrBgM7P.js} +1 -1
- package/dist/{useId-DTrBK9CE.js.map → useId-DHrBgM7P.js.map} +1 -1
- package/dist/{useNumberishToStyle-uj-NwKpF.mjs → useNumberishToStyle--4gz3iYn.mjs} +2 -2
- package/dist/{useNumberishToStyle-uj-NwKpF.mjs.map → useNumberishToStyle--4gz3iYn.mjs.map} +1 -1
- package/dist/{useNumberishToStyle-CluQ-WT4.js → useNumberishToStyle-DMGqQGfo.js} +2 -2
- package/dist/{useNumberishToStyle-CluQ-WT4.js.map → useNumberishToStyle-DMGqQGfo.js.map} +1 -1
- package/dist/{useRadiusElementClasses-D6FwziNh.js → useRadiusElementClasses-Bi58dhJY.js} +1 -1
- package/dist/{useRadiusElementClasses-D6FwziNh.js.map → useRadiusElementClasses-Bi58dhJY.js.map} +1 -1
- package/dist/{useRadiusElementClasses-CyDq8RO7.mjs → useRadiusElementClasses-ppH4Pr03.mjs} +1 -1
- package/dist/{useRadiusElementClasses-CyDq8RO7.mjs.map → useRadiusElementClasses-ppH4Pr03.mjs.map} +1 -1
- package/dist/{useRtl-DQ5v5L9s.mjs → useRtl-BwxT5Dyq.mjs} +1 -1
- package/dist/{useRtl-DQ5v5L9s.mjs.map → useRtl-BwxT5Dyq.mjs.map} +1 -1
- package/dist/{useRtl-BlPLBmTe.js → useRtl-DWO9pKff.js} +1 -1
- package/dist/{useRtl-BlPLBmTe.js.map → useRtl-DWO9pKff.js.map} +1 -1
- package/dist/{useSafeScrollLock-C9UxwgUo.mjs → useSafeScrollLock-DJ1UsIFY.mjs} +1 -1
- package/dist/{useSafeScrollLock-C9UxwgUo.mjs.map → useSafeScrollLock-DJ1UsIFY.mjs.map} +1 -1
- package/dist/{useSafeScrollLock-CP2B7aXF.js → useSafeScrollLock-xJBEvCQ7.js} +1 -1
- package/dist/{useSafeScrollLock-CP2B7aXF.js.map → useSafeScrollLock-xJBEvCQ7.js.map} +1 -1
- package/dist/{useShowHide-wBe7O9iE.mjs → useShowHide-IPyuuPL0.mjs} +3 -3
- package/dist/{useShowHide-wBe7O9iE.mjs.map → useShowHide-IPyuuPL0.mjs.map} +1 -1
- package/dist/{useShowHide-BFr32vgn.js → useShowHide-sLzwukNm.js} +3 -3
- package/dist/{useShowHide-BFr32vgn.js.map → useShowHide-sLzwukNm.js.map} +1 -1
- package/dist/{useStateClass-Cnvy2Hnm.js → useStateClass-0b-hPufa.js} +1 -1
- package/dist/{useStateClass-Cnvy2Hnm.js.map → useStateClass-0b-hPufa.js.map} +1 -1
- package/dist/{useStateClass-DKjpw1Pn.mjs → useStateClass-DXbp5rFK.mjs} +1 -1
- package/dist/{useStateClass-DKjpw1Pn.mjs.map → useStateClass-DXbp5rFK.mjs.map} +1 -1
- package/dist/{utils-C-oJqlar.mjs → utils-D_vdhVDP.mjs} +2 -2
- package/dist/{utils-C-oJqlar.mjs.map → utils-D_vdhVDP.mjs.map} +1 -1
- package/dist/{utils-CY6CnVNO.js → utils-bUQM0PzD.js} +2 -2
- package/dist/{utils-CY6CnVNO.js.map → utils-bUQM0PzD.js.map} +1 -1
- package/package.json +9 -1
- package/dist/BootstrapVueOptions-CVxLmDvx.js.map +0 -1
- package/dist/BootstrapVueOptions-Dtdn7_AJ.mjs.map +0 -1
- package/dist/functions-C6AToZGR.mjs.map +0 -1
- package/dist/functions-DCQKr6wc.js.map +0 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { E as createSharedComposable, L as useToNumber, a as onClickOutside, v as useMouse$1 } from "./dist-Dn5blevd.mjs";
|
|
2
2
|
import { a as getSafeWindow, i as getSafeDocument } from "./dom-AhkaSoh8.mjs";
|
|
3
|
-
import { t as
|
|
4
|
-
import { t as
|
|
5
|
-
import { t as useShowHide } from "./useShowHide-
|
|
6
|
-
import { t as ConditionalTeleport_default } from "./ConditionalTeleport-
|
|
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-
|
|
8
|
-
import { t as getElement } from "./getElement-
|
|
3
|
+
import { t as useDefaults } from "./useDefaults-BKgBaqOV.mjs";
|
|
4
|
+
import { t as useId$1 } from "./useId-BKZFSYm8.mjs";
|
|
5
|
+
import { t as useShowHide } from "./useShowHide-IPyuuPL0.mjs";
|
|
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";
|
|
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-
|
|
530
|
+
//# sourceMappingURL=floatingUi-BErx3eqf.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floatingUi-9NcUa5r7.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-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,12 +1,12 @@
|
|
|
1
1
|
require("./chunk-CoQrYLCe.js");
|
|
2
2
|
const require_dist = require("./dist-B_c893QG.js");
|
|
3
3
|
const require_dom = require("./dom-Bs6DzM72.js");
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const require_useShowHide = require("./useShowHide-
|
|
7
|
-
const require_ConditionalTeleport = require("./ConditionalTeleport-
|
|
8
|
-
const require_floating_ui_vue = require("./floating-ui.vue-
|
|
9
|
-
const require_getElement = require("./getElement-
|
|
4
|
+
const require_useDefaults = require("./useDefaults-DsLf4iRY.js");
|
|
5
|
+
const require_useId = require("./useId-DHrBgM7P.js");
|
|
6
|
+
const require_useShowHide = require("./useShowHide-sLzwukNm.js");
|
|
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");
|
|
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-
|
|
584
|
+
//# sourceMappingURL=floatingUi-syPgL0ve.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floatingUi-BLlCKrbj.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-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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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions-BcMenQqL.mjs","names":[],"sources":["../src/utils/functions.ts"],"sourcesContent":["export const noop = () => {}\n"],"mappings":";AAAA,IAAa,aAAa"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions-Bx1HDqMv.js","names":[],"sources":["../src/utils/functions.ts"],"sourcesContent":["export const noop = () => {}\n"],"mappings":";AAAA,IAAa,aAAa"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getClasses-
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getClasses-
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getElement-
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getElement-
|
|
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"}
|