@pubinfo/config 2.0.0-beta.25 → 2.0.0-beta.27

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/dist/index.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { p as eslint } from './shared/config.CSqBb4YU.mjs';
2
2
  export { default as stylelint } from './stylelint.mjs';
3
- export { colorScheme, cssVarKey, customColorKey, defineTheme, globalTheme, mergeTheme, themeOptions, themes } from './themes/index.mjs';
3
+ export { colorScheme, cssVarKey, customColorKey, defineTheme, getThemes, globalTheme, themeOptions } from './themes/index.mjs';
4
4
  export { default as presetPubinfo } from './unocss/index.mjs';
5
5
  import '@antfu/eslint-config';
6
6
  import 'unocss';
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { p as eslint } from './shared/config.CSqBb4YU.js';
2
2
  export { default as stylelint } from './stylelint.js';
3
- export { colorScheme, cssVarKey, customColorKey, defineTheme, globalTheme, mergeTheme, themeOptions, themes } from './themes/index.js';
3
+ export { colorScheme, cssVarKey, customColorKey, defineTheme, getThemes, globalTheme, themeOptions } from './themes/index.js';
4
4
  export { default as presetPubinfo } from './unocss/index.js';
5
5
  import '@antfu/eslint-config';
6
6
  import 'unocss';
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  export { p as eslint } from './shared/config.D4FYsBnQ.mjs';
2
2
  export { default as stylelint } from './stylelint.mjs';
3
- export { customColorKey, defineTheme, mergeTheme, themes } from './themes/index.mjs';
3
+ export { customColorKey, defineTheme, getThemes } from './themes/index.mjs';
4
4
  export { default as presetPubinfo } from './unocss/index.mjs';
5
5
  import '@antfu/eslint-config';
6
6
  import 'unocss';
@@ -21,9 +21,7 @@ declare const customColorKey: readonly ["--ui-primary", "--ui-text"];
21
21
  interface globalTheme {
22
22
  [key: string]: colorScheme;
23
23
  }
24
- declare function mergeTheme(themes: globalTheme[]): globalTheme;
24
+ declare function getThemes(): globalTheme;
25
25
  declare function defineTheme(theme: themeOptions): globalTheme;
26
26
 
27
- declare const themes: globalTheme;
28
-
29
- export { type colorScheme, type cssVarKey, customColorKey, defineTheme, type globalTheme, mergeTheme, type themeOptions, themes };
27
+ export { type colorScheme, type cssVarKey, customColorKey, defineTheme, getThemes, type globalTheme, type themeOptions };
@@ -21,9 +21,7 @@ declare const customColorKey: readonly ["--ui-primary", "--ui-text"];
21
21
  interface globalTheme {
22
22
  [key: string]: colorScheme;
23
23
  }
24
- declare function mergeTheme(themes: globalTheme[]): globalTheme;
24
+ declare function getThemes(): globalTheme;
25
25
  declare function defineTheme(theme: themeOptions): globalTheme;
26
26
 
27
- declare const themes: globalTheme;
28
-
29
- export { type colorScheme, type cssVarKey, customColorKey, defineTheme, type globalTheme, mergeTheme, type themeOptions, themes };
27
+ export { type colorScheme, type cssVarKey, customColorKey, defineTheme, getThemes, type globalTheme, type themeOptions };
@@ -36,9 +36,9 @@ function parseHexColor(str) {
36
36
  }
37
37
 
38
38
  const customColorKey = ["--ui-primary", "--ui-text"];
