{item.title}
+{item.body}
+diff --git a/package.json b/package.json
index d12dc9f..87f4133 100644
--- a/package.json
+++ b/package.json
@@ -15,6 +15,7 @@
"@ant-design/use-emotion-css": "^1.0.4",
"@babel/preset-env": "^7.24.5",
"@types/crypto-js": "^4.2.2",
+ "@types/uuid": "^9.0.8",
"@vitejs/plugin-legacy": "^5.4.0",
"antd": "^5.17.0",
"autoprefixer": "^10.4.19",
@@ -35,6 +36,7 @@
"tailwind-merge": "^2.3.0",
"tailwindcss": "^3.4.3",
"tailwindcss-animate": "^1.0.7",
+ "uuid": "^9.0.1",
"vite-plugin-compression": "^0.5.1",
"vite-plugin-html": "^3.2.2",
"vite-plugin-svg-icons": "^2.0.1"
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index f09292b..30d55f7 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -17,30 +17,12 @@ dependencies:
'@babel/preset-env':
specifier: ^7.24.5
version: 7.24.5(@babel/core@7.24.5)
- '@radix-ui/react-accordion':
- specifier: ^1.1.2
- version: 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-avatar':
- specifier: ^1.0.4
- version: 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-dialog':
- specifier: ^1.0.5
- version: 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-dropdown-menu':
- specifier: ^2.0.6
- version: 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-icons':
- specifier: ^1.3.0
- version: 1.3.0(react@18.3.1)
- '@radix-ui/react-navigation-menu':
- specifier: ^1.1.4
- version: 1.1.4(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-slot':
- specifier: ^1.0.2
- version: 1.0.2(@types/react@18.3.1)(react@18.3.1)
'@types/crypto-js':
specifier: ^4.2.2
version: 4.2.2
+ '@types/uuid':
+ specifier: ^9.0.8
+ version: 9.0.8
'@vitejs/plugin-legacy':
specifier: ^5.4.0
version: 5.4.0(terser@5.31.0)(vite@5.2.11)
@@ -53,12 +35,6 @@ dependencies:
axios:
specifier: ^1.6.8
version: 1.6.8
- class-variance-authority:
- specifier: ^0.7.0
- version: 0.7.0
- clsx:
- specifier: ^2.1.1
- version: 2.1.1
core-js:
specifier: ^3.37.0
version: 3.37.0
@@ -74,9 +50,6 @@ dependencies:
localforage:
specifier: ^1.10.0
version: 1.10.0
- lucide-react:
- specifier: ^0.378.0
- version: 0.378.0(react@18.3.1)
mobx:
specifier: ^6.12.3
version: 6.12.3
@@ -110,6 +83,9 @@ dependencies:
tailwindcss-animate:
specifier: ^1.0.7
version: 1.0.7(tailwindcss@3.4.3)
+ uuid:
+ specifier: ^9.0.1
+ version: 9.0.1
vite-plugin-compression:
specifier: ^0.5.1
version: 0.5.1(vite@5.2.11)
@@ -2522,34 +2498,6 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
- /@floating-ui/core@1.6.2:
- resolution: {integrity: sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg==}
- dependencies:
- '@floating-ui/utils': 0.2.2
- dev: false
-
- /@floating-ui/dom@1.6.5:
- resolution: {integrity: sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==}
- dependencies:
- '@floating-ui/core': 1.6.2
- '@floating-ui/utils': 0.2.2
- dev: false
-
- /@floating-ui/react-dom@2.0.9(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-q0umO0+LQK4+p6aGyvzASqKbKOJcAHJ7ycE9CuUvfx3s9zTHWmGJTPOIlM/hmSBfUfg/XfY5YhLBLR/LHwShQQ==}
- peerDependencies:
- react: '>=16.8.0'
- react-dom: '>=16.8.0'
- dependencies:
- '@floating-ui/dom': 1.6.5
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@floating-ui/utils@0.2.2:
- resolution: {integrity: sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==}
- dev: false
-
/@humanwhocodes/config-array@0.11.14:
resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
engines: {node: '>=10.10.0'}
@@ -2894,665 +2842,6 @@ packages:
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
dev: true
- /@radix-ui/primitive@1.0.1:
- resolution: {integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==}
- dependencies:
- '@babel/runtime': 7.24.5
- dev: false
-
- /@radix-ui/react-accordion@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-fDG7jcoNKVjSK6yfmuAs0EnPDro0WMXIhMtXdTBWqEioVW206ku+4Lw07e+13lUkFkpoEQ2PdeMIAGpdqEAmDg==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/primitive': 1.0.1
- '@radix-ui/react-collapsible': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-context': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-direction': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-id': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@types/react': 18.3.1
- '@types/react-dom': 18.3.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@types/react': 18.3.1
- '@types/react-dom': 18.3.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@radix-ui/react-avatar@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-kVK2K7ZD3wwj3qhle0ElXhOjbezIgyl2hVvgwfIdexL3rN6zJmy5AqqIf+D31lxVppdzV8CjAfZ6PklkmInZLw==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/react-context': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@types/react': 18.3.1
- '@types/react-dom': 18.3.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@radix-ui/react-collapsible@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-UBmVDkmR6IvDsloHVN+3rtx4Mi5TFvylYXpluuv0f37dtaz3H99bp8No0LGXRigVpl3UAT4l9j6bIchh42S/Gg==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/primitive': 1.0.1
- '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-context': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-id': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@types/react': 18.3.1
- '@types/react-dom': 18.3.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@radix-ui/react-collection@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-context': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-slot': 1.0.2(@types/react@18.3.1)(react@18.3.1)
- '@types/react': 18.3.1
- '@types/react-dom': 18.3.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@types/react': 18.3.1
- react: 18.3.1
- dev: false
-
- /@radix-ui/react-context@1.0.1(@types/react@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@types/react': 18.3.1
- react: 18.3.1
- dev: false
-
- /@radix-ui/react-dialog@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/primitive': 1.0.1
- '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-context': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-id': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-slot': 1.0.2(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@types/react': 18.3.1
- '@types/react-dom': 18.3.0
- aria-hidden: 1.2.4
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- react-remove-scroll: 2.5.5(@types/react@18.3.1)(react@18.3.1)
- dev: false
-
- /@radix-ui/react-direction@1.0.1(@types/react@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@types/react': 18.3.1
- react: 18.3.1
- dev: false
-
- /@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/primitive': 1.0.1
- '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.1)(react@18.3.1)
- '@types/react': 18.3.1
- '@types/react-dom': 18.3.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@radix-ui/react-dropdown-menu@2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/primitive': 1.0.1
- '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-context': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-id': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@types/react': 18.3.1
- '@types/react-dom': 18.3.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@types/react': 18.3.1
- react: 18.3.1
- dev: false
-
- /@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@types/react': 18.3.1
- '@types/react-dom': 18.3.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@radix-ui/react-icons@1.3.0(react@18.3.1):
- resolution: {integrity: sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==}
- peerDependencies:
- react: ^16.x || ^17.x || ^18.x
- dependencies:
- react: 18.3.1
- dev: false
-
- /@radix-ui/react-id@1.0.1(@types/react@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@types/react': 18.3.1
- react: 18.3.1
- dev: false
-
- /@radix-ui/react-menu@2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/primitive': 1.0.1
- '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-context': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-direction': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-id': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-slot': 1.0.2(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@types/react': 18.3.1
- '@types/react-dom': 18.3.0
- aria-hidden: 1.2.4
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- react-remove-scroll: 2.5.5(@types/react@18.3.1)(react@18.3.1)
- dev: false
-
- /@radix-ui/react-navigation-menu@1.1.4(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-Cc+seCS3PmWmjI51ufGG7zp1cAAIRqHVw7C9LOA2TZ+R4hG6rDvHcTqIsEEFLmZO3zNVH72jOOE7kKNy8W+RtA==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/primitive': 1.0.1
- '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-context': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-direction': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-id': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@types/react': 18.3.1
- '@types/react-dom': 18.3.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@radix-ui/react-popper@1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@floating-ui/react-dom': 2.0.9(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-context': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-rect': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/rect': 1.0.1
- '@types/react': 18.3.1
- '@types/react-dom': 18.3.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@radix-ui/react-portal@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@types/react': 18.3.1
- '@types/react-dom': 18.3.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@radix-ui/react-presence@1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@types/react': 18.3.1
- '@types/react-dom': 18.3.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/react-slot': 1.0.2(@types/react@18.3.1)(react@18.3.1)
- '@types/react': 18.3.1
- '@types/react-dom': 18.3.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/primitive': 1.0.1
- '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-context': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-direction': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-id': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@types/react': 18.3.1
- '@types/react-dom': 18.3.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@radix-ui/react-slot@1.0.2(@types/react@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@types/react': 18.3.1
- react: 18.3.1
- dev: false
-
- /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@types/react': 18.3.1
- react: 18.3.1
- dev: false
-
- /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@types/react': 18.3.1
- react: 18.3.1
- dev: false
-
- /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@types/react': 18.3.1
- react: 18.3.1
- dev: false
-
- /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@types/react': 18.3.1
- react: 18.3.1
- dev: false
-
- /@radix-ui/react-use-previous@1.0.1(@types/react@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@types/react': 18.3.1
- react: 18.3.1
- dev: false
-
- /@radix-ui/react-use-rect@1.0.1(@types/react@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/rect': 1.0.1
- '@types/react': 18.3.1
- react: 18.3.1
- dev: false
-
- /@radix-ui/react-use-size@1.0.1(@types/react@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.1)(react@18.3.1)
- '@types/react': 18.3.1
- react: 18.3.1
- dev: false
-
- /@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1)
- '@types/react': 18.3.1
- '@types/react-dom': 18.3.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@radix-ui/rect@1.0.1:
- resolution: {integrity: sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==}
- dependencies:
- '@babel/runtime': 7.24.5
- dev: false
-
/@rc-component/async-validator@5.0.3:
resolution: {integrity: sha512-eN5chKrc0ANerXjLJuoqh/YJpor0u4T1bgaph5BPh42cJ2afDihaHJ2Mh3Up3XIFk05EfKG4nIQxbqC6y2eM4Q==}
engines: {node: '>=14.x'}
@@ -3895,17 +3184,20 @@ packages:
/@types/prop-types@15.7.12:
resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==}
+ dev: true
/@types/react-dom@18.3.0:
resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==}
dependencies:
'@types/react': 18.3.1
+ dev: true
/@types/react@18.3.1:
resolution: {integrity: sha512-V0kuGBX3+prX+DQ/7r2qsv1NsdfnCLnTgnRJ1pYnxykBhGMz+qj+box5lq7XsO5mtZsBqpjwwTu/7wszPfMBcw==}
dependencies:
'@types/prop-types': 15.7.12
csstype: 3.1.3
+ dev: true
/@types/semver@7.5.8:
resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==}
@@ -3917,6 +3209,10 @@ packages:
'@types/node': 20.12.11
dev: false
+ /@types/uuid@9.0.8:
+ resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==}
+ dev: false
+
/@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0)(eslint@8.57.0)(typescript@5.4.5):
resolution: {integrity: sha512-gFTT+ezJmkwutUPmB0skOj3GZJtlEGnlssems4AjkVweUPGj7jRwwqg0Hhg7++kPGJqKtTYx+R05Ftww372aIg==}
engines: {node: ^18.18.0 || >=20.0.0}
@@ -4255,13 +3551,6 @@ packages:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
dev: true
- /aria-hidden@1.2.4:
- resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==}
- engines: {node: '>=10'}
- dependencies:
- tslib: 2.6.2
- dev: false
-
/arr-diff@4.0.0:
resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==}
engines: {node: '>=0.10.0'}
@@ -4718,12 +4007,6 @@ packages:
static-extend: 0.1.2
dev: false
- /class-variance-authority@0.7.0:
- resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==}
- dependencies:
- clsx: 2.0.0
- dev: false
-
/classnames@2.5.1:
resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==}
dev: false
@@ -4761,16 +4044,6 @@ packages:
engines: {node: '>=0.8'}
dev: false
- /clsx@2.0.0:
- resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==}
- engines: {node: '>=6'}
- dev: false
-
- /clsx@2.1.1:
- resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
- engines: {node: '>=6'}
- dev: false
-
/collection-visit@1.0.0:
resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==}
engines: {node: '>=0.10.0'}
@@ -5184,10 +4457,6 @@ packages:
engines: {node: '>=8'}
dev: true
- /detect-node-es@1.1.0:
- resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
- dev: false
-
/didyoumean@1.2.2:
resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
dev: false
@@ -5969,11 +5238,6 @@ packages:
has-symbols: 1.0.3
hasown: 2.0.2
- /get-nonce@1.0.1:
- resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==}
- engines: {node: '>=6'}
- dev: false
-
/get-stream@8.0.1:
resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
engines: {node: '>=16'}
@@ -6305,12 +5569,6 @@ packages:
hasown: 2.0.2
side-channel: 1.0.6
- /invariant@2.2.4:
- resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
- dependencies:
- loose-envify: 1.4.0
- dev: false
-
/is-accessor-descriptor@1.0.1:
resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==}
engines: {node: '>= 0.10'}
@@ -6868,14 +6126,6 @@ packages:
dependencies:
yallist: 3.1.1
- /lucide-react@0.378.0(react@18.3.1):
- resolution: {integrity: sha512-u6EPU8juLUk9ytRcyapkWI18epAv3RU+6+TC23ivjR0e+glWKBobFeSgRwOIJihzktILQuy6E0E80P2jVTDR5g==}
- peerDependencies:
- react: ^16.5.1 || ^17.0.0 || ^18.0.0
- dependencies:
- react: 18.3.1
- dev: false
-
/magic-string@0.30.10:
resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==}
dependencies:
@@ -8639,41 +7889,6 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
- /react-remove-scroll-bar@2.3.6(@types/react@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@types/react': 18.3.1
- react: 18.3.1
- react-style-singleton: 2.2.1(@types/react@18.3.1)(react@18.3.1)
- tslib: 2.6.2
- dev: false
-
- /react-remove-scroll@2.5.5(@types/react@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@types/react': 18.3.1
- react: 18.3.1
- react-remove-scroll-bar: 2.3.6(@types/react@18.3.1)(react@18.3.1)
- react-style-singleton: 2.2.1(@types/react@18.3.1)(react@18.3.1)
- tslib: 2.6.2
- use-callback-ref: 1.3.2(@types/react@18.3.1)(react@18.3.1)
- use-sidecar: 1.1.2(@types/react@18.3.1)(react@18.3.1)
- dev: false
-
/react-rotate-captcha@1.0.26:
resolution: {integrity: sha512-JeMn/yUv+HUxKOzC0oJekf3/vE/SUnyfwO6ViOervIH+zrKzt+UU6Ly9XMf0tZsbPBg2IkC4FKfJWMgSJldc0g==}
dev: false
@@ -8701,23 +7916,6 @@ packages:
react: 18.3.1
dev: false
- /react-style-singleton@2.2.1(@types/react@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@types/react': 18.3.1
- get-nonce: 1.0.1
- invariant: 2.2.4
- react: 18.3.1
- tslib: 2.6.2
- dev: false
-
/react@18.3.1:
resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
engines: {node: '>=0.10.0'}
@@ -9988,37 +9186,6 @@ packages:
deprecated: Please see https://github.com/lydell/urix#deprecated
dev: false
- /use-callback-ref@1.3.2(@types/react@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@types/react': 18.3.1
- react: 18.3.1
- tslib: 2.6.2
- dev: false
-
- /use-sidecar@1.1.2(@types/react@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@types/react': 18.3.1
- detect-node-es: 1.1.0
- react: 18.3.1
- tslib: 2.6.2
- dev: false
-
/use-sync-external-store@1.2.2(react@18.3.1):
resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==}
peerDependencies:
@@ -10035,6 +9202,11 @@ packages:
/util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+ /uuid@9.0.1:
+ resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
+ hasBin: true
+ dev: false
+
/vary@1.1.2:
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
engines: {node: '>= 0.8'}
diff --git a/src/assets/fonts/YA9dr0Wd4kDdMthQOCfzsw.woff2 b/src/assets/fonts/YA9dr0Wd4kDdMthQOCfzsw.woff2
deleted file mode 100644
index 14f13f4..0000000
Binary files a/src/assets/fonts/YA9dr0Wd4kDdMthQOCfzsw.woff2 and /dev/null differ
diff --git a/src/assets/fonts/YA9dr0Wd4kDdMthROCc.woff2 b/src/assets/fonts/YA9dr0Wd4kDdMthROCc.woff2
deleted file mode 100644
index e1ca039..0000000
Binary files a/src/assets/fonts/YA9dr0Wd4kDdMthROCc.woff2 and /dev/null differ
diff --git a/src/assets/fonts/YA9dr0Wd4kDdMthfOCfzsw.woff2 b/src/assets/fonts/YA9dr0Wd4kDdMthfOCfzsw.woff2
deleted file mode 100644
index 08bd5aa..0000000
Binary files a/src/assets/fonts/YA9dr0Wd4kDdMthfOCfzsw.woff2 and /dev/null differ
diff --git a/src/assets/fonts/uncut-sans-bold-italic.woff b/src/assets/fonts/uncut-sans-bold-italic.woff
new file mode 100644
index 0000000..8af630b
Binary files /dev/null and b/src/assets/fonts/uncut-sans-bold-italic.woff differ
diff --git a/src/assets/fonts/uncut-sans-bold-italic.woff2 b/src/assets/fonts/uncut-sans-bold-italic.woff2
new file mode 100644
index 0000000..d48cfbe
Binary files /dev/null and b/src/assets/fonts/uncut-sans-bold-italic.woff2 differ
diff --git a/src/assets/fonts/uncut-sans-bold.woff b/src/assets/fonts/uncut-sans-bold.woff
new file mode 100644
index 0000000..acc2c20
Binary files /dev/null and b/src/assets/fonts/uncut-sans-bold.woff differ
diff --git a/src/assets/fonts/uncut-sans-bold.woff2 b/src/assets/fonts/uncut-sans-bold.woff2
new file mode 100644
index 0000000..cfe73c5
Binary files /dev/null and b/src/assets/fonts/uncut-sans-bold.woff2 differ
diff --git a/src/assets/images/arrow-right-white.svg b/src/assets/images/arrow-right-white.svg
new file mode 100644
index 0000000..2fb1740
--- /dev/null
+++ b/src/assets/images/arrow-right-white.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/images/arrow-right.svg b/src/assets/images/arrow-right.svg
new file mode 100644
index 0000000..18c4ceb
--- /dev/null
+++ b/src/assets/images/arrow-right.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/images/check.svg b/src/assets/images/check.svg
new file mode 100644
index 0000000..9b58ad6
--- /dev/null
+++ b/src/assets/images/check.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/src/assets/images/cta-illustration.svg b/src/assets/images/cta-illustration.svg
new file mode 100644
index 0000000..4f38056
--- /dev/null
+++ b/src/assets/images/cta-illustration.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/images/discord.svg b/src/assets/images/discord.svg
new file mode 100644
index 0000000..5663cac
--- /dev/null
+++ b/src/assets/images/discord.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/src/assets/images/docs.svg b/src/assets/images/docs.svg
new file mode 100644
index 0000000..ff73d27
--- /dev/null
+++ b/src/assets/images/docs.svg
@@ -0,0 +1,4 @@
+
\ No newline at end of file
diff --git a/src/assets/images/features-02.png b/src/assets/images/features-02.png
new file mode 100644
index 0000000..191010a
Binary files /dev/null and b/src/assets/images/features-02.png differ
diff --git a/src/assets/images/features-illustration.svg b/src/assets/images/features-illustration.svg
new file mode 100644
index 0000000..d5419ff
--- /dev/null
+++ b/src/assets/images/features-illustration.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/images/features.svg b/src/assets/images/features.svg
new file mode 100644
index 0000000..098b9a6
--- /dev/null
+++ b/src/assets/images/features.svg
@@ -0,0 +1,206 @@
+
+
\ No newline at end of file
diff --git a/src/assets/images/fire.svg b/src/assets/images/fire.svg
new file mode 100644
index 0000000..dcb2446
--- /dev/null
+++ b/src/assets/images/fire.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/src/assets/images/github.svg b/src/assets/images/github.svg
new file mode 100644
index 0000000..f95c130
--- /dev/null
+++ b/src/assets/images/github.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/src/assets/images/hero-illustration.svg b/src/assets/images/hero-illustration.svg
new file mode 100644
index 0000000..cb4cb09
--- /dev/null
+++ b/src/assets/images/hero-illustration.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/images/icon-brackets.svg b/src/assets/images/icon-brackets.svg
new file mode 100644
index 0000000..946aa70
--- /dev/null
+++ b/src/assets/images/icon-brackets.svg
@@ -0,0 +1,16 @@
+
\ No newline at end of file
diff --git a/src/assets/images/icon-check-list.svg b/src/assets/images/icon-check-list.svg
new file mode 100644
index 0000000..e7835c7
--- /dev/null
+++ b/src/assets/images/icon-check-list.svg
@@ -0,0 +1,16 @@
+
\ No newline at end of file
diff --git a/src/assets/images/icon-designers.svg b/src/assets/images/icon-designers.svg
new file mode 100644
index 0000000..4ef2dd2
--- /dev/null
+++ b/src/assets/images/icon-designers.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/src/assets/images/icon-developers.svg b/src/assets/images/icon-developers.svg
new file mode 100644
index 0000000..2898b06
--- /dev/null
+++ b/src/assets/images/icon-developers.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/src/assets/images/icon-founders.svg b/src/assets/images/icon-founders.svg
new file mode 100644
index 0000000..db5f841
--- /dev/null
+++ b/src/assets/images/icon-founders.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/src/assets/images/icon-marketers.svg b/src/assets/images/icon-marketers.svg
new file mode 100644
index 0000000..ac9a2a1
--- /dev/null
+++ b/src/assets/images/icon-marketers.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/src/assets/images/icon-square.svg b/src/assets/images/icon-square.svg
new file mode 100644
index 0000000..a6c8796
--- /dev/null
+++ b/src/assets/images/icon-square.svg
@@ -0,0 +1,16 @@
+
\ No newline at end of file
diff --git a/src/assets/images/logo.svg b/src/assets/images/logo.svg
new file mode 100644
index 0000000..5ba7789
--- /dev/null
+++ b/src/assets/images/logo.svg
@@ -0,0 +1,20 @@
+
diff --git a/src/assets/images/logos/alibaba.svg b/src/assets/images/logos/alibaba.svg
new file mode 100644
index 0000000..1543dc8
--- /dev/null
+++ b/src/assets/images/logos/alibaba.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/logos/baidu.svg b/src/assets/images/logos/baidu.svg
new file mode 100644
index 0000000..0d30656
--- /dev/null
+++ b/src/assets/images/logos/baidu.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/logos/huawei.svg b/src/assets/images/logos/huawei.svg
new file mode 100644
index 0000000..fb2752c
--- /dev/null
+++ b/src/assets/images/logos/huawei.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/logos/minio.svg b/src/assets/images/logos/minio.svg
new file mode 100644
index 0000000..cf56aac
--- /dev/null
+++ b/src/assets/images/logos/minio.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/logos/qiniu.svg b/src/assets/images/logos/qiniu.svg
new file mode 100644
index 0000000..4353ba5
--- /dev/null
+++ b/src/assets/images/logos/qiniu.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/logos/tencent.svg b/src/assets/images/logos/tencent.svg
new file mode 100644
index 0000000..879821d
--- /dev/null
+++ b/src/assets/images/logos/tencent.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/medium.svg b/src/assets/images/medium.svg
new file mode 100644
index 0000000..db9c06c
--- /dev/null
+++ b/src/assets/images/medium.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/src/assets/images/pricing-illustration.svg b/src/assets/images/pricing-illustration.svg
new file mode 100644
index 0000000..0d07971
--- /dev/null
+++ b/src/assets/images/pricing-illustration.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/images/telegram.svg b/src/assets/images/telegram.svg
new file mode 100644
index 0000000..3400dda
--- /dev/null
+++ b/src/assets/images/telegram.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/src/assets/images/testimonials/testimonial-01.jpg b/src/assets/images/testimonials/testimonial-01.jpg
new file mode 100644
index 0000000..47aaebc
Binary files /dev/null and b/src/assets/images/testimonials/testimonial-01.jpg differ
diff --git a/src/assets/images/testimonials/testimonial-02.jpg b/src/assets/images/testimonials/testimonial-02.jpg
new file mode 100644
index 0000000..94f95ed
Binary files /dev/null and b/src/assets/images/testimonials/testimonial-02.jpg differ
diff --git a/src/assets/images/testimonials/testimonial-03.jpg b/src/assets/images/testimonials/testimonial-03.jpg
new file mode 100644
index 0000000..f4c5f93
Binary files /dev/null and b/src/assets/images/testimonials/testimonial-03.jpg differ
diff --git a/src/assets/images/testimonials/testimonial-04.jpg b/src/assets/images/testimonials/testimonial-04.jpg
new file mode 100644
index 0000000..9cddd93
Binary files /dev/null and b/src/assets/images/testimonials/testimonial-04.jpg differ
diff --git a/src/assets/images/testimonials/testimonial-05.jpg b/src/assets/images/testimonials/testimonial-05.jpg
new file mode 100644
index 0000000..1555acf
Binary files /dev/null and b/src/assets/images/testimonials/testimonial-05.jpg differ
diff --git a/src/assets/images/testimonials/testimonial-06.jpg b/src/assets/images/testimonials/testimonial-06.jpg
new file mode 100644
index 0000000..864c789
Binary files /dev/null and b/src/assets/images/testimonials/testimonial-06.jpg differ
diff --git a/src/assets/images/testimonials/testimonial-07.jpg b/src/assets/images/testimonials/testimonial-07.jpg
new file mode 100644
index 0000000..25c6a3e
Binary files /dev/null and b/src/assets/images/testimonials/testimonial-07.jpg differ
diff --git a/src/assets/images/testimonials/testimonial-08.jpg b/src/assets/images/testimonials/testimonial-08.jpg
new file mode 100644
index 0000000..07cc390
Binary files /dev/null and b/src/assets/images/testimonials/testimonial-08.jpg differ
diff --git a/src/assets/images/testimonials/testimonial-09.jpg b/src/assets/images/testimonials/testimonial-09.jpg
new file mode 100644
index 0000000..24839ac
Binary files /dev/null and b/src/assets/images/testimonials/testimonial-09.jpg differ
diff --git a/src/assets/images/youtube.svg b/src/assets/images/youtube.svg
new file mode 100644
index 0000000..d735105
--- /dev/null
+++ b/src/assets/images/youtube.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/src/assets/styles/index.less b/src/assets/styles/index.less
index 95d00cd..91edac3 100644
--- a/src/assets/styles/index.less
+++ b/src/assets/styles/index.less
@@ -28,3 +28,67 @@
&::-webkit-resizer {
visibility: hidden;
}
+
+:root {
+ --accent: hsl(221, 83%, 53%);
+ --accent-300: hsl(217, 91%, 60%);
+ --accent-light: hsl(213, 94%, 68%);
+ --secondary: hsl(271, 91%, 65%);
+
+ --neutral-100: hsl(219, 11%, 65%);
+ --neutral-200: hsl(227, 9%, 57%);
+ --neutral-300: hsl(216, 12%, 84%);
+
+ --dark-100: hsl(217, 19%, 27%);
+ --dark-150: hsl(215, 14%, 33%);
+ --dark-200: hsl(215, 28%, 17%);
+ --dark-200-6: hsla(215, 28%, 17%, 0.6);
+ --dark-300: hsl(217, 26%, 17%);
+ --dark-400: hsl(221, 39%, 11%);
+ --almost-white: hsl(220, 14%, 96%);
+ --max-width: min(1104px, 95%);
+}
+
+@font-face {
+ font-family: 'Uncut-Sans-Bold';
+ font-weight: 700;
+ src: url('@/assets/fonts/uncut-sans-bold.woff2') format('woff2'),
+ url('@/assets/fonts/uncut-sans-bold.woff') format('woff');
+}
+
+@font-face {
+ font-family: 'Uncut-Sans-Bold-Italic';
+ font-weight: 700;
+ src: url('@/assets/fonts/uncut-sans-bold-italic.woff2') format('woff2'),
+ url('@/assets/fonts/uncut-sans-bold-italic.woff') format('woff');
+}
+
+*,
+*::after,
+*::before {
+ box-sizing: border-box;
+}
+
+body {
+ margin: 0;
+ font-family: 'Inter', sans-serif;
+ background-color: var(--dark-400);
+ color: var(--neutral-100);
+}
+
+img,
+video {
+ max-width: 100%;
+ display: block;
+}
+ul {
+ list-style: none;
+ padding-left: 0;
+ margin-top: 0;
+ margin-bottom: 0;
+}
+a {
+ text-decoration: none;
+ color: inherit;
+}
+
diff --git a/src/components/Home/arrow/Arrow.tsx b/src/components/Home/arrow/Arrow.tsx
new file mode 100644
index 0000000..6109369
--- /dev/null
+++ b/src/components/Home/arrow/Arrow.tsx
@@ -0,0 +1,10 @@
+/** @format */
+
+import styleRightWhite from "@/assets/images/arrow-right-white.svg";
+import style from "./arrow.module.less";
+
+const Arrow = () => {
+ return {item.body}
+ 采用一系列标准化的工具、技术、流程和规范,以提供稳定、可靠、高效的开发环境。确保软件开发的质量和效率,降低开发成本和风险。
+
+ It only takes a few minutes to get started with Neon. Understand your users,
+ start free, today.
+
+ Start your journey.{" "}
+
+ Learn More {"->"}
+
+
+ 五味子云存储,为您的数据提供一个安全、便捷的云端之家。数据自己掌控,安全又放心。
+ ;
+};
+
+export default Arrow;
diff --git a/src/components/Home/arrow/arrow.module.less b/src/components/Home/arrow/arrow.module.less
new file mode 100644
index 0000000..60fcbb8
--- /dev/null
+++ b/src/components/Home/arrow/arrow.module.less
@@ -0,0 +1,7 @@
+.arrow {
+ width: 1rem;
+}
+
+a:hover .arrow {
+ transform: translateX(0.2rem);
+}
diff --git a/src/components/Home/billing/Billing.tsx b/src/components/Home/billing/Billing.tsx
new file mode 100644
index 0000000..af8fc95
--- /dev/null
+++ b/src/components/Home/billing/Billing.tsx
@@ -0,0 +1,27 @@
+/** @format */
+
+import { v4 } from "uuid";
+import { PLANS } from "@/constants/plans";
+import Plan from "../plan/Plan";
+import SectionSubtitle from "../section-subtitle/SectionSubtitle";
+import SectionTitle from "../section-title/SectionTitle";
+import style from "./billing.module.less";
+
+const Billing = () => {
+ return (
+
;
+ })}
+
+
+
{item.title}
+
+
标准化开发环境
+
+
+ 开始使用五味子云存储
+
+ 五 味 子 云 存 储
+
+ schisandra os
+
+
+
+
+
{priceMonth}
+{description}
+ +{featuresTitle}
+setActiveTab(index)}> + {item.title} +
+ ); + })} +{content}
; +}; + +export default SectionSubtitle; diff --git a/src/components/Home/section-subtitle/section-subtitle.module.less b/src/components/Home/section-subtitle/section-subtitle.module.less new file mode 100644 index 0000000..890cb27 --- /dev/null +++ b/src/components/Home/section-subtitle/section-subtitle.module.less @@ -0,0 +1,7 @@ +.text { + max-width: 42rem; + margin: 0 auto 5rem; + font-size: 1.25rem; + line-height: 1.5; + text-align: center; +} diff --git a/src/components/Home/section-title/SectionTitle.tsx b/src/components/Home/section-title/SectionTitle.tsx new file mode 100644 index 0000000..b2a0cd3 --- /dev/null +++ b/src/components/Home/section-title/SectionTitle.tsx @@ -0,0 +1,9 @@ +/** @format */ + +import style from "./section-title.module.less"; + +const SectionTitle = ({ children, margin }: { children: any; margin: any }) => { + return{item.text}
++ {item.name} - {item.source} +
+