@plumeria/core 0.3.1 → 0.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/bin/css.mjs CHANGED
@@ -3,24 +3,26 @@
3
3
  import { execSync } from 'child_process';
4
4
  import path from 'path';
5
5
  import { styleText } from 'util';
6
+ import fs from 'fs';
6
7
 
7
8
  const checkMark = styleText('greenBright', '✓');
8
9
 
9
10
  try {
11
+ const isPnpm = fs.existsSync(path.join(process.cwd(), 'node_modules/.pnpm'));
12
+
10
13
  const typecheck = process.argv.includes('--type-check');
11
- if (typecheck) {
14
+ if (typecheck)
12
15
  execSync('npx tsc --noEmit --incremental false', {
13
16
  stdio: 'inherit',
14
17
  cwd: process.cwd(),
15
18
  });
16
- }
17
19
 
18
- const compilerPath = findCompilerPath();
20
+ const plumeriaPath = isPnpm ? findPnpmPlumeriaPath() : path.join(process.cwd(), 'node_modules/@plumeria');
19
21
 
20
22
  const argv = process.argv.includes('--log') ? ' --log' : '';
21
- execSync(`npx tsx ${path.join(compilerPath, 'src/index.ts')}${argv}`, {
23
+ execSync('npx tsx compiler/src/index.ts' + argv, {
22
24
  stdio: 'inherit',
23
- cwd: compilerPath,
25
+ cwd: plumeriaPath,
24
26
  });
25
27
 
26
28
  const completed = typecheck ? 'Type-check completed' : '';
@@ -30,11 +32,13 @@ try {
30
32
  process.exit(1);
31
33
  }
32
34
 
33
- function findCompilerPath() {
34
- try {
35
- const compilerMain = require.resolve('@plumeria/compiler');
36
- return path.dirname(compilerMain);
37
- } catch (error) {
38
- throw new Error('Could not resolve @plumeria/compiler package');
35
+ function findPnpmPlumeriaPath() {
36
+ const pnpmPath = path.join(process.cwd(), 'node_modules/.pnpm');
37
+ const plumeriaDir = fs.readdirSync(pnpmPath).find(dir => dir.startsWith('@plumeria+core@'));
38
+
39
+ if (!plumeriaDir) {
40
+ throw new Error('Could not find @plumeria package in pnpm directory');
39
41
  }
42
+
43
+ return path.join(pnpmPath, plumeriaDir, 'node_modules/@plumeria');
40
44
  }
package/dist/css.js CHANGED
@@ -1,25 +1 @@
1
- import { create } from './method/create';
2
- import { global } from './method/global';
3
- import { cx } from './cx';
4
- import { defineThemeVars } from './method/define-theme-vars';
5
- import { keyframes } from './method/keyframes';
6
- import { media, pseudo, colors, container } from '@plumeria/collection';
7
- class css {
8
- static create(object) {
9
- return create(object);
10
- }
11
- static global(object) {
12
- return global(object);
13
- }
14
- static defineThemeVars(object) {
15
- return defineThemeVars(object);
16
- }
17
- static keyframes(object) {
18
- return keyframes(object);
19
- }
20
- static media = media;
21
- static pseudo = pseudo;
22
- static colors = colors;
23
- static container = container;
24
- }
25
- export { css, cx };
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.cx=exports.css=void 0;const create_1=require("./method/create");const global_1=require("./method/global");const cx_1=require("./cx");Object.defineProperty(exports,"cx",{enumerable:true,get:function(){return cx_1.cx}});const define_theme_vars_1=require("./method/define-theme-vars");const keyframes_1=require("./method/keyframes");const collection_1=require("@plumeria/collection");class css{static create(e){return(0,create_1.create)(e)}static global(e){return(0,global_1.global)(e)}static defineThemeVars(e){return(0,define_theme_vars_1.defineThemeVars)(e)}static keyframes(e){return(0,keyframes_1.keyframes)(e)}static media=collection_1.media;static pseudo=collection_1.pseudo;static colors=collection_1.colors;static container=collection_1.container}exports.css=css;
package/dist/css.mjs ADDED
@@ -0,0 +1 @@
1
+ import{create}from"./method/create";import{global}from"./method/global";import{cx}from"./cx";import{defineThemeVars}from"./method/define-theme-vars";import{keyframes}from"./method/keyframes";import{media,pseudo,colors,container}from"@plumeria/collection";class css{static create(e){return create(e)}static global(e){return global(e)}static defineThemeVars(e){return defineThemeVars(e)}static keyframes(e){return keyframes(e)}static media=media;static pseudo=pseudo;static colors=colors;static container=container}export{css,cx};
package/dist/cx.js CHANGED
@@ -1,19 +1 @@
1
- export function cx(...strings) {
2
- let result = '';
3
- let isFirst = true;
4
- strings.filter(Boolean).forEach(str => {
5
- if (str?.toString().startsWith(':')) {
6
- result += str.toString();
7
- }
8
- else if (typeof str === 'string') {
9
- if (isFirst) {
10
- result += str;
11
- isFirst = false;
12
- }
13
- else {
14
- result += ` ${str}`;
15
- }
16
- }
17
- });
18
- return result;
19
- }
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.cx=cx;function cx(...e){let t="";let r=true;e.filter(Boolean).forEach((e=>{if(e?.toString().startsWith(":")){t+=e.toString()}else if(typeof e==="string"){if(r){t+=e;r=false}else{t+=` ${e}`}}}));return t}
package/dist/cx.mjs ADDED
@@ -0,0 +1 @@
1
+ export function cx(...t){let e="";let r=true;t.filter(Boolean).forEach((t=>{if(t?.toString().startsWith(":")){e+=t.toString()}else if(typeof t==="string"){if(r){e+=t;r=false}else{e+=` ${t}`}}}));return e}
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- export { css, cx } from './css';
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.cx=exports.css=void 0;var css_1=require("./css");Object.defineProperty(exports,"css",{enumerable:true,get:function(){return css_1.css}});Object.defineProperty(exports,"cx",{enumerable:true,get:function(){return css_1.cx}});
package/dist/index.mjs ADDED
@@ -0,0 +1 @@
1
+ export{css,cx}from"./css";
@@ -1,32 +1 @@
1
- import { build, isDevelopment } from 'zss-engine';
2
- let resolvePromise;
3
- let globalPromise;
4
- const sheetQueue = [];
5
- let isProcessing = false;
6
- function initPromise() {
7
- globalPromise = new Promise(resolve => {
8
- resolvePromise = (value) => {
9
- sheetQueue.push(value);
10
- resolve(value);
11
- };
12
- });
13
- }
14
- function processQueue() {
15
- const path = require('path');
16
- const filePath = path.join(__dirname, '../styles/create.css');
17
- while (sheetQueue.length > 0) {
18
- const styleSheet = sheetQueue.shift();
19
- if (!isDevelopment && styleSheet)
20
- build(styleSheet, filePath);
21
- }
22
- isProcessing = false;
23
- }
24
- export async function buildCreate() {
25
- if (typeof globalPromise === 'undefined')
26
- initPromise();
27
- if (!isProcessing && sheetQueue.length > 0) {
28
- isProcessing = true;
29
- processQueue();
30
- }
31
- }
32
- export { resolvePromise, globalPromise, initPromise };
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.globalPromise=exports.resolvePromise=void 0;exports.buildCreate=buildCreate;exports.initPromise=initPromise;const zss_engine_1=require("zss-engine");let resolvePromise;let globalPromise;const sheetQueue=[];let isProcessing=false;function initPromise(){exports.globalPromise=globalPromise=new Promise((e=>{exports.resolvePromise=resolvePromise=s=>{sheetQueue.push(s);e(s)}}))}function processQueue(){const e=require("path");const s=e.join(__dirname,"../styles/create.css");while(sheetQueue.length>0){const e=sheetQueue.shift();if(!zss_engine_1.isDevelopment&&e)(0,zss_engine_1.build)(e,s)}isProcessing=false}async function buildCreate(){if(typeof globalPromise==="undefined")initPromise();if(!isProcessing&&sheetQueue.length>0){isProcessing=true;processQueue()}}
@@ -0,0 +1 @@
1
+ import{build,isDevelopment}from"zss-engine";let resolvePromise;let globalPromise;const sheetQueue=[];let isProcessing=false;function initPromise(){globalPromise=new Promise((e=>{resolvePromise=s=>{sheetQueue.push(s);e(s)}}))}function processQueue(){const e=require("path");const s=e.join(__dirname,"../styles/create.css");while(sheetQueue.length>0){const e=sheetQueue.shift();if(!isDevelopment&&e)build(e,s)}isProcessing=false}export async function buildCreate(){if(typeof globalPromise==="undefined")initPromise();if(!isProcessing&&sheetQueue.length>0){isProcessing=true;processQueue()}}export{resolvePromise,globalPromise,initPromise};
@@ -1,22 +1 @@
1
- import { isDevAndTest, transpiler, injectServerCSS, genBase36Hash, isServer, injectClientCSS } from 'zss-engine';
2
- import { initPromise, globalPromise, resolvePromise } from './create-build-helper';
3
- import '../styles/create.css';
4
- export function create(object) {
5
- const base36Hash = genBase36Hash(object, 6);
6
- const { styleSheet } = transpiler(object, base36Hash);
7
- const injectCSS = isServer ? injectServerCSS : injectClientCSS;
8
- if (typeof globalPromise === 'undefined')
9
- initPromise();
10
- resolvePromise(styleSheet);
11
- Object.keys(object).forEach(key => {
12
- Object.defineProperty(object, key, {
13
- get: () => {
14
- const className = key + '_' + base36Hash;
15
- if (isDevAndTest)
16
- injectCSS(base36Hash, styleSheet);
17
- return className;
18
- },
19
- });
20
- });
21
- return Object.freeze(object);
22
- }
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.create=create;const zss_engine_1=require("zss-engine");const create_build_helper_1=require("./create-build-helper");require("../styles/create.css");function create(e){const r=(0,zss_engine_1.genBase36Hash)(e,6);const{styleSheet:s}=(0,zss_engine_1.transpiler)(e,r);const t=zss_engine_1.isServer?zss_engine_1.injectServerCSS:zss_engine_1.injectClientCSS;if(typeof create_build_helper_1.globalPromise==="undefined")(0,create_build_helper_1.initPromise)();(0,create_build_helper_1.resolvePromise)(s);Object.keys(e).forEach((n=>{Object.defineProperty(e,n,{get:()=>{const e=n+"_"+r;if(zss_engine_1.isDevAndTest)t(r,s);return e}})}));return Object.freeze(e)}
@@ -0,0 +1 @@
1
+ import{isDevAndTest,transpiler,injectServerCSS,genBase36Hash,isServer,injectClientCSS}from"zss-engine";import{initPromise,globalPromise,resolvePromise}from"./create-build-helper";import"../styles/create.css";export function create(e){const r=genBase36Hash(e,6);const{styleSheet:t}=transpiler(e,r);const i=isServer?injectServerCSS:injectClientCSS;if(typeof globalPromise==="undefined")initPromise();resolvePromise(t);Object.keys(e).forEach((s=>{Object.defineProperty(e,s,{get:()=>{const e=s+"_"+r;if(isDevAndTest)i(r,t);return e}})}));return Object.freeze(e)}
@@ -1,25 +1 @@
1
- import { global } from './global';
2
- export const defineThemeVars = (object) => {
3
- const globalStyles = {};
4
- const result = {};
5
- Object.entries(object).forEach(([key, value]) => {
6
- result[key] = `var(--${key})`;
7
- if (typeof value === 'string') {
8
- (globalStyles[':root'] ||= {})[`--${key}`] = value;
9
- }
10
- else if (typeof value === 'object') {
11
- Object.entries(value).forEach(([subKey, subValue]) => {
12
- if (subKey.startsWith('@media')) {
13
- (globalStyles[':root'] ||= {})[subKey] ||= {};
14
- globalStyles[':root'][subKey][`--${key}`] = subValue;
15
- }
16
- else {
17
- const themeSelector = subKey === 'default' ? ':root' : `:root[data-theme="${subKey}"]`;
18
- (globalStyles[themeSelector] ||= {})[`--${key}`] = subValue;
19
- }
20
- });
21
- }
22
- });
23
- global(globalStyles);
24
- return result;
25
- };
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.defineThemeVars=void 0;const global_1=require("./global");const defineThemeVars=e=>{const t={};const o={};Object.entries(e).forEach((([e,r])=>{o[e]=`var(--${e})`;if(typeof r==="string"){(t[":root"]||={})[`--${e}`]=r}else if(typeof r==="object"){Object.entries(r).forEach((([o,r])=>{if(o.startsWith("@media")){(t[":root"]||={})[o]||={};t[":root"][o][`--${e}`]=r}else{const s=o==="default"?":root":`:root[data-theme="${o}"]`;(t[s]||={})[`--${e}`]=r}}))}}));(0,global_1.global)(t);return o};exports.defineThemeVars=defineThemeVars;
@@ -0,0 +1 @@
1
+ import{global}from"./global";export const defineThemeVars=t=>{const o={};const e={};Object.entries(t).forEach((([t,r])=>{e[t]=`var(--${t})`;if(typeof r==="string"){(o[":root"]||={})[`--${t}`]=r}else if(typeof r==="object"){Object.entries(r).forEach((([e,r])=>{if(e.startsWith("@media")){(o[":root"]||={})[e]||={};o[":root"][e][`--${t}`]=r}else{const a=e==="default"?":root":`:root[data-theme="${e}"]`;(o[a]||={})[`--${t}`]=r}}))}}));global(o);return e};
@@ -1,32 +1 @@
1
- import { build, isDevelopment } from 'zss-engine';
2
- let resolvePromise;
3
- let globalPromise;
4
- const seetQueue = [];
5
- let isProcessing = false;
6
- function initPromise() {
7
- globalPromise = new Promise(resolve => {
8
- resolvePromise = (value) => {
9
- seetQueue.push(value);
10
- resolve(value);
11
- };
12
- });
13
- }
14
- function processSheets() {
15
- const path = require('path');
16
- const filePath = path.join(__dirname, '../styles/global.css');
17
- while (seetQueue.length > 0) {
18
- const [styleSheet, option] = seetQueue.shift();
19
- if (!isDevelopment && styleSheet)
20
- build(styleSheet, filePath, option);
21
- }
22
- isProcessing = false;
23
- }
24
- export async function buildGlobal() {
25
- if (typeof globalPromise === 'undefined')
26
- initPromise();
27
- if (!isProcessing && seetQueue.length > 0) {
28
- isProcessing = true;
29
- processSheets();
30
- }
31
- }
32
- export { resolvePromise, globalPromise, initPromise };
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.globalPromise=exports.resolvePromise=void 0;exports.buildGlobal=buildGlobal;exports.initPromise=initPromise;const zss_engine_1=require("zss-engine");let resolvePromise;let globalPromise;const seetQueue=[];let isProcessing=false;function initPromise(){exports.globalPromise=globalPromise=new Promise((e=>{exports.resolvePromise=resolvePromise=s=>{seetQueue.push(s);e(s)}}))}function processSheets(){const e=require("path");const s=e.join(__dirname,"../styles/global.css");while(seetQueue.length>0){const[e,i]=seetQueue.shift();if(!zss_engine_1.isDevelopment&&e)(0,zss_engine_1.build)(e,s,i)}isProcessing=false}async function buildGlobal(){if(typeof globalPromise==="undefined")initPromise();if(!isProcessing&&seetQueue.length>0){isProcessing=true;processSheets()}}
@@ -0,0 +1 @@
1
+ import{build,isDevelopment}from"zss-engine";let resolvePromise;let globalPromise;const seetQueue=[];let isProcessing=false;function initPromise(){globalPromise=new Promise((e=>{resolvePromise=s=>{seetQueue.push(s);e(s)}}))}function processSheets(){const e=require("path");const s=e.join(__dirname,"../styles/global.css");while(seetQueue.length>0){const[e,i]=seetQueue.shift();if(!isDevelopment&&e)build(e,s,i)}isProcessing=false}export async function buildGlobal(){if(typeof globalPromise==="undefined")initPromise();if(!isProcessing&&seetQueue.length>0){isProcessing=true;processSheets()}}export{resolvePromise,globalPromise,initPromise};
@@ -1,12 +1 @@
1
- import { isDevAndTest, isServer, injectServerCSS, injectClientGlobalCSS, transpiler, genBase36Hash } from 'zss-engine';
2
- import { resolvePromise, globalPromise, initPromise } from './global-build-helper';
3
- import '../styles/global.css';
4
- export function global(object) {
5
- const base36Hash = genBase36Hash(object, 8);
6
- const { styleSheet } = transpiler(object, undefined, '--global');
7
- if (typeof globalPromise === 'undefined')
8
- initPromise();
9
- resolvePromise([styleSheet, '--global']);
10
- if (isDevAndTest)
11
- isServer ? injectServerCSS(base36Hash, styleSheet) : injectClientGlobalCSS(styleSheet, 'global');
12
- }
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.global=global;const zss_engine_1=require("zss-engine");const global_build_helper_1=require("./global-build-helper");require("../styles/global.css");function global(e){const l=(0,zss_engine_1.genBase36Hash)(e,8);const{styleSheet:s}=(0,zss_engine_1.transpiler)(e,undefined,"--global");if(typeof global_build_helper_1.globalPromise==="undefined")(0,global_build_helper_1.initPromise)();(0,global_build_helper_1.resolvePromise)([s,"--global"]);if(zss_engine_1.isDevAndTest)zss_engine_1.isServer?(0,zss_engine_1.injectServerCSS)(l,s):(0,zss_engine_1.injectClientGlobalCSS)(s,"global")}
@@ -0,0 +1 @@
1
+ import{isDevAndTest,isServer,injectServerCSS,injectClientGlobalCSS,transpiler,genBase36Hash}from"zss-engine";import{resolvePromise,globalPromise,initPromise}from"./global-build-helper";import"../styles/global.css";export function global(e){const i=genBase36Hash(e,8);const{styleSheet:l}=transpiler(e,undefined,"--global");if(typeof globalPromise==="undefined")initPromise();resolvePromise([l,"--global"]);if(isDevAndTest)isServer?injectServerCSS(i,l):injectClientGlobalCSS(l,"global")}
@@ -1,7 +1 @@
1
- import { genBase36Hash } from 'zss-engine';
2
- import { global } from './global';
3
- export const keyframes = (object) => {
4
- const prefix = genBase36Hash(object, 8);
5
- global({ [`@keyframes ${prefix}`]: object });
6
- return prefix;
7
- };
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.keyframes=void 0;const zss_engine_1=require("zss-engine");const global_1=require("./global");const keyframes=e=>{const s=(0,zss_engine_1.genBase36Hash)(e,8);(0,global_1.global)({[`@keyframes ${s}`]:e});return s};exports.keyframes=keyframes;
@@ -0,0 +1 @@
1
+ import{genBase36Hash}from"zss-engine";import{global}from"./global";export const keyframes=e=>{const o=genBase36Hash(e,8);global({[`@keyframes ${o}`]:e});return o};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plumeria/core",
3
- "version": "0.3.1",
3
+ "version": "0.5.0",
4
4
  "description": "Near Zero-runtime CSS-in-JS for efficient design systems.",
5
5
  "keywords": [
6
6
  "react",
@@ -12,7 +12,17 @@
12
12
  "author": "Refirst",
13
13
  "repository": "github:zss-in-js/plumeria",
14
14
  "license": "MIT",
15
+ "sideEffects": false,
16
+ "exports": {
17
+ "./package.json": "./package.json",
18
+ ".": {
19
+ "types": "./dist/index.d.ts",
20
+ "import": "./dist/index.mjs",
21
+ "default": "./dist/index.js"
22
+ }
23
+ },
15
24
  "main": "dist/index.js",
25
+ "module": "dist/index.mjs",
16
26
  "types": "dist/index.d.ts",
17
27
  "files": [
18
28
  "bin",
@@ -22,15 +32,19 @@
22
32
  "css": "./bin/css.mjs"
23
33
  },
24
34
  "dependencies": {
25
- "@plumeria/compiler": "^0.3.0",
26
- "@plumeria/collection": "^0.1.2",
27
- "zss-engine": "^0.2.3"
35
+ "zss-engine": "^0.2.3",
36
+ "@plumeria/compiler": "^0.5.0",
37
+ "@plumeria/collection": "^0.2.0"
28
38
  },
29
39
  "publishConfig": {
30
40
  "access": "public"
31
41
  },
32
42
  "scripts": {
33
- "build": "rm -rf dist && tsc && cp -r src/styles dist",
43
+ "build": "rm -rf dist && pnpm build:mjs && pnpm cjs && pnpm minify && cp -r src/styles dist",
44
+ "build:mjs": "pnpm esm && for file in $(find dist -name '*.js'); do mv \"$file\" \"${file%.*}.mjs\"; done",
45
+ "cjs": "npx tsc --project tsconfig.cjs.json",
46
+ "esm": "npx tsc --project tsconfig.esm.json",
47
+ "minify": "for file in $(find dist -name '*.js' -o -name '*.mjs'); do terser \"$file\" -m -o \"$file\"; done",
34
48
  "test": "jest --config ../../jest.config.js"
35
49
  }
36
50
  }