insforge 0.3.1

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 (395) hide show
  1. package/.dockerignore +58 -0
  2. package/.env.example +49 -0
  3. package/.github/ISSUE_TEMPLATE/bug_report.yml +83 -0
  4. package/.github/ISSUE_TEMPLATE/config.yml +11 -0
  5. package/.github/ISSUE_TEMPLATE/feature_request.yml +79 -0
  6. package/.github/copilot-instructions.md +147 -0
  7. package/.github/workflows/build-image.yml +65 -0
  8. package/.github/workflows/ci-premerge-check.yml +24 -0
  9. package/.github/workflows/deploy-aws.yml +130 -0
  10. package/.github/workflows/lint-and-format.yml +33 -0
  11. package/.prettierignore +65 -0
  12. package/.prettierrc +9 -0
  13. package/CHANGELOG.md +3 -0
  14. package/CONTRIBUTING.md +126 -0
  15. package/Dockerfile +27 -0
  16. package/GITHUB_OAUTH_SETUP.md +49 -0
  17. package/GOOGLE_OAUTH_SETUP.md +148 -0
  18. package/LICENSE +201 -0
  19. package/README.md +134 -0
  20. package/assets/Dark.svg +23 -0
  21. package/assets/archDiagram.png +0 -0
  22. package/assets/banner.png +0 -0
  23. package/assets/mcpInstallv2.png +0 -0
  24. package/assets/sampleResponse.png +0 -0
  25. package/assets/signin.png +0 -0
  26. package/assets/userflow.png +0 -0
  27. package/backend/migrations/000_create-base-tables.sql +142 -0
  28. package/backend/migrations/001_create-helper-functions.sql +41 -0
  29. package/backend/migrations/002_rename-auth-tables.sql +30 -0
  30. package/backend/migrations/003_create-users-table.sql +56 -0
  31. package/backend/migrations/004_add-reload-postgrest-func.sql +24 -0
  32. package/backend/migrations/005_enable-project-admin-modify-users.sql +30 -0
  33. package/backend/migrations/006_modify-ai-usage-table.sql +25 -0
  34. package/backend/migrations/007_drop-metadata-table.sql +2 -0
  35. package/backend/migrations/008_add-system-tables.sql +77 -0
  36. package/backend/migrations/009_add-function-secrets.sql +24 -0
  37. package/backend/migrations/010_modify-ai-config-modalities.sql +93 -0
  38. package/backend/migrations/011_refactor-secrets-table.sql +15 -0
  39. package/backend/migrations/012_add-storage-uploaded-by.sql +8 -0
  40. package/backend/package.json +75 -0
  41. package/backend/src/api/middleware/auth.ts +240 -0
  42. package/backend/src/api/middleware/error.ts +231 -0
  43. package/backend/src/api/middleware/upload.ts +59 -0
  44. package/backend/src/api/routes/agent.ts +29 -0
  45. package/backend/src/api/routes/ai.ts +472 -0
  46. package/backend/src/api/routes/auth.oauth.ts +482 -0
  47. package/backend/src/api/routes/auth.ts +386 -0
  48. package/backend/src/api/routes/database.advance.ts +275 -0
  49. package/backend/src/api/routes/database.records.ts +246 -0
  50. package/backend/src/api/routes/database.tables.ts +161 -0
  51. package/backend/src/api/routes/docs.ts +66 -0
  52. package/backend/src/api/routes/functions.ts +183 -0
  53. package/backend/src/api/routes/logs.ts +150 -0
  54. package/backend/src/api/routes/metadata.ts +160 -0
  55. package/backend/src/api/routes/openapi.ts +82 -0
  56. package/backend/src/api/routes/secrets.ts +199 -0
  57. package/backend/src/api/routes/storage.ts +547 -0
  58. package/backend/src/api/routes/usage.ts +96 -0
  59. package/backend/src/core/ai/chat.ts +207 -0
  60. package/backend/src/core/ai/client.ts +242 -0
  61. package/backend/src/core/ai/config.ts +187 -0
  62. package/backend/src/core/ai/image.ts +156 -0
  63. package/backend/src/core/ai/model.ts +117 -0
  64. package/backend/src/core/ai/usage.ts +290 -0
  65. package/backend/src/core/auth/auth.ts +781 -0
  66. package/backend/src/core/auth/oauth.ts +398 -0
  67. package/backend/src/core/database/advance.ts +1074 -0
  68. package/backend/src/core/database/manager.ts +178 -0
  69. package/backend/src/core/database/table.ts +772 -0
  70. package/backend/src/core/documentation/agent.ts +689 -0
  71. package/backend/src/core/documentation/openapi.ts +856 -0
  72. package/backend/src/core/functions/functions.ts +310 -0
  73. package/backend/src/core/logs/analytics.ts +76 -0
  74. package/backend/src/core/logs/audit.ts +255 -0
  75. package/backend/src/core/logs/providers/base.provider.ts +83 -0
  76. package/backend/src/core/logs/providers/cloudwatch.provider.ts +510 -0
  77. package/backend/src/core/logs/providers/localdb.provider.ts +246 -0
  78. package/backend/src/core/secrets/encryption.ts +58 -0
  79. package/backend/src/core/secrets/secrets.ts +410 -0
  80. package/backend/src/core/socket/socket.ts +388 -0
  81. package/backend/src/core/socket/types.ts +79 -0
  82. package/backend/src/core/storage/storage.ts +923 -0
  83. package/backend/src/server.ts +288 -0
  84. package/backend/src/types/ai.ts +46 -0
  85. package/backend/src/types/auth.ts +90 -0
  86. package/backend/src/types/database.ts +136 -0
  87. package/backend/src/types/error-constants.ts +86 -0
  88. package/backend/src/types/logs.ts +47 -0
  89. package/backend/src/types/profile.ts +55 -0
  90. package/backend/src/types/storage.ts +23 -0
  91. package/backend/src/utils/cloud-token.ts +39 -0
  92. package/backend/src/utils/constants.ts +1 -0
  93. package/backend/src/utils/environment.ts +35 -0
  94. package/backend/src/utils/helpers.ts +49 -0
  95. package/backend/src/utils/logger.ts +13 -0
  96. package/backend/src/utils/response.ts +62 -0
  97. package/backend/src/utils/seed.ts +205 -0
  98. package/backend/src/utils/sql-parser.ts +63 -0
  99. package/backend/src/utils/uuid.ts +9 -0
  100. package/backend/src/utils/validations.ts +129 -0
  101. package/backend/tests/README.md +134 -0
  102. package/backend/tests/cleanup-all-test-data.sh +231 -0
  103. package/backend/tests/cloud/test-s3-multitenant.sh +132 -0
  104. package/backend/tests/local/comprehensive-curl-tests.sh +156 -0
  105. package/backend/tests/local/test-auth-router.sh +144 -0
  106. package/backend/tests/local/test-database-router.sh +222 -0
  107. package/backend/tests/local/test-e2e.sh +241 -0
  108. package/backend/tests/local/test-fk-errors.sh +97 -0
  109. package/backend/tests/local/test-id-field.sh +201 -0
  110. package/backend/tests/local/test-public-bucket.sh +265 -0
  111. package/backend/tests/local/test-secrets.sh +248 -0
  112. package/backend/tests/local/test-serverless-functions.sh.disabled +325 -0
  113. package/backend/tests/local/test-traditional-rest.sh +209 -0
  114. package/backend/tests/manual/README.md +51 -0
  115. package/backend/tests/manual/create-large-table-simple.sql +11 -0
  116. package/backend/tests/manual/seed-large-table.sql +101 -0
  117. package/backend/tests/manual/setup-large-table-extras.sql +34 -0
  118. package/backend/tests/manual/test-better-auth.sh +303 -0
  119. package/backend/tests/manual/test-bulk-upsert.sh +410 -0
  120. package/backend/tests/manual/test-database-advance.sh +297 -0
  121. package/backend/tests/manual/test-postgrest-stability.sh +192 -0
  122. package/backend/tests/manual/test-rawsql-export-import.sh +412 -0
  123. package/backend/tests/manual/test-universal-storage.sh +264 -0
  124. package/backend/tests/manual/test-users.sql +18 -0
  125. package/backend/tests/run-all-tests.sh +140 -0
  126. package/backend/tests/setup.ts +22 -0
  127. package/backend/tests/test-config.sh +303 -0
  128. package/backend/tsconfig.json +23 -0
  129. package/backend/tsup.config.ts +18 -0
  130. package/backend/vitest.config.ts +22 -0
  131. package/docker-compose.prod.yml +145 -0
  132. package/docker-compose.yml +167 -0
  133. package/docker-init/db/db-init.sql +125 -0
  134. package/docker-init/db/jwt.sql +5 -0
  135. package/docker-init/db/logs.sql +9 -0
  136. package/docker-init/db/postgresql.conf +17 -0
  137. package/docs/deprecated/insforge-auth-api.md +215 -0
  138. package/docs/deprecated/insforge-auth-sdk.md +100 -0
  139. package/docs/deprecated/insforge-db-api.md +359 -0
  140. package/docs/deprecated/insforge-db-sdk.md +140 -0
  141. package/docs/deprecated/insforge-debug-sdk.md +157 -0
  142. package/docs/deprecated/insforge-debug.md +65 -0
  143. package/docs/deprecated/insforge-instructions.md +124 -0
  144. package/docs/deprecated/insforge-project.md +118 -0
  145. package/docs/deprecated/insforge-storage-api.md +279 -0
  146. package/docs/deprecated/insforge-storage-sdk.md +159 -0
  147. package/docs/insforge-instructions-sdk.md +407 -0
  148. package/eslint.config.js +317 -0
  149. package/examples/oauth/frontend-oauth-example.html +251 -0
  150. package/examples/response-examples.md +444 -0
  151. package/frontend/README.md +112 -0
  152. package/frontend/components.json +17 -0
  153. package/frontend/index.html +13 -0
  154. package/frontend/package.json +63 -0
  155. package/frontend/public/favicon.ico +0 -0
  156. package/frontend/src/App.tsx +106 -0
  157. package/frontend/src/assets/icons/checkbox_checked.svg +6 -0
  158. package/frontend/src/assets/icons/checkbox_undetermined.svg +6 -0
  159. package/frontend/src/assets/icons/checked.svg +3 -0
  160. package/frontend/src/assets/icons/error.svg +3 -0
  161. package/frontend/src/assets/icons/pencil.svg +4 -0
  162. package/frontend/src/assets/icons/refresh.svg +4 -0
  163. package/frontend/src/assets/icons/step_active.svg +3 -0
  164. package/frontend/src/assets/icons/step_inactive.svg +11 -0
  165. package/frontend/src/assets/icons/warning.svg +3 -0
  166. package/frontend/src/assets/logos/amazon.svg +1 -0
  167. package/frontend/src/assets/logos/claude_code.svg +3 -0
  168. package/frontend/src/assets/logos/cline.svg +6 -0
  169. package/frontend/src/assets/logos/cursor.svg +20 -0
  170. package/frontend/src/assets/logos/discord.svg +9 -0
  171. package/frontend/src/assets/logos/gemini.svg +19 -0
  172. package/frontend/src/assets/logos/github.svg +5 -0
  173. package/frontend/src/assets/logos/google.svg +13 -0
  174. package/frontend/src/assets/logos/grok.svg +10 -0
  175. package/frontend/src/assets/logos/insforge_dark.svg +15 -0
  176. package/frontend/src/assets/logos/insforge_light.svg +15 -0
  177. package/frontend/src/assets/logos/openai.svg +10 -0
  178. package/frontend/src/assets/logos/roo_code.svg +9 -0
  179. package/frontend/src/assets/logos/trae.svg +3 -0
  180. package/frontend/src/assets/logos/windsurf.svg +10 -0
  181. package/frontend/src/components/ButtonWithLoading.tsx +27 -0
  182. package/frontend/src/components/Checkbox.tsx +61 -0
  183. package/frontend/src/components/CodeBlock.tsx +32 -0
  184. package/frontend/src/components/ConfirmDialog.tsx +96 -0
  185. package/frontend/src/components/CopyButton.tsx +69 -0
  186. package/frontend/src/components/DeleteActionButton.tsx +42 -0
  187. package/frontend/src/components/EmptyState.tsx +41 -0
  188. package/frontend/src/components/ErrorState.tsx +35 -0
  189. package/frontend/src/components/FeatureSidebar.tsx +126 -0
  190. package/frontend/src/components/FeatureSidebarItem.tsx +101 -0
  191. package/frontend/src/components/JsonHighlight.tsx +61 -0
  192. package/frontend/src/components/LoadingState.tsx +16 -0
  193. package/frontend/src/components/PaginationControls.tsx +54 -0
  194. package/frontend/src/components/PromptDialog.tsx +68 -0
  195. package/frontend/src/components/SearchInput.tsx +90 -0
  196. package/frontend/src/components/SelectionClearButton.tsx +26 -0
  197. package/frontend/src/components/Stepper.tsx +139 -0
  198. package/frontend/src/components/ThemeToggle.tsx +58 -0
  199. package/frontend/src/components/TypeBadge.tsx +20 -0
  200. package/frontend/src/components/datagrid/DataGrid.tsx +264 -0
  201. package/frontend/src/components/datagrid/DefaultCellRenderer.tsx +114 -0
  202. package/frontend/src/components/datagrid/IdCell.tsx +44 -0
  203. package/frontend/src/components/datagrid/SortableHeader.tsx +74 -0
  204. package/frontend/src/components/datagrid/cell-editors/BooleanCellEditor.tsx +54 -0
  205. package/frontend/src/components/datagrid/cell-editors/DateCellEditor.tsx +483 -0
  206. package/frontend/src/components/datagrid/cell-editors/JsonCellEditor.tsx +362 -0
  207. package/frontend/src/components/datagrid/cell-editors/TextCellEditor.tsx +38 -0
  208. package/frontend/src/components/datagrid/cell-editors/index.ts +14 -0
  209. package/frontend/src/components/datagrid/cell-editors/types.ts +43 -0
  210. package/frontend/src/components/datagrid/datagridTypes.tsx +72 -0
  211. package/frontend/src/components/datagrid/index.tsx +20 -0
  212. package/frontend/src/components/index.ts +39 -0
  213. package/frontend/src/components/layout/AppHeader.tsx +146 -0
  214. package/frontend/src/components/layout/AppSidebar.tsx +190 -0
  215. package/frontend/src/components/layout/CloudLayout.tsx +95 -0
  216. package/frontend/src/components/layout/Layout.tsx +43 -0
  217. package/frontend/src/components/radix/Alert.tsx +45 -0
  218. package/frontend/src/components/radix/AlertDialog.tsx +115 -0
  219. package/frontend/src/components/radix/Avatar.tsx +45 -0
  220. package/frontend/src/components/radix/Badge.tsx +33 -0
  221. package/frontend/src/components/radix/Button.tsx +50 -0
  222. package/frontend/src/components/radix/Card.tsx +58 -0
  223. package/frontend/src/components/radix/Dialog.tsx +98 -0
  224. package/frontend/src/components/radix/DropdownMenu.tsx +185 -0
  225. package/frontend/src/components/radix/Form.tsx +167 -0
  226. package/frontend/src/components/radix/Input.tsx +22 -0
  227. package/frontend/src/components/radix/Label.tsx +19 -0
  228. package/frontend/src/components/radix/Popover.tsx +29 -0
  229. package/frontend/src/components/radix/ScrollArea.tsx +44 -0
  230. package/frontend/src/components/radix/Select.tsx +151 -0
  231. package/frontend/src/components/radix/Separator.tsx +26 -0
  232. package/frontend/src/components/radix/Sheet.tsx +119 -0
  233. package/frontend/src/components/radix/Skeleton.tsx +7 -0
  234. package/frontend/src/components/radix/Switch.tsx +29 -0
  235. package/frontend/src/components/radix/Tabs.tsx +50 -0
  236. package/frontend/src/components/radix/Textarea.tsx +21 -0
  237. package/frontend/src/components/radix/Tooltip.tsx +28 -0
  238. package/frontend/src/features/ai/components/AIConfigCard.tsx +154 -0
  239. package/frontend/src/features/ai/components/AIConfigDialog.tsx +76 -0
  240. package/frontend/src/features/ai/components/AIConfigForm.tsx +222 -0
  241. package/frontend/src/features/ai/components/AIEmptyState.tsx +18 -0
  242. package/frontend/src/features/ai/components/fields/ModalityField.tsx +87 -0
  243. package/frontend/src/features/ai/components/fields/ModelSelectionField.tsx +134 -0
  244. package/frontend/src/features/ai/components/fields/SystemPromptField.tsx +33 -0
  245. package/frontend/src/features/ai/helpers.ts +155 -0
  246. package/frontend/src/features/ai/hooks/useAIConfigs.ts +221 -0
  247. package/frontend/src/features/ai/hooks/useAIUsage.ts +77 -0
  248. package/frontend/src/features/ai/page/AIPage.tsx +178 -0
  249. package/frontend/src/features/ai/services/ai.service.ts +148 -0
  250. package/frontend/src/features/auth/components/AddOAuthDialog.tsx +106 -0
  251. package/frontend/src/features/auth/components/AuthMethodTab.tsx +238 -0
  252. package/frontend/src/features/auth/components/OAuthConfigDialog.tsx +303 -0
  253. package/frontend/src/features/auth/components/OAuthEmptyState.tsx +15 -0
  254. package/frontend/src/features/auth/components/UserFormDialog.tsx +248 -0
  255. package/frontend/src/features/auth/components/UsersDataGrid.tsx +183 -0
  256. package/frontend/src/features/auth/components/UsersTab.tsx +114 -0
  257. package/frontend/src/features/auth/hooks/useOAuthConfig.ts +129 -0
  258. package/frontend/src/features/auth/hooks/useUsers.ts +57 -0
  259. package/frontend/src/features/auth/index.ts +9 -0
  260. package/frontend/src/features/auth/page/AuthenticationPage.tsx +169 -0
  261. package/frontend/src/features/auth/services/auth.service.ts +112 -0
  262. package/frontend/src/features/auth/services/oauth.service.ts +49 -0
  263. package/frontend/src/features/dashboard/page/DashboardPage.tsx +194 -0
  264. package/frontend/src/features/database/components/ColumnTypeSelect.tsx +64 -0
  265. package/frontend/src/features/database/components/DatabaseDataGrid.tsx +282 -0
  266. package/frontend/src/features/database/components/ForeignKeyCell.tsx +187 -0
  267. package/frontend/src/features/database/components/ForeignKeyPopover.tsx +378 -0
  268. package/frontend/src/features/database/components/LinkRecordModal.tsx +288 -0
  269. package/frontend/src/features/database/components/RecordFormDialog.tsx +164 -0
  270. package/frontend/src/features/database/components/RecordFormField.tsx +568 -0
  271. package/frontend/src/features/database/components/TableEmptyState.tsx +21 -0
  272. package/frontend/src/features/database/components/TableForm.tsx +656 -0
  273. package/frontend/src/features/database/components/TableFormColumn.tsx +137 -0
  274. package/frontend/src/features/database/components/TableListSkeleton.tsx +9 -0
  275. package/frontend/src/features/database/components/TableSidebar.tsx +47 -0
  276. package/frontend/src/features/database/constants.ts +26 -0
  277. package/frontend/src/features/database/helpers.ts +125 -0
  278. package/frontend/src/features/database/hooks/UseLinkModal.tsx +78 -0
  279. package/frontend/src/features/database/index.ts +12 -0
  280. package/frontend/src/features/database/page/DatabasePage.tsx +626 -0
  281. package/frontend/src/features/database/schema.ts +25 -0
  282. package/frontend/src/features/database/services/database.service.ts +216 -0
  283. package/frontend/src/features/functions/components/FunctionEmptyState.tsx +15 -0
  284. package/frontend/src/features/functions/components/FunctionRow.tsx +71 -0
  285. package/frontend/src/features/functions/components/FunctionViewer.tsx +46 -0
  286. package/frontend/src/features/functions/components/FunctionsContent.tsx +88 -0
  287. package/frontend/src/features/functions/components/FunctionsSidebar.tsx +56 -0
  288. package/frontend/src/features/functions/components/SecretEmptyState.tsx +23 -0
  289. package/frontend/src/features/functions/components/SecretRow.tsx +68 -0
  290. package/frontend/src/features/functions/components/SecretsContent.tsx +120 -0
  291. package/frontend/src/features/functions/hooks/useFunctions.ts +106 -0
  292. package/frontend/src/features/functions/page/FunctionsPage.tsx +28 -0
  293. package/frontend/src/features/functions/services/functions.service.ts +48 -0
  294. package/frontend/src/features/login/components/AuthErrorBoundary.tsx +87 -0
  295. package/frontend/src/features/login/components/PrivateRoute.tsx +24 -0
  296. package/frontend/src/features/login/page/CloudLoginPage.tsx +93 -0
  297. package/frontend/src/features/login/page/LoginPage.tsx +174 -0
  298. package/frontend/src/features/logs/components/AnalyticsLogsTable.tsx +313 -0
  299. package/frontend/src/features/logs/components/LogsTable.tsx +199 -0
  300. package/frontend/src/features/logs/hooks/useAuditLogs.ts +39 -0
  301. package/frontend/src/features/logs/index.ts +5 -0
  302. package/frontend/src/features/logs/page/AnalyticsLogsPage.tsx +530 -0
  303. package/frontend/src/features/logs/page/AuditsPage.tsx +192 -0
  304. package/frontend/src/features/logs/services/log.service.ts +171 -0
  305. package/frontend/src/features/metadata/hooks/useMetadata.ts +53 -0
  306. package/frontend/src/features/metadata/index.ts +0 -0
  307. package/frontend/src/features/metadata/page/MetadataPage.tsx +136 -0
  308. package/frontend/src/features/metadata/services/metadata.service.ts +17 -0
  309. package/frontend/src/features/onboard/components/CompletionCard.tsx +41 -0
  310. package/frontend/src/features/onboard/components/OnboardButton.tsx +84 -0
  311. package/frontend/src/features/onboard/components/StepContent.tsx +91 -0
  312. package/frontend/src/features/onboard/components/TestConnectionStep.tsx +53 -0
  313. package/frontend/src/features/onboard/components/mcp/CursorDeeplinkGenerator.tsx +35 -0
  314. package/frontend/src/features/onboard/components/mcp/McpInstallation.tsx +144 -0
  315. package/frontend/src/features/onboard/components/mcp/index.ts +4 -0
  316. package/frontend/src/features/onboard/components/mcp/mcp-helper.tsx +98 -0
  317. package/frontend/src/features/onboard/index.ts +3 -0
  318. package/frontend/src/features/onboard/page/OnBoardPage.tsx +104 -0
  319. package/frontend/src/features/onboard/types.ts +8 -0
  320. package/frontend/src/features/secrets/hooks/useSecrets.ts +139 -0
  321. package/frontend/src/features/secrets/services/secrets.service.ts +57 -0
  322. package/frontend/src/features/storage/components/BucketEmptyState.tsx +19 -0
  323. package/frontend/src/features/storage/components/BucketFormDialog.tsx +194 -0
  324. package/frontend/src/features/storage/components/BucketListSkeleton.tsx +17 -0
  325. package/frontend/src/features/storage/components/FilePreviewDialog.tsx +287 -0
  326. package/frontend/src/features/storage/components/StorageDataGrid.tsx +239 -0
  327. package/frontend/src/features/storage/components/StorageManager.tsx +236 -0
  328. package/frontend/src/features/storage/components/StorageSidebar.tsx +44 -0
  329. package/frontend/src/features/storage/components/UploadToast.tsx +46 -0
  330. package/frontend/src/features/storage/index.ts +3 -0
  331. package/frontend/src/features/storage/page/StoragePage.tsx +553 -0
  332. package/frontend/src/features/storage/services/storage.service.ts +144 -0
  333. package/frontend/src/features/visualizer/components/AuthNode.tsx +107 -0
  334. package/frontend/src/features/visualizer/components/BucketNode.tsx +34 -0
  335. package/frontend/src/features/visualizer/components/SchemaVisualizer.tsx +359 -0
  336. package/frontend/src/features/visualizer/components/TableNode.tsx +152 -0
  337. package/frontend/src/features/visualizer/components/VisualizerSkeleton.tsx +24 -0
  338. package/frontend/src/features/visualizer/components/index.ts +5 -0
  339. package/frontend/src/features/visualizer/page/VisualizerPage.tsx +127 -0
  340. package/frontend/src/index.css +248 -0
  341. package/frontend/src/lib/api/client.ts +163 -0
  342. package/frontend/src/lib/contexts/AuthContext.tsx +157 -0
  343. package/frontend/src/lib/contexts/OnboardStepContext.tsx +68 -0
  344. package/frontend/src/lib/contexts/SocketContext.tsx +303 -0
  345. package/frontend/src/lib/contexts/ThemeContext.tsx +125 -0
  346. package/frontend/src/lib/hooks/useAuth.ts +4 -0
  347. package/frontend/src/lib/hooks/useConfirm.ts +55 -0
  348. package/frontend/src/lib/hooks/useInterval.ts +27 -0
  349. package/frontend/src/lib/hooks/useMediaQuery.ts +59 -0
  350. package/frontend/src/lib/hooks/useOnboardingCompletion.ts +29 -0
  351. package/frontend/src/lib/hooks/usePagination.ts +27 -0
  352. package/frontend/src/lib/hooks/useTimeout.ts +27 -0
  353. package/frontend/src/lib/hooks/useToast.tsx +229 -0
  354. package/frontend/src/lib/utils/constants.ts +38 -0
  355. package/frontend/src/lib/utils/utils.ts +165 -0
  356. package/frontend/src/lib/utils/validation-schemas.ts +126 -0
  357. package/frontend/src/main.tsx +16 -0
  358. package/frontend/src/rdg.css +194 -0
  359. package/frontend/src/vite-env.d.ts +12 -0
  360. package/frontend/tailwind.config.js +97 -0
  361. package/frontend/tsconfig.json +26 -0
  362. package/frontend/tsconfig.node.json +10 -0
  363. package/frontend/vite.config.ts +37 -0
  364. package/frontend/vitest.config.ts +36 -0
  365. package/functions/deno.json +25 -0
  366. package/functions/server.ts +290 -0
  367. package/functions/worker-template.js +126 -0
  368. package/openapi/ai.yaml +689 -0
  369. package/openapi/auth.yaml +563 -0
  370. package/openapi/functions.yaml +476 -0
  371. package/openapi/health.yaml +30 -0
  372. package/openapi/logs.yaml +224 -0
  373. package/openapi/metadata.yaml +178 -0
  374. package/openapi/records.yaml +382 -0
  375. package/openapi/secrets.yaml +371 -0
  376. package/openapi/storage.yaml +876 -0
  377. package/openapi/tables.yaml +464 -0
  378. package/package.json +88 -0
  379. package/shared-schemas/package.json +31 -0
  380. package/shared-schemas/src/ai-api.schema.ts +167 -0
  381. package/shared-schemas/src/ai.schema.ts +54 -0
  382. package/shared-schemas/src/auth-api.schema.ts +193 -0
  383. package/shared-schemas/src/auth.schema.ts +94 -0
  384. package/shared-schemas/src/database-api.schema.ts +259 -0
  385. package/shared-schemas/src/database.schema.ts +69 -0
  386. package/shared-schemas/src/functions-api.schema.ts +25 -0
  387. package/shared-schemas/src/functions.schema.ts +16 -0
  388. package/shared-schemas/src/index.ts +13 -0
  389. package/shared-schemas/src/logs-api.schema.ts +49 -0
  390. package/shared-schemas/src/logs.schema.ts +14 -0
  391. package/shared-schemas/src/metadata.schema.ts +56 -0
  392. package/shared-schemas/src/storage-api.schema.ts +65 -0
  393. package/shared-schemas/src/storage.schema.ts +19 -0
  394. package/shared-schemas/tsconfig.json +21 -0
  395. package/tsconfig.json +8 -0
