32 |
33 |
34 |
40 | {{ text }}
41 |
42 |
43 |
44 |
45 |
63 |
--------------------------------------------------------------------------------
/web/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "esnext",
4 | "jsx": "preserve",
5 | "lib": ["esnext", "dom"],
6 | "noLib": false,
7 | "useDefineForClassFields": true,
8 | "experimentalDecorators": true,
9 |
10 | "baseUrl": "./",
11 | "module": "esnext",
12 | "moduleResolution": "node",
13 | "paths": {
14 | "@/*": [
15 | "src/*"
16 | ]
17 | },
18 | "resolveJsonModule": true,
19 | "types": [
20 | "vite/client",
21 | "node",
22 | "naive-ui/volar"
23 | ],
24 | "strict": true,
25 | "noImplicitAny": false,
26 | "declaration": false,
27 | "removeComments": true,
28 | "sourceMap": true,
29 | "allowSyntheticDefaultImports": true,
30 | "esModuleInterop": true,
31 | "forceConsistentCasingInFileNames": true,
32 | "skipLibCheck": true
33 | },
34 | "include": [
35 | "src/**/*.ts",
36 | "src/**/*.md",
37 | "src/**/*.d.ts",
38 | "src/**/*.tsx",
39 | "src/**/*.vue",
40 | "__tests__/**/*.ts",
41 | "./eslint.config.ts",
42 | "./auto-imports.d.ts",
43 | "./components.d.ts",
44 | "./components-instance.d.ts"
45 | ],
46 | "exclude": ["node_modules"]
47 | }
48 |
--------------------------------------------------------------------------------
/web/uno.config.ts:
--------------------------------------------------------------------------------
1 | import path from 'node:path'
2 | import { FileSystemIconLoader } from '@iconify/utils/lib/loader/node-loaders'
3 | import presetRemToPx from '@unocss/preset-rem-to-px'
4 |
5 | import {
6 | defineConfig,
7 | presetAttributify,
8 | presetIcons,
9 | presetWind3,
10 | transformerAttributifyJsx,
11 | transformerDirectives,
12 | } from 'unocss'
13 |
14 |
15 | export default defineConfig({
16 | presets: [
17 | presetWind3(),
18 | presetAttributify(),
19 | presetIcons({
20 | customizations: {
21 | transform(svg) {
22 | return svg.replace(/#fff/, 'currentColor')
23 | },
24 | },
25 | collections: {
26 | 'my-svg': FileSystemIconLoader(
27 | path.join(__dirname, 'src/assets/svg'),
28 | ),
29 | },
30 | }),
31 | presetRemToPx({
32 | baseFontSize: 4,
33 | }),
34 | ],
35 | transformers: [
36 | transformerDirectives(),
37 | transformerAttributifyJsx(),
38 | ],
39 | theme: {
40 | colors: {
41 | primary: '#692ee6',
42 | success: '#52c41a',
43 | warning: '#fe7d18',
44 | danger: '#fa5555',
45 | info: '#909399',
46 | bgcolor: '#f2ecee',
47 | },
48 | },
49 | rules: [
50 | [
51 | 'navbar-shadow', {
52 | 'box-shadow': '0 1px 4px rgb(0 21 41 / 8%)',
53 | },
54 | ],
55 | ],
56 | })
57 |
--------------------------------------------------------------------------------