create-lumen 1.1.3 → 1.2.0-beta.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 (247) hide show
  1. package/README.md +43 -35
  2. package/package.json +8 -2
  3. package/src/configure.js +29 -15
  4. package/src/css.js +73 -14
  5. package/src/dependencies.js +8 -3
  6. package/src/format.js +28 -0
  7. package/src/injector.js +131 -28
  8. package/src/main.js +17 -1
  9. package/src/readme.js +65 -22
  10. package/templates/architectures/component-based/main.tsx +1 -1
  11. package/templates/architectures/component-based/src/App.jsx +6 -4
  12. package/templates/architectures/component-based/src/App.tsx +6 -4
  13. package/templates/architectures/component-based/src/components/common/Button.jsx +5 -4
  14. package/templates/architectures/component-based/src/components/common/Button.tsx +5 -4
  15. package/templates/architectures/component-based/src/hooks/useApp.js +10 -0
  16. package/templates/architectures/component-based/src/hooks/useApp.ts +10 -0
  17. package/templates/architectures/component-based/src/hooks/useLocalStorage.ts +5 -5
  18. package/templates/architectures/component-based/src/layouts/MainLayout.jsx +12 -6
  19. package/templates/architectures/component-based/src/layouts/MainLayout.tsx +12 -6
  20. package/templates/architectures/component-based/src/pages/Home/Home.jsx +6 -2
  21. package/templates/architectures/component-based/src/pages/Home/Home.tsx +6 -2
  22. package/templates/architectures/component-based/src/providers/AppProvider.jsx +20 -0
  23. package/templates/architectures/component-based/src/providers/AppProvider.tsx +24 -0
  24. package/templates/architectures/component-based/src/providers/appcontext.js +3 -0
  25. package/templates/architectures/component-based/src/providers/appcontext.ts +8 -0
  26. package/templates/architectures/{feature-based → component-based}/src/types/index.js +7 -0
  27. package/templates/architectures/{feature-based → component-based}/src/types/index.ts +5 -0
  28. package/templates/architectures/component-based/src/utils/cn.ts +3 -1
  29. package/templates/architectures/feature-based/main.jsx +1 -1
  30. package/templates/architectures/feature-based/main.tsx +2 -2
  31. package/templates/architectures/feature-based/scripts/create-feature.mjs +2 -2
  32. package/templates/architectures/feature-based/src/app/App.jsx +15 -5
  33. package/templates/architectures/feature-based/src/app/App.tsx +15 -5
  34. package/templates/architectures/feature-based/src/app/contexts/themecontext.js +3 -0
  35. package/templates/architectures/feature-based/src/app/contexts/themecontext.ts +8 -0
  36. package/templates/architectures/feature-based/src/app/hooks/useTheme.js +10 -0
  37. package/templates/architectures/feature-based/src/app/hooks/useTheme.ts +10 -0
  38. package/templates/architectures/feature-based/src/app/providers/ThemeProvider.jsx +17 -2
  39. package/templates/architectures/feature-based/src/app/providers/ThemeProvider.tsx +20 -3
  40. package/templates/architectures/feature-based/src/features/home/pages/HomePage.jsx +18 -5
  41. package/templates/architectures/feature-based/src/features/home/pages/HomePage.tsx +18 -5
  42. package/templates/architectures/feature-based/src/shared/components/ui/Button.jsx +31 -0
  43. package/templates/architectures/feature-based/src/shared/components/ui/Button.tsx +36 -0
  44. package/templates/architectures/feature-based/src/{hooks → shared/hooks}/useLocalStorage.ts +5 -5
  45. package/templates/architectures/feature-based/src/shared/layouts/.gitkeep +0 -0
  46. package/templates/architectures/feature-based/src/shared/stores/.gitkeep +0 -0
  47. package/templates/architectures/feature-based/src/shared/styles/.gitkeep +0 -0
  48. package/templates/architectures/feature-based/src/shared/types/index.js +20 -0
  49. package/templates/architectures/feature-based/src/shared/types/index.ts +16 -0
  50. package/templates/architectures/feature-based/src/shared/utils/cn.ts +5 -0
  51. package/templates/conditional/axios/component-based/src/config/axios.config.js +7 -0
  52. package/templates/conditional/axios/component-based/src/config/axios.config.ts +7 -0
  53. package/templates/conditional/axios/component-based/src/services/axios.client.js +24 -0
  54. package/templates/conditional/axios/component-based/src/services/axios.client.ts +24 -0
  55. package/templates/conditional/axios/component-based/src/services/user.service.js +33 -0
  56. package/templates/conditional/axios/component-based/src/services/user.service.ts +29 -0
  57. package/templates/conditional/axios/feature-based/src/features/home/services/user.service.js +33 -0
  58. package/templates/conditional/axios/feature-based/src/features/home/services/user.service.ts +29 -0
  59. package/templates/conditional/axios/feature-based/src/shared/lib/axios/api.client.js +24 -0
  60. package/templates/conditional/axios/feature-based/src/shared/lib/axios/api.client.ts +24 -0
  61. package/templates/conditional/axios/feature-based/src/shared/lib/axios/api.config.js +7 -0
  62. package/templates/conditional/axios/feature-based/src/shared/lib/axios/api.config.ts +7 -0
  63. package/templates/conditional/axios/feature-based/src/shared/lib/axios/index.js +1 -0
  64. package/templates/conditional/axios/feature-based/src/shared/lib/axios/index.ts +1 -0
  65. package/templates/conditional/fetch/component-based/src/config/api.config.js +7 -0
  66. package/templates/conditional/fetch/component-based/src/config/api.config.ts +7 -0
  67. package/templates/conditional/fetch/component-based/src/services/api.client.js +51 -0
  68. package/templates/conditional/fetch/component-based/src/services/api.client.ts +55 -0
  69. package/templates/conditional/fetch/component-based/src/services/user.service.js +33 -0
  70. package/templates/conditional/fetch/component-based/src/services/user.service.ts +29 -0
  71. package/templates/conditional/fetch/feature-based/src/features/home/services/user.service.js +33 -0
  72. package/templates/conditional/fetch/feature-based/src/features/home/services/user.service.ts +29 -0
  73. package/templates/conditional/fetch/feature-based/src/shared/api/api.client.js +51 -0
  74. package/templates/conditional/fetch/feature-based/src/shared/api/api.client.ts +55 -0
  75. package/templates/conditional/fetch/feature-based/src/shared/api/api.config.js +7 -0
  76. package/templates/conditional/fetch/feature-based/src/shared/api/api.config.ts +7 -0
  77. package/templates/conditional/fetch/feature-based/src/shared/api/index.js +1 -0
  78. package/templates/conditional/fetch/feature-based/src/shared/api/index.ts +1 -0
  79. package/templates/conditional/formatter/oxfmt/.oxfmtrc.json +1 -1
  80. package/templates/conditional/formatter/prettier/.prettierrc +2 -2
  81. package/templates/conditional/icons/huge/component-based/bootstrap/src/pages/Home/Home.jsx +20 -0
  82. package/templates/conditional/icons/huge/component-based/bootstrap/src/pages/Home/Home.tsx +20 -0
  83. package/templates/conditional/icons/huge/component-based/src/pages/Home/Home.jsx +26 -10
  84. package/templates/conditional/icons/huge/component-based/src/pages/Home/Home.tsx +26 -10
  85. package/templates/conditional/icons/huge/component-based/tailwind/src/pages/Home/Home.jsx +20 -0
  86. package/templates/conditional/icons/huge/component-based/tailwind/src/pages/Home/Home.tsx +20 -0
  87. package/templates/conditional/icons/huge/feature-based/bootstrap/src/features/home/pages/HomePage.jsx +20 -0
  88. package/templates/conditional/icons/huge/feature-based/bootstrap/src/features/home/pages/HomePage.tsx +20 -0
  89. package/templates/conditional/icons/huge/feature-based/src/features/home/pages/HomePage.jsx +27 -11
  90. package/templates/conditional/icons/huge/feature-based/src/features/home/pages/HomePage.tsx +27 -11
  91. package/templates/conditional/icons/huge/feature-based/tailwind/src/features/home/pages/HomePage.jsx +20 -0
  92. package/templates/conditional/icons/huge/feature-based/tailwind/src/features/home/pages/HomePage.tsx +20 -0
  93. package/templates/conditional/icons/lucide/component-based/bootstrap/src/pages/Home/Home.jsx +19 -0
  94. package/templates/conditional/icons/lucide/component-based/bootstrap/src/pages/Home/Home.tsx +19 -0
  95. package/templates/conditional/icons/lucide/component-based/src/pages/Home/Home.jsx +25 -10
  96. package/templates/conditional/icons/lucide/component-based/src/pages/Home/Home.tsx +25 -10
  97. package/templates/conditional/icons/lucide/component-based/tailwind/src/pages/Home/Home.jsx +19 -0
  98. package/templates/conditional/icons/lucide/component-based/tailwind/src/pages/Home/Home.tsx +19 -0
  99. package/templates/conditional/icons/lucide/feature-based/bootstrap/src/features/home/pages/HomePage.jsx +19 -0
  100. package/templates/conditional/icons/lucide/feature-based/bootstrap/src/features/home/pages/HomePage.tsx +19 -0
  101. package/templates/conditional/icons/lucide/feature-based/src/features/home/pages/HomePage.jsx +26 -11
  102. package/templates/conditional/icons/lucide/feature-based/src/features/home/pages/HomePage.tsx +26 -11
  103. package/templates/conditional/icons/lucide/feature-based/tailwind/src/features/home/pages/HomePage.jsx +19 -0
  104. package/templates/conditional/icons/lucide/feature-based/tailwind/src/features/home/pages/HomePage.tsx +19 -0
  105. package/templates/conditional/linting/eslint/eslint.config.js +24 -2
  106. package/templates/conditional/linting/eslint/eslint.config.ts +25 -2
  107. package/templates/conditional/router/component-based/bootstrap/src/layouts/MainLayout.jsx +17 -0
  108. package/templates/conditional/router/component-based/bootstrap/src/layouts/MainLayout.tsx +17 -0
  109. package/templates/conditional/router/component-based/src/App.jsx +4 -5
  110. package/templates/conditional/router/component-based/src/App.tsx +4 -5
  111. package/templates/conditional/router/component-based/src/layouts/MainLayout.jsx +39 -0
  112. package/templates/conditional/router/component-based/src/layouts/MainLayout.tsx +39 -0
  113. package/templates/conditional/router/component-based/src/router/guards/AuthGuard.jsx +8 -0
  114. package/templates/conditional/router/component-based/src/router/guards/AuthGuard.tsx +14 -0
  115. package/templates/conditional/router/component-based/src/router/guards/GuestGuard.jsx +8 -0
  116. package/templates/conditional/router/component-based/src/router/guards/GuestGuard.tsx +14 -0
  117. package/templates/conditional/router/component-based/src/router/index.jsx +44 -0
  118. package/templates/conditional/router/component-based/src/router/index.tsx +44 -0
  119. package/templates/conditional/router/component-based/tailwind/src/layouts/MainLayout.jsx +17 -0
  120. package/templates/conditional/router/component-based/tailwind/src/layouts/MainLayout.tsx +17 -0
  121. package/templates/conditional/router/feature-based/bootstrap/src/shared/layouts/RootLayout.jsx +9 -0
  122. package/templates/conditional/router/feature-based/bootstrap/src/shared/layouts/RootLayout.tsx +9 -0
  123. package/templates/conditional/router/feature-based/src/app/App.jsx +6 -2
  124. package/templates/conditional/router/feature-based/src/app/App.tsx +6 -2
  125. package/templates/conditional/router/feature-based/src/app/router/guards/AuthGuard.jsx +8 -0
  126. package/templates/conditional/router/feature-based/src/app/router/guards/AuthGuard.tsx +14 -0
  127. package/templates/conditional/router/feature-based/src/app/router/guards/RoleGuard.jsx +8 -0
  128. package/templates/conditional/router/feature-based/src/app/router/guards/RoleGuard.tsx +15 -0
  129. package/templates/conditional/router/feature-based/src/app/router/index.jsx +16 -0
  130. package/templates/conditional/router/feature-based/src/app/router/index.tsx +16 -0
  131. package/templates/conditional/router/feature-based/src/app/router/routes/auth.routes.jsx +18 -0
  132. package/templates/conditional/router/feature-based/src/app/router/routes/auth.routes.tsx +18 -0
  133. package/templates/conditional/router/feature-based/src/app/router/routes/home.routes.jsx +8 -0
  134. package/templates/conditional/router/feature-based/src/app/router/routes/home.routes.tsx +8 -0
  135. package/templates/conditional/router/feature-based/src/shared/layouts/RootLayout.jsx +17 -0
  136. package/templates/conditional/router/feature-based/src/shared/layouts/RootLayout.tsx +17 -0
  137. package/templates/conditional/router/feature-based/tailwind/src/shared/layouts/RootLayout.jsx +9 -0
  138. package/templates/conditional/router/feature-based/tailwind/src/shared/layouts/RootLayout.tsx +9 -0
  139. package/templates/conditional/state/redux/component-based/src/pages/Home/counterSlice.ts +9 -3
  140. package/templates/conditional/state/redux/component-based/src/{context → providers}/StoreProvider.jsx +0 -1
  141. package/templates/conditional/state/redux/component-based/src/{context → providers}/StoreProvider.tsx +2 -2
  142. package/templates/conditional/state/redux/component-based/src/store/hooks.ts +4 -2
  143. package/templates/conditional/state/redux/component-based/src/store/index.ts +2 -2
  144. package/templates/conditional/state/redux/feature-based/src/app/providers/StoreProvider.jsx +1 -2
  145. package/templates/conditional/state/redux/feature-based/src/app/providers/StoreProvider.tsx +3 -3
  146. package/templates/conditional/state/redux/feature-based/src/features/home/store/counterSlice.ts +9 -3
  147. package/templates/conditional/state/redux/feature-based/src/shared/stores/hooks.ts +6 -0
  148. package/templates/conditional/state/redux/feature-based/src/{stores → shared/stores}/index.ts +2 -2
  149. package/templates/conditional/state/zustand/component-based/src/store/useCounterStore.ts +8 -1
  150. package/templates/conditional/state/zustand/feature-based/src/stores/useCounterStore.ts +8 -1
  151. package/templates/conditional/testing/jest/babel.config.cjs +7 -0
  152. package/templates/conditional/testing/jest/component-based/src/__tests__/App.test.jsx +10 -0
  153. package/templates/conditional/testing/jest/component-based/src/__tests__/App.test.tsx +11 -0
  154. package/templates/conditional/testing/jest/{src → feature-based/src}/__tests__/App.test.jsx +2 -1
  155. package/templates/conditional/testing/jest/feature-based/src/__tests__/App.test.tsx +11 -0
  156. package/templates/conditional/testing/jest/jest.config.js +2 -3
  157. package/templates/conditional/testing/jest/jest.config.ts +6 -4
  158. package/templates/conditional/testing/jest/jest.setup.js +6 -0
  159. package/templates/conditional/testing/jest/jest.setup.ts +6 -0
  160. package/templates/conditional/testing/vitest/component-based/src/__tests__/App.test.jsx +10 -0
  161. package/templates/conditional/testing/{jest → vitest/component-based}/src/__tests__/App.test.tsx +2 -1
  162. package/templates/css/bootstrap/src/themes.css +14 -0
  163. package/templates/css/component-styles/bootstrap/component-based/src/components/common/Button.jsx +17 -0
  164. package/templates/css/component-styles/bootstrap/component-based/src/components/common/Button.tsx +22 -0
  165. package/templates/css/component-styles/bootstrap/component-based/src/layouts/MainLayout.jsx +15 -0
  166. package/templates/css/component-styles/bootstrap/component-based/src/layouts/MainLayout.tsx +19 -0
  167. package/templates/css/component-styles/bootstrap/component-based/src/pages/Home/Home.jsx +13 -0
  168. package/templates/css/component-styles/bootstrap/component-based/src/pages/Home/Home.tsx +13 -0
  169. package/templates/css/component-styles/bootstrap/feature-based/src/app/App.jsx +9 -0
  170. package/templates/css/component-styles/bootstrap/feature-based/src/app/App.tsx +9 -0
  171. package/templates/css/component-styles/bootstrap/feature-based/src/features/home/pages/HomePage.jsx +13 -0
  172. package/templates/css/component-styles/bootstrap/feature-based/src/features/home/pages/HomePage.tsx +13 -0
  173. package/templates/css/component-styles/bootstrap/feature-based/src/shared/components/ui/Button.jsx +17 -0
  174. package/templates/css/component-styles/bootstrap/feature-based/src/shared/components/ui/Button.tsx +22 -0
  175. package/templates/{architectures/feature-based/src/components/ui → css/component-styles/tailwind/component-based/src/components/common}/Button.jsx +1 -3
  176. package/templates/{architectures/feature-based/src/components/ui → css/component-styles/tailwind/component-based/src/components/common}/Button.tsx +1 -3
  177. package/templates/css/component-styles/tailwind/component-based/src/layouts/MainLayout.jsx +15 -0
  178. package/templates/css/component-styles/tailwind/component-based/src/layouts/MainLayout.tsx +19 -0
  179. package/templates/css/component-styles/tailwind/component-based/src/pages/Home/Home.jsx +13 -0
  180. package/templates/css/component-styles/tailwind/component-based/src/pages/Home/Home.tsx +13 -0
  181. package/templates/css/component-styles/tailwind/feature-based/src/app/App.jsx +9 -0
  182. package/templates/css/component-styles/tailwind/feature-based/src/app/App.tsx +9 -0
  183. package/templates/css/component-styles/tailwind/feature-based/src/features/home/pages/HomePage.jsx +13 -0
  184. package/templates/css/component-styles/tailwind/feature-based/src/features/home/pages/HomePage.tsx +13 -0
  185. package/templates/css/component-styles/tailwind/feature-based/src/shared/components/ui/Button.jsx +21 -0
  186. package/templates/css/component-styles/tailwind/feature-based/src/shared/components/ui/Button.tsx +26 -0
  187. package/templates/css/none/src/{index.css → main.css} +2 -0
  188. package/templates/css/none/src/themes.css +19 -0
  189. package/templates/css/tailwind/src/themes.css +9 -0
  190. package/templates/architectures/component-based/src/config/constants.js +0 -2
  191. package/templates/architectures/component-based/src/config/constants.ts +0 -2
  192. package/templates/architectures/component-based/src/config/routes.js +0 -7
  193. package/templates/architectures/component-based/src/config/routes.ts +0 -7
  194. package/templates/architectures/component-based/src/context/AppContext.jsx +0 -13
  195. package/templates/architectures/component-based/src/context/AppContext.tsx +0 -13
  196. package/templates/architectures/component-based/src/hooks/index.js +0 -1
  197. package/templates/architectures/component-based/src/hooks/index.ts +0 -1
  198. package/templates/architectures/component-based/src/layouts/index.js +0 -1
  199. package/templates/architectures/component-based/src/layouts/index.ts +0 -1
  200. package/templates/architectures/component-based/src/routes/index.jsx +0 -11
  201. package/templates/architectures/component-based/src/routes/index.tsx +0 -11
  202. package/templates/architectures/component-based/src/styles/globals.css +0 -7
  203. package/templates/architectures/component-based/src/utils/index.js +0 -1
  204. package/templates/architectures/component-based/src/utils/index.ts +0 -1
  205. package/templates/architectures/feature-based/src/config/constants.js +0 -2
  206. package/templates/architectures/feature-based/src/config/constants.ts +0 -2
  207. package/templates/architectures/feature-based/src/hooks/index.js +0 -1
  208. package/templates/architectures/feature-based/src/hooks/index.ts +0 -1
  209. package/templates/architectures/feature-based/src/utils/cn.ts +0 -6
  210. package/templates/architectures/feature-based/src/utils/index.js +0 -1
  211. package/templates/architectures/feature-based/src/utils/index.ts +0 -1
  212. package/templates/conditional/axios/component-based/src/services/axios.jsx +0 -19
  213. package/templates/conditional/axios/component-based/src/services/axios.ts +0 -19
  214. package/templates/conditional/axios/component-based/src/services/index.js +0 -1
  215. package/templates/conditional/axios/component-based/src/services/index.ts +0 -1
  216. package/templates/conditional/axios/feature-based/src/lib/axios.jsx +0 -19
  217. package/templates/conditional/axios/feature-based/src/lib/axios.ts +0 -19
  218. package/templates/conditional/axios/feature-based/src/lib/index.js +0 -1
  219. package/templates/conditional/axios/feature-based/src/lib/index.ts +0 -1
  220. package/templates/conditional/fetch/component-based/src/services/api.jsx +0 -27
  221. package/templates/conditional/fetch/component-based/src/services/api.ts +0 -27
  222. package/templates/conditional/fetch/component-based/src/services/index.js +0 -1
  223. package/templates/conditional/fetch/component-based/src/services/index.ts +0 -1
  224. package/templates/conditional/fetch/feature-based/src/lib/api.jsx +0 -27
  225. package/templates/conditional/fetch/feature-based/src/lib/api.ts +0 -27
  226. package/templates/conditional/fetch/feature-based/src/lib/index.js +0 -1
  227. package/templates/conditional/fetch/feature-based/src/lib/index.ts +0 -1
  228. package/templates/conditional/router/component-based/src/routes/index.jsx +0 -13
  229. package/templates/conditional/router/component-based/src/routes/index.tsx +0 -13
  230. package/templates/conditional/router/feature-based/src/app/router.jsx +0 -13
  231. package/templates/conditional/router/feature-based/src/app/router.tsx +0 -13
  232. package/templates/conditional/state/redux/feature-based/src/stores/hooks.ts +0 -4
  233. package/templates/css/tailwind/src/index.css +0 -1
  234. /package/templates/architectures/component-based/src/{components/layout → config}/.gitkeep +0 -0
  235. /package/templates/architectures/{feature-based/src/features/home/interfaces → component-based/src/providers}/.gitkeep +0 -0
  236. /package/templates/architectures/{feature-based/src/lib → component-based/src/styles}/.gitkeep +0 -0
  237. /package/templates/architectures/feature-based/src/{stores → features/home/types}/.gitkeep +0 -0
  238. /package/templates/architectures/feature-based/src/{components → shared/components}/ui/index.js +0 -0
  239. /package/templates/architectures/feature-based/src/{components → shared/components}/ui/index.ts +0 -0
  240. /package/templates/architectures/feature-based/src/{hooks → shared/hooks}/useLocalStorage.jsx +0 -0
  241. /package/templates/architectures/feature-based/src/{utils → shared/utils}/cn.jsx +0 -0
  242. /package/templates/conditional/state/redux/feature-based/src/{stores → shared/stores}/hooks.js +0 -0
  243. /package/templates/conditional/state/redux/feature-based/src/{stores → shared/stores}/index.js +0 -0
  244. /package/templates/conditional/testing/vitest/{src → feature-based/src}/__tests__/App.test.jsx +0 -0
  245. /package/templates/conditional/testing/vitest/{src → feature-based/src}/__tests__/App.test.tsx +0 -0
  246. /package/templates/css/bootstrap/src/{index.css → globals.css} +0 -0
  247. /package/templates/{architectures/feature-based/src/styles → css/tailwind/src}/globals.css +0 -0
