@vef-framework/dev 1.0.14 → 1.0.16

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.
Files changed (45) hide show
  1. package/dist/cli.js +2 -2
  2. package/dist/commitlint-config.js +1 -1
  3. package/dist/config.js +1 -1
  4. package/dist/constants.js +1 -1
  5. package/dist/eslint-config.js +2 -2
  6. package/dist/index.js +1 -1
  7. package/dist/modules.d.js +1 -1
  8. package/dist/plugin-app-config.js +1 -1
  9. package/dist/plugin-conventional-config.js +1 -1
  10. package/dist/plugin-eslint.js +1 -1
  11. package/dist/plugin-html.js +1 -1
  12. package/dist/plugin-icons.js +1 -1
  13. package/dist/plugin-injection.js +1 -1
  14. package/dist/plugin-inspect.js +1 -1
  15. package/dist/plugin-react-swc.js +1 -1
  16. package/dist/plugin-router.js +1 -1
  17. package/dist/plugin-stylelint.js +1 -1
  18. package/dist/plugin-svgr.js +1 -1
  19. package/dist/plugin-tailwindcss.js +1 -1
  20. package/dist/plugin-webfont.js +1 -1
  21. package/dist/stylelint-config.js +1 -1
  22. package/dist/tailwind-config.js +1 -1
  23. package/package.json +4 -1
  24. package/template/.vscode/settings.json +6 -0
  25. package/template/commitlint.config.js +3 -0
  26. package/template/env/.env +7 -0
  27. package/template/env/.env.development +0 -0
  28. package/template/env/.env.production +0 -0
  29. package/template/env.d.ts +1 -0
  30. package/template/eslint.config.js +3 -0
  31. package/template/index.html +0 -0
  32. package/template/package.json +32 -0
  33. package/template/public/favicon.svg +1 -0
  34. package/template/src/main.ts +14 -0
  35. package/template/src/pages/__root.tsx +11 -0
  36. package/template/src/pages/_layout/about.tsx +9 -0
  37. package/template/src/pages/_layout/index.tsx +11 -0
  38. package/template/src/pages/_layout/route.tsx +20 -0
  39. package/template/src/router/index.ts +15 -0
  40. package/template/stylelint.config.js +3 -0
  41. package/template/tailwind.config.js +3 -0
  42. package/template/tsconfig.json +4 -0
  43. package/template/vef.config.js +5 -0
  44. package/tsconfig.node.json +0 -24
  45. /package/{tsconfig.app.json → tsconfig.json} +0 -0
package/dist/cli.js CHANGED
@@ -1,3 +1,3 @@
1
- /*! VefFramework version: 1.0.14, build time: 2024-12-19T08:46:29.130Z, made by Venus. */
2
- import e from"chalk";import{program as n}from"commander";import i from"consola";import t from"fs-extra";import{resolve as o}from"node:path";import s from"node:process";import{loadConfigFromFile as c,createServer as a,build as r,preview as f}from"vite";const{exists:l,readJsonSync:d,writeFile:u,readJson:m,writeJson:g}=t,p=s.cwd();const v=function(){const e=o(import.meta.dirname,"../package.json");return d(e,{encoding:"utf-8"}).version}();function w(e,n){return n||("build"===e?"production":"development")}async function y(e,n,t){const s=o(p,e||"vef.config.ts");if(!await l(s))throw i.error(`Config file not found: ${s}, it is required for VEF Framework`),new Error(`Config file not found: ${s}`);const a=await c({command:n,mode:t},s);return a?.config??{}}function j(e,n){i.error(`Error during ${e}:`,n),s.exit(1)}n.name("vef").description(e.magenta("VEF Framework CLI")).addHelpText("before",e.blue("VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus.")).addHelpText("before",e.bgGreenBright(`Version: ${v}`)).version(v).option("--mode <mode>","Specify running mode (will override default NODE_ENV)"),n.command("dev").description("Start dev server").option("-c, --config <file>","Specify vef config file","vef.config.ts").action((async e=>{try{const i=w("serve",n.opts().mode);s.env.NODE_ENV=i,s.env.VEF_FRAMEWORK_VERSION=v;const t=await y(e.config,"serve",i),o=await a({...t,mode:i,configFile:!1,logLevel:"info"});await o.listen(),o.printUrls(),o.bindCLIShortcuts({print:!0})}catch(e){j("dev server startup",e)}})),n.command("build").description("Build for production").option("-c, --config <file>","Specify vef config file","vef.config.ts").action((async e=>{try{const t=w("build",n.opts().mode);s.env.NODE_ENV=t,s.env.VEF_FRAMEWORK_VERSION=v;const o=await y(e.config,"build",t);await r({...o,mode:t,configFile:!1,logLevel:"info"}),i.success("Build completed successfully!")}catch(e){j("build",e)}})),n.command("preview").description("Preview the build").option("-c, --config <file>","Specify vef config file","vef.config.ts").action((async e=>{try{const i=w("build",n.opts().mode);s.env.NODE_ENV=i,s.env.VEF_FRAMEWORK_VERSION=v;const t=await y(e.config,"build",i),o=await f({...t,mode:i,configFile:!1,logLevel:"info"});o.printUrls(),o.bindCLIShortcuts({print:!0})}catch(e){j("preview server startup",e)}})),n.command("prepare").description("Sets up the project for development mode").action((async()=>{await l(o(p,".husky"))||((await import("husky")).default(),i.success("Successfully set up husky")),await l(o(p,".husky/pre-commit"))||(await u(o(p,".husky/pre-commit"),"npx lint-staged"),i.success("Successfully set up pre-commit hook")),await l(o(p,".husky/commit-msg"))||(await u(o(p,".husky/commit-msg"),"npx --no -- commitlint --edit $1"),i.success("Successfully set up commit-msg hook"));const e=await m(o(p,"package.json"),{encoding:"utf-8"}),{scripts:n,"lint-staged":t}=e;let s=!1;n.prepare||(n.prepare="vef prepare",s=!0),t||(e["lint-staged"]={"*.{js,ts,tsx,json,jsonc,yaml,toml,md}":["eslint --fix","git add"],"*.{css,scss}":["stylelint --fix","git add"]},s=!0),s&&(await g(o(p,"package.json"),e,{encoding:"utf-8",spaces:2}),i.success("Successfully set up prepare script and lint-staged"))})),n.command("generate").description("Generate the critical base files for the project").action((async()=>{await async function(){const e=o(p,"index.html");await u(e,"")}(),i.success("Successfully generated index.html file"),await async function(){const e=o(p,"env.d.ts");await u(e,'/// <reference types="@vef-framework/dev/client" />\n')}(),i.success("Successfully generated env.d.ts file"),await async function(){const e=o(p,"tailwind.config.js");await u(e,'import { defineTailwindConfig } from "@vef-framework/dev";\n\nexport default defineTailwindConfig();\n')}(),i.success("Successfully generated tailwind.config.js file"),await async function(){const e=o(p,"eslint.config.js");await u(e,'import { defineEslintConfig } from "@vef-framework/dev";\n\nexport default defineEslintConfig();\n')}(),i.success("Successfully generated eslint.config.js file"),await async function(){const e=o(p,"stylelint.config.js");await u(e,'import { defineStylelintConfig } from "@vef-framework/dev";\n\nexport default defineStylelintConfig();\n')}(),i.success("Successfully generated stylelint.config.js file"),await async function(){const e=o(p,"commitlint.config.js");await u(e,'import { defineCommitlintConfig } from "@vef-framework/dev";\n\nexport default defineCommitlintConfig();\n')}(),i.success("Successfully generated commitlint.config.js file"),await async function(){const e=o(p,"vef.config.ts");await u(e,'import { defineConfig } from "@vef-framework/dev";\n\nexport default defineConfig({\n projectDir: import.meta.dirname,\n});\n')}(),i.success("Successfully generated vef.config.ts file"),await async function(){const e=o(p,"tsconfig.app.json");await u(e,'{\n "extends": "@vef-framework/dev/tsconfig.app.json",\n "include": ["env.d.ts", "src"]\n}\n')}(),i.success("Successfully generated tsconfig.app.json file"),await async function(){const e=o(p,"tsconfig.node.json");await u(e,'{\n "extends": "@vef-framework/dev/tsconfig.node.json",\n "include": ["vef.config.ts"]\n}\n')}(),i.success("Successfully generated tsconfig.node.json file"),await async function(){const e=o(p,"tsconfig.json");await u(e,'{\n "files": [],\n "references": [\n { "path": "./tsconfig.app.json" },\n { "path": "./tsconfig.node.json" }\n ]\n}\n')}(),i.success("Successfully generated tsconfig.json file"),await async function(){const e=o(p,".gitignore");await u(e,"# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\n.DS_Store\n/dist/\n/dist-ssr/\ncoverage\n*.local\n\n/cypress/videos/\n/cypress/screenshots/\n\n# Editor directories and files\n.vscode/*\n!.vscode/extensions.json\n!.vscode/settings.json\n.idea\n*.suo\n*.ntvs*\n*.njsproj\n*.sln\n*.sw?\n\n*.tsbuildinfo\n\n# Project files\nenv/*.local\nsrc/**/*.gen.ts\n")}(),i.success("Successfully generated .gitignore file")})),n.parse();
1
+ /*! VefFramework version: 1.0.16, build time: 2024-12-19T10:34:00.337Z, made by Venus. */
2
+ import e from"chalk";import{program as i}from"commander";import t from"consola";import{execa as o}from"execa";import n from"fs-extra";import{resolve as s}from"node:path";import a from"node:process";import c from"ora";import r from"prompts";import{loadConfigFromFile as l,createServer as p,build as d,preview as m}from"vite";const{exists:f,readJsonSync:u,writeFile:g,readJson:y,writeJson:v,copy:w,readFile:h}=n,E=a.cwd();const F=function(){const e=s(import.meta.dirname,"../package.json");return u(e,{encoding:"utf-8"}).version}();function S(e,i){return i||("build"===e?"production":"development")}async function k(e,i,o){const n=s(E,e||"vef.config.ts");if(!await f(n))throw t.error(`Config file not found: ${n}, it is required for VEF Framework`),new Error(`Config file not found: ${n}`);const a=await l({command:i,mode:o},n);return a?.config??{}}function V(e,i){t.error(`Error during ${e}:`,i),a.exit(1)}i.name("vef").description(e.magenta("VEF Framework CLI")).addHelpText("before",e.blue("VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus.")).addHelpText("before",e.bgGreenBright(`Version: ${F}`)).version(F).option("--mode <mode>","Specify running mode (will override default NODE_ENV)"),i.command("dev").description("Start dev server").option("-c, --config <file>","Specify vef config file","vef.config.js").action((async e=>{try{const t=S("serve",i.opts().mode);a.env.NODE_ENV=t,a.env.VEF_FRAMEWORK_VERSION=F;const o=await k(e.config,"serve",t),n=await p({...o,mode:t,configFile:!1,logLevel:"info"});await n.listen(),n.printUrls(),n.bindCLIShortcuts({print:!0})}catch(e){V("dev server startup",e)}})),i.command("build").description("Build for production").option("-c, --config <file>","Specify vef config file","vef.config.js").action((async e=>{try{const o=S("build",i.opts().mode);a.env.NODE_ENV=o,a.env.VEF_FRAMEWORK_VERSION=F;const n=await k(e.config,"build",o);await d({...n,mode:o,configFile:!1,logLevel:"info"}),t.success("Build completed successfully!")}catch(e){V("build",e)}})),i.command("preview").description("Preview the build").option("-c, --config <file>","Specify vef config file","vef.config.js").action((async e=>{try{const t=S("build",i.opts().mode);a.env.NODE_ENV=t,a.env.VEF_FRAMEWORK_VERSION=F;const o=await k(e.config,"build",t),n=await m({...o,mode:t,configFile:!1,logLevel:"info"});n.printUrls(),n.bindCLIShortcuts({print:!0})}catch(e){V("preview server startup",e)}})),i.command("prepare").description("Sets up the project for development mode").action((async()=>{await f(s(E,".husky"))||((await import("husky")).default(),t.success("Successfully set up husky")),await f(s(E,".husky/pre-commit"))||(await g(s(E,".husky/pre-commit"),"npx lint-staged"),t.success("Successfully set up pre-commit hook")),await f(s(E,".husky/commit-msg"))||(await g(s(E,".husky/commit-msg"),"npx --no -- commitlint --edit $1"),t.success("Successfully set up commit-msg hook"));const e=await y(s(E,"package.json"),{encoding:"utf-8"}),{scripts:i,"lint-staged":o}=e;let n=!1;i.prepare||(i.prepare="vef prepare",n=!0),o||(e["lint-staged"]={"*.{js,ts,tsx,json,jsonc,yaml,toml,md}":["eslint --fix","git add"],"*.{css,scss}":["stylelint --fix","git add"]},n=!0),n&&(await v(s(E,"package.json"),e,{encoding:"utf-8",spaces:2}),t.success("Successfully set up prepare script and lint-staged"))})),i.command("init").description("Initialize an empty VEF project").action((async()=>{t.info(e.blue("Welcome to use the cli tool of VEF Framework")),t.info("Initializing VEF project...");const i=await r([{type:"text",name:"appName",message:"What is the name of your app?",validate:e=>"string"==typeof e&&e.trim().length>0||"App name is required"},{type:"text",name:"appTitle",message:"What is the title of your app?",validate:e=>"string"==typeof e&&e.trim().length>0||"App title is required"}]),{appName:n,appTitle:a}=i;await w(s(import.meta.dirname,"../template"),s(E,n)),t.success("Successfully copied template files");const l=await y(s(E,"package.json"),{encoding:"utf-8"});l.name=n,await v(s(E,"package.json"),l,{encoding:"utf-8",spaces:2}),t.success("Successfully replaced name and title in package.json");const p=(await h(s(E,"env/.env"),{encoding:"utf-8"})).replace(/APP_NAME=.*$/,`APP_NAME=${n}`).replace(/APP_TITLE=.*$/,`APP_TITLE=${a}`);await g(s(E,"env/.env"),p),t.success("Successfully replaced name and title in .env file");const d=c("Initializing git repository...").start();try{await(o`git --version`),await(o({cwd:E})`git init`),d.succeed("Successfully initialized git repository")}catch(e){d.fail("Failed to initialize git repository"),t.error("Failed to initialize git repository",e)}d.start("Installing dependencies...");try{await(o({cwd:E,stdio:"ignore"})`pnpm install`),d.succeed("Successfully installed dependencies")}catch(e){d.fail("Failed to install dependencies"),t.error("Failed to install dependencies",e)}t.success("🎉🎉🎉 Successfully initialized VEF project")})),i.parse();
3
3
  /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -1,3 +1,3 @@
