generated from template/astro-simple-template
	Initial commit
This commit is contained in:
		
							
								
								
									
										6
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
node_modules
 | 
			
		||||
.DS_Store
 | 
			
		||||
 | 
			
		||||
.astro
 | 
			
		||||
 | 
			
		||||
dist
 | 
			
		||||
							
								
								
									
										36
									
								
								astro.config.mjs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								astro.config.mjs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
import { defineConfig } from 'astro/config';
 | 
			
		||||
import mdx from '@astrojs/mdx';
 | 
			
		||||
import react from '@astrojs/react';
 | 
			
		||||
import sitemap from '@astrojs/sitemap';
 | 
			
		||||
import pkgs from './package.json';
 | 
			
		||||
import tailwindcss from '@tailwindcss/vite';
 | 
			
		||||
 | 
			
		||||
const isDev = process.env.NODE_ENV === 'development';
 | 
			
		||||
 | 
			
		||||
let target = process.env.VITE_API_URL || 'https://localhost:51015';
 | 
			
		||||
const apiProxy = { target: target, changeOrigin: true, ws: true, rewriteWsOrigin: true, secure: false, cookieDomainRewrite: 'localhost' };
 | 
			
		||||
let proxy = {
 | 
			
		||||
  '/root/': {
 | 
			
		||||
    target: `${target}/root/`,
 | 
			
		||||
  },
 | 
			
		||||
  '/api': apiProxy,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default defineConfig({
 | 
			
		||||
  base: isDev ? undefined : pkgs.basename,
 | 
			
		||||
  integrations: [
 | 
			
		||||
    mdx(),
 | 
			
		||||
    react(), //
 | 
			
		||||
    // sitemap(), // sitemap must be site has a domain
 | 
			
		||||
  ],
 | 
			
		||||
 | 
			
		||||
  vite: {
 | 
			
		||||
    plugins: [tailwindcss()],
 | 
			
		||||
    server: {
 | 
			
		||||
      port: 7008,
 | 
			
		||||
      host: '0.0.0.0',
 | 
			
		||||
      allowedHosts: true,
 | 
			
		||||
      proxy,
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										52
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "@kevisual/astro-simplate-template",
 | 
			
		||||
  "version": "0.0.1",
 | 
			
		||||
  "description": "",
 | 
			
		||||
  "main": "index.js",
 | 
			
		||||
  "basename": "/root/astro-simplate-template",
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "dev": "astro dev",
 | 
			
		||||
    "build": "astro build",
 | 
			
		||||
    "preview": "astro preview",
 | 
			
		||||
    "pub": "envision deploy ./dist -k astro-simplate-template -v 0.0.1 -u",
 | 
			
		||||
    "sn": "pnpm dlx shadcn@latest add "
 | 
			
		||||
  },
 | 
			
		||||
  "keywords": [],
 | 
			
		||||
  "author": "abearxiong <xiongxiao@xiongxiao.me> (https://www.xiongxiao.me)",
 | 
			
		||||
  "license": "MIT",
 | 
			
		||||
  "type": "module",
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@astrojs/mdx": "^4.3.7",
 | 
			
		||||
    "@astrojs/react": "^4.4.0",
 | 
			
		||||
    "@astrojs/sitemap": "^3.6.0",
 | 
			
		||||
    "@kevisual/query": "^0.0.29",
 | 
			
		||||
    "@kevisual/query-login": "^0.0.6",
 | 
			
		||||
    "@kevisual/registry": "^0.0.1",
 | 
			
		||||
    "@tailwindcss/vite": "^4.1.14",
 | 
			
		||||
    "astro": "^5.14.4",
 | 
			
		||||
    "class-variance-authority": "^0.7.1",
 | 
			
		||||
    "clsx": "^2.1.1",
 | 
			
		||||
    "dayjs": "^1.11.18",
 | 
			
		||||
    "lodash-es": "^4.17.21",
 | 
			
		||||
    "lucide-react": "^0.545.0",
 | 
			
		||||
    "nanoid": "^5.1.6",
 | 
			
		||||
    "react": "^19.2.0",
 | 
			
		||||
    "react-dom": "^19.2.0",
 | 
			
		||||
    "react-toastify": "^11.0.5",
 | 
			
		||||
    "tailwind-merge": "^3.3.1",
 | 
			
		||||
    "zustand": "^5.0.8"
 | 
			
		||||
  },
 | 
			
		||||
  "publishConfig": {
 | 
			
		||||
    "access": "public"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "@kevisual/types": "^0.0.10",
 | 
			
		||||
    "@types/react": "^19.2.2",
 | 
			
		||||
    "@types/react-dom": "^19.2.2",
 | 
			
		||||
    "@vitejs/plugin-basic-ssl": "^2.1.0",
 | 
			
		||||
    "dotenv": "^17.2.3",
 | 
			
		||||
    "tailwindcss": "^4.1.14",
 | 
			
		||||
    "tw-animate-css": "^1.4.0"
 | 
			
		||||
  },
 | 
			
		||||
  "packageManager": "pnpm@10.18.3"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										4974
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										4974
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										47
									
								
								src/pages/index.astro
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								src/pages/index.astro
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
---
 | 
			
		||||
// import { query } from '@/modules/query.ts';
 | 
			
		||||
console.log('Hello from index.astro');
 | 
			
		||||
import '../styles/global.css';
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
<html lang='en'>
 | 
			
		||||
  <head>
 | 
			
		||||
    <title>My Homepage</title>
 | 
			
		||||
  </head>
 | 
			
		||||
  <body>
 | 
			
		||||
    <h1 onclick="{onClick}">Welcome to my website!</h1>
 | 
			
		||||
    <div class='bg-amber-50 w-20 h-20 rounded-full'></div>
 | 
			
		||||
    <div id='root'></div>
 | 
			
		||||
    <script type='importmap' data-vite-ignore is:inline>
 | 
			
		||||
      {
 | 
			
		||||
        "imports": {
 | 
			
		||||
          "react": "https://esm.sh/react@19.1.0",
 | 
			
		||||
          "react-dom": "https://esm.sh/react-dom@19.1.0/client.js",
 | 
			
		||||
          "react-toastify": "https://esm.sh/react-toastify@11.0.5"
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    </script>
 | 
			
		||||
    <script type='module' data-vite-ignore is:inline>
 | 
			
		||||
      import { Button, message } from 'https://esm.sh/antd?standalone';
 | 
			
		||||
      import React from 'react';
 | 
			
		||||
      import { ToastContainer, toast } from 'react-toastify';
 | 
			
		||||
      import { createRoot } from 'react-dom';
 | 
			
		||||
      setTimeout(() => {
 | 
			
		||||
        toast.loading('Hello from index.astro');
 | 
			
		||||
        window.toast = toast;
 | 
			
		||||
        console.log('message', toast);
 | 
			
		||||
      }, 1000);
 | 
			
		||||
      console.log('Hello from index.astro', Button);
 | 
			
		||||
      const root = document.getElementById('root');
 | 
			
		||||
      const render = createRoot(root);
 | 
			
		||||
      const App = () => {
 | 
			
		||||
        const button = React.createElement(Button, null, 'Hello');
 | 
			
		||||
        const messageEl = React.createElement(ToastContainer, null, 'Hello');
 | 
			
		||||
        const wrapperMessage = React.createElement('div', null, [button, messageEl]);
 | 
			
		||||
        return wrapperMessage;
 | 
			
		||||
      };
 | 
			
		||||
      // render.render(React.createElement(Button, null, 'Hello'), root);
 | 
			
		||||
      render.render(App(), root);
 | 
			
		||||
    </script>
 | 
			
		||||
  </body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										120
									
								
								src/styles/global.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										120
									
								
								src/styles/global.css
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,120 @@
 | 
			
		||||
@import 'tailwindcss';
 | 
			
		||||
@import "tw-animate-css";
 | 
			
		||||
 | 
			
		||||
@custom-variant dark (&:is(.dark *));
 | 
			
		||||
 | 
			
		||||
@theme inline {
 | 
			
		||||
  --radius-sm: calc(var(--radius) - 4px);
 | 
			
		||||
  --radius-md: calc(var(--radius) - 2px);
 | 
			
		||||
  --radius-lg: var(--radius);
 | 
			
		||||
  --radius-xl: calc(var(--radius) + 4px);
 | 
			
		||||
  --color-background: var(--background);
 | 
			
		||||
  --color-foreground: var(--foreground);
 | 
			
		||||
  --color-card: var(--card);
 | 
			
		||||
  --color-card-foreground: var(--card-foreground);
 | 
			
		||||
  --color-popover: var(--popover);
 | 
			
		||||
  --color-popover-foreground: var(--popover-foreground);
 | 
			
		||||
  --color-primary: var(--primary);
 | 
			
		||||
  --color-primary-foreground: var(--primary-foreground);
 | 
			
		||||
  --color-secondary: var(--secondary);
 | 
			
		||||
  --color-secondary-foreground: var(--secondary-foreground);
 | 
			
		||||
  --color-muted: var(--muted);
 | 
			
		||||
  --color-muted-foreground: var(--muted-foreground);
 | 
			
		||||
  --color-accent: var(--accent);
 | 
			
		||||
  --color-accent-foreground: var(--accent-foreground);
 | 
			
		||||
  --color-destructive: var(--destructive);
 | 
			
		||||
  --color-border: var(--border);
 | 
			
		||||
  --color-input: var(--input);
 | 
			
		||||
  --color-ring: var(--ring);
 | 
			
		||||
  --color-chart-1: var(--chart-1);
 | 
			
		||||
  --color-chart-2: var(--chart-2);
 | 
			
		||||
  --color-chart-3: var(--chart-3);
 | 
			
		||||
  --color-chart-4: var(--chart-4);
 | 
			
		||||
  --color-chart-5: var(--chart-5);
 | 
			
		||||
  --color-sidebar: var(--sidebar);
 | 
			
		||||
  --color-sidebar-foreground: var(--sidebar-foreground);
 | 
			
		||||
  --color-sidebar-primary: var(--sidebar-primary);
 | 
			
		||||
  --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
 | 
			
		||||
  --color-sidebar-accent: var(--sidebar-accent);
 | 
			
		||||
  --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
 | 
			
		||||
  --color-sidebar-border: var(--sidebar-border);
 | 
			
		||||
  --color-sidebar-ring: var(--sidebar-ring);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
:root {
 | 
			
		||||
  --radius: 0.625rem;
 | 
			
		||||
  --background: oklch(1 0 0);
 | 
			
		||||
  --foreground: oklch(0.145 0 0);
 | 
			
		||||
  --card: oklch(1 0 0);
 | 
			
		||||
  --card-foreground: oklch(0.145 0 0);
 | 
			
		||||
  --popover: oklch(1 0 0);
 | 
			
		||||
  --popover-foreground: oklch(0.145 0 0);
 | 
			
		||||
  --primary: oklch(0.205 0 0);
 | 
			
		||||
  --primary-foreground: oklch(0.985 0 0);
 | 
			
		||||
  --secondary: oklch(0.97 0 0);
 | 
			
		||||
  --secondary-foreground: oklch(0.205 0 0);
 | 
			
		||||
  --muted: oklch(0.97 0 0);
 | 
			
		||||
  --muted-foreground: oklch(0.556 0 0);
 | 
			
		||||
  --accent: oklch(0.97 0 0);
 | 
			
		||||
  --accent-foreground: oklch(0.205 0 0);
 | 
			
		||||
  --destructive: oklch(0.577 0.245 27.325);
 | 
			
		||||
  --border: oklch(0.922 0 0);
 | 
			
		||||
  --input: oklch(0.922 0 0);
 | 
			
		||||
  --ring: oklch(0.708 0 0);
 | 
			
		||||
  --chart-1: oklch(0.646 0.222 41.116);
 | 
			
		||||
  --chart-2: oklch(0.6 0.118 184.704);
 | 
			
		||||
  --chart-3: oklch(0.398 0.07 227.392);
 | 
			
		||||
  --chart-4: oklch(0.828 0.189 84.429);
 | 
			
		||||
  --chart-5: oklch(0.769 0.188 70.08);
 | 
			
		||||
  --sidebar: oklch(0.985 0 0);
 | 
			
		||||
  --sidebar-foreground: oklch(0.145 0 0);
 | 
			
		||||
  --sidebar-primary: oklch(0.205 0 0);
 | 
			
		||||
  --sidebar-primary-foreground: oklch(0.985 0 0);
 | 
			
		||||
  --sidebar-accent: oklch(0.97 0 0);
 | 
			
		||||
  --sidebar-accent-foreground: oklch(0.205 0 0);
 | 
			
		||||
  --sidebar-border: oklch(0.922 0 0);
 | 
			
		||||
  --sidebar-ring: oklch(0.708 0 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.dark {
 | 
			
		||||
  --background: oklch(0.145 0 0);
 | 
			
		||||
  --foreground: oklch(0.985 0 0);
 | 
			
		||||
  --card: oklch(0.205 0 0);
 | 
			
		||||
  --card-foreground: oklch(0.985 0 0);
 | 
			
		||||
  --popover: oklch(0.205 0 0);
 | 
			
		||||
  --popover-foreground: oklch(0.985 0 0);
 | 
			
		||||
  --primary: oklch(0.922 0 0);
 | 
			
		||||
  --primary-foreground: oklch(0.205 0 0);
 | 
			
		||||
  --secondary: oklch(0.269 0 0);
 | 
			
		||||
  --secondary-foreground: oklch(0.985 0 0);
 | 
			
		||||
  --muted: oklch(0.269 0 0);
 | 
			
		||||
  --muted-foreground: oklch(0.708 0 0);
 | 
			
		||||
  --accent: oklch(0.269 0 0);
 | 
			
		||||
  --accent-foreground: oklch(0.985 0 0);
 | 
			
		||||
  --destructive: oklch(0.704 0.191 22.216);
 | 
			
		||||
  --border: oklch(1 0 0 / 10%);
 | 
			
		||||
  --input: oklch(1 0 0 / 15%);
 | 
			
		||||
  --ring: oklch(0.556 0 0);
 | 
			
		||||
  --chart-1: oklch(0.488 0.243 264.376);
 | 
			
		||||
  --chart-2: oklch(0.696 0.17 162.48);
 | 
			
		||||
  --chart-3: oklch(0.769 0.188 70.08);
 | 
			
		||||
  --chart-4: oklch(0.627 0.265 303.9);
 | 
			
		||||
  --chart-5: oklch(0.645 0.246 16.439);
 | 
			
		||||
  --sidebar: oklch(0.205 0 0);
 | 
			
		||||
  --sidebar-foreground: oklch(0.985 0 0);
 | 
			
		||||
  --sidebar-primary: oklch(0.488 0.243 264.376);
 | 
			
		||||
  --sidebar-primary-foreground: oklch(0.985 0 0);
 | 
			
		||||
  --sidebar-accent: oklch(0.269 0 0);
 | 
			
		||||
  --sidebar-accent-foreground: oklch(0.985 0 0);
 | 
			
		||||
  --sidebar-border: oklch(1 0 0 / 10%);
 | 
			
		||||
  --sidebar-ring: oklch(0.556 0 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@layer base {
 | 
			
		||||
  * {
 | 
			
		||||
    @apply border-border outline-ring/50;
 | 
			
		||||
  }
 | 
			
		||||
  body {
 | 
			
		||||
    @apply bg-background text-foreground;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user