buefy 3.0.4 → 3.0.6

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 (249) hide show
  1. package/dist/buefy.d.ts +257 -136
  2. package/dist/buefy.esm.js +212 -48
  3. package/dist/buefy.esm.min.js +2 -2
  4. package/dist/buefy.js +212 -46
  5. package/dist/buefy.min.js +2 -2
  6. package/dist/cjs/{Autocomplete-DEUs3z7g.js → Autocomplete-b0JUESTO.js} +3 -3
  7. package/dist/cjs/{Button-Cq7yqI8p.js → Button-Dw6VG6n7.js} +2 -2
  8. package/dist/cjs/{Checkbox-GPzAMQqM.js → Checkbox-cujzPKDl.js} +31 -3
  9. package/dist/cjs/{CompatFallthroughMixin-hhK0Gkhr.js → CompatFallthroughMixin-DI5L88ey.js} +1 -1
  10. package/dist/cjs/{Datepicker-B-9ReBe6.js → Datepicker-DVB975q3.js} +9 -9
  11. package/dist/cjs/{Dropdown-DtpKU9qf.js → Dropdown-CFh_lLvm.js} +2 -1
  12. package/dist/cjs/{DropdownItem-IMOKyRGV.js → DropdownItem-D2Ky1QIH.js} +1 -1
  13. package/dist/cjs/{Field-19ZCJFF8.js → Field-Dy73xhhY.js} +1 -1
  14. package/dist/cjs/{FormElementMixin-DavX4iOv.js → FormElementMixin-17PQ7TPR.js} +1 -1
  15. package/dist/cjs/{Icon-lsDKE2wQ.js → Icon-DrFLI3Zg.js} +48 -6
  16. package/dist/cjs/{Image-CocPwU3n.js → Image-D4AGl_2Z.js} +1 -1
  17. package/dist/cjs/{Input-BcloGeZ3.js → Input-z4Vlmbj8.js} +4 -4
  18. package/dist/cjs/{Modal-D1aZUehE.js → Modal-CVyLPawO.js} +1 -1
  19. package/dist/cjs/{NoticeMixin--3RjH43z.js → NoticeMixin-BlwAiMRV.js} +1 -1
  20. package/dist/cjs/{Pagination-D1MVdiLp.js → Pagination-54NHaQvi.js} +2 -2
  21. package/dist/cjs/{Progress-DT9Qc8Id.js → Progress-BlXLJ3zb.js} +1 -1
  22. package/dist/cjs/{Select-DayPKwCY.js → Select-DRXaEjlP.js} +3 -3
  23. package/dist/cjs/{TabbedChildMixin-B3JUUwcf.js → TabbedChildMixin-BFHsIyg6.js} +1 -1
  24. package/dist/cjs/{Tag-BprnwJJ1.js → Tag-BdL2uH8x.js} +1 -1
  25. package/dist/cjs/{Timepicker-CDZ3V-2J.js → Timepicker-ujQPxzDF.js} +6 -6
  26. package/dist/cjs/{TimepickerMixin-C9WVvcUL.js → TimepickerMixin-C9OA8jWF.js} +3 -3
  27. package/dist/cjs/{Tooltip-Cgighv0j.js → Tooltip-j_3eF7QD.js} +1 -1
  28. package/dist/cjs/autocomplete.js +7 -6
  29. package/dist/cjs/breadcrumb.js +2 -2
  30. package/dist/cjs/button.js +4 -3
  31. package/dist/cjs/carousel.js +5 -4
  32. package/dist/cjs/checkbox.js +3 -1
  33. package/dist/cjs/clockpicker.js +8 -7
  34. package/dist/cjs/colorpicker.js +12 -11
  35. package/dist/cjs/{config-DR826Ki2.js → config-CXSF5Vky.js} +2 -1
  36. package/dist/cjs/config.js +1 -1
  37. package/dist/cjs/datepicker.js +11 -10
  38. package/dist/cjs/datetimepicker.js +13 -12
  39. package/dist/cjs/dialog.js +5 -4
  40. package/dist/cjs/dropdown.js +3 -3
  41. package/dist/cjs/field.js +2 -2
  42. package/dist/cjs/icon.js +5 -2
  43. package/dist/cjs/iconAliases-DoayKo0q.js +100 -0
  44. package/dist/cjs/image.js +2 -2
  45. package/dist/cjs/{index-SLOXD6k3.js → index-N35FRTpu.js} +9 -9
  46. package/dist/cjs/index.js +27 -24
  47. package/dist/cjs/input.js +6 -5
  48. package/dist/cjs/menu.js +4 -3
  49. package/dist/cjs/message.js +4 -3
  50. package/dist/cjs/modal.js +2 -2
  51. package/dist/cjs/navbar.js +2 -2
  52. package/dist/cjs/notification.js +5 -4
  53. package/dist/cjs/numberinput.js +6 -5
  54. package/dist/cjs/pagination.js +4 -3
  55. package/dist/cjs/progress.js +2 -2
  56. package/dist/cjs/rate.js +3 -2
  57. package/dist/cjs/select.js +6 -5
  58. package/dist/cjs/sidebar.js +1 -1
  59. package/dist/cjs/slider.js +3 -3
  60. package/dist/cjs/snackbar.js +2 -2
  61. package/dist/cjs/steps.js +4 -3
  62. package/dist/cjs/switch.js +1 -1
  63. package/dist/cjs/table.js +9 -8
  64. package/dist/cjs/tabs.js +4 -3
  65. package/dist/cjs/tag.js +4 -3
  66. package/dist/cjs/taginput.js +8 -7
  67. package/dist/cjs/timepicker.js +12 -11
  68. package/dist/cjs/toast.js +2 -2
  69. package/dist/cjs/tooltip.js +2 -2
  70. package/dist/cjs/upload.js +3 -3
  71. package/dist/components/autocomplete/index.js +122 -6
  72. package/dist/components/autocomplete/index.min.js +2 -2
  73. package/dist/components/breadcrumb/index.js +1 -1
  74. package/dist/components/breadcrumb/index.min.js +1 -1
  75. package/dist/components/button/index.js +122 -6
  76. package/dist/components/button/index.min.js +2 -2
  77. package/dist/components/carousel/index.js +123 -7
  78. package/dist/components/carousel/index.min.js +2 -2
  79. package/dist/components/checkbox/index.js +106 -4
  80. package/dist/components/checkbox/index.min.js +2 -2
  81. package/dist/components/clockpicker/index.js +127 -10
  82. package/dist/components/clockpicker/index.min.js +2 -2
  83. package/dist/components/collapse/index.js +1 -1
  84. package/dist/components/collapse/index.min.js +1 -1
  85. package/dist/components/colorpicker/index.js +128 -11
  86. package/dist/components/colorpicker/index.min.js +2 -2
  87. package/dist/components/datepicker/index.js +135 -18
  88. package/dist/components/datepicker/index.min.js +2 -2
  89. package/dist/components/datetimepicker/index.js +127 -10
  90. package/dist/components/datetimepicker/index.min.js +2 -2
  91. package/dist/components/dialog/index.js +122 -6
  92. package/dist/components/dialog/index.min.js +2 -2
  93. package/dist/components/dropdown/index.js +2 -1
  94. package/dist/components/dropdown/index.min.js +2 -2
  95. package/dist/components/field/index.js +1 -1
  96. package/dist/components/field/index.min.js +1 -1
  97. package/dist/components/icon/index.js +124 -6
  98. package/dist/components/icon/index.min.js +2 -2
  99. package/dist/components/image/index.js +1 -1
  100. package/dist/components/image/index.min.js +1 -1
  101. package/dist/components/input/index.js +122 -6
  102. package/dist/components/input/index.min.js +2 -2
  103. package/dist/components/loading/index.js +1 -1
  104. package/dist/components/loading/index.min.js +1 -1
  105. package/dist/components/menu/index.js +124 -8
  106. package/dist/components/menu/index.min.js +2 -2
  107. package/dist/components/message/index.js +122 -6
  108. package/dist/components/message/index.min.js +2 -2
  109. package/dist/components/modal/index.js +1 -1
  110. package/dist/components/modal/index.min.js +1 -1
  111. package/dist/components/navbar/index.js +1 -1
  112. package/dist/components/navbar/index.min.js +1 -1
  113. package/dist/components/notification/index.js +122 -6
  114. package/dist/components/notification/index.min.js +2 -2
  115. package/dist/components/numberinput/index.js +122 -6
  116. package/dist/components/numberinput/index.min.js +2 -2
  117. package/dist/components/pagination/index.js +122 -6
  118. package/dist/components/pagination/index.min.js +2 -2
  119. package/dist/components/progress/index.js +1 -1
  120. package/dist/components/progress/index.min.js +1 -1
  121. package/dist/components/radio/index.js +1 -1
  122. package/dist/components/radio/index.min.js +1 -1
  123. package/dist/components/rate/index.js +122 -6
  124. package/dist/components/rate/index.min.js +2 -2
  125. package/dist/components/select/index.js +122 -6
  126. package/dist/components/select/index.min.js +2 -2
  127. package/dist/components/sidebar/index.js +1 -1
  128. package/dist/components/sidebar/index.min.js +1 -1
  129. package/dist/components/skeleton/index.js +1 -1
  130. package/dist/components/skeleton/index.min.js +1 -1
  131. package/dist/components/slider/index.js +1 -1
  132. package/dist/components/slider/index.min.js +1 -1
  133. package/dist/components/snackbar/index.js +1 -1
  134. package/dist/components/snackbar/index.min.js +1 -1
  135. package/dist/components/steps/index.js +122 -6
  136. package/dist/components/steps/index.min.js +2 -2
  137. package/dist/components/switch/index.js +1 -1
  138. package/dist/components/switch/index.min.js +1 -1
  139. package/dist/components/table/index.js +156 -13
  140. package/dist/components/table/index.min.js +2 -2
  141. package/dist/components/tabs/index.js +122 -6
  142. package/dist/components/tabs/index.min.js +2 -2
  143. package/dist/components/tag/index.js +122 -6
  144. package/dist/components/tag/index.min.js +2 -2
  145. package/dist/components/taginput/index.js +122 -6
  146. package/dist/components/taginput/index.min.js +2 -2
  147. package/dist/components/timepicker/index.js +135 -18
  148. package/dist/components/timepicker/index.min.js +2 -2
  149. package/dist/components/toast/index.js +1 -1
  150. package/dist/components/toast/index.min.js +1 -1
  151. package/dist/components/tooltip/index.js +1 -1
  152. package/dist/components/tooltip/index.min.js +1 -1
  153. package/dist/components/upload/index.js +1 -1
  154. package/dist/components/upload/index.min.js +1 -1
  155. package/dist/css/buefy.css +21 -38
  156. package/dist/css/buefy.css.map +1 -1
  157. package/dist/css/buefy.min.css +1 -1
  158. package/dist/css/versions/buefy-no-reset.css +21 -38
  159. package/dist/css/versions/buefy-no-reset.css.map +1 -1
  160. package/dist/css/versions/buefy-no-reset.min.css +1 -1
  161. package/dist/css/versions/buefy-standalone.css +21 -38
  162. package/dist/css/versions/buefy-standalone.css.map +1 -1
  163. package/dist/css/versions/buefy-standalone.min.css +1 -1
  164. package/dist/esm/{Autocomplete-CZ8DmXsB.js → Autocomplete-BsBIH0Mj.js} +4 -4
  165. package/dist/esm/{Button-DyUYShTZ.js → Button-BTP__-p5.js} +3 -3
  166. package/dist/esm/{Checkbox-KUMz0sfA.js → Checkbox-C6pO3IzG.js} +32 -4
  167. package/dist/esm/{CompatFallthroughMixin-C8LPuwDr.js → CompatFallthroughMixin-LfFRwwlz.js} +1 -1
  168. package/dist/esm/{Datepicker-Bl8Wfdkn.js → Datepicker-CrVKrZBF.js} +10 -10
  169. package/dist/esm/{Dropdown-CGTYVyoL.js → Dropdown-GHauDDcD.js} +3 -2
  170. package/dist/esm/{DropdownItem-Cn3nM0A3.js → DropdownItem-By3tSZk2.js} +2 -2
  171. package/dist/esm/{Field-B7bX_uUg.js → Field-CU8ZBgMh.js} +2 -2
  172. package/dist/esm/{FormElementMixin-Dd_wkBN5.js → FormElementMixin-CKI7b4I4.js} +1 -1
  173. package/dist/esm/{Icon-DPyGDeRK.js → Icon-pQAdaqZb.js} +49 -7
  174. package/dist/esm/{Image-DhX-4hlV.js → Image-COmzg-EK.js} +2 -2
  175. package/dist/esm/{Input-C4L520az.js → Input-CErQ1Jyw.js} +5 -5
  176. package/dist/esm/{Loading-tuQoo6TU.js → Loading-BSqhV1Gi.js} +1 -1
  177. package/dist/esm/{Modal-EiR_KNGZ.js → Modal-C13NJijf.js} +2 -2
  178. package/dist/esm/{NoticeMixin-ByNlva3T.js → NoticeMixin-TQEF1Kx6.js} +1 -1
  179. package/dist/esm/{Pagination-B-LAJQay.js → Pagination-DvgzxH87.js} +3 -3
  180. package/dist/esm/{Progress-BPGTVZgr.js → Progress-AeKn1Ttq.js} +2 -2
  181. package/dist/esm/{Select-bl4qUzij.js → Select-CbkuxvSQ.js} +4 -4
  182. package/dist/esm/{TabbedChildMixin-C4i6WP9j.js → TabbedChildMixin-Bdu5A4iY.js} +1 -1
  183. package/dist/esm/{Tag-jS5Bcj6N.js → Tag-Dx_-Tavp.js} +2 -2
  184. package/dist/esm/{Timepicker-DnkqnOBT.js → Timepicker-0ojuPkqd.js} +7 -7
  185. package/dist/esm/{TimepickerMixin-Bikh6_Fg.js → TimepickerMixin-oNahYGFZ.js} +3 -3
  186. package/dist/esm/{Tooltip-CtDSXAqa.js → Tooltip-BnzQFdnQ.js} +2 -2
  187. package/dist/esm/autocomplete.js +7 -6
  188. package/dist/esm/breadcrumb.js +3 -3
  189. package/dist/esm/button.js +4 -3
  190. package/dist/esm/carousel.js +6 -5
  191. package/dist/esm/checkbox.js +4 -2
  192. package/dist/esm/clockpicker.js +9 -8
  193. package/dist/esm/colorpicker.js +12 -11
  194. package/dist/esm/{config-CKuo-p6e.js → config-f4Dyy8TN.js} +2 -1
  195. package/dist/esm/config.js +1 -1
  196. package/dist/esm/datepicker.js +11 -10
  197. package/dist/esm/datetimepicker.js +14 -13
  198. package/dist/esm/dialog.js +6 -5
  199. package/dist/esm/dropdown.js +3 -3
  200. package/dist/esm/field.js +2 -2
  201. package/dist/esm/icon.js +3 -2
  202. package/dist/esm/iconAliases-B-CydxNj.js +97 -0
  203. package/dist/esm/image.js +2 -2
  204. package/dist/esm/{index-BE58-KfV.js → index-BYVep8cv.js} +11 -11
  205. package/dist/esm/index.js +27 -26
  206. package/dist/esm/input.js +6 -5
  207. package/dist/esm/loading.js +1 -1
  208. package/dist/esm/menu.js +5 -4
  209. package/dist/esm/message.js +5 -4
  210. package/dist/esm/modal.js +2 -2
  211. package/dist/esm/navbar.js +3 -3
  212. package/dist/esm/notification.js +6 -5
  213. package/dist/esm/numberinput.js +7 -6
  214. package/dist/esm/pagination.js +4 -3
  215. package/dist/esm/progress.js +3 -3
  216. package/dist/esm/radio.js +1 -1
  217. package/dist/esm/rate.js +4 -3
  218. package/dist/esm/select.js +6 -5
  219. package/dist/esm/sidebar.js +2 -2
  220. package/dist/esm/slider.js +4 -4
  221. package/dist/esm/snackbar.js +3 -3
  222. package/dist/esm/steps.js +5 -4
  223. package/dist/esm/switch.js +2 -2
  224. package/dist/esm/table.js +11 -10
  225. package/dist/esm/tabs.js +5 -4
  226. package/dist/esm/tag.js +5 -4
  227. package/dist/esm/taginput.js +9 -8
  228. package/dist/esm/timepicker.js +12 -11
  229. package/dist/esm/toast.js +3 -3
  230. package/dist/esm/tooltip.js +2 -2
  231. package/dist/esm/upload.js +4 -4
  232. package/dist/tsdoc-metadata.json +1 -1
  233. package/package.json +2 -2
  234. package/src/components/carousel/CarouselList.vue +1 -1
  235. package/src/components/carousel/__snapshots__/CarouselList.spec.ts.snap +1 -1
  236. package/src/components/checkbox/Checkbox.spec.ts +66 -2
  237. package/src/components/checkbox/Checkbox.vue +25 -1
  238. package/src/components/checkbox/__snapshots__/Checkbox.spec.ts.snap +1 -1
  239. package/src/components/datepicker/__snapshots__/Datepicker.spec.ts.snap +2 -2
  240. package/src/components/dropdown/Dropdown.spec.ts +15 -0
  241. package/src/components/dropdown/Dropdown.vue +5 -0
  242. package/src/components/icon/Icon.spec.ts +67 -0
  243. package/src/components/icon/Icon.vue +40 -5
  244. package/src/components/icon/__snapshots__/Icon.spec.ts.snap +1 -1
  245. package/src/components/icon/index.ts +10 -0
  246. package/src/components/table/__snapshots__/TableMobileSort.spec.ts.snap +1 -1
  247. package/src/scss/components/_checkbox.scss +13 -16
  248. package/src/utils/config.ts +104 -2
  249. package/src/utils/iconAliases.ts +86 -0
