blessing-ui 0.1.0 → 0.2.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.
Files changed (96) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +65 -43
  3. package/dist/blessing-ui.css +60 -0
  4. package/dist/components/BlessCodeBlock.css +1 -0
  5. package/dist/components/BlessCodeBlock.js +6 -0
  6. package/dist/components/BlessCodeBlock.vue.d.ts +62 -0
  7. package/dist/components/BlessCodeBlock.vue_vue_type_script_setup_true_lang.js +134 -0
  8. package/dist/components/BlessCountUp.css +1 -0
  9. package/dist/components/BlessCountUp.js +6 -0
  10. package/dist/components/BlessCountUp.vue.d.ts +18 -0
  11. package/dist/components/BlessCountUp.vue_vue_type_script_setup_true_lang.js +49 -0
  12. package/dist/components/BlessCropper.css +1 -0
  13. package/dist/components/BlessCropper.js +6 -0
  14. package/dist/components/BlessCropper.vue.d.ts +54 -0
  15. package/dist/components/BlessCropper.vue_vue_type_script_setup_true_lang.js +212 -0
  16. package/dist/components/BlessDiff.css +1 -0
  17. package/dist/components/BlessDiff.js +6 -0
  18. package/dist/components/BlessDiff.vue.d.ts +22 -0
  19. package/dist/components/BlessDiff.vue_vue_type_script_setup_true_lang.js +148 -0
  20. package/dist/components/BlessGantt.css +1 -0
  21. package/dist/components/BlessGantt.js +6 -0
  22. package/dist/components/BlessGantt.vue.d.ts +69 -0
  23. package/dist/components/BlessGantt.vue_vue_type_script_setup_true_lang.js +270 -0
  24. package/dist/components/BlessGauge.css +1 -0
  25. package/dist/components/BlessGauge.js +6 -0
  26. package/dist/components/BlessGauge.vue.d.ts +36 -0
  27. package/dist/components/BlessGauge.vue_vue_type_script_setup_true_lang.js +100 -0
  28. package/dist/components/BlessHeatmapCalendar.css +1 -0
  29. package/dist/components/BlessHeatmapCalendar.js +6 -0
  30. package/dist/components/BlessHeatmapCalendar.vue.d.ts +38 -0
  31. package/dist/components/BlessHeatmapCalendar.vue_vue_type_script_setup_true_lang.js +146 -0
  32. package/dist/components/BlessHotspots.css +1 -0
  33. package/dist/components/BlessHotspots.js +6 -0
  34. package/dist/components/BlessHotspots.vue.d.ts +49 -0
  35. package/dist/components/BlessHotspots.vue_vue_type_script_setup_true_lang.js +127 -0
  36. package/dist/components/BlessKanban.css +1 -0
  37. package/dist/components/BlessKanban.js +6 -0
  38. package/dist/components/BlessKanban.vue.d.ts +55 -0
  39. package/dist/components/BlessKanban.vue_vue_type_script_setup_true_lang.js +165 -0
  40. package/dist/components/BlessLoupe.css +1 -0
  41. package/dist/components/BlessLoupe.js +6 -0
  42. package/dist/components/BlessLoupe.vue.d.ts +16 -0
  43. package/dist/components/BlessLoupe.vue_vue_type_script_setup_true_lang.js +93 -0
  44. package/dist/components/BlessMarquee.css +1 -0
  45. package/dist/components/BlessMarquee.js +6 -0
  46. package/dist/components/BlessMarquee.vue.d.ts +40 -0
  47. package/dist/components/BlessMarquee.vue_vue_type_script_setup_true_lang.js +64 -0
  48. package/dist/components/BlessMasonry.css +1 -0
  49. package/dist/components/BlessMasonry.js +6 -0
  50. package/dist/components/BlessMasonry.vue.d.ts +33 -0
  51. package/dist/components/BlessMasonry.vue_vue_type_script_setup_true_lang.js +79 -0
  52. package/dist/components/BlessMention.css +1 -0
  53. package/dist/components/BlessMention.js +6 -0
  54. package/dist/components/BlessMention.vue.d.ts +32 -0
  55. package/dist/components/BlessMention.vue_vue_type_script_setup_true_lang.js +116 -0
  56. package/dist/components/BlessRadialMenu.css +1 -0
  57. package/dist/components/BlessRadialMenu.js +6 -0
  58. package/dist/components/BlessRadialMenu.vue.d.ts +45 -0
  59. package/dist/components/BlessRadialMenu.vue_vue_type_script_setup_true_lang.js +146 -0
  60. package/dist/components/BlessShortcutRecorder.css +1 -0
  61. package/dist/components/BlessShortcutRecorder.js +6 -0
  62. package/dist/components/BlessShortcutRecorder.vue.d.ts +29 -0
  63. package/dist/components/BlessShortcutRecorder.vue_vue_type_script_setup_true_lang.js +116 -0
  64. package/dist/components/BlessSliderCaptcha.css +1 -0
  65. package/dist/components/BlessSliderCaptcha.js +6 -0
  66. package/dist/components/BlessSliderCaptcha.vue.d.ts +33 -0
  67. package/dist/components/BlessSliderCaptcha.vue_vue_type_script_setup_true_lang.js +141 -0
  68. package/dist/components/BlessSortable.css +1 -0
  69. package/dist/components/BlessSortable.js +6 -0
  70. package/dist/components/BlessSortable.vue.d.ts +33 -0
  71. package/dist/components/BlessSortable.vue_vue_type_script_setup_true_lang.js +87 -0
  72. package/dist/components/BlessSplitView.css +1 -0
  73. package/dist/components/BlessSplitView.js +6 -0
  74. package/dist/components/BlessSplitView.vue.d.ts +61 -0
  75. package/dist/components/BlessSplitView.vue_vue_type_script_setup_true_lang.js +92 -0
  76. package/dist/components/BlessSwipeDeck.css +1 -0
  77. package/dist/components/BlessSwipeDeck.js +6 -0
  78. package/dist/components/BlessSwipeDeck.vue.d.ts +46 -0
  79. package/dist/components/BlessSwipeDeck.vue_vue_type_script_setup_true_lang.js +199 -0
  80. package/dist/components/BlessTimer.css +1 -0
  81. package/dist/components/BlessTimer.js +6 -0
  82. package/dist/components/BlessTimer.vue.d.ts +56 -0
  83. package/dist/components/BlessTimer.vue_vue_type_script_setup_true_lang.js +130 -0
  84. package/dist/composables/cropBox.d.ts +22 -0
  85. package/dist/composables/cropBox.js +39 -0
  86. package/dist/composables/diffLines.d.ts +10 -0
  87. package/dist/composables/diffLines.js +55 -0
  88. package/dist/composables/radial.d.ts +15 -0
  89. package/dist/composables/radial.js +22 -0
  90. package/dist/composables/shortcut.d.ts +12 -0
  91. package/dist/composables/shortcut.js +35 -0
  92. package/dist/composables/useSortable.d.ts +18 -0
  93. package/dist/composables/useSortable.js +34 -0
  94. package/dist/index.d.ts +37 -0
  95. package/dist/index.js +78 -53
  96. package/package.json +20 -18
