@culur/config-stylelint 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/.stylelintignore +218 -34
  2. package/CHANGELOG.md +32 -0
  3. package/dist/{chunk-7MXAEVIH.js → chunk-4CDCPLVG.js} +3 -3
  4. package/dist/{chunk-7MXAEVIH.js.map → chunk-4CDCPLVG.js.map} +1 -1
  5. package/dist/chunk-6VM4JLMD.cjs +14 -0
  6. package/dist/{chunk-VILYU6GB.cjs.map → chunk-6VM4JLMD.cjs.map} +1 -1
  7. package/dist/chunk-ASB7XXVH.cjs +14 -0
  8. package/dist/{chunk-25GAG7VZ.cjs.map → chunk-ASB7XXVH.cjs.map} +1 -1
  9. package/dist/{chunk-BUXFTQGN.js → chunk-D5GIA3J2.js} +3 -3
  10. package/dist/{chunk-BUXFTQGN.js.map → chunk-D5GIA3J2.js.map} +1 -1
  11. package/dist/chunk-DBVDBZNI.cjs +14 -0
  12. package/dist/{chunk-OGKNAGXF.cjs.map → chunk-DBVDBZNI.cjs.map} +1 -1
  13. package/dist/chunk-DQIMRV7D.cjs +14 -0
  14. package/dist/{chunk-7HEUVQEH.cjs.map → chunk-DQIMRV7D.cjs.map} +1 -1
  15. package/dist/chunk-F4PRQYTF.cjs +14 -0
  16. package/dist/{chunk-Y6Z2IDP7.cjs.map → chunk-F4PRQYTF.cjs.map} +1 -1
  17. package/dist/{chunk-A7OLAKMM.cjs → chunk-GARXFY3Y.cjs} +4 -4
  18. package/dist/{chunk-A7OLAKMM.cjs.map → chunk-GARXFY3Y.cjs.map} +1 -1
  19. package/dist/{chunk-C27K4OM4.js → chunk-GLQEXVMX.js} +3 -3
  20. package/dist/{chunk-C27K4OM4.js.map → chunk-GLQEXVMX.js.map} +1 -1
  21. package/dist/{chunk-7GVP73HJ.js → chunk-HEFGHOWK.js} +3 -3
  22. package/dist/{chunk-7GVP73HJ.js.map → chunk-HEFGHOWK.js.map} +1 -1
  23. package/dist/chunk-HXDUHBH2.cjs +14 -0
  24. package/dist/{chunk-3EXGA24H.cjs.map → chunk-HXDUHBH2.cjs.map} +1 -1
  25. package/dist/{chunk-6TFCLJEL.js → chunk-JLYFDT7L.js} +3 -3
  26. package/dist/{chunk-6TFCLJEL.js.map → chunk-JLYFDT7L.js.map} +1 -1
  27. package/dist/chunk-MK6HPYUQ.cjs +14 -0
  28. package/dist/{chunk-C64I73TJ.cjs.map → chunk-MK6HPYUQ.cjs.map} +1 -1
  29. package/dist/{chunk-DCLB4SF5.cjs → chunk-Q7QKY37B.cjs} +60 -50
  30. package/dist/chunk-Q7QKY37B.cjs.map +1 -0
  31. package/dist/{chunk-OHYFOP6B.js → chunk-QDVVH7TK.js} +3 -3
  32. package/dist/{chunk-OHYFOP6B.js.map → chunk-QDVVH7TK.js.map} +1 -1
  33. package/dist/{chunk-DHBMZYEQ.js → chunk-R5QD3X2T.js} +3 -3
  34. package/dist/{chunk-DHBMZYEQ.js.map → chunk-R5QD3X2T.js.map} +1 -1
  35. package/dist/{chunk-IYMC4Z7C.js → chunk-TMAQPDZS.js} +3 -3
  36. package/dist/{chunk-IYMC4Z7C.js.map → chunk-TMAQPDZS.js.map} +1 -1
  37. package/dist/{chunk-RGZTVH2G.js → chunk-YP6HM3ZU.js} +60 -50
  38. package/dist/chunk-YP6HM3ZU.js.map +1 -0
  39. package/dist/factory.cjs +2 -2
  40. package/dist/factory.js +1 -1
  41. package/dist/shareable-configs/auto.cjs +3 -3
  42. package/dist/shareable-configs/auto.js +2 -2
  43. package/dist/shareable-configs/none.cjs +3 -3
  44. package/dist/shareable-configs/none.js +2 -2
  45. package/dist/shareable-configs/sass-vue.cjs +3 -3
  46. package/dist/shareable-configs/sass-vue.js +2 -2
  47. package/dist/shareable-configs/sass.cjs +3 -3
  48. package/dist/shareable-configs/sass.js +2 -2
  49. package/dist/shareable-configs/tailwind-sass-vue.cjs +3 -3
  50. package/dist/shareable-configs/tailwind-sass-vue.js +2 -2
  51. package/dist/shareable-configs/tailwind-sass.cjs +3 -3
  52. package/dist/shareable-configs/tailwind-sass.js +2 -2
  53. package/dist/shareable-configs/tailwind.cjs +3 -3
  54. package/dist/shareable-configs/tailwind.js +2 -2
  55. package/dist/shareable-configs/vue.cjs +3 -3
  56. package/dist/shareable-configs/vue.js +2 -2
  57. package/package.json +5 -5
  58. package/src/configs/css.ts +1 -0
  59. package/src/rules/order.ts +40 -62
  60. package/dist/chunk-25GAG7VZ.cjs +0 -14
  61. package/dist/chunk-3EXGA24H.cjs +0 -14
  62. package/dist/chunk-7HEUVQEH.cjs +0 -14
  63. package/dist/chunk-C64I73TJ.cjs +0 -14
  64. package/dist/chunk-DCLB4SF5.cjs.map +0 -1
  65. package/dist/chunk-OGKNAGXF.cjs +0 -14
  66. package/dist/chunk-RGZTVH2G.js.map +0 -1
  67. package/dist/chunk-VILYU6GB.cjs +0 -14
  68. package/dist/chunk-Y6Z2IDP7.cjs +0 -14
