bootstrap-vue-next 0.44.3 → 0.44.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (519) hide show
  1. package/dist/{BAccordion-DZ50ppJx.js → BAccordion-CJZMsvwP.js} +2 -2
  2. package/dist/{BAccordion-DZ50ppJx.js.map → BAccordion-CJZMsvwP.js.map} +1 -1
  3. package/dist/{BAccordion-BU80DI3B.mjs → BAccordion-CNzV6f8e.mjs} +2 -2
  4. package/dist/{BAccordion-BU80DI3B.mjs.map → BAccordion-CNzV6f8e.mjs.map} +1 -1
  5. package/dist/{BAlert-DTvDu9YQ.js → BAlert-BnT7fF6B.js} +5 -5
  6. package/dist/{BAlert-DTvDu9YQ.js.map → BAlert-BnT7fF6B.js.map} +1 -1
  7. package/dist/{BAlert-CuWkyQoY.mjs → BAlert-Qiyqq4rE.mjs} +5 -5
  8. package/dist/{BAlert-CuWkyQoY.mjs.map → BAlert-Qiyqq4rE.mjs.map} +1 -1
  9. package/dist/BAutocomplete-C7Odx4At.js +2342 -0
  10. package/dist/BAutocomplete-C7Odx4At.js.map +1 -0
  11. package/dist/BAutocomplete-Depalqe-.mjs +2336 -0
  12. package/dist/BAutocomplete-Depalqe-.mjs.map +1 -0
  13. package/dist/{BAvatar-vI7zHFsj.mjs → BAvatar-D7aFEXLH.mjs} +5 -5
  14. package/dist/{BAvatar-vI7zHFsj.mjs.map → BAvatar-D7aFEXLH.mjs.map} +1 -1
  15. package/dist/{BAvatar-eEIyfQso.js → BAvatar-lefHkDuG.js} +5 -5
  16. package/dist/{BAvatar-eEIyfQso.js.map → BAvatar-lefHkDuG.js.map} +1 -1
  17. package/dist/{BBadge-Cpuk1892.js → BBadge-BBUcrujj.js} +2 -2
  18. package/dist/{BBadge-Cpuk1892.js.map → BBadge-BBUcrujj.js.map} +1 -1
  19. package/dist/{BBadge-xiyuzuG6.mjs → BBadge-D5ra3W5R.mjs} +2 -2
  20. package/dist/{BBadge-xiyuzuG6.mjs.map → BBadge-D5ra3W5R.mjs.map} +1 -1
  21. package/dist/{BBreadcrumb-BkRDTYv1.js → BBreadcrumb-BSsiwCNB.js} +1 -1
  22. package/dist/{BBreadcrumb-BkRDTYv1.js.map → BBreadcrumb-BSsiwCNB.js.map} +1 -1
  23. package/dist/{BBreadcrumb-CjPr1FWj.mjs → BBreadcrumb-amkzWyz6.mjs} +1 -1
  24. package/dist/{BBreadcrumb-CjPr1FWj.mjs.map → BBreadcrumb-amkzWyz6.mjs.map} +1 -1
  25. package/dist/{BButton-DPCH-g3G.mjs → BButton-BRvIFnRm.mjs} +2 -2
  26. package/dist/{BButton-DPCH-g3G.mjs.map → BButton-BRvIFnRm.mjs.map} +1 -1
  27. package/dist/{BButton-sb1cBCIb.js → BButton-DBRs8Pz_.js} +2 -2
  28. package/dist/{BButton-sb1cBCIb.js.map → BButton-DBRs8Pz_.js.map} +1 -1
  29. package/dist/{BButton-B4xE6uw6.mjs → BButton-DNmtqoqR.mjs} +2 -2
  30. package/dist/{BButton-B4xE6uw6.mjs.map → BButton-DNmtqoqR.mjs.map} +1 -1
  31. package/dist/{BButton-B5oWZOoX.js → BButton-kykTWnBy.js} +2 -2
  32. package/dist/{BButton-B5oWZOoX.js.map → BButton-kykTWnBy.js.map} +1 -1
  33. package/dist/{BCard-Dly2DM9l.mjs → BCard-C1G8PO5k.mjs} +3 -3
  34. package/dist/{BCard-Dly2DM9l.mjs.map → BCard-C1G8PO5k.mjs.map} +1 -1
  35. package/dist/{BCard-DQxiuBWk.mjs → BCard-CJ822HyH.mjs} +2 -2
  36. package/dist/{BCard-DQxiuBWk.mjs.map → BCard-CJ822HyH.mjs.map} +1 -1
  37. package/dist/{BCard-BpaUsusY.js → BCard-CSyEHz8Z.js} +2 -2
  38. package/dist/{BCard-BpaUsusY.js.map → BCard-CSyEHz8Z.js.map} +1 -1
  39. package/dist/{BCard-Bc6OI3iJ.js → BCard-CgbTFn3S.js} +3 -3
  40. package/dist/{BCard-Bc6OI3iJ.js.map → BCard-CgbTFn3S.js.map} +1 -1
  41. package/dist/{BCarousel-DvQKUvSp.js → BCarousel-Be7z13f9.js} +7 -4
  42. package/dist/BCarousel-Be7z13f9.js.map +1 -0
  43. package/dist/{BCarousel-DarHY6e7.mjs → BCarousel-D81alfFC.mjs} +7 -4
  44. package/dist/BCarousel-D81alfFC.mjs.map +1 -0
  45. package/dist/{BCol-CXEKpSfY.js → BCol-0tZmpOme.js} +2 -2
  46. package/dist/{BCol-CXEKpSfY.js.map → BCol-0tZmpOme.js.map} +1 -1
  47. package/dist/{BCol-BAGO0XhU.mjs → BCol-C4v-TOX6.mjs} +2 -2
  48. package/dist/{BCol-BAGO0XhU.mjs.map → BCol-C4v-TOX6.mjs.map} +1 -1
  49. package/dist/{BCollapse-BzIGTt3g.mjs → BCollapse-D-xTGkX_.mjs} +2 -2
  50. package/dist/{BCollapse-BzIGTt3g.mjs.map → BCollapse-D-xTGkX_.mjs.map} +1 -1
  51. package/dist/{BCollapse-D2tCzh6C.js → BCollapse-DZ1z2c8U.js} +2 -2
  52. package/dist/{BCollapse-D2tCzh6C.js.map → BCollapse-DZ1z2c8U.js.map} +1 -1
  53. package/dist/{BContainer-D0G_4Ccr.js → BContainer-BZUI2qQv.js} +3 -3
  54. package/dist/{BContainer-D0G_4Ccr.js.map → BContainer-BZUI2qQv.js.map} +1 -1
  55. package/dist/{BContainer-CBvLhEKU.mjs → BContainer-DjIGH6-y.mjs} +3 -3
  56. package/dist/{BContainer-CBvLhEKU.mjs.map → BContainer-DjIGH6-y.mjs.map} +1 -1
  57. package/dist/{BDateField-Ci05mtvE.mjs → BDateField-BJIq6gs9.mjs} +6 -4
  58. package/dist/{BDateField-Ci05mtvE.mjs.map → BDateField-BJIq6gs9.mjs.map} +1 -1
  59. package/dist/{BDateField-DOQj40bP.js → BDateField-RWwEMIwd.js} +15 -13
  60. package/dist/{BDateField-DOQj40bP.js.map → BDateField-RWwEMIwd.js.map} +1 -1
  61. package/dist/{BDatePicker-CHtppbq6.js → BDatePicker-BQN6qZXa.js} +72 -1554
  62. package/dist/BDatePicker-BQN6qZXa.js.map +1 -0
  63. package/dist/{BDatePicker-CpwEikK3.mjs → BDatePicker-DfzZBWjU.mjs} +14 -1496
  64. package/dist/BDatePicker-DfzZBWjU.mjs.map +1 -0
  65. package/dist/{BDropdown-CmUoG4aR.mjs → BDropdown-BW_O8vPQ.mjs} +2 -2
  66. package/dist/{BDropdown-CmUoG4aR.mjs.map → BDropdown-BW_O8vPQ.mjs.map} +1 -1
  67. package/dist/{BDropdown-g6_09NKU.js → BDropdown-C1AxRj81.js} +12 -9
  68. package/dist/BDropdown-C1AxRj81.js.map +1 -0
  69. package/dist/{BDropdown-i62kSdFN.js → BDropdown-CuVOxCzu.js} +2 -2
  70. package/dist/{BDropdown-i62kSdFN.js.map → BDropdown-CuVOxCzu.js.map} +1 -1
  71. package/dist/{BDropdown-CkklXJE1.mjs → BDropdown-DAHnN54Z.mjs} +12 -9
  72. package/dist/BDropdown-DAHnN54Z.mjs.map +1 -0
  73. package/dist/{BForm-D1hmPFIR.js → BForm-Bp7SFxiK.js} +1 -1
  74. package/dist/{BForm-D1hmPFIR.js.map → BForm-Bp7SFxiK.js.map} +1 -1
  75. package/dist/{BForm-BW5sAbJu.js → BForm-BqHUnHpU.js} +6 -5
  76. package/dist/{BForm-BW5sAbJu.js.map → BForm-BqHUnHpU.js.map} +1 -1
  77. package/dist/{BForm-BYWcrW3i.mjs → BForm-IL7Rf_27.mjs} +5 -4
  78. package/dist/{BForm-BYWcrW3i.mjs.map → BForm-IL7Rf_27.mjs.map} +1 -1
  79. package/dist/{BForm-BKeJ6pQN.mjs → BForm-Oh6PpdcD.mjs} +1 -1
  80. package/dist/{BForm-BKeJ6pQN.mjs.map → BForm-Oh6PpdcD.mjs.map} +1 -1
  81. package/dist/{BFormCheckbox-eSsgdaji.js → BFormCheckbox-Bdk2rgVe.js} +4 -4
  82. package/dist/{BFormCheckbox-eSsgdaji.js.map → BFormCheckbox-Bdk2rgVe.js.map} +1 -1
  83. package/dist/{BFormCheckbox-LMGyV5Wh.mjs → BFormCheckbox-CcDK-lh1.mjs} +4 -4
  84. package/dist/{BFormCheckbox-LMGyV5Wh.mjs.map → BFormCheckbox-CcDK-lh1.mjs.map} +1 -1
  85. package/dist/{BFormFile-N491i_FE.js → BFormFile-BWknj7fW.js} +3 -3
  86. package/dist/{BFormFile-N491i_FE.js.map → BFormFile-BWknj7fW.js.map} +1 -1
  87. package/dist/{BFormFile-DUd50zn5.mjs → BFormFile-Bf3GMYeX.mjs} +3 -3
  88. package/dist/{BFormFile-DUd50zn5.mjs.map → BFormFile-Bf3GMYeX.mjs.map} +1 -1
  89. package/dist/{BFormGroup-Bm3Af8hx.mjs → BFormGroup--38dFj0X.mjs} +6 -6
  90. package/dist/{BFormGroup-Bm3Af8hx.mjs.map → BFormGroup--38dFj0X.mjs.map} +1 -1
  91. package/dist/{BFormGroup-DN4AyqDY.js → BFormGroup-BwO1BZD1.js} +6 -6
  92. package/dist/{BFormGroup-DN4AyqDY.js.map → BFormGroup-BwO1BZD1.js.map} +1 -1
  93. package/dist/{BFormInput-DniXdPz5.js → BFormInput-BuRSGYdY.js} +2 -2
  94. package/dist/{BFormInput-DniXdPz5.js.map → BFormInput-BuRSGYdY.js.map} +1 -1
  95. package/dist/{BFormInput-UqEvTffC.mjs → BFormInput-Dg9dbwHp.mjs} +2 -2
  96. package/dist/{BFormInput-UqEvTffC.mjs.map → BFormInput-Dg9dbwHp.mjs.map} +1 -1
  97. package/dist/BFormOtp-C1YJvwN8.js +542 -0
  98. package/dist/BFormOtp-C1YJvwN8.js.map +1 -0
  99. package/dist/BFormOtp-DYjsPhQN.mjs +536 -0
  100. package/dist/BFormOtp-DYjsPhQN.mjs.map +1 -0
  101. package/dist/{BFormRadio-B7fL16AZ.mjs → BFormRadio-CRDbgMiR.mjs} +4 -4
  102. package/dist/{BFormRadio-B7fL16AZ.mjs.map → BFormRadio-CRDbgMiR.mjs.map} +1 -1
  103. package/dist/{BFormRadio-C9U9PbDA.js → BFormRadio-DuVYw-Vs.js} +4 -4
  104. package/dist/{BFormRadio-C9U9PbDA.js.map → BFormRadio-DuVYw-Vs.js.map} +1 -1
  105. package/dist/{BFormRating-BJI4hTHm.mjs → BFormRating-Bb_ACp-9.mjs} +2 -2
  106. package/dist/{BFormRating-BJI4hTHm.mjs.map → BFormRating-Bb_ACp-9.mjs.map} +1 -1
  107. package/dist/{BFormRating-JeEiyayh.js → BFormRating-CNqf91vN.js} +2 -2
  108. package/dist/{BFormRating-JeEiyayh.js.map → BFormRating-CNqf91vN.js.map} +1 -1
  109. package/dist/{BFormSelect-BleWBr-U.mjs → BFormSelect-Dg6OwMl-.mjs} +6 -5
  110. package/dist/{BFormSelect-BleWBr-U.mjs.map → BFormSelect-Dg6OwMl-.mjs.map} +1 -1
  111. package/dist/{BFormSelect-D_yYXijf.js → BFormSelect-DqSojuY_.js} +8 -7
  112. package/dist/{BFormSelect-D_yYXijf.js.map → BFormSelect-DqSojuY_.js.map} +1 -1
  113. package/dist/BFormSelectOption-BY4P8HOf.js +46 -0
  114. package/dist/BFormSelectOption-BY4P8HOf.js.map +1 -0
  115. package/dist/BFormSelectOption-O8cyyv3i.mjs +40 -0
  116. package/dist/BFormSelectOption-O8cyyv3i.mjs.map +1 -0
  117. package/dist/{BFormSpinbutton-5JRMW1Bo.mjs → BFormSpinbutton-BLO0Yf36.mjs} +3 -3
  118. package/dist/{BFormSpinbutton-5JRMW1Bo.mjs.map → BFormSpinbutton-BLO0Yf36.mjs.map} +1 -1
  119. package/dist/{BFormSpinbutton-Dix9U_c1.js → BFormSpinbutton-BaOTL1k1.js} +3 -3
  120. package/dist/{BFormSpinbutton-Dix9U_c1.js.map → BFormSpinbutton-BaOTL1k1.js.map} +1 -1
  121. package/dist/BFormTag-BUWEugEC.mjs +80 -0
  122. package/dist/BFormTag-BUWEugEC.mjs.map +1 -0
  123. package/dist/BFormTag-C7B-bX72.js +86 -0
  124. package/dist/BFormTag-C7B-bX72.js.map +1 -0
  125. package/dist/{BFormTags-BUoQXBA9.js → BFormTags-BFA6xbr3.js} +9 -85
  126. package/dist/BFormTags-BFA6xbr3.js.map +1 -0
  127. package/dist/{BFormTags-BjyHMiw1.mjs → BFormTags-CJb4H67g.mjs} +10 -80
  128. package/dist/BFormTags-CJb4H67g.mjs.map +1 -0
  129. package/dist/{BFormTextarea-BIrsIHU1.js → BFormTextarea-8c3B3kAI.js} +3 -3
  130. package/dist/{BFormTextarea-BIrsIHU1.js.map → BFormTextarea-8c3B3kAI.js.map} +1 -1
  131. package/dist/{BFormTextarea-D8waUYBT.mjs → BFormTextarea-BMk05ojJ.mjs} +3 -3
  132. package/dist/{BFormTextarea-D8waUYBT.mjs.map → BFormTextarea-BMk05ojJ.mjs.map} +1 -1
  133. package/dist/{BFormValidFeedback-CiZ4cn1v.js → BFormValidFeedback-DvTgwqSe.js} +1 -1
  134. package/dist/{BFormValidFeedback-CiZ4cn1v.js.map → BFormValidFeedback-DvTgwqSe.js.map} +1 -1
  135. package/dist/{BFormValidFeedback-BNQNdH26.mjs → BFormValidFeedback-_Dgzm0Ag.mjs} +1 -1
  136. package/dist/{BFormValidFeedback-BNQNdH26.mjs.map → BFormValidFeedback-_Dgzm0Ag.mjs.map} +1 -1
  137. package/dist/{BImg-BZ7hac1l.mjs → BImg-BQqZfIM9.mjs} +3 -3
  138. package/dist/{BImg-BZ7hac1l.mjs.map → BImg-BQqZfIM9.mjs.map} +1 -1
  139. package/dist/{BImg-BFKDHH7y.js → BImg-Dyy0N-WQ.js} +3 -3
  140. package/dist/{BImg-BFKDHH7y.js.map → BImg-Dyy0N-WQ.js.map} +1 -1
  141. package/dist/BInputGroup-BScMw6Zr.js +31 -0
  142. package/dist/BInputGroup-BScMw6Zr.js.map +1 -0
  143. package/dist/BInputGroup-C7k0tS9j.mjs +25 -0
  144. package/dist/BInputGroup-C7k0tS9j.mjs.map +1 -0
  145. package/dist/{BInputGroup-xno5tJWV.mjs → BInputGroup-DpX10xwR.mjs} +3 -21
  146. package/dist/BInputGroup-DpX10xwR.mjs.map +1 -0
  147. package/dist/{BInputGroup-DwrQVmGT.js → BInputGroup-Duk6Jk0v.js} +1 -25
  148. package/dist/BInputGroup-Duk6Jk0v.js.map +1 -0
  149. package/dist/{BListGroup-DHdBjAI1.mjs → BListGroup-BmtN0xQ3.mjs} +1 -1
  150. package/dist/{BListGroup-DHdBjAI1.mjs.map → BListGroup-BmtN0xQ3.mjs.map} +1 -1
  151. package/dist/{BListGroup-yJ9SOYxq.js → BListGroup-DuyMdAxJ.js} +1 -1
  152. package/dist/{BListGroup-yJ9SOYxq.js.map → BListGroup-DuyMdAxJ.js.map} +1 -1
  153. package/dist/{BModal-DkX-2F1v.mjs → BModal-Br5xLT0-.mjs} +10 -7
  154. package/dist/BModal-Br5xLT0-.mjs.map +1 -0
  155. package/dist/{BModal-CVf686JS.js → BModal-D0LB339D.js} +10 -7
  156. package/dist/BModal-D0LB339D.js.map +1 -0
  157. package/dist/{BNav-D88X9xHW.mjs → BNav-BRjdHsjC.mjs} +4 -4
  158. package/dist/{BNav-D88X9xHW.mjs.map → BNav-BRjdHsjC.mjs.map} +1 -1
  159. package/dist/{BNav-dxOO1pJI.js → BNav-tYBwz1wU.js} +4 -4
  160. package/dist/{BNav-dxOO1pJI.js.map → BNav-tYBwz1wU.js.map} +1 -1
  161. package/dist/{BNavbar-EayLl9th.js → BNavbar-s9Ak5PnO.js} +3 -3
  162. package/dist/{BNavbar-EayLl9th.js.map → BNavbar-s9Ak5PnO.js.map} +1 -1
  163. package/dist/{BNavbar-DALgesyZ.mjs → BNavbar-vN3_CMLn.mjs} +3 -3
  164. package/dist/{BNavbar-DALgesyZ.mjs.map → BNavbar-vN3_CMLn.mjs.map} +1 -1
  165. package/dist/{BOffcanvas-CJDXvuCR.js → BOffcanvas-D33pEfZe.js} +10 -7
  166. package/dist/BOffcanvas-D33pEfZe.js.map +1 -0
  167. package/dist/{BOffcanvas-CJUaqRuT.mjs → BOffcanvas-jETHbtC3.mjs} +10 -7
  168. package/dist/BOffcanvas-jETHbtC3.mjs.map +1 -0
  169. package/dist/{BOverlay-Ct1Be98i.js → BOverlay-B7vJAdHO.js} +3 -3
  170. package/dist/{BOverlay-Ct1Be98i.js.map → BOverlay-B7vJAdHO.js.map} +1 -1
  171. package/dist/{BOverlay-CZUXqAOJ.mjs → BOverlay-BGxH9JVy.mjs} +3 -3
  172. package/dist/{BOverlay-CZUXqAOJ.mjs.map → BOverlay-BGxH9JVy.mjs.map} +1 -1
  173. package/dist/{BPagination-Dm-dKaSQ.js → BPagination-C0-4NVzW.js} +3 -3
  174. package/dist/{BPagination-Dm-dKaSQ.js.map → BPagination-C0-4NVzW.js.map} +1 -1
  175. package/dist/{BPagination-BOW0ZgHP.mjs → BPagination-CvoSN1He.mjs} +3 -3
  176. package/dist/{BPagination-BOW0ZgHP.mjs.map → BPagination-CvoSN1He.mjs.map} +1 -1
  177. package/dist/{BPlaceholder-V5sitFFG.mjs → BPlaceholder-C4AOg29f.mjs} +4 -4
  178. package/dist/{BPlaceholder-V5sitFFG.mjs.map → BPlaceholder-C4AOg29f.mjs.map} +1 -1
  179. package/dist/{BPlaceholder-LEAD84zn.js → BPlaceholder-DYYYuNgR.js} +4 -4
  180. package/dist/{BPlaceholder-LEAD84zn.js.map → BPlaceholder-DYYYuNgR.js.map} +1 -1
  181. package/dist/{BProgress-D0yfZ2Ze.mjs → BProgress-BIqo6vLh.mjs} +2 -2
  182. package/dist/{BProgress-D0yfZ2Ze.mjs.map → BProgress-BIqo6vLh.mjs.map} +1 -1
  183. package/dist/{BProgress-DAnEfDXq.js → BProgress-Bc3ZSkac.js} +2 -2
  184. package/dist/{BProgress-DAnEfDXq.js.map → BProgress-Bc3ZSkac.js.map} +1 -1
  185. package/dist/{BRow-BKxCxJUU.mjs → BRow-BCEK3fe6.mjs} +3 -3
  186. package/dist/{BRow-BKxCxJUU.mjs.map → BRow-BCEK3fe6.mjs.map} +1 -1
  187. package/dist/{BRow-bG6T9jY3.js → BRow-tqMEhkZS.js} +3 -3
  188. package/dist/{BRow-bG6T9jY3.js.map → BRow-tqMEhkZS.js.map} +1 -1
  189. package/dist/{BTable-DSuQWlMd.js → BTable-Btzu1IJ_.js} +4 -4
  190. package/dist/{BTable-DSuQWlMd.js.map → BTable-Btzu1IJ_.js.map} +1 -1
  191. package/dist/{BTable-CYvvqn6I.mjs → BTable-CjHMx8Yv.mjs} +4 -4
  192. package/dist/{BTable-CYvvqn6I.mjs.map → BTable-CjHMx8Yv.mjs.map} +1 -1
  193. package/dist/{BTableSimple-Bq8PToKM.js → BTableSimple-BcdizuDm.js} +2 -2
  194. package/dist/{BTableSimple-Bq8PToKM.js.map → BTableSimple-BcdizuDm.js.map} +1 -1
  195. package/dist/{BTableSimple-DfE2d_yr.mjs → BTableSimple-C901Z5V9.mjs} +2 -2
  196. package/dist/{BTableSimple-DfE2d_yr.mjs.map → BTableSimple-C901Z5V9.mjs.map} +1 -1
  197. package/dist/{BTabs-De_t7t0r.mjs → BTabs-DZEF9kgT.mjs} +3 -3
  198. package/dist/{BTabs-De_t7t0r.mjs.map → BTabs-DZEF9kgT.mjs.map} +1 -1
  199. package/dist/{BTabs-C_zLwDuN.js → BTabs-DiYaJi22.js} +3 -3
  200. package/dist/{BTabs-C_zLwDuN.js.map → BTabs-DiYaJi22.js.map} +1 -1
  201. package/dist/{BTimeField-Ba7V9u04.mjs → BTimeField-DSWZeGYP.mjs} +5 -3
  202. package/dist/{BTimeField-Ba7V9u04.mjs.map → BTimeField-DSWZeGYP.mjs.map} +1 -1
  203. package/dist/{BTimeField-BjiB8bN9.js → BTimeField-VTrtxGkI.js} +16 -14
  204. package/dist/{BTimeField-BjiB8bN9.js.map → BTimeField-VTrtxGkI.js.map} +1 -1
  205. package/dist/{BToast-DGcCFzvf.mjs → BToast-B2rFKhLD.mjs} +5 -5
  206. package/dist/{BToast-DGcCFzvf.mjs.map → BToast-B2rFKhLD.mjs.map} +1 -1
  207. package/dist/{BToast-SdIR1HJa.js → BToast-DCSZYXIi.js} +5 -5
  208. package/dist/{BToast-SdIR1HJa.js.map → BToast-DCSZYXIi.js.map} +1 -1
  209. package/dist/{BTooltip-CrHabClh.js → BTooltip-CryTO-SM.js} +2 -2
  210. package/dist/{BTooltip-CrHabClh.js.map → BTooltip-CryTO-SM.js.map} +1 -1
  211. package/dist/{BTooltip-U16exDFb.mjs → BTooltip-DtpjIEBu.mjs} +2 -2
  212. package/dist/{BTooltip-U16exDFb.mjs.map → BTooltip-DtpjIEBu.mjs.map} +1 -1
  213. package/dist/{BootstrapVueOptions-Bswes3nS.mjs → BootstrapVueOptions-D3flIVqU.mjs} +3 -1
  214. package/dist/BootstrapVueOptions-D3flIVqU.mjs.map +1 -0
  215. package/dist/{BootstrapVueOptions-BxTxSFXn.js → BootstrapVueOptions-DbXZtoXX.js} +3 -1
  216. package/dist/BootstrapVueOptions-DbXZtoXX.js.map +1 -0
  217. package/dist/{ConditionalWrapper-BcQirqyl.js → ConditionalWrapper-Cc7EIszd.js} +1 -1
  218. package/dist/{ConditionalWrapper-BcQirqyl.js.map → ConditionalWrapper-Cc7EIszd.js.map} +1 -1
  219. package/dist/{ConditionalWrapper-BjjQWNtR.mjs → ConditionalWrapper-D9ovtbHB.mjs} +1 -1
  220. package/dist/{ConditionalWrapper-BjjQWNtR.mjs.map → ConditionalWrapper-D9ovtbHB.mjs.map} +1 -1
  221. package/dist/{DateRangeFieldInput-qCIvFM7a.js → DateRangeFieldInput-Ce7PM3PJ.js} +22 -20
  222. package/dist/{DateRangeFieldInput-qCIvFM7a.js.map → DateRangeFieldInput-Ce7PM3PJ.js.map} +1 -1
  223. package/dist/{DateRangeFieldInput-BaxQpIux.mjs → DateRangeFieldInput-DiVuhf4Y.mjs} +5 -3
  224. package/dist/{DateRangeFieldInput-BaxQpIux.mjs.map → DateRangeFieldInput-DiVuhf4Y.mjs.map} +1 -1
  225. package/dist/PopperContent-BTUvv6Tu.mjs +1431 -0
  226. package/dist/PopperContent-BTUvv6Tu.mjs.map +1 -0
  227. package/dist/PopperContent-CSwv2Fih.js +1515 -0
  228. package/dist/PopperContent-CSwv2Fih.js.map +1 -0
  229. package/dist/VisuallyHidden-Bbwok8oL.mjs +174 -0
  230. package/dist/VisuallyHidden-Bbwok8oL.mjs.map +1 -0
  231. package/dist/VisuallyHidden-DaN947I0.js +222 -0
  232. package/dist/VisuallyHidden-DaN947I0.js.map +1 -0
  233. package/dist/VisuallyHiddenInput-Biq4Qv5j.js +147 -0
  234. package/dist/VisuallyHiddenInput-Biq4Qv5j.js.map +1 -0
  235. package/dist/VisuallyHiddenInput-D1SjTCVH.mjs +141 -0
  236. package/dist/VisuallyHiddenInput-D1SjTCVH.mjs.map +1 -0
  237. package/dist/bootstrap-vue-next.css +147 -0
  238. package/dist/bootstrap-vue-next.mjs +56 -52
  239. package/dist/bootstrap-vue-next.umd.js +60 -54
  240. package/dist/components/BAutocomplete/BAutocomplete.vue.d.mts +65 -0
  241. package/dist/components/BAutocomplete/BAutocomplete.vue.d.ts +65 -0
  242. package/dist/components/BAutocomplete/index.d.mts +1 -0
  243. package/dist/components/BAutocomplete/index.d.ts +1 -0
  244. package/dist/components/BDateField/BDateField.vue.d.mts +1 -1
  245. package/dist/components/BDateField/BDateField.vue.d.ts +1 -1
  246. package/dist/components/BDateField/BDateRangeField.vue.d.mts +1 -1
  247. package/dist/components/BDateField/BDateRangeField.vue.d.ts +1 -1
  248. package/dist/components/BDateField/BTimeRangeField.vue.d.mts +4 -4
  249. package/dist/components/BDateField/BTimeRangeField.vue.d.ts +4 -4
  250. package/dist/components/BDatePicker/BDatePicker.vue.d.mts +4 -4
  251. package/dist/components/BDatePicker/BDatePicker.vue.d.ts +4 -4
  252. package/dist/components/BDatePicker/BDateRangePicker.vue.d.mts +4 -4
  253. package/dist/components/BDatePicker/BDateRangePicker.vue.d.ts +4 -4
  254. package/dist/components/BDropdown/BDropdown.vue.d.mts +1 -1
  255. package/dist/components/BDropdown/BDropdown.vue.d.ts +1 -1
  256. package/dist/components/BForm/BFormDatalistBase.vue.d.mts +5 -5
  257. package/dist/components/BForm/BFormDatalistBase.vue.d.ts +5 -5
  258. package/dist/components/BFormOtp/BFormOtp.vue.d.mts +32 -0
  259. package/dist/components/BFormOtp/BFormOtp.vue.d.ts +32 -0
  260. package/dist/components/BFormOtp/index.d.mts +1 -0
  261. package/dist/components/BFormOtp/index.d.ts +1 -0
  262. package/dist/components/BFormSelect/BFormSelectBase.vue.d.mts +4 -4
  263. package/dist/components/BFormSelect/BFormSelectBase.vue.d.ts +4 -4
  264. package/dist/components/BModal/BModal.vue.d.mts +1 -1
  265. package/dist/components/BModal/BModal.vue.d.ts +1 -1
  266. package/dist/components/BTable/BTable.vue.d.mts +3 -3
  267. package/dist/components/BTable/BTable.vue.d.ts +3 -3
  268. package/dist/components/BTimeField/BTimeField.vue.d.mts +1 -1
  269. package/dist/components/BTimeField/BTimeField.vue.d.ts +1 -1
  270. package/dist/components/index.d.mts +2 -0
  271. package/dist/components/index.d.ts +2 -0
  272. package/dist/composables/useFormSelect.d.mts +10 -4
  273. package/dist/composables/useFormSelect.d.ts +10 -4
  274. package/dist/{debounce-DQsw8FWv.js → debounce-C-5Oukxb.js} +1 -1
  275. package/dist/{debounce-DQsw8FWv.js.map → debounce-C-5Oukxb.js.map} +1 -1
  276. package/dist/{debounce-DeVyu4Ny.mjs → debounce-C_wjWVGH.mjs} +1 -1
  277. package/dist/{debounce-DeVyu4Ny.mjs.map → debounce-C_wjWVGH.mjs.map} +1 -1
  278. package/dist/{dist-Dn5blevd.mjs → dist-B10a-gZ8.mjs} +34 -2
  279. package/dist/{dist-Dn5blevd.mjs.map → dist-B10a-gZ8.mjs.map} +1 -1
  280. package/dist/{dist-B_c893QG.js → dist-BJ15ThEs.js} +45 -1
  281. package/dist/{dist-B_c893QG.js.map → dist-BJ15ThEs.js.map} +1 -1
  282. package/dist/{floating-ui.vue-DIWi4LGB.mjs → floating-ui.vue-CAMaNcqI.mjs} +1 -1
  283. package/dist/{floating-ui.vue-DIWi4LGB.mjs.map → floating-ui.vue-CAMaNcqI.mjs.map} +1 -1
  284. package/dist/{floating-ui.vue-CW2IKmom.js → floating-ui.vue-GXIS2sFG.js} +1 -1
  285. package/dist/{floating-ui.vue-CW2IKmom.js.map → floating-ui.vue-GXIS2sFG.js.map} +1 -1
  286. package/dist/{floatingUi-syPgL0ve.js → floatingUi-Cs4rDXmO.js} +5 -5
  287. package/dist/{floatingUi-syPgL0ve.js.map → floatingUi-Cs4rDXmO.js.map} +1 -1
  288. package/dist/{floatingUi-BErx3eqf.mjs → floatingUi-DHMrP__c.mjs} +5 -5
  289. package/dist/{floatingUi-BErx3eqf.mjs.map → floatingUi-DHMrP__c.mjs.map} +1 -1
  290. package/dist/{getClasses-DwzMjfzX.mjs → getClasses-DaWzwT2S.mjs} +1 -1
  291. package/dist/{getClasses-DwzMjfzX.mjs.map → getClasses-DaWzwT2S.mjs.map} +1 -1
  292. package/dist/{getClasses-BpIobrfU.js → getClasses-qqI6x4f4.js} +1 -1
  293. package/dist/{getClasses-BpIobrfU.js.map → getClasses-qqI6x4f4.js.map} +1 -1
  294. package/dist/{getElement-BPjh0Qkh.mjs → getElement-0_htvrFw.mjs} +1 -1
  295. package/dist/{getElement-BPjh0Qkh.mjs.map → getElement-0_htvrFw.mjs.map} +1 -1
  296. package/dist/{getElement-BPm7tpe2.js → getElement-CxWWOx3K.js} +1 -1
  297. package/dist/{getElement-BPm7tpe2.js.map → getElement-CxWWOx3K.js.map} +1 -1
  298. package/dist/{registryAccess-BO4rk3Sm.mjs → registryAccess-C1Ti_nxW.mjs} +1 -1
  299. package/dist/{registryAccess-BO4rk3Sm.mjs.map → registryAccess-C1Ti_nxW.mjs.map} +1 -1
  300. package/dist/{registryAccess-ROXkP1Do.js → registryAccess-D-YxwQJq.js} +1 -1
  301. package/dist/{registryAccess-ROXkP1Do.js.map → registryAccess-D-YxwQJq.js.map} +1 -1
  302. package/dist/src/components/BAccordion/index.mjs +1 -1
  303. package/dist/src/components/BAccordion/index.umd.js +1 -1
  304. package/dist/src/components/BAlert/index.mjs +1 -1
  305. package/dist/src/components/BAlert/index.umd.js +1 -1
  306. package/dist/src/components/BAutocomplete/index.mjs +2 -0
  307. package/dist/src/components/BAutocomplete/index.umd.js +3 -0
  308. package/dist/src/components/BAvatar/index.mjs +1 -1
  309. package/dist/src/components/BAvatar/index.umd.js +1 -1
  310. package/dist/src/components/BBadge/index.mjs +1 -1
  311. package/dist/src/components/BBadge/index.umd.js +1 -1
  312. package/dist/src/components/BBreadcrumb/index.mjs +1 -1
  313. package/dist/src/components/BBreadcrumb/index.umd.js +1 -1
  314. package/dist/src/components/BButton/index.mjs +2 -2
  315. package/dist/src/components/BButton/index.umd.js +2 -2
  316. package/dist/src/components/BCard/index.mjs +2 -2
  317. package/dist/src/components/BCard/index.umd.js +2 -2
  318. package/dist/src/components/BCarousel/index.mjs +1 -1
  319. package/dist/src/components/BCarousel/index.umd.js +1 -1
  320. package/dist/src/components/BCol/index.mjs +1 -1
  321. package/dist/src/components/BCol/index.umd.js +1 -1
  322. package/dist/src/components/BCollapse/index.mjs +1 -1
  323. package/dist/src/components/BCollapse/index.umd.js +1 -1
  324. package/dist/src/components/BContainer/index.mjs +3 -3
  325. package/dist/src/components/BContainer/index.umd.js +3 -3
  326. package/dist/src/components/BDateField/index.mjs +1 -1
  327. package/dist/src/components/BDateField/index.umd.js +1 -1
  328. package/dist/src/components/BDatePicker/index.mjs +1 -1
  329. package/dist/src/components/BDatePicker/index.umd.js +1 -1
  330. package/dist/src/components/BDropdown/index.mjs +2 -2
  331. package/dist/src/components/BDropdown/index.umd.js +2 -2
  332. package/dist/src/components/BForm/index.mjs +3 -3
  333. package/dist/src/components/BForm/index.umd.js +3 -3
  334. package/dist/src/components/BFormCheckbox/index.mjs +1 -1
  335. package/dist/src/components/BFormCheckbox/index.umd.js +1 -1
  336. package/dist/src/components/BFormFile/index.mjs +1 -1
  337. package/dist/src/components/BFormFile/index.umd.js +1 -1
  338. package/dist/src/components/BFormGroup/index.mjs +1 -1
  339. package/dist/src/components/BFormGroup/index.umd.js +1 -1
  340. package/dist/src/components/BFormInput/index.mjs +1 -1
  341. package/dist/src/components/BFormInput/index.umd.js +1 -1
  342. package/dist/src/components/BFormOtp/index.mjs +2 -0
  343. package/dist/src/components/BFormOtp/index.umd.js +3 -0
  344. package/dist/src/components/BFormRadio/index.mjs +1 -1
  345. package/dist/src/components/BFormRadio/index.umd.js +1 -1
  346. package/dist/src/components/BFormRating/index.mjs +1 -1
  347. package/dist/src/components/BFormRating/index.umd.js +1 -1
  348. package/dist/src/components/BFormSelect/index.mjs +2 -2
  349. package/dist/src/components/BFormSelect/index.umd.js +3 -3
  350. package/dist/src/components/BFormSpinbutton/index.mjs +1 -1
  351. package/dist/src/components/BFormSpinbutton/index.umd.js +1 -1
  352. package/dist/src/components/BFormTags/index.mjs +2 -1
  353. package/dist/src/components/BFormTags/index.umd.js +3 -2
  354. package/dist/src/components/BFormTextarea/index.mjs +1 -1
  355. package/dist/src/components/BFormTextarea/index.umd.js +1 -1
  356. package/dist/src/components/BImg/index.mjs +1 -1
  357. package/dist/src/components/BImg/index.umd.js +1 -1
  358. package/dist/src/components/BInputGroup/index.mjs +2 -1
  359. package/dist/src/components/BInputGroup/index.umd.js +3 -2
  360. package/dist/src/components/BListGroup/index.mjs +1 -1
  361. package/dist/src/components/BListGroup/index.umd.js +1 -1
  362. package/dist/src/components/BModal/index.mjs +1 -1
  363. package/dist/src/components/BModal/index.umd.js +1 -1
  364. package/dist/src/components/BNav/index.mjs +1 -1
  365. package/dist/src/components/BNav/index.umd.js +1 -1
  366. package/dist/src/components/BNavbar/index.mjs +1 -1
  367. package/dist/src/components/BNavbar/index.umd.js +1 -1
  368. package/dist/src/components/BOffcanvas/index.mjs +1 -1
  369. package/dist/src/components/BOffcanvas/index.umd.js +1 -1
  370. package/dist/src/components/BOverlay/index.mjs +1 -1
  371. package/dist/src/components/BOverlay/index.umd.js +1 -1
  372. package/dist/src/components/BPagination/index.mjs +1 -1
  373. package/dist/src/components/BPagination/index.umd.js +1 -1
  374. package/dist/src/components/BPlaceholder/index.mjs +1 -1
  375. package/dist/src/components/BPlaceholder/index.umd.js +1 -1
  376. package/dist/src/components/BPopover/index.mjs +1 -1
  377. package/dist/src/components/BPopover/index.umd.js +1 -1
  378. package/dist/src/components/BProgress/index.mjs +1 -1
  379. package/dist/src/components/BProgress/index.umd.js +1 -1
  380. package/dist/src/components/BRow/index.mjs +1 -1
  381. package/dist/src/components/BRow/index.umd.js +1 -1
  382. package/dist/src/components/BTable/index.mjs +2 -2
  383. package/dist/src/components/BTable/index.umd.js +2 -2
  384. package/dist/src/components/BTabs/index.mjs +1 -1
  385. package/dist/src/components/BTabs/index.umd.js +1 -1
  386. package/dist/src/components/BTimeField/index.mjs +1 -1
  387. package/dist/src/components/BTimeField/index.umd.js +1 -1
  388. package/dist/src/components/BToast/index.mjs +1 -1
  389. package/dist/src/components/BToast/index.umd.js +1 -1
  390. package/dist/src/components/BTooltip/index.mjs +1 -1
  391. package/dist/src/components/BTooltip/index.umd.js +1 -1
  392. package/dist/src/components/index.mjs +58 -51
  393. package/dist/src/components/index.mjs.map +1 -1
  394. package/dist/src/components/index.umd.js +65 -56
  395. package/dist/src/components/index.umd.js.map +1 -1
  396. package/dist/src/composables/useColorMode/index.mjs +1 -1
  397. package/dist/src/composables/useColorMode/index.umd.js +1 -1
  398. package/dist/src/composables/useModal/index.mjs +1 -1
  399. package/dist/src/composables/useModal/index.umd.js +1 -1
  400. package/dist/src/composables/usePopover/index.mjs +2 -2
  401. package/dist/src/composables/usePopover/index.umd.js +2 -2
  402. package/dist/src/composables/useScrollLock/index.mjs +1 -1
  403. package/dist/src/composables/useScrollLock/index.umd.js +1 -1
  404. package/dist/src/composables/useScrollspy/index.mjs +2 -2
  405. package/dist/src/composables/useScrollspy/index.umd.js +2 -2
  406. package/dist/src/composables/useToast/index.mjs +1 -1
  407. package/dist/src/composables/useToast/index.umd.js +1 -1
  408. package/dist/src/composables/useToggle/index.mjs +1 -1
  409. package/dist/src/composables/useToggle/index.umd.js +1 -1
  410. package/dist/src/directives/BPopover/index.mjs +2 -2
  411. package/dist/src/directives/BPopover/index.umd.js +2 -2
  412. package/dist/src/directives/BScrollspy/index.mjs +1 -1
  413. package/dist/src/directives/BScrollspy/index.umd.js +1 -1
  414. package/dist/src/directives/BToggle/index.mjs +2 -2
  415. package/dist/src/directives/BToggle/index.umd.js +2 -2
  416. package/dist/src/directives/BTooltip/index.mjs +2 -2
  417. package/dist/src/directives/BTooltip/index.umd.js +2 -2
  418. package/dist/src/resolvers/index.mjs +1 -1
  419. package/dist/src/resolvers/index.umd.js +1 -1
  420. package/dist/src/types/index.mjs +1 -1
  421. package/dist/src/types/index.umd.js +1 -1
  422. package/dist/types/BootstrapVueOptions.d.mts +5 -1
  423. package/dist/types/BootstrapVueOptions.d.ts +5 -1
  424. package/dist/types/ComponentProps.d.mts +59 -3
  425. package/dist/types/ComponentProps.d.ts +59 -3
  426. package/dist/types/ComponentSlots.d.mts +14 -0
  427. package/dist/types/ComponentSlots.d.ts +14 -0
  428. package/dist/{useAlignment-DMST4-tc.mjs → useAlignment-BiCREohQ.mjs} +1 -1
  429. package/dist/{useAlignment-DMST4-tc.mjs.map → useAlignment-BiCREohQ.mjs.map} +1 -1
  430. package/dist/{useAlignment-Dus_TOxG.js → useAlignment-D5xKBRez.js} +1 -1
  431. package/dist/{useAlignment-Dus_TOxG.js.map → useAlignment-D5xKBRez.js.map} +1 -1
  432. package/dist/{useAriaInvalid-CsUHLhSs.js → useAriaInvalid-CHHPHNLU.js} +1 -1
  433. package/dist/{useAriaInvalid-CsUHLhSs.js.map → useAriaInvalid-CHHPHNLU.js.map} +1 -1
  434. package/dist/{useAriaInvalid-DcG6BhdW.mjs → useAriaInvalid-apOwgexm.mjs} +1 -1
  435. package/dist/{useAriaInvalid-DcG6BhdW.mjs.map → useAriaInvalid-apOwgexm.mjs.map} +1 -1
  436. package/dist/{useCountdownHover-D044mFuX.js → useCountdownHover-8bwLWYoN.js} +2 -2
  437. package/dist/{useCountdownHover-D044mFuX.js.map → useCountdownHover-8bwLWYoN.js.map} +1 -1
  438. package/dist/{useCountdownHover-DqREghQi.mjs → useCountdownHover-t9O7DHoK.mjs} +2 -2
  439. package/dist/{useCountdownHover-DqREghQi.mjs.map → useCountdownHover-t9O7DHoK.mjs.map} +1 -1
  440. package/dist/{useDateField-Ca0ZxYq9.js → useDateField-COTiu3aN.js} +8 -321
  441. package/dist/useDateField-COTiu3aN.js.map +1 -0
  442. package/dist/{useDateField-BkbvpMB1.mjs → useDateField-DmmXa0_5.mjs} +5 -258
  443. package/dist/useDateField-DmmXa0_5.mjs.map +1 -0
  444. package/dist/{useFormCheck-9Ne69Sw9.mjs → useFormCheck-CJvIDxcO.mjs} +3 -3
  445. package/dist/{useFormCheck-9Ne69Sw9.mjs.map → useFormCheck-CJvIDxcO.mjs.map} +1 -1
  446. package/dist/{useFormCheck-H0B2G8GH.js → useFormCheck-UHNy_iZ0.js} +3 -3
  447. package/dist/{useFormCheck-H0B2G8GH.js.map → useFormCheck-UHNy_iZ0.js.map} +1 -1
  448. package/dist/{useFormInput-9wwIZZqf.mjs → useFormInput-BgJCT9k_.mjs} +5 -5
  449. package/dist/{useFormInput-9wwIZZqf.mjs.map → useFormInput-BgJCT9k_.mjs.map} +1 -1
  450. package/dist/{useFormInput-DyZLjypv.js → useFormInput-CsR38QR6.js} +5 -5
  451. package/dist/{useFormInput-DyZLjypv.js.map → useFormInput-CsR38QR6.js.map} +1 -1
  452. package/dist/useFormSelect-CANw3ZJG.mjs +45 -0
  453. package/dist/useFormSelect-CANw3ZJG.mjs.map +1 -0
  454. package/dist/useFormSelect-nQbGZSi8.js +51 -0
  455. package/dist/useFormSelect-nQbGZSi8.js.map +1 -0
  456. package/dist/useForwardExpose-4OUimdPL.mjs +68 -0
  457. package/dist/useForwardExpose-4OUimdPL.mjs.map +1 -0
  458. package/dist/useForwardExpose-DrJOy0jY.js +80 -0
  459. package/dist/useForwardExpose-DrJOy0jY.js.map +1 -0
  460. package/dist/useKbd-IZRktImL.mjs +88 -0
  461. package/dist/useKbd-IZRktImL.mjs.map +1 -0
  462. package/dist/useKbd-ZZushx7D.js +105 -0
  463. package/dist/useKbd-ZZushx7D.js.map +1 -0
  464. package/dist/{useNumberishToStyle--4gz3iYn.mjs → useNumberishToStyle-DEqGK1UH.mjs} +1 -1
  465. package/dist/{useNumberishToStyle--4gz3iYn.mjs.map → useNumberishToStyle-DEqGK1UH.mjs.map} +1 -1
  466. package/dist/{useNumberishToStyle-DMGqQGfo.js → useNumberishToStyle-DFf9fokb.js} +1 -1
  467. package/dist/{useNumberishToStyle-DMGqQGfo.js.map → useNumberishToStyle-DFf9fokb.js.map} +1 -1
  468. package/dist/{useRadiusElementClasses-ppH4Pr03.mjs → useRadiusElementClasses-BlrN-T6U.mjs} +1 -1
  469. package/dist/{useRadiusElementClasses-ppH4Pr03.mjs.map → useRadiusElementClasses-BlrN-T6U.mjs.map} +1 -1
  470. package/dist/{useRadiusElementClasses-Bi58dhJY.js → useRadiusElementClasses-C13_PhPM.js} +1 -1
  471. package/dist/{useRadiusElementClasses-Bi58dhJY.js.map → useRadiusElementClasses-C13_PhPM.js.map} +1 -1
  472. package/dist/{useRtl-DWO9pKff.js → useRtl-DXAooTrl.js} +1 -1
  473. package/dist/{useRtl-DWO9pKff.js.map → useRtl-DXAooTrl.js.map} +1 -1
  474. package/dist/{useRtl-BwxT5Dyq.mjs → useRtl-DpwU_RM8.mjs} +1 -1
  475. package/dist/{useRtl-BwxT5Dyq.mjs.map → useRtl-DpwU_RM8.mjs.map} +1 -1
  476. package/dist/{useSafeScrollLock-xJBEvCQ7.js → useSafeScrollLock-Bm9RxDoY.js} +2 -2
  477. package/dist/{useSafeScrollLock-xJBEvCQ7.js.map → useSafeScrollLock-Bm9RxDoY.js.map} +1 -1
  478. package/dist/{useSafeScrollLock-DJ1UsIFY.mjs → useSafeScrollLock-D62o8jto.mjs} +2 -2
  479. package/dist/{useSafeScrollLock-DJ1UsIFY.mjs.map → useSafeScrollLock-D62o8jto.mjs.map} +1 -1
  480. package/dist/{useShowHide-sLzwukNm.js → useShowHide-BTCaeU5j.js} +3 -3
  481. package/dist/useShowHide-BTCaeU5j.js.map +1 -0
  482. package/dist/{useShowHide-IPyuuPL0.mjs → useShowHide-yAK5dhPT.mjs} +3 -3
  483. package/dist/useShowHide-yAK5dhPT.mjs.map +1 -0
  484. package/dist/{useStateClass-0b-hPufa.js → useStateClass-CJ24hpkn.js} +1 -1
  485. package/dist/{useStateClass-0b-hPufa.js.map → useStateClass-CJ24hpkn.js.map} +1 -1
  486. package/dist/{useStateClass-DXbp5rFK.mjs → useStateClass-CdmlbrGn.mjs} +1 -1
  487. package/dist/{useStateClass-DXbp5rFK.mjs.map → useStateClass-CdmlbrGn.mjs.map} +1 -1
  488. package/dist/{utils-bUQM0PzD.js → utils-CaC78Zdk.js} +2 -2
  489. package/dist/{utils-bUQM0PzD.js.map → utils-CaC78Zdk.js.map} +1 -1
  490. package/dist/{utils-D_vdhVDP.mjs → utils-CgwCsk6U.mjs} +2 -2
  491. package/dist/{utils-D_vdhVDP.mjs.map → utils-CgwCsk6U.mjs.map} +1 -1
  492. package/package.json +1 -1
  493. package/src/components/BAutocomplete/_autocomplete.scss +136 -0
  494. package/src/components/BFormOtp/_form-otp.scss +29 -0
  495. package/src/styles/styles.scss +2 -0
  496. package/dist/BCarousel-DarHY6e7.mjs.map +0 -1
  497. package/dist/BCarousel-DvQKUvSp.js.map +0 -1
  498. package/dist/BDatePicker-CHtppbq6.js.map +0 -1
  499. package/dist/BDatePicker-CpwEikK3.mjs.map +0 -1
  500. package/dist/BDropdown-CkklXJE1.mjs.map +0 -1
  501. package/dist/BDropdown-g6_09NKU.js.map +0 -1
  502. package/dist/BFormTags-BUoQXBA9.js.map +0 -1
  503. package/dist/BFormTags-BjyHMiw1.mjs.map +0 -1
  504. package/dist/BInputGroup-DwrQVmGT.js.map +0 -1
  505. package/dist/BInputGroup-xno5tJWV.mjs.map +0 -1
  506. package/dist/BModal-CVf686JS.js.map +0 -1
  507. package/dist/BModal-DkX-2F1v.mjs.map +0 -1
  508. package/dist/BOffcanvas-CJDXvuCR.js.map +0 -1
  509. package/dist/BOffcanvas-CJUaqRuT.mjs.map +0 -1
  510. package/dist/BootstrapVueOptions-Bswes3nS.mjs.map +0 -1
  511. package/dist/BootstrapVueOptions-BxTxSFXn.js.map +0 -1
  512. package/dist/useDateField-BkbvpMB1.mjs.map +0 -1
  513. package/dist/useDateField-Ca0ZxYq9.js.map +0 -1
  514. package/dist/useFormSelect-8ZL7Dk3W.js +0 -92
  515. package/dist/useFormSelect-8ZL7Dk3W.js.map +0 -1
  516. package/dist/useFormSelect-BYhUZcK5.mjs +0 -80
  517. package/dist/useFormSelect-BYhUZcK5.mjs.map +0 -1
  518. package/dist/useShowHide-IPyuuPL0.mjs.map +0 -1
  519. package/dist/useShowHide-sLzwukNm.js.map +0 -1