1
- /*! VefFramework version: 1.0.14, build time: 2024-12-19T08:46:29.130Z, made by Venus. */
1
+ /*! VefFramework version: 1.0.16, build time: 2024-12-19T10:34:00.337Z, made by Venus. */
2
2
  function t(){return{extends:["@commitlint/config-conventional"],formatter:"@commitlint/format"}}export{t as defineCommitlintConfig};
3
3
  /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
package/dist/config.js CHANGED
@@ -1,3 +1,3 @@
1
- /*! VefFramework version: 1.0.14, build time: 2024-12-19T08:46:29.130Z, made by Venus. */
1
+ /*! VefFramework version: 1.0.16, build time: 2024-12-19T10:34:00.337Z, made by Venus. */
2
2
  import o from"consola";import r from"fs-extra";import{resolve as i}from"node:path";import{defineConfig as n,loadEnv as t}from"vite";import{ENV_DIR as p,ENV_BUILD_PREFIX as s}from"./constants.js";import{createAppConfigPlugin as e}from"./plugin-app-config.js";import{createConventionalConfigPlugin as m}from"./plugin-conventional-config.js";import{createEslintPlugin as u}from"./plugin-eslint.js";import{createHtmlPlugin as a}from"./plugin-html.js";import{createIconsPlugin as f}from"./plugin-icons.js";import{createInjectionPlugin as c}from"./plugin-injection.js";import{createInspectPlugin as l}from"./plugin-inspect.js";import{createReactSwcPlugin as g}from"./plugin-react-swc.js";import{createRouterPlugin as j}from"./plugin-router.js";import{createStylelintPlugin as _}from"./plugin-stylelint.js";import{createSvgrPlugin as P}from"./plugin-svgr.js";import{createTailwindcssPlugin as D}from"./plugin-tailwindcss.js";import{createWebfontPlugin as E}from"./plugin-webfont.js";const{readJson:U}=r;function b({projectDir:r,proxies:b,groupChunks:B}){return n((async({mode:n})=>{const I=t(n,p,s);Object.keys(I).length>0&&(o.info("Loading environment variables:"),console.table(I));const L=await async function(o){const r=await U(i(o,"package.json"),{encoding:"utf-8"});return r.version}(r);return{plugins:[l(),m({appVersion:L,projectDir:r,basePublicPath:I.VEF_BUILD_BASE_PUBLIC_PATH,outputDir:I.VEF_BUILD_OUTPUT_DIR,serverPort:Number(I.VEF_BUILD_SERVER_PORT),proxies:b,groupChunks:B}),g(),a(),D(),c(),e({basePublicPath:I.VEF_BUILD_BASE_PUBLIC_PATH,outputDir:I.VEF_BUILD_OUTPUT_DIR,appName:I.VEF_APP_NAME}),f(r),P(),E(),j(r),u(),_()]}}))}export{b as defineConfig};
3
3
  /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
package/dist/constants.js CHANGED
@@ -1,3 +1,3 @@
1
- /*! VefFramework version: 1.0.14, build time: 2024-12-19T08:46:29.130Z, made by Venus. */
1
+ /*! VefFramework version: 1.0.16, build time: 2024-12-19T10:34:00.337Z, made by Venus. */
2
2
  const s="public",e="env",t="assets",r="VEF_APP_",P="VEF_BUILD_",_="src",c="dist",o=3833,p="APP",a="pages",i="router";export{t as ASSETS_DIR,p as DEFAULT_APP_NAME,c as DEFAULT_OUTPUT_DIR,o as DEFAULT_SERVER_PORT,r as ENV_APP_PREFIX,P as ENV_BUILD_PREFIX,e as ENV_DIR,a as PAGES_DIR,s as PUBLIC_DIR,i as ROUTER_DIR,_ as SRC_DIR};
3
3
  /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -1,3 +1,3 @@