@@ -0,0 +1,20 @@
1
+ import { HugeiconsIcon } from "@hugeicons/react";
2
+ import { Sun01Icon, Moon01Icon, Github01Icon } from "@hugeicons/core-free-icons";
3
+ import { Button } from "@/components/common";
4
+
5
+ export function HomePage() {
6
+ return (
7
+ <div className="text-center">
8
+ <div className="flex justify-center gap-4 mb-6">
9
+ <HugeiconsIcon icon={Sun01Icon} className="w-8 h-8 text-yellow-500" />
10
+ <HugeiconsIcon icon={Moon01Icon} className="w-8 h-8 text-blue-500" />
11
+ <HugeiconsIcon icon={Github01Icon} className="w-8 h-8 text-gray-800" />
12
+ </div>
13
+ <h1 className="text-4xl font-bold text-gray-900 mb-4">Welcome to Lumen</h1>
14
+ <p className="text-gray-600 mb-8">
15
+ Your React + Vite project is ready. Start building!
16
+ </p>
17
+ <Button>Get Started</Button>
18
+ </div>
19
+ );
20
+ }
@@ -0,0 +1,20 @@
1
+ import { HugeiconsIcon } from "@hugeicons/react";
2
+ import { Sun01Icon, Moon01Icon, Github01Icon } from "@hugeicons/core-free-icons";
3
+ import { Button } from "@/shared/components/ui";
4
+
5
+ export function HomePage() {
6
+ return (
7
+ <div className="text-center">
8
+ <div className="d-flex justify-content-center gap-3 mb-4">
9
+ <HugeiconsIcon icon={Sun01Icon} style={{ width: 32, height: 32 }} className="text-warning" />
10
+ <HugeiconsIcon icon={Moon01Icon} style={{ width: 32, height: 32 }} className="text-primary" />
11
+ <HugeiconsIcon icon={Github01Icon} style={{ width: 32, height: 32 }} className="text-dark" />
12
+ </div>
13
+ <h1 className="h1 fw-bold text-dark mb-4">Welcome to Lumen</h1>
14
+ <p className="text-muted mb-5">
15
+ Your React + Vite project is ready. Start building!
16
+ </p>
17
+ <Button>Get Started</Button>
18
+ </div>
19
+ );
20
+ }
@@ -0,0 +1,20 @@
1
+ import { HugeiconsIcon } from "@hugeicons/react";
2
+ import { Sun01Icon, Moon01Icon, Github01Icon } from "@hugeicons/core-free-icons";
3
+ import { Button } from "@/shared/components/ui";
4
+
5
+ export function HomePage() {
6
+ return (
7
+ <div className="text-center">
8
+ <div className="d-flex justify-content-center gap-3 mb-4">
9
+ <HugeiconsIcon icon={Sun01Icon} style={{ width: 32, height: 32 }} className="text-warning" />
10
+ <HugeiconsIcon icon={Moon01Icon} style={{ width: 32, height: 32 }} className="text-primary" />
11
+ <HugeiconsIcon icon={Github01Icon} style={{ width: 32, height: 32 }} className="text-dark" />
12
+ </div>
13
+ <h1 className="h1 fw-bold text-dark mb-4">Welcome to Lumen</h1>
14
+ <p className="text-muted mb-5">
15
+ Your React + Vite project is ready. Start building!
16
+ </p>
17
+ <Button>Get Started</Button>
18
+ </div>
19
+ );
20
+ }
@@ -1,20 +1,36 @@
1
- import React from "react";
2
- import { Sun, Moon, Github } from "@hugeicons/react";
3
- import { Button } from "@/components/ui";
1
+ import { HugeiconsIcon } from "@hugeicons/react";
2
+ import { Sun01Icon, Moon01Icon, Github01Icon } from "@hugeicons/core-free-icons";
3
+ import { Button } from "@/shared/components/ui";
4
4
 