package/dist/esm/table.js CHANGED
@@ -1,18 +1,19 @@
1
- import { defineComponent, resolveComponent, createElementBlock, openBlock, createElementVNode, createBlock, withCtx, Fragment, renderList, createTextVNode, createCommentVNode, toDisplayString, withDirectives, vShow, createVNode, normalizeClass, renderSlot, h, toHandlerKey, camelize, toRaw, mergeProps, normalizeStyle, withKeys, withModifiers, Transition } from 'vue';
1
+ import { defineComponent, resolveComponent, openBlock, createElementBlock, createElementVNode, createBlock, withCtx, Fragment, renderList, createTextVNode, toDisplayString, createCommentVNode, withDirectives, vShow, createVNode, normalizeClass, renderSlot, h, toHandlerKey, camelize, toRaw, mergeProps, normalizeStyle, withKeys, withModifiers, Transition } from 'vue';
2
2
  import { getValueByPath, toCssWidth, removeElement, translateTouchAsDragEvent, isFragment, escapeRegExpChars, removeDiacriticsFromString, indexOf, multiColumnSort, isNil, createAbsoluteElement } from './helpers.js';
3
- import { B as BPagination, d as debounce } from './Pagination-B-LAJQay.js';
4
- import { C as CompatFallthroughMixin } from './CompatFallthroughMixin-C8LPuwDr.js';
5
- import { B as BCheckbox } from './Checkbox-KUMz0sfA.js';
6
- import { B as BIcon } from './Icon-DPyGDeRK.js';
7
- import { B as BInput } from './Input-C4L520az.js';
8
- import { B as BLoading } from './Loading-tuQoo6TU.js';
3
+ import { B as BPagination, d as debounce } from './Pagination-DvgzxH87.js';
4
+ import { C as CompatFallthroughMixin } from './CompatFallthroughMixin-LfFRwwlz.js';
5
+ import { B as BCheckbox } from './Checkbox-C6pO3IzG.js';
6
+ import { B as BIcon } from './Icon-pQAdaqZb.js';
7
+ import { B as BInput } from './Input-CErQ1Jyw.js';
8
+ import { B as BLoading } from './Loading-BSqhV1Gi.js';
9
9
  import { B as BSlotComponent } from './SlotComponent-BwNpVnfH.js';
