@tanstack/cta-ui 0.10.0-alpha.24 → 0.10.0-alpha.27

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 (80) hide show
  1. package/README.md +20 -0
  2. package/dist/assets/index-DSKioOfX.css +1 -0
  3. package/dist/assets/index-DWTDdndE.js +213 -0
  4. package/dist/assets/index-DWTDdndE.js.map +1 -0
  5. package/dist/favicon.ico +0 -0
  6. package/dist/index.html +19 -0
  7. package/dist/logo-color-100w.png +0 -0
  8. package/dist/logo192.png +0 -0
  9. package/dist/logo512.png +0 -0
  10. package/dist/manifest.json +25 -0
  11. package/dist/robots.txt +3 -0
  12. package/dist/tailwind.svg +1 -0
  13. package/dist/tanstack.png +0 -0
  14. package/dist/typescript.svg +1 -0
  15. package/index.html +18 -0
  16. package/lib/engine-handling/add-to-app-wrapper.ts +134 -0
  17. package/{src → lib}/engine-handling/create-app-wrapper.ts +48 -39
  18. package/{src → lib}/engine-handling/file-helpers.ts +4 -2
  19. package/{src → lib}/engine-handling/generate-initial-payload.ts +58 -51
  20. package/lib/engine-handling/server-environment.ts +37 -0
  21. package/lib/index.ts +150 -34
  22. package/lib/types.d.ts +20 -0
  23. package/lib-dist/engine-handling/add-to-app-wrapper.d.ts +14 -0
  24. package/lib-dist/engine-handling/add-to-app-wrapper.js +78 -0
  25. package/lib-dist/engine-handling/create-app-wrapper.d.ts +14 -0
  26. package/lib-dist/engine-handling/create-app-wrapper.js +70 -0
  27. package/lib-dist/engine-handling/file-helpers.d.ts +2 -0
  28. package/lib-dist/engine-handling/file-helpers.js +21 -0
  29. package/lib-dist/engine-handling/framework-registration.d.ts +1 -0
  30. package/lib-dist/engine-handling/framework-registration.js +10 -0
  31. package/lib-dist/engine-handling/generate-initial-payload.d.ts +32 -0
  32. package/lib-dist/engine-handling/generate-initial-payload.js +88 -0
  33. package/lib-dist/engine-handling/server-environment.d.ts +17 -0
  34. package/lib-dist/engine-handling/server-environment.js +18 -0
  35. package/lib-dist/index.d.ts +5 -7
  36. package/lib-dist/index.js +124 -18
  37. package/package.json +12 -12
  38. package/public/logo-color-100w.png +0 -0
  39. package/src/components/background-animation.tsx +229 -0
  40. package/src/components/cta-sidebar.tsx +28 -33
  41. package/src/components/file-navigator.tsx +72 -74
  42. package/src/components/header.tsx +31 -0
  43. package/src/components/sidebar-items/add-ons.tsx +48 -45
  44. package/src/components/sidebar-items/mode-selector.tsx +6 -4
  45. package/src/components/sidebar-items/project-name.tsx +4 -5
  46. package/src/components/sidebar-items/typescript-switch.tsx +3 -3
  47. package/src/components/startup-dialog.tsx +4 -6
  48. package/src/components/ui/switch.tsx +6 -6
  49. package/src/hooks/use-mounted.ts +9 -0
  50. package/src/hooks/use-preferred-reduced-motion.ts +27 -0
  51. package/src/index.tsx +48 -0
  52. package/src/lib/api.ts +10 -8
  53. package/src/main.tsx +12 -0
  54. package/src/store/project.ts +36 -20
  55. package/src/styles.css +90 -18
  56. package/src/types.d.ts +1 -1
  57. package/tailwind.config.cjs +47 -0
  58. package/vite.config.ts +16 -0
  59. package/app.config.js +0 -22
  60. package/src/api.ts +0 -6
  61. package/src/client.tsx +0 -8
  62. package/src/engine-handling/add-to-app-wrapper.ts +0 -114
  63. package/src/engine-handling/server-environment.ts +0 -30
  64. package/src/integrations/tanstack-query/layout.tsx +0 -5
  65. package/src/integrations/tanstack-query/root-provider.tsx +0 -15
  66. package/src/logo.svg +0 -44
  67. package/src/routeTree.gen.ts +0 -88
  68. package/src/router.tsx +0 -32
  69. package/src/routes/__root.tsx +0 -86
  70. package/src/routes/api/add-to-app.ts +0 -21
  71. package/src/routes/api/create-app.ts +0 -21
  72. package/src/routes/api/dry-run-add-to-app.ts +0 -16
  73. package/src/routes/api/dry-run-create-app.ts +0 -16
  74. package/src/routes/api/initial-payload.ts +0 -10
  75. package/src/routes/api/load-remote-add-on.ts +0 -42
  76. package/src/routes/api/load-starter.ts +0 -47
  77. package/src/routes/api/shutdown.ts +0 -11
  78. package/src/routes/index.tsx +0 -17
  79. package/src/ssr.tsx +0 -12
  80. /package/{src → lib}/engine-handling/framework-registration.ts +0 -0
@@ -1,4 +1,4 @@
1
- import { useCallback, useMemo } from 'react'
1
+ import { useCallback, useEffect, useMemo } from 'react'
2
2
  import { create } from 'zustand'
3
3
  import { persist } from 'zustand/middleware'
4
4
  import { useQuery } from '@tanstack/react-query'
