@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.
Files changed (160) hide show
  1. package/README.md +15 -11
  2. package/dist/module.cjs +5 -0
  3. package/dist/module.json +12 -0
  4. package/dist/{nuxt.mjs → module.mjs} +7 -6
  5. package/dist/module.mjs.map +1 -0
  6. package/dist/runtime/components/Accordion.vue +20 -31
  7. package/dist/runtime/components/Alert.vue +1 -1
  8. package/dist/runtime/components/App.vue +1 -1
  9. package/dist/runtime/components/Badge.vue +0 -1
  10. package/dist/runtime/components/Button.vue +14 -12
  11. package/dist/runtime/components/ButtonGroup.vue +47 -0
  12. package/dist/runtime/components/Card.vue +9 -6
  13. package/dist/runtime/components/Carousel.vue +310 -0
  14. package/dist/runtime/components/Checkbox.vue +3 -4
  15. package/dist/runtime/components/Chip.vue +9 -4
  16. package/dist/runtime/components/Collapsible.vue +56 -0
  17. package/dist/runtime/components/Drawer.vue +4 -2
  18. package/dist/runtime/components/Input.vue +12 -8
  19. package/dist/runtime/components/InputNumber.vue +167 -0
  20. package/dist/runtime/components/Link.vue +301 -72
  21. package/dist/runtime/components/LinkBase.vue +88 -0
  22. package/dist/runtime/components/Modal.vue +2 -4
  23. package/dist/runtime/components/Pagination.vue +167 -0
  24. package/dist/runtime/components/PinInput.vue +0 -1
  25. package/dist/runtime/components/RadioGroup.vue +0 -1
  26. package/dist/runtime/components/ScrollArea.vue +1 -1
  27. package/dist/runtime/components/Select.vue +9 -5
  28. package/dist/runtime/components/Separator.vue +63 -0
  29. package/dist/runtime/components/Slider.vue +0 -1
  30. package/dist/runtime/components/Switch.vue +4 -6
  31. package/dist/runtime/components/Table.vue +292 -0
  32. package/dist/runtime/components/Tabs.vue +17 -18
  33. package/dist/runtime/components/Textarea.vue +0 -1
  34. package/dist/runtime/components/Toast.vue +21 -10
  35. package/dist/runtime/components/Toaster.vue +4 -39
  36. package/dist/runtime/composables/useButtonGroup.d.ts +13 -0
  37. package/dist/runtime/composables/useButtonGroup.js +14 -0
  38. package/dist/runtime/composables/{useComponentIcons.mjs → useComponentIcons.js} +1 -1
  39. package/dist/runtime/composables/useModal.d.ts +1 -1
  40. package/dist/runtime/composables/{useModal.mjs → useModal.js} +1 -1
  41. package/dist/runtime/composables/useTheme.d.ts +4 -4
  42. package/dist/runtime/composables/{useTheme.mjs → useTheme.js} +4 -4
  43. package/dist/runtime/composables/useToast.d.ts +4 -4
  44. package/dist/runtime/composables/{useToast.mjs → useToast.js} +19 -6
  45. package/dist/runtime/index.d.ts +34 -0
  46. package/dist/runtime/index.js +34 -0
  47. package/dist/runtime/theme/accordion.d.ts +22 -5
  48. package/dist/runtime/theme/{accordion.mjs → accordion.js} +2 -2
  49. package/dist/runtime/theme/alert.d.ts +41 -1
  50. package/dist/runtime/theme/{alert.mjs → alert.js} +4 -4
  51. package/dist/runtime/theme/app.d.ts +8 -0
  52. package/dist/runtime/theme/app.js +18 -0
  53. package/dist/runtime/theme/badge.d.ts +48 -21
  54. package/dist/runtime/theme/{badge.mjs → badge.js} +5 -2
  55. package/dist/runtime/theme/button-group.d.ts +66 -0
  56. package/dist/runtime/theme/button-group.js +42 -0
  57. package/dist/runtime/theme/button.d.ts +68 -111
  58. package/dist/runtime/theme/button.js +164 -0
  59. package/dist/runtime/theme/card.d.ts +38 -19
  60. package/dist/runtime/theme/card.js +37 -0
  61. package/dist/runtime/theme/carousel.d.ts +113 -0
  62. package/dist/runtime/theme/carousel.js +43 -0
  63. package/dist/runtime/theme/checkbox.d.ts +4 -1
  64. package/dist/runtime/theme/{checkbox.mjs → checkbox.js} +7 -4
  65. package/dist/runtime/theme/chip.d.ts +56 -12
  66. package/dist/runtime/theme/{chip.mjs → chip.js} +10 -7
  67. package/dist/runtime/theme/collapsible.d.ts +38 -0
  68. package/dist/runtime/theme/collapsible.js +10 -0
  69. package/dist/runtime/theme/drawer.d.ts +71 -33
  70. package/dist/runtime/theme/{drawer.mjs → drawer.js} +33 -22
  71. package/dist/runtime/theme/index.d.ts +31 -24
  72. package/dist/runtime/theme/index.js +31 -0
  73. package/dist/runtime/theme/input-number.d.ts +135 -0
  74. package/dist/runtime/theme/input-number.js +92 -0
  75. package/dist/runtime/theme/input.d.ts +94 -111
  76. package/dist/runtime/theme/input.js +151 -0
  77. package/dist/runtime/theme/link.d.ts +14 -1
  78. package/dist/runtime/theme/{link.mjs → link.js} +1 -1
  79. package/dist/runtime/theme/modal.d.ts +33 -7
  80. package/dist/runtime/theme/{modal.mjs → modal.js} +8 -10
  81. package/dist/runtime/theme/pagination.d.ts +56 -0
  82. package/dist/runtime/theme/pagination.js +13 -0
  83. package/dist/runtime/theme/pinInput.d.ts +45 -42
  84. package/dist/runtime/theme/{pinInput.mjs → pinInput.js} +14 -11
  85. package/dist/runtime/theme/popover.d.ts +16 -5
  86. package/dist/runtime/theme/{radioGroup.d.ts → radio-group.d.ts} +4 -1
  87. package/dist/runtime/theme/{radioGroup.mjs → radio-group.js} +3 -0
  88. package/dist/runtime/theme/scroll-area.d.ts +73 -0
  89. package/dist/runtime/theme/{scrollArea.mjs → scroll-area.js} +2 -2
  90. package/dist/runtime/theme/select.d.ts +95 -99
  91. package/dist/runtime/theme/{select.mjs → select.js} +22 -17
  92. package/dist/runtime/theme/separator.d.ts +95 -0
  93. package/dist/runtime/theme/separator.js +53 -0
  94. package/dist/runtime/theme/slider.d.ts +4 -1
  95. package/dist/runtime/theme/{slider.mjs → slider.js} +6 -3
  96. package/dist/runtime/theme/switch.d.ts +4 -1
  97. package/dist/runtime/theme/{switch.mjs → switch.js} +5 -2
  98. package/dist/runtime/theme/table.d.ts +89 -0
  99. package/dist/runtime/theme/table.js +35 -0
  100. package/dist/runtime/theme/tabs.d.ts +72 -52
  101. package/dist/runtime/theme/{tabs.mjs → tabs.js} +15 -12
  102. package/dist/runtime/theme/textarea.d.ts +46 -37
  103. package/dist/runtime/theme/{textarea.mjs → textarea.js} +14 -11
  104. package/dist/runtime/theme/toast.d.ts +45 -7
  105. package/dist/runtime/theme/{toast.mjs → toast.js} +12 -7
  106. package/dist/runtime/theme/toaster.d.ts +89 -25
  107. package/dist/runtime/theme/{toaster.mjs → toaster.js} +5 -0
  108. package/dist/runtime/theme/tooltip.d.ts +20 -7
  109. package/dist/runtime/theme/{tooltip.mjs → tooltip.js} +2 -2
  110. package/dist/runtime/types/components.d.ts +7 -1
  111. package/dist/runtime/types/index.d.ts +4 -4
  112. package/dist/runtime/types/index.js +2 -0
  113. package/dist/runtime/types/utils.d.ts +1 -1
  114. package/dist/runtime/utils/index.d.ts +3 -3
  115. package/dist/runtime/utils/{index.mjs → index.js} +3 -3
  116. package/dist/runtime/utils/link.d.ts +22 -7
  117. package/dist/runtime/utils/link.js +30 -0
  118. package/dist/runtime/utils/styler.d.ts +2 -2
  119. package/dist/runtime/vue/stubs.d.ts +9 -0
  120. package/dist/runtime/vue/stubs.js +16 -0
  121. package/dist/shared/ui.d1728164.mjs +4 -0
  122. package/dist/shared/ui.d1728164.mjs.map +1 -0
  123. package/dist/types.d.mts +1 -0
  124. package/dist/types.d.ts +1 -0
  125. package/dist/{unocss-preset.d.ts → unocss.d.mts} +10 -15
  126. package/dist/{unocss-preset.d.mts → unocss.d.ts} +10 -15
  127. package/dist/{unocss-preset.mjs → unocss.mjs} +53 -21
  128. package/dist/unocss.mjs.map +1 -0
  129. package/dist/unplugin.d.mts +4 -3
  130. package/dist/unplugin.d.ts +4 -3
  131. package/dist/unplugin.mjs +49 -5
  132. package/dist/unplugin.mjs.map +1 -1
  133. package/dist/vite.d.mts +1 -1
  134. package/dist/vite.d.ts +1 -1
  135. package/dist/vite.mjs +7 -5
  136. package/dist/vite.mjs.map +1 -1
  137. package/package.json +59 -45
  138. package/dist/index.d.ts +0 -26
  139. package/dist/index.mjs +0 -26
  140. package/dist/nuxt.mjs.map +0 -1
  141. package/dist/runtime/theme/app.mjs +0 -10
  142. package/dist/runtime/theme/button.mjs +0 -143
  143. package/dist/runtime/theme/card.mjs +0 -14
  144. package/dist/runtime/theme/index.mjs +0 -24
  145. package/dist/runtime/theme/input.mjs +0 -146
  146. package/dist/runtime/theme/scrollArea.d.ts +0 -51
  147. package/dist/runtime/types/index.mjs +0 -2
  148. package/dist/runtime/utils/link.mjs +0 -4
  149. package/dist/shared/ui.CzDyI29e.mjs +0 -8
  150. package/dist/shared/ui.CzDyI29e.mjs.map +0 -1
  151. package/dist/unocss-preset.mjs.map +0 -1
  152. /package/{LICENSE.md → LICENSE} +0 -0
  153. /package/dist/{nuxt.d.mts → module.d.mts} +0 -0
  154. /package/dist/{nuxt.d.ts → module.d.ts} +0 -0
  155. /package/dist/runtime/composables/{defineInjection.mjs → defineInjection.js} +0 -0
  156. /package/dist/runtime/theme/{popover.mjs → popover.js} +0 -0
  157. /package/dist/runtime/types/{components.mjs → components.js} +0 -0
  158. /package/dist/runtime/types/{utils.mjs → utils.js} +0 -0
  159. /package/dist/runtime/utils/{extend-theme.mjs → extend-theme.js} +0 -0
  160. /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;;;;"}
@@ -0,0 +1 @@
1
+ export { type ModuleOptions, default } from './module.js'
@@ -0,0 +1 @@
1
+ export { type ModuleOptions, default } from './module'
@@ -1,6 +1,6 @@
1
- import * as unocss from 'unocss';
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
- * Base color 1
33
- * @default "#ffffff"
34
- */
35
- c1?: string;
36
- /**
37
- * Base color 2
38
- * @default "#f2f2f2"
32
+ * Primary color
33
+ * @default "[cb]"
39
34
  */
40
- c2?: string;
35
+ cp?: string;
41
36
  /**
42
- * Base color 3
43
- * @default "#e5e6e6"
37
+ * Base background color
38
+ * @default "#ffffff"
44
39
  */
45
- c3?: string;
40
+ cx?: string;
46
41
  }
47
- declare const preset: unocss.PresetFactory<object, PresetOptions>;
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 as default, preset, rules, theme, transformUnoRules };
52
+ export { type PresetOptions, cssColor, cssVar, cssVarsAll, cssVarsBase, cssVarsDynamic, cssVarsPrefix, preset, rules, theme, transformUnoRules };
@@ -1,6 +1,6 @@
1
- import * as unocss from 'unocss';
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
- * Base color 1
33
- * @default "#ffffff"
34
- */
35
- c1?: string;
36
- /**
37
- * Base color 2
38
- * @default "#f2f2f2"
32
+ * Primary color
33
+ * @default "[cb]"
39
34
  */
40
- c2?: string;
35
+ cp?: string;
41
36
  /**
42
- * Base color 3
43
- * @default "#e5e6e6"
37
+ * Base background color
38
+ * @default "#ffffff"
44
39
  */
45
- c3?: string;
40
+ cx?: string;
46
41
  }
47
- declare const preset: unocss.PresetFactory<object, PresetOptions>;
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 as default, preset, rules, theme, transformUnoRules };
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", "c1", "c2", "c3"];
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
- c: {
16
- 1: cssColor(cssVar("c1")),
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("c1")))
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("c1")]));
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("c1") };
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
- c1: "#ffffff",
146
- c2: "#f2f2f2",
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("c1"))}`,
174
- `background-color:${cssColor(cssVar("fill", cssVar("cb")))}`
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 resolveCSSEntries = (entries) => () => entries.flatMap((value) => Object.keys(value)).join(",");
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).join(",");
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(",")).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 as default, preset, rules, theme, transformUnoRules };
227
- //# sourceMappingURL=unocss-preset.mjs.map
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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"}
@@ -1,7 +1,8 @@
1
- import * as unplugin from 'unplugin';
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 UIPlugin: unplugin.UnpluginInstance<UIOptions | undefined, boolean>;
24
+ declare const unplugin: _unplugin.UnpluginInstance<UIOptions | undefined, boolean>;
24
25
 
25
- export { type UIOptions, UIPlugin, UIPlugin as default };
26
+ export { type UIOptions, runtimeDir, unplugin };
@@ -1,7 +1,8 @@
1
- import * as unplugin from 'unplugin';
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 UIPlugin: unplugin.UnpluginInstance<UIOptions | undefined, boolean>;
24
+ declare const unplugin: _unplugin.UnpluginInstance<UIOptions | undefined, boolean>;
24
25
 
25
- export { type UIOptions, UIPlugin, UIPlugin as default };
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 'node:url';
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
- const UIPlugin = createUnplugin((options = {}, meta) => {
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 { UIPlugin, UIPlugin as default };
107
+ export { runtimeDir, unplugin };
64
108
  //# sourceMappingURL=unplugin.mjs.map
@@ -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
@@ -6,4 +6,4 @@ import 'unplugin-vue-components/types';
6
6
 
7
7
  declare const _default: (options?: UIOptions | undefined) => vite.Plugin<any> | vite.Plugin<any>[];
8
8
 
9
- export { _default as default };
9
+ export { UIOptions, _default as default };
package/dist/vite.d.ts CHANGED
@@ -6,4 +6,4 @@ import 'unplugin-vue-components/types';
6
6
 
7
7
  declare const _default: (options?: UIOptions | undefined) => vite.Plugin<any> | vite.Plugin<any>[];
8
8
 
9
- export { _default as default };
9
+ export { UIOptions, _default as default };
package/dist/vite.mjs CHANGED
@@ -1,14 +1,16 @@
1
- import { UIPlugin } from './unplugin.mjs';
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 = UIPlugin.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 { UIPlugin } from './unplugin'\r\n\r\nexport default UIPlugin.vite\r\n"],"names":[],"mappings":";;;;;;;;;;AAEA,aAAe,QAAS,CAAA,IAAA;;;;"}
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;;;;"}