1
- /*! VefFramework version: 1.0.14, build time: 2024-12-19T08:46:29.130Z, made by Venus. */
2
- import{antfu as r}from"@antfu/eslint-config";import e from"eslint-plugin-tailwindcss";function o(){return r({ignores:["**/node_modules","**/dist","**/public"],stylistic:{indent:2,jsx:!0,quotes:"double",semi:!0,overrides:{"style/line-comment-position":["error",{position:"above"}],"style/jsx-self-closing-comp":["error",{component:!0,html:!0}],"style/jsx-newline":["error",{prevent:!0,allowMultilines:!0}],"style/jsx-props-no-multi-spaces":"error","style/jsx-sort-props":["error",{callbacksLast:!0,shorthandFirst:!0,shorthandLast:!1,multiline:"last",ignoreCase:!0,noSortAlphabetically:!1,reservedFirst:["key","ref"]}],"style/newline-per-chained-call":["error",{ignoreChainWithDepth:2}],"style/object-property-newline":"error","style/brace-style":["error","1tbs"],"style/arrow-parens":["error","as-needed"],"style/multiline-comment-style":["error","starred-block"],"style/implicit-arrow-linebreak":["error","beside"],"style/no-extra-semi":"error","style/array-element-newline":["error",{consistent:!0,multiline:!0,minItems:7}],"style/function-call-argument-newline":["error","consistent"],"style/padding-line-between-statements":["error",{blankLine:"always",prev:"*",next:["block","multiline-block-like","type","interface","enum","function","function-overload"]},{blankLine:"always",prev:["block","multiline-block-like","type","interface","enum","function","function-overload"],next:"*"}],"style/jsx-pascal-case":["error",{allowAllCaps:!1,allowLeadingUnderscore:!1,allowNamespace:!1,ignore:[]}],"style/switch-colon-spacing":["error",{before:!1,after:!0}],"style/object-curly-newline":["error",{ObjectExpression:{multiline:!0,consistent:!0,minProperties:3},ObjectPattern:{multiline:!0,consistent:!0,minProperties:3},ImportDeclaration:{consistent:!0,multiline:!0},ExportDeclaration:{consistent:!0,multiline:!0}}],"style/no-extra-parens":["error","all",{nestedBinaryExpressions:!1,ternaryOperandBinaryExpressions:!1,ignoreJSX:"multi-line"}]}},javascript:{overrides:{"no-duplicate-imports":["error",{includeExports:!0}],"prefer-object-spread":"error","func-style":["error","declaration",{allowArrowFunctions:!0}],curly:["error","all"],"no-useless-escape":"error","no-useless-concat":"error","no-unused-private-class-members":"error","no-unsafe-optional-chaining":"error","no-dupe-else-if":"error","no-eq-null":"error","no-extra-label":"error","no-negated-condition":"error","no-invalid-this":"error","arrow-body-style":["error","as-needed"],"prefer-object-has-own":"error","prefer-numeric-literals":"error","prefer-named-capture-group":"error","prefer-destructuring":"error","object-shorthand":"error","require-atomic-updates":"error","require-await":"error",camelcase:["error",{properties:"always",ignoreGlobals:!0}],"no-promise-executor-return":["error",{allowVoid:!0}],"sort-imports":"off","no-console":"off"}},typescript:{overrides:{"ts/no-unused-expressions":["error",{enforceForJSX:!0}],"ts/no-unused-vars":["error",{args:"after-used",caughtErrors:"all",destructuredArrayIgnorePattern:"^_",ignoreRestSiblings:!0}],"ts/array-type":["error",{default:"array-simple",readonly:"array-simple"}],"ts/consistent-type-assertions":["error",{assertionStyle:"as",objectLiteralTypeAssertions:"allow"}],"ts/consistent-type-definitions":["error","interface"],"ts/max-params":["error",{max:5}]}},react:{overrides:{"react-naming-convention/component-name":["error","PascalCase"],"react-naming-convention/filename-extension":["error",{allow:"as-needed",extensions:[".tsx"]}],"react-hooks-extra/no-redundant-custom-hook":"error","react-hooks-extra/no-unnecessary-use-memo":"error","react-hooks-extra/no-unnecessary-use-callback":"error","react-naming-convention/use-state":"error","react-refresh/only-export-components":"error","react-hooks/exhaustive-deps":["error",{additionalHooks:"^use(Deep|Shallow)Compare"}],"react/no-clone-element":"off","react/no-class-component":"error","react/no-children-prop":"off","react/no-children-to-array":"off","react/no-children-for-each":"off","react/no-children-count":"off"}},vue:!1,jsx:!0,regexp:!0,jsonc:!0,yaml:!0,toml:!0,markdown:{overrides:{"markdown/fenced-code-language":"error","markdown/no-duplicate-headings":"error","markdown/no-empty-links":"error"}},test:!0,formatters:{markdown:"prettier",prettierOptions:{singleQuote:!1,semi:!0,tabWidth:2,useTabs:!1,trailingComma:"all",endOfLine:"lf",printWidth:160,proseWrap:"never",arrowParens:"avoid",htmlWhitespaceSensitivity:"strict",bracketSameLine:!0,bracketSpacing:!0,quoteProps:"as-needed",jsxSingleQuote:!1,singleAttributePerLine:!1}}},{rules:{"unicorn/filename-case":["error",{case:"kebabCase",ignore:["README.md"]}],"unicorn/prefer-date-now":"error","unicorn/prefer-string-trim-start-end":"error","unicorn/prefer-string-raw":"error","unicorn/prefer-object-from-entries":"error","unicorn/prefer-default-parameters":"error","unicorn/prefer-array-find":"error","unicorn/prefer-array-flat":"error","unicorn/prefer-array-flat-map":"error","unicorn/prefer-array-index-of":"error","unicorn/prefer-array-some":"error","unicorn/prefer-logical-operator-over-ternary":"error","unicorn/no-array-push-push":"error","unicorn/no-empty-file":"error","unicorn/no-array-for-each":"error","unicorn/no-for-loop":"error","unicorn/no-unnecessary-await":"error","unicorn/no-unnecessary-polyfills":"error","unicorn/no-useless-undefined":"error","unicorn/no-useless-switch-case":"error","unicorn/no-useless-spread":"error","unicorn/no-console-spaces":"error","unicorn/no-unused-properties":"error","unicorn/no-useless-promise-resolve-reject":"error","import/order":"off","import/first":"error","import/export":"error","import/no-named-as-default":"off","import/no-named-default":"off","perfectionist/sort-imports":["error",{type:"natural"}],"perfectionist/sort-exports":["error",{type:"natural"}],"perfectionist/sort-named-imports":["error",{type:"natural",groupKind:"values-first"}],"perfectionist/sort-named-exports":["error",{type:"natural",groupKind:"values-first"}]}},{ignores:["**/*.md","**/*.md/*.{ts,tsx}","src/pages/__root.tsx"],rules:{"react-naming-convention/filename":["error",{rule:"kebab-case"}]}},...e.configs["flat/recommended"],{rules:{"tailwindcss/migration-from-tailwind-2":"off","tailwindcss/no-arbitrary-value":"off","tailwindcss/classnames-order":"error","tailwindcss/enforces-negative-arbitrary-values":"error","tailwindcss/enforces-shorthand":"error","tailwindcss/no-custom-classname":["error",{whitelist:["vef-.*"]}],"tailwindcss/no-contradicting-classname":"error","tailwindcss/no-unnecessary-arbitrary-value":"error"}})}export{o as defineEslintConfig};
1
+ /*! VefFramework version: 1.0.16, build time: 2024-12-19T10:34:00.337Z, made by Venus. */
2
+ import{antfu as r}from"@antfu/eslint-config";import e from"@tanstack/eslint-plugin-router";import o from"eslint-plugin-tailwindcss";function n(){return r({ignores:["**/node_modules","**/dist","**/public"],stylistic:{indent:2,jsx:!0,quotes:"double",semi:!0,overrides:{"style/line-comment-position":["error",{position:"above"}],"style/jsx-self-closing-comp":["error",{component:!0,html:!0}],"style/jsx-newline":["error",{prevent:!0,allowMultilines:!0}],"style/jsx-props-no-multi-spaces":"error","style/jsx-sort-props":["error",{callbacksLast:!0,shorthandFirst:!0,shorthandLast:!1,multiline:"last",ignoreCase:!0,noSortAlphabetically:!1,reservedFirst:["key","ref"]}],"style/newline-per-chained-call":["error",{ignoreChainWithDepth:2}],"style/object-property-newline":"error","style/brace-style":["error","1tbs"],"style/arrow-parens":["error","as-needed"],"style/multiline-comment-style":["error","starred-block"],"style/implicit-arrow-linebreak":["error","beside"],"style/no-extra-semi":"error","style/array-element-newline":["error",{consistent:!0,multiline:!0,minItems:7}],"style/function-call-argument-newline":["error","consistent"],"style/padding-line-between-statements":["error",{blankLine:"always",prev:"*",next:["block","multiline-block-like","type","interface","enum","function","function-overload"]},{blankLine:"always",prev:["block","multiline-block-like","type","interface","enum","function","function-overload"],next:"*"}],"style/jsx-pascal-case":["error",{allowAllCaps:!1,allowLeadingUnderscore:!1,allowNamespace:!1,ignore:[]}],"style/switch-colon-spacing":["error",{before:!1,after:!0}],"style/object-curly-newline":["error",{ObjectExpression:{multiline:!0,consistent:!0,minProperties:3},ObjectPattern:{multiline:!0,consistent:!0,minProperties:3},ImportDeclaration:{consistent:!0,multiline:!0},ExportDeclaration:{consistent:!0,multiline:!0}}],"style/no-extra-parens":["error","all",{nestedBinaryExpressions:!1,ternaryOperandBinaryExpressions:!1,ignoreJSX:"multi-line"}]}},javascript:{overrides:{"no-duplicate-imports":["error",{includeExports:!0}],"prefer-object-spread":"error","func-style":["error","declaration",{allowArrowFunctions:!0}],curly:["error","all"],"no-useless-escape":"error","no-useless-concat":"error","no-unused-private-class-members":"error","no-unsafe-optional-chaining":"error","no-dupe-else-if":"error","no-eq-null":"error","no-extra-label":"error","no-negated-condition":"error","no-invalid-this":"error","arrow-body-style":["error","as-needed"],"prefer-object-has-own":"error","prefer-numeric-literals":"error","prefer-named-capture-group":"error","prefer-destructuring":"error","object-shorthand":"error","require-atomic-updates":"error","require-await":"error",camelcase:["error",{properties:"always",ignoreGlobals:!0}],"no-promise-executor-return":["error",{allowVoid:!0}],"sort-imports":"off","no-console":"off"}},typescript:{overrides:{"ts/no-unused-expressions":["error",{enforceForJSX:!0}],"ts/no-unused-vars":["error",{args:"after-used",caughtErrors:"all",destructuredArrayIgnorePattern:"^_",ignoreRestSiblings:!0}],"ts/array-type":["error",{default:"array-simple",readonly:"array-simple"}],"ts/consistent-type-assertions":["error",{assertionStyle:"as",objectLiteralTypeAssertions:"allow"}],"ts/consistent-type-definitions":["error","interface"],"ts/max-params":["error",{max:5}]}},react:{overrides:{"react-naming-convention/component-name":["error","PascalCase"],"react-naming-convention/filename-extension":["error",{allow:"as-needed",extensions:[".tsx"]}],"react-hooks-extra/no-redundant-custom-hook":"error","react-hooks-extra/no-unnecessary-use-memo":"error","react-hooks-extra/no-unnecessary-use-callback":"error","react-naming-convention/use-state":"error","react-refresh/only-export-components":"error","react-hooks/exhaustive-deps":["error",{additionalHooks:"^use(Deep|Shallow)Compare"}],"react/no-clone-element":"off","react/no-class-component":"error","react/no-children-prop":"off","react/no-children-to-array":"off","react/no-children-for-each":"off","react/no-children-count":"off"}},vue:!1,jsx:!0,regexp:!0,jsonc:!0,yaml:!0,toml:!0,markdown:{overrides:{"markdown/fenced-code-language":"error","markdown/no-duplicate-headings":"error","markdown/no-empty-links":"error"}},test:!0,formatters:{markdown:"prettier",prettierOptions:{singleQuote:!1,semi:!0,tabWidth:2,useTabs:!1,trailingComma:"all",endOfLine:"lf",printWidth:160,proseWrap:"never",arrowParens:"avoid",htmlWhitespaceSensitivity:"strict",bracketSameLine:!0,bracketSpacing:!0,quoteProps:"as-needed",jsxSingleQuote:!1,singleAttributePerLine:!1}}},{rules:{"unicorn/filename-case":["error",{case:"kebabCase",ignore:["README.md"]}],"unicorn/prefer-date-now":"error","unicorn/prefer-string-trim-start-end":"error","unicorn/prefer-string-raw":"error","unicorn/prefer-object-from-entries":"error","unicorn/prefer-default-parameters":"error","unicorn/prefer-array-find":"error","unicorn/prefer-array-flat":"error","unicorn/prefer-array-flat-map":"error","unicorn/prefer-array-index-of":"error","unicorn/prefer-array-some":"error","unicorn/prefer-logical-operator-over-ternary":"error","unicorn/no-array-push-push":"error","unicorn/no-empty-file":"error","unicorn/no-array-for-each":"error","unicorn/no-for-loop":"error","unicorn/no-unnecessary-await":"error","unicorn/no-unnecessary-polyfills":"error","unicorn/no-useless-undefined":"error","unicorn/no-useless-switch-case":"error","unicorn/no-useless-spread":"error","unicorn/no-console-spaces":"error","unicorn/no-unused-properties":"error","unicorn/no-useless-promise-resolve-reject":"error","import/order":"off","import/first":"error","import/export":"error","import/no-named-as-default":"off","import/no-named-default":"off","perfectionist/sort-imports":["error",{type:"natural"}],"perfectionist/sort-exports":["error",{type:"natural"}],"perfectionist/sort-named-imports":["error",{type:"natural",groupKind:"values-first"}],"perfectionist/sort-named-exports":["error",{type:"natural",groupKind:"values-first"}]}},{ignores:["**/*.md","**/*.md/*.{ts,tsx}","**/src/pages/__root.tsx"],rules:{"react-naming-convention/filename":["error",{rule:"kebab-case"}]}},...o.configs["flat/recommended"],{rules:{"tailwindcss/migration-from-tailwind-2":"off","tailwindcss/no-arbitrary-value":"off","tailwindcss/classnames-order":"error","tailwindcss/enforces-negative-arbitrary-values":"error","tailwindcss/enforces-shorthand":"error","tailwindcss/no-custom-classname":["error",{whitelist:["vef-.*"]}],"tailwindcss/no-contradicting-classname":"error","tailwindcss/no-unnecessary-arbitrary-value":"error"}},...e.configs["flat/recommended"])}export{n as defineEslintConfig};
3
3
  /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- /*! VefFramework version: 1.0.14, build time: 2024-12-19T08:46:29.130Z, made by Venus. */
