@byyuurin/ui 0.0.5 → 0.0.7
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 +15 -11
- package/dist/module.cjs +5 -0
- package/dist/module.json +12 -0
- package/dist/{nuxt.mjs → module.mjs} +7 -6
- package/dist/module.mjs.map +1 -0
- package/dist/runtime/components/Accordion.vue +20 -31
- package/dist/runtime/components/Alert.vue +1 -1
- package/dist/runtime/components/App.vue +1 -1
- package/dist/runtime/components/Badge.vue +0 -1
- package/dist/runtime/components/Button.vue +14 -12
- package/dist/runtime/components/ButtonGroup.vue +47 -0
- package/dist/runtime/components/Card.vue +9 -6
- package/dist/runtime/components/Carousel.vue +310 -0
- package/dist/runtime/components/Checkbox.vue +3 -4
- package/dist/runtime/components/Chip.vue +9 -4
- package/dist/runtime/components/Collapsible.vue +56 -0
- package/dist/runtime/components/Drawer.vue +4 -2
- package/dist/runtime/components/Input.vue +12 -8
- package/dist/runtime/components/InputNumber.vue +167 -0
- package/dist/runtime/components/Link.vue +301 -72
- package/dist/runtime/components/LinkBase.vue +88 -0
- package/dist/runtime/components/Modal.vue +2 -4
- package/dist/runtime/components/Pagination.vue +167 -0
- package/dist/runtime/components/PinInput.vue +0 -1
- package/dist/runtime/components/RadioGroup.vue +0 -1
- package/dist/runtime/components/ScrollArea.vue +1 -1
- package/dist/runtime/components/Select.vue +9 -5
- package/dist/runtime/components/Separator.vue +63 -0
- package/dist/runtime/components/Slider.vue +0 -1
- package/dist/runtime/components/Switch.vue +4 -6
- package/dist/runtime/components/Table.vue +292 -0
- package/dist/runtime/components/Tabs.vue +17 -18
- package/dist/runtime/components/Textarea.vue +0 -1
- package/dist/runtime/components/Toast.vue +21 -10
- package/dist/runtime/components/Toaster.vue +4 -39
- package/dist/runtime/composables/useButtonGroup.d.ts +13 -0
- package/dist/runtime/composables/useButtonGroup.js +14 -0
- package/dist/runtime/composables/{useComponentIcons.mjs → useComponentIcons.js} +1 -1
- package/dist/runtime/composables/useModal.d.ts +1 -1
- package/dist/runtime/composables/{useModal.mjs → useModal.js} +1 -1
- package/dist/runtime/composables/useTheme.d.ts +4 -4
- package/dist/runtime/composables/{useTheme.mjs → useTheme.js} +4 -4
- package/dist/runtime/composables/useToast.d.ts +4 -4
- package/dist/runtime/composables/{useToast.mjs → useToast.js} +19 -6
- package/dist/runtime/index.d.ts +34 -0
- package/dist/runtime/index.js +34 -0
- package/dist/runtime/theme/accordion.d.ts +22 -5
- package/dist/runtime/theme/{accordion.mjs → accordion.js} +2 -2
- package/dist/runtime/theme/alert.d.ts +41 -1
- package/dist/runtime/theme/{alert.mjs → alert.js} +4 -4
- package/dist/runtime/theme/app.d.ts +8 -0
- package/dist/runtime/theme/app.js +18 -0
- package/dist/runtime/theme/badge.d.ts +48 -21
- package/dist/runtime/theme/{badge.mjs → badge.js} +5 -2
- package/dist/runtime/theme/button-group.d.ts +66 -0
- package/dist/runtime/theme/button-group.js +42 -0
- package/dist/runtime/theme/button.d.ts +68 -111
- package/dist/runtime/theme/button.js +164 -0
- package/dist/runtime/theme/card.d.ts +38 -19
- package/dist/runtime/theme/card.js +37 -0
- package/dist/runtime/theme/carousel.d.ts +113 -0
- package/dist/runtime/theme/carousel.js +43 -0
- package/dist/runtime/theme/checkbox.d.ts +4 -1
- package/dist/runtime/theme/{checkbox.mjs → checkbox.js} +7 -4
- package/dist/runtime/theme/chip.d.ts +56 -12
- package/dist/runtime/theme/{chip.mjs → chip.js} +10 -7
- package/dist/runtime/theme/collapsible.d.ts +38 -0
- package/dist/runtime/theme/collapsible.js +10 -0
- package/dist/runtime/theme/drawer.d.ts +71 -33
- package/dist/runtime/theme/{drawer.mjs → drawer.js} +33 -22
- package/dist/runtime/theme/index.d.ts +31 -24
- package/dist/runtime/theme/index.js +31 -0
- package/dist/runtime/theme/input-number.d.ts +135 -0
- package/dist/runtime/theme/input-number.js +92 -0
- package/dist/runtime/theme/input.d.ts +94 -111
- package/dist/runtime/theme/input.js +151 -0
- package/dist/runtime/theme/link.d.ts +14 -1
- package/dist/runtime/theme/{link.mjs → link.js} +1 -1
- package/dist/runtime/theme/modal.d.ts +33 -7
- package/dist/runtime/theme/{modal.mjs → modal.js} +8 -10
- package/dist/runtime/theme/pagination.d.ts +56 -0
- package/dist/runtime/theme/pagination.js +13 -0
- package/dist/runtime/theme/pinInput.d.ts +45 -42
- package/dist/runtime/theme/{pinInput.mjs → pinInput.js} +14 -11
- package/dist/runtime/theme/popover.d.ts +16 -5
- package/dist/runtime/theme/{radioGroup.d.ts → radio-group.d.ts} +4 -1
- package/dist/runtime/theme/{radioGroup.mjs → radio-group.js} +3 -0
- package/dist/runtime/theme/scroll-area.d.ts +73 -0
- package/dist/runtime/theme/{scrollArea.mjs → scroll-area.js} +2 -2
- package/dist/runtime/theme/select.d.ts +95 -99
- package/dist/runtime/theme/{select.mjs → select.js} +22 -17
- package/dist/runtime/theme/separator.d.ts +95 -0
- package/dist/runtime/theme/separator.js +53 -0
- package/dist/runtime/theme/slider.d.ts +4 -1
- package/dist/runtime/theme/{slider.mjs → slider.js} +6 -3
- package/dist/runtime/theme/switch.d.ts +4 -1
- package/dist/runtime/theme/{switch.mjs → switch.js} +5 -2
- package/dist/runtime/theme/table.d.ts +89 -0
- package/dist/runtime/theme/table.js +35 -0
- package/dist/runtime/theme/tabs.d.ts +72 -52
- package/dist/runtime/theme/{tabs.mjs → tabs.js} +15 -12
- package/dist/runtime/theme/textarea.d.ts +46 -37
- package/dist/runtime/theme/{textarea.mjs → textarea.js} +14 -11
- package/dist/runtime/theme/toast.d.ts +45 -7
- package/dist/runtime/theme/{toast.mjs → toast.js} +12 -7
- package/dist/runtime/theme/toaster.d.ts +89 -25
- package/dist/runtime/theme/{toaster.mjs → toaster.js} +5 -0
- package/dist/runtime/theme/tooltip.d.ts +20 -7
- package/dist/runtime/theme/{tooltip.mjs → tooltip.js} +2 -2
- package/dist/runtime/types/components.d.ts +7 -1
- package/dist/runtime/types/index.d.ts +4 -4
- package/dist/runtime/types/index.js +2 -0
- package/dist/runtime/types/utils.d.ts +1 -1
- package/dist/runtime/utils/index.d.ts +3 -3
- package/dist/runtime/utils/{index.mjs → index.js} +3 -3
- package/dist/runtime/utils/link.d.ts +22 -7
- package/dist/runtime/utils/link.js +30 -0
- package/dist/runtime/utils/styler.d.ts +2 -2
- package/dist/runtime/vue/stubs.d.ts +9 -0
- package/dist/runtime/vue/stubs.js +16 -0
- package/dist/shared/ui.d1728164.mjs +4 -0
- package/dist/shared/ui.d1728164.mjs.map +1 -0
- package/dist/types.d.mts +1 -0
- package/dist/types.d.ts +1 -0
- package/dist/{unocss-preset.d.ts → unocss.d.mts} +10 -15
- package/dist/{unocss-preset.d.mts → unocss.d.ts} +10 -15
- package/dist/{unocss-preset.mjs → unocss.mjs} +53 -21
- package/dist/unocss.mjs.map +1 -0
- package/dist/unplugin.d.mts +4 -3
- package/dist/unplugin.d.ts +4 -3
- package/dist/unplugin.mjs +49 -5
- package/dist/unplugin.mjs.map +1 -1
- package/dist/vite.d.mts +1 -1
- package/dist/vite.d.ts +1 -1
- package/dist/vite.mjs +7 -5
- package/dist/vite.mjs.map +1 -1
- package/package.json +59 -45
- package/dist/index.d.ts +0 -26
- package/dist/index.mjs +0 -26
- package/dist/nuxt.mjs.map +0 -1
- package/dist/runtime/theme/app.mjs +0 -10
- package/dist/runtime/theme/button.mjs +0 -143
- package/dist/runtime/theme/card.mjs +0 -14
- package/dist/runtime/theme/index.mjs +0 -24
- package/dist/runtime/theme/input.mjs +0 -146
- package/dist/runtime/theme/scrollArea.d.ts +0 -51
- package/dist/runtime/types/index.mjs +0 -2
- package/dist/runtime/utils/link.mjs +0 -4
- package/dist/shared/ui.CzDyI29e.mjs +0 -8
- package/dist/shared/ui.CzDyI29e.mjs.map +0 -1
- package/dist/unocss-preset.mjs.map +0 -1
- /package/{LICENSE.md → LICENSE} +0 -0
- /package/dist/{nuxt.d.mts → module.d.mts} +0 -0
- /package/dist/{nuxt.d.ts → module.d.ts} +0 -0
- /package/dist/runtime/composables/{defineInjection.mjs → defineInjection.js} +0 -0
- /package/dist/runtime/theme/{popover.mjs → popover.js} +0 -0
- /package/dist/runtime/types/{components.mjs → components.js} +0 -0
- /package/dist/runtime/types/{utils.mjs → utils.js} +0 -0
- /package/dist/runtime/utils/{extend-theme.mjs → extend-theme.js} +0 -0
- /package/dist/runtime/utils/{styler.mjs → styler.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.d1728164.mjs","sources":["../../src/shared.ts"],"sourcesContent":["export const packageName = '@byyuurin/ui'\n"],"names":[],"mappings":"AAAO,MAAM,WAAc,GAAA;;;;"}
|
package/dist/types.d.mts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { type ModuleOptions, default } from './module.js'
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { type ModuleOptions, default } from './module'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import { CRRule } from '@byyuurin/ui-kit';
|
|
1
|
+
import * as _unocss_core from '@unocss/core';
|
|
3
2
|
import { UserConfig, Rule } from '@unocss/core';
|
|
3
|
+
import { CRRule } from '@byyuurin/ui-kit';
|
|
4
4
|
import { Theme } from '@unocss/preset-mini';
|
|
5
5
|
|
|
6
6
|
declare const cssVarsPrefix = "ui";
|
|
@@ -29,22 +29,17 @@ interface PresetOptions {
|
|
|
29
29
|
*/
|
|
30
30
|
cb?: string;
|
|
31
31
|
/**
|
|
32
|
-
*
|
|
33
|
-
* @default "
|
|
34
|
-
*/
|
|
35
|
-
c1?: string;
|
|
36
|
-
/**
|
|
37
|
-
* Base color 2
|
|
38
|
-
* @default "#f2f2f2"
|
|
32
|
+
* Primary color
|
|
33
|
+
* @default "[cb]"
|
|
39
34
|
*/
|
|
40
|
-
|
|
35
|
+
cp?: string;
|
|
41
36
|
/**
|
|
42
|
-
* Base color
|
|
43
|
-
* @default "#
|
|
37
|
+
* Base background color
|
|
38
|
+
* @default "#ffffff"
|
|
44
39
|
*/
|
|
45
|
-
|
|
40
|
+
cx?: string;
|
|
46
41
|
}
|
|
47
|
-
declare const preset:
|
|
42
|
+
declare const preset: _unocss_core.PresetFactory<object, PresetOptions>;
|
|
48
43
|
|
|
49
44
|
declare function transformUnoRules(userConfig?: UserConfig): CRRule[];
|
|
50
45
|
|
|
@@ -54,4 +49,4 @@ declare const theme: Theme;
|
|
|
54
49
|
declare function cssVar(name: string, ...defaultValue: string[]): string;
|
|
55
50
|
declare function cssColor(...rgb: (string | number)[]): string;
|
|
56
51
|
|
|
57
|
-
export { type PresetOptions, cssColor, cssVar, cssVarsAll, cssVarsBase, cssVarsDynamic, cssVarsPrefix, preset
|
|
52
|
+
export { type PresetOptions, cssColor, cssVar, cssVarsAll, cssVarsBase, cssVarsDynamic, cssVarsPrefix, preset, rules, theme, transformUnoRules };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import { CRRule } from '@byyuurin/ui-kit';
|
|
1
|
+
import * as _unocss_core from '@unocss/core';
|
|
3
2
|
import { UserConfig, Rule } from '@unocss/core';
|
|
3
|
+
import { CRRule } from '@byyuurin/ui-kit';
|
|
4
4
|
import { Theme } from '@unocss/preset-mini';
|
|
5
5
|
|
|
6
6
|
declare const cssVarsPrefix = "ui";
|
|
@@ -29,22 +29,17 @@ interface PresetOptions {
|
|
|
29
29
|
*/
|
|
30
30
|
cb?: string;
|
|
31
31
|
/**
|
|
32
|
-
*
|
|
33
|
-
* @default "
|
|
34
|
-
*/
|
|
35
|
-
c1?: string;
|
|
36
|
-
/**
|
|
37
|
-
* Base color 2
|
|
38
|
-
* @default "#f2f2f2"
|
|
32
|
+
* Primary color
|
|
33
|
+
* @default "[cb]"
|
|
39
34
|
*/
|
|
40
|
-
|
|
35
|
+
cp?: string;
|
|
41
36
|
/**
|
|
42
|
-
* Base color
|
|
43
|
-
* @default "#
|
|
37
|
+
* Base background color
|
|
38
|
+
* @default "#ffffff"
|
|
44
39
|
*/
|
|
45
|
-
|
|
40
|
+
cx?: string;
|
|
46
41
|
}
|
|
47
|
-
declare const preset:
|
|
42
|
+
declare const preset: _unocss_core.PresetFactory<object, PresetOptions>;
|
|
48
43
|
|
|
49
44
|
declare function transformUnoRules(userConfig?: UserConfig): CRRule[];
|
|
50
45
|
|
|
@@ -54,4 +49,4 @@ declare const theme: Theme;
|
|
|
54
49
|
declare function cssVar(name: string, ...defaultValue: string[]): string;
|
|
55
50
|
declare function cssColor(...rgb: (string | number)[]): string;
|
|
56
51
|
|
|
57
|
-
export { type PresetOptions, cssColor, cssVar, cssVarsAll, cssVarsBase, cssVarsDynamic, cssVarsPrefix, preset
|
|
52
|
+
export { type PresetOptions, cssColor, cssVar, cssVarsAll, cssVarsBase, cssVarsDynamic, cssVarsPrefix, preset, rules, theme, transformUnoRules };
|
|
@@ -4,7 +4,7 @@ import { kebabCase } from 'scule';
|
|
|
4
4
|
import { presetUno } from '@unocss/preset-uno';
|
|
5
5
|
|
|
6
6
|
const cssVarsPrefix = "ui";
|
|
7
|
-
const cssVarsBase = ["cb", "
|
|
7
|
+
const cssVarsBase = ["cb", "cp", "cx"];
|
|
8
8
|
const cssVarsDynamic = ["fill", "content"];
|
|
9
9
|
const cssVarsAll = [...cssVarsBase, ...cssVarsDynamic];
|
|
10
10
|
|
|
@@ -12,18 +12,15 @@ const theme = {
|
|
|
12
12
|
colors: {
|
|
13
13
|
[cssVarsPrefix]: {
|
|
14
14
|
cb: cssColor(cssVar("cb")),
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
2: cssColor(cssVar("c2")),
|
|
18
|
-
3: cssColor(cssVar("c3"))
|
|
19
|
-
},
|
|
15
|
+
cp: cssColor(cssVar("cp", cssVar("cb"))),
|
|
16
|
+
cx: cssColor(cssVar("cx")),
|
|
20
17
|
fill: cssColor(cssVar("fill", cssVar("cb"))),
|
|
21
18
|
content: cssColor(cssVar("content", cssVar("cb")))
|
|
22
19
|
}
|
|
23
20
|
},
|
|
24
21
|
backgroundColor: {
|
|
25
22
|
[cssVarsPrefix]: {
|
|
26
|
-
base: cssColor(cssVar("fill", cssVar("
|
|
23
|
+
base: cssColor(cssVar("fill", cssVar("cx")))
|
|
27
24
|
}
|
|
28
25
|
},
|
|
29
26
|
textColor: {
|
|
@@ -86,7 +83,9 @@ const rules = [
|
|
|
86
83
|
if (color === "base")
|
|
87
84
|
return Object.fromEntries(cssVarsDynamic.map((prop) => [`--${cssVarsPrefix}-${prop}`, cssVar("cb")]));
|
|
88
85
|
if (color === "base-inverted")
|
|
89
|
-
return Object.fromEntries(cssVarsDynamic.map((prop) => [`--${cssVarsPrefix}-${prop}`, cssVar("
|
|
86
|
+
return Object.fromEntries(cssVarsDynamic.map((prop) => [`--${cssVarsPrefix}-${prop}`, cssVar("cx")]));
|
|
87
|
+
if (color === "primary")
|
|
88
|
+
return Object.fromEntries(cssVarsDynamic.map((prop) => [`--${cssVarsPrefix}-${prop}`, cssVar("cp", cssVar("cb"))]));
|
|
90
89
|
const data = parseColor(color, ctx.theme);
|
|
91
90
|
const value = resolveRuleValue(data);
|
|
92
91
|
if (value)
|
|
@@ -100,7 +99,9 @@ const rules = [
|
|
|
100
99
|
if (color === "base")
|
|
101
100
|
return { [`--${cssVarsPrefix}-${prop}`]: cssVar("cb") };
|
|
102
101
|
if (color === "base-inverted")
|
|
103
|
-
return { [`--${cssVarsPrefix}-${prop}`]: cssVar("
|
|
102
|
+
return { [`--${cssVarsPrefix}-${prop}`]: cssVar("cx") };
|
|
103
|
+
if (color === "primary")
|
|
104
|
+
return { [`--${cssVarsPrefix}-${prop}`]: cssVar("cp", cssVar("cb")) };
|
|
104
105
|
const data = parseColor(color, ctx.theme);
|
|
105
106
|
const value = resolveRuleValue(data);
|
|
106
107
|
if (value)
|
|
@@ -108,6 +109,19 @@ const rules = [
|
|
|
108
109
|
},
|
|
109
110
|
{ autocomplete: `${cssVarsPrefix}-(${cssVarsAll.join("|")})-$colors` }
|
|
110
111
|
],
|
|
112
|
+
[
|
|
113
|
+
/^bg-soft-(.+)$/,
|
|
114
|
+
([_, c], { theme }) => {
|
|
115
|
+
const parsed = parseColor(c, theme);
|
|
116
|
+
if (!parsed || parsed.cssColor?.type !== "rgb")
|
|
117
|
+
return;
|
|
118
|
+
const color = `rgb(${parsed.cssColor.components.join(" ")})`;
|
|
119
|
+
const opacity = parsed.opacity || "100";
|
|
120
|
+
return {
|
|
121
|
+
"background-color": `color-mix(in srgb, ${color} ${opacity}%, ${cssColor(cssVar("cx"))})`
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
],
|
|
111
125
|
// overrides
|
|
112
126
|
[/^rotate-(\d+)$/, ([_, d]) => ({ rotate: `${d}deg` })]
|
|
113
127
|
];
|
|
@@ -142,9 +156,8 @@ function mergeOptions(options) {
|
|
|
142
156
|
radiusSwitch: "",
|
|
143
157
|
radiusTabs: "",
|
|
144
158
|
cb: "#1f2937",
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
c3: "#e5e6e6"
|
|
159
|
+
cp: "",
|
|
160
|
+
cx: "#ffffff"
|
|
148
161
|
};
|
|
149
162
|
return {
|
|
150
163
|
...defaults,
|
|
@@ -170,8 +183,8 @@ function createRootCSS(kv) {
|
|
|
170
183
|
`scrollbar-color:color-mix(in srgb,${cssColor(cssVar("cb"))} 25%,transparent) transparent`
|
|
171
184
|
])}}`,
|
|
172
185
|
`*::selection{${join([
|
|
173
|
-
`color:${cssColor(cssVar("
|
|
174
|
-
`background-color:${cssColor(cssVar("
|
|
186
|
+
`color:${cssColor(cssVar("cx"))}`,
|
|
187
|
+
`background-color:${cssColor(cssVar("cp", cssVar("cb")))}`
|
|
175
188
|
])}}`
|
|
176
189
|
];
|
|
177
190
|
return css.join("");
|
|
@@ -184,11 +197,31 @@ const baseUnoConfig = mergeConfigs([
|
|
|
184
197
|
function transformUnoRules(userConfig = {}) {
|
|
185
198
|
const { rules = [], theme = {} } = mergeConfigs([baseUnoConfig, userConfig]);
|
|
186
199
|
const mergeRules = [];
|
|
187
|
-
const
|
|
200
|
+
const toString = (values) => {
|
|
201
|
+
const variables = /* @__PURE__ */ new Set([]);
|
|
202
|
+
const properties = /* @__PURE__ */ new Set([]);
|
|
203
|
+
const propertiesIgnores = /* @__PURE__ */ new Set(["transform"]);
|
|
204
|
+
let propertiesOnly = true;
|
|
205
|
+
values.forEach((value) => {
|
|
206
|
+
if (propertiesIgnores.has(value)) {
|
|
207
|
+
properties.add(value);
|
|
208
|
+
propertiesOnly = false;
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
if (value.startsWith("--")) {
|
|
212
|
+
variables.add(value);
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
properties.add(value);
|
|
216
|
+
});
|
|
217
|
+
const valueArray = propertiesOnly && properties.size > 0 ? Array.from(properties.values()) : values;
|
|
218
|
+
return valueArray.join(",");
|
|
219
|
+
};
|
|
220
|
+
const resolveCSSEntries = (entries) => () => toString(entries.flatMap((value) => Object.keys(value)));
|
|
188
221
|
const resolveCSSObject = (object) => () => {
|
|
189
222
|
if (JSON.stringify(object) === "{}")
|
|
190
223
|
return null;
|
|
191
|
-
return Object.keys(object)
|
|
224
|
+
return toString(Object.keys(object));
|
|
192
225
|
};
|
|
193
226
|
for (const rule of rules) {
|
|
194
227
|
const [maybeString, maybeResult] = rule;
|
|
@@ -208,9 +241,8 @@ function transformUnoRules(userConfig = {}) {
|
|
|
208
241
|
// @ts-expect-error pass
|
|
209
242
|
generator: { config: {} }
|
|
210
243
|
});
|
|
211
|
-
if (Array.isArray(result))
|
|
212
|
-
return result.filter((i) => typeof i === "object").map((i) => Array.isArray(i) ? i[0] : Object.keys(i).join(","))
|
|
213
|
-
}
|
|
244
|
+
if (Array.isArray(result))
|
|
245
|
+
return toString(result.filter((i) => typeof i === "object").map((i) => Array.isArray(i) ? i[0] : Object.keys(i).join(",")));
|
|
214
246
|
if (typeof result === "object")
|
|
215
247
|
return resolveCSSObject(result)();
|
|
216
248
|
} catch (e) {
|
|
@@ -223,5 +255,5 @@ function transformUnoRules(userConfig = {}) {
|
|
|
223
255
|
return mergeRules;
|
|
224
256
|
}
|
|
225
257
|
|
|
226
|
-
export { cssColor, cssVar, cssVarsAll, cssVarsBase, cssVarsDynamic, cssVarsPrefix, preset
|
|
227
|
-
//# sourceMappingURL=unocss
|
|
258
|
+
export { cssColor, cssVar, cssVarsAll, cssVarsBase, cssVarsDynamic, cssVarsPrefix, preset, rules, theme, transformUnoRules };
|
|
259
|
+
//# sourceMappingURL=unocss.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unocss.mjs","sources":["../src/_unocss/constants.ts","../src/_unocss/theme.ts","../src/_unocss/rules.ts","../src/_unocss/preset.ts","../src/_unocss/rule-transform.ts"],"sourcesContent":["export const cssVarsPrefix = 'ui'\nexport const cssVarsBase = ['cb', 'cp', 'cx']\nexport const cssVarsDynamic = ['fill', 'content']\nexport const cssVarsAll = [...cssVarsBase, ...cssVarsDynamic]\n","import type { Theme } from '@unocss/preset-mini'\nimport { cssVarsPrefix } from './constants'\n\nexport const theme: Theme = {\n colors: {\n [cssVarsPrefix]: {\n cb: cssColor(cssVar('cb')),\n cp: cssColor(cssVar('cp', cssVar('cb'))),\n cx: cssColor(cssVar('cx')),\n fill: cssColor(cssVar('fill', cssVar('cb'))),\n content: cssColor(cssVar('content', cssVar('cb'))),\n },\n },\n backgroundColor: {\n [cssVarsPrefix]: {\n base: cssColor(cssVar('fill', cssVar('cx'))),\n },\n },\n textColor: {\n [cssVarsPrefix]: {\n base: cssColor(cssVar('content', cssVar('cb'))),\n },\n },\n borderColor: {\n [cssVarsPrefix]: {\n base: cssColor(cssVar('fill', cssVar('cb'))),\n },\n },\n borderRadius: {\n ...Object.fromEntries(['base', 'box', 'button', 'checkbox', 'radio', 'switch', 'tabs']\n .map((name) => [`${cssVarsPrefix}-${name}`, name === 'base'\n ? cssVar('radius')\n : cssVar(`radius-${name}`, cssVar('radius'))])),\n },\n ringWidth: {\n DEFAULT: '1px',\n },\n shadowColor: {\n [cssVarsPrefix]: {\n base: cssColor(cssVar('fill', cssVar('cb'))),\n },\n },\n animation: {\n keyframes: {\n 'fade-in': '{from {opacity: 0;}to {opacity: 1;}}',\n 'fade-out': '{from {opacity: 1;}to {opacity: 0;}}',\n 'scale-in': '{from {opacity: 0;scale: 0.95;}to {opacity: 1;scale: 1;}}',\n 'scale-out': '{from {opacity: 1;scale: 1;}to {opacity: 0;scale: 0.95;}}',\n 'slide-in-from-top': '{from {transform: translateY(-100%);}to {transform: translateY(0);}}',\n 'slide-out-to-top': '{from {transform: translateY(0);}to {transform: translateY(-100%);}}',\n 'slide-in-from-right': '{from {transform: translateX(100%);}to {transform: translateX(0);}}',\n 'slide-out-to-right': '{from {transform: translateX(0);}to {transform: translateX(100%);}}',\n 'slide-in-from-bottom': '{from {transform: translateY(100%);}to {transform: translateY(0);}}',\n 'slide-out-to-bottom': '{from {transform: translateY(0);}to {transform: translateY(100%);}}',\n 'slide-in-from-left': '{from {transform: translateX(-100%);}to {transform: translateX(0);}}',\n 'slide-out-to-left': '{from {transform: translateX(0);}to {transform: translateX(-100%);}}',\n 'slide-in-from-top-and-fade': '{from {opacity: 0;transform: translateY(-4px);}to {opacity: 1;transform: translateY(0);}}',\n 'slide-out-to-top-and-fade': '{from {opacity: 1;transform: translateY(0);}to {opacity: 0;transform: translateY(-4px);}}',\n 'slide-in-from-right-and-fade': '{from {opacity: 0;transform: translateX(4px);}to {opacity: 1;transform: translateX(0);}}',\n 'slide-out-to-right-and-fade': '{from {opacity: 1;transform: translateX(0);}to {opacity: 0;transform: translateX(4px);}}',\n 'slide-in-from-bottom-and-fade': '{from {opacity: 0;transform: translateY(4px);}to {opacity: 1;transform: translateY(0);}}',\n 'slide-out-to-bottom-and-fade': '{from {opacity: 1;transform: translateY(0);}to {opacity: 0;transform: translateY(4px);}}',\n 'slide-in-from-left-and-fade': '{from {opacity: 0;transform: translateX(-4px);}to {opacity: 1;transform: translateX(0);}}',\n 'slide-out-to-left-and-fade': '{from {opacity: 1;transform: translateX(0);}to {opacity: 0;transform: translateX(-4px);}}',\n },\n },\n}\n\nexport function cssVar(name: string, ...defaultValue: string[]) {\n return `var(${[`--${cssVarsPrefix}-${name}`, ...defaultValue].join(',')})`\n}\n\nexport function cssColor(...rgb: (string | number)[]) {\n return `rgb(${rgb.join(' ')})`\n}\n\nexport default theme\n","import type { Rule } from '@unocss/core'\nimport type { ParsedColorValue } from '@unocss/preset-mini/utils'\nimport { parseColor } from '@unocss/preset-mini/utils'\nimport { cssVarsAll, cssVarsDynamic, cssVarsPrefix } from './constants'\nimport { cssColor, cssVar } from './theme'\n\nexport const rules: Rule[] = [\n [\n new RegExp(`^${cssVarsPrefix}-([^/]+)$`),\n ([_, color], ctx) => {\n if (color === 'base')\n return Object.fromEntries(cssVarsDynamic.map((prop) => [`--${cssVarsPrefix}-${prop}`, cssVar('cb')]))\n\n if (color === 'base-inverted')\n return Object.fromEntries(cssVarsDynamic.map((prop) => [`--${cssVarsPrefix}-${prop}`, cssVar('cx')]))\n\n if (color === 'primary')\n return Object.fromEntries(cssVarsDynamic.map((prop) => [`--${cssVarsPrefix}-${prop}`, cssVar('cp', cssVar('cb'))]))\n\n const data = parseColor(color, ctx.theme)\n const value = resolveRuleValue(data)\n\n if (value)\n return Object.fromEntries(cssVarsDynamic.map((prop) => [`--${cssVarsPrefix}-${prop}`, value]))\n },\n { autocomplete: `${cssVarsPrefix}-$colors` },\n ],\n [\n new RegExp(`^${cssVarsPrefix}-(?:(${cssVarsAll.join('|')})-)([^/]+)$`),\n ([_, prop, color], ctx) => {\n if (color === 'base')\n return { [`--${cssVarsPrefix}-${prop}`]: cssVar('cb') }\n\n if (color === 'base-inverted')\n return { [`--${cssVarsPrefix}-${prop}`]: cssVar('cx') }\n\n if (color === 'primary')\n return { [`--${cssVarsPrefix}-${prop}`]: cssVar('cp', cssVar('cb')) }\n\n const data = parseColor(color, ctx.theme)\n const value = resolveRuleValue(data)\n\n if (value)\n return { [`--${cssVarsPrefix}-${prop}`]: value }\n },\n { autocomplete: `${cssVarsPrefix}-(${cssVarsAll.join('|')})-$colors` },\n ],\n [\n /^bg-soft-(.+)$/,\n ([_, c], { theme }) => {\n const parsed = parseColor(c, theme)\n\n if (!parsed || parsed.cssColor?.type !== 'rgb')\n return\n\n const color = `rgb(${parsed.cssColor.components.join(' ')})`\n const opacity = parsed.opacity || '100'\n\n return {\n 'background-color': `color-mix(in srgb, ${color} ${opacity}%, ${cssColor(cssVar('cx'))})`,\n }\n },\n ],\n // overrides\n [/^rotate-(\\d+)$/, ([_, d]) => ({ rotate: `${d}deg` })],\n]\n\nexport default rules\n\nfunction resolveRuleValue(data: ParsedColorValue | undefined) {\n if (data?.color && data.cssColor?.components) {\n let value = data.cssColor.components.join(' ')\n\n if (!/var\\s*\\((.+)\\)(.*)/.test(data.color))\n value += ` /* ${data.color} */`\n\n return value\n }\n\n return null\n}\n","import { definePreset } from '@unocss/core'\nimport { parseCssColor } from '@unocss/preset-mini/utils'\nimport { kebabCase } from 'scule'\nimport { cssVarsPrefix } from './constants'\nimport rules from './rules'\nimport theme, { cssColor, cssVar } from './theme'\n\nexport interface PresetOptions {\n /** @default \"0rem\" */\n radius?: string\n /** @default \"[radius]\" */\n radiusBox?: string\n /** @default \"[radius]\" */\n radiusButton?: string\n /** @default \"[radius]\" */\n radiusCheckbox?: string\n /** @default \"[radius]\" */\n radiusRadio?: string\n /** @default \"[radius]\" */\n radiusSwitch?: string\n /** @default \"[radius]\" */\n radiusTabs?: string\n /**\n * Base content color\n * @default \"#1f2937\"\n */\n cb?: string\n /**\n * Primary color\n * @default \"[cb]\"\n */\n cp?: string\n /**\n * Base background color\n * @default \"#ffffff\"\n */\n cx?: string\n}\n\nexport const preset = definePreset((\n options: PresetOptions = {},\n) => {\n return {\n name: 'unocss-preset-ui',\n theme,\n rules,\n preflights: [\n { getCSS: () => createRootCSS(mergeOptions(options)) },\n ],\n safelist: Object.keys(theme.animation!.keyframes!).map((v) => `keyframes-${v}`),\n }\n})\n\nfunction mergeOptions(options: PresetOptions): PresetOptions {\n const defaults: Required<PresetOptions> = {\n radius: '0rem',\n radiusBox: '',\n radiusButton: '',\n radiusCheckbox: '',\n radiusRadio: '',\n radiusSwitch: '',\n radiusTabs: '',\n cb: '#1f2937',\n cp: '',\n cx: '#ffffff',\n }\n\n return {\n ...defaults,\n ...options,\n }\n}\n\nfunction createRootCSS(kv: PresetOptions) {\n const join = (input: string[]) => input.map((item) => item.endsWith(';') ? item : `${item};`).join('')\n\n const css = [\n // initial\n `:root{${join(Object.entries(kv)\n .filter(([_, v]) => Boolean(v))\n .map(([k, v]) => {\n const name = kebabCase(k)\n const content = parseCssColor(v)?.components.join(' ') ?? v\n return `--${cssVarsPrefix}-${name}:${content}`\n }))}}`,\n // reset\n `:root{${join([\n `color:${cssColor(cssVar('cb'))}`,\n ])}}`,\n `*,::before,::after{${join([\n `--un-default-border-color:color-mix(in srgb,${cssColor(cssVar('cb'))} 10%,transparent)`,\n `accent-color:${cssColor(cssVar('fill', cssVar('cb')))}`,\n `scrollbar-color:color-mix(in srgb,${cssColor(cssVar('cb'))} 25%,transparent) transparent`,\n ])}}`,\n `*::selection{${join([\n `color:${cssColor(cssVar('cx'))}`,\n `background-color:${cssColor(cssVar('cp', cssVar('cb')))}`,\n ])}}`,\n ]\n\n return css.join('')\n}\n","import type { CRRule, CRRuleMatcher } from '@byyuurin/ui-kit'\nimport type { CSSEntries, CSSObject, UserConfig } from '@unocss/core'\nimport { mergeConfigs } from '@unocss/core'\nimport { presetUno } from '@unocss/preset-uno'\nimport { preset } from './preset'\n\nconst baseUnoConfig = mergeConfigs([\n presetUno(),\n preset(),\n])\n\nexport function transformUnoRules(\n userConfig: UserConfig = {},\n): CRRule[] {\n const { rules = [], theme = {} } = mergeConfigs([baseUnoConfig, userConfig])\n const mergeRules: CRRule[] = []\n\n const toString = (values: string[]) => {\n const variables = new Set<string>([])\n const properties = new Set<string>([])\n const propertiesIgnores = new Set<string>(['transform'])\n let propertiesOnly = true\n\n values.forEach((value) => {\n if (propertiesIgnores.has(value)) {\n properties.add(value)\n propertiesOnly = false\n return\n }\n\n if (value.startsWith('--')) {\n variables.add(value)\n return\n }\n\n properties.add(value)\n })\n\n const valueArray = propertiesOnly && properties.size > 0 ? Array.from(properties.values()) : values\n\n return valueArray.join(',')\n }\n\n const resolveCSSEntries = (entries: CSSEntries) => () => toString(entries.flatMap((value) => Object.keys(value)))\n\n const resolveCSSObject = (object: CSSObject) => () => {\n if (JSON.stringify(object) === '{}')\n return null\n\n return toString(Object.keys(object))\n }\n\n for (const rule of rules) {\n const [maybeString, maybeResult] = rule\n const ruleRE = typeof maybeString === 'string' ? new RegExp(`^${maybeString}$`) : maybeString\n\n if (Array.isArray(maybeResult)) {\n mergeRules.push([ruleRE, resolveCSSEntries(maybeResult)])\n continue\n }\n\n if (typeof maybeResult === 'object') {\n mergeRules.push([ruleRE, resolveCSSObject(maybeResult)])\n continue\n }\n\n const matcher: CRRuleMatcher = (matches) => {\n try {\n const result = maybeResult(['', ...matches], {\n theme,\n // @ts-expect-error pass\n generator: { config: {} },\n })\n\n if (Array.isArray(result))\n return toString(result.filter((i) => typeof i === 'object').map((i) => Array.isArray(i) ? i[0] : Object.keys(i).join(',')) as string[])\n\n if (typeof result === 'object')\n return resolveCSSObject(result as any)()\n }\n catch (e: any) {\n console.warn(`[Fail Rule]`, ruleRE, e.message)\n }\n\n return null\n }\n\n mergeRules.push([ruleRE, matcher])\n }\n\n return mergeRules\n}\n"],"names":[],"mappings":"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"}
|
package/dist/unplugin.d.mts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _unplugin from 'unplugin';
|
|
2
2
|
import { Options } from 'unplugin-auto-import/types';
|
|
3
3
|
import { Options as Options$1 } from 'unplugin-vue-components/types';
|
|
4
4
|
|
|
5
|
+
declare const runtimeDir: string;
|
|
5
6
|
interface UIOptions {
|
|
6
7
|
/**
|
|
7
8
|
* prefix for components used in templates
|
|
@@ -20,6 +21,6 @@ interface UIOptions {
|
|
|
20
21
|
*/
|
|
21
22
|
components?: Partial<Options$1>;
|
|
22
23
|
}
|
|
23
|
-
declare const
|
|
24
|
+
declare const unplugin: _unplugin.UnpluginInstance<UIOptions | undefined, boolean>;
|
|
24
25
|
|
|
25
|
-
export { type UIOptions,
|
|
26
|
+
export { type UIOptions, runtimeDir, unplugin };
|
package/dist/unplugin.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _unplugin from 'unplugin';
|
|
2
2
|
import { Options } from 'unplugin-auto-import/types';
|
|
3
3
|
import { Options as Options$1 } from 'unplugin-vue-components/types';
|
|
4
4
|
|
|
5
|
+
declare const runtimeDir: string;
|
|
5
6
|
interface UIOptions {
|
|
6
7
|
/**
|
|
7
8
|
* prefix for components used in templates
|
|
@@ -20,6 +21,6 @@ interface UIOptions {
|
|
|
20
21
|
*/
|
|
21
22
|
components?: Partial<Options$1>;
|
|
22
23
|
}
|
|
23
|
-
declare const
|
|
24
|
+
declare const unplugin: _unplugin.UnpluginInstance<UIOptions | undefined, boolean>;
|
|
24
25
|
|
|
25
|
-
export { type UIOptions,
|
|
26
|
+
export { type UIOptions, runtimeDir, unplugin };
|
package/dist/unplugin.mjs
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
|
+
import { fileURLToPath } from 'node:url';
|
|
2
|
+
import { join, normalize } from 'pathe';
|
|
1
3
|
import { createUnplugin } from 'unplugin';
|
|
2
4
|
import { defu } from 'defu';
|
|
3
|
-
import { join } from 'pathe';
|
|
4
5
|
import AutoImport from 'unplugin-auto-import';
|
|
5
|
-
import { r as runtimeDir, p as packageName } from './shared/ui.CzDyI29e.mjs';
|
|
6
6
|
import { globSync } from 'tinyglobby';
|
|
7
7
|
import AutoImportComponents from 'unplugin-vue-components';
|
|
8
|
-
import '
|
|
8
|
+
import MagicString from 'magic-string';
|
|
9
|
+
import { resolvePathSync } from 'mlly';
|
|
10
|
+
import { p as packageName } from './shared/ui.d1728164.mjs';
|
|
9
11
|
|
|
10
12
|
function AutoImportPlugin(options, meta) {
|
|
11
13
|
const pluginOptions = defu(options.autoImport, {
|
|
@@ -19,6 +21,8 @@ function ComponentImportPlugin(options, meta) {
|
|
|
19
21
|
const { prefix = "U" } = options;
|
|
20
22
|
const components = globSync("**/*.vue", { cwd: join(runtimeDir, "components") });
|
|
21
23
|
const componentNames = new Set(components.map((c) => `${prefix}${c.replace(/\.vue$/, "")}`));
|
|
24
|
+
const overrides = globSync("**/*.vue", { cwd: join(runtimeDir, "vue/components") });
|
|
25
|
+
const overrideNames = new Set(overrides.map((c) => `${prefix}${c.replace(/\.vue$/, "")}`));
|
|
22
26
|
const pluginOptions = defu(options.components, {
|
|
23
27
|
dts: options.dts ?? true,
|
|
24
28
|
exclude: [
|
|
@@ -28,6 +32,8 @@ function ComponentImportPlugin(options, meta) {
|
|
|
28
32
|
],
|
|
29
33
|
resolvers: [
|
|
30
34
|
(componentName) => {
|
|
35
|
+
if (overrideNames.has(componentName))
|
|
36
|
+
return { name: "default", from: join(runtimeDir, "vue/components", `${componentName.slice(prefix.length)}.vue`) };
|
|
31
37
|
if (componentNames.has(componentName))
|
|
32
38
|
return { name: "default", from: join(runtimeDir, "components", `${componentName.slice(prefix.length)}.vue`) };
|
|
33
39
|
}
|
|
@@ -36,13 +42,51 @@ function ComponentImportPlugin(options, meta) {
|
|
|
36
42
|
return AutoImportComponents.raw(pluginOptions, meta);
|
|
37
43
|
}
|
|
38
44
|
|
|
39
|
-
|
|
45
|
+
function NuxtEnvironmentPlugin() {
|
|
46
|
+
const stubPath = resolvePathSync("../runtime/vue/stubs", { extensions: [".ts", ".mjs", ".js"], url: import.meta.url });
|
|
47
|
+
const name = "byyuurin:ui";
|
|
48
|
+
const resolveId = "#imports";
|
|
49
|
+
return {
|
|
50
|
+
name,
|
|
51
|
+
enforce: "pre",
|
|
52
|
+
resolveId(id) {
|
|
53
|
+
if (id === resolveId)
|
|
54
|
+
return stubPath;
|
|
55
|
+
},
|
|
56
|
+
transformInclude(id) {
|
|
57
|
+
return normalize(id).includes(runtimeDir);
|
|
58
|
+
},
|
|
59
|
+
transform(code) {
|
|
60
|
+
if (code.includes("import.meta.client")) {
|
|
61
|
+
const s = new MagicString(code);
|
|
62
|
+
s.replaceAll("import.meta.client", "true");
|
|
63
|
+
if (s.hasChanged()) {
|
|
64
|
+
return {
|
|
65
|
+
code: s.toString(),
|
|
66
|
+
map: s.generateMap({ hires: true })
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const runtimeDir = normalize(fileURLToPath(new URL("runtime", import.meta.url)));
|
|
75
|
+
const unplugin = createUnplugin((options = {}, meta) => {
|
|
40
76
|
return [
|
|
77
|
+
NuxtEnvironmentPlugin(),
|
|
41
78
|
ComponentImportPlugin(options, meta),
|
|
42
79
|
AutoImportPlugin(options, meta),
|
|
43
80
|
{
|
|
44
81
|
name: "byyuurin:ui:plugins-duplication-detection",
|
|
45
82
|
vite: {
|
|
83
|
+
config() {
|
|
84
|
+
return {
|
|
85
|
+
optimizeDeps: {
|
|
86
|
+
include: [`${packageName}/unocss`]
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
},
|
|
46
90
|
configResolved(config) {
|
|
47
91
|
const checkPluginNames = [
|
|
48
92
|
"unplugin-auto-import",
|
|
@@ -60,5 +104,5 @@ const UIPlugin = createUnplugin((options = {}, meta) => {
|
|
|
60
104
|
];
|
|
61
105
|
});
|
|
62
106
|
|
|
63
|
-
export {
|
|
107
|
+
export { runtimeDir, unplugin };
|
|
64
108
|
//# sourceMappingURL=unplugin.mjs.map
|
package/dist/unplugin.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unplugin.mjs","sources":["../src/_unplugin/auto-import.ts","../src/_unplugin/components.ts","../src/unplugin.ts"],"sourcesContent":["import { defu } from 'defu'\r\nimport { join } from 'pathe'\r\nimport type { UnpluginContextMeta, UnpluginOptions } from 'unplugin'\r\nimport AutoImport from 'unplugin-auto-import'\r\nimport type { Options as AutoImportOptions } from 'unplugin-auto-import/types'\r\nimport { runtimeDir } from '../internal/shared'\r\nimport type { UIOptions } from '../unplugin'\r\n\r\n/** This plugin adds all the UI composables as auto-imports. */\r\nexport default function AutoImportPlugin(options: UIOptions, meta: UnpluginContextMeta): UnpluginOptions {\r\n const pluginOptions = defu(options.autoImport, <AutoImportOptions>{\r\n dts: options.dts ?? true,\r\n dirs: [join(runtimeDir, 'composables')],\r\n })\r\n\r\n return AutoImport.raw(pluginOptions, meta) as UnpluginOptions\r\n}\r\n","import { defu } from 'defu'\r\nimport { join } from 'pathe'\r\nimport { globSync } from 'tinyglobby'\r\nimport type { UnpluginContextMeta, UnpluginOptions } from 'unplugin'\r\nimport AutoImportComponents from 'unplugin-vue-components'\r\nimport type { Options as ComponentsOptions } from 'unplugin-vue-components/types'\r\nimport { runtimeDir } from '../internal/shared'\r\nimport type { UIOptions } from '../unplugin'\r\n\r\n/** This plugin adds all the Nuxt UI components as auto-imports. */\r\nexport default function ComponentImportPlugin(options: UIOptions, meta: UnpluginContextMeta) {\r\n const { prefix = 'U' } = options\r\n const components = globSync('**/*.vue', { cwd: join(runtimeDir, 'components') })\r\n const componentNames = new Set(components.map((c) => `${prefix}${c.replace(/\\.vue$/, '')}`))\r\n\r\n const pluginOptions = defu(options.components, <ComponentsOptions>{\r\n dts: options.dts ?? true,\r\n exclude: [\r\n /[\\\\/]node_modules[\\\\/](?!\\.pnpm|@byyuurin\\/ui)/,\r\n /[\\\\/]\\.git[\\\\/]/,\r\n /[\\\\/]\\.nuxt[\\\\/]/,\r\n ],\r\n resolvers: [\r\n (componentName) => {\r\n if (componentNames.has(componentName))\r\n return { name: 'default', from: join(runtimeDir, 'components', `${componentName.slice(prefix.length)}.vue`) }\r\n },\r\n ],\r\n })\r\n\r\n return AutoImportComponents.raw(pluginOptions, meta) as UnpluginOptions\r\n}\r\n","import type { UnpluginOptions } from 'unplugin'\r\nimport { createUnplugin } from 'unplugin'\r\nimport type { Options as AutoImportOptions } from 'unplugin-auto-import/types'\r\nimport type { Options as ComponentsOptions } from 'unplugin-vue-components/types'\r\nimport AutoImportPlugin from './_unplugin/auto-import'\r\nimport ComponentImportPlugin from './_unplugin/components'\r\nimport { packageName } from './internal/shared'\r\n\r\nexport interface UIOptions {\r\n /**\r\n * prefix for components used in templates\r\n *\r\n * @default \"U\"\r\n */\r\n prefix?: string\r\n /** Whether to generate declaration files for auto-imported components. */\r\n dts?: boolean\r\n /**\r\n * Override options for `unplugin-auto-import`\r\n */\r\n autoImport?: Partial<AutoImportOptions>\r\n /**\r\n * Override options for `unplugin-vue-components`\r\n */\r\n components?: Partial<ComponentsOptions>\r\n}\r\n\r\nexport const UIPlugin = createUnplugin<UIOptions | undefined>((options: UIOptions = {}, meta) => {\r\n return [\r\n ComponentImportPlugin(options, meta),\r\n AutoImportPlugin(options, meta),\r\n <UnpluginOptions>{\r\n name: 'byyuurin:ui:plugins-duplication-detection',\r\n vite: {\r\n configResolved(config) {\r\n const checkPluginNames = [\r\n 'unplugin-auto-import',\r\n 'unplugin-vue-components',\r\n ]\r\n const plugins = config.plugins || []\r\n\r\n const makeMessage = (pluginName: string) => `[${packageName}] Multiple instances of \\`${pluginName}\\` detected. ${packageName} includes \\`${pluginName}\\` already, and you can configure it using \\`${pluginName}\\` option in ${packageName} module options.`\r\n\r\n for (const pluginName of checkPluginNames) {\r\n if (plugins.filter((i) => i.name === pluginName).length > 1)\r\n throw new Error(makeMessage(pluginName))\r\n }\r\n },\r\n },\r\n },\r\n ]\r\n})\r\n\r\nexport default UIPlugin\r\n"],"names":[],"mappings":";;;;;;;;;AASwB,SAAA,gBAAA,CAAiB,SAAoB,IAA4C,EAAA;AACvG,EAAM,MAAA,aAAA,GAAgB,IAAK,CAAA,OAAA,CAAQ,UAA+B,EAAA;AAAA,IAChE,GAAA,EAAK,QAAQ,GAAO,IAAA,IAAA;AAAA,IACpB,IAAM,EAAA,CAAC,IAAK,CAAA,UAAA,EAAY,aAAa,CAAC;AAAA,GACvC,CAAA;AAED,EAAO,OAAA,UAAA,CAAW,GAAI,CAAA,aAAA,EAAe,IAAI,CAAA;AAC3C;;ACNwB,SAAA,qBAAA,CAAsB,SAAoB,IAA2B,EAAA;AAC3F,EAAM,MAAA,EAAE,MAAS,GAAA,GAAA,EAAQ,GAAA,OAAA;AACzB,EAAM,MAAA,UAAA,GAAa,SAAS,UAAY,EAAA,EAAE,KAAK,IAAK,CAAA,UAAA,EAAY,YAAY,CAAA,EAAG,CAAA;AAC/E,EAAA,MAAM,iBAAiB,IAAI,GAAA,CAAI,UAAW,CAAA,GAAA,CAAI,CAAC,CAAM,KAAA,CAAA,EAAG,MAAM,CAAA,EAAG,EAAE,OAAQ,CAAA,QAAA,EAAU,EAAE,CAAC,EAAE,CAAC,CAAA;AAE3F,EAAM,MAAA,aAAA,GAAgB,IAAK,CAAA,OAAA,CAAQ,UAA+B,EAAA;AAAA,IAChE,GAAA,EAAK,QAAQ,GAAO,IAAA,IAAA;AAAA,IACpB,OAAS,EAAA;AAAA,MACP,gDAAA;AAAA,MACA,iBAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,SAAW,EAAA;AAAA,MACT,CAAC,aAAkB,KAAA;AACjB,QAAI,IAAA,cAAA,CAAe,IAAI,aAAa,CAAA;AAClC,UAAA,OAAO,EAAE,IAAA,EAAM,SAAW,EAAA,IAAA,EAAM,KAAK,UAAY,EAAA,YAAA,EAAc,CAAG,EAAA,aAAA,CAAc,KAAM,CAAA,MAAA,CAAO,MAAM,CAAC,MAAM,CAAE,EAAA;AAAA;AAChH;AACF,GACD,CAAA;AAED,EAAO,OAAA,oBAAA,CAAqB,GAAI,CAAA,aAAA,EAAe,IAAI,CAAA;AACrD;;ACJO,MAAM,WAAW,cAAsC,CAAA,CAAC,OAAqB,GAAA,IAAI,IAAS,KAAA;AAC/F,EAAO,OAAA;AAAA,IACL,qBAAA,CAAsB,SAAS,IAAI,CAAA;AAAA,IACnC,gBAAA,CAAiB,SAAS,IAAI,CAAA;AAAA,IACb;AAAA,MACf,IAAM,EAAA,2CAAA;AAAA,MACN,IAAM,EAAA;AAAA,QACJ,eAAe,MAAQ,EAAA;AACrB,UAAA,MAAM,gBAAmB,GAAA;AAAA,YACvB,sBAAA;AAAA,YACA;AAAA,WACF;AACA,UAAM,MAAA,OAAA,GAAU,MAAO,CAAA,OAAA,IAAW,EAAC;AAEnC,UAAA,MAAM,WAAc,GAAA,CAAC,UAAuB,KAAA,CAAA,CAAA,EAAI,WAAW,CAA6B,0BAAA,EAAA,UAAU,CAAgB,aAAA,EAAA,WAAW,CAAe,YAAA,EAAA,UAAU,CAAgD,6CAAA,EAAA,UAAU,gBAAgB,WAAW,CAAA,gBAAA,CAAA;AAE3O,UAAA,KAAA,MAAW,cAAc,gBAAkB,EAAA;AACzC,YAAI,IAAA,OAAA,CAAQ,OAAO,CAAC,CAAA,KAAM,EAAE,IAAS,KAAA,UAAU,EAAE,MAAS,GAAA,CAAA;AACxD,cAAA,MAAM,IAAI,KAAA,CAAM,WAAY,CAAA,UAAU,CAAC,CAAA;AAAA;AAC3C;AACF;AACF;AACF,GACF;AACF,CAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"unplugin.mjs","sources":["../src/_unplugin/auto-import.ts","../src/_unplugin/components.ts","../src/_unplugin/nuxt-environment.ts","../src/unplugin.ts"],"sourcesContent":["import { defu } from 'defu'\nimport { join } from 'pathe'\nimport type { UnpluginContextMeta, UnpluginOptions } from 'unplugin'\nimport AutoImport from 'unplugin-auto-import'\nimport type { Options as AutoImportOptions } from 'unplugin-auto-import/types'\nimport type { UIOptions } from '../unplugin'\nimport { runtimeDir } from '../unplugin'\n\n/** This plugin adds all the UI composables as auto-imports. */\n// ref: https://github.com/nuxt/ui/blob/6c20f8a9ea03273a795c5f88c071830decd54c1e/src/plugins/auto-import.ts\nexport default function AutoImportPlugin(options: UIOptions, meta: UnpluginContextMeta): UnpluginOptions {\n const pluginOptions = defu(options.autoImport, <AutoImportOptions>{\n dts: options.dts ?? true,\n dirs: [join(runtimeDir, 'composables')],\n })\n\n return AutoImport.raw(pluginOptions, meta) as UnpluginOptions\n}\n","import { defu } from 'defu'\r\nimport { join } from 'pathe'\r\nimport { globSync } from 'tinyglobby'\r\nimport type { UnpluginContextMeta, UnpluginOptions } from 'unplugin'\r\nimport AutoImportComponents from 'unplugin-vue-components'\r\nimport type { Options as ComponentsOptions } from 'unplugin-vue-components/types'\r\nimport type { UIOptions } from '../unplugin'\r\nimport { runtimeDir } from '../unplugin'\r\n\r\n/** This plugin adds all the Nuxt UI components as auto-imports. */\r\n// ref: https://github.com/nuxt/ui/tree/6c20f8a9ea03273a795c5f88c071830decd54c1e/src/plugins/components.ts\r\nexport default function ComponentImportPlugin(options: UIOptions, meta: UnpluginContextMeta) {\r\n const { prefix = 'U' } = options\r\n const components = globSync('**/*.vue', { cwd: join(runtimeDir, 'components') })\r\n const componentNames = new Set(components.map((c) => `${prefix}${c.replace(/\\.vue$/, '')}`))\r\n\r\n const overrides = globSync('**/*.vue', { cwd: join(runtimeDir, 'vue/components') })\r\n const overrideNames = new Set(overrides.map((c) => `${prefix}${c.replace(/\\.vue$/, '')}`))\r\n\r\n const pluginOptions = defu(options.components, <ComponentsOptions>{\r\n dts: options.dts ?? true,\r\n exclude: [\r\n /[\\\\/]node_modules[\\\\/](?!\\.pnpm|@byyuurin\\/ui)/,\r\n /[\\\\/]\\.git[\\\\/]/,\r\n /[\\\\/]\\.nuxt[\\\\/]/,\r\n ],\r\n resolvers: [\r\n (componentName) => {\r\n if (overrideNames.has(componentName))\r\n return { name: 'default', from: join(runtimeDir, 'vue/components', `${componentName.slice(prefix.length)}.vue`) }\r\n\r\n if (componentNames.has(componentName))\r\n return { name: 'default', from: join(runtimeDir, 'components', `${componentName.slice(prefix.length)}.vue`) }\r\n },\r\n ],\r\n })\r\n\r\n return AutoImportComponents.raw(pluginOptions, meta) as UnpluginOptions\r\n}\r\n","import MagicString from 'magic-string'\nimport { resolvePathSync } from 'mlly'\nimport { normalize } from 'pathe'\nimport type { UnpluginOptions } from 'unplugin'\nimport { runtimeDir } from '../unplugin'\n\n/**\n * This plugin normalises Nuxt environment (#imports) and `import.meta.client` within the UI components.\n */\n// ref: https://github.com/nuxt/ui/blob/0f99a4cdbcbca3090ef0a58f475be46de4eeb9ff/src/plugins/nuxt-environment.ts\nexport default function NuxtEnvironmentPlugin(): UnpluginOptions {\n const stubPath = resolvePathSync('../runtime/vue/stubs', { extensions: ['.ts', '.mjs', '.js'], url: import.meta.url })\n const name = 'byyuurin:ui'\n const resolveId = '#imports'\n\n return {\n name,\n enforce: 'pre',\n resolveId(id) {\n // this is implemented here rather than in a vite `config` hook for cross-builder support\n if (id === resolveId)\n return stubPath\n },\n transformInclude(id) {\n return normalize(id).includes(runtimeDir)\n },\n transform(code) {\n if (code.includes('import.meta.client')) {\n const s = new MagicString(code)\n s.replaceAll('import.meta.client', 'true')\n\n if (s.hasChanged()) {\n return {\n code: s.toString(),\n map: s.generateMap({ hires: true }),\n }\n }\n }\n },\n }\n}\n","import { fileURLToPath } from 'node:url'\r\nimport { normalize } from 'pathe'\r\nimport type { UnpluginOptions } from 'unplugin'\r\nimport { createUnplugin } from 'unplugin'\r\nimport type { Options as AutoImportOptions } from 'unplugin-auto-import/types'\r\nimport type { Options as ComponentsOptions } from 'unplugin-vue-components/types'\r\nimport AutoImportPlugin from './_unplugin/auto-import'\r\nimport ComponentImportPlugin from './_unplugin/components'\r\nimport NuxtEnvironmentPlugin from './_unplugin/nuxt-environment'\r\nimport { packageName } from './shared'\r\n\r\nexport const runtimeDir = normalize(fileURLToPath(new URL('runtime', import.meta.url)))\r\n\r\nexport interface UIOptions {\r\n /**\r\n * prefix for components used in templates\r\n *\r\n * @default \"U\"\r\n */\r\n prefix?: string\r\n /** Whether to generate declaration files for auto-imported components. */\r\n dts?: boolean\r\n /**\r\n * Override options for `unplugin-auto-import`\r\n */\r\n autoImport?: Partial<AutoImportOptions>\r\n /**\r\n * Override options for `unplugin-vue-components`\r\n */\r\n components?: Partial<ComponentsOptions>\r\n}\r\n\r\nexport const unplugin = createUnplugin<UIOptions | undefined>((options: UIOptions = {}, meta) => {\r\n return [\r\n NuxtEnvironmentPlugin(),\r\n ComponentImportPlugin(options, meta),\r\n AutoImportPlugin(options, meta),\r\n <UnpluginOptions>{\r\n name: 'byyuurin:ui:plugins-duplication-detection',\r\n vite: {\r\n config() {\r\n return {\r\n optimizeDeps: {\r\n include: [`${packageName}/unocss`],\r\n },\r\n }\r\n },\r\n configResolved(config) {\r\n const checkPluginNames = [\r\n 'unplugin-auto-import',\r\n 'unplugin-vue-components',\r\n ]\r\n const plugins = config.plugins || []\r\n\r\n const makeMessage = (pluginName: string) => `[${packageName}] Multiple instances of \\`${pluginName}\\` detected. ${packageName} includes \\`${pluginName}\\` already, and you can configure it using \\`${pluginName}\\` option in ${packageName} module options.`\r\n\r\n for (const pluginName of checkPluginNames) {\r\n if (plugins.filter((i) => i.name === pluginName).length > 1)\r\n throw new Error(makeMessage(pluginName))\r\n }\r\n },\r\n },\r\n },\r\n ]\r\n})\r\n"],"names":[],"mappings":"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"}
|
package/dist/vite.d.mts
CHANGED
package/dist/vite.d.ts
CHANGED
package/dist/vite.mjs
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { unplugin } from './unplugin.mjs';
|
|
2
|
+
import 'node:url';
|
|
3
|
+
import 'pathe';
|
|
2
4
|
import 'unplugin';
|
|
3
5
|
import 'defu';
|
|
4
|
-
import 'pathe';
|
|
5
6
|
import 'unplugin-auto-import';
|
|
6
|
-
import './shared/ui.CzDyI29e.mjs';
|
|
7
|
-
import 'node:url';
|
|
8
7
|
import 'tinyglobby';
|
|
9
8
|
import 'unplugin-vue-components';
|
|
9
|
+
import 'magic-string';
|
|
10
|
+
import 'mlly';
|
|
11
|
+
import './shared/ui.d1728164.mjs';
|
|
10
12
|
|
|
11
|
-
const vite =
|
|
13
|
+
const vite = unplugin.vite;
|
|
12
14
|
|
|
13
15
|
export { vite as default };
|
|
14
16
|
//# sourceMappingURL=vite.mjs.map
|
package/dist/vite.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite.mjs","sources":["../src/vite.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"vite.mjs","sources":["../src/vite.ts"],"sourcesContent":["import { unplugin } from './unplugin'\r\n\r\nexport type { UIOptions } from './unplugin'\r\n\r\nexport default unplugin.vite\r\n"],"names":[],"mappings":";;;;;;;;;;;;AAIA,aAAe,QAAS,CAAA,IAAA;;;;"}
|