5
5
  export function HomePage() {
6
6
  return (
7
- <div className="text-center">
8
- <div className="flex justify-center gap-4 mb-6">
9
- <Sun className="w-8 h-8 text-yellow-500" />
10
- <Moon className="w-8 h-8 text-blue-500" />
11
- <Github className="w-8 h-8 text-gray-800" />
7
+ <div style={{ textAlign: "center" }}>
8
+ <div
9
+ style={{
10
+ display: "flex",
11
+ justifyContent: "center",
12
+ gap: "1rem",
13
+ marginBottom: "1.5rem",
14
+ }}
15
+ >
16
+ <HugeiconsIcon icon={Sun01Icon} style={{ width: 32, height: 32, color: "#eab308" }} />
17
+ <HugeiconsIcon icon={Moon01Icon} style={{ width: 32, height: 32, color: "#3b82f6" }} />
18
+ <HugeiconsIcon icon={Github01Icon} style={{ width: 32, height: 32, color: "#1f2937" }} />
12
19
  </div>
13
- <h1 className="text-4xl font-bold text-gray-900 mb-4">Welcome to Lumen</h1>
14
- <p className="text-gray-600 mb-8">
20
+ <h1
21
+ style={{
22
+ fontSize: "2.25rem",
23
+ fontWeight: 700,
24
+ color: "#111827",
25
+ marginBottom: "1rem",
26
+ }}
27
+ >
28
+ Welcome to Lumen
29
+ </h1>
30
+ <p style={{ color: "#4b5563", marginBottom: "2rem" }}>
15
31
  Your React + Vite project is ready. Start building!
16
32
  </p>
17
33
  <Button>Get Started</Button>
18
34
  </div>
19
35
  );
20
- }
36
+ }
@@ -1,20 +1,36 @@
1
- import React from "react";
2
- import { Sun, Moon, Github } from "@hugeicons/react";
3
- import { Button } from "@/components/ui";
1
+ import { HugeiconsIcon } from "@hugeicons/react";
2
+ import { Sun01Icon, Moon01Icon, Github01Icon } from "@hugeicons/core-free-icons";
3
+ import { Button } from "@/shared/components/ui";
4
4
 