1
+ /*! VefFramework version: 1.0.16, build time: 2024-12-19T10:34:00.337Z, made by Venus. */
2
2
  export{defineCommitlintConfig}from"./commitlint-config.js";export{defineConfig}from"./config.js";export{defineEslintConfig}from"./eslint-config.js";export{defineStylelintConfig}from"./stylelint-config.js";export{defineTailwindConfig}from"./tailwind-config.js";
3
3
  /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
package/dist/modules.d.js CHANGED
@@ -1,2 +1,2 @@
1
- /*! VefFramework version: 1.0.14, build time: 2024-12-19T08:46:29.130Z, made by Venus. */
1
+ /*! VefFramework version: 1.0.16, build time: 2024-12-19T10:34:00.337Z, made by Venus. */
2
2
  /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -1,3 +1,3 @@
1
- /*! VefFramework version: 1.0.14, build time: 2024-12-19T08:46:29.130Z, made by Venus. */
1
+ /*! VefFramework version: 1.0.16, build time: 2024-12-19T10:34:00.337Z, made by Venus. */
2
2
  import e from"unplugin-config/vite";import{DEFAULT_OUTPUT_DIR as n,ENV_APP_PREFIX as i,DEFAULT_APP_NAME as t}from"./constants.js";function p({basePublicPath:p,outputDir:o,appName:a=t}){return e({appName:`VEF_${a}`,baseDir:p,configFile:{generate:!0,fileName:"app.config.js",outputDir:o??n},htmlInjection:{enable:!0,position:"head-prepend",templates:["index.html"]},envVariables:{prefix:i,files:["env/.env","env/.env.production"]}})}export{p as createAppConfigPlugin};
3
3
  /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -1,3 +1,3 @@
1
- /*! VefFramework version: 1.0.14, build time: 2024-12-19T08:46:29.130Z, made by Venus. */
1
+ /*! VefFramework version: 1.0.16, build time: 2024-12-19T10:34:00.337Z, made by Venus. */
2
2
  import e from"autoprefixer";import{resolve as n}from"node:path";import i from"node:process";import o from"tailwindcss";import{ENV_DIR as s,ENV_BUILD_PREFIX as r,ENV_APP_PREFIX as t,DEFAULT_APP_NAME as c,SRC_DIR as u,DEFAULT_OUTPUT_DIR as a,ASSETS_DIR as d,DEFAULT_SERVER_PORT as l}from"./constants.js";function m({appName:m,appVersion:p,basePublicPath:_,projectDir:f,outputDir:v,serverPort:g,proxies:h,groupChunks:y}){return{name:"vef-framework:conventional-config",config(F,{command:O}){const E="serve"===O;return{appType:"spa",root:f,base:_,publicDir:"public",envDir:s,envPrefix:[r,t],define:{__VEF_FRAMEWORK_VERSION__:`"${i.env.VEF_FRAMEWORK_VERSION}"`,__VEF_APP_VERSION__:`"${p}"`,__VEF_APP_CONFIG__:E?`\n (function () {\n const env = import.meta.env;\n const config = Object.keys(env).filter(key => key.startsWith(${JSON.stringify(t)}))\n .reduce((acc, key) => {\n acc[key] = env[key];\n return acc;\n }, {});\n return Object.freeze(config);\n })()\n `:`window.__PRODUCTION__VEF_${m??c}__CONF__`},resolve:{alias:{"@":u}},css:{modules:{scopeBehaviour:"local",localsConvention:"camelCase"},postcss:{plugins:[o({config:n(f,"tailwind.config.js")}),e()]}},esbuild:{drop:["console","debugger"]},build:{outDir:v??a,target:"modules",assetsDir:d,assetsInlineLimit:10240,reportCompressedSize:!1,chunkSizeWarningLimit:512,minify:"terser",cssMinify:"lightningcss",sourcemap:!1,rollupOptions:{input:{main:"index.html"},output:{banner:`/*! Powered by VEF Framework v${i.env.VEF_FRAMEWORK_VERSION}.${p?` App version v${p}.`:""} Built at ${(new Date).toISOString()} */`,chunkFileNames:`${d}/js/[name]-[hash].js`,entryFileNames:`${d}/js/[name]-[hash].js`,assetFileNames:`${d}/[ext]/[name]-[hash].[ext]`,manualChunks:e=>{if(e.includes("/node_modules/react/")||e.includes("/node_modules/react-dom/"))return"react";if(e.includes("/node_modules/antd/")||e.includes("/node_modules/@rc-component/")||e.includes("/node_modules/rc-"))return"ui";if(e.includes("/node_modules/pinyin-pro/"))return"pinyin";if(e.includes("/node_modules/@ant-design/icons/")||e.includes("/node_modules/@ant-design/icons-svg/")||e.includes("/node_modules/lucide-react/"))return"icons";if(e.includes("/node_modules/@vef-framework/"))return"vef";if(e.includes("/node_modules/"))return"lib";if("function"==typeof y){const n=y(e);if("string"==typeof n&&n.trim())return n.trim()}}}}},server:{port:g||l,host:!0,open:!0,proxy:h}}}}}export{m as createConventionalConfigPlugin};