10
- import { B as BSelect } from './Select-bl4qUzij.js';
10
+ import { B as BSelect } from './Select-CbkuxvSQ.js';
11
11
  import { _ as _export_sfc } from './_plugin-vue_export-helper-OJRSZE6i.js';
12
12
  import { a as registerComponent } from './plugins-1tLsuIZF.js';
13
- import './config-CKuo-p6e.js';
13
+ import './config-f4Dyy8TN.js';
14
14
  import './CheckRadioMixin-DSD_rjC8.js';
15
- import './FormElementMixin-Dd_wkBN5.js';
15
+ import './iconAliases-B-CydxNj.js';
16
+ import './FormElementMixin-CKI7b4I4.js';
16
17
  import './ssr-C7yEpGLm.js';
17
18
 
18
19
  var _sfc_main$3 = defineComponent({
package/dist/esm/tabs.js CHANGED
@@ -1,11 +1,12 @@
1
- import { defineComponent, resolveComponent, createElementBlock, openBlock, normalizeClass, createElementVNode, renderSlot, Fragment, renderList, withDirectives, createBlock, createCommentVNode, toDisplayString, vShow } from 'vue';
2
- import { B as BIcon } from './Icon-DPyGDeRK.js';
3
- import { c as config } from './config-CKuo-p6e.js';
4
- import { T as TabbedMixin, a as TabbedChildMixin } from './TabbedChildMixin-C4i6WP9j.js';
1
+ import { defineComponent, resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, renderSlot, Fragment, renderList, withDirectives, createBlock, createCommentVNode, toDisplayString, vShow } from 'vue';
2
+ import { B as BIcon } from './Icon-pQAdaqZb.js';
3
+ import { c as config } from './config-f4Dyy8TN.js';
4
+ import { T as TabbedMixin, a as TabbedChildMixin } from './TabbedChildMixin-Bdu5A4iY.js';
5
5
  import { B as BSlotComponent } from './SlotComponent-BwNpVnfH.js';
6
6
  import { _ as _export_sfc } from './_plugin-vue_export-helper-OJRSZE6i.js';
7
7
  import { a as registerComponent } from './plugins-1tLsuIZF.js';
8
8
  import './helpers.js';
9
+ import './iconAliases-B-CydxNj.js';
9
10
  import './InjectedChildMixin-D2K-FwuO.js';
10
11
 
11
12
  var _sfc_main$1 = defineComponent({
package/dist/esm/tag.js CHANGED
@@ -1,10 +1,11 @@
1
- import { B as BTag } from './Tag-jS5Bcj6N.js';
2
- import { defineComponent, createElementBlock, openBlock, normalizeClass, renderSlot } from 'vue';
1
+ import { B as BTag } from './Tag-Dx_-Tavp.js';
2
+ import { defineComponent, openBlock, createElementBlock, normalizeClass, renderSlot } from 'vue';
3
3
  import { _ as _export_sfc } from './_plugin-vue_export-helper-OJRSZE6i.js';
4
4
  import { a as registerComponent } from './plugins-1tLsuIZF.js';
5
- import './Icon-DPyGDeRK.js';
6
- import './config-CKuo-p6e.js';
5
+ import './Icon-pQAdaqZb.js';
6
+ import './config-f4Dyy8TN.js';
7
7
  import './helpers.js';
8
+ import './iconAliases-B-CydxNj.js';
8
9
 
9
10
  var _sfc_main = defineComponent({
10
11
  name: "BTaglist",
@@ -1,14 +1,15 @@
1
- import { defineComponent, resolveComponent, createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, normalizeClass, renderSlot, createBlock, Fragment, renderList, withCtx, createTextVNode, toDisplayString, createSlots } from 'vue';
1
+ import { defineComponent, resolveComponent, openBlock, createElementBlock, mergeProps, createElementVNode, normalizeClass, renderSlot, Fragment, renderList, createBlock, withCtx, createTextVNode, toDisplayString, createSlots, createCommentVNode } from 'vue';
2
2
  import { getValueByPath } from './helpers.js';
3
- import { B as BTag } from './Tag-jS5Bcj6N.js';
4
- import { B as BAutocomplete } from './Autocomplete-CZ8DmXsB.js';
5
- import { c as config } from './config-CKuo-p6e.js';
6
- import { C as CompatFallthroughMixin } from './CompatFallthroughMixin-C8LPuwDr.js';
7
- import { F as FormElementMixin } from './FormElementMixin-Dd_wkBN5.js';
3
+ import { B as BTag } from './Tag-Dx_-Tavp.js';
4
+ import { B as BAutocomplete } from './Autocomplete-BsBIH0Mj.js';
5
+ import { c as config } from './config-f4Dyy8TN.js';
6
+ import { C as CompatFallthroughMixin } from './CompatFallthroughMixin-LfFRwwlz.js';
7
+ import { F as FormElementMixin } from './FormElementMixin-CKI7b4I4.js';
8
8
  import { _ as _export_sfc } from './_plugin-vue_export-helper-OJRSZE6i.js';
9
9
  import { a as registerComponent } from './plugins-1tLsuIZF.js';
10
- import './Icon-DPyGDeRK.js';
11
- import './Input-C4L520az.js';
10
+ import './Icon-pQAdaqZb.js';
11
+ import './iconAliases-B-CydxNj.js';
12
+ import './Input-CErQ1Jyw.js';
12
13
 
13
14
  var _sfc_main = defineComponent({
14
15
  name: "BTaginput",
@@ -1,19 +1,20 @@
1
- import { T as Timepicker } from './Timepicker-DnkqnOBT.js';
1
+ import { T as Timepicker } from './Timepicker-0ojuPkqd.js';
2
2
  import { a as registerComponent } from './plugins-1tLsuIZF.js';
3
3
  import 'vue';
4
- import './TimepickerMixin-Bikh6_Fg.js';
5
- import './CompatFallthroughMixin-C8LPuwDr.js';
6
- import './config-CKuo-p6e.js';
7
- import './FormElementMixin-Dd_wkBN5.js';
4
+ import './TimepickerMixin-oNahYGFZ.js';
5
+ import './CompatFallthroughMixin-LfFRwwlz.js';
6
+ import './config-f4Dyy8TN.js';
7
+ import './FormElementMixin-CKI7b4I4.js';
8
8
  import './helpers.js';
9
- import './Dropdown-CGTYVyoL.js';
9
+ import './Dropdown-GHauDDcD.js';
10
10
  import './trapFocus-KHP_kCNE.js';
11
11
  import './_plugin-vue_export-helper-OJRSZE6i.js';
12
- import './DropdownItem-Cn3nM0A3.js';
13
- import './Input-C4L520az.js';
14
- import './Icon-DPyGDeRK.js';
15
- import './Field-B7bX_uUg.js';
16
- import './Select-bl4qUzij.js';
12
+ import './DropdownItem-By3tSZk2.js';
13
+ import './Input-CErQ1Jyw.js';
14
+ import './Icon-pQAdaqZb.js';
15
+ import './iconAliases-B-CydxNj.js';
16
+ import './Field-CU8ZBgMh.js';
17
+ import './Select-CbkuxvSQ.js';
17
18
 
18
19
  const Plugin = {
19
20
  install(Vue) {
package/dist/esm/toast.js CHANGED
@@ -1,6 +1,6 @@
1
- import { defineComponent, createBlock, openBlock, Transition, withCtx, withDirectives, createElementVNode, normalizeClass, renderSlot, createElementBlock, Fragment, createCommentVNode, vShow, createApp, h, inject } from 'vue';
2
- import { c as config } from './config-CKuo-p6e.js';
3
- import { N as NoticeMixin } from './NoticeMixin-ByNlva3T.js';
1
+ import { defineComponent, openBlock, createBlock, Transition, withCtx, withDirectives, createElementVNode, normalizeClass, renderSlot, createElementBlock, Fragment, createCommentVNode, vShow, createApp, h, inject } from 'vue';
2
+ import { c as config } from './config-f4Dyy8TN.js';
3
+ import { N as NoticeMixin } from './NoticeMixin-TQEF1Kx6.js';
4
4
  import { _ as _export_sfc } from './_plugin-vue_export-helper-OJRSZE6i.js';
5
5
  import { getComponentFromVNode, copyAppContext } from './helpers.js';
6
6
  import { r as registerComponentProgrammatic } from './plugins-1tLsuIZF.js';
@@ -1,7 +1,7 @@
1
- import { T as Tooltip } from './Tooltip-CtDSXAqa.js';
1
+ import { T as Tooltip } from './Tooltip-BnzQFdnQ.js';
2
2
  import { a as registerComponent } from './plugins-1tLsuIZF.js';
3
3
  import 'vue';
4
- import './config-CKuo-p6e.js';
4
+ import './config-f4Dyy8TN.js';
5
5
  import './helpers.js';
6
6
  import './_plugin-vue_export-helper-OJRSZE6i.js';
7
7
 
@@ -1,10 +1,10 @@
1
- import { defineComponent, createElementBlock, openBlock, mergeProps, renderSlot, createElementVNode, withModifiers, normalizeClass } from 'vue';
2
- import { C as CompatFallthroughMixin } from './CompatFallthroughMixin-C8LPuwDr.js';
3
- import { F as FormElementMixin } from './FormElementMixin-Dd_wkBN5.js';
1
+ import { defineComponent, openBlock, createElementBlock, mergeProps, renderSlot, withModifiers, normalizeClass, createElementVNode } from 'vue';
2
+ import { C as CompatFallthroughMixin } from './CompatFallthroughMixin-LfFRwwlz.js';
3
+ import { F as FormElementMixin } from './FormElementMixin-CKI7b4I4.js';
4
4
  import { F as File } from './ssr-C7yEpGLm.js';
5
5
  import { _ as _export_sfc } from './_plugin-vue_export-helper-OJRSZE6i.js';
6
6
  import { a as registerComponent } from './plugins-1tLsuIZF.js';
7
- import './config-CKuo-p6e.js';
7
+ import './config-f4Dyy8TN.js';
8
8
 
9
9
  const Upload$1 = defineComponent({
10
10
  name: "BUpload",
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.52.8"
8
+ "packageVersion": "7.58.2"
9
9
  }
10
10
  ]
11
11
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "buefy",
3
- "version": "3.0.4",
3
+ "version": "3.0.6",
4
4
  "description": "Lightweight UI components for Vue.js (v3) based on Bulma",
5
5
  "keywords": [
6
6
  "vuejs",
@@ -68,7 +68,7 @@
68
68
  "@rollup/plugin-babel": "^6.0.4",
69
69
  "@rollup/plugin-commonjs": "^28.0.2",
70
70
  "@rollup/plugin-node-resolve": "^16.0.0",
71
- "@rollup/plugin-terser": "^0.4.4",
71
+ "@rollup/plugin-terser": "^1.0.0",
72
72
  "@testing-library/jest-dom": "^6.6.3",
73
73
  "@types/jsdom": "^21.1.7",
74
74
  "@vue/test-utils": "^2.4.6",
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div
3
- class="carousel-list"
3
+ class="carousel carousel-list"
4
4
  :class="{'has-shadow': scrollIndex > 0}"
5
5
  @mousedown.prevent="dragStart"
6
6
  @touchstart="dragStart"
@@ -1,7 +1,7 @@
1
1
  // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
2
 
3
3
  exports[`BCarouselList > render correctly 1`] = `
4
- "<div class="carousel-list">
4
+ "<div class="carousel carousel-list">
5
5
  <div class="carousel-slides" style="transform: translateX(0px);">
6
6
  <div class="carousel-slide is-active" style="width: 0px;">
7
7
  <b-image-stub src="https://picsum.photos/id/0/1230/500" lazy="true" responsive="true" srcsetformatter="[Function]" rounded="false" captionfirst="false" title="Slide 1" image="https://picsum.photos/id/0/1230/500"></b-image-stub>
@@ -20,7 +20,9 @@ describe('BCheckbox', () => {
20
20
  })
21
21
 
22
22
  it('has an input checkbox', () => {
23
- expect(wrapper.find('label input[type=checkbox]').exists()).toBeTruthy()
23
+ expect(
24
+ wrapper.find('label input[type=checkbox]').exists()
25
+ ).toBeTruthy()
24
26
  })
25
27
 
26
28
  it('emit input event with value when value change', async () => {
@@ -35,6 +37,68 @@ describe('BCheckbox', () => {
35
37
  (wrapper.vm.$refs.input as HTMLElement).focus = vi.fn()
36
38
  wrapper.vm.focus()
37
39
  await wrapper.vm.$nextTick()
38
- expect((wrapper.vm.$refs.input as HTMLElement).focus).toHaveBeenCalled()
40
+ expect(
41
+ (wrapper.vm.$refs.input as HTMLElement).focus
42
+ ).toHaveBeenCalled()
43
+ })
44
+
45
+ it('renders no SVG when unchecked', () => {
46
+ const w = shallowMount(BCheckbox)
47
+ expect(w.find('.check svg').exists()).toBe(false)
48
+ })
49
+
50
+ it('renders inline SVG checkmark when checked (boolean modelValue)', async () => {
51
+ const w = shallowMount(BCheckbox, {
52
+ props: { modelValue: true }
53
+ })
54
+ const svg = w.find('.check svg')
55
+ expect(svg.exists()).toBe(true)
56
+ const path = svg.find('path')
57
+ expect(path.attributes('fill')).toBe('currentColor')
58
+ expect(path.attributes('d')).toBeTruthy()
59
+ // Uses the 1x1 normalized viewBox for the checkmark
60
+ expect(svg.attributes('viewBox')).toBe('0 0 1 1')
61
+ })
62
+
63
+ it('renders inline SVG checkmark when checked (array modelValue)', async () => {
64
+ const w = shallowMount(BCheckbox, {
65
+ props: { modelValue: ['a', 'b'], nativeValue: 'a' }
66
+ })
67
+ expect(w.find('.check svg').exists()).toBe(true)
68
+ })
69
+
70
+ it('renders no SVG when value not in array', () => {
71
+ const w = shallowMount(BCheckbox, {
72
+ props: { modelValue: ['b'], nativeValue: 'a' }
73
+ })
74
+ expect(w.find('.check svg').exists()).toBe(false)
75
+ })
76
+
77
+ it('renders indeterminate SVG path when indeterminate prop is true', () => {
78
+ const w = shallowMount(BCheckbox, {
79
+ props: { indeterminate: true }
80
+ })
81
+ const svg = w.find('.check svg')
82
+ expect(svg.exists()).toBe(true)
83
+ // Indeterminate and checkmark paths are different
84
+ const indeterminatePath = w.vm.checkmarkAlias.path
85
+ expect(indeterminatePath).toContain('0.15') // rect-as-path signature
86
+ })
87
+
88
+ it('checkmark uses different path for indeterminate vs checked', () => {
89
+ const checked = shallowMount(BCheckbox, { props: { modelValue: true } })
90
+ const indeterminate = shallowMount(BCheckbox, { props: { indeterminate: true } })
91
+ expect(checked.vm.checkmarkAlias.path).not.toBe(indeterminate.vm.checkmarkAlias.path)
92
+ })
93
+
94
+ it('SVG color is controlled via currentColor (not embedded in SVG data)', () => {
95
+ // Regression: previously _checkbox.scss embedded SVG colors as data-URIs;
96
+ // color could not be changed at runtime. Now SVG uses fill="currentColor"
97
+ // so the CSS `color` property on the parent drives the icon color.
98
+ const w = shallowMount(BCheckbox, { props: { modelValue: true } })
99
+ const path = w.find('.check svg path')
100
+ expect(path.attributes('fill')).toBe('currentColor')
101
+ // No inline fill color embedded in the path data
102
+ expect(path.attributes('d')).not.toContain('fill:')
39
103
  })
40
104
  })
@@ -27,7 +27,16 @@
27
27
  :false-value="falseValue"
28
28
  :aria-labelledby="ariaLabelledby"
29
29
  >
30
- <span class="check" :class="type" />
30
+ <span class="check" :class="type">
31
+ <svg
32
+ v-if="isChecked || indeterminate"
33
+ :viewBox="checkmarkAlias.viewBox || '0 0 1 1'"
34
+ xmlns="http://www.w3.org/2000/svg"
35
+ aria-hidden="true"
36
+ >
37
+ <path fill="currentColor" :d="checkmarkAlias.path" />
38
+ </svg>
39
+ </span>
31
40
  <span :id="ariaLabelledby" class="control-label"><slot /></span>
32
41
  </label>
33
42
  </template>
@@ -35,6 +44,8 @@
35
44
  <script lang="ts">
36
45
  import { defineComponent } from 'vue'
37
46
  import CheckRadioMixin from '../../utils/CheckRadioMixin'
47
+ import { resolveAlias } from '../../utils/iconAliases'
48
+ import type { SvgIconAlias } from '../../utils/config'
38
49
 
39
50
  export default defineComponent({
40
51
  name: 'BCheckbox',
@@ -58,6 +69,19 @@ export default defineComponent({
58
69
  type: String,
59
70
  default: ''
60
71
  }
72
+ },
73
+ computed: {
74
+ isChecked(): boolean {
75
+ const val = this.computedValue
76
+ if (Array.isArray(val)) {
77
+ return val.includes(this.nativeValue)
78
+ }
79
+ return val === this.trueValue
80
+ },
81
+ checkmarkAlias(): SvgIconAlias {
82
+ const key = this.indeterminate ? 'checkboxIndeterminate' : 'checkboxOn'
83
+ return resolveAlias(key) as SvgIconAlias
84
+ }
61
85
  }
62
86
  })
63
87
  </script>
@@ -4,6 +4,6 @@ exports[`BCheckbox > render correctly 1`] = `
4
4
  "<label class="b-checkbox checkbox">
5
5
  <!-- Checkbox needs to listen for a space event instead of a just a
6
6
  click and enter event so that that using the keyboard spacebar will also
7
- trigger the checkbox change in the b-table --><input id="" type="checkbox" autocomplete="on" true-value="true" false-value="false" value="false"><span class="check"></span><span class="control-label"></span>
7
+ trigger the checkbox change in the b-table --><input id="" type="checkbox" autocomplete="on" true-value="true" false-value="false" value="false"><span class="check"><!--v-if--></span><span class="control-label"></span>
8
8
  </label>"
9
9
  `;
@@ -16,9 +16,9 @@ exports[`BDatepicker > render correctly 1`] = `
16
16
  <div>
17
17
  <header class="datepicker-header">
18
18
  <div class="pagination field is-centered"><a class="pagination-previous" role="button" href="#">
19
- <b-icon-stub icon="chevron-left" type="is-primary is-clickable" both="true"></b-icon-stub>
19
+ <b-icon-stub type="is-primary is-clickable" icon="chevron-left" both="true"></b-icon-stub>
20
20
  </a><a class="pagination-next" role="button" href="#">
21
- <b-icon-stub icon="chevron-right" type="is-primary is-clickable" both="true"></b-icon-stub>
21
+ <b-icon-stub type="is-primary is-clickable" icon="chevron-right" both="true"></b-icon-stub>
22
22
  </a>
23
23
  <div class="pagination-list">
24
24
  <div class="field">
@@ -226,4 +226,19 @@ describe('BDropdown', () => {
226
226
  expect(document.removeEventListener).toBeCalledWith('click', expect.any(Function))
227
227
  expect(document.removeEventListener).toBeCalledWith('keyup', expect.any(Function))
228
228
  })
229
+
230
+ it('removes is-clipped-touch on unmount while dropdown is open', async () => {
231
+ // Simulate dropdown open in mobile-modal mode (mobileModal defaults to
232
+ // true) so the isActive watcher calls handleScroll(), which adds
233
+ // is-clipped-touch to the html element. Then destroy the component
234
+ // (e.g. route navigation) without closing it first. The class must be
235
+ // removed so that scrolling is not permanently locked.
236
+ await wrapper.setData({ isActive: true })
237
+ // The isActive watcher triggers handleScroll() which adds the class.
238
+ expect(document.documentElement.classList.contains('is-clipped-touch')).toBe(true)
239
+
240
+ wrapper.unmount()
241
+
242
+ expect(document.documentElement.classList.contains('is-clipped-touch')).toBe(false)
243
+ })
229
244
  })
@@ -480,6 +480,11 @@ export default defineComponent({
480
480
  if (typeof window !== 'undefined') {
481
481
  document.removeEventListener('click', this.clickedOutside)
482
482
  document.removeEventListener('keyup', this.keyPress)
483
+ // Clean up scroll lock in case the component is destroyed while the
484
+ // dropdown is open (e.g., route navigation in a SPA). Without this,
485
+ // is-clipped-touch persists on the html element and permanently
486
+ // prevents scrolling on desktop browsers at mobile viewport widths.
487
+ document.documentElement.classList.remove('is-clipped-touch')
483
488
  }
484
489
  if (this.appendToBody) {
485
490
  removeElement(this.$data._bodyEl!)
@@ -1,6 +1,8 @@
1
1
  import { shallowMount } from '@vue/test-utils'
2
2
  import { describe, expect, it } from 'vitest'
3
3
  import BIcon from '@components/icon/Icon.vue'
4
+ import type { ComponentIconAlias } from '@utils/config'
5
+ import config from '@utils/config'
4
6
 
5
7
  describe('BIcon', () => {
6
8
  it('render correctly', () => {
@@ -139,4 +141,69 @@ describe('BIcon', () => {
139
141
 
140
142
  expect(wrapper.find('i').classes()).toContain('foo-bar')
141
143
  })
144
+
145
+ it('renders inline SVG when alias resolves to a SvgIconAlias', () => {
146
+ const wrapper = shallowMount(BIcon, {
147
+ props: { alias: 'chevronLeft' }
148
+ })
149
+
150
+ const svg = wrapper.find('svg')
151
+ expect(svg.exists()).toBe(true)
152
+ expect(svg.attributes('aria-hidden')).toBe('true')
153
+ const path = svg.find('path')
154
+ expect(path.exists()).toBe(true)
155
+ expect(path.attributes('fill')).toBe('currentColor')
156
+ expect(path.attributes('d')).toBeTruthy()
157
+ })
158
+
159
+ it('renders viewBox from the alias on the SVG element', () => {
160
+ const wrapper = shallowMount(BIcon, {
161
+ props: { alias: 'checkboxOn' }
162
+ })
163
+
164
+ expect(wrapper.find('svg').attributes('viewBox')).toBe('0 0 1 1')
165
+ })
166
+
167
+ it('falls back to 0 0 24 24 viewBox when alias has none', () => {
168
+ const wrapper = shallowMount(BIcon, {
169
+ props: { alias: 'chevronLeft' }
170
+ })
171
+
172
+ expect(wrapper.find('svg').attributes('viewBox')).toBe('0 0 24 24')
173
+ })
174
+
175
+ it('renders a component alias (ComponentIconAlias)', () => {
176
+ const FakeIcon = { name: 'FakeIcon', template: '<span />' }
177
+ const alias: ComponentIconAlias = {
178
+ type: 'component',
179
+ component: FakeIcon,
180
+ icon: ['fas', 'check']
181
+ }
182
+
183
+ const original = config.iconAliases
184
+ config.iconAliases = { customAlias: alias }
185
+
186
+ const wrapper = shallowMount(BIcon, {
187
+ props: { alias: 'customAlias' }
188
+ })
189
+
190
+ const fakeIcon = wrapper.findComponent(FakeIcon)
191
+ expect(fakeIcon.exists()).toBe(true)
192
+
193
+ config.iconAliases = original
194
+ })
195
+
196
+ it('alias prop takes precedence over icon/pack when both are provided', () => {
197
+ const wrapper = shallowMount(BIcon, {
198
+ props: {
199
+ alias: 'chevronLeft',
200
+ icon: 'eye',
201
+ pack: 'mdi'
202
+ }
203
+ })
204
+
205
+ // Should render SVG (from alias), not <i> (from pack)
206
+ expect(wrapper.find('svg').exists()).toBe(true)
207
+ expect(wrapper.find('i').exists()).toBe(false)
208
+ })
142
209
  })
@@ -1,10 +1,24 @@
1
1
  <template>
2
2
  <span class="icon" :class="[newType, size]">
3
+ <svg
4
+ v-if="isSvgAlias"
5
+ :viewBox="resolvedAliasSvg.viewBox || '0 0 24 24'"
6
+ xmlns="http://www.w3.org/2000/svg"
7
+ :class="customClass"
8
+ aria-hidden="true"
9
+ >
10
+ <path fill="currentColor" :d="resolvedAliasSvg.path" />
11
+ </svg>
12
+ <component
13
+ v-else-if="isComponentAlias"
14
+ :is="resolvedAliasComponent.component"
15
+ :icon="resolvedAliasComponent.icon"
16
+ :class="customClass"
17
+ />
3
18
  <i
4
- v-if="!useIconComponent"
19
+ v-else-if="!useIconComponent"
5
20
  :class="[newPack, newIcon, newCustomSize, customClass]"
6
21
  />
7
-
8
22
  <component
9
23
  v-else
10
24
  :is="useIconComponent"
@@ -18,8 +32,9 @@
18
32
  <script lang="ts">
19
33
  import { defineComponent } from 'vue'
20
34
 
21
- import config from '../../utils/config'
35
+ import config, { type SvgIconAlias, type ComponentIconAlias } from '../../utils/config'
22
36
  import getIcons, { type InternalIconPack } from '../../utils/icons'
37
+ import { resolveAlias } from '../../utils/iconAliases'
23
38
 
24
39
  export default defineComponent({
25
40
  name: 'BIcon',
@@ -29,14 +44,34 @@ export default defineComponent({
29
44
  pack: String,
30
45
  icon: {
31
46
  type: String,
32
- required: true
47
+ required: false,
48
+ default: undefined
33
49
  },
50
+ /** Key into IconAliases (e.g. "chevronLeft"). Takes precedence over icon/pack. */
51
+ alias: String,
34
52
  size: String,
35
53
  customSize: String,
36
54
  customClass: String,
37
55
  both: Boolean // This is used internally to show both MDI and FA icon
38
56
  },
39
57
  computed: {
58
+ resolvedAlias() {
59
+ if (!this.alias) return null
60
+ return resolveAlias(this.alias) ?? null
61
+ },
62
+ isSvgAlias(): boolean {
63
+ return this.resolvedAlias?.type === 'svg'
64
+ },
65
+ isComponentAlias(): boolean {
66
+ return this.resolvedAlias?.type === 'component'
67
+ },
68
+ // Typed accessors used in the template
69
+ resolvedAliasSvg(): SvgIconAlias {
70
+ return this.resolvedAlias as SvgIconAlias
71
+ },
72
+ resolvedAliasComponent(): ComponentIconAlias {
73
+ return this.resolvedAlias as ComponentIconAlias
74
+ },
40
75
  iconConfig() {
41
76
  const allIcons = getIcons()
42
77
  return allIcons[this.newPack]
@@ -53,7 +88,7 @@ export default defineComponent({
53
88
  * internal icons are always MDI.
54
89
  */
55
90
  newIcon() {
56
- return `${this.iconPrefix}${this.getEquivalentIconOf(this.icon)}`
91
+ return `${this.iconPrefix}${this.getEquivalentIconOf(this.icon ?? '')}`
57
92
  },
58
93
  newPack() {
59
94
  return this.pack || config.defaultIconPack
@@ -1,3 +1,3 @@
1
1
  // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
2
 
3
- exports[`BIcon > render correctly 1`] = `"<span class="icon"><i class="mdi mdi-undefined mdi-24px"></i></span>"`;
3
+ exports[`BIcon > render correctly 1`] = `"<span class="icon"><i class="mdi mdi- mdi-24px"></i></span>"`;
@@ -15,3 +15,13 @@ export default Plugin
15
15
  export {
16
16
  Icon as BIcon
17
17
  }
18
+
19
+ export type {
20
+ IconAlias,
21
+ SvgIconAlias,
22
+ ComponentIconAlias,
23
+ CssIconAlias,
24
+ IconAliases
25
+ } from '../../utils/config'
26
+
27
+ export { resolveAlias, getIconAliases } from '../../utils/iconAliases'
@@ -5,7 +5,7 @@ exports[`BTableMobileSort > render correctly 1`] = `
5
5
  <div class="field has-addons">
6
6
  <b-select-stub modelvalue="-1" multiple="false" expanded=""></b-select-stub>
7
7
  <div class="control"><button class="button is-primary">
8
- <b-icon-stub icon="arrow-up" size="is-small" both="true" class="is-desc"></b-icon-stub>
8
+ <b-icon-stub size="is-small" icon="arrow-up" both="true" class="is-desc"></b-icon-stub>
9
9
  </button></div>
10
10
  </div>
11
11
  </div>"