5
5
  export function HomePage() {
6
6
  return (
7
- <div className="text-center">
8
- <div className="flex justify-center gap-4 mb-6">
9
- <Sun className="w-8 h-8 text-yellow-500" />
10
- <Moon className="w-8 h-8 text-blue-500" />
11
- <Github className="w-8 h-8 text-gray-800" />
7
+ <div style={{ textAlign: "center" }}>
8
+ <div
9
+ style={{
10
+ display: "flex",
11
+ justifyContent: "center",
12
+ gap: "1rem",
13
+ marginBottom: "1.5rem",
14
+ }}
15
+ >
16
+ <HugeiconsIcon icon={Sun01Icon} style={{ width: 32, height: 32, color: "#eab308" }} />
17
+ <HugeiconsIcon icon={Moon01Icon} style={{ width: 32, height: 32, color: "#3b82f6" }} />
18
+ <HugeiconsIcon icon={Github01Icon} style={{ width: 32, height: 32, color: "#1f2937" }} />
12
19
  </div>
13
- <h1 className="text-4xl font-bold text-gray-900 mb-4">Welcome to Lumen</h1>
14
- <p className="text-gray-600 mb-8">
20
+ <h1
21
+ style={{
22
+ fontSize: "2.25rem",
23
+ fontWeight: 700,
24
+ color: "#111827",
25
+ marginBottom: "1rem",
26
+ }}
27
+ >
28
+ Welcome to Lumen
29
+ </h1>
30
+ <p style={{ color: "#4b5563", marginBottom: "2rem" }}>
15
31
  Your React + Vite project is ready. Start building!
16
32
  </p>
17
33
  <Button>Get Started</Button>
18
34
  </div>
19
35
  );
20
- }
36
+ }
@@ -0,0 +1,20 @@
1
+ import { HugeiconsIcon } from "@hugeicons/react";
2
+ import { Sun01Icon, Moon01Icon, Github01Icon } from "@hugeicons/core-free-icons";
3
+ import { Button } from "@/shared/components/ui";
4
+
5
+ export function HomePage() {
6
+ return (
7
+ <div className="text-center">
8
+ <div className="flex justify-center gap-4 mb-6">
9
+ <HugeiconsIcon icon={Sun01Icon} className="w-8 h-8 text-yellow-500" />
10
+ <HugeiconsIcon icon={Moon01Icon} className="w-8 h-8 text-blue-500" />
11
+ <HugeiconsIcon icon={Github01Icon} className="w-8 h-8 text-gray-800" />
12
+ </div>
13
+ <h1 className="text-4xl font-bold text-gray-900 mb-4">Welcome to Lumen</h1>
14
+ <p className="text-gray-600 mb-8">
15
+ Your React + Vite project is ready. Start building!
16
+ </p>
17
+ <Button>Get Started</Button>
18
+ </div>
19
+ );
20
+ }
@@ -0,0 +1,20 @@
1
+ import { HugeiconsIcon } from "@hugeicons/react";
2
+ import { Sun01Icon, Moon01Icon, Github01Icon } from "@hugeicons/core-free-icons";
3
+ import { Button } from "@/shared/components/ui";
4
+
5
+ export function HomePage() {
6
+ return (
7
+ <div className="text-center">
8
+ <div className="flex justify-center gap-4 mb-6">
9
+ <HugeiconsIcon icon={Sun01Icon} className="w-8 h-8 text-yellow-500" />
10
+ <HugeiconsIcon icon={Moon01Icon} className="w-8 h-8 text-blue-500" />
11
+ <HugeiconsIcon icon={Github01Icon} className="w-8 h-8 text-gray-800" />
12
+ </div>
13
+ <h1 className="text-4xl font-bold text-gray-900 mb-4">Welcome to Lumen</h1>
14
+ <p className="text-gray-600 mb-8">
15
+ Your React + Vite project is ready. Start building!
16
+ </p>
17
+ <Button>Get Started</Button>
18
+ </div>
19
+ );
20
+ }
@@ -0,0 +1,19 @@
1
+ import { Sun, Moon, GitBranch } from "lucide-react";
2
+ import { Button } from "@/components/common";
3
+
4
+ export function HomePage() {
5
+ return (
6
+ <div className="text-center">
7
+ <div className="d-flex justify-content-center gap-3 mb-4">
8
+ <Sun size={32} className="text-warning" />
9
+ <Moon size={32} className="text-primary" />
10
+ <GitBranch size={32} className="text-dark" />
11
+ </div>
12
+ <h1 className="h1 fw-bold text-dark mb-4">Welcome to Lumen</h1>
13
+ <p className="text-muted mb-5">
14
+ Your React + Vite project is ready. Start building!
15
+ </p>
16
+ <Button>Get Started</Button>
17
+ </div>
18
+ );
19
+ }
@@ -0,0 +1,19 @@
1
+ import { Sun, Moon, GitBranch } from "lucide-react";
2
+ import { Button } from "@/components/common";
3
+
4
+ export function HomePage() {
5
+ return (
6
+ <div className="text-center">
7
+ <div className="d-flex justify-content-center gap-3 mb-4">
8
+ <Sun size={32} className="text-warning" />
9
+ <Moon size={32} className="text-primary" />
10
+ <GitBranch size={32} className="text-dark" />
11
+ </div>
12
+ <h1 className="h1 fw-bold text-dark mb-4">Welcome to Lumen</h1>
13
+ <p className="text-muted mb-5">
14
+ Your React + Vite project is ready. Start building!
15
+ </p>
16
+ <Button>Get Started</Button>
17
+ </div>
18
+ );
19
+ }
@@ -1,20 +1,35 @@
1
- import React from "react";
2
- import { Sun, Moon, Github } from "lucide-react";
1
+ import { Sun, Moon, GitBranch } from "lucide-react";
3
2
  import { Button } from "@/components/common";