3
3
  /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -1,3 +1,3 @@
1
- /*! VefFramework version: 1.0.14, build time: 2024-12-19T08:46:29.130Z, made by Venus. */
1
+ /*! VefFramework version: 1.0.16, build time: 2024-12-19T10:34:00.337Z, made by Venus. */
2
2
  import e from"vite-plugin-eslint2";function t(){return e({fix:!0,test:!0,dev:!0,build:!0,cache:!0,cacheLocation:"node_modules/.cache/.eslintcache",include:["*.{js,ts,json,jsonc,yaml,toml,md}","src/**/*.{ts,tsx,json,jsonc,yaml,toml,md}"],exclude:["node_modules","virtual:","vef:"],emitError:!0,emitWarning:!0,emitWarningAsError:!0})}export{t as createEslintPlugin};
3
3
  /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -1,3 +1,3 @@
1
- /*! VefFramework version: 1.0.14, build time: 2024-12-19T08:46:29.130Z, made by Venus. */
1
+ /*! VefFramework version: 1.0.16, build time: 2024-12-19T10:34:00.337Z, made by Venus. */
2
2
  import{minify as e}from"html-minifier-terser";const t="index.html",r='\n<!doctype html>\n<html lang="en">\n <head>\n <meta charset="UTF-8" />\n <link rel="icon" type="image/svg+xml" href="%VEF_APP_FAVICON%" />\n <meta name="viewport" content="width=device-width, initial-scale=1.0" />\n <meta name="description" content="Powered by VEF Framework" />\n <title>%VEF_APP_TITLE%</title>\n </head>\n <body>\n <div id="root"></div>\n <script type="module" src="src/main.ts"><\/script>\n </body>\n</html>\n';function n(){return[{name:"vef-framework:html",resolveId(e){if(e===t)return t},load(e){if(e===t)return r},transformIndexHtml:{order:"pre",handler:()=>r}},{name:"vite-plugin-vef-framework-html-minify",enforce:"post",async generateBundle(r,n){for(const r of Object.values(n))"asset"===r.type&&"string"==typeof r.source&&r.fileName===t&&(r.source=await e(r.source,{collapseBooleanAttributes:!0,collapseInlineTagWhitespace:!0,collapseWhitespace:!0,conservativeCollapse:!1,keepClosingSlash:!0,minifyCSS:!0,minifyJS:!0,minifyURLs:!0,noNewlinesBeforeTagClose:!0,quoteCharacter:'"',removeAttributeQuotes:!1,removeComments:!0,removeEmptyAttributes:!0,removeOptionalTags:!1,removeRedundantAttributes:!0,removeScriptTypeAttributes:!1,removeTagWhitespace:!1,removeEmptyElements:!1,removeStyleLinkTypeAttributes:!1,sortAttributes:!0,sortClassName:!0,trimCustomFragments:!0,useShortDoctype:!0,html5:!0}))}}]}export{n as createHtmlPlugin};
3
3
  /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -1,3 +1,3 @@
1
- /*! VefFramework version: 1.0.14, build time: 2024-12-19T08:46:29.130Z, made by Venus. */
1
+ /*! VefFramework version: 1.0.16, build time: 2024-12-19T10:34:00.337Z, made by Venus. */
2
2
  import{resolve as o,dirname as t}from"node:path";import{fileURLToPath as e}from"node:url";import l from"unplugin-icons/vite";function r(r){return l({autoInstall:!1,compiler:"jsx",jsx:"react",defaultClass:"inline-block",scale:1.2,collectionsNodeResolvePath:[r,o(t(e(import.meta.url)),"..")]})}export{r as createIconsPlugin};
3
3
  /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -1,3 +1,3 @@
1
- /*! VefFramework version: 1.0.14, build time: 2024-12-19T08:46:29.130Z, made by Venus. */
1
+ /*! VefFramework version: 1.0.16, build time: 2024-12-19T10:34:00.337Z, made by Venus. */
2
2
  import{basename as t,dirname as n}from"node:path";function r(){return{name:"vef-framework:injection",transform:(r,i)=>"src"===t(n(i))&&t(i).startsWith("main.ts")?`import "vef:tailwind.css";\n${r}`:null}}export{r as createInjectionPlugin};
3
3
  /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -1,3 +1,3 @@
1
- /*! VefFramework version: 1.0.14, build time: 2024-12-19T08:46:29.130Z, made by Venus. */
1
+ /*! VefFramework version: 1.0.16, build time: 2024-12-19T10:34:00.337Z, made by Venus. */
2
2
  import i from"vite-plugin-inspect";function t(){return i({dev:!0,build:!1})}export{t as createInspectPlugin};
3
3
  /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -1,3 +1,3 @@
1
- /*! VefFramework version: 1.0.14, build time: 2024-12-19T08:46:29.130Z, made by Venus. */
1
+ /*! VefFramework version: 1.0.16, build time: 2024-12-19T10:34:00.337Z, made by Venus. */
2
2
  import e from"@vitejs/plugin-react-swc";function t(){return e({devTarget:"esnext"})}export{t as createReactSwcPlugin};
3
3
  /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -1,3 +1,3 @@
1
- /*! VefFramework version: 1.0.14, build time: 2024-12-19T08:46:29.130Z, made by Venus. */
1
+ /*! VefFramework version: 1.0.16, build time: 2024-12-19T10:34:00.337Z, made by Venus. */
2
2
  import{TanStackRouterVite as e}from"@tanstack/router-plugin/vite";import{resolve as t}from"node:path";import{SRC_DIR as o,PAGES_DIR as n,ROUTER_DIR as r}from"./constants.js";function i(i){return e({routesDirectory:t(i,o,n),generatedRouteTree:t(i,o,r,"routes.gen.ts"),quoteStyle:"double",semicolons:!0,disableTypes:!1,addExtensions:!1,disableLogging:!1,disableManifestGeneration:!1,routeFileIgnorePattern:"components",indexToken:"index",routeToken:"route",enableRouteGeneration:!0,autoCodeSplitting:!1})}export{i as createRouterPlugin};
3
3
  /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -1,3 +1,3 @@
1
- /*! VefFramework version: 1.0.14, build time: 2024-12-19T08:46:29.130Z, made by Venus. */
1
+ /*! VefFramework version: 1.0.16, build time: 2024-12-19T10:34:00.337Z, made by Venus. */
2
2
  import e from"vite-plugin-stylelint";function i(){return e({fix:!0,test:!0,dev:!0,build:!0,cache:!0,cacheLocation:"node_modules/.cache/.stylelintcache",include:["src/**/*.{scss,css}"],exclude:["node_modules","virtual:","vef:"],emitError:!0,emitWarning:!0,emitWarningAsError:!0})}export{i as createStylelintPlugin};
3
3
  /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -1,3 +1,3 @@
1
- /*! VefFramework version: 1.0.14, build time: 2024-12-19T08:46:29.130Z, made by Venus. */
1
+ /*! VefFramework version: 1.0.16, build time: 2024-12-19T10:34:00.337Z, made by Venus. */
2
2
  import s from"vite-plugin-svgr";function i(){return s({include:"**/*.svg?react",esbuildOptions:{platform:"browser",minify:!0,jsx:"automatic"},svgrOptions:{plugins:["@svgr/plugin-svgo","@svgr/plugin-jsx"],icon:!1,dimensions:!1,prettier:!0,memo:!0,svgo:!0,ref:!1,typescript:!0,jsxRuntime:"automatic",svgoConfig:{multipass:!0,datauri:"base64",js2svg:{indent:2,pretty:!0},plugins:["preset-default",{name:"prefixIds",params:{prefix:"vef"}},{name:"cleanupIds",params:{force:!0,remove:!0,minify:!0}}]},svgProps:{}}})}export{i as createSvgrPlugin};
3
3
  /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -1,3 +1,3 @@
1
- /*! VefFramework version: 1.0.14, build time: 2024-12-19T08:46:29.130Z, made by Venus. */
1
+ /*! VefFramework version: 1.0.16, build time: 2024-12-19T10:34:00.337Z, made by Venus. */
2
2
  const i="vef:tailwind.css",n=`\0${i}`;function t(){return{name:"vef-framework:tailwindcss",resolveId(t){if(t===i)return n},load(i){if(i===n)return"@tailwind base;\n@tailwind components;\n@tailwind utilities;"}}}export{t as createTailwindcssPlugin};
3
3
  /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -1,3 +1,3 @@
