@kuma-ui/vite
Advanced tools
Comparing version 0.6.0 to 0.7.0-next.1
import { Plugin } from 'vite'; | ||
type VitePluginOption = { | ||
breakpoints?: Record<string, string>; | ||
}; | ||
declare function kumaUI(options?: VitePluginOption): Plugin; | ||
declare function kumaUI(): Plugin; | ||
export { VitePluginOption, kumaUI as default }; | ||
export { kumaUI as default }; |
@@ -38,12 +38,76 @@ "use strict"; | ||
var import_path = __toESM(require("path")); | ||
var import_esbuild = require("esbuild"); | ||
var import_eval = __toESM(require("eval")); | ||
var import_sheet = require("@kuma-ui/sheet"); | ||
function kumaUI(options) { | ||
var import_fs = require("fs"); | ||
var import_system = require("@kuma-ui/system"); | ||
function kumaUI() { | ||
let mode; | ||
if (options?.breakpoints && Object.keys(options.breakpoints).length > 0) { | ||
import_sheet.theme.setBreakpoints(options.breakpoints); | ||
const dir = (0, import_fs.readdirSync)("."); | ||
let configPath; | ||
dir.forEach((filePath) => { | ||
if (filePath.startsWith("kuma.config.")) | ||
configPath = filePath; | ||
}); | ||
if (configPath) { | ||
const filename = import_path.default.join(process.cwd(), configPath); | ||
const result = (0, import_esbuild.buildSync)({ | ||
bundle: true, | ||
target: "es2017", | ||
write: false, | ||
platform: "node", | ||
format: typeof require !== "undefined" ? "cjs" : "esm", | ||
absWorkingDir: process.cwd(), | ||
outfile: filename + ".out", | ||
entryPoints: [filename], | ||
logLevel: "silent" | ||
}); | ||
const config = (0, import_eval.default)(result.outputFiles[0].text, configPath); | ||
if (config.default) { | ||
import_sheet.theme.setUserTheme(config.default); | ||
} | ||
} | ||
const cssLookup = {}; | ||
const userTheme = import_sheet.theme.getUserTheme(); | ||
let themeCss = ""; | ||
const runtimeTheme = { | ||
components: {}, | ||
tokens: userTheme.colors || {}, | ||
breakpoints: userTheme.breakpoints || {} | ||
}; | ||
for (const componentKey in userTheme.components) { | ||
const component = userTheme.components[componentKey]; | ||
const componentVariants = {}; | ||
let componentBaseStyle = void 0; | ||
const style = new import_system.StyleGenerator(component?.baseStyle); | ||
themeCss += style.getCSS(); | ||
componentBaseStyle = style.getClassName(); | ||
for (const variantKey in component?.variants) { | ||
const variant = component?.variants[variantKey]; | ||
const style2 = new import_system.StyleGenerator(variant); | ||
themeCss += style2.getCSS(); | ||
Object.assign(componentVariants, { | ||
[variantKey]: style2.getClassName() | ||
}); | ||
} | ||
Object.assign(runtimeTheme.components, { | ||
[componentKey]: { | ||
baseStyle: componentBaseStyle, | ||
variants: componentVariants | ||
} | ||
}); | ||
} | ||
import_sheet.theme.setRuntimeUserTheme(runtimeTheme); | ||
return { | ||
name: "kuma-ui", | ||
enforce: "pre", | ||
config(config) { | ||
if (!config.define) | ||
config.define = {}; | ||
config.define = Object.assign(config.define, { | ||
"globalThis.__KUMA_USER_THEME__": JSON.stringify(runtimeTheme), | ||
"globalThis.__KUMA_RUNTIME_USER_THEME__": JSON.stringify(runtimeTheme) | ||
}); | ||
return config; | ||
}, | ||
async transform(code, id) { | ||
@@ -54,5 +118,6 @@ if (id.includes("@kuma-ui")) | ||
return; | ||
if (!/import\s+.+\s+from\s+['"]\@kuma-ui\/core['"]/.test(code)) | ||
if (/node_modules/.test(id)) | ||
return; | ||
requireReact(code, id); | ||
if (!code.includes("@kuma-ui/core")) | ||
return; | ||
const result = await (0, import_babel_plugin.transform)(code, id); | ||
@@ -65,7 +130,7 @@ if (!result?.code) | ||
const css = result.metadata.css || ""; | ||
cssLookup[cssFilename] = css; | ||
cssLookup[cssId] = css; | ||
cssLookup[cssFilename] = css + themeCss; | ||
cssLookup[cssId] = css + themeCss; | ||
import_sheet.sheet.reset(); | ||
if (mode === "serve") | ||
return injectCSS(css, cssId) + result.code; | ||
return injectCSS(css + themeCss, cssId) + result.code; | ||
return `import ${JSON.stringify(cssFilename)}; | ||
@@ -95,12 +160,2 @@ ` + result.code; | ||
} | ||
var requireReact = (code, id) => { | ||
if (id.endsWith(".jsx") || id.endsWith(".tsx")) { | ||
if (!/^\s*import\s+React\s+from\s+['"]react['"]/.test(code)) { | ||
return { | ||
code: "import React from 'react';\n" + code, | ||
map: { mappings: "" } | ||
}; | ||
} | ||
} | ||
}; | ||
var injectCSS = (cssContent, fileId) => { | ||
@@ -107,0 +162,0 @@ return ` |
{ | ||
"name": "@kuma-ui/vite", | ||
"version": "0.6.0", | ||
"version": "0.7.0-next.1", | ||
"description": "🐻 Kuma UI is a utility-first, zero-runtime CSS-in-JS library that offers an outstanding developer experience and optimized performance.", | ||
@@ -30,4 +30,7 @@ "repository": { | ||
"dependencies": { | ||
"@kuma-ui/babel-plugin": "^0.11.0", | ||
"@kuma-ui/sheet": "^0.5.1" | ||
"esbuild": "^0.18.0", | ||
"eval": "^0.1.8", | ||
"@kuma-ui/babel-plugin": "^0.12.0-next.1", | ||
"@kuma-ui/sheet": "^0.6.0-next.1", | ||
"@kuma-ui/system": "^0.7.0-next.1" | ||
}, | ||
@@ -34,0 +37,0 @@ "devDependencies": { |
Sorry, the diff of this file is not supported yet
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
18405
330
5
5
+ Addedesbuild@^0.18.0
+ Addedeval@^0.1.8
+ Added@esbuild/android-arm@0.18.20(transitive)
+ Added@esbuild/android-arm64@0.18.20(transitive)
+ Added@esbuild/android-x64@0.18.20(transitive)
+ Added@esbuild/darwin-arm64@0.18.20(transitive)
+ Added@esbuild/darwin-x64@0.18.20(transitive)
+ Added@esbuild/freebsd-arm64@0.18.20(transitive)
+ Added@esbuild/freebsd-x64@0.18.20(transitive)
+ Added@esbuild/linux-arm@0.18.20(transitive)
+ Added@esbuild/linux-arm64@0.18.20(transitive)
+ Added@esbuild/linux-ia32@0.18.20(transitive)
+ Added@esbuild/linux-loong64@0.18.20(transitive)
+ Added@esbuild/linux-mips64el@0.18.20(transitive)
+ Added@esbuild/linux-ppc64@0.18.20(transitive)
+ Added@esbuild/linux-riscv64@0.18.20(transitive)
+ Added@esbuild/linux-s390x@0.18.20(transitive)
+ Added@esbuild/linux-x64@0.18.20(transitive)
+ Added@esbuild/netbsd-x64@0.18.20(transitive)
+ Added@esbuild/openbsd-x64@0.18.20(transitive)
+ Added@esbuild/sunos-x64@0.18.20(transitive)
+ Added@esbuild/win32-arm64@0.18.20(transitive)
+ Added@esbuild/win32-ia32@0.18.20(transitive)
+ Added@esbuild/win32-x64@0.18.20(transitive)
+ Added@kuma-ui/babel-plugin@0.12.0-next.1(transitive)
+ Added@kuma-ui/compiler@0.1.0-next.1(transitive)
+ Added@kuma-ui/core@0.6.0-next.1(transitive)
+ Added@kuma-ui/sheet@0.6.0-next.1(transitive)
+ Added@kuma-ui/system@0.7.0-next.1(transitive)
+ Added@nodelib/fs.scandir@2.1.5(transitive)
+ Added@nodelib/fs.stat@2.0.5(transitive)
+ Added@nodelib/fs.walk@1.2.8(transitive)
+ Added@ts-morph/common@0.20.0(transitive)
+ Added@types/node@22.13.5(transitive)
+ Added@types/stylis@4.2.7(transitive)
+ Addedbalanced-match@1.0.2(transitive)
+ Addedbrace-expansion@2.0.1(transitive)
+ Addedbraces@3.0.3(transitive)
+ Addedcode-block-writer@12.0.0(transitive)
+ Addedesbuild@0.18.20(transitive)
+ Addedeval@0.1.8(transitive)
+ Addedfast-glob@3.3.3(transitive)
+ Addedfastq@1.19.0(transitive)
+ Addedfill-range@7.1.1(transitive)
+ Addedglob-parent@5.1.2(transitive)
+ Addedis-extglob@2.1.1(transitive)
+ Addedis-glob@4.0.3(transitive)
+ Addedis-number@7.0.0(transitive)
+ Addedmerge2@1.4.1(transitive)
+ Addedmicromatch@4.0.8(transitive)
+ Addedminimatch@7.4.6(transitive)
+ Addedmkdirp@2.1.6(transitive)
+ Addedpath-browserify@1.0.1(transitive)
+ Addedpicomatch@2.3.1(transitive)
+ Addedqueue-microtask@1.2.3(transitive)
+ Addedrequire-like@0.1.2(transitive)
+ Addedreusify@1.0.4(transitive)
+ Addedrun-parallel@1.2.0(transitive)
+ Addedto-regex-range@5.0.1(transitive)
+ Addedts-morph@19.0.0(transitive)
+ Addedundici-types@6.20.0(transitive)
- Removed@kuma-ui/babel-plugin@0.11.0(transitive)
- Removed@kuma-ui/core@0.5.0(transitive)
- Removed@kuma-ui/sheet@0.5.1(transitive)
- Removed@kuma-ui/system@0.6.2(transitive)
- Removed@types/prop-types@15.7.14(transitive)
- Removed@types/react@18.3.18(transitive)
Updated@kuma-ui/sheet@^0.6.0-next.1