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