buefy 3.0.2 → 3.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. package/dist/buefy.d.ts +37 -4
  2. package/dist/buefy.esm.js +173 -129
  3. package/dist/buefy.esm.min.js +2 -2
  4. package/dist/buefy.js +178 -127
  5. package/dist/buefy.min.js +2 -2
  6. package/dist/cjs/autocomplete.js +1 -1
  7. package/dist/cjs/breadcrumb.js +1 -1
  8. package/dist/cjs/button.js +1 -1
  9. package/dist/cjs/carousel.js +1 -1
  10. package/dist/cjs/checkbox.js +1 -1
  11. package/dist/cjs/clockpicker.js +1 -1
  12. package/dist/cjs/collapse.js +1 -1
  13. package/dist/cjs/colorpicker.js +2 -2
  14. package/dist/cjs/config.js +7 -1
  15. package/dist/cjs/datepicker.js +1 -1
  16. package/dist/cjs/datetimepicker.js +1 -1
  17. package/dist/cjs/dialog.js +138 -118
  18. package/dist/cjs/dropdown.js +1 -1
  19. package/dist/cjs/field.js +1 -1
  20. package/dist/cjs/icon.js +1 -1
  21. package/dist/cjs/image.js +1 -1
  22. package/dist/cjs/{index-DiQy3SCb.js → index-SLOXD6k3.js} +1 -1
  23. package/dist/cjs/index.js +10 -3
  24. package/dist/cjs/input.js +1 -1
  25. package/dist/cjs/loading.js +7 -2
  26. package/dist/cjs/menu.js +1 -1
  27. package/dist/cjs/message.js +1 -1
  28. package/dist/cjs/modal.js +7 -2
  29. package/dist/cjs/navbar.js +1 -1
  30. package/dist/cjs/notification.js +7 -2
  31. package/dist/cjs/numberinput.js +1 -1
  32. package/dist/cjs/pagination.js +1 -1
  33. package/dist/cjs/{plugins-DbyYGVpp.js → plugins-BWKpXmCr.js} +2 -1
  34. package/dist/cjs/progress.js +1 -1
  35. package/dist/cjs/radio.js +1 -1
  36. package/dist/cjs/rate.js +1 -1
  37. package/dist/cjs/select.js +1 -1
  38. package/dist/cjs/sidebar.js +1 -1
  39. package/dist/cjs/skeleton.js +1 -1
  40. package/dist/cjs/slider.js +1 -1
  41. package/dist/cjs/snackbar.js +7 -2
  42. package/dist/cjs/steps.js +1 -1
  43. package/dist/cjs/switch.js +1 -1
  44. package/dist/cjs/table.js +1 -1
  45. package/dist/cjs/tabs.js +1 -1
  46. package/dist/cjs/tag.js +1 -1
  47. package/dist/cjs/taginput.js +1 -1
  48. package/dist/cjs/timepicker.js +1 -1
  49. package/dist/cjs/toast.js +7 -2
  50. package/dist/cjs/tooltip.js +1 -1
  51. package/dist/cjs/upload.js +1 -1
  52. package/dist/components/autocomplete/index.js +1 -1
  53. package/dist/components/autocomplete/index.min.js +1 -1
  54. package/dist/components/breadcrumb/index.js +1 -1
  55. package/dist/components/breadcrumb/index.min.js +1 -1
  56. package/dist/components/button/index.js +1 -1
  57. package/dist/components/button/index.min.js +1 -1
  58. package/dist/components/carousel/index.js +1 -1
  59. package/dist/components/carousel/index.min.js +1 -1
  60. package/dist/components/checkbox/index.js +1 -1
  61. package/dist/components/checkbox/index.min.js +1 -1
  62. package/dist/components/clockpicker/index.js +1 -1
  63. package/dist/components/clockpicker/index.min.js +1 -1
  64. package/dist/components/collapse/index.js +1 -1
  65. package/dist/components/collapse/index.min.js +1 -1
  66. package/dist/components/colorpicker/index.js +1 -1
  67. package/dist/components/colorpicker/index.min.js +1 -1
  68. package/dist/components/datepicker/index.js +1 -1
  69. package/dist/components/datepicker/index.min.js +1 -1
  70. package/dist/components/datetimepicker/index.js +1 -1
  71. package/dist/components/datetimepicker/index.min.js +1 -1
  72. package/dist/components/dialog/index.js +140 -119
  73. package/dist/components/dialog/index.min.js +2 -2
  74. package/dist/components/dropdown/index.js +1 -1
  75. package/dist/components/dropdown/index.min.js +1 -1
  76. package/dist/components/field/index.js +1 -1
  77. package/dist/components/field/index.min.js +1 -1
  78. package/dist/components/icon/index.js +1 -1
  79. package/dist/components/icon/index.min.js +1 -1
  80. package/dist/components/image/index.js +1 -1
  81. package/dist/components/image/index.min.js +1 -1
  82. package/dist/components/input/index.js +1 -1
  83. package/dist/components/input/index.min.js +1 -1
  84. package/dist/components/loading/index.js +9 -3
  85. package/dist/components/loading/index.min.js +2 -2
  86. package/dist/components/menu/index.js +1 -1
  87. package/dist/components/menu/index.min.js +1 -1
  88. package/dist/components/message/index.js +1 -1
  89. package/dist/components/message/index.min.js +1 -1
  90. package/dist/components/modal/index.js +9 -3
  91. package/dist/components/modal/index.min.js +2 -2
  92. package/dist/components/navbar/index.js +1 -1
  93. package/dist/components/navbar/index.min.js +1 -1
  94. package/dist/components/notification/index.js +9 -3
  95. package/dist/components/notification/index.min.js +2 -2
  96. package/dist/components/numberinput/index.js +1 -1
  97. package/dist/components/numberinput/index.min.js +1 -1
  98. package/dist/components/pagination/index.js +1 -1
  99. package/dist/components/pagination/index.min.js +1 -1
  100. package/dist/components/progress/index.js +1 -1
  101. package/dist/components/progress/index.min.js +1 -1
  102. package/dist/components/radio/index.js +1 -1
  103. package/dist/components/radio/index.min.js +1 -1
  104. package/dist/components/rate/index.js +1 -1
  105. package/dist/components/rate/index.min.js +1 -1
  106. package/dist/components/select/index.js +1 -1
  107. package/dist/components/select/index.min.js +1 -1
  108. package/dist/components/sidebar/index.js +1 -1
  109. package/dist/components/sidebar/index.min.js +1 -1
  110. package/dist/components/skeleton/index.js +1 -1
  111. package/dist/components/skeleton/index.min.js +1 -1
  112. package/dist/components/slider/index.js +1 -1
  113. package/dist/components/slider/index.min.js +1 -1
  114. package/dist/components/snackbar/index.js +9 -3
  115. package/dist/components/snackbar/index.min.js +2 -2
  116. package/dist/components/steps/index.js +1 -1
  117. package/dist/components/steps/index.min.js +1 -1
  118. package/dist/components/switch/index.js +1 -1
  119. package/dist/components/switch/index.min.js +1 -1
  120. package/dist/components/table/index.js +1 -1
  121. package/dist/components/table/index.min.js +1 -1
  122. package/dist/components/tabs/index.js +1 -1
  123. package/dist/components/tabs/index.min.js +1 -1
  124. package/dist/components/tag/index.js +1 -1
  125. package/dist/components/tag/index.min.js +1 -1
  126. package/dist/components/taginput/index.js +1 -1
  127. package/dist/components/taginput/index.min.js +1 -1
  128. package/dist/components/timepicker/index.js +1 -1
  129. package/dist/components/timepicker/index.min.js +1 -1
  130. package/dist/components/toast/index.js +9 -3
  131. package/dist/components/toast/index.min.js +2 -2
  132. package/dist/components/tooltip/index.js +1 -1
  133. package/dist/components/tooltip/index.min.js +1 -1
  134. package/dist/components/upload/index.js +1 -1
  135. package/dist/components/upload/index.min.js +1 -1
  136. package/dist/css/buefy.css +70 -61
  137. package/dist/css/buefy.css.map +1 -1
  138. package/dist/css/buefy.min.css +1 -1
  139. package/dist/css/versions/buefy-no-reset.css +70 -61
  140. package/dist/css/versions/buefy-no-reset.css.map +1 -1
  141. package/dist/css/versions/buefy-no-reset.min.css +1 -1
  142. package/dist/css/versions/buefy-standalone.css +171 -56
  143. package/dist/css/versions/buefy-standalone.css.map +1 -1
  144. package/dist/css/versions/buefy-standalone.min.css +1 -1
  145. package/dist/esm/autocomplete.js +1 -1
  146. package/dist/esm/breadcrumb.js +1 -1
  147. package/dist/esm/button.js +1 -1
  148. package/dist/esm/carousel.js +1 -1
  149. package/dist/esm/checkbox.js +1 -1
  150. package/dist/esm/clockpicker.js +1 -1
  151. package/dist/esm/collapse.js +1 -1
  152. package/dist/esm/colorpicker.js +2 -2
  153. package/dist/esm/config.js +6 -2
  154. package/dist/esm/datepicker.js +1 -1
  155. package/dist/esm/datetimepicker.js +1 -1
  156. package/dist/esm/dialog.js +139 -120
  157. package/dist/esm/dropdown.js +1 -1
  158. package/dist/esm/field.js +1 -1
  159. package/dist/esm/icon.js +1 -1
  160. package/dist/esm/image.js +1 -1
  161. package/dist/esm/{index-CQegEsxK.js → index-BE58-KfV.js} +1 -1
  162. package/dist/esm/index.js +12 -11
  163. package/dist/esm/input.js +1 -1
  164. package/dist/esm/loading.js +8 -4
  165. package/dist/esm/menu.js +1 -1
  166. package/dist/esm/message.js +1 -1
  167. package/dist/esm/modal.js +8 -4
  168. package/dist/esm/navbar.js +1 -1
  169. package/dist/esm/notification.js +8 -4
  170. package/dist/esm/numberinput.js +1 -1
  171. package/dist/esm/pagination.js +1 -1
  172. package/dist/esm/{plugins-B172kuKE.js → plugins-1tLsuIZF.js} +2 -1
  173. package/dist/esm/progress.js +1 -1
  174. package/dist/esm/radio.js +1 -1
  175. package/dist/esm/rate.js +1 -1
  176. package/dist/esm/select.js +1 -1
  177. package/dist/esm/sidebar.js +1 -1
  178. package/dist/esm/skeleton.js +1 -1
  179. package/dist/esm/slider.js +1 -1
  180. package/dist/esm/snackbar.js +8 -4
  181. package/dist/esm/steps.js +1 -1
  182. package/dist/esm/switch.js +1 -1
  183. package/dist/esm/table.js +1 -1
  184. package/dist/esm/tabs.js +1 -1
  185. package/dist/esm/tag.js +1 -1
  186. package/dist/esm/taginput.js +1 -1
  187. package/dist/esm/timepicker.js +1 -1
  188. package/dist/esm/toast.js +8 -4
  189. package/dist/esm/tooltip.js +1 -1
  190. package/dist/esm/upload.js +1 -1
  191. package/package.json +1 -2
  192. package/src/components/dialog/Dialog.vue +10 -2
  193. package/src/components/dialog/index.ts +9 -3
  194. package/src/components/loading/index.ts +9 -3
  195. package/src/components/modal/index.ts +9 -3
  196. package/src/components/notification/index.ts +9 -3
  197. package/src/components/snackbar/index.ts +9 -3
  198. package/src/components/toast/index.ts +9 -3
  199. package/src/index.ts +9 -9
  200. package/src/scss/buefy.scss +0 -1
  201. package/src/scss/components/_checkbox.scss +4 -4
  202. package/src/scss/components/_datepicker.scss +1 -1
  203. package/src/scss/components/_dropdown.scss +7 -6
  204. package/src/scss/components/_form.scss +31 -31
  205. package/src/scss/components/_radio.scss +9 -9
  206. package/src/scss/components/_switch.scss +28 -5
  207. package/src/scss/components/_table.scss +2 -1
  208. package/src/utils/ConfigComponent.ts +13 -1
  209. package/src/utils/plugins.ts +3 -2
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, createElementBlock, openBlock, mergeProps, createElementVNode, h, resolveComponent, withDirectives, resolveDirective, createBlock, resolveDynamicComponent, withCtx, renderSlot, withKeys, withModifiers, Fragment, createTextVNode, toDisplayString, normalizeClass } from 'vue';
2
2
  import { _ as _export_sfc } from './_plugin-vue_export-helper-OJRSZE6i.js';