@@ -1,5 +1,5 @@
1
- export { vue_default as default } from '../chunk-BUXFTQGN.js';
2
- import '../chunk-RGZTVH2G.js';
1
+ export { vue_default as default } from '../chunk-D5GIA3J2.js';
2
+ import '../chunk-YP6HM3ZU.js';
3
3
  import '../chunk-6KBIBHQC.js';
4
4
  //# sourceMappingURL=vue.js.map
5
5
  //# sourceMappingURL=vue.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@culur/config-stylelint",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "Culur's stylelint configuration",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -76,19 +76,19 @@
76
76
  "stylelint-config-standard-scss": "^13.1.0",
77
77
  "stylelint-config-standard-vue": "^1.0.0",
78
78
  "stylelint-order": "^6.0.4",
79
- "stylelint-scss": "^6.6.0",
79
+ "stylelint-scss": "^6.7.0",
80
80
  "stylelint-selector-bem-pattern": "^4.0.1",
81
81
  "@culur/utils-packages": "1.1.0"
82
82
  },
83
83
  "devDependencies": {
84
84
  "dedent": "^1.5.3",
85
- "postcss": "^8.4.45",
85
+ "postcss": "^8.4.47",
86
86
  "postcss-html": "^1.7.0",
87
87
  "postcss-sass": "^0.5.0",
88
88
  "postcss-scss": "^4.0.9",
89
- "@culur/config-tsup": "1.2.0",
89
+ "@culur/config-tsup": "1.2.1",
90
90
  "@culur/config-typescript": "1.1.0",
91
- "@culur/config-vite": "1.1.0"
91
+ "@culur/config-vite": "1.1.1"
92
92
  },
93
93
  "peerDependencies": {
94
94
  "stylelint": ">=16.0.0"
@@ -13,5 +13,6 @@ export const configCss = (packages: Partial<Packages>): Config => ({
13
13
  ...declarationBlockNoRedundantLonghandProperties,
14
14
  ...functionNoUnknown(packages),
15
15
  ...order(packages),
16
+ 'declaration-empty-line-before': null,
16
17
  },
17
18
  });
@@ -30,73 +30,51 @@ interface SecondaryOptions {
30
30
  unspecified?: 'top' | 'bottom' | 'ignore';
31
31
  }
32
32
 
33
- /**
34
- * https://sass-lang.com/documentation/at-rules
35
- */
36
- const atRuleScssImport: PrimaryOption = [
37
- { type: 'at-rule', name: 'use' },
38
- { type: 'at-rule', name: 'forward' },
39
- { type: 'at-rule', name: 'import' },
40
- ];
41
- const atRuleScss: PrimaryOption = [
42
- { type: 'at-rule', name: 'function' },
43
- { type: 'at-rule', name: 'mixin' },
44
- { type: 'at-rule', name: 'extend' },
45
- { type: 'at-rule', name: 'include' },
46
- { type: 'at-rule', name: 'at-root' },
47
- ];
33
+ const definePrimaryOption = (
34
+ ...options: (PrimaryOption[number] | false | undefined)[]
35
+ ) => options.filter((option): option is PrimaryOption[number] => !!option);
48
36
 
