@wikicasa-dev/components 2.6.7-alpha.7 → 2.6.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,10 @@
1
1
  import { AccessibleSelectOptions } from '../AccessibleSelect';
2
2
  import { ClassTypeProp } from '../types';
3
3
  import { Nullable } from '@wikicasa-dev/types';
4
+ export type ClearableAutocompleteSelectionTrigger = "click" | "enter";
5
+ export type ClearableAutocompleteSelectionMeta = {
6
+ trigger: ClearableAutocompleteSelectionTrigger;
7
+ };
4
8
  export interface ClearableAutocompleteProps<TID extends string | number | undefined, TPayload> {
5
9
  dataCy?: string;
6
10
  placeholder?: string;
@@ -20,7 +24,7 @@ export interface ClearableAutocompleteProps<TID extends string | number | undefi
20
24
  keepState?: Nullable<"closed" | "open">;
21
25
  disableCb?: boolean;
22
26
  onInputChangeCb: (v: string) => Promise<AccessibleSelectOptions<TPayload, TID>[]>;
23
- onOptionSelectedCb?: Nullable<(v: AccessibleSelectOptions<TPayload, TID>) => void>;
27
+ onOptionSelectedCb?: Nullable<(v: AccessibleSelectOptions<TPayload, TID>, meta: ClearableAutocompleteSelectionMeta) => void>;
24
28
  }
25
29
  declare const _default: typeof __VLS_export;
26
30
  export default _default;
@@ -1,15 +1,15 @@
1
- import { defineComponent as J, useModel as M, useId as Q, useTemplateRef as c, shallowRef as r, onBeforeMount as Y, onMounted as Z, onUnmounted as _, watch as O, nextTick as ee, openBlock as y, createBlock as I, withCtx as W, renderSlot as f, createCommentVNode as x, createElementBlock as L, createElementVNode as u, Fragment as te, renderList as le, normalizeClass as p, withDirectives as D, unref as ne, vModelText as oe, toDisplayString as ae, withModifiers as ie, normalizeStyle as ue, createTextVNode as se, vShow as re, mergeModels as N } from "vue";
2
- import de from "../BaseDropDown.vue.js";
1
+ import { defineComponent as ee, useModel as U, useId as te, useTemplateRef as f, shallowRef as r, onBeforeMount as le, onMounted as ae, onUnmounted as ne, watch as V, nextTick as oe, openBlock as w, createBlock as I, withCtx as M, renderSlot as p, createCommentVNode as O, createElementBlock as P, createElementVNode as d, Fragment as ue, renderList as ie, normalizeClass as v, withDirectives as A, unref as se, vModelText as re, toDisplayString as de, withModifiers as ce, normalizeStyle as fe, createTextVNode as pe, vShow as ve, mergeModels as z } from "vue";
2
+ import ke from "../BaseDropDown.vue.js";
3
3
  import '../../assets/BaseDropDown.css';/* empty css */