3
3
  import { C as CompatFallthroughMixin } from './CompatFallthroughMixin-C8LPuwDr.js';
4
- import { a as registerComponent } from './plugins-B172kuKE.js';
4
+ import { a as registerComponent } from './plugins-1tLsuIZF.js';
5
5
  import './config-CKuo-p6e.js';
6
6
 
7
7
  var _sfc_main$3 = defineComponent({
@@ -1,4 +1,4 @@
1
- import { defineComponent, resolveComponent, createBlock, openBlock, Transition, withCtx, withDirectives, createElementVNode, normalizeClass, createElementBlock, createCommentVNode, createVNode, renderSlot, Fragment, vShow, mergeProps, createApp, h } from 'vue';
1
+ import { defineComponent, resolveComponent, createBlock, openBlock, Transition, withCtx, withDirectives, createElementVNode, normalizeClass, createElementBlock, createCommentVNode, createVNode, renderSlot, Fragment, vShow, mergeProps, createApp, h, inject } from 'vue';
2
2
  import { B as BIcon } from './Icon-DPyGDeRK.js';
3
3
  import { P as Progress } from './Progress-BPGTVZgr.js';
4
4
  import { M as MessageMixin } from './MessageMixin-CQ7LIdvq.js';
@@ -6,7 +6,7 @@ import { _ as _export_sfc } from './_plugin-vue_export-helper-OJRSZE6i.js';
6
6
  import { c as config } from './config-CKuo-p6e.js';
7
7
  import { removeElement, getComponentFromVNode, copyAppContext } from './helpers.js';
8
8
  import { N as NoticeMixin } from './NoticeMixin-ByNlva3T.js';
9
- import { a as registerComponent, r as registerComponentProgrammatic } from './plugins-B172kuKE.js';
9
+ import { a as registerComponent, r as registerComponentProgrammatic } from './plugins-1tLsuIZF.js';
10
10
 
11
11
  const Notification$1 = defineComponent({
12
12
  name: "BNotification",
@@ -265,11 +265,15 @@ class NotificationProgrammatic {
265
265
  return vueInstance.mount(container);
266
266
  }
267
267
  }
268
+ const notificationInjectionKey = Symbol("Buefy Notification");
269
+ function useNotification() {
270
+ return inject(notificationInjectionKey);
271
+ }
268
272
  const Plugin = {
269
273
  install(Vue) {
270
274
  registerComponent(Vue, Notification);
271
- registerComponentProgrammatic(Vue, "notification", new NotificationProgrammatic(Vue));
275
+ registerComponentProgrammatic(Vue, "notification", new NotificationProgrammatic(Vue), notificationInjectionKey);
272
276
  }
273
277
  };
274
278
 
275
- export { Notification as BNotification, NotificationProgrammatic, Plugin as default };
279
+ export { Notification as BNotification, NotificationProgrammatic, Plugin as default, useNotification };
@@ -4,7 +4,7 @@ import { B as BInput } from './Input-C4L520az.js';
4
4
  import { C as CompatFallthroughMixin } from './CompatFallthroughMixin-C8LPuwDr.js';
5
5
  import { F as FormElementMixin } from './FormElementMixin-Dd_wkBN5.js';
6
6
  import { _ as _export_sfc } from './_plugin-vue_export-helper-OJRSZE6i.js';
7
- import { a as registerComponent } from './plugins-B172kuKE.js';
7
+ import { a as registerComponent } from './plugins-1tLsuIZF.js';
8
8
  import './config-CKuo-p6e.js';
9
9
  import './helpers.js';
10
10
 
@@ -1,5 +1,5 @@
1
1
  import { B as BPagination, P as PaginationButton } from './Pagination-B-LAJQay.js';
2
- import { a as registerComponent } from './plugins-B172kuKE.js';
2
+ import { a as registerComponent } from './plugins-1tLsuIZF.js';
3
3
  import 'vue';
4
4
  import './config-CKuo-p6e.js';
5
5
  import './_plugin-vue_export-helper-OJRSZE6i.js';
@@ -5,9 +5,10 @@ const registerComponent = (Vue, component, name) => {
5
5
  }
6
6
  Vue.component(componentName, component);
7
7
  };
8
- const registerComponentProgrammatic = (Vue, property, component) => {
8
+ const registerComponentProgrammatic = (Vue, property, component, injectionKey) => {
9
9
  if (!Vue.config.globalProperties.$buefy) Vue.config.globalProperties.$buefy = {};
10
10
  Vue.config.globalProperties.$buefy[property] = component;
11
+ Vue.provide(injectionKey, component);
11
12
  };
12
13
 
13
14
  export { registerComponent as a, registerComponentProgrammatic as r };
@@ -1,7 +1,7 @@
1
1
  import { a as PROGRESS_INJECTION_KEY, P as Progress } from './Progress-BPGTVZgr.js';
2
2
  import { defineComponent, createElementBlock, openBlock, normalizeStyle, normalizeClass, createCommentVNode, renderSlot, createTextVNode, toDisplayString } from 'vue';
3
3
  import { _ as _export_sfc } from './_plugin-vue_export-helper-OJRSZE6i.js';
4
- import { a as registerComponent } from './plugins-B172kuKE.js';
4
+ import { a as registerComponent } from './plugins-1tLsuIZF.js';
5
5
  import './config-CKuo-p6e.js';
6
6
 
7
7
  const ProgressBar$1 = defineComponent({
package/dist/esm/radio.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, createElementBlock, openBlock, withKeys, normalizeClass, withModifiers, withDirectives, createElementVNode, vModelRadio, renderSlot } from 'vue';
2
2
  import { C as CheckRadioMixin } from './CheckRadioMixin-DSD_rjC8.js';
3
3
  import { _ as _export_sfc } from './_plugin-vue_export-helper-OJRSZE6i.js';
4
- import { a as registerComponent } from './plugins-B172kuKE.js';
4
+ import { a as registerComponent } from './plugins-1tLsuIZF.js';
5
5
 
6
6
  const Radio$1 = defineComponent({
7
7
  name: "BRadio",
package/dist/esm/rate.js CHANGED
@@ -2,7 +2,7 @@ import { defineComponent, resolveComponent, createElementBlock, openBlock, norma
2
2
  import { c as config } from './config-CKuo-p6e.js';
3
3
  import { B as BIcon } from './Icon-DPyGDeRK.js';
4
4
  import { _ as _export_sfc } from './_plugin-vue_export-helper-OJRSZE6i.js';
5
- import { a as registerComponent } from './plugins-B172kuKE.js';
5
+ import { a as registerComponent } from './plugins-1tLsuIZF.js';
6
6
  import './helpers.js';
7
7
 
8
8
  const Rate$1 = defineComponent({
@@ -1,5 +1,5 @@
1
1
  import { B as BSelect } from './Select-bl4qUzij.js';
2
- import { a as registerComponent } from './plugins-B172kuKE.js';
2
+ import { a as registerComponent } from './plugins-1tLsuIZF.js';
3
3
  import 'vue';
4
4
  import './Icon-DPyGDeRK.js';
5
5
  import './config-CKuo-p6e.js';
@@ -2,7 +2,7 @@ import { defineComponent, createElementBlock, openBlock, createCommentVNode, cre
2
2
  import { c as config } from './config-CKuo-p6e.js';
3
3
  import { removeElement } from './helpers.js';
4
4
  import { _ as _export_sfc } from './_plugin-vue_export-helper-OJRSZE6i.js';
5
- import { a as registerComponent } from './plugins-B172kuKE.js';
5
+ import { a as registerComponent } from './plugins-1tLsuIZF.js';
6
6
 
7
7
  const SIDEBAR_POSITIONS = ["fixed", "absolute", "static"];
8
8
  const SCROLL_BEHAVIORS = ["clip", "keep"];
@@ -1,5 +1,5 @@
1
1
  import { h } from 'vue';
2
- import { a as registerComponent } from './plugins-B172kuKE.js';
2
+ import { a as registerComponent } from './plugins-1tLsuIZF.js';
3
3
 
4
4
  const SKELETON_POSITIONS = ["", "is-centered", "is-right"];
5
5
  const BSkeleton = (props) => {
@@ -4,7 +4,7 @@ import { c as config } from './config-CKuo-p6e.js';
4
4
  import { C as CompatFallthroughMixin } from './CompatFallthroughMixin-C8LPuwDr.js';
5
5
  import { _ as _export_sfc } from './_plugin-vue_export-helper-OJRSZE6i.js';
6
6
  import { bound } from './helpers.js';
7
- import { a as registerComponent } from './plugins-B172kuKE.js';
7
+ import { a as registerComponent } from './plugins-1tLsuIZF.js';
8
8
 
9
9
  const DISPLAY_FORMATS = ["raw", "percent"];
10
10
 
@@ -1,9 +1,9 @@
1
- import { defineComponent, createBlock, openBlock, Transition, withCtx, withDirectives, createElementVNode, normalizeClass, renderSlot, createElementBlock, createCommentVNode, Fragment, toDisplayString, vShow, createApp, h } from 'vue';
1
+ import { defineComponent, createBlock, openBlock, Transition, withCtx, withDirectives, createElementVNode, normalizeClass, renderSlot, createElementBlock, createCommentVNode, Fragment, toDisplayString, vShow, createApp, h, inject } from 'vue';
2
2
  import { c as config } from './config-CKuo-p6e.js';
3
3
  import { N as NoticeMixin } from './NoticeMixin-ByNlva3T.js';
4
4
  import { _ as _export_sfc } from './_plugin-vue_export-helper-OJRSZE6i.js';
5
5
  import { getComponentFromVNode, copyAppContext } from './helpers.js';
6
- import { r as registerComponentProgrammatic } from './plugins-B172kuKE.js';
6
+ import { r as registerComponentProgrammatic } from './plugins-1tLsuIZF.js';
7
7
 
8
8
  const Snackbar$1 = defineComponent({
9
9
  name: "BSnackbar",
@@ -209,10 +209,14 @@ class SnackbarProgrammatic {
209
209
  return vueInstance.mount(container);
210
210
  }
211
211
  }
212
+ const snackbarInjectionKey = Symbol("Buefy Snackbar");
213
+ function useSnackbar() {
214
+ return inject(snackbarInjectionKey);
215
+ }
212
216
  const Plugin = {
213
217
  install(Vue) {
214
- registerComponentProgrammatic(Vue, "snackbar", new SnackbarProgrammatic(Vue));
218
+ registerComponentProgrammatic(Vue, "snackbar", new SnackbarProgrammatic(Vue), snackbarInjectionKey);
215
219
  }
216
220
  };
217
221
 
218
- export { Snackbar as BSnackbar, SnackbarProgrammatic, Plugin as default };
222
+ export { Snackbar as BSnackbar, SnackbarProgrammatic, Plugin as default, useSnackbar };
package/dist/esm/steps.js CHANGED
@@ -3,7 +3,7 @@ import { B as BIcon } from './Icon-DPyGDeRK.js';
3
3
  import { T as TabbedMixin, a as TabbedChildMixin } from './TabbedChildMixin-C4i6WP9j.js';
4
4
  import { c as config } from './config-CKuo-p6e.js';
5
5
  import { _ as _export_sfc } from './_plugin-vue_export-helper-OJRSZE6i.js';
6
- import { a as registerComponent } from './plugins-B172kuKE.js';
6
+ import { a as registerComponent } from './plugins-1tLsuIZF.js';
7
7
  import './helpers.js';
8
8
  import './SlotComponent-BwNpVnfH.js';
9
9
  import './InjectedChildMixin-D2K-FwuO.js';
@@ -1,7 +1,7 @@
1
1
  import { c as config } from './config-CKuo-p6e.js';
2
2
  import { defineComponent, createElementBlock, openBlock, withKeys, normalizeClass, withModifiers, withDirectives, createElementVNode, createCommentVNode, vModelCheckbox, renderSlot } from 'vue';
3
3
  import { _ as _export_sfc } from './_plugin-vue_export-helper-OJRSZE6i.js';
4
- import { a as registerComponent } from './plugins-B172kuKE.js';
4
+ import { a as registerComponent } from './plugins-1tLsuIZF.js';
5
5
 
6
6
  const Switch$1 = defineComponent({
7
7
  name: "BSwitch",
package/dist/esm/table.js CHANGED
@@ -9,7 +9,7 @@ import { B as BLoading } from './Loading-tuQoo6TU.js';
9
9
  import { B as BSlotComponent } from './SlotComponent-BwNpVnfH.js';
10
10
  import { B as BSelect } from './Select-bl4qUzij.js';
11
11
  import { _ as _export_sfc } from './_plugin-vue_export-helper-OJRSZE6i.js';
12
- import { a as registerComponent } from './plugins-B172kuKE.js';
12
+ import { a as registerComponent } from './plugins-1tLsuIZF.js';
13
13
  import './config-CKuo-p6e.js';
14
14
  import './CheckRadioMixin-DSD_rjC8.js';
15
15
  import './FormElementMixin-Dd_wkBN5.js';
package/dist/esm/tabs.js CHANGED
@@ -4,7 +4,7 @@ import { c as config } from './config-CKuo-p6e.js';
4
4
  import { T as TabbedMixin, a as TabbedChildMixin } from './TabbedChildMixin-C4i6WP9j.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
- import { a as registerComponent } from './plugins-B172kuKE.js';
7
+ import { a as registerComponent } from './plugins-1tLsuIZF.js';
8
8
  import './helpers.js';
9
9
  import './InjectedChildMixin-D2K-FwuO.js';
10
10
 
package/dist/esm/tag.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { B as BTag } from './Tag-jS5Bcj6N.js';
2
2
  import { defineComponent, createElementBlock, openBlock, normalizeClass, renderSlot } from 'vue';
3
3
  import { _ as _export_sfc } from './_plugin-vue_export-helper-OJRSZE6i.js';
4
- import { a as registerComponent } from './plugins-B172kuKE.js';
4
+ import { a as registerComponent } from './plugins-1tLsuIZF.js';
5
5
  import './Icon-DPyGDeRK.js';
6
6
  import './config-CKuo-p6e.js';
7
7
  import './helpers.js';
@@ -6,7 +6,7 @@ import { c as config } from './config-CKuo-p6e.js';
6
6
  import { C as CompatFallthroughMixin } from './CompatFallthroughMixin-C8LPuwDr.js';
7
7
  import { F as FormElementMixin } from './FormElementMixin-Dd_wkBN5.js';
8
8
  import { _ as _export_sfc } from './_plugin-vue_export-helper-OJRSZE6i.js';
9
- import { a as registerComponent } from './plugins-B172kuKE.js';
9
+ import { a as registerComponent } from './plugins-1tLsuIZF.js';
10
10
  import './Icon-DPyGDeRK.js';
11
11
  import './Input-C4L520az.js';
12
12
 
@@ -1,5 +1,5 @@
1
1
  import { T as Timepicker } from './Timepicker-DnkqnOBT.js';
2
- import { a as registerComponent } from './plugins-B172kuKE.js';
2
+ import { a as registerComponent } from './plugins-1tLsuIZF.js';
3
3
  import 'vue';
4
4
  import './TimepickerMixin-Bikh6_Fg.js';
5
5
  import './CompatFallthroughMixin-C8LPuwDr.js';
package/dist/esm/toast.js CHANGED
@@ -1,9 +1,9 @@
1
- import { defineComponent, createBlock, openBlock, Transition, withCtx, withDirectives, createElementVNode, normalizeClass, renderSlot, createElementBlock, Fragment, createCommentVNode, vShow, createApp, h } from 'vue';
1
+ import { defineComponent, createBlock, openBlock, Transition, withCtx, withDirectives, createElementVNode, normalizeClass, renderSlot, createElementBlock, Fragment, createCommentVNode, vShow, createApp, h, inject } from 'vue';
2
2
  import { c as config } from './config-CKuo-p6e.js';
3
3
  import { N as NoticeMixin } from './NoticeMixin-ByNlva3T.js';
4
4
  import { _ as _export_sfc } from './_plugin-vue_export-helper-OJRSZE6i.js';
5
5
  import { getComponentFromVNode, copyAppContext } from './helpers.js';
6
- import { r as registerComponentProgrammatic } from './plugins-B172kuKE.js';
6
+ import { r as registerComponentProgrammatic } from './plugins-1tLsuIZF.js';
7
7
 
8
8
  const Toast$1 = defineComponent({
9
9
  name: "BToast",
@@ -147,10 +147,14 @@ class ToastProgrammatic {
147
147
  return vueInstance.mount(container);
148
148
  }
149
149
  }
150
+ const toastInjectionKey = Symbol("Buefy Toast");
151
+ function useToast() {
152
+ return inject(toastInjectionKey);
153
+ }
150
154
  const Plugin = {
151
155
  install(Vue) {
152
- registerComponentProgrammatic(Vue, "toast", new ToastProgrammatic(Vue));
156
+ registerComponentProgrammatic(Vue, "toast", new ToastProgrammatic(Vue), toastInjectionKey);
153
157
  }
154
158
  };
155
159
 
156
- export { Toast as BToast, ToastProgrammatic, Plugin as default };
160
+ export { Toast as BToast, ToastProgrammatic, Plugin as default, useToast };
@@ -1,5 +1,5 @@
1
1
  import { T as Tooltip } from './Tooltip-CtDSXAqa.js';
2
- import { a as registerComponent } from './plugins-B172kuKE.js';
2
+ import { a as registerComponent } from './plugins-1tLsuIZF.js';
3
3
  import 'vue';
4
4
  import './config-CKuo-p6e.js';
5
5
  import './helpers.js';
@@ -3,7 +3,7 @@ import { C as CompatFallthroughMixin } from './CompatFallthroughMixin-C8LPuwDr.j
3
3
  import { F as FormElementMixin } from './FormElementMixin-Dd_wkBN5.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
- import { a as registerComponent } from './plugins-B172kuKE.js';
6
+ import { a as registerComponent } from './plugins-1tLsuIZF.js';
7
7
  import './config-CKuo-p6e.js';
8
8
 
9
9
  const Upload$1 = defineComponent({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "buefy",
3
- "version": "3.0.2",
3
+ "version": "3.0.4",
4
4
  "description": "Lightweight UI components for Vue.js (v3) based on Bulma",
5
5
  "keywords": [
6
6
  "vuejs",
@@ -53,7 +53,6 @@
53
53
  "build:scss-buefy": "sass --load-path=../../node_modules --load-path=node_modules src/scss/versions/buefy-bulma-bundle.scss dist/css/buefy.css && node ./build/banner.js < dist/css/buefy.css > dist/css/buefy.banner.css && mv dist/css/buefy.banner.css dist/css/buefy.css && cleancss -o dist/css/buefy.min.css dist/css/buefy.css",
54
54
  "build:scss-buefy-standalone": "sass --load-path=../../node_modules --load-path=node_modules src/scss/buefy.scss dist/css/versions/buefy-standalone.css && node ./build/banner.js < dist/css/versions/buefy-standalone.css > dist/css/buefy.banner.css && mv dist/css/buefy.banner.css dist/css/versions/buefy-standalone.css && cleancss -o dist/css/versions/buefy-standalone.min.css dist/css/versions/buefy-standalone.css",
55
55
  "build:scss-no-reset": "sass --load-path=../../node_modules --load-path=node_modules src/scss/versions/buefy-no-reset.scss dist/css/versions/buefy-no-reset.css && node ./build/banner.js < dist/css/versions/buefy-no-reset.css > dist/css/buefy.banner.css && mv dist/css/buefy.banner.css dist/css/versions/buefy-no-reset.css && cleancss -o dist/css/versions/buefy-no-reset.min.css dist/css/versions/buefy-no-reset.css",
56
-
57
56
  "vetur": "node -r esm build/vetur.js"
58
57
  },
59
58
  "dependencies": {
@@ -3,13 +3,13 @@
3
3
  <div
4
4
  v-if="isActive"
5
5
  class="dialog modal is-active"
6
- :class="dialogClass"
6
+ :class="[dialogClass, customClass]"
7
7
  v-trap-focus="trapFocus"
8
8
  :role="ariaRole"
9
9
  :aria-modal="ariaModal"
10
10
  >
11
11
  <div class="modal-background" @click="cancel('outside')" />
12
- <div class="modal-card animation-content">
12
+ <div class="modal-card animation-content" :class="customContentClass">
13
13
  <header class="modal-card-head" v-if="title">
14
14
  <p class="modal-card-title">
15
15
  {{ title }}
@@ -115,6 +115,14 @@ const Dialog = defineComponent({
115
115
  },
116
116
  extends: Modal,
117
117
  props: {
118
+ customClass: {
119
+ type: String,
120
+ default: ''
121
+ },
122
+ customContentClass: {
123
+ type: String,
124
+ default: ''
125
+ },
118
126
  title: String,
119
127
  message: [String, Array],
120
128
  icon: String,
@@ -1,5 +1,5 @@
1
- import { createApp, h as createElement } from 'vue'
2
- import type { App, ComponentPublicInstance } from 'vue'
1
+ import { createApp, h as createElement, inject } from 'vue'
2
+ import type { App, ComponentPublicInstance, InjectionKey } from 'vue'
3
3
 
4
4
  import Dialog from './Dialog.vue'
5
5
  import type { DialogProps } from './Dialog.vue'
@@ -154,10 +154,16 @@ class DialogProgrammatic {
154
154
  }
155
155
  }
156
156
 
157
+ const dialogInjectionKey = Symbol('Buefy Dialog') as InjectionKey<DialogProgrammatic>
158
+
159
+ export function useDialog() {
160
+ return inject(dialogInjectionKey)!
161
+ }
162
+
157
163
  const Plugin = {
158
164
  install(Vue: App) {
159
165
  registerComponent(Vue, Dialog)
160
- registerComponentProgrammatic(Vue, 'dialog', new DialogProgrammatic(Vue))
166
+ registerComponentProgrammatic(Vue, 'dialog', new DialogProgrammatic(Vue), dialogInjectionKey)
161
167
  }
162
168
  }
163
169
 
@@ -1,5 +1,5 @@
1
- import { createApp, h as createElement } from 'vue'
2
- import type { App, ComponentPublicInstance } from 'vue'
1
+ import { createApp, h as createElement, inject } from 'vue'
2
+ import type { App, ComponentPublicInstance, InjectionKey } from 'vue'
3
3
 
4
4
  import Loading from './Loading.vue'
5
5
  import type { LoadingProps } from './Loading.vue'
@@ -76,10 +76,16 @@ class LoadingProgrammatic {
76
76
  }
77
77
  }
78
78
 
79
+ const loadingInjectionKey = Symbol('Buefy Loading') as InjectionKey<LoadingProgrammatic>
80
+
81
+ export function useLoading() {
82
+ return inject(loadingInjectionKey)!
83
+ }
84
+
79
85
  const Plugin = {
80
86
  install(Vue: App) {
81
87
  registerComponent(Vue, Loading)
82
- registerComponentProgrammatic(Vue, 'loading', new LoadingProgrammatic(Vue))
88
+ registerComponentProgrammatic(Vue, 'loading', new LoadingProgrammatic(Vue), loadingInjectionKey)
83
89
  }
84
90
  }
85
91
 
@@ -1,5 +1,5 @@
1
- import { createApp, h as createElement } from 'vue'
2
- import type { App, ComponentPublicInstance } from 'vue'
1
+ import { createApp, h as createElement, inject } from 'vue'
2
+ import type { App, ComponentPublicInstance, InjectionKey } from 'vue'
3
3
 
4
4
  import Modal from './Modal.vue'
5
5
  import type { ModalProps } from './Modal.vue'
@@ -92,10 +92,16 @@ class ModalProgrammatic {
92
92
  }
93
93
  }
94
94
 
95
+ const modalInjectionKey = Symbol('Buefy Modal') as InjectionKey<ModalProgrammatic>
96
+
97
+ export function useModal() {
98
+ return inject(modalInjectionKey)!
99
+ }
100
+
95
101
  const Plugin = {
96
102
  install(Vue: App) {
97
103
  registerComponent(Vue, Modal)
98
- registerComponentProgrammatic(Vue, 'modal', new ModalProgrammatic(Vue))
104
+ registerComponentProgrammatic(Vue, 'modal', new ModalProgrammatic(Vue), modalInjectionKey)
99
105
  }
100
106
  }
101
107
 
@@ -1,5 +1,5 @@
1
- import { createApp, h as createElement } from 'vue'
2
- import type { App, ComponentPublicInstance, VNode } from 'vue'
1
+ import { createApp, h as createElement, inject } from 'vue'
2
+ import type { App, ComponentPublicInstance, VNode, InjectionKey } from 'vue'
3
3
 
4
4
  import Notification from './Notification.vue'
5
5
  import type { NotificationProps } from './Notification.vue'
@@ -106,10 +106,16 @@ class NotificationProgrammatic {
106
106
  }
107
107
  }
108
108
 
109
+ const notificationInjectionKey = Symbol('Buefy Notification') as InjectionKey<NotificationProgrammatic>
110
+
111
+ export function useNotification() {
112
+ return inject(notificationInjectionKey)!
113
+ }
114
+
109
115
  const Plugin = {
110
116
  install(Vue: App) {
111
117
  registerComponent(Vue, Notification)
112
- registerComponentProgrammatic(Vue, 'notification', new NotificationProgrammatic(Vue))
118
+ registerComponentProgrammatic(Vue, 'notification', new NotificationProgrammatic(Vue), notificationInjectionKey)
113
119
  }
114
120
  }
115
121
 
@@ -1,5 +1,5 @@
1
- import { createApp, h as createElement } from 'vue'
2
- import type { App, ComponentPublicInstance, VNode } from 'vue'
1
+ import { createApp, h as createElement, inject } from 'vue'
2
+ import type { App, ComponentPublicInstance, VNode, InjectionKey } from 'vue'
3
3
 
4
4
  import Snackbar from './Snackbar.vue'
5
5
  import type { SnackbarProps } from './Snackbar.vue'
@@ -104,9 +104,15 @@ class SnackbarProgrammatic {
104
104
  }
105
105
  }
106
106
 
107
+ const snackbarInjectionKey = Symbol('Buefy Snackbar') as InjectionKey<SnackbarProgrammatic>
108
+
109
+ export function useSnackbar() {
110
+ return inject(snackbarInjectionKey)!
111
+ }
112
+
107
113
  const Plugin = {
108
114
  install(Vue: App) {
109
- registerComponentProgrammatic(Vue, 'snackbar', new SnackbarProgrammatic(Vue))
115
+ registerComponentProgrammatic(Vue, 'snackbar', new SnackbarProgrammatic(Vue), snackbarInjectionKey)
110
116
  }
111
117
  }
112
118
 
@@ -1,5 +1,5 @@
1
- import { createApp, h as createElement } from 'vue'
2
- import type { App, ComponentPublicInstance, VNode } from 'vue'
1
+ import { createApp, h as createElement, inject } from 'vue'
2
+ import type { App, ComponentPublicInstance, VNode, InjectionKey } from 'vue'
3
3
 
4
4
  import Toast from './Toast.vue'
5
5
  import type { ToastProps } from './Toast.vue'
@@ -106,9 +106,15 @@ class ToastProgrammatic {
106
106
  }
107
107
  }
108
108
 
109
+ const toastInjectionKey = Symbol('Buefy Toast') as InjectionKey<ToastProgrammatic>
110
+
111
+ export function useToast() {
112
+ return inject(toastInjectionKey)!
113
+ }
114
+
109
115
  const Plugin = {
110
116
  install(Vue: App) {
111
- registerComponentProgrammatic(Vue, 'toast', new ToastProgrammatic(Vue))
117
+ registerComponentProgrammatic(Vue, 'toast', new ToastProgrammatic(Vue), toastInjectionKey)
112
118
  }
113
119
  }
114
120
 
package/src/index.ts CHANGED
@@ -8,7 +8,7 @@ import config, { setOptions, setVueInstance } from './utils/config'
8
8
  import type { BuefyConfig, BuefyConfigOptions } from './utils/config'
9
9
  import { registerComponentProgrammatic } from './utils/plugins'
10
10
 
11
- import ConfigComponent from './utils/ConfigComponent'
11
+ import ConfigComponent, { configInjectionKey } from './utils/ConfigComponent'
12
12
 
13
13
  const Buefy = {
14
14
  install(Vue: App, options: BuefyConfigOptions = {}) {
@@ -18,7 +18,7 @@ const Buefy = {
18
18
  // Components
19
19
  allComponents.forEach((component) => Vue.use(component))
20
20
  // Config component
21
- registerComponentProgrammatic(Vue, 'config', ConfigComponent)
21
+ registerComponentProgrammatic(Vue, 'config', ConfigComponent, configInjectionKey)
22
22
 
23
23
  Vue.config.globalProperties.$buefy.globalNoticeInterval = undefined
24
24
  }
@@ -29,13 +29,13 @@ export default Buefy
29
29
  // export all components as vue plugin
30
30
  export * from './components'
31
31
  // export programmatic component
32
- export { DialogProgrammatic } from './components/dialog'
33
- export { LoadingProgrammatic } from './components/loading'
34
- export { ModalProgrammatic } from './components/modal'
35
- export { NotificationProgrammatic } from './components/notification'
36
- export { SnackbarProgrammatic } from './components/snackbar'
37
- export { ToastProgrammatic } from './components/toast'
38
- export { default as ConfigProgrammatic } from './utils/ConfigComponent'
32
+ export { DialogProgrammatic, useDialog } from './components/dialog'
33
+ export { LoadingProgrammatic, useLoading } from './components/loading'
34
+ export { ModalProgrammatic, useModal } from './components/modal'
35
+ export { NotificationProgrammatic, useNotification } from './components/notification'
36
+ export { SnackbarProgrammatic, useSnackbar } from './components/snackbar'
37
+ export { ToastProgrammatic, useToast } from './components/toast'
38
+ export { default as ConfigProgrammatic, useConfigComponent } from './utils/ConfigComponent'
39
39
  export { default as Color } from './utils/color'
40
40
  // export helpers
41
41
  export * from './utils/helpers'
@@ -1,5 +1,4 @@
1
1
  @forward "utils/_all";
2
-
3
2
  @forward "components/_autocomplete";
4
3
  @forward "components/_carousel";
5
4
  @forward "components/_checkbox";
@@ -69,15 +69,15 @@ $checkbox-colors: shared.$form-colors !default;
69
69
  align-items: center;
70
70
 
71
71
  &:not(.button) {
72
- margin-right: 0.5em;
72
+ margin-inline-end: 0.5em;
73
73
  & + .checkbox:last-child {
74
- margin-right: 0;
74
+ margin-inline-end: 0;
75
75
  }
76
76
  }
77
77
 
78
78
  input[type=checkbox] {
79
79
  position: absolute;
80
- left: 0;
80
+ inset-inline-start: 0;
81
81
  opacity: 0;
82
82
  outline: none;
83
83
  z-index: -1;
@@ -116,7 +116,7 @@ $checkbox-colors: shared.$form-colors !default;
116
116
  }
117
117
  }
118
118
  .control-label {
119
- padding-left: cv.getVar('control-padding-horizontal');
119
+ padding-inline-start: cv.getVar('control-padding-horizontal');
120
120
  }
121
121
  &.button {
122
122
  display: flex;
@@ -156,7 +156,7 @@ $datepicker-item-selected-background-color: cv.getVar("primary") !default;
156
156
  border-top-right-radius: 0;
157
157
  }
158
158
  &.is-within-selected {
159
- background-color: cv.getRgbaVar("datepicker-item-selected-background-color", 0.5);
159
+ background-color: rgb(from $datepicker-item-selected-background-color r g b / 0.5);
160
160
  border-radius: 0;
161
161
  }
162
162
  &.is-last-selected {
@@ -2,16 +2,17 @@
2
2
  @use "bulma/sass/utilities/extends" as extends;
3
3
  @use "bulma/sass/utilities/css-variables" as cv;
4
4
  @use "bulma/sass/utilities/initial-variables" as iv;
5
+ @use "bulma/sass/utilities/derived-variables.scss" as dv;
5
6
  @use "bulma/sass/utilities/mixins" as mixins;
7
+ @use "bulma/sass/components/dropdown" as dropdown;
6
8
 
7
- $dropdown-mobile-breakpoint: cv.getVar('desktop') !default;
8
- $dropdown-background-color: rgba(cv.getVar('scheme-invert'), 0.86) !default;
9
+ $dropdown-mobile-breakpoint: calc(iv.$desktop - 1px) !default;
10
+ $dropdown-background-color: rgba(dv.$scheme-invert, 0.86) !default;
9
11
  $dropdown-disabled-opacity: 0.5 !default;
10
12
 
11
13
  .#{iv.$class-prefix}dropdown {
12
14
  @include cv.register-vars(
13
15
  (
14
- "dropdown-mobile-breakpoint": #{$dropdown-mobile-breakpoint},
15
16
  "dropdown-background-color": #{$dropdown-background-color},
16
17
  "dropdown-disabled-opacity": #{$dropdown-disabled-opacity}
17
18
  )
@@ -25,10 +26,10 @@ $dropdown-disabled-opacity: 0.5 !default;
25
26
  .background {
26
27
  @extend %overlay;
27
28
  position: fixed;
28
- background-color: cv.getVar('dropdown-background-color');
29
+ background-color: #{cv.getVar('dropdown-background-color')};
29
30
  z-index: 10;
30
31
  cursor: pointer;
31
- @media screen and (min-width: cv.getVar('dropdown-mobile-breakpoint')) {
32
+ @media screen and (min-width: $dropdown-mobile-breakpoint) {
32
33
  display: none;
33
34
  }
34
35
  }
@@ -132,7 +133,7 @@ $dropdown-disabled-opacity: 0.5 !default;
132
133
  left: auto;
133
134
  }
134
135
  }
135
- @media screen and (max-width: calc(#{cv.getVar('dropdown-mobile-breakpoint')} - 1px)) {
136
+ @media screen and (max-width: $dropdown-mobile-breakpoint) {
136
137
  /* prevents modal on hover unless it is on touch devices */
137
138
  &.is-mobile-modal:not(.is-hoverable),
138
139
  &.is-mobile-modal.is-touch-enabled {