bernova 1.4.0 → 1.5.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 +14 -0
- package/README.md +2 -2
- package/dist/bin/buildstyle.js +1 -1
- package/dist/interfaces/componentsType.ts +462 -0
- package/dist/src/constants/compilerType.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/types/lib/generateProvider/generateProvider.utils.d.ts +17 -6
- package/package.json +6 -2
- package/src/constants/compilerType.js +2 -2
- package/src/lib/generateCssDoc/generateCssDoc.util.js +4 -6
- package/src/lib/generateProvider/generateProvider.utils.js +239 -215
|
@@ -1 +1 @@
|
|
|
1
|
-
const s=require("fs"),e=require("fs").promises,a=require("path"),{writeDoc:
|
|
1
|
+
const s=require("fs"),e=require("fs").promises,a=require("path"),{writeDoc:t}=require("../writeDoc/writeDoc.utils"),{compilerTypeValid:o}=require("../../constants"),{simplifyName:l}=require("../simplifyName/simplifyName.utils"),i=s=>`export default {${s}}`,r=(s,e)=>`export interface ${e} {${s}}\n`,c=async({dir:s,content:e,fileName:o,theme:l,declare:c=null})=>{const n=c?r(e,c):i(e),m=`stats/${l}/${o}`,p=a.resolve(s,m);await t(p,n,m)},n=async({providerDocs:s,declarationHelp:e,compilerType:i,dir:r})=>{const n=Object.entries(s),m=[];for(const[s,a]of n){m.push(s);const t=a.beforeFiles?.length>0,n=a.afterFiles?.length>0,p=t?`before:${a.beforeFiles}`:"",d=n?`after:${a.afterFiles}`:"",$=t||n;let C=$?"foreign:{":"";C+=p,C+=p.length&&d.length?",":"",C+=d,C+=$?"}":"";const b="cssPath"in a?`'${s}':{css:'${a.cssPath}',${C}}`:"";if(await c({dir:r,content:b,fileName:"cssTheme.js",theme:s}),e){const e="cssPath"in a?`'${s}':{css:string,foreign?:{before?:string[],after?:string[]}}`:"",t=`${l(s)}CssTheme`;await c({dir:r,content:e,fileName:"cssTheme.d.ts",theme:s,declare:t})}if(i!==o.foundationOnly){const t="classNames"in a?`'${s}':{${a.classNames.doc}}`:"";await c({dir:r,content:t,fileName:"cssClassNames.js",theme:s});const o="availableComp"in a?`'${s}':{${a.availableComp.doc}}`:"";if(await c({dir:r,content:o,fileName:"cssAvailableComponents.js",theme:s}),e){const e="classNames"in a?`'${s}':{${a.classNames.declare}}`:"",t=`${l(s)}CssClassNames`;await c({dir:r,content:e,fileName:"cssClassNames.d.ts",theme:s,declare:t});const o="availableComp"in a?`'${s}':{${a.availableComp.declare}}`:"",i=`${l(s)}CssAvailableComponents`;await c({dir:r,content:o,fileName:"cssAvailableComponents.d.ts",theme:s,declare:i})}}if(i!==o.componentOnly){const t="variables"in a?`'${s}':{${a.variables.doc}}`:"";await c({dir:r,content:t,fileName:"cssVars.js",theme:s});const o="globalStyles"in a?`'${s}':{${a.globalStyles.doc}}`:"";await c({dir:r,content:o,fileName:"cssGlobalStyles.js",theme:s});const i="mediaQueries"in a?`'${s}':{${a.mediaQueries.doc}}`:"";if(await c({dir:r,content:i,fileName:"cssMediaQueries.js",theme:s}),e){const e="variables"in a?`'${s}':{${a.variables.declare}}`:"",t=`${l(s)}CssVars`;await c({dir:r,content:e,fileName:"cssVars.d.ts",theme:s,declare:t});const o="globalStyles"in a?`'${s}':{${a.globalStyles.declare}}`:"",i=`${l(s)}CssGlobalStyles`;await c({dir:r,content:o,fileName:"cssGlobalStyles.d.ts",theme:s,declare:i});const n="mediaQueries"in a?`'${s}':{${a.mediaQueries.declare}}`:"",m=`${l(s)}CssMediaQueries`;await c({dir:r,content:n,fileName:"cssMediaQueries.d.ts",theme:s,declare:m})}}}const p={toImport:"",cssThemes:"export const cssThemes = {",cssVars:"export const cssVars = {",cssClassNames:"export const cssClasses = {",cssAvailableComponents:"export const cssAvailableComponents = {",cssGlobalStyles:"export const cssGlobalStyles = {",cssMediaQueries:"export const cssMediaQueries = {"},d={toImport:"",cssThemes:"export declare const cssThemes: ",cssVars:"export declare const cssVars: ",cssClassNames:"export declare const cssClasses: ",cssAvailableComponents:"export declare const cssAvailableComponents: ",cssGlobalStyles:"export declare const cssGlobalStyles: ",cssMediaQueries:"export declare const cssMediaQueries: "};m.forEach((s,a)=>{const t=l(s);p.toImport+=`import ${t}CssTheme from './${s}/cssTheme.js';\n`,p.toImport+=`import ${t}CssVars from './${s}/cssVars.js';\n`,p.toImport+=`import ${t}CssClassNames from './${s}/cssClassNames.js';\n`,p.toImport+=`import ${t}CssAvailableComponents from './${s}/cssAvailableComponents.js';\n`,p.toImport+=`import ${t}CssGlobalStyles from './${s}/cssGlobalStyles.js';\n`,p.toImport+=`import ${t}CssMediaQueries from './${s}/cssMediaQueries.js';\n`,p.cssThemes+=`...${t}CssTheme,`,p.cssVars+=`...${t}CssVars,`,p.cssClassNames+=`...${t}CssClassNames,`,p.cssAvailableComponents+=`...${t}CssAvailableComponents,`,p.cssGlobalStyles+=`...${t}CssGlobalStyles,`,p.cssMediaQueries+=`...${t}CssMediaQueries,`,e&&(d.toImport+=`import type { ${t}CssTheme } from './${s}/cssTheme.d.ts';\n`,d.toImport+=`import type { ${t}CssVars } from './${s}/cssVars.d.ts';\n`,d.toImport+=`import type { ${t}CssClassNames } from './${s}/cssClassNames.d.ts';\n`,d.toImport+=`import type { ${t}CssAvailableComponents } from './${s}/cssAvailableComponents.d.ts';\n`,d.toImport+=`import type { ${t}CssGlobalStyles } from './${s}/cssGlobalStyles.d.ts';\n`,d.toImport+=`import type { ${t}CssMediaQueries } from './${s}/cssMediaQueries.d.ts';\n`,a>0&&(d.cssThemes+=" & ",d.cssVars+=" & ",d.cssClassNames+=" & ",d.cssAvailableComponents+=" & ",d.cssGlobalStyles+=" & ",d.cssMediaQueries+=" & "),d.cssThemes+=`${t}CssTheme`,d.cssVars+=`${t}CssVars`,d.cssClassNames+=`${t}CssClassNames`,d.cssAvailableComponents+=`${t}CssAvailableComponents`,d.cssGlobalStyles+=`${t}CssGlobalStyles`,d.cssMediaQueries+=`${t}CssMediaQueries`)}),p.cssThemes+="}",p.cssVars+="}",p.cssClassNames+="}",p.cssAvailableComponents+="}",p.cssGlobalStyles+="}",p.cssMediaQueries+="}";const $=`${p.toImport}\n${p.cssThemes}\n${p.cssVars}\n${p.cssClassNames}\n${p.cssAvailableComponents}\n${p.cssGlobalStyles}\n${p.cssMediaQueries}\n`;if(await t(a.join(r,"stats/stats.js"),$,"stats.js"),e){d.cssThemes+=";",d.cssVars+=";",d.cssClassNames+=";",d.cssAvailableComponents+=";",d.cssGlobalStyles+=";",d.cssMediaQueries+=";";const s=`${d.toImport}\n${d.cssThemes}\n${d.cssVars}\n${d.cssClassNames}\n${d.cssAvailableComponents}\n${d.cssGlobalStyles}\n${d.cssMediaQueries}\n`;await t(a.join(r,"stats/stats.d.ts"),s,"stats.d.ts")}},m=async({dir:s,providerDocs:o,declarationHelp:l,providerName:i,compilerType:r})=>{await n({providerDocs:o,declarationHelp:l,compilerType:r,dir:s});const c=a.resolve(__dirname,"./template/providerTemplate.js");let m=await e.readFile(c,"utf8");if(m=m.replace(/\$_Provider_\$/g,i),await t(`${s}/${i}.js`,m,`${i}.js`),l){const o=a.resolve(__dirname,"./template/providerTemplate.d.ts");let l=await e.readFile(o,"utf8");l=l.replace(/\$_Provider_\$/g,i),await t(`${s}/${i}.d.ts`,l,`${i}.d.ts`)}};module.exports={generateProvider:m};
|
|
@@ -1,7 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create the Bernova provider file and the stats document
|
|
3
|
+
*
|
|
4
|
+
* @param {object} param
|
|
5
|
+
* @param {string} param.dir destination directory
|
|
6
|
+
* @param {object} param.providerDocs provider documentation
|
|
7
|
+
* @param {boolean} param.declarationHelp enable typescript declaration files
|
|
8
|
+
* @param {string} param.providerName provider name
|
|
9
|
+
* @param {string} param.compilerType compiler type
|
|
10
|
+
* @return {void}
|
|
11
|
+
*/
|
|
1
12
|
export function generateProvider({ dir, providerDocs, declarationHelp, providerName, compilerType, }: {
|
|
2
|
-
dir:
|
|
3
|
-
providerDocs:
|
|
4
|
-
declarationHelp:
|
|
5
|
-
providerName:
|
|
6
|
-
compilerType:
|
|
7
|
-
}):
|
|
13
|
+
dir: string;
|
|
14
|
+
providerDocs: object;
|
|
15
|
+
declarationHelp: boolean;
|
|
16
|
+
providerName: string;
|
|
17
|
+
compilerType: string;
|
|
18
|
+
}): void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bernova",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "The best way to write CSS with Javascript syntax",
|
|
5
5
|
"main": "./dist/src/index.js",
|
|
6
6
|
"types": "./dist/src/index.d.ts",
|
|
@@ -9,6 +9,9 @@
|
|
|
9
9
|
"types": "./dist/src/index.d.ts",
|
|
10
10
|
"require": "./dist/src/index.js",
|
|
11
11
|
"default": "./dist/src/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./interfaces": {
|
|
14
|
+
"types": "./dist/interfaces/componentsType.ts"
|
|
12
15
|
}
|
|
13
16
|
},
|
|
14
17
|
"bin": {
|
|
@@ -104,7 +107,8 @@
|
|
|
104
107
|
"build": "pnpm run clean && pnpm run build:types && pnpm run build:vite && pnpm run build:copy",
|
|
105
108
|
"build:vite": "vite build",
|
|
106
109
|
"build:types": "tsc --declaration --emitDeclarationOnly --outDir types",
|
|
107
|
-
"build:copy": "
|
|
110
|
+
"build:copy-interfaces": "cp -r interfaces dist/interfaces && echo 'bernova components interfaces copied'",
|
|
111
|
+
"build:copy": "pnpm run build:copy-src && pnpm run build:copy-interfaces && pnpm run build:copy-bin && pnpm run build:optimize",
|
|
108
112
|
"build:copy-src": "cp -r src dist/ && echo 'Source files copied for compatibility'",
|
|
109
113
|
"build:copy-bin": "mkdir -p dist/bin && cp -r bin/* dist/bin/ && chmod +x dist/bin/*.js && echo 'CLI binaries copied and made executable'",
|
|
110
114
|
"build:optimize": "pnpm run build:remove-tests && pnpm run build:remove-docs && pnpm run build:minify-cli",
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
*/
|
|
5
5
|
const compilerTypeValid = {
|
|
6
6
|
/** Generate only foundation styles (CSS variables, base styles, reset CSS) */
|
|
7
|
-
foundationOnly: '
|
|
7
|
+
foundationOnly: 'foundation-only',
|
|
8
8
|
/** Generate only component/theme styles (classes, utilities, media queries) */
|
|
9
|
-
componentOnly: '
|
|
9
|
+
componentOnly: 'component-only',
|
|
10
10
|
/** Generate both foundation and component styles (complete build) */
|
|
11
11
|
full: 'full',
|
|
12
12
|
};
|
|
@@ -30,14 +30,12 @@ const generateCssDoc = ({
|
|
|
30
30
|
const createComponents = compilerType !== compilerTypeValid.foundationOnly;
|
|
31
31
|
|
|
32
32
|
// Generate foundations section (CSS variables, reset, base styles)
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
: oldData;
|
|
33
|
+
const crrFoundation = createFoundations ? foundationsCss : oldData;
|
|
34
|
+
const foundations = `/* === BERNOVA FOUNDATIONS === */\n${crrFoundation.trim()}/* === END FOUNDATIONS === */\n`
|
|
36
35
|
|
|
37
36
|
// Generate components section (component styles, utilities, media queries)
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
: oldData;
|
|
37
|
+
const crrComponents = createComponents ? stylesCss : oldData;
|
|
38
|
+
const components = `/* === BERNOVA COMPONENTS === */\n${crrComponents.trim()}/* === END COMPONENTS === */\n`
|
|
41
39
|
|
|
42
40
|
// Combine sections into final CSS document
|
|
43
41
|
const cssDocument = `${foundations}${components}`;
|