@undp/create-app 0.2.14 → 0.2.15

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 (133) hide show
  1. package/bin/generateFiles/generatePackageJson.js +12 -30
  2. package/bin/generateFiles/generateViteConfig.js +2 -2
  3. package/bin/index.js +1 -1
  4. package/bin/promptUser.js +21 -2
  5. package/bin/templates/next/auth/biome.json +67 -0
  6. package/bin/templates/next/basic/biome.json +67 -0
  7. package/bin/templates/vite/basic/biome.json +67 -0
  8. package/bin/templates/vite/query/biome.json +67 -0
  9. package/bin/templates/vite/query+router/biome.json +67 -0
  10. package/bin/templates/vite/query+router/src/routes/queryDemo.tsx +5 -5
  11. package/bin/templates/vite/router/biome.json +67 -0
  12. package/bin/templates/vite/router/src/routes/about.tsx +5 -5
  13. package/bin/templates/viteWithLanguage/basic/README.md +75 -0
  14. package/bin/templates/viteWithLanguage/basic/biome.json +67 -0
  15. package/bin/templates/viteWithLanguage/basic/index.html +13 -0
  16. package/bin/templates/viteWithLanguage/basic/public/favicon.ico +0 -0
  17. package/bin/templates/viteWithLanguage/basic/public/imgs/Tailwind_CSS_Logo.svg +1 -0
  18. package/bin/templates/viteWithLanguage/basic/public/imgs/Vitejs-logo.svg +15 -0
  19. package/bin/templates/viteWithLanguage/basic/public/imgs/Zustand-logo.svg +266 -0
  20. package/bin/templates/viteWithLanguage/basic/public/imgs/undp-logo-blue.svg +1 -0
  21. package/bin/templates/viteWithLanguage/basic/src/App.tsx +95 -0
  22. package/bin/templates/viteWithLanguage/basic/src/assets/undp-logo-blue.svg +1 -0
  23. package/bin/templates/viteWithLanguage/basic/src/i18n.ts +31 -0
  24. package/bin/templates/viteWithLanguage/basic/src/locales/en/common.json +6 -0
  25. package/bin/templates/viteWithLanguage/basic/src/locales/es/common.json +6 -0
  26. package/bin/templates/viteWithLanguage/basic/src/locales/fr/common.json +6 -0
  27. package/bin/templates/viteWithLanguage/basic/src/main.tsx +15 -0
  28. package/bin/templates/viteWithLanguage/basic/src/stores/counter.ts +23 -0
  29. package/bin/templates/viteWithLanguage/basic/src/styles/fonts.css +213 -0
  30. package/bin/templates/viteWithLanguage/basic/src/styles/style.css +3 -0
  31. package/bin/templates/viteWithLanguage/basic/src/vite-env.d.ts +1 -0
  32. package/bin/templates/viteWithLanguage/basic/tailwind.config.js +7 -0
  33. package/bin/templates/viteWithLanguage/basic/tsconfig.json +29 -0
  34. package/bin/templates/viteWithLanguage/basic/tsconfig.node.json +9 -0
  35. package/bin/templates/viteWithLanguage/basic/vite.config.ts +58 -0
  36. package/bin/templates/viteWithLanguage/query/README.md +80 -0
  37. package/bin/templates/viteWithLanguage/query/biome.json +67 -0
  38. package/bin/templates/viteWithLanguage/query/index.html +13 -0
  39. package/bin/templates/viteWithLanguage/query/public/favicon.ico +0 -0
  40. package/bin/templates/viteWithLanguage/query/public/imgs/Tailwind_CSS_Logo.svg +1 -0
  41. package/bin/templates/viteWithLanguage/query/public/imgs/Tanstack-logo.png +0 -0
  42. package/bin/templates/viteWithLanguage/query/public/imgs/Vitejs-logo.svg +15 -0
  43. package/bin/templates/viteWithLanguage/query/public/imgs/Zustand-logo.svg +266 -0
  44. package/bin/templates/viteWithLanguage/query/public/imgs/undp-logo-blue.svg +1 -0
  45. package/bin/templates/viteWithLanguage/query/src/App.tsx +125 -0
  46. package/bin/templates/viteWithLanguage/query/src/assets/undp-logo-blue.svg +1 -0
  47. package/bin/templates/viteWithLanguage/query/src/constants.ts +16 -0
  48. package/bin/templates/viteWithLanguage/query/src/i18n.ts +31 -0
  49. package/bin/templates/viteWithLanguage/query/src/integration/tanstack-query.tsx +28 -0
  50. package/bin/templates/viteWithLanguage/query/src/locales/en/common.json +8 -0
  51. package/bin/templates/viteWithLanguage/query/src/locales/es/common.json +8 -0
  52. package/bin/templates/viteWithLanguage/query/src/locales/fr/common.json +8 -0
  53. package/bin/templates/viteWithLanguage/query/src/main.tsx +24 -0
  54. package/bin/templates/viteWithLanguage/query/src/stores/counter.ts +23 -0
  55. package/bin/templates/viteWithLanguage/query/src/styles/fonts.css +213 -0
  56. package/bin/templates/viteWithLanguage/query/src/styles/style.css +3 -0
  57. package/bin/templates/viteWithLanguage/query/src/vite-env.d.ts +1 -0
  58. package/bin/templates/viteWithLanguage/query/tailwind.config.js +7 -0
  59. package/bin/templates/viteWithLanguage/query/tsconfig.json +29 -0
  60. package/bin/templates/viteWithLanguage/query/tsconfig.node.json +9 -0
  61. package/bin/templates/viteWithLanguage/query/vite.config.ts +58 -0
  62. package/bin/templates/viteWithLanguage/query+router/README.md +111 -0
  63. package/bin/templates/viteWithLanguage/query+router/biome.json +67 -0
  64. package/bin/templates/viteWithLanguage/query+router/index.html +13 -0
  65. package/bin/templates/viteWithLanguage/query+router/public/favicon.ico +0 -0
  66. package/bin/templates/viteWithLanguage/query+router/public/imgs/Tailwind_CSS_Logo.svg +1 -0
  67. package/bin/templates/viteWithLanguage/query+router/public/imgs/Tanstack-logo.png +0 -0
  68. package/bin/templates/viteWithLanguage/query+router/public/imgs/Vitejs-logo.svg +15 -0
  69. package/bin/templates/viteWithLanguage/query+router/public/imgs/Zustand-logo.svg +266 -0
  70. package/bin/templates/viteWithLanguage/query+router/public/imgs/undp-logo-blue.svg +1 -0
  71. package/bin/templates/viteWithLanguage/query+router/src/App.tsx +75 -0
  72. package/bin/templates/viteWithLanguage/query+router/src/Icons.tsx +74 -0
  73. package/bin/templates/viteWithLanguage/query+router/src/assets/undp-logo-blue.svg +1 -0
  74. package/bin/templates/viteWithLanguage/query+router/src/components/Footer.tsx +16 -0
  75. package/bin/templates/viteWithLanguage/query+router/src/components/Header.tsx +70 -0
  76. package/bin/templates/viteWithLanguage/query+router/src/constants.ts +16 -0
  77. package/bin/templates/viteWithLanguage/query+router/src/i18n.ts +31 -0
  78. package/bin/templates/viteWithLanguage/query+router/src/integration/tanstack-query.tsx +28 -0
  79. package/bin/templates/viteWithLanguage/query+router/src/locales/en/common.json +13 -0
  80. package/bin/templates/viteWithLanguage/query+router/src/locales/es/common.json +13 -0
  81. package/bin/templates/viteWithLanguage/query+router/src/locales/fr/common.json +14 -0
  82. package/bin/templates/viteWithLanguage/query+router/src/main.tsx +95 -0
  83. package/bin/templates/viteWithLanguage/query+router/src/routes/queryDemo.tsx +78 -0
  84. package/bin/templates/viteWithLanguage/query+router/src/stores/counter.ts +23 -0
  85. package/bin/templates/viteWithLanguage/query+router/src/styles/fonts.css +213 -0
  86. package/bin/templates/viteWithLanguage/query+router/src/styles/style.css +3 -0
  87. package/bin/templates/viteWithLanguage/query+router/src/vite-env.d.ts +1 -0
  88. package/bin/templates/viteWithLanguage/query+router/tailwind.config.js +7 -0
  89. package/bin/templates/viteWithLanguage/query+router/tsconfig.json +29 -0
  90. package/bin/templates/viteWithLanguage/query+router/tsconfig.node.json +9 -0
  91. package/bin/templates/viteWithLanguage/query+router/vite.config.ts +58 -0
  92. package/bin/templates/viteWithLanguage/router/README.md +106 -0
  93. package/bin/templates/viteWithLanguage/router/biome.json +67 -0
  94. package/bin/templates/viteWithLanguage/router/index.html +13 -0
  95. package/bin/templates/viteWithLanguage/router/public/favicon.ico +0 -0
  96. package/bin/templates/viteWithLanguage/router/public/imgs/Tailwind_CSS_Logo.svg +1 -0
  97. package/bin/templates/viteWithLanguage/router/public/imgs/Tanstack-logo.png +0 -0
  98. package/bin/templates/viteWithLanguage/router/public/imgs/Vitejs-logo.svg +15 -0
  99. package/bin/templates/viteWithLanguage/router/public/imgs/Zustand-logo.svg +266 -0
  100. package/bin/templates/viteWithLanguage/router/public/imgs/undp-logo-blue.svg +1 -0
  101. package/bin/templates/viteWithLanguage/router/src/App.tsx +74 -0
  102. package/bin/templates/viteWithLanguage/router/src/Icons.tsx +74 -0
  103. package/bin/templates/viteWithLanguage/router/src/assets/undp-logo-blue.svg +1 -0
  104. package/bin/templates/viteWithLanguage/router/src/components/Footer.tsx +16 -0
  105. package/bin/templates/viteWithLanguage/router/src/components/Header.tsx +70 -0
  106. package/bin/templates/viteWithLanguage/router/src/constants.ts +16 -0
  107. package/bin/templates/viteWithLanguage/router/src/i18n.ts +31 -0
  108. package/bin/templates/viteWithLanguage/router/src/locales/en/common.json +11 -0
  109. package/bin/templates/viteWithLanguage/router/src/locales/es/common.json +11 -0
  110. package/bin/templates/viteWithLanguage/router/src/locales/fr/common.json +11 -0
  111. package/bin/templates/viteWithLanguage/router/src/main.tsx +89 -0
  112. package/bin/templates/viteWithLanguage/router/src/routes/about.tsx +58 -0
  113. package/bin/templates/viteWithLanguage/router/src/stores/counter.ts +23 -0
  114. package/bin/templates/viteWithLanguage/router/src/styles/fonts.css +213 -0
  115. package/bin/templates/viteWithLanguage/router/src/styles/style.css +3 -0
  116. package/bin/templates/viteWithLanguage/router/src/vite-env.d.ts +1 -0
  117. package/bin/templates/viteWithLanguage/router/tailwind.config.js +7 -0
  118. package/bin/templates/viteWithLanguage/router/tsconfig.json +29 -0
  119. package/bin/templates/viteWithLanguage/router/tsconfig.node.json +9 -0
  120. package/bin/templates/viteWithLanguage/router/vite.config.ts +58 -0
  121. package/package.json +1 -1
  122. package/bin/templates/next/auth/.prettierrc +0 -10
  123. package/bin/templates/next/auth/eslint.config.mjs +0 -103
  124. package/bin/templates/next/basic/.prettierrc +0 -10
  125. package/bin/templates/next/basic/eslint.config.mjs +0 -103
  126. package/bin/templates/vite/basic/.prettierrc +0 -10
  127. package/bin/templates/vite/basic/eslint.config.mjs +0 -97
  128. package/bin/templates/vite/query/.prettierrc +0 -10
  129. package/bin/templates/vite/query/eslint.config.mjs +0 -97
  130. package/bin/templates/vite/query+router/.prettierrc +0 -10
  131. package/bin/templates/vite/query+router/eslint.config.mjs +0 -97
  132. package/bin/templates/vite/router/.prettierrc +0 -10
  133. package/bin/templates/vite/router/eslint.config.mjs +0 -97