@@ -4,7 +4,7 @@ const require_dom = require("./dom-Bs6DzM72.js");
4
4
  const require_useDefaults = require("./useDefaults-DsLf4iRY.js");
5
5
  const require_useId = require("./useId-DHrBgM7P.js");
6
6
  const require_flattenFragments = require("./flattenFragments-C1WWqm25.js");
7
- const require_BCollapse = require("./BCollapse-D2tCzh6C.js");
7
+ const require_BCollapse = require("./BCollapse-DZ1z2c8U.js");
8
8
  const require_object = require("./object-BN7QwMcz.js");
9
9
  let vue = require("vue");
10
10
  //#region src/components/BAccordion/BAccordionItem.vue?vue&type=script&setup=true&lang.ts
@@ -357,4 +357,4 @@ Object.defineProperty(exports, "BAccordion_default", {
357
357
  }
358
358
  });
359
359
 
360
- //# sourceMappingURL=BAccordion-DZ50ppJx.js.map
360
+ //# sourceMappingURL=BAccordion-CJZMsvwP.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BAccordion-DZ50ppJx.js","names":[],"sources":["../src/components/BAccordion/BAccordionItem.vue","../src/components/BAccordion/BAccordionItem.vue","../src/components/BAccordion/BAccordion.vue","../src/components/BAccordion/BAccordion.vue"],"sourcesContent":["<template>\n <div\n ref=\"_el\"\n class=\"accordion-item\"\n v-bind=\"props.wrapperAttrs\"\n :class=\"processedAttrs.wrapperClass\"\n >\n <BCollapse\n :id=\"computedId\"\n v-model=\"modelValue\"\n class=\"accordion-collapse\"\n :class=\"props.collapseClass\"\n :aria-labelledby=\"`${computedId}-heading`\"\n v-bind=\"processedAttrs.collapseAttrs\"\n :tag=\"props.tag\"\n :show=\"props.show\"\n :horizontal=\"props.horizontal\"\n :visible=\"props.visible\"\n :is-nav=\"props.isNav\"\n :lazy=\"props.lazy || parentData?.lazy.value\"\n :unmount-lazy=\"props.unmountLazy || parentData?.unmountLazy.value\"\n @show=\"emit('show', $event)\"\n @shown=\"emit('shown', $event)\"\n @hide=\"emit('hide', $event)\"\n @hidden=\"emit('hidden', $event)\"\n @hide-prevented=\"emit('hide-prevented', $event)\"\n @show-prevented=\"emit('show-prevented', $event)\"\n @toggle-prevented=\"emit('toggle-prevented', $event)\"\n @toggle=\"emit('toggle', $event)\"\n >\n <template #header=\"{visible: toggleVisible, toggle: slotToggle}\">\n <component\n :is=\"props.headerTag\"\n :id=\"`${computedId}-heading`\"\n class=\"accordion-header\"\n :class=\"props.headerClass\"\n v-bind=\"props.headerAttrs\"\n >\n <button\n class=\"accordion-button\"\n v-bind=\"props.buttonAttrs\"\n :class=\"[{collapsed: !toggleVisible}, props.buttonClass]\"\n type=\"button\"\n :aria-expanded=\"toggleVisible ? 'true' : 'false'\"\n :aria-controls=\"computedId\"\n @click=\"slotToggle\"\n >\n <slot name=\"title\"> {{ props.title }} </slot>\n </button>\n </component>\n </template>\n <div class=\"accordion-body\" v-bind=\"props.bodyAttrs\" :class=\"props.bodyClass\">\n <slot />\n </div>\n </BCollapse>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n inject,\n nextTick,\n onMounted,\n onUnmounted,\n useAttrs,\n useTemplateRef,\n watch,\n} from 'vue'\nimport BCollapse from '../BCollapse/BCollapse.vue'\nimport {accordionInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport type {BAccordionItemProps} from '../../types/ComponentProps'\nimport type {BAccordionItemEmits} from '../../types/ComponentEmits'\nimport type {BAccordionItemSlots} from '../../types'\nimport {isReadOnlyArray} from '../../utils/object'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BAccordionItemProps, 'modelValue'>>(), {\n bodyAttrs: undefined,\n bodyClass: undefined,\n buttonAttrs: undefined,\n buttonClass: undefined,\n collapseClass: undefined,\n headerAttrs: undefined,\n headerClass: undefined,\n headerTag: 'h2',\n horizontal: undefined,\n id: undefined,\n isNav: undefined,\n lazy: false,\n unmountLazy: false,\n tag: undefined,\n title: undefined,\n show: undefined,\n visible: false,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BAccordionItem')\nconst emit = defineEmits<BAccordionItemEmits>()\ndefineSlots<BAccordionItemSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...collapseAttrs} = attrs\n return {wrapperClass, collapseAttrs}\n})\n\nconst parentData = inject(accordionInjectionKey, null)\n\nconst computedId = useId(() => props.id, 'accordion_item')\n\nconst modelValue = defineModel<Exclude<BAccordionItemProps['modelValue'], undefined>>({\n default: false,\n})\n\nif (modelValue.value) {\n parentData?.setOpenItem(computedId.value)\n} else {\n modelValue.value =\n (isReadOnlyArray(parentData?.openItem.value)\n ? parentData?.openItem.value.includes(computedId.value)\n : parentData?.openItem.value === computedId.value) && !parentData?.initialAnimation.value\n}\n\nconst el = useTemplateRef('_el')\nparentData?.registerAccordionItem(computedId.value, el)\n\nonUnmounted(() => {\n parentData?.unregisterAccordionItem(computedId.value)\n})\n\nonMounted(() => {\n if (!modelValue.value && parentData?.openItem.value === computedId.value) {\n nextTick(() => {\n modelValue.value = true\n })\n }\n})\n\nconst openInParent = computed(() =>\n isReadOnlyArray(parentData?.openItem.value)\n ? parentData?.openItem.value.includes(computedId.value)\n : parentData?.openItem.value === computedId.value\n)\n\nwatch(\n () => parentData?.openItem.value,\n () => (modelValue.value = openInParent.value)\n)\nwatch(modelValue, () => {\n if (modelValue.value && !openInParent.value) {\n parentData?.setOpenItem(computedId.value)\n } else if (!modelValue.value && openInParent.value) {\n parentData?.setCloseItem(computedId.value)\n }\n})\n</script>\n","<template>\n <div\n ref=\"_el\"\n class=\"accordion-item\"\n v-bind=\"props.wrapperAttrs\"\n :class=\"processedAttrs.wrapperClass\"\n >\n <BCollapse\n :id=\"computedId\"\n v-model=\"modelValue\"\n class=\"accordion-collapse\"\n :class=\"props.collapseClass\"\n :aria-labelledby=\"`${computedId}-heading`\"\n v-bind=\"processedAttrs.collapseAttrs\"\n :tag=\"props.tag\"\n :show=\"props.show\"\n :horizontal=\"props.horizontal\"\n :visible=\"props.visible\"\n :is-nav=\"props.isNav\"\n :lazy=\"props.lazy || parentData?.lazy.value\"\n :unmount-lazy=\"props.unmountLazy || parentData?.unmountLazy.value\"\n @show=\"emit('show', $event)\"\n @shown=\"emit('shown', $event)\"\n @hide=\"emit('hide', $event)\"\n @hidden=\"emit('hidden', $event)\"\n @hide-prevented=\"emit('hide-prevented', $event)\"\n @show-prevented=\"emit('show-prevented', $event)\"\n @toggle-prevented=\"emit('toggle-prevented', $event)\"\n @toggle=\"emit('toggle', $event)\"\n >\n <template #header=\"{visible: toggleVisible, toggle: slotToggle}\">\n <component\n :is=\"props.headerTag\"\n :id=\"`${computedId}-heading`\"\n class=\"accordion-header\"\n :class=\"props.headerClass\"\n v-bind=\"props.headerAttrs\"\n >\n <button\n class=\"accordion-button\"\n v-bind=\"props.buttonAttrs\"\n :class=\"[{collapsed: !toggleVisible}, props.buttonClass]\"\n type=\"button\"\n :aria-expanded=\"toggleVisible ? 'true' : 'false'\"\n :aria-controls=\"computedId\"\n @click=\"slotToggle\"\n >\n <slot name=\"title\"> {{ props.title }} </slot>\n </button>\n </component>\n </template>\n <div class=\"accordion-body\" v-bind=\"props.bodyAttrs\" :class=\"props.bodyClass\">\n <slot />\n </div>\n </BCollapse>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n inject,\n nextTick,\n onMounted,\n onUnmounted,\n useAttrs,\n useTemplateRef,\n watch,\n} from 'vue'\nimport BCollapse from '../BCollapse/BCollapse.vue'\nimport {accordionInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport type {BAccordionItemProps} from '../../types/ComponentProps'\nimport type {BAccordionItemEmits} from '../../types/ComponentEmits'\nimport type {BAccordionItemSlots} from '../../types'\nimport {isReadOnlyArray} from '../../utils/object'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BAccordionItemProps, 'modelValue'>>(), {\n bodyAttrs: undefined,\n bodyClass: undefined,\n buttonAttrs: undefined,\n buttonClass: undefined,\n collapseClass: undefined,\n headerAttrs: undefined,\n headerClass: undefined,\n headerTag: 'h2',\n horizontal: undefined,\n id: undefined,\n isNav: undefined,\n lazy: false,\n unmountLazy: false,\n tag: undefined,\n title: undefined,\n show: undefined,\n visible: false,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BAccordionItem')\nconst emit = defineEmits<BAccordionItemEmits>()\ndefineSlots<BAccordionItemSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...collapseAttrs} = attrs\n return {wrapperClass, collapseAttrs}\n})\n\nconst parentData = inject(accordionInjectionKey, null)\n\nconst computedId = useId(() => props.id, 'accordion_item')\n\nconst modelValue = defineModel<Exclude<BAccordionItemProps['modelValue'], undefined>>({\n default: false,\n})\n\nif (modelValue.value) {\n parentData?.setOpenItem(computedId.value)\n} else {\n modelValue.value =\n (isReadOnlyArray(parentData?.openItem.value)\n ? parentData?.openItem.value.includes(computedId.value)\n : parentData?.openItem.value === computedId.value) && !parentData?.initialAnimation.value\n}\n\nconst el = useTemplateRef('_el')\nparentData?.registerAccordionItem(computedId.value, el)\n\nonUnmounted(() => {\n parentData?.unregisterAccordionItem(computedId.value)\n})\n\nonMounted(() => {\n if (!modelValue.value && parentData?.openItem.value === computedId.value) {\n nextTick(() => {\n modelValue.value = true\n })\n }\n})\n\nconst openInParent = computed(() =>\n isReadOnlyArray(parentData?.openItem.value)\n ? parentData?.openItem.value.includes(computedId.value)\n : parentData?.openItem.value === computedId.value\n)\n\nwatch(\n () => parentData?.openItem.value,\n () => (modelValue.value = openInParent.value)\n)\nwatch(modelValue, () => {\n if (modelValue.value && !openInParent.value) {\n parentData?.setOpenItem(computedId.value)\n } else if (!modelValue.value && openInParent.value) {\n parentData?.setCloseItem(computedId.value)\n }\n})\n</script>\n","<template>\n <div :id=\"computedId\" class=\"accordion\" :class=\"computedClasses\">\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n nextTick,\n provide,\n readonly,\n ref,\n type ShallowRef,\n shallowRef,\n toRef,\n unref,\n type VNode,\n watch,\n} from 'vue'\nimport {accordionInjectionKey} from '../../utils/keys'\nimport {useId} from '../../composables/useId'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {flattenFragments} from '../../utils/flattenFragments'\nimport BAccordionItem from './BAccordionItem.vue'\nimport {sortSlotElementsByPosition} from '../../utils/dom'\nimport type {BAccordionSlots, BAccordionProps} from '../../types'\nimport {isReadOnlyArray} from '../../utils/object'\n\nconst _props = withDefaults(defineProps<Omit<BAccordionProps, 'modelValue' | 'index'>>(), {\n flush: false,\n free: false,\n initialAnimation: false,\n id: undefined,\n lazy: false,\n unmountLazy: false,\n})\nconst props = useDefaults(_props, 'BAccordion')\nconst slots = defineSlots<BAccordionSlots>()\n\nconst modelValue = defineModel<BAccordionProps['modelValue']>({\n default: undefined,\n})\n\nconst index = defineModel<BAccordionProps['index']>('index', {\n default: undefined,\n})\n\nconst itemElementsArray = ref<VNode[]>([])\n\nconst updateItemElementsArray = () => {\n const itemElements = flattenFragments(slots.default?.({}) ?? [])\n itemElementsArray.value = (Array.isArray(itemElements) ? itemElements : [itemElements]).filter(\n (item) => item.type === BAccordionItem\n )\n}\nupdateItemElementsArray()\n\nwatch(\n () => slots.default?.({}),\n () => {\n updateItemElementsArray()\n nextTick(() => {\n sortAccordionItems()\n })\n }\n)\n\ninterface AccordionItem {\n id: string\n el: Readonly<ShallowRef<HTMLElement | null>>\n}\n\nconst accordionItems = shallowRef<AccordionItem[]>([])\n\nconst sortAccordionItems = () => {\n accordionItems.value = [...accordionItems.value].sort((a, b) =>\n sortSlotElementsByPosition(unref(a.el), unref(b.el))\n )\n if (modelValue.value) {\n if (isReadOnlyArray(modelValue.value)) {\n const next = modelValue.value\n .map((id) => accordionItems.value.findIndex((item) => item.id === id))\n .filter((i) => i !== -1)\n\n if (next.length !== modelValue.value.length) {\n if (process.env.NODE_ENV === 'development') {\n console.warn('[BAccordion] Unknown item id in v-model:', modelValue.value)\n }\n }\n index.value = next\n } else {\n const idx = accordionItems.value.findIndex((item) => item.id === modelValue.value)\n if (idx !== -1) index.value = idx\n }\n } else if (index.value !== undefined) {\n modelValue.value = isReadOnlyArray(index.value)\n ? index.value.map((idx) => accordionItems.value[idx]?.id).filter((el) => el !== undefined)\n : accordionItems.value[index.value]?.id\n }\n}\n\nconst computedId = useId(() => props.id, 'accordion')\n\nconst computedClasses = computed(() => ({\n 'accordion-flush': props.flush,\n}))\n\nconst areEqual = (a: unknown, b: unknown) => {\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.length === b.length && a.every((item, index) => item === b[index])\n }\n return a === b\n}\n\nwatch(index, (newValue, oldValue) => {\n if (areEqual(newValue, oldValue)) return\n if (index.value === undefined) {\n modelValue.value = undefined\n return\n }\n\n if (!props.free) {\n const idx = !isReadOnlyArray(index.value) ? index.value : index.value?.[0]\n if (idx !== undefined && accordionItems.value[idx]?.id) {\n if (modelValue.value !== accordionItems.value[idx]?.id) {\n modelValue.value = accordionItems.value[idx]?.id\n }\n } else {\n nextTick(() => {\n index.value = undefined\n })\n }\n } else {\n // free mode\n if (isReadOnlyArray(index.value)) {\n const newValue = index.value\n .map((item) => accordionItems.value[item]?.id)\n .filter((el) => el !== undefined)\n if (!areEqual(newValue, modelValue.value)) {\n modelValue.value = newValue\n }\n } else {\n const newValue = accordionItems.value[index.value]?.id\n if (newValue === undefined) {\n nextTick(() => {\n index.value = undefined\n })\n return\n }\n if (!areEqual(newValue, modelValue.value)) {\n modelValue.value = newValue\n }\n }\n }\n})\n\nwatch(\n modelValue,\n (newValue, oldValue) => {\n if (areEqual(newValue, oldValue)) return\n if (modelValue.value === undefined) {\n index.value = undefined\n return\n }\n\n if (!props.free) {\n const idx = accordionItems.value.findIndex(\n (item) =>\n item.id ===\n (!isReadOnlyArray(modelValue.value) ? modelValue.value : modelValue.value?.[0])\n )\n\n if (idx !== -1) {\n if (index.value !== idx) {\n index.value = idx\n }\n } else {\n nextTick(() => {\n modelValue.value = undefined\n })\n }\n } else if (props.free) {\n if (isReadOnlyArray(modelValue.value)) {\n const idxes = modelValue.value\n .map((value) => accordionItems.value.findIndex((item) => item.id === value))\n .filter((index) => index !== -1)\n if (idxes.length > 0) {\n if (!areEqual(idxes, index.value)) {\n index.value = idxes\n }\n } else {\n nextTick(() => {\n modelValue.value = undefined\n })\n }\n } else {\n const newValue = accordionItems.value.findIndex((item) => item.id === modelValue.value)\n if (!areEqual(newValue, index.value)) {\n index.value = newValue\n }\n }\n }\n },\n {deep: true}\n)\n\nwatch(\n () => props.free,\n (free) => {\n if (modelValue.value) {\n if (!free && isReadOnlyArray(modelValue.value)) {\n modelValue.value = modelValue.value[0]\n } else if (free && !isReadOnlyArray(modelValue.value)) {\n modelValue.value = [modelValue.value]\n }\n }\n }\n)\n\nprovide(accordionInjectionKey, {\n openItem: readonly(modelValue),\n free: toRef(() => props.free),\n initialAnimation: toRef(() => props.initialAnimation),\n lazy: toRef(() => props.lazy),\n unmountLazy: toRef(() => props.unmountLazy),\n setOpenItem: (id: string) => {\n if (props.free && !isReadOnlyArray(modelValue.value)) {\n if (modelValue.value !== undefined) {\n modelValue.value = [modelValue.value, id]\n } else {\n modelValue.value = [id]\n }\n return\n }\n if (!props.free && isReadOnlyArray(modelValue.value)) {\n modelValue.value = id\n return\n }\n if (isReadOnlyArray(modelValue.value)) {\n if (!modelValue.value.includes(id)) {\n modelValue.value = [...modelValue.value, id]\n }\n } else {\n modelValue.value = id\n }\n },\n setCloseItem: (id: string) => {\n if (!props.free && isReadOnlyArray(modelValue.value)) {\n modelValue.value = undefined\n return\n }\n if (isReadOnlyArray(modelValue.value)) {\n const next = modelValue.value.filter((item) => item !== id)\n modelValue.value = next.length ? next : undefined\n } else {\n if (modelValue.value === id) {\n modelValue.value = undefined\n }\n }\n },\n registerAccordionItem: (id: string, el: Readonly<ShallowRef<HTMLElement | null>>) => {\n accordionItems.value = [...accordionItems.value, {id, el}]\n if (accordionItems.value.length === itemElementsArray.value.length) {\n sortAccordionItems()\n }\n },\n unregisterAccordionItem: (id: string) => {\n accordionItems.value = accordionItems.value.filter((item) => item.id !== id)\n },\n})\n</script>\n","<template>\n <div :id=\"computedId\" class=\"accordion\" :class=\"computedClasses\">\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n nextTick,\n provide,\n readonly,\n ref,\n type ShallowRef,\n shallowRef,\n toRef,\n unref,\n type VNode,\n watch,\n} from 'vue'\nimport {accordionInjectionKey} from '../../utils/keys'\nimport {useId} from '../../composables/useId'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {flattenFragments} from '../../utils/flattenFragments'\nimport BAccordionItem from './BAccordionItem.vue'\nimport {sortSlotElementsByPosition} from '../../utils/dom'\nimport type {BAccordionSlots, BAccordionProps} from '../../types'\nimport {isReadOnlyArray} from '../../utils/object'\n\nconst _props = withDefaults(defineProps<Omit<BAccordionProps, 'modelValue' | 'index'>>(), {\n flush: false,\n free: false,\n initialAnimation: false,\n id: undefined,\n lazy: false,\n unmountLazy: false,\n})\nconst props = useDefaults(_props, 'BAccordion')\nconst slots = defineSlots<BAccordionSlots>()\n\nconst modelValue = defineModel<BAccordionProps['modelValue']>({\n default: undefined,\n})\n\nconst index = defineModel<BAccordionProps['index']>('index', {\n default: undefined,\n})\n\nconst itemElementsArray = ref<VNode[]>([])\n\nconst updateItemElementsArray = () => {\n const itemElements = flattenFragments(slots.default?.({}) ?? [])\n itemElementsArray.value = (Array.isArray(itemElements) ? itemElements : [itemElements]).filter(\n (item) => item.type === BAccordionItem\n )\n}\nupdateItemElementsArray()\n\nwatch(\n () => slots.default?.({}),\n () => {\n updateItemElementsArray()\n nextTick(() => {\n sortAccordionItems()\n })\n }\n)\n\ninterface AccordionItem {\n id: string\n el: Readonly<ShallowRef<HTMLElement | null>>\n}\n\nconst accordionItems = shallowRef<AccordionItem[]>([])\n\nconst sortAccordionItems = () => {\n accordionItems.value = [...accordionItems.value].sort((a, b) =>\n sortSlotElementsByPosition(unref(a.el), unref(b.el))\n )\n if (modelValue.value) {\n if (isReadOnlyArray(modelValue.value)) {\n const next = modelValue.value\n .map((id) => accordionItems.value.findIndex((item) => item.id === id))\n .filter((i) => i !== -1)\n\n if (next.length !== modelValue.value.length) {\n if (process.env.NODE_ENV === 'development') {\n console.warn('[BAccordion] Unknown item id in v-model:', modelValue.value)\n }\n }\n index.value = next\n } else {\n const idx = accordionItems.value.findIndex((item) => item.id === modelValue.value)\n if (idx !== -1) index.value = idx\n }\n } else if (index.value !== undefined) {\n modelValue.value = isReadOnlyArray(index.value)\n ? index.value.map((idx) => accordionItems.value[idx]?.id).filter((el) => el !== undefined)\n : accordionItems.value[index.value]?.id\n }\n}\n\nconst computedId = useId(() => props.id, 'accordion')\n\nconst computedClasses = computed(() => ({\n 'accordion-flush': props.flush,\n}))\n\nconst areEqual = (a: unknown, b: unknown) => {\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.length === b.length && a.every((item, index) => item === b[index])\n }\n return a === b\n}\n\nwatch(index, (newValue, oldValue) => {\n if (areEqual(newValue, oldValue)) return\n if (index.value === undefined) {\n modelValue.value = undefined\n return\n }\n\n if (!props.free) {\n const idx = !isReadOnlyArray(index.value) ? index.value : index.value?.[0]\n if (idx !== undefined && accordionItems.value[idx]?.id) {\n if (modelValue.value !== accordionItems.value[idx]?.id) {\n modelValue.value = accordionItems.value[idx]?.id\n }\n } else {\n nextTick(() => {\n index.value = undefined\n })\n }\n } else {\n // free mode\n if (isReadOnlyArray(index.value)) {\n const newValue = index.value\n .map((item) => accordionItems.value[item]?.id)\n .filter((el) => el !== undefined)\n if (!areEqual(newValue, modelValue.value)) {\n modelValue.value = newValue\n }\n } else {\n const newValue = accordionItems.value[index.value]?.id\n if (newValue === undefined) {\n nextTick(() => {\n index.value = undefined\n })\n return\n }\n if (!areEqual(newValue, modelValue.value)) {\n modelValue.value = newValue\n }\n }\n }\n})\n\nwatch(\n modelValue,\n (newValue, oldValue) => {\n if (areEqual(newValue, oldValue)) return\n if (modelValue.value === undefined) {\n index.value = undefined\n return\n }\n\n if (!props.free) {\n const idx = accordionItems.value.findIndex(\n (item) =>\n item.id ===\n (!isReadOnlyArray(modelValue.value) ? modelValue.value : modelValue.value?.[0])\n )\n\n if (idx !== -1) {\n if (index.value !== idx) {\n index.value = idx\n }\n } else {\n nextTick(() => {\n modelValue.value = undefined\n })\n }\n } else if (props.free) {\n if (isReadOnlyArray(modelValue.value)) {\n const idxes = modelValue.value\n .map((value) => accordionItems.value.findIndex((item) => item.id === value))\n .filter((index) => index !== -1)\n if (idxes.length > 0) {\n if (!areEqual(idxes, index.value)) {\n index.value = idxes\n }\n } else {\n nextTick(() => {\n modelValue.value = undefined\n })\n }\n } else {\n const newValue = accordionItems.value.findIndex((item) => item.id === modelValue.value)\n if (!areEqual(newValue, index.value)) {\n index.value = newValue\n }\n }\n }\n },\n {deep: true}\n)\n\nwatch(\n () => props.free,\n (free) => {\n if (modelValue.value) {\n if (!free && isReadOnlyArray(modelValue.value)) {\n modelValue.value = modelValue.value[0]\n } else if (free && !isReadOnlyArray(modelValue.value)) {\n modelValue.value = [modelValue.value]\n }\n }\n }\n)\n\nprovide(accordionInjectionKey, {\n openItem: readonly(modelValue),\n free: toRef(() => props.free),\n initialAnimation: toRef(() => props.initialAnimation),\n lazy: toRef(() => props.lazy),\n unmountLazy: toRef(() => props.unmountLazy),\n setOpenItem: (id: string) => {\n if (props.free && !isReadOnlyArray(modelValue.value)) {\n if (modelValue.value !== undefined) {\n modelValue.value = [modelValue.value, id]\n } else {\n modelValue.value = [id]\n }\n return\n }\n if (!props.free && isReadOnlyArray(modelValue.value)) {\n modelValue.value = id\n return\n }\n if (isReadOnlyArray(modelValue.value)) {\n if (!modelValue.value.includes(id)) {\n modelValue.value = [...modelValue.value, id]\n }\n } else {\n modelValue.value = id\n }\n },\n setCloseItem: (id: string) => {\n if (!props.free && isReadOnlyArray(modelValue.value)) {\n modelValue.value = undefined\n return\n }\n if (isReadOnlyArray(modelValue.value)) {\n const next = modelValue.value.filter((item) => item !== id)\n modelValue.value = next.length ? next : undefined\n } else {\n if (modelValue.value === id) {\n modelValue.value = undefined\n }\n }\n },\n registerAccordionItem: (id: string, el: Readonly<ShallowRef<HTMLElement | null>>) => {\n accordionItems.value = [...accordionItems.value, {id, el}]\n if (accordionItems.value.length === itemElementsArray.value.length) {\n sortAccordionItems()\n }\n },\n unregisterAccordionItem: (id: string) => {\n accordionItems.value = accordionItems.value.filter((item) => item.id !== id)\n },\n})\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"BAccordion-CJZMsvwP.js","names":[],"sources":["../src/components/BAccordion/BAccordionItem.vue","../src/components/BAccordion/BAccordionItem.vue","../src/components/BAccordion/BAccordion.vue","../src/components/BAccordion/BAccordion.vue"],"sourcesContent":["<template>\n <div\n ref=\"_el\"\n class=\"accordion-item\"\n v-bind=\"props.wrapperAttrs\"\n :class=\"processedAttrs.wrapperClass\"\n >\n <BCollapse\n :id=\"computedId\"\n v-model=\"modelValue\"\n class=\"accordion-collapse\"\n :class=\"props.collapseClass\"\n :aria-labelledby=\"`${computedId}-heading`\"\n v-bind=\"processedAttrs.collapseAttrs\"\n :tag=\"props.tag\"\n :show=\"props.show\"\n :horizontal=\"props.horizontal\"\n :visible=\"props.visible\"\n :is-nav=\"props.isNav\"\n :lazy=\"props.lazy || parentData?.lazy.value\"\n :unmount-lazy=\"props.unmountLazy || parentData?.unmountLazy.value\"\n @show=\"emit('show', $event)\"\n @shown=\"emit('shown', $event)\"\n @hide=\"emit('hide', $event)\"\n @hidden=\"emit('hidden', $event)\"\n @hide-prevented=\"emit('hide-prevented', $event)\"\n @show-prevented=\"emit('show-prevented', $event)\"\n @toggle-prevented=\"emit('toggle-prevented', $event)\"\n @toggle=\"emit('toggle', $event)\"\n >\n <template #header=\"{visible: toggleVisible, toggle: slotToggle}\">\n <component\n :is=\"props.headerTag\"\n :id=\"`${computedId}-heading`\"\n class=\"accordion-header\"\n :class=\"props.headerClass\"\n v-bind=\"props.headerAttrs\"\n >\n <button\n class=\"accordion-button\"\n v-bind=\"props.buttonAttrs\"\n :class=\"[{collapsed: !toggleVisible}, props.buttonClass]\"\n type=\"button\"\n :aria-expanded=\"toggleVisible ? 'true' : 'false'\"\n :aria-controls=\"computedId\"\n @click=\"slotToggle\"\n >\n <slot name=\"title\"> {{ props.title }} </slot>\n </button>\n </component>\n </template>\n <div class=\"accordion-body\" v-bind=\"props.bodyAttrs\" :class=\"props.bodyClass\">\n <slot />\n </div>\n </BCollapse>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n inject,\n nextTick,\n onMounted,\n onUnmounted,\n useAttrs,\n useTemplateRef,\n watch,\n} from 'vue'\nimport BCollapse from '../BCollapse/BCollapse.vue'\nimport {accordionInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport type {BAccordionItemProps} from '../../types/ComponentProps'\nimport type {BAccordionItemEmits} from '../../types/ComponentEmits'\nimport type {BAccordionItemSlots} from '../../types'\nimport {isReadOnlyArray} from '../../utils/object'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BAccordionItemProps, 'modelValue'>>(), {\n bodyAttrs: undefined,\n bodyClass: undefined,\n buttonAttrs: undefined,\n buttonClass: undefined,\n collapseClass: undefined,\n headerAttrs: undefined,\n headerClass: undefined,\n headerTag: 'h2',\n horizontal: undefined,\n id: undefined,\n isNav: undefined,\n lazy: false,\n unmountLazy: false,\n tag: undefined,\n title: undefined,\n show: undefined,\n visible: false,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BAccordionItem')\nconst emit = defineEmits<BAccordionItemEmits>()\ndefineSlots<BAccordionItemSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...collapseAttrs} = attrs\n return {wrapperClass, collapseAttrs}\n})\n\nconst parentData = inject(accordionInjectionKey, null)\n\nconst computedId = useId(() => props.id, 'accordion_item')\n\nconst modelValue = defineModel<Exclude<BAccordionItemProps['modelValue'], undefined>>({\n default: false,\n})\n\nif (modelValue.value) {\n parentData?.setOpenItem(computedId.value)\n} else {\n modelValue.value =\n (isReadOnlyArray(parentData?.openItem.value)\n ? parentData?.openItem.value.includes(computedId.value)\n : parentData?.openItem.value === computedId.value) && !parentData?.initialAnimation.value\n}\n\nconst el = useTemplateRef('_el')\nparentData?.registerAccordionItem(computedId.value, el)\n\nonUnmounted(() => {\n parentData?.unregisterAccordionItem(computedId.value)\n})\n\nonMounted(() => {\n if (!modelValue.value && parentData?.openItem.value === computedId.value) {\n nextTick(() => {\n modelValue.value = true\n })\n }\n})\n\nconst openInParent = computed(() =>\n isReadOnlyArray(parentData?.openItem.value)\n ? parentData?.openItem.value.includes(computedId.value)\n : parentData?.openItem.value === computedId.value\n)\n\nwatch(\n () => parentData?.openItem.value,\n () => (modelValue.value = openInParent.value)\n)\nwatch(modelValue, () => {\n if (modelValue.value && !openInParent.value) {\n parentData?.setOpenItem(computedId.value)\n } else if (!modelValue.value && openInParent.value) {\n parentData?.setCloseItem(computedId.value)\n }\n})\n</script>\n","<template>\n <div\n ref=\"_el\"\n class=\"accordion-item\"\n v-bind=\"props.wrapperAttrs\"\n :class=\"processedAttrs.wrapperClass\"\n >\n <BCollapse\n :id=\"computedId\"\n v-model=\"modelValue\"\n class=\"accordion-collapse\"\n :class=\"props.collapseClass\"\n :aria-labelledby=\"`${computedId}-heading`\"\n v-bind=\"processedAttrs.collapseAttrs\"\n :tag=\"props.tag\"\n :show=\"props.show\"\n :horizontal=\"props.horizontal\"\n :visible=\"props.visible\"\n :is-nav=\"props.isNav\"\n :lazy=\"props.lazy || parentData?.lazy.value\"\n :unmount-lazy=\"props.unmountLazy || parentData?.unmountLazy.value\"\n @show=\"emit('show', $event)\"\n @shown=\"emit('shown', $event)\"\n @hide=\"emit('hide', $event)\"\n @hidden=\"emit('hidden', $event)\"\n @hide-prevented=\"emit('hide-prevented', $event)\"\n @show-prevented=\"emit('show-prevented', $event)\"\n @toggle-prevented=\"emit('toggle-prevented', $event)\"\n @toggle=\"emit('toggle', $event)\"\n >\n <template #header=\"{visible: toggleVisible, toggle: slotToggle}\">\n <component\n :is=\"props.headerTag\"\n :id=\"`${computedId}-heading`\"\n class=\"accordion-header\"\n :class=\"props.headerClass\"\n v-bind=\"props.headerAttrs\"\n >\n <button\n class=\"accordion-button\"\n v-bind=\"props.buttonAttrs\"\n :class=\"[{collapsed: !toggleVisible}, props.buttonClass]\"\n type=\"button\"\n :aria-expanded=\"toggleVisible ? 'true' : 'false'\"\n :aria-controls=\"computedId\"\n @click=\"slotToggle\"\n >\n <slot name=\"title\"> {{ props.title }} </slot>\n </button>\n </component>\n </template>\n <div class=\"accordion-body\" v-bind=\"props.bodyAttrs\" :class=\"props.bodyClass\">\n <slot />\n </div>\n </BCollapse>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n inject,\n nextTick,\n onMounted,\n onUnmounted,\n useAttrs,\n useTemplateRef,\n watch,\n} from 'vue'\nimport BCollapse from '../BCollapse/BCollapse.vue'\nimport {accordionInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport type {BAccordionItemProps} from '../../types/ComponentProps'\nimport type {BAccordionItemEmits} from '../../types/ComponentEmits'\nimport type {BAccordionItemSlots} from '../../types'\nimport {isReadOnlyArray} from '../../utils/object'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BAccordionItemProps, 'modelValue'>>(), {\n bodyAttrs: undefined,\n bodyClass: undefined,\n buttonAttrs: undefined,\n buttonClass: undefined,\n collapseClass: undefined,\n headerAttrs: undefined,\n headerClass: undefined,\n headerTag: 'h2',\n horizontal: undefined,\n id: undefined,\n isNav: undefined,\n lazy: false,\n unmountLazy: false,\n tag: undefined,\n title: undefined,\n show: undefined,\n visible: false,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BAccordionItem')\nconst emit = defineEmits<BAccordionItemEmits>()\ndefineSlots<BAccordionItemSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...collapseAttrs} = attrs\n return {wrapperClass, collapseAttrs}\n})\n\nconst parentData = inject(accordionInjectionKey, null)\n\nconst computedId = useId(() => props.id, 'accordion_item')\n\nconst modelValue = defineModel<Exclude<BAccordionItemProps['modelValue'], undefined>>({\n default: false,\n})\n\nif (modelValue.value) {\n parentData?.setOpenItem(computedId.value)\n} else {\n modelValue.value =\n (isReadOnlyArray(parentData?.openItem.value)\n ? parentData?.openItem.value.includes(computedId.value)\n : parentData?.openItem.value === computedId.value) && !parentData?.initialAnimation.value\n}\n\nconst el = useTemplateRef('_el')\nparentData?.registerAccordionItem(computedId.value, el)\n\nonUnmounted(() => {\n parentData?.unregisterAccordionItem(computedId.value)\n})\n\nonMounted(() => {\n if (!modelValue.value && parentData?.openItem.value === computedId.value) {\n nextTick(() => {\n modelValue.value = true\n })\n }\n})\n\nconst openInParent = computed(() =>\n isReadOnlyArray(parentData?.openItem.value)\n ? parentData?.openItem.value.includes(computedId.value)\n : parentData?.openItem.value === computedId.value\n)\n\nwatch(\n () => parentData?.openItem.value,\n () => (modelValue.value = openInParent.value)\n)\nwatch(modelValue, () => {\n if (modelValue.value && !openInParent.value) {\n parentData?.setOpenItem(computedId.value)\n } else if (!modelValue.value && openInParent.value) {\n parentData?.setCloseItem(computedId.value)\n }\n})\n</script>\n","<template>\n <div :id=\"computedId\" class=\"accordion\" :class=\"computedClasses\">\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n nextTick,\n provide,\n readonly,\n ref,\n type ShallowRef,\n shallowRef,\n toRef,\n unref,\n type VNode,\n watch,\n} from 'vue'\nimport {accordionInjectionKey} from '../../utils/keys'\nimport {useId} from '../../composables/useId'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {flattenFragments} from '../../utils/flattenFragments'\nimport BAccordionItem from './BAccordionItem.vue'\nimport {sortSlotElementsByPosition} from '../../utils/dom'\nimport type {BAccordionSlots, BAccordionProps} from '../../types'\nimport {isReadOnlyArray} from '../../utils/object'\n\nconst _props = withDefaults(defineProps<Omit<BAccordionProps, 'modelValue' | 'index'>>(), {\n flush: false,\n free: false,\n initialAnimation: false,\n id: undefined,\n lazy: false,\n unmountLazy: false,\n})\nconst props = useDefaults(_props, 'BAccordion')\nconst slots = defineSlots<BAccordionSlots>()\n\nconst modelValue = defineModel<BAccordionProps['modelValue']>({\n default: undefined,\n})\n\nconst index = defineModel<BAccordionProps['index']>('index', {\n default: undefined,\n})\n\nconst itemElementsArray = ref<VNode[]>([])\n\nconst updateItemElementsArray = () => {\n const itemElements = flattenFragments(slots.default?.({}) ?? [])\n itemElementsArray.value = (Array.isArray(itemElements) ? itemElements : [itemElements]).filter(\n (item) => item.type === BAccordionItem\n )\n}\nupdateItemElementsArray()\n\nwatch(\n () => slots.default?.({}),\n () => {\n updateItemElementsArray()\n nextTick(() => {\n sortAccordionItems()\n })\n }\n)\n\ninterface AccordionItem {\n id: string\n el: Readonly<ShallowRef<HTMLElement | null>>\n}\n\nconst accordionItems = shallowRef<AccordionItem[]>([])\n\nconst sortAccordionItems = () => {\n accordionItems.value = [...accordionItems.value].sort((a, b) =>\n sortSlotElementsByPosition(unref(a.el), unref(b.el))\n )\n if (modelValue.value) {\n if (isReadOnlyArray(modelValue.value)) {\n const next = modelValue.value\n .map((id) => accordionItems.value.findIndex((item) => item.id === id))\n .filter((i) => i !== -1)\n\n if (next.length !== modelValue.value.length) {\n if (process.env.NODE_ENV === 'development') {\n console.warn('[BAccordion] Unknown item id in v-model:', modelValue.value)\n }\n }\n index.value = next\n } else {\n const idx = accordionItems.value.findIndex((item) => item.id === modelValue.value)\n if (idx !== -1) index.value = idx\n }\n } else if (index.value !== undefined) {\n modelValue.value = isReadOnlyArray(index.value)\n ? index.value.map((idx) => accordionItems.value[idx]?.id).filter((el) => el !== undefined)\n : accordionItems.value[index.value]?.id\n }\n}\n\nconst computedId = useId(() => props.id, 'accordion')\n\nconst computedClasses = computed(() => ({\n 'accordion-flush': props.flush,\n}))\n\nconst areEqual = (a: unknown, b: unknown) => {\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.length === b.length && a.every((item, index) => item === b[index])\n }\n return a === b\n}\n\nwatch(index, (newValue, oldValue) => {\n if (areEqual(newValue, oldValue)) return\n if (index.value === undefined) {\n modelValue.value = undefined\n return\n }\n\n if (!props.free) {\n const idx = !isReadOnlyArray(index.value) ? index.value : index.value?.[0]\n if (idx !== undefined && accordionItems.value[idx]?.id) {\n if (modelValue.value !== accordionItems.value[idx]?.id) {\n modelValue.value = accordionItems.value[idx]?.id\n }\n } else {\n nextTick(() => {\n index.value = undefined\n })\n }\n } else {\n // free mode\n if (isReadOnlyArray(index.value)) {\n const newValue = index.value\n .map((item) => accordionItems.value[item]?.id)\n .filter((el) => el !== undefined)\n if (!areEqual(newValue, modelValue.value)) {\n modelValue.value = newValue\n }\n } else {\n const newValue = accordionItems.value[index.value]?.id\n if (newValue === undefined) {\n nextTick(() => {\n index.value = undefined\n })\n return\n }\n if (!areEqual(newValue, modelValue.value)) {\n modelValue.value = newValue\n }\n }\n }\n})\n\nwatch(\n modelValue,\n (newValue, oldValue) => {\n if (areEqual(newValue, oldValue)) return\n if (modelValue.value === undefined) {\n index.value = undefined\n return\n }\n\n if (!props.free) {\n const idx = accordionItems.value.findIndex(\n (item) =>\n item.id ===\n (!isReadOnlyArray(modelValue.value) ? modelValue.value : modelValue.value?.[0])\n )\n\n if (idx !== -1) {\n if (index.value !== idx) {\n index.value = idx\n }\n } else {\n nextTick(() => {\n modelValue.value = undefined\n })\n }\n } else if (props.free) {\n if (isReadOnlyArray(modelValue.value)) {\n const idxes = modelValue.value\n .map((value) => accordionItems.value.findIndex((item) => item.id === value))\n .filter((index) => index !== -1)\n if (idxes.length > 0) {\n if (!areEqual(idxes, index.value)) {\n index.value = idxes\n }\n } else {\n nextTick(() => {\n modelValue.value = undefined\n })\n }\n } else {\n const newValue = accordionItems.value.findIndex((item) => item.id === modelValue.value)\n if (!areEqual(newValue, index.value)) {\n index.value = newValue\n }\n }\n }\n },\n {deep: true}\n)\n\nwatch(\n () => props.free,\n (free) => {\n if (modelValue.value) {\n if (!free && isReadOnlyArray(modelValue.value)) {\n modelValue.value = modelValue.value[0]\n } else if (free && !isReadOnlyArray(modelValue.value)) {\n modelValue.value = [modelValue.value]\n }\n }\n }\n)\n\nprovide(accordionInjectionKey, {\n openItem: readonly(modelValue),\n free: toRef(() => props.free),\n initialAnimation: toRef(() => props.initialAnimation),\n lazy: toRef(() => props.lazy),\n unmountLazy: toRef(() => props.unmountLazy),\n setOpenItem: (id: string) => {\n if (props.free && !isReadOnlyArray(modelValue.value)) {\n if (modelValue.value !== undefined) {\n modelValue.value = [modelValue.value, id]\n } else {\n modelValue.value = [id]\n }\n return\n }\n if (!props.free && isReadOnlyArray(modelValue.value)) {\n modelValue.value = id\n return\n }\n if (isReadOnlyArray(modelValue.value)) {\n if (!modelValue.value.includes(id)) {\n modelValue.value = [...modelValue.value, id]\n }\n } else {\n modelValue.value = id\n }\n },\n setCloseItem: (id: string) => {\n if (!props.free && isReadOnlyArray(modelValue.value)) {\n modelValue.value = undefined\n return\n }\n if (isReadOnlyArray(modelValue.value)) {\n const next = modelValue.value.filter((item) => item !== id)\n modelValue.value = next.length ? next : undefined\n } else {\n if (modelValue.value === id) {\n modelValue.value = undefined\n }\n }\n },\n registerAccordionItem: (id: string, el: Readonly<ShallowRef<HTMLElement | null>>) => {\n accordionItems.value = [...accordionItems.value, {id, el}]\n if (accordionItems.value.length === itemElementsArray.value.length) {\n sortAccordionItems()\n }\n },\n unregisterAccordionItem: (id: string) => {\n accordionItems.value = accordionItems.value.filter((item) => item.id !== id)\n },\n})\n</script>\n","<template>\n <div :id=\"computedId\" class=\"accordion\" :class=\"computedClasses\">\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n nextTick,\n provide,\n readonly,\n ref,\n type ShallowRef,\n shallowRef,\n toRef,\n unref,\n type VNode,\n watch,\n} from 'vue'\nimport {accordionInjectionKey} from '../../utils/keys'\nimport {useId} from '../../composables/useId'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {flattenFragments} from '../../utils/flattenFragments'\nimport BAccordionItem from './BAccordionItem.vue'\nimport {sortSlotElementsByPosition} from '../../utils/dom'\nimport type {BAccordionSlots, BAccordionProps} from '../../types'\nimport {isReadOnlyArray} from '../../utils/object'\n\nconst _props = withDefaults(defineProps<Omit<BAccordionProps, 'modelValue' | 'index'>>(), {\n flush: false,\n free: false,\n initialAnimation: false,\n id: undefined,\n lazy: false,\n unmountLazy: false,\n})\nconst props = useDefaults(_props, 'BAccordion')\nconst slots = defineSlots<BAccordionSlots>()\n\nconst modelValue = defineModel<BAccordionProps['modelValue']>({\n default: undefined,\n})\n\nconst index = defineModel<BAccordionProps['index']>('index', {\n default: undefined,\n})\n\nconst itemElementsArray = ref<VNode[]>([])\n\nconst updateItemElementsArray = () => {\n const itemElements = flattenFragments(slots.default?.({}) ?? [])\n itemElementsArray.value = (Array.isArray(itemElements) ? itemElements : [itemElements]).filter(\n (item) => item.type === BAccordionItem\n )\n}\nupdateItemElementsArray()\n\nwatch(\n () => slots.default?.({}),\n () => {\n updateItemElementsArray()\n nextTick(() => {\n sortAccordionItems()\n })\n }\n)\n\ninterface AccordionItem {\n id: string\n el: Readonly<ShallowRef<HTMLElement | null>>\n}\n\nconst accordionItems = shallowRef<AccordionItem[]>([])\n\nconst sortAccordionItems = () => {\n accordionItems.value = [...accordionItems.value].sort((a, b) =>\n sortSlotElementsByPosition(unref(a.el), unref(b.el))\n )\n if (modelValue.value) {\n if (isReadOnlyArray(modelValue.value)) {\n const next = modelValue.value\n .map((id) => accordionItems.value.findIndex((item) => item.id === id))\n .filter((i) => i !== -1)\n\n if (next.length !== modelValue.value.length) {\n if (process.env.NODE_ENV === 'development') {\n console.warn('[BAccordion] Unknown item id in v-model:', modelValue.value)\n }\n }\n index.value = next\n } else {\n const idx = accordionItems.value.findIndex((item) => item.id === modelValue.value)\n if (idx !== -1) index.value = idx\n }\n } else if (index.value !== undefined) {\n modelValue.value = isReadOnlyArray(index.value)\n ? index.value.map((idx) => accordionItems.value[idx]?.id).filter((el) => el !== undefined)\n : accordionItems.value[index.value]?.id\n }\n}\n\nconst computedId = useId(() => props.id, 'accordion')\n\nconst computedClasses = computed(() => ({\n 'accordion-flush': props.flush,\n}))\n\nconst areEqual = (a: unknown, b: unknown) => {\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.length === b.length && a.every((item, index) => item === b[index])\n }\n return a === b\n}\n\nwatch(index, (newValue, oldValue) => {\n if (areEqual(newValue, oldValue)) return\n if (index.value === undefined) {\n modelValue.value = undefined\n return\n }\n\n if (!props.free) {\n const idx = !isReadOnlyArray(index.value) ? index.value : index.value?.[0]\n if (idx !== undefined && accordionItems.value[idx]?.id) {\n if (modelValue.value !== accordionItems.value[idx]?.id) {\n modelValue.value = accordionItems.value[idx]?.id\n }\n } else {\n nextTick(() => {\n index.value = undefined\n })\n }\n } else {\n // free mode\n if (isReadOnlyArray(index.value)) {\n const newValue = index.value\n .map((item) => accordionItems.value[item]?.id)\n .filter((el) => el !== undefined)\n if (!areEqual(newValue, modelValue.value)) {\n modelValue.value = newValue\n }\n } else {\n const newValue = accordionItems.value[index.value]?.id\n if (newValue === undefined) {\n nextTick(() => {\n index.value = undefined\n })\n return\n }\n if (!areEqual(newValue, modelValue.value)) {\n modelValue.value = newValue\n }\n }\n }\n})\n\nwatch(\n modelValue,\n (newValue, oldValue) => {\n if (areEqual(newValue, oldValue)) return\n if (modelValue.value === undefined) {\n index.value = undefined\n return\n }\n\n if (!props.free) {\n const idx = accordionItems.value.findIndex(\n (item) =>\n item.id ===\n (!isReadOnlyArray(modelValue.value) ? modelValue.value : modelValue.value?.[0])\n )\n\n if (idx !== -1) {\n if (index.value !== idx) {\n index.value = idx\n }\n } else {\n nextTick(() => {\n modelValue.value = undefined\n })\n }\n } else if (props.free) {\n if (isReadOnlyArray(modelValue.value)) {\n const idxes = modelValue.value\n .map((value) => accordionItems.value.findIndex((item) => item.id === value))\n .filter((index) => index !== -1)\n if (idxes.length > 0) {\n if (!areEqual(idxes, index.value)) {\n index.value = idxes\n }\n } else {\n nextTick(() => {\n modelValue.value = undefined\n })\n }\n } else {\n const newValue = accordionItems.value.findIndex((item) => item.id === modelValue.value)\n if (!areEqual(newValue, index.value)) {\n index.value = newValue\n }\n }\n }\n },\n {deep: true}\n)\n\nwatch(\n () => props.free,\n (free) => {\n if (modelValue.value) {\n if (!free && isReadOnlyArray(modelValue.value)) {\n modelValue.value = modelValue.value[0]\n } else if (free && !isReadOnlyArray(modelValue.value)) {\n modelValue.value = [modelValue.value]\n }\n }\n }\n)\n\nprovide(accordionInjectionKey, {\n openItem: readonly(modelValue),\n free: toRef(() => props.free),\n initialAnimation: toRef(() => props.initialAnimation),\n lazy: toRef(() => props.lazy),\n unmountLazy: toRef(() => props.unmountLazy),\n setOpenItem: (id: string) => {\n if (props.free && !isReadOnlyArray(modelValue.value)) {\n if (modelValue.value !== undefined) {\n modelValue.value = [modelValue.value, id]\n } else {\n modelValue.value = [id]\n }\n return\n }\n if (!props.free && isReadOnlyArray(modelValue.value)) {\n modelValue.value = id\n return\n }\n if (isReadOnlyArray(modelValue.value)) {\n if (!modelValue.value.includes(id)) {\n modelValue.value = [...modelValue.value, id]\n }\n } else {\n modelValue.value = id\n }\n },\n setCloseItem: (id: string) => {\n if (!props.free && isReadOnlyArray(modelValue.value)) {\n modelValue.value = undefined\n return\n }\n if (isReadOnlyArray(modelValue.value)) {\n const next = modelValue.value.filter((item) => item !== id)\n modelValue.value = next.length ? next : undefined\n } else {\n if (modelValue.value === id) {\n modelValue.value = undefined\n }\n }\n },\n registerAccordionItem: (id: string, el: Readonly<ShallowRef<HTMLElement | null>>) => {\n accordionItems.value = [...accordionItems.value, {id, el}]\n if (accordionItems.value.length === itemElementsArray.value.length) {\n sortAccordionItems()\n }\n },\n unregisterAccordionItem: (id: string) => {\n accordionItems.value = accordionItems.value.filter((item) => item.id !== id)\n },\n})\n</script>\n"],"mappings":"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"}
@@ -3,7 +3,7 @@ import { c as sortSlotElementsByPosition } from "./dom-AhkaSoh8.mjs";
3
3
  import { t as useDefaults } from "./useDefaults-BKgBaqOV.mjs";