49
- const variables: PrimaryOption = [
50
- 'dollar-variables', // $variable
51
- 'at-variables', // @variable
52
- 'custom-properties', // --property: 10px
53
- ];
37
+ export const orderRule = (packages: Partial<Packages>) =>
38
+ defineRule<PrimaryOption, SecondaryOptions>([
39
+ definePrimaryOption(
40
+ //! import
41
+ packages.sass && { type: 'at-rule', name: 'use' }, // scss: @use 'path/path';
42
+ packages.sass && { type: 'at-rule', name: 'forward' }, // scss: @forward 'path/path';
43
+ packages.sass && { type: 'at-rule', name: 'import' }, // scss: @import 'path/path';
54
44
 
55
- /**
56
- * https://tailwindcss.com/docs/functions-and-directives
57
- */
58
- const atRuleTailwind: PrimaryOption = [
59
- { type: 'at-rule', name: 'tailwind' },
60
- { type: 'at-rule', name: 'layer' },
61
- { type: 'at-rule', name: 'apply' },
62
- { type: 'at-rule', name: 'config' },
63
- ];
45
+ //! root
46
+ packages.tailwind && { type: 'at-rule', name: 'config' }, // tailwind v3: @config 'tailwind.custom.config.js'
47
+ packages.tailwind && { type: 'at-rule', name: 'tailwind' }, // tailwind v3: @tailwind base;
48
+ packages.tailwind && { type: 'at-rule', name: 'layer' }, // tailwind v3: @layer base {}
64
49
 
65
- /**
66
- * https://v2.tailwindcss.com/docs/functions-and-directives
67
- *
68
- * backwards compatible for v2
69
- */
70
- const atRuleTailwindV2: PrimaryOption = [
71
- { type: 'at-rule', name: 'variants' },
72
- { type: 'at-rule', name: 'responsive' },
73
- { type: 'at-rule', name: 'screen' },
74
- ];
50
+ //! variables
51
+ 'dollar-variables', // css: $variable: 10px;
52
+ 'at-variables', // css: @variable: 10px;
53
+ { type: 'at-rule', hasBlock: false }, // css: @variable: 10px;
54
+ 'custom-properties', // css: --property: 10px;
75
55
 
76
- /**
77
- * Nested rules (e.g. a { span {} })
78
- */
79
- const rules: PrimaryOption = [
80
- {
81
- type: 'rule',
82
- selector: /^&::[\w-]+/,
83
- },
84
- 'rules',
85
- ];
56
+ //! functions, methods
57
+ packages.sass && { type: 'at-rule', name: 'function' }, // scss: @function sum() {}
58
+ packages.sass && { type: 'at-rule', name: 'mixin' }, // scss: @mixin mixin-name {}
86
59
 
87
- export const orderRule = (packages: Partial<Packages>) =>
88
- defineRule<PrimaryOption, SecondaryOptions>([
89
- [
90
- ...(packages.sass ? atRuleScssImport : []),
91
- ...(packages.tailwind ? atRuleTailwind : []),
92
- ...variables,
93
- ...(packages.sass ? atRuleScss : []),
94
- ...(packages.tailwind ? atRuleTailwindV2 : []),
95
- 'at-rules',
96
- 'less-mixins',
97
- 'declarations',
98
- ...rules,
99
- ],
60
+ //! declarations
61
+ packages.sass && { type: 'at-rule', name: 'extend' }, // scss: @extend .class-name;
62
+ packages.sass && { type: 'at-rule', name: 'include' }, // scss: @include mixin-name;
63
+ packages.tailwind && { type: 'at-rule', name: 'apply' }, // tailwind v3: @apply p-3;
64
+ 'less-mixins', // less: .mixin();
65
+ 'declarations', // css: display: block;
66
+
67
+ //! block rules
68
+ { type: 'rule', selector: /^&::[\w-]+/ }, // css: &::after {}
69
+ 'rules', // css: child-component {}
70
+
71
+ //! blocks nested
72
+ packages.sass && { type: 'at-rule', name: 'at-root' }, // scss: @at-root selector { /* content */ }
73
+ packages.tailwind && { type: 'at-rule', name: 'responsive' }, // tailwind v2: @responsive {}
74
+ packages.tailwind && { type: 'at-rule', name: 'variants' }, // tailwind v2: @variants hover {}
75
+ packages.tailwind && { type: 'at-rule', name: 'screen' }, // tailwind v2: @screen sm {}
76
+ { type: 'at-rule', hasBlock: true }, // css: @media () {}
77
+ ),
100
78
  {
101
79
  unspecified: 'bottom',
102
80
  },
@@ -1,14 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkDCLB4SF5_cjs = require('./chunk-DCLB4SF5.cjs');
4
-
5
- // src/shareable-configs/tailwind.ts
6
- var tailwind_default = chunkDCLB4SF5_cjs.defineConfig({
7
- tailwind: true,
8
- sass: false,
9
- vue: false
10
- });
11
-
12
- exports.tailwind_default = tailwind_default;
13
- //# sourceMappingURL=chunk-25GAG7VZ.cjs.map
14
- //# sourceMappingURL=chunk-25GAG7VZ.cjs.map
@@ -1,14 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkDCLB4SF5_cjs = require('./chunk-DCLB4SF5.cjs');
4
-
5
- // src/shareable-configs/sass.ts
6
- var sass_default = chunkDCLB4SF5_cjs.defineConfig({
7
- tailwind: false,
8
- sass: true,
9
- vue: false
10
- });
11
-
12
- exports.sass_default = sass_default;
13
- //# sourceMappingURL=chunk-3EXGA24H.cjs.map
14
- //# sourceMappingURL=chunk-3EXGA24H.cjs.map
@@ -1,14 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkDCLB4SF5_cjs = require('./chunk-DCLB4SF5.cjs');
4
-
5
- // src/shareable-configs/tailwind-sass-vue.ts
6
- var tailwind_sass_vue_default = chunkDCLB4SF5_cjs.defineConfig({
7
- tailwind: true,
8
- sass: true,
9
- vue: true
10
- });
11
-
12
- exports.tailwind_sass_vue_default = tailwind_sass_vue_default;
13
- //# sourceMappingURL=chunk-7HEUVQEH.cjs.map
14
- //# sourceMappingURL=chunk-7HEUVQEH.cjs.map
@@ -1,14 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkDCLB4SF5_cjs = require('./chunk-DCLB4SF5.cjs');
4
-
5
- // src/shareable-configs/sass-vue.ts
6
- var sass_vue_default = chunkDCLB4SF5_cjs.defineConfig({
7
- tailwind: false,
8
- sass: true,
9
- vue: true
10
- });
11
-
12
- exports.sass_vue_default = sass_vue_default;
13
- //# sourceMappingURL=chunk-C64I73TJ.cjs.map
14
- //# sourceMappingURL=chunk-C64I73TJ.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/utils.ts","../src/rules/at-rule-no-unknown.ts","../src/rules/declaration-block-no-redundant-longhand-properties.ts","../src/rules/function-no-unknown.ts","../src/rules/order.ts","../src/configs/css.ts","../src/rules/dollar-variable-pattern.ts","../src/configs/scss.ts","../src/configs/shared.ts","../src/configs/vue.ts","../src/factory.ts"],"names":[],"mappings":"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","file":"chunk-DCLB4SF5.cjs","sourcesContent":["import type { Config, ConfigRuleSettings } from 'stylelint';\n\nexport type ConfigRulePrimaryOption =\n | boolean\n | number\n | string\n | Array<boolean | number | string | object>;\nexport type ConfigRuleSecondaryOptions = object;\n\nexport const defineRule = <\n PrimaryOption extends ConfigRulePrimaryOption,\n SecondaryOptions extends ConfigRuleSecondaryOptions,\n>(\n rule: ConfigRuleSettings<PrimaryOption, SecondaryOptions>,\n) => rule;\n\nexport const defineRules = <TRules extends Config['rules']>(rule: TRules) =>\n rule;\n\n// clone function mergeConfigs from stylelint repository\nexport const mergeConfigs = (\n ...configsOrNull: (Config | undefined | null | false)[]\n) => {\n const configs = configsOrNull.filter((c): c is Config => !!c);\n\n return {\n plugins: [...new Set(configs.flatMap(c => c.plugins ?? []))],\n overrides: [...new Set(configs.flatMap(c => c.overrides ?? []))],\n extends: configs\n .flatMap(c => c.extends ?? [])\n .filter((item, index, arr) => arr.lastIndexOf(item) === index),\n rules: configs.reduce(\n (acc, config) => ({ ...acc, ...config.rules }),\n {} as Config['rules'],\n ),\n ...configs.reduce(\n (\n acc,\n { plugins: _p, overrides: _o, extends: _e, rules: _r, ...config },\n ) => ({ ...acc, ...config }),\n {} as Config,\n ),\n };\n};\n","import type { Packages } from '@culur/utils-packages';\nimport { defineRule, defineRules } from '~/utils';\n\n// https://tailwindcss.com/docs/functions-and-directives\nconst directives = [\n 'tailwind',\n 'layer',\n 'apply',\n 'config',\n\n // https://v2.tailwindcss.com/docs/functions-and-directives\n // backwards compatible for v2\n 'variants',\n 'responsive',\n 'screen',\n];\n\nexport const atRuleNoUnknownRule = (packages: Partial<Packages>) =>\n defineRule<boolean, { ignoreAtRules: (string | RegExp)[] }>([\n true,\n { ignoreAtRules: packages.tailwind ? directives : [] },\n ]);\n\nexport const atRuleNoUnknownCSS = (packages: Partial<Packages>) =>\n defineRules({\n 'at-rule-no-unknown': atRuleNoUnknownRule(packages),\n });\n\nexport const atRuleNoUnknownSCSS = (packages: Partial<Packages>) =>\n defineRules({\n 'at-rule-no-unknown': null,\n 'scss/at-rule-no-unknown': atRuleNoUnknownRule(packages),\n });\n","import { defineRule, defineRules } from '~/utils';\n\nexport const declarationBlockNoRedundantLonghandPropertiesRule = defineRule<\n true,\n { ignoreShorthands?: (string | RegExp)[] }\n>([true, { ignoreShorthands: ['grid-template'] }]);\n\nexport const declarationBlockNoRedundantLonghandProperties = defineRules({\n 'declaration-block-no-redundant-longhand-properties':\n declarationBlockNoRedundantLonghandPropertiesRule,\n});\n","import type { Packages } from '@culur/utils-packages';\nimport { defineRule, defineRules } from '~/utils';\n\nexport function functionNoUnknownRule(packages: Partial<Packages>) {\n const ignoreFunctions = [\n // https://tailwindcss.com/docs/functions-and-directives#functions\n ...(packages.tailwind //\n ? ['theme', 'screen']\n : []),\n\n // https://sass-lang.com/documentation/modules/list\n // https://sass-lang.com/documentation/modules/math\n // https://sass-lang.com/documentation/modules/color\n ...(packages.sass //\n ? [/^(list|math|color)\\..+/]\n : []),\n\n // https://vuejs.org/api/sfc-css-features.html#v-bind-in-css\n ...(packages.vue //\n ? ['v-bind']\n : []),\n ];\n\n return defineRule<boolean, { ignoreFunctions: (string | RegExp)[] }>([\n true,\n ignoreFunctions.length > 0 //\n ? { ignoreFunctions }\n : { ignoreFunctions: [] },\n ]);\n}\n\nexport const functionNoUnknown = (packages: Partial<Packages>) =>\n defineRules({\n 'function-no-unknown': functionNoUnknownRule(packages),\n });\n","import type { Packages } from '@culur/utils-packages';\nimport { defineRule, defineRules } from '~/utils';\n\n// https://github.com/hudochenkov/stylelint-order/blob/master/rules/order/README.md#options\n\ntype Keyword =\n | 'custom-properties' /**/ // Custom properties (e.g. --property: 10px;)\n | 'dollar-variables' /***/ // Dollar variables (e.g. $variable)\n | 'at-variables' /*******/ // At-variables (e.g. @variable available in Less syntax)\n | 'declarations' /*******/ // CSS declarations (e.g. display: block)\n | 'rules' /**************/ // Nested rules (e.g. a { span {} })\n | 'at-rules' /***********/ // Nested at-rules (e.g. div { @media () {} })\n | 'less-mixins'; /*******/ // Mixins in Less syntax (e.g. .mixin();)\n\ninterface AtRule {\n type: 'at-rule';\n name?: string;\n parameter?: string | RegExp;\n hasBlock?: boolean;\n}\n\ninterface Rule {\n type: 'rule';\n selector?: string | RegExp;\n name?: string;\n}\n\ntype PrimaryOption = Array<Keyword | AtRule | Rule>;\ninterface SecondaryOptions {\n unspecified?: 'top' | 'bottom' | 'ignore';\n}\n\n/**\n * https://sass-lang.com/documentation/at-rules\n */\nconst atRuleScssImport: PrimaryOption = [\n { type: 'at-rule', name: 'use' },\n { type: 'at-rule', name: 'forward' },\n { type: 'at-rule', name: 'import' },\n];\nconst atRuleScss: PrimaryOption = [\n { type: 'at-rule', name: 'function' },\n { type: 'at-rule', name: 'mixin' },\n { type: 'at-rule', name: 'extend' },\n { type: 'at-rule', name: 'include' },\n { type: 'at-rule', name: 'at-root' },\n];\n\nconst variables: PrimaryOption = [\n 'dollar-variables', // $variable\n 'at-variables', // @variable\n 'custom-properties', // --property: 10px\n];\n\n/**\n * https://tailwindcss.com/docs/functions-and-directives\n */\nconst atRuleTailwind: PrimaryOption = [\n { type: 'at-rule', name: 'tailwind' },\n { type: 'at-rule', name: 'layer' },\n { type: 'at-rule', name: 'apply' },\n { type: 'at-rule', name: 'config' },\n];\n\n/**\n * https://v2.tailwindcss.com/docs/functions-and-directives\n *\n * backwards compatible for v2\n */\nconst atRuleTailwindV2: PrimaryOption = [\n { type: 'at-rule', name: 'variants' },\n { type: 'at-rule', name: 'responsive' },\n { type: 'at-rule', name: 'screen' },\n];\n\n/**\n * Nested rules (e.g. a { span {} })\n */\nconst rules: PrimaryOption = [\n {\n type: 'rule',\n selector: /^&::[\\w-]+/,\n },\n 'rules',\n];\n\nexport const orderRule = (packages: Partial<Packages>) =>\n defineRule<PrimaryOption, SecondaryOptions>([\n [\n ...(packages.sass ? atRuleScssImport : []),\n ...(packages.tailwind ? atRuleTailwind : []),\n ...variables,\n ...(packages.sass ? atRuleScss : []),\n ...(packages.tailwind ? atRuleTailwindV2 : []),\n 'at-rules',\n 'less-mixins',\n 'declarations',\n ...rules,\n ],\n {\n unspecified: 'bottom',\n },\n ]);\n\nexport const order = (packages: Partial<Packages>) =>\n defineRules({\n 'order/order': orderRule(packages),\n });\n","import type { Packages } from '@culur/utils-packages';\nimport type { Config } from 'stylelint';\nimport { atRuleNoUnknownCSS } from '~/rules/at-rule-no-unknown';\nimport { declarationBlockNoRedundantLonghandProperties } from '~/rules/declaration-block-no-redundant-longhand-properties';\nimport { functionNoUnknown } from '~/rules/function-no-unknown';\nimport { order } from '~/rules/order';\n\nexport const configCss = (packages: Partial<Packages>): Config => ({\n extends: ['stylelint-config-standard', 'stylelint-config-clean-order'],\n plugins: ['stylelint-order', 'stylelint-selector-bem-pattern'],\n rules: {\n ...atRuleNoUnknownCSS(packages),\n ...declarationBlockNoRedundantLonghandProperties,\n ...functionNoUnknown(packages),\n ...order(packages),\n },\n});\n","import { defineRule, defineRules } from '~/utils';\n\ntype PrimaryOption = string;\ninterface SecondaryOptions {\n message: string;\n}\n\nexport const dollarVariablePatternRule = defineRule<\n PrimaryOption,\n SecondaryOptions\n>([\n '^(-{0,2}?[a-z][a-z0-9]*)(-[a-z0-9]+)*$',\n { message: 'Expected variable to be kebab-case' },\n]);\n\nexport const dollarVariablePatternSCSS = defineRules({\n 'scss/dollar-variable-pattern': dollarVariablePatternRule,\n});\n","import type { Packages } from '@culur/utils-packages';\nimport type { Config } from 'stylelint';\nimport { atRuleNoUnknownSCSS } from '~/rules/at-rule-no-unknown';\nimport { dollarVariablePatternSCSS } from '~/rules/dollar-variable-pattern';\n\nexport const configScss = (packages: Partial<Packages>): Config => ({\n extends: ['stylelint-config-standard-scss'],\n rules: {\n ...atRuleNoUnknownSCSS(packages),\n ...dollarVariablePatternSCSS,\n },\n});\n","import type { Config } from 'stylelint';\n\nexport const configShared = (): Config => ({\n extends: ['stylelint-config-html'],\n});\n","import type { Packages } from '@culur/utils-packages';\nimport type { Config } from 'stylelint';\n\nexport const configVue = (packages: Partial<Packages>): Config => ({\n extends: [\n packages.sass\n ? 'stylelint-config-standard-vue/scss'\n : 'stylelint-config-standard-vue',\n ],\n});\n","import type { Packages } from '@culur/utils-packages';\nimport type { Config } from 'stylelint';\nimport { configCss } from './configs/css';\nimport { configScss } from './configs/scss';\nimport { configShared } from './configs/shared';\nimport { configVue } from './configs/vue';\nimport { mergeConfigs } from './utils';\n\nexport default function defineConfig(\n packages?: Partial<Packages>,\n config?: Config,\n): Config {\n const packages_ = packages ?? {};\n\n return mergeConfigs(\n configShared(),\n configCss(packages_),\n packages_.sass && configScss(packages_),\n packages_.vue && configVue(packages_),\n config,\n );\n}\n"]}
@@ -1,14 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkDCLB4SF5_cjs = require('./chunk-DCLB4SF5.cjs');
4
-
5
- // src/shareable-configs/tailwind-sass.ts
6
- var tailwind_sass_default = chunkDCLB4SF5_cjs.defineConfig({
7
- tailwind: true,
8
- sass: true,
9
- vue: false
10
- });
11
-
12
- exports.tailwind_sass_default = tailwind_sass_default;
13
- //# sourceMappingURL=chunk-OGKNAGXF.cjs.map
14
- //# sourceMappingURL=chunk-OGKNAGXF.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/utils.ts","../src/rules/at-rule-no-unknown.ts","../src/rules/declaration-block-no-redundant-longhand-properties.ts","../src/rules/function-no-unknown.ts","../src/rules/order.ts","../src/configs/css.ts","../src/rules/dollar-variable-pattern.ts","../src/configs/scss.ts","../src/configs/shared.ts","../src/configs/vue.ts","../src/factory.ts"],"names":[],"mappings":"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","file":"chunk-RGZTVH2G.js","sourcesContent":["import type { Config, ConfigRuleSettings } from 'stylelint';\n\nexport type ConfigRulePrimaryOption =\n | boolean\n | number\n | string\n | Array<boolean | number | string | object>;\nexport type ConfigRuleSecondaryOptions = object;\n\nexport const defineRule = <\n PrimaryOption extends ConfigRulePrimaryOption,\n SecondaryOptions extends ConfigRuleSecondaryOptions,\n>(\n rule: ConfigRuleSettings<PrimaryOption, SecondaryOptions>,\n) => rule;\n\nexport const defineRules = <TRules extends Config['rules']>(rule: TRules) =>\n rule;\n\n// clone function mergeConfigs from stylelint repository\nexport const mergeConfigs = (\n ...configsOrNull: (Config | undefined | null | false)[]\n) => {\n const configs = configsOrNull.filter((c): c is Config => !!c);\n\n return {\n plugins: [...new Set(configs.flatMap(c => c.plugins ?? []))],\n overrides: [...new Set(configs.flatMap(c => c.overrides ?? []))],\n extends: configs\n .flatMap(c => c.extends ?? [])\n .filter((item, index, arr) => arr.lastIndexOf(item) === index),\n rules: configs.reduce(\n (acc, config) => ({ ...acc, ...config.rules }),\n {} as Config['rules'],\n ),\n ...configs.reduce(\n (\n acc,\n { plugins: _p, overrides: _o, extends: _e, rules: _r, ...config },\n ) => ({ ...acc, ...config }),\n {} as Config,\n ),\n };\n};\n","import type { Packages } from '@culur/utils-packages';\nimport { defineRule, defineRules } from '~/utils';\n\n// https://tailwindcss.com/docs/functions-and-directives\nconst directives = [\n 'tailwind',\n 'layer',\n 'apply',\n 'config',\n\n // https://v2.tailwindcss.com/docs/functions-and-directives\n // backwards compatible for v2\n 'variants',\n 'responsive',\n 'screen',\n];\n\nexport const atRuleNoUnknownRule = (packages: Partial<Packages>) =>\n defineRule<boolean, { ignoreAtRules: (string | RegExp)[] }>([\n true,\n { ignoreAtRules: packages.tailwind ? directives : [] },\n ]);\n\nexport const atRuleNoUnknownCSS = (packages: Partial<Packages>) =>\n defineRules({\n 'at-rule-no-unknown': atRuleNoUnknownRule(packages),\n });\n\nexport const atRuleNoUnknownSCSS = (packages: Partial<Packages>) =>\n defineRules({\n 'at-rule-no-unknown': null,\n 'scss/at-rule-no-unknown': atRuleNoUnknownRule(packages),\n });\n","import { defineRule, defineRules } from '~/utils';\n\nexport const declarationBlockNoRedundantLonghandPropertiesRule = defineRule<\n true,\n { ignoreShorthands?: (string | RegExp)[] }\n>([true, { ignoreShorthands: ['grid-template'] }]);\n\nexport const declarationBlockNoRedundantLonghandProperties = defineRules({\n 'declaration-block-no-redundant-longhand-properties':\n declarationBlockNoRedundantLonghandPropertiesRule,\n});\n","import type { Packages } from '@culur/utils-packages';\nimport { defineRule, defineRules } from '~/utils';\n\nexport function functionNoUnknownRule(packages: Partial<Packages>) {\n const ignoreFunctions = [\n // https://tailwindcss.com/docs/functions-and-directives#functions\n ...(packages.tailwind //\n ? ['theme', 'screen']\n : []),\n\n // https://sass-lang.com/documentation/modules/list\n // https://sass-lang.com/documentation/modules/math\n // https://sass-lang.com/documentation/modules/color\n ...(packages.sass //\n ? [/^(list|math|color)\\..+/]\n : []),\n\n // https://vuejs.org/api/sfc-css-features.html#v-bind-in-css\n ...(packages.vue //\n ? ['v-bind']\n : []),\n ];\n\n return defineRule<boolean, { ignoreFunctions: (string | RegExp)[] }>([\n true,\n ignoreFunctions.length > 0 //\n ? { ignoreFunctions }\n : { ignoreFunctions: [] },\n ]);\n}\n\nexport const functionNoUnknown = (packages: Partial<Packages>) =>\n defineRules({\n 'function-no-unknown': functionNoUnknownRule(packages),\n });\n","import type { Packages } from '@culur/utils-packages';\nimport { defineRule, defineRules } from '~/utils';\n\n// https://github.com/hudochenkov/stylelint-order/blob/master/rules/order/README.md#options\n\ntype Keyword =\n | 'custom-properties' /**/ // Custom properties (e.g. --property: 10px;)\n | 'dollar-variables' /***/ // Dollar variables (e.g. $variable)\n | 'at-variables' /*******/ // At-variables (e.g. @variable available in Less syntax)\n | 'declarations' /*******/ // CSS declarations (e.g. display: block)\n | 'rules' /**************/ // Nested rules (e.g. a { span {} })\n | 'at-rules' /***********/ // Nested at-rules (e.g. div { @media () {} })\n | 'less-mixins'; /*******/ // Mixins in Less syntax (e.g. .mixin();)\n\ninterface AtRule {\n type: 'at-rule';\n name?: string;\n parameter?: string | RegExp;\n hasBlock?: boolean;\n}\n\ninterface Rule {\n type: 'rule';\n selector?: string | RegExp;\n name?: string;\n}\n\ntype PrimaryOption = Array<Keyword | AtRule | Rule>;\ninterface SecondaryOptions {\n unspecified?: 'top' | 'bottom' | 'ignore';\n}\n\n/**\n * https://sass-lang.com/documentation/at-rules\n */\nconst atRuleScssImport: PrimaryOption = [\n { type: 'at-rule', name: 'use' },\n { type: 'at-rule', name: 'forward' },\n { type: 'at-rule', name: 'import' },\n];\nconst atRuleScss: PrimaryOption = [\n { type: 'at-rule', name: 'function' },\n { type: 'at-rule', name: 'mixin' },\n { type: 'at-rule', name: 'extend' },\n { type: 'at-rule', name: 'include' },\n { type: 'at-rule', name: 'at-root' },\n];\n\nconst variables: PrimaryOption = [\n 'dollar-variables', // $variable\n 'at-variables', // @variable\n 'custom-properties', // --property: 10px\n];\n\n/**\n * https://tailwindcss.com/docs/functions-and-directives\n */\nconst atRuleTailwind: PrimaryOption = [\n { type: 'at-rule', name: 'tailwind' },\n { type: 'at-rule', name: 'layer' },\n { type: 'at-rule', name: 'apply' },\n { type: 'at-rule', name: 'config' },\n];\n\n/**\n * https://v2.tailwindcss.com/docs/functions-and-directives\n *\n * backwards compatible for v2\n */\nconst atRuleTailwindV2: PrimaryOption = [\n { type: 'at-rule', name: 'variants' },\n { type: 'at-rule', name: 'responsive' },\n { type: 'at-rule', name: 'screen' },\n];\n\n/**\n * Nested rules (e.g. a { span {} })\n */\nconst rules: PrimaryOption = [\n {\n type: 'rule',\n selector: /^&::[\\w-]+/,\n },\n 'rules',\n];\n\nexport const orderRule = (packages: Partial<Packages>) =>\n defineRule<PrimaryOption, SecondaryOptions>([\n [\n ...(packages.sass ? atRuleScssImport : []),\n ...(packages.tailwind ? atRuleTailwind : []),\n ...variables,\n ...(packages.sass ? atRuleScss : []),\n ...(packages.tailwind ? atRuleTailwindV2 : []),\n 'at-rules',\n 'less-mixins',\n 'declarations',\n ...rules,\n ],\n {\n unspecified: 'bottom',\n },\n ]);\n\nexport const order = (packages: Partial<Packages>) =>\n defineRules({\n 'order/order': orderRule(packages),\n });\n","import type { Packages } from '@culur/utils-packages';\nimport type { Config } from 'stylelint';\nimport { atRuleNoUnknownCSS } from '~/rules/at-rule-no-unknown';\nimport { declarationBlockNoRedundantLonghandProperties } from '~/rules/declaration-block-no-redundant-longhand-properties';\nimport { functionNoUnknown } from '~/rules/function-no-unknown';\nimport { order } from '~/rules/order';\n\nexport const configCss = (packages: Partial<Packages>): Config => ({\n extends: ['stylelint-config-standard', 'stylelint-config-clean-order'],\n plugins: ['stylelint-order', 'stylelint-selector-bem-pattern'],\n rules: {\n ...atRuleNoUnknownCSS(packages),\n ...declarationBlockNoRedundantLonghandProperties,\n ...functionNoUnknown(packages),\n ...order(packages),\n },\n});\n","import { defineRule, defineRules } from '~/utils';\n\ntype PrimaryOption = string;\ninterface SecondaryOptions {\n message: string;\n}\n\nexport const dollarVariablePatternRule = defineRule<\n PrimaryOption,\n SecondaryOptions\n>([\n '^(-{0,2}?[a-z][a-z0-9]*)(-[a-z0-9]+)*$',\n { message: 'Expected variable to be kebab-case' },\n]);\n\nexport const dollarVariablePatternSCSS = defineRules({\n 'scss/dollar-variable-pattern': dollarVariablePatternRule,\n});\n","import type { Packages } from '@culur/utils-packages';\nimport type { Config } from 'stylelint';\nimport { atRuleNoUnknownSCSS } from '~/rules/at-rule-no-unknown';\nimport { dollarVariablePatternSCSS } from '~/rules/dollar-variable-pattern';\n\nexport const configScss = (packages: Partial<Packages>): Config => ({\n extends: ['stylelint-config-standard-scss'],\n rules: {\n ...atRuleNoUnknownSCSS(packages),\n ...dollarVariablePatternSCSS,\n },\n});\n","import type { Config } from 'stylelint';\n\nexport const configShared = (): Config => ({\n extends: ['stylelint-config-html'],\n});\n","import type { Packages } from '@culur/utils-packages';\nimport type { Config } from 'stylelint';\n\nexport const configVue = (packages: Partial<Packages>): Config => ({\n extends: [\n packages.sass\n ? 'stylelint-config-standard-vue/scss'\n : 'stylelint-config-standard-vue',\n ],\n});\n","import type { Packages } from '@culur/utils-packages';\nimport type { Config } from 'stylelint';\nimport { configCss } from './configs/css';\nimport { configScss } from './configs/scss';\nimport { configShared } from './configs/shared';\nimport { configVue } from './configs/vue';\nimport { mergeConfigs } from './utils';\n\nexport default function defineConfig(\n packages?: Partial<Packages>,\n config?: Config,\n): Config {\n const packages_ = packages ?? {};\n\n return mergeConfigs(\n configShared(),\n configCss(packages_),\n packages_.sass && configScss(packages_),\n packages_.vue && configVue(packages_),\n config,\n );\n}\n"]}
@@ -1,14 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkDCLB4SF5_cjs = require('./chunk-DCLB4SF5.cjs');
4
-
5
- // src/shareable-configs/vue.ts
6
- var vue_default = chunkDCLB4SF5_cjs.defineConfig({
7
- tailwind: false,
8
- sass: false,
9
- vue: true
10
- });
11
-
12
- exports.vue_default = vue_default;
13
- //# sourceMappingURL=chunk-VILYU6GB.cjs.map
14
- //# sourceMappingURL=chunk-VILYU6GB.cjs.map
@@ -1,14 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkDCLB4SF5_cjs = require('./chunk-DCLB4SF5.cjs');
4
-
5
- // src/shareable-configs/none.ts
6
- var none_default = chunkDCLB4SF5_cjs.defineConfig({
7
- tailwind: false,
8
- sass: false,
9
- vue: false
10
- });
11
-
12
- exports.none_default = none_default;
13
- //# sourceMappingURL=chunk-Y6Z2IDP7.cjs.map
14
- //# sourceMappingURL=chunk-Y6Z2IDP7.cjs.map