1
- /*! VefFramework version: 1.0.14, build time: 2024-12-19T08:46:29.130Z, made by Venus. */
1
+ /*! VefFramework version: 1.0.16, build time: 2024-12-19T10:34:00.337Z, made by Venus. */
2
2
  import t from"vite-plugin-webfont-dl";function a(){return t(["https://fonts.googleapis.com/css2?family=PT+Sans+Caption:wght@400;700&family=PT+Sans:ital,wght@0,400;0,700;1,400;1,700&display=swap","https://fonts.googleapis.com/css2?family=Martian+Mono:wght@100..800&family=PT+Sans+Caption:wght@400;700&family=PT+Sans:ital,wght@0,400;0,700;1,400;1,700&display=swap"])}export{a as createWebfontPlugin};
3
3
  /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -1,3 +1,3 @@
1
- /*! VefFramework version: 1.0.14, build time: 2024-12-19T08:46:29.130Z, made by Venus. */
1
+ /*! VefFramework version: 1.0.16, build time: 2024-12-19T10:34:00.337Z, made by Venus. */
2
2
  import e from"stylelint-config-recess-order/groups";function n(){return{extends:["stylelint-config-standard-scss","stylelint-config-recommended"],plugins:["stylelint-order"],rules:{"order/order":["dollar-variables","at-variables","custom-properties","less-mixins","declarations","at-rules","rules"],"order/properties-order":e.map((e=>({...e,emptyLineBefore:"always",noEmptyLineBetween:!0}))),"declaration-empty-line-before":null,"at-rule-no-unknown":null,"function-no-unknown":null,"number-max-precision":null,"color-hex-length":"long","color-hex-alpha":"never","color-named":"never","unit-allowed-list":["px","em","rem","%","vw","vh","fr","deg","rad","grad","turn","ms","s"],"scss/function-no-unknown":[!0,{ignoreFunctions:[]}],"scss/at-rule-no-unknown":[!0,{ignoreAtRules:[]}]}}}export{n as defineStylelintConfig};
3
3
  /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -1,3 +1,3 @@
1
- /*! VefFramework version: 1.0.14, build time: 2024-12-19T08:46:29.130Z, made by Venus. */
1
+ /*! VefFramework version: 1.0.16, build time: 2024-12-19T10:34:00.337Z, made by Venus. */
2
2
  import e from"@tailwindcss/container-queries";import r from"tailwindcss/colors.js";function v(){return{content:["src/**/*.{ts,tsx}"],plugins:[e],theme:{colors:{inherit:"inherit",current:"currentColor",transparent:"transparent",black:"#000000",white:"var(--vef-color-white)",primary:"var(--vef-color-primary)","primary-hover":"var(--vef-color-primary-hover)","primary-active":"var(--vef-color-primary-active)",success:"var(--vef-color-success)","success-hover":"var(--vef-color-success-hover)","success-active":"var(--vef-color-success-active)",warning:"var(--vef-color-warning)","warning-hover":"var(--vef-color-warning-hover)","warning-active":"var(--vef-color-warning-active)",error:"var(--vef-color-error)","error-hover":"var(--vef-color-error-hover)","error-active":"var(--vef-color-error-active)",info:"var(--vef-color-info)","info-hover":"var(--vef-color-info-hover)","info-active":"var(--vef-color-info-active)",link:"var(--vef-color-link)","link-hover":"var(--vef-color-link-hover)","link-active":"var(--vef-color-link-active)",blue:{DEFAULT:"var(--vef-blue-6)",1:"var(--vef-blue-1)",2:"var(--vef-blue-2)",3:"var(--vef-blue-3)",4:"var(--vef-blue-4)",5:"var(--vef-blue-5)",6:"var(--vef-blue-6)",7:"var(--vef-blue-7)",8:"var(--vef-blue-8)",9:"var(--vef-blue-9)",10:"var(--vef-blue-10)"},purple:{DEFAULT:"var(--vef-purple-6)",1:"var(--vef-purple-1)",2:"var(--vef-purple-2)",3:"var(--vef-purple-3)",4:"var(--vef-purple-4)",5:"var(--vef-purple-5)",6:"var(--vef-purple-6)",7:"var(--vef-purple-7)",8:"var(--vef-purple-8)",9:"var(--vef-purple-9)",10:"var(--vef-purple-10)"},cyan:{DEFAULT:"var(--vef-cyan-6)",1:"var(--vef-cyan-1)",2:"var(--vef-cyan-2)",3:"var(--vef-cyan-3)",4:"var(--vef-cyan-4)",5:"var(--vef-cyan-5)",6:"var(--vef-cyan-6)",7:"var(--vef-cyan-7)",8:"var(--vef-cyan-8)",9:"var(--vef-cyan-9)",10:"var(--vef-cyan-10)"},green:{DEFAULT:"var(--vef-green-6)",1:"var(--vef-green-1)",2:"var(--vef-green-2)",3:"var(--vef-green-3)",4:"var(--vef-green-4)",5:"var(--vef-green-5)",6:"var(--vef-green-6)",7:"var(--vef-green-7)",8:"var(--vef-green-8)",9:"var(--vef-green-9)",10:"var(--vef-green-10)"},magenta:{DEFAULT:"var(--vef-magenta-6)",1:"var(--vef-magenta-1)",2:"var(--vef-magenta-2)",3:"var(--vef-magenta-3)",4:"var(--vef-magenta-4)",5:"var(--vef-magenta-5)",6:"var(--vef-magenta-6)",7:"var(--vef-magenta-7)",8:"var(--vef-magenta-8)",9:"var(--vef-magenta-9)",10:"var(--vef-magenta-10)"},pink:{DEFAULT:"var(--vef-pink-6)",1:"var(--vef-pink-1)",2:"var(--vef-pink-2)",3:"var(--vef-pink-3)",4:"var(--vef-pink-4)",5:"var(--vef-pink-5)",6:"var(--vef-pink-6)",7:"var(--vef-pink-7)",8:"var(--vef-pink-8)",9:"var(--vef-pink-9)",10:"var(--vef-pink-10)"},red:{DEFAULT:"var(--vef-red-6)",1:"var(--vef-red-1)",2:"var(--vef-red-2)",3:"var(--vef-red-3)",4:"var(--vef-red-4)",5:"var(--vef-red-5)",6:"var(--vef-red-6)",7:"var(--vef-red-7)",8:"var(--vef-red-8)",9:"var(--vef-red-9)",10:"var(--vef-red-10)"},orange:{DEFAULT:"var(--vef-orange-6)",1:"var(--vef-orange-1)",2:"var(--vef-orange-2)",3:"var(--vef-orange-3)",4:"var(--vef-orange-4)",5:"var(--vef-orange-5)",6:"var(--vef-orange-6)",7:"var(--vef-orange-7)",8:"var(--vef-orange-8)",9:"var(--vef-orange-9)",10:"var(--vef-orange-10)"},yellow:{DEFAULT:"var(--vef-yellow-6)",1:"var(--vef-yellow-1)",2:"var(--vef-yellow-2)",3:"var(--vef-yellow-3)",4:"var(--vef-yellow-4)",5:"var(--vef-yellow-5)",6:"var(--vef-yellow-6)",7:"var(--vef-yellow-7)",8:"var(--vef-yellow-8)",9:"var(--vef-yellow-9)",10:"var(--vef-yellow-10)"},volcano:{DEFAULT:"var(--vef-volcano-6)",1:"var(--vef-volcano-1)",2:"var(--vef-volcano-2)",3:"var(--vef-volcano-3)",4:"var(--vef-volcano-4)",5:"var(--vef-volcano-5)",6:"var(--vef-volcano-6)",7:"var(--vef-volcano-7)",8:"var(--vef-volcano-8)",9:"var(--vef-volcano-9)",10:"var(--vef-volcano-10)"},geekblue:{DEFAULT:"var(--vef-geekblue-6)",1:"var(--vef-geekblue-1)",2:"var(--vef-geekblue-2)",3:"var(--vef-geekblue-3)",4:"var(--vef-geekblue-4)",5:"var(--vef-geekblue-5)",6:"var(--vef-geekblue-6)",7:"var(--vef-geekblue-7)",8:"var(--vef-geekblue-8)",9:"var(--vef-geekblue-9)",10:"var(--vef-geekblue-10)"},gold:{DEFAULT:"var(--vef-gold-6)",1:"var(--vef-gold-1)",2:"var(--vef-gold-2)",3:"var(--vef-gold-3)",4:"var(--vef-gold-4)",5:"var(--vef-gold-5)",6:"var(--vef-gold-6)",7:"var(--vef-gold-7)",8:"var(--vef-gold-8)",9:"var(--vef-gold-9)",10:"var(--vef-gold-10)"},lime:{DEFAULT:"var(--vef-lime-6)",1:"var(--vef-lime-1)",2:"var(--vef-lime-2)",3:"var(--vef-lime-3)",4:"var(--vef-lime-4)",5:"var(--vef-lime-5)",6:"var(--vef-lime-6)",7:"var(--vef-lime-7)",8:"var(--vef-lime-8)",9:"var(--vef-lime-9)",10:"var(--vef-lime-10)"},slate:{DEFAULT:r.slate[500],1:r.slate[50],2:r.slate[100],3:r.slate[200],4:r.slate[300],5:r.slate[400],6:r.slate[500],7:r.slate[600],8:r.slate[700],9:r.slate[800],10:r.slate[900]}},extend:{textColor:{"primary-alt":"var(--vef-color-primary-text)","primary-alt-hover":"var(--vef-color-primary-text-hover)","primary-alt-active":"var(--vef-color-primary-text-active)","success-alt":"var(--vef-color-success-text)","success-alt-hover":"var(--vef-color-success-text-hover)","success-alt-active":"var(--vef-color-success-text-active)","warning-alt":"var(--vef-color-warning-text)","warning-alt-hover":"var(--vef-color-warning-text-hover)","warning-alt-active":"var(--vef-color-warning-text-active)","error-alt":"var(--vef-color-error-text)","error-alt-hover":"var(--vef-color-error-text-hover)","error-alt-active":"var(--vef-color-error-text-active)","info-alt":"var(--vef-color-info-text)","info-alt-hover":"var(--vef-color-info-text-hover)","info-alt-active":"var(--vef-color-info-text-active)",base:"var(--vef-color-text-base)",default:"var(--vef-color-text)",secondary:"var(--vef-color-text-secondary)",tertiary:"var(--vef-color-text-tertiary)",quaternary:"var(--vef-color-text-quaternary)",placeholder:"var(--vef-color-text-placeholder)",disabled:"var(--vef-color-text-disabled)",heading:"var(--vef-color-text-heading)",label:"var(--vef-color-text-label)",description:"var(--vef-color-text-description)","light-solid":"var(--vef-color-text-light-solid)",highlight:"var(--vef-color-highlight)",icon:"var(--vef-color-icon)","icon-hover":"var(--vef-color-icon-hover)"},outlineColor:{error:"var(--vef-color-error-outline)",warning:"var(--vef-color-warning-outline)"},backgroundColor:{"primary-alt":"var(--vef-color-primary-bg)","primary-alt-hover":"var(--vef-color-primary-bg-hover)","success-alt":"var(--vef-color-success-bg)","success-alt-hover":"var(--vef-color-success-bg-hover)","warning-alt":"var(--vef-color-warning-bg)","warning-alt-hover":"var(--vef-color-warning-bg-hover)","error-alt":"var(--vef-color-error-bg)","error-alt-hover":"var(--vef-color-error-bg-hover)","info-alt":"var(--vef-color-info-bg)","info-alt-hover":"var(--vef-color-info-bg-hover)",base:"var(--vef-color-bg-base)",layout:"var(--vef-color-bg-layout)",spotlight:"var(--vef-color-bg-spotlight)",solid:"var(--vef-color-bg-solid)","solid-hover":"var(--vef-color-bg-solid-hover)","solid-active":"var(--vef-color-bg-solid-active)",container:"var(--vef-color-bg-container)","container-disabled":"var(--vef-color-bg-container-disabled)",elevated:"var(--vef-color-bg-elevated)",blur:"var(--vef-color-bg-blur)",fill:"var(--vef-color-fill)","fill-secondary":"var(--vef-color-fill-secondary)","fill-tertiary":"var(--vef-color-fill-tertiary)","fill-quaternary":"var(--vef-color-fill-quaternary)","fill-content":"var(--vef-color-fill-content)","fill-content-hover":"var(--vef-color-fill-content-hover)","fill-alt":"var(--vef-color-fill-alter)",mask:"var(--vef-color-bg-mask)","text-hover":"var(--vef-color-bg-text-hover)","text-active":"var(--vef-color-bg-text-active)","control-item-hover":"var(--vef-control-item-bg-hover)","control-item-active":"var(--vef-control-item-bg-active)","control-item-active-hover":"var(--vef-control-item-bg-active-hover)","control-item-active-disabled":"var(--vef-control-item-bg-active-disabled)"},borderColor:{"primary-alt":"var(--vef-color-primary-border)","primary-alt-hover":"var(--vef-color-primary-border-hover)","success-alt":"var(--vef-color-success-border)","success-alt-hover":"var(--vef-color-success-border-hover)","warning-alt":"var(--vef-color-warning-border)","warning-alt-hover":"var(--vef-color-warning-border-hover)","error-alt":"var(--vef-color-error-border)","error-alt-hover":"var(--vef-color-error-border-hover)","info-alt":"var(--vef-color-info-border)","info-alt-hover":"var(--vef-color-info-border-hover)",base:"var(--vef-color-border)",secondary:"var(--vef-color-border-secondary)"},fontFamily:{base:"var(--vef-font-family)",code:"var(--vef-font-family-code)"},fontSize:{base:"var(--vef-font-size)",sm:"var(--vef-font-size-sm)",lg:"var(--vef-font-size-lg)",xl:"var(--vef-font-size-xl)",heading1:"var(--vef-font-size-heading-1)",heading2:"var(--vef-font-size-heading-2)",heading3:"var(--vef-font-size-heading-3)",heading4:"var(--vef-font-size-heading-4)",heading5:"var(--vef-font-size-heading-5)"},fontWeight:{strong:"var(--vef-font-weight-strong)"},borderWidth:{base:"var(--vef-line-width)",bold:"var(--vef-line-width-bold)"},borderRadius:{DEFAULT:"var(--vef-border-radius)",xs:"var(--vef-border-radius-xs)",sm:"var(--vef-border-radius-sm)",lg:"var(--vef-border-radius-lg)",outer:"var(--vef-border-radius-outer)"},height:{control:"var(--vef-control-height)","control-sm":"var(--vef-control-height-sm)","control-xs":"var(--vef-control-height-xs)","control-lg":"var(--vef-control-height-lg)",font:"var(--vef-font-height)","font-sm":"var(--vef-font-height-sm)","font-lg":"var(--vef-font-height-lg)"},lineHeight:{base:"var(--vef-line-height)",sm:"var(--vef-line-height-sm)",lg:"var(--vef-line-height-lg)","heading-1":"var(--vef-line-height-heading-1)","heading-2":"var(--vef-line-height-heading-2)","heading-3":"var(--vef-line-height-heading-3)","heading-4":"var(--vef-line-height-heading-4)","heading-5":"var(--vef-line-height-heading-5)"},spacing:{base:"var(--vef-margin)",xxs:"var(--vef-margin-xxs)",xs:"var(--vef-margin-xs)",sm:"var(--vef-margin-sm)",md:"var(--vef-margin-md)",lg:"var(--vef-margin-lg)",xl:"var(--vef-margin-xl)",xxl:"var(--vef-margin-xxl)"},boxShadow:{base:"var(--vef-box-shadow)",secondary:"var(--vef-box-shadow-secondary)",tertiary:"var(--vef-box-shadow-tertiary)",card:"var(--vef-box-shadow-card)",elevated:"0 0 1px rgb(0 0 0 / 30%), 0 4px 14px rgb(0 0 0 / 10%)"},transitionDuration:{fast:"var(--vef-motion-duration-fast)",mid:"var(--vef-motion-duration-mid)",slow:"var(--vef-motion-duration-slow)"},transitionTimingFunction:{"ease-out-circ":"var(--vef-motion-ease-out-circ)","ease-in-out-circ":"var(--vef-motion-ease-in-out-circ)","ease-out":"var(--vef-motion-ease-out)","ease-in-out":"var(--vef-motion-ease-in-out)","ease-out-back":"var(--vef-motion-ease-out-back)","ease-in-back":"var(--vef-motion-ease-in-back)","ease-in-quint":"var(--vef-motion-ease-in-quint)","ease-out-quint":"var(--vef-motion-ease-out-quint)"},zIndex:{base:"var(--vef-z-index-base)",popup:"var(--vef-z-index-popup)"}}}}}export{v as defineTailwindConfig};