@@ -13,10 +13,8 @@ export function generatePackageJson(config) {
13
13
  console.log(chalk.gray(` Fetching latest version for packages...`));
14
14
  const designSystemVer = `^${getLatestVersion('@undp/design-system-react')}`
15
15
  const zustandVer = `^${getLatestVersion('zustand')}`
16
- const dependencies = config.libraries.includes('peer') && config.libraries.includes('@undp/data-viz') ? {
16
+ const dependenciesTemp = config.libraries.includes('peer') && config.libraries.includes('@undp/data-viz') ? {
17
17
  "@undp/design-system-react": designSystemVer,
18
- "react": "^19.2.3",
19
- "react-dom": "^19.2.3",
20
18
  "@dnd-kit/core": "^6.3.1",
21
19
  "@dnd-kit/modifiers": "^9.0.0",
22
20
  "ajv": "^8.17.1",
@@ -27,6 +25,8 @@ export function generatePackageJson(config) {
27
25
  "marked": "^16.4.1",
28
26
  "math-expression-evaluator": "^2.0.7",
29
27
  "pmtiles": "^4.3.0",
28
+ "react": "^19.2.3",
29
+ "react-dom": "^19.2.3",
30
30
  "react-globe.gl": "^2.37.0",
31
31
  "three": "^0.180.0",
32
32
  "zustand": zustandVer
@@ -37,6 +37,13 @@ export function generatePackageJson(config) {
37
37
  "zustand": zustandVer
38
38
  };
39
39
 
40
+ const dependencies = config.language && !config.framework.includes('next') ? {
41
+ ...dependenciesTemp,
42
+ "i18next": "^26.0.8",
43
+ "i18next-browser-languagedetector": "^8.2.1",
44
+ "react-i18next": "^17.0.6",
45
+ } : {...dependenciesTemp}
46
+
40
47
  switch (config.framework) {
41
48
  case 'vite-router':
42
49
  dependencies['@tanstack/react-router'] = '^1.141.1';
@@ -63,28 +70,15 @@ export function generatePackageJson(config) {
63
70
  dependencies['lucide-react'] = lucideReactVer;
64
71
  }
65
72
  const devDependencies = config.framework.includes('vite') ? {
66
- "@eslint/config-array": "^0.21.1",
67
- "@eslint/js": "^9.39.1",
68
- "@nabla/vite-plugin-eslint": "^2.0.6",
73
+ "@biomejs/biome": "^2.4.12",
69
74
  "@tailwindcss/postcss": "^4.1.17",
70
75
  "@types/node": "^24.10.0",
71
76
  "@types/react": "^19.2.7",
72
77
  "@types/react-dom": "^19.2.3",
73
78
  "autoprefixer": "^10.4.21",
74
79
  "babel-plugin-react-compiler": "^1.0.0",
75
- "eslint": "^9.39.1",
76
- "eslint-config-love": "^133.0.0",
77
- "eslint-config-prettier": "^10.1.8",
78
- "eslint-plugin-import": "^2.32.0",
79
- "eslint-plugin-jsx-a11y": "^6.10.2",
80
- "eslint-plugin-n": "^17.23.1",
81
- "eslint-plugin-prettier": "^5.5.4",
82
- "eslint-plugin-promise": "^7.2.1",
83
- "eslint-plugin-react": "^7.37.5",
84
- "eslint-plugin-react-hooks": "^7.0.1",
85
80
  "postcss": "^8.5.6",
86
81
  "postcss-nested": "^7.0.2",
87
- "prettier": "^3.6.2",
88
82
  "rimraf": "^6.1.0",
89
83
  "rollup-plugin-visualizer": "^6.0.5",
90
84
  "tailwind-animate": "^0.2.10",
@@ -98,25 +92,13 @@ export function generatePackageJson(config) {
98
92
  "@vitejs/plugin-react": "^5.1.2",
99
93
  "@tailwindcss/vite": "^4.1.17"
100
94
  } : {
101
- "@eslint/js": "^9.39.1",
95
+ "@biomejs/biome": "^2.4.12",
102
96
  "@tailwindcss/postcss": "^4.1.17",
103
97
  "@types/node": "^24.10.0",
104
98
  "@types/react": "^19.2.7",
105
99
  "@types/react-dom": "^19.2.3",
106
- "eslint": "^9.39.1",
107
- "eslint-config-love": "^133.0.0",
108
- "eslint-config-next": "16.0.1",
109
- "eslint-config-prettier": "^10.1.8",
110
- "eslint-plugin-import": "^2.32.0",
111
- "eslint-plugin-jsx-a11y": "^6.10.2",
112
- "eslint-plugin-n": "^17.23.1",
113
- "eslint-plugin-prettier": "^5.5.4",
114
- "eslint-plugin-promise": "^7.2.1",
115
- "eslint-plugin-react": "^7.37.5",
116
- "eslint-plugin-react-hooks": "^7.0.1",
117
100
  "postcss": "^8.5.6",
118
101
  "postcss-nested": "^7.0.2",
119
- "prettier": "^3.6.2",
120
102
  "rimraf": "^6.1.0",
121
103
  "rollup-plugin-visualizer": "^6.0.5",
122
104
  "tailwind-animate": "^0.2.10",
@@ -169,8 +169,8 @@ export default defineConfig({
169
169
  output: {
170
170
  manualChunks(id) {
171
171
  if (id.includes('node_modules/react')) return 'react';
172
- if (id.includes('@undp/design-system-react')) return 'undp';${config.libraries.includes('@undp/data-viz') ? `
173
- if (id.includes('@undp/data-viz')) return 'undp';` : ''}
172
+ if (id.includes('@undp/design-system-react')) return 'undp-design-system';${config.libraries.includes('@undp/data-viz') ? `
173
+ if (id.includes('@undp/data-viz')) return 'undp-data-viz';` : ''}
174
174
  },
175
175
  chunkFileNames: '[name]-[hash].js',
176
176
  assetFileNames: '[name].[ext]',
package/bin/index.js CHANGED
@@ -41,7 +41,7 @@ async function main() {
41
41
 
42
42
  process.chdir(projectPath);
43
43
 
44
- const baseFolder = config.framework.includes('vite') ? 'vite' : 'next';
44
+ const baseFolder = config.framework.includes('vite') ? config.language ? 'viteWithLanguage' : 'vite' : 'next';
45
45
 
46
46
 
47
47
  let tertiaryFolder = 'basic';
package/bin/promptUser.js CHANGED
@@ -48,6 +48,24 @@ export async function promptUser(name) {
48
48
 
49
49
  const query = addQuery === 'Yes';
50
50
 
51
+ let language = false;
52
+
53
+ if (framework === 'vite-basic' || framework === 'vite-router') {
54
+ const { addLanguage } = await inquirer.prompt([
55
+ {
56
+ type: 'list',
57
+ name: 'addLanguage',
58
+ message: chalk.yellow(
59
+ '⚙️ Add multi language support (en, es, fr)?'
60
+ ),
61
+ choices: ['Yes', 'No'],
62
+ default: 'No',
63
+ },
64
+ ]);
65
+
66
+ language = addLanguage === 'Yes';
67
+ }
68
+
51
69
  const libraryChoices = [
52
70
  {
53
71
  name: '@undp/data-viz — UNDP data visualization components',
@@ -75,13 +93,13 @@ export async function promptUser(name) {
75
93
 
76
94
  let addPostCSSScripts = false;
77
95
 
78
- if(framework !== 'next-basic' && framework !== 'next-auth') {
96
+ if(framework === 'vite-basic') {
79
97
  const { postCSS } = await inquirer.prompt([
80
98
  {
81
99
  type: 'list',
82
100
  name: 'postCSS',
83
101
  message: chalk.yellow(
84
- '⚙️ Add PostCSS script to wrap all classes in `.undp-container` (recommended if embedding in another app)?'
102
+ '⚙️ Add PostCSS script to wrap all classes in `.undp-container` (recommended only if embedding in another app)?'
85
103
  ),
86
104
  choices: ['Yes', 'No'],
87
105
  default: 'Yes',
@@ -111,5 +129,6 @@ export async function promptUser(name) {
111
129
  addPostCSSScripts,
112
130
  framework,
113
131
  query,
132
+ language,
114
133
  };
115
134
  }
@@ -0,0 +1,67 @@
1
+ {
2
+ "$schema": "https://biomejs.dev/schemas/2.4.8/schema.json",
3
+ "vcs": {
4
+ "enabled": true,
5
+ "clientKind": "git",
6
+ "useIgnoreFile": true
7
+ },
8
+ "files": {
9
+ "ignoreUnknown": true,
10
+ "includes": ["**/*.{js,jsx,ts,tsx,css}"]
11
+ },
12
+ "formatter": {
13
+ "enabled": true,
14
+ "indentStyle": "space",
15
+ "indentWidth": 2,
16
+ "lineWidth": 100,
17
+ "bracketSameLine": false
18
+ },
19
+ "linter": {
20
+ "enabled": true,
21
+ "rules": {
22
+ "recommended": true,
23
+ "suspicious": {
24
+ "noExplicitAny": "warn",
25
+ "noUnassignedVariables": "warn",
26
+ "noUnusedExpressions": "warn",
27
+ "noConsole": {
28
+ "level": "warn",
29
+ "options": {
30
+ "allow": ["assert", "error", "info", "warn"]
31
+ }
32
+ },
33
+ "noArrayIndexKey": "error"
34
+ },
35
+ "a11y": {
36
+ "useAltText": "error",
37
+ "useValidAnchor": "error"
38
+ },
39
+ "style": {
40
+ "useConst": "error",
41
+ "useSelfClosingElements": "error",
42
+ "useConsistentCurlyBraces": "error",
43
+ "useImportType": "warn"
44
+ },
45
+ "correctness": {
46
+ "noUnusedVariables": "error",
47
+ "noUndeclaredVariables": "error"
48
+ }
49
+ }
50
+ },
51
+ "javascript": {
52
+ "formatter": {
53
+ "quoteStyle": "single",
54
+ "jsxQuoteStyle": "single",
55
+ "semicolons": "always",
56
+ "trailingCommas": "all"
57
+ }
58
+ },
59
+ "assist": {
60
+ "enabled": true,
61
+ "actions": {
62
+ "source": {
63
+ "organizeImports": "on"
64
+ }
65
+ }
66
+ }
67
+ }
@@ -0,0 +1,67 @@
1
+ {
2
+ "$schema": "https://biomejs.dev/schemas/2.4.8/schema.json",
3
+ "vcs": {
4
+ "enabled": true,
5
+ "clientKind": "git",
6
+ "useIgnoreFile": true
7
+ },
8
+ "files": {
9
+ "ignoreUnknown": true,
10
+ "includes": ["**/*.{js,jsx,ts,tsx,css}"]
11
+ },
12
+ "formatter": {
13
+ "enabled": true,
14
+ "indentStyle": "space",
15
+ "indentWidth": 2,
16
+ "lineWidth": 100,
17
+ "bracketSameLine": false
18
+ },
19
+ "linter": {
20
+ "enabled": true,
21
+ "rules": {
22
+ "recommended": true,
23
+ "suspicious": {
24
+ "noExplicitAny": "warn",
25
+ "noUnassignedVariables": "warn",
26
+ "noUnusedExpressions": "warn",
27
+ "noConsole": {
28
+ "level": "warn",
29
+ "options": {
30
+ "allow": ["assert", "error", "info", "warn"]
31
+ }
32
+ },
33
+ "noArrayIndexKey": "error"
34
+ },
35
+ "a11y": {
36
+ "useAltText": "error",
37
+ "useValidAnchor": "error"
38
+ },
39
+ "style": {
40
+ "useConst": "error",
41
+ "useSelfClosingElements": "error",
42
+ "useConsistentCurlyBraces": "error",
43
+ "useImportType": "warn"
44
+ },
45
+ "correctness": {
46
+ "noUnusedVariables": "error",
47
+ "noUndeclaredVariables": "error"
48
+ }
49
+ }
50
+ },
51
+ "javascript": {
52
+ "formatter": {
53
+ "quoteStyle": "single",
54
+ "jsxQuoteStyle": "single",
55
+ "semicolons": "always",
56
+ "trailingCommas": "all"
57
+ }
58
+ },
59
+ "assist": {
60
+ "enabled": true,
61
+ "actions": {
62
+ "source": {
63
+ "organizeImports": "on"
64
+ }
65
+ }
66
+ }
67
+ }
@@ -0,0 +1,67 @@
1
+ {
2
+ "$schema": "https://biomejs.dev/schemas/2.4.8/schema.json",
3
+ "vcs": {
4
+ "enabled": true,
5
+ "clientKind": "git",
6
+ "useIgnoreFile": true
7
+ },
8
+ "files": {
9
+ "ignoreUnknown": true,
10
+ "includes": ["**/*.{js,jsx,ts,tsx,css}"]
11
+ },
12
+ "formatter": {
13
+ "enabled": true,
14
+ "indentStyle": "space",
15
+ "indentWidth": 2,
16
+ "lineWidth": 100,
17
+ "bracketSameLine": false
18
+ },
19
+ "linter": {
20
+ "enabled": true,
21
+ "rules": {
22
+ "recommended": true,
23
+ "suspicious": {
24
+ "noExplicitAny": "warn",
25
+ "noUnassignedVariables": "warn",
26
+ "noUnusedExpressions": "warn",
27
+ "noConsole": {
28
+ "level": "warn",
29
+ "options": {
30
+ "allow": ["assert", "error", "info", "warn"]
31
+ }
32
+ },
33
+ "noArrayIndexKey": "error"
34
+ },
35
+ "a11y": {
36
+ "useAltText": "error",
37
+ "useValidAnchor": "error"
38
+ },
39
+ "style": {
40
+ "useConst": "error",
41
+ "useSelfClosingElements": "error",
42
+ "useConsistentCurlyBraces": "error",
43
+ "useImportType": "warn"
44
+ },
45
+ "correctness": {
46
+ "noUnusedVariables": "error",
47
+ "noUndeclaredVariables": "error"
48
+ }
49
+ }
50
+ },
51
+ "javascript": {
52
+ "formatter": {
53
+ "quoteStyle": "single",
54
+ "jsxQuoteStyle": "single",
55
+ "semicolons": "always",
56
+ "trailingCommas": "all"
57
+ }
58
+ },
59
+ "assist": {
60
+ "enabled": true,
61
+ "actions": {
62
+ "source": {
63
+ "organizeImports": "on"
64
+ }
65
+ }
66
+ }
67
+ }
@@ -0,0 +1,67 @@
1
+ {
2
+ "$schema": "https://biomejs.dev/schemas/2.4.8/schema.json",
3
+ "vcs": {
4
+ "enabled": true,
5
+ "clientKind": "git",
6
+ "useIgnoreFile": true
7
+ },
8
+ "files": {
9
+ "ignoreUnknown": true,
10
+ "includes": ["**/*.{js,jsx,ts,tsx,css}"]
11
+ },
12
+ "formatter": {
13
+ "enabled": true,
14
+ "indentStyle": "space",
15
+ "indentWidth": 2,
16
+ "lineWidth": 100,
17
+ "bracketSameLine": false
18
+ },
19
+ "linter": {
20
+ "enabled": true,
21
+ "rules": {
22
+ "recommended": true,
23
+ "suspicious": {
24
+ "noExplicitAny": "warn",
25
+ "noUnassignedVariables": "warn",
26
+ "noUnusedExpressions": "warn",
27
+ "noConsole": {
28
+ "level": "warn",
29
+ "options": {
30
+ "allow": ["assert", "error", "info", "warn"]
31
+ }
32
+ },
33
+ "noArrayIndexKey": "error"
34
+ },
35
+ "a11y": {
36
+ "useAltText": "error",
37
+ "useValidAnchor": "error"
38
+ },
39
+ "style": {
40
+ "useConst": "error",
41
+ "useSelfClosingElements": "error",
42
+ "useConsistentCurlyBraces": "error",
43
+ "useImportType": "warn"
44
+ },
45
+ "correctness": {
46
+ "noUnusedVariables": "error",
47
+ "noUndeclaredVariables": "error"
48
+ }
49
+ }
50
+ },
51
+ "javascript": {
52
+ "formatter": {
53
+ "quoteStyle": "single",
54
+ "jsxQuoteStyle": "single",
55
+ "semicolons": "always",
56
+ "trailingCommas": "all"
57
+ }
58
+ },
59
+ "assist": {
60
+ "enabled": true,
61
+ "actions": {
62
+ "source": {
63
+ "organizeImports": "on"
64
+ }
65
+ }
66
+ }
67
+ }
@@ -0,0 +1,67 @@
1
+ {
2
+ "$schema": "https://biomejs.dev/schemas/2.4.8/schema.json",
3
+ "vcs": {
4
+ "enabled": true,
5
+ "clientKind": "git",
6
+ "useIgnoreFile": true
7
+ },
8
+ "files": {
9
+ "ignoreUnknown": true,
10
+ "includes": ["**/*.{js,jsx,ts,tsx,css}"]
11
+ },
12
+ "formatter": {
13
+ "enabled": true,
14
+ "indentStyle": "space",
15
+ "indentWidth": 2,
16
+ "lineWidth": 100,
17
+ "bracketSameLine": false
18
+ },
19
+ "linter": {
20
+ "enabled": true,
21
+ "rules": {
22
+ "recommended": true,
23
+ "suspicious": {
24
+ "noExplicitAny": "warn",
25
+ "noUnassignedVariables": "warn",
26
+ "noUnusedExpressions": "warn",
27
+ "noConsole": {
28
+ "level": "warn",
29
+ "options": {
30
+ "allow": ["assert", "error", "info", "warn"]
31
+ }
32
+ },
33
+ "noArrayIndexKey": "error"
34
+ },
35
+ "a11y": {
36
+ "useAltText": "error",
37
+ "useValidAnchor": "error"
38
+ },
39
+ "style": {
40
+ "useConst": "error",
41
+ "useSelfClosingElements": "error",
42
+ "useConsistentCurlyBraces": "error",
43
+ "useImportType": "warn"
44
+ },
45
+ "correctness": {
46
+ "noUnusedVariables": "error",
47
+ "noUndeclaredVariables": "error"
48
+ }
49
+ }
50
+ },
51
+ "javascript": {
52
+ "formatter": {
53
+ "quoteStyle": "single",
54
+ "jsxQuoteStyle": "single",
55
+ "semicolons": "always",
56
+ "trailingCommas": "all"
57
+ }
58
+ },
59
+ "assist": {
60
+ "enabled": true,
61
+ "actions": {
62
+ "source": {
63
+ "organizeImports": "on"
64
+ }
65
+ }
66
+ }
67
+ }
@@ -26,35 +26,35 @@ export function TanStackQueryDemo() {
26
26
  <>
27
27
  <div className='flex gap-4 items-center justify-center my-8 mx-auto'>
28
28
  <img
29
- src='./imgs/Vitejs-logo.svg'
29
+ src='/imgs/Vitejs-logo.svg'
30
30
  alt='vite logo'
31
31
  width='72px'
32
32
  style={{ marginLeft: 'auto', marginRight: 'auto' }}
33
33
  />
34
34
  <P marginBottom='none'>&</P>
35
35
  <img
36
- src='./imgs/Tailwind_CSS_Logo.svg'
36
+ src='/imgs/Tailwind_CSS_Logo.svg'
37
37
  alt='tailwind logo'
38
38
  width='72px'
39
39
  style={{ marginLeft: 'auto', marginRight: 'auto' }}
40
40
  />
41
41
  <P marginBottom='none'>&</P>
42
42
  <img
43
- src='./imgs/Tanstack-logo.png'
43
+ src='/imgs/Tanstack-logo.png'
44
44
  alt='tanstack logo'
45
45
  width='72px'
46
46
  style={{ marginLeft: 'auto', marginRight: 'auto' }}
47
47
  />
48
48
  <P marginBottom='none'>&</P>
49
49
  <img
50
- src='./imgs/Zustand-logo.svg'
50
+ src='/imgs/Zustand-logo.svg'
51
51
  alt='Zustand logo'
52
52
  width='72px'
53
53
  style={{ marginLeft: 'auto', marginRight: 'auto' }}
54
54
  />
55
55
  <P marginBottom='none'>&</P>
56
56
  <img
57
- src='./imgs/undp-logo-blue.svg'
57
+ src='/imgs/undp-logo-blue.svg'
58
58
  alt='UNDP logo'
59
59
  width='72px'
60
60
  style={{ marginLeft: 'auto', marginRight: 'auto' }}
@@ -0,0 +1,67 @@
1
+ {
2
+ "$schema": "https://biomejs.dev/schemas/2.4.8/schema.json",
3
+ "vcs": {
4
+ "enabled": true,
5
+ "clientKind": "git",
6
+ "useIgnoreFile": true
7
+ },
8
+ "files": {
9
+ "ignoreUnknown": true,
10
+ "includes": ["**/*.{js,jsx,ts,tsx,css}"]
11
+ },
12
+ "formatter": {
13
+ "enabled": true,
14
+ "indentStyle": "space",
15
+ "indentWidth": 2,
16
+ "lineWidth": 100,
17
+ "bracketSameLine": false
18
+ },
19
+ "linter": {
20
+ "enabled": true,
21
+ "rules": {
22
+ "recommended": true,
23
+ "suspicious": {
24
+ "noExplicitAny": "warn",
25
+ "noUnassignedVariables": "warn",
26
+ "noUnusedExpressions": "warn",
27
+ "noConsole": {
28
+ "level": "warn",
29
+ "options": {
30
+ "allow": ["assert", "error", "info", "warn"]
31
+ }
32
+ },
33
+ "noArrayIndexKey": "error"
34
+ },
35
+ "a11y": {
36
+ "useAltText": "error",
37
+ "useValidAnchor": "error"
38
+ },
39
+ "style": {
40
+ "useConst": "error",
41
+ "useSelfClosingElements": "error",
42
+ "useConsistentCurlyBraces": "error",
43
+ "useImportType": "warn"
44
+ },
45
+ "correctness": {
46
+ "noUnusedVariables": "error",
47
+ "noUndeclaredVariables": "error"
48
+ }
49
+ }
50
+ },
51
+ "javascript": {
52
+ "formatter": {
53
+ "quoteStyle": "single",
54
+ "jsxQuoteStyle": "single",
55
+ "semicolons": "always",
56
+ "trailingCommas": "all"
57
+ }
58
+ },
59
+ "assist": {
60
+ "enabled": true,
61
+ "actions": {
62
+ "source": {
63
+ "organizeImports": "on"
64
+ }
65
+ }
66
+ }
67
+ }
@@ -7,35 +7,35 @@ export function About() {
7
7
  <>
8
8
  <div className='flex gap-4 items-center justify-center my-8 mx-auto'>
9
9
  <img
10
- src='./imgs/Vitejs-logo.svg'
10
+ src='/imgs/Vitejs-logo.svg'
11
11
  alt='vite logo'
12
12
  width='72px'
13
13
  style={{ marginLeft: 'auto', marginRight: 'auto' }}
14
14
  />
15
15
  <P marginBottom='none'>&</P>
16
16
  <img
17
- src='./imgs/Tailwind_CSS_Logo.svg'
17
+ src='/imgs/Tailwind_CSS_Logo.svg'
18
18
  alt='tailwind logo'
19
19
  width='72px'
20
20
  style={{ marginLeft: 'auto', marginRight: 'auto' }}
21
21
  />
22
22
  <P marginBottom='none'>&</P>
23
23
  <img
24
- src='./imgs/Tanstack-logo.png'
24
+ src='/imgs/Tanstack-logo.png'
25
25
  alt='tanstack logo'
26
26
  width='72px'
27
27
  style={{ marginLeft: 'auto', marginRight: 'auto' }}
28
28
  />
29
29
  <P marginBottom='none'>&</P>
30
30
  <img
31
- src='./imgs/Zustand-logo.svg'
31
+ src='/imgs/Zustand-logo.svg'
32
32
  alt='Zustand logo'
33
33
  width='72px'
34
34
  style={{ marginLeft: 'auto', marginRight: 'auto' }}
35
35
  />
36
36
  <P marginBottom='none'>&</P>
37
37
  <img
38
- src='./imgs/undp-logo-blue.svg'
38
+ src='/imgs/undp-logo-blue.svg'
39
39
  alt='UNDP logo'
40
40
  width='72px'
41
41
  style={{ marginLeft: 'auto', marginRight: 'auto' }}