@@ -10,6 +10,18 @@ import type { Mode, SerializedOptions } from '@tanstack/cta-engine'
10
10
  import type { AddOnInfo, DryRunOutput, StarterInfo } from '@/types.js'
11
11
  import { dryRunAddToApp, dryRunCreateApp, loadInitialData } from '@/lib/api'
12
12
 
13
+ export const useProjectOptions = create<SerializedOptions>(() => ({
14
+ framework: 'react-cra',
15
+ mode: 'file-router',
16
+ projectName: 'my-app',
17
+ targetDir: 'my-app',
18
+ typescript: true,
19
+ tailwind: true,
20
+ git: true,
21
+ chosenAddOns: [],
22
+ packageManager: 'pnpm',
23
+ }))
24
+
13
25
  const useInitialData = () =>
14
26
  useQuery({
15
27
  queryKey: ['initial-data'],
@@ -18,8 +30,8 @@ const useInitialData = () =>
18
30
  options: {
19
31
  framework: 'react-cra',
20
32
  mode: 'file-router',
21
- projectName: 'my-application',
22
- targetDir: 'my-application',
33
+ projectName: 'my-app',
34
+ targetDir: 'my-app',
23
35
  typescript: true,
24
36
  tailwind: true,
25
37
  git: true,
@@ -50,8 +62,8 @@ export const useRegistry = () => useInitialData().data.registry
50
62
 
51
63
  export const useProjectLocalFiles = () => useInitialData().data.localFiles
52
64
  export const useOriginalOutput = () => useInitialData().data.output
53
- export const useOriginalSelectedAddOns = () =>
54
- useInitialData().data.options.chosenAddOns
65
+ export const useOriginalOptions = () => useInitialData().data.options
66
+ export const useOriginalSelectedAddOns = () => useOriginalOptions().chosenAddOns
55
67
  export const useApplicationMode = () => useInitialData().data.applicationMode
56
68
  export const useReady = () => useInitialData().isFetched
57
69
  export const useCodeRouterAddOns = () =>
@@ -59,18 +71,6 @@ export const useCodeRouterAddOns = () =>
59
71
  export const useFileRouterAddOns = () =>
60
72
  useInitialData().data.addOns['file-router']
61
73
 
62
- export const useProjectOptions = create<SerializedOptions>(() => ({
63
- framework: 'react-cra',
64
- mode: 'file-router',
65
- projectName: 'my-app',
66
- targetDir: 'my-app',
67
- typescript: true,
68
- tailwind: true,
69
- git: true,
70
- chosenAddOns: [],
71
- packageManager: 'pnpm',
72
- }))
73
-
74
74
  const useApplicationSettings = create<{
75
75
  includeFiles: Array<string>
76
76
  }>(() => ({
@@ -128,7 +128,7 @@ export function useAddOns() {
128
128
  for (const addOn of originalSelectedAddOns) {
129
129
  originalAddOns.add(addOn)
130
130
  }
131
- for (const addOn of forcedAddOns) {
131
+ for (const addOn of forcedAddOns || []) {
132
132
  originalAddOns.add(addOn)
133
133
  }
134
134
  return getAddOnStatus(
@@ -148,7 +148,7 @@ export function useAddOns() {
148
148
  const addOns = new Set(
149
149
  Object.keys(addOnState).filter((addOn) => addOnState[addOn].selected),
150
150
  )
151
- for (const addOn of forcedAddOns) {
151
+ for (const addOn of forcedAddOns || []) {
152
152
  addOns.add(addOn)
153
153
  }
154
154
  return Array.from(addOns)
@@ -156,7 +156,7 @@ export function useAddOns() {
156
156
 
157
157
  const toggleAddOn = useCallback(
158
158
  (addOnId: string) => {
159
- if (addOnState[addOnId] && addOnState[addOnId].enabled) {
159
+ if (addOnState[addOnId].enabled) {
160
160
  if (addOnState[addOnId].selected) {
161
161
  useMutableAddOns.setState((state) => ({
162
162
  userSelectedAddOns: state.userSelectedAddOns.filter(
@@ -328,4 +328,20 @@ export function setProjectStarter(starter: StarterInfo | undefined) {
328
328
  useProjectStarter.setState(() => ({
329
329
  projectStarter: starter,
330
330
  }))
331
+ if (starter) {
332
+ useProjectOptions.setState({
333
+ mode: starter.mode,
334
+ })
335
+ }
336
+ }
337
+
338
+ export function useManager() {
339
+ const ready = useReady()
340
+ const originalOptions = useOriginalOptions()
341
+
342
+ useEffect(() => {
343
+ if (ready) {
344
+ useProjectOptions.setState(originalOptions)
345
+ }
346
+ }, [ready])
331
347
  }
package/src/styles.css CHANGED
@@ -1,23 +1,38 @@
1
1
  @import 'tailwindcss';
2
+ @layer theme, base, components, utilities;
2
3
 
3
4
  @plugin "tailwindcss-animate";
4
5
 
5
6
  @source inline("bg-green-500");
6
7
 
7
- @custom-variant dark (&:is(.dark *));
8
+ @custom-variant dark (&:where(.dark, .dark *));
8
9
 
9
10
  body {
10
11
  @apply m-0;
11
12
  font-family:
12
- -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu',
13
- 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
13
+ 'Inter',
14
+ ui-sans-serif,
15
+ system-ui,
16
+ sans-serif,
17
+ 'Apple Color Emoji',
18
+ 'Segoe UI Emoji',
19
+ Segoe UI Symbol,
20
+ 'Noto Color Emoji';
14
21
  -webkit-font-smoothing: antialiased;
15
22
  -moz-osx-font-smoothing: grayscale;
16
23
  }
17
24
 
18
25
  code {
26
+ font-size: 12px;
19
27
  font-family:
20
- source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace;
28
+ 'JetBrains Mono',
29
+ Menlo,
30
+ Monaco,
31
+ Consolas,
32
+ monospace,
33
+ Courier New;
34
+ white-space: pre;
35
+ -webkit-overflow-scrolling: touch;
21
36
  }
22
37
 
23
38
  :root {
@@ -57,7 +72,7 @@ code {
57
72
  }
58
73
 
59
74
  .dark {
60
- --background: oklch(0.141 0.005 285.823);
75
+ --background: rgb(3, 7, 18);
61
76
  --foreground: oklch(0.985 0 0);
62
77
  --card: oklch(0.141 0.005 285.823);
63
78
  --card-foreground: oklch(0.985 0 0);
@@ -155,25 +170,74 @@ code {
155
170
  }
156
171
 
157
172
  @layer base {
173
+ html,
174
+ body {
175
+ @apply text-gray-900 bg-gray-50 dark:bg-black dark:text-gray-200;
176
+ background: rgb(3, 7, 18);
177
+ }
178
+
179
+ .using-mouse * {
180
+ outline: none !important;
181
+ }
182
+
158
183
  * {
159
- @apply border-border outline-ring/50;
184
+ scrollbar-color: theme(colors.gray.400) theme(colors.gray.100);
160
185
  }
161
- body {
162
- @apply bg-background text-foreground;
186
+
187
+ *::-webkit-scrollbar,
188
+ * scrollbar {
189
+ width: 1rem;
190
+ height: 1rem;
163
191
  }
164
- }
165
192
 
166
- [data-sidebar='group'] {
167
- background-color: hsl(240 5.9% 6%) !important;
168
- @apply mb-2 rounded-lg inset-shadow-gray-600 inset-shadow-sm;
169
- }
193
+ *::-webkit-scrollbar-track,
194
+ * scrollbar-track {
195
+ background: theme(colors.gray.100);
196
+ }
170
197
 
171
- [data-sidebar='content'] {
172
- @apply p-2 pt-5;
173
- }
198
+ *::-webkit-scrollbar-thumb,
199
+ * scrollbar-thumb {
200
+ background: theme(colors.gray.300);
201
+ border-radius: 0.5rem;
202
+ border: 3px solid theme(colors.gray.100);
203
+ }
174
204
 
175
- [data-sidebar='header'] {
176
- @apply shadow-gray-700 shadow-md z-50;
205
+ html.dark {
206
+ &,
207
+ * {
208
+ color-scheme: dark;
209
+ }
210
+
211
+ &,
212
+ * {
213
+ scrollbar-color: theme(colors.gray.700) theme(colors.gray.800);
214
+ }
215
+
216
+ &::-webkit-scrollbar,
217
+ *::-webkit-scrollbar,
218
+ * scrollbar {
219
+ width: 1rem;
220
+ height: 1rem;
221
+ }
222
+
223
+ & *::-webkit-scrollbar-track,
224
+ *::-webkit-scrollbar-track,
225
+ * scrollbar-track {
226
+ background: theme(colors.gray.800);
227
+ }
228
+
229
+ &::-webkit-scrollbar-thumb,
230
+ *::-webkit-scrollbar-thumb,
231
+ * scrollbar-thumb {
232
+ background: theme(colors.gray.600);
233
+ border-radius: 0.5rem;
234
+ border: 3px solid theme(colors.gray.800);
235
+ }
236
+ }
237
+
238
+ [disabled] {
239
+ @apply opacity-50 pointer-events-none;
240
+ }
177
241
  }
178
242
 
179
243
  .cm-changedLine {
@@ -183,3 +247,11 @@ code {
183
247
  .file-filters {
184
248
  background-color: oklch(0.2 0.005 285.823);
185
249
  }
250
+
251
+ .font-black {
252
+ font-weight: 900;
253
+ }
254
+
255
+ .font-medium {
256
+ font-weight: 800;
257
+ }
package/src/types.d.ts CHANGED
@@ -80,7 +80,7 @@ export type InitialData = {
80
80
  applicationMode: ApplicationMode
81
81
  forcedRouterMode?: Mode
82
82
  forcedAddOns?: Array<string>
83
- registry: Registry | undefined
83
+ registry?: Registry | undefined
84
84
  }
85
85
 
86
86
  export type EventItem = {
@@ -0,0 +1,47 @@
1
+ /** @type {import('tailwindcss').Config} */
2
+ module.exports = {
3
+ content: ['./src/**/*.{js,ts,jsx,tsx}', './index.html'],
4
+ plugins: [require('@tailwindcss/typography')],
5
+ darkMode: 'class',
6
+ theme: {
7
+ extend: {
8
+ fontFamily: {
9
+ sans: `"Inter", ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"`,
10
+ },
11
+ zIndex: {
12
+ '-10': '-10',
13
+ },
14
+ boxShadow: {
15
+ sm: '0 1px 2px 0 rgba(0, 0, 0, 0.03)',
16
+ DEFAULT:
17
+ '0 1px 3px 0 rgba(0, 0, 0, 0.05), 0 1px 2px 0 rgba(0, 0, 0, 0.03)',
18
+ md: '0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03)',
19
+ lg: '0 10px 15px -3px rgba(0, 0, 0, 0.05), 0 4px 6px -2px rgba(0, 0, 0, 0.03)',
20
+ xl: '0 20px 25px -5px rgba(0, 0, 0, 0.05), 0 10px 10px -5px rgba(0, 0, 0, 0.02)',
21
+ '2xl': '0 25px 50px -12px rgba(0, 0, 0, 0.2)',
22
+ '3xl': '0 35px 60px -15px rgba(0, 0, 0, 0.25)',
23
+ inner: 'inset 0 2px 4px 0 rgba(0, 0, 0, 0.04)',
24
+ none: 'none',
25
+ },
26
+ aria: {
27
+ current: 'current="location"',
28
+ },
29
+ colors: {
30
+ twine: {
31
+ 50: '#f8f5ee',
32
+ 100: '#eee6d3',
33
+ 200: '#dfcda9',
34
+ 300: '#cdac77',
35
+ 400: '#bd9051',
36
+ 500: '#ae7d44',
37
+ 600: '#956339',
38
+ 700: '#784b30',
39
+ 800: '#653f2e',
40
+ 900: '#58362b',
41
+ 950: '#321c16',
42
+ },
43
+ discord: '#536bbd',
44
+ },
45
+ },
46
+ },
47
+ }
package/vite.config.ts ADDED
@@ -0,0 +1,16 @@
1
+ import { defineConfig } from 'vite'
2
+ import react from '@vitejs/plugin-react'
3
+ import tsconfigPaths from 'vite-tsconfig-paths'
4
+ import tailwind from '@tailwindcss/vite'
5
+
6
+ export default defineConfig({
7
+ plugins: [react(), tsconfigPaths(), tailwind()],
8
+ server: {
9
+ open: true,
10
+ port: 3000,
11
+ },
12
+ build: {
13
+ outDir: 'dist',
14
+ sourcemap: true,
15
+ },
16
+ })
package/app.config.js DELETED
@@ -1,22 +0,0 @@
1
- import { defineConfig } from '@tanstack/react-start/config'
2
- import viteTsConfigPaths from 'vite-tsconfig-paths'
3
- import tailwindcss from '@tailwindcss/vite'
4
-
5
- export default defineConfig({
6
- tsr: {
7
- appDirectory: 'src',
8
- },
9
- vite: {
10
- forceOptimizeDeps: true,
11
- plugins: [
12
- // this is the plugin that enables path aliases
13
- viteTsConfigPaths({
14
- projects: ['./tsconfig.json'],
15
- }),
16
- tailwindcss(),
17
- ],
18
- optimizeDeps: {
19
- exclude: [],
20
- },
21
- },
22
- })
package/src/api.ts DELETED
@@ -1,6 +0,0 @@
1
- import {
2
- createStartAPIHandler,
3
- defaultAPIFileRouteHandler,
4
- } from '@tanstack/react-start/api'
5
-
6
- export default createStartAPIHandler(defaultAPIFileRouteHandler)
package/src/client.tsx DELETED
@@ -1,8 +0,0 @@
1
- import { hydrateRoot } from 'react-dom/client'
2
- import { StartClient } from '@tanstack/react-start'
3
-
4
- import { createRouter } from './router'
5
-
6
- const router = createRouter()
7
-
8
- hydrateRoot(document, <StartClient router={router} />)
@@ -1,114 +0,0 @@
1
- import { readFileSync } from 'node:fs'
2
- import { resolve } from 'node:path'
3
-
4
- import {
5
- addToApp,
6
- createDefaultEnvironment,
7
- createMemoryEnvironment,
8
- recursivelyGatherFiles,
9
- } from '@tanstack/cta-engine'
10
-
11
- import { createAppWrapper } from './create-app-wrapper.js'
12
-
13
- import { getProjectPath } from '@/engine-handling/server-environment.js'
14
- import {
15
- cleanUpFileArray,
16
- cleanUpFiles,
17
- } from '@/engine-handling/file-helpers.js'
18
-
19
- export async function addToAppWrapper(
20
- addOns: Array<string>,
21
- opts: {
22
- dryRun?: boolean
23
- stream?: boolean
24
- },
25
- ) {
26
- const projectPath = getProjectPath()
27
-
28
- const persistedOptions = JSON.parse(
29
- readFileSync(resolve(projectPath, '.cta.json')),
30
- )
31
-
32
- const newAddons: Array<string> = []
33
- for (const addOn of addOns) {
34
- if (!persistedOptions.existingAddOns.includes(addOn)) {
35
- newAddons.push(addOn)
36
- }
37
- }
38
-
39
- if (newAddons.length === 0) {
40
- return await createAppWrapper(persistedOptions, opts)
41
- }
42
-
43
- async function createEnvironment() {
44
- if (opts.dryRun) {
45
- const { environment, output } = createMemoryEnvironment(projectPath)
46
- environment.writeFile(
47
- resolve(projectPath, '.cta.json'),
48
- JSON.stringify(persistedOptions, null, 2),
49
- )
50
-
51
- const localFiles = await cleanUpFiles(
52
- await recursivelyGatherFiles(projectPath, false),
53
- )
54
- for (const file of Object.keys(localFiles)) {
55
- environment.writeFile(resolve(projectPath, file), localFiles[file])
56
- }
57
- return { environment, output }
58
- }
59
- return {
60
- environment: createDefaultEnvironment(),
61
- output: { files: {}, deletedFiles: [], commands: [] },
62
- }
63
- }
64
-
65
- const { environment, output } = await createEnvironment()
66
-
67
- if (opts.stream) {
68
- return new ReadableStream({
69
- start(controller) {
70
- environment.startStep = ({ id, type, message }) => {
71
- controller.enqueue(
72
- new TextEncoder().encode(
73
- JSON.stringify({
74
- msgType: 'start',
75
- id,
76
- type,
77
- message,
78
- }) + '\n',
79
- ),
80
- )
81
- }
82
- environment.finishStep = (id, message) => {
83
- controller.enqueue(
84
- new TextEncoder().encode(
85
- JSON.stringify({
86
- msgType: 'finish',
87
- id,
88
- message,
89
- }) + '\n',
90
- ),
91
- )
92
- }
93
-
94
- environment.startRun()
95
- addToApp(environment, newAddons, projectPath, {
96
- forced: true,
97
- }).then(() => {
98
- environment.finishRun()
99
- controller.close()
100
- })
101
- },
102
- })
103
- } else {
104
- environment.startRun()
105
- await addToApp(environment, newAddons, projectPath, {
106
- forced: true,
107
- })
108
- environment.finishRun()
109
-
110
- output.files = cleanUpFiles(output.files, projectPath)
111
- output.deletedFiles = cleanUpFileArray(output.deletedFiles, projectPath)
112
- return output
113
- }
114
- }
@@ -1,30 +0,0 @@
1
- import type { Mode, SerializedOptions } from '@tanstack/cta-engine'
2
-
3
- export function getProjectPath(): string {
4
- return process.env.CTA_PROJECT_PATH!
5
- }
6
-
7
- export function getApplicationMode(): 'add' | 'setup' {
8
- return process.env.CTA_MODE as 'add' | 'setup'
9
- }
10
-
11
- export function getProjectOptions(): SerializedOptions {
12
- return JSON.parse(process.env.CTA_OPTIONS!)
13
- }
14
-
15
- export function getForcedRouterMode(): Mode | undefined {
16
- if (!process.env.CTA_FORCED_ROUTER_MODE) {
17
- return undefined
18
- }
19
- return process.env.CTA_FORCED_ROUTER_MODE as Mode
20
- }
21
-
22
- export function getForcedAddOns(): Array<string> | undefined {
23
- return (process.env.CTA_FORCED_ADD_ONS?.split(',') || []).filter(
24
- (addOn: string) => addOn !== '',
25
- )
26
- }
27
-
28
- export function getRegistry(): string | undefined {
29
- return process.env.CTA_REGISTRY
30
- }
@@ -1,5 +0,0 @@
1
- import { ReactQueryDevtools } from '@tanstack/react-query-devtools'
2
-
3
- export default function LayoutAddition() {
4
- return <ReactQueryDevtools buttonPosition="bottom-right" />
5
- }
@@ -1,15 +0,0 @@
1
- import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
2
-
3
- const queryClient = new QueryClient()
4
-
5
- export function getContext() {
6
- return {
7
- queryClient,
8
- }
9
- }
10
-
11
- export function Provider({ children }: { children: React.ReactNode }) {
12
- return (
13
- <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
14
- )
15
- }
package/src/logo.svg DELETED
@@ -1,44 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <svg id="Layer_1"
3
- xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 841.9 595.3">
4
- <!-- Generator: Adobe Illustrator 29.3.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 146) -->
5
- <defs>
6
- <style>
7
- .st0 {
8
- fill: #9ae7fc;
9
- }
10
-
11
- .st1 {
12
- fill: #61dafb;
13
- }
14
- </style>
15
- </defs>
16
- <g>
17
- <path class="st1" d="M666.3,296.5c0-32.5-40.7-63.3-103.1-82.4,14.4-63.6,8-114.2-20.2-130.4-6.5-3.8-14.1-5.6-22.4-5.6v22.3c4.6,0,8.3.9,11.4,2.6,13.6,7.8,19.5,37.5,14.9,75.7-1.1,9.4-2.9,19.3-5.1,29.4-19.6-4.8-41-8.5-63.5-10.9-13.5-18.5-27.5-35.3-41.6-50,32.6-30.3,63.2-46.9,84-46.9v-22.3c-27.5,0-63.5,19.6-99.9,53.6-36.4-33.8-72.4-53.2-99.9-53.2v22.3c20.7,0,51.4,16.5,84,46.6-14,14.7-28,31.4-41.3,49.9-22.6,2.4-44,6.1-63.6,11-2.3-10-4-19.7-5.2-29-4.7-38.2,1.1-67.9,14.6-75.8,3-1.8,6.9-2.6,11.5-2.6v-22.3c-8.4,0-16,1.8-22.6,5.6-28.1,16.2-34.4,66.7-19.9,130.1-62.2,19.2-102.7,49.9-102.7,82.3s40.7,63.3,103.1,82.4c-14.4,63.6-8,114.2,20.2,130.4,6.5,3.8,14.1,5.6,22.5,5.6,27.5,0,63.5-19.6,99.9-53.6,36.4,33.8,72.4,53.2,99.9,53.2,8.4,0,16-1.8,22.6-5.6,28.1-16.2,34.4-66.7,19.9-130.1,62-19.1,102.5-49.9,102.5-82.3zm-130.2-66.7c-3.7,12.9-8.3,26.2-13.5,39.5-4.1-8-8.4-16-13.1-24-4.6-8-9.5-15.8-14.4-23.4,14.2,2.1,27.9,4.7,41,7.9zm-45.8,106.5c-7.8,13.5-15.8,26.3-24.1,38.2-14.9,1.3-30,2-45.2,2s-30.2-.7-45-1.9c-8.3-11.9-16.4-24.6-24.2-38-7.6-13.1-14.5-26.4-20.8-39.8,6.2-13.4,13.2-26.8,20.7-39.9,7.8-13.5,15.8-26.3,24.1-38.2,14.9-1.3,30-2,45.2-2s30.2.7,45,1.9c8.3,11.9,16.4,24.6,24.2,38,7.6,13.1,14.5,26.4,20.8,39.8-6.3,13.4-13.2,26.8-20.7,39.9zm32.3-13c5.4,13.4,10,26.8,13.8,39.8-13.1,3.2-26.9,5.9-41.2,8,4.9-7.7,9.8-15.6,14.4-23.7,4.6-8,8.9-16.1,13-24.1zm-101.4,106.7c-9.3-9.6-18.6-20.3-27.8-32,9,.4,18.2.7,27.5.7s18.7-.2,27.8-.7c-9,11.7-18.3,22.4-27.5,32zm-74.4-58.9c-14.2-2.1-27.9-4.7-41-7.9,3.7-12.9,8.3-26.2,13.5-39.5,4.1,8,8.4,16,13.1,24s9.5,15.8,14.4,23.4zm73.9-208.1c9.3,9.6,18.6,20.3,27.8,32-9-.4-18.2-.7-27.5-.7s-18.7.2-27.8.7c9-11.7,18.3-22.4,27.5-32zm-74,58.9c-4.9,7.7-9.8,15.6-14.4,23.7-4.6,8-8.9,16-13,24-5.4-13.4-10-26.8-13.8-39.8,13.1-3.1,26.9-5.8,41.2-7.9zm-90.5,125.2c-35.4-15.1-58.3-34.9-58.3-50.6s22.9-35.6,58.3-50.6c8.6-3.7,18-7,27.7-10.1,5.7,19.6,13.2,40,22.5,60.9-9.2,20.8-16.6,41.1-22.2,60.6-9.9-3.1-19.3-6.5-28-10.2zm53.8,142.9c-13.6-7.8-19.5-37.5-14.9-75.7,1.1-9.4,2.9-19.3,5.1-29.4,19.6,4.8,41,8.5,63.5,10.9,13.5,18.5,27.5,35.3,41.6,50-32.6,30.3-63.2,46.9-84,46.9-4.5-.1-8.3-1-11.3-2.7zm237.2-76.2c4.7,38.2-1.1,67.9-14.6,75.8-3,1.8-6.9,2.6-11.5,2.6-20.7,0-51.4-16.5-84-46.6,14-14.7,28-31.4,41.3-49.9,22.6-2.4,44-6.1,63.6-11,2.3,10.1,4.1,19.8,5.2,29.1zm38.5-66.7c-8.6,3.7-18,7-27.7,10.1-5.7-19.6-13.2-40-22.5-60.9,9.2-20.8,16.6-41.1,22.2-60.6,9.9,3.1,19.3,6.5,28.1,10.2,35.4,15.1,58.3,34.9,58.3,50.6,0,15.7-23,35.6-58.4,50.6zm-264.9-268.7z"/>
18
- <circle class="st1" cx="420.9" cy="296.5" r="45.7"/>
19
- <path class="st1" d="M520.5,78.1"/>
20
- </g>
21
- <circle class="st0" cx="420.8" cy="296.6" r="43"/>
22
- <path class="st1" d="M466.1,296.6c0,25-20.2,45.2-45.2,45.2s-45.2-20.2-45.2-45.2,20.2-45.2,45.2-45.2,45.2,20.2,45.2,45.2ZM386,295.6v-6.3c0-1.1,1.2-5.1,1.8-6.2,1-1.9,2.9-3.5,4.6-4.7l-3.4-3.4c4-3.6,9.4-3.7,13.7-.7,1.9-4.7,6.6-7.1,11.6-6.7l-.8,4.2c5.9.2,13.1,4.1,13.1,10.8s0,.5-.7.7c-1.7.3-3.4-.4-5-.6s-1.2-.4-1.2.3,2.5,4.1,3,5.5,1,3.5.8,5.3c-5.6-.8-10.5-3.2-14.8-6.7.3,2.6,4.1,21.7,5.3,21.9s.8-.6,1-1.1,1.3-6.3,1.3-6.7c0-1-1.7-1.8-2.2-2.8-1.2-2.7,1.3-4.7,3.7-3.3s5.2,6.2,7.5,7.3,13,1.4,14.8,3.3-2.9,4.6-1.5,7.6c6.7-2.6,13.5-3.3,20.6-2.5,3.1-9.7,3.1-20.3-.9-29.8-7.3,0-14.7-3.6-17.2-10.8-2.5-7.2-.7-8.6-1.3-9.3-.8-1-6.3.6-7.4-1.5s.3-1.1-.2-1.4-1.9-.6-2.6-.8c-26-6.4-51.3,15.7-49.7,42.1,0,1.6,1.6,10.3,2.4,11.1s4.8,0,6.3,0,3.7.3,5,.5c2.9.4,7.2,2.4,9.4,2.5s2.4-.8,2.7-2.4c.4-2.6.5-7.4.5-10.1s-1-7.8-1.3-11.6c-.9-.2-.7,0-.9.5-.7,1.3-1.1,3.2-1.9,4.8s-5.2,8.7-5.7,9-.7-.5-.8-.8c-1.6-3.5-2-7.9-1.9-11.8-.9-1-5.4,4.9-6.7,5.3l-.8-.4v-.3h-.2ZM455.6,276.4c1.1-1.2-6-8.9-7.2-10-3-2.7-5.4-4.5-3.5,1.4s5.7,7.8,10.6,8.5h.1ZM410.9,270.1c-.4-.5-6.1,2.9-5.5,4.6,1.9-1.3,5.9-1.7,5.5-4.6ZM400.4,276.4c-.3-2.4-6.3-2.7-7.2-1s1.6,1.4,1.9,1.4c1.8.3,3.5-.6,5.2-.4h.1ZM411.3,276.8c3.8,1.3,6.6,3.6,10.9,3.7s0-3-1.2-3.9c-2.2-1.7-5.1-2.4-7.8-2.4s-1.6-.3-1.4.4c2.8.6,7.3.7,8.4,3.8-2.3-.3-3.9-1.6-6.2-2s-2.5-.5-2.6.3h0ZM420.6,290.3c-.8-5.1-5.7-10.8-10.9-11.6s-1.3-.4-.8.5,4.7,3.2,5.7,4,4.5,4.2,2.1,3.8-8.4-7.8-9.4-6.7c.2.9,1.1,1.9,1.7,2.7,3,3.8,6.9,6.8,11.8,7.4h-.2ZM395.3,279.8c-5,1.1-6.9,6.3-6.7,11,.7.8,5-3.8,5.4-4.5s2.7-4.6,1.1-4-2.9,4.4-4.2,4.6.2-2.1.4-2.5c1.1-1.6,2.9-3.1,4-4.6h0ZM400.4,281.5c-.4-.5-2,1.3-2.3,1.7-2.9,3.9-2.6,10.2-1.5,14.8.8.2.8-.3,1.2-.7,3-3.8,5.5-10.5,4.5-15.4-2.1,3.1-3.1,7.3-3.6,11h-1.3c0-4,1.9-7.7,3-11.4h0ZM426.9,305.9c0-1.7-1.7-1.4-2.5-1.9s-1.3-1.9-3-1.4c1.3,2.1,3,3.2,5.5,3.4h0ZM417.2,308.5c7.6.7,5.5-1.9,1.4-5.5-1.3-.3-1.5,4.5-1.4,5.5ZM437,309.7c-3.5-.3-7.8-2-11.2-2.1s-1.3,0-1.9.7c4,1.3,8.4,1.7,12.1,4l1-2.5h0ZM420.5,312.8c-7.3,0-15.1,3.7-20.4,8.8s-4.8,5.3-4.8,6.2c0,1.8,8.6,6.2,10.5,6.8,12.1,4.8,27.5,3.5,38.2-4.2s3.1-2.7,0-6.2c-5.7-6.6-14.7-11.4-23.4-11.3h-.1ZM398.7,316.9c-1.4-1.4-5-1.9-7-2.1s-5.3-.3-6.9.6l13.9,1.4h0ZM456.9,314.8h-7.4c-.9,0-4.9,1.1-6,1.6s-.8.6,0,.5c2.4,0,5.1-1,7.6-1.3s3.5.2,5.1,0,1.3-.3.6-.8h0Z"/>
23
- <path class="st0" d="M386,295.6l.8.4c1.3-.3,5.8-6.2,6.7-5.3,0,3.9.3,8.3,1.9,11.8s0,1.2.8.8,5.1-7.8,5.7-9,1.3-3.5,1.9-4.8,0-.7.9-.5c.3,3.8,1.2,7.8,1.3,11.6s0,7.5-.5,10.1-1.1,2.4-2.7,2.4-6.5-2.1-9.4-2.5-3.7-.5-5-.5-5.4,1.1-6.3,0-2.2-9.5-2.4-11.1c-1.5-26.4,23.7-48.5,49.7-42.1s2.2.4,2.6.8,0,1,.2,1.4c1.1,2,6.5.5,7.4,1.5s.4,6.9,1.3,9.3c2.5,7.2,10,10.9,17.2,10.8,4,9.4,4,20.1.9,29.8-7.2-.7-13.9,0-20.6,2.5-1.3-3.1,4.1-5.1,1.5-7.6s-11.8-1.9-14.8-3.3-5.4-6.1-7.5-7.3-4.9.6-3.7,3.3,2.1,1.8,2.2,2.8-1,6.2-1.3,6.7-.3,1.3-1,1.1c-1.1-.3-5-19.3-5.3-21.9,4.3,3.5,9.2,5.9,14.8,6.7.2-1.9-.3-3.5-.8-5.3s-3-5.1-3-5.5c0-.8.9-.3,1.2-.3,1.6,0,3.3.8,5,.6s.7.3.7-.7c0-6.6-7.2-10.6-13.1-10.8l.8-4.2c-5.1-.3-9.6,2-11.6,6.7-4.3-3-9.8-3-13.7.7l3.4,3.4c-1.8,1.3-3.5,2.8-4.6,4.7s-1.8,5.1-1.8,6.2v6.6h.2ZM431.6,265c7.8,2.1,8.7-3.5.2-1.3l-.2,1.3ZM432.4,270.9c.3.6,6.4-.4,5.8-2.3s-4.6.6-5.7.6l-.2,1.7h.1ZM434.5,276c.8,1.2,5.7-1.8,5.5-2.7-.4-1.9-6.6,1.2-5.5,2.7ZM442.9,276.4c-.9-.9-5,2.8-4.6,4,.6,2.4,5.7-3,4.6-4ZM445.1,279.9c-.3.2-3.1,4.6-1.5,5s3.5-3.4,3.5-4-1.3-1.3-2-.9h0ZM448.9,287.4c2.1.8,3.8-5.1,2.3-5.5-1.9-.6-2.6,5.1-2.3,5.5ZM457.3,288.6c.5-1.7,1.1-4.7-1-5.5-1,.3-.6,3.9-.6,4.8l.3.5,1.3.2h0Z"/>
24
- <path class="st0" d="M455.6,276.4c-5-.8-9.1-3.6-10.6-8.5s.5-4,3.5-1.4,8.3,8.7,7.2,10h-.1Z"/>
25
- <path class="st0" d="M420.6,290.3c-4.9-.6-8.9-3.6-11.8-7.4s-1.5-1.8-1.7-2.7c1-1,8.5,6.6,9.4,6.7,2.4.4-1.8-3.5-2.1-3.8-1-.8-5.4-3.5-5.7-4-.4-.8.5-.5.8-.5,5.2.8,10.1,6.6,10.9,11.6h.2Z"/>
26
- <path class="st0" d="M400.4,281.5c-1.1,3.7-3,7.3-3,11.4h1.3c.5-3.7,1.5-7.8,3.6-11,1,4.8-1.5,11.6-4.5,15.4s-.4.8-1.2.7c-1.1-4.5-1.3-10.8,1.5-14.8s1.9-2.2,2.3-1.7h0Z"/>
27
- <path class="st0" d="M411.3,276.8c0-.8,2.1-.4,2.6-.3,2.4.4,4,1.7,6.2,2-1.2-3.1-5.7-3.2-8.4-3.8,0-.8.9-.4,1.4-.4,2.8,0,5.6.7,7.8,2.4,2.2,1.7,4,4,1.2,3.9-4.3,0-7.1-2.4-10.9-3.7h0Z"/>
28
- <path class="st0" d="M395.3,279.8c-1.1,1.6-3,3-4,4.6s-1.9,2.8-.4,2.5,2.8-4,4.2-4.6-.9,3.6-1.1,4c-.4.7-4.7,5.2-5.4,4.5-.2-4.6,1.8-9.9,6.7-11h0Z"/>
29
- <path class="st0" d="M437,309.7l-1,2.5c-3.6-2.3-8-2.8-12.1-4,.5-.7,1.1-.7,1.9-.7,3.4,0,7.8,1.8,11.2,2.1h0Z"/>
30
- <path class="st0" d="M417.2,308.5c0-1,0-5.8,1.4-5.5,4,3.5,6.1,6.2-1.4,5.5Z"/>
31
- <path class="st0" d="M400.4,276.4c-1.8-.3-3.5.7-5.2.4s-2.3-.8-1.9-1.4c.8-1.6,6.9-1.4,7.2,1h-.1Z"/>
32
- <path class="st0" d="M410.9,270.1c.4,3-3.6,3.3-5.5,4.6-.6-1.8,5-5.1,5.5-4.6Z"/>
33
- <path class="st0" d="M426.9,305.9c-2.5-.2-4.1-1.3-5.5-3.4,1.7-.4,2,.8,3,1.4s2.6.3,2.5,1.9h0Z"/>
34
- <path class="st1" d="M432.4,270.9l.2-1.7c1.1,0,5.1-2.2,5.7-.6s-5.5,2.9-5.8,2.3h-.1Z"/>
35
- <path class="st1" d="M431.6,265l.2-1.3c8.4-2.1,7.7,3.4-.2,1.3Z"/>
36
- <path class="st1" d="M434.5,276c-1.1-1.5,5.1-4.6,5.5-2.7s-4.6,4-5.5,2.7Z"/>
37
- <path class="st1" d="M442.9,276.4c1.1,1.1-4,6.4-4.6,4s3.7-4.9,4.6-4Z"/>
38
- <path class="st1" d="M445.1,279.9c.7-.4,2.1,0,2,.9s-2.4,4.4-3.5,4,1.3-4.8,1.5-5h0Z"/>
39
- <path class="st1" d="M448.9,287.4c-.3-.3.4-6.1,2.3-5.5,1.4.4-.2,6.2-2.3,5.5Z"/>
40
- <path class="st1" d="M457.3,288.6l-1.3-.2-.3-.5c0-.9-.4-4.6.6-4.8,2.1.8,1.5,3.8,1,5.5h0Z"/>
41
- <path class="st0" d="M420.5,312.8c8.9,0,17.9,4.7,23.4,11.3,5.6,6.6,3.8,3.5,0,6.2-10.7,7.7-26.1,9-38.2,4.2-1.9-.8-10.5-5.1-10.5-6.8s4-5.3,4.8-6.2c5.3-5,13.1-8.6,20.4-8.8h.1Z"/>
42
- <path class="st0" d="M398.7,316.9l-13.9-1.4c1.7-1,5-.8,6.9-.6s5.6.7,7,2.1h0Z"/>
43
- <path class="st0" d="M456.9,314.8c.7.5,0,.8-.6.8-1.6.2-3.5-.2-5.1,0-2.4.3-5.2,1.2-7.6,1.3s-1.1,0,0-.5,5.1-1.6,6-1.6h7.4,0Z"/>
44
- </svg>