bernova 0.1.1 → 0.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.
- package/CHANGELOG.md +66 -0
- package/README.md +16 -7
- package/dist/bin/bernova.js +1 -1
- package/dist/bin/buildstyle.js +1 -1
- package/dist/bin/createConfigFile.js +1 -1
- package/dist/bin/declareCssType.js +1 -1
- package/dist/{index.js → index.cjs} +1 -1
- package/dist/index.mjs +1 -0
- package/dist/src/app.js +1 -1
- package/dist/src/constants/compilerType.js +1 -1
- package/dist/src/constants/cssAdvancedSelectors.js +1 -1
- package/dist/src/constants/cssProps.js +1 -1
- package/dist/src/constants/cssPseudoClasses.js +1 -1
- package/dist/src/constants/cssPseudoElements.js +1 -1
- package/dist/src/constants/index.js +1 -1
- package/dist/src/constants/resetCss.js +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/lib/compileConfig.js +1 -1
- package/dist/src/lib/compileThemes.js +1 -1
- package/dist/src/lib/copyLocalFonts/copyLocalFonts.utils.js +1 -1
- package/dist/src/lib/copyLocalFonts/generateCssFonts.utils.js +1 -1
- package/dist/src/lib/extractDocFragment/extractDocFragment.utils.js +1 -1
- package/dist/src/lib/fileExists/fileExists.utils.js +1 -1
- package/dist/src/lib/generateBaseCss/generateBaseCss.utils.js +1 -1
- package/dist/src/lib/generateCss/generateCSS.utils.js +1 -1
- package/dist/src/lib/generateCss/helpers/advanceselector/advancedSelectorHandler.utils.js +1 -1
- package/dist/src/lib/generateCss/helpers/attribute/attributeHandler.utils.js +1 -1
- package/dist/src/lib/generateCss/helpers/classnames/formatClassName.utils.js +1 -1
- package/dist/src/lib/generateCss/helpers/classnames/handlerRegister.utils.js +1 -1
- package/dist/src/lib/generateCss/helpers/cssVars/generateVars.utils.js +1 -1
- package/dist/src/lib/generateCss/helpers/dynamicValues/dynamicValues.utils.js +1 -1
- package/dist/src/lib/generateCss/helpers/dynamicValues/processDynamic.utils.js +1 -1
- package/dist/src/lib/generateCss/helpers/filterGenerateCss.utils.js +1 -1
- package/dist/src/lib/generateCss/helpers/foreign/foreignHandler.utils.js +1 -1
- package/dist/src/lib/generateCss/helpers/generateCssStyles.utils.js +1 -1
- package/dist/src/lib/generateCss/helpers/index.js +1 -1
- package/dist/src/lib/generateCss/helpers/mediaqueries/generateMediaQueries.utils.js +1 -1
- package/dist/src/lib/generateCss/helpers/mediaqueries/mediaQueriesHandler.utils.js +1 -1
- package/dist/src/lib/generateCss/helpers/other/declareCssType.utils.js +1 -1
- package/dist/src/lib/generateCss/helpers/other/generateGlobalStyles.utils.js +1 -1
- package/dist/src/lib/generateCss/helpers/pseudo/pseudoHandler.utils.js +1 -1
- package/dist/src/lib/generateCss/helpers/rulename/formatRuleName.utils.js +1 -1
- package/dist/src/lib/generateCss/helpers/utils/extractValues.utils.js +1 -1
- package/dist/src/lib/generateCss/helpers/utils/formattedStatKey.utils.js +1 -1
- package/dist/src/lib/generateCss/helpers/utils/index.js +1 -1
- package/dist/src/lib/generateCss/helpers/utils/processCss.utils.js +1 -1
- package/dist/src/lib/generateCss/helpers/utils/separateStyles.utils.js +1 -1
- package/dist/src/lib/generateCss/helpers/utils/validatePreviouslyExists.utils.js +1 -1
- package/dist/src/lib/generateCssDoc/generateCssDoc.util.js +1 -1
- package/dist/src/lib/generateProvider/generateProvider.utils.js +1 -1
- package/dist/src/lib/generateProvider/template/providerTemplate.js +1 -1
- package/dist/src/lib/generateThemeRegister/generateThemeRegister.utils.js +1 -1
- package/dist/src/lib/generateTools/generateTools.utils.js +1 -1
- package/dist/src/lib/generateTypesTools/generateTypesTools.utils.js +1 -1
- package/dist/src/lib/handlerForeignThemes/handlerForeignThemes.utils.js +1 -1
- package/dist/src/lib/index.js +1 -1
- package/dist/src/lib/processMediaConfig/processMediaConfig.util.js +1 -1
- package/dist/src/lib/readFile/readFile.utils.js +1 -1
- package/dist/src/lib/simplifyName/simplifyName.utils.js +1 -1
- package/dist/src/lib/typingStyles/index.js +1 -1
- package/dist/src/lib/typingStyles/typingStyles.utils.js +1 -1
- package/dist/src/lib/writeDoc/writeDoc.utils.js +1 -1
- package/dist/types/index.d.ts +29 -0
- package/package.json +60 -37
- package/src/app.js +0 -176
- package/src/constants/__tests__/compilerType.test.js +0 -20
- package/src/constants/__tests__/cssAdvancedSelectors.test.js +0 -38
- package/src/constants/__tests__/cssProps.test.js +0 -331
- package/src/constants/__tests__/cssPseudoClasses.test.js +0 -48
- package/src/constants/compilerType.js +0 -14
- package/src/constants/cssAdvancedSelectors.js +0 -32
- package/src/constants/cssProps.js +0 -325
- package/src/constants/cssPseudoClasses.js +0 -138
- package/src/constants/cssPseudoElements.js +0 -83
- package/src/constants/index.js +0 -15
- package/src/constants/resetCss.js +0 -171
- package/src/index.d.ts +0 -31
- package/src/index.js +0 -20
- package/src/lib/compileConfig.js +0 -59
- package/src/lib/compileThemes.js +0 -118
- package/src/lib/copyLocalFonts/copyLocalFonts.utils.js +0 -42
- package/src/lib/copyLocalFonts/generateCssFonts.utils.js +0 -56
- package/src/lib/extractDocFragment/extractDocFragment.utils.js +0 -25
- package/src/lib/fileExists/fileExists.utils.js +0 -31
- package/src/lib/generateBaseCss/generateBaseCss.utils.js +0 -51
- package/src/lib/generateCss/generateCSS.utils.js +0 -42
- package/src/lib/generateCss/helpers/advanceselector/advancedSelectorHandler.utils.js +0 -22
- package/src/lib/generateCss/helpers/attribute/attributeHandler.utils.js +0 -47
- package/src/lib/generateCss/helpers/classnames/formatClassName.utils.js +0 -28
- package/src/lib/generateCss/helpers/classnames/handlerRegister.utils.js +0 -124
- package/src/lib/generateCss/helpers/cssVars/generateVars.utils.js +0 -73
- package/src/lib/generateCss/helpers/dynamicValues/dynamicValues.utils.js +0 -72
- package/src/lib/generateCss/helpers/dynamicValues/processDynamic.utils.js +0 -10
- package/src/lib/generateCss/helpers/filterGenerateCss.utils.js +0 -73
- package/src/lib/generateCss/helpers/foreign/foreignHandler.utils.js +0 -85
- package/src/lib/generateCss/helpers/generateCssStyles.utils.js +0 -249
- package/src/lib/generateCss/helpers/index.js +0 -53
- package/src/lib/generateCss/helpers/mediaqueries/generateMediaQueries.utils.js +0 -9
- package/src/lib/generateCss/helpers/mediaqueries/mediaQueriesHandler.utils.js +0 -181
- package/src/lib/generateCss/helpers/other/declareCssType.utils.js +0 -120
- package/src/lib/generateCss/helpers/other/generateGlobalStyles.utils.js +0 -30
- package/src/lib/generateCss/helpers/pseudo/pseudoHandler.utils.js +0 -56
- package/src/lib/generateCss/helpers/rulename/formatRuleName.utils.js +0 -163
- package/src/lib/generateCss/helpers/utils/extractValues.utils.js +0 -44
- package/src/lib/generateCss/helpers/utils/formattedStatKey.utils.js +0 -43
- package/src/lib/generateCss/helpers/utils/index.js +0 -15
- package/src/lib/generateCss/helpers/utils/processCss.utils.js +0 -93
- package/src/lib/generateCss/helpers/utils/separateStyles.utils.js +0 -43
- package/src/lib/generateCss/helpers/utils/validatePreviouslyExists.utils.js +0 -61
- package/src/lib/generateCssDoc/generateCssDoc.util.js +0 -47
- package/src/lib/generateProvider/generateProvider.utils.js +0 -283
- package/src/lib/generateProvider/template/providerTemplate.d.ts +0 -60
- package/src/lib/generateProvider/template/providerTemplate.js +0 -160
- package/src/lib/generateThemeRegister/generateThemeRegister.utils.js +0 -136
- package/src/lib/generateTools/generateTools.utils.js +0 -181
- package/src/lib/generateTypesTools/generateTypesTools.utils.js +0 -59
- package/src/lib/handlerForeignThemes/handlerForeignThemes.utils.js +0 -96
- package/src/lib/index.js +0 -61
- package/src/lib/processMediaConfig/processMediaConfig.util.js +0 -32
- package/src/lib/readFile/readFile.utils.js +0 -110
- package/src/lib/simplifyName/__tests__/simplifyName.utils.test.js +0 -87
- package/src/lib/simplifyName/simplifyName.utils.js +0 -28
- package/src/lib/typingStyles/index.js +0 -3
- package/src/lib/typingStyles/typingStyles.utils.js +0 -144
- package/src/lib/writeDoc/writeDoc.utils.js +0 -30
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,72 @@ All notable changes to Bernova will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.3.0] - 2025-01-30
|
|
9
|
+
|
|
10
|
+
### ✨ New Features
|
|
11
|
+
|
|
12
|
+
- **Modern Build System**: Migrated to Vite 7 with TypeScript configuration for improved build performance
|
|
13
|
+
- **Dual Package Support**: Added ESM (`.mjs`) and CommonJS (`.cjs`) support for better compatibility across different module systems
|
|
14
|
+
- **Custom Build Plugins**: Implemented 4 specialized Vite plugins:
|
|
15
|
+
- `copyCSSPlugin`: Minifies and copies CSS files
|
|
16
|
+
- `copyCLIBinariesPlugin`: Preserves CLI executables with proper shebangs
|
|
17
|
+
- `copySourcePlugin`: Minifies source files with aggressive optimization
|
|
18
|
+
- `removeTestFilesPlugin`: Ensures test files are excluded from distribution
|
|
19
|
+
|
|
20
|
+
### 🚀 Performance Improvements
|
|
21
|
+
|
|
22
|
+
- **Ultra-optimized Bundle**: Reduced package size from 56.4 KB to 41.4 KB (27% reduction)
|
|
23
|
+
- **Aggressive Minification**: Implemented Terser with 3-pass optimization removing all comments
|
|
24
|
+
- **Tree-shaking**: Enhanced dead code elimination for smaller bundles
|
|
25
|
+
- **Zero JSDoc in Distribution**: Removed all TSDoc comments as they're unnecessary for CLI tools
|
|
26
|
+
|
|
27
|
+
### 📚 Documentation
|
|
28
|
+
|
|
29
|
+
- **Professional README**: Added comprehensive badges (npm version, downloads, license, coverage, PRs welcome)
|
|
30
|
+
- **Package Distribution**: Created `.npmignore` to exclude unnecessary files from npm package
|
|
31
|
+
- **Modern Package Exports**: Updated `package.json` with conditional exports for better module resolution
|
|
32
|
+
|
|
33
|
+
### 🔧 Infrastructure
|
|
34
|
+
|
|
35
|
+
- **TypeScript Build Configuration**: Separated development and production TypeScript configs (`tsconfig.build.json`)
|
|
36
|
+
- **Node.js Compatibility**: Maintained Node.js >=20.0.0 target with ES2020 output
|
|
37
|
+
- **Build Validation**: Enhanced CI/CD with proper build verification steps
|
|
38
|
+
|
|
39
|
+
## [0.1.2] - 2025-10-28
|
|
40
|
+
|
|
41
|
+
### 🔧 Changed
|
|
42
|
+
|
|
43
|
+
- **License update**: Changed project license from ISC to Apache-2.0 for better open source compliance
|
|
44
|
+
- **Package management**: Improved gitignore configuration to exclude package-lock.json for better npm/yarn compatibility
|
|
45
|
+
|
|
46
|
+
### 🗑️ Removed
|
|
47
|
+
|
|
48
|
+
- Removed package-lock.json file from version control to avoid package manager conflicts
|
|
49
|
+
|
|
50
|
+
## [0.1.1] - 2025-10-22
|
|
51
|
+
|
|
52
|
+
### 🐛 Fixed
|
|
53
|
+
|
|
54
|
+
- **Build system**: Resolved NPM versioning and authentication issues
|
|
55
|
+
- **Package metadata**: Improved package.json with complete metadata for open source distribution
|
|
56
|
+
- **Workflow automation**: Fixed auto-publish workflow build validation and authentication verification
|
|
57
|
+
|
|
58
|
+
### 🔧 Changed
|
|
59
|
+
|
|
60
|
+
- **Node.js compatibility**: Updated minimum Node.js version requirements
|
|
61
|
+
- **Build optimization**: Enhanced build process for better distribution
|
|
62
|
+
|
|
63
|
+
## [0.1.0] - 2025-10-21
|
|
64
|
+
|
|
65
|
+
All notable changes to Bernova will be documented in this file.
|
|
66
|
+
|
|
67
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
68
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
69
|
+
|
|
70
|
+
## [0.1.2] - 2025-10-28
|
|
71
|
+
|
|
72
|
+
## [0.1.1] - 2025-10-21
|
|
73
|
+
|
|
8
74
|
## [0.1.0] - 2025-10-21
|
|
9
75
|
|
|
10
76
|
### 🎉 Initial Release
|
package/README.md
CHANGED
|
@@ -7,14 +7,23 @@
|
|
|
7
7
|
</a>
|
|
8
8
|
</p>
|
|
9
9
|
|
|
10
|
-
<
|
|
11
|
-
<strong>The best way to write CSS with Javascript syntax</strong><br/>
|
|
12
|
-
</p>
|
|
10
|
+
<br />
|
|
13
11
|
|
|
14
|
-
<
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
<div align="center">
|
|
13
|
+
|
|
14
|
+
[](https://www.npmjs.com/package/bernova)
|
|
15
|
+
[](https://www.npmjs.com/package/bernova)
|
|
16
|
+
[](./LICENSE)
|
|
17
|
+
[](https://github.com/kubit-ui/bernova/stargazers)
|
|
18
|
+
[](https://github.com/kubit-ui/bernova/issues)
|
|
19
|
+
|
|
20
|
+
[](https://www.typescriptlang.org/)
|
|
21
|
+
[](https://nodejs.org/)
|
|
22
|
+
[](https://vitejs.dev/)
|
|
23
|
+
|
|
24
|
+
</div>
|
|
25
|
+
|
|
26
|
+
<br />
|
|
18
27
|
|
|
19
28
|
## Related Information
|
|
20
29
|
|
package/dist/bin/bernova.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const{bernovaStyles:
|
|
2
|
+
const{bernovaStyles:bernovaStyles}=require("../src/app.js"),{compilerTypeValid:compilerTypeValid}=require("../src/constants/compilerType.js");(async()=>{const{default:e}=await import("ora"),r=e("Starting Bernova compilation process...").start();try{const e=(process.argv.find(e=>e===`--${compilerTypeValid.full}`||e===`--${compilerTypeValid.foundationOnly}`||e===`--${compilerTypeValid.componentOnly}`)||`--${compilerTypeValid.full}`).replace("--","");await bernovaStyles(e),r.succeed("Bernova compilation process completed successfully.")}catch(e){r.fail("An error occurred during the Bernova compilation process."),console.error("Error details:",e.message),process.exit(1)}})();
|
package/dist/bin/buildstyle.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const
|
|
2
|
+
const CleanCSS=require("clean-css"),fs=require("fs").promises,path=require("path"),{readConfigData:readConfigData}=require("../dist/helpers/readFile.utils.js");(async()=>{const{default:e}=await import("ora"),r=e("Starting CSS build process...").start();try{const e=path.resolve(process.cwd(),"bernova.config.json"),s=await readConfigData(e),t=path.resolve(__dirname,"../styles/bernova.css"),{outputDir:i}=s;let a=!0;try{await fs.access(t),r.succeed("Source CSS file found.")}catch(e){a=!1,r.info("Source CSS file does not exist, will create default.")}a||(r.start("Creating default CSS file..."),await fs.mkdir(path.dirname(t),{recursive:!0}),await fs.writeFile(t,"/* Generated by Bernova - run compilation first */"),r.succeed("Default CSS file created.")),r.start("Reading source CSS file...");const c=await fs.readFile(t,"utf8");r.succeed("Source CSS file loaded successfully."),r.start("Minifying CSS...");const o=new CleanCSS({level:2,returnPromise:!1}).minify(c);if(o.errors&&o.errors.length>0)throw new Error(`CSS minification errors: ${o.errors.join(", ")}`);r.succeed(`CSS minified successfully (${Math.round(100*(1-o.styles.length/c.length))}% reduction).`);const n=i||"./dist",l=path.resolve(process.cwd(),n,"bernova.min.css");r.start("Ensuring output directory exists..."),await fs.mkdir(path.dirname(l),{recursive:!0}),r.succeed("Output directory ready."),r.start("Writing minified CSS to output file..."),await fs.writeFile(l,o.styles),r.succeed(`Minified CSS written to: ${l}`),r.succeed("CSS build process completed successfully.")}catch(e){r.fail("CSS build process failed."),console.error("Build error:",e.message),process.exit(1)}})();
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const
|
|
2
|
+
const fs=require("fs").promises,path=require("path"),config={themes:[{name:"default",foundations:{name:"FOUNDATIONS",path:"./src/design/foundations.ts"},theme:{name:"BERNOVA_STYLES",path:"./src/design/theme.ts"},globalStyles:{name:"GLOBAL_STYLES",path:"./src/design/globalStyles.ts"},mediaQueries:{name:"MEDIA_QUERIES",path:"./src/design/mediaQueries.ts"},resetCss:!1,prefix:"kb",stylesPath:"./src/styles/default"}]},configPath=path.resolve(process.cwd(),"bernova.config.json"),writeConfigFile=async(e,t)=>{const{default:s}=await import("ora"),i=s("Creating Bernova configuration file...").start();try{try{return await fs.access(e),void i.warn("Configuration file already exists. Skipping creation.")}catch{}const s=JSON.stringify(t,null,2);await fs.writeFile(e,s,"utf8"),i.succeed(`Configuration file created successfully at: ${e}`),console.log("\nNext steps:"),console.log("1. Edit the configuration file to match your project structure"),console.log("2. Create the specified design files (foundations.ts, theme.ts, etc.)"),console.log('3. Run "bernova" to compile your styles')}catch(e){i.fail("Failed to create configuration file."),console.error("Error details:",e.message),process.exit(1)}};writeConfigFile(configPath,config);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const path=require("path"),{cssProps:cssProps,cssPseudoClasses:cssPseudoClasses,cssPseudoElements:cssPseudoElements,cssAdvancedSelectors:cssAdvancedSelectors}=require("../src/constants/index.js"),{writeDoc:writeDoc}=require("../src/lib/writeDoc/writeDoc.utils.js"),declareCssType=async()=>{const s="type LibExtendsType = {\n $extends?: string; \n};\ntype LibRecycleType = {\n $recycle?: string; \n};\ntype ForeignType = {\n $foreign?: { [key: string]: { [key: string]: CssPropsType & CssPseudoJoinedType & CssAddicionalTypes } }; \n};\n"+`type CssPropsType = LibExtendsType & LibRecycleType & ForeignType & {\n${Object.keys(cssProps).map(s=>`${s}?: string;`).join("\n")}\n}\n`+`type CssAdvancedSelectorsType = {\n${Object.keys(cssAdvancedSelectors).map(s=>`${s}?: CssPropsType & { $target: string }`).join("\n")}\n}\n`+"type CssPseudoJoinedType = { $pseudoClasses?: CssPseudoClassesType;\n$pseudoElements?: CssPseudoElementsType;\n}\ntype CssAddicionalTypes = {\n$advancedSelectors?: CssAdvancedSelectorsType[];\n $mediaQueries?: MediaQueriesType;\n}\n"+`type CssPseudoClassesType = {\n${Object.keys(cssPseudoClasses).map(s=>`${s}?: CssPropsType & { $target?: string } & CssAddicionalTypes & { $attributes?: CssAttributesType } | CssPseudoElementsType & CssAddicionalTypes & { $attributes?: CssAttributesType } | CssPseudoClassesType & CssAddicionalTypes & { $attributes?: CssAttributesType };`).join("\n")}\n}\n`+`type CssPseudoElementsType = {\n${Object.keys(cssPseudoElements).map(s=>`${s}?: CssPropsType & CssAddicionalTypes & { $attributes?: CssAttributesType } | CssPseudoElementsType & CssAddicionalTypes & { $attributes?: CssAttributesType } | CssPseudoClassesType & CssAddicionalTypes & { $attributes?: CssAttributesType };`).join("\n")}\n}\n`+"type CssAttributesType = {\n [key: string]: CssPropsType & CssAddicionalTypes & CssPseudoJoinedType | {\n [key: string]: CssPropsType & CssAddicionalTypes & CssPseudoJoinedType \n};\n}\nexport type CssGeneratorType = CssPropsType & {\n$pseudoClasses?: CssPseudoClassesType;\n$pseudoElements?: CssPseudoElementsType;\n$mediaQueries?: MediaQueriesType;\n$attributes?: CssAttributesType;\n$advancedSelectors?: CssAdvancedSelectorsType[];\n}\n",e=path.resolve(__dirname,"../types/generatorType.ts");await writeDoc(e,s,"TypeScript declarations"),console.log("✅ TypeScript type definitions generated successfully"),console.log(`📝 Types written to: ${e}`)};declareCssType().catch(s=>{console.error("❌ Failed to generate TypeScript declarations:",s.message),process.exit(1)});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const e=require("./lib"),r=require("./constants"),{bernovaStyles:s}=require("./app");module.exports={bernovaStyles:s,...e,...r,lib:e,constants:r};
|
|
1
|
+
"use strict";const e=require("./lib"),r=require("./constants"),{bernovaStyles:s}=require("./app");module.exports={bernovaStyles:s,...e,...r,lib:e,constants:r};
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("./lib"),r=require("./constants"),{bernovaStyles:s}=require("./app");module.exports={bernovaStyles:s,...e,...r,lib:e,constants:r};
|
package/dist/src/app.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const path=require("path"),{generateBaseCss:generateBaseCss,compileThemes:compileThemes,generateCSS:generateCSS,compileConfig:compileConfig,writeDoc:writeDoc,generateProvider:generateProvider,processMediaConfig:processMediaConfig,generateThemeRegister:generateThemeRegister,generateCssDoc:generateCssDoc,handlerForeignThemes:handlerForeignThemes}=require("./lib"),{validatePreviouslyExists:validatePreviouslyExists,processCssWithPostcss:processCssWithPostcss}=require("./lib/generateCss/helpers"),{compilerTypeValid:compilerTypeValid}=require("./constants"),{generateTypesTools:generateTypesTools}=require("./lib/generateTypesTools/generateTypesTools.utils"),{generateTools:generateTools}=require("./lib/generateTools/generateTools.utils");async function bernovaStyles(compilerType){const dir=process.cwd(),themeRegister={},{default:ora}=await import("ora"),spinner=ora("Starting BernovaStyled process...").start(),{themes:themes,provider:provider}=await compileConfig({dir:dir});for(const themeConfig of themes){const{themeCss:themeCss,fonts:fonts,resetCss:resetCss,bvTools:bvTools,name:name,stylesPath:stylesPath,typesTools:typesTools,foreignThemes:foreignThemes,prefix:prefix}=compileThemes({themeConfig:themeConfig,dir:dir}),baseCss=await generateBaseCss({fonts:fonts,resetCss:resetCss,stylesPath:stylesPath}),{theme:theme,media:media,...withoutTheme}=themeCss,source=(()=>{switch(compilerType){case compilerTypeValid.foundationOnly:return withoutTheme;case compilerTypeValid.componentOnly:return{theme:theme,media:media};default:return themeCss}})(),{stylesCss:stylesCss,foundationsCss:foundationsCss,stylesDocs:stylesDocs,rootDocs:rootDocs,globalDocs:globalDocs}=await generateCSS({source:source,baseCss:baseCss,compilerType:compilerType,prefix:prefix}),stylesDir=path.resolve(dir,stylesPath||"styles"),{cssDir:cssDir,cssMinifiedDir:cssMinifiedDir,oldData:oldData}=await validatePreviouslyExists({stylesDir:stylesDir,compilerType:compilerType,name:name}),finalCss=generateCssDoc({compilerType:compilerType,stylesCss:stylesCss,foundationsCss:foundationsCss,oldData:oldData}),cssContent=await processCssWithPostcss(finalCss,!1,null),cssMinified=await processCssWithPostcss(finalCss,!0,null);spinner.start(`Writing CSS to file for theme: ${name}...`),await writeDoc(cssDir,cssContent,"css"),await writeDoc(cssMinifiedDir,cssMinified,"css minified"),spinner.succeed(`CSS written to file for theme: ${name}.`),spinner.start(`Compiling register for theme: ${name}...`),spinner.succeed(`Register compiled for theme: ${name}.`),spinner.start("Verifying types tools..."),typesTools?(spinner.succeed(`Types tools verified for theme: ${name}.`),await generateTypesTools({dir:dir,typesTools:typesTools,mediaConfig:media,stylesDocs:stylesDocs})):spinner.succeed(`No types tools found for theme: ${name}.`);const mediaDocs=processMediaConfig({mediaConfig:media});spinner.start(`Processing bvTools for theme: ${name}...`),bvTools?(spinner.succeed(`bvTools found for theme: ${name}.`),await generateTools({bvTools:bvTools,compilerType:compilerType,name:name,dir:dir,stylesDir:stylesDir,stylesDocs:stylesDocs,rootDocs:rootDocs,globalDocs:globalDocs,mediaDocs:mediaDocs})):spinner.succeed(`No bvTools found for theme: ${name}.`);const{themeByPosition:themeByPosition,variablesExtracted:variablesExtracted,classesExtracted:classesExtracted}=await handlerForeignThemes({dir:dir,foreignThemes:foreignThemes});themeRegister[name]=generateThemeRegister({cssPath:path.resolve(dir,stylesDir,`${name}.css`),rootDocs:rootDocs,stylesDocs:stylesDocs,globalDocs:globalDocs,mediaDocs:mediaDocs,foreignStyles:classesExtracted,foreignVars:variablesExtracted,foreignBeforeFiles:themeByPosition.before,foreignAfterFiles:themeByPosition.after})}provider&&(spinner.start("Provider configuration found, generating tools..."),await generateProvider({dir:path.resolve(dir,provider.path),providerDocs:themeRegister,declarationHelp:provider.declarationHelp,providerName:provider.name,compilerType:compilerType}),spinner.succeed("Provider tools generated successfully."))}module.exports={bernovaStyles:bernovaStyles};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const compilerTypeValid={foundationOnly:"foundationOnly",componentOnly:"componentOnly",full:"full"};module.exports={compilerTypeValid:compilerTypeValid};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const cssAdvancedSelectors={adjacent:" + ",child:" > ",descendant:" ",near:" ~ ",concat:"",column:" || "};module.exports={cssAdvancedSelectors:cssAdvancedSelectors};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const cssProps={scrollbar_width:"scrollbar-width",scrollbar_color:"scrollbar-color",scrollbar_gutter:"scrollbar-gutter",scroll_behavior:"scroll-behavior",scroll_margin:"scroll-margin",scroll_padding:"scroll-padding",scroll_snap_align:"scroll-snap-align",scroll_snap_stop:"scroll-snap-stop",scroll_snap_type:"scroll-snap-type",webkit_scrollbar:"webkit-scrollbar",scroll_container:"scroll-container",scrollbar_aria_role:"scrollbar-aria-role",background:"background",background_color:"background-color",background_image:"background-image",background_position:"background-position",background_repeat:"background-repeat",background_size:"background-size",background_attachment:"background-attachment",background_blend_mode:"background-blend-mode",background_clip:"background-clip",background_origin:"background-origin",border:"border",border_top:"border-top",border_right:"border-right",border_bottom:"border-bottom",border_left:"border-left",border_radius:"border-radius",border_width:"border-width",border_left_width:"border-left-width",border_right_width:"border-right-width",border_top_width:"border-top-width",border_bottom_width:"border-bottom-width",border_color:"border-color",border_left_color:"border-left-color",border_right_color:"border-right-color",border_top_color:"border-top-color",border_bottom_color:"border-bottom-color",border_top_left_radius:"border-top-left-radius",border_top_right_radius:"border-top-right-radius",border_bottom_left_radius:"border-bottom-left-radius",border_bottom_right_radius:"border-bottom-right-radius",border_style:"border-style",border_left_style:"border-left-style",border_top_style:"border-top-style",border_right_style:"border-right-style",border_bottom_style:"border-bottom-style",outline:"outline",outline_style:"outline-style",outline_color:"outline-color",outline_width:"outline-width",outline_offset:"outline-offset",display:"display",opacity:"opacity",visibility:"visibility",overflow:"overflow",overflow_x:"overflow-x",overflow_y:"overflow-y",overflow_block:"overflow-block",overflow_inline:"overflow-inline",overflow_clip_margin:"overflow-clip-margin",flex:"flex",flex_direction:"flex-direction",flex_wrap:"flex-wrap",flex_flow:"flex-flow",flex_grow:"flex-grow",flex_shrink:"flex-shrink",flex_basis:"flex-basis",justify_content:"justify-content",justify_items:"justify-items",align_items:"align-items",align_self:"align-self",align_content:"align-content",order:"order",gap:"gap",row_gap:"row-gap",column_gap:"column-gap",grid:"grid",grid_area:"grid-area",grid_template:"grid-template",grid_template_areas:"grid-template-areas",grid_template_rows:"grid-template-rows",grid_template_columns:"grid-template-columns",grid_row:"grid-row",grid_row_start:"grid-row-start",grid_row_end:"grid-row-end",grid_column:"grid-column",grid_column_start:"grid-column-start",grid_column_end:"grid-column-end",grid_gap:"grid-gap",grid_row_gap:"grid-row-gap",grid_column_gap:"grid-column-gap",grid_auto_flow:"grid-auto-flow",grid_auto_rows:"grid-auto-rows",grid_auto_columns:"grid-auto-columns",margin:"margin",margin_left:"margin-left",margin_right:"margin-right",margin_top:"margin-top",margin_bottom:"margin-bottom",padding:"padding",padding_left:"padding-left",padding_right:"padding-right",padding_top:"padding-top",padding_bottom:"padding-bottom",box_sizing:"box-sizing",box_shadow:"box-shadow",width:"width",min_width:"min-width",max_width:"max-width",height:"height",min_height:"min-height",max_height:"max-height",position:"position",top:"top",right:"right",bottom:"bottom",left:"left",z_index:"z-index",float:"float",clear:"clear",transform:"transform",transform_origin:"transform-origin",transform_style:"transform-style",translate:"translate",font:"font",font_family:"font-family",font_size:"font-size",font_weight:"font-weight",font_style:"font-style",font_variant:"font-variant",font_stretch:"font-stretch",font_size_adjust:"font-size-adjust",font_synthesis:"font-synthesis",font_feature_settings:"font-feature-settings",font_kerning:"font-kerning",font_language_override:"font-language-override",font_optical_sizing:"font-optical-sizing",font_variant_alternates:"font-variant-alternates",font_variant_caps:"font-variant-caps",font_variant_east_asian:"font-variant-east-asian",font_variant_ligatures:"font-variant-ligatures",font_variant_numeric:"font-variant-numeric",font_variant_position:"font-variant-position",line_height:"line-height",letter_spacing:"letter-spacing",text_align:"text-align",text_decoration:"text-decoration",text_transform:"text-transform",white_space:"white-space",word_break:"word-break",word_wrap:"word-wrap",text_overflow:"text-overflow",text_shadow:"text-shadow",text_indent:"text-indent",text_justify:"text-justify",text_orientation:"text-orientation",text_rendering:"text-rendering",text_size_adjust:"text-size-adjust",text_combine_upright:"text-combine-upright",text_emphasis:"text-emphasis",text_emphasis_color:"text-emphasis-color",text_emphasis_position:"text-emphasis-position",text_emphasis_style:"text-emphasis-style",text_decoration_color:"text-decoration-color",text_decoration_line:"text-decoration-line",text_decoration_skip:"text-decoration-skip",text_decoration_skip_ink:"text-decoration-skip-ink",text_decoration_style:"text-decoration-style",text_underline_position:"text-underline-position",list_style:"list-style",list_style_type:"list-style-type",list_style_position:"list-style-position",list_style_image:"list-style-image",color:"color",accent_color:"accent-color",cursor:"cursor",pointer_events:"pointer-events",vertical_align:"vertical-align",inset:"inset",inset_block:"inset-block",inset_block_start:"inset-block-start",inset_block_end:"inset-block-end",inset_inline:"inset-inline",inset_inline_start:"inset-inline-start",inset_inline_end:"inset-inline-end",transition:"transition",transition_property:"transition-property",transition_duration:"transition-duration",transition_timing_function:"transition-timing-function",transition_delay:"transition-delay",animation:"animation",animation_name:"animation-name",animation_duration:"animation-duration",animation_timing_function:"animation-timing-function",animation_delay:"animation-delay",animation_iteration_count:"animation-iteration-count",animation_direction:"animation-direction",animation_fill_mode:"animation-fill-mode",animation_play_state:"animation-play-state",animation_timeline:"animation-timeline",appearance:"appearance",user_select:"user-select",aspect_ratio:"aspect-ratio",resize:"resize",caret:"caret",caret_animation:"caret-animation",caret_shape:"caret-shape",caret_color:"caret-color",backdrop_filter:"backdrop-filter",backface_visibility:"backface-visibility",block_size:"block-size",writing_mode:"writing-mode",break_before:"break-before",break_after:"break-after",break_inside:"break-inside",clip:"clip",clip_path:"clip-path",clip_rule:"clip-rule",filter:"filter",float_offset:"float-offset",float_defer:"float-defer",hyphens:"hyphens",image_rendering:"image-rendering",image_orientation:"image-orientation",image_resolution:"image-resolution",isolation:"isolation",mix_blend_mode:"mix-blend-mode",object_fit:"object-fit",object_position:"object-position",overscroll_behavior:"overscroll-behavior",overscroll_behavior_x:"overscroll-behavior-x",overscroll_behavior_y:"overscroll-behavior-y",perspective:"perspective",perspective_origin:"perspective-origin",scroll_snap_margin:"scroll-snap-margin",scroll_snap_align:"scroll-snap-align",caption_side:"caption-side",empty_cells:"empty-cells",fill:"fill",fill_rule:"fill-rule",flood_color:"flood-color",flood_opacity:"flood-opacity",lighting_color:"lighting-color",marker_end:"marker-end",marker_mid:"marker-mid",marker_start:"marker-start",shape_rendering:"shape-rendering",stop_color:"stop-color",stop_opacity:"stop-opacity",stroke:"stroke",stroke_dasharray:"stroke-dasharray",stroke_dashoffset:"stroke-dashoffset",stroke_linecap:"stroke-linecap",stroke_linejoin:"stroke-linejoin",stroke_miterlimit:"stroke-miterlimit",stroke_opacity:"stroke-opacity",mask:"mask",mask_type:"mask-type",mask_image:"mask-image",mask_mode:"mask-mode",mask_repeat:"mask-repeat",mask_position:"mask-position",mask_clip:"mask-clip",mask_origin:"mask-origin",mask_size:"mask-size",mask_composite:"mask-composite",mask_border:"mask-border",mask_border_source:"mask-border-source",mask_border_mode:"mask-border-mode",mask_border_slice:"mask-border-slice",mask_border_width:"mask-border-width",mask_border_outset:"mask-border-outset",mask_border_repeat:"mask-border-repeat",$content:"content"};module.exports={cssProps:cssProps};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const cssPseudoClasses={fullscreen:"fullscreen",modal:"modal",picture_in_picture:"picture-in-picture",autofill:"autofill",enabled:"enabled",disabled:"disabled",read_only:"read-only",read_write:"read-write",placeholder_shown:"placeholder-shown",default:"default",checked:"checked",indeterminate:"indeterminate",blank:"blank",valid:"valid",invalid:"invalid",in_range:"in-range",out_of_range:"out-of-range",required:"required",optional:"optional",user_valid:"user-valid",user_invalid:"user-invalid",dir:"dir",lang:"lang",any_link:"any-link",link:"link",visited:"visited",local_link:"local-link",target:"target",target_within:"target-within",scope:"scope",playing:"playing",paused:"paused",current:"current",past:"past",future:"future",root:"root",empty:"empty",nth_child:"nth-child",nth_last_child:"nth-last-child",first_child:"first-child",last_child:"last-child",only_child:"only-child",nth_of_type:"nth-of-type",nth_last_of_type:"nth-last-of-type",first_of_type:"first-of-type",last_of_type:"last-of-type",only_of_type:"only-of-type",active:"active",focus:"focus",focus_visible:"focus-visible",focus_within:"focus-within",hover:"hover",is:"is",not:"not",where:"where",has:"has",user_valid:"user-valid",user_invalid:"user-invalid",nth_col:"nth-col",nth_last_col:"nth-last-col",host:"host",host_context:"host-context",defined:"defined",moz_any:"-moz-any",moz_any_link:"-moz-any-link",moz_focusring:"-moz-focusring",moz_full_screen:"-moz-full-screen",moz_full_screen_ancestor:"-moz-full-screen-ancestor",moz_full_screen_document:"-moz-full-screen-document",moz_full_screen_element:"-moz-full-screen-element",moz_full_screen_root:"-moz-full-screen-root",moz_placeholder:"-moz-placeholder",moz_read_only:"-moz-read-only",moz_read_write:"-moz-read-write",moz_submit_invalid:"-moz-submit-invalid",moz_ui_invalid:"-moz-ui-invalid",moz_ui_valid:"-moz-ui-valid",webkit_any:"-webkit-any",webkit_any_link:"-webkit-any-link",webkit_autofill:"-webkit-autofill",webkit_current:"-webkit-current",webkit_full_screen:"-webkit-full-screen",webkit_full_screen_ancestor:"-webkit-full-screen-ancestor",webkit_full_screen_document:"-webkit-full-screen-document",webkit_full_screen_element:"-webkit-full-screen-element",webkit_full_screen_root:"-webkit-full-screen-root",webkit_input_placeholder:"-webkit-input-placeholder",webkit_read_only:"-webkit-read-only",webkit_read_write:"-webkit-read-write",webkit_scrollbar:"-webkit-scrollbar",webkit_scrollbar_button:"-webkit-scrollbar-button",webkit_scrollbar_thumb:"-webkit-scrollbar-thumb",webkit_scrollbar_track:"-webkit-scrollbar-track",webkit_scrollbar_track_piece:"-webkit-scrollbar-track-piece",webkit_search_cancel_button:"-webkit-search-cancel-button",webkit_search_results_button:"-webkit-search-results-button"};module.exports={cssPseudoClasses:cssPseudoClasses};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const cssPseudoElements={before:"before",after:"after",first_letter:"first-letter",first_line:"first-line",selection:"selection",backdrop:"backdrop",placeholder:"placeholder",marker:"marker",spelling_error:"spelling-error",grammar_error:"grammar-error",cue:"cue",cue_region:"cue-region",part:"part",slotted:"slotted",file_selector_button:"file-selector-button",target_text:"target-text",highlight:"highlight",moz_color_swatch:"-moz-color-swatch",moz_focus_inner:"-moz-focus-inner",moz_list_bullet:"-moz-list-bullet",moz_list_number:"-moz-list-number",moz_meter_bar:"-moz-meter-bar",moz_progress_bar:"-moz-progress-bar",moz_range_progress:"-moz-range-progress",moz_range_thumb:"-moz-range-thumb",moz_range_track:"-moz-range-track",webkit_inner_spin_button:"-webkit-inner-spin-button",webkit_meter_even_less_good_value:"-webkit-meter-even-less-good-value",webkit_meter_inner_element:"-webkit-meter-inner-element",webkit_meter_optimum_value:"-webkit-meter-optimum-value",webkit_meter_suboptimum_value:"-webkit-meter-suboptimum-value",webkit_progress_bar:"-webkit-progress-bar",webkit_progress_inner_element:"-webkit-progress-inner-element",webkit_progress_value:"-webkit-progress-value",webkit_scrollbar:"-webkit-scrollbar",webkit_scrollbar_button:"-webkit-scrollbar-button",webkit_scrollbar_thumb:"-webkit-scrollbar-thumb",webkit_scrollbar_track:"-webkit-scrollbar-track",webkit_scrollbar_track_piece:"-webkit-scrollbar-track-piece",webkit_search_cancel_button:"-webkit-search-cancel-button",webkit_search_results_button:"-webkit-search-results-button",webkit_slider_runnable_track:"-webkit-slider-runnable-track",webkit_slider_thumb:"-webkit-slider-thumb",webkit_resizer:"-webkit-resizer",webkit_input_placeholder:"-webkit-input-placeholder",placeholder_shown:"placeholder-shown",autofill:"autofill",progress_value:"progress-value",progress_bar:"progress-bar",meter_optimum:"meter-optimum",meter_suboptimum:"meter-suboptimum",meter_sub_suboptimum:"meter-sub-suboptimum"};module.exports={cssPseudoElements:cssPseudoElements};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const{cssAdvancedSelectors:
|
|
1
|
+
const{cssAdvancedSelectors:cssAdvancedSelectors}=require("./cssAdvancedSelectors.js"),{cssProps:cssProps}=require("./cssProps.js"),{cssPseudoClasses:cssPseudoClasses}=require("./cssPseudoClasses.js"),{cssPseudoElements:cssPseudoElements}=require("./cssPseudoElements.js"),{resetCss:resetCss}=require("./resetCss.js"),{compilerTypeValid:compilerTypeValid}=require("./compilerType.js");module.exports={cssAdvancedSelectors:cssAdvancedSelectors,cssProps:cssProps,cssPseudoClasses:cssPseudoClasses,cssPseudoElements:cssPseudoElements,resetCss:resetCss,compilerTypeValid:compilerTypeValid};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const resetCss='\nhtml {\n margin: 0;\n padding: 0;\n vertical-align: baseline;\n margin-block-start: 0;\n margin-block-end: 0;\n margin-inline-start: 0;\n margin-inline-end: 0;\n box-sizing: border-box;\n background-color: transparent;\n border: 0;\n}\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo,\ndialog,\ninput,\nbutton {\n margin: 0;\n padding: 0;\n vertical-align: baseline;\n margin-block-start: 0;\n margin-block-end: 0;\n margin-inline-start: 0;\n margin-inline-end: 0;\n box-sizing: border-box;\n background-color: transparent;\n border: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\nsection {\n display: block;\n}\nbody {\n line-height: 1;\n}\nol,\nul {\n list-style: none;\n}\nblockquote,\nq {\n quotes: none;\n}\nblockquote::before,\nblockquote::after,\nq::before,\nq::after {\n content: "";\n content: none;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\n@supports (font: -apple-system-body) {\n html {\n font: -apple-system-body;\n }\n}\n@supports (font: system-ui) {\n html {\n font: system-ui;\n }\n}\n';module.exports={resetCss:resetCss};
|
package/dist/src/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const lib=require("./lib"),constants=require("./constants"),{bernovaStyles:bernovaStyles}=require("./app");module.exports={bernovaStyles:bernovaStyles,...lib,...constants,lib:lib,constants:constants};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const path=require("path"),tsConfigPaths=require("tsconfig-paths"),{readConfigData:readConfigData}=require("./readFile/readFile.utils.js"),compileConfig=async({dir:dir})=>{try{const configDir=path.resolve(dir,"bernova.config.json"),configData=await readConfigData(configDir);if(!configData)throw new Error(`Configuration file not found at ${configDir}`);const{themes:themes,provider:provider,tsconfigPath:tsconfigPath}=configData;if(!themes||!Array.isArray(themes)||0===themes.length)throw new Error("Configuration must include at least one theme");if(tsconfigPath)try{const tsConfig=path.resolve(dir,tsconfigPath),tsConfigData=await readConfigData(tsConfig);tsConfigData?.compilerOptions?(tsConfigPaths.register({baseUrl:tsConfigData.compilerOptions.baseUrl||dir,paths:tsConfigData.compilerOptions.paths||{}}),console.log(`TypeScript paths configured from ${tsconfigPath}`)):console.warn(`Invalid or empty tsconfig at ${tsconfigPath}`)}catch(error){console.warn(`Failed to load TypeScript configuration: ${error.message}`)}return{themes:themes,provider:provider}}catch(error){throw console.error("Failed to compile configuration:",error.message),error}};module.exports={compileConfig:compileConfig};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const path=require("path"),fs=require("fs"),{readThemeData:readThemeData}=require("./readFile/readFile.utils"),{fileExists:fileExists}=require("./fileExists/fileExists.utils"),compileThemes=({themeConfig:{name:name="bernova",prefix:prefix,theme:theme,foundations:foundations,globalStyles:globalStyles,mediaQueries:mediaQueries,stylesPath:stylesPath,fonts:fonts,resetCss:resetCss,bvTools:bvTools,typesTools:typesTools,foreignThemes:foreignThemes},dir:dir})=>{const paths=(()=>{const resolvedPaths={};return foundations?.name&&foundations?.path&&fileExists(dir,foundations.path)&&(resolvedPaths.foundations={path:path.resolve(dir,foundations.path),name:foundations.name}),theme?.name&&theme?.path&&fileExists(dir,theme.path)&&(resolvedPaths.theme={path:path.resolve(dir,theme.path),name:theme.name}),globalStyles?.name&&globalStyles?.path&&fileExists(dir,globalStyles.path)&&(resolvedPaths.global={path:path.resolve(dir,globalStyles.path),name:globalStyles.name}),mediaQueries?.name&&mediaQueries?.path&&fileExists(dir,mediaQueries.path)&&(resolvedPaths.media={path:path.resolve(dir,mediaQueries.path),name:mediaQueries.name}),resolvedPaths})();return{themeCss:readThemeData(paths),fonts:fonts,resetCss:resetCss,bvTools:bvTools,name:name,stylesPath:stylesPath,typesTools:typesTools,prefix:prefix,foreignThemes:foreignThemes}};module.exports={compileThemes:compileThemes};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const path=require("path"),fs=require("fs").promises,copyLocalFonts=async(localFonts,outputDir)=>{if(!localFonts||0===localFonts.length)return void console.log("No local fonts to copy.");const{default:ora}=await import("ora"),spinner=ora("Copying local fonts...").start();try{for(const font of localFonts)for(const weight in font.files){const srcPath=path.resolve(font.files[weight]),destDir=path.resolve(outputDir,"fonts"),destPath=path.resolve(destDir,path.basename(font.files[weight]));await fs.mkdir(destDir,{recursive:!0}),await fs.copyFile(srcPath,destPath),spinner.succeed(`Copied ${srcPath} to ${destPath}`)}}catch(error){spinner.fail("Failed to copy local fonts."),console.error(error)}};module.exports={copyLocalFonts:copyLocalFonts};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const path=require("path"),generateCssFonts=fonts=>{let css="";return fonts?.google?.length&&fonts.google.forEach(font=>{const weights=font.weights.join(";");css+=`@import url('https://fonts.googleapis.com/css2?family=${font.name.replace(/ /g,"+")}:wght@${weights}&display=swap');\n`}),fonts?.local?.length&&fonts.local.forEach(font=>{Object.entries(font.files).forEach(([weight,filePath])=>{css+=`\n @font-face {\n font-family: '${font.name}';\n src: url('./fonts/${path.basename(filePath)}') format('truetype');\n font-weight: ${weight};\n font-style: normal;\n }\n`})}),css};module.exports={generateCssFonts:generateCssFonts};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const extractDocFragment=({section:section,doc:doc})=>{const matcher=new RegExp(`/\\* ${section} \\*/([\\s\\S]*?)/\\* ${section} \\*/`),match=doc.match(matcher);return match?match[1].trim():""};module.exports={extractDocFragment:extractDocFragment};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const fs=require("fs"),path=require("path"),fileExists=(dir,currentPath)=>{try{if(!dir||!currentPath)return!1;const fullPath=path.resolve(dir,currentPath);return fs.existsSync(fullPath)}catch(error){return console.warn(`Error checking file existence: ${error.message}`),!1}};module.exports={fileExists:fileExists};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const{resetCss:
|
|
1
|
+
const{resetCss:defaultResetCss}=require("../../constants/resetCss"),{copyLocalFonts:copyLocalFonts}=require("../copyLocalFonts/copyLocalFonts.utils"),{generateCssFonts:generateCssFonts}=require("../copyLocalFonts/generateCssFonts.utils"),generateBaseCss=async({fonts:fonts,resetCss:resetCss,stylesPath:stylesPath})=>(fonts?.local&&Array.isArray(fonts.local)&&fonts.local.length>0&&await copyLocalFonts(fonts.local,stylesPath),(()=>{let baseCss="";if(fonts){const fontCss=generateCssFonts(fonts);fontCss&&(baseCss+=fontCss+"\n")}return resetCss&&(baseCss+=defaultResetCss+"\n"),baseCss})());module.exports={generateBaseCss:generateBaseCss};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const{filterGenerateCss:
|
|
1
|
+
const{filterGenerateCss:filterGenerateCss}=require("./helpers/filterGenerateCss.utils"),generateCSS=async({source:source,prefix:prefix,baseCss:baseCss="",compilerType:compilerType})=>{const{default:ora}=await import("ora"),spinner=ora("Generating CSS...").start();try{const{stylesCss:stylesCss,foundationsCss:foundationsCss,stylesDocs:stylesDocs,rootDocs:rootDocs,globalDocs:globalDocs}=filterGenerateCss({source:source,compilerType:compilerType,baseCss:baseCss,prefix:prefix});return spinner.succeed("CSS generation completed successfully."),{stylesCss:stylesCss,foundationsCss:foundationsCss,stylesDocs:stylesDocs,rootDocs:rootDocs,globalDocs:globalDocs}}catch(error){throw spinner.fail("Error generating CSS."),console.error(error),error}};module.exports={generateCSS:generateCSS};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const{cssAdvancedSelectors:
|
|
1
|
+
const{cssAdvancedSelectors:cssAdvancedSelectors}=require("../../../../constants/index.js"),advancedSelectorHandler=(selectors,ruleName,processSource)=>{selectors.forEach(key=>{for(const[selector,{$target:$target,...value}]of Object.entries(key))cssAdvancedSelectors[selector]&&$target&&processSource({source:value,theRule:`${ruleName}${cssAdvancedSelectors[selector]}${$target}`})})};module.exports={advancedSelectorHandler:advancedSelectorHandler};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const{separateStyles:
|
|
1
|
+
const{separateStyles:separateStyles}=require("../utils/separateStyles.utils.js"),attributeHandler=({attributes:attributes,ruleName:ruleName,processSource:processSource,carry:carry})=>{for(const[attr,properties]of Object.entries(attributes)){const attrLower=attr.toLowerCase(),attrName=carry?`${ruleName}[${carry}="${attrLower}"]`:`${ruleName}[${attrLower}="true"]`,{styles:styles,lib:lib,other:other}=separateStyles(properties),hasStyles=Object.entries(styles).length>0,hasLib=Object.entries(lib).length>0,hasOther=Object.entries(other).length>0;(hasStyles||hasLib)&&processSource({source:{...styles,...lib},theRule:attrName}),hasOther&&attributeHandler({attributes:other,ruleName:ruleName,processSource:processSource,carry:attrLower})}};module.exports={attributeHandler:attributeHandler};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const formatClassName=className=>className&&"string"==typeof className?className.toLowerCase().replace(/_/g,"-"):"";module.exports={formatClassName:formatClassName};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const{simplifyName:
|
|
1
|
+
const{simplifyName:simplifyName}=require("../../../simplifyName/simplifyName.utils"),handlerRegister=({register:register,prefix:prefix})=>{const componentsRegistered=new Set,processRegister=({rg:rg,space:space=2,lv:lv=1})=>{const currentSpace=" ".repeat(space);return Object.entries(rg).reduce((acc,[comp,value])=>{const component=comp.replace(`${prefix}-`,"");if("object"==typeof value){const isFirstLevel=1===lv,UC=isFirstLevel?component.toUpperCase():component;acc.prov.doc+=`${currentSpace}${UC}: {\n`,acc.prov.declare+=`${currentSpace}${UC}: {\n`,acc.comp.simple+=acc.comp.simple.length?` | '${UC}'`:`'${UC}'`,acc.comp.object+=isFirstLevel?`${currentSpace}${UC}: '${UC}',\n`:"";const nextSpace=space+2,nextLv=lv+1,{prov:{doc:doc,declare:declareType},tools:{doc:toolsDoc,declare:toolsDeclare}}=processRegister({rg:value,space:nextSpace,lv:nextLv});acc.prov.doc+=doc,acc.prov.declare+=declareType,acc.prov.doc+=`${currentSpace}},\n`,acc.prov.declare+=`${currentSpace}},\n`,acc.tools.doc+=toolsDoc,acc.tools.declare+=toolsDeclare}else if("boolean"==typeof value&&value){const componentTools=simplifyName(component);componentsRegistered.has(componentTools)||(componentsRegistered.add(componentTools),acc.tools.doc+=` ${componentTools}: '${component}',\n`,acc.tools.declare+=` ${component}: string,\n`);const provKey=component.split("__").at(-1);acc.prov.doc+=`${currentSpace}${provKey}: '${component}',\n`,acc.prov.declare+=`${currentSpace}${provKey}: string,\n`}else if("string"==typeof value){const compFromValue=simplifyName(value).replace(`${prefix}_`,"");componentsRegistered.has(compFromValue)||(componentsRegistered.add(compFromValue),acc.tools.doc+=` ${compFromValue}: '${value}',\n`,acc.tools.declare+=` ${compFromValue}: string,\n`);const provKey=component.split("__").at(-1);acc.prov.doc+=`${currentSpace}${provKey}: '${value}',\n`,acc.prov.declare+=`${currentSpace}${provKey}: string,\n`}else"function"==typeof value&&("dynamic_values"===component?acc.prov.doc+=`${currentSpace}${component}: ${value.toString()},\n`:"dynamic_values_type"===component&&(acc.prov.declare+=`${currentSpace}dynamic_values: ${value()},\n`));return acc},{comp:{simple:"",object:""},prov:{doc:"",declare:""},tools:{doc:"",declare:""}})};return processRegister({rg:register})};module.exports={handlerRegister:handlerRegister};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const{simplifyName:
|
|
1
|
+
const{simplifyName:simplifyName}=require("../../../simplifyName/simplifyName.utils"),{formatClassName:formatClassName}=require("../classnames/formatClassName.utils"),generateVars=({source:source,varName:varName="-",prefix:prefix})=>{const sourceEntries=Object.entries(source),{root:root,rootDocs:rootDocs}=sourceEntries.reduce((acc,[key,value])=>{const varKey=`${varName}-${formatClassName(key)}`;if("object"==typeof value&&null!==value){const{root:nestedRoot,rootDocs:nestedDocs}=generateVars({source:value,varName:varKey,prefix:prefix});acc.root+=nestedRoot,acc.rootDocs.doc+=nestedDocs.doc,acc.rootDocs.declare+=nestedDocs.declare}else{const rootRegisterKey=simplifyName(varKey).replace(`${prefix}_`,"");acc.root+=`${varKey}: ${value};\n`,acc.rootDocs.doc+=` ${rootRegisterKey}: 'var(${varKey})',\n`,acc.rootDocs.declare+=` ${rootRegisterKey}: string;\n`}return acc},{root:"",rootDocs:{doc:"",declare:""}});return{root:root,rootDocs:rootDocs}};module.exports={generateVars:generateVars};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const dynamic_values=styles=>Object.entries(styles).reduce((acc,[key,value])=>{const varName="--"+key.toLocaleLowerCase().replace("$","");return acc.string+=varName+": "+value+"; ",acc.object[varName]=value,acc},{string:"",object:{}}),dynamic_values_type=dynamicValues=>`(styles: { ${Object.keys(dynamicValues).reduce((acc,key)=>acc+`'${key}': string; `,"")}}) => { string: string; object: object } `,setDynamicRegister=({dynamicValues:dynamicValues,register:register,ruleName:ruleName,prefix:prefix})=>{const relatedComponent=ruleName.split("--")[0].split("__")[0].replace(prefix,"");relatedComponent in register||(register[relatedComponent]={}),register[relatedComponent].dynamic_values=dynamic_values,register[relatedComponent].dynamic_values_type=()=>dynamic_values_type(dynamicValues)};module.exports={setDynamicRegister:setDynamicRegister};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const processDynamicProps=dynamic=>{if(Array.isArray(dynamic))return dynamic.reduce((acc,curr)=>(acc[curr]=`var(--${curr.toLocaleLowerCase().replace("$","")})`,acc),{})};module.exports={processDynamicProps:processDynamicProps};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const{compilerTypeValid:
|
|
1
|
+
const{compilerTypeValid:compilerTypeValid}=require("../../../constants"),{generateVars:generateVars}=require("./cssVars/generateVars.utils"),{generateCssStyles:generateCssStyles}=require("./generateCssStyles.utils"),{generateGlobalStyles:generateGlobalStyles}=require("./other/generateGlobalStyles.utils"),filterGenerateCss=({source:source,compilerType:compilerType,baseCss:baseCss,prefix:prefix})=>{const{foundations:foundations,theme:theme,global:global,media:media}=source,hasFoundations=compilerType===compilerTypeValid.full||compilerType===compilerTypeValid.foundationOnly,hasTheme=compilerType===compilerTypeValid.full||compilerType===compilerTypeValid.componentOnly,{foundationsCss:foundationsCss,rootDocs:rootDocs,globalDocs:globalDocs}=(()=>{if(!hasFoundations)return{foundationsCss:"",rootDocs:{doc:"",declare:""},globalDocs:{doc:"",declare:""}};const{root:root,rootDocs:rootDocs}=foundations?generateVars({source:foundations,varName:prefix?`--${prefix}`:"-",prefix:prefix}):{root:"",rootDocs:{doc:"",declare:""}},{globalStyles:globalStyles,globalDocs:globalDocs}=global?generateGlobalStyles(global):{globalStyles:"",globalDocs:{doc:"",declare:""}};return{foundationsCss:`${baseCss}:root{\n${root}}\n${globalStyles}`,rootDocs:rootDocs,globalDocs:globalDocs}})(),{stylesCss:stylesCss,stylesDocs:stylesDocs}=(()=>{if(!hasTheme||!theme)return{stylesCss:"",stylesDocs:{}};const{styles:styles,stylesDocs:stylesDocs}=generateCssStyles({source:theme,mediaConfig:media,prefix:prefix});return{stylesCss:styles,stylesDocs:stylesDocs}})();return{stylesCss:stylesCss,foundationsCss:foundationsCss,stylesDocs:stylesDocs,rootDocs:rootDocs,globalDocs:globalDocs}};module.exports={filterGenerateCss:filterGenerateCss};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const{cssProps:
|
|
1
|
+
const{cssProps:cssProps}=require("../../../../constants/cssProps"),foreignHandler=({foreign:foreign,prefix:prefix})=>Object.entries(foreign).reduce((acc,[foreignName,{component:component,variant:variant,name:name=""}])=>{if(!component)return acc;let isMainSet=!1,structure={};const lowerName=name.toLocaleLowerCase(),componentVariant=variant&&component[variant];if(componentVariant){const lowerVariant=variant.toLocaleLowerCase();Object.entries(componentVariant).forEach(([key,value])=>{if(key in cssProps&&!(key in structure)&&(structure[lowerName]=`${prefix}${lowerName}--${lowerVariant}`),key.startsWith("_")){const subComponent=key.toLocaleLowerCase().substring(1);structure[subComponent]=`${prefix}${lowerName}__${subComponent}--${lowerVariant}`}if("$foreign"===key){const v=`$_${lowerVariant}`;v in structure||(structure[v]={}),structure[v]={...structure[v],...foreignHandler({foreign:value,prefix:prefix})}}})}return Object.entries(component).forEach(([key,value])=>{if(key in cssProps&&!isMainSet&&(structure[lowerName]=lowerName in structure?`${prefix}${lowerName} ${structure[lowerName]}`:`${prefix}${lowerName}`,isMainSet=!0),key.startsWith("_")){const subComponent=key.toLocaleLowerCase().substring(1),compoundedComponent=`${lowerName}__${subComponent}`;structure[subComponent]=subComponent in structure?`${prefix}${compoundedComponent} ${structure[subComponent]}`:`${prefix}${compoundedComponent}`}"$foreign"===key&&(structure={...structure,...foreignHandler({foreign:value,prefix:prefix})})}),acc[foreignName]=structure,acc},{});module.exports={foreignHandler:foreignHandler};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const{formatRuleName:
|
|
1
|
+
const{formatRuleName:formatRuleName,setForeignRegister:setForeignRegister,pseudoHandler:pseudoHandler,foreignHandler:foreignHandler,attributeHandler:attributeHandler,advancedSelectorHandler:advancedSelectorHandler,separateStyles:separateStyles,extractValues:extractValues,mediaQueriesHandler:mediaQueriesHandler,generateMediaQueries:generateMediaQueries,handlerRegister:handlerRegister,setDynamicRegister:setDynamicRegister,processDynamicProps:processDynamicProps}=require("./index.js"),generateCssStyles=({source:source,mediaConfig:mediaConfig,prefix:prefix})=>{let cssStyles="",register={};const mediaRegister={},prefixed=prefix?`${prefix}-`:"",processSource=({source:source,parentRule:parentRule,theRule:theRule})=>{const{styles:styles,lib:{$dynamicValues:$dynamicValues,...lib},other:other}=separateStyles(source),hasStyles=Object.entries(styles).length>0,hasOtherProps=Object.entries(other).length>0,hasLibProps=Object.entries(lib).length>0,dynamicValues=$dynamicValues?processDynamicProps($dynamicValues):void 0,ruleName=formatRuleName({theRule:theRule,parentRule:parentRule,register:register,hasStyles:hasStyles,prefix:prefixed});if(hasStyles&&(cssStyles+=`.${ruleName} { ${extractValues({styles:styles,dynamicValues:dynamicValues})} }\n`),hasLibProps){const{$pseudoClasses:$pseudoClasses,$pseudoElements:$pseudoElements,$mediaQueries:$mediaQueries,$attributes:$attributes,$advancedSelectors:$advancedSelectors,$foreign:$foreign}=lib;if(Object.entries(other).length&&processSource({source:other,parentRule:ruleName}),$pseudoClasses&&pseudoHandler({pseudoData:$pseudoClasses,ruleName:ruleName,processSource:processSource}),$pseudoElements&&pseudoHandler({pseudoData:$pseudoElements,ruleName:ruleName,processSource:processSource}),$mediaQueries&&mediaConfig&&mediaQueriesHandler({config:mediaConfig,mediaQueries:$mediaQueries,parentRule:ruleName,theRule:theRule,mediaRegister:mediaRegister}),$attributes&&attributeHandler({attributes:$attributes,ruleName:ruleName,processSource:processSource}),$advancedSelectors&&advancedSelectorHandler($advancedSelectors,ruleName,processSource),$foreign){const foreignRegister=foreignHandler({foreign:$foreign,prefix:prefixed}),foreignName=ruleName.replace(prefixed,"");setForeignRegister({ruleName:foreignName,foreignRegister:foreignRegister,register:register})}dynamicValues&&setDynamicRegister({dynamicValues:dynamicValues,register:register,ruleName:ruleName,prefix:prefixed})}if(hasOtherProps)for(const[key,value]of Object.entries(other))if("object"==typeof value){const{$pseudoClasses:$pseudoClasses,$pseudoElements:$pseudoElements,$mediaQueries:$mediaQueries,$attributes:$attributes,$advancedSelectors:$advancedSelectors,$foreign:$foreign,$dynamicValues:$dynamicValues,...css}=value,{styles:styles,other:other}=separateStyles(css),hasStyles=Object.entries(styles).length>0,dynamicValues=$dynamicValues?processDynamicProps($dynamicValues):void 0,ruleName=formatRuleName({key:key,theRule:theRule,parentRule:parentRule,register:register,hasStyles:hasStyles,prefix:prefixed});if(hasStyles&&(cssStyles+=`.${ruleName} { ${extractValues({styles:styles,dynamicValues:dynamicValues})} }\n`),Object.entries(other).length&&processSource({source:other,parentRule:ruleName}),$pseudoClasses&&pseudoHandler({pseudoData:$pseudoClasses,ruleName:ruleName,processSource:processSource}),$pseudoElements&&pseudoHandler({pseudoData:$pseudoElements,ruleName:ruleName,processSource:processSource}),$mediaQueries&&mediaConfig&&mediaQueriesHandler({config:mediaConfig,mediaQueries:$mediaQueries,parentRule:ruleName,theRule:theRule,mediaRegister:mediaRegister}),$attributes&&attributeHandler({attributes:$attributes,ruleName:ruleName,processSource:processSource}),$advancedSelectors&&advancedSelectorHandler($advancedSelectors,ruleName,processSource),$foreign){const foreignRegister=foreignHandler({foreign:$foreign,prefix:prefixed}),foreignName=ruleName.replace(prefixed,"");setForeignRegister({ruleName:foreignName,foreignRegister:foreignRegister,register:register})}dynamicValues&&setDynamicRegister({dynamicValues:dynamicValues,register:register,ruleName:ruleName,prefix:prefixed})}};processSource({source:source});const stylesDocs=handlerRegister({register:register,prefix:prefix}),cssMediaStyles=generateMediaQueries(mediaRegister);return{styles:cssStyles.concat(cssMediaStyles),stylesDocs:stylesDocs}};module.exports={generateCssStyles:generateCssStyles};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const{advancedSelectorHandler:
|
|
1
|
+
const{advancedSelectorHandler:advancedSelectorHandler}=require("./advanceselector/advancedSelectorHandler.utils"),{attributeHandler:attributeHandler}=require("./attribute/attributeHandler.utils"),{formatClassName:formatClassName}=require("./classnames/formatClassName.utils"),{generateVars:generateVars}=require("./cssVars/generateVars.utils"),{foreignHandler:foreignHandler}=require("./foreign/foreignHandler.utils"),{generateMediaQueries:generateMediaQueries}=require("./mediaqueries/generateMediaQueries.utils"),{mediaQueriesHandler:mediaQueriesHandler}=require("./mediaqueries/mediaQueriesHandler.utils"),{declareCssType:declareCssType}=require("./other/declareCssType.utils"),{generateGlobalStyles:generateGlobalStyles}=require("./other/generateGlobalStyles.utils"),{pseudoHandler:pseudoHandler}=require("./pseudo/pseudoHandler.utils"),{formatRuleName:formatRuleName,setForeignRegister:setForeignRegister}=require("./rulename/formatRuleName.utils"),{extractValues:extractValues}=require("./utils/extractValues.utils"),{processCssWithPostcss:processCssWithPostcss}=require("./utils/processCss.utils"),{separateStyles:separateStyles}=require("./utils/separateStyles.utils"),{validatePreviouslyExists:validatePreviouslyExists}=require("./utils/validatePreviouslyExists.utils"),{formattedStatKey:formattedStatKey}=require("./utils/formattedStatKey.utils"),{handlerRegister:handlerRegister}=require("./classnames/handlerRegister.utils"),{setDynamicRegister:setDynamicRegister}=require("./dynamicValues/dynamicValues.utils"),{processDynamicProps:processDynamicProps}=require("./dynamicValues/processDynamic.utils");module.exports={advancedSelectorHandler:advancedSelectorHandler,attributeHandler:attributeHandler,formatClassName:formatClassName,generateVars:generateVars,foreignHandler:foreignHandler,generateMediaQueries:generateMediaQueries,mediaQueriesHandler:mediaQueriesHandler,declareCssType:declareCssType,generateGlobalStyles:generateGlobalStyles,pseudoHandler:pseudoHandler,formatRuleName:formatRuleName,setForeignRegister:setForeignRegister,extractValues:extractValues,processCssWithPostcss:processCssWithPostcss,separateStyles:separateStyles,validatePreviouslyExists:validatePreviouslyExists,formattedStatKey:formattedStatKey,handlerRegister:handlerRegister,setDynamicRegister:setDynamicRegister,processDynamicProps:processDynamicProps};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const generateMediaQueries=mediaRegister=>{let cssMediaStyles="";return Object.entries(mediaRegister).forEach(([mediaName,mediaStyles])=>{cssMediaStyles+=`@media ${mediaName} {\n${mediaStyles}}\n`}),cssMediaStyles};module.exports={generateMediaQueries:generateMediaQueries};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const{advancedSelectorHandler:
|
|
1
|
+
const{advancedSelectorHandler:advancedSelectorHandler}=require("../advanceselector/advancedSelectorHandler.utils"),{attributeHandler:attributeHandler}=require("../attribute/attributeHandler.utils"),{formatClassName:formatClassName}=require("../classnames/formatClassName.utils"),{pseudoHandler:pseudoHandler}=require("../pseudo/pseudoHandler.utils"),{formatRuleName:formatRuleName}=require("../rulename/formatRuleName.utils"),{extractValues:extractValues}=require("../utils/extractValues.utils"),{separateStyles:separateStyles}=require("../utils/separateStyles.utils"),handleMediaQueriesStyles=({mediaStyles:mediaStyles,parentRule:parentRule,theRule:theRule})=>{let cssMediaStyles="",mediaRegister={};const processMediaStyles=({source:source,parentRule:parentRule,theRule:theRule})=>{const{styles:styles,other:other}=separateStyles(source),hasStyles=Object.entries(styles).length>0,hasOtherProps=Object.entries(other).length>0,ruleName=formatRuleName({key:parentRule,theRule:theRule,parentRule:void 0,register:mediaRegister,hasStyles:hasStyles,prefix:""});if(hasStyles&&(cssMediaStyles+=`.${ruleName} { ${extractValues({styles:styles})} }\n`),hasOtherProps)for(const[key,value]of Object.entries(other))if("object"==typeof value){const{$pseudoClasses:$pseudoClasses,$pseudoElements:$pseudoElements,$mediaQueries:$mediaQueries,$attributes:$attributes,$advancedSelectors:$advancedSelectors,$foreign:$foreign,$extends:$extends,$recycle:$recycle,$variables:$variables,...css}=value,{styles:styles,other:other}=separateStyles(css),hasStyles=Object.entries(styles).length>0,ruleName=formatRuleName({key:key,theRule:theRule,parentRule:parentRule,register:mediaRegister,hasStyles:hasStyles,prefix:""});if(hasStyles&&(cssMediaStyles+=`.${ruleName} { ${extractValues({styles:styles})} }\n`),Object.entries(other).length&&processMediaStyles({source:other,parentRule:ruleName}),$pseudoClasses&&pseudoHandler({pseudoData:$pseudoClasses,ruleName:ruleName,processSource:processMediaStyles}),$pseudoElements&&pseudoHandler({pseudoData:$pseudoElements,ruleName:ruleName,processSource:processMediaStyles}),$attributes&&attributeHandler({attributes:$attributes,ruleName:ruleName,processSource:processMediaStyles}),$advancedSelectors&&advancedSelectorHandler($advancedSelectors,ruleName,processMediaStyles),$foreign){const[comp,..._]=ruleName.split("--"),component=comp.length?comp:"",mainComponent=component.includes("__")?component.split("__")[0]:component;Object.entries($foreign).forEach(([key,value])=>{processSource({source:value,parentRule:`${mainComponent}-${key}`})})}}};return processMediaStyles({source:mediaStyles,theRule:theRule,parentRule:parentRule}),cssMediaStyles},mediaQueriesHandler=({config:config,mediaQueries:mediaQueries,parentRule:parentRule,theRule:theRule,mediaRegister:mediaRegister})=>{Object.entries(mediaQueries).forEach(([media,mediaStyles])=>{const relatedConfig=config.find(c=>c.name===media);if("object"==typeof mediaStyles&&Object.keys(mediaStyles).length){const{$type:$type="",$values:$values,...rest}=mediaStyles,cssMediaStyles=handleMediaQueriesStyles({mediaStyles:rest,parentRule:parentRule,theRule:theRule});let _type,_values;if(relatedConfig){const{type:type="",values:values}=relatedConfig;_type=type,_values=values}else $values&&(_type=$type,_values=$values);let localValues="";Object.entries(_values).forEach(([key,value],idx)=>{const formattedKey=formatClassName(key);(idx>0||_type.length)&&(localValues+=" and"),localValues+=` (${formattedKey}: ${value})`});const mediaName=`${_type}${localValues}`;mediaName in mediaRegister?mediaRegister[mediaName]+=cssMediaStyles:mediaRegister[mediaName]=cssMediaStyles}})};module.exports={mediaQueriesHandler:mediaQueriesHandler};
|