buefy 3.0.7 → 3.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/buefy.esm.js +6 -6
- package/dist/buefy.esm.min.js +2 -2
- package/dist/buefy.js +6 -6
- package/dist/buefy.min.js +2 -2
- package/dist/cjs/{Modal-CVyLPawO.js → Modal-BMPac7tt.js} +3 -3
- package/dist/cjs/dialog.js +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/modal.js +2 -2
- package/dist/cjs/snackbar.js +1 -1
- package/dist/components/autocomplete/index.js +1 -1
- package/dist/components/autocomplete/index.min.js +1 -1
- package/dist/components/breadcrumb/index.js +1 -1
- package/dist/components/breadcrumb/index.min.js +1 -1
- package/dist/components/button/index.js +1 -1
- package/dist/components/button/index.min.js +1 -1
- package/dist/components/carousel/index.js +1 -1
- package/dist/components/carousel/index.min.js +1 -1
- package/dist/components/checkbox/index.js +1 -1
- package/dist/components/checkbox/index.min.js +1 -1
- package/dist/components/clockpicker/index.js +1 -1
- package/dist/components/clockpicker/index.min.js +1 -1
- package/dist/components/collapse/index.js +1 -1
- package/dist/components/collapse/index.min.js +1 -1
- package/dist/components/colorpicker/index.js +1 -1
- package/dist/components/colorpicker/index.min.js +1 -1
- package/dist/components/datepicker/index.js +1 -1
- package/dist/components/datepicker/index.min.js +1 -1
- package/dist/components/datetimepicker/index.js +1 -1
- package/dist/components/datetimepicker/index.min.js +1 -1
- package/dist/components/dialog/index.js +4 -4
- package/dist/components/dialog/index.min.js +2 -2
- package/dist/components/dropdown/index.js +1 -1
- package/dist/components/dropdown/index.min.js +1 -1
- package/dist/components/field/index.js +1 -1
- package/dist/components/field/index.min.js +1 -1
- package/dist/components/icon/index.js +1 -1
- package/dist/components/icon/index.min.js +1 -1
- package/dist/components/image/index.js +1 -1
- package/dist/components/image/index.min.js +1 -1
- package/dist/components/input/index.js +1 -1
- package/dist/components/input/index.min.js +1 -1
- package/dist/components/loading/index.js +1 -1
- package/dist/components/loading/index.min.js +1 -1
- package/dist/components/menu/index.js +1 -1
- package/dist/components/menu/index.min.js +1 -1
- package/dist/components/message/index.js +1 -1
- package/dist/components/message/index.min.js +1 -1
- package/dist/components/modal/index.js +5 -5
- package/dist/components/modal/index.min.js +2 -2
- package/dist/components/navbar/index.js +1 -1
- package/dist/components/navbar/index.min.js +1 -1
- package/dist/components/notification/index.js +1 -1
- package/dist/components/notification/index.min.js +1 -1
- package/dist/components/numberinput/index.js +1 -1
- package/dist/components/numberinput/index.min.js +1 -1
- package/dist/components/pagination/index.js +1 -1
- package/dist/components/pagination/index.min.js +1 -1
- package/dist/components/progress/index.js +1 -1
- package/dist/components/progress/index.min.js +1 -1
- package/dist/components/radio/index.js +1 -1
- package/dist/components/radio/index.min.js +1 -1
- package/dist/components/rate/index.js +1 -1
- package/dist/components/rate/index.min.js +1 -1
- package/dist/components/select/index.js +1 -1
- package/dist/components/select/index.min.js +1 -1
- package/dist/components/sidebar/index.js +1 -1
- package/dist/components/sidebar/index.min.js +1 -1
- package/dist/components/skeleton/index.js +1 -1
- package/dist/components/skeleton/index.min.js +1 -1
- package/dist/components/slider/index.js +1 -1
- package/dist/components/slider/index.min.js +1 -1
- package/dist/components/snackbar/index.js +2 -2
- package/dist/components/snackbar/index.min.js +2 -2
- package/dist/components/steps/index.js +1 -1
- package/dist/components/steps/index.min.js +1 -1
- package/dist/components/switch/index.js +1 -1
- package/dist/components/switch/index.min.js +1 -1
- package/dist/components/table/index.js +1 -1
- package/dist/components/table/index.min.js +1 -1
- package/dist/components/tabs/index.js +1 -1
- package/dist/components/tabs/index.min.js +1 -1
- package/dist/components/tag/index.js +1 -1
- package/dist/components/tag/index.min.js +1 -1
- package/dist/components/taginput/index.js +1 -1
- package/dist/components/taginput/index.min.js +1 -1
- package/dist/components/timepicker/index.js +1 -1
- package/dist/components/timepicker/index.min.js +1 -1
- package/dist/components/toast/index.js +1 -1
- package/dist/components/toast/index.min.js +1 -1
- package/dist/components/tooltip/index.js +1 -1
- package/dist/components/tooltip/index.min.js +1 -1
- package/dist/components/upload/index.js +1 -1
- package/dist/components/upload/index.min.js +1 -1
- package/dist/css/buefy.css +2 -2
- package/dist/css/buefy.min.css +1 -1
- package/dist/css/versions/buefy-no-reset.css +2 -2
- package/dist/css/versions/buefy-no-reset.min.css +1 -1
- package/dist/css/versions/buefy-standalone.css +2 -2
- package/dist/css/versions/buefy-standalone.min.css +1 -1
- package/dist/esm/{Modal-C13NJijf.js → Modal-DXjEE6j6.js} +3 -3
- package/dist/esm/dialog.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/modal.js +2 -2
- package/dist/esm/snackbar.js +1 -1
- package/package.json +4 -3
- package/src/components/modal/Modal.spec.ts +6 -3
- package/src/components/modal/Modal.vue +3 -4
- package/src/components/modal/index.ts +1 -1
- package/src/components/snackbar/Snackbar.spec.ts +53 -1
- package/src/components/snackbar/index.ts +1 -1
- package/src/scss/components/_sidebar.scss +1 -1
|
@@ -184,9 +184,6 @@ const Modal$1 = defineComponent({
|
|
|
184
184
|
this.$emit("update:modelValue", false);
|
|
185
185
|
if (this.programmatic) {
|
|
186
186
|
this.isActive = false;
|
|
187
|
-
setTimeout(() => {
|
|
188
|
-
removeElement(this.$el);
|
|
189
|
-
}, 150);
|
|
190
187
|
}
|
|
191
188
|
},
|
|
192
189
|
/*
|
|
@@ -232,6 +229,9 @@ const Modal$1 = defineComponent({
|
|
|
232
229
|
beforeUnmount() {
|
|
233
230
|
if (typeof window !== "undefined") {
|
|
234
231
|
document.removeEventListener("keyup", this.keyPress);
|
|
232
|
+
if (this.programmatic) {
|
|
233
|
+
removeElement(this.$el);
|
|
234
|
+
}
|
|
235
235
|
document.documentElement.classList.remove("is-clipped");
|
|
236
236
|
const savedScrollTop = !this.savedScrollTop ? document.documentElement.scrollTop : this.savedScrollTop;
|
|
237
237
|
document.body.classList.remove("is-noscroll");
|
package/dist/esm/dialog.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent, resolveComponent, resolveDirective, openBlock, createBlock, Transition, withCtx, withDirectives, createElementBlock, normalizeClass, createElementVNode, toDisplayString, createCommentVNode, createVNode, renderSlot, Fragment, mergeProps, withKeys, vModelDynamic, createTextVNode, inject, createApp, h } from 'vue';
|
|
2
2
|
import { d as directive } from './trapFocus-KHP_kCNE.js';
|
|
3
3
|
import { B as BIcon } from './Icon-pQAdaqZb.js';
|
|
4
|
-
import { M as Modal } from './Modal-
|
|
4
|
+
import { M as Modal } from './Modal-DXjEE6j6.js';
|
|
5
5
|
import { B as BButton } from './Button-BTP__-p5.js';
|
|
6
6
|
import { c as config } from './config-f4Dyy8TN.js';
|
|
7
7
|
import { removeElement, getComponentFromVNode, copyAppContext } from './helpers.js';
|
package/dist/esm/index.js
CHANGED
|
@@ -88,7 +88,7 @@ export { B as BIcon } from './Icon-pQAdaqZb.js';
|
|
|
88
88
|
export { I as BImage } from './Image-COmzg-EK.js';
|
|
89
89
|
export { B as BInput } from './Input-CErQ1Jyw.js';
|
|
90
90
|
export { B as BLoading } from './Loading-BSqhV1Gi.js';
|
|
91
|
-
export { M as BModal } from './Modal-
|
|
91
|
+
export { M as BModal } from './Modal-DXjEE6j6.js';
|
|
92
92
|
export { B as BPagination, P as BPaginationButton } from './Pagination-DvgzxH87.js';
|
|
93
93
|
export { P as BProgress } from './Progress-AeKn1Ttq.js';
|
|
94
94
|
export { B as BSelect } from './Select-CbkuxvSQ.js';
|
package/dist/esm/modal.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createApp, h, inject } from 'vue';
|
|
2
|
-
import { M as Modal } from './Modal-
|
|
2
|
+
import { M as Modal } from './Modal-DXjEE6j6.js';
|
|
3
3
|
import { getComponentFromVNode, copyAppContext } from './helpers.js';
|
|
4
4
|
import { a as registerComponent, r as registerComponentProgrammatic } from './plugins-1tLsuIZF.js';
|
|
5
5
|
import './trapFocus-KHP_kCNE.js';
|
|
@@ -63,7 +63,7 @@ class ModalProgrammatic {
|
|
|
63
63
|
Modal,
|
|
64
64
|
__spreadProps(__spreadValues({}, propsData), {
|
|
65
65
|
programmatic: true,
|
|
66
|
-
|
|
66
|
+
onAfterLeave: () => {
|
|
67
67
|
vueInstance.unmount();
|
|
68
68
|
},
|
|
69
69
|
// intentionally overrides propsData.onCancel
|
package/dist/esm/snackbar.js
CHANGED
|
@@ -165,7 +165,7 @@ class SnackbarProgrammatic {
|
|
|
165
165
|
const propsData = __spreadValues({
|
|
166
166
|
type: "is-success",
|
|
167
167
|
position: config.defaultSnackbarPosition || "is-bottom-right",
|
|
168
|
-
queue:
|
|
168
|
+
queue: config.defaultNoticeQueue,
|
|
169
169
|
message
|
|
170
170
|
}, restParams);
|
|
171
171
|
const container = document.createElement("div");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "buefy",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.8",
|
|
4
4
|
"description": "Lightweight UI components for Vue.js (v3) based on Bulma",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"vuejs",
|
|
@@ -53,7 +53,8 @@
|
|
|
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
|
-
"vetur": "node -r esm build/vetur.js"
|
|
56
|
+
"vetur": "node -r esm build/vetur.js",
|
|
57
|
+
"generate:mcp": "node build/generate-mcp.mjs"
|
|
57
58
|
},
|
|
58
59
|
"dependencies": {
|
|
59
60
|
"bulma": "^1.0.4"
|
|
@@ -78,6 +79,6 @@
|
|
|
78
79
|
"jsdom": "^26.0.0",
|
|
79
80
|
"rimraf": "^5.0.10",
|
|
80
81
|
"rollup-plugin-esbuild": "^6.1.0",
|
|
81
|
-
"vitest": "^
|
|
82
|
+
"vitest": "^4.1.8"
|
|
82
83
|
}
|
|
83
84
|
}
|
|
@@ -117,11 +117,14 @@ describe('BModal', () => {
|
|
|
117
117
|
})
|
|
118
118
|
await modal.$nextTick() // makes sure DOM is updated
|
|
119
119
|
expect(document.querySelector('.modal')).toBeTruthy()
|
|
120
|
-
|
|
120
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
121
|
+
const modalProxy = (modal.$data as any).modalVNode?.component?.proxy
|
|
122
|
+
const modalVm = modalProxy as InstanceType<typeof BModal>
|
|
121
123
|
modal.close()
|
|
122
|
-
|
|
124
|
+
// JSDOM has no CSS transitions; manually trigger the after-leave hook
|
|
125
|
+
modalVm.afterLeave()
|
|
126
|
+
await modal.$nextTick()
|
|
123
127
|
expect(document.querySelector('.modal')).toBeFalsy()
|
|
124
|
-
vi.useRealTimers()
|
|
125
128
|
})
|
|
126
129
|
})
|
|
127
130
|
|
|
@@ -260,12 +260,8 @@ const Modal = defineComponent({
|
|
|
260
260
|
this.$emit('close')
|
|
261
261
|
this.$emit('update:modelValue', false)
|
|
262
262
|
|
|
263
|
-
// Timeout for the animation complete before destroying
|
|
264
263
|
if (this.programmatic) {
|
|
265
264
|
this.isActive = false
|
|
266
|
-
setTimeout(() => {
|
|
267
|
-
removeElement(this.$el)
|
|
268
|
-
}, 150)
|
|
269
265
|
}
|
|
270
266
|
},
|
|
271
267
|
|
|
@@ -319,6 +315,9 @@ const Modal = defineComponent({
|
|
|
319
315
|
beforeUnmount() {
|
|
320
316
|
if (typeof window !== 'undefined') {
|
|
321
317
|
document.removeEventListener('keyup', this.keyPress)
|
|
318
|
+
if (this.programmatic) {
|
|
319
|
+
removeElement(this.$el)
|
|
320
|
+
}
|
|
322
321
|
// reset scroll
|
|
323
322
|
document.documentElement.classList.remove('is-clipped')
|
|
324
323
|
const savedScrollTop = !this.savedScrollTop
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
import { transformVNodeArgs } from 'vue'
|
|
1
2
|
import { shallowMount } from '@vue/test-utils'
|
|
2
3
|
import type { VueWrapper } from '@vue/test-utils'
|
|
3
|
-
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
|
4
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
|
4
5
|
import BSnackbar from '@components/snackbar/Snackbar.vue'
|
|
6
|
+
import { SnackbarProgrammatic } from '@components/snackbar'
|
|
7
|
+
import config, { setOptions } from '@utils/config'
|
|
5
8
|
|
|
6
9
|
let wrapper: VueWrapper<InstanceType<typeof BSnackbar>>
|
|
10
|
+
const realInsertAdjacentElement = HTMLElement.prototype.insertAdjacentElement
|
|
7
11
|
|
|
8
12
|
describe('BSnackbar', () => {
|
|
9
13
|
HTMLElement.prototype.insertAdjacentElement = vi.fn()
|
|
@@ -32,4 +36,52 @@ describe('BSnackbar', () => {
|
|
|
32
36
|
expect(wrapper.vm.onAction).toHaveBeenCalled()
|
|
33
37
|
expect(wrapper.vm.close).toHaveBeenCalled()
|
|
34
38
|
})
|
|
39
|
+
|
|
40
|
+
describe('programmatically opened', () => {
|
|
41
|
+
const savedNoticeQueue = config.defaultNoticeQueue
|
|
42
|
+
|
|
43
|
+
beforeEach(() => {
|
|
44
|
+
transformVNodeArgs(undefined)
|
|
45
|
+
HTMLElement.prototype.insertAdjacentElement = realInsertAdjacentElement
|
|
46
|
+
})
|
|
47
|
+
|
|
48
|
+
afterEach(() => {
|
|
49
|
+
HTMLElement.prototype.insertAdjacentElement = vi.fn()
|
|
50
|
+
setOptions(Object.assign(config, { defaultNoticeQueue: savedNoticeQueue }))
|
|
51
|
+
document.querySelectorAll('.notices').forEach((el) => el.remove())
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
it('should not dismiss existing snackbar when queue is disabled globally', () => {
|
|
55
|
+
setOptions(Object.assign(config, { defaultNoticeQueue: false }))
|
|
56
|
+
|
|
57
|
+
new SnackbarProgrammatic().open({ message: 'first', indefinite: true })
|
|
58
|
+
const parent = document.querySelector('body > .notices.is-bottom')!
|
|
59
|
+
expect(parent.childElementCount).toBe(1)
|
|
60
|
+
|
|
61
|
+
new SnackbarProgrammatic().open({ message: 'second', indefinite: true })
|
|
62
|
+
expect(parent.childElementCount).toBe(2)
|
|
63
|
+
})
|
|
64
|
+
|
|
65
|
+
it('should dismiss existing snackbar when queue is enabled', () => {
|
|
66
|
+
setOptions(Object.assign(config, { defaultNoticeQueue: true }))
|
|
67
|
+
|
|
68
|
+
new SnackbarProgrammatic().open({ message: 'first', indefinite: true })
|
|
69
|
+
const parent = document.querySelector('body > .notices.is-bottom')!
|
|
70
|
+
expect(parent.childElementCount).toBe(1)
|
|
71
|
+
|
|
72
|
+
new SnackbarProgrammatic().open({ message: 'second', indefinite: true })
|
|
73
|
+
expect(parent.childElementCount).toBe(1)
|
|
74
|
+
})
|
|
75
|
+
|
|
76
|
+
it('explicit queue param should override the global config', () => {
|
|
77
|
+
setOptions(Object.assign(config, { defaultNoticeQueue: false }))
|
|
78
|
+
|
|
79
|
+
new SnackbarProgrammatic().open({ message: 'first', indefinite: true })
|
|
80
|
+
const parent = document.querySelector('body > .notices.is-bottom')!
|
|
81
|
+
expect(parent.childElementCount).toBe(1)
|
|
82
|
+
|
|
83
|
+
new SnackbarProgrammatic().open({ message: 'second', indefinite: true, queue: true })
|
|
84
|
+
expect(parent.childElementCount).toBe(1)
|
|
85
|
+
})
|
|
86
|
+
})
|
|
35
87
|
})
|
|
@@ -80,7 +80,7 @@ $sidebar-close-button-dark-background: rgba(10,10,10,.86) !default;
|
|
|
80
80
|
flex-direction: column;
|
|
81
81
|
align-content: stretch;
|
|
82
82
|
}
|
|
83
|
-
@media screen and (max-width:
|
|
83
|
+
@media screen and (max-width: #{$sidebar-mobile-breakpoint - 1px}) {
|
|
84
84
|
&.is-mini-mobile {
|
|
85
85
|
width: cv.getVar("sidebar-mobile-width");
|
|
86
86
|
&.is-mini-expand:hover {
|