init
This commit is contained in:
2025-06-27 17:42:38 +08:00
commit bd6402478b
5317 changed files with 785994 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
import { generateAntColors, primaryColor } from '../config/themeConfig';
import { getThemeVariables } from 'ant-design-vue/dist/theme';
import { resolve } from 'path';
/**
* less global variable
*/
export function generateModifyVars(dark = false) {
const palettes = generateAntColors(primaryColor);
const primary = palettes[5];
const primaryColorObj: Record<string, string> = {};
for (let index = 0; index < 10; index++) {
primaryColorObj[`primary-${index + 1}`] = palettes[index];
}
const modifyVars = getThemeVariables({ dark });
return {
...modifyVars,
// Used for global import to avoid the need to import each style file separately
// reference: Avoid repeated references
hack: `${modifyVars.hack} @import (reference) "${resolve('src/design/config.less')}";`,
'primary-color': primary,
...primaryColorObj,
'info-color': primary,
'processing-color': primary,
'success-color': '#55D187', // Success color
'error-color': '#ED6F6F', // False color
'warning-color': '#EFBD47', // Warning color
//'border-color-base': '#EEEEEE',
'font-size-base': '14px', // Main font size
'border-radius-base': '2px', // Component/float fillet
'link-color': primary, // Link color
'app-content-background': '#fafafa', // Link color
};
}
+71
View File
@@ -0,0 +1,71 @@
import path from "path";
import fs from "fs-extra";
import inquirer from "inquirer";
import colors from "picocolors";
import pkg from "../../../package.json";
async function generateIcon() {
const dir = path.resolve(process.cwd(), "node_modules/@iconify/json");
const raw = await fs.readJSON(path.join(dir, "collections.json"));
const collections = Object.entries(raw).map(([id, v]) => ({
...(v as any),
id
}));
const choices = collections.map((item) => ({ key: item.id, value: item.id, name: item.name }));
inquirer
.prompt([
{
type: "list",
name: "useType",
choices: [
{ k"local"cal", val\"local\"cal", na"Local"cal' },
{ k"onLine"ine", val\"onLine\"ine", na"OnLine" in ' },
],
message: "How to use icons?"
},
{
type: "list",
name: "iconSet",
choices: choices,
message: "Select the icon set that needs to be generated?"
},
{
type: "input",
name: "output",
message: "Select the icon set that needs to be generated?",
default: "src/components/Icon/data"
}
])
.then(async (answers) => {
const { iconSet, output, useType } = answers;
const outputDir = path.resolve(process.cwd(), output);
fs.ensureDir(outputDir);
const genCollections = collections.filter((item) => [iconSet].includes(item.id));
const prefixSet: string[] = [];
for (const info of genCollections) {
const data = await fs.readJSON(path.join(dir, "json", `${info.id}.json`));
if (data) {
const { prefix } = data;
const isLocal = useType === "local";
const icons = Object.keys(data.icons).map((item) => `${isLocal ? prefix + ":" : ""}${item}`);
await fs.writeFileSync(
path.join(output, `icons.data.ts`),
`export default ${isLocal ? JSON.stringify(icons) : JSON.stringify({
prefix,
icons
})}`
);
prefixSet.push(prefix);
}
}
fs.emptyDir(path.join(process.cwd(), "node_modules/.vite"));
console.log(`${colors.cyan(`[${pkg.name}]`)}` + " - Icon generated successfully:" + `[${prefixSet}]`);
});
}
generateIcon();