@@ -0,0 +1,10 @@
1
+ export interface DiffRow {
2
+ type: "same" | "add" | "del";
3
+ /** 1-based line number in the old text (not on `add`) */
4
+ a?: number;
5
+ /** 1-based line number in the new text (not on `del`) */
6
+ b?: number;
7
+ text: string;
8
+ }
9
+ /** Line diff of two texts: common prefix and suffix are peeled off, the middle is an LCS. */
10
+ export declare function diffLines(oldText: string, newText: string): DiffRow[];
@@ -0,0 +1,55 @@
1
+ //#region src/composables/diffLines.ts
2
+ var e = (e) => e === "" ? [] : e.replace(/\n$/, "").split("\n"), t = 4e6;
3
+ function n(n, r) {
4
+ let i = e(n), a = e(r), o = 0;
5
+ for (; o < i.length && o < a.length && i[o] === a[o];) o++;
6
+ let s = i.length, c = a.length;
7
+ for (; s > o && c > o && i[s - 1] === a[c - 1];) s--, c--;
8
+ let l = [];
9
+ for (let e = 0; e < o; e++) l.push({
10
+ type: "same",
11
+ a: e + 1,
12
+ b: e + 1,
13
+ text: i[e]
14
+ });
15
+ let u = s - o, d = c - o;
16
+ if (u * d > t || !u || !d) {
17
+ for (let e = o; e < s; e++) l.push({
18
+ type: "del",
19
+ a: e + 1,
20
+ text: i[e]
21
+ });
22
+ for (let e = o; e < c; e++) l.push({
23
+ type: "add",
24
+ b: e + 1,
25
+ text: a[e]
26
+ });
27
+ } else {
28
+ let e = d + 1, t = new Uint32Array((u + 1) * e);
29
+ for (let n = u - 1; n >= 0; n--) for (let r = d - 1; r >= 0; r--) t[n * e + r] = i[o + n] === a[o + r] ? t[(n + 1) * e + r + 1] + 1 : Math.max(t[(n + 1) * e + r], t[n * e + r + 1]);
30
+ let n = 0, r = 0;
31
+ for (; n < u || r < d;) n < u && r < d && i[o + n] === a[o + r] ? (l.push({
32
+ type: "same",
33
+ a: o + n + 1,
34
+ b: o + r + 1,
35
+ text: i[o + n]
36
+ }), n++, r++) : r < d && (n === u || t[n * e + r + 1] > t[(n + 1) * e + r]) ? (l.push({
37
+ type: "add",
38
+ b: o + r + 1,
39
+ text: a[o + r]
40
+ }), r++) : (l.push({
41
+ type: "del",
42
+ a: o + n + 1,
43
+ text: i[o + n]
44
+ }), n++);
45
+ }
46
+ for (let e = 0; e < i.length - s; e++) l.push({
47
+ type: "same",
48
+ a: s + e + 1,
49
+ b: c + e + 1,
50
+ text: i[s + e]
51
+ });
52
+ return l;
53
+ }
54
+ //#endregion
55
+ export { n as diffLines };
@@ -0,0 +1,15 @@
1
+ /** Offset of item `i` of `n` from the centre, laid out clockwise from the top. */
2
+ export declare function polar(i: number, n: number, radius: number): {
3
+ x: number;
4
+ y: number;
5
+ };
6
+ /**
7
+ * Which of `n` sectors a point (dx, dy from the centre) lies in, sector 0 centred on the top;
8
+ * `null` inside the `dead` radius, where nothing is aimed at yet.
9
+ */
10
+ export declare function sectorAt(dx: number, dy: number, n: number, dead?: number): number | null;
11
+ /** Centre moved so a circle of `half` px stays `pad` inside a `w` x `h` box. */
12
+ export declare function keepInside(x: number, y: number, half: number, w: number, h: number, pad?: number): {
13
+ x: number;
14
+ y: number;
15
+ };
@@ -0,0 +1,22 @@
1
+ //#region src/composables/radial.ts
2
+ function e(e, t, n) {
3
+ let r = e / t * 2 * Math.PI - Math.PI / 2;
4
+ return {
5
+ x: Math.round(Math.cos(r) * n * 100) / 100,
6
+ y: Math.round(Math.sin(r) * n * 100) / 100
7
+ };
8
+ }
9
+ function t(e, t, n, r = 24) {
10
+ if (!n || Math.hypot(e, t) < r) return null;
11
+ let i = (Math.atan2(t, e) + Math.PI / 2 + 2 * Math.PI) % (2 * Math.PI);
12
+ return Math.round(i / (2 * Math.PI) * n) % n;
13
+ }
14
+ function n(e, t, n, r, i, a = 8) {
15
+ let o = n + a;
16
+ return {
17
+ x: Math.min(Math.max(e, o), Math.max(o, r - o)),
18
+ y: Math.min(Math.max(t, o), Math.max(o, i - o))
19
+ };
20
+ }
21
+ //#endregion
22
+ export { n as keepInside, e as polar, t as sectorAt };
@@ -0,0 +1,12 @@
1
+ /** is this key just a modifier being held? */
2
+ export declare const isModifierKey: (e: Pick<KeyboardEvent, "key">) => boolean;
3
+ /**
4
+ * The combo a key event stands for, e.g. `Ctrl+Shift+K`, modifiers in a fixed order. Letters and
5
+ * digits come from the physical key (`code`), so Shift+1 is `Shift+1`, not `Shift+!`.
6
+ * Returns `null` while only modifiers are down.
7
+ */
8
+ export declare function shortcutFromEvent(e: Pick<KeyboardEvent, "key" | "code" | "ctrlKey" | "altKey" | "shiftKey" | "metaKey">): string | null;
9
+ /** does `e` press exactly the combo `combo`? */
10
+ export declare const matchShortcut: (combo: string, e: KeyboardEvent) => boolean;
11
+ /** the parts of a combo, for display: `"Ctrl+K"` → `["Ctrl", "K"]` (a literal "+" key survives) */
12
+ export declare const splitShortcut: (combo: string) => string[];
@@ -0,0 +1,35 @@
1
+ //#region src/composables/shortcut.ts
2
+ var e = [
3
+ "Ctrl",
4
+ "Alt",
5
+ "Shift",
6
+ "Meta"
7
+ ], t = {
8
+ " ": "Space",
9
+ ArrowUp: "↑",
10
+ ArrowDown: "↓",
11
+ ArrowLeft: "←",
12
+ ArrowRight: "→",
13
+ Escape: "Esc",
14
+ Delete: "Del"
15
+ }, n = (e) => [
16
+ "Control",
17
+ "Alt",
18
+ "Shift",
19
+ "Meta",
20
+ "AltGraph",
21
+ "OS"
22
+ ].includes(e.key);
23
+ function r(r) {
24
+ if (n(r)) return null;
25
+ let i = /^(?:Key|Digit)(.)$/.exec(r.code), a = i ? i[1] : t[r.key] ?? (r.key.length === 1 ? r.key.toUpperCase() : r.key), o = [
26
+ r.ctrlKey && "Ctrl",
27
+ r.altKey && "Alt",
28
+ r.shiftKey && "Shift",
29
+ r.metaKey && "Meta"
30
+ ];
31
+ return [...e.filter((e, t) => o[t]), a].join("+");
32
+ }
33
+ var i = (e, t) => r(t) === e, a = (e) => e.endsWith("++") ? [...e.slice(0, -2).split("+").filter(Boolean), "+"] : e.split("+");
34
+ //#endregion
35
+ export { n as isModifierKey, i as matchShortcut, r as shortcutFromEvent, a as splitShortcut };
@@ -0,0 +1,18 @@
1
+ import { Ref } from 'vue';
2
+ /** `arr` with the item at `from` moved to `to` (a copy). */
3
+ export declare function moveItem<T>(arr: readonly T[], from: number, to: number): T[];
4
+ /** Index of the rect whose centre is closest to the point; works for lists and grids alike. */
5
+ export declare function nearestIndex(rects: readonly DOMRect[], x: number, y: number): number;
6
+ /**
7
+ * Pointer-drag reorder over the children of `root` that match `selector`. Bind `grab` /
8
+ * `track` / `drop` / `cancel` to the drag handle's pointer events and set `touch-action: none`
9
+ * on it; `onMove(from, to)` fires once, on release.
10
+ */
11
+ export declare function useSortable(root: Ref<HTMLElement | null | undefined>, onMove: (from: number, to: number) => void, selector?: string): {
12
+ drag: Ref<number | null, number | null>;
13
+ over: Ref<number | null, number | null>;
14
+ grab(i: number, e: PointerEvent): void;
15
+ track(e: PointerEvent): void;
16
+ drop(): void;
17
+ cancel: () => null;
18
+ };
@@ -0,0 +1,34 @@
1
+ import { ref as e } from "vue";
2
+ //#region src/composables/useSortable.ts
3
+ function t(e, t, n) {
4
+ let r = e.slice();
5
+ return r.splice(n, 0, ...r.splice(t, 1)), r;
6
+ }
7
+ function n(e, t, n) {
8
+ let r = 0, i = Infinity;
9
+ return e.forEach((e, a) => {
10
+ let o = (e.left + e.width / 2 - t) ** 2 + (e.top + e.height / 2 - n) ** 2;
11
+ o < i && (i = o, r = a);
12
+ }), r;
13
+ }
14
+ function r(t, r, i = "[data-sortable-item]") {
15
+ let a = e(null), o = e(null), s = () => a.value = o.value = null;
16
+ return {
17
+ drag: a,
18
+ over: o,
19
+ grab(e, t) {
20
+ t.button || (t.currentTarget.setPointerCapture?.(t.pointerId), a.value = o.value = e);
21
+ },
22
+ track(e) {
23
+ if (a.value == null) return;
24
+ let r = t.value?.querySelectorAll(i) ?? [];
25
+ o.value = n(Array.from(r, (e) => e.getBoundingClientRect()), e.clientX, e.clientY);
26
+ },
27
+ drop() {
28
+ a.value != null && o.value != null && o.value !== a.value && r(a.value, o.value), s();
29
+ },
30
+ cancel: s
31
+ };
32
+ }
33
+ //#endregion
34
+ export { t as moveItem, n as nearestIndex, r as useSortable };
package/dist/index.d.ts CHANGED
@@ -130,6 +130,43 @@ export { default as BlessSpeedDial } from './components/BlessSpeedDial.vue';
130
130
  export type { BlessSpeedDialAction } from './components/BlessSpeedDial.vue';