4
3
 
5
4
  export function HomePage() {
6
5
  return (
7
- <div className="text-center">
8
- <div className="flex justify-center gap-4 mb-6">
9
- <Sun className="w-8 h-8 text-yellow-500" />
10
- <Moon className="w-8 h-8 text-blue-500" />
11
- <Github className="w-8 h-8 text-gray-800" />
6
+ <div style={{ textAlign: "center" }}>
7
+ <div
8
+ style={{
9
+ display: "flex",
10
+ justifyContent: "center",
11
+ gap: "1rem",
12
+ marginBottom: "1.5rem",
13
+ }}
14
+ >
15
+ <Sun size={32} color="#eab308" />
16
+ <Moon size={32} color="#3b82f6" />
17
+ <GitBranch size={32} color="#1f2937" />
12
18
  </div>
13
- <h1 className="text-4xl font-bold text-gray-900 mb-4">Welcome to Lumen</h1>
14
- <p className="text-gray-600 mb-8">
19
+ <h1
20
+ style={{
21
+ fontSize: "2.25rem",
22
+ fontWeight: 700,
23
+ color: "#111827",
24
+ marginBottom: "1rem",
25
+ }}
26
+ >
27
+ Welcome to Lumen
28
+ </h1>
29
+ <p style={{ color: "#4b5563", marginBottom: "2rem" }}>
15
30
  Your React + Vite project is ready. Start building!
16
31
  </p>
17
32
  <Button>Get Started</Button>
18
33
  </div>
19
34
  );
20
- }
35
+ }
@@ -1,20 +1,35 @@
1
- import React from "react";
2
- import { Sun, Moon, Github } from "lucide-react";
1
+ import { Sun, Moon, GitBranch } from "lucide-react";
3
2
  import { Button } from "@/components/common";