@@ -0,0 +1,106 @@
1
+ import { Routes, Route, Navigate } from 'react-router-dom';
2
+ import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
3
+ import { AuthProvider } from '@/lib/contexts/AuthContext';
4
+ import { AuthErrorBoundary } from '@/features/login/components/AuthErrorBoundary';
5
+ import { PrivateRoute } from '@/features/login/components/PrivateRoute';
6
+ import { ToastProvider } from '@/lib/hooks/useToast';
7
+ import { SocketProvider } from '@/lib/contexts/SocketContext';
8
+ import LoginPage from './features/login/page/LoginPage';
9
+ import DashboardPage from './features/dashboard/page/DashboardPage';
10
+ import DatabasePage from './features/database/page/DatabasePage';
11
+ import AuthenticationPage from './features/auth/page/AuthenticationPage';
12
+ import AuditsPage from './features/logs/page/AuditsPage';
13
+ import AnalyticsLogsPage from './features/logs/page/AnalyticsLogsPage';
14
+ import StoragePage from './features/storage/page/StoragePage';
15
+ import MetadataPage from './features/metadata/page/MetadataPage';
16
+ import OnBoardPage from './features/onboard/page/OnBoardPage';
17
+ import VisualizerPage from './features/visualizer/page/VisualizerPage';
18
+ import FunctionsPage from './features/functions/page/FunctionsPage';
19
+ import Layout from './components/layout/Layout';
20
+ import { OnboardStepProvider } from './lib/contexts/OnboardStepContext';
21
+ import CloudLayout from './components/layout/CloudLayout';
22
+ import CloudLoginPage from './features/login/page/CloudLoginPage';
23
+ import AiPage from './features/ai/page/AIPage';
24
+
25
+ const queryClient = new QueryClient({
26
+ defaultOptions: {
27
+ queries: {
28
+ staleTime: 5 * 60 * 1000, // 5 minutes
29
+ gcTime: 10 * 60 * 1000, // 10 minutes
30
+ refetchOnWindowFocus: false,
31
+ },
32
+ },
33
+ });
34
+
35
+ function App() {
36
+ return (
37
+ <QueryClientProvider client={queryClient}>
38
+ <AuthErrorBoundary>
39
+ <AuthProvider>
40
+ <SocketProvider>
41
+ <ToastProvider>
42
+ <OnboardStepProvider>
43
+ <AppRoutes />
44
+ </OnboardStepProvider>
45
+ </ToastProvider>
46
+ </SocketProvider>
47
+ </AuthProvider>
48
+ </AuthErrorBoundary>
49
+ </QueryClientProvider>
50
+ );
51
+ }
52
+
53
+ function AppRoutes() {
54
+ return (
55
+ <Routes>
56
+ <Route path="/dashboard/login" element={<LoginPage />} />
57
+ <Route path="/cloud/login" element={<CloudLoginPage />} />
58
+ <Route
59
+ path="/cloud/*"
60
+ element={
61
+ <PrivateRoute classname="bg-neutral-800">
62
+ <CloudLayout>
63
+ <Routes>
64
+ <Route path="/" element={<Navigate to="/cloud/dashboard" replace />} />
65
+ <Route path="/visualizer" element={<VisualizerPage />} />
66
+ <Route path="/dashboard" element={<DashboardPage />} />
67
+ <Route path="/authentication" element={<AuthenticationPage />} />
68
+ <Route path="/database" element={<DatabasePage />} />
69
+ <Route path="/storage" element={<StoragePage />} />
70
+ <Route path="/analytics" element={<AnalyticsLogsPage />} />
71
+ <Route path="/functions" element={<FunctionsPage />} />
72
+ <Route path="/ai" element={<AiPage />} />
73
+ <Route path="*" element={<Navigate to="/cloud/dashboard" replace />} />
74
+ </Routes>
75
+ </CloudLayout>
76
+ </PrivateRoute>
77
+ }
78
+ />
79
+ <Route
80
+ path="/*"
81
+ element={
82
+ <PrivateRoute classname="bg-bg-gray">
83
+ <Layout>
84
+ <Routes>
85
+ <Route path="/" element={<Navigate to="/dashboard" replace />} />
86
+ <Route path="/dashboard" element={<DashboardPage />} />
87
+ <Route path="/dashboard/authentication" element={<AuthenticationPage />} />
88
+ <Route path="/dashboard/database" element={<DatabasePage />} />
89
+ <Route path="/dashboard/storage" element={<StoragePage />} />
90
+ <Route path="/dashboard/audits" element={<AuditsPage />} />
91
+ <Route path="/dashboard/analytics" element={<AnalyticsLogsPage />} />
92
+ <Route path="/dashboard/functions" element={<FunctionsPage />} />
93
+ <Route path="/dashboard/metadata" element={<MetadataPage />} />
94
+ <Route path="/dashboard/onboard" element={<OnBoardPage />} />
95
+ <Route path="/dashboard/ai" element={<AiPage />} />
96
+ <Route path="*" element={<Navigate to="/dashboard" replace />} />
97
+ </Routes>
98
+ </Layout>
99
+ </PrivateRoute>
100
+ }
101
+ />
102
+ </Routes>
103
+ );
104
+ }
105
+
106
+ export default App;
@@ -0,0 +1,6 @@
1
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <!-- Box background (transparent) -->
3
+ <path d="M13.0664 0C14.6344 0 15.9144 1.2296 15.996 2.7776L16 2.9336V13.0664C16 14.6344 14.7704 15.9144 13.2224 15.996L13.0664 16H2.9336C2.18254 16 1.46007 15.712 0.915043 15.1953C0.370013 14.6785 0.0439391 13.9724 0.00400009 13.2224L0 13.0664V2.9336C0 1.3656 1.2296 0.0856001 2.7776 0.00400009L2.9336 0H13.0664Z" fill="none"/>
4
+ <!-- Checkmark (theme color) -->
5
+ <path d="M10.9656 5.8344C10.8156 5.68442 10.6121 5.60017 10.4 5.60017C10.1879 5.60017 9.98442 5.68442 9.8344 5.8344L7.2 8.468L6.1656 7.4344L6.0904 7.368C5.92961 7.24367 5.72752 7.18521 5.52518 7.20448C5.32284 7.22376 5.13543 7.31932 5.001 7.47178C4.86657 7.62423 4.79521 7.82213 4.80142 8.02529C4.80762 8.22845 4.89092 8.42163 5.0344 8.5656L6.6344 10.1656L6.7096 10.232C6.86352 10.3514 7.05572 10.4105 7.25014 10.3983C7.44457 10.3861 7.62785 10.3033 7.7656 10.1656L10.9656 6.9656L11.032 6.8904C11.1514 6.73648 11.2105 6.54428 11.1983 6.34985C11.1861 6.15543 11.1033 5.97215 10.9656 5.8344Z" fill="currentColor"/>
6
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <!-- Box background (transparent) -->
3
+ <path d="M0 4C0 1.79086 1.79086 0 4 0H12C14.2091 0 16 1.79086 16 4V12C16 14.2091 14.2091 16 12 16H4C1.79086 16 0 14.2091 0 12V4Z" fill="none"/>
4
+ <!-- Dash (theme color) -->
5
+ <rect x="5" y="7" width="6" height="2" fill="currentColor"/>
6
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M11.3333 2.22664C12.3388 2.80721 13.1752 3.64032 13.7598 4.6435C14.3444 5.64669 14.6568 6.78515 14.6662 7.9462C14.6756 9.10724 14.3816 10.2506 13.8133 11.2631C13.245 12.2756 12.4221 13.1221 11.4261 13.7188C10.4301 14.3156 9.2955 14.6419 8.13465 14.6653C6.97381 14.6888 5.82695 14.4087 4.80762 13.8528C3.78829 13.2968 2.93183 12.4843 2.32303 11.4956C1.71423 10.507 1.37419 9.37644 1.33659 8.21597L1.33325 7.99997L1.33659 7.78397C1.37392 6.63263 1.70895 5.51061 2.30901 4.5273C2.90907 3.54399 3.75369 2.73294 4.76051 2.17322C5.76734 1.61351 6.90202 1.32423 8.05392 1.33359C9.20583 1.34295 10.3357 1.65063 11.3333 2.22664ZM10.4713 6.1953C10.3565 6.08052 10.2037 6.01156 10.0417 6.00138C9.87969 5.99119 9.71952 6.04047 9.59125 6.13997L9.52859 6.1953L7.33325 8.38997L6.47125 7.52864L6.40859 7.4733C6.28031 7.37387 6.12017 7.32465 5.95819 7.33487C5.79621 7.34509 5.64352 7.41405 5.52876 7.52881C5.414 7.64357 5.34504 7.79626 5.33482 7.95824C5.3246 8.12022 5.37382 8.28036 5.47325 8.40864L5.52859 8.4713L6.86192 9.80464L6.92459 9.85997C7.0415 9.95068 7.18527 9.99991 7.33325 9.99991C7.48123 9.99991 7.625 9.95068 7.74192 9.85997L7.80459 9.80464L10.4713 7.13797L10.5266 7.0753C10.6261 6.94703 10.6754 6.78687 10.6652 6.62485C10.655 6.46283 10.586 6.3101 10.4713 6.1953Z" fill="#4ADE80"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M8.00016 1.3335C11.6822 1.3335 14.6668 4.31816 14.6668 8.00016C14.6682 9.75048 13.9812 11.4311 12.7541 12.6793C11.527 13.9274 9.85826 14.6429 8.10818 14.6712C6.35809 14.6996 4.66706 14.0385 3.40016 12.8308C2.13327 11.6231 1.39216 9.9656 1.33683 8.21616L1.3335 8.00016L1.33616 7.8135C1.43483 4.21816 4.38016 1.3335 8.00016 1.3335ZM8.00683 10.0002L7.92216 10.0048C7.76013 10.0241 7.61079 10.1021 7.50244 10.2241C7.39408 10.3461 7.33424 10.5037 7.33424 10.6668C7.33424 10.83 7.39408 10.9875 7.50244 11.1095C7.61079 11.2315 7.76013 11.3096 7.92216 11.3288L8.00016 11.3335L8.08483 11.3288C8.24686 11.3096 8.3962 11.2315 8.50455 11.1095C8.61291 10.9875 8.67275 10.83 8.67275 10.6668C8.67275 10.5037 8.61291 10.3461 8.50455 10.2241C8.3962 10.1021 8.24686 10.0241 8.08483 10.0048L8.00683 10.0002ZM8.00016 4.66683C7.83687 4.66685 7.67927 4.7268 7.55725 4.83531C7.43522 4.94381 7.35727 5.09333 7.33816 5.2555L7.3335 5.3335V8.00016L7.33816 8.07816C7.35744 8.2402 7.43547 8.38953 7.55747 8.49789C7.67948 8.60624 7.83699 8.66609 8.00016 8.66609C8.16334 8.66609 8.32085 8.60624 8.44285 8.49789C8.56486 8.38953 8.64289 8.2402 8.66216 8.07816L8.66683 8.00016V5.3335L8.66216 5.2555C8.64306 5.09333 8.5651 4.94381 8.44308 4.83531C8.32105 4.7268 8.16345 4.66685 8.00016 4.66683Z" fill="#DC2626"/>
3
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M3.3335 16.6663H6.66683L15.4168 7.91627C15.6357 7.6974 15.8093 7.43756 15.9278 7.15159C16.0462 6.86563 16.1072 6.55913 16.1072 6.2496C16.1072 5.94007 16.0462 5.63357 15.9278 5.34761C15.8093 5.06164 15.6357 4.8018 15.4168 4.58293C15.198 4.36406 14.9381 4.19045 14.6522 4.072C14.3662 3.95354 14.0597 3.89258 13.7502 3.89258C13.4406 3.89258 13.1341 3.95354 12.8482 4.072C12.5622 4.19045 12.3024 4.36406 12.0835 4.58293L3.3335 13.3329V16.6663Z" stroke="#717A7A" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M11.25 5.41699L14.5833 8.75033" stroke="#717A7A" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M16.6107 10.8674C16.4534 12.0674 15.9723 13.2019 15.2192 14.1492C14.4661 15.0966 13.4693 15.821 12.3357 16.2449C11.2021 16.6688 9.97454 16.7761 8.7846 16.5554C7.59467 16.3346 6.48727 15.7941 5.58118 14.9918C4.67509 14.1895 4.00448 13.1557 3.64128 12.0013C3.27808 10.8468 3.23599 9.61527 3.51952 8.43872C3.80305 7.26216 4.4015 6.18498 5.2507 5.32269C6.0999 4.46041 7.16781 3.84555 8.33989 3.54406C11.5891 2.71073 14.9524 4.38323 16.1941 7.49989" stroke="#717A7A" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M16.6667 3.33301V7.49967H12.5" stroke="#717A7A" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M14.1667 2.78332C15.4236 3.50904 16.4691 4.55043 17.1999 5.80441C17.9306 7.05839 18.3212 8.48147 18.3329 9.93277C18.3446 11.3841 17.9771 12.8133 17.2667 14.0789C16.5563 15.3445 15.5277 16.4027 14.2827 17.1486C13.0377 17.8945 11.6195 18.3023 10.1684 18.3317C8.71738 18.3611 7.28381 18.011 6.00965 17.316C4.73549 16.6211 3.66491 15.6054 2.90391 14.3696C2.14291 13.1337 1.71786 11.7206 1.67085 10.27L1.66669 9.99999L1.67085 9.72999C1.71752 8.29082 2.13631 6.88829 2.88639 5.65915C3.63646 4.43001 4.69223 3.4162 5.95076 2.71656C7.2093 2.01692 8.62764 1.65532 10.0675 1.66702C11.5074 1.67872 12.9197 2.06332 14.1667 2.78332ZM10 8.33333C9.60174 8.33331 9.21662 8.47592 8.9144 8.73533C8.61219 8.99474 8.41286 9.35381 8.35252 9.74749L8.33752 9.87582L8.33335 9.99999L8.33752 10.125C8.36184 10.4484 8.47997 10.7576 8.67744 11.0149C8.8749 11.2721 9.14312 11.4661 9.44922 11.5732C9.75533 11.6803 10.086 11.6957 10.4008 11.6176C10.7155 11.5396 11.0006 11.3714 11.2212 11.1336C11.4418 10.8959 11.5882 10.599 11.6426 10.2793C11.6969 9.95963 11.6568 9.63102 11.5272 9.33376C11.3976 9.03651 11.184 8.78354 10.9128 8.60583C10.6415 8.42813 10.3243 8.33343 10 8.33333Z" fill="currentColor"/>
3
+ </svg>
@@ -0,0 +1,11 @@
1
+ <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_951_26147)">
3
+ <path d="M10 18.3334C14.6024 18.3334 18.3334 14.6024 18.3334 10C18.3334 5.39765 14.6024 1.66669 10 1.66669C5.39765 1.66669 1.66669 5.39765 1.66669 10C1.66669 14.6024 5.39765 18.3334 10 18.3334Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <path d="M10 10.8334C10.4603 10.8334 10.8334 10.4603 10.8334 10C10.8334 9.53978 10.4603 9.16669 10 9.16669C9.53978 9.16669 9.16669 9.53978 9.16669 10C9.16669 10.4603 9.53978 10.8334 10 10.8334Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
5
+ </g>
6
+ <defs>
7
+ <clipPath id="clip0_951_26147">
8
+ <rect width="20" height="20" fill="white"/>
9
+ </clipPath>
10
+ </defs>
11
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M12.0002 1.66992C12.9552 1.66992 13.8452 2.13692 14.3902 2.91692L14.4952 3.07692L22.6092 16.6249C22.8558 17.052 22.9899 17.5347 22.9991 18.0277C23.0083 18.5208 22.8922 19.0081 22.6617 19.4441C22.4311 19.8801 22.0938 20.2504 21.6811 20.5204C21.2684 20.7904 20.794 20.9513 20.3022 20.9879L20.1072 20.9959H3.88219C3.38989 20.9904 2.90702 20.8602 2.47866 20.6175C2.05029 20.3749 1.69039 20.0276 1.43255 19.6082C1.17472 19.1888 1.02735 18.7109 1.0042 18.2191C0.981052 17.7273 1.08288 17.2377 1.30019 16.7959L1.39919 16.6109L9.50919 3.07292C9.76885 2.64473 10.1345 2.29069 10.5708 2.04494C11.0071 1.79919 11.4994 1.67003 12.0002 1.66992ZM12.0102 14.9999L11.8832 15.0069C11.6401 15.0358 11.4161 15.1529 11.2536 15.3359C11.0911 15.5189 11.0013 15.7552 11.0013 15.9999C11.0013 16.2447 11.0911 16.4809 11.2536 16.664C11.4161 16.847 11.6401 16.964 11.8832 16.9929L12.0002 16.9999L12.1272 16.9929C12.3702 16.964 12.5942 16.847 12.7568 16.664C12.9193 16.4809 13.0091 16.2447 13.0091 15.9999C13.0091 15.7552 12.9193 15.5189 12.7568 15.3359C12.5942 15.1529 12.3702 15.0358 12.1272 15.0069L12.0102 14.9999ZM12.0002 7.99992C11.7553 7.99995 11.5188 8.08988 11.3358 8.25264C11.1528 8.4154 11.0358 8.63967 11.0072 8.88292L11.0002 8.99992V12.9999L11.0072 13.1169C11.0361 13.36 11.1531 13.584 11.3362 13.7465C11.5192 13.909 11.7554 13.9988 12.0002 13.9988C12.2449 13.9988 12.4812 13.909 12.6642 13.7465C12.8472 13.584 12.9643 13.36 12.9932 13.1169L13.0002 12.9999V8.99992L12.9932 8.88292C12.9645 8.63967 12.8476 8.4154 12.6646 8.25264C12.4815 8.08988 12.2451 7.99995 12.0002 7.99992Z" fill="#F59E0B"/>
3
+ </svg>
@@ -0,0 +1 @@
1
+ <svg height="2500" viewBox="2.167 .438 251.038 259.969" width="2500" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path d="m221.503 210.324c-105.235 50.083-170.545 8.18-212.352-17.271-2.587-1.604-6.984.375-3.169 4.757 13.928 16.888 59.573 57.593 119.153 57.593 59.621 0 95.09-32.532 99.527-38.207 4.407-5.627 1.294-8.731-3.16-6.872zm29.555-16.322c-2.826-3.68-17.184-4.366-26.22-3.256-9.05 1.078-22.634 6.609-21.453 9.93.606 1.244 1.843.686 8.06.127 6.234-.622 23.698-2.826 27.337 1.931 3.656 4.79-5.57 27.608-7.255 31.288-1.628 3.68.622 4.629 3.68 2.178 3.016-2.45 8.476-8.795 12.14-17.774 3.639-9.028 5.858-21.622 3.71-24.424z" fill="#f90" fill-rule="nonzero"/><path d="m150.744 108.13c0 13.141.332 24.1-6.31 35.77-5.361 9.489-13.853 15.324-23.341 15.324-12.952 0-20.495-9.868-20.495-24.432 0-28.75 25.76-33.968 50.146-33.968zm34.015 82.216c-2.23 1.992-5.456 2.135-7.97.806-11.196-9.298-13.189-13.615-19.356-22.487-18.502 18.882-31.596 24.527-55.601 24.527-28.37 0-50.478-17.506-50.478-52.565 0-27.373 14.85-46.018 35.96-55.126 18.313-8.066 43.884-9.489 63.43-11.718v-4.365c0-8.018.616-17.506-4.08-24.432-4.128-6.215-12.003-8.777-18.93-8.777-12.856 0-24.337 6.594-27.136 20.257-.57 3.037-2.799 6.026-5.835 6.168l-32.735-3.51c-2.751-.618-5.787-2.847-5.028-7.07 7.543-39.66 43.36-51.616 75.43-51.616 16.415 0 37.858 4.365 50.81 16.795 16.415 15.323 14.849 35.77 14.849 58.02v52.565c0 15.798 6.547 22.724 12.714 31.264 2.182 3.036 2.657 6.69-.095 8.966-6.879 5.74-19.119 16.415-25.855 22.393l-.095-.095" fill="#000"/><path d="m221.503 210.324c-105.235 50.083-170.545 8.18-212.352-17.271-2.587-1.604-6.984.375-3.169 4.757 13.928 16.888 59.573 57.593 119.153 57.593 59.621 0 95.09-32.532 99.527-38.207 4.407-5.627 1.294-8.731-3.16-6.872zm29.555-16.322c-2.826-3.68-17.184-4.366-26.22-3.256-9.05 1.078-22.634 6.609-21.453 9.93.606 1.244 1.843.686 8.06.127 6.234-.622 23.698-2.826 27.337 1.931 3.656 4.79-5.57 27.608-7.255 31.288-1.628 3.68.622 4.629 3.68 2.178 3.016-2.45 8.476-8.795 12.14-17.774 3.639-9.028 5.858-21.622 3.71-24.424z" fill="#f90" fill-rule="nonzero"/><path d="m150.744 108.13c0 13.141.332 24.1-6.31 35.77-5.361 9.489-13.853 15.324-23.341 15.324-12.952 0-20.495-9.868-20.495-24.432 0-28.75 25.76-33.968 50.146-33.968zm34.015 82.216c-2.23 1.992-5.456 2.135-7.97.806-11.196-9.298-13.189-13.615-19.356-22.487-18.502 18.882-31.596 24.527-55.601 24.527-28.37 0-50.478-17.506-50.478-52.565 0-27.373 14.85-46.018 35.96-55.126 18.313-8.066 43.884-9.489 63.43-11.718v-4.365c0-8.018.616-17.506-4.08-24.432-4.128-6.215-12.003-8.777-18.93-8.777-12.856 0-24.337 6.594-27.136 20.257-.57 3.037-2.799 6.026-5.835 6.168l-32.735-3.51c-2.751-.618-5.787-2.847-5.028-7.07 7.543-39.66 43.36-51.616 75.43-51.616 16.415 0 37.858 4.365 50.81 16.795 16.415 15.323 14.849 35.77 14.849 58.02v52.565c0 15.798 6.547 22.724 12.714 31.264 2.182 3.036 2.657 6.69-.095 8.966-6.879 5.74-19.119 16.415-25.855 22.393l-.095-.095" fill="currentColor"/></g></svg>
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M5.92417 15.2958L9.8575 13.09L9.92417 12.8983L9.8575 12.7917H9.66667L9.00833 12.7517L6.76 12.6908L4.81083 12.61L2.9225 12.5083L2.44667 12.4075L2 11.82L2.04583 11.5267L2.44583 11.2592L3.0175 11.3092L4.28417 11.395L6.1825 11.5267L7.55917 11.6075L9.6 11.82H9.92417L9.97 11.6892L9.85833 11.6075L9.7725 11.5267L7.8075 10.1967L5.68083 8.79L4.5675 7.98L3.96417 7.57083L3.66083 7.18583L3.52917 6.34583L4.07583 5.74417L4.81 5.79417L4.9975 5.845L5.74167 6.41667L7.33167 7.64667L9.4075 9.17417L9.71167 9.4275L9.8325 9.34167L9.84833 9.28083L9.71167 9.0525L8.5825 7.01417L7.3775 4.93917L6.84083 4.07917L6.69917 3.56333C6.64519 3.36521 6.61608 3.16114 6.6125 2.95583L7.23583 2.11167L7.58 2L8.41 2.11167L8.76 2.415L9.27667 3.59333L10.1117 5.45083L11.4075 7.97583L11.7875 8.72417L11.99 9.4175L12.0658 9.63H12.1975V9.50833L12.3042 8.08667L12.5017 6.34083L12.6933 4.095L12.76 3.46167L13.0733 2.70333L13.6958 2.29333L14.1825 2.52667L14.5825 3.0975L14.5267 3.4675L14.2883 5.01L13.8225 7.42917L13.5192 9.0475H13.6958L13.8983 8.84583L14.7192 7.7575L16.0958 6.0375L16.7042 5.35417L17.4125 4.60083L17.8683 4.24167H18.7292L19.3625 5.1825L19.0792 6.15417L18.1925 7.27667L17.4583 8.22833L16.405 9.645L15.7467 10.7783L15.8075 10.87L15.9642 10.8533L18.3442 10.3483L19.63 10.115L21.1642 9.8525L21.8583 10.1758L21.9342 10.505L21.6608 11.1775L20.02 11.5825L18.0958 11.9675L15.23 12.645L15.195 12.67L15.2358 12.7208L16.5267 12.8425L17.0783 12.8725H18.43L20.9467 13.06L21.605 13.495L22 14.0267L21.9342 14.4308L20.9217 14.9475L19.555 14.6233L16.3642 13.865L15.2708 13.5908H15.1192V13.6825L16.03 14.5725L17.7017 16.0808L19.7925 18.0225L19.8983 18.5042L19.63 18.8833L19.3467 18.8425L17.5092 17.4617L16.8 16.8392L15.195 15.4892H15.0883V15.6308L15.4583 16.1717L17.4125 19.1058L17.5142 20.0058L17.3725 20.3L16.8658 20.4775L16.3092 20.3758L15.1642 18.7717L13.985 16.9658L13.0325 15.3467L12.9158 15.4133L12.3542 21.4583L12.0908 21.7667L11.4833 22L10.9775 21.6158L10.7092 20.9933L10.9775 19.7633L11.3017 18.16L11.5642 16.885L11.8025 15.3017L11.9442 14.775L11.9342 14.74L11.8175 14.755L10.6225 16.3942L8.80583 18.8483L7.3675 20.3858L7.0225 20.5225L6.425 20.2142L6.48083 19.6625L6.815 19.1717L8.805 16.6417L10.005 15.0733L10.78 14.1683L10.775 14.0367H10.7292L5.44333 17.4667L4.50167 17.5883L4.09583 17.2083L4.14667 16.5867L4.33917 16.3842L5.92917 15.2908L5.92417 15.2958Z" fill="#D97757"/>
3
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_1018_35607)">
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M15.7762 5.99316C17.8387 5.99316 19.5112 7.67316 19.5112 9.74541V10.9957L20.5987 13.1677C20.6518 13.2735 20.6793 13.3903 20.679 13.5087C20.6788 13.6271 20.6507 13.7438 20.5972 13.8494L19.5112 15.9974V17.2484C19.5112 19.3199 17.8387 20.9999 15.7762 20.9999H8.30548C6.24223 20.9999 4.57048 19.3199 4.57048 17.2484V15.9974L3.46048 13.8562C3.40463 13.7489 3.37527 13.6298 3.37488 13.5088C3.37449 13.3879 3.40307 13.2686 3.45823 13.1609L4.56973 10.9957V9.74541C4.56973 7.67316 6.24223 5.99316 8.30473 5.99316H15.7762ZM9.19873 10.1999C8.74641 10.1999 8.3126 10.3796 7.99276 10.6994C7.67292 11.0193 7.49323 11.4531 7.49323 11.9054V14.9369C7.50259 15.3829 7.68634 15.8076 8.0051 16.1197C8.32385 16.4318 8.75222 16.6067 9.19836 16.6067C9.64449 16.6067 10.0729 16.4318 10.3916 16.1197C10.7104 15.8076 10.8941 15.3829 10.9035 14.9369V11.9054C10.9035 11.4532 10.7239 11.0195 10.4042 10.6997C10.0845 10.3799 9.65093 10.2001 9.19873 10.1999ZM14.6932 10.1999C14.2409 10.1999 13.8071 10.3796 13.4873 10.6994C13.1674 11.0193 12.9877 11.4531 12.9877 11.9054V14.9369C12.9877 15.3892 13.1674 15.823 13.4873 16.1429C13.8071 16.4627 14.2409 16.6424 14.6932 16.6424C15.1456 16.6424 15.5794 16.4627 15.8992 16.1429C16.219 15.823 16.3987 15.3892 16.3987 14.9369V11.9054C16.3987 11.6814 16.3546 11.4595 16.2688 11.2526C16.1831 11.0456 16.0574 10.8576 15.8989 10.6992C15.7405 10.5408 15.5524 10.4152 15.3454 10.3295C15.1384 10.2439 14.9173 10.1998 14.6932 10.1999Z" fill="currentColor"/>
4
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M12.0405 7.1685C12.5933 7.1685 13.1234 6.94891 13.5143 6.55804C13.9051 6.16716 14.1247 5.63703 14.1247 5.08425C14.1247 4.53147 13.9051 4.00134 13.5143 3.61046C13.1234 3.21959 12.5933 3 12.0405 3C11.4877 3 10.9576 3.21959 10.5667 3.61046C10.1758 4.00134 9.95624 4.53147 9.95624 5.08425C9.95624 5.63703 10.1758 6.16716 10.5667 6.55804C10.9576 6.94891 11.4877 7.1685 12.0405 7.1685Z" fill="currentColor"/>
5
+ </g>
6
+ </svg>
@@ -0,0 +1,20 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M12.692 1.27301L20.5205 6.19851C20.819 6.38601 21 6.71401 21 7.06651V16.444C21 16.79 20.8225 17.1115 20.5295 17.2955L12.686 22.225C12.4175 22.394 12.077 22.398 11.8045 22.236L3.49 17.2915C3.299 17.178 3.1545 17.006 3.0735 16.8065C3.0255 16.6885 3 16.561 3 16.43V7.06851C3 6.71601 3.1855 6.38951 3.489 6.20901L11.8105 1.26151C12.083 1.09951 12.4235 1.10401 12.692 1.27301Z" fill="url(#paint0_linear_951_26263)"/>
3
+ <path d="M12.5 11.4995L20.8975 16.8745C20.814 17.0375 20.6915 17.178 20.5295 17.2955L12.712 22.2095C12.409 22.3905 12.0985 22.41 11.779 22.2225L3.48999 17.2915C3.29849 17.176 3.15749 17.0165 3.07349 16.8065L12.5 11.4995Z" fill="url(#paint1_linear_951_26263)"/>
4
+ <path d="M12.248 1.14593V11.5889L3.07351 16.8064C3.02351 16.6804 2.99951 16.5549 3.00001 16.4299V7.06843C3.02101 6.74043 3.11851 6.43493 3.48901 6.20893L11.8545 1.23843C11.993 1.17443 12.125 1.13993 12.248 1.14593Z" fill="url(#paint2_linear_951_26263)"/>
5
+ <path d="M4.26402 7.99939L11.74 11.8359C11.904 11.9324 12.005 12.1084 12.005 12.2989L11.9995 20.4759C11.9995 21.0284 12.733 21.2209 13.004 20.7394L20.001 7.78389C20.2025 7.42589 19.9435 6.98389 19.533 6.98389L4.53552 6.99989C3.98852 6.99989 3.79252 7.72239 4.26402 7.99939Z" fill="#E0E0E0"/>
6
+ <defs>
7
+ <linearGradient id="paint0_linear_951_26263" x1="15.451" y1="17.8605" x2="8.257" y2="5.11251" gradientUnits="userSpaceOnUse">
8
+ <stop stop-color="#636363"/>
9
+ <stop offset="1" stop-color="#444444"/>
10
+ </linearGradient>
11
+ <linearGradient id="paint1_linear_951_26263" x1="13.5605" y1="20.9035" x2="10.544" y2="13.1215" gradientUnits="userSpaceOnUse">
12
+ <stop stop-color="#A1AAB3"/>
13
+ <stop offset="1" stop-color="#8F979E"/>
14
+ </linearGradient>
15
+ <linearGradient id="paint2_linear_951_26263" x1="9.31051" y1="11.8994" x2="4.42451" y2="3.24193" gradientUnits="userSpaceOnUse">
16
+ <stop stop-color="#636363"/>
17
+ <stop offset="0.997" stop-color="#90989F"/>
18
+ </linearGradient>
19
+ </defs>
20
+ </svg>
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
3
+ <svg width="800px" height="800px" viewBox="0 -28.5 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
4
+ <g>
5
+ <path d="M216.856339,16.5966031 C200.285002,8.84328665 182.566144,3.2084988 164.041564,0 C161.766523,4.11318106 159.108624,9.64549908 157.276099,14.0464379 C137.583995,11.0849896 118.072967,11.0849896 98.7430163,14.0464379 C96.9108417,9.64549908 94.1925838,4.11318106 91.8971895,0 C73.3526068,3.2084988 55.6133949,8.86399117 39.0420583,16.6376612 C5.61752293,67.146514 -3.4433191,116.400813 1.08711069,164.955721 C23.2560196,181.510915 44.7403634,191.567697 65.8621325,198.148576 C71.0772151,190.971126 75.7283628,183.341335 79.7352139,175.300261 C72.104019,172.400575 64.7949724,168.822202 57.8887866,164.667963 C59.7209612,163.310589 61.5131304,161.891452 63.2445898,160.431257 C105.36741,180.133187 151.134928,180.133187 192.754523,160.431257 C194.506336,161.891452 196.298154,163.310589 198.110326,164.667963 C191.183787,168.842556 183.854737,172.420929 176.223542,175.320965 C180.230393,183.341335 184.861538,190.991831 190.096624,198.16893 C211.238746,191.588051 232.743023,181.531619 254.911949,164.955721 C260.227747,108.668201 245.831087,59.8662432 216.856339,16.5966031 Z M85.4738752,135.09489 C72.8290281,135.09489 62.4592217,123.290155 62.4592217,108.914901 C62.4592217,94.5396472 72.607595,82.7145587 85.4738752,82.7145587 C98.3405064,82.7145587 108.709962,94.5189427 108.488529,108.914901 C108.508531,123.290155 98.3405064,135.09489 85.4738752,135.09489 Z M170.525237,135.09489 C157.88039,135.09489 147.510584,123.290155 147.510584,108.914901 C147.510584,94.5396472 157.658606,82.7145587 170.525237,82.7145587 C183.391518,82.7145587 193.761324,94.5189427 193.539891,108.914901 C193.539891,123.290155 183.391518,135.09489 170.525237,135.09489 Z" fill="#ffffff" fill-rule="nonzero">
6
+
7
+ </path>
8
+ </g>
9
+ </svg>
@@ -0,0 +1,19 @@
1
+ <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_1767_22962)">
3
+ <path d="M19.2154 9.61643L18.8008 9.59977H18.8C14.2679 9.42143 10.5779 5.73143 10.3995 1.19935L10.3829 0.784349C10.375 0.578516 10.2058 0.416016 9.99996 0.416016C9.79413 0.416016 9.62496 0.578516 9.61704 0.783932L9.60038 1.19893C9.42163 5.73102 5.73163 9.42102 1.19913 9.59977L0.784543 9.61643C0.579126 9.62435 0.416626 9.79352 0.416626 9.99935C0.416626 10.2052 0.579126 10.3743 0.784959 10.3823L1.19954 10.3985C5.73163 10.5777 9.42163 14.2677 9.60038 18.7998L9.61704 19.2148C9.62496 19.4202 9.79413 19.5827 9.99996 19.5827C10.2058 19.5827 10.375 19.4202 10.3829 19.2148L10.3995 18.7998C10.5783 14.2677 14.2683 10.5777 18.8004 10.3985L19.215 10.3823C19.4208 10.3743 19.5833 10.2052 19.5833 9.99935C19.5833 9.79352 19.4208 9.62435 19.2154 9.61643Z" fill="url(#paint0_linear_1767_22962)"/>
4
+ </g>
5
+ <defs>
6
+ <linearGradient id="paint0_linear_1767_22962" x1="1.62746" y1="1.62685" x2="18.9283" y2="18.9277" gradientUnits="userSpaceOnUse">
7
+ <stop stop-color="#CA5DF5"/>
8
+ <stop offset="0.036" stop-color="#C05FF4"/>
9
+ <stop offset="0.293" stop-color="#806CEA"/>
10
+ <stop offset="0.528" stop-color="#4D77E3"/>
11
+ <stop offset="0.731" stop-color="#297FDD"/>
12
+ <stop offset="0.895" stop-color="#1283DA"/>
13
+ <stop offset="1" stop-color="#0A85D9"/>
14
+ </linearGradient>
15
+ <clipPath id="clip0_1767_22962">
16
+ <rect width="20" height="20" fill="white"/>
17
+ </clipPath>
18
+ </defs>
19
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_114_4196)">
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M12 0C18.6276 0 24 5.50792 24 12.3035C24 17.7383 20.5656 22.3487 15.8004 23.9771C15.192 24.0983 14.976 23.7141 14.976 23.3865C14.976 22.9809 14.9904 21.6562 14.9904 20.0098C14.9904 18.8626 14.6064 18.1138 14.1756 17.7322C16.848 17.4274 19.656 16.3869 19.656 11.6613C19.656 10.3173 19.1904 9.22058 18.42 8.35898C18.5448 8.04818 18.9564 6.79674 18.3024 5.10234C18.3024 5.10234 17.2968 4.77267 15.006 6.36387C14.0472 6.09147 13.02 5.95441 12 5.94961C10.98 5.95441 9.954 6.09147 8.9964 6.36387C6.7032 4.77267 5.6952 5.10234 5.6952 5.10234C5.0436 6.79674 5.4552 8.04818 5.5788 8.35898C4.812 9.22058 4.3428 10.3173 4.3428 11.6613C4.3428 16.3749 7.1448 17.4314 9.81 17.7422C9.4668 18.0494 9.156 18.5913 9.048 19.3869C8.364 19.7013 6.6264 20.2454 5.556 18.365C5.556 18.365 4.9212 17.1829 3.7164 17.0965C3.7164 17.0965 2.5464 17.0809 3.6348 17.8441C3.6348 17.8441 4.4208 18.2221 4.9668 19.6441C4.9668 19.6441 5.6712 21.8401 9.0096 21.0961C9.0156 22.1245 9.0264 23.0937 9.0264 23.3865C9.0264 23.7117 8.8056 24.0923 8.2068 23.9783C3.438 22.3523 0 17.7395 0 12.3035C0 5.50792 5.3736 0 12 0Z" fill="currentColor"/>
4
+ </g>
5
+ </svg>
@@ -0,0 +1,13 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_114_4184)">
3
+ <path d="M23.714 12.2244C23.714 11.2412 23.6342 10.5236 23.4615 9.77954H12.2336V14.2175H18.8241C18.6913 15.3204 17.9738 16.9814 16.3793 18.0975L16.3569 18.246L19.907 20.9962L20.1529 21.0208C22.4118 18.9346 23.714 15.8652 23.714 12.2244Z" fill="#4285F4"/>
4
+ <path d="M12.2336 23.9176C15.4624 23.9176 18.173 22.8545 20.1529 21.0209L16.3792 18.0976C15.3694 18.8018 14.014 19.2934 12.2336 19.2934C9.07115 19.2934 6.38709 17.2074 5.43029 14.324L5.29005 14.3359L1.59863 17.1927L1.55035 17.3269C3.51689 21.2334 7.55631 23.9176 12.2336 23.9176Z" fill="#34A853"/>
5
+ <path d="M5.43029 14.324C5.17783 13.58 5.03173 12.7826 5.03173 11.9589C5.03173 11.135 5.17783 10.3378 5.41701 9.59366L5.41032 9.43519L1.67264 6.53247L1.55035 6.59064C0.739849 8.21174 0.27478 10.0322 0.27478 11.9589C0.27478 13.8855 0.739849 15.7059 1.55035 17.327L5.43029 14.324Z" fill="#FBBC05"/>
6
+ <path d="M12.2336 4.62403C14.4791 4.62403 15.9939 5.59402 16.8576 6.40461L20.2326 3.10928C18.1598 1.1826 15.4624 0 12.2336 0C7.55631 0 3.51689 2.68406 1.55035 6.59056L5.41701 9.59359C6.38709 6.7102 9.07115 4.62403 12.2336 4.62403Z" fill="#EB4335"/>
7
+ </g>
8
+ <defs>
9
+ <clipPath id="clip0_114_4184">
10
+ <rect width="24" height="24" fill="white"/>
11
+ </clipPath>
12
+ </defs>
13
+ </svg>
@@ -0,0 +1,10 @@
1
+ <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_1767_22966)">
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M7.725 12.741L14.3733 7.82685C14.6992 7.58518 15.165 7.67935 15.3208 8.05352C16.1375 10.0277 15.7725 12.3993 14.1458 14.0277C12.52 15.656 10.2567 16.0127 8.18833 15.1993L5.92917 16.2468C9.17 18.4643 13.105 17.916 15.5642 15.4527C17.515 13.4993 18.1192 10.8368 17.5542 8.43602L17.5592 8.44185C16.74 4.91518 17.7608 3.50518 19.8508 0.622682C19.9008 0.554349 19.9508 0.486016 20 0.416016L17.2492 3.17018V3.16185L7.7225 12.7427M6.3525 13.9352C4.02583 11.7102 4.4275 8.26768 6.41167 6.28185C7.87917 4.81268 10.2842 4.21268 12.3833 5.09435L14.6375 4.05268C14.169 3.70803 13.6564 3.42776 13.1133 3.21935C11.7482 2.6606 10.2482 2.51801 8.80224 2.80952C7.35623 3.10104 6.02872 3.81363 4.98667 4.85768C2.87583 6.97102 2.21167 10.221 3.35167 12.9943C4.20333 15.0668 2.8075 16.5327 1.40167 18.0127C0.9025 18.5377 0.4025 19.0618 0 19.6168L6.35 13.9377" fill="currentColor"/>
4
+ </g>
5
+ <defs>
6
+ <clipPath id="clip0_1767_22966">
7
+ <rect width="20" height="20" fill="currentColor"/>
8
+ </clipPath>
9
+ </defs>
10
+ </svg>
@@ -0,0 +1,15 @@
1
+ <svg width="1000" height="240" viewBox="0 0 1000 240" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M26.1184 101.6C23.2939 98.7833 23.2939 94.2166 26.1184 91.4L97.7167 20L200 20L77.26 142.4C74.4355 145.217 69.8562 145.217 67.0317 142.4L26.1184 101.6Z" fill="url(#paint0_linear_1_42)"/>
3
+ <path d="M155.251 77.375L200 122V224L104.109 128.375L155.251 77.375Z" fill="url(#paint1_linear_1_42)"/>
4
+ <path d="M813.788 77.8691C822.77 77.8691 830.293 80.0567 836.358 84.4307C837.617 85.3176 838.812 86.2734 839.945 87.2959V80.4941H858.404V179.525C858.404 181.916 858.288 184.191 858.055 186.349C857.88 188.565 857.559 190.724 857.093 192.823C855.693 198.947 853.01 203.963 849.044 207.87C845.078 211.836 840.149 214.781 834.259 216.706C828.427 218.631 821.953 219.593 814.838 219.593C809.589 219.593 804.544 218.777 799.703 217.144C794.921 215.511 790.605 213.148 786.756 210.057C782.907 207.024 779.757 203.35 777.308 199.034L796.729 189.411C798.536 192.852 801.074 195.389 804.34 197.022C807.664 198.714 811.193 199.559 814.926 199.559C819.3 199.559 823.208 198.772 826.648 197.197C830.089 195.681 832.743 193.406 834.609 190.373C836.534 187.399 837.438 183.666 837.321 179.176V170.212C836.948 170.494 836.569 170.769 836.184 171.039C829.943 175.413 822.216 177.601 813.001 177.601C804.311 177.601 796.729 175.413 790.255 171.039C783.781 166.665 778.766 160.716 775.208 153.192C771.65 145.669 769.871 137.183 769.871 127.735C769.871 118.171 771.65 109.656 775.208 102.19C778.824 94.6669 783.927 88.7465 790.518 84.4307C797.108 80.0566 804.865 77.8692 813.788 77.8691ZM451.808 77.8691C459.156 77.8692 465.659 79.0067 471.316 81.2812C477.032 83.5558 481.639 86.793 485.139 90.9922C488.638 95.1913 490.796 100.119 491.612 105.776L470.092 109.626C469.567 105.602 467.729 102.424 464.58 100.091C461.489 97.7579 457.348 96.4449 452.157 96.1533C447.2 95.8617 443.205 96.6198 440.172 98.4277C437.139 100.177 435.623 102.657 435.623 105.864C435.623 107.672 436.235 109.218 437.46 110.501C438.685 111.784 441.134 113.067 444.809 114.351C448.541 115.634 454.082 117.208 461.431 119.074C468.954 120.999 474.961 123.215 479.452 125.723C484.001 128.172 487.267 131.118 489.25 134.559C491.291 138 492.312 142.17 492.312 147.069C492.312 156.576 488.842 164.041 481.901 169.465C475.019 174.889 465.484 177.601 453.295 177.601C441.63 177.601 432.153 174.977 424.862 169.728C417.572 164.479 413.14 157.1 411.565 147.594L433.086 144.27C434.194 148.935 436.644 152.609 440.435 155.292C444.226 157.975 449.008 159.316 454.782 159.316C459.856 159.316 463.764 158.325 466.505 156.342C469.304 154.301 470.704 151.53 470.704 148.031C470.704 145.873 470.179 144.153 469.129 142.87C468.137 141.529 465.921 140.245 462.48 139.021C459.039 137.796 453.761 136.25 446.646 134.384C438.714 132.284 432.415 130.039 427.749 127.647C423.083 125.198 419.73 122.311 417.688 118.986C415.647 115.662 414.627 111.638 414.627 106.914C414.627 101.024 416.173 95.8908 419.264 91.5166C422.355 87.1426 426.67 83.7889 432.211 81.4561C437.752 79.0648 444.284 77.8691 451.808 77.8691ZM642.225 77.8691C651.731 77.8691 660.013 79.9983 667.07 84.2559C674.127 88.5134 679.609 94.4042 683.517 101.928C687.424 109.393 689.378 117.996 689.378 127.735C689.378 137.533 687.396 146.194 683.43 153.718C679.522 161.183 674.039 167.044 666.982 171.302C659.925 175.501 651.673 177.601 642.225 177.601C632.777 177.601 624.524 175.472 617.467 171.215C610.41 166.957 604.928 161.095 601.021 153.63C597.171 146.106 595.246 137.475 595.246 127.735C595.246 117.821 597.229 109.13 601.195 101.665C605.161 94.1998 610.673 88.3672 617.729 84.168C624.786 79.9689 632.952 77.8692 642.225 77.8691ZM924.667 77.8691C934.465 77.8692 942.776 80.1729 949.6 84.7803C956.482 89.3294 961.585 95.7743 964.909 104.114C968.234 112.454 969.487 122.282 968.671 133.597H900.287C900.995 140.381 902.997 145.834 906.295 149.956C910.494 155.205 916.619 157.829 924.667 157.829C929.857 157.829 934.319 156.692 938.052 154.418C941.843 152.085 944.759 148.731 946.8 144.357L967.621 150.656C964.005 159.171 958.406 165.791 950.824 170.515C943.301 175.239 934.99 177.601 925.892 177.601C916.327 177.601 907.928 175.53 900.696 171.39C893.464 167.249 887.807 161.504 883.725 154.155C879.7 146.807 877.689 138.35 877.688 128.785C877.688 118.462 879.671 109.51 883.637 101.928C887.603 94.2875 893.114 88.3672 900.171 84.168C907.228 79.9688 915.394 77.8691 924.667 77.8691ZM281.084 174.977H260V49H281.084V174.977ZM356.805 77.7822C363.803 77.7822 369.577 78.9485 374.126 81.2812C378.675 83.6141 382.292 86.5891 384.975 90.2051C387.657 93.821 389.64 97.6705 390.923 101.753C392.206 105.835 393.023 109.714 393.373 113.388C393.781 117.004 393.985 119.949 393.985 122.224V174.977H372.639V129.485C372.639 126.511 372.435 123.216 372.026 119.6C371.618 115.984 370.656 112.513 369.14 109.188C367.682 105.806 365.465 103.036 362.491 100.878C359.575 98.72 355.608 97.6406 350.593 97.6406C347.91 97.6407 345.256 98.0783 342.632 98.9531C340.007 99.828 337.617 101.345 335.459 103.503C333.359 105.603 331.668 108.518 330.385 112.251C329.102 115.925 328.46 120.649 328.46 126.423V174.977H307.114V80.4941H325.923V90.9775C328.334 88.1488 331.163 85.7038 334.409 83.6436C340.475 79.7361 347.94 77.7822 356.805 77.7822ZM587.322 70.084H532.558V101.49H576.824V122.486H532.558V174.977H511.474V49H587.322V70.084ZM753.183 80.1445C756.157 79.9113 759.044 80.0276 761.843 80.4941V100.178C759.043 99.3614 755.807 99.0991 752.133 99.3906C748.517 99.6822 745.25 100.702 742.334 102.452C739.418 104.027 737.027 106.04 735.161 108.489C733.353 110.939 732.012 113.738 731.137 116.888C730.262 119.979 729.824 123.332 729.824 126.948V174.977H708.653V80.4941H727.287V95.5869C727.998 94.3174 728.785 93.1061 729.649 91.9541C731.632 89.3297 733.994 87.1718 736.735 85.4805C739.068 83.9059 741.634 82.6815 744.434 81.8066C747.291 80.8735 750.208 80.3195 753.183 80.1445ZM816.938 96.7656C811.28 96.7656 806.615 98.1655 802.94 100.965C799.266 103.706 796.554 107.439 794.805 112.163C793.055 116.829 792.18 122.02 792.18 127.735C792.18 133.509 793.025 138.758 794.717 143.482C796.466 148.148 799.12 151.852 802.678 154.593C806.235 157.334 810.755 158.704 816.237 158.704C821.894 158.704 826.444 157.421 829.885 154.855C833.384 152.231 835.921 148.586 837.496 143.92C839.129 139.254 839.945 133.859 839.945 127.735C839.945 121.553 839.129 116.158 837.496 111.551C835.921 106.885 833.442 103.269 830.06 100.703C826.677 98.0787 822.303 96.7656 816.938 96.7656ZM642.225 97.6406C636.567 97.6407 631.902 98.9241 628.228 101.49C624.612 103.998 621.928 107.526 620.179 112.075C618.429 116.566 617.555 121.786 617.555 127.735C617.555 136.892 619.625 144.211 623.766 149.693C627.965 155.117 634.118 157.829 642.225 157.829C650.623 157.829 656.864 155.03 660.946 149.431C665.029 143.832 667.07 136.6 667.07 127.735C667.07 118.579 664.999 111.288 660.858 105.864C656.718 100.382 650.506 97.6406 642.225 97.6406ZM925.541 96.3281C916.91 96.3282 910.494 99.0114 906.295 104.377C903.597 107.786 901.767 112.219 900.803 117.675H947.27C946.508 111.524 944.865 106.771 942.338 103.415C938.78 98.6909 933.181 96.3281 925.541 96.3281Z" fill="white"/>
5
+ <defs>
6
+ <linearGradient id="paint0_linear_1_42" x1="22.3955" y1="23.0754" x2="292.628" y2="116.332" gradientUnits="userSpaceOnUse">
7
+ <stop stop-color="white"/>
8
+ <stop offset="1" stop-color="white" stop-opacity="0.4"/>
9
+ </linearGradient>
10
+ <linearGradient id="paint1_linear_1_42" x1="309.006" y1="103.841" x2="130.001" y2="103.841" gradientUnits="userSpaceOnUse">
11
+ <stop stop-color="white"/>
12
+ <stop offset="1" stop-color="white" stop-opacity="0.4"/>
13
+ </linearGradient>
14
+ </defs>
15
+ </svg>
@@ -0,0 +1,15 @@
1
+ <svg width="1000" height="240" viewBox="0 0 1000 240" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M26.1184 101.6C23.2939 98.7833 23.2939 94.2166 26.1184 91.4L97.7167 20L200 20L77.26 142.4C74.4355 145.217 69.8562 145.217 67.0317 142.4L26.1184 101.6Z" fill="url(#paint0_linear_1_48)"/>
3
+ <path d="M155.251 77.375L200 122V224L104.109 128.375L155.251 77.375Z" fill="url(#paint1_linear_1_48)"/>
4
+ <path d="M813.788 77.8701C822.77 77.8701 830.293 80.0567 836.358 84.4307C837.617 85.3176 838.812 86.2734 839.945 87.2959V80.4941H858.404V179.525C858.404 181.916 858.288 184.191 858.055 186.349C857.88 188.565 857.559 190.724 857.093 192.823C855.693 198.947 853.01 203.963 849.044 207.87C845.078 211.836 840.149 214.781 834.259 216.706C828.427 218.631 821.953 219.593 814.838 219.593C809.589 219.593 804.544 218.777 799.703 217.144C794.921 215.511 790.605 213.148 786.756 210.057C782.907 207.024 779.757 203.35 777.308 199.034L796.729 189.411C798.536 192.852 801.074 195.389 804.34 197.022C807.664 198.714 811.193 199.56 814.926 199.56C819.3 199.56 823.208 198.772 826.648 197.197C830.089 195.681 832.743 193.406 834.609 190.373C836.534 187.399 837.438 183.666 837.321 179.176V170.212C836.948 170.494 836.569 170.769 836.184 171.039C829.943 175.413 822.216 177.601 813.001 177.601C804.311 177.601 796.729 175.413 790.255 171.039C783.781 166.665 778.766 160.717 775.208 153.193C771.65 145.67 769.871 137.184 769.871 127.735C769.871 118.171 771.65 109.656 775.208 102.19C778.824 94.6669 783.927 88.7465 790.518 84.4307C797.108 80.0566 804.865 77.8701 813.788 77.8701ZM451.808 77.8701C459.156 77.8701 465.659 79.0067 471.316 81.2812C477.032 83.5558 481.639 86.793 485.139 90.9922C488.638 95.1913 490.796 100.119 491.612 105.776L470.092 109.626C469.567 105.602 467.729 102.424 464.58 100.091C461.489 97.7579 457.348 96.4449 452.157 96.1533C447.2 95.8617 443.205 96.6207 440.172 98.4287C437.139 100.178 435.623 102.657 435.623 105.864C435.623 107.672 436.235 109.218 437.46 110.501C438.685 111.784 441.134 113.067 444.809 114.351C448.541 115.634 454.082 117.208 461.431 119.074C468.954 120.999 474.961 123.215 479.452 125.723C484.001 128.172 487.267 131.118 489.25 134.559C491.291 138 492.312 142.17 492.312 147.069C492.312 156.576 488.842 164.041 481.901 169.465C475.019 174.889 465.484 177.601 453.295 177.601C441.63 177.601 432.153 174.977 424.862 169.728C417.572 164.479 413.14 157.1 411.565 147.594L433.086 144.27C434.194 148.935 436.644 152.609 440.435 155.292C444.226 157.975 449.008 159.316 454.782 159.316C459.856 159.316 463.764 158.325 466.505 156.342C469.304 154.301 470.704 151.53 470.704 148.031C470.704 145.873 470.179 144.153 469.129 142.87C468.137 141.529 465.921 140.245 462.48 139.021C459.039 137.796 453.761 136.25 446.646 134.384C438.714 132.284 432.415 130.039 427.749 127.647C423.084 125.198 419.73 122.312 417.688 118.987C415.647 115.663 414.627 111.638 414.627 106.914C414.627 101.024 416.173 95.8908 419.264 91.5166C422.355 87.1426 426.67 83.7889 432.211 81.4561C437.752 79.0648 444.284 77.8701 451.808 77.8701ZM642.225 77.8701C651.731 77.8701 660.013 79.9983 667.07 84.2559C674.127 88.5134 679.609 94.4042 683.517 101.928C687.424 109.393 689.378 117.996 689.378 127.735C689.378 137.533 687.396 146.194 683.43 153.718C679.522 161.183 674.039 167.044 666.982 171.302C659.925 175.501 651.673 177.601 642.225 177.601C632.776 177.601 624.524 175.472 617.467 171.215C610.41 166.957 604.928 161.095 601.021 153.63C597.171 146.106 595.246 137.475 595.246 127.735C595.246 117.821 597.229 109.13 601.195 101.665C605.161 94.1999 610.673 88.3671 617.729 84.168C624.786 79.9689 632.952 77.8702 642.225 77.8701ZM924.667 77.8701C934.465 77.8702 942.776 80.1738 949.6 84.7812C956.481 89.3303 961.585 95.7744 964.909 104.114C968.234 112.454 969.487 122.282 968.671 133.597H900.287C900.995 140.381 902.997 145.834 906.295 149.956C910.494 155.205 916.619 157.829 924.667 157.829C929.857 157.829 934.319 156.692 938.052 154.418C941.843 152.085 944.759 148.731 946.8 144.357L967.621 150.656C964.005 159.171 958.406 165.791 950.824 170.515C943.301 175.239 934.99 177.601 925.892 177.601C916.327 177.601 907.928 175.53 900.696 171.39C893.464 167.249 887.807 161.504 883.725 154.155C879.7 146.807 877.688 138.35 877.688 128.785C877.688 118.462 879.671 109.51 883.637 101.928C887.603 94.2875 893.114 88.3672 900.171 84.168C907.228 79.9688 915.394 77.8701 924.667 77.8701ZM281.084 174.977H260V49H281.084V174.977ZM356.805 77.7822C363.803 77.7822 369.577 78.9485 374.126 81.2812C378.675 83.6141 382.292 86.5891 384.975 90.2051C387.657 93.821 389.64 97.6705 390.923 101.753C392.206 105.835 393.023 109.714 393.373 113.388C393.781 117.004 393.985 119.949 393.985 122.224V174.977H372.639V129.485C372.639 126.511 372.435 123.216 372.026 119.6C371.618 115.984 370.656 112.513 369.14 109.188C367.682 105.806 365.465 103.036 362.491 100.878C359.575 98.72 355.608 97.6406 350.593 97.6406C347.91 97.6407 345.256 98.0783 342.632 98.9531C340.007 99.828 337.617 101.345 335.459 103.503C333.359 105.603 331.668 108.518 330.385 112.251C329.102 115.925 328.46 120.649 328.46 126.423V174.977H307.114V80.4941H325.923V90.9775C328.334 88.1488 331.163 85.7038 334.409 83.6436C340.475 79.7361 347.94 77.7822 356.805 77.7822ZM587.322 70.084H532.558V101.49H576.824V122.486H532.558V174.977H511.474V49H587.322V70.084ZM753.183 80.1445C756.157 79.9113 759.044 80.0276 761.843 80.4941V100.178C759.043 99.3614 755.807 99.0991 752.133 99.3906C748.517 99.6822 745.25 100.702 742.334 102.452C739.418 104.027 737.027 106.04 735.161 108.489C733.353 110.939 732.012 113.738 731.137 116.888C730.262 119.979 729.824 123.332 729.824 126.948V174.977H708.653V80.4941H727.287V95.5869C727.998 94.3174 728.785 93.1061 729.649 91.9541C731.632 89.3297 733.994 87.1718 736.735 85.4805C739.068 83.9059 741.634 82.6815 744.434 81.8066C747.291 80.8735 750.208 80.3195 753.183 80.1445ZM816.938 96.7656C811.28 96.7656 806.615 98.1656 802.94 100.965C799.266 103.706 796.554 107.439 794.805 112.163C793.055 116.829 792.18 122.02 792.18 127.735C792.18 133.509 793.025 138.758 794.717 143.482C796.466 148.148 799.12 151.852 802.678 154.593C806.235 157.334 810.755 158.704 816.237 158.704C821.894 158.704 826.444 157.421 829.885 154.855C833.384 152.231 835.921 148.586 837.496 143.92C839.129 139.254 839.945 133.859 839.945 127.735C839.945 121.553 839.129 116.158 837.496 111.551C835.921 106.885 833.442 103.269 830.06 100.703C826.677 98.0787 822.303 96.7656 816.938 96.7656ZM642.225 97.6406C636.567 97.6407 631.902 98.9241 628.228 101.49C624.612 103.998 621.928 107.526 620.179 112.075C618.429 116.566 617.555 121.786 617.555 127.735C617.555 136.892 619.625 144.211 623.766 149.693C627.965 155.117 634.118 157.829 642.225 157.829C650.623 157.829 656.864 155.03 660.946 149.431C665.029 143.832 667.07 136.6 667.07 127.735C667.07 118.579 664.999 111.288 660.858 105.864C656.718 100.382 650.506 97.6406 642.225 97.6406ZM925.541 96.3291C916.91 96.3292 910.494 99.0114 906.295 104.377C903.597 107.786 901.767 112.219 900.803 117.675H947.27C946.508 111.524 944.865 106.771 942.338 103.415C938.78 98.6909 933.181 96.3291 925.541 96.3291Z" fill="black"/>
5
+ <defs>
6
+ <linearGradient id="paint0_linear_1_48" x1="22.3955" y1="23.0754" x2="292.628" y2="116.332" gradientUnits="userSpaceOnUse">
7
+ <stop/>
8
+ <stop offset="1" stop-opacity="0.4"/>
9
+ </linearGradient>
10
+ <linearGradient id="paint1_linear_1_48" x1="309.006" y1="103.841" x2="130.001" y2="103.841" gradientUnits="userSpaceOnUse">
11
+ <stop/>
12
+ <stop offset="1" stop-opacity="0.4"/>
13
+ </linearGradient>
14
+ </defs>
15
+ </svg>
@@ -0,0 +1,10 @@
1
+ <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_1767_22960)">
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M17.9583 8.33745C18.1664 7.72052 18.2385 7.06587 18.1698 6.41843C18.101 5.77099 17.893 5.14609 17.56 4.58662C16.5458 2.84495 14.5083 1.94829 12.5183 2.36995C12.0776 1.88195 11.5385 1.4928 10.9365 1.22809C10.3346 0.963375 9.68341 0.829109 9.02584 0.83412C6.99167 0.829953 5.18667 2.12245 4.56084 4.03245C3.91755 4.16123 3.309 4.42531 2.77554 4.80719C2.24209 5.18907 1.79594 5.68001 1.46667 6.24745C0.968989 7.09267 0.756288 8.07553 0.859976 9.05089C0.963665 10.0263 1.37825 10.9424 2.04251 11.6641C1.83418 12.2811 1.76184 12.9359 1.83046 13.5835C1.89907 14.2311 2.10701 14.8561 2.44001 15.4158C3.45417 17.1575 5.49167 18.0533 7.48167 17.6325C7.92228 18.1204 8.46125 18.5094 9.06307 18.774C9.6649 19.0386 10.3159 19.1727 10.9733 19.1675C13.0092 19.1725 14.815 17.8791 15.4408 15.9675C16.0846 15.8387 16.6935 15.5745 17.2273 15.1923C17.7611 14.8101 18.2074 14.3187 18.5367 13.7508C19.0334 12.9056 19.2454 11.9232 19.1414 10.9484C19.0375 9.97359 18.623 9.05799 17.9592 8.33662L17.9583 8.33745ZM10.9742 17.9691C10.1613 17.9711 9.37317 17.69 8.74501 17.1741C8.77334 17.1591 8.82251 17.1325 8.85501 17.1125L12.555 15.0041C12.6473 14.9526 12.7242 14.8772 12.7775 14.7859C12.8309 14.6946 12.8588 14.5907 12.8583 14.485V9.33829L14.4225 10.2291C14.4392 10.2375 14.45 10.2533 14.4525 10.2708V14.5333C14.45 16.4283 12.8942 17.965 10.9742 17.9691ZM3.49334 14.8175C3.08553 14.1238 2.93839 13.3074 3.07834 12.515C3.10501 12.5316 3.15334 12.5608 3.18751 12.58L6.88751 14.6883C7.07501 14.7966 7.30751 14.7966 7.49584 14.6883L12.0125 12.115V13.8966C12.0129 13.9058 12.011 13.9149 12.0071 13.9231C12.0032 13.9314 11.9973 13.9386 11.99 13.9441L8.25001 16.0741C6.58417 17.0208 4.45667 16.4575 3.49417 14.8158L3.49334 14.8175ZM2.51917 6.84745C2.92858 6.14912 3.56999 5.61653 4.33167 5.34245L4.33001 5.46829V9.68495C4.3295 9.79082 4.35737 9.8949 4.41071 9.98635C4.46406 10.0778 4.54093 10.1533 4.63334 10.205L9.15001 12.7775L7.58667 13.6691C7.57894 13.6741 7.5701 13.6771 7.56095 13.6778C7.55179 13.6785 7.54259 13.677 7.53417 13.6733L3.79334 11.5408C2.13084 10.5908 1.56084 8.49245 2.51834 6.84912L2.51917 6.84745ZM15.3667 9.79745L10.85 7.22412L12.4133 6.33412C12.421 6.32902 12.4298 6.3259 12.439 6.32503C12.4481 6.32416 12.4574 6.32556 12.4658 6.32912L16.2067 8.45995C17.8717 9.40995 18.4425 11.5116 17.4808 13.1541C17.0711 13.852 16.4302 14.3847 15.6692 14.66V10.3175C15.6697 10.2118 15.6419 10.1079 15.5887 10.0166C15.5355 9.92531 15.4589 9.84993 15.3667 9.79829V9.79745ZM16.9225 7.48662C16.8861 7.46449 16.8494 7.44282 16.8125 7.42162L13.1125 5.31329C13.0201 5.26013 12.9154 5.23215 12.8088 5.23215C12.7022 5.23215 12.5974 5.26013 12.505 5.31329L7.98834 7.88662V6.10495C7.98798 6.09581 7.98983 6.08671 7.99375 6.07844C7.99767 6.07016 8.00353 6.06296 8.01084 6.05745L11.75 3.92829C13.4167 2.98079 15.5458 3.54495 16.5058 5.18912C16.9117 5.88329 17.06 6.69662 16.9225 7.48662ZM7.13834 10.6616L5.57417 9.77162C5.56601 9.76762 5.55898 9.76163 5.55374 9.75421C5.54849 9.74678 5.54521 9.73815 5.54417 9.72912V5.46662C5.54501 3.56912 7.10501 2.03162 9.02834 2.03329C9.84167 2.03329 10.6283 2.31495 11.2542 2.82829C11.2258 2.84329 11.1775 2.86995 11.145 2.88912L7.44501 4.99745C7.35251 5.04888 7.2755 5.12417 7.222 5.21548C7.1685 5.3068 7.14047 5.41079 7.14084 5.51662L7.13834 10.6608V10.6616ZM7.98834 8.85495L10 7.70912L12.0117 8.85495V11.1466L10 12.2925L7.98751 11.1466V8.85495H7.98834Z" fill="currentColor"/>
4
+ </g>
5
+ <defs>
6
+ <clipPath id="clip0_1767_22960">
7
+ <rect width="20" height="20" fill="currentColor"/>
8
+ </clipPath>
9
+ </defs>
10
+ </svg>
@@ -0,0 +1,9 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2
+ <rect x="-4" y="-5" width="32" height="32" fill="url(#pattern0_1018_35627)"/>
3
+ <defs>
4
+ <pattern id="pattern0_1018_35627" patternContentUnits="objectBoundingBox" width="1" height="1">
5
+ <use xlink:href="#image0_1018_35627" transform="scale(0.005)"/>
6
+ </pattern>
7
+ <image id="image0_1018_35627" width="200" height="200" preserveAspectRatio="none" xlink:href="data:image/png;base64,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fa9cLn8MwFXsbqhlzszM/K0kSbyQigaDoihysVh8GLvsRVRVPTU8PBy16xP1vVgsNhIKhWaxyySZnp6+n70IDZRSqfRBdP4QqDM5Nu6XJOlcIpFItaoS9T9VVaVqtfr32PzhUmdydCRJuVx+WJZlXlRFg8Pv9/sSicR3sYteBMDldDo9Zdel7nHrcswsLCws6rp+ryRJb2H7a9nt+0O6rv+dqqq8qIoGhyzLQq1W+yRufJR9oxcZHx+v2HWJBoKmaW7DMB7HLoZaExMTj/HSXBo4Y2Nj4x6P5zS2TxL7vqVcLnf7RkWiQaAoijA9PX0HgCXsMNQaGxv7Di/NpYHjcrmUfD7/FezciyyXy+WPblQkGhTxeDzh9/vtHwTdNklGRkae1TSNv51Og6dSqfwGmkOtrZLEHn7Vq9UqL6qiweN2u+Vqtdr+NabOJFkHYAWDwR/ruq5v1iQaEMFgMBCLxZ5GW0K0hZ00y6VS6a7NWkQDJJvN1gRBmENnUmwMsQBYfr//2y6XS2mrRtvg6dB9RlEU0TCM97tcrl8XRVGxLMu0LKuBZsKg0WjU6/X6c6dPn/6+aZqWozo5MEH6lKIoIrZYv5ZlWevr61udv0VEREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREQ06P4fFV6xYjbCfaIAAAAASUVORK5CYII="/>
8
+ </defs>
9
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="28" height="21" viewBox="0 0 28 21" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M28 20.9645H3.99933V16.9675H0V0.966675H28V20.9645ZM3.99933 16.9675H24.0007V4.96484H3.99933V16.9675ZM14.0012 10.9055L11.172 13.7335L8.344 10.9055L11.172 8.07751L14.0012 10.9055ZM22.001 10.9043L19.173 13.7312L16.3438 10.9043L19.173 8.07517L22.001 10.9043Z" fill="#32F08C"/>
3
+ </svg>
@@ -0,0 +1,10 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_1018_35613)">
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M20.835 6.753H20.664C20.4485 6.75369 20.2352 6.79685 20.0364 6.88001C19.8375 6.96317 19.657 7.0847 19.5052 7.23766C19.3533 7.39062 19.2331 7.572 19.1514 7.77144C19.0697 7.97088 19.0281 8.18447 19.029 8.4V12.084C19.029 12.819 18.426 13.4152 17.709 13.4152C17.4921 13.4134 17.2788 13.3598 17.0868 13.259C16.8948 13.1581 16.7297 13.013 16.605 12.8355L12.876 7.4625C12.7244 7.24261 12.5216 7.06287 12.2852 6.93875C12.0487 6.81463 11.7856 6.74986 11.5185 6.75C10.668 6.75 9.903 7.479 9.903 8.37975V12.0848C9.903 12.8198 9.30525 13.416 8.583 13.416C8.1555 13.416 7.731 13.1992 7.479 12.8362L3.306 6.8235C3.2115 6.6885 3 6.75525 3 6.921V10.134C3 10.296 3.0495 10.4535 3.141 10.587L7.24725 16.5037C7.49025 16.8532 7.84725 17.1128 8.2605 17.2073C9.29325 17.4443 10.2443 16.6418 10.2443 15.6195V11.9175C10.2443 11.1825 10.8345 10.5863 11.5642 10.5863H11.5658C12.0052 10.5863 12.417 10.8022 12.6698 11.166L16.3988 16.5382C16.5481 16.7603 16.7504 16.9418 16.9874 17.0662C17.2244 17.1905 17.4886 17.254 17.7562 17.2507C18.6247 17.2507 19.3695 16.521 19.3695 15.621V11.9168C19.3695 11.1818 19.9598 10.5855 20.6895 10.5855H20.835C20.9265 10.5855 21 10.5105 21 10.419V6.91875C21.0001 6.89698 20.9959 6.87541 20.9877 6.85526C20.9794 6.83512 20.9673 6.81679 20.952 6.80133C20.9367 6.78587 20.9184 6.77357 20.8984 6.76515C20.8783 6.75673 20.8568 6.75235 20.835 6.75225V6.753Z" fill="currentColor"/>
4
+ </g>
5
+ <defs>
6
+ <clipPath id="clip0_1018_35613">
7
+ <rect width="18" height="18" fill="white" transform="translate(3 3)"/>
8
+ </clipPath>
9
+ </defs>
10
+ </svg>
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ import { Button, ButtonProps } from '@/components/radix/Button';
3
+ import { Loader2 } from 'lucide-react';
4
+
5
+ interface ButtonWithLoadingProps extends ButtonProps {
6
+ loading?: boolean;
7
+ icon?: React.ComponentType<{ className?: string }>;
8
+ }
9
+
10
+ export function ButtonWithLoading({
11
+ loading = false,
12
+ icon: Icon,
13
+ children,
14
+ disabled,
15
+ ...props
16
+ }: ButtonWithLoadingProps) {
17
+ return (
18
+ <Button disabled={disabled || loading} {...props}>
19
+ {loading ? (
20
+ <Loader2 className="mr-2 h-4 w-4 animate-spin" />
21
+ ) : Icon ? (
22
+ <Icon className="mr-2 h-4 w-4" />
23
+ ) : null}
24
+ {children}
25
+ </Button>
26
+ );
27
+ }
@@ -0,0 +1,61 @@
1
+ import { cn } from '@/lib/utils/utils';
2
+ import { useTheme } from '@/lib/contexts/ThemeContext';
3
+ import CheckboxCheckedIcon from '@/assets/icons/checkbox_checked.svg?react';
4
+ import CheckboxUndeterminedIcon from '@/assets/icons/checkbox_undetermined.svg?react';
5
+
6
+ // Checkbox component with custom design
7
+ interface CheckboxProps {
8
+ checked: boolean;
9
+ indeterminate?: boolean;
10
+ onChange: (checked: boolean) => void;
11
+ disabled?: boolean;
12
+ className?: string;
13
+ tabIndex?: number;
14
+ }
15
+
16
+ export function Checkbox({
17
+ checked,
18
+ indeterminate = false,
19
+ onChange,
20
+ disabled = false,
21
+ className,
22
+ tabIndex,
23
+ }: CheckboxProps) {
24
+ const { resolvedTheme } = useTheme();
25
+ const showIcon = checked || indeterminate;
26
+
27
+ return (
28
+ <div className="w-full h-full flex items-center justify-center">
29
+ <div className="relative grid place-items-center">
30
+ {/* Native checkbox (visually hidden but accessible) */}
31
+ <input
32
+ type="checkbox"
33
+ className={cn(
34
+ 'w-4 h-4 bg-white dark:bg-neutral-700 rounded appearance-none border border-zinc-200 dark:border-neutral-600 shadow-[0px_2px_1px_0px_rgba(0,0,0,0.1)] cursor-pointer row-start-1 col-start-1 disabled:cursor-not-allowed disabled:opacity-50',
35
+ className
36
+ )}
37
+ checked={indeterminate ? false : checked}
38
+ onChange={(e) => onChange(e.target.checked)}
39
+ tabIndex={tabIndex}
40
+ disabled={disabled}
41
+ />
42
+
43
+ {/* Overlay icon with dynamic background and text color */}
44
+ {showIcon && (
45
+ <div
46
+ className={cn(
47
+ 'mx-auto w-4 h-4 rounded row-start-1 col-start-1 pointer-events-none',
48
+ resolvedTheme === 'light' ? 'bg-black text-white' : 'bg-white text-black'
49
+ )}
50
+ >
51
+ {indeterminate ? (
52
+ <CheckboxUndeterminedIcon className="w-full h-full" />
53
+ ) : (
54
+ <CheckboxCheckedIcon className="w-full h-full" />
55
+ )}
56
+ </div>
57
+ )}
58
+ </div>
59
+ </div>
60
+ );
61
+ }
@@ -0,0 +1,32 @@
1
+ import { cn } from '@/lib/utils/utils';
2
+ import { CopyButton } from './CopyButton';
3
+
4
+ interface CodeBlockProps {
5
+ code: string;
6
+ className?: string;
7
+ showCopy?: boolean;
8
+ onCopy?: (code: string) => void;
9
+ buttonClassName?: string;
10
+ }
11
+
12
+ export function CodeBlock({
13
+ code,
14
+ className,
15
+ showCopy = true,
16
+ onCopy,
17
+ buttonClassName,
18
+ }: CodeBlockProps) {
19
+ return (
20
+ <div
21
+ className={cn(
22
+ 'bg-slate-50 dark:bg-neutral-800 py-4 px-6 flex items-center justify-between text-zinc-950 dark:text-neutral-300 font-mono text-sm break-all font-semibold',
23
+ className
24
+ )}
25
+ >
26
+ <div className="flex-1 max-w-4/5">
27
+ <code>{code}</code>
28
+ </div>
29
+ {showCopy && <CopyButton text={code} onCopy={onCopy} className={buttonClassName} />}
30
+ </div>
31
+ );
32
+ }