4
- import ce from "../BaseSelect/SelectItem.vue.js";
5
- import { debounce as fe } from "@wikicasa-dev/utilities";
6
- const pe = ["id", "data-cy", "placeholder"], ve = {
4
+ import me from "../BaseSelect/SelectItem.vue.js";
5
+ import { debounce as ye } from "@wikicasa-dev/utilities";
6
+ const he = ["id", "data-cy", "placeholder"], we = {
7
7
  key: 1,
8
8
  name: "loading-state",
9
9
  class: "uikit-progress-bar-track uikit-absolute uikit-left-0 uikit-top-0 uikit-w-full"
10
- }, ke = ["innerHTML"], ge = /* @__PURE__ */ J({
10
+ }, be = ["innerHTML"], Ue = /* @__PURE__ */ ee({
11
11
  __name: "ClearableAutocomplete",
12
- props: /* @__PURE__ */ N({
12
+ props: /* @__PURE__ */ z({
13
13
  dataCy: {},
14
14
  placeholder: {},
15
15
  enableKeyboardController: { type: Boolean, default: !0 },
@@ -33,168 +33,195 @@ const pe = ["id", "data-cy", "placeholder"], ve = {
33
33
  },
34
34
  inputValueModifiers: {}
35
35
  }),
36
- emits: /* @__PURE__ */ N(["input", "click", "inputClick", "keydown"], ["update:open", "update:modelValue", "update:inputValue"]),
37
- setup(t, { expose: K, emit: A }) {
38
- const s = M(t, "open"), v = M(t, "modelValue"), a = M(t, "inputValue"), k = A, P = Q(), h = c("inputRef"), m = r(0), w = r(!1), d = r(!1), b = r(!1), R = r(null), o = r([]), $ = c("dropdownRef"), g = c("hiddenSpan"), B = c("inputWrapperRef"), F = c("clearButtonRef"), H = () => {
39
- a.value = "", v.value = null, d.value = !1;
40
- }, G = async (l) => {
41
- if (!l) {
42
- o.value = [], s.value = !1;
36
+ emits: /* @__PURE__ */ z(["input", "click", "inputClick", "keydown"], ["update:open", "update:modelValue", "update:inputValue"]),
37
+ setup(t, { expose: K, emit: L }) {
38
+ const u = U(t, "open"), k = U(t, "modelValue"), i = U(t, "inputValue"), m = L, N = te(), b = f("inputRef"), y = r(0), c = r(!1), h = r(!1), n = r(-1), C = r(-1), W = r(null), o = r([]), H = f("dropdownRef"), g = f("hiddenSpan"), B = f("inputWrapperRef"), x = f("clearButtonRef"), E = () => {
39
+ n.value = -1, C.value = -1;
40
+ }, X = () => {
41
+ i.value = "", k.value = null, c.value = !1, E();
42
+ }, j = async (e) => {
43
+ if (!e) {
44
+ o.value = [], u.value = !1, E();
43
45
  return;
44
46
  }
45
- t.disableCb || (b.value = !0, o.value = await R.value?.(l)?.catch(() => []) || [], w.value = !0, b.value = !1, console.log("DEBUG:loading options completed"), s.value = !!o.value.length);
46
- }, V = (l = -1) => {
47
- const e = o.value[l];
48
- !e || e.id === v.value?.id || (t.onOptionSelectedCb?.(e), a.value = e.label, s.value = !1, v.value = e, d.value = !0, o.value = []);
49
- }, X = () => {
50
- h.value?.select();
51
- }, j = () => {
52
- h.value?.focus();
47
+ t.disableCb || (h.value = !0, o.value = await W.value?.(e)?.catch(() => []) || [], E(), h.value = !1, u.value = !!o.value.length);
48
+ }, q = (e) => {
49
+ m("input", e), c.value = !1;
50
+ }, D = (e = -1, l) => {
51
+ const a = o.value[e];
52
+ !a || a.id === k.value?.id || (C.value = e, t.onOptionSelectedCb?.(a, { trigger: l }), i.value = a.label, u.value = !1, k.value = a, c.value = !0, o.value = []);
53
+ }, R = (e) => {
54
+ if (!t.enableKeyboardController || !u.value || ![
55
+ "ArrowUp",
56
+ "ArrowDown",
57
+ "Enter",
58
+ "Escape",
59
+ "PageUp",
60
+ "Home",
61
+ "PageDown",
62
+ "End"
63
+ ].includes(e.key))
64
+ return;
65
+ if (e.key === "Escape") {
66
+ n.value = C.value, u.value = !1, e.stopPropagation();
67
+ return;
68
+ }
69
+ if (!o.value.length)
70
+ return;
71
+ const l = o.value.length - 1;
72
+ if (["ArrowUp", "ArrowDown", "PageUp", "Home", "PageDown", "End"].includes(
73
+ e.key
74
+ ) && e.preventDefault(), e.key === "ArrowUp")
75
+ n.value = n.value <= 0 ? l : n.value - 1;
76
+ else if (e.key === "ArrowDown")
77
+ n.value = n.value >= l ? 0 : n.value + 1;
78
+ else if (e.key === "Enter") {
79
+ if (n.value === -1) return;
80
+ e.preventDefault(), D(n.value, "enter");
81
+ } else e.key === "PageUp" || e.key === "Home" ? n.value = 0 : (e.key === "PageDown" || e.key === "End") && (n.value = l);
82
+ e.stopPropagation();
83
+ }, G = (e) => {
84
+ m("keydown", e), R(e);
85
+ }, J = () => {
86
+ b.value?.select();
87
+ }, Q = () => {
88
+ b.value?.focus();
53
89
  };
54
90
  let T = null;
55
- const U = () => {
56
- const l = g.value, e = B.value, n = F.value;
57
- if (!l || !e) return;
58
- const S = l.offsetWidth, C = e.offsetWidth, i = t.clearButton?.offset || 0, E = t.clearButton?.width || n?.offsetWidth || 0, q = C - i - E, z = Math.min(S, q);
59
- z !== m.value && (m.value = z);
91
+ const $ = () => {
92
+ const e = g.value, l = B.value, a = x.value;
93
+ if (!e || !l) return;
94
+ const s = e.offsetWidth, S = l.offsetWidth, Y = t.clearButton?.offset || 0, Z = t.clearButton?.width || a?.offsetWidth || 0, _ = S - Y - Z, F = Math.min(s, _);
95
+ F !== y.value && (y.value = F);
60
96
  };
61
- return Y(() => {
62
- R.value = fe({ delay: 300 }, async (l = "") => (s.value = !0, await t.onInputChangeCb(l)));
63
- }), Z(() => {
97
+ return le(() => {
98
+ W.value = ye({ delay: 300 }, async (e = "") => (u.value = !0, await t.onInputChangeCb(e)));
99
+ }), ae(() => {
64
100
  B.value && (T = new ResizeObserver(() => {
65
- U();
101
+ $();
66
102
  }), T.observe(B.value));
67
- }), _(() => {
103
+ }), ne(() => {
68
104
  T?.disconnect();
69
- }), O([a, g, F], () => {
70
- ee(U);
71
- }), O(
72
- () => $.value?.selectedIdx,
73
- (l) => {
74
- const e = l ?? -1;
75
- e !== -1 && V(e);
76
- }
77
- ), O(
78
- v,
79
- (l) => {
80
- if (l?.label === a.value) return;
81
- const e = l?.label || "";
82
- a.value = e, e && (d.value = !0);
105
+ }), V([i, g, x], () => {
106
+ oe($);
107
+ }), V(
108
+ k,
109
+ (e) => {
110
+ if (e?.label === i.value) return;
111
+ const l = e?.label || "";
112
+ i.value = l, l && (c.value = !0);
83
113
  },
84
114
  { immediate: !0 }
85
115
  ), K({
86
- getRootElement: () => $.value?.getRootElement(),
87
- select: X,
88
- focus: j
89
- }), (l, e) => (y(), I(de, {
116
+ getRootElement: () => H.value?.getRootElement(),
117
+ select: J,
118
+ focus: Q
119
+ }), (e, l) => (w(), I(ke, {
90
120
  ref: "dropdownRef",
91
121
  class: "uikit-clearable-autocomplete",
92
122
  "data-cy": t.dataCy,
93
123
  "dropdown-element": "ul",
94
124
  "dropdown-classes": ["uikit-z-30", t.dropdownClasses],
95
125
  "keep-state": t.keepState === "closed" ? "closed" : "opened",
96
- "activate-keyboard-controller": t.enableKeyboardController,
97
- "reset-keyboard-controller": w.value,
98
- "onUpdate:resetKeyboardController": e[5] || (e[5] = (n) => w.value = n),
99
- open: s.value,
100
- "onUpdate:open": e[6] || (e[6] = (n) => s.value = n)
126
+ "activate-keyboard-controller": !1,
127
+ open: u.value,
128
+ "onUpdate:open": l[3] || (l[3] = (a) => u.value = a)
101
129
  }, {
102
- btn_slot: W(() => [
103
- u("div", {
104
- class: p(["uikit-text-16", t.triggerWrapperClasses]),
105
- onClick: e[4] || (e[4] = (n) => k("click", n))
130
+ btn_slot: M(() => [
131
+ d("div", {
132
+ class: v(["uikit-text-16", t.triggerWrapperClasses]),
133
+ onClick: l[2] || (l[2] = (a) => m("click", a))
106
134
  }, [
107
- f(l.$slots, "left-icon"),
108
- u("div", {
135
+ p(e.$slots, "left-icon"),
136
+ d("div", {
109
137
  ref: "inputWrapperRef",
110
- class: p(["uikit-relative", t.inputWrapperClasses])
138
+ class: v(["uikit-relative", t.inputWrapperClasses])
111
139
  }, [
112
- D(u("input", {
140
+ A(d("input", {
113
141
  ref: "inputRef",
114
142
  "onUpdate:modelValue": [
115
- e[0] || (e[0] = (n) => a.value = n),
116
- G
143
+ l[0] || (l[0] = (a) => i.value = a),
144
+ j
117
145
  ],
118
- id: ne(P),
146
+ id: se(N),
119
147
  "data-cy": t.dataCy ? `ac_input_${t.dataCy}` : "",
120
148
  type: "text",
121
149
  autocomplete: "off",
122
- class: p(["uikit-w-full uikit-border-none focus-visible:uikit-outline-none", t.inputClasses]),
150
+ class: v(["uikit-w-full uikit-border-none focus-visible:uikit-outline-none", t.inputClasses]),
123
151
  style: {
124
152
  font: "inherit",
125
153
  fontSize: "inherit"
126
154
  },
127
155
  placeholder: t.placeholder,
128
- onKeydown: e[1] || (e[1] = (n) => k("keydown", n)),
129
- onInput: e[2] || (e[2] = (n) => {
130
- k("input", n), d.value = !1;
131
- }),
132
- onClick: e[3] || (e[3] = (n) => {
133
- k("inputClick", n), h.value?.select();
156
+ onKeydown: G,
157
+ onInput: q,
158
+ onClick: l[1] || (l[1] = (a) => {
159
+ m("inputClick", a), b.value?.select();
134
160
  })
135
- }, null, 42, pe), [
136
- [oe, a.value]
161
+ }, null, 42, he), [
162
+ [re, i.value]
137
163
  ]),
138
- u("span", {
164
+ d("span", {
139
165
  ref_key: "hiddenSpan",
140
166
  ref: g,
141
- class: p(["uikit-invisible uikit-absolute uikit-left-0 uikit-top-0 uikit-max-w-full uikit-overflow-hidden uikit-whitespace-pre", t.hiddenTextClasses]),
167
+ class: v(["uikit-invisible uikit-absolute uikit-left-0 uikit-top-0 uikit-max-w-full uikit-overflow-hidden uikit-whitespace-pre", t.hiddenTextClasses]),
142
168
  style: {
143
169
  font: "inherit",
144
170
  fontSize: "inherit"
145
171
  }
146
- }, ae(a.value), 3),
147
- D(u("button", {
172
+ }, de(i.value), 3),
173
+ A(d("button", {
148
174
  ref: "clearButtonRef",
149
175
  type: "button",
150
- class: p(["uikit-clear-btn uikit-absolute uikit-top-1/2 -uikit-translate-y-1/2 uikit-appearance-none", t.clearButton?.classes]),
176
+ class: v(["uikit-clear-btn uikit-absolute uikit-top-1/2 -uikit-translate-y-1/2 uikit-appearance-none", t.clearButton?.classes]),
151
177
  "aria-label": "Clear input",
152
- style: ue({
153
- left: `${m.value + (t.clearButton?.offset || 0)}px`,
178
+ style: fe({
179
+ left: `${y.value + (t.clearButton?.offset || 0)}px`,
154
180
  width: t.clearButton?.width ? `${t.clearButton.width}px` : "auto",
155
181
  height: t.clearButton?.height ? `${t.clearButton.height}px` : "auto"
156
182
  }),
157
- onClick: ie(H, ["stop"])
183
+ onClick: ce(X, ["stop"])
158
184
  }, [
159
- f(l.$slots, "clear-icon", {}, () => [
160
- e[7] || (e[7] = se("X", -1))
185
+ p(e.$slots, "clear-icon", {}, () => [
186
+ l[4] || (l[4] = pe("X", -1))
161
187
  ])
162
188
  ], 6), [
163
- [re, d.value && m.value]
189
+ [ve, c.value && y.value]
164
190
  ])
165
191
  ], 2),
166
- f(l.$slots, "right-icon")
192
+ p(e.$slots, "right-icon")
167
193
  ], 2)
168
194
  ]),
169
- default: W(({ activeIdx: n, setActiveIdx: S }) => [
170
- b.value && !o.value.length ? f(l.$slots, "loading-state", { key: 0 }) : x("", !0),
171
- b.value && o.value.length ? (y(), L("div", ve, [...e[8] || (e[8] = [
172
- u("div", { class: "uikit-progress-bar-fill" }, null, -1)
173
- ])])) : x("", !0),
174
- o.value.length ? (y(!0), L(te, { key: 2 }, le(o.value, (C, i) => (y(), I(ce, {
175
- key: i,
176
- active: n === i,
195
+ default: M(() => [
196
+ h.value && !o.value.length ? p(e.$slots, "loading-state", { key: 0 }) : O("", !0),
197
+ h.value && o.value.length ? (w(), P("div", we, [...l[5] || (l[5] = [
198
+ d("div", { class: "uikit-progress-bar-fill" }, null, -1)
199
+ ])])) : O("", !0),
200
+ o.value.length ? (w(!0), P(ue, { key: 2 }, ie(o.value, (a, s) => (w(), I(me, {
201
+ key: s,
202
+ active: n.value === s,
177
203
  class: "uikit-m-1 uikit-rounded-[5px] uikit-px-5 uikit-py-10px hover:uikit-cursor-pointer",
178
- onClick: (E) => V(i),
179
- onMouseover: (E) => S(i)
204
+ onClick: (S) => D(s, "click"),
205
+ onKeydown: R,
206
+ onMouseover: (S) => n.value = s
180
207
  }, {
181
- default: W(() => [
182
- f(l.$slots, "option-content", {
183
- option: C,
184
- idx: i
208
+ default: M(() => [
209
+ p(e.$slots, "option-content", {
210
+ option: a,
211
+ idx: s
185
212
  }, () => [
186
- u("span", {
187
- innerHTML: C.label
188
- }, null, 8, ke)
213
+ d("span", {
214
+ innerHTML: a.label
215
+ }, null, 8, be)
189
216
  ])
190
217
  ]),
191
218
  _: 2
192
- }, 1032, ["active", "onClick", "onMouseover"]))), 128)) : x("", !0)
219
+ }, 1032, ["active", "onClick", "onMouseover"]))), 128)) : O("", !0)
193
220
  ]),
194
221
  _: 3
195
- }, 8, ["data-cy", "dropdown-classes", "keep-state", "activate-keyboard-controller", "reset-keyboard-controller", "open"]));
222
+ }, 8, ["data-cy", "dropdown-classes", "keep-state", "open"]));
196
223
  }
197
224
  });
198
225
  export {
199
- ge as default
226
+ Ue as default
200
227
  };
@@ -1 +1 @@
1
- .swiper-pagination-bullet{--swiper-pagination-color: #ccc}.swiper-pagination-bullet-active{--swiper-pagination-color: #fff}
1
+ .no-transition[data-v-c4229b26]{transition-duration:0ms!important}.disable-select[data-v-c4229b26]{-webkit-user-select:none;-moz-user-select:none;user-select:none}.swiper-button-disabled[data-v-c4229b26]{pointer-events:auto!important}
@@ -0,0 +1 @@
1
+ .swiper-pagination-bullet{--swiper-pagination-color: #ccc}.swiper-pagination-bullet-active{--swiper-pagination-color: #fff}
@@ -1,5 +1,5 @@
1
1
  import o from "./SwiperPaginationPrimitive.vue.js";
2
- import '../../../assets/SwiperCarousel.css';/* empty css */
2
+ import '../../../assets/SwiperPaginationPrimitive.css';/* empty css */
3
3
  export {
4
4
  o as default
5
5
  };
@@ -1,5 +1,5 @@
1
1
  import o from "./SwiperCarousel.vue.js";
2
- import '../../assets/SwiperCarousel2.css';import '../../assets/SwiperCarousel.css';/* empty css */
2
+ import '../../assets/SwiperCarousel.css';import '../../assets/SwiperPaginationPrimitive.css';/* empty css */
3
3
  /* empty css */
4
4
  import r from "../../_virtual/_plugin-vue_export-helper.js";
5
5
  const e = /* @__PURE__ */ r(o, [["__scopeId", "data-v-c4229b26"]]);
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { default as P } from "./UIKit/Accordion/BaseAccordion.vue.js";
2
2
  import { default as S } from "./UIKit/Accordion/BaseAccordionItem.vue.js";
3
- import './assets/baseCard.css';import './assets/SwiperSlideImagePrimitive.css';import './assets/SwiperCarousel.css';import './assets/BaseSnackbar.css';import './assets/baseModal.css';import './assets/BaseDropDown.css';import './assets/BaseBadge.css';import './assets/ClearableAutocomplete.css';import './assets/BaseAutocomplete.css';import './assets/baseAlert.css';import './assets/AccessibleSelect.css';import './assets/RadioButtonItem.css';import './assets/BaseTabsIndicator.css';import './assets/BaseTabs.css';import './assets/CheckboxBtn.css';import './assets/BaseAccordionItem.css';/* empty css */
3
+ import './assets/baseCard.css';import './assets/SwiperSlideImagePrimitive.css';import './assets/SwiperPaginationPrimitive.css';import './assets/BaseSnackbar.css';import './assets/baseModal.css';import './assets/BaseDropDown.css';import './assets/BaseBadge.css';import './assets/ClearableAutocomplete.css';import './assets/BaseAutocomplete.css';import './assets/baseAlert.css';import './assets/AccessibleSelect.css';import './assets/RadioButtonItem.css';import './assets/BaseTabsIndicator.css';import './assets/BaseTabs.css';import './assets/CheckboxBtn.css';import './assets/BaseAccordionItem.css';/* empty css */
4
4
  import { default as I } from "./UIKit/Accordion/AccordionItemPrimitive.vue.js";
5
5
  import { default as h } from "./UIKit/Accordion/AccordionHeaderPrimitive.vue.js";
6
6
  import { default as w } from "./UIKit/Accordion/AccordionTriggerPrimitive.vue.js";
@@ -1,4 +1,4 @@
1
- import '../../../assets/swiper-keyboard.css';/* empty css */
1
+ import '../../../assets/swiper-thumbs.css';/* empty css */
2
2
  import "swiper/modules";
3
3
  import { Autoplay as m } from "swiper/modules";
4
4
  export {
@@ -1,4 +1,4 @@
1
- import '../../../assets/swiper-keyboard.css';/* empty css */
1
+ import '../../../assets/swiper-thumbs.css';/* empty css */
2
2
  import "swiper/modules";
3
3
  import { Controller as m } from "swiper/modules";
4
4
  export {
@@ -1,4 +1,4 @@
1
- import '../../../assets/swiper-keyboard.css';/* empty css */
1
+ import '../../../assets/swiper-thumbs.css';/* empty css */
2
2
  import "swiper/modules";
3
3
  import { Keyboard as t } from "swiper/modules";
4
4
  export {
@@ -1,4 +1,4 @@
1
- import '../../../assets/swiper-keyboard.css';/* empty css */
1
+ import '../../../assets/swiper-thumbs.css';/* empty css */
2
2
  import "swiper/modules";
3
3
  import { Thumbs as p } from "swiper/modules";
4
4
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wikicasa-dev/components",
3
- "version": "2.6.7-alpha.7",
3
+ "version": "2.6.8",
4
4
  "description": "Wikicasa frontend components",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -61,6 +61,7 @@
61
61
  "@histoire/plugin-vue": "^1.0.0-beta.1",
62
62
  "@types/node": "^25.9.1",
63
63
  "@vitejs/plugin-vue": "^6.0.7",
64
+ "@vitest/browser-playwright": "^4.1.8",
64
65
  "@vue/eslint-config-typescript": "^14.8.0",
65
66
  "@wikicasa-dev/svg-icons": "^1.3.6",
66
67
  "@wikicasa-dev/tailwind-plugins": "^0.0.6",
@@ -86,6 +87,8 @@
86
87
  "unplugin-dts": "1.0.2",
87
88
  "vite": "7.3.1",
88
89
  "vite-plugin-lib-inject-css": "^2.2.2",
90
+ "vitest": "^4.1.8",
91
+ "vitest-browser-vue": "^2.1.0",
89
92
  "vue-router": "^5.1.0",
90
93
  "vue-tsc": "3.3.3"
91
94
  },
@@ -100,9 +103,11 @@
100
103
  "story:build": "histoire build",
101
104
  "story:preview": "histoire preview",
102
105
  "release:alpha": "pnpm version prerelease --preid=alpha && pnpm publish --tag alpha --no-git-checks",
106
+ "tsc": "vue-tsc --p ./tsconfig-build.json",
103
107
  "lint": "run-s lint:*",
104
108
  "lint:oxlint": "oxlint . --fix",
105
109
  "lint:eslint": "eslint . --fix --cache",
106
- "format": "oxfmt src/"
110
+ "format": "oxfmt src/",
111
+ "test:browser": "vitest --config=vitest.browser.config.ts"
107
112
  }
108
113
  }
@@ -1 +0,0 @@
1
- .no-transition[data-v-c4229b26]{transition-duration:0ms!important}.disable-select[data-v-c4229b26]{-webkit-user-select:none;-moz-user-select:none;user-select:none}.swiper-button-disabled[data-v-c4229b26]{pointer-events:auto!important}