4
3
 
5
4
  export function HomePage() {
6
5
  return (
7
- <div className="text-center">
8
- <div className="flex justify-center gap-4 mb-6">
9
- <Sun className="w-8 h-8 text-yellow-500" />
10
- <Moon className="w-8 h-8 text-blue-500" />
11
- <Github className="w-8 h-8 text-gray-800" />
6
+ <div style={{ textAlign: "center" }}>
7
+ <div
8
+ style={{
9
+ display: "flex",
10
+ justifyContent: "center",
11
+ gap: "1rem",
12
+ marginBottom: "1.5rem",
13
+ }}
14
+ >
15
+ <Sun size={32} color="#eab308" />
16
+ <Moon size={32} color="#3b82f6" />
17
+ <GitBranch size={32} color="#1f2937" />
12
18
  </div>
13
- <h1 className="text-4xl font-bold text-gray-900 mb-4">Welcome to Lumen</h1>
14
- <p className="text-gray-600 mb-8">
19
+ <h1
20
+ style={{
21
+ fontSize: "2.25rem",
22
+ fontWeight: 700,
23
+ color: "#111827",
24
+ marginBottom: "1rem",
25
+ }}
26
+ >
27
+ Welcome to Lumen
28
+ </h1>
29
+ <p style={{ color: "#4b5563", marginBottom: "2rem" }}>
15
30
  Your React + Vite project is ready. Start building!
16
31
  </p>
17
32
  <Button>Get Started</Button>
18
33
  </div>
19
34
  );
20
- }
35
+ }
@@ -0,0 +1,19 @@
1
+ import { Sun, Moon, GitBranch } from "lucide-react";
2
+ import { Button } from "@/components/common";
3
+
4
+ export function HomePage() {
5
+ return (
6
+ <div className="text-center">
7
+ <div className="flex justify-center gap-4 mb-6">
8
+ <Sun className="w-8 h-8 text-yellow-500" />
9
+ <Moon className="w-8 h-8 text-blue-500" />
10
+ <GitBranch className="w-8 h-8 text-gray-800" />
11
+ </div>
12
+ <h1 className="text-4xl font-bold text-gray-900 mb-4">Welcome to Lumen</h1>
13
+ <p className="text-gray-600 mb-8">
14
+ Your React + Vite project is ready. Start building!
15
+ </p>
16
+ <Button>Get Started</Button>
17
+ </div>
18
+ );
19
+ }
@@ -0,0 +1,19 @@
1
+ import { Sun, Moon, GitBranch } from "lucide-react";
2
+ import { Button } from "@/components/common";
3
+
4
+ export function HomePage() {
5
+ return (
6
+ <div className="text-center">
7
+ <div className="flex justify-center gap-4 mb-6">
8
+ <Sun className="w-8 h-8 text-yellow-500" />
9
+ <Moon className="w-8 h-8 text-blue-500" />
10
+ <GitBranch className="w-8 h-8 text-gray-800" />
11
+ </div>
12
+ <h1 className="text-4xl font-bold text-gray-900 mb-4">Welcome to Lumen</h1>
13
+ <p className="text-gray-600 mb-8">
14
+ Your React + Vite project is ready. Start building!
15
+ </p>
16
+ <Button>Get Started</Button>
17
+ </div>
18
+ );
19
+ }
@@ -0,0 +1,19 @@
1
+ import { Sun, Moon, GitBranch } from "lucide-react";
2
+ import { Button } from "@/shared/components/ui";
3
+
4
+ export function HomePage() {
5
+ return (
6
+ <div className="text-center">
7
+ <div className="d-flex justify-content-center gap-3 mb-4">
8
+ <Sun size={32} className="text-warning" />
9
+ <Moon size={32} className="text-primary" />
10
+ <GitBranch size={32} className="text-dark" />
11
+ </div>
12
+ <h1 className="h1 fw-bold text-dark mb-4">Welcome to Lumen</h1>
13
+ <p className="text-muted mb-5">
14
+ Your React + Vite project is ready. Start building!
15
+ </p>
16
+ <Button>Get Started</Button>
17
+ </div>
18
+ );
19
+ }
@@ -0,0 +1,19 @@
1
+ import { Sun, Moon, GitBranch } from "lucide-react";
2
+ import { Button } from "@/shared/components/ui";
3
+
4
+ export function HomePage() {
5
+ return (
6
+ <div className="text-center">
7
+ <div className="d-flex justify-content-center gap-3 mb-4">
8
+ <Sun size={32} className="text-warning" />
9
+ <Moon size={32} className="text-primary" />
10
+ <GitBranch size={32} className="text-dark" />
11
+ </div>
12
+ <h1 className="h1 fw-bold text-dark mb-4">Welcome to Lumen</h1>
13
+ <p className="text-muted mb-5">
14
+ Your React + Vite project is ready. Start building!
15
+ </p>
16
+ <Button>Get Started</Button>
17
+ </div>
18
+ );
19
+ }
@@ -1,20 +1,35 @@
1
- import React from "react";
2
- import { Sun, Moon, Github } from "lucide-react";
3
- import { Button } from "@/components/ui";
1
+ import { Sun, Moon, GitBranch } from "lucide-react";
2
+ import { Button } from "@/shared/components/ui";
4
3
 
