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
|
@@ -2,16 +2,16 @@ import { logicalKey as e } from "../composables/rtl.js";
|
|
|
2
2
|
import { addDays as t, addMonths as n, fromISO as r, isoToday as i, toISO as a } from "../composables/date.js";
|
|
3
3
|
import { Fragment as o, computed as s, createElementBlock as c, createElementVNode as l, defineComponent as u, mergeModels as d, normalizeClass as f, onMounted as p, openBlock as m, ref as h, renderList as g, toDisplayString as _, unref as v, useId as y, useModel as b, watch as x } from "vue";
|
|
4
4
|
//#region src/components/BlessCalendar.vue?vue&type=script&setup=true&lang.ts
|
|
5
|
-
var S = ["aria-label"], C = { class: "bless-calendar__head" }, w = {
|
|
5
|
+
var S = ["aria-label"], C = { class: "bless-calendar__head" }, w = ["aria-label"], T = {
|
|
6
6
|
class: "bless-calendar__month",
|
|
7
7
|
"aria-live": "polite"
|
|
8
|
-
},
|
|
8
|
+
}, E = ["aria-label"], D = {
|
|
9
9
|
key: 0,
|
|
10
10
|
class: "bless-calendar__grid bless-calendar__grid--pending"
|
|
11
|
-
},
|
|
11
|
+
}, O = {
|
|
12
12
|
role: "row",
|
|
13
13
|
class: "bless-calendar__row bless-calendar__row--head"
|
|
14
|
-
},
|
|
14
|
+
}, k = [
|
|
15
15
|
"id",
|
|
16
16
|
"tabindex",
|
|
17
17
|
"aria-selected",
|
|
@@ -20,7 +20,7 @@ var S = ["aria-label"], C = { class: "bless-calendar__head" }, w = {
|
|
|
20
20
|
"onClick",
|
|
21
21
|
"onMouseenter",
|
|
22
22
|
"onFocus"
|
|
23
|
-
],
|
|
23
|
+
], A = /*@__PURE__*/ u({
|
|
24
24
|
name: "BlessCalendar",
|
|
25
25
|
__name: "BlessCalendar",
|
|
26
26
|
props: /*@__PURE__*/ d({
|
|
@@ -30,25 +30,30 @@ var S = ["aria-label"], C = { class: "bless-calendar__head" }, w = {
|
|
|
30
30
|
weekStart: { default: 1 },
|
|
31
31
|
locale: { default: "ja-JP" },
|
|
32
32
|
disabledDates: {},
|
|
33
|
-
month: {}
|
|
33
|
+
month: {},
|
|
34
|
+
labels: {}
|
|
34
35
|
}, {
|
|
35
36
|
modelValue: {},
|
|
36
37
|
modelModifiers: {}
|
|
37
38
|
}),
|
|
38
39
|
emits: ["update:modelValue"],
|
|
39
40
|
setup(u) {
|
|
40
|
-
let d = u,
|
|
41
|
+
let d = u, A = s(() => ({
|
|
42
|
+
prev: "Previous month",
|
|
43
|
+
next: "Next month",
|
|
44
|
+
...d.labels
|
|
45
|
+
})), j = b(u, "modelValue"), M = y(), N = s(() => Array.isArray(j.value) ? j.value[0] : j.value), P = d.month ? `${d.month}-01` : N.value, F = h(""), I = h(!!P), L = h(r(P ?? i())), R = h(N.value ?? P ?? i());
|
|
41
46
|
p(() => {
|
|
42
|
-
|
|
47
|
+
F.value = i(), P || (L.value = r(F.value), R.value = F.value, I.value = !0);
|
|
43
48
|
});
|
|
44
|
-
let
|
|
49
|
+
let z = h(), B = h(), V = s(() => new Intl.DateTimeFormat(d.locale, {
|
|
45
50
|
year: "numeric",
|
|
46
51
|
month: "long"
|
|
47
|
-
}).format(
|
|
52
|
+
}).format(L.value)), H = s(() => new Intl.DateTimeFormat(d.locale, { dateStyle: "full" })), U = s(() => {
|
|
48
53
|
let e = new Intl.DateTimeFormat(d.locale, { weekday: "short" }), n = new Date(2024, 0, 7 + d.weekStart);
|
|
49
54
|
return Array.from({ length: 7 }, (r, i) => e.format(t(n, i)));
|
|
50
|
-
}),
|
|
51
|
-
let e =
|
|
55
|
+
}), W = s(() => {
|
|
56
|
+
let e = L.value.getFullYear(), t = L.value.getMonth(), n = (new Date(e, t, 1).getDay() - d.weekStart + 7) % 7, r = [];
|
|
52
57
|
for (let i = -n; r.length < 42; i++) {
|
|
53
58
|
let n = new Date(e, t, 1 + i);
|
|
54
59
|
r.push({
|
|
@@ -58,63 +63,63 @@ var S = ["aria-label"], C = { class: "bless-calendar__head" }, w = {
|
|
|
58
63
|
});
|
|
59
64
|
}
|
|
60
65
|
return r;
|
|
61
|
-
}),
|
|
66
|
+
}), G = (e) => d.min && e < d.min || d.max && e > d.max || !!d.disabledDates?.(e), K = s(() => {
|
|
62
67
|
if (!d.range) return null;
|
|
63
|
-
if (
|
|
64
|
-
let e =
|
|
65
|
-
return e <
|
|
68
|
+
if (B.value) {
|
|
69
|
+
let e = z.value ?? R.value;
|
|
70
|
+
return e < B.value ? [e, B.value] : [B.value, e];
|
|
66
71
|
}
|
|
67
|
-
return Array.isArray(
|
|
68
|
-
}),
|
|
69
|
-
function
|
|
70
|
-
if (!
|
|
71
|
-
if (
|
|
72
|
-
|
|
72
|
+
return Array.isArray(j.value) ? j.value : null;
|
|
73
|
+
}), q = (e) => d.range ? K.value?.[0] === e || K.value?.[1] === e : j.value === e, J = (e) => !!K.value && e > K.value[0] && e < K.value[1];
|
|
74
|
+
function Y(e) {
|
|
75
|
+
if (!G(e)) {
|
|
76
|
+
if (R.value = e, !d.range) return void (j.value = e);
|
|
77
|
+
B.value ? (j.value = e < B.value ? [e, B.value] : [B.value, e], B.value = void 0) : B.value = e;
|
|
73
78
|
}
|
|
74
79
|
}
|
|
75
|
-
function
|
|
76
|
-
let n = r(
|
|
77
|
-
n = t(n, e),
|
|
80
|
+
function X(e) {
|
|
81
|
+
let n = r(R.value);
|
|
82
|
+
n = t(n, e), R.value = a(n), (n.getMonth() !== L.value.getMonth() || n.getFullYear() !== L.value.getFullYear()) && (L.value = new Date(n.getFullYear(), n.getMonth(), 1)), requestAnimationFrame(() => document.getElementById(`${M}-${R.value}`)?.focus());
|
|
78
83
|
}
|
|
79
|
-
function
|
|
84
|
+
function Z(t) {
|
|
80
85
|
let n = {
|
|
81
86
|
ArrowLeft: -1,
|
|
82
87
|
ArrowRight: 1,
|
|
83
88
|
ArrowUp: -7,
|
|
84
89
|
ArrowDown: 7
|
|
85
90
|
};
|
|
86
|
-
t.key in n ? (t.preventDefault(),
|
|
91
|
+
t.key in n ? (t.preventDefault(), X(n[e(t)])) : t.key === "PageUp" ? (t.preventDefault(), Q(t.shiftKey ? -12 : -1, !0)) : t.key === "PageDown" ? (t.preventDefault(), Q(t.shiftKey ? 12 : 1, !0)) : t.key === "Home" ? (t.preventDefault(), X(-((r(R.value).getDay() - d.weekStart + 7) % 7))) : t.key === "End" ? (t.preventDefault(), X(6 - (r(R.value).getDay() - d.weekStart + 7) % 7)) : (t.key === "Enter" || t.key === " ") && (t.preventDefault(), Y(R.value));
|
|
87
92
|
}
|
|
88
|
-
function
|
|
89
|
-
|
|
93
|
+
function Q(e, t = !1) {
|
|
94
|
+
L.value = n(L.value, e), t && requestAnimationFrame(() => document.getElementById(`${M}-${R.value}`)?.focus());
|
|
90
95
|
}
|
|
91
|
-
return x(
|
|
92
|
-
let t = r(
|
|
93
|
-
(t.getFullYear() !== e.getFullYear() || t.getMonth() !== e.getMonth()) && (
|
|
96
|
+
return x(N, (e) => e && (L.value = n(r(e), 0))), x(L, (e) => {
|
|
97
|
+
let t = r(R.value);
|
|
98
|
+
(t.getFullYear() !== e.getFullYear() || t.getMonth() !== e.getMonth()) && (R.value = a(new Date(e.getFullYear(), e.getMonth(), Math.min(t.getDate(), 28))));
|
|
94
99
|
}, { immediate: !0 }), (e, t) => (m(), c("div", {
|
|
95
100
|
class: "bless-calendar",
|
|
96
101
|
role: "group",
|
|
97
|
-
"aria-label":
|
|
102
|
+
"aria-label": I.value ? V.value : void 0
|
|
98
103
|
}, [l("div", C, [
|
|
99
104
|
l("button", {
|
|
100
105
|
type: "button",
|
|
101
106
|
class: "bless-calendar__nav",
|
|
102
|
-
"aria-label":
|
|
103
|
-
onClick: t[0] ||= (e) =>
|
|
104
|
-
}, [...t[3] ||= [l("span", { "aria-hidden": "true" }, "‹", -1)]]),
|
|
105
|
-
l("span",
|
|
107
|
+
"aria-label": A.value.prev,
|
|
108
|
+
onClick: t[0] ||= (e) => Q(-1)
|
|
109
|
+
}, [...t[3] ||= [l("span", { "aria-hidden": "true" }, "‹", -1)]], 8, w),
|
|
110
|
+
l("span", T, _(I.value ? V.value : ""), 1),
|
|
106
111
|
l("button", {
|
|
107
112
|
type: "button",
|
|
108
113
|
class: "bless-calendar__nav",
|
|
109
|
-
"aria-label":
|
|
110
|
-
onClick: t[1] ||= (e) =>
|
|
111
|
-
}, [...t[4] ||= [l("span", { "aria-hidden": "true" }, "›", -1)]])
|
|
112
|
-
]),
|
|
114
|
+
"aria-label": A.value.next,
|
|
115
|
+
onClick: t[1] ||= (e) => Q(1)
|
|
116
|
+
}, [...t[4] ||= [l("span", { "aria-hidden": "true" }, "›", -1)]], 8, E)
|
|
117
|
+
]), I.value ? (m(), c("div", {
|
|
113
118
|
key: 1,
|
|
114
119
|
class: "bless-calendar__grid",
|
|
115
120
|
role: "grid",
|
|
116
|
-
onKeydown:
|
|
117
|
-
}, [l("div",
|
|
121
|
+
onKeydown: Z
|
|
122
|
+
}, [l("div", O, [(m(!0), c(o, null, g(U.value, (e) => (m(), c("span", {
|
|
118
123
|
key: e,
|
|
119
124
|
role: "columnheader",
|
|
120
125
|
class: "bless-calendar__dow"
|
|
@@ -122,29 +127,29 @@ var S = ["aria-label"], C = { class: "bless-calendar__head" }, w = {
|
|
|
122
127
|
key: e,
|
|
123
128
|
role: "row",
|
|
124
129
|
class: "bless-calendar__row"
|
|
125
|
-
}, [(m(!0), c(o, null, g(
|
|
130
|
+
}, [(m(!0), c(o, null, g(W.value.slice((e - 1) * 7, e * 7), (e) => (m(), c("button", {
|
|
126
131
|
key: e.iso,
|
|
127
|
-
id: `${v(
|
|
132
|
+
id: `${v(M)}-${e.iso}`,
|
|
128
133
|
type: "button",
|
|
129
134
|
role: "gridcell",
|
|
130
135
|
class: f(["bless-calendar__day", {
|
|
131
136
|
"bless-calendar__day--outside": e.outside,
|
|
132
|
-
"bless-calendar__day--today": e.iso ===
|
|
133
|
-
"bless-calendar__day--selected":
|
|
134
|
-
"bless-calendar__day--in-range":
|
|
135
|
-
"bless-calendar__day--start":
|
|
136
|
-
"bless-calendar__day--end":
|
|
137
|
+
"bless-calendar__day--today": e.iso === F.value,
|
|
138
|
+
"bless-calendar__day--selected": q(e.iso),
|
|
139
|
+
"bless-calendar__day--in-range": J(e.iso),
|
|
140
|
+
"bless-calendar__day--start": K.value?.[0] === e.iso,
|
|
141
|
+
"bless-calendar__day--end": K.value?.[1] === e.iso
|
|
137
142
|
}]),
|
|
138
|
-
tabindex: e.iso ===
|
|
139
|
-
"aria-selected":
|
|
140
|
-
"aria-disabled":
|
|
141
|
-
"aria-label":
|
|
142
|
-
onClick: (t) =>
|
|
143
|
-
onMouseenter: (t) =>
|
|
144
|
-
onMouseleave: t[2] ||= (e) =>
|
|
145
|
-
onFocus: (t) =>
|
|
146
|
-
}, _(e.date.getDate()), 43,
|
|
143
|
+
tabindex: e.iso === R.value ? 0 : -1,
|
|
144
|
+
"aria-selected": q(e.iso) || void 0,
|
|
145
|
+
"aria-disabled": G(e.iso) || void 0,
|
|
146
|
+
"aria-label": H.value.format(e.date),
|
|
147
|
+
onClick: (t) => Y(e.iso),
|
|
148
|
+
onMouseenter: (t) => z.value = e.iso,
|
|
149
|
+
onMouseleave: t[2] ||= (e) => z.value = void 0,
|
|
150
|
+
onFocus: (t) => R.value = e.iso
|
|
151
|
+
}, _(e.date.getDate()), 43, k))), 128))])), 64))], 32)) : (m(), c("div", D))], 8, S));
|
|
147
152
|
}
|
|
148
153
|
});
|
|
149
154
|
//#endregion
|
|
150
|
-
export {
|
|
155
|
+
export { A as default };
|
|
@@ -12,6 +12,8 @@ type __VLS_Props = {
|
|
|
12
12
|
nextLabel?: string;
|
|
13
13
|
/** the autoplay button's name; its pressed state says whether it's paused */
|
|
14
14
|
pauseLabel?: string;
|
|
15
|
+
/** accessible name of the slide dots */
|
|
16
|
+
dotsLabel?: string;
|
|
15
17
|
};
|
|
16
18
|
declare function go(i: number, smooth?: boolean): void;
|
|
17
19
|
type __VLS_ModelProps = {
|
|
@@ -41,6 +43,7 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_PublicProps, {
|
|
|
41
43
|
dots: boolean;
|
|
42
44
|
arrows: boolean;
|
|
43
45
|
pauseLabel: string;
|
|
46
|
+
dotsLabel: string;
|
|
44
47
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
45
48
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
46
49
|
declare const _default: typeof __VLS_export;
|
|
@@ -2,12 +2,7 @@ import { reducedMotion as e, scrollBehavior as t } from "../composables/useMedia
|
|
|
2
2
|
import { logicalKey as n } from "../composables/rtl.js";
|
|
3
3
|
import { Fragment as r, computed as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, defineComponent as c, mergeModels as l, normalizeClass as u, normalizeStyle as d, onBeforeUnmount as f, onMounted as p, openBlock as m, ref as h, renderList as g, renderSlot as _, toDisplayString as v, useModel as y, watch as b } from "vue";
|
|
4
4
|
//#region src/components/BlessCarousel.vue?vue&type=script&setup=true&lang.ts
|
|
5
|
-
var x = ["aria-label"], S = ["aria-label", "aria-disabled"], C = ["aria-label", "aria-disabled"], w =
|
|
6
|
-
key: 1,
|
|
7
|
-
class: "bless-carousel__dots",
|
|
8
|
-
role: "group",
|
|
9
|
-
"aria-label": "Slides"
|
|
10
|
-
}, T = [
|
|
5
|
+
var x = ["aria-label"], S = ["aria-label", "aria-disabled"], C = ["aria-label", "aria-disabled"], w = ["aria-label"], T = [
|
|
11
6
|
"aria-current",
|
|
12
7
|
"aria-label",
|
|
13
8
|
"onClick"
|
|
@@ -33,7 +28,8 @@ var x = ["aria-label"], S = ["aria-label", "aria-disabled"], C = ["aria-label",
|
|
|
33
28
|
label: { default: "Carousel" },
|
|
34
29
|
prevLabel: { default: "Previous slide" },
|
|
35
30
|
nextLabel: { default: "Next slide" },
|
|
36
|
-
pauseLabel: { default: "Pause slides" }
|
|
31
|
+
pauseLabel: { default: "Pause slides" },
|
|
32
|
+
dotsLabel: { default: "Slides" }
|
|
37
33
|
}, {
|
|
38
34
|
modelValue: { default: 0 },
|
|
39
35
|
modelModifiers: {}
|
|
@@ -120,14 +116,19 @@ var x = ["aria-label"], S = ["aria-label", "aria-disabled"], C = ["aria-label",
|
|
|
120
116
|
"aria-disabled": !R.value || void 0,
|
|
121
117
|
onClick: t[1] ||= (e) => R.value && V(A.value + 1)
|
|
122
118
|
}, [...t[3] ||= [s("span", { "aria-hidden": "true" }, "›", -1)]], 8, C)], 64)) : a("", !0),
|
|
123
|
-
c.dots && I.value > 1 ? (m(), o("div",
|
|
119
|
+
c.dots && I.value > 1 ? (m(), o("div", {
|
|
120
|
+
key: 1,
|
|
121
|
+
class: "bless-carousel__dots",
|
|
122
|
+
role: "group",
|
|
123
|
+
"aria-label": c.dotsLabel
|
|
124
|
+
}, [(m(!0), o(r, null, g(I.value, (e) => (m(), o("button", {
|
|
124
125
|
key: e,
|
|
125
126
|
type: "button",
|
|
126
127
|
class: u(["bless-carousel__dot", { "bless-carousel__dot--active": e - 1 === A.value }]),
|
|
127
128
|
"aria-current": e - 1 === A.value || void 0,
|
|
128
129
|
"aria-label": `Slide ${e}`,
|
|
129
130
|
onClick: (t) => V(e - 1)
|
|
130
|
-
}, null, 10, T))), 128))])) : a("", !0),
|
|
131
|
+
}, null, 10, T))), 128))], 8, w)) : a("", !0),
|
|
131
132
|
c.autoplay > 0 ? (m(), o("button", {
|
|
132
133
|
key: 2,
|
|
133
134
|
type: "button",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.bless-coachmark{display:inline-flex;position:relative}.bless-coachmark__dot{background:var(--bless-color-badge);cursor:pointer;border:0;width:12px;height:12px;padding:0;position:absolute}.bless-coachmark__dot:before{content:"";position:absolute;inset:-10px}.bless-coachmark__dot:after{content:"";border:2px solid var(--bless-color-badge);animation:bless-coachmark-pulse 1.8s var(--bless-ease-out) infinite;position:absolute;inset:-4px}.bless-coachmark__dot:focus-visible{outline:2px solid var(--bless-color-accent);outline-offset:3px}.bless-coachmark__dot--top-end{top:-4px;inset-inline-end:-4px}.bless-coachmark__dot--top-start{top:-4px;inset-inline-start:-4px}.bless-coachmark__dot--bottom-end{bottom:-4px;inset-inline-end:-4px}.bless-coachmark__dot--bottom-start{bottom:-4px;inset-inline-start:-4px}.bless-coachmark__bubble{z-index:2;gap:var(--bless-space-2);width:max-content;max-width:220px;padding:var(--bless-space-3);background:var(--bless-color-bg);border:var(--bless-border-width) solid var(--bless-color-accent);box-shadow:var(--bless-shadow-plate);font-family:var(--bless-font-sans);font-size:var(--bless-text-sm);color:var(--bless-color-text);display:grid;position:absolute}.bless-coachmark__bubble--top-end,.bless-coachmark__bubble--top-start{top:calc(100% + 12px)}.bless-coachmark__bubble--bottom-end,.bless-coachmark__bubble--bottom-start{bottom:calc(100% + 12px)}.bless-coachmark__bubble--top-end,.bless-coachmark__bubble--bottom-end{inset-inline-end:0}.bless-coachmark__bubble--top-start,.bless-coachmark__bubble--bottom-start{inset-inline-start:0}@keyframes bless-coachmark-pulse{0%{opacity:.9;transform:scale(.6)}to{opacity:0;transform:scale(1.6)}}@media (prefers-reduced-motion:reduce){.bless-coachmark__dot:after{opacity:.5;animation:none;transform:none}}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
/** what is new, said in the bubble and to screen readers */
|
|
3
|
+
text: string;
|
|
4
|
+
/** remembers a dismissal under this key (localStorage), so it shows once; omit to show until `dismissed` is set */
|
|
5
|
+
id?: string;
|
|
6
|
+
/** which corner of the wrapped element the dot sits on */
|
|
7
|
+
placement?: "top-end" | "top-start" | "bottom-end" | "bottom-start";
|
|
8
|
+
/** using the wrapped element (a click inside it) counts as seen */
|
|
9
|
+
dismissOnUse?: boolean;
|
|
10
|
+
labels?: Partial<{
|
|
11
|
+
dot: (text: string) => string;
|
|
12
|
+
ok: string;
|
|
13
|
+
}>;
|
|
14
|
+
};
|
|
15
|
+
type __VLS_ModelProps = {
|
|
16
|
+
"dismissed"?: boolean;
|
|
17
|
+
};
|
|
18
|
+
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
19
|
+
declare var __VLS_1: {};
|
|
20
|
+
type __VLS_Slots = {} & {
|
|
21
|
+
default?: (props: typeof __VLS_1) => any;
|
|
22
|
+
};
|
|
23
|
+
declare const __VLS_base: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
24
|
+
dismiss: () => any;
|
|
25
|
+
"update:dismissed": (value: boolean) => any;
|
|
26
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
27
|
+
onDismiss?: (() => any) | undefined;
|
|
28
|
+
"onUpdate:dismissed"?: ((value: boolean) => any) | undefined;
|
|
29
|
+
}>, {
|
|
30
|
+
placement: "top-end" | "top-start" | "bottom-end" | "bottom-start";
|
|
31
|
+
dismissOnUse: boolean;
|
|
32
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
33
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
34
|
+
declare const _default: typeof __VLS_export;
|
|
35
|
+
export default _default;
|
|
36
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
37
|
+
new (): {
|
|
38
|
+
$slots: S;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import e from "./BlessButton.js";
|
|
2
|
+
import { Fragment as t, computed as n, createCommentVNode as r, createElementBlock as i, createElementVNode as a, createTextVNode as o, createVNode as s, defineComponent as c, mergeModels as l, normalizeClass as u, onMounted as d, openBlock as f, ref as p, renderSlot as m, toDisplayString as h, useId as g, useModel as _, withCtx as v, withKeys as y, withModifiers as b } from "vue";
|
|
3
|
+
//#region src/components/BlessCoachmark.vue?vue&type=script&setup=true&lang.ts
|
|
4
|
+
var x = ["aria-label", "aria-expanded"], S = /*@__PURE__*/ c({
|
|
5
|
+
name: "BlessCoachmark",
|
|
6
|
+
__name: "BlessCoachmark",
|
|
7
|
+
props: /*@__PURE__*/ l({
|
|
8
|
+
text: {},
|
|
9
|
+
id: {},
|
|
10
|
+
placement: { default: "top-end" },
|
|
11
|
+
dismissOnUse: {
|
|
12
|
+
type: Boolean,
|
|
13
|
+
default: !0
|
|
14
|
+
},
|
|
15
|
+
labels: {}
|
|
16
|
+
}, {
|
|
17
|
+
dismissed: {
|
|
18
|
+
type: Boolean,
|
|
19
|
+
default: !1
|
|
20
|
+
},
|
|
21
|
+
dismissedModifiers: {}
|
|
22
|
+
}),
|
|
23
|
+
emits: /*@__PURE__*/ l(["dismiss"], ["update:dismissed"]),
|
|
24
|
+
setup(c, { emit: l }) {
|
|
25
|
+
let S = c, C = _(c, "dismissed"), w = l, T = n(() => ({
|
|
26
|
+
dot: (e) => `New: ${e}`,
|
|
27
|
+
ok: "Got it",
|
|
28
|
+
...S.labels
|
|
29
|
+
})), E = n(() => S.id ? `bless-coachmark:${S.id}` : null), D = p(!1), O = p(!1), k = `${g()}-bubble`;
|
|
30
|
+
d(() => {
|
|
31
|
+
try {
|
|
32
|
+
E.value && localStorage.getItem(E.value) && (C.value = !0);
|
|
33
|
+
} catch {}
|
|
34
|
+
O.value = !0;
|
|
35
|
+
});
|
|
36
|
+
function A() {
|
|
37
|
+
if (!C.value) {
|
|
38
|
+
C.value = !0, D.value = !1;
|
|
39
|
+
try {
|
|
40
|
+
E.value && localStorage.setItem(E.value, "1");
|
|
41
|
+
} catch {}
|
|
42
|
+
w("dismiss");
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
let j = (e) => {
|
|
46
|
+
S.dismissOnUse && !e.target.closest?.(".bless-coachmark__dot, .bless-coachmark__bubble") && A();
|
|
47
|
+
};
|
|
48
|
+
return (n, l) => (f(), i("span", {
|
|
49
|
+
class: "bless-coachmark",
|
|
50
|
+
onClickCapture: j,
|
|
51
|
+
onKeydown: l[1] ||= y((e) => D.value = !1, ["esc"])
|
|
52
|
+
}, [m(n.$slots, "default"), O.value && !C.value ? (f(), i(t, { key: 0 }, [a("button", {
|
|
53
|
+
type: "button",
|
|
54
|
+
class: u(["bless-coachmark__dot", `bless-coachmark__dot--${c.placement}`]),
|
|
55
|
+
"aria-label": T.value.dot(S.text),
|
|
56
|
+
"aria-expanded": D.value,
|
|
57
|
+
"aria-controls": k,
|
|
58
|
+
onClick: l[0] ||= b((e) => D.value = !D.value, ["stop"])
|
|
59
|
+
}, null, 10, x), D.value ? (f(), i("span", {
|
|
60
|
+
key: 0,
|
|
61
|
+
id: k,
|
|
62
|
+
class: u(["bless-coachmark__bubble", `bless-coachmark__bubble--${c.placement}`]),
|
|
63
|
+
role: "status"
|
|
64
|
+
}, [o(h(S.text) + " ", 1), s(e, {
|
|
65
|
+
size: "sm",
|
|
66
|
+
onClick: A
|
|
67
|
+
}, {
|
|
68
|
+
default: v(() => [o(h(T.value.ok), 1)]),
|
|
69
|
+
_: 1
|
|
70
|
+
})], 2)) : r("", !0)], 64)) : r("", !0)], 32));
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
//#endregion
|
|
74
|
+
export { S as default };
|
|
@@ -18,6 +18,11 @@ declare const __VLS_export: __VLS_WithSlots<import('vue').DefineComponent<{
|
|
|
18
18
|
/** wrap long lines instead of scrolling sideways */
|
|
19
19
|
wrap?: boolean;
|
|
20
20
|
label?: string;
|
|
21
|
+
labels?: Partial<{
|
|
22
|
+
copy: string;
|
|
23
|
+
copied: string;
|
|
24
|
+
copiedLive: string;
|
|
25
|
+
}>;
|
|
21
26
|
} & {
|
|
22
27
|
active?: number;
|
|
23
28
|
}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
@@ -36,6 +41,11 @@ declare const __VLS_export: __VLS_WithSlots<import('vue').DefineComponent<{
|
|
|
36
41
|
/** wrap long lines instead of scrolling sideways */
|
|
37
42
|
wrap?: boolean;
|
|
38
43
|
label?: string;
|
|
44
|
+
labels?: Partial<{
|
|
45
|
+
copy: string;
|
|
46
|
+
copied: string;
|
|
47
|
+
copiedLive: string;
|
|
48
|
+
}>;
|
|
39
49
|
} & {
|
|
40
50
|
active?: number;
|
|
41
51
|
}> & Readonly<{
|
|
@@ -42,18 +42,24 @@ var y = { class: "bless-code" }, b = {
|
|
|
42
42
|
default: !0
|
|
43
43
|
},
|
|
44
44
|
wrap: { type: Boolean },
|
|
45
|
-
label: { default: "Code" }
|
|
45
|
+
label: { default: "Code" },
|
|
46
|
+
labels: {}
|
|
46
47
|
}, {
|
|
47
48
|
active: { default: 0 },
|
|
48
49
|
activeModifiers: {}
|
|
49
50
|
}),
|
|
50
51
|
emits: /*@__PURE__*/ s(["copy"], ["update:active"]),
|
|
51
52
|
setup(o, { emit: s }) {
|
|
52
|
-
let O = o, k =
|
|
53
|
+
let O = o, k = t(() => ({
|
|
54
|
+
copy: "Copy",
|
|
55
|
+
copied: "Copied",
|
|
56
|
+
copiedLive: "Copied to clipboard",
|
|
57
|
+
...O.labels
|
|
58
|
+
})), A = v(o, "active"), j = s, M = _(), N = t(() => (O.files?.length ? O.files[Math.min(A.value, O.files.length - 1)] : void 0) ?? {
|
|
53
59
|
name: O.filename ?? "",
|
|
54
60
|
code: O.code ?? "",
|
|
55
61
|
lang: O.lang
|
|
56
|
-
}),
|
|
62
|
+
}), P = t(() => N.value.lang ?? O.lang), F = t(() => {
|
|
57
63
|
let e = /* @__PURE__ */ new Set();
|
|
58
64
|
if (Array.isArray(O.lines)) O.lines.forEach((t) => e.add(t));
|
|
59
65
|
else for (let t of (O.lines ?? "").split(",")) {
|
|
@@ -61,72 +67,72 @@ var y = { class: "bless-code" }, b = {
|
|
|
61
67
|
if (n) for (let t = n; t <= (r ?? n); t++) e.add(t);
|
|
62
68
|
}
|
|
63
69
|
return e;
|
|
64
|
-
}),
|
|
70
|
+
}), I = t(() => N.value.code.replace(/\n$/, "").split("\n").map((e, t) => ({
|
|
65
71
|
n: t + 1,
|
|
66
72
|
text: e,
|
|
67
|
-
hl:
|
|
68
|
-
}))),
|
|
69
|
-
function
|
|
70
|
-
let t = O.files?.length ?? 0, n = e.key === "ArrowRight" ?
|
|
71
|
-
n != null && (e.preventDefault(),
|
|
73
|
+
hl: F.value.has(t + 1)
|
|
74
|
+
}))), L = f();
|
|
75
|
+
function R(e) {
|
|
76
|
+
let t = O.files?.length ?? 0, n = e.key === "ArrowRight" ? A.value + 1 : e.key === "ArrowLeft" ? A.value - 1 : e.key === "Home" ? 0 : e.key === "End" ? t - 1 : null;
|
|
77
|
+
n != null && (e.preventDefault(), A.value = (n + t) % t, c(() => L.value?.querySelectorAll("[role=\"tab\"]")[A.value]?.focus()));
|
|
72
78
|
}
|
|
73
|
-
let
|
|
74
|
-
async function
|
|
75
|
-
let e =
|
|
79
|
+
let z = f(!1), B;
|
|
80
|
+
async function V() {
|
|
81
|
+
let e = N.value.code;
|
|
76
82
|
try {
|
|
77
83
|
await navigator.clipboard.writeText(e);
|
|
78
84
|
} catch {
|
|
79
85
|
let t = document.createElement("textarea");
|
|
80
86
|
t.value = e, t.style.position = "fixed", t.style.opacity = "0", document.body.append(t), t.select(), document.execCommand("copy"), t.remove();
|
|
81
87
|
}
|
|
82
|
-
|
|
88
|
+
j("copy", e), z.value = !0, clearTimeout(B), B = setTimeout(() => z.value = !1, 2e3);
|
|
83
89
|
}
|
|
84
|
-
return u(() => clearTimeout(
|
|
85
|
-
o.files?.length || o.filename ||
|
|
90
|
+
return u(() => clearTimeout(B)), (t, s) => (d(), r("figure", y, [
|
|
91
|
+
o.files?.length || o.filename || P.value || o.copy ? (d(), r("figcaption", b, [
|
|
86
92
|
o.files?.length ? (d(), r("div", {
|
|
87
93
|
key: 0,
|
|
88
94
|
ref_key: "tabs",
|
|
89
|
-
ref:
|
|
95
|
+
ref: L,
|
|
90
96
|
class: "bless-code__tabs",
|
|
91
97
|
role: "tablist",
|
|
92
98
|
"aria-label": o.label
|
|
93
99
|
}, [(d(!0), r(e, null, p(o.files, (e, t) => (d(), r("button", {
|
|
94
|
-
id: `${g(
|
|
100
|
+
id: `${g(M)}-t${t}`,
|
|
95
101
|
key: e.name,
|
|
96
102
|
type: "button",
|
|
97
103
|
role: "tab",
|
|
98
104
|
class: "bless-code__tab",
|
|
99
|
-
"aria-selected": t ===
|
|
100
|
-
"aria-controls": `${g(
|
|
101
|
-
tabindex: t ===
|
|
102
|
-
onClick: (e) =>
|
|
103
|
-
onKeydown:
|
|
105
|
+
"aria-selected": t === A.value,
|
|
106
|
+
"aria-controls": `${g(M)}-p`,
|
|
107
|
+
tabindex: t === A.value ? 0 : -1,
|
|
108
|
+
onClick: (e) => A.value = t,
|
|
109
|
+
onKeydown: R
|
|
104
110
|
}, h(e.name), 41, S))), 128))], 8, x)) : o.filename ? (d(), r("span", C, h(o.filename), 1)) : n("", !0),
|
|
105
111
|
s[0] ||= i("span", { class: "bless-code__spacer" }, null, -1),
|
|
106
|
-
|
|
112
|
+
P.value ? (d(), r("span", w, h(P.value), 1)) : n("", !0),
|
|
107
113
|
o.copy ? (d(), r("button", {
|
|
108
114
|
key: 3,
|
|
109
115
|
type: "button",
|
|
110
116
|
class: "bless-code__copy",
|
|
111
|
-
onClick:
|
|
112
|
-
}, h(
|
|
117
|
+
onClick: V
|
|
118
|
+
}, h(z.value ? k.value.copied : k.value.copy), 1)) : n("", !0)
|
|
113
119
|
])) : n("", !0),
|
|
114
120
|
i("div", {
|
|
115
|
-
id: `${g(
|
|
121
|
+
id: `${g(M)}-p`,
|
|
116
122
|
class: "bless-code__scroll",
|
|
117
123
|
tabindex: "0",
|
|
118
124
|
role: o.files?.length ? "tabpanel" : "region",
|
|
119
|
-
"aria-labelledby": o.files?.length ? `${g(
|
|
120
|
-
"aria-label": o.files?.length ? void 0 :
|
|
125
|
+
"aria-labelledby": o.files?.length ? `${g(M)}-t${A.value}` : void 0,
|
|
126
|
+
"aria-label": o.files?.length ? void 0 : N.value.name || o.label
|
|
121
127
|
}, [m(t.$slots, "code", {
|
|
122
|
-
code:
|
|
123
|
-
lang:
|
|
124
|
-
lines:
|
|
125
|
-
}, () => [i("pre", { class: l(["bless-code__pre", { "bless-code__pre--wrap": o.wrap }]) }, [i("code", null, [(d(!0), r(e, null, p(
|
|
128
|
+
code: N.value.code,
|
|
129
|
+
lang: P.value,
|
|
130
|
+
lines: I.value
|
|
131
|
+
}, () => [i("pre", { class: l(["bless-code__pre", { "bless-code__pre--wrap": o.wrap }]) }, [i("code", null, [(d(!0), r(e, null, p(I.value, (e) => (d(), r("span", {
|
|
126
132
|
key: e.n,
|
|
127
133
|
class: l(["bless-code__line", { "bless-code__line--hl": e.hl }])
|
|
128
134
|
}, [o.lineNumbers ? (d(), r("span", E, h(e.n), 1)) : n("", !0), a(h(e.text) + "\n", 1)], 2))), 128))])], 2)])], 8, T),
|
|
129
|
-
i("span", D, h(
|
|
135
|
+
i("span", D, h(z.value ? k.value.copiedLive : ""), 1)
|
|
130
136
|
]));
|
|
131
137
|
}
|
|
132
138
|
});
|
|
@@ -13,6 +13,8 @@ declare const __VLS_export: <T extends string | number>(__VLS_props: NonNullable
|
|
|
13
13
|
size?: "sm" | "md" | "lg";
|
|
14
14
|
/** accessible name when there is no <label for> */
|
|
15
15
|
label?: string;
|
|
16
|
+
/** name of a chip's remove button, from the option's label */
|
|
17
|
+
removeLabel?: (name: string) => string;
|
|
16
18
|
} & {
|
|
17
19
|
modelValue?: T | T[] | undefined;
|
|
18
20
|
}) & {
|
|
@@ -38,7 +38,8 @@ var O = ["aria-label", "onClick"], ee = [
|
|
|
38
38
|
invalid: { type: Boolean },
|
|
39
39
|
emptyText: { default: "No results." },
|
|
40
40
|
size: { default: "md" },
|
|
41
|
-
label: {}
|
|
41
|
+
label: {},
|
|
42
|
+
removeLabel: {}
|
|
42
43
|
}, {
|
|
43
44
|
modelValue: {},
|
|
44
45
|
modelModifiers: {}
|
|
@@ -105,7 +106,7 @@ var O = ["aria-label", "onClick"], ee = [
|
|
|
105
106
|
default: T(() => [u(b(q(t)) + " ", 1), l("button", {
|
|
106
107
|
type: "button",
|
|
107
108
|
class: "bless-combobox__chip-x",
|
|
108
|
-
"aria-label": `Remove ${q(t)
|
|
109
|
+
"aria-label": (d.removeLabel ?? ((e) => `Remove ${e}`))(q(t)),
|
|
109
110
|
tabindex: "-1",
|
|
110
111
|
onClick: D((e) => $(t), ["stop"])
|
|
111
112
|
}, " × ", 8, O)]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.bless-command .bless-modal__body{padding:0}.bless-command .bless-modal__close{display:none}.bless-command .bless-modal__panel{--_w:560px}.bless-command--inline{border:var(--bless-border-width) solid var(--bless-color-border);background:var(--bless-color-bg)}.bless-command__box{border-radius:var(--bless-radius);font-family:var(--bless-font-sans);color:var(--bless-color-text);flex-direction:column;display:flex}.bless-command__search{border-radius:var(--bless-radius-plate);align-items:center;gap:var(--bless-space-3);padding:var(--bless-space-3) var(--bless-space-4);border-bottom:var(--bless-border-width) solid var(--bless-color-border);display:flex}.bless-command__icon{font-size:var(--bless-text-lg);color:var(--bless-color-text-muted);transform:skewX(var(--bless-skew-counter)) rotate(-45deg)}.bless-command__input{min-width:0;font:inherit;font-size:var(--bless-text-md);color:inherit;background:0 0;border:0;outline:0;flex:1}.bless-command__input::placeholder{color:var(--bless-color-text-muted)}.bless-command__list{max-height:320px;padding:var(--bless-space-2) 0;scrollbar-width:thin;overflow-y:auto}.bless-command__empty:empty{display:none}.bless-command__empty{padding:var(--bless-space-6);text-align:center;font-size:var(--bless-text-sm);color:var(--bless-color-text-muted);margin:0}.bless-command__group{padding:var(--bless-space-2) var(--bless-space-4) var(--bless-space-1);font-size:var(--bless-text-2xs);font-weight:var(--bless-font-weight-bold);letter-spacing:var(--bless-tracking-wider);text-transform:uppercase;color:var(--bless-color-text-muted)}.bless-command__item{align-items:center;gap:var(--bless-space-3);padding:var(--bless-space-2) var(--bless-space-4);font-size:var(--bless-text-sm);cursor:pointer;display:flex}.bless-command__item--active{background:var(--bless-color-surface)}.bless-command__item[aria-disabled=true]{opacity:.4;cursor:not-allowed}.bless-command__mark{text-align:center;flex:none;width:1.2em}.bless-command__label{flex:1}.bless-command__footer{gap:var(--bless-space-4);padding:var(--bless-space-2) var(--bless-space-4);border-top:var(--bless-border-width) solid var(--bless-color-border);font-size:var(--bless-text-xs);color:var(--bless-color-text-muted);display:flex}.bless-command__search{transform:skewX(var(--bless-skew))}.bless-command__search>:not(.bless-skew,.bless-chip,.bless-badge){transform:skewX(var(--bless-skew-counter))}
|
|
1
|
+
.bless-command .bless-modal__body{padding:0}.bless-command .bless-modal__close{display:none}.bless-command .bless-modal__panel{--_w:560px}.bless-command--inline{border:var(--bless-border-width) solid var(--bless-color-border);background:var(--bless-color-bg)}.bless-command__box{border-radius:var(--bless-radius);font-family:var(--bless-font-sans);color:var(--bless-color-text);flex-direction:column;display:flex}.bless-command__search{border-radius:var(--bless-radius-plate);align-items:center;gap:var(--bless-space-3);padding:var(--bless-space-3) var(--bless-space-4);border-bottom:var(--bless-border-width) solid var(--bless-color-border);display:flex}.bless-command__icon{font-size:var(--bless-text-lg);color:var(--bless-color-text-muted);transform:skewX(var(--bless-skew-counter)) rotate(-45deg)}.bless-command__input{min-width:0;font:inherit;font-size:var(--bless-text-md);color:inherit;background:0 0;border:0;outline:0;flex:1}.bless-command__input::placeholder{color:var(--bless-color-text-muted)}.bless-command__list{max-height:320px;padding:var(--bless-space-2) 0;scrollbar-width:thin;overflow-y:auto}.bless-command__empty:empty{display:none}.bless-command__empty{padding:var(--bless-space-6);text-align:center;font-size:var(--bless-text-sm);color:var(--bless-color-text-muted);margin:0}.bless-command__scope{padding:0 var(--bless-space-2);background:var(--bless-color-accent);color:var(--bless-color-on-accent);font:inherit;font-size:var(--bless-text-xs);cursor:pointer;border:0;flex:none}.bless-command__scope:focus-visible{outline:2px solid var(--bless-color-text);outline-offset:2px}.bless-command__hint{padding:var(--bless-space-1) var(--bless-space-3);color:var(--bless-color-text-muted);font-size:var(--bless-text-xs);margin:0}.bless-command__group{padding:var(--bless-space-2) var(--bless-space-4) var(--bless-space-1);font-size:var(--bless-text-2xs);font-weight:var(--bless-font-weight-bold);letter-spacing:var(--bless-tracking-wider);text-transform:uppercase;color:var(--bless-color-text-muted)}.bless-command__item{align-items:center;gap:var(--bless-space-3);padding:var(--bless-space-2) var(--bless-space-4);font-size:var(--bless-text-sm);cursor:pointer;display:flex}.bless-command__item--active{background:var(--bless-color-surface)}.bless-command__item[aria-disabled=true]{opacity:.4;cursor:not-allowed}.bless-command__mark{text-align:center;flex:none;width:1.2em}.bless-command__label{flex:1}.bless-command__footer{gap:var(--bless-space-4);padding:var(--bless-space-2) var(--bless-space-4);border-top:var(--bless-border-width) solid var(--bless-color-border);font-size:var(--bless-text-xs);color:var(--bless-color-text-muted);display:flex}.bless-command__search{transform:skewX(var(--bless-skew))}.bless-command__search>:not(.bless-skew,.bless-chip,.bless-badge){transform:skewX(var(--bless-skew-counter))}
|