3
3
  /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vef-framework/dev",
3
3
  "type": "module",
4
- "version": "1.0.14",
4
+ "version": "1.0.16",
5
5
  "private": false,
6
6
  "packageManager": "pnpm@9.15.0",
7
7
  "description": "The development tools of the VEF framework",
@@ -35,6 +35,7 @@
35
35
  "@iconify-json/tabler": "^1.2.13",
36
36
  "@svgr/plugin-svgo": "^8.1.0",
37
37
  "@tailwindcss/container-queries": "^0.1.1",
38
+ "@tanstack/eslint-plugin-router": "^1.87.6",
38
39
  "@tanstack/react-query-devtools": "^5.62.8",
39
40
  "@tanstack/router-devtools": "^1.90.0",
40
41
  "@tanstack/router-plugin": "^1.87.13",
@@ -56,7 +57,9 @@
56
57
  "husky": "9.1.7",
57
58
  "lightningcss": "^1.28.2",
58
59
  "lint-staged": "^15.2.11",
60
+ "ora": "^8.1.1",
59
61
  "postcss": "^8.4.49",
62
+ "prompts": "^2.4.2",
60
63
  "sass-embedded": "^1.83.0",
61
64
  "stylelint": "^16.12.0",
62
65
  "stylelint-config-recess-order": "^5.1.1",