5
4
  export function HomePage() {
6
5
  return (
7
- <div className="text-center">
8
- <div className="flex justify-center gap-4 mb-6">
9
- <Sun className="w-8 h-8 text-yellow-500" />
10
- <Moon className="w-8 h-8 text-blue-500" />
11
- <Github className="w-8 h-8 text-gray-800" />
6
+ <div style={{ textAlign: "center" }}>
7
+ <div
8
+ style={{
9
+ display: "flex",
10
+ justifyContent: "center",
11
+ gap: "1rem",
12
+ marginBottom: "1.5rem",
13
+ }}
14
+ >
15
+ <Sun size={32} color="#eab308" />
16
+ <Moon size={32} color="#3b82f6" />
17
+ <GitBranch size={32} color="#1f2937" />
12
18
  </div>
13
- <h1 className="text-4xl font-bold text-gray-900 mb-4">Welcome to Lumen</h1>
14
- <p className="text-gray-600 mb-8">
19
+ <h1
20
+ style={{
21
+ fontSize: "2.25rem",
22
+ fontWeight: 700,
23
+ color: "#111827",
24
+ marginBottom: "1rem",
25
+ }}
26
+ >
27
+ Welcome to Lumen
28
+ </h1>
29
+ <p style={{ color: "#4b5563", marginBottom: "2rem" }}>
15
30
  Your React + Vite project is ready. Start building!
16
31
  </p>
17
32
  <Button>Get Started</Button>
18
33
  </div>
19
34
  );
20
- }
35
+ }
@@ -1,20 +1,35 @@
1
- import React from "react";
2
- import { Sun, Moon, Github } from "lucide-react";
3
- import { Button } from "@/components/ui";
1
+ import { Sun, Moon, GitBranch } from "lucide-react";
2
+ import { Button } from "@/shared/components/ui";
4
3
 