4
4
  import { t as useId$1 } from "./useId-BKZFSYm8.mjs";
5
5
  import { t as flattenFragments } from "./flattenFragments-ClbLQGqR.mjs";
6
- import { t as BCollapse_default } from "./BCollapse-BzIGTt3g.mjs";
6
+ import { t as BCollapse_default } from "./BCollapse-D-xTGkX_.mjs";
7
7
  import { r as isReadOnlyArray } from "./object-CHQkkner.mjs";
8
8
  import { computed, createBlock, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, inject, mergeModels, mergeProps, nextTick, normalizeClass, onMounted, onUnmounted, openBlock, provide, readonly, ref, renderSlot, resolveDynamicComponent, shallowRef, toDisplayString, toRef, unref, useAttrs, useModel, useSlots, useTemplateRef, watch, withCtx } from "vue";
9
9
  //#region src/components/BAccordion/BAccordionItem.vue?vue&type=script&setup=true&lang.ts
@@ -345,4 +345,4 @@ var BAccordion_default = /* @__PURE__ */ defineComponent({
345
345
  //#endregion
346
346
  export { BAccordionItem_default as n, BAccordion_default as t };
347
347
 
348
- //# sourceMappingURL=BAccordion-BU80DI3B.mjs.map
348
+ //# sourceMappingURL=BAccordion-CNzV6f8e.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"BAccordion-BU80DI3B.mjs","names":[],"sources":["../src/components/BAccordion/BAccordionItem.vue","../src/components/BAccordion/BAccordionItem.vue","../src/components/BAccordion/BAccordion.vue","../src/components/BAccordion/BAccordion.vue"],"sourcesContent":["<template>\n <div\n ref=\"_el\"\n class=\"accordion-item\"\n v-bind=\"props.wrapperAttrs\"\n :class=\"processedAttrs.wrapperClass\"\n >\n <BCollapse\n :id=\"computedId\"\n v-model=\"modelValue\"\n class=\"accordion-collapse\"\n :class=\"props.collapseClass\"\n :aria-labelledby=\"`${computedId}-heading`\"\n v-bind=\"processedAttrs.collapseAttrs\"\n :tag=\"props.tag\"\n :show=\"props.show\"\n :horizontal=\"props.horizontal\"\n :visible=\"props.visible\"\n :is-nav=\"props.isNav\"\n :lazy=\"props.lazy || parentData?.lazy.value\"\n :unmount-lazy=\"props.unmountLazy || parentData?.unmountLazy.value\"\n @show=\"emit('show', $event)\"\n @shown=\"emit('shown', $event)\"\n @hide=\"emit('hide', $event)\"\n @hidden=\"emit('hidden', $event)\"\n @hide-prevented=\"emit('hide-prevented', $event)\"\n @show-prevented=\"emit('show-prevented', $event)\"\n @toggle-prevented=\"emit('toggle-prevented', $event)\"\n @toggle=\"emit('toggle', $event)\"\n >\n <template #header=\"{visible: toggleVisible, toggle: slotToggle}\">\n <component\n :is=\"props.headerTag\"\n :id=\"`${computedId}-heading`\"\n class=\"accordion-header\"\n :class=\"props.headerClass\"\n v-bind=\"props.headerAttrs\"\n >\n <button\n class=\"accordion-button\"\n v-bind=\"props.buttonAttrs\"\n :class=\"[{collapsed: !toggleVisible}, props.buttonClass]\"\n type=\"button\"\n :aria-expanded=\"toggleVisible ? 'true' : 'false'\"\n :aria-controls=\"computedId\"\n @click=\"slotToggle\"\n >\n <slot name=\"title\"> {{ props.title }} </slot>\n </button>\n </component>\n </template>\n <div class=\"accordion-body\" v-bind=\"props.bodyAttrs\" :class=\"props.bodyClass\">\n <slot />\n </div>\n </BCollapse>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n inject,\n nextTick,\n onMounted,\n onUnmounted,\n useAttrs,\n useTemplateRef,\n watch,\n} from 'vue'\nimport BCollapse from '../BCollapse/BCollapse.vue'\nimport {accordionInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport type {BAccordionItemProps} from '../../types/ComponentProps'\nimport type {BAccordionItemEmits} from '../../types/ComponentEmits'\nimport type {BAccordionItemSlots} from '../../types'\nimport {isReadOnlyArray} from '../../utils/object'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BAccordionItemProps, 'modelValue'>>(), {\n bodyAttrs: undefined,\n bodyClass: undefined,\n buttonAttrs: undefined,\n buttonClass: undefined,\n collapseClass: undefined,\n headerAttrs: undefined,\n headerClass: undefined,\n headerTag: 'h2',\n horizontal: undefined,\n id: undefined,\n isNav: undefined,\n lazy: false,\n unmountLazy: false,\n tag: undefined,\n title: undefined,\n show: undefined,\n visible: false,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BAccordionItem')\nconst emit = defineEmits<BAccordionItemEmits>()\ndefineSlots<BAccordionItemSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...collapseAttrs} = attrs\n return {wrapperClass, collapseAttrs}\n})\n\nconst parentData = inject(accordionInjectionKey, null)\n\nconst computedId = useId(() => props.id, 'accordion_item')\n\nconst modelValue = defineModel<Exclude<BAccordionItemProps['modelValue'], undefined>>({\n default: false,\n})\n\nif (modelValue.value) {\n parentData?.setOpenItem(computedId.value)\n} else {\n modelValue.value =\n (isReadOnlyArray(parentData?.openItem.value)\n ? parentData?.openItem.value.includes(computedId.value)\n : parentData?.openItem.value === computedId.value) && !parentData?.initialAnimation.value\n}\n\nconst el = useTemplateRef('_el')\nparentData?.registerAccordionItem(computedId.value, el)\n\nonUnmounted(() => {\n parentData?.unregisterAccordionItem(computedId.value)\n})\n\nonMounted(() => {\n if (!modelValue.value && parentData?.openItem.value === computedId.value) {\n nextTick(() => {\n modelValue.value = true\n })\n }\n})\n\nconst openInParent = computed(() =>\n isReadOnlyArray(parentData?.openItem.value)\n ? parentData?.openItem.value.includes(computedId.value)\n : parentData?.openItem.value === computedId.value\n)\n\nwatch(\n () => parentData?.openItem.value,\n () => (modelValue.value = openInParent.value)\n)\nwatch(modelValue, () => {\n if (modelValue.value && !openInParent.value) {\n parentData?.setOpenItem(computedId.value)\n } else if (!modelValue.value && openInParent.value) {\n parentData?.setCloseItem(computedId.value)\n }\n})\n</script>\n","<template>\n <div\n ref=\"_el\"\n class=\"accordion-item\"\n v-bind=\"props.wrapperAttrs\"\n :class=\"processedAttrs.wrapperClass\"\n >\n <BCollapse\n :id=\"computedId\"\n v-model=\"modelValue\"\n class=\"accordion-collapse\"\n :class=\"props.collapseClass\"\n :aria-labelledby=\"`${computedId}-heading`\"\n v-bind=\"processedAttrs.collapseAttrs\"\n :tag=\"props.tag\"\n :show=\"props.show\"\n :horizontal=\"props.horizontal\"\n :visible=\"props.visible\"\n :is-nav=\"props.isNav\"\n :lazy=\"props.lazy || parentData?.lazy.value\"\n :unmount-lazy=\"props.unmountLazy || parentData?.unmountLazy.value\"\n @show=\"emit('show', $event)\"\n @shown=\"emit('shown', $event)\"\n @hide=\"emit('hide', $event)\"\n @hidden=\"emit('hidden', $event)\"\n @hide-prevented=\"emit('hide-prevented', $event)\"\n @show-prevented=\"emit('show-prevented', $event)\"\n @toggle-prevented=\"emit('toggle-prevented', $event)\"\n @toggle=\"emit('toggle', $event)\"\n >\n <template #header=\"{visible: toggleVisible, toggle: slotToggle}\">\n <component\n :is=\"props.headerTag\"\n :id=\"`${computedId}-heading`\"\n class=\"accordion-header\"\n :class=\"props.headerClass\"\n v-bind=\"props.headerAttrs\"\n >\n <button\n class=\"accordion-button\"\n v-bind=\"props.buttonAttrs\"\n :class=\"[{collapsed: !toggleVisible}, props.buttonClass]\"\n type=\"button\"\n :aria-expanded=\"toggleVisible ? 'true' : 'false'\"\n :aria-controls=\"computedId\"\n @click=\"slotToggle\"\n >\n <slot name=\"title\"> {{ props.title }} </slot>\n </button>\n </component>\n </template>\n <div class=\"accordion-body\" v-bind=\"props.bodyAttrs\" :class=\"props.bodyClass\">\n <slot />\n </div>\n </BCollapse>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n inject,\n nextTick,\n onMounted,\n onUnmounted,\n useAttrs,\n useTemplateRef,\n watch,\n} from 'vue'\nimport BCollapse from '../BCollapse/BCollapse.vue'\nimport {accordionInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport type {BAccordionItemProps} from '../../types/ComponentProps'\nimport type {BAccordionItemEmits} from '../../types/ComponentEmits'\nimport type {BAccordionItemSlots} from '../../types'\nimport {isReadOnlyArray} from '../../utils/object'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BAccordionItemProps, 'modelValue'>>(), {\n bodyAttrs: undefined,\n bodyClass: undefined,\n buttonAttrs: undefined,\n buttonClass: undefined,\n collapseClass: undefined,\n headerAttrs: undefined,\n headerClass: undefined,\n headerTag: 'h2',\n horizontal: undefined,\n id: undefined,\n isNav: undefined,\n lazy: false,\n unmountLazy: false,\n tag: undefined,\n title: undefined,\n show: undefined,\n visible: false,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BAccordionItem')\nconst emit = defineEmits<BAccordionItemEmits>()\ndefineSlots<BAccordionItemSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...collapseAttrs} = attrs\n return {wrapperClass, collapseAttrs}\n})\n\nconst parentData = inject(accordionInjectionKey, null)\n\nconst computedId = useId(() => props.id, 'accordion_item')\n\nconst modelValue = defineModel<Exclude<BAccordionItemProps['modelValue'], undefined>>({\n default: false,\n})\n\nif (modelValue.value) {\n parentData?.setOpenItem(computedId.value)\n} else {\n modelValue.value =\n (isReadOnlyArray(parentData?.openItem.value)\n ? parentData?.openItem.value.includes(computedId.value)\n : parentData?.openItem.value === computedId.value) && !parentData?.initialAnimation.value\n}\n\nconst el = useTemplateRef('_el')\nparentData?.registerAccordionItem(computedId.value, el)\n\nonUnmounted(() => {\n parentData?.unregisterAccordionItem(computedId.value)\n})\n\nonMounted(() => {\n if (!modelValue.value && parentData?.openItem.value === computedId.value) {\n nextTick(() => {\n modelValue.value = true\n })\n }\n})\n\nconst openInParent = computed(() =>\n isReadOnlyArray(parentData?.openItem.value)\n ? parentData?.openItem.value.includes(computedId.value)\n : parentData?.openItem.value === computedId.value\n)\n\nwatch(\n () => parentData?.openItem.value,\n () => (modelValue.value = openInParent.value)\n)\nwatch(modelValue, () => {\n if (modelValue.value && !openInParent.value) {\n parentData?.setOpenItem(computedId.value)\n } else if (!modelValue.value && openInParent.value) {\n parentData?.setCloseItem(computedId.value)\n }\n})\n</script>\n","<template>\n <div :id=\"computedId\" class=\"accordion\" :class=\"computedClasses\">\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n nextTick,\n provide,\n readonly,\n ref,\n type ShallowRef,\n shallowRef,\n toRef,\n unref,\n type VNode,\n watch,\n} from 'vue'\nimport {accordionInjectionKey} from '../../utils/keys'\nimport {useId} from '../../composables/useId'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {flattenFragments} from '../../utils/flattenFragments'\nimport BAccordionItem from './BAccordionItem.vue'\nimport {sortSlotElementsByPosition} from '../../utils/dom'\nimport type {BAccordionSlots, BAccordionProps} from '../../types'\nimport {isReadOnlyArray} from '../../utils/object'\n\nconst _props = withDefaults(defineProps<Omit<BAccordionProps, 'modelValue' | 'index'>>(), {\n flush: false,\n free: false,\n initialAnimation: false,\n id: undefined,\n lazy: false,\n unmountLazy: false,\n})\nconst props = useDefaults(_props, 'BAccordion')\nconst slots = defineSlots<BAccordionSlots>()\n\nconst modelValue = defineModel<BAccordionProps['modelValue']>({\n default: undefined,\n})\n\nconst index = defineModel<BAccordionProps['index']>('index', {\n default: undefined,\n})\n\nconst itemElementsArray = ref<VNode[]>([])\n\nconst updateItemElementsArray = () => {\n const itemElements = flattenFragments(slots.default?.({}) ?? [])\n itemElementsArray.value = (Array.isArray(itemElements) ? itemElements : [itemElements]).filter(\n (item) => item.type === BAccordionItem\n )\n}\nupdateItemElementsArray()\n\nwatch(\n () => slots.default?.({}),\n () => {\n updateItemElementsArray()\n nextTick(() => {\n sortAccordionItems()\n })\n }\n)\n\ninterface AccordionItem {\n id: string\n el: Readonly<ShallowRef<HTMLElement | null>>\n}\n\nconst accordionItems = shallowRef<AccordionItem[]>([])\n\nconst sortAccordionItems = () => {\n accordionItems.value = [...accordionItems.value].sort((a, b) =>\n sortSlotElementsByPosition(unref(a.el), unref(b.el))\n )\n if (modelValue.value) {\n if (isReadOnlyArray(modelValue.value)) {\n const next = modelValue.value\n .map((id) => accordionItems.value.findIndex((item) => item.id === id))\n .filter((i) => i !== -1)\n\n if (next.length !== modelValue.value.length) {\n if (process.env.NODE_ENV === 'development') {\n console.warn('[BAccordion] Unknown item id in v-model:', modelValue.value)\n }\n }\n index.value = next\n } else {\n const idx = accordionItems.value.findIndex((item) => item.id === modelValue.value)\n if (idx !== -1) index.value = idx\n }\n } else if (index.value !== undefined) {\n modelValue.value = isReadOnlyArray(index.value)\n ? index.value.map((idx) => accordionItems.value[idx]?.id).filter((el) => el !== undefined)\n : accordionItems.value[index.value]?.id\n }\n}\n\nconst computedId = useId(() => props.id, 'accordion')\n\nconst computedClasses = computed(() => ({\n 'accordion-flush': props.flush,\n}))\n\nconst areEqual = (a: unknown, b: unknown) => {\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.length === b.length && a.every((item, index) => item === b[index])\n }\n return a === b\n}\n\nwatch(index, (newValue, oldValue) => {\n if (areEqual(newValue, oldValue)) return\n if (index.value === undefined) {\n modelValue.value = undefined\n return\n }\n\n if (!props.free) {\n const idx = !isReadOnlyArray(index.value) ? index.value : index.value?.[0]\n if (idx !== undefined && accordionItems.value[idx]?.id) {\n if (modelValue.value !== accordionItems.value[idx]?.id) {\n modelValue.value = accordionItems.value[idx]?.id\n }\n } else {\n nextTick(() => {\n index.value = undefined\n })\n }\n } else {\n // free mode\n if (isReadOnlyArray(index.value)) {\n const newValue = index.value\n .map((item) => accordionItems.value[item]?.id)\n .filter((el) => el !== undefined)\n if (!areEqual(newValue, modelValue.value)) {\n modelValue.value = newValue\n }\n } else {\n const newValue = accordionItems.value[index.value]?.id\n if (newValue === undefined) {\n nextTick(() => {\n index.value = undefined\n })\n return\n }\n if (!areEqual(newValue, modelValue.value)) {\n modelValue.value = newValue\n }\n }\n }\n})\n\nwatch(\n modelValue,\n (newValue, oldValue) => {\n if (areEqual(newValue, oldValue)) return\n if (modelValue.value === undefined) {\n index.value = undefined\n return\n }\n\n if (!props.free) {\n const idx = accordionItems.value.findIndex(\n (item) =>\n item.id ===\n (!isReadOnlyArray(modelValue.value) ? modelValue.value : modelValue.value?.[0])\n )\n\n if (idx !== -1) {\n if (index.value !== idx) {\n index.value = idx\n }\n } else {\n nextTick(() => {\n modelValue.value = undefined\n })\n }\n } else if (props.free) {\n if (isReadOnlyArray(modelValue.value)) {\n const idxes = modelValue.value\n .map((value) => accordionItems.value.findIndex((item) => item.id === value))\n .filter((index) => index !== -1)\n if (idxes.length > 0) {\n if (!areEqual(idxes, index.value)) {\n index.value = idxes\n }\n } else {\n nextTick(() => {\n modelValue.value = undefined\n })\n }\n } else {\n const newValue = accordionItems.value.findIndex((item) => item.id === modelValue.value)\n if (!areEqual(newValue, index.value)) {\n index.value = newValue\n }\n }\n }\n },\n {deep: true}\n)\n\nwatch(\n () => props.free,\n (free) => {\n if (modelValue.value) {\n if (!free && isReadOnlyArray(modelValue.value)) {\n modelValue.value = modelValue.value[0]\n } else if (free && !isReadOnlyArray(modelValue.value)) {\n modelValue.value = [modelValue.value]\n }\n }\n }\n)\n\nprovide(accordionInjectionKey, {\n openItem: readonly(modelValue),\n free: toRef(() => props.free),\n initialAnimation: toRef(() => props.initialAnimation),\n lazy: toRef(() => props.lazy),\n unmountLazy: toRef(() => props.unmountLazy),\n setOpenItem: (id: string) => {\n if (props.free && !isReadOnlyArray(modelValue.value)) {\n if (modelValue.value !== undefined) {\n modelValue.value = [modelValue.value, id]\n } else {\n modelValue.value = [id]\n }\n return\n }\n if (!props.free && isReadOnlyArray(modelValue.value)) {\n modelValue.value = id\n return\n }\n if (isReadOnlyArray(modelValue.value)) {\n if (!modelValue.value.includes(id)) {\n modelValue.value = [...modelValue.value, id]\n }\n } else {\n modelValue.value = id\n }\n },\n setCloseItem: (id: string) => {\n if (!props.free && isReadOnlyArray(modelValue.value)) {\n modelValue.value = undefined\n return\n }\n if (isReadOnlyArray(modelValue.value)) {\n const next = modelValue.value.filter((item) => item !== id)\n modelValue.value = next.length ? next : undefined\n } else {\n if (modelValue.value === id) {\n modelValue.value = undefined\n }\n }\n },\n registerAccordionItem: (id: string, el: Readonly<ShallowRef<HTMLElement | null>>) => {\n accordionItems.value = [...accordionItems.value, {id, el}]\n if (accordionItems.value.length === itemElementsArray.value.length) {\n sortAccordionItems()\n }\n },\n unregisterAccordionItem: (id: string) => {\n accordionItems.value = accordionItems.value.filter((item) => item.id !== id)\n },\n})\n</script>\n","<template>\n <div :id=\"computedId\" class=\"accordion\" :class=\"computedClasses\">\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n nextTick,\n provide,\n readonly,\n ref,\n type ShallowRef,\n shallowRef,\n toRef,\n unref,\n type VNode,\n watch,\n} from 'vue'\nimport {accordionInjectionKey} from '../../utils/keys'\nimport {useId} from '../../composables/useId'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {flattenFragments} from '../../utils/flattenFragments'\nimport BAccordionItem from './BAccordionItem.vue'\nimport {sortSlotElementsByPosition} from '../../utils/dom'\nimport type {BAccordionSlots, BAccordionProps} from '../../types'\nimport {isReadOnlyArray} from '../../utils/object'\n\nconst _props = withDefaults(defineProps<Omit<BAccordionProps, 'modelValue' | 'index'>>(), {\n flush: false,\n free: false,\n initialAnimation: false,\n id: undefined,\n lazy: false,\n unmountLazy: false,\n})\nconst props = useDefaults(_props, 'BAccordion')\nconst slots = defineSlots<BAccordionSlots>()\n\nconst modelValue = defineModel<BAccordionProps['modelValue']>({\n default: undefined,\n})\n\nconst index = defineModel<BAccordionProps['index']>('index', {\n default: undefined,\n})\n\nconst itemElementsArray = ref<VNode[]>([])\n\nconst updateItemElementsArray = () => {\n const itemElements = flattenFragments(slots.default?.({}) ?? [])\n itemElementsArray.value = (Array.isArray(itemElements) ? itemElements : [itemElements]).filter(\n (item) => item.type === BAccordionItem\n )\n}\nupdateItemElementsArray()\n\nwatch(\n () => slots.default?.({}),\n () => {\n updateItemElementsArray()\n nextTick(() => {\n sortAccordionItems()\n })\n }\n)\n\ninterface AccordionItem {\n id: string\n el: Readonly<ShallowRef<HTMLElement | null>>\n}\n\nconst accordionItems = shallowRef<AccordionItem[]>([])\n\nconst sortAccordionItems = () => {\n accordionItems.value = [...accordionItems.value].sort((a, b) =>\n sortSlotElementsByPosition(unref(a.el), unref(b.el))\n )\n if (modelValue.value) {\n if (isReadOnlyArray(modelValue.value)) {\n const next = modelValue.value\n .map((id) => accordionItems.value.findIndex((item) => item.id === id))\n .filter((i) => i !== -1)\n\n if (next.length !== modelValue.value.length) {\n if (process.env.NODE_ENV === 'development') {\n console.warn('[BAccordion] Unknown item id in v-model:', modelValue.value)\n }\n }\n index.value = next\n } else {\n const idx = accordionItems.value.findIndex((item) => item.id === modelValue.value)\n if (idx !== -1) index.value = idx\n }\n } else if (index.value !== undefined) {\n modelValue.value = isReadOnlyArray(index.value)\n ? index.value.map((idx) => accordionItems.value[idx]?.id).filter((el) => el !== undefined)\n : accordionItems.value[index.value]?.id\n }\n}\n\nconst computedId = useId(() => props.id, 'accordion')\n\nconst computedClasses = computed(() => ({\n 'accordion-flush': props.flush,\n}))\n\nconst areEqual = (a: unknown, b: unknown) => {\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.length === b.length && a.every((item, index) => item === b[index])\n }\n return a === b\n}\n\nwatch(index, (newValue, oldValue) => {\n if (areEqual(newValue, oldValue)) return\n if (index.value === undefined) {\n modelValue.value = undefined\n return\n }\n\n if (!props.free) {\n const idx = !isReadOnlyArray(index.value) ? index.value : index.value?.[0]\n if (idx !== undefined && accordionItems.value[idx]?.id) {\n if (modelValue.value !== accordionItems.value[idx]?.id) {\n modelValue.value = accordionItems.value[idx]?.id\n }\n } else {\n nextTick(() => {\n index.value = undefined\n })\n }\n } else {\n // free mode\n if (isReadOnlyArray(index.value)) {\n const newValue = index.value\n .map((item) => accordionItems.value[item]?.id)\n .filter((el) => el !== undefined)\n if (!areEqual(newValue, modelValue.value)) {\n modelValue.value = newValue\n }\n } else {\n const newValue = accordionItems.value[index.value]?.id\n if (newValue === undefined) {\n nextTick(() => {\n index.value = undefined\n })\n return\n }\n if (!areEqual(newValue, modelValue.value)) {\n modelValue.value = newValue\n }\n }\n }\n})\n\nwatch(\n modelValue,\n (newValue, oldValue) => {\n if (areEqual(newValue, oldValue)) return\n if (modelValue.value === undefined) {\n index.value = undefined\n return\n }\n\n if (!props.free) {\n const idx = accordionItems.value.findIndex(\n (item) =>\n item.id ===\n (!isReadOnlyArray(modelValue.value) ? modelValue.value : modelValue.value?.[0])\n )\n\n if (idx !== -1) {\n if (index.value !== idx) {\n index.value = idx\n }\n } else {\n nextTick(() => {\n modelValue.value = undefined\n })\n }\n } else if (props.free) {\n if (isReadOnlyArray(modelValue.value)) {\n const idxes = modelValue.value\n .map((value) => accordionItems.value.findIndex((item) => item.id === value))\n .filter((index) => index !== -1)\n if (idxes.length > 0) {\n if (!areEqual(idxes, index.value)) {\n index.value = idxes\n }\n } else {\n nextTick(() => {\n modelValue.value = undefined\n })\n }\n } else {\n const newValue = accordionItems.value.findIndex((item) => item.id === modelValue.value)\n if (!areEqual(newValue, index.value)) {\n index.value = newValue\n }\n }\n }\n },\n {deep: true}\n)\n\nwatch(\n () => props.free,\n (free) => {\n if (modelValue.value) {\n if (!free && isReadOnlyArray(modelValue.value)) {\n modelValue.value = modelValue.value[0]\n } else if (free && !isReadOnlyArray(modelValue.value)) {\n modelValue.value = [modelValue.value]\n }\n }\n }\n)\n\nprovide(accordionInjectionKey, {\n openItem: readonly(modelValue),\n free: toRef(() => props.free),\n initialAnimation: toRef(() => props.initialAnimation),\n lazy: toRef(() => props.lazy),\n unmountLazy: toRef(() => props.unmountLazy),\n setOpenItem: (id: string) => {\n if (props.free && !isReadOnlyArray(modelValue.value)) {\n if (modelValue.value !== undefined) {\n modelValue.value = [modelValue.value, id]\n } else {\n modelValue.value = [id]\n }\n return\n }\n if (!props.free && isReadOnlyArray(modelValue.value)) {\n modelValue.value = id\n return\n }\n if (isReadOnlyArray(modelValue.value)) {\n if (!modelValue.value.includes(id)) {\n modelValue.value = [...modelValue.value, id]\n }\n } else {\n modelValue.value = id\n }\n },\n setCloseItem: (id: string) => {\n if (!props.free && isReadOnlyArray(modelValue.value)) {\n modelValue.value = undefined\n return\n }\n if (isReadOnlyArray(modelValue.value)) {\n const next = modelValue.value.filter((item) => item !== id)\n modelValue.value = next.length ? next : undefined\n } else {\n if (modelValue.value === id) {\n modelValue.value = undefined\n }\n }\n },\n registerAccordionItem: (id: string, el: Readonly<ShallowRef<HTMLElement | null>>) => {\n accordionItems.value = [...accordionItems.value, {id, el}]\n if (accordionItems.value.length === itemElementsArray.value.length) {\n sortAccordionItems()\n }\n },\n unregisterAccordionItem: (id: string) => {\n accordionItems.value = accordionItems.value.filter((item) => item.id !== id)\n },\n})\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"BAccordion-CNzV6f8e.mjs","names":[],"sources":["../src/components/BAccordion/BAccordionItem.vue","../src/components/BAccordion/BAccordionItem.vue","../src/components/BAccordion/BAccordion.vue","../src/components/BAccordion/BAccordion.vue"],"sourcesContent":["<template>\n <div\n ref=\"_el\"\n class=\"accordion-item\"\n v-bind=\"props.wrapperAttrs\"\n :class=\"processedAttrs.wrapperClass\"\n >\n <BCollapse\n :id=\"computedId\"\n v-model=\"modelValue\"\n class=\"accordion-collapse\"\n :class=\"props.collapseClass\"\n :aria-labelledby=\"`${computedId}-heading`\"\n v-bind=\"processedAttrs.collapseAttrs\"\n :tag=\"props.tag\"\n :show=\"props.show\"\n :horizontal=\"props.horizontal\"\n :visible=\"props.visible\"\n :is-nav=\"props.isNav\"\n :lazy=\"props.lazy || parentData?.lazy.value\"\n :unmount-lazy=\"props.unmountLazy || parentData?.unmountLazy.value\"\n @show=\"emit('show', $event)\"\n @shown=\"emit('shown', $event)\"\n @hide=\"emit('hide', $event)\"\n @hidden=\"emit('hidden', $event)\"\n @hide-prevented=\"emit('hide-prevented', $event)\"\n @show-prevented=\"emit('show-prevented', $event)\"\n @toggle-prevented=\"emit('toggle-prevented', $event)\"\n @toggle=\"emit('toggle', $event)\"\n >\n <template #header=\"{visible: toggleVisible, toggle: slotToggle}\">\n <component\n :is=\"props.headerTag\"\n :id=\"`${computedId}-heading`\"\n class=\"accordion-header\"\n :class=\"props.headerClass\"\n v-bind=\"props.headerAttrs\"\n >\n <button\n class=\"accordion-button\"\n v-bind=\"props.buttonAttrs\"\n :class=\"[{collapsed: !toggleVisible}, props.buttonClass]\"\n type=\"button\"\n :aria-expanded=\"toggleVisible ? 'true' : 'false'\"\n :aria-controls=\"computedId\"\n @click=\"slotToggle\"\n >\n <slot name=\"title\"> {{ props.title }} </slot>\n </button>\n </component>\n </template>\n <div class=\"accordion-body\" v-bind=\"props.bodyAttrs\" :class=\"props.bodyClass\">\n <slot />\n </div>\n </BCollapse>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n inject,\n nextTick,\n onMounted,\n onUnmounted,\n useAttrs,\n useTemplateRef,\n watch,\n} from 'vue'\nimport BCollapse from '../BCollapse/BCollapse.vue'\nimport {accordionInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport type {BAccordionItemProps} from '../../types/ComponentProps'\nimport type {BAccordionItemEmits} from '../../types/ComponentEmits'\nimport type {BAccordionItemSlots} from '../../types'\nimport {isReadOnlyArray} from '../../utils/object'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BAccordionItemProps, 'modelValue'>>(), {\n bodyAttrs: undefined,\n bodyClass: undefined,\n buttonAttrs: undefined,\n buttonClass: undefined,\n collapseClass: undefined,\n headerAttrs: undefined,\n headerClass: undefined,\n headerTag: 'h2',\n horizontal: undefined,\n id: undefined,\n isNav: undefined,\n lazy: false,\n unmountLazy: false,\n tag: undefined,\n title: undefined,\n show: undefined,\n visible: false,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BAccordionItem')\nconst emit = defineEmits<BAccordionItemEmits>()\ndefineSlots<BAccordionItemSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...collapseAttrs} = attrs\n return {wrapperClass, collapseAttrs}\n})\n\nconst parentData = inject(accordionInjectionKey, null)\n\nconst computedId = useId(() => props.id, 'accordion_item')\n\nconst modelValue = defineModel<Exclude<BAccordionItemProps['modelValue'], undefined>>({\n default: false,\n})\n\nif (modelValue.value) {\n parentData?.setOpenItem(computedId.value)\n} else {\n modelValue.value =\n (isReadOnlyArray(parentData?.openItem.value)\n ? parentData?.openItem.value.includes(computedId.value)\n : parentData?.openItem.value === computedId.value) && !parentData?.initialAnimation.value\n}\n\nconst el = useTemplateRef('_el')\nparentData?.registerAccordionItem(computedId.value, el)\n\nonUnmounted(() => {\n parentData?.unregisterAccordionItem(computedId.value)\n})\n\nonMounted(() => {\n if (!modelValue.value && parentData?.openItem.value === computedId.value) {\n nextTick(() => {\n modelValue.value = true\n })\n }\n})\n\nconst openInParent = computed(() =>\n isReadOnlyArray(parentData?.openItem.value)\n ? parentData?.openItem.value.includes(computedId.value)\n : parentData?.openItem.value === computedId.value\n)\n\nwatch(\n () => parentData?.openItem.value,\n () => (modelValue.value = openInParent.value)\n)\nwatch(modelValue, () => {\n if (modelValue.value && !openInParent.value) {\n parentData?.setOpenItem(computedId.value)\n } else if (!modelValue.value && openInParent.value) {\n parentData?.setCloseItem(computedId.value)\n }\n})\n</script>\n","<template>\n <div\n ref=\"_el\"\n class=\"accordion-item\"\n v-bind=\"props.wrapperAttrs\"\n :class=\"processedAttrs.wrapperClass\"\n >\n <BCollapse\n :id=\"computedId\"\n v-model=\"modelValue\"\n class=\"accordion-collapse\"\n :class=\"props.collapseClass\"\n :aria-labelledby=\"`${computedId}-heading`\"\n v-bind=\"processedAttrs.collapseAttrs\"\n :tag=\"props.tag\"\n :show=\"props.show\"\n :horizontal=\"props.horizontal\"\n :visible=\"props.visible\"\n :is-nav=\"props.isNav\"\n :lazy=\"props.lazy || parentData?.lazy.value\"\n :unmount-lazy=\"props.unmountLazy || parentData?.unmountLazy.value\"\n @show=\"emit('show', $event)\"\n @shown=\"emit('shown', $event)\"\n @hide=\"emit('hide', $event)\"\n @hidden=\"emit('hidden', $event)\"\n @hide-prevented=\"emit('hide-prevented', $event)\"\n @show-prevented=\"emit('show-prevented', $event)\"\n @toggle-prevented=\"emit('toggle-prevented', $event)\"\n @toggle=\"emit('toggle', $event)\"\n >\n <template #header=\"{visible: toggleVisible, toggle: slotToggle}\">\n <component\n :is=\"props.headerTag\"\n :id=\"`${computedId}-heading`\"\n class=\"accordion-header\"\n :class=\"props.headerClass\"\n v-bind=\"props.headerAttrs\"\n >\n <button\n class=\"accordion-button\"\n v-bind=\"props.buttonAttrs\"\n :class=\"[{collapsed: !toggleVisible}, props.buttonClass]\"\n type=\"button\"\n :aria-expanded=\"toggleVisible ? 'true' : 'false'\"\n :aria-controls=\"computedId\"\n @click=\"slotToggle\"\n >\n <slot name=\"title\"> {{ props.title }} </slot>\n </button>\n </component>\n </template>\n <div class=\"accordion-body\" v-bind=\"props.bodyAttrs\" :class=\"props.bodyClass\">\n <slot />\n </div>\n </BCollapse>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n inject,\n nextTick,\n onMounted,\n onUnmounted,\n useAttrs,\n useTemplateRef,\n watch,\n} from 'vue'\nimport BCollapse from '../BCollapse/BCollapse.vue'\nimport {accordionInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport type {BAccordionItemProps} from '../../types/ComponentProps'\nimport type {BAccordionItemEmits} from '../../types/ComponentEmits'\nimport type {BAccordionItemSlots} from '../../types'\nimport {isReadOnlyArray} from '../../utils/object'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BAccordionItemProps, 'modelValue'>>(), {\n bodyAttrs: undefined,\n bodyClass: undefined,\n buttonAttrs: undefined,\n buttonClass: undefined,\n collapseClass: undefined,\n headerAttrs: undefined,\n headerClass: undefined,\n headerTag: 'h2',\n horizontal: undefined,\n id: undefined,\n isNav: undefined,\n lazy: false,\n unmountLazy: false,\n tag: undefined,\n title: undefined,\n show: undefined,\n visible: false,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BAccordionItem')\nconst emit = defineEmits<BAccordionItemEmits>()\ndefineSlots<BAccordionItemSlots>()\nconst attrs = useAttrs()\n\nconst processedAttrs = computed(() => {\n const {class: wrapperClass, ...collapseAttrs} = attrs\n return {wrapperClass, collapseAttrs}\n})\n\nconst parentData = inject(accordionInjectionKey, null)\n\nconst computedId = useId(() => props.id, 'accordion_item')\n\nconst modelValue = defineModel<Exclude<BAccordionItemProps['modelValue'], undefined>>({\n default: false,\n})\n\nif (modelValue.value) {\n parentData?.setOpenItem(computedId.value)\n} else {\n modelValue.value =\n (isReadOnlyArray(parentData?.openItem.value)\n ? parentData?.openItem.value.includes(computedId.value)\n : parentData?.openItem.value === computedId.value) && !parentData?.initialAnimation.value\n}\n\nconst el = useTemplateRef('_el')\nparentData?.registerAccordionItem(computedId.value, el)\n\nonUnmounted(() => {\n parentData?.unregisterAccordionItem(computedId.value)\n})\n\nonMounted(() => {\n if (!modelValue.value && parentData?.openItem.value === computedId.value) {\n nextTick(() => {\n modelValue.value = true\n })\n }\n})\n\nconst openInParent = computed(() =>\n isReadOnlyArray(parentData?.openItem.value)\n ? parentData?.openItem.value.includes(computedId.value)\n : parentData?.openItem.value === computedId.value\n)\n\nwatch(\n () => parentData?.openItem.value,\n () => (modelValue.value = openInParent.value)\n)\nwatch(modelValue, () => {\n if (modelValue.value && !openInParent.value) {\n parentData?.setOpenItem(computedId.value)\n } else if (!modelValue.value && openInParent.value) {\n parentData?.setCloseItem(computedId.value)\n }\n})\n</script>\n","<template>\n <div :id=\"computedId\" class=\"accordion\" :class=\"computedClasses\">\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n nextTick,\n provide,\n readonly,\n ref,\n type ShallowRef,\n shallowRef,\n toRef,\n unref,\n type VNode,\n watch,\n} from 'vue'\nimport {accordionInjectionKey} from '../../utils/keys'\nimport {useId} from '../../composables/useId'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {flattenFragments} from '../../utils/flattenFragments'\nimport BAccordionItem from './BAccordionItem.vue'\nimport {sortSlotElementsByPosition} from '../../utils/dom'\nimport type {BAccordionSlots, BAccordionProps} from '../../types'\nimport {isReadOnlyArray} from '../../utils/object'\n\nconst _props = withDefaults(defineProps<Omit<BAccordionProps, 'modelValue' | 'index'>>(), {\n flush: false,\n free: false,\n initialAnimation: false,\n id: undefined,\n lazy: false,\n unmountLazy: false,\n})\nconst props = useDefaults(_props, 'BAccordion')\nconst slots = defineSlots<BAccordionSlots>()\n\nconst modelValue = defineModel<BAccordionProps['modelValue']>({\n default: undefined,\n})\n\nconst index = defineModel<BAccordionProps['index']>('index', {\n default: undefined,\n})\n\nconst itemElementsArray = ref<VNode[]>([])\n\nconst updateItemElementsArray = () => {\n const itemElements = flattenFragments(slots.default?.({}) ?? [])\n itemElementsArray.value = (Array.isArray(itemElements) ? itemElements : [itemElements]).filter(\n (item) => item.type === BAccordionItem\n )\n}\nupdateItemElementsArray()\n\nwatch(\n () => slots.default?.({}),\n () => {\n updateItemElementsArray()\n nextTick(() => {\n sortAccordionItems()\n })\n }\n)\n\ninterface AccordionItem {\n id: string\n el: Readonly<ShallowRef<HTMLElement | null>>\n}\n\nconst accordionItems = shallowRef<AccordionItem[]>([])\n\nconst sortAccordionItems = () => {\n accordionItems.value = [...accordionItems.value].sort((a, b) =>\n sortSlotElementsByPosition(unref(a.el), unref(b.el))\n )\n if (modelValue.value) {\n if (isReadOnlyArray(modelValue.value)) {\n const next = modelValue.value\n .map((id) => accordionItems.value.findIndex((item) => item.id === id))\n .filter((i) => i !== -1)\n\n if (next.length !== modelValue.value.length) {\n if (process.env.NODE_ENV === 'development') {\n console.warn('[BAccordion] Unknown item id in v-model:', modelValue.value)\n }\n }\n index.value = next\n } else {\n const idx = accordionItems.value.findIndex((item) => item.id === modelValue.value)\n if (idx !== -1) index.value = idx\n }\n } else if (index.value !== undefined) {\n modelValue.value = isReadOnlyArray(index.value)\n ? index.value.map((idx) => accordionItems.value[idx]?.id).filter((el) => el !== undefined)\n : accordionItems.value[index.value]?.id\n }\n}\n\nconst computedId = useId(() => props.id, 'accordion')\n\nconst computedClasses = computed(() => ({\n 'accordion-flush': props.flush,\n}))\n\nconst areEqual = (a: unknown, b: unknown) => {\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.length === b.length && a.every((item, index) => item === b[index])\n }\n return a === b\n}\n\nwatch(index, (newValue, oldValue) => {\n if (areEqual(newValue, oldValue)) return\n if (index.value === undefined) {\n modelValue.value = undefined\n return\n }\n\n if (!props.free) {\n const idx = !isReadOnlyArray(index.value) ? index.value : index.value?.[0]\n if (idx !== undefined && accordionItems.value[idx]?.id) {\n if (modelValue.value !== accordionItems.value[idx]?.id) {\n modelValue.value = accordionItems.value[idx]?.id\n }\n } else {\n nextTick(() => {\n index.value = undefined\n })\n }\n } else {\n // free mode\n if (isReadOnlyArray(index.value)) {\n const newValue = index.value\n .map((item) => accordionItems.value[item]?.id)\n .filter((el) => el !== undefined)\n if (!areEqual(newValue, modelValue.value)) {\n modelValue.value = newValue\n }\n } else {\n const newValue = accordionItems.value[index.value]?.id\n if (newValue === undefined) {\n nextTick(() => {\n index.value = undefined\n })\n return\n }\n if (!areEqual(newValue, modelValue.value)) {\n modelValue.value = newValue\n }\n }\n }\n})\n\nwatch(\n modelValue,\n (newValue, oldValue) => {\n if (areEqual(newValue, oldValue)) return\n if (modelValue.value === undefined) {\n index.value = undefined\n return\n }\n\n if (!props.free) {\n const idx = accordionItems.value.findIndex(\n (item) =>\n item.id ===\n (!isReadOnlyArray(modelValue.value) ? modelValue.value : modelValue.value?.[0])\n )\n\n if (idx !== -1) {\n if (index.value !== idx) {\n index.value = idx\n }\n } else {\n nextTick(() => {\n modelValue.value = undefined\n })\n }\n } else if (props.free) {\n if (isReadOnlyArray(modelValue.value)) {\n const idxes = modelValue.value\n .map((value) => accordionItems.value.findIndex((item) => item.id === value))\n .filter((index) => index !== -1)\n if (idxes.length > 0) {\n if (!areEqual(idxes, index.value)) {\n index.value = idxes\n }\n } else {\n nextTick(() => {\n modelValue.value = undefined\n })\n }\n } else {\n const newValue = accordionItems.value.findIndex((item) => item.id === modelValue.value)\n if (!areEqual(newValue, index.value)) {\n index.value = newValue\n }\n }\n }\n },\n {deep: true}\n)\n\nwatch(\n () => props.free,\n (free) => {\n if (modelValue.value) {\n if (!free && isReadOnlyArray(modelValue.value)) {\n modelValue.value = modelValue.value[0]\n } else if (free && !isReadOnlyArray(modelValue.value)) {\n modelValue.value = [modelValue.value]\n }\n }\n }\n)\n\nprovide(accordionInjectionKey, {\n openItem: readonly(modelValue),\n free: toRef(() => props.free),\n initialAnimation: toRef(() => props.initialAnimation),\n lazy: toRef(() => props.lazy),\n unmountLazy: toRef(() => props.unmountLazy),\n setOpenItem: (id: string) => {\n if (props.free && !isReadOnlyArray(modelValue.value)) {\n if (modelValue.value !== undefined) {\n modelValue.value = [modelValue.value, id]\n } else {\n modelValue.value = [id]\n }\n return\n }\n if (!props.free && isReadOnlyArray(modelValue.value)) {\n modelValue.value = id\n return\n }\n if (isReadOnlyArray(modelValue.value)) {\n if (!modelValue.value.includes(id)) {\n modelValue.value = [...modelValue.value, id]\n }\n } else {\n modelValue.value = id\n }\n },\n setCloseItem: (id: string) => {\n if (!props.free && isReadOnlyArray(modelValue.value)) {\n modelValue.value = undefined\n return\n }\n if (isReadOnlyArray(modelValue.value)) {\n const next = modelValue.value.filter((item) => item !== id)\n modelValue.value = next.length ? next : undefined\n } else {\n if (modelValue.value === id) {\n modelValue.value = undefined\n }\n }\n },\n registerAccordionItem: (id: string, el: Readonly<ShallowRef<HTMLElement | null>>) => {\n accordionItems.value = [...accordionItems.value, {id, el}]\n if (accordionItems.value.length === itemElementsArray.value.length) {\n sortAccordionItems()\n }\n },\n unregisterAccordionItem: (id: string) => {\n accordionItems.value = accordionItems.value.filter((item) => item.id !== id)\n },\n})\n</script>\n","<template>\n <div :id=\"computedId\" class=\"accordion\" :class=\"computedClasses\">\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n nextTick,\n provide,\n readonly,\n ref,\n type ShallowRef,\n shallowRef,\n toRef,\n unref,\n type VNode,\n watch,\n} from 'vue'\nimport {accordionInjectionKey} from '../../utils/keys'\nimport {useId} from '../../composables/useId'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {flattenFragments} from '../../utils/flattenFragments'\nimport BAccordionItem from './BAccordionItem.vue'\nimport {sortSlotElementsByPosition} from '../../utils/dom'\nimport type {BAccordionSlots, BAccordionProps} from '../../types'\nimport {isReadOnlyArray} from '../../utils/object'\n\nconst _props = withDefaults(defineProps<Omit<BAccordionProps, 'modelValue' | 'index'>>(), {\n flush: false,\n free: false,\n initialAnimation: false,\n id: undefined,\n lazy: false,\n unmountLazy: false,\n})\nconst props = useDefaults(_props, 'BAccordion')\nconst slots = defineSlots<BAccordionSlots>()\n\nconst modelValue = defineModel<BAccordionProps['modelValue']>({\n default: undefined,\n})\n\nconst index = defineModel<BAccordionProps['index']>('index', {\n default: undefined,\n})\n\nconst itemElementsArray = ref<VNode[]>([])\n\nconst updateItemElementsArray = () => {\n const itemElements = flattenFragments(slots.default?.({}) ?? [])\n itemElementsArray.value = (Array.isArray(itemElements) ? itemElements : [itemElements]).filter(\n (item) => item.type === BAccordionItem\n )\n}\nupdateItemElementsArray()\n\nwatch(\n () => slots.default?.({}),\n () => {\n updateItemElementsArray()\n nextTick(() => {\n sortAccordionItems()\n })\n }\n)\n\ninterface AccordionItem {\n id: string\n el: Readonly<ShallowRef<HTMLElement | null>>\n}\n\nconst accordionItems = shallowRef<AccordionItem[]>([])\n\nconst sortAccordionItems = () => {\n accordionItems.value = [...accordionItems.value].sort((a, b) =>\n sortSlotElementsByPosition(unref(a.el), unref(b.el))\n )\n if (modelValue.value) {\n if (isReadOnlyArray(modelValue.value)) {\n const next = modelValue.value\n .map((id) => accordionItems.value.findIndex((item) => item.id === id))\n .filter((i) => i !== -1)\n\n if (next.length !== modelValue.value.length) {\n if (process.env.NODE_ENV === 'development') {\n console.warn('[BAccordion] Unknown item id in v-model:', modelValue.value)\n }\n }\n index.value = next\n } else {\n const idx = accordionItems.value.findIndex((item) => item.id === modelValue.value)\n if (idx !== -1) index.value = idx\n }\n } else if (index.value !== undefined) {\n modelValue.value = isReadOnlyArray(index.value)\n ? index.value.map((idx) => accordionItems.value[idx]?.id).filter((el) => el !== undefined)\n : accordionItems.value[index.value]?.id\n }\n}\n\nconst computedId = useId(() => props.id, 'accordion')\n\nconst computedClasses = computed(() => ({\n 'accordion-flush': props.flush,\n}))\n\nconst areEqual = (a: unknown, b: unknown) => {\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.length === b.length && a.every((item, index) => item === b[index])\n }\n return a === b\n}\n\nwatch(index, (newValue, oldValue) => {\n if (areEqual(newValue, oldValue)) return\n if (index.value === undefined) {\n modelValue.value = undefined\n return\n }\n\n if (!props.free) {\n const idx = !isReadOnlyArray(index.value) ? index.value : index.value?.[0]\n if (idx !== undefined && accordionItems.value[idx]?.id) {\n if (modelValue.value !== accordionItems.value[idx]?.id) {\n modelValue.value = accordionItems.value[idx]?.id\n }\n } else {\n nextTick(() => {\n index.value = undefined\n })\n }\n } else {\n // free mode\n if (isReadOnlyArray(index.value)) {\n const newValue = index.value\n .map((item) => accordionItems.value[item]?.id)\n .filter((el) => el !== undefined)\n if (!areEqual(newValue, modelValue.value)) {\n modelValue.value = newValue\n }\n } else {\n const newValue = accordionItems.value[index.value]?.id\n if (newValue === undefined) {\n nextTick(() => {\n index.value = undefined\n })\n return\n }\n if (!areEqual(newValue, modelValue.value)) {\n modelValue.value = newValue\n }\n }\n }\n})\n\nwatch(\n modelValue,\n (newValue, oldValue) => {\n if (areEqual(newValue, oldValue)) return\n if (modelValue.value === undefined) {\n index.value = undefined\n return\n }\n\n if (!props.free) {\n const idx = accordionItems.value.findIndex(\n (item) =>\n item.id ===\n (!isReadOnlyArray(modelValue.value) ? modelValue.value : modelValue.value?.[0])\n )\n\n if (idx !== -1) {\n if (index.value !== idx) {\n index.value = idx\n }\n } else {\n nextTick(() => {\n modelValue.value = undefined\n })\n }\n } else if (props.free) {\n if (isReadOnlyArray(modelValue.value)) {\n const idxes = modelValue.value\n .map((value) => accordionItems.value.findIndex((item) => item.id === value))\n .filter((index) => index !== -1)\n if (idxes.length > 0) {\n if (!areEqual(idxes, index.value)) {\n index.value = idxes\n }\n } else {\n nextTick(() => {\n modelValue.value = undefined\n })\n }\n } else {\n const newValue = accordionItems.value.findIndex((item) => item.id === modelValue.value)\n if (!areEqual(newValue, index.value)) {\n index.value = newValue\n }\n }\n }\n },\n {deep: true}\n)\n\nwatch(\n () => props.free,\n (free) => {\n if (modelValue.value) {\n if (!free && isReadOnlyArray(modelValue.value)) {\n modelValue.value = modelValue.value[0]\n } else if (free && !isReadOnlyArray(modelValue.value)) {\n modelValue.value = [modelValue.value]\n }\n }\n }\n)\n\nprovide(accordionInjectionKey, {\n openItem: readonly(modelValue),\n free: toRef(() => props.free),\n initialAnimation: toRef(() => props.initialAnimation),\n lazy: toRef(() => props.lazy),\n unmountLazy: toRef(() => props.unmountLazy),\n setOpenItem: (id: string) => {\n if (props.free && !isReadOnlyArray(modelValue.value)) {\n if (modelValue.value !== undefined) {\n modelValue.value = [modelValue.value, id]\n } else {\n modelValue.value = [id]\n }\n return\n }\n if (!props.free && isReadOnlyArray(modelValue.value)) {\n modelValue.value = id\n return\n }\n if (isReadOnlyArray(modelValue.value)) {\n if (!modelValue.value.includes(id)) {\n modelValue.value = [...modelValue.value, id]\n }\n } else {\n modelValue.value = id\n }\n },\n setCloseItem: (id: string) => {\n if (!props.free && isReadOnlyArray(modelValue.value)) {\n modelValue.value = undefined\n return\n }\n if (isReadOnlyArray(modelValue.value)) {\n const next = modelValue.value.filter((item) => item !== id)\n modelValue.value = next.length ? next : undefined\n } else {\n if (modelValue.value === id) {\n modelValue.value = undefined\n }\n }\n },\n registerAccordionItem: (id: string, el: Readonly<ShallowRef<HTMLElement | null>>) => {\n accordionItems.value = [...accordionItems.value, {id, el}]\n if (accordionItems.value.length === itemElementsArray.value.length) {\n sortAccordionItems()\n }\n },\n unregisterAccordionItem: (id: string) => {\n accordionItems.value = accordionItems.value.filter((item) => item.id !== id)\n },\n})\n</script>\n"],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  require("./chunk-CoQrYLCe.js");
2
2
  const require_useDefaults = require("./useDefaults-DsLf4iRY.js");
3
3
  const require_useId = require("./useId-DHrBgM7P.js");
4
- const require_useShowHide = require("./useShowHide-sLzwukNm.js");
4
+ const require_useShowHide = require("./useShowHide-BTCaeU5j.js");
5
5
  const require_BLink = require("./BLink-uemyYKst.js");
6
- const require_BButton = require("./BButton-sb1cBCIb.js");
6
+ const require_BButton = require("./BButton-DBRs8Pz_.js");
7
7
  const require_BCloseButton = require("./BCloseButton-CN__Jjcj.js");
8
- const require_BProgress = require("./BProgress-DAnEfDXq.js");
9
- const require_useCountdownHover = require("./useCountdownHover-D044mFuX.js");
8
+ const require_BProgress = require("./BProgress-Bc3ZSkac.js");
9
+ const require_useCountdownHover = require("./useCountdownHover-8bwLWYoN.js");
10
10
  let vue = require("vue");
11
11
  //#region src/components/BAlert/BAlert.vue?vue&type=script&setup=true&lang.ts
12
12
  var _hoisted_1 = [
@@ -295,4 +295,4 @@ Object.defineProperty(exports, "BAlert_default", {
295
295
  }
296
296
  });
297
297
 
298
- //# sourceMappingURL=BAlert-DTvDu9YQ.js.map
298
+ //# sourceMappingURL=BAlert-BnT7fF6B.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BAlert-DTvDu9YQ.js","names":[],"sources":["../src/components/BAlert/BAlert.vue","../src/components/BAlert/BAlert.vue"],"sourcesContent":["<template>\n <Transition\n v-if=\"renderRef || contentShowing\"\n v-bind=\"transitionProps\"\n :appear=\"!!modelValue || props.visible\"\n >\n <div\n v-show=\"isAlertVisible\"\n :id=\"props.id\"\n ref=\"_element\"\n class=\"alert\"\n :class=\"[props.alertClass, computedClasses]\"\n tabindex=\"0\"\n :role=\"!isAlertVisible ? undefined : props.isStatus ? 'status' : 'alert'\"\n :aria-live=\"!isAlertVisible ? undefined : props.isStatus ? 'polite' : 'assertive'\"\n :aria-atomic=\"!isAlertVisible ? undefined : true\"\n >\n <component\n :is=\"props.headerTag\"\n v-if=\"contentShowing && (slots.title || props.title)\"\n class=\"alert-heading d-flex gap-2\"\n :class=\"props.headerClass\"\n >\n <slot name=\"title\" v-bind=\"sharedSlots\">\n <span>\n {{ props.title }}\n </span>\n </slot>\n <template v-if=\"props.dismissible\">\n <BButton\n v-if=\"slots.close || props.closeContent\"\n :class=\"[props.closeClass]\"\n class=\"ms-auto ps-1 btn-close-custom\"\n :variant=\"props.closeVariant\"\n @click.stop.prevent=\"hide('close')\"\n >\n <slot name=\"close\" v-bind=\"sharedSlots\">\n {{ props.closeContent }}\n </slot>\n </BButton>\n <BCloseButton\n v-else\n :aria-label=\"props.closeLabel\"\n :class=\"[props.closeClass]\"\n @click.stop.prevent=\"hide('close')\"\n />\n </template>\n </component>\n <template v-if=\"contentShowing && (slots.default || props.body)\">\n <div class=\"d-flex gap-2\">\n <component\n :is=\"computedTag\"\n class=\"alert-body\"\n :class=\"props.bodyClass\"\n v-bind=\"computedLinkProps\"\n @click=\"computedLink && props.dismissible ? hide() : () => {}\"\n >\n <slot v-bind=\"sharedSlots\">\n {{ props.body }}\n </slot>\n </component>\n\n <template v-if=\"props.dismissible && !(slots.title || props.title)\">\n <BButton\n v-if=\"slots.close || props.closeContent\"\n :class=\"[props.closeClass]\"\n class=\"ms-auto btn-close-custom\"\n :variant=\"props.closeVariant\"\n @click.stop.prevent=\"hide('close')\"\n >\n <slot name=\"close\" v-bind=\"sharedSlots\">\n {{ props.closeContent }}\n </slot>\n </BButton>\n <BCloseButton\n v-else\n :aria-label=\"props.closeLabel\"\n :class=\"[props.closeClass]\"\n @click.stop.prevent=\"hide('close')\"\n />\n </template>\n </div>\n </template>\n <BProgress\n v-if=\"typeof modelValue === 'number' && props.progressProps !== undefined\"\n :animated=\"props.progressProps.animated\"\n :precision=\"props.progressProps.precision\"\n :show-progress=\"props.progressProps.showProgress\"\n :show-value=\"props.progressProps.showValue\"\n :striped=\"props.progressProps.striped\"\n :variant=\"props.progressProps.variant\"\n :max=\"modelValue\"\n :value=\"remainingMs\"\n height=\"4px\"\n />\n </div>\n </Transition>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type EmitFn, useTemplateRef, watch, watchEffect} from 'vue'\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport type {BAlertProps} from '../../types/ComponentProps'\nimport type {BAlertEmits} from '../../types/ComponentEmits'\nimport type {BAlertSlots, ShowHideSlotsData} from '../../types/ComponentSlots'\nimport BCloseButton from '../BButton/BCloseButton.vue'\nimport BLink from '../BLink/BLink.vue'\nimport BProgress from '../BProgress/BProgress.vue'\nimport {useCountdown} from '../../composables/useCountdown'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useCountdownHover} from '../../composables/useCountdownHover'\nimport {useId} from '../../composables/useId'\nimport {useShowHide} from '../../composables/useShowHide'\n\nconst _props = withDefaults(defineProps<Omit<BAlertProps, 'modelValue'>>(), {\n bgVariant: null,\n body: undefined,\n bodyClass: undefined,\n closeClass: undefined,\n closeContent: undefined,\n closeLabel: 'Close',\n closeVariant: 'secondary',\n dismissible: false,\n headerClass: undefined,\n headerTag: 'div',\n id: undefined,\n initialAnimation: false,\n interval: 'requestAnimationFrame',\n isStatus: false,\n lazy: false,\n noFade: false,\n noHoverPause: false,\n noResumeOnHoverLeave: false,\n progressProps: undefined,\n unmountLazy: false,\n showOnPause: true,\n show: false,\n solid: false,\n textVariant: null,\n title: undefined,\n alertClass: undefined,\n transProps: undefined,\n visible: false,\n // Link props\n // All others use defaults\n noRel: undefined,\n active: undefined,\n activeClass: undefined,\n disabled: undefined,\n exactActiveClass: undefined,\n href: undefined,\n icon: undefined,\n opacity: undefined,\n opacityHover: undefined,\n stretched: false,\n rel: undefined,\n replace: undefined,\n routerComponentName: undefined,\n target: undefined,\n to: undefined,\n underlineOffset: undefined,\n underlineOffsetHover: undefined,\n underlineOpacity: undefined,\n underlineOpacityHover: undefined,\n underlineVariant: undefined,\n // End link props\n variant: 'info',\n})\nconst props = useDefaults(_props, 'BAlert')\nconst emit = defineEmits<BAlertEmits>()\nconst slots = defineSlots<BAlertSlots>()\n\nconst element = useTemplateRef('_element')\n\nconst modelValue = defineModel<Exclude<BAlertProps['modelValue'], undefined>>({default: false})\nconst {computedLink, computedLinkProps} = useBLinkHelper(props)\n\nconst computedId = useId(() => props.id, 'alert')\n\nconst {\n showRef,\n renderRef,\n hide,\n toggle,\n show,\n buildTriggerableEvent,\n computedNoAnimation,\n isVisible,\n transitionProps,\n contentShowing,\n} = useShowHide(modelValue, props, emit as EmitFn, element, computedId)\n\n// TODO solid is never used\nconst countdownLength = computed(() =>\n typeof modelValue.value === 'boolean' ? 0 : modelValue.value\n)\n\nconst {\n isActive,\n pause,\n restart,\n resume,\n stop,\n isPaused,\n value: remainingMs,\n} = useCountdown(countdownLength, props.interval, {\n immediate: typeof modelValue.value === 'number' && !!modelValue.value,\n})\nuseCountdownHover(\n element,\n {\n noHoverPause: () => props.noHoverPause || typeof modelValue.value !== 'number',\n noResumeOnHoverLeave: () => props.noResumeOnHoverLeave || typeof modelValue.value !== 'number',\n modelValueIgnoresHover: () => typeof modelValue.value === 'boolean',\n },\n {pause, resume}\n)\n\nwatchEffect(() => {\n emit('close-countdown', remainingMs.value)\n})\n\nconst computedTag = computed(() => (computedLink.value ? BLink : 'div'))\n\nconst isAlertVisible = computed(\n () => showRef.value || isActive.value || (props.showOnPause && isPaused.value)\n)\n\n// const colorClasses = useColorVariantClasses(props)\nconst computedClasses = computed(() => [\n // colorClasses.value,\n {\n [`alert-${props.variant}`]: props.variant !== null,\n 'alert-dismissible': props.dismissible && !(slots.close || props.closeContent),\n 'show': isVisible.value,\n 'fade': !computedNoAnimation.value,\n },\n])\n\nwatch(modelValue, (newValue) => {\n if (typeof newValue === 'number') {\n const event = buildTriggerableEvent('show', {cancelable: true, trigger: 'model'})\n emit('show', event)\n if (event.defaultPrevented) {\n emit('show-prevented', buildTriggerableEvent('show-prevented'))\n } else {\n restart()\n }\n }\n})\n\n// isActive in the composable will cause the alert to hide when the countdown is done\nwatch(isActive, (newValue) => {\n if (newValue === false && isPaused.value === false) {\n hide()\n modelValue.value = 0\n stop()\n }\n})\nconst sharedSlots = computed<ShowHideSlotsData>(() => ({\n toggle,\n show,\n hide,\n id: computedId.value,\n visible: showRef.value,\n active: isActive.value,\n}))\n\ndefineExpose({\n show,\n hide,\n toggle,\n pause,\n restart,\n resume,\n stop,\n})\n</script>\n","<template>\n <Transition\n v-if=\"renderRef || contentShowing\"\n v-bind=\"transitionProps\"\n :appear=\"!!modelValue || props.visible\"\n >\n <div\n v-show=\"isAlertVisible\"\n :id=\"props.id\"\n ref=\"_element\"\n class=\"alert\"\n :class=\"[props.alertClass, computedClasses]\"\n tabindex=\"0\"\n :role=\"!isAlertVisible ? undefined : props.isStatus ? 'status' : 'alert'\"\n :aria-live=\"!isAlertVisible ? undefined : props.isStatus ? 'polite' : 'assertive'\"\n :aria-atomic=\"!isAlertVisible ? undefined : true\"\n >\n <component\n :is=\"props.headerTag\"\n v-if=\"contentShowing && (slots.title || props.title)\"\n class=\"alert-heading d-flex gap-2\"\n :class=\"props.headerClass\"\n >\n <slot name=\"title\" v-bind=\"sharedSlots\">\n <span>\n {{ props.title }}\n </span>\n </slot>\n <template v-if=\"props.dismissible\">\n <BButton\n v-if=\"slots.close || props.closeContent\"\n :class=\"[props.closeClass]\"\n class=\"ms-auto ps-1 btn-close-custom\"\n :variant=\"props.closeVariant\"\n @click.stop.prevent=\"hide('close')\"\n >\n <slot name=\"close\" v-bind=\"sharedSlots\">\n {{ props.closeContent }}\n </slot>\n </BButton>\n <BCloseButton\n v-else\n :aria-label=\"props.closeLabel\"\n :class=\"[props.closeClass]\"\n @click.stop.prevent=\"hide('close')\"\n />\n </template>\n </component>\n <template v-if=\"contentShowing && (slots.default || props.body)\">\n <div class=\"d-flex gap-2\">\n <component\n :is=\"computedTag\"\n class=\"alert-body\"\n :class=\"props.bodyClass\"\n v-bind=\"computedLinkProps\"\n @click=\"computedLink && props.dismissible ? hide() : () => {}\"\n >\n <slot v-bind=\"sharedSlots\">\n {{ props.body }}\n </slot>\n </component>\n\n <template v-if=\"props.dismissible && !(slots.title || props.title)\">\n <BButton\n v-if=\"slots.close || props.closeContent\"\n :class=\"[props.closeClass]\"\n class=\"ms-auto btn-close-custom\"\n :variant=\"props.closeVariant\"\n @click.stop.prevent=\"hide('close')\"\n >\n <slot name=\"close\" v-bind=\"sharedSlots\">\n {{ props.closeContent }}\n </slot>\n </BButton>\n <BCloseButton\n v-else\n :aria-label=\"props.closeLabel\"\n :class=\"[props.closeClass]\"\n @click.stop.prevent=\"hide('close')\"\n />\n </template>\n </div>\n </template>\n <BProgress\n v-if=\"typeof modelValue === 'number' && props.progressProps !== undefined\"\n :animated=\"props.progressProps.animated\"\n :precision=\"props.progressProps.precision\"\n :show-progress=\"props.progressProps.showProgress\"\n :show-value=\"props.progressProps.showValue\"\n :striped=\"props.progressProps.striped\"\n :variant=\"props.progressProps.variant\"\n :max=\"modelValue\"\n :value=\"remainingMs\"\n height=\"4px\"\n />\n </div>\n </Transition>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type EmitFn, useTemplateRef, watch, watchEffect} from 'vue'\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport type {BAlertProps} from '../../types/ComponentProps'\nimport type {BAlertEmits} from '../../types/ComponentEmits'\nimport type {BAlertSlots, ShowHideSlotsData} from '../../types/ComponentSlots'\nimport BCloseButton from '../BButton/BCloseButton.vue'\nimport BLink from '../BLink/BLink.vue'\nimport BProgress from '../BProgress/BProgress.vue'\nimport {useCountdown} from '../../composables/useCountdown'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useCountdownHover} from '../../composables/useCountdownHover'\nimport {useId} from '../../composables/useId'\nimport {useShowHide} from '../../composables/useShowHide'\n\nconst _props = withDefaults(defineProps<Omit<BAlertProps, 'modelValue'>>(), {\n bgVariant: null,\n body: undefined,\n bodyClass: undefined,\n closeClass: undefined,\n closeContent: undefined,\n closeLabel: 'Close',\n closeVariant: 'secondary',\n dismissible: false,\n headerClass: undefined,\n headerTag: 'div',\n id: undefined,\n initialAnimation: false,\n interval: 'requestAnimationFrame',\n isStatus: false,\n lazy: false,\n noFade: false,\n noHoverPause: false,\n noResumeOnHoverLeave: false,\n progressProps: undefined,\n unmountLazy: false,\n showOnPause: true,\n show: false,\n solid: false,\n textVariant: null,\n title: undefined,\n alertClass: undefined,\n transProps: undefined,\n visible: false,\n // Link props\n // All others use defaults\n noRel: undefined,\n active: undefined,\n activeClass: undefined,\n disabled: undefined,\n exactActiveClass: undefined,\n href: undefined,\n icon: undefined,\n opacity: undefined,\n opacityHover: undefined,\n stretched: false,\n rel: undefined,\n replace: undefined,\n routerComponentName: undefined,\n target: undefined,\n to: undefined,\n underlineOffset: undefined,\n underlineOffsetHover: undefined,\n underlineOpacity: undefined,\n underlineOpacityHover: undefined,\n underlineVariant: undefined,\n // End link props\n variant: 'info',\n})\nconst props = useDefaults(_props, 'BAlert')\nconst emit = defineEmits<BAlertEmits>()\nconst slots = defineSlots<BAlertSlots>()\n\nconst element = useTemplateRef('_element')\n\nconst modelValue = defineModel<Exclude<BAlertProps['modelValue'], undefined>>({default: false})\nconst {computedLink, computedLinkProps} = useBLinkHelper(props)\n\nconst computedId = useId(() => props.id, 'alert')\n\nconst {\n showRef,\n renderRef,\n hide,\n toggle,\n show,\n buildTriggerableEvent,\n computedNoAnimation,\n isVisible,\n transitionProps,\n contentShowing,\n} = useShowHide(modelValue, props, emit as EmitFn, element, computedId)\n\n// TODO solid is never used\nconst countdownLength = computed(() =>\n typeof modelValue.value === 'boolean' ? 0 : modelValue.value\n)\n\nconst {\n isActive,\n pause,\n restart,\n resume,\n stop,\n isPaused,\n value: remainingMs,\n} = useCountdown(countdownLength, props.interval, {\n immediate: typeof modelValue.value === 'number' && !!modelValue.value,\n})\nuseCountdownHover(\n element,\n {\n noHoverPause: () => props.noHoverPause || typeof modelValue.value !== 'number',\n noResumeOnHoverLeave: () => props.noResumeOnHoverLeave || typeof modelValue.value !== 'number',\n modelValueIgnoresHover: () => typeof modelValue.value === 'boolean',\n },\n {pause, resume}\n)\n\nwatchEffect(() => {\n emit('close-countdown', remainingMs.value)\n})\n\nconst computedTag = computed(() => (computedLink.value ? BLink : 'div'))\n\nconst isAlertVisible = computed(\n () => showRef.value || isActive.value || (props.showOnPause && isPaused.value)\n)\n\n// const colorClasses = useColorVariantClasses(props)\nconst computedClasses = computed(() => [\n // colorClasses.value,\n {\n [`alert-${props.variant}`]: props.variant !== null,\n 'alert-dismissible': props.dismissible && !(slots.close || props.closeContent),\n 'show': isVisible.value,\n 'fade': !computedNoAnimation.value,\n },\n])\n\nwatch(modelValue, (newValue) => {\n if (typeof newValue === 'number') {\n const event = buildTriggerableEvent('show', {cancelable: true, trigger: 'model'})\n emit('show', event)\n if (event.defaultPrevented) {\n emit('show-prevented', buildTriggerableEvent('show-prevented'))\n } else {\n restart()\n }\n }\n})\n\n// isActive in the composable will cause the alert to hide when the countdown is done\nwatch(isActive, (newValue) => {\n if (newValue === false && isPaused.value === false) {\n hide()\n modelValue.value = 0\n stop()\n }\n})\nconst sharedSlots = computed<ShowHideSlotsData>(() => ({\n toggle,\n show,\n hide,\n id: computedId.value,\n visible: showRef.value,\n active: isActive.value,\n}))\n\ndefineExpose({\n show,\n hide,\n toggle,\n pause,\n restart,\n resume,\n stop,\n})\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"BAlert-BnT7fF6B.js","names":[],"sources":["../src/components/BAlert/BAlert.vue","../src/components/BAlert/BAlert.vue"],"sourcesContent":["<template>\n <Transition\n v-if=\"renderRef || contentShowing\"\n v-bind=\"transitionProps\"\n :appear=\"!!modelValue || props.visible\"\n >\n <div\n v-show=\"isAlertVisible\"\n :id=\"props.id\"\n ref=\"_element\"\n class=\"alert\"\n :class=\"[props.alertClass, computedClasses]\"\n tabindex=\"0\"\n :role=\"!isAlertVisible ? undefined : props.isStatus ? 'status' : 'alert'\"\n :aria-live=\"!isAlertVisible ? undefined : props.isStatus ? 'polite' : 'assertive'\"\n :aria-atomic=\"!isAlertVisible ? undefined : true\"\n >\n <component\n :is=\"props.headerTag\"\n v-if=\"contentShowing && (slots.title || props.title)\"\n class=\"alert-heading d-flex gap-2\"\n :class=\"props.headerClass\"\n >\n <slot name=\"title\" v-bind=\"sharedSlots\">\n <span>\n {{ props.title }}\n </span>\n </slot>\n <template v-if=\"props.dismissible\">\n <BButton\n v-if=\"slots.close || props.closeContent\"\n :class=\"[props.closeClass]\"\n class=\"ms-auto ps-1 btn-close-custom\"\n :variant=\"props.closeVariant\"\n @click.stop.prevent=\"hide('close')\"\n >\n <slot name=\"close\" v-bind=\"sharedSlots\">\n {{ props.closeContent }}\n </slot>\n </BButton>\n <BCloseButton\n v-else\n :aria-label=\"props.closeLabel\"\n :class=\"[props.closeClass]\"\n @click.stop.prevent=\"hide('close')\"\n />\n </template>\n </component>\n <template v-if=\"contentShowing && (slots.default || props.body)\">\n <div class=\"d-flex gap-2\">\n <component\n :is=\"computedTag\"\n class=\"alert-body\"\n :class=\"props.bodyClass\"\n v-bind=\"computedLinkProps\"\n @click=\"computedLink && props.dismissible ? hide() : () => {}\"\n >\n <slot v-bind=\"sharedSlots\">\n {{ props.body }}\n </slot>\n </component>\n\n <template v-if=\"props.dismissible && !(slots.title || props.title)\">\n <BButton\n v-if=\"slots.close || props.closeContent\"\n :class=\"[props.closeClass]\"\n class=\"ms-auto btn-close-custom\"\n :variant=\"props.closeVariant\"\n @click.stop.prevent=\"hide('close')\"\n >\n <slot name=\"close\" v-bind=\"sharedSlots\">\n {{ props.closeContent }}\n </slot>\n </BButton>\n <BCloseButton\n v-else\n :aria-label=\"props.closeLabel\"\n :class=\"[props.closeClass]\"\n @click.stop.prevent=\"hide('close')\"\n />\n </template>\n </div>\n </template>\n <BProgress\n v-if=\"typeof modelValue === 'number' && props.progressProps !== undefined\"\n :animated=\"props.progressProps.animated\"\n :precision=\"props.progressProps.precision\"\n :show-progress=\"props.progressProps.showProgress\"\n :show-value=\"props.progressProps.showValue\"\n :striped=\"props.progressProps.striped\"\n :variant=\"props.progressProps.variant\"\n :max=\"modelValue\"\n :value=\"remainingMs\"\n height=\"4px\"\n />\n </div>\n </Transition>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type EmitFn, useTemplateRef, watch, watchEffect} from 'vue'\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport type {BAlertProps} from '../../types/ComponentProps'\nimport type {BAlertEmits} from '../../types/ComponentEmits'\nimport type {BAlertSlots, ShowHideSlotsData} from '../../types/ComponentSlots'\nimport BCloseButton from '../BButton/BCloseButton.vue'\nimport BLink from '../BLink/BLink.vue'\nimport BProgress from '../BProgress/BProgress.vue'\nimport {useCountdown} from '../../composables/useCountdown'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useCountdownHover} from '../../composables/useCountdownHover'\nimport {useId} from '../../composables/useId'\nimport {useShowHide} from '../../composables/useShowHide'\n\nconst _props = withDefaults(defineProps<Omit<BAlertProps, 'modelValue'>>(), {\n bgVariant: null,\n body: undefined,\n bodyClass: undefined,\n closeClass: undefined,\n closeContent: undefined,\n closeLabel: 'Close',\n closeVariant: 'secondary',\n dismissible: false,\n headerClass: undefined,\n headerTag: 'div',\n id: undefined,\n initialAnimation: false,\n interval: 'requestAnimationFrame',\n isStatus: false,\n lazy: false,\n noFade: false,\n noHoverPause: false,\n noResumeOnHoverLeave: false,\n progressProps: undefined,\n unmountLazy: false,\n showOnPause: true,\n show: false,\n solid: false,\n textVariant: null,\n title: undefined,\n alertClass: undefined,\n transProps: undefined,\n visible: false,\n // Link props\n // All others use defaults\n noRel: undefined,\n active: undefined,\n activeClass: undefined,\n disabled: undefined,\n exactActiveClass: undefined,\n href: undefined,\n icon: undefined,\n opacity: undefined,\n opacityHover: undefined,\n stretched: false,\n rel: undefined,\n replace: undefined,\n routerComponentName: undefined,\n target: undefined,\n to: undefined,\n underlineOffset: undefined,\n underlineOffsetHover: undefined,\n underlineOpacity: undefined,\n underlineOpacityHover: undefined,\n underlineVariant: undefined,\n // End link props\n variant: 'info',\n})\nconst props = useDefaults(_props, 'BAlert')\nconst emit = defineEmits<BAlertEmits>()\nconst slots = defineSlots<BAlertSlots>()\n\nconst element = useTemplateRef('_element')\n\nconst modelValue = defineModel<Exclude<BAlertProps['modelValue'], undefined>>({default: false})\nconst {computedLink, computedLinkProps} = useBLinkHelper(props)\n\nconst computedId = useId(() => props.id, 'alert')\n\nconst {\n showRef,\n renderRef,\n hide,\n toggle,\n show,\n buildTriggerableEvent,\n computedNoAnimation,\n isVisible,\n transitionProps,\n contentShowing,\n} = useShowHide(modelValue, props, emit as EmitFn, element, computedId)\n\n// TODO solid is never used\nconst countdownLength = computed(() =>\n typeof modelValue.value === 'boolean' ? 0 : modelValue.value\n)\n\nconst {\n isActive,\n pause,\n restart,\n resume,\n stop,\n isPaused,\n value: remainingMs,\n} = useCountdown(countdownLength, props.interval, {\n immediate: typeof modelValue.value === 'number' && !!modelValue.value,\n})\nuseCountdownHover(\n element,\n {\n noHoverPause: () => props.noHoverPause || typeof modelValue.value !== 'number',\n noResumeOnHoverLeave: () => props.noResumeOnHoverLeave || typeof modelValue.value !== 'number',\n modelValueIgnoresHover: () => typeof modelValue.value === 'boolean',\n },\n {pause, resume}\n)\n\nwatchEffect(() => {\n emit('close-countdown', remainingMs.value)\n})\n\nconst computedTag = computed(() => (computedLink.value ? BLink : 'div'))\n\nconst isAlertVisible = computed(\n () => showRef.value || isActive.value || (props.showOnPause && isPaused.value)\n)\n\n// const colorClasses = useColorVariantClasses(props)\nconst computedClasses = computed(() => [\n // colorClasses.value,\n {\n [`alert-${props.variant}`]: props.variant !== null,\n 'alert-dismissible': props.dismissible && !(slots.close || props.closeContent),\n 'show': isVisible.value,\n 'fade': !computedNoAnimation.value,\n },\n])\n\nwatch(modelValue, (newValue) => {\n if (typeof newValue === 'number') {\n const event = buildTriggerableEvent('show', {cancelable: true, trigger: 'model'})\n emit('show', event)\n if (event.defaultPrevented) {\n emit('show-prevented', buildTriggerableEvent('show-prevented'))\n } else {\n restart()\n }\n }\n})\n\n// isActive in the composable will cause the alert to hide when the countdown is done\nwatch(isActive, (newValue) => {\n if (newValue === false && isPaused.value === false) {\n hide()\n modelValue.value = 0\n stop()\n }\n})\nconst sharedSlots = computed<ShowHideSlotsData>(() => ({\n toggle,\n show,\n hide,\n id: computedId.value,\n visible: showRef.value,\n active: isActive.value,\n}))\n\ndefineExpose({\n show,\n hide,\n toggle,\n pause,\n restart,\n resume,\n stop,\n})\n</script>\n","<template>\n <Transition\n v-if=\"renderRef || contentShowing\"\n v-bind=\"transitionProps\"\n :appear=\"!!modelValue || props.visible\"\n >\n <div\n v-show=\"isAlertVisible\"\n :id=\"props.id\"\n ref=\"_element\"\n class=\"alert\"\n :class=\"[props.alertClass, computedClasses]\"\n tabindex=\"0\"\n :role=\"!isAlertVisible ? undefined : props.isStatus ? 'status' : 'alert'\"\n :aria-live=\"!isAlertVisible ? undefined : props.isStatus ? 'polite' : 'assertive'\"\n :aria-atomic=\"!isAlertVisible ? undefined : true\"\n >\n <component\n :is=\"props.headerTag\"\n v-if=\"contentShowing && (slots.title || props.title)\"\n class=\"alert-heading d-flex gap-2\"\n :class=\"props.headerClass\"\n >\n <slot name=\"title\" v-bind=\"sharedSlots\">\n <span>\n {{ props.title }}\n </span>\n </slot>\n <template v-if=\"props.dismissible\">\n <BButton\n v-if=\"slots.close || props.closeContent\"\n :class=\"[props.closeClass]\"\n class=\"ms-auto ps-1 btn-close-custom\"\n :variant=\"props.closeVariant\"\n @click.stop.prevent=\"hide('close')\"\n >\n <slot name=\"close\" v-bind=\"sharedSlots\">\n {{ props.closeContent }}\n </slot>\n </BButton>\n <BCloseButton\n v-else\n :aria-label=\"props.closeLabel\"\n :class=\"[props.closeClass]\"\n @click.stop.prevent=\"hide('close')\"\n />\n </template>\n </component>\n <template v-if=\"contentShowing && (slots.default || props.body)\">\n <div class=\"d-flex gap-2\">\n <component\n :is=\"computedTag\"\n class=\"alert-body\"\n :class=\"props.bodyClass\"\n v-bind=\"computedLinkProps\"\n @click=\"computedLink && props.dismissible ? hide() : () => {}\"\n >\n <slot v-bind=\"sharedSlots\">\n {{ props.body }}\n </slot>\n </component>\n\n <template v-if=\"props.dismissible && !(slots.title || props.title)\">\n <BButton\n v-if=\"slots.close || props.closeContent\"\n :class=\"[props.closeClass]\"\n class=\"ms-auto btn-close-custom\"\n :variant=\"props.closeVariant\"\n @click.stop.prevent=\"hide('close')\"\n >\n <slot name=\"close\" v-bind=\"sharedSlots\">\n {{ props.closeContent }}\n </slot>\n </BButton>\n <BCloseButton\n v-else\n :aria-label=\"props.closeLabel\"\n :class=\"[props.closeClass]\"\n @click.stop.prevent=\"hide('close')\"\n />\n </template>\n </div>\n </template>\n <BProgress\n v-if=\"typeof modelValue === 'number' && props.progressProps !== undefined\"\n :animated=\"props.progressProps.animated\"\n :precision=\"props.progressProps.precision\"\n :show-progress=\"props.progressProps.showProgress\"\n :show-value=\"props.progressProps.showValue\"\n :striped=\"props.progressProps.striped\"\n :variant=\"props.progressProps.variant\"\n :max=\"modelValue\"\n :value=\"remainingMs\"\n height=\"4px\"\n />\n </div>\n </Transition>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type EmitFn, useTemplateRef, watch, watchEffect} from 'vue'\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport type {BAlertProps} from '../../types/ComponentProps'\nimport type {BAlertEmits} from '../../types/ComponentEmits'\nimport type {BAlertSlots, ShowHideSlotsData} from '../../types/ComponentSlots'\nimport BCloseButton from '../BButton/BCloseButton.vue'\nimport BLink from '../BLink/BLink.vue'\nimport BProgress from '../BProgress/BProgress.vue'\nimport {useCountdown} from '../../composables/useCountdown'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useCountdownHover} from '../../composables/useCountdownHover'\nimport {useId} from '../../composables/useId'\nimport {useShowHide} from '../../composables/useShowHide'\n\nconst _props = withDefaults(defineProps<Omit<BAlertProps, 'modelValue'>>(), {\n bgVariant: null,\n body: undefined,\n bodyClass: undefined,\n closeClass: undefined,\n closeContent: undefined,\n closeLabel: 'Close',\n closeVariant: 'secondary',\n dismissible: false,\n headerClass: undefined,\n headerTag: 'div',\n id: undefined,\n initialAnimation: false,\n interval: 'requestAnimationFrame',\n isStatus: false,\n lazy: false,\n noFade: false,\n noHoverPause: false,\n noResumeOnHoverLeave: false,\n progressProps: undefined,\n unmountLazy: false,\n showOnPause: true,\n show: false,\n solid: false,\n textVariant: null,\n title: undefined,\n alertClass: undefined,\n transProps: undefined,\n visible: false,\n // Link props\n // All others use defaults\n noRel: undefined,\n active: undefined,\n activeClass: undefined,\n disabled: undefined,\n exactActiveClass: undefined,\n href: undefined,\n icon: undefined,\n opacity: undefined,\n opacityHover: undefined,\n stretched: false,\n rel: undefined,\n replace: undefined,\n routerComponentName: undefined,\n target: undefined,\n to: undefined,\n underlineOffset: undefined,\n underlineOffsetHover: undefined,\n underlineOpacity: undefined,\n underlineOpacityHover: undefined,\n underlineVariant: undefined,\n // End link props\n variant: 'info',\n})\nconst props = useDefaults(_props, 'BAlert')\nconst emit = defineEmits<BAlertEmits>()\nconst slots = defineSlots<BAlertSlots>()\n\nconst element = useTemplateRef('_element')\n\nconst modelValue = defineModel<Exclude<BAlertProps['modelValue'], undefined>>({default: false})\nconst {computedLink, computedLinkProps} = useBLinkHelper(props)\n\nconst computedId = useId(() => props.id, 'alert')\n\nconst {\n showRef,\n renderRef,\n hide,\n toggle,\n show,\n buildTriggerableEvent,\n computedNoAnimation,\n isVisible,\n transitionProps,\n contentShowing,\n} = useShowHide(modelValue, props, emit as EmitFn, element, computedId)\n\n// TODO solid is never used\nconst countdownLength = computed(() =>\n typeof modelValue.value === 'boolean' ? 0 : modelValue.value\n)\n\nconst {\n isActive,\n pause,\n restart,\n resume,\n stop,\n isPaused,\n value: remainingMs,\n} = useCountdown(countdownLength, props.interval, {\n immediate: typeof modelValue.value === 'number' && !!modelValue.value,\n})\nuseCountdownHover(\n element,\n {\n noHoverPause: () => props.noHoverPause || typeof modelValue.value !== 'number',\n noResumeOnHoverLeave: () => props.noResumeOnHoverLeave || typeof modelValue.value !== 'number',\n modelValueIgnoresHover: () => typeof modelValue.value === 'boolean',\n },\n {pause, resume}\n)\n\nwatchEffect(() => {\n emit('close-countdown', remainingMs.value)\n})\n\nconst computedTag = computed(() => (computedLink.value ? BLink : 'div'))\n\nconst isAlertVisible = computed(\n () => showRef.value || isActive.value || (props.showOnPause && isPaused.value)\n)\n\n// const colorClasses = useColorVariantClasses(props)\nconst computedClasses = computed(() => [\n // colorClasses.value,\n {\n [`alert-${props.variant}`]: props.variant !== null,\n 'alert-dismissible': props.dismissible && !(slots.close || props.closeContent),\n 'show': isVisible.value,\n 'fade': !computedNoAnimation.value,\n },\n])\n\nwatch(modelValue, (newValue) => {\n if (typeof newValue === 'number') {\n const event = buildTriggerableEvent('show', {cancelable: true, trigger: 'model'})\n emit('show', event)\n if (event.defaultPrevented) {\n emit('show-prevented', buildTriggerableEvent('show-prevented'))\n } else {\n restart()\n }\n }\n})\n\n// isActive in the composable will cause the alert to hide when the countdown is done\nwatch(isActive, (newValue) => {\n if (newValue === false && isPaused.value === false) {\n hide()\n modelValue.value = 0\n stop()\n }\n})\nconst sharedSlots = computed<ShowHideSlotsData>(() => ({\n toggle,\n show,\n hide,\n id: computedId.value,\n visible: showRef.value,\n active: isActive.value,\n}))\n\ndefineExpose({\n show,\n hide,\n toggle,\n pause,\n restart,\n resume,\n stop,\n})\n</script>\n"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import { t as useDefaults } from "./useDefaults-BKgBaqOV.mjs";
2
2
  import { t as useId$1 } from "./useId-BKZFSYm8.mjs";
3
- import { t as useShowHide } from "./useShowHide-IPyuuPL0.mjs";
3
+ import { t as useShowHide } from "./useShowHide-yAK5dhPT.mjs";
4
4
  import { r as useBLinkHelper, t as BLink_default } from "./BLink-Cz5YCsnv.mjs";
5
- import { t as BButton_default } from "./BButton-DPCH-g3G.mjs";
5
+ import { t as BButton_default } from "./BButton-BRvIFnRm.mjs";
6
6
  import { t as BCloseButton_default } from "./BCloseButton-CjgbR1Ec.mjs";
7
- import { t as BProgress_default } from "./BProgress-D0yfZ2Ze.mjs";
8
- import { n as useCountdown, t as useCountdownHover } from "./useCountdownHover-DqREghQi.mjs";
7
+ import { t as BProgress_default } from "./BProgress-BIqo6vLh.mjs";
8
+ import { n as useCountdown, t as useCountdownHover } from "./useCountdownHover-t9O7DHoK.mjs";
9
9
  import { Fragment, Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, defineComponent, guardReactiveProps, mergeModels, mergeProps, normalizeClass, normalizeProps, openBlock, renderSlot, resolveDynamicComponent, toDisplayString, unref, useModel, useSlots, useTemplateRef, vShow, watch, watchEffect, withCtx, withDirectives, withModifiers } from "vue";
10
10
  //#region src/components/BAlert/BAlert.vue?vue&type=script&setup=true&lang.ts
11
11
  var _hoisted_1 = [
@@ -289,4 +289,4 @@ var BAlert_default = /* @__PURE__ */ defineComponent({
289
289
  //#endregion
290
290
  export { BAlert_default as t };
291
291
 
292
- //# sourceMappingURL=BAlert-CuWkyQoY.mjs.map
292
+ //# sourceMappingURL=BAlert-Qiyqq4rE.mjs.map