bernova 0.2.0 → 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 +31 -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 +59 -36
- 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,37 @@ 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
|
+
|
|
8
39
|
## [0.1.2] - 2025-10-28
|
|
9
40
|
|
|
10
41
|
### 🔧 Changed
|
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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const path=require("path"),{cssProps:cssProps,cssPseudoClasses:cssPseudoClasses,cssPseudoElements:cssPseudoElements,cssAdvancedSelectors:cssAdvancedSelectors}=require("../../../../constants/index.js"),{writeDoc:writeDoc}=require("../../../writeDoc/writeDoc.utils.js"),declareCssType=async(mediaQueries,dir)=>{const generateTypeDefinition=(name,content)=>`type ${name} = {\n${content}\n};\n`,generateInterfaceContent=(obj,additionalContent="")=>Object.keys(obj).map(key=>`${key}?: ${additionalContent}`).join("\n"),libExtendsInterface=generateTypeDefinition("LibExtendsType","$extends?: string;"),libRecycleInterface=generateTypeDefinition("LibRecycleType","$recycle?: string;"),foreignInterface=generateTypeDefinition("ForeignType","$foreign?: { [key: string]: { [key: string]: CssPropsType & CssPseudoJoinedType & CssAddicionalTypes } };"),cssPropsInterface=generateTypeDefinition("CssPropsType",`LibExtendsType & LibRecycleType & ForeignType & {\n${generateInterfaceContent(cssProps,"string;")}\n}`),cssAdvancedSelectorsInterface=generateTypeDefinition("CssAdvancedSelectorsType",generateInterfaceContent(cssAdvancedSelectors,"CssPropsType & { $target: string }")),cssPseudoJoined=generateTypeDefinition("CssPseudoJoinedType","$pseudoClasses?: CssPseudoClassesType;\n$pseudoElements?: CssPseudoElementsType;"),cssAddicionalTypes=generateTypeDefinition("CssAddicionalTypes","$advancedSelectors?: CssAdvancedSelectorsType[];\n$mediaQueries?: MediaQueriesType;\n"),cssPseudoClassesInterface=generateTypeDefinition("CssPseudoClassesType",generateInterfaceContent(cssPseudoClasses,"CssPropsType & { $target?: string } & CssAddicionalTypes & { $attributes?: CssAttributesType } | CssPseudoElementsType & CssAddicionalTypes & { $attributes?: CssAttributesType } | CssPseudoClassesType & CssAddicionalTypes & { $attributes?: CssAttributesType };")),cssPseudoElementsInterface=generateTypeDefinition("CssPseudoElementsType",generateInterfaceContent(cssPseudoElements,"CssPropsType & CssAddicionalTypes & { $attributes?: CssAttributesType } | CssPseudoElementsType & CssAddicionalTypes & { $attributes?: CssAttributesType } | CssPseudoClassesType & CssAddicionalTypes & { $attributes?: CssAttributesType };")),attributesInterface=generateTypeDefinition("CssAttributesType","[key: string]: CssPropsType & CssAddicionalTypes & CssPseudoJoinedType | {\n[key: string]: CssPropsType & CssAddicionalTypes & CssPseudoJoinedType \n};");let mediaQueriesInterface="";mediaQueries?.screen&&Object.keys(mediaQueries.screen).length&&(mediaQueriesInterface=`${generateTypeDefinition("MediaScreenType",generateInterfaceContent(mediaQueries.screen,"CssPropsType;"))}type MediaQueriesType = {\n screen?: MediaScreenType;\n};\n`);const finalTypeDoc=[libExtendsInterface,libRecycleInterface,foreignInterface,cssPropsInterface,cssAdvancedSelectorsInterface,cssPseudoJoined,cssAddicionalTypes,cssPseudoClassesInterface,cssPseudoElementsInterface,mediaQueriesInterface,attributesInterface,"export type CssGeneratorType = CssPropsType & {\n$pseudoClasses?: CssPseudoClassesType;\n$pseudoElements?: CssPseudoElementsType;\n$mediaQueries?: MediaQueriesType;\n$attributes?: CssAttributesType;\n$advancedSelectors?: CssAdvancedSelectorsType[];\n};\n"].join("");await writeDoc(path.resolve(dir,"generatorType.ts"),finalTypeDoc,"generatorType.ts")};module.exports={declareCssType:declareCssType};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const{simplifyName:
|
|
1
|
+
const{simplifyName:simplifyName}=require("../../../simplifyName/simplifyName.utils.js"),{extractValues:extractValues}=require("../utils/extractValues.utils.js"),generateGlobalStyles=globalStyles=>globalStyles.reduce((acc,{targets:targets,styles:styles})=>{const stylesString=extractValues({styles:styles});acc.globalStyles+=`${targets} { ${stylesString} }\n`;const allTargets=targets.split(" ").filter(t=>t.startsWith("."));return allTargets.length&&allTargets.forEach(target=>{const formattedTarget=simplifyName(target);acc.globalDocs.doc+=` ${formattedTarget}: '${target}',\n`,acc.globalDocs.declare+=` ${formattedTarget}: string;\n`}),acc},{globalStyles:"",globalDocs:{doc:"",declare:""}});module.exports={generateGlobalStyles:generateGlobalStyles};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const{cssPseudoClasses:
|
|
1
|
+
const{cssPseudoClasses:cssPseudoClasses,cssPseudoElements:cssPseudoElements}=require("../../../../constants/index.js"),{separateStyles:separateStyles}=require("../utils/separateStyles.utils.js"),pseudoHandler=({pseudoData:pseudoData,ruleName:ruleName,processSource:processSource})=>{for(const[pseudo,properties]of Object.entries(pseudoData)){const pseudoType=(()=>pseudo in cssPseudoClasses?`:${cssPseudoClasses[pseudo]}`:pseudo in cssPseudoElements?`::${cssPseudoElements[pseudo]}`:"")(),{$target:$target,...props}=properties,completeRuleName=`${ruleName}${$target?`${pseudoType}(${$target})`:`${pseudoType}`}`,{styles:styles,lib:lib,other:other}=separateStyles(props),processStyles=Object.entries(styles).length>0||Object.entries(lib).length>0;Object.keys(other).some(oth=>oth in cssPseudoClasses||oth in cssPseudoElements)&&pseudoHandler({pseudoData:other,ruleName:completeRuleName,processSource:processSource}),processStyles&&processSource({source:{...styles,...lib},theRule:completeRuleName})}};module.exports={pseudoHandler:pseudoHandler};
|