5
4
  export function HomePage() {
6
5
  return (
7
- <div className="text-center">
8
- <div className="flex justify-center gap-4 mb-6">
9
- <Sun className="w-8 h-8 text-yellow-500" />
10
- <Moon className="w-8 h-8 text-blue-500" />
11
- <Github className="w-8 h-8 text-gray-800" />
6
+ <div style={{ textAlign: "center" }}>
7
+ <div
8
+ style={{
9
+ display: "flex",
10
+ justifyContent: "center",
11
+ gap: "1rem",
12
+ marginBottom: "1.5rem",
13
+ }}
14
+ >
15
+ <Sun size={32} color="#eab308" />
16
+ <Moon size={32} color="#3b82f6" />
17
+ <GitBranch size={32} color="#1f2937" />
12
18
  </div>
13
- <h1 className="text-4xl font-bold text-gray-900 mb-4">Welcome to Lumen</h1>
14
- <p className="text-gray-600 mb-8">
19
+ <h1
20
+ style={{
21
+ fontSize: "2.25rem",
22
+ fontWeight: 700,
23
+ color: "#111827",
24
+ marginBottom: "1rem",
25
+ }}
26
+ >
27
+ Welcome to Lumen
28
+ </h1>
29
+ <p style={{ color: "#4b5563", marginBottom: "2rem" }}>
15
30
  Your React + Vite project is ready. Start building!
16
31
  </p>
17
32
  <Button>Get Started</Button>
18
33
  </div>
19
34
  );
20
- }
35
+ }
@@ -0,0 +1,19 @@
1
+ import { Sun, Moon, GitBranch } from "lucide-react";
2
+ import { Button } from "@/shared/components/ui";
3
+
4
+ export function HomePage() {
5
+ return (
6
+ <div className="text-center">
7
+ <div className="flex justify-center gap-4 mb-6">
8
+ <Sun className="w-8 h-8 text-yellow-500" />
9
+ <Moon className="w-8 h-8 text-blue-500" />
10
+ <GitBranch className="w-8 h-8 text-gray-800" />
11
+ </div>
12
+ <h1 className="text-4xl font-bold text-gray-900 mb-4">Welcome to Lumen</h1>
13
+ <p className="text-gray-600 mb-8">
14
+ Your React + Vite project is ready. Start building!
15
+ </p>
16
+ <Button>Get Started</Button>
17
+ </div>
18
+ );
19
+ }
@@ -0,0 +1,19 @@
1
+ import { Sun, Moon, GitBranch } from "lucide-react";
2
+ import { Button } from "@/shared/components/ui";
3
+
4
+ export function HomePage() {
5
+ return (
6
+ <div className="text-center">
7
+ <div className="flex justify-center gap-4 mb-6">
8
+ <Sun className="w-8 h-8 text-yellow-500" />
9
+ <Moon className="w-8 h-8 text-blue-500" />
10
+ <GitBranch className="w-8 h-8 text-gray-800" />
11
+ </div>
12
+ <h1 className="text-4xl font-bold text-gray-900 mb-4">Welcome to Lumen</h1>
13
+ <p className="text-gray-600 mb-8">
14
+ Your React + Vite project is ready. Start building!
15
+ </p>
16
+ <Button>Get Started</Button>
17
+ </div>
18
+ );
19
+ }
@@ -4,11 +4,12 @@ import reactHooks from "eslint-plugin-react-hooks";
4
4
  import reactRefresh from "eslint-plugin-react-refresh";
5
5
 
6
6
  export default [
7
+ js.configs.recommended,
7
8
  { ignores: ["dist"] },
8
9
  {
9
10
  files: ["**/*.{js,jsx}"],
10
11
  languageOptions: {
11
- ecmaVersion: 2020,
12
+ ecmaVersion: "latest",
12
13
  globals: globals.browser,
13
14
  parserOptions: {
14
15
  ecmaVersion: "latest",
@@ -28,4 +29,25 @@ export default [
28
29
  ],
29
30
  },
30
31
  },
31
- ];
32
+ {
33
+ // Node-runtime files: Vite/Vitest/Jest/ESLint configs and CLI scripts.
34
+ files: [
35
+ "**/*.config.{js,cjs,mjs}",
36
+ "eslint.config.js",
37
+ "scripts/**/*.{js,mjs}",
38
+ "jest.setup.{js,mjs}",
39
+ ],
40
+ languageOptions: {
41
+ ecmaVersion: "latest",
42
+ globals: globals.node,
43
+ },
44
+ },
45
+ {
46
+ // Test files also see Jest globals (Vitest suites import explicitly).
47
+ files: ["**/*.test.{js,jsx}"],
48
+ languageOptions: {
49
+ ecmaVersion: "latest",
50
+ globals: { ...globals.browser, ...globals.jest },
51
+ },
52
+ },
53
+ ];
@@ -10,7 +10,7 @@ export default tseslint.config(
10
10
  extends: [js.configs.recommended, ...tseslint.configs.recommended],
11
11
  files: ["**/*.{ts,tsx}"],
12
12
  languageOptions: {
13
- ecmaVersion: 2020,
13
+ ecmaVersion: "latest",
14
14
  globals: globals.browser,
15
15
  },
16
16
  plugins: {
@@ -24,5 +24,28 @@ export default tseslint.config(
24
24
  { allowConstantExport: true },
25
25
  ],
26
26
  },
27
+ },
28
+ {
29
+ // Node-runtime files: Vite/Vitest/Jest/ESLint configs and CLI scripts.
30
+ extends: [...tseslint.configs.recommended],
31
+ files: [
32
+ "**/*.config.{ts,mts}",
33
+ "eslint.config.ts",
34
+ "scripts/**/*.{ts,mts}",
35
+ "jest.setup.ts",
36
+ ],
37
+ languageOptions: {
38
+ ecmaVersion: "latest",
39
+ globals: globals.node,
40
+ },
41
+ },
42
+ {
43
+ // Test files also see Jest globals (Vitest suites import explicitly).
44
+ extends: [...tseslint.configs.recommended],
45
+ files: ["**/*.test.{ts,tsx}"],
46
+ languageOptions: {
47
+ ecmaVersion: "latest",
48
+ globals: { ...globals.browser, ...globals.jest },
49
+ },
27
50
  }
28
- );
51
+ );
@@ -0,0 +1,17 @@
1
+ import { Outlet } from "react-router-dom";
2
+
3
+ export function MainLayout() {
4
+ return (
5
+ <div className="min-vh-100 d-flex flex-column">
6
+ <header className="px-4 py-3 border-bottom">
7
+ <h2 className="h5 fw-semibold mb-0">Lumen</h2>
8
+ </header>
9
+ <main className="flex-grow-1 p-4 d-flex align-items-center justify-content-center">
10
+ <Outlet />
11
+ </main>
12
+ <footer className="px-4 py-3 border-top text-center text-muted">
13
+ <p className="mb-0">Built with Lumen</p>
14
+ </footer>
15
+ </div>
16
+ );
17
+ }