@@ -0,0 +1,6 @@
1
+ {
2
+ "typescript.tsdk": "node_modules/typescript/lib",
3
+ "files.watcherExclude": {
4
+ "**/routes.gen.ts": true
5
+ }
6
+ }
@@ -0,0 +1,3 @@
1
+ import { defineCommitlintConfig } from "@vef-framework/dev";
2
+
3
+ export default defineCommitlintConfig();
@@ -0,0 +1,7 @@
1
+ VEF_APP_NAME=vef-app
2
+ VEF_APP_TITLE=VefAdmin
3
+ VEF_APP_FAVICON=/favicon.svg
4
+
5
+ VEF_BUILD_BASE_PUBLIC_PATH=/
6
+ VEF_BUILD_OUTPUT_DIR=dist
7
+ VEF_BUILD_SERVER_PORT=3833
File without changes
File without changes
@@ -0,0 +1 @@
1
+ /// <reference types="@vef-framework/dev/client" />
@@ -0,0 +1,3 @@
1
+ import { defineEslintConfig } from "@vef-framework/dev";
2
+
3
+ export default defineEslintConfig();
File without changes
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "vef-app",
3
+ "type": "module",
4
+ "version": "1.0.0",
5
+ "private": true,
6
+ "description": "An app powered by vef framework",
7
+ "author": "Venus",
8
+ "engines": {
9
+ "node": ">=20"
10
+ },
11
+ "scripts": {
12
+ "prepare": "vef prepare",
13
+ "dev": "vef dev",
14
+ "build": "vef build"
15
+ },
16
+ "dependencies": {
17
+ "@tanstack/react-router": "^1.91.3",
18
+ "@vef-framework/components": "^1.0.15",
19
+ "@vef-framework/core": "^1.0.15",
20
+ "@vef-framework/hooks": "^1.0.15",
21
+ "@vef-framework/shared": "^1.0.15",
22
+ "react": "^18.3.1",
23
+ "react-dom": "^18.3.1",
24
+ "zustand": "^5.0.2"
25
+ },
26
+ "devDependencies": {
27
+ "@types/react": "^18.3.17",
28
+ "@types/react-dom": "^18.3.5",
29
+ "@vef-framework/dev": "^1.0.15",
30
+ "typescript": "^5.7.2"
31
+ }
32
+ }
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" preserveAspectRatio="xMidYMid meet" viewBox="96 53 150 145.63955181855252"><g transform="translate(95,52.18022155761719)"><g fill="#34435C" hollow-target="text"><g mask="url(#ab0ea033-fda4-47dc-88f0-22900a4a23a9)"><g><svg x="0" y="0" width="150" height="145.63955181855252" filtersec="colorsb9343370191" class="image-svg-svg primary" style="overflow: visible;"><svg viewBox="0 0 334.1409912109375 324.4289855957031" xmlns="http://www.w3.org/2000/svg"><path fill="none" pointer-events="none" d="M0 0h334.141v324.429H0z"></path><path class="st4" d="M168.019 13.483c-83.2 0-150.7 67.5-150.7 150.7 0 83.2 67.5 150.7 150.7 150.7 83.2 0 150.7-67.5 150.7-150.7 0-83.3-67.5-150.7-150.7-150.7zm0 241c-49.9 0-90.4-40.5-90.4-90.4 0-49.9 40.5-90.4 90.4-90.4 49.9 0 90.4 40.5 90.4 90.4 0 50-40.5 90.4-90.4 90.4z" fill="#fcc29a"></path><path class="st5" d="M258.419 164.083c0 49.9-40.5 90.4-90.4 90.4-49.9 0-90.4-40.5-90.4-90.4 0 66.6 54 120.5 120.5 120.5s120.5-54 120.5-120.5c0-83.2-67.5-150.7-150.7-150.7-83.2 0-150.7 67.5-150.7 150.7 0-66.6 54-120.5 120.5-120.5 66.7 0 120.7 54 120.7 120.5" fill="#3498db"></path></svg></svg></g></g><g transform="translate(43.244998931884766,52.94477844238281)"><g data-gra="path-name"><g transform="scale(1)"><g><path d="M31.8-21.32L31.8-21.32Q31.8-17.56 30.83-14.54 29.86-11.52 28.13-9.17 26.4-6.82 24.01-5.13 21.62-3.44 18.77-2.35 15.93-1.26 12.72-0.74 9.51-0.21 6.12-0.21L6.12-0.21Q4.86-0.21 3.65-0.28 2.44-0.35 1.18-0.48L1.18-0.48 1.93-36.52Q4.89-37.46 8.02-37.85 11.15-38.24 14.23-38.24L14.23-38.24Q18.07-38.24 21.3-37.09 24.52-35.93 26.86-33.76 29.19-31.58 30.49-28.44 31.8-25.3 31.8-21.32ZM20.79-19.23L20.79-19.6Q20.81-21.05 20.48-22.4 20.14-23.74 19.38-24.77 18.61-25.81 17.43-26.44 16.25-27.07 14.61-27.12L14.61-27.12 13.54-10.47Q15.15-10.72 16.46-11.53 17.78-12.35 18.73-13.55 19.69-14.74 20.21-16.21 20.73-17.67 20.79-19.23L20.79-19.23ZM64.69-25.83L64.69-25.83Q64.69-23.23 63.92-21.22 63.14-19.2 61.78-17.7 60.42-16.19 58.6-15.15 56.77-14.1 54.69-13.44 52.61-12.78 50.38-12.47 48.15-12.17 46-12.14L46-12.14 46 0.38 33.49 0.38Q33.49-5.77 33.52-11.87 33.54-17.97 33.6-24.17L33.6-24.17Q33.65-27.45 33.62-30.72 33.6-34 33.76-37.33L33.76-37.33Q37.19-38.35 40.63-38.86 44.07-39.37 47.72-39.37L47.72-39.37Q49.79-39.37 51.86-39.03 53.93-38.7 55.82-37.97 57.71-37.25 59.34-36.16 60.96-35.07 62.14-33.57 63.33-32.07 64.01-30.15 64.69-28.23 64.69-25.83ZM52.77-24.92L52.77-24.92Q52.77-26.67 51.71-27.65 50.65-28.63 48.96-28.63L48.96-28.63Q48.39-28.63 47.79-28.53 47.19-28.44 46.65-28.31L46.65-28.31 46.33-20.46Q46.7-20.41 47.05-20.41 47.4-20.41 47.78-20.41L47.78-20.41Q48.74-20.41 49.64-20.73 50.54-21.05 51.24-21.66 51.94-22.26 52.35-23.08 52.77-23.9 52.77-24.92Z" transform="translate(-1.1800000667572021, 39.369998931884766)"></path></g></g></g></g></g></g></svg>
@@ -0,0 +1,14 @@
1
+ import { createVefApp } from "@vef-framework/components";
2
+ import { createApiClient } from "@vef-framework/core";
3
+
4
+ import router from "./router";
5
+
6
+ const app = createVefApp();
7
+
8
+ app.render({
9
+ router,
10
+ apiClient: createApiClient({
11
+ baseUrl: "replace-with-your-api-base-url",
12
+ getAccessToken: () => "replace-with-your-access-token",
13
+ }),
14
+ });
@@ -0,0 +1,11 @@
1
+ import { createRootRoute, Outlet } from "@tanstack/react-router";
2
+
3
+ export const Route = createRootRoute({
4
+ component: RootComponent,
5
+ });
6
+
7
+ function RootComponent() {
8
+ return (
9
+ <Outlet />
10
+ );
11
+ }
@@ -0,0 +1,9 @@
1
+ import { createFileRoute } from "@tanstack/react-router";
2
+
3
+ export const Route = createFileRoute("/_layout/about")({
4
+ component: AboutPage,
5
+ });
6
+
7
+ function AboutPage() {
8
+ return <h1>About Page</h1>;
9
+ }
@@ -0,0 +1,11 @@
1
+ import { createFileRoute } from "@tanstack/react-router";
2
+
3
+ export const Route = createFileRoute("/_layout/")({
4
+ component: HomePage,
5
+ });
6
+
7
+ function HomePage() {
8
+ return (
9
+ <h1 className="text-heading2 text-primary">Home Page</h1>
10
+ );
11
+ }
@@ -0,0 +1,20 @@
1
+ import { createFileRoute, Link, Outlet } from "@tanstack/react-router";
2
+
3
+ export const Route = createFileRoute("/_layout")({
4
+ component: LayoutComponent,
5
+ });
6
+
7
+ function LayoutComponent() {
8
+ return (
9
+ <div>
10
+ <h1 className="text-heading1">Layout</h1>
11
+
12
+ <div className="flex items-center gap-4">
13
+ <Link to="/">Home</Link>
14
+ <Link to="/about">About</Link>
15
+ </div>
16
+
17
+ <Outlet />
18
+ </div>
19
+ );
20
+ }
@@ -0,0 +1,15 @@
1
+ import { createRouter } from "@tanstack/react-router";
2
+
3
+ import { routeTree } from "./routes.gen";
4
+
5
+ export const router = createRouter({
6
+ routeTree,
7
+ });
8
+
9
+ declare module "@tanstack/react-router" {
10
+ interface Register {
11
+ router: typeof router;
12
+ }
13
+ }
14
+
15
+ export default router;
@@ -0,0 +1,3 @@
1
+ import { defineStylelintConfig } from "@vef-framework/dev";
2
+
3
+ export default defineStylelintConfig();
@@ -0,0 +1,3 @@
1
+ import { defineTailwindConfig } from "@vef-framework/dev";
2
+
3
+ export default defineTailwindConfig();
@@ -0,0 +1,4 @@
1
+ {
2
+ "extends": "@vef-framework/dev/tsconfig.json",
3
+ "include": ["env.d.ts", "src"]
4
+ }
@@ -0,0 +1,5 @@
1
+ import { defineConfig } from "@vef-framework/dev";
2
+
3
+ export default defineConfig({
4
+ projectDir: import.meta.dirname,
5
+ });
@@ -1,24 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "composite": true,
4
- "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
5
- "target": "ES2022",
6
- "lib": ["ES2023"],
7
- "module": "Node16",
8
- "moduleResolution": "node16",
9
- "allowImportingTsExtensions": false,
10
-
11
- /* Linting */
12
- "strict": true,
13
- "noFallthroughCasesInSwitch": true,
14
- "noImplicitAny": true,
15
- "noImplicitOverride": true,
16
- "noUnusedLocals": true,
17
- "noUnusedParameters": true,
18
- "importHelpers": true,
19
- "noEmit": true,
20
- "allowSyntheticDefaultImports": true,
21
- "esModuleInterop": true,
22
- "skipLibCheck": true
23
- }
24
- }
File without changes