vunor 0.3.1 → 0.4.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/README.md +8 -1
- package/dist/AppLayout.mjs +17 -68
- package/dist/AppToasts.d.mts +3 -0
- package/dist/AppToasts.mjs +59 -76
- package/dist/Button.d.mts +26 -10
- package/dist/Button.mjs +95 -60
- package/dist/ButtonBase.mjs +26 -40
- package/dist/Calendar.d.mts +14 -2
- package/dist/Calendar.mjs +37 -85
- package/dist/Card.mjs +6 -25
- package/dist/CardHeader.mjs +3 -12
- package/dist/Checkbox.d.mts +7 -2
- package/dist/Checkbox.mjs +37 -45
- package/dist/Combobox.d.mts +24 -8
- package/dist/Combobox.mjs +274 -350
- package/dist/DatePicker.d.mts +18 -4
- package/dist/DatePicker.mjs +93 -216
- package/dist/DatePickerBase.d.mts +21 -8
- package/dist/DatePickerBase.mjs +108 -257
- package/dist/DatePickerPopup.d.mts +27 -2
- package/dist/DatePickerPopup.mjs +62 -13
- package/dist/DelayedSwitch.mjs +3 -14
- package/dist/DevTools.mjs +377 -388
- package/dist/Dialog.d.mts +8 -3
- package/dist/Dialog.mjs +77 -107
- package/dist/Icon.mjs +1 -4
- package/dist/InnerLoading.mjs +1 -4
- package/dist/Input.mjs +35 -126
- package/dist/InputBase.mjs +28 -93
- package/dist/LoadingIndicator.mjs +1 -5
- package/dist/Menu.mjs +44 -65
- package/dist/MenuItem.mjs +4 -16
- package/dist/OverflowContainer.mjs +9 -11
- package/dist/Pagination.mjs +11 -29
- package/dist/Popover.d.mts +39 -11
- package/dist/Popover.mjs +80 -99
- package/dist/ProgressBar.d.mts +9 -2
- package/dist/ProgressBar.mjs +11 -27
- package/dist/RadioGroup.d.mts +2 -1
- package/dist/RadioGroup.mjs +33 -47
- package/dist/Select.d.mts +24 -7
- package/dist/Select.mjs +94 -186
- package/dist/SelectBase.d.mts +26 -11
- package/dist/SelectBase.mjs +59 -83
- package/dist/Slider.d.mts +6 -1
- package/dist/Slider.mjs +34 -103
- package/dist/Tabs.mjs +13 -49
- package/dist/forward-root-DPGTBptG.js +125 -0
- package/dist/nuxt.mjs +36 -1
- package/dist/theme.d.mts +1 -1
- package/dist/theme.mjs +22 -5
- package/dist/{utils-6bTTIoaw.js → utils-BCBGEM10.js} +30 -1
- package/dist/utils.mjs +1 -1
- package/dist/vite.d.mts +13 -4
- package/dist/vite.mjs +5 -0
- package/package.json +24 -9
- package/dist/utils-Z0nPSAzb.js +0 -42
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { camelize, computed, getCurrentInstance, ref, toHandlerKey, warn, watch } from "vue";
|
|
2
|
+
//#region src/components/forward-root.ts
|
|
3
|
+
function keysOf(value) {
|
|
4
|
+
return Array.isArray(value) ? value : Object.keys(value ?? {});
|
|
5
|
+
}
|
|
6
|
+
function isBooleanProp(definition) {
|
|
7
|
+
const type = definition?.type;
|
|
8
|
+
return Array.isArray(type) ? type.includes(Boolean) : type === Boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Forwarding contract for components that wrap another component (usually a Reka root):
|
|
12
|
+
* every prop and emit of the wrapped `root` that the wrapper declares reaches `root`.
|
|
13
|
+
*
|
|
14
|
+
* Returns the bindings to `v-bind` on `root`:
|
|
15
|
+
* - each prop of `root` (except `omit`) whose value on the wrapper is not `undefined`;
|
|
16
|
+
* - a listener for each emit of `root` (except `omit`) that re-emits it from the wrapper
|
|
17
|
+
* when `emit` is given (the wrapper must declare those emits).
|
|
18
|
+
*
|
|
19
|
+
* A forwarded boolean prop must be declared with a default (`withDefaults`), usually
|
|
20
|
+
* `undefined`: Vue casts an absent boolean without a default to `false`, which would
|
|
21
|
+
* override `root`'s own default (for example `modal: true`). In development a forwarded
|
|
22
|
+
* boolean without a default is reported with a Vue warning.
|
|
23
|
+
*
|
|
24
|
+
* Props and emits the wrapper binds itself (models, layout-controlled `asChild`) go in `omit`.
|
|
25
|
+
*/
|
|
26
|
+
function useForwardToRoot(root, props, emit, omit = []) {
|
|
27
|
+
const skip = new Set(omit);
|
|
28
|
+
const options = root;
|
|
29
|
+
const rootProps = keysOf(options.props).filter((key) => !skip.has(key));
|
|
30
|
+
const ownProps = (getCurrentInstance()?.type)?.props;
|
|
31
|
+
for (const key of rootProps) {
|
|
32
|
+
const own = ownProps?.[key];
|
|
33
|
+
if (own && isBooleanProp(own) && !("default" in own)) warn(`vunor: boolean prop "${key}" is forwarded to a wrapped component but has no default; declare it with \`default: undefined\` so an absent prop is not forwarded as false.`);
|
|
34
|
+
}
|
|
35
|
+
const listeners = {};
|
|
36
|
+
if (emit) {
|
|
37
|
+
for (const event of keysOf(options.emits)) if (!skip.has(event)) listeners[toHandlerKey(camelize(event))] = (...args) => emit(event, ...args);
|
|
38
|
+
}
|
|
39
|
+
return computed(() => {
|
|
40
|
+
const bindings = { ...listeners };
|
|
41
|
+
for (const key of rootProps) if (props[key] !== void 0) bindings[key] = props[key];
|
|
42
|
+
return bindings;
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* The value a Reka root starts `X` with when `defaultX` is not set, as its setup computes
|
|
47
|
+
* it (`SliderRoot` `defaultValue` -> `[0]`, `PopoverRoot` `defaultOpen` -> `false`, a
|
|
48
|
+
* `multiple` Select / Combobox `defaultValue` -> `[]`).
|
|
49
|
+
*/
|
|
50
|
+
function rekaDefault(root, key, props) {
|
|
51
|
+
const definition = root.props;
|
|
52
|
+
const option = definition?.[key];
|
|
53
|
+
if (!option || typeof option !== "object") return;
|
|
54
|
+
if (key === "defaultValue" && definition && "multiple" in definition) return props.multiple ? [] : void 0;
|
|
55
|
+
if ("default" in option) {
|
|
56
|
+
const types = [option.type].flat();
|
|
57
|
+
return typeof option.default === "function" && !types.includes(Function) ? option.default() : option.default;
|
|
58
|
+
}
|
|
59
|
+
return isBooleanProp(option) ? false : void 0;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* The one source of truth for what a wrapper exposes about a root model `X` (slot props,
|
|
63
|
+
* data attributes, toggles), where it reads it outside the root. It mirrors how the Reka
|
|
64
|
+
* root resolves `X` (VueUse `useVModel` in its setup):
|
|
65
|
+
* - a bound model is the state;
|
|
66
|
+
* - `defaultX` is read ONCE, at setup, like Reka does (a later change has no effect);
|
|
67
|
+
* - a root that starts unbound (passive) holds `defaultX ?? <Reka's setup default>` until
|
|
68
|
+
* the model is first set, and whatever the model last was after that (a cleared model
|
|
69
|
+
* -> no value);
|
|
70
|
+
* - a root that starts bound falls back to `defaultX ?? <Reka's setup default>` when the
|
|
71
|
+
* model is cleared.
|
|
72
|
+
* The root itself stays bound to the raw model. Writing sets the model (one write per
|
|
73
|
+
* toggle); the wrapper never writes because the parent changed the model.
|
|
74
|
+
*/
|
|
75
|
+
function useModelState(model, root, defaultKey, props) {
|
|
76
|
+
const values = props;
|
|
77
|
+
const rootDefault = rekaDefault(root, defaultKey, values);
|
|
78
|
+
const initial = values[defaultKey] ?? rootDefault;
|
|
79
|
+
const cleared = typeof rootDefault === "boolean" ? rootDefault : void 0;
|
|
80
|
+
const passive = model.value === void 0;
|
|
81
|
+
const touched = ref(false);
|
|
82
|
+
watch(model, () => {
|
|
83
|
+
touched.value = true;
|
|
84
|
+
});
|
|
85
|
+
return computed({
|
|
86
|
+
get: () => {
|
|
87
|
+
if (model.value !== void 0) return model.value;
|
|
88
|
+
return passive && touched.value ? cleared : initial;
|
|
89
|
+
},
|
|
90
|
+
set: (value) => {
|
|
91
|
+
model.value = value;
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
const claimedGestures = /* @__PURE__ */ new WeakSet();
|
|
96
|
+
/**
|
|
97
|
+
* One user gesture toggles a popup ONCE. A click on an append icon also bubbles to the
|
|
98
|
+
* field shell around it, and both may want to toggle; every vunor toggle handler calls
|
|
99
|
+
* this first and only toggles when it returns true:
|
|
100
|
+
* - the first (innermost) handler on the event's path claims it, later ones skip it;
|
|
101
|
+
* - a gesture that lands inside a Reka trigger (marked `data-vu-trigger`) belongs to that
|
|
102
|
+
* trigger, which toggles by itself: no vunor handler toggles for it.
|
|
103
|
+
* Calls without an event (programmatic `openPopup()`) always toggle.
|
|
104
|
+
*/
|
|
105
|
+
function claimToggle(event) {
|
|
106
|
+
if (!event) return true;
|
|
107
|
+
if (claimedGestures.has(event)) return false;
|
|
108
|
+
claimedGestures.add(event);
|
|
109
|
+
return !event.target?.closest?.("[data-vu-trigger]");
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* What to bind on the Reka root for a model: `undefined` (uncontrolled, so the root applies
|
|
113
|
+
* `defaultX`) until the model is first set, then always a value: the state from
|
|
114
|
+
* `useModelState`. A root that was handed a value and then `undefined` would pass
|
|
115
|
+
* `undefined` on to parts that require a value (Reka `Presence` `present`).
|
|
116
|
+
*/
|
|
117
|
+
function useRootBinding(model, state) {
|
|
118
|
+
const everSet = ref(model.value !== void 0);
|
|
119
|
+
watch(model, (value) => {
|
|
120
|
+
if (value !== void 0) everSet.value = true;
|
|
121
|
+
});
|
|
122
|
+
return computed(() => model.value !== void 0 || everSet.value ? state.value : void 0);
|
|
123
|
+
}
|
|
124
|
+
//#endregion
|
|
125
|
+
export { useRootBinding as i, useForwardToRoot as n, useModelState as r, claimToggle as t };
|
package/dist/nuxt.mjs
CHANGED
|
@@ -1,6 +1,41 @@
|
|
|
1
1
|
import { addComponent, defineNuxtModule } from "@nuxt/kit";
|
|
2
2
|
//#region src/nuxt.ts
|
|
3
|
-
const components =
|
|
3
|
+
const components = [
|
|
4
|
+
"AppLayout",
|
|
5
|
+
"AppToasts",
|
|
6
|
+
"Button",
|
|
7
|
+
"ButtonBase",
|
|
8
|
+
"Calendar",
|
|
9
|
+
"Card",
|
|
10
|
+
"CardHeader",
|
|
11
|
+
"CardInner",
|
|
12
|
+
"Checkbox",
|
|
13
|
+
"Combobox",
|
|
14
|
+
"DatePicker",
|
|
15
|
+
"DatePickerBase",
|
|
16
|
+
"DatePickerInner",
|
|
17
|
+
"DatePickerPopup",
|
|
18
|
+
"DevTools",
|
|
19
|
+
"DelayedSwitch",
|
|
20
|
+
"Dialog",
|
|
21
|
+
"Icon",
|
|
22
|
+
"Input",
|
|
23
|
+
"InputBase",
|
|
24
|
+
"Label",
|
|
25
|
+
"InnerLoading",
|
|
26
|
+
"LoadingIndicator",
|
|
27
|
+
"Menu",
|
|
28
|
+
"MenuItem",
|
|
29
|
+
"OverflowContainer",
|
|
30
|
+
"Pagination",
|
|
31
|
+
"Popover",
|
|
32
|
+
"ProgressBar",
|
|
33
|
+
"RadioGroup",
|
|
34
|
+
"Select",
|
|
35
|
+
"SelectBase",
|
|
36
|
+
"Slider",
|
|
37
|
+
"Tabs"
|
|
38
|
+
];
|
|
4
39
|
const index = defineNuxtModule({
|
|
5
40
|
meta: {
|
|
6
41
|
name: "vunor/nuxt",
|
package/dist/theme.d.mts
CHANGED
package/dist/theme.mjs
CHANGED
|
@@ -33,6 +33,11 @@ const toastShortcuts = defineShortcuts({
|
|
|
33
33
|
const disabledSelectors = ":disabled,[disabled],[aria-disabled=true],[data-disabled]";
|
|
34
34
|
/** Variant prefix that matches while the element is disabled. */
|
|
35
35
|
const whenDisabled = `[&:is(${disabledSelectors})]:`;
|
|
36
|
+
/**
|
|
37
|
+
* Variant prefix for a default disabled paint: matches while the element is
|
|
38
|
+
* disabled and adds no specificity, so any other disabled rule overrides it.
|
|
39
|
+
*/
|
|
40
|
+
const whenDisabledDefault = `[&:where(${disabledSelectors})]:`;
|
|
36
41
|
/** Variant prefix that matches only while the element is not disabled. */
|
|
37
42
|
const whenEnabled = `[&:not(${disabledSelectors})]:`;
|
|
38
43
|
//#endregion
|
|
@@ -244,7 +249,8 @@ const btn = defineShortcuts({
|
|
|
244
249
|
"[&.btn-round]:": btnRound,
|
|
245
250
|
"[&.btn-square]:": btnSquare,
|
|
246
251
|
"[&.btn-round.btn-square]:": "px-0 [--btn-icon-pull:0]",
|
|
247
|
-
[
|
|
252
|
+
[whenDisabledDefault]: "opacity-80",
|
|
253
|
+
[whenDisabled]: "cursor-not-allowed",
|
|
248
254
|
"[&>span]:data-[loading]:": "opacity-0 pointer-events-none",
|
|
249
255
|
"[&>div:not(.loading-indicator-wrapper)]:data-[loading]:": "opacity-0 pointer-events-none",
|
|
250
256
|
"[&>.loading-indicator-wrapper]:": "absolute left-0 top-0 right-0 bottom-0 flex items-center justify-center cursor-wait"
|
|
@@ -596,6 +602,7 @@ const componentClasses = {
|
|
|
596
602
|
"loading-indicator-ring",
|
|
597
603
|
"mb-$s",
|
|
598
604
|
"surface",
|
|
605
|
+
"tab",
|
|
599
606
|
"text-body-s",
|
|
600
607
|
"toast-root",
|
|
601
608
|
"toasts-viewport"
|
|
@@ -610,7 +617,8 @@ const componentClasses = {
|
|
|
610
617
|
"icon-size",
|
|
611
618
|
"loading-indicator",
|
|
612
619
|
"loading-indicator-ring",
|
|
613
|
-
"surface"
|
|
620
|
+
"surface",
|
|
621
|
+
"tab"
|
|
614
622
|
],
|
|
615
623
|
ButtonBase: [
|
|
616
624
|
"btn",
|
|
@@ -622,7 +630,8 @@ const componentClasses = {
|
|
|
622
630
|
"icon-size",
|
|
623
631
|
"loading-indicator",
|
|
624
632
|
"loading-indicator-ring",
|
|
625
|
-
"surface"
|
|
633
|
+
"surface",
|
|
634
|
+
"tab"
|
|
626
635
|
],
|
|
627
636
|
Calendar: [
|
|
628
637
|
"btn",
|
|
@@ -655,6 +664,7 @@ const componentClasses = {
|
|
|
655
664
|
"rounded",
|
|
656
665
|
"select-none",
|
|
657
666
|
"surface",
|
|
667
|
+
"tab",
|
|
658
668
|
"text-center"
|
|
659
669
|
],
|
|
660
670
|
Card: [
|
|
@@ -847,6 +857,7 @@ const componentClasses = {
|
|
|
847
857
|
"segmented",
|
|
848
858
|
"select-none",
|
|
849
859
|
"surface",
|
|
860
|
+
"tab",
|
|
850
861
|
"text-body",
|
|
851
862
|
"text-center",
|
|
852
863
|
"text-ellipsis",
|
|
@@ -914,6 +925,7 @@ const componentClasses = {
|
|
|
914
925
|
"segmented",
|
|
915
926
|
"select-none",
|
|
916
927
|
"surface",
|
|
928
|
+
"tab",
|
|
917
929
|
"text-center",
|
|
918
930
|
"top-0"
|
|
919
931
|
],
|
|
@@ -954,6 +966,7 @@ const componentClasses = {
|
|
|
954
966
|
"rounded",
|
|
955
967
|
"select-none",
|
|
956
968
|
"surface",
|
|
969
|
+
"tab",
|
|
957
970
|
"text-center"
|
|
958
971
|
],
|
|
959
972
|
DelayedSwitch: ["visible"],
|
|
@@ -1110,6 +1123,7 @@ const componentClasses = {
|
|
|
1110
1123
|
"py-$m",
|
|
1111
1124
|
"rounded",
|
|
1112
1125
|
"surface",
|
|
1126
|
+
"tab",
|
|
1113
1127
|
"text-card-header",
|
|
1114
1128
|
"text-mt-0"
|
|
1115
1129
|
],
|
|
@@ -1270,6 +1284,7 @@ const componentClasses = {
|
|
|
1270
1284
|
"scope-grey",
|
|
1271
1285
|
"segmented",
|
|
1272
1286
|
"surface",
|
|
1287
|
+
"tab",
|
|
1273
1288
|
"text-body",
|
|
1274
1289
|
"text-caption",
|
|
1275
1290
|
"text-center",
|
|
@@ -1293,7 +1308,8 @@ const componentClasses = {
|
|
|
1293
1308
|
"loading-indicator-ring",
|
|
1294
1309
|
"menu-item",
|
|
1295
1310
|
"scope-grey",
|
|
1296
|
-
"surface"
|
|
1311
|
+
"surface",
|
|
1312
|
+
"tab"
|
|
1297
1313
|
],
|
|
1298
1314
|
OverflowContainer: ["flex", "whitespace-nowrap"],
|
|
1299
1315
|
Pagination: [
|
|
@@ -1323,7 +1339,8 @@ const componentClasses = {
|
|
|
1323
1339
|
"icon-size",
|
|
1324
1340
|
"loading-indicator",
|
|
1325
1341
|
"loading-indicator-ring",
|
|
1326
|
-
"surface"
|
|
1342
|
+
"surface",
|
|
1343
|
+
"tab"
|
|
1327
1344
|
],
|
|
1328
1345
|
ProgressBar: [
|
|
1329
1346
|
"progress-bar",
|
|
@@ -36,5 +36,34 @@ function useInputProps() {
|
|
|
36
36
|
}));
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
+
function useInputBaseProps() {
|
|
40
|
+
const instance = getCurrentInstance();
|
|
41
|
+
if (instance) {
|
|
42
|
+
const props = instance.props;
|
|
43
|
+
return computed(() => ({
|
|
44
|
+
label: props.stackLabel ? void 0 : props.label,
|
|
45
|
+
placeholder: props.placeholder,
|
|
46
|
+
readonly: props.readonly,
|
|
47
|
+
design: props.design,
|
|
48
|
+
disabled: props.disabled,
|
|
49
|
+
loading: props.loading,
|
|
50
|
+
iconPrepend: props.iconPrepend,
|
|
51
|
+
iconAppend: props.iconAppend,
|
|
52
|
+
groupItem: props.groupItem,
|
|
53
|
+
type: props.type,
|
|
54
|
+
rows: props.type === "textarea" ? props.rows : void 0,
|
|
55
|
+
autoGrow: props.autoGrow,
|
|
56
|
+
maxlength: props.maxlength,
|
|
57
|
+
required: props.required,
|
|
58
|
+
active: props.active,
|
|
59
|
+
noUnderline: props.noUnderline,
|
|
60
|
+
autocomplete: props.autocomplete,
|
|
61
|
+
onAppendClick: props.onAppendClick,
|
|
62
|
+
onPrependClick: props.onPrependClick,
|
|
63
|
+
onBlur: props.onBlur,
|
|
64
|
+
onFocus: props.onFocus
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
39
68
|
//#endregion
|
|
40
|
-
export { useInputProps as t };
|
|
69
|
+
export { useInputProps as n, useInputBaseProps as t };
|
package/dist/utils.mjs
CHANGED
package/dist/vite.d.mts
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
|
-
import { ComponentResolver } from "unplugin-vue-components";
|
|
2
|
-
|
|
3
1
|
//#region src/vite.d.ts
|
|
4
|
-
|
|
2
|
+
/** What a resolver returns: the default export of `vunor/<Name>`, imported as `Vu<Name>`. */
|
|
3
|
+
interface TVunorResolvedComponent {
|
|
4
|
+
name: 'default';
|
|
5
|
+
as: string;
|
|
6
|
+
from: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Component resolver for `unplugin-vue-components` (`Components({ resolvers: [VunorVueResolver] })`):
|
|
10
|
+
* resolves `Vu<Name>` to `vunor/<Name>`. Typed structurally (it satisfies the plugin's
|
|
11
|
+
* `ComponentResolver`), so vunor's types do not depend on unplugin-vue-components.
|
|
12
|
+
*/
|
|
13
|
+
declare const VunorVueResolver: (componentName: string) => TVunorResolvedComponent | undefined;
|
|
5
14
|
//#endregion
|
|
6
|
-
export { VunorVueResolver };
|
|
15
|
+
export { TVunorResolvedComponent, VunorVueResolver };
|
package/dist/vite.mjs
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
//#region src/vite.ts
|
|
2
|
+
/**
|
|
3
|
+
* Component resolver for `unplugin-vue-components` (`Components({ resolvers: [VunorVueResolver] })`):
|
|
4
|
+
* resolves `Vu<Name>` to `vunor/<Name>`. Typed structurally (it satisfies the plugin's
|
|
5
|
+
* `ComponentResolver`), so vunor's types do not depend on unplugin-vue-components.
|
|
6
|
+
*/
|
|
2
7
|
const VunorVueResolver = (componentName) => {
|
|
3
8
|
if (componentName.startsWith("Vu")) return {
|
|
4
9
|
name: "default",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vunor",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"files": [
|
|
5
5
|
"dist"
|
|
6
6
|
],
|
|
@@ -174,20 +174,18 @@
|
|
|
174
174
|
"gen-exports": "node scripts/gen-exports.js",
|
|
175
175
|
"extract-classes": "tsx scripts/extract-component-classes.ts",
|
|
176
176
|
"emit-vue-dts": "node scripts/emit-vue-dts.js",
|
|
177
|
-
"
|
|
177
|
+
"clean": "node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"",
|
|
178
|
+
"build": "pnpm clean && pnpm gen-exports && pnpm extract-classes && rolldown -c && pnpm emit-vue-dts && pnpm test:dist",
|
|
178
179
|
"pub": "npm publish --access public",
|
|
179
180
|
"type-check": "vue-tsc --build --force",
|
|
180
181
|
"test": "vitest run && playwright test",
|
|
182
|
+
"test:dist": "vitest run --config vitest.dist.config.ts",
|
|
181
183
|
"test:e2e": "playwright test"
|
|
182
184
|
},
|
|
183
185
|
"dependencies": {
|
|
184
186
|
"@internationalized/date": "^3.12.1",
|
|
185
187
|
"@prostojs/palitra": "^0.0.4",
|
|
186
|
-
"
|
|
187
|
-
"defu": "^6.1.7",
|
|
188
|
-
"reka-ui": "^2.9.6",
|
|
189
|
-
"unocss": "^66.6.8",
|
|
190
|
-
"vue": "^3.5.32"
|
|
188
|
+
"defu": "^6.1.7"
|
|
191
189
|
},
|
|
192
190
|
"devDependencies": {
|
|
193
191
|
"@iconify/utils": "^3.1.0",
|
|
@@ -196,23 +194,40 @@
|
|
|
196
194
|
"@playwright/test": "^1.59.1",
|
|
197
195
|
"@types/node": "^25.6.0",
|
|
198
196
|
"@unocss/preset-icons": "^66.6.8",
|
|
199
|
-
"@unocss/preset-mini": "^66.6.0",
|
|
200
197
|
"@unocss/preset-wind": "^66.6.8",
|
|
201
198
|
"@unocss/reset": "^66.6.8",
|
|
202
199
|
"@vitejs/plugin-vue": "^6.0.6",
|
|
203
200
|
"@vue/tsconfig": "^0.9.1",
|
|
204
201
|
"@vueuse/core": "^14.2.1",
|
|
202
|
+
"happy-dom": "^21.0.4",
|
|
203
|
+
"reka-ui": "^2.9.6",
|
|
205
204
|
"rolldown": "1.0.0-rc.16",
|
|
206
205
|
"rolldown-plugin-dts": "^0.23.2",
|
|
207
206
|
"tsx": "^4.21.0",
|
|
208
207
|
"typescript": "^6.0.3",
|
|
209
|
-
"unocss": "^66.6.
|
|
208
|
+
"unocss": "^66.6.8",
|
|
210
209
|
"unocss-preset-scrollbar": "^4.0.0",
|
|
211
210
|
"unplugin-auto-import": "^21.0.0",
|
|
212
211
|
"unplugin-vue-components": "^32.0.0",
|
|
213
212
|
"vite": "^8.0.8",
|
|
214
213
|
"vitest": "^4.1.4",
|
|
214
|
+
"vue": "^3.5.32",
|
|
215
215
|
"vue-router": "^5.0.4",
|
|
216
216
|
"vue-tsc": "^3.2.6"
|
|
217
|
+
},
|
|
218
|
+
"peerDependencies": {
|
|
219
|
+
"@nuxt/kit": ">=3.0.0",
|
|
220
|
+
"@nuxt/schema": ">=3.0.0",
|
|
221
|
+
"reka-ui": "^2.8.0",
|
|
222
|
+
"unocss": "^66.2.1",
|
|
223
|
+
"vue": "^3.5.0"
|
|
224
|
+
},
|
|
225
|
+
"peerDependenciesMeta": {
|
|
226
|
+
"@nuxt/kit": {
|
|
227
|
+
"optional": true
|
|
228
|
+
},
|
|
229
|
+
"@nuxt/schema": {
|
|
230
|
+
"optional": true
|
|
231
|
+
}
|
|
217
232
|
}
|
|
218
233
|
}
|
package/dist/utils-Z0nPSAzb.js
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { computed, getCurrentInstance } from "vue";
|
|
2
|
-
|
|
3
|
-
//#region src/components/Input/utils.ts
|
|
4
|
-
function useInputProps() {
|
|
5
|
-
const instance = getCurrentInstance();
|
|
6
|
-
if (instance) {
|
|
7
|
-
const props = instance.props;
|
|
8
|
-
return computed(() => ({
|
|
9
|
-
label: props.label,
|
|
10
|
-
stackLabel: props.stackLabel,
|
|
11
|
-
placeholder: props.placeholder,
|
|
12
|
-
design: props.design,
|
|
13
|
-
readonly: props.readonly,
|
|
14
|
-
disabled: props.disabled,
|
|
15
|
-
iconPrepend: props.iconPrepend,
|
|
16
|
-
iconAppend: props.iconAppend,
|
|
17
|
-
groupItem: props.groupItem,
|
|
18
|
-
type: props.type,
|
|
19
|
-
rows: props.type === "textarea" ? props.rows : void 0,
|
|
20
|
-
autoGrow: props.autoGrow,
|
|
21
|
-
maxlength: props.maxlength,
|
|
22
|
-
required: props.required,
|
|
23
|
-
active: props.active,
|
|
24
|
-
loading: props.loading,
|
|
25
|
-
onAppendClick: props.onAppendClick,
|
|
26
|
-
onPrependClick: props.onPrependClick,
|
|
27
|
-
onBlur: props.onBlur,
|
|
28
|
-
onFocus: props.onFocus,
|
|
29
|
-
iconBefore: props.iconBefore,
|
|
30
|
-
iconAfter: props.iconAfter,
|
|
31
|
-
error: props.error,
|
|
32
|
-
hint: props.hint,
|
|
33
|
-
autocomplete: props.autocomplete,
|
|
34
|
-
onBeforeClick: props.onBeforeClick,
|
|
35
|
-
onAfterClick: props.onAfterClick,
|
|
36
|
-
onClick: props.onClick
|
|
37
|
-
}));
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
//#endregion
|
|
42
|
-
export { useInputProps as t };
|