blessing-ui 0.2.0 → 0.3.0
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/CHANGELOG.md +31 -0
- package/README.md +137 -125
- package/dist/blessing-ui.css +38 -2
- package/dist/components/BlessAnnotator.css +1 -0
- package/dist/components/BlessAnnotator.js +6 -0
- package/dist/components/BlessAnnotator.vue.d.ts +71 -0
- package/dist/components/BlessAnnotator.vue_vue_type_script_setup_true_lang.js +264 -0
- package/dist/components/BlessAttachment.vue.d.ts +4 -1
- package/dist/components/BlessAttachment.vue_vue_type_script_setup_true_lang.js +3 -2
- package/dist/components/BlessCalendar.vue.d.ts +4 -0
- package/dist/components/BlessCalendar.vue_vue_type_script_setup_true_lang.js +65 -60
- package/dist/components/BlessCarousel.vue.d.ts +3 -0
- package/dist/components/BlessCarousel.vue_vue_type_script_setup_true_lang.js +10 -9
- package/dist/components/BlessCoachmark.css +1 -0
- package/dist/components/BlessCoachmark.js +6 -0
- package/dist/components/BlessCoachmark.vue.d.ts +40 -0
- package/dist/components/BlessCoachmark.vue_vue_type_script_setup_true_lang.js +74 -0
- package/dist/components/BlessCodeBlock.vue.d.ts +10 -0
- package/dist/components/BlessCodeBlock.vue_vue_type_script_setup_true_lang.js +39 -33
- package/dist/components/BlessCombobox.vue.d.ts +2 -0
- package/dist/components/BlessCombobox.vue_vue_type_script_setup_true_lang.js +3 -2
- package/dist/components/BlessCommand.css +1 -1
- package/dist/components/BlessCommand.vue.d.ts +26 -0
- package/dist/components/BlessCommand.vue_vue_type_script_setup_true_lang.js +137 -70
- package/dist/components/BlessConfetti.css +1 -0
- package/dist/components/BlessConfetti.js +6 -0
- package/dist/components/BlessConfetti.vue.d.ts +40 -0
- package/dist/components/BlessConfetti.vue_vue_type_script_setup_true_lang.js +77 -0
- package/dist/components/BlessCropper.vue.d.ts +16 -0
- package/dist/components/BlessCropper.vue_vue_type_script_setup_true_lang.js +47 -39
- package/dist/components/BlessDataTable.vue.d.ts +6 -0
- package/dist/components/BlessDataTable.vue_vue_type_script_setup_true_lang.js +56 -42
- package/dist/components/BlessDataView.vue.d.ts +7 -0
- package/dist/components/BlessDataView.vue_vue_type_script_setup_true_lang.js +38 -31
- package/dist/components/BlessDatePicker.vue.d.ts +3 -0
- package/dist/components/BlessDatePicker.vue_vue_type_script_setup_true_lang.js +46 -45
- package/dist/components/BlessDock.css +1 -0
- package/dist/components/BlessDock.js +6 -0
- package/dist/components/BlessDock.vue.d.ts +55 -0
- package/dist/components/BlessDock.vue_vue_type_script_setup_true_lang.js +100 -0
- package/dist/components/BlessEditor.vue.d.ts +2 -0
- package/dist/components/BlessEditor.vue_vue_type_script_setup_true_lang.js +23 -22
- package/dist/components/BlessFileInput.vue.d.ts +2 -0
- package/dist/components/BlessFileInput.vue_vue_type_script_setup_true_lang.js +3 -2
- package/dist/components/BlessFormula.css +1 -0
- package/dist/components/BlessFormula.js +6 -0
- package/dist/components/BlessFormula.vue.d.ts +53 -0
- package/dist/components/BlessFormula.vue_vue_type_script_setup_true_lang.js +111 -0
- package/dist/components/BlessGantt.vue.d.ts +12 -0
- package/dist/components/BlessGantt.vue_vue_type_script_setup_true_lang.js +74 -68
- package/dist/components/BlessInfiniteCanvas.css +1 -0
- package/dist/components/BlessInfiniteCanvas.js +6 -0
- package/dist/components/BlessInfiniteCanvas.vue.d.ts +91 -0
- package/dist/components/BlessInfiniteCanvas.vue_vue_type_script_setup_true_lang.js +232 -0
- package/dist/components/BlessInputNumber.vue.d.ts +5 -0
- package/dist/components/BlessInputNumber.vue_vue_type_script_setup_true_lang.js +39 -34
- package/dist/components/BlessKanban.vue.d.ts +12 -0
- package/dist/components/BlessKanban.vue_vue_type_script_setup_true_lang.js +127 -97
- package/dist/components/BlessLoadingBar.vue.d.ts +2 -0
- package/dist/components/BlessLoadingBar.vue_vue_type_script_setup_true_lang.js +8 -3
- package/dist/components/BlessMarquee.vue.d.ts +4 -0
- package/dist/components/BlessMarquee.vue_vue_type_script_setup_true_lang.js +32 -27
- package/dist/components/BlessNodeGraph.css +1 -0
- package/dist/components/BlessNodeGraph.js +6 -0
- package/dist/components/BlessNodeGraph.vue.d.ts +110 -0
- package/dist/components/BlessNodeGraph.vue_vue_type_script_setup_true_lang.js +321 -0
- package/dist/components/BlessOnboardingChecklist.css +1 -0
- package/dist/components/BlessOnboardingChecklist.js +6 -0
- package/dist/components/BlessOnboardingChecklist.vue.d.ts +72 -0
- package/dist/components/BlessOnboardingChecklist.vue_vue_type_script_setup_true_lang.js +157 -0
- package/dist/components/BlessOrderList.vue.d.ts +5 -0
- package/dist/components/BlessOrderList.vue_vue_type_script_setup_true_lang.js +62 -56
- package/dist/components/BlessPagination.vue.d.ts +2 -0
- package/dist/components/BlessPagination.vue_vue_type_script_setup_true_lang.js +2 -1
- package/dist/components/BlessPickList.vue.d.ts +5 -0
- package/dist/components/BlessPickList.vue_vue_type_script_setup_true_lang.js +55 -49
- package/dist/components/BlessRangeCalendar.css +1 -0
- package/dist/components/BlessRangeCalendar.js +6 -0
- package/dist/components/BlessRangeCalendar.vue.d.ts +51 -0
- package/dist/components/BlessRangeCalendar.vue_vue_type_script_setup_true_lang.js +217 -0
- package/dist/components/BlessScheduler.css +1 -0
- package/dist/components/BlessScheduler.js +6 -0
- package/dist/components/BlessScheduler.vue.d.ts +95 -0
- package/dist/components/BlessScheduler.vue_vue_type_script_setup_true_lang.js +347 -0
- package/dist/components/BlessShortcutRecorder.vue.d.ts +10 -0
- package/dist/components/BlessShortcutRecorder.vue_vue_type_script_setup_true_lang.js +50 -40
- package/dist/components/BlessSignaturePad.vue.d.ts +1 -1
- package/dist/components/BlessSliderCaptcha.vue.d.ts +5 -0
- package/dist/components/BlessSliderCaptcha.vue_vue_type_script_setup_true_lang.js +89 -84
- package/dist/components/BlessSortable.css +1 -1
- package/dist/components/BlessSortable.vue.d.ts +19 -1
- package/dist/components/BlessSortable.vue_vue_type_script_setup_true_lang.js +103 -55
- package/dist/components/BlessSparkline.css +1 -0
- package/dist/components/BlessSparkline.js +6 -0
- package/dist/components/BlessSparkline.vue.d.ts +28 -0
- package/dist/components/BlessSparkline.vue_vue_type_script_setup_true_lang.js +107 -0
- package/dist/components/BlessSteps.vue.d.ts +2 -0
- package/dist/components/BlessSteps.vue_vue_type_script_setup_true_lang.js +3 -2
- package/dist/components/BlessSwipeDeck.vue.d.ts +1 -1
- package/dist/components/BlessSwipeDeck.vue_vue_type_script_setup_true_lang.js +2 -1
- package/dist/components/BlessTimer.vue.d.ts +18 -0
- package/dist/components/BlessTimer.vue_vue_type_script_setup_true_lang.js +52 -43
- package/dist/components/BlessTour.vue.d.ts +1 -0
- package/dist/components/BlessTour.vue_vue_type_script_setup_true_lang.js +48 -42
- package/dist/components/BlessTreemap.css +1 -0
- package/dist/components/BlessTreemap.js +6 -0
- package/dist/components/BlessTreemap.vue.d.ts +46 -0
- package/dist/components/BlessTreemap.vue_vue_type_script_setup_true_lang.js +137 -0
- package/dist/components/BlessUploader.vue.d.ts +11 -0
- package/dist/components/BlessUploader.vue_vue_type_script_setup_true_lang.js +80 -69
- package/dist/composables/annotate.d.ts +35 -0
- package/dist/composables/annotate.js +33 -0
- package/dist/composables/canvasView.d.ts +21 -0
- package/dist/composables/canvasView.js +23 -0
- package/dist/composables/confetti.d.ts +32 -0
- package/dist/composables/confetti.js +23 -0
- package/dist/composables/dayBlocks.d.ts +11 -0
- package/dist/composables/dayBlocks.js +26 -0
- package/dist/composables/formula.d.ts +28 -0
- package/dist/composables/formula.js +161 -0
- package/dist/composables/graph.d.ts +19 -0
- package/dist/composables/graph.js +16 -0
- package/dist/composables/schedule.d.ts +27 -0
- package/dist/composables/schedule.js +54 -0
- package/dist/composables/treemap.d.ts +23 -0
- package/dist/composables/treemap.js +77 -0
- package/dist/composables/useAutoScroll.d.ts +15 -0
- package/dist/composables/useAutoScroll.js +32 -0
- package/dist/composables/useSortable.d.ts +42 -2
- package/dist/composables/useSortable.js +87 -14
- package/dist/index.d.ts +25 -1
- package/dist/index.js +78 -63
- package/package.json +4 -2
|
@@ -3,16 +3,56 @@ import { Ref } from 'vue';
|
|
|
3
3
|
export declare function moveItem<T>(arr: readonly T[], from: number, to: number): T[];
|
|
4
4
|
/** Index of the rect whose centre is closest to the point; works for lists and grids alike. */
|
|
5
5
|
export declare function nearestIndex(rects: readonly DOMRect[], x: number, y: number): number;
|
|
6
|
+
/** one list of a group: lists sharing a `group` name accept each other's items */
|
|
7
|
+
export interface SortableMember {
|
|
8
|
+
root: Ref<HTMLElement | null | undefined>;
|
|
9
|
+
list: () => unknown[];
|
|
10
|
+
set: (v: unknown[]) => void;
|
|
11
|
+
/** where an item coming from another list would land: the nearest item and which side of it */
|
|
12
|
+
drop: Ref<{
|
|
13
|
+
index: number;
|
|
14
|
+
after: boolean;
|
|
15
|
+
} | null>;
|
|
16
|
+
/** items run top to bottom (a list) rather than left to right (a grid) */
|
|
17
|
+
vertical: () => boolean;
|
|
18
|
+
label: () => string;
|
|
19
|
+
/** take over a keyboard-held item at `index`, with focus */
|
|
20
|
+
adopt: (index: number) => void;
|
|
21
|
+
/** put focus on the grip at `index` */
|
|
22
|
+
focus: (index: number) => void;
|
|
23
|
+
/** say something in this list's live region (where focus is, after a hand-over) */
|
|
24
|
+
say: (message: string) => void;
|
|
25
|
+
}
|
|
26
|
+
/** Register a list in a group; returns the function that leaves it. */
|
|
27
|
+
export declare function joinGroup(name: string, m: SortableMember): () => void;
|
|
28
|
+
/** The lists of a group in document order, so "next" means the one after in the page. */
|
|
29
|
+
export declare function membersOf(name: string): SortableMember[];
|
|
30
|
+
/** Where a point would drop into a list: next to the nearest item, or slot 0 when it is empty. */
|
|
31
|
+
export declare function slotAt(m: SortableMember, x: number, y: number, selector?: string): {
|
|
32
|
+
index: number;
|
|
33
|
+
after: boolean;
|
|
34
|
+
};
|
|
35
|
+
/** Move the item at `index` of `from` into `to` at `at`; both lists are replaced, not mutated. */
|
|
36
|
+
export declare function transfer(from: SortableMember, index: number, to: SortableMember, at: number): unknown;
|
|
37
|
+
/** Remember every list of the group; the returned `restore` puts them all back (Esc). */
|
|
38
|
+
export declare function snapshotGroup(name: string): () => void;
|
|
39
|
+
export declare const restoreGroup: () => void;
|
|
40
|
+
export interface SortableGroup {
|
|
41
|
+
name: () => string | undefined;
|
|
42
|
+
self: SortableMember;
|
|
43
|
+
/** the item at `from` was dropped on another list, to land at `at` there */
|
|
44
|
+
onTransfer: (from: number, to: SortableMember, at: number) => void;
|
|
45
|
+
}
|
|
6
46
|
/**
|
|
7
47
|
* Pointer-drag reorder over the children of `root` that match `selector`. Bind `grab` /
|
|
8
48
|
* `track` / `drop` / `cancel` to the drag handle's pointer events and set `touch-action: none`
|
|
9
49
|
* on it; `onMove(from, to)` fires once, on release.
|
|
10
50
|
*/
|
|
11
|
-
export declare function useSortable(root: Ref<HTMLElement | null | undefined>, onMove: (from: number, to: number) => void, selector?: string): {
|
|
51
|
+
export declare function useSortable(root: Ref<HTMLElement | null | undefined>, onMove: (from: number, to: number) => void, selector?: string, group?: SortableGroup): {
|
|
12
52
|
drag: Ref<number | null, number | null>;
|
|
13
53
|
over: Ref<number | null, number | null>;
|
|
14
54
|
grab(i: number, e: PointerEvent): void;
|
|
15
55
|
track(e: PointerEvent): void;
|
|
16
56
|
drop(): void;
|
|
17
|
-
cancel
|
|
57
|
+
cancel(): void;
|
|
18
58
|
};
|
|
@@ -1,34 +1,107 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useAutoScroll as e } from "./useAutoScroll.js";
|
|
2
|
+
import { onBeforeUnmount as t, ref as n } from "vue";
|
|
2
3
|
//#region src/composables/useSortable.ts
|
|
3
|
-
function
|
|
4
|
+
function r(e, t, n) {
|
|
4
5
|
let r = e.slice();
|
|
5
6
|
return r.splice(n, 0, ...r.splice(t, 1)), r;
|
|
6
7
|
}
|
|
7
|
-
function
|
|
8
|
+
function i(e, t, n) {
|
|
8
9
|
let r = 0, i = Infinity;
|
|
9
10
|
return e.forEach((e, a) => {
|
|
10
11
|
let o = (e.left + e.width / 2 - t) ** 2 + (e.top + e.height / 2 - n) ** 2;
|
|
11
12
|
o < i && (i = o, r = a);
|
|
12
13
|
}), r;
|
|
13
14
|
}
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
var a = /* @__PURE__ */ new Map(), o = null;
|
|
16
|
+
function s(e, t) {
|
|
17
|
+
return a.has(e) || a.set(e, /* @__PURE__ */ new Set()), a.get(e).add(t), () => {
|
|
18
|
+
a.get(e)?.delete(t), a.get(e)?.size || a.delete(e);
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
function c(e) {
|
|
22
|
+
return [...a.get(e) ?? []].sort((e, t) => {
|
|
23
|
+
let n = e.root.value, r = t.root.value;
|
|
24
|
+
return !n || !r ? 0 : n.compareDocumentPosition(r) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function l(e, t, n, r = "[data-sortable-item]") {
|
|
28
|
+
let a = Array.from(e.root.value?.querySelectorAll(r) ?? []);
|
|
29
|
+
if (!a.length) return {
|
|
30
|
+
index: 0,
|
|
31
|
+
after: !1
|
|
32
|
+
};
|
|
33
|
+
let o = a.map((e) => e.getBoundingClientRect()), s = i(o, t, n), c = o[s];
|
|
34
|
+
return {
|
|
35
|
+
index: s,
|
|
36
|
+
after: e.vertical() ? n > c.top + c.height / 2 : t > c.left + c.width / 2
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function u(e, t, n, r) {
|
|
40
|
+
let i = e.list().slice(), [a] = i.splice(t, 1), o = n.list().slice();
|
|
41
|
+
return o.splice(r, 0, a), e.set(i), n.set(o), a;
|
|
42
|
+
}
|
|
43
|
+
function d(e) {
|
|
44
|
+
let t = c(e).map((e) => [e, e.list().slice()]);
|
|
45
|
+
return o = () => t.forEach(([e, t]) => e.set(t)), o;
|
|
46
|
+
}
|
|
47
|
+
var f = () => {
|
|
48
|
+
o?.(), o = null;
|
|
49
|
+
};
|
|
50
|
+
function p(r, a, o = "[data-sortable-item]", s) {
|
|
51
|
+
let u = n(null), d = n(null), f = {
|
|
52
|
+
x: 0,
|
|
53
|
+
y: 0
|
|
54
|
+
}, p = e(() => null, () => h(f.x, f.y));
|
|
55
|
+
t(p.stop);
|
|
56
|
+
let m = () => {
|
|
57
|
+
p.stop(), u.value = d.value = null;
|
|
58
|
+
};
|
|
59
|
+
function h(e, t) {
|
|
60
|
+
if (u.value == null) return;
|
|
61
|
+
let n = s?.name();
|
|
62
|
+
if (n) {
|
|
63
|
+
let r = c(n).filter((e) => e !== s.self);
|
|
64
|
+
r.forEach((e) => e.drop.value = null);
|
|
65
|
+
let i = r.find((n) => {
|
|
66
|
+
let r = n.root.value?.getBoundingClientRect();
|
|
67
|
+
return r && e >= r.left && e <= r.right && t >= r.top && t <= r.bottom;
|
|
68
|
+
});
|
|
69
|
+
if (i) {
|
|
70
|
+
i.drop.value = l(i, e, t, o), d.value = null;
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
let a = r.value?.querySelectorAll(o) ?? [];
|
|
75
|
+
d.value = i(Array.from(a, (e) => e.getBoundingClientRect()), e, t);
|
|
76
|
+
}
|
|
16
77
|
return {
|
|
17
|
-
drag:
|
|
18
|
-
over:
|
|
78
|
+
drag: u,
|
|
79
|
+
over: d,
|
|
19
80
|
grab(e, t) {
|
|
20
|
-
t.button || (t.currentTarget.setPointerCapture?.(t.pointerId),
|
|
81
|
+
t.button || (t.currentTarget.setPointerCapture?.(t.pointerId), u.value = d.value = e, f = {
|
|
82
|
+
x: t.clientX,
|
|
83
|
+
y: t.clientY
|
|
84
|
+
}, p.point(t.clientX, t.clientY), p.start());
|
|
21
85
|
},
|
|
22
86
|
track(e) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
87
|
+
f = {
|
|
88
|
+
x: e.clientX,
|
|
89
|
+
y: e.clientY
|
|
90
|
+
}, p.point(e.clientX, e.clientY), h(e.clientX, e.clientY);
|
|
26
91
|
},
|
|
27
92
|
drop() {
|
|
28
|
-
|
|
93
|
+
let e = s?.name(), t = e ? c(e).filter((e) => e !== s.self) : [], n = t.find((e) => e.drop.value);
|
|
94
|
+
if (u.value != null && n?.drop.value) {
|
|
95
|
+
let { index: e, after: t } = n.drop.value;
|
|
96
|
+
s.onTransfer(u.value, n, e + +!!t);
|
|
97
|
+
} else u.value != null && d.value != null && d.value !== u.value && a(u.value, d.value);
|
|
98
|
+
t.forEach((e) => e.drop.value = null), m();
|
|
29
99
|
},
|
|
30
|
-
cancel
|
|
100
|
+
cancel() {
|
|
101
|
+
let e = s?.name();
|
|
102
|
+
e && c(e).forEach((e) => e.drop.value = null), m();
|
|
103
|
+
}
|
|
31
104
|
};
|
|
32
105
|
}
|
|
33
106
|
//#endregion
|
|
34
|
-
export {
|
|
107
|
+
export { s as joinGroup, c as membersOf, r as moveItem, i as nearestIndex, f as restoreGroup, l as slotAt, d as snapshotGroup, u as transfer, p as useSortable };
|
package/dist/index.d.ts
CHANGED
|
@@ -75,7 +75,7 @@ export { default as BlessToaster } from './components/BlessToaster.vue';
|
|
|
75
75
|
export { useToast } from './composables/useToast';
|
|
76
76
|
export type { BlessToastOptions, BlessToastItem } from './composables/useToast';
|
|
77
77
|
export { default as BlessCommand } from './components/BlessCommand.vue';
|
|
78
|
-
export type { BlessCommandItem } from './components/BlessCommand.vue';
|
|
78
|
+
export type { BlessCommandItem, BlessCommandScope } from './components/BlessCommand.vue';
|
|
79
79
|
export { default as BlessCombobox } from './components/BlessCombobox.vue';
|
|
80
80
|
export { default as BlessCalendar } from './components/BlessCalendar.vue';
|
|
81
81
|
export { default as BlessDatePicker } from './components/BlessDatePicker.vue';
|
|
@@ -151,6 +151,29 @@ export { default as BlessRadialMenu } from './components/BlessRadialMenu.vue';
|
|
|
151
151
|
export { polar, sectorAt, keepInside } from './composables/radial';
|
|
152
152
|
export type { BlessRadialItem } from './components/BlessRadialMenu.vue';
|
|
153
153
|
export { default as BlessLoupe } from './components/BlessLoupe.vue';
|
|
154
|
+
export { default as BlessSparkline } from './components/BlessSparkline.vue';
|
|
155
|
+
export { default as BlessConfetti } from './components/BlessConfetti.vue';
|
|
156
|
+
export { default as BlessInfiniteCanvas } from './components/BlessInfiniteCanvas.vue';
|
|
157
|
+
export { blessCanvasKey } from './components/BlessInfiniteCanvas.vue';
|
|
158
|
+
export type { CanvasView, BlessCanvasContext } from './components/BlessInfiniteCanvas.vue';
|
|
159
|
+
export { default as BlessNodeGraph } from './components/BlessNodeGraph.vue';
|
|
160
|
+
export type { BlessGraphNode, BlessGraphEdge } from './components/BlessNodeGraph.vue';
|
|
161
|
+
export { default as BlessTreemap } from './components/BlessTreemap.vue';
|
|
162
|
+
export type { BlessTreemapNode } from './components/BlessTreemap.vue';
|
|
163
|
+
export { default as BlessCoachmark } from './components/BlessCoachmark.vue';
|
|
164
|
+
export { default as BlessOnboardingChecklist } from './components/BlessOnboardingChecklist.vue';
|
|
165
|
+
export type { BlessChecklistItem } from './components/BlessOnboardingChecklist.vue';
|
|
166
|
+
export { default as BlessDock } from './components/BlessDock.vue';
|
|
167
|
+
export type { BlessDockItem } from './components/BlessDock.vue';
|
|
168
|
+
export { default as BlessFormula } from './components/BlessFormula.vue';
|
|
169
|
+
export { evaluate as evaluateFormula } from './composables/formula';
|
|
170
|
+
export type { BlessFormulaVariable, BlessFormulaError } from './components/BlessFormula.vue';
|
|
171
|
+
export { default as BlessRangeCalendar } from './components/BlessRangeCalendar.vue';
|
|
172
|
+
export type { DayBlock as BlessDayBlock } from './composables/dayBlocks';
|
|
173
|
+
export { default as BlessAnnotator } from './components/BlessAnnotator.vue';
|
|
174
|
+
export type { BlessRegion } from './components/BlessAnnotator.vue';
|
|
175
|
+
export { default as BlessScheduler } from './components/BlessScheduler.vue';
|
|
176
|
+
export type { BlessScheduleEvent } from './components/BlessScheduler.vue';
|
|
154
177
|
export { default as BlessSliderCaptcha } from './components/BlessSliderCaptcha.vue';
|
|
155
178
|
export { default as BlessSwipeDeck } from './components/BlessSwipeDeck.vue';
|
|
156
179
|
export type { BlessSwipeDecision } from './components/BlessSwipeDeck.vue';
|
|
@@ -167,6 +190,7 @@ export type { BlessMentionOption } from './components/BlessMention.vue';
|
|
|
167
190
|
export { default as BlessHeatmapCalendar } from './components/BlessHeatmapCalendar.vue';
|
|
168
191
|
export { default as BlessSortable } from './components/BlessSortable.vue';
|
|
169
192
|
export { useSortable, moveItem, nearestIndex } from './composables/useSortable';
|
|
193
|
+
export { useAutoScroll, edgeSpeed } from './composables/useAutoScroll';
|
|
170
194
|
export { default as BlessPickList } from './components/BlessPickList.vue';
|
|
171
195
|
export { default as BlessMockup } from './components/BlessMockup.vue';
|
|
172
196
|
export { default as BlessTour } from './components/BlessTour.vue';
|
package/dist/index.js
CHANGED
|
@@ -122,66 +122,81 @@ import wt from "./components/BlessSplitView.js";
|
|
|
122
122
|
import { keepInside as Tt, polar as Et, sectorAt as Dt } from "./composables/radial.js";
|
|
123
123
|
import Ot from "./components/BlessRadialMenu.js";
|
|
124
124
|
import kt from "./components/BlessLoupe.js";
|
|
125
|
-
import At from "./components/
|
|
126
|
-
import jt from "./components/
|
|
127
|
-
import Mt from "./components/
|
|
128
|
-
import
|
|
129
|
-
import
|
|
130
|
-
import
|
|
131
|
-
import
|
|
132
|
-
import
|
|
133
|
-
import
|
|
134
|
-
import
|
|
135
|
-
import
|
|
136
|
-
import
|
|
137
|
-
import
|
|
138
|
-
import
|
|
139
|
-
import
|
|
140
|
-
import
|
|
141
|
-
import
|
|
142
|
-
import
|
|
143
|
-
import
|
|
144
|
-
import
|
|
145
|
-
import
|
|
146
|
-
import
|
|
147
|
-
import
|
|
148
|
-
import an from "./
|
|
149
|
-
import
|
|
150
|
-
import
|
|
151
|
-
import
|
|
152
|
-
import
|
|
153
|
-
import
|
|
154
|
-
import
|
|
155
|
-
import
|
|
156
|
-
import
|
|
157
|
-
import
|
|
158
|
-
import
|
|
159
|
-
import
|
|
160
|
-
import
|
|
161
|
-
import
|
|
162
|
-
import
|
|
163
|
-
import
|
|
164
|
-
import
|
|
165
|
-
import
|
|
166
|
-
import
|
|
167
|
-
import
|
|
168
|
-
import
|
|
169
|
-
import
|
|
170
|
-
import
|
|
171
|
-
import
|
|
172
|
-
import
|
|
173
|
-
import
|
|
174
|
-
import
|
|
175
|
-
import
|
|
176
|
-
import
|
|
177
|
-
import
|
|
178
|
-
import
|
|
179
|
-
import
|
|
180
|
-
import
|
|
181
|
-
import
|
|
182
|
-
import
|
|
183
|
-
import Un from "./
|
|
184
|
-
import
|
|
185
|
-
import
|
|
186
|
-
import
|
|
187
|
-
|
|
125
|
+
import At from "./components/BlessSparkline.js";
|
|
126
|
+
import jt from "./components/BlessConfetti.js";
|
|
127
|
+
import { blessCanvasKey as Mt } from "./components/BlessInfiniteCanvas.vue_vue_type_script_setup_true_lang.js";
|
|
128
|
+
import Nt from "./components/BlessInfiniteCanvas.js";
|
|
129
|
+
import Pt from "./components/BlessNodeGraph.js";
|
|
130
|
+
import Ft from "./components/BlessTreemap.js";
|
|
131
|
+
import It from "./components/BlessCoachmark.js";
|
|
132
|
+
import Lt from "./components/BlessOnboardingChecklist.js";
|
|
133
|
+
import Rt from "./components/BlessDock.js";
|
|
134
|
+
import { evaluate as zt } from "./composables/formula.js";
|
|
135
|
+
import Bt from "./components/BlessFormula.js";
|
|
136
|
+
import Vt from "./components/BlessRangeCalendar.js";
|
|
137
|
+
import Ht from "./components/BlessAnnotator.js";
|
|
138
|
+
import Ut from "./components/BlessScheduler.js";
|
|
139
|
+
import Wt from "./components/BlessSliderCaptcha.js";
|
|
140
|
+
import Gt from "./components/BlessSwipeDeck.js";
|
|
141
|
+
import Kt from "./components/BlessHotspots.js";
|
|
142
|
+
import { initialBox as qt, moveBox as Jt, resizeBox as Yt, scaleBox as Xt } from "./composables/cropBox.js";
|
|
143
|
+
import Zt from "./components/BlessCropper.js";
|
|
144
|
+
import { edgeSpeed as Qt, useAutoScroll as $t } from "./composables/useAutoScroll.js";
|
|
145
|
+
import en from "./components/BlessKanban.js";
|
|
146
|
+
import tn from "./components/BlessMention.js";
|
|
147
|
+
import nn from "./components/BlessHeatmapCalendar.js";
|
|
148
|
+
import { moveItem as rn, nearestIndex as an, useSortable as on } from "./composables/useSortable.js";
|
|
149
|
+
import sn from "./components/BlessSortable.js";
|
|
150
|
+
import cn from "./components/BlessPickList.js";
|
|
151
|
+
import ln from "./components/BlessMockup.js";
|
|
152
|
+
import un from "./components/BlessTour.js";
|
|
153
|
+
import dn from "./components/BlessKnob.js";
|
|
154
|
+
import fn from "./components/BlessWatermarkOverlay.js";
|
|
155
|
+
import pn from "./components/BlessSignaturePad.js";
|
|
156
|
+
import mn from "./components/BlessQrCode.js";
|
|
157
|
+
import hn from "./components/BlessEditor.js";
|
|
158
|
+
import gn from "./components/BlessChip.js";
|
|
159
|
+
import _n from "./components/BlessInputNumber.js";
|
|
160
|
+
import vn from "./components/BlessPasswordInput.js";
|
|
161
|
+
import yn from "./components/BlessStepper.js";
|
|
162
|
+
import bn from "./components/BlessInputTags.js";
|
|
163
|
+
import xn from "./components/BlessToolbar.js";
|
|
164
|
+
import Sn from "./components/BlessFloatLabel.js";
|
|
165
|
+
import Cn from "./components/BlessFieldset.js";
|
|
166
|
+
import wn from "./components/BlessPanel.js";
|
|
167
|
+
import Tn from "./components/BlessMeterGroup.js";
|
|
168
|
+
import En from "./components/BlessSplitButton.js";
|
|
169
|
+
import Dn from "./components/BlessBlockUI.js";
|
|
170
|
+
import On from "./components/BlessInplace.js";
|
|
171
|
+
import kn from "./components/BlessDeferredContent.js";
|
|
172
|
+
import An from "./components/BlessConfirmPopup.js";
|
|
173
|
+
import jn from "./components/BlessCompare.js";
|
|
174
|
+
import Mn from "./components/BlessDataView.js";
|
|
175
|
+
import { useAnimateOnScroll as Nn } from "./composables/useAnimateOnScroll.js";
|
|
176
|
+
import Pn from "./components/BlessPaletteToggle.js";
|
|
177
|
+
import Fn from "./components/BlessCascadeSelect.js";
|
|
178
|
+
import In from "./components/BlessTreeSelect.js";
|
|
179
|
+
import Ln from "./components/BlessTreeTable.js";
|
|
180
|
+
import Rn from "./components/BlessOrgChart.js";
|
|
181
|
+
import { useDialog as zn } from "./composables/useDialog.js";
|
|
182
|
+
import Bn from "./components/BlessDialogHost.js";
|
|
183
|
+
import { useLongPress as Vn, usePan as Hn, useSwipe as Un, useTouchRepeat as Wn } from "./composables/useGesture.js";
|
|
184
|
+
import Gn from "./components/BlessPullToRefresh.js";
|
|
185
|
+
import Kn from "./components/BlessSlideItem.js";
|
|
186
|
+
import qn from "./components/BlessActionSheet.js";
|
|
187
|
+
import Jn from "./components/BlessTabPanels.js";
|
|
188
|
+
import Yn from "./components/BlessInfiniteScroll.js";
|
|
189
|
+
import Xn from "./components/BlessLayout.js";
|
|
190
|
+
import Zn from "./components/BlessCircularProgress.js";
|
|
191
|
+
import Qn from "./components/BlessRange.js";
|
|
192
|
+
import $n from "./components/BlessTimePicker.js";
|
|
193
|
+
import er from "./components/BlessImg.js";
|
|
194
|
+
import tr from "./components/BlessVideo.js";
|
|
195
|
+
import { useLoadingBar as nr } from "./composables/useLoadingBar.js";
|
|
196
|
+
import rr from "./components/BlessLoadingBar.js";
|
|
197
|
+
import ir from "./components/BlessUploader.js";
|
|
198
|
+
import ar from "./components/BlessParallax.js";
|
|
199
|
+
import or from "./components/BlessSlideTransition.js";
|
|
200
|
+
import sr from "./components/BlessClientOnly.js";
|
|
201
|
+
import { useFullscreen as cr, useResizeObserver as lr, useScroll as ur, useVisibility as dr } from "./composables/useBrowser.js";
|
|
202
|
+
export { Y as BlessAccordion, X as BlessAccordionItem, qn as BlessActionSheet, H as BlessAlert, me as BlessAlertDialog, Ht as BlessAnnotator, V as BlessAspectRatio, Re as BlessAttachment, E as BlessAudioPlayer, B as BlessAvatar, _ as BlessBackground, o as BlessBadge, Dn as BlessBlockUI, ot as BlessBottomTabs, $ as BlessBreadcrumb, Ie as BlessBubble, a as BlessButton, G as BlessButtonGroup, we as BlessCalendar, v as BlessCard, ke as BlessCarousel, Fn as BlessCascadeSelect, Ve as BlessChart, M as BlessCheckbox, gn as BlessChip, Zn as BlessCircularProgress, sr as BlessClientOnly, It as BlessCoachmark, xt as BlessCodeBlock, J as BlessCollapsible, We as BlessColorPicker, ve as BlessCombobox, _e as BlessCommand, jn as BlessCompare, jt as BlessConfetti, An as BlessConfirmPopup, Ye as BlessContainer, ue as BlessContextMenu, ut as BlessCountUp, Zt as BlessCropper, s as BlessDash, Oe as BlessDataTable, Mn as BlessDataView, Te as BlessDatePicker, kn as BlessDeferredContent, Bn as BlessDialogHost, bt as BlessDiff, Rt as BlessDock, pe as BlessDrawer, le as BlessDropdownMenu, hn as BlessEditor, W as BlessEmpty, re as BlessField, Cn as BlessFieldset, Ue as BlessFileInput, Sn as BlessFloatLabel, ne as BlessForm, Bt as BlessFormula, w as BlessGallery, pt as BlessGantt, ft as BlessGauge, nn as BlessHeatmapCalendar, Kt as BlessHotspots, se as BlessHoverCard, c as BlessIcon, er as BlessImg, Je as BlessIndicator, Nt as BlessInfiniteCanvas, Yn as BlessInfiniteScroll, On as BlessInplace, A as BlessInput, K as BlessInputGroup, rt as BlessInputMask, _n as BlessInputNumber, Ee as BlessInputOTP, bn as BlessInputTags, q as BlessItem, en as BlessKanban, U as BlessKbd, dn as BlessKnob, k as BlessLabel, Xn as BlessLayout, y as BlessList, b as BlessListItem, Qe as BlessListbox, rr as BlessLoadingBar, kt as BlessLoupe, Le as BlessMarker, St as BlessMarquee, Ct as BlessMasonry, tn as BlessMention, ce as BlessMenuList, de as BlessMenubar, Fe as BlessMessage, ze as BlessMessageScroller, Tn as BlessMeterGroup, ln as BlessMockup, C as BlessModal, je as BlessNavigationMenu, Pt as BlessNodeGraph, Lt as BlessOnboardingChecklist, lt as BlessOrderList, Rn as BlessOrgChart, ee as BlessPagination, Pn as BlessPaletteToggle, wn as BlessPanel, ar as BlessParallax, vn as BlessPasswordInput, Ge as BlessPasswordMeter, cn as BlessPickList, ae as BlessPopover, R as BlessProgress, Gn as BlessPullToRefresh, mn as BlessQrCode, Be as BlessQuestionnaire, Ot as BlessRadialMenu, P as BlessRadio, N as BlessRadioGroup, Qn as BlessRange, Vt as BlessRangeCalendar, He as BlessRating, Ae as BlessResizable, Ut as BlessScheduler, te as BlessScrollArea, Ze as BlessScrollTop, d as BlessSection, I as BlessSelect, O as BlessSeparator, fe as BlessSheet, vt as BlessShortcutRecorder, g as BlessSidebarNav, pn as BlessSignaturePad, z as BlessSkeleton, e as BlessSkew, Kn as BlessSlideItem, or as BlessSlideTransition, L as BlessSlider, Wt as BlessSliderCaptcha, sn as BlessSortable, At as BlessSparkline, st as BlessSpeedDial, i as BlessSpinner, D as BlessSplash, En as BlessSplitButton, wt as BlessSplitView, Xe as BlessStack, h as BlessStage, yn as BlessStepper, Ke as BlessSteps, et as BlessSwap, Gt as BlessSwipeDeck, F as BlessSwitch, Jn as BlessTabPanels, T as BlessTable, x as BlessTabs, l as BlessText, j as BlessTextarea, Pe as BlessThemeToggle, $n as BlessTimePicker, qe as BlessTimeline, dt as BlessTimer, ge as BlessToaster, Z as BlessToggle, Q as BlessToggleGroup, xn as BlessToolbar, oe as BlessTooltip, un as BlessTour, $e as BlessTree, In as BlessTreeSelect, Ln as BlessTreeTable, Ft as BlessTreemap, ir as BlessUploader, tr as BlessVideo, ct as BlessVirtualScroller, u as BlessWatermark, fn as BlessWatermarkOverlay, ye as addDays, be as addMonths, tt as applyMask, Mt as blessCanvasKey, t as blessLinkKey, Me as blessPalettes, yt as diffLines, Qt as edgeSpeed, zt as evaluateFormula, xe as fromISO, qt as initialBox, mt as isModifierKey, n as isRouterHref, Se as isoToday, Tt as keepInside, ht as matchShortcut, Jt as moveBox, rn as moveItem, an as nearestIndex, Et as polar, f as reducedMotion, Yt as resizeBox, Xt as scaleBox, p as scrollBehavior, Dt as sectorAt, gt as shortcutFromEvent, _t as splitShortcut, Ce as toISO, nt as unmask, Nn as useAnimateOnScroll, $t as useAutoScroll, De as useDataTable, zn as useDialog, ie as useFloating, cr as useFullscreen, S as useHash, r as useLink, nr as useLoadingBar, Vn as useLongPress, m as useMedia, Hn as usePan, lr as useResizeObserver, at as useRovingFocus, ur as useScroll, it as useScrollSpy, on as useSortable, Un as useSwipe, Ne as useTheme, he as useToast, Wn as useTouchRepeat, dr as useVisibility };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "blessing-ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Blessing UI — Themed Flat Interface. Flat by design, raised with Vue, blessed for everyone.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"components",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"docs:preview": "vitepress preview docs",
|
|
56
56
|
"docs:meta": "node docs/scripts/meta.ts",
|
|
57
57
|
"docs:pages": "node docs/scripts/pages.ts",
|
|
58
|
-
"e2e": "node e2e/sweep.mjs chromium,firefox && node e2e/axe.mjs && node e2e/interact.mjs chromium && node e2e/interact.mjs firefox",
|
|
58
|
+
"e2e": "node e2e/sweep.mjs chromium,firefox && node e2e/axe.mjs && node e2e/motion.mjs && node e2e/interact.mjs chromium && node e2e/interact.mjs firefox",
|
|
59
59
|
"e2e:consumer": "pnpm build && node e2e/consumer/check.mjs",
|
|
60
60
|
"docs:blocks": "node docs/scripts/blocks.ts",
|
|
61
61
|
"docs:shots": "node docs/scripts/shots.mjs"
|
|
@@ -72,7 +72,9 @@
|
|
|
72
72
|
"axe-core": "^4.13.0",
|
|
73
73
|
"jsdom": "^30.1.0",
|
|
74
74
|
"oxfmt": "^0.68.0",
|
|
75
|
+
"pixelmatch": "^8.0.0",
|
|
75
76
|
"playwright": "^1.63.0",
|
|
77
|
+
"pngjs": "^7.0.0",
|
|
76
78
|
"typescript": "^6.0.3",
|
|
77
79
|
"uqr": "^0.1.3",
|
|
78
80
|
"vite": "^8.3.0",
|