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.
@@ -1 +1 @@
1
- const s=require("fs"),e=require("fs").promises,a=require("path"),{writeDoc:n}=require("../writeDoc/writeDoc.utils"),{compilerTypeValid:l}=require("../../constants"),{extractDocFragment:o}=require("../extractDocFragment/extractDocFragment.utils"),c=async({providerDocs:n,declarationHelp:c,compilerType:t,dir:r})=>{const i={doc:{cssThemes:"/* CssThemes */\nexport const cssThemes = {\n",cssVars:"/* CssVars */\nexport const cssVars = {\n",cssClasses:"/* CssClasses */\nexport const cssClasses = {\n",cssAvailableComponents:"/* CssAvailableComponents */\nexport const cssAvailableComponents = {\n",cssGlobalStyles:"/* CssGlobalStyles */\nexport const cssGlobalStyles = {\n",cssMediaQueries:"/* CssMediaQueries */\nexport const cssMediaQueries = {\n"},declare:{cssThemes:"/* CssThemes */\nexport declare const cssThemes: {\n",cssVars:"/* CssVars */\nexport interface CssVars {\n",cssClasses:"/* CssClasses */\nexport interface CssClasses {\n",cssAvailableComponents:"/* CssAvailableComponents */\nexport interface CssAvailableComponents {\n",cssGlobalStyles:"/* CssGlobalStyles */\nexport interface CssGlobalStyles {\n",cssMediaQueries:"/* CssMediaQueries */\nexport interface CssMediaQueries {\n"}};if(s.existsSync(r)){const s=await e.readFile(a.resolve(r,"stats/stats.js"),"utf8");if(t===l.componentOnly){const e=o({section:"CssVars",doc:s}),a=o({section:"CssGlobalStyles",doc:s}),n=o({section:"CssMediaQueries",doc:s});i.doc.cssVars=`/* CssVars */\n${e}\n/* CssVars */\n`,i.doc.cssGlobalStyles=`/* CssGlobalStyles */\n${a}\n/* CssGlobalStyles */\n`,i.doc.cssMediaQueries=`/* CssMediaQueries */\n${n}\n/* CssMediaQueries */\n`}if(t===l.foundationOnly){const e=o({section:"CssClasses",doc:s}),a=o({section:"CssAvailableComponents",doc:s});i.doc.cssClasses=`/* CssClasses */\n${e}\n/* CssClasses */\n`,i.doc.cssAvailableComponents=`/* CssAvailableComponents */\n${a}\n/* CssAvailableComponents */\n`}if(c){const s=await e.readFile(a.resolve(r,"stats/stats.d.ts"),"utf8");if(t===l.componentOnly){const e=o({section:"CssVars",doc:s}),a=o({section:"CssGlobalStyles",doc:s}),n=o({section:"CssMediaQueries",doc:s});i.declare.cssVars=`/* CssVars */\n${e}\n/* CssVars */\n`,i.declare.cssGlobalStyles=`/* CssGlobalStyles */\n${a}\n/* CssGlobalStyles */\n`,i.declare.cssMediaQueries=`/* CssMediaQueries */\n${n}\n/* CssMediaQueries */\n`}if(t===l.foundationOnly){const e=o({section:"CssClasses",doc:s}),a=o({section:"CssAvailableComponents",doc:s});i.declare.cssClasses=`/* CssClasses */\n${e}\n/* CssClasses */\n`,i.declare.cssAvailableComponents=`/* CssAvailableComponents */\n${a}\n/* CssAvailableComponents */\n`}}}const d=Object.entries(n),C=t!==l.componentOnly,p=t!==l.foundationOnly;return d.reduce((s,[e,a],n)=>{const l=a.beforeFiles?.length>0,o=a.afterFiles?.length>0,t=l?` before: ${a.beforeFiles}, `:"",r=o?` after: ${a.afterFiles}, `:"",i=l||o?` foreign: {${t}${r}},`:"";return s.doc.cssThemes+=` '${e}': { css: '${a.cssPath}',${i} },\n`,c&&(s.declare.cssThemes+=` '${e}': { css: string; foreign?: { before?: string[]; after?: string[]; }; };\n`),C&&(s.doc.cssVars+=` '${e}': {\n${a.variables?.doc||""} },\n`,s.doc.cssGlobalStyles+=` '${e}': {\n${a.globalStyles?.doc||""} },\n`,s.doc.cssMediaQueries+=` '${e}': {\n${a.mediaQueries?.doc||""} },\n`,c&&(s.declare.cssVars+=` '${e}': {\n${a.variables?.declare||""} },\n`,s.declare.cssGlobalStyles+=` '${e}': {\n${a.globalStyles?.declare||""} },\n`,s.declare.cssMediaQueries+=` '${e}': {\n${a.mediaQueries?.declare||""} },\n`)),p&&(s.doc.cssClasses+=` '${e}': {\n${a.classNames?.doc||""} },\n`,s.doc.cssAvailableComponents+=` '${e}': {\n${a.availableComp?.doc||""} },\n`,c&&(s.declare.cssClasses+=` '${e}': {\n${a.classNames?.declare||""} },\n`,s.declare.cssAvailableComponents+=` '${e}': {\n${a.availableComp?.declare||""} },\n`)),n===d.length-1&&(s.doc.cssThemes+="}\n/* CssThemes */\n",s.doc.cssVars+=C?"}\n/* CssVars */\n":"",s.doc.cssGlobalStyles+=C?"}\n/* CssGlobalStyles */\n":"",s.doc.cssMediaQueries+=C?"}\n/* CssMediaQueries */\n":"",s.doc.cssClasses+=p?"}\n/* CssClasses */\n":"",s.doc.cssAvailableComponents+=p?"}\n/* CssAvailableComponents */\n":"",c&&(s.declare.cssThemes+="}\n/* CssThemes */\n",s.declare.cssVars+=C?"}\n/* CssVars */\n":"",s.declare.cssGlobalStyles+=C?"}\n/* CssGlobalStyles */\n":"",s.declare.cssMediaQueries+=C?"}\n/* CssMediaQueries */\n":"",s.declare.cssClasses+=p?"}\n/* CssClasses */\n":"",s.declare.cssAvailableComponents+=p?"}\n/* CssAvailableComponents */\n":"")),s},i)},t=async({dir:s,providerDocs:l,declarationHelp:o,providerName:t,compilerType:r})=>{const{doc:i,declare:d}=await c({providerDocs:l,declarationHelp:o,compilerType:r,dir:s}),C=`${i.cssThemes}\n${i.cssVars}\n${i.cssClasses}\n${i.cssAvailableComponents}\n${i.cssGlobalStyles}\n${i.cssMediaQueries}\n`;await n(`${s}/stats/stats.js`,C,"stats.js");const p=a.resolve(__dirname,"./template/providerTemplate.js");let m=await e.readFile(p,"utf8");if(m=m.replace(/\$_Provider_\$/g,t),await n(`${s}/${t}.js`,m,`${t}.js`),o){const l=`${d.cssThemes}\n${d.cssVars}\n${d.cssClasses}\n${d.cssAvailableComponents}\n${d.cssGlobalStyles}\n${d.cssMediaQueries}\nexport declare const cssVars: CssVars;\nexport declare const cssClasses: CssClasses;\nexport declare const cssAvailableComponents: CssAvailableComponents;\nexport declare const cssGlobalStyles: CssGlobalStyles;\nexport declare const cssMediaQueries: CssMediaQueries;\n`;await n(`${s}/stats/stats.d.ts`,l,"stats.d.ts");const o=a.resolve(__dirname,"./template/providerTemplate.d.ts");let c=await e.readFile(o,"utf8");c=c.replace(/\$_Provider_\$/g,t),await n(`${s}/${t}.d.ts`,c,`${t}.d.ts`)}};module.exports={generateProvider:t};
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: any;
3
- providerDocs: any;
4
- declarationHelp: any;
5
- providerName: any;
6
- compilerType: any;
7
- }): Promise<void>;
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.4.0",
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": "pnpm run build:copy-src && pnpm run build:copy-bin && pnpm run build:optimize",
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: 'foundationOnly',
7
+ foundationOnly: 'foundation-only',
8
8
  /** Generate only component/theme styles (classes, utilities, media queries) */
9
- componentOnly: '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 foundations = createFoundations
34
- ? `/* === BERNOVA FOUNDATIONS === */\n${foundationsCss}/* === END FOUNDATIONS === */\n\n`
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 components = createComponents
39
- ? `/* === BERNOVA COMPONENTS === */\n${stylesCss}/* === END COMPONENTS === */\n`
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}`;