131
131
  export { default as BlessVirtualScroller } from './components/BlessVirtualScroller.vue';
132
132
  export { default as BlessOrderList } from './components/BlessOrderList.vue';
133
+ export { default as BlessCountUp } from './components/BlessCountUp.vue';
134
+ export { default as BlessTimer } from './components/BlessTimer.vue';
135
+ export type { BlessTimerPhase } from './components/BlessTimer.vue';
136
+ export { default as BlessGauge } from './components/BlessGauge.vue';
137
+ export type { BlessGaugeZone } from './components/BlessGauge.vue';
138
+ export { default as BlessGantt } from './components/BlessGantt.vue';
139
+ export type { BlessGanttTask } from './components/BlessGantt.vue';
140
+ export { default as BlessShortcutRecorder } from './components/BlessShortcutRecorder.vue';
141
+ export { shortcutFromEvent, matchShortcut, splitShortcut, isModifierKey, } from './composables/shortcut';
142
+ export { default as BlessDiff } from './components/BlessDiff.vue';
143
+ export { diffLines } from './composables/diffLines';
144
+ export type { DiffRow } from './composables/diffLines';
145
+ export { default as BlessCodeBlock } from './components/BlessCodeBlock.vue';
146
+ export type { BlessCodeFile } from './components/BlessCodeBlock.vue';
147
+ export { default as BlessMarquee } from './components/BlessMarquee.vue';
148
+ export { default as BlessMasonry } from './components/BlessMasonry.vue';
149
+ export { default as BlessSplitView } from './components/BlessSplitView.vue';
150
+ export { default as BlessRadialMenu } from './components/BlessRadialMenu.vue';
151
+ export { polar, sectorAt, keepInside } from './composables/radial';
152
+ export type { BlessRadialItem } from './components/BlessRadialMenu.vue';
153
+ export { default as BlessLoupe } from './components/BlessLoupe.vue';
154
+ export { default as BlessSliderCaptcha } from './components/BlessSliderCaptcha.vue';
155
+ export { default as BlessSwipeDeck } from './components/BlessSwipeDeck.vue';
156
+ export type { BlessSwipeDecision } from './components/BlessSwipeDeck.vue';
157
+ export { default as BlessHotspots } from './components/BlessHotspots.vue';
158
+ export type { BlessHotspot } from './components/BlessHotspots.vue';
159
+ export { default as BlessCropper } from './components/BlessCropper.vue';
160
+ export type { BlessCropRect } from './components/BlessCropper.vue';
161
+ export { initialBox, moveBox, resizeBox, scaleBox } from './composables/cropBox';
162
+ export type { CropBox } from './composables/cropBox';
163
+ export { default as BlessKanban } from './components/BlessKanban.vue';
164
+ export type { BlessKanbanColumn } from './components/BlessKanban.vue';
165
+ export { default as BlessMention } from './components/BlessMention.vue';
166
+ export type { BlessMentionOption } from './components/BlessMention.vue';
167
+ export { default as BlessHeatmapCalendar } from './components/BlessHeatmapCalendar.vue';
168
+ export { default as BlessSortable } from './components/BlessSortable.vue';
169
+ export { useSortable, moveItem, nearestIndex } from './composables/useSortable';
133
170
  export { default as BlessPickList } from './components/BlessPickList.vue';
134
171
  export { default as BlessMockup } from './components/BlessMockup.vue';
135
172
  export { default as BlessTour } from './components/BlessTour.vue';
package/dist/index.js CHANGED
@@ -107,56 +107,81 @@ import ot from "./components/BlessBottomTabs.js";
107
107
  import st from "./components/BlessSpeedDial.js";
108
108
  import ct from "./components/BlessVirtualScroller.js";
109
109
  import lt from "./components/BlessOrderList.js";
110
- import ut from "./components/BlessPickList.js";
111
- import dt from "./components/BlessMockup.js";
112
- import ft from "./components/BlessTour.js";
113
- import pt from "./components/BlessKnob.js";
114
- import mt from "./components/BlessWatermarkOverlay.js";
115
- import ht from "./components/BlessSignaturePad.js";
116
- import gt from "./components/BlessQrCode.js";
117
- import _t from "./components/BlessEditor.js";
118
- import vt from "./components/BlessChip.js";
119
- import yt from "./components/BlessInputNumber.js";
120
- import bt from "./components/BlessPasswordInput.js";
121
- import xt from "./components/BlessStepper.js";
122
- import St from "./components/BlessInputTags.js";
123
- import Ct from "./components/BlessToolbar.js";
124
- import wt from "./components/BlessFloatLabel.js";
125
- import Tt from "./components/BlessFieldset.js";
126
- import Et from "./components/BlessPanel.js";
127
- import Dt from "./components/BlessMeterGroup.js";
128
- import Ot from "./components/BlessSplitButton.js";
129
- import kt from "./components/BlessBlockUI.js";
130
- import At from "./components/BlessInplace.js";
131
- import jt from "./components/BlessDeferredContent.js";
132
- import Mt from "./components/BlessConfirmPopup.js";
133
- import Nt from "./components/BlessCompare.js";
134
- import Pt from "./components/BlessDataView.js";
135
- import { useAnimateOnScroll as Ft } from "./composables/useAnimateOnScroll.js";
136
- import It from "./components/BlessPaletteToggle.js";
137
- import Lt from "./components/BlessCascadeSelect.js";
138
- import Rt from "./components/BlessTreeSelect.js";
139
- import zt from "./components/BlessTreeTable.js";
140
- import Bt from "./components/BlessOrgChart.js";
141
- import { useDialog as Vt } from "./composables/useDialog.js";
142
- import Ht from "./components/BlessDialogHost.js";
143
- import { useLongPress as Ut, usePan as Wt, useSwipe as Gt, useTouchRepeat as Kt } from "./composables/useGesture.js";
144
- import qt from "./components/BlessPullToRefresh.js";
145
- import Jt from "./components/BlessSlideItem.js";
146
- import Yt from "./components/BlessActionSheet.js";
147
- import Xt from "./components/BlessTabPanels.js";
148
- import Zt from "./components/BlessInfiniteScroll.js";
149
- import Qt from "./components/BlessLayout.js";
150
- import $t from "./components/BlessCircularProgress.js";
151
- import en from "./components/BlessRange.js";
152
- import tn from "./components/BlessTimePicker.js";
153
- import nn from "./components/BlessImg.js";
154
- import rn from "./components/BlessVideo.js";
155
- import { useLoadingBar as an } from "./composables/useLoadingBar.js";
156
- import on from "./components/BlessLoadingBar.js";
157
- import sn from "./components/BlessUploader.js";
158
- import cn from "./components/BlessParallax.js";
159
- import ln from "./components/BlessSlideTransition.js";
160
- import un from "./components/BlessClientOnly.js";
161
- import { useFullscreen as dn, useResizeObserver as fn, useScroll as pn, useVisibility as mn } from "./composables/useBrowser.js";
162
- export { Y as BlessAccordion, X as BlessAccordionItem, Yt as BlessActionSheet, H as BlessAlert, me as BlessAlertDialog, V as BlessAspectRatio, Re as BlessAttachment, E as BlessAudioPlayer, B as BlessAvatar, _ as BlessBackground, o as BlessBadge, kt 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, Lt as BlessCascadeSelect, Ve as BlessChart, M as BlessCheckbox, vt as BlessChip, $t as BlessCircularProgress, un as BlessClientOnly, J as BlessCollapsible, We as BlessColorPicker, ve as BlessCombobox, _e as BlessCommand, Nt as BlessCompare, Mt as BlessConfirmPopup, Ye as BlessContainer, ue as BlessContextMenu, s as BlessDash, Oe as BlessDataTable, Pt as BlessDataView, Te as BlessDatePicker, jt as BlessDeferredContent, Ht as BlessDialogHost, pe as BlessDrawer, le as BlessDropdownMenu, _t as BlessEditor, W as BlessEmpty, re as BlessField, Tt as BlessFieldset, Ue as BlessFileInput, wt as BlessFloatLabel, ne as BlessForm, w as BlessGallery, se as BlessHoverCard, c as BlessIcon, nn as BlessImg, Je as BlessIndicator, Zt as BlessInfiniteScroll, At as BlessInplace, A as BlessInput, K as BlessInputGroup, rt as BlessInputMask, yt as BlessInputNumber, Ee as BlessInputOTP, St as BlessInputTags, q as BlessItem, U as BlessKbd, pt as BlessKnob, k as BlessLabel, Qt as BlessLayout, y as BlessList, b as BlessListItem, Qe as BlessListbox, on as BlessLoadingBar, Le as BlessMarker, ce as BlessMenuList, de as BlessMenubar, Fe as BlessMessage, ze as BlessMessageScroller, Dt as BlessMeterGroup, dt as BlessMockup, C as BlessModal, je as BlessNavigationMenu, lt as BlessOrderList, Bt as BlessOrgChart, ee as BlessPagination, It as BlessPaletteToggle, Et as BlessPanel, cn as BlessParallax, bt as BlessPasswordInput, Ge as BlessPasswordMeter, ut as BlessPickList, ae as BlessPopover, R as BlessProgress, qt as BlessPullToRefresh, gt as BlessQrCode, Be as BlessQuestionnaire, P as BlessRadio, N as BlessRadioGroup, en as BlessRange, He as BlessRating, Ae as BlessResizable, te as BlessScrollArea, Ze as BlessScrollTop, d as BlessSection, I as BlessSelect, O as BlessSeparator, fe as BlessSheet, g as BlessSidebarNav, ht as BlessSignaturePad, z as BlessSkeleton, e as BlessSkew, Jt as BlessSlideItem, ln as BlessSlideTransition, L as BlessSlider, st as BlessSpeedDial, i as BlessSpinner, D as BlessSplash, Ot as BlessSplitButton, Xe as BlessStack, h as BlessStage, xt as BlessStepper, Ke as BlessSteps, et as BlessSwap, F as BlessSwitch, Xt as BlessTabPanels, T as BlessTable, x as BlessTabs, l as BlessText, j as BlessTextarea, Pe as BlessThemeToggle, tn as BlessTimePicker, qe as BlessTimeline, ge as BlessToaster, Z as BlessToggle, Q as BlessToggleGroup, Ct as BlessToolbar, oe as BlessTooltip, ft as BlessTour, $e as BlessTree, Rt as BlessTreeSelect, zt as BlessTreeTable, sn as BlessUploader, rn as BlessVideo, ct as BlessVirtualScroller, u as BlessWatermark, mt as BlessWatermarkOverlay, ye as addDays, be as addMonths, tt as applyMask, t as blessLinkKey, Me as blessPalettes, xe as fromISO, n as isRouterHref, Se as isoToday, f as reducedMotion, p as scrollBehavior, Ce as toISO, nt as unmask, Ft as useAnimateOnScroll, De as useDataTable, Vt as useDialog, ie as useFloating, dn as useFullscreen, S as useHash, r as useLink, an as useLoadingBar, Ut as useLongPress, m as useMedia, Wt as usePan, fn as useResizeObserver, at as useRovingFocus, pn as useScroll, it as useScrollSpy, Gt as useSwipe, Ne as useTheme, he as useToast, Kt as useTouchRepeat, mn as useVisibility };
110
+ import ut from "./components/BlessCountUp.js";
111
+ import dt from "./components/BlessTimer.js";
112
+ import ft from "./components/BlessGauge.js";
113
+ import pt from "./components/BlessGantt.js";
114
+ import { isModifierKey as mt, matchShortcut as ht, shortcutFromEvent as gt, splitShortcut as _t } from "./composables/shortcut.js";
115
+ import vt from "./components/BlessShortcutRecorder.js";
116
+ import { diffLines as yt } from "./composables/diffLines.js";
117
+ import bt from "./components/BlessDiff.js";
118
+ import xt from "./components/BlessCodeBlock.js";
119
+ import St from "./components/BlessMarquee.js";
120
+ import Ct from "./components/BlessMasonry.js";
121
+ import wt from "./components/BlessSplitView.js";
122
+ import { keepInside as Tt, polar as Et, sectorAt as Dt } from "./composables/radial.js";
123
+ import Ot from "./components/BlessRadialMenu.js";
124
+ import kt from "./components/BlessLoupe.js";
125
+ import At from "./components/BlessSliderCaptcha.js";
126
+ import jt from "./components/BlessSwipeDeck.js";
127
+ import Mt from "./components/BlessHotspots.js";
128
+ import { initialBox as Nt, moveBox as Pt, resizeBox as Ft, scaleBox as It } from "./composables/cropBox.js";
129
+ import Lt from "./components/BlessCropper.js";
130
+ import Rt from "./components/BlessKanban.js";
131
+ import zt from "./components/BlessMention.js";
132
+ import Bt from "./components/BlessHeatmapCalendar.js";
133
+ import { moveItem as Vt, nearestIndex as Ht, useSortable as Ut } from "./composables/useSortable.js";
134
+ import Wt from "./components/BlessSortable.js";
135
+ import Gt from "./components/BlessPickList.js";
136
+ import Kt from "./components/BlessMockup.js";
137
+ import qt from "./components/BlessTour.js";
138
+ import Jt from "./components/BlessKnob.js";
139
+ import Yt from "./components/BlessWatermarkOverlay.js";
140
+ import Xt from "./components/BlessSignaturePad.js";
141
+ import Zt from "./components/BlessQrCode.js";
142
+ import Qt from "./components/BlessEditor.js";
143
+ import $t from "./components/BlessChip.js";
144
+ import en from "./components/BlessInputNumber.js";
145
+ import tn from "./components/BlessPasswordInput.js";
146
+ import nn from "./components/BlessStepper.js";
147
+ import rn from "./components/BlessInputTags.js";
148
+ import an from "./components/BlessToolbar.js";
149
+ import on from "./components/BlessFloatLabel.js";
150
+ import sn from "./components/BlessFieldset.js";
151
+ import cn from "./components/BlessPanel.js";
152
+ import ln from "./components/BlessMeterGroup.js";
153
+ import un from "./components/BlessSplitButton.js";
154
+ import dn from "./components/BlessBlockUI.js";
155
+ import fn from "./components/BlessInplace.js";
156
+ import pn from "./components/BlessDeferredContent.js";
157
+ import mn from "./components/BlessConfirmPopup.js";
158
+ import hn from "./components/BlessCompare.js";
159
+ import gn from "./components/BlessDataView.js";
160
+ import { useAnimateOnScroll as _n } from "./composables/useAnimateOnScroll.js";
161
+ import vn from "./components/BlessPaletteToggle.js";
162
+ import yn from "./components/BlessCascadeSelect.js";
163
+ import bn from "./components/BlessTreeSelect.js";
164
+ import xn from "./components/BlessTreeTable.js";
165
+ import Sn from "./components/BlessOrgChart.js";
166
+ import { useDialog as Cn } from "./composables/useDialog.js";
167
+ import wn from "./components/BlessDialogHost.js";
168
+ import { useLongPress as Tn, usePan as En, useSwipe as Dn, useTouchRepeat as On } from "./composables/useGesture.js";
169
+ import kn from "./components/BlessPullToRefresh.js";
170
+ import An from "./components/BlessSlideItem.js";
171
+ import jn from "./components/BlessActionSheet.js";
172
+ import Mn from "./components/BlessTabPanels.js";
173
+ import Nn from "./components/BlessInfiniteScroll.js";
174
+ import Pn from "./components/BlessLayout.js";
175
+ import Fn from "./components/BlessCircularProgress.js";
176
+ import In from "./components/BlessRange.js";
177
+ import Ln from "./components/BlessTimePicker.js";
178
+ import Rn from "./components/BlessImg.js";
179
+ import zn from "./components/BlessVideo.js";
180
+ import { useLoadingBar as Bn } from "./composables/useLoadingBar.js";
181
+ import Vn from "./components/BlessLoadingBar.js";
182
+ import Hn from "./components/BlessUploader.js";
183
+ import Un from "./components/BlessParallax.js";
184
+ import Wn from "./components/BlessSlideTransition.js";
185
+ import Gn from "./components/BlessClientOnly.js";
186
+ import { useFullscreen as Kn, useResizeObserver as qn, useScroll as Jn, useVisibility as Yn } from "./composables/useBrowser.js";
187
+ export { Y as BlessAccordion, X as BlessAccordionItem, jn as BlessActionSheet, H as BlessAlert, me as BlessAlertDialog, 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, yn as BlessCascadeSelect, Ve as BlessChart, M as BlessCheckbox, $t as BlessChip, Fn as BlessCircularProgress, Gn as BlessClientOnly, xt as BlessCodeBlock, J as BlessCollapsible, We as BlessColorPicker, ve as BlessCombobox, _e as BlessCommand, hn as BlessCompare, mn as BlessConfirmPopup, Ye as BlessContainer, ue as BlessContextMenu, ut as BlessCountUp, Lt as BlessCropper, s as BlessDash, Oe as BlessDataTable, gn as BlessDataView, Te as BlessDatePicker, pn as BlessDeferredContent, wn as BlessDialogHost, bt as BlessDiff, pe as BlessDrawer, le as BlessDropdownMenu, Qt as BlessEditor, W as BlessEmpty, re as BlessField, sn as BlessFieldset, Ue as BlessFileInput, on as BlessFloatLabel, ne as BlessForm, w as BlessGallery, pt as BlessGantt, ft as BlessGauge, Bt as BlessHeatmapCalendar, Mt as BlessHotspots, se as BlessHoverCard, c as BlessIcon, Rn as BlessImg, Je as BlessIndicator, Nn as BlessInfiniteScroll, fn as BlessInplace, A as BlessInput, K as BlessInputGroup, rt as BlessInputMask, en as BlessInputNumber, Ee as BlessInputOTP, rn as BlessInputTags, q as BlessItem, Rt as BlessKanban, U as BlessKbd, Jt as BlessKnob, k as BlessLabel, Pn as BlessLayout, y as BlessList, b as BlessListItem, Qe as BlessListbox, Vn as BlessLoadingBar, kt as BlessLoupe, Le as BlessMarker, St as BlessMarquee, Ct as BlessMasonry, zt as BlessMention, ce as BlessMenuList, de as BlessMenubar, Fe as BlessMessage, ze as BlessMessageScroller, ln as BlessMeterGroup, Kt as BlessMockup, C as BlessModal, je as BlessNavigationMenu, lt as BlessOrderList, Sn as BlessOrgChart, ee as BlessPagination, vn as BlessPaletteToggle, cn as BlessPanel, Un as BlessParallax, tn as BlessPasswordInput, Ge as BlessPasswordMeter, Gt as BlessPickList, ae as BlessPopover, R as BlessProgress, kn as BlessPullToRefresh, Zt as BlessQrCode, Be as BlessQuestionnaire, Ot as BlessRadialMenu, P as BlessRadio, N as BlessRadioGroup, In as BlessRange, He as BlessRating, Ae as BlessResizable, te as BlessScrollArea, Ze as BlessScrollTop, d as BlessSection, I as BlessSelect, O as BlessSeparator, fe as BlessSheet, vt as BlessShortcutRecorder, g as BlessSidebarNav, Xt as BlessSignaturePad, z as BlessSkeleton, e as BlessSkew, An as BlessSlideItem, Wn as BlessSlideTransition, L as BlessSlider, At as BlessSliderCaptcha, Wt as BlessSortable, st as BlessSpeedDial, i as BlessSpinner, D as BlessSplash, un as BlessSplitButton, wt as BlessSplitView, Xe as BlessStack, h as BlessStage, nn as BlessStepper, Ke as BlessSteps, et as BlessSwap, jt as BlessSwipeDeck, F as BlessSwitch, Mn as BlessTabPanels, T as BlessTable, x as BlessTabs, l as BlessText, j as BlessTextarea, Pe as BlessThemeToggle, Ln as BlessTimePicker, qe as BlessTimeline, dt as BlessTimer, ge as BlessToaster, Z as BlessToggle, Q as BlessToggleGroup, an as BlessToolbar, oe as BlessTooltip, qt as BlessTour, $e as BlessTree, bn as BlessTreeSelect, xn as BlessTreeTable, Hn as BlessUploader, zn as BlessVideo, ct as BlessVirtualScroller, u as BlessWatermark, Yt as BlessWatermarkOverlay, ye as addDays, be as addMonths, tt as applyMask, t as blessLinkKey, Me as blessPalettes, yt as diffLines, xe as fromISO, Nt as initialBox, mt as isModifierKey, n as isRouterHref, Se as isoToday, Tt as keepInside, ht as matchShortcut, Pt as moveBox, Vt as moveItem, Ht as nearestIndex, Et as polar, f as reducedMotion, Ft as resizeBox, It as scaleBox, p as scrollBehavior, Dt as sectorAt, gt as shortcutFromEvent, _t as splitShortcut, Ce as toISO, nt as unmask, _n as useAnimateOnScroll, De as useDataTable, Cn as useDialog, ie as useFloating, Kn as useFullscreen, S as useHash, r as useLink, Bn as useLoadingBar, Tn as useLongPress, m as useMedia, En as usePan, qn as useResizeObserver, at as useRovingFocus, Jn as useScroll, it as useScrollSpy, Ut as useSortable, Dn as useSwipe, Ne as useTheme, he as useToast, On as useTouchRepeat, Yn as useVisibility };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blessing-ui",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Blessing UI — Themed Flat Interface. Flat by design, raised with Vue, blessed for everyone.",
5
5
  "keywords": [
6
6
  "components",
@@ -43,6 +43,23 @@
43
43
  "import": "./dist/components/*.js"
44
44
  }
45
45
  },
46
+ "scripts": {
47
+ "dev": "vitepress dev docs",
48
+ "build": "vue-tsc --noEmit && vite build && node scripts/postbuild.mjs",
49
+ "test": "vitest run",
50
+ "prepublishOnly": "pnpm test && pnpm build",
51
+ "typecheck": "vue-tsc --noEmit",
52
+ "format": "oxfmt .",
53
+ "docs:dev": "vitepress dev docs",
54
+ "docs:build": "pnpm docs:meta && pnpm docs:blocks && vitepress build docs",
55
+ "docs:preview": "vitepress preview docs",
56
+ "docs:meta": "node docs/scripts/meta.ts",
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",
59
+ "e2e:consumer": "pnpm build && node e2e/consumer/check.mjs",
60
+ "docs:blocks": "node docs/scripts/blocks.ts",
61
+ "docs:shots": "node docs/scripts/shots.mjs"
62
+ },
46
63
  "devDependencies": {
47
64
  "@tiptap/pm": "^3.31.3",
48
65
  "@tiptap/starter-kit": "^3.31.3",
@@ -78,20 +95,5 @@
78
95
  "engines": {
79
96
  "node": ">=24"
80
97
  },
81
- "scripts": {
82
- "dev": "vitepress dev docs",
83
- "build": "vue-tsc --noEmit && vite build && node scripts/postbuild.mjs",
84
- "test": "vitest run",
85
- "typecheck": "vue-tsc --noEmit",
86
- "format": "oxfmt .",
87
- "docs:dev": "vitepress dev docs",
88
- "docs:build": "pnpm docs:meta && pnpm docs:blocks && vitepress build docs",
89
- "docs:preview": "vitepress preview docs",
90
- "docs:meta": "node docs/scripts/meta.ts",
91
- "docs:pages": "node docs/scripts/pages.ts",
92
- "e2e": "node e2e/sweep.mjs chromium,firefox && node e2e/axe.mjs && node e2e/interact.mjs chromium && node e2e/interact.mjs firefox",
93
- "e2e:consumer": "pnpm build && node e2e/consumer/check.mjs",
94
- "docs:blocks": "node docs/scripts/blocks.ts",
95
- "docs:shots": "node docs/scripts/shots.mjs"
96
- }
97
- }
98
+ "packageManager": "pnpm@12.4.2"
99
+ }