39
- function mergeTheme(themes) {
40
- const themeColor = Object.assign({}, ...themes);
41
- return themeColor;
39
+ let themeColorMap = {};
40
+ function getThemes() {
41
+ return themeColorMap;
42
42
  }
43
43
  function normalizeColor(colors) {
44
44
  for (const key of customColorKey) {
@@ -51,10 +51,11 @@ function defineTheme(theme) {
51
51
  const { name, colors } = theme;
52
52
  const colorScheme = /* @__PURE__ */ Object.create(null);
53
53
  colorScheme[name] = normalizeColor(colors);
54
+ themeColorMap = Object.assign(themeColorMap, colorScheme);
54
55
  return colorScheme;
55
56
  }
56
57
 
57
- const dark = defineTheme({
58
+ defineTheme({
58
59
  name: "dark",
59
60
  colors: {
60
61
  "label": "\u58A8\u591C\u5E7D",
@@ -100,7 +101,7 @@ const dark = defineTheme({
100
101
  }
101
102
  });
102
103
 
103
- const dracula = defineTheme({
104
+ defineTheme({
104
105
  name: "dracula",
105
106
  colors: {
106
107
  "label": "\u6697\u84DD\u79D8",
@@ -146,7 +147,7 @@ const dracula = defineTheme({
146
147
  }
147
148
  });
148
149
 
149
- const luxury = defineTheme({
150
+ defineTheme({
150
151
  name: "luxury",
151
152
  colors: {
152
153
  "label": "\u91D1\u534E\u4E3D",
@@ -192,7 +193,7 @@ const luxury = defineTheme({
192
193
  }
193
194
  });
194
195
 
195
- const night = defineTheme({
196
+ defineTheme({
196
197
  name: "night",
197
198
  colors: {
198
199
  "label": "\u591C\u84DD\u68A6",
@@ -238,7 +239,7 @@ const night = defineTheme({
238
239
  }
239
240
  });
240
241
 
241
- const stone = defineTheme({
242
+ defineTheme({
242
243
  name: "stone",
243
244
  colors: {
244
245
  "label": "\u77F3\u9752\u6DA6",
@@ -284,7 +285,7 @@ const stone = defineTheme({
284
285
  }
285
286
  });
286
287
 
287
- const synthwave = defineTheme({
288
+ defineTheme({
288
289
  name: "synthwave",
289
290
  colors: {
290
291
  "label": "\u7D2B\u7535\u6D41",
@@ -330,7 +331,7 @@ const synthwave = defineTheme({
330
331
  }
331
332
  });
332
333
 
333
- const barbie = defineTheme({
334
+ defineTheme({
334
335
  name: "barbie",
335
336
  colors: {
336
337
  "label": "\u68A6\u9732\u7C89",
@@ -376,7 +377,7 @@ const barbie = defineTheme({
376
377
  }
377
378
  });
378
379
 
379
- const classic = defineTheme({
380
+ defineTheme({
380
381
  name: "classic",
381
382
  colors: {
382
383
  "label": "\u84DD\u53E4\u96C5",
@@ -422,7 +423,7 @@ const classic = defineTheme({
422
423
  }
423
424
  });
424
425
 
425
- const cyberpunk = defineTheme({
426
+ defineTheme({
426
427
  name: "cyberpunk",
427
428
  colors: {
428
429
  "label": "\u9EC4\u672A\u6765",
@@ -468,7 +469,7 @@ const cyberpunk = defineTheme({
468
469
  }
469
470
  });
470
471
 
471
- const light = defineTheme({
472
+ defineTheme({
472
473
  name: "light",
473
474
  colors: {
474
475
  "label": "\u5E7D\u5F71\u9ED1",
@@ -514,7 +515,7 @@ const light = defineTheme({
514
515
  }
515
516
  });
516
517
 
517
- const naive = defineTheme({
518
+ defineTheme({
518
519
  name: "naive",
519
520
  colors: {
520
521
  "label": "\u9752\u5B87\u53E4",
@@ -560,7 +561,7 @@ const naive = defineTheme({
560
561
  }
561
562
  });
562
563
 
563
- const winter = defineTheme({
564
+ defineTheme({
564
565
  name: "winter",
565
566
  colors: {
566
567
  "label": "\u51B0\u96EA\u84DD",
@@ -606,21 +607,4 @@ const winter = defineTheme({
606
607
  }
607
608
  });
608
609
 
609
- const themes = mergeTheme([
610
- // --亮色主题--
611
- light,
612
- classic,
613
- naive,
614
- barbie,
615
- winter,
616
- cyberpunk,
617
- // --暗色主题--
618
- dark,
619
- dracula,
620
- night,
621
- luxury,
622
- synthwave,
623
- stone
624
- ]);
625
-
626
- export { customColorKey, defineTheme, mergeTheme, themes };
610
+ export { customColorKey, defineTheme, getThemes };
@@ -1,5 +1,8 @@
1
1
  import * as unocss from 'unocss';
2
+ import { globalTheme } from '../themes/index.mjs';
2
3
 
3
- declare const _default: unocss.PresetFactory<object, undefined>;
4
+ declare const _default: unocss.PresetFactory<object, {
5
+ themes?: globalTheme[];
6
+ }>;
4
7
 
5
8
  export { _default as default };
@@ -1,5 +1,8 @@
1
1
  import * as unocss from 'unocss';
2
+ import { globalTheme } from '../themes/index.js';
2
3
 
3
- declare const _default: unocss.PresetFactory<object, undefined>;
4
+ declare const _default: unocss.PresetFactory<object, {
5
+ themes?: globalTheme[];
6
+ }>;
4
7
 
5
8
  export { _default as default };
@@ -1,6 +1,6 @@
1
1
  import { definePreset as definePreset$1, transformerDirectives, presetUno, presetAttributify, presetTypography, presetIcons } from 'unocss';
2
2
  import { definePreset, entriesToCss, toArray } from '@unocss/core';
3
- import { themes } from '../themes/index.mjs';
3
+ import { getThemes } from '../themes/index.mjs';
4
4
 
5
5
  const suffix = [["", " *", "::before", "::after"], ["::backdrop"]];
6
6
  function createCssVar(key, themeName) {
@@ -19,10 +19,15 @@ function createCssVar(key, themeName) {
19
19
  };
20
20
  return map[key](themeName);
21
21
  }
22
- function normalizePreflights() {
22
+ function mergeTheme(themes) {
23
+ const themeColor = Object.assign({}, ...themes);
24
+ return themeColor;
25
+ }
26
+ function normalizePreflights(_themes = []) {
23
27
  return {
24
28
  getCSS: () => {
25
29
  const injectionCss = [];
30
+ const themes = Object.assign(getThemes(), mergeTheme(_themes));
26
31
  Object.keys(themes).forEach((key) => {
27
32
  delete themes[key].label;
28
33
  const css = entriesToCss(Object.entries(themes[key]));
@@ -36,20 +41,20 @@ function normalizePreflights() {
36
41
  }
37
42
  };
38
43
  }
39
- const presetThemes = definePreset(() => {
44
+ const presetThemes = definePreset((options) => {
40
45
  return {
41
46
  name: "@wsys/preset-themes",
42
47
  preflights: [
43
- normalizePreflights()
48
+ normalizePreflights(options?.themes)
44
49
  ]
45
50
  };
46
51
  });
47
52
 
48
- const index = definePreset$1(() => {
53
+ const index = definePreset$1((options) => {
49
54
  return {
50
55
  name: "preset-pubinfo",
51
56
  presets: [
52
- presetThemes(),
57
+ presetThemes({ themes: options?.themes }),
53
58
  presetUno(),
54
59
  presetAttributify(),
55
60
  presetTypography(),
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pubinfo/config",
3
3
  "type": "module",
4
- "version": "2.0.0-beta.25",
4
+ "version": "2.0.0-beta.27",
5
5
  "exports": {
6
6
  ".": {
7
7
  "types": "./dist/index.d.ts",
@@ -28,7 +28,8 @@
28
28
  "module": "./dist/index.mjs",
29
29
  "types": "./dist/index.d.ts",
30
30
  "files": [
31
- "dist"
31
+ "dist",
32
+ "src"
32
33
  ],
33
34
  "peerDependencies": {
34
35
  "eslint": "^9.21.0",
@@ -0,0 +1,10 @@
1
+ import type { TypedFlatConfigItem } from '@antfu/eslint-config';
2
+ import { GLOB_EXCLUDE } from '../globs';
3
+
4
+ export async function ignores(): Promise<TypedFlatConfigItem[]> {
5
+ return [
6
+ {
7
+ ignores: GLOB_EXCLUDE,
8
+ },
9
+ ];
10
+ }
@@ -0,0 +1,21 @@
1
+ import type { TypedFlatConfigItem } from '@antfu/eslint-config';
2
+
3
+ export async function stylistic(): Promise<TypedFlatConfigItem[]> {
4
+ return [
5
+ {
6
+ rules: {
7
+ 'eslint-comments/no-unlimited-disable': 'off',
8
+ 'curly': ['error', 'all'],
9
+ 'antfu/consistent-list-newline': 'off',
10
+ 'regexp/no-unused-capturing-group': 'off',
11
+ 'unused-imports/no-unused-vars': 'off',
12
+ 'unicorn/consistent-function-scoping': 'off',
13
+ },
14
+ },
15
+ {
16
+ rules: {
17
+ 'style/semi': ['error', 'always'],
18
+ },
19
+ },
20
+ ];
21
+ }
@@ -0,0 +1,54 @@
1
+ import type { TypedFlatConfigItem } from '@antfu/eslint-config';
2
+
3
+ export async function vue(): Promise<TypedFlatConfigItem[]> {
4
+ return [
5
+ {
6
+ files: [
7
+ '**/*.vue',
8
+ ],
9
+ rules: {
10
+ 'vue/block-order': ['error', {
11
+ order: [
12
+ 'route',
13
+ 'i18n',
14
+ 'script',
15
+ 'template',
16
+ 'style',
17
+ ],
18
+ }],
19
+ 'vue/component-api-style': ['error',
20
+ ['script-setup', 'composition'],
21
+ ],
22
+ 'vue/match-component-import-name': ['error'],
23
+ 'vue/new-line-between-multi-line-property': ['error'],
24
+ 'vue/no-empty-component-block': ['error'],
25
+ 'vue/no-potential-component-option-typo': ['error', {
26
+ presets: ['all'],
27
+ }],
28
+ 'vue/prefer-define-options': ['error'],
29
+ 'vue/valid-define-options': ['error'],
30
+ 'vue/require-macro-variable-name': ['error', {
31
+ defineProps: 'props',
32
+ defineEmits: 'emit',
33
+ defineSlots: 'slots',
34
+ useSlots: 'slots',
35
+ useAttrs: 'attrs',
36
+ }],
37
+ 'vue/no-unused-emit-declarations': ['error'],
38
+ 'vue/attribute-hyphenation': [
39
+ 'warn',
40
+ 'always',
41
+ {},
42
+ ],
43
+ },
44
+ },
45
+ {
46
+ files: [
47
+ '**/views/**/*.vue',
48
+ ],
49
+ rules: {
50
+ 'vue/no-multiple-template-root': ['error'],
51
+ },
52
+ },
53
+ ];
54
+ }
@@ -0,0 +1,20 @@
1
+ import type { TypedFlatConfigItem } from '@antfu/eslint-config';
2
+
3
+ import antfu from '@antfu/eslint-config';
4
+ import { ignores } from './config/ignores';
5
+ import { stylistic } from './config/stylistic';
6
+ import { vue } from './config/vue';
7
+
8
+ export async function pubinfo(
9
+ ...userConfigs: Parameters<typeof antfu>[1][]
10
+ ): Promise<TypedFlatConfigItem[]> {
11
+ return antfu(
12
+ {
13
+ unocss: false,
14
+ },
15
+ vue(),
16
+ stylistic(),
17
+ ignores(),
18
+ ...userConfigs,
19
+ );
20
+ }
@@ -0,0 +1,86 @@
1
+ export const GLOB_SRC_EXT = '?([cm])[jt]s?(x)';
2
+ export const GLOB_SRC = '**/*.?([cm])[jt]s?(x)';
3
+
4
+ export const GLOB_JS = '**/*.?([cm])js';
5
+ export const GLOB_JSX = '**/*.?([cm])jsx';
6
+
7
+ export const GLOB_TS = '**/*.?([cm])ts';
8
+ export const GLOB_TSX = '**/*.?([cm])tsx';
9
+
10
+ export const GLOB_STYLE = '**/*.{c,le,sc}ss';
11
+ export const GLOB_CSS = '**/*.css';
12
+ export const GLOB_POSTCSS = '**/*.{p,post}css';
13
+ export const GLOB_LESS = '**/*.less';
14
+ export const GLOB_SCSS = '**/*.scss';
15
+
16
+ export const GLOB_JSON = '**/*.json';
17
+ export const GLOB_JSON5 = '**/*.json5';
18
+ export const GLOB_JSONC = '**/*.jsonc';
19
+
20
+ export const GLOB_MARKDOWN = '**/*.md';
21
+ export const GLOB_MARKDOWN_IN_MARKDOWN = '**/*.md/*.md';
22
+ export const GLOB_SVELTE = '**/*.svelte';
23
+ export const GLOB_VUE = '**/*.vue';
24
+ export const GLOB_YAML = '**/*.y?(a)ml';
25
+ export const GLOB_TOML = '**/*.toml';
26
+ export const GLOB_HTML = '**/*.htm?(l)';
27
+
28
+ export const GLOB_MARKDOWN_CODE = `${GLOB_MARKDOWN}/${GLOB_SRC}`;
29
+
30
+ export const GLOB_TESTS = [
31
+ `**/__tests__/**/*.${GLOB_SRC_EXT}`,
32
+ `**/*.spec.${GLOB_SRC_EXT}`,
33
+ `**/*.test.${GLOB_SRC_EXT}`,
34
+ `**/*.bench.${GLOB_SRC_EXT}`,
35
+ `**/*.benchmark.${GLOB_SRC_EXT}`,
36
+ ];
37
+
38
+ export const GLOB_ALL_SRC = [
39
+ GLOB_SRC,
40
+ GLOB_STYLE,
41
+ GLOB_JSON,
42
+ GLOB_JSON5,
43
+ GLOB_MARKDOWN,
44
+ GLOB_SVELTE,
45
+ GLOB_VUE,
46
+ GLOB_YAML,
47
+ GLOB_HTML,
48
+ ];
49
+
50
+ export const GLOB_EXCLUDE = [
51
+ '**/node_modules',
52
+ '**/dist',
53
+ '**/package-lock.json',
54
+ '**/yarn.lock',
55
+ '**/pnpm-lock.yaml',
56
+ '**/bun.lockb',
57
+
58
+ '**/output',
59
+ '**/coverage',
60
+ '**/temp',
61
+ '**/.temp',
62
+ '**/tmp',
63
+ '**/.tmp',
64
+ '**/.history',
65
+ '**/.vitepress/cache',
66
+ '**/.nuxt',
67
+ '**/.next',
68
+ '**/.vercel',
69
+ '**/.changeset',
70
+ '**/.idea',
71
+ '**/.cache',
72
+ '**/.output',
73
+ '**/.vite-inspect',
74
+ '**/es',
75
+ '**/lib',
76
+
77
+ '**/CHANGELOG*.md',
78
+ '**/*.min.*',
79
+ '**/LICENSE*',
80
+ '**/__snapshots__',
81
+ '**/auto-import?(s).d.ts',
82
+ '**/components.d.ts',
83
+ '**/*.cjs',
84
+ '**/*.mjs',
85
+ '**/assets/**/*.json',
86
+ ];
@@ -0,0 +1,3 @@
1
+ import { pubinfo } from './factory';
2
+
3
+ export default pubinfo;
package/src/index.ts ADDED
@@ -0,0 +1,4 @@
1
+ export { default as eslint } from './eslint';
2
+ export { default as stylelint } from './stylelint';
3
+ export * from './themes';
4
+ export { default as presetPubinfo } from './unocss';
@@ -0,0 +1,135 @@
1
+ export default {
2
+ extends: [
3
+ 'stylelint-config-recess-order',
4
+ ],
5
+ plugins: [
6
+ 'stylelint-scss',
7
+ '@stylistic/stylelint-plugin',
8
+ ],
9
+ overrides: [
10
+ {
11
+ files: ['**/*.(css|html|vue)'],
12
+ customSyntax: 'postcss-html',
13
+ },
14
+ {
15
+ files: ['*.less', '**/*.less'],
16
+ customSyntax: 'postcss-less',
17
+ extends: ['stylelint-config-standard-less', 'stylelint-config-standard-vue'],
18
+ },
19
+ {
20
+ files: ['*.scss', '**/*.scss'],
21
+ customSyntax: 'postcss-scss',
22
+ extends: ['stylelint-config-standard-scss', 'stylelint-config-standard-vue/scss'],
23
+ rule: {
24
+ 'scss/double-slash-comment-empty-line-before': null,
25
+ 'scss/no-global-function-names': null,
26
+ },
27
+ },
28
+ ],
29
+ rules: {
30
+ 'at-rule-no-unknown': null,
31
+ 'no-descending-specificity': null,
32
+ 'property-no-unknown': null,
33
+ 'font-family-no-missing-generic-family-keyword': null,
34
+ 'selector-class-pattern': null,
35
+ 'function-no-unknown': [
36
+ true,
37
+ {
38
+ ignoreFunctions: [
39
+ 'v-bind',
40
+ 'map-get',
41
+ 'lighten',
42
+ 'darken',
43
+ ],
44
+ },
45
+ ],
46
+ 'selector-pseudo-element-no-unknown': [
47
+ true,
48
+ {
49
+ ignorePseudoElements: [
50
+ '/^view-transition/',
51
+ ],
52
+ },
53
+ ],
54
+ // 提取自 https://github.com/elirasza/stylelint-stylistic/blob/main/config/index.js
55
+ '@stylistic/at-rule-name-case': 'lower',
56
+ '@stylistic/at-rule-name-space-after': 'always-single-line',
57
+ '@stylistic/at-rule-semicolon-newline-after': 'always',
58
+ '@stylistic/block-closing-brace-empty-line-before': 'never',
59
+ '@stylistic/block-closing-brace-newline-before': 'always-multi-line',
60
+ '@stylistic/block-closing-brace-space-before': 'always-single-line',
61
+ '@stylistic/block-opening-brace-newline-after': 'always-multi-line',
62
+ '@stylistic/block-opening-brace-space-after': 'always-single-line',
63
+ '@stylistic/block-opening-brace-space-before': 'always',
64
+ '@stylistic/color-hex-case': 'lower',
65
+ '@stylistic/declaration-bang-space-after': 'never',
66
+ '@stylistic/declaration-bang-space-before': 'always',
67
+ '@stylistic/declaration-block-semicolon-newline-after': 'always-multi-line',
68
+ '@stylistic/declaration-block-semicolon-space-after': 'always-single-line',
69
+ '@stylistic/declaration-block-semicolon-space-before': 'never',
70
+ '@stylistic/declaration-block-trailing-semicolon': 'always',
71
+ '@stylistic/declaration-colon-newline-after': 'always-multi-line',
72
+ '@stylistic/declaration-colon-space-after': 'always-single-line',
73
+ '@stylistic/declaration-colon-space-before': 'never',
74
+ '@stylistic/function-comma-newline-after': 'always-multi-line',
75
+ '@stylistic/function-comma-space-after': 'always-single-line',
76
+ '@stylistic/function-comma-space-before': 'never',
77
+ '@stylistic/function-max-empty-lines': 0,
78
+ '@stylistic/function-parentheses-newline-inside': 'always-multi-line',
79
+ '@stylistic/function-parentheses-space-inside': 'never-single-line',
80
+ '@stylistic/function-whitespace-after': 'always',
81
+ '@stylistic/indentation': 2,
82
+ '@stylistic/max-empty-lines': 1,
83
+ '@stylistic/media-feature-colon-space-after': 'always',
84
+ '@stylistic/media-feature-colon-space-before': 'never',
85
+ '@stylistic/media-feature-name-case': 'lower',
86
+ '@stylistic/media-feature-parentheses-space-inside': 'never',
87
+ '@stylistic/media-feature-range-operator-space-after': 'always',
88
+ '@stylistic/media-feature-range-operator-space-before': 'always',
89
+ '@stylistic/media-query-list-comma-newline-after': 'always-multi-line',
90
+ '@stylistic/media-query-list-comma-space-after': 'always-single-line',
91
+ '@stylistic/media-query-list-comma-space-before': 'never',
92
+ '@stylistic/no-empty-first-line': true,
93
+ '@stylistic/no-eol-whitespace': true,
94
+ '@stylistic/no-extra-semicolons': true,
95
+ '@stylistic/no-missing-end-of-source-newline': true,
96
+ '@stylistic/number-leading-zero': 'always',
97
+ '@stylistic/number-no-trailing-zeros': true,
98
+ '@stylistic/property-case': 'lower',
99
+ '@stylistic/selector-attribute-brackets-space-inside': 'never',
100
+ '@stylistic/selector-attribute-operator-space-after': 'never',
101
+ '@stylistic/selector-attribute-operator-space-before': 'never',
102
+ '@stylistic/selector-combinator-space-after': 'always',
103
+ '@stylistic/selector-combinator-space-before': 'always',
104
+ '@stylistic/selector-descendant-combinator-no-non-space': true,
105
+ '@stylistic/selector-list-comma-newline-after': 'always',
106
+ '@stylistic/selector-list-comma-space-before': 'never',
107
+ '@stylistic/selector-max-empty-lines': 0,
108
+ '@stylistic/selector-pseudo-class-case': 'lower',
109
+ '@stylistic/selector-pseudo-class-parentheses-space-inside': 'never',
110
+ '@stylistic/selector-pseudo-element-case': 'lower',
111
+ '@stylistic/string-quotes': 'double',
112
+ '@stylistic/unit-case': 'lower',
113
+ '@stylistic/value-list-comma-newline-after': 'always-multi-line',
114
+ '@stylistic/value-list-comma-space-after': 'always-single-line',
115
+ '@stylistic/value-list-comma-space-before': 'never',
116
+ '@stylistic/value-list-max-empty-lines': 0,
117
+ // 根据需要覆盖部分规则
118
+ '@stylistic/max-line-length': null,
119
+ '@stylistic/block-closing-brace-newline-after': [
120
+ 'always',
121
+ {
122
+ ignoreAtRules: ['if', 'else'],
123
+ },
124
+ ],
125
+ },
126
+ allowEmptyInput: true,
127
+ ignoreFiles: [
128
+ '**/node_modules/**/*',
129
+ '**/dist*/**/*',
130
+ '**/src/assets/fonts/**/*',
131
+ '**/*.cjs',
132
+ '**/*.ejs',
133
+ '**/.pubinfo/**/*',
134
+ ],
135
+ };
@@ -0,0 +1,3 @@
1
+ import './theme';
2
